Page 153 - 《软件学报》2020年第10期
P. 153

张倩颖  等:抗电路板级物理攻击的操作系统防御技术研究                                                      3129


         使用标量指令和寄存器执行计算,在向量寄存器中维护中间结果,利用 704B 的寄存器缓冲区(16 个 64 bit 通用
         寄存器,8 个 64 bit MM 寄存器   [85] 和 16 个 256 bit YMM 寄存器 [84] )实现完全在寄存器缓冲区中计算的 1 024bit
         蒙哥马利乘法,且允许多个实例同时在多核 CPU 上运行.由于寄存器缓冲区的容量有限,一些中间结果需要经
         AES 主密钥加密后存储到片外 RAM 中.RegRSA 解决了 PRIME 不能使用 CRT 加速的问题,其性能是 OpenSSL
         中常规 RSA 实现的 74%,且其性能超过了 PRIME.Copker          [74] 利用 CPU 缓存实现 RSA 算法,缓存的容量优势使
         其支持更长的私钥和更高效的算法,AES 解密和 RSA 解密/签名操作都在缓存中进行,且能够使用 CRT 加速运
         算,从而获得更好的性能.但是,Copker 在密码学计算过程中强制所有共享 LLC(last-level cache)的其他处理器核
         心进入 no-fill 模式,以防止这些核心将 L1 缓存刷新到片外 RAM 中,急剧降低了这些核心的内存访问性能,且
         Copker 不支持共享 LLC 的核心上的多个实例.Copker 原型系统采用 128bit AES 主密钥保护 2 048bit RSA 私钥,
         其运行速度比常规 RSA 实现慢约 3 倍.Mimosa         [75] 利用 Intel TSX 机制在 CPU L1 数据缓存中为 RSA 提供安全
         计算环境.Intel TSX  [86] 是 x86 架构的指令集扩展,增加了对硬件事务内存(hardware transactional  memory,简称
         HTM)的支持.在密码学计算期间,Mimosa 使用 HTM 保证私钥和中间结果等敏感数据只出现在 CPU 绑定缓存
         中,不会泄露到片外 RAM,并且 HTM 的原子性保证任何非授权的私钥访问会导致密码学计算终止,所有敏感数
         据通过硬件机制自动清除,以防止软件形式的密钥窃取攻击.Mimosa 的性能可以与常规 RSA 实现媲美,并且借
         助 Intel TSX 的硬件支持,Mimosa 的性能优于 PRIME 和 Copker.
             在利用 GPU 保护密码算法方面,PixelVault      [76] 基于 GPU 实现 AES 和 RSA 算法保护,其基本思想是在 GPU
         中执行完整的密码算法,不使用主机和主机可访问的内存.PixelVault 将密钥和敏感代码分别存储在 GPU 的寄
         存器和指令缓存中,利用 GPU 与主机的隔离特性防止特权主机代码访问 GPU 上的敏感数据和代码,以保证敏感
         数据和代码的安全性.GPU 的非抢占执行特点使 PixelVault 独占执行,避免因上下文切换而导致敏感数据泄
         露.PixelVault 将计算密集型的加解密操作在 GPU 中执行,获得了较好的性能.Zhu 等人                  [87] 分析了 PixelVault 关于
         GPU 硬件特性的假设,指出该方案依赖的一些安全假设存在漏洞,利用控制寄存器和调试器的更新功能能够绕
         过 PixelVault 的安全机制破坏其安全性,从而指出 PixelVault 无法在其威胁模型下保证主密钥的机密性.之
         后,ZeroKernel [88] 的作者指出对 PixelVault 的另一种攻击,攻击者通过操纵 GPU 上下文可以将寄存器中存储的主
         密钥泄露到设备内存的特定位置.
             内核层密钥和密码算法保护方案可以抵抗冷启动攻击,但通常难以抵抗对系统空间具有写访问权限的攻
         击者的攻击.例如,具有 root 权限的攻击者可以轻松加载内核模块,利用该模块将密钥从 CPU 寄存器提取到片外
         RAM 中.Blass 和 Robertson 将不能在内核特权级运行任意代码定义为内核完整性属性                    [80] .即使是 PixelVault 在
         其初始化期间也需要保证操作系统内核的完整性.事实上这样的属性很难满足.在实际应用中,恶意软件通常可
         以获取 root 权限,且 DMA 攻击可以通过物理访问将恶意代码写入系统空间,而很多方案的威胁模型中并没有考
         虑抵抗 DMA 攻击.此外,大部分基于寄存器的方案只能保护物理平台密钥的安全性,无法保护虚拟机中的密钥,
         这是因为客户机的寄存器在虚拟机切换时会存储到主机的片外 RAM 中,存在被物理攻击的风险.
         3.1.3    Hypervisor 层密钥和密码算法保护方案
             内核层保护方案依赖于操作系统内核的完整性,并且大部分方案不能抵抗 DMA 攻击,虽然 DMA 攻击可以
         利用 IOMMU 防御,但是一些设备没有配备该机制.为保护不同操作系统中的密钥,即实现与操作系统无关的密
         钥和密码算法保护,研究人员提出 hypervisor 层保护方案.Hypervisor 层保护方案具有以下优势:(1) hypervisor
         与操作系统隔离,即使是 root 权限用户和本地特权提升也不会破坏密码学计算过程或恢复出密钥;(2)  与操作
         系统类型无关,可以保护不同类型的操作系统;(3)  一些与安全性相关的硬件设置可以在 hypervisor 层统一设
         置,如通过设置 IOMMU 集中防御 DMA 攻击;(4)  这类 hypervisor 可具有较小的 TCB,降低了系统存在漏洞的风
         险,也便于通过形式化方法验证其正确性.
             在 hypervisor 层实现的密钥和密码算法保护方案较少,目前已知的仅有 TRESOR 的作者提出的 TreVisor
         方案  [89] .该方案将 TRESOR 功能从内核层下移到 hypervisor,可以透明的保护客户机操作系统的密钥.TreVisor
         建立在 BitVisor 基础上,BitVisor [90] 是一种轻量级虚拟机监视器,为单个客户机实现各种安全功能,利用虚拟化技
   148   149   150   151   152   153   154   155   156   157   158