Mitigating power side channels during compilation

Mitigating power side channels during compilation
复制标题

DOI:
10.1145/3338906.3338913
复制
发表时间:
2019-02
期刊:
Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
Jingbo Wang;Chungha Sung;Chao Wang
Jingbo Wang;Chungha Sung;Chao Wang
中科院分区:
其他
文献类型:
--
作者:
Jingbo Wang;Chungha Sung;Chao Wang

文献摘要

被引文献

相似文献

现代编译器内部的代码生成模块使用有限数量的CPU寄存器来存储大量程序变量,即使在配备了最先进对策的软件中也可能引入侧通道泄漏。我们提出了一种基于程序分析和转换的方法来消除这种泄漏。我们的方法有一个基于类型的技术来检测泄漏,它利用基于数据的声明性分析和特定于域的优化来实现高效率和准确性。它还为编译器的后端(更具体地说是寄存器分配模块)提供了一种缓解技术,以确保泄漏的中间计算结果存储在不同的CPU寄存器或内存位置。我们已经实现和评估我们的方法在LLVM的x86指令集架构。我们在密码软件上的实验表明,该方法在去除边信道的同时是有效的,即,我们的减轻的代码比使用最先进技术减轻的代码更紧凑并且运行更快。
The code generation modules inside modern compilers, which use a limited number of CPU registers to store a large number of program variables, may introduce side-channel leaks even in software equipped with state-of-the-art countermeasures. We propose a program analysis and transformation based method to eliminate such leaks. Our method has a type-based technique for detecting leaks, which leverages Datalog-based declarative analysis and domain-specific optimizations to achieve high efficiency and accuracy. It also has a mitigation technique for the compiler's backend, more specifically the register allocation modules, to ensure that leaky intermediate computation results are stored in different CPU registers or memory locations. We have implemented and evaluated our method in LLVM for the x86 instruction set architecture. Our experiments on cryptographic software show that the method is effective in removing the side channel while being efficient, i.e., our mitigated code is more compact and runs faster than code mitigated using state-of-the-art techniques.