| name | cryptographic-practices |
| description | 暗号化・ハッシュ・CSPRNG・鍵管理の実装を安全に進めるためのスキル。
要件整理から設計、実装、監査までの一連フローを提供する。
Anchors:
• Applied Cryptography / 適用: アルゴリズム選定と強度判断 / 目的: 標準準拠の基礎固め
• Web Application Security / 適用: 脅威モデリング / 目的: 実装リスクの明確化
• NIST SP 800-57 / 適用: 鍵管理 / 目的: ライフサイクル設計
Trigger:
Use when implementing cryptographic functions, selecting algorithms, generating secure random values, managing encryption keys, or auditing crypto implementations.
cryptographic practices, crypto implementation, key management, csprng, algorithm selection
|
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep"] |
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/(詳細知識)
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 | 改善履歴の記録 |