iPhone 5s的Touch ID指纹数据的安全性如何保证?就靠它:苹果准备了七年的Secure Enclave
本文译自Quora用户Brain Roemmele在问题“What is Apple's new Secure Enclave and why is it important ?” 下给出的答案。有删减。
7年摸索的结果
从2008年开始我就注意到了苹果要采用指纹扫描的消息并一直关注至今。直到9月10日发布的iPhone 5s印证了我长久以来的猜想,这对苹果和我来说都是一段漫长的旅程。我相信Touch ID的果实会在10年内结出。
多年来,就连业内资深人士都对苹果可能采用的指纹技术的可靠性和必要性心存质疑。这种情况在去年苹果收购了AuthenTec之后有所改观,一些和我一起工作的初创公司终于开始重视起来。然而,还是有人选择了视而不见,他们觉到只要不去理睬,这事儿就不存在一样(这可是某位创业者说的)。
当我在5年前第一次看见苹果关于此类技术的专利申请时就被深深迷住了。之后,我开始思考苹果将会如何保存这些极重要生物学信息。根据自己在支付卡行业,尤其是PIN码方面逾30年的从业经验,我知道这不是单靠软件方案就能解决的。于是我想一定会有一个独立的硬件被用来存储信息。
Secure Enclave
网上分析Touch ID的文章已经有成千上百,但是真正意识到这项技术的革新意义的却不算多。苹果不仅打造了最精确的量产生物学安全识别设备,他们还解决了如何加密、存储和保护数据这个关键问题。苹果称之为Secure Enclave,可以说这是个新概念。
为安全而生的A7
苹果选择基于ARMv8架构的A7芯片有很多原因,其中一个就是为了满足Touch ID的硬件需求。为了经济地搭建Secure Enclave, 苹果需要的芯片必须具有原生的安全性能并且有专门的区域供隔离和加密。
这正是ARM大约在三年前就开始研究的地方,并且通过一系列合作打造出了名为TrustZone/SecurCore的技术。TrustZone技术和A7芯片精密结合并通过AMBA AXI 总线和特定的TrustZone System IP块贯穿系统层面。这种布局意味着保护外围设备不受软件攻击成为了可能。
这篇ARM在2008年发布的白皮书节选从侧面反应了A7在移动支付方面的作用:
“6.2.2 移动支付
不少嵌入式设备开始存储大量用户信息,包括电子邮件、移动银行资料和移动支付证书等高度敏感信息。这些信息可以通过密码的方式受到保护,然而一旦解锁后就会容易受到任何底层软件漏洞的危害。
把数据的存储、修改甚至是密码输入都迁移到Secure区域是非常合理的。尽管那些应用需要各自读取不同类型的用户信息,但是在安全限制问题方面却有着相似要求。为做到这点,Gadget2008的移动支付功能将具备更加严格的限制条件。”
Secure Enclave的工作原理
苹果用高度优化过的TrustZone为基础做出了Secure Enclave。我们当然不指望苹果透露任何关于定制硬件的细节,因此我就以TrustZone为分析对象,借此来推断Secure Enclave的情况。
TrustZone系统通过完全分割硬件和软件资源以保证安全性,这两者被分别安置在Secure区和Normal区 – 前者为安全子系统而设,后者则是处理其它任务的正常区域。AMBA3 AXI总线保证Normal区的组件无法访问Secure区的资源,以此方式在两区之间建立区一道坚固的墙来杜绝对储存在Secure区的敏感资源做出的潜在攻击。
这种物理隔离的方式将有效减少需要通过安全验证的子系统数量。监控模式(monitor mode)会负责在两个虚拟处理器之间切换以应对安全验证的要求。
由此可见,A7是自带安全基因的。建立在硬件架构上的安全性非常稳固的。光是访问储存在Secure Enclave内的信息就要求在硬件破解上付出大量工作。这显然对设备本身是有利的,那么对于互联网又有什么影响呢?事实上,那些用来激活云端系统的数据的用途就像一把连接网络的钥匙,这就是苹果将要在iTunes和App Store里采取的模式。同时,还有可能到来的零售支付系统。
ARM网站上就给出了一个移动支付方式的例子 -- 个人POS终端: