(57)【要約】  分離コンピューティング環境を標準的なコンピュータに付加することによって、コンピュータは、使用のために支払うタイプのオペレーションに適合する。分離コンピューティング環境は、信頼できる不揮発性メモリと、電子署名確認機能と、クロックまたはタイマと、そのクロックまたはタイマに応答して検証プログラムの実行をトリガーするための論理回路とを含むことができる。物理的なメカニズム、または暗号化によるメカニズム、あるいはその双方によって、分離コンピューティング環境を改ざんから保護することができる。検証プログラムは、コンピュータの準拠していない状態がないか評価またはモニタし、コンピュータの準拠していない状態が検知された場合には、拘束を強制することができる。
2008521092.tif 000002
【特許請求の範囲】
【請求項１】
分離コンピューティング環境内でプログラムコードを実行するように適合されているコンピュータであって、
プログラムコードを実行する分離コンピューティング環境と、
前記プログラムコードのみがアクセスすることができ、その他の実行環境によって実行される第２のプログラムコードはアクセスすることができない安全なメモリと、
前記プロセッサを前記安全なメモリから実行させる論理回路と、
論理回路に結合されており、イベントの時間を計るタイマであって、前記プログラムコードが、前記タイマからの信号に応じて呼び出されるタイマと
を備えたことを特徴とするコンピュータ。
【請求項２】
前記その他の実行環境は、オペレーティングシステム、ＢＩＯＳ構造、およびカーネルのうちの１つを備えたことを特徴とする請求項１に記載のコンピュータ。
【請求項３】
前記プログラムコードは、前記コンピュータの状態をモニタすることを特徴とする請求項１に記載のコンピュータ。
【請求項４】
前記コンピュータは、プロセッサをさらに含み、前記コンピュータの前記状態は、オペレーティングシステムによって使用されるリソースの状態、アプリケーションプログラムの状態、ＢＩＯＳ拡張の状態、および前記プロセッサの状態のうちの１つであることを特徴とする請求項３に記載のコンピュータ。
【請求項５】
前記プロセッサは、前記分離コンピューティング環境を備えたことを特徴とする請求項３に記載のコンピュータ。
【請求項６】
前記プログラムコードは、前記コンピュータの前記状態に関連するポリシーを強制することを特徴とする請求項３に記載のコンピュータ。
【請求項７】
前記コンピュータの前記状態に関連する前記ポリシーは、前記コンピュータの処理速度を落とすこと、前記コンピュータの機能的なオペレーションを減らすこと、ランダムアクセスメモリへのアクセスを制限すること、インストラクションセットアーキテクチャを制限すること、および前記コンピュータをリセットすることのうちの１つを備えたことを特徴とする請求項６に記載のコンピュータ。
【請求項８】
マザーボードをさらに含み、
前記分離コンピューティング環境は、前記マザーボード上に配置され、
前記分離コンピューティング環境は、前記安全なメモリおよび前記タイマを備えたことを特徴とする請求項１に記載のコンピュータ。
【請求項９】
コンピュータ内で使用する分離コンピューティング環境であって、
無許可の実行環境によるアクセスから安全であるメモリと、
前記メモリ内に保存され、前記コンピュータの状況を評価するようにコード化されているプログラムであって、前記状況は、前記コンピュータのオペレーションの所定の望ましい状態に相当するプログラムと、
前記プログラムの実行を引き起こすための論理回路と、
インターバルの時間を計るタイマであって、前記間隔に対応して前記プログラムを実行するように前記論理回路をトリガーするタイマと
を備えたことを特徴とする分離コンピューティング環境。
【請求項１０】
前記メモリへのアクセスは、許可された実行環境の暗号による識別子を必要とすることを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１１】
前記分離コンピューティング環境は、前記コンピュータ内に取り外せないように配置されていることを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１２】
メモリレンジのハッシュ値を判定するための電子署名確認回路をさらに備えたことを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１３】
前記プログラムを変更するメッセージの電子署名を検証する電子署名確認回路をさらに備えたことを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１４】
前記コンピュータによって実行されるアプリケーションプログラムの電子署名を検証する電子署名確認回路をさらに備えたことを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１５】
前記分離コンピューティング環境によって受け取られるデータの電子署名を検証する電子署名確認回路をさらに備えたことを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１６】
前記分離コンピューティング環境は、オペレーティングシステムおよびアプリケーションプログラムのうちの１つによって使用されるコンピューテーションリソースにアクセスすることができることを特徴とする請求項９に記載の分離コンピューティング環境。
【請求項１７】
使用するたびに支払うタイプのオペレーションに適合したコンピュータを製造する方法であって、
コンピュータにマザーボードを提供するステップと、
分離コンピューティング環境を前記マザーボード上に配置するステップであって、前記分離コンピューティング環境は、
安全なメモリと、
インターバルの時間を計るタイマと、
前記安全なメモリ内に格納されているコードの実行を引き起こす論理回路と、を含むステップと、
前記分離コンピューティング環境を改ざんから保護するステップと、
プログラムコードを前記安全なメモリ内に配置するステップであって、前記プログラムコードは、実行されると、前記コンピュータの状態を判定し、前記コンピュータの前記状態が所定の条件を満たしている場合にポリシーを強制するステップと
を備えることを特徴とする方法。
【請求項１８】
前記分離コンピューティング環境を前記マザーボード上に配置するステップは、
前記分離コンピューティング環境をプロセッサ内に配置するステップと、
前記プロセッサを前記マザーボード上に配置するステップと
をさらに備えることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記分離コンピューティング環境を前記マザーボード上に配置するステップは、
前記分離コンピューティング環境を前記マザーボード上に配置するステップと、
破壊性を有するコーティングを使用して、前記分離コンピューティング環境を前記マザーボードに固定するステップと
をさらに備えることを特徴とする請求項１７に記載の方法。
【請求項２０】
前記コンピュータの状態を変更するステップであって、前記コンピュータの前記状態は、無許可の周辺機器を取り付けること、無許可のコードを実行すること、および有効期限を過ぎても前記コンピュータを機能させることのうちの１つを含むステップと、
前記分離コンピューティング環境が、前記コンピュータの前記状態に対応する前記ポリシーを強制していることをテストするステップと
をさらに備えることを特徴とする請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分離コンピューティング環境に関する。
【背景技術】
【０００２】
その都度支払うタイプの（pay-as-you-go）、または使用するたびに支払うタイプの（pay-per-use）ビジネスモデルは、携帯電話から業務用のＬａｕｎｄｒｏｍａｔまで、商業の多くの領域において使用されている。その都度支払うタイプのビジネスを開発する際に、プロバイダ、例えば携帯電話のプロバイダは、加入者が自分たちのネットワークに留まるという態度表明と引き換えに、ハードウェア（携帯電話）の使用を市場よりも低いコストで提供している。この特定の例においては、顧客は、所定の期間にわたって加入者となる契約にサインすることと引き換えに、代金をほとんど払わずに、あるいはまったく払わずに携帯電話を受け取る。契約期間にわたって、サービスプロバイダは、携帯電話を使用した料金を消費者に課すことによって、ハードウェアのコストを回収する。
【０００３】
その都度支払うタイプのビジネスモデルでは、サービスプロバイダからの接続を断たれると、提供されたハードウェアは、ほとんど価値がない、またはまったく価値がない、あるいは役に立たないというコンセプトが前提となっている。例えば、上述の加入者が自分宛の請求書の支払いをやめると、サービスプロバイダは彼らのアカウントを無効にし、すると、サービスプロバイダがその携帯電話への通信を認めなくなるため、携帯電話の電源を入れることはできても、通話の送受信はできなくなる。無効にされた電話には、「救い出す」価値（“salvage”value）はまったくない。というのも、その電話は他のどこの場所でも機能せず、構成部品はたいした市価にも値しないためである。アカウントが最新の状態にされれば、サービスプロバイダは、通話するためのデバイスの使用を再び認めることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このモデルは、サービスプロバイダや、ファイナンス上のリスクを負うその他の実在者（エンティティ）が、ハードウェアの使用を厳格にコントロールできる場合に、うまく機能する。このモデルは、ハードウェアが、サービスプロバイダのコントロールの範囲外でも実質的に役に立つ場合には、うまく機能しない（例えば、コンピュータの場合。コンピュータは、サービスプロバイダのネットワークに接続されているか否かを問わず、役に立つことができる）。さらに、ほとんどのコンピュータハードウェア、例えばパーソナルコンピュータおよび携帯情報端末のオープンで拡張可能な性質によって、ハードウェアおよびソフトウェアの双方に対する修正が可能となり、また促進され、その都度支払うタイプのビジネスモデルあるいは類似のビジネスモデルによって必要とされるコントロールのレベルを維持することが、いっそう困難になる。したがって、コンピュータにサービスプロバイダのコントロールの範囲を超えさせることができるような、不正侵入されたまたは無許可のオペレーティングシステムおよびソフトウェアを含む、コンピュータの無許可の構成をモニタし、かつ是正し、ならびに阻止かつ除去したいというニーズがある。
【課題を解決するための手段】
【０００５】
本開示の一態様によれば、分離コンピューティング環境（isolated computing environment）は、コンピュータの構成およびオペレーションに関連するポリシーをモニタおよび強制するために使用されるプログラムおよび情報を安全に格納することを提供することができる。分離コンピューティング環境は、確認プログラムおよび強制プログラムと、暗号化キーと、制限されたアクセスを必要とするその他のデータとを格納し、または認証する（validate）ための安全なメモリを有することができる。分離コンピューティング環境は、クロックまたはタイマと、そのクロックまたはタイマに応答して確認プログラムをアクティブにするための論理回路とをさらに有することができる。コンピュータの状態が、使用するたびに支払うタイプのビジネス契約やその他のビジネス契約のもとで必要とされる条件に準拠していないと判定されると、強制プログラムは、コンピュータの準拠していない状態を是正するための、あるいは是正するようユーザに促すための拘束（sanction）を開始することができる。
【０００６】
分離コンピューティング環境を使用するコンピュータを組み立てる方法は、分離コンピューティング環境をコンピュータのマザーボード上に直接または間接的に配置する（dispose）ステップを含むことができ、また分離コンピューティング環境を、取り外すとコンピュータに修復不能な損傷を与えるような方法でマザーボードに取り付けるステップを含むことができる。分離コンピューティング環境はまた、組み立てプロセスの一環としてテストすることができる。
【発明を実施するための最良の形態】
【０００７】
以降の文章は、多くの異なる実施形態の詳細な説明を記載しているが、この説明の法的な範囲は、本開示に添付されている請求項の文言によって定義されるという点を理解されたい。この詳細な説明は、例示的なものにすぎないと解釈されるべきであり、可能な実施形態をすべて説明しているわけではない。というのも、可能な実施形態をすべて説明することは、不可能ではないにしても、非現実的と思われるためである。請求項の範囲内に今後とも収まるであろう現在の技術または本件特許明細書の出願日以降に開発される技術を使用して、多くの代替実施形態を実施することができる。
【０００８】
また用語については、「本明細書で使用する際、「      」という用語は、．．．を意味するものと定義する」という文や類似の文を使用して本件特許明細書内で明確に定義されていない限り、その用語の意味を、明示的にも暗示的にも、その率直な意味すなわち通常の意味を越えて限定する意図はまったくなく、またそのような用語は、本件特許明細書のいずれかの段落において行われているいずれかの記述（請求項の言葉は除く）に基づく範囲に限定されるものと解釈すべきではないという点を理解されたい。本件特許明細書に添付されている請求項に記載されているいずれかの用語が、ある単一の意味と一致した方法で本件特許明細書内で言及されている限りにおいては、それは、もっぱら明細書を読む者を混乱させないように明確にする目的で行われているものであり、そのような請求項の用語を、暗示などによって、その単一の意味に限定することを意図するものではない。最後に、請求項の要素が、いかなる構造についても記載せずに「手段」という言葉と機能とを記載することによって定義されているのでない限り、いかなる請求項の要素の範囲も、３５  Ｕ．Ｓ．Ｃ．セクション１１２、第６パラグラフの適用に基づいて解釈されることを意図するものではない。
【０００９】
本発明の機能の多く、および本発明の原理の多くは、ソフトウェアプログラムやソフトウェア命令、および特定用途向けＩＣなどのＩＣ（integrated circuit）と共に、あるいはそれらの中に最もよく実装される。当業者なら、場合によっては、例えば利用可能な時間、現在の技術、および経済面での考慮事項によって誘発される多大な労力および多くの設計上の選択肢にもかかわらず、本明細書で開示されるコンセプトおよび原理によって導かれれば、そのようなソフトウェア命令およびソフトウェアプログラムならびにＩＣを最小限の試みで容易に作成できるであろうと予想される。したがって、簡潔にするために、また本発明による原理およびコンセプトを分かりにくくするあらゆる危険性を最小限に抑えるために、そのようなソフトウェアおよびＩＣについてさらに論じる場合には、好ましい実施形態の原理およびコンセプトに関する本質的な要素に限定することとする。
【００１０】
多くの従来技術による高付加価値の（high-value）コンピュータ、携帯情報端末、オーガナイザ（organizer）などは、さらなるセキュリティなくしては、前払いのタイプの（pre-pay）ビジネスモデルや使用のために支払うタイプの（pay-for-use）ビジネスモデルにおける使用に適することはできない。上述のように、このような機器は、サービスプロバイダを必要とする機能とは別に、多大な機能を有することができる。例えば、パーソナルコンピュータは、提供されるインターネットサービスから接続を断つことができ、それでもなお、文書処理、スプレッドシートなどのアプリケーションのために役に立つことができる。サービスプロバイダ、例えばインターネットサービスプロバイダやその他のビジネスエンティティが、将来の手数料を見込んでパーソナルコンピュータのコストを引き受ける場合に、この「解き放たれた価値（untethered value）」によって、詐欺的な申し込みおよび盗難の機会が生じる。奨励割引の付いた（subsidized）高付加価値のコンピューティングシステム環境を使用するためにユーザが前払いを行う前払いのタイプのビジネスモデルが、そのような詐欺および盗難のリスクの一例である。
【００１１】
図１は、コンピュータ１１０の形態におけるコンピューティングデバイスを示す。コンピュータ１１０のコンポーネントは、処理装置１２０と、システムメモリ１３０と、システムメモリを含む様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１とを含むことができるが、これらには限定されない。システムバス１２１は、メモリバスまたはメモリコントローラと、ペリフェラルバスと、様々なバスアーキテクチャのいずれかを使用するローカルバスとを含む複数のタイプのバス構造のいずれにすることもできる。例えばこのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバス、およびメザニンバスとしても知られているＰＣＩ（Peripheral Component Interconnect）バスを含むが、これらには限定されない。
【００１２】
コンピュータ１１０は通常、様々なコンピュータ可読記録媒体を含む。コンピュータ可読記録媒体は、コンピュータ１１０によってアクセスできる利用可能な任意の記録媒体とすることができ、揮発性記録媒体および不揮発性記録媒体の双方、ならびに取り外し可能記録媒体および取り外し不能記録媒体の双方を含む。例えば、コンピュータ可読記録媒体は、コンピュータストレージ媒体（storage media）および通信媒体（communication media）を含むことができるが、これらには限定されない。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術において実装される揮発性記録媒体および不揮発性記録媒体、ならびに取り外し可能記録媒体および取り外し不能記録媒体を含む。コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、またはその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disk）、またはその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、あるいは所望の情報を保存するために使用可能で、コンピュータ１１０によってアクセス可能なその他の任意の記録媒体を含むが、これらには限定されない。通信媒体は通常、搬送波やその他の伝送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータを具体化し、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、その信号内情報をエンコードするような方法で設定または変更されたその特性のうちの１つまたは複数を有する信号を意味する。例えば、通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音波、無線周波数（ＲＦ）、赤外線、その他の無線媒体などの無線媒体とを含むが、これらには限定されない。また上記のいずれの組合せも、コンピュータ可読記録媒体の範囲内に含まれるものである。
【００１３】
システムメモリ１３０は、コンピュータストレージ媒体を、ＲＯＭ１３１およびＲＡＭ１３２などの揮発性メモリおよび／または不揮発性メモリの形態で含む。ＢＩＯＳ（basic input/output system）１３３は、起動中などにコンピュータ１１０内の要素同士の間における情報伝達を補助する基本ルーチンを含み、通常はＲＯＭ１３１内に格納されている。ＲＡＭ１３２は通常、処理装置１２０がすぐにアクセスできるか、および／または処理装置１２０によってその時点で操作されているデータモジュールおよび／またはプログラムモジュールを含む。図１は、例としてオペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示しているが、これらには限定されない。
【００１４】
またコンピュータ１１０は、その他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータストレージ媒体を含むこともできる。図１は、例示のみを目的として、取り外し不能な不揮発性の磁気記録媒体との間で読み取りや書き込みを行うハードディスクドライブ１４１と、取り外し可能な不揮発性の磁気ディスク１５２との間で読み取りや書き込みを行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭやその他の光記録媒体などの取り外し可能な不揮発性の光ディスク１５６との間で読み取りや書き込みを行う光ディスクドライブ１５５とを示している。典型的な動作環境において使用できるその他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータストレージ媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、これらには限定されない。ハードディスクドライブ１４１は通常、インターフェース１４０などの取り外し不能なメモリインターフェースを介してシステムバス１２１に接続されており、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取り外し可能なメモリインターフェースによってシステムバス１２１に接続されている。
【００１５】
図１に示されている上述のドライブおよびそれらに関連するコンピュータストレージ媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストレージを提供する。例えば図１において、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同一としてもよい、または異なっていてもよいという点に留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が最低限異なる複製（コピー）であることを示すために、異なる番号を割り当てている。ユーザは、キーボード１６２や、通常はマウス、トラックボール、あるいはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナなどを含むことができる。これらおよびその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース１６０を介して処理装置１２０に接続される場合が多いが、パラレルポート、ゲームポート、ＵＳＢなどのその他のインターフェース構造およびバス構造によって接続することもできる。またモニタ１９１やその他の種類のディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７やプリンタ１９６などのその他の周辺出力デバイスを含むこともでき、これらは、周辺出力インターフェース１９５を介して接続することができる。
【００１６】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で機能することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、あるいはその他の一般的なネットワークノードとすることができ、図１にはメモリストレージデバイス１８１しか示されていないが、通常はコンピュータ１１０に関連する上述の要素の多くまたはすべてを含む。図１に示されている論理接続は、ＬＡＮ１７１およびＷＡＮ１７３を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見受けられる。
【００１７】
ＬＡＮネットワーキング環境において使用される場合には、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境において使用する場合には、コンピュータ１１０は通常、モデム１７２や、インターネットなどのＷＡＮ１７３上で通信を確立するためのその他の手段を含む。モデム１７２は、内蔵型または外付け型とすることができ、ユーザ入力インターフェース１６０やその他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク化された環境においては、コンピュータ１１０に関連して示されているプログラムモジュール、またはその一部をリモートメモリストレージデバイス内に格納することができる。図１は、例としてリモートアプリケーションプログラム１８５をメモリデバイス１８１上に常駐するものとして示しているが、この形態には限定されない。
【００１８】
通信接続１７０、１７２によって、このデバイスは、その他のデバイスと通信することができる。通信接続１７０、１７２は、通信媒体の一例である。通信媒体は通常、搬送波やその他の伝送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータを具体化し、任意の情報伝達媒体を含む。「変調されたデータ信号」とは、その信号内情報をエンコードするような方法で設定または変更されたその特性のうちの１つまたは複数を有する信号とすることができる。例えば、通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音波、ＲＦ、赤外線、その他の無線媒体などの無線媒体とを含むが、これらには限定されない。コンピュータ可読記録媒体は、ストレージ媒体および通信媒体の双方を含む。
【００１９】
分離コンピューティング環境１２５（図２に関連してさらに詳しく論じる）は、プログラムおよびデータを格納し、実行させることができる。分離コンピューティング環境１２５は、コンピュータ１１０のユーザと、コンピュータ１１０に利害を有するサービスプロバイダとの間における合意の条件を実行するように展開および構成することができる。
【００２０】
分離コンピューティング環境１２５は、複数の方法でインスタンス化することができる。１つまたは複数の別個のコンポーネントによって実装される場合には、分離コンピューティング環境１２５は、コンピュータのマザーボード（図示せず）上に配置することができる。マザーボードは、所定のアプリケーションに適した、回路を相互接続してコンポーネントを取り付ける基盤となる任意の技術（any circuit interconnect and component mounting base technology）とすることができ、グラスファイバ素材から、成形エポキシ樹脂、マイラー、セラミックなどまで、多岐にわたることができる。分離コンピューティング環境１２５は、マザーボード上またはマザーボード内に配置される際には、エポキシでコーティングするか、あるいは相互接続層またはコンポーネントの下に埋め込むことができる。分離コンピューティング環境１２５をコーティングすることや埋め込むことは、分離コンピューティング環境１２５そのもの、分離コンピューティング環境１２５に関連付けられている電力接続およびアース接続、あるいは分離コンピューティング環境１２５へのデータ接続およびアドレス接続を取り外すことや改ざんすることをより困難にする役割を果たすことができる。分離コンピューティング環境１２５を取り外すと、あるいはその蓋を外すと、マザーボードおよび／または周辺のコンポーネントに永久的な損傷が生じて、コンピュータ１１０が機能できなくなるようにすることが理想的である。
【００２１】
分離コンピューティング環境１２５の別のインスタンス化は、図１に示されているようなものとすることができ、ここでは、分離コンピューティング環境１２５は、処理装置１２０内に組み込まれている。処理装置内にそのように配置されていることは、処理装置のレジスタによりよくアクセスできること、およびデータシーケンスをモニタできること、ならびに物理的な攻撃に対する抵抗力が高まることという利点を提供することができる。
【００２２】
図２を参照して、簡略化された典型的な分離コンピューティング環境について論じ、説明する。この分離コンピューティング環境は、上で紹介した分離コンピューティング環境１２５とすることもでき、あるいはその分離コンピューティング環境１２５に類似したものとすることもできる。分離コンピューティング環境１２５は、メモリ２０２、論理回路２０４、およびクロックまたはタイマ２０６を含むことができ、例えばタイマ２０６は、実際の時間間隔をカウントすることによってクロックを実施するために使用されることができる。メモリ２０２は、揮発性メモリおよび不揮発性メモリの双方を含むことができる。
【００２３】
分離コンピューティング環境１２５は、電子署名確認回路（digital signature verification circuit）２０８をさらに含むことができる。外部のエンティティの一方向の確認、例えばサーバ（図示せず）の確認が必要とされる場合には、乱数発生器２１０が、電子署名確認回路２０８の一部となることができる。電子署名技術は、よく知られており、ハッシュ法、署名の確認、対称アルゴリズムおよび非対称アルゴリズム、ならびにそれらのそれぞれのキーについては、本明細書では詳細には論じない。
【００２４】
分離コンピューティング環境１２５のブロック同士は、バス２１２によって結合することができる。バス２１２は、外部のアクセスのために使用されるシステム／処理装置バス２１４とは別個のものとすることができる。別個のバスは、バス２１２によって渡されるデータへのアクセスを制限することによって、セキュリティを高めることができる。バス２１２は、メモリ２０２内に格納されている暗号化キー２１６へのパワー面での攻撃（power attack）をより困難にするために、バランスのとれたデータラインなど、セキュリティ上の予防措置を組み込むことができる。
【００２５】
メモリ２０２は、不揮発性メモリを含むことができ、この不揮発性メモリは、暗号化キー２１６を格納することに加えて、少なくとも１つの確認プログラム（verification program）２１８および少なくとも１つの強制プログラム（enforcement program）２２０を格納することができる。これらのプログラムについて、以降でさらに詳しく論じる。例えばハッシュコード（hash code）、および／または公知のＢＩＯＳコードに関連付けられているその他の電子署名情報、あるいはアプリケーションプログラムなど、その他のデータ２２２をメモリ２０２内に格納することができる。メモリ２０２内に格納することができるデータ２２２のその他の例は、コンピュータ１１０の現在の状態に関する準拠データ（compliance data）や、確認プログラム２１８または強制プログラム２２０に対するダウンロードされたアップデートの確認のための証明書情報とすることができる。メモリ２０２内の不揮発性メモリはまた、オペレーティングシステム１４４から分離した、信頼できる、安全なブートプロセスを可能にすることもできる。
【００２６】
確認プログラム２１８および強制プログラム２２０は、分離コンピューティング環境１２５内に格納されるものとして図示されているが、分離コンピューティング環境１２５内に格納されたプログラムの電子署名またはハッシュと共に外部に、例えばメモリ２０２のデータセクション２１６内に格納することもできる。アプリケーションプログラムをモニタまたは評価する場合には、分離コンピューティング環境１２５は、アプリケーションプログラムの実行前または実行中にそのプログラムのハッシュまたは電子署名を確認することができる。メモリ２０２内に格納されているプログラム２１８、２２０およびデータは、その都度支払うタイプのビジネスモデル、そして使用するたびに支払うタイプのビジネスモデルの成功に関連するセキュリティの一部であるため、それらのデータを不正なアクセスおよび改ざんから保護することが重要かもしれない。メモリ２０２への不正なアクセスは、論理回路２０４、または電子署名確認回路２０８、あるいはその両者の組合せを使用して制限することができる。メモリへのアクセスは、知っているプログラムコード、すなわち分離コンピューティング環境１２５によって信頼されているプログラムコードを実行するプロセスに限定することができる。このプログラムコードは、確認プログラム２１８または強制プログラム２２０とすることができる。しかし、その他のプログラムにメモリ２０２へのアクセスを認めることもできる。例えば、利用に関するクレジットや残高の管理をサポートするアプリケーションは、分離コンピューティング環境１２５のメモリを使用することができる。修理やメンテナンスが必要とされる場合には、修理を行うために正当な証明書を有するネットワーク接続されたデバイス上でサポートされるサービスプロセスにメモリ２０２へのアクセスを認めることができる。
【００２７】
分離コンピューティング環境１２５は、複数の機能を有することができる。分離コンピューティング環境１２５の１つの機能は、自分自身を不正なアップデートおよび改ざんから保護することである。分離コンピューティング環境１２５内に格納されるプログラムおよびデータは、製造時に注入する（inject）こともでき、あるいは分離コンピューティング環境１２５自身によって認証された署名で正しくサインされた場合には、ダウンロードすることもできる。別の機能は、コンピュータ１１０の状態をモニタして、かつ／または評価して、コンピュータ１１０の状態の中で不正侵入やその他の不正な変更が進行中かどうか、または発生したかどうかを判断することができる。モニタリングおよび評価の別の態様は、リソースを提供すること、およびイベントディスパッチャーやバランスマネージャーなどの安全な機能をホストすることに関連した機能に関するコンピュータ１１０の状態の正当な変更をサポートすることとすることができる。第３の機能は、現在のＢＩＯＳコードを確認すること、ならびにＢＩＯＳコードに対するアップデートおよび拡張を確認することとすることができる。分離コンピューティング環境１２５の別の機能は、信頼できるクロックまたはタイマを双方ともプログラムおよび有効期限を測定するための時間の源として提供することとすることができる。このクロックまたはタイマは、分離コンピューティング環境１２５が、コンピュータ１１０へのアクセスを日常的に認められ、ＣＰＵサイクルに「飢えた（starve）」状態にならないようにすることもできる。別の機能は、準拠していない状態がコンピュータ１１０内で判定された場合には拘束を強制することとすることができる。
【００２８】
不正なアップデートおよび改ざんから守るために、メモリ２０２を保護することができる。これを実現するために、例えばコンピュータ１１０の安全なオペレーティングモードのコントロール下にある電子署名によって認証されたアップデートルーチンなど、特定のプログラムだけがメモリ２０２にアクセスできるようにすることができる。オペレーティングシステムやカーネルなどの別の実行環境によって実行されるいかなるプログラムもメモリ２０２にアクセスできないようにすることができる。カーネルは通常、コンピュータ１１０がブートしているときに作動する。例えばＩｎｔｅｌ（登録商標）のｘ８６プロセッサは、いくつかのモード、または実行のリング（rings of execution）で機能することができる。リング０〜２は、カーネルによって占められ、リング３は、「ユーザモード」プロセスによって占められる。第３のモードであるＳＭＭ（system management mode）は、ＢＩＯＳによって占められる。安全なメモリ２０２へアクセスできるプログラムは、カーネルの影響が及ぶ範囲外であるが、ＢＩＯＳを保護する必要があるため、ＳＭＭで実行することができる。
【００２９】
分離コンピューティング環境１２５のセキュリティのために、分離コンピューティング環境１２５以外のデバイスは、単に、分離コンピューティング環境１２５のメモリ２０２の専用の物理メモリにアドレスできないようにすることができる。これは、プログラム２１８、２２０、キー２１６、および状態／オペレーショナルデータ（state/operational data）２２２を含む分離コンピューティング環境１２５のメモリ２０２のオペレーションに関連するデータのいずれに対しても、分離コンピューティング環境しかアクセスおよび変更を行えないようにするための１つの方法にすぎない。外部から生じる、すなわちオペレーティングシステム１４４を通じて生じるメモリ２０２への要求されたすべての変更を確認するために、電子署名確認回路２０８を使用することができる。内部に格納されているキーを使用して電子署名を確認することによって、信頼できないソース、すなわちオペレーティングシステム１４４によって受信されたデータに対して信頼を確立することができる。
【００３０】
メモリ２０２を保護する別の方法は、別の実行モード、例えばモードＺ（Mode Z）やリング（Ring）−１を作成することとすることができる。メモリ２０２は、機能に従ってパーティションで区切ることができ、それによって、メモリ２０２のいくつかのエリアは、モードＺによってのみアクセス可能となり、その一方でメモリ２０２のその他のエリアは、リング０からの読み取り専用となる。リング０からメモリ２０２の特定の指定された範囲への読み取りアクセスなど、メモリ２０２の指定されたセクションへのケースに固有のアクセスが存在することができる。例えば、キー２１６のうちのいくつかは、リング０からの読み取り専用とすることができる。分離コンピューティング環境１２５に関連付けられているコードが、キー２１６への完全な読み取りおよび書き込みアクセスを含むそのすべてのメモリ２０２へのアクセスを有することができるということは明らかである。
【００３１】
分離コンピューティング環境１２５は、オペレーティングシステム１４４をモニタして拘束するためにオペレーティングシステムによって使用されるメモリにアクセスできるようにすることができる。分離コンピューティング環境１２５は、オペレーティングシステム１４４をモニタし、かつ評価するために使用されるため、メモリへの分離コンピューティング環境のアクセスは、オペレーティングシステムの機能の呼び出しを使用すべきではない。さもないと、分離コンピューティング環境１２５上への介入者の攻撃が組み込まれるおそれがある。オペレーティングシステム１４４をモニタし、評価し、拘束するために、分離コンピューティング環境１２５は、メモリウォッチャーおよび命令ポインタウォッチャーの双方を組み込むことができ、これらは、特定のメモリロケーションへのアクセスおよび指定されたロケーションを通じた命令ポインタの動きをモニタする。指定されたメモリロケーションのアクセスおよび使用は、準拠していないプログラムが機能していることや、コンピュータのセキュリティを崩壊させようとする試みが進行中かもしれないことを示している可能性がある。
【００３２】
分離コンピューティング環境１２５は、許可されたリソースまたは使用するたびに支払うタイプのリソースを提供し、かつアクティベートすることに関連した機能をホストする役割を果たすことができる。そのようなリソースは、上述のうちのいくつかまたはすべて、例えばネットワーク接続１７０、１７２、ハードディスクドライブ１４１、あるいはビデオインターフェース１９０を含むことができる。分離コンピューティング環境１２５はまた、バランスマネージャーをホストすることができ、このバランスマネージャーは、使用するたびに支払うタイプのリソースの使用した分および利用可能な分のアカウントを維持する。分離コンピューティング環境１２５は、上述のリソースを提供し、アクティベートし、モニタするために使用することができるため、製造プロセスの初期に、おそらくはコンピュータ１１０を組み立てる前に、分離コンピューティング環境プログラム、例えば確認プログラム２１８および強制プログラム２２０、あるいはその他の初期オペレーショナルデータ２２２をプログラムすること、または注入することが必要となるかもしれない。分離コンピューティング環境１２５の後半段階（late stage）でのプログラミングが行われる場合には、そのプログラミングは、安全な環境において実行することもでき、あるいはデータセキュリティの分野において知られているように、すべての初期プログラミングを確認するためにトランスポートキーを使用することもできる。これは、分離コンピューティング環境１２５のプログラミングが、販売時やユーザによる所有後に実行される場合には、とりわけ重要となる可能性がある。
【００３３】
確認プログラム２１８は、コンピュータ１１０の状態をモニタし、または評価することができる。コンピュータ１１０の状態は、コンピュータ１１０が一式のポリシーまたは所定の条件に準拠しているレベルを判定するために使用することができる。それらの所定の条件は、肯定的な条件および否定的な条件の双方とすることができる。すなわち、ポリシーまたは条件は、特定の要素、すなわちハードウェア、ソフトウェア、周辺機器などの存在を必要とすることもでき、あるいはポリシーは、特定のその他の要素の存在を禁止することもできる。例えば１つのポリシーは、所定のバージョンのシステムドライバの存在を必要とすることができ、その一方で別のポリシーは、別のブートデバイスの存在を禁止することができる。準拠度合いを判定するために、確認プログラム２１８は、オペレーティングシステムによって使用されるリソースの状態、アプリケーションプログラムの状態、ＢＩＯＳ構造（BIOS structure）またはＢＩＯＳ拡張（BIOS extension）の状態をモニタすることができる。さらに確認プログラム２１８は、様々なポリシー、例えば、使用するたびに支払うタイプの契約の契約条件に関連する使用ポリシーを含む使用ポリシーへの準拠度合いをモニタすることができる。準拠していない場合には、確認プログラム２１８は、例えばポップアップメッセージを使用して、ユーザに警告することができ、あるいは強制プログラム２２０をアクティベートして、拘束を開始することもできる。
【００３４】
タイマ２０６は、例えば１カ月間使い放題などの期間を含む、使用するたびに支払うタイプの期間に関する信頼できる基準を提供することができる。タイマ２０６はまた、分離コンピューティング環境１２５の確認プログラム２１８および／または強制プログラム２２０が、自らのそれぞれのタスクを実行するための十分なプロセッサ実行サイクルを必ず受け取れるようにするためのトリガーとしての役割を果たすことができる。このトリガー機能は、論理回路２０４に確認プログラム２１８の実行を強制させることができる。この論理回路２０４は、インタラプト（interrupt）を強制することができ、このインタラプトは、処理装置に確認プログラム２１８を適切な場所から実行させる。
【００３５】
準拠していないと確認プログラム２１８が判定した場合には、是正措置（corrective action）を開始することができる。例えば強制プログラム２２０は、既知の場所からのドライバを用いて、準拠していないドライバを上書きさせることができる。逆に、準拠していない状態を自動的に修正することができない場合には、拘束を課して、システムを準拠させるようにユーザに促すことができる。拘束は、強制プログラム２２０をアクティベートする論理回路２０４によって発動する（invoke）ことができる。強制作業を実行するために、分離コンピューティング環境１２５は、強制プログラム２２０の指示のもとで、コンピュータ１１０の直接の影響またはコントロール下にあるリソースを無効にするか、あるいはその他の形で拘束することができる。ポリシーは、コンピュータの状態に応じて様々なものとすることができ、コンピュータの処理速度を落とすことや、「セーフモード」でブートすることなど、コンピュータの機能的なオペレーションを減らすことを含むことができる。その他の拘束としては、処理のために利用できるランダムアクセスメモリの量を制限すること、インストラクションセットアーキテクチャ、すなわち実行のために利用できるプロセッサコマンドを制限すること、ハードディスク１４１へのアクセスを遅くすること、あるいはハードディスクドライブ１４１上のアクセス可能なスペースを制限することを含むことができる。さらなる拘束としては、ディスプレイの解像度を制限すること、あるいはコンピュータ１１０を頻繁かつ定期的にリセットさせることさえ含むことができる。拘束の目的は、それらの拘束を元に戻せること、より具体的には、ユーザによって元に戻せることである。しかし、サービスを復旧させるために特別な装備を備えて資格を持ったサービス要員が必要となるようなレベルにまでコンピュータ１１０を無効にすることを要求する特定のポリシーも存在することができる。これは、警告にもかかわらずに敵意ある攻撃が一定の時間にわたって繰り返し試みられていると判断された場合に、当てはまることがある。
【００３６】
図３は、分離コンピューティング環境１２５を有するコンピュータ１１０を組み立てる方法を示している。その他の構造的な要素に加えて、符号３０２においてマザーボード（図示せず）を提供することができる。マザーボードは、上述のように、回路部品を取り付けて接続するためのワイヤリングトレース（wiring trace）およびランディングパッド（landing pad）を有する標準的な基板とすることができる。部品を装着していないボード、ならびに部品を装着したマザーボード、および部品を半分装着したマザーボードは、商業用の小売市場で容易に入手することができる。符号３０４において、分離コンピューティング環境１２５をマザーボード上に配置することができる。分離コンピューティング環境１２５は、カスタム集積回路（custom integrated circuit）などの個別のコンポーネントや、ＭＣＭ（multi-chip module）などのコンポーネントの組合せとすることができ、あるいは処理装置１２０のチップに完全に一体化することもできる。
【００３７】
マザーボード上に配置すると、符号３０６において、分離コンピューティング環境１２５を改ざんから保護することができる。改ざん防止メカニズムは、公知のものであるが、エポキシやその他のコーティングの中に入れることを含むことができ、ボードおよび周辺のコンポーネントに損傷や破壊をもたらさずにそれらのエポキシやその他のコーティングを取り外すことは困難である。別の改ざん防止メカニズムは、分離コンピューティング環境１２５をその他のコンポーネントの下にはさむこととすることができる。キーの盗難を阻止するために、金属のコーティングを施して、レーザーによるのぞき見（laser probing）を防止することができる。上述のように、分離コンピューティング環境１２５そのものは、自分自身の回路およびコンテンツのインテグリティーを保護するための別個の手段を有することができる。
【００３８】
符号３０４においてマザーボード上に配置する前または後に、確認プログラムコード２１８および強制プログラムコード２２０などの実行コードを用いて、分離コンピューティング環境１２５を初期設定することができる。確認プログラムおよび強制プログラムの機能については、上述してある。さらに、証明書および既知のハッシュコードなど、キーおよびその他のデータをダウンロードまたは注入することができる。注入（injection）は通常、チップのテスト中など、製造プロセスの早い段階で行われる。遅い段階でダウンロードすると、暗号認証および／または安全なチャネルが必要となる可能性がある。
【００３９】
組み立てたら、コンピュータ１１０をテストすることができる。分離コンピューティング環境１２５の機能のテストを実行するために、符号３１０において、コンピュータの状態の１つまたは複数を変更することができる。この変更は、無許可の周辺機器を取り付けること、無許可のコードをロード／実行すること、あるいは有効期限を過ぎても機能するようにコンピュータ１１０を構成することを含むことができる。符号３１２における分離コンピューティング環境１２５のテストは、準拠していない状態を識別するために確認プログラム２１８が正しく機能すること、および強制プログラム２２０によって適切な拘束が課されることを判定することによって行うことができる。
【図面の簡単な説明】
【００４０】
【図１】コンピュータを示す簡略化された典型的なブロック図である。
【図２】簡略化された分離コンピューティング環境を示すブロック図である。
【図３】関連するデバイスをコンピュータにバインディングする方法を示すフローチャートである。
【図１】
2008521092.tif 000003
【図２】
2008521092.tif 000004
【図３】
2008521092.tif 000005
【国際調査報告】
2008521092.tif 000006