全1381文字
PR

 今回は、BYOK(Bring Your Own Key)を実現するシステムの全体像を見てみよう。ここでは、ビジネスチャットサービスを例にした。

BYOKの構成例
BYOKの構成例
[画像のクリックで拡大表示]

 利用者がチャットでメッセージを送ると、メッセージはクラウドサービスのデータベースに書き込まれる。データベースは書き込みの際、KMS(Key Management System)にDEK(Data Encryption Key)の生成をリクエストする。

 リクエストを受けたKMSはDEKを生成し、DEKと暗号化DEKをデータベースに渡す。データベースは受け取ったDEKでメッセージを暗号化して書き込む。その後DEKをすぐに削除し、暗号化DEKは暗号化データとセットで保存する。

 メッセージを表示するとき、データベースは暗号化したデータとセットで保存した暗号化DEKをKMSに送る。KMSはKEK(Key Encryption Key)で暗号化DEKを復号、DEKをデータベースに返す。このDEKで復号することで再びメッセージを見られるわけだ。

 BYOKでは、KEKを生成するためのマスターキーは利用者が自前で用意する。マスターキーは簡単に持ち出せない環境で生成・保管する必要があるため、オンプレミスやクラウドのHSM(Hardware Security Module)で生成してKMSに持ち込む。

 自前のHSMからKMSへマスターキーを送信する際には、公開鍵暗号を使う。

クラウドサービスの対応が必須

 以上の仕組みから分かるように、BYOKを実現するには対象のクラウドサービスがBYOKに対応している必要がある。加えて、クラウドサービス外で鍵を管理する仕組みも用意する必要がある。また利用者が自ら鍵を管理するため、そのための体制や知識が必要になる。