《绝命毒师:编译器如何破坏恒定时间实现》

主要观点:大多数加固的密码库实现使用防御性编程技术来抵御边信道攻击,这些技术通常作为开发者的指导方针,如用算术运算选择两个变量而不是执行依赖秘密的分支。但这些技术只有在编译过程中持续有效才有意义。本文研究了现代编译器使用的优化如何破坏防御性编程技术引入的保护,特别是如何破坏用于减轻计时边信道攻击的高级常量时间实现。通过大规模实验,在最先进的密码库中发现了编译器诱导的秘密依赖操作,表明用于边信道抵抗的最先进防御性编程技术仍不足、不完整,与编译器不断引入的优化结合时注定会失败。
关键信息

  • 研究对象为加固的密码库和现代编译器优化。
  • 实验规模大,涵盖 44,604 个不同目标和多种 CPU 架构。
  • 发现最受推崇的加固密码库中存在编译器诱导的秘密依赖操作。
    重要细节
  • 阐述了防御性编程技术的常见示例。
  • 提及提交历史,作者为 Moritz Schneider,版本 v1 于 2024 年 10 月 17 日 12:34:02 UTC 提交,大小 551 KB。
  • 给出了相关引用信息,包括 arXiv 编号、DOI 等。
阅读 24
0 条评论