cryptoint:对抗编译器优化的定时攻击防御

The cryptoint library (2025) [pdf]

C/C++ 代码常因 gcc 和 clang 的“优化”而意外引入分支,导致定时侧信道泄露。Daniel J. Bernstein 推出的 cryptoint 库通过全局 volatile 变量和平台特定汇编,从根源上阻止编译器生成条件判断,确保代码恒定时间运行。该库已集成至 SUPERCOP、lib25519 及 OpenSSH 等项目中,并经过符号执行与 SMT 求解的严格验证。与其依赖编译器支持,不如主动防御,让二进制文件在部署前通过 TIMECOP 等工具测试,才是保障安全的关键。

编译器往往会产生从秘密数据到运行时的数据流,且绝不为此承担责任,而 crypto_int64_max 函数则致力于避免此类数据流。

同日更多故事

2026-10-17