很早就留意到了这一点,就是 iPhone 关机重启后是需要输入密码而不能先使用指纹解锁的。一直没去思考为什么?如果仅仅是为了安全,那指纹不是更安全吗?以下给出了答案。

  翻开苹果的官方文档,写了这么一段:

若要配置TouchID,您必须先设置密码。TouchID旨在减少输入密码的次数;但要增加安全验证的情况下则需要输入密码:
重新启动设备后;
自上次解锁设备后已过去了48小时以上;
要进入“TouchID与密码”设置。

iPhone 指纹解锁

  至于原因,苹果发布的安全文档中可以找到答案,这份文档提供关于A系列芯片的SecureEnclave安全架构的工作信息。

  TouchID不会存储指纹的任何图像。它只存储指纹的数学表达式。任何人都不可能从该数学表达式反推导出实际的指纹图像。设备中的芯片还包含称为“SecureEnclave”的高级安全架构,专门开发用于保护密码和指纹数据。指纹数据通过SecureEnclave的专用密钥得到加密和保护。指纹数据仅由SecureEnclave使用,以验证您的指纹是否与所注册的指纹数据匹配。SecureEnclave独立于芯片的其他部分以及iOS的其他部分。因此,iOS和其他应用绝不会访问您的指纹数据,指纹数据绝不会存储在Apple服务器上,也绝不会备份到iCloud或其他任何地方。只有TouchID使用它,并且不能将它用于匹配其他指纹数据库。

  换句话说,TouchID并不会存储任何指纹图像,只会存储和指纹有关的数学表征,而呈现真实的指纹图像这个过程不可逆。另外,SecureEnclave完全独立,和A系列芯片、iOS的其它部分隔绝。指纹数据从来都不允许iOS或其它APP使用,只有SecureEnclave验证指纹时才会调用指纹数据。

  为何苹果iPhone重启后不能用指纹进行解锁?

  这样一来,设备重启时SecureEnclave被锁定,必须解锁后才可以启动SecureEnclave,否则SecureEnclave无法和TouchID进行联系,自然也无法提取指纹数据完成解锁。

  这也是为什么重启后需要输入密码才可以使用TouchID的原因。简而言之,解锁和提取指纹数据是1个循环,第1次打破这个循环需要密码,而这样的方式也可以最大程度保护大家的隐私。