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 条
  • [1] A new constant-time parallel algorithm for merging
    Hazem M. Bahig
    The Journal of Supercomputing, 2019, 75 : 968 - 983
  • [2] A new constant-time parallel algorithm for merging
    Bahig, Hazem M.
    JOURNAL OF SUPERCOMPUTING, 2019, 75 (02): : 968 - 983
  • [3] Constant-time sorting
    Brand, Michael
    INFORMATION AND COMPUTATION, 2014, 237 : 142 - 150
  • [4] QDI Constant-Time Counters
    Bingham, Ned
    Manohar, Rajit
    IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, 2019, 27 (01) : 83 - 91
  • [5] Verifying Constant-Time Implementations
    Almeida, Jose Bacelar
    Barbosa, Manuel
    Barthe, Gilles
    Dupressoir, Francois
    Emmi, Michael
    PROCEEDINGS OF THE 25TH USENIX SECURITY SYMPOSIUM, 2016, : 53 - 70
  • [6] Constant-time query processing
    Raman, Vijayshankar
    Swart, Garret
    Qiao, Lin
    Reiss, Frederick
    Dialani, Vijay
    Kossmann, Donald
    Narang, Inderpal
    Sidle, Richard
    2008 IEEE 24TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING, VOLS 1-3, 2008, : 60 - +
  • [7] Hardware Support for Constant-Time Programming
    Miao, Yuanqing
    Kandemir, Mahmut Taylan
    Zhang, Danfeng
    Zhang, Yingtian
    Tan, Gang
    Wu, Dinghao
    56TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, MICRO 2023, 2023, : 856 - 870
  • [8] Constant-Time Local Computation Algorithms
    Yishay Mansour
    Boaz Patt-Shamir
    Shai Vardi
    Theory of Computing Systems, 2018, 62 : 249 - 267
  • [9] Constant-time Dynamic (Δ+1)-Coloring
    Henzinger, Monika
    Peng, Pan
    ACM TRANSACTIONS ON ALGORITHMS, 2022, 18 (02)
  • [10] SENSITIVITY AND RESOLUTION OF CONSTANT-TIME IMAGING
    GRAVINA, S
    CORY, DG
    JOURNAL OF MAGNETIC RESONANCE SERIES B, 1994, 104 (01): : 53 - 61