(57)【要約】  コンピュータ、とりわけ使用する度に料金を支払うタイプのコンピュータをモニタするためのシステムおよび方法は、分離コンピューティング環境またはスーパーバイザを使用する。分離コンピューティング環境は、オペレーティングシステムに関連するあらゆるブートデバイスよりも先にブートし、オペレーティングシステムと並行して作動し、オペレーション中のコンピュータをモニタして評価する。分離コンピューティング環境は、コンピュータが、要求されているポリシーに準拠していないと判定すると、クロック速度を遅くすることなどの使用上の妨害を与えるか、またはオペレーティングシステムを完全に無効にすることができる。ユーザは、コンピュータを不快な状態から復旧させて、使用できる状態にリセットするためには、そのコンピュータをサービスプロバイダへ返さなければならないかもしれない。
2008521089.tif 000002
【特許請求の範囲】
【請求項１】
通常モードおよび代替モードにおけるオペレーションに適合されているコンピュータであって、
メモリと、
前記メモリに結合されているプロセッサと、
その他のブートデバイスに優先する第１のブートデバイスであって、前記その他のブートデバイスと並行して作動状態を維持する第１のブートデバイスとを含み、前記第１のブートデバイスは、
改ざんできない様式でデータを保存するためのメモリであって、前記データは、構成データ、暗号データ、ステータスデータ（status data）、または実行可能プログラムデータ（executable program data）のうちの少なくとも１つを含むメモリと、
単調に増加する時間の読み取り値を提供する回路と、
データ入力／出力回路と、
前記メモリ内に保存されているモニタリングプログラムまたは評価プログラムのうちの少なくとも１つを実行するために、前記クロックおよび前記データ入力／出力回路に結合されているプログラム実行環境とを含み、
前記第１のブートデバイスは、いつ前記コンピュータが基準に準拠して機能しているかを判断することを特徴とするコンピュータ。
【請求項２】
前記その他のブートデバイスは、オペレーティングシステムブートデバイスを含み、前記オペレーティングシステムブートデバイスは、前記通常モードに関連付けられていることを特徴とする請求項１に記載のコンピュータ。
【請求項３】
前記コンピュータが前記基準に準拠して機能していない場合に起動される前記代替モードに関連付けられている拘束プログラムコードをさらに含むことを特徴とする請求項１に記載のコンピュータ。
【請求項４】
前記代替モードのオペレーションは、前記オペレーティングシステムブートデバイスを停止することを含むことを特徴とする請求項３に記載のコンピュータ。
【請求項５】
前記代替モードのオペレーションは、前記コンピュータの機能を減らすこと、または前記基準に準拠して機能することに対応する警告を送信することのうちの少なくとも１つを含むことを特徴とする請求項３に記載のコンピュータ。
【請求項６】
前記第１のブートデバイスは、前記コンピュータが電源を入れられたときに初期化され、前記第１のブートデバイスは、前記コンピュータのオペレーション中に実行サイクルを保証されることを特徴とする請求項１に記載のコンピュータ。
【請求項７】
前記代替モードは、前記基準に準拠した状態へ戻すためのユーザインターフェースをさらに含むことを特徴とする請求項１に記載のコンピュータ。
【請求項８】
前記第１のブートデバイスは、前記入力／出力回路を介してポリシーを受け取り、前記ポリシーは、準拠度合いを判定するための前記基準に相当することを特徴とする請求項１に記載のコンピュータ。
【請求項９】
前記第１のブートデバイスは、前記ポリシーを認証することを特徴とする請求項８に記載のコンピュータ。
【請求項１０】
前記基準への準拠度合いに対応するスコアを計算する際に評価データが使用され、前記スコアがしきい値に達した場合に前記代替モードが発動されることを特徴とする請求項１に記載のコンピュータ。
【請求項１１】
前記評価データは、オペレーティングシステムのハートビート、指定されたファイルの確認、システムクロックの確認、現在のオペレーティングモード、前記メモリへの書き込み頻度、または最後のプロビジョニングサイクルからの経過時間のうちの少なくとも１つを含むことを特徴とする請求項１０に記載のコンピュータ。
【請求項１２】
前記第１のブートデバイスは、暗号化サービスをさらに含むことを特徴とする請求項１に記載のコンピュータ。
【請求項１３】
コンピュータ上でポリシーへの準拠度合いをモニタするためのスーパーバイザであって、
安全なメモリと、
単調に増加する時間の測定値を提供するクロックと、
入力／出力回路と、
前記コンピュータのオペレーティングシステムをホストするために使用されるプロセッサとは別個の処理機能であって、前記安全なメモリ、前記クロック、および前記入力／出力回路に結合され、前記安全なメモリおよび前記クロックからの情報を考慮して、前記入力／出力回路を介して受け取られた前記ポリシーへの準拠度合いに対応するデータを評価するための処理機能とを含むことを特徴とするスーパーバイザ。
【請求項１４】
前記コンピュータが前記ポリシーに準拠していない場合に前記コンピュータのオペレーションを妨げるための、前記処理機能に応答する強制回路をさらに含むことを特徴とする請求項１３に記載のスーパーバイザ。
【請求項１５】
前記ポリシーは、前記コンピュータの有効なハードウェア構成に相当し、前記強制回路は、ハードウェアの機能を前記有効なハードウェア構成に制限することを特徴とする請求項１４に記載のスーパーバイザ。
【請求項１６】
コンピュータ上でポリシーに準拠していない状態を判定する方法であって、
前記ポリシーに準拠していない状態を、前記コンピュータ上で評価できる少なくとも１つの基準に関連付けるステップと、
オペレーティングシステムを起動する前にスーパーバイザをインスタンス化するステップと、
前記スーパーバイザにおいて、前記コンピュータ上の前記少なくとも１つの基準に対応するデータをモニタするステップと、
前記データを評価することによって、いつ前記コンピュータが準拠していない状態にあるかを判定するステップとを含むことを特徴とする方法。
【請求項１７】
前記少なくとも１つの基準に対応する前記データに基づくスコアがしきい値に達した場合に、前記コンピュータに拘束を課すステップをさらに含み、それによって前記拘束を課す前記ステップは、前記オペレーティングシステムの少なくとも一部を停止するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記少なくとも１つの基準は、コンピューティングセッションの持続時間、プロビジョニングパケットの購入の間における時間、またはプロビジョニングパケットの購入の合計と比較した前記コンピュータのオペレーションの合計時間のうちの少なくとも１つを含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記少なくとも１つの基準に対応する前記データは、オペレーティングシステムのハートビート、指定されたファイルの確認、システムクロックの確認、現在のオペレーティングモード、前記メモリへの書き込み頻度、または最後のプロビジョニングサイクルからの経過時間のうちの少なくとも１つを含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記オペレーティングシステムから自立したプログラム実行環境を前記スーパーバイザに提供するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピュータシステムに関し、より具体的には、使用する度に料金を支払うタイプのコンピュータをモニタするシステムおよび方法に関する。
【背景技術】
【０００２】
オペレーティングシステムは、コンピューティングシステムの開発において鍵となる基礎的要素である。パーソナルコンピューティングが広まってから数十年にわたって、オペレーティングシステムは、大幅に複雑さを増してきた。相当な数のコンピュータアプリケーションに対して下位互換性を有する一方で、改ざんへの抵抗力を高水準に保証できるだけの十分な安全性を備えたコンピュータオペレーティングシステムを開発することは、きわめて困難である。しかしながら、使用する度に料金を支払うタイプ（pay-per-use）、または、使用する分だけ料金を支払うタイプ（pay-as-you-go）のコンピューティングのための新たなビジネスモデルは、改ざんへの抵抗力が高水準に保証されることを必要とする。
【０００３】
本出願は、２００４年１２月２２日に出願された米国特許出願第１１／０２２，４９３号明細書の一部継続出願であり、その米国特許出願第１１／０２２，４９３号明細書は、２００４年１２月８日に出願された米国特許出願第１１／００６，８３７号明細書の一部継続出願であり、その米国特許出願第１１／００６，８３７号明細書は、２００４年１１月１５日に出願された米国特許出願第１０／９８９，１２２号明細書の一部継続出願である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的とするところは、使用する度に料金を支払うタイプ、または、使用する分だけ料金を支払うタイプのコンピュータをモニタするシステム及び方法を提供することにある。
【課題を解決するための手段】
【０００５】
使用する度に料金を支払うタイプのビジネスモデルにおいて使用するように適合されているコンピュータは、スーパーバイザまたは分離コンピューティング環境を使用して、コンピュータのパフォーマンス、ならびに一連の使用ポリシー（a set of usage policies）への準拠度合い（compliance）をモニタし、評価することができる。分離コンピューティング環境は、安全なメモリ、安全な処理機能、および暗号化機能を有することができる。分離コンピューティング環境は、その他のブートデバイス（boot device）よりも先にブートして、オペレーティングシステムなど、安全とは言えないコンピューティング機能をコンピュータへ導入する前に安全なコンピューティングベースを確立することができる。
【０００６】
本開示の一態様によれば、分離コンピューティング環境は、コンピュータとの間で、データを要求すること、データを受け取ること、あるいは情報を探ることができる。分離コンピューティング環境は、入手したデータを使用して、例えばサービスプロバイダによって確立された、ポリシーへの準拠度合いを表すスコアを作成することができる。このスコアは、ポリシーに準拠していることが確認されるにつれて増やすことができ、また、準拠していないことが判明するにつれて減らすことができる。スコアがしきい値のレベルに達した場合や、しきい値のレベルを下回った場合には、拘束モード（sanctioned mode）を発動することができる。拘束モード、すなわち代替オペレーティングモードは、ユーザへの簡単な警告を含むこともでき、コンピュータが役に立たなくなるようにコンピュータの機能を制限することもでき、あるいはオペレーティングシステムやその他の何らかの主要なコンポーネントを完全に停止し、それによってコンピュータを無効にすることもできる。無効にされると、コンピュータは、準拠していない状態を割り出して是正するためにサービスプロバイダやその他の許可された関係者によるサービスを要求することができ、ユーザがサービス手数料または罰金を支払うことを含むことができる。分離コンピューティング環境は、通知データをユーザやサービス技術者へ送信して、コンピュータの現在の状態、およびコンピュータを復旧させるために取るべき是正措置について判断する上で役立てることができる。同様に、拘束モード以外の場合でも、分離コンピューティング環境は、モニタリングや診断のためにデータをエクスポートすることができる。
【発明を実施するための最良の形態】
【０００７】
以下の文章では、多くの異なる実施形態についての詳細な説明を記載しているが、この説明の法的な範囲は、本明細書に添付されている特許請求の範囲の文言によって定義されるという点を理解されたい。この詳細な説明は、例示的なものにすぎないと解釈されるべきであり、可能な実施形態をすべて説明しているわけではない。可能な実施形態をすべて説明することは、不可能ではないにしても、非現実的と思われるためである。特許請求の範囲内に今後とも収まるであろう現在の技術または本特許の出願日以降に開発される技術を使用して、多くの代替実施形態を実施することができる。
【０００８】
また用語については、「本明細書で使用する際、「      」という用語は、．．．を意味するものと定義する」という文や類似の文を使用して本明細書内で明確に定義されていない限り、その用語の意味を、明示的にも暗示的にも、その率直な意味、すなわち通常の意味を越えて限定する意図はまったくなく、またそのような用語は、本明細書のいずれかのセクションにおいて行われているいずれかの記述（特許請求の範囲の言葉は除く）に基づく範囲に限定されるものと解釈すべきではないという点を理解されたい。本明細書に添付されている特許請求の範囲に記載されているいずれかの用語が、ある単一の意味と一致した方法で本明細書内で言及されている限りにおいては、それは、もっぱら読者を混乱させないように明確にする目的で行われているものであり、そのような特許請求の範囲の用語を、暗示などによって、その単一の意味に限定することを意図するものではない。最後に、特許請求の範囲の要素が、いかなる構造についても記載せずに「手段」という言葉と機能とを記載することによって定義されているのでない限り、いかなる特許請求の範囲の要素の範囲も、３５  Ｕ．Ｓ．Ｃ．セクション１１２、第６パラグラフの適用に基づいて解釈されることを意図するものではない。
【０００９】
本発明の機能の多く、および本発明の原理の多くは、ソフトウェアプログラムやソフトウェア命令、および特定用途向けＩＣなどのＩＣ（integrated circuit）と共に、あるいはそれらの中に、最もよく実装される。当業者なら、場合によっては、例えば利用可能な時間、現在の技術、および経済面での考慮事項によって誘発される多大な労力および多くの設計上の選択肢にもかかわらず、本明細書で開示されるコンセプトおよび原理によって導かれれば、そのようなソフトウェア命令およびソフトウェアプログラムならびにＩＣを最小限の試みで容易に作成できるであろうと予想される。したがって、簡潔にするために、また本発明による原理およびコンセプトを分かりにくくするあらゆる危険性を最小限に抑えるために、そのようなソフトウェアおよびＩＣについてさらに論じる場合には、好ましい実施形態の原理およびコンセプトに関する本質的な要素に限定することとする。
【００１０】
図１は、コンピュータ１１０の形態のコンピューティングデバイスを示している。コンピュータ１１０のコンポーネントは、処理装置１２０と、システムメモリ１３０と、システムメモリを含む様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１とを含むことができるが、これらには限定されない。システムバス１２１は、メモリバスまたはメモリコントローラと、ペリフェラルバスと、様々なバスアーキテクチャのいずれかを使用するローカルバスとを含む複数のタイプのバス構造のいずれにすることもできる。例えばこのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバス、およびメザニンバスとしても知られているＰＣＩ（Peripheral component Interconnect）バスを含むが、これらには限定されない。
【００１１】
コンピュータ１１０は通常、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ１１０によってアクセスできる利用可能な任意の媒体とすることができ、揮発性媒体および不揮発性媒体、ならびに取り外し可能な媒体および取り外し不可能な媒体の双方を含む。例えばコンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらには限定されない。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術において実装される揮発性媒体および不揮発性媒体、ならびに取り外し可能な媒体および取り外し不可能な媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、またはその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disk）、またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶装置、あるいは所望の情報を保存するために使用可能で、コンピュータ１１０によってアクセス可能なその他の任意の媒体を含むが、これらには限定されない。通信媒体は通常、搬送波やその他の伝送メカニズムなどの被変調データ信号内のコンピュータ読取り可能命令、データ構造、プログラムモジュール、あるいはその他のデータを具現化し、任意の情報伝達媒体を含む。「被変調データ信号」という用語は、情報をその信号内で符号化するような方法で設定または変更されたその特性のうちの１つまたは複数を有する信号を意味する。例えば通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音波媒体、無線周波数媒体、赤外線媒体、その他の無線媒体などの無線媒体とを含むが、これらには限定されない。また上記のいずれの組合せも、コンピュータ読取り可能媒体の範囲内に含まれるものである。
【００１２】
システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ（read only memory）１３１およびＲＡＭ（random access memory）１３２などの揮発性メモリおよび／または不揮発性メモリの形態で含む。ＢＩＯＳ（basic input/output system）１３３は、起動時などにコンピュータ１１０内の要素同士の間における情報伝達を補助する基本ルーチンを含み、通常はＲＯＭ１３１内に格納されている。ＲＡＭ１３２は通常、処理装置１２０がすぐにアクセスできるか、および／または処理装置１２０によってその時点で操作されているデータモジュールおよび／またはプログラムモジュールを含む。図１は、例としてオペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示しているが、これらには限定されない。
【００１３】
またコンピュータ１１０は、その他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。図１は、例示のみを目的として、取り外し不可能な不揮発性の磁気媒体との間で読み取りや書き込みを行うハードディスクドライブ１４１と、取り外し可能な不揮発性の磁気ディスク１５２との間で読み取りや書き込みを行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭやその他の光学記憶媒体などの取り外し可能な不揮発性の光ディスク１５６との間で読み取りや書き込みを行う光ディスクドライブ１５５とを示している。典型的な動作環境において使用できるその他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、これらには限定されない。ハードディスクドライブ１４１は通常、インターフェース１４０などの取り外し不可能なメモリインターフェースを介してシステムバス１２１に接続されており、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取り外し可能なメモリインターフェースによってシステムバス１２１に接続されている。
【００１４】
図１に示されている上述のドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ読取り可能命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域を提供する。例えば図１において、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同一であるか、または異なっていてもよいという点に留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が、少なくとも異なるコピーであることを示すために、異なる番号を割り当てている。ユーザは、キーボード１６２や、通常はマウス、トラックボール、あるいはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナなどを含むことができる。これらおよびその他の入力装置は、システムバスに結合されているユーザ入力インターフェース１６０を介して処理装置１２０に接続される場合が多いが、パラレルポート、ゲームポート、ＵＳＢ（universal serial bus）などのその他のインターフェース構造およびバス構造によって接続することもできる。またモニタ１９１やその他のタイプの表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７やプリンタ１９６などのその他の周辺出力装置を含むこともでき、これらは、周辺出力インターフェース１９５を介して接続することができる。
【００１５】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で機能することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、あるいはその他の一般的なネットワークノードとすることができ、図１にはメモリ記憶装置１８１しか示されていないが、通常はコンピュータ１１０に関連する上述の要素の多くまたはすべてを含む。図１に示されている論理接続は、ＬＡＮ（local area network）１７１およびＷＡＮ（wide area network）１７３を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見受けられる。
【００１６】
ＬＡＮネットワーキング環境において使用する場合には、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境において使用する場合には、コンピュータ１１０は通常、モデム１７２や、インターネットなどのＷＡＮ１７３上で通信を確立するためのその他の手段を含む。モデム１７２は、内蔵型または外付け型とすることができ、ユーザ入力インターフェース１６０やその他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク化された環境においては、コンピュータ１１０に関連して示されているプログラムモジュール、またはその一部をリモートメモリ記憶装置内に格納することができる。図１は、例としてリモートアプリケーションプログラム１８５をメモリ装置１８１上にあるものとして示しているが、この形態には限定されない。
【００１７】
通信接続１７０、１７２によって、このデバイスは、その他のデバイスと通信することができる。通信接続１７０、１７２は、通信媒体の一例である。通信媒体は通常、搬送波やその他の伝送メカニズムなどの被変調データ信号内のコンピュータ読取り可能命令、データ構造、プログラムモジュール、あるいはその他のデータを具現化し、任意の情報伝達媒体を含む。「被変調データ信号」とは、情報をその信号内で符号化するような方法で設定または変更されたその特性のうちの１つまたは複数を有する信号とすることができる。例えば通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音波媒体、ＲＦ媒体、赤外線媒体、その他の無線媒体などの無線媒体とを含むが、これらには限定されない。コンピュータ読取り可能媒体は、記憶媒体および通信媒体の双方を含む。
【００１８】
分離コンピューティング環境１２５は、スーパーバイザ、信頼できるコンピューティングベース、あるいはその他の安全な環境を実装するために使用することができ、コンピュータ１１０をモニタし、評価し、および／または使用のために確立されたポリシーが遵守されていない場合に拘束するために使用することができる。それらのポリシーは、コンピュータ１１０のユーザと、コンピュータ１１０内に利害を有するサービスプロバイダとの間における合意の条件を反映することができる。分離コンピューティング環境１２５については、以下に図２を参照して、さらに詳しく説明する。
【００１９】
分離コンピューティング環境１２５は、複数の方法でインスタンス化することができる。１つまたは複数の別個のコンポーネントによって実装される場合には、分離コンピューティング環境１２５は、コンピュータのマザーボード（図示せず）上に配置することができる。分離コンピューティング環境１２５を取り外すと、あるいはその蓋を外すと、マザーボードおよび／または周辺のコンポーネントに恒久的な損傷が生じて、コンピュータ１１０が機能できなくなるようにすることが理想的である。
【００２０】
分離コンピューティング環境１２５の別のインスタンス化は、図１に示されているようなものとすることができ、ここでは、分離コンピューティング環境１２５は、処理装置１２０内に組み込まれている。処理装置内にそのように配置されていることは、処理装置のレジスタによりよくアクセスできること、およびデータシーケンスをモニタできること、ならびに物理的な攻撃に対する抵抗力が高まることという利点を提供することができる。
【００２１】
認証されたブートプロセスが存在する場合には、分離コンピューティング環境１２５は、ソフトウェア内に実装することができる。なぜなら、そのブートプロセスが、実行サイクルおよび認証されたオペレーティング環境を保証することができるためである。このような場合には、分離コンピューティング環境１２５は、別個のプロセッサを不要とすることができ、メイン処理装置１２０から実行することができる。認証されたブートを利用できない場合には、分離コンピューティング環境１２５のハードウェア実装を推奨することができる。
【００２２】
使用する度に料金を支払うタイプ、または、使用する分だけ料金を支払うタイプの構成においてコンピュータの使用を評価して許可するために、ＬＰＭ（license provisioning module）（図３および図４を参照）を組み込むことができる。このＬＰＭは、ソフトウェア内に実装する場合には、不揮発性メモリ１４６内に格納して、メモリ１３６から実行することができる。ＬＰＭは、ソフトウェア内に実装される場合には、攻撃に対して弱くなるおそれがある。スーパーバイザ（図３および図４を参照）および／または分離コンピューティング環境１２５の１つの目的は、ＬＰＭのインテグリティーを確かなものとし、機能を正す上で役立つためにＬＰＭの監視役としての役割を果たすこととすることができる。
【００２３】
代替実施形態においては、分離コンピューティング環境１２５は、コンピュータの有効なハードウェア構成に関して、ＬＰＭの役割を担うことができる。すなわち、別個にブートされる分離コンピューティング環境１２５は、潜在的に利用可能な機能よりも少ない許可された機能に従ってコンピュータのオペレーションを可能にする構成データを有することができる。例えばコンピュータは、５１２ＭＢ（megabyte）のＲＡＭ（random access memory）と共に作動することができるかもしれないが、有効な構成は、２５６メガバイトのＲＡＭを指定する。分離コンピューティング環境１２５は、コンピュータの機能を２５６ＭＢのシステムメモリに制限することができる。同様の制限を、プロセッサのクロックレート、利用可能なキャッシュメモリ、利用可能なプロセッサ１２０のコア（core）の数、グラフィックスカードの機能、ハードドライブの容量、ネットワーキングオプション（networking option）、あるいは内部バスドライバ（internal bus driver）に関して強制できるようにすることができる。実装の観点からは、モニタされたアクティビティーに基づいて制限を課すか、または所定の設定やライセンスに基づいて制限を強制するかの間には、違いはほとんどない、あるいはまったくない。
【００２４】
図２を参照して、簡略化された典型的な分離コンピューティング環境（isolated computing environment）について説明する。この分離コンピューティング環境は、上述した分離コンピューティング環境１２５とすることもでき、あるいはその分離コンピューティング環境１２５に類似したものとすることもできる。分離コンピューティング環境１２５は、揮発性と不揮発性の両方のメモリ２０２、データ入出力回路２０４、およびタイマ（timer）またはクロック２０６を含むことができる。例えばタイマ２０６は、実際の時間の間隔をカウントすることによってクロック機能を実施するために使用することができる。
【００２５】
分離コンピューティング環境１２５は、電子署名確認回路（digital signature verification circuit）２０８をさらに含むことができる。外部のエンティティの一方向の確認、例えばサーバ（図示せず）の確認が必要とされる場合には、乱数発生器２１０を、電子署名確認回路２０８の一部とすることができる。電子署名技術は、よく知られており、ハッシュ法、署名照合、対称アルゴリズムおよび非対称アルゴリズム、ならびにそれらのそれぞれのキーについては、本明細書では詳細には論じない。
【００２６】
分離コンピューティング環境１２５のブロック同士は、バス２１２によって結合することができる。バス２１２は、外部のアクセスのために使用されるシステム／処理装置バス２１４とは別個のものとすることができる。セパレートバス（separate bus）という構成は、バス２１２によって渡されるデータへのアクセスを制限することによって、セキュリティーを高めることができる。バス２１２は、メモリ２０２内に保存されている暗号化キー２１８へのパワーアタック（power attack）をより困難にするために、平衡型のデータライン（balanced data lines）などの、セキュリティー上の予防措置を組み込むことができる。
【００２７】
プロセッサ２１６は、プログラムの実行に利用することができる。上述したように、認証されたブート（attested boot）を利用できない場合には、プロセッサ２１６を含めることにより、保証されたコンピューティング機能と、オペレーティングシステム１３４からの分離とを、分離コンピューティング環境１２５に提供することができる。
【００２８】
メモリ２０２は、暗号化キー２１６を保存することに加えて、データ２２０を保存することができ、このデータ２２０は、準拠度合い（compliance）に関連する現在のスコアなどの操作情報（operational information）や、特定の契約情報などのシステム情報を含むことができる。評価データ（measurement data）２２２は、モニタプログラム２２４に関連付けることができる。このモニタプログラム２２４は、後でさらに詳しく説明するが、簡単に言えば、評価を取り込み、コンピュータ１１０の現在のオペレーションに関する情報を受け取り、準拠スコア（compliance score）を測定するために使用される。準拠スコアが所定のしきい値を下回った場合には、拘束プログラム２２６を発動することができる。拘束プログラム２２６は、コンピュータ１１０を弱めるまたは無効にするためのソフトウェアメカニズムおよびハードウェアメカニズムの双方をトリガーすることができる。
【００２９】
図３は、コンピュータ１１０の例示的な一実施形態を示しており、使用する度に料金を支払うタイプ、または、使用する分だけ料金を支払うタイプのコンピューティングに関連するハードウェアコンポーネントと、ソフトウェアコンポーネントとの関係を示している。図１のオペレーティングシステム１３４は、使用する分だけ料金を支払うタイプのオペレーションに関連するＬＰＭ３０２およびオペレーティングシステムサービス３０４をサポートすることができる。オペレーティングシステムサービス３０４は、信頼できる時間（secure time）、安全なストア（secure store）、および暗号化／復号化を含むことができる。この実施形態においては、分離コンピューティング環境１２５の要素は、スーパーバイザ（supervisor）３０６として構成されている。スーパーバイザ３０６は、安全なメモリ（secure memory）３０８、信頼できるクロック（secure clock）３１０、および暗号化キーストア（cryptographic key store）３１２を含むことができる。プロビジョニングパケット（provisioning packet）を処理する際に、および外部のエンティティに対してコンピュータ１１０を識別する際に使用するために、一意のハードウェア識別子（unique hardware identifier）３１４をスーパーバイザ３０６にとって利用可能にすることができる。
【００３０】
安全なメモリ３０８は、分離コンピューティング環境１２５によってのみ、および／または暗号認証（cryptographic authentication）の後にのみアクセスすることができる別個のメモリエリア（separate memory area）とすることができる。信頼できるクロック３１０は、改ざんできない時間基準（tamper-resistant time base）を提供することができ、この改ざんできない時間基準は、コンピュータの寿命にわたって単調に増加する時間を提供する。信頼できるクロック３１０は、インターバルの時間を計るために（for interval timing）、あるいはカレンダー基準（calendar base）として、使用することができる。暗号化キーストア３１２は、暗号化キーのための記憶領域を提供することができる。キーストア３１２は、基本的に書き込み専用メモリとすることができ、また暗号化アルゴリズムを含むことができ、それによって、計算はキーストア内で実行され、結果のみが提供される。キーは、いったん書き込まれて確認されると、キーストア３１２からは読み出せなくなる。
【００３１】
スーパーバイザ３０６、およびその基礎をなす分離コンピューティング環境１２５は、オペレーティングシステム１３４から独立して機能することができる。セキュリティー上の理由から、スーパーバイザ３０６は、コンピュータ１１０が電源をオンにされたとき、あるいは再起動されたときに、その他のいかなるブートデバイスよりも先にブートすることができる。オペレーティングシステムから独立してブートすることは、スーパーバイザ３０６および分離コンピューティング環境１２５が、別のブートデバイスによってなりすまされたり、あるいはＣＰＵ時間が不足したりすることのないようにする上で役に立つ。
【００３２】
スーパーバイザ３０６とオペレーティングシステムサービス３０４との間における通信は、論理的な通信リンク３１６上で実現することができ、物理的な通信バス２１４上でサポートすることができる。ＬＰＭ３０２は、論理リンク３１８によって示されているように、スーパーバイザ３０６と通信することができる。リンク３１８は、スーパーバイザ３０６からＬＰＭ３０２への、監査データを求める要求をサポートする。さらにＬＰＭ３０２は、システムの準拠度合いの継続的な監査として、スーパーバイザ３０６に周期的なハートビート（heartbeat）を送信することができる。スーパーバイザ３０６は、準拠していない状態（noncompliant situation）が判明した場合に、オペレーティングシステム１３４を完全に無効にすることができるため、コンピュータ１１０が拘束モードにある間に使用するための拘束モードユーザインターフェース３２０を提示するために十分なパワーおよびハードウェアアクセスを有することができる。
【００３３】
監査（audit）／ハートビートデータは、論理リンク３１８を介して送信することができ、ソフトウェアコンポーネント、とりわけＬＰＭ３０２を検証するのに必要とされるデータを含むことができる。スーパーバイザ３１６は、ハートビートデータを定期的な間隔で待つようにプログラムすることができる。ハートビートデータは、リプレイアタック（replay attack）を防止するためのシーケンス番号やその他の方法を含む、バイナリー実行コードの電子署名などの検証情報を含むことができる。例えば、ＬＰＭ３０２からの定期的なハートビートは、そのＬＰＭが依然として作動中であるという証拠として、またその署名が確認された場合には、そのＬＰＭが未修正のコードの正当なバージョンであるという証拠として、機能することができる。スーパーバイザがハートビートの信頼性を検証できなかった場合や、ハートビートが所定の期間内に届かなかった場合には、ハートビートを失敗とすることができ、準拠スコアを減らすことができる。ポリシールール（policy rule）によっては、必要以上に頻繁に届くハートビートメッセージにペナルティーを科すことはできず、その一方で、ハートビートの失敗が１回だけでは、拘束を発動するのに十分とすることはできない。
【００３４】
スーパーバイザ３０６は、公知のハイパーバイザ（hypervisor）またはモニタとは異なる。モニタは、オペレーティングシステムと、関連するハードウェアとの間に存在して、リソースシェアリングやＣＰＵタイムスライシング（CPU time slicing）を調整することができる。モニタは、オペレーティングシステムと密接に結び付いているため、様々なオペレーティングシステムに対して、あるいはオペレーティングシステムのバージョンに対してさえ、モニタを抽象化することは困難である。対照的に、スーパーバイザ３０６は、一実施形態においては、通常のオペレーション中のシステムリソースの使用を管理または調整しようとはしない。スーパーバイザ３０６は、その最も簡単な形態においては、ポリシー（policy）を受け取り、そのポリシーを認証し、準拠しているかどうかをモニタし、そのポリシーに準拠していない場合には拘束を行う。このポリシーは、所定の限界、例えば、使用時間や暦上の使用月数に対応する、オペレーティングシステムから渡されるデータ構造とすることができる。
【００３５】
スーパーバイザ３０６は、オペレーティングシステムやその他のブートデバイスから独立しているため、実質的にあらゆるオペレーティングシステムやオペレーティング環境のためのポリシーを強制するために使用することができる。基礎をなすプラットフォームからのこの独立性は、一実施形態においては、スーパーバイザが、コンピューティングサイクル、安全なメモリ、および時間基準へのアクセスを保証されていることによって促進される。
【００３６】
図４は、コンピュータ１１０などの、使用する度に料金を支払うタイプのコンピュータに関連するオペレーティングシステムおよびハードウェアコンポーネントの代替実施形態を示している。図３の場合と同様に、オペレーティングシステム１３４は、ＬＰＭ３０２と、基礎をなすオペレーティングシステムサービス３０４とを含む。より小さいスーパーバイザ３０９は、ハードウェアの分離コンピューティング環境１２５に基づくこともでき、図３の実施形態のようにシステムの安全なリソースを提供して維持するのではなく、バス３３０を介してシステムの安全なリソース３０７をモニタするのみとすることができる。安全なリソース（secure resource）３０７は、安全なメモリ３０８と、信頼できるクロック３１０と、暗号化キーストア３１２と、ハードウェア識別子３１４とを有することができる。様々なオペレーティングシステムのエンティティの呼び出し（various operating system calling entities）への個々のサービス要求は、データパス３２２、３２４、３２６によって示されている論理接続を介して行うことができる。監査／ハートビート論理接続（audit/heartbeat logical connection）３１８は、スーパーバイザ３０９とＬＰＭ３０２との間において保持することができる。この構成においては、ハードウェア識別子３１４は、とりわけプロビジョニングパケットを確認するため、およびハートビート信号（heartbeat signal）を生成する際に使用するために、論理接続３２８を介してＬＰＭ３０２にとって利用可能にすることができる。
【００３７】
オペレーションにおいては、図３および図４に示されている双方の構成は、準拠スコアを作成することに関して同様に機能することができる。準拠スコアは、評価および観察によって決定された加重値を累積したものとすることができる。モニタリングプロセス２２４（図２）によって実行された評価２２２は、様々なイベントを、その最も単純化した形式で、すなわちよいか悪いかで評価して分類するために使用することができる。それぞれのよいイベントは、結果として準拠スコアを増やし、その一方でそれぞれの悪いイベントは、準拠スコアを減らす。準拠スコアが最低限のしきい値に達して、拘束が課されるようにする上で、１つのイベントだけで十分とはできないように基準を確立することができる。
【００３８】
図３および図４の実施形態のスーパーバイザ３０６、３０９は、双方ともハートビート信号の頻度および質を評価することができる。よいハートビートが時間どおりに受信された場合には、準拠スコアを増やすことができる。図３のスーパーバイザ３０６は、測定および評価の際に使用されるキーデータへの完全なアクセスを有することができる。例えば、オペレーティングシステムが使用状況を測定中であるとモニタ２２４が判断した場合にも、準拠スコアを増やすことができる。モニタ２２４は、使用した時間の集計と、さらなる時間の購入との対比について判断することもできる。推定された購入が推定された使用と一致した場合にも、準拠スコアを増やすことができる。指定されたファイル、例えばＬＰＭ３０２またはブートファイル（図示せず）、の確認や、システムクロックの確認など、その他の評価を取り込むこともできる。
【００３９】
しかしながら、ハートビートが失敗した場合や、時間どおりに届かなかった場合には、準拠スコアを減らすことができる。オペレーティングシステムが測定されていない状態が所定の時間にわたって継続した場合にも、準拠スコアを減らすことができる。オペレーティングシステムが、あまりにも高い頻度で測定状態に入ったり出たりしていて、測定回路が改ざんされている可能性を示唆している場合にも、準拠スコアを減らすことができる。
【００４０】
図４の実施形態のスーパーバイザ３０９は、直接の測定データやオペレーティングシステムの状態へのより少ないアクセスを有することができる。このような構成は、測定データが更新されている旨の表示として、ハートビートのモニタリングや、安全なストレージの変更頻度などのその他の要因に、さらに依存することができる。
【００４１】
いかなる実施形態における準拠スコアも、最初の値から開始して、様々な「よい」評価および「悪い」評価が判定されるにつれて増減することができる。準拠スコアが十分に下がると、第１のしきい値に達して、アクションをトリガーすることができる。一実施形態においては、第１のしきい値を唯一のしきい値とすることができ、すぐに拘束を課すことができる。別の実施形態においては、第１のしきい値は、改ざんの懸念が生じた旨、および適切なアクションを取ることが必要かもしれない旨をユーザに忠告する警告をトリガーすることができる。さらに別の実施形態においては、第１のしきい値は、ディスプレイの解像度を制限することや、プロセッサのスピードを遅くすることなど、限られた拘束をトリガーすることができる。準拠スコアが下がり続けた場合には、オペレーティングシステムを無効にすることなど、劇的な拘束を発動できるしきい値に達する可能性がある。この時点になると、コンピュータ１１０を復旧させるためには、サービスセンターへ持ち込むことが必要かもしれない。オペレーティングシステムが無効にされた場合には、復旧サービスのために拘束モードユーザインターフェース３２０を起動することができる。
【００４２】
例示的な一実施形態を使用して説明するために、コンピュータ１１０には、最初の準拠スコアとして８０を与えることができる。一連のハートビート、使用時間の購入、および所定の測定が成功すると、準拠スコアは、最大で１００まで増やすことができる（その他の実施形態では、準拠スコアの上限を使用することはできない）。しかし、この時点でユーザは、ＬＰＭ３０２を上書きすることによって測定メカニズムを無効にしようと試みる。デスティネーションメモリレンジ（destination memory range）のハッシュが、予想されるハッシュと一致しないため、ＬＰＭ３０２の評価は失敗する。ハートビート信号は停止し、所定の測定も停止する。というのも、代替ＬＰＭは、それらの機能をサポートするようにプログラムされていないためである。それぞれの評価の失敗が連続すると、準拠スコアは、例えば７０に下がる可能性がある。準拠スコアが７０に達した場合には、システムが改ざんされた模様である旨、および是正措置を取らずにシャットダウンする旨を示す警告メッセージがユーザに表示される。ユーザはこの警告を無視し、準拠スコアは５５へと下がる。そしてスーパーバイザ３０６は、拘束プログラム２２６を起動して、例えば処理装置１２０を停止させることによってコンピュータ１１０をシャットダウンするためのアクションを取ることができる。次いで、拘束モードユーザインターフェース３２０は、コンピュータが無効にされた旨、および復旧させるためにはサービスセンターに持ち込まなければならない旨をユーザに知らせるメッセージをポップアップ表示することができる。
【００４３】
サービスセンターにおいて、技術者は、拘束モードユーザインターフェース３２０を使用して、代替ＬＰＭが準拠していなかったことを判断し、準拠したＬＰＭ３０２を復旧させることができる。サービス技術者は、スーパーバイザ３０６をトリガーして、必要に応じてモニタ２２４プログラムを再始動することができ、希望に応じて準拠スコアを手動でリセットすることができる。この例においては、誰かがコンピュータを改ざんしたことは明らかであるため、罰金やサービス手数料をユーザに課して、今後システムを改ざんする気が起きないようにすることができる。
【００４４】
図５では、コンピュータ上でポリシーに準拠していない状態を判定する方法について説明する。コンピュータ１１０のためのオペレーションのルールおよび使用基準を確立するポリシーを、コンピュータ１１０に金銭的な利害を有するサービスプロバイダやその他の関係者によって確立することができる。ポリシーが確立されると、４０２において、そのポリシーに準拠しているか否かを判定するための評価可能な基準を作成することができる。この基準は、既知のメモリレンジのハッシング（hashing）などの評価、および／またはコンピュータ１１０上で使用クレジット（usage credit）を再び提供することなど、コンピュータ１１０上の状態およびアクティビティーのモニタリングを含むことができる。この評価およびモニタリングの基準は、スーパーバイザ３０６などのスーパーバイザ内にプログラムすることができ、そして、そのスーパーバイザを分離コンピューティング環境１２５上に組み込むことができる。
【００４５】
オペレーティングシステム１３４を含むその他のあらゆるシステム要素を起動する前に、すなわちブートする前に、４０４においてスーパーバイザ３０６を起動することができる。先にブートする理由については前述したが、簡単に言えば、そうすることは、スーパーバイザ３０６にとって既知のクリーンなオペレーティング環境を確保する上で役立つ。例えば、製造中やインストール時に最初に起動したときに、確立されたポリシーに従ったオペレーションに対応して、最初の準拠スコアを確立することができる。一実施形態においては、スーパーバイザ３０６は、オペレーティングシステム１３４および関連するコンポーネントに対して行われる攻撃からスーパーバイザ３０６をさらに隔離するために、オペレーティングシステム１３４から自立したプログラム実行環境を有する。
【００４６】
スーパーバイザ３０６がブートされると、オペレーティングシステム１３４やその他の任意の初期ブートデバイス（early boot device）など、その他のブートデバイスを４０６において始動することができる。コンピュータ１１０が作動しているときには、スーパーバイザ３０６は、ブロック４０２で作成された基準に従って、４０８においてモニタリングおよび評価を開始することができる。モニタリングや評価でのそれぞれの所見を使用して、準拠スコアを調整することができる。
【００４７】
ブロック４０８において使用される基準は、クロックの確認、単一のコンピューティングセッションの持続時間、プロビジョニングパケットが提供されている間に測定された時間の量、あるいは提供されたプロビジョニングパケットの合計数におけるコンピュータのオペレーションの合計時間の間における比較を含むことができる。
【００４８】
様々な基準を評価する際に使用できる測定データおよび評価データは、オペレーティングシステムのハートビート、指定されたファイルの確認、システムクロックの確認、現在のオペレーティングモード、メモリへの書き込み頻度、または最後のプロビジョニングサイクル（provisioning cycle）からの経過時間とすることができる。例えば、クロックの確認は、信頼できるクロック時間３１０と、オペレーティングシステムのコントロール下にあるソフトクロック（soft clock）との比較を含むことができ、その後には、プロビジョニングパケットが提供された最後の時間の分析が続くことができる。
【００４９】
それぞれの評価やモニタリングの結果が判定されるたびに、４１０において準拠スコアを所定のしきい値と比較することができる。スコアがしきい値を上回った場合には、ブロック４１０からの「いいえ」の分岐は、ブロック４０８へ戻ることができ、そこでさらなる評価を取り込むことができる。準拠スコアがしきい値を下回った場合には、ブロック４１０からの「はい」の分岐に進み、そのスコアが警告を示しているか拘束を示しているかを４１２において判定するために実行されるさらなるテストが適切となる。警告が適切である場合には、警告とラベル付けされている分岐にブロック４１２から進むことができ、４１６において警告が表示される。そしてブロック４０８において、実行を続けることができる。
【００５０】
拘束が適切であるとブロック４１２において判定された場合には、ブロック４１２からブロック４１４への拘束の分岐を進み、ブロック４１４において拘束を課すことができる。一連の拘束を利用可能とすることができ、それらの拘束としては、ディスプレイの解像度や色の深みを落とすこと、プロセッサを遅くすることが含まれ、ポリシーによっては、オペレーティングシステムを停止することができ、あるいはコンピュータ１１０を実質的に無効にするその他の主要なシステムや装置を停止することもできる。
【００５１】
上述した文章は、本発明の多くの異なる実施形態の詳細な説明を記載しているが、本発明の範囲は、本明細書に添付されている特許請求の範囲の文言によって定義されるという点を理解されたい。この詳細な説明は、例示的なものにすぎないと解釈されるべきであり、本発明の可能な実施形態をすべて説明しているわけではない。というのも、可能な実施形態をすべて説明することは、不可能ではないにしても、非現実的と思われるためである。本発明を定義する特許請求の範囲内に今後とも収まるであろう現在の技術または本特許出願の出願日以降に開発される技術を使用して、多くの代替実施形態を実施することができる。
【００５２】
したがって、本発明の趣旨および範囲から逸脱することなく、本明細書で説明および例示されている技術および構造において、多くの修正形態および変形形態を作成することができる。したがって、本明細書に記載されている方法および装置は、例示的なものにすぎず、本発明の範囲を限定するものではないという点を理解されたい。
【図面の簡単な説明】
【００５３】
【図１】コンピュータを示す簡略化された典型的なブロック図である。
【図２】簡略化された分離コンピューティング環境を示すブロック図である。
【図３】スーパーバイザの一実施形態を示す簡略化された例示的なブロック図である。
【図４】スーパーバイザの別の実施形態を示す簡略化された例示的なブロック図である。
【図５】コンピュータ上でポリシーへの準拠を確立して評価する方法を示すフローチャートである。
【図１】
2008521089.tif 000003
【図２】
2008521089.tif 000004
【図３】
2008521089.tif 000005
【図４】
2008521089.tif 000006
【図５】
2008521089.tif 000007