计算设备处理和存储日益增多的敏感信息,如口令和指纹信息等,对安全性提出更高要求.物理攻击技术的发展催生了一种通过攻击电路板级硬件组件来获取操作系统机密信息的攻击方法:电路板级物理攻击.该类攻击具有工具简单、成本低、易流程化等特点,极容易被攻击者利用形成黑色产业,是操作系统面临的新安全威胁和挑战.在处理器上扩展内存加密引擎可抵抗该类攻击,但是目前大部分计算设备并未配备该硬件安全机制.学术界和产业界提出软件方式抗电路板级物理攻击的操作系统防御技术,该类技术已成为近年来的研究热点.深入分析了该类技术的研究进展,总结其技术优势和不足,并探讨其发展趋势.首先,介绍了电路板级物理攻击的定义、威胁模型、现实攻击实例.之后,介绍软件方式抗电路板级物理攻击的操作系统防御技术所依赖的一些基础技术.然后,对该类防御技术的研究进展按照保护范围进行分类总结和归纳.最后,分析了该类防御技术的优势与不足,给出工程实现建议,并探讨该类防御技术未来的研究趋势.
Computing devices are processing and storing more and more sensitive information, such as passwords and personal fingerprints, so higher security requirements are required for them. With the development of physical attacks, a new kind of attack called board level physical attacks is developed, and this kind of attack can obtain secrets in the operating system by attacking hardware components at the printed circuit board (PCB) level. This newly proposed attack only uses simple tools, its cost is inexpensive, and it can be streamlined simply, so it can be leveraged by attackers to form new underground industry easily. Therefore it is a new security threat and challenge for operating systems. A common defense against this kind of attack is to extend a specialized memory encryption engine to the CPU, but most current computing devices are not equipped with such hardware security mechanisms. Thus, the academic fields and industrial fields propose software-based techniques to defend board level physical attacks, and these techniques have been becoming a research hotspot in recent years. This paper deeply analyzes the development of these techniques, summarizes their advantages and disadvantages, and discusses their development trends. First, the paper introduces the definition, threat model and some real-world attack cases of the board level physical attacks. Second, the paper describes the building blocks relied by the software-based techniques to defense the board level physical attacks. Third, the paper makes a survey of and categorizes the related work on the software-based defense technology according to their protection domains. At last, the paper analyzes the advantages and disadvantages of the technology, gives suggestions on how to implement it in practice, and discusses some development trends of this technology.
随着信息技术的发展, 移动互联网、云计算、工业4.0等应用场景不断出现, 以实现消费者、企业以及工业等领域的信息化目标.与此同时, 越来越多的安全敏感业务也迁移到智能终端和服务器平台等各种计算设备上:智能终端等个人终端设备提供身份认证、电子钱包、企业办公等安全敏感功能; 企业数据中心和智能工厂等服务器平台存储并处理企业数据以及工业数据, 这些数据涉及企业的核心机密以及工厂的隐私信息, 一旦泄露后果极为严重.
计算设备中信息价值的提高吸引了越来越多的攻击者甚至黑色产业者的注意, 并开始设计各种先进的攻击方法.除了传统的软件攻击, 最新出现了一种低成本的物理攻击:电路板级物理攻击(以下简称为板级物理攻击).这类攻击典型的案例包括冷启动攻击[
冷启动攻击等板级物理攻击出现之后, 处理器体系结构领域的研究人员提出通过保护片外RAM来抵抗该攻击的方法, 其主要思路是在处理器芯片与片外RAM之间的传输路径上部署硬件加密和完整性保护引擎[
但是实际上, 只有部分Intel和AMD的服务器处理器配备了SGX和SME等内存保护机制, 智能终端、绝大多数个人电脑以及部分服务器都不具备抵抗板级物理攻击的能力.而板级物理攻击是这些设备所部署的应用场景的一个严重威胁, 因此这些设备同样需要具备抗板级物理攻击的安全能力.针对该问题, 学术界提出了基于软件方式的抗板级物理攻击的操作系统防御技术, 这类技术的思路是在操作系统等系统软件上扩展安全增强机制, 将这些安全机制运行在设备上通用的安全存储资源中并提供对片外RAM的安全保护.中科院信工所的林璟锵等人调研了利用缓存和寄存器这两类通用安全存储资源构建的内存保护方案[
本文首先介绍板级物理攻击的基本原理、威胁模型和实际案例, 然后描述基于软件方式的抗板级物理攻击方法的相关技术, 之后按照保护范围分析现有主流方案, 对各种方案的优缺点、安全能力、技术局限等进行全方面的分析总结, 其后讨论该类技术的优势与不足, 并为相关技术人员部署该类技术提供参考建议, 最后对该研究方向的发展趋势进行分析展望.
根据攻击层次的不同, 物理攻击分为芯片级物理攻击和电路板级物理攻击[
板级物理攻击的主要目标是设备片外RAM中的数据和代码.攻击者借助示波器、逻辑分析仪、探针等简易工具就能通过电路板上片外RAM与外部的连接通道(譬如CPU芯片与片外RAM之间的总线、片外RAM的接口、外设DMA接口等等)实施对内存数据的窃听、篡改和重放攻击.板级物理攻击的低成本、易流程化等特点导致其极容易被攻击者利用形成窃取个人和企业机密信息的黑色产业, 是当前智能终端、个人电脑和服务器等设备面临的一个严重安全威胁.国际标准组织GlobalPlatform在智能终端可信执行环境保护轮廓规范[
在板级物理攻击敌手能力下, 只有CPU芯片能够抵抗板级物理攻击, 片外RAM和系统总线等其他组件都能够被攻击者控制.因此在该模型下, 只有CPU芯片属于可信区域, 是整个系统的可信计算基(trusted computing base, 简称TCB), 其他硬件组件都允许被敌手控制.敌手能够主动控制片外RAM以及系统总线传输的内容.在该威胁模型下, 敌手能够任意控制CPU从片外RAM读入的内容, 譬如篡改和窃听CPU读入的代码和数据、篡改片外RAM的内容等等.因此, 所有从片外RAM读入的数据都不可信, 必须经过机密性和完整性保护.
学术界将攻击者划分为被动敌手和主动敌手两类.被动敌手不能对片外RAM进行篡改, 其主要通过总线监听或者直接读取片外RAM的内容实施攻击, 因此该类敌手的主要能力是读取片外RAM的内容.主动敌手可以通过总线注入等手段篡改片外RAM的内容, 根据板级物理攻击者对系统总线和片外RAM的操控能力, 学术界设计了通用的板级物理攻击威胁模型(如
板级物理攻击威胁模型
Threat model for the board level physical attacks
●欺骗攻击:敌手使用任意的内容修改某地址处内存块的内容.敌手将自己想让CPU获取的内容存储到恶意片外RAM中.每当CPU从该地址读取内容时, 敌手将数据总线切换到恶意片外RAM, 这样CPU读取的就是敌手设置的内容.
●替换攻击:敌手将地址
●重放攻击:敌手将地址
现实世界中已经出现了众多板级物理攻击实例, 攻破了DRAM接口、系统总线和DMA外设接口等硬件组件(如
实际板级物理攻击示意图
Illustration of real-world board level physical attacks
具体攻击方法主要包含冷启动攻击、总线攻击以及DMA攻击.冷启动攻击[
总线攻击[
DMA攻击是一种利用DMA传输机制绕过内存管理单元(memory management unit, 简称MMU)和CPU而直接访问物理内存的攻击方法.法国国家网络安全局基于网卡控制器的一个漏洞提出了一种远程攻击方法[
片上内存(on-chip memory, 简称OCM)已经是嵌入式领域处理器芯片(又称为片上系统)的一个基础组件, 基本上所有的嵌入式处理器芯片都配备了片上内存.文献[
片上内存相比片外内存(一般为DRAM芯片)在性能和安全性两方面都具有一定的优势.在性能方面, 片上内存因为通过内部高速总线与CPU连接, 因此CPU访问片上内存的速度一般比片外内存快.在安全性方面, 片上内存具有更高的物理安全性, 具有抵抗板级物理攻击的能力:片上内存没有向芯片外部暴露物理引脚(physical pin), 因此其数据信息和地址信息不会从芯片外引脚或总线上泄露出去.但是, 物理攻击者可以通过冷启动攻击加载恶意攻击代码或恶意DMA设备来获取片上内存的内容.对于冷启动攻击方式, 英国哥伦比亚大学研究团队[
Merkle Tree是保护内存完整性的主要机制.传统的Merkle Tree内存保护方案如下(如
Merkle Tree与Bonsai Merkle Tree对比
Comparison between Merkle Tree and Bonsai Merkle Tree
基于Merkle Tree的内存完整性保护技术每次验证或更新数据都需要计算从叶子节点到树根路径上所有节点的值, 给系统带来较重的计算负载.为了降低计算负载, MIT CSAIL实验室提出了将树节点存储在缓存上的优化方法[
因此, 降低Merkle Tree大小成为优化内存完整性保护的一个重要研究方向.北卡罗莱纳州立大学的研究团队提出了Bonsai Merkle Tree的概念[
软件方式的抗板级物理攻击的操作系统防御技术借助处理器芯片内部的通用存储资源, 如CPU专用寄存器、CPU缓存、片内RAM等, 无需修改处理器硬件即可提供较高的物理安全性, 成为系统安全领域的一个研究热点.这方面的研究工作按照保护范围可以分为3类:第1类主要关注密钥等对安全性要求非常高的数据, 保障其存储和相应密码算法实现的安全性; 第2类从保护安全攸关应用程序出发, 借助片内存储资源保护安全应用的物理安全性; 第3类从保护整个系统出发, 着重考虑运用有限的片内存储空间为包含操作系统和应用程序在内的完整系统提供安全执行环境.本节按上述分类对已有研究工作进行全面分析和系统总结.
密钥的安全性是许多系统安全机制的基础, 为防止攻击者通过板级物理攻击从片外RAM中获得密钥[
这类方案在用户层实现, 利用片内存储资源进行密钥存储和密码学计算, 供其他应用程序调用, 以保护应用程序密钥的安全性.基于片内存储的保护方案需要防止普通应用程序访问敏感数据的存储位置读取或者覆盖密钥, 以及防止上下文切换等过程将敏感数据保存到片外RAM中, 这些限制通常需要root权限才能实现, 因此这类方案通常在内核层实现, 在应用层实现的密钥和密码算法保护方案较少, 目前已知的仅有Parker等提出的方案[
Parker等的方案[
Peapods[
这类方案在内核层实现, 通常作为操作系统补丁.这类方案用于保护密钥的片内存储资源通常具有以下特点:(1)能够特权占用.为防止用户空间进程访问密钥, 密钥存储资源应能够设置为仅特权级别才可以访问; (2)能够不将数据泄露到片外RAM.密钥存储资源应能够设置为不将数据存储到片外RAM中, 如不在上下文之中或不写回到片外RAM; (3)被占用不影响系统运行.密钥存储资源在系统运行期间由密钥保护机制独占使用, 不能用于预期用途, 缺少该资源应仍能保持大部分应用程序的二进制兼容性; (4)具有足够保护密钥的容量.密钥存储资源应具备密钥存储和密码学计算所需的存储空间.基于以上特点, 许多保护方案选择调试寄存器、SSE扩展的XMM寄存器组等作为密钥存储资源.为防止密码学计算过程中上下文切换将敏感数据泄漏到片外RAM, 或其他内核模块访问敏感数据, 密钥保护机制通常以原子方式执行.
内核层密钥和密码算法保护方案有x86架构中保护对称密码算法的方案AESSE[
在x86架构对称密码算法保护方面, AESSE[
上述密钥和密码算法保护方案都是针对x86架构平台, 然而ARM架构平台的安全性也受到板级物理攻击的威胁, 如FROST攻击[
上述内核层对称密钥和密码算法保护方法被扩展到非对称密码算法保护中.与对称密码算法相比, 非对称密码算法的存储或运算通常需要占用更多存储空间.以RSA算法为例, RSA实验室[
在利用GPU保护密码算法方面, PixelVault[
内核层密钥和密码算法保护方案可以抵抗冷启动攻击, 但通常难以抵抗对系统空间具有写访问权限的攻击者的攻击.例如, 具有root权限的攻击者可以轻松加载内核模块, 利用该模块将密钥从CPU寄存器提取到片外RAM中.Blass和Robertson将不能在内核特权级运行任意代码定义为内核完整性属性[
内核层保护方案依赖于操作系统内核的完整性, 并且大部分方案不能抵抗DMA攻击, 虽然DMA攻击可以利用IOMMU防御, 但是一些设备没有配备该机制.为保护不同操作系统中的密钥, 即实现与操作系统无关的密钥和密码算法保护, 研究人员提出hypervisor层保护方案.Hypervisor层保护方案具有以下优势:(1) hypervisor与操作系统隔离, 即使是root权限用户和本地特权提升也不会破坏密码学计算过程或恢复出密钥; (2)与操作系统类型无关, 可以保护不同类型的操作系统; (3)一些与安全性相关的硬件设置可以在hypervisor层统一设置, 如通过设置IOMMU集中防御DMA攻击; (4)这类hypervisor可具有较小的TCB, 降低了系统存在漏洞的风险, 也便于通过形式化方法验证其正确性.
在hypervisor层实现的密钥和密码算法保护方案较少, 目前已知的仅有TRESOR的作者提出的TreVisor方案[
密钥和密码算法保护方案利用片内存储资源将密钥存储和密码学计算限制在处理器芯片内部, 能够抵抗板级物理攻击, 特别是冷启动攻击.AESSE是保护AES密钥及相应密码算法安全性的开创性工作, 其后续工作TRESOR解决了AESSE的性能问题, 已经成为该研究方向的基础技术.譬如, ARMORED将TRESOR移植到ARM CPU硬件平台上的安卓操作系统中; Key-hiding将TRESOR保护的AES密钥长度从128bit扩展到256bit; TreVisor系统软件利用TRESOR提供的高安全密码服务保护上层虚拟机内部的密钥.此外, 大部分RSA密钥和密码算法保护方案都采用TRESOR的AES算法加密保护RSA私钥.在非对称密钥和密码算法保护方面, 各项工作主要保护RSA密钥和算法的安全性, 这些工作利用CPU架构提供的各种安全硬件机制来实施保护, 其中RegRSA和Mimosa方案分别通过实现CRT加速和采用Intel HTM机制提高了算法实现的性能, 是这些工作中性能比较好的方案.
但是这类方案在安全性和实用性方面仍存在一些问题.在安全性方面, 这类方案可用的安全存储空间有限, 只能保护密钥和中间计算结果等很小部分敏感数据, 并不能保护其他敏感信息, 更不能保护整个片外RAM.此外, 这类方案依赖于包括操作系统或hypervisor在内的庞大TCB.在实用性方面, 这类方案占用了CPU/GPU内部专用存储资源, 使该存储资源无法用于其预期用途, 会影响系统特定功能.此外, 某些资源的独占使用会影响系统性能.例如, 在禁用中断以原子执行密码学计算的情况下, 操作系统对交互事件的响应可能会受到影响, 鼠标和键盘等事件引起的中断被延迟到加解密/签名操作结束之后才能响应; 运行基于缓存的保护方案时需要利用缓存控制指令防止共享缓存的其他核心访问为密码学计算保留的缓存, 会降低其他核心上并发任务的性能, 同时大部分方案需要将缓存设置到no-fill模式来保护密钥, 而缓存在该模式与正常运行模式之间切换比较耗时.
第3.1节的方案只对密钥和密码算法进行了保护, 而实际上应用程序的其他内存同样也可能存放着安全敏感的数据, 譬如口令、个人生物信息和图像信息等, 保护这些信息的安全性同样重要.为此, 学术界提出了保护应用程序整体或部分关键数据免受物理攻击的方案:其中一部分方案重点针对冷启动攻击, 考虑到系统休眠时是冷启动攻击的主要时机, 所以这些方案重点保护系统休眠时的内存内容; 其余方案考虑的比较完善, 能够在系统运行时为应用程序提供物理防护.值得注意的是, 很多方案使用第3.1节中的抗物理攻击密码算法作为保护应用程序的密码原语.
研究人员为常见的开源操作系统提出了各种防护方案来抵抗休眠或锁屏时的冷启动攻击.加拿大卡尔顿大学为安卓系统设计了一种抵抗冷启动攻击的安全运行模式Deadbolt[
为增强Linux操作系统休眠时的物理安全性, 德国Fraunhofer协会的应用集成信息安全研究所将Linux的全盘加密机制从磁盘加密扩展到了内存加密[
另外也有研究人员提出使用底层hypervisor来对上层操作系统进行内存加密的思路, 从而使内存保护与操作系统无关.加拿大康考迪亚大学提出了一个与操作系统无关的计算机内存加密方案Hypnoguard[
在系统休眠时提供物理防护只能解决一部分场景的安全问题, 实际上并没有为设备提供全面的物理防护:攻击者在设备运行时仍可以实施物理攻击.为解决该问题, 研究人员提出能够在设备运行时对安全敏感应用进行保护的方案.这些方案中, 一部分是通过内存滑动窗口技术来减缓物理攻击的威胁; 一部分是通过片上内存、缓存和寄存器等处理器片内存储来保护应用的关键数据或代码, 从而更加安全的抵抗物理攻击; 还有一部分是利用处理器其他硬件机制来保护应用程序免受物理攻击.本节按照方案采用的内存滑动窗口、片上内存、缓存、寄存器以及其他硬件机制这5类进行划分对相关方案进行分类总结.
(1) 基于内存滑动窗口的内存防护技术研究
减缓针对内存的物理攻击的一个方法是减少内存中明文内存页的比例, 基于该思路研究人员提出了滑动窗口技术.该技术的主要思路是只保持一部分内存页为明文状态, 为应用提供工作内存, 其余内存页均处于加密状态.CryptKeeper[
(2) 基于片上内存的防护技术研究
CryptMe方案[
(3) 基于缓存的防护技术研究
CaSE是弗吉尼亚理工学院暨州立大学为智能终端设计的抗物理攻击并且与移动操作系统隔离的安全解决方案[
(4) 基于寄存器的防护技术研究
美国莱斯大学提出使用寄存器在不可信操作系统中保护应用程序中敏感数据的方案Ginseng[
(5) 基于其他硬件机制的防护技术研究
上海交通大学的研究团队提出软硬件协同的VM安全保护方法Fidelius[
应用程序抗物理攻击防御方案主要针对系统休眠时和系统运行时这两种时刻的攻击.系统休眠时的防御方案主要目的是解决各种流行的操作系统缺乏内存保护的缺陷:Deadbolt和Sentry方案针对的是安卓系统, 德国Fraunhofer协会应用集成信息安全研究所的方案[
虽然第3.1节和第3.2节描述的研究工作能够抵抗冷启动攻击等特定类型的攻击, 但是理论上他们无法全面抵抗板级物理攻击.密钥及密码算法安全保障方面的工作仅仅保护了密钥及密码算法这类高安全要求的数据和代码, 但是没有保护整个内存空间, 物理攻击者仍然可以对片外RAM实施攻击, 包括获取应用程序的机密数据、篡改代码等.应用程序保护方面的工作仅保护了应用层, 没有考虑内核遭受物理攻击的情况.另外, 这类工作局限于片上内存容量, 只能保护有限大小的程序, 而实际的操作系统通常占用几兆甚至上百兆的地址空间, 远远超出片上内存的容量, 所以这类工作无法直接应用到整个操作系统的保护.
综上所述, 前文介绍的方案均无法对整个操作系统进行保护, 所以必然有一部分操作系统内核数据和代码以明文形式存放在片外RAM中, 攻击者完全可以通过板级物理攻击篡改这些数据和代码, CPU一旦运行被篡改的代码即可被攻击者获取内核的控制权, 并且如果页表、中断向量表、内核栈、中断处理函数等CPU运行所必需的基本组件没有被保护, 攻击者可利用这些组件加速攻击, 一个典型的攻击实例如
板级物理攻击实例
An example of board level physical attacks
第3.1节和第3.2节的密码算法保障和应用程序保护类工作无法从根本上抵抗板级物理攻击的主要原因在于防御组件无法对其所在的地址空间进行整体保护(如果防御组件实现为内核模块, 那么其所在地址空间就是内核地址空间).虽然部分方案提出将所有的代码特别是管理代码全部放入片内存储的思路, 但是
这类方案面向的是实时操作系统、嵌入式操作系统等轻量级操作系统.这类操作系统运行所需工作内存较小, 完全可以整体放入片上内存中来抵抗物理攻击.在此基础上, 内核为应用程序提供物理防护机制.
美国达特茅斯学院的研究团队设计并实现了一个运行在片上内存的轻量级操作系统Bear OS[
国内首都师范大学的研究团队针对实时操作系统对软件隔离和物理安全的要求, 基于ARM TrustZone和内存加密技术提出实时任务的物理防护方法SoftME[
除了一些简单的实时操作系统和嵌入式操作系统, 大部分成熟的操作系统运行所需的内存都比片上内存大, 因此无法像轻量级操作系统那样直接加载到片上内存中来抵抗物理攻击.针对该问题, 学术界提出了基于请求分页系统的全系统加密技术.
德国埃尔朗根-纽伦堡大学基于TreVisor[
中国科学院软件研究所针对ARM平台的TEE操作系统不能抵抗物理攻击的安全弱点, 设计了一种新型的TEE操作系统架构Minimal Kernel[
从严格意义上来说, 密钥及密码算法保障方案和应用程序保护方案仅仅保护了整个软件系统中很少部分的软件, 主要是关键密码算法以及部分应用程序, 没有能力提供对系统软件(譬如操作系统内核)的保护.而系统软件是所有应用程序的TCB, 如果TCB得不到保护, 那么攻击者在攻破TCB之后就可以完全控制整个系统, 这也是全系统加密技术产生的动机.但是目前全系统加密技术要么只能保护轻量级操作系统, 要么会对系统造成极大的性能负载.以Bear OS和SoftME方案为例, 这些方案都只能保护最多几百KB大小的轻量级操作系统, 无法应用于成熟的大型操作系统.HyperCrypt、TransCrypt、Minimal Kernel和SecTEE等方案虽然能够对成熟的操作系统进行加密保护, 但这些方案给系统带来了相当大的负载, 譬如Minimal Kernel方案对一些内存操作密集型的应用带来的负载能够达到50倍.如此高的性能负载极大的限制了这些方案的实际应用, 一个比较好的解决方法是结合硬件密码加速器降低内存保护带来的计算负载.另外, 全系统加密技术离不开密钥的支持, 因此密钥的安全性是这类方案的安全基础之一.密钥的安全性问题可以通过两种方法来解决.第1种方法是利用第3.1节所述的密钥及密码算法安全保障技术来保护密钥的安全性, 这种解决思路已经在TreVisor和RamCrypt等方案中有所体现.第2种方法是利用设备的硬件安全密钥, 譬如移动设备普遍配备了设备根密钥, 可以基于该密钥派生或保护内存加密所需要的密钥, 譬如Minimal Kernel和SecTEE等全系统加密方案使用设备硬件密钥作为信任根, 派生或保护内存加密、身份认证和数据加密等功能所需要的密钥.
本节讨论当前软件方式的抗板级物理攻击技术的优势与不足, 并给出在实际工程中部署该技术的建议.
软件方式的抗板级物理攻击技术主要有如下几方面的技术优势:首先, 不需要专有的硬件安全资源; 其次, 其部署不受硬件平台类型限制, 可广泛部署在服务器、智能终端和嵌入式设备等各种平台上; 最后, 能够达到安全性很高的物理攻击防御能力, 甚至能够达到专有硬件保护引擎的安全水平.
不需要专有的硬件安全资源.基于硬件的物理防护方案一般在处理器上扩展硬件安全组件对片外内存进行机密性和完整性保护, 譬如Intel SGX的内存加密引擎[
不受平台限制.软件方式的抗板级物理攻击方法因为仅使用处理器芯片内普遍配备的资源, 所以可以灵活的部署在各种平台上.TreVisor、HyperCrypt等方案可以应用在云平台上, 为虚拟机提供保护; AESSE、TRESOR、Loop-Amnesia等方案可以应用于个人电脑; Minimal Kernel、SecTEE等方案可以应用于智能终端; SoftME、Bear OS等方案可以应用于低端嵌入式设备.因此, 软件方式的抗物理攻击防护方案几乎涵盖了所有类型的计算平台, 能够为绝大多数的设备提供物理防护能力.
能达到很高的物理安全水平.虽然部分方案的威胁模型只涵盖某种类型的板级物理攻击(譬如只考虑冷启动攻击)或者从效率方面出发, 没有考虑全面的板级物理攻击能力, 只对密钥、密码算法或应用程序等部分代码和数据提供了物理防护, 但是实际上软件方式的抗板级物理攻击防御技术完全能够全面抵抗冷启动攻击、总线攻击和DMA攻击, 达到与硬件方式相同的安全能力.中科院软件所研究团队的Minimal Kernel和SecTEE方案达到了与Intel SGX相同的安全水平.此外, SecTEE方案还增加了内存侧信道防护机制, 而Intel SGX的内存侧信道防护问题至今仍未完全解决, 从这方面也可以看出软件方式的灵活性.
大部分方案只保护部分关键代码, 不能提供全系统加密.目前绝大多数方案主要是保护应用程序的关键数据, 没有考虑对操作系统内核的保护.实际上, 本文第3.3.1节已经指出, 如果攻击者具备全方面的电路板物理操控能力, 在没有对内核进行保护的情况下, 其完全有能力从总线获取内核的内存镜像甚至让处理器运行内核态的恶意代码.攻击者一旦攻破内核, 也就具备控制整个系统的能力, 从而使得应用层的保护没有意义.这也是为什么大部分方案的威胁模型只考虑部分板级物理攻击, 主要是冷启动攻击, 而不考虑总线攻击, 或者仅考虑被动式总线窃听攻击.然而总线攻击是板级物理攻击的一个典型案例, 以MIT团队攻击Xbox[
对系统性能影响较大.软件方式的内存保护需要使用软件加密引擎来对片外内存进行加密, 而软件加密引擎会占用处理器资源, 从而影响普通程序的运行效率.另外, 很多方案基于寄存器实现, 中间计算结果存储在寄存器中, 为避免进行上下文切换将中间计算结果切换到不安全的内存中, 每次调用必须是原子操作并且占用时间不能太长以免影响用户输入响应, 这种方式会造成频繁的关中断和上下文切换操作, 从而降低系统性能.通过统计各种方案的实验结果, 发现大部分方案都给系统带来了2倍以上的性能负载, 而Minimal Kernel等全系统加密方案甚至给部分应用带来几十倍的性能负载.软件加密带来的负载可以通过一些硬件密码加速器来缓解, 譬如TRESOR方案使用x86架构提供的硬件加密指令AES-NI来降低内存加密带来的性能负载.
影响部分专有功能的运行.一些方案占用了处理器上一些具有专门用途的硬件资源, 譬如AESSE方案占用了用于多媒体计算的SSE寄存器, TRESOR方案占用了用于程序调试的断点寄存器, CaSE方案占用了用于提高内存读写速度的缓存等等.占用这些硬件资源必然会对相关功能的正常运行造成影响.
缺乏对隔离机制的支持.大部分方案将板级物理攻击防御组件实现为操作系统的一个内核模块, 但是并没有与其他内核组件进行隔离, 因此一旦攻击者攻破内核就完全有能力禁用防御组件.不但Linux、Windows这类大型操作系统经常被暴露出安全漏洞, 像TEE OS这种专有的小型操作系统也被暴露出多个高危漏洞(CVE-2013-3051, CVE-2014-4322, CVE-2015-4422等).如果软件实现的抗物理攻击组件没有与操作系统隔离, 那么攻击者可以利用软件漏洞禁用抗物理攻击机制, 这也是大部分方案都假设内核安全的原因.实际上, 学术界已经提出在内核内部建立逻辑隔离地址空间的技术[
首先, 对于像Windows、Linux这样的大型操作系统, 建议将防御组件以内核模块的形式实现在内核层, 然后向上层应用提供相应的安全服务.并且不建议这些操作系统使用全系统加密方案, 因为以Minimal Kernel和SecTEE等全系统加密方案的性能评估结果来看, 全系统加密带来的性能负载可达2~50多倍(主要与应用对内存的访问频率有关, 对内存访问越频繁性能影响越大); 而密码算法保障以及应用程序保护等非全系统加密方案带来的性能负载一般在2倍以内, 最差情况也在10倍以内.大型操作系统对性能要求较高, 而大部分应用的安全要求不需要达到防御物理攻击的水平, 因此将防御组件实现为内核模块并只保障安全密切相关的应用即可.但是为了防止内核软件漏洞导致攻击者使用软件方式即破坏防御组件的安全问题, 建议参考内核嵌套隔离地址空间技术[
其次, 对于安全性要求较高的小型操作系统, 譬如TEE OS或安全密切相关的嵌入式OS, 建议使用全系统加密方案.因为TEE OS这类操作系统处理的主要是安全敏感业务, 譬如密钥管理、身份认证、移动支付、数字版权保护和个人生物信息存储等, 一旦信息泄露造成的损失较大.在这种高安全要求的背景下, 为系统部署安全性较高的全系统加密方案是必要的.对于体积特别小的嵌入式OS, 譬如只有几十KB或100KB左右的轻量级操作系统内核, 可以将操作系统内核整体运行在片内存储中, 然后根据需要将应用调度到片内存储中运行, 一旦不需要运行即可将应用加密存储到片外内存中.对于体积较大的操作系统内核, 可以借鉴Minimal Kernel方案, 构建一个可调度内核以及应用的最小化请求分页系统, 将该请求分页系统运行在片内存储中, 对内核其他组件以及应用进行按需调度并实施加密和完整性保护.基于请求分页机制的全系统加密方案由于对内核等系统软件也进行了内存加密保护, 给系统带来的性能负载较重, 特别是对内存访问较频繁的应用带来的性能负载可能达50多倍.
最后, 对于配备了硬件密码加速器的处理器, 防御组件应尽可能使用这些加速器来进行密码操作, 从而减少对主处理器的使用, 降低方案带来的负载.但是, 并不是所有的硬件密码加速都能提高软件加密的速度.法国帕莱索的研究所对飞思卡尔的密码加速模块CAAM(cryptographic acceleration and assurance module)进行了性能测试[
本节根据软件方式抗板级物理攻击防御技术的演进, 对该技术的发展趋势和可能出现的研究点进行总结和讨论.
随着物理攻击方法的提高, 用户对计算机系统的安全要求也越来越高.而安全本身是一个木桶效应非常明显的领域, 攻击者一般会从安全性最弱的组件实施攻击.对于计算机系统来说, 如果某一部分组件没有被防护, 那么攻击者会先攻击这一部分组件, 获得系统权限后再去攻击防御组件.因此, 为了保证安全方案实际可用, 需要防御组件能够保护其所在的整个地址空间.
如果防御组件位于内核层, 那么就需要对整个内核进行加密防御.但是从性能角度来看, 对整个内核进行全系统加密只适用于小型、安全密切相关并且对性能要求不太高的操作系统, 不适用于对性能要求较高的大型操作系统.对于大型操作系统, 可以将嵌套内核隔离技术与软件加密相结合, 设计与其他组件隔离的抗板级物理攻击防御技术, 避免对整个内核进行加密带来的计算负载.这方面的工作在学术界还没有展开, 但是能够解决软件方式抗板级物理攻击的短板, 是一种实际可用的技术思路.
软件方式的抗板级物理攻击方法的一个技术劣势是性能低, 这是软件内存加密造成的.解决该问题的常规思路是设计专有的硬件加密引擎或硬件密码加速器, 将内存加密部分交给专门的硬件组件来处理, 软件专门负责安全内存管理、中断管理、任务调度等系统软件功能.这种设计思路也符合现代计算机的发展趋势:图灵奖获得者Hennessy和Patterson共同提出未来计算机体系结构的一大发展趋势[
软硬件协同设计在抗板级物理攻击方面具有优势的另外一个实例是现代Secure Enclave技术.现代计算机系统已经将抗板级物理攻击作为一项必备安全属性, 而Secure Enclave技术的一个重要安全能力就是抵抗板级物理攻击.主流处理器都已经配备或开始研究Secure Enclave方案, 譬如Intel SGX、AMD SME、RISC-V Keystone[
以前内存侧信道攻击[
本文针对威胁日益严重的板级物理攻击, 调研其威胁模型、相关技术和现实存在的攻击案例, 重点对软件方式的、不需要修改处理器体系结构的抗板级物理攻击防御技术进行了详细深入的归纳总结, 包括各种方案的技术原理、安全能力和保护范围等.本文还讨论了这种防御技术的优势及其目前存在的问题, 并给出了在实际工程中应用该技术的建议, 以便工程人员能够合理、正确的使用该技术.最后本文探讨了该技术今后的发展趋势和一些研究点, 以供相关领域的研究人员参考.
doi:10.1145/1506409.1506429]]]>
doi:10.1007/978-3-642-38980-1_23]]]>
doi:10.1109/ARES.2015.47]]]>
doi:10.1109/ARES.2013.52]]]>
Bauer J, Gruhn M, Freiling FC. Lest we forget:Cold-boot attacks on scrambled DDR3 memory. Digital Investigation, 2016, 16:S65-S74.[doi:10.1016/j.diin.2016.01.009]
https://rdist.root.org/2010/01/27/how-the-ps3-hypervisor-was-hacked]]>
doi:10.1007/3-540-36400-5_17]]]>
Kuhn MG. Cipher instruction search attack on the bus-encryption security microcontroller DS5002FP. IEEE Trans. on Computers, 1998, 47(10):1153-1157.[doi:10.1109/12.729797]
https://www.nccgroup.trust/us/our-research/tpm-genie-interposer-attacks-against-the-trusted-platform-module-serial-bus]]>
Lee D, Jung D, Fang IT, Tsai CC, Popa RA. An off-chip attack on hardware enclaves via the memory bus. In: Proc. of the 29th USENIX Security Symp. (USENIX Security). USENIX Association, 2020.
Duflot L, Perez YA, Valadon G, Levillain A. Can you still trust your network card?. In: Proc. of the 2010 CanSecWest Conf. 2010. 24-26.
doi:10.1007/978-3-642-23644-0_20]]]>
Triulzi A. The Jedi Packet Trick takes over the Deathstar. In: Proc. of the 2010 CanSecWest Conf. 2010.
doi:10.1007/978-3-642-37300-8_2]]]>
doi:10.1007/978-1-4419-5906-5_511]]]>
Skorobogatov SP. Semi-invasive attacks:A new approach to hardware security analysis. Technical Report, UCAM-CL-TR-630, University of Cambridge, 2005.
doi:10.1145/356989.357005]]]>
doi:10.1145/782814.782838]]]>
doi:10.5555/956417.956575]]]>
doi:10.1007/978-3-540-40061-5_12]]]>
doi:10.1109/ISCA.2005.14]]]>
doi:10.1109/PACT.2004.1342547]]]>
doi:10.1109/HPCA.2005.31]]]>
doi:10.1145/1055626.1055631]]]>
Yang J, Gao L, Zhang YT. Improving memory encryption performance in secure processors. IEEE Trans. on Computers, 2005, 54(5):630-640.[doi:10.1109/TC.2005.80]
doi:10.1109/ISCA.2006.22]]]>
doi:10.1109/ACSAC.2006.21]]]>
doi:10.1145/1152154.1152170]]]>
doi:10.1109/MICRO.2007.16]]]>
Vaslin R, Gogniat G, Diguet JP, Tessier R, Burleson W. Low latency solution for confidentiality and integrity checking in embedded systems with off-chip memory. In: Proc. of the 3rd Int'l Workshop on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC). 2007. 146-153.
doi:10.1109/PACT.2007.4336203]]]>
doi:10.1007/978-3-540-74735-2_20]]]>
doi:10.1109/DATE.2009.5090729]]]>
doi:10.1109/ACSAC.2008.45]]]>
doi:10.1109/HPCA.2008.4658636]]]>
doi:10.1007/978-3-540-85886-7_4]]]>
Vig S, Juneja R, Jiang GY, Lam SK, Ou CH. Framework for fast memory authentication using dynamically skewed integrity tree. IEEE Trans. on Very Large Scale Integration (VLSI) Systems, 2019, 27(10):2331-2343.[doi:10.1109/TVLSI.2019.2923004]
doi:10.1145/1995896.1995914]]]>
doi:10.1145/2000064.2000086]]]>
doi:10.1007/978-3-642-01004-0_1]]]>
doi:10.1145/2566673]]]>
doi:10.1145/2487726.2488368]]]>
Anati I, Gueron S, Johnson SP, Scarlata VR. Innovative technology for CPU based attestation and sealing. In: Proc. of the 2nd Int'l Workshop on Hardware and Architectural Support for Security and Privacy (HASP). ACM, 2013. 13.
Kaplan D, Powell J, Woller T. AMD memory encryption. White paper. Advanced Micro Devices, Inc., 2016.
Lin JQ, Luo B, Guan L, Jing JW. Secure computing using registers and caches:The problem, challenges, and solutions. IEEE Security & Privacy, 2016, 14(6):63-70.[doi:10.1109/MSP.2016.130]
Huo WJ. Research and design of secure run-time mechanism for embedded processor[Ph.D. Thesis]. Wuhan: Huazhong University of Science and Technology, 2010(in Chinese with English abstract).
霍文捷.嵌入式处理器安全运行机制的研究与设计[博士学位论文].武汉: 华中科技大学, 2010.
https://globalplatform.org/specs-library/tee-protection-profile-v1-2-1]]>
doi:10.5555/1251327.1251331]]]>
Zhao SJ, Zhang QY, Qin Y, Feng W, Feng DG. Minimal kernel: An operating system architecture for TEE to resist board level physical attacks. In: Proc. of the 22nd Int'l Symp. on Research in Attacks, Intrusions and Defenses (RAID). USENIX Association, 2019. 105-120.
doi:10.1145/2694344.2694380]]]>
doi:10.1145/2666141.2666145]]]>
doi:10.1145/3319535.3363205]]]>
doi:10.1145/2775054.2694386]]]>
doi:10.14722/ndss.2016.23009]]]>
doi:10.14722/ndss.2017.23024]]]>
doi:10.1145/3313808.3313810]]]>
doi:10.1109/HPCA.2003.1183547]]]>
doi:10.1007/978-3-642-03356-8_1]]]>
doi:10.1007/978-3-540-73614-1_12]]]>
doi:10.1007/978-3-642-14597-1_3]]]>
doi:10.1109/BDCloud.2018.00128]]]>
® 64 and IA-32 architectures software developer's manual-Volume 1: Basic architecture. 2019. https://software.intel.com/sites/default/files/managed/a4/60/253665-sdm-vol-1.pdf]]>
doi:10.1145/1752046.1752053]]]>
doi:10.5555/2028067.2028084]]]>
doi:10.1145/2076732.2076743]]]>
Pabel J. FrozenCache: Mitigating cold-boot attacks for full-disk-encryption software. In: Proc. of the 27th Chaos Communication Congress (CCC). 2010.
doi:10.1109/ARES.2013.23]]]>
Götzfried J, Müller T. Analysing Android's full disk encryption feature. Journal of Wireless Mobile Networks, Ubiquitous Computing, and Dependable Applications, 2014, 5(1):84-100.[doi:10.22667/JOWUA.2014.03.31.084]
Nilsson A, Andersson M, Axelsson S. Key-hiding on the ARM platform. Digital Investigation, 2014, 11:S63-S67.[doi:10.1016/j. diin.2014.03.008]
Zhang XS, Tan YA, Xue Y, Zhang QX, Li YZ, Zhang C, Zheng J. Cryptographic key protection against FROST for mobile devices. Cluster Computing, 2017, 20(3):2393-2402.[doi:10.1007/s10586-016-0721-3]
doi:10.1145/2523649.2523656]]]>
doi:10.1007/978-3-319-21966-0_4]]]>
doi:10.1007/978-3-319-33630-5_20]]]>
doi:10.14722/ndss.2014.23125]]]>
doi:10.1109/SP.2015.8]]]>
doi:10.1145/2660267.2660316]]]>
Gueron S. Intel® Advanced Encryption Standard (AES) new instructions set. Intel Corporation. 2010. https://www.intel.com.bo/content/dam/doc/white-paper/advanced-encryption-standard-new-instructions-set-paper.pdf
doi:10.1007/978-3-642-03317-9_4]]]>
Ruusu J. loop-AES-file system and swap encryption package. LinuxLinks. 2018. https://www.linuxlinks.com/loop-aes
doi:10.1145/2420950.2420961]]]>
https://developer.arm.com/architectures/instruction-sets/simd-isas/neon]]>
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.77.4447&rep=rep1&type=pdf]]>
Barker EB, Barker WC, Burr WE, Polk WT, Smid M. NIST special publication 800-57 recommendation for key management-Part 1:General (revised). National Institute of Standards and Technology. 2006. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-57p1r2006.pdf
® advanced vector extensions programming reference. 2011. https://software.intel.com/sites/default/files/4f/5b/36945]]>
Mittal M, Peleg A, Weiser U. MMXTM technology architecture overview. Intel Corporation. 1996. https://software.intel.com/sites/default/files/m/d/3/0/MMX_Manual_Tech_Overview.pdf
® architecture instruction set extensions programming reference-Chapter 8: Intel® transactional synchronization extensions. 2012. https://software.intel.com/sites/default/files/m/9/2/3/41604]]>
doi:10.1145/3038228.3038233]]]>
Kwon O, Kim Y, Huh J, Yoon H. ZeroKernel:Secure context-isolated execution on commodity GPUs. IEEE Trans. on Dependable and Secure Computing, 2019.[doi:10.1109/TDSC.2019.2946250]
doi:10.1007/978-3-642-31284-7_5]]]>
doi:10.1145/1508293.1508311]]]>
doi:10.1145/2516760.2516771]]]>
doi:10.1145/3065913.3065914]]]>
Huber M, Horsch J, Ali J, Wessel S. Freeze and crypt:Linux kernel support for main memory encryption. Computers & Security, 2019, 86:420-436.[doi:10.1016/j.cose.2018.08.011]
doi:10.1145/2976749.2978372]]]>
doi:10.1109/THS.2010.5655081]]]>
doi:10.1145/2897845.2897924]]]>
doi:10.1007/978-3-030-00470-5_18]]]>
doi:10.1145/3317549.3319721]]]>
doi:10.5555/1924943.1924971]]]>
https://developer.arm.com/ip-products/system-ip/system-controllers/system-memory-management-unit]]>
doi:10.1007/978-3-030-29962-0_20]]]>
doi:10.1145/2072274.2072279]]]>
doi:10.1109/SP.2016.13]]]>
doi:10.1109/DATE.2008.4484834]]]>
doi:10.1007/978-3-319-66332-6_17]]]>
doi:10.14722/ndss.2019.23327]]]>
doi:10.1007/978-3-319-66399-9_20]]]>
doi:10.1007/978-3-319-24177-7_19]]]>
doi:10.1109/HPCA.2018.00045]]]>
doi:10.1007/978-3-030-37231-6_12]]]>
doi:10.1007/978-3-642-38980-1_19]]]>
Zhang MY, Zhang QY, Zhao SJ, Shi ZP, Guan Y. SoftME:A software-based memory protection approach for TEE system to resist physical attacks. Security and Communication Networks, 2019, 8690853:1-12.[doi:10.1155/2019/8690853]
Zhang MY. Research on defending physical attacks for trusted execution environment based on on-chip memory[MS. Thesis]. Beijing: Capital Normal University, 2019(in Chinese with English abstract).
张美玉.基于片上内存的可信执行环境抗物理攻击研究[硕士学位论文].北京: 首都师范大学, 2019.
Ishida R, Honda S, Takada H, Fukui A, Ogawa T, Tawara Y. TOPPERS/FMP kernel:RTOS for embedded multiprocessor systems with real-time tasks and throughput-demanding tasks. Computer Software, 2012, 19(4):219-243.[doi:10.11309/jssst.29.4_219]
doi:10.1109/ARES.2016.13]]]>
doi:10.1109/Trustcom/BigDataSE/ICESS.2017.232]]]>
Gueron S. Memory encryption for general-purpose processors. IEEE Security & Privacy, 2016, 14(6):54-62.
doi:10.1145/2693433.2693441]]]>
Hennessy JL, Patterson DA. A new golden age for computer architecture. Communications of the ACM, 2019, 62(2):48-60.[doi:10.1145/3282307]
doi:10.1145/3342195.3387532]]]>
doi:10.1145/3132747.3132782]]]>
doi:10.1145/3079856.3080246]]]>
doi:10.1145/2541940.2541967]]]>
doi:10.1109/MICRO.2014.58]]]>
doi:10.1145/2749469.2750389]]]>
doi:10.1145/2694344.2694358]]]>
Tromer E, Osvik DA, Shamir A. Efficient cache attacks on AES, and countermeasures. Journal of Cryptology, 2010, 23(1):37-71.[doi:10.1007/s00145-009-9049-y]
doi:10.5555/3154768.3154779]]]>
doi:10.1145/3052973.3053007]]]>
doi:10.1007/978-3-319-66332-6_16]]]>
doi:10.1145/3065913.3065915]]]>
doi:10.5555/3154690.3154719]]]>
doi:10.1007/978-3-319-66787-4_4]]]>
doi:10.1007/978-3-319-60876-1_1]]]>
doi:10.1145/2897845.2897885]]]>
doi:10.1145/3133956.3134038]]]>
doi:10.1109/SP.2015.45]]]>
doi:10.5555/2671225.2671271]]]>