SuperAPI AI 工具集

constant-time-analysis

安全与审计

查看项目

更新于 10-16 05:42

技能介绍

用途:审计 AES、RSA、ECDSA、HMAC 或密码比较等加密代码,发现攻击者可通过测量耗时推断密钥的时序侧信道。覆盖密钥相关控制流、提前返回、以密钥为索引的表查找,以及缺失或错误的常数时间比较原语。

主要能力:用 grep/ripgrep 做静态模式搜索,定位加密入口、密钥参数、memcmp/strcmp 滥用、CRYPTO_memcmp 等常数时间替代品、密钥索引查表;检查 -O2、LTO、PGO 等编译选项是否可能破坏常数时间性质;用 objdump 检查汇编中残留的条件跳转;可选动态工具 ctgrind 做污点分析、dudect 做统计计时测量,并将发现映射到 MITRE ATT&CK 技术 T1040、T1557。

使用方式:设置 TARGET_DIR、BINARY(可选)、COMPILER_FLAGS,按步骤运行资料给出的搜索命令;动态确认时用 valgrind 配合 ctgrind 或运行 dudect 测试,|t|>=4.5 视为可能存在泄露,|t|>=10 为强证据。

适用场景:审计自研加密库或厂商补丁、确认 memcmp 替换是否真正常数时间、检查编译器优化是否消除手写常数时间代码、满足密钥处理必须常数时间的安全要求。

限制:仅 grep/ripgrep 与编译器为静态分析必需,动态工具为可选;具体功能、收费、价格、平台与效果暂未提供。修复建议包括替换为 CRYPTO_memcmp、timingsafe_memcmp、sodium_memcmp 或 Go subtle.ConstantTimeCompare,用位切片或 AES-NI 替代表查找 AES,并在编译或标志变更后重新在汇编层验证。