苹果通过 Touch ID 采集用户指纹,并生成 88×88 像素、500ppi 光栅扫描数据,存储在 Secure Enclave 中。平时指纹识别过程中的指纹采样,会被存在手机内存中,并与 Secure Enclave 中的数据比对,识别完成后就被丢弃。指纹数据不会存放在苹果的服务器上,也不会存在 iCloud 或设备的 iTunes 备份中。
A7 芯片中有一个独立的 Secure Enclave 模块,它负责存放 Touch ID 采集到的指纹数据。苹果在安全文档中指出,A7 芯片能帮助采集指纹数据,但是不能读取其中的信息:
每个 Secure Enclave 在制造的过程中都会被分配到一个单独的 ID(UID),它不能访问 iPhone 中的其他系统,甚至苹果本身也不知道这个 UID。当手机被启动的时候,一个临时的密钥就会被创建出来,配合手机的 UID,用于加密 Secure Enclave 的内存部分。另外,数据将被保存在设备的文件系统中,并由 Secure Enclave 加密,Secure Enclave 密钥由 UID 和反重放计数器(anti-replay counter)同时控制生效。
A7 处理器与 Touch ID 间的交流,通过序列周边接口(serial peripheral interface bus)完成。A7 芯片能将数据传给 Secure Enclave,但不能读取数据的内容。它的加密和身份认证过程,通过设备会话密钥(session key)与内置于 Touch ID 传感器中的共享密钥共同完成。会话密钥通过 AES 密钥包创建的随机密钥,用于两边的数据交换,并通过 AES-CCM 算法传输加密。
iMore 网站曾经做过一个实验,试验中把一部手机上的 Touch ID 与另一部手机交换,Touch ID 就会立马停止工作。Touch ID 的设置失效,有时候 Touch ID 选项直接从设备的设置面板中消失。此时,再把原来的 Touch ID 装回去,设备就能继续照常运转。
在这份说明文件中,苹果公司还重申了 Touch ID 和指纹信息 “没有第三方” 规则,也就是说除了苹果本身,没有其他 App 和第三方能够使用 Touch ID 和用户指纹数据的权利。相较之下,三星已经打算将自己的 Pass API 开放给它的平台开发者。
以上转载自 PingWest