[英]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 中發布了自己的應用程序,我想我可以對我的問題給出一個明確的答案。 我實際上問了兩個問題:
答:是的。 我在我的應用程序中執行了此操作,並且該應用程序被 App Store 接受。
答:我對此不是 100% 確定的。 我認為某些應用程序這樣做是因為它們將用戶憑據保存在鑰匙串中,並希望使用特定於應用程序的密鑰代碼來保護這些數據。 然而,對於其他應用程序,我懷疑他們不會使用特定於應用程序的代碼來做任何事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.