本開示の様々な実施形態を以下に詳細に考察する。特定の実装形態が考察されるが、これは例示の目的でのみ行われることを理解されたい。当業者は、本開示の趣旨及び範囲から逸脱することなく、他の構成要素及び構成が使用されてもよいことを認識するであろう。したがって、以下の説明及び図面は例示的なものであり、限定するものとして解釈されるべきではない。本開示の完全な理解を提供するために、多数の特定の詳細が説明される。しかしながら、ある特定の事例では、説明を不明瞭にすることを回避するために、周知又は従来の詳細は説明されない。本開示における1つの又はある実施形態への言及は、同じ実施形態又は任意の実施形態への言及であり得、そのような言及は、実施形態のうちの少なくとも1つを意味する。
「一実施形態」又は「実施形態」への言及は、実施形態に関連して説明される特定の特徴、構造、又は特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所における「一実施形態では」という句の出現は、必ずしも全てが同じ実施形態を指すわけではなく、他の実施形態と相互に排他的な別個の又は代替の実施形態でもない。更に、いくつかの実施形態によって示され得るが、他の実施形態によって示され得ない様々な特徴が説明される。
本明細書で使用される用語は、概して、本開示の文脈内で、及び各用語が使用される特定の文脈において、当技術分野における通常の意味を有する。代替言語及び同義語が、本明細書で考察される用語のうちのいずれか1つ以上に使用されてもよく、用語が本明細書で詳述又は考察されるか否かに特別な重要性は置かれるべきではない。場合によっては、ある特定の用語の同義語が提供される。1つ以上の同義語のリサイタルは、他の同義語の使用を除外しない。本明細書で考察される任意の用語の例を含む、本明細書の随所での例の使用は、例示にすぎず、本開示又は任意の例示的な用語の範囲及び意味を更に限定することを意図するものではない。同様に、本開示は、本明細書で与えられる様々な実施形態に限定されない。
本開示の範囲を限定することを意図せずに、本開示の実施形態による器具、装置、方法、及びそれらの関連結果の例を以下に示す。タイトル又はサブタイトルは、読者の便宜のために実施例において使用される場合があり、本開示の範囲を限定するものではないことに留意されたい。別段の定義がない限り、本明細書で使用される技術用語及び科学用語は、本開示が属する技術分野の当業者によって一般に理解される意味を有する。矛盾する場合には、定義を含む本明細書が優先する。
本開示の更なる特徴及び利点は、以下の説明に記載され、一部はその説明から明らかになるか、又は本明細書に開示された原理の実施によって知ることができる。本開示の特徴及び利点は、添付の特許請求の範囲において特に指摘される手段及び組み合わせによって実現及び取得することができる。本開示のこれら及び他の特徴は、以下の説明及び添付の特許請求の範囲からより完全に明らかになるか、又は本明細書に記載の原理を実施することによって知ることができる。
概要
本発明の態様は独立請求項に記載されており、好ましい特徴は従属請求項に記載されている。一態様の特徴は、各態様に単独で、又は他の態様と組み合わせて適用され得る。
セキュアネットワークルーティングのためのシステム、方法、及びコンピュータ可読媒体が提供される。例示的な方法は、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信することと、サービスに基づいて、サービスノードと通信する関連ノードを識別することと、関連ノードを識別した後、関連ノードのセキュリティ情報を要求することと、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成することと、複合セキュリティ情報をクライアントデバイスに送信することと、を含み得る。
例示的なシステムは、1つ以上のプロセッサと、命令を記憶する少なくとも1つのコンピュータ可読記憶媒体とを含むことができ、命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信し、サービスに基づいて、サービスノードと通信する関連ノードを識別し、関連ノードを識別した後、関連ノードのセキュリティ情報を要求し、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成し、かつ複合セキュリティ情報をクライアントデバイスに送信することを行わせる。
システムは、1つ以上のプロセッサと、命令を記憶する少なくとも1つのコンピュータ可読記憶媒体とを含むことができ、命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信し、サービスに基づいて、サービスノードと通信する関連ノードを識別し、関連ノードを識別した後、関連ノードのセキュリティ情報を要求し、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成し、かつ複合セキュリティ情報をクライアントデバイスに送信することを行わせる。
いくつかの態様では、セキュリティ情報は、検証のタイプに関連する複数のクレームを含み、検証のタイプは、少なくとも1つのハードウェア検証、一意アイデンティティ検証、データ完全性検証、ブート検証、及び実行可能検証を含む。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、関連ノードのセキュリティ情報内の黙示的クレームを識別することと、黙示的クレームを関連ノードからのセキュリティ情報に付加することと、更に含む。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、サービスノードのセキュリティ情報内と、関連ノードのセキュリティ情報内との各対応するクレームを組み合わせて、複合セキュリティ情報を生み出すこと更に含む。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、サービスノードのセキュリティ情報内の第1のクレームと関連付けられた第1の値、及び関連ノードのセキュリティ情報内の第1のクレームと関連付けられた第2の値を識別することと、第1の値及び第2の値に基づいて、複合セキュリティ情報内の第1のクレームについての複合値を生成することと、を更に含む。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報のうちの1つ内の第1のクレームと関連付けられた減分する値を識別することと、複合セキュリティ情報から第1のクレームを除外することと、を更に含む。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報内のセキュリティクレームを正規化することと、各セキュリティクレームを複合セキュリティ情報に組み合わせることと、を更に含む。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、アドレス指定可能なノードからサービスと関連付けられた候補ノードを識別するためにスパニングツリーアルゴリズムを実行することを更に含み、関連ノードが候補ノードから選択される。
いくつかの態様では、サービスノードは第1の信頼できるモジュールを含み、関連ノードは第2の信頼できるモジュールを含み、第1の信頼できるモジュールが第2の信頼できるモジュールとは異なる。
いくつかの態様では、上記で説明した方法、装置、及びコンピュータ可読媒体のうちの1つ以上は、候補関連ノードを識別するように要求を管理ノードに伝送することと、候補関連ノードのリストを受信することと、を更に含み、管理ノードは、グループメンバシッププロトコルを実行して、各サービスと関連付けられた異なるグループを作成する。
例示的な実施形態
ネットワーク内のノードの信頼性を検証又は立証するための異なる方法がある。アテステーションは、ブート時以降に発生したトランザクションのセットに基づいてノードの完全性を検証するために使用することができる信頼できるコンピューティングアプローチの一例である。信頼できるプラットフォームモジュール(Trusted Platform Module、TPM)プラットフォーム内のプロセッサなどの専用暗号プロセッサは、ノード及びその環境(例えば、ソフトウェア、ハードウェア、オペレーティングシステム、実行バイナリ、ファームウェアなど)の信頼性(例えば、アイデンティティ、完全性など)をアテストする(証明する)ために測定を行うことができる。これらの測定値は、ノードが安全な状態にあるというエビデンスを含む。しかしながら、ネットワーキングにおける共通の特徴であるヘテロジニアスシステムの信頼性を理解する現在の技術は存在しない。
開示される技術は、サービスと関連付けられた関連サービスノードを識別し、関連サービスノードの異なるセキュリティクレームを正規化することによって、ヘテロジニアスシステムにおいて信頼を確立するための課題に対処する。このようにして、アテストノードは、様々なセキュリティ情報を収集し、任意の関連サービスノードからのセキュリティクレームを要約する複合セキュリティ情報を作成し、要求ノードが、複合セキュリティ情報に基づいてアテストノードが信頼できるかどうかを判定することを可能にすることができる。複合セキュリティ情報は、サービスのセキュリティクレームの要約を提供する。
図1、図2、及び図3に示されるような、ネットワークデータアクセス及びサービスのためのネットワーク環境及びアーキテクチャの説明が、本明細書で最初に開示される。次に、図4に示すアテステーションルーティングオーケストレータについて説明する。次に、本開示は、図5及び図6のヘテロジニアスネットワークにおいて複合セキュリティクレームを生成する例示的なシステム、並びに対応するシーケンス図に移る。次に、複合セキュリティ情報を生成する様々な例について、図7、図8、図9、及び図10の例示に関連して考察する。次に、ヘテロジニアスネットワークにおいて複合セキュリティクレームを生成する方法について、図11、図12、及び図13を参照し考察する。次に、図14に示すように、例示的なデバイスの簡単な説明で考察を終了する。これらの変形例は、様々な実施形態が記載されるときに本明細書で説明されるものとする。ここで、本開示は、パケットによってトラバースされるネットワークノードの完全性の検証可能な証明を提供するための例示的な概念及び技術の最初の考察に移る。
コンピュータネットワークは、エンドノード間でデータを送信するための通信リンク及びセグメントによって相互接続された異なるノード(例えば、ネットワークデバイス、クライアントデバイス、センサ、及び任意の他のコンピューティングデバイス)を含むことができる。例えば、ローカルエリアネットワーク(local area network、LAN)、広域ネットワーク(wide area network、WAN)、ソフトウェア定義ネットワーク(software-defined network、SDN)、無線ネットワーク、コアネットワーク、クラウドネットワーク、インターネット等を含む、多くのタイプのネットワークが利用可能である。データトラフィックが1つ以上のネットワークを通して伝送されるとき、データトラフィックは、典型的には、トラフィックをソースノードから宛先ノードにルーティングする、いくつかのノードをトラバースする。
多数のノードを有することは、ネットワーク接続性及び性能を増加させることができるが、パケットがトラバースする各ノードが、無許可のデータアクセス及び操作のリスクを導入するので、セキュリティリスクも増加させる。例えば、パケットがノードをトラバースするとき、ノードが潜在的に危殆化されている(例えば、ハッキングされる、操作される、捕捉されるなど)ことに起因し得る導入されるセキュリティリスクが存在する。結果として、ネットワークユーザ、デバイス、エンティティ、及びそれらの関連付けられたネットワークトラフィックが特定のビジネス及び/又はセキュリティポリシーに準拠することを検証するために、コンプライアンス、セキュリティ、及び監査手順を実装することができる。
戦場、銀行環境、及びヘルスケア環境などにおいて、秘密情報がネットワーク内のノードを通して伝送されるとき、そのようなトラフィックは、そのトラフィックによって搬送されるデータ及び秘密情報へのアクセス、その漏洩、又はその改ざんを防止するために、危殆化されてないノードを通して送信されるべきである。攻撃者が何らかのセキュリティ上の弱点を介してデバイスへのアクセスを得た場合、ネットワークインターフェースのための以前の保護及び暗号化アプローチは、一般に、そのような無許可アクセス及び結果として生じる損傷を軽減又は対処するのに効果的ではない。
ネットワークトラフィックが特定のポリシーに準拠することを証明することは、トラフィックがネットワークノード(例えば、ファイアウォール、スイッチ、ルータなど)の明確に定義されたセットをトラバースしたこと、及びそのようなネットワークノードが修正されていない又は危殆化されていないことを安全な方式で証明することを伴い得る。これは、ネットワークノードがパケットに対してそれらの予想された又は意図されたアクション(例えば、パケット処理、セキュリティ又はポリシーコンプライアンス検証、ルーティングなど)を実行したこと、及びパケットがネットワークノードをトラバースしたことを保証するのを助けることができる。
いくつかのセキュリティアプローチは、デバイス上でホストされるアプリケーションをクラウド又は企業がホストするサービスに接続するために使用されるネットワーク内の任意の黙示の信頼を除去することを目的とすることができる。更に、いくつかのセキュリティアプローチは、パケットによってトラバースされるネットワーク及び/又はノードの信頼性(例えば、完全性、アイデンティティ、状態など)を検証するために実装され得る。場合によっては、トラフィックがノードの特定のセットをトラバースしたこと、及びそのようなノードが信頼でき、危殆化されていないことを立証又は検証するために、いくつかの検証チェックを実装することができる。いくつかの例では、ネットワーク内のノードの信頼性を検証又は立証するために、特定の通過証明(Proof-of-Transit、POT)、信頼できるプラットフォームモジュール(TPM)、アテステーション、又は完全性証明アプローチを実装することができる。
POTは、ネットワークユーザ又はエンティティが、トラフィックがネットワークノードの定義されたセットをトラバースしたかどうかを検証することを可能にすることができる。アテステーションは、以下で更に説明するように、ノードの完全性を検証するために使用することもできる。場合によっては、本明細書のアプローチは、トラフィックがノードの定義されたセットをトラバースしたこと、及びそのようなノードが危殆化されていないことをネットワークユーザ又はエンティティが検証することを可能にするセキュアなアプローチを提供するために、両方を統合することができる。
場合によっては、TPMを実装して、プラットフォーム内のハードウェア構成要素及びソフトウェア構成要素のアイデンティティを収集及び報告して、そのプラットフォームに対する信頼を確立することができる。コンピューティングシステムで使用されるTPMは、そのシステムと関連付けられた予想される挙動の検証を可能にし、そのような予想される挙動から信頼の確立を可能にするように、システムのハードウェア及びソフトウェアについて報告することができる。TPMは、TPMがアイデンティティ及び/又は他の情報を報告するホストシステムとは別個の状態を含むシステム構成要素とすることができる。TPMは、ホストシステムの物理リソース上に(間接的又は直接的に)実装することができる。いくつかの例では、TPM構成要素は、プロセッサと、ランダムアクセスメモリ(random access memory、RAM)、読取り専用メモリ(read only memory、ROM)、及び/又はフラッシュメモリなどのメモリとを有することができる。TPMの他の実装形態では、ホストプロセッサは、プロセッサが特定の実行モードにある間にTPMコードを実行することができる。ホストプロセッサが特定の実行モードにない限り、TPMによって使用されるメモリがホストプロセッサによってアクセス可能でないことを保証するために、システムメモリの部分をハードウェアによって分割することができる。
場合によっては、TPMなどの信頼できるコンピューティング(trusted computing、TC)実装は、ルートオブトラスト(Roots of Trust)に依拠することができる。ルートオブトラストは、信頼できるべきシステム要素とすることができ、その理由は、そのようなシステム要素による誤動作が検出可能でない場合があるからである。ルートのセットは、プラットフォームの信頼性に影響を及ぼす特性を十分に記述することができる最小限の機能を提供することができる。場合によっては、ルートオブトラストが適切に動作しているかどうかを判定することが可能でない場合がある。しかしながら、ルートがどのように実装されるかを判定することが可能であり得る。例えば、証明書は、ルートが信頼できるように実装されているという保証を提供することができる。
例示すると、証明書は、TPMの製造業者及び評価された保証レベル(evaluated assurance level、EAL)を識別することができる。そのような証明は、TPMにおいて使用されるルートオブトラストにおける信頼度のレベルを提供することができる。更に、プラットフォーム製造業者からの証明書は、TPMが、特定の要件に準拠するシステム上に適切にインストールされたという保証を提供することができ、したがって、プラットフォームによって提供されるルートオブトラストを信頼することができる。いくつかの実装形態は、信頼できるプラットフォームにおいて、測定のためのルートオブトラスト(Root of Trust for Measurement、RTM)、記憶のためのルートオブトラスト(Root of Trust for Storage、RTS)、及び報告のためのルートオブトラスト(Root of Trust for Reporting、RTR)を含む3つのルートオブトラストに依拠することができる。
RTMは、完全性測定値などの完全性情報をRTSに送信することができる。一般に、RTMは、測定のためのコアルートオブトラスト(Core Root of Trust for Measurement、CRTM)によって制御されるプロセッサであり得る。CRTMは、新しい信頼チェーンが確立されたときに実行される命令の最初のセットである。システムがリセットされると、プロセッサ(例えば、RTM)は、CRTMを実行することができ、次いで、CRTMは、そのアイデンティティを示す値をRTSに送信することができる。したがって、場合によっては、信頼チェーンの開始点をこのようにして確立することができる。
前述したように、TPMメモリは、TPM以外のエンティティによるアクセスから保護することができる。TPMは、そのメモリへの無許可のアクセスを防止するために信頼され得るので、TPMはRTSとして働くことができる。更に、RTRは、RTSの内容について報告することができる。RTR報告は、TPM内の1つ以上の値の内容のデジタル署名済みダイジェストであり得る。
アテステーションは、ノードの完全性を検証するために使用され得る別の例示的な信頼できるコンピューティングアプローチである。アテステーションは、ルータ又はスイッチなどのノードに適用されて、レイヤ1(L1)又はレイヤ(L2)接続デバイスなどの接続デバイスからのログをレビューし、これらのログを信頼できるストレージに維持することができる。これらのログは、ハードウェアデバイスのために生成された全ての信頼アンカーに秘密鍵を埋め込み、隣接するデバイスに証明書としてデバイスの公開鍵を公開することによって保護することができる。次いで、このピアリングデバイスは、定期的に、及び/又は何らかのログエントリイベント時に、信頼できるストレージからログ更新をプッシュすることができる。任意の提供された署名済みログをレビューすることは、ピアデバイスの現在の信頼できる状態の理解を提供することができる。更に、ブート時以降に発生したトランザクションのセットを振り返ることによって、そのピアデバイスがアサートしている情報の信頼性に関する判定を行うことができる。
いくつかの例では、セキュリティ測定値又はエビデンスを含むメタデータ要素を使用して、デバイス信頼性(例えば、完全性、状態など)の検証可能なエビデンスを提供することができる。メタデータ要素は、デバイスの信頼性を検証するための適用可能なデータを含むことができ、デバイス信頼性を検証するための適用可能な技法を通じて提供され得る。例えば、メタデータ要素は、デバイスと関連付けられたカナリアスタンプの一部として提供され得る。カナリアスタンプは、デバイスの信頼性を検証するために、デバイスと関連付けられた署名済み測定値を示すか、そうでなければ含むことができる。次に、そのような測定値は、各署名済み測定値がその真正性を証明するスタンプのようなものであり、トラブルの早期徴候を示す炭砿におけるカナリアのようなものであるため、カナリアスタンプと称することができる。そのような検証可能なエビデンスは、ネットワーク上のノードによって伝送されるパケットに付加又は含めることができる。したがって、メタデータ要素は、ノードの信頼性を評価し、それに応じて反応するために使用することができる。例えば、デバイス又はエンティティは、ノードと関連付けられたメタデータ要素をレビューして、そのノードが信頼されるべきではないと判定し、ネットワークポリシーを調整して、起こり得る損害を軽減することができる。
いくつかの実装形態では、TPMプラットフォーム内のプロセッサなどの専用暗号プロセッサは、ノード及びその環境(例えば、ソフトウェア、ハードウェア、オペレーティングシステム、実行バイナリ、ファームウェアなど)の信頼性(例えば、アイデンティティ、完全性など)をアテストするために測定を行うことができる。これらの測定値は、ノードが安全な状態にあるというエビデンスを含む。場合によっては、これらの測定値は、前述のようにカナリアスタンプを介して提供され得る。しかしながら、そのようなエビデンスの受信器は、エビデンスが新鮮であることを証明することができるはずであり、その理由は、エビデンスが古くなり、それによって、ノードの現在の信頼性を反映する際の有効性が潜在的に低減される可能性があるからである。例えば、そのようなエビデンスの鮮度を保証することなく、攻撃者は、以前に記録された測定値を注入し、現在のものとしてリプレイされたものをアサートするための機会を有する。
いくつかのアプローチは、「ノンス」を介して古いエビデンスのリプレイを検出することができる。ノンスは、ランダム性を導入するために使用され得る任意の数である。いくつかの事例では、ノンスは、暗号通信において1回だけ使用され得る。更に、ノンスは、TPMに渡され、及び/又はカナリアスタンプ/メタデータに組み込まれ得る。場合によっては、TPMによって提供される結果は、ノンスに基づく署名を含むことができる。ノンスは、トランザクションチャレンジ/レスポンス対話モデルを基礎とすることができるので、場合によっては、ノンスは、アテストデバイスから発信される単方向通信ではあまり有効でないことがある。例えば、ノンスは、非同期プッシュ、マルチキャスト、又はブロードキャストメッセージではあまり有効でないことがある。
しかしながら、そのピアが信頼できるかどうかを評価するプラットフォームが有利である多くの使用事例が存在する。信頼できるバイナリと共に非同期プッシュ、マルチキャスト、又はブロードキャストメッセージを使用して一方向アテステーションを実行することができることは、プラットフォームがそれらのピアが信頼できるかどうかを評価する多くの可能性を開く。無効なアテステーションの検出は、アラーム又はイベント、疑わしいデバイスからのネットワークアクセスの低減をトリガすることができ、又はアドミッション制御(例えば、IEEE802.1X)の一部になることができる。いくつかのプラットフォームは、一方向アテステーション機構をサポートするように構成することができる。
他のフレッシュネスアプローチは、TPMなどの信頼できるコンピューティング能力に基づくことができる。例えば、外部エンティティが、TPM内の内部カウンタの状態に基づいてアサートされたデータの鮮度を立証することを可能にするトークンを生成することができる。このトークンは、リプレイ攻撃を検出し、非同期プッシュ、マルチキャスト、及びブロードキャストメッセージのためのアテステーションを提供するために使用され得る。
前述の様々なアプローチは、バイナリプロセスなどの有効な計算構成要素がノード上で実行されていることを検証することを目的としたTPM統合能力と組み合わせることができる。これらの能力は、例えば、ランタイムマルウェア保護を提供する信頼できる実行環境(TEE)、デジタル署名済みコードモジュールのみがプロセッサにロードされ得ることを確実にする認証コードモジュール(Authenticated Code Module、ACM)等を含むことができる。これらの技術は、プロセッサがバイナリ署名の有効なチェーンを有する既知のソフトウェアを実行していることを立証することができる。
場合によっては、メタデータ要素、例えばカナリアスタンプ、及びトークンは、ノードのTPMから現在のカウンタ(例えば、クロック、リセット、リスタート)を抽出して、そのようなカウンタ及びノードからとられたセキュリティ測定量をパケットに組み込むことによって作成され得る。いくつかの例では、現在のカウンタ及び/又はセキュリティ測定量は、外部TPM内の情報を用いてハッシュされ得る。メタデータ要素及びトークンは、それによって、スプーフィング不可能なトークン又はメタデータ要素を提供することができ、これは、アテスティ(非証明側手段)上の連続的にインクリメントするカウンタを既知の外部状態と結び付けることができる。TPMカウンタの任意のリセットは、任意の後続のTPMクエリにおいて可視であり、プラットフォームの任意のリスタートもまた、後続のTPMクエリにおいて露出される。リセット及びリスタートのこれらの範囲内で、TPMのタイムチックカウンタは連続的にインクリメントする。したがって、これらのカウンタを含むアテスティTPM情報の任意のプッシュは、任意の以前に受信された測定値に続いて発生したと判定され得る。また、リセットカウンタ及びリスタートカウンタが変化していない場合、任意の以前の測定からの増分時間も知ることができる。
場合によっては、ネットワークピアによって信頼されるべき大量の情報が、TPMのプログラム構成レジスタ(Program Configuration Register、PCR)内に含まれないことがある。その結果、ノードが危殆化されていないことを立証する間接的な方法を適用することができる。
メタデータ要素、例えばカナリアスタンプ、及び/又はトークンの受信は、受信器が情報を検証するオプションを有するべきであることを意味し得る。多くの場合、そのような検証は、カナリアスタンプと共に送信される補足的エビデンスを必要とせずに実行することができる。更に、非コントローラベース又は集中型の実装形態では、検証ステップは、受信器において行われる必要はない。
いくつかの完全性検証実装形態では、コントローラ又はデバイスは、完全性検証アプリケーションを実装することができる。完全性検証アプリケーションは、変更イベントを認識し、既知の良好な値を評価するように設計することができ、これにより、例えば、TPMカウンタ、タイムスタンプ、ノンス、及び/又は時間トークンに基づいて、ブート完全性スタンプ及び実行プロセスバイナリ署名スタンプの評価が可能になる。何らかの不一致があると、コントローラ又は集中型デバイスは、ノードのインターフェースをシャットダウンすることによって、危殆化されたノードをそのネットワークピアから分離することができる。
いくつかの例では、メタデータ要素、例えばカナリアスタンプ、及び/又は完全性の検証は、測定ブートスタンプ(例えば、PCR0~7にわたるSHA1ハッシュ)、検証ブートスタンプ(例えば、認識されたバイナリのみがブート時に実行されたことを検証することができる)、プロセススタンプ(例えば、特定の1つ又は複数のプロトコルをアサートしているプロセスを通して立証されたルートオブトラスト)、ファイルシステムスタンプ(例えば、ベンダが判定したディレクトリのセット内の全てのファイル)、ログ完全性スタンプ(例えば、既存の完全性分析及びフォレンジックを増強するために使用される)、構成スタンプ(例えば、現在のデバイス構成の状態)などを実装することができる。いくつかの実装形態は、実装に依拠して、これらのスタンプのうちの全て又はいくつかを達成することができる。更に、いくつかの実装形態では、これらのスタンプの全て又はいくつかは、単一又は複数のスタンプを使用して実装又は達成され得る。
上述したように、TPMは、プラットフォーム内のハードウェア構成要素及びソフトウェア構成要素のアイデンティティを収集及び報告して、そのプラットフォームに対する信頼を確立するための方法を提供する。TPM機能は、モバイルフォン、パーソナルコンピュータ、ネットワークノード(例えば、スイッチ、ルータ、ファイアウォール、サーバ、ネットワークアプライアンスなど)、及び/又は任意の他のコンピューティングデバイスを含む様々なデバイスに埋め込むことができる。更に、アテステーションは、TPMがハードウェアルートオブトラストとしてどのように使用され得るかを記述し、ノードの完全性の証明を提供することができる。そのような完全性は、ハードウェア完全性、ソフトウェア完全性(例えば、マイクロローダ、ファームウェア、ブートローダ、カーネル、オペレーティングシステム、バイナリ、ファイルなど)、及びランタイム完全性を含むことができる。
場合によっては、TPM及びアテステーションは、本明細書で説明されるように実装されて、完全性の証明及び危殆化されていないノードを通る通過の証明を提供することができる。いくつかの例では、セキュリティ測定量を含むか又は反映するメタデータ要素及びトークンが、前述のように、ノードの完全性を検証し、ノード完全性の連続的な評価を実行するために使用される。したがって、本明細書で説明されるメタデータ要素及びトークンは、危殆化されていないノードを通る通過の証明を提供するために使用され得る。
いくつかの例では、メタデータ要素及びトークンは、危殆化されていないノードを介した通過の証明が望まれるネットワークをトラバースするパケットに追加のメタデータとして追加することができる。パケット内のメタデータ要素及びトークンをトランスポートするために、様々な戦略を実装することができる。場合によっては、メタデータ要素及びトークンは、現場(又はインバンド)操作、運用、及び管理(Operations, Administration and Management、IOAM)データフィールドで搬送することができる。
いくつかの実装形態では、メタデータ要素及びトークンは、IOAMトレースデータと共に搬送され得る。例えば、カナリアスタンプは、例えば、限定ではないが、IPv4、IPv6、ネットワークサービスヘッダ(network service header、NSH)等の様々なカプセル化プロトコルにおけるIOAMデータフィールドの一部として搬送され得る。場合によっては、カナリアスタンプは、IOAMトレースオプションデータ要素として(例えば、ノード完全性カナリアスタンプのためのIOAMトレースタイプと共に)IOAMデータフィールドにおいて搬送され得る。メタデータ要素、トークン、又はダイジェスト、例えばカナリアスタンプダイジェストは、パケットを転送する各ノードによってパケットのIOAMトレースオプションに追加することができる。
パケットが、IOAMメタデータ(例えば、IOAMカプセル化解除ノード)を除去するノード(例えば、宛先ノード及び/又は中間ノード)に到達すると、パケット内のメタデータ要素及び/又はトークンの有効性を検証して、パケットが危殆化されていないノードをトラバースしたことを判定することができる。いくつかの例では、カナリアスタンプは期限があるため、IOAMで定義されたパケットトレースタイムスタンプを使用して、パケットがそのノードをトラバースした時間ウィンドウ内のカナリアスタンプを立証することができる。
検証は、メタデータ要素又はトークンと関連付けられたセキュリティ測定値を最終的に立証することになる検証器又はコントローラなどのデバイスに大きなトランザクション負荷をかけることなく実行され得る。これは、測定値がまれに変化することがあるためである。検証器は、関連付けられたセキュリティ測定値が変化するときはいつでも、IOAMデータトレース内で搬送されるメタデータ要素及び/又はトークンを立証する必要があるだけであり得る(例えば、検証器が、ノードのTPMが検証器によって以前に確認されなかったPCR値を拡張するとみなすときはいつでも、検証器はコントローラでチェックする必要があるだけである)。
場合によっては、署名済みメタデータ要素内のタイムチックのみが増加するとき、メタデータ要素の署名のみが立証される。これを行うために、検証器は、メタデータ要素を配置することができる任意のノードの公開鍵を使用することができる。そのような署名立証は、測定値を検証するためにコントローラを使用せずに行うことができる。
別の例では、パケットは、メタデータ要素値、例えばカナリアスタンプ値の空間最適化を用いてIOAM POTデータを搬送することができる。例えば、新しいIOAM POTデータフィールドは、カナリアスタンプ又はカナリアスタンプのハッシュ拡張を搬送することができ、次に、カナリアスタンプデータは、ノードにわたって搬送され得る。場合によっては、カナリアスタンプハッシュ拡張は、TPMによって行われるPCR拡張操作と同様の方法であり得る。
場合によっては、カナリアスタンプハッシュは、いずれかのノードによって記録されたカナリアスタンプが検出なしに除去又は修正され得ないように、一方向ハッシュを提供することができる。カナリアスタンプダイジェストのための通過オプションデータのIOAM証明は、ハッシュアルゴリズム(例えば、SHA1で20オクテット、SHA256で32オクテットなど)によって定義され得る。いくつかの実装形態では、パケットの経路に沿った各ノードは、新しい又は更新されたカナリアスタンプダイジェストと共にパケットを転送することができる。いくつかの例では、新しい又は更新されたカナリアスタンプダイジェストは、以下のようにノードによって生成され得る。ここで、IOAMカナリアスタンプダイジェストの新しい値=(IOAMカナリアスタンプダイジェストの古い値||hash(ノードのカナリアスタンプ))のダイジェストであり、式中、IOAMカナリアスタンプダイジェストの古い値は、1つ以上の以前のホップによってパケットに含まれるカナリアスタンプダイジェストを参照することができる。
更に、場合によっては、パケットごとに変化し、IOAMメタデータオプション内の別のフィールドとして搬送されるパケットごとのノンス(Per Packet Nonce、PPN)が、リプレイ攻撃に対する堅牢性を提供するために追加され得る。説明のために、いくつかの例では、PPNを以下のように追加することができる。IOAMカナリアスタンプダイジェストの新しい値=(IOAMカナリアスタンプダイジェストの古い値||hash(ノードのカナリアスタンプ||PPN))のダイジェスト。したがって、IOAMカナリアスタンプダイジェストのための新しい値を作成するノードは、任意の以前のIOAMカナリアスタンプダイジェストの値をとり、その値をノードの現在のカナリアスタンプで拡張/ハッシュすることができる。連結及びハッシングの結果は、次いで、新しいIOAMカナリアスタンプダイジェストとしてIOAM POTデータ(又は他のIOAMデータフィールド)に書き込まれることができる。
検証器(例えば、カナリアスタンプデータを検証するデバイス)において、パケットが転送されたときに時間ウィンドウ内でトラバースされたノードについて計算された予想カナリアスタンプ値に対して同じ動作を実行することができる。検証器は、インラインデバイス又は集中型デバイスであり得る。更に、いくつかの例では、トラバースされることが予想されるノードは、IOAMトレース、ルーティング状態を使用して、又はアクティブプローブを送信することによって識別され得る。特定のメタデータ要素、例えばカナリアスタンプダイジェストを搬送するPOTデータの値と、予想されるカナリアスタンプ値との間の一致は、パケットが信頼できるノード又は危殆化されていないノードをトラバースしたことを証明することができる。
いくつかの例では、メタデータ要素立証を最適化するために1つ以上の戦略を実装することができる。例えば、メタデータ要素、例えばカナリアスタンプは、ノンス並びにTPM又はTPM2カウンタ(例えば、クロック、リセット、リスタート)を埋め込むことによって、リプレイ攻撃の試みを検出することができる。場合によっては、このノンスはメタデータ要素の一部であり、上述のPPNとは異なることがある。
ノンスは、ノンスの作成時間から検証器によって受信された第1のスタンプまでの間隔が鮮度の間隔を定義することができる(例えば、測定値が鮮度のこの間隔よりも古くない)ので、受信器に関連する。そこから、TPM2タイムチックカウンタは、新しいノンスの配信がなくても、鮮度のその初期ギャップを維持するために使用され得る。
いくつかの実装形態では、ノードにわたってメタデータ要素又はトークンの立証を最適化するために、以下のアプローチを実装して、同期情報を中央構成要素から各ノード及び検証器に配信することができる。例えば、中央サーバは、集中型ノンス値(例えば、追跡された乱数)をブロードキャスト又はマルチキャストすることができる。各ノードは、最新のノンスをピックアップし、それを使用して値をアテストすることができる。検証器は、各ノードから受信するメタデータ要素又はトークンの鮮度を知ることができる。この鮮度は、その特定のノンスが発行されてからの時間の差分であり得る。その後のアテステーションは、増分タイムチックを使用して、その初期時間ギャップからの鮮度を証明することができる。場合によっては、新しいノンスの発行は、時間ギャップを潜在的により短い間隔にリセットすることができる。
更に、場合によっては、各ノードは、アテストされた時間をそのメタデータ要素内に埋め込むことができる。アテストされた時間を得るために、時間ベースの単方向証明(Time-Based Uni-Directional Attestation、TUDA)方式、例えば、https//tools.ietf.org/id/draft-birkholz-i2nsf-tuda-01.htmlにおいて説明されているTUDA方式を使用することができ、その内容は参照によりそれらの全体が本明細書に組み込まれる。これは、TUDA時間同期トークンが作成されたときに、ノードにおけるアテストされた時間と、このノードにおけるTPM2カウンタの値との両方の利用可能性をもたらすことができる。これは、中心ノンス権限の使用を排除することができるが、ノンスがTUDA時間同期トークンによって置き換えられ得るので、メタデータ要素のサイズを増加させ得る。このアプローチはまた、TUDAに従って中央タイムスタンプ局を実装し得る。いくつかの例では、各ホップについて、カナリアスタンプダイジェスト値は、以下の通りであり得る。IOAMカナリアスタンプダイジェストの新しい値=(IOAMカナリアスタンプダイジェストの古い値||hash(ノードのカナリアスタンプ||ノードのTUDA時間同期トークン))のダイジェスト。
このアプローチは、多くの利点を提供することができる。例えば、限定するものではないが、このアプローチを用いると、検証器は、ホップの時間同期トークンの署名が変化した場合にのみ、その署名を検証することによって、検証の回数を制限することができる。更に、このアプローチでは、第1の測定値が受信されたときにタイムギャップノンス切替え鮮度(changeover freshness)がないことがある。更に、場合によっては、このアプローチは、前述したように、PPNを搬送することなく、又はノードにわたってノンスを同期させることなく実装され得る。
更に、アテスタ、例えばノード又は検証器は、ピア及び/又はアテスタによって作成された乱数、あるいは擬似乱数を使用して、アテステーション情報を生成及び検証することができる。具体的には、アテスタは、1つ以上のレイヤ2ピアから乱数を累積することができる。乱数は、特定の時間量、例えば短い持続時間にわたってピアから累積され得る。次に、乱数は、適用可能な技法、例えば、ブルームフィルタを通してある数に組み合わせられることができる。この数は、結果を生成するための暗号プロセッサのためのノンスとして機能することができる。以下のように、潜在的にアテスタを含むレイヤ2ピアは、暗号プロセッサによって作成された結果を使用して、それらの対応する提供された乱数が、結果を作成するために暗号プロセッサによって最終的に使用されるノンスを生成する際に使用されたことを検証/立証することができる。次に、潜在的にアテスタを含むレイヤ2ピアは、ピアによって生成された乱数、乱数から作成されたノンス、及び/又はノンスから暗号プロセッサによって作成された結果に基づいて、検証されたアテステーション情報を生成することができる。
パケットによってトラバースされるネットワークノードの完全性の明示的な検証可能な証明を提供するための例示的な概念及び技術の最初の考察を提供したので、本開示は次に図1に移る。
図1は、いくつかの実装形態によるネットワーキング環境100の一例のブロック図である。関連する特徴が示されているが、当業者は、本明細書で開示される例示的な実装形態の態様を不明瞭にしないように、簡潔にするために様々な他の特徴が示されていないことを本開示から理解するであろう。
この例では、ネットワーキング環境100は、相互接続されたノード(例えば、108A~108N、110A~110N、及び112A~112N)のネットワーク114を含むことができる。ネットワーク114は、LANなどのプライベートネットワーク、及び/又はクラウドネットワーク、コアネットワークなどのパブリックネットワークを含むことができる。いくつかの実装形態では、ネットワーク114はまた、サブネットワーク114Aなどの1つ以上のサブネットワークを含むことができる。サブネットワーク114Aは、例えば、限定はしないが、LAN、仮想ローカルエリアネットワーク(virtual local area network、VLAN)、データセンタ、クラウドネットワーク、WANなどを含むことができる。いくつかの例では、サブネットワーク114Aは、インターネットなどのWANを含むことができる。他の例では、サブネットワーク114Aは、LAN、VLAN、及び/又はWAN内に含まれるノードの組み合わせを含むことができる。
ネットワーキング環境100は、ソースノード102を含むことができる。ソースノード102は、宛先ノード116宛てのデータパケットと関連付けられたネットワーキングデバイス(例えば、スイッチ、ルータ、ゲートウェイ、エンドポイントなど)であり得る。ソースノード102は、ネットワーク114上の候補次ホップノード108A~108Nと通信することができる。候補次ホップノード108A~108Nの各々は、ソースノード102と宛先ノード116との間のそれぞれのルート内に含まれ得る。更に、場合によっては、候補次ホップノード108A~108Nの各々は、ネットワーク114内の候補第2ホップノード110A~110Nと通信することができる。候補第2ホップノード110A~110Nの各々は、同様に、ネットワーク114内の候補第Nホップノード112A~112Nと通信することができる。
ネットワーキング環境100はまた、アテステーションルーティングオーケストレータ104を含むことができる。アテステーションルーティングオーケストレータ104は、候補次ホップノード108A~108Nと通信することができる。いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、候補次ホップノード108A~108Nからアテステーションデータ(例えば、カナリアスタンプ、セキュリティ測定量、署名、及び/又はメタデータ)又はベクトルを取得することができる。いくつかの例では、アテステーションルーティングオーケストレータ104は、候補第2ホップノード110A~110N及び/又は候補第Nホップノード112A~112Nから追加情報を取得し、パケットの特定の候補次ホップノードを選択する際に追加情報を利用することができる。いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、2ホップ超離れているノード(例えば、候補第3ホップノード、候補第4ホップノードなど)から追加情報を取得することもできる。
アテステーションルーティングオーケストレータ104は、検証器システム106と通信することができる。検証器システム106は、ネットワーク114とは別個に実装されるものとして概念的に示されているが、検証器システム106は、例えば、ネットワーク114内のネットワークデバイスの一部として、ネットワーク114内に実装することができる。いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、信頼できる画像ベクトルなどの信頼できる状態を検証器システム106から取得することができる。検証器システム106は、検証済み状態リポジトリ106A及び1つ以上のサーバ106Bを含むことができる。いくつかの例では、検証済み状態リポジトリ106A内の検証済み状態は、1つ以上の検証済み画像、検証済みセキュリティ測定値、検証済み設定、検証済みノードデータ、及び/又は任意の他の検証済み信頼若しくは完全性データを含むことができる。いくつかの実装形態では、検証済み状態リポジトリ106A内の検証済み状態は、危殆化されていない状態又は画像(例えば、ハッキングされておらず、攻撃されておらず、不適切にアクセスされていない状態又は画像)を表すある程度の信頼度で知られている1つ以上の信頼できる状態又は画像ベクトルを含むことができる。
図4を参照して非常に詳細に説明されるように、場合によっては、アテステーションルーティングオーケストレータ104は、信頼できる状態又は画像ベクトル及びアテステーション状態又はベクトルに基づいて、データパケットを選択し、候補次ホップノード108A~108Nのうちの特定の候補次ホップノードに向けることができる。更に、アテステーションルーティングオーケストレータ104は、宛先ノード116宛てのデータパケットを、特定の候補次ホップノードに向けることができる。
図2は、いくつかの実装形態による別の例示的なネットワーキング環境200のブロック図である。この例では、ネットワーキング環境200は、アテステーションルーティングオーケストレータ202Aを実装するソースノード202を含む。いくつかの実装形態では、アテステーションルーティングオーケストレータ202Aは、図1のアテステーションルーティングオーケストレータ104と同様であってもよく、又はそれから適合されてもよい。
ソースノード202は、1つ以上のプロセッサ202Bを含むことができる。いくつかの実装形態では、1つ以上のプロセッサ202Bは、候補次ホップノード108A~108Nについての信頼度スコアを生成するための処理リソースを提供することができる。
いくつかの実装形態では、1つ以上のプロセッサ202Bは、信頼度スコアから、1つ以上の選択基準を満たす特定の信頼度スコアを選択するための処理リソースを提供することができる。
いくつかの例では、ソースノード202はメモリ202Cを含むことができる。メモリ202Cは、例えば、限定はしないが、RAM(ランダムアクセスメモリ)、ROM(読取り専用メモリ)などの非一時的メモリであり得る。メモリ202Cは、宛先ノード116宛てのパケットなどのデータを記憶することができる。いくつかの実装形態では、メモリ202Cは、検証器システム106から取得された信頼できる状態又は画像ベクトルを記憶することができる。いくつかの実装形態では、メモリ202Cは、候補次ホップノード108A~108Nから取得されたアテステーション状態又はベクトルと、任意選択で、候補第2ホップノード110A~110N及び/又は候補第Nホップノード112A~112Nから取得されたアテステーション状態又はベクトルとを記憶することができる。ソースノード202はまた、データパケット及び状態又はベクトルを取得、受信、及び伝送するためのネットワークインターフェース202Dを含むことができる。
いくつかの実装形態では、ソースノード202は、信頼できる状態又は画像ベクトル及びアテステーション状態又はベクトルに基づいて、データパケットを選択し、特定の候補次ホップノードに向けることができる。
図3は、いくつかの実装形態による別の例示的なネットワーキング環境300のブロック図である。この例では、候補次ホップノード108A~108Nのうちの1つ以上は、信頼できる状態又は画像ベクトルを検証器システム106からソースノード302に中継することができる。いくつかの実装形態では、ソースノード302は、図1のアテステーションルーティングオーケストレータ104及び/又は図2のアテステーションルーティングオーケストレータ202Aと同様の、又はそれらから適合されたアテステーションルーティングオーケストレータ302Aを含むことができる。ソースノードは、プロセッサ302B、メモリ302C、及びネットワークインターフェース302Dを含むことができる。
いくつかの実装形態では、検証器システム106は、信頼できる状態又は画像ベクトルに署名し、署名済みの信頼できる状態又は画像ベクトルを特定の候補次ホップノードに提供することができ、次に、候補次ホップノードは、署名済みの信頼できる状態又は画像ベクトルをソースノード302に提供することができる。いくつかの実装形態では、特定の候補次ホップノードに署名済みの信頼できる状態又は画像ベクトルを提供させることは、ソースノード302がリモートノード(検証器システム106)にコンタクトする必要がない場合があるので、アテステーション時間(例えば、特定の候補次ホップノードの信頼性を判定するための時間)を短縮することができる。いくつかの実装形態では、単一のアテステーションプロセス(例えば、検証器システム106が信頼できる状態又は画像ベクトルに署名する)が複数のソースノードのアテストを容易にするので、アテステーション時間を更に短縮することができる。換言すると、信頼できる状態又は画像ベクトルは、ソースノードごとに生成及び評価されなくてもよい。
更に、ソースノード302が検証器システム106に接続されていない(例えば、リンクダウンしている)実装形態では、特定の候補次ホップから信頼できる状態又は画像ベクトルを取得することは、ノードアテステーションのための代替機構を提供する。いくつかの実装形態では、検証器システム106は、署名プロセスの一部として、タイムスタンプ付きの応答を信頼できる状態又は画像ベクトルに付加し、これは、ステープリングと称されることがある。その結果、ソースノード302は、特定の候補次ホップノードをアテストするために検証器システム106にコンタクトしなくてもよい。
図4は、いくつかの実装形態によるコントローラオーケストレーションされたアテステーションベースのルーティング400の一例のブロック図である。いくつかの例では、ソースノード402は、図1のソースノード102と同様であるか、又はそれから適合される。図4に示されているように、アテステーションルーティングオーケストレータ104は、ソースノード402から分離されているが、ソースノード402に連結(例えば、接続)されている。いくつかの例では、アテステーションルーティングオーケストレータ104は、候補次ホップノード108A~108Nと、任意選択で候補第2ホップノード110A~110N及び/又は候補第Nホップノード112A~112Nとを含むネットワーク114の知識を有するコントローラを含むことができる。
例えば、いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、ネットワーク管理システム(network management system、NMS)であってもよい。別の例として、いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、CiscoのDigital Network Architecture(DNA)などのインテントベースのネットワーキングシステムであり得る。更に別の例として、いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、無線LANコントローラ(wireless LAN controller、WLC)とすることができ、候補次ホップノード108A~108N及び任意選択で候補第2ホップノード110A~110N及び/又は候補第Nホップノード112A~112Nは、アクセスポイント、ユーザデバイス、スイッチ、ルータ、ファイアウォールなどのネットワーキングデバイスとすることができる。
アテステーションルーティングオーケストレータ104は、候補次ホップノード108A~108Nからアテステーションデータ(例えば、カナリアスタンプ)を取得することができる。候補次ホップノード108A~108Nの各々は、ソースノード402と宛先ノード(例えば、114)との間のそれぞれのルート内に含まれ得る。いくつかの実装形態では、それぞれのルートは互いに独立している。
アテステーションルーティングオーケストレータ104は、アテステーションデータに基づいて信頼度スコアを判定することができる。例えば、場合によっては、信頼度スコアの各々は、アテステーションデータのうちの対応する1つと信頼できる状態又は画像ベクトルとの間の比較に基づくことができる。いくつかの実装形態では、アテステーションルーティングオーケストレータ104は、信頼できる状態又は画像ベクトルを検証器システム106から取得することができる。
いくつかの例では、アテステーションルーティングオーケストレータ104は、候補第2ホップノード(例えば、110A~110N)及び/又は候補第Nホップノード(112A~112N)からアテステーションデータを取得することができる。候補第2ホップノード及び/又は候補第Nホップノードの各々は、候補次ホップノード108A~108Nのうちの対応する1つと宛先ノードとの間のそれぞれのルート内に含まれ得る。更に、信頼度スコアの各々は、候補次ホップノード108A~108Nからのアテステーションデータのうちの別の対応する1つと信頼できる状態又は画像ベクトルとの間の比較と組み合わせた、アテンションデータのうちの対応する1つと信頼できる状態又は画像ベクトルとの間の比較に更に基づくことができる。
アテステーションルーティングオーケストレータ104は、信頼度スコアから、1つ以上の選択基準を満たす特定の信頼度スコアを選択することができる。特定の信頼度スコアは、候補次ホップノード108A~108Nのうちの特定の候補次ホップノードと関連付けられる。
アテステーションルーティングオーケストレータ104は、宛先ノード宛てのデータパケットを、特定の候補次ホップノードに向けることができる。例えば、場合によっては、アテステーションルーティングオーケストレータ104は、ソースノード402がデータパケットを特定の候補次ホップノードに送信することを容易にするために、アテストされたルート情報(例えば、立証されたカナリアスタンプデータ、セキュリティ測定値など)をソースノード402のアテストされたルートマネージャ404Dに提供することができる。アテストされたルート情報は、候補次ホップノード108A~108Nの各々の信頼性を示すことができる。
例えば、いくつかの実装形態では、アテストされたルート情報は、候補次ホップノード108A~108Nのうちのセキュアな候補次ホップノードを識別する識別子(例えば、インターネットプロトコル(IP)アドレス、メディアアクセス制御(media access control、MAC)アドレス、サービスセット識別子(service set identifier、SSID)など)を含む。この例では、ソースノード402は、データパケットをセキュアな特定の候補次ホップノードにルーティングするために、識別子に基づいてデータパケットを提供することができる。
別の例として、いくつかの実装形態では、アテストされたルート情報は、候補次ホップノード108A~108Nと関連付けられた信頼度スコアを含むことができる。この例では、アテストされたルートマネージャ404Dは、1つ以上の選択基準に基づいて特定の候補スコアを選択することができる。更に、アテストされたルートマネージャ404Dは、特定の候補スコアと関連付けられた特定の次ホップノードにデータパケットを提供することができる。いくつかの例では、アテステーションルーティングオーケストレータ104は、特定の信頼度スコアが信頼度閾値を下回ると判定したことに応答して、追加のデータパケットを特定の候補次ホップノードに向けることを停止することができる。
場合によっては、ソースノード402は、1つ以上のプロセッサ404Aを含むことができる。1つ以上のプロセッサ404Aは、アテステーションルーティングオーケストレータ104から取得されたアテストされたルート情報を管理するための処理リソースを提供することができる。ソースノード402はまた、メモリ404Bを含むことができる。メモリ404Bは、例えば、RAM、ROMなどの非一時的メモリを含むことができる。いくつかの例では、メモリ404Bは、取得されたアテストされたルート情報及び伝送されるべきデータパケットなどのデータを記憶することができる。ソースノード402はまた、アテストされたルート情報を取得し、他のデータを送信/受信するためのネットワークインターフェース404Cを含むことができる。
場合によっては、ネットワークデバイスが危殆化されているかどうかは、ネットワークデバイスと関連付けられたインジケータと時間情報とに基づいて判定され得る。インジケータは、限定はしないが、特定のデバイスが危殆化されているかどうかを示すセキュリティ測定値又はエビデンスフットプリントのセットを含むことができる。そのようなインジケータは、例えば、限定はしないが、TPM、カナリアスタンプ、Syslog、YANG Push、EEM、ピアデバイス、トラフィックカウンタ、及び他のソースなどの1つ以上のソースに由来し得る。可視性は、適時に危殆化を識別する方法であり得る。
インジケータがない(すなわち、セキュリティ測定値又はフットプリントが利用可能でない)とき、デバイスが危殆化される確率は、デバイスが既知の良好な状態にあるという最後の立証から経過した時間の関数であり得る。場合によっては、前述のインジケータを用いて、ネットワーク内で動作する任意の所与のデバイス上の危殆化の確率又は可能性を推定するための式を提供することができる。
例えば、P_v1は、危殆化に対応するイベント/署名の特定のセットが存在する場合のタイプ1の危殆化の確率として定義することができる。P_v2は、タイプ2の危殆化の確率として定義することができ、P_vxは、タイプxの危殆化の確率として定義することができる。これらの危殆化(P_v1~P_vx)の各々が独立であると仮定すると、以下の式は、認識された署名(P_v)に基づく危殆化の確率を提供することができる。
P_v=1-((1-P_v1)(1-P_v2)(1-P_vx)) 式(1)
異なるタイプの評価された危殆化(P_v1、P_v2、P_vx)の間に相互依存性がある場合、式(1)の代わりに、又は式(1)と共に、他のタイプの式を使用することができる。
更に、場合によっては、所与の確率(例えば、P_v1-P_vx)は、(例えば、式(1)を介して)危殆化の確率が計算されているデバイスからのイベントのエビデンス、及び/又は(例えば、式(1)を介して)危殆化の確率が計算されているデバイスに隣接する1つ以上のデバイスから取得されたエビデンスに基づいて判定され得る。
場合によっては、配備環境内のデバイスにおいて不可視の危殆化が発生している確率は、以下の式によって表すことができる。
Pi=(1-xt)n 式(2)
式2において、xは、期間tにおける不可視構成機会の可能性であり、nは、良好な/非危殆化システム状態の最後の検証以降のt個の間隔の数である。
Piを効果的に知ることは、デバイスが何らかの具体的なエビデンスとは無関係に危殆化されているとみなされる前に予想される半減期をオペレータが知っていることを意味し得る。不可視の危殆化の確率は静的である必要はないことに留意されたい。ウイルス/攻撃の現在の知識に基づくリアルタイム修正が可能であり得る。
上述したような可視因子及び不可視因子についての公式化(式(1)及び式(2))を用いて、所与のデバイスについての危殆化の全体的な確率は、以下の式によって与えられ得る。
Pc=1-((1-Pv)*(1-Pi)) 式(3)
式(3)は、所与のデバイスの信頼性のインジケータを提供する。このメトリックは、時間ベースのエントロピーと、既知の危殆化に相関され得る任意の利用可能なエビデンスとの両方を考慮する。
Pcを計算する(又は概算する)ことができれば、様々な関数を効率的に優先順位付けすることができる。例えば、コントローラは、デバイスのより深い検証(又はおそらく直接リフレッシュ)をいつ行うかをスケジュールすることができる。このスケジューリングは、デバイスメモリ位置(危殆化された可能性がある実行可能コードを含む可能性がある位置)を立証するためにアクティブチェックをいつ実行するかを判定することを含むことができる。これらは、システムを既知の良好な状態に戻す(及びエントロピータイマをリセットする)ために使用され得る。ローカル構成リポジトリは、時間だけに基づくのではなく、進行中のセキュリティ/信頼性問題のエビデンスに基づいてリフレッシュされ得る。システムチェックのスケジューリングを超えて、Pcの値に基づく転送される黙示事項が存在し得る。例えば、ルーティング又はスイッチング挙動は、リモートデバイスの相対的な信頼性に基づいて調整/影響され得る。より高いPc値が存在する場合、秘密データトラフィックフローは、そのデバイスを迂回してルーティングされ得る。
本開示の更なる利点として、フローがエンドポイント間で発生しているという事実であっても、保護されるべき情報とみなされ得るシナリオが存在するため(例えば、戦場において)、暗号化のみでは、秘密フローを保護するには不十分であり得ることに留意されたい。
上で考察されたように、信頼性ベクトルは、直接ピアからのクレームがその検証された信頼性を表すことを可能にすることができる。信頼性ベクトルは、ブート完全性、ハードウェア完全性、又は実行可能完全性などの特定のパラメータのセキュリティをアテストする少なくとも1つのセキュリティクレームを含む。セキュリティクレームは、セキュリティをサポートすることを肯定するか、又はセキュリティをサポートすることを減分する(又は拒否する)ことができる。その結果、ネットワークデバイスのセットにわたって信頼のメッシュを確立し、維持することができる。しかしながら、信頼性ベクトルは、ルーティングプロトコルが、特定のインターネットプロトコル(IP)パケットのみが信頼できる経路をとることを確実にするために利用された、複数ホップ離れた信頼性関係を表さない。
コンフィデンシャルコンピューティングの出現により、TEEが、任意の直接接続されたTEEの信頼性を証明可能にアサートすることが有用になった。システムは、ソフトウェアの既知であり証明可能に本物の/信頼できるインスタンスと直接ピアリングするように構成することができる。しかしながら、直接接続されたピアのステータスの知識は、信頼できないデータが上流に挿入されている可能性があるので、基礎となるシステム全体の信頼性を証明するのではない。したがって、エンドポイントにおける信頼の単一のクレームは、ヘテロジニアスシステムに含まれる全ての構成要素の信頼のレベルを確立するのに十分ではなく、ヘテロジニアスシステムの信頼性を共有する現在の方法はない。
本発明は、これらの問題/不一致を解決するためのシステム、方法、及びコンピュータ可読媒体を含む。具体的には、本技術は、直接接続されたTEEにデータを提供する任意の間接接続されたTEEの信頼性を検証するためのシステム、方法、及びコンピュータ可読媒体を含む。
ヘテロジニアスシステム間でアサートされ得る信頼性のクレームを標準化することによって、アプリケーション及び計算デバイスのヘテロジニアスなセットが、システム全体の信頼性ベクトル(例えば、信頼性ポスチャ)を維持することが可能である。システム全体の信頼性ベクトルは、肯定クレームの共通集合及び減分クレームの和集合であり得る。他の例では、システム全体の信頼性ポスチャは、ヘテロジニアスシステム内のサービスノードと関連付けられたクレームの数学的及び論理的な組み合わせであり得る。システムレベル信頼性ベクトルはまた、ヘテロジニアスシステムに接続する任意のデバイスによって使用されて、ピアシステムとの接続性を許可するかどうか、及びピアシステムへの接続にポリシー(例えば、レート制限、特定のコンテキストへの接続など)を適用するかどうかを判定することができる。
表1は、いくつかの例による、信頼性ベクトルに含めることができる様々なセキュリティクレームの例を示す。いくつかの例では、システムは、アテストデバイスに関係するアプリケーション検証器によってアサートされ得る信頼性のクレームを正規化(例えば、標準化)することができる。セキュリティクレームは、デバイスのセキュリティを肯定するか、又はデバイスのセキュリティを減分する(例えば、拒否する)ことができる。
いくつかの例では、セキュリティクレームは、クレームのリストとすることができ、複数のクレームの存在は、競合状態(例えば、[「executables-verified」、「executables-fail」]が論理的に不可能であることを示すことができる。他の例では、セキュリティクレームは、表1のセキュリティクレームに対応し得るセキュリティクレーム及び対応する値を識別する鍵値ペアであり得る。JavaScriptオブジェクト表記(JavaScript object notation、JSON)[{「areExecutablesVerified」:true,「fileIntegrity」:「225」}])に対応する例示的なオブジェクトについて、「areExecutablesVerified」は、「executables-verified」及び「executables-fail」セキュリティクレームに対応し、ファイルシステム整合性と関連付けられたセキュリティクレームと関連付けられたセキュリティ値を識別する整数値を含む。
異なる信頼できるコンピューティングデバイス(例えば、異なるTEE)は、異なるセキュリティパラメータ、セキュリティ要件などを有する。TEEの例は、例えば、TPM、Cisco trust anchor module(TAM)、ARM TrustZone、AMD platform security processor(PSP)、Secure Service Container(SSC)、Secure Execution、Intel Software Guard Extensions(SGX)secure enclave、MultiZone、Keystone Enclave、Microsoft Pluton、及びPenglai Enclaveを含む。異なる信頼できるコンピューティングデバイスは、異なるセキュリティククレームを有することができ、開示されるシステム及び方法は、異なるTEEタイプの能力に対してデバイスクレームを正規化することができる。例えば、システムは、どのクレームが特定のタイプのTEEに対して自動的又は黙示的であるかを識別することができる。いくつかの黙示的なクレームは、ワークロードがセキュアエンクレーブ(例えば、Intel SGX Secure Enclave)内で検証可能に実行されているときに「confidential-data-in-motion」が有効であることを含むことができる。以下の表2は、TPMデバイス及びTAMデバイスからのセキュリティクレームの比較、並びに対応するセキュリティクレームがどのように判定され得るかを示す。
表3及び表4は、いくつかの例による、信頼性ベクトルの例を示す。表3及び表4の信頼性ベクトルは、説明のためにJSON形式で示されており、任意の好適な形式で提供することができる。いくつかの実装形態では、システムは、信頼性ベクトルを生成するアテスタに関連する検証プロセスを含むことができ、信頼性ベクトルは、アテスタデバイスに関連するクレームのセットを、アテスタとアプリケーションデータを交換する他のマイクロサービス/サブシステムと集約することができる。信頼性ベクトルは、インターフェース上のアテスタのセットの外部に公開することができる。これにより、他のプロセスは、1組のアテスタの外部で、1組のビジネス関連/有用なセキュリティクレームをサポートすることができることをアテスタインターフェースがアサートすることができるかどうかを判定することができる。例えば、システムは、インターフェースの遠い側のデバイスのセットが最小信頼性レベルを満たすことができるかどうかを表現することができる。
図5は、いくつかの例による、アテスタを相互接続するためのハブアンドスポークトポロジ500の例を示す。いくつかの実装形態では、信頼性ベクトル(例えば、セキュリティ情報)は、基本クレーム又は従属クレームを利用することによって、システムによって生成され得る。信頼性ベクトルを生成する方法は、相互接続システムのトポロジに基づくことができる。例えば、信頼性ベクトルを生成する方法は、最小の計算労力及び最適な動作の簡素さを含むことができる。システムレベルクレームを計算する3つの方法が本明細書に記載されており、これらの方法は、アテスタを相互接続するトポロジに基づくことができる。
いくつかの実装形態では、アテスタを相互接続するハブアンドスポークトポロジを利用することができる。例えば、検証器502は、各アテスタの信頼性を評価し、デバイス固有の信頼性ベクトル(例えば、セキュリティ情報)を生成することができる。例えば、検証器502は、記憶媒体510、人工知能(artificial intelligence、AI)サービス512、クラウドサービス514、又はパブリッククラウドインフラストラクチャ518のための信頼性ベクトルを生成することができる。クライアント504は、ネットワーク508を介して伝送された要求に基づいて、サービスについてサーバ506に信頼性ベクトルを要求することができる。場合によっては、サービスは、一時的な要求(例えば、銀行口座の検索)又は持続接続(例えば、ストリーミングメディア接続)であってもよい。持続接続の非限定的な例は、例えば、Googleリモートプロシージャコール(Google remote procedure call、gRPC)接続、ウェブソケット接続などを用いて形成され得る。
サーバ506は、サービスと関連付けられた相互接続されたデバイスに基づくハブアンドスポークトポロジに基づいてセキュリティ情報(例えば、信頼性ベクトル)を生成することができる。信頼できる処理を必要とするデータが提供又は受信される、アテスタのサービスノード(例えば、サーバ506)ごとに、サーバ506は、信頼性ベクトルが改ざんされ得ないことを保証するための機構を使用して、関連サービスノードからアップストリーム信頼性ベクトルを取り出すことができる。図5に示される例では、サーバ506は、記憶媒体510(例えば、リレーショナルデータベース、文書データベース、グラフクエリ言語(graph query language、GraphQL)サービスなど)、AIサービス512、及びクラウドサービス514がサーバ506によるサービスに統合され得ることを判定する。サーバ506はまた、パブリッククラウドインフラストラクチャ518がクライアント504のためのサービスに直接的又は間接的に実装され得ることを識別し得る。
いくつかの実装形態では、サーバ506は、関連サービスノードを識別するために異なる機構を使用することができる。例えば、サーバ506は、グループメンバシッププロトコルを使用して、グループのメンバを管理する管理ノードに、実行時に関連サービスノードを識別するように要求することができる。他の例では、サーバ506及びサービスノードは、関連サービスノードの循環ループの形成を防止するためにスパニングツリープロトコルを実装することができる。一例では、サーバはサービスを提供することができ、各接続要求はコンパイル時に分析することができる。例えば、コンパイラの構文解析段階中に、接続要求と関連付けられた各エンドポイントを識別することができ、構文解析器は、各対応する接続要求のエンドポイントに基づいてセキュリティ情報を要求するコードを挿入するように構成され得る。
サーバ506はまた、信頼性ベクトルが改ざんされ得ないことを確実にすることができ、信頼性ベクトルは、TEEタイプによって異なり得る。例えば、SGXでは、開発者が署名したセキュアエンクレーブとのインターフェースで十分であり得る。TPMを含むサーバ506のサービスノード(例えば、記憶媒体510、AIサービス512、クラウドサービス514、又はパブリッククラウドインフラストラクチャ518)の例では、スタンプされたパスポートが、そのサービスノードから要求され得る。
いくつかの例では、サーバ506は、TEEと関連付けられた任意の黙示的なクレームを、対応する明示的なクレームに変換し得る。サーバ506は、様々なサービスノードの組み合わせからの黙示的クレーム及び明示的クレームを正規化するように構成され得る。正規化されたセキュリティクレームに基づいて、サーバ506は、ヘテロジニアスサービスノードのグループについて標準化されたセキュリティ情報を提供する複合信頼性ベクトル(例えば、複合セキュリティ情報)を合成することができる。例えば、特定のTEEタイプは、2つの異なる正規化されたパラメータに対応し得る単一のパラメータを含むことができ、サーバ506は、単一のパラメータを2つの正規化されたパラメータに変換する。信頼性ベクトルのパラメータがインターフェースから利用不可能であるか、又は検証され得ない場合、信頼性ベクトルは、ヌルとみなされるか、又はデフォルト値に設定され得る。
サーバ506は、サーバ506の信頼性ベクトル及びサービスノードからの信頼性ベクトルからの肯定する値又は減分する値に基づいて、明示的クレーム及び黙示的クレームに基づいて複合信頼性ベクトル(例えば、信頼性ベクトル)を合成する。一例では、セキュリティクレームを論理的に組み合わせて、肯定クレーム及び減分クレームを要約する複合信頼性ベクトルを生成することができる。例えば、任意の肯定クレームについて、複合信頼性ベクトルは、デバイス信頼性ベクトルと各アップストリームシステム信頼性ベクトルとの共通集合(例えば、論理AND)に基づいて生成されることができ、任意の減分クレームについて、複合信頼性ベクトルは、デバイス信頼性ベクトルと各アップストリームシステム信頼性ベクトルとの和集合(例えば、論理OR)に基づいて生成されることができる。いくつかの例では、肯定クレーム及び減分クレームは、複数の値(例えば、0~255)を表す整数であり得、各クレームは、数学演算に基づいて組み合わせられ得る。
図6は、本開示の一実施例による、ヘテロジニアスネットワークにおけるサービスのための複合セキュリティ情報を生成するプロセスのシーケンス図600を示す。図6において、発信ノード602は、サービスノード604(例えば、サーバ、ネットワークデバイス等)から信頼性ベクトル(例えば、セキュリティ情報)を要求するように構成される。この例では、サービスノード604は、サービス内のデータ又は他の動作のためにサービスノード606及びサービスノード608を使用する。最初に、サービスノード604は、ブート動作中に、信頼性ベクトルなどのセキュリティ情報を提供するように検証器610に要求するセキュリティ情報要求614を伝送することができ、セキュリティ情報要求614は、ハードウェア、ソフトウェア、ファームウェア、ファイルシステムなどに関する情報などの特定の情報を含むことができる。それに応答して、サービスノード604は、信頼性ベクトルなどのセキュリティ情報616を検証器610から受信し、信頼性ベクトルをTEE(例えば、TPM、TAM、又は上述の他のセキュアエンクレーブなどのセキュア環境)にセキュアに記憶する。
サービスノード606は、ブート動作中に、セキュリティ情報要求618を検証器610に伝送し、セキュリティ情報620を検証器610から受信して、セキュア環境にセキュアに記憶することができる。サービスノード608はまた、ブート動作中に、セキュリティ情報要求622を検証器610に伝送し、セキュリティ情報624を検証器610から受信して、セキュアな環境にセキュアに記憶することができる。
発信ノード602は、例えば、発信ノード602におけるユーザ又はサービスからサービスを構成するための命令を受信することができ、この命令は、発信ノード602にセキュリティ情報要求626をサービスノード604に伝送させる。セキュリティ情報要求626は、サービス(例えば、ネットワークサービス、アプリケーションサービス等)を識別することができ、サービスノード604は、ブロック628において、発信ノード602に提供されるデータ、機能、又は他のコンテンツを提供し得る他のサービスノードを判定することができる。例えば、サービスノード604は、サービスノード606が信頼できる必要があるデータを提供すること、及びサービスノード608がサービスノード604のために実行される機能を提供することを識別する。例えば、サービスノード608は、サービスノード604で実行するのに好適でないセキュアな暗号機能、画像処理機能、又は自然言語処理機能を実行することができる。
ブロック628における関連サービスノードの識別は、異なる技法を使用して、対応するノードを識別することができる。例えば、サービスノード604は、ハブアンドスポーク法を使用することができ、それによって、各関連サービスノードは、関連サービスノードを更に識別する。しかしながら、ハブアンドスポーク法は、サービスノードの循環ループを生じる可能性がある。いくつかの例では、サービスノード604は、グループメンバシッププロトコルによって管理されるグループの一部であってもよく、サービスノード604は、関連サービスノードを識別するために管理ノード(図示せず)に接続することができる。様々なサービスノードは、サービスノードの循環ループの作成を防止するスパニングツリープロトコル又は同様のアルゴリズムを実装することもできる。
関連サービスノード(例えば、サービスノード606及びサービスノード608)を識別した後、サービスノード604は、セキュリティ情報要求630をサービスノード606に伝送し、それに応答して、サービスノード606と関連付けられたセキュリティ情報620を受信することができる。サービスノード604はまた、セキュリティ情報要求632をサービスノード608に伝送し、それに応答して、サービスノード608と関連付けられたセキュリティ情報624を受信することができる。
セキュリティ情報620及びセキュリティ情報624を受信した後、ブロック638において、サービスノード604は、サービスと関連付けられた全てのノードのセキュリティ情報に基づいて複合セキュリティ情報640を作成(例えば、生成)する。この例では、サービスノード604、サービスノード606、及びサービスノード608がサービスへの参加ノードであり、サービスノード604は、セキュリティ情報616、セキュリティ情報620、及びセキュリティ情報624の組み合わせから複合セキュリティ情報640を生成する。複合セキュリティ情報640を作成した後、サービスノード604は、複合セキュリティ情報640を発信ノード602に送信する。
複合セキュリティ情報640の受信に応答して、発信ノード602は、複合セキュリティ情報がサービスのためのサービスノード604への接続をサポートするのに十分であるかどうかを解明する。例えば、複合セキュリティ情報640が、サービスノードのうちの少なくとも1つ(例えば、サービスノード604、サービスノード606、又はサービスノード608)が真正のハードウェアを有していないことを示す場合、ブロック642において、サービスはサポートされ得ない。他の例では、発信ノード602は、例えば、セキュア情報を制限するか、又はサービスノード604が満たさなければならないより高いレベルのセキュリティを提供する異なる構成に基づいて、サービスノード604と接続することを判定することができる。ブロック642において接続及び接続構成を判定した後、発信ノード602は、(発信ノード602が接続を許可すると仮定して)接続構成に基づいて接続を開始するために、接続要求644をサービスノード604に伝送する。
以下の図7~図10は、サービスノードに不可欠な異なるTEEを使用して複合信頼性ベクトルを生成する様々な例を説明する。TEEは、例示のみを目的として提供される異なるセキュリティクレームを提供することができる。TEEの実装は、以下に説明されるセキュリティクレームを提供することができ、又は任意のタイプのセキュリティクレームを提供することができる。
図7は、本開示の一実施例による、異なるTEEを有するサービスノードからの信頼性ベクトルを、複合信頼性ベクトルへ組み合わせることを示す図を示す。複合信頼性ベクトル700は、TPMモジュールを含むTPMサービスノード702、SGXエンクレーブを含むSGXサービスノード704、TPMモジュールを含むTPMサービスノード706、及びTAMモジュールを含むTAMサービスノード708から生成される。この例では、信頼性ベクトル内のセキュリティクレームはブール値であり、肯定クレームの共通集合及び減分クレームの和集合を使用して組み合わされる。
TPMサービスノード702は、3つの肯定クレーム(hw-authentic、identity-verified、boot-verified)を有する信頼性ベクトル712を含む。TPMサービスノード702は、SGXサービスノード704から信頼性ベクトル714を受信し、TPMサービスノード706から信頼性ベクトル716を受信し、TAMサービスノード708から信頼性ベクトル718を受信し、複合信頼性ベクトル700を生成するように構成される。この例では、複合信頼性ベクトル700は、対応するセキュリティクレームを含む全ての信頼性ベクトルの共通集合に基づいて、hw-authentic(ハードウェア-真正)セキュリティクレーム及びboot-verified(ブート-検証された)セキュリティクレームを含む。TPMサービスノード706の信頼性ベクトル716は、file-repudiatedの(ファイル-否認された)減分セキュリティクレームを含み、全ての減分セキュリティクレームの和集合に基づいて複合信頼性ベクトル700に含まれることになる。
図8は、本開示の一実施例による、異なるTEEを有するサービスノードからの信頼性ベクトルを、複合信頼性ベクトル800へ組み合わせることを示す別の図を示す。複合信頼性ベクトル800は、TPMモジュールを含むTPMサービスノード802、TrustZoneモジュールを含むTrustZoneサービスノード804、及びTAMモジュールを含むTAMサービスノード806から生成される。TPMサービスノード802の信頼性ベクトル812、TrustZoneサービスノード804の信頼性ベクトル814、及びTAMサービスノード806の信頼性ベクトル816からの肯定セキュリティクレームと減分セキュリティクレームとの組み合わせは、複合信頼性ベクトル800において2つの肯定セキュリティクレームを生み出す。
図9は、本開示の一実施例による、異なるTEEを有するサービスノードからの異なるパラメータと関連付けられた整数値を有する信頼性ベクトルを、複合信頼性ベクトル900へ組み合わせることを示す図を示す。複合信頼性ベクトル900は、TPMモジュールを含むTPMサービスノード902、SGXを含むSGXサービスノード904、TPMモジュールを含むTPMサービスノード906、及びTAMモジュールを含むTAMサービスノード908から生成される。この例では、信頼性ベクトル内のセキュリティクレームは整数値であり、数学的演算(例えば、中央値)及び論理演算(例えば、フロア関数又は最小関数)を使用して組み合わされる。
特に、TPMサービスノード902の信頼性ベクトル912、SGXサービスノード904の信頼性ベクトル914、TPMサービスノード906の信頼性ベクトル916、及びTAMサービスノード908の信頼性ベクトル918は、各セキュリティクレームが表されるように、複合信頼性ベクトル900に数学的及び/又は論理的に組み合わされる。この場合の肯定クレームは、合計、整数値に基づいて計算された重み付け、非線形結合などの様々な手段を使用して計算され得る各肯定クレームからの範囲であり得る。図8及び図9で説明した論理演算とは異なり、セキュリティクレームの欠如(例えば、信頼性ベクトル918が、identify-verified(アイデンティティ-検証された)クレームを含まない)は、複合信頼性ベクトル900の計算に影響を及ぼさない可能性がある。例えば、信頼性ベクトル918は、identify-verifiedクレームを含まず、複合信頼性ベクトル900は、平均に基づいてアイデンティティ検証されたクレームを計算する。しかしながら、場合によっては、信頼性ベクトル916及び信頼性ベクトル918内のfile-repudiatedセキュリティクレームの合計に基づいて、複合信頼性ベクトル900内のfile-repudiatedセキュリティクレームによって示されるように、減分セキュリティクレームを合計することができる。
図10は、本開示の一実施例による、TEEを有するサービスノードからの異なるパラメータと関連付けられた整数を有する信頼性ベクトルを、複合信頼性ベクトルへ組み合わせることを示す図である。複合信頼性ベクトル1000は、TPMモジュールを含むTPMサービスノード1002と、SGXを含むSGXサービスノード1004と、PSPを含むPSPサービスノード1006とから生成される。この例では、信頼性ベクトル内のセキュリティクレームは整数値であり、数学的演算及び/又は論理演算を使用して組み合わされる。
複合信頼性ベクトル1000のセキュリティクレームは、TPMサービスノード1002の信頼性ベクトル1012、SGXサービスノード1004の信頼性ベクトル1014、及びPSPサービスノード1006の信頼性ベクトル1016の様々な組み合わせに基づく。例えば、複合信頼性ベクトル1000におけるhw-authenticセキュリティクレームは、フロア(例えば、最小)関数を使用し、boot-verifiedセキュリティクレームは、明示的なboot-verifiedクレームの平均を使用する。
他の例では、TPMサービスノード1002は、対応するノードから提供されるデータ及び/又は関数に基づいて、セキュリティクレームをどのように組み合わせるかを判定することができる。例えば、PSPサービスノード1006は、入力データに基づいて機能を提供し、その処理されたデータをTPMサービスノード1002に返すことができる。この例では、PSPサービスノード1006によって提供される機能にとって、confidential-data-in-motion255のセキュリティクレームは重要であり、confidential-data-at-restのセキュリティクレームは重要ではない。TPMサービスノード1002は、フロア関数を実行することによって、セキュリティクレームが予知するサービスノード(例えば、TPMサービスノード1002及びSGXサービスノード1004)に基づいて、複合信頼性ベクトル1000がconfidential-data-in-motionのセキュリティクレームを含むと判定する。
場合によっては、異なるTEEは、対応するクレームのリスト(例えば、[「hw-authentic」,「file-repudiated」])などの異なる形式を有し得る。その場合、サービスノードは、明示的クレームと関連付けられた値を判定し、黙示的クレームと関連付けられた値を判定することができる。これにより、サービスノードは、TEEのタイプ及びセキュリティ情報の形式に関係なく、各タイプのセキュリティ情報を正規化することができる。
図11は、本開示の一実施例による、ヘテロジニアスネットワークにおいて複合信頼性ベクトルを生成するためのサービスノード1100の例示的な方法を示す。例示的な方法1100は、動作の特定のシーケンスを示すが、シーケンスは、本開示の範囲から逸脱することなく変更され得る。例えば、図示された動作のいくつかは、並行して、又は方法1100の機能に実質的に影響を及ぼさない異なる順序で実行されてもよい。他の例では、方法1100を実装する例示的なデバイス又はシステムの異なる構成要素は、実質的に同時に、又は特定の順序で機能を実行することができる。
いくつかの例によれば、方法は、ブロック1105において、クライアントデバイスからサービスノードのセキュリティ情報の要求を受信することを含む。例えば、プロセッサ1410は、クライアントデバイスからサービスノードのセキュリティ情報の要求を受信し得る。いくつかの例では、要求は、サービスノードから受信すべきサービス(例えば、アプリケーションプログラミングインターフェース(application programming interface、API)、gRPCサービスなど)を識別する情報を含む。
検証器デバイスは、サービスノードのセキュリティ情報及び関連サービスノードのセキュリティ情報を判定する。セキュリティ情報は、検証のタイプに関連する複数のクレームを含み、これは、肯定する値又は減分する値(例えば、ブール値、整数値など)を含むことができる。いくつかの例では、検証のタイプは、検証のタイプは、少なくとも1つのハードウェア検証、一意アイデンティティ検証、データ完全性検証、ブート検証、及び実行可能検証を含む。追加の検証のタイプをセキュリティ情報に含めることができる。セキュリティ情報は、オペレーティングシステム又はアプリケーションから分離されている、利用できないハードウェア保護情報に基づく。例えば、ベンダの公開鍵がハッシュされ、TEEによって検証され、次いで、公開鍵を使用して、ベンダからの信頼できるファームウェアのデジタル署名を検証することができる。信頼できるファームウェアは、ブート検証、実行可能検証などのセキュリティ情報を提供するように構成することができる。
セキュリティ情報についての要求を受信した後、方法1100は、ブロック1110において、サービスに基づいてサービスノードと通信するための少なくとも1つの関連ノードを(例えば、プロセッサ1410によって)識別することを含む。
第1の例では、ブロック1110において関連ノードを識別することは、候補関連ノードを識別するための要求を管理ノードに伝送することを含み得る。管理ノードは、グループメンバシッププロトコルを実行して、各サービスと関連付けられた異なるグループを作成し、サービスと関連付けられた候補関連ノードのリストを用いて要求に応答する。サービスノードは、管理ノードによって識別された候補関連ノードの一部又は全部からセキュリティ情報を受信することを選択することができる。
第2の例では、ブロック1110において関連ノードを識別することは、アドレス指定可能なノードからサービスと関連付けられた候補ノードを識別するためにスパニングツリーアルゴリズムを実行することを含み得る。スパニングツリーアルゴリズムは、ノードに、例えば、近隣ノードにセキュリティ情報広告を提供させ、セキュリティ情報広告に応答して近隣ノードからセキュリティ情報広告を受信させ、近隣セキュリティ情報広告から近隣ノードへの複数の潜在的経路に基づいて近隣ノードと関連付けられたループルートを識別させ、近隣ノードを候補子ノードとして除外させることができる。
関連ノードを識別した後、方法1100は、ブロック1115において、関連ノード(又は複数のノード)のセキュリティ情報(例えば、信頼性ベクトル)を(例えば、プロセッサ1410によって)要求することを含む。セキュリティ情報の要求に応答して、サービスノードは、各関連ノードからセキュリティ情報を受信することができる。
関連するノード(又は複数のノード)からセキュリティ情報を受信した後、方法1100は、ブロック1120において、サービスノードのセキュリティ情報及び少なくとも1つの関連サービスノードのセキュリティ情報から複合セキュリティ情報を(例えば、プロセッサ1410によって)生成することを含む。例えば、図14に示すプロセッサ1410は、サービスノードのセキュリティ情報及び子ノードのセキュリティ情報から複合セキュリティ情報を生成してもよい。いくつかの例では、複合セキュリティ情報を生成することは、サービスノードのセキュリティ情報内の各対応するクレームと子ノードのセキュリティ情報とを(例えば、プロセッサ1410によって)組み合わせて、複合セキュリティ情報を生み出すことを含み得る。セキュリティ情報において対応するクレームを組み合わせる例は、図12及び図13において更に説明される。
いくつかの例によれば、方法は、ブロック1125において、複合セキュリティ情報をクライアントデバイスに送信することを含む。例えば、図14に示すプロセッサ1410は、複合セキュリティ情報をクライアントデバイスに送信することができる。クライアントデバイスは、複合セキュリティ情報を受信し、複合セキュリティ情報に基づいて、接続を許可するか、又はポリシーを実装するかを判定する。
図12は、本開示の一実施例よる、様々な関連サービスノードのセキュリティ情報を複合セキュリティ情報に組み合わせるための例示的な方法1200を示す。例えば、方法1200は、関連サービスノードからセキュリティ情報を受信したサービスノードによって実行され得る。最初に、方法1200は、子ノードからセキュリティ情報を受信したことに応答して、ブロック1205において、子ノードのセキュリティ情報内の黙示的クレームを(例えば、プロセッサ1410によって)識別することと、子ノードからのセキュリティ情報に黙示的クレームを付加することとを含む。ブロック1210において、サービスノードは、サービスノードのセキュリティ情報及び関連サービスノードのセキュリティ情報内の対応するクレームの値を識別することができる。例えば、サービスノードは、サービスノードのセキュリティ情報内の特定のクレームと関連付けられた第1の値と、子ノードのセキュリティ情報内のその同じ特定のクレームと関連付けられた第2の値とを識別することができる。
ブロック1215において、方法1200は、複合セキュリティ情報を生み出すために、肯定クレームの共通集合及び減分クレームの和集合を(例えば、プロセッサ1410によって)実行することを含むことができる。例えば、サービスノードは、第1の値及び第2の値に基づいて、複合セキュリティ情報内の特定のクレームについての複合値を生成してもよい。各セキュリティ情報内に存在しない肯定クレームは複合セキュリティ情報から除外されてもよく、任意のセキュリティ情報内に存在する減分クレームは複合セキュリティ情報に含まれてもよい。いくつかの例では、複合セキュリティ情報は、上記の表4に示されたセキュリティ情報に対応し得る。この例では、セキュリティ情報は、明示的な肯定クレーム及び減分クレームを含む。
図13は、本開示の一実施例よる、様々な関連サービスノードのセキュリティ情報を複合セキュリティ情報に組み合わせるための例示的な方法1300を示す。例えば、方法1300は、関連サービスノードからセキュリティ情報を以前に受信したサービスノードによって実行され得る。最初に、方法1200は、子ノードからセキュリティ情報を受信したことに応答して、ブロック1305において、子ノードのセキュリティ情報内の黙示的クレームを(例えば、プロセッサ1410によって)識別することと、子ノードからのセキュリティ情報に黙示的クレームを付加することとを含む。
ブロック1310において、方法1300は、サービスノードのセキュリティ情報及び関連サービスノードのセキュリティ情報内の対応するセキュリティクレームの値を(例えば、プロセッサ1410によって)識別することを含む。この場合、クレームは、セキュリティクレームが減分又は肯定(又は中立)のいずれであるかを判定する整数値を含むことができる。ブロック1315において、方法1300は、数学的演算及び論理演算を使用して対応するセキュリティクレームを(例えば、プロセッサ1410によって)組み合わせて、複合セキュリティ情報を生み出すことを含む。上述したように、値は、平均化され、非線形結合され、重みに基づいて組み合わせられ、様々な統計的方法を使用して統計的に組み合わされることができ、最小値が識別されることができ、最大値が識別されることができるなどである。いくつかの例では、複合セキュリティ情報は、上記の表5に示すセキュリティ情報に対応し得る。この例では、各セキュリティクレームは範囲を含み、明示的な肯定クレーム、中立クレーム、及び減分クレームに対応することができる。中立は、例えば、TEEによって明示的に提供されない推測されたセキュリティクレームであり得る。
図14は、コンピューティングシステム1400の例を示し、これは、例えば、発信ノード602、サービスノード604、サービスノード606、サービスノード608、検証器610、管理ノード(図示せず)、又はシステムの構成要素が接続1405を使用して互いに通信しているその任意の構成要素、などの任意のネットワークノードを構成する任意のコンピューティングデバイスであり得る。接続1405は、バスを介した物理的接続、又はチップセットアーキテクチャにおけるようなプロセッサ1410への直接接続であり得る。接続1405はまた、仮想接続、ネットワーク接続、又は論理接続であってもよい。
いくつかの実施形態では、コンピューティングシステム1400は、本開示で説明される機能が、データセンタ、複数のデータセンタ、ピアネットワークなど内に分散され得る分散システムである。いくつかの実施形態では、説明されるシステム構成要素のうちの1つ以上は、構成要素が説明される機能の一部又は全部を各々が行う、多くのそのような構成要素を表す。いくつかの実施形態では、構成要素は、物理又は仮想デバイスであり得る。
例示的なコンピューティングシステム1400は、少なくとも1つの処理ユニット(CPU又はプロセッサ)1410と、ROM1420及びRAM1425などのシステムメモリ1415を含む様々なシステム構成要素をプロセッサ1410に結合する接続1405とを含む。コンピューティングシステム1400は、プロセッサ1410に直接接続された、近接した、又はその一部として統合された高速メモリ1412のキャッシュを含むことができる。
プロセッサ1410は、任意の汎用プロセッサと、プロセッサ1410を制御するように構成された、記憶デバイス1430に記憶されたサービス1432、1434、及び1436などのハードウェアサービス又はソフトウェアサービスと、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサとを含むことができる。プロセッサ1410は、本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称又は非対称であってもよい。
ユーザ対話を可能にするために、コンピューティングシステム1400は、音声のためのマイクロフォン、ジェスチャ又はグラフィカル入力のためのタッチセンシティブスクリーン、キーボード、マウス、動き入力、音声など、任意の数の入力機構を表すことができる入力デバイス1445を含む。コンピューティングシステム1400は、当業者に知られているいくつかの出力機構のうちの1つ以上であり得る出力デバイス1435も含むことができる。いくつかの事例において、マルチモーダルシステムは、ユーザがコンピューティングシステム1400と通信するために複数のタイプの入力/出力を提供することを可能にすることができる。コンピューティングシステム1400は、通信インターフェース1440を含むことができ、これは一般に、ユーザ入力及びシステム出力を支配及び管理することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、ここでの基本的な特徴は、改良されたハードウェア又はファームウェア構成が開発されるにつれて、それらの構成と容易に置換され得る。
記憶デバイス1430は、不揮発性メモリデバイスとすることができ、ハードディスク、又は磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、RAM、ROM、及び/又はこれらのデバイスの何らかの組み合わせなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体とすることができる。
記憶デバイス1430は、ソフトウェアサービス、サーバ、サービスなどを含むことができ、そのようなソフトウェアを定義するコードがプロセッサ1410によって実行されると、システムに機能を実行させる。いくつかの実施形態では、特定の機能を実行するハードウェアサービスは、機能を遂行するために、プロセッサ1410、接続1405、出力デバイス1435などの必要なハードウェア構成要素に関連してコンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
図15は、スイッチング、ルーティング、負荷分散、及び他のネットワーキング動作を実行するのに好適な例示的なネットワークデバイス1500を示す。例示的なネットワークデバイス1500は、スイッチ、ルータ、ノード、メタデータサーバ、負荷分散装置、クライアントデバイスなどとして実装され得る。
ネットワークデバイス1500は、中央処理装置(central processing unit、CPU)1504と、インターフェース1502と、バス1510(例えば、周辺構成要素相互接続(Peripheral Component Interconnect、PCI)バス)を含む。適切なソフトウェア又はファームウェアの制御下で動作するとき、CPU1504は、パケット管理、エラー検出、及び/又はルーティング機能を実行する責任がある。CPU1504は、オペレーティングシステム及び任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下で、これらの機能の全てを達成することが好ましい。CPU1504は、INTEL X86ファミリのマイクロプロセッサからのプロセッサなど、1つ以上のプロセッサ1508を含むことができる。場合によっては、プロセッサ1508は、ネットワークデバイス1500の動作を制御するために特別に設計されたハードウェアであり得る。場合によっては、メモリ1506(例えば、不揮発性RAM、ROMなど)も、CPU1504の一部を形成する。しかしながら、メモリがシステムに結合され得る多くの異なる方式が存在する。
インターフェース1502は、通常、モジュラインターフェースカード(「ラインカード」と称されることもある)として提供される。概して、それらは、ネットワークを介したデータパケットの送信及び受信を制御し、時には、ネットワークデバイス1500と共に使用される他の周辺機器をサポートする。提供され得るインターフェースの中には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、デジタル加入者線(digital subscriber line、DSL)インターフェース、トークンリングインターフェースなどがある。加えて、高速トークンリングインターフェース、無線インターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、非同期転送モード(asynchronous transfer mode、ATM)インターフェース、高速シリアルインターフェース(HSSI)、ポイントオブセール(point-of-sale、POS)インターフェース、ファイバ分散データインターフェース(fiber distributed data interface、FDDI)、WIFIインターフェース、3G/4G/5Gセルラインターフェース、CAN BUS、LoRAなどの様々な超高速インターフェースが提供されてもよい。一般に、これらのインターフェースは、適切な媒体との通信に適したポートを含むことができる。場合によっては、それらは独立したプロセッサを含んでもよく、いくつかの事例では、揮発性RAMを含んでもよい。独立したプロセッサは、パケット交換、メディア制御、信号処理、暗号処理、及び管理などの通信集中タスクを制御することができる。通信集中タスクのために別個のプロセッサを提供することによって、これらのインターフェースは、マスタCPU(例えば、1504)が、ルーティング計算、ネットワーク診断、セキュリティ機能等を効率的に行うことを可能にする。
図15に示されるシステムは、本開示の1つの特定のネットワークデバイスであるが、決して、本開示が実装され得る唯一のネットワークデバイスアーキテクチャではない。例えば、通信及びルーティング計算などを処理する単一のプロセッサを有するアーキテクチャがしばしば使用される。更に、他のタイプのインターフェース及び媒体もまた、ネットワークデバイス1500と共に使用され得る。
ネットワークデバイスの構成にかかわらず、ネットワークデバイスは、本明細書で説明するローミング、ルート最適化、及びルーティング機能のための汎用ネットワーク動作及び機構のためのプログラム命令を記憶するように構成された1つ以上のメモリ又はメモリモジュール(メモリ1506を含む)を使用することができる。プログラム命令は、例えば、オペレーティングシステム及び/又は1つ以上のアプリケーションの動作を制御してもよい。1つ以上のメモリはまた、モビリティバインディング、登録、及び関連付けテーブルなどのテーブルを記憶するように構成され得る。メモリ1506はまた、様々なソフトウェアコンテナ及び仮想化された実行環境及びデータを保持することができる。
ネットワークデバイス1500はまた、ルーティング及び/又はスイッチング動作を実行するように構成され得る特定用途向け集積回路(application specific integrated circuit、ASIC)1512を含むことができる。ASIC1512は、バス1510を介してネットワークデバイス1500内の他の構成要素と通信して、データ及び信号を交換し、例えば、ルーティング、スイッチング、及び/又はデータ記憶動作など、ネットワークデバイス1500による様々なタイプの動作を調整することができる。
いくつかの例では、開示されるシステムは、プラットフォームと相互作用する前に、プラットフォームのアイデンティティ及びセキュリティポスチャを検証することができる。例えば、Azure Attestationは、プラットフォームからエビデンスを受信し、セキュリティ基準を用いてそれを立証し、構成可能なポリシーに対してそれを評価し、クレームベースのアプリケーションのためのアテステーショントークンを生成する。サービスは、Intel(登録商標)SGX及び仮想化ベースのセキュリティ(virtualization-based security、VBS)エンクレーブのようなTPM及びTEEのアテステーションをサポートする。
要約すると、ヘテロジニアスシステムによって提供されるサービスにセキュリティポスチャを提供するためのシステム、装置、方法、及びコンピュータ可読媒体が開示される。サービスノードによって信頼を検証するための方法は、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信することと、サービスに基づいて、サービスノードと通信する関連ノードを識別することと、関連ノードを識別した後、関連ノードのセキュリティ情報を要求することと、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成することと、複合セキュリティ情報をクライアントデバイスに送信することと、を含む。複合セキュリティ情報は、異なる信頼できる実行環境を有するヘテロジニアスデバイスによって実装されるサービスに対するセキュリティクレームを提供する。
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、及び/又はソフトウェアを備えることができ、様々なフォームファクタのいずれかをとることができる。そのようなフォームファクタの典型的な例は、サーバ、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、携帯情報端末などを含む。本明細書で説明される機能はまた、周辺機器又はアドインカードにおいて具現化され得る。そのような機能はまた、更なる例として、単一のデバイス内で実行される異なるチップ又は異なるプロセス間の回路基板上に実装され得る。
説明を明確にするために、いくつかの事例では、本技術は、ソフトウェア又はハードウェアとソフトウェアの組み合わせで具現化される方法におけるデバイス、デバイス構成要素、ステップ又はルーチンを備える機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
本明細書で説明されるステップ、動作、機能、又はプロセスのいずれも、ハードウェア及びソフトウェアサービス又はサービスの組み合わせによって、単独で、又は他のデバイスと組み合わせて、実行又は実装され得る。いくつかの実施形態では、サービスは、クライアントデバイス及び/又はコンテンツ管理システムの1つ以上のサーバのメモリ内に常駐し、プロセッサがサービスと関連付けられたソフトウェアを実行すると、1つ以上の機能を行う、ソフトウェアであり得る。いくつかの実施形態において、サービスは、プログラム、又は特定の機能を実行するプログラムの集合である。いくつかの実施形態では、サービスはサーバとみなすことができる。メモリは、非一時的コンピュータ可読媒体であり得る。
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、及びメモリは、ビットストリームなどを含むケーブル又はワイヤレス信号を含むことができる。しかしながら、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、及び信号自体などの媒体を明示的に除外する。
上述の例による方法は、コンピュータ可読媒体に記憶されるか、又は別様にコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに、ある特定の機能若しくは機能のグループを実行させるか、又は他の方法で構成する命令及びデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、又はソースコードであってもよい。説明される例による方法中に命令、使用される情報、及び/又は作成される情報を記憶するために使用され得るコンピュータ可読媒体の例は、磁気又は光ディスク、ソリッドステートメモリデバイス、フラッシュメモリ、不揮発性メモリを備えたユニバーザルシリアルバス(universal serial bus、USB)デバイス、ネットワーク化された記憶デバイスなどを含む。
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、及び/又はソフトウェアを備えることができ、様々なフォームファクタのいずれかをとることができる。そのようなフォームファクタの典型的な例は、サーバ、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、携帯情報端末などを含む。本明細書で説明される機能はまた、周辺機器又はアドインカードにおいて具現化され得る。そのような機能はまた、更なる例として、単一のデバイス内で実行される異なるチップ又は異なるプロセス間の回路基板上に実装され得る。
命令、そのような命令を搬送するための媒体、それらを実行するためのコンピューティングリソース、及びそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示において説明される機能を提供するための手段である。
添付の特許請求の範囲の範囲内の態様を説明するために様々な例及び他の情報が使用されたが、当業者はこれらの例を使用して多種多様な実装形態を導出することができるので、そのような例における特定の特徴又は構成に基づいて特許請求の範囲の限定が暗示されるべきではない。更に、いくつかの主題は、構造的特徴及び/又は方法ステップの例に特有の言語で説明されている場合があるが、添付の特許請求の範囲において定義される主題は、これらの説明された特徴又は行為に必ずしも限定されないことを理解されたい。例えば、そのような機能は、本明細書で識別された構成要素以外の構成要素において異なるように分散され得るか、又は実行され得る。むしろ、説明された特徴及びステップは、添付の特許請求の範囲の範囲内のシステム及び方法の構成要素の例として開示される。
本開示の例示的な実施例は、以下を含む。
態様1.サービスノードによって信頼を検証するための方法であって、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信することと、サービスに基づいて、サービスノードと通信する関連ノードを識別することと、関連ノードを識別した後、関連ノードのセキュリティ情報を要求することと、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成することと、複合セキュリティ情報をクライアントデバイスに送信することと、を含む方法。
態様2.セキュリティ情報は、検証のタイプに関連する複数のクレームを含み、検証のタイプは、少なくとも1つのハードウェア検証、一意アイデンティティ検証、データ完全性検証、ブート検証、及び実行可能検証を含む、態様1の方法。
態様3.関連ノードからセキュリティ情報を受信したことに応答して、関連ノードのセキュリティ情報内の黙示的クレームを識別することと、黙示的クレームを関連ノードからのセキュリティ情報に付加することとを最初に含む、態様1又は2の方法。
態様4.複合セキュリティ情報を生成することは、サービスノードのセキュリティ情報内、及び関連ノードのセキュリティ情報内の各対応するクレームを組み合わせて、複合セキュリティ情報を生み出すことを含む、態様1~3のいずれか1つの方法。
態様5.各対応するクレームを組み合わせることは、サービスノードのセキュリティ情報内の第1のクレームと関連付けられた第1の値、及び関連ノードのセキュリティ情報内の第1のクレームと関連付けられた第2の値を識別することと、第1の値及び第2の値に基づいて、複合セキュリティ情報内の第1のクレームについての複合値を生成することと、を含む、態様1~4のいずれか1つの方法。
態様6.検証の各タイプを組み合わせることは、関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報のうちの1つ内の第1のクレームと関連付けられた減分する値を識別することと、複合セキュリティ情報から第1のクレームを除外することと、を含む、態様1~5のいずれか1つの方法。
態様7.検証の各タイプを組み合わせることは、関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報内のセキュリティクレームを正規化することと、各セキュリティクレームを複合セキュリティ情報に組み合わせることと、を含む態様1~6のいずれか1つの方法。
態様8.アドレス指定可能なノードからサービスと関連付けられた候補ノードを識別するためにスパニングツリーアルゴリズムを実行することを更に含み、関連ノードが候補ノードから選択される、態様1~7のいずれか1つの方法。
態様9.サービスノードは第1の信頼できるモジュールを含み、関連ノードは第2の信頼できるモジュールを含み、第1の信頼できるモジュールが第2の信頼できるモジュールとは異なる、態様1~8のいずれか1つの方法。
態様10.候補関連ノードを識別するように要求を管理ノードに伝送することと、候補関連ノードのリストを受信することと、を更に含み、管理ノードは、グループメンバシッププロトコルを実行して、各サービスと関連付けられた異なるグループを作成する、態様1~9のいずれか1つの方法。
態様11:複合セキュリティ情報を提供するためのサービスは、命令を記憶するように構成されたストレージ(回路内に実装される)と、プロセッサとを含む。プロセッサは、命令を実行し、プロセッサに、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信し、サービスに基づいて、サービスノードと通信する関連ノードを識別し、関連ノードを識別した後、関連ノードのセキュリティ情報を要求し、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成し、かつ複合セキュリティ情報をクライアントデバイスに送信することを行わせるように構成されている。
態様12:セキュリティ情報は、検証のタイプに関連する複数のクレームを含み、検証のタイプは、少なくとも1つのハードウェア検証、一意アイデンティティ検証、データ完全性検証、ブート検証、及び実行可能検証を含む、態様11のサービス。
態様13:プロセッサは、命令を実行し、プロセッサに、関連ノードのセキュリティ情報内の黙示的クレームを識別し、かつ黙示的クレームを関連ノードからのセキュリティ情報に付加することを行わせるように構成されている、態様11又は12のサービス。
態様14:プロセッサは、命令を実行し、プロセッサに、サービスノードのセキュリティ情報内と、関連ノードのセキュリティ情報内との各対応するクレームを組み合わせて、複合セキュリティ情報を生み出すことを行わせるように構成されている、態様11~13のいずれか1つのサービス。
態様15:プロセッサは、命令を実行し、プロセッサに、サービスノードのセキュリティ情報内の第1のクレームと関連付けられた第1の値、及び関連ノードのセキュリティ情報内の第1のクレームと関連付けられた第2の値を識別し、かつ第1の値及び第2の値に基づいて、複合セキュリティ情報内の第1のクレームについての複合値を生成することを行わせるように構成されている、態様11~14のいずれか1つのサービス。
態様16:プロセッサは、命令を実行し、プロセッサに、関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報のうちの1つ内の第1のクレームと関連付けられた減分する値を識別し、かつ複合セキュリティ情報から第1のクレームを除外することを行わせるように構成されている、態様11~15のいずれか1つのサービス。
態様17:関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報内のセキュリティクレームを正規化することと、各セキュリティクレームを複合セキュリティ情報に組み合わせることと、態様11~16のいずれか1つのサービス。
態様18:アドレス指定可能なノードからサービスと関連付けられた候補ノードを識別するためにスパニングツリーアルゴリズムを実行することであって、関連ノードが候補ノードから選択される、態様11~17のいずれか1つのサービス。
態様19:サービスノードは第1の信頼できるモジュールを含み、関連ノードは第2の信頼できるモジュールを含み、第1の信頼できるモジュールが第2の信頼できるモジュールとは異なる、態様11~18のいずれか1つのサービス。
態様20:プロセッサは、命令を実行し、プロセッサに、候補関連ノードを識別するように要求を管理ノードに伝送し、かつ候補関連ノードのリストを受信することを行わせるように構成されており、管理ノードは、グループメンバシッププロトコルを実行して、各サービスと関連付けられた異なるグループを作成する、態様11~19のいずれか1つのサービス。
態様21:コンピュータシステムを使用する命令を含むコンピュータ可読媒体。コンピュータは、メモリ(例えば、回路内に実装される)と、メモリに連結されたプロセッサ(又は複数のプロセッサ)とを含む。プロセッサ(又は複数のプロセッサ)は、コンピュータ可読媒体を実行し、プロセッサに、サービスノードのセキュリティ情報に対する要求であって、サービスノードから受信するサービスを識別する情報を含む、要求をクライアントデバイスから受信し、サービスに基づいて、サービスノードと通信する関連ノードを識別し、関連ノードを識別した後、関連ノードのセキュリティ情報を要求し、サービスノードのセキュリティ情報及び関連ノードのセキュリティ情報から複合セキュリティ情報を生成し、かつ複合セキュリティ情報をクライアントデバイスに送信することを行わせるように構成されている。
態様22:セキュリティ情報は、検証のタイプに関連する複数のクレームを含み、検証のタイプは、少なくとも1つのハードウェア検証、一意アイデンティティ検証、データ完全性検証、ブート検証、及び実行可能検証を含む、態様21のコンピュータ可読媒体。
態様23:プロセッサは、コンピュータ可読媒体を実行し、プロセッサに、関連ノードのセキュリティ情報内の黙示的クレームを識別し、かつ黙示的クレームを関連ノードからのセキュリティ情報に付加することを行わせるように構成されている、態様21又は22のコンピュータ可読媒体。
態様24:プロセッサは、コンピュータ可読媒体を実行し、プロセッサに、サービスノードのセキュリティ情報内と、関連ノードのセキュリティ情報内との各対応するクレームを組み合わせて、複合セキュリティ情報を生み出すことを行わせるように構成されている、態様21~23のいずれか1つのコンピュータ可読媒体。
態様25:プロセッサは、コンピュータ可読媒体を実行し、プロセッサに、サービスノードのセキュリティ情報内の第1のクレームと関連付けられた第1の値、及び関連ノードのセキュリティ情報内の第1のクレームと関連付けられた第2の値を識別し、かつ第1の値及び第2の値に基づいて、複合セキュリティ情報内の第1のクレームについての複合値を生成することを行わせるように構成されている、態様21~24のいずれか1つのコンピュータ可読媒体。
態様26:プロセッサは、コンピュータ可読媒体を実行し、プロセッサに、関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報のうちの1つ内の第1のクレームと関連付けられた減分する値を識別し、かつ複合セキュリティ情報から第1のクレームを除外することを行わせるように構成されている、態様21~25のいずれか1つのコンピュータ可読媒体。
態様27:関連ノードのセキュリティ情報及びサービスノードのセキュリティ情報内のセキュリティクレームを正規化することと、各セキュリティクレームを複合セキュリティ情報に組み合わせることと、態様21~26のいずれか1つのコンピュータ可読媒体。
態様28:アドレス指定可能なノードからサービスと関連付けられた候補ノードを識別するためにスパニングツリーアルゴリズムを実行することであって、関連ノードが候補ノードから選択される、態様21~27のいずれか1つのコンピュータ可読媒体。
態様29:サービスノードは第1の信頼できるモジュールを含み、関連ノードは第2の信頼できるモジュールを含み、第1の信頼できるモジュールが第2の信頼できるモジュールとは異なる、態様21~28のいずれか1つのコンピュータ可読媒体。
態様30:プロセッサは、コンピュータ可読媒体を実行し、プロセッサに、候補関連ノードを識別するように要求を管理ノードに伝送し、かつ候補関連ノードのリストを受信することを行わせるように構成されており、管理ノードは、グループメンバシッププロトコルを実行して、各サービスと関連付けられた異なるグループを作成する、態様21~29のいずれか1つのコンピュータ可読媒体。