有些应用程序允许通过Touch ID登录(例如银行应用程序)。
我知道,只要没有人可以非法访问我的指纹并且不实际访问该设备,使用此功能是相对安全的。
但是,如果应用程序的数据库遭到破坏怎么办?
什么样的信息会泄露?掌握这些信息可以采取什么行动?iOS是否保护此信息以防泄漏?这是在某处记录的吗?
我可以猜测,该应用程序将无法直接访问指纹照片,应该存在某种哈希值,该哈希值不允许恢复原始指纹。在理想情况下,iOS甚至不允许该应用访问哈希,而是提供某种授权方式。
有些应用程序允许通过Touch ID登录(例如银行应用程序)。
我知道,只要没有人可以非法访问我的指纹并且不实际访问该设备,使用此功能是相对安全的。
但是,如果应用程序的数据库遭到破坏怎么办?
什么样的信息会泄露?掌握这些信息可以采取什么行动?iOS是否保护此信息以防泄漏?这是在某处记录的吗?
我可以猜测,该应用程序将无法直接访问指纹照片,应该存在某种哈希值,该哈希值不允许恢复原始指纹。在理想情况下,iOS甚至不允许该应用访问哈希,而是提供某种授权方式。
Answers:
该应用程序无权访问存储在设备上的指纹数据。Apple提供的API通过简单的yes / no值告诉应用程序认证过程是否成功。没有提供哈希。这是文档。
指纹数据也存储在设备的“安全区域”中,无法访问。
Secure Enclave是A7和用于Touch ID的较新芯片的一部分。在Secure Enclave中,指纹数据以加密形式存储,根据Apple的说法,只能通过Secure Enclave可用的密钥解密,从而使指纹数据与其余的A7芯片和iOS的其余部分隔离。
资料来源:iPhone Wiki
使用Touch ID的应用程序无权访问您的指纹,也无法访问由指纹生成的任何哈希。该应用程序实际上并不会自行处理指纹匹配,而是会调用Touch ID API(系统),然后将结果发送回该应用程序。因此,该应用程序将收到的全部为true
或false
,具体取决于它是否成功。
因此,该应用无需访问任何哈希,整个Touch ID流程由iPhone的系统(iOS)完成,类似于使用Touch ID解锁手机的方式。
正如9to5mac解释的那样:
当开发人员希望应用程序用户进行身份验证时,他们不会参与如何执行身份验证的所有细节。他们只是使用要求iOS为其执行代码的代码 -苹果称之为本地身份验证框架。
(强调我的)
而AppleInsider网站解释说:
苹果通过不向应用提供对iPhone安全区域中存储的任何指纹数据的访问权限,来确保Touch ID 的安全。出现的提示与Apple已用于授权iTunes和App Store购买的提示相同。
(强调我的)