SeMPE: Secure Multi Path Execution Architecture for Removing Conditional Branch Side Channels

06/29/2020
by   Andrea Mondelli, et al.
0

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 show that SeMPE incurs near ideal execution time overheads, which is the sum of the execution time of all branch paths of secret-dependent branches. SeMPE outperforms code generated by FaCT, a constant-time expression language, by up to a factor of 18x.

READ FULL TEXT

page 7

page 10

research
11/16/2018

DifFuzz: Differential Fuzzing for Side-Channel Analysis

Side-channel attacks allow an adversary to uncover secret program data b...
research
07/21/2021

Leaking Secrets through Modern Branch Predictor in the Speculative World

Transient execution attacks that exploit speculation have raised signifi...
research
05/23/2019

SynFuzz: Efficient Concolic Execution via Branch Condition Synthesis

Concolic execution is a powerful program analysis technique for explorin...
research
04/21/2021

Constantine: Automatic Side-Channel Resistance Using Efficient Control and Data Flow Linearization

In the era of microarchitectural side channels, vendors scramble to depl...
research
08/27/2023

Semi-static Conditions in Low-latency C++ for High Frequency Trading: Better than Branch Prediction Hints

Conditional branches pose a challenge for code optimisation, particularl...
research
06/26/2018

Indexing Operators to Extend the Reach of Symbolic Execution

Traditional program analysis analyses a program language, that is, all p...
research
01/10/2023

A Storage-Effective BTB Organization for Servers

Many contemporary applications feature multi-megabyte instruction footpr...

Please sign up or login with your details

Forgot password? Click here to reset