SRTM and DRTM

残念ながら Trusted Computing 発祥?の PC Platform でまともなTrusted Bootを見たことがない。PC以外のPlatformでのTrusted Bootは結構作ったし、今も作っている。結構完璧だと思う。そもそも、Trusted Boot自体は技術的にそんなに難しくない。
では、なぜPCではうまくいかないのか?


アーキテクチャと実装が腐っているから」


まず、BIOSの仕様があるようでない。実装もひどい。
なんで?


「とりあえず、起動できればいいじゃん」


たしかに、起動してしまえば、BIOSもIPLもおさらばである。PCはHWもSWも寄せ集めで動く凄くOpenなPlatformだが、良くも悪くもいい加減。で、IPLといえばGRUBである。一応、GRUBのTrusted Bootのパッチは私たちが公開した版と、ドイツのSirrixAG版がある。GRUBのコミュニティ(FSF)はアンチTrusted Computingなので、公式にはTPMを利用する機能のサポートを行わない。でも、第三者がパッチを当てて配布することはGPLなので可能である。しかしながら、LinuxDistroがこうしたパッチをサポートすることは、かなり難しい。
なんで?


「起動できなくなるPCが多数発生するから」


悲しいが、事実である。(もしかしたらMSがBitLockerをUltimateでしかサポートしないのも同じような理由かもしれない)BIOSのTrusted Boot対応はまちまちで、動くものもあれば、動かないものもある。私が知る限り(調べたのは数年前だけど)、TCGの仕様に忠実なBIOSPanasonicだけであった。IBM/LenovoもHPも詳しく調べると微妙なところがあった。
なんで?


「誰も使わないので」


orz...
以上はSRTMであるが、最近はDRTMもある。
DRTMを使うにはIntelOSSでだしているtbootを使う(AMDもDRTM出来るはずだけど、現物は見たことがない)。ただし、SMMの問題があるので、SRTMによるBIOSの計測とも併用して検証するべきであろう。あんまり美しくないけど、(そもそもPCは美しくないので)、SRTMでBIOSを計測して、TrustChainは一旦切れるけど、別途DRTMでOSを計測するのが現実的と思われる。


肝心のTBOOTは最新のLinuxでないとうまく動かないそうだが、不幸な場合にはPCが再起不能になるという。この話を聞いて、怖くてつかえなくなってしまった。あと、チップセット毎にSINIT ACモジュールを配置しないといけないのもちょっと面倒だ。


復習)PC Platfrom以外だと簡単なんだよ>Trusted Boot