繁体   English   中英

可以使用设备密码向 iOS 应用程序验证用户身份吗?

[英]Is it OK to use device passcode to authenticate user to an iOS app?

我正在向我的应用程序添加用户身份验证支持。 唯一的要求是用户应该是设备的所有者(应用程序不访问远程服务,也不需要访问钥匙串中的密钥)。

我已阅读LocalAuthentication框架文档并进行了实验。 我知道调用LocalAuthentication API 首先使用触摸/面部 id 对用户进行身份验证在技术上是可行的,如果失败则回退到要求用户输入设备密码

但是,在我使用过的所有 iOS 应用程序中,我从未见过像这样对用户进行身份验证的应用程序(我的意思是,使用设备密码)。 当我在这些应用程序中启用触摸/面部身份验证时,他们都要求我先设置一个较短且几乎从未使用过的应用程序专用密码,在我看来这不仅不方便而且不安全。 我想知道他们为什么不只使用设备密码 Apple Store 中是否有不允许这样做的政策? 我的应用会因为这样做而被拒绝吗? 感谢您的任何解释。

更新

根据这篇文章,使用 keychain 比使用LocalAuthentication更安全,因为前者是系统级组件,后者是应用层组件。 但是,文章建议在访问钥匙串中的项目时使用设备密码,而不是特定于应用程序的密码

开发人员在钥匙串上设置访问控制至关重要,这样当用户尝试检索安全项目时,他们必须使用设备密码进行身份验证(因此,启用时需要面容 ID)。

现在我已经在 App Store 中发布了自己的应用程序,我想我可以对我的问题给出一个明确的答案。 我实际上问了两个问题:

  1. 可以使用设备密码向 iOS 应用程序验证用户身份吗?

答:是的。 我在我的应用程序中执行了此操作,并且该应用程序被 App Store 接受。

  1. 为什么大多数(如果不是全部)应用程序都会引入应用程序特定密码?

答:我对此不是 100% 确定的。 我认为某些应用程序这样做是因为它们将用户凭据保存在钥匙串中,并希望使用特定于应用程序的密钥代码来保护这些数据。 然而,对于其他应用程序,我怀疑他们不会使用特定于应用程序的代码来做任何事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM