深藏青色的表面上并排放着三件物品:一个半透明的青绿色立方体,顶面是一个五乘五的小圆点网格,一条发光的线穿过其中六个点;一个低矮的托盘,上面放着五块一模一样的空白圆角瓷砖;还有一束狭窄的青绿色光柱落在一个空荡荡的基座上。

图案锁 vs PIN vs Face ID:到底哪个更安全

这个问题听起来该有一个明确答案,而且几乎确实如此,直到你问一句:你要防的是谁。在地铁上捡到手机的陌生人,午餐时坐在你对面的同事,以及早已知道你密码的伴侣,这是三种完全不同的威胁,三种锁定方式面对它们时会以不同的顺序失守。下文将给出完整排名、背后的研究依据,以及比这一切都更重要的一点:哪种锁该用在手机本身,哪种锁该用在手机里的照片上。

面对有人在旁偷看你解锁,图案锁在三者中明显最弱。在一项单次观察偷窥的对照研究中,攻击者能重现带可见轨迹线的图案的概率约为 64%,而六位数 PIN 码被破解的概率约为 11%。图案锁还会留下物理痕迹:最早提出油渍攻击的研究发现,在光线有利的条件下,通过屏幕上手指留下的油渍能在 68% 的测试中还原出完整图案,在 92% 的测试中还原出部分图案。Face ID 不会向旁观者泄露任何信息,这也是它在理论上胜出的原因,Apple 估计随机一张陌生人脸与你的脸匹配的概率约为百万分之一。但它的弱点在别处:它在你熟睡时也能生效,在有人把手机举到你脸前时也能生效,而且在 iPhone 上 Face ID 只是通往密码的捷径,并非替代密码,所以一旦密码被人看到,Face ID 的防护也就失效了。图案面板的大小同样关键。几乎所有被广泛引用的图案统计数据说的都是三乘三的网格,而至少六个点起步的五乘五面板处于完全不同的数量级。给设备本身设置一个足够长的密码并搭配 Face ID 使用,再给存放你不愿交给陌生人查看的内容的应用单独设置一套凭证。

简要排名,以及会颠覆它的那个问题

如果只看在被人观察时的表现,排名很清楚:Face ID 第一,长 PIN 码第二,图案锁垫底。Face ID 不会向旁观者泄露任何东西,因为这个凭证从未离开过你的脸。PIN 码是在一小块可以被手挡住的区域输入的,每多一位数字,猜测空间就扩大十倍。图案锁则是横跨屏幕大部分区域的大幅度手势,通常还带一条随手指移动的亮线,是三者中唯一能被隔两个座位的人直接记住的方式。这在研究数据里不是个小差距,而是抛硬币式的概率和几乎不可能猜中之间的差距。

接下来换个问题问:真正未经允许打开别人手机的是谁。绝大多数情况下不是拿着相机的陌生人,而是已经在同一个房间里的人:伴侣、室友、同事、亲戚。这个人通常已经知道你的密码,看你解锁手机看了成百上千次,根本不需要任何攻击手段。面对这种人,上面的排名毫无意义,因为三种锁其实都已经是开着的。唯一还能守住的,是那个人从未见过的第二重凭证,放在存有真正值得保护的内容的应用里。我们关于如何在 iPhone 上用 Face ID 给单个应用加锁的指南介绍了系统自带功能的这一半,值得和本文一起阅读。

每种锁在被人偷看时各会泄露什么

研究者对此做过实际测量,而非单纯猜测。在一项单次观察偷窥研究中,带可见轨迹线的图案被观察者成功重现的概率约为 64%,而六位数 PIN 码被重现的概率约为 11%。关掉轨迹线能明显提升图案锁的安全性,遮住数字键盘也能提升 PIN 码的安全性,但即便如此差距依然存在。原因在于几何结构:PIN 码是在密集网格上进行的一连串小幅点按,一位数字看错就会毁掉整个猜测;而图案锁是一个连续的整体形状,形状恰恰是人类记忆在看一眼后最擅长记住的东西。

图案锁事后还会留下证据。最早提出油渍攻击的研究在受控光线下拍摄手机屏幕,能从手指油渍痕迹中在 68% 的测试里还原出完整图案,在 92% 的测试里还原出部分图案。PIN 码键盘同样会留下油渍,但油渍不会显示顺序,攻击者只能知道用到了哪些数字,猜不出输入顺序。Face ID 既不会在屏幕玻璃上留下痕迹,也不会在房间里留下任何线索。它的问题在于,只要你的脸出现在摄像头前它就会起作用,包括你熟睡的时候,这是一个真实且具体的弱点,而不是纸上谈兵。Apple 通过在重启后、连续 48 小时未解锁后,以及连续五次人脸识别失败后要求输入密码来缓解这一问题,并针对窃贼已经看到你输入密码的情形推出了失窃设备保护功能。

背后的数学原理,以及面板大小为何改变一切

几乎每一个被广泛引用的图案统计数据说的都是安卓的三乘三网格,其中四到九个点组成的路径总共有 389,112 种可能。这个数字比四位 PIN 码的 10,000 种多,比六位 PIN 码的 1,000,000 种少,而且这两个数字都高估了实际难度,因为无论是图案还是 PIN 码,人们的选择都远远算不上随机。人们从左上角开始画图案的比例远高于随机概率,还会画出自己熟悉的字母。人们会选 1234、0000,或者出生年份。先尝试常见选项的攻击者,试探的并不是整个可能空间,而只是其中最拥挤的一小块。

没人提起的变量是面板大小,而它主导了其余一切。只统计使用六个不同点的路径,五乘五面板在应用任何绘制规则筛选之前就能提供 127,512,000 种排列,远超六位 PIN 码的 1,000,000 种。Vaultaire 正是出于这个原因采用五乘五面板,要求至少六个点、至少两次转折,并在你画出的图案是连续直线、螺旋或可辨认字母时发出提示。这些都无法解决被偷看的问题,因为那是当着别人的面在玻璃屏幕上作画这件事本身带来的问题,与网格大小无关。但这确实说明,图案锁只有在被人偷看时才是弱选项,在无人偷看时它是强选项。

哪种锁该用在哪扇门上

把手机本身和其中的隐私内容当作两扇不同的门来对待。在手机这一层,用 Face ID 搭配一个足够长的密码,并打开失窃设备保护,这会在你离开常去地点时,对敏感操作强制要求 Face ID 验证且不允许用密码代替。这套组合能应对陌生人、扒手,以及在咖啡馆拍下你解锁过程的人。它应付不了的,是已经知道密码的人,或者你把已解锁的手机递给别人看一张照片,对方却顺手继续往下翻的那一刻。要防住这种情况,你需要一把不会因为手机开了就跟着开的锁。

那是第二扇门,也是图案发挥作用的地方。在 Vaultaire 中,正常的解锁路径不会将您的模式与独立密码哈希进行比较。你画的点被序列化并贯穿 PBKDF2-HMAC-SHA512 600,000 次迭代,设备范围内的盐保存在 iOS Keychain。生成的保险库密钥验证加密索引并解开用于以下目的的单独随机主密钥 AES-256-GCM 文件加密。 AES-GCM 身份验证还允许复制应用程序数据的人离线测试候选密钥,因此模式强度和每次猜测的成本仍然很重要。 Vaultaire 将加密的恢复数据库保存在 Keychain,以及可选的加密 CloudKit 备份创建另一个密文副本;两者都没有为开发人员提供重置路径或读取文件所需的密钥。我们的解说员 什么 AES-256 加密实际上可以保护 覆盖了密码端,我们的 Vault 应用程序安全声明审核 介绍如何检查任何给定的应用程序是否正在执行此操作或只是隐藏文件夹。 Vaultaire 最多可免费使用 3 个保管库。

相关指南

参考来源

常见问题

有人真的能通过屏幕上的油渍看出我的图案吗

在条件合适的情况下确实可以。提出油渍攻击这一说法的研究在受控光线和拍摄角度下拍摄屏幕,在 68% 的测试中还原出完整图案,在 92% 的测试中还原出部分图案。日常使用会让玻璃表面留下混杂的油渍,从而增加还原难度,擦拭屏幕则会把痕迹完全清除,但这种攻击是真实存在的,而且只适用于图案锁。PIN 码键盘留下的痕迹只会暴露用到了哪些数字,不会暴露输入顺序。

在 iPhone 上 Face ID 比密码更安全吗

两者不是互相替代的关系。Face ID 只是通往同一个密码的快捷方式,密码始终是底层的真正凭证,这也是为什么 iOS 会在重启后、连续 48 小时未解锁后,以及连续五次人脸识别失败后要求输入密码。面对偷看,Face ID 明显更安全,因为根本没有东西可看。面对有人能把手机举到你脸前的情况,密码更安全。两者都该用,并且把密码设得长一些。

如果有人已经知道我的 iPhone 密码,单独的保险库图案还有用吗

这正是它存在的主要意义。知道你密码的人能拿到整部手机的内容:照片、信息、隐藏相册,以及网页版 iCloud。拥有独立凭证的保险库是唯一不会跟着一起打开的部分,前提是你从未在这个人面前画过这个图案,也从未把密码的数字直接拿来当图案的形状。选一个你从没在这个人面前输入过的图案,因为熟悉感才是这里真正的攻击手段。

如果我忘记了图案怎么办

在 Vaultaire 中,该模式派生出一个保管库密钥,用于验证加密索引并解开其随机主密钥。恢复使用该短语打开加密密钥信封,还需要匹配的本地或加密密钥 CloudKit 恢复记录。 Vaultaire 不持有重置密钥,因此支持人员无法绕过这些要求。将短语存储在纸上,远离手机。我们关于忘记照片库密码的指南(链接如下)解释了剩余的恢复路径以及您不应信任的声明。