Face ID是Apple的生物识别认证系统,基于TrueDepth摄像头的3D面部扫描技术。该技术于2017年首次出现在iPhone X上,并取代了旗舰机型上的Touch ID。根据Apple安全指南,Face ID被随机面容意外解锁的概率为一百万分之一——比Touch ID(注册单个指纹)低20倍。
要点
Face ID 是Apple为iPhone和iPad开发的生物识别认证系统。它使用TrueDepth摄像头创建用户面部的精确3D模型,并将其与存储的数学模板进行比较。由于红外照明,该系统在完全黑暗中也能正常工作。
第一款iPhone X(2017年)引入了Face ID作为主要的生物识别方式,取代了Touch ID。根据Apple的说法,该系统使用Neural Engine上的16核神经网络,每秒处理多达6000亿次操作,专门用于面部识别。多年来,该技术经历了多代发展——从iPhone X到iPhone 16 Pro,Face ID的速度提升了30%,并支持更多视角。
Face ID与竞争对手的关键区别在于使用3D扫描,而非普通的2D照片。这使得系统能够抵御图像、面具和视频攻击。2023年,Apple确认Face ID每月用于认证、支付和自动填充密码的次数超过100亿次。
TrueDepth 是一个摄像头模块,由三个关键组件组成:点阵投影器(Dot Projector)、红外摄像头(Infrared Camera)和泛光照明元件(Flood Illuminator)。所有三个组件均在940纳米光谱下工作,人眼不可见且对视物安全。
投影器使用激光二极管和VCSEL(垂直腔面发射激光器)衍射光栅,将超过30,000个不可见的红外点投射到用户面部。VCSEL激光器以对眼睛安全的功率(根据IEC 60825标准的1级)工作,能够以高达0.1毫米的精度构建面部深度图。
红外摄像头读取点的反射,而泛光照明元件在低光照条件下用均匀的红外光照射面部。来自摄像头的数据传输到Neural Engine,后者构建面部的3D模型并与Secure Enclave中存储的模板进行比较。整个过程耗时不到400毫秒,且完全在设备上执行。
| 组件 | 功能 | 技术 |
|---|---|---|
| Dot Projector | 投射30,000个红外点 | VCSEL激光器,衍射光栅 |
| Infrared Camera | 读取点的反射 | 1280×960像素,940纳米光谱 |
| Flood Illuminator | 用红外光照射面部 | 6个LED,940纳米,1级 |
| Neural Engine | 处理3D模型 | 16核,每秒高达1万亿次操作 |
Face ID的过程包括三个阶段:图像采集、3D模型构建和与模板比较。在第一阶段,泛光照明元件照射面部,红外摄像头获取红外光谱图像。然后,点阵投影器向面部投射30,000个点阵,摄像头捕捉它们相对于参考网格的变形。
Neural Engine分析每个点的变形,并构建面部的深度图——一组描述面部轮廓的30,000个X、Y、Z坐标。同时,红外图像由第二个神经网络分析以检查Attention Aware——系统确保用户正睁眼直视屏幕。
深度图和红外图像被转换为大约3KB的数学模板,与Secure Enclave中存储的模板进行比较。如果匹配度超过阈值(可在iOS中设置),则认证被视为成功。根据Apple的说法,Face ID会适应外观的变化:胡须生长、胡子、眼镜、帽子——神经网络在每次成功解锁后更新模板。
随着2022年iOS 15.4的发布,Apple增加了对戴口罩Face ID的支持。系统仅分析眼睛周围的区域——它们的形状、瞳孔之间的距离和眼眶深度。为此,使用了一种在数百万张戴口罩的面部图像上训练的特殊算法。戴口罩解锁稍慢(0.6秒对比0.4秒),但为日常使用提供了足够的安全级别。
Secure Enclave(SEP)是Apple A7及更新芯片中的专用协处理器,独立于主操作系统运行。在Face ID的上下文中,Secure Enclave执行两个功能:以加密形式存储生物特征模板,并将新样本与模板进行数学比较。iOS无法访问摄像头的原始数据——只能访问比较结果:匹配或不匹配。
面部模板使用在设备首次开机时从芯片唯一标识符(UID)生成的密钥进行加密。UID在生产阶段嵌入Secure Enclave,无法从外部读取。根据Apple平台安全文档,即使是Apple也无法从设备中提取面部模板。
Attention Aware 是一个额外的安全层,用于检测用户是否在有意注视屏幕。如果眼睛闭合或视线移开,Face ID将不会解锁手机。这种保护可防止在睡眠中或所有者不知情的情况下解锁。对于视力障碍人士,可以在设置中关闭Attention Aware,但这会降低安全级别。
Apple使用超过一千个面具测试了Face ID,这些面具由电影行业的专业特效制作商制造。由于技术的组合,没有一个面具能够欺骗系统:红外摄像头分析皮肤的热辐射,点阵投影器检查3D轮廓,Neural Engine检测面部肌肉的微运动。市场上没有记录到任何通过面具绕过Face ID的确认案例。
Face ID和Touch ID之间的选择取决于使用场景和个人偏好。Face ID 非接触式工作——用户只需注视屏幕。Touch ID 需要与按钮或传感器进行物理接触,但不需要与设备进行视觉接触。
| 参数 | Face ID | Touch ID |
|---|---|---|
| FAR(误接受率) | 1:1,000,000 | 1:50,000 |
| 速度 | 0.4秒 | 0.2秒 |
| 黑暗中工作 | 是(红外照明) | 是 |
| 戴口罩工作 | 是(自iOS 15.4起) | 是 |
| 非接触式 | 是 | 否 |
| 多用户 | 仅1个面部 | 最多5个指纹 |
在COVID-19大流行之后,Apple增加了戴口罩解锁Face ID的功能(iOS 15.4+)——系统仅分析眼睛周围的区域。然而,为了最大安全性,Apple建议使用完整的面部识别。Touch ID 仍然在iPhone SE和iPad(Home按钮)上可用,并且仍然是戴口罩、戴厚镜片眼镜或有医疗禁忌症用户的首选方法。
LocalAuthentication框架为iOS上的Face ID和Touch ID提供了统一的API。开发人员无需知道设备上安装了哪种传感器——系统会自动选择可用的生物识别方法。以下是一个带有注意力检查的认证示例。
import LocalAuthentication
class AuthManager {
let context = LAContext()
func authenticate() {
var error: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error
) else {
print("生物识别不可用:\(error)")
return
}
context.localizedReason = "需要认证才能登录"
context.interactionNotAllowed = false
context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics
) { success, authError in
if success {
print("认证成功")
} else {
print("错误:\(authError)")
}
}
}
}
canEvaluatePolicy 方法检查设备上生物识别的可用性——如果Face ID未设置或在太多次失败尝试后被锁定,则返回false。interactionNotAllowed 参数决定系统是否可以显示对话框。对于Face ID,iOS会自动添加图标和面部识别动画。
常见问题
不能。Face ID使用带有30,000个红外点的3D扫描,而非普通照片。平面图像无法创建深度图,Neural Engine会立即识别伪造尝试。即使是高质量的3D面具也无法欺骗系统——算法会检查皮肤纹理和面部肌肉的微运动。
Face ID每个设备仅支持一个面部。与Touch ID(最多5个指纹)不同,Apple有意将Face ID限制为单个用户以提高安全性。如果手机由多人使用,每个人用各自的密码解锁,而非生物识别。
能,Face ID在完全黑暗中也能正常工作,这得益于泛光照明元件——一种红外照明,用波长为940纳米的人眼不可见光照射面部。红外摄像头不受外部光照影响即可捕捉图像。
在5次失败尝试后,Face ID被锁定,iPhone要求输入密码。这是针对暴力破解攻击的保护。成功输入密码后,Face ID再次激活。重启设备时也需要密码——生物识别在首次输入密码之前不可用。
支持,Face ID用于确认通过Apple Pay进行的支付。支付只需双击侧边按钮并注视屏幕。交易通过生物识别确认,而非输入PIN码。没有Face ID,支付只能通过Apple ID密码确认。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。