本出願の実施形態をより明確に説明するために、本出願の実施形態について説明する前に、信用性証明に関するいくつかの基本的な概念およびプロセスについて簡単に説明する。
ネットワークデバイスは、トラステッドプラットフォームモジュール(英語:Trusted Platform Module、略してTPM)を有することが理解され得る。TPMは、改ざんすることができず、絶対的に信用することができ、外部からのメンテナンスを必要としない信頼の要素(信頼の基点とも呼ばれる)を有し、信頼の基点は、信用性証明の不可欠な部分である。
ネットワークデバイスに対するシステム信用性証明は、具体的には、以下を含み得る。ネットワークデバイス内のTPMは、システムの信用性測定情報を取得するために、システム起動プロセス、プロセス実行中のプロセス、およびネットワークデバイス上の構成ファイルなどのシステム状態に対して信用性測定を実行し、測定情報に基づいて、ネットワークデバイスのシステムが信用できるかどうかを検証する。
一例において、図1に示すブートモデルを参照されたい。ブートプロセスにおいて、たとえば、ネットワークデバイスのシステムの信用性証明プロセスは、以下を含み得る。ステップ1:TPMにおける信頼の基点は、基本入力/出力システム(英語:Basic Input Output System、略してBIOS)のための信頼の基盤を提供する。ステップ2:BIOSは、起動され、ハードウェアシステムを初期化し、TPMにおける信頼の基点を呼び出すことによって、次の段階において実行する必要があるLoaderの署名をチェックし、Loaderと構成情報とを測定し、測定情報をTPM内に記録する。ステップ3:Loaderは、実行され、オペレーティングシステムイメージファイルを位置特定および取得し、TPMにおける信頼の基点を呼び出すことによって、次の段階において実行する必要があるオペレーティングシステムのKernel Kernelの署名をチェックし、Kernelを測定し、測定情報をTPM内に記録する。ステップ4:Kernelは、実行され、オペレーティングシステム、セキュリティアプリケーションなどを起動し、構成情報を測定し、測定情報をTPM内に記録する。前述のネットワークデバイスが起動を完了したとき、リモート証明が実行され得、すなわち、ネットワークデバイスは、TPM内に記録された測定情報に基づいてレポートを生成し、レポートを、リモート証明機能を有するサーバに送信し、サーバは、証明結果を取得するために、受信したレポートに基づいて、ネットワークデバイスの起動プロセスに対して信用性証明を実行することが分かり得る。測定情報は、少なくとも、TPMにおいて計算され、PCR内に記憶されたプラットフォーム構成レジスタ(英語:Platform configuration register、略してPCR)値を含み得、PCR値は、一般に、実行中のプロセスにおいてベースライン値が複数回拡張された後に取得される値であり、具体的には、実行中のプロセスにおける拡張の量と拡張順序とに関連する。
リモート証明は、信用性証明が実行されるべきネットワークデバイスが測定情報をサーバに送信し、サーバが、受信した測定情報に基づいて、信用性証明が実行されるべきネットワークデバイスに対してリモート証明を実行することを意味することが理解され得る。リモート証明を通じて、ネットワークデバイスは、集中的により容易に監視され得る。したがって、より多くのネットワークデバイスが、システムの信用性証明のためのリモート証明方式を使用する。たとえば、ネットワークデバイスのリモート証明は、以下を含み得る。一方において、リモート証明機能を有するサーバは、ネットワークデバイスの起動などの決定的な測定プロセスにおいて生成された測定情報に対してリモート証明を実行する。他方において、リモート証明機能を有するサーバは、ネットワークデバイスの実行中のプロセスにおける動的プロセスにおいて生成された測定情報に対してリモート証明を実行する。
図2に示すネットワークモデルを参照する。モデルは、リモート証明のシナリオを示す。シナリオは、証明対象のデバイスAttester201と、検証サーバVerifier202と、リレーデバイスRelying Party(以下、略してRPと呼ぶ)203と、サプライチェーンエンティティAsserter204とを含む。Attester201は、端末、インターネットオブシングス(英語:Internet of Thing、略してIoT)ゲートウェイ、またはアプリケーションサーバなどのリモート証明が実行される必要があるネットワークデバイスである。端末は、たとえば、スイッチ、ルータ、またはパーソナルコンピュータ(英語:personal computer、略してPC)であり得る。Attester201は、4つの部分、すなわち、中央処理装置(英語:Central Processing Unit、略してCPU)およびTPMと、BIOSと、Kernelと、アプリケーション(英語:application、略してapp)とを含み得、測定情報を計算および記録するように構成され、証明プラットフォームAttest Platformと呼ばれる場合もある。Verifier202は、リモート証明機能を有するサーバであり、証明サーバAttest Serverと呼ばれる場合もある。RP203は、Attester201およびVerifier202と通信することができるデバイスであり、Attester201とVerifier202との間の情報交換を担当し、たとえば、ネットワーク管理デバイスであり得る。サプライチェーンエンティティAsserter204は、たとえば、デバイス製造業者のネットワークデバイスであり得る。
特定の実装形態の間、Verifier202がAttester201に対してリモート証明を実行するプロセスは、具体的には、以下を含み得る。S11:Attester201は、信頼の基点を使用することによって、Attester201の測定情報を計算および収集し、測定情報をRP203に提供する。S12:RP203は、Attester201によって送信された測定情報を受信し、署名認証を通じてAttester201の身元を検証する。S13:RP203がAttester201の身元認証に成功した後、RP203は、RP203の証明書を使用することによって、Attester201の測定情報に署名し、測定情報をVerifier202に送信する。S14:Verifier202がRP203の身元認証に成功した場合、Verifier202は、測定情報に基づいて、Attester201が信用できるかどうかを検証し、証明結果をRP203に送信する。このようにして、クライアントまたは技術者は、Attester201のシステムの信用性ステータスを知り得る。S14の前に、Asserter204は、初期デバイスIDなどの構成情報をAttester201に提供するように構成され、Asserter204はまた、Attester201のベースライン値およびPCR参照値を有する。Asserter204は、Attester201に対してVerifier202によってリモート証明を実行するための基礎として、Attester201のベースライン値およびPCR参照値をVerifier202に送信し得る。ベースライン値は、Attester201上のソフトウェアパッケージにおいてハッシュ計算を実行することによって取得されるダイジェストであり、一般的には固定値である。PCR参照値は、起動などの決定的な測定プロセスにおいて決定的な回数だけ決定順序においてベースライン値を拡張することによって取得された値であり、決定的な測定プロセスに対して信用性証明を実行するための標準として使用される。
リモート証明のための対話型プロセス全体においてデバイスおよび通信のセキュリティを保証するために、一方において、本出願の実施形態におけるVerifierは、絶対的に安全で信用できるデバイスであり、すなわち、Verifierは、ネットワークデバイスに対して信用性証明を実行する資格があるとデフォルトで見なされ得ることが留意されるべきである。他方において、対話プロセスにおける証明書の検証および閲覧などの必要な動作をサポートするために、証明書メカニズム(証明書の申請、失効などを含む)が事前に配備される必要がある。具体的には、Attester201は、Attester201によって記録された測定情報を暗号化および署名するために、プライバシー認証局(英語:certificate authority、略してCA)サーバ205から取得された証明書を使用する。Verifier202は、受信した情報を復号し、Attester201の証明書が有効であるかどうかを検証するために、プライバシー認証局サーバ205と対話する。ユーザは、プライバシー認証局サーバ205によって発行された証明書を閲覧し得、Attester201に対してVerifier202によってリモート証明を実行した結果を閲覧することができる。
リモート証明機能を有するサーバ(以下の説明のための例としてVerifierが使用される)は、ネットワーク構成プロトコル(英語:Network Configuration Protocol、略してNETCONF)において、チャレンジレスポンス方式においてネットワークデバイス(以下の説明のための例としてAttesterが使用される)に対してリモート証明を実行し得る。リモート証明に関連する情報は、さらに別の次世代(英語:Yet Another Next Generation、略してYANG)データモデルを使用することによって説明され得る。
本出願の実施形態において、Verifierは、Attesterに対してリモート証明を実行することを担当するデバイスであることが留意されるべきである。ある場合において、Verifierは、RP203とVerifier202の両方の機能が配備されるデバイスであり得る。別の場合において、Verifierは、代替的に、Attester201とデータを直接交換する機能を有するデバイスであり得る。言い換えれば、本出願の実施形態において、Attester201は、Verifier202のみに注目するだけでよい。以降の説明において、RP203とAttester201との間、およびRP203とVerifier202との間の情報交換のプロセスは、もはや説明されず、Attester201とVerifier202との間の直接対話の説明のみが提供される。
本出願の実施形態における関連する説明については、draft-birkholz-rats-architecture-01およびdraft-birkholz-rats-reference-interaction-model-00における関連する説明を参照されたい。
現在、多くのシナリオにおけるネットワークデバイスは、複数の独立した構成要素またはユニット(以下、ユニットと呼ばれる)を含み、複合デバイス、たとえば、スイッチまたはルータと呼ばれる。トラステッドコンピューティングベース(英語:Trusted Computing Base、略してTCB)モジュールは、複合デバイス内のユニットのうちのいくつかにおいて組み込まれ、他のユニットは、TCBモジュールを含まないユニットである。TCBモジュールは、ネットワークデバイス内の前述のTPMに相当し、信用性を表す測定情報を取得するために、TCBモジュールが配置されているユニットにおけるシステム起動プロセス、プロセス実行中のプロセス、構成ファイルなどを計算および記録するように構成される。組み込まれたTCBモジュールを有するユニットのみが、測定情報を生成することができ、信用性証明は、そのユニットに対して実行される必要があり、TCBモジュールを含まないユニットは、複合デバイスの信用性証明に影響を及ぼさない。したがって、本出願の実施形態における複合デバイス内のユニットは、特に、組み込まれたTCBモジュールを有するユニットを指し、TCBモジュールを持たないユニットは、含まれない。
複合デバイスは、リーダユニット(英語:Leader unit)と補助ユニット(英語:Subsidiary unit)とを含み得る。リーダユニットは、外部デバイスと直接対話することができる通信インターフェースを有し、補助ユニットは、外部デバイスと直接対話することができる通信インターフェースを持たないユニットである。補助ユニットは、内部相互接続構造とリーダユニットの通信インターフェースとを使用することによって、外部デバイスと対話する必要がある。通信インターフェースは、外部デバイスとの通信を実施することができる物理的インターフェースであり、たとえば、管理インターフェースであり得ることが理解され得る。たとえば、複合デバイスは、ルータである。ルータは、管理インターフェースを使用することによってネットワーク管理システムに接続され、ルータは、管理インターフェースを使用することによってネットワーク管理システムと対話し得、たとえば、管理インターフェースを使用することによって構成情報をネットワーク管理システムに送達し得、ネットワーク管理システムは、管理インターフェースを使用することによってルータの実行状態を問い合わせる。
たとえば、複合デバイスがルータである場合、リーダユニットは、ルータの主制御基板であり得る。ルータの信頼性を改善するために、通常、2つの主制御基板がルータ内に配備され、1つの主制御基板がアクティブ状態(すなわち、動作状態)になっている。アクティブ状態にある主制御基板が利用できない場合、スタンバイ状態にある他方の主制御基板は、作業を継続するために、アクティブ状態にある元の主制御基板を引き継ぐことができる。このようにして、一方の元の主制御基板が利用できないために、ルータが再起動するかまたは完全に機能停止し、ネットワーク全体の実行に影響を与えることが防止される。補助ユニットは、プラグインカード、ベースカード、ラインカード、またはルータの付加価値サービス基板であり得る。ラインカードは、通常、転送基板であり得、プラグインカードは、転送基板上に拡張されたサブカードであり得、ベースカードは、基本転送ユニットであり、付加価値サービス基板は、たとえば、インターネットプロトコルセキュリティ(英語:Internet Protocol Security、略してIPsec)を提供するサービス基板である。
図3は、複合デバイスの概略図である。複合デバイス300は、リーダユニット311と、リーダユニット312と、複数の補助ユニット321、322、...とを含み得る。リーダユニット311およびリーダユニット312は、外部デバイスと直接対話することができる通信インターフェースを有し、TCBモジュールと統合されたユニットである。補助ユニット321、322、...は、TCBモジュールと統合されるが、外部デバイスと直接対話することができる通信インターフェースを持たず、内部相互接続構造330と、リーダユニット311またはリーダユニット312上の通信インターフェースとを使用することによってのみ、外部デバイスと対話することができる。
複合デバイスの起動または実行などの挙動は、各リーダユニットおよび各補助ユニットの起動または実行などの挙動を含む。したがって、複合デバイスのシステムの信用性を評価するために、複合デバイス内に含まれるリーダユニットおよび各補助ユニットの信用性が、個別に評価される必要がある。複合デバイスのシステムは、リーダユニットおよび各補助ユニットが信用できる場合にのみ信用できると判断することができる。
この点に鑑み、情報の爆発的な増大およびすべてのものが接続される壮大な機会に伴い、安全で信頼できるネットワーク環境を提供するために、ネットワーク内の複合デバイスに対して厳密な信用性証明を実施し、それによって、複合デバイスおよび複合デバイスを含むネットワークに対する現在増加している信用性要件を満たすために、複合デバイスのためのリモート証明方式が緊急に提供される必要がある。
一例において、図2に示すシナリオにおいて、図2中のAttester201が図3に示す構造を有する複合デバイスであると仮定する。図4を参照されたい。Verifier202がAttester201に対してリモート証明を実行するプロセスは、以下を含み得る。S21:Verifier202は、Attester201へのリモート証明要求メッセージを開始し(証明チャレンジを開始するとも呼ばれる)、リモート証明要求メッセージは、Attester201に対する1回のリモート証明をトリガするために使用される。S22:Attester201は、すべてのユニットの測定情報をリモート証明応答メッセージ内に含め、リモート証明応答メッセージをVerifier202に送信し、スタンバイ状態にあるリーダユニット312および補助ユニット321、322、...は、ユニットの測定情報をアクティブ状態にあるリーダユニット311に送信し、アクティブ状態にあるリーダユニット311は、受信した測定情報とリーダユニット311の測定情報とをリモート証明応答メッセージ内に含め、アクティブ状態にあるリーダユニット311上の通信インターフェースを使用することによって、リモート証明応答メッセージをVerifier202に送信する。S23:Verifier202は、受信したリモート証明応答メッセージから、アクティブ状態にあるリーダユニット311、スタンバイ状態にあるリーダユニット312、および補助ユニット321、322、...の測定情報を取得し、各ユニットの証明結果を取得するために、Verifier202上に記憶されたAttester201の各ユニットのPCR参照値またはベースライン値に基づいて、Attester201によって提供された測定情報を検証する。S24:Verifier202は、各ユニットの証明結果に基づいて、Attester201のシステムの信用性の証明結果を決定する。
図4に示す複合デバイスのためのリモート証明方法において、信用性証明は、複合デバイス内のすべてのユニットに対してVerifierによって実行される必要があることが理解され得る。ネットワーク内により多くの複合デバイスが存在し、複合デバイスが大量のユニットを含む場合、前述のリモート証明方法が実行されると、Verifierと交換される必要があるパケットの量が指数関数的に増加し、Verifierの負荷が増加する。たとえば、10個の補助ユニットと2個のリーダユニットとを含む複合デバイスがネットワークに追加され、他の部分が変更されないままであると仮定すると、リモート証明は、図4に示す実施形態を使用することによって実行され、複合デバイスは、測定プロセスにおいて12個のエンティティ(10個の補助ユニットと2個のリーダユニットとを含む)の関連情報をVerifierと交換する必要がある。これは、Verifierにとって、12個のエンティティの負荷が増加される必要があることを説明するのに相当する。
この点に鑑み、本出願の実施形態は、複合デバイスのためのリモート証明方法を提供する。複合デバイス内のリーダユニットは、リモート証明機能を有し、リーダユニットが属する複合デバイス内の別のユニットに対して信用性証明を実行することができる。この場合において、複合デバイス内のリーダユニットは、別のユニットの信用性証明結果をVerifierに直接送信し得、Verifierは、各ユニットの測定情報を受信して各ユニットに対して信用性証明を実行することなく、別のユニットの証明結果を受信することのみを必要とする。10個の補助ユニットと2個のリーダユニットとを含む複合デバイスがネットワークに追加される例が依然として使用される。この実装形態において、Verifierについて、信用性証明が10個の補助ユニットと他のリーダユニットの両方に対して複合デバイス内の一方のリーダユニットによって実行される場合、Verifierは、複合デバイス内のリーダユニットによって送信された証明結果を受信することのみを必要とする。これは、1個のエンティティ(すなわち、リーダユニット)の負荷のみが増加される必要があることを説明することに相当する。それに加えて、リモート証明プロセスにおいてVerifierと複合デバイスとの間で交換される必要があるデータの量が、大幅に削減され得る。
別の例において、図2に示すシナリオが依然として例として使用される。図3に示す複合デバイスが図2中のAttester201であると仮定する。図5を参照されたい。Verifier202がAttester201に対してリモート証明を実行するプロセスは、以下を含み得る。S31:Verifier202は、測定要求メッセージ1をリーダユニット311に送信し、測定要求メッセージ1は、リモート証明がチャレンジレスポンス方式において実行される場合の「チャレンジ」と見なされ得、複合デバイスに対する信用性証明を要求するために使用される。S32:リーダユニット311は、要求メッセージ1をVerifier202に送信し、要求メッセージ1は、リーダユニット312および補助ユニット321、322、...に対する信用性証明のための基準を取得することを要求するために使用される。たとえば、起動などの測定プロセスが決定的なプロセスである場合、信用性証明のための基準は、PCR参照値であり得る。別の例として、起動後の別の測定プロセスが不確実なプロセスである場合、信用性証明のための基準は、測定プロセスによって変化しない標準のベースライン値Aであり得る。S33:Verifier202はリーダユニット312および補助ユニット321、322、...に対応するPCR参照値1および/またはベースライン値Aを応答メッセージ1内に含め、応答メッセージ1をリーダユニット311に送信し、ベースライン値AおよびPCR参照値1は、ユニットの信用できるベースライン値およびPCR参照値である。S34:リーダユニット311は、リーダユニット312および補助ユニット321、322、...からのリーダユニット312および補助ユニット321、322、...の測定情報を要求するために、測定要求メッセージ2をリーダユニット312および補助ユニット321、322、...に別々に送信し、測定情報は、各ユニット内のTCBモジュール内に記録されたPCR値1を少なくとも含み、測定情報は、測定ログをさらに含み得、測定ログは、ベースライン値aと、PCR値1を取得するためにベースライン値aを拡張するプロセスに関する情報とを記録する。S35:リーダユニット312および補助ユニット321、322、...は、リーダユニット312および補助ユニット321、322、...の測定情報を測定応答メッセージ2内に別々に含め、測定応答メッセージ2をリーダユニット311に送信する。S36:リーダユニット311は、証明結果1を取得するために、リーダユニット312および補助ユニット321、322、...に対して信用性証明を別々に実行する。具体的には、ある場合において、決定的な測定プロセスについて、リーダユニット311は、各ユニットのPCR値1が各ユニットのPCR参照値1と一致するかどうかを比較を通じて判定する。別の場合において、不確実な測定プロセスについて、リーダユニット311は、測定ログに基づいてPCR値2を最初に計算し、すなわち、ベースライン値aについて測定ログ内に記録されたプロセスに関する情報に基づいてPCR値2を計算し、PCR値1がPCR値2と一致するかどうかを比較を通じて判定し、測定ログ内のベースライン値aがベースライン値Aと一致するかどうかを比較を通じて判定する。S37:リーダユニット311は、証明結果1を測定応答メッセージ1内に含め、測定応答メッセージ1をVerifier201に送信し、測定応答メッセージ1は、リモート証明がチャレンジレスポンス方式において実行される場合の「チャレンジ」に対する「レスポンス」、すなわち、S31における測定要求メッセージ1の応答メッセージと見なされ得る。
図6に示す複合デバイスのためのリモート証明方法において、S32とS33とS34とS35との間の実行順序は、制限されないことが留意されるべきである。上記で説明したように、S32およびS33は、S34およびS35の前に実行され得、S34およびS35は、S32およびS33の前に実行され得、または2つの部分は、同時に実行され得る。それに加えて、S31は、S37の前の任意のときに実行され得る。
ある場合において、各リモート証明プロセスにおいて、S32およびS33は、現在のリモート証明のための信頼できるデータ基準を提供するために実行され得ることが留意されるべきである。別の場合において、複数のリモート証明プロセスにおいて、S32およびS33は、代替的に1回だけ実行され得、PCR参照値(またはPCR参照値およびベースライン値A)は、リーダユニット内にローカルに記憶され、後続のリモート証明プロセスにおいて直接ローカルに読み取られる。
前述のシナリオは、本出願の実施形態において提供される単なるシナリオ例であり、本出願の実施形態は、このシナリオに限定されないことが理解され得る。
添付図面を参照して、以下は、実施形態を使用することによって、本出願の実施形態における複合デバイスおよび関連デバイスのためのリモート証明方法の具体的な実装形態について詳細に説明する。
リーダユニットが、リーダユニットが属する複合デバイス内の別のユニットに対して信用性証明を実行することができ、それによって、リモート証明プロセスにおいて複合デバイスAttesterとリモート証明サーバVerifierとの間で交換されるデータの量を大幅に削減し、Verifierの負荷を軽減することができるように、特定の機能が複合デバイスAttester内のリーダユニットに割り当てられることが理解され得る。
いくつかの可能な実装形態において、複数のリモート証明モード、たとえば、リレー(英語:Relay)モード、ローカル証明(英語:Proxy)モード、および混合証明(英語:Mixed)モードが、VerifierとAttesterとの間でサポートされる。リレーモードにおいて、Verifierは、複合デバイスAttester内のリーダユニットおよび複数の補助ユニットに対して信用性証明を実行する。プロキシモードにおいて、Attester内のリーダユニットは、Attester内のすべての補助ユニットに対して信用性証明を実行する。混合証明モードにおいて、Attester内のリーダユニットは、Attester内のいくつかの補助ユニットに対して信用性証明を実行し、Verifierは、Attester内の他の補助ユニットに対して信用性証明を実行する。
リモート証明が秩序正しい方式で実行され得ることを保証するために、リモート証明が実行される前に、VerifierおよびAttesterは、使用されるべきリモート証明モードを最初に決定し得る。使用されるべきリモート証明方式を決定するために、一例において、AttesterおよびVerifierは、ローカルな静的構成を通じて、後続のリモート証明のために使用されるべきリモート証明モードを決定し得る。たとえば、リモート証明モードは、AttesterとVerifierの両方においてプロキシモードとして構成され、次いで、プロキシモードは、AttesterとVerifierとの間のリモート証明のプロセスにおいて使用される。別の例において、AttesterおよびVerifierは、代替的に、ネゴシエーションを通じて、後続のリモート証明のために使用されるべきリモート証明モードを決定し得る。たとえば、Attesterは、特定のリモート証明モードを決定するようにVerifierに要求するために、メッセージを使用することによって、プロキシモードおよび混合証明モードがその後に使用され得ることをVerifierに通知し、Verifierは、混合証明モードが使用されるように決定されたと応答する。この場合において、ネゴシエーションを通じて、混合証明モードがAttesterとVerifierとの間のリモート証明のプロセスにおいて使用されるべきであると決定される。ネゴシエーションを通じてリモート証明モードを決定する具体的なプロセスについては、図16aおよび図16bに示す以下の実施形態を参照されたい。
特定の実装形態の間、一例において、決定されたリモート証明モードがリレーモードである場合、リモート証明は、図4に示す実施形態に従って実行され得る。別の例において、決定されたリモート証明モードが混合証明モードである場合、詳細については、図12に示す以下の実施形態の関連する説明を参照されたい。さらに別の例において、決定されたリモート証明モードがプロキシモードである場合、リモート証明は、図3に示す以下の実施形態に従って実行され得る。詳細については、図6に示す以下の実施形態の関連する説明を参照されたい。
図6は、本出願の実施形態による複合デバイスのためのリモート証明方法の概略フローチャートである。図6を参照されたい。方法は、AttesterとVerifierとを含むネットワークに適用され、Attesterは、複合デバイスであることが知られている。Attesterは、ユニット10とユニット20とを含む。ユニット10は、具体的には、図3中の複合デバイス300内のアクティブ状態にあるリーダユニット311であり得、ユニット20は、具体的には、図3中の複合デバイス300内のスタンバイ状態にあるリーダユニット312および補助ユニット321、322、...のうちのいずれか1つであり得る。リモート証明がプロキシモードにおいて複合デバイスに対して実行される場合、アクティブ状態にあるリーダユニット10は、Attester内のすべての他のユニットに対して以下の方法を実行する必要がある。リーダユニット10がユニット20に対して信用性証明を実行する例が使用される。方法は、具体的には、以下のステップ601からステップ605を含み得る。
ステップ601:ユニット10は、ユニット20の測定情報1を取得する。
ユニット10は、ユニット10が属する複合デバイス内の別のユニットに対して信用性証明を実行する機能を有するリーダユニットであり、たとえば、スイッチまたはルータの制御プレーンであり得ることが理解され得る。ユニット20は、ユニット10またはVerifierによって信用性証明が実行され得るユニットであり、たとえば、スイッチもしくはルータの制御プレーンであり得、またはスイッチもしくはルータの転送プレーンであり得る。
測定情報1は、実行中のプロセスにおいてAttester内のユニット20によって生成され、ユニット20の信用性を評価するために使用される情報であり得る。ある場合において、決定的な測定プロセス、たとえば、起動プロセスについて、測定情報1は、具体的には、PCR値1を含み得、PCR値1は、具体的には、ユニット20内に組み込まれたTCBモジュールによって現在記録されているPCR値であり得る。別の場合において、不確実な測定プロセス、たとえば、起動後の実行中のプロセスに関して、PCR値2に加えて、測定情報1は、測定ログをさらに含み得る。PCR値2は、ユニット20内に組み込まれたTCBモジュールによって現在記録されているPCR値であり得、測定ログは、PCR値2を取得するためにベースライン値を拡張するプロセスに関する情報(たとえば、ベースライン値aの拡張順序および拡張量)と、ベースライン値aとを記録する。PCR値1とPCR値2の両方は、ベースライン値aと、対応する測定プロセスにおけるプロセスに関する情報とに基づく計算を通じて、TCBモジュールによって取得され、特定の値が、測定プロセスにおける拡張量および拡張順序に関連する。
第1の例において、ステップ601においてユニット10がユニット20の測定情報1を取得することは、具体的には、ユニット20が測定情報1をユニット10に能動的に送信することであり得る。たとえば、図7aに示すように、ステップ601は、具体的には以下の通りである。S40:ユニット20は、測定要求メッセージ1をユニット10に送信し、測定要求メッセージ1は、測定情報1を含み、測定要求メッセージ1は、ユニット20に対して信用性証明を実行することをユニット10に要求するために使用される。この場合において、測定要求メッセージ1を受信した後、ユニット10は、測定要求メッセージ1を解析することによって、測定情報1を取得し得る。
測定要求メッセージ1は、具体的には、NFTCONFプロトコルにおけるメッセージであり得、測定要求メッセージ1は、具体的には、以下の情報、すなわち、ランダム数Nonce、署名のために使用される証明書aik、aik証明書を使用することによってPCR値に署名した結果quote、PCRによってサポートされるハッシュアルゴリズムPcrBanks、測定ログEventLogなどを伝達し得ることが理解され得る。Nonceは、ユニット10によって生成され、ユニット20に事前に送信され、セキュリティチェックに使用される乱数であり得、aikは、ユニット10によって以前に送信された署名によって使用される証明書タイプaikTypeに基づいて決定されたIAKまたはLAK証明書の内容であり得、PcrBanksは、具体的にはSHA1またはSHA256などのハッシュアルゴリズムであり得、EventLogは、具体的には、ユニット20における各プロセスの測定プロセス、たとえば、ベースライン値aの拡張量および拡張順序などを記録する。
測定要求メッセージ1は、定期的にトリガされ得、または手動構成を通じてトリガされ得る。
本出願の実施形態におけるメッセージ、たとえば、測定要求メッセージ1およびそれに続く測定応答メッセージ1、要求メッセージ1、応答メッセージ1、メッセージ1、モードネゴシエーション要求メッセージ1、およびモードネゴシエーション応答メッセージ1について、一例において、伝送制御プロトコル/ユーザデータグラムプロトコル(英語: Transmission Control Protocol/User Datagram Protocol、略してTCP/UDP)におけるメッセージ、ポート、およびルータ広告(英語:Router Advertisement、略してRA)が使用され得ることが留意されるべきである。この場合において、各メッセージにおいて伝達される内容は、このタイプのメッセージ内の標準タイプ長さ値(英語:Tag Length Value、略してTLV)フォーマットフィールド、またはTLVフォーマットに類似したフィールド(たとえば、いくつかの特定のフィールドが標準TLVフォーマットフィールドに基づいて追加される)によって伝達され得る。別の例において、ハイパーテキスト転送プロトコル・オーバー・セキュア・ソケット・レイヤ(英語: Hyper Text Transfer Protocol over Secure Socket Layer、略してHTTPS)内のメッセージおよびポート番号が代替的に使用され得る。この場合において、ユニフォームリソースロケータ(英語: Uniform Resource Locator、略してURL)が、異なるメッセージタイプ間を区別し、要求または応答(または回答もしくは確認)関連メッセージ内のメッセージフィールドを定義するために使用され得る。
本出願の実施形態において、たとえば、メッセージは、RATypeフィールドを使用することによって定義され得る。たとえば、RATypeフィールドの値は、1に設定され、メッセージが測定要求メッセージ1であることを示し得る。各メッセージにおいて伝達される情報は、たとえば、測定情報は、標準TLVフィールドまたはTLVフィールドに類似したフィールドを使用することによって定義され得る。標準TLVフィールドまたはTLVフィールドに類似したフィールドは、具体的には、MsgTypeフィールド、MsgLenフィールド、およびMsgContextフィールドを含み得る。MsgTypeフィールドの値は、1に設定され、TLVフィールドがPCR値を示すために使用されることを示し得、TLV内のMsgContextフィールドの値は、PCR値の特定の値を示すために使用される。代替的に、MsgTypeフィールドの値は、2に設定され、TLVフィールドが測定ログを示すために使用されることを示し得、TLV内のMsgContextフィールドの値は、ベースライン値と、ベースライン値の拡張順序および拡張量とを示すために使用される。
第2の例において、ユニット10がステップ601においてユニット20の測定情報1を取得することは、代替的に、ユニット10が要求をユニット20に送信し、ユニット20が要求に応答して測定情報1をユニット10に送信することであり得る。たとえば、図7bに示すように、ステップ601は、以下を含み得る。S41:ユニット10は、測定要求メッセージ2をユニット20に送信し、測定要求メッセージ2は、測定情報1を送信することをユニット20に要求するために使用される。S42:ユニット20は、測定応答メッセージ1をユニット10に送信し、測定応答メッセージ1は、ユニット20の測定情報1を含み、測定応答メッセージ1は、測定要求メッセージ2の応答メッセージである。この場合において、測定応答メッセージ1を受信した後、ユニット10は、測定要求メッセージ1を解析することによって、測定情報1を取得し得る。
測定要求メッセージ2は、具体的には、以下の情報、すなわち、Nonce、要求されたPCR値(PCR)のリスト、aikTypeなどを伝達し得ることが理解され得る。Nonceは、悪意のある攻撃を防止し、セキュリティ検証を実行するために、ユニット10によって生成され、ユニット20に送信された乱数であり、aikTypeは、IAKまたはLAK証明書タイプを伝達するために使用される。測定応答メッセージ1において具体的に伝達され得る情報および関連する説明に関する詳細については、第1の例における測定要求メッセージ1の関連する説明を参照されたい。
測定要求メッセージ2は、PCRを含まない場合があることが留意されるべきである。この場合において、TCBモジュールによって記録されたすべてのPCR値は、測定応答メッセージ1において返される必要がある。
測定要求メッセージ2は、定期的にトリガされ得、または手動構成を通じてトリガされ得る。
第3の例において、ユニット10がステップ601においてユニット20の測定情報1を取得することは、代替的に、ユニット20が応答として要求をユニット10に送信し、ユニット10が別の要求をユニット20に送信し、ユニット20が別の応答に応答して測定情報1をユニット10に送信することであり得る。たとえば、図7cに示すように、ステップ601は、以下を含み得る。S43:ユニット20は、測定要求メッセージ3をユニット10に送信し、測定要求メッセージ3は、ユニット20の測定情報1を取得することをユニット10に指示するために使用される。S41:ユニット10は、測定要求メッセージ2をユニット20に送信し、測定要求メッセージ2は、測定情報1を送信することをユニット20に要求するために使用される。S42:ユニット20は、測定応答メッセージ1をユニット10に送信し、測定応答メッセージ1は、ユニット20の測定情報1を含み、測定応答メッセージ1は、測定要求メッセージ2の応答メッセージである。この場合において、測定応答メッセージ1を受信した後、ユニット10は、測定応答メッセージ1を解析することによって、測定情報1を取得し得る。
ステップ601が前述の3つの例において実施される場合、ステップ601の実行をトリガする方式は、以下であり得ることが留意されるべきである。実行は、手動構成を通じてトリガされるか、またはスケジュールされた期間(たとえば、2時間)においてトリガされる。第1の例および第3の例について、実行は、代替的に、ユニット20の起動によってトリガされ得、すなわち、ユニット20が起動されると、第1の例または第3の例によるステップ601の実行がトリガされる。
ステップ601を通じて、ユニット10は、ユニット20に対してユニット10によって信用性証明を実行するためのデータ基準を提供するために、信用性証明が実行されるべきユニット20の測定情報1を取得することが理解され得る。
ステップ602:ユニット10は、ユニット20の測定情報2を取得する。
測定情報2は、ユニット20が信用できる場合にAttester内のユニット20の測定情報1が準拠すべき標準または基準である。ある場合において、測定プロセスが起動などの決定的なプロセスである場合、ベースライン値の拡張順序および拡張量は、固定され、固定値が、決定的な測定プロセスをチェックするための標準として、PCR参照値として使用され得るように、決定順序においてベースライン値に対して決定的な量の拡張を実行することによって取得される値も固定値である。この場合において、測定情報2は、PCR参照値を含み得る。別の場合において、測定プロセスが起動以外の不確実な測定プロセスである場合、固定されたベースライン値が測定プロセスをチェックするための標準として使用され得るように、ベースライン値の拡張順序および拡張量は、固定することができない。この場合において、測定情報2は、ベースライン値を含み得る。
通常、測定情報2は、研究開発段階において、ソフトウェアパッケージ内の各ソフトウェアについて生成される。図8は、測定情報のベースライン値を生成するプロセスを示す。図8を参照されたい。プロセスは、研究開発段階と、リリース段階と、ダウンロード段階とを含み得る。研究開発段階は、具体的には以下を含み得る。ステップ1:ソフトウェアパッケージを構築する。たとえば、ソフトウェアは、限定はしないが、基本入力/出力システム(英語:Basic Input Output System、略してBIOS)、ブートローダ(英語:Bootloader)、およびオペレーティングシステム(英語:Operating System、略してOS)を含む。ステップ2:ソフトウェアパッケージ内の各ソフトウェアの測定情報2を生成する。ステップ3:測定情報2に対してデジタル署名保護を実行する。この場合において、リリース段階に入り、デジタル署名保護が実行される生成された測定情報2は、各VerifierがSupportウェブサイトから測定情報2をダウンロードするように、信頼できるサポート(英語:Support)ウェブサイトにリリースされ得る。この場合において、Verifierは、Supportウェブサイトから測定情報2をダウンロードし得る。具体的なプロセスは、以下を含み得る。ステップ1:Verifierは、デジタル署名保護が実行される測定情報2をダウンロードする。ステップ2:測定情報2のデジタル署名を検証する。ステップ3:測定情報2をVerifier内に記憶する。
ある場合において、測定情報2は、Verifier内に記憶され得、または供給業者もしくは製造業者のデバイスAsserter内に記憶され得、または信用できるサードパーティサーバ内に記憶され得ることが留意されるべきである。この場合において、Verifier、Asserter、および信用できるサードパーティサーバは、測定情報のベースライン値を記憶するためのデバイスと総称される場合がある。別の場合において、測定情報2は、代替的に、ソフトウェアパッケージにおいて事前設定され得る。ソフトウェアパッケージをロードするとき、複合デバイス内のローダユニットは、それに応じて測定情報2を取得し得る。
第1の可能な実装形態において、ステップ602におけるユニット20の測定情報2は、測定情報2を記憶するデバイスからユニット10によって取得され得る。以下は、測定情報2を記憶するデバイスが説明のためにVerifierである例を使用する。Asserterまたは信用できるサードパーティサーバの実装形態については、以下の説明を参照されたい。
一例において、ユニット10は、すべての他のユニットの識別情報を記憶し、すなわち、ユニット10は、ユニット20の識別情報1を記憶し、識別情報1は、ユニット20を一意に識別するために使用される。図9aに示すように、ステップ602は、具体的には以下を含み得る。S51:ユニット10は、要求メッセージ1をVerifierに送信し、要求メッセージ1は、ユニット20の識別情報1を伝達し、要求メッセージ1は、ユニット20の測定情報2を取得することを要求するために使用される。S52:Verifierは、要求メッセージ1を解析することによって、ユニット20の識別情報1を取得し、Verifier内に記憶された測定情報から、ユニット20の識別情報1に対応する測定情報2を検索して決定する。S53:Verifierは、応答メッセージ1をユニット10に送信し、応答メッセージ1は測定情報2を伝達する。S54:ユニット10は、応答メッセージ1を解析することによって、測定情報2を取得する。
ユニット20の識別情報1は、具体的には、ユニット20の識別子を含み得、ユニット20を一意に識別するために使用される。ユニット20の識別子は、たとえば、ユニット20のインデックスまたはユニット20の名前を含み得る。ユニット20のインデックスは、YANGスクリプトにおけるユニット20の定義であり得、番号によって表され、ユニット20を一意に識別するための物理的インデックスとして使用され得る。ユニット20の名前は、文字列によって表される。この場合において、対応するユニット20は、ユニットの20の名前よりもユニット20のインデックスを使用することによって、より迅速に決定され得る。さらに、ユニット20の識別情報1は、ユニット20のバージョン情報を含み得る。ユニット20のバージョン情報は、具体的には、ユニット20のソフトウェアバージョン番号および/またはタイプ(たとえば、ボードタイプ)を示し得る。ユニット20のソフトウェアバージョンが変化すると、測定情報2も変更する場合があり、バージョン情報は、対応して変化するが、ユニット20の名前およびインデックスは、更新されない場合がある。この場合において、ユニット20の識別情報1は、バージョン情報を伝達する必要があり、名前およびインデックスのうちの少なくとも1つをさらに伝達する。
別の例において、ユニット10が各ユニット20の識別情報1を記憶しない場合、前述のS51からS54に加えて、図9bに示すように、S51の前に、ステップ602は、以下をさらに含み得る。S501:ユニット10は、要求メッセージ2をユニット20に送信し、要求メッセージ2は、ユニット20の識別情報1を取得することを要求するために使用される。S502:ユニット20は、応答メッセージ2をユニット10に送信し、応答メッセージ2は、ユニット20の識別情報1を伝達する。
前述の2つの例を通して、ユニット10は、Verifierからユニット20の測定情報2を動的に取得することができることが理解され得る。ある方式において、ユニット10がリモート証明を実行するたびに、ユニット10は、Verifierからユニット20の測定情報2を取得するステップを実行し、今回取得された測定情報2に基づいて、ユニット20に対してリモート証明を実行し得る。このようにして、リモート証明のための基礎としての測定情報2が悪意を持って改ざんされ、その結果、リモート証明のための標準が変化し、リモート証明の証明結果が信頼できなくなるという問題が有効に回避され得る。測定情報2は、Verifierから毎回動的に取得され、それによって、リモート証明のための標準の信頼性を保証し、本実施形態において提供される複合デバイスに対するリモート証明のセキュリティを改善する。別の方式において、ユニット10は、初めてリモート証明を実行するときにVerifierからユニット20の測定情報2を取得するステップを1回だけ実行し、測定情報2をローカルセキュア記憶空間内に恒久的に記憶し得る。後続のリモート証明プロセスにおいて、測定情報2は、ローカルに取得され、リモート証明がユニット20に対して実行される。このようにして、測定情報2は、リモート証明が実行されるたびにVerifierから要求される必要がなく、ユニット10とVerifierとの間で交換されるデータ量が大幅に削減され得る。さらに別の方式において、測定情報2は、代替的に、定期的に取得され得る。すなわち、Verifierから測定情報2を1回取得した後、ユニット10は、測定情報2を記憶し、事前設定された期間(たとえば、48時間)においてユニット20に対して信用性証明を実行し、次の期間において、ユニット10は、Verifierから測定情報2'を1回再ダウンロードし、ローカルに記憶された測定情報2を、最新のダウンロードされた測定情報2'を用いて更新し、その期間において更新された測定情報2'を使用することによって、ユニット20に対してリモート証明を実行する、などである。このようにして、測定情報2の妥当性および信頼性がある程度まで保証され得、それによって、ユニット20に対してユニット10によって信用性証明を実行する際のセキュリティを改善する。
ステップ602の前に、リモート証明の信頼性を保証するために、Verifierは、信用できると判断されたユニット10にのみ測定情報2を送信し得ることが留意されるべきである。すなわち、Verifierが測定情報2をユニット10に送信する前に、Verifierは、最初にユニット10に対して信用性証明を実行し得る。具体的なプロセスは、以下を含み得る。ステップ1:ユニット10は、ユニット10の測定情報3をVerifierに送信する。ステップ2:Verifierは、証明結果2を取得するために、測定情報3に基づいて、ユニット10に対して信用性証明を実行する。ステップ1における測定情報3は、具体的には要求メッセージ1において伝達され得、またはステップ1が、Verifierがユニット20の測定情報2をユニット10に送信する前に実行されるという条件で、Verifierに送信されるべき別のメッセージにおいて伝達され得る。特定の実装形態中に、Verifierが、証明結果2に基づいて、ユニット10が信用できると判断した場合にのみ、Verifierは、ユニット20の測定情報2をユニット10に能動的に提供し、またはVerifierは、ユニット10の要求に応答して、ユニット20の測定情報2をユニット10に提供する。Verifierが、証明結果2に基づいて、ユニット10が信用できないと判断した場合、Verifierは、複合デバイス内のユニット10が信用できないことをユーザに通知するために、証明結果2をユーザによって閲覧可能なデバイス(たとえば、RP)にフィードバックする必要がある。
第2の可能な実装形態において、ステップ602におけるユニット20の測定情報2は、代替的に、ユニット10のローカルセキュア記憶空間からユニット10によって取得され得る。ある場合において、ローカル測定情報2は、Verifierなどの測定情報2を記憶するデバイスから事前にダウンロードされ、記憶され得る。具体的な実装形態については、第1の実装形態における関連する説明を参照されたい。別の場合において、測定情報2は、ユニット10のローカルセキュア記憶空間内に手動で静的に構成され得る。さらに別の場合において、ユニット10は、ソフトウェアパッケージをロードするときに、測定情報2を直接取得し、測定情報2をローカルセキュア記憶空間内に記憶し得る。
ユニット20の測定情報2がユニット10内に手動で静的に構成されることは、具体的には、技術者が、ユニット20の測定情報2について、VerifierまたはSupportウェブサイトなどの測定情報2が記憶される場所を検索し、ユニット10のセキュア記憶空間内に測定情報2を手動で構成することであり得る。
ユニット10が、ソフトウェアパッケージをロードするときに測定情報2の記憶を直接取得することは、具体的には以下であり得る。ユニット20の測定情報2は、ソフトウェアパッケージにおいて事前設定され、ソフトウェアパッケージをロードするとき、ユニット10は、ソフトウェアパッケージにおいて事前設定されたユニット20の測定情報2を取得し得、ユニット10は、測定情報2をローカルセキュア記憶空間内に記憶し得る。
ユニット10のローカルセキュア記憶空間は、ユニット10内にあり、アクセスが制限された、または改ざんすることができない物理的空間、たとえば、RAT関連プロセスまたは実行中のプロセス(RAT構成要素と呼ばれる)を通じてリモート証明(英語:Remote Attestation、略してRAT)を実施するモジュールによってのみアクセスすることができ、測定情報のベースライン値1を記憶するためのセキュア記憶空間として使用することができる物理的空間であり、別の例については、ユニット10のTPM内に含まれる記憶領域、たとえば、エンティティのTPMチップ内の記憶領域、またはユニット10内のソフトウェア分離領域(仮想トラステッドプラットフォームモジュール、英語:Virtual Trusted Platform Module、略してVTPMとも呼ばれる)であり、TPM内に含まれる記憶領域およびユニット10の他の記憶空間は、TrustZone技術などを使用することによって隔離され、TPM内に含まれる記憶領域内に記憶される測定情報2は、改ざんすることができないことが理解され得る。
このようにして、ユニット10は、ユニット20の測定情報2をローカルに記憶する。ユニット20に対してリモート証明を実行する必要がある場合、ユニット10は、ユニット20の測定情報2を直接ローカルに取得し得、Verifierと対話することによってユニット20の測定情報2を取得する必要はない。これは、ユニット10とVerifierとの間で交換されるデータの量を大幅に減少させ、Verifierの負荷を軽減し、複合デバイスに対するリモート証明効率をある程度まで改善する。
ステップ602を通じて、ユニット10は、ユニット10がユニット20に対して信用性証明を実行するための信頼できる基礎を提供するために、信用性証明が実行されるべきユニット20の測定情報2を取得し、ユニット10がユニット20に対して信用性証明を実行することを可能にすることが理解され得る。
ステップ61とステップ602とを実行する順序は、限定されないことが留意されるべきである。ステップ601は、ステップ602の前に実行され得、またはステップ602は、ステップ601の前に実行され得、またはステップ601およびステップ602は、同時に実行され得る。
ステップ603:ユニット10は、証明結果1を取得するために、測定情報1と測定情報2とに基づいて、ユニット20に対して信用性証明を実行する。
ユニット20の測定情報1と、測定情報1に対応する測定情報2とを取得した後、ユニット10は、測定情報1を測定情報2と比較し、例外が存在するかどうかを判定し、証明結果1を生成し得ることが理解され得る。
一例において、測定プロセスが決定的である場合、測定情報1は、PCR値1を含み得、測定情報2は、PCR参照値を含み得る。この場合において、ステップ603は、具体的には以下を含み得る。ユニット10は、比較を通じて、PCR値1がPCR参照値と一致するかどうかを判定し、証明結果1を生成する。PCR値1がPCR参照値と一致する場合、証明結果1は、ユニット20がユニット10による信用性証明を通じて信用できると判定されたことを示し、またはPCR値1がPCR参照値と一致しない場合、証明結果1は、ユニット20がユニット10による信用性証明を通じて信用できないと判定されたことを示す。
別の例において、測定プロセスが不確実である場合、測定情報1は、PCR値2と測定ログとを含み得、測定情報2は、ベースライン値を含み得る。この場合において、ステップ603は、具体的には以下を含み得る。ステップ1:ユニット10は、測定ログに基づいてPCR値3を計算する。ステップ2:ユニット10は、比較結果1を取得するために、比較を通じて、PCR値3がPCR値2と一致するかどうかを判定する。ステップ3:ユニット10は、比較結果2を取得するために、比較を通じて、測定ログ内のベースライン値が測定情報2内のベースライン値と一致するかどうかを判定する。ステップ4:比較結果1と比較結果2とに基づいて、証明結果1を生成する。比較結果1と比較結果2の両方が一致を示す場合、証明結果1は、ユニット20がユニット10による信用性証明を通じて信用できると判定されたことを示し、または比較結果1および比較結果2のうちの少なくとも1つが不一致を示す場合、証明結果1は、ユニット20がユニット10による信用性証明を通じて信用できないと判定されたことを示す。
証明結果1は、具体的には、ユニット20が信用できるかまたは信用できないかを表すために使用される情報を含み得、測定情報1と測定情報2とに基づいて信用性証明を実行するプロセスの比較情報をさらに含み得る。それに加えて、証明結果1は、Verifierが、ユニット20に対してユニット10によって実行された信用性証明が失敗した具体的な理由を知るように、ユニット20を信用できないものとした信用性証明プロセスのログをさらに含み得る。
ステップ604:ユニット10は、証明結果1をメッセージ1内に含め、メッセージ1をVerifierに送信する。
ステップ605:Verifierは、メッセージ1から証明結果1を取得する。
ユニット20の証明結果1を取得した後、ユニット10は、証明結果1に基づいて、ユニット20に対応するメッセージ1を生成し、メッセージ1をVerifierに送信し得ることが理解され得る。メッセージ1は、ユニット10が属する複合デバイス内のユニット20に対するユニット10の証明結果1を示すために使用される。特定の実装形態中、ユニット10によって送信されたメッセージ1を受信した後、Verifierは、メッセージ1を解析することによって証明結果1を取得し得る。
一例において、メッセージ1は、代替的に、測定要求メッセージ4に対する測定応答メッセージ2であり得る。この場合において、図10に示すように、測定応答メッセージ2の前の任意の時点において、本出願のこの実施形態は、以下をさらに含む。S61:Verifierは、測定要求メッセージ4をユニット10に送信し、測定要求メッセージ4は、複合デバイスに対して信用性証明を実行することを要求するために使用される。S62:ユニット10は、測定応答メッセージ2をVerifierにフィードバックする。この例において、測定要求メッセージ4は、以下の情報、すなわち、Nonce、PCRs、aikTypeなどを伝達する。測定要求メッセージ4がPCRを含まない場合、ユニット10は、すべてのPCR値を返す必要がある。測定要求メッセージ4は、定期的にトリガされ得、または手動構成を通じてトリガされ得る。測定応答メッセージ2は、以下の情報、すなわち、Nonce、aik、quote、PcrBanks、EventLogなどを伝達し得、ユニット20の識別情報1と証明結果1(Unit-RAResultとして表され得る)とをさらに伝達し得る。
別の例において、メッセージ1は、代替的に、測定結果通知メッセージであり得、ユニット20に対してユニット10によって信用性証明を実行した結果を通知するために使用される。メッセージ1において伝達される内容、および具体的な機能については、測定応答メッセージ2の関連する説明を参照されたい。
それに加えて、Verifierと通信する回数を減らし、ネットワークリソースを節約するために、複合デバイス内の他のすべてのユニットに関する証明結果を取得した後、ユニット10は、すべての証明結果に基づいてメッセージ1を生成し、メッセージ1をVerifierに送信し得る。メッセージ1は、ユニット10が属する複合デバイス内の他のユニットに対するユニット10の証明結果を示すために使用される。
このようにして、リモート証明が複合デバイスに対して実行される場合、複合デバイス内のユニット10は、複合デバイス内の別のユニット20に対して信用性証明を実行し、証明結果をVerifierに送信し得、別のユニット20の測定情報は、ユニット10を使用することによってVerifierに送信される必要はない。Verifierは、すべてのユニットに対して信用性証明を個別に実行する。これは、複合デバイスに対して信用性証明を実行するプロセスにおいて複合デバイスとVerifierとの間で交換されるデータの量を大幅に削減し、Verifierの負荷を軽減し、複合デバイスに対するリモート証明効率を改善する。
それに加えて、Verifierが複合デバイスのシステムの信用性を判定するためにユニット20の証明結果1を取得した後、本出願のこの実施形態は、以下をさらに含み得る。Verifierは、ユニット10に対して信用性証明を実行し、Verifierは、証明結果1をチェックし、複合デバイスのシステムの信用性を表すために使用される最終的な証明結果を生成する。図11を参照されたい。本出願のこの実施形態は、以下のステップ606からステップ609をさらに含み得る。
ステップ606:ユニット10は、ユニット10の測定情報3をVerifierに送信する。
ステップ607:Verifierは、証明結果2を取得するために、測定情報3に基づいて、ユニット10に対して信用性証明を実行する。
ステップ608:Verifierは、証明結果3を取得するためにメッセージ1をチェックする。
ステップ609:Verifierは、証明結果1と、証明結果2と、証明結果3とに基づいて証明結果4を生成し、証明結果4は、複合デバイスのシステムの信用性を表すために使用される。
ステップ606およびステップ607は、ステップ609の前に実行されればよく、たとえば、ステップ605の後に実行され得、またはステップ601の前に実行され得る。
ユニット10の測定情報3を取得した後、Verifierは、Verifier内に記憶されたユニット10の測定情報4を検索し得ることが理解され得る。ステップ607における検証プロセスについては、ステップ603におけるユニット20に対してユニット10によって信用性証明を実行するプロセスの説明を参照されたい。詳細については、本明細書では再度説明しない。
ステップ608について、ユニット10によって送信されたメッセージ1を受信するとき、Verifierは、証明結果1だけでなく、信用性証明プロセスのログおよびユニット20の署名も取得し得る。Verifierは、メッセージ1内の内容をチェックし得る。具体的には、一方において、Verifierは、メッセージ1に基づいてユニット20の署名を取得し、ユニット20の署名が正しいかどうかを判定し、チェック結果1を生成し得る。他方において、Verifierはまた、メッセージ1に基づいて、ユニット20に対してユニット10によって信用性証明を実行するプロセスのログを取得し、ユニット20に対してユニット10によって信用性証明を実行するプロセスが正確であるかどうかを判定し、チェック結果2を生成し得る。チェックプロセスは、ステップ603における信用性証明プロセスと同様である。具体的な説明については、ステップ603における対応する説明を参照されたい。この点に鑑み、Verifierは、チェック結果1とチェック結果2とに基づいて、証明結果3を生成し得る。
チェック結果1が、ユニット20の署名が正しいことを示し、チェック結果2が、ユニット20に対してユニット10によって信用性証明を実行するプロセスが正確であることを示す場合、証明結果3は、証明結果1に対してVerifierによって実行されたチェックが成功したことを示し、またはチェック結果1が、ユニット20の署名が正しくないことを示し、および/もしくはチェック結果2が、ユニット20に対してユニット10によって信用性証明を実行するプロセスが不正確であることを示す場合、証明結果3は、証明結果1に対してVerifierによって実行されたチェックが失敗したことを示す。
特定の実装形態中、Verifierが、証明結果1と、証明結果2と、証明結果3とを取得するとき、Verifierは、ステップ609を実行し得、すなわち、証明結果1と、証明結果2と、証明結果3とに基づいて証明結果4を生成し得る。証明結果4は、具体的には、複合デバイスが信用できるかまたは信用できないかを表すために使用される情報を含み得る。複合デバイスが信用できない場合、証明結果4は、複合デバイスが信用できない理由を表す関連情報をさらに含み得る。ある場合において、各証明結果1が、対応するユニット20が信用できることを示し、証明結果2が、ユニット10が信用できることを示し、証明結果3が、ユニット20の署名が正しく、ユニット20に対してユニット10によって信用性証明を実行するプロセスが正確であることを示す場合、証明結果4は、複合デバイスのシステムが信用できることを示す。別の場合において、以下の条件、すなわち、証明結果1が、ユニット20が信用できないことを示す、証明結果2が、ユニット10が信用できないことを示す、および証明結果3が、ユニット20の署名が不正確であるか、もしくはユニット20に対してユニット10によって信用性証明を実行するプロセスが不正確であることを示す、のうちの少なくとも1つが満たされる場合、証明結果4は、複合デバイスのシステムが信用できないことを示し、証明結果4は、複合デバイスのシステムが信用できない理由をさらに示し得る。たとえば、各証明結果1が、対応するユニット20が信頼できることを示し、証明結果2が、ユニット10が信用できることを示し、証明結果3が、ユニット20の署名が正しいが、ユニット20に対してユニット10によって信用性証明を実行するプロセスが不正確であることを示す場合、証明結果4は、複合デバイスのシステムが信用できないことを示すだけでなく、ユニット20に対してユニット10によって信用性証明を実行するプロセスが不正確であるので、複合デバイスのシステムが信用できないことも示す。
本出願のこの実施形態において、プロキシモードにおいて、複合デバイス内のユニット10は、複合デバイス内の別のユニット20に対してローカル信用性証明を実行し、証明結果1を取得した後、すべてのユニット20の証明結果1をVerifierに送信し得ることが知られ得る。Verifierは、複数のユニット20の測定情報を取得する必要はなく、各ユニット20に対して信用性証明を実行する必要はない。これは、Verifierの負荷を大幅に低減することができるだけでなく、複合デバイスとVerifierとの間で交換されるデータの量を削減し、ネットワークリソースを節約することもできる。さらに、Verifierは、ユニット10によって送信されたローカル証明結果をチェックし、ローカル証明結果に基づいて、複合デバイスのシステムの信用性の全体的な証明結果を生成し得る。すなわち、Verifierは、複合デバイスのシステムの信用性を決定するために、わずかな情報に基づいて簡単な検証プロセスを実行することによって、複合デバイスに対してリモート証明を実施し、複合デバイスに対して便利で、高速で、効果的なリモート証明を実施し、それによって、ネットワークの信頼性およびセキュリティを改善することができる。
図12は、本出願の実施形態による複合デバイスのための別のリモート証明方法の概略フローチャートである。図12を参照されたい。方法は、AttesterとVerifierとを含むネットワークに適用され、Attesterが複合デバイスであることが知られている。Attesterは、ユニット10とユニット20とを含む。ユニット10は、具体的には、図3中の複合デバイス300内のアクティブ状態にあるリーダユニット311であり得、ユニットセット20は、具体的には、図3中の複合デバイス300内のスタンバイ状態にあるリーダユニット312および補助ユニット321、322、...であり得、ユニット21は、スタンバイ状態にあるリーダユニット312および補助ユニット321、322、...のうちのいずれか1つであり得、ユニット22は、スタンバイ状態にあるリーダユニット312および補助ユニット321、322、...におけるユニット21以外の任意のユニットであり得る。リモート証明が複合デバイスに対して混合証明モードにおいて実行される場合、アクティブ状態にあるリーダユニット10がユニット21に対して信用性証明を実行し、Verifierがユニット22に対して信用性証明を実行する例を使用すると、方法は、具体的には、以下のステップ1201からステップ1207を含み得る。
ステップ1201:ユニット10およびVerifierは、ユニットセット20において、ユニット10がユニット21に対して信用性証明を実行し、Verifierがユニット22に対して信用性証明を実行することを決定する。
ステップ1202:ユニット10は、ユニットセット20内の各ユニットの測定情報1を取得し、測定情報1は、ユニット21の測定情報11とユニット22の測定情報12とを含む。
ステップ1203:ユニット10は、補助ユニット21の測定情報21を取得する。
ステップ1204:ユニット10は、証明結果5を取得するために、測定情報11と測定情報21とに基づいて、ユニット21に対して信用性証明を実行する。
ステップ1205:ユニット10は、測定情報12をVerifierに送信する。
ステップ1206:Verifierは、証明結果6を取得するために、測定情報12と測定情報22とに基づいて、ユニット22に対して信用性証明を実行する。
ステップ1207:ユニット10は、証明結果5をメッセージ2内に含め、メッセージ2をVerifierに送信する。
ステップ1208:Verifierは、メッセージ2から証明結果5を取得し、証明結果5と証明結果6とを記録する。
ステップ1201について、可能な実装形態において、ユニットの識別情報がユニット10において事前に構成され得る。識別情報は、ユニット21の識別情報11を含み、ユニット10が混合証明モードにおいて信用性証明を実行する必要があるユニットのセットを示し、セットは、ユニット21を含む。同様に、ユニットの識別情報も、Verifierにおいて事前設定される。識別情報は、ユニット22の識別情報12を含み、Verifierが混合証明モードにおいて信用性証明を実行する必要あるユニットのセットを示し、セットは、ユニット22を含む。このようにして、混合証明モードにおいて、ユニット10およびVerifierは、追加のネゴシエーションを実行することなく、ユニット10およびVerifierが信用性証明を実行することを担当する補助ユニットを決定することができ、それによって、リモート証明のためのネゴシエーション時間を節約し、この方式においてリモート証明をより効率的にする。
別の可能な実装形態において、Verifierおよびユニット10は、Verifierおよびユニット10が信用性証明を実行することを担当するそれぞれのユニットを決定するために、別個のネゴシエーションを実行する。図13に示すように、方法は、具体的には、以下を含み得る。S71:ユニット10は、要求メッセージ3をVerifierに送信し、要求メッセージ3は、Verifierからの証明許可を要求するために使用される。S72:Verifierは、応答メッセージ3をユニット10にフィードバックし、応答メッセージ3は、決定された証明許可を示すために使用される。S73:ユニット10は、応答メッセージ3内の証明許可に基づいて、ユニット21に対して信用性証明を実行することを決定する。証明許可は、混合証明モードにおいて、Verifierが、複合デバイス内のすべてのユニットにおいて、ユニット10が信用性証明を実行することができるユニットのセットを指定するように要求されることを意味し得る。ユニット10は、証明許可に基づいて、ユニット10が信用性証明を実行することを担当する特定のユニットを知り得、ユニットは、ユニット21を含み得る。
要求メッセージ3は、Verifierが、ユニットセット20から、ユニット10が信用性証明を実行すべきサブセットを決定し、サブセットがユニット21を含むように、複合デバイス内のユニットセット20の識別情報1を伝達し得ることが理解され得る。代替的に、要求メッセージ3は、ユニット10が信用性証明を実行すべきサブセットをVerifierが決定するための参照を提供するために、ユニット10によって決定された、ユニット10が信用性証明を実行すべき候補ユニットセット20'を伝達し得る。応答メッセージ3において示されるサブセットは、候補ユニットセット20'の範囲に限定されない。ある場合において、サブセット内に含まれるユニットは、候補ユニットセット20'内のすべてのまたはいくつかのユニットであり得る。別の場合において、サブセット内のユニットは、代替的に、候補ユニットセット20'内のユニット以外のユニットを含み得る。応答メッセージ3がユニットの識別情報を伝達しない場合、ユニット10が他のすべてのユニットに対して信用性証明を実行することを指示されていると見なされ得ることが留意されるべきである。この場合における具体的な実装形態については、図6に示す実施形態における関連する説明を参照されたい。
この実装形態において、ユニット10は、代替的に、証明許可を決定し得、すなわち、本出願のこの実施形態において、具体的には、図13中のステップの実行体が代替的に交換され得、これは、具体的には、以下を含み得ることが留意されるべきである。S71':Verifierは、要求メッセージ3'をユニット10に送信し、要求メッセージ3'は、ユニット10からの証明許可を要求するために使用される。S72':ユニット10は、応答メッセージ3'をVerifierにフィードバックし、応答メッセージ3'は、決定された証明許可を示すために使用される。S73':Verifierは、応答メッセージ3'内の証明許可に基づいて、ユニット22に対して信用性証明を実行することを決定する。具体的な説明については、図13における前述の具体的な説明を参照されたい。
ある場合において、混合証明モードが使用されると決定されたことを条件として、1つの対象のネゴシエーションが実行され、ユニット10およびVerifierが信用性証明を実行することを担当するそれぞれのユニットセットが決定されることが留意されるべきである。別の場合において、代替的に、1つのネゴシエーションのみが実行され得、その後、証明許可を使用することによってリモート証明が混合証明モードにおいて実行されるように、決定された証明許可は、記憶される。さらに別の場合において、ネゴシエーションは、定期的に実行され得、すなわち、ネゴシエーション期間(たとえば、7日)が事前設定され、Verifierおよびユニット10がネゴシエーション期間中に複合デバイス内のユニットに対してリモート証明を実行するときの分業の基準として、ユニット10およびVerifierが信用性証明を実行することを担当するそれぞれのユニットセットを決定するために、1つのネゴシエーションが各ネゴシエーション期間において実行される。
さらに別の可能な実装形態において、リモート証明モードがネゴシエーションを通じて決定される場合、Verifierおよびユニット10が混合証明モードにおいて信用性証明を実行することを担当するそれぞれのユニットは、代替的に、ネゴシエーションを通じて決定され得る。具体的な実装形態については、図15aおよび図15bに示す以下の実施形態における関連する説明を参照されたい。
ステップ1202からステップ1208の具体的な実装形態については、図6に示す前述の実施形態における関連する説明を参照されたい。
ステップ1203およびステップ1204およびステップ1205およびステップ1206は、同時に実行され得、またはステップ1203およびステップ1204は、ステップ1205およびステップ1206の前に実行され得、またはステップ1205およびステップ1206は、ステップ1203およびステップ1204の前に実行され得ることが留意されるべきである。ステップ1207は、ステップ1204の後に実行されればよく、すなわち、ステップ1204とステップ1205との間に実行され得、または図12に示す場所において実行され得る。
それに加えて、Verifierが証明結果5と証明結果6とを記録した後、複合デバイスのシステムの信用性を判定するために、本出願のこの実施形態は、以下をさらに含み得る。Verifierは、ユニット10に対して信用性証明を実行し、Verifierは、証明結果5をチェックし、複合デバイスのシステムの信用性を表すために使用される最終的な証明結果を生成する。図14を参照されたい。本出願のこの実施形態は、以下のステップ1209からステップ1212をさらに含み得る。
ステップ1209:ユニット10は、ユニット10の測定情報3をVerifierに送信する。
ステップ1210:Verifierは、証明結果2を取得するために、測定情報3に基づいて、ユニット10に対して信用性証明を実行する。
ステップ1211:Verifierは、証明結果3を取得するために、メッセージ2をチェックする。
ステップ1212:Verifierは、証明結果5と、証明結果6と、証明結果2と、証明結果3とに基づいて、証明結果7を生成し、証明結果7は、複合デバイスのシステムの信用性を表すために使用される。
ステップ1209およびステップ1210は、ステップ1212の前に実行されればよく、たとえば、ステップ1208の後に実行され得、またはステップ1201の前に実行され得る。
ステップ1209からステップ1212の実装形態については、図11におけるステップ606からステップ609の関連する説明を参照することが留意されるべきである。
Verifierが、証明結果5と、証明結果6と、証明結果2と、証明結果3とを取得すると、Verifierは、ステップ1212を実行し得、すなわち、証明結果5と、証明結果6と、証明結果2と、証明結果3とに基づいて、証明結果7を生成し得ることが理解され得る。証明結果7は、具体的には、複合デバイスが信用できるか信用できないかを表すために使用される情報を含み得る。複合デバイスが信用できない場合、証明結果7は、複合デバイスが信用できない理由を表す関連情報をさらに含み得る。ある場合において、証明結果5が、ユニット10が信用性証明を実行する各ユニット21が信用できることを示し、証明結果6が、Verifierが信用性証明を実行する各ユニット22が信用できることを示し、証明結果2が、ユニット10が信用できることを示し、証明結果3が、ユニット21の署名が正しく、ユニット21に対してユニット10によって信用性証明を実行するプロセスが正確であることを示す場合、証明結果7は、複合デバイスのシステムが信用できることを示す。別の場合において、以下の条件、すなわち、証明結果5が、ユニット21が信用できないことを示す、証明結果6が、ユニット22が信用できないことを示す、証明結果2が、ユニット10が信用できないことを示す、証明結果3が、ユニット21の署名が正しくないか、またはユニット21に対してユニット10によって信用性証明を実行するプロセスが不正確であることを示す、のうちの少なくとも1つが満たされた場合、証明結果7は、複合デバイスのシステムが信用できないことを示し、証明結果7は、複合デバイスのシステムが信用できない理由をさらに示し得る。たとえば、証明結果5が、ユニット10が信用性証明を実行するユニット21内に信用できないユニットが存在することを示し、証明結果6が、各ユニット22が信用できることを示し、証明結果2が、ユニット10が信用できることを示し、証明結果3が、ユニット20の署名が正しく、ユニット20に対してユニット10によって信用性証明を実行するプロセスが正確であることを示す場合、証明結果7は、複合デバイスのシステムが信用できないことを示すだけでなく、ユニット10が、信用できないユニットが存在することを検証したので、複合デバイスのシステムが信用できないことも示す。
本出願のこの実施形態において、混合証明モードにおいて、複合デバイス内のユニット10が、複合デバイス内のいくつかのユニットに対してローカル信用性証明を実行し得、Verifierが、他のユニットに対して信用性証明を実行することが知られ得る。このようにして、Verifierは、複合デバイス内のすべてのユニットに対して信用性証明を実行する必要はない。これは、Verifierの負荷をある程度まで軽減し、複合デバイスとVerifierとの間で交換されるデータの量を削減し、ネットワークリソースを節約することができる。さらに、Verifierは、ユニット10によって送信されたローカル証明結果をチェックし、ローカル証明結果に基づいて、複合デバイスのシステムの信用性の全体的な証明結果を生成し得る。すなわち、Verifierは、複合デバイスのシステムの信用性を決定するために、わずかな情報に基づいて簡単な検証プロセスを実行することによって、複合デバイスに対してリモート証明を実施し、複合デバイスに対して便利で、高速で、効果的なリモート証明を実施し、それによって、ネットワークの信頼性およびセキュリティを改善することができる。
それに加えて、本出願のこの実施形態における複合デバイスのためのリモート証明方法において、複数のリモート証明モードが使用される。この場合において、本出願のこの実施形態は、リモート証明モードを決定するプロセスをさらに含む。特定の実装形態中、リモート証明モードを決定するための方法は、限定はしないが、以下の4つのタイプを含む。
第1の例において、リモート証明モードを決定するために、具体的には、リモート証明モードは、複合デバイスおよびVerifierにおいて手動で事前構成され得る。この場合において、図6または図12に示す実施形態に対応するリモート証明方法は、構成されたリモート証明モードに基づいて実行され得る。リモート証明モードが切り替えられる必要がある場合、新しいリモート証明モードが再構成され得、新たに構成されたリモート証明モードは、複合デバイスに対してリモート証明を実行するために使用される。
第2の例において、リモート証明モードは、代替的に、サードパーティデバイス(たとえば、コントローラまたはネットワーク管理サーバ)によって決定され、リモート証明モードにおいて複合デバイスに対してリモート証明を実行することをVerifierおよびユニット10に示すために、Verifierおよびユニット10において構成され得る。ある場合において、サードパーティデバイスは、決定されたリモート証明モードをVerifierおよびユニット10に別々に送達し得る。別の場合において、サードパーティデバイスは、代替的に、決定されたリモート証明モードをVerifierに送達し得、次いで、Verifierは、決定されたリモート証明モードをユニット10に送信する。さらに別の場合において、サードパーティデバイスは、代替的に、決定されたリモート証明モードをユニット10に送達し得、次いで、ユニット10は、決定されたリモート証明モードをVerifierに送信する。NETCONF内のメッセージは、サードパーティデバイスとVerifierとの間、サードパーティデバイスとユニット10との間、およびVerifierとユニット10との間で、決定されたリモート証明モードを送達するために使用され得る。
第3の例において、リモート証明モードは、事前に決定され得ないが、Verifierおよびユニット10がリモート証明を実行するときに交換されるメッセージを使用することによって決定され得る。たとえば、ユニット10によってVerifierに送信されたメッセージが、他のすべてのユニットの信用性証明結果を伝達する場合、プロキシモードがユニット10とVerifierとの間で使用されると考えられ得、プロキシモードが、ユニット10とVerifierとの間のリモート証明モードとして決定される。別の例について、ユニット10によってVerifierに送信されたメッセージが、他のすべてのユニットの測定情報を伝達する場合、リレーモードがユニット10とVerifierとの間で使用されると考えられ得、リレーモードが、ユニット10とVerifierとの間のリモート証明モードとして決定される。さらに別の例について、ユニット10によってVerifierに送信されたメッセージが、いくつかのユニットセットの測定情報と、他のユニットの信用性証明結果とを伝達する場合、混合証明モードがユニット10とVerifierとの間で使用されると考えられ得、混合証明モードが、ユニット10とVerifierとの間のリモート証明モードとして決定される。
第4の例において、本出願の実施形態は、リモート証明モードのためのネゴシエーション方法をさらに提供する。この方法において、Verifierとユニット10との間で使用されるリモート証明モードは、ネゴシエーションを通じて決定される。方法は、AttesterとVerifierとを含むネットワークに適用され、Attesterが複合デバイスであり、Attesterがユニット10とユニット20とを含むことが知られている。ある場合において、図15aに示すように、リモート証明モードは、具体的には、Verifierによって決定され得る。別の場合において、図15bに示すように、リモート証明モードは、代替的に、ユニット10によって決定され得る。
図15aは、本出願の実施形態による、リモート証明モードのためのネゴシエーション方法のシグナリングフローチャートである。リモート証明モードのためのネゴシエーション方法は、具体的には以下のステップを含み得る。
ステップ15a1:ユニット10は、モードネゴシエーション要求メッセージ1をVerifierに送信する。
ステップ15a2:Verifierは、モードネゴシエーション応答メッセージ1をユニット10にフィードバックする。
ステップ15a3:ユニット10は、モードネゴシエーション応答メッセージ1に基づいてリモート証明モードを決定する。
ある場合において、モードネゴシエーション要求メッセージ1は、候補リモート証明モードを伝達し得、候補リモート証明モードは、以下のモード、すなわち、リレーモード、プロキシモード、および混合証明モードのうちの少なくとも1つであり得ることが理解され得る。別の場合において、モードネゴシエーション要求メッセージ1は、いかなる候補リモート証明モードも伝達しない場合がある。この場合において、ユニット10が任意のリモート証明モードをサポートすることがデフォルトで見なされ得、Verifierは、リモート証明モードを完全に決定する。
Verifierについて、モードネゴシエーション要求メッセージ1を受信した後、Verifierは、使用されるべきリモート証明モードを決定する必要がある。ある場合において、モードネゴシエーション要求メッセージ1が候補リモート証明モードを伝達する場合、Verifierは、候補リモート証明モードから、使用されるべきリモート証明モードを決定し得、またはVerifierは、候補リモート証明モードを考慮することなく、使用されるべきリモート証明モードを独立して決定し得る。別の場合において、モードネゴシエーション要求メッセージ1が候補リモート証明モードを伝達しない場合、Verifierは、要件とVerifierの能力とに基づいて、使用されるべきリモート証明モードを決定し得る。
使用されるべきリモート証明モードを決定した後、Verifierは、使用されるべきリモート証明モードに基づいてモードネゴシエーション応答メッセージ1を生成し、モードネゴシエーション応答メッセージ1をユニット10にフィードバックし得る。通常、ユニット10は、モードネゴシエーション応答メッセージ1を解析することによって、使用されるべきリモート証明モードを決定する。
候補モードが混合証明モードを含む場合、リモート証明によって消費される時間を短縮し、リモート証明効率を改善するために、モードネゴシエーション要求メッセージ1は、ユニット10が信用性証明を実行すべき候補ユニットセット20'をさらに伝達し得ることが留意されるべきである。同様に、Verifierが、使用されるべきリモート証明モードが混合証明モードであると決定した場合、モードネゴシエーション応答メッセージ1は、Verifierによって決定された、ユニット10が信用性証明を実行することを担当するユニットセットをさらに伝達し得、ユニットセットは、ユニット21を含む。
このようにして、図15aにおいて提供されるネゴシエーション方式において、Verifierは、Verifierと複合デバイスとの間で使用されるべきリモート証明モードを決定し、リモート証明モードがユニット10とVerifierとの間で決定されるように、複合デバイス内のユニット10にリモート証明モードを通知し得る。このようにして、図6または図12に示すリモート証明方法は、Verifierと複合デバイスとの間で決定的に実行され得、それによって、秩序正しい方式で複合デバイスに対して効率的なリモート証明を実行するための前提条件を提供する。
図15bは、本出願の実施形態による、リモート証明モードのための別のネゴシエーション方法のシグナリングフローチャートである。リモート証明モードのためのネゴシエーション方法は、具体的には以下のステップを含み得る。
ステップ15b1:Verifierは、モードネゴシエーション要求メッセージ2をユニット10に送信する。
ステップ15b2:ユニット10は、モードネゴシエーション応答メッセージ2をVerifierにフィードバックする。
ステップ15b3:Verifierは、モードネゴシエーション応答メッセージ2に基づいてリモート証明モードを決定する。
この実施形態において、図15aにおけるステップの実行体のみが交換され、ユニット10は、ユニット10とVerifierとの間で使用されるべきリモート証明モードを決定することが留意されるべきである。したがって、本出願のこの実施形態における具体的な実装形態および関連する説明については、図15aにおける関連する説明を参照されたい。
このようにして、図15bにおいて提供されるネゴシエーション方式において、複合デバイス内のユニット10は、ユニット10とVerifierとの間で使用されるべきリモート証明モードを決定し、リモート証明モードがユニット10とVerifierとの間で決定されるように、Verifierにリモート証明モードを通知し得る。このようにして、図6または図12に示すリモート証明方法は、Verifierと複合デバイスとの間で決定的に実行され得、それによって、秩序正しい方式において複合デバイスに対して効率的なリモート証明を実行するための前提条件を提供する。
リモート証明モードのための実際のネゴシエーションプロセスにおいて、図15aおよび図15bに示す実装形態に加えて、リモート証明モードは、ユニット10とVerifierとの間の複数の複雑な対話を通じてさらにネゴシエートされ得ることが留意されるべきである。実際の通信プロセスにおける複数の対話を通じてリモート証明モードをネゴシエートする際の可能な実装形態をより明確に説明するために、以下は、図16aと図16bとを例として使用することによって、ユニット10とVerifierとの間でリモート証明モードをネゴシエートするプロセスにおいて起こり得る複数のケースについて説明する。
図16aを参照されたい。Verifierが使用されるべき対象のリモート証明モードを決定する場合、本出願のこの実施形態において提供されるリモート証明モードのためのネゴシエーション方法は、たとえば、以下のステップを含み得る。
ステップ16a1:ユニット10は、モードネゴシエーション開始要求メッセージ1をVerifierに送信する。
モードネゴシエーション開始要求メッセージ1は、リモート証明モードネゴシエーションの具体的な内容を含まず、ユニット10がVerifierとのリモート証明モードのネゴシエーションを開始することを期待していることをVerifierに通知し、リモート証明モードのネゴシエーションを開始するようにVerifierに要求するためにのみ使用されることが理解され得る。
ステップ16a2:Verifierは、モードネゴシエーション開始応答メッセージ1をユニット10に送信する。
モードネゴシエーション開始応答メッセージ1は、Verifierがユニット10とのリモート証明モードのネゴシエーションを開始することに同意するかどうかを示すために使用されることが理解され得る。yesである場合、以下のステップが実行され、そうでない場合、ネゴシエーションは、終了し、後続のステップは、実行されない。
ステップ16a1およびステップ16a2は、この実施形態においてオプションで実行され得るステップであることが留意されるべきである。
ステップ16a3:ユニット10は、モードネゴシエーション要求メッセージ3をVerifierに送信する。
モードネゴシエーション要求メッセージ3は、ユニット10によって推奨される候補リモート証明モード1を含むことが理解され得る。候補リモート証明モード1は、ユニット10によって最も望まれるリモート証明モードであり得、またはユニット10によってサポートされる複数のリモート証明モードであり得る。
モードネゴシエーション要求メッセージ3が複数の候補リモート証明モード1を伝達する場合、モードネゴシエーション要求メッセージ3は、各候補リモート証明モード1に対応する使用優先度をさらに含み得る。使用優先度は、Verifierの負荷状態と、複合デバイス内の補助ユニットの実際の状態とに基づいて、候補リモート証明モード1ごとに柔軟に定義され得る。たとえば、前から順に、プロキシモード、混合証明モード、およびリレーモードの3つの候補リモート証明モード1が、モードネゴシエーション要求メッセージ3内に含まれると仮定する。この場合において、降順における候補リモート証明モード1に対応する利用優先度は、プロキシモード>混合証明モード>リレーモードであり得、またはプロキシモード<混合証明モード<リレーモードであり得る。特定の実装形態中、使用優先度は、別個の優先度フィールドを使用することによって示され得、優先度フィールド内の値タイプは、整数値タイプ(たとえば、より大きい数字がより高い使用優先度を示し、またはより大きい数字がより低い使用優先度を示す)、文字列タイプなどであり得る。
ステップ16a4:Verifierは、候補リモート証明モード1内の対象のリモート証明モード0を使用することに同意するかどうかを決定する。yesである場合、ステップ16a5が実行され、そうでない場合、以下のプロセス、すなわち、ステップ16a6、ステップ16a7からステップ16a9、またはステップ16a10からステップ16a12のうちの任意の1つが実行され得る。
ステップ16a5:Verifierは、ネゴシエーションの成功を示すために、モードネゴシエーション応答メッセージ3をユニット10に送信する。
決定された対象のリモート証明モード0を表すために、モードネゴシエーション応答メッセージ3は、ネゴシエーション結果フィールドを含み得る。ネゴシエーション結果がネゴシエーションの成功であることを示すことに加えて、フィールドの値は、Verifierが使用することに同意するリモート証明モード0を示すためにさらに使用され得る。
モードネゴシエーション要求メッセージ3内の候補リモート証明モード1が対象のリモート証明モード0のみを含む場合、モードネゴシエーション応答メッセージ3内のネゴシエーション結果フィールドの値は、ネゴシエーション結果がネゴシエーションの成功であることを示すためにのみ使用され得、Verifierが使用することに同意するリモート証明モード0を示す必要はないことが留意されるべきである。
Verifierが、後続のリモート証明のために候補リモート証明モード1を使用することに同意しない場合、ネゴシエーションは、失敗したと見なされる。この場合において、以下の3つの可能な実装形態が含まれ得る。
可能な実装形態において、以下のステップ16a6が実行され得る。
ステップ16a6:Verifierは、モードネゴシエーション応答メッセージ4をユニット10に送信する。
モードネゴシエーション応答メッセージ4は、ネゴシエーション結果フィールドを伝達する。ネゴシエーション結果がネゴシエーションの失敗を示すことに加えて、ネゴシエーション結果フィールドの値は、Verifierによって推奨されるリモート証明モード2を示すためにさらに使用され得る。
ユニット10がモードネゴシエーション応答メッセージ4を受信した後、ユニット10がリモート証明モード2に同意した場合、ネゴシエーションは、成功したと見なされ、リモート証明モード2は、リモート証明のために使用されることが理解され得る。Verifierについて、ステップ16a6の後に新しいモードネゴシエーション要求メッセージが受信されない場合も、ネゴシエーションが成功したと見なされ、リモート証明モード2は、後続のリモート証明のために使用される。
別の可能な実装形態において、以下のステップ16a7からステップ16a9が実行され得る。
ステップ16a7:Verifierは、ネゴシエーションの失敗を示すために、モードネゴシエーション応答メッセージ5をユニット10に送信する。
モードネゴシエーション応答メッセージ5は、ネゴシエーション結果フィールドを伝達し、ネゴシエーション結果フィールドの値は、ネゴシエーション結果がネゴシエーションの失敗であることを示すためにのみ使用され得る。モードネゴシエーション応答メッセージ5は、特定のリモート証明モードの内容を含まなくてよく、前のネゴシエーションが失敗したことをユニット10に通知するためにのみ使用される。
ステップ16a8:ユニット10は、モードネゴシエーション要求メッセージ4をVerifierに送信する。
モードネゴシエーション要求メッセージ4は、ユニット10によって新たに提案され、推奨される候補リモート証明モード1'を含むことが理解され得る。
ステップ16a9:Verifierは、モードネゴシエーション応答メッセージ6をユニット10に送信し、メッセージは、候補リモート証明モード1'から決定された対象のリモート証明モード0'を伝達し、ネゴシエーションの成功を示すために使用される。
ステップ16a8およびステップ16a9の関連する説明については、ステップ16a3からステップ16a5の関連する説明を参照することが留意されるべきである。
さらに別の可能な実装形態において、以下のステップ16a10からステップ16a12が実行され得る。
ステップ16a10:Verifierは、ネゴシエーションの失敗を示すために、モードネゴシエーション応答メッセージ7をユニット10に送信する。
モードネゴシエーション応答メッセージ7は、ネゴシエーション結果フィールドを伝達する。ネゴシエーション結果がネゴシエーションの失敗であることを示すことに加えて、ネゴシエーション結果フィールドの値は、Verifierによって推奨されるリモート証明モード3を示すためにさらに使用され得る。
ステップ16a11:ユニット10は、モードネゴシエーション要求メッセージ5をVerifierに送信する。
モードネゴシエーション要求メッセージ5は、Verifierによって推奨されるリモート証明モード3を参照することによってユニット10によって新たに提案され、推奨された候補リモート証明モード1"を含むことが理解され得る。
ステップ16a12:Verifierは、モードネゴシエーション応答メッセージ8をユニット10に送信し、メッセージは、候補リモート証明モード1"から決定された対象のリモート証明モード0"を伝達し、ネゴシエーションの成功を示すために使用される。
ステップ16a11およびステップ16a12の関連する説明については、ステップ16a3からステップ16a5の関連する説明を参照することが留意されるべきである。
このようにして、第1のリモート証明モードネゴシエーションが失敗した後、Verifierが、Verifierとユニット10の両方が使用することを同意する対象のリモート証明モードを決定するまで、リモート証明モードネゴシエーションは、前述の3つの特定の実装形態において継続され得る。これは、秩序正しい方式において本出願のこの実施形態において提供される後続のリモート証明を実行するための前提条件を提供する。
オプションで、本出願のこの実施形態は、以下のステップをさらに含み得る。
ステップ16a13:ユニット10は、モードネゴシエーション手順が終了することをVerifierに通知するために、モードネゴシエーション終了要求メッセージ1をVerifierに送信する。
ステップ16a14:Verifierは、モードネゴシエーション終了応答メッセージ1をユニット10に返す。
モードネゴシエーション終了要求メッセージ1は、現在のネゴシエーションのネゴシエーション結果、たとえば、ネゴシエーションの成功またはネゴシエーションの失敗を含み得る。ネゴシエーション結果がネゴシエーションの成功である場合、モードネゴシエーション終了応答メッセージ1は、ネゴシエーションを通じて決定された対象のリモートモードをさらに含み得、またはネゴシエーションを通じて決定された対象のリモートモードと、ユニット10が信用性証明を実行する補助ユニット21の識別情報11とを含み得る。Verifierは、比較結果を取得し、比較結果をモードネゴシエーション終了応答メッセージ1内に含めるために、モードネゴシエーション終了要求メッセージ1内の内容に基づいて、ユニット10によって送信されたネゴシエーション結果などの関連情報が、Verifierによって決定されたネゴシエーション結果などの関連情報と一致するかどうかを判断し得る。比較結果が、Verifierおよびユニット10がネゴシエーション結果などの関連情報について互いに一致したことを示す場合、ネゴシエーションは、成功したと見なされ、または比較結果が、Verifierおよびユニット10がネゴシエーション結果などの関連情報について互いに一致しなかったことを示す場合、ネゴシエーションは、失敗したと見なされる。
ステップ16a1からステップ16a14を通じて、Verifierは、ネゴシエーションを通じて、複合デバイスのリモート証明プロセスにおいて使用されるリモート証明モードを決定することが知られ得る。これは、秩序正しい方式において本出願のこの実施形態において提供されるリモート証明方法のためのデータ基準を提供する。
図16bを参照されたい。ユニット10が使用されるべき対象のリモート証明モードを決定する場合、本出願のこの実施形態において提供されるリモート証明モードのためのネゴシエーション方法は、たとえば、以下のステップを含み得る。
ステップ16b1:Verifierは、モードネゴシエーション開始要求メッセージ2をユニット10に送信する。
ステップ16b2:ユニット10は、モードネゴシエーション開始応答メッセージ2をVerifierに送信する。
ステップ16b1およびステップ16b2は、本実施形態においてオプションで実行され得るステップであることが留意されるべきである。
ステップ16b3:Verifierは、モードネゴシエーション要求メッセージ6をユニット10に送信する。
ステップ16b4:ユニット10は、候補リモート証明モード4内の対象のリモート証明モード0を使用することに同意するかどうかを決定する。yesである場合、ステップ16b5が実行され、そうでない場合、以下のプロセス、すなわち、ステップ16b6、ステップ16b7からステップ16b9、またはステップ16b10からステップ16b12のうちの任意の1つが実行され得る。
ステップ16b5:ユニット10は、ネゴシエーションの成功を示すために、モードネゴシエーション応答メッセージ9をVerifierに送信する。
ユニット10が後続のリモート証明のために候補リモート証明モード1を使用することに同意しない場合、ネゴシエーションは、失敗したと見なされる。この場合において、以下の3つの可能な実装形態が含まれ得る。
可能な実装形態において、以下のステップ16b6が実行され得る。
ステップ16b6:ユニット10は、モードネゴシエーション応答メッセージ10をVerifierに送信し、メッセージは、推奨されるリモート証明モード5を伝達する。
別の可能な実装形態において、以下のステップ16b7からステップ16b9が実行され得る。
ステップ16b7:ユニット10は、ネゴシエーションの失敗を示すために、モードネゴシエーション応答メッセージ11をVerifierに送信する。
ステップ16b8:Verifierは、モードネゴシエーション要求メッセージ7をユニット10に送信し、メッセージは、Verifierによって新たに提案され、推奨される候補リモート証明モード4'を伝達する。
ステップ16b9:ユニット10は、モードネゴシエーション応答メッセージ12をVerifierに送信し、メッセージは、候補リモート証明モード4'から決定された対象のリモート証明モード0'を伝達し、ネゴシエーションの成功を示すために使用される。
さらに別の可能な実装形態において、以下のステップ16b10からステップ16b12が実行され得る。
ステップ16b10:ユニット10は、ネゴシエーションの失敗を示し、ユニット10によって推奨されるリモート証明モード6を提供するために、モードネゴシエーション応答メッセージ13をVerifierに送信する。
ステップ16b11:Verifierは、モードネゴシエーション要求メッセージ8をユニット10に送信し、メッセージは、Verifierによって新たに提案され、推奨される候補リモート証明モード4"を伝達する。
ステップ16b12:ユニット10は、モードネゴシエーション応答メッセージ14をVerifierに送信し、メッセージは、候補リモート証明モード1"から決定された対象のリモート証明モード0"を伝達し、ネゴシエーションの成功を示すために使用される。
オプションで、本出願のこの実施形態は、以下のステップをさらに含み得る。
ステップ16b13:Verifierは、モードネゴシエーション手順が終了することをユニット10に通知するために、モードネゴシエーション終了要求メッセージ2をユニット10に送信する。
ステップ16b14:ユニット10は、モードネゴシエーション終了応答メッセージ2をVerifierに返す。
ステップ16b1からステップ16b14の実装形態および関連する説明については、図16aにおけるステップ16a1からステップ16a14を参照することが留意されるべきである。詳細については、本明細書では再度説明しない。
ステップ16b1からステップ16b14を通じて、複合デバイス内のユニット10は、ネゴシエーションを通じて、複合デバイスのリモート証明プロセスにおいて使用されるリモート証明モードを決定することが知られ得る。これは、秩序正しい方式において本出願のこの実施形態において提供されるリモート証明方法のためのデータ基準を提供する。
それに加えて、複合デバイスに対する信用性証明をトリガする方式は、具体的には以下を含み得る。方式1:ユニット10は、トリガ要求1をVerifierに定期的に送信し得、トリガ要求1は、複合デバイスに対して信用性証明を実行するようにVerifierを定期的にトリガするために使用される。たとえば、ユニット10は、ユニット10が配置される複合デバイスに対する1回のリモート証明を開始するようにVerifierをトリガするために、トリガ要求1を生成し、トリガ要求1を2時間ごとにVerifierに送信する。方式2:ユニット10は、代替的に、イベントの発生に基づいてトリガ要求2をVerifierに送信し得、トリガ要求2は、複合デバイスに対して信用性証明を実行するようにVerifierをトリガするために使用され、イベントは、具体的には、以下のケース、すなわち、制御プレーンのアクティブ/スタンバイの切替え、転送プレーンの更新、またはコマンドラインの実行のうちの少なくとも1つを含み得る。
一例において、複数のリーダユニットを含む複合デバイスについて、アクティブ状態にあるリーダユニットが故障しているので、複合デバイスが正常に使用され得ることを保証するために、スタンバイ状態にあるリーダユニットの状態がアクティブ状態に切り替えられ得る。それに加えて、正常に動作することができるリーダユニットは、利用できないリーダユニットを引き継ぐ。このプロセスは、制御プレーンのアクティブ/スタンバイの切替えイベントの発生として要約され得る。前述の実施形態におけるユニット10は、現在アクティブ状態にあるすべてのリーダユニットであることが理解され得る。
別の例において、補助ユニットは、複合デバイスのサービス要件に基づいて、いつでも新たに追加または交換され得る。たとえば、ルータのパフォーマンスを改善するために、新しい転送ボードがルータに挿入され、または元の転送ボード1が転送ボード1'に交換される。このプロセスは、転送プレーンの更新イベントとして要約され得る。
さらに別の例において、Verifierへのトリガ要求2の送信をトリガし、1回のリモート証明を開始するようにVerifierをトリガするために、実際の要件に基づいて、コマンドラインにおいて命令がさらに入力および実行され得る。このプロセスは、コマンドラインの実行イベントの発生として要約され得る。
前述の3つの例におけるイベントは、ユニット10によって感知され得、前述のイベントの発生を感知したとき、ユニット10は、トリガ要求2を生成し、トリガ要求2をVerifierに送信し得ることが理解され得る。
現在、リモート証明は、通常、Verifierによって開始される。証明対象のAttesterは、Verifierが要求を開始した後にのみ、リモート証明を受動的に実行することができる。この場合において、複合デバイスおよびネットワークのセキュリティを保証するために、前述のイベントが複合デバイスにおいて発生した後に、信用性証明が、イベントが発生した後に遅れずに複合デバイスに対して実行され得ることを保証する。本出願のこの実施形態において、複合デバイス内のユニットには、リモート証明を能動的に開始する機能がさらに割り当てられる。
いくつかの可能な実装形態において、制御プレーンのアクティブ/スタンバイの切替えイベントが複合デバイスにおいて発生したとき、すなわち、アクティブ状態にあるリーダユニット10が利用できない場合、リーダユニット11は、スタンバイ状態からアクティブ状態に切り替わり、作業を継続するためにリーダユニット10を引き継ぐ。この場合において、リーダユニット11は、Verifierに対して1回のリモート証明を能動的に開始し得る。
一例において、図17aに示すように、本出願の実施形態は、リモート証明方法を提供する。方法は、複合デバイスに適用され、複合デバイスは、リーダユニット10およびリーダユニット11に加えて、補助ユニット20をさらに含み、方法は、具体的には以下のステップを含み得る。
ステップ17a1:リーダユニット11は、証明結果8を取得するために、図6または図12に示す前述の実施形態に従って、補助ユニット20に対して信用性証明を実行する。
ステップ17a2:リーダユニット11は、複合デバイスに対してリモート証明を実行するようにVerifierに指示するために、測定要求メッセージ5をVerifierに送信する。
ステップ17a3:Verifierは、測定要求メッセージ6をリーダユニット11に送信する。
ステップ17a4:リーダユニット11は、測定応答メッセージ3をVerifierに送信し、メッセージは、証明結果8を伝達する。
メッセージ要求メッセージ6は、具体的には以下のメッセージ、すなわち、Nonce、PCRs、aikTypeなどを伝達し得、測定応答メッセージ3は、具体的には以下のメッセージ、すなわち、Nonce、aik、quote、PcrBanks、EventLogなどを伝達し得ることが理解され得る。
ステップ17a2は、ステップ17a1の前に実行され得、またはステップ17a1の後に実行され得ることが留意されるべきである。これは、具体的には制限されない。
ステップ17a1からステップ17a4の具体的な実装形態および関連する概念の説明については、図6および図12に示す前述の実施形態を参照することが留意されるべきである。
このようにして、本出願のこの実施形態によれば、リーダユニット状態切替えイベントが発生した後、スタンバイ状態からアクティブ状態に切り替わるリーダユニットは、リーダユニット11とのリモート証明を遅れずに実行するようにVerifierをトリガするために、Verifierによる開始を受動的に待つことなく、1つのリモート証明要求を能動的に開始することができる。これは、交換イベントが複合デバイスにおいて発生した後に信用性証明が遅れずに実行され得ることを保証し、複合デバイスおよびネットワーク全体のセキュリティおよび信頼性を改善する。
別の例において、図17bに示すように、本出願の実施形態は、リモート証明方法を提供する。方法は、複合デバイスに適用され、複合デバイスは、リーダユニット10およびリーダユニット11に加えて補助ユニット20をさらに含み、方法は、具体的には以下のステップを含み得る。
ステップ17b1:リーダユニット11は、証明結果8を取得するために、図7または図13に示す前述の実施形態に従って、補助ユニット20に対して信用性証明を実行する。
ステップ17b2:リーダユニット11は、測定要求メッセージ5をVerifierに送信し、メッセージは、証明結果8を伝達する。
ステップ17b1およびステップ17b2の具体的な実装形態および関連する概念の説明については、図6および図12に示す前述の実施形態を参照することが留意されるべきである。
このようにして、本出願のこの実施形態によれば、制御プレーンのアクティブ/スタンバイ切替えイベントが発生した後、スタンバイ状態からアクティブ状態に切り替わるリーダユニットは、Verifierによる開始を受動的に待つことなく、1つのリモート証明要求を能動的に開始し、補助ユニット20に対するリーダユニットの証明結果8をリモート証明要求内に直接含め、リモート証明要求をVerifierに送信することができる。これは、対話手順を節約し、交換イベントが複合デバイスにおいて発生した後に信用性証明が遅れずに実行され得ることを保証し、複合デバイスおよびネットワーク全体のセキュリティおよび信頼性を改善することに基づいて、リモート証明効率をある程度までさらに改善する。
いくつかの他の可能な実装形態において、多くの複合デバイスは、ホットスワップをサポートするので、補助ユニットの追加または交換などの更新イベントが複合デバイスにおいて発生したとき、たとえば、新しい補助ユニット25が複合デバイス内の補助ユニットに追加されるか、または補助ユニット24が補助ユニット25に交換された場合、複合デバイス内の補助ユニットセット20は、補助ユニットセット30に更新され、複合デバイスは、再起動されない。しかしながら、そのようなホットスワップは、複合デバイスのシステムの信頼性に影響を与える可能性がある。この点に鑑み、本出願のこの実施形態において、複合デバイスにおいて転送プレーンの更新イベントが発生すると、リーダユニット10は、補助ユニットにおいてホットスワップが発生したことを感知し、Verifierに対して1回のリモート証明を能動的に開始し得る。
一例において、図18に示すように、本出願の実施形態は、リモート証明方法を提供する。方法は、複合デバイスに適用され、複合デバイスは、リーダユニット10と、更新された補助ユニットセット30とを含み、方法は、具体的には以下のステップを含み得る。
ステップ1801:リーダユニット10は、証明結果9を取得するために、図6に示す前述の実施形態に従って、補助ユニットセット30に対して信用性証明を実行する。
ステップ1802:リーダユニット10は、測定要求メッセージ6をVerifierに送信し、メッセージは、証明結果9を伝達する。
ステップ1801およびステップ1802の具体的な実装形態および関連する概念の説明については、図6に示す前述の実施形態を参照することが留意されるべきである。
本出願のこの実施形態において、説明のための例としてプロキシモードが使用されることが留意されるべきである。実際の場合において、リモート証明モードが混合証明モードである場合、リーダユニット10は、代替的に、証明結果9を取得するために、図12に示す前述の実施形態に従って、補助ユニットセット30内のいくつかの補助ユニットに対して信用性証明を実行し得、リーダユニット10は、測定要求メッセージ6をVerifierに送信し、メッセージは、Verifierが複合デバイス内の残りの補助ユニットに対しても信用性証明を実行するように、証明結果9と残りの補助ユニットの測定情報とを伝達する。この場合における具体的な実装形態および関連する概念の説明については、図12に示す前述の実施形態を参照されたい。
このようにして、本出願のこの実施形態によれば、転送プレーンの更新イベントが発生した後、リーダユニット10は、イベントの発生を感知し、Verifierによる開始を受動的に待つことなく、変更された補助ユニットセット30に対して信用性証明を能動的に実行し、証明結果9をリモート証明要求内に直接含め、リモート証明要求をVerifierに送信することができる。これは、対話手順を節約し、信用性証明が複合デバイス内の補助ユニットのホットスワップ後に遅れずに実行され得ることを保証し、複合デバイスおよびネットワーク全体のセキュリティおよび信頼性を改善することに基づいて、リモート証明効率をある程度までさらに改善する。
実行中のプロセスにおいて複合デバイス内の補助ユニットまたはリーダユニットによって生成される測定情報は、一般に複数のPCR値を含むことが理解され得る。現在、信用性証明は、リモート証明中に測定情報内のすべてのPCR値に対して実行される。しかしながら、多くのシナリオにおいて、ユニットは、増分変化を有する。すなわち、測定情報内のいくつかのPCR値は、変化せず、他のPCR値(すなわち、増分変化に対応する測定情報)のみが変化する。すべてのPCR値が依然として検証される場合、変化しないPCR値は、繰り返し検証され、ネットワークリソースの浪費を引き起こす。この点に鑑み、本出願のこの実施形態は、測定情報内の変化したPCR値に対してリモート証明を実行する方法をさらに提供する。
一例において、複合デバイス内のリーダユニット10の測定情報が変化した場合、図19aに示すように、本出願のこの実施形態は、具体的には以下のステップを含み得る。
ステップ19a1:Verifierは、測定要求メッセージ7をリーダユニット10に送信する。
ステップ19a2:リーダユニット10は、測定情報4を取得する。
ステップ19a3:リーダユニット10は、測定情報4を測定応答メッセージ4内に含め、測定応答メッセージ4をVerifierに送信する。
ステップ19a4:Verifierは、証明結果10を取得するために、測定情報4に基づいて、リーダユニット10に対して信用性証明を実行する。
測定情報4は、リーダユニット10の変化したPCR値を含む測定情報であり、すなわち、リーダユニット10の増分変化に対応する測定情報は、たとえば、図6に示す実施形態におけるユニット10の測定情報3であり得ることが理解され得る。この場合において、図6に示す実施形態において、ユニット10は、測定情報が変化するリーダユニットである。このようにして、リーダユニット10は、リーダユニット10の変化したPCR値を直接報告し、変化したPCR値を検証するようにVerifierに要求する。これは、Verifierとリーダユニット10との間で交換されるデータの量を低減するだけでなく、Verifierによる信用性証明の作業負荷も低減し、それによって、リモート証明効率を改善する。この場合において、リーダユニット10は、新しい測定情報が生成された後、変化したPCR値が比較を通じて決定されるように、前回の信用性証明の間に使用されたリーダユニット10のすべてのPCR値を記録することが留意されるべきである。
いくつかの他の場合において、測定情報4は、リーダユニット10のすべての現在のPCR値を含む測定情報であり得る。リーダユニット10は、すべてのPCR値をVerifierに報告し、Verifierは、PCR値から変化したPCR値を決定し、変化したPCR値を検証する。これは、Verifierによる信用性証明の作業負荷を依然として低減し、リモート証明効率を改善することができる。この場合において、リーダユニット10によって送信された新しい測定情報を受信した後、Verifierが比較を通じて変化したPCR値を決定するように、Verifierは、前回の信用性証明の間に使用されたリーダユニット10のすべてのPCR値を記録することが留意されるべきである。
別の例において、複合デバイス内のリーダユニット10以外のユニット20の測定情報が変化した場合、図19bに示すように、本出願のこの実施形態は、具体的には以下のステップを含み得る。
ステップ19b1:リーダユニット10は、測定要求メッセージ8をユニット20に送信する。
ステップ19b2:ユニット20は、測定情報5を取得する。
ステップ19b3:ユニット20は、測定情報5を測定応答メッセージ5内に含め、測定応答メッセージ5をリーダユニット10に送信する。
ステップ19b4:リーダユニット10は、証明結果11を取得するために、測定情報5に基づいて、ユニット20に対して信用性証明を実行する。
測定情報5は、ユニット20の変化したPCR値を含む測定情報であり、たとえば、図6に示す実施形態においてユニット10によって取得されるユニット20の測定情報1であり得ることが理解され得る。この場合において、図6に示す実施形態において、ユニット20は、測定情報が変化するリーダユニットまたは補助ユニットである。このようにして、ユニット20は、ユニット20の変化したPCR値を直接報告し、変化したPCR値を検証するようにリーダユニット10に要求する。これは、リーダユニット10とユニット20との間で交換されるデータの量を低減するだけでなく、リーダユニット10による信用性証明の作業負荷も低減し、それによってリモート証明効率を改善する。この場合において、新しい測定情報が生成された後、変化したPCR値が比較を通じて決定されるように、ユニット20は、前回の信用性証明の間に使用されたユニット20のすべてのPCR値を記録することが留意されるべきである。
いくつかの他の場合において、測定情報5は、ユニット20のすべての現在のPCR値を含む測定情報であり得る。ユニット20は、すべてのPCR値をリーダユニット10に報告し、リーダユニット10は、PCR値から変化したPCR値を決定し、変化したPCR値を検証する。これは、リーダユニット10による信用性証明の作業負荷を依然として低減し、リモート証明効率を改善することができる。この場合において、ユニット20によって送信された新しい測定情報を受信した後、リーダユニット10が比較を通じて変化したPCR値を決定するように、リーダユニット10は、前回の信用性証明の間に使用されたユニット20のすべてのPCR値を記録することが留意されるべきである。
図19aおよび図19bにおいて、本出願の実施形態によれば、リーダユニットまたは補助ユニットにおいて変化したPCR値のみが検証され、完全な検証は、すべてのPCR値に対しては実行されず、それによって変化しないPCR値に対する繰り返しの検証を回避し、ネットワークリソースを節約し、複合デバイスに対するリモート証明効率を改善することが知られ得る。
セキュリティのために、前述の実施形態において、Verifierと複合デバイスとの間で交換される様々なメッセージ、および複合デバイス内のユニット間で交換される様々なメッセージが暗号化され、送信され得ることが留意されるべきである。具体的な実装形態について、本出願では詳細に説明しない。
図20は、本出願の実施形態による、複合デバイスに対するリモート証明方法の概略フローチャートである。複合デバイスは、第1のユニットと第2のユニットとを含み得、複合デバイスに対して実行体として第1のユニットによってリモート証明を実行するプロセスは、たとえば、以下のステップを含み得る。
ステップ2001:第1のユニットは、第2のユニットの第1の測定情報を取得する。
ステップ2002:第1のユニットは、第1の証明結果を取得するために、第1の測定情報に基づいて、第2のユニットに対して信用性証明を実行する。
ステップ2003:第1のユニットは、第1の証明結果をリモート証明デバイスに送信する。
このようにして、複合デバイス内の第1のユニットは、リモート証明機能を有し、第1のユニットが属する複合デバイス内の別のユニット(たとえば、第2のユニット)に対して信用性証明を実行し得る。この場合において、複合デバイス内の第1のユニットは、別のユニットの信用性attestationtrustworthiness attestationl結果をリモート証明デバイスに直接送信し得、リモート証明デバイスは、リモート証明プロセスにおいてリモート証明デバイスと複合デバイスとの間で交換される必要があるデータの量が効果的に低減され、それによって、複合デバイスに対するリモート証明効率をある程度まで改善することができるように、各ユニットの測定情報を受信して各ユニットに対して信用性証明を実行することなく、第1のユニットによって送信された別のユニットの証明結果を受信するだけでよい。
第1のユニットは、制御プレーンであり得、第2のユニットは、制御プレーンまたは転送プレーンであり得る。たとえば、複合デバイスがルータである場合、第1のユニットは、主制御基板であり得、第2のユニットは、主制御基板、転送基板、またはサービス基板であり得る。
一例において、複合デバイスの起動などの測定プロセスが決定的である場合、第1の測定情報は、第1のPCR値とPCR参照値とを含み得る。この場合において、ステップ2001において、第1のユニットが第2のユニットの第1の測定情報を取得することは、具体的には以下を含み得る。第1のユニットは、第2のユニットから第1のPCR値を取得し、第1のユニットは、リモート証明デバイスまたはローカルセキュア記憶空間からPCR参照値を取得する。この点に鑑み、ステップ2002において、第1の証明結果を取得するために第1のユニットが第1の測定情報に基づいて第2のユニットに対して信用性証明を実行する具体的なプロセスは、以下であり得る。第1のユニットは、第1の証明結果を取得するために、第1のPCR値をPCR参照値と比較し、第1のPCR値がPCR参照値と一致する場合、第1の証明結果は、第2のユニットが信用できることを表し、または第1のPCR値がPCR参照値と一致しない場合、第1の証明結果は、第2のユニットが信用できないことを表す。このようにして、複合デバイスの起動などの測定プロセスが決定的なプロセスである場合、複合デバイス内の第1のユニットは、PCR参照値に基づいて、第2のユニットに対して信用性証明を実行し、それによって、複合デバイスに対する高速で、便利で、効果的なリモート証明を実施する。
別の例において、複合デバイスの測定処理が不確実である場合、たとえば、複合デバイスが起動された後の実行中のプロセスである場合、第1の測定情報は、第2のユニットによって報告された第2のPCR値と第1の測定ログとを含み得、第1の測定ログは、第1のベースライン値と、第2のPCR値を取得するために第1のベースライン値を拡張するプロセスに関する情報とを含み、第1のベースライン値は、第2のユニットによって報告されたベースライン値であり、第1の測定情報は、第2のベースライン値をさらに含み、第2のベースライン値は、第2のユニットの信頼できるベースライン値であり、第2のベースライン値は、第1のベースライン値をチェックするために使用される。この場合、ステップ2001において、第1のユニットが第2のユニットの第1の測定情報を取得することは、具体的には以下を含み得る。第1のユニットは、第2のユニットから第2のPCR値と第1の測定ログとを取得し、第1の測定ログは、第1のベースライン値と、第2のPCR値を取得するために第1のベースライン値を拡張するプロセスに関する情報とを含み、第1のユニットは、リモート証明デバイスまたはローカルセキュア記憶空間から第2のベースライン値を取得する。この点に鑑み、ステップ2002において、第1のユニットが第1の証明結果を取得するために第1の測定情報に基づいて第2のユニットに信用性証明を実行する具体的なプロセスは、以下を含み得る。第1のユニットは、第1の測定ログに基づいて第3のPCR値を計算し、第1のユニットは、第2のPCR値を第3のPCR値と比較し、第2のPCR値が第3のPCR値と一致する場合、第1のユニットは、第1の証明結果を取得するために、第2のベースライン値を第1のベースライン値と比較し、または第2のPCR値が第3のPCR値と一致しない場合、第1のユニットは、第2のベースライン値を第1のベースライン値と比較せず、第1の証明結果を直接取得し、第1の証明結果は、第2のユニットが信用できないことを表すために使用される。このようにして、複合デバイスの測定プロセスが不確実なプロセスである場合、複合デバイス内の第1のユニットは、第2のベースライン値に基づいて第2のユニットに対して信用性証明を実行し、それによって、複合デバイスに対する高速で、便利で、効果的なリモート証明を
実施する。
上記の2つの例について、ある場合において、第2のユニットのPCR参照値または第2のベースライン値は、第1のユニットのローカルセキュア記憶空間内に記憶され得、セキュア記憶空間は、攻撃者によって改ざんまたはアクセスすることができない物理空間、たとえば、RAT関連プロセスまたは実行中のプロセス(RAT構成要素と呼ばれる)を介してRATを実装するモジュールのみによってアクセスすることができる物理空間であり得、別の場合において、第2のユニットのPCR参照値または第2のベースライン値は、代替的に、リモート証明デバイスから取得され得、リモート証明デバイスは、複合デバイス内の各ユニットのPCR参照値を記憶する。
いくつかの可能な実装形態において、複合デバイスが第3のユニットをさらに含む場合、本出願のこの実施形態は、以下を含み得る。第1のユニットは、第3のユニットの第2の測定情報を取得し、第1のユニットは、第2の測定情報をリモート証明デバイスに送信する。このようにして、第1のユニットは、第3のユニットの測定情報のみをリモート証明デバイスに転送し、リモート証明デバイスは、第3のユニットに対してリモート証明を実行する。これは、複合デバイス内のユニットに対する信用性証明も実施する。
特定の実装形態の間、リモート証明がチャレンジレスポンス方式を使用する場合、第1のユニットが第1の証明結果をリモート証明デバイスに送信する前に、たとえば、ステップ2001の前、またはステップ2002とステップ2003との間に、本出願のこの実施形態は、以下をさらに含み得る。第1のユニットは、リモート証明デバイスによって送信された第1の測定要求メッセージを受信し、第1の測定要求メッセージは、「チャレンジ」と見なされ得、複合デバイスに対する信用性証明を実行するように要求するために使用される。この場合、ステップ2003において、第1のユニットは、第1の証明結果を第1の測定応答メッセージ内に含め、第1の測定応答メッセージを「チャレンジ」への「応答」としてリモート証明デバイスに送信し得る。
いくつかの他の可能な実装形態において、本出願のこの実施形態は、以下をさらに含み得る。第1のユニットは、リモート証明デバイスが第1のユニットに対して信用性証明を実行するように、第1のユニットの第3の測定情報をリモート証明デバイスに送信する。このようにして、一方において、リモート証明デバイスは、第1のユニットに対して信用性証明を実行するプロセスにおいて、複合デバイスに対する信用性証明は、より完全であり、すなわち、信用性証明は、複合デバイス内の第1のユニットを含むすべてのユニットに対して実施される。他方において、第1のユニットが第2のユニットに対して信用性証明を実行する前に、リモート証明デバイスは、最初に第1のユニットに対して信用性証明を実行し得、第1のユニットが信用できるという条件の下でのみ、リモート証明プロセスがより安全であり、それによって、複合デバイスに対するリモート証明の信頼性を改善するように、第1のユニットが第2のユニットに対してリモート証明を実行することが決定される。
いくつかの他の可能な実装形態において、異なるリモート証明モードが、複合デバイスに対するリモート証明のために使用され得る。リモート証明が秩序正しい方式で実行され得ることを保証するために、前述のリモート証明が実行される前に、リモート証明デバイスおよび複合デバイスは、最初に、使用されるべきリモート証明モードを決定し得る。
一例において、使用されるべきリモート証明方式を決定するために、複合デバイスおよびリモート証明デバイスは、ローカルな静的構成を通じて、その後のリモート証明のために使用されるべきリモート証明モードを決定し得る。
別の例において、複合デバイスおよびリモート証明デバイスは、代替的に、ネゴシエーションを通じて、その後のリモート証明のために使用されるべきリモート証明モードを決定し得る。たとえば、第1のユニットは、モードネゴシエーション要求メッセージをリモート証明デバイスに送信し、第1のユニットは、リモート証明デバイスによって送信されたモードネゴシエーション応答メッセージを受信し、第1のユニットは、モードネゴシエーション応答メッセージに基づいてリモート証明モードを決定する。モードネゴシエーション要求メッセージは、第1の指示情報を伝達し得、第1の指示情報は、第1のユニットによってサポートおよび推奨されるリモート証明モードを示すために使用される。モードネゴシエーション応答メッセージは、第2の指示情報を伝達し、第2の指示情報は、その後に使用されるべきリモート証明モードを決定することをリモート証明デバイスに示すために使用される。リモート証明モードのためのネゴシエーションプロセスは、第1のユニットによって開始され得、またはリモート証明デバイスによって開始され得ることが留意されるべきである。最終的なリモート証明モードは、第1のユニットによって決定され得、またはリモート証明デバイスによって決定され得る。このようにして、その後に使用されるべきリモート証明方式は、その後複合デバイスに対して秩序正しいリモート証明を実行するためのデータ基準を提供するために、複合デバイスとリモート証明デバイスとの間のネゴシエーションを通じて決定される。
決定されたリモート証明モードがプロキシモードである場合、プロキシモードにおいて、第1のユニットは、複合デバイス内の第1のユニットを除くTCBモジュールを含むすべてのユニットに対して信用性証明を実行することを担当することが理解され得る。決定されたリモート証明モードが混合証明モードである場合、混合証明モードにおいて、第1のユニットは、第2のユニットに対して信用性証明を実行し、リモート証明デバイスは、複合デバイス内の第4のユニットに対して信用性証明を実行し、すなわち、第1のユニットは、複合デバイス内のいくつかのユニットに対して信用性証明を実行し、いくつかのユニットは、第2のユニットを含み、他のユニットは、第1のユニットを使用することによって他のユニットの測定情報をリモート証明デバイスに送信し、リモート証明デバイスは、信用性証明を実行し、他のユニットは、第2のユニットを含む。
混合証明モードについて、リモート証明デバイスおよび第1のユニットが信用性証明を実行する必要がある特定のユニットは、第1のユニットによって決定され、リモート証明デバイスに通知され得、またはリモート証明デバイスによって決定され、第1のユニットに通知され得、またはリモート証明デバイスおよび第1のユニットによるネゴシエーションを通じて決定され得ることが留意されるべきである。検証されるべき特定のユニットをネゴシエーションを通じて決定するプロセスは、リモート証明モードをネゴシエートするプロセスにおいて実装され得、またはリモート証明モードが混合証明モードとして決定された後に個別にネゴシエートされ得る。一例において、本出願のこの実施形態では、たとえば、リモート証明デバイスおよび第1のユニットが信用性証明を実行する必要がある特定のユニットは、以下のプロセスを通じて決定され得る。第1のユニットは、第1の要求メッセージをリモート証明デバイスに送信し、第1の要求メッセージは、リモート証明デバイスからの証明許可を要求するために使用され、証明許可は、第1のユニットが信用性証明を実行するユニットのセットを示し、セットは、第2のユニットを含み、第1のユニットは、リモート証明デバイスによって返された第1の応答メッセージを受信し、第1の応答メッセージは、証明許可を示すために使用される。第1の応答メッセージは、第1のユニットが信用性証明を実行する各ユニットの識別情報を含み、識別情報は、たとえば、ユニットの識別子であり得、ユニットを一意に識別するために使用される。
第1のユニットは、アクティブ状態のリーダユニットであることが留意されるべきである。たとえば、第1のユニットは、第1の態様におけるステップ1の前にスタンバイ状態からアクティブ状態に切り替えられるリーダユニットであり得る。
いくつかの他の可能な実装形態において、複合デバイスに対するリモート証明をトリガする方式のために、ある場合において、第1のユニットは、第2のユニットに対する信用性証明を定期的に実行し得る。たとえば、第1のユニットは、第1のトリガ要求をリモート証明デバイスに定期的に送信し、第1のトリガ要求は、複合デバイスに対して信用性証明を実行するようにリモート証明デバイスを定期的にトリガするために使用される。別の場合において、第1のユニットは、代替的には、イベントのトリガに基づいて第2のユニットに対して信用性証明を実行し得る。たとえば、第1のユニットは、イベントの発生に基づいて、第2のトリガ要求をリモート証明デバイスに送信し、第2のトリガ要求は、複合デバイスに対して信用性証明を実行するようにリモート証明デバイスをトリガするために使用され、イベントは、以下の場合、すなわち、第1のユニットのアクティブ/スタンバイ切替え、第2のユニットの状態変化、または構成コマンドのうちの1つを含み得、すなわち、第1のユニットがスタンバイ状態からアクティブ状態に切り替えられたとき、または第1のユニットが、第2のユニットの状態変化(たとえば、新しい第2のユニットが追加された、または第2のユニットが交換された)を感知したとき、または第2のユニットが構成コマンドを受信したとき、第1のユニットは、第2のユニットに対して信用性証明を実行するようにトリガされる。このようにして、イベントが発生するか、または事前設定された期間に達したとき、第1のユニットは、リモート証明の開始を受動的に待たずに、第2のユニットに対して信用性証明を能動的に実行し得、それによって、リモート証明プロセスにおける対話手順を節約し、リモート証明効率を改善する。
いくつかの他の可能な実装形態において、複合デバイス内のユニットが増分変化を有する場合、すなわち、ユニット内で、いくつかの測定情報が変化しないままであり、他の測定情報が変化する場合、本出願のこの実施形態において、リモート証明によって占有されるシステムリソースを節約し、リモート証明効率を改善するために、リモート証明は、変更された測定情報に対してのみ実行され得、すなわち、増分変化に対応する測定情報が取得され、増分変化に対応する測定情報に基づいてリモート証明が実行される。一例において、第2のユニットが第1の増分変化を有する場合、本出願のこの実施形態は、以下をさらに含み得る。第2のユニットが第1の増分変化を有する場合、第1のユニットは、第1の増分変化に対応する第5の測定情報を取得し、第1のユニットは、第5の測定情報に基づいて、第2のユニットに対して信用性証明を実行する。別の例において、第1のユニットが第2の増分変化を有する場合、本出願のこの実施形態は、以下をさらに含み得る。第1のユニットは、第1のユニットの第2の増分変化に対応する第6の測定情報をリモート証明デバイスに送信し、リモート証明デバイスは、第6の測定情報に基づいて、第2の増分変化を有する第1のユニットに対して信用性証明を実行する。このようにして、本出願のこの実施形態によれば、様々なユニットにおいて変化するPCR値に対応する測定情報のみが検証されるが、すべてのPCR値に対応する測定情報に対して完全な検証は、実行されず、それによって、変化しないPCR値に対応する測定情報に対する繰り返しの検証を回避し、ネットワークリソースを節約し、複合デバイスに対するリモート証明の効率を改善する。
図21は、本出願の実施形態による複合デバイスのための別のリモート証明方法の概略フローチャートである。方法は、リモート証明デバイスに適用され、複合デバイスは、第1のユニットと第2のユニットとを含み得、本出願のこの実施形態は、具体的には以下のステップを含み得る。
ステップ2101:リモート証明デバイスは、第1のユニットによって送信された第1のメッセージを受信し、第1のメッセージは、第2のユニットに対して第1のユニットによって信用性証明を実行した第1の証明結果を伝達する。
ステップ2102:リモート証明デバイスは、第1のメッセージに基づいて第1の証明結果を取得する。
いくつかの可能な実装形態において、本出願のこの実施形態は、以下をさらに含み得る。リモート証明デバイスは、第1のユニットによって送信された第2のメッセージを受信し、第2のメッセージは、第1のユニットの第1の測定情報を伝達し、リモート証明デバイスは、第2の証明結果を取得するために、第1の測定情報に基づいて、第1のユニットに対して信用性証明を実行する。
いくつかの他の可能な実装形態において、本出願のこの実施形態は、以下をさらに含み得る。リモート証明デバイスは、第3の証明結果を取得するために、第1の証明結果をチェックする。具体的には、第2のユニットの署名が正しいかどうか、および第1のユニットが第2のユニットに対して信用性証明を実行するプロセスが正確であるかどうかが検証される。
いくつかの他の可能な実装形態において、本出願のこの実施形態は、リモート証明モードを決定することをさらに含み得る。ある場合において、リモート証明モードは、静的構成を通じてリモート証明デバイスおよび第1のユニットにおいて設定され得る。別の場合において、リモート証明モードは、代替的には、ネゴシエーションを通じて決定され得る。一例において、ネゴシエーションプロセスは、以下を含み得る。リモート証明デバイスは、第1のユニットによって送信されたモードネゴシエーション要求メッセージを受信し、リモート証明デバイスは、モードネゴシエーション要求メッセージに基づいて、リモート証明モードを決定し、リモート証明デバイスは、モードネゴシエーション応答メッセージを第1のユニットに送信し、モードネゴシエーション応答メッセージは、リモート証明モードを伝達し、モードネゴシエーション応答メッセージは、リモート証明モードにおいてリモート証明を実行することを第1のユニットに示すために使用される。
一例において、リモート証明モードがプロキシモードである場合、プロキシモードにおいて、第1のユニットは、複合デバイス内の第1のユニットを除くすべてのユニットに対して信用性証明を実行することを担当し、すべてのユニットの各々は、トラステッドコンピューティングベースTCBモジュールを含む。この場合において、本出願のこの実施形態は、以下をさらに含み得る。リモート証明デバイスは、第1の証明結果と、第2の証明結果と、第3の証明結果とに基づいて、第4の証明結果を生成し、第4の証明結果は、複合デバイスのシステムの信用性を表すために使用される。第1の証明結果が、第2のユニットが信用できることを示し、第2の証明結果が、第1のユニットが信用できることを示し、第3の証明結果が、第2のユニットの署名が正しいことと、第1のユニットが第2のユニットに対して信用性証明を実行するプロセスが正確であることとを示す場合、第4の証明結果は、複合デバイスのシステムが信用できることを示す。
別の例において、リモート証明モードが混合証明モードである場合、混合証明モードにおいて、第1の証明結果は、第2のユニットに対して第1のユニットによって信用性証明を実行した結果であり、本出願のこの実施形態は、以下をさらに含み得る。リモート証明デバイスは、第5の証明結果を取得するために、複合デバイス内の第3のユニットに対して信用性証明を実行する。この場合において、本出願のこの実施形態は、以下をさらに含み得る。リモート証明デバイスは、第1の証明結果と、第2の証明結果と、第3の証明結果と、第5の証明結果とに基づいて、第6の証明結果を生成し、第6の証明結果は、複合デバイスのシステムの信用性を表すために使用される。第1の証明結果が、第2のユニットが信用できることを示し、第2の証明結果が、第1のユニットが信用できることを示し、第3の証明結果が、第2のユニットの署名が正しいことと、第1のユニットが第2のユニットに対して信用性証明を実行するプロセスが正確であることとを示し、第5の証明結果が、第3のユニットが信用できることを示す場合、第6の証明結果は、複合デバイスのシステムが信用できることを示す。
混合証明モードにおいて、本出願のこの実施形態は、第1のユニットがリモート証明を実行するユニットのセットと、リモート証明デバイスがリモート証明を実行するユニットのセットとを決定することをさらに含む。プロセスは、静的構成を通じて設定され得、またはネゴシエーションを通じて決定され得る。プロセスがネゴシエーションを通じて決定される場合、プロセスは、リモート証明モードのネゴシエーション中に決定され得、またはリモート証明モードが混合証明モードとして決定された後に独立して決定され得る。この場合において、たとえば、本出願のこの実施形態は、以下を含み得る。リモート証明デバイスは、第1のユニットによって送信された第1の要求メッセージを受信し、第1の要求メッセージは、リモート証明デバイスからの証明許可を要求するために使用され、リモート証明デバイスは、証明許可を決定し、証明許可は、第3のユニットに対して信用性証明を実行することをリモート証明デバイスに示し、リモート証明デバイスは、第1のユニットが証明許可に基づいて第2のユニットに対して信用性証明を実行するように、第1の応答メッセージを第1のユニットに送信する。
図21において提供される方法は、リモート証明デバイスに適用され、複合デバイスに適用され図20において提供される方法に対応することが留意されるべきである。したがって、図21において提供される方法の様々な可能な実装形態および達成された技術的効果については、図20おいて提供される前述の方法の説明を参照されたい。
図20および図21に示す前述の実施形態において、図5に示す実施形態に対応するある場合において、複合デバイスは、Attester201であり得、第1のユニットは、リーダユニット311であり得、第2のユニットは、リーダユニット312および補助ユニット321、322、...のうちのいずれか1つであり得、リモート証明デバイスは、Verifier202であり得ることが理解され得る。図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、ならびに図16aおよび図16bに示す実施形態に対応する別の場合において、第1のユニットは、ユニット10に対応し得、第2のユニットは、ユニット20に対応し得、リモート証明デバイスは、Verifierであり得る。図17aおよび図17bに示す実施形態に対応するさらに別の場合において、第1のユニットは、リーダユニット11に対応し得、第2のユニットは、補助ユニット20に対応し得、リモート証明デバイスは、Verifierであり得る。図18に示す実施形態に対応するさらに別の場合において、第1のユニットは、リーダユニット10に対応し得、第2のユニットは、補助ユニットセット30内のユニットに対応し得、リモート証明デバイスは、Verifierであり得る。図19aおよび図19bに示す実施形態に対応するさらに別の場合において、第1のユニットは、リーダユニット10に対応し得、第2のユニットは、ユニット20に対応し得、リモート証明デバイスは、Verifierであり得る。この場合において、ステップ2001からステップ2003の概念の説明、具体的な実装形態、および達成された効果については、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、ならびに図19aおよび図19bに対応する前述の実施形態の関連する説明を参照されたい。
それに加えて、本出願の実施形態は、図22に示すように、複合デバイスのためのリモート証明装置2200をさらに提供する。装置2200は、複合デバイスにおいて使用され、複合デバイスは、受信ユニット2201と、送信ユニット2202と、処理ユニット2203とを含む。受信ユニット2201は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態に対応する方法において複合デバイス(またはAttester)によって実行される受信動作を実行するように構成され、たとえば、図6に示す実施形態におけるステップ601を実行するように構成される。送信ユニット2202は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態に対応する方法において複合デバイス(またはAttester)によって実行される送信動作を実行するように構成され、たとえば、図6に示す実施形態におけるステップ604を実行するように構成される。処理ユニット2203は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態に対応する方法において複合デバイス(またはAttester)によって実行される受信動作および送信動作以外の動作を実行するように構成され、たとえば、処理ユニット2203は、図6に示す実施形態におけるステップ603を実行し得、すなわち、証明結果1を取得するために、測定情報1と測定情報2とに基づいて、ユニット20に対して信用性証明を実行し得る。
それに加えて、本出願の実施形態は、図23に示すように、複合デバイスのためのリモート証明装置2300をさらに提供する。装置2300は、リモート証明デバイスにおいて使用され、リモート証明デバイスは、受信ユニット2301と、送信ユニット2302と、処理ユニット2303とを含む。受信ユニット2301は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図21に示す前述の実施形態に対応する方法においてリモート証明デバイス(またはVerifier)によって実行される受信動作を実行するように構成され、たとえば、図11に示す実施形態におけるステップ606を実行するように構成される。送信ユニット2302は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図21に示す前述の実施形態に対応する方法においてリモート証明デバイス(またはVerifier)によって実行される送信動作を実行するように構成され、たとえば、図9aに示す実施形態におけるS53を実行するように構成される。処理ユニット2303は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図21に示す前述の実施形態に対応する方法においてリモート証明デバイス(またはVerifier)によって実行される受信動作および送信動作以外の動作を実行するように構成され、たとえば、処理ユニット2303は、図11に示す実施形態におけるステップ607から609を実行し得る。
それに加えて、本出願の実施形態は、第1のユニット2401と第2のユニット2402とを含む複合デバイス2400をさらに提供する。第2のユニット2402は、第2のユニット2402の測定情報を第1のユニット2401に送信するように構成される。第1のユニット2401は、複合デバイス2400に対して信用性証明を実施するために、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態に対応するリモート証明方法を実行するように構成される。
それに加えて、本出願の実施形態は、図25に示すように、複合デバイス2500をさらに提供する。複合デバイス2500は、通信インターフェース2501とプロセッサ2502とを含み得る。通信インターフェース2501は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態における受信動作と送信動作とを実行するように構成される。プロセッサ2502は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態における受信動作および送信動作以外の動作を実行するように構成され、たとえば、図6に示す実施形態におけるステップ603を実行するように構成される。
それに加えて、本出願の実施形態は、図26に示すように、複合デバイス2600をさらに提供する。複合デバイス2600は、メモリ2601とプロセッサ2602とを含む。メモリ2601は、プログラムコードを記憶するように構成される。プロセッサ2602は、複合デバイス2600が図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図20に示す前述の実施形態において提供される方法を実行することを可能にするために、プログラムコード内の命令を実行するように構成される。
それに加えて、本出願の実施形態は、図27に示すように、リモート証明デバイス2700をさらに提供する。リモート証明デバイス2700は、通信インターフェース2701とプロセッサ2702とを含む。通信インターフェース2701は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図21に示す前述の実施形態における受信動作と送信動作とを実行するように構成される。プロセッサ2702は、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図21に示す前述の実施形態における受信動作および送信動作以外の動作を実行するように構成され、たとえば、図11に示す実施形態におけるステップ607から609を実行するように構成される。
それに加えて、本出願の実施形態は、図28に示すように、リモート証明デバイス2800をさらに提供する。リモート証明デバイス2800は、メモリ2801とプロセッサ2802とを含む。メモリ2801は、プログラムコードを記憶するように構成される。プロセッサ2802は、リモート証明デバイス2800が図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、ならびに図21に示す前述の実施形態において提供される方法を実行することを可能にするために、プログラムコード内の命令を実行するように構成される。
前述の実施形態において、プロセッサは、中央処理装置(英語:central processing unit、略してCPU)、ネットワークプロセッサ(英語:network processor、略してNP)、またはCPUとNPの組合せであり得ることが理解され得る。代替的に、プロセッサは、特定用途向け集積回路(英語:application-specific integrated circuit、略してASIC)、プログラマブル論理デバイス(英語:programmable logic device、略してPLD)、またはそれらの組合せであり得る。PLDは、複合プログラマブル論理デバイス(英語:complex programmable logic device、略してCPLD)、フィールドプログラマブルゲートアレイ(英語:field-programmable gate array、略してFPGA)、ジェネリックアレイロジック(英語:generic array logic、略してGAL)、またはそれらの任意の組合せであり得る。プロセッサは、1個のプロセッサであり得、または複数のプロセッサを含み得る。メモリは、ランダムアクセスメモリ(英語:random-access memory、略してRAM)などの揮発性メモリ(英語:volatile memory)を含み得、メモリは、読み取り専用メモリ(英語:read-only memory、略してROM)、フラッシュメモリ(英語:flash memory)、ハードディスクドライブ(英語:hard disk drive、略してHDD)、もしくはソリッドステートドライブ(英語:solid-state drive、略してSSD)などの不揮発性メモリ(英語:non-volatile memory)を含み得、または前述のタイプのメモリの組合せを含み得る。メモリは、1個のメモリであり得、または複数のメモリを含み得る。特定の実装形態において、メモリは、コンピュータ可読命令を記憶し、コンピュータ可読命令は、複数のソフトウェアモジュール、たとえば、送信モジュール、処理モジュール、および受信モジュールを含む。各ソフトウェアモジュールを実行した後、プロセッサは、各ソフトウェアモジュールの指示に基づいて対応する動作を実行し得る。この実施形態において、ソフトウェアモジュールによって実行される動作は、実際には、ソフトウェアモジュールの指示に基づいてプロセッサによって実行される動作である。メモリ内のコンピュータ可読命令を実行した後、プロセッサは、コンピュータ可読命令の指示に基づいて、複合デバイスまたはリモート証明デバイスによって実行され得るすべての動作を実行し得る。
前述の実施形態において、複合デバイス2500/リモート証明デバイス2700の通信インターフェース2501/2701は、具体的には、複合デバイス2500とリモート証明デバイス2700との間のデータ通信を実施するために、複合デバイスのためのリモート証明装置2200/2300内の受信ユニット2201/2202および送信ユニット2301/2302として使用され得ることが理解され得る。
それに加えて、本出願の実施形態は、コンピュータ可読記憶媒体をさらに提供する。コンピュータ可読記憶媒体は、命令を記憶し、命令がコンピュータ上で実行されると、コンピュータは、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、図20、ならびに図21に示す前述の実施形態において提供される複合デバイスのためのリモート証明方法を実行することができる。
それに加えて、本出願の実施形態は、コンピュータプログラム製品をさらに提供する。コンピュータプログラム製品がコンピュータ上で実行されると、コンピュータは、図5、図6、図7aから図7c、図8、図9aおよび図9b、図10から図14、図15aおよび図15b、図16aおよび図16b、図17aおよび図17b、図18、図19aおよび図19b、図20、ならびに図21に示す前述の実施形態において提供される複合デバイスのためのリモート証明方法を実行することができる。
本出願の実施形態において言及される「第1のユニット」および「第1の測定情報」などの名前における「第1の」は、単に名前識別子として使用され、順序における第1のを表さない。このルールは、「第2の」などにも適用され得る。
当業者は、前述の実施形態における方法のステップのうちのいくつかまたはすべてがソフトウェアとユニバーサルハードウェアプラットフォームとを使用することによって実施され得ることを明確に理解し得ることが、前述の実装形態の説明から知られ得る。そのような理解に基づいて、本出願の技術的解決策は、ソフトウェア製品の形態において実装され得る。コンピュータソフトウェア製品は、記憶媒体、たとえば、読み取り専用メモリ(英語:read-only memory、ROM)/RAM、磁気ディスク、または光ディスク内に記憶され得、本出願の実施形態または実施形態のいくつかの部分において説明されている方法を実行するようにコンピュータデバイス(パーソナルコンピュータ、サーバ、またはルータなどのネットワーク通信デバイスであり得る)に指示するためのいくつかの命令を含み得る。
本明細書における実施形態はすべて、実施形態における同じまたは類似の部分について順次説明され、これらの実施形態を参照し、各実施形態は、他の実施形態との相違点に焦点を合わせる。特に、装置およびデバイスの実施形態は、基本的に、方法の実施形態と類似しており、したがって、簡単に説明されている。関連する部分については、方法の実施形態における部分的な説明を参照されたい。説明されているデバイスおよび装置の実施形態は、単なる例である。別個の部分として説明されているモジュールは、物理的に別個であってもなくてもよく、モジュールとして表示されている部分は、物理的モジュールであってもなくてもよく、1つの位置に配置されてもよく、または複数のネットワークユニットに分散されてもよい。いくつかまたはすべてのモジュールは、実施形態の解決策の目的を達成するための実際の要件に基づいて選択され得る。当業者は、創造的な努力なしに、実施形態を理解し、実施し得る。
前述の説明は、本出願の単なる例示的な実装形態であり、本出願の保護範囲を制限することを意図するものではない。当業者は、本出願から逸脱することなく、いくつかの改善および研磨を行い得、改善および研磨は、本出願の保護範囲内に入ることが留意されるべきである。
一例において、図1に示すブートモデルを参照されたい。ブートプロセスにおいて、たとえば、ネットワークデバイスのシステムの信用性証明プロセスは、以下を含み得る。ステップ1:TPMにおける信頼の基点は、基本入力/出力システム(英語:Basic Input Output System、略してBIOS)のための信頼の基盤を提供する。ステップ2:BIOSは、起動され、ハードウェアシステムを初期化し、TPMにおける信頼の基点を呼び出すことによって、次の段階において実行する必要があるLoaderの署名をチェックし、Loaderと構成情報とを測定し、測定情報をTPM内に記録する。ステップ3:Loaderは、実行され、オペレーティングシステムイメージファイルを位置特定および取得し、TPMにおける信頼の基点を呼び出すことによって、次の段階において実行する必要があるオペレーティングシステムのKernelの署名をチェックし、Kernelを測定し、測定情報をTPM内に記録する。ステップ4:Kernelは、実行され、オペレーティングシステム、セキュリティアプリケーションなどを起動し、構成情報を測定し、測定情報をTPM内に記録する。前述のネットワークデバイスが起動を完了したとき、リモート証明が実行され得、すなわち、ネットワークデバイスは、TPM内に記録された測定情報に基づいてレポートを生成し、レポートを、リモート証明機能を有するサーバに送信し、サーバは、証明結果を取得するために、受信したレポートに基づいて、ネットワークデバイスの起動プロセスに対して信用性証明を実行することが分かり得る。測定情報は、少なくとも、TPMにおいて計算され、PCR内に記憶されたプラットフォーム構成レジスタ(英語:Platform configuration register、略してPCR)値を含み得、PCR値は、一般に、実行中のプロセスにおいてベースライン値が複数回拡張された後に取得される値であり、具体的には、実行中のプロセスにおける拡張の量と拡張順序とに関連する。
別の例において、図2に示すシナリオが依然として例として使用される。図3に示す複合デバイスが図2中のAttester201であると仮定する。図5を参照されたい。Verifier202がAttester201に対してリモート証明を実行するプロセスは、以下を含み得る。S31:Verifier202は、測定要求メッセージ1をリーダユニット311に送信し、測定要求メッセージ1は、リモート証明がチャレンジレスポンス方式において実行される場合の「チャレンジ」と見なされ得、複合デバイスに対する信用性証明を要求するために使用される。S32:リーダユニット311は、要求メッセージ1をVerifier202に送信し、要求メッセージ1は、リーダユニット312および補助ユニット321、322、...に対する信用性証明のための基準を取得することを要求するために使用される。たとえば、起動などの測定プロセスが決定的なプロセスである場合、信用性証明のための基準は、PCR参照値であり得る。別の例として、起動後の別の測定プロセスが不確実なプロセスである場合、信用性証明のための基準は、測定プロセスによって変化しない標準のベースライン値Aであり得る。S33:Verifier202はリーダユニット312および補助ユニット321、322、...に対応するPCR参照値1および/またはベースライン値Aを応答メッセージ1内に含め、応答メッセージ1をリーダユニット311に送信し、ベースライン値AおよびPCR参照値1は、ユニットの信用できるベースライン値およびPCR参照値である。S34:リーダユニット311は、リーダユニット312および補助ユニット321、322、...からのリーダユニット312および補助ユニット321、322、...の測定情報を要求するために、測定要求メッセージ2をリーダユニット312および補助ユニット321、322、...に別々に送信し、測定情報は、各ユニット内のTCBモジュール内に記録されたPCR値1を少なくとも含み、測定情報は、測定ログをさらに含み得、測定ログは、ベースライン値aと、PCR値1を取得するためにベースライン値aを拡張するプロセスに関する情報とを記録する。S35:リーダユニット312および補助ユニット321、322、...は、リーダユニット312および補助ユニット321、322、...の測定情報を測定応答メッセージ2内に別々に含め、測定応答メッセージ2をリーダユニット311に送信する。S36:リーダユニット311は、証明結果1を取得するために、リーダユニット312および補助ユニット321、322、...に対して信用性証明を別々に実行する。具体的には、ある場合において、決定的な測定プロセスについて、リーダユニット311は、各ユニットのPCR値1が各ユニットのPCR参照値1と一致するかどうかを比較を通じて判定する。別の場合において、不確実な測定プロセスについて、リーダユニット311は、測定ログに基づいてPCR値2を最初に計算し、すなわち、ベースライン値aについて測定ログ内に記録されたプロセスに関する情報に基づいてPCR値2を計算し、PCR値1がPCR値2と一致するかどうかを比較を通じて判定し、測定ログ内のベースライン値aがベースライン値Aと一致するかどうかを比較を通じて判定する。S37:リーダユニット311は、証明結果1を測定応答メッセージ1内に含め、測定応答メッセージ1をVerifier202に送信し、測定応答メッセージ1は、リモート証明がチャレンジレスポンス方式において実行される場合の「チャレンジ」に対する「レスポンス」、すなわち、S31における測定要求メッセージ1の応答メッセージと見なされ得る。
本出願の実施形態におけるメッセージ、たとえば、測定要求メッセージ1およびそれに続く測定応答メッセージ1、要求メッセージ1、応答メッセージ1、メッセージ1、モードネゴシエーション要求メッセージ1、およびモードネゴシエーション応答メッセージ1について、一例において、伝送制御プロトコル/ユーザデータグラムプロトコル(英語: Transmission Control Protocol/User Datagram Protocol、略してTCP/UDP)におけるメッセージ、ポート、およびルータ広告(英語:Router Advertisement、略してRA)が使用され得ることが留意されるべきである。この場合において、各メッセージにおいて伝達される内容は、このタイプのメッセージ内の標準タイプ長さ値(英語:Tape Length Value、略してTLV)フォーマットフィールド、またはTLVフォーマットに類似したフィールド(たとえば、いくつかの特定のフィールドが標準TLVフォーマットフィールドに基づいて追加される)によって伝達され得る。別の例において、ハイパーテキスト転送プロトコル・オーバー・セキュア・ソケット・レイヤ(英語: Hyper Text Transfer Protocol over Secure Socket Layer、略してHTTPS)内のメッセージおよびポート番号が代替的に使用され得る。この場合において、ユニフォームリソースロケータ(英語: Uniform Resource Locator、略してURL)が、異なるメッセージタイプ間を区別し、要求または応答(または回答もしくは確認)関連メッセージ内のメッセージフィールドを定義するために使用され得る。
このようにして、複合デバイス内の第1のユニットは、リモート証明機能を有し、第1のユニットが属する複合デバイス内の別のユニット(たとえば、第2のユニット)に対して信用性証明を実行し得る。この場合において、複合デバイス内の第1のユニットは、別のユニットの信用性証明結果をリモート証明デバイスに直接送信し得、リモート証明デバイスは、リモート証明プロセスにおいてリモート証明デバイスと複合デバイスとの間で交換される必要があるデータの量が効果的に低減され、それによって、複合デバイスに対するリモート証明効率をある程度まで改善することができるように、各ユニットの測定情報を受信して各ユニットに対して信用性証明を実行することなく、第1のユニットによって送信された別のユニットの証明結果を受信するだけでよい。
前述の実施形態において、複合デバイス2500/リモート証明デバイス2700の通信インターフェース2501/2701は、具体的には、複合デバイス2500とリモート証明デバイス2700との間のデータ通信を実施するために、複合デバイスのためのリモート証明装置2200/2300内の受信ユニット2201/2301および送信ユニット2202/2302として使用され得ることが理解され得る。