Cloud Key Management using Trusted Execution Environment
タイトル: Cloud Key Management using Trusted Execution Environment
著者: Jaouhara Bouamama, Mustapha Hedabou, Mohammed Erradi
TL;DR
Intel SGXを用いた効率的で安全なクラウド鍵管理システム
オンプレミスの鍵管理サービス(KMS)と、クラウドとデータストレージ内で動作する仮想アプライアンス(Virtual Appliance)の組み合わせ
オンプレミスのソフトウェア鍵管理(KMS)とアクセス可能なハードウェア設備(VA)を介してクラウド上で安全に実行することでエンドユーザは低コストでセンシティブな鍵を管理が可能
本文
背景
近年、クラウドコンピューティングの利用が広まっており、セキュリティの観点でKMSを採用する企業も増えつつある。一方で、クラウドプロバイダーが提供しているKMSはクラウドプロバイダーによる部分的または全面的な制約があり、コスト、効率性、柔軟性が欠ける部分も少なくない。
KMSGX
Intel SGXを用いた効率的で安全なクラウド鍵管理システム
クラウド・プラットフォーム上で鍵を保存し、機密性の高い計算を安全に実行
オンプレミスの鍵管理サービス(KMS)と、クラウドとデータストレージ内で動作する仮想アプライアンス(Virtual Appliance)の組み合わせ
オンプレミスのソフトウェア鍵管理(KMS)をアクセス可能なハードウェア設備(VA)を介してクラウド上で安全に実行することでエンドユーザは低コストでセンシティブな鍵を管理が可能
ソースコードは公開されていない
System model
オンプレミスとクラウドの組み合わせ
Intel SGXのremote attestationを用いてKMSGX applianceを介してクラウドに信頼性を証明
cipepser.icon 図的にLocal KMSがCloudに対して信頼性を証明?でもenclaveが動作してるのはCloud側では?
https://gyazo.com/d49692ad1a36b693742fb26093dce8f6
cipepser.icon 図中だとKMSSGXですね。Sは1個?2個?
KMS(Key Management Service)
鍵管理ステップの制御をオンプレミスの鍵管理システム上で行う
鍵の生成と削除
信頼できるアプライアンスにのみ機密データを送信(鍵交換の前にソフトウェアのアイデンティティが検証)
VA(Virtual Appliance)
VMWareやVirtualBoxなどの仮想化技術の上で動作するよう設計された最小仮想機械
機密データの機密性を保証
クラウドプラットフォーム上で動作し、KMSとクラウドプラットフォーム上で動作する暗号化アプリケーションとを結びつけるブリッジの役割
クラウド・プラットフォームに保存されたデータを復号した後、そのデータに対して計算を行うために活用される
cipepser.icon 復号化👮
Protocol
プロトコルはSetup, Upload, Operation Requestの3つのフェーズに分かれている
https://gyazo.com/9eef7d0d90429a13f38cc5980dbb2613
Setup
(KMSは、SGXエンクレイブを初期化するアプライアンスを起動)
KMS onpremiseは公開鍵を生成して公開鍵とNonce形式で認証リクエストをVAに送る
KMSGX enclaveで公開鍵とセッションキーを作成し、VAにQUOTEとして返す
QUOTEには公開鍵に関する情報と、エンクレイブのIDによる署名が含まれている
VAはQUOTEをKMS onpremiseに返す
Session確立後、共通鍵を交換
Upload
KMS onpremiseはアップロードされたファイルを暗号化するための暗号化キーを生成(セッションキーを用いて暗号化)
KMS onpremiseは暗号化されたファイルと鍵をVAに送る
VAは送られてきたデータをKMSGX enclaveに渡す
KMSGX enclaveはセッションキーを使って暗号化キーを復号し、エンクレイブのシールキーを使って再度暗号化
KMSGX enclave、VAに結果を返す
暗号化されたデータをデータストレージに保存
Operation Request
(特定のユーザからリクエストがあった場合)
KMS onpremiseはセッションキーを用いてリクエストを暗号化し、VAに送る
VAは、送られてきたリクエストをKMSGX enclaveに渡す
KMSGX enclaveはリクエストに含まれる特定のファイルをダウンロードするためにVAに対してOCall実行
VAはダウンロードしたファイルをKMSGX enclaveに渡し、MKSGX enclaveはシールキーを用いて暗号化鍵を復号
復号された暗号化鍵を用いてファイルを復号
KMSGX enclaveは結果をセッションキーで暗号化し、VA軽油でKMS onpremiseに返す
KMS onpremiseは結果を復号化して特定のユーザに返す
性能評価
実行環境
Intel i5-8259U
Ubuntu 18.04 LTS 64bit
Upload Performance
https://gyazo.com/5eb1e9add9dec06404c826d374aefaa4
Download Performance
https://gyazo.com/cec78c295b1dcbd8478b80a9ba794f53
ファイルサイズが大きくなっても,アップロードとダウン ロードの両方のオーバーヘッドコストは無視できるレベル(オーバーヘッド・コストがプレーンな設計の総コストの 0.5 % を超えていない)
https://gyazo.com/e15e6a9eb4b50f812b27a39dab45f48e
https://gyazo.com/562d0d2133e616978ef46bbc3f0fd05b
参考
セキュリティプロトコルの形式検証ツール“ProVerif”
KMS
Key Management Service
データ暗号化に使用する暗号化キーを管理してくれるサービス
データの暗号化の鍵(データキー) と暗号化のための鍵(マスターキー) を管理
Virtual Appliance(仮想アプライアンス)
仮想化技術の上で動作するよう設計された最小仮想機械イメージ
RELATED WORKS
Porticor
HSM
Fortanix
Fortanixは鍵の保護と保存がどのように処理されているかについてはっきりしていない
Barbican
鍵管理を必要とする他のシステムと一緒に使用できるスタンドアロンソリューションとしては動作しない
π計算
The Applied Pi Calculus: Mobile Values, New Names, and Secure Communication
cipepser.icon 勉強したい