第3世代インテル® Core&trade i7 プロセッサー

5人1組のチーム制、合計30人がレビュー!

zigsowでは、インテル® vPro™ テクノロジーによる5つの機能を「5つの謎」に置き換えて、5人1組のチーム制で解き進む「冒険レビュー」を実施。「解読のストーリー」は、レビューアーに選出された30名をランダムに組み合わせて5人1組全6チームに編成し、テーマとして伝達された「謎=機能」を制限時間内で実験・検証を行うレビューです。各チームが行う実験・検証のプロセスを記したレビュー(冒険記)は自由に閲覧することができるので、インテル® vPro™ テクノロジーに対応したプロセッサーを最大限有効に使いたい時には最適です。

5人1組チームレビューの詳しい企画内容はコチラ!
インテル® vPro™ テクノロジー  第二の謎

「インテル® トラステッド・エグゼキューション・テクノロジー」とは!?

「インテル® トラステッド・エグゼキューション・テクノロジー」とは!?

信頼された実行環境構築の為の技術???

インテルのサイトでは下記のように説明されています。

-----------------------------------------------------
インテル® トラステッド・エグゼキューション・テクノロジー (インテル® TXT) は、システムの起動時にサーバーまたは PC を構成する主要なコンポーネントの動作状態を検証することで、ソフトウェア・ベースの悪意ある攻撃から IT インフラストラクチャーを保護するハードウェア・セキュリティー・ソリューションです。

インテル® TXT は、インテル® プロセッサーの中に作り上げられたインフラストラクチャーを「信頼のルート (root of trust)」 として使用し、すでに検証された基準である「既知の良好な (known good) 」シーケンスと照らし合わせることで、起動時の構成とシステムの動作状態に対する一貫性をチェックします。これにより、システムの評価を迅速に実行でき、システムの起動時に環境の変更や改ざんを試みた痕跡が検出されたら、すぐに警告を発することができます。
-----------------------------------------------------

読んでみても、さっぱりわかりません。
いろいろな資料を読み進めていった結果、いくつかわかってきたことをあげていきます。

1.必要なもの
・Intel TXTに対応したCPU
Core i5以上のCPUが該当します。ただし、Kシリーズ他一部対象外の物があります。
・Intel TXTをサポートしたチップセット
 Q77シリーズほか、Qシリーズのチップセットが該当します。
・Intel TXTをサポートしたBIOS(UEFI)
 Qシリーズのマザーボード、PCでもIntel TXTに対応していない場合もあるようです。
・TPM1.2モジュール
 Qシリーズのちっぴのマザーであれば、載っていると思います。
・SINT ACモジュール
 http://software.intel.com/en-us/articles/intel-trusted-ex... で配布。
 CPU,チップセットごとにファイルが違います。
・Intel TXTに対応したHypervisor
 Xenが対応しています。ほかにもいくつかあるようです。
・Intel TXTに対応したOS
 Linux系の物が対応しています。
・Intel TXTに対応したBootloader
 sourceforge.netでTrusted Boot(TBoot)として配布されています。
 http://sourceforge.net/projects/tboot/
・Intel TXTに対応したアプリ?
あたりのようです。

こちらに、構成をまとめたものが図示されていました。

基本的には、BootloaderからHypervisor、仮想環境のOS、アプリのすべてについて、信頼性を確認しつつ起動、実行をしていくことが出来るようになっています。信頼性の確認に必要な情報はTPMを利用して保管することで改竄などをふせぎます。

サーバー環境に関して言えば、対応している機器、CPU、OSのリストがインテルから公開されています。

しかし、クライアント環境に関しては不明。そして、レビューに使用しているDQ77MKの対応OSはクライアントOSのみ。検証までたどり着けるのか!???

インテル® vPro™ テクノロジー 実施・検証レビュー

どこまでできるか時間との勝負!?

Intel TXTに必要な環境がわかってきたところで、実地検証方法を考えねばなりません。
ここで悩みが二つ

1.Intel TXTが有効になった環境の作り方がわからない
2..Intel TXTが有効に機能している証明方法がわからない

そうはいってもめげてはいられません。
手がかりとなっているのは回答編で紹介したインテルの資料。ここに、Ubuntu Serverが対応とあります。なじみのあるWindows系のサーバーは一切なし。
そして、Intel TXT機能を利用する為にはTrusted Bootに対応した環境が必要です。Fedora系では自分で組み込む必要があるみたいですが、Ubuntuではディストリビューションに取り込まれていそうな感じ。とりあえず、サーバーをインストールしてみますが、linuxはさっぱりわかりません。
それでもがんばるしかないようです。

まずは下準備。
いままでの調査ではIntel TXTの環境は64bitに限られるとわかりました。これは、BIOS上でIntel TXTを設定するときにIntel VT-xがEnableになっている必要があること、さらに、設定と同時にIntel VT-dが設定されることからも32bitには対応していないことがうかがえます。

この時点で
1.一番下は64bitのUbuntuでXenをHypervisorに使用する
2.その上になんかOSを載せる
ここまでです。先はわかりません。
Installは画面通りに進めますが、日本語表示が出なかったりして悩みます。

Google様にお伺いを立てたところVM上にUbuntu入れてXenを設定する説明があるサイトを発見します。
さっそくそれに従ってインストールします。使用したのはUbuntuの最新版13.04です。

インストールは、CDに焼いたイメージを起動して、そのままインストーラを起動するだけです。
オプションで選択したのはロケーションとかキーボードとかとVirtualization Hostにするってところくらい。思ったよりさっくりインストールできます。
Installが完了して、GUIも設定。Ubuntuのデスクトップ画面を拝んだら次はXen。
ここで躓きます。Xenのインストールは

sudo apt-get install xen-hypervisor-4.2

みたいなのを実行してから再起動すると自動設定されるようなのですが、再起動するとHypervisorの起動後に

"no console will be available"

なんて表示が出て起動しません。原因追及しないと先に進めません。
しばらく資料を探しますが、原因がわかりませんでした。そういえば、Ubuntuは4末に新しいのが出たばかり。資料も少ないので、ひとつ前のバージョンをためします。

使ったのはUbuntu Serber 12.10。同じようにInstallをおこないます。
ロケーションに日本語を選択すると文字化けの処置をしないといけないので、今度は英語にしてインストールします。
インストール完了後、hypervisorとTbootをインストール。

実施したコマンドは

sudo apt-get install xen-hypervisor-4.1-amd64
sudo apt-get install virtinst
sudo apt-get install virt-viewer
sudo apt-get install tboot

これで、hypervisorと仮想環境のインストーラ、Trusted Bootモジュールのインストールが完了します。

この状態で、hypervisorのインストールは完了したわけですが、やはり選択して起動すると起動できません。一方、tbootを利用したbootは成功するのですが、TXTを切ってもブートするため、機能しているのかは不明な状態です。

なにか設定が必要なのかもしれませんが、さっぱりわからない状態です。
SINTはIntelのサイトからダウンロードします。CPUやチップセットによって使えるものが違います。
DQ77MK+Core i7 3770の場合は3rd_gen_i5_i7-SINIT_51.zipが必要になります。

ACM入手したらTBootの利用時に読み込めるようにしたいと考えますが、設定方法がいまいち飲み込めません。

http://blog.gmane.org/gmane.comp.boot-loaders.tboot.devel...

上に紹介したしりょうだと、grub.cfgでmoguleとして読み込めば良いようなので、記述を追加してみました。しかし、moduleを読み込めるようにしたとたんに起動が出来なくなります。
最初ファイル名を書き間違えたときは、File not foundと出て起動してきたので、バイナリは読み込んでいるようなのですが、設定か何かが必要なようです。

詰まったのでHPから配布されている設定資料を読み込みます。

どうやら、TPMの設定が必要な模様。ここでのコマンドはFedora系のようですが、とりあえず入力します。
sudo -s
ldconfig /usr/local/lib
modplobe tpm_tis
tcsd
tpm_takeownership -z
最後のコマンドで、パスワードを設定するのですが、ここでOwnershipの取得に失敗します。
そして、そろそろタイムリミット・・・・。

TBootでのテストは、完了できませんでした・・・・・。
ここを通過しても、このあとにTBootで信頼性が保てない事例を作る方法を、まだ思いついていないので、ゴールは遠いです。

TEAM REVIEW
5人1組のチームで計30人がレビュー