这里写目录标题
- 论文题目
- Trustzone
- DVFS
- SoC
- 基于电压的硬件故障
- 攻击方法
论文题目
VoltJockey: Breaching TrustZone by Software-Controlled Voltage Manipulation over Multi-core Frequencies
Side Channels
CCS ’19, November 11–15, 2019, London, United Kingdom
VoltJockey:通过软件控制的多核频率电压操作突破TrustZone
Trustzone
为了提高可信应用程序的机密性,完整性和可用性,ARM开发了TrustZone技术,该技术扩展了SoC的硬件和软件体系结构以创建可信的执行环境[2]。处理器可以在两个世界中工作:正常世界和安全字。 TrustZone将物理核心虚拟化为虚拟逻辑核心和虚拟安全核心,它们以时间分段的方式执行,并分别执行normalworld和secure-world程序。只要受信任的应用程序通过基于RSA的身份验证过程[2]进行的验证,就可以将其与关联的内核驱动程序一起从正常世界加载到安全世界中。尽管TrustZone在很大程度上提高了基于ARM的平台的安全性,但仍可以利用某些软件漏洞来破坏它。例如,如果在调用安全服务时错过了必要的边界检查,则可以发起特权升级攻击[51,57,64];如果系统不限制固件版本[15,30],则可以实施降级攻击。但是,可以通过软件升级轻松修复这些漏洞。相反,由于硬件和软件的升级开销,使用硬件漏洞的攻击可能更难以阻止。这样的攻击包括边信道攻击[16,49]和硬件故障注入攻击[65]。我们建议的VoltJockey属于此类。
DVFS
DVFS 即动态电压频率调整,动态技术则是根据芯片所运行的应用程序对计算能力的不同需要,动态调节芯片的运行频率和电压(对于同一芯片,频率越高,需要的电压也越高),从而达到节能的目的。
能耗是瞬时动态功率随时间变化的积分。而且,瞬时功率与频率和电压乘积二次方成正比。为了提高能效,当前大多数处理器都启用了DVFS扩展[14],该功能可动态调整处理器的频率和电压基于实时计算负载的内核。一方面,集成电路被设计为具有可变电压和相应频率的片上实时可用。另一方面,由硬件分发者提供的调节器驱动程序指导硬件并公开特权软件2的接口,以更改频率和电压[41]。厂商规定的电压/频率操作性能点(OPP)[65]将频率与特定电压相连接,以确保处理器在该频率下无错误且节能地工作。系统管理员可以使用驱动程序命令手动配置CPU频率。但是,不能使用任何命令直接修改CPU电压。
SoC
SoC通常连接到多个硬件外围设备,例如内存,相机,传感器,音频,显示器等。它们通常来自不同的供应商,并且可以在不同的额定电压下工作。向所有外围设备提供固定电压是不切实际的。因此,Krait SoC提供了电源管理集成电路(PMIC)(Nexus 6 [32]中的PMA8084),该集成电路集成了多个硬件调节器,可为硬件外设提供不同的电压
基于电压的硬件故障
攻击方法
如果一个内核的频率和电压都与其他内核无关,则攻击者可以通过确定受害内核的频率并为受害内核选择一个低电压来引发硬件故障。但是,当前支持DVFS的大多数处理器都设计有共享的硬件稳压器。更改受害内核的电压也将修改其他内核的电压。内核的时钟频率由基础电路的延迟确定。高电压可以提供较小的电路延迟,从而导致高频。 DVFS管理多个离散频率,因此需要不同的电压。所需的电压差为我们的攻击提供了基本的脆弱性。图4显示了VoltJockey的工作原理。攻击者过程在频率较低的核心上执行,而受害者过程在频率较高的核心上执行。攻击者程序提供了短时的毛刺电压,该电压对攻击者内核无害,但可能对受害者内核将硬件故障触发到受害者过程中有害。例如,要攻击受TrustZone安全保护的AES功能,攻击者可以调用AES并将错误引入中间状态矩阵。加密密钥可能被恶意窃取。为了在将应用程序加载到TrustZone中时使签名身份验证无效,攻击者可以对RSA解密的公共模数进行故障处理,并更改最终输出以欺骗身份验证。
图4:VoltJockey攻击概述。
1○为提供适当的电压毛刺环境进行必要的准备;
2○攻击程序等待受害者函数的调用;
3○攻击者程序等待目标代码执行;
4○攻击者的程序会改变核心电压,以引起硬件故障;
5○恢复核心电压。