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