基于硬件的可信计算架构综述

Posted by Maxul's Technical Notes on May 23, 2018

题目: Hardware-Based Trusted Computing Architectures for Isolation and Attestation

作者: Pieter Maene, Johannes Götzfried, Ruan de Clercq, Tilo Müller, Felix C. Freiling, Ingrid Verbauwhede

单位: STAR Lab, InterTrust Technologies Corporation, Santa Clara

出版: IEEE Trans. Computers (2018)

导读

黑客利用软件漏洞控制目标设备,设备包括IoT、移动平板或手机、高性能桌面和服务器以及工控系统。

可信架构允许用户和远程服务提供方确定软件如期运行。本文是12个体系结构的综述。

背景:

  1. 可信计算的目的是提供一项技术,使得用户确定设备上运行的程序是符合规范和预期的(intended purpose)。
  2. trusted computing中,用户被要求相信一些组件,只要有任意一块被破坏,系统的安全性就不复存在。
  3. trustworthy computing中,设计人员要提供证据证明引入的可信模块自身不会违背安全原则。
  4. 通常,trusted computing会借助修改架构实现,而trustworthy computing则围绕软件工程技术。
  5. 基于硬件和基于软件实现的可信计算的最大差别在于,硬件能保护不可信系统下的应用程序。

基本术语:

  1. McCune等人提出了Protected Module Architectures (PMAs),将可信部分划分为更细粒度,进而容易验证其正确性。PMA可以分为:Software Modules (SMs), Secure Executables (SEs), enclaves, secure tasks, or trustlets等。
  2. Measuring:软件组件的认证,计算代码和数据的Hash或MAC来实现,有时还配上了内存布局,该值还同时反映了软件当前所处的状态。measurement的结果可用于attest。
  3. Trust Chains:自底向上的验证过程,每个组件都被measure过了后才能运行。

威胁模型:

  1. 攻击者拥有系统控制权,但对TCB没有。
  2. 攻击者掌控设备信道,因此可以嗅探网络包、修改流量和进行中间人攻击,威胁attestation。
  3. 引入Dolev-Yao模型,即密码学基础设施不会被破坏,但会有协议级别的攻击。
  4. 不考虑可用性,不保护DoS攻击。
  5. 不考虑内存probe、物理攻击、TCB分解等。不考虑硬件旁路攻击。
  6. 软件旁路攻击如内存访问模式也不考虑。
In general, a Protected Module Architecture (PMA) runs multiple Software Modules (SMs) side by side, along with one or more unprotected applications. The TCB ensures that the state of the Software Modules (SMs) is protected from any other software running on the system. The measurement of the SM establishes a Dynamic Root of Trust (DRoT). The result can be used to attest the state of the module to a remote verifier. By sealing data, the SM can send it securely to untrusted storage.

安全属性:

  1. Isolation:对软件和相关数据的访问控制机制。软件有预设的入口点,避免攻击者设计代码重用(如ROP攻击)。不可信的组件对可信区域的读写完全被禁止,保护机密性与完整性。
  2. Attestation:向授权机构证明某个客体正处于特定状态。架构将保证验证状态的完整性。
  3. Sealing:将机密数据或代码封装起来,只允许在特定条件下解除封装,条件可以是只允许在特定设备上或特定配置下。常基于加密。
  4. Dynamic Roots of Trust (DRoT):为减小TCB,引入动态可信根,在运行时验证程序状态。需要防止TOCTOU漏洞。
  5. Code Confidentiality:通常要求在加载前加密,防止物理攻击;加载后隔离。主要用于保护知识产权。
  6. Side-Channel Resistance:与不可信组件的I/O交互时保障敏感信息不泄露,如模式切换时清空cache,引入软机制执行换页等。
  7. Memory Protection:在总线和外存储交互时不会被物理攻击。考虑被动式(bus snooping)和主动式(fault injection)。要求数据加密,MAC保护,考虑重放。

硬件特征:

  1. Lightweight:没有用MMU的视为轻量。
  2. Coprocessor:要么引入一块单独芯片,又或者在SoC上加入一个模块。其中在处理器内部加入组件的方式保障最强。
  3. Hardware-Only TCB
  4. Preemption:允许在运行可信模块时接收中断。cooperative只能等待任务主动退出。
  5. Dynamic Layout
  6. Upgradeable TCB:HW-only TCB是不可升级的,因此维护能力下降。为了修复bugs或引入新功能,通常还包含软件TCB,常用Programmable ROM (PROM)保护起来。
  7. Backwards Compatibility

架构比较:

  1. TPM and SMART只为验证设计。其余架构均提供等价的隔离能力。该能力归结为:program counter-based access control in the memory controller, verifying each access。
  2. Sancus在硬件中集成HMAC实现验证,其余架构倾向于使用软件。本地验证通常用于片上程序的安全通信,如SGX是基于group signature scheme协议的。
  3. TrustZone是唯一一个支持超大TCB的,因为其可信域可以容纳一个完整的OS。

思考:

  1. 依赖固件的可信特性是可以升级的,借助BIOS的更新即可。我们观察到BIOS的更新频率很高(每2月一次)。其可部署性还是很好的。
  2. 可信与不可信的IPC是个很大问题。如何避免交互接口的数据泄露、旁路攻击是未来研究点。