作者:ARM系统与软件部门安全领域营销总监Rob Coombs
智能互联的移动设备越来越广泛地用于商务、金融和娱乐行业。基于远程互联网服务器的用户鉴权是许多应用程序或云服务的第一个环节;传统的用户名与密码身份鉴权方式的效果不甚理想,一方面消费者难以记住复杂的密码,另一方面服务提供商(通常称为“依赖方”)则可能需要考虑密码泄露风险。为了应对这些状况并且解决其他密码相关问题,FIDO(Fast Identity Online,线上快速身份验证)联盟制定了全新的协议,在用户、设备和依赖方之间实现简单而安全性强大的鉴权机制。在移动设备上,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创建了合规与认证计划,这样独立测试实验室可以检查各种平台能否抵御防护配置文件中识别的威胁。GlobalPlatform已发布探讨TEE的白皮书,内容描述关于 FIDO 用例和 ARM TrustZone 技术的信息。 FIDO联盟的标准化工作促进了安全认证向利用生物特征鉴权的无密码登录转移。通用鉴权框架(Universal Authentication Framework, UAF)等FIDO协议实现了利用多种鉴权机制进行本地用户验证,如指纹传感器、虹膜扫描器或取代传统用户名与密码的PIN输入。
人们常说,安全性是像是一条链子,链子中的每道环节都跟安全息息相关。借助这一个比喻,第一个重要的环节就是安全硬件,它可通过TrustZone技术把通用的执行环境隔离,创建可信启动(trusted boot)的环境。可信启动在启动通用环境操作系统之前初始化可信操作系统及TEE。建立了TEE之后,可以配置 FIDO 可信应用,负责管理密钥资料、密码和其他敏感操作。
使用具备 FIDO 功能的智能设备的消费者可以在其喜爱的在线购物网站或银行注册一次。在注册过程中,设备会创建特定于用户、用户的设备以及依赖方所形成的组合的公钥和私钥。消费者以后访问该在线商店时将变得非常轻松,因为只要快速轻扫手指或输入简单易记的 PIN 码 [图 1] 即可取代常规的用户名/密码方式的鉴权步骤及购买确认过程。FIDO 协议不会共享一般用户信息,因为其实施过程不会泄露用户私人信息。由于依赖方仅保管公钥,所以如果网站服务器受到攻击(当前业内的一大难题),黑客们也无法直接利用它来盗取帐户。
图 1. 简单 FIDO 用户体验
FIDO 联盟由 180 多个成员组成,涵盖了从大型芯片合作伙伴(如高通)、设备制造商(如三星和联想)、操作系统公司(如微软和谷歌)、FIDO 服务器提供商(如 NokNok Labs)到依赖方(如美国银行和 PayPal)的整个价值链。它制定了技术规范和认证流程,实现更简单、更强大鉴权的使命。FIDO 协议设计的动力在于,人们渴望增强鉴权器的易用性、内在保密性、设计安全性并且推动实现标准化,让依赖方能够使用任何符合 FIDO 规范的鉴权器。最终版 FIDO 1.0 规范已经公布在网上,它包含两种备选的用户体验:通用鉴权框架(Universal Authenticator Framework,UAF)为智能手机等内置鉴权的设备提供无密码体验,通用第二要素(Universal 2nd Factor,U2F)则适用于软件保护器,帮助防止传统的用户名/密码遭受钓鱼式攻击。相关工作正在进行之中,以实现 FIDO 2.0 统一标准。
依赖方使用用户名和密码作为安全防护行之有年,但业已证实这无法满足消费者和企业用户,因为密码存在许多问题。消费者偏向于选择安全防御较弱的密码或在多个网站间重复使用同一组密码,这认黑客盗取帐户的几率大幅提升。如果消费者被强制选择复杂的密码,他们可能会因为忘记密码而放弃交易。更为糟糕的是,密码容易通过垃圾邮件骗取,造成大规模金融诈骗事故,根据卡巴斯基公司估计,2014年网络钓鱼犯罪集团从多家银行窃取的金额高达十亿美元。企业有时候要求使用一次性密码(One Time Password, OTP)令牌等第二要素,它通常提供一个与用户名/密码一起使用的代码。这些令牌通常具有专有性质,使得消费者的口袋和抽屉里充斥着各种硬件:您或许有一个 OTP 令牌要用于您的银行,另一个用于办公邮件,其他令牌则用于别的服务提供商。使用传统鉴权的依赖方还存在另一个问题,他们需要保管每一位客户的私钥。这些存有凭据的海量数据库成为黑客的最爱,他们只需一次精心设计的攻击便能窃取数百万消费者的个人凭据。这给大品牌公司带来了声誉风险,公司可能不得不承认存在安全漏洞,并要求其客户尽快重设密码。
FIDO 缓解了与传统用户名和密码相关的问题,同时又为消费者带来更加愉悦的体验。例如,在新款 Samsung Galaxy设备上,用户可以通过指纹登录网站或购物付款。如此简便的用户体验是通过 FIDO UAF协议所实现的;用户名/密码替换成指纹传感器等内置鉴权器,可解锁设备上存储的私钥,用于和远程服务器(保管着公钥)进行加密质询。依赖方也可以获取元数据以提供一些基本信息,如鉴权器的类型、所用的密钥保护机制、以及设备型号,它们可用于后端风险分析。但是,不会与在线服务器交换生物特征数据、PIN 信息或私钥。FIDO 协议的这种“设计隐私性”为消费者提供了另一层保护,降低了因为商店服务器的安全漏洞而遭受困扰的可能性。加密质询基于完善的公钥加密法原则,其涉及在设备上为每一用户/设备/依赖方组合生成的一组公钥/密钥。如需 FIDO 1.0 规范的概述,请参见此处。
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 安全要求的解决方案:
GlobalPlatform 为 TEE 创建了保护配置文件,用作安全认证流程的基础。多家测试实验室正制定流程来测试各种平台并且评估它们所含 TEE 的效用。独立测试可以向设备制造商保障解决方案的质量,或许会让整个价值链受益。相关安全认证有望在 2015 年下半年推出。
基于 ARM 技术的现代芯片对 TrustZone 技术的使用则越发炉火纯青。例如,使用 TUI 来保护触摸屏输入和受保护帧缓冲区的显示 [图 3]。可以让外设能够在通用环境和安全环境之间切换:例如,触摸屏和显示就是这一特性或许能发挥效用的例子。在 PIN 采集模式中,TEE 可以获得对触摸屏的独占可信访问,PIN 采集结束后再返回到通用环境。显示处理器可以担当各种图形层的合成者,需要显示来自安全环境的可信数据,从而确保“所见即所得/签”。可信显示数据可以在TrustZone保护的帧缓冲区中生成,合成为可以防止覆盖的安全层。待 GlobalPlatform 的标准化工作完成后,对 TUI 的采用有望增加。
除了基于 TrustZone 的 TEE 外,现代移动设备可以包含由价值链中不同部分拥有的众多安全要素。SIM 卡可能归运营商所有,OEM 可能有自己的 SE(Secure Element),而操作系统可能要求访问 SE 来保管密钥或执行系统完整性检查。由于安全要素无法访问输入法或进行显示,因此在安全要素和 TEE 之间建立安全通信非常有益。GlobalPlatform 正在进行安全要素和 TEE 间通信的标准化工作。
图 3. 基于 TrustZone 的 TEE,以及 FIDO 可信应用、可信用户界面和安全要素加密通道
基于 TrustZone 的 TEE 能以较低的成本为 FIDO 实施提供有效的系统安全性。设计周全的 TEE 可为基于 FIDO 的实现提供适当的安全保护级别,也是在它所取代的用户名/密码方法基础上取得的一大进步。
未来,我们还可作出进一步的改善。设备制造商和芯片合作伙伴可以选择让其 TEE 安全性获得独立测试实验室的认证。我们还可期待TrustZone安全技术延伸到触摸屏输入(用于保护 PIN 输入)和显示输出,实现“所见即所签/购”功能。
基于 FIDO 的校验可帮助消费者超越密码限制,因此已得到大规模部署,并将成为行业成功案例。基于 TrustZone 的 TEE 证明,安全性架构良好时能为消费者带来更愉悦的用户体验。