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なので可能である。しかしながら、LinuxのDistroがこうしたパッチをサポートすることは、かなり難しい。
なんで?
「起動できなくなるPCが多数発生するから」
悲しいが、事実である。(もしかしたらMSがBitLockerをUltimateでしかサポートしないのも同じような理由かもしれない)BIOSのTrusted Boot対応はまちまちで、動くものもあれば、動かないものもある。私が知る限り(調べたのは数年前だけど)、TCGの仕様に忠実なBIOSはPanasonicだけであった。IBM/LenovoもHPも詳しく調べると微妙なところがあった。
なんで?
「誰も使わないので」
orz...
以上はSRTMであるが、最近はDRTMもある。
DRTMを使うにはIntelがOSSでだしているtbootを使う(AMDもDRTM出来るはずだけど、現物は見たことがない)。ただし、SMMの問題があるので、SRTMによるBIOSの計測とも併用して検証するべきであろう。あんまり美しくないけど、(そもそもPCは美しくないので)、SRTMでBIOSを計測して、TrustChainは一旦切れるけど、別途DRTMでOSを計測するのが現実的と思われる。
肝心のTBOOTは最新のLinuxでないとうまく動かないそうだが、不幸な場合にはPCが再起不能になるという。この話を聞いて、怖くてつかえなくなってしまった。あと、チップセット毎にSINIT ACモジュールを配置しないといけないのもちょっと面倒だ。
復習)PC Platfrom以外だと簡単なんだよ>Trusted Boot