FreeSBee:一种常数时间编译流水线
FreeSBee: A Constant-Time Compilation Pipeline
AI总结:
本研究提出名为FreeSBee的编译流水线,通过污点分析与自动控制流转换加固代码,经RISC-V内核应用评估,其加固后的二进制文件可抵御计时攻击。
摘要:
常数时间执行是一项重要的安全属性,尤其针对物联网(IoT)设备,它可防止敏感信息通过计时侧信道泄露。然而,至少在实际设备上,要达到周期级的常数时间执行难度极大。大量研究致力于开发各类工具,用于判定代码是否为常数时间,或确保代码被编译为常数时间二进制文件,这些工具的精度各有不同。本研究提出并评估了一种在编译期间抵御计时侧信道的完整工作流:该工作流从污点分析入手,确定依赖敏感信息的代码位置,随后将这些位置作为编译器内部自动控制流转换的对象,以封堵潜在的计时侧信道。我们在运行于RISC-V内核的实际应用上,结合静态计时分析与统计方法对该工作流进行了详细评估。尽管未达到周期精确的常数时间执行,但统计结果表明,我们加固后的二进制文件可抵御计时攻击。
英文摘要:
Constant-time execution is an important security property, especially for IoT devices, that prevents the leakage of sensitive information over timing side-channels. However, achieving constant-time execution is very hard when going down to the cycle level, at least on realistic devices. A lot of research is concerned with producing tools that either determine whether code is constant-time or that ensure it is compiled into a constant-time binary, with various degrees of accuracy. In this work, we present and evaluate a full workflow for hardening against timing side-channels during compilation. It starts with taint analysis to determine the code locations that depend on sensitive information. These are then the object of automated control-flow transformations inside the compiler to seal possible timing side-channels. We evaluate our workflow in detail on a realistic application running on a RISC-V core using both static timing analysis and statistical methods. Even though we do not reach cycle-accurate constant-time execution, our statistical results suggest that our hardened binary is safe against timing attacks.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。