cr.yp.to: 2024.08.03: Clang 与 Clang

这是关于 Clang 的一系列内容,主要包括以下方面:

  • 博客内容概述:包含多个关于不同主题的博客文章链接,如 2024 年的各种加密相关话题、编译器优化、安全问题等。
  • 2024.08.03 相关内容

    • 编译器“优化”问题:编译器“优化”存在诸多问题,如引入的 bug 被归咎于程序员而非编译器作者,实际优化效果不如程序员,且“优化”可能导致安全问题如定时泄漏。
    • 定时泄漏实例:如在 Kyber 参考代码中,Clang 对特定计算的优化导致了定时泄漏,通过 bit-test 指令和条件分支将秘密信息泄漏到时间中。同时还提到了其他类似的编译器补丁导致的定时泄漏问题。
    • 防止定时泄漏的方法:可以通过预部署测试套件检测定时泄漏,在重写代码时回退到旧的编译器版本;也可以将库以汇编语言形式分发,或者在 C、C++等代码中引入抗定时泄漏的措施,如扫描源代码中特定的表达式并进行处理。还提到了一些相关的工具和函数,如 TIMECOP 及其后续版本,以及 libmceliece 中的相关函数。

总体而言,该内容强调了编译器“优化”可能带来的安全问题,并探讨了一些防止和解决这些问题的方法。

阅读 19
0 条评论