Touch ID 是 Apple 的生物识别验证系统,基于通过嵌入 Home 按钮或电源按钮中的容电传感器扫描指纹。该技术于 2013 年首次登场 iPhone 5S,成为移动市场上的第一个大规模生物识别传感器。据 Apple Platform Security (2025),Touch ID 的偶然匹配概率为 0.001% — 50 000 个指纹中只有 1 个。
主要内容
Touch ID 是 Apple 为 iPhone、iPad 和 Mac 设备上的用户验证而开发的生物识别指纹传感器。该技术基于容电扫描:传感器上的一层薄薄的蓝宝石玻璃保护着一个 500 点容电矩阵,该矩阵可读取乳突纹的最细微细节——细节、气孔和线条方向。
与当时 Android 设备中流行的光学扫描器不同,Touch ID 的容电方法由于手指与传感器直接接触而提供更高的精度。 Home 按钮周围的陶瓷环(detection ring)检测手指触摸并仅在存在活性接触时激活矩阵,避免因意外触碰金属物品而导致的虚假触发。
第一代 Touch ID(iPhone 5S,iPad Air 2)厚度为 170 微米,传感器分辨率为 500 PPI。第二代(iPhone 6S, iPhone SE 第 1 代)将传感器更新为 170 微米矩阵,改善了对湿手指的识别。第三代用于带有键盘 Touch ID 按钮的 MacBook Air 和 MacBook Pro 中,传感器直接连接到 Apple T2 或 Silicon Secure Enclave 芯片。
通过 Touch ID 验证的过程包括两个阶段:注册(enrollment)和验证(verification)。两个阶段均在 Secure Enclave 内执行——这是一个特离的安全協处理器,即使拥有 root 权限,iOS 也无法访问。
用户从不同角度多次将手指放在 Home 按钮上。容电矩阵以 500 PPI 的分辨率扫描大小为 8×8 毫米的指纹区域。系统从不同倾斜角度收集同一指纹的最多 12 个不同片段,这是为了在手指旋转 360 度时能够识别。每个片段被转换为数学模板,并合并成一个指纹参考模板。
当手指触碰时,detection ring 向 Secure Enclave 发送信号,启动扫描。矩阵在 200–300 毫秒内捕获当前指纹,提取细节(乳突线的终止点和分岐点)并与存储的模板进行比较。Secure Enclave 在 50–100 个点上进行比较,计算相似度度量。如果匹配度超过阈值,验证被认为成功。
3 次失败尝试后,Touch ID 将被锁定 10 秒钟。5 次失败尝试后,将要求输入设备密码,Touch ID 将关闭直到第一次成功输入密码。重启设备或自上次解锁后 48 小时后,Touch ID 也需要密码——这是 Secure Enclave 的硬件要求,无法通过软件方式绕过。
Touch ID 传感器是一个多层结构,每层执行其功能:从机械保护到触摸检测和指纹采集。来自传感器的所有数据通过加密信道直接传输到 Secure Enclave。
| 层 | 材料 | 功能 |
|---|---|---|
| 蓝宝石玻璃 | 合成蓝宝石 | 保护矩阵免受划伤;透过手指的电场 |
| Detection ring | 不锈钢 | 检测手指触摸并激活传感器 |
| 容电矩阵 | CMOS 传感器 500 PPI | 读取皮肤崁起和沟壑之间的电容差异 |
| 数据总线 | 加密信道 | 不经 OS 访问,直接将数据传输到 Secure Enclave |
| Secure Enclave | ARM TrustZone | 存储模板、比较并做出验证决定 |
关键架构决策是 操作系统无法访问原始数据。iOS 既看不到指纹图像,也看不到模板本身。Secure Enclave 仅返回二进制结果:成功或拒绝。这排除了在应用程序或操作系统层面上软件截取生物识别数据的可能性。
Touch ID 和 Face ID 是 Apple 的两项归纳的生物识别技术。尽管目标相同(用户验证),但它们在架构、使用场景和安全特性上各有不同。比较有助于开发者理解在设计应用程序验证时应考虑哪些限制。
在 iOS 开发中,两种 API 均可通过单一框架 LocalAuthentication 获得。调用 canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics) 将返回生物识别的可用性,而不管其类型如何。这意味着带有生物识别验证的应用程序可以在所有 Apple 设备上正确运行。
Touch ID 的安全架构基于三个原则:硬件特离、与设备的加密绑定以及不存储原始图像。这些原则通过 Secure Enclave 实现——这是一个在其自己的 SEPOS 固件下运行的協处理器。
Secure Enclave 在生产阶段生成唯一的设备标识符(UID),嵌入芯片中,无法通过 JTAG 或探针站读取。指纹模板由源自 UID 的密钥加密,并存储在 Secure Enclave 内部的加密闪存中。每次设备启动时,SEPOS 通过硬件验证器检查固件完整性——如果固件被修改,Secure Enclave 将永久锁定。
Touch ID 符合 FIDO2 的生物识别验证要求,用于 Apple Pay 中的支付授权。PCI DSS 标准承认 Touch ID 是移动支付的可接受验证因子,前提是与设备 PIN 码结合使用形成多因素方案。设备受協时,攻击者无法从 Secure Enclave 中提取指纹模板——数据将在每次通过系统模式的未经授权访问尝试中被销毁。
在 iOS 开发中,Touch ID 集成通过 LocalAuthentication 框架实现——与 Face ID 使用的 API 相同。代码对两种生物识别类型均普适,无需指定特定传感器。系统会自动确定用户设备上可用的生物识别方法。
import LocalAuthentication
func authenticateWithTouchID() {
let context = LAContext()
context.localizedReason = "请确认您的身份以访问数据"
var error: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error
) else {
// Touch ID 不可用——显示密码输入屏幕
showPasscodeScreen()
return
}
context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "用您的手指触碰 Touch ID"
) { success, authError in
DispatchQueue.main.async {
if success {
// Touch ID 已确认
self.unlockContent()
} else {
// 验证错误
handleError(authError)
}
}
}
}
该代码展示了通过 Touch ID 验证的标准实现。canEvaluatePolicy 方法检查 Secure Enclave 中已注册指纹的存在以及设备上传感器的可用性。如果设备装的是 Face ID 而非 Touch ID,相同的代码将无需修改即可运行——LAContext 将自动选择可用的传感器。三次失败尝试后,硬件锁定将触发,用户必须输入设备密码。
为了将生物识别验证与特定操作(例如,Apple Pay 中的支付签名)进行加密绑定,使用带有 SecAccessControl 参数的 evaluateAccessControl 方法。这种方法将 Touch ID 的结果与 Keychain 中的密钥绑定:成功的验证将解锁对秘密密钥的访问,以执行加密操作。没有成功的指纹扫描,密钥将保持锁定在 Secure Enclave 中,排除了软件绕过生物识别检查的可能性。
Touch ID 用于多个关键场景,既在 iOS 系统层面也在第三方应用程序中。每个场景使用单一的 LocalAuthentication API,但对安全策略提出不同的要求——从简单解锁到加密签名的交易授权。
主要场景包括解锁设备、App Store 和 iTunes 中的购买授权、通过 Apple Pay 确认支付、从 iCloud Keychain 自动填写密码以及通过 LocalAuthentication 在第三方应用程序中验证。在每个场景中,Touch ID 作为密码输入的替代品:用户触碰传感器,Secure Enclave 确认身份,然后执行操作无需输入凭证。
在 iOS 14+ 中,出现了额外的 API ASAuthorizationAppleIDRequest,将 Touch ID 与 Apple ID 集成,用于通过 Safari 无密码登录网站。用户触碰 Touch ID,浏览器将从 Secure Enclave 接收加密签名的令牌,服务器可以验证该令牌而无需存储密码。这一机制是 Apple Passkeys 生态系统的基础。
常见问题
Secure Enclave 中最多可以存储 5 个指纹。可以存储同一用户的不同手指(大拇指、食指、中指),或添加家庭成员的指纹以共享设备访问。尝试添加第六个指纹时,系统将建议删除一个现有指纹。每个指纹作为独立的加密模板存储。
第一代 Touch ID(iPhone 5S, iPhone 6)无法用于湿手指——水会产生导电薄膜,干扰容电读取。第二代(iPhone 6S 及更新版本)由于提高了传感器敏感度而改善了对湿手指的识别。为了最佳性能,建议擦干手指。
理论上可以——从 500 PPI 扫描中获取的高质量硅胶指纹复制品可以通过 Touch ID 验证。但制作这样的复制品需要实验室条件和原始指纹。Secure Enclave 提供额外保护:限制尝试次数,并在 5 次失败后锁定传感器,使自动暴力破解攻击不可行。
Secure Enclave 是 Apple A 系列芯片上的特离協处理器,在 SEPOS 下运行。它拥有自己的固件、单独的数据总线连接传感器以及硬件 AES-256 加密模块。Secure Enclave 存储指纹的数学模板,在验证时进行比较,并仅向 iOS 返回二进制结果:成功或错误。
2026 年,Touch ID 出现在 iPhone SE(第 3 代)、iPad(第 9 代和第 10 代)、iPad Air(第 4 代和第 5 代)、iPad mini(第 6 代)以及所有配备 Apple Silicon 芯片的 MacBook。旗舰机 iPhone 15 和 16 Pro 仅使用 Face ID。在 Mac 上,Touch ID 按钮位于键盘右上角,直接连接到芯片的 Secure Enclave。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。