在不存储用户生物特征的情况下使用 Touch ID 或 Face ID
Posted
技术标签:
【中文标题】在不存储用户生物特征的情况下使用 Touch ID 或 Face ID【英文标题】:Using Touch ID or Face ID without storing user biometrics 【发布时间】:2018-12-13 06:56:05 【问题描述】:如果这个主题不适合 ***,我提前道歉(我要求版主在适当的地方移动它)。谢谢。
我想知道应用如何使用 Touch ID 或 Face ID 来验证身份,而不会将生物特征数据存储到其服务器中。
无需 Touch/Face ID 的身份验证(此处过于简单)
-
用户登录他们的银行应用程序。
用户名和密码发送到服务器进行验证。
用户名和密码会根据银行服务器中存储的信息进行检查。
如果用户名和密码组合有效,则会颁发一个用于当前会话的令牌。
在用户允许应用使用他们的 Touch/Face ID 后...
使用 Touch/Face ID 进行身份验证
-
用户登录他们的银行应用程序。
他们使用自己的 Touch/Face ID 进行验证
...这里发生了什么?什么被发送到服务器进行验证?
我了解到,生物特征数据存储在手机上的安全芯片中,并且没有存储在任何服务器上。
对于 ios,除了 Touch/Face ID 包外,我们还需要使用钥匙串访问。为什么?这里存储了什么?
谢谢。
【问题讨论】:
【参考方案1】:典型的流程是:
首次登录:
用户使用用户名/密码进行身份验证 如果身份验证成功,系统会询问他们是否要使用 TouchID/FaceID 如果这样做,用户名和密码将存储在钥匙串中,并要求生物识别身份验证才能访问数据在后续登录时:
应用尝试检索存储的用户名/密码以触发生物特征验证 应用使用存储的用户名和密码向服务器进行身份验证。【讨论】:
这反映了我们经过多次测试并在生产中实现后的实际经验。干杯! 如果主要登录方法是电话/otp 而不是电子邮件/密码怎么办? otp 在几小时内到期。 然后您可以将生成的令牌存储在具有生物特征要求的钥匙串中,但这仅在令牌具有长期有效期时才实用。如果您无法保存持久会话令牌,那么您将需要用户每次都进行身份验证,并且生物特征身份验证不是有效的用例。【参考方案2】:它与普通密码的工作方式非常相似,它只是第二道安全线。
例如,您的设备已登录到您的 Itunes 帐户,该帐户与您的银行帐户相关联。为了采取行动,一旦匹配(使用安全芯片),设备将要求以 Touch Id/Face Id 的形式进行身份验证,设备会将请求发送给苹果,苹果将其发送给银行。是的,它可能会被愚弄,因为它发生在客户端,但您仍然需要以某种方式登录您的 Itunes 帐户,因此这是第二道安全线。
为了清楚起见,您实际上并没有使用 Touch ID 或 Face ID 登录您使用设备记住的密码登录的帐户。为了获取它记住的密码,您需要 Touch ID 或 Face ID。
【讨论】:
这与您的 iTunes 帐户无关,请求不会发送给 Apple。您可以选择使用 iCloud 钥匙串,它会在您的设备上同步某些钥匙串条目,但这不是强制性的,在许多情况下,例如银行应用程序,它们会明确地将这些钥匙串条目从 iCloud 钥匙串中排除。 我在谈论一个案例,您的付款方式(信用卡)已连接到您的 iTunes 帐户,因为在问题中他举了一个银行示例,但它肯定不仅仅绑定到您的 iTunes 帐户。只是一个例子以上是关于在不存储用户生物特征的情况下使用 Touch ID 或 Face ID的主要内容,如果未能解决你的问题,请参考以下文章