Physical attack against the TPM

先日のBlackHatでTPMを攻撃した話の発表があったようです。

以前、横浜国立大学の松本先生がどこかの会社のTPMをサイドチャンネル攻撃でハックされていましたが、こちらはガチで物理攻撃のようです。


-関連URLs
http://gcn.com/articles/2010/02/02/black-hat-chip-crack-020210.aspx
http://www.darkreading.com/vulnerability_management/security/encryption/showArticle.jhtml?articleID=222600843
http://news.yahoo.com/s/ap/20100208/ap_on_hi_te/us_tec_crypto_chip_cracked


-どうやったの?

攻撃したのは、Christopher Tarnovsky 氏、これまでいろんなチップをハックしてきた人のようです。
チップを裸にして、回路を解析、内部バスをプローブしてデータを読み取ります。

SmartCardをハックする別の記事がWiredにあるので、参考になると思う。
ビデオでわかりやすく説明しています。

http://www.wired.com/politics/security/news/2008/05/tarnovsky#

こうした攻撃を難しくする回路技術もありますが、攻撃者とのイタチごっこでもあります。


-TPMは安全でないのか?

いいえ、通常の利用では十分に安全と言えます。

現在利用されているすべてのセキュリティチップは上記のような攻撃には無力です。こうした攻撃に耐えるセキュリティモジュール(FIPS 140-2 Level4)もありますが、値段は数十万円から数百万円します。これに対して、セキュリティチップは数ドル以下の値段ですので、物理攻撃に対する耐性(耐タンパー性)には限界があります。要は、攻撃に必要なコストと、攻撃で得られる対価が問題になります。

通常、セキュリティチップは、その攻撃がビジネスとして経済性が無いようなユースケースで利用されています。例えば、スイカを攻撃して3000円盗むのに、300万円かかるのなら、攻撃する金銭的モチベーションは無いと言えます。オバマ大統領や大企業の重役のPCならこうした攻撃で、機密情報を盗む事を考えるかもしれませんが、庶民のPCでは割りに合わないのが実情だと思います。また、今回の攻撃は誰でもが真似できる種類の攻撃ではありませんし、解析ツールが闇市場で出回る類でもありません。


また、TPMなどの公開鍵暗号を利用したセキュリティチップは個別のチップの攻撃しかできません。これを、Break Once Run Once (BORO)と呼びます。これに対し、共通鍵ベースの場合は、Break Once Run Everywhere (BORE)とよばれ被害が大きくなります。

TPMやTrusted Computingは主にソフトウェアレベルの攻撃からシステムを守る事を目的にしています。ソフトウェアやネットワークレベルの攻撃はスケールするので、攻撃が成功した場合には、大規模な被害につながりやすく、社会的にも大きな問題となりえます。Tarnovsky 氏がどんなに器用でも100万個のTPMから鍵を盗むことは、一生かかっても無理ですが、もしWindowsGmailの中のソフトウェアにヤバイ脆弱性があれば、それを運良く見つけたアタッカーが何百万のアカウント情報を一晩で取得することが可能かもしれません。


TCGからこの攻撃に対してコメントが出ています。
http://www.trustedcomputinggroup.org/community/2010/02/black_hat_conference_report_about_tpms


TPMの場合、TPMをクリアするとSRKと呼ばれる暗号鍵が破棄されてしまいます。PCを廃棄する際は、TPMのクリアを行えば、Tarnovsky 氏でもお手上げです。


-ハッキングの正しい使い方

データのリカバリーサービスやフォレンジックTPMで暗号化されたデータを取り出す際にこうした技術は利用可能です。然るべき設備を持った組織であれば、セキュリティチップをハックすることはそんなに難しい事ではありません。こういったハッキングはEthical Haking (倫理ハッキング)と呼びます。ただ、上記のようなリバースエンジニアリングを伴なうクラックを勝手に行うことは犯罪となる可能性があるので、注意が必要です。