コンテンツへスキップ
HexaTransfer
ブログへ戻る
暗号化とセキュリティ

2026年版 暗号化キー管理のベストプラクティス

鍵生成、保管、ローテーション、ライフサイクル管理まで、2026年に有効な暗号化キー管理のベストプラクティスを徹底解説します。

2026年における鍵管理とは、 CSPRNG で鍵を生成し(エントロピーが低い VM 上の /dev/urandom ではなく、 getrandom() または BCryptGenRandom を使用)、ハードウェアに保存し( AWS KMS 、 YubiHSM 2 、 Thales Luna 、 Secure Enclave )、脅威の露出に合わせたスケジュールでローテーションし(アクティブな暗号化鍵は90日、 KEK は年1回)、暗号的消去または物理的破棄によって廃棄することを意味します。ライフサイクルは NIST SP 800-57 Part 1 Rev 5 が定め、モジュールは FIPS 140-3 が認証し、プロセスは PCI DSS 4.0 要件3.6 が監査します。これらを正しく実装すれば、暗号アルゴリズム自体( AES-256-GCM 、 X25519 )はほぼ問題になりません。

信頼できる鍵の生成

鍵生成は暗号化の中でも静かな失敗ポイントです。2006〜2008年の Debian OpenSSL CVE( Debian 固有の RNG パッチ)では、影響を受けたシステムで生成されたすべての SSH 鍵が予測可能になりました。最近では Fortinet が2021年にエントロピーが低い起動時ソースから導出された鍵を持つルーターを出荷しました。安全な生成には OS の CSPRNG を使います。 Linux 3.17+ では getrandom() 、 Windows では BCryptGenRandom 、 macOS / iOS では SecRandomCopyBytes です。 Web Crypto API の crypto.getRandomValues() は OS のソースから引きます。独自の RNG を実装せず、 time() や PID から種として使わず、 VM 起動時にプールが確実にシードされているか確認してください( /proc/sys/kernel/random/entropy_avail が256を超えているか)。

階層的鍵構造:KEK 、 DEK 、セッション鍵

実際のシステムでは鍵を階層化します。データ暗号化鍵( DEK )が AES-256-GCM で実データを暗号化します。鍵暗号化鍵( KEK )が DEK を暗号化し、 HSM に保存されます。ルート KEK (マスター鍵とも呼ばれる)が KEK を暗号化し、耐タンパーハードウェアに保持されます。 DEK をローテーションするとデータが再暗号化されます。 KEK をローテーションすると DEK が再ラップされます(高速)。ルートのローテーションは大規模な作業です。このエンベロープパターンにより、ペタバイトのデータを復号せずに頻繁なローテーションが可能になります。 AWS KMS 、 Google Cloud KMS 、 HashiCorp Vault はすべてこれを実装しています。ファイル転送サービスでは転送ごとの AES 鍵が DEK 、パスワードから導出した KEK ( PBKDF2 または Argon2id 経由)がそれをラップします。

保管:HSM 、 KMS の違いと実際の使い分け

ハードウェアセキュリティモジュール( HSM )は耐タンパー性のある機器で、鍵のエクスポートなしに生成・保存・使用します。 FIPS 140-3 Level 3 デバイス( Thales Luna 7 、 AWS CloudHSM 、 YubiHSM 2 )は物理的な改ざんを検知してゼロ化します。鍵管理サービス( AWS KMS 、 Google Cloud KMS 、 Azure Key Vault )は HSM 上で動作するソフトウェアで、 API 経由でアクセスします。多くのアプリケーションでは KMS で十分です。鍵1つあたり月1ドルで、 HTTPS 越しに Encrypt/Decrypt を呼び出せば AWS が HSM 操作を処理します。直接 HSM が必要なのは、規制当局が求める場合(カード発行向けの PCI DSS 4.0 要件3.6.1.1)またはクラウドプロバイダの法的管轄を信頼できない場合です。

リスクに合わせたローテーションスケジュール

NIST SP 800-57 は暗号期間(鍵がアクティブな期間)を定義しています。新しいデータをアクティブに暗号化する対称鍵は最大1〜2年、既存データの復号のみに使う鍵は3〜5年、ルート KEK は5〜10年です。 PCI DSS 要件3.7.4 は暗号期間の定義を義務付けています。実務上はローテーションを自動化してください。 AWS KMS は年1回の自動ローテーションを提供し、 Google KMS は設定可能です。アップロードごとに新鮮なランダム鍵を生成するファイル転送サービスでは、データ鍵のローテーションは適用されません。ただし TLS 証明書( Let's Encrypt で90日)、監査ログの署名鍵(年1回)、ユーザーシークレットをラップするマスター鍵には適用されます。

廃棄と暗号的消去

鍵の暗号期間が終わるか、 GDPR 第17条に基づいてデータを消去する必要が生じた場合は鍵を廃棄します。オフラインバックアップトークンはスマートカードシュレッダーで物理的に破棄します。クラウド保存の鍵は暗号的消去を用います。鍵をラッピング鍵で暗号化してからラッピング鍵を廃棄すると、元の鍵で暗号化されたすべてのデータが誰にも復号できない暗号文になります。クラウドプロバイダがテラバイト規模の削除要求に対応する際、ディスクをすべて消去せずに対処する仕組みです。廃棄はタイムスタンプ、鍵 ID (鍵素材ではなく)、廃棄方法を含む監査ログに記録してください。 NIST SP 800-88 Rev 1 がサニタイゼーションを扱っています。

アクセス制御と職務分離

単一の担当者が本番鍵を取り出せる状態にしてはいけません。 HSM 管理者ロールには m-of-n クォーラムを実装してください。ルート鍵のエクスポートには5人の責任者のうち任意の2人、 KEK のローテーションには3人のうち任意の1人、通常の DEK 操作には不要とする構成です。 AWS KMS の grants は IAM ポリシーで狭い権限(暗号化のみ、復号のみ)を委任できます。 HashiCorp Vault の Shamir 秘密分散はアンシールキーを管理受託者に分割します。呼び出し元の識別情報、操作、リソースを含む鍵使用ログをすべて記録してください。 PCI DSS 3.6.2 と SOC 2 CC6.1 はこれを監査します。

エンベロープ暗号化と BYOK

顧客独自鍵( BYOK )では顧客が自分のルート KEK をクラウド KMS にアップロードします。クラウドプロバイダはテナントのデータ鍵を顧客の KEK でラップするため、顧客が失効させるとプロバイダが介在せずともデータは復元不能になります。 AWS KMS インポートキー、 Google Cloud EKM (外部鍵管理)、 Azure Key Vault BYOK がこれを実現します。医療・金融など規制対象の顧客を扱うファイル転送サービスでは、 BYOK が共有インフラでも「顧客が鍵を管理する」要件を満たします。顧客のデータセンターにある HSM が鍵を生成し、プロバイダは平文の鍵素材を見ることがありません。

鍵素材のバックアップと復旧

鍵を失うとデータも失います。ルート鍵は地理的に分散した管理受託者による Shamir 秘密分散のシェアでバックアップしてください。 AWS KMS は BYOK で作成した CMK のみ鍵素材のエクスポートを許可しています。 YubiHSM 2 はラップ鍵のバックアップをサポートしています。復旧手順を文書化し、年に一度実際に実行してください(読むだけではなく)。少なくとも2人の管理受託者が常に有効であること。バス因子1は許容できません。重要度が低い鍵については、エアギャップを置いたメディア( LTO テープ、金庫内の暗号化 USB )への暗号化オフラインバックアップを2か所以上に保管します。復旧手順は災害復旧計画に含めてください。

クライアントサイド暗号化の特殊ケース

HexaTransfer のようにブラウザで暗号化するサービスでは、従来の鍵管理は適用されません。サーバーは鍵を見ないため、サーバーサイドで回転させる鍵が存在しないからです。ブラウザがユーザーのパスワードから鍵を導出し、一度使って破棄します。鍵管理の責任はユーザー教育に移行します。強力なパスワードを選ぶ、使い回さない、パスワードマネージャーを使う。サービス側の責任は、強力な KDF ( Argon2id、m=64MB、t=3、p=1 または PBKDF2 で60万回以上のイテレーション)の使用、適切なランダムソルトの生成、使用後の鍵素材のメモリからの消去( crypto.subtle の不透明ハンドル、または WebAssembly メモリの明示的ワイプ経由)です。

監視とインシデント対応

鍵の侵害は最悪のインシデントです。 KMS 操作の異常を監視してください。通常1時間に100回の Decrypt 呼び出しを行う API 鍵が突然10,000回呼び出した場合は侵害の可能性があります。 KMS エラー(認証失敗、鍵が見つからない、クォータ超過)にアラートを設定し、鍵のローテーション、クレデンシャルの無効化、フォレンジックキャプチャを含むランブックにつなげます。鍵侵害の復旧計画を用意してください。ルートのローテーションにはどれくらいかかるか。テラバイト規模のデータを再暗号化するにはどうするか。年に一度計画を実際に検証してください。侵害が検出されない適切に運用された KMS は、明らかに壊れた状態よりも危険です。

hexatransfer.comでお試しください — 無料、登録不要、最大10GB。

エンドツーエンド暗号化で大容量ファイルを安全に送信

エンドツーエンド暗号化で最大10GBのファイルを無料で転送。アカウント不要。ファイルはアップロード前にブラウザで暗号化されるため、他の誰にも読まれません。

ファイルを送信