本開示は、システムコンポーネントを認証し、システムコンポーネント間でメッセージを安全に転送し、制約付きリンクを介して安全な通信チャネルを確立し、メッセージコンテンツを認証し、アクションを承認し、および、デバイス・アズ・ア・キーシステムでのユーザーシステムコンポーネントの中で承認及び設定データを配信することの、1つ以上を達成するために使用されうる分散セキュリティモデルのためのシステムおよび方法に関する。システムの1つまたは複数の部分は、2015年2月12に出願され、米国特許9666005号として発行され、「車両と通信するためのシステムおよび方法」と題する、J. Michael Ellisらの米国特許出願第14/620959、および2017年4月14日に出願され、米国特許9794753号として発行され、「リアルタイムロケーションを確立するためのシステムおよび方法」と題する、Raymond Michael Stittの米国特許出願第15/488136号に記載されているマイクロロケーションシステムの1つまたは複数の部分とともに実行することができる。これらの開示は、その全体が本明細書に組み込まれており、そのハードウェアはモニタまたはマスタデバイスであってもよく、その結果、認証検証、認可検証、および位置検証されたポータブルデバイスの、(安全な、信頼できる、非公開の)エンドツーエンド暗号化を用いた他のシステムとのやり取りをもたらす。
I.システムアーキテクチャ
一実施形態によるシステムが図1および17に示され、全体的に100で指定される。システム100は、以下のシステムコンポーネントから構成することができる。a)1人以上のユーザー10(例えば、人)、b)ポータブルデバイス(例えば、スマートフォン、カードまたはフォブ、またはそれらの組み合わせ)および/または固定デバイス(例えば、コンピュータ/サーバー、壁掛けパネル/ディスプレイ、またはそれらの組み合わせ)などの1つ以上のデバイス110、c)ハードウェアとも記載される1つ以上のシステムコントロールモジュール(SCM)120、d)1つ以上のベンダからの1つ以上のバックエンドサーバーまたはコンピュータの集合を含むことができるクラウド130(例えば、クラウドの集合)、およびe)機器の動作を制御し、サービスを起動し、システム100の別の部分に情報を中継し、またはシステム100の別の部分から情報を取り出し、または、それらの組み合わせのために構成されえる1つ以上の機器コンポーネント140。図示された実施形態では、クラウド130および/または機器140はオプションである。
システム100は、1人以上のユーザー10が、デバイス110を使用して機器140とやり取りするか、機器140にアクセスすることを可能にすることができる。デバイス110は、SCM120と通信することによって(車両、ロック、またはテーブルなどの)機器140と通信することができる。一実施形態のSCM120は、デバイス110を認証し、設定データを提供または受信し、アクション(例えば、接続すること、または、要求、コマンド、更新または応答、またはそれらの組み合わせを送信および/または受信すること)を承認し、または、所望のアクションを達成するために機器コンポーネントと通信し、またはそれらの組み合わせを実行することができる。デバイス110は、関係するデバイスおよびユーザーとの間で、(本明細書で説明される)認可および他の設定データを取得し、変更し、または配信し、またはそれらの組み合わせを行うために、クラウド130と通信することができる。セキュリティモデルにはあまり関係しない他のシステムのやりとりがあるが、開示の目的のためには、これ以上詳細には示されないか、または説明されない。例えば、他のシステムのクラウドとやり取りすることが可能である、SCM120およびクラウド130と通信するファクトリツールが存在する。
A.通信とやり取りの概要
図1に図示された実施形態に示された1つ以上のシステムコンポーネント間の通信リンクは、無線または有線、またはその両方であってもよい。デバイス110などの1つのシステムコンポーネントは、SCM120などの別のシステムコンポーネントに対してローカルまたはリモートであり得る。システム100は、クラウドおよび/または機器が存在しない場合のように、その数がゼロである実施形態を含む、任意の数の各システムコンポーネントを含むことができる。
一実施形態では、システム100のシステムコンポーネントの役割は、必ずしも1つのタイプのコンポーネントとして固定されるとは限らない。例えば、システムコンポーネントは、動作中に動的に役割を変更してもよく、またはシステムコンポーネントが、システム100の2つ以上のコンポーネントの役割を受け持ってもよい。例えば、SCM120は、別のSCM120のための機器コンポーネント140であってもよい。この例のより具体的な形態では、SCM120は、他のSCM120と通信する機器コンポーネント140であってもよい。これらのシステムコンポーネントの1つまたは複数が存在しなくてもよいと理解されるべきであるが、開示の目的のため、残りの議論は、1つまたは複数の機器コンポーネント140およびクラウド130が存在するシステム100に焦点を当てる。
B.コンポーネントの概要
図示された実施形態におけるシステム100は、本明細書に概説されるような1つ以上のシステムコンポーネントを含むことができる。システムコンポーネントは、ユーザーまたは電子システムコンポーネントであってもよく、それは、デバイス110、SCM120、機器コンポーネント140、およびクラウド130、またはそれらの組み合わせであってもよい。本明細書で論じられるように、電子システムコンポーネントは、それらのデバイスの任意の1つまたは複数として動作するように構成することができる。この意味で、一実施形態では、デバイス110、SCM120、機器コンポーネント140、およびクラウド130の間で共通するいくつかの様相または特徴が存在し得る。開示の目的のために、これらの特徴が、図2に示され、全体として200で指定される電子コンポーネントに関連して説明される。
電子システムコンポーネント200(例えば、ユーザーを除くすべてのシステムコンポーネント)は、他の電子ハードウェアの中で、1つ以上のアプリケーション232(ソフトウェアおよび/またはファームウェアを含む)を実行する1つ以上のプロセッサ210、1つ以上のメモリユニット212(例えば、RAMおよび/またはROM)、および1つ以上の通信ユニット214を含むことができる。電子システムコンポーネント200は、通信ユニット214を介してより下位レベルのデバイス/電子機器へのアクセスを制御するオペレーティングシステム230を有していても有していなくてもよい。電子システムコンポーネント200は、ハードウェアベースの暗号化ユニット222を有していても有していなくてもよく、存在しない場合、暗号化機能はソフトウェアで実行されてもよい。電子システムコンポーネント200は、セキュアメモリユニット220(例えば、セキュアエレメントまたはハードウェアセキュリティモジュール(HSM))を有していてもよいし、有していなくても(または、アクセスしてもアクセスしなくても)よい。オプションのコンポーネントおよび通信経路は、図示の実施形態では仮想線で示されている。
図示された実施形態のシステム100は、任意のコンポーネント内のセキュアメモリユニット220の存在に依存しない。セキュアメモリユニット220がオプションで存在しない場合、セキュアメモリユニット220に格納されるデータ(例えば、非公開鍵および/または秘密鍵)は、静止時に(可能なときに)暗号化されてもよい。ソフトウェアベースおよびハードウェアベースの対処の両方を利用して、そのようなデータへのアクセスを実質的に防止し、並びに、全体的なシステムコンポーネントのセキュリティ破壊の招来を実質的に防止しまたは検出するか、またはその両方を行うことができる。このような対策機能の例には、物理的な障害物またはシールドの実装、JTAGおよび他のポートの無効化、攻撃ベクトルを排除するようにソフトウェアインターフェースを強化、信頼できる実行環境(ハードウェアまたはソフトウェア、またはその両方)の使用、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来の検出などがある。
開示の目的のため、安全であることは、一般に、秘密であること(暗号化されていること)、認証されていること、および完全性が検証されていることと考えられている。しかし、本開示はそれに限定されず、「安全」という用語はこれらの態様のサブセットであってもよく、またはデータセキュリティに関連する追加の態様を含んでもよいことを理解されたい。
通信インターフェース214は、有線または無線を含む、本明細書で説明する通信リンクのタイプのいずれかを含む、任意のタイプの通信リンクとすることができる。通信インターフェース214は、外部または内部の、またはその両方の通信を容易にすることができる。例えば、通信インターフェース214は、ブルートゥース(登録商標、以下同様)ローエナジー規格による無線通信や、Wi−Fiイーサネット(登録商標、以下同様)通信リンクを介するクラウド130など、デバイス110の形態の別のシステム電子デバイス200との無線通信リンクを提供することができる。別の例では、通信インターフェース214は、複数のデバイス間の通信を容易にするCANベースの有線ネットワークなどの有線リンクを介して、機器コンポーネント140(例えば、車両コンポーネント)と通信するように構成することができる。一実施形態の通信インターフェース214は、ユーザー10に情報を通信し、および/またはユーザー10から情報を受信するためのディスプレイおよび/または入力インターフェースを含むことができる。
図2に示す一実施形態では、電子システムコンポーネント200は、別の電子システムコンポーネント200またはユーザー以外の1つまたは複数の補助デバイス300と通信するように構成されてもよい。補助デバイス300は、電子システムコンポーネント200とは異なって構成されることができ、例えば、補助デバイス300は、プロセッサ210を含まず、代わりに、電子システムコンポーネント200との情報の送信または受信、もしくはその両方のための少なくとも1つの直接接続および/または通信インターフェースを含んでもよい。例えば、補助デバイス300は、電子システムコンポーネント200からの入力を受け入れるソレノイドであってもよく、または補助デバイス300は、電子システムコンポーネント200にアナログおよび/またはデジタルフィードバックを提供するセンサ(例えば、近接センサ)であってもよい。
C.マイクロロケーション
図示の実施形態のシステム100は、デバイス110に関してリアルタイムで位置情報を決定するように構成されてもよい。図1の図示の実施形態では、ユーザー10は、デバイス110(例えば、スマートフォン)を携帯することができる。システム100は、機器へのアクセスまたは機器コマンドの許可が与えられるべき位置にユーザーが位置しているかどうかを判定するのに十分な精度でリアルタイムに、機器140(例えば、車両)に対するデバイス110の位置特定を容易にすることができる。
例えば、機器140が車両である車両の分野では、システム100は、デバイス110が車両の外部にあるが、例えば、運転者側のドアまで5フィート、3フィート、または2フィート以下のようにすぐ近くであるかどうかの決定を容易にすることができる。この決定は、システム100が車両をアンロックすべきかどうかを識別するための基礎をなすことができる。一方、システム100が、デバイス110は車両の外部にあり、運転者側ドアのすぐ近くにない(例えば、2フィート、3フィート、または5フィートの範囲外にある)と判定した場合、システム100は、運転者側ドアをロックすることを決定することができる。別の例として、システム100が、デバイス110は運転者側シートのすぐ近くにあるが、パッセンジャーシートまたはリヤシートの近くではないと判断した場合、システム100は、車両の始動を可能にすることを決定することができる。逆に、デバイス110が運転者側シートの近接範囲外であると判定された場合、システム100は、車両を不動にすることまたは不動を維持することを決定することができる。
この状況における車両はまた、図3の図示された実施形態に関連して説明され、センサおよびセンサハブ構成とともに図16および図17に示される、遠隔デバイス310と類似する1つまたは複数のセンサのような他のタイプの機器140を含むことができる。図16のセンサおよびセンサハブ構成を形成する機器140は、センサおよびセンサハブから受信した情報の認証を容易にするために、本明細書で説明される1つまたは複数の鍵を含むことができる。1つまたは複数の鍵は、センサまたは遠隔デバイス310および/またはセンサハブと共に使用するために、システム100に組み込むことができることに留意されたい。システム100の機器デバイスまたは他のコンポーネントと構造が類似する1つまたは複数の追加の鍵は、SCM120およびセンサネットワーク内のセンサ/センサハブに存在してもよい。加えて、または代替として、システム100の1つまたは複数のこれらの鍵および/または1つまたは複数の他の鍵は、センサネットワークにおけるセンサ/センサハブの真正性を識別し、その参加を承認するために使用されてもよい。
機器140のマイクロロケーションは、全地球測位システム、デバイス110からの通信の1つ以上の信号特性、および1つまたは複数のセンサ(例えば、近接センサ、リミットスイッチ、または視覚センサ)、またはそれらの組み合わせから得られた情報を使用するなど、様々な方法で決定することができる。システム100を構成することができるマイクロロケーション技術の一例は、2017年4月14に出願され、「リアルタイムロケーションを確立するためのシステムおよび方法」と題する、Raymond Michael Stittらの米国特許出願第15/488136に記載され、その開示は、全体が参照により本明細書に組み込まれる。より詳細には、図3の図示された実施形態に描かれた一例では、SCM120および複数の遠隔デバイス310(デバイス110といくつかの点で類似)は、機器コンポーネント140に対して固定された位置に配置することができる。機器コンポーネント140の例示のユースケースは、先の例で特定された車両、または機器コンポーネント140によってアクセスが制御される建物を含む。
デバイス110は、通信リンクを介してSCM120と無線で(例えば、ブルートゥースローエナジーを介して)通信することができる。複数の遠隔デバイス310は、デバイス110とSCM120との間の通信を傍受して、信号強度などの通信の1つ以上の信号特性を決定するように構成されてもよい。決定された信号特性は、デバイス110とSCM120との間の通信リンクとは別の通信リンクを介して、SCM120に通信されるか、または分析された後に通信されてもよい。追加的にまたは代替的に、デバイス110は、1つまたは複数の遠隔デバイス310との直接の通信リンクを確立してもよく、1つ以上の信号特性は、この直接通信リンクに基づいてを決定されてもよい。
一例として、図示の実施形態に示すように、デバイス110からSCM120への通信の伝播波が示され、302、304、306で明示されている。デバイス110(ソース)からの距離が大きいほど、無線通信の強度は小さくなる。伝播波306に関する通信の強度は、伝播波302の強度よりも小さい。さらに、時間T0において通信が送信された場合、伝播波302での通信のための移動時間(TP1−T0)は、伝播波306での通信のための移動時間(TP3−T0)よりも短い。その結果、遠隔デバイス320が伝播波302で通信を受信した場合、通信の到着のタイムスタンプは、通信が伝播波306で受信された場合よりも早くなる。信号強度および到着時間などの1つ以上の信号特性が、SCM120に対するデバイス110に関する位置情報を決定するために、解析されてもよい。例えば、遠隔デバイス310とSCM120との間の到着の時間差が、デバイス110の相対位置を決定するために処理されてもよい。SCM120に対する1つまたは複数の遠隔デバイス310の位置は、デバイス110の相対位置が遠隔デバイス310およびSCM120に対する絶対位置に変換されることができるように、既知であってもよい。信号特性の追加的または代替的な例は、距離関数、三辺測量関数、三角測量関数、多辺測量関数、指紋関数、微分関数、飛行時間関数、到着時間関数、到着時間差関数、到着角度関数、出発角度関数、幾何学関数など、またはそれらの任意の組み合わせを含む、1つまたは複数のアルゴリズムに従って位置を決定することを容易にするために取得されてもよい。
図示の目的のために、伝播波302、304、306は一様な円形として描かれているが、伝播波は、干渉または指向性アンテナの使用などの他の要因に依存して形状が変化してもよいことに留意されたい。
一実施形態では、デバイス110とSCM120との間の通信に関する情報は、複数の遠隔デバイス320に提供されてもよい。例えば、ブルートゥースローエナジーチャネルに関する接続パラメータは、複数の遠隔デバイス320が通信を監視することができるように、遠隔デバイス320に提供されてもよい。例えば、通信チャネルは、パケットごとにまたはパケット内で送信されるビットの中で、送信の周波数など、通信中に1つまたは複数のパラメータを変更するかもしれない。これらの1つ以上の可変パラメータは、パケットまたは通信の受信を可能にするために遠隔デバイスに320に通信されてもよい。
システム100、システムコンポーネントを認証する、システムコンポーネント間でメッセージを安全に転送する、制約付きリンクを介して安全な通信チャネルを確立する、メッセージコンテンツを認証する、アクションを承認する、および、デバイス・アズ・ア・キーシステムでのユーザーシステムコンポーネントの中で承認及び構成データを配信する、の中の1つまたは複数を容易にするために、本明細書で説明されるように、セキュリティモデルを利用することができる。
II.承認
本明細書で説明するように、システム100は、1つまたは複数の権利をデバイス110に関連付けることができ、システム内の1つ以上の権利を利用する認可を容易にする。本明細書で論じられるように、認可は、(特定のユーザー10の代理として機能する)デバイス110が、SCM120および/またはデバイス110に固有のものであってもよい、1つまたは複数の(アクセス属性としても説明される)制約内で、(特定の機器の代理として機能する)SCM120とやり取りすることを可能にするアクセス権または一般的な権利である。
一実施形態では、鍵(信用証明書または仮想/電子/モバイル鍵)がデバイス110に配信され、その鍵は、検証(またはそのいくつかのバリエーション)のために、使用時にSCM120に受け渡される。
システム100の図示された実施形態では、デバイス110自体(そのアイデンティティ)が鍵であり、SCM120は、SCM120がデバイス110のために設定することができる1つ以上の認可に基づいて、デバイス110の所望のアクションを承認することができる。デバイス110の「アイデンティティ」は、1つ以上の暗号のアイデンティティまたはデバイス110に固有の任意の他の識別子、またはそれらの複合および/またはそれらの任意の組み合わせであってもよい(または、基づくものであってもよい)。暗号識別子の例には、非対称暗号で生成された鍵のペアなどの固有の公開/非公開鍵、対称暗号で生成された鍵などの共有秘密鍵が含まれる。デバイス110に固有の別の識別子の例は、ハードウェアシリアル番号、ハードウェアセキュリティモジュール(HSM)、および1つ以上のアプリケーションインスタンス識別子を含む。1つ以上の暗号アイデンティティおよび/またはデバイス110の1つ以上の他の識別子の組み合わせの例には、複数の暗号アイデンティティおよび暗号アイデンティティと非暗号アイデンティティが含まれる。
デバイス110は、同じSCM120に対する複数の認可、または別のSCM120に対する異なる認可を含む、任意の所与の時点でゼロ以上の認可を有することができる。認可は、デバイス110がSCM120と通信することを可能にする、複数のデバイス110と複数のSCM120を相互に認証する、およびデバイス110がSCM120とやり取りすることができる条件を特定する、との中の1つまたは複数を容易にすることができる情報を提供するので、認可は本明細書で説明するセキュリティモデルの有用な部分である。認可は、認証のための有用な情報に加えて、SCM120に対する各デバイス110のために、アクセス属性を定義することができる。一実施形態によるアクセス属性は、以下の1つまたは複数を含むことができる。
1)タイプ(例えば、オーナー、ゲスト、バレットなど)−標準。様々な認可タイプは、異なる認可配信/共有の権限との結果をもたらす(例えば、オーナーは、別のデバイスをオーナーにすることはできるが、ゲストなどにはできない)。オーナー(または他のタイプの)権限を持つユーザーのみがアクセスできるコマンドまたは他のシステムレベルの機能があってもよい。追加情報については、認可タイプセクションVIIを参照。
2)有効なタイムスタンプ範囲開始−標準。
3)有効なタイムスタンプ範囲終了−オプション。存在する場合、認可が、特定の日付/時刻に自動的に取り消されることがある。
4)有効なスケジュール−オプション。存在する場合、認可は、定義されたスケジュール(例えば、一週間の各曜日、月間スケジュール、またはカスタムスケジュールで、どの時間に利用されるかを指定する定期的な週間スケジュール)ごとにのみ使用され得る。
5)有効な使用回数−オプション。存在する場合、認可は、設定された回数(例えば、コマンドの数、使用された日数/時間の数)まででのみ使用され得る。
6)追加の認証タイプと識別子−オプション。存在する場合、認可は、システムが既に提供しているもの(例えば、デバイスアンロック/ログイン/ボタン押下/パスコード入力/親指の指紋/特定のコマンドを発するため別のデバイスなどの存在の要求)を超える追加の(アクティブまたはパッシブ)認証を利用することができる。
7)配信権−オプション。存在する場合、SCM120のために別のデバイス110に新しい認可を発行するため、デバイス110が有する権利を識別および/または記述する権利管理サービス(本明細書の説明を参照)における認可の権限が参照される。言い換えると、配信権は、デバイス110が他のデバイスと認可を共有するためのデバイス110の権利に関係する。存在しない場合、少なくとも1)項およびセクションVIIに記載される認可タイプに完全にまたは部分的に基づいてもよい。代替の実施形態では、相互チェックを行うなどして、認可タイプとデジタル権利管理サービスの両方を一緒に使用することができる。
8)命令権−オプション。存在する場合、特定のコマンドまたは応答もしくはその両方を発行し、または受信し、もしくはその両方を行うために、デバイス110が有する権利を識別および/または記述する権利管理サービス(本明細書の説明を参照)における認可の権限が参照される。例えば、デバイス110は、ドアを開くコマンドを発行することができるが、それを閉めることはできない。権利は、コマンド単位またはクラス単位で付与することができる。存在しない場合、命令権は、少なくとも1)項およびセクションVIIに記載される認可タイプに完全にまたは部分的に基づいてもよい。代替の実施形態では、相互チェックを行うなどして、認可タイプとデジタル権利管理サービスの両方を一緒に使用することができる。別の代替の実施形態では、認可されたコマンドのリスト(および他の必要であり得るメタデータ)が代りに提供されてもよい。さらに別の代替の実施形態では、禁止されたコマンドのリスト(および他の必要であり得るメタデータ)が代わりに提供されてもよい。
9)SCM120が相互作用を許可または拒否する他の可能性のある属性。一実施形態では、デバイス110がそのような安全な通信のための認可を所有するときにのみ、デバイス110はSCM120と安全に通信することができるが、デバイス110がSCM120と安全でない通信を行うかもしれないシナリオまたは状況がありえることが理解されたい。
すべての属性がSCM120またはデバイス110に通信される必要はないことに留意されたい。例えば、いくつかの属性は、クラウド130内にのみ存在してもよい。
SCM120は、以下のうちの少なくとも1つに基づいて、リクエスト、コマンド、アップデート、およびレスポンスのうちの1つまたは複数を送信または受信する、またはその両方を行うように、デバイス110を認可することができる。
1)1つ以上の認可が認証されている(例えば、少なくともセクションIIIのACP参照)。
2)1つまたは複数の認証された認可において、すべてまたはいくつかの潜在的に必要な条件が満たされる。
3)デバイス110が認証されている。このように、上記の条件に加えて、各認可は、暗号鍵(例えば、Device-SCM-Keyおよび/またはUser-SCM-Key)と、デバイス110がターゲットSCM120との暗号化された通信リンクを確立するため、デバイス110がターゲットSCM120を認証するため、およびターゲットSCM120がデバイス110を認証するために使用されるデータとを含んでもよい。このような状況でデバイス110のために使用されるデータが、セクションXIIで鍵システムとしても特定される、システム鍵記述セクションにおいてさらに詳細に記載される。
III.承認パッケージ
一実施形態では、情報は、図4の一実施形態に従って示され、400で指定される認可設定パッケージ(ACP)を介して安全な方法でSCM120に通信することができる。ACP400は、SCM120に送信されることができる認可または他の設定データ、またはその両方を含むことができる。1つ以上のデバイス110が、ACP400をSCM120に送信してもよいが、ACP400は、他のデバイスを介してSCMに送信されてもよく、本開示は、デバイス110を介した送信に限定されないことを理解されたい。
ACP400は、図5の一実施形態に従って示されるように、ACPコンテナコレクション414内にカプセル化され得るACPコンテナ410にカプセル化することができる。ACP400、ACPコンテナ410またはACPコンテナコレクション414、もしくはそれらの任意の組み合わせは、シーケンス化された多層暗号化に基づくものであってもよい。ACPコンテナ410は、ネストされた層を含むことができ、各層は異なる暗号鍵に従って各層を暗号化するなど異なる方法で暗号化されてもよい。このようにして、ネストされた層は、タマネギの層として概念化することができ、外側の層を解読することなく各内側の層にアクセスすることはできない。
一実施形態では、ACPコンテナ410は、分散システムを介して設定データをSCM120に配信するための安全手段であってもよい。図示の実施形態におけるACPコンテナ410は、クラウド130によってデバイス110に配信されてもよい。ACPコンテナ410は、次のうちの1つ以上を提供する方式で、シーケンス化された多層暗号化を利用することができる。
・デバイスまたは通信セキュリティ(例えば、安全ではない通信リンクを使用する安全ではないデバイス)に係らず、実質的に保証された機密性と完全性。
・実質的に保証された真正性と、複数の認証されたシステムコンポーネントがACP400の内容を承認したこと(例えば、オーナーデバイス110、そのユーザー、および、本明細書に記載されるように、別個のクラウド認可要求とクラウド認可承認サービスが使用される場合に、例えば、2つ以上のクラウドサービス130を含む、1つまたは複数のクラウドサービス130)。
・ACP400がターゲットSCM120向けであり、他のシステムコンポーネントがACP400の無認可の内容を解読できないことの実質的な保証。
・システム100の状態の実質的な保証(例えば、適切なシステムコンポーネントが定義された順序で構成を承認したこと)。
・ターゲットSCM120が以前にデバイス110と通信したことがない場合であっても、デバイス110とターゲットSCM120との間の通信リンクのみを使用して認証および認可を実行することの許可(例えば、インターネットから切断されたとき、デバイス110もSCM120もいずれのクラウドサービス130にもアクセスしていないとき、言い換えると、デバイス110とSCMの両方がオフラインであるとき、認証が実行されてもよい)。
クラウド130によって実施される認可変更プロセスおよびパッケージ層の暗号化シーケンスとともに、ACPコンテナ410の構造は、ターゲットSCM120のみが、ACPコンテナ410の全体を復号することができること、および、複数のシステムコンポーネント(例えば、ユーザー10、クラウド130、およびオーナーデバイス110、またはそれらの組み合わせ)がACP400を承認したことを保証することができる。ACPコンテナ410の暗号化シーケンスは、最内層(最後に復号される)から最外層(最初に復号される)まで、さらに詳細に後述される。ACPコンテナ410の構造は、アプリケーションによって異なる場合がある。しかしながら、図示された実施形態では、ACPコンテナ410は、インテグリティハッシュ(例えば、暗号ハッシュおよび/または署名)、タイムスタンプ、バージョン、送信器アイデンティティ、受信機アイデンティティ、および他のデータロケーション並びにカプセル化属性(図4または図5に示さず)の少なくとも1つを含むことができる。
全ての必要な認可された層が解読され、認証され、完全性検証され、整合性のため属性が複数の層に渡って検査された後、ACPコンテナ410または(ACP400を含む)いずれかの層は、SCM120によって処理および/または格納される。図示された実施形態では、SCM120は、ACPコンテナ410のすべての層を処理し、および復号する権限が与えられるが、SCM120が、処理または復号する権限が与えられないか、処理または復号するように構成されない、ACPコンテナ410のさらなる層があってもよいことを理解されたい。ACPコンテナ410は、多数の層を有すると本明細書で説明しているが、ACPコンテナの層数および構成または構造は、アプリケーションに応じて変更してもよいことにも留意されたい。(ACP400を含む)ACPコンテナ410の任意の部分が格納されてもよいが、そのような層は、受信された(暗号化された)フォーマットとして、受信されたが復号されたフォーマットとして、代わりの(例えば、格納効率またはランタイム検索のために最適化された)フォーマットで、またはそれらの任意の組み合わせで、格納されてもよいことも理解されたい。
A.ACP外層1
図4に示す実施形態では、ACP400は、401で指定されるACP外層1内に含まれる。ACP外層1は、ACP400が、クラウド130から生じ、ターゲットSCM120に向けられたものであることを確認することができる。クラウド130は、ターゲットSCM120とクラウド130によって定義されるペアに固有であり得る(本明細書の少なくともセクションXIIでより詳細に説明されるCloud-SCM-Key鍵などの)鍵で、ACP外層1を暗号化することができる。一実施形態では、オプションで、クラウド130、ターゲットSCM120、およびそのターゲットSCM120に対する認可を有するデバイス110のみが、このACP外層1を復号することができてもよい。
代替的な実施形態では、ACP外層1を暗号化するために利用される鍵は、ターゲットSCM120とクラウド130によって定義されるペアに固有ではないCloud-SCM-Key鍵であってもよい。例えば、複数のSCM120のシステム内におけるすべてのSCM120の間で共有される共通鍵が利用されてもよい。一実施形態では、Cloud-SCM-Key鍵が存在しない場合、ACPがクラウド130から生じ、ターゲットSCM120に向けられたものであるとの検証は、Cloud-SCM-Keyの使用に限定されない別の方法で達成することができる。代替の実施形態では、システム100は、Cloud-SCM-Keyに基づくACP外層1の検証を利用しなくてもよく、代わりに他の層の暗号化およびシーケンシングまたはクラウド130の認証(本明細書で説明する)に依拠してもよい。
B.ACP外層2
図4の図示された実施形態では、ACP外層1は、402で指定されるACP外層2内に含まれる。ACP外層2は、ターゲットSCM120のための(クラウド130から生じた)ACP400が、ターゲットSCM120のためのオーナーデバイス110にて、ユーザー10によって検視され承認されたことを確認することができる。クラウド130のユーザーアカウントサービスは、本明細書の少なくともセクションXIIでより詳細に説明されるUser-SCM-Key鍵のような鍵でACP外層2を暗号化することができ、その鍵は、ターゲットSCM120とデバイス110と関連付けられたユーザーアカウントによって定義されるペアに固有であり得る。一実施形態では、認可が、ターゲットSCM120のためユーザーアカウントに対して発行されてもよく、それにより、そのユーザーアカウントに関連付けられたすべてのデバイス110が認可される。
一実施形態では、オプションで、ACP400を承認したユーザーアカウントに関連付けられたクラウド130、ターゲットSCM120、およびデバイス110のみが、ACP外層2を復号することができる。
代替の実施形態では、デバイス110は、本明細書の少なくともセクションXIIでより詳細に説明されるDevice-SCM-Key鍵のような鍵でACP外層2を暗号化することができ、その鍵は、ターゲットSCM120とデバイス110によって定義されるペアに固有であり得る。一実施形態では、認可が、特定のデバイス110に対してターゲットSCM120のために発行されてもよい。一実施形態では、オプションで、クラウド130、ターゲットSCM120、およびACP400を承認したターゲットSCM120のための特定のオーナーデバイス110のみが、ACP外層2を復号することができる。
代替の実施形態では、ACP外層2は、ターゲットSCM120とデバイス110またはユーザーアカウントによって定義されたペアに固有ではないDevice-SCM-KeyまたはUser-SCM-Key鍵で暗号化されてもよい。例えば、複数のSCM120のシステム内におけるすべてのSCM120の間で共有される共通鍵が利用されてもよい。一実施形態では、Device-SCM-KeyまたはUser-SCM-Key鍵がCloud-SCM-Key鍵と異なる場合、またはDevice-SCM-KeyまたはUser-SCM-Keyが存在しない場合、ACP400が、ターゲットSCM120のためのオーナーデバイス110のユーザー10によって検視され承認されたことの検証は、Cloud-SCM-Keyの使用に限定されない別の方法で達成することができる。代替の実施形態では、システム100は、Cloud-SCM-KeyまたはUser-SCM-Keyに基づくACP外層2の検証を利用しなくてもよく、代わりに他の層の暗号化およびシーケンシングまたはクラウドの認証(本明細書で説明する)に依拠してもよい。
C.ACP外層3
図4の図示された実施形態では、ACP外層2は、403で指定されるACP外層3内に含まれる。ACP外層3は、ターゲットSCM120のための(クラウド130から生じた)ACP400が、ターゲットSCM120のためのオーナーデバイス110にてユーザー10によって検視され承認され、ターゲットSCM120のためのオーナーデバイス110にて、(本明細書に記載される)帯域外認証メカニズムを介して、変更されずに、ユーザー10によって承認されたことをクラウド130によって確かめられたことを確認することができる。クラウド130は、少なくともセクションXIIで本明細書においてより詳細に説明されるSCM-Key鍵のような鍵でこの層を暗号化することができ、その鍵は、ターゲットSCM120に固有であり得る。一実施形態では、ターゲットSCM120のみがACP外層3を復号することができる。ACP外層2は、潜在的に複数のオーナーアカウント(User-SCM-Key鍵)および/またはデバイス110(Device-SCM-Key鍵)のうちの1つによって暗号化され得るので、この層のメタデータは、どのアカウントおよび/またはデバイス110がACP外層2を署名したかの表示(例えば、Device-SCM-EDまたはUser-SCM-ID)を含む。
代替の実施形態では、ACP外層3は、ターゲットSCM120に固有ではないSCM-Key鍵で暗号化されてもよく、複数のSCM120のシステム内におけるすべてのSCM120の間で共有される共通鍵が利用されてもよい。一実施形態では、SCM-Key鍵がDevice-SCM-Key鍵と異なるものではない場合、またはSCM-Keyが存在しない場合、ターゲットSCM120のためのオーナーデバイス110にて、(本明細書に記載される)帯域外認証メカニズムを介して、変更なしで、ユーザー10によってクラウド130がACP400を承認したことの検証は、SCM-Key鍵の使用に限定されない別の方法で達成することができる。代替の実施形態では、システム100は、SCM-Keyに基づくACP外層3の検証を利用しなくてもよく、代わりに他の層の暗号化およびシーケンシングまたはクラウドの認証(本明細書で説明する)に依拠してもよい。帯域外認証がこの検証に含まれるすべての実施形態では、帯域外認証が完全に除去されるか、特定のタイプの変更にのみ必要とされる代替構成が存在する。
D.ACP外層4
図4の図示された実施形態では、ACP外層3は、404で指定されるACP外層4内に含まれる。ACP外層4は、完成したACPコンテナ410がクラウド130から生じて、クラウド130によって承認され、ターゲットSCM120に向けられたものであることを確認することができる。クラウド130は、少なくともセクションXIIで本明細書においてより詳細に説明されるCloud-SCM-Approval-Key鍵のような鍵でACP外層4を暗号化することができ、その鍵は、ターゲットSCM120とクラウド130によって定義されるペアに特有であり得る。一実施形態では、オプションで、クラウド130、ターゲットSCM120、およびそのターゲットSCM120のための認可を有するデバイス110のみが、ACP外層4を復号することができる。
一実施形態では、クラウド認可要求およびクラウド認可承認サービスは分離することができないので、ACP外層4は、少なくともセクションXIIで本明細書においてより詳細に説明するCloud-SCM-Key鍵で暗号化されてもよく、その鍵は、ターゲットSCM120およびクラウド130によって定義されるペアに固有のものであってもよい。
一実施形態では、ACP外層4は、ターゲットSCM120とクラウド130によって定義されるペアに固有ではないCloud-SCM-Approval-KeyまたはCloud-SCM-Key鍵で暗号化されてもよい。例えば、複数のSCM120のシステム内のすべてのSCM120の間で共有される共通鍵が利用されてもよい。一実施形態では、Cloud-SCM-Approval-KeyまたはCloud-SCM-Key鍵がSCM-Key鍵と異なるものではない場合、またはCloud-SCM-Approval-KeyまたはCloud-SCM-Keyが存在しない場合、完成したACPコンテナ410がクラウド130から生じて、クラウド130によって承認され、ターゲットSCM120に向けられたものであるとの検証は、別の方法で達成されてもよい。代替の実施形態では、システム100は、Cloud-SCM-Approval-KeyまたはCloud-SCM-Keyに基づくACP外層4の検証を利用しなくてもよく、代わりに、他の層の暗号化およびシーケンシングまたはクラウドの認証(本明細書で説明する)に依拠してもよい。
セキュリティモデル内で利用されるACPコンテナ410の構造は、認証と認可の分離を達成するか、または実質的に達成することができる。セキュリティモデルは、これらのアクションを異なるサービスおよび構造に分離してもよいが、セキュリティモデルは、認証および認可を、別々に認証された2つの別々のツリー(すなわち、別々の信頼ルーツ)に明示的に分離しないかもしれない。代わりに、認証および認可ツリーは、分散暗号化およびシーケンス復号によって別個に認証されてもよい。認証と認可の分離は、(デバイス110に加えて)ACPコンテナ410を生成および/または解読するためには、複数の別個の物理的クラウドサーバー130から鍵を取得することをハッカーに要求することによって近似することができる。
認証と認可の分離を近似するための一構成例は、a)最初のACP400を生成し、ユーザー10にACP400を承認することを要求するサービス(クラウド認可要求サービス)と、b)ユーザー10が最初のACP400を承認し、最終的なACPコンテナ410を生成するサービス(クラウド認可承認サービス)とを分離することである。一実施形態において、ACP外層4で使用される鍵(例えば、クラウド認可承認サービスによって使用されるCloud-SCM-Approval-Key)は、ACP外層1で使用される鍵(例えば、クラウド認可要求サービスによって使用されるCloud-SCM-Key)とは違ってもよい。一実施形態では、クラウド認可承認サービスなどのACP外層4に署名するクラウドサービス130は、クラウド認可要求サービスなどのACP外層1に署名するクラウドサービス130とは別のサーバー上にある。
IV.ACPコンテナの配信
一実施形態では、ACPコンテナ410は、ターゲットSCM120のためのすべての現行の認可を含むことができる。クラウド130は、SCM120のためのACP400内に含まれるデータがプッシュメカニズムを介して変化するたびに、完全な(すなわち、部分更新ではない)ACPコンテナ410を生成および/または更新し、すべての関連するデバイス110に自動的に配信することができる。変化の例は、a)SCM120について追加、変更、および取り消しの少なくとも1つがなされた、ACP400内のデータと認可、b)工場リセットするよう指示されたSCM120、c)認可された最初のオーナーデバイス、およびd)循環された暗号鍵を含む。
A.ACPコンテナのプッシュ
プッシュメカニズムは、すべてのACPコンテナ410の配信に使用してもよいし、またはプッシュメカニズムの使用は、特定の変更および/またはイベントに応答してのACPコンテナ410の配信に限定してもよい。関連するデバイス110は、現行の認可を有している、または以前に1つ以上の認可を有していたが、ターゲットSCM120のための、更新されたACPコンテナ410(例えば、SCM120がより新しいACP400を有する)をまだ送信されてしないデバイス110とみなされてもよい。現行の認可は、取り消され(すなわち、除去され、無効化され、削除され)ておらず、期限切れとなっていない認可(すなわち、有効である認可)である。使用されるプッシュメカニズムは、限定されないが、モバイル、ウェブ、またはデスクトッププラットフォームプッシュ通知サービス(例えば、ウェブソケット、Appleプッシュ通知サービス(APNS)、Googleクラウドメッセージング(GCM)およびアーバンエアシップ)と、持続的なポーリングに基づくデバイス−クラウド間接続またはロングポーリングに基づくデバイス−クラウド間接続または類似のデバイス−クラウド間接続と、メッシュ、スター、および/または他のトポロジのデバイス間メッセージングと、そして、SMSと、の任意の組み合わせを含み、デバイス110のタイプに基づいて変更されてもよい。
プッシュメカニズムは、(デバイス110が即座に、または後でACPコンテナ410を要求できるように)ACPコンテナ410を直接配信してもよいし、または更新されたACPコンテナ410をデバイス110に通知してもよい。デバイス110は、クラウド130が代わりのプッシュメカニズム(例えば、SMS)を使用していたり、プッシュメカニズムを使用していなかったり(例えば、デバイス110がACPコンテナ410の更新を周期的に問い合わせる)した場合、所定のタイプのプッシュメカニズム(例えば、APNS)を禁じるように構成されてもよい。別の実施形態では、システム100は、ACPコンテナ410の配信のために、常にプッシュメカニズムを使用してもよい。別の実施形態では、システム100は、ACPコンテナ410の配信のために、プッシュメカニズムを使用しないかもしれないし、いつもプッシュメカニズムを使用するとは限らない。別の実施形態では、システム100は、関連するデバイス内で(現行の、または現行ではない)認可を持つすべてのデバイス110にACPコンテナ410を配信するために、プッシュメカニズムを使用してもよい。別の実施形態では、システム100は、関連するデバイス内で、現行の認可のみを配信するようにACPコンテナ410を配信してもよい。別の実施形態では、現行の認可の範囲が、固定のまたは設定可能な所定の時間(例えば、クラウドごと、デバイスごと、SCMごと、機器ごと)内に失効した認可を含むように拡張されてもよい。例えば、配信される現行の認可は、最近2日間に失効した認可を含んでもよい。
図示の実施形態では、クラウド130は、現行の認可のない関連するデバイス110に現行のACPコンテナ410を配信することができる。別の実施形態では、クラウド130は、デバイス110がもはやいずれの現行の認可を持たない場合、第1のバージョンのACPコンテナ110を、現行の認可のない各々の関連するデバイス110に送信してもよい。
デバイス110は、特定のイベントが発生したとき、自動的に、SCM120のための(または、デバイス110が現行の認可を有するすべてのSCM120のための)、現在承認されているACP400をクラウド130から要求することができる。例示的なイベントには、アプリケーションが実行状態(例えば、開始、一時停止、再開、停止、または終了)を変更したとき、または定期的にSCM120および/またはクラウド130への接続が確立されたとき、またはユーザーによって要求されたとき、その直後のリセットが含まれる。1つまたは複数の代わりの実施形態では、上記の配信および/または要求トリガの組合せのすべての順列が実行されえる。
1つまたは複数のSCM120または1つまたは複数のデバイス110、もしくはそれらの任意の組み合わせは、クラウド130への通信リンクが利用できない環境に置かれてもよい。例えば、通信リンクが、存在しなくてもよく、または、別のデバイスまたは機器コンポーネント140を介して通信リンクをルーティングするなど、他のシステムコンポーネントを介して間接的に、を含む、何らかの手段によって利用できなくてもよい。そのような通信リンクの欠如は、永続的であっても、一時的であってもよい。
一実施形態では、主として、SCM120がデバイス110を認可する前にクラウド130と通信したことは厳密には必要とされないとの理由で、システム100のセキュリティモデルは、通信の欠如に著しく煩わされない。SCM120は、デバイス110がSCM120と通信する前のある時点でクラウド130と通信したことを期待するだけでよい。この状況で起こり得る1つの問題は、SCM120が、デバイス110のための認可を含むACP400を記憶していないと、SCM120がデバイス110との安全な通信リンクを確立することができないことがあることである。しかし、少なくとも部分的にACPコンテナ410の暗号化シーケンシングまたはレイヤーリング、またはその両方により、またACPコンテナ410はターゲットSCMによってのみ解読されるため、ACPコンテナ410は安全でない通信リンクによってSCM120に送信されてもよい。このように、SCM120は、SCM120が通信したことのないデバイス110から、および認可を所有していないデバイス110(または、他のシステムコンポーネント/ソース)から、を含め、任意の通信リンクを介して、任意のソースから更新されたACP400を受信してもよい。例えば、認可が取り消されたデバイス110が、更新されたACP400を含むACPコンテナ410を通信してもよい。
一実施形態では、デバイス110は、安全な通信リンクを確立する前に、更新されたACP400をSCM120に送信してもよい。デバイス110は、安全な通信リンクが確立された後に、更新されたACP400をSCM120に送信してもよい。更新されたACP400が接続されたデバイス110のための認可を含まない場合、このような既存の安全な通信リンクは終了されてもよい。一実施形態では、SCM120は、SCM120によって記憶されるバージョンよりも新しいバージョンのACPコンテナ410を有するシステムコンポーネントと安全な通信リンクを確立することを拒否してもよい。一実施形態では、SCM120は、SCM120によって記憶されるバージョンと一致しないバージョンのACPコンテナ410を有するシステムコンポーネントと安全な通信リンクを確立することを拒否しても良い。
B.ACPコンテナバージョンパッケージ
デバイス110が異なるACP400を有するかどうかを決定するために、SCM120がすべてのデバイス110からのすべての接続でACPコンテナ410を受信して処理する必要性を排除することを容易にするために、ACPコンテナ410の最初のNバイト(ここで、Nは必要とされる情報を得るために必要なバイト数であり、本明細書では、ACPコンテナバージョンパッケージ412としても知られる)は、(本明細書で記載される)デバイス110とSCM120との間の接続確立プロセスの一部として送信されても良く、SCM120は、必要とされる情報を得るために解読することができ、必要とされる情報は、ACPバージョン、および/またはインテグリティハッシュまたは署名、またはその両方など、比較に使用される他の属性を含むことができる。一実施形態では、本明細書で説明するように、ACPコンテナバージョンパッケージ412は、ACPコンテナ410の最初のNバイトとしてデバイス110に配信される(ここで、Nは必要とされる情報を得るために必要と考えられるバイト数である)。デバイス110が新しいバージョンのACP400を有するとSCM120が判定した場合、SCM120は、安全な接続が確立される前に、更新されたACP400を提供するためにデバイス110を利用してもよい。代替の実施形態では、SCM120は、デバイス110が、SCM120に記憶されたACP400よりも新しいものではないかもしれない、異なるACP400を有する場合、ACP更新プロセスを実行することを決定してもよい。SCM120が、そのSCM120と関連付けられる最初のオーナーデバイス110を待機している工場リセットモードでなく、ACPコンテナバージョンパッケージ412が提供されていない場合、デバイス110への接続は拒否されるか、または終了されるか、または両方であってもよい。この工場リセットモードの動作は、少なくともセクションX.Dで、本明細書においてさらに詳細に説明される。
デバイス110がSCM120との安全な接続を既に確立している場合、SCM120は、定期的にACPコンテナバージョンパッケージ412を送信するようデバイス110に要求し、そして、更新されたACP400が存在する場合には、デバイス110との接続を断ち、デバイス110が再接続する(斯くして、更新されたACP400を送信する)よう要求するか、もしくは、デバイス110に安全な接続を介して更新されたACP400を送信するよう要求する。追加的または代替的に、デバイス110が既にSCM120との安全な接続を確立している場合、デバイス110は、(ACPコンテナバージョンパッケージ412を伴って)更新されたACP400をSCM120に通知してもよく、SCM120が(本明細書に説明するように)その更新は適切であると判定したならば、デバイス110との接続を断ち、デバイス110が再接続する(斯くして、更新されたACP400を送信する)ことを期待するか、もしくは、デバイス110に安全な接続を介して更新されたACP400を送信するよう要求する。デバイス110が(例えば、ある期間内に)ACPコンテナバージョンパッケージ412を送信する要求に応答し損ねた場合、SCM120は、それから切り離してもよい。
一実施形態では、ACPコンテナバージョンパッケージ412は、少なくともセクションXIVで本明細書に記載された接続確立プロセスの一部としてSCMに配信するための別個の暗号化されたパッケージとして、クラウド130によって、大抵はデバイス110である送信者に配信されてもよい。ACPコンテナバージョンパッケージ412は、ACPコンテナコレクション414によって図5に示されているように、ACPコンテナ410と一緒に、またはACPコンテナ410の最初の部分として配信されてもよい。ACPコンテナ410とACPコンテナコレクション414は、本開示を通じて交換可能に使用されてもよいことに留意されたい。ACP400の配信が記述される場合、そのような配信は、ACPコンテナ410を介して達成されてもよいことにも留意されたい。
図5に示す一実施形態では、ACPコンテナバージョンパッケージ412は、ACPバージョン、大きな乱数またはシーケンス番号などの1つ以上の埋め込み識別子、およびメッセージ認証コードまたは署名を含むことができる。埋め込み識別子、メッセージ認証コード、署名、およびACP-Version-Key鍵の一部または全部のうちの1つ以上が、検証のためにACPコンテナ410内に格納されてもよい。ACPコンテナバージョンパッケージ412は、クラウド130によって生成され、本明細書で説明するようにターゲットSCM120に固有のACP-Version-Key鍵のような鍵で暗号化してもよい。代替的な実施形態では、ACPコンテナバージョンパッケージ412は、ACP-Version-Key鍵で暗号化され、次いで、Device-SCM-Key鍵またはSCM-Key鍵、もしくはその両方などの1つまたは複数の他の鍵でさらに暗号化されてもよい。
代替の実施形態では、ACPコンテナバージョンパッケージ412は、デバイス110によって以前に生成されまたは提供された、ACPコンテナ410内の対応する暗号鍵なしでデバイス110が所有する単なるACP400のACPバージョンである。一例として、この実施形態では、SCM120は、デバイス110によって提供されるバージョンを信頼し、ACPコンテナ410を要求するか否かを決定するために、そのバージョンを使用することができる。ACPバージョンは、デバイス110を介して共有暗号化鍵で暗号化されても、されなくてもよい番号または文字列によって定義され得る。
この代替の実施形態は、前述の実施形態よりもはるかに安全性が低く、デバイス110が望むACP400のいかなるバージョンも有しているとデバイス110が言うことができる潜在的な脆弱性を持つことが認識される。しかしながら、一般に、これが起こることはありそうもなく、そして最も可能性のある欠点は、デバイス110が(a)更新のためにACP400を送信しない(バージョンが現在のものより古いので)か、または(b)更新のためにACP400を送信する(バージョン番号が非常に高い場合は毎回処理後に拒否される)だろうということかもしれない。デバイス110がACP400を製造することは事実上不可能と考えられる。したがって、最も可能性の高い欠点は、SCM120が多くの余分な作業、すなわちサービス拒否(DoS)を背負い込むようになることである。
C.検証
SCM120がACPコンテナ410を受信すると、その各層を順番に復号し、インテグリティハッシュ(署名)を演算して比較することによってACPコンテナ410の内容が改変されておらず適切に復号されたことを保証し、提供されたACPコンテナバージョンパッケージ412およびその内容が、ACPコンテナ410の様々な層における対応する内容(例えば、ACPバージョンおよび他の任意の適用可能な属性)と一致することを検証し、そして、ACPコンテナ410が各層で処理されるときに、(列挙されていない)他の整合性およびデータの完全性/妥当性チェックを実行することにより、SCM120はACPコンテナ410の真正性を検証してもよい。
いずれかのポイントでACPコンテナ410の検証が失敗した場合、ACPコンテナ410は無効とみなされ、拒否(格納されない)されてもよい。新しいACPコンテナ410が受け入れられた場合(例えば、すべての検証が正常に完了し、新しいACP400が現在のACP400とは異なると看做される)、それはSCM120に記憶され、直ちにアクティブにされるか、または直ちに現在のACP400となる。
ACPコンテナ410を復号することは集中的なプロセスと考えられ、リアルタイムシステムにおける使用のため、より最適なデータ構造/データ構成が存在する可能性があるので、ACPコンテナ410(またはACP400)自体は、受信したときにSCM120のメモリ212に記憶されても、されなくてもよい。ACPコンテナ410またはACP400は、セキュアメモリ220、またはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などの同等のハードウェアモジュールに記憶されてもよい。ACPコンテナ410またはACP400は、その全体または一部だけが記憶されてもよい。あるいは、ACPコンテナ410またはACP400は、ROM内の代替暗号鍵で暗号化され(そして実行中に復号され、RAMに記憶され)てもよく、または、保護されたROM内に暗号化されずに記憶されてもよく、もしくは、上記のまたは他の技術のいくつかの組み合わせであってもよい。追加のまたは他の技術の例には、そのようなデータへのアクセスを防止でき、ハードウェアの障害物またはシールドを提供でき、物理的な障害物またはシールドを提供でき、JTAGおよび他のポートを無効化でき、攻撃ベクトルを排除するようにソフトウェアインターフェースを強化でき、信頼できる実行環境(ハードウェアまたはソフトウェア)を確立でき、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出できる、ソフトウェアベースの対処またはハードウェアベースの対処を含む。
代替の実施形態では、ACPコンテナ410の元の形式ではなく、ACPコンテナ410の内容が、ROMに暗号化されずに格納されてもよい。別の代替の実施形態では、ACPコンテナ410は、(すべての暗号化層とともに)受信時にROMに格納され、動作中に復号されてRAMに格納されてもよい。
D.ACPコンテナの取得−配信パス
本開示の一実施形態によるACPコンテナ410および/またはACPコンテナバージョンパッケージ412は、様々な方法で、デバイス110またはSCM120、またはその両方によって受信または取得され得る。
一実施形態では、ACPコンテナバージョンパッケージ412は、オプションで、デバイス110によってSCM120に提供される。ACPコンテナバージョンパッケージ412がSCM120に提供されない場合、SCM120は、カプセル化されたACP400のACPバージョンを決定するために、ACPコンテナ410の最初の層を取得して解読することが必要とされ得る。代替の実施形態では、ACPコンテナバージョンパッケージ412は、デバイス110によって提供されないかもしれない。この場合、デバイス110またはSCM120は、ACPコンテナ410の更新を通知または要求し、ACPコンテナ410全体を処理する必要があり得る。
別の代替実施形態では、デバイス110は、SCM120が現在所有しているACPコンテナバージョンパッケージ412をSCM120に要求してもよい。そして、デバイス110は、ACPコンテナバージョンパッケージ412において同定されたACP400のバージョンを、メモリに格納されたACP400のバージョンと比較し、ACPコンテナ410をSCM120に送信するか否かを決定してもよい。この実施形態では、ACPコンテナバージョンパッケージ412に対する要求は、少なくともセクションXIVで、本明細書で説明されるように、デバイス110とSCM120のための接続確立プロセスの一部として送信されないかもしれない。
一実施形態では、デバイス110は、ACPコンテナ410全体の完全なバージョンをSCM120に送信してもよい。一実施形態では、デバイス110は、ユーザー要求、クラウド要求、またはデバイスプロセス、またはそれらの任意の組み合わせに基づいてもよい、デバイス110の裁量でSCM120にACPコンテナ410を送信してもよい。一実施形態では、ACPコンテナ410は、利用可能な通信リンクを使用して、デバイス110に接続された機器コンポーネント140または他のアクセサリなどの、デバイス110以外のシステムコンポーネントによってSCM120に配信されてもよい。利用可能な通信リンクは、アプリケーションごとに、または異なる状況下で変化してもよく、物理的なメディア、無線リンク、有線リンク、またはそれらの任意の組み合わせであってもよい。
一実施形態では、ACPコンテナ410は、クラウド130を介してSCM120に直接配信されてもよい。追加的にまたは代替的に、ACPコンテナ410は、機器コンポーネント140または別のデバイスなどの代替および/または中間システムコンポーネントに配信され、その後、利用可能な通信リンクを使用してSCM120に配信されてもよい。利用可能な通信リンクは、状況に応じて変化してもよく、物理的なメディア、無線リンク、および有線リンクのうちの少なくとも1つとすることができる。
無節操なインターネット接続および部分的な更新が見逃される可能性による意図しない挙動を含む、部分的な更新と不整合なシステム状態となる潜在的なリスクがあるので、図示された実施形態において、完全な形態のACPコンテナ410がSCM120に送信されてもよい。例示的なリスクシナリオには、オーナーがデバイスAを追加し、その後デバイスBを取り除いた場合、SCM120において結果として得られた設定が、デバイスAおよびデバイスBのいずれもアクセスできないかもしれない状態が存在することが含まれる。言い換えると、最初の更新が見逃されたかもしれない。しかし、これらのリスクは、部分的な更新のバージョンと順序付けを追跡する属性を追加することによって、克服または低減され得る。
一実施形態では、ACPコンテナ410への部分的または増分的な更新はクラウド130から得てもよい。その更新は、認証の追加、削除、または変更、またはそれらの組み合わせ、および暗号鍵の循環の少なくとも1つを含んでもよい。一実施形態では、ACPコンテナ410への部分的または増分的更新がSCM120に送信されてもよい。代替の実施形態では、ACPコンテナ410は、SCMアイデンティティ設定パッケージおよびACP400などの、より小さな設定パッケージに分割されてもよい。
一実施形態では、送信されるACPコンテナ410のサイズを縮小することが必要であるか、または望ましい場合がある。そうするための1つのアプローチは、2つの特定のACPコンテナ410間の差異のみが送信される、デルタ更新を使用することである。ACPコンテナ410の多数のバージョンが存在し、デルタ更新イメージがACPコンテナ410の前後のバージョンに固有のものであるとすれば、デルタ更新イメージ(更新を実行するSCM120に送信されるイメージ)は、デルタ更新イメージをSCM120に送信するシステムコンポーネント(例えば、デバイス110)によって生成されてもよい。一実施形態では、デルタ更新イメージは、ACPコンテナ410をSCM120に送信するために使用されてもよく、その際、デルタ更新イメージは、デルタ更新イメージをSCM120に送信するシステムコンポーネント(例えば、デバイス110)によって生成される。一実施形態では、デルタ更新イメージは、ACPコンテナ410をSCM120に送信するために使用されてもよく、その際、デルタ更新イメージはクラウド130によって作成される。一実施形態では、デルタ更新イメージは、システム100内の他のメッセージおよび設定パッケージのために使用されてもよい。
追加的または代替的に、送信されるACPコンテナ410のサイズの縮小は、圧縮によって達成されてもよい。圧縮は、ACPコンテナ410を送信するクラウド130またはシステムコンポーネント(例えば、デバイス110)のいずれかによって実行されてもよい。一実施形態では、ACPコンテナ410をSCM120に送信するために圧縮が使用されてもよい。一実施形態では、圧縮およびデルタ更新イメージの両方が、いずれかの順序(最初に圧縮、次いでデルタ、または最初にデルタ、次いで圧縮)で、ACPコンテナ410をSCMに送信するために使用されてもよい。一実施形態では、システム100内の他のメッセージおよび設定パッケージのために圧縮が使用されてもよい。
一実施形態では、SCM120はクラウド130に接続してもよく、その場合、SCM120はACP400内に認可を格納せず、代わりに、適切なときまたは必要なときに、特定のデバイス110が認可されているか否かを判定するようクラウド130に要求する。例えば、クラウド130は、デバイス110のアイデンティティが認可されていることを判定するように要求されてもよい。デバイス110が認可を有しているならば、その場合、デバイス110のSCM120への接続の持続時間(またはメモリが許せばより長く)に渡り、認可がSCM120上にキャッシュされてもよい。追加的にまたは代替的に、ネットワーク待ち時間を短縮するために、認可は、ローカルサーバー(またはサーバーのセット)にキャッシュされてもよい。
一実施形態では、デバイス110に格納された特定のSCM120のためのACP400は、該当デバイス110のための認可のみを含んでもよい。追加的にまたは代替的に、SCM120は、複数のデバイス110からの認可をSCM120に格納された統合ACP400に併合してもよい。
一実施形態では、各SCM120は、複数のACP400を受信して記憶してもよく、その場合、各ACP400は、SCM120に対して発行されたすべてのセットの認可のサブセットを含む。これにより、多くのデバイス110が認可されている環境(例えば、数百人または数千人の従業員が特定のロックを解除する権限を与えられている建物アクセス管理システム、またはフリート環境)においてACP400が大きくなり過ぎるのを防ぐことができる。各サブセットACP400の内容は、ユーザーアカウントおよび/またはデバイス110の特定のセットに対する認可のみを含むことができる。例えば、一実施形態では、サブセットACP400は、各ユーザーアカウントに対して作成されてもよい(その場合、ACP400は、そのユーザーアカウントに関連付けられたデバイス110のみを含む)。例えば、別の実施形態では、サブセットACP400は、10個のユーザーアカウントの各セットに対して作成されてもよい。例えば、さらに別の実施形態では、サブセットACP400は、100個のデバイス110の各セットに対して作成されてもよい。サブセットACP400は、すべてのサブセットACPを含む合同ACPコンテナ410の一部、任意の数のサブセットACP400(例えば、変更されたサブセットACP400)を含む合同ACPコンテナ410、個別のACPコンテナ410(つまり、各サブセットACP400に対して1つ)、またはそれらの任意の組合せとして配信されてもよい。一実施形態では、各ACPコンテナ410は、各サブセットACP400に必要と考えられるバージョン情報を含む1つのACPコンテナバージョンパッケージ412を有してもよい。別の実施形態では、各ACPコンテナ410は、複数のACPコンテナバージョンパッケージ412を有してもよい。
V.代替パッケージの管理と配信
ACPコンテナ410と類似の意味、処理、およびエンコーディングを含む、ACPコンテナ410に関して本明細書で説明された1つ以上の実施形態に従って構成され生成されるSCM120のために定められた他のデータのパッケージが存在してもよい。その結果、別の設定(および他の)パッケージを利用することができ、類似の方法で管理および/または配信することができることを理解されたい。他のシステムコンポーネント(例えば、デバイス110または機器コンポーネント140)のために定められたパッケージも存在し得る。以下は、存在し得るパッケージの例である(そのいくつかは、本明細書でさらに詳細に説明される)。
1)アプリケーション設定
2)ファームウェア更新パッケージ
3)サブコンポーネント設定
4)機器プロトコル設定
5)機器モデル
6)ブラックリストパッケージ
7)システムログパッケージ
本明細書に記載されるセキュリティモデル/システムがマイクロローテーションシステムに適用される実施形態において、その例が、2015年2月12に出願され、「車両と通信するためのシステムおよび方法」と題する、J. Michael Ellisらの米国特許出願第14/620959、および2017年4月14日に出願され、「リアルタイムロケーションを確立するためのシステムおよび方法」と題する、Raymond Michael Stittの米国特許出願第15/488136号に記載されており、これらの開示は、その全体が参照により本明細書に組み込まれる。マイクロロケーションシステムの一実施形態に従って提供され得る情報の例には、以下が含まれる。
1)ゾーン構成または関連するデータは、ユーザーまたは機器140のオーナーの使用に関連すると考えられる、SCM120に対する1つまたは複数のエリアまたはスペースを識別することができる。例えば、ドアの5フィート以内のエリアまたはスペースは、ドアの操作に関連すると考えられてもよく、例えば、このゾーン内の存在がドアを介したアクセスを可能にするトリガとなってもよい。
2)監視装置の構成および配置または関連するデータは、SCM120と通信するため、およびSCM120に対して遠隔デバイス310を位置決めするための接続パラメータなど、図3に図示された実施形態に関連して説明した遠隔デバイス310の設定を識別することができる。
3)アルゴリズムチューニング設定または関連するデータは、SCM120に対するデバイス110の位置を決定する際に使用されるアルゴリズムのための1つ以上の補償係数を示すことができる。
4)アルゴリズムモデルまたは関連するデータは、SCM120に対するデバイス110の位置を決定する際に利用されるアルゴリズムを示すことができる。
VI.候補ACP
図示の実施形態では、クラウド130は、各SCM120のために、現に作動中のACP400のコピー(候補ACP)を保持してもよい。候補ACPは、変更がなされるたびにバージョンが変化するバーション管理の下で、ACP400のバージョンによって識別可能にされてもよい。例えば、新しいバージョンが作成されて、ACP400のバージョンは、変更が行われるたびに増分されてもよい。
オーナーアカウントの承認のために識別される新しい候補ACPが作成されたとき、オーナーアカウントデバイス110(および対応するユーザー10)の各々は、新しいACP400が承認のため作成されたことを、例えばプッシュ通知またはSMSを介して通知されてもよい。すると、ユーザー10は、承認のために、デバイス110において最新の候補ACPを取得することができる。ユーザー10は、オーナーユーザーアカウント(すなわち、SCM120のオーナーとして認可されているユーザーアカウント)に関連付けられたデバイス110のいずれかからの候補ACPを承認することができる。
一実施形態では、認可は特定のデバイス110に対してのみ(すなわち、ユーザーアカウントの代わりに)発行される。そのように、オーナーデバイス110の承認のために識別される新しい候補ACPが作成されたとき、オーナーデバイス110(および対応するユーザー10)は、新しいACP400が承認のため作成されたことを、例えばプッシュ通知またはSMSを介して通知され得る。すると、ユーザー10は、承認のために、デバイス110において最新の候補ACPを取得することができる。
一実施形態では、候補ACPは、他のオーナー10からの追加の変更を含んでもよく、その一部または全部は望ましくない可能性がある。その結果、ユーザー10は、(a)何も起こらない場合に、候補ACPを承認しないことによって候補ACPを拒絶するか、または(b)受諾可能になるまで候補ACPを編集し、変更をクラウド130に提出し(別の承認要求をオーナーデバイス10にプッシュする)、そして、ACPを承認する。編集、提出、および承認のステップは、デバイス110のユーザーインターフェースに組み込まれてもよい。候補ACPが拒絶された場合、その候補ACPが残り、将来の変更が、その拒絶されたバージョンに対して行われる可能性がある。
候補ACPへの編集が提出され、候補ACPのACPバージョンがもはや現在のACPバージョンではない場合、クラウド130は提出を拒絶し、評価のためデバイス110に、より最近の候補ACPを取得することを許可してもよい。例えば、候補ACPが承認プロセス中に別のデバイス110によって更新された場合、デバイス110における編集はより古いバージョンのACP400について行われた可能性があり、したがって、クラウド130は、デバイス110によって提出されたすべての変更を拒絶し、現在のバージョンのACP400に基づいて候補ACPを受諾して編集するための承認プロセスを再開する。
オーナーデバイス110を用いたユーザー10による候補ACPの承認後、または承認に応答して、候補ACPは、承認デバイス110のDevice-SCM-Key(非公開)鍵によって署名されてもよい。一実施形態では、候補ACPは、承認デバイス110に関連付けられたUser-SCM-Key鍵によってさらに署名されてもよい。別の実施形態では、候補ACPは、承認デバイス110に関連付けられたUser-SCM-Key鍵によって代わりに署名されてもよい。署名されたバージョンの候補ACPはクラウド130に提出されてもよく、クラウド130は、署名されたバージョンの候補ACPがクラウド130に記憶された現在のバーションの候補ACPに一致するか、および/または、適切なデバイス110がそれを承認(署名)したことを判定してもよい。オプションで、クラウド130は、オーナーデバイス110のユーザー10が二因子認証(2FA)を無効にしていないかどうかを判定し、もしそうであれば、クラウド130は、ユーザー10に2FAコードを(ユーザー10のデバイス110またはユーザー10と関連付けられた別のデバイスなどの1つ以上の選択された媒体を介して)送信してもよい。
デバイス110によってクラウド130に提出された署名されたバージョンの候補ACPが、クラウド130に記憶された現在のバーションの候補ACPと一致しない、または、適切なデバイス110によって承認されなかった場合、提出が拒絶されてもよい(そして、承認プロセスが繰り返されてもよい)。デバイス110によって提出された署名されたバージョンの候補ACPが、クラウド130内の現在のバーションの候補ACPと一致する場合、候補ACPは適切なデバイス110によって承認されたものとして識別され、ユーザー10は2FAを有効化せず、提出が受け入れられる。オプションで、ユーザーが2FAコードを受信した場合、ユーザーは、オーナーバイス110に2FAコードを入力してもよく、その後、オーナーデバイス110は、入力された2FAコードをクラウド130に提出する。そして、クラウド130は、提出された2FAが送信された2FAコードと一致することを検証してもよい。一致した場合、提出は、他の基準も満たされていれば受け入れられるものとみなされる。一致しない場合、提出は拒絶される(そして、承認プロセスが繰り返されてもよい)。代替の実施形態では、クラウド130は、少なくともセクションXII.Nにおいて本明細書に記載されるもの(例えば、網膜、顔、および/またはタッチID)のように、1つ以上のユーザー関連鍵の受領に基づいて受け入れを行ってもよい。
クラウド130が、署名されたバージョンの候補ACPのデバイス110による提出を受け入れることを決定した後、クラウド130は、承認されたものとして対応する候補ACPに印を付け、最終ACPコンテナ410を生成し、SCM120に関連する様々なデバイスにACPコンテナ410を配信する。一実施形態では、提出されたACPバージョンが候補ACPよりも古い場合、提出は拒絶される。
候補ACPアプローチは、システム110に、ACP400のブロックチェーン型の元帳と、複数のバーションのACP400が承認のために出現するか、または、一度にただ1つのバーションのACP400が承認のために出現する場合に生じ得る潜在的な同時実行またはブロッキングの問題を避けることが可能なアプローチとの両方を提供することができる。ACP400の元帳は検査履歴を提供することができ、そこでは、各編集結果は新しいバージョンになり、各バージョンは、特定のデバイス110に関連付けられる。
代替の実施形態では、ACP400を配信して承認する候補ACPプロセスが利用されないかもしれない。代わりに、承認を引き出す変更がなされるたびに、承認のための新しいACP400が生成されてもよい。追加的または代替的に、承認を引き出す変更がなされるたびに、新しいACP400の承認前のその後の変更が拒絶される場合に、承認のための新しいACP400が生成されてもよい。
VII.認可タイプ
一実施形態では、システム100は、1つ以上の認可として定義され、少なくともセクションIIにおいて本明細書で議論される、デバイス110に付随する1つ以上の権利を利用する、またはデバイス110に1つ以上の権利を関連付けることができる。認可は、認可タイプとして知られる、認可と関連付けられたタイプ(例えば、セクション1)およびVIIを参照)を有することができる。
認可は、デバイス110とSCM120との間で定義されるペアリングと関連付けることができる。開示の目的のために、認可および認可タイプは、1つのSCMと対になる1つのデバイス110に関連して説明されることを理解されたい。しかしながら、複数のデバイス110と複数のSCM120との間には、1つ以上のSCM120と関連付けられる複数のデバイス110を含む、ペアリングの可能な多数の組み合わせが存在する。
一実施形態では、認可タイプは、ユーザーアカウントが認可される各SCM120について、ユーザーアカウントに関連付けられてもよい。そして、認可タイプは、各デバイス110に対して作成され、ユーザーのアカウントに関連付けられる認可に流れることができる。例えば、ユーザーアカウントサービスは、ユーザーのデバイス110の各々に対する認可を作成し、特定のSCM120に対するユーザーアカウント認可タイプを、作成された認可のそれぞれに適用することができる。一実施形態では、ユーザーアカウントは、そのユーザーアカウントが認可される各SCM120に対して、ユーザーアカウントと関連付けられた認可に従って、それぞれ異なる時間および/または異なる条件下でそれぞれ有効となる、零またはそれ以上の認可タイプ(例えば、翌週はゲスト−管理者、その後、ゲスト)を有することができる。
さらに別の実施形態では、認可は、特定のデバイス110にのみ関連付けられてもよい。例えば、1つまたは複数のまたはすべての認可が、複数のユーザーアカウントに関連付けられていないかもしれず、および/または1つのユーザーアカウントに関連付けられたデバイス110の間で共有されないかもしれない。
認可タイプは、特定のデバイス110が特定のSCM120に対して有する役割のタイプを最終的に示すことができる。システム100において、認可タイプは、限定される訳ではないが、「別の権利を付与する」、「オーナーシップを移転する」、「誰かをオーナーにする」、「ゲストを追加する」、「他と共有する」、「特定のコマンドを発行する」のうちの1つ以上を行う権利を含む、特定の認可に関連付けられる認可権利を決定することもできる。代わりの実施形態では、認可タイプと認可権利は、例えば、ブロックファン権利の管理のため、少なくともセクションXXにおいて本明細書に記載された1つ以上の実施形態に従ってなど、別々に管理されてもよい。認可タイプは、特定のデバイス110(および、代理でそのユーザー10)が、特定のSCM120(および、代理でSCM120と通信する機器コンポーネント)に関して実行できる様々なアクションを制御することができるので、認可タイプはセキュリティモデルの有用な一面であり得る。例示的な認可タイプは、開示のために以下に列挙され、オーナー認可タイプ、ゲスト−管理者認可タイプ、ゲスト認可タイプ、バレット認可タイプ、および組織認可タイプを含むが、これらに限定されない。
A.オーナー
オーナー認可タイプは、所定のSCM120に対して完全な権限を持つユーザーアカウントおよび/またはデバイス110のために確保されてもよい。オーナー認可タイプを持つユーザーアカウントは、オーナーアカウントとして知られる。オーナー認可を有するデバイス110は、オーナーデバイス110として知られる。各アカウントおよび/またはデバイス110は、所定のSCM120に対して最大1つのオーナー認可を関連付けられてもよい。しかし、SCM120は、複数のオーナーアカウントおよび/またはデバイス110と関連付けられてもよい。一実施形態では、所定のSCM120に対するオーナーアカウントおよび/またはデバイス110は、同じSCM120に対して他の有効な認可を有していないかもしれない。他の認可が発行された後に、アカウントおよび/またはデバイス110がオーナー認可を発行された場合、少なくともセクションVIIIにおいて本明細書に記載されている認可発行方法に従ってなど、他のすべての認可が取り消されてもよい。
代替の実施形態では、SCM120は、最大1つのオーナーアカウントを有することができる。
代替の実施形態では、SCM120は、最大1つのオーナーデバイスを有することができる。
図1の図示された実施形態では、オーナーアカウントおよび/またはデバイス110は、所定のSCM120に対する任意の認可を検分、発行(作成)、変更、および取り消し(削除)することができる。オーナーアカウントおよび/またはデバイス110は、SCM120を新しいアカウントおよび/またはデバイス110に移すことができ、それによって所有者アカウントおよび/またはデバイス110から発生されたSCM120のためのすべての認可を取り消し、そして、対象とするアカウントおよび/またはデバイス110に対して、それぞれ、オーナー認可を作成することができる。一実施形態では、オーナーアカウントおよび/またはデバイス110は、オーナーアカウントおよび/またはデバイス110が所定のSCM120に対するすべての認可変更を承認しなければならないように構成されてもよい。ユーザー10は、変更のタイプに依存して、関与する必要があってもよいし、関与する必要が無くてもよい。一実施形態では、任意のオーナーアカウントおよび/またはデバイス110は、認可変更を承認してもよい。アカウントおよび/またはデバイス110のオーナー認可が取り消されると、そのアカウントおよび/またはデバイス110から生じたすべての認可も取り消されてもよい。
代替的な実施形態では、アカウントおよび/またはデバイス110のオーナー認可が取り消されたとき、そのアカウントおよび/またはデバイス110から生じたすべての認可が、SCM120に対する別のオーナーアカウントおよび/またはデバイス110、または、ゲスト−管理者アカウントおよび/またはデバイス110に移動されてもよい。
本明細書で論じるように、認可は、その認可がオーナー認可タイプを含むかどうかを含む、1つ以上のアクセス属性に関連付けることができる。発行された認可についてのアクセス属性を制限または変更する修正は、アクセス属性を含む、すべての発行された認可(制限または変更されるアクセス属性に基づいて発行されたすべての認可を含む)に適用されてもよい。例えば、オーナー認可タイプまたはアクセス属性が変更された場合、このオーナー認可タイプから発行されたいかなる認可も、同様の方法で修正されてもよい。代替実施形態では、発行する認可にアクセス属性を限定する修正(例えば、開始日/終了日の変更)は、発行する認可のアクセス属性に基づいて、発行済みの認可のいずれにも影響を及ぼさないかもしれない。
一実施形態では、システム100内のSCM120のすべてまたはサブセットは、工場リセット状態にあるときを除いて、SCM120のそれぞれが少なくとも1つのオーナーアカウントおよび/またはデバイス110を有するように構成されてもよく、その場合、SCM120、その最初のオーナーアカウントおよび/またはデバイス110の割り当てを待つ間、過渡的な状態にある。全ての実施形態がこのように構成されるわけではないことを理解されたい。少なくとも1つのオーナーアカウントおよび/またはデバイス110が所定のSCM120に関連付けられた後、その少なくとも1つのオーナーアカウントおよび/またはデバイス110が、所定のSCM120に関連付けられたままであってもよい。一例として、所定のSCM120が新しいオーナーアカウントおよび/またはデバイス110に移されない限り、所定のSCM120に対する最終オーナー認可は取り消されないことがある。代替的な実施形態では、SCM120に対する最終のオーナー認可は取り消されてもよく、その最終のオーナー認可が取り消されたとき、SCM120は工場リセットモードに入る。
一実施形態では、オーナー認可が作成されると、オーナー認可は別の認可タイプに変更することはできない。代替の実施形態では、オーナー認可が任意の他の認可タイプに変更されてもよい。別の認可タイプへの変更は、以前に発行されたがもはや許可されない認可との結果をもたらしてもよい。これらの認可は、自動的にまたは手動で、適用可能な認可を持つ代わりのアカウントおよび/またはデバイス110に移動されてもよいし、または取り消されてもよい。
B.ゲスト−管理者
ゲスト−管理者認可タイプは、所定のSCM120に対してほぼ完全な権限を持つアカウントおよび/またはデバイス110に関連付けることができる。ゲスト−管理者認可を有するデバイス110は、ゲスト−管理者デバイス(または、ゲスト認可タイプに関して動作上の違いがない場合にはゲストデバイス)として知られる。ゲスト−管理者認可タイプのユーザーアカウントは、ゲスト−管理者アカウント(または、ゲスト認可タイプに関して動作上の違いがない場合はゲストアカウント)として知られる。各アカウントおよび/またはデバイス110は、所与のSCM120に対して最大1つのゲスト−管理者認可を有することができる。しかし、SCM120、複数のゲスト−管理者アカウントおよび/またはデバイスを有することができる。所定のSCM120に対するゲスト管理アカウントおよび/またはデバイス110は、同じSCM120に対して他の有効な認可を有していないかもしれない。一実施形態では、他の認可がすでに発行された後に、アカウントおよび/またはデバイス110がゲスト−管理者認可を発行された場合、少なくともセクションVIIIにおいて本明細書に記載されている認可発行方法に従ってなど、他のすべての認可が取り消されてもよい。
代替の実施形態では、各アカウントおよび/またはデバイス110は、所定のSCM120に対して零またはそれ以上のゲスト−管理者認可を有してもよい。別の代替実施形態では、各アカウントおよび/またはデバイス110が、同じSCM120に対する零またはそれ以上の他の許容される認可を発行されてもよい。さらに別の代替実施形態では、アカウントおよび/またはデバイス110は、他の認可が既に発行されている場合、ゲスト−管理者認可を発行されないかもしれない。またさらに別の代替実施形態では、アカウントおよび/またはデバイス110が、他の認可が既に発行された後にゲスト− 管理者認可を発行された場合、少なくともセクションVIIIにおいて、本明細書に記載されている認可発行方法に従ってなど、冗長または許容されない認可が取り消されてもよい。
図1の図示された実施形態では、ゲスト−管理者アカウントおよび/またはデバイス110は、非オーナー認可を発行(作成)することができるが、それらが所定のSCM120に対して発行した(または発行された)認可を、検分、修正、および取り消し(削除)のみすることができる。ゲスト−管理者アカウントおよび/またはデバイス110は、限定されたアクセス属性を有する認可を発行されえる。例えば、ゲスト−管理者アカウントおよび/またはデバイス110は、限定された有効期限の認可を発行されることができる。
ゲスト−管理者アカウントおよび/またはデバイス110は、ゲスト−管理者アカウントおよび/またはデバイス110の認可よりも広範なアクセス属性を有する認可を発行しないかもしれない。一例を提供するために、ゲスト−管理者アカウントおよび/またはデバイス110は、ゲスト−管理者認可タイプと関連付けられた有効期限外の有効期限を有する認可を発行しないかもしれない。
ゲスト−管理者アカウントおよび/またはデバイス110の認可アクセス属性がさらに制限されるように変更された場合、ゲスト−管理者アカウントおよび/またはデバイス110によって発行された認可は、相応して、許容可能なままであるように変更されてもよいし、または取り消されてもよい。一実施形態では、アカウントおよび/またはデバイス110のゲスト−管理者認可が取り消されると、そのアカウントおよび/またはデバイス110からのゲスト−管理者認可に由来するすべての認可も取り消される。SCM120のためのゲスト−管理者アカウントおよび/またはデバイス110は、同じSCM120のために、それ自体(すなわち、同じアカウントおよび/またはデバイス110)への認可を発行しないかもしれない。
代替の実施形態では、SCM120に対するゲスト−管理者アカウントおよび/またはデバイス110は、同じSCM120のために、それ自体(すなわち、同じアカウントおよび/またはデバイス110)に認可を発行してもよい。一実施形態では、ゲスト−管理者認可は、限定されたアクセス属性を有さないかもしれない。一実施形態では、発行アカウントおよび/またはデバイス110(例えば、オーナーアカウントおよび/またはデバイス110)から認可を発行されたゲスト−管理者アカウントおよび/またはデバイス110は、発行アカウントおよび/またはデバイス110の裁量で、所定のSCM120に対する、発行アカウントおよび/またはデバイス110から認可を発行された、発行アカウントおよび/またはデバイス110を包含または除外する、他のアカウントおよび/またはデバイス110に発行された認可を検分することができる。代替の実施形態では、アカウントおよび/またはデバイス110のゲスト−管理者認可が取り消されると、アカウントおよび/またはデバイス110のゲスト−管理者認可に由来するすべての認可が、SCM120に対する、別のオーナーアカウントおよび/またはデバイス110、またはゲスト−管理者アカウントおよび/またはデバイス110に移動されてもよい。
一実施形態では、ゲスト−管理者アカウントおよび/またはデバイス110は、発行アカウントおよび/またはデバイス110(例えば、オーナーアカウントおよび/またはデバイス110)による承認のため、認可変更要求を提出してもよい。
一実施形態では、一旦、ゲスト−管理者認可が作成されると、そのゲスト−管理者認可は別の認可タイプに変更されることはできない。一実施形態では、ゲスト−管理者認可は任意の他の認可タイプに変更されてもよいが、それは、もはや許容されない、ゲスト−管理者認可から発行された1以上の認可をもたらすかもしれない。そのような認可は、自動的にまたは手動で、適用可能な認可を持つ代わりのアカウントおよび/またはデバイス110に移動されてもよいし、もしくは取り消されてもよい。
C.ゲスト
ゲスト認可タイプは、所定のSCM120に対する限定された権限を有するアカウントおよび/またはデバイス110に関連付けられてもよい。ゲスト認可を有するデバイス110は、ゲストデバイス110として知られる。ゲスト認可タイプを有するユーザーアカウントは、ゲストアカウントとして知られる。各アカウントおよび/またはデバイス110は、所定のSCM120に対して、零またはそれ以上のゲスト認可を有してもよく、SCM120は、複数のゲストアカウントおよび/またはデバイス110を有することができる。所定のSCM120のゲストアカウントおよび/またはデバイス110は、同じSCM120に対して有効なオーナーまたはゲスト−管理者認可を持たなくともよい。他の認可が既に発行された後にアカウントおよび/またはデバイス110がゲスト認可を発行された場合、少なくともセクションVIIIにおいて本明細書に記載されている認可発行方法に従ってなど、冗長または許容されない認可が取り消されてもよい。
代替の実施形態では、各アカウントおよび/またはデバイス110は、所定のSCM120に対して最大1つのゲスト認可を有してもよい。別の代替実施形態では、アカウントおよび/またはデバイス110は、他の認可が既に発行された後にゲスト認可を発行された場合、少なくともセクションVIIIにおいて本明細書に記載された認可発行方法に従ってなど、他のすべての認可が取り消されてもよい。さらに別の代替実施形態では、各アカウントおよび/またはデバイス110は、同じSCM120に対して零またはそれ以上の他の許容可能な認可を発行されてもよい。またさらに別の代替実施形態では、アカウントおよび/またはデバイス110は、他の認可が既に発行されている場合、ゲスト認可を発行されないかもしれない。さらに別の代替実施形態では、アカウントおよび/またはデバイス110は、他の認可が既に発行された後にゲスト認可を発行される場合、少なくともセクションVIIIにおいて本明細書に記載される認可発行方法に従ってなど、冗長または許容されない認可が取り消されてもよい。
図1の図示の実施形態では、ゲストアカウントおよび/またはデバイス110は、バレット認可を発行(作成)することができるが、所定のSCM120に対してゲストアカウントおよび/またはデバイス110が発行された認可を、検分、および取り消し(削除)のみすることができる。ゲストアカウントおよび/またはデバイス110は、限定されたアクセス属性を有する1つ以上の認可を発行されてもよい。例えば、ゲストアカウントおよび/またはデバイス110は、限定された有効期限の認可を発行されてもよい。
ゲストアカウントおよび/またはデバイス110は、ゲストアカウントおよび/またはデバイス110の認可よりも広範なアクセス属性を有する認可を発行しないかもしれない。一例を提供するために、ゲストアカウントおよび/またはデバイス110は、ゲストアカウントおよび/またはデバイス110に提供されたゲスト認可タイプと関連付けられた有効期限外の有効期限を有する認可を発行しないかもしれない。
ゲストアカウントおよび/またはデバイス110の認可アクセス属性がさらに制限されるように変更された場合、ゲストアカウントおよび/またはデバイス110によって発行された認可は、相応して、許容可能なままであるように変更されてもよいし、または取り消されてもよい。アカウントおよび/またはデバイス110のゲスト認可が取り消されると、そのゲスト認可に由来するすべての認可も取り消されてもよい。
代替の実施形態では、ゲストアカウントおよび/またはデバイス110は、それ自体のゲスト認可を取り消すことができない。SCM120のためのゲストアカウントおよび/またはデバイス110は、同じSCM120のために、それ自体(すなわち、同じアカウントおよび/またはデバイス110)への認可を発行しないかもしれない。
代替の実施形態では、発行アカウントおよび/またはデバイス110(例えば、オーナーアカウントおよび/またはデバイス110)から認可を発行されたゲストアカウントおよび/またはデバイス110は、発行アカウントおよび/またはデバイス110の裁量で、所定のSCM120に対する、発行アカウントおよび/またはデバイス110から認可を発行された、発行アカウントおよび/またはデバイス110を包含または除外する、他のアカウントおよび/またはデバイス110に発行された認可を検分することができる。代替の実施形態では、アカウントおよび/またはデバイス110のゲスト認可が取り消されると、アカウントおよび/またはデバイス110のゲスト認可に由来するすべての認可が、SCM120に対する、別のオーナーアカウントおよび/またはデバイス110、またはゲスト−管理者アカウントおよび/またはデバイス110に移動されてもよい。一実施形態では、ゲストアカウントおよび/またはデバイス110は、発行アカウントおよび/またはデバイス110による承認のため、認可変更要求を提出してもよい。
図示の実施形態では、ゲスト認可が作成された後、そのゲスト認可は別の認可タイプに変更されることはできない。代替実施形態では、ゲスト認可は、任意の他の認可タイプに変更されてもよいが、それは、もはや許容されない、ゲスト認可から発行された1以上の認可をもたらすかもしれない。そのような1以上の認可は、自動的にまたは手動で、適用可能な認可を持つ代わりのアカウントおよび/またはデバイス110に移動されてもよいし、もしくは取り消されてもよい。
D.バレット
バレット認可タイプは、所定のSCM120に対する限定された権限を有するアカウントおよび/またはデバイス110のための特別な目的の認可タイプと考えることができる。バレット認可を有するデバイス110は、バレットデバイスとして知られる。バレット認可タイプを有するユーザーアカウントは、バレットアカウントとして知られる。各アカウントおよび/またはデバイス110は、所定のSCM120に対して零またはそれ以上のバレット認可を有してもよい。しかし、SCM120は、複数のバレットアカウントおよび/またはデバイス110を有することができる。所定のSCM120のバレットアカウントおよび/またはデバイス110は、同じSCM120に対して有効なオーナー認可、ゲスト−管理者認可、またはゲスト認可を有さないかもしれない。他の認可が既に発行された後に、アカウントおよび/またはデバイス110がバレット認可を発行された場合、少なくともセクションVIIIにおいて本明細書に記載されている認可発行方法に従ってなど、冗長または許容されない認可が取り消されてもよい。
バレットアカウントおよび/またはデバイス110は、バレットアカウントおよび/またはデバイス110が所定のSCM120に対して発行された認可を検分のみすることができる。バレットアカウントおよび/またはデバイス110は、限定されたアクセス属性を持つ認可を発行されてもよい。例えば、バレットアカウントおよび/またはデバイス110は限定された有効期限を持つ認可を発行されてもよい。
代替の実施形態では、バレット認可は存在しないかもしれない。別の代替実施形態では、限定された数のバレット認可が、所定のSCM120のアカウントおよび/またはデバイス110に提供されてもよい。その数は固定数(例えば、1)であってもよい。さらに別の代替実施形態では、バレット認可は、バレットアカウントおよび/またはデバイス110と同じエンティティ(例えば、バレットサービス組織)に属し、または関連する別のアカウントおよび/またはデバイス110に転送されてもよい。
一実施形態では、何らかのイベントが発生したとき(例えば、非バレットアカウントおよび/またはデバイス110がSCM120に接続されたか、または機器コンポーネント140が、SCM120はある合理的な閾値を超えて移動したことを示すなど)、バレット認可は自動的に取り消されてもよい。
図示された実施形態では、バレット認可が作成された後、そのバレット認可は別の認可タイプに変更されることはできない。代替的に、バレット認可が任意の他の認可タイプに変更されてもよいが、それは、もはや許容されない、バレット認可から発行された1以上の認可をもたらすかもしれない。そのような認可は、自動的にまたは手動で、適用可能な認可を持つ代わりのアカウントおよび/またはデバイス110に移動されてもよいし、もしくは取り消されてもよい。
E.組織
一実施形態では、組織認可タイプは、アカウントおよび/またはデバイス110のセットが、1つ以上の他のアカウントおよびまたはデバイス110に、組織と関連づけられた1つ以上のSCM120に対するオーナー認可を付与するための能力を備えてもよい。
F.転送
一実施形態では、本明細書で説明するように、転送認可タイプは、SCM120のオーナーシップ転送プロセスの間に使用されてもよい。この認可タイプは過渡的である。それは、適切な承認および取り消しが実行されるように、そのような転送が望まれていることを信号で送るために使用され、承認に基づいて、オーナー認可が対象アカウント(およびそのデバイス110)に適用されてもよい。
G.他の潜在的に動的なタイプ
一実施形態では、システム100での使用に利用可能な認可タイプは動的であってもよい。認可タイプのセットは、実行時に、実行時前の設定を介して、またはプログラムによって変更してもよい。例えば、以前にシステム100で使用されなかった新しいタイプの認可タイプが、アカウントおよび/またはデバイス110およびSCM120に対してACP400を介して導入されてもよい。
H.認可ツリー
本明細書に記載される1つ以上の実施形態によれば、特に1つ以上の認可タイプに関して、認可タイプおよび関連付けられたアクセス権は、第1及び第2のアカウントおよび/またはデバイス110に与えられた権利に応じて、第1のアカウントおよび/またはデバイス110から第2のアカウントおよび/またはデバイス110などに付与されてもよいことを理解されたい。このようにして、新しい認可が付与され、古い認可が取り消されたり変更されたりするので、時間の経過とともに動的に変化する認可のツリーが生成されてもよい。このようなツリーの2つのタイプの例が、図6および図7の図示の実施形態に示されている。
図6および図7の図示の実施形態では、システム100内に複数のSCM120が存在し、それぞれ、1つ以上のオーナーアカウントおよび/またはデバイス110に関連付けられている。1つ以上のオーナーアカウントおよび/またはデバイス110は、ゲスト−管理者アカウントおよび/またはデバイス110、ゲストアカウントおよび/またはデバイス110、およびバレットアカウントおよび/またはデバイス110のための認可を、直接的または間接的に提供している。
VIII.認可発行シーケンス
図1の図示された実施形態では、ユーザー10は、ユーザーアカウント(そして、ユーザーアカウントサービスを介して、デバイス110)および/またはデバイス110に、複数のSCMに対する様々なタイプの認可を発行し、変更し、および取り消すことができる。セキュリティモデルは、(認可発行要求と結果として生じるACP400の両方を受け入れるために)ユーザー10を含む、認可を発行するための複数のシステムコンポーネントの関与を利用することができる。認可の変更と取り消しは、必ずしもユーザーの関与を必要としないかもしれない。
一実施形態による1つ以上の認可を発行する方法が、図8に示され、全体として800で表されている。その方法800は、ステップ801)認可を発行する権利を持つユーザー10が、特定のSCM120に対する受信ユーザーアカウントおよび/またはデバイス110に、(その権利を持つ)デバイス110を使用して認可発行要求を送信する、ステップ802)受信ユーザーは、それぞれのデバイス110(例えば、それぞれのユーザーアカウントに関連付けられた任意のデバイス110、特定のデバイス110)を使用して認可発行要求を受け入れる、ステップ803)SCM120に対するオーナーデバイス110が、発行された認可から生じるACP400に対する変更を受け入れる、を含む様々なステップを含んでいる。
上記に加えて、本明細書に記載されるように、2因子認証(2FA)が、上記の1つ以上のステップにおいて、システムレベル要件として追加されてもよい。ただし、理解を容易にするために、2FAメッセージは上記のシーケンス図には示されない。適用可能なユーザーアカウントに関連付けられたいずれかのデバイス110を使用して、2因子認証要求が完了されてもよいことに留意されたい。
一実施形態では、第1のユーザー10が、既存のユーザーアカウントおよび/またはOEM(Original Equipment Manufacturer)クラウドアカウントを持たない第2のユーザー10に認可発行要求を送信するための通信経路が提供される。通信経路は、電子メールおよび/またはSMS通信に少なくとも部分的に基づいてもよい。第2のユーザー10に配信されるメッセージは、第2のユーザー10のデバイス110のためのアプリケーションを入手すること(適切な場合)、またはウェブサイトを訪問して、ユーザーアカウントおよび/またはOEMアカウントを作成すること、そして、要求を受け入れることを第2のユーザー10に要求してもよい。
1つ以上の実施形態に関連して本明細書で説明するように、オーナーシップ移転要求は、典型的な認可発行プロセスの特殊なケースと考えることができる。これは、オーナーシップ移転要求が、所定のSCM120に対する他のすべての認可の取り消しを伴う、オーナー認可の発行をもたらすためである。図8の図示された実施形態では、新しいオーナーおよび以前のオーナーの両方がオーナーシップ移転要求を承認することを要求されてもよく、ただし、オーナーシップ移転要求の性質上、移転要求が承認されるまで候補ACPは変更され得ない。
少なくともステップ803に示す図示の実施形態では、オーナーアカウントおよび/またはデバイス110(および、代理でそのユーザー10)は、SCM120に対する任意のユーザー10によって開始されたACP400への変更を承認することができる。オーナーアカウントおよび/またはデバイス110が、非オーナー認可(例えば、ゲスト)を発行する場合、発行ユーザー10は、ACP400の承認プロセスに関与することは必要とされないかもしれない。ユーザー10の関与が必要とされない(例えば、2FAではない、または承認ボタンの押下が必要とされない)場合でさえ、オーナーデバイス110は、(例えば、ユーザーの介入なしにバックグラウンドで処理を実行することによって)関与してもよい。
ユーザーの関与を必要としないことが望ましい他の認可および/または認可処理が存在してもよい。本明細書で説明される認可および/または認可処理のいずれも、ユーザーの関与を必要としないこのような方法に適合されてもよい。ユーザーが開始した何かの承認にユーザー10が関与することを要求しないことによって、ユーザーエクスペリエンスを改善することが望ましい。ユーザー10が、彼らのユーザーアカウントに関連する複数のデバイス110を有する場合、たとえ彼らが変更を開始したとしても、別のユーザーデバイス110からの承認を要求することが望ましい。代替的な実施形態では、ACP400への変更の範囲は、a)ユーザー10がSCM120ための承認に関与することを要求され得るか、またはb)SCM120の承認プロセスへのユーザー10の関与が、新しいオーナー認可が発行されるときのみに必要とされ得るように、制限されてもよい。新しいオーナー認可が発行されるとき、ユーザーの関与が必要とされてもよい。2FAが有効化されないか、または承認ボタンの押下が有効化されない場合など、ユーザーの関与が必要とされない場合も、オーナーデバイス110は依然として(例えば、ユーザーの介入なしにバックグラウンドで処理を実行することによって)関与してもよい。
代替実施形態では、ACP400への変更は委任されてもよい。本明細書で論じるように、オーナーアカウントおよび/またはデバイス110は、SCM120のためにACP400を承認するように構成されてもよい。オーナーアカウントおよび/またはデバイス110は、ACP400の承認権限を、認可を発行しようと試みている別のアカウントおよび/またはデバイス110に委任してもよい。承認権限は、オーナーアカウントおよび/またはデバイス110が利用可能な認可タイプのサブセットに限定されてもよく、または利用可能なすべての認可タイプを含んでもよい。例えば、オーナーCがゲストAにゲスト認可、およびゲスト認可を委任する権限を与えた場合、ゲストAはオーナーCの関与なしでゲストBにゲスト認可を発行することができる。別の例では、ACP400への他の変更が存在しない場合、承認権限が委任されてもよい。そうでなければ、発行連鎖内のオーナーアカウントおよび/またはデバイス110、または非オーナー発行アカウントおよび/またはデバイス110が、ACP400への変更を承認してもよい。
デバイス110などのシステムコンポーネントがジェイルブレイクされたと判定された場合、システムコンポーネント(または、異常を検出したシステムコンポーネント)は、クラウド130に警報を出してもよい。ジェイルブレイクされたデバイス110、または他のコンポーネントは、そのオペレーティングシステムまたはそのインフラストラクチャソフトウェア(例えば、標準ライブラリまたはアプリケーション)が危険にさらされているコンポーネントとして定義されえる。クラウド130は、ジェイルブレイクされたデバイス110が盗まれ、悪意のある使用が意図されているとみなし、したがって、ジェイルブレイクされたデバイス110に対して、またはジェイルブレイクされたデバイス110によって発行された認可を取り消してもよい。一実施形態では、クラウド130は、ジェイクブレイクされたデバイス110に関連するユーザーアカウントに対して、またはユーザーアカウントによって発行された認証を取り消してもよい。
図8の図示された実施形態は、認可発行要求の送信、認可発行要求の受け入れ、および発行された認可から生じるACP400への変更の受け入れを含む、本明細書で強調されるいくつかのステップを含む(ステップ801、802、803)。例示の実施形態は、これらのステップのうちの1つ以上が、1つ以上の追加のステップを含み得ることを強調する。
例えば、認可発行要求を送信するためのステップ801は、現在、オーナーとして分類されているユーザーAによって定義されてもよく、ユーザーAのデバイスAはオーナーデバイス110である。ユーザーBおよびデバイスBとラベル付けされた彼女のデバイス110は、認可の発行の対象となり得る。ユーザーAは、ユーザーBのユーザー名(例えば、「B」)を要求することができ、ユーザーBはそれに応答することができる(ステップ821、822)。ユーザーAは、ユーザーBにゲスト認可を発行するように彼女のデバイスAに指示することができる。デバイス110は、その要求をクラウド130に送信する(ステップ823)。クラウド130は、ユーザーAのデバイス110が所定のSCM120に対する認可を発行する権限を与えられていることを検証する(ステップ824)。一実施形態では、認可は、ユーザーBのすべてのデバイス110に適用される。別の実施形態では、ユーザーBが複数のデバイス110を有する場合、ユーザーAは、ユーザーBのデバイス110のどれに認可が送信されるかを選択することができる(ステップ825)。クラウド130は、ユーザーBのデバイス110の1つに、認可を受け入れるか拒否するように要求する(ステップ826)。ユーザーBが認可を受け入れる場合、ユーザーBのデバイス110はDevice-SCM-Key鍵を生成し、クラウド130が候補ACPを更新するために使用する、関連部分(例えば公開鍵)をクラウド130に送信する(ステップ827)。更新された候補ACPの存在は、(デバイス110を介して)ユーザーAに通信され、ユーザーAは、候補ACPの変更を受け入れる。ユーザーAによって使用されるデバイス110は、変更を承認するため、承認した候補ACPに署名し、それをクラウド130に送信する(ステップ828)。この承認ステップは、たとえ発信者がオーナーデバイスであっても、変更がオーナーシップの移転である場合、一実施形態では要件と見なすことができる。
クラウド130は、署名された候補ACPを検証し、確定ACP400を生成し、すべての適用可能デバイス110にその存在を知らせる(ステップ829)。デバイス110は、(例えば、ACPコンテナ410、ACPコンテナコレクション414、または他の媒体を介して)更新されたACP400を取得する(ステップ830)。ユーザーBのデバイス110は、更新されたACP400を(例えば、ACPコンテナ410または任意の他の媒体を介して)SCM120に送信する(ステップ831)。
IX.ユーザーアカウントモデルとデバイス登録
一実施形態では、システム100は、ユーザー名およびパスワードベースのアカウントモデルなどのアカウントモデルを介してサービスにアクセスすることをもって、ユーザーがよく知っていることを利用してもよい。追加的に、または代替的に、システム100は、デバイス110のアイデンティティに基づいて、鍵ベースの識別システム(すなわち、暗号アイデンティティ)を利用することができる。鍵ベースの識別(すなわち、暗号アイデンティティ)は、ユーザーにある程度の匿名性を提供するとともに、ブロックチェーンの元帳に従ってACP400への変更または取引の追跡を容易にすることができる。非対称暗号/暗号アイデンティティの一部としての匿名公開鍵、および取引を追跡するブロックチェーンの元帳を使用して、ユーザーが識別され、認証される暗号化システムと同様に、および少なくとも部分的に基づいて、システム100は、認可発行シーケンスにおける鍵としてデバイスアイデンティティを利用することができる。デバイスアイデンティティはデバイスの1つ以上の特性に基づいて動的であっても固定であってもよく、アカウントおよびパスワードによってユーザー10の識別、追跡、および認証を潜在的に回避する。システム100は、デバイス110の物性を機械的鍵の物性と実質的に同等視することができ、デバイス110のアイデンティティをユーザー10の代理とみなすことができる。
システム100で利用されるデバイスアイデンティティは、ユーザー10と機器140のアイデンティティを両方とも保護するため、並びに、セキュリティ侵害の発生時にハッカーがその情報を取得することを実質的に防ぐために、様々なシステムコンポーネントからできるだけ多くのユーザーおよび機器識別情報を意図的に省略するように定義されることができる。しかしながら、ユーザー10によりデバイス110を集団とするためのビジネス及びユーザーエクスペリエンスを容易なものとするために、デバイス110が登録されるとき、各デバイス110がクラウド130(ユーザーアカウントサービス)によってにクラウドユーザー識別子(Cloud-User-ID)を提供されてもよい。
Cloud-User-IDは、同じOEMユーザー識別子(OEM-ED)に関連付けられた各デバイスについて同じであってもよい。その結果、特定のCloud-User-IDに関連付けられたデバイス110のセットを決定することが可能となる。クラウド130のユーザーアカウントサービスは、安全なデータベースアプローチを使用して、Cloud-User-IDに対して抽象的に(OEMユーザー識別子を介して)OEMユーザーアカウントを結び付けることができ、このマッピングを格納し実行するクラウド130のサービス(ユーザーアカウントサービス)は、クラウド130およびOEMクラウドの他のサービスから隔離または分離され、ユーザー特定可能な情報が外部OEMクラウドに残ることを可能にする。このアプローチは、ハッカーが、OEMユーザーアカウントへのユーザー10のマッピング、デバイス110へのユーザー10のマッピング、SCM120または機器140へのユーザー10のマッピングなどの個人識別情報(PII)をまとめるために、3つの別個のシステムコンポーネント(そのうちの少なくとも2つは別個の管理インフラストラクチャ、ドメイン、または制御領域にある)に侵入しない限り、ハッカーの不正アクセスを防止することができる。
代替実施形態では、クラウド130は、安全なデータベースアプローチを使用しないかもしれないが、依然としてクラウド130の他のサービスと統合された別のユーザーアカウントサービスを提供することができる。たとえば、ユーザーアカウントサービスは、潜在的に、同じインフラストラクチャ、ネットワーク、または仮想プライベートネットワークを介して動作してもよい。別の実施形態では、クラウド130は、OEMアカウント情報を他のユーザー情報から分離しないかもしれない。一例を提供するために、クラウド130は安全なデータベースアプローチを使用せず、OEMユーザー識別子およびCloud-User-IDは存在しないか、または抽象化されていないかもしれない。
図示の実施形態では、クラウド130は、個人を識別可能なアカウント情報を維持しなくてもよい。結果として、クラウド130は、従来のコンセプトのユーザーアカウントを持たず、ダイレクトアクセスを可能にする非OEMクラウドログインAPIを欠いていてもよい。デバイス110は、クラウド130と順番にやり取りすることができる、OEMクラウドを使用して登録され、OEMユーザーアカウントと関連付けられてもよい。
一実施形態によるデバイスを登録する方法が、図9の図示された実施形態において説明され、全体として900で表される。デバイス110は、(例えば、TLSを介して)OEMクラウドと安全に接続する(ステップ901)。デバイス110は、ユーザー10からの入力を使用して、OEMクラウドにユーザーのユーザー名およびパスワードを送信する(ステップ902)。ユーザー名とパスワードが検証(すなわち、正しい)された場合、OEMクラウドはデバイス110にCloud-User-ED、OEM識別子、必要なトークン(例えば、セッショントークンおよび/またはクラウドトークン)、およびデバイスを首尾よく登録するのに必要な任意の他のデータを提供する。OEMクラウドは、クラウド130の他の部分とやり取りしてもよい(ステップ903)。デバイス110は、(特定のCloud-User-IDおよびOEM-EDにマッピングすることができ、デバイス110がそれらを個別に送信しないことを可能にする、または追加の検証としてそれらを別々に要求することを可能にする)セッショントークン、(プッシュ通知サービストークンなどの)任意の他の必要なトークン、デバイス権利公開鍵(本明細書に記載のブロックファンシステムのようなデバイス権利サービスを使用する場合)、および(例えば、デバイスのオペレーティングシステムソフトウェアから取得される)デバイス固有の署名を含む、登録要求をOEMクラウドに送信する(ステップ904)。一実施形態では、悪意のあるデバイスが同じデバイスを複数回登録するのを実質的に回避または防止するために、デバイス固有の署名(例えば、識別子またはベンダーアプリケーション識別子)が登録プロセスで利用されてもよい。
方法900で、OEMクラウドは、登録要求を検証することができる(ステップ905)。登録要求が成功した場合、OEMクラウドは、登録されたデバイス110にDevice-IDを提供する(ステップ906)。
同じデバイス110の偶発的な重複登録から保護を援助するために、デバイス固有の署名が、デバイス登録要求の一部として提供される。デバイスの署名は、暗号の意味でのシ署名でなくてもよく、真にデバイス固有のものである必要もない(たとえば、アプリケーションインストール固有のものであってもよい)。むしろ、デバイスの署名は、特定のデバイスを一意に識別しようとするために使用できる識別子であってもよい(例えば、ランダムに生成される番号またはオペレーティングシステムによって提供される番号などの、シリアル番号またはアプリケーションインスタンス番号)。デバイス登録プロセスは、成功すると、認可を発行するなどの後の処理での使用のため、生成されたDevice-EDをデバイス110に提供することができる。
代替の実施形態では、OEMクラウドが利用されないかもしれない。クラウド130は、ランダムに生成された(おそらく一意の)Cloud-User-EDで、デバイス110が登録されることを可能にすることができる。この場合のCloud-User-EDは、特定のグローバルに定義または設定可能なOEM識別子を含むことができ、デバイス110は、デバイス集合情報および所望の相互デバイス処理を実行するための情報を得るために利用されるすべての便宜を維持または提供する役割を果たすことができる。
多くの場合、OEMは、限定されるわけではないが、ブランド化されたウェブサイトおよびモバイルアプリケーションのような、機器コンポーネント140のためのユーザーインターフェースを提供する。したがって、OEMは、OEMブランドのユーザーアカウントおよびOEMクラウドによって提供されるデバイス関連サービスを含んで、機器コンポーネント140に配信するために必要な対応するシステムコンポーネントを管理することができる。
適切なプライバシーと信頼(暗号化、認証、および認可)を使用する一連のアプリケーションプログラマインターフェース(API)を介して、OEMクラウドは、クラウド130からどのデバイス110が特定のユーザーに関連しているか取得し、認可を管理し、およびOEMの機器コンポーネント140の製品寿命にわたって必要とされる任意のデバイスオーナーシップの調整を実行することができる。プライバシーと信頼は、X.509証明書を使用するTLS1.2+相互認証、および、OAuth2または代理/カスタムのチャレンジ/レスポンスメカニズム(OEMクラウド)を介してを含む、様々な方法で確立されることができる。OEMクラウド、ユーザー10、およびクラウド130間のやり取りのためのOAuth2チャレンジ/レスポンスフロー、つまり方法1000の例が、図10の図示の実施形態に示されている。
図示された実施形態では、ユーザー10は、本明細書に記載されるクラウド130と同様に構成され得る、OEMクラウド135からユーザーアカウントを取得することができる(ステップ1002)。次に、ユーザー10は、(例えば、OAuth2認証処理で使用するための)仮のOEMクラウド識別子および/またはクラウドトークンを取得するために、OEMクラウド135にログインすることができる(ステップ1004)。ユーザー10は、先立ってOEMクラウド135から取得した仮のOEMクラウド識別子および/またはクラウドトークンをクラウド130に提供して、クラウド130からのCloud-User-IDを要求することができる(ステップ1006)。クラウド130は、ユーザー10によって提供されるクラウドトークンおよび/または仮のOEMクラウド識別子を、OEMクラウド135で確認することができる(ステップ1008)。クラウドトークンおよび/または仮のOEMクラウド識別子が確認された場合、クラウド130は、もしかするとOEMクラウド識別子(OEMユーザー識別子)(仮のOEMクラウド識別子であってもよいが、その仮ステータスをクリアしたもの)とともにCloud-User-IDをユーザー10に送信することができる。上記で使用される仮のOEMクラウド識別子は、OEMクラウド135およびクラウド130が同じユーザーを参照していることを検証するための手段として単に使用されてもよい。仮のOEMクラウド識別子は、どのサーバーに接続するかを指示する、またはOEMクラウド135がクラウド130とは異なるOEMクラウド識別子(Cloud-User-ID)の使用を許可するなどの他の目的に使用されてもよい。
代替の実施形態では、プライバシーと信頼は、X.509証明書を使用するTLS1.2+サーバー側(クラウド)認証、および、OEMクラウド135と確立される、OAuth2または代理またはカスタムのチャレンジおよびレスポンスメカニズム(OEMクラウド)を介して確立されてもよい。別の代替の実施形態では、プライバシーと信頼は、TLS1.2+、またはOAuth2を伴うカスタムまたは代理の暗号化および認証プロトコル、または代理またはカスタムチャレンジおよびレスポンスメカニズムを使用して確立されてもよい。
本明細書で説明されるように、一実施形態では、クラウド130は、ユーザーがアカウントを作成し、その後、ウェブまたはモバイルアプリケーションを使用して彼らのデバイス110をアカウントに関連付けることを可能にするユーザーアカウントサービスを提供しなくともよい。代わりに、OEMクラウドが、これらのサービスを提供してもよい。ユーザーアカウントサービスは、OEMクラウドによる使用のために、(OEMユーザー識別子を介して)OEMユーザーアカウントに関連付けられたデバイス110を識別する能力を提供する。クラウド130のユーザーアカウントサービスは、匿名扱いのユーザーアカウントを提供することができる。一実施形態では、クラウド130は、OEMクラウド、他のOEMサービス、アプリケーション、および、ユーザー10、デバイス110、SCM120、機器140、クラウド130自体などのシステムコンポーネントによって使用され得る、(例えばユーザーアカウント管理サービスを介して)従来のユーザーアカウント管理およびデバイス110関連サービスを提供することができる。この実施形態は、本明細書に記載された安全なデータベースアプローチを使用してもしなくてもよく、各システムにおけるOEMによる使用のための、クラウド生成OEMユーザー識別子(またはOEMクラウド識別子)を公開してもしなくてもよい。クラウド130のユーザーアカウント管理サービスによって提供されるユーザーアカウント管理およびデバイス関連サービスは、(限定されるわけではないが)以下を含むことができる。
1)2因子認証と電子メール検証を用いて、(名前、電子メール、電話番号、およびパスワードによる)ユーザーアカウントを作成し、有効化する。
2)ユーザーアカウントに対して、またはユーザーアカウントから、もしくはその両方で、デバイスを追加または削除する。
3)ユーザーアカウントに関連付けられたデバイスと、デバイスに関連付けられた認可を検分する。
一実施形態では、ユーザー10のユーザーアカウントに関連付けられたすべてのデバイス110にわたって認可が共有されてもよい。認可変更は、SCM120のオーナーデバイス110に関連付けられたユーザーアカウントと関連付けられた任意のデバイス110によって承認されてもよい。ユーザー10は、それらのデバイス110間でどのように認可が共有されるかを設定できてもよいし、できなくともよい。例えば、ユーザー10は、どのデバイス110がどのSCM120に対する認可を受信するかを設定することができてもよいし、できなくともよい。ユーザーアカウントサービスは、これらの操作が、任意の設定される選択およびシステムルールごとに、ユーザーに代わって実行されることを保証することができる。
X.収益化
一実施形態でのシステム100は、システム100によって実行される特定の処理のために、ユーザー10からの支払いを要求するように構成されてもよい。このようにして、システム100は、システム100によって提供される態様または機能を収益化してもよい。システムコンポーネントが動作し安全に通信するための技術とインフラストラクチャを維持することは、困難で高価なプロセスになる可能性がある。さらに、ユーザー10は、技術の進歩、改良、市場で提供される新製品および技術との互換性、およびセキュリティパッチまたは機能強化(それらのすべてが資金調達を必要とする可能性がある)を期待する可能性がある。計算コストが高いが、ユーザー10には直接的または具体的な関与がない、本明細書に記載された多数のシステム処理が存在する。認可の発行、修正、または取り消し、登録、SCM120のオーナーシップの移転または工場リセット、ファームウェアの更新などの、ユーザー10が関与する多くの計算コストの高いシステム処理(すなわちサービス)が存在する。サービスに対する支払いは、ユーザー10、OEM、または他のエンティティによって行われてもよい。以下のアクションが、本明細書に記載されるセキュリティモデル/システムの処理に関して収益化されてもよい:認可の発行、デバイス110の登録、SCM120のオーナーシップの移転、SCM120の工場リセット、およびファームウェアの更新。収益化はこれらのイベントに限定されず、他のイベントまたは状況が収益化の基礎を形成してもよいことを理解されたい。
A.認可の発行
OEMは、ユーザー10によって首尾よく発行された各認可について請求されてもよく、その場合、毎日、毎週、または毎月など予め定められた期間の間に生じて、集められた請求金額について請求書が生成される。あるいは、OEMは、首尾よく発行された各認可についてリアルタイムに請求されてもよい。このリアルタイム課金モデルは、マイクロペイメントをもたらす可能性がある。
ユーザー10は、ユーザー10によって首尾よく発行された各認可について請求されてもよく、その場合、毎日、毎週、または毎月など予め定められた期間の間に生じて、集められた請求金額について請求書が生成されえる。あるいは、ユーザー10は、マイクロペイメントに基づく収益化をもたらすように、ユーザー10によって首尾よく発行された各認可についてリアルタイムに請求されてもよい。この実施形態では、支払いは、ユーザー10が料金請求されることに同意することを示して、ユーザー10によって承認されてもよい。同意は、認可要求が送信されるときに得られてもよく、受信者が認可を受け入れたとき、またはACP400への結果として生じる変化が承認されたときのいずれかで、ユーザーが料金請求されてもよい。同意の証拠は、要求の一部として供給されることができ、これは、支払い承認の証拠がない場合に拒絶されてもよい。
代替の実施形態では、承認を与えるシーケンスが成功しなかった場合、ユーザー10は直ちに請求されるが、その取引は取り消され/払い戻されてもよい。
一実施形態では、ユーザー10は、クラウド130がユーザー10に首尾よく発行する各認証について料金請求されてもよく、その場合、毎日、毎週、または毎月などの予め定めた期間の間に生じて、集められた請求金額について請求書が生成されえる。一実施形態では、ユーザー10は、マイクロペイメントに基づく収益化システムを生み出すように、ユーザー10によって首尾よく受け取られるか、または依頼された各認可についてリアルタイムに請求されてもよい。この実施形態では、支払いは、ユーザー10が料金請求されることに同意することを示して、ユーザー10によって承認されてもよい。同意は、認可要求の受信に併せて得られてもよい。同意の証拠は、要求受諾応答の一部として供給されることができ、これは、支払い承認の証拠がない場合に拒絶されてもよい。要求受諾応答がクラウド130によって受信されたとき、またはACP400への結果として生じる変化が承認されたときのいずれかで、ユーザー10が料金請求されてもよい。代替の実施形態では、シーケンスが成功しなかった場合、ユーザーは直ちに請求されるが、その取引は取り消され、または払い戻されてもよい。
B.デバイスの登録
OEMは、ユーザー10によって首尾よく登録された各デバイスについて請求されてもよく、その場合、毎日、毎週、または毎月など予め定められた期間の間に生じて、集められた請求金額について請求書が生成されえる。一実施形態では、OEMは、マイクロペイメントタイプのシステムを生じる、首尾よく登録された各デバイス10についてリアルタイムに請求されてもよい。
一実施形態では、ユーザー10は、ユーザー10によって首尾よく登録された各デバイス10について請求されてもよく、その場合、毎日、毎週、または毎月など予め定められた期間の間に生じて、集められた請求金額について請求書が生成されえる。一実施形態では、ユーザー10は、マイクロペイメントタイプのシステムを生じる、ユーザーが首尾よく登録した各デバイス10についてリアルタイムに請求されてもよい。この構成では、支払いは、ユーザーが料金請求されることに同意することを示して、ユーザー10によって承認されてもよい。同意は、デバイス登録要求の送信に併せて得られてもよく、同意の証拠は、要求の一部として供給されてもよい。支払承認の証拠がない場合、要求は拒絶されてもよく、ユーザーはデバイス登録が正常に処理されたときに料金請求されてもよい。代替の実施形態では、ユーザー10は直ちに請求されるが、デバイス登録シーケンスが成功しなかった場合、その取引は取り消されるか、または払い戻されてもよい。
C.SCMのオーナーシップの移転
一実施形態におけるOEMは、OEMのユーザー10によるSCM120のオーナーシップの移転の各成功に対して請求されてもよい。請求書は、予め定められた期間(例えば、毎日、毎週、毎月など)の間に生じて、集められた請求金額について生成されてもよい。OEMは、マイクロペイメントベースの収益化システムを生じる、SCMのオーナーシップの成功した各移転に対してリアルタイムに請求されてもよい。
一実施形態でのユーザー10は、SCM120のオーナーシップの各成功した転送に対して請求されてもよい。請求書は、毎日、毎週、または毎月などの予め定められた期間の間に生じて、集められた請求金額について生成されてもよい。一実施形態では、ユーザー10は、マイクロペイメントベースの収益化システムを生じる、SCM120のオーナーシップの成功した各移転に対してリアルタイムで請求されてもよい。この構成では、支払いは、ユーザーが料金請求されることに同意することを示して、ユーザーによって承認されてもよい。同意は、デバイス登録要求の送信に併せて得られてもよく、同意の証拠は、要求の一部として供給されてもよい。支払承認の証拠がない場合、要求は拒絶されてもよく、ユーザーはデバイス登録が正常に処理されたときに料金請求されてもよい。代替の実施形態では、ユーザー10は直ちに請求されるが、デバイス登録シーケンスが成功しなかった場合、その取引は取り消されるか、または払い戻されてもよい。
D.SCMの工場リセット
OEMは、OEMと関連付けられたユーザーによるSCM120の工場リセットの各成功に対して請求されてもよい。請求書は、毎日、毎週、または毎月などの予め定められた期間の間に生じて、集められた請求金額について生成されてもよい。一実施形態では、OEMは、マイクロペイメントベースの収益化システムを生じる、成功したSCMの各工場リセットに対してリアルタイムで請求されてもよい。
一実施形態では、ユーザー10は、SCM120の工場リセットの各成功に対して請求されてもよく、その場合、請求書は、毎日、毎週、または毎月などの予め定められた期間の間に生じて、集められた請求金額について生成されえる。一実施形態では、ユーザー10は、マイクロペイメントベースの収益化システムを生じる、成功したSCMの各工場リセットに対してリアルタイムで請求されてもよい。この構成では、支払いは、ユーザー10が料金請求されることに同意することを示して、ユーザー10によって承認されてもよい。同意は、新規オーナー開始要求が送信されたときに得られてもよく、同意の証拠は、要求の一部として供給されてもよい。支払承認の証拠がない場合、要求は拒絶されてもよい。ユーザー10は、クラウド130が結果として生じるACP400を生成したときに料金請求されてもよい。代替の実施形態では、ユーザー10は直ちに請求されるが、シーケンスが成功しなかった場合、その取引は取り消されるか、または払い戻されてもよい。
E.ファームウェアの更新
OEMは、ユーザー10によるファームウェアの更新の各成功に対して請求されてもよく、その場合、請求書は、毎日、毎週、または毎月などの予め定められた期間の間に生じて、集められた請求金額について生成されえる。一実施形態でのOEMは、マイクロペイメントベースの収益化システムを生じるであろう、ファームウェアの更新の各成功に対してリアルタイムで請求されてもよい。
ユーザー10は、ファームウェア更新の各成功に対して請求されてもよく、その場合、請求書は、毎日、毎週、または毎月などの予め定められた期間の間に生じて、集められた請求金額について生成される。一実施形態でのユーザー10は、成功した各ファームウェア更新に対してリアルタイムで請求されてもよい(例えば、マイクロペイメント)。この構成では、ファームウェア更新が送信された、または始まったとき、支払いが(ユーザー10が料金請求されることに同意することを示して)ユーザー10によって承認されてもよい。承認の証拠は、要求の一部として供給されてもよく、支払承認の証拠がない場合、要求は拒絶される。システム100のコンポーネントがファームウェア更新は成功したことを検出したときに、ユーザー10は料金請求されてもよい。代替の実施形態では、ユーザー10は直ちに請求されるが、シーケンスが成功しなかった場合、その取引は取り消されるか、または払い戻されてもよい。
XI.分散信頼モデル
一実施形態によるシステム100は、分散信頼モデルを利用することができる。この分散信頼モデルは、デバイス110、SCM120、および機器システムコンポーネント140が、信頼を確立し、安全に通信し、および動作することができる間、オンラインおよび/またはオフラインのいずれかであることを可能にすることができる。例えば、デバイス110、SCM120、および機器システムコンポーネント140は、オンラインおよびまたはオフラインでのシステムコンポーネントの認証とアクションの認可を可能にすることができる。
A.概要
一実施形態のシステム100は、秘密性およびプライバシーを強化し、システムコンポーネントを分離し、攻撃面を減少させるために、最小特権の原則を組み込むことができる。システムコンポーネント間の通信とシステムコンポーネント内のデータストレージは、セキュリティ基準をプロセスと一意に組み合わせることで、安全かつ機密に実現することができる。基準には、暗号化、認証、完全性検証、またはセキュリティプロトコル、もしくはそれらの組み合わせが含まれ、プロセスには、プロトコル、ワークフロー、またはシステム状態の管理または検証、もしくはそれらの任意の組み合わせが含まれる。
開示の目的のために、例えば、システムコンポーネントが証明機関と通信することができる場合を含む、システムコンポーネントがインターネットを介してサービスと通信できる場合、システムコンポーネントはオンラインである。
ある意味で、暗号化は、ある程度の機密性のみを提供することができる。暗号化されたメッセージまたは暗号文は、適切な鍵を持つエンティティによってのみ覗かれ、または復号されることができる。鍵は共有秘密または鍵であってもよく、もしくは鍵は公開鍵と非公開鍵によって定義される非対称ペアの一部であってもよい。
メッセージの完全性を検証するため、またはメッセージが改ざんされていないことを確認するために、安全な(暗号化された)ハッシュが暗号化されたメッセージ内に格納されてもよい。メッセージの真正性を検証するために、発信者識別情報が暗号化メッセージ内に格納されてもよい。暗号化されたメッセージに(または、メッセージとともに)対称暗号、メッセージ認証コード(MAC)、または非対称暗号(例えば、公開鍵暗号)、デジタル署名を含めることによって、メッセージの完全性と真正性を同時に検証することができる。
非対称暗号では、デジタル署名はそれ自体によって作成者がメッセージに署名し暗号化したことを保証するものではない。そのような保証は、暗号の否認不可または作成者および/または発信元の証拠として記述することができる。
従来の署名−暗号化(S−E)アプローチは、秘密の転送に対して脆弱であると考えられる。すなわち、発信者の公開鍵を持つ誰もが復号し、次いで、代わりの非公開鍵を使用してメッセージに再署名し、再暗号化することができる。暗号化(−E)ステップは、暗号化プロセスの1つまたは複数のステップで発生してもよいし、発生しなくてもよい。例えば、暗号化ステップは、メッセージパッケージの一部として直ちに行われてもよく、またはメッセージは署名され暗号化された構成またはコマンドメッセージであってもよい。暗号化ステップは、TLSのような通信チャネルトランスポートの一部として行われてもよい。暗号化ステップは、パッケージの機密性が必要でない場合や、通信チャネルなどの他の手段によって提供される場合など、存在しないかもしれない。不要な機密性の具体例は、単に署名されたメッセージであってもよい。
公開鍵がメッセージと共に配信された場合、受信者は、作成者の変更を認識していない可能性がある。公開鍵インフラストラクチャ(PKI)によって管理されるであろう、デジタル証明書(X.509)は、特定の公開鍵が特定の作成者の鍵であり、それゆえ、特定のデジタル署名が特定の作成者によって作成されたとの証拠を提供することができる。デジタル証明書がない場合、作成者の証拠、および、もしかすると意図された宛て先の証拠が、S−Eアプローチを使用するとき、暗号化されたメッセージに適切に作成者のID、宛て先のID、またはその両方を含むことによって確立されてもよい。S−Eアプローチは、a)S−Eメッセージに署名する(S−S−E)など、メッセージを二重以上に署名すること、およびb)E−E−Sメッセージを設計することができる、暗号化後署名(E−S)メッセージの暗号化など、メッセージを二重以上に暗号化することの両方を含んでもよい。
対称暗号は、秘密の転送を苦にしないかもしれない。受信者は、作成者が分かること、および、送信者が受信者にメッセージを送信しようとしたことが保証され得る。しかしながら、対称暗号は、双方が共有された秘密を有するので、暗号否認不可を提供しないかもしれない。対称暗号に基づくシステムは、選択されたセキュリティプロトコル、メッセージのパッケージングまたは格納、および通信方式の1つ以上のレイヤを介してこの問題を検討し緩和することができる。
デジタル証明書有りでおよび/または無しで、メッセージの完全性および認証メカニズムを使用する、対称および/または非対称暗号化は、システムコンポーネント間で通信し、システムコンポーネント内にデータを格納するために、システム100全体で使用される。多くの例が本明細書に記載される。非対称暗号化が実装される場合はいつでも、非対称暗号化の識別された弱点、および他の既知の脆弱性または明示的には識別されていないが一般にセキュリティコミュニティに知られている考慮事項を実質的に克服するために、以下の特徴の1つ以上がシステム100で使用されてもよい。
・ デジタル証明書
デジタル証明書(X.509)は、クラウド130のような、常にまたはほぼ常にオンラインであるシステムコンポーネントのアイデンティティを検証するために使用されてもよい。システムコンポーネントは、公開証明機関、非公開クラウド証明期間、または自己署名証明書の1つ以上を実装してもよい。
・ 公開証明書と鍵
メッセージを復号するために利用され得る公開証明書および/または公開鍵は、メッセージと共に配信されることは決してありえない。すなわち、一実施形態における受信者は、信頼できるソースから事前に公開証明書と公開鍵を受信し、認証しなければならない。公開鍵および証明書は、クラウド130ごとまたはSCM120ごととする代わりに、デバイス110とクラウド130によって定義されるペア間、およびデバイス110とSCM120によって定義されるペア間など、実用的または有益と考えられる特定の関係を対象とすることができる。公開鍵と証明書は、利用されるシステムコンポーネントによってのみ格納されてもよい。
3.署名
デジタル証明書が使用されない場合、署名が使用されてもよく、メッセージコンテンツの機能およびセキュリティ要件に適するように、作成者IDおよび/または受信者IDがメッセージ内に含まれてもよい。メッセージは、暗号化されていても、暗号化されていなくてもよく、あるいは、メッセージは二重以上に署名され、および/または二重以上に暗号化されてもよい。
・ 作成者の証拠
システム100の分散された信頼性のために、システム100は、特定のメッセージが特定のソースから発信されたことを実質的に保証するように構成されてもよい。例えば、メッセージは、作成者のIDが保存される限り、任意のソースによって配信されてもよく、そのメッセージは、その特定のソースから発信されたものとして認証されることができる。メッセージは、特定のシステムコンポーネントに向けられたメッセージの内部が他のコンポーネントによって覗かれず、しかし、信頼されるコンポーネントによって作成されたものとしてすべてのまたは一部のコンポーネントによって検証されるように、構成され、配信されることができる。
共有秘密鍵、公開/非公開鍵、証明書などの対称および非対称鍵は、循環または変更されてもよい。この循環または変更は、侵害回復手順の一部として、またはシステム100の通常の処理を介して実行されてもよい。システム100は、周期的に鍵を循環させることができる。システムコンポーネントとメッセージ定義は、オンラインシステムコンポーネント、オフラインシステムコンポーネント、およびオフラインとオンラインを切り替えるコンポーネントを含む、システムコンポーネントまたはシステム通信の中で、鍵循環プロトコルの一部として更新された鍵を提供するアクションをサポートすることができる。例示的なオンラインシステムコンポーネントまたは通信は、クラウド130またはクラウド130とデバイス110との間のペアリングを含む。例示的なオフラインシステムコンポーネントまたは通信は、デバイス110、デバイス110とSCM120との間のペアリング、SCM120、機器140とSCM120との間のペアリング、および機器140を含む。一実施形態では、鍵循環命令および1つ以上の鍵が、ACP400のようなメッセージ内容内で配信されることができる。
クラウド130およびクラウド130とデバイス110との間の通信などのデジタル証明書を使用するシステムコンポーネントまたは通信は、適切な証明機関の証明書取消リスト(CRL)を用いて、取り消された証明書を登録することができる。取り消された証明書は、CRLを用いてリアルタイムに登録されてもよい。代替の実施形態では、無効化された証明書は、毎時、4時間ごと、または毎日などの予め定められた期間でバッチで登録されてもよい。代替の実施形態では、取り消された証明書は、CRLを用いて登録されないかもしれない。
クラウド130およびクラウド130とデバイス110との間の通信などのデジタル証明書を使用するシステムコンポーネントまたは通信は、認証プロセス中に、証明書が失効しておらず、取り消されていないことを検証することができる。検証は、適切な証明機関のCRLを使用して行うことができる。代替の実施形態では、証明書の取消がチェックされなくてもよい。別の代替実施形態では、証明書有効期限がチェックされなくてもよい。
さらに別の代替実施形態では、適切な証明機関のCRLの代わりに、オンライン証明書ステータスプロトコル(OCSP)が使用されてもよい。OCSPの応答者は、証明機関、第三者サービス、またはクラウド130内に存在してもよい。
一実施形態では、システムコンポーネントは、チャレンジ/レスポンスセキュリティプロトコル、暗号化されたID含有メッセージ、エンベロープ公開鍵暗号(EPKE)、および/または、プロセスおよび/または2因子認証などの他の手段の1つ以上とともに、対称および/または非対称暗号を使用して、アイデンティティまたは作成者を検証してもよい。さらに、証明書有りまたは無しで、複数のハードウェアまたはソフトウェアベースのセキュリティおよび認証レイヤが利用されてもよい。例を提供するために、BLE認証、DTLS、TLSS、NFC、またはRFID、もしくはそれらの組み合わせなどの、基礎をなす通信チャネルの認証および暗号化に利用される、1つ以上のセキュリティおよび認証レイヤの1つ以上のレイヤが存在し得る。
アイデンティティの変更および取り消し(およびアイデンティティの検証または認証の変更)は、ACP400、工場リセット手順、または鍵循環、もしくはそれらの組み合わせを介してなど、クラウドから又はクラウドへ、もしくはすべてのまたは一部のシステムコンポーネントから又はすべてのまたは一部のシステムコンポーネントへ配信されてもよい。
一実施形態では、証明書は、オンラインシステムコンポーネントのアイデンティティ検証のために使用されてもよいが、その一方で、「生の」非対称暗号化は、オフラインであり得るシステムコンポーネントのために使用されてもよい。証明書は有用なように見えるかもしれないが、証明書には、ROM、RAM、処理能力、または通信帯域幅/スループットがほとんどないシステムコンポーネントなど、制約のあるデバイスでは利用できない重要なリソースが含まれることがある。
図示された実施形態のシステム100では、SCM120、デバイス110、および機器140が、制約のあるデバイスと見なすことができる。1つまたは2つの証明書が実現可能であるかもしれないが、各認可の真正性ならびに各接続デバイス110のアイデンティティを検証するために必要とされる証明書の数は実現可能でないかもしれない。したがって、そのようなシステムコンポーネントでは、「生の」非対称および/または対称暗号化が使用され得る。なぜなら、このタイプの暗号化は、相当に低い処理オーバーヘッドとともに、著しく少ないメモリしか使用しないからである。メモリ使用量が少なくなると、情報を転送するための通信帯域幅の減少ももらたすことができる。
一実施形態では、デバイス110は、非対称の非公開/公開鍵のペアを生成することと対照的に、デバイス110のアイデンティティを確立するために1つ以上の自己署名デジタル証明書を生成することができる。
代替の実施形態では、生の公開鍵暗号が利用される場合はいつでも、例えば非証明書ベースの使用の場合には、対称暗号が使用されてもよい。
一実施形態では、P−256(secp256rl)楕円曲線(ECC)(非対称)およびAES−128(対称)暗号が使用される。1つまたは複数の代替実施形態は、以下のタイプの暗号化の1つまたは複数を利用することができる。P−192(secp192rl)楕円曲線(非対称)暗号(ECC)、P−384(secp384rl)楕円曲線(非対称)暗号(ECC)、P−521(secp521rl)楕円曲線(非対称)暗号(ECC)、RSA(非対称)暗号、AES−192(対称)暗号、およびAES−256(対称)暗号。システムは、上記の暗号アルゴリズムに限定されないことに留意されたい。
B.証明書の検証
一実施形態では、(オンラインおよびオフラインの)システムコンポーネント、認可、および他の重要なデータ項目および設定のすべてまたはサブセットについて真正性または作成者を検証するために、1つ以上の証明書が使用されてもよい。代替の実施形態では、オンラインおよびオフライン両方のシステムコンポーネント、認可、および他の重要なデータ項目および設定のための、メッセージまたは委任された認証又は権限を適切な当事者が承認したことを確かめるために、証明書が連鎖されてもよい(または署名が証明書において連鎖される)。
別の代替実施形態では、システムコンポーネントのアイデンティティおよび認可(および潜在的に他のクラスまたはサブクラス)が、異なる証明機関を持つ各クラスおよび/またはサブクラス(例えば、アイデンティティと認可)をもって、証明書として表される別個のエンティティであってもよい。例えば、各エンティティは、別々の認証および認可ツリーを有してもよい。一実施形態では、認証および認可証明機関は、異なるサーバー上に存在してもよい。
代替の実施形態では、各クラスは同じ証明機関を使用してもよい。別の代替実施形態では、属性(認可)証明書(RFC5755)が、設定パラメータまたは識別子などの認可または他の情報を表すために使用されてもよい。
XII.分散鍵システム
各システムコンポーネントが互いを認証することができ、データがコンポーネントにアクセス可能である(おそらくデータが必要と考えられるコンポーネントにのみ)ようにデータを機密的かつ安全に配信することができるように、システム100内のシステムコンポーネントに分散された多数の暗号鍵が存在する。データは、オンラインおよび/またはオフラインで通信することができる。一実施形態による鍵または識別子の配信は、複数のシステムコンポーネントとそれらが所有する暗号鍵(およびいくつかの識別子)を含む、図11A−Bに示されている。さらに、図16の図示された実施形態も、各システムコンポーネントと、それが所有する非公開/対称暗号鍵のみを有するシステム100を示している。1つまたは複数の実施形態による暗号鍵の各々が、以下により詳細に説明される。
A.SCM-KeyとSCM-ID
SCM-Key鍵は、特定のSCM120を一意に識別することができる。SCM-Key鍵は、SCM120によって直接的にまたは製造ツールによって製造プロセス中にのみ生成および格納される非対称の非公開/公開鍵のペアであってもよい。SCM-Key非公開鍵は、SCM120において、セキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアハードウェアモジュールを含む、セキュアメモリ220またはセキュアエレメント内に安全に格納されることができる。
SCM-Key非公開鍵は、他のシステムコンポーネントに送信されない。一方、SCM-Key公開鍵は、デバイス110またはクラウド130などのSCM-Key公開鍵を利用するシステムコンポーネントに安全に送信され、格納されてもよい。SCM-Key非公開鍵は、SCM120によって他のシステムコンポーネントに送信されるメッセージを暗号化し、および/または署名するためにSCM120によって使用することができ、並びに、他のシステムコンポーネントからSCM120に送信されたメッセージを復号し、および/または検証するために使用することができる。SCM-Key公開鍵は、特定のSCM120から発信されたメッセージを復号し、および/または検証するためにシステムコンポーネントによって使用さすることができ、並びに、特定のSCM120に向けられたメッセージを暗号化および/または署名するために使用することができる。
一実施形態では、SCM-EDは、SCM-Key鍵と比較して、異なるが関連する目的を果たすことができる。SCM-EDは、特定のSCM120に固有のものと見なすことができる。しかし、SCM-EDは、システム100のセキュリティモデルに直接参加することはできない。SCM-EDは、記憶および/または表現(例えば、32ビットまたは64ビット対256ビット)に関して、SCM-Key鍵と比較して、サイズが比較的小さくてもよい。SCM-EDは、SCM120を識別する際にユーザー10を支援するために、他のシステムコンポーネントにシステム100を介して転送され、他のシステムコンポーネントによって使用されてもよい。その結果、SCM-IDは安全な方法で転送され、保管されることができる。SCM-EDは、ユーザー10または他のシステムサービスによるSCM120の識別をさらに支援するために、デバイス110およびクラウド130などの他のシステムコンポーネントに格納(キャッシュ)されてもよい。
SCM-EDの変更は期待されていないので、システムコンポーネントは、改ざん、なりすましの試み、またはプロトコル違反の兆候などのセキュリティ異常としての変更をユーザー10に報告してもよい。変更は、代わりに、SCM120のオーナー10に、メモリ破損などの製品故障の兆候として報告されてもよい。
SCM-EDは、SCM120の識別のためだけに使用されるランダムに生成された識別子であってもよく、またはSCM-EDは他の目的にも役立てられてもよい。このような別の目的の一例は、メディアアクセス制御(MAC)アドレス、および/または、例えばブルートゥース(登録商標)ローエナジー(BLE)を含む他のサービスと共有されるグローバル/ユニバーサル固有識別子(GUED/UUED)などの通信プロトコル識別子として振る舞うことである。SCM-IDの別の例示の目的は、シリアル番号、製造者部品番号(MPN)、ユニバーサルプロダクトコード(UPC)、国際/ヨーロッパ商品番号(EAN)、車両識別番号(VEST)、または特定のSCM120に固有の他の任意の識別子などの人間/機械可読の識別子としてのものである。
代替の実施形態では、SCM-EDは、特定のSCM120に固有でなくてもよい。固有でないタイプのSCM-EDの例には、国際標準図書番号(ISBN)、USBデバイス識別子、および製品モデル、クラス、またはタイプが含まれる。
一実施形態では、SCM-EDは安全に格納されない可能性がある。たとえば、SCM-EDはロギングやレポートの目的でのみ使用されるため、またはいずれのシステムコンポーネントによっても依存されない識別情報の追加部分として使用されるため、セキュアストレージは使用されないかもしれない。さらに別の代替の実施形態では、SCM-EDは存在しないかもしれない。
一実施形態では、SCM-IDと類似の複数の識別子が存在してもよく、それらの各々は特定のSCM120に固有であってもなくてもよい。例えば、SCM120は、ランダムな内部SCM-ID、外部に見えるシリアル番号、イーサネット(登録商標)MAC、BLE UUID、電子シリアル番号(ESN)と国際移動局機器アイデンティティ(IMEI)と、および/またはモバイル機器識別子(MEED)とを含む1つ以上のセルラ識別子を含むことができる。
代替の実施形態では、SCM-Key鍵は、使用中のすべてのSCM120にわたって共有されてもよい。
一実施形態では、SCM-Key公開鍵は、それを利用するシステムコンポーネントに安全に送信されず、および/または記憶されないかもしれない。
一実施形態では、SCM-Key非公開鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されないが、それでも安全に格納される。例えば、SCM-Key非公開鍵は、静止時に暗号化されてもよく、そのようなデータへのアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよいし、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。別の実施形態では、SCM-Key非公開鍵は安全に記憶されない。
一実施形態では、SCM-Key公開/非公開鍵は、鍵循環または工場リセットの結果として変更および/または生成されてもよい。
一実施形態では、1つ以上の証明書が、SCM-Key鍵として使用されてもよい。別の実施形態では、SCM-Key鍵は対称鍵である。別の代替実施形態では、SCM-Key鍵はOAuth2トークンである。さらに別の代替実施形態では、SCM-Key鍵の代わりに、別の認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが使用されてもよい。
代替の実施形態では、後で使用するために、1つ以上のSCM-Key鍵が作成されて、SCM120に格納されてもよい。この手法は、SCM120が通常の動作中にそのような鍵を生成する能力を持たない場合に有用であり得る。一実施形態では、SCM120は、工場リセット後に鍵の循環および/または異なる鍵をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、SCM120は、どのSCM-Key鍵が使用可能であるが使用中ではないか、使用中であるか、廃棄されているか、または撤去されているか、を管理することができる。あるいは、オンデマンド(1度に1つ)またはバッチで(本明細書に記載されるように後の時点での使用のために)など、SCM-Key鍵がクラウド130(または他のシステムコンポーネント)によって生成され、通常の動作中に、SCM120に格納されてもよい。
一実施形態では、SCM-Key鍵は存在せず、この場合、システムコンポーネントがSCM120と通信し、および/またはSCM120の真正性を検証するために、他の手段が使用されてもよい。
B.Equipment-Key
Equipment-Key鍵は利用されてもされなくてもよい。それは、1つ以上の機器140システムと通信するためにSCM120によって保持される独自の鍵を生成することを望む機器製造業者(OEM)向けのものである。SCM-Equipment-Key鍵は、逆使用モデルである(おそらく好まれる)。
Equipment-Key鍵は、取り付けられたSCM120に対し、特定の機器140を一意に識別することができる。Equipment-Key鍵は、機器140によって直接的にまたは製造ツールによって、機器製造プロセス中にのみ生成される非対称の非公開/公開鍵のペアであってもよい。Equipment-Key非公開鍵は、機器において、セキュアメモリ220内、またはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュール内に安全に格納されてもよい。
Equipment-Key非公開鍵は、図示の実施形態では他のシステムコンポーネントには送信されない。Equipment-Key公開鍵は、SCM120のようなEquipment-Key公開鍵を利用するシステムコンポーネントに安全に送信され、格納されてもよい。Equipment-Key公開鍵は、製造ツールによって機器140またはSCM120の製造中にSCM120(または他の機器)に送信されてもよい。Equipment-Key公開鍵は、通信リンクまたは物理的媒体を介して機器140または他のシステムコンポーネントによってSCM120(または他の機器)に送信されてもよい。Equipment-Key非公開鍵は、機器140が他のシステムコンポーネントに送信するメッセージを暗号化および/または署名するために、特定の機器140によって使用され、および、他のシステムコンポーネントから機器140に送信されるメッセージを復号および/または検証するために使用されてもよい。
Equipment-Key公開鍵は、特定の機器140から発せられたメッセージを復号および/または検証するためにシステムコンポーネントによって使用され、特定の機器140に向けられるメッセージを暗号化および/または署名するために使用されてもよい。
代替の実施形態では、Equipment-Key公開鍵は、Equipment-Key公開鍵を利用するシステムコンポーネントに安全に送信されず、および/または格納されない。
一実施形態のEquipment-Key公開鍵は、システムコンポーネントが、格納されたEquipment-Key公開鍵をまだ有していない場合にのみ、SCM120などのシステムコンポーネントに送信されてもよい(または、受け入れられてもよい)。これは、製造時または工場リセットに続いて発生する可能性がある。追加的に、または代替的に、Equipment-Key公開鍵は、製造ツールによって別のシステムコンポーネントに送信のみされてもよい。代替の実施形態では、Equipment-Key公開鍵は、製造ツールによって別のシステムコンポーネントに送信されないかもしれない。
代替実施形態では、Equipment-Key鍵は、使用中のすべての機器140にわたって共有されてもよい。
一実施形態では、Equipment-Key公開鍵は、1つ以上の他のシステムコンポーネントによる承認なしでは、システムコンポーネントに送信されず、および/またはシステムコンポーネントによって使用されないかもしれない。例えば、SCM120は、デバイス110、ユーザー10、またはクラウド130からの承認なしでは、特定の機器140と通信することができない。追加的、または代替的に、機器140はそれ自体を承認しなくてもよい。
一実施形態のEquipment-Key秘密鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されない。ただし、Equipment-Key秘密鍵はそれでも安全に格納されえる。例えば、Equipment-Key秘密鍵は、静止時に暗号化されてもよく、そのようなデータへのアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよいし、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。別の実施形態では、Equipment-Key非公開鍵は安全に記憶されない。
一実施形態では、Equipment-Key公開/非公開鍵は、鍵循環または工場リセットの結果として変更および/または生成されてもよい。
一実施形態では、Equipment-Key鍵のために1つ以上の証明書が使用されてもよい。代替の実施形態では、Equipment-Key鍵は対称鍵である。別の代替実施形態では、Equipment-Key鍵はOAuth2トークンである。さらに別の代替実施形態では、Equipment-Key鍵の代わりに、別の認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが使用される。
一実施形態では、SCM120を含むシステムコンポーネントは、複数の機器140と通信してもよく、その結果、システムコンポーネントは、複数の異なるEquipment-Key公開鍵を所有してもよい。
一実施形態では、Equipment-Key鍵は存在しなくてもよく、この場合、SCMが機器140と通信し、および/または真正性を検証するために他の手段が使用されてもよい。
C.SCM-Equipment-Key
SCM-Equipment-Key鍵は利用されてもされなくてもよい。それは、1つ以上の機器140システムと通信するためにSCM120によって提供される外部的な生成鍵を使用することを望む機器メーカ向けのものである。Equipment-Key鍵は逆使用モデルである。
SCM-Equipment-Key鍵は、取り付けられた機器140に対し、SCM120を一意に識別することができる。SCM-Equipment-Key鍵は、SCM120によって直接的にまたは製造ツールによって製造プロセス中にのみ生成および格納される、非対称の非公開/公開鍵のペアであってもよい。
SCM-Equipment-Key鍵は、機器メーカが、機器140は十分に保護されておらず、そのため、SCM-Key公開鍵でさえも公開しないことが好ましいと考えられるモデルを含む、任意の望ましいと考えるセキュリティモデルを使用することができるように、SCM-Key鍵とは別けられてもよい。
SCM-Equipment-Key非公開鍵は、SCM120において、セキュアメモリ220内、またはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュール内に安全に格納されてもよい。SCM-Equipment-Key非公開鍵は、図11の図示の実施形態において、他のシステムコンポーネントに送信されない。さらに、図示された実施形態において、SCM-Equipment-Key公開鍵は、製造ツール、通信リンク、または物理的媒体を介して、取り付けられた機器140にのみ送信され、格納されてもよい。
SCM-Equipment-Key非公開鍵は、SCM120が機器140に送信するメッセージを暗号化しおよび/または署名し、機器140からSCM120に送信されたメッセージを復号しおよび検証するために、SCM120によって使用されてもよい。SCM-Equipment-Key公開鍵は、特定のSCM120から発せられたメッセージを復号しおよび/または検証し、特定のSCM120向けのメッセージを暗号化しおよび/または署名するために機器140によって使用されてもよい。
一実施形態では、SCM-Equipment-Key公開鍵は、例えばデバイス110、クラウド130、またはSCM120、またはそれらの組み合わせを含む、取り付けられた機器140以外のシステムコンポーネントに安全に送信され、格納されてもよい。
一実施形態では、SCM-Equipment-Key公開鍵は、システムコンポーネントに安全に送信されないか、または格納されないかもしれない。
特定のSCM120に取り付けられる1つまたは複数の機器140が存在してもよい。このように、システム100は、1SCM多機器システムを定義することができる。1SCM多機器システムでは、デバイス110は、個々の機器140またはそれらの任意の組み合わせに対するステータスの取得、コマンドの発行、および/または個々の機器140またはそれらの任意の組み合わせからの応答の受信を行ってもよい。
使用中のSCMの全部または一部にわたって共有されるSCM-Equipment-Key鍵が、一実施形態に従って実装されてもよい。
一実施形態において、SCM-Equipment-Key公開鍵は、システムコンポーネントが既に格納されたEquipment-Key公開鍵を有する場合、システムコンポーネント(例えば、機器140)によって受け入れられないかもしれない。
一実施形態では、SCM-Equipment-Key公開鍵は、1つ以上の他のシステムコンポーネントによる承認なしでは、機器140に送信されず、および/または機器140によって使用されなくてもよい。例えば、機器140は、デバイス110、ユーザー10、またはクラウド130からの承認なしでは、特定のSCM120と通信することができない。追加的に、または代替的に、SCM120はそれ自体を承認しなくてもよい。
一実施形態では、SCM-Equipment-Keyを使用する代わりに、SCM-Key鍵が利用されてもよい。そのような場合、様々な特定されたSCM-Equipment-Key処理が、SCM-Keyにも適用されてもよい。
一実施形態では、SCM-Equipment-Key非公開鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されない。SCM-Equipment-Key非公開鍵はそれでも安全に格納され得る。例えば、SCM-Equipment-Key非公開鍵は、静止時に暗号化され、そのようなデータへのアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよいし、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい。JTAGおよび他のポートは無効にされてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、SCM-Equipment-Key非公開鍵は安全に格納されない。
一実施形態では、SCM-Equipment-Key公開鍵は、SCM-Equipment-Key公開鍵を利用するシステムコンポーネントによって安全に格納されない。
SCM-Equipment-Key公開/非公開鍵は、本開示の一実施形態による鍵循環または工場リセットの結果として変更および/または生成されてもよい。
複数のシステムコンポーネント(例えば、機器140)は、単一のSCM120と通信することができ、複数のSCM-Equipment-Key公開/非公開鍵のペアが利用されてもよい。
1つ以上の証明書が、SCM-Equipment-Key鍵のために使用されてもよい。あるいは、SCM-Equipment-Key鍵は対称鍵でもよい。別の代替実施形態では、SCM-Equipment-Key鍵はOAuth2トークンであってもよい。さらに別の代替実施形態では、SCM-Equipment-Key鍵の代わりに、別の認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが使用されてもよい。
代替の実施形態では、後で使用するために、1つ以上のSCM- Equipment-Key鍵が作成されて、SCM120に格納されてもよい。この手法は、SCM120が通常の動作中にそのような鍵を生成する能力を持たない場合に有用であり得る。一実施形態では、SCM120は、工場リセット後に鍵の循環および/または異なる鍵をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、SCM120は、どのSCM-Equipment-Key鍵が使用可能であるが使用中ではないか、使用中であるか、廃棄されているか、または撤去されているか、を管理することができる。あるいは、オンデマンド(1度に1つ)またはバッチで(本明細書に記載されるように後の時点での使用のために)など、SCM-Equipment-Key鍵がクラウド130(または他のシステムコンポーネント)によって生成され、通常の動作中に、SCM120に格納されてもよい。
一実施形態では、SCM-Equipment-Key鍵が存在せず、この場合、機器がSCM120と通信し、および/またはSCM120の真正性を検証するために他の手段が使用されてもよい。
D.Device-SCM-Key、Device-ID、およびDevice-SCM-ID
Device-SCM-Key鍵は、デバイス110とSCM120との間の特定のペアリング(デバイス/SCMペア)を一意的に識別することができる。図示された実施形態におけるDevice-SCM-Key鍵は、デバイス110によって生成され格納される非対称非公開/公開鍵のペアである。クラウド130が、デバイス110が認可を発行されていないSCM120のような新しいSCM120のためのデバイス110への認可を発行することを要求するときに、Device-SCM-Key鍵が生成されてもよい。Device-SCM-Key鍵は、製造中など、デバイス110が工場リセットSCM120のオーナーになることを要求しているとき、またはオーナーシップを移転するときにも生成されてもよい。
この手法は、侵害された各Device-SCM-Key鍵の露出を単一のSCM120に制限することができるので、実質的に固有のDevice-SCM-Key鍵が各デバイス/SCMのペアに対して使用されることができる。これは、特定のデバイス110に関連付けられたすべてのSCM120に対して(例えば、Device-Keyを用いて)単一の鍵が使用された場合のように、特定のデバイス110に関連付けられたすべてのSCM120への露出とは対照的である。
一実施形態のDevice-SCM-Key非公開鍵は、デバイス110において、セキュアメモリ220内、またはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュール内に安全に格納されてもよい。Device-SCM-Key非公開鍵は、他のシステムコンポーネントに送信されなくてもよい。一方、Device-SCM-Key公開鍵は、クラウド130のような、Device-SCM-Key公開鍵を利用するシステムコンポーネントに安全に送信され、格納されてもよい。
Device-SCM-Key非公開鍵は、関連付けられたSCM120のためのメッセージを暗号化および/または署名するためにデバイス110によって使用されてもよく、関連付けられたSCM120からデバイス110に送信されたメッセージを復号および/または検証するために使用されてもよい。このメッセージは、認可を発行するプロセス中、またはオーナーデバイス110が関連付けられたSCM120のためのACP400に署名し、署名されたACP400をクラウド130に送信するときなど、デバイス110に直接送信されてもされなくてもよい。Device-SCM-Key公開鍵は、関連付けられたデバイス110から発せられたメッセージを復号および/または検証するためにSCM120によって使用されてもよく、SCM120から関連付けられたデバイス110向けのメッセージを暗号化および/または署名するために使用されてもよい。
Device-IDは、Device-SCM-Key鍵と比較して、異なるが関連する目的を果たすことができる。Device-IDは、(特定のデバイス/SCMのペアにではなく)特定のデバイス110に実質的に固有であり、クラウド130によって生成されてもよい。Device-IDは、システム100のセキュリティモデルに直接参加することはできない。Device-IDは、記憶および/または表現(例えば、32ビットまたは64ビット対256ビット)に関して、Device-SCM-Key鍵と比較して、サイズが比較的小さくてもよい。Device-IDは、デバイス110を識別し、デバイス特有のサービスを可能にするのを支援するために、システム100を介して、(クラウド130、SCM120、およびユーザー10などの)他のシステムコンポーネントに転送され、それらによって使用されてもよい。デバイス特有のサービスの例には、SMSおよびプッシュ通知が含まれる。その結果、Device-IDが安全に転送され、記憶されることを確保するための努力がなされえる。
Device-IDの変更は期待されていないが、一部のシステムコンポーネントは、デバイスオーナー10にセキュリティ異常または製品故障として変更を報告できるようにしてもよい。セキュリティ異常は、改ざん、なりすましの試み、またはプロトコル違反の結果であるかもしれない。同じ物理的なデバイス110であっても、アプリケーションが除去され、再インストールされたり、メモリが消去されたり、またはアップグレードされたりすると、所定のデバイス110が、その製品寿命を通じて、多数のユニークなDevice-IDを循環することがあるため、製品故障が、メモリ破損から生じる可能性がある。
Device-IDは、純粋にデバイス識別のために使用される、ランダムに生成された識別子であってもよい。あるいは、デバイスIDは他の目的にも役立てられてもよい。このような別の目的の一例は、メディアアクセス制御(MAC)アドレス、例えばブルートゥース(登録商標)ローエナジー(BLE)を含む他のサービスと共有されるグローバル/ユニバーサルユニーク識別子(GUED/UUED)などの通信プロトコル識別子として振る舞うことである。Device-IDの別の例示の目的は、シリアル番号、製造者部品番号(MPN)、ユニバーサルプロダクトコード(UPC)、国際/ヨーロッパ商品番号(EAN)、車両識別番号(VEST)、ユーザー定義文字列、または特定のデバイス110に固有の他の任意の識別子などの人間/機械可読の識別子としてのものである。
代替の実施形態では、Device-IDは、特定のデバイス110に固有でないかもしれない。固有ではないタイプのDevice-IDの例には、国際標準図書番号(ISBN)、USBデバイス識別子、および製品モデル、クラス、またはタイプが含まれる。
一実施形態では、Device-IDは安全に格納されないかもしれない。例えば、Device-IDは、ロギングや報告目的、あるいはいずれのシステムコンポーネントによっても依存されない追加の識別情報の部分としてのみ使用されるため、セキュアストレージが利用されなくてもよい。
1つ以上の実施形態では、Device-IDが存在しないか、または利用されないかもしれないことを理解されたい。
代替実施形態のDevice-IDは、デバイス110によって生成されてもよい。
一実施形態では、Device-IDに類似した複数の識別子が存在してもよく、各識別子は、特定のデバイス110に固有であってもなくてもよい。例えば、デバイス110は、ランダムな内部Device-ID、外部に見えるシリアル番号、イーサネット(登録商標)MAC、BLE UUID、電子シリアル番号(ESN)と国際移動局機器アイデンティティ(IMEI)と、および/またはモバイル機器識別子(MEED)、デバイス名、またはユーザー識別子、またはそれらの任意の組み合わせとを含むセルラ識別子を含むことができる。
Device-SCM-EDは、Device-EDと同様であってもよいが、図示された実施形態では、Device-SCM-EDは、制約付きデバイスまたは制約付き帯域幅インターフェース、またはその両方との使用に向けられたものである。Device-SCM-EDは、一実施形態では、特定のデバイス/SCMのペアに対して実質的に固有であってもよく、クラウド130によって生成されてもよく、システム100のセキュリティモデルに直接的に参加しない。Device-SCM-EDは、記憶および/または表現(例えば、8ビット又は16ビット対32又は64ビット)に関して、Device-EDと比較して、サイズが比較的小さくてもよい。
Device-SCM-EDは、デバイス110とSCM120との間の安全な通信チャネルを確立するのを支援するために、クラウド130、デバイス110、およびSCM120などの他のシステムコンポーネントにシステム100を介して転送され、それらによって使用されてもよい。一実施形態では、Device-SCM-EDは、ACP400および/またはACPコンテナ410内で配信されえるように、クラウド130のみに格納されてもよい。Device-SCM-IDは、場合によっては、安全に転送または格納されなくてもよい。
Device-SCM-EDの変更は期待されていない。その結果、一部のシステムコンポーネントは、デバイスオーナー10にセキュリティ異常または製品故障としての変更を報告できるようにしてもよい。セキュリティ異常は、改ざん、なりすましの試み、またはプロトコル違反の結果であるかもしれない。同じ物理的なデバイス110であっても、アプリケーションが除去され、再インストールされたり、メモリが消去されたり、またはアップグレードされたりすると、所定のデバイス110が、その製品寿命を通じて、多数のユニークなDevice-SCM-IDを循環することがあるので、製品故障が、メモリ破損から生じる可能性がある。
一実施形態では、Device-SCM-EDは、純粋にデバイス識別のために使用される、ランダムに生成された小さい識別子であってもよいし、特定のSCM120の環境内で一意であってもよい。あるいは、Device-SCM-EDが存在しなくてもよい。
Device-SCM-EDは、一実施形態では、デバイス110によって生成されてもよい。場合によっては、Device-SCM-EDに類似した複数の識別子が存在し、その場合、識別子の各々は、特定のデバイス110に固有であってもなくてもよい。例えば、デバイス110は、他の小さなランダムな識別子を含んでもよい。
一実施形態では、Device-Key鍵は、Device-SCM-Key鍵に代わって、使用中の特定のデバイス110のみに固有のものであってもよい。この実施形態では、デバイス110の登録プロセス中にDevice-Keyが生成されてもよい。あるいは、Device-Key鍵は、Device-SCM-Key鍵の代わりに、使用中のすべてのデバイス110にわたって共有されてもよい。
一実施形態では、Device-SCM-Key公開鍵は、Device-SCM-Key公開鍵を利用するシステムコンポーネントに安全に送信されず、および/または格納されないかもしれない。
Device-SCM-Key非公開鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されないかもしれない。ただし、Device-SCM-Key非公開鍵はそれでも安全に格納され得る。例えば、セキュアメモリ220を使用しないセキュアストレージは、Device-SCM-Key非公開鍵が静止時に暗号化されてもよい、そのようなデータに対するアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよい、および、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい、とのいずれか1つ以上によって達成することができる。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、Device-SCM-Key非公開鍵は安全に格納されない。
一実施形態では、Device-SCM-Key公開/非公開鍵は、鍵循環または工場リセットの結果として、変更または生成、またはその両方が行われてもよい。
一実施形態では、1つ以上の証明書がDevice-SCM-Key鍵のために使用されてもよい。あるいは、Device-SCM-Key鍵は、対称鍵であってもよい。別の代替実施形態では、Device-SCM-Key鍵はOAuth2トークンであってもよい。さらに別の代替実施形態では、別の認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが、Device-SCM-Key鍵の代わりに使用されてもよい。
後で使用するために、1つ以上のDevice-SCM-Key鍵が作成されて、デバイス110に格納されてもよい。この手法は、デバイス110が通常動作中にそのような鍵を生成する能力を持たない場合に有用であり得る。一実施形態では、デバイス110が、工場リセット後に鍵の循環および/または異なる鍵をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、デバイス110は、どのDevice-SCM-Key鍵が使用可能であるが使用中でないか、使用中であるか、廃棄されているか、または撤去されているか、を管理することができる。あるいは、オンデマンド(1度に1つ)またはバッチで(本明細書に記載されるように後の時点での使用のために)など、Device-SCM-Key鍵がクラウド130(または別のシステムコンポーネント)によって生成され、通常の動作中に、デバイス110に格納されてもよい。
一実施形態では、Device-SCM-Key鍵が存在しなくてもよく、この場合、システムコンポーネントがデバイス110と通信し、および/またはデバイス110の真正性を検証するために他の手段が使用されてもよい。
E.User-SCM-KeyおよびUser-SCM-ID
一実施形態では、User-SCM-Key鍵は、ユーザーアカウントとSCM120との間の特定のペアリング(ユーザーアカウント/SCMペア)を一意的に識別することができる。図示された実施形態におけるUser-SCM-Key鍵は、クラウド130内のユーザーアカウントサービスによって生成され格納される非対称非公開/公開鍵のペアである。User-SCM-Key鍵は、クラウド130が、ユーザーアカウントが認可を発行されていないSCM120などの新しいSCM120に対するユーザーのユーザーアカウントに関連付けられたデバイス110への認可を発行するように要求するときに生成されてもよい。User-SCM-Key鍵は、ユーザーのユーザーアカウントに関連付けられたデバイス110が、製造中など、工場リセットSCM120のオーナーになることを要求しているとき、またはオーナーシップを移転するときにも生成されてもよい。User-SCM-Keyは、少なくともユーザーアカウントサービスによって、ACP400に署名する(および、SCM120によって、ACPコンテナ410が承認されたことを復号して検証する)ために使用される。
この手法は、侵害された各User-SCM-Key鍵の露出を単一のSCM120に制限することができるので、実質的に一意のUser-SCM-Key鍵が各ユーザーアカウント/SCMのペアに対して使用されることができる。これは、特定のユーザーアカウントに関連付けられたすべてのSCM120に対して(例えば、User-Keyを用いて)単一の鍵が使用された場合のように、特定のユーザーアカウントに関連付けられたすべてのSCM120への露出とは対照的である。
一実施形態におけるUser-SCM-Key非公開鍵は、クラウド130のユーザーアカウントサービスによって安全に格納されてもよい。User-SCM-Key非公開鍵は、他のシステムコンポーネントに送信されなくてもよい。一方、User-SCM-Key公開鍵は、SCM120のような、User-SCM-Key公開鍵を利用するシステムコンポーネントに安全に送信され、格納されてもよい。
User-SCM-Key非公開鍵は、関連付けられたSCM120へのメッセージを暗号化および/または署名するためにユーザーアカウントサービスによって使用されてもよく、関連付けられたSCM120からユーザーアカウントサービスに送信されたメッセージを復号および/または検証するために使用されてもよい。User-SCM-Key公開鍵は、ユーザーアカウントサービスから発せられたメッセージを復号および/または検証するためにSCM120によって使用されてもよく、SCM120からユーザーアカウントサービス宛のメッセージを暗号化および/または署名するために使用されてもよい。
一実施形態では、User-SCM-KeyがDevice-SCM-Keyの代わりに使用されてもよい。この実施形態では、ユーザーアカウントに関連付けられたすべてのデバイス110は、(個々のDevice-SCM-Key鍵の代わりに)同じUser-SCM-Keyを使用してもよい。
一実施形態では、User-SCM-Key鍵とDevice-SCM-Key鍵の両方が使用される。この実施形態では、例えば、ACP400のACP外層2は、User-SCM-Key鍵を使用して署名されてもよいが、デバイス110は、Device-SCM-Key鍵を使用して個別に認証される。
一実施形態では、User-Key鍵は、User-SCM-Key鍵の代わりに、特定のユーザーアカウントにのみ固有であってもよい。この実施形態では、User-Keyは、ユーザーアカウント作成プロセス中に生成されてもよい。あるいは、User-Key鍵は、User-SCM-Key鍵の代わりに、そのユーザーのユーザーアカウントに関連付けられたすべてのデバイス110にわたって共有されてもよい。
一実施形態では、User-SCM-Key公開鍵は、User-SCM-Key公開鍵を利用するシステムコンポーネントに安全に送信されず、および/または格納されないかもしれない。
User-SCM-Key非公開鍵は、セキュアメモリ220またはセキュアエレメント、または同等のハードウェアモジュールに格納されないかもしれない。ただし、User-SCM-Key非公開鍵はそれでも安全に格納されることができる。例えば、セキュアメモリ220を使用しないセキュアストレージは、User-SCM-Key非公開鍵が静止時に暗号化されてもよい、そのようなデータに対するアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよい、および、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい、とのいずれか1つ以上によって達成することができる。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、User-SCM-Key非公開鍵は安全に格納されない。
一実施形態では、User-SCM-Key公開/非公開鍵は、鍵循環または工場リセットの結果として、変更または生成されるか、またはその両方が行われてもよい。
一実施形態では、1つ以上の証明書がUser-SCM-Keyのために使用されてもよい。あるいは、User-SCM-Key鍵は対称鍵であってもよい。別の代替実施形態では、User-SCM-Key鍵はOAuth2トークンであってもよい。さらに別の代替実施形態では、別の認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが、User-SCM-Key鍵の代わりに使用される。
一実施形態では、後の使用のため、特定のSCM120のために(またはグローバル鍵プールとしてのすべてのSCM120のために)、1つ以上のUser-SCM-Key鍵が、クラウド130のユーザーアカウントサービスによって作成され格納されてもよい。この手法は、クラウド130のユーザーアカウントサービスに、通常動作中、そのような鍵を生成させることを避けることができる。クラウド130のユーザーアカウントサービスが、鍵の循環および/または複数のSCM120をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、クラウド130のユーザーアカウントサービスは、どのUser-SCM-Key鍵が使用可能であるが使用中でないか、使用中であるか、廃棄されているかまたは撤去されているかを管理することができる。
一実施形態では、User-SCM-Key鍵が存在しなくてもよく、その場合、システムコンポーネントがユーザーアカウントサービスと通信し、および/またはユーザーアカウントサービスの真正性を検証するために他の手段が使用されてもよい。
一実施形態では、Device-SCM-IDと同様に、User-SCM-IDが使用されてもよい。
F.Cloud-SCM-KeyとCloud-SCM-Approval-Kev
Cloud-SCM-Key鍵は、SCM120とクラウド130との間の特定のペアリング(つまりクラウド/SCMペア)を一意的に識別することができる。図示の実施形態におけるCloud-SCM-Keyは、クラウド130によって生成され格納される非対称の非公開/公開鍵のペアであってもよい。Cloud-SCM-Keyは、製造中などの工場リセットの後、最初のオーナーデバイス110がSCM120に対して確立されるとき、またはオーナーシップを移転するときに、生成されてもよい。
実質的に固有のCloud-SCM-Key鍵は、各クラウド/SCMのペアに対して使用されてもよい。この手法は、特定のクラウド130に関連付けられたすべてのSCM120とは違って、侵害されたCloud-SCM-Key鍵の露出を単一のSCM120に実質的に制限することができる。これは、特定のクラウド130に関連付けられたすべてのSCM120に対して(例えば、Cloud-Keyを用いて)単一の鍵が使用された場合のように、特定のクラウド130に関連付けられたすべてのSCM120への露出とは対照的である。
Cloud-SCM-Key非公開鍵は、クラウド130のセキュアメモリ220、またはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュール内に安全に格納されてもよい。Cloud-SCM-Key非公開鍵は、他のシステムコンポーネントに送信されないかもしれない。Cloud-SCM-Key公開鍵は、クラウド130、デバイス110、またはSCM120のような、Cloud-SCM-Key公開鍵を利用するシステムコンポーネントに安全に送信され、格納されてもよい。Cloud-SCM-Key非公開鍵は、関連付けられたSCM120のためのメッセージを暗号化および/または署名するためにクラウド130によって使用されてもよいし、関連付けられたSCM120からクラウド130に送信されたメッセージを復号および/または検証するために使用されてもよい。Cloud-SCM-Key公開鍵は、クラウド130から発せられたメッセージを復号および/または検証するためにSCM120によって使用されてもよいし、SCM120からクラウド130宛のメッセージを暗号化および/または署名するために使用されてもよい。メッセージは、SCM120に直接送信されてもよいし、送信されなくてもよい。例えば、認可を発行するプロセス中に、署名されたACP400が、承認のためにオーナーデバイス110に送信されてもよい。承認後、クラウド130は、デバイス110を介してSCM120に配信される、完成したACPコンテナ410(以前に署名されたACP400を含む)に署名してもよい。
一実施形態では、クラウド130内の異なるサービスのための1つ以上のCloud-SCM-Key鍵のような複数のCloud-SCM-Key鍵が利用されてもよい。例えば、クラウド認可リクエストサービスのための1つのCloud-SCM-Key鍵と、クラウド認可承認サービスのための別ののCloud-SCM-Approval-Key鍵が、本明細書で以前に述べたように存在し得る。
一実施形態では、各クラウド130および/またはクラウドサービスに対してCloud-ID(Device-IDに類似)が存在してもよい。
一実施形態では、Cloud-Key鍵は、Cloud-SCM-Key鍵の代わりに、特定のクラウド130および/またはクラウドサービスにのみ固有のものであってもよい。この実施形態では、Cloud-Keyが、クラウド130のプロビジョニングおよび/または初期セットアップ中に生成されてもよい。
一実施形態では、Cloud-SCM-Key公開鍵は、Cloud-SCM-Key公開鍵を利用するシステムコンポーネントに安全に送信されず、および/または格納されないかもしれない。
Cloud-SCM-Key非公開鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されないかもしれない。ただし、Cloud-SCM-Key非公開鍵はそれでも安全に格納されえる。例えば、セキュアメモリ220を使用しないセキュアストレージは、Cloud-SCM-Key非公開鍵が静止時に暗号化されてもよい、そのようなデータに対するアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよい、および、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい、とのいずれか1つ以上によって達成することができる。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、Cloud-SCM-Key非公開鍵は安全に格納されない。
一実施形態では、鍵循環の結果として、Cloud-SCM-Key公開/非公開鍵が変更または生成され、またはその両方が行なわれてもよい。Cloud-SCM-Key公開/非公開鍵は、工場リセットの結果しては変更できない。
一実施形態では、1つ以上の証明書がCloud-SCM-Key鍵に使用されてもよい。あるいは、Cloud-SCM-Key鍵は対称鍵であってもよい。別の代替実施形態では、Cloud-SCM-Key鍵はOAuth2トークンである。さらに別の代替実施形態では、代わりの認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムがCloud-SCM-Key鍵の代わりに使用されてもよい。
一実施形態では、後で使用するために、特定のSCM120のために(またはグローバル鍵プールとしてのすべてのSCM120のために)、1つ以上のCloud-SCM-Key鍵が作成され、クラウド130に格納されてもよい。この手法は、クラウド130に、通常動作中、そのような鍵を生成させることを避けることができる。クラウド130が鍵の循環および/または複数のSCM120をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、クラウド130は、どのCloud-SCM-Key鍵が使用可能であるが使用中でないか、使用中であるか、廃棄されているか、または撤去されているかを管理することができる。
一実施形態では、Cloud-SCM-Key鍵は存在しなくてもよく、この場合、システムコンポーネントがクラウド130と通信し、および/またはクラウド130の真正性を検証するために他の手段が使用されてもよい。
G.Root-Cert
Root-Certは、一実施形態によるシステム100のルート証明書であってもよい。Root-Certは、システム100の信頼のルーツを確立する自己署名証明書であってもよい。非公開Root-Certは、オフラインであるか、またはクラウド130または他のシステムコンポーネントにとって一般的にアクセスできないサーバー上に安全に格納することができる。公開Root-Certは、クラウド130、およびデバイス110またはOEMクラウド135などのクラウド130と通信することができる各システムコンポーネントに配布されてもよい。
一実施形態では、Root-Certは、証明機関によって署名されてもよい。
一実施形態では、複数のRoot-Certが存在してもよい。例えば、システム100、クラウド130、クラウドサービス、またはデバイス110、およびOEMクラウド135、またはそれらの任意の組み合わせの異なる例に対するRoot-Certが存在してもよい。複数のRoot-Certの各々は、自己署名されてもよいし、証明機関によって署名されてもよい。一例では、システム100は、オンライン検証のための1つの信頼ルートと、オフライン検証のためのもう1つとを有して構成されてもよい。
場合によっては、Root-Certをオフラインで格納することは厳密には必要ないので、一実施形態では、Root-Certがオンラインのサーバーに格納されてもよい。
Root-Certのコンテンツおよび/または作成プロセスは、アプリケーションごとに異なってもよい。一実施形態では、Root-Certは、非対称の公開/非公開鍵のペアであってもよいし、Root-Certが対称鍵であってもよい。
H.Cloud-Node-Cert
図示された実施形態におけるCloud-Node-Certは、対応するシステム100の非公開Root-Certによって署名された証明書である。したがって、各Cloud-Node-Certは、特定のクラウドサーバー130のアイデンティティを検証するための、信頼のチェーンの一部を形成することができる。非公開Cloud-Node-Certは、各クラウドサーバー130に安全に格納されてもよい。公開Cloud-Node-Certは、クラウド130と、例えばデバイス110およびOEMクラウド135を含むクラウド130と通信するかもしれない各システムコンポーネントとに配信されてもよい。いずれかの他の暗号化鍵が、暗号化鍵ではなく証明書として具体化される場合、これらの証明書は、Root-CertまたはCloud-Node-Cert、あるいは代替の信頼のルート証明書によって署名されてもよい。
一実施形態では、システム100、クラウド130、クラウドサービス、デバイス110、またはOEMクラウド135、もしくはそれらの任意の組み合わせの異なる例および/またはクラスタのためのレイヤのような、Cloud-Node-Certの複数のレイヤが存在してもよい。それぞれの子Cloud-Node-Cert(つまり、下位レベル)は、その親、つまり上位レベルの非公開Cloud-Node-Certによって署名されてもよく、それにより、より長い信頼のチェーンを形成することができる。
Cloud-Node-Certは、様々な方法で署名されることができる。例えば、Cloud-Node-Certは、一実施形態では自己署名されていてもよいし、または、Cloud-Node-Certは非親証明書または非対称の非公開/公開鍵によって署名されてもよい。
一実施形態では、Cloud-Node-Certは、非対称の公開/非公開鍵のペアである。あるいは、Cloud-Node-Certは対称鍵であってもよい。
I.Device-Rights-Key
Device-Rights-Key鍵は、クラウド130の権利管理システムに対する特定のデバイス110を一意的に識別することができる。Device-Rights-Key鍵は、デバイス110が最初にクラウド130に登録される前のある時点で、デバイス110によって生成され格納される非対称の非公開/公開鍵のペアであってもよい。Device-Rights-Key非公開鍵は、デバイス110内のセキュアメモリ220、またはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュールに安全に格納することができる。Device-Rights-Key非公開鍵は、他のシステムコンポーネントには送信されないかもしれない。一方、Device-Rights-Key公開鍵は、クラウド130などのDevice-Rights-Key公開鍵を利用するシステムコンポーネントに安全に送信され、記憶されることができる。
Device-Rights-Key非公開鍵は、デバイス110がクラウド130の権利管理システムに送信するメッセージを暗号化および/または署名するためにデバイス110によって使用されることができ、および、クラウド130の権利管理システムからデバイスに送信されるメッセージを復号しおよび/または検証するために使用されることができる。Device-Rights-Key公開鍵は、特定のデバイス110から発信されるメッセージを復号および/または検証するためにクラウド130の権利管理システムによって使用されることができ、および、特定のデバイス110宛てのメッセージを暗号化および/または署名するために使用されることができる。
一実施形態では、Device-Rights-Key鍵は、デバイス110ごとに実質的に一意ではないかもしれない。そのような構成の例には、Device-Rights-Key鍵が、アカウントごとに実質的に一意である、アカウント内の一定の複数のデバイス110のために使用される、もしくは、すべてのデバイス110に対して全体的に同一またはクラウド130の特定の権利管理システムにのみ固有である、ことが含まれる。デバイスごとに実質的に一意ではないDevice-Rights-Key鍵の別の例は、特定の組織によって所有される、すべてのデバイス110のために使用されるDevice-Rights-Key鍵である。
一実施形態では、Device-Rights-Key鍵は、クラウド130によって生成され、デバイス110の登録プロセスの一部としてデバイス110に配信されてもよい。
一実施形態では、Device-Rights-ID(Device-IDに類似)が、クラウド130の権利管理システムと共に使用するために、各デバイス110に関連付けられてもよい。
一実施形態では、Device-Rights-Key公開鍵は、Device-Rights-Key公開鍵を利用するシステムコンポーネントに安全に送信されず、および/または格納されない。
Device-Rights-Key非公開鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されないかもしれない。ただし、それでもDevice-Rights-Key非公開鍵は安全に格納されることができる。例えば、セキュアメモリ220を使用しないセキュアストレージは、Device-Rights-Key非公開鍵が静止時に暗号化されてもよい、そのようなデータに対するアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよい、および、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい、とのいずれか1つ以上によって達成することができる。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、Device-Rights-Key非公開鍵は安全に格納されない。
一実施形態では、Device-Rights-Key公開/非公開鍵は、鍵循環の結果として、変更または生成され、またはその両方が行なわれてもよい。一実施形態のDevice-Rights-Key公開/非公開鍵は、工場リセットの結果として変更されないかもしれない。
一実施形態では、1つ以上の証明書がDevice-Rights-Key鍵のために使用されてもよい。あるいは、Device-Rights-Key鍵は、対称鍵であってもよい。別の代替実施形態では、Device-Rights-Key鍵はOAuth2トークンであってもよい。さらに別の代替実施形態では、代わりの認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが、Device-Rights-Key鍵の代わりに使用されてもよい。
後で使用するために、1つ以上のDevice-Rights-Key鍵が作成され、デバイス110に格納されてもよい。この手法は、デバイス110が、通常動作中、そのような鍵を生成する能力を持たない場合に有用であり得る。一実施形態では、デバイス110が、鍵の循環および/または工場リセット後の異なる鍵をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、デバイス110が、どのDevice-Rights-Key鍵が使用可能であるが使用中ではないか、使用中であるか、廃棄されているか、または撤去されているか、を管理することができる。あるいは、オンデマンド(1度に1つ)またはバッチで(本明細書に記載されるように後の時点での使用のために)など、Device-Rights-Key鍵がクラウド130(または別のシステムコンポーネント)によって生成され、通常の動作中に、デバイス110に格納されてもよい。
一実施形態では、Device-Rights-Key鍵は存在しなくてもよく、この場合、認可タイプまたは他の何らかの手段が、デバイスの権利を確立するために使用されてもよいし、または、デバイス110が、またはクラウド130の権利管理システムと通信および/または権利管理システムの真正性を検証できるように、他のなんらかの手段が使用されてもよい。
J.ACP-Version-Key
ACP-Version-Key鍵は、ACPコンテナバージョンパッケージ412(ACPバージョン情報を含むセキュアパッケージ)のコンテキスト内で使用されることができ、クラウド130とSCM120との間の特定のペアリング(または、クラウド/SCMペア)を一意的に識別することができる。図示された実施形態におけるACP-Version-Key鍵は、製造中など、工場リセット後に最初のオーナーデバイス110がSCM120に対して確立されるとき、またはオーナーシップを移転するときに、クラウド130によって生成され格納される非対称の非公開/公開鍵のペアである。図示された実施形態において、ACP-Version-Key鍵は、デバイス110に提供されないかもしれない。
潜在的に固有のACP-Version-Key鍵は、各クラウド/SCMペアに対して使用されてもよい。この手法は、特定のクラウド130に関連付けられたすべてのSCM120とは違って、侵害された各ACP-Version-Key鍵の露出を単一のSCM120に実質的に制限することができる。これは、特定のクラウド130に関連付けられたすべてのSCMに対し、(例えば、1つのACP-Keyを用いて)単一の鍵が使用された場合のように、特定のクラウド130に関連付けられたすべてのSCM120への露出とは対照的である。
ACP-Version-Key非公開鍵は、クラウド130のセキュアメモリ220、セキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュール内に安全に格納されてもよい。ACP-Version-Key非公開鍵は、他のシステムコンポーネントに送信されないかもしれない。一方、ACP-Version-Key公開鍵は、SCM120などの、ACP-Version-Key公開鍵を利用するシステムコンポーネントに安全に送信され、格納されてもよい。ACP-Version-Key非公開鍵は、関連付けられたSCM120のためのメッセージを暗号化および/または署名するためにクラウド130によって使用されてもよいし、関連付けられたSCM120からクラウド130に送信されたメッセージを復号および/または検証するために使用されてもよい。ACP-Version-Key公開鍵は、クラウドから発せられたメッセージを復号および/または検証するためにSCM120によって使用されてもよいし、SCM120からクラウド130宛のメッセージを暗号化および/または署名するために使用されてもよい。
一実施形態では、Cloud-SCM-Key鍵がACP-Version-Key鍵に使用されてもよい。
一実施形態では、ACP-Version-Key非公開鍵は、SCM-Keyと同様の方法で生成および管理されてもよい。例えば、ACP-Version-Key非公開鍵は、SCM120上に存在してもよく、公開鍵は、クラウド130内に存在してもよい。
代替の実施形態では、特定のクラウド130にのみ固有のACP-Key鍵が、ACP-Version-Key鍵の代わりに実装されてもよい。
一実施形態では、ACP-Version-Key公開鍵は、ACP-Version-Key公開鍵を利用するシステムコンポーネントに安全に送信されず、および/または格納されないかもしれない。
一実施形態では、ACP-Version-Key非公開鍵は、セキュアメモリ220またはセキュアエレメントまたは同等のハードウェアモジュールに格納されないかもしれない。しかし、ACP-Version-Key非公開鍵は、それでも安全に格納されることができる。例えば、セキュアメモリ220を使用しないセキュアストレージは、ACP-Version-Key非公開鍵が静止時に暗号化されてもよい、そのようなデータに対するアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよい、および、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい、とのいずれか1つ以上によって達成することができる。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、ACP-Version-Key非公開鍵は安全に格納されない。
一実施形態では、ACP-Version-Key公開/非公開鍵は、鍵の循環の結果として、変更または生成され、またはその両方が行われてもよい。
一実施形態では、ACP-Version-Key公開/非公開鍵は、工場リセットの結果として、変更されないかもしれない。
1つ以上の証明書が、ACP-Version-Key鍵に使用されてもよい。あるいは、ACP-Version-Key鍵は、対称鍵であってもよい。別の代替実施形態では、ACP-Version-Key鍵はOAuth2トークンであってもよい。さらに別の代替実施形態では、代わりの認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが、ACP-Version-Key鍵の代わりに使用されてもよい。
一実施形態では、後で使用するため、特定のSCM120のために(またはグローバル鍵プールとしてのすべてのSCM120のために)、1つ以上のACP-Version-Key鍵が作成され、クラウド130に格納されてもよい。この手法は、クラウド130に、通常動作中、このような鍵を生成させることを回避することができる。クラウド130が鍵の循環および/または複数のSCM120をサポートすることができるように、複数の鍵が利用されてもよい。この実施形態では、クラウド130は、どのACP-Version-Key鍵が使用可能であるが使用中でないか、使用中であるか、または廃棄されているかまたは撤去されているか、を管理することができる。
一実施形態では、ACP-Version-Key鍵は存在しなくてもよく、この場合、システムコンポーネントがACPコンテナバージョンパッケージ412と通信し、および/またはACPコンテナバージョンパッケージ412の真正性を検証するために、他の手段が使用されてもよい。一実施形態では、システムコンポーネントは、ACPコンテナバージョンパッケージ412のすべてで真正性を検証しなくてもよい。
一実施形態では、複数のACP-Version-Key鍵が存在してもよい。例えば、各SCM120が2つ以上のACP400を記憶し使用することができるシステムであり、したがって、それは、所定のSCMが複数のACPコンテナ410および/または複数のACPコンテナバージョンパッケージ412および/または複数のACP-Version-Key鍵を使用する複数のACPコンテナコレクション414を受信することが必要と考えられてもよい。
K.Device-SCM-Sessuion-Key
Device-SCM-Sessuion-Key鍵は、TLSマスターシークレットと類似した方法で認証されるように、少なくとも1つのペアが認証された後に、特定のデバイス110とSCM120との間に定義されるペアリング(または、デバイス/SCMペア)間での通信を保護するために使用される対象鍵であってもよい。システム性能および制約のあるシステムコンポーネントとの応答性を向上させるために、Device-SCM-Session-Key鍵は(TLSセッションの続行と同様の方法でなど)接続を継続してもよいし、本明細書で説明するように定期的に循環されてもよい。
デバイス/SCMペア内のデバイスのDevice-SCM-EDは、接続を確立および/または再開するときに、適切なDevice-SCM-Session-Key鍵を特定および/または選択するために使用されてもよい。
一実施形態では、Device-SCM-Session-ID(Device-SCM-EDに類似)が各デバイス/SCMペアに提供され、接続を確立および/または再開するときに、適切なDevice-SCM-Session-Key鍵を特定および/または選択するために使用されてもよい。これは、TLSセッションIDまたはセッションチケットと同様の方法で行われることができる。
一実施形態では、Device-SCM-Session-Key鍵は非対称鍵のペアである。あるいは、Device-SCM-Session-Key鍵は、OAuth2トークンであってもよい。別の代替の実施形態では、代わりの認証鍵またはトークンタイプおよび/またはチャレンジ/レスポンスメカニズムが、Device-SCM-Session-Key鍵の代わりに使用されてもよい。
一実施形態では、Device-SCM-Session-Key鍵は存在しなくてもよく、この場合、デバイス110とSCM120が安全に通信するために他の手段が使用されてもよいし、および/または、デバイス110とSCM120が安全に通信しなくてもよい。
L.セッショントークン
クラウド130および/またはOEMクラウド135と通信するシステムコンポーネント(デバイス110など)は、追加のセキュリティ対策として使用するために、OEMクラウドログインプロセスの間にOEMクラウドセッショントークンおよび/またはクラウドセッショントークンを取得してもよい。OEMクラウドセッショントークンは、すべてのOEMクラウド135メッセージに加えて、OEMクラウド135によって管理される他のデータアイテムへの任意の内部マッピングに付随してもよい。クラウドセッショントークンは、特定のCloud-User-EDおよびOEM-EDにマッピングすることができ、クラウド130が特定のCloud-User-EDおよびOEM-EDに関連付けられたデータへのアクセスを制限することができる、すべてのクラウド130メッセージに付随してもよい。OEMクラウド135は、Cloud-to-OEMクラウドセッショントークンを使用して、クラウド130と通信することができる。Cloud-to-OEMクラウドセッショントークンは、Cloud-to-OEMクラウドセッショントークンが、特定のOEM-IDと関連付けられたデータへのアクセスのみを制限することができることを除いて、クラウドセッショントークンと同様であってもよい。
クラウド130とOEMクラウド135は、トークンの有効期限が切れるように、セッショントークンを周期的に循環させてもよい。さまざまな状況下で、またはログインごとなどのイベントに応じて、または疑わしいアクティビティが発生したときやメッセージの検証が失敗したとき、循環が生じてもよい。
OEMクラウドセッショントークンとクラウドセッショントークンは、一実施形態では同じであってもよい。あるいは、OEMクラウドセッショントークンは使用されないかもしれない。代替の実施形態では、クラウドセッショントークンが使用されないかもしれない。追加的に、または代替的に、Cloud-to-OEMクラウドセッショントークンは使用されないかもしれない。
M.その他の鍵
1つの目的専用であるおよび/または一時的である、他の鍵がシステム100内に存在してもよい。専用の目的の例は、特定のメッセージセット内で、または特定のシステムコンポーネントに対して内部的に利用される鍵である。一時的である例には、TLSやDTLSなどの標準セキュリティプロトコルのコンテキスト内で動作する他のシステムコンポーネント間で利用されるセッション鍵が含まれる。
N.ユーザー
一実施形態では、ユーザー10は、システムにおいて、暗号鍵と同様の役割を果たしてもよい。ユーザー10は、認証(または2因子または多因子認証)メカニズムのために使用される、またはシステム100内のシステムコンポーネントによる承認ゲートに関連して使用される、暗号鍵として組み込むことができる以下の潜在的に固有の特性/特徴を有する。
1)目および/または顔(例えば、網膜/フェイシャルキー/サイン、レシートの視覚的確認)
2)指紋(例えば、フィンガープリントキー/署名、Apple Touch IDなどの確証情報)
3)電子メールアクセス(例えば、電子メールアカウントへの実証されたアクセス)
4)SMSアクセス(例えば、SMSメッセージへの実証されたアクセス)
5)プッシュ通知アクセス(例えば、プッシュ通知への実証されたアクセス)
6)画面アクセスまたはコード入力(例えば、デバイス画面への実証されたアクセス)
7)近接性(例えば、微小位置に基づく近接性、またはIR検出に基づく近接性などのシステムコンポーネントへの近接性)
8)アクセス(例えば、ボタンプッシュなどのシステムコンポーネントへの実証された物理的アクセス)
9)他のデバイス(例えば、時計またはバンドなどの他のユーザーデバイス)への近接性またはアクセス
XIII.鍵の循環
一実施形態による、鍵の回転または鍵の更新としても知られている鍵の循環は、変更をユーザーに直接通知することなく、またはユーザーとのやり取りを必要とすることなく、既存の対象物に対して鍵が変更されるプロセスである。例えば、認可、デバイス110、SCM120、クラウド130、機器コンポーネント130、およびOEMクラウド135を含む、対象物に対する鍵が変更されることができる。
鍵は、数時間毎、毎日、毎週、毎月、6ヶ月毎、または毎年、もしくは侵害または異常が検出されたときなど、周期的に循環させることができる。変更は、自動的に、または管理アクションまたは操作アクションを通じてなど手動で行われてもよい。
鍵の循環を適切にサポートすることは、システム100のための集中的な作業であってもよい。オフラインであるかもしれないシステムコンポーネントには1つの問題があり、鍵の変更要求が、まだ別の鍵の変更要求の前に、ターゲットとするシステムコンポーネントに配信されないかもしれない。例えば、連続的な鍵の循環処理は、鍵の変更の配信不能または配信遅延を招く可能性がある。鍵(例えば、ACP400)に依存する設定変更も、システムコンポーネントがオフラインであることにより、配信不能または配信遅延との結果を招くかもしれない。多くのシステムコンポーネントにとって、鍵の変更は迅速に配信されるので、これは起こりそうもない。しかし、SCM120が数日、数ヶ月、または数年間使用されないままである可能性があり、したがって、いくつかの鍵の循環イベントが見逃される可能性があり、その後、以前のオーナーは、システム100を使用する新しいオーナーにSCM120を移譲することができなくなってしまう可能性がある。より具体的には、この場合、SCM120は、更新されたACP400または更新されたACPコンテナ410を復号することができず、および/または循環されたデバイス110を認証することができない。この場合、SCM120を工場リセットすることは許容され得るかもしれない。別のシナリオでは、数時間にわたって、SCM120を(オーナーまたはゲストによって)使用不能にする複数の鍵の循環イベントが発生した場合、ユーザーエクスペリエンスまたはユーザビリティの観点からは許容されない可能性がある。
複数の鍵に影響を及ぼす鍵の循環イベントもありえる。複数の鍵は、複数のSCM120を管理するデバイス110、または、複数の認証されたアカウントおよび/またはデバイス110を有するSCM120において、システム全体の鍵の循環など、様々な状況下で影響を受ける可能性がある。シーケンスの例が以下に示される。
一実施形態によるキーを循環させる方法が、図12に示され、全体的に1200で指定される。クラウド130は、デバイス110に、新しいCloud-SCM-Key鍵および他のクラウド生成鍵(例えば、User-SCM-Key)および/またはクラウドと通信するために必要とされる鍵(トークンなど)を提供して、所定のSCM120に対する鍵を循環させるように要求する(ステップ1201)。デバイス110は、新しいDevice-SCM-Key鍵を生成し、それを鍵の循環要求に応答してクラウド130に送信する(ステップ1202)。
クラウド130が、SCM120と関連付けられたすべてのデバイス110から更新されたDevice-SCM-Key(および、必要とされる任意の他の入力鍵)を受信した後のある時点で、クラウド130は、SCM120へ配信するために(例えば、ACPコンテナ410を介して)、更新されたACP400(「バージョン2」)をデバイス110に送信する(ステップ1203)。デバイス110は、更新されたACP400をSCM120に配信し、それは、必要な全ての更新された鍵を含む(ステップ1204)。SCM120は、ACP400の更新が成功したことをデバイス110に通知する(ステップ1205)。デバイス110は、SCM120が「バージョン2」のACP400を適用したことをクラウド130に通知する。これにより、クラウド130は、各SCM120のACP400の適切なバージョンに対して適切な鍵のセットを維持することができ、その結果、SCM120またはデバイス110(または他のシステムコンポーネント)が鍵の更新をし損なった場合、リカバリのため、以前の更新が順番通りに配信されることができ、または最新の更新が以前の鍵を使用して配信されることができる(ステップ1206)。
ステップ1207−1211は、第2の鍵循環イベントを示す。ある時点で、クラウド130は、SCM120用のクラウド生成鍵の1つを循環させ、SCM120へ配信するために(例えば、ACPコンテナ410を介して)、更新されたACP400(「バージョン3」)をデバイス110に配信する(ステップ1207、1208)。ステップ1209−1211は、ステップ1204−1206と同様であり、SCM120が「バージョン3」のACP400を適用したことをクラウド130が通知されることになる。
SCM120における鍵を循環させるために、「新しい鍵」と「古い鍵」(既知の鍵)の両方が、ターゲットSCM120のためのACP400に含有されえる。ACP400がSCM120によって受理されるたびに、受領確認が、デバイス110などのオンラインシステムコンポーネントを介して、ある時点でクラウド130に返送されることができる。特定のSCM120が最後にどのACPバージョンを受理したかを追跡することによって、クラウド130は、送信中のACP400がSCM120によって受理されるまで、「古い鍵」のフィールドが送信中の(以前の/不受理の)ACP400とは異なる、鍵の変更を含む、そのSCM120に対する後続のACPコンテナ410の生成を防止することができる。
代替の実施形態では、どのACP400がSCM120によって受理されたかにかかわらず、クラウド130は、そのSCM120に対して通常通りの後続のACPコンテナ410を送信してもよい。この実施形態では、ACPコンテナバージョンパッケージ412、ACPコンテナ410、ACP400、および/またはクラウドAPIレスポンスに最小限の先行バージョンが追加されてもよい。
SCM120が、その現在のACPバージョンが最小限の先行バージョン(すなわち、SCM120の現行の鍵のセットが有効であった最後のバージョン)以上でないことを検出した場合、SCM120、ACPの更新を拒絶し、最小限の先行バージョンを要求してもよい。これは、より古いACPコンテナ410の連続した後戻りという結果となり、その後、更新されたパッケージが順番通りに送信されるか、または送信システムコンポーネント(例えば、デバイス110)によって実行されることになる。ACP更新の拒絶は、クラウド130が、各SCM120に対して、または少なくとも最新のACPを受信していないSCM120に対して、以前に確定されたACPコンテナ410のコピーを維持することを伴い得る。
追加的にまたは代替的に、最小限先行バージョンは、クラウドAPIへの応答を介して受信システムコンポーネントにだけ通信されてもよく、その後、受信システムコンポーネントは適切なACPコンテナ410を要求することができる。追加的にまたは代替的に、クラウド130は、実行可能なACPコンテナ410のみをSCM120に順番に提供してもよい。すなわち、クラウドはいかなる順番の並べかえを行わなくてもよい。
一実施形態では、送信中のACP400が特定のSCM120によってまだ受理されていない場合、クラウド130は、送信中のACP400を受け入れるまで、そのSCMに対する後続のACPコンテナ410を送信しなくてもよい。
一実施形態では、送信中のACP400が特定のSCM120によってまだ受理されていない場合、クラウド130は、送信中の鍵の変更を新しいACPバージョンに併合してもよい。言い換えれば、クラウド130は、各システムコンポーネントのための1つ以上の以前の鍵を維持し、そして、ターゲットSCM120の最後の既知の状態に基づいて適切な鍵を使用してもよい。
図示された実施形態では、ACPコンテナ410は特定のSCM120を対象とし、1つ以上のシステムコンポーネントまたはサービスによって署名されているので、SCM-KeyおよびCloud-SCM-Keyなど、ACP400内に含まれるもの以外の鍵、並びに識別子を含む他の非鍵属性も同時に更新されてもよい。
循環される鍵のみを含むACPコンテナ410に関して、認可がアカウントに発行されない(例えば、代わりに認可は特定のデバイス110に発行される)一実施形態では、オーナー10は、更新されたACPを承認することは必要とされないかもしれず、従って、オーナーデバイス110は、ACP外層2を暗号化して署名しないかもしれない。代わりに、オーナーデバイス識別子が、そのオーナーデバイス識別子は鍵循環ACP400であることを示す値に設定され、次いで、ACP外層2が、別の層(例えば、ACP外層1またはACP外層3)によって使用される鍵を用いて暗号化されてもよい。追加的にまたは代替的に、鍵循環ACP400は、暗号化されなくてもよく、この場合、署名および鍵フィールドはさらなる検証に使用されてもよい。
循環される鍵のみを含むACPコンテナ410に関して、認可がアカウントに発行される一実施形態において、オーナー10は、更新されたACP400を承認する必要はないかもしれないが、ユーザーアカウントサービスは、以前として、通常通りにACP外層2を暗号化し、署名することができる。
ACP400は、パッケージが正当であることをさらに検証するように設定され得る鍵循環属性を有することができる。正当性は、ACP外層2の暗号化、もしくはその欠如が意図的であったことを示してもよい。ACPコンテナ410の検証の間、SCM120は、SCM120の現行の鍵(すなわち、SCM120によって受信された、以前のACP400において特定された鍵)が、新しいACP内の「古い鍵」と一致することを検証することができる。いずれかの鍵が一致しない場合、ACP400は拒絶され得る。
代替の実施形態では、鍵循環ACP400について、SCM120は、(認可に関連する鍵を除いて)認可が更新されていないことを検証してもよい。別の代替の実施形態では、鍵循環ACP400について、鍵だけが更新されてもよい。
代替の実施形態では、オーナーデバイス110は、ユーザーの介入有りで、または無しで、鍵変更ACP400を承認し、可能であれば署名するように構成されてもよい。オーナーデバイス110は、この状況で自動的にACP400を署名するだけでもよい。代替の実施形態では、オーナーデバイスは、ユーザーの介入有りで、鍵変更ACP400を承認し、可能であれば署名するように構成されてもよい。ユーザー10は、ACP400がいずれかの他の認可変更であるかのように、ACP400を承認することを要求されるかもしれない。
鍵を循環するとき、システムコンポーネントは、見逃した鍵循環ACP400の対応を支援するために、しばらくの間、零またはそれ以上の先行鍵を保持してもよい。システムコンポーネントは、より最近の鍵が失敗した場合、以前の鍵の使用を試みてもよい。システムコンポーネントは、最も最近の鍵を使用する、新たな鍵のない、別の設定が到着する後まで、またはある時間が経過するまでなど、そうすることがもはや必要ではないと判定される時点まで、先行鍵を存続させてもよい。
一実施形態では、鍵が循環されたとき、鍵を利用するエンティティへの接続が再確立されるか、または少なくとも再検証されてもよい。このような接続の例には、デバイス/SCMペア、クラウド/デバイスペア、および機器/SCMペアが含まれる。鍵の循環は、実装が不適切なためにユーザーエクスペリエンスが減少された場合、ある点では厄介であるかもしれないが、鍵の循環は安全対策と見なすことができ、厄介であることを意味するものではない。一実施形態では、ハッキングされたデバイスを使用しての侵害を防止するために、鍵が循環され、それにより、再接続を強制させるべくSMC120などのシステムコンポーネントを切断させるために使用される場合がありえる。ハッキングされたデバイスの場合、再接続の試みはおそらく失敗する。
代替の実施形態では、SCM120に対する鍵の変更は、ACPコンテナ410内でそれらがどのように配信されるかと同様に配信されてもよいが、代わりに、各SCM120についてクラウド130によって追跡される別個のKCPバージョンを有する、または有さない、鍵変更パッケージ(KCP)のような別個のパッケージ内で配信されてもよい。そのような手法が使用され、KCPバージョンが使用されない場合、KCPバージョンは、ACPバージョンと併合されてもよい。
一実施形態では、SCMは、鍵の循環を利用することができる唯一のシステムコンポーネントではない。デバイス110、クラウドサーバー130、機器コンポーネント140、OEMクラウド135、およびその他(もしあれば)も、侵害に応じて、鍵が更新されるように構成することができる。
鍵循環要求は、クラウド130から発することができ、したがって、各システムコンポーネントは、鍵を循環させる要求が真正であることを検証してもよい。本明細書で説明されるように、各システムコンポーネントは、多数の鍵を所有することができる。多数の鍵の零またはそれ以上は、そのシステムコンポーネントによって生成され、多数の鍵の零またはそれ以上は、他のシステムコンポーネントから取得されることができる。各システムコンポーネントは、それらの鍵のうちの少なくとも1つを生成することができるので、鍵循環処理は、複数のシステムコンポーネントの協力、協調、および順序付けを伴ってもよい。
SCM120は、それ自体の鍵を生成しないかもしれしれず、したがって、SCM120は、鍵を循環することを要求されないかもしれない。この場合、SCM120は鍵循環プロセスの受信者となる。SCM120によって生成されない鍵は、SCM-KeyおよびSCM-Equipment-Keyのうちの少なくとも1つを含む。
SCMがそれ自体の鍵を生成しない場合、鍵がクラウド130のコントロール下にないとき、クラウド130は、その特定の鍵が循環されるように要求を発行してもよい。例えば、クラウド130は、デバイス110に特定のSCM120のための新しいDevice-SCM-Keyを生成する要求を発行することができる。設定された場合、(要求されたデバイス110からのものであることが認証された)更新された鍵が、ACP400に含まれて、そのデバイス110または特定のSCM120に関連付けられた複数のデバイス110に配信されえる。そのデバイスまたは複数のデバイス110は、ACP400をSCM120に配信することができる。
代替の実施形態では、SCM120は、それ自体の鍵を生成してもよく、したがって、SCM120は、鍵を循環させるように要求されてもよい。代替の実施形態では、システムコンポーネントは、特定のキーを循環させるか、または鍵循環を開始し、配信のために新しい鍵をクラウド130に発行してもよい。
代替の実施形態では、更新された鍵をACPコンテナ410を介してSCM120に配信する代わりに、(クラウド130から個別にまたはまとめて取得される)個々の鍵循環要求がSCM120に発行されてもよく、その状況がクラウド130に報告されてもよい。この実施形態の1つの構成では、すべての要求が処理されたときにのみ、鍵循環処理が完了したとみなされる。
別の代替実施形態では、システム100は、鍵の循環を直接的にサポートしなくてもよく、代わりに、認可を削除して再発行する、SCM120を工場リセットする、デバイス110を工場リセットし、および/またはアプリケーションを消去または再インストールする、および新しいクラウドサーバーをスタートさせる、との1つ以上を行うように、システム100内の処理を利用してもよい。
XIV.安全な接続の確立
図14の図示された実施形態において、デバイス/SCM通信チャネルは、ユーザエクスペリエンス(応答性)を向上させるとともに、SCM120によって今までに見られなかったデバイス110との通信を可能にするために、段階的なゆっくりした認証プロセスまたは方法、もしくはその両方を採用することができる。安全な接続プロセスは、どの通信リンクで発生してもよいが、ブルーツゥースローエナジー(BLE)通信リンクなどの制約付きハードウェア間の比較的低速で安全ではない無線通信リンク用に構成されえる。
図示の実施形態では、安全な接続確立プロセスまたは方法1400は、3つの異なるフェーズを含むことができる。(1)未知−ステップ1401。(2)安全−ステップ1402。(3)信頼−ステップ1403。結果として生じる安全な接続は、基礎をなす通信層が安全であるか安全でないかにかかわらず、基礎をなす通信リンクがどんなものであっても利用されることができる。この基礎をなす通信リンクは、事前未知の通信リンクとして説明されえる。事前未知の通信リンクが安全であることが分かっている(例えば、TLSまたはDTLSセッションが既に確立されている)ことが分かっている状況では、代替の実施形態は、冗長なフェーズ(例えば、未知および/または安全)を取り除いてもよい。方法1400は、いくつかの点で、TLS/DTLS接続確立プロセスと同様でありえる。
A.事前未知の通信リンク
事前未知の通信リンク初期化および接続シーケンスは、システム構成および基礎をなす物理媒体およびプロトコルスタック(例えば、Ethernet-IP-TCP、Ethernet-IP-UDP、Ethernet-IP-TCP-TLS、BLE、802.15.4-IPv6 [6L0WPAN]など)に基づいて変化しえる。そのため、実際のメッセージングコンテンツ、パケット化/フレーム化、送受信接続/被接続プロトコルのシーケンス/処理は、基礎となる技術の相違によって多少異なる場合がある。また、基礎となる技術の違いにより、1つ以上のプロトコルステップを単一のステップにまとめることも可能である(逆に、非常に小さいパケット/メッセージ制限を克服するために、単一のステップを多くの小さなステップに分割することが有用であり、または必要かもしれない)。しかし、上位レベルのプロトコルステップは同じままとすることができる。図示の実施形態では、接続確立プロセスは、ブルーツゥースローエナジー(BLE)で行われるが、本開示はこれに限定されないことを理解されたい。
SCM120およびデバイス110が未知のフェーズ−ステップ1401のスタートに達するまでに、事前未知の通信リンクをセットアップするためにかなりの労力が費やされた可能性がある。この1つのそのような例は、2015年2月12に出願され、「車両と通信するためのシステムおよび方法」と題する、J. Michael Ellisらの米国特許出願第14/620959、および2017年4月14日に出願され、「リアルタイムロケーションを確立するためのシステムおよび方法」と題する、Raymond Michael Stittの米国特許出願第15/488136号に記載されたシステムと組み合わせた本実施形態の適用である。それらの開示は、BLEを使用したマイクロロケーションシステムを含む、その全体が参照により本明細書に組み込まれる。このシステムによる方法が、図13の図示された実施形態に示され、1300で指定される。方法1300は、マスタデバイス(SCM120)が周辺としてスタートし、ポータブルデバイス(デバイス110)が中央としてスタートする(初期接続)接続戦略を使用することができる(ステップ1301)。互いに通信することに同意した後、役割が切り換えられ、そこでは、マイクロロケーティング接続の一部として、マスタデバイス110が中央になり、ポータブルデバイス110が周辺となる(ステップ1302)。
本明細書に記載されたセキュリティモデル/システムが、本明細書に記載されたシステム、および/または、2015年2月12に出願され、「車両と通信するためのシステムおよび方法」と題する、J. Michael Ellisらの米国特許出願第14/620959、および2017年4月14日に出願され、「リアルタイムロケーションを確立するためのシステムおよび方法」と題する、Raymond Michael Stittの米国特許出願第15/488136号に記載されたシステムと組み合わされて適用されえる実施形態において、それらの開示が、それらの全体において参照により本明細書に組み込まれる。
・ 事前未知の通信リンク−初期接続
事前未知の通信リンクが、方法1300に関連して、初期接続とすることができる。言い換えれば、デバイス110とSCM120は、まだ役割を交換しておらず、そのため、方法1300に関して本明細書で説明されるシーケンスにおける最初のやり取りは、デバイス110からSCM120へ対するものとなる。
この実施形態において、安全な接続確立プロセスは、初期接続のコンテキスト内で安全のフェーズまたは信頼のフェーズのいずれかを通じて完了することができる。プロセスは、未知のフェーズまたは安全のフェーズの間に相互認証が実行されるかどうかに応じて、安全のフェーズまたは信頼のフェーズを通じて完了することができる。
このプロセス中に確立されたDevice-SCM-Session-Keyなどのセッション鍵は、マイクロロケーション接続への切り替え(すなわち役割反転)に先立ち、検証および/または認証されてもよい。いずれにしても、安全な通信チャネルを確立するために、セッションキーがマイクロロケーション接続内で使用されることができる(マイクロロケーション接続へハンドオーバされる)。フェーズ格下げが利用される場合、マイクロロケーション接続が引き続き使用されてもよい。フェーズ格下げは、切断/再接続、セッション鍵循環、または認証失敗によるなどのさまざまな状況で利用されえる。
この手法は、SCM120が、役割反転の境目で、デバイス接続を代わりのシステムコンポーネント(例えば、SCM120または類似のモジュール)にきちんと配信することを可能にすることができる。
2.事前未知の通信リンク−マイクロロケーション接続
一実施形態では、事前未知通信リンクは、マイクロロケーション接続であってもよい。言い換えれば、デバイス110とSCM120はすでに役割を交換している可能性があり、従って、方法1400に関して説明したシーケンスにおける最初の交換は、SCM120からデバイス110へと、逆になる。
これは代替の実施形態であり、その場合、ステップ1401における未知の接続確立フェーズは、方法1300における初期接続中に完了されない可能性がある。すなわち、接続確立プロセス1400の全体が、方法1300のステップ1320で確立されるマイクロロケーション接続のコンテキスト内で完了されてもよい。
3.事前未知の通信リンクを確立
図14の図示の実施形態では、マイクロロケーションシステムにおける初期接続の始まりは、デバイス110が特定のSCM120に接続することを決定した時点である。例を挙げると、SCM120は、a)デバイス110は通信するように構成されている、b)デバイス110はSCM120のオーナーになりたい、またはc)デバイス110はSCM120と接続する詮索好きな(または、悪意のある)デバイスである、とデバイス110が信じるシステムコンポーネントとして認識されるので、デバイス110はSCM120に接続することを決定することができる。
デバイス110は、SCM120が工場リセットモードにあるかどうかを判断するなど、SCM120に問い合わせるため、更新されたACPを送信するため、または他の設定を判定するために、方法1300に従ってステップ1301で確立された初期接続を使用することができる。デバイス110および/またはSCM120が、セッション鍵(Device-SCM-Session-Key)が確立される、安全な接続確立プロセスの部分を開始するとき、デバイス110は、ステップ1302に従ってマイクロロケーション接続へ切り替えることによって、役割反転を実行することができる(ステップ1402)。安全な接続確立ステップは、デバイス110が、そのデバイス110のDevice-SCM-EDを共有した後に行われてもよく、したがって、SCM120は、安全ではない可能性があるにもかかわらず、
デバイス110が、そのSCM120が接続すべきデバイス110であることのいくつかの証拠を有する。
この手法では、デバイス110は、SCM120を認証することができず、および/または、SCM120は、マイクロロケーション接続に切り替えるかどうか、デバイス110との安全な通信チャネルを確立することを試みるかどうかを決定する前に、デバイス110を認証することができない可能性がある。
図14の図示の実施形態において、リレーアタックに対する保護を援助するために、メッセージタイミング情報が通信リンクのチャレンジ−レスポンスプロトコルに組み込まれてもよい。図14に示されるアプリケーションの実施形態は、本明細書で論じられ、参照により本明細書に組み込まれるマイクロロケーションシステムに焦点を当てているが、本開示はそれに限定されず、本明細書に記載のシステム100および通信方法は、デバイスまたはシステムコンポーネントの、いずれのタイプのシステムでの通信を容易にすることができる。
一実施形態では、いくつかのデバイスプラットフォーム/ライブラリは、バックグラウンド処理モードの間に、BLE周辺機器がすべての所望の情報をアドバタイズすることを許可しないので、SCM120および/またはデバイス110は、マイクロロケーション接続への移行を完了するために、BLE結合情報を記憶してもよい。代替の実施形態では、BLE結合は、ユーザーに代わって初期接続フェーズ中に完了されてもよい。
B.安全な接続の確立
デバイス110は、図14の図示された実施形態に従ってSCM120との接続を開始することができる。SCM120は、接続を受け入れ、ステップ1401−第1の(未知の)フェーズ、ステップ1402−第2の(安全の)フェーズ、およびステップ1403−第3の(信頼の)フェーズの接続確立プロセスを開始することができる。
・ 第1の(未知の)フェーズ
図示された実施形態では、第1の(未知の)フェーズの間、通信リンクが安全であるかどうかは不明である。
基礎をなす通信リンクは、あるレベルの暗号化および/または終端ノードハードウェア認証を既に提供することができ、それは、実際のところ安全であってもなくてもよい。例えば、基礎をなす通信リンクは、既知の欠陥/脆弱性に煩わされる可能性がある。その結果、このフェーズの間、通信リンクは安全ではないと想定される。
このフェーズにおいて、またはステップ1401中に、デバイス110は、安全な通信チャネルに切り替えるようにSCM120に要求を送信することができる(ステップ1410)。この要求は、デバイス110に、そのDevice-SCM-IDおよびACPコンテナバージョンパッケージ412をSCM120へ送信するように誘導することができる。代替実施形態では、デバイス110のDevice-SCM-IDは、ACPコンテナバージョンパッケージ412内に含まれてもよい。Device-SCM-IDは、Device-SCM-Key、ACP-Version-Key、またはDevice-SCM-Session-Key、もしくはそれらの組み合わせなどの後続のメッセージのために、いずれの暗号鍵のセットを使用すべきかを決定するために、SCM120によって使用されることができる。
少なくともACPコンテナ410のセクション(セクションIII)に記載されているように、SCM120は、ACP400が更新されるべきである場合、安全な通信チャネルへの移行を許可しない可能性がある。SCM120のACP400が更新されるべきであると判定された場合、SCM120は、更新されたACP400を送信するためにデバイス110に要求を送り返すことができる。
SCM120のACP400が更新される必要がない場合、SCM120は、デバイス110が続行できることを示すメッセージをデバイス110に返信し、さらに、以前に格納されたセッション鍵(Device-SCM-Session-Key)を使用するかどうかを判定する(ステップ1412)。デバイス110が既に確立されたセッション鍵(セッション鍵自体は開示されなくてよい)を使用すべきであることをSCM120が示し、デバイス110がセッション鍵(Device-SCM-Session-Key)を所有する場合、デバイス110とSCM120は、即座に安全のフェーズに移行することができる。そうでない場合、SCM120とデバイス110は、新しいセッション鍵(Device-SCM-Session-Key)の確立を開始することができる。Device-SCM-Session-Keyセッション鍵は、以下の1つ以上のステップに従って、デバイス110がSCM120のチャレンジレスポンス認証を達成しようと試みる間に確立されてもよい。
1)デバイス110は、暗号ノンス(N)を生成することができる。
2)デバイス110は、Device-SCM-Key(非公開)鍵でNを暗号化し、NDを作成することができる。
3)デバイス110は、NDをSCM120に送信することができる。
4)SCM120は、Device-SCM-Key(公開)鍵を使用してNDを復号し、NDSを作成することができる。
5)SCM120は、暗号ノンス(M)を生成することができる。
6)SCM120は、例えば、Mと連結されたNDSの暗号ハッシュを使用して、セッションキーのコピー、Device-SCM-Session-Keyを計算することができる。セッションシーケンス番号(セッション鍵と共に格納される)が0または乱数にセットされることができる。
7)SCM120は、NDSおよびMをSCM-Key(非公開)鍵で暗号化し、NMを生成することができる。
8)SCM120は、デバイス110にNMを送信することができる。
9)デバイス110は、SCM-Key(公開)鍵を使用してNMを復号し、NDSDおよびMDを作成することができる。
10)デバイスは、NがNDSDに等しいことを確認することができる。一致がなければ、SCM120は認証されることができず、デバイス110は切断する。SCM120とデバイス110は、以前に計算されたセッション鍵を破棄してもよい。チャレンジレスポンス認証プロセスは、この段階で中止されることがある。
11)デバイス110は、例えば、MDと連結されたNの暗号ハッシュを使用して、セッション鍵のコピー、Device-SCM-Session-Keyを計算することができる。セッション鍵とともに格納されるセッションシーケンス番号は0に設定されることができる。
この時点で、デバイス110とSCM120の両方が新しいセッション鍵を計算したが、それらが首尾よく通信できることはいずれも検証しておらず、それはSCM120の真正性のさらに別の基準と考えることができる。チャレンジレスポンス認証プロセスが首尾よく完了した場合、ステップ1402で、デバイスとSCMは即座に安全のフェーズに移行することができる。
一実施形態では、チャレンジレスポンス認証プロセスにおけるメッセージを暗号化することに加えて、メッセージが署名された後に暗号化されてもよい。代替実施形態では、デバイス110によって生成される暗号ノンス(N)は、Device-SCM-Key(非公開)鍵の代わりにSCM-Key(公開)鍵によって暗号化されてもよい。別の代替実施形態では、デバイス110によって生成される暗号ノンス(N)は暗号化されなくてもよい。さらに別の代替の実施形態では、SCM120によって生成される暗号ノンス(M)は、セッション鍵がまだ確立されていないときに、「続行」メッセージとともに送信されてもよい(チャレンジレスポンス認証プロセスの前に送信される)。
さらに別の代替実施形態では、セッション鍵(Device-SCM-Session-Key)は別の方法によって計算されてもよい。さらに別の代替の実施形態では、代わりのチャレンジレスポンス認証アルゴリズムが利用されてもよい。さらに別の実施形態では、Device-IDがDevice-SCM-EDとして使用されてもよい。一実施形態では、セッションシーケンス番号は利用されない。
一実施形態では、チャレンジレスポンス認証プロセスが成功したとき(すなわち、デバイスがそのセッション鍵を生成するとき)、デバイス110はSCM120に「セッション鍵確立済み」メッセージを送信してもよい。一実施形態では、デバイス110は、チャレンジレスポンス認証プロセスが中止されたときに、SCMに「認証失敗」メッセージを送信してもよい。
一実施形態では、SCM120は、このフェーズまたはステップ1401の間に(SCM120の真正性を検証するデバイス110に代わって)デバイス110の真正性を検証してもよい。その結果、後の段階で、コマンドが送信されるとき、デバイス110が、SCM120の真正性を検証する場合がある。
一実施形態では、本明細書に記載された1つ以上の実施形態に追加または代替として、デバイス110とSCM120が、ステップ1401の間に相互に互いを認証してもよい。この場合、成功したならば、デバイス110およびSCM120は、信頼のフェーズに移行してもよい。
SCM120は、所定の活動停止期間後にデバイス110から切断するように構成されてもよい。SCM120は、いつでも、または任意のイベントに応答して、デバイス110から切断してもよい。例えば、SCM120は、SCM120における高いシステムリソースの使用率のため、所定の時間内に要求に応答しないため、または、所定の最大持続時間を超える接続持続時間のために、切断してもよい。
このセクションXIV.Bの冒頭で説明したように、SCM120は、ACPコンテナバージョンパッケージ412を伴うACPコンテナ410を送信するようにデバイス110に要求してもよい。デバイス110は、このフェーズの間にACPコンテナ410をSCM120に送信してもよい。ACPコンテナ410の受信に応答して、SCM120は、ACPコンテナ410が受け入れられたか、処理されなかったか、または拒絶されたかを、おそらくは最低でも示すステータス表示を有する応答を提供してもよい。受け入れは、ACPコンテナ410が処理され格納されていることを示し、ACPコンテナ410に含まるどのような変更もうまく適用されたことを示す可能性がある。処理されないのは、ACPコンテナ410が古いまたは同じバージョンであることに起因する可能性がある。拒絶は、検証が失敗したことを示している可能性がある。代替実施形態では、SCM120は、処理を更新するために、ACPコンテナ410に関してデバイス110にステータス表示を提供しなくてもよい。
工場リセット状態をサポートするために、デバイス110は、新規オーナー開始要求を介して、ステップ1401の間にSCM120からSCM-Key(公開)鍵および/またはSCM-ID識別子を要求してもよい。この要求に応答して、工場リセットモードにある場合には、SCM120は、SCM-Key(公開)鍵および/またはSCM-ED識別子を含む応答を提供することができ、それにより、SCM120が、実際に工場リセットモードにあることを示すことができる。
SCM120は、失敗した認証試行に関する情報をSCMシステムログに記録してもよい。失敗した認証試行の例には、安全の、および/または信頼のフェーズに入る、またはその中に留まることの失敗が含まれる。
2.第2の(安全の)フェーズ
第2の(安全の)フェーズまたはステップ1402の間、デバイス110およびSCM120の両方は、安全な通信チャネルを生成するために使用され得るセッション鍵(Device-SCM-Session-Key)を有することができる。すなわち、セッション鍵は、デバイス110およびSCM120が、データの暗号化、シーケンス番号の増加、およびメッセージ認証コードの生成の1つ以上を実行することを可能にすることができる。
安全な通信チャネルを使用するデバイス110およびSCM120からのメッセージは、暗号化し、そしてMACを行うために(例えば、Device-SCM-Session-Keyを使用してメッセージを暗号化し、暗号化されたメッセージから計算されるMAC[メッセージ認証コード]を付加するために)、増加するシーケンス番号とともに、Device-SCM-Session-Keyセッション鍵を使用して送信されてもよく、それにより、デバイス110およびSCM120が送信/受信されたメッセージを検証および認証することが可能となる。この通信モードは、TLS/DTLSのいくつかの特徴に類似しているかもしれない。暗号化後MAC以外の手法が使用されてもよいことに留意されたい(例えば、MAC後暗号化、または暗号化並びにMAC)しかし、それらは、安全性が低くなる可能性がある。
図示の実施形態では、セッション鍵(Device-SCM-Session-Key)は接続を存続させることができる。したがって、セッション鍵の持続時間または持続性を制限するために、Device-SCM-Session-Keyセッション鍵は、定期的におよび/または都合のよい時に、SCM120によって(任意のフェーズで)循環されてもよい。都合のよい時は、ユーザーエクスペリエンスが既に影響を受けている他のイベント中、またはどんな方法でも(鍵循環またはACP更新)新しいセッション鍵をもたらす他のアクションが発生している間であってもよい。都合のよい時はまた、より伝統的な意味としてとらえることができ、その場合、都合のよい時は、ユーザー10がSCM120を積極的に使用していないが、SCM120の範囲内にいる間、またはユーザーが範囲を出入りしており、処理を完了するのに十分な時間がある間など、ユーザーエクスペリエンスが影響を受けない、または顕著に影響を受けない時と考えられる。範囲内にいる例としては、すでに始動されている車の中に座っていること、テーブルに着いていること、施錠されたドアの中に座っていることが含まれる。
セッション鍵は、既存の安全な通信チャネル内でセッション鍵ローリングアルゴリズムを実行することによって、および/または、チャレンジレスポンス認証プロセス、または未知のフェーズおよび未知のフェーズ中のセッション鍵の計算に関して本明細書に記載されたプロセスといくつかの点で類似の別のプロセスを使用して新しいセッション鍵を計算することによって、循環させることができる。追加的にまたは代替的に、セッション鍵は、格納されたセッション鍵を無効化し、次いで、未知のフェーズの間にセッション鍵を切断して再確立することによって循環させることができる。一実施形態では、デバイス110が、セッション鍵の循環を開始することができる。
ステップ1402の開始時に、セッション鍵(Device-SCM-Session-Key)が有効であることを検証する(チャネルが動作可能であることを検証する)ためのSCM120への要求と、チャネルの有効性とSCM120の真正性の両方を検証するための要求のいずれかを、デバイス110が送信してもよい(ステップ1416、1418)。例えば、前のフェーズが最近実行されなかったなど、既存のセッション鍵が使用された場合、SCM120の有効性および真正性が確認され得る(ステップ1418)。
デバイス110が、チャネルの動作を最近確認した場合、またはセッション鍵が有効であることを検証した場合、このチャネルの検証ステップ1418をスキップしてもよい。代替の実施形態では、デバイスは検証ステップ1418をスキップしなくてもよい。
セッション鍵検証ステップ1418を完了するために、デバイス110およびSCM120は、安全のフェーズのチャレンジレスポンスプロトコルを実行してもよい。このプロトコルの第1の目的は、SCM120の真正性がすでに確立されていて、未知のフェーズから検証のフェーズへと直ちに入るときに、デバイス110がチャネルの動作を検証することである。しかし、安全のフェーズのチャレンジレスポンスプロトコルは、チャネルの接続を保持するものとして、または他の目的のために、デバイス110またはSCM120のいずれかによって定期的に使用されてもよい。以下に、(簡単な)チャレンジレスポンスプロトコルの例が示される。
1)デバイス110(またはSCM120)は、乱数(N)を生成することができる。
2)デバイス110は、NをSCMに送信することができる。
3)SCM120は、N+1(M)を計算することができる。
4)SCM120は、Mをデバイス110に送信することができる。
5)デバイス110は、N+1がMに等しいことを検証することができる。それらが一致しない場合、おそらくメッセージが適切に通信されなかったため、検証は失敗する結果となる。
デバイス110が安全のフェーズのチャレンジレスポンスプロトコルを実行するとき、デバイス110は、通信チャネルが動作していることを検証してもよい。デバイス110は、この段階では、SCM120が正しいセッション鍵を所有している点を除いて、SCM120の真正性に関する何かを検証していなくてもよい。SCM120も、安全な通信チャネルを検証するために、安全のフェーズのチャレンジレスポンスプロトコルを開始すことができるので、SCM120とデバイス110の役割は逆にされてもよい。代替の実施形態では、安全のフェーズのチャレンジレスポンスプロトコルは利用されなくてもよい。この場合、認証プロトコルが常に使用されてもよいし、または、認証プロトコルは存在しない。
一実施形態では、デバイス110は、SCM120の真正性を検証するために、安全のフェーズのチャレンジレスポンス認証プロトコルを使用してもよい。安全のフェーズのチャレンジレスポンス認証プロトコルは、所定の時間が経過した後に安全のフェーズに入ったとき、または他の何らかのイベントが発生したとき、定期的に実行されてもよい。例示的なイベントは、SCM120が安全のフェーズのチャレンジレスポンス認証プロトコルを実行することをデバイス110に要求すること、および更新されたACP400がデバイス110によって受信されたことを含む。以下に概説される安全のフェーズの認証プロトコルは、多くの点で未知のフェーズの認証プロトコルと類似している。しかし、本明細書に概説される安全のフェーズの認証プロトコルは、より少ない非対称暗号化処理しか利用しないので、大幅に少ない計算しか利用しないで済む。例示的な安全のフェーズの認証プロトコルは、以下のように行うことができる(代わりのチャレンジレスポンス認証プロトコルを使用することもできる)。
1)デバイス110は、暗号ノンス(N)を生成することができる。
2)デバイス110は、NをSCMに送信することができる。
3)SCM120は、N+1(M)の暗号ハッシュを計算することができる。
4)SCM120は、SCM-Key(非公開)鍵でMを暗号化して、MSを作成することができる。
5)SCM120は、MSをデバイス110に送信することができる。
6)デバイス110は、SCM-Key(公開)鍵を使用してMSを復号し、MSDを作成することができる。
7)デバイス110は、N+1(MD)の暗号ハッシュを計算することができる。
8)デバイス110は、MDがMSDに等しいことを確認することができる。それらが一致しない場合は、SCM120がその真正性を証明するための適切な暗号化鍵を所有していない可能性があるため、認証は失敗する結果となる。
代替の実施形態では、SCM-Key(非公開)鍵の代わりに、Device-SCM-Key(公開)鍵などの代わりの暗号鍵が利用されてもよい。代替の実施形態では、Device-SCM-Key鍵などの追加の暗号鍵が利用されてもよい。
未知のフェーズにおける説明された処理と同様に、デバイス110は、安全な通信チャネルを使用してACPコンテナバージョンパッケージ412をSCM120に送信してもよい。一例として、デバイス110は、更新されたACPコンテナ410のデバイス受信に応答して、またはそれに基づいて、ACPコンテナバージョンパッケージ412を送信してもよい。SCM120が、対応するACPコンテナ410を受信する必要性または希望を決定した場合、SCM120は、ACPコンテナバージョンパッケージ412に付随するACPコンテナ410を送信するようにデバイス110に要求してもよい。SCM120はまた、デバイス110に、周期的に、またはイベントの発生に応答して、デバイス110に格納された最新のACPコンテナバージョンパッケージ412を送信するようにデバイス110に要求してもよい。
デバイス110は、安全な通信チャネルを使用して、このフェーズの間にACPコンテナ410をSCM120に送信することができる。これに応答して、SCM120は、以前のフェーズで説明したように、ステータス表示を有するレスポンスを提供することができる。代替の実施形態では、ACPコンテナ410および/またはACPコンテナバージョンパッケージ412は、安全のフェーズ中にSCM120に送信されることを許可されなくてもよい。本明細書で説明するように、ACPコンテナ410と同様の意味/処理を使用する他の設定パッケージが存在してもよく、従って、ACPコンテナ410が、このフェーズ及び他のフェーズで配信されえる、システム100の唯一の設定パッケージであると推断されるべきではない。
一実施形態では、ファームウェア更新パッケージ(FUP)は、安全のフェーズまたは信頼のフェーズの間になど、安全な通信チャネルを介してのみ、デバイス110からSCM120に配信されてもよい。デバイス110は、クラウド130から、またはデバイス110に格納される実行可能/ロード可能イメージの一部として、FUPを取得することができる。例えば、FUPは、アプリケーションバンドルの一部として取得されてもよいし、より大きなデバイスファームウェアイメージに含まれる別個のイメージとして取得されてもよい。
一実施形態では、FUPは、任意の通信チャネルを介してデバイス110からSCM120に配信されてもよい。一実施形態では、FUPは、信頼のフェーズの間にのみなど、デバイス110が認証された安全な通信チャネルを介してだけ、デバイス110からSCM120に配信されてもよい。一実施形態では、FUPは、オーナーデバイス110によってのみ、デバイス110からSCM120に配信されてもよい。一実施形態では、デバイス110は、FUPをSCM120に配信しなくてもよい。追加または代替のファームウェア更新設定および実施形態は、少なくともセクションXVに記載されており、それは、ファームウェア更新パッケージ自体に関する追加の情報を含む。
SCM120は、安全な通信チャネルを使用して、少なくともセクションXXIにおいて本明細書でさらに詳しく論じるブラックリストパッケージをデバイス110に送信してもよい。デバイス110は、ブラックリストパッケージに対して、ステータス表示を有するレスポンスを提供してもよい。一実施形態では、デバイス110は、デバイス110にブラックリストパッケージを送信するようにSCM120に要求してもよい。ブラックリストに載せる項目がない場合、SCM120は何もしなくてもよいし、またはSCM120はブラックリストに載せる項目が存在しないことのしるしを送信してもよい。
デバイス110およびSCM120は、安全な通信チャネルを介して互いに通信しつつ、バックグラウンドで様々なシステムレベルの処理を実行してもよい。これらの処理は、開始または完了のために認証および/または認可を利用するコマンドの明示的な実行に関連しないかもしれない。開示の目的のために、デバイス110とSCM120との間の通信の結果、または通信が行われない結果として実行される任意の処理は、コマンドとみなされる。したがって、このようなバックグラウンドの処理はコマンドと見なされる。実行される可能性のあるすべてまたはアクションは、コマンドと見なすことができる。何も接続されていないときに発生するなんらかの操作またはアクションがあるかもしれず(例えば、ライトを消す)、また、何かが接続されているときに発生するなんらかの操作またはアクションがあるかもしれない(例えば、デバイスを追跡する、ライトを点ける、など)。コマンドは、デバイス110またはSCM120、もしくは他のシステムコンポーネントのアクションまたは動作に関連してもよい。
例示的なバックグラウンド処理は、マイクロロケーションサービス、GPS/INSサービス、ステータス情報、ロギング、バックグラウンド/メンテナンス処理、パワーモード変更、および設定更新を含む。さらに、ある通信フェーズから別のフェーズへの移行は、コマンドとみなされる(例えば、切断するために、未知から安全、安全から信頼、信頼から未知への移行など)。例えば、SCM120に対するデバイス110のための認可は、信頼の通信フェーズへの移行が必要とされるかもしれない(すなわち、認可は認証情報と認可基準の両方を含むことができる)。
このフェーズ(ステップ1402)において、SCM120は、デバイスの真正性を明示的に検証していない可能性があることにも留意する価値がある。近時または最初に、明示的な検証が行われていない可能性がある。しかしながら、デバイス110が真正であるという高い信頼性を有する十分な証拠が存在し得る。このフェーズ(ステップ1402)のある時点で、デバイス110および/またはSCM120は、以下のコマンドのいずれか1つ以上を送信/受信することをカプセル化することができる、コマンドを発生、発行、または受信することができる。
1)コマンド(例えば、デバイス110は、何かを行うようにSCM120またはその機器コンポーネント140に指示しているかもしれない)。
2)要求(例えば、デバイス110は、データを送信するように、SCM120またはその機器コンポーネント140に要求しているかもしれない)。
3)更新(例えば、SCM120またはその機器コンポーネント140は、周期的/非周期的データを提供しているかもしれない)。
4)レスポンス(例えば、SCM120またはその機器コンポーネント140は、リクエストに対するレスポンスを提供しているかもしれない)。
SCM120は、デバイス110の存在、位置、認証状態、または認可状態、もしくはそれらの任意の組み合わせに基づいて、列挙されたコマンドのうちのいずれか1つを含む処理を実行することができる。デバイス110は、SCM120の存在、場所、認証状態、または認可状態、もしくはそれらの任意の組み合わせに基づいて、列挙されたコマンドのうちのいずれか1つを含む処理を実行することができる。
様々なタイプのコマンド、およびコマンドとみなされるものの上記の説明は、網羅的なものではなく、または上記のリストに制限されず、また、コマンドのリストはこのフェーズの通信に制限されない(例えば、コマンドは、通信のいずれのフェーズであるかに係わらず、生成され、発行され、もしくは受信されたコマンドである)。
SCM120がコマンドを受信し、デバイス110が認証されていない場合、コマンドは、デバイス110が認証されている間、キューに登録されてもよい。デバイス110が認証に失敗した場合、拒絶されたコマンドごとに適切なエラーレスポンスが提供されてもよい。
一実施形態では、デバイス110が認証されている間に、1つまでのコマンドのみがキューに登録されてもよい。追加的にまたは代替的に、デバイス110がまだ認証されていない場合、コマンドが拒絶されてもよい。
一実施形態では、システムレベルのバックグラウンド処理は、信頼のフェーズでない限り、許可されなくてもよい(ステップ1403)。
SCM120は、ユーザーエクスペリエンスを改善するために、たとえコマンドが送信または受信されなくても、デバイス110を(先制して)認証してもよい。別の実施形態では、SCM120は、デバイス110を先制して認証しなくてもよい。
一実施形態では、デバイス110がSCM120にコマンドを送信または受信するために、SCM120は、SCM120によるデバイス110の認証を必要とするかもしれない。SCM120は、コマンドの実行を許可する前にデバイス110の真正性を検証するために、安全のフェーズのチャレンジレスポンス認証プロトコルを開始してもよい(ステップ1420、1422)。安全のフェーズのチャレンジレスポンス認証プロトコルの一例は、以下のステップの1つ以上を含むことができる。
1)SCM120は、暗号ノンス(N)を生成することができる。
2)SCM120は、Nをデバイスに送信することができる。
3)デバイス110は、N+1(M)の暗号ハッシュを計算することができる。
4)デバイス110は、Device-SCM-Key(非公開)鍵を用いてMを暗号化し、MSを作成することができる。
5)デバイス110は、MSをSCMに送信することができる。
6)SCM120は、Device-SCM-Key(公開)鍵を使用してMSを復号化し、MSDを作成することができる。
7)SCM120は、N+1(MD)の暗号ハッシュを計算することができる。
8)SCM120は、MDがMSDに等しいことを確認することができる。MDとMSDが一致しない場合、認証は失敗する結果となる。言い換えれば、MDとMSDとが一致しない場合、デバイス110は、デバイス110の真正性を証明するための適切な暗号鍵を所有していなかったことになる。
デバイス110が認証されると、デバイス110は、所定の期間、および/または、接続切断の発生、ACPコンテナ410への更新、および機器コンポーネント140からの認証要求、もしくはそれらの任意の組み合わせなどの所定のイベントが発生するまで、再度認証されなくてもよい。
一実施形態では、本明細書で説明するように、デバイス110の真正性は、鍵循環セッションあたり1度だけ実行されてもよい。一実施形態では、デバイス110の真正性のSCM検証が失敗した場合、デバイス110およびSCM120は、安全のフェーズに留まってもよい(ステップ1402)。
一実施形態では、デバイス110の認証は、デバイス110から発行され、デバイス110によって送信されるすべてのコマンドで、SCM120によって実行されてもよい。一実施形態では、デバイス110の認証は、デバイス110から発行されるすべてのコマンドで実行されてもよい。一実施形態では、SCM120の認証は、SCM120から発行されるすべてのコマンドで実行されてもよい。
チャレンジレスポンスプロセスまたはチャレンジレスポンス認証プロセスが失敗した場合、デバイス110およびSCM120は、直ちに、切断してもよいし、および/または、ステップ1401での未知のフェーズに戻ってもよい。
SCM120がデバイス10の真正性を確認した後、デバイス110およびSCM120は、信頼のフェーズに移行することができる。
3.第3の(信頼の)フェーズ
第3の(信頼の)フェーズの間、デバイス110とSCM120の両方が、検証されたセッション鍵(Device-SCM-Session-Key)を所有してもよく、デバイス110とSCM120の両方が真正であると決定される(ステップ1403)。
このフェーズ(ステップ1403)の間に、例えば、ACPコンテナ410への更新、ファームウェア更新、バックグラウンド/他の処理、および、デバイス110とSCM120のチャレンジレスポンス認証プロトコルを含む、以前のフェーズのアクション及びその帰結のすべてまたはサブセットが、安全な通信チャネルを介して実行されてもよい。安全な通信チャネルを介した認証に失敗した場合、デバイス110およびSCM120は直ちに切断してもよいし、および/または以前のフェーズ(例えば、未知のフェーズ)に戻ってもよい。
信頼のフェーズの間に、SCM120とデバイス110の両方の定期的な認証が利用されてもよく、必要であるとさえみなされてもよい。定期的な認証は、コマンドのルーチン実行によって、(適切なチャレンジレスポンス認証プロトコルを介した)SCM120およびデバイス110についての真正性の定期的なおよび/またはトリガされた別個の認証検証によって、または定期的なおよび/またはトリガされた相互認証のチャレンジレスポンス認証プロトコルによって、実施されてもよい。代替の実施形態では、SCM120とデバイス110の両方の定期的な認証は、必要でなくともよいし、または必要とみなされなくてもよい。
一実施形態では、1つ以上の例外はあるが、上述のチャレンジレスポンスプロトコルに類似する、相互認証チャレンジレスポンスプロトコルが実装されてもよい。1つの違いは、SCM120とデバイス110の両方が1つのシーケンスにおいて認証されることである。この単一シーケンス認証は、TLS/DTL相互認証の1つ以上の特徴を組み入れることができる。チャレンジレスポンス認証プロセスが失敗した場合、デバイス110およびSCM120は直ちに切断してもよいし、および/または未知のフェーズに戻ってもよい。
信頼のフェーズ(ステップ1403)の間、抽象的なユーザー定義のコマンドおよび/またはデータを転送し合うために使用すべく、SCM120とデバイス110との間で、不透明データチャネル(ODC)が利用可能にされてもよい。ODCは、SCM120が、1つのシステムコンポーネント(例えば、デバイス110)からのコマンドおよび/またはデータを、デバイス110はそうすることを許可されているが、おそらく、そのデバイス110のAPIまたはデータの細部の知識を利用しないことを保証しつつ、他のデバイス(例えば、機器コンポーネント140)に確実に渡すことを可能にすることができる。ODC内で使用されるコマンドおよび/またはデータの認可、検証、および確認のうちの1つまたは複数が、SCM120によって実行されないかもしれない。ACP400は、追加の認証タイプ及び識別子のような、ODCと共に有用であり得る追加の情報を含むこともできる。
XV.ファームウェアのアップグレード
一実施形態では、システム100は、システムコンポーネントがファームウェアを安全かつ確実にアップグレードできることを保証するように構成されえる。ファームウェアをアップグレードする機能により、セキュリティ上の脆弱性やファームウェアの欠陥を修正することができる。ファームウェア更新は、本明細書で説明するファームウェア更新パッケージ(FUP)を介してSCM120に配信されることができる。
FUPは、FUPバージョンパッケージ(多くの点でACPコンテナバージョンパッケージ412に類似するが、ACP400の代わりにFUPの転送を容易にするように適合されている)を使用して受信されえる。FUP(及び、一緒に提供されるFUPバージョンパッケージ)は、クラウド130を介して、機器コンポーネント140などのシステムコンポーネントに配信され、次いで、ACPコンテナ410と同様の方法でSCM120に配信されえる。
一実施形態に従って本明細書に説明されるように、ファームウェア更新は、安全な通信チャネルを介してSCM120に配信されてもよい。異なるシステムのインスタンス化は、異なる許容されるファームウェア更新ディストリビュータを有することができる。例えば、1つのシステムは、ファームウェアをデバイス110を介して、またはクラウド130から直接的に配信することを可能にすることができるが、それに対し、別のシステムは、機器コンポーネント140またはSCM120の物理的媒体を介してのみ更新が行われることを期待することができる。
FUPは、FUPがいずれかのシステムコンポーネントから特定のSCM120に送信され、格納され、配信され得るという点で、本明細書で説明されるACPコンテナ410および他の安全なファームウェアイメージ/配信手法の設計と類似している。しかし、一実施形態では、システム100は、送信が1つ以上の特定のシステムコンポーネントのみ可能とされるように構成されてもよい。別の実施形態では、任意のタイプの通信チャネルを介してファームウェア更新がSCM120に送信されてもよい。
FUPおよびFUPバージョンパッケージは、ACPコンテナ410と同様に、ターゲットSCM120用に署名され、および/または暗号化され、次いで、クラウド120によって署名され、および/または暗号化されてもよく、それにより、FUPおよびFUPバージョンパッケージが、適切なクラウド130から発信されたことが検証でき、および、ターゲットSCM120のみがFUPおよびFUPバージョンパッケージの内容を復号することができる。
FUPがターゲットSCM120に特有である場合、ターゲットSCM120はパッケージ内で特定されえる。クラウド130のアイデンティティは、FUPおよびFUPバージョンパッケージ内において提供されえる。
一実施形態では、FUPおよびFUPバージョンパッケージは、クラウド130によってのみ暗号化および/または署名されてもよい。FUPおよびFUPバージョンパッケージは、多くのSCM120に可視であり、および/または適用可能であってもよく、または、1つのSCM120にのみ適用可能であるが、FUPおよびFUPバージョンパッケージの内容は、多くのSCM120のすべてに可視であってもよい。一実施形態では、FUPバージョンパッケージは、ACP-Package-Version鍵を使用して、暗号化され、および/または署名されてもよい。
一実施形態では、FUPおよびFUPバージョンパッケージは暗号化されていなくてもよい。別の実施形態では、FUPは、その他のオプションの中で、特定の業界、顧客、製品ライン、および/またはターゲットの数(単一のターゲットに固有であることを含む)に固有であってもなくてもよい、製造業者提供の暗号キー(例えば、Firmware-Key)でさらに署名され、および/または暗号化されてもよい。一実施形態では、署名および/または暗号化の追加の層がFUPおよび/またはFUPバージョンパッケージのために利用されてもよく、それは、FUPバージョンパッケージをACPコンテナ410の構成により類似させる。
FUPは、1つ以上のシステムコンポーネント(例えば、デバイス110またはクラウド130)において、セキュアメモリ220、もしくはセキュアエンクレーブまたはハードウェアセキュリティモジュール(HSM)などのセキュアエレメントまたは同等のハードウェアモジュール内に安全に格納されてもよい。
一実施形態では、FUPは、セキュアエレメント(または同等のハードウェアモジュール)に格納されなくてもよい。しかし、それでもFUPは安全に格納されえる。例えば、セキュアメモリ220を使用しないセキュアストレージは、ACP-Version-Key非公開鍵が静止時に暗号化されてもよい、そのようなデータに対するアクセスを防止するために、ソフトウェアベースの対処および/またはハードウェアベースの対処が実装されてもよい、および、ハードウェアおよび/または物理的な障害物またはシールドが実装されてもよい、とのいずれか1つ以上によって達成することができる。JTAGおよび他のポートが無効化されてもよい。攻撃ベクトルを排除するために、強化されたソフトウェアインターフェースが実装されてもよい。信頼できる実行環境、ハードウェアまたはソフトウェアが制定され、オペレーティングシステムのルートアクセスまたはセキュリティ破壊の招来を検出するための検出システムが実装されてもよい。代替の実施形態では、ACP-Version-Key非公開鍵は安全に格納されない。
SCM120およびSCM120のサブコンポーネントは、ファームウェア更新イメージを受信している間、正常に動作し続けることができる。SCM120およびSCM120のサブコンポーネントは、直ちに、および/または使用されていないとき、および/または1日における時刻または週の曜日など、所定の期間に、更新を適用することができる。一実施形態では、SCM120およびSCM120のサブコンポーネントは、ファームウェアが更新されている間、通常動作を中断または無効にする更新モードに入ることができる。
SCM120は、SCM120の現在動作中のファームウェアが破損しているか、もしくは期待されたまたは要求された制約内で動作していない場合に、それ自身のファームウェアおよびすべてのSCMサブコンポーネントの以前のバージョンにロールバックすることができる。例えば、単位時間内に過度に多くの例外が発生した場合、SCM120が別のファームウェア更新を実行するのに十分長い間連続して動作できない場合、SCM120が別のシステムコンポーネント(デバイス110、クラウド130、または機器コンポーネント140など)との接続を確立できない、または、ロード時にイメージハッシュ/CRC検証が失敗した場合、もしくはそれらの任意の組み合わせの場合、SCM120は、ロールバック手続きを開始することができる。動作の制約は、ブートセレクタ、ブートローダ、ファームウェア/アプリケーション、または他のロード可能項目内でハードコードされてもよい。
一実施形態では、動作の制約は、実行時に設定可能であってもよい。動作の制約を評価するのに有用な統計的および/または他の情報は、リセットおよび/または電力消失を切り抜けるメモリ領域に格納されてもよい。一実施形態では、動作の制約は、ランタイム挙動のまたは統計的な解析、ランタイム性能(例えば、タイミングまたはスループット)解析、機械学習を使用する分類、またはファームウェアが適切に動作しているかどうかを判定する他の動的アナライザ、もしくはそれらの任意の組み合わせを含むことができる。一実施形態では、ファームウェアロールバックが発生すると、SCM120のサブコンポーネントは、通知され、ロールバックするか否かを選択してもよい。一実施形態では、SCM120およびSCM120のサブコンポーネントは、例えば、これらのコンポーネントのうちの1つ以上がロールバックを実行できないため、またはそれらのコンポーネントの1つ以上がダウングレードするべきか否かを判定するための十分な統計データを追えないためなどを含む、さまざまな理由でロールバックしないかもしれない。
一実施形態では、FUPを要求する前に、ファームウェアバージョン、タイムスタンプ、最小互換バージョン、および他のバージョン情報、並びにFUPバージョンパッケージによって特定されるFUP内のファームウェアイメージのすべてまたはサブセットに対する制約、もしくはこれらの情報の任意の組み合わせが、適用可能性について検証されてもよい。
FUPが適用可能であると判定された場合、FUPはターゲットから要求されてもよい。特定のファームウェア更新イメージは、ファームウェア更新イメージのバージョンが現在のファームウェアよりも新しい(または等価で、そのタイムスタンプがより新しい)、様々な設定の最小互換バージョンが新たしいファームウェアと互換性がある、および他のすべての制約が満たされる、などの1つ以上の基準に基づいて適用可能であると判定されてもよい。完全なファームウェアイメージが取得されると(そして、おそらくROMに書き込まれるときに再度)、イメージがターゲットによって検証されてもよい。検証には、完全性ハッシュ、署名、検証される可能性のある他の属性の分析、またはそれらの任意の組み合わせの実施が含まれる。
一実施形態では、ファームウェアイメージは、より小さなチャンク(制約のあるコンポーネントによる処理を可能にするため)で、ターゲットシステムコンポーネントに配信されてもよく、それにより、より小さなチャンクが独立して検証されることができる。
SCM120は、SCM120のサブコンポーネントのファームウェア更新を認証し、追加的に暗号化および/または署名し、または変更されないままとし、あるいはそれらの任意の組み合わせを行って、その更新をサブコンポーネントに配信してもよい。SCM120のサブコンポーネントは、他のシステムコンポーネントの観点からSCM120を集合的に表す、SCM120における他のハードウェアモジュール、および/またはSCM120における他のセンサであってもよい。
一実施形態では、SCM120のサブコンポーネントへのファームウェア更新の配信は、サブコンポーネント間で同期および/または順序付けされてもよい。SCM120は、自身を更新する前にすべてのサブコンポーネントを更新して、ロードされたアイテムのバージョンを検証することによって各サブコンポーネントが正常に更新されたことを検証してもよい。一実施形態では、SCM120は、サブコンポーネントのファームウェアの前に自身のファームウェアを更新してもよい。一実施形態では、システム100は、FUP内のデータに基づいて、SCM120が最初にサブコンポーネントを更新するか、SCM120が最初に更新されるか、または満たされるべき別の順序制約があるかどうかを設定可能であってもよい。
SCM120は、ファームウェア更新をすべてのSCMサブコンポーネントにブロードキャストすることができ、またはSCMは、特定のSCMサブコンポーネントに対象とするファームウェア更新を送信することができる。
一実施形態では、FUPをSCM120に送信するためにデルタ更新が使用されてもよい。FUPをSCM120に送信するために圧縮が使用されてもよい。
一実施形態では、クラウド130は、FUPフォーマットまたは異なるシステムコンポーネントのための代替フォーマットを使用して、デバイス110および機器コンポーネント140などのSCM120以外のシステムコンポーネントにファームウェア更新パッケージを提供してもよい。一実施形態では、システムコンポーネントは、他のシステムコンポーネントのためのファームウェア更新の配信(および/またはルーティング)をサポートすることができる。例えば、デバイス110は、SCM120を介して機器ファームウェア更新を配信してもよい。
一実施形態では、システムコンポーネントは、ファームウェア更新を認証し、追加的に暗号化/署名し、または変更されないままとし、あるいはそれらの任意の組み合わせを行って、その更新を他のコンポーネントに配信してもよい。一例として、デバイス110は、SCM120にファームウェア更新パッケージを配信することができ、SCM120は、ファームウェア更新パッケージに署名し、別のSCM120または取り付けられた機器コンポーネント140に配信してもよい。
初期製造の後、または工場リセットするよう命令されたことに応答して、SCM120は工場リセットモードに入ることができる。工場リセットするように命令されたことに応答して、SCM120は、工場(初期製造)状態に戻るために、そのACP400、他の設定記録、および暗号鍵を破棄してもよい。以下の識別子および暗号鍵の零以上が、工場リセットの結果として、リセットされなくてもよい。
1)SCM-ID識別子
2)SCM-Key鍵
3)Equipment-Key鍵
4)SCM-Equipment-Key鍵
一実施形態では、SCM-Key鍵は、工場リセットの結果としてSCM120によって循環されてもよい。SCM-Key鍵を変更することは、SCM120を新しいSCM120としてシステム100に提示させることになり、古いSCM-Key鍵を有するいずれのシステムコンポーネントもSCM120からのメッセージを暗号化または復号することをできなくなる。SCM120が新規であるように見えるかもしれないが、SCM120は、そのSCM-IDが変更されない(または、SCM120を識別するための代替識別子が変更されないままである)限り、依然として同じSCM120として識別され得る。
一実施形態では、SCM-Keyが循環されず、攻撃者が、攻撃者の制御下にあるデバイス110を用いて、首尾よくクラウド130と接続して、クラウド130で認証できたとすると、攻撃者は、システムの一部に侵入するための情報を集めることができ、次いで、新しいオーナー登録要求を提出するかもしれない。このようにして、攻撃者は、SCM120のオーナーシップを攻撃者のデバイス110に移転することをクラウド130に納得させることができるかもしれない。しかしながら、SCM120へのおよび/またはSCM120からのコマンドを、送信および/または受信することを攻撃者のデバイス110に認可するACP400を含め、SCM120は、クラウド130によって署名されなければならないいずれのメッセージも拒絶する。この場合、攻撃者のアクションは、明確に識別可能で可逆的であるかもしれない。
工場リセット時にSCM-Keyを変更することは、クラウド130が、同じSCM-Keyで既に登録されているSCM120の最初のオーナーデバイス110になるためのいかなる要求をも拒絶することを可能とすることができ、攻撃者が、新規のオーナー登録要求を使用して、SCM120を「引き継ぐ」ことを試みることを防ぐための追加のメカニズムを提供する。代替の実施形態では、クラウド130は、新規のオーナー登録要求応答の一部としてSCM120に配信されるための新しいSCM-Key鍵を生成することができる。
一実施形態では、SCM-ID識別子は、工場リセットの結果としてSCM120によって循環されてもよい。SCM-ID識別子は、永続的な識別子であることが意図されてもよい。しかしながら、SCM-ID識別子を変更することにより、特にSCM-Keyも変更された場合に、システム100が、SCM120を同一の物理的部品として識別することができなくなる可能性がある。一実施形態では、クラウド130は、新規のオーナー登録要求応答の一部としてSCM120に配信されるための新しいSCM-ID識別子を生成することができる。一実施形態では、SCM-IDが循環されてもよく、クラウド130はそのSCM120のSCM-IDの履歴を保持してもよい。
一実施形態では、Equipment-Key鍵が、工場リセットの結果としてSCM120によってクリアされてもよい。SCM-Equipmen-Key鍵は、一実施形態による工場リセットの結果としてSCM120によって循環されてもよい。機器鍵をクリアおよび/または変更することにより、SCM120は、SCM120に結合された、またはおそらくは取り付けられた機器コンポーネント140と通信することができなくなる可能性がある。一実施形態では、クラウド130が、新規のオーナー登録要求応答の一部としてSCM120に配信されるための新しいSCM-Equipment-Key鍵を生成することができる。
工場リセットされたSCM120に関連付けられ、SCM120に対する認可を有する1つ以上のデバイス110は、SCM120が工場リセットされたといういかなる通知を受信しなくてもよい。工場リセットされたSCM120のSCM-ID識別子またはSCM-Key鍵の少なくとも1つが変更されない場合、クラウド130は、SCM120に対する新しいオーナー登録要求に応じて自動的にユーザー10のための認可を取り消してもよい。
SCM120は、工場リセットモードでその製造プロセスを完了してもよいが、製造プロセスは、Equipment-Key鍵または他の設定データなど、特定の届け先に固有の設定をロードすることができる。SCM120は、SCM120が結合される機器コンポーネント140の製造プロセスに含まれてもよい。機器製造プロセスの間、SCM120は工場リセットモードから抜けてもよく、製造装置がSCM120のオーナーデバイス110として登録され得る。機器製造プロセスの終了時に、SCM120のオーナーシップが別のデバイス110に移転されてもよいし、またはSCMが工場リセットされてもよい。他のデバイス110は、OEM、再販業者、またはレンタル業者に関連付けられてもよい。
製造のこの段階では、SCM120は、販売および配送プロセスの間に、他のデバイス110に移転され、および/または工場リセットされてもよい。SCM120は、それが結合される機器コンポーネント140によって工場リセットするよう命令されることができる。機器コンポーネント140がSCM120の工場リセットの適切性を判断する基準は、OEMシステムの全体的なセキュリティにとって有用であり得る。例えば、機器コンポーネント140は、工場リセットを要求するユーザー10がそれを行うことを認可されていることを検証することができる。認可は、機器コンポーネント140のオーナーシップまたは機器コンポーネント140の物理的な所有などの1つ以上の要因に基づくことができる。
一実施形態では、SCM120は、クラウド130によって、1つまたは複数のシステムコンポーネントを介して直接的または間接的に、工場リセットするように命令されてもよい。SCM120がクラウド130に接続されている場合、工場リセットする直接命令が受信されえる。工場リセットする間接命令は、クラウド130からデバイス110へSCM120へ、またはクラウド130から機器コンポーネント140へSCM120へなど、1つ以上のシステムコンポーネントを介して、ACP400と同様に受信されてもよい。
一実施形態では、オーナーデバイス110は、SCM120に工場リセットするように命令することができる。あるいは、任意のデバイス110が、SCM120に工場リセットするように命令してもよい。追加的に、または代替的に、任意のシステムコンポーネント(SCM120自体を含む)が、ユーザーがSCM120上のボタンを押すなどして、SCM120に工場リセットするように命令してもよい。
SCM120が工場リセットモードにあるとき、そのSCM120に対するオーナーデバイス110は存在しないが、SCM120は新しいオーナー開始要求を受け入れることができる。新規オーナー開始要求は、SCM120に対する最初のオーナーデバイス110を確立することができ、SCM120のための最初のACP400の生成及び転送をもたらすことができ、SCM120にクラウドキー(例えば、Cloud-SCM-Key鍵、Cloud-SCM-Approval-Key、およびACP-Version-Key鍵)と認可、並びに他の設定データを提供する。SCM120の登録および新しいオーナーの確立は、以下のステップのうちの1つまたは複数に従って実施されることができる。
1)デバイス110は、新規オーナー開始要求をSCM120に送信することができる。
2)SCM120は、自身のSCM-Key(公開)鍵およびSCM-ID識別子をデバイス110に送信することができる。
3)デバイス110は、新しいDevice-SCM-Key公開/非公開鍵のペアを生成することができる。
4)デバイス110は、新規オーナー登録要求をクラウド130に送信することができる。デバイス110は、新規オーナー登録要求の一部として、以下のいくつかまたはすべてをクラウド130に送信することができる。
・Cloud-User-ID識別子
・Device-SCM-Key(公開)鍵
・SCM-Key(公開)鍵
・SCM-ID識別子
・Device-ID識別子
・Device-SCM-ID識別子
・その他(例えば、イーサネットMAC、BLE UUID、APNS/GCMトークン)
5)クラウド130は、デバイス110を登録し、以下の1つ以上を生成することができる。
・新しいCloud-SCM-Key公開/非公開鍵(例えば、Cloud-SCM-KeyやCloud-SCM-Approval-Key)を生成する。
・新しいACP-Version-Key公開/非公開鍵を生成する
・新しいUser-SCM-Key公開/非公開鍵を生成する
・オーナーデバイス認可を生成する
・最初のACP400を生成し、それを配信する
6)クラウド130は、Cloud-SCM-Key(公開)鍵をデバイス110に送信することができる。
7)クラウド130は、(最初のACPを含む)ACPコンテナ410をデバイス110に送信することができる。
8)デバイス110は、ACP400をSCM120に転送することができる。
9)SCM120は、ACP400を受け入れ、工場リセットモードを抜けることができる。
SCM120が、その最初のACP400を受け入れ、工場リセットモードを抜けた後、追加のデバイス110に対する認可が通常のように追加されてもよい。
一実施形態では、SCM-IDは、安全でない接続を介して取得されなくともよく、従って、SCM-Keyが安全な接続を確立するために使用されてもよい。安全な接続の確立は、未知のフェーズから始まるデバイス/SCM接続確立プロセスと類似していてもよく、その後、デバイス110は、安全な接続を使用してSCMからSCM-IDを要求することができる。
XVI.デバイス/クラウド通信−サーバー側認証
一実施形態では、デバイス110とクラウド130との間の通信チャネルが、証明書およびクラウドセッショントークンに基づくサーバー側(クラウド)認証を備えた、TLS1.2以上を使用するなどして、保護されてもよい。
システム100内のアプリケーション層および/またはアプリケーションプログラミングインターフェースは、HTTPS、Googleプロトコルバッファ、AMQP、MQQT、CoAP、TCP、およびUDPなどの、関連する標準技術の任意の組み合わせに基づくことができる。一実施形態では、各デバイス110はそれ自身の一意のクライアント証明書を有してもよく、この一意のクライアント証明書に基づいてTLS相互認証が実行されてもよい。一実施形態では、TLSの代わりにDTLSが利用されてもよい。一実施形態では、生の非対称暗号がTLSの代わりに使用されてもよい。一実施形態では、対称暗号がTLSの代わりに使用されてもよい。一実施形態では、安全な通信チャネルは使用されない。デバイス110が特定のSCMのためにクラウド130から受信するメッセージは、SCMの対応するCloud-SCM-Key鍵によって署名されてもよい。
XVII.クラウド/クラウド通信−相互認証
一実施形態では、クラウド130内(クラウド内部)および/またはクラウドシステム間で利用される通信チャネルは、証明書を使用しす相互認証を備えたTLS1.2以上を使用して、保護されてもよい。
アプリケーション層および/またはアプリケーションプログラミングインターフェースは、HTTPS、Googleプロトコルバッファ、AMQP、MQQT、CoAP、TCP、およびUDPなどの、関連する標準技術の任意の組み合わせに基づくことができる。一実施形態では、TLSの代わりにDTLSが利用されてもよい。一実施形態では、生の非対称暗号がTLSの代わりに使用されてもよい。一実施形態では、対称暗号がTLSの代わりに使用されてもよい。一実施形態では、安全な通信チャネルは使用されない。
XVIII.機器/SCM通信
機器コンポーネント140とSCM120との間の通信チャネルは、通信を保護するために生の非対称暗号を使用することができる。非対称暗号は、SCM-Equipment-Keyおよび/またはEquipment-Keyに基づくことができる。
アプリケーション層および/またはアプリケーションプログラミングインターフェースは、例えば、Googleプロトコルバッファ、CoAP、TCP、UDP、CAN、UART(おそらくカスタム)、SPI、およびI2Cを含む、関連する標準技術の任意の組み合わせに基づくことができる。一実施形態では、TLSは、証明書または非対称暗号を備えた、相互またはサーバー側認証とともに使用されてもよい。一実施形態では、証明書または非対称暗号とともにDTLSが使用されてもよい。一実施形態では、対称暗号が使用されてもよい。一実施形態では、安全な通信チャネルは使用されない。
本明細書で説明するように、SCM120は、別のSCM120のための機器であってもよく、SCM120ごとに1つまたは複数のSCM間通信チャネルを確立する。このような構成は、接続の共有、認可、および/または、SCM間の認証アクティビティ、負荷平衡(例えば、通信接続またはコンピューティングリソース)、デバイスまたは他のシステムコンポーネント(例えば、他の機器)の冗長/多因子検証/認証、冗長/ロックステップシステムの実行および検証(例えば、クロスチェック)、およびシステム制御能力の拡張(例えば、より多くの入力/出力ポートまたは通信範囲の改善)の1つ以上を容易にすることができる。
XEX.時間配信
1つ以上のシステムコンポーネントは、安全な接続を確立するため、または情報を検証するため、またはその両方を行うために、現在の時刻を利用することができる。現在の時刻は、信頼できるソースから安全に配信され、または取得されえる。一実施形態では、SCM120は、SCM120が結合されている機器コンポーネント140から現在時刻を取得してもよい。一実施形態では、SCM120は、デバイス110から(おそらく安全な通信チャネルを使用しまたは使用せずに)現在時刻を取得してもよい。一実施形態では、SCM120は、クラウド130から現在時刻を取得してもよい。一実施形態では、デバイス110は、クラウド130から現在時刻を取得してもよい。
XX.ブロックファン権利管理
一実施形態では、システム100は、ブロックファンベースの権利管理システムを利用してもよい。ブロックファン(Blockfan)は、(各ノードが最大1つの親と最大1つの子を有することができる)従来のブロックチェーンとは対照的に、各ノードがツリーに「ファン」することができる、ブロックチェーンベースの権利管理システムとして識別される。ブロックファンのツリー構造は、親の許可を介して付与されたピアの権利を管理および検証するために使用されてもよい。例えば、デバイス110は、SCM120にアクセスする権利を付与され(親の許可)、その権利のコンテキストの下で、いくつかのコマンドを発行する権利が付与される(ピアの許可)。
ブロックファンのチェーン構造は、時間の経過とともに許可を順序付けるために利用されてもよい。一実施形態では、ブロックファンのノード(トークン付与が多重に使用されなかったことを保証するために、許可ノードの兄弟ノードを含む)のハッシュおよび/または署名を検証するために、Merkleツリーが使用されてもよい。したがって、Merkleツリーは、権利管理システム全体の完全性、妥当性および正確性を検証するために使用されえる。ブロックファンベースの権利管理システムは、トークン付与を定義することができ、一回使用権が後の使用のために付与される。例えば、将来のある時点で、特定のデバイス110が、特定のSCM120のオーナーシップ取得したいことがある。ブロックファンは元帳を形成することができる。言い換えれば、権利は決して削除されず、すべての権利は1つまたは複数の付与根源に遡ることができる。権利が付与根源まで追跡できない場合、これは検証の失敗を示すものとみなされる。
図15の図示された実施形態による権利管理システムにおける権利は、3つ構成要素に分けて定義されえる。
1)1501で指定される、アクションを行う権利。
2)1502で指定される、アクションを実行する権利を付与する権利。
3)1503で指定される、アクションを実行する権利を付与する権利を付与する権利。
・権利を付与する権利を有することは、必ずしもその付与者が自分自身で行動を取ることができるということを意味するものではないことに留意されたい。
・この権利は、この権利を他のだれかに付与する権利を含む場合がある。
一実施形態では、付与者は自分自身に権利を割り当てることはできないし、権利付与を許可する権利を付与する権利を付与された付与者は、自分自身にその認可を付与することもできない。
例えば、SCM120のオーナー10は、別のユーザー10に、特定のコマンドを発行する権利を付与する権利を与えることができる。その別のユーザー10は特定のコマンドを発行する権利を他のユーザー10に与えることができるが、その別のユーザー10は、別のユーザーに、他のユーザー10が特定のコマンドを発行することを許可する権利を与えることはできない。図示の実施形態では、SCM120のオーナーのみがこれを行うことができる。
一実施形態では、すべての付与は、以下の情報を含むことができる。
・アクション
・コンテキスト
・被付与者
・被付与者の公開鍵のコピー
・付与されたこと
・開始日
・失効日
・親付与ED
・チェック値
この情報の集合は、付与者の非公開鍵で暗号化されてもよく、付与者のED、被付与者のID、親付与のED、アクション、コンテキスト、付与されたこと、開始日、および終了日を含んでもよい。本開示は、特定された情報のすべてを有する付与に限定されず、追加の情報が含まれてもよく、特定された情報の1つ以上が存在しなくてもよいことを理解されたい。
一実施形態では、取り消された権利のテーブルに対する結合を介して、各権利または付与は、
・取り消された親ED
・取り消された値
も含むことができる。
この集合は、取消者の非公開鍵で暗号化されてもよく、取消者のED、取り消されたもののED、取消許可のED、アクション、コンテキスト、および取り消されたステータスを含んでもよい。
付与の発行に署名して日付を付けることにより、すべての権利の付与を、システム100の始まりまで遡ることが可能になり、処理中のシステム100内のデータの検証が可能になる。
以下に列挙する権利のタイプは、本開示の一実施形態に従って利用することができる。付与は、アクションによって、異なるモデルを持つかもしれないことに留意されたい。
・従属。権利を与える付与者の権利が失効すると、従属する権利が失効することがある。このタイプの権利は、主にSCM120のための操作権に使用されることができ、SCM120が移転されるとき、またはSCM120のオーナーが外されたとき、そのようなすべての従属する権利は取り消すことができる。
・独立。独立した権利は、付与の時点の後で、許可を与える付与者の権利が有効であることを必要としないことがある。付与の時点で、付与者の権利が有効であることを保証するために、追跡が、依然としてシステム100を通じて可能とされてもよい。このタイプの権利は、管理タスクのために組織内で有用となりえる。
・トークン。一実施形態では、トークン付与は一度しか使用できない。一実施形態では、トークン付与は、副作用なしに使用することができない、システム100内の唯一の権利である。トークン権利の使用は、兄弟関係のトークンを無効にするかもしれない。トークン権利は、SCM120の移転のために使用されてもよい。
・不滅。不滅である権利は、SCM120の寿命まで付与されることがあり、SCM120のオーナーシップを超越する可能性がある。不滅である権利は、もし付与するとしても、OEMに付与するだけとすることができ、不滅の権利によって参照されるSCM120に対して作成されるすべての設定に含められる権利を表すことができる。
一実施形態では、ブロックファンベースの権利管理システムが使用されて、このシステム100およびセキュリティモデル(そこでは、Device-Rights-Keyはブロックファン内の対応するノードを参照する)内で使用されるクラウド130内に権利管理サービスを作成することができる。
XXI.ブラックリスト
一実施形態では、システム100は、起こりうる脆弱性に煩わされていると考えることができる。通信する方法がない場合、更新は配信されない可能性がある。システム100の分散される性質は、システム100を他のシステム100よりも接続性の欠如に対してより寛容にすることができる。しかしながら、システム100は、オンラインシステムでは提供されない可能性が高い、この問題に対する実質的に絶対的な解決策を提供しない可能性がある。
認可および設定の更新は、他のシステムコンポーネント(例えば、デバイス110)を介してSCM120に配信することができる。システムコンポーネントがSCM120と通信できない場合、またはそれ自体の接続性の欠如によって更新を取得できない場合、システムコンポーネントはSCM120に更新を配信しない可能性がある。意図しないまたは意図的な接続性の欠如のために適時に更新を受け取ることができないことは、認可の取り消しに関して特に懸念される。
1人のユーザーAは、ユーザーBに属するデバイス110のSCM120の認可を取り消すが、ユーザーBは、SCM120が取り付けられた機器コンポーネント140へのアクセスを継続したいといったシナリオを考える(すなわち、「クレイジーエックス」シナリオ)。このシナリオでは、ユーザーBが自分のデバイス110上の無線を無効にすると、そのデバイス110は、その認可を取り消す更新されたACP400をSCM120に配信することができず、したがって、ユーザーBは、SCM120に関連付けられた機器コンポーネント140を使用し続けることができる。システム100の分散された性質は、SCM120に対する認可を有する任意のデバイス110が、更新されたACP400を配信することができるので、このシーケンスを回避するのを助けるかもしれない。しかしながら、このシナリオでは、ユーザーAは、唯一の近くにある認可されたデバイス110を持ち、ユーザーBのデバイス110はオフラインであるが、ユーザーAはSCM120および取り付けられた機器コンポーネント140にアクセスする。
機器コンポーネント140(および、代理でユーザー10)が認可をローカルに取り消す手段を提供するために、SCM120は、認可ブラックリスト(SCMブラックリスト)を管理することができる。機器コンポーネント140が適切なユーザーインターフェースを有すると仮定すると、機器コンポーネント140は、ユーザーインターフェースを使用して、ユーザーAに有効な認可のリストを提示することができ、ユーザーAはユーザーBの認可をSCM120のブラックリストに追加することができ、その時点で、ユーザーBの認可がローカルに取り消され、ユーザーBは、ユーザーBに関連付けられたデバイス110を使用して機器コンポーネント140にアクセスできなくなる。
SCM120のブラックリストの各エントリは、認証と一意のBlacklist-Item-EDとのペアであってもよい。一実施形態では、Device-IDまたはDevice-SCM-IDがBlacklist-Item-EDとして使用されてもよい。
デバイス110が、(少なくとも安全のフェーズで、デバイス/SCM接続確立プロセスごとに)SCM120と安全な通信リンクを確立する場合、SCM120はブラックリストパッケージをデバイス110に送信してもよい。SCM120は、更新されたACP400を処理した後、デバイス110が接続した後のある時点、またはSCM120のブラックリストが変更されたとき、ブラックリストパッケージをデバイス110に送信してもよい。
ブラックリストパッケージは、ブラックリストパッケージが多層暗号化パッケージであってもよいという点でACPコンテナ410と類似する。ブラックリストパッケージは、SCM120の現在のACPバージョンを含んでもよくk、SCM-Key(非公開)鍵で署名され、暗号化されてもよく、次いで、Cloud-SCM-Key(公開)鍵で署名され、暗号化されてもよい。一実施形態では、SCM120は、ブラックリストパッケージを、任意の通信リンクを介して別のSCM120または別のシステムコンポーネントに送信してもよい。一実施形態では、ブラックリストパッケージはまた、ACP-Package-Version(公開)鍵で署名され、暗号化されてもよい。一実施形態では、機器コンポーネント140以外のシステムコンポーネントは、有効な認可のリストを受信し、ブラックリストに登録された認可をSCM120に送信してもよい。
デバイス110がブラックリストパッケージを受信したとき、デバイス110は、ブラックリストパッケージを変更せずにクラウド130に送信してもよい(デバイス110はブラックリストパッケージを復号できないかもしれない)。クラウド130は、以下の、ブラックリストパッケージを検証する、ブラックリストパッケージに記載された取り消しを適用する、および、更新されたACP400が承認のために利用可能であることをSCM120のオーナーデバイス110に通知する、のうちの1つ以上を実行してもよい。ACP400は、設定がSCM120に配信されたとの確認をクラウド130が最後に受信してから処理されたBlacklist-Item-IDを含むことができる。例えば、ブラックリストの内容が処理されたという確認が受信されるまでACPブラックリストは増加し、その時点で、ブラックリストは減少されるかもしれない。更新されたACP400がオーナー10に受け入れられない場合、オーナー10は、ACP400が承認を満たすまで、ACP400を修正してもよい。
デバイス110が更新されたACP400をSCM120に配信したとき、SCM120は、SCM120ブラックリストとACP400ブラックリストの両方に存在するBlacklist-Item-IDを除去して、ACP400ブラックリストを処理してもよい。ACP400ブラックリスト内のBlacklist-Item-EDの存在は、Blacklist-Item-IDをACP400に含めるとのオーナーデバイス110の決定を表すかもしれない(オーナー10が対応する認可を保持または取り消すことを決定したかどうか)。
XXII.セントラルシステムログ
一実施形態では、システム100または特定のシステムコンポーネント(ユーザー10を含む)に対する攻撃の検出および分析、あるいは、システムの性能および動作の分析を支援できる情報を提供するため、クラウド130は、セントラルシステムログとして定義される安全な、集中システムログを管理してもよく、それは、システム100の全部または一部のコンポーネントにわたって発生したイベントからの情報を格納(すなわち、ログ)することができる。そのようなイベントは、クラウド130自体に発生するイベントを含んでもよい。
各システムコンポーネントは、システムコンポーネントが遭遇したローカルイベントに関する情報を格納(すなわち、ログ)することが可能なシステムログを保持してもよい。コンポーネントのシステムログに格納されている情報、およびシステムログが格納されている場所は、設定可能(実装時、設定時、または実行時)であってもよく、システム状態によって変化してもよい。その変化は、別のシステムコンポーネントによってそうするよう命令された場合など、自動的におよび/または手動で行われてもよい。
システムコンポーネントは、セントラルシステムログ、またはRAM、ROM、他のシステムコンポーネント、または1つ以上の通信リンク、診断/デバッグポート、および/または物理的媒体へ、イベントを、リアルタイム、バッチ、または配信可能なシステムログパッケージを介してログしてもよい。システムログパッケージは、クラウド130に送信するために他のシステムコンポーネント(例えば、デバイス110、機器140、SCM120など)に配信されてもよい(例えば、SCM120は、クラウドに送信するため、SCM120システムログパッケージをデバイスに配信してもよい)。あるいは、システムログパッケージは、ブラックリストパッケージと同様に、クラウド130に直接送信されてもよい。システムログパッケージが暗号化される方法により、システムログパッケージはいずれかの通信チャネルを介して配信されてもよい。一実施形態におけるリアルタイムおよびバッチログは、安全な通信リンクを介してクラウド130送信されるだけであってもよい。一実施形態では、システムログパッケージは、安全な通信チャネルを介してのみ送信されてもよい。
一実施形態では、セントラルシステムログは存在せず、代わりに各システムコンポーネントがそれ自身のシステムログを作成し、管理してもよい。
XXIII.ユースケースの例
本開示の1つまたは複数の実施形態は、様々なアプリケーションに関連して実施することができ、本開示は本明細書に記載の特定のアプリケーションに限定されないことを理解されたい。開示の目的のために、マイクロロケーションシステムと組み合わされ得るユースケースを含む、いくつかのユースケースまたはアプリケーションは、以下のように特定される。
1)自動車
・乗員/軽トラック
・バス
・長距離輸送
・地域配送
・万能/特化
・RV
・ライドシェア
・レンタル
・ディーラー
・共用アクセス
2)重機(ブルドーザー)
3)農業機械(ジョン・ディア、クボタ)
4)オートバイ(および四輪車および三輪車およびスノーモービル)
5)飛行機
・一般航空
・商業
・軍事
6)船舶
・パーソナルウォータークラフト
・ボート(住宅)/ヨット
・商業
・貨物船
7)ドアロック
・居住&商業
・ホテル/レンタル
・安全で制御されたアクセス
8)オフィス機器およびオートメーション
・会議室の設備
・安全なボタン(別個の特許が用意されている)
・オートメーション
9)オフィス家具
・スペース利用
・オープンデスク
・スペースのカスタマイズ
・移動する機器
・調節可能な椅子
・ブロディチェア
・ディスプレイ
10)会議のイベント
・セッションへの入場(タグのスキャンに対して)
・私の座席はどこ/私は正しい座席にいるか
11)テーマパーク(ディズニー、シックスフラッグス)
12)病院
・部屋及び設備のアクセス
・誰がどの部屋にいるか
・RTLS(リアルタイム位置情報システム)−ものを追跡
13)小売(店舗)
14)産業機器/製造オートメーション(大きくて高価なもの)
15)自動販売機
16)レストラン
・給仕人/マネージャ
・どの食卓がどの食べ物を注文したか
・テーブルからの注文、あなたのものを入手
17)コンピュータモニター/ラップトップ
本明細書に記載される1つまたは複数の実施形態は、従来のシステムに対していくつかの利点を提供する。
「垂直」、「水平」、「上」、「下」、「上方」、「下方」、「内側」、「内側へ」、「外側」および「外側へ」などの方向を示す用語が、図示された実施形態の方向に基づいて本発明を説明するのを助けるために使用される。方向を示す用語の使用が、本発明をいずれかの特定の方向に限定すると解釈されるべきではない。
上記の説明は、本発明の現在の実施形態の説明である。均等論を含む特許法の原則に従って解釈されるべき、添付の特許請求の範囲に定義される本発明の精神および広範な態様から逸脱することなく、様々な変更や変化がなされることができる。本開示は、説明の目的のために提示されたものであり、本発明のすべての実施形態の包括的な説明として解釈されるべきではなく、または請求の範囲をこれらの実施形態に関連して図示または説明される特定の要素に限定するものでもない。例えば、限定するものではないが、記載された発明の任意の個々の要素は、実質的に同様の機能を提供するか、さもなければ適切な動作を提供する代替要素によって置き換えることができる。これには、例えば、当業者に現在知られているような、現在知られている代替要素、および開発時に当業者が代替要素として認識するような、将来的に開発される代替要素が含まれる。さらに、開示された実施形態は、共に説明され、協力して利点の集まりを提供する複数の特徴を含む。本発明は、発行された特許請求の範囲に明示的に記載されている場合を除き、これらの特徴の全てを含む、または、記載された全ての利点を提供する実施形態のみに限定されない。例えば、冠詞「a」、「an」、「the」または「said」を使用する、単数形での請求項要素を参照することは、その要素を単数に限定するものとして解釈されるべきではない。「X、YおよびZのうちの少なくとも1つ」としての請求項要素に対する言及は、個々にX、YまたはZのいずれか1つ、およびX、YおよびZの任意の組み合わせ、例えばX、Y、Z;X、Y;X、Z:Y、Zを含むことを意味する。