中文

利用Blade自动消除密码学代码中的推测性泄漏

密码学与安全 2020-12-08 v3

摘要

我们提出BLADE,一种自动且高效消除密码学代码中推测性泄漏的新方法。BLADE基于如下洞见:为阻止经由推测的泄漏,只需切断\textit{切断}从推测性引入秘密的表达式 (\textit{源}) 到通过缓存泄漏它们的表达式 (\textit{汇}) 的数据流,而非完全禁止推测。我们在静态类型系统\textit{静态类型系统}中形式化了该洞见,该系统 (1) 将每个表达式类型化为瞬态\textit{瞬态} (即可能包含推测性秘密) 或稳定\textit{稳定},且 (2) 要求所有\textit{汇}表达式为稳定以禁止推测性泄漏。BLADE依赖一种新的抽象原语 protect\textbf{protect} 以细粒度暂停推测。我们使用现有体系结构机制形式化并实现 protect\textbf{protect},并展示BLADE的类型系统如何自动综合最少\textit{最少}数量的 protect\textbf{protect} 以可证明地消除推测性泄漏。我们在Cranelift WebAssembly编译器中实现BLADE,并通过修复若干已验证但存在漏洞的密码学原语WebAssembly实现来评估我们的方法。我们发现Blade能够自动\textit{自动}、无需用户干预地修复现有经推测泄漏的程序,且即便使用栅栏实现 protect\textbf{protect}高效\textit{高效}

关键词

引用

@article{arxiv.2005.00294,
  title  = {Automatically Eliminating Speculative Leaks from Cryptographic Code with Blade},
  author = {Marco Vassena and Craig Disselkoen and Klaus V. Gleissenthall and Sunjay Cauligi and Rami Gökhan Kici and Ranjit Jhala and Dean Tullsen and Deian Stefan},
  journal= {arXiv preprint arXiv:2005.00294},
  year   = {2020}
}