ARM系统与软件部门安全领域营销总监 Rob Coombs
ARM TrustZone 的可信执行环境和线上快速身份验证确保鉴权安全无虞
ARM系统与软件部门安全领域营销总监 Rob Coombs
智能互联的移动设备越来越广泛地应用于商务、金融和娱乐行业。基于远程互联网服务器的用户鉴权是许多应用程序或云服务的第一个环节,传统的用户名与密码身份鉴权方式的效果不太理想,一方面消费者难以记住复杂的密码,另一方面服务提供商(通常称为“依赖方”)可能需要考虑密码泄露风险。为了应对这些状况并且解决其他密码相关问题,线上快速身份验证(Fast Identity Online,FIDO)联盟制定了全新的协议,在用户、设备和依赖方之间实现简单而安全性强大的鉴权机制。在移动设备上,FIDO可以利用生物特征鉴权,通过扫描指纹或者虹膜来启用服务。如此一来,不仅可以大幅改善用户体验,让消费者进行交易时更顺畅无碍,而且这一项技术很有可能被设备制造商快速采用。
为了帮助 FIDO 抵御恶意攻击,加密密钥、敏感进程和鉴权数据采集等资源需要被保护,同时还需维持系统的完整性。本文将介绍 ARM TrustZone 技术如何提供 GlobalPlatform 可信执行环境(Trusted Execution Environment,TEE)所需的硬件隔离,以及为何这一安全层可以适用于保护基于 FIDO 的鉴权。
2014年,ARM 的芯片合作伙伴交付了 20 多亿片基于 ARM Cortex-A 处理器的应用芯片,应用于手机、平板电脑、数字电视以及其他智能互联设备。这些设备越来越多地用于访问云服务,以及一些高价值应用(如支付和企业/政府信息处理等)。为了防止系统资源受到攻击, ARM 平台组合使用了多种技术:Cortex 核心hypervisor模式、基于 TrustZone 的 TEE、防篡改安全处理器,或者通过 ARM SecurCore处理器 IP 进行保护的安全要件。这种多层面或区域化的方法提升了整体系统的安全性,并且可以提供超越操作系统并拓展至移动设备内各种不同资源的适当保护级别。
基于TrustZone的TEE旨在以更低的成本向市场提供增强的安全性,抵御软件攻击和常见硬件攻击(shack攻击),其架构在通用环境(操作系统和应用程序)和隐蔽的安全环境之间提供隔离。需要指出的是, 在安全环境里能够实现诸如加密、密钥管理和完整性检查等敏感操作。它已成为设备制造商的重要硬件安全层,这些制造商在过去十年一直对此进行开发和标准化,以保护宝贵的系统资源。TEE由 GlobalPlatform进行了标准化,创建了合规与认证计划,这样独立测试实验室可以检查各种平台能否抵御防护配置文件中识别的威胁。GlobalPlatform已发布关于TEE的白皮书,内容为 FIDO 用例和 ARM TrustZone 技术的信息。
FIDO联盟的标准化工作促进了安全认证向利用生物特征鉴权的无密码登录转移。通用鉴权框架(Universal Authentication Framework,UAF)等FIDO协议实现了利用多种鉴权机制进行本地用户验证,如指纹传感器、虹膜扫描器或取代传统用户名与密码的PIN输入。
人们常说,安全性像是一条链子,其中每道环节都与安全息息相关。借助这一个比喻,第一个重要的环节就是安全硬件,它可通过TrustZone技术把通用的执行环境隔离,创建可信启动(trusted boot)的环境。可信启动在启动通用环境操作系统之前初始化可信操作系统及TEE,建立了TEE之后,可以配置 FIDO 可信应用,负责管理密钥资料、密码和其他敏感操作。
本文探讨了基于 TrustZone的TEE 架构可以完美满足 FIDO 安全性要求的原因及其所扮演的角色,在集成身份鉴权模块的智能设备中,它实际上是一种基准安全技术。
使用具备 FIDO 功能的智能设备的消费者可以在其喜爱的在线购物网站或银行注册一次。在注册过程中,设备会创建特定于用户、用户的设备以及依赖方所形成的组合的公钥和私钥。消费者以后访问该在线商店时将变得非常轻松,因为只要快速轻扫手指或输入简单易记的 PIN 码 (见图 1) 即可取代常规的用户名/密码方式的鉴权步骤及购买确认过程。FIDO 协议不会共享一般用户信息,因为其实施过程不会泄露用户私人信息。由于依赖方仅保管公钥,所以如果网站服务器受到攻击(当前业内的一大难题),黑客们也无法直接利用它来盗取帐户信息。
图1 简单FIDO用户体验
FIDO联盟由 180 多个成员组成,涵盖了从大型芯片合作伙伴(如高通)、设备制造商(如三星和联想)、操作系统公司(如微软和谷歌)、FIDO 服务器提供商(如 NokNok Labs)到依赖方(如美国银行和 PayPal)的整个价值链。它制定了技术规范和认证流程,以便实现更简单、更强大鉴权的使命。FIDO 协议设计的动力在于,人们渴望增强鉴权器的易用性、内在保密性、设计安全性,并且推动其实现标准化,让依赖方能够使用任何符合 FIDO 规范的鉴权器。最终版 FIDO 1.0 规范已经公布在网上,它包含两种备选的用户体验:通用鉴权框架为智能手机等内置鉴权的设备提供无密码体验;通用第二要素(Universal 2nd Factor,U2F)则适用于软件保护器,防止传统的用户名/密码遭受钓鱼式攻击。相关工作正在进行之中,以实现 FIDO 2.0 统一标准。
虽然依赖方使用用户名和密码作为安全防护已有几年,但无法满足消费者和企业用户需要,因为密码存在许多问题。消费者偏向于选择安全防御较弱的密码或在多个网站间重复使用同一组密码,这样黑客盗取帐户的几率大幅提升。如果消费者被强制选择复杂的密码,他们可能会因为忘记密码而放弃交易。更为糟糕的是,密码容易通过垃圾邮件骗取,造成大规模金融诈骗事故,根据卡巴斯基公司估计,2014年网络钓鱼犯罪集团从多家银行窃取的金额高达十亿美元。企业有时候要求使用一次性密码(One Time Password,OTP)令牌等第二要素,它通常提供一个与用户名/密码一起使用的代码。这些令牌通常具有专有性质,使得消费者的口袋和抽屉里充斥着各种硬件:或许有一个 OTP 令牌要用于银行,另一个用于办公邮件,其他令牌则用于别的服务提供商。使用传统鉴权的依赖方还存在另一个问题,他们需要保管每一位客户的私钥。这些存有凭据的海量数据库成为黑客的最爱,他们只需一次精心设计的攻击,便能窃取数百万消费者的个人凭据,这样会给大品牌公司带来声誉风险,公司可能不得不承认存在安全漏洞,并要求其客户尽快重设密码。
FIDO缓解了与传统用户名和密码相关的问题,同时又为消费者带来更加愉悦的体验。例如,在Samsung Galaxy S5上,用户可以通过指纹验证登录网站或购物付款。如此简便的用户体验是通过 FIDO UAF协议所实现的,用户名/密码替换成指纹传感器等内置鉴权器,可解锁设备上存储的私钥,用于和远程服务器(保管着公钥)进行加密质询。依赖方也可以获取元数据以提供一些基本信息,如鉴权器的类型、所用的密钥保护机制,以及设备型号,可用于后端风险分析。但是,不会与在线服务器交换生物特征数据、PIN 信息或私钥。FIDO 协议的这种“设计隐私性”为消费者提供了另一层保护,降低了因为商店服务器的安全漏洞而遭受困扰的可能性。加密质询基于完善的公钥加密法原则,其在设备上为每一用户/设备/依赖方组合生成一组公钥/密钥。
FIDO安全性要求可以归纳为:①确保设备的完整性;②保护密钥资料的机密性,使其免遭未经授权的访问;③维护敏感流程的机密性和完整性。
设备上的攻击有许多形式,包括恶意软件、社交工程、设备失窃、实物遗失,以及因使用不当或用户在其设备上越狱造成的设备安全问题。
攻击可以通过许多不同的方式进行,恶意软件也能借助传统的途径安装,如流氓软件商店、社交工程、木马或浏览器等其他攻击途径。恶意软件存在于设备上时,可能突破其沙盒或进程权限,设备上保存或输入的任何数据便会遭到泄露。
此外,如果攻击者可以访问到实体设备,也有可能进行进一步的攻击。如果攻击者可以访问设备的文件系统,他们就可能盗取数据。如果数据已加密,攻击者可能会将数据从设备中拷出,并对加密数据进行脱机攻击。虽然软件攻击通常是主要的威胁,但是如果攻击者获得了手机,开启设备和探查主板等硬件攻击也有可能发生。
传统的安全架构设计依赖于两个基本概念:最少特权原则和系统分区为受保护区域。例如,基于 TrustZone 的TEE 通常设计为即使通用环境已被攻破,也能保持其隔离性。恶意攻击者可能会占领通用环境,窥探与TEE的通信,但可信环境将维持其完整性和机密性。
GlobalPlatform 对 TEE 进行了标准化 (见图 2),制定了规范、合规流程和认证方案。他们编写了白皮书,深入探讨 TEE如何为支付、内容保护和双重角色设备等提供机密性和完整性。为简洁起见,此处仅提供简短的说明。TEE 通过完整性和机密性的安全保障保护敏感代码和数据的安全区域,例如,恶意应用程序无法读取设备上存储的私钥。TEE 设计为可以抵御可扩展软件的攻击,当有人盗取了您的设备时,它也能抵御常见的硬件攻击(有时称为“shack 攻击”)。
基于 TrustZone 的 TEE提供一个“安全环境”,其安全边界足够小,能够为认证和可证实安全性提供路径,它通常用于保护加密密钥、凭据和其他安全资源。TrustZone 提供了hypervisor不具备的诸多系统安全功能:支持安全调试、提供安全总线事务、让安全中断直接进入可信环境(用于可信输入)。目前,存在这样一种观点,即要限制可信环境中安全功能的数量,从而限制攻击层面,使认证付诸实践。
TrustZone 安全扩展通过为处理器提供额外“安全状态”,允许安全应用程序代码和数据与一般操作隔离而发挥作用。这种分区形成了一种受保护执行环境,可信的代码可以在其中运行,并可访问内存或外设等安全硬件资源。通常,可信环境与其自有的专用安全操作系统及可信启动流程配合,形成能与传统操作系统(如 Linux 或 Android)协同工作的 TEE,从而提供安全服务。
安全性的可靠与否,取决于信任链中最薄弱的环节。信任链的起点为信任根(ROT),它通常部署在硬件之中以防止遭到修改。将设备重置到安全环境,通过只读取内存的形式,从不可变硬件进行启动,并且访问可信的硬件资源(如硬件唯一密钥、随机数字生成器、计数器、计时器和可信内存等),是确保移动设备完整性的开始。设计周全、经验证的可信启动流程是确保设备完整性的基础。可信操作系统会作为可信启动流程的一部分先行启动,然后引导通用环境的操作系统。
图 2 TrustZone可以为TEE提供硬件分区并访问安全资源
基于 TrustZone的经验证的可信启动流程和硬件 ROT 是确保设备完整性的基础。可信操作系统可以为 FIDO 协议提供可信服务,例如,用于在硬件保护执行环境中处理加密和用户匹配算法。在典型的实施中,几乎所有的 FIDO 堆栈都将驻留在通用环境中,只有少量的安全敏感功能移入 TEE 中。移到 TEE 中的代码称为“可信应用程序”,因为它能够从机密性和完整性的安全保障中获益,此分区构建了抵御可扩展攻击的防护墙。TEE的一大用例是提供安全密钥存储,由于应用处理器上极少能找到非易失性内存,FIDO 密钥通过烧入芯片的硬件唯一密钥实现在TEE之中加密。这一加密并封装的密钥存储于在两次启动之间提供存储功能的外部存储器内,密钥只能在TEE中解密和使用,无法被通用环境访问。
FIDO可信应用包含用于生物特征模板存储和比对的功能,可通过与存储加密密钥相似的方式进行处理,即:在 TEE 中加密和封装,并存储在外部非易失性存储器中。
基于TrustZone安全技术的TEE提供了符合 FIDO 安全要求的解决方案:
①确保设备的完整性:通过使用硬件信任根和 TrustZone 隔离的经验证的可信启动流程来实现。
②保护密钥资料的机密性,使其免遭未经授权的访问:TrustZone 架构扩展提供系统层面的硬件隔离,形成小而安全的可认证 TEE 来处理密钥资料,FIDO 密钥本身可以通过强加密法和融合硬件唯一密钥进行加密。
③维护敏感流程的机密性和完整性:TEE提供完整性和机密性的安全保障,通常而言,FIDO 流程的细小部分以静态方式分区到可信世界中,并作为可信应用程序运行。
④维护敏感输入数据的机密性:TrustZone 使来自输入设备(如鉴权器)的中断直接进入到可信世界中,由可信设备驱动程序对它们进行处理,例如,TEE可以处理 PIN 采集期间来自触摸屏的触摸事件或来自指纹传感器的中断,并将它与通用环境中的恶意软件区隔离,让后者无法对其拦截访问,当 PIN 采集或其他输入完成时,中断可以切回到通用环境。
⑤保护敏感显示数据:TrustZone 可用于保护可信环境的帧缓冲区及其内容,实现“所见即所签/购”功能,因为该帧缓冲区无法被拦截、修改或遮蔽。
GlobalPlatform 为 TEE 创建了保护配置文件,用作安全认证流程的基础。多家测试实验室正制定流程来测试各种平台并且评估它们所含 TEE 的效用。独立测试可以保障设备制造商解决方案的质量,或许会让整个价值链受益。相关安全认证有望在 2015 年年底推出。
基于 ARM 技术的现代芯片越来越多地使用 TrustZone 技术。例如,使用 TUI 来保护触摸屏输入和受保护帧缓冲区的显示(见图 3),可以让外设在通用环境和安全环境之间切换,触摸屏和显示就是这一特性发挥效用的例子。在 PIN 采集模式中,TEE 可以获得对触摸屏的独占可信访问,PIN 采集结束后再返回到通用环境。显示处理器可以担当各种图形层的合成者,显示来自安全环境的可信数据,从而确保“所见即所得/签”。可信显示数据可以在TrustZone保护的帧缓冲区中生成,合成为可以防止覆盖的安全层。 GlobalPlatform 的标准化工作完成后,对 TUI 的采用有望增加。
图3 基于TrustZone的TEE,以及FIDO可信应用、
除了基于 TrustZone 的 TEE 外,现代移动设备包含价值链中不同部分拥有的众多安全要素。SIM 卡可能归运营商所有,OEM 可能有自己的 SE(Secure Element),而操作系统可能要求访问 SE 来保管密钥或执行系统完整性检查。
由于安全要素无法访问输入法或进行显示,因此在安全要素和TEE之间建立安全通信非常有益,GlobalPlatform 正在进行安全要素和TEE 间通信的标准化工作。
基于TrustZone的TEE 能以较低的成本为FIDO实施提供有效的系统安全性。设计周全的TEE可为基于FIDO的实现提供适当的安全保护级别,是在它所取代的用户名/密码方法基础上取得的一大进步。
未来,还可作出进一步的改善,设备制造商和芯片合作伙伴可以选择让其TEE安全性获得独立测试实验室的认证。未来可期待TrustZone安全技术延伸到触摸屏输入(用于保护PIN输入)和显示输出,实现“所见即所签/购”功能。
基于FIDO的校验可帮助消费者超越密码限制,因此已得到大规模部署,并将成为行业成功案例。基于TrustZone的TEE证明,安全性架构良好时能为消费者带来更愉悦的用户体验。
士然
2015-07-24)