Page 154 - 《软件学报》2020年第10期
P. 154
3130 Journal of Software 软件学报 Vol.31, No.10, October 2020
术增强 I/O 设备安全性,其 IOMMU 设置可抵抗 DMA 攻击,但是 BitVisor 不能防御冷启动攻击.TreVisor 结合了
TRESOR 和 BitVisor 这两个项目,借助前者抗冷启动攻击,而后者抗 DMA 攻击的特性,形成了一个 hyptervisor
层抗冷启动攻击和 DMA 攻击的、对操作系统透明的安全加解密方案.作者认为将密钥存储在用主密钥加密的
片外 RAM 中会带来明显的性能缺陷,因此为保证性能,TreVisor 仅保护一个密钥,其性能比 AES-NI 下降约 33%.
由于 TreVisor 占用了调试寄存器且使用了 Intel VT-x,造成客户机操作系统不完全支持调试器,无法设置硬件断
点,也不完全支持 VirtualBox 和 VMware 等虚拟化软件.该方案存在的安全问题是:(1) 依赖于 hypervisor 的安全
性,hypervisor 运行在片外 RAM 中,如果被攻击者通过板级物理攻击攻破,将破坏整个系统的安全性;(2) 在多核
架构中,TreVisor 需要在所有处理器核心间分配密钥,以将密钥写入不同的核心,方法是将密钥从 BSP(boot strap
processor)复制到片外 RAM,再复制到 AP(application processors),该过程对于冷启动攻击是不安全的.
3.1.4 小 结
密钥和密码算法保护方案利用片内存储资源将密钥存储和密码学计算限制在处理器芯片内部,能够抵抗
板级物理攻击,特别是冷启动攻击.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.2 应用程序抗物理攻击防御技术研究
第 3.1 节的方案只对密钥和密码算法进行了保护,而实际上应用程序的其他内存同样也可能存放着安全敏
感的数据,譬如口令、个人生物信息和图像信息等,保护这些信息的安全性同样重要.为此,学术界提出了保护应
用程序整体或部分关键数据免受物理攻击的方案:其中一部分方案重点针对冷启动攻击,考虑到系统休眠时是
冷启动攻击的主要时机,所以这些方案重点保护系统休眠时的内存内容;其余方案考虑的比较完善,能够在系统
运行时为应用程序提供物理防护.值得注意的是,很多方案使用第 3.1 节中的抗物理攻击密码算法作为保护应
用程序的密码原语.
3.2.1 系统休眠时应用程序保护方案
研究人员为常见的开源操作系统提出了各种防护方案来抵抗休眠或锁屏时的冷启动攻击.加拿大卡尔顿
大学为安卓系统设计了一种抵抗冷启动攻击的安全运行模式 Deadbolt [91] .该模式启动前会清空安卓的全盘加
密密钥和卸载全盘加密机制所保护的用户分区,从而保障用户数据分区免受冷启动攻击.该模式还加载一个仅
包含基本用户应用的临时用户分区,为用户提供一些基本的手机功能.该方法的安全弱点是只能保障 Deadbolt
模式下设备的安全性,设备正常使用时仍存在被攻击的风险,因此只能缓解物理攻击.Sentry [50] 是一种抵抗
[2]
FROST 等针对移动设备的物理攻击的方案,该方案利用 ARM SoC 架构中的片上内存或二级缓存实现了可抵
抗物理攻击的 AES 算法,用于在安卓系统锁屏时对片外 RAM 上的机密数据进行加密保护,并基于 ARM 内存管