dudect 项目使用教程
dudectdude, is my code constant time?项目地址:https://gitcode.com/gh_mirrors/du/dudect
1、项目介绍
dudect 是一个用于评估代码是否在给定平台上以常量时间运行的工具。该项目基于泄漏检测技术,旨在提供一个紧凑、易于使用和维护的工具。dudect 的核心方法可以在大约 300 行 C 代码中实现,并且可以在 GitHub 上找到其源代码。
2、项目快速启动
环境要求
- 需要一个 C 编译器
快速启动步骤
- 克隆项目仓库:
git clone https://github.com/oreparaz/dudect.git
- 进入项目目录:
cd dudect
- 编译项目:
make
- 运行测试:
./dudect_cmpmemcmp -O2
3、应用案例和最佳实践
应用案例
dudect 可以用于检测密码比较函数或 MAC 标签比较函数是否以常量时间运行。例如,使用 dudect 检测基于 memcmp()
的密码比较函数:
./dudect_cmpmemcmp -O2
输出示例:
meas: 0.37 M max t: +1271.13 max tau: 3.47e-03 (5/tau)^2: 2.07e+06
Definitely not constant time
最佳实践
- 在编写涉及敏感数据处理的代码时,确保使用常量时间操作以防止时序攻击。
- 使用 dudect 定期检测代码,确保其安全性。
4、典型生态项目
相关项目
- curve25519-donna: 一个旨在生成常量时间代码的加密库。
- dudect_donnabad: 一个包含明显时序泄漏的变体,用于演示 dudect 的使用。
生态项目
- GitHub Copilot: 一个使用 AI 帮助编写更好代码的工具。
- GitHub Actions: 自动化工作流程的平台。
通过以上步骤和案例,您可以快速上手并有效使用 dudect 项目来确保您的代码在安全性方面的表现。
dudectdude, is my code constant time?项目地址:https://gitcode.com/gh_mirrors/du/dudect