【源码】iOS指纹解锁Touch ID的开发

指纹解锁原理:

苹果在文件中对iPhone 5S配备的Touch ID指纹识别系统的功能与工作原理进行了详细说明。文件对iPhone 5S的A7处理器中““Secure Enclave””协处理器进行了说明,该协处理器能够安全地将用户储存的指纹信息与Touch ID当前所识别到的指纹进行信息对比。而苹果早在iPhone 5S发布时就公布了Touch ID的工作原理。但此次所获悉的文件说明得更为详细。

根据苹果的解释,一个单一的注册指纹与别人指纹出现随机匹配的概率为五万分之一。

苹果声称““Secure Enclave””模块系统能够安全地管理并识别用户的指纹,并将用户的指纹信息独立地保存在别的系统中,同时通过加密内存和一个硬件随机数字密码发生器进行管理。

每个“Secure Enclave”是单独设置的,不能访问系统其他部分的,拥有自己的独立的UID(唯一的ID),连苹果也不知道这些UID。当设备启动时,Touch ID会临时创建一个秘钥,与“Secure Enclave”的UID配合,对设备的内存空间进行加密。

而在苹果发布的文件中,苹果对A7处理器进行指纹识别授权的描述是:A7和Touch ID之间通过一个串行外设接口总线进行通信。A7处理器将数据发到“Secure Enclave”,但并不对数据内容进行读取。加密和身份验证都是使用Touch ID和“Secure Enclave”之间的共享密钥。通信密钥交换使用双方提供的一个随机AES密钥,并随机建立会话密钥和使用AES-CCM传输加密。

由于大部分的Touch ID用户可能发现,在某些情况下需要使用密码来代替Touch ID。而这份文件指出了什么情况下Touch ID不能使用和要求必须输入密码:

文件指出在以下情况下密码可以代替Touch ID:

-iPhone 5s刚刚开启或重新启动时;

-iPhone 5s没有解锁超过48小时;

-经过5次不成功指纹匹配时;

-当进行设置或使用新的手指纹使用Touch ID时;

-iPhone 5s已经接收到远程锁定命令时。

指纹解锁代码实现:

 

所以我们一开始需要判断当前系统版本

 


低于8.0的系统版本不支持指纹解锁

当系统版本大于8.0时,引入并导入头文件,书写代码!

 

posted @   王彬iOS  阅读(1336)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示