(57)【要約】  信頼のある環境において、集約されたデータを処理することによって、システムは、ピアツーピアのチェーンで処理される集約データに不正な変更を加えるための機会を減少させ得る。各デバイスは、先行集約データを、そのデバイスにおける信頼のある環境に渡してよく、それは、そのデバイスに対してローカルデータを取得し、それを先行集約データと集約し、出力集約データを作る。任意に、システムは、デバイスが集約データを前に処理している場合を識別してよく、そのデバイスが繰り返してデータを集約するために用いられ得る可能性を低減する。集約データは、デジタル方式で署名されるか、または暗号化され、データペイロードの耐タンパー性を強化させてよい。
2016534448.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令が格納された持続性コンピュータ可読媒体であって、前記複数の命令は、実行される場合、プログラマブルデバイスが、
先行プログラマブルデバイスから第１のデータ集合を受信し、
前記第１のデータ集合に対応する第２のデータ集合を生成し、
前記第１のデータ集合を、前記プログラマブルデバイスの信頼のある環境において前記第２のデータ集合と集約し、第３のデータ集合を作り、
前記第３のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備える、持続性コンピュータ可読媒体。
【請求項２】
前記第１のデータ集合は、デジタル署名を備え、
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記信頼のある環境において前記デジタル署名を認証し、
前記信頼のある環境において前記第３のデータ集合にデジタル方式で署名するようにする複数の命令をさらに備える、請求項１に記載の持続性コンピュータ可読媒体。
【請求項３】
前記第１のデータ集合は暗号化され、
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記信頼のある環境において前記第１のデータ集合を復号化し、
前記信頼のある環境において前記第３のデータ集合を暗号化するようにする複数の命令をさらに備える、請求項１に記載の持続性コンピュータ可読媒体。
【請求項４】
前記第１のデータ集合を受信するための前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記第１のデータ集合を、前記プログラマブルデバイスの信頼できない環境によって受信し、
前記第１のデータ集合を、前記信頼できない環境から前記信頼のある環境へ転送するようにする複数の命令を備える、請求項１から３のいずれか一項に記載の持続性コンピュータ可読媒体。
【請求項５】
前記第３のデータ集合を送信するための複数の命令は、実行される場合、前記プログラマブルデバイスが、前記プログラマブルデバイスの前記信頼のある環境から、信頼できない環境へ前記第３のデータ集合を送信し、
前記第３のデータ集合を前記信頼できない環境から前記後続プログラマブルデバイスへ送信するようにする複数の命令を備える、請求項１から３のいずれか一項に記載の持続性コンピュータ可読媒体。
【請求項６】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記信頼のある環境が前記第１のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える、請求項１から３のいずれか一項に記載の持続性コンピュータ可読媒体。
【請求項７】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
エラー状態が検出される場合、前記第２のデータ集合と前記第１のデータ集合との集約を省略するようにする複数の命令、をさらに備える、請求項１から３のいずれか一項に記載の持続性コンピュータ可読媒体。
【請求項８】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
エラー状態が検出される場合、前記第１のデータ集合を破棄するようにする複数の命令をさらに備える、請求項１から３のいずれか一項に記載の持続性コンピュータ可読媒体。
【請求項９】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記第１のデータ集合を初期化するようにする複数の命令をさらに備える、請求項１から３のいずれか一項に記載の持続性コンピュータ可読媒体。
【請求項１０】
プロセッサと、
前記プロセッサによって実行される場合、前記プロセッサを制御し、ソフトウェアが前記プロセッサにおいて実行されるための信頼できない環境を提供する、複数の命令を有するオペレーティングシステムと、
前記信頼できない環境とは別のセキュアなハードウェアの信頼のある環境と、
前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
先行プログラマブルデバイスから第１のデータ集合を受信し、
前記第１のデータ集合に対応する第２のデータ集合を生成し、
前記第１のデータ集合を前記第２のデータ集合と集約し、第３のデータ集合を作り、
前記第３のデータ集合を後続のものに送信する、ようにする複数の命令が格納されている、メモリと、
を備える、プログラマブルデバイス。
【請求項１１】
前記メモリは、前記信頼できない環境において実行される場合、前記プロセッサが、
前記先行プログラマブルデバイスから第１のデータ集合を受信し、
前記第１のデータ集合を前記信頼できない環境から前記信頼のある環境へ転送し、
前記信頼のある環境から前記第３のデータ集合を受信し、
前記第３のデータ集合を前記後続のものへ転送するようにする、複数の命令をさらに格納する、請求項１０に記載のプログラマブルデバイス。
【請求項１２】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
前記第１のデータ集合の保護を解除し、
前記第３のデータ集合を保護するようにする、複数の命令をさらに備える、請求項１０に記載のプログラマブルデバイス。
【請求項１３】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
前記セキュアなハードウェアの信頼のある環境が前記第１のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える、請求項１０から１２のいずれか一項に記載のプログラマブルデバイス。
【請求項１４】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
前記セキュアなハードウェアの信頼のある環境が前記第１のデータ集合を前に処理している場合、警告をシグナリングするようにする複数の命令をさらに備える、請求項１３に記載のプログラマブルデバイス。
【請求項１５】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
エラー状態が検出される場合、前記第１のデータ集合を破棄するようにする、複数の命令をさらに備える、請求項１０から１２のいずれか一項に記載のプログラマブルデバイス。
【請求項１６】
第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、
第２のプログラマブルデバイスの信頼できない環境から第２のデータ集合を取得する段階と、
前記プログラマブルデバイスの信頼のある環境において、前記第１のデータ集合を前記第２のデータ集合と組み合わせ、第３のデータ集合を作る段階と、
前記第３のデータ集合を第３のプログラマブルデバイスへ送信する段階と、を備える、方法。
【請求項１７】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第１のデータ集合の保護を解除する段階と、
前記第１のデータ集合を前記第２のデータ集合と組み合わせ、前記第３のデータ集合を作る段階と、
前記第３のデータ集合を保護する段階と、を備える、請求項１６に記載の方法。
【請求項１８】
前記第１のデータ集合の保護を解除する段階は、前記第１のデータ集合のデジタル署名を認証する段階を備え、
前記第３のデータ集合を保護する段階は、前記第３のデータ集合をデジタル方式で署名する段階を備える、請求項１７に記載の方法。
【請求項１９】
前記第２のデータ集合を信頼できない環境から取得する段階は、
前記第１のデータ集合に含まれるクエリを、前記信頼できない環境において評価する段階と、
クエリ結果を前記信頼のある環境へ転送する段階と、を備える、請求項１６に記載の方法。
【請求項２０】
前記第２のデータ集合を信頼できない環境から取得する段階は、
前記第１のデータ集合に含まれるクエリを、前記信頼のある環境において評価する段階と、
前記信頼できない環境からの前記クエリに対応するデータを前記信頼のある環境によって要求する段階と、を備える、請求項１６に記載の方法。
【請求項２１】
第１のデータ集合を受信する段階は、
前記第２のプログラマブルデバイスの前記信頼できない環境において、前記第１のプログラマブルデバイスから前記第１のデータ集合を受信する段階と、
前記第１のデータ集合を、前記信頼できない環境から前記信頼のある環境へ転送する段階と、を備え、
前記第３のデータ集合を第３のプログラマブルデバイスへ送信する段階は、
前記第３のデータ集合を前記信頼のある環境から前記信頼できない環境へ送信する段階と、
前記第３のデータ集合を前記信頼できない環境から前記第３のプログラマブルデバイスへ転送する段階と、を備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２２】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第２のプログラマブルデバイスが前記第１のデータ集合を前に処理しているかどうかを決定する段階を備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２３】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第１のデータ集合においてエラー状態が検出される場合、前記第１のデータ集合を破棄する段階をさらに備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２４】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第１のデータ集合においてエラー状態が検出される場合、警告を生成する段階をさらに備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２５】
請求項１６から２０のいずれか一項に記載の方法を実行するための手段を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書において記載される複数の実施形態は、概して、システム管理に関連し、特に、エンタープライズ管理ソリューションにおいて集約データの耐タンパー性を改善するための技術に関連する。
【背景技術】
【０００２】
システム管理業界は、ピアツーピア・ネットワーク構築が、複数のエンタープライズ環境のほぼリアルタイムの分析を可能にする複数の新たな機能を利用している。上記機能は、各エンドポイントが共通のサーバでポイントツーポイント接続を確立するのに対し、データが、ピアツーピアの形式で集約され得ることから、拡張可能である。例えば、情報技術（ＩＴ）が、アプリケーションの各バージョンにおいて、いくつのインスタンスが存在するか理解することを望む場合、データペイロードは、一式のピアの間でパスされ得、クライアントが、そのクライアントが有するバージョンを評価する場合、そのクライアントは単に、カウンターをインクリメントし、更新されたペイロードを次のクライアントへ渡す。
【０００３】
しかしながら、チェーンにおいて任意のクライアントエージェントが不正アクセスされている場合、そのクライアントは、複数の結果に不正な変更を加え、集められるデータの値を無効にし得る。チェーンにおいて各クライアントエージェントは、集約データペイロードの保護を解除し、更新し、再び保護するための能力を有する。
【０００４】
ピアツーピア・データ集約の複数の機能が可能にする複数の効率を維持しながら、任意の単一クライアントが、全体の結果に与え得る損傷を軽減するための手段が有利であろう。
【図面の簡単な説明】
【０００５】
【図１】従来技術のピアツーピア・システムを示すブロック図である。
【０００６】
【図２】一実施形態に従って、集約データの耐タンパー性を改善するためのシステムを示すブロック図である。
【０００７】
【図３】一実施形態に従って、耐タンパー性を改善するための技術が実装されるプログラマブルデバイスを示すブロック図である。
【０００８】
【図４】一実施形態に従って、集約データの耐タンパー性を改善するための技術を示すフローチャートである。
【０００９】
【図５】一実施形態に従って、信頼のある環境においてデータを集約するための技術を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下の説明において、説明を目的として、多数の具体的な詳細が本発明の完全な理解を提供するべく明記される。しかしながら、本発明は、これらの具体的な詳細がなくても実施されてよいことは、当業者にとって明らかであろう。複数の他の例において、本発明を不明瞭にすることを防ぐべく、構造および複数のデバイスがブロック図の形態において示される。下付き文字または添字のない数字への言及は、その言及された数字に対応する下付き文字および添え字の全ての場合を指すものと理解される。さらに、本開示で用いられる言語は、読みやすさおよび教育の目的で主に選択され、発明の主題を詳述する、または制限するために選択されていなくてもよく、そのような発明の主題を決定するのに必要な特許請求の範囲を採用する。本明細書において、「一実施形態」または「実施形態」への言及は、複数の実施形態に関連して記載される特定の特徴、構造、または特性が、本発明の少なくとも一つの実施形態において含まれ、「一実施形態」または「実施形態」への複数の言及は、必ずしも全てが同一の実施形態を指していると理解されるべきではないことを意味する。
【００１１】
本明細書において用いられるように、「プログラマブルデバイス」という用語は、プログラマブルデバイスにおいて、またはそれによって実行されているとして記載される機能を実行するための、単一のプログラマブルデバイスまたは共に動作する複数のプログラマブルデバイスを指し得る。プログラマブルデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、および、埋め込まれた計算機能を含有する複数のデバイスを含むモバイルデバイスを含む任意のタイプのプログラマブルデバイスであってよい。
【００１２】
本明細書において用いられるように、「信頼のある（トラステッド）環境」は、信頼のあるコードのみを実行することが可能なプラットフォームにおける隔離された実行環境である。しばしば、信頼のある環境は、環境へとプロビジョニングされる複数のキーを有する前に、それが信頼のある環境のインスタンスであることを認証（または証明）し得る。信頼のある環境の複数の例が、複数のコプロセッサまたは複数の二次コアにおいて、またはプラットフォームアーキテクチャの一部として、認証された仮想機械マネージャまたはトラストゾーンの様な機能等で実装され得る。「信頼できない環境」は、信頼のある環境でない任意の環境である。
【００１３】
複数のプログラマブルデバイスの間で通信するために用いられる複数の技術および装置の詳細は、現在の本開示に関連しておらず、最も一般的には、複数のデバイスはＴＣＰ／ＩＰプロトコルを使用して通信するが、任意の望ましい通信技術が用いられてもよい。以下の説明は複数のピアツーピア通信の観点で記されるが、複数の実装は、従来の複数のピアツーピア・ネットワーク構築の技術に限定されず、複数のプログラマブルデバイスの間で通信するための任意のネットワーク構築または複数の通信技術を使用して実装されてもよい。各々が集約データを単一の後続プログラマブルデバイスに渡す複数のプログラマブルデバイスのチェーンとして複数の図面に示され、本明細書において記載されるが、複数の実装は、有線または無線の複数の技術を使用し、複数のプログラマブルデバイスの間の任意の望ましい接続を用いて、１対多の、多対１の、および多対多の、１つのプログラマブルデバイスから１または複数の後続プログラマブルデバイスへ集約データを渡すための技術を使用し得る。
【００１４】
ピアツーピア・データ集約の複数の従来の実装は、完全にソフトウェアベースであって、集約データのパスにおいて、単一の不正アクセスされたクライアントによってさえ、集約データへの影響を制限することはできない。複数の従来のシステムは、送信されたデータの直接の破損を検出するべく複数のデジタル署名技術を使用し得る。それらは、署名されたデータの保護を解除し、内在するデータペイロードを破損させ、破損したデータを放棄する能力を有するデバイスによって、データの破損を検出できない。非集約データが、ソーシングデバイスによって個々に署名され得るが、集約の手法を使用するよりも効率的でなく、ネットワークの周囲で渡されるデータの量を増やす。加えて、従来の複数の技術は、１つのデバイスの使用が、複数回用いられることを検出するまたは防止することはできない。
【００１５】
図１は、従来技術に従って、集約プロセスにおいて１つのデバイスによって生成される破損データ集約の例を示すブロック図である。この例において集約されているデータは、特定のアプリケーション（この例ではＡＰＰ．ＥＸＥ）のどのバージョンが、ネットワーク１００の複数のデバイスにおいて利用可能であるかに関するクエリへの応答である。この例において、サーバ１１０は、クライアント１２０‐１５０によって生成される集約データを収集し、プログラマブルデバイス１２０‐１５０の各々は、これらのそれぞれの先行デバイス（ｐｒｅｄｅｃｅｓｓｏｒからクエリへの複数の集約応答を受信し、ローカル応答で集約データを更新し、次に、その集約データをこれらそれぞれの後続のものである別のクライアント１３０‐１５０またはサーバ１１０のいずれかへ渡す。図１に示されるように、複数のプログラマブルデバイスは、異なる複数のタイプのプログラマブルデバイスであってよい。
【００１６】
クエリおよび応答データのフォーマットは、この例を明確にすべく任意で選択され、バイナリエンコードのデータを含む任意のクエリおよび応答のフォーマットが、所望されるように用いられてよい。この例において、プログラマブルデバイス１２０は、集約データを、バージョン３．２５の２３４個のインスタンス、バージョン３．００の１９９個のインスタンス、およびバージョン１．００の５個のインスタンスがあることを示すように更新する。そのようなソフトウェアの様々なバージョンが複数の大きなエンタープライズにおいて共通である。自身のローカルデータを複数のクエリ応答へと集約した後に、プログラマブルデバイス１２０は、その集約データをプログラマブルデバイス１３０へ渡すかまたは転送する。
【００１７】
プログラマブルデバイス１３０は、マルウェアによって不正アクセスされている。クエリへの複数のローカル応答でプログラマブルデバイス１２０から受信されるデータを集約する代わりに、プログラマブルデバイス１２０は、そのデータを破損させ、バージョン３．２５の値を２３４から９に減らし、バージョン３．００に関しては１９９から１に減らし、バージョン１．００の値を８９８に増やす。不正アクセスされたプログラマブルデバイス１３０は、次に、破損した集約データを、破損を検出できないプログラマブルデバイス１４０へと渡す。プログラマブルデバイス１４０は、格納された複数の値をローカルデータでインクリメントし、バージョン３．２５に関しては集約カウントの１０を示し、バージョン３．００に関しては１を、バージョン１．００に関しては８９８を示す。プログラマブルデバイス１３０は、次に、集約データを分析および複数の可能な動作のためにサーバ１１０へ転送する前に、クエリに対応するそれの独自のローカルデータを集約するプログラマブルデバイス１５０に、集約データを渡す。
【００１８】
集約データは、この例において、簡易なクエリ応答であるが、任意のデータが任意の望ましいフォーマットで用いられてもよい。通常、集約データは、その集約データの予想外のまたは意図された破損を防ぐべく保護される。暗号化、デジタル署名等を含む、データを保護するための任意の技術が用いられてもよい。一実施形態において、データペイロードは、保護されていない。以下の説明は、データペイロードを保護するためのデジタル署名を使用する実装の観点で記述される。
【００１９】
一実施形態において、複数のプログラマブルデバイス１２０‐１５０の各々は、それの先行デバイスからデータを受信し、そのデータに含まれるデジタル署名を認証し、そのデータを更新し、次に、デジタル署名を使用して集約データを引渡す。署名の性質は、本開示の範囲外であり、デジタル方式で署名された集約データの認証を許可する任意のタイプのデジタル署名が用いられてよい。データが暗号化されているところでは、プログラマブルデバイスはそのデータを復号化し、ローカルデータを集約し、その集約データをさらなる送信のために暗号化する。
【００２０】
プログラマブルデバイス１３０の検出不可能な破損のせいで、複数の後のまたは後続プログラマブルデバイスが、これらの正確なローカルデータを用いて集約データを正確に集約するにもかかわらず、集約データは無意味にされる。たとえ、サーバ１１０が、集約データが破損される可能性があることを、コンテンツ分析によって検出することが可能であったとしても、サーバ１１０は、図１に示されるチェーンにおいてどのプログラマブルデバイスが、データを破損させたかを決定することはできない。
【００２１】
データの集約を、信頼できない環境から信頼のある環境へ移動させることによって、集約データは、より耐タンパー性とされてよい。図２は、デバイスの信頼のある環境が、先行デバイスからの集約データと、受信される集約データと集約されるべきであるローカルで生成されるデータを受信する、実施形態を示す。信頼のある環境は、データを集約し、その集約データを後続デバイスへの配信のために渡す。
【００２２】
この例において、集約データペイロード２００は、先行デバイスからデバイス２１０によって受信される。一実施形態において、現在の本開示に関連している３つの部分の集約データペイロード２００があり、デジタル署名２０２、クエリおよび結果部分２０４、および任意のマルチ集約再生リスト２０６であって、それらの各々が以下に記載される。別の実施形態において、先行集約データは、デジタル署名を用いず暗号化され、ペイロードは、復号化され、集約され、次に再び暗号化される。複数の実施形態は、集約データをデジタル方式で署名し暗号化する両方を行ってよい。以下において、先行集約データの保護の解除は、デジタル署名を認証するか、暗号化されたデータを復号化することのいずれか、または両方として定義され、同様に、後続集約データを再び保護することは、データをデジタル方式で署名するか、そのデータを暗号化することのいずれか、またはその両方として定義される。
【００２３】
デバイス２１０は、信頼のある環境２２０および信頼できない環境２３０の両方を含む。通常、信頼できない環境は、信頼できないアプリケーションソフトウェアを実行しているオペレーティングシステム環境であって、信頼のある環境は、事前に承認された機能を実行することのみが許可されるセキュア環境である。信頼できない環境は、オペレーティングシステム、および集約データペイロード２００のクエリに関連するローカルデータを作ることが可能なローカルエージェントソフトウェアを含み得る。
【００２４】
デバイス２１０の信頼できない環境２３０は、先行プログラマブルデバイスから署名された集約データペイロード２００を受信し、信頼のある環境２２０にそのペイロードを渡す。一実施形態において、信頼できない環境２３０は、集約データに追加されるべきローカルデータ２４０を決定するべく、集約ペイロード２００の少なくとも一部分の保護を解除することが可能である。他の複数の実施形態において、信頼できない環境２３０は、集約データペイロード２００の保護を解除することはできないが、ペイロード２００を認識して信頼のある環境２２０へそれを渡すことができる。このような実施形態において、信頼のある環境２２０は、信頼できない環境２３０において、ローカルエージェントに、ローカルデータを生成し、そのローカルデータを信頼のある環境２２０に提供するよう要求してもよい。
【００２５】
信頼のある環境２２０が、集約データペイロード２００、およびペイロード２００に集約されるべきローカルデータ２４０を有すると、信頼のある環境２２０は、集約データペイロード２００の保護を解除し、そのローカルデータを先行集約データと集約して、出力集約データペイロード２５０を作り、次に、出力集約データペイロード２５０を再び保護し、それを後続デバイスへの配信のために信頼できない環境２３０に渡す。その後続デバイスは、ローカルデータを集約に追加する別のデバイスか、または、例えば、集約データペイロードの保護を解除して集約データをそれの所望される使用のために抽出し得るサーバ１１０等のコレクタのいずれかであってよい。
【００２６】
いくつかの実施形態において、信頼のある環境２２０は、先行集約データペイロード２００を直接取得してよく、または出力集約データペイロード２５０を、信頼できない環境２３０の介入なく直接送信してよい。いくつかの実施形態において、信頼のある環境２２０は、信頼できない環境からローカルデータを取得する代わりに、ローカルデータ２４０を生成することが可能であってよい。
【００２７】
デジタル署名２０２を使用する複数の実施形態において、デジタル署名２０２は、集約データ２００の複数のコンテンツを改ざんから守るべく用いられる。デジタル署名（以下に詳細に記載される）は、暗号鍵を使用して、信頼のある環境によって認証される。集約データ全体の暗号化が採用されるところで、その全体の集約データは、信頼のある環境によって１または複数の暗号鍵を使用して暗号化され、復号化される。一実施形態において、信頼のある環境の各デバイス２１０は、集約データを再び保護するべく用いられ得るそれの独自のプライベートキーと、先行集約データ並びにデバイス２１０によって作られた出力集約データペイロード２５０の保護を解除するために用いられ得るグループパブリックキーとを有する。従って、各デバイス２１０は、グループパブリックキーを使用して先行デバイスから集約データの保護を解除し、集約を実行し、次に、集約データを、後続デバイスに渡すべく、それのプライベートキーで再び保護する。代わりに、暗号化および復号化の両方において単一のキーを使用する複数の対称暗号化技術が用いられてもよい。
【００２８】
クエリおよび応答部分２０４は、デバイス２１０がどのローカルデータ、および同様に結果的にもたらされる集約データが、集約されるべきか決定することを許可するために十分な情報を含んでよい。複数の図面において示される複数の例では、集約は、先行集約データと共にローカルデータの加算を含んでよく、任意の他のタイプの集約が要望通りに用いられてよい。上記で説明されたように、集約データペイロード２００および２５０のフォーマットは、例示的且つ例としてのみであって、任意のフォーマット、テキスト、バイナリ、またはそれらの任意の混合が、要望通りに用いられてよい。
【００２９】
デバイス２１０を複数回使用することによって、集約データに不正な変更を加えようとする試みを防ぐべく、いくつかの実施形態において、集約データを処理する各デバイス２１０の記録が、保持されてよい。この記録は、集約データを処理した各デバイス２１０に関連付けられる複数の固有識別子のリストまたは他の記録である。代わりに、各デバイス２１０が、データを処理すると、そのデバイス２１０に関連付けられるビンまたはスロットを、用いられていた通りに示すように、各デバイス２１０に関連付けられる予め定義された複数のビンまたは複数のスロットが用いられてよい。どの複数のデバイスがデータを集合へと集約したかの追跡を保持するための任意の他の技術が用いられてもよい。記録の構造またはフォーマットは重要ではなく、デバイスが前に集約データを処理していることを示すための任意の望ましい技術が用いられてもよい。よりセキュアではないが、本明細書において記載される複数の技術の実施形態は、所望される場合、同一のデバイスによって複数の集約を検出するための記録管理なしで実装されてもよい。
【００３０】
図２の例において、クエリは、図１において概説されるクエリと同一であり、ＡＰＰ．ＥＸＥの複数のバージョンのどれだけ多くのインスタンスであるかのカウントを要求する。部分２０４において、先行集約データは、バージョン３．２５の２３４個のインスタンス、バージョン３．００の１９９個のインスタンス、およびバージョン１．００の５個のインスタンスを示す。２つの先行デバイスは、部分２０６において示され、各々は、固有識別子のみによって識別され、初期の部分だけが図２において明確にすべく示されている。
【００３１】
出力集約データペイロード２５０は、ローカルデータ２４０のバージョン３．００の単一のインスタンスの集約を示し、３．００記録を、部分２５４において２００のインスタンスを示すように更新する。出力ペイロード２５０は、また、部分２５６に追加の固有識別子を追加し、このデバイス２１０がデータを集約していることを示す。さらに、デバイス２１０がデータをこのペイロードに集約するようにする複数の試みが、次に検出され得る。
【００３２】
図３は、本明細書においてにおいて記載される複数の技術のいくつかまたは全てを実装するために用いられてよいプログラマブルデバイス３００を示すブロック図である。システムユニット３１０は、プログラマブルデバイス３００の複数のコンポーネントが取り付けられてよく、またはそうでない場合、配置されてよい位置を提供する。システムユニット３１０は、様々なチップセットが取り付けされるマザーボードとして製造され、システムユニット３１０全体において、および所望に応じてシステムユニット３１０の外部において、複数のコンポーネントの間の電気接続および信号および電力の分配を提供してよい。例えば、プログラマブルデバイス３００は、マルウェア対策システムが、集約データを検査することによってマルウェアの可能性を検出したという複数の警告または複数の他の指標を表示するための手段を提供するディスプレイ３９５等の出力デバイスを含んでよい。
【００３３】
システムユニット３１０の様々なコンポーネントは、１または複数のプロセッサ３２０を含んでよく、通常、各シングルプロセッサチップ（図３において示されない）は、プロセッサ３２０とプログラマブルデバイス３００の他の複数のコンポーネントとの間の電気接続を提供するべく、取り付けソケットにおいて取り付けられる。シングルプロセッサ３２０は、図３において示されるが、任意の望まれる数のプロセッサが用いられてもよく、これらの各々はマルチコアプロセッサであってよい。複数のプロセッサチップは、現在、市場において入手可能であり、任意の望まれるプロセッサチップまたはチップセットが用いられてもよい。システムユニット３１０は、本開示に従って複数の方法を実行するようにプログラミングされてよく、その複数の例が図４から５に示されている。
【００３４】
プロセッサ３２０は、プロセッサ３２０による使用のためにメモリ３３０に接続されており、通常、バスまたは複数のポイントツーポイント相互接続を含む任意の他のタイプの相互接続であってよい信号トランスポートに対するリンクを使用する。メモリ３３０は、１または複数のメモリモジュールを含んでよく、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、プログラマブルリードオンリーメモリ（ＰＲＯＭ）、プログラマブルリードライトメモリ、およびソリッドステートメモリを備えてよい。プロセッサ３２０は、また、キャッシュメモリ等の内部メモリを含んでもよい。プロセッサ３２０上で実行しているオペレーティングシステムは、概して、プログラマブルデバイス３００の動作を制御し、複数のサービス、複数のアプリケーション、および他のソフトウェアがプログラマブルデバイス３００上で実行するためのオペレーティングシステム環境を提供する。
【００３５】
図３において示されるように、プロセッサ３２０は、また、Ｉ／Ｏ、タイマー、およびプログラマブルデバイス３００のための他の有用な複数の機能を提供するＩ／Ｏサブシステム３４０に接続されている。例えば、Ｉ／Ｏサブシステム３４０は、任意のディスプレイ３９５を接続するためのＩ／Ｏポート、およびキーボード、マウス、タッチスクリーン等の任意の入力デバイス３９０を、システムユニット３１０に対して提供してよい。複数のポートは、ディスプレイ３９５のような複数のコンポーネントに対する複数の特別目的のポートの１または複数、または、複数のユニバーサルシリアルバス（ＵＳＢ）ポート等の、キーボードまたはマウス３９０を接続するための複数の多目的ポート等のいずれかであってよい。Ｉ／Ｏサブシステム３４０は、また、ストレージデバイス３８０等の複数のストレージデバイスと通信するためのインタフェースであってよく、オーディオインタフェース３６０を介してオーディオデバイスに接続し、ネットワークインタフェース３７０を経由してネットワーク１２０に接続してよい。ストレージデバイス３８０は、リムーバブル媒体を含む、複数のソリッドステートストレージ素子を含む光学および磁気の全ての形態を含むがこれらに限定されない、不揮発性ストレージの任意の形態を表わし、システムユニット３１０内に含まれるかまたはシステムユニット３１０の外部にあってよい。ストレージデバイス３８０は、プログラマブルデバイス３００を制御するためのソフトウェア、プログラマブルデバイス３００による使用のためのデータ（ネットワークフローデータを含む）、または両方の格納のために用いられるプログラムストレージデバイスであってよい。図３において、単一のストレージデバイス３８０のみが明確にすべく示されているが、任意の数のストレージデバイス３８０が、ＰＣＴのインタフェース利用可能性に応じて所望されるように提供されてよい。Ｉ／Ｏサブシステム３４０は、システムユニット３１０内の１または複数のチップとして実装されてよい。いくつかの実施形態において、メモリ３３０は、プロセッサ３２０の代わりにＩ／Ｏサブシステム３４０に接続されてもよい。
【００３６】
加えて、いくつかの実施形態は、Ｉ／Ｏサブシステム３４０を、情報を保護するための複数の暗号キーを格納するための暗号プロセッサを提供するトラステッドプラットフォームモジュール３５０に接続してよい。複数の実施形態は、Ｉ／Ｏサブシステム３４０の機能を、システムユニット３１０において１または複数の別のチップとして実装してよい。
【００３７】
図３に示されるように、Ｉ／Ｏサブシステム３４０は、セキュアな信頼のある環境（ＴＥ）３４５に対して複数のハードウェアリソースを提供する。ＴＥ３４５は、プログラマブルデバイス３００を制御するオペレーティングシステムによって制御されないセキュア環境を提供する。複数の他の実施形態において、ＴＥ３４５は、別のチップセットとしてＩ／Ｏサブシステムのアウトボード（ｏｕｔｂｏａｒｄ）であってよく、または、ＴＥ機能に限定された別のコア等のように、プロセッサ３２０に組み込まれてもよい。ＴＥ３４５は、マルウェアによって、さらにプロセッサ３２０上でブートキットまたはルートキットとして実行され得るマルウェアによって介入され得ない信頼のある環境において、本明細書において記載される複数の技術のセキュア環境の側を実行することを許可するセキュアな処理機能を含む。通常、ＴＥ３４５を提供する複数の供給業者は、独占所有権のあるまたは暗号の複数の技術を使用し、どの機能がＴＥ３４５において実行してよいかに対する制御を保証し、ＴＥ３４５において実行される、任意であるが注意深く吟味された複数の信頼のあるプログラムの実行を阻止する。プロセッサ３２０上で実行されているソフトウェアが、ＴＥ３４５に、プロセッサ３２０に対してデータ集約機能を実行するように要求する等、ＴＥ３４５に所望される機能を実行するよう要求することを許可するべく、複数の特別なインタフェースが提供されてもよい。ＴＥ３４５は、データおよびファームウェアの格納のために、それの独自の内部メモリを使用するか、またはメモリ３３０の一部分のいずれかを使用してもよい。あるいは、ＴＥ３４５においての実行のためのファームウェアの形態にある複数の命令が、プログラマブルデバイス３００の電源投入を行うと、フラッシュメモリ等の不揮発性メモリデバイス３４５からロードされ、次に、ＴＥ３４５による実行のためのメモリ３３０の一部分へとロードされてよい。いくつかの実施形態において、ＴＥ３４５は、所望に応じて無効にされ、イネーブルにされてよい。これらの命令は、ＴＥ３４５が、データ集約機能および本明細書において記載されない他の機能を実行するようにしてよい。データ集約ファームウェアは、セキュア環境供給業者によって提供されてよく、または、侵入検出システム供給業者によって提供されてもよく、オペレーティングシステム環境侵入検出ソフトウェアの提供と連携して、セキュア環境供給業者の許可によってファームウェアとして格納されてよい。これらの技術に対して用いられ得る信頼のある環境の例は、Ｉｎｔｅｌ社によって提供される複数の特定のチップセットにおけるマネジメントエンジンである。本明細書において、ハードウェアベースのＴＥ３４５の観点で概して記載されるが、複数のセキュア環境は、ハードウェア、ファームウェア、またはソフトウェア、またはそれらの任意の組み合わせにおいて、所望されるように、実装されてよい。
【００３８】
プログラマブルデバイス３００は、例えばスマートフォン、スマートタブレット、パーソナルデジタルアシスタント（ＰＤＡ）、モバイルインターネットデバイス（ＭＩＤ）、コンバーチブルタブレット、ノートブックコンピュータ、デスクトップコンピュータ、サーバ、またはスマートテレビ等のプログラマブルデバイスの任意のタイプであってよい。ディスプレイ３９５は、存在する場合、例えばタッチスクリーン、液晶ディスプレイ等、ユーザに対してインタフェースを与えるための任意のタイプのデバイスであってよい。図３に示される複数の要素は、例示的、および例としてのみのものであって、図３に示される複数の要素は、所望されるように複数の要素へと結合または分割されてよい。グローバルポジショニングシステムトランシーバ等の地球測位ロジック、および同様に、例えばＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＷｉＭＡＸ（登録商標）等の複数の規格を使用する複数のモバイル通信を処理するためのロジック等、複数の他の要素もまた、所望されるように提供されてよい。
【００３９】
図４は、一実施形態に従って複数の開示される技術を示すフローチャートである。ブロック４１０において、デバイス２１０は、先行デバイスから集約データ２００を受信する。デバイス２１０がチェーンにおいて第１のデバイスである場合、集約データの初期化は、第１のデバイスで起こるか、またはサーバ１１０等の制御デバイスからの命令によって起こるかのいずれかである。代わりに、サーバ１１０は、そのチェーンにおける第１のデバイスに初期の集約データを送信してもよい。デバイス２１０は、ブロック４２０において、集約データを、信頼できない環境２３０から信頼のある環境２２０へと送信する。信頼のある環境２２０が先行デバイスから直接先行集約データ２００を受信する複数の実施形態において、ブロック４２０は省略され得る。
【００４０】
信頼できない環境２３０は、ブロック４３０において、先行集約データ２００と集約されるべきローカルデータ２４０を生成する。ローカルデータ２４０を生成するために用いられる複数の技術は、集められるデータに依存し、本明細書においてはさらに記載されない。信頼できない環境２３０は、ブロック４４０において、ローカルデータ２４０を信頼のある環境へ送信する。いくつかの実施形態において、信頼のある環境２２０は、信頼できない環境２３０からローカルデータ２４０を受信する代わりに、ローカルデータ２４０を生成することが可能であってよい。代わりに、信頼のある環境２３０は、どのローカルデータ２４０が必要であるか決定し、信頼できない環境２２０にローカルデータ２４０を生成して、ローカルデータ２４０を信頼のある環境２２０に提供するように要求してよい。
【００４１】
ブロック４５０において、信頼のある環境２２０は、先行集約データペイロード２００の保護を解除し、ローカルデータ２４０を先行集約データ２０４と集約し、集約データ２５４を作る。信頼のある環境２２０は、次に、集約データ２５４を、集約データペイロード２５０の中へと封じる。集約データペイロードが複数の前のデバイスの集約データの記録２０６を含む実施形態において、信頼のある環境２２０は、デバイス２１０が集約データ２５０を処理したことを示す記録を含むように、集約データ２５０を更新する。上記に記載されたように、その記録は、デバイス２１０に関連付けられる固有識別子であってよく、またはデバイス２１０が集約データ２５０を処理したことを示すための任意の他の情報であってもよい。
【００４２】
信頼のある環境２２０は、ブロック４６０において、出力集約データ２５０を、ブロック４７０の後続デバイスへの送信のために、信頼できない環境２３０に戻す。信頼のある環境２２０が、集約データを直接受信または送信し得る実施形態において、ブロック４６０は省略され得る。結果として生じる集約データは、信頼のある環境２２０自体が破損していない限り、信頼できない環境２３０は集約データを変更または破損することはできないことから、より耐タンパー性である。
【００４３】
図５は、信頼のある環境２２０がデータを集約するために用いられる技術の実施形態を示すフローチャートである。ブロック５１０において、信頼のある環境は、信頼できない環境２３０から先行集約データ２００およびローカルデータ２４０を受信する。
【００４４】
ブロック５２０において、信頼のある環境２２０は、先行集約データペイロード２００における署名２０２が有効であるかどうかを決定する。 デジタル署名を用いない実施形態において、ブロック５２０は、暗号化された集約データペイロード２００の復号化を含んでよい。デジタル署名が認証されず、または暗号化された集約データペイロード２００の復号化が失敗する場合、信頼のある環境２２０は、エラー状態をシグナリングし、先行集約データ２００を破棄すること、またはサーバ１１０、信頼できない環境２３０、または所望され得る複数の警告の任意の他のレシーバへシグナリングすることを含む、任意の望ましいエラー動作をとってよい。ブロック５３０において、信頼のある環境２２０は、集約データ２００の前の複数のアグリゲーターの記録を評価してよく、デバイス２１０が前に先行集約データ２００を処理している場合、信頼のある環境２２０は、エラー状態を示し、先行集約データ２００を破棄すること、またはサーバ１１０、信頼できない環境２３０、または所望され得る複数の警告の任意の他のレシーバへシグナリングすることを含む、任意の望ましいエリア動作を行ってよい。
【００４５】
集約データを複数の後続デバイスへ渡すべく複数のフラッディング技術用いられてよい実施形態において、データが、現在のデバイス２１０によって前に処理されていたかどうかについての確認が、同一のデバイス２１０によるデータの不用意な再処理を防ぐべく用いられてもよい。このような実施形態において、信頼のある環境２２０は、如何なるエラー指標または警告も用いずに、信頼のある環境２２０が前に処理している複数の集約データペイロードを単に破棄してよい。再処理が、集約データに不正な変更を加えるための悪意のある試みがされていることを示し得る複数の他の実施形態において、その検出は、ブロック５３０において、悪意のあるアクティビティが発見されているという警告を結果的にもたらしてよい。
【００４６】
デバイス２１０は、先行集約データ２００を前に処理していない場合、信頼のある環境２２０は、信頼できない環境２３０によって提供されるローカルデータがブロック５４０において有効であるかについて確認する。一実施形態において、信頼のある環境２２０は、信頼できない環境２３０による、集約のために破損ローカルデータを提供しようとする試みを検出するべく、信頼できない環境２３０によって提供されるローカルデータに対する複数の確認を実行してよい。複数の他の実施形態において、信頼のある環境２２０は、形式に関してローカルデータのみを確認する。ローカルデータが有効でない場合、信頼のある環境２２０は、次に、エラーをシグナリングし得る。
【００４７】
一実施形態において、信頼のある環境２２０がブロック５２０から５４０のエラー状態の１または複数が発生したことを決定した場合、先行集約データを破棄するかまたは警告を生成する代わりに、信頼のある環境２２０は、先行集約データ２００を無変更で出力集約データ２５０として単に出力することによって、出力集約データ２５０を生成してよい。
【００４８】
集約データおよびローカルデータは有効であるとここで決定したことから、信頼のある環境２２０は、ブロック５５０において先行集約データ２００をローカルデータで更新する。集約データペイロードは、次に、暗号化、または信頼のある環境２２０において集約データペイロードにデジタル方式で署名すること等によって保護され、複数の集約動作の履歴を記録する複数の実施形態において、信頼のある環境２２０は、また、前に処理されたデータエリア２５６を、信頼のある環境２２０が集約データを処理したことを示すように更新する。
【００４９】
ブロック５７０において、集約データ２５０は、後続デバイスへの配信のために信頼できない環境２３０へ送信され得る。代わりに、信頼のある環境２２０が集約データを直接送信し受信することが可能である際に、信頼のある環境２２０は、集約データ２５０を後続デバイスに信頼できない環境２３０を通ることなく送信してよい。
【００５０】
ブロック５２０、５３０または５４０の結果として示されるエラー処理は、処理のために信頼できない環境２３０に渡される、信頼のある環境２２０によって生成される警告の形態をとってよい。
【００５１】
図４‐５に示される複数の動作の順序は、例示的であって、例としてのみのものであり、複数の他の段階および複数の段階の順序付けが、所望に応じて実行されてもよい。例えば、信頼のある環境２２０は、所望される任意の順序において、集約データペイロードのいくつかの部分を更新してよい。
【００５２】
以下の複数の例は、さらなる複数の実施形態に関する。
【００５３】
例１は、複数の命令が格納されている持続性コンピュータ可読媒体であって、当該複数の命令は、実行される場合、プログラマブルデバイスが、先行プログラマブルデバイスから第１のデータ集合を受信し、第１のデータ集合に対応する第２のデータ集合を生成し、第１のデータ集合および第２のデータ集合をプログラマブルデバイスの信頼のある環境において集約し、第３のデータ集合を作り出し、第３のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備える。
【００５４】
例２は、例１の主題を含み、これにおいて、第１のデータ集合は、デジタル署名を備え、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境においてデジタル署名を認証し、信頼のある環境において第３のデータ集合にデジタル方式で署名するようにする複数の命令をさらに備える。
【００５５】
例３は、例１の主題を含み、第１のデータ集合は暗号化され、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境において第１のデータ集合を復号化し、信頼のある環境において第３のデータ集合を暗号化するようにする複数の命令をさらに備える。
【００５６】
例４は、例１の主題を含み、第１のデータ集合を受信するための複数の命令は、実行される場合、プログラマブルデバイスが、プログラマブルデバイスの信頼できない環境によって第１のデータ集合を受信し、信頼できない環境からの第１のデータ集合を信頼のある環境へ転送するようにする複数の命令を備える。
【００５７】
例５は、例１の主題を含み、第３のデータ集合を送信するための複数の命令は、実行される場合、プログラマブルデバイスが、第３のデータ集合を信頼のある環境からプログラマブルデバイスの信頼できない環境へ送信し、第３のデータ集合を信頼できない環境から後続プログラマブルデバイスへと送信するようにする複数の命令を備える。
【００５８】
例６は、例１の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境が第１のデータ集合を前に処理しているかどうか決定するようにする複数の命令をさらに備える。
【００５９】
例７は、例１の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第２のデータ集合を第１のデータ集合と集約することを、エラー状態が検出された場合省略するようにする複数の命令をさらに備える。
【００６０】
例８は、例１の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、エラー状態が検出される場合、第１のデータ集合を破棄するようにする複数の命令をさらに備える。
【００６１】
例９は、例１の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第１のデータ集合を初期化するようにする複数の命令をさらに備える。
【００６２】
例１０は、例１‐３のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境が第１のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える。
【００６３】
例１１は、例１‐３のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第２のデータ集合を第１のデータ集合と集約することを、エラー状態が検出される場合、省略するようにする複数の命令をさらに備える。
【００６４】
例１２は、例１‐３のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第１のデータ集合を、エラー状態が検出される場合、破棄するようにする複数の命令をさらに備える。
【００６５】
例１３は、例１‐３のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、の第１のデータ集合を初期化するようにする複数の命令をさらに備える。
【００６６】
例１４は前述の例のいずれかの主題を含み、第１のデータ集合はデジタル署名を備え、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境において第１のデータ集合におけるデジタル署名を認証することによって、または信頼のある環境において第１のデータ集合を復号化することによって、第１のデータ集合の保護を解除し、信頼のある環境において第３のデータ集合をデジタル方式で署名することによって、または信頼のある環境において第３のデータ集合を暗号化することによって、第３のデータ集合を保護するようにする複数の命令をさらに備える。
【００６７】
例１５は、前述の例の主題のいずれかの主題を含み、第１のデータ集合を受信するための複数の命令は、実行される場合、プログラマブルデバイスが、プログラマブルデバイスの信頼できない環境によって第１のデータ集合を受信し、当該信頼できない環境からの第１のデータ集合を信頼のある環境へ転送し、当該信頼のある環境からの第３のデータ集合を、プログラマブルデバイスの信頼できない環境へ送信し、当該信頼できない環境からの第３のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備える。
【００６８】
例１６は、前述の例のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境が第１のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える。
【００６９】
例１７は、前述の例のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、エラー状態が検出される場合、第２のデータ集合を第１のデータ集合と集約することを省略するか、または第１のデータ集合を破棄するようにする複数の命令をさらに備える。
【００７０】
例１８は、プロセッサと、プロセッサによって実行される場合、プロセッサを制御し、プロセッサ上で実行されるソフトウェアに対して信頼できない環境を提供する、複数の命令を備えるオペレーティングシステムと、信頼できない環境とは別のセキュアなハードウェアの信頼のある環境と、セキュアなハードウェアの信頼のある環境によって実行される場合、そのセキュアなハードウェアの信頼のある環境が、先行プログラマブルデバイスから第１のデータ集合を受信し、第１のデータ集合に対応する第２のデータ集合を生成し、第１のデータ集合を第２のデータ集合と集約し、第３のデータ集合を作り出し、第３のデータ集合を後続のものへ送信するようにする複数の命令が格納されているメモリとを備えるプログラマブルデバイスである。
【００７１】
例１９は、例１８の主題を含み、メモリは、複数の命令をさらに格納し、当該複数の命令は、信頼できない環境において実行される場合、プロセッサが、先行プログラマブルデバイスから第１のデータ集合を受信し、信頼できない環境からの第１のデータ集合を信頼のある環境へ転送し、信頼のある環境から第３のデータ集合を受信し、第３のデータ集合を後続のものへ転送するようにする。
【００７２】
例２０は、例１８の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合の保護を解除し、第３のデータ集合を保護するようにする複数の命令をさらに備える。
【００７３】
例２１は、例１８の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、そのセキュアなハードウェアの信頼のある環境が前に第１のデータ集合を処理しているかどうかを決定するようにする複数の命令をさらに備える。
【００７４】
例２２は、例２１の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合を前に処理している場合、セキュアなハードウェアの信頼のある環境が警告の信号を送信するようにする複数の命令をさらに備える。
【００７５】
例２３は、例１８の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、当該セキュアなハードウェアの信頼のある環境が、第１のデータ集合を、エラー状態が検出される場合に破棄するようにする複数の命令をさらに備える。
【００７６】
例２４は、例１８の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、そのセキュアなハードウェアの信頼のある環境が、先行プログラマブルデバイスが無い状態において第１のデータ集合を初期化するようにする複数の命令をさらに備える。
【００７７】
例２５は、例１８‐１９のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、そのセキュアなハードウェアの信頼のある環境が、第１のデータ集合の保護を解除し、第３のデータ集合を保護するようにする複数の命令をさらに備える。
【００７８】
例２６は、例１８‐１９および２５のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合を前に処理しているかどうかをセキュアなハードウェアの信頼のある環境が決定するようにする複数の命令をさらに備える。
【００７９】
例２７は、例２６の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合を前に処理している場合、セキュアなハードウェアの信頼のある環境が警告の信号を送信するようにする複数の命令をさらに備える。
【００８０】
例２８は、例１８の主題を含み、メモリは、複数の命令をさらに格納し、当該複数の命令は、信頼できない環境によって実行される場合、プロセッサが、先行プログラマブルデバイスから第１のデータ集合を受信し、第１のデータ集合を信頼できない環境から信頼のある環境へ転送するようにする。
【００８１】
例２９は、例２８の主題を含み、メモリは複数の命令をさらに格納し、当該複数の命令は、信頼できない環境によって実行される場合、プロセッサが、信頼のある環境から第３のデータ集合を受信し、第３のデータ集合を後続のものへ転送するようにする。
【００８２】
例３０は、例２０の主題を含み、実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合の保護を解除するようにする上記複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が、当該第１のデータ集合に含まれるデジタル署名を認証するようにする複数の命令を備える。また、実行される場合、セキュアなハードウェアの信頼のある環境が、第３のデータ集合を保護するようにする複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が、当該第３のデータ集合にデジタル方式で署名するようにする複数の命令を備える。
【００８３】
例３１は、例２０の主題を含み、実行される場合、セキュアなハードウェアの信頼のある環境が第１のデータ集合の保護を解除するようする上記複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が当該第１のデータ集合を復号化するようにする複数の命令を備える。また、実行される場合、セキュアなハードウェアの信頼のある環境が第３のデータ集合を保護するようにする複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が当該第３のデータ集合を暗号化するようにする複数の命令を備える。
【００８４】
例３２は、例１８‐２０および２８‐３１のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合を前に処理しているかどうかをセキュアなハードウェアの信頼のある環境が決定するようにする複数の命令をさらに備える。
【００８５】
例３３は、例３２の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第１のデータ集合を前に処理している場合、セキュアなハードウェアの信頼のある環境が警告の信号を送信するようにする複数の命令をさらに備える。
【００８６】
例３４は、例１８‐２０および２８‐３１のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、当該セキュアなハードウェアの信頼のある環境が、第１のデータ集合を、エラー状態が検出される場合に破棄するようにする複数の命令をさらに備える。
【００８７】
例３５は、例１８‐２０および２８‐３１のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、当該セキュアなハードウェアの信頼のある環境が、第２のデータ集合を第１のデータ集合と集約することを、エラー状態が検出される場合に省略するようにする複数の命令をさらに備える。
【００８８】
例３６は、例１８‐２０および２８−３１のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第１のデータ集合を初期化するようにする複数の命令をさらに備える。
【００８９】
例３７は、第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、第２のプログラマブルデバイスの信頼できない環境から第２のデータ集合を取得する段階と、上記第１のデータ集合を上記第２のデータ集合と、上記プログラマブルデバイスの信頼のある環境において組み合わせ、第３のデータ集合を作る段階と、上記第３のデータ集合を第３のプログラマブルデバイスへ送信する段階とを備える方法である。
【００９０】
例３８は、例３７の主題を含み、第１のデータ集合と第２のデータ集合とを組み合わせる段階は、第１のデータ集合の保護を解除する段階と、第１のデータ集合と第２のデータ集合とを組み合わせ、第３のデータ集合を作る段階と、第３のデータ集合を保護する段階とを備える。
【００９１】
例３９は、例３８の主題を含み、第１のデータ集合の保護を解除する段階は、第１のデータ集合のデジタル署名を認証する段階を備え、第３のデータ集合を保護する段階は、当該第３のデータ集合をデジタル方式で署名する段階を備える。
【００９２】
例４０は、例３７の主題を含み、第２のデータ集合を信頼できない環境から取得する段階は、当該信頼できない環境において、第１のデータ集合に含まれるクエリを評価する段階と、クエリ結果を信頼のある環境へ転送する段階とを備える。
【００９３】
例４１は、例３７の主題を含み、第２のデータ集合を信頼できない環境から取得する段階は、信頼のある環境において、第１のデータ集合に含まれるクエリを評価する段階と、信頼できない環境からのクエリに対応するデータを信頼のある環境によって要求する段階とを備える。
【００９４】
例４２は、例３７の主題を含み、第１のデータ集合を受信する段階は、第２のプログラマブルデバイスの信頼できない環境において、第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、当該第１のデータ集合を信頼できない環境から信頼のある環境へ転送する段階とを備え、第３のデータ集合を第３のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第３のデータ集合を信頼できない環境へ送信する段階と、信頼できない環境からの第３のデータ集合を第３のプログラマブルデバイスへ転送する段階とを備える。
【００９５】
例４３は、例３７の主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第２のプログラマブルデバイスが第１のデータ集合を前に処理しているかどうかを決定する段階を備える。
【００９６】
例４４は、例３７の主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第１のデータ集合においてエラー状態が検出される場合、第１のデータ集合を破棄する段階をさらに備える。
【００９７】
例４５は、例３７の主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、エラー状態が第１のデータ集合において検出される場合、警告を生成する段階をさらに備える。
【００９８】
例４６は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を受信する段階は、第２のプログラマブルデバイスの信頼できない環境において、第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、当該第１のデータ集合を信頼できない環境から信頼のある環境へ転送する段階とを備え、第３のデータ集合を第３のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第３のデータ集合を信頼できない環境へ送信する段階と、当該信頼できない環境からの第３のデータ集合を第３のプログラマブルデバイスへ転送する段階と、を備える。
【００９９】
例４７は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第２のプログラマブルデバイスが第１のデータ集合を前に処理しているかどうかを決定する段階を備える。
【０１００】
例４８は、例３７‐４１の主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第１のデータ集合においてエラー状態が検出される場合、第１のデータ集合を破棄する段階をさらに備える。
【０１０１】
例４９は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、エラー状態が第１のデータ集合において検出される場合、警告を生成する段階をさらに備える。
【０１０２】
例５０は、例３７―４１のいずれか一項に記載の方法を実行するための手段を備える装置である。
【０１０３】
例５１は、例３７の主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第１のデータ集合の保護を解除する段階であって、第１のデータ集合においてデジタル署名を認証する段階、または第１のデータ集合を復号化する段階のうちの１または複数の段階を有する第１のデータ集合の保護を解除する段階と、第１のデータ集合を第２のデータ集合と組み合わせ、第３のデータ集合を作る段階と、第３のデータ集合を保護する段階であって、第３のデータ集合をデジタル方式で署名する段階、または第３のデータ集合を暗号化する段階のうちの１または複数の段階を有する第３のデータ集合を保護する段階と、を備える。
【０１０４】
例５２は、例３７および５１のいずれかの主題を含み、信頼できない環境から第２のデータ集合を取得する段階は、第１のデータ集合に含まれるクエリを評価する段階と、クエリ結果を信頼のある環境へ提供する段階とを備える。
【０１０５】
例５３は、例３７―３８および５１のいずれかの主題を含み、第１のデータ集合を受信する段階は、第２のプログラマブルデバイスの信頼できない環境において、第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、当該第１のデータ集合を信頼できない環境から信頼のある環境へ転送する段階とを備え、第３のデータ集合を第３のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第３のデータ集合を信頼できない環境へ送信する段階と、当該信頼できない環境からの第３のデータ集合を第３のプログラマブルデバイスへ転送する段階と、を備える。
【０１０６】
例５４は、例３７‐３８および５１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第２のプログラマブルデバイスが第１のデータ集合を前に処理しているかどうかを決定する段階を備える。
【０１０７】
例５５は、例３８の主題を含み、第１のデータ集合の保護を解除する段階は、当該第１のデータ集合を復号化する段階を備え、第３のデータ集合を保護する段階は、当該第３のデータ集合を暗号化する段階を備える。
【０１０８】
例５６は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を受信する段階は、第２のプログラマブルデバイスの信頼できない環境において、第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、当該第１のデータ集合を信頼できない環境から信頼のある環境へ転送する段階と、を備える。
【０１０９】
例５７は、例３７‐４１のいずれかの主題を含み、第３のデータ集合を第３のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第３のデータ集合を信頼できない環境へ送信する段階と、当該第３のデータ集合を信頼できない環境から第３のプログラマブルデバイスへ転送する段階と、を備える。
【０１１０】
例５８は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第２のプログラマブルデバイスが第１のデータ集合を前に処理しているかどうかを決定する段階を備える。
【０１１１】
例５９は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第１のデータ集合においてエラー状態が検出される場合、第１のデータ集合を破棄する段階をさらに備える。
【０１１２】
例６０は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、エラー状態が第１のデータ集合において検出される場合、警告を生成する段階をさらに備える。
【０１１３】
例６１は、例３７‐４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、エラー状態が、第１のデータ集合において検出される場合、ローカルデータを第１のデータ集合と組み合わせる段階を省略することをさらに備える。
【０１１４】
例６２は、例３７―４１のいずれかの主題を含み、第１のデータ集合を第２のデータ集合と組み合わせる段階は、第１のプログラマブルデバイスがない状態で第１のデータ集合を初期化する段階をさらに備える。
【０１１５】
例６３は、プログラマブルデバイスによって実行される場合、当該プログラマブルデバイスが、例３７―６２のいずれかの方法を実行するようにする複数の命令が格納されている機械である。
【０１１６】
上記の説明は例示的であり、限定的でないよう意図されていることは理解されるべきである。例えば、上記の複数の実施形態は、互いに組み合わされて用いられてよい。多くの他の実施形態は、上記の説明を検討するとすぐに当業者にとって明らかになるであろう。本発明の範囲は、よって、添付の特許請求の範囲を参照し、そのような請求項が権利を与えられる均等物の全範囲と共に、決定されるべきである。
【図２】
2016534448.tif 000003
【図３】
2016534448.tif 000004
【図４】
2016534448.tif 000005
【図５】
2016534448.tif 000006
【図１】
2016534448.tif 000007
【手続補正書】
【提出日】平成28年2月12日(2016.2.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブルデバイスが、
先行プログラマブルデバイスから第１のデータ集合を受信し、
前記第１のデータ集合に対応する第２のデータ集合を生成し、
前記第１のデータ集合を、前記プログラマブルデバイスの信頼のある環境において前記第２のデータ集合と集約し、第３のデータ集合を作り、
前記第３のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備える、プログラム。
【請求項２】
前記第１のデータ集合は、デジタル署名を備え、
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記信頼のある環境において前記デジタル署名を認証し、
前記信頼のある環境において前記第３のデータ集合にデジタル方式で署名するようにする複数の命令をさらに備える、請求項１に記載のプログラム。
【請求項３】
前記第１のデータ集合は暗号化され、
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記信頼のある環境において前記第１のデータ集合を復号化し、
前記信頼のある環境において前記第３のデータ集合を暗号化するようにする複数の命令をさらに備える、請求項１に記載のプログラム。
【請求項４】
前記第１のデータ集合を受信するための前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記第１のデータ集合を、前記プログラマブルデバイスの信頼できない環境によって受信し、
前記第１のデータ集合を、前記信頼できない環境から前記信頼のある環境へ転送するようにする複数の命令を備える、請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
前記第３のデータ集合を送信するための複数の命令は、実行される場合、前記プログラマブルデバイスが、前記プログラマブルデバイスの前記信頼のある環境から、信頼できない環境へ前記第３のデータ集合を送信し、
前記第３のデータ集合を前記信頼できない環境から前記後続プログラマブルデバイスへ送信するようにする複数の命令を備える、請求項１から３のいずれか一項に記載のプログラム。
【請求項６】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記信頼のある環境が前記第１のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える、請求項１から３のいずれか一項に記載のプログラム。
【請求項７】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
エラー状態が検出される場合、前記第２のデータ集合と前記第１のデータ集合との集約を省略するようにする複数の命令、をさらに備える、請求項１から３のいずれか一項に記載のプログラム。
【請求項８】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
エラー状態が検出される場合、前記第１のデータ集合を破棄するようにする複数の命令をさらに備える、請求項１から３のいずれか一項に記載のプログラム。
【請求項９】
前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
前記第１のデータ集合を初期化するようにする複数の命令をさらに備える、請求項１から３のいずれか一項に記載のプログラム。
【請求項１０】
プロセッサと、
前記プロセッサによって実行される場合、前記プロセッサを制御し、ソフトウェアが前記プロセッサにおいて実行されるための信頼できない環境を提供する、複数の命令を有するオペレーティングシステムと、
前記信頼できない環境とは別のセキュアなハードウェアの信頼のある環境と、
前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
先行プログラマブルデバイスから第１のデータ集合を受信し、
前記第１のデータ集合に対応する第２のデータ集合を生成し、
前記第１のデータ集合を前記第２のデータ集合と集約し、第３のデータ集合を作り、
前記第３のデータ集合を後続のものに送信する、ようにする複数の命令が格納されている、メモリと、
を備える、プログラマブルデバイス。
【請求項１１】
前記メモリは、前記信頼できない環境において実行される場合、前記プロセッサが、
前記先行プログラマブルデバイスから第１のデータ集合を受信し、
前記第１のデータ集合を前記信頼できない環境から前記信頼のある環境へ転送し、
前記信頼のある環境から前記第３のデータ集合を受信し、
前記第３のデータ集合を前記後続のものへ転送するようにする、複数の命令をさらに格納する、請求項１０に記載のプログラマブルデバイス。
【請求項１２】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
前記第１のデータ集合の保護を解除し、
前記第３のデータ集合を保護するようにする、複数の命令をさらに備える、請求項１０に記載のプログラマブルデバイス。
【請求項１３】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
前記セキュアなハードウェアの信頼のある環境が前記第１のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える、請求項１０から１２のいずれか一項に記載のプログラマブルデバイス。
【請求項１４】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
前記セキュアなハードウェアの信頼のある環境が前記第１のデータ集合を前に処理している場合、警告をシグナリングするようにする複数の命令をさらに備える、請求項１３に記載のプログラマブルデバイス。
【請求項１５】
前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
エラー状態が検出される場合、前記第１のデータ集合を破棄するようにする、複数の命令をさらに備える、請求項１０から１２のいずれか一項に記載のプログラマブルデバイス。
【請求項１６】
第１のプログラマブルデバイスから第１のデータ集合を受信する段階と、
第２のプログラマブルデバイスの信頼できない環境から第２のデータ集合を取得する段階と、
前記第２のプログラマブルデバイスの信頼のある環境において、前記第１のデータ集合を前記第２のデータ集合と組み合わせ、第３のデータ集合を作る段階と、
前記第３のデータ集合を第３のプログラマブルデバイスへ送信する段階と、を備える、方法。
【請求項１７】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第１のデータ集合の保護を解除する段階と、
前記第１のデータ集合を前記第２のデータ集合と組み合わせ、前記第３のデータ集合を作る段階と、
前記第３のデータ集合を保護する段階と、を備える、請求項１６に記載の方法。
【請求項１８】
前記第１のデータ集合の保護を解除する段階は、前記第１のデータ集合のデジタル署名を認証する段階を備え、
前記第３のデータ集合を保護する段階は、前記第３のデータ集合をデジタル方式で署名する段階を備える、請求項１７に記載の方法。
【請求項１９】
前記第２のデータ集合を信頼できない環境から取得する段階は、
前記第１のデータ集合に含まれるクエリを、前記信頼できない環境において評価する段階と、
クエリ結果を前記信頼のある環境へ転送する段階と、を備える、請求項１６に記載の方法。
【請求項２０】
前記第２のデータ集合を信頼できない環境から取得する段階は、
前記第１のデータ集合に含まれるクエリを、前記信頼のある環境において評価する段階と、
前記信頼できない環境からの前記クエリに対応するデータを前記信頼のある環境によって要求する段階と、を備える、請求項１６に記載の方法。
【請求項２１】
第１のデータ集合を受信する段階は、
前記第２のプログラマブルデバイスの前記信頼できない環境において、前記第１のプログラマブルデバイスから前記第１のデータ集合を受信する段階と、
前記第１のデータ集合を、前記信頼できない環境から前記信頼のある環境へ転送する段階と、を備え、
前記第３のデータ集合を第３のプログラマブルデバイスへ送信する段階は、
前記第３のデータ集合を前記信頼のある環境から前記信頼できない環境へ送信する段階と、
前記第３のデータ集合を前記信頼できない環境から前記第３のプログラマブルデバイスへ転送する段階と、を備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２２】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第２のプログラマブルデバイスが前記第１のデータ集合を前に処理しているかどうかを決定する段階を備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２３】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第１のデータ集合においてエラー状態が検出される場合、前記第１のデータ集合を破棄する段階をさらに備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２４】
前記第１のデータ集合を前記第２のデータ集合と組み合わせる段階は、
前記第１のデータ集合においてエラー状態が検出される場合、警告を生成する段階をさらに備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２５】
請求項１６から２０のいずれか一項に記載の方法を実行するための手段を備える、装置。
【請求項２６】
請求項１から９のいずれか一項に記載のプログラムを格納するコンピュータ可読記録媒体。
【国際調査報告】
2016534448.tif 000008
2016534448.tif 000009