implementing-aes-encryption-for-data-at-rest について
保存データを保護するエンジニア向けの暗号化実装スキルです。AES-256-GCMによるファイルの暗号化と復号、鍵導出、ノンス管理、認証検証を扱います。
主な機能
- 01AES-256-GCMによるファイル暗号化と復号
- 02PBKDF2またはArgon2による鍵導出
- 03ノンスの安全な生成と管理
- 04ディレクトリツリーの暗号化と復号
- 05ストリーミングによる大容量ファイル処理
活用シーン
- 01保存ファイルとデータストアの保護
- 02パスワードからの暗号鍵導出
- 03暗号文の改ざん検知と完全性確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill implementing-aes-encryption-for-data-at-restインストール後、Claude Code で/implementing-aes-encryption-for-data-at-restを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
保存データ向け AES 暗号化の実装
概要
AES(Advanced Encryption Standard)は、機密データやセンシティブなデータを保護するために使用される、NIST(FIPS 197)によって標準化された共通鍵ブロック暗号です。このスキルでは、保存データとしてのファイルやデータストアを暗号化するための、GCM モードによる AES-256 暗号化の実装を扱います。適切な鍵導出、IV/ノンスの管理、認証付き暗号化も含まれます。
使用する場面
- 環境において、保存データ向け AES 暗号化機能をデプロイまたは設定する場合
- コンプライアンス要件に沿ったセキュリティ制御を確立する場合
- このドメインのセキュリティアーキテクチャを構築または改善する場合
- この実装が必要となるセキュリティ評価を実施する場合
前提条件
- 暗号技術の概念とツールに関する知識
- 安全に実行できるテスト環境またはラボ環境へのアクセス
- 必要な依存関係をインストールした Python 3.8 以降
- テスト活動に対する適切な権限
目標
- ファイルの AES-256-GCM 暗号化と復号を実装する
- PBKDF2 と Argon2 を使用してパスワードから暗号鍵を導出する
- 初期化ベクトル(IV)とノンスを安全に管理する
- ディレクトリツリー全体を暗号化および復号する
- 改ざんを検出する認証付き暗号化を実装する
- ストリーミング暗号化で大きなファイルを処理する
主要な概念
AES の動作モード
| モード | 認証 | 並列処理可能 | 用途 |
|---|---|---|---|
| GCM | あり(AEAD) | あり | ネットワークデータ、ファイル暗号化 |
| CBC | なし | 復号のみ | レガシーシステム、ディスク暗号化 |
| CTR | なし | あり | ストリーミング暗号化 |
| CCM | あり(AEAD) | なし | IoT、リソースに制約のある環境 |
鍵導出
パスワードをそのまま暗号鍵として使用しないでください。必ず次の方法で鍵を導出してください。
- PBKDF2:NIST 承認済みで広くサポートされています(2024 年時点で最低 600,000 回の反復)
- Argon2id:Password Hashing Competition の優勝方式で、メモリハードです
- scrypt:メモリハードで、Argon2 の優れた代替手段です
ノンス/IV の管理
- GCM では 96 ビット(12 バイト)のノンスが必要で、同じ鍵で絶対に再利用してはいけません
os.urandom()(CSPRNG)を使用してノンスを生成します- ノンスは暗号文とともに保存します(秘密情報ではありません)
ワークフロー
cryptographyライブラリをインストールします:pip install cryptography- 暗号鍵を生成または導出します
- 暗号化処理ごとにランダムなノンスを作成します
- 鍵とノンスを使って AES-256-GCM でデータを暗号化します
- ノンス、暗号文、認証タグをまとめて保存します
- 復号時は、ノンスを取り出し、タグを検証してから復号します
暗号化ファイル形式
[salt: 16 bytes][nonce: 12 bytes][ciphertext: variable][tag: 16 bytes]
セキュリティ上の考慮事項
- 改ざんを防ぐため、必ず認証付き暗号化(GCM、CCM)を使用します
- 同じ鍵でノンスを再利用しないでください(GCM では致命的な問題につながります)
- 長期的なデータ保護には、少なくとも 256 ビットの鍵を使用します
- 可能であれば、使用後に鍵をメモリから安全に消去します
- 組織のポリシーに従って、暗号鍵を定期的にローテーションします
- ディスクレベルの暗号化には、XTS モード(AES-XTS)の使用を検討します
検証基準
- AES-256-GCM 暗号化によって有効な暗号文が生成される
- 復号によって元の平文が正確に復元される
- 認証タグによって暗号文の変更がすべて検出される
- 鍵導出で十分な反復回数/パラメーターが使用されている
- 同じ鍵でノンスが再利用されない
- 大きなファイル(1 GB 超)をストリーミングで処理できる
- 暗号化ファイル形式に必要なすべてのメタデータが含まれている
コメント
Markdown 対応