Touch ID 身份验证和钥匙串的最佳实践

Posted

技术标签:

【中文标题】Touch ID 身份验证和钥匙串的最佳实践【英文标题】:Best practice for TouchID authentification and keychain 【发布时间】:2017-10-21 17:15:14 【问题描述】:

我写了一个应用,支持普通用户名和密码的会员账户。

为了方便起见,现在我想实现 TouchID。但是我偶然发现了我的登录令牌过期(我的服务器为用户提供了这样一个令牌,以便在成功登录后使用一段时间,直到此令牌本身过期):为了通过 TouchID 登录 iser(没有他输入他的凭据再次),我需要将该信息存储在手机上。

看起来钥匙串是用于此的技术。然后我问自己:如果凭证在这个钥匙串中,那么使用 ToichID 的目的到底在哪里?为什么不直接使用存储的凭据并在后台进行静默登录?

提前致谢。

【问题讨论】:

【参考方案1】:

应用程序通常使用 TouchID 来验证启动应用程序的人是否是设备“所有者”,然后再提供对信息的访问权限。

例如,我可能会将未锁定的手机交给某人,以便他们拨打电话。如果他们启动我的银行应用程序,他们无法在不提供有效指纹或密码的情况下访问我的帐户信息,即使该应用程序所需的秘密在钥匙串中已经存在。

您需要评估您的应用所提供信息的敏感性,并确定您需要用户提供 TouchID 凭据的频率(如果有的话)。

【讨论】:

以上是关于Touch ID 身份验证和钥匙串的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

平均堆栈身份验证 - 最佳实践

移动设备的最佳实践身份验证

Web API 身份验证最佳实践

存储 oauth 和本地身份验证方法的最佳实践?

实施客户端-服务器身份验证的最佳实践

Vaadin 身份验证最佳实践