【问题标题】:Using Touch ID or Face ID without storing user biometrics在不存储用户生物特征的情况下使用 Touch ID 或 Face ID
【发布时间】:2018-12-13 06:56:05
【问题描述】:

如果这个主题不适合 Stackoverflow,我提前道歉(我要求版主在适当的地方移动它)。谢谢。

我想知道应用如何使用 Touch ID 或 Face ID 来验证身份,而不会将生物特征数据存储到其服务器中。

无需 Touch/Face ID 的身份验证(此处过于简单)

  1. 用户登录他们的银行应用程序。
  2. 用户名和密码发送到服务器进行验证。
  3. 用户名和密码会根据银行服务器中存储的信息进行检查。
  4. 如果用户名和密码组合有效,则会颁发一个用于当前会话的令牌。

在用户允许应用使用他们的 Touch/Face ID 后...

使用 Touch/Face ID 进行身份验证

  1. 用户登录他们的银行应用程序。
  2. 他们使用自己的 Touch/Face ID 进行验证

...这里发生了什么?什么被发送到服务器进行验证?

我了解到,生物特征数据存储在手机上的安全芯片中,并且没有存储在任何服务器上。

对于 iOS,除了 Touch/Face ID 包外,我们还需要使用钥匙串访问。为什么?这里存储了什么?

谢谢。

【问题讨论】:

    标签: android ios touch-id 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 帐户。只是一个例子
    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多