constant-time-testing 是做什么的?
恒定时间测试检测加密代码中的定时侧信道漏洞。在审计加密实现是否存在定时漏洞时使用。
概述
该技能集成到 Claude Code 中,用于分析加密代码的定时安全性。它通过运行专门的测试工具(如 ctgrind 或 ct-analyzer)来检查分支语句、内存访问模式以及与秘密数据相关的操作是否在恒定时间内执行。
使用方法
要使用此技能,请确保您的环境中已安装必要的工具。然后,在 Claude Code 中调用该技能,它将自动分析指定的代码文件或项目。
支持的平台
- Trail of Bits 的
ctgrind(基于 Valgrind) - 基于 LLVM 的恒定时间分析工具
- 适用于 C/C++、Rust 及其他支持编译时插桩的语言
工作原理
- 代码插桩:在编译时或运行时插入检测点。
- 定时分析:监控代码路径的执行时间是否依赖于秘密数据。
- 报告生成:输出潜在的非恒定时间代码段,包括文件位置和原因。
示例
// 非恒定时间示例:分支依赖于 secret
if (secret_bit) {
// 执行不同路径
}
注意事项
- 需要使用专门的编译选项(如
-fconstant-time)或运行时工具。 - 结果应结合手动审计以确认漏洞。