Constant-Time Foundations for the New Spectre Era

被引:48
|
作者
Cauligi, Sunjay [1 ]
Disselkoen, Craig [1 ]
Gleissenthall, Klaus, V [1 ]
Tullsen, Dean [1 ]
Stefan, Deian [1 ]
Rezk, Tamara [2 ]
Barthe, Gilles [3 ,4 ]
机构
[1] Univ Calif San Diego, San Diego, CA 92093 USA
[2] INRIA Sophia Antipolis, Biot, France
[3] MPI Secur & Privacy, Bochum, Germany
[4] IMDEA Software Inst, Madrid, Spain
关键词
Spectre; speculative execution; semantics; static analysis;
D O I
10.1145/3385412.3385970
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 microarchitectural 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. We present an operational semantics and a formal definition of constant-time programs in this extended setting. Our semantics eschews formalization of microarchitectural 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 in two ways: First, by contrasting existing Spectre-like attacks with our definition of constant-time. Second, by implementing a static analysis tool, Pitchfork, which detects violations of our extended constant-time property in real world cryptographic libraries.
引用
收藏
页码:913 / 926
页数:14
相关论文
共 50 条
  • [21] Constant-Time Callees with Variable-Time Callers
    Garcia, Cesar Pereida
    Brumley, Billy Bob
    PROCEEDINGS OF THE 26TH USENIX SECURITY SYMPOSIUM (USENIX SECURITY '17), 2017, : 83 - 98
  • [22] Verifying constant-time implementations by abstract interpretation
    Blazy, Sandrine
    Pichardie, David
    Trieu, Alix
    JOURNAL OF COMPUTER SECURITY, 2019, 27 (01) : 137 - 163
  • [23] Decentralized Fault Diagnosis for Constant-Time Automata
    Miao, Shaowen
    Lai, Aiwen
    Komenda, Jan
    Lahaye, Sebastien
    IEEE CONTROL SYSTEMS LETTERS, 2024, 8 : 3392 - 3397
  • [24] Constant-Time Predictive Distributions for Gaussian Processes
    Pleiss, Geoff
    Gardner, Jacob R.
    Weinberger, Kilian Q.
    Wilson, Andrew Gordon
    INTERNATIONAL CONFERENCE ON MACHINE LEARNING, VOL 80, 2018, 80
  • [25] Implementation of a constant-time dynamic storage allocator
    Masmano, M.
    Ripoll, I.
    Real, J.
    Crespo, A.
    Wellings, A. J.
    SOFTWARE-PRACTICE & EXPERIENCE, 2008, 38 (10): : 995 - 1026
  • [26] CONSTANT-TIME PARALLEL RECOGNITION OF SPLIT GRAPHS
    NIKOLOPOULOS, SD
    INFORMATION PROCESSING LETTERS, 1995, 54 (01) : 1 - 8
  • [27] CONSTANT-TIME CONVEXITY PROBLEMS ON RECONFIGURABLE MESHES
    BOKKA, V
    GURLA, H
    OLARIU, S
    SCHWING, JL
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1995, 27 (01) : 86 - 99
  • [28] Constant-time randomized parallel string matching
    Crochemore, M
    Galil, Z
    Gasieniec, L
    Park, K
    Rytter, W
    SIAM JOURNAL ON COMPUTING, 1997, 26 (04) : 950 - 960
  • [29] Constant-time distributed dominating set approximation
    Fabian Kuhn
    Roger Wattenhofer
    Distributed Computing, 2005, 17 : 303 - 310
  • [30] Constant-time Monocular Self-Calibration
    Keivan, Nima
    Sibley, Gabe
    2014 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND BIOMIMETICS IEEE-ROBIO 2014, 2014, : 1590 - 1595