説明

モニタを用いてTPMを常に“オン”にロックする方法及びシステム

コンピュータは、知られたモニタを検証するのに用いられる信頼された環境を含むことにより、攻撃から保護される。モニタは、コンピュータの状態が一群の条件を遵守しているかを決定するのに用いられる。条件とは、利用毎支払いのクレジットなどの利用規約や、コンピュータがウィルス防御など特定のソフトウェアを実行していることや、無権限の周辺機器が取り付けられていないことや、必要なトークンがあることなどである。モニタは、ウォッチドッグ回路に直接にまたは信頼された環境を通して信号を送る。ウォッチドッグ回路は、決められた期間内に信号を受信しない場合、コンピュータの利用を妨害する。

【発明の詳細な説明】
【背景技術】
【0001】
パーソナルコンピュータなどのコンピューティング・デバイスに用いられるTPM(Trusted Platform Module)が知られている。TPMの目的は、コンピュータにアイデンティティを提供し、トランザクションや、アプリケーションやメディアのライセンシングや、ユーザデータの保護や、特殊な機能に関するサービスのセキュリティを確保することにある。
【発明の開示】
【発明が解決しようとする課題】
【0002】
TPMは市販されており、例えば、STMマイクロエレクトロニクスのST19WP18などから取得可能である。TPMは鍵を格納し、これらの鍵を用いてアプリケーションプログラムや、BIOS情報や、アイデンティティの認証をする。しかし、TPMの利用は任意のものであり、現行の及び今後予測される基準及び実施においては、コンピューティング・デバイスにある状態(condition)を要求するために利用することはできない。ビジネスモデルには、コンピュータがコンピュータの所有者、供給者の直接のコントロール外であると仮定するものもあり、例えば使用毎支払い(pay-per-use)ビジネスモデルである。このような場合においては、TPMサービスを回避することが可能であり、もし回避が起きると、ビジネスに望ましくない悪影響が及ぼされることがある。
【課題を解決するための手段】
【0003】
TPMは、コンピューティング・デバイスに状態を強いる監視プログラムを認証するために用いることができる。TPMに注入されたまたは書き込まれたオーナー鍵は、オーナーによって許可されたモニタが作動可能であることを要求するために用いられる。その代わり、許可されたモニタは、その認証されてステータスにより、TPMのリソースにアクセスすることができる。このようなTPMのセキュアなリソースとは、例えば汎用入出力(GPIO)ポートである。GPIOで受信された信号によってウォッチドッグタイマが一定計時時間以内にリスタートされない限り、該一定計時時間後にコンピュータをリセットするように、簡単なウォッチドッグタイマを設定してもよい。
【0004】
コンピュータをこのように設定することにより、知っているモニタが機能していることを確実にするためにTPMを用い、モニタとTPMとが不能化しておらず、かついたずらをされないことを確実にするためにウォッチドッグタイマを用いることができる。
【発明を実施するための最良の形態】
【0005】
下記の文章は、数々の異なる実施例を詳述するものであるが、該記載の法的範囲はこの開示の最後に記す特許請求の範囲の文言によって定義されるべきであることが理解されよう。可能な実施形態の全てにつき記載することは不可能ではなくても非現実的であるので、本詳述は、例示としてのみ解釈されるべきであり可能な実施形態の全てを記載するものではない。現在の技術または本特許の出願日の後に開発される技術を用いて、本特許請求の範囲に該当する数多くの代替実施例が実施され得る。
【0006】
また、本特許において「ここで用いられる『__』という用語は、…を意味するとここにおいて定義される」という文章またはこれに類似した文章によって明示的に定義されない限り、用語の明らかなまたは通常の意味以上にその用語の意味を、明示的にも暗示的にも限定することを意図するものではなく、如何なる用語も、本特許のどの部分(特許請求の範囲を除く)に書かれた如何なる記載によってでも限定的に解釈されるべきではない。本特許の終わりの特許請求の範囲に記載された用語が、如何なる用語であっても一つの意味に一貫して本特許内で言及される限りにおいては、読者を混乱させないように明確さのためになされたものであって、その特許請求の範囲の用語を暗示または他の方法によってその一つの意味に限定することを意図するものではない。最後に、特許請求の範囲の要素が、構造を記載することなく「手段」という言葉及び機能によって定義されているのでなければ、如何なる特許請求の範囲の要素も、米国法35USC112条の第6パラグラフを元に解釈されることを意図するものではない。
【0007】
発明の機能の大部分及び発明の理論の多くは、ソフトウェアプログラムやインストラクションやASIC(Application Specific Integration Circuit)などの集積回路(IC)と共に、またはこれらによって最良に実施される。通常の能力を有する者は、ここに開示する概念や理論を手引きとすることにより、利用可能な時間や現在の技術や経済的状況などによって動機付けられる多大であるかもしれない努力と多くの設計選択肢にも拘らず、そのようなソフトウェアインストラクションやプログラムやICを最小の実験により作成することが十分に可能であることが期待される。従って、本発明に基づく理論、概念をあいまいにするリスクを最小化し、簡潔化するため、このようなソフトウェア、ICに関する更なる議論は、仮にあるとすれば、望ましい実施形態の理論及び概念に比して必要なものに限定されている。
【0008】
図1は、ダイナミックソフトウェア提供システムを実施するのに使われるネットワーク10を図示している。ネットワーク10は、インターネット、バーチャルプライベートネットワーク(VPN)、または一つまたはそれ以上のコンピュータ、通信デバイス、データベースなどを互いに通信可能に接続する如何なる他のネットワークであってもよい。ネットワーク10は、パーソナルコンピュータ12とコンピュータ端末14とに、イーサネット(登録商標)接続子(Ethernet(登録商標) connection)16と、ルータ18と、地上線20とを介して接続されている。一方、ネットワーク10は、ラップトップコンピュータ22とパーソナルデジタルアシスタント24とに、ワイヤレス通信局26とワイヤレスリンク28とを介して接続されている。同様に、サーバ30は通信リンク32を用いてネットワーク10に接続され、メインフレーム34は別の通信リンク36を用いてネットワーク10に接続されている。
【0009】
図2はコンピューティング・デバイスをコンピュータ110として図示する。コンピュータ110の構成要素には、処理部120と、システムメモリ130と、システムバス121とが含まれるが、これらに限定されるものではない。システムバス121は、システムメモリを含む様々なシステム構成要素を処理部120に結合する。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、多数のバスアーキテクチャのいずれかを用いたローカルバスを含む、いくつかの種類のバス構造のいずれであってもよい。限定でなく例として、そのようなアーキテクチャにはISA(Industry Standard Architecture)バスと、マイクロチャネルアーキテクチャ(MCA)バスと、EISA(Enhanced ISA)バスと、ビデオエレクトロニクス標準協会(VESA)ローカルバスと、メザニンバスとしても知られているPCI(Peripheral Component Interconnect)バスとを含む。
【0010】
コンピュータ110は、多様なコンピュータ読み込み可能なメディアを典型的に含む。コンピュータ読み込み可能なメディアは、コンピュータ110がアクセス可能な如何なる利用可能なメディアでもよく、揮発性及び不揮発性メディア、取り外し可能及び取り外し不能メディアの両方を含む。限定でなく例として、コンピュータ読み取り可能メディアは、コンピュータ格納メディアと通信メディアとを含む。コンピュータ格納メディアは、コンピュータ読み込み可能インストラクションやデータ構造やプログラムモジュールまたは他のデータなどの情報の格納のための如何なる方法または技術によって実施され得る、揮発性及び不揮発性メディア、取り外し可能及び取り外し不能メディアをも含む。コンピュータ格納メディアは、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、DVDまたはその他光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気格納デバイス、または望みの情報を格納しコンピュータ110でアクセスし得るその他の如何なる媒体をも含むが、これらに限定されるものではない。通信メディアは、典型的には、コンピュータ読み取り可能インストラクション、データ構造、プログラムモジュールまたは他のデータを、搬送波または他のトランスポート機構などの変調されたデータ信号により実現し、如何なる情報伝達メディアをも含む。「変調されたデータ信号」とは、信号中に情報を符号化するようにその特徴の一つまたは複数を設定または変更した信号を意味する。限定でなく例として、通信メディアは有線ネットワークまたは直接有線接続などの有線メディアや、音響、ラジオ周波数、赤外線及び他の無線メディアなどの無線メディアを含む。コンピュータ読み取り可能なメディアの範囲には、上記の如何なる組み合わせも含まれるべきである。
【0011】
システムメモリ130は、リードオンリーメモリ(ROM)131やランダムアクセスメモリ(RAM)132などの揮発性及び/または不揮発性メモリの形をとるコンピュータ格納メディアを含む。スタートアップの間などに、コンピュータ110内の要素間の情報伝達を助ける基本ルーチンを含むベーシックインプット/アウトプットシステム(BIOS)133は、典型的にはROM131に格納されている。RAM132は、処理ユニット120によってすぐにアクセス可能または処理ユニット120に現在用いられているデータ及び/またはプログラムモジュールを典型的には含む。限定でなく例として、図1はオペレーティングシステム134、アプリケーションプログラム135、その他プログラムモジュール136、プログラムデータ137を図示している。
【0012】
コンピュータ110は、その他の取り外し可能及び取り外し不能、揮発性及び不揮発性コンピュータ格納メディアも含んでいてよい。例としてのみ、図1は、取り外し不能不揮発性磁気メディアに読み書きするハードディスクドライブ141と、取り外し可能揮発性磁気ディスク152に読み書きする磁気ディスクドライブ151と、CDROMや他の光メディアなどの取り外し可能不揮発性光ディスクに読み書きする光ディスクドライブ155とを図示している。例示のオペレーティング環境において用いることのできる他の取り外し可能及び取り外し不能、揮発性及び不揮発性コンピュータ格納メディアには、磁気テープカセット、フラッシュメモリカード、DVD,デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含まれるが、これらに限定されるものではない。ハードディスクドライブ141は、典型的にはインタフェース140などの取り外し不能メモリインタフェースを通してシステムバス121に接続されており、磁気ディスクドライブ151と光ディスクドライブ155は、典型的にはインタフェース150などの取り外し可能メモリインタフェースによりシステムバス121に接続されている。
【0013】
上述され図2に図示されたドライブとそれらに関連するコンピュータ格納メディアは、コンピュータ読み取り可能なインストラクション、データ構造、プログラムモジュール、及びコンピュータ110のためのその他データの格納部を提供する。図1では、例えば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、その他プログラムモジュール146、プログラムデータ147を格納するものとして図示されている。これら構成要素は、オペレーティングシステム134、アプリケーションプログラム135、その他プログラムモジュール136、プログラムデータ137と同じでも異なっていてもよいことに注意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他プログラムモジュール146、プログラムデータ147は、異なるコピーであることを少なくとも示すために異なる番号を与えられている。ユーザは、キーボード162と、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161となどの入力デバイスによって、コンピュータ20にコマンドや情報を入力する。その他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれる。これらの、またその他の入力デバイスは、システムバスに結合されたユーザインタフェース160を介して処理ユニット120に接続されていることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)などの他のインタフェースやバス構造によって接続されていてもよい。陰極線管191または他の種類のディスプレイデバイスも、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続されている。モニタに加えてコンピュータはさらに、外部周辺インタフェース190を介して接続されたスピーカ197やプリンタ196などの、他の周辺出力デバイスを含んでもよい。
【0014】
コンピュータ110は、ネットワーク化された環境の中で、リモートコンピュータ180などの一つまたは複数のリモートコンピュータへの論理接続を用いて作動する。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードでよく、図1にはメモリ格納デバイス181しか図示されていないものの、典型的には、コンピュータ110に関連して上述された要素の多くまたは全てを含んでいる。図1に図示された論理接続は、構内通信網(LAN)171と、広域通信網(WAN)173とを含むが、他のネットワークをさらに含んでも良い。このようなネットワーキング環境は、オフィスや企業ワイドコンピュータネットワーク、イントラネット、インターネットにはよく見られる。
【0015】
LANネットワーキング環境で用いられるとき、コンピュータ110はネットワークインタフェースまたはアダプタ170を介してLAN171に接続されている。WANネットワーキング環境で用いられるとき、コンピュータ110は典型的には、モデム172、またはインターネットなどのWAN173上で通信を設立するための他の手段を備えている。モデム172は、内蔵でも外付けでもよく、ユーザインプットインタフェース160または他の適当な機構を介してシステムバス121に接続されている。ネットワークされた環境においては、コンピュータ110に関連して図示されたプログラムモジュール、またはその一部は、リモートメモリ格納デバイスに格納されていてよい。限定としてではなく例として、図1にはメモリデバイス181に存するリモートアプリケーションプログラム185が開示されている。
【0016】
通信接続170、172は、デバイスが他のデバイスと通信できるようにする。通信接続170、172は、通信メディアの一例である。通信メディアは典型的には、搬送波または他の伝送機構のような変調されたデータ信号中のコンピュータ読み取り可能なインストラクションや、データ構造や、プログラムモジュールや、他のデータを具現し、如何なる情報配達メディアをも含む。「変調されたデータ信号」とは、信号中に情報を符号化するようにその特徴の一つまたはそれ以上を設定または変更した信号である。限定としでではなく例として、通信メディアには、有線ネットワークまたは直接有線接続などの有線メディアや、音響、RF,赤外線及びその他の無線メディアなどの無線メディアが含まれる。コンピュータ読み取り可能なメディアには、格納メディアと通信メディアとが共に含まれる。
【0017】
下記に詳述する、TPM125または他の信頼された環境は、データと鍵を格納し、実行可能なコードとデータを検証する。TPMの仕様書は、セクション4,5,2,1に「システム初期化の一部として、プラットフォームの構成要素の計測及び設定が行われる。計測によって安全でない設定を検知することはできず、さらに初期化プロセスの継続を防止するための作用を行うこともしない。この責任は、オペレーティングシステムなどの適当なレファレンスモニタが負う。」と記している。TPMは、行使ツールとして定義されていないため、以下に記す追加事項は一般的なTPMを補足する。
【0018】
ウォッチドッグ回路126は、時間を計測し、期限が切れるとコンピュータ110のオペレーションを妨害するシグナル127をトリガするよう設定されている。この妨害は、コンピュータ110を再起動させる、システムリセットであってよい。この妨害により、システムバス121または周辺バスにあるデータが遮断される。ウォッチドッグ126が、コンピュータ110のオペレーションを妨害しないよう、期限をリセットし計時処理をやり直す信号が通信接続128上に要求される。図2に示すように、ウォッチドッグタイマリセット信号が通信接続128上に伝播される。以下に詳述するように、TPM125は、モニタプログラムからの信号に応答してウォッチドッグタイマリセットを開始してもよい。以下に記すステップは、TPM125とウォッチドッグ回路126との組み合わせを用いることによって、特定の希望のモニタが存在し作動していることを確実にする手助けとして用いられる。
【0019】
図3には、図2のような代表的なコンピュータの中の機能層の階層的な表現を示す簡単化されたブロック図が説明及び記載されている。TPM202は、基礎入出力構造(BIOS)204の下に存するハードウェアである。TPM202は、コンピュータおよびBIOS204などの高層のオペレーションにとってのリソースとして機能する。BIOSはモニタ204を作動させる。モニタ206は、オペレーティングシステム208の下のモニタレベル210に存する。モニタ206は、TPM202にアクセスしそのリソースを用いて高レベルのエンティティのオペレーションに関するポリシーを実行する。オペレーティングシステム208は、コンピュータ110の主要な機能をサポートし、(最初のブートストラップ処理ハンドオーバー制御の後は)通信、ユーザ入出力、ディスク及び他のメモリアクセス、アプリケーション開始などの責任を持つ。オペレーティングシステムは、TPM202に直接アクセスしTPM202を使用することもできる。図示されているように、第1および第2アプリケーション212、214はオペレーティングシステム208上で実行される。場合によっては、モニタはオペレーティングシステム208及びアプリケーション212、214の両方に関連するポリシーを行使する。例えば、アプリケーション214がディスク216から実行される前に、オペレーティングシステムは、線218で示されるようにライセンスの状態をチェックし、アプリケーション214が与えられた実行開始基準を満たしているかを判断する。モニタ機能を用いた、実行開始及び以後のアプリケーションのメータリングの基準は、代理人事務所番号30835/40476の2004年12月8日出願の米国特許出願「進行型支払い(Pay-As-You-Go)コンピュータ及び動的相対的価格付け(Dynamic Differential Pricing)の方法」に詳細に述べられている。簡単に言うとモニタ206は、例えばアプリケーションプログラムやユーティリティやコンピュータリソースを、進行型支払いまたは前払いのシナリオにおいて計測しメータするために用いられる。
【0020】
図6を簡単に参照して、TPM202についてより詳細に述べる。TPM202は、揮発性及び不揮発性のメモリを共に有する内蔵メモリ502を有し、そのうちの少なくとも一部は改ざんや権限の無い者による書き込み操作などから保護されている。メモリはオーナー鍵504を格納し、オーナー鍵504は、TPM202を設定し外部の存在と信頼関係を確立する目的で、オーナーとの関係を主張するエンティティを確認するのに用いられる。メモリには、他のものに加えてさらに、プラットフォーム設定レジスタ(PCR: Platform Configuration Register)506が含まれている。PCR506は、ハッシュまたはモニタ206と関連付けられた他の強い識別子を格納するのに用いられる。TPM202は、時計508及び暗号サービス510をさらに備えている。これらは共に、以下により詳細に述べるように、認証および権限付与プロセスに用いられる。TPM202はさらに、シングルピンバス(Single-pin bus)または汎用入出力(GPIO)としてときに言及されるバス512をさらに備える。一つの実施例では、他箇所に記載の通り、GPIO512はウォッチドッグ回路に接続される。
【0021】
TPM202は、モニタ526を実行する処理などのコンピュータ内のデータ通信のために、汎用バス514に接続されている。バス514または場合によっては他の機構516を用いて、TPM202はモニタを計測することができる。モニタの計測には、モニタの暗号ハッシュのチェック、つまりモニタによって占用されているメモリ領域のハッシュのチェックが含まれる。計測データ506を格納するのにPCRが用いられてもよい。オーナー鍵504は、例ばモニタのデジタル署名されたハッシュで確認にオーナー鍵504を要求するものによって、モニタ506のハッシュと関係付けられている。オーナー鍵504は、製造時またはその後、例えば顧客への配送時などに、TPM202に書き込まれる、または注入される。そしてオーナー鍵504は、モニタ206を認証するのに用いられる。
【0022】
例示の実施形態では、モニタ206は、ブートシークエンスでそれに先行する信用されたモジュール、例えばBIOS204によって計測される。モニタの計測、例えばBIOS204によって計算されるハッシュなどは、バス514を介してTPM PCR506に格納される。TPM202が計測(ハッシュ)を確証するとき、TPM202は、モニタ206に割り当てられTPM202に格納された一意の鍵及び/または他の秘密のモニタ206へのアクセスを許可する。TPM202は、如何なるモニタにも対応する鍵と秘密とを、そのモニタの計測値に応じた計測値によって割り当てる。
【0023】
TPMは、対応するモニタメトリック509、例えば知られたモニタ206のハッシュなどと、オーナー鍵504とでプログラムされている。オーナー鍵は、モニタメトリック509をプログラムまたは更新するのに用いられ、オーナー鍵504を有するエンティティだけが知られたモニタ206のPCRレジスタ506を設定し得るようにする。標準的なTPM202には、与えられた計測値506に対して検証されたモニタ206のみがGPIO512を制御できるという特徴がある。GPIO512が、改ざんから保護されつつウォッチドッグ回路126に接続されているとき、信頼の鎖が完成される。つまり、検証されたモニタ206のみがGPIO512を制御してよく、GPIO512のみがウォッチドッグ回路126をリスタートすることができる。従って、モニタ206が交換されたり変更されたりしても、オーナー鍵506が設定したPCR506によって検証されたモニタ206のみがウォッチドッグ回路126をリスタートするのに用いられ得る。従って、権限を付与されたモニタのみが、ウォッチドッグがコンピュータ110をリセットするなどによりコンピュータ110を妨害するのをやめさせるのに用いられ得る。ウォッチドッグ回路126のタイマは、コンピュータ110の変造、改ざんの回復は可能であるがコンピュータ110で有意義な実用的作業をするのを妨げるに十分な短さとなるよう選択された期間に設定される。例えばウォッチドッグは、確証されたモニタ206がリスタートしない限り、コンピュータ110を10から20分おきに妨害するよう設定される。
【0024】
オーナー秘密とモニタ計測値506とは、安全な製造環境においてプログラムされてもよいし、オーナー鍵504をプログラムするエンティティに知られているトランスポート鍵を用いてフィールドプログラムされてもよい。オーナー鍵504が知られると、サービスプロバイダなどのプログラミングを行うエンティティは、どのモニタがGPIOバスへのアクセス権を与えられるかを決定するモニタ計測値を設定する。オーナー鍵を再プログラムするには、オーナー鍵504が要求される。生成された鍵を使うことによって、鍵の分配や、ローカルのオーナー鍵504が侵害された場合の広範な喪失からの保護やスケーリングを容易にする。鍵管理技術は、データセキュリティの分野では公知である。
【0025】
図4は、コンピュータ110と同じまたは類似のコンピュータ300の代表的アーキテクチャのブロック図である。コンピュータは第1および第2インタフェースブリッジ302、304を有している。インタフェースブリッジ302,304は高速306バスによって接続されている。第1インタフェースブリッジはプロセッサ308と、グラフィックコントローラ310と、メモリ312とを接続されている。メモリ312はモニタプログラム314や他の一般的なメモリ使用をホストする。
【0026】
第2インタフェースブリッジ304は、例えばユニバーサルシリアルバス(USB)316、IDE(Integrated Drive Electronics)318、または周辺装置相互接続(PCI: Peripheral Component Interconnect)320などの、ディスクドライブやプリンタやスキャナなどに接続するために用いられる、周辺バス及び構成要素に接続される。第2インタフェースブリッジはTPM322にも接続されている。上述のように、TPM322は、鍵及びハッシュデータのための安全なメモリ324と、汎用入出力(GPIO)326とを備えている。TPM322は、接続328によって物理的にまたは論理的にモニタに連結されている。既述の通り、BIOS204はモニタ206を計測し、計測値をTPM322に格納し、TPM322は、提供された計測値に応じてモニタ314に鍵及び秘密を割り当てる。こうしてモニタ314はこれらの鍵及び秘密でロックされたリソース及びデータへのアクセス権を与えられる。接続328は、ウォッチドッグ回路330に信号を送る目的で、モニタによってGPIO326を制御するために用いられてよい。信号は、ウォッチドッグをリセットさせる。信号が、ウォッチドッグ回路330の設定で禁止(proscribe)されている期間に、ウォッチドッグ回路330によって受信されなかったとき、リセットまたは他の妨害的信号が接続332を介して送信される。改ざんを抑えるために、GPIO326とウォッチドッグ回路330との間の接続は、ウォッチドッグ回路330の手動再起動を抑止するため、例えば回路基盤層間のポッティング(potting)やルーティングによって保護されている。コンピュータリセット信号接続332は同様に改ざんから保護されており、またはコンピュータリセット信号接続332のウォッチドッグ回路330とメインプロセッサコンピュータリセット点(図示なし)の間の少なくとも一部が同様に保護されている。
【0027】
図5は、図2のコンピュータの代替アーキテクチャのブロック図である。図4の記載に比較して同様の番号を付された構成要素は同じである。ウォッチドッグ回路330は第2インタフェースブリッジ304内に移動されており、ウォッチドッグ回路330が改ざん耐久性向上のために如何に他の回路に組み合わされ得るかを示している。ウォッチドッグ回路330の第2インタフェースブリッジ304への組み合わせは、それ自体適当なものであるが、事例にすぎない。第2インタフェースブリッジ304はコンピュータアーキテクチャの主要な構成要素であるので、望みのレベルの妨害を第2インタフェースブリッジ304の内部から実行することができる。従って、接続332のような、第2インタフェースブリッジ304の外側のウォッチドッグ回路330からの接続を必要としない。
【0028】
この代替実施形態では、GPIO326がリセットの信号をウォッチドッグ回路330に送るために用いられることはない。代わりに、メッセージが論理接続334上モニタ314からウォッチドッグ回路330に直接送信される。
【0029】
2つのエンティティ(314、330)の間に十分な信頼が存在しないので、メッセージはTPM322で保持された鍵を用いて書名される。例えばこれらの鍵は、第1ブートの間(例えば、製造ライン上で−信頼性のため)モニタ314と関連付けられている。鍵は、任意に割り当てられてよく、または、上述のように、ルート認証、シリアル番号または製造シークエンス番号などの知られたデータとマスター鍵とから階層的に生成されてもよい。ウォッチドッグタイマ330は、例えばアセンブリラインにおけるコンピュータ110の最初のブートの間、これらの鍵を用いて書名されたメッセージのみを尊重するように設定される。さらに、モニタはこれらの鍵をTPM322にロックし、同一の計測値を持つモニタ314のみがこれらの鍵にアクセスできるようにしてもよい。このアーキテクチャの変形例では、これらの鍵が計測値に応じてそれぞれ一意になるようにモニタに分配されるよう、モニタがTPM322に依存している。
【0030】
通常のオペレーションの間、モニタ314は、ウォッチドッグ回路330に送信するメッセージに自分のために署名するよう、TPM322に要求する。TPM322は、モニタ314に対応する鍵(ブートの度にBIOSによってTPM322に格納される、その計測値に基づいて)でメッセージに署名する。モニタ314は、署名されたメッセージをTPM322から、例えば接続328などの論理接続を介して署名されたメッセージを受け取り、論理接続334を介してウォッチドッグ回路330にそれを提供する。
【0031】
ウォッチドッグ回路330がメッセージを受け取ると、ウォッチドッグ回路330は鍵(製造過程で設定されたもの)を用いてメッセージを認証する。若しくは、TPM322内の鍵または秘密を用いての検証を、論理接続336を用いて要求してもよい。別のモニタが実行している場合、その計測値は異なるため、TPMは異なる鍵及び秘密を割り当てる結果となる。従って別のモニタは、ウォッチドッグ回路330に認証されるようにメッセージに適格に署名することができない。結果としてウォッチドッグ回路330は、コンピュータ110のタイミングインターバル期間終了の後にリセットを発するなどの制裁措置を開始する。署名されたまたは暗号化されたメッセージを使うことによって、論理接続328、334への攻撃の機会を減らすことができる。
【0032】
モニタを使ってTPMを常に「オン」にロックする方法を図示する図7のフローチャートについて、記載及び既述する。典型的なTPM,例えばTPM125が、ユーザによって任意に有効にされていてもよい。後述のようにこの方法は、コンピュータ110の無能化などの制裁により、TPM125が有効な状態を保ち、かつビジネスのオーナーに選択されたモニタ206が実行されることを確実にする助けとなる。
【0033】
スタート402における電源入力に始まって、コンピュータ110は通常のブート機構によって様々なハードウェア構成要素を起動する。これはTPM322にも適用される。ブートシークエンスはTCPA(Trusted Computing Platform Alliance)の方法に従ってもよい。CRTM (Core Root of Trusted Measurements)(図示なし)はBIOS133を計測し、その計測値をTPM322に格納(403)する。そして、CRTMはBIOS133をロードし実行する。(CRTMは、理想的には、攻撃が困難なコンピュータ内の信頼のおける位置に格納される。)
【0034】
BIOS133は、従来のように実行されてよく、種々のコンピュータ構成要素を起動し列挙するが、一つ例外がある−BIOS133は、各ソフトウェアモジュールをロードし実行する前に計測する。さらにBIOS133は、これらの計測値をTPM322に格納する。特にBIOS133は、モニタ314を計測し、モニタの計測値をTPM322に格納する(405)。
【0035】
TPM322は、鍵と秘密とをモニタ計測値それぞれに一意的に割り当てる(408)。大事なのは、TPM322が鍵及び秘密を与えられた計測値に対して一貫して一意的に割り当てる(408)ことである。結果的に、モニタ314が利用できる秘密はそれぞれ一貫して一意的である。その結果、如何なるモニタでも、そのモニタだけが独占的に利用できるよう、リソースをロックすることができる。例えばこれにより、ウォッチドッグ回路330に接続されたGPIO326が正真正銘のモニタ314と関連付けられた計測値のみを尊重するようにGPIO326をプログラムすることによって、正真正銘のモニタ314をウォッチドッグ回路330に連結することができるようになる。GPIO326はこれにより、正真正銘のモニタ314と同一の計測値を持つモニタにのみ利用可能となる。
【0036】
ロードされたモニタが正真正銘であるか否かに関わらず、ブートシークエンスはモニタをロードし実行する(410)。通常のブートプロセスを継続し(411)、ブートが成功したと仮定して、コンピュータ110の通常のオペレーション(412)が続く。
【0037】
モニタ314が410においてロードされ実行されるとすぐに、モニタ314はそのループを開始する(413−419)。初めに、モニタ314はTPM GPIO326を介してウォッチドッグ回路330にメッセージを送信する(413)。メッセージは、TPM322に対し、タイマ(図示なし)をリスタートするようにウォッチドッグ回路330に信号を送るのにGPIO326を使用するよう、信号を送る。
【0038】
メッセージをTPM322に送った後、モニタはテスト状態414に戻る。モニタは、コンピュータ110の状態が現行のポリシーを遵守していることをテスト(414)する。現行のポリシーとは、知られたプログラムやユーティリティや周辺機器の具体的な存在または非存在に関係していてよい。テストはまた、メータリングやまたは他の使用毎支払いメトリクスに関連していてもよい。例えばテストは、特定のアプリケーションプログラムオペレーションでなく消費のために利用可能な消費用提供パケットをチェックしてもよい。別の実施形態においては、テストはカレンダー月など、特定の期間におけるオペレーションに関するものでもよい。
【0039】
テストが失敗すると、No肢に続いて416があり、モニタはポリシーに従って行動する。この行動は、オペレーティングシステムに対して送る警告コードのみか、ユーザに示す警告メッセージでもよい。オペレーティングシステム及びユーザに対する何らかの制裁、例えばコンピュータの特定の機能を限定するまたは消去するといったものでもよい。これは、ハードウェア及び/またはソフトウェアの機能に適用される。例えば、コンピュータが遅くなったり、特定のソフトウェアを使用不能にしたり、ウェブカムなど特定のデバイスを使用不能にしたりする。より厳しい制裁としては、OSが利用できるRAMの量を制限する、オペレーティングシステムが利用できるInstruction-Set-Architectureを減少させることである。例示の実施形態では、遵守しない状態が発見されたときにモニタ314が取りえる行動としては、ウォッチドッグ回路330のタイマをリスタートする行動を取らずにウォッチドッグ回路330に制裁を加えさせることである。
【0040】
テストが成功すると、414からYes肢をたどる。いずれの場合にしても、実行はステップ413に戻る前にある期間待つ(419)。待ち期間により、モニタ314を繰り返し実行することによるコンピュータリソースの使い果たしを避ける。明らかに、この待ち期間419はウォッチドッグタイマの計測期間に比してごく短い期間である。使用できるごく短い期間の決定は、コンピュータの通常のオペレーションがループの実行完成を遅らせる見込みによる。そしてループは上述のステップ413に戻る。ループを繰り返す期間は、ウォッチドッグ回路のタイムアウト期間より短ければどのような時間でもよく、さもなければ不当な妨害が起きてしまう。
【0041】
TPM322がメッセージを受信する(420)と、TPM322はモニタ計測値に従って行動する。もし計測値が正真正銘ではないと判断されると、420が失敗し、ボックス422へのNo肢が取られる。ボックス422は何の行動も取らず、つまり、ウォッチドッグ回路330への信号は送られない。ウォッチドッグ回路330がコンピュータ110を妨害するのを阻止する手段が取られない限りウォッチドッグ回路330はコンピュータ110を妨害するので、TPM322それ以上行動を取る必要がない。オプションとして、TPM322は422で、ログ用のエラーを生成し、警告/エラーコードを生成し、オペレーティングシステムに通知し、及びメッセージをユーザに表示してもよい。
【0042】
TPM322が、モニタ計測値が正真正銘であることを検証すると、GPIO326は起動されウォッチドッグ回路330に対してタイマをリスタートするよう信号424を送る。上述のように、ウォッチドッグ回路タイマをリスタートすることにより、コンピュータ110をリセットするなどの妨害的行動をウォッチドッグ回路330が開始することが妨げられる。ウォッチドッグ回路330はそして、初期値においてタイマをリスタート426する。タイマはそして、予め決められた期間が切れるまでタイマのカウント(428)及びテスト(430)を行う。タイマの期間は設定可能である。タイマの実施は公知であり、タイマが所定の数値まで下から数えるか、上から数えてゼロにするか、設定された時計の時間に応じて数えるか、またはその他の機構によるかは、設定選択事項である。
【0043】
タイマの時間が切れていなければ、430からNo肢をたどって428に戻り、タイマから再びカウントを始める。時間が切れれば、430からYes肢をたどり、ウォッチドッグはコンピュータを妨害する(432)ことにより制裁を実行する。妨害とは、システムリセットや、リブートさせることや、周辺機器を不能化することなどである。ウォッチドッグ回路タイマがカウントダウンして妨害432するまでの期間は、ユーザがコンピュータ110の非遵守状態を矯正するに十分な時間であっても、コンピュータ110の信頼できるまたは有効な行動を制限するに十分なほど頻繁でなければならない。
【0044】
432から426へのリンクは概念的なものである。妨害がコンピュータ全体のリセットによって実施されれば、このリンクは無為である。コンピュータを遅くするなど、より微妙な妨害の場合は、カウントダウンをリスタートするのにこのリンクが用いられ、リセットさせるなどのより支障をきたすような妨害をする。
【0045】
上記の方法により、利用毎支払いベースでコンピュータを供給に関連する事業のオーナーまたは他のスポンサーの目的を2つ達成することができる。第1に、ユーザがTPM322を使わないことを選択した、またはTPM322を不能化するようコンピュータをハックしたことによりTPM322が不能化されると、ウォッチドッグ回路330へのメッセージは生成されず、コンピュータ110が妨害される。
【0046】
同様に、もしTPMが可動化され作動しているときでも、モニタが変更または取り替えられて有効であるポリシー(使用ポリシーなど)を変更または無視するようになると、TPMはモニタからの要求を尊重しなくなる。実際、変更されたモニタ計測値は正真正銘のモニタの計測値とは異なる。結果的に、モニタ計測値がTPM322に格納されている場合、TPM322は、それぞれ一意な鍵及び秘密のセットを変更されたモニタに割り当て、これらはGPIO26のオペレーションに必要となるものとは異なる。この結果、GPIO326に信号を送ろうとする変更されたモニタからTPMへの如何なるメッセージも尊重されない。従って、ウォッチドッグ回路330はリスタート信号を受信せず、コンピュータ110が妨害される。
【0047】
いずれの場合でも、コンピュータ110の正しいオペレーションのためには、TPM322は可動化されていなければならず、正真正銘のモニタがあって作動していなければならない。
【0048】
上記方法及び装置の他の使用方法が考え得る。例えば、ブートプロセスの一部が権限を受けたユーザからの信用証明を要求してもよい。もし正しい信用証明が提示されなければ、ブートプロセスは正真正銘のモニタをロードせず、最終的にはコンピュータ110の不能化につながる。
【図面の簡単な説明】
【0049】
【図1】複数のコンピュータリソースを互いに接続するネットワークのブロック図である。
【図2】開示の実施形態に係るコンピュータを示す、簡易化された代表的ブロック図である。
【図3】図2のコンピュータ内の機能層の階層的表示を示す、簡易化された代表的ブロック図である。
【図4】図2のコンピュータのコンピュータアーキテクチャの、簡易化された代表的ブロック図である。
【図5】図2のコンピュータの代替コンピュータアーキテクチャの、簡易化された代表的ブロック図である。
【図6】TPMの簡易化された代表的ブロック図である。
【図7】モニタを用いてTPMをロックオンする方法を示すフローチャートである。

【特許請求の範囲】
【請求項1】
モニタのオペレーションを行使するための信頼されたコンピューティングベースを実施するコンピュータであって、
前記モニタを実行するプロセッサと、
前記プロセッサに接続され、前記モニタの実行を確実にする信頼された環境であって、前記モニタからメッセージを受信するようになっている前記信頼された環境と、
前記信頼された環境に接続されたウォッチドッグ回路であって、前記信頼された環境がある期間内にメッセージを受信しない限り、前記期間後に前記コンピュータを妨害するウォッチドッグ回路と、
を備えたことを特徴とするコンピュータ。
【請求項2】
前記信頼された環境は暗号によって前記モニタを識別することを特徴とする、請求項1に記載のコンピュータ。
【請求項3】
前記信頼された環境は汎用入出力をさらに備え、前記モニタは暗号によって識別された後に、前記汎用入出力へのアクセス権を与えられることを特徴とする、請求項2に記載のコンピュータ。
【請求項4】
前記ウォッチドッグ回路は、前記期間を判断するタイマを有し、
前記ウォッチドッグ回路は、署名されたリスタート信号が検証されると、前記タイマをリスタートするための前記署名されたリスタート信号を受信することを特徴とする、請求項1に記載のコンピュータ。
【請求項5】
前記信頼された環境は前記ウォッチドッグ回路に専用通信線を介して接続されていることを特徴とする、請求項1に記載のコンピュータ。
【請求項6】
前記ウォッチドッグ回路は、前記コンピュータを妨害するとき、前記コンピュータをリブートさせることを特徴とする、請求項1に記載のコンピュータ。
【請求項7】
コンピュータをリブートさせるための信号はコンダクタに搭載され、前記コンダクタは改ざんに対して抵抗力を持つことを特徴とする、請求項6に記載のコンピュータ。
【請求項8】
前記モニタは、前記メッセージ送信と共に、少なくとも一回トークンを検証することを特徴とする、請求項1に記載のコンピュータ。
【請求項9】
前記トークンは、前記モニタが最新バージョンであるかを判断するために前記モニタによって用いられるバージョン番号を含むことを特徴とする、請求項9に記載のコンピュータ。
【請求項10】
コンピュータにおいて知られた操作状態を奨励する方法であって、
知られたモニタを実行するステップと、
前記知られたモニタからウォッチドッグ回路に信号を送るステップと、
前記ウォッチドッグ回路が前記コンピュータのオペレーションを妨害するのを前記信号に応じて防ぐステップと
を有することを特徴とする方法。
【請求項11】
前記知られたモニタの信頼性を検証するステップをさらに有することを特徴とする、請求項10に記載の方法。
【請求項12】
前記信号を前記モニタから送るステップは、前記信号を前記ウォッチドッグ回路に送る前に前記信号を前記モニタから信頼された環境に送るステップをさらに有することを特徴とする、請求項10に記載の方法。
【請求項13】
前記信号に署名し、前記ウォッチドッグが前記信号の信頼性を検証するステップをさらに有することを特徴とする、請求項10に記載の方法。
【請求項14】
前記信号が所定期間内に受信されないとき、前記コンピュータのオペレーションを妨害するステップをさらに有することを特徴とする、請求項10に記載の方法。
【請求項15】
ある期間を判断するタイマと、
前記タイマをリスタートするための信号を受信する入力と、
前記期間の間に前記信号が受信されないときに前記コンピュータのオペレーションを妨害する出力と、
を備えたことを特徴とするコンピュータ用ウォッチドッグ回路。
【請求項16】
暗号能力であって、前記信号がデジタル署名されており暗号回路が前記信号の信頼性を判断する、暗号能力をさらに備えたことを特徴とする、請求項15に記載のコンピュータ用ウォッチドッグ回路。
【請求項17】
前記入力は、信頼された環境と接続されていることを特徴とする、請求項15に記載のコンピュータ用ウォッチドッグ回路。
【請求項18】
前記信頼された環境は前記ウォッチドッグ回路への前記信号を規制することを特徴とする、請求項17に記載のコンピュータ用ウォッチドッグ回路。
【請求項19】
前記出力は、リセット回路とバスドライバ回路とのいずれか一方に接続されていることを特徴とする、請求項15に記載のコンピュータ用ウォッチドッグ回路。
【請求項20】
前記ウォッチドッグ回路は、前記タイマと、前記入力と、前記出力とのいずれか1つへのアクセスを制限するよう、前記コンピュータ内に配置されていることを特徴とする、請求項15に記載のコンピュータ用ウォッチドッグ回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−525892(P2008−525892A)
【公表日】平成20年7月17日(2008.7.17)
【国際特許分類】
【出願番号】特願2007−548385(P2007−548385)
【出願日】平成17年12月20日(2005.12.20)
【国際出願番号】PCT/US2005/046091
【国際公開番号】WO2006/071630
【国際公開日】平成18年7月6日(2006.7.6)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】