
CodeQLベースのスキャナで、リポジトリおよびGitHub組織全体にわたる暗号化関数呼び出しを棚卸しし、SARIF形式のCryptographic Bill of Materials(CBOM)を生成します。
量子コンピュータに見つけられる前に、コードに潜む暗号を発見しましょう。
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 | 計画中 |