SeMPE: Secure Multi Path Execution Architecture for Removing Conditional Branch Side Channels
Andrea Mondelli, Paul Gazzillo, Yan Solihin

TL;DR
SeMPE introduces an architecture-based method to eliminate side channel vulnerabilities from secret-dependent branches by executing both paths, achieving low overheads and outperforming existing constant-time solutions.
Contribution
SeMPE presents a novel architecture support approach that removes conditional branch side channels with minimal programming effort and low performance overhead.
Findings
SeMPE incurs near-ideal execution overheads.
Outperforms FaCT-generated code by up to 18x.
Effectively eliminates branch-based side channels.
Abstract
One of the most prevalent source of side channel vulnerabilities is the secret-dependent behavior of conditional branches (SDBCB). The state-of-the-art solution relies on Constant-Time Expressions, which require high programming effort and incur high performance overheads. In this paper, we propose SeMPE, an approach that relies on architecture support to eliminate SDBCB without requiring much programming effort while incurring low performance overheads. The key idea is that when a secret-dependent branch is encountered, the SeMPE microarchitecture fetches, executes, and commits both paths of the branch, preventing the adversary from inferring secret values from the branching behavior of the program. To enable that, SeMPE relies on an architecture that is capable of safely executing both branch paths sequentially. Through microbenchmarks and an evaluation of a real-world library, we…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Advanced Malware Detection Techniques · Cryptographic Implementations and Security
