mcpField
I
implementing-aes-encryption-for-data-at-rest

implementing-aes-encryption-for-data-at-rest

github.com/mukul975セキュリティ35.2k86 回インストール8 週間前に更新
リポジトリ

implementing-aes-encryption-for-data-at-rest について

保存データを保護するエンジニア向けの暗号化実装スキルです。AES-256-GCMによるファイルの暗号化と復号、鍵導出、ノンス管理、認証検証を扱います。

主な機能

  1. 01AES-256-GCMによるファイル暗号化と復号
  2. 02PBKDF2またはArgon2による鍵導出
  3. 03ノンスの安全な生成と管理
  4. 04ディレクトリツリーの暗号化と復号
  5. 05ストリーミングによる大容量ファイル処理

活用シーン

  1. 01保存ファイルとデータストアの保護
  2. 02パスワードからの暗号鍵導出
  3. 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 と一緒にインストールされる参考資料やスクリプト。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.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)を使用してノンスを生成します
  • ノンスは暗号文とともに保存します(秘密情報ではありません)

ワークフロー

  1. cryptography ライブラリをインストールします:pip install cryptography
  2. 暗号鍵を生成または導出します
  3. 暗号化処理ごとにランダムなノンスを作成します
  4. 鍵とノンスを使って AES-256-GCM でデータを暗号化します
  5. ノンス、暗号文、認証タグをまとめて保存します
  6. 復号時は、ノンスを取り出し、タグを検証してから復号します

暗号化ファイル形式

[salt: 16 bytes][nonce: 12 bytes][ciphertext: variable][tag: 16 bytes]

セキュリティ上の考慮事項

  • 改ざんを防ぐため、必ず認証付き暗号化(GCM、CCM)を使用します
  • 同じ鍵でノンスを再利用しないでください(GCM では致命的な問題につながります)
  • 長期的なデータ保護には、少なくとも 256 ビットの鍵を使用します
  • 可能であれば、使用後に鍵をメモリから安全に消去します
  • 組織のポリシーに従って、暗号鍵を定期的にローテーションします
  • ディスクレベルの暗号化には、XTS モード(AES-XTS)の使用を検討します

検証基準

  • AES-256-GCM 暗号化によって有効な暗号文が生成される
  • 復号によって元の平文が正確に復元される
  • 認証タグによって暗号文の変更がすべて検出される
  • 鍵導出で十分な反復回数/パラメーターが使用されている
  • 同じ鍵でノンスが再利用されない
  • 大きなファイル(1 GB 超)をストリーミングで処理できる
  • 暗号化ファイル形式に必要なすべてのメタデータが含まれている

コメント