FreeSBee: A Constant-Time Compilation Pipeline
Julian Ganz, David Knothe, David Oswald, Sebastian Reiter, Thorben Schneider, Simon Wegener
Abstract
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.
Create a lesson
Related papers
Tulva: Practical Asynchronous Threshold FHE
Valerio Cini, Antonio Guimarães, Russell W. F. Lai et al.
Phantomware: a Data Augmentation Framework for the Detection of Emerging Malware Campaigns
Antonino Rullo
Building Sound Evaluation Practices for Rust-Based Security Frameworks
David Paaßen, Lucas Davi
Towards Efficient Threat Intelligence Instruction Tuning via Quality-Aware and Optimal Transport-Guided Data Selection
Jiyu Tian, Mingchu Li, Xiangwei Chen et al.
P2Patch: Exploit-Guided Vulnerability Repair
Mohsen Iranmanesh, Sina Moradi Sabet, Sina Marefat et al.
Secret Sharing from Non-Extractable Randomness
Divesh Aggarwal