热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

没有密码回退的TouchID的SecItemCopyMatching

如何解决《没有密码回退的TouchID的SecItemCopyMatching》经验,为你挑选了3个好方法。

SecItemCopyMatching用来获取受Touch ID保护的钥匙串项目.

但是,如果Touch ID解锁失败(或用户选择"输入密码"),我想呈现自己的PIN输入UI.

我不希望在任何时候向用户呈现系统密码输入UI.

LAContextevaluatePolicy方法提供了这一点,但不提供任何实际的钥匙扣安全,仅仅是本地认证.

因此,我不会用它LAContext来实现这一点.这有可能SecItemCopyMatching吗?



1> Keith Cought..:

在iOS 8.3及更高版本中,密码后备选项最初是隐藏的,但如果无法识别第一个手指,则仍会显示.

对于iOS 9,添加了两个不会回退到密码的新策略.这些策略是kSecAccessControlTouchIDAny和kSecAccessControlTouchIDCurrentSet



2> bllakjakk..:

在我们的一个正在制作的应用程序中工作时,我们遇到了类似的困境.我们意识到我们需要触摸ID解锁以及自定义回退机制(需要服务器API进行解锁),这比4位数的解锁密码更强.

那么,让我试着解释一下我们是如何实现它的.预计苹果公司将购买Appstore和1Password应用程序.

背景:

两种集成Touch ID的机制:

    使用Touch ID访问存储在钥匙串中的凭据

    问题:

    如果设备也具有Touch ID,则首选方法是使用Touch ID进行身份验证,密码是备份机制

    不允许使用其他回退机制,Apple不允许自定义回退用户界面

    使用Touch ID直接向应用程序进行身份验证(称为本地身份验证)

    问题:

    未授权从Secure Enclave存储机密或检索机密

    与钥匙串访问案例相反,Apple不允许将设备密码验证作为备份 每个应用程序都需要提供自己的备用,以便使用自定义UI处理失败的Touch ID案例

关心:

关于在钥匙串中存储敏感信息:

我们很想使用这种方法,但是由于意识到没有使用Touch ID进行身份验证的唯一后备是设备密码而感到吃惊.iOS用户通常配置一个四位数密码,这比用户自定义密码安全性低.

整容举例:

Apple使用您的iCloud帐户密码[自定义回退机制]作为itunes商店购买的后备机制,如果用户无法使用Touch ID进行身份验证.

1Password app也有类似的方法.


结论

在我们的应用程序中,我们通过LocalAuthentication使用Touch ID进行身份验证,我们使用"应用程序特定的PIN解锁功能"或客户端密码作为回退机制.

我们不会在设备上存储密码,如果设备没有在应用程序中配置PIN,则无法通过Touch ID进行身份验证需要通过服务器API进行完全身份验证.

示例代码:

[self.laContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
               localizedReason:reason
                         reply:^(BOOL success, NSError *error) {
                             if (success)
                                 dispatch_async(dispatch_get_main_queue(), ^{ successBlock(); });
                             else
                                 dispatch_async(dispatch_get_main_queue(), ^{ fallbackBlock(error); });
                             self.laCOntext= nil;
                         }
];



3> ProgrammierT..:

这应该是对bllakjakk的评论,但我的声誉不允许我这样做.

我只是添加了这个答案,因为问题是专门询问:

获取受Touch ID保护的钥匙串项目

接受的答案提到了设备上没有存储凭据的情况.

为了完整起见,我想提一下,如果您的应用需要对某个外部实体进行身份验证,因此您必须在某处存储凭据,那么Key-Chain选项是通过本地身份验证考虑的选项.

如果他们知道设备密码(可能是弱四位数等等),那么有人能够通过Key-Chain的回退进行身份验证,这是一个没有实际意义的点,因为没有任何东西可以防止用户将自己的指纹添加到设备中他们拥有密码,然后通过密钥链或本地身份验证进行身份验证,而无需选择回退.

因此,如果您使用基于密钥链的本地身份验证,因为您觉得回退机制更安全,那么您可能会忽略那些细微的细节,因此可以放弃在安全区域中存储凭据的机会.

我们即将为财务应用程序实施TouchID,并选择Key-Chain.目的是让用户了解在尝试为我们的应用启用TouchID时对强设备密码的需求.

我希望这可以帮助你做出决定.


推荐阅读
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • Spring Boot单元测试中Redis连接失败的解决方案
    本文探讨了在Spring Boot项目中进行单元测试时遇到Redis连接问题的原因及解决方法,详细分析了配置文件加载路径不当导致的问题,并提供了有效的解决方案。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
author-avatar
透明的眼泪2502913707
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有