A Scalable Formal Verification Methodology for Data-Oblivious Hardware

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Deutschmann, Lucas, Mueller, Johannes, Fadiheh, Mohammad Rahmani, Stoffel, Dominik, Kunz, Wolfgang
Natura: Preprint
Pubblicazione: 2023
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866909133051002880
author Deutschmann, Lucas
Mueller, Johannes
Fadiheh, Mohammad Rahmani
Stoffel, Dominik
Kunz, Wolfgang
author_facet Deutschmann, Lucas
Mueller, Johannes
Fadiheh, Mohammad Rahmani
Stoffel, Dominik
Kunz, Wolfgang
contents The importance of preventing microarchitectural timing side channels in security-critical applications has surged in recent years. Constant-time programming has emerged as a best-practice technique for preventing the leakage of secret information through timing. It is based on the assumption that the timing of certain basic machine instructions is independent of their respective input data. However, whether or not an instruction satisfies this data-independent timing criterion varies between individual processor microarchitectures. In this paper, we propose a novel methodology to formally verify data-oblivious behavior in hardware using standard property checking techniques. The proposed methodology is based on an inductive property that enables scalability even to complex out-of-order cores. We show that proving this inductive property is sufficient to exhaustively verify data-obliviousness at the microarchitectural level. In addition, the paper discusses several techniques that can be used to make the verification process easier and faster. We demonstrate the feasibility of the proposed methodology through case studies on several open-source designs. One case study uncovered a data-dependent timing violation in the extensively verified and highly secure IBEX RISC-V core. In addition to several hardware accelerators and in-order processors, our experiments also include RISC-V BOOM, a complex out-of-order processor, highlighting the scalability of the approach.
format Preprint
id arxiv_https___arxiv_org_abs_2308_07757
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle A Scalable Formal Verification Methodology for Data-Oblivious Hardware
Deutschmann, Lucas
Mueller, Johannes
Fadiheh, Mohammad Rahmani
Stoffel, Dominik
Kunz, Wolfgang
Cryptography and Security
The importance of preventing microarchitectural timing side channels in security-critical applications has surged in recent years. Constant-time programming has emerged as a best-practice technique for preventing the leakage of secret information through timing. It is based on the assumption that the timing of certain basic machine instructions is independent of their respective input data. However, whether or not an instruction satisfies this data-independent timing criterion varies between individual processor microarchitectures. In this paper, we propose a novel methodology to formally verify data-oblivious behavior in hardware using standard property checking techniques. The proposed methodology is based on an inductive property that enables scalability even to complex out-of-order cores. We show that proving this inductive property is sufficient to exhaustively verify data-obliviousness at the microarchitectural level. In addition, the paper discusses several techniques that can be used to make the verification process easier and faster. We demonstrate the feasibility of the proposed methodology through case studies on several open-source designs. One case study uncovered a data-dependent timing violation in the extensively verified and highly secure IBEX RISC-V core. In addition to several hardware accelerators and in-order processors, our experiments also include RISC-V BOOM, a complex out-of-order processor, highlighting the scalability of the approach.
title A Scalable Formal Verification Methodology for Data-Oblivious Hardware
topic Cryptography and Security
url https://arxiv.org/abs/2308.07757