Secure elements physically exposed to adversaries are frequently targeted by fault attacks. These attacks can be utilized to hijack the control-flow of software allowing the attacker to bypass security measures, extract sensitive data, or gain full code execution. In this paper, we systematically analyze the threat vector of fault-induced control-flow manipulations on the open-source OpenTitan secure element. Our thorough analysis reveals that current countermeasures of this chip either induce large area overheads or still cannot prevent the attacker from exploiting the identified threats. In this context, we introduce SCRAMBLE-CFI, an encryption-based control-flow integrity scheme utilizing existing hardware features of OpenTitan. SCRAMBLE-CFI confines, with minimal hardware overhead, the impact of fault-induced control-flow attacks by encrypting each function with a different encryption tweak at load-time. At runtime, code only can be successfully decrypted when the correct decryption tweak is active. We open-source our hardware changes and release our LLVM toolchain automatically protecting programs. Our analysis shows that SCRAMBLE-CFI complementarily enhances security guarantees of OpenTitan with a negligible hardware overhead of less than 3.97 % and a runtime overhead of 7.02 % for the Embench-IoT benchmarks.
翻译:在物理暴露于对手的安全元件通常会成为故障攻击的目标。这些攻击可以被利用来劫持软件的控制流,从而使攻击者绕过安全措施,提取敏感数据或获得完全的代码执行权限。在本文中,我们系统地分析了故障诱导的控制流操作对开源安全元件 OpenTitan 的威胁向量。我们深入分析发现,当前这个芯片的反制措施要么产生较大的面积开销,要么仍无法阻止攻击者利用已经发现的威胁。在这种情况下,我们引入 SCRAMBLE-CFI,这是一种基于加密的控制流完整性方案,利用了 OpenTitan 的现有硬件功能。SCRAMBLE-CFI 通过在加载时使用不同的加密微调来对每个函数进行加密,从而以最小的硬件开销将故障诱导的控制流攻击的影响限制在一定范围内。在运行时,只有在正确的解密微调处于活动状态时,代码才能成功解密。我们开源了我们的硬件更改,并发布了我们的 LLVM 工具链,以自动保护程序。我们的分析表明,SCRAMBLE-CFI 通过在 Embench-IoT 基准测试中实现可忽略的硬件开销(小于3.97%)和运行时开销(7.02%),进一步提高了 OpenTitan 的安全保障。