インテルTXTは,仮想マシンの起動時に Trusted Boot の真価を発揮し,仮想マシンがセキュアな状態であることを保証してくれるのですが,実態のない仮想マシンに対して,すべてハードウエアで処理されるため,検証が出来ませんでした.
検証の方法としては,Rootkit のマルウエアを 仮想マシンに導入し,感染していない仮想マシンとその振る舞いの差を確認することだと思います.しかし,この方法での検証は出来ませんでした.
そこで,物理マシンの Trusted Boot において,同じ原理で処理が行われているシステムドライブの BitLocker で代用検証したいと思います.
システムボリュームの BitLocker は,ドライブの暗号化と Trusted Boot を組み合わせたものになります.よって,正しい手順で起動した場合のみ,暗号化されたドライブが利用可能になり,システムを起動することが出来ます.
正しい手順とは,BitLocker 設定時と同じ TPM 上で,同じ BIOS ,同じブートローダを経由した場合になります.
データボリュームや USBメモリなどの BitLocker は,TPM を使用せず,パスワードや PIN コードでの暗号化になります.よって,システムが異なっても,パスワードがわかれば,BitLocker を解除することが可能です.
この BitLocker が利用している Trusted Boot の仕組みが,インテルTXTと同じですので,BitLocker の検証を行うことにします.
まず,Intel Trusted Execution Technology(TXT)が有効になっていることを,BIOS から確認します.
POST で”F2"を押して,BIOS 画面に入ります.
Security メニューの中に,Intel Trusted Execution Technology があります.
デフォルトでは,Disabled (無効)になっています.
これを,Enabled (有効)に変更します.
ここから,TPM を利用した BitLocker を使って,検証を進めていきます.
この Windows 8 Proの BitLocker ですが,システムボリュームのみが TPM を利用します.データドライブや USBメモリなどは,通常のパスワードによる保護となります.
その違いを,あわせて検証していきます.
①Windows 8 Proで,USBメモリを BitLocker To Go で保護する手順
まず,ハードウエア(TPM)を利用しない BitLocker であるUSBメモリの Bitlocker To Go をみてみます.
BitLocker を呼び出します.
チャーム→検索→BitLocker
設定の中に,”BitLocker ドライブ暗号化”がありますので,クリックして,起動.
BitLocker To Go で,USBメモリ(リムーバブルデータドライブ)で,BitLocker を有効にしていきます.
”BitLocker を有効にする”をクリック.
”このドライブのロック解除を方法を選択する”で,”パスワードを使用してドライブのロックを解除する”をチェックして,パスワードを入力します.
”回復キーのバックアップ方法を指定してください”で,どれでも好きなものを選びます.これは,パスワードを忘れた場合の解除方法の保険です.
”ドライブを暗号化する範囲の選択"で,どちらかを選択します.削除データなどの扱いが異なります.
"暗号化の開始"をクリックします.
今回,データがあまり入っていなかったのと,2GBメモリだったので,数秒で終了しました.
BitLocker が有効になりました.かつ,ロックが解除された状態です.
ロックが解除された状態では,エクスプローラで,普通にドライブの中身を見る事が出来ます.
一度,抜くと,ロックがかかります.
ドライブをクリックすると,BitLocker がロックを解除するためにパスワードを求めてきます.
パスワードが通ると,ドライブはロックが解除されます.
中身も見ることができます.
このUSBメモリを Windows7 マシン(他PC)に挿した場合を見てみます.
BitLocker ドライブ暗号化が表示され,パスワード入力が求められます.
パスワードを入力します.
無事,中身を見ることができました.
BitLocker ドライブの暗号化の設定画面でも,ロックの解除が出来ます.
"ドライブのロックを解除"をクリック.
ドライブをクリックすると,BitLocker がロックを解除するためにパスワードを求めてきます.
パスワードが通ると,ドライブはロックが解除されます.
今度は,Windows 8 で BitLocker To Go で暗号化したUSBメモリを,同じマシン内の Hyper-V 上の Windows 7 で確認してみます.
Hyper-V では,USBメモリをサポートしていませんので,リモートデスクトップで接続します.
Windows 8 上で解除されたUSBメモリは,仮想の Windows 7 でもそのまま読めます.ロックされた状態を,仮想の Windows 7 からは解除できませんでした.
最後に,BitLocker を無効に戻してみます.
”BitLocker を無効にする”をクリック.
”BitLocker を無効にする”をクリック.
”暗号化解除が完了しました”が表示されます.これも,数秒で終了しました.
最初の”BitLocker が無効です”の状態に戻ります.
以上の事から,USBメモリの BitLocker To Go は,パスワード暗号化の一つであり,ハードウエア(システム)には依存せず,パスワードのみで暗号化の解除が可能です.
②システムドライブを BitLocker で有効にする手順
次に,TPM を使用するシステムボリュームの BitLocker を設定してみます.
チャームから,BitLocker を検索します.
”BitLocker ドライブの暗号化”をクリック.
オペレーティングシステムドライブの項で,”BitLocker を有効にする”があります.
念のため,TPM が有効であることを確認するため,左ペインの”TPM の管理"をクリック.
コンピューターのトラステッドプラットホームモジュールの管理(ローカルコンピューター)が開きます.
中段の"状態"が,”TPMは 使用する準備が出来ています”を確認してください.もし,準備が出来ていなければ,右ペインの”TPM を準備する”を実行してください.
BitLocker ドライブの暗号化の画面に戻って,オペレーティングシステムドライブの"BitLocker を有効にする”をクリック.
”回復キーのバックアップ方法を指定してください”で,いずれかを選択します.
システムドライブの場合,”Microsoft アカウントに保存する”が一番確実だと思います.ただし,ログインを Microsoft アカウントで行っておく必要があります.
※重要:ファイルに保存するを選んだ場合,BitLocker で保護するドライブの中に保存すると役に立ちません.
今回,Microsoft アカウントに保存しました.保存後,回復キーが保存されましたと表示されます.
”ドライブを暗号化する範囲の選択"で,どちらかを選びます.
”システムドライブ全体を暗号化する”ほうが安全です.
”このドライブを暗号化する準備が出来ましたか?”で,”BitLocker システムチェックを実行する”をチェックして,続行をクリック.
”コンピューターを再起動する必要があります”と再起動を要求されます.
再起動させると,BitLocker による暗号化が始まります.
再起動後,”暗号化を実行中です”とタスクトレイからメッセージが現れます.
”BitLocker ドライブの暗号化”の画面を確認しても,暗号化中であることがわかります.
暗号化中のタスクマネージャーです.
ドライブへのアクセスのみが高負荷ですが,CPU負荷は非常に低いです.
暗号化は15分くらいで,終了しました.
”BitLocker ドライブ暗号化”画面で確認すると,ガキが解除されているマークが現れます.
ここで,再度暗号化の解除をしてみます.
”BitLocker を無効にする”をクリック.
”BitLocker が解除中です”と表示されます.
数分で解除が終了しました.
”BitLocker ドライブ暗号化”画面で確認すると,ガキマークが無くなっています.
システムドライブを Bitlocker で暗号化したことにより,パフォーマンスがどれくらい変わっているのか,CrystalDiskMark で調べてみます.
確かに,BitLocker による暗号化を有効にした方が,Read/Write 共に遅くなっていますが,Readで95%,Writeで92%ですから,その差は僅かであり,体験的には全く感じません.
Trusted Boot は,後ほど検証します.
③ TPM による暗号鍵
上記の通り,2つの BitLocker を検証してみましたが,違いは何処にあったかのでしょうか?
どちたも,BitLocker による暗号化でした.
唯一の違いは,TPM を利用した場合,パスワードの入力を行わなかったことにあります.TPM 自体がセキュリティチップであり,暗号鍵の作成と格納を自動的に行ってくれました.
人間が介在するといろいろな面で,セキュリティ上の問題を起こします.しかし,TPM によるBitLocker では,暗号鍵が自動生成され,Microsoft アカウントに保存しておくと,非常にセキュアな状態を維持できます.
ここまでは,BitLocker による暗号化,つまり,PC のセキュリティ面の検証でした.
しかし,TXT は,Trusted Boot を提供するための技術であり,その面をこれから検証していきます.
④他のPCで起動させるとどうなるか?
BitLocker で暗号化したシステムドライブを,他のPCで起動ドライブとして使ってみます.
いきなり,BitLocker の回復要求が出ました.
システムが異なる状態では,正規の起動ではないと判断されます.
つまり,ハードウエアが異なると,全く手が出せない状態になりました.
⑤ BitLocker で暗号化したドライブを他のPCに認識させるとどうなるのか?
BitLocker で暗号化したシステムドライブを,他のPCでデータドライブとして認識させるとどうなるのか,確認してみます.
Windows 7 マシンに接続します.BIOS で確認しておきます.
OS(Win7)は普通に起動出来ます.
エクスプローラーで見てみます.
鍵のかかったローカルディスクと認識されています.
開いてみます.
回復キーの入力が求められました.
回復キーを入力するを選んでみます.
自動生成された暗号キーを知らない限り,ロックが解除できません.
システムドライブだけ抜き取られても,セキュアな状態は確保されています.
⑥BIOS を初期化するとどうなるのか?
BitLocker で暗号化したシステムドライブがある状態で,BIOSの初期化を行った場合,どうなるのかを検証してみました.
TPMに格納された暗号キーが初期化されてしまうため,起動しなくなるはずです.
予想したとおり,起動せず,BitLocker の回復キーの入力が求められました.
別のPCで,Microsoft アカウントにログインして,回復キーを表示させ,入力することで,無事OS起動させることが出来ました.
このことから,OS起動時にトラストチェックがきちんと働き,セキュアな状態を維持していることがわかります.
しかし,BIOS の変更でシステムが起動しなくなりますので,BitLocker を有効にしたシステムでは,安易にBIOSのアップデートなどは行わないことが必要になります.
アップデートを行う場合には,無効にするなどの対応が必要です.
⑦ハードウエアの構成を変更するどうなるのか?
BitLocker 設定時とハードウエア構成をどれくらい変えるとダメなのかを検証してみました.
確認した中で,システムの起動が出来なかったのは,起動ドライブのSATAポートを変更(1→2)した場合と,システムドライブをデュプリケーターによりそっくりクローン化したドライブを接続した場合でした.
クローンドライブの場合,デュプリケーターはセクター情報を完全にコピーしますので、純粋にシステムドライブのハードウェアだけが違う環境になります.この場合でも,正規の起動(Trusted Boot)とは異なると判断された事になります.
SATAポートを変更した場合には,全く同一のドライブにも関わらず,正規の起動(Trusted Boot)とは異なると判断された事になります.
他のハードウエア構成は問題ありませんでしたので,普段はあまり気にする必要はないと思われます.
BitLocker を使用した Trusted Boot も,BitLocker を設定した状態とは異なるシステムでは,起動しないことが検証できました.
⑧まとめ
以上が,BitLocker を利用した インテル トラステッド エグゼキューション テクノロジー(TXT) の検証の代用です.
BitLocker 設定時と同じシステム状態であれば,起動するだけで自動的に暗号は解除され,使えるようになり,OSへのログインパスワードのみが求められます.ユーザは全く意識する必要はありません.
しかし,BitLocker 設定時と異なるシステム状態(PC変更,起動ドライブ変更,BIOS 初期化など)すると,Trusted Boot ではない状態(改ざんの可能性がある)と判断され,起動前に BitLocker の解除が求められました.
すなわち,普段はなにも意識することなくセキュアな状態を維持し,起動プロセスの改ざんやハードウエアの変更(どちらも意図的な変更を含む)があった場合には,システムを起動させません.
これが,Trusted Boot の本質であり, インテル トラステッド エグゼキューション テクノロジーも同様な処理を行っていると判断されます.
ただし,今回の検証においては,直接インテル トラステッド エグゼキューション テクノロジー 自体を検証することは出来ませんでした.
⑨ TPM の管理(おまけ)
TPM の管理画面で,管理メニューを見てみます.
右ペインの2番目,”TPM をオフする”をクリックすると,そのまま,TPM がオフになります.
オンに戻すには,一番上,”TPM を準備する”をクリックします.
再起動を要求されます.再起動させます.
再起動後に,”TPM の準備が出来ました”の表示が現れます.
この中に”TPM 所有者パスワードを保存する”がありますので,念のため安全な場所にバックアップをとっておくのが良いと思います.
ちなみに,所有者パスワードの意味は,こちらです.
TPM 管理画面に戻ります.
左ペインに”コマンド管理”があります.これをクリックしてみます.
ここに,TPM チップの動作がわかります.
最後に,TPM のない PC でシステムドライブの BitLocker 操作をみてみます.
HP製のノートPCで,Windows 8 Pro にアップグレードしています.
BitLocker ドライブの暗号化を起動します.
DQ77MKと同じ画面です.
システムドライブを,BitLocker を有効にしてみます.
プラットホームモジュールを使用できませんと言われてしまいました.
最初の画面に戻って,TPM の管理をみてみます.
互換性のある TPM が見つかりませんと言われました.
システムドライブのBitLocker 処理は,TPM チップが必要であることがわかりました.