【エンベロープあんごうか】
エンベロープ暗号化 とは?
💡 鍵を鍵で包む、暗号化の封筒
📌 このページのポイント
- データ本体を暗号化するDEKと、そのDEKを暗号化するKEKの二層構造になっている
- 大量データをKEKで直接暗号化する必要がなく、高速な対称暗号(AES)をデータ暗号化に使える
- 鍵の更新(ローテーション)はKEKだけ変えればよく、データの再暗号化が不要
- AWS KMS・Google Cloud KMS・Azure Key Vaultがこの方式を標準採用している
エンベロープ暗号化って、普通の暗号化と何が違うの?
普通の暗号化はデータを一つの鍵で直接暗号化するだけだよ。でもエンベロープ暗号化は「データを暗号化する鍵(DEK)」と「その鍵を暗号化する鍵(KEK)」の二段階にするんだ。封筒に手紙を入れて、さらに封筒を別の箱に入れるイメージだよ。
なんでわざわざ二重にするの?
むしろ管理が楽になるよ。KEK(マスター鍵)はKMSが厳重に管理して、DEKは暗号化された状態でデータと一緒に保存するんだ。マスター鍵そのものをクラウドの外に出す必要がないから、鍵の漏洩リスクが大幅に下がるよ。
鍵のローテーションって、エンベロープだと楽になるって聞いたけど?
そうなんだ。KEKを変えるだけでOKで、データ本体の再暗号化は不要なんだ。DEKはすでに暗号化した状態で保存されているから、KEKで再ラップ(DEKの暗号化だけやり直す)すれば全体の鍵ローテーションが完了するよ。
DEKが漏れたらどうなるの?
DEKが漏れたとしても、そのDEKで暗号化したデータだけが危険にさらされるよ。データごとにDEKが異なるから、一つのDEKが漏れても他のデータには影響しないんだ。これが「鍵の爆発半径を最小化する」という考え方で、クラウドセキュリティの重要な設計原則だよ。
まとめ:ざっくりこれだけ覚えればOK!
「エンベロープ暗号化」って出てきたら「データの鍵をさらに別の鍵で暗号化する二重構造」と思えればだいたいOK!
📖 おまけ:英語の意味
「Envelope Encryption」 = エンベロープ(封筒)暗号化
💬 DEKをKEKで包む様子が「封筒に手紙を入れる」ことに似ていることから「エンベロープ(封筒)」と名付けられているだよ