Abstract
The importance of preventing microarchitectural timing side channels in security-critical applications has surged immensely over the last several years. Constant-time programming has emerged as a best-practice technique to prevent leaking out secret information through timing. It builds on the assumption that certain basic machine instructions execute timing-independently w.r.t. their input data. However, whether an instruction fulfills this data-independent timing criterion varies strongly from architecture to architecture. In this paper, we propose a novel methodology to formally verify data-oblivious behavior in hardware using standard property checking techniques. Each successfully verified instruction represents a trusted hardware primitive for developing data-oblivious algorithms. A counterexample, on the other hand, represents a restriction that must be communicated to the software developer. We evaluate the proposed methodology in multiple case studies, ranging from small arithmetic units to medium-sized processors. One case study uncovered a data-dependent timing violation in the extensively verified and highly secure Ibex RISC-V core.
Author supplied keywords
Cite
CITATION STYLE
Deutschmann, L., Müller, J., Fadiheh, M. R., Stoffel, D., & Kunz, W. (2022). Towards a formally verified hardware root-of-trust for data-oblivious computing. In Proceedings - Design Automation Conference (pp. 727–732). Institute of Electrical and Electronics Engineers Inc. https://doi.org/10.1145/3489517.3530981
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.