* TPM [#m592de4a] ThinkPad なんかに入っているセキュリティチップのアレの話. ぐぐってみても日本語では大してマトモな説明が無い. 教えてもらった所では http://www.jiima-net.jp/tcg/H17guideline.pdf というあたりか. まず,TPM デバイスの機能としては - 耐タンパー性を持ったチップ - 鍵の保存が可能 - 内部にプロセッサを持っていて - ハッシュ計算アルゴリズムや暗号化アルゴリズムを内蔵している というようなチップ. チップ自体のセキュリティはかなりのレベルのようで,これ自体に疑問は無い. TPM チップの内部でセキュリティが保たれていても,鍵を取り出すところで横からかっさらわれてしまっては意味が無い. いくら厳重な金庫があったとしても,泥棒の目の前で開け閉めしてはどうにもならない. で,「トラステッド・ブートストラップ」という話になる. 要するに + 信用の起点としてブートストラップコード (BIOS) と TPM チップを仮定して + チェインローダ (linux でいえば lilo/grub) が改竄されていないか検証 + チェインローダはカーネル (bzImage) が改竄されていないか検証 … というプロセスのことだそうで,「ともだちのともだちはみんなともだちだ」という考え方のようである. 確かに,それがロードされた時点では「改竄されていない」ということは保証できそうなんだけど,その後はどうなんだろうなぁ. 例えば linux なら hack code を仕込んだカーネルモジュールをロードすれば,カーネルコードは改竄できるし,/dev/mem あたりからいじることも可能である. Windows あたりでも,デバイスドライバでそういうことできるんじゃないかな. で,「ともだちの輪」は鍵を扱うアプリケーションまで及ぶのだけれど,ここでも > デバッガを使って横から鍵を盗めるんじゃないか という疑問もある. まぁ,オレごときが考える疑問に対しては対策はあるんだろうけど,とどのつまり > 「信頼の輪」に入っているプログラムは完全無欠であることが要求される ような気がする. 特に OS に関しては,前記のようなバックドアが(バグを含めて)一切存在しないことが要求されるのではないか. 現在のソフトウェア工学のレベルではそういう要求は非現実的だし(実現できてりゃ世の中のソフトウェアからはバグは追放されている),そう考えると TPM で実現されるセキュリティというのも「絵に描いた餅」のレベルなんじゃないかという気もしてくる.