在iOS 7成功越狱之后,不少朋友对iPhone 5S的指纹识别的安全问题提出了质疑。在知乎上,一名叫做Duncan Zhang的机友给予了将这个问题进行了剖析并得出了初步的结论。以下是Duncan Zhang的看法:
在我看来,iPhone5s/c相较前一代iPhone最大的进步并不是表象上的一些摸得到看得着的指标,而是整体芯片结构的进步,这里面就包含Touch-ID体系(当然还有64位技术和独立的协处理器)。一般消费者往往看不到这一点,这是Apple针对移动终端支付时代的切实准备和巨大进步(收购AuthenTec并将其最终整合入iPhone),也是奠定移动支付基础可行的踏实脚步,目前似乎还没有看到其他厂家可以做到这一步(如有请指出)。
那么如果Jail-Breaking系统之后,iPhone 5s提供的Touch-ID是否会受到冲击呢?可以从以下几个方面来分析:
TrustZone体系使A7处理器独立
Apple在Touch-ID的专利里提到了Secure Enclave Processor的概念,明指在A7内部有逻辑上严格意义的独立硬件和软件结构,专门处理涉及支付等绝对机密的数据处理和存贮。其实其背后的概念是,ARM好几年前即开始准备的TrustZone体系,在这个体系下,A7内部的处理器资源被分为两个独立的部分,CPU可以按照处理时序在时间上进行“区隔”,配套的寄存器和片内的RAM(如果有)可以按照地址为进行“区隔”,网上有一些示意图如下:
图:TrusZone的硬件架构
图:TrusZone的软件架构
这两幅关于TrustZone的软、硬件结构上的“区隔”表现得很明显,逻辑上看(毕竟都在A7的64位的片内,和独立的协处理器不同),TrustZone区域也就是Apple所宣称的SEP(Secure Enclave 处理器)由在安全侧工作的Monitor的中断来控制独立于A7普通侧的处理资源范畴,连接这两侧的只有相关总线和Monitor(实时工作),当Touch-ID的指模传感器被安全侧的CPU调用时,Monitor会监控到系统中的安全业务激活标示(比如某个总线位被置于某种状态),从而激活SEP安全侧的CPU能力,接管生理指纹处理和存贮等等工作,再将处理结果返还给普通侧。
SEP的护航
在如此的安全体系下,SEP侧具备完整的硬件CPU能力、数据存贮空间和软件的独立OS,SEP激活时,SEP的OS是完整重新加载的,这个状态下的键盘输入(以后可以有基于SEP的密码输入)或者指模扫描和读取都是安全的,也是普通侧的CPU/OS无法染指的。也就是说,即便Hacker通过Jail-Breaking取得普通侧A7基础上的OS的完整root权限,你也看不到安全侧;当然不是说不能不Hack,但Hack的难度显然大大增加了,Hacker必须了解Apple独有的Monitor/SEP体系,走出这一步的代价,也许就大到不用考虑了。
TrustZone的推广
当然,ARM还会在自己的技术体系中推广TrustZone,随着知名度和普及度越来越高,终归会有相关的破解方法,这也和具体的芯片制造商技术水准有关。
针对SEP的特殊设计
除此之外,Apple还设计了一些简单但有效的设计,比如如果iphone在连续48个小时内不解锁,SEP模式将自动关闭,用户可以使用password进入手机;据说还有手机重起之后的第一次鉴权不能使用指纹输入、越狱之后SEP自动失效等等.... (我不确定因为我没有iphone5s)这些手段都是在尽力保护用户的指纹信息不被从手机内完整读出并做他用,密码可以改变,指纹登入虽然方便但显然因为其生理特征的唯一性和永久性,则必须享受更高的保护级别。
SEP对指纹MAP的构建
最后一个关键问题就是,SEP体系下,iPhone5S是如何鉴别指纹的。我想这是Touch-ID的最高机密,但从Apple注册专利的Patent文件里的流程描述,还是可以看得出一些端倪,如下图:
图:Apple注册专利的流程描述
这个流程图里可以明显看出,右侧的流程是发生在SEP安全侧的计算和鉴别流程,SEP在Monitor的控制下,取代普通侧的A7执行指纹读取和鉴别工作,在构建指纹的“MAP”之后(注意MAP是指纹的完整信息,是绝对需要保密的),SEP将MAP拆分成若干低分辨率的Pattern,这里的Pattern是个泛指,可能是Checksum,也可能是Hash值,还可能是柱状图,总之,这些信息不可逆,也就是说Hacker即便拿到这些信息也无法倒推出指纹的MAP。你也许会问是怎么做出这些pattern的,这些pattern分别代表何种意义,那就得问Apple,我想这也是Touch-ID的核心机密。
构建这些Pattern的主要目标还是要将其返还给普通侧的A7来做鉴别比对(上图中的左侧),显然SEP有限的处理能力会带来更多时延,A7在拿到这些Pattern之后再作逐一比对(这种比对开放,你即便Hacker到结果也无所谓),并且将比对结果再次返还给右侧的SEP,最终由SEP决定这次判决的最终结果,并将结果经由数字签名之后给出。
值得一提的是,有人问如果iTunes和Appstore或者未来Apple的支付平台要使用测试结果怎么办?可以肯定的第一点是,用户的完整指模信息MAP绝对不会出SEP范围,从安全性角度考量这样是最安全的;第二点,用户的比对和鉴权如果是在手机上执行,那么返回的比对结果要送到应用中心,则必须加密(公私钥体系)并有会话级别的互动机制,以确保结果不被窃听和篡改。
这样看,可以得出基本结论:iOS和SEP是目前为止,相对最安全的支付基础。越狱并不能获取SEP的支配权,所有的秘密都被守在SEP的范畴之内。
内容来源:知乎