A Scalable Formal Verification Methodology for Data-Oblivious Hardware

08/15/2023
by   Lucas Deutschmann, et al.
0

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.

READ FULL TEXT

page 1

page 14

research
10/07/2019

Iodine: Verifying Constant-Time Execution of Hardware

To be secure, cryptographic algorithms crucially rely on the underlying ...
research
07/14/2018

Timing Driven C-Slow Retiming on RTL for MultiCores on FPGAs

In this paper C-Slow Retiming (CSR) on RTL is discussed. CSR multiplies ...
research
11/20/2020

SIMF: Single-Instruction Multiple-Flush Mechanism for Processor Temporal Isolation

Microarchitectural timing attacks are a type of information leakage atta...
research
05/11/2023

Specification and Verification of Side-channel Security for Open-source Processors via Leakage Contracts

Leakage contracts have recently been proposed as a new security abstract...
research
02/24/2022

Systematic Prevention of On-Core Timing Channels by Full Temporal Partitioning

Microarchitectural timing channels enable unwanted information flow acro...
research
11/05/2018

Formally Verifying WARP-V, an Open-Source TL-Verilog RISC-V Core Generator

Timing-abstract and transaction-level design using TL-Verilog have shown...
research
04/01/2021

Solver-Aided Constant-Time Circuit Verification

We present Xenon, a solver-aided method for formally verifying that Veri...

Please sign up or login with your details

Forgot password? Click here to reset