特許第6496424号(P6496424)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許6496424-ピアツーピア認証 図000002
  • 特許6496424-ピアツーピア認証 図000003
  • 特許6496424-ピアツーピア認証 図000004
  • 特許6496424-ピアツーピア認証 図000005
  • 特許6496424-ピアツーピア認証 図000006
  • 特許6496424-ピアツーピア認証 図000007
  • 特許6496424-ピアツーピア認証 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6496424
(24)【登録日】2019年3月15日
(45)【発行日】2019年4月3日
(54)【発明の名称】ピアツーピア認証
(51)【国際特許分類】
   H04L 9/32 20060101AFI20190325BHJP
   H04L 9/10 20060101ALI20190325BHJP
   G06F 21/57 20130101ALI20190325BHJP
   G06F 21/44 20130101ALI20190325BHJP
【FI】
   H04L9/00 675B
   H04L9/00 621A
   G06F21/57 350
   G06F21/44
【請求項の数】20
【全頁数】21
(21)【出願番号】特願2017-556870(P2017-556870)
(86)(22)【出願日】2016年6月22日
(65)【公表番号】特表2018-528629(P2018-528629A)
(43)【公表日】2018年9月27日
(86)【国際出願番号】US2016038762
(87)【国際公開番号】WO2017027104
(87)【国際公開日】20170216
【審査請求日】2018年1月25日
(31)【優先権主張番号】14/821,616
(32)【優先日】2015年8月7日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】クラーン,ダレン・デイビッド
(72)【発明者】
【氏名】ドリューリー,ウィリアム・アレキサンダー
(72)【発明者】
【氏名】グワラニ,スミット
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特表2014−503159(JP,A)
【文献】 特表2007−508765(JP,A)
【文献】 特開2000−183869(JP,A)
【文献】 国際公開第2015/058511(WO,A1)
【文献】 米国特許出願公開第2009/0041252(US,A1)
【文献】 丸山 宏 ほか,ソフトウェア完全性検証技術,情報処理,日本,社団法人情報処理学会,2004年 4月15日,第45巻 第4号,pp.354−359
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/44
G06F 21/57
H04L 9/10
(57)【特許請求の範囲】
【請求項1】
コンピュータで実現される方法であって、
第1のデバイスにおいて、第2のデバイスからディスカバリメッセージを受信することと、
前記ディスカバリメッセージに基づいて、前記第1のデバイスと前記第2のデバイスとの間に通信チャネルを確立することと、
前記第1のデバイスにおいて、前記第2のデバイスから識別情報を受信することとを含み、前記識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、または、前記識別キーによる前記PCR値のクォート(quote)のうちの1つ以上を含み、前記方法はさらに、
前記第1のデバイスにおいて、前記PCR値、前記クォートまたは前記保証キー証明書のうちの1つ以上を照合することと、
前記照合に基づいて、署名キーを含むメッセージを前記第1のデバイスから前記第2のデバイスに送信することとを含み、前記署名キーは、前記第1のデバイスによって生成されるランダム値を含んでおり、前記方法はさらに、
前記第1のデバイスにおいて保証公開キーにより、前記署名キーおよび前記識別キーに関連付けられる情報の組み合わせを暗号化することと、
前記第1のデバイスから前記第2のデバイスに、暗号化された前記組み合わせを提供することと、
前記提供後に前記第1のデバイスにおいて前記第2のデバイスから応答が受信されると、前記応答に含まれる署名を照合することと、
前記署名の照合に基づいて、前記通信チャネルまたは前記第2のデバイスの前記識別情報のうちの1つ以上を認証することとを含む、方法。
【請求項2】
前記TPM保証キー証明書は前記第2のデバイスの製造業者によって提供される、請求項1に記載の方法。
【請求項3】
前記保証キー証明書は、前記第1のデバイスに格納される有効な保証ルート機関のリストに対して照合される、請求項1または2に記載の方法。
【請求項4】
前記組み合わせは、前記第1のデバイスまたは前記第2のデバイスにおいて、TPMによって読み取り可能なデータ構造である、請求項1〜3のいずれか1項に記載の方法。
【請求項5】
前記第2のデバイスのTPMが前記保証公開キーおよび前記識別キーについての秘密キーを含んでいる場合、前記署名キーは、前記第2のデバイスによって、暗号化された前記組み合わせから回収される、請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記第2のデバイスが、暗号化された前記組み合わせから前記署名キーを回収することができる場合、前記応答は前記第2のデバイスから受信される、請求項5に記載の方法。
【請求項7】
前記第2のデバイスからの前記応答は、前記署名キーを使用する暗号化された前記組み合わせの署名を含み、前記署名キーは前記第2のデバイスによって回収される、請求項1〜6のいずれか1項に記載の方法。
【請求項8】
格納された命令を含むプログラムであって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
第1のデバイスにおいて、第2のデバイスからディスカバリメッセージを受信することと、
前記ディスカバリメッセージに基づいて、前記第1のデバイスと前記第2のデバイスとの間に通信チャネルを確立することと、
前記第1のデバイスにおいて、前記第2のデバイスから識別情報を受信することとを含む動作を実行させ、前記識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、または、前記識別キーによる前記PCR値のクォート(quote)のうちの1つ以上を含み、前記命令はさらに、前記プロセッサによって実行されると、前記プロセッサに、
前記第1のデバイスにおいて、前記PCR値、前記クォートまたは前記保証キー証明書のうちの1つ以上を照合することと、
前記照合に基づいて、確立された前記通信チャネルに関連付けられる接続情報を含むメッセージを前記第1のデバイスから前記第2のデバイスに送信することと、
前記第1のデバイスにおいて保証公開キーにより、前記接続情報および前記識別キーに関連付けられる情報の組み合わせを暗号化することと、
前記第1のデバイスから前記第2のデバイスに、暗号化された前記組み合わせを提供することと、
前記提供後に前記第1のデバイスにおいて前記第2のデバイスから応答が受信されると、前記応答に含まれる署名を照合することと、
前記照合に基づいて、前記通信チャネルまたは前記第2のデバイスの前記識別情報のうちの1つ以上を認証することとを含む動作を実行させる、プログラム
【請求項9】
前記TPM保証キー証明書は前記第2のデバイスの製造業者によって提供される、請求項8に記載のプログラム
【請求項10】
前記保証キー証明書は、前記第1のデバイスに格納される有効な保証ルート機関のリストに対して照合される、請求項8または9に記載のプログラム
【請求項11】
前記組み合わせは、前記第1のデバイスまたは前記第2のデバイスにおいて、TPMによって読み取り可能なデータ構造である、請求項8〜10のいずれか1項に記載のプログラム
【請求項12】
前記第2のデバイスのTPMが前記保証公開キーおよび前記識別キーについての秘密キーを含んでいる場合、署名キーは、前記第2のデバイスによって、暗号化された前記組み合わせから回収される、請求項8〜11のいずれか1項に記載のプログラム
【請求項13】
前記第2のデバイスが、暗号化された前記組み合わせから前記接続情報を回収することができる場合、前記応答は前記第2のデバイスから受信される、請求項12に記載のプログラム
【請求項14】
前記第2のデバイスからの前記応答は、前記接続情報を使用する暗号化された前記組み合わせの署名を含み、前記接続情報は前記第2のデバイスによって回収される、請求項8〜13のいずれか1項に記載のプログラム
【請求項15】
システムであって、
命令を含むメモリと、
プロセッサとを含み、前記プロセッサは、
第1のデバイスにおいて、第2のデバイスからディスカバリメッセージを受信することと、
前記ディスカバリメッセージに基づいて、前記第1のデバイスと前記第2のデバイスとの間に通信チャネルを確立することと、
前記第1のデバイスにおいて、前記第2のデバイスから識別情報を受信することとを行うよう前記命令を実行するように構成されており、前記識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、非対称の署名キーの公開部分、前記識別キーによる前記非対称の署名キーの公開部分の署名、または、前記識別キーによる前記PCR値のクォート(quote)のうちの1つ以上を含み、前記プロセッサはさらに、
前記第1のデバイスにおいて、前記非対称の署名キーの証明を照合することと、
前記照合に基づいて、署名キーを含むメッセージを前記第1のデバイスから前記第2のデバイスに送信することとを行うよう前記命令を実行するように構成されており、前記署名キーは、前記第1のデバイスによって生成されるランダム値を含んでおり、前記プロセッサはさらに、
前記第1のデバイスにおいて保証公開キーにより、前記署名キーおよび前記識別キーに関連付けられる情報の組み合わせを暗号化することと、
前記第1のデバイスから前記第2のデバイスに、暗号化された前記組み合わせを提供することと、
前記提供後に前記第1のデバイスにおいて前記第2のデバイスから応答が受信されると、前記応答に含まれる署名を照合することと、
前記署名の照合に基づいて、前記通信チャネルまたは前記第2のデバイスの前記識別情報のうちの1つ以上を認証することとを行うよう前記命令を実行するように構成されている、システム。
【請求項16】
前記第1のデバイスは、前記第2のデバイスへの将来の接続を認証するために、前記非対称の署名キーと、前記第2のデバイスについての他のメタデータとを保持する、請求項15に記載のシステム。
【請求項17】
前記保証キー証明書は、前記第1のデバイスに格納される有効な保証ルート機関のリストに対して照合される、請求項15または16に記載のシステム。
【請求項18】
前記組み合わせは、前記第1のデバイスまたは前記第2のデバイスにおいて、TPMによって読み取り可能なデータ構造である、請求項15〜17のいずれか1項に記載のシステム。
【請求項19】
前記第2のデバイスのTPMが前記保証公開キーおよび前記識別キーについての秘密キーを含んでいる場合、前記署名キーは、前記第2のデバイスによって、暗号化された前記組み合わせから回収される、請求項15〜18のいずれか1項に記載のシステム。
【請求項20】
前記第2のデバイスが、暗号化された前記組み合わせから接続情報を回収することができる場合、前記応答は前記第2のデバイスから受信される、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
背景
本開示は一般に、トラステッドコンピューティング(trusted computing)における認証に関する。
【発明の概要】
【課題を解決するための手段】
【0002】
概要
開示される主題は、ピアツーピア認証(peer to peer attestation)に関する。
【0003】
いくつかの革新的な実現例において、開示される主題は方法において具現化され得る。上記方法は、第1のデバイスにおいて、第2のデバイスからディスカバリメッセージを受信することと、ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間に通信チャネルを確立することと、第1のデバイスにおいて、第2のデバイスから識別情報を受信することとを含み、識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコンフィグレーションレジスタ(PCR: platform configuration register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み、上記方法はさらに、第1のデバイスにおいて、PCR値、クォートまたは保証キー証明書のうちの1つ以上を照合することと、照合に基づいて、署名キーを含むメッセージを第1のデバイスから第2のデバイスに送信することとを含み、署名キーは第1のデバイスによって生成されるランダム値を含んでおり、上記方法はさらに、第1のデバイスにおいて保証公開キーにより、署名キーおよび識別キーに関連付けられる情報の組み合わせを暗号化することと、暗号化された組み合わせを第1のデバイスから第2のデバイスに提供すること、提供後に第1のデバイスにおいて第2のデバイスから応答が受信されると、応答に含まれる署名を照合することと、署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証することとを含む。
【0004】
いくつかの革新的な実現例において、開示される主題は、マシン読取可能媒体において具現化され得る。上記マシン読取可能媒体は命令を含み、上記命令は、プロセッサによって実行されると、プロセッサに、第1のデバイスにおいて、第2のデバイスからディスカバリメッセージを受信することと、ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間に通信チャネルを確立することと、第1のデバイスにおいて、第2のデバイスから識別情報を受信することとを含む動作を実行させ、識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み、上記命令は、プロセッサによって実行されると、プロセッサに、第1のデバイスにおいて、PCR値、クォートまたは保証キー証明書のうちの1つ以上を照合することと、照合に基づいて、確立された通信チャネルに関連付けられる接続情報を含むメッセージを第1のデバイスから第2のデバイスに送信することと、第1のデバイスにおいて保証公開キーにより、接続情報および識別キーに関連付けられる情報の組み合わせを暗号化することと、第1のデバイスから第2のデバイスに、暗号化された組み合わせを提供することと、提供後に第1のデバイスにおいて第2のデバイスから応答が受信されると、応答に含まれる署名を照合することと、照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証することとを含む動作を実行させる。
【0005】
いくつかの革新的な実現例において、開示される主題はシステムにおいて具現化され得る。上記システムは、命令を含むメモリとプロセッサとを含み、上記プロセッサは、第1のデバイスにおいて、第2のデバイスからディスカバリメッセージを受信することと、ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間に通信チャネルを確立することと、第1のデバイスにおいて、第2のデバイスから識別情報を受信することとを行うよう命令を実行するように構成されており、識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR:platform control register)値、非対称の署名キーの公開部分、識別キーによる非対称の署名キーの公開部分の署名、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含んでおり、上記プロセッサはさらに、第1のデバイスにおいて、非対称の署名キーの証明を照合することと、照合に基づいて、署名キーを含むメッセージを第1のデバイスから第2のデバイスに送信することとを行うよう命令を実行するように構成されており、署名キーは第1のデバイスによって生成されるランダム値を含んでおり、上記プロセッサはさらに、第1のデバイスにおいて保証公開キーにより、署名キーおよび識別キーに関連付けられる情報の組み合わせを暗号化することと、第1のデバイスから第2のデバイスに、暗号化された組み合わせを提供することと、提供後に第1のデバイスにおいて第2のデバイスから応答が受信されると、応答に含まれる署名を照合することと、署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証することとを行うよう命令を実行するように構成されている。
【0006】
対象技術のさまざまな構成が例示として示され説明される以下の詳細な説明から、対象技術の他の構成は当業者には容易に明白になるであろうということが理解される。認識されるであろうように、対象技術の範囲から逸脱することがなければすべて、対象技術は他の構成および異なる構成が可能であり、そのいくつかの詳細はさまざまな他の点において修正可能である。したがって、図面および詳細な説明は、性質において限定的ではなく例示的であると見なされるべきである。
【0007】
対象技術の新規な特徴は、添付の請求の範囲において記載されている。しかしながら、説明目的のために、対象技術のいくつかの構成は、以下に要約される添付の図面において記載されている。
【図面の簡単な説明】
【0008】
図1】対象技術のいくつかの実現例を実施するのに好適な例示的なデバイスおよびネットワーク環境の図である。
図2】いくつかの実現例に従ったピアツーピア認証システムにおける例示的な信頼グラフを示す図である。
図3】いくつかの実現例に従った例示的なフロー図を示す図である。
図4】いくつかの実現例に従った別の例示的なフロー図を示す図である。
図5図1の例示的なデバイスを使用して対象技術の実現例を実施するための例示的なプロセスの図である。
図6図1の例示的なデバイスを使用して対象技術の実現例を実施するための別の例示的なプロセスを示す図である。
図7図1の例示的なデバイスを使用して対象技術の実現例を実施するためのさらに別の例示的なプロセスを示す図である。
【発明を実施するための形態】
【0009】
詳細な説明
以下に記載される詳細な説明は、対象技術のさまざまな構成の記載として意図されており、対象技術が実行され得る唯一の構成を表わすように意図されない。添付の図面は、本願明細書において援用され、詳細な説明の一部を構成する。対象技術は本願明細書において記載される特定の詳細に限定されず、これらの特定の詳細なしで実施され得る。
【0010】
トラステッドプラットホーム(trusted platform)は、セキュリティモジュールの形態にあるトラステッドコンポーネントを有するコンピューティングプラットフォームであり得、トラステッドプラットホームは、ソフトウェアプロセスのための信頼の基礎を作り出すためにトラステッドコンポーネントを使用する。そのようなセキュリティモジュールの例は、トラステッドプラットホームモジュール(Trusted Platform Module)、すなわち、TPMである。TPMは、コンピューティングデバイス上で耐不正改変(tamper resistant)集積回路(IC)として典型的に実現されている。TPMは、コンピューティングデバイスが自身をトラステッドプラットホームとして表わすことを可能にするファームウェア(たとえばベーシックインプット/アウトプットシステム(BIOS: Basic Input/Output System)ファームウェア)に関連付けられ得る。
【0011】
セキュリティモジュール(たとえばTPM)を含むコンピューティングデバイスの正当性の保証は、典型的に、製造時においてセキュリティモジュールに保証機関(endorsement authority)が保証キー(たとえば非対称キーペアおよび対応する公開キーのための証明書といったソフトウェア証明)を埋め込むことを伴う。いくつかの場合において、保証キーは、コンピューティングデバイスまたはセキュリティモジュールの製造業者に関する粗い情報を含み得る。他の場合において、保証キーは、製品のタイプ(たとえばラップトップまたは携帯電話)に関する情報を含み得る。特定の製造業者によって作製されたハードウェアデバイスは、特定の製造業者の正当な製品であることをサーバに立証(または認証)することが可能であり得る。ハードウェアデバイスはさらに、特定のモードで動作し、当該ハードウェアデバイスがどの種類の製品(たとえばラップトップ、音声スピーカ、ネットワークルータなど)であるかと、ハードウェアデバイスが動作している特定のモードとをサーバに通知することが可能であり得る。そのような認証は、インターネット接続と、製造業者によって提供される適切なソフトウェアサービスへのアクセスとを必要とし得る。しかしながら、このアプローチは、特にインターネット接続が利用可能でない場合といったいくつかのユースケースについて十分ではない場合がある。たとえば、ハードウェアデバイスは、Bluetooth(登録商標)を介してWiFiクレデンシャルを共有することを望むが、ある特性を満たす正当なデバイスまたは認証されたデバイスに対してのみそのようなクレデンシャルを共有することを望み得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働することを望み得る。
【0012】
開示される実施形態は、2つ以上のデバイス(たとえば第1のデバイスおよび第2のデバイス)間のピアツーピア認証を可能にする。たとえば、第1のデバイスにおいて、ディスカバリメッセージが第2のデバイスから受信される。ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間に通信チャネルが確立され得る。第1のデバイスにおいて、識別情報が第2のデバイスから受信され得る。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0013】
その後、第1のデバイスは、PCR値、クォート、または、保証キー証明書のうちの1つ以上を照合し得る。当該照合に基づいて、第1のデバイスは、署名キーを含むメッセージを第2のデバイスに送信し得る。署名キーは、第1のデバイスによって生成されるランダム値を含んでいる。第1のデバイスはさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、第1のデバイスは、暗号化された組み合わせを第2のデバイスに提供し得る。
【0014】
暗号化された組み合わせが第2のデバイスに提供された後、第1のデバイスにおいて応答が第2のデバイスから受信されると、第1のデバイスは、応答に含まれる署名を照合し得る。署名が照合されると、第1のデバイスは、当該署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証する。
【0015】
これにより、第1のデバイスおよび第2のデバイスは、インターネット(あるいは同様の)接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。たとえば、ハードウェアデバイスは、ある特性を満たす正当なデバイスまたは認証されたデバイスとBluetoothを介してWiFiクレデンシャルを共有可能であり得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働可能であり得る。開示される実現例は、2つのデバイスに限定されず、任意数のデバイスおよび任意のタイプの有線または無線のネットワークでも機能し得る。
【0016】
対象技術のいくつかの局面は、コンピューティングデバイスハードウェアに関する情報を格納することを含んでいる。ユーザは、そのような情報の格納を防止するオプションを有する。ユーザにはさらに、プログラムまたは機能がそのような情報を収集または共有するかどうかをコントロールする機会が提供され得る。したがって、ユーザは、情報がどのようにコンピューティングデバイスハードウェアに関して収集されてサーバによって使用されるかについてコントロールを有し得る。
【0017】
図1は、対象技術のいくつかの実現例に従ったセキュリティモジュール保証のための例示的なアーキテクチャを示す図である。セキュリティモジュール180は、プロセッサ112、メモリ120、ストレージ126、および、バス124を含んでいる。セキュリティモジュール180はさらに、入出力モジュール、入力デバイス、出力デバイス、および、通信モジュールに関連付けられ得る。メモリ120は、保証エンジン132、レジスタ134、キージェネレータ136、署名エンジン138、および、暗号エンジン142を含んでいる。
【0018】
セキュリティモジュール180は、コンピューティングデバイス190に存在し得る。コンピューティングデバイス190は、1つ以上のプロセッサ、メモリおよびストレージを含み得る。コンピューティングデバイス190はさらに、出力デバイス(たとえばタッチスクリーンディスプレイ、非タッチスクリーンディスプレイ)と、ユーザ入力を受信する入力デバイス(たとえばキーボード、タッチスクリーンまたはマウス)とを含み得る。いくつかの実現例では、コンピューティングデバイス190は、コンピューティングデバイス190上で実行されるブラウザまたは特殊目的アプリケーションを介するユーザインタラクションを促進するための1つ以上のモジュールを含み得る。コンピューティングデバイス190は、単一のプロセッサを有する単一のマシン、マルチプロセッサマシン、または、複数のプロセッサを有する複数のマシンを含むサーバファームとして実現され得る。コンピューティングデバイス190上の通信モジュールによって、セキュリティモジュール180(またはコンピューティングデバイス190)は、デバイス情報データベース194、保証サーバ196および証明書機関サーバ110に対してネットワーク150を介してデータを送受信することが可能である。コンピューティングデバイス192はさらに、コンピューティングデバイス190に含まれるコンポーネントのうちの1つ以上を含み得るが、これらに限定されないということが認識されるべきである。たとえば、コンピューティングデバイス192はさらに、セキュリティモジュール、プロセッサ、メモリ、ストレージおよびバスを含み得る。セキュリティモジュールはさらに、入出力モジュール、入力デバイス、出力デバイス、および、通信モジュールに関連付けられ得る。コンピューティングデバイス192のメモリはさらに、保証エンジン、レジスタ、キージェネレータ、署名エンジン、および、暗号エンジンを含み得る。
【0019】
いくつかの実現例では、セキュリティモジュール180は、デバイス情報データベース194に関連付けられ得る。デバイス情報データベース194は、デバイスを識別するデータおよびデバイスの特性を含み得る。識別は、数字、英数字ストリング、ハッシュ値、または、識別の任意の他の形態であり得る。デバイスは、ラップトップ、モバイルデバイス、タブレットコンピュータ、ホームオートメーションデバイスおよびセンサ、インターネット対応ハードウェアデバイスなどを含み得るが、これらに限定されない。特性は、異なる製造業者によって製造され得るデバイスのクラス、モデルまたはバッチを含み得るが、これらに限定されない。いくつかの実現例では、デバイスおよびそれぞれの特性は、それぞれの特殊化保証クレデンシャル(specialized endorsement credential)と、拡張インテグリティ測定(extended integrity measurement)とに関連付けられ得る。いくつかの実現例では、この情報は、デバイス情報データベース194においてデータベーステーブルに格納され得、特殊化保証クレデンシャルによってインデキシングされ得る。
【0020】
いくつかの実現例では、デバイス情報データベース194は、無効である特殊化保証クレデンシャルおよびそれぞれの拡張インテグリティ測定デバイスを識別し得る(たとえばフラグを立て得る)。そのような無効のクレデンシャルを提供するセキュリティモジュール(たとえばセキュリティモジュール180)には、当該セキュリティモジュールの真正性を認証または確認し、これにより、セキュリティモジュールが存在するコンピューティングデバイスの真正性を認証または確認する認証識別クレデンシャルが提供されるべきではない。同様に、いくつかの実現例において、デバイス情報データベース194は、有効である特殊化保証クレデンシャルおよびそれぞれの拡張インテグリティ測定を識別し得る。
【0021】
いくつかの実現例では、証明書機関サーバ110、デバイス情報データベース194、保証サーバ196、クライアントコンピューティングデバイス190(または192)、および、セキュリティモジュール180は、ネットワーク150を介して互いに通信し得る。ネットワーク150は、インターネット、イントラネット、ローカルエリアネットワーク、ワイドエリアネットワーク、有線ネットワーク、無線ネットワーク、または、仮想プライベートネットワーク(VPN: virtual private network)を含み得る。1つの証明書機関サーバ110、保証サーバ196、コンピューティングデバイス190、デバイス情報データベース194およびセキュリティモジュール180のみが示されているが、対象技術は、任意数の証明書機関サーバ110、クライアントコンピューティングデバイス190、デバイス情報データベース194およびセキュリティモジュール180と共に実現され得る。いくつかの非限定的な実現例では、単一のコンピューティングデバイスが、図1に示される証明書機関サーバ110およびデバイス情報データベース194、他のコンポーネントの機能を実現し得る。
【0022】
クライアントコンピューティングデバイス190および192は、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、携帯情報端末(PDA)、タブレットコンピュータ、ネットブック、1つ以上のプロセッサが埋め込まれるかもしくは結合されるテレビジョン、物理マシン、または、仮想マシンであり得る。クライアントコンピューティングデバイス190および192は各々、キーボード、マウス、ディスプレイまたはタッチスクリーンのうちの1つ以上を含み得る。クライアントコンピューティングデバイス190および192は各々、ウェブコンテンツを表示するように構成されるウェブアプリケーションを含み得る。代替的には、クライアントコンピューティングデバイス190および192は、ウェブコンテンツにアクセスするための特殊目的アプリケーション(たとえば携帯電話またはタブレットコンピュータアプリケーション)を含み得る。セキュリティモジュール180は、コンピューティングデバイス190および192の製造時に、コンピューティングデバイス190および192に埋め込まれ得る。
【0023】
いくつかの実現例では、ピアツーピア認証は、インターネット接続またはクラウドコンピューティングサービスへのアクセスがない場合であっても、一方のデバイスが自身に関するプロパティを他方のデバイスに証明することを可能にし得る。コンピューティングデバイスは、他のデバイスからの請求(たとえば情報またはデータアクセス要求)を信頼することができるかどうか知る方法を必要とし得る。この信頼性は、それ自身のハードウェアルートオブトラスト(HRoT:hardware root of trust)と、ピアデバイスのHRoTと、ピアデバイスTPMの製造業者とに根付いている。図2は、開示される実現例に従った、ピアツーピア認証システムにおける信頼性のフローを示す例示的な信頼性グラフを示す。例として、システム内における任意の単一のルートオブトラストの犠牲(compromise)は、コンピューティングデバイス(たとえばコンピューティングデバイス190または192)のうちのいずれかによる照合された請求のいずれもが如何なる値も保持していないかもしれないことを暗示している。さらに非限定的な例として、いくつかのコンピューティングデバイスの場合、物理的なアクセスによりデバイスHRoTを不正に変更することは可能であり得るが、遠隔で不正な変更を加えることは可能ではない。図2を参照して、TPM製造業者保証202は、チップがTPM規準に従って製造されたものであり、チップサプライチェーンが対象とされていることを証明する。
【0024】
各TPM製造業者は、自身が製造するモジュールを保証する。HRoT(自機)204の読取専用不揮発性メモリは、デバイスがブートすると実行される第1の命令を保持する。HRoT(ピア)206は、ピアデバイス上の同一のメモリであり得る。照合されたブート(自機)208は、照合されたブートプロセスであり得、全システムが第1の実行コードに基づいて照合される。照合されたブートにおける信頼性はHRoTにおける信頼性に基づく。照合されたブート(ピア)210は、ピアデバイス上の同一のプロセスであり得る。
【0025】
保証証明書リスト212は、たとえば各TPM製品ラインについて1つの保証証明書機関のルート証明書のリストであり得る。PCR値214は、ブート中に測定されるようなピアTPMのプラットホームコンフィグレーションレジスタ(PCR: platform configuration register)値であり得る。各PCR値は、デバイスに関する情報(たとえば動作モード、デバイスタイプなど)を保持し得る。識別キー216は、ピアTPMによって保護されると証明され得るキーであり得る。PCRクォート218は、識別キー216によるPCR値の署名であり得る。
【0026】
PCRクォートが照合されると、照合された請求220が格納され、その後、ピアデバイスによって与えられた請求(PCR値)が照合され、(ルートオブトラストを仮定して)信頼され得る。証明されたキー222は、同じピアTPMによって保護されるような、ピア識別キーによって保証される随意のエクステンションまたはキーであり得る。
【0027】
上で論じたように、セキュリティモジュール180のメモリ120は、保証エンジン132、レジスタ134、キージェネレータ136、署名エンジン138、および、暗号エンジン142を含み得る。
【0028】
開示された実施形態は、2つ以上のデバイス(たとえばコンピューティングデバイス190およびコンピューティングデバイス192)間でのセキュアなチャネル認証およびピアツーピア認証を可能にし得る。たとえば、コンピューティングデバイス190では、ディスカバリメッセージがコンピューティングデバイス192から受信される。例として、図3を参照して、このメッセージM0はディスカバリメッセージであり得る。ディスカバリメッセージに基づいて、通信チャネルは、コンピューティングデバイス190および192の間で確立され得る。コンピューティングデバイス190において、識別(または他のデバイスの請求)情報は、コンピューティングデバイス192から受信され得る。例として、図3を参照して、メッセージM1は識別および請求メッセージであり得る。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0029】
その後、コンピューティングデバイス190は、PCR値、クォート、または、保証キー証明書のうちの1つ以上を照合し得る。当該照合に基づいて、コンピューティングデバイス190は、署名キーを含むメッセージをコンピューティングデバイス192に送信し得る。署名キーは、コンピューティングデバイス192によって生成されるランダム値を含んでいる。コンピューティングデバイス190はさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、コンピューティングデバイス190は、暗号化された組み合わせをコンピューティングデバイス192に提供し得る。図3を参照して、この暗号化された組み合わせは、「チャレンジ」メッセージM2であり得るメッセージに含まれ得る。
【0030】
暗号化された組み合わせがコンピューティングデバイス192に提供された後、応答(たとえば図3のチャレンジ応答M3)がコンピューティングデバイス190、第1のデバイスにおいてコンピューティングデバイス192から受信されると、コンピューティングデバイス190は、応答に含まれる署名を照合し得る。署名が照合されると、コンピューティングデバイス190は、当該署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証する。
【0031】
これにより、コンピューティングデバイス190および192は、インターネット(あるいは同様の)接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。たとえば、コンピューティングデバイス190は、Bluetoothを介してコンピューティングデバイス192とWiFiクレデンシャルを共有可能であり得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働可能であり得る。開示される実現例は、2つのデバイスに限定されず、任意数のデバイスおよび任意のタイプの有線または無線のネットワークでも機能し得る。
【0032】
いくつかの実現例において、TPM保証キー証明書は、コンピューティングデバイス192の製造業者によって提供される。いくつかの実現例では、保証キー証明書は、コンピューティングデバイス190によって、コンピューティングデバイス190において格納される有効な保証ルート期間のリストに対して照合され得る。組み合わせは、クライアントコンピューティングデバイス190または192においてTPMによって読み取り可能なデータ構造であり得る。いくつかの実現例では、コンピューティングデバイス192のTPMが、保証公開キーおよび識別キーについての秘密キーを含んでいる場合、署名キーは、暗号化された組み合わせからコンピューティングデバイス192によって回収され得る。いくつかの実現例では、コンピューティングデバイス192が暗号化された組み合わせから署名キーを回収することができる場合、コンピューティングデバイス192から応答が受信される。いくつかの実現例において、コンピューティングデバイス192からの応答は、署名キーを使用する暗号化された組み合わせの署名を含む。
【0033】
いくつかの実現例では、WiFi(または他の無線または有線)接続データが、ピアツーピア認証またはコンピューティングデバイス190と192との間の認証に使用され得る。いくつかの実現例において、コンピューティングデバイス190では、ディスカバリメッセージ(たとえば図4のメッセージM0)がコンピューティングデバイス192から受信される。ディスカバリメッセージに基づいて、コンピューティングデバイス190と192との間で通信チャネルが確立され得る。コンピューティングデバイス190では、識別情報(たとえば図4のメッセージM1)がコンピューティングデバイス192から受信され得る。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR:platform control register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0034】
その後、コンピューティングデバイス190は、PCR値、クォートまたは保証キー証明書のうちの1つ以上を照合し得る。当該照合に基づいて、コンピューティングデバイス190は、確立された通信チャネルに関連付けられる接続情報(たとえばWiFi接続情報)を含むメッセージをコンピューティングデバイス192に送信し得る。コンピューティングデバイス190はさらに、接続情報と識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、コンピューティングデバイス190は、暗号化された組み合わせをコンピューティングデバイス192に提供し得る。図4を参照して、この暗号化された組み合わせは、「チャレンジ」メッセージM2であり得るメッセージに含まれ得る。
【0035】
暗号化された組み合わせがコンピューティングデバイス192に提供された後、コンピューティングデバイス190、第1のデバイスにおいて応答がコンピューティングデバイス192から受信されると、コンピューティングデバイス190は、応答に含まれる署名を照合し得る。署名が照合されると、コンピューティングデバイス190は、当該署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証する。
【0036】
これにより、コンピューティングデバイス190および192は、インターネット(あるいは同様の)接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。
【0037】
たとえば、コンピューティングデバイス190は、Bluetoothを介してコンピューティングデバイス192とWiFiクレデンシャルを共有可能であり得る。別の例において、特定タイプの複数のデバイスは、近くに存在する場合、互いに協働可能であり得る。開示される実現例は、2つのデバイスに限定されず、任意数のデバイスおよび任意のタイプの有線または無線のネットワークでも機能し得る。
【0038】
いくつかの実現例では、開示される局面は、コンピューティングデバイス190と192との間でペアリングするデバイスに使用され得る。いくつかの実現例において、コンピューティングデバイス190では、ディスカバリメッセージがコンピューティングデバイス192から受信される。ディスカバリメッセージに基づいて、コンピューティングデバイス190と192との間で通信チャネルが確立され得る。コンピューティングデバイス190において、識別情報はコンピューティングデバイス192から受信され得る。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、非対称の署名キーの公開部分、識別キーによる非対称の署名キーの公開部分の署名、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0039】
コンピューティングデバイス190は、非対称の署名キーの証明を照合し得る。当該照合に基づいて、または、証明が照合されれば、コンピューティングデバイス190は、確立された通信チャネルに関連付けられる接続情報(たとえばWiFi接続情報)を含むメッセージをコンピューティングデバイス192に送信し得る。コンピューティングデバイス190はさらに、接続情報と識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る。その後、コンピューティングデバイス190は、暗号化された組み合わせをコンピューティングデバイス192に提供し得る。
【0040】
暗号化された組み合わせがコンピューティングデバイス192に提供された後、コンピューティングデバイス190、第1のデバイスにおいて応答がコンピューティングデバイス192から受信されると、コンピューティングデバイス190は、応答に含まれる署名を照合し得る。署名が照合されると、コンピューティングデバイス190は、当該署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証する。
【0041】
これにより、コンピューティングデバイス190および192は、インターネット(あるいは同様の)接続が利用可能でない場合でもピアツーピアアプローチを介して、各々に対して自身の識別性を認証することが可能であり得る。
【0042】
いくつかの実現例において、ブートプロセス中に、セキュリティモジュール180は、コンピューティングデバイス190のBIOS、ブートローダおよびオペレーティングシステムカーネルを含むソフトウェアおよびファームウェアコンポーネントのうちの1つ以上を、それらがコンピューティングデバイス190のメモリにロードされる前に、測定し得る(たとえば、ハッシュを生成し得る)。ソフトウェアおよびファームウェアコンポーネントの実行の前にこれらのインテグリティ測定を行うとともにそれらをセキュリティモジュール180上に格納することにより、これらの測定は、後の修正の試みから隔離されて安全にされ得る。インテグリティ測定は、セキュリティモジュール180によってレジスタ134に格納され得る。
【0043】
いくつかの実現例では、コンピューティングデバイス190を特徴付ける情報は、ハードウェア識別子を含み得る。ハードウェア識別子は、コンピューティングデバイスのバッチ、モデルまたはクラスのうちの1つ以上を識別し得る。当該ハードウェア識別は、数字、英数字ストリング、ハッシュ値、または、識別の任意の他の形態であり得る。ハードウェア識別子は、コンピューティングデバイス190の製造時にセキュアなストレージ(たとえばストレージ126)に格納され得る。セキュアなストレージはたとえば、不揮発性ランダムアクセスメモリ(NVRAM: non-volatile random access memory)インデックスであり得る。いくつかの実現例において、セキュアなストレージへのアクセスは、暗号キー、または、コンピューティングデバイス190の現在の動作状態のうちの1つ以上に基づく。
【0044】
いくつかの実現例では、署名エンジン138は、デジタル署名によりインテグリティ測定にデジタルで署名し得る。いくつかの実現例では、デジタル署名は、暗号エンジン142によって生成されるハッシュまたは暗号値であり得る。
【0045】
いくつかの実現例では、保証エンジン132は、認証識別クレデンシャルについての要求において、証明書機関サーバ110に特殊化保証クレデンシャル148を提供し得、証明書機関サーバ110から認証識別クレデンシャル144を受信し得る。認証識別クレデンシャル144の受信は、セキュリティモジュール180は信頼性があるとセキュリティモジュール180およびコンピューティングデバイス190に示し得る。セキュリティモジュールは、認証されると、たとえば、パスワード、デジタルクレデンシャル、センシティブなデータ、および、ソフトウェアプロセスに関連付けられる任意の他のデータを格納するために、コンピューティングデバイス上でソフトウェアプロセスによって信頼され使用され得る。
【0046】
図5は、図1の例示的なアーキテクチャを使用して、対象技術の実現例を実施するための例示的なプロセス500である。図5は、図1の要素を参照して記載されるが、図5のプロセスは、そのようなものに限定されず、他のシステムにおいても適用され得る。
【0047】
第1のデバイスにおいてディスカバリメッセージが第2のデバイスから受信されると、プロセス500はステージ502から開始する。ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間で通信チャネルが確立され得る(ステージ504)。第1のデバイスにおいて、確立された通信チャネルを介して第2のデバイスから識別情報が受信され得る(ステージ506)。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0048】
その後、第1のデバイスは、PCR値、クォート、または、保証キー証明書のうちの1つ以上を照合し得る(ステージ508)。当該照合に基づいて、第1のデバイスは、署名キーを含むメッセージを第2のデバイスに送信し得、署名キーは、第1のデバイスによって生成されるランダム値を含んでいる(ステージ510)。第1のデバイスはさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る(ステージ512)。その後、第1のデバイスは、暗号化された組み合わせを第2のデバイスに提供し得る(ステージ514)。
【0049】
暗号化された組み合わせが第2のデバイスに提供された後、第1のデバイスにおいて応答が第2のデバイスから受信されると、第1のデバイスは、応答に含まれる署名を照合し得る(ステージ516)。署名が照合されると、第1のデバイスは、当該署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証する(ステージ518)。
【0050】
図6は、図1の例示的なアーキテクチャを使用して、対象技術の実現例を実施するための例示的なプロセス600である。図6は、図1の要素を参照して記載されるが、図6のプロセスは、そのようなものに限定されず、他のシステムにおいても適用され得る。
【0051】
第1のデバイスにおいてディスカバリメッセージが第2のデバイスから受信されると、プロセス600はステージ602から開始する。ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間で通信チャネルが確立され得る(ステージ604)。第1のデバイスにおいて、確立された通信チャネルを介して第2のデバイスから識別情報が受信され得る(ステージ606)。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR:platform control register)値、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0052】
その後、第1のデバイスは、PCR値、クォート、または、保証キー証明書のうちの1つ以上を照合し得る(ステージ608)。照合に基づいて、第1のデバイスは、確立された通信チャネルに関連付けられる接続情報を含むメッセージを第2のデバイスに送信し得る(ステージ610)。第1のデバイスはさらに、接続情報と識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る(ステージ612)。その後、第1のデバイスは、暗号化された組み合わせを第2のデバイスに提供し得る(ステージ614)。
【0053】
第2のデバイスがパケットを復号すると、通信チャネル(たとえばWiFi)共有が完了する(ステージ616)。
【0054】
図7は、図1の例示的なデバイスを使用して、対象技術の実現例を実施するための例示的なプロセス700である。図7は、図1の要素を参照して記載されるが、図7のプロセスは、そのようなものに限定されず、他のシステムにおいても適用され得る。
【0055】
第1のデバイスにおいてディスカバリメッセージが第2のデバイスから受信されると、プロセス700はステージ702から開始する。ディスカバリメッセージに基づいて、第1のデバイスと第2のデバイスとの間で通信チャネルが確立され得る(ステージ704)。第1のデバイスにおいて、確立された通信チャネルを介して第2のデバイスから識別情報が受信され得る(ステージ706)。識別情報は、トラステッドプラットホームモジュール(TPM: trusted platform module)保証キー証明書、識別キーの公開部分、1つ以上のプラットホームコントロールレジスタ(PCR: platform control register)値、非対称の署名キーの公開部分、識別キーによる非対称の署名キーの公開部分の署名、または、識別キーによるPCR値のクォート(quote)のうちの1つ以上を含み得るがこれらに限定されない。
【0056】
その後、第1のデバイスは、非対称の署名キーの証明を照合し得る(ステージ708)。照合に基づいて、第1のデバイスは、確立された通信チャネルに関連付けられる接続情報を随意に含むメッセージを第2のデバイスに送信し得る(ステージ710)。第1のデバイスはさらに、署名キーと識別情報に関連付けられる情報との組み合わせを保証公開キーにより暗号化し得る(ステージ712)。その後、第1のデバイスは、暗号化された組み合わせを第2のデバイスに提供し得る(ステージ714)。
【0057】
暗号化された組み合わせが第2のデバイスに提供された後、第1のデバイスにおいて応答が第2のデバイスから受信されると、第1のデバイスは、応答に含まれる署名を照合し得る(ステージ716)。署名が照合されると、第1のデバイスは、当該署名の照合に基づいて、通信チャネルまたは第2のデバイスの識別情報のうちの1つ以上を認証する(ステージ718)。
【0058】
図1を再び参照して、ある局面において、セキュリティモジュール180は、専用サーバ、または、別のエンティティに統合されるか、もしくは、複数のエンティティにわたって分散するコンピューティングデバイスのいずれかにおいて、ハードウェア、または、ソフトウェアおよびハードウェアの組み合わせを使用して実現され得る。
【0059】
セキュリティモジュール180は、情報を通信するためのバス124または他の通信メカニズムと、バス124に結合される、データを処理するためのプロセッサ112とを含む。プロセッサ112は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP: Digital Signal Processor)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、フィールドプログラマブルゲートアレイ(FPGA: Field Programmable Gate Array)、プログラマブルロジックデバイス(PLD: Programmable Logic Device)、コントローラ、ステートマシン、ゲートロジック(gated logic)、離散的なハードウェアコンポーネント、または、計算または他の情報の取扱いを実行し得る任意の他の好適なエンティティであり得る。
【0060】
セキュリティモジュール180は、ハードウェアに加えて、たとえばプロセッサファームウェアを構成するコードといったような対象のコンピュータプログラムについて実行環境を作り出すコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、メモリ120に格納されるそれらの1つ以上の組み合わせを含み得る。メモリ120は、情報およびプロセッサ112によって実行される命令を格納するためにバス124に結合されるランダムアクセスメモリ(RAM)、フラッシュメモリ、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)、イレーザブルPROM(EPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、DVD、または、任意の他の好適なストレージデバイスを含み得る。プロセッサ112およびメモリ120は、特殊目的論理回路によって補助され得るか、または、特殊目的論理回路に統合され得る。
【0061】
命令は、メモリ120に格納され、1つ以上のコンピュータプログラムプロダクトで実現され得る。すなわち、セキュリティモジュール180による実行のために、または、セキュリティモジュール180の動作を制御するためにコンピュータ読取可能媒体上でエンコードされたコンピュータプログラム命令の1つ以上のモジュールで実現され得る。当業者に周知の任意の方法によると、当該命令は、データ指向言語(たとえばSQL、dBase)、システム言語(たとえばC、Objective−C、C++、アセンブリ)、アーキテクチャ言語(たとえばJava(登録商標)、.NET)、および、アプリケーション言語(たとえばPHP、Ruby、Perl、Python)といったコンピュータ言語を含むが、これらに限定されない。命令はさらに、配列言語、アスペクト指向言語、アセンブリ言語、オーサリング言語、コマンドラインインターフェイス言語、コンパイラ型言語、並行言語、カーリーブラケット言語(curly-bracket language)、データフロー言語、データ構造言語、宣言言語、難解言語(esoteric language)、拡張言語、第四世代言語、関数型言語、対話型言語、インタープリタ型言語、反復型言語、リストベース言語、小言語、論理ベース言語、機械語、マクロ言語、メタプログラミング言語、マルチパラダイム言語、数値解析、非英語ベースの言語、オブジェクト指向クラスベース言語、オブジェクト指向プロトタイプベース言語、オフサイドルール言語、手続き型言語、リフレクション言語、ルールベース言語、スクリプト言語、スタックベース言語、同期言語、シンタックス処理言語、ビジュアル言語、ヴィルト言語(wirth language)、埋込可能言語、および、xmlベース言語といったコンピュータ言語で実現され得る。メモリ120はさらに、プロセッサ112によって実行される命令の実行の間、一時変数または他の中間情報を格納するために使用され得る。
【0062】
本願明細書において議論されたコンピュータプログラムは必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、対象のプログラムに専用である単一のファイルにおいて、または、複数の協働するファイル(たとえば1つ以上のモジュール、サブプログラムまたはコードの部分を格納するファイル)において、他のプログラムまたはデータ(たとえば、マークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの一部に格納され得る。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開され得るか、または、1つのサイトに位置するかもしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。この明細書に記載されるプロセスおよび論理フローは、入力データに対して動作を行うとともに出力を生成することにより機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行され得る。
【0063】
セキュリティモジュール180はさらに、情報および命令を格納するためにバス124に結合される磁気ディスクまたは光ディスク、ソリッドステートメモリ、不揮発性メモリなどといったデータストレージデバイス126を含んでいる。クライアント190は、入出力モジュールを介してさまざまなデバイスに結合され得る。入出力モジュールは任意の入出力モジュールであり得る。例示的な入出力モジュールは、USBポートのようなデータポートを含んでいる。入出力モジュールは通信モジュールに接続するように構成され得る。例示的な通信モジュールは、イーサネット(登録商標)カードのようなネットワークインターフェイスカードとモデムとを含む。ある局面では、入出力モジュールは、入力デバイスおよび/または出力デバイスのような複数のデバイスに接続するように構成される。例示的な入力デバイスは、キーボードと、たとえばマウスまたはトラックボールのようなポインティングデバイスとを含んでおり、これらにより、ユーザはクライアントコンピューティングデバイス190およびセキュリティモジュール180に入力を提供することができる。触覚入力デバイス、視覚入力デバイス、音声入力デバイス、または、ブレインコンピュータインターフェイスデバイスといった他の種類の入力デバイスも同様に、ユーザとのインタラクションを提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった感覚フィードバックの任意の形態であり得、また、ユーザからの入力は、音響入力、スピーチ入力、触覚入力、または脳波入力を含む任意の形態で受信され得る。例示的な出力デバイスは、LED(発光ダイオード)、CRT(陰極線管)またはLCD(液晶ディスプレイ)スクリーンといった、ユーザに情報を表示するためのディスプレイデバイスを含んでいる。
【0064】
本開示の1つの局面に従うと、セキュリティモジュール180は、メモリ120に含まれる1つ以上の命令の1つ以上のシーケンスをプロセッサ112が実行することに応答して、クライアントコンピューティングデバイス190において実現され得る。そのような命令は、ストレージデバイス126のような別のマシン読取可能媒体からメモリ120に読み込まれ得る。メインメモリ120に含まれる命令のシーケンスの実行によって、プロセッサ112が、本願明細書において記載されるプロセスブロックを実行する。メモリ120に含まれる命令のシーケンスを実行するために、マルチプロセッシング構成における1つ以上のプロセッサがさらに使用され得る。代替的な局面において、本開示のさまざまな局面を実現するために、ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせてハードワイヤード回路が使用されてもよい。したがって、本開示の局面はハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されない。
【0065】
本明細書に記載の主題のさまざまな局面は、バックエンドコンポーネントをたとえばデータサーバとして含むコンピューティングシステムにおいて実現され得るか、ミドルウェアコンポーネントをたとえばアプリケーションサーバとして含むコンピューティングシステムにおいて実現され得るか、たとえばユーザが本明細書に記載の主題の実現例とインタラクションする際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといったようなフロントエンドコンポーネントを含むコンピューティングシステムにおいて実現され得るか、または、1つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、たとえば通信ネットワークといった、任意の形態または媒体のデジタルデータ通信によって相互接続され得る。通信ネットワーク(たとえばネットワーク170)はたとえば、パーソナルエリアネットワーク(PAN: personal area network)、ローカルエリアネットワーク(LAN:local area network)、キャンパスエリアネットワーク(CAN: campus area network)、メトロポリタンエリアネットワーク(MAN: metropolitan area network)、ワイドエリアネットワーク(WAN: wide area network)、ブロードバンドネットワーク(BBN: broadband network)、およびインターネットなどのうちのいずれか1つ以上を含み得る。さらに、通信ネットワークは、たとえば、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、または、ツリーもしくは階層ネットワークなどを含むネットワークトポロジーのうちのいずれか1つ以上を含み得るがこれらに限定されない。通信モジュールはたとえば、モデムまたはイーサネットカードであり得る。
【0066】
クライアントコンピューティングデバイス190は、たとえばデスクトップコンピュータ、ラップトップコンピュータまたはタブレットコンピュータであり得るがこれらに限定されない。クライアントコンピューティングデバイス190はさらに、別のデバイスに埋め込められ得る。当該別のデバイスは、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオプレイヤー、グローバルポジショニングシステム(GPS: Global Positioning System)レシーバ、ビデオゲームコンソール、および/または、テレビジョンセットトップボックスであるが、これらに限定されない。
【0067】
本願明細書において使用される「マシン読取可能記憶媒体」または「コンピュータ読取可能媒体」という用語は、実行のためにプロセッサ112に命令またはデータを提供することに関与する任意の媒体を指す。そのような媒体は、不揮発性媒体および揮発性媒体を含むがこれらに限定されない多くの形態を取り得る。不揮発性媒体は、たとえば、データストレージデバイス126のような、光ディスク、磁気ディスクまたはフラッシュメモリを含む。揮発性媒体は、メモリ120のようなダイナミックメモリを含む。伝送媒体は、バス124を構成するワイヤーを含む同軸ケーブル、銅線および光ファイバーを含む。マシン読取可能媒体の一般的な形態はたとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、DVD、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的な媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップもしくはカートリッジ、または、コンピュータが読み出すことが可能である任意の他の媒体を含む。マシン読取可能記憶媒体は、マシン読取可能ストレージデバイス、マシン読取可能ストレージサブストレート、メモリデバイス、マシン読取可能な伝播された信号に影響を与える構成、または、それらの1つ以上の組み合わせであり得る。
【0068】
本願明細書において使用されるように、「および」あるいは「または」という用語を伴う先行する一連の項目「のうちの少なくとも1つ」という、当該項目のうちのいずれかを分離するフレーズは、リストの各メンバー(すなわち各項目)ではなく、リスト全体を修飾している。「〜のうちの少なくとも1つ」というフレーズは、少なくとも1つの項目の選択を要求しているのではなく、項目のうちの少なくともいずれか1つを含む意味、および/または、項目の任意の組み合わせのうちの少なくとも1つを含む意味、および/または、項目のそれぞれのうちの少なくとも1つを含む意味を許容する。例として、「A、BおよびCのうちの少なくとも1つ」または「A、BまたはCのうちの少なくとも1つ」というフレーズは各々、Aのみ、Bのみ、もしくは、Cのみを指すか、A、BおよびCの任意の組み合わせを指すか、ならびに/または、A、BおよびCのそれぞれの少なくとも1つを指す。
【0069】
さらに、「含む」または「有する」などといった用語が明細書または特許請求の範囲において使用される程度について、そのような用語は、「備える」という用語が、請求項における転換語として使用される際に「備える」と解釈されるのと同様の態様で包括的になるように意図される。
【0070】
単数形での要素への参照は、特に述べられていなければ「1つおよび1つのみ」を意味するようには意図されず、むしろ「1つ以上」を意味するように意図される。当業者に公知であるか、あるいは、後で公知になる、この開示の全体にわたって記載されるさまざまな構成の要素に対するすべての構造的および機能的な等価物は、明確に本願明細書において参照により援用され、対象技術によって包含されることが意図される。さらに、本願明細書において開示されるものはいずれも、そのような開示が上記の記載に明示的に示されているかどうかに関わらず、公に捧げられるようには意図されない。
【0071】
この明細書は多くの詳細を含んでいるが、これらは、請求され得るものの範囲に対する限定として解釈されるべきでなく、主題の特定の実現例の説明として解釈されるべきである。別個の局面のコンテキストでこの明細書において記載されるある機能は、単一の局面においても組み合わせで実現され得る。反対に、単一の局面のコンテキストで記載されるさまざまな機能は、別々にまたは任意の好適なサブコンビネーションで複数の局面において実現され得る。さらに、ある組み合わせで機能し、かつ、最初はそのようなものとして特許請求される機能が上で説明されているかもしれないが、特許請求される組み合わせからの1つ以上の機能は、いくつかの場合に当該組み合わせから削除され得、特許請求される組み合わせは、サブコンビネーションまたはサブコンビネーションの変形例に向けられ得る。
【0072】
同様に、動作が図面において特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されることを必要とするか、または、すべての示される動作が実行されることを必要とすると理解されるべきでない。ある状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上に記載された局面におけるさまざまなシステムコンポーネントの分離は、すべての局面においてそのような分離を必要とすると理解されるべきでなく、記載されたプログラムコンポーネントおよびシステムが一般に単一のソフトウェアプロダクトに統合され得るか、または、複数のソフトウェアプロダクトへパッケージにされ得るということが理解されるべきである。
【0073】
この明細書の主題は特定の局面の点から説明されているが、他の局面が実現され得るとともに添付の請求の範囲内である。たとえば、請求の範囲に記載される動作は、異なる順序で実行されても、望ましい結果が達成され得る。例として、添付の図面に示されるプロセスは、所望の結果を達成するために、示されている特定の順序または連続する順序を必ずしも必要としない。ある実現例では、マルチタスクおよび並列処理が有利であり得る。他の変形例は添付の請求の範囲内である。
【0074】
これらの実現例および他の実現例は添付の請求の範囲内である。
図1
図2
図3
図4
図5
図6
図7