工程开发
constant-time-testing avatar

constant-time-testing

检测加密代码中的时序侧信道漏洞,防止机密数据泄漏。适用于审计高敏感度的加密实现。

简介

constant-time-testing 技能为识别加密实现中的时序侧信道漏洞提供了专业的诊断框架。时序攻击利用微架构差异(如缓存时序差异、分支预测行为或指令级延迟差异)来窃取密钥、密码或其他敏感加密数据。此技能专为安全审计师、密码学工程师以及开发敏感加密原语或协议的开发人员而设计,旨在确保执行路径与内存访问模式与机密数据无关。通过结合统计测试、符号执行与形式验证方法,该技能引导用户审计代码,查找如依赖机密数据的条件分支、非恒定时间的数组查询以及不安全的整数除法或位移运算等常见漏洞。它提供关于应用掩码技术以消除执行时间与机密输入之间相关性的明确指引。用户可利用此工具评估代码是否符合恒定时间(constant-time)原则,检测现实环境中的统计时序差异,并在运行时追踪机密数据流。该技能支持多种专业工具,包括用于统计时序分析的 dudect、用于动态分析的 timecop,以及如 SideTrail、ct-verif 和 FaCT 等形式验证工具。需特别注意的是,此技能专为处理机密数据的代码而设计,不适用于一般的性能优化场景。

  • 检测加密实现中的时序侧信道,涵盖 RSA、ECDH、AES 及 Kyber 等后量子算法。

  • 支持多种分析方法:形式化证明、符号执行、动态追踪与统计测量。

  • 提供缓解策略的实施指导,例如使用掩码技术来消除时序依赖。

  • 分析缓存时序、整数除法与位移运算造成的微架构信息泄漏风险。

  • 整合领域专用工具:dudect, timecop, SideTrail, ct-verif, FaCT。

  • 区分依赖机密的执行路径与无足轻重的性能瓶颈。

  • 请确保目标代码明确涉及敏感机密数据的处理;此技能不适用于公开或无需保密的逻辑。

  • 进行统计分析(dudect)或动态分析(timecop)时,请准备好测试套件或特定的加密输入样本。

  • 形式验证方法可能需要较多时间来建立精确的代码模型与属性规范。

  • 统计测试结果受环境噪声影响,建议在受控环境中重复验证以确保准确性。

仓库统计

Star 数
4,873
Fork 数
424
Open Issue 数
21
主要语言
Python
默认分支
main
同步状态
空闲
最近同步时间
2026年4月29日 06:02
在 GitHub 查看