在量子计算机替你发现之前,先找出代码中隐藏的密码学。
cryptoptic 使用 CodeQL 和 GitHub Actions 扫描一个代码仓库或整个 GitHub 组织,并生成一份清单,列出所有正在使用的密码学函数、它们所属的库以及调用位置。
具有密码学相关能力的量子计算即将到来,这意味着当今广泛使用的许多算法将无法再保障数据安全。“先收集,后解密”使这成为当下的风险,而非未来的风险。
在组织能够迁移到后量子算法之前,它需要了解密码学在其代码库中的使用情况。cryptoptic 有助于创建这份密码学物料清单(CBOM),从而可以将存在漏洞的算法替换为量子安全替代方案,或对其进行透明管理。
cryptoptic 由 Nationwide Building Society 构建并在内部使用。现发布于此,供更广泛的社区使用。
克隆此代码仓库,并在你选择的编辑器中打开它。
编辑 .github/workflows/org-codeql-sarif-run.yml,并设置所需的工作流值。
| 设置 | 描述 |
|---|---|
ORG | 要扫描的组织。对于个人代码仓库,请使用你的 GitHub 用户名。 |
REPO | 要扫描的代码仓库。留空字符串可扫描组织中的每个代码仓库。 |
TARGET_LANG | 要扫描的语言,有效值请参见支持的语言。 |
提交并推送你的更改。
转到 GitHub 中的 Actions 选项卡,并从左侧边栏中选择 CodeQL org run (crypto inventory)。
点击 Run workflow,选择要运行的分支,然后点击绿色的 Run workflow 按钮。
生成的文件会作为工作流运行中的构件发布:
要开发 cryptoptic 本身,你需要:
欢迎贡献,包括代码、查询、文档、测试和错误报告。参与前请阅读行为准则;它适用于每个项目空间。
有关决策方式,请参见 GOVERNANCE.md;有关联系对象,请参见 MAINTAINERS.md。
请勿通过公开的 GitHub issue 报告安全漏洞。 有关如何私下报告以及报告后的预期,请参见 SECURITY.md。
本项目按 Apache License, Version 2.0 许可。许可证副本应包含在代码仓库中名为 LICENCE 或 LICENSE 的文件中。用户在使用、修改或分发本项目之前,应查看许可证条款。
在重新分发本项目时,Apache License 2.0 要求保留适用的版权、专利、商标和署名声明,包含许可证副本,在适用时包含修改文件的通知,并妥善处理随项目提供的任何 NOTICE 文件。
如果代码仓库包含 NOTICE 文件,用户和重新分发者必须根据 Apache License 2.0 保留该文件中包含的署名声明。NOTICE 文件应保持准确,并应反映适用于分发内容的通知。
Apache License 2.0 不授予使用 Nationwide 的名称、徽标、商标或品牌的许可。任何对 Nationwide 品牌或项目特定品牌的使用都必须遵守项目单独的商标政策。
如 Apache License 2.0 所述,本项目按“原样”提供,不附带任何形式的保证或条件。用户有责任确定本项目是否适合其用途,并在依赖任何输出之前对其进行验证。
| 语言 | 状态 | TARGET_LANG 值 |
|---|
| Python | 支持 | python |
| JavaScript | 支持 | javascript |
| .NET | 支持 | csharp |
| Java | 计划中 |