cryptographic-practices
概要
暗号実装に必要な判断基準と実装手順を整理し、安全なアルゴリズム選定・鍵管理・乱数生成を支援する。
ワークフロー
Phase 1: 要件整理
目的: 目的・脅威・制約を整理し、暗号要件を明確化する。
アクション:
- 保護対象と脅威を整理する。
- 目的(機密性/完全性/認証/署名)を明確化する。
- 既存実装の有無を確認する。
Task: agents/analyze-crypto-requirements.md を参照
Phase 2: 設計
目的: アルゴリズムと鍵管理の方針を設計する。
アクション:
references/algorithm-strength-guide.mdで強度を確認する。references/key-management-policy.mdで鍵ライフサイクルを設計する。references/csprng-implementation.mdで乱数生成方針を整理する。
Task: agents/design-crypto-architecture.md を参照
Phase 3: 実装
目的: 安全な実装と検出を行う。
アクション:
- 設計方針を実装に反映する。
scripts/detect-weak-crypto.mjsで弱い実装を検出する。- 変更点を記録する。
Task: agents/implement-crypto-controls.md を参照
Phase 4: 検証と監査
目的: 実装の安全性を検証し、監査記録を残す。
アクション:
assets/crypto-audit-checklist.mdで監査する。- 監査結果をテンプレートに整理する。
scripts/log_usage.mjsで記録を更新する。
Task: agents/validate-crypto-implementation.md を参照
Task仕様ナビ
| Task | 起動タイミング | 入力 | 出力 |
|---|---|---|---|
| analyze-crypto-requirements | Phase 1開始時 | 目的/制約/脅威 | 暗号要件メモ、リスク一覧 |
| design-crypto-architecture | Phase 2開始時 | 暗号要件メモ | アルゴリズム設計、鍵管理方針 |
| implement-crypto-controls | Phase 3開始時 | 設計方針 | 実装変更メモ、検出結果 |
| validate-crypto-implementation | Phase 4開始時 | 実装変更メモ | 監査レポート、改善提案 |
詳細仕様: 各Taskの詳細は agents/ ディレクトリを参照
ベストプラクティス
すべきこと
| 推奨事項 | 理由 |
|---|---|
| 脅威モデルから設計する | 要件と実装が一致する |
| 標準アルゴリズムを使う | 自作暗号のリスク回避 |
| CSPRNGを使用する | 予測可能性の排除 |
| 鍵管理をライフサイクルで設計する | 漏洩リスクを抑える |
| 監査ログを残す | 再現性と証跡の確保 |
避けるべきこと
| 禁止事項 | 問題点 |
|---|---|
| 弱いアルゴリズムの採用 | 既知の脆弱性を抱える |
| 乱数にMath.randomを使う | 予測可能で危険 |
| 鍵のハードコード | 漏洩リスクが高い |
| 監査なしのデプロイ | 安全性が担保できない |
リソース参照
scripts/(決定論的処理)
| スクリプト | 機能 |
|---|---|
scripts/detect-weak-crypto.mjs |
弱い暗号実装の検出 |
scripts/validate-skill.mjs |
スキル構造の検証 |
scripts/log_usage.mjs |
使用記録と評価メトリクス更新 |
references/(詳細知識)
| リソース | パス | 読込条件 |
|---|---|---|
| レベル1 基礎 | references/Level1_basics.md | 要件整理時 |
| レベル2 実務 | references/Level2_intermediate.md | 設計時 |
| レベル3 応用 | references/Level3_advanced.md | 実装時 |
| レベル4 専門 | references/Level4_expert.md | 監査時 |
| 強度ガイド | references/algorithm-strength-guide.md | アルゴリズム選定時 |
| CSPRNG実装 | references/csprng-implementation.md | 乱数設計時 |
| 鍵管理方針 | references/key-management-policy.md | 鍵運用設計時 |
| 脅威整理 | references/threat-modeling.md | 目的整理時 |
| 要求仕様索引 | references/requirements-index.md | 仕様確認時 |
| 旧スキル | references/legacy-skill.md | 互換確認時 |
assets/(テンプレート・素材)
| アセット | 用途 |
|---|---|
assets/crypto-audit-checklist.md |
監査チェックリスト |
assets/encryption-config-template.json |
暗号設定テンプレート |
assets/key-rotation-plan.md |
鍵ローテーション計画 |
assets/crypto-audit-report-template.md |
監査レポート |
運用ファイル
| ファイル | 目的 |
|---|---|
EVALS.json |
レベル評価・メトリクス管理 |
LOGS.md |
実行ログの蓄積 |
CHANGELOG.md |
改善履歴の記録 |