(57)【特許請求の範囲】
【請求項１】
コンピュータで実現される方法であって、
第１のデバイスにおいて、第２のデバイスからディスカバリメッセージを受信することと、
前記ディスカバリメッセージに基づいて、前記第１のデバイスと前記第２のデバイスとの間に通信チャネルを確立することと、
前記第１のデバイスにおいて、前記第２のデバイスから識別情報を受信することとを含み、前記識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、または、前記識別キーによる前記ＰＣＲ値のクォート（quote）のうちの１つ以上を含み、前記方法はさらに、
前記第１のデバイスにおいて、前記ＰＣＲ値、前記クォートまたは前記保証キー証明書のうちの１つ以上を照合することと、
前記照合に基づいて、署名キーを含むメッセージを前記第１のデバイスから前記第２のデバイスに送信することとを含み、前記署名キーは、前記第１のデバイスによって生成されるランダム値を含んでおり、前記方法はさらに、
前記第１のデバイスにおいて保証公開キーにより、前記署名キーおよび前記識別キーに関連付けられる情報の組み合わせを暗号化することと、
前記第１のデバイスから前記第２のデバイスに、暗号化された前記組み合わせを提供することと、
前記提供後に前記第１のデバイスにおいて前記第２のデバイスから応答が受信されると、前記応答に含まれる署名を照合することと、
前記署名の照合に基づいて、前記通信チャネルまたは前記第２のデバイスの前記識別情報のうちの１つ以上を認証することとを含む、方法。
【請求項２】
前記ＴＰＭ保証キー証明書は前記第２のデバイスの製造業者によって提供される、請求項１に記載の方法。
【請求項３】
前記保証キー証明書は、前記第１のデバイスに格納される有効な保証ルート機関のリストに対して照合される、請求項１または２に記載の方法。
【請求項４】
前記組み合わせは、前記第１のデバイスまたは前記第２のデバイスにおいて、ＴＰＭによって読み取り可能なデータ構造である、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記第２のデバイスのＴＰＭが前記保証公開キーおよび前記識別キーについての秘密キーを含んでいる場合、前記署名キーは、前記第２のデバイスによって、暗号化された前記組み合わせから回収される、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記第２のデバイスが、暗号化された前記組み合わせから前記署名キーを回収することができる場合、前記応答は前記第２のデバイスから受信される、請求項５に記載の方法。
【請求項７】
前記第２のデバイスからの前記応答は、前記署名キーを使用する暗号化された前記組み合わせの署名を含み、前記署名キーは前記第２のデバイスによって回収される、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
格納された命令を含むプログラムであって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
第１のデバイスにおいて、第２のデバイスからディスカバリメッセージを受信することと、
前記ディスカバリメッセージに基づいて、前記第１のデバイスと前記第２のデバイスとの間に通信チャネルを確立することと、
前記第１のデバイスにおいて、前記第２のデバイスから識別情報を受信することとを含む動作を実行させ、前記識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、または、前記識別キーによる前記ＰＣＲ値のクォート（quote）のうちの１つ以上を含み、前記命令はさらに、前記プロセッサによって実行されると、前記プロセッサに、
前記第１のデバイスにおいて、前記ＰＣＲ値、前記クォートまたは前記保証キー証明書のうちの１つ以上を照合することと、
前記照合に基づいて、確立された前記通信チャネルに関連付けられる接続情報を含むメッセージを前記第１のデバイスから前記第２のデバイスに送信することと、
前記第１のデバイスにおいて保証公開キーにより、前記接続情報および前記識別キーに関連付けられる情報の組み合わせを暗号化することと、
前記第１のデバイスから前記第２のデバイスに、暗号化された前記組み合わせを提供することと、
前記提供後に前記第１のデバイスにおいて前記第２のデバイスから応答が受信されると、前記応答に含まれる署名を照合することと、
前記照合に基づいて、前記通信チャネルまたは前記第２のデバイスの前記識別情報のうちの１つ以上を認証することとを含む動作を実行させる、プログラム。
【請求項９】
前記ＴＰＭ保証キー証明書は前記第２のデバイスの製造業者によって提供される、請求項８に記載のプログラム。
【請求項１０】
前記保証キー証明書は、前記第１のデバイスに格納される有効な保証ルート機関のリストに対して照合される、請求項８または９に記載のプログラム。
【請求項１１】
前記組み合わせは、前記第１のデバイスまたは前記第２のデバイスにおいて、ＴＰＭによって読み取り可能なデータ構造である、請求項８〜１０のいずれか１項に記載のプログラム。
【請求項１２】
前記第２のデバイスのＴＰＭが前記保証公開キーおよび前記識別キーについての秘密キーを含んでいる場合、署名キーは、前記第２のデバイスによって、暗号化された前記組み合わせから回収される、請求項８〜１１のいずれか１項に記載のプログラム。
【請求項１３】
前記第２のデバイスが、暗号化された前記組み合わせから前記接続情報を回収することができる場合、前記応答は前記第２のデバイスから受信される、請求項１２に記載のプログラム。
【請求項１４】
前記第２のデバイスからの前記応答は、前記接続情報を使用する暗号化された前記組み合わせの署名を含み、前記接続情報は前記第２のデバイスによって回収される、請求項８〜１３のいずれか１項に記載のプログラム。
【請求項１５】
システムであって、
命令を含むメモリと、
プロセッサとを含み、前記プロセッサは、
第１のデバイスにおいて、第２のデバイスからディスカバリメッセージを受信することと、
前記ディスカバリメッセージに基づいて、前記第１のデバイスと前記第２のデバイスとの間に通信チャネルを確立することと、
前記第１のデバイスにおいて、前記第２のデバイスから識別情報を受信することとを行うよう前記命令を実行するように構成されており、前記識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、非対称の署名キーの公開部分、前記識別キーによる前記非対称の署名キーの公開部分の署名、または、前記識別キーによる前記ＰＣＲ値のクォート（quote）のうちの１つ以上を含み、前記プロセッサはさらに、
前記第１のデバイスにおいて、前記非対称の署名キーの証明を照合することと、
前記照合に基づいて、署名キーを含むメッセージを前記第１のデバイスから前記第２のデバイスに送信することとを行うよう前記命令を実行するように構成されており、前記署名キーは、前記第１のデバイスによって生成されるランダム値を含んでおり、前記プロセッサはさらに、
前記第１のデバイスにおいて保証公開キーにより、前記署名キーおよび前記識別キーに関連付けられる情報の組み合わせを暗号化することと、
前記第１のデバイスから前記第２のデバイスに、暗号化された前記組み合わせを提供することと、
前記提供後に前記第１のデバイスにおいて前記第２のデバイスから応答が受信されると、前記応答に含まれる署名を照合することと、
前記署名の照合に基づいて、前記通信チャネルまたは前記第２のデバイスの前記識別情報のうちの１つ以上を認証することとを行うよう前記命令を実行するように構成されている、システム。
【請求項１６】
前記第１のデバイスは、前記第２のデバイスへの将来の接続を認証するために、前記非対称の署名キーと、前記第２のデバイスについての他のメタデータとを保持する、請求項１５に記載のシステム。
【請求項１７】
前記保証キー証明書は、前記第１のデバイスに格納される有効な保証ルート機関のリストに対して照合される、請求項１５または１６に記載のシステム。
【請求項１８】
前記組み合わせは、前記第１のデバイスまたは前記第２のデバイスにおいて、ＴＰＭによって読み取り可能なデータ構造である、請求項１５〜１７のいずれか１項に記載のシステム。
【請求項１９】
前記第２のデバイスのＴＰＭが前記保証公開キーおよび前記識別キーについての秘密キーを含んでいる場合、前記署名キーは、前記第２のデバイスによって、暗号化された前記組み合わせから回収される、請求項１５〜１８のいずれか１項に記載のシステム。
【請求項２０】
前記第２のデバイスが、暗号化された前記組み合わせから接続情報を回収することができる場合、前記応答は前記第２のデバイスから受信される、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
本開示は一般に、トラステッドコンピューティング（trusted computing）における認証に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
概要
開示される主題は、ピアツーピア認証（peer to peer attestation）に関する。
【０００３】
いくつかの革新的な実現例において、開示される主題は方法において具現化され得る。上記方法は、第１のデバイスにおいて、第２のデバイスからディスカバリメッセージを受信することと、ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間に通信チャネルを確立することと、第１のデバイスにおいて、第２のデバイスから識別情報を受信することとを含み、識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコンフィグレーションレジスタ（ＰＣＲ： platform configuration register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み、上記方法はさらに、第１のデバイスにおいて、ＰＣＲ値、クォートまたは保証キー証明書のうちの１つ以上を照合することと、照合に基づいて、署名キーを含むメッセージを第１のデバイスから第２のデバイスに送信することとを含み、署名キーは第１のデバイスによって生成されるランダム値を含んでおり、上記方法はさらに、第１のデバイスにおいて保証公開キーにより、署名キーおよび識別キーに関連付けられる情報の組み合わせを暗号化することと、暗号化された組み合わせを第１のデバイスから第２のデバイスに提供すること、提供後に第１のデバイスにおいて第２のデバイスから応答が受信されると、応答に含まれる署名を照合することと、署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証することとを含む。
【０００４】
いくつかの革新的な実現例において、開示される主題は、マシン読取可能媒体において具現化され得る。上記マシン読取可能媒体は命令を含み、上記命令は、プロセッサによって実行されると、プロセッサに、第１のデバイスにおいて、第２のデバイスからディスカバリメッセージを受信することと、ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間に通信チャネルを確立することと、第１のデバイスにおいて、第２のデバイスから識別情報を受信することとを含む動作を実行させ、識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み、上記命令は、プロセッサによって実行されると、プロセッサに、第１のデバイスにおいて、ＰＣＲ値、クォートまたは保証キー証明書のうちの１つ以上を照合することと、照合に基づいて、確立された通信チャネルに関連付けられる接続情報を含むメッセージを第１のデバイスから第２のデバイスに送信することと、第１のデバイスにおいて保証公開キーにより、接続情報および識別キーに関連付けられる情報の組み合わせを暗号化することと、第１のデバイスから第２のデバイスに、暗号化された組み合わせを提供することと、提供後に第１のデバイスにおいて第２のデバイスから応答が受信されると、応答に含まれる署名を照合することと、照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証することとを含む動作を実行させる。
【０００５】
いくつかの革新的な実現例において、開示される主題はシステムにおいて具現化され得る。上記システムは、命令を含むメモリとプロセッサとを含み、上記プロセッサは、第１のデバイスにおいて、第２のデバイスからディスカバリメッセージを受信することと、ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間に通信チャネルを確立することと、第１のデバイスにおいて、第２のデバイスから識別情報を受信することとを行うよう命令を実行するように構成されており、識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ：platform control register）値、非対称の署名キーの公開部分、識別キーによる非対称の署名キーの公開部分の署名、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含んでおり、上記プロセッサはさらに、第１のデバイスにおいて、非対称の署名キーの証明を照合することと、照合に基づいて、署名キーを含むメッセージを第１のデバイスから第２のデバイスに送信することとを行うよう命令を実行するように構成されており、署名キーは第１のデバイスによって生成されるランダム値を含んでおり、上記プロセッサはさらに、第１のデバイスにおいて保証公開キーにより、署名キーおよび識別キーに関連付けられる情報の組み合わせを暗号化することと、第１のデバイスから第２のデバイスに、暗号化された組み合わせを提供することと、提供後に第１のデバイスにおいて第２のデバイスから応答が受信されると、応答に含まれる署名を照合することと、署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証することとを行うよう命令を実行するように構成されている。
【０００６】
対象技術のさまざまな構成が例示として示され説明される以下の詳細な説明から、対象技術の他の構成は当業者には容易に明白になるであろうということが理解される。認識されるであろうように、対象技術の範囲から逸脱することがなければすべて、対象技術は他の構成および異なる構成が可能であり、そのいくつかの詳細はさまざまな他の点において修正可能である。したがって、図面および詳細な説明は、性質において限定的ではなく例示的であると見なされるべきである。
【０００７】
対象技術の新規な特徴は、添付の請求の範囲において記載されている。しかしながら、説明目的のために、対象技術のいくつかの構成は、以下に要約される添付の図面において記載されている。
【図面の簡単な説明】
【０００８】
【図１】対象技術のいくつかの実現例を実施するのに好適な例示的なデバイスおよびネットワーク環境の図である。
【図２】いくつかの実現例に従ったピアツーピア認証システムにおける例示的な信頼グラフを示す図である。
【図３】いくつかの実現例に従った例示的なフロー図を示す図である。
【図４】いくつかの実現例に従った別の例示的なフロー図を示す図である。
【図５】図１の例示的なデバイスを使用して対象技術の実現例を実施するための例示的なプロセスの図である。
【図６】図１の例示的なデバイスを使用して対象技術の実現例を実施するための別の例示的なプロセスを示す図である。
【図７】図１の例示的なデバイスを使用して対象技術の実現例を実施するためのさらに別の例示的なプロセスを示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
以下に記載される詳細な説明は、対象技術のさまざまな構成の記載として意図されており、対象技術が実行され得る唯一の構成を表わすように意図されない。添付の図面は、本願明細書において援用され、詳細な説明の一部を構成する。対象技術は本願明細書において記載される特定の詳細に限定されず、これらの特定の詳細なしで実施され得る。
【００１０】
トラステッドプラットホーム（trusted platform）は、セキュリティモジュールの形態にあるトラステッドコンポーネントを有するコンピューティングプラットフォームであり得、トラステッドプラットホームは、ソフトウェアプロセスのための信頼の基礎を作り出すためにトラステッドコンポーネントを使用する。そのようなセキュリティモジュールの例は、トラステッドプラットホームモジュール（Trusted Platform Module）、すなわち、ＴＰＭである。ＴＰＭは、コンピューティングデバイス上で耐不正改変（tamper resistant）集積回路（ＩＣ）として典型的に実現されている。ＴＰＭは、コンピューティングデバイスが自身をトラステッドプラットホームとして表わすことを可能にするファームウェア（たとえばベーシックインプット／アウトプットシステム（ＢＩＯＳ： Basic Input/Output System）ファームウェア）に関連付けられ得る。
【００１１】
セキュリティモジュール（たとえばＴＰＭ）を含むコンピューティングデバイスの正当性の保証は、典型的に、製造時においてセキュリティモジュールに保証機関（endorsement authority）が保証キー（たとえば非対称キーペアおよび対応する公開キーのための証明書といったソフトウェア証明）を埋め込むことを伴う。いくつかの場合において、保証キーは、コンピューティングデバイスまたはセキュリティモジュールの製造業者に関する粗い情報を含み得る。他の場合において、保証キーは、製品のタイプ（たとえばラップトップまたは携帯電話）に関する情報を含み得る。特定の製造業者によって作製されたハードウェアデバイスは、特定の製造業者の正当な製品であることをサーバに立証（または認証）することが可能であり得る。ハードウェアデバイスはさらに、特定のモードで動作し、当該ハードウェアデバイスがどの種類の製品（たとえばラップトップ、音声スピーカ、ネットワークルータなど）であるかと、ハードウェアデバイスが動作している特定のモードとをサーバに通知することが可能であり得る。そのような認証は、インターネット接続と、製造業者によって提供される適切なソフトウェアサービスへのアクセスとを必要とし得る。しかしながら、このアプローチは、特にインターネット接続が利用可能でない場合といったいくつかのユースケースについて十分ではない場合がある。たとえば、ハードウェアデバイスは、Ｂｌｕｅｔｏｏｔｈ（登録商標）を介してＷｉＦｉクレデンシャルを共有することを望むが、ある特性を満たす正当なデバイスまたは認証されたデバイスに対してのみそのようなクレデンシャルを共有することを望み得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働することを望み得る。
【００１２】
開示される実施形態は、２つ以上のデバイス（たとえば第１のデバイスおよび第２のデバイス）間のピアツーピア認証を可能にする。たとえば、第１のデバイスにおいて、ディスカバリメッセージが第２のデバイスから受信される。ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間に通信チャネルが確立され得る。第１のデバイスにおいて、識別情報が第２のデバイスから受信され得る。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００１３】
その後、第１のデバイスは、ＰＣＲ値、クォート、または、保証キー証明書のうちの１つ以上を照合し得る。当該照合に基づいて、第１のデバイスは、署名キーを含むメッセージを第２のデバイスに送信し得る。署名キーは、第１のデバイスによって生成されるランダム値を含んでいる。第１のデバイスはさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、第１のデバイスは、暗号化された組み合わせを第２のデバイスに提供し得る。
【００１４】
暗号化された組み合わせが第２のデバイスに提供された後、第１のデバイスにおいて応答が第２のデバイスから受信されると、第１のデバイスは、応答に含まれる署名を照合し得る。署名が照合されると、第１のデバイスは、当該署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証する。
【００１５】
これにより、第１のデバイスおよび第２のデバイスは、インターネット（あるいは同様の）接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。たとえば、ハードウェアデバイスは、ある特性を満たす正当なデバイスまたは認証されたデバイスとＢｌｕｅｔｏｏｔｈを介してＷｉＦｉクレデンシャルを共有可能であり得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働可能であり得る。開示される実現例は、２つのデバイスに限定されず、任意数のデバイスおよび任意のタイプの有線または無線のネットワークでも機能し得る。
【００１６】
対象技術のいくつかの局面は、コンピューティングデバイスハードウェアに関する情報を格納することを含んでいる。ユーザは、そのような情報の格納を防止するオプションを有する。ユーザにはさらに、プログラムまたは機能がそのような情報を収集または共有するかどうかをコントロールする機会が提供され得る。したがって、ユーザは、情報がどのようにコンピューティングデバイスハードウェアに関して収集されてサーバによって使用されるかについてコントロールを有し得る。
【００１７】
図１は、対象技術のいくつかの実現例に従ったセキュリティモジュール保証のための例示的なアーキテクチャを示す図である。セキュリティモジュール１８０は、プロセッサ１１２、メモリ１２０、ストレージ１２６、および、バス１２４を含んでいる。セキュリティモジュール１８０はさらに、入出力モジュール、入力デバイス、出力デバイス、および、通信モジュールに関連付けられ得る。メモリ１２０は、保証エンジン１３２、レジスタ１３４、キージェネレータ１３６、署名エンジン１３８、および、暗号エンジン１４２を含んでいる。
【００１８】
セキュリティモジュール１８０は、コンピューティングデバイス１９０に存在し得る。コンピューティングデバイス１９０は、１つ以上のプロセッサ、メモリおよびストレージを含み得る。コンピューティングデバイス１９０はさらに、出力デバイス（たとえばタッチスクリーンディスプレイ、非タッチスクリーンディスプレイ）と、ユーザ入力を受信する入力デバイス（たとえばキーボード、タッチスクリーンまたはマウス）とを含み得る。いくつかの実現例では、コンピューティングデバイス１９０は、コンピューティングデバイス１９０上で実行されるブラウザまたは特殊目的アプリケーションを介するユーザインタラクションを促進するための１つ以上のモジュールを含み得る。コンピューティングデバイス１９０は、単一のプロセッサを有する単一のマシン、マルチプロセッサマシン、または、複数のプロセッサを有する複数のマシンを含むサーバファームとして実現され得る。コンピューティングデバイス１９０上の通信モジュールによって、セキュリティモジュール１８０（またはコンピューティングデバイス１９０）は、デバイス情報データベース１９４、保証サーバ１９６および証明書機関サーバ１１０に対してネットワーク１５０を介してデータを送受信することが可能である。コンピューティングデバイス１９２はさらに、コンピューティングデバイス１９０に含まれるコンポーネントのうちの１つ以上を含み得るが、これらに限定されないということが認識されるべきである。たとえば、コンピューティングデバイス１９２はさらに、セキュリティモジュール、プロセッサ、メモリ、ストレージおよびバスを含み得る。セキュリティモジュールはさらに、入出力モジュール、入力デバイス、出力デバイス、および、通信モジュールに関連付けられ得る。コンピューティングデバイス１９２のメモリはさらに、保証エンジン、レジスタ、キージェネレータ、署名エンジン、および、暗号エンジンを含み得る。
【００１９】
いくつかの実現例では、セキュリティモジュール１８０は、デバイス情報データベース１９４に関連付けられ得る。デバイス情報データベース１９４は、デバイスを識別するデータおよびデバイスの特性を含み得る。識別は、数字、英数字ストリング、ハッシュ値、または、識別の任意の他の形態であり得る。デバイスは、ラップトップ、モバイルデバイス、タブレットコンピュータ、ホームオートメーションデバイスおよびセンサ、インターネット対応ハードウェアデバイスなどを含み得るが、これらに限定されない。特性は、異なる製造業者によって製造され得るデバイスのクラス、モデルまたはバッチを含み得るが、これらに限定されない。いくつかの実現例では、デバイスおよびそれぞれの特性は、それぞれの特殊化保証クレデンシャル（specialized endorsement credential）と、拡張インテグリティ測定（extended integrity measurement)とに関連付けられ得る。いくつかの実現例では、この情報は、デバイス情報データベース１９４においてデータベーステーブルに格納され得、特殊化保証クレデンシャルによってインデキシングされ得る。
【００２０】
いくつかの実現例では、デバイス情報データベース１９４は、無効である特殊化保証クレデンシャルおよびそれぞれの拡張インテグリティ測定デバイスを識別し得る（たとえばフラグを立て得る）。そのような無効のクレデンシャルを提供するセキュリティモジュール（たとえばセキュリティモジュール１８０）には、当該セキュリティモジュールの真正性を認証または確認し、これにより、セキュリティモジュールが存在するコンピューティングデバイスの真正性を認証または確認する認証識別クレデンシャルが提供されるべきではない。同様に、いくつかの実現例において、デバイス情報データベース１９４は、有効である特殊化保証クレデンシャルおよびそれぞれの拡張インテグリティ測定を識別し得る。
【００２１】
いくつかの実現例では、証明書機関サーバ１１０、デバイス情報データベース１９４、保証サーバ１９６、クライアントコンピューティングデバイス１９０（または１９２）、および、セキュリティモジュール１８０は、ネットワーク１５０を介して互いに通信し得る。ネットワーク１５０は、インターネット、イントラネット、ローカルエリアネットワーク、ワイドエリアネットワーク、有線ネットワーク、無線ネットワーク、または、仮想プライベートネットワーク（ＶＰＮ： virtual private network）を含み得る。１つの証明書機関サーバ１１０、保証サーバ１９６、コンピューティングデバイス１９０、デバイス情報データベース１９４およびセキュリティモジュール１８０のみが示されているが、対象技術は、任意数の証明書機関サーバ１１０、クライアントコンピューティングデバイス１９０、デバイス情報データベース１９４およびセキュリティモジュール１８０と共に実現され得る。いくつかの非限定的な実現例では、単一のコンピューティングデバイスが、図１に示される証明書機関サーバ１１０およびデバイス情報データベース１９４、他のコンポーネントの機能を実現し得る。
【００２２】
クライアントコンピューティングデバイス１９０および１９２は、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）、タブレットコンピュータ、ネットブック、１つ以上のプロセッサが埋め込まれるかもしくは結合されるテレビジョン、物理マシン、または、仮想マシンであり得る。クライアントコンピューティングデバイス１９０および１９２は各々、キーボード、マウス、ディスプレイまたはタッチスクリーンのうちの１つ以上を含み得る。クライアントコンピューティングデバイス１９０および１９２は各々、ウェブコンテンツを表示するように構成されるウェブアプリケーションを含み得る。代替的には、クライアントコンピューティングデバイス１９０および１９２は、ウェブコンテンツにアクセスするための特殊目的アプリケーション（たとえば携帯電話またはタブレットコンピュータアプリケーション）を含み得る。セキュリティモジュール１８０は、コンピューティングデバイス１９０および１９２の製造時に、コンピューティングデバイス１９０および１９２に埋め込まれ得る。
【００２３】
いくつかの実現例では、ピアツーピア認証は、インターネット接続またはクラウドコンピューティングサービスへのアクセスがない場合であっても、一方のデバイスが自身に関するプロパティを他方のデバイスに証明することを可能にし得る。コンピューティングデバイスは、他のデバイスからの請求（たとえば情報またはデータアクセス要求）を信頼することができるかどうか知る方法を必要とし得る。この信頼性は、それ自身のハードウェアルートオブトラスト（ＨＲｏＴ：hardware root of trust）と、ピアデバイスのＨＲｏＴと、ピアデバイスＴＰＭの製造業者とに根付いている。図２は、開示される実現例に従った、ピアツーピア認証システムにおける信頼性のフローを示す例示的な信頼性グラフを示す。例として、システム内における任意の単一のルートオブトラストの犠牲（compromise）は、コンピューティングデバイス（たとえばコンピューティングデバイス１９０または１９２）のうちのいずれかによる照合された請求のいずれもが如何なる値も保持していないかもしれないことを暗示している。さらに非限定的な例として、いくつかのコンピューティングデバイスの場合、物理的なアクセスによりデバイスＨＲｏＴを不正に変更することは可能であり得るが、遠隔で不正な変更を加えることは可能ではない。図２を参照して、ＴＰＭ製造業者保証２０２は、チップがＴＰＭ規準に従って製造されたものであり、チップサプライチェーンが対象とされていることを証明する。
【００２４】
各ＴＰＭ製造業者は、自身が製造するモジュールを保証する。ＨＲｏＴ（自機）２０４の読取専用不揮発性メモリは、デバイスがブートすると実行される第１の命令を保持する。ＨＲｏＴ（ピア）２０６は、ピアデバイス上の同一のメモリであり得る。照合されたブート（自機）２０８は、照合されたブートプロセスであり得、全システムが第１の実行コードに基づいて照合される。照合されたブートにおける信頼性はＨＲｏＴにおける信頼性に基づく。照合されたブート（ピア）２１０は、ピアデバイス上の同一のプロセスであり得る。
【００２５】
保証証明書リスト２１２は、たとえば各ＴＰＭ製品ラインについて１つの保証証明書機関のルート証明書のリストであり得る。ＰＣＲ値２１４は、ブート中に測定されるようなピアＴＰＭのプラットホームコンフィグレーションレジスタ（ＰＣＲ： platform configuration register）値であり得る。各ＰＣＲ値は、デバイスに関する情報（たとえば動作モード、デバイスタイプなど）を保持し得る。識別キー２１６は、ピアＴＰＭによって保護されると証明され得るキーであり得る。ＰＣＲクォート２１８は、識別キー２１６によるＰＣＲ値の署名であり得る。
【００２６】
ＰＣＲクォートが照合されると、照合された請求２２０が格納され、その後、ピアデバイスによって与えられた請求（ＰＣＲ値）が照合され、（ルートオブトラストを仮定して）信頼され得る。証明されたキー２２２は、同じピアＴＰＭによって保護されるような、ピア識別キーによって保証される随意のエクステンションまたはキーであり得る。
【００２７】
上で論じたように、セキュリティモジュール１８０のメモリ１２０は、保証エンジン１３２、レジスタ１３４、キージェネレータ１３６、署名エンジン１３８、および、暗号エンジン１４２を含み得る。
【００２８】
開示された実施形態は、２つ以上のデバイス（たとえばコンピューティングデバイス１９０およびコンピューティングデバイス１９２）間でのセキュアなチャネル認証およびピアツーピア認証を可能にし得る。たとえば、コンピューティングデバイス１９０では、ディスカバリメッセージがコンピューティングデバイス１９２から受信される。例として、図３を参照して、このメッセージＭ０はディスカバリメッセージであり得る。ディスカバリメッセージに基づいて、通信チャネルは、コンピューティングデバイス１９０および１９２の間で確立され得る。コンピューティングデバイス１９０において、識別（または他のデバイスの請求）情報は、コンピューティングデバイス１９２から受信され得る。例として、図３を参照して、メッセージＭ１は識別および請求メッセージであり得る。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００２９】
その後、コンピューティングデバイス１９０は、ＰＣＲ値、クォート、または、保証キー証明書のうちの１つ以上を照合し得る。当該照合に基づいて、コンピューティングデバイス１９０は、署名キーを含むメッセージをコンピューティングデバイス１９２に送信し得る。署名キーは、コンピューティングデバイス１９２によって生成されるランダム値を含んでいる。コンピューティングデバイス１９０はさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、コンピューティングデバイス１９０は、暗号化された組み合わせをコンピューティングデバイス１９２に提供し得る。図３を参照して、この暗号化された組み合わせは、「チャレンジ」メッセージＭ２であり得るメッセージに含まれ得る。
【００３０】
暗号化された組み合わせがコンピューティングデバイス１９２に提供された後、応答（たとえば図３のチャレンジ応答Ｍ３）がコンピューティングデバイス１９０、第１のデバイスにおいてコンピューティングデバイス１９２から受信されると、コンピューティングデバイス１９０は、応答に含まれる署名を照合し得る。署名が照合されると、コンピューティングデバイス１９０は、当該署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証する。
【００３１】
これにより、コンピューティングデバイス１９０および１９２は、インターネット（あるいは同様の）接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。たとえば、コンピューティングデバイス１９０は、Ｂｌｕｅｔｏｏｔｈを介してコンピューティングデバイス１９２とＷｉＦｉクレデンシャルを共有可能であり得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働可能であり得る。開示される実現例は、２つのデバイスに限定されず、任意数のデバイスおよび任意のタイプの有線または無線のネットワークでも機能し得る。
【００３２】
いくつかの実現例において、ＴＰＭ保証キー証明書は、コンピューティングデバイス１９２の製造業者によって提供される。いくつかの実現例では、保証キー証明書は、コンピューティングデバイス１９０によって、コンピューティングデバイス１９０において格納される有効な保証ルート期間のリストに対して照合され得る。組み合わせは、クライアントコンピューティングデバイス１９０または１９２においてＴＰＭによって読み取り可能なデータ構造であり得る。いくつかの実現例では、コンピューティングデバイス１９２のＴＰＭが、保証公開キーおよび識別キーについての秘密キーを含んでいる場合、署名キーは、暗号化された組み合わせからコンピューティングデバイス１９２によって回収され得る。いくつかの実現例では、コンピューティングデバイス１９２が暗号化された組み合わせから署名キーを回収することができる場合、コンピューティングデバイス１９２から応答が受信される。いくつかの実現例において、コンピューティングデバイス１９２からの応答は、署名キーを使用する暗号化された組み合わせの署名を含む。
【００３３】
いくつかの実現例では、ＷｉＦｉ（または他の無線または有線）接続データが、ピアツーピア認証またはコンピューティングデバイス１９０と１９２との間の認証に使用され得る。いくつかの実現例において、コンピューティングデバイス１９０では、ディスカバリメッセージ（たとえば図４のメッセージＭ０）がコンピューティングデバイス１９２から受信される。ディスカバリメッセージに基づいて、コンピューティングデバイス１９０と１９２との間で通信チャネルが確立され得る。コンピューティングデバイス１９０では、識別情報（たとえば図４のメッセージＭ１）がコンピューティングデバイス１９２から受信され得る。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ：platform control register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００３４】
その後、コンピューティングデバイス１９０は、ＰＣＲ値、クォートまたは保証キー証明書のうちの１つ以上を照合し得る。当該照合に基づいて、コンピューティングデバイス１９０は、確立された通信チャネルに関連付けられる接続情報（たとえばＷｉＦｉ接続情報）を含むメッセージをコンピューティングデバイス１９２に送信し得る。コンピューティングデバイス１９０はさらに、接続情報と識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、コンピューティングデバイス１９０は、暗号化された組み合わせをコンピューティングデバイス１９２に提供し得る。図４を参照して、この暗号化された組み合わせは、「チャレンジ」メッセージＭ２であり得るメッセージに含まれ得る。
【００３５】
暗号化された組み合わせがコンピューティングデバイス１９２に提供された後、コンピューティングデバイス１９０、第１のデバイスにおいて応答がコンピューティングデバイス１９２から受信されると、コンピューティングデバイス１９０は、応答に含まれる署名を照合し得る。署名が照合されると、コンピューティングデバイス１９０は、当該署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証する。
【００３６】
これにより、コンピューティングデバイス１９０および１９２は、インターネット（あるいは同様の）接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。
【００３７】
たとえば、コンピューティングデバイス１９０は、Ｂｌｕｅｔｏｏｔｈを介してコンピューティングデバイス１９２とＷｉＦｉクレデンシャルを共有可能であり得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働可能であり得る。開示される実現例は、２つのデバイスに限定されず、任意数のデバイスおよび任意のタイプの有線または無線のネットワークでも機能し得る。
【００３８】
いくつかの実現例では、開示される局面は、コンピューティングデバイス１９０と１９２との間でペアリングするデバイスに使用され得る。いくつかの実現例において、コンピューティングデバイス１９０では、ディスカバリメッセージがコンピューティングデバイス１９２から受信される。ディスカバリメッセージに基づいて、コンピューティングデバイス１９０と１９２との間で通信チャネルが確立され得る。コンピューティングデバイス１９０において、識別情報はコンピューティングデバイス１９２から受信され得る。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、非対称の署名キーの公開部分、識別キーによる非対称の署名キーの公開部分の署名、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００３９】
コンピューティングデバイス１９０は、非対称の署名キーの証明を照合し得る。当該照合に基づいて、または、証明が照合されれば、コンピューティングデバイス１９０は、確立された通信チャネルに関連付けられる接続情報（たとえばＷｉＦｉ接続情報）を含むメッセージをコンピューティングデバイス１９２に送信し得る。コンピューティングデバイス１９０はさらに、接続情報と識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、コンピューティングデバイス１９０は、暗号化された組み合わせをコンピューティングデバイス１９２に提供し得る。
【００４０】
暗号化された組み合わせがコンピューティングデバイス１９２に提供された後、コンピューティングデバイス１９０、第１のデバイスにおいて応答がコンピューティングデバイス１９２から受信されると、コンピューティングデバイス１９０は、応答に含まれる署名を照合し得る。署名が照合されると、コンピューティングデバイス１９０は、当該署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証する。
【００４１】
これにより、コンピューティングデバイス１９０および１９２は、インターネット（あるいは同様の）接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。
【００４２】
いくつかの実現例において、ブートプロセス中に、セキュリティモジュール１８０は、コンピューティングデバイス１９０のＢＩＯＳ、ブートローダおよびオペレーティングシステムカーネルを含むソフトウェアおよびファームウェアコンポーネントのうちの１つ以上を、それらがコンピューティングデバイス１９０のメモリにロードされる前に、測定し得る（たとえば、ハッシュを生成し得る）。ソフトウェアおよびファームウェアコンポーネントの実行の前にこれらのインテグリティ測定を行うとともにそれらをセキュリティモジュール１８０上に格納することにより、これらの測定は、後の修正の試みから隔離されて安全にされ得る。インテグリティ測定は、セキュリティモジュール１８０によってレジスタ１３４に格納され得る。
【００４３】
いくつかの実現例では、コンピューティングデバイス１９０を特徴付ける情報は、ハードウェア識別子を含み得る。ハードウェア識別子は、コンピューティングデバイスのバッチ、モデルまたはクラスのうちの１つ以上を識別し得る。当該ハードウェア識別は、数字、英数字ストリング、ハッシュ値、または、識別の任意の他の形態であり得る。ハードウェア識別子は、コンピューティングデバイス１９０の製造時にセキュアなストレージ（たとえばストレージ１２６）に格納され得る。セキュアなストレージはたとえば、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ： non-volatile random access memory）インデックスであり得る。いくつかの実現例において、セキュアなストレージへのアクセスは、暗号キー、または、コンピューティングデバイス１９０の現在の動作状態のうちの１つ以上に基づく。
【００４４】
いくつかの実現例では、署名エンジン１３８は、デジタル署名によりインテグリティ測定にデジタルで署名し得る。いくつかの実現例では、デジタル署名は、暗号エンジン１４２によって生成されるハッシュまたは暗号値であり得る。
【００４５】
いくつかの実現例では、保証エンジン１３２は、認証識別クレデンシャルについての要求において、証明書機関サーバ１１０に特殊化保証クレデンシャル１４８を提供し得、証明書機関サーバ１１０から認証識別クレデンシャル１４４を受信し得る。認証識別クレデンシャル１４４の受信は、セキュリティモジュール１８０は信頼性があるとセキュリティモジュール１８０およびコンピューティングデバイス１９０に示し得る。セキュリティモジュールは、認証されると、たとえば、パスワード、デジタルクレデンシャル、センシティブなデータ、および、ソフトウェアプロセスに関連付けられる任意の他のデータを格納するために、コンピューティングデバイス上でソフトウェアプロセスによって信頼され使用され得る。
【００４６】
図５は、図１の例示的なアーキテクチャを使用して、対象技術の実現例を実施するための例示的なプロセス５００である。図５は、図１の要素を参照して記載されるが、図５のプロセスは、そのようなものに限定されず、他のシステムにおいても適用され得る。
【００４７】
第１のデバイスにおいてディスカバリメッセージが第２のデバイスから受信されると、プロセス５００はステージ５０２から開始する。ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間で通信チャネルが確立され得る（ステージ５０４）。第１のデバイスにおいて、確立された通信チャネルを介して第２のデバイスから識別情報が受信され得る（ステージ５０６）。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００４８】
その後、第１のデバイスは、ＰＣＲ値、クォート、または、保証キー証明書のうちの１つ以上を照合し得る（ステージ５０８）。当該照合に基づいて、第１のデバイスは、署名キーを含むメッセージを第２のデバイスに送信し得、署名キーは、第１のデバイスによって生成されるランダム値を含んでいる（ステージ５１０）。第１のデバイスはさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る（ステージ５１２）。その後、第１のデバイスは、暗号化された組み合わせを第２のデバイスに提供し得る（ステージ５１４）。
【００４９】
暗号化された組み合わせが第２のデバイスに提供された後、第１のデバイスにおいて応答が第２のデバイスから受信されると、第１のデバイスは、応答に含まれる署名を照合し得る（ステージ５１６）。署名が照合されると、第１のデバイスは、当該署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証する（ステージ５１８）。
【００５０】
図６は、図１の例示的なアーキテクチャを使用して、対象技術の実現例を実施するための例示的なプロセス６００である。図６は、図１の要素を参照して記載されるが、図６のプロセスは、そのようなものに限定されず、他のシステムにおいても適用され得る。
【００５１】
第１のデバイスにおいてディスカバリメッセージが第２のデバイスから受信されると、プロセス６００はステージ６０２から開始する。ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間で通信チャネルが確立され得る（ステージ６０４）。第１のデバイスにおいて、確立された通信チャネルを介して第２のデバイスから識別情報が受信され得る（ステージ６０６）。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ：platform control register）値、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００５２】
その後、第１のデバイスは、ＰＣＲ値、クォート、または、保証キー証明書のうちの１つ以上を照合し得る（ステージ６０８）。照合に基づいて、第１のデバイスは、確立された通信チャネルに関連付けられる接続情報を含むメッセージを第２のデバイスに送信し得る（ステージ６１０）。第１のデバイスはさらに、接続情報と識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る（ステージ６１２）。その後、第１のデバイスは、暗号化された組み合わせを第２のデバイスに提供し得る（ステージ６１４）。
【００５３】
第２のデバイスがパケットを復号すると、通信チャネル（たとえばＷｉＦｉ）共有が完了する（ステージ６１６）。
【００５４】
図７は、図１の例示的なデバイスを使用して、対象技術の実現例を実施するための例示的なプロセス７００である。図７は、図１の要素を参照して記載されるが、図７のプロセスは、そのようなものに限定されず、他のシステムにおいても適用され得る。
【００５５】
第１のデバイスにおいてディスカバリメッセージが第２のデバイスから受信されると、プロセス７００はステージ７０２から開始する。ディスカバリメッセージに基づいて、第１のデバイスと第２のデバイスとの間で通信チャネルが確立され得る（ステージ７０４）。第１のデバイスにおいて、確立された通信チャネルを介して第２のデバイスから識別情報が受信され得る（ステージ７０６）。識別情報は、トラステッドプラットホームモジュール（ＴＰＭ: trusted platform module）保証キー証明書、識別キーの公開部分、１つ以上のプラットホームコントロールレジスタ（ＰＣＲ： platform control register）値、非対称の署名キーの公開部分、識別キーによる非対称の署名キーの公開部分の署名、または、識別キーによるＰＣＲ値のクォート（quote）のうちの１つ以上を含み得るがこれらに限定されない。
【００５６】
その後、第１のデバイスは、非対称の署名キーの証明を照合し得る（ステージ７０８）。照合に基づいて、第１のデバイスは、確立された通信チャネルに関連付けられる接続情報を随意に含むメッセージを第２のデバイスに送信し得る（ステージ７１０）。第１のデバイスはさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る（ステージ７１２）。その後、第１のデバイスは、暗号化された組み合わせを第２のデバイスに提供し得る（ステージ７１４）。
【００５７】
暗号化された組み合わせが第２のデバイスに提供された後、第１のデバイスにおいて応答が第２のデバイスから受信されると、第１のデバイスは、応答に含まれる署名を照合し得る（ステージ７１６）。署名が照合されると、第１のデバイスは、当該署名の照合に基づいて、通信チャネルまたは第２のデバイスの識別情報のうちの１つ以上を認証する（ステージ７１８）。
【００５８】
図１を再び参照して、ある局面において、セキュリティモジュール１８０は、専用サーバ、または、別のエンティティに統合されるか、もしくは、複数のエンティティにわたって分散するコンピューティングデバイスのいずれかにおいて、ハードウェア、または、ソフトウェアおよびハードウェアの組み合わせを使用して実現され得る。
【００５９】
セキュリティモジュール１８０は、情報を通信するためのバス１２４または他の通信メカニズムと、バス１２４に結合される、データを処理するためのプロセッサ１１２とを含む。プロセッサ１１２は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ： Digital Signal Processor）、特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ： Field Programmable Gate Array）、プログラマブルロジックデバイス（ＰＬＤ： Programmable Logic Device）、コントローラ、ステートマシン、ゲートロジック（gated logic）、離散的なハードウェアコンポーネント、または、計算または他の情報の取扱いを実行し得る任意の他の好適なエンティティであり得る。
【００６０】
セキュリティモジュール１８０は、ハードウェアに加えて、たとえばプロセッサファームウェアを構成するコードといったような対象のコンピュータプログラムについて実行環境を作り出すコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、メモリ１２０に格納されるそれらの１つ以上の組み合わせを含み得る。メモリ１２０は、情報およびプロセッサ１１２によって実行される命令を格納するためにバス１２４に結合されるランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、リードオンリメモリ（ＲＯＭ）、プログラマブルリードオンリメモリ（ＰＲＯＭ）、イレーザブルＰＲＯＭ（ＥＰＲＯＭ）、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、または、任意の他の好適なストレージデバイスを含み得る。プロセッサ１１２およびメモリ１２０は、特殊目的論理回路によって補助され得るか、または、特殊目的論理回路に統合され得る。
【００６１】
命令は、メモリ１２０に格納され、１つ以上のコンピュータプログラムプロダクトで実現され得る。すなわち、セキュリティモジュール１８０による実行のために、または、セキュリティモジュール１８０の動作を制御するためにコンピュータ読取可能媒体上でエンコードされたコンピュータプログラム命令の１つ以上のモジュールで実現され得る。当業者に周知の任意の方法によると、当該命令は、データ指向言語（たとえばＳＱＬ、ｄＢａｓｅ）、システム言語（たとえばＣ、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｃ＋＋、アセンブリ）、アーキテクチャ言語（たとえばＪａｖａ（登録商標）、.ＮＥＴ）、および、アプリケーション言語（たとえばＰＨＰ、Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ）といったコンピュータ言語を含むが、これらに限定されない。命令はさらに、配列言語、アスペクト指向言語、アセンブリ言語、オーサリング言語、コマンドラインインターフェイス言語、コンパイラ型言語、並行言語、カーリーブラケット言語（curly-bracket language）、データフロー言語、データ構造言語、宣言言語、難解言語（esoteric language）、拡張言語、第四世代言語、関数型言語、対話型言語、インタープリタ型言語、反復型言語、リストベース言語、小言語、論理ベース言語、機械語、マクロ言語、メタプログラミング言語、マルチパラダイム言語、数値解析、非英語ベースの言語、オブジェクト指向クラスベース言語、オブジェクト指向プロトタイプベース言語、オフサイドルール言語、手続き型言語、リフレクション言語、ルールベース言語、スクリプト言語、スタックベース言語、同期言語、シンタックス処理言語、ビジュアル言語、ヴィルト言語（wirth language）、埋込可能言語、および、ｘｍｌベース言語といったコンピュータ言語で実現され得る。メモリ１２０はさらに、プロセッサ１１２によって実行される命令の実行の間、一時変数または他の中間情報を格納するために使用され得る。
【００６２】
本願明細書において議論されたコンピュータプログラムは必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、対象のプログラムに専用である単一のファイルにおいて、または、複数の協働するファイル（たとえば１つ以上のモジュール、サブプログラムまたはコードの部分を格納するファイル）において、他のプログラムまたはデータ（たとえば、マークアップ言語文書に格納された１つ以上のスクリプト）を保持するファイルの一部に格納され得る。コンピュータプログラムは、１つのコンピュータ上で実行されるように展開され得るか、または、１つのサイトに位置するかもしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。この明細書に記載されるプロセスおよび論理フローは、入力データに対して動作を行うとともに出力を生成することにより機能を実行するよう１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルプロセッサによって実行され得る。
【００６３】
セキュリティモジュール１８０はさらに、情報および命令を格納するためにバス１２４に結合される磁気ディスクまたは光ディスク、ソリッドステートメモリ、不揮発性メモリなどといったデータストレージデバイス１２６を含んでいる。クライアント１９０は、入出力モジュールを介してさまざまなデバイスに結合され得る。入出力モジュールは任意の入出力モジュールであり得る。例示的な入出力モジュールは、ＵＳＢポートのようなデータポートを含んでいる。入出力モジュールは通信モジュールに接続するように構成され得る。例示的な通信モジュールは、イーサネット（登録商標）カードのようなネットワークインターフェイスカードとモデムとを含む。ある局面では、入出力モジュールは、入力デバイスおよび／または出力デバイスのような複数のデバイスに接続するように構成される。例示的な入力デバイスは、キーボードと、たとえばマウスまたはトラックボールのようなポインティングデバイスとを含んでおり、これらにより、ユーザはクライアントコンピューティングデバイス１９０およびセキュリティモジュール１８０に入力を提供することができる。触覚入力デバイス、視覚入力デバイス、音声入力デバイス、または、ブレインコンピュータインターフェイスデバイスといった他の種類の入力デバイスも同様に、ユーザとのインタラクションを提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった感覚フィードバックの任意の形態であり得、また、ユーザからの入力は、音響入力、スピーチ入力、触覚入力、または脳波入力を含む任意の形態で受信され得る。例示的な出力デバイスは、ＬＥＤ（発光ダイオード）、ＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）スクリーンといった、ユーザに情報を表示するためのディスプレイデバイスを含んでいる。
【００６４】
本開示の１つの局面に従うと、セキュリティモジュール１８０は、メモリ１２０に含まれる１つ以上の命令の１つ以上のシーケンスをプロセッサ１１２が実行することに応答して、クライアントコンピューティングデバイス１９０において実現され得る。そのような命令は、ストレージデバイス１２６のような別のマシン読取可能媒体からメモリ１２０に読み込まれ得る。メインメモリ１２０に含まれる命令のシーケンスの実行によって、プロセッサ１１２が、本願明細書において記載されるプロセスブロックを実行する。メモリ１２０に含まれる命令のシーケンスを実行するために、マルチプロセッシング構成における１つ以上のプロセッサがさらに使用され得る。代替的な局面において、本開示のさまざまな局面を実現するために、ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせてハードワイヤード回路が使用されてもよい。したがって、本開示の局面はハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されない。
【００６５】
本明細書に記載の主題のさまざまな局面は、バックエンドコンポーネントをたとえばデータサーバとして含むコンピューティングシステムにおいて実現され得るか、ミドルウェアコンポーネントをたとえばアプリケーションサーバとして含むコンピューティングシステムにおいて実現され得るか、たとえばユーザが本明細書に記載の主題の実現例とインタラクションする際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといったようなフロントエンドコンポーネントを含むコンピューティングシステムにおいて実現され得るか、または、１つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、たとえば通信ネットワークといった、任意の形態または媒体のデジタルデータ通信によって相互接続され得る。通信ネットワーク（たとえばネットワーク１７０）はたとえば、パーソナルエリアネットワーク（ＰＡＮ： personal area network）、ローカルエリアネットワーク（ＬＡＮ：local area network）、キャンパスエリアネットワーク（CAN: campus area network）、メトロポリタンエリアネットワーク（ＭＡＮ： metropolitan area network）、ワイドエリアネットワーク（ＷＡＮ： wide area network）、ブロードバンドネットワーク（ＢＢＮ： broadband network）、およびインターネットなどのうちのいずれか１つ以上を含み得る。さらに、通信ネットワークは、たとえば、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、または、ツリーもしくは階層ネットワークなどを含むネットワークトポロジーのうちのいずれか１つ以上を含み得るがこれらに限定されない。通信モジュールはたとえば、モデムまたはイーサネットカードであり得る。
【００６６】
クライアントコンピューティングデバイス１９０は、たとえばデスクトップコンピュータ、ラップトップコンピュータまたはタブレットコンピュータであり得るがこれらに限定されない。クライアントコンピューティングデバイス１９０はさらに、別のデバイスに埋め込められ得る。当該別のデバイスは、たとえば、携帯電話、携帯情報端末（ＰＤＡ）、モバイルオーディオプレイヤー、グローバルポジショニングシステム（ＧＰＳ： Global Positioning System）レシーバ、ビデオゲームコンソール、および／または、テレビジョンセットトップボックスであるが、これらに限定されない。
【００６７】
本願明細書において使用される「マシン読取可能記憶媒体」または「コンピュータ読取可能媒体」という用語は、実行のためにプロセッサ１１２に命令またはデータを提供することに関与する任意の媒体を指す。そのような媒体は、不揮発性媒体および揮発性媒体を含むがこれらに限定されない多くの形態を取り得る。不揮発性媒体は、たとえば、データストレージデバイス１２６のような、光ディスク、磁気ディスクまたはフラッシュメモリを含む。揮発性媒体は、メモリ１２０のようなダイナミックメモリを含む。伝送媒体は、バス１２４を構成するワイヤーを含む同軸ケーブル、銅線および光ファイバーを含む。マシン読取可能媒体の一般的な形態はたとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的な媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、任意の他のメモリチップもしくはカートリッジ、または、コンピュータが読み出すことが可能である任意の他の媒体を含む。マシン読取可能記憶媒体は、マシン読取可能ストレージデバイス、マシン読取可能ストレージサブストレート、メモリデバイス、マシン読取可能な伝播された信号に影響を与える構成、または、それらの１つ以上の組み合わせであり得る。
【００６８】
本願明細書において使用されるように、「および」あるいは「または」という用語を伴う先行する一連の項目「のうちの少なくとも１つ」という、当該項目のうちのいずれかを分離するフレーズは、リストの各メンバー（すなわち各項目）ではなく、リスト全体を修飾している。「〜のうちの少なくとも１つ」というフレーズは、少なくとも１つの項目の選択を要求しているのではなく、項目のうちの少なくともいずれか１つを含む意味、および／または、項目の任意の組み合わせのうちの少なくとも１つを含む意味、および／または、項目のそれぞれのうちの少なくとも１つを含む意味を許容する。例として、「Ａ、ＢおよびＣのうちの少なくとも１つ」または「Ａ、ＢまたはＣのうちの少なくとも１つ」というフレーズは各々、Ａのみ、Ｂのみ、もしくは、Ｃのみを指すか、Ａ、ＢおよびＣの任意の組み合わせを指すか、ならびに／または、Ａ、ＢおよびＣのそれぞれの少なくとも１つを指す。
【００６９】
さらに、「含む」または「有する」などといった用語が明細書または特許請求の範囲において使用される程度について、そのような用語は、「備える」という用語が、請求項における転換語として使用される際に「備える」と解釈されるのと同様の態様で包括的になるように意図される。
【００７０】
単数形での要素への参照は、特に述べられていなければ「１つおよび１つのみ」を意味するようには意図されず、むしろ「１つ以上」を意味するように意図される。当業者に公知であるか、あるいは、後で公知になる、この開示の全体にわたって記載されるさまざまな構成の要素に対するすべての構造的および機能的な等価物は、明確に本願明細書において参照により援用され、対象技術によって包含されることが意図される。さらに、本願明細書において開示されるものはいずれも、そのような開示が上記の記載に明示的に示されているかどうかに関わらず、公に捧げられるようには意図されない。
【００７１】
この明細書は多くの詳細を含んでいるが、これらは、請求され得るものの範囲に対する限定として解釈されるべきでなく、主題の特定の実現例の説明として解釈されるべきである。別個の局面のコンテキストでこの明細書において記載されるある機能は、単一の局面においても組み合わせで実現され得る。反対に、単一の局面のコンテキストで記載されるさまざまな機能は、別々にまたは任意の好適なサブコンビネーションで複数の局面において実現され得る。さらに、ある組み合わせで機能し、かつ、最初はそのようなものとして特許請求される機能が上で説明されているかもしれないが、特許請求される組み合わせからの１つ以上の機能は、いくつかの場合に当該組み合わせから削除され得、特許請求される組み合わせは、サブコンビネーションまたはサブコンビネーションの変形例に向けられ得る。
【００７２】
同様に、動作が図面において特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されることを必要とするか、または、すべての示される動作が実行されることを必要とすると理解されるべきでない。ある状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上に記載された局面におけるさまざまなシステムコンポーネントの分離は、すべての局面においてそのような分離を必要とすると理解されるべきでなく、記載されたプログラムコンポーネントおよびシステムが一般に単一のソフトウェアプロダクトに統合され得るか、または、複数のソフトウェアプロダクトへパッケージにされ得るということが理解されるべきである。
【００７３】
この明細書の主題は特定の局面の点から説明されているが、他の局面が実現され得るとともに添付の請求の範囲内である。たとえば、請求の範囲に記載される動作は、異なる順序で実行されても、望ましい結果が達成され得る。例として、添付の図面に示されるプロセスは、所望の結果を達成するために、示されている特定の順序または連続する順序を必ずしも必要としない。ある実現例では、マルチタスクおよび並列処理が有利であり得る。他の変形例は添付の請求の範囲内である。
【００７４】
これらの実現例および他の実現例は添付の請求の範囲内である。
【図１】
0006496424.tif 000002
【図２】
0006496424.tif 000003
【図３】
0006496424.tif 000004
【図４】
0006496424.tif 000005
【図５】
0006496424.tif 000006
【図６】
0006496424.tif 000007
【図７】
0006496424.tif 000008