这篇文章是我对以 Touch ID 为代表的指纹识别技术的总结,其中见解多数来自我个人的经验体会,难免有错误和疏漏,欢迎指正。
指纹识别指的是将特定指纹和其所有人相关联的过程。早在 19 世纪人们就意识到,指纹所具有的特质很可能可以被用来做身份识别。
现代意义上第一次得到广泛应用的指纹识别设备,是 2013 年配备 Touch ID 技术的 iPhone 5S。然而仅仅过了四年,最新的 iPhone X 上就取消了指纹识别功能。
那么是什么原因导致了这样的结果?指纹识别会是即将被淘汰的技术吗?
指纹识别依赖的是指纹的两个特质,一是持久性,二是唯一性。
持久性保证了识别结果的长期有效性,所以非常重要,而且很容易验证一个人的指纹是终生不变的。
但对于唯一性的确认,最早是在 1910 年,现代意义上的确认,大约是在 2005 年前后。在此之前,唯一性一直停留在假设或者经验的层面上,虽然没有人找得到反例,但缺少理论支持使得指纹识别难以成为证据,获得实际的应用。
对指纹唯一性的确认是建立在现代统计学基础上的。如果用统计学的术语来表述,确认指纹唯一性等价于提问:给定一个指纹,在目标人数中找到一个足够相似的指纹的概率是多少,这个概率是否足够小。
这里就引申出另一个问题,怎么确定指纹的相似性?
人们经过研究总结,将构成指纹的斗、箕和弧等归类为细节( Minutiae )。于是指纹的相似性就可以由各种细节的匹配程度来确定。再推广到一般化的情况:在 m 个细节的原始指纹和 n 个细节的目标指纹中,找到 w 个匹配的概率 P(m,n,w) 是多少?
19 世纪初,人们对于这个概率的估计在 10^-22 左右,远远超过了地球人口可能存在的指纹种类数量。20 世纪流行的“十二点位”法则的依据也是由此而来,至少要 100 亿人才能有两个指纹具有 12 个以上匹配细节点位。由此指纹的唯一性才得到公认。
进入 21 世纪后随着 IT 和电子技术的发展,指纹识别理论向着应用的方向又进化了一大步。
这个阶段要解决的问题是:指纹细节的分布和频率是否足够随机?
之前默认的假设是肯定的,所以才给出了足够小的匹配概率。一旦事实证明指纹细节的分布并非完全随机,可能极大地压缩指纹细节组合的可能性,使得唯一性的基础不复存在。
在计算机的帮助下,人们重新建模了指纹细节的可能组合,通过对模拟结果以及现实大规模采样的对比,发现模型和现实符合得非常好,于是进一步肯定了唯一性。
由于指纹采集存在不稳定因素,除开角度方向的差别,仅仅是按压力度不同,都可能造成细节点位的距离差异,所以通常会对匹配程度进行打分,并设定一个阈值,超过阈值认为是匹配,反之则不匹配。
如果对某个特定指纹建模,再将该指纹与某个仿冒指纹分别与建模结果进行多次匹配打分,那么分数结果的分布会如下图所示:
(横坐标为匹配分数,纵坐标为出现的次数,client 为真实指纹,imposter 为仿冒指纹)
由此可以看出二者会重叠,假如分数阈值太低,会不可避免地出现仿冒指纹被当作真实指纹( False Acceptance )的情况,而当分数阈值太高的时候,又会出现大量真实指纹不被认可( False Rejection )的情况,如下图所示:
中间 EER 即代表两者误差率相同的阈值,此时的误差率通常用来衡量识别系统的精度。
(此处数据来源多为第三方,仅作参考。)
Touch ID 的安全性如何?
我个人推测最初版本的实现是以替代四位数字密码为设计目标的。
早期四位数字密码有 10 次尝试的限制,总共组合有 10000 种,可以大致认为解锁概率是 1/1000。苹果官方给出的 Touch ID FAR 为每个指纹 1/50000,总共可以录入 10 组,错误五次后需要输入密码,大概的解锁概率也在 1/1000 左右。
之后 iPhone 6s 更新了指纹识别模块,而 iOS 9 系统默认数字密码也由四位上升到了六位。非授权指纹解锁概率可能有所下降,但具体概率并不清楚。
Touch ID 硬件参数如何?
苹果官方曾经公布过初代 Touch ID 的传感器参数,为 88x88 像素 500 DPI 的电容式传感器,由此推算出实际感应面积为 4.5mm x 4.5mm 。
通常手指指纹面积在 12.5mm x 18.0 mm 上下,包含 35 个左右容易识别的细节点位,感应面积只占指纹总面积 1/10,平均下来一次扫描只能包含几个有效细节点位,所以即使多次录入也会出现不能大面积覆盖的情况。
于是第二代的传感器面积增加到了 112x96 像素,有效面积增加了 40%,极大改善了识别效率。
Touch ID 识别性能如何?
针对 Touch ID 识别性能的批评主要是两方面,一是适应性不佳,湿手等情况不易解锁,二是反应速度偏慢。
客观地说,抛开 FAR/FRR/EER 谈性能就是耍流氓。
适应性主要体现在指纹图像采集质量不佳时的 True Acceptance Rate 指标上,提高这个指标有两个方法,一个是降低匹配分数阈值,另一个是改进设备降低 EER 水平。
苹果收购的 Authentec 是曾经的业内第一,无论传感器尺寸还是 EER 指标都是行业领先,硬件上有着先天优势,那为什么用户体验反而比不上 XX 品牌手机?
很显然那些适应性好的手机采用的是第一个方法。根据前面的数学逻辑图,降低阈值会导致 FAR 提升,这就意味着非授权指纹解锁手机的概率增加。而业内只有苹果一家公布了 FAR 指标,是不是能够说明什么?
响应速度慢主要是受初代 Secure Enclave 核心性能拖累,具体原理后面会详述。最近一年多的各个品牌手机产品响应时间通常都在 0.1s 以内,这个指标已经没有太大的意义了。
为什么 Secure Enclave 会影响指纹识别速度?
根据苹果官方的安全白皮书,Touch ID 安全相关的功能都是在 Secure Enclave 上实现的。
Secure Enclave 是苹果 SoC 中负责安全功能的独立处理器。初代 Touch ID 即 iPhone 5S SoC 实际上是由 A7 主处理器、M7 协处理器和 Secure Enclave 处理器构成的,经过逆向工程研究发现,iPhone 5S Secure Enclave 处理器是基于 A5 核心的,频率约为 300Mhz,运行独立的 L4 微内核系统。
由于安全功能都由 Secure Enclave 来处理,受限于 A5 低频率核心性能,初代 Touch ID 的响应速度是比较慢的,第二代产品随着处理器性能提升,速度就不再是问题了。而其他大部分同期手机都是主处理器负责指纹识别,安全性是无法保证的。
Touch ID 指纹识别的过程是怎样的?
以下内容引用自苹果官方的安全指南:
The raster scan is temporarily stored in encrypted memory within the Secure Enclave while being vectorized for analysis, and then it ’ s discarded. The analysis utilizes subdermal ridge flow angle mapping, which is a lossy process that discards minutia data that would be required to reconstruct the user ’ s actual fingerprint. The resulting map of nodes is stored without any identity information in an encrypted format that can only be read by the Secure Enclave, and is never sent to Apple or backed up to iCloud or iTunes.
重点主要是几个方面:一是单次扫描的图像结果仅作临时存储,二是存储的指纹模板去除了重建原始指纹所必须的信息,三是存储的信息不会离开 Secure Enclave。
根据现代指纹模型的随机分布特性,很容易构建某种单向 Hash 算法,将无限的指纹细节组合映射到有限的特征模板集合,而且可以根据精度需要确定单个元素的信息量,从而降低计算压力。
将矢量化的指纹图像和指纹模板进行识别配对的过程叫模板匹配( Template Matching ),此类问题本质是 NP 完全的,所以具体实现上会用到很多优化技术,比如苹果的做法是将图像分割后降低分辨率精度,加速查找可能的匹配位置,再回高精度做确认。而分割后的计算任务可以交由主处理器并行,从而提高效率。
现阶段指纹识别无论是效率和安全性都是足够的,就我个人的观点,从长远看终将会被取代。
以 1/50000 FAR 为例,大约是 P(15,15,5) 的水平,即 15 点位中 5 个匹配,以目前的传感器尺寸来说,差不多是刚刚够用的水平。在全面屏大势所趋的今天,只有电源键和后背还能容纳如此尺寸的传感器,然而这两种配置的易用性都难以令人满意。
传言中的屏幕下指纹技术,依旧不能解决精度上限的问题。这是因为单个指纹的面积有限,以目前人类对于指纹的建模,精度顶多翻倍而已。然而这个领域的建模依旧停留在 2005 年,也就是说很大可能不再会有新的理论基础了。从苹果决定 iPhone X 采用 Face ID 那一刻起,屏下指纹技术商业上几乎也被判了死刑。
真正给予指纹识别沉重打击的是新的 Face ID 面部识别技术,将 FAR 降低到了指纹识别 1/20 的水平,在这样的技术差距面前,只有被谁取代的问题,没有会不会被取代的问题。至于 Face ID 前景的如何,那是另外一个问题。至少在逻辑交互方面,指纹识别还是有不少优势的。
1
yanjunjie 2017-09-14 11:21:03 +08:00
2011 年的时候我公司就生产指纹设备并且已经有了很多年的历史
|
2
zlfzy 2017-09-14 11:22:16 +08:00
这已经触及我的知识盲区了
|
3
ipconfiger 2017-09-14 11:22:38 +08:00
指纹识别在手指脱皮的时候能用么? 或者天生无指纹的人, 或者后天因为工作原因无指纹的?
|
4
LMkillme 2017-09-14 11:33:58 +08:00
不是说屏下指纹会回来么?
|
5
66beta 2017-09-14 11:42:22 +08:00
不是说 iPhoneX OLED 搞不了指纹,才没上的,跟 face ID 无关
|
6
paolongtao 2017-09-14 12:23:33 +08:00
face id、touch id 都只是解决机器识别人类个体的问题,并未解决“个体授权”的问题,两者不能完全划等号
切割下来的手指和头也可以用来授权,但明显不能说个体授权了相关操作 |
7
josephshen 2017-09-14 13:12:39 +08:00 via iPhone
看不到任何文献引用,感觉完全是自说自话
|
8
zhuang OP @paolongtao
你说的这一点我在别处提到过,只是这里着重谈指纹识别所以仅仅用交互不足略过了。 “面部识别还是有先天缺陷的,用作认证毫无压力,但用作授权就有交互逻辑的问题。原因在于机器无法区分 attention/intention,指纹授权不存在这个问题,意图是人决定的,面部识别大概需要增加一个步骤,比如做出表情或者点头动作,或者手指点选确认,略微不够自然。” |
9
fakeJas0n 2017-09-14 16:14:12 +08:00
说再见为时尚早
:) |
10
doskoi 2017-09-14 16:17:31 +08:00 via Android
运用于不同场景的技术,不是单纯的完全代替,谈何再见?
|
11
leekafai 2017-09-30 22:40:39 +08:00 via Android
op 说得都对,但是你的前提是错的
安全验证方式不是替代,是补充,不存在非此即彼的关系。 |