Compiler-Assisted Hardening of Embedded Software Against Interrupt Latency Side-Channel Attacks
这篇文章主要讨论了一种基于编译器消除时间侧信道的方案,具体的思路是通过细粒度的路径对齐来消除分支结构中可能的时间侧信道。
已有的方案通过粗粒度的路径对齐能够防御以分支路径为粒度的时间侧信道,但是如果攻击者将时间侧信道的粒度缩小到指令级,以分支为粒度的路径对齐方案就会失去防护作用。为解决问题,Van Bulck等人提出基于指令级的路径对齐方案,即使得分支不同路径执行的指令个数相同,且不同指令的执行时间相同。然而,该方案对目标程序的性能影响是令人难以接受的。对性能产生影响的主要原因是填充了大量无用的指令。为解决该问题,本文提出了平衡各分支的路径长度、计算控制流图的层级结构、对齐基本块三种解决思路。
虽然该方案声称自己解决了先前方案的性能问题,然而,经过组会的讨论,我们确认该方案在现有方案的基础上对性能的提升有限,因此该方案实际价值不大,反而是一种消除控制流依赖的if-conversion方案更有研究价值。