Transcript slide - KSL
仮想シリアルコンソールを用いた
クラウドの安全なリモート管理
九州工業大学
情報創成工学専攻
光来研究室
梶原達也
IaaS型クラウド
クラウドコンピューティングの普及
1つの形態としてIaaS型クラウドが挙げられる
ユーザに仮想マシン(VM)を提供
ユーザはネットワーク経由でVMにアクセス
ユーザ
インターネット
VM
VM
IaaS型クラウド
VMの管理
一般的に,ネットワーク経由で直接接続する
例:SSH
欠点:VM内のシステム障害で管理ができなくなる
ネットワーク設定のミス:ファイアウォールなど
SSHサーバの障害・設定ミス
OSの障害
ユーザ
クラウド
ネットワーク
ユーザVM
SSH
クライアント
ログイン
SSH
サーバ
仮想シリアルコンソール
VMの仮想的なシリアルデバイスを経由してアクセス
する管理手法
ネットワーク経由でVMにアクセスできない状況でもVMの
操作が可能
ユーザVMのコンソールに直接アクセス
管理VMにログインして利用
クラウド
ユーザ
仮想シリアル
デバイス
管理VM
SSH
クライアント
ユーザ
VM
SSH
サーバ
ログイン
仮想シリアルコンソール
セキュリティの不安
クラウド内の管理VMが信用できるとは限らない
セキュリティの不備により攻撃者に侵入される可能性
悪意あるクラウド管理者が存在する可能性
クラウド
SSHによって保護
SSH
クライアント
SSH
無防備な状態
管理VM
VM
攻撃者
ユーザ
悪意のある
管理者
VM
VM
管理VMへの情報漏洩
管理VMの改ざんによる情報の漏洩
SSHクライアントからのコンソール入力
パスワード
ユーザVMからのコンソール出力
VMのセキュリティ設定
クラウド
管理VM
SSH
クライアント
セキュリティ
設定
ユーザ
SSH
サーバ
パスワード
VM
仮想シリアル
コンソール
漏洩
ユーザ
攻撃者
セキュリティ
パスワード
設定
提案:SCCrypt
管理VMに対して暗号化された仮想シリアルコン
ソールを提供
入力:ユーザが暗号化したコンソール入力
出力:暗号化されたユーザVMのコンソール出力
ls
復号してユーザVMに送る
ユーザが復号
暗号化
**
暗号入力
暗号出力
ユーザ
復号
Document Picture
Music …
管理VM
ls
ユーザ
VM
*************** Document Picture
暗号化された
*******
Music …
仮想シリアルコンソール
安全な暗号化・復号化
信頼できる仮想マシンモニタ(VMM)を用いてコ
ンソール入出力を暗号化・復号化
VMMは管理VMの下で動作するソフトウェア
管理VMは復号後の入力および暗号化前の出力を見
ることができない
クラウド
管理VM
ユーザVM
仮想シリアル
コンソール
ユーザ
VMM
復号/暗号化
クラウド内のVMMの信頼性
復号化・暗号化を行うクラウド内のVMMの正当性
を保証
起動時のリモート・アテステーション
起動時にVMMのハッシュ値を計算し,外部の検証サーバに送信
あらかじめ登録しておいたハッシュ値と照合して確認
ハードウェア(TPM)によりハッシュ値の改ざんを防止
実行時のVMM自身による保護
ユーザ
VM
管理VM
VMM
TPM
ハードウェア
検証
検証サーバ
コンソール入力の復号
従来は仮想シリアルデバイスが直接コンソール
バッファに入力を書き込んでいた
ユーザVMはコンソールバッファから入力を取得
SCCryptではVMMに暗号入力を渡す
VMMが復号し、コンソールバッファに書き込む
ユーザVMへの変更は不要
管理VM
クラウド
コンソール
バッファ
仮想シリアル
デバイス
入力
VMM
ユーザVM
書き込み
復号
コンソール入力の暗号化と問題点
SSHクライアントでSCCrypt用に入力を暗号化
SSHによる従来の暗号化とは別に行う
問題:仮想シリアルコンソールに接続するまでの
入力も一律に暗号化されてしまう
接続コマンドの入力
アクセス権を取得するためのパスワード入力
クラウド
SCCrypt用
暗号化
SSH
クライアント
管理VM
入力
xenconsole
?????????
Pass:****
????:****
SSH
サーバ
仮想シリアル
コンソール
仮想シリアルコンソールへの接続
SSHのリモートコマンド実行機能を利用
通常の入力とは別にコマンドを送信できる
コマンドは暗号化せずに管理VMに送信
このコマンドに限り,パスワード入力を省略できる
ように設定
ssh –t user@host sudo xenconsole vm
クラウド
非暗号化
SSH
クライアント xen
console
管理VM
SSH
サーバ
実行
コンソール出力の暗号化
VMの出力情報も同様に暗号化する
従来は仮想シリアルデバイスがユーザVMのコンソー
ルバッファから直接読み込んでいた
SCCryptではVMMを経由して取得
その際に暗号化を行う
SSHクライアントで復号
管理VM
出力
SSH
クライアント
SCCrypt用
復号
クラウド
SSH
サーバ
VMM
ユーザVM
コンソール
バッファ
暗号化
読み込み
コンソールバッファの特定
VMMは管理VMとユーザVM間の通信を監視して
コンソールバッファのアドレスを取得
VMMがユーザVM内のコンソールバッファを特定する
必要がある
従来のVMMはコンソールバッファを認識していなかった
ユーザVM起動時に管理VMがアドレスを通知
起動
管理VM
コンソール
バッファの
アドレス
通知
ユーザVM
コンソール
バッファ
チェック
VMM
仮想シリアルコンソールの鍵管理
VMの所有者のみが仮想シリアルコンソール接続
のセッション鍵をVMMに登録できる必要
クラウド管理者が登録できると暗号化の意味なし
単純な鍵交換では不十分
セッション鍵
クラウド
管理VM
ユーザVM
仮想シリアル
コンソール
ユーザ
VMM
復号/暗号化
セッション鍵
ユーザとVMの関連付け
VMとその所有者が生成した秘密IDを関連付け
ディスク暗号化により所有者のみがVMを起動可に
{VMの秘密ID,ディスク暗号鍵}をVMMに送信
鍵サーバから取得したVMMの公開鍵で暗号化
所有者のみが正常起動したVMに秘密IDを関連付け可
SSHクライアント
???
秘密ID
ディスク
???
暗号鍵
暗号化
鍵サーバ
公開鍵
接続
管理VM
起動
ユーザ
VM
SSHサーバ
ディスク
復号
秘密ID
ディスク
暗号鍵
復号
秘密鍵
VMM
VMへのセッション鍵の登録
VMの秘密IDを介してセッション鍵をVMに登録
SSHクライアントは接続のたびにセッション鍵を生成
{VMの秘密ID,セッション鍵}をVMMに暗号化して送信
秘密IDからVMを見つけ、セッション鍵を登録
秘密IDを知っている所有者しか登録できない
SSHクライアント
秘密ID
???
???
セッション鍵
暗号化
鍵サーバ
公開鍵
接続
管理VM
SSHサーバ
接続
ユーザ
VM
秘密ID
セッション鍵
復号
秘密鍵
VMM
実験
従来手法との比較
管理VMでの入出力の盗聴
SSHクライアントにおける応答時間
画面表示のスループット
実験環境
クライアントマシン
サーバマシン
マシン
Linux-3.2.0.63
Xen-4.1.3 Linux-3.2.0.63
CPU
Intel Xeon E3-1270 3.40GHz
Intel Core i7 870 2.93GHz
LAN
ギガビット イーサネット
ギガビット イーサネット
SSH
OpenSSH 6.0p1
OpenSSH 5.9p1
入出力の盗聴
コンソール入出力の盗聴
管理VMで入出力を取得,ログファイルに書き込ませる
デモ
管理VM
クラウド
盗聴
仮想シリアル
コンソール
ユーザ
VMM
復号/暗号化
ユーザVM
SSHクライアントにおける応答時間
SSHクライアントでのコンソール入力から対応する
コンソール出力を受け取るまでの時間
暗号化しない従来の接続方法と比較して0.35msの遅
延が確認された
ほとんどは暗号化・復号化のためにVMMを呼び出す
オーバヘッドと考えられる
abc
???
ユーザ
クラウド
管理VM
ユーザ
VM
abc
VMM
2.32
応答時間(ms)
入力
表示
2
1.97
0
従来
SCCrypt
画面表示のスループット
ファイルの内容を画面に表示するのにかかる時
間を測定
対象とするファイルのサイズ:9.6MB
暗号化しない従来の接続方法と比較してもほとんど差
はない
表示
入力
???
cat
クラウド 実行
管理VM
ユーザ
VM
ユーザ
cat
?
VMM
スループット(万文字/秒)
60
53.09
53.18
従来
SCCrypt
40
20
0
関連研究
FBCrypt
[Egawa et al. ‘12]
VNCを用いたVM管理において情報漏洩を防止
データ量の多いビデオ出力を暗号化するためオーバ
ヘッドが大きい
Xoar[Colp
仮想シリアルデバイスを専用のコンソールVMで動作
クラウド管理者による攻撃について考慮されていない
VMware
et al. ‘11]
vSphere Hypervisor[VMware Inc.]
VNCサーバをVMM内で動作させてリモート管理
VNCサーバが攻撃されるとVMMに影響する恐れがある
まとめ
クラウド内の仮想シリアルコンソールからの入出
力情報の漏洩を防ぐSCCryptを提案
暗号化された仮想シリアルコンソールを提供
信頼できるVMMを用いて仮想シリアルコンソールの入
出力を復号化・暗号化
SSHクライアントで暗号化・復号化
管理VM内では暗号化されていることを確認
従来の方法に比べて0.35msの遅延が発生
コンソール出力のスループットはほとんど差がない
今後の課題
強度の高いストリーム暗号への対応
現在は固定鍵を用いた簡易な排他的論理和
RC4による暗号化を実装している途中
SSH以外のリモート管理ソフトウェアに適用
例:Webベース・シリアルコンソール(Ajaxterm)
完全仮想化環境への対応
現在は準仮想化環境にのみ対応
Windowsでも動かせるようにする
鍵管理の実装