CISPA
Browse
cispa_all_3472.pdf (915.42 kB)

Automatically Eliminating Speculative Leaks from Cryptographic Code with Blade

Download (915.42 kB)
conference contribution
posted on 2023-11-29, 18:17 authored by Marco Vassena, Craig Disselkoen, Sunjay Cauligi, Klaus Gleissenthall, Rami Gökhan Kici, Ranjit Jhala, Deian Stefan, Dean Tullsen
We introduce Blade, a new approach to automatically and efficiently eliminate speculative leaks from cryptographic code. Blade is built on the insight that to stop leaks via speculative execution, it suffices to cut the dataflow from expressions that speculatively introduce secrets (sources) to those that leak them through the cache (sinks), rather than prohibit speculation altogether. We formalize this insight in a static type system that (1) types each expression as either transient, i.e., possibly containing speculative secrets or as being stable, and (2) prohibits speculative leaks by requiring that all sink expressions are stable. Blade relies on a new abstract primitive, protect, to halt speculation at fine granularity. We formalize and implement protect using existing architectural mechanisms, and show how Blade’s type system can automatically synthesize a minimal number of protects to provably eliminate speculative leaks. We implement Blade in the Cranelift WebAssembly compiler and evaluate our approach by repairing several verified, yet vulnerable WebAssembly implementations of cryptographic primitives. We find that Blade can fix existing programs that leak via speculation automatically, without user intervention, and efficiently even when using fences to implement protect.

History

Preferred Citation

Marco Vassena, Craig Disselkoen, Sunjay Cauligi, Klaus Gleissenthall, Rami Kici, Ranjit Jhala, Deian Stefan and Dean Tullsen. Automatically Eliminating Speculative Leaks from Cryptographic Code with Blade. In: Symposium on Principles of Programming Languages (POPL). 2021.

Primary Research Area

  • Reliable Security Guarantees

Name of Conference

Symposium on Principles of Programming Languages (POPL)

Legacy Posted Date

2021-08-27

Open Access Type

  • Gold

BibTeX

@inproceedings{cispa_all_3472, title = "Automatically Eliminating Speculative Leaks from Cryptographic Code with Blade", author = "Vassena, Marco and Disselkoen, Craig and Cauligi, Sunjay and Gleissenthall, Klaus and Kici, Rami Gökhan and Jhala, Ranjit and Stefan, Deian and Tullsen, Dean", booktitle="{Symposium on Principles of Programming Languages (POPL)}", year="2021", }

Usage metrics

    Categories

    No categories selected

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC