エンベロープ暗号化は、データを暗号化する鍵(DEK)と、
そのDEKを暗号化する鍵(KEK)を分離する二段階の暗号化方式。
用語
- DEK(Data Encryption Key): データ本体を暗号化する鍵
- KEK(Key Encryption Key): DEKを暗号化する鍵(KMSで管理する鍵など)
基本フロー
保存時
- DEKを生成
- DEKでデータ本体を暗号化
- KEKでDEKを暗号化
- 保存
- 暗号化済みデータ本体
- 暗号化済みDEK
参照時
- 暗号化済みデータ本体と暗号化済みDEKを取得
- KEKでDEKを復号
- DEKでデータ本体を復号
鍵ローテーションで有利な点
データ本体を直接KEKで暗号化していると、KEK更新時に大量データの再暗号化が必要になる。
エンベロープ暗号化なら、主に暗号化済みDEKの扱いで更新を進められるため負荷を抑えやすい。
大規模運用では、既存データを一括で再処理せず、新規書き込みから新KEKへ切り替える
遅延ローテーション(段階移行)を採ることが多い。
実務メモ
エンベロープ暗号化(Envelope Encryption) は、security、encryption、kms、key-management の文脈で出てくることが多い。辞書的な定義だけでなく、この語で何を短く言い表したいのかまで揃えておくと会話がぶれにくい。
近い言葉と混ぜると説明が曖昧になりやすいので、対象、役割、使う場面を一段だけ具体化して捉えるのが楽。用語集では、その入口として押さえておくと十分。
hsb.horse