http://www.secureos.jp/index.php?events/jsosjk07

忠鉢洋輔(ちゅうばち)さんによるTrusted Computingのおはなし。あまりつっこんだ話ではなかったが、こっちも素人なのでちょうどよかった。

trusted computingとはなにか?trusted(信頼できる)とは、いかなる状況でも期待したふるまいをしつづけること。

まずTPM(Trusted Platform Module)というものがチップセットにくっついている。http://ja.wikipedia.org/wiki/Trusted_Platform_Module こいつにはCPU,register,RAM,NVRAM,暗号化エンジンが載っていて、BIOSやらMVMM(Measured VMM)やらOSやらのハッシュ値が格納されている。これらハッシュ値を確認することで、

正しいBIOS、正しいboot loader、正しいVMM、正しいOSが立ち上がったことを確認できる。TPMがroot of trust(信頼のもと)とよばれるものの実体になる。

マルウェアからOSに対する攻撃はメモリ保護はMVMMで防ぐ。VMMで防御する方がより困難なのでOSで対処するより有効。

TXT(Trusted Execution Technology)をつかって、あとからVMMを挟み込むという攻撃手段もあるらしい。

DMAをつかって、隣のVMMに対してメモリの読み書きをするという攻撃手段もある。キーボードのファームウェアをハックしてキーロガーにするという攻撃手段まであるらしい。

TPMモジュールは2008年の段階で50%以上のPCに塔載されている。

セキュアOSのポリシをTPMに格納するようにするといいかもしれない。TPMで保護できる情報量は無限らしい。というのは、マスターキーだけをチップの中において、保護したいデータは外部ストレージに置いて、暗号/復号をチップにやらせればよいから。

KNOPPIXのtrusted computingがうまく動かなかったという質問に対しては、いまはだいぶ動くようになっているはずとのこと。(BIOSを選ぶみたいだ)

BIOSを保護するのはCRTMという書き換え不可能なところがあって、そこで保証するらしい。書き換えるには特別な(非公開な?)手続きが必要だとか。

アプリケーションが、環境がtrusted computingであるのを確認する方法は?という質問に対しては、1つはネットワークを通じて第三者に検証してもらう方法、もう1つは手元に信頼できるデバイスを用意しておいて、その場で通信(QRcodeとか)して確認する方法があるらしい。

つづいてPGcon2010の報告。PostgreSQLにセキュリティ・チェックのフックを用意して、チェックルーチンをモジュール化しようという話がなんとか通ったらしい。v9.1が目標とのこと。