Towards Constant-Time Foundations for the New Spectre Era

10/03/2019
by   Sunjay Cauligi, et al.
0

The constant-time discipline is a software-based countermeasure used for protecting high assurance cryptographic implementations against timing side-channel attacks. Constant-time is effective (it protects against many known attacks), rigorous (it can be formalized using program semantics), and amenable to automated verification. Yet, the advent of micro-architectural attacks makes constant-time as it exists today far less useful. This paper lays foundations for constant-time programming in the presence of speculative and out-of-order execution. Our first contribution is an operational semantics, and a formal definition of constant-time programs in this extended setting. Our semantics eschews formalization of micro-architectural features (that are instead assumed under adversary control), and yields a notion of constant-time that retains the elegance and tractability of the usual notion. We demonstrate the relevance of our semantics by contrasting existing Spectre-like attacks with our definition of constant-time and by exhibiting a new (theoretical) class of Spectre attacks based on alias prediction. Our second contribution is a static analysis tool, Pitchfork, which detects violations of our extended constant-time property (for a subset of the semantics presented in this paper).

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset
Success!
Error Icon An error occurred

Sign in with Google

×

Use your Google Account to sign in to DeepAI

×

Consider DeepAI Pro