Verifying Constant-Time Implementations

dc.contributor.author José Bacelar Almeida en
dc.contributor.author Manuel Barbosa en
dc.contributor.author Barthe,G en
dc.contributor.author Dupressoir,F en
dc.contributor.author Emmi,M en
dc.date.accessioned 2017-12-22T10:02:34Z
dc.date.available 2017-12-22T10:02:34Z
dc.date.issued 2016 en
dc.description.abstract The constant-time programming discipline is an effective countermeasure against timing attacks, which can lead to complete breaks of otherwise secure systems. However, adhering to constant-time programming is hard on its own, and extremely hard under additional efficiency and legacy constraints. This makes automated verification of constant-time code an essential component for building secure software. We propose a novel approach for verifying constant-time security of real-world code. Our approach is able to validate implementations that locally and intentionally violate the constant-time policy, when such violations are benign and leak no more information than the public outputs of the computation. Such implementations, which are used in cryptographic libraries to obtain important speedups or to comply with legacy APIs, would be declared insecure by all prior solutions. We implement our approach in a publicly available, cross-platform, and fully automated prototype, ct-verif, that leverages the SMACK and Boogie tools and verifies optimized LLVM implementations. We present verification results obtained over a wide range of constant-time components from the NaCl, OpenSSL, FourQ and other off-the-shelf libraries. The diversity and scale of our examples, as well as the fact that we deal with top-level APIs rather than being limited to low-level leaf functions, distinguishes ct-verif from prior tools. Our approach is based on a simple reduction of constant-time security of a program P to safety of a product program Q that simulates two executions of P. We formalize and verify the reduction for a core high-level language using the Coq proof assistant. en
dc.identifier.uri http://repositorio.inesctec.pt/handle/123456789/4742
dc.language eng en
dc.relation 5604 en
dc.relation 5598 en
dc.rights info:eu-repo/semantics/openAccess en
dc.title Verifying Constant-Time Implementations en
dc.type conferenceObject en
dc.type Publication en
Files
Original bundle
Now showing 1 - 1 of 1
Thumbnail Image
Name:
P-00K-THF.pdf
Size:
363.01 KB
Format:
Adobe Portable Document Format
Description: