(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-07
(54)【発明の名称】ネットワーク化されたシステムがデジタルコンテンツ、例えばコードを安全に使用することを可能にするシステム及び方法
(51)【国際特許分類】
G06F 21/33 20130101AFI20240131BHJP
G06F 21/64 20130101ALI20240131BHJP
【FI】
G06F21/33
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023547639
(86)(22)【出願日】2022-01-31
(85)【翻訳文提出日】2023-10-03
(86)【国際出願番号】 IL2022050134
(87)【国際公開番号】W WO2022168083
(87)【国際公開日】2022-08-11
(32)【優先日】2021-02-04
(33)【優先権主張国・地域又は機関】IL
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523297675
【氏名又は名称】カズーア アドヴァンスト テクノロジーズ リミテッド
【氏名又は名称原語表記】KAZUAR ADVANCED TECHNOLOGIES LTD.
【住所又は居所原語表記】126 Yigal Alon St., Tel-Aviv, Israel
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】フィンチェルスタイン ダニエル モンディ
(72)【発明者】
【氏名】フェンスター ヤーコフ
(72)【発明者】
【氏名】シェヴァンディン アレクセイ
(57)【要約】
エンドポイントコンピュータの集団のサブセットであるエンドポイントコンピュータのそれ自体のサブ集団にネットワーク化されたエンクレーブを各々含む顧客の特別なユーザワークステーションに、コンテンツ提供サーバから署名されたコンテンツを送信することによって、エンドポイントコンピュータにコンテンツを配信するための、及び/又は、各エンクレーブにおいて、受信されたコンテンツがサーバによって署名されたことを認証し、次いで、個々のエンクレーブのサブ集団に属するエンドポイントコンピュータによって使用される受信されたコンテンツの同一でないコピーを生成し、同一でないコピーに署名し、同一でない署名されたコピーをエンドポイントコンピュータのエンクレーブのサブ集団内のエンドポイントコンピュータに送信し、及び/又は少なくとも1つのエンクレーブにおいて、受信されたコンテンツが所与の特別なユーザワークステーションによって署名されたことを認証し、次いで、所与の特別なユーザワークステーションによって署名された受信されたコンテンツをエンドポイントコンピュータ上又はエンドポイントコンピュータ内で使用するための、方法。エンティティは、エンティティにおいて事前にプロビジョニングされたキーの組合せを使用して、個々のエンティティによって検証された署名されたコンテンツに再署名することができる。
【特許請求の範囲】
【請求項1】
エンドポイントコンピュータの集団にコンテンツを安全に配布するための方法であって、前記方法は、以下の3つの動作:
動作a.少なくとも1つのプロバイダ、別名コンテンツ提供サーバから、エンクレーブを各々含む複数の顧客の特別のユーザワークステーションに署名されたコンテンツを送信するように構成されたハードウェアプロセッサを提供することであって、各特別なユーザワークステーション、したがって各エンクレーブは、それ自体のエンドポイントコンピュータのサブ集団にネットワーク化されるように構成され、各前記サブ集団は、前記エンドポイントコンピュータの集団のサブセットである、こと、
動作b.前記エンクレーブのうちの各個々のエンクレーブにおいて、受信されたコンテンツが前記少なくとも1つのコンテンツ提供サーバによって署名されたことを認証し、そうした後、受信された前記コンテンツの複数の同一でないコピーを生成して、前記エンドポイントコンピュータの個々のエンクレーブのサブ集団にそれぞれ属する複数のエンドポイントコンピュータ上で実行されるか、そうでなければそれらによって使用され、前記複数の同一でないコピーに署名し、それによって複数の同一でない署名されたコピーを生成し、前記複数の同一でない署名されたコピーを、前記エンドポイントコンピュータの個々のエンクレーブのサブ集団内の少なくともいくつかのエンドポイントコンピュータに送信するように構成されたハードウェアプロセッサを提供すること、
動作c.所与の特別なユーザワークステーションのサブ集団にそれぞれ属する少なくとも1つのエンドポイントコンピュータ内の少なくとも1つのエンクレーブにおいて、受信されたコンテンツが前記所与の特別なユーザワークステーションによって署名されたことを認証し、そうした後、前記所与の特別なユーザワークステーションによって署名された受信された前記コンテンツを前記少なくとも1つのエンドポイントコンピュータ上又は内で実行又は使用するように構成されたハードウェアプロセッサを提供すること、のうちの少なくとも2つを含み、
前記顧客/信頼できるエンティティ/特別なユーザワークステーションと、
それらのエンドポイントと、
もしあれば、それらのエンドポイントのサブ構成要素と、を含む前記エンティティのグループの中からの少なくとも1つの個々のエンティティは、
前記エンティティのグループの中からの複数のエンティティにおいて事前にプロビジョニングされたキーの組合せであるキーを使用して、前記個々のエンティティによって検証された署名されたコンテンツに再署名する、方法。
【請求項2】
前記コンテンツは、前記エンドポイントコンピュータの集団内の少なくともいくつかのエンドポイントコンピュータ上で動作するように構成されたソフトウェアの更新を含む、請求項1に記載の方法。
【請求項3】
前記複数の同一でないコピーは、個人化メタデータを含む、請求項1に記載の方法。
【請求項4】
前記複数の同一でないコピーは、個人化メタデータを除いて同一である、請求項1に記載の方法。
【請求項5】
前記個人化メタデータは、少なくとも1つの個々のエンクレーブに固有の、又は少なくとも1つの個々のエンクレーブによって使用され、前記少なくとも1つの個々のエンクレーブ以外のエンクレーブに固有ではない、又は前記少なくとも1つの個々のエンクレーブ以外のエンクレーブによって使用されないロゴを含む、請求項3に記載の方法。
【請求項6】
前記個人化メタデータは、個々のエンクレーブのサブ集団に属する少なくとも1つの個々のエンドポイントコンピュータに固有の、又は個々のエンクレーブのサブ集団に属する少なくとも1つの個々のエンドポイントコンピュータによって使用され、前記少なくとも1つの個々のエンドポイントコンピュータ以外の前記個々のエンクレーブのサブ集団に属するエンドポイントコンピュータに固有ではない、又は前記少なくとも1つの個々のエンドポイントコンピュータ以外の前記個々のエンクレーブのサブ集団に属するエンドポイントコンピュータによって使用されないユーザ名を含む、請求項3に記載の方法。
【請求項7】
少なくとも1つのハードウェアプロセッサを備えるシステムであって、前記ハードウェアプロセッサは以下の3つの動作:
動作a.少なくとも1つのプロバイダ、別名コンテンツ提供サーバから、エンクレーブを各々含む複数の顧客特別なユーザワークステーションに署名されたコンテンツを送信するように構成されたハードウェアプロセッサを提供することであって、各特別なユーザワークステーション、したがって各エンクレーブは、それ自体のエンドポイントコンピュータのサブ集団にネットワーク化されるように構成され、各前記サブ集団は、前記エンドポイントコンピュータの集団のサブセットである、こと、
動作b.前記エンクレーブのうちの各個々のエンクレーブにおいて、受信されたコンテンツが前記少なくとも1つのコンテンツ提供サーバによって署名されたことを認証し、そうした後、受信された前記コンテンツの複数の同一でないコピーを生成して、前記エンドポイントコンピュータの個々のエンクレーブのサブ集団にそれぞれ属する複数のエンドポイントコンピュータ上で実行されるか、そうでなければそれらによって使用され、前記複数の同一でないコピーに署名し、それによって複数の同一でない署名されたコピーを生成し、前記複数の同一でない署名されたコピーを、前記エンドポイントコンピュータの個々のエンクレーブのサブ集団内の少なくともいくつかのエンドポイントコンピュータに送信するように構成されたハードウェアプロセッサを提供すること、
動作c.所与の特別なユーザワークステーションのサブ集団にそれぞれ属する少なくとも1つのエンドポイントコンピュータ内の少なくとも1つのエンクレーブにおいて、受信されたコンテンツが前記所与の特別なユーザワークステーションによって署名されたことを認証し、そうした後、前記所与の特別なユーザワークステーションによって署名された受信された前記コンテンツを前記少なくとも1つのエンドポイントコンピュータ上又は内で実行又は使用するように構成されたハードウェアプロセッサを提供すること、のうちの少なくとも2つを実行するように構成され、
前記顧客/信頼できるエンティティ/特別なユーザワークステーションと、
それらのエンドポイントと、
もしあれば、それらのエンドポイントのサブ構成要素と、を含む前記エンティティのグループの中からの少なくとも1つの個々のエンティティは、
前記エンティティのグループの中からの複数のエンティティにおいて事前にプロビジョニングされたキーの組合せであるキーを使用して、前記個々のエンティティによって検証された署名されたコンテンツに再署名する、システム。
【請求項8】
少なくとも1つのエンドポイントコンピュータのエンクレーブは、前記エンドポイントコンピュータのエンクレーブ内で事前にプロビジョニングされたキーと、前記顧客のエンクレーブ内で事前にプロビジョニングされたキーとの組合せであるキーを使用して、コンテンツの少なくとも1つのパッケージに再署名する、請求項7に記載の方法。
【請求項9】
各々がエンクレーブを有する複数のサブ構成要素は、少なくとも1つのエンドポイントによって管理され、前記複数のサブ構成要素の中から特定のターゲットサブ構成要素(複数可)を対象とするコンテンツの少なくとも1つのパッケージ(複数可)は、各ターゲットサブ構成要素ごとに異なるキーを使用して再署名される、請求項7に記載の方法。
【請求項10】
少なくとも1つのエンドポイントコンピュータ上の少なくとも1つのエンクレーブは、受信されたコンテンツが前記所与の特別なユーザワークステーションによって署名されたことを認証した後、前記コンテンツをローカルに使用する、請求項1に記載の方法。
【請求項11】
受信されたコンテンツが前記少なくとも1つのコンテンツ提供サーバによって署名されたことを認証した後、前記個々のエンクレーブは、前記コンテンツに再び署名し(前記コンテンツに再署名する、とも言う)、それによって再署名されたコンテンツを生成する、請求項1に記載の方法。
【請求項12】
前記個々のエンクレーブは、受信された前記コンテンツに再署名し、それによって、ローカルに生成されたワンタイムキーを用いて、前記再署名されたコンテンツを生成する、請求項11に記載の方法。
【請求項13】
前記再署名されたコンテンツ及び任意選択で関連するワンタイム検証証明書は、前記サブ構成要素のうちの少なくとも1つに位置が知られているローカルテーブルに記憶され、その後、前記複数のエンドポイントコンピュータのうちの少なくとも1つがブートする少なくとも1つの機会に、前記再署名されたコンテンツ及び関連するワンタイム検証証明書が、前記サブ構成要素のうちの少なくとも1つによって前記ローカルテーブルから取り出される、請求項12に記載の方法。
【請求項14】
前記再署名されたコンテンツ、及び任意選択で関連するワンタイム検証証明書は、前記サブ構成要素のうちの少なくとも1つに直接送信される、請求項12に記載の方法。
【請求項15】
コンピュータ可読プログラムコードが具現化された非一時的有形コンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記コンピュータ可読プログラムコードは、方法を実施するために実行されるように適合され、この方法は、以下の3つの動作:
動作a.少なくとも1つのプロバイダ、別名コンテンツ提供サーバから、エンクレーブを各々含む複数の顧客の特別のユーザワークステーションに署名されたコンテンツを送信するように構成されたハードウェアプロセッサを提供することであって、各特別なユーザワークステーション、したがって各エンクレーブは、それ自体のエンドポイントコンピュータのサブ集団にネットワーク化されるように構成され、各前記サブ集団は、前記エンドポイントコンピュータの集団のサブセットである、こと、
動作b.前記エンクレーブのうちの各個々のエンクレーブにおいて、受信されたコンテンツが前記少なくとも1つのコンテンツ提供サーバによって署名されたことを認証し、そうした後、受信された前記コンテンツの複数の同一でないコピーを生成して、前記エンドポイントコンピュータの個々のエンクレーブのサブ集団にそれぞれ属する複数のエンドポイントコンピュータ上で実行されるか、そうでなければそれらによって使用され、前記複数の同一でないコピーに署名し、それによって複数の同一でない署名されたコピーを生成し、前記複数の同一でない署名されたコピーを、前記エンドポイントコンピュータの個々のエンクレーブのサブ集団内の少なくともいくつかのエンドポイントコンピュータに送信するように構成されたハードウェアプロセッサを提供すること、
動作c.所与の特別なユーザワークステーションのサブ集団にそれぞれ属する少なくとも1つのエンドポイントコンピュータ内の少なくとも1つのエンクレーブにおいて、受信されたコンテンツが前記所与の特別なユーザワークステーションによって署名されたことを認証し、そうした後、前記所与の特別なユーザワークステーションによって署名された受信された前記コンテンツを前記少なくとも1つのエンドポイントコンピュータ上又は内で実行又は使用するように構成されたハードウェアプロセッサを提供すること、のうちの少なくとも2つを含み、
前記顧客/信頼できるエンティティ/特別なユーザワークステーションと、
それらのエンドポイントと、
もしあれば、それらのエンドポイントのサブ構成要素と、を含む前記エンティティのグループの中からの少なくとも1つの個々のエンティティは、
前記エンティティのグループの中からの複数のエンティティにおいて事前にプロビジョニングされたキーの組合せであるキーを使用して、前記個々のエンティティによって検証された署名されたコンテンツに再署名する、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータセキュリティに関し、より詳細には、コンピュータネットワークのセキュリティに関する。
【背景技術】
【0002】
関連する共有技術は、国際公開第2019/186546号として公開されたPCT/IL2019/050343、国際公開第2019/186554号として公開されたPCT/IL2019/050351、国際公開第2019/186536号として公開されたPCT/IL2019/050332、及び国際公開第2019/105032号として公開されたPCT/IL 2020/051238に記載されている。
【0003】
本発明の特定の実施形態の背景を構成する従来技術は、とりわけ以下の刊行物に記載されている:
エンクレーブは当該技術分野において周知である。エンクレーブは、例えば、エンドポイントコンピュータの隣のミニコンピュータに存在してもよい。複数の安全なエンクレーブをサポートする技術は、この共有特許文献https://patents.google.com/patent/US20120159184A1/en)に記載されている。
【0004】
エンクレーブハードウェアの例としては、以下が挙げられるが、これらに限定されない:
Intel(SGX)は、例えば、本明細書で説明されるようなインフラストラクチャを有し得る:
https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions.html.
AMD(EpEPYCyc SEV)、例えばhttps://developer.amd.com/sev/
ARM(プラットフォームセキュリティアーキテクチャ);
IBMに記載されている。
【0005】
エンクレーブソフトウェアを作成するためのフレームワークは、以下を含んでもよいが、これらに限定されない:
Intel SGX SDK
Anqlave Data vault
Fortanix自己防衛キー管理サービス(SDKMS)、
Open Enclave Software Development Kit(SDK)
Confidential Consortium Framework(CCF)。
【0006】
セキュリティを強化するためのエンクレーブの様々な使用が知られている。例えば、このソース:https://dataspace.princeton.edu/bitstream/88435/dsp0112579w18r/1/Melara_princeton_0181D_13161.pdf、Intel SGXは、開発者が特定のエンクレーブ内で機密コードを実行することを可能にする。開発者は、そのようなエンクレーブ内に信頼できないサードパーティライブラリを含めることができ、それらのライブラリに全てのエンクレーブ内データへの自由なアクセスを与える。したがって、Griffin(Intel SGXクラウドアプリケーションのためのメモリアクセス制御システム)は、メモリ保護キー(MPK)を使用して、エンクレーブを分割し、コンパートメントごとのアクセスルールを割り当てる。開発者は、いくつかのデータオブジェクトを機密として宣言し、エンクレーブ機能のためのアクセス特権を定義することができ、Griffinは、そのようなデータオブジェクトをMPKコンパートメントに自動的に閉じ込める。
【0007】
本明細書において言及した全ての公表文献及び特許文献、並びにそれらにおいて直接的又は間接的に引用された公表文献及び特許文献の開示内容は、対象の放棄(disclaimer)又は放棄(disavowal)を除いて、参照により本明細書に組み込まれる。組み込まれた資料が本明細書における明示的な開示と矛盾する場合、本明細書における明示的な開示が特定の実施形態について説明するのに対して、組み込まれた資料は他の実施形態について説明すると解釈される。組み込まれた資料内の定義は、問題となる用語の1つの可能な定義とみなされ得る。
【0008】
特定の実施形態の概要
特定の実施形態は、更新パッケージなどであるがこれに限定されないデジタルコンテンツを複数の宛先、例えば、複数のエンドポイント(例えば、ワークステーション)に配布することができる安全な方法を提供しようとするものであり、そのうちのいくつかは、それ自体が複数のサブ構成要素を含むことができる。
【0009】
特定の実施形態は、ソフトウェアコードプロバイダがそれらの顧客に更新を送信することができる安全な方法を提供しようとする。各顧客は通常、コンピュータ化された、通常はネットワーク化された組織、例えば、複数のエンドポイント及び/又はエンドユーザを有する会社を含む。
【0010】
ある実施形態は、デジタルコンテンツのサプライチェーンとの干渉を防止するための方法を提供しようとする。
【0011】
コンテンツ、例えば、ソフトウェアコードは、コンテンツプロバイダ、別名、プロバイダ、それらの顧客、各顧客のエンドポイント、及び各エンドポイントのサブ構成要素の全て(又は任意のサブセット)によって署名及び/又は承認され得る。したがって、トランスポート層は、以下の全て又は任意のサブセットを含むことができる:
顧客に対する中央サーバ(複数可):典型的には、中央サーバ(例えば、エンドポイントプロデューサ、当然ながら複数であり得る)は、セキュリティソフトウェア及び/又はハードウェアを顧客(別名、エンドポイント所有者)に配布する(ハードウェアの配布に署名することを含み得る)(例えば、ネットワークを介した更新の周期的プッシュの一部として)。各顧客は、典型的には、エンクレーブを使用してもしなくてもよい中央の特別なユーザワークステーションを含み、より典型的には、安全なエリア内で作業している。中央の特別なユーザワークステーションは、通常、特別なユーザワークステーション(別名「特別なユーザ」)にネットワーク接続された複数のエンドポイントを担当し、各エンドポイントは、それ自体のエンクレーブを含む。エンドポイントは、各々が自身のエンクレーブを有する複数のサブ構成要素を含んでもよい。特別なユーザは、例えば、顧客の情報技術(IT)部門のエンドユーザ、又は管理者であってもよく、顧客の組織内の他のエンドユーザにs/wを送信する資格がある。
【0012】
顧客からエンドポイントへ:典型的には、顧客がエンドポイントが更新されるべきであると決定したとき、顧客は、エンドポイントに、顧客のフォートレス内の「更新ブロブリポジトリ」からパッケージをダウンロードするように伝える。
【0013】
サブ構成要素へのエンドポイント:典型的には、ターゲットサブ構成要素に依存する。安全な入力/出力は、内部(エンドポイントへの)ネットワークを介してコピーされ得る。UEFI(Unified Extensible Firmware Interface)又はBIOSの場合、パッケージは、エンドポイントの次のブート中にUEFIが制御を受信したときにUEFIがパッケージにアクセスすることができる共有持続ストレージ(ブートパーティション)上の所定の位置に配置されてもよい。
【0014】
任意の適切な方法又は技術又は通信チャネルを用いて、例えば、ネットワークを介して、又はDVD/CDなどの物理媒体を介して、コンテンツを製作者又はプロバイダから顧客に送信することができる。
【0015】
特定の実施形態は、複数の受信者、例えばエンドポイントが各々署名権限を有するデジタルコンテンツのサプライチェーンを提供しようとする。典型的には、例えば、本明細書で説明されるような複数のトランスポート層を有するデジタルコンテンツサプライチェーンが提供され、そこでは、メイン又は中央機関又はサーバは、全ての受信者の(例えば、全てのエンドポイントの)キーを知らない。通常、所与のトランスポート層における少なくとも1つのエンティティ又はサーバは、トランスポート層より下の層で使用される少なくともいくつかのキーにアクセスできない。例えば、各トランスポート層Lにおける各サーバ(例えば、顧客、エンドポイントなど)は、Lより下の層内のサーバのいずれかによって使用されるキーのいずれにもアクセスすることができない場合がある。
【0016】
特定の実施形態は、エンクレーブを含む構成要素がコンテンツ(例えば、更新)を受信し、(例えば、エンクレーブを使用して)そのコンテンツに再署名し、それによって、そのコンテンツを保証する信頼できる機関として機能する方法を提供しようとする。
【0017】
本明細書の実施形態によれば、例えば、本明細書で詳細に説明されるように、安全に実行されるエンクレーブの存在により、再署名又は再キーイングが有利に実行されることが可能になることが理解される。
【0018】
通常、本発明のシステムは、適切に署名されたコンテンツのみを使用するように構成された論理を含む。論理又はプラットフォームは、プラットフォームによって実行される任意のコードが適切に署名されていなければならないことを検証する組込み機構を含むエンクレーブを含んでもよい。例えば、https://download.01.org/intel-sgx/linux2.1.3/docs/Intel_SGX_Developer_Reference_Linux_2.1.3_Open_Source.pdfを、Intel SGX安全エンクレーブにおける実行のための署名コード、及び/又はエンクレーブ若しくは「通常の」環境におけるデータの例として参照し、従来の暗号方式が、秘密キー/公開キーのペアを使用してデータの署名を検証するために使用され得る。
【0019】
特定の実施形態は、エンクレーブ又は信頼できるエンティティがコンテンツ、例えば、更新を受信し、その更新(又はコンテンツ)の複数の同一でないコピーを生成して、複数のコンピュータ又はエンドポイント上でそれぞれ実行する(又は使用される)方法を提供しようとする。エンクレーブによって生成された同一でないコピー間の差異は、実際のコンテンツにあってもよく、例えば、典型的には1つ又はいくつかのコンピュータに固有であり、他のコンピュータには固有ではないロゴ及び/若しくはユーザ名、又は顧客が(例えば)追加し得る任意の他の個人化されたコンテンツなどの個人化メタデータを追加することによって、コンテンツを例えば「個人化する」(コンテンツの個人化を生成する)ことができる。代替的又は追加的に、エンクレーブによって生成されたコピー間の差異は、コンテンツが署名される署名内にあってもよい。
【0020】
これは、コンテンツ、例えば、更新を、各々100個のエンドポイントを有する50個の組織又は顧客に供給するとき、結果が、更新の5000個の同一のコピーではなく、更新の5000個の固有及び/又は同一でないコピーであり得る、サプライチェーンをもたらす。
【0021】
本発明の特定の実施形態は、典型的には、少なくとも1つのメモリと通信する少なくとも1つのプロセッサを備える回路を提供しようとし、かかるメモリに記憶された命令は、本明細書に詳述する機能を提供するためにプロセッサによって実行される。本明細書に記載の全ての機能は、必要に応じて、ファームウェア実装又はプロセッサ実装され得る。
【0022】
例えば、動作が少なくとも部分的にソフトウェアで実行される場合、実行される動作に対する本明細書における任意の言及又は記述は、動作全体がサーバAによって実行される実施形態と、動作又はその一部が、海外又は「クラウド上」に配備され得る遠隔プロセッサP(又はいくつかの遠隔プロセッサ)によって実行され、次いで、動作の出力が、例えば、適切なコンピュータネットワークを介してサーバAに通信され、使用される、任意のタイプの「アウトソーシング」又は「クラウド」の実施形態との両方を含むことが意図されることを理解されたい。同様に、遠隔プロセッサPは、それ自体で全ての操作を実行することはできず、代わりに、遠隔プロセッサP自体は、更に別のプロセッサP’(複数可)から操作の一部(複数可)の出力(複数可)を受信し、Pに対してオフショア又は「クラウド上」などに展開されてもよい。
【0023】
本発明は、典型的には、少なくとも以下の実施形態を含む。
【0024】
実施形態1.エンドポイントコンピュータの集団にコンテンツを安全に配布するための方法であって、方法は、以下の3つの動作(各々スタンドアロン又は独立して動作することもできる):
動作a.典型的には少なくとも1つのプロバイダ、別名コンテンツ提供サーバから、エンクレーブを各々含む複数の顧客特別なユーザワークステーションに署名されたコンテンツを送信するように構成され得るハードウェアプロセッサを提供することであって、各特別なユーザワークステーション、したがって各エンクレーブは、それ自体のエンドポイントコンピュータのサブ集団にネットワーク化されるように構成され得、各当該サブ集団は、エンドポイントコンピュータの集団のサブセットであり得る、こと、及び/又は
動作b.当該エンクレーブのうちの各個々のエンクレーブにおいて、受信されたコンテンツが少なくとも1つのコンテンツ提供サーバによって署名されたことを認証し、そうした後、受信された当該コンテンツの複数の同一でないコピーを生成して、エンドポイントコンピュータの個々のエンクレーブのサブ集団にそれぞれ属する複数のエンドポイントコンピュータ上で実行されるか、そうでなければそれらによって使用され、当該複数の同一でないコピーに署名し、それによって複数の同一でない署名されたコピーを生成し、当該複数の同一でない署名されたコピーを、エンドポイントコンピュータの個々のエンクレーブのサブ集団内の少なくともいくつかのエンドポイントコンピュータに送信するように構成され得るハードウェアプロセッサを提供すること、及び/又は
動作c.所与の特別なユーザワークステーションのサブ集団にそれぞれ属する少なくとも1つのエンドポイントコンピュータ内の少なくとも1つのエンクレーブにおいて、受信されたコンテンツが所与の特別なユーザワークステーションによって署名されたことを認証し、そうした後、所与の特別なユーザワークステーションによって署名された受信されたコンテンツを当該少なくとも1つのエンドポイントコンピュータ上又は内で実行又は使用するように構成されたハードウェアプロセッサを提供すること、のうちの少なくとも2つを含み、
顧客/信頼できるエンティティ/特別なユーザワークステーションと、それらのエンドポイントと、もしあれば、それらのエンドポイントのサブ構成要素と、を含むエンティティのグループの中からの少なくとも1つの個々のエンティティは、典型的には、例えば、当該エンティティのグループの中からの複数のエンティティにおいて事前にプロビジョニングされたキーの組合せであり得るキーを使用して、当該個々のエンティティによって検証された署名済みコンテンツに再署名する、方法。
【0025】
エンドポイントは、例えば、プロバイダが、プロバイダとエンドポイントとの間に介在する別個の顧客エンティティなしにエンドポイントに対して直接作業する場合、エンドポイント自体が顧客として働くことができることを理解されたい。
【0026】
あるいは、顧客は、それ自体がエンドポイントとして働くことができ、受信されたコンテンツが所与の特別なユーザワークステーションによって署名されたことを認証するように構成されたハードウェアプロセッサを含むことができ、そうした後、所与の特別なユーザワークステーションによって署名された受信されたコンテンツを、それ自体が実行するか、あるいは使用する。
【0027】
特別なユーザは、例えば、顧客の情報技術(IT)部門のエンドユーザ、又は管理者であってもよく、顧客の組織内の他のエンドユーザにs/wを送信する資格があるが理解される。
【0028】
実施形態1の方法は、例えば、動作a及びbを含んでもよく(この場合、方法は、動作cを実行する別の外部システムと連動して動作してもよい)、又は動作a及びcを含んでもよく(この場合、方法は、動作bを実行する別の外部システムと連動して動作してもよい)、又は動作b及びcを含んでもよく(この場合、方法は、動作aを実行する別の外部システムと連動して動作してもよい)、又は動作a、b及びcを含んでもよい。
【0029】
実施形態2.コンテンツは、エンドポイントコンピュータの集団内の少なくともいくつかのエンドポイントコンピュータ上で動作するように構成されたソフトウェアの更新を含む、前述の実施形態に記載の方法。
【0030】
実施形態3.複数の同一でないコピーは、個人化メタデータを含む、前述の実施形態のいずれかに記載の方法。
【0031】
実施形態4.複数の同一でないコピーは、個人化メタデータを除いて同一である、前述の実施形態のいずれかに記載の方法。
【0032】
実施形態5.個人化メタデータは、少なくとも1つの個々のエンクレーブに固有の、又は少なくとも1つの個々のエンクレーブによって使用され、少なくとも1つの個々のエンクレーブ以外のエンクレーブに固有ではない、又は少なくとも1つの個々のエンクレーブ以外のエンクレーブによって使用されないロゴを含む、前述の実施形態のいずれかに記載の方法。
【0033】
実施形態6.個人化メタデータは、個々のエンクレーブのサブ集団に属する少なくとも1つの個々のエンドポイントコンピュータに固有の、又は個々のエンクレーブのサブ集団に属する少なくとも1つの個々のエンドポイントコンピュータによって使用され、少なくとも1つの個々のエンドポイントコンピュータ以外の個々のエンクレーブのサブ集団に属するエンドポイントコンピュータに固有ではない、又は少なくとも1つの個々のエンドポイントコンピュータ以外の個々のエンクレーブのサブ集団に属するエンドポイントコンピュータによって使用されないユーザ名を含む、前述の実施形態のいずれかに記載の方法。
【0034】
実施形態7.本明細書に示され説明される方法のいずれかの動作を実行するように構成された少なくとも1つのハードウェアプロセッサを備えるシステム。
【0035】
実施形態8.少なくとも1つのエンドポイントコンピュータのエンクレーブは、エンドポイントコンピュータのエンクレーブ内で事前にプロビジョニングされたキーと、顧客のエンクレーブ内で事前にプロビジョニングされたキーとの組合せであるキーを使用して、コンテンツの少なくとも1つのパッケージに再署名する、前述の実施形態のいずれかに記載の方法。
【0036】
実施形態9.各々がエンクレーブを有する複数のサブ構成要素は、少なくとも1つのエンドポイントによって管理され、複数のサブ構成要素の中から特定のターゲットサブ構成要素(複数可)を対象とするコンテンツの少なくとも1つのパッケージ(複数可)は、各ターゲットサブ構成要素ごとに異なるキーを使用して再署名される、前述の実施形態のいずれかに記載の方法。
【0037】
実施形態10.少なくとも1つのエンドポイントコンピュータ上の少なくとも1つのエンクレーブは、受信されたコンテンツが所与の特別なユーザワークステーションによって署名されたことを認証した後、コンテンツをローカルに使用する、前述の実施形態のいずれかに記載の方法。
【0038】
実施形態11.受信されたコンテンツが少なくとも1つのコンテンツ提供サーバによって署名されたことを認証した後、個々のエンクレーブは、コンテンツに再び署名し(コンテンツに再署名する、とも言う)、それによって再署名されたコンテンツを生成する、前述の実施形態のいずれかに記載の方法。
【0039】
実施形態12.個々のエンクレーブは、受信されたコンテンツに再署名し、それによって、ローカルに生成されたワンタイムキーを用いて、再署名されたコンテンツを生成する、前述の実施形態のいずれかに記載の方法。
【0040】
実施形態13.再署名されたコンテンツ及び任意選択で関連するワンタイム検証証明書は、サブ構成要素のうちの少なくとも1つに位置が知られているローカルテーブルに記憶され、その後、複数のエンドポイントコンピュータのうちの少なくとも1つがブートする少なくとも1つの機会に、再署名されたコンテンツ及び関連するワンタイム検証証明書が、サブ構成要素のうちの少なくとも1つによってローカルテーブルから取り出される、前述の実施形態のいずれかに記載の方法。
【0041】
実施形態14.再署名されたコンテンツ、及び任意選択で関連するワンタイム検証証明書は、サブ構成要素のうちの少なくとも1つに直接送信される、前述の実施形態のいずれかに記載の方法。
【0042】
実施形態15.コンピュータ可読プログラムコードが具現化された非一時的有形コンピュータ可読媒体を備えるコンピュータプログラム製品であって、当該コンピュータ可読プログラムコードは、本明細書に示され説明されるいずれかの動作を実行するように適合される。
【0043】
また、信号を除いて、コンピュータプログラムであって、当該プログラムが少なくとも1つのコンピュータ上で実行されるときに本明細書に示し、記載する方法のいずれかを実行するためのコンピュータプログラムコード手段を含むコンピュータプログラム、及びコンピュータ可読プログラムコードが具現化された、典型的には、非一時的コンピュータ使用可能媒体又はコンピュータ可読媒体、例えば、典型的には有形の、非一時的コンピュータ使用可能記憶媒体又はコンピュータ可読記憶媒体を含むコンピュータプログラム製品が提供され、当該コンピュータ可読プログラムコードは、本明細書に示し、記載する方法のいずれか又は全てを実施するために実行されるように適合される。本明細書における教示による動作は、所望の目的のために特別に構築された、少なくとも1つのコンピュータによって、又は典型的には、非一時的コンピュータ可読記憶媒体に記憶された、少なくとも1つのコンピュータプログラムによって所望の目的のために特別に構成された汎用コンピュータによって実行され得る。本明細書において「非一時的」という用語は、一時的な伝播信号又は波長を除外するために使用するが、それ以外の場合、用途に適した揮発性又は不揮発性のコンピュータメモリ技術を含む。
【0044】
任意の適切なプロセッサ、ディスプレイ、及び入力手段を使用して、本明細書に示し、記載する方法及び装置のいずれかによって使用されるか、又は生成される情報など情報を処理し、例えばコンピュータ画面又は他のコンピュータ出力デバイス上に表示し、記憶し、受け入れることができ、上記のプロセッサ、ディスプレイ、及び入力手段は、本発明の実施形態の全て又は任意のサブセットによる、コンピュータプログラムを含む。フローチャート内の動作などであるが、それらに限定されない、本明細書に示し、記載する本発明の任意の又は全ての機能は、処理のために使用される、汎用であるか、又は特別に構築されたのいずれかである、少なくとも1つの従来のパーソナルコンピュータプロセッサ、ワークステーション又は他のプログラム可能デバイス又はコンピュータ又は電子コンピューティングデバイス又はプロセッサ;表示用のコンピュータディスプレイ画面、及び/又はプリンタ、及び/又はスピーカ;フラッシュドライブ、光ディスク、CDROM、DVD、BluRay、磁気光ディスク又は他のディスクなど機械可読メモリ;記憶用のRAM、ROM、EPROM、EEPROM、磁気又は光学又は他のカード、及び受け入れ用のキーボード又はマウス、のうちのいずれか1つ以上によって行われ得る。本明細書に図示し、記載するモジュールは、サーバ、データプロセッサ、メモリ/コンピュータ記憶装置、通信インターフェース(無線(例えば、BLE)又は有線(例えば、USB))、メモリ/コンピュータ記憶装置に記憶されたコンピュータプログラムのうちのいずれか1つ又は組合せ又はその複数を含み得る。
【0045】
上記で使用する「プロセス」という用語は、例えば、少なくとも1つのコンピュータ又はプロセッサのレジスタ及び/又はメモリ内で発生し得るか、又は常駐し得る、物理的現象、例えば、電子的現象として表されるデータの任意のタイプの計算又は操作又は変換を含むことが意図される。単数形の名詞の使用は、限定することを意図するものではない。したがって、プロセッサという用語は、分散され得るか、又は遠隔であり得る複数の処理ユニットを含むことが意図され、サーバという用語は、複数のそれぞれのサーバ上で動作する複数の、典型的に相互接続されたモジュールを含むことが意図される、などである。
【0046】
上記のデバイスは、任意の従来の有線又は無線デジタル通信手段を介して、例えば、有線若しくはセルラー電話ネットワーク又はインターネットなどコンピュータネットワークを介して通信し得る。
【0047】
本発明の装置は、本発明の特定の実施形態に従って、機械によって実行されると、本明細書に示し、記載する本発明の装置、方法、特徴、及び機能の全て又は任意のサブセットを実施する命令のプログラムを含むか、又は別様に記憶する機械可読メモリを含み得る。代替的又は追加的に、本発明の装置は、本発明の特定の実施形態によると、任意の従来のプログラミング言語で記述され得る上記のようなプログラムと、任意選択的に、本発明の教示に従って任意選択的に構成され得るか、又は起動され得る汎用コンピュータなどが挙げられるが、これに限定されないプログラムを実行するための機械と、を含み得る。本明細書に組み込まれる教示のいずれも、適切であれば、物理的物体又は物質を表す信号に作用し得る。
【0048】
上述の実施形態及び他の実施形態については、次の項で詳述する。
【0049】
テキスト又は図面に現れる商標は、その所有者の所有物であり、本発明の実施形態が実施され得る方法の一例を単に説明するか、又は図示するために本明細書に現れる。
【0050】
特に明記しない限り、「処理」、「計算」、「推定」、「選択」、「順位付け」、「等級付け」、「計算」、「決定」、「生成」、「再評価」、「分類」、「製造」、「ステレオマッチング」、「登録」、「検出」、「関連付け」、「重畳」、「取得」、「提供」、「アクセス」、「設定」などの用語は、例えば、計算システムのレジスタ及び/若しくはメモリ内の電子量など物理量として表され得るデータ、並びに/又は計算システムのメモリ、レジスタ若しくは他のかかる情報記憶装置、伝送若しくは表示デバイス内の物理量として同様に表され得る他のデータにオンザフライで提供され得るデータ、又は例えば、適切なデータネットワークなどを介して外部要因に提供され得るデータを操作する、並びに/又は変換する、少なくとも1つのコンピュータ若しくは計算システム、又はプロセッサ若しくは同様の電子計算デバイス若しくは回路のアクション及び/又はプロセスを指す。「コンピュータ」という用語は、非限定的な例として、パーソナルコンピュータ、サーバ、埋め込みコア、計算システム、通信デバイス、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)及び他の電子コンピューティングデバイスが挙げられる、データ処理能力を有する任意の種類の電子デバイスを包含するように広く解釈されるべきである。コンピュータ、コントローラ、又はプロセッサへのいかなる言及も、1つ以上のハードウェアデバイス、例えばチップを含むことが意図されており、それらは同じ場所に位置しても、互いに離れていてもよい。任意のコントローラ又はプロセッサは、例えば、本明細書に記載の論理及び機能に従って適切に構成された、少なくとも1つのCPU、DSP、FPGA、又はASICを備え得る。
【0051】
本明細書に記載の任意の特徴又は論理又は機能は、プロセッサ又はコントローラが、簡略化のために具体的に図示されていない場合であっても、記載の特徴又は論理又は機能のように構成されたプロセッサ又はコントローラによって実施され得る。コントローラ又はプロセッサは、例えば、1つ以上の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)を使用して、ハードウェアで実装され得るか、又は適切なソフトウェアを実行するマイクロプロセッサ、又はハードウェア要素及びソフトウェア要素の組合せを備え得る。
【0052】
本発明は、単に明確にするために、特定のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、個々の製品、プロトコルなどに固有の用語の観点から、又はそれらを参照して説明することがある。この用語又はかかる参照は、例として、動作の一般的原理を明確かつ簡潔に伝えることを意図しており、本発明の範囲を特定のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、又は個々の製品若しくはプロトコルのみに限定することを意図していないことが理解されよう。それにもかかわらず、問題のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、又は個々の製品若しくはプロトコルを定義する標準又は他の専門文献の開示は、参照によりその全体が本明細書に組み込まれる。
【0053】
本明細書において別々に列挙した要素は、別個の構成要素である必要はなく、その代わりに同一構造であってもよく、又はより少ない構成要素に組み合わされてもよい。要素又は特徴が存在し得るという記述は、(a)要素又は特徴が存在する実施形態、(b)要素又は特徴が存在しない実施形態、及び(c)要素又は特徴が選択可能に存在する、例えば、要素又は特徴の存否をユーザが設定し得る、又は選択し得る実施形態を含むことを意図する。
【0054】
センサなどが挙げられるが、これに限定されない任意の適切な入力デバイスを使用して、本明細書に示し、記載する装置及び方法によって受信される情報を生成し得るか、又は別様に提供し得る。任意の適切な出力デバイス又はディスプレイを使用して、本明細書に示し、記載する装置及び方法によって生成された情報を表示し得るか、又は出力し得る。任意の適切なプロセッサを用いて、本明細書に記載のように情報を計算若しくは生成若しくはルーティングし得るか、又は操作若しくは処理し得る、及び/又は本明細書に記載の機能性を実行し得る、及び/又は本明細書に図示するか、若しくは記載する任意のエンジン、インターフェース、若しくは他のシステムを実装し得る。任意の適切なコンピュータ化されたデータ記憶装置、例えばコンピュータメモリを使用して、本明細書に示し、記載するシステムによって受信又は生成される情報を記憶し得る。本明細書に示し、記載する機能は、サーバコンピュータと複数のクライアントコンピュータとの間で分割され得る。本明細書に示し、記載するこれらの、又は任意の他のコンピュータ化された構成要素は、適切なコンピュータネットワークを介してそれらの間で通信し得る。
【0055】
本明細書に示し、記載するシステムは、例えば、本明細書に記載するようなユーザインターフェースを含み得、かかるユーザインターフェースは、例えば、対話型音声応答インターフェース、自動応答ツール、音声-テキスト転写システム、対話型視覚構成要素を有する自動デジタルインターフェース又は電子インターフェース、ウェブポータル、通信ネットワークを介してサーバからウェブブラウザ又はユーザのデバイスにダウンロードされる他のアプリケーションにウェブページ又は画面としてロードされる視覚インターフェース、フロントエンドインターフェース部分及びそれと相互作用するバックエンド論理を含む自動音声-テキスト変換ツールの全て又は任意のサブセットを含み得る。したがって、本明細書で使用するユーザインターフェース又は「UI」という用語はまた、例えば、システムディスプレイによってユーザに提示されるデータを制御し、例えばユーザのワークステーション/デバイスを使用してユーザによって入力されたデータを受信し、処理し、及び/又は本明細書に記載の他のモジュールに提供する、基礎をなす論理を含む。
【図面の簡単な説明】
【0056】
例示的な実施形態が様々な図面に示されている。具体的には、
【
図1】データのパッケージを安全に配布するための本発明の一実施形態によるシステムの簡略ブロック図であり、各顧客及び/若しくは各顧客及び/若しくは各エンドポイントの詳細は、図示されるようなものであってもよく、及び/又は本明細書に示される又は図示される任意の実施形態に従って動作する安全なネットワークを含んでもよい。
【
図2a】共に、データのパッケージを安全に配布するための方法の簡略化されたフローチャート図を形成し、ここでの動作の全て又は任意のサブセットは、例えば、
図1のブロックの全て又は任意のサブセットのための動作方法として機能してもよい。パッケージジェネレータ、トランスポートパッケージディストリビュータ、トランスポートパッケージレシーバ又は顧客、認証局、再署名者という用語は、本明細書で示され説明されるように、これらの用語の各々のそれぞれの機能を実行するようにハードウェアプロセッサを構成するハードウェアプロセッサ上のソフトウェアを指すことが理解される。
【
図2b】共に、データのパッケージを安全に配布するための方法の簡略化されたフローチャート図を形成し、ここでの動作の全て又は任意のサブセットは、例えば、
図1のブロックの全て又は任意のサブセットのための動作方法として機能してもよい。パッケージジェネレータ、トランスポートパッケージディストリビュータ、トランスポートパッケージレシーバ又は顧客、認証局、再署名者という用語は、本明細書で示され説明されるように、これらの用語の各々のそれぞれの機能を実行するようにハードウェアプロセッサを構成するハードウェアプロセッサ上のソフトウェアを指すことが理解される。
【0057】
各方法は典型的には、例えば示すように適切に順序付けられた、図示する動作の全て又は任意のサブセットを含む。
【0058】
本発明の特定の実施形態を以下の図面に例示する。ブロック図において、モジュール間の矢印は、APIとして実装され得、例えば、適切なAPI/インターフェースを介して、適切なシーケンス又は順序で、本明細書に図示する機能構成要素又はモジュールを相互接続するために、任意の適切な技術が使用され得る。例えば、データ及び/又は関数呼び出しのシリアル化のためのApache Thrift又は同等物、並びに遠隔呼び出しサポートを提供する、構造及びAPIを定義するためのAvro又は同等物などであるが、それらに限定されない、最先端のツールが採用されてもよい。又は、HTTP又はMQTTなどであるが、それらに限定されない、標準通信プロトコルが用いられ得、JSON又はXMLなどであるが、それらに限定されない、標準データフォーマットと組み合わされ得る。
【0059】
本発明の範囲に含まれる方法及びシステムは、例として具体的に示された実装形態に示す機能ブロックの任意のサブセット又は全てを、例えば示すような任意の適切な順序で含み得る。フローは、例えば示すように適切に順序付けられた、図示する動作の全て又は任意のサブセットを含み得る。本明細書の表は、説明されるフィールド及び/又はレコード及び/又はセル及び/又は行及び/又は列の全て又は任意のサブセットを含み得る。
【0060】
本明細書に記載し、図示する計算、機能、又は論理的構成要素は、様々な形態で、例えば、限定はしないがカスタムVLSI回路若しくはゲートアレイなどハードウェア回路、又は限定はしないがFPGAなどプログラマブルハードウェアデバイスとして、又は少なくとも1つの有形若しくは無形コンピュータ可読媒体上に記憶され、少なくとも1つのプロセッサによって実行可能なソフトウェアプログラムコードとして、又はそれらの任意の適切な組合せで実装することができる。特定の機能構成要素は、ソフトウェアコードの1つの特定のシーケンスによって、又は複数のかかるシーケンスによって形成され得、それらは、問題の機能構成要素を参照して本明細書に記載するように集合的に作用するか、挙動するか、又は作用する。例えば、構成要素は、オブジェクト、プロシージャ、関数、ルーチン、及びプログラムなどであるがこれらに限定されない、いくつかのコードシーケンスに分散してよく、典型的には相乗的に動作するいくつかのコンピュータファイルから生じ得る。
【0061】
本明細書に記載の各機能又は方法は、ソフトウェア(例えば、マイクロプロセッサ又はデジタル信号プロセッサなど適切な処理ハードウェア上で実行するためのもの)、ファームウェア、ハードウェア(集積回路技術など任意の従来のハードウェア技術を使用する)、又はそれらの任意の組合せで実装され得る。
【0062】
ソフトウェア実装されるものとして規定された機能又は動作は、代替的に、同等のハードウェア又はファームウェアモジュールによって全体的又は完全に実装され得、逆もまた同様である。本明細書に記載のファームウェア実装機能は、提供される場合、任意の適切なメモリデバイス内に保持され得、適切な処理ユニット(別名、プロセッサ)が、ファームウェアコードを実行するように構成され得る。代替的に、本明細書に記載の特定の実施形態は、部分的に又は排他的にハードウェアで実装され得、その場合、本明細書に記載の変数、パラメータ、及び計算の全て又は任意のサブセットがハードウェア内に存在し得る。
【0063】
本明細書に記載の任意のモジュール又は機能は、適切に構成されたハードウェア構成要素又は回路を備え得る。代替的又は追加的に、本明細書に記載のモジュール又は機能は、汎用コンピュータによって、又はより一般的には本明細書で示し、記載する方法若しくはかかる方法に含まれる動作の任意の適切な順序での任意の適切なサブセットに従って、又は当該技術分野で既知の方法に従って構成された、適切なマイクロプロセッサによって実行され得る。
【0064】
本明細書に記載の任意の論理機能は、必要な場合に必要に応じて、リアルタイムアプリケーションとして実装され得、FPGA、ASIC、若しくはDSP、又はそれらの任意の適切な組合せなどであるが、それらに限定されない、任意の適切なアーキテクチャオプションを用い得る。
【0065】
本明細書で言及する任意のハードウェア構成要素は、実際には、1つ以上のハードウェアデバイス、例えば、チップを含み得、それらは、同じ場所に位置しても、互いに離れていてもよい。
【0066】
本明細書に記載の任意の方法は、本発明の実施形態の範囲内に、例えば、媒体に記憶されたモバイルアプリケーション、プラットフォーム、又はオペレーティングシステムを含む方法の動作の全て又は任意のサブセットを実行する、任意のソフトウェア又はコンピュータプログラム、並びにコンピュータプログラムをハードウェアデバイスと組み合わせて方法の動作の全て又は任意のサブセットを実行する、任意のソフトウェア又はコンピュータプログラムも含むことが意図される。
【0067】
データは、1つ以上の異なる場所、異なるネットワークノード、又は単一のノード若しくは場所の異なる記憶デバイスに記憶される、1つ以上の有形又は無形コンピュータ可読媒体上に記憶されることができる。
【0068】
任意のタイプの記憶装置又はメモリ、任意のタイプのコンピュータ構成要素、及びある時間間隔の計算に使用されるデジタルデータを保持する記録媒体を含む任意のコンピュータデータ記憶技術、並びに任意のタイプの情報保持技術を使用して、本明細書で提供し、用いる様々なデータを記憶し得ることを理解されたい。適切なコンピュータデータ記憶装置又は情報保持装置は、一次、二次、三次又はオフラインであり、任意のタイプ又はレベル又は量又はカテゴリの揮発性、差別化、可変性、アクセス性、アドレス指定可能性、容量、性能、及びエネルギー使用であり、半導体、磁気、光学、紙など任意の適切な技術に基づいた装置を含み得る。
【特定の実施形態の詳細な説明】
【0069】
キー管理を分配し、再パッケージ化又は再署名機能を有するシステムについて、
図1を参照して詳細に説明する。
【0070】
特定の実施形態によれば、コンテンツは階層的に提供され、少なくとも1つのレベル、例えば、複数のレベル又は階層の各レベルにおいて、コンテンツは、典型的には、上位レベル、例えば、プロバイダから安全に受信されたものとして認証された後、典型的には、例えば、上位レベルからコンテンツを受信したエンティティに対して一意にカスタマイズされた後、そのエンティティによって再署名及び再暗号化され、次いで、典型的には、下位レベルの1つ以上のエンティティにレベルを下って渡され、コンテンツを受信したエンティティは安全に通信する(例えば、コンテンツを受信したエンティティ及び下位レベルのエンティティは互いのキーを記憶するので)。
【0071】
カスタマイゼーションは非実体的であってもよく、例えば、コンテンツがコード更新である場合、コード更新に関連付けられたロゴはカスタマイズされてもよく、その結果、コンテンツが階層を移動するとき、コード更新は同じままであるが、それに関連付けられたロゴはコード更新の各受信者に固有であることが理解される。
【0072】
示されるように、システムは、例えば本明細書で説明されるように、それらの真正性を証明するために署名されるパッケージ又は更新を典型的に生成する第1の安全なネットワークを備える少なくとも1つのプロバイダ、及び/又は第2の安全なネットワークを備える少なくとも1つの顧客、及び/又は同様に安全なネットワークを備え得る少なくとも1つのエンドポイントを含む。しかしながら、第1及び第2の安全なネットワークは、ある実施形態では、例えば、コンテンツ(例えば、ソフトウェア更新)プロバイダもまた、それ自体の顧客にサービスとしてセキュリティを提供する場合、プロバイダ及び顧客が一致するなど、全く同一であってもよい。
【0073】
典型的には、プロバイダによって生成され、認証されたコンテンツ(例えば、パッケージ、更新など)は、最終的には、プロバイダが典型的には知らないエンドポイントに、例えば、階層的配布を使用し、階層の各レベルでコンテンツの認証及び再署名を繰り返すことによって、安全にインストールされ、これらの全ては、本明細書で示され、提供されるものであってもよい。
【0074】
各々が少なくとも1つの適切に構成されたハードウェアプロセッサを含むことができるシステムの機能ブロックが示されており、一般に自明であり、図示されたブロックの全て又は任意のサブセットが、任意の所与の実施形態において実際に提供され得ることに留意されたい。例えば、本明細書で説明されるような図示された機能は、エンドポイントが、それらがインストールしているコンテンツ又は更新を正確に知る又は認証することを可能にする。それにもかかわらず、システムは、これを達成するために、プロバイダが(おそらく非常に多数の)エンドポイントの各々のキーを保持することを必要としない。代わりに、キーは、図示されるように、及び/又は以下で説明されるように、再署名フローによって階層的に配布されることができる。階層のおかげで、典型的には、各プロバイダは、その顧客を知っており(例えば、それとの安全な通信のためのキーを記憶する)、各顧客は、そのエンドポイントを知っている(例えば、それとの安全な通信のためのキーを記憶する)が、プロバイダは、それ自体の顧客の(例えば、エンドポイントの)顧客のキーを記憶しない。3つのレベルの階層が例として示されているが、nが3である必要がないn個のレベルがより一般的に提供され得ることが理解される。典型的には、隣接レベルのネットワークは互いのキーを記憶するが、典型的には、非隣接レベルのネットワークは互いのキーを記憶しない。したがって、プロバイダは、例えば、本明細書で説明されるように進行し得る各レベルにおけるコンテンツの認証及び再署名に起因して、それらのエンドポイントのキーを記憶することなく、そのコンテンツを複数のエンドポイントに安全に展開することができる。
【0075】
特定の実施形態によれば、少なくとも1つの中央サーバは、コンテンツ、例えば、中央サーバの顧客(エンクレーブも有する)によって管理されるエンドポイント(エンクレーブを有する)への更新を配布しようとする。エンドポイントは、パッケージが中央サーバ(複数可)又は複数の中央サーバから来たことを確立することができ、及び/又はエンドポイントは、パッケージが顧客(の代わりに働く信頼されたユーザ又は特別なユーザ)から来たことを確立することができる。典型的には、中央サーバはコンテンツ(例えば、更新パッケージ)に署名し、署名されたコンテンツを顧客管理エンドポイントに送信する。エンドポイント上のエンクレーブ、例えばメインボード/ベースは、署名を検証する。次いで、このエンドポイントエンクレーブは、例えば、本明細書に記載されるように、組合せ、例えば様々なキーのハッシュであってもよいキー(別名、再署名キー)を使用してパッケージに再署名する。例えば、再署名キーは、エンドポイントエンクレーブ内に格納/包含/事前にプロビジョニングされたキーと、顧客のエンクレーブ内に事前にプロビジョニングされたキーとの組合せであってもよい。エンドポイントによって管理される複数のサブ構成要素(それぞれエンクレーブを有することができる)があり、コンテンツが複数のサブ構成要素の中からの特定のターゲットサブ構成要素を対象とする場合、パッケージは、ターゲットサブ構成要素ごとに異なるキーで再署名され得る。
【0076】
これらのキーは、例えば、エンドポイントエンクレーブ内に格納/包含/事前にプロビジョニングされたキー、及び/又は顧客のエンクレーブ内に事前にプロビジョニングされたキー、及び/又はサブ構成要素エンクレーブ内に事前にプロビジョニングされたキーのハッシュの組合せであってもよい。
【0077】
各サブ構成要素のためのキーは、典型的には、ENDPOINT_SIGNING_CERTIFICATEとしても知られる予め定義された(例えば、プロビジョニング時に)証明書に対して生成されたワンタイム署名キーである。このキーは、他の(例えば、共通の)キーと組み合わされてもよい。
【0078】
したがって、ワンタイムキーは、通常、署名を検証するためにレシーバ(サブ構成要素)によって使用されるワンタイム証明書に関連付けられた秘密キー/公開キーペアに属する秘密キーを含む。サブ構成要素が署名を検証すると、サブ構成要素は、更新パッケージ、キーのリスト、又は任意の他のデータを含むことができるデータを安全に使用することができる。署名/暗号化されたデータ及びワンタイム検証証明書の転送は、署名/暗号化されたデータ及びワンタイム検証証明書を、サブ構成要素(及び当然のことながらエンドポイント)がアクセス可能な例えばテーブルなどの所定の位置に残すことを含むことができ、その後、サブ構成要素は、既知の位置から署名/暗号化されたデータ及びワンタイム検証証明書を取り出すことができる。
【0079】
各再署名されたパッケージは、例えば、上述したように、サブ構成要素上のコンテンツの検証及びインストールのために、エンドポイントのサブ構成要素に(例えば、エンドポイント内の安全な入力構成要素に)送信され得る。サブ構成要素は、元のパッケージを検証する必要がなく、これは、例えば、キーを変更/無効にするためのキー管理コストに関連付けられ得ることが理解される。
【0080】
ある実施形態によれば、コンテンツ、例えば、ソフトウェアコードは、コンテンツプロバイダ、それらの顧客、各顧客のエンドポイント、及び各エンドポイントのサブ構成要素の全て(又は任意のサブセット)によって署名及び/又は承認される。
【0081】
システム内に存在するサブ構成要素は、例えば、以下の全て又は任意のサブセットを含むことができる。
a.安全な入力、例えば、キーストロークを読み取り、キーストロークを暗号化し、暗号化されたキーストロークをフォートレスに送信することを担当する、エンドポイント内部の追加のコンピュータ又は別個のハードウェアプロセッサ。データは更新パッケージであってもよい。
b.安全な出力、例えば、フォートレスから表示暗号化出力を受信し、それを復号化し、それをディスプレイ上に提示することを担当するエンドポイントの内部にある追加のコンピュータ又は別個のハードウェアプロセッサ。また、この場合、データは更新パッケージであってもよい。
c.とりわけ、ブートキーの管理を担当するUEFI又はBIOS。ここで、データは、新しいブートキー又は更新パッケージであってもよい。
【0082】
特定の実施形態によれば、コンテンツが1つの(送信)エンティティから別のエンティティ(受信エンティティ)に、例えば、コンテンツプロバイダから顧客に、又は顧客からエンドポイントに渡されるか又は送信されるたびに、受信エンティティは、コンテンツが主張された送信者から来たことを検証し(例えば、公開キー暗号方式を使用して秘密キーでデータに署名し、次いで、対になった公開キーを使用して署名を検証する)、典型的には受信エンティティの秘密キーを使用してコンテンツに署名して、コンテンツが実際に主張された送信者から来たことを認証する。このプロセスは、コンテンツがそのサプライチェーンを通って進み、1つのエンティティから別のエンティティに繰り返し通過又は送信されるときに繰り返すことができることが理解される。例えば、コンテンツは、その後、顧客提供キー(例えば、顧客の秘密キー)とエンドポイント提供キー(例えば、エンドポイントの秘密キー)との組合せによって再署名されてもよい。
【0083】
組合せは、複数のサブキーから構成されるキー、又は各々が別個の又は異なるキーを採用する複数の暗号化演算を含んでもよい。
【0084】
システムは、各々が適切に構成されたハードウェアプロセッサによって実装され得る以下のブロック又はエンティティの全て又は任意のサブセットを含み得ることが理解される。
【0085】
パッケージジェネレータ:典型的には、データを有するパッケージ(例えば、Debian、RPM、又はGzipped tar ball)を生成し、典型的にはプロバイダのフォートレスに配置される。
【0086】
プロバイダ認証局:典型的には、暗号化/検証秘密/公開キーペア及び証明書(例えば楕円曲線ベース)を生成し、典型的にはプロバイダ安全なネットワーク内に位置する。
【0087】
プロバイダトランスポートパッケージディストリビュータ:典型的には、パッケージに署名して暗号化し、それらを顧客のトランスポートパッケージレシーバに送信し、典型的にはプロバイダのフォートレスに配置される。
【0088】
顧客パッケージレシーバ:通常、顧客のフォートレスに配置されているプロバイダフォートレスからパッケージ(署名され暗号化された)を受信する。
【0089】
顧客認証局は、典型的には、暗号化/検証キー及び証明書を生成し、典型的には、安全な(ネットワークの点で)場所にある顧客フォートレス内に位置する。
【0090】
顧客トランスポートパッケージディストリビュータは、通常、プロバイダ署名を検証する。通常、署名/暗号化をパッケージに追加し、暗号化され署名されたパッケージをエンドポイントに送信する。これは、通常、顧客のフォートレスの内部で実行される。
【0091】
顧客「更新ブロブリポジトリ」:通常、エンドポイントにパッケージを提供する。
【0092】
エンドポイント再署名者:典型的には、顧客トランスポートパッケージディストリビュータからパッケージを受け取り、パッケージに再署名し、それらをサブ構成要素に送る。典型的には、エンドポイント上の安全なエンクレーブ内で実行される。
【0093】
サブ構成要素(安全な入力、安全な出力、UEFIなどであるが、これらに限定されない)は各々、通常、エンドポイント再署名者から再署名されたパッケージを受け取り、通常、エンドポイント再署名者からの署名を検証する。
【0094】
ワークフローは、以下の全て又は任意のサブセットを含み得る:
プロバイダ認証局によって生成され得るPROVIDER_SIGNING_{PRIVATE,PUBLIC}_KEYペア。[PRIVATE]キーは、プロバイダトランスポートパッケージディストリビュータによる署名のために使用されてもよく、[PUBLIC]キーは、顧客トランスポートディストリビュータによる検証のために使用されてもよい。
CUSTOMER_ENCRYPTION_{PRIVATE,PUBLIC}_KEYペアは、顧客認証局によって生成され得る。[PUBLIC]キーは、プロバイダトランスポートパッケージディストリビュータによる暗号化のために使用され得る。[PRIVATE]キーは、顧客トランスポートディストリビュータによる解読のために使用されてもよい。
ENDPOINT_ROOT_CERTIFICATE:顧客認証局によって生成され得る。安全なエンドポイントエンクレーブによって使用されて、ランダム/単回使用署名証明書を生成してもよい。
ENDPOINT_CERTIFICATE_CHAIN:顧客認証局によって生成され得る。エンドポイントの初期プロビジョニングの一部として、サブ構成要素及び/又はエンドポイントに提供され得る。パッケージに署名するために使用されるENDPOINT_SIGNING_CERTIFICATEを検証するためにサブ構成要素によって使用されてもよい。
ENDPOINT_SIGNING_CERTIFICATE:安全なエンドポイントエンクレーブによって生成されてもよい。証明書に関連付けられた[PRIVATE]キーは、パッケージに再署名するために安全なエンドポイントエンクレーブによって使用されてもよい。証明書に関連付けられた[PUBLIC]キーは、エンドポイント証明書チェーンに対してパッケージを検証した後にパッケージの署名を検証するためにサブ構成要素によって使用され得る。
【0095】
特定の実施形態によれば、2つのキーペア/証明書(1つは暗号化のため、1つは検証のため)が、エンドポイントごと、及び/又はコンテンツプロバイダごと、及び/又は顧客(特定のエンドポイントが属し得る組織又はネットワーク)ごとに製造される。
【0096】
各エンクレーブには、特定のインフラストラクチャが提供されることが理解される。各エンクレーブは、例えばプロビジョニング時に、以下の動作又は機能の全て又は任意のサブセットを実行するための論理を用いて予め構成されてよい。
【0097】
次に、上述のブロック又はエンティティの全て又はいずれかのサブセットを含み、上述のキー及び証明書の全て又はいずれかのサブセットを使用するシステムの動作方法について詳細に説明する。
【0098】
以下の動作の全て又は任意のサブセットが、例えば以下のように適切に順序付けられて提供されてもよい。
【0099】
通常、本方法は、エンドポイントに、各エンドポイント上に常駐するエンクレーブを提供することができる。通常、エンクレーブは、コンテンツ提供サーバ又は中央サーバ及び/又は顧客としても知られるコンテンツプロバイダによって信頼されるプロセスを使用して展開される。各エンクレーブは、より大きなハードウェアシステムの一部として、例えば、エンドポイントラップトップのメインボードの一部として提供され得るハードウェア構成要素を含んでもよい。信頼されるプロセスは、少なくとも1つの中央サーバからエンクレーブにソフトウェアコード(又は他のコンテンツ)を配置することを含んでもよく、ソフトウェアは、コードを実行することが許容可能であることを確認するためにエンクレーブが検証できる署名を使用して以前に署名されている。
【0100】
通常、本方法は、エンドポイントに関連するキーを提供することができる。
【0101】
通常、本方法は、コンテンツ、例えば、複数のサブ構成要素に安全かつ検証可能に到達する必要があるデータのブロブ又はペイロードを提供することができる。例えば、特定のコードを書き込んだり、更新したりすることができる。
【0102】
通常、コンテンツプロバイダは、コンテンツプロバイダの秘密キー(通常、エンドポイントによって検証可能である)を使用してコードに署名することができ、署名されたコードをその顧客に送信する。したがって、サプライチェーンのこの段階では、全ての顧客は通常、同一のデータ、すなわち同じ署名付きコードを受信する。通常、コンテンツプロバイダは、エンドポイントによって開くことができるキーを用いて、コンテンツ、例えばブロブ又はペイロードを暗号化する。コンテンツプロバイダは、エンドポイントによって検証可能なコンテンツプロバイダに属する秘密キーで署名することができる。
【0103】
典型的には、ブロブはプロバイダから顧客に進み、その後にのみエンドポイントに進む。代替的に、ブロブは、顧客を経由せずに、エンドポイントに直接進むことができる。
【0104】
通常、エンドポイントは、受信したメッセージを復号し、そのコンテンツ/プロバイダを検証する。ブロブが顧客を通過する場合、同様の動作がそこで行われ得ることが理解される。
【0105】
通常、コンテンツ、例えばブロブは、エンドポイントのエンクレーブに入れられる。
【0106】
典型的には、方法はブロブを抽出することができ、例えば、エンドポイントはその秘密キーを使用してコンテンツ、例えばブロブを復号化する。エンドポイントは、コンテンツプロバイダ及び顧客の公開キーを有し、これらを使用してコンテンツ上の署名を検証する。
【0107】
通常、エンドポイントは、(例えば、コンテンツが抽出されると)顧客の秘密キーとエンドポイントの秘密キーとの組合せである秘密キーを使用してコンテンツに署名することができる。
【0108】
典型的には、エンドポイントは、所与のサブ構成要素のみが(例えば、サブ構成要素公開キーを使用して)どのように復号するかを知っている暗号化を使用して、動作80において署名されたコンテンツを暗号化し、それによって、(再暗号化され)再署名されたコンテンツをもたらすことができる。
【0109】
通常、エンドポイントは、(再暗号化され)再署名されたコンテンツをサブ構成要素に送信する。
【0110】
通常、サブ構成要素は、サブ構成要素秘密キーを使用してコンテンツを復号化する。
【0111】
一般に、サブ構成要素は、一般に顧客レベルキーとエンドポイントレベルキーの組合せである公開キーを使用して、コンテンツを復号されたものとして検証する。組合せは、複数のサブキーから構成されるキー、又は各々が別個の又は異なるキーを採用する複数の検証演算を含んでもよい。
【0112】
典型的には、サブ構成要素がコンテンツ(例えば、更新パッケージ又は他のデータ若しくはブロブ)を処理し、検証すると、サブ構成要素は、コンテンツを実行するか、又は他の方法で適用若しくは使用する。
【0113】
特定の実施形態の特定の利点は、攻撃が特定のポイントで発生し(例えば、特定のエンドポイントが攻撃者によって危険にさらされ)、その後、その攻撃者が追加のエンドポイントへのアクセスを獲得し、かつ/又は後でデータのアクセス及び/トレーションのために活用することができる不正確なデータ/キー/更新コードを注入する機能を獲得するときに、雪玉又は「横方向移動」効果を防止することである。
【0114】
例えば、プリブート環境における更新のインストールの一部は、キーのインストールであってもよい。攻撃者は、「サプライチェーン」に介入し、UEFIが次に拾うために自身の署名されたキーを預けることができる。これらのキーは、危険にさらされた以前に承認されたキーであってもよい。特定の実施形態は、ユーザが自身のキーをUEFI環境に埋め込むことを防止しようとする。
【0115】
ある実施形態によれば、コンテンツ、例えば、1つのエンドポイントで機能する更新は、他のエンドポイントで単に「そのまま」使用することができない。エンドポイントx上で動作し、エンドポイントxによって承認されるソフトウェアのパッケージは、他のエンドポイントにおいて「そのまま」使用されることができず、したがって、攻撃者がエンドポイントxのみから負わせることができるあらゆる損傷に対する損傷を制限する。各エンドポイントは、典型的には、それ自体のキーを有し、それ自体の署名を行い、より一般的には、例えば
図1に例として示される階層内の各エンティティを行う。
【0116】
例えば、悪意のある行為者としても知られる攻撃者が、エンドポイント、又はより一般的には何らかの署名エンティティ、例えば、
図1のレベルのうちの1つにおけるエンティティのうちの1つを引き継いでもよい。攻撃において、典型的には、悪意のある行為者は、コンテンツの悪意のあるカスタマイゼーションを行い、署名する能力を獲得しようとする。
【0117】
したがって、実際にはコンテンツが攻撃者によって導入されたものであり悪意のあるものであっても、攻撃者はコンテンツを真正なものとして適切に署名することができる。しかし、例えば、エンドポイントxによって承認されたソフトウェア(典型的には、エンドポイントx以外のエンドポイントがそれぞれ受信するあらゆるコンテンツ、例えばソフトウェアを承認するためにそれぞれ使用するキーとは異なるエンドポイントxに固有のキーを使用する)は、エンドポイントx以外のエンドポイントで「そのまま」使用することができないので、損傷は他のエンドポイントに及ばない。例えば、各エンドポイントxが、エンドポイントyが送信されたカスタマイズされたコピーyのメタデータとは異なるメタデータを含み得る、コンテンツのそれ自体のカスタマイズされたコピーxを送信された場合、コンテンツのコピーxはエンドポイントyによってそのまま使用されることができず、逆もまた同様である。署名が分配されるので、例えば、本明細書で説明されるように、攻撃されたエンドポイント又はエンティティのサブ構成要素のみが危険にさらされる可能性がある一方で、攻撃されたエンドポイント又はエンティティのサブ構成要素ではないエンティティは危険にさらされる可能性がない。
【0118】
対照的に、従来のシステムでは、所与のレベルのエンティティが階層内の上位レベルから受信するコンテンツ(例えば、全てのエンドポイントが受信する全てのコンテンツ)の全てのコピーは、全て同じに見え(同一であり)、したがって、損傷は、そのレベル全体にわたって、及びそのレベルより下の追加のレベルにまで及ぶ可能性がある。
【0119】
階層においてより低く、典型的には多数であるエンドポイントは、階層の上位レベル、例えば、保護するのがより容易なプロバイダよりも保護するのがより困難であるため、これは特に有利であることが理解される。したがって、実際には、攻撃はプロバイダ(又は顧客)レベルよりもエンドポイントレベルではるかに一般的であるので、特定のエンドポイントへの損傷を制限し、危険にさらされていないエンドポイントへ損傷が及ぶことを防止することは、実際には著しい追加のセキュリティをもたらす。与えられる利点は、まず第1に、発生する攻撃によって引き起こされる損傷を制限することと、本発明の実施形態に従って構築され動作するターゲットシステムに対する攻撃者の動機付けを減少させることの両方にある。
【0120】
特定の実施形態によれば、各エンドポイントは、例えば、エンドポイントが受信したコンテンツの個人化のためにメタデータを追加し、メタデータ並びに次に高いレベルから受信したコンテンツを含むパッケージを生成する。これはファームウェア内にあってもよい。
【0121】
ここでの実施形態がなければ、各エンドポイントは、典型的には、多くの他のエンドポイントが受信したのと同じ保護を有する同じコンテンツ(例えば、更新プロバイダの署名と同じ署名を有する同じ更新)を得ることができる。次に、個々のエンドポイント(例えば、コンピュータ又はワークステーション)の攻撃者が、そのコンピュータ上の検証機構(例えば、アルゴリズム)にアクセスすることができる。次いで、その攻撃者は、更新に署名し、再署名された更新を他のコンピュータ上に展開することができ、雪玉のような損傷を引き起こす。これは特に、全てのエンドポイントが同じキーを有する場合(例えば、全てが同じ秘密キーを使用して署名又は暗号化する場合)に特に当てはまる。
【0122】
エンクレーブは、典型的には、例えば本明細書で説明するように、干渉なしに検証を実行し、再署名を実行するように構成される。典型的には、エンクレーブが適用する検証機構についても、検証を実行するために使用される公開キーについても、本質的に秘密のものはない。
【0123】
ある実施形態の別の利点は、コンテンツプロバイダが各エンドポイントのキーを記憶する必要がないことである。その代わりに、この機能はフェデレート又は分散される。キー/証明書は、本明細書で説明及び列挙されるキー/証明書の全て又は任意のサブセットを含み得る。
【0124】
特定の実施形態の別の利点は、本明細書のプロセスに従う場合、信頼に値する任意の所与のコンピュータ上の全てのコードが既知のコードであり、例えば署名され検証されるので、特定のコンピュータを信頼し、別のコンピュータを信頼しないプロセスを容易にすることである。未知のコード、すなわち署名及び検証されていないコードが存在するコンピュータは信頼に値しない。本明細書のプロセスは、既知のコードのみがこれらのコンピュータ上に存在するかどうかを判定し、そのコンピュータ上の全てのコードが既知である(例えば、検証を行っているコンピュータの「上」のトランスポート層から来たものとして署名及び検証されている)場合にのみ、各コンピュータを信頼することによって、コンピュータを信頼する方法を所与のコンテンツプロバイダに与える。
【0125】
データがエンティティXによって署名されるとき、これは、エンティティxがデータの正しさ/有効性を承認していることを示すことが理解される。このように署名されたデータは、例えば本明細書で説明されるような特定の実施形態に従って、このデータの潜在的なユーザによって検証されてもよい。
【0126】
本明細書の実施形態のいずれも、Kazuar-tech.com及び/又はKAZUAR Fortressから入手可能なKAZUAR BLACK、安全なバックエンドサーバ及び/又はKAZUAR End Point及び/又はKAZUAR LITE Fortress及び/又は、その中の任意の特許請求されている実施形態を含む国際公開第2019/186546号として公開されている共同所有のPCT/IL2019/050343に記載されている任意のセキュアコンピュータシステム、及び/又はその中の任意の特許請求されている実施形態を含む国際公開第2019/186554号として公開されている共同所有のPCT/IL2019/050351に記載されている保護されたコンテナ間の安全な通信のための任意の方法、及び/又はその中の任意の特許請求されている実施形態を含む国際公開第2019/186536号として公開されている共同所有のPCT/IL2019/050332に記載されている任意のリモートの Secured Terminal、及び/又はその中の任意の特許請求されている実施形態を含む国際公開第2020/105032号として公開されている共同所有のPCT/IL2019/051238に記載されている任意のSecure Communication方法又はシステムなどの、既存のシステムと有利に組合せ又は統合することができることが理解される。これら全ての刊行物の開示は、参照により本明細書に組み込まれる。
【0127】
キー及び/又は認証は、典型的には、例えば、動作1103、1104、1106を参照して本明細書に説明されるように、例えば、エンドポイント/システムプロビジョニング時に、時間に先立って、又はランタイムの前に、事前にプロビジョニングされることを理解されたい。これは、特定の実施形態によれば、機器の寿命の間、1回だけ行われてもよい。
【0128】
「必須(mandatory)」、「要する(required)」、「必要である(need)」、及び「必要である(must)」などの用語は、明確にするために本明細書に記載の特定の実装形態又は用途の文脈で行われる実装形態の選択を指し、限定することを意図するものではないことを理解されたい。これは、代替的な実装形態では、同じ要素が必須ではなく、不要として定義される場合もあり、完全に排除される場合もあるからである。
【0129】
ソフトウェアとして本明細書に記載する構成要素は、代替的に、必要に応じて、従来の技法を使用して、全体的又は部分的にハードウェア及び/又はファームウェアで実装され得、逆もまた同様である。各モジュール又は構成要素又はプロセッサは、単一の物理的位置又は物理的デバイスに一元化され得るか、又はいくつかの物理的位置又は物理的デバイスに分散され得る。
【0130】
本開示の範囲には、とりわけ、本明細書の説明による電磁信号が含まれる。これらは、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを、必要に応じた適切な動作群の同時実行など任意の適切な順序で実行するためのコンピュータ可読命令を搬送し得る。本開示の範囲には、とりわけ、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを、任意の適切な順序で実行するための機械可読命令、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを、任意の適切な順序で、すなわち、示したように順次ではなく、並列又は同時に様々な動作を実行するなど必ずしも示したようにではなく実行する、機械によって実行可能な命令のプログラムを有形に具現化する、機械によって読み取り可能なプログラム記憶デバイス、実行可能コードなどコンピュータ可読プログラムコードを有し、内部で具現化し、及び/又は本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを任意の適切な順序で実行するためのコンピュータ可読プログラムコードを含む、コンピュータ使用可能媒体を備える、コンピュータプログラム製品、任意の適切な順序で実行される場合、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てによってもたらされる、任意の技術的効果、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを、任意の適切な順序で、単独で又は組み合わせて実行するようにプログラムされた、任意の好適な装置若しくはデバイス、又はかかる組合せ、少なくとも1つのプロセッサ及び/又は協働入力デバイス及び/又は出力デバイスを各々含み、本明細書に示し、記載する任意の動作を、例えばソフトウェアで実行するように動作する電子デバイス、少なくとも1つのコンピュータ又は他のデバイスを、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを、任意の適切な順序で実行するように構成させる、ディスク又はハードドライブなど情報記憶デバイス又は物理レコード、本明細書に示し、記載する方法のいずれかの動作のいずれか又は全てを、任意の適切な順序で具現化する、ダウンロードの前後に、例えば、メモリ内又はインターネットなど情報ネットワーク上に事前に記憶された少なくとも1つのプログラム、並びにかかるプログラムのアップロード方法又はダウンロード方法、並びにかかるプログラムを使用するためにサーバ及び/又はクライアントを含むシステム、説明された動作の任意の組合せを行うか、又は説明されたモジュールの任意の組合せを実行するように構成された少なくとも1つのプロセッサと、本明細書に示され、説明された方法のいずれかの動作のいずれか又は全てを、単独で、又はソフトウェアと連動して、任意の適切な順序で行うハードウェアと、が含まれる。本明細書に記載の任意のコンピュータ可読媒体又は機械可読媒体は、非一時的コンピュータ可読媒体又は非一時的機械可読媒体を含むことが意図される。
【0131】
本明細書に記載の任意の計算又は他の分析形態は、適切なコンピュータ化された方法によって実行され得る。本明細書に記載の任意の動作又は機能は、例えば、1つ以上のプロセッサによって、全体的又は部分的にコンピュータ実装され得る。本明細書に示し、記載する本発明は、(a)コンピュータ化された方法を使用して、本明細書に記載の問題又は目的のいずれかに対する解決策を識別することであって、解決策は、任意選択的に、決定、アクション、製品、サービス、又は本明細書に記載の問題若しくは目的に肯定的に影響を及ぼす、任意の他の情報のうちの少なくとも1つを含む、ことと、(b)解決策を出力することと、を含み得る。
【0132】
システムは、必要に応じて、ネットワーク、例えば、ソフトウェア、コンピュータ、ルータ、及び通信機器を適宜用いるウェブベースのシステムとして実装され得る。
【0133】
機能、例えば、本明細書に示し、記載するソフトウェア機能を提供するために、任意の適切な配置が用いられ得る。例えば、サーバは、クライアントにダウンロードするために、クライアント側で実行され、サーバ側は、倉庫としてのみ機能する特定のアプリケーションを記憶し得る。任意の又は全ての機能、例えば、本明細書に示し、記載するソフトウェア機能は、クラウド環境において展開され得る。クライアント、例えば、スマートフォンなどモバイル通信デバイスは、クラウドと動作可能に関連付けられ得るが、クラウドの外部にあり得る。
【0134】
本発明の範囲は、本明細書に具体的に記載する構造及び機能に限定されず、本明細書に記載の構造をもたらすか、又は機能を実行する能力を有するデバイスを含むことも意図され、その結果、デバイスのユーザがその能力を使用しなくても、ユーザがそのように望む場合、当該デバイスを修正してその構造又は機能を得ることができる。
【0135】
本明細書に記載の任意の「if-then」論理は、プロセッサが、時には真であり、時には偽である条件xが現在真であるか偽であるかを繰り返し判定し、xが真であると判定されるたびにyを実行するようにプログラムされ、それによって、典型的には「if and only if」ベースで、例えば、xが真であるという判定によってのみトリガされ、xが偽であるという判定によってトリガされることなく、yを少なくとも1回実行するプロセッサをもたらす実施形態を含むことが意図される。
【0136】
本明細書に記載の状態若しくは条件の任意の判定、及び/又は本明細書で生成される他のデータは、任意の適切な技術的効果のために利用され得る。例えば、この判定は、状態又は条件に応答して技術的動作を実行する能力を有する、既知の、又は本明細書に記載の任意の適切なハードウェア、ファームウェア、又はソフトウェアモジュールに送信、すなわち供給され得る。技術的動作は、例えば、状態若しくは条件を変更することを含み得、より一般的には、状態若しくは条件若しくはデータを考慮して、任意の技術的に有益な結果を生じさせ得、及び/又は状態若しくは条件若しくはデータを考慮して、少なくとも1つの不都合な結果を阻止し得る。代替的又は追加的に、適切な人間のオペレータ又は適切な外部システムにアラートが提供され得る。
【0137】
別個の実施形態の文脈で説明する動作など本発明の特徴は、単一の実施形態において組合せて提供されてもよい。例えば、あるシステムの実施形態は、対応するプロセスの実施形態を含むことが意図され、逆もまた同様である。また、各システムの実施形態は、当該サーバ又はクライアント又はノードで実行される機能のみを含む、システム、コンピュータ可読媒体、装置の全機能のサーバ中心の「ビュー」若しくはクライアント中心の「ビュー」、又はシステムの任意の他のノードからの「ビュー」を含むことが意図される。特徴はまた、当技術分野で既知の特徴と組み合わされ得、特に、「背景技術」の項又はそこで言及される公表文献に記載の特徴に限定されない。
【0138】
その反対に、簡潔にするために単一の実施形態の文脈で、又は特定の順序で説明する動作など本発明の特徴は、別個に、又は当該技術分野で既知の特徴(特に、「背景技術」の項又はそこで言及する公表文献に記載の特徴に限定されない)を含む任意の適切な副組合せで、又は異なる順序で提供され得る。「例えば(e.g.)」は、本明細書において、限定的であることを意図しない、特定の例の意味で使用する。各方法は、例えば、本明細書で図示する、又は記載するように適切に順序付けられた、図示する、又は記載する動作の全て又は任意のサブセットを含み得る。
【0139】
図面のいずれかに結合されて示すデバイス、装置、又はシステムは、実際には、特定の実施形態において単一のプラットフォームに統合され得るか、又は限定するものではないが、光ファイバ、イーサネット、無線LAN、HomePNA、電力線通信、携帯電話、スマートフォン(例えば、iPhone)、タブレット、ラップトップ、PDA、Blackberry GPRS、GPSを含む衛星、又は他のモバイル配信など任意の適切な有線又は無線結合を介して結合され得る。本明細書に示し、記載する説明及び図面において、システム及びそのサブユニットとして記載する、又は図示する機能は、その方法及び動作として提供され得、その方法及び動作として記載する、又は図示する機能はまた、システム及びそのサブユニットとして提供され得ることを理解されたい。図面で様々な要素を示すために使用する縮尺は単に例示的なものであり、及び/又は提示を明確にするために適切なものであり、限定することを意図するものではない。
【0140】
任意の適切な通信、例えば有線データ通信、及び/又は例えばWiFi、Bluetooth、又はZigbeeを介したカメラなどセンサとの短距離無線通信が、本明細書に記載の別個のユニット間で使用され得る。
【0141】
本明細書で説明されるような携帯電話アプリを介した実装は一例に過ぎず、代わりに、本発明の実施形態は、例えば、スマートフォンSDKとして、ハードウェア構成要素として、STKアプリケーションとして、又は上記のいずれかの適切な組合せとして実装され得ることが理解される。
【0142】
図示する(又は本明細書に記載する)任意の処理機能は、携帯電話、セットトップボックス、TV、リモートデスクトップコンピュータ、ゲームコンソール、タブレット、モバイル、例えばラップトップ又は他のコンピュータ端末、埋め込みリモートユニットなどであるがこれらに限定されない、プロセッサを有する任意のデバイスによって実行され得、それ自体がネットワーク化され得る(それ自体が、例えば従来の通信ネットワーク内のノードであり得る)、又はネットワーク化されたデバイスに(従来の通信ネットワーク内のノードであるデバイスに、又はかかるノードに直接、若しくは間接的に/最終的に繋がれる)従来通り繋がれ得る。
【0143】
本明細書に記載の任意の動作又は特徴は、本特許出願の範囲外の別の行為者によって実行され得、説明は、当該動作を実行する、可能にする、若しくは促進するように、又は当該特徴を可能にする、促進、若しくは提供するように構成されている、(ハードウェア、ファームウェア、又はソフトウェアであろうとも、なかろうとも)装置を含むことが意図される。
【0144】
本明細書で使用するプロセッサ又はコントローラ又はモジュール又は論理という用語は、例えばIntel及びAdvanced Micro Devices(AMD)から入手可能なものなど、典型的にはデジタルメモリ及び処理能力を有するコンピュータマイクロプロセッサ又はハードウェアプロセッサなどハードウェアを含むことを意図する。本明細書に記載の任意の動作又は機能又は計算又は論理は、任意のかかるコンピュータマイクロプロセッサを含む任意の適切な回路上で、並びにファームウェア若しくはハードウェア内で、又はそれらの任意の組合せで全体的に又は任意の部分で実装され得る。
【0145】
2つ以上の図面に図示する要素、及び/又は記述した説明における要素は、本明細書内で特に明確にする場合を除いて、依然として単一の実施形態に組み込まれ得ることを理解されたい。本明細書に示し、記載するシステムのいずれもが、本明細書に示し、記載する動作又は方法のいずれかを実施するために使用され得るか、又はそれらと組み合わされ得る。
【0146】
明確にするために別個の実施形態の文脈で説明する、本明細書に記載の任意の特徴、特性、論理、モジュール、ブロック、動作、又は機能はまた、特定の教示が相互に矛盾し、組み合わせることができないことを本明細書又は一般知識が具体的に示す場合を除いて、単一の実施形態において組み合わせて提供され得ることを理解されたい。本明細書に示し、記載するシステムのいずれもが、本明細書に示し、記載する動作又は方法のいずれかを実施するために使用され得るか、又はそれらと組み合わされ得る。
【0147】
その反対に、簡潔にするために単一の実施形態の文脈で説明する、本明細書に記載の任意のモジュール、ブロック、動作、又は機能は、別個に、又は当該技術分野で既知の特徴との副組合せなど任意の適切な副組合せで提供され得る。各要素、例えば、本明細書に記載の動作は、本明細書に記載する、若しくは図示する全ての特性及び属性を有し得るか、又は他の実施形態に従って、本明細書に記載する特性又は属性の任意のサブセットを有し得る。
【0148】
上記で使用された以下の用語は、先行技術文献に見られるその任意の定義に従って、又は本明細書に従って、あるいはそれらのそれぞれの範囲に以下を含むように解釈され得る。
【0149】
「フォートレス」又は「安全なネットワーク」は、ファイアウォール、IDS、UTM、及び/又はVPNなどであるがこれらに限定されない、ネットワークを攻撃から保護する少なくとも1つのネットワークデバイス又はサービスを使用するので、安全な任意のネットワークを含むことが意図される。
【0150】
「エンクレーブ」は、コードを安全に実行する任意のハードウェア構成要素を含むメモリ内の任意のハードウェア保護領域を含むことを意図しており、例えば、ハードウェア構成要素がコードを安全に実行することを可能にする少なくとも1つのデバイスがハードウェア構成要素を保護するために配備されているが、典型的にはメインボードを保護するために配備されていないために、あまり安全でないラップトップなどのメインボード上に配置され得る。通常、本明細書の各エンクレーブは、データ、例えば、保護されなければならない更新が時々配信されるエンドポイントコンピュータの集団の中から、エンドポイントコンピュータのそれ自体のサブ集団にネットワーク接続される。通常、集団内の各エンドポイントコンピュータは、エンクレーブにネットワーク接続される。
【0151】
エンクレーブは、「信頼できる実行環境」としても知られており、関連するウィキペディアのエントリに記載されている:
https://en.wikipedia.org/wiki/Trusted_execution_environment
【0152】
従来のエンクレーブの例は、Overview-SGX 101(gitbook.io)に記載されている。
ca=認証局
【0153】
署名された暗号化パッケージ:典型的には最初に暗号化され、次に署名されるパッケージ。
【0154】
ブロブ:コード及びデータの両方を含むサブパッケージの「パイル」/スーパーパッケージを含むことが意図される。また、ウィキペディアの見出し「binary large object」を参照されたい。
【0155】
認証又は検証又は妥当性検査:受信されたブロブが適切な機関によって実際に署名されたことを確認することであって、ブロブのコンテンツが主張されているものであることの確認を暗示すること。
【国際調査報告】