«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (2): 132-139  DOI: 10.19678/j.issn.1000-3428.0060881
0

引用本文  

李闽, 张倩颖, 王国辉, 等. 抗板级物理攻击的持久存储方法研究[J]. 计算机工程, 2022, 48(2), 132-139. DOI: 10.19678/j.issn.1000-3428.0060881.
LI Min, ZHANG Qianying, WANG Guohui, et al. Research on Persistent Storage Method Against Board-Level Physical Attacks[J]. Computer Engineering, 2022, 48(2), 132-139. DOI: 10.19678/j.issn.1000-3428.0060881.

基金项目

国家自然科学基金(61802375, 61602325, 61876111, 61877040);北京市教委科技计划一般项目(KM201910028005);中国科学院计算技术研究所计算机体系结构国家重点实验室开放课题(CARCH201920);首都师范大学交叉科学研究院项目(19530012005)

通信作者

张倩颖(通信作者), 副教授

作者简介

李闽(1993-), 男, 硕士研究生, 主研方向为嵌入式操作系统安全;
王国辉, 高级实验师;
施智平, 教授、博士生导师;
关永, 教授、博士生导师

文章历史

收稿日期:2021-02-18
修回日期:2021-04-27
抗板级物理攻击的持久存储方法研究
李闽1 , 张倩颖1,2,3 , 王国辉1,2 , 施智平1,4 , 关永1,5     
1. 首都师范大学 信息工程学院, 北京 100048;
2. 高可靠嵌入式系统北京市工程研究中心, 北京 100048;
3. 中国科学院计算技术研究所 计算机体系结构国家重点实验室, 北京 100190;
4. 电子系统可靠性技术北京市重点实验室, 北京 100048;
5. 北京成像理论与技术高精尖创新中心, 北京 100048
摘要:为保护文件系统的安全性, 提出一种抗板级物理攻击的持久存储方法。利用ARM TrustZone技术构建持久存储架构, 实现内存保护机制和持久存储保护服务, 提高文件系统的物理安全性。基于片上内存(OCM)在可信执行环境(TEE)中的内核层建立内存保护机制, 保证TEE的可信应用能够抵抗板级物理攻击。基于TEE的内存保护机制实现保护文件系统中敏感数据的持久存储保护服务, 确保文件系统的机密性和完整性。在物理开发板上实现持久存储架构的原型系统, 使用基准测试工具对原型系统进行性能评估, 并分析性能损耗的原因。测试结果表明, 内存保护机制在保护TEE系统物理安全性时引入的时间开销会随着OCM的增大而减小, 持久存储保护服务在保护数据量较小的敏感数据时产生的时间开销在用户可接受范围内。
关键词ARM TrustZone技术    可信执行环境    板级物理攻击    片上内存    持久存储保护    
Research on Persistent Storage Method Against Board-Level Physical Attacks
LI Min1 , ZHANG Qianying1,2,3 , WANG Guohui1,2 , SHI Zhiping1,4 , GUAN Yong1,5     
1. College of Information Engineering, Capital Normal University, Beijing 100048, China;
2. Beijing Engineering Research Center of High Reliable Embedded System, Beijing 100048, China;
3. State Key Laboratory of Computer Architecture, Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, China;
4. Beijing Key Laboratory of Electronic System Reliability Technology, Beijing 100048, China;
5. Beijing Advanced Innovation Center for Imaging Theory and Technology, Beijing 100048, China
Abstract: In order to protect the security of the file system, this paper presents a persistent storage method against board-level physical attacks.Utilizing the ARM TrustZone technology, we build a persistent storage architecture that provides a memory protection mechanism and a persistent storage protection service and improves the physical security of the file system.Based on On-Chip Memory(OCM), a memory protection mechanism is built at the kernel level of the Trusted Execution Environment(TEE), and it ensures that trusted applications of TEE can resist board-level physical attacks.Based on the above memory protection mechanism of TEE, a persistent storage protection service is realized for protecting sensitive data in file systems, which can provide confidentiality and integrity protection to the file system.Finally, we implement a prototype system on a physical development board, use benchmark test tools to evaluate its performance, and analyze the cause for its overhead.The test results show that the overhead introduced by the memory protection mechanism in protecting the physical security of the TEE system decreases with the increase of the OCM, and the overhead of the persistent storage protection service when protecting a small amount of sensitive data is within the acceptable range of users.
Key words: ARM TrustZone technology    Trusted Execution Environment(TEE)    board-level physical attack    On-Chip Memory(OCM)    persistent storage protection    

开放科学(资源服务)标志码(OSID):

0 概述

随着移动设备和信息技术的快速发展,移动设备中存储了越来越多的用户敏感信息,例如个人密钥、面部信息和指纹信息,这些信息保存在磁盘或闪存等可持久存储设备中,防止设备重启时丢失敏感信息,从而进行身份验证。为保护这些敏感数据,ARM公司于2006年提出TrustZone[1]安全解决方案。TrustZone将CPU划分为安全世界和普通世界,其中安全世界提供了可信执行环境(Trusted Execution Environment,TEE)。TEE是一个隔离的执行环境,它为运行在其中的可信应用(Trusted Application,TA)提供了安全性保证,保护可信应用免受来自普通世界的软件攻击。目前,高通、华为、三星等很多处理器厂商都在其产品中支持TrustZone技术,提供可信执行环境。虽然TEE已经得到商业化的应用,但是只能抵御软件攻击,不能抵御板级物理攻击,例如对Xbox[2]和PlayStation 3[3]的总线窃听攻击[4],对Galaxy Nexus智能手机的冷启动攻击[5]等。板级物理攻击通过窃听CPU和DRAM之间的地址总线或篡改DRAM的内容进行攻击,主要包括冷启动攻击、总线攻击和DMA攻击。板级物理攻击所付出的代价不大,并且随着很多成熟的攻击工具被开源[6-7],攻击者可以很容易使用这些工具,例如:HALDERMAN等[8]提出冷启动攻击,该攻击可以绕过TrustZone机制并从DRAM中获得密钥,从而解密出用户的敏感数据;MÜLLER等[5]提出Frost工具,该工具能够利用冷启动攻击从手机中获取最近的电子邮件、照片和访问过的网站信息。

为抵御板级物理攻击,学术界和工业界提出许多解决方案,主要包括保护加密算法的抗板级物理攻击方案和操作系统层的抗板级物理攻击方案2类,其中:第1类方案会占用CPU或GPU的通用寄存器或专用寄存器,影响系统部分功能的运行;第2类方案仅保护了程序中的部分敏感数据,无法满足保护TEE系统的安全性需求。片上内存(On-Chip Memory,OCM)具有不会暴露任何物理引脚或物理线的特性,保证了信息不会从物理引脚或者物理线上泄露,使运行在其中的任务具有抵抗板级物理攻击的能力。从保护文件系统的安全性出发,本文将OCM作为TEE OS和TA的工作内存。基于ARM TrustZone技术构建持久存储架构提供内存保护机制和持久存储保护服务,前者用于将持久存储保护服务运行在OCM中,保护该服务的机密性和完整性,后者对文件系统中敏感数据进行加密保护和完整性保护,从而使文件系统抵御板级物理攻击。该架构以软件方式实现,无需占用专用硬件,可部署在没有板级物理攻击保护的现有系统上,以提高文件系统持久存储的物理安全性。在基于ARM TrustZone的物理开发板上实现了持久存储架构的原型系统,普通世界运行Linux,安全世界运行OP-TEE OS,并使用基准测试工具xtest[9]对系统性能进行评估。

1 相关知识 1.1 ARM TrustZone架构

TrustZone通过硬件隔离技术提供一个TEE,TEE可以有效地抵御软件攻击。TrustZone利用硬件虚拟化技术,将片上系统(System on Chip,SoC)的硬件和软件资源划分为安全世界和普通世界。两个世界通过监控器模式进行切换,保证普通世界无法访问安全世界的资源,因此即使普通世界被攻破时也不会泄露安全世界的敏感数据。ARM TrustZone架构如图 1所示。虽然TrustZone可以对内存进行隔离保护,但并不对内存进行加密,这使存储在TrustZone安全世界中的敏感数据面临通过板级物理攻击被窃取的威胁。

Download:
图 1 ARM TrustZone架构 Fig. 1 Architecture of ARM TrustZone
1.2 板级物理攻击

板级物理攻击通过窃听CPU和DRAM之间的地址总线或篡改DRAM的内存进行攻击。本节将对冷启动攻击、总线攻击和DMA攻击这3种板级物理攻击进行介绍。

1.2.1 冷启动攻击

冷启动攻击利用DRAM的剩磁特性进行攻击。剩磁特性是DRAM的基本物理特性,无法消除,指设备在断电后存储在DRAM中的信息不会立即消失,而会保留一段时间,并且在低温下大幅延长保留时间。

冷启动攻击有2种实现方式:1)首先将事先准备好的U盘等存储设备插入到目标计算机中,然后通过切断电源或重启目标计算机以启动U盘中定制的操作系统,该系统能将DRAM中的内容保存到U盘上的指定分区,从而得到存储在DRAM中的数据;2)首先将正在运行的目标计算机的DRAM进行冷却,然后将DRAM迅速转移到事先准备好的攻击设备上,最后利用设备中的攻击程序读取DRAM中的密钥等敏感信息。目前,已经有很多冷启动攻击成功的案例[10],对用户的敏感信息造成了严重威胁。

1.2.2 总线攻击

总线攻击一般分为总线窃听攻击和总线篡改攻击。攻击者通过总线分析工具连接到内存总线上,等待CPU通过总线请求敏感数据,进而窃听或修改总线上传输的数据。目前,已经有很多总线窃听攻击成功的案例,例如MIT研究团队对Xbox的总线窃听攻击和IBM研究院对U盘等存储设备的USB总线窃听攻击[11]

1.2.3 DMA攻击

DMA攻击是一种利用DMA接口将支持DMA的外设直接接入高速扩展端口,而无需CPU或操作系统的干涉即可直接访问任意物理内存的攻击方式。DMA攻击可以绕过操作系统的保护,通过对具有DMA功能的外设进行编程,从而利用DMA控制器读取存储在内存中的敏感数据。DMA攻击可以通过便携式摄像机视频卡、网络接口卡等发起。

1.3 片上内存

片上内存由高速SRAM构成,通过内部高速总线与CPU连接,使CPU访问OCM的速度要快于DRAM。OCM与Cache不同点在于其通常由软件控制并且设计比Cache简单得多,因此更加灵活、功耗更低。

在设备引导完成后,操作系统和应用程序可以根据需要使用OCM,且OCM不会对芯片外部暴露任何物理引脚或物理线的特性,使其可以抵御板级物理攻击。因此,本文使用OCM作为TEE OS和TA的工作内存以提高TEE系统的物理安全性。

2 相关工作

为抵御板级物理攻击和保护文件系统的敏感数据,近年来国内外学者进行了一系列相关研究,主要包括保护加密算法的抗板级物理攻击方案、操作系统层的抗板级物理攻击方案以及文件系统保护方案。

2.1 保护加密算法的抗板级物理攻击方案

AESSE[12]是由德国亚琛工业大学提出的一种通过在微处理器上实现AES来抵御冷启动攻击的方案。AESSE利用处理器中SSE(Streaming SIMD Extensions)提供的寄存器来实现AES,使得密钥和其中间状态都不会离开处理器,保护了加密和解密的过程,但是与内核标准的AES加密和解密相比,性能约下降了6倍。

TRESOR[13]是由德国埃尔朗根-纽伦堡大学提出的一种针对X86架构抵御冷启动攻击和DMA攻击的方案。TRESOR在微处理器上实现AES加密算法和密钥管理,使AES加密算法完全运行在微处理器上,并利用英特尔的AES-NI指令集,将AES加密算法的所有中间状态和密钥存储在调试寄存器中,从而使攻击者无法在RAM中获得任何密钥信息。

Loop-Amnesia[14]是由美国伊利诺伊大学提出的一种使磁盘加密能够抵御冷启动攻击的方案。Loop-Amnesia将磁盘加密使用的密钥存储在X86平台中的MSR(Model-Specific Register)性能计数器中,保护密钥不被攻击者窃取。该方案适用于基于操作系统的磁盘加密系统,并且项目已经开源。

PRIM[15]是由德国波鸿鲁尔大学提出的一个保护RSA私钥的抗冷启动攻击方案。PRIM使用对称加密将RSA私钥加密存储在RAM中,使攻击者无法获取明文的RSA私钥,该对称密钥则存储在Intel的多媒体寄存器中。实验结果表明,PRIME的RSA运行速度比传统的RSA慢10倍。

PixelVault[16]是由希腊计算机科学研究所提出的一个保护加密密钥的方案,用于保护AES和RSA算法的物理安全性。PixelVault将加密密钥存储在GPU寄存器中,从而保护密钥的机密性。密码算法运行在GPU的片上内存中且在运行时不会被抢占,以防止上下文切换时导致的密钥泄露问题。

2.2 操作系统层的抗板级物理攻击方案

Cryptkeeper[17]是由美国加州大学洛杉矶分校提出的一种减少敏感数据泄露的方案。Cryptkeeper将RAM划分为一个较小的明文段(Clear)和一个较大的密文段(Crypt),根据程序运行的需要动态将这两个段的数据进行交换,保证数据在加密段的安全性。Cryptkeeper不能保护全部数据的安全性,在RAM中总是存在一部分明文数据,并且由于频繁的产生磁盘交换,每页读取的时间开销达到了300 μs。

Sentry[18]是由加拿大英属哥伦比亚大学提出的一种保护手机和平板电脑免受冷启动攻击、总线窃听攻击、DMA攻击的方案。在设备锁定状态下,Sentry将后台运行的任务加载到SoC的iRAM中运行,并将其他敏感应用程序的内存页加密。在设备解锁状态下,根据程序运行的需要对页面进行解密。实验结果表明,Sentry在CPU密集型任务测试中表现出了良好的性能。

RamCrypt[19]是由德国埃尔朗根-纽伦堡大学提出的一种抗板级物理攻击的方案。RamCrypt作为一个Linux内核补丁透明地加密了用户模式进程的地址空间,程序无需重写或者重新编译。RamCrypt通过存储在CPU寄存器中的密钥,对RAM中的敏感数据进行加密存储,仅在敏感数据使用时对其解密。sysbench基准测试套件测试显示进程效率降低了25%。

MemVault[20]是由美国乔治亚大学提出的一种抗板级物理攻击方案。MemVault将敏感信息标记为污染状态,并追踪标记信息的传播,在DRAM中加密标记信息,在片上内存中进行解密。MemVault减少了敏感信息在移动设备上的泄露。

2.3 文件系统保护方案

BitLocker[21]是微软公司提出的一种磁盘加密功能,用于保护存储在文件中的敏感信息。在系统启动期间,BitLocker作为引导加载程序的组件,以确保安全地进行系统引导,并在引导完成后作为操作系统内核的驱动程序,以保护敏感信息的机密性和完整性。BitLocker通过与可信平台模块(Trusted Platform Module,TPM)一起使用,可以在受保护的文件解密前对其完整性进行验证,验证不成功将禁止对其进行访问。BitLocker在文件加密和解密时使用的密钥由TPM进行管理,TPM保证只有当平台可信时才会将密钥交给BitLocker使用。BitLocker以透明的方式运行,可以配置在微软的Windows Vista及以上版本的操作系统中。

dm-crypt[22]是Linux内核2.4版本开始提供的一个磁盘加密模块,可以运行在多种存储块设备中,为用户提供了创建块设备的通用方法。dm-crypt在用户和块设备之间提供一个加密函数,用户可以指定dm-crypt使用的密码算法、加密模式以及密钥,进而在Linux的/dev目录下创建块设备。dm-crypt可以透明地加密文件数据,保护了文件的安全性。dm-crypt作为Linux内核中内置的基础系统,已经包含在大多数Linux的发行版本中。

2.4 相关工作对比分析

针对国内外相关研究中抗板级物理攻击方案和文件系统保护方案存在的不足,本文提出抗板级物理攻击的持久存储方法。该方法在TEE内核层实现内存保护机制,利用OCM可以抵御板级物理攻击的特性,将OCM作为TEE OS和TA的工作内存,DRAM作为其后备存储保存加密的页面,从而提高了TEE系统的物理安全性;在内存保护机制的基础上实现了持久存储保护服务,保护了文件系统中敏感数据的机密性和完整性,从而提高了文件系统的安全性。

保护加密算法的抗板级物理攻击方案需要占用CPU或GPU的通用寄存器或专用寄存器,影响系统的正常运行。目前,大多数平台都在片上系统中配置了OCM且在设备启动后,OCM可以由用户根据需要进行使用,因此将TEE OS和TA运行在OCM中不会对系统运行产生影响,不需要一直占用专用寄存器资源。本文方案以软件方式实现,在不影响系统其他功能的基础上,可以部署在没有板级物理攻击保护的现有系统上,提高了系统的物理安全性。

操作系统层的抗板级物理攻击方案只保护了程序中的一部分敏感数据,仍有一部分敏感数据会被攻击者窃取。本文方案通过内存保护机制保护存储在DRAM中TEE OS和TA页面的机密性和完整性,使明文页仅出现在OCM中,从而保证TEE系统可以抵御板级物理攻击,提高了TEE系统的物理安全性。

文件系统保护方案虽然能够提高文件系统持久存储的安全性,但由于文件加密使用的密钥存储在DRAM中,攻击者可以通过板级物理攻击获取密钥信息,进而解密出文件系统中的敏感数据,因此文件系统保护方案无法抵御板级物理攻击。为了保护文件系统的安全性,本文在内存保护机制的基础上实现了持久存储保护服务。持久存储保护服务运行在安全世界的OCM中,使其可以抵御板级物理攻击。该服务对文件系统的敏感数据提供机密性和完整性保护,确保了文件系统中敏感数据持久存储的物理安全性。

3 系统架构

本文提出抗板级物理攻击的持久存储方法,将OCM作为TEE OS和TA的工作内存,使它们在OCM中运行,DRAM作为其后备存储,保存加密的敏感代码和数据,保证TEE OS和TA免受板级物理攻击,然后在此基础上实现持久存储保护服务对文件系统中敏感数据进行加密存储与完整性校验,以保护文件系统的机密性和完整性。

3.1 整体架构

抗板级物理攻击的持久存储架构如图 2所示。为了使文件系统能够抵抗板级物理攻击,该架构基于TrustZone技术,在TEE OS内核层中增加了内存保护机制并在TEE用户层实现了持久存储保护服务,其中,内存保护机制对TEE OS和TA提供内存保护,持久存储保护服务对文件系统中敏感信息提供机密性与完整性保护。

Download:
图 2 抗板级物理攻击的持久存储架构 Fig. 2 Architecture of persistent storage resistant to board-level physical attacks

抗板级物理攻击的持久存储架构能够抵御软件攻击和板级物理攻击。对于软件攻击,TrustZone通过硬件隔离机制,将DRAM划分为普通世界和安全世界,因为普通世界无法对安全世界的资源进行访问,所以恶意的操作系统和恶意的普通应用无法对TEE OS造成破坏。对于板级物理攻击,内存保护机制保证了TEE OS和TA页面的机密性和完整性,将OCM作为TEE OS和TA的工作内存,当TEE OS或TA加载到OCM中运行时,对其页面进行解密并检查其数据页的完整性,当TEE OS和TA置换到DRAM中时,对其页面进行加密并对数据页进行完整性保护。在OCM中运行的持久存储保护服务实现了对文件系统中敏感数据的加密存储和完整性校验:当用户对文件系统中敏感数据写入时,对敏感数据加密,保护其机密性;当用户对文件系统中敏感数据读取之前,会验证敏感数据的完整性,只有验证成功后,才对敏感数据进行解密,从而防止敏感数据被篡改。

3.2 内存保护机制

为保护TEE OS和TA不会被攻击者所窃取或篡改,需要确保后备存储上数据的机密性和完整性。抗板级物理攻击的持久存储架构在可信操作系统中实现内存保护机制保证TEE OS和TA的机密性和完整性,内存保护机制工作流程如图 3所示,具体步骤如下:

Download:
图 3 内存保护机制工作流程 Fig. 3 Workflow of memory protection mechanism

1)拦截缺页中断。当CPU访问的数据或代码不在OCM中时,会产生一个缺页异常,该异常会被内存保护机制拦截并进行处理。

2)内存机密性/完整性校验。内存保护机制会在OCM中找到一个空闲页并将DRAM中所需的页面加载进去,在加载的过程中使用SHA-256算法验证代码和数据的完整性。在验证成功后,使用AES算法对加载的页面进行解密。

3)页面重映射。内存保护机制更新页表项并将该页重新映射到分配的OCM空闲页中。

4)CPU重新访问。CPU从OCM中重新访问该代码段或数据。

5)机密性/完整性保护。当OCM没有空闲页时,使用最近最少使用页面置换算法将OCM中的页与DRAM进行置换。当置换的页为数据页时,内存保护机制会将该页加密并存储到DRAM中,并将其哈希值存储到OCM中以备下次验证。

3.3 持久存储保护服务

为保护用户敏感数据的机密性和完整性,在抗板级物理攻击的持久存储架构中设计一个持久存储保护服务,对普通世界的文件系统中敏感数据提供机密性和完整性保障。持久存储保护服务架构如图 4所示。

Download:
图 4 持久存储保护服务架构 Fig. 4 Architecture of persistent storage protection service

当持久存储保护服务需要对文件系统中敏感数据进行写入/读取时,首先会对数据进行加密/解密,然后通过RPC调用,将加密/解密的数据发送给TEE Supplicant,最后TEE Supplicant将加密/解密的数据交由普通世界的文件系统进行写入和读取操作。

普通世界的文件系统使用二叉树的结构对加密文件进行存储。这些加密的文件以编号进行区分,通过一个数据库文件进行管理。数据库文件中保存了加密文件对应的哈希值,每次对加密文件进行操作时,会先计算每个文件的哈希值,并与保存的哈希值进行比较验证文件的完整性。

密钥管理器是持久存储保护服务的一个组件,负责提供敏感数据的加密和解密以及密钥的生成。对于每一个加密的文件都有唯一的文件加密密钥(File Encryption Key,FEK)用于加密敏感数据。密钥生成流程如图 5所示。首先通过密钥派生函数(Key Derivation Function,KDF)使用设备密钥(Device Key,DK)和持久存储保护服务的哈希值k派生出安全存储密钥(Secure Storage Key,SSK),然后使用随机数派生器生成的随机数random与SSK派生出每个文件的FEK,最后通过AES-128加密算法将SSK作为密钥加密FEK生成En-FEK并保存在加密文件头部。

Download:
图 5 密钥生成流程 Fig. 5 Procedure of key generation

当用户写入敏感数据时,首先使用SHA-256算法计算持久存储保护服务的哈希值k并获取DK,然后调用KDF(DK,k)派生出SSK,之后使用随机数派生器生成的random与SSK调用KDF(SSK,random)派生出FEK,FEK用于加密敏感数据,保证敏感数据的机密性,最后使用SSK作为AES-128的加密密钥加密FEK生成En-FEK。敏感数据使用FEK加密后发送给普通世界的文件系统进行持久存储,写入完成后计算加密文件的哈希值kv,将kv和En-FEK保存到数据库文件中,分别用于验证加密文件的完整性和解密。

当用户读取敏感数据时,验证加密文件的哈希值是否在数据库文件中存在,验证失败说明该文件无效或文件内容已经被攻击者篡改,结束本次读取;在验证成功之后,首先密钥管理器调用KDF算法使用DK和重新计算的持久存储保护服务哈希值k派生出SSK,然后使用SSK将获取到的En-FEK通过AES-128进行解密得到该加密文件的FEK,最后使用FEK将密文数据解密。解密失败说明FEK派生失败,持久存储保护服务的哈希值k已经发生变化,即持久存储保护服务已经被篡改,获取不到明文数据;解密成功则将明文数据发送给用户。

4 系统实现

本文原型系统选用开源的OP-TEE 2.6.0作为安全世界的操作系统,选用Linux的imx_4.1.15_2.0.0_ga版本作为普通世界的操作系统。物理硬件平台选用支持ARM TrustZone的NXP BD-SL-i.MX6开发板,在该开发板上实现了抗板级物理攻击的持久存储架构。

4.1 内存隔离

由于OP-TEE OS和TA需要在运行时加载到OCM中运行以抵抗板级物理攻击,因此需要将OCM分配给安全世界,用于运行OP-TEE OS和TA。DRAM一部分分配给安全世界,作为OCM的后备存储,保存TA的加密页面;另一部分分配给普通世界,用于运行Linux和普通应用。OP-TEE OS和TA运行在0x00900000-0x0093FFFF,后备存储地址为0x4F000000-0x50000000,Linux运行在0x12000000-0x4EFFFFFF。

4.2 内存保护机制的实现

为使OP-TEE能够实现内存保护机制,以在OCM不足时与DRAM进行页面置换,将运行时代码和数据加载到OCM中。本文在OP-TEE OS的内核层中构建一个物理页面池,它映射不同的虚拟地址。当物理页面池不足时,使用最近最少使用页面置换算法选择最旧的物理页面保存到后备存储中。在保存的过程中使用加密算法AES-128保护置换出的页面数据段和代码段的机密性,并使用SHA-256哈希算法保护代码段的完整性。

4.3 持久存储保护服务的实现

为保护文件系统的机密性和完整性,原型系统实现了持久存储保护服务:

1)利用SHA-256哈希算法计算持久存储保护服务的哈希值;基于散列消息认证码(Hash-based Message Authentication Code,HMAC)的密钥派生函数,先后派生出SSK和FEK;利用AES-128加密算法以SSK作为对称密钥加密FEK生成En-FEK。

2)利用哈希算法SHA-256,验证持久存储文件和持久存储保护服务的完整性;利用AES-128加密算法加密/解密明文/密文数据,从而保证敏感数据的机密性。

5 系统性能评估

OCM大小与持久存储保护操作是影响抗板级物理攻击的持久存储架构性能的关键因素,因此,本文将对这2个关键因素进行测试,评估本文原型系统产生的时间开销。

本文测试在NXP BD-SL-i.MX6开发板上进行,该板有4个ARM Cortex-A9处理器核心,1 GB DDR3L,256 KB OCM,主频为1 GHz,支持ARM TrustZone。

5.1 OCM大小

本文评估了内存保护机制对原始OP-TEE系统的性能影响,利用基础测试工具xtest对原始OP-TEE系统和原型系统的SHA1哈希算法进行测试。为保证测试的可靠性,分别对原始OP-TEE系统和原型系统进行30次回归测试。

图 6所示,原始OP-TEE系统执行SHA1哈希算法的最大时间为134.284 μs,30次实验平均时间为132.543 μs,而原型系统执行SHA1哈希算法的最大时间为186.624 μs,30次实验平均时间为184.172 μs。原型系统的性能开销约为原始OP-TEE系统性能的72%,这部分开销是由于内存保护机制在保护可信应用时,片外内存需要与片上内存进行页面置换,以将可信应用加载到安全的片上内存中运行,从而导致页面置换产生了额外的时间开销,但是该时间开销对于用户而言是在可接受范围之内的。

Download:
图 6 SHA1哈希算法执行时间开销 Fig. 6 SHA1 hash algorithm execution time overhead

通过上述分析得知,原型系统中内存保护机制的时间开销是在页面置换时产生的,因此OCM的大小是影响性能的主要因素。由于可用的OCM非常有限,并且当空闲的OCM地址空间不足以加载可信任务时,会产生过多的页面置换,因此本文对OCM的大小进行调整,从256 KB到352 KB,并测试不同OCM大小通过持久存储保护服务对1 KB数据进行写入和读取所需的时间。每种情况进行30次测试取其平均值。由于实验所用开发板的OCM最大为256 KB,为了测试OCM大小对性能的影响,OCM大于256 KB的实验均为仿真实验,例如OCM为288 KB、320 KB、352 KB。如图 7所示,使用本文方案对文件系统进行保护时,在OCM为256 KB的情况下,原型系统的性能比原始OP-TEE系统降低了2倍,这是由于调用持久存储保护服务时会进行多次的页面置换,以将该服务加载到OCM中运行。随着OCM地址空间的增大,工作内存也随之增大,时间开销呈线性减少。

Download:
图 7 不同OCM大小对写入和读取1 KB敏感数据的时间开销 Fig. 7 Time overhead of writing and reading 1 KB sensitive data with different OCM sizes
5.2 持久存储保护操作

为探究持久存储保护的不同操作对系统性能的影响,本节对持久存储保护服务的写入、读取和删除操作时间进行测试,分别针对两种不同大小的数据(100 KB和1 MB)进行实验。测试同样进行30次并取平均值。如图 8所示,写入100 KB和1 MB数据的时间分别为5.947 s和50.913 s,读取100 KB和1 MB数据的时间分别为0.918 s和3.395 s,删除100 KB和1 MB数据的时间分别为0.750 s和0.736 s,可以看出对同样数据量的写入、读取和删除操作而言,写入操作的时间是最长的,即写入操作是持久存储保护服务产生时间开销的主要因素。从图 8中还可以看出,写入操作和读取操作都随着数据量的增加呈线性增长,而删除操作是最快的,并且与数据量的大小没有关系。由于用户敏感数据通常是密钥或个人信息,这类数据一般比较小,因此持久存储保护服务开销对用户而言是在可接受范围之内的,并且可以通过优化密码算法对大文件的保护性能进行改善。

Download:
图 8 持久存储保护操作时间开销 Fig. 8 Time overhead of persistent storage protect operation
6 安全性分析

本文提出抗板级物理攻击的持久存储方案,对于其抗板级物理攻击的安全性分析具体如下:

1)冷启动攻击。本文利用片上内存作为TEE OS和TA的工作内存抵御冷启动攻击。对于第一种冷启动攻击,需要对目标设备进行重启才能进行后续的攻击,研究表明设备重启后OCM中的数据会立即被BootROM清除[23],因此攻击者在使用第一种冷启动攻击对本文方案进行攻击时无法获得片上内存中的敏感数据。对于第二种冷启动攻击,攻击者会将目标设备的DRAM冷却后转移到攻击设备中,从而读取DRAM中的敏感数据,本文方案利用内存保护机制对DRAM中的数据进行加密保护,即使攻击者将DRAM冷却后转移到攻击设备中进行读取,也只能获得加密后的密文信息,使攻击失败。因此,本文方案可以抵御冷启动攻击。

2)总线攻击。本文使用OCM作为工作内存保存页面的明文形式。由于OCM的地址空间有限,因此需要将OCM中运行完毕的页面切换到DRAM进行保存。数据在总线上进行传输前,本文方案的内存保护机制对数据加密以保护其机密性,因此攻击者只能窃听到加密数据,从而抵御总线窃听攻击。在页面从DRAM加载到OCM后,内存保护机制对页面解密并验证页面的完整性,如果验证失败,说明页面已经被攻击者篡改,则结束本次加载,从而抵御总线篡改攻击。因此,本文方案可以抵御总线攻击。

3)DMA攻击。本文方案建立在ARM TrustZone技术的基础上,为了防止DMA攻击窃取片上内存的敏感信息,利用TrustZone的硬件隔离机制,将普通世界的恶意DMA外设与分配给安全世界的OCM进行隔离,使攻击者无法通过恶意DMA外设访问OCM中的敏感数据,从而使DMA攻击失败。因此,本文方案可以抵御DMA攻击。

7 结束语

本文提出抗板级物理攻击的持久存储保护方法,使文件系统的持久存储可以抵御板级物理攻击。该方法将OCM作为TEE OS和TA的工作内存,并保护存储在DRAM中TEE OS和TA的机密性和完整性,使TEE系统可以抵御板级物理攻击,在此基础上实现持久存储保护服务,为文件系统中敏感数据提供机密性和完整性保护,提高了文件系统持久存储的物理安全性。该方法以软件的方式实现,无需对硬件进行额外的修改,可以很方便地部署在没有板级物理攻击保护的现有系统上。实验结果表明,本文方法的时间开销主要来自OCM与DRAM的页面置换和对持久存储文件的写入和读取操作,在用户可接受范围之内。由于OCM大小对整个架构性能具有较大的影响,因此下一步的研究重点是仅将TA的关键页面加载到OCM中运行,其余部分在DRAM中运行,从而增大工作内存空间,提升系统性能。

参考文献
[1]
ARM Ltd. Security technology-building a secure system using TrustZone technology[EB/OL]. [2021-01-04]. https://developer.arm.com/documentation/PRD29-GENC-009492/c.
[2]
HUANG A. Keeping secrets in hardware: the Microsoft XboxTM case study[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2002: 213-227.
[3]
HOTZ G. PS3 glitch hack[EB/OL]. [2021-01-04]. https://rdist.root.org/2010/01/27/how-the-ps3-hypervisor-was-hacked/.
[4]
SOLUTIONS E. Analysis tools for DDR1, DDR2, DDR3, embedded DDR and fully buffered DIMM modules[EB/OL]. [2021-01-04]. http://www.epnsolutions.net/ddr.html.
[5]
MÜLLER T, SPREITZENBARTH M. Frost: forensic recovery of scrambled telephones[C]//Proceedings of International Conference on Applied Cryptography and Network Security. Berlin, Germany: Springer, 2014: 373-388.
[6]
FS2334 DDR2800 MT/s DIMM analysis probe-FuturePlus systems[EB/OL]. [2021-01-04]. https://www.yumpu.com/en/document/read/41592980/fs2334-ddr2-800-mt-s-dimm-analysis-probe-futureplus-systems.
[7]
NCC Group. TPM genie tool[EB/OL]. [2021-01-04]. https://github.com/nccgroup/TPMGenie.
[8]
HALDERMAN J A, SCHOEN S D, HENINGER N, et al. Lest we remember[J]. Communications of the ACM, 2009, 52(5): 91-98.
[9]
Gitee. Optee_test[EB/OL]. [2021-02-05]. https://gitee.com/iamwjia/optee_test.
[10]
杨阳, 关志, 陈钟. 冷启动攻击研究综述[J]. 计算机应用研究, 2015, 32(10): 2886-2890. DOI:10.3969/j.issn.1001-3695.2015.10.002
[11]
NEUGSCHWANDTNER M, BEITLER A, KURMUS A. A transparent defense against USB eavesdropping attacks[C]//Proceedings of the 9th European Workshop on System Security. New York, USA: ACM Press, 2016: 1-6.
[12]
MÜLLER T, DEWALD A, FREILING F C. AESSE: a cold-boot resistant implementation of AES[C]//Proceedings of the 3rd European Workshop on System Security. New York, USA: ACM Press, 2010: 42-47.
[13]
MÜLLER T, FREILING F C, DEWALD A. TRESOR runs encryption securely outside RAM[C]//Proceedings of the 20th USENIX Security Symposium. New York, USA: ACM Press, 2011: 1-17.
[14]
SIMMONS P. Security through amnesia: a software-based solution to the cold boot attack on disk encryption[C]//Proceedings of the 27th Annual Computer Security Applications Conference. New York, USA: ACM Press, 2011: 73-82.
[15]
GARMANY B, MÜLLER T. PRIME: private RSA infrastructure for memory-less encryption[C]//Proceedings of the 29th Annual Computer Security Applications Conference. New York, USA: ACM Press, 2013: 149-158.
[16]
VASILIADIS G, ATHANASOPOULOS E, POLYCHRONAKIS M, et al. PixelVault: using GPUs for securing cryptographic operations[C]//Proceedings of 2014 ACM SIGSAC Conference on Computer and Communications Security. New York, USA: ACM, 2014: 1131-1142.
[17]
PETERSON P A H. Cryptkeeper: improving security with encrypted RAM[C]//Proceedings of 2010 IEEE International Conference on Technologies for Homeland Security. Washington D.C., USA: IEEE Press, 2010: 120-126.
[18]
COLP P, ZHANG J W, GLEESON J, et al. Protecting data on smartphones and tablets from memory attacks[C]//Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems. New York, USA: ACM Press, 2015: 177-189.
[19]
GÖTZFRIED J, MÜLLER T, DRESCHER G, et al. RamCrypt: kernel-based address space encryption for user-mode processes[C]//Proceedings of the 11th ACM Asia Conference on Computer and Communications Security. New York, USA: ACM Press, 2016: 919-924.
[20]
GUAN L, CAO C, ZHU S C, et al. Protecting mobile devices from physical memory attacks with targeted encryption[C]//Proceedings of the 12th Conference on Security and Privacy in Wireless and Mobile Networks. New York, USA: ACM Press, 2019: 34-44.
[21]
FERGUSON N. AES-CBC + Elephant diffuser: a disk encryption algorithm for Windows Vista[EB/OL]. [2021-01-04]. http://people.eecs.berkeley.edu/~raluca/cs261-f15/readings/bitlocker.pdf.
[22]
BROZ M, KOZINA O, WAGNER A, et al. dm-crypt: Linux kernel device-mapper crypto target[EB/OL]. [2021-01-04]. https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt.
[23]
ZHAO S J, ZHANG Q Y, HU G Y, et al. Providing root of trust for ARM TrustZone using on-chip SRAM[C]//Proceedings of the 4th International Workshop on Trustworthy Embedded Devices. New York, USA: ACM Press, 2014: 25-36.