42

RTL2MμμPATH: Multi-μμPATH Synthesis with Applications to Hardware Security Verification

Main:14 Pages
11 Figures
Bibliography:3 Pages
2 Tables
Appendix:1 Pages
Abstract

The Check tools automate formal memory consistency model and security verification of processors by analyzing abstract models of microarchitectures, called μ\muSPEC models. Despite the efficacy of this approach, a verification gap between μ\muSPEC models, which must be manually written, and RTL limits the Check tools' broad adoption. Our prior work, called RTL2μ\muSPEC, narrows this gap by automatically synthesizing formally verified μ\muSPEC models from SystemVerilog implementations of simple processors. But, RTL2μ\muSPEC assumes input designs where an instruction (e.g., a load) cannot exhibit more than one microarchitectural execution path (μ\muPATH, e.g., a cache hit or miss path) -- its single-execution-path assumption. In this paper, we first propose an automated approach and tool, called RTL2Mμ\muPATH, that resolves RTL2μ\muSPEC's single-execution-path assumption. Given a SystemVerilog processor design, instruction encodings, and modest design metadata, RTL2Mμ\muPATH finds a complete set of formally verified μ\muPATHs for each instruction. Next, we make an important observation: an instruction that can exhibit more than one μ\muPATH strongly indicates the presence of a microarchitectural side channel in the input design. Based on this observation, we then propose an automated approach and tool, called SynthLC, that extends RTL2Mμ\muPATH with a symbolic information flow analysis to support synthesizing a variety of formally verified leakage contracts from SystemVerilog processor designs. Leakage contracts are foundational to state-of-the-art defenses against hardware side-channel attacks. SynthLC is the first automated methodology for formally verifying hardware adherence to them.

View on arXiv
Comments on this paper