RFC: Secret types in Rust
summary
Claim: empty asm! directives and empty functions can block LLVM optimizations so secret-dependent masks survive, and empty asm! directives or a volatile read mostly work but are ugly unsupported hacks on stable Rust and succeed about 90 percent of the time. RFC 2859 proposes secret primitive types and compiler/LLVM guarantees that disallow branching or indexing on secret values, forbid variable‑time instructions, add declassify, and require implementation work — currently a proposal not yet landed.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:17Overview
- 1:37Outline
- 2:23Timing side channels
- 3:34Constant time
- 8:43Why use Rust
- 11:02Secret types in Rust
- 12:51Optimization barriers
- 16:45Why arent these protections good enough
- 17:17RFC 2859
- 18:19Example
- 18:38Two parts
- 19:34QA
related talks
31mGetting Something for Nothing
31mThe Rust That Could Have Been
30mEnsuring Rust Safety: Strategies for Managing Unsafe Rust
01h 11mDuck-Tape Chronicles - Rust C++ Interop
41mFunctional Rust - An Exploration
32mStatic Information Flow Control Made Simple
35m"Memory Safety is Merely Table Stakes [...]"
09mFormally Secure Hardware with Rust
