(57)【要約】      （修正有）【課題】ＷＷＷ上に多くの悪意あるユーザがおり、多くのデバイスが提供する情報が完全に信頼が置けることはなく、サービスプロバイダがコンシューマに対して配信するサービスが危険に曝されないシステムを提供する。【解決手段】ネットワークを介してサービスプロバイダにアクセスするクライアントプラットフォームを含み、クライアントプラットフォームは、サービスプロバイダから、プラットフォーム査定および検証の要求を受信する。クライアントプラットフォームは、プラットフォームの情報を集め、査定および検証を行う。クライアントプラットフォームはその後、サービスプロバイダからサービスを受信してもよい。インテグリティマニフェスト比較によりクライアントプラットフォームの状態が良好でない場合、クライアントプラットフォームは、クライアントプラットフォームが危険に曝されてきたことを示す不良通知をサービスプロバイダに送る。【選択図】図１Ａ
2010033563.tif 000002
【特許請求の範囲】
【請求項１】
信用検証方法であって、
サービスプロバイダにアクセスする段階と、
前記サービスプロバイダから、プラットフォーム査定および検証の要求を受信する段階と、
プラットフォームの情報を集め、査定および検証を既知の良好な値と比較する段階と、
前記比較によりプラットフォームの状態が良好であると示される場合、前記サービスプロバイダに対して承認を送り、前記サービスプロバイダからサービスを受信する段階と、を備える、方法。
【請求項２】
前記比較によりプラットフォームの状態が良好でないと示される場合、前記サービスプロバイダに不良通知を送る段階を備え、
前記不良通知により、前記サービスプロバイダは前記プラットフォームが危険に曝されてきたことを知る、請求項１に記載の方法。
【請求項３】
サービスプロバイダにアクセスする前に、前記サービスプロバイダを提供する（provision）段階を備える、請求項１に記載の方法。
【請求項４】
前記サービスプロバイダに承認を送る前に、プラットフォームの状態に署名をして承認を示す段階を備える、請求項１に記載の方法。
【請求項５】
プラットフォーム査定および検証には、オペレーティングシステム全体の状態および提供されるサービスを示す重要なオペレーティングシステムコンポーネントおよびアプリケーションの査定と、インテグリティマニフェスト比較とが含まれる、請求項１に記載の方法。
【請求項６】
インテグリティマニフェスト比較は、
前記サービスプロバイダを表す第三者コードについてランタイムインテグリティマニフェストを計算することと、
前記ランタイムインテグリティマニフェストを、前記サービスプロバイダについて格納されているインテグリティマニフェストと比較することと、を含む、請求項５に記載の方法。
【請求項７】
格納されているインテグリティマニフェストが存在しない場合、
前記第三者コードについて前記サービスプロバイダからインテグリティマニフェストを取得する段階と、
前記ランタイムインテグリティマニフェストを、前記取得されたインテグリティマニフェストと比較する段階と、を備える、請求項６に記載の方法。
【請求項８】
前記インテグリティマニフェスト比較はエージェント実行環境が行う、請求項５に記載の方法。
【請求項９】
前記サービスプロバイダにアクセスする前に、前記サービスプロバイダのための第三者コードを認証する段階を備える、請求項１に記載の方法。
【請求項１０】
プラットフォームの情報を集め、査定および検証を既知の良好な値と比較する段階は、ＯＳにとらわれず行われる、請求項１に記載の方法。
【請求項１１】
前記サービスプロバイダは、公認のサービスプロバイダを含む、請求項１に記載の方法。
【請求項１２】
複数の機械アクセス可能な命令を有する記憶媒体を備える物品であって、
前記命令は、プロセッサにより実行されると、
公認のサービスプロバイダにアクセスさせ、
前記公認のサービスプロバイダから、プラットフォーム査定および検証の要求を受信させ、
前記要求が対象とするクライアントプラットフォームのオペレーティングシステムの状態を査定させ、
前記公認のサービスプロバイダの第三者コードのインテグリティマニフェストを比較させ、
前記比較によりプラットフォームの状態が良好であると示される場合、前記プラットフォームの状態に署名をして、前記公認のサービスプロバイダに承認を送り、前記公認のサービスプロバイダからサービスを受信させる、物品。
【請求項１３】
前記比較によりプラットフォームの状態が良好でないと示される場合、前記命令は、
前記公認のサービスプロバイダに不良通知を送らせ、
前記不良通知により、前記公認のサービスプロバイダは前記プラットフォーム上の悪意あるコードから前記公認のサービスプロバイダを保護する必要があることを知る、請求項１２に記載の物品。
【請求項１４】
公認のサービスプロバイダにアクセスさせる前に、前記命令は、
前記公認のサービスプロバイダを提供させる、請求項１２に記載の物品。
【請求項１５】
前記インテグリティマニフェストを比較を行させる命令は、
前記公認のサービスプロバイダを表す第三者コードについてランタイムインテグリティマニフェスト計算を行わせる命令と、
前記ランタイムインテグリティマニフェストを、前記公認のサービスプロバイダについて格納されているインテグリティマニフェストと比較させる命令と、を有する、請求項１３に記載の物品。
【請求項１６】
格納されているインテグリティマニフェストが存在しない場合、前記命令はさらに、
前記公認のサービスプロバイダからインテグリティマニフェストを取得させ、
前記ランタイムインテグリティマニフェストを、前記取得されたインテグリティマニフェストと比較させる、請求項１５に記載の物品。
【請求項１７】
エージェント実行環境はＯＳにとらわれず、前記クライアントプラットフォームの重要なオペレーティングシステム（ＯＳ）コンポーネントおよびアプリケーションを査定して、前記オペレーティングシステム全体の状態を判断して、前記インテグリティマニフェストを比較する、請求項１２に記載の物品。
【請求項１８】
前記公認のサービスプロバイダにアクセスさせる前に、前記命令は、
前記公認のサービスプロバイダの前記第三者コードを認証させる、請求項１２に記載の物品。
【請求項１９】
プラットフォームの状態が良好であることは、前記クライアントプラットフォームが危険に曝されてこなかったことを示す、請求項１２に記載の物品。
【請求項２０】
クライアントプラットフォームを備える信用検証システムであって、
前記クライアントプラットフォームは少なくとも１つのプロセッサを有し、
前記少なくとも１つのプロセッサはオペレーティングシステムを含み、
前記オペレーティングシステムは１以上のユーザアプリケーション、ポリシーマネージャ、および複数の第三者コードを含み、
前記複数の第三者コードは、サービスプロバイダそれぞれに固有の査定ダウンロード可能なエージェントを含み、
前記クライアントプラットフォームは、前記少なくとも１つのプロセッサから分離されたエージェント実行環境をさらに有し、
前記エージェント実行環境は、前記クライアントプラットフォームのオペレーティングシステム全体の状態を示す重要なオペレーティングシステムコンポーネントをモニタおよび査定し、前記複数の第三者コードのうち少なくとも１つのインテグリティマニフェスト比較を行って、サービスプロバイダに対して、前記サービスプロバイダに関する第三者コードと前記クライアントプラットフォームとが危険に曝されてきたか否かを知らせる、システム。
【請求項２１】
前記エージェント実行環境は、前記インテグリティマニフェスト比較を行うマニフェストマネージャを含む、請求項２０に記載のシステム。
【請求項２２】
前記エージェント実行環境は、前記複数の第三者コードをモニタするエージェント実行インテグリティチェッカを含み、
前記エージェント実行インテグリティチェッカは、前記複数の第三者コードのそれぞれについてハッシュのレポジトリを維持するマニフェストマネージャを含む、請求項２０に記載のシステム。
【請求項２３】
前記エージェント実行環境は、証書記憶を維持する証書マネージャを含み、
前記証書記憶は、複数のサービスプロバイダが発行した複数のサービス証書鍵（ＳＣＫ）を含み、前記クライアントプラットフォームと、前記複数のサービスプロバイダそれぞれとの間に契約が成立しており、前記クライアントプラットフォームで実行されているサービスプロバイダ第三者コードエージェントを認証するときに利用されることを確かめる、請求項２０に記載のシステム。
【請求項２４】
前記エージェント実行環境は取引マネージャを含み、
前記取引マネージャは、前記エージェント実行環境と、前記クライアントプラットフォームおよび複数のサービスプロバイダの間で行われる取引との間の結合を形成するさらなる動作を行うようホストプロセッサに指示する、請求項２０に記載のシステム。
【請求項２５】
前記エージェント実行環境はＯＳにとらわれず、前記プラットフォームの悪意ある公認オーナおよび／または前記プラットフォーム上の悪意あるコードからの保護を提供する、請求項２０に記載のシステム。
【請求項２６】
前記エージェント実行環境は、前記プラットフォームからさらなるオーバヘッドなく、前記プラットフォームの状態を、信頼性をもって確認する、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ネットワークにより可能になるコンピュータデバイスのセキュリティに関する。より詳しくは、本発明は、マルチパーティ検証のプラットフォームに基づく信用検証サービスに関する方法および装置に係る。
【０００２】
ＷＷＷ（World Wide Web）は、サービスモデルに移行しつつある。ＷＷＷのサービスプロバイダは、サービスのサブセットを制御して、契約の範囲内の配信機能１式を利用してコンシューマに配信する。今日では、ＷＷＷ上に多くの悪意あるユーザがおり、様々な理由から多くのデバイスが提供する情報が完全に信頼が置けることはない。コンシューマのプラットフォームが危険に曝されている場合、プラットフォームで実行される悪意あるコードにより、またはその他の理由により、サービスプロバイダおよび／または彼らがコンシューマに対して配信するサービスが危険に曝されていることがある。
【図面の簡単な説明】
【０００３】
添付図面は、明細書に組み込まれ、明細書の一部を形成しているが、本発明の実施形態を示しており、さらに、記載とともに、本発明の原理を説明する役割を果たし、当業者に対して本発明を行わせる、および利用させる。図面においては、同様の参照番号は、概して同一の、機能的に類似した、および／または構造的に類似した部材を表す。部材が最初に現れる図面は、対応する参照番号の一番左の桁により表す。
【０００４】
【図１Ａ】本発明の実施形態による、アクティブ管理モジュールを有する例示的なホストコンピューティングプラットフォームを示すブロック図である。
【０００５】
【図１Ｂ】本発明の実施形態による、例示的な仮想化技術（ＶＴ）により可能になるホストコンピューティングプラットフォームを示すブロック図である。
【０００６】
【図２】本発明の一実施形態による、プラットフォームに基づく信用検証サービスに関するホストプロセッサおよびホストオペレーティングシステムを示す例示的なブロック図である。
【０００７】
【図３】本発明の一実施形態による、プラットフォームに基づく信用検証サービスに関する例示的なエージェント実行環境（ＡＥＥ）を示すブロック図である。
【０００８】
【図４】本発明の一実施形態による、プラットフォームに基づく信用検証サービスに関する例示的な方法を記すフロー図である。
【発明を実施するための形態】
【０００９】
本発明を特定の用途向けの例示的な実施形態を参照しながら記載するが、本発明はそれに限定されないことを理解されたい。ここに提供する教示を読んだ当業者は、その範囲内および本発明の実施形態が重要な利便性を有する追加的な分野内において、さらなる変形例、用途、および実施形態について想到するであろう。
【００１０】
本明細書における「一実施形態（one embodiment）」、「１つの実施形態(an embodiment)」、「別の実施形態（another embodiment）」といった記載は、実施形態との関連で記載されている特定のフィーチャ、構造、または性質が、本発明の少なくとも１つの実施形態に含まれることを示す。故に、「一実施形態においては」または「１つの実施形態においては」等の言い回しは明細書の随所に見られるが、これは、必ずしも同じ実施形態について言及しているとは限らない。
【００１１】
本発明の実施形態は、マルチパーティ検証のプラットフォームに基づく信用検証サービスに関する方法およびシステムに係る。これは、プラットフォームハードウェアフィーチャにレバレッジを与えて、プラットフォームの脆弱性を特定することにより達成される。インターネット上の、または保護コンテンツまたは他のプライベートサービスを配信する任意の他のネットワーク上の多数のパーティは、プラットフォームにさらなるオーバヘッドを加えずにプラットフォームの状態（posture）を、信頼性をもって確認することができる。
【００１２】
本発明の実施形態は、クライアントホストとサービスプロバイダとの間の取引の元となるソフトウェアおよびハードウェアコンポーネントのインテグリティに関するクライアントホストのプラットフォーム属性の査定および検証を、公認のサービスプロバイダが要求することを可能とする。故に、公認のサービスのみが、プラットフォームの状態（つまり、状態に関する報告）の正当性を確認することができる。本発明の実施形態は、例えばフィンガプリントリーダまたは他のセンサなどのプラットフォーム上でハードウェアにより情報を入手するソフトウェアエージェントを含む、サービスプロバイダのサーバにデータを伝達するソフトウェアエージェントのインテグリティを、クライアント実体が保証することを可能ならしめる。この、ソフトウェアエージェントを含むプラットフォームのインテグリティを保証する機能は、例えばオンライン広告サービス、位置に基づくサービス、プレミアムコンテンツ配信サービス等のオンラインサービスを提供するビジネスにおいては非常に重要である、というのも、これらサービスは、これらサービスを提供するソフトウェアエージェントが配信するデータの正確性に依存するからである。
【００１３】
本発明の実施形態は、プラットフォームの悪意ある公認オーナおよびプラットフォーム上の悪意あるコードからの保護を可能とするＯＳ（オペレーティングシステム）にとらわれない機能も提供する。
【００１４】
本発明はインターネットに適用可能であるとして記載されているが、本発明はインターネットに限定されない。当業者であれば、本発明が、例えば企業のＩＴ（情報技術）ネットワークまたは保護コンテンツまたは他のプライベートサービスを配信する商業ネットワーク等のプライベートネットワークを介したサービスにも同様に適用可能であることに思い至るであろう。
【００１５】
図１Ａは、本発明の実施形態による、アクティブ管理モジュールを有する例示的なホストプラットフォーム１００を示すブロック図である。ホストプラットフォーム１００は、プログラムを実行するコンピューティングプラットフォームを表す。本発明の実施形態においては、ホストプラットフォーム１００は、クライアントプラットフォームであってよい。ホストプラットフォーム１００は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット型コンピュータ、セットトップボックス、携帯情報端末（ＰＤＡ）、電話機、スマートフォン、ＭＩＤ（モバイルインターネットデバイス）、ゲーム機器、ヘルスモニタデバイス、および他の接続されたデジタル消費者機器を含みうる。ホストプラットフォーム１００は、特に、ホストプロセッサ１０２、アクティブ管理モジュール１０６を有するサービスプロセッサ１０４、メモリ１０８、記憶装置１１０、入出力デバイス１１２、および通信インタフェース１１４を含む。各コンポーネント１０２、１０４、１０６、１０８、１１０、１１２、および１１４は、互いに、１以上のバスを表すシステムバス１１６を介して連結される。マルチバス（multiple buses）の場合には、バス同士が１以上のバスブリッジ（不図示）によりブリッジされてもよい。
【００１６】
ホストプロセッサ１０２は、プロセッサ、マイクロコントローラ、中央処理装置（ＣＰＵ）等を表しうる。図１Ａではホストプロセッサ１０２は単一の部材として示されているが、ホストプロセッサ１０２は、並列処理機能を提供しうる１以上のコアまたは処理部を含みうる。ホストプロセッサ１０２については、図２を参照しながらより詳細に後述する。
【００１７】
サービスプロセッサ１０４は、ホストプロセッサ１０２外のタスクを実行するプロセッサ／制御ロジックを表す。一実施形態では、サービスプロセッサ１０４は、「補助プロセッサ（adjunct processor）」と称されることもあり、ホストプロセッサ１０２のパーティンション、エンベデッドデバイス、チップセットコンポーネント等であってもよい。サービスプロセッサ１０４はさらに、セキュアな／信頼されたパーティンション上でまたはシステム管理モードにおいて、管理コードを実行するときに、ホストプロセッサ１０２により実装されうる。一実施形態においては、サービスプロセッサ１０４はアクティブ管理モジュール１０６を含みうる。または、アクティブ管理モジュール１０６は、サービスプロセッサ１０４と協働するホストプラットフォーム１００上の別個の実体として存在してもよい。アクティブ管理モジュール１０６は、ホストプラットフォーム１００上で実行されるプログラムのインテグリティを判断するのに利用されうるエージェント実行環境（ＡＥＥ）１１８を含んでよい。ＡＥＥ１１８は、図３を参照しながらより詳細に後述する。
【００１８】
本発明の一実施形態においては、サービスプロセッサ１０４は、帯域外（ＯＯＢ）管理１２０を含みうる。ＯＯＢ管理１２０は、ホストプロセッサ１０２上で実行されるオペレーティングシステム（ＯＳ）にアクセス不可能な通信リソースの管理および／または制御のことである。ＯＯＢ管理１２０は、例えば、例えばネットワーク１２４のようなネットワークを介した遠隔サーバ１２２のようなホストプラットフォーム１００の外部の実体との間の通信リンク１２６を含みうる。通信リンク１２６は、有線リンクまたは無線リンクであってよい。有線リンクは、例えばツイストペア、Ｃａｔ−５、同軸ケーブル、ファイバ等の物理導体を含みうる。無線リンクは、ＷｉＦｉ（ＩＥＥＥ８０２．１１プロトコルファミリによる架空ネットワーク通信に共通の名称である「ワイヤレスフィデリティ」）、３Ｇ（ｊ第三世代携帯通信技術）、ＷｉＭａｘ（Worldwide Interoperability for Microwave Access、ＩＥＥＥ８０２．１６規格に基づくブロードバンド技術である）等を含みうるが、それらに限定されない。一実施形態においては、遠隔サーバ１２２は、遠隔ＯＯＢ管理１２０に接続されうる。
【００１９】
メモリ１０８を利用して、直接動作の実行および／またはホストプロセッサ１０２の機能実行のために利用される命令および／またはデータを格納／提供してよい。メモリ１０８は、ランダムアクセスメモリ（ＲＡＭ）、エスラム（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期型ＤＲＡＭ（ＳＤＲＡＭ）、デュアルデータレートＲＡＭ（ＤＤＲＲＡＭ）等を含みうる。メモリ１０８は、１以上のコードシーケンスおよび／またはデータが記憶されていてもよく、オペレーティングメモリとも称されうる。コードシーケンスは、１以上の機能呼び出し、１以上のサブルーチン、または１以上の動作を表す１式または１群の機械命令のことであってよい。プログラムは、ここで、これらのいずれか単体のことであってもよく、これらのうち１以上の組み合わせであってもよい。記憶装置１１０は、永続データ（persistent data）を格納する不揮発性記憶装置であってよい。不揮発性記憶装置は、記憶デバイスから電源供給がなくなっても自身の値を保持する記憶媒体のことである。永続データとは、ホストプラットフォーム１００に電源が供給されなくなっても、保持されることが望ましいデータのことであり、例えば、システムファイル、オペレーティングシステム、プログラムファイル、コンフィギュレーションファイル等のことである。記憶装置１１０は、ディスクおよび関連ドライブ（例えば磁気、光学）、ＵＳＢ（universal serial bus）記憶デバイスおよび関連ポート、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、不揮発性半導体ドライブ等を含みうる。
【００２０】
ホストプラットフォーム１００は、さらに、入出力デバイス１１２を含みうる。入出力デバイス１１２は、キーボード、カーソル制御等を含みうるが、それらに限定されない。
【００２１】
ホストプラットフォーム１００はさらに、通信インタフェース１１４を含む。通信インタフェース１１４は、ホストプラットフォーム１００と他の実体とを、例えばネットワーク１２４などのネットワークを介して通信させるネットワークインタフェースカード、モデム等を含みうるが、それらに限定されない。
【００２２】
図１Ｂは、本発明の実施形態による、例示的な仮想化技術（ＶＴ）ホストコンピューティングプラットフォーム１３０を示すブロック図である。本発明の実施形態においては、ＡＥＥ１１８用にセキュア且つ分離されたパーティションが必要となる。ＶＴコンピューティングプラットフォームを実装するにあたっては、ＡＥＥ１１８用に分離されたパーティションを作成してよい。
【００２３】
ホストプラットフォーム１００で示したように、ホストプラットフォーム１３０は、プログラムを実行するコンピューティングプラットフォームである。本発明の実施形態においては、ホストプラットフォーム１３０は、クライアントプラットフォームまたはサーバプラットフォームとして利用することができる。ホストプラットフォーム１３０は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット型コンピュータ、携帯情報端末（ＰＤＡ）、または他のハンドヘルドコンピューティングまたは通信デバイス等を含みうる。
【００２４】
ホストプラットフォーム１３０は、特に、直接ＶＭＭ管理コンポーネント１３２上で実行されるＶＭＭ１３４を有する複数の仮想マシンモニタ（ＶＭＭ）管理コンポーネント１３２を含む。ＶＭＭ管理コンポーネント１３２は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせにより実装されうる。ＶＭＭ管理コンポーネント１３２は、プロセッサ１０２、メモリ１０８、記憶装置１１０、Ｉ／Ｏデバイス１１２、および通信インタフェース１１４を含みうる。ホストプラットフォーム１３０はさらに、少なくとも１つの仮想マシン（ＶＭ）１３６を含む。ＶＭ１３６は、図２を参照して後述するオペレーティングシステム２００を含む。ホストプラットフォーム１３０は、さらに、ゲストオペレーティングシステムおよびＶＴインテグリティサービス（ＶＩＳ）モジュール１４０を有する補助ＶＭ１３８を含む。ＶＴインテグリティサービス（ＶＩＳ）モジュール１４０はＡＥＥ１１８を含む。図１Ｂは２つのＶＭを有するとして示されているが（つまり、ＶＭ１３６および補助ＶＭ１３８）、プラットフォーム１３０は２つのＶＭのみを有することに限定されない。当業者であれば、本発明の範囲および精神を逸脱することなくプラットフォーム１３０にこれ以上の数のＶＭを含めてよいことを理解しよう。
【００２５】
仮想マシンモニタ（ＶＭＭ）１３４は、各ＯＳがソフトウェア実行用に銘々分離した環境（つまりＶＭ１３６および補助ＶＭ１３８）を有するように、多数のゲストオペレーティングシステム（ＯＳ）を、同時におよび独立して実行させることをホストプラットフォーム１３０に可能ならしめる。ＶＭＭ１３４は、例えばプロセッサ１０２、メモリ１０８、記憶装置１１０、Ｉ／Ｏデバイス１１２、通信インタフェース１１４、等のＶＴにより可能になるハードウェア（ＶＭＭ管理コンポーネント１３２）の上で直接実行され、プラットフォーム１３０のリソース全てに対するフルアクセスを有する。ＶＭＭ１３４は、ＶＴにより可能になるハードウェア（１３２）の多数の表示を、独立して動作するＶＭ１３６および補助ＶＭ１３８に対して提示してよい。ＶＭＭ１３４は、ソフトウェア、ハードウェア、ファームウェア、および／またはそれらの組み合わせにより実装されうる。
【００２６】
先に示したように、ＶＭ１３６および補助ＶＭ１３８は、ＶＭＭ１３４上で実行されるゲストオペレーティングシステム（ＯＳ）を含む。ＶＭ１３６および補助ＶＭ１３８は、ＶＭ１３６および補助ＶＭ１３８が互いからセキュアに分離されるよう、独立してコードを実行するようコンフィギュレーションされる。つまり、ＶＭ１３６および補助ＶＭ１３８で動作するコンポーネントは、各々、仮想マシンではなくて専用コンピュータ上で実行されているかのように動作してよい。これらＶＭ上のコンポーネントは様々なイベントを制御して、ＶＴにより可能になるハードウェア（１３２）に対するフルアクセスを有してよい。ＶＭＭ１１４は、ＶＴにより可能になるハードウェア（１３２）に対するＶＭアクセスを管理してよい。
【００２７】
補助ＶＭ１３８は、ＶＴインテグリティサービス（ＶＩＳ）モジュール１４０を含み、さらなるセキュリティ向上を図ってよい。ＶＩＳモジュール１４０と協働して、補助ＶＭ１３８は、コードを独立して実行するようコンフィギュレーションされてよく、ＶＭ１３６からセキュアに分離されてよく、且つ、ＶＭ１３６のコンポーネントが、補助ＶＭ１３８のコンポーネントを変更、修正、読み出し、またはそれに影響を与えかねない動作をすることを阻止してよい。故に、ＡＥＥ１１８がＶＩＳモジュール１４０上に常駐することで、ＡＥＥ１１８は、ＶＭ１３６上に実装されるＯＳ２００から、よりセキュアに分離されることができる。本実施形態においては、ＡＥＥ１１８は、通信リンクＡおよびＶＭＭ１３４を介してＯＳ２００と通信する。
【００２８】
図１Ａを参照して先に示したように、図１Ｂではホストプロセッサ１０２は単一の部材として示されているが、ホストプロセッサ１０２は、１以上の処理コアまたは処理部を含んでよい。
【００２９】
図１Ａおよび１Ｂは、本発明の実施形態の例示的なアクティブ管理およびＶＴ実装を記す。本発明はこれら実装例に限定されない。当業者であれば、本発明の実施形態の機能をサポートする他の実装例を利用することができることに思い至るであろう。このような実装例には、トラステッドコンピューティングモジュール実装（Trusted Computing Module implementation）またはアドバンストＲＩＳＣマシンのトラストゾーン実装（Advanced RISC Machine's (ARM's) Trust Zone implementation）が含まれうるが、それらに限られない。
【００３０】
図２は、本発明の一実施形態による、プラットフォームに基づく信用検証サービスに関するホストプロセッサ１０２およびホストオペレーティングシステム２００を示す例示的なブロック図である。先に示したように、ホストプロセッサ１０２は、例えば、プロセッサ、マイクロコントローラ、中央処理装置（ＣＰＵ）等であってよい。ホストプロセッサ１０２は、ホストオペレーティングシステム２００を含む。ホストオペレーティングシステム２００は、アクティビティの管理および調整、およびホストプラットフォーム１００または３００のリソース共有を担当するソフトウェアコンポーネントである。ホストオペレーティングシステム２００は、特に、ユーザアプリケーション２０２、ポリシーマネージャ２０４、および第三者コード２０６を含む。
【００３１】
ユーザアプリケーション２０２は、サービスプロバイダ固有であり、それらのサービス配信をサポートする任意のアプリケーションを含みうるが、それらに限定されない。例えば、インターネット上でサービスプロバイダのサービス配信をサポートする今日最も一般的なユーザアプリケーションは、例えばマイクロソフト（登録商標）のインターネットエクスプローラまたは現在ＡＯＬの系列会社であるネットスケープコミュニケーションズコーポレーションのネットスケープナビゲータ等のブラウザアプリケーションでありうる。サービスプロバイダのサービス配信をサポートする、あるいは、クライアントとサービスプロバイダとの間のインタフェースとして機能する他の種類のユーザアプリケーションを利用することもできる。例えば、映画および他の種類のメディアを提供するオンライン映画レンタルサービスであるＮｅｔｆｌｉｘにおいては、ユーザが映画およびテレビ番組をユーザのパソコン（ＰＣ）で視聴するのに、ユーザとＮｅｔｆｌｉｘウェブサイトとの間のインタフェースとしてＮｅｔｆｌｉｘメディアプレーヤアプリケーションが必要となる。
【００３２】
本発明の実施形態は、クライアント上で実行されるユーザアプリケーションが傍受されていた旨または危険に曝されていた旨をサービスプロバイダに知らせる情報を、サービスプロバイダに提供する。ポリシーマネージャ２０４は、ホストオペレーティングシステム２００の一部として、ホストプラットフォームの状態およびユーザアプリケーションの状態を定義するポリシーを提供する。故に、ポリシーマネージャ２０４は、ユーザおよびサービスプロバイダによりアクセス可能であってよく、ユーザ／サービスプロバイダに対して、ホストプラットフォームの状態およびサービスプロバイダを表すユーザアプリケーションの状態を定義するのに利用されうるプラットフォームおよびユーザアプリケーションのデフォルトパラメータおよび属性をコンフィギュレーションする機能を与える。
【００３３】
ホストオペレーティングシステム２００はさらに、第三者コード２０６を含む。第三者コード２０６は、公認のサービスプロバイダおよび／または他の公認の独立ソフトウェアベンダ（ＩＳＶ）からのコードを含む。第三者コード２０６は、エージェントと称されてもよく、より具体的には、査定ダウンロード可能なエージェント（measurement downloadable agent）２０８と称されてよい。サービスプロバイダは、標準ＳＤＫ（ソフトウェアデベロッパキット）を与えられて、自身の査定ダウンロード可能なエージェント２０８を第三者コード２０６のメモリ領域に実装およびインストールする。故に、査定ダウンロード可能なエージェント２０８は、サービスプロバイダ固有であってよい。それらは、サービスプロバイダ固有のユーザアプリケーションを査定するのに利用される。例えば、先に示したように、Ｎｅｔｆｌｉｘ用のユーザアプリケーションインタフェースは、Ｎｅｔｆｌｉｘメディアプレーヤである。Ｎｅｔｆｌｉｘ用の第三者コードは、Ｎｅｔｆｌｉｘメディアプレーヤを査定する査定ダウンロード可能なエージェントである（つまり、修正されることなくまたは危険に曝されることなく、Ｎｅｔｆｌｉｘメディアプレーヤコードが適切に動作していることを確かめる目的のＮｅｔｆｌｉｘメディアプレーヤ用のチェッカコードである）。査定ダウンロード可能なエージェントも、例えば、ＯＳバージョン、ウィルス対策ソフトウェアバージョン情報、および適切に機能しているハードウェアなどの、特定のプラットフォームに固有の属性を査定するのに利用され、および、データをサービスプロバイダのサーバに伝達するエージェントのインテグリティを保証するのに利用される。
【００３４】
図３は、本発明の一実施形態による、プラットフォームに基づく信用検証サービスに関する例示的なエージェント実行環境（ＡＥＥ）１１８を示すブロック図である。本発明の実施形態においては、エージェント実行環境（ＡＥＥ）１１８は、例えばホストプラットフォーム１００で実行されているユーザアプリケーションおよび第三者コードのような、保護されているホストソフトウェアエージェントをモニタおよび査定して、これらソフトウェアプログラムを修正および／または悪意ある終了から保護できるようにする。ＡＥＥ１１８はさらに、オペレーティングシステム全体の状態およびそれが提供するサービスを示す重要なオペレーティングシステムコンポーネントを査定する。ＡＥＥ１１８は、例えばプラットフォームにインストールされたオペレーティングシステムバージョン、ウィルス対策プログラムバージョン、および他のソフトウェアプログラムバージョン等の特定のプラットフォーム固有の属性を査定してよい。
【００３５】
本発明の実施形態においては、ソフトウェアプログラムおよび第三者コード２０６は、エージェント実行環境（ＡＥＥ）１１８により直接モニタされてよい。本発明の実施形態は、ＡＥＥ１１８を用いて第三者コードエージェント２０６をチェックすることにより、「チェッカをチェックする」方法を採用している。例えば、ウィルス対策ソフトウェアは今日では、プラットフォーム上のスパイウェアおよびウィルスを検出、削除、および阻止するのに利用されているが、ウィルス対策ソフトウェアのインテグリティをチェックする機構はない。本発明の実施形態においては、ＡＥＥ１１８を利用してウィルス対策ソフトウェアのインテグリティをチェックすることができる。故にこの場合、ウィルス対策ソフトウェアがチェッカであり、ＡＥＥ１１８が「チェッカをチェックする」のに利用されるチェックである。
【００３６】
先に示したように、ＡＥＥ１１８はオペレーティングシステム２００から分離されて、高性能の査定をオペレーティングシステム２００の外で行い、サービスプロバイダからのソフトウェアコンポーネントを含むホストプラットフォーム（１００または１３０）上の任意のソフトウェアコンポーネントを検証することのできる閉ざされた査定システムを提供することができる。故に、ＡＥＥ１１８は、ＯＳ２００から分離されて、ＡＥＥ１１８に対して、ＯＳ２００とは異なる独自のプライベート領域を与え、ＯＳ２００により危険に曝されはならないデータおよびランタイム情報を格納することが肝要である。
【００３７】
ＡＥＥ１１８は、格納されているインテグリティマニフェストをランタイムインテグリティマニフェストと比較することで、第三者コード２０６を含む任意のソフトウェアコンポーネントのインテグリティを保証する。ソフトウェアプログラムのＩＤは、２つの属性により定義されてよく、２つの属性とは、１つ目がプログラムがメモリにロードされるときに起こる再配置フィックスアップ（relocation fix-ups）のリストであり、２つ目がエージェントの署名である。エージェントの署名は、プラグラムの実行可能コード記憶、静的コンフィギュレーションデータ、動的コンフィギュレーションデータ、および再配置フィックスアップのリストを網羅しうるインテグリティチェック値（ＩＣＶ）またはテスト値／識別テスト／検証値を含む。再配置フィックスアップは、プログラムがロードされるメモリの位置に基づく可変位置を有するプログラム／ルーチン／機能を参照するプログラムのソースの１位置に適応されるオフセットを参照するとして記述されうる。総称して再配置フィックスアップおよびＩＣＶをソフトウェアプログラムのＩＤと称してよい。それらが一緒に格納または利用されるとき、それらはソフトウェアプログラムの「インテグリティマニフェスト」と称されてよい。
【００３８】
一実施形態においては、インテグリティチェックは、エージェントまたはソフトウェアプログラムのＩＤを表す全ての領域に亘る暗号ハッシュを生成することを含んでよい。エージェントまたはソフトウェアプログラムのＩＤは、実行可能コード、静的コンフィギュレーションデータ、および再配置フィックスアップを含みうる。エージェントの、またはソフトウェアプログラムの様々なコンポーネントを利用して、特定のインテグリティチェック値（ＩＣＶ）を生成しうる。ＩＣＶはエージェントの、またはソフトウェアプログラムのインテグリティマニフェストに含まれており、エージェント／ソフトウェアプログラムのＩＤおよびインテグリティを判断する目的で検証されうる。計算されたハッシュは、エージェントの製造時に生成されていたかもしれないエージェント／ソフトウェアプログラムの既知値／予期値（つまり原インテグリティマニフェスト）と比較される。
【００３９】
一実施形態においては、ＩＣＶは暗号ハッシュアルゴリズムにより生成されうる。アルゴリズムを利用してエージェント／ソフトウェアプログラムのインテグリティマニフェストに格納されている１以上のＩＣＶを生成することができる。エージェントの／ソフトウェアプログラムのインテグリティマニフェストに格納されているＩＣＶを、「原ＩＣＶ」と称してよい。原ＩＣＶも、ここでは「既知の良好な」ＩＣＶと称してよい。ＡＥＥ１１８は、ＩＣＶを生成して、原ＩＣＶを作成するのに利用されたのと同じ暗号ハッシュアルゴリズムで原ＩＣＶと比較してよい。計算されたＩＣＶは既知の良好なＩＣＶまたは原ＩＣＶと比較される。ＩＣＶ同士が整合する場合には、エージェント／ソフトウェアプログラムは修正されていないことになる。もしも計算されたＩＣＶに差異が生じている場合には、ＡＥＥ１１８はエージェント／ソフトウェアプログラムが修正されていると判断して、それら差異を報告してよい。
【００４０】
ＩＣＶに加えて、インテグリティマニフェストはＩＣＶに亘る暗号署名を含みうる。インテグリティマニフェスト署名は、ソフトウェア製造業者／開発業者により作成され、ソフトウェアの一部であるインテグリティマニフェストとともに格納されてよい。署名はまた、ソフトウェアプログラムのインストール時に製造業者が生成および／または製造業者から受け取り、プログラムの一部として格納されてもよい。署名は、ソフトウェアプログラムの様々な部分から生成されたＩＣＶの暗号ハッシュであってよい。一実施形態においては、暗号ハッシュは、公開鍵および秘密鍵の対のうちの秘密鍵によりソフトウェア開発業者が行ってもよい。故に、ソフトウェア開発業者は、インテグリティマニフェストの署名を作成および格納し、後で別の実体（例えばＡＥＥ１１８）がその署名をソフトウェア開発業者の公開鍵を利用して検証することができる。インテグリティマニフェストの署名を検証することで、ＡＥＥ１１８は、インテグリティマニフェストの全ての値が正確であり、インテグリティマニフェストのＩＣＶをＡＥＥ１１８または別の実体が検証の際の期待値として利用してよいと仮定できる。
【００４１】
ＡＥＥ１１８はさらに、例えば、Ｓｙｓｔｅｍ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｏｒ  Ｔａｂｌｅ、Ｉｎｔｅｒｒｕｐｔ  Ｄｅｓｃｒｉｐｔｏｒ  Ｔａｂｌｅ、およびＩｍｐｏｒｔ  Ａｄｄｒｅｓｓ  Ｔａｂｌｅなどの重要なテーブルに対するアクセスを有する。これらテーブルへのアクセス権限を与えられることにより、ＡＥＥ１１８は、第三者の行うシステム呼び出しが、ルートキットコードがフックした機能呼び出しにではなく、正しいカーネルコードにトランスレーションされたことを確かめることができる。
【００４２】
ＡＥＥ１１８は、エージェント実行インテグリティチェッカ３０２、証書マネージャ３０６、および取引マネージャ３０８を含む。
【００４３】
エージェント実行インテグリティチェッカ３０２は、ホストオペレーティングシステム２００上の第三者コード２０６のメモリ領域を、その領域にインストールされているソフトウェアコンポーネントとともに、継続的にモニタする。エージェント実行インテグリティチェッカ３０２は、マニフェストマネージャ３０４を含む。マニフェストマネージャ３０４は、第三者コード２０６のハッシュのレポジトリおよびその領域のソフトウェアエージェントを維持する。マニフェストマネージャ３０４はさらに、例えば遠隔サーバ１２２等の遠隔サーバとの間にセキュアなチャネルを構築して、インテグリティマニフェストが局所的に格納されていない場合、その第三者コードのインテグリティマニフェストを取り出す。サービスプロバイダにより査定および検証の要求が発された場合、エージェント実行インテグリティチェッカ３０６は、マニフェストマネージャ３０４と協働して、クライアントプラットフォームの動作状態を査定して、ランタイムインテグリティマニフェストを判断し、上述したインテグリティマニフェスト比較を行うことで、査定および検証を行う。
【００４４】
証書マネージャ３０６は、証書記憶を維持する。証書マネージャ３０６が維持する鍵／証書のリストには、（１）ＡＥＥ１１８用の公開鍵対（ハードウェア（ＡＥＥＰＫ）生成中に利用されうる、または顧客による起動の後生成されうる）、および（２）クライアントとサービスプロバイダとの間の契約が成立していて、第三者コード２０６で実行されているエージェントを認証する際に利用されることを確かめるべく、サービスプロバイダにより発行されるサービス証書鍵（ＳＣＫ）が含まれる。証書マネージャ３０６はさらに、証書の無効化処理および更新処理を行う。
【００４５】
取引マネージャ３０８は、ＡＥＥ１１８と、ホストプロセッサ１０２が行う取引との間の結合を形成するさらなる動作を行うようホストプロセッサ１０２に指示する。
【００４６】
一実施形態においては、取引マネージャ３０８とホストプロセッサ１０２との間の通信リンクＡは、既存のプロセッサマイクロコードへの延長を伴いうる。ホストメモリ（例えばＭｅｍｏｒｙ  Ｔｙｐｅ  Ｒａｎｇｅ  Ｒｅｇｉｓｔｅｒｓ（ＭＴＲＲ））の特定の領域を監視するのに利用されうる新たなプロセッサレジスタが定義されてよく、これら領域が修正されている場合には、ＡＥＥ１１８に警告を送ってよい。
【００４７】
先に示したように、本発明の実施形態は、サービスプロバイダがクライアントプラットフォームの査定および検証を要求することを可能として、クライアントプラットフォームで実行されているサービスプロバイダのユーザアプリケーションが危険に曝されておらず、それらのサービスが盗用される可能性がないことを保証することができる。多くのオンラインビジネスは、それらの提供するサービスのサイバー盗用を阻止するようなサービスを必要としている。例えば、ユーザはＮｅｔｆｌｉｘ．ｃｏｍから映画をレンタルして、ユーザのクライアントプラットフォーム上でＮｅｔｆｌｉｘメディアプレーヤで映画を視聴する。しかし、ユーザが映画を視聴するユーザのクライアントプラットフォーム（つまり、Ｎｅｔｆｌｉｘメディアプレーヤ）が悪意あるビデオリッパーの危険に曝されている場合、映画は、Ｎｅｔｆｌｉｘ．ｃｏｍからレンタルされずに、Ｎｅｔｆｌｉｘメディアプレーヤから盗用される虞がある。本発明の実施形態では、サービスプロバイダのユーザアプリケーションの査定を含むクライアントプラットフォームの査定および検証に必要な全てのコンポーネントを提供して、ユーザアプリケーションが危険に曝されていないことを確かめる。例えば、本発明の実施形態においては、Ｎｅｔｆｌｉｘ．ｃｏｍが査定および検証を要求して、映画が再生されているＮｅｔｆｌｉｘメディアプレーヤが危険に曝されてきておらず、故に、映画が悪意あるビデオリッパにより盗用されていないことを確かめることができる。
【００４８】
故に、本発明の実施形態では、インターネット上の、またはサービスが提供される任意の他のネットワーク上の多数のパーティが、プラットフォームにさらなるオーバヘッドを加えずにプラットフォームの状態を、信頼性をもって確認することができる。図４を参照して後述するように、本発明の実施形態では、公認サービスは、状態の報告の正当性の確認のみが可能であってもよい。本発明の実施形態はさらに、ＯＳにとらわれず、プラットフォームの悪意ある公認オーナおよびプラットフォーム上の悪意あるコードからの保護を可能とする。
【００４９】
図４は、本発明の一実施形態による、プラットフォームに基づく信用検証サービスに関する例示的な方法を記すフロー４００である。本発明は、フロー４００に関して記載する実施形態に限定されない。本教示を読んだ当業者にとっては、他の機能フロー図も本発明の範囲に含まれることが明らかであろう。処理は４０２から始まり、処理はすぐに４０４に進む。
【００５０】
信用は先ず、検証前に構築される必要がある。つまり、ＡＥＥがチェッカ（第三者エージェント）をチェックできるようになる前に、信用がＡＥＥと第三者エージェントとの間に構築されている必要がある。信用を構築するには、第三者エージェントの証書をＡＥＥに提供する必要がある。このため４０４において、ＡＥＥは証書を提供する。証書提供は公知技術である。先に示したように、証書マネージャは証書記憶を維持する。サービスプロバイダはサービス証書鍵（ＳＣＫ）を発行し、サービスプロバイダがクライアントにサービスを提供する前にサービスプロバイダとクライアントとの間で契約が成立していることを確認する。サービスプロバイダが既に提供を行っている場合、サービス証書鍵は既に証書マネージャとともに格納されているはずである。サービス証書鍵（ＳＣＫ）は、その後、第三者エージェントを認証するのに利用されてよい。
【００５１】
ホストプラットフォームがサービスプロバイダからのインターネットサービスにアクセスすると（４０６）、ホストプラットフォームは、プラットフォーム査定および検証に対応するサービスプロバイダからの要求を受け取る（４０８）。サービスプロバイダは、ホストが危険に曝されていない場合ホストプラットフォームにより危険に曝されたくないので、ホストプラットフォームにサービスを提供する前にこの要求を行う。
【００５２】
サービスプロバイダからの要求を受けて、ホストプラットフォーム査定エージェントは（つまり、サービスプロバイダに関する第三者コードは）、ＡＥＥに対して、サービスプロバイダのプラットフォーム査定および検証を行うよう要求する（４１０）。プラットフォーム査定および検証には、オペレーティングシステム全体の状態およびそれが提供するサービスを示す重要なオペレーティングシステムコンポーネントの査定に加えて、第三者コードの状態の査定が含まれる。
【００５３】
４１２において、ＡＥＥのマニフェストマネージャは、サービスプロバイダに関する第三者コードのインテグリティマニフェスト比較を行う。マニフェスト比較を行う際、マニフェストマネージャは先ず、上述のように第三者コードのランタイムインテグリティマニフェスト計算を行う必要がある。ランタイムインテグリティマニフェストは、マニフェストマネージャに格納されている原インテグリティマニフェストと比較される。一実施形態においては、原インテグリティマニフェストがマニフェストマネージャに格納されていない場合、原インテグリティマニフェストは、上述のようにサービスプロバイダから取得される。
【００５４】
原インテグリティマニフェストおよびランタイムインテグリティマニフェストが等価でない場合、または、クライアントプラットフォームのオペレーティングシステム全体の状態が不良である場合、ホストプラットフォームの状態は良好ではないとみなされ（４１４）、ＡＥＥはサービスプロバイダに不良通知をする（４１６）。不良通知により、サービスプロバイダは、ホストプラットフォームが危険に曝されてきたことを知る。通知を受け取ってから、サービスプロバイダはとるべき対策を決定する必要がある。
【００５５】
原インテグリティマニフェストおよびランタイムインテグリティマニフェストが等価な場合、および、クライアントプラットフォームのオペレーティングシステム全体の状態が良好である場合、ホストプラットフォームの状態が良好であるとみなされ（４１４）、ＡＥＥはプラットフォームの状態に署名して、サービスプロバイダに承認を送る（４１８）。
【００５６】
サービスプロバイダにおけるホストプラットフォームのオペレーティングシステムの状態およびサービスプロバイダの第三者コードが危険に曝されていない旨が確認されたので、４２０において、ホストプラットフォームが該サービスプロバイダからサービスを受け取ってよい。
【００５７】
本発明の実施形態の側面によっては、ハードウェア、ソフトウェア、またはそれらの組み合わせにより実装されうるものがあり、１以上のコンピュータシステムまたは他の処理システムで実装されうるものがある。現実的には、一実施形態において、方法は、携帯型または据置型のコンピュータ、携帯情報端末（ＰＤＡ）、セットトップボックス、携帯電話機およびページャ、および少なくとも１つのプロセッサ、プロセッサ読み取り可能な記憶媒体（揮発性および不揮発性メモリおよび／または記憶素子を含む）、少なくとも１つの入力デバイス、および１以上の出力デバイスを含みうる他の電子デバイスなどのプログラム可能な機械上で実行されるプログラムに実装されうる。プログラムコードは、入力デバイスを利用して入力されたデータに適用され、上述の機能を果たし、出力情報を生成する。出力情報は１以上の出力デバイスに適用されうる。当業者であれば、本発明の実施形態が、マルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ等を含む様々なコンピュータシステムコンフィギュレーションにより実施可能であることを理解しよう。
【００５８】
各プログラムは、処理システムと通信すべく、ハイレベルプロシージャまたはオブジェクト指向のプログラミング言語で実装されうる。しかし、プログラムは、所望の場合にはアセンブリ言語または機械言語で実装されることもできる。いずれにしても、言語はコンパイルされ解釈されうる。
【００５９】
プログラム命令を利用して、命令でプログラミングされる汎用または専用処理システムにここで記載した方法を行わせることができる。または、方法は、方法を行うハードワイヤロジックを含む専用ハードウェアコンポーネントにより実行可能であり、または、プログラミングされたコンピュータコンポーネントおよびカスタムハードウェアコンポーネントの任意の組み合わせにより実行可能である。ここで記載した方法は、処理システムまたは他の電子デバイスをプログラミングして方法を行わせるのに利用されうる命令を記憶する機械読み取り可能な媒体を含みうる物品またはコンピュータプログラムプロダクトとして提供されうる。ここで利用される「機械読み取り可能な媒体」または「機械アクセス可能な媒体」といった用語は、機械による実行用に命令シーケンスの記憶またはエンコードが可能であり、機械にここで記載した方法のいずれかを行わせることのできる任意の媒体を含む。故に、「機械読み取り可能な媒体」または「機械アクセス可能な媒体」といった用語は、固体メモリ、光学および磁気ディスク、およびデータ信号をエンコードする搬送波を含むが、それらに限定されない。さらに、本技術分野では、ソフトウェアといえば、様々な形式において（例えばプログラム、プロシージャ、処理、アプリケーション、モジュール、ロジック等）、動作を行い、結果を生じることである。このような表現は、ソフトウェアの実行を、処理システムがプロセッサに動作を行わせ、結果を生じさせる、ということを短縮しているに過ぎない。
【００６０】
本発明の様々な実施形態を上述したが、それらが例示目的で提示され、限定として提示されたのではないことを理解されたい。当業者でれば、添付請求項で定義される本発明の精神および範囲から逸脱することなく形態および詳細において様々な変更を加えることができることを理解しよう。故に、本発明の範囲は、上述の例示的な実施形態のいずれに限定されるべきものではなく、以下の請求項およびその均等物によって定義されるべきである。
【図１Ａ】
2010033563.tif 000003
【図１Ｂ】
2010033563.tif 000004
【図２】
2010033563.tif 000005
【図３】
2010033563.tif 000006
【図４】
2010033563.tif 000007
【手続補正書】
【提出日】平成21年7月30日(2009.7.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
信用検証方法であって、
サービスプロバイダにアクセスする段階と、
前記サービスプロバイダから、プラットフォーム査定および検証の要求を受信する段階と、
プラットフォームの情報を集め、査定および検証を既知の良好な値と比較する段階と、
前記比較によりプラットフォームの状態が良好であると示される場合、前記サービスプロバイダに対して承認を送り、前記サービスプロバイダからサービスを受信する段階と、を備える、方法。
【請求項２】
前記比較によりプラットフォームの状態が良好でないと示される場合、前記サービスプロバイダに不良通知を送る段階を備え、
前記不良通知により、前記サービスプロバイダは前記プラットフォームが危険に曝されてきたことを知る、請求項１に記載の方法。
【請求項３】
サービスプロバイダにアクセスする前に、前記サービスプロバイダを提供する（provision）段階を備える、請求項１に記載の方法。
【請求項４】
前記サービスプロバイダに承認を送る前に、プラットフォームの状態に署名をして承認を示す段階を備える、請求項１に記載の方法。
【請求項５】
プラットフォーム査定および検証には、オペレーティングシステム全体の状態および提供されるサービスを示す重要なオペレーティングシステムコンポーネントおよびアプリケーションの査定と、インテグリティマニフェスト比較とが含まれる、請求項１に記載の方法。
【請求項６】
インテグリティマニフェスト比較は、
前記サービスプロバイダを表す第三者コードについてランタイムインテグリティマニフェストを計算することと、
前記ランタイムインテグリティマニフェストを、前記サービスプロバイダについて格納されているインテグリティマニフェストと比較することと、を含む、請求項５に記載の方法。
【請求項７】
格納されているインテグリティマニフェストが存在しない場合、
前記第三者コードについて前記サービスプロバイダからインテグリティマニフェストを取得する段階と、
前記ランタイムインテグリティマニフェストを、前記取得されたインテグリティマニフェストと比較する段階と、を備える、請求項６に記載の方法。
【請求項８】
前記インテグリティマニフェスト比較はエージェント実行環境が行う、請求項５に記載の方法。
【請求項９】
前記サービスプロバイダにアクセスする前に、前記サービスプロバイダのための第三者コードを認証する段階を備える、請求項１に記載の方法。
【請求項１０】
プラットフォームの情報を集め、査定および検証を既知の良好な値と比較する段階は、ＯＳにとらわれず行われる、請求項１に記載の方法。
【請求項１１】
前記サービスプロバイダは、公認のサービスプロバイダを含む、請求項１に記載の方法。
【請求項１２】
コンピュータに、
公認のサービスプロバイダにアクセスする手順と、
前記公認のサービスプロバイダから、プラットフォーム査定および検証の要求を受信する手順と、
前記要求が対象とするクライアントプラットフォームのオペレーティングシステムの状態を査定する手順と、
前記公認のサービスプロバイダの第三者コードのインテグリティマニフェストを比較する手順と、
前記比較によりプラットフォームの状態が良好であると示される場合、前記プラットフォームの状態に署名をして、前記公認のサービスプロバイダに承認を送り、前記公認のサービスプロバイダからサービスを受信する手順と、を実行させるためのプログラム。
【請求項１３】
前記比較によりプラットフォームの状態が良好でないと示される場合、
コンピュータに、
前記公認のサービスプロバイダに不良通知を送る手順と、
前記不良通知により、前記公認のサービスプロバイダは前記プラットフォーム上の悪意あるコードから前記公認のサービスプロバイダを保護する必要があることを知る手順と、をさらに実行させるための請求項１２に記載のプログラム。
【請求項１４】
コンピュータに、
公認のサービスプロバイダにアクセスする前に、前記公認のサービスプロバイダを提供する手順、をさらに実行させるための請求項１２に記載のプログラム。
【請求項１５】
前記インテグリティマニフェストを比較する手順は、
前記公認のサービスプロバイダを表す第三者コードについてランタイムインテグリティマニフェスト計算を行う手順と、
前記ランタイムインテグリティマニフェストを、前記公認のサービスプロバイダについて格納されているインテグリティマニフェストと比較する手順と、を有する、請求項１３に記載のプログラム。
【請求項１６】
格納されているインテグリティマニフェストが存在しない場合、
コンピュータに、
前記公認のサービスプロバイダからインテグリティマニフェストを取得する手順と、
前記ランタイムインテグリティマニフェストを、前記取得されたインテグリティマニフェストと比較する手順と、をさらに実行させるための請求項１５に記載のプログラム。
【請求項１７】
エージェント実行環境はＯＳにとらわれず、前記クライアントプラットフォームの重要なオペレーティングシステム（ＯＳ）コンポーネントおよびアプリケーションを査定して、前記オペレーティングシステム全体の状態を判断して、前記インテグリティマニフェストを比較する、請求項１２に記載のプログラム。
【請求項１８】
コンピュータに、
前記公認のサービスプロバイダにアクセスさせる前に、
前記公認のサービスプロバイダの前記第三者コードを認証する手順、をさらに実行させるための請求項１２に記載のプログラム。
【請求項１９】
プラットフォームの状態が良好であることは、前記クライアントプラットフォームが危険に曝されてこなかったことを示す、請求項１２に記載のプログラム。
【請求項２０】
クライアントプラットフォームを備える信用検証システムであって、
前記クライアントプラットフォームは少なくとも１つのプロセッサを有し、
前記少なくとも１つのプロセッサはオペレーティングシステムを含み、
前記オペレーティングシステムは１以上のユーザアプリケーション、ポリシーマネージャ、および複数の第三者コードを含み、
前記複数の第三者コードは、サービスプロバイダそれぞれに固有の査定ダウンロード可能なエージェントを含み、
前記クライアントプラットフォームは、前記少なくとも１つのプロセッサから分離されたエージェント実行環境をさらに有し、
前記エージェント実行環境は、前記クライアントプラットフォームのオペレーティングシステム全体の状態を示す重要なオペレーティングシステムコンポーネントをモニタおよび査定し、前記複数の第三者コードのうち少なくとも１つのインテグリティマニフェスト比較を行って、サービスプロバイダに対して、前記サービスプロバイダに関する第三者コードと前記クライアントプラットフォームとが危険に曝されてきたか否かを知らせる、システム。
【請求項２１】
前記エージェント実行環境は、前記インテグリティマニフェスト比較を行うマニフェストマネージャを含む、請求項２０に記載のシステム。
【請求項２２】
前記エージェント実行環境は、前記複数の第三者コードをモニタするエージェント実行インテグリティチェッカを含み、
前記エージェント実行インテグリティチェッカは、前記複数の第三者コードのそれぞれについてハッシュのレポジトリを維持するマニフェストマネージャを含む、請求項２０に記載のシステム。
【請求項２３】
前記エージェント実行環境は、証書記憶を維持する証書マネージャを含み、
前記証書記憶は、複数のサービスプロバイダが発行した複数のサービス証書鍵（ＳＣＫ）を含み、前記クライアントプラットフォームと、前記複数のサービスプロバイダそれぞれとの間に契約が成立しており、前記クライアントプラットフォームで実行されているサービスプロバイダ第三者コードエージェントを認証するときに利用されることを確かめる、請求項２０に記載のシステム。
【請求項２４】
前記エージェント実行環境は取引マネージャを含み、
前記取引マネージャは、前記エージェント実行環境と、前記クライアントプラットフォームおよび複数のサービスプロバイダの間で行われる取引との間の結合を形成するさらなる動作を行うようホストプロセッサに指示する、請求項２０に記載のシステム。
【請求項２５】
前記エージェント実行環境はＯＳにとらわれず、前記プラットフォームの悪意ある公認オーナおよび／または前記プラットフォーム上の悪意あるコードからの保護を提供する、請求項２０に記載のシステム。
【請求項２６】
前記エージェント実行環境は、前記プラットフォームからさらなるオーバヘッドなく、前記プラットフォームの状態を、信頼性をもって確認する、請求項２０に記載のシステム。
【外国語明細書】
2010033563.tif 000008
2010033563.tif 000009
2010033563.tif 000010
2010033563.tif 000011
2010033563.tif 000012
2010033563.tif 000013
2010033563.tif 000014
2010033563.tif 000015
2010033563.tif 000016
2010033563.tif 000017
2010033563.tif 000018
2010033563.tif 000019
2010033563.tif 000020
2010033563.tif 000021
2010033563.tif 000022
2010033563.tif 000023
2010033563.tif 000024
2010033563.tif 000025
2010033563.tif 000026
2010033563.tif 000027
2010033563.tif 000028
2010033563.tif 000029
2010033563.tif 000030
2010033563.tif 000031
2010033563.tif 000032
2010033563.tif 000033