JP6253168B2 - 集約データの耐タンパー性の改善 - Google Patents

集約データの耐タンパー性の改善 Download PDF

Info

Publication number
JP6253168B2
JP6253168B2 JP2016534565A JP2016534565A JP6253168B2 JP 6253168 B2 JP6253168 B2 JP 6253168B2 JP 2016534565 A JP2016534565 A JP 2016534565A JP 2016534565 A JP2016534565 A JP 2016534565A JP 6253168 B2 JP6253168 B2 JP 6253168B2
Authority
JP
Japan
Prior art keywords
data set
programmable device
environment
data
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016534565A
Other languages
English (en)
Other versions
JP2016534448A (ja
Inventor
エル. グロブマン、スティーブン
エル. グロブマン、スティーブン
Original Assignee
マカフィー, エルエルシー
マカフィー, エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マカフィー, エルエルシー, マカフィー, エルエルシー filed Critical マカフィー, エルエルシー
Publication of JP2016534448A publication Critical patent/JP2016534448A/ja
Application granted granted Critical
Publication of JP6253168B2 publication Critical patent/JP6253168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Description

本明細書において記載される複数の実施形態は、概して、システム管理に関連し、特に、エンタープライズ管理ソリューションにおいて集約データの耐タンパー性を改善するための技術に関連する。
システム管理業界は、ピアツーピア・ネットワーク構築が、複数のエンタープライズ環境のほぼリアルタイムの分析を可能にする複数の新たな機能を利用している。上記機能は、各エンドポイントが共通のサーバでポイントツーポイント接続を確立するのに対し、データが、ピアツーピアの形式で集約され得ることから、拡張可能である。例えば、情報技術(IT)が、アプリケーションの各バージョンにおいて、いくつのインスタンスが存在するか理解することを望む場合、データペイロードは、一式のピアの間でパスされ得、クライアントが、そのクライアントが有するバージョンを評価する場合、そのクライアントは単に、カウンターをインクリメントし、更新されたペイロードを次のクライアントへ渡す。
しかしながら、チェーンにおいて任意のクライアントエージェントが不正アクセスされている場合、そのクライアントは、複数の結果に不正な変更を加え、集められるデータの値を無効にし得る。チェーンにおいて各クライアントエージェントは、集約データペイロードの保護を解除し、更新し、再び保護するための能力を有する。
ピアツーピア・データ集約の複数の機能が可能にする複数の効率を維持しながら、任意の単一クライアントが、全体の結果に与え得る損傷を軽減するための手段が有利であろう。
従来技術のピアツーピア・システムを示すブロック図である。
一実施形態に従って、集約データの耐タンパー性を改善するためのシステムを示すブロック図である。
一実施形態に従って、耐タンパー性を改善するための技術が実装されるプログラマブルデバイスを示すブロック図である。
一実施形態に従って、集約データの耐タンパー性を改善するための技術を示すフローチャートである。
一実施形態に従って、信頼のある環境においてデータを集約するための技術を示すフローチャートである。
以下の説明において、説明を目的として、多数の具体的な詳細が本発明の完全な理解を提供するべく明記される。しかしながら、本発明は、これらの具体的な詳細がなくても実施されてよいことは、当業者にとって明らかであろう。複数の他の例において、本発明を不明瞭にすることを防ぐべく、構造および複数のデバイスがブロック図の形態において示される。下付き文字または添字のない数字への言及は、その言及された数字に対応する下付き文字および添え字の全ての場合を指すものと理解される。さらに、本開示で用いられる言語は、読みやすさおよび教育の目的で主に選択され、発明の主題を詳述する、または制限するために選択されていなくてもよく、そのような発明の主題を決定するのに必要な特許請求の範囲を採用する。本明細書において、「一実施形態」または「実施形態」への言及は、複数の実施形態に関連して記載される特定の特徴、構造、または特性が、本発明の少なくとも一つの実施形態において含まれ、「一実施形態」または「実施形態」への複数の言及は、必ずしも全てが同一の実施形態を指していると理解されるべきではないことを意味する。
本明細書において用いられるように、「プログラマブルデバイス」という用語は、プログラマブルデバイスにおいて、またはそれによって実行されているとして記載される機能を実行するための、単一のプログラマブルデバイスまたは共に動作する複数のプログラマブルデバイスを指し得る。プログラマブルデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、および、埋め込まれた計算機能を含有する複数のデバイスを含むモバイルデバイスを含む任意のタイプのプログラマブルデバイスであってよい。
本明細書において用いられるように、「信頼のある(トラステッド)環境」は、信頼のあるコードのみを実行することが可能なプラットフォームにおける隔離された実行環境である。しばしば、信頼のある環境は、環境へとプロビジョニングされる複数のキーを有する前に、それが信頼のある環境のインスタンスであることを認証(または証明)し得る。信頼のある環境の複数の例が、複数のコプロセッサまたは複数の二次コアにおいて、またはプラットフォームアーキテクチャの一部として、認証された仮想機械マネージャまたはトラストゾーンの様な機能等で実装され得る。「信頼できない環境」は、信頼のある環境でない任意の環境である。
複数のプログラマブルデバイスの間で通信するために用いられる複数の技術および装置の詳細は、現在の本開示に関連しておらず、最も一般的には、複数のデバイスはTCP/IPプロトコルを使用して通信するが、任意の望ましい通信技術が用いられてもよい。以下の説明は複数のピアツーピア通信の観点で記されるが、複数の実装は、従来の複数のピアツーピア・ネットワーク構築の技術に限定されず、複数のプログラマブルデバイスの間で通信するための任意のネットワーク構築または複数の通信技術を使用して実装されてもよい。各々が集約データを単一の後続プログラマブルデバイスに渡す複数のプログラマブルデバイスのチェーンとして複数の図面に示され、本明細書において記載されるが、複数の実装は、有線または無線の複数の技術を使用し、複数のプログラマブルデバイスの間の任意の望ましい接続を用いて、1対多の、多対1の、および多対多の、1つのプログラマブルデバイスから1または複数の後続プログラマブルデバイスへ集約データを渡すための技術を使用し得る。
ピアツーピア・データ集約の複数の従来の実装は、完全にソフトウェアベースであって、集約データのパスにおいて、単一の不正アクセスされたクライアントによってさえ、集約データへの影響を制限することはできない。複数の従来のシステムは、送信されたデータの直接の破損を検出するべく複数のデジタル署名技術を使用し得る。それらは、署名されたデータの保護を解除し、内在するデータペイロードを破損させ、破損したデータを放棄する能力を有するデバイスによって、データの破損を検出できない。非集約データが、ソーシングデバイスによって個々に署名され得るが、集約の手法を使用するよりも効率的でなく、ネットワークの周囲で渡されるデータの量を増やす。加えて、従来の複数の技術は、1つのデバイスの使用が、複数回用いられることを検出するまたは防止することはできない。
図1は、従来技術に従って、集約プロセスにおいて1つのデバイスによって生成される破損データ集約の例を示すブロック図である。この例において集約されているデータは、特定のアプリケーション(この例ではAPP.EXE)のどのバージョンが、ネットワーク100の複数のデバイスにおいて利用可能であるかに関するクエリへの応答である。この例において、サーバ110は、クライアント120‐150によって生成される集約データを収集し、プログラマブルデバイス120‐150の各々は、これらのそれぞれの先行デバイス(predecessorからクエリへの複数の集約応答を受信し、ローカル応答で集約データを更新し、次に、その集約データをこれらそれぞれの後続のものである別のクライアント130‐150またはサーバ110のいずれかへ渡す。図1に示されるように、複数のプログラマブルデバイスは、異なる複数のタイプのプログラマブルデバイスであってよい。
クエリおよび応答データのフォーマットは、この例を明確にすべく任意で選択され、バイナリエンコードのデータを含む任意のクエリおよび応答のフォーマットが、所望されるように用いられてよい。この例において、プログラマブルデバイス120は、集約データを、バージョン3.25の234個のインスタンス、バージョン3.00の199個のインスタンス、およびバージョン1.00の5個のインスタンスがあることを示すように更新する。そのようなソフトウェアの様々なバージョンが複数の大きなエンタープライズにおいて共通である。自身のローカルデータを複数のクエリ応答へと集約した後に、プログラマブルデバイス120は、その集約データをプログラマブルデバイス130へ渡すかまたは転送する。
プログラマブルデバイス130は、マルウェアによって不正アクセスされている。クエリへの複数のローカル応答でプログラマブルデバイス120から受信されるデータを集約する代わりに、プログラマブルデバイス120は、そのデータを破損させ、バージョン3.25の値を234から9に減らし、バージョン3.00に関しては199から1に減らし、バージョン1.00の値を898に増やす。不正アクセスされたプログラマブルデバイス130は、次に、破損した集約データを、破損を検出できないプログラマブルデバイス140へと渡す。プログラマブルデバイス140は、格納された複数の値をローカルデータでインクリメントし、バージョン3.25に関しては集約カウントの10を示し、バージョン3.00に関しては1を、バージョン1.00に関しては898を示す。プログラマブルデバイス130は、次に、集約データを分析および複数の可能な動作のためにサーバ110へ転送する前に、クエリに対応するそれの独自のローカルデータを集約するプログラマブルデバイス150に、集約データを渡す。
集約データは、この例において、簡易なクエリ応答であるが、任意のデータが任意の望ましいフォーマットで用いられてもよい。通常、集約データは、その集約データの予想外のまたは意図された破損を防ぐべく保護される。暗号化、デジタル署名等を含む、データを保護するための任意の技術が用いられてもよい。一実施形態において、データペイロードは、保護されていない。以下の説明は、データペイロードを保護するためのデジタル署名を使用する実装の観点で記述される。
一実施形態において、複数のプログラマブルデバイス120‐150の各々は、それの先行デバイスからデータを受信し、そのデータに含まれるデジタル署名を認証し、そのデータを更新し、次に、デジタル署名を使用して集約データを引渡す。署名の性質は、本開示の範囲外であり、デジタル方式で署名された集約データの認証を許可する任意のタイプのデジタル署名が用いられてよい。データが暗号化されているところでは、プログラマブルデバイスはそのデータを復号化し、ローカルデータを集約し、その集約データをさらなる送信のために暗号化する。
プログラマブルデバイス130の検出不可能な破損のせいで、複数の後のまたは後続プログラマブルデバイスが、これらの正確なローカルデータを用いて集約データを正確に集約するにもかかわらず、集約データは無意味にされる。たとえ、サーバ110が、集約データが破損される可能性があることを、コンテンツ分析によって検出することが可能であったとしても、サーバ110は、図1に示されるチェーンにおいてどのプログラマブルデバイスが、データを破損させたかを決定することはできない。
データの集約を、信頼できない環境から信頼のある環境へ移動させることによって、集約データは、より耐タンパー性とされてよい。図2は、デバイスの信頼のある環境が、先行デバイスからの集約データと、受信される集約データと集約されるべきであるローカルで生成されるデータを受信する、実施形態を示す。信頼のある環境は、データを集約し、その集約データを後続デバイスへの配信のために渡す。
この例において、集約データペイロード200は、先行デバイスからデバイス210によって受信される。一実施形態において、現在の本開示に関連している3つの部分の集約データペイロード200があり、デジタル署名202、クエリおよび結果部分204、および任意のマルチ集約再生リスト206であって、それらの各々が以下に記載される。別の実施形態において、先行集約データは、デジタル署名を用いず暗号化され、ペイロードは、復号化され、集約され、次に再び暗号化される。複数の実施形態は、集約データをデジタル方式で署名し暗号化する両方を行ってよい。以下において、先行集約データの保護の解除は、デジタル署名を認証するか、暗号化されたデータを復号化することのいずれか、または両方として定義され、同様に、後続集約データを再び保護することは、データをデジタル方式で署名するか、そのデータを暗号化することのいずれか、またはその両方として定義される。
デバイス210は、信頼のある環境220および信頼できない環境230の両方を含む。通常、信頼できない環境は、信頼できないアプリケーションソフトウェアを実行しているオペレーティングシステム環境であって、信頼のある環境は、事前に承認された機能を実行することのみが許可されるセキュア環境である。信頼できない環境は、オペレーティングシステム、および集約データペイロード200のクエリに関連するローカルデータを作ることが可能なローカルエージェントソフトウェアを含み得る。
デバイス210の信頼できない環境230は、先行プログラマブルデバイスから署名された集約データペイロード200を受信し、信頼のある環境220にそのペイロードを渡す。一実施形態において、信頼できない環境230は、集約データに追加されるべきローカルデータ240を決定するべく、集約ペイロード200の少なくとも一部分の保護を解除することが可能である。他の複数の実施形態において、信頼できない環境230は、集約データペイロード200の保護を解除することはできないが、ペイロード200を認識して信頼のある環境220へそれを渡すことができる。このような実施形態において、信頼のある環境220は、信頼できない環境230において、ローカルエージェントに、ローカルデータを生成し、そのローカルデータを信頼のある環境220に提供するよう要求してもよい。
信頼のある環境220が、集約データペイロード200、およびペイロード200に集約されるべきローカルデータ240を有すると、信頼のある環境220は、集約データペイロード200の保護を解除し、そのローカルデータを先行集約データと集約して、出力集約データペイロード250を作り、次に、出力集約データペイロード250を再び保護し、それを後続デバイスへの配信のために信頼できない環境230に渡す。その後続デバイスは、ローカルデータを集約に追加する別のデバイスか、または、例えば、集約データペイロードの保護を解除して集約データをそれの所望される使用のために抽出し得るサーバ110等のコレクタのいずれかであってよい。
いくつかの実施形態において、信頼のある環境220は、先行集約データペイロード200を直接取得してよく、または出力集約データペイロード250を、信頼できない環境230の介入なく直接送信してよい。いくつかの実施形態において、信頼のある環境220は、信頼できない環境からローカルデータを取得する代わりに、ローカルデータ240を生成することが可能であってよい。
デジタル署名202を使用する複数の実施形態において、デジタル署名202は、集約データ200の複数のコンテンツを改ざんから守るべく用いられる。デジタル署名(以下に詳細に記載される)は、暗号鍵を使用して、信頼のある環境によって認証される。集約データ全体の暗号化が採用されるところで、その全体の集約データは、信頼のある環境によって1または複数の暗号鍵を使用して暗号化され、復号化される。一実施形態において、信頼のある環境の各デバイス210は、集約データを再び保護するべく用いられ得るそれの独自のプライベートキーと、先行集約データ並びにデバイス210によって作られた出力集約データペイロード250の保護を解除するために用いられ得るグループパブリックキーとを有する。従って、各デバイス210は、グループパブリックキーを使用して先行デバイスから集約データの保護を解除し、集約を実行し、次に、集約データを、後続デバイスに渡すべく、それのプライベートキーで再び保護する。代わりに、暗号化および復号化の両方において単一のキーを使用する複数の対称暗号化技術が用いられてもよい。
クエリおよび応答部分204は、デバイス210がどのローカルデータ、および同様に結果的にもたらされる集約データが、集約されるべきか決定することを許可するために十分な情報を含んでよい。複数の図面において示される複数の例では、集約は、先行集約データと共にローカルデータの加算を含んでよく、任意の他のタイプの集約が要望通りに用いられてよい。上記で説明されたように、集約データペイロード200および250のフォーマットは、例示的且つ例としてのみであって、任意のフォーマット、テキスト、バイナリ、またはそれらの任意の混合が、要望通りに用いられてよい。
デバイス210を複数回使用することによって、集約データに不正な変更を加えようとする試みを防ぐべく、いくつかの実施形態において、集約データを処理する各デバイス210の記録が、保持されてよい。この記録は、集約データを処理した各デバイス210に関連付けられる複数の固有識別子のリストまたは他の記録である。代わりに、各デバイス210が、データを処理すると、そのデバイス210に関連付けられるビンまたはスロットを、用いられていた通りに示すように、各デバイス210に関連付けられる予め定義された複数のビンまたは複数のスロットが用いられてよい。どの複数のデバイスがデータを集合へと集約したかの追跡を保持するための任意の他の技術が用いられてもよい。記録の構造またはフォーマットは重要ではなく、デバイスが前に集約データを処理していることを示すための任意の望ましい技術が用いられてもよい。よりセキュアではないが、本明細書において記載される複数の技術の実施形態は、所望される場合、同一のデバイスによって複数の集約を検出するための記録管理なしで実装されてもよい。
図2の例において、クエリは、図1において概説されるクエリと同一であり、APP.EXEの複数のバージョンのどれだけ多くのインスタンスであるかのカウントを要求する。部分204において、先行集約データは、バージョン3.25の234個のインスタンス、バージョン3.00の199個のインスタンス、およびバージョン1.00の5個のインスタンスを示す。2つの先行デバイスは、部分206において示され、各々は、固有識別子のみによって識別され、初期の部分だけが図2において明確にすべく示されている。
出力集約データペイロード250は、ローカルデータ240のバージョン3.00の単一のインスタンスの集約を示し、3.00記録を、部分254において200のインスタンスを示すように更新する。出力ペイロード250は、また、部分256に追加の固有識別子を追加し、このデバイス210がデータを集約していることを示す。さらに、デバイス210がデータをこのペイロードに集約するようにする複数の試みが、次に検出され得る。
図3は、本明細書においてにおいて記載される複数の技術のいくつかまたは全てを実装するために用いられてよいプログラマブルデバイス300を示すブロック図である。システムユニット310は、プログラマブルデバイス300の複数のコンポーネントが取り付けられてよく、またはそうでない場合、配置されてよい位置を提供する。システムユニット310は、様々なチップセットが取り付けされるマザーボードとして製造され、システムユニット310全体において、および所望に応じてシステムユニット310の外部において、複数のコンポーネントの間の電気接続および信号および電力の分配を提供してよい。例えば、プログラマブルデバイス300は、マルウェア対策システムが、集約データを検査することによってマルウェアの可能性を検出したという複数の警告または複数の他の指標を表示するための手段を提供するディスプレイ395等の出力デバイスを含んでよい。
システムユニット310の様々なコンポーネントは、1または複数のプロセッサ320を含んでよく、通常、各シングルプロセッサチップ(図3において示されない)は、プロセッサ320とプログラマブルデバイス300の他の複数のコンポーネントとの間の電気接続を提供するべく、取り付けソケットにおいて取り付けられる。シングルプロセッサ320は、図3において示されるが、任意の望まれる数のプロセッサが用いられてもよく、これらの各々はマルチコアプロセッサであってよい。複数のプロセッサチップは、現在、市場において入手可能であり、任意の望まれるプロセッサチップまたはチップセットが用いられてもよい。システムユニット310は、本開示に従って複数の方法を実行するようにプログラミングされてよく、その複数の例が図4から5に示されている。
プロセッサ320は、プロセッサ320による使用のためにメモリ330に接続されており、通常、バスまたは複数のポイントツーポイント相互接続を含む任意の他のタイプの相互接続であってよい信号トランスポートに対するリンクを使用する。メモリ330は、1または複数のメモリモジュールを含んでよく、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、プログラマブルリードオンリーメモリ(PROM)、プログラマブルリードライトメモリ、およびソリッドステートメモリを備えてよい。プロセッサ320は、また、キャッシュメモリ等の内部メモリを含んでもよい。プロセッサ320上で実行しているオペレーティングシステムは、概して、プログラマブルデバイス300の動作を制御し、複数のサービス、複数のアプリケーション、および他のソフトウェアがプログラマブルデバイス300上で実行するためのオペレーティングシステム環境を提供する。
図3において示されるように、プロセッサ320は、また、I/O、タイマー、およびプログラマブルデバイス300のための他の有用な複数の機能を提供するI/Oサブシステム340に接続されている。例えば、I/Oサブシステム340は、任意のディスプレイ395を接続するためのI/Oポート、およびキーボード、マウス、タッチスクリーン等の任意の入力デバイス390を、システムユニット310に対して提供してよい。複数のポートは、ディスプレイ395のような複数のコンポーネントに対する複数の特別目的のポートの1または複数、または、複数のユニバーサルシリアルバス(USB)ポート等の、キーボードまたはマウス390を接続するための複数の多目的ポート等のいずれかであってよい。I/Oサブシステム340は、また、ストレージデバイス380等の複数のストレージデバイスと通信するためのインタフェースであってよく、オーディオインタフェース360を介してオーディオデバイスに接続し、ネットワークインタフェース370を経由してネットワーク120に接続してよい。ストレージデバイス380は、リムーバブル媒体を含む、複数のソリッドステートストレージ素子を含む光学および磁気の全ての形態を含むがこれらに限定されない、不揮発性ストレージの任意の形態を表わし、システムユニット310内に含まれるかまたはシステムユニット310の外部にあってよい。ストレージデバイス380は、プログラマブルデバイス300を制御するためのソフトウェア、プログラマブルデバイス300による使用のためのデータ(ネットワークフローデータを含む)、または両方の格納のために用いられるプログラムストレージデバイスであってよい。図3において、単一のストレージデバイス380のみが明確にすべく示されているが、任意の数のストレージデバイス380が、PCTのインタフェース利用可能性に応じて所望されるように提供されてよい。I/Oサブシステム340は、システムユニット310内の1または複数のチップとして実装されてよい。いくつかの実施形態において、メモリ330は、プロセッサ320の代わりにI/Oサブシステム340に接続されてもよい。
加えて、いくつかの実施形態は、I/Oサブシステム340を、情報を保護するための複数の暗号キーを格納するための暗号プロセッサを提供するトラステッドプラットフォームモジュール350に接続してよい。複数の実施形態は、I/Oサブシステム340の機能を、システムユニット310において1または複数の別のチップとして実装してよい。
図3に示されるように、I/Oサブシステム340は、セキュアな信頼のある環境(TE)345に対して複数のハードウェアリソースを提供する。TE345は、プログラマブルデバイス300を制御するオペレーティングシステムによって制御されないセキュア環境を提供する。複数の他の実施形態において、TE345は、別のチップセットとしてI/Oサブシステムのアウトボード(outboard)であってよく、または、TE機能に限定された別のコア等のように、プロセッサ320に組み込まれてもよい。TE345は、マルウェアによって、さらにプロセッサ320上でブートキットまたはルートキットとして実行され得るマルウェアによって介入され得ない信頼のある環境において、本明細書において記載される複数の技術のセキュア環境の側を実行することを許可するセキュアな処理機能を含む。通常、TE345を提供する複数の供給業者は、独占所有権のあるまたは暗号の複数の技術を使用し、どの機能がTE345において実行してよいかに対する制御を保証し、TE345において実行される、任意であるが注意深く吟味された複数の信頼のあるプログラムの実行を阻止する。プロセッサ320上で実行されているソフトウェアが、TE345に、プロセッサ320に対してデータ集約機能を実行するように要求する等、TE345に所望される機能を実行するよう要求することを許可するべく、複数の特別なインタフェースが提供されてもよい。TE345は、データおよびファームウェアの格納のために、それの独自の内部メモリを使用するか、またはメモリ330の一部分のいずれかを使用してもよい。あるいは、TE345においての実行のためのファームウェアの形態にある複数の命令が、プログラマブルデバイス300の電源投入を行うと、フラッシュメモリ等の不揮発性メモリデバイス345からロードされ、次に、TE345による実行のためのメモリ330の一部分へとロードされてよい。いくつかの実施形態において、TE345は、所望に応じて無効にされ、イネーブルにされてよい。これらの命令は、TE345が、データ集約機能および本明細書において記載されない他の機能を実行するようにしてよい。データ集約ファームウェアは、セキュア環境供給業者によって提供されてよく、または、侵入検出システム供給業者によって提供されてもよく、オペレーティングシステム環境侵入検出ソフトウェアの提供と連携して、セキュア環境供給業者の許可によってファームウェアとして格納されてよい。これらの技術に対して用いられ得る信頼のある環境の例は、Intel社によって提供される複数の特定のチップセットにおけるマネジメントエンジンである。本明細書において、ハードウェアベースのTE345の観点で概して記載されるが、複数のセキュア環境は、ハードウェア、ファームウェア、またはソフトウェア、またはそれらの任意の組み合わせにおいて、所望されるように、実装されてよい。
プログラマブルデバイス300は、例えばスマートフォン、スマートタブレット、パーソナルデジタルアシスタント(PDA)、モバイルインターネットデバイス(MID)、コンバーチブルタブレット、ノートブックコンピュータ、デスクトップコンピュータ、サーバ、またはスマートテレビ等のプログラマブルデバイスの任意のタイプであってよい。ディスプレイ395は、存在する場合、例えばタッチスクリーン、液晶ディスプレイ等、ユーザに対してインタフェースを与えるための任意のタイプのデバイスであってよい。図3に示される複数の要素は、例示的、および例としてのみのものであって、図3に示される複数の要素は、所望されるように複数の要素へと結合または分割されてよい。グローバルポジショニングシステムトランシーバ等の地球測位ロジック、および同様に、例えばIEEE802.11、IEEE802.16、WiMAX(登録商標)等の複数の規格を使用する複数のモバイル通信を処理するためのロジック等、複数の他の要素もまた、所望されるように提供されてよい。
図4は、一実施形態に従って複数の開示される技術を示すフローチャートである。ブロック410において、デバイス210は、先行デバイスから集約データ200を受信する。デバイス210がチェーンにおいて第1のデバイスである場合、集約データの初期化は、第1のデバイスで起こるか、またはサーバ110等の制御デバイスからの命令によって起こるかのいずれかである。代わりに、サーバ110は、そのチェーンにおける第1のデバイスに初期の集約データを送信してもよい。デバイス210は、ブロック420において、集約データを、信頼できない環境230から信頼のある環境220へと送信する。信頼のある環境220が先行デバイスから直接先行集約データ200を受信する複数の実施形態において、ブロック420は省略され得る。
信頼できない環境230は、ブロック430において、先行集約データ200と集約されるべきローカルデータ240を生成する。ローカルデータ240を生成するために用いられる複数の技術は、集められるデータに依存し、本明細書においてはさらに記載されない。信頼できない環境230は、ブロック440において、ローカルデータ240を信頼のある環境へ送信する。いくつかの実施形態において、信頼のある環境220は、信頼できない環境230からローカルデータ240を受信する代わりに、ローカルデータ240を生成することが可能であってよい。代わりに、信頼のある環境230は、どのローカルデータ240が必要であるか決定し、信頼できない環境220にローカルデータ240を生成して、ローカルデータ240を信頼のある環境220に提供するように要求してよい。
ブロック450において、信頼のある環境220は、先行集約データペイロード200の保護を解除し、ローカルデータ240を先行集約データ204と集約し、集約データ254を作る。信頼のある環境220は、次に、集約データ254を、集約データペイロード250の中へと封じる。集約データペイロードが複数の前のデバイスの集約データの記録206を含む実施形態において、信頼のある環境220は、デバイス210が集約データ250を処理したことを示す記録を含むように、集約データ250を更新する。上記に記載されたように、その記録は、デバイス210に関連付けられる固有識別子であってよく、またはデバイス210が集約データ250を処理したことを示すための任意の他の情報であってもよい。
信頼のある環境220は、ブロック460において、出力集約データ250を、ブロック470の後続デバイスへの送信のために、信頼できない環境230に戻す。信頼のある環境220が、集約データを直接受信または送信し得る実施形態において、ブロック460は省略され得る。結果として生じる集約データは、信頼のある環境220自体が破損していない限り、信頼できない環境230は集約データを変更または破損することはできないことから、より耐タンパー性である。
図5は、信頼のある環境220がデータを集約するために用いられる技術の実施形態を示すフローチャートである。ブロック510において、信頼のある環境は、信頼できない環境230から先行集約データ200およびローカルデータ240を受信する。
ブロック520において、信頼のある環境220は、先行集約データペイロード200における署名202が有効であるかどうかを決定する。 デジタル署名を用いない実施形態において、ブロック520は、暗号化された集約データペイロード200の復号化を含んでよい。デジタル署名が認証されず、または暗号化された集約データペイロード200の復号化が失敗する場合、信頼のある環境220は、エラー状態をシグナリングし、先行集約データ200を破棄すること、またはサーバ110、信頼できない環境230、または所望され得る複数の警告の任意の他のレシーバへシグナリングすることを含む、任意の望ましいエラー動作をとってよい。ブロック530において、信頼のある環境220は、集約データ200の前の複数のアグリゲーターの記録を評価してよく、デバイス210が前に先行集約データ200を処理している場合、信頼のある環境220は、エラー状態を示し、先行集約データ200を破棄すること、またはサーバ110、信頼できない環境230、または所望され得る複数の警告の任意の他のレシーバへシグナリングすることを含む、任意の望ましいエリア動作を行ってよい。
集約データを複数の後続デバイスへ渡すべく複数のフラッディング技術用いられてよい実施形態において、データが、現在のデバイス210によって前に処理されていたかどうかについての確認が、同一のデバイス210によるデータの不用意な再処理を防ぐべく用いられてもよい。このような実施形態において、信頼のある環境220は、如何なるエラー指標または警告も用いずに、信頼のある環境220が前に処理している複数の集約データペイロードを単に破棄してよい。再処理が、集約データに不正な変更を加えるための悪意のある試みがされていることを示し得る複数の他の実施形態において、その検出は、ブロック530において、悪意のあるアクティビティが発見されているという警告を結果的にもたらしてよい。
デバイス210は、先行集約データ200を前に処理していない場合、信頼のある環境220は、信頼できない環境230によって提供されるローカルデータがブロック540において有効であるかについて確認する。一実施形態において、信頼のある環境220は、信頼できない環境230による、集約のために破損ローカルデータを提供しようとする試みを検出するべく、信頼できない環境230によって提供されるローカルデータに対する複数の確認を実行してよい。複数の他の実施形態において、信頼のある環境220は、形式に関してローカルデータのみを確認する。ローカルデータが有効でない場合、信頼のある環境220は、次に、エラーをシグナリングし得る。
一実施形態において、信頼のある環境220がブロック520から540のエラー状態の1または複数が発生したことを決定した場合、先行集約データを破棄するかまたは警告を生成する代わりに、信頼のある環境220は、先行集約データ200を無変更で出力集約データ250として単に出力することによって、出力集約データ250を生成してよい。
集約データおよびローカルデータは有効であるとここで決定したことから、信頼のある環境220は、ブロック550において先行集約データ200をローカルデータで更新する。集約データペイロードは、次に、暗号化、または信頼のある環境220において集約データペイロードにデジタル方式で署名すること等によって保護され、複数の集約動作の履歴を記録する複数の実施形態において、信頼のある環境220は、また、前に処理されたデータエリア256を、信頼のある環境220が集約データを処理したことを示すように更新する。
ブロック570において、集約データ250は、後続デバイスへの配信のために信頼できない環境230へ送信され得る。代わりに、信頼のある環境220が集約データを直接送信し受信することが可能である際に、信頼のある環境220は、集約データ250を後続デバイスに信頼できない環境230を通ることなく送信してよい。
ブロック520、530または540の結果として示されるエラー処理は、処理のために信頼できない環境230に渡される、信頼のある環境220によって生成される警告の形態をとってよい。
図4‐5に示される複数の動作の順序は、例示的であって、例としてのみのものであり、複数の他の段階および複数の段階の順序付けが、所望に応じて実行されてもよい。例えば、信頼のある環境220は、所望される任意の順序において、集約データペイロードのいくつかの部分を更新してよい。
以下の複数の例は、さらなる複数の実施形態に関する。
例1は、複数の命令が格納されている持続性コンピュータ可読媒体であって、当該複数の命令は、実行される場合、プログラマブルデバイスが、先行プログラマブルデバイスから第1のデータ集合を受信し、第1のデータ集合に対応する第2のデータ集合を生成し、第1のデータ集合および第2のデータ集合をプログラマブルデバイスの信頼のある環境において集約し、第3のデータ集合を作り出し、第3のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備える。
例2は、例1の主題を含み、これにおいて、第1のデータ集合は、デジタル署名を備え、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境においてデジタル署名を認証し、信頼のある環境において第3のデータ集合にデジタル方式で署名するようにする複数の命令をさらに備える。
例3は、例1の主題を含み、第1のデータ集合は暗号化され、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境において第1のデータ集合を復号化し、信頼のある環境において第3のデータ集合を暗号化するようにする複数の命令をさらに備える。
例4は、例1の主題を含み、第1のデータ集合を受信するための複数の命令は、実行される場合、プログラマブルデバイスが、プログラマブルデバイスの信頼できない環境によって第1のデータ集合を受信し、信頼できない環境からの第1のデータ集合を信頼のある環境へ転送するようにする複数の命令を備える。
例5は、例1の主題を含み、第3のデータ集合を送信するための複数の命令は、実行される場合、プログラマブルデバイスが、第3のデータ集合を信頼のある環境からプログラマブルデバイスの信頼できない環境へ送信し、第3のデータ集合を信頼できない環境から後続プログラマブルデバイスへと送信するようにする複数の命令を備える。
例6は、例1の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境が第1のデータ集合を前に処理しているかどうか決定するようにする複数の命令をさらに備える。
例7は、例1の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第2のデータ集合を第1のデータ集合と集約することを、エラー状態が検出された場合省略するようにする複数の命令をさらに備える。
例8は、例1の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、エラー状態が検出される場合、第1のデータ集合を破棄するようにする複数の命令をさらに備える。
例9は、例1の主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第1のデータ集合を初期化するようにする複数の命令をさらに備える。
例10は、例1‐3のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境が第1のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える。
例11は、例1‐3のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第2のデータ集合を第1のデータ集合と集約することを、エラー状態が検出される場合、省略するようにする複数の命令をさらに備える。
例12は、例1‐3のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第1のデータ集合を、エラー状態が検出される場合、破棄するようにする複数の命令をさらに備える。
例13は、例1‐3のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、の第1のデータ集合を初期化するようにする複数の命令をさらに備える。
例14は前述の例のいずれかの主題を含み、第1のデータ集合はデジタル署名を備え、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境において第1のデータ集合におけるデジタル署名を認証することによって、または信頼のある環境において第1のデータ集合を復号化することによって、第1のデータ集合の保護を解除し、信頼のある環境において第3のデータ集合をデジタル方式で署名することによって、または信頼のある環境において第3のデータ集合を暗号化することによって、第3のデータ集合を保護するようにする複数の命令をさらに備える。
例15は、前述の例の主題のいずれかの主題を含み、第1のデータ集合を受信するための複数の命令は、実行される場合、プログラマブルデバイスが、プログラマブルデバイスの信頼できない環境によって第1のデータ集合を受信し、当該信頼できない環境からの第1のデータ集合を信頼のある環境へ転送し、当該信頼のある環境からの第3のデータ集合を、プログラマブルデバイスの信頼できない環境へ送信し、当該信頼できない環境からの第3のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備える。
例16は、前述の例のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、信頼のある環境が第1のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える。
例17は、前述の例のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、エラー状態が検出される場合、第2のデータ集合を第1のデータ集合と集約することを省略するか、または第1のデータ集合を破棄するようにする複数の命令をさらに備える。
例18は、プロセッサと、プロセッサによって実行される場合、プロセッサを制御し、プロセッサ上で実行されるソフトウェアに対して信頼できない環境を提供する、複数の命令を備えるオペレーティングシステムと、信頼できない環境とは別のセキュアなハードウェアの信頼のある環境と、セキュアなハードウェアの信頼のある環境によって実行される場合、そのセキュアなハードウェアの信頼のある環境が、先行プログラマブルデバイスから第1のデータ集合を受信し、第1のデータ集合に対応する第2のデータ集合を生成し、第1のデータ集合を第2のデータ集合と集約し、第3のデータ集合を作り出し、第3のデータ集合を後続のものへ送信するようにする複数の命令が格納されているメモリとを備えるプログラマブルデバイスである。
例19は、例18の主題を含み、メモリは、複数の命令をさらに格納し、当該複数の命令は、信頼できない環境において実行される場合、プロセッサが、先行プログラマブルデバイスから第1のデータ集合を受信し、信頼できない環境からの第1のデータ集合を信頼のある環境へ転送し、信頼のある環境から第3のデータ集合を受信し、第3のデータ集合を後続のものへ転送するようにする。
例20は、例18の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合の保護を解除し、第3のデータ集合を保護するようにする複数の命令をさらに備える。
例21は、例18の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、そのセキュアなハードウェアの信頼のある環境が前に第1のデータ集合を処理しているかどうかを決定するようにする複数の命令をさらに備える。
例22は、例21の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合を前に処理している場合、セキュアなハードウェアの信頼のある環境が警告の信号を送信するようにする複数の命令をさらに備える。
例23は、例18の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、当該セキュアなハードウェアの信頼のある環境が、第1のデータ集合を、エラー状態が検出される場合に破棄するようにする複数の命令をさらに備える。
例24は、例18の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、そのセキュアなハードウェアの信頼のある環境が、先行プログラマブルデバイスが無い状態において第1のデータ集合を初期化するようにする複数の命令をさらに備える。
例25は、例18‐19のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、そのセキュアなハードウェアの信頼のある環境が、第1のデータ集合の保護を解除し、第3のデータ集合を保護するようにする複数の命令をさらに備える。
例26は、例18‐19および25のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合を前に処理しているかどうかをセキュアなハードウェアの信頼のある環境が決定するようにする複数の命令をさらに備える。
例27は、例26の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合を前に処理している場合、セキュアなハードウェアの信頼のある環境が警告の信号を送信するようにする複数の命令をさらに備える。
例28は、例18の主題を含み、メモリは、複数の命令をさらに格納し、当該複数の命令は、信頼できない環境によって実行される場合、プロセッサが、先行プログラマブルデバイスから第1のデータ集合を受信し、第1のデータ集合を信頼できない環境から信頼のある環境へ転送するようにする。
例29は、例28の主題を含み、メモリは複数の命令をさらに格納し、当該複数の命令は、信頼できない環境によって実行される場合、プロセッサが、信頼のある環境から第3のデータ集合を受信し、第3のデータ集合を後続のものへ転送するようにする。
例30は、例20の主題を含み、実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合の保護を解除するようにする上記複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が、当該第1のデータ集合に含まれるデジタル署名を認証するようにする複数の命令を備える。また、実行される場合、セキュアなハードウェアの信頼のある環境が、第3のデータ集合を保護するようにする複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が、当該第3のデータ集合にデジタル方式で署名するようにする複数の命令を備える。
例31は、例20の主題を含み、実行される場合、セキュアなハードウェアの信頼のある環境が第1のデータ集合の保護を解除するようする上記複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が当該第1のデータ集合を復号化するようにする複数の命令を備える。また、実行される場合、セキュアなハードウェアの信頼のある環境が第3のデータ集合を保護するようにする複数の命令は、実行される場合、セキュアなハードウェアの信頼のある環境が当該第3のデータ集合を暗号化するようにする複数の命令を備える。
例32は、例18‐20および28‐31のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合を前に処理しているかどうかをセキュアなハードウェアの信頼のある環境が決定するようにする複数の命令をさらに備える。
例33は、例32の主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、セキュアなハードウェアの信頼のある環境が、第1のデータ集合を前に処理している場合、セキュアなハードウェアの信頼のある環境が警告の信号を送信するようにする複数の命令をさらに備える。
例34は、例18‐20および28‐31のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、当該セキュアなハードウェアの信頼のある環境が、第1のデータ集合を、エラー状態が検出される場合に破棄するようにする複数の命令をさらに備える。
例35は、例18‐20および28‐31のいずれかの主題を含み、上記複数の命令は、セキュアなハードウェアの信頼のある環境によって実行される場合、当該セキュアなハードウェアの信頼のある環境が、第2のデータ集合を第1のデータ集合と集約することを、エラー状態が検出される場合に省略するようにする複数の命令をさらに備える。
例36は、例18‐20および28−31のいずれかの主題を含み、上記複数の命令は、実行される場合、プログラマブルデバイスが、第1のデータ集合を初期化するようにする複数の命令をさらに備える。
例37は、第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、第2のプログラマブルデバイスの信頼できない環境から第2のデータ集合を取得する段階と、上記第1のデータ集合を上記第2のデータ集合と、上記プログラマブルデバイスの信頼のある環境において組み合わせ、第3のデータ集合を作る段階と、上記第3のデータ集合を第3のプログラマブルデバイスへ送信する段階とを備える方法である。
例38は、例37の主題を含み、第1のデータ集合と第2のデータ集合とを組み合わせる段階は、第1のデータ集合の保護を解除する段階と、第1のデータ集合と第2のデータ集合とを組み合わせ、第3のデータ集合を作る段階と、第3のデータ集合を保護する段階とを備える。
例39は、例38の主題を含み、第1のデータ集合の保護を解除する段階は、第1のデータ集合のデジタル署名を認証する段階を備え、第3のデータ集合を保護する段階は、当該第3のデータ集合をデジタル方式で署名する段階を備える。
例40は、例37の主題を含み、第2のデータ集合を信頼できない環境から取得する段階は、当該信頼できない環境において、第1のデータ集合に含まれるクエリを評価する段階と、クエリ結果を信頼のある環境へ転送する段階とを備える。
例41は、例37の主題を含み、第2のデータ集合を信頼できない環境から取得する段階は、信頼のある環境において、第1のデータ集合に含まれるクエリを評価する段階と、信頼できない環境からのクエリに対応するデータを信頼のある環境によって要求する段階とを備える。
例42は、例37の主題を含み、第1のデータ集合を受信する段階は、第2のプログラマブルデバイスの信頼できない環境において、第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、当該第1のデータ集合を信頼できない環境から信頼のある環境へ転送する段階とを備え、第3のデータ集合を第3のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第3のデータ集合を信頼できない環境へ送信する段階と、信頼できない環境からの第3のデータ集合を第3のプログラマブルデバイスへ転送する段階とを備える。
例43は、例37の主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第2のプログラマブルデバイスが第1のデータ集合を前に処理しているかどうかを決定する段階を備える。
例44は、例37の主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第1のデータ集合においてエラー状態が検出される場合、第1のデータ集合を破棄する段階をさらに備える。
例45は、例37の主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、エラー状態が第1のデータ集合において検出される場合、警告を生成する段階をさらに備える。
例46は、例37‐41のいずれかの主題を含み、第1のデータ集合を受信する段階は、第2のプログラマブルデバイスの信頼できない環境において、第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、当該第1のデータ集合を信頼できない環境から信頼のある環境へ転送する段階とを備え、第3のデータ集合を第3のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第3のデータ集合を信頼できない環境へ送信する段階と、当該信頼できない環境からの第3のデータ集合を第3のプログラマブルデバイスへ転送する段階と、を備える。
例47は、例37‐41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第2のプログラマブルデバイスが第1のデータ集合を前に処理しているかどうかを決定する段階を備える。
例48は、例37‐41の主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第1のデータ集合においてエラー状態が検出される場合、第1のデータ集合を破棄する段階をさらに備える。
例49は、例37‐41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、エラー状態が第1のデータ集合において検出される場合、警告を生成する段階をさらに備える。
例50は、例37―41のいずれか一項に記載の方法を実行するための手段を備える装置である。
例51は、例37の主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第1のデータ集合の保護を解除する段階であって、第1のデータ集合においてデジタル署名を認証する段階、または第1のデータ集合を復号化する段階のうちの1または複数の段階を有する第1のデータ集合の保護を解除する段階と、第1のデータ集合を第2のデータ集合と組み合わせ、第3のデータ集合を作る段階と、第3のデータ集合を保護する段階であって、第3のデータ集合をデジタル方式で署名する段階、または第3のデータ集合を暗号化する段階のうちの1または複数の段階を有する第3のデータ集合を保護する段階と、を備える。
例52は、例37および51のいずれかの主題を含み、信頼できない環境から第2のデータ集合を取得する段階は、第1のデータ集合に含まれるクエリを評価する段階と、クエリ結果を信頼のある環境へ提供する段階とを備える。
例53は、例37―38および51のいずれかの主題を含み、第1のデータ集合を受信する段階は、第2のプログラマブルデバイスの信頼できない環境において、第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、当該第1のデータ集合を信頼できない環境から信頼のある環境へ転送する段階とを備え、第3のデータ集合を第3のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第3のデータ集合を信頼できない環境へ送信する段階と、当該信頼できない環境からの第3のデータ集合を第3のプログラマブルデバイスへ転送する段階と、を備える。
例54は、例37‐38および51のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第2のプログラマブルデバイスが第1のデータ集合を前に処理しているかどうかを決定する段階を備える。
例55は、例38の主題を含み、第1のデータ集合の保護を解除する段階は、当該第1のデータ集合を復号化する段階を備え、第3のデータ集合を保護する段階は、当該第3のデータ集合を暗号化する段階を備える。
例56は、例37‐41のいずれかの主題を含み、第1のデータ集合を受信する段階は、第2のプログラマブルデバイスの信頼できない環境において、第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、当該第1のデータ集合を信頼できない環境から信頼のある環境へ転送する段階と、を備える。
例57は、例37‐41のいずれかの主題を含み、第3のデータ集合を第3のプログラマブルデバイスへ送信する段階は、信頼のある環境からの第3のデータ集合を信頼できない環境へ送信する段階と、当該第3のデータ集合を信頼できない環境から第3のプログラマブルデバイスへ転送する段階と、を備える。
例58は、例37‐41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第2のプログラマブルデバイスが第1のデータ集合を前に処理しているかどうかを決定する段階を備える。
例59は、例37‐41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第1のデータ集合においてエラー状態が検出される場合、第1のデータ集合を破棄する段階をさらに備える。
例60は、例37‐41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、エラー状態が第1のデータ集合において検出される場合、警告を生成する段階をさらに備える。
例61は、例37‐41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、エラー状態が、第1のデータ集合において検出される場合、ローカルデータを第1のデータ集合と組み合わせる段階を省略することをさらに備える。
例62は、例37―41のいずれかの主題を含み、第1のデータ集合を第2のデータ集合と組み合わせる段階は、第1のプログラマブルデバイスがない状態で第1のデータ集合を初期化する段階をさらに備える。
例63は、プログラマブルデバイスによって実行される場合、当該プログラマブルデバイスが、例37―62のいずれかの方法を実行するようにする複数の命令が格納されている機械である。
上記の説明は例示的であり、限定的でないよう意図されていることは理解されるべきである。例えば、上記の複数の実施形態は、互いに組み合わされて用いられてよい。多くの他の実施形態は、上記の説明を検討するとすぐに当業者にとって明らかになるであろう。本発明の範囲は、よって、添付の特許請求の範囲を参照し、そのような請求項が権利を与えられる均等物の全範囲と共に、決定されるべきである。

Claims (24)

  1. プログラマブルデバイスが、
    先行プログラマブルデバイスから第1のデータ集合を受信し、
    前記第1のデータ集合に対応する第2のデータ集合を生成し、
    前記第1のデータ集合を、前記プログラマブルデバイスの信頼のある環境において前記第2のデータ集合と集約し、第3のデータ集合を作り、
    前記第3のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備え、
    前記第1のデータ集合は、デジタル署名を備え、
    前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    前記信頼のある環境において前記デジタル署名を認証し、
    前記信頼のある環境において前記第3のデータ集合にデジタル方式で署名するようにする複数の命令をさらに備える、プログラム。
  2. プログラマブルデバイスが、
    先行プログラマブルデバイスから第1のデータ集合を受信し、
    前記第1のデータ集合に対応する第2のデータ集合を生成し、
    前記第1のデータ集合を、前記プログラマブルデバイスの信頼のある環境において前記第2のデータ集合と集約し、第3のデータ集合を作り、
    前記第3のデータ集合を後続プログラマブルデバイスへ送信するようにする複数の命令を備え、
    前記第1のデータ集合は暗号化され、
    前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    前記信頼のある環境において前記第1のデータ集合を復号化し、
    前記信頼のある環境において前記第3のデータ集合を暗号化するようにする複数の命令をさらに備える、プログラム。
  3. 前記第1のデータ集合を受信するための前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    前記第1のデータ集合を、前記プログラマブルデバイスの信頼できない環境によって受信し、
    前記第1のデータ集合を、前記信頼できない環境から前記信頼のある環境へ転送するようにする複数の命令を備える、請求項1または2に記載のプログラム。
  4. 前記第3のデータ集合を送信するための複数の命令は、実行される場合、前記プログラマブルデバイスが、前記プログラマブルデバイスの前記信頼のある環境から、信頼できない環境へ前記第3のデータ集合を送信し、
    前記第3のデータ集合を前記信頼できない環境から前記後続プログラマブルデバイスへ送信するようにする複数の命令を備える、請求項1または2に記載のプログラム。
  5. 前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    前記信頼のある環境が前記第1のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える、請求項1または2に記載のプログラム。
  6. 前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    エラー状態が検出される場合、前記第2のデータ集合と前記第1のデータ集合との集約を省略するようにする複数の命令、をさらに備える、請求項1または2に記載のプログラム。
  7. 前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    エラー状態が検出される場合、前記第1のデータ集合を破棄するようにする複数の命令をさらに備える、請求項1または2に記載のプログラム。
  8. 前記複数の命令は、実行される場合、前記プログラマブルデバイスが、
    前記第1のデータ集合を初期化するようにする複数の命令をさらに備える、請求項1または2に記載のプログラム。
  9. プロセッサと、
    前記プロセッサによって実行される場合、前記プロセッサを制御し、ソフトウェアが前記プロセッサにおいて実行されるための信頼できない環境を提供する、複数の命令を有するオペレーティングシステムと、
    前記信頼できない環境とは別のセキュアなハードウェアの信頼のある環境と、
    前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
    先行プログラマブルデバイスから第1のデータ集合を受信し、
    前記第1のデータ集合の保護を解除し、
    前記第1のデータ集合に対応する第2のデータ集合を生成し、
    前記第1のデータ集合を前記第2のデータ集合と集約し、第3のデータ集合を作り、
    前記第3のデータ集合を保護し、
    前記第3のデータ集合を後続のものに送信する、ようにする複数の命令が格納されている、メモリと、
    を備える、プログラマブルデバイス。
  10. 前記メモリは、前記信頼できない環境において実行される場合、前記プロセッサが、
    前記先行プログラマブルデバイスから第1のデータ集合を受信し、
    前記第1のデータ集合を前記信頼できない環境から前記信頼のある環境へ転送し、
    前記信頼のある環境から前記第3のデータ集合を受信し、
    前記第3のデータ集合を前記後続のものへ転送するようにする、複数の命令をさらに格納する、請求項に記載のプログラマブルデバイス。
  11. 前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
    前記セキュアなハードウェアの信頼のある環境が前記第1のデータ集合を前に処理しているかどうかを決定するようにする複数の命令をさらに備える、請求項9または10に記載のプログラマブルデバイス。
  12. 前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
    前記セキュアなハードウェアの信頼のある環境が前記第1のデータ集合を前に処理している場合、警告をシグナリングするようにする複数の命令をさらに備える、請求項11に記載のプログラマブルデバイス。
  13. 前記複数の命令は、前記セキュアなハードウェアの信頼のある環境によって実行される場合、前記セキュアなハードウェアの信頼のある環境が、
    エラー状態が検出される場合、前記第1のデータ集合を破棄するようにする、複数の命令をさらに備える、請求項9または10に記載のプログラマブルデバイス。
  14. 第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、
    第2のプログラマブルデバイスの信頼できない環境から第2のデータ集合を取得する段階と、
    前記第2のプログラマブルデバイスの信頼のある環境において、前記第1のデータ集合を前記第2のデータ集合と組み合わせ、第3のデータ集合を作る段階と、
    前記第3のデータ集合を第3のプログラマブルデバイスへ送信する段階と、
    を備え、
    前記第1のデータ集合を前記第2のデータ集合と組み合わせる段階は、
    前記第1のデータ集合の保護を解除する段階と、
    前記第1のデータ集合を前記第2のデータ集合と組み合わせ、前記第3のデータ集合を作る段階と、
    前記第3のデータ集合を保護する段階と、を備える、方法。
  15. 前記第1のデータ集合の保護を解除する段階は、前記第1のデータ集合のデジタル署名を認証する段階を備え、
    前記第3のデータ集合を保護する段階は、前記第3のデータ集合をデジタル方式で署名する段階を備える、請求項14に記載の方法。
  16. 第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、
    第2のプログラマブルデバイスの信頼できない環境から第2のデータ集合を取得する段階と、
    前記第2のプログラマブルデバイスの信頼のある環境において、前記第1のデータ集合を前記第2のデータ集合と組み合わせ、第3のデータ集合を作る段階と、
    前記第3のデータ集合を第3のプログラマブルデバイスへ送信する段階と、
    を備え、
    前記第2のデータ集合を信頼できない環境から取得する段階は、
    前記第1のデータ集合に含まれるクエリを、前記信頼できない環境において評価する段階と、
    クエリ結果を前記信頼のある環境へ転送する段階と、を備える、方法。
  17. 第1のプログラマブルデバイスから第1のデータ集合を受信する段階と、
    第2のプログラマブルデバイスの信頼できない環境から第2のデータ集合を取得する段階と、
    前記第2のプログラマブルデバイスの信頼のある環境において、前記第1のデータ集合を前記第2のデータ集合と組み合わせ、第3のデータ集合を作る段階と、
    前記第3のデータ集合を第3のプログラマブルデバイスへ送信する段階と、
    を備え、
    前記第2のデータ集合を信頼できない環境から取得する段階は、
    前記第1のデータ集合に含まれるクエリを、前記信頼のある環境において評価する段階と、
    前記信頼できない環境からの前記クエリに対応するデータを前記信頼のある環境によって要求する段階と、を備える、方法。
  18. 第1のデータ集合を受信する段階は、
    前記第2のプログラマブルデバイスの前記信頼できない環境において、前記第1のプログラマブルデバイスから前記第1のデータ集合を受信する段階と、
    前記第1のデータ集合を、前記信頼できない環境から前記信頼のある環境へ転送する段階と、を備え、
    前記第3のデータ集合を第3のプログラマブルデバイスへ送信する段階は、
    前記第3のデータ集合を前記信頼のある環境から前記信頼できない環境へ送信する段階と、
    前記第3のデータ集合を前記信頼できない環境から前記第3のプログラマブルデバイスへ転送する段階と、を備える、請求項14から17のいずれか一項に記載の方法。
  19. 前記第1のデータ集合を前記第2のデータ集合と組み合わせる段階は、
    前記第2のプログラマブルデバイスが前記第1のデータ集合を前に処理しているかどうかを決定する段階を備える、請求項14から17のいずれか一項に記載の方法。
  20. 前記第1のデータ集合を前記第2のデータ集合と組み合わせる段階は、
    前記第1のデータ集合においてエラー状態が検出される場合、前記第1のデータ集合を破棄する段階をさらに備える、請求項14から17のいずれか一項に記載の方法。
  21. 前記第1のデータ集合を前記第2のデータ集合と組み合わせる段階は、
    前記第1のデータ集合においてエラー状態が検出される場合、警告を生成する段階をさらに備える、請求項14から17のいずれか一項に記載の方法。
  22. 請求項14から17のいずれか一項に記載の方法を実行するための手段を備える、装置。
  23. 請求項14から21のいずれか一項に記載の方法を前記第2のプログラマブルデバイスに実行させるためのプログラム。
  24. 請求項1から8および23のいずれか一項に記載のプログラムを格納するコンピュータ可読記録媒体。
JP2016534565A 2013-08-30 2013-08-30 集約データの耐タンパー性の改善 Active JP6253168B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/057584 WO2015030800A1 (en) 2013-08-30 2013-08-30 Improving tamper resistance of aggregated data

Publications (2)

Publication Number Publication Date
JP2016534448A JP2016534448A (ja) 2016-11-04
JP6253168B2 true JP6253168B2 (ja) 2017-12-27

Family

ID=52584954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016534565A Active JP6253168B2 (ja) 2013-08-30 2013-08-30 集約データの耐タンパー性の改善

Country Status (6)

Country Link
US (1) US20150067343A1 (ja)
EP (1) EP3039567A4 (ja)
JP (1) JP6253168B2 (ja)
KR (1) KR101737747B1 (ja)
CN (1) CN105453073A (ja)
WO (1) WO2015030800A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277396B2 (en) * 2016-06-16 2019-04-30 General Electric Company Watermarking for data integrity
US10902149B2 (en) 2018-02-01 2021-01-26 Microsoft Technology Licensing, Llc Remote testing analysis for software optimization based on client-side local differential privacy-based data

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6606744B1 (en) * 1999-11-22 2003-08-12 Accenture, Llp Providing collaborative installation management in a network-based supply chain environment
US7308496B2 (en) * 2001-07-31 2007-12-11 Sun Microsystems, Inc. Representing trust in distributed peer-to-peer networks
US7213047B2 (en) * 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7805518B1 (en) * 2003-11-14 2010-09-28 The Board Of Trustees Of The Leland Stanford Junior University Method and system for reputation management in peer-to-peer networks
JP4268531B2 (ja) * 2004-02-04 2009-05-27 日本放送協会 視聴履歴生成セキュリティモジュール、視聴履歴生成受信端末および視聴履歴生成受信プログラム
DE102004016580B4 (de) * 2004-03-31 2008-11-20 Nec Europe Ltd. Verfahren zur Übertragung von Daten in einem Ad Hoc Netzwerk oder einem Sensornetzwerk
DE102005045733A1 (de) * 2005-09-23 2007-04-05 Nec Europe Ltd. Verfahren zum Übermitteln von Nachrichten
US8108926B2 (en) * 2005-11-28 2012-01-31 Sap Ag Method and system for online trust management using statistical and probability modeling
JP4783680B2 (ja) * 2006-01-18 2011-09-28 株式会社Pfu 画像処理装置、色変換テーブル書換方法およびプログラム
JP4896595B2 (ja) * 2006-01-18 2012-03-14 株式会社Pfu 画像読取装置およびプログラム
US8849983B2 (en) * 2006-03-16 2014-09-30 Futurewei Technologies, Inc. Method and system for updating and retrieving state information for mobile nodes in a communication network
US7603350B1 (en) * 2006-05-09 2009-10-13 Google Inc. Search result ranking based on trust
WO2008131787A1 (en) * 2007-04-25 2008-11-06 Nec Europe Ltd. Method for aggregating data in a network
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
WO2009102354A1 (en) * 2008-02-13 2009-08-20 Hewlett-Packard Development Company, L.P. Managing electronic devices using an electronic device as a root of trust
JP2009288972A (ja) * 2008-05-28 2009-12-10 Brother Ind Ltd 情報配信システム及び同システムにおける端末装置並びに再生ランキングの生成方法
AU2010273279B2 (en) * 2009-07-16 2013-12-05 Georgia State University Research Foundation, Inc. Trusted query network systems and methods
US20110078775A1 (en) * 2009-09-30 2011-03-31 Nokia Corporation Method and apparatus for providing credibility information over an ad-hoc network
US8621636B2 (en) * 2009-12-17 2013-12-31 American Express Travel Related Services Company, Inc. Systems, methods, and computer program products for collecting and reporting sensor data in a communication network
EP2543215A2 (en) * 2010-03-05 2013-01-09 InterDigital Patent Holdings, Inc. Method and apparatus for providing security to devices
US8555400B2 (en) * 2011-02-04 2013-10-08 Palo Alto Research Center Incorporated Privacy-preserving aggregation of Time-series data
EP2543974B1 (en) * 2011-07-06 2014-02-26 Nxp B.V. Metering system having improved security
US9647835B2 (en) * 2011-12-16 2017-05-09 Akamai Technologies, Inc. Terminating SSL connections without locally-accessible private keys

Also Published As

Publication number Publication date
CN105453073A (zh) 2016-03-30
JP2016534448A (ja) 2016-11-04
EP3039567A1 (en) 2016-07-06
KR20160025614A (ko) 2016-03-08
WO2015030800A1 (en) 2015-03-05
US20150067343A1 (en) 2015-03-05
KR101737747B1 (ko) 2017-05-29
EP3039567A4 (en) 2017-05-03

Similar Documents

Publication Publication Date Title
US11423171B2 (en) Protection of privacy and data on smart edge devices
US20190196843A1 (en) Remote attestation of host devices
US10050982B1 (en) Systems and methods for reverse-engineering malware protocols
US11038852B2 (en) Method and system for preventing data leakage from trusted network to untrusted network
US9584517B1 (en) Transforms within secure execution environments
CN105409164B (zh) 通过使用硬件资源来检测网络业务中的矛盾的根套件检测
US8966642B2 (en) Trust verification of a computing platform using a peripheral device
US9424439B2 (en) Secure data synchronization
US8356361B2 (en) Secure co-processing memory controller integrated into an embedded memory subsystem
US7770003B2 (en) Updating firmware securely over a network
US10949540B2 (en) Security policy enforcement based on dynamic security context updates
US20140143538A1 (en) Data Security and Integrity by Remote Attestation
US10581819B1 (en) Network traffic scanning of encrypted data
US9529733B1 (en) Systems and methods for securely accessing encrypted data stores
EP3884405B1 (en) Secure count in cloud computing networks
US10812466B2 (en) Using trusted platform module to build real time indicators of attack information
Liu et al. $ LiveForen $: Ensuring Live Forensic Integrity in the Cloud
US9537738B2 (en) Reporting platform information using a secure agent
JP6253168B2 (ja) 集約データの耐タンパー性の改善
US11768948B1 (en) Enclave-based cryptography services in edge computing environments
US11032087B2 (en) Certificate analysis
US11106788B2 (en) Security for active data request streams
WO2023119421A1 (ja) 情報処理システム、情報処理方法、および、情報処理プログラム
WO2024060756A1 (zh) 计算机设备及其运行方法、安全芯片
WO2017019551A1 (en) Systems and methods for providing multi-level network security

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171124

R150 Certificate of patent or registration of utility model

Ref document number: 6253168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250