(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024028670
(43)【公開日】2024-03-04
(54)【発明の名称】セキュアな要素をセキュアに更新するための方法及びプロセス
(51)【国際特許分類】
G06F 21/57 20130101AFI20240226BHJP
H04L 9/10 20060101ALI20240226BHJP
H04L 9/32 20060101ALI20240226BHJP
G06F 21/64 20130101ALI20240226BHJP
G06F 21/60 20130101ALI20240226BHJP
【FI】
G06F21/57 320
H04L9/10 A
H04L9/32 200A
G06F21/64
G06F21/60 360
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2024010879
(22)【出願日】2024-01-29
(62)【分割の表示】P 2022533504の分割
【原出願日】2020-11-13
(31)【優先権主張番号】62/944,588
(32)【優先日】2019-12-06
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】501427157
【氏名又は名称】アッサ アブロイ アーベー
【氏名又は名称原語表記】ASSA ABLOY AB
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】サチデバ、カピル
(72)【発明者】
【氏名】プレヴォ、シルヴァン ジャック
(72)【発明者】
【氏名】ヒル、フィリップ
(57)【要約】
【課題】セキュアな要素のファームウェアを更新するための好適なシステムおよび方法を提供する。
【解決手段】本開示は、セキュアな要素のファームウェアを更新するための技術を説明する。この技術は、ゲートウェイ装置がリモートソースからファームウェアファイルを受信すること、ゲートウェイ装置上に実装された処理要素がゲートウェイ装置上に実装された第1のセキュアな要素のための一時的なセッション固有キーマテリアルを受信すること、ファームウェアファイルを複数のデータチャンクに分割すること、処理要素が複数のデータチャンクのうちの第1のデータチャンクに一時的なセッション固有キーマテリアルを適用して第1のデータパケットデータを生成すること、処理要素が第1のデータパケットを第1のセキュアな要素に送信することを備える複数の処理を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
セキュアな要素のファームウェアを更新するための方法であって、
リモートソースと、ゲートウェイ装置によって実装される第1のセキュアな要素との間で一時的なセッション固有キーマテリアルを確立すること、
前記リモートソースと、前記ゲートウェイ装置によって実装された処理要素との間でセキュアなセッションを確立すること、
前記ゲートウェイ装置が、前記リモートソースからファームウェアファイルを受信すること、
前記処理要素が前記第1のセキュアな要素とセキュアに通信することを可能にするために、前記ゲートウェイ装置に実装された前記処理要素が、前記第1のセキュアな要素の前記一時的なセッション固有キーマテリアルを、前記リモートソースと前記処理要素との間で確立された前記セキュアなセッションを介して、前記リモートソースから受信すること、
前記処理要素が、前記一時的なセッション固有キーマテリアルを前記ファームウェアファイルの第1のデータチャンクに適用して第1のデータパケットを生成すること、
前記処理要素が、前記第1のデータパケットを前記第1のセキュアな要素に送信すること、を備える方法。
【請求項2】
前記一時的なセッション固有キーマテリアルは、暗号化キーおよび署名キーを含み、前記暗号化キーは、基になるデータを暗号化するために使用され、前記署名キーは、暗号化された前記データを署名するために使用される、請求項1に記載の方法。
【請求項3】
前記第1のデータパケットは、前記一時的なセッション固有キーマテリアルの前記暗号化キー及び前記署名キーを使用して前記第1のデータチャンクを暗号化し且つ署名することによって生成される、請求項2に記載の方法。
【請求項4】
複数のデータチャンクの各々についての前記適用する処理および前記送信する処理を繰り返すことをさらに備える請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記処理要素は、セキュリティエンクレーブを含み、
前記第1のセキュアな要素と前記リモートソースとの間で前記一時的なセッション固有キーマテリアルを確立することであって、該確立することは、前記第1のセキュアな要素に関連付けられたマスターファームウェアキーペアに基づいて実行され、前記ファームウェアファイルは、前記処理要素によって分割される、前記確立することをさらに備える請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記セキュリティエンクレーブは、信頼された実行環境デバイスであり、前記マスターファームウェアキーペアは、前記リモートソースに記憶されており、
前記リモートソースと前記処理要素との間で処理要素キーペアを確立すること、
前記一時的なセッション固有キーマテリアルを、前記処理要素キーペアを使用して前記リモートソースから前記処理要素に送信すること、をさらに備える請求項5に記載の方法。
【請求項7】
前記第1のセキュアな要素と前記処理要素との間で処理要素キーペアを確立すること、
前記一時的なセッション固有キーマテリアルを、前記処理要素キーペアを使用して前記第1のセキュアな要素から前記処理要素に送信すること、をさらに備える請求項5に記載の方法。
【請求項8】
前記処理要素は、セキュリティエンクレーブを含み、前記ファームウェアファイルは、前記処理要素によって分割され、
前記処理要素が、第2のセキュアな要素をマネージャーとして選択し、前記第1のセキュアな要素をターゲットとして選択すること、
前記第1のセキュアな要素と前記第2のセキュアな要素との間で前記一時的なセッション固有キーマテリアルを確立することであって、前記第1のセキュアな要素に関連付けられた第1のマスターファームウェアキーペアに基づいて実行される前記確立すること、
前記第2のセキュアな要素と前記処理要素との間で処理要素キーペアを確立すること、
前記処理要素キーペアを用いて前記一時的なセッション固有キーマテリアルを前記第2のセキュアな要素から前記処理要素に送信することであって、前記セキュリティエンクレーブは、信頼された実行環境デバイスであり、前記第1のマスターファームウェアキーペアは、前記第2のセキュアな要素上に記憶され、前記第2のセキュアな要素に関連付けられた第2のマスターファームウェアキーペアは、前記第1のセキュアな要素上に記憶されている、前記送信すること、をさらに備える請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記ファームウェアファイルが前記第1のセキュアな要素に送信された後に、前記第2のセキュアな要素のファームウェアを更新すること、をさらに備える請求項8に記載の方法。
【請求項10】
前記一時的なセッション固有キーマテリアルは、第1の一時的なセッション固有キーマテリアルであり、
前記処理要素が、前記第2のセキュアな要素を前記ターゲットとして選択し、前記第1のセキュアな要素を前記マネージャーとして選択すること、
前記第1のセキュアな要素と前記第2のセキュアな要素との間で第2の一時的なセッション固有キーマテリアルを確立することであって、前記第2のセキュアな要素に関連付けられた第2のマスターファームウェアキーペアに基づいて実行される前記確立すること、
前記第1のセキュアな要素と前記処理要素との間で処理要素キーペアを確立すること、
前記第2の一時的なセッション固有キーマテリアルを、前記処理要素キーペアを使用して前記第1のセキュアな要素から前記処理要素に送信すること、をさらに備える請求項9に記載の方法。
【請求項11】
前記処理要素が、前記第2の一時的なセッション固有キーマテリアルに基づいて前記第1のデータパケットを前記第2のセキュアな要素に送信すること、をさらに備える請求項10に記載の方法。
【請求項12】
前記処理要素は、第2のセキュアな要素を含み、前記ファームウェアファイルは、前記ゲートウェイ装置上のプロセッサによって分割され、
前記プロセッサが、前記ファームウェアファイルを受信すること、
前記プロセッサが、前記第2のセキュアな要素をマネージャーとして選択し、前記第1のセキュアな要素をターゲットとして選択すること、
前記第1のセキュアな要素と前記第2のセキュアな要素との間で前記一時的なセッション固有キーマテリアルを確立することであって、前記第1のセキュアな要素に関連付けられた第1のマスターファームウェアキーペアに基づいて実行される前記確立すること、
前記第1のデータチャンクを前記プロセッサから前記第2のセキュアな要素に供給すること、
前記一時的なセッション固有キーマテリアルを前記第1のデータチャンクに適用し、前記第1のデータパケットを直接的にまたは間接的に前記第1のセキュアな要素に送信するように前記第2のセキュアな要素に指示することをさらに備える請求項1~11のいずれか一項に記載の方法。
【請求項13】
前記ファームウェアファイルが前記第1のセキュアな要素に送信された後に、前記第2のセキュアな要素のファームウェアを更新することであって、前記一時的なセッション固有マテリアルは、第1の一時的なセッション固有キーマテリアルである、前記更新すること、
前記プロセッサが、前記第2のセキュアな要素を前記ターゲットとして選択し、前記第1のセキュアな要素を前記マネージャーとして選択すること、
前記第1のセキュアな要素と前記第2のセキュアな要素との間で第2の一時的なセッション固有キーマテリアルを確立することであって、前記第2のセキュアな要素に関連付けられた第2のマスターファームウェアキーペアに基づいて実行される前記確立すること、
前記第1のデータチャンクを前記プロセッサから前記第1のセキュアな要素に供給すること、
前記第2の一時的なセッション固有キーマテリアルを前記第1のデータチャンクに適用し、前記第1のデータパケットを直接的にまたは間接的に前記第2のセキュアな要素に送信するように前記第1のセキュアな要素に指示すること、をさらに備える請求項12に記載の方法。
【請求項14】
前記処理要素が、前記第2の一時的なセッション固有キーマテリアルに基づいて前記第1のデータパケットを前記第2のセキュアな要素に送信すること、をさらに備える請求項13に記載の方法。
【請求項15】
セキュアな要素のファームウェアを更新するシステムであって、
ゲートウェイ装置に実装され且つ複数の動作を実行するように構成された処理要素を備え、
前記複数の動作は、
リモートソースと、前記ゲートウェイ装置によって実装された第1のセキュアな要素との間で一時的なセッション固有キーマテリアルを確立すること、
前記リモートソースと、前記処理要素との間でセキュアなセッションを確立すること、
前記ゲートウェイ装置が、前記リモートソースからファームウェアファイルを受信すること、
前記処理要素が前記第1のセキュアな要素とセキュアに通信することを可能にするために、前記ゲートウェイ装置に実装された前記処理要素が、前記第1のセキュアな要素の前記一時的なセッション固有キーマテリアルを、前記リモートソースと前記処理要素との間で確立された前記セキュアなセッションを介して、前記リモートソースから受信すること、
前記処理要素が、前記一時的なセッション固有キーマテリアルを前記ファームウェアファイルの第1のデータチャンクに適用して第1のデータパケットを生成すること、
前記処理要素が、前記第1のデータパケットを前記第1のセキュアな要素に送信すること、を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、限定されるものではないが、概して1つ以上のセキュアな要素を含むゲートウェイに関する。
【背景技術】
【0002】
セキュアな要素は、典型的には多くのアプリケーションで使用されている。セキュアな要素は、暗号化、復号化、署名生成、署名検証、および/またはキー(鍵)生成などの暗号機能またはプロセスを実行するためのハードウェアおよび/またはソフトウェアを含む。セキュアな要素は、暗号モジュールの物理的境界を確立し、暗号モジュールのソフトウェアおよびファームウェアコンポーネントを記憶および保護する任意のプロセッサおよび/または他のハードウェアコンポーネントを含む明示的に定義された境界(ペリメータ:perimeter)内に含まれる。セキュアな要素は、セキュア暗号プロセッサ(secure crypto-processor)、スマートカード、SD(secure digital)カード、マイクロSDカード、SIMカード、および/または他の暗号モジュールの形態をとる(または含む)ことができる。
【0003】
セキュアな要素(secure element : SE)は耐タンパー性のあるプラットフォーム(tamper-resistant platform)であり、アプリケーション、その機密データおよび暗号データを、よく知られた信頼できる機関によって定められたルール及びセキュリティ要件に従ってセキュアにホストすることができる。SEは、データをセキュアに記憶し、データをセキュアに処理し、外部エンティティとの通信をセキュアに行う動的な環境を提供するチップと考えることもできる。
【発明の概要】
【0004】
いくつかの特定の実施形態では、セキュアな要素のファームウェアを更新するためのシステムおよび方法が提供される。いくつかの実施形態では、システムおよび方法は、リモートソース(remote source)からファームウェアファイルを受信するゲートウェイ(gateway)を含む。ゲートウェイ装置に実装された処理要素(processing element)は、ゲートウェイ装置に実装された第1のセキュアな要素の一時的な(エフェメラル)セッション固有キーマテリアル(ephemeral session specific key material)を受信する。ファームウェアファイルは、複数のデータチャンク(data chunks)に分割される。処理要素は、一時的なセッション固有キーマテリアルを複数のデータチャンクのうちの第1のデータチャンクに適用して第1のデータパケットを生成し、第1のデータパケットを第1のセキュアな要素に送信する。
【0005】
いくつかの実施形態では、一時的なセッション固有キーマテリアルは、暗号化キー(encryption key)および署名キー(signature key)を含み、暗号化キーは、基になるデータ(underlying data)を暗号化するために使用され、署名キーは、暗号化されたデータを署名する(sign)ために使用される。
【0006】
いくつかの実施形態では、第1のデータパケットは、一時的なセッション固有キーマテリアルの暗号化キー及び署名キーを使用して第1のデータチャンクを暗号化して署名することによって生成される。
【0007】
いくつかの実装形態では、複数のデータチャンクの各々についての適用及び送信処理が繰り返される。
いくつかの実装形態では、処理要素は、セキュリティエンクレーブ(security enclave)を含む。このような場合では、一時的なセッション固有キーマテリアルは、第1のセキュアな要素とリモートソースとの間で確立され(established)、この確立は、第1のセキュアな要素に関連付けられたマスターファームウェアキーペア(master firmware key pair)に基づいて実行され、ファームウェアファイルは、処理要素によって分割される。
【0008】
いくつかの実施形態では、セキュリティエンクレーブは、信頼された実行環境デバイス(trusted execution environments device)であり、マスターファームウェアキーペアは、リモートソースに記憶されている。
【0009】
いくつかの実装形態では、処理要素キーペアは、リモートソースと処理要素との間で確立される。一時的なセッション固有キーマテリアルは、処理要素キーペアを使用してリモートソースから処理要素に送信される。
【0010】
いくつかの実装形態では、処理要素は、セキュリティエンクレーブを含む。そのような場合では、処理要素キーペアは、第1のセキュアな要素と処理要素との間で確立される。一時的なセッション固有キーマテリアルは、処理要素キーペアを使用して第1のセキュアな要素から処理要素に送信される。
【0011】
いくつかの実装形態では、処理要素は、セキュリティエンクレーブを含み、ファームウェアファイルは、処理要素によって分割される。このような場合では、処理要素は第2のセキュアな要素をマネージャー(manager)として選択し、第1のセキュアな要素をターゲットとして選択する。一時的なセッション固有キーマテリアルは、第1のセキュアな要素と第2のセキュアな要素との間で確立され、この確立は、第1のセキュアな要素に関連付けられた第1のマスターファームウェアキーペアに基づいて実行される。処理要素キーペアは、第2のセキュアな要素と処理要素との間で確立される。一時的なセッション固有キーマテリアルは、処理要素キーペアを使用して第2のセキュアな要素から処理要素に送信される。
【0012】
いくつかの実施形態では、セキュリティエンクレーブは、信頼された実行環境デバイスであり、第1のマスターファームウェアキーペアは、第2のセキュアな要素上に記憶され、第2のセキュアな要素に関連付けられた第2のマスターファームウェアキーペアは、第1のセキュアな要素上に記憶されている。
【0013】
いくつかの実装形態では、ファームウェアファイルが第1のセキュアな要素に送信された後に、第2のセキュアな要素のファームウェアが更新される。
いくつかの実施形態では、一時的なセッション固有キーマテリアルは、第1の一時的なセッション固有キーマテリアルである。このような場合では、処理要素は、第2のセキュアな要素をターゲットとして選択し、第1のセキュアな要素をマネージャーとして選択する。第2の一時的なセッション固有キーマテリアルは、第1のセキュアな要素と第2のセキュアな要素との間で確立され、この確立は、第2のセキュアな要素に関連付けられた第2のマスターファームウェアキーペアに基づいて実行される。処理要素キーペアは、第1のセキュアな要素と処理要素との間で確立される。第2の一時的なセッション固有キーマテリアルは、処理要素キーペアを使用して第1のセキュアな要素から処理要素に送信される。
【0014】
いくつかの実施形態では、処理要素は、第2の一時的なセッション固有キーマテリアルに基づいて第1のデータパケットを第2のセキュアな要素に送信する。
いくつかの実施形態では、処理要素は第2のセキュアな要素を含み、ファームウェアファイルはゲートウェイ上のプロセッサによって分割される。このような場合、プロセッサはファームウェアファイルを受信する。プロセッサは、第2のセキュアな要素をマネージャーとして選択し、第1のセキュアな要素をターゲットとして選択する。一時的なセッション固有キーマテリアルは、第1のセキュアな要素と第2のセキュアな要素との間で確立され、この確立は、第1のセキュアな要素に関連付けられた第1のマスターファームウェアキーペアに基づいて実行される。第1のデータチャンクは、プロセッサから第2のセキュアな要素に供給される。第2のセキュアな要素は、一時的なセッション固有キーマテリアルを第1のデータチャンクに適用し、第1のデータパケットを直接的にまたは間接的に第1のセキュアな要素に送信するように指示される。
【0015】
いくつかの実装形態では、ファームウェアファイルが第1のセキュアな要素に送信された後に、第2のセキュアな要素のファームウェアが更新される。
いくつかの実施形態では、一時的なセッション固有キーマテリアルは、第1の一時的なセッション固有キーマテリアルである。このような場合では、プロセッサは、第2のセキュアな要素をターゲットとして選択し、第1のセキュアな要素をマネージャーとして選択する。第2の一時的なセッション固有キーマテリアルは、第1のセキュアな要素と第2のセキュアな要素との間で確立され、この確立は、第2のセキュアな要素に関連付けられた第2のマスターファームウェアキーペアに基づいて実行される。第1のデータチャンクは、プロセッサから第1のセキュアな要素に供給される。第2の一時的なセッション固有キーマテリアルを第1のデータチャンクに適用する第1のセキュアな要素は、第1のデータパケットを直接的にまたは間接的に第2のセキュアな要素に送信するように指示される。
【0016】
いくつかの実施形態では、処理要素は、第2の一時的なセッション固有キーマテリアルに基づいて第1のデータパケットを第2のセキュアな要素に送信する。
セキュアな要素のファームウェアを更新するには、典型的には、リモートサーバーがセキュアな要素のキーマテリアルを認識していることを必要とし、これにより、相互認証を実行し、複数のセッションキーペアを生成して、セキュアな要素にファームウェアの更新を提供することができる。リモートサーバーがセキュアな要素との相互認証を実行した後、リモートサーバーはファームウェアの更新を複数のチャンクに分割し、セキュアな要素に送信される各ファイルチャンクを暗号化する必要がある。開示された複数の実施形態は、ゲートウェイ装置上にローカルに実装された処理要素を利用して、リモートソースからファームウェアまたはファームウェアの複数のチャンクを受信し、このようなファームウェアを一時的なセッション固有キーマテリアルを用いてローカルで暗号化して(locally encrypt)、暗号化されたファームウェアをセキュアな要素に供給する。これにより、セキュアな要素のファームウェアを更新するために使用されるリモートサーバーの処理リソース及びストレージリソースが削減され、システム全体のセキュリティが強化される。
【0017】
この概要は、本特許出願の主題の概要を提供することを意図している。本発明の主題の排他的または網羅的な説明を提供することを意図するものではない。詳細な説明は、本特許出願に関するさらなる情報を提供するために含まれている。
【図面の簡単な説明】
【0018】
必ずしも一定の縮尺で描かれていない図面において、類似番号は異なる図における類似要素を示している。異なる文字添え字が付された類似番号は類似要素の異なる例を表す場合がある。図面は、限定ではなく例として、概して、本明細書において説明される様々な実施形態を示している。
【
図1】様々な実施形態による、セキュアな要素を更新するシステムの一例のブロック図である。
【
図2A】様々な実施形態による、セキュアな要素を更新するための複数の処理を示している。
【
図2B】様々な実施形態による、セキュアな要素を更新するための複数の処理を示している。
【
図3】様々な実施形態による、セキュアな要素を更新するための複数の処理を示している。
【
図4】様々な実施形態による、セキュアな要素を更新するための複数の処理を示している。
【
図5】様々な実施形態による、セキュアな要素を更新するための例示的なプロセスを示すフロー図である。
【
図6】1つまたは複数の実施形態が実装され得るマシンの一例を示すブロック図である。
【発明を実施するための形態】
【0019】
本開示は、特に、セキュアな要素のファームウェアを更新するための複数の技術を説明している。具体的には、開示された複数の技術は、ゲートウェイ装置上にローカルに実装された処理要素を利用して、リモートソースからファームウェアまたはファームウェアの複数のチャンクを受信し、このようなファームウェアを一時的なセッション固有キーマテリアルを用いてローカルで暗号化して、暗号化されたファームウェアをセキュアな要素に供給する。開示された複数の実施形態によれば、セキュアな要素のファームウェアを更新するために使用されるリモートサーバーの処理リソース及びストレージリソースは、それによって削減され、システム全体のセキュリティが強化される。デバイスは、機密のキーマテリアルの記憶と複数の暗号アルゴリズムの実装に関して、一定レベルのセキュリティ保証を提供する場合にセキュアな要素と見なされる。優れたセキュアな要素の一例は、携帯電話のSIMカードとして使用されるスマートカード、クレジット/デビットカードのセキュリティチップ、企業のユーザー認証デバイスなどである。
【0020】
複数のセキュアな要素は、典型的には多くのアプリケーションで使用されている。典型的には、これらのセキュアな要素は、複数のファームウェアパケットの暗号化及び署名に使用される複数のセキュアな要素のうちの特定のセキュアな要素に固有のマスター暗号化キー及びマスター署名キーとともに製造される。これらのマスター暗号化キーおよびマスター署名キー(master encryption and signature keys)(MFKP)は、典型的にはMFKPの値を認識している2つのエンティティ間で相互認証を実行して、複数のセッションキーペア(session key pairs)を生成するために使用される。一例として、セキュアな要素は、セキュアな要素固有のMFKPを使用して、セキュアな要素のMFKPも認識している別のデバイスとの相互認証を実行することができる。相互認証は、デバイス間で任意のキーマテリアルを交換することなく実行されることができる。相互認証が実行されると、2つのデバイス間で交換されるデータを暗号化および署名し、データを復号化するために、複数のセッションキーペアがセキュアな要素及び他のデバイスによって生成され、使用される。セッションが終了すると、複数のセッションキーペアは無効化され、削除されることができる。
【0021】
いくつかの場合には、複数のセキュアな要素が動作するために使用するファームウェアを更新する必要がある。たとえば、バグを削除したり、機能を追加/削除したりするために、ファームウェアを更新する必要がある場合がある。複数のセキュアな要素を更新するためのファームウェアファイルは、典型的にはクラウドベースのサーバー又はサービスなどのリモートサーバーに記憶されている。セキュアな要素のファームウェアを更新するには、典型的には、相互認証を実行し、複数のセッションキーペアを生成して、セキュアな要素にファームウェアの更新を提供することができるようにするために、リモートサーバーが、更新されるセキュアな要素のMFKPを認識していることが必要である。また、セキュアな要素で使用できる複数のストレージリソースが制限されているため(例えば、セキュアな要素は一回で複数のファームウェアファイルを保存することができず、多くの場合、1つのファームウェアファイルでさえも保存することができない)、更新されたファームウェアファイルを、等しいかまたは等しくない複数のチャンクでセキュアな要素に送信する必要がある。このように、リモートサーバーは、更新のターゲットである各セキュアな要素のMFKPを認識する必要があるだけでなく、リモートサーバーは、ファームウェアファイルを複数のチャンクに分割し、分割された複数のチャンクを暗号化してターゲットのセキュアな要素に送信する必要がある。複数のセキュアな要素を更新するための典型的なプロセスは、更新されたファームウェアファイルが受信される複数のリモートソースに多大な負荷(セキュアなキー管理に関するプラクティスの処理と実装の両方)をかけ、膨大な量の処理リソース及びストレージリソースを消費する。
【0022】
そのような典型的なアプローチの欠点に対処するために、開示された複数の技術は、ゲートウェイ装置上にローカルに実装された処理要素を利用して、リモートソースからファームウェアまたはファームウェアの複数のチャンクを受信する。ローカル処理要素(local processing element)は、ターゲットのセキュアな要素に関連付けられた一時的なセッション固有キーマテリアルを使用してそのようなファームウェアをローカルで暗号化および署名し、暗号化および署名されたファームウェアをターゲットのセキュア要素に供給する。いくつかの場合では、ローカル処理要素は、リモートソースから一時的なセッション固有キーマテリアルを受信する。いくつかの他の場合では、ローカル処理要素は、更新されるターゲットのセキュアな要素またはゲートウェイ装置上の(ターゲットのセキュアな要素のMFKPを含む)別のセキュアな要素から一時的なセッション固有キーマテリアルを受信する。このようにして、処理リソース、ストレージリソース、及びクラウドリソースなどのリモートサーバーのセキュアなキー管理要件が削減され、他の機能を実行するために保持される。さらに、更新されたファームウェアを複数のセキュアな要素に提供するセキュリティが損なわれることはない。
【0023】
以下の説明は「複数のセキュアな要素」に関するものであるが、本開示の教示は、汎用マイクロプロセッサなどの他の任意の適切な処理要素にも同様に適用可能である。すなわち、説明のために、本開示は「複数のセキュアな要素」に関して説明されるが、複数のセキュアな要素を更新するために以下のように実行される任意の機能は、複数のセキュアな要素の代わりに(または複数のセキュアな要素に加えて)他のプロセッサによって実行されることができる。
【0024】
図1は、様々な実施形態による、セキュアな要素のファームウェアを更新するシステム100の一例のブロック図である。システム100は、リモートソース110およびゲートウェイ120を含む。リモートソース110は、1つまたは複数のサーバーを含み得、ローカルエリアネットワークまたはインターネットなどのワイドエリアネットワークを介してアクセスし得る。リモートソース110は、複数のセキュアな要素のためのファームウェアファイルの更新(firmware file update)を含む。いくつかの実施形態では、ゲートウェイ120は、リモートソース110と通信して、ファームウェアファイルの更新を取得し、ゲートウェイ120に実装された1つまたは複数のセキュアな要素150,152のファームウェアファイルを更新する。いくつかの場合では、ネットワークを介してアクセス可能なサーバーではなく、リモートソース110は、ファームウェアファイルのコピーを含み且つゲートウェイ120に提供することができる別のモバイルデバイスまたはストレージデバイスであり得る。
【0025】
ゲートウェイ120は、制御回路140、処理要素130、および1つまたは複数のセキュアな要素150,152を含む。いくつかの場合では、ゲートウェイ120は、16個のセキュアな要素を含む。ゲートウェイ120の各セキュアな要素150,152は、同じ機能を実行するように構成されている。いくつかの実装形態では、セキュアな要素150,152は、(ハードウェアおよびソフトウェアの両方で)実装されて、典型的な汎用マイクロプロセッサよりも高いレベルのセキュリティ保証を提供する。いくつかの実装形態では、セキュアな要素150,152は、高いレベルのセキュリティ保証を提供することなく、汎用マイクロプロセッサとして実装される。
【0026】
いくつかの場合では、各セキュアな要素150,152は、異なる組のMFKPとともに製造されている。したがって、第1のセキュアな要素150とデータを通信および交換するために、第1のセキュアな要素150のMFKPを認識している所与のデバイス(例えば、処理要素130)は、一時的なセッション固有キーマテリアルを生成するために、第1のセキュアな要素150との相互認証を実行する。一時的なセッション固有キーマテリアルは、情報の複数のパケットを暗号化および署名するために、第1のセキュアな要素150および所与のデバイスによって使用される。所与のデバイスと第1のセキュアな要素150との間のセッションが終了した後、一時的なセッション固有キーマテリアルは無効化および/または削除される。第1のセキュアな要素150と所与のデバイスとの間の複数のサブシーケンスセッションおよび複数の通信は、所与のデバイスと第1のセキュアな要素150が、新しい一時的なセッション固有キーマテリアルを生成するために、第1のセキュアな要素150のMFKPを使用して再び相互認証を実行することを必要とし得る。
【0027】
いくつかの実施形態では、リモートソース110は、処理要素130によって実装される、信頼される実行環境などのセキュリティエンクレーブを用いて第1のセキュアな要素150のファームウェアを更新する。このような場合では、セキュリティエンクレーブは、暗号サポート(crypto support)を利用するアプリケーションを実行して、全体的なコンピューティング環境からの分離を提供し得る。いくつかの実装形態では、処理要素130によって実装されるセキュリティエンクレーブは、別のデバイスと通信するためにセキュリティエンクレーブによって使用される対称または非対称キーマテリアル(symmetric or asymmetric key material)を含む。複数のデバイスと通信するためにセキュリティエンクレーブによって使用される暗号プロセスおよび技術は、ゲートウェイ120の複数のセキュアな要素によって実装される暗号プロセスとは異なる。
【0028】
具体的には、セキュリティエンクレーブによって使用されるキーマテリアルは、第1のセキュアな要素150のMFKPとは異なる。他のデバイスと通信するためにセキュリティエンクレーブによって使用されるキーマテリアルは、TEEKPと呼称され、データを暗号化/復号化するために使用される暗号化キーと、暗号化されたデータに署名するために使用される署名キーとを含む。セキュリティエンクレーブを用いて第1のセキュアな要素150のファームウェアを更新するためのプロセスは、
図2Aに示されている。
【0029】
図2Aに示されるように、最初に、リモートソース110は、第1のセキュアな要素150のMFKPを使用して、第1のセキュアな要素150との相互認証を実行する。この場合では、リモートソース110は、ファームウェアの更新のターゲットである第1のセキュアな要素150のMFKPを認識する必要がある。第1のセキュアな要素150との相互認証を実行した後、一時的なセッション固有キーマテリアルのペア(pair of ephemeral session specific key material)(SFKP)が生成され、リモートソース110および第1のセキュアな要素150によって記憶される。SFKPを生成した後、SFKPを生成する前またはSFKPの生成と同時に、リモートソース110は、セキュリティエンクレーブのTEEKPを使用して、処理要素130によって実装されたセキュリティエンクレーブとの認証(例えば、相互認証)を実行する。この時点では、リモートソース110は、処理要素130によって実装されたセキュリティエンクレーブと通信する(データを交換する)ために必要なキーマテリアルと、第1のセキュアな要素150と通信するために必要なSFKPと、を有する。
【0030】
この実施形態によれば、リモートソース110は、セキュリティエンクレーブのTEEKPを使用して、処理要素130によって実装されたセキュリティエンクレーブに第1のセキュアな要素150のSFKPを送信する。具体的には、リモートソース110は、処理要素130によって実装されたセキュリティエンクレーブのTEEKPを使用して、第1のセキュアな要素150のSFKPを暗号化して署名する。処理要素130がリモートソース110からSFKPを受信した後、処理要素130はTEEKPを使用してSFKPを復号化することができ、次いで、第1のセキュアな要素150の復号化されたSFKPを使用して特定のセッションのために第1のセキュアな要素150と通信することができる。リモートソース130がSFKPを処理要素130に送信した後、その前、またはそれと同時に、リモートソース130は、ファームウェアの更新を伴うファームウェアファイルを処理要素130に送信する。ファームウェアファイルは、暗号化された形式または暗号化されていない形式で送信され得る。暗号化された形式で送信される場合、リモートソース130は、処理要素130によって実装されたセキュリティエンクレーブのTEEKPを使用してファームウェアファイルを暗号化することができる。リモートサーバー及び処理要素で利用できるファームウェアファイル(または複数のチャンク)のセキュアな交換には、他にも多くの形式が存在する。いくつかの場合では、ファームウェアファイルは、リモートソース110によって分割され、リモートソース110から複数のチャンクで処理要素130に送信され得る。いくつかの場合では、ファームウェアファイルは、リモートソース110から完全な形態で送信され、処理要素130に完全に記憶され得る。そのような場合では、処理要素130は、ファームウェアファイルを複数のチャンクに分割して、第1のセキュアな要素150に送信する。
【0031】
処理要素130によって実装されたセキュリティエンクレーブは、第1のセキュアな要素150のSFKPを使用してファームウェアファイルの各チャンクを暗号化および署名して、それぞれのデータパケットを生成する。処理要素130によって実装されたセキュリティエンクレーブは、データパケット(例えば、暗号化および署名されたファームウェアファイルのチャンク)を第1のセキュアな要素150に供給する。処理要素130によって実装されたセキュリティエンクレーブは、すべてのチャンクが第1のセキュアな要素150に送信されるまで、ファームウェアファイルの各チャンクを暗号化及び署名するプロセスを繰り返す。ファームウェアファイルのすべてのチャンクが第1のセキュアな要素150によって受信された後、SFKPは無効化されるか、および/または第1のセキュアな要素150によって記憶されるものから削除される。
【0032】
図2Bは、処理要素130によって実装されたセキュリティエンクレーブを使用して、ファームウェアファイルを第1のセキュアな要素150に送信するための別のプロセスを示している。
図2Bに示されるように、最初に、リモートソース110は、第1のセキュアな要素150のMFKPを使用して、第1のセキュアな要素150との相互認証を実行する。この場合では、リモートソース110は、ファームウェアの更新のターゲットである第1のセキュアな要素150のMFKPを認識する必要がある。第1のセキュアな要素150との相互認証を実行した後、一時的なセッション固有キーマテリアルのペア(pair of ephemeral session specific key material)(SFKP)が生成され、リモートソース110および第1のセキュアな要素150によって記憶される。SFKPを生成した後、その前、またはそれと同時に、第1のセキュアな要素150は、セキュリティエンクレーブのTEEKPを使用して、処理要素130によって実装されたセキュリティエンクレーブとの認証(例えば、相互認証)を実行する。この時点では、第1のセキュアな要素150は、処理要素130によって実装されたセキュリティエンクレーブと通信する(データを交換する)するために必要なキーマテリアルを有し、第1のセキュアな要素150は、セッションのための複数の通信を行うために必要なSFKPを生成している。
【0033】
この実施形態によれば、第1のセキュアな要素150は、セキュリティエンクレーブのTEEKPを使用して、処理要素130によって実装されたセキュリティエンクレーブに第1のセキュアな要素150のSFKPを送信する。具体的には、第1のセキュアな要素150は、処理要素130によって実装されたセキュリティエンクレーブのTEEKPを使用して、第1のセキュアな要素150のSFKPを暗号化して署名する。処理要素130がリモートソース110からSFKPを受信した後、処理要素130はTEEKPを使用してSFKPを復号化することができ、次いで、第1のセキュアな要素150の復号化されたSFKPを使用して特定のセッションのために第1のセキュアな要素150と通信することができる。リモートソース130は、ファームウェアの更新を伴うファームウェアファイルを処理要素130に送信する。ファームウェアファイルは、暗号化された形式または暗号化されていない形式で送信され得る。暗号化された形式で送信される場合、リモートソース130は、処理要素130によって実装されたセキュリティエンクレーブのTEEKPを使用してファームウェアファイルを暗号化する。いくつかの場合では、ファームウェアファイルは、リモートソース110によって分割され、リモートソース110から複数のチャンクで処理要素130に送信され得る。いくつかの場合では、ファームウェアファイルは、リモートソース110から完全な形態で送信され、処理要素130に完全に記憶され得る。そのような場合では、処理要素130は、ファームウェアファイルを複数のチャンクに分割して、第1のセキュアな要素150に送信する。
【0034】
処理要素130によって実装されたセキュリティエンクレーブは、第1のセキュアな要素150のSFKPを使用してファームウェアファイルの各チャンクを暗号化および署名して、それぞれのデータパケットを生成する。処理要素130によって実装されたセキュリティエンクレーブは、データパケット(例えば、暗号化および署名されたファームウェアファイルのチャンク)を第1のセキュアな要素150に供給する。処理要素130によって実装されたセキュリティエンクレーブは、すべてのチャンクが第1のセキュアな要素150に送信されるまで、ファームウェアファイルの各チャンクを暗号化及び署名するプロセスを繰り返す。ファームウェアファイルのすべてのチャンクが第1のセキュアな要素150によって受信された後、SFKPは無効化されるか、および/または第1のセキュアな要素150によって記憶されるものから削除される。
【0035】
図3は、ゲートウェイ120に実装された2つのセキュアな要素および処理要素130によって実装されたセキュリティエンクレーブを使用して、ファームウェアファイルを第1のセキュアな要素150に送信するための別のプロセスを示している。このプロセスでは、第2のセキュアな要素152は、第1のセキュアな要素150のSFKPを、処理要素130によって実施されたセキュリティエンクレーブに供給するために用いられる。このプロセスは、リモートソース110に、更新したいターゲットの各セキュアな要素のMFKPを保持させる必要性を回避し、これにより、リモートソース110のストレージリソース及びセキュアキー管理要件が削減される。このプロセスはまた、リモートソース110がファームウェアの更新を提供するために第1のセキュアな要素150との相互認証を実行することを回避し、これにより、ネットワーク上で行われる通信の回数を削減し、システムの全体的な効率およびセキュリティを向上させる。
【0036】
図3に示すプロセスを実装するために、ゲートウェイ120に実装された各セキュアな要素は、相互認証を実行し、それ自体の通信のためのSFKPを生成するための第1のMFKPを記憶し、ゲートウェイ120に実装された別のセキュアな要素の第2のMFKPも記憶する。例えば、第1のセキュアな要素150は、第1のセキュアな要素150の暗号プロセッサによって使用される第1のMFKPを記憶し、第2のセキュアな要素152の第2のMFKPも記憶する。いくつかの場合では、ゲートウェイ120によって実装された各セキュアな要素は、ゲートウェイ120によって実装された他の1つのセキュアな要素についてのみMFKPを記憶している。いくつかの場合では、ゲートウェイ120によって実装された各セキュアな要素は、ゲートウェイ120によって実装された全てのセキュアな要素についてのMFKPを記憶している。すなわち、ゲートウェイ120が16個の異なるセキュアな要素を実装する場合、各セキュアな要素は、該セキュアな要素の対応する暗号プロセッサによって使用されるMFKPを含む16個のMFKPを記憶している。
【0037】
図3に示されるように、リモートソース130は、ファームウェアの更新を伴うファームウェアファイルを処理要素130に送信する。いくつかの場合では、ファームウェアファイルは、リモートソース110によって分割され、リモートソース110から複数のチャンクで処理要素130に送信され得る。いくつかの場合では、ファームウェアファイルは、リモートソース110から完全な形態で送信され、処理要素130に完全に記憶され得る。いつくかの場合では、処理要素130は、ファームウェアファイルをゲートウェイ120上でローカルで複数のチャンクに分割する。
【0038】
ファームウェアファイルを受信した後またはその前に、処理要素130は、第1のセキュアな要素150をマネージャーとして選択し、第2のセキュアな要素152をターゲットとして選択する。第1のセキュアな要素150は、第1のセキュアな要素150に記憶されている第2のセキュアな要素152のMFKPを使用して、第2のセキュアな要素152との相互認証を実行する。2つのセキュアな要素間の相互認証は、互いに直接的に通信するそれらセキュアな要素によって、または処理要素130および/または制御回路140を介して通信を行うそれらセキュアな要素によって実行され得る。第1のセキュアな要素150との相互認証を実行した後、一時的なセッション固有キーマテリアルの第1のペア(SFKP1)が、第1のセキュアな要素150および第2のセキュアな要素152によって生成および記憶される。第1のセキュアな要素150は、処理要素130によって実装されたセキュリティエンクレーブにSFKP1を供給する。すなわち、第1のセキュアな要素150は、処理要素130によって実装されたセキュリティエンクレーブのTEEKPを使用して、処理要素130によって実装されたセキュリティエンクレーブとの相互認証を実行する。この時点で、第1のセキュアな要素150は、処理要素130によって実装されたセキュリティエンクレーブと通信する(データを交換する)ために必要なキーマテリアルを有する。第1のセキュアな要素150は、セキュリティエンクレーブのTEEKPを使用して、SFKP1を暗号化及び署名して処理要素130によって実装されたセキュリティエンクレーブにSFKP1を供給する。
【0039】
処理要素130によって実装されたセキュリティエンクレーブは、ファームウェアファイルの各チャンクを、第1のセキュアな要素(マネージャー)150から受信したセキュリティエンクレーブのSFKP1を使用して、第2のセキュアな要素(ターゲット)152に供給する。すなわち、処理要素130によって実装されたセキュリティエンクレーブは、第2のセキュアな要素152のSFKP1を使用してファームウェアファイルの各チャンクを暗号化および署名して、それぞれのデータパケットを生成する。処理要素130によって実装されたセキュリティエンクレーブは、データパケット(例えば、暗号化および署名されたファームウェアファイルのチャンク)を第2のセキュアな要素152に供給する。処理要素130によって実装されたセキュリティエンクレーブは、すべてのチャンクが第2のセキュアな要素(ターゲット)152に送信されるまで、ファームウェアファイルの各チャンクを暗号化及び署名するプロセスを繰り返す。ファームウェアファイルのすべてのチャンクが第2のセキュアな要素(ターゲット)152によって受信された後、SFKP1は無効化されるか、および/または第1および第2のセキュアな要素150,152によってならびに処理要素130によって実装されたセキュリティエンクレーブによって削除される。
【0040】
この時点で、第2のセキュアな要素152が新しいファームウェアファイルで更新された後、処理要素130によって実装されたセキュリティエンクレーブは、第2のセキュアな要素152をマネージャーとして指定し、第1のセキュア要素150をターゲットとして指定してもよい。このようにして、処理要素130によって実装されたセキュリティエンクレーブを使用して、同じ方法で第1のセキュアな要素150のファームウェアを更新することができる。すなわち、第1のセキュアな要素150は、第1のセキュアな要素150に記憶されている第2のセキュアな要素152のMFKPを使用して、第2のセキュアな要素152との相互認証を実行する。2つのセキュアな要素間の相互認証は、互いに直接的に通信するそれらセキュアな要素によって、または制御回路140および/または処理要素130によって実装されたセキュリティエンクレーブを介して通信を行うそれらセキュアな要素によって実行され得る。第1のセキュアな要素150との相互認証を実行した後、一時的なセッション固有キーマテリアルの第2のペア(SFKP2)が、第1のセキュアな要素150によっておよび第2のセキュアな要素152によって生成および記憶される。第2のセキュアな要素(マネージャー)152は、処理要素130によって実装されたセキュリティエンクレーブにSFKP2を供給する。すなわち、第2のセキュアな要素152は、処理要素130によって実装されたセキュリティエンクレーブのTEEKPを使用して、処理要素130によって実装されたセキュリティエンクレーブとの相互認証を実行する。この時点で、第2のセキュアな要素152は、処理要素130によって実装されたセキュリティエンクレーブと通信する(データを交換する)ために必要なキーマテリアルを有する。第2のセキュアな要素152は、セキュリティエンクレーブのTEEKPを使用して、SFKP2を暗号化及び署名して処理要素130によって実装されたセキュリティエンクレーブにSFKP2を供給する。
【0041】
処理要素130によって実装されたセキュリティエンクレーブは、ファームウェアファイルの各チャンクを、第2のセキュアな要素152から受信したセキュリティエンクレーブのSFKP2を使用して、第1のセキュアな要素150に供給する。すなわち、処理要素130によって実装されたセキュリティエンクレーブは、第1のセキュアな要素150のSFKP2を使用してファームウェアファイルの各チャンクを暗号化および署名して、それぞれのデータパケットを生成する。処理要素130によって実装されたセキュリティエンクレーブは、データパケット(例えば、暗号化および署名されたファームウェアファイルのチャンク)を第1のセキュアな要素150に供給する。処理要素130によって実装されたセキュリティエンクレーブは、すべてのチャンクが第1のセキュアな要素150に送信されるまで、ファームウェアファイルの各チャンクを暗号化及び署名するプロセスを繰り返す。ファームウェアファイルのすべてのチャンクが第1のセキュアな要素150によって受信された後、SFKP2は無効化されるか、および/または第1および第2のセキュアな要素150,152によってならびに処理要素130によって実装されたセキュリティエンクレーブによって削除される。
【0042】
図4は、ゲートウェイ120に実装された2つのセキュアな要素および制御回路140を使用して、ファームウェアファイルを第1のセキュアな要素150に送信するための別のプロセスを示している。このプロセスでは、処理要素130は、所与のセキュアな要素(例えば、第2のセキュアな要素152)を実装している。すなわち、第2のセキュアな要素152のすべての機能は、それらが
図1において別個の複数のボックスとして描かれているとしても、処理要素130によって実施される。このプロセスでは、第2のセキュアな要素152を使用して、第1のセキュアな要素150のSFKPをローカルで生成し、ファームウェアの複数のチャンクを第1のセキュアな要素150にセキュアに供給する。このプロセスは、リモートソース110に、更新したいターゲットの各セキュアな要素のMFKPを保持させる必要性を回避し、これにより、リモートソース110のストレージリソースが削減される。このプロセスはまた、リモートソース110がファームウェアの更新を提供するために第1のセキュアな要素150との相互認証を実行することを回避し、これにより、ネットワーク上で行われる通信の回数を削減し、システムの全体的な効率およびセキュリティを向上させる。このプロセスはまた、一時的なセッション固有キーマテリアルを別のデバイス(例えば、ゲートウェイ120上の別のプロセッサまたはコントローラ)と通信するかまたは交換する必要性を回避する。
【0043】
図4に示すプロセスを実装するために、ゲートウェイ120に実装された各セキュアな要素は、相互認証を実行してそれ自体の通信のためのSFKPを生成するための第1のMFKPを記憶し、ゲートウェイ120に実装された別のセキュアな要素の第2のMFKPも記憶する。例えば、第1のセキュアな要素150は、第1のセキュアな要素150の暗号プロセッサによって使用される第1のMFKPを記憶し、第2のセキュアな要素152の第2のMFKPも記憶する。いくつかの場合では、ゲートウェイ120によって実装された各セキュアな要素は、ゲートウェイ120によって実装された他の1つのセキュアな要素についてのみMFKPを記憶している。いくつかの場合では、ゲートウェイ120によって実装された各セキュアな要素は、ゲートウェイ120によって実装された全てのセキュアな要素についてのMFKPを記憶している。すなわち、ゲートウェイ120が16個の異なるセキュアな要素を実装する場合、各セキュアな要素は、該セキュアな要素の対応する暗号プロセッサによって使用されるMFKPを含む16個のMFKPを記憶している。
【0044】
図4に示されるように、リモートソース130は、ファームウェアの更新を伴うファームウェアファイルを制御回路140に送信する。制御回路140は、任意の適切なプロセッサであり得、またセキュリティエンクレーブを実装するかまたは実装しない。いくつかの場合では、ファームウェアファイルは、リモートソース110によって分割され、リモートソース110から複数のチャンクで制御回路140に送信され得る。いくつかの場合では、ファームウェアファイルは、リモートソース110から完全な形態で送信され、制御回路140に完全に記憶され得る。いつくかの場合では、制御回路140は、ファームウェアファイルをゲートウェイ120上でローカルで複数のチャンクに分割する。
【0045】
ファームウェアファイルを受信した後またはその前に、制御回路140は、第1のセキュアな要素150をマネージャーとして選択し、第2のセキュアな要素152をターゲットとして選択する。第1のセキュアな要素150は、第1のセキュアな要素150に記憶されている第2のセキュアな要素152のMFKPを使用して、第2のセキュアな要素152との相互認証を実行する。2つのセキュアな要素間の相互認証は、互いに直接的に通信するそれらセキュアな要素によって、または間接的に制御回路140を介して通信を行うそれらセキュアな要素によって実行され得る。第1のセキュアな要素150との相互認証を実行した後、一時的なセッション固有キーマテリアルの第1のペア(SFKP1)が、第1のセキュアな要素150および第2のセキュアな要素152によって生成および記憶される。この時点では、第1および第2のセキュアな要素150,152は、SFKP1を使用して暗号化および署名されたデータをセキュアに交換することができる。
【0046】
制御回路140は、ファームウェアファイルの各チャンクを第1のセキュアな要素150に供給する。第1のセキュアな要素150は、第2のセキュアな要素152のSFKP1を使用して要素150から受信したファームウェアファイルの各チャンクを暗号化および署名して、それぞれのデータパケットを生成する。すなわち、第1のセキュアな要素150は、制御回路140を介して直接的または間接的に第2のセキュアな要素152にデータパケット(例えば、暗号化および署名されたファームウェアファイルのチャンク)を供給する。データパケット(例えば、暗号化および署名されたファイルのチャンク)を間接的に送信する場合、第1のセキュアな要素150は、第2のセキュアな要素152のSFKP1を用いて暗号化および署名されたファイルのチャンクを含むデータパケットを制御回路140に返す。次に、要素150は、データパケットを第2のセキュアな要素152に送信する。すなわち、要素150は、第1および第2のセキュアな要素150,152の間で交換されるデータのブラインドおよびダムコンジット(blind and dumb conduit)として機能することができる。第1のセキュアな要素150は、すべてのチャンクが第2のセキュアな要素152に送信されるまで、ファームウェアファイルの各チャンクを暗号化及び署名するプロセスを繰り返す。ファームウェアファイルのすべてのチャンクが第2のセキュアな要素152によって受信された後、SFKP1は無効化されるか、および/または第1および第2のセキュアな要素150,152によって記憶されるものから削除される。
【0047】
この時点で、第2のセキュアな要素152が新しいファームウェアファイルで更新された後、制御回路140は、第2のセキュアな要素152をマネージャーとして指定し、第1のセキュア要素150をターゲットとして指定してもよい。このようにして、第2のセキュアな要素152を使用して、同じ方法で第1のセキュアな要素150のファームウェアを更新することができる。すなわち、第2のセキュアな要素152は、第2のセキュアな要素152に記憶されている第1のセキュアな要素150のMFKPを使用して、第1のセキュアな要素150との相互認証を実行する。2つのセキュアな要素間の相互認証は、互いに直接的に通信するそれらセキュアな要素によって、または間接的に制御回路140を介して通信を行うそれらセキュアな要素によって実行され得る。第2のセキュアな要素152との相互認証を実行した後、一時的なセッション固有キーマテリアルの第2のペア(SFKP2)が、第1のセキュアな要素150によっておよび第2のセキュアな要素152によって生成および記憶される。この時点で、第1および第2のセキュアな要素150,152は、SFKP2を使用して暗号化および署名されたデータをセキュアに交換することができる。
【0048】
制御回路140は、ファームウェアファイルの各チャンクを第2のセキュアな要素152に供給する。第2のセキュアな要素152は、第1のセキュアな要素150のSFKP2を使用して要素150から受信したファームウェアファイルの各チャンクを暗号化および署名して、それぞれのデータパケットを生成する。第2のセキュアな要素152は、制御回路140を介して直接的または間接的に第1のセキュアな要素150にデータパケット(例えば、暗号化および署名されたファームウェアファイルのチャンク)を供給する。第2のセキュアな要素152は、すべてのチャンクが第1のセキュアな要素150に送信されるまで、ファームウェアファイルの各チャンクを暗号化及び署名するプロセスを繰り返す。ファームウェアファイルのすべてのチャンクが第1のセキュアな要素150によって受信された後、SFKP2は無効化されるか、および/または第1および第2のセキュアな要素150,152によって記憶されるものから削除される。
【0049】
図5は、様々な実施形態による、セキュアな要素のファームウェアを更新するための例示的なプロセス500を示すフロー図である。
処理510において、ゲートウェイ装置は、リモートソースからファームウェアファイルを受信する。
【0050】
処理520において、ゲートウェイ装置に実装された処理要素は、ゲートウェイ装置に実装された第1のセキュアな要素の一時的なセッション固有キーマテリアルを受信する。
処理530において、ファームウェアファイルは、複数のデータチャンクに分割される。
【0051】
処理540において、処理要素は、一時的なセッション固有キーマテリアルを複数のデータチャンクの第1のデータチャンクに適用して第1のデータパケットを生成する。
処理550において、処理要素は、第1のデータパケットを第1のセキュアな要素に送信する。
【0052】
図6は、本明細書において記載されている技法(例えば、方法)の任意の1つ又は複数が稼働される例示用のマシン600のブロック図である。代替実施形態では、マシン600は、独立型デバイスとして動作してもよく、または他のマシンに接続(例えば、ネットワーク化)されてもよい。ネットワーク化された構成では、マシン600は、サーバークライアントネットワーク環境におけるサーバーマシン、クライアントマシン、またはその両方の能力で動作してもよい。一例では、マシン600は、ピアツーピア(peer-to-peer : P2P)(その他の分散型)ネットワーク環境においてピア・マシン(peer machine)として動作してもよい。マシン600は、パーソナルコンピュータ(PC : Personal Computer)、タブレットPC、セットトップボックス(STB : Set-Top Box)、パーソナルデジタルアシスタント(PDA : Personal Digital Assistant)、携帯電話機、ウェブアプライアンス、IoTデバイス、自動車システム、航空宇宙システム、或いは、そのマシンによって実行される動作を規定する命令(シーケンシャルな又はその他のもの)を実行することが可能な任意のマシンであってよい。さらに、単一のマシンのみが図示されているが、「マシン」という用語はまた、クラウドコンピューティング、サービス型ソフトウェア(software as a service : SaaS)、または他のコンピュータクラスタ構成を用いるなどして、本明細書において説明される複数の方法のうちの任意の1つ又は複数を実行するための一組(または複数の組)の命令を個々に又は共同で実行する複数のマシンの任意の集合を含むと解釈されるべきである。
【0053】
本明細書において記載される複数の例は、ロジック、構成要素、デバイス、パッケージ、またはメカニズムを含んでもよく、またはそれらによって動作してもよい。回路構成は、(例えば、単純な回路、ゲート、ロジック等の)ハードウェアを含む有体物のエンティティで具体化された複数の回路の集合体(例えば、セット)である。回路構成の帰属関係(membership)は、時間と、基礎となるハードウェア変動性と、に応じて柔軟であってもよい。複数の回路は、動作する際に単独で又は組み合わせられて特定のタスクを実行するメンバを含んでもよい。一例では、回路構成のハードウェアは、(例えば、配線接続されるといった方法で)変わらない構成を有し、ある指定された演算を実行するように構成されてもよい。一例において、回路構成のハードウェアは、特定の動作の命令を符号化するように物理的な変更(たとえば、磁気的な変更、電気的な変更、不変質量粒子の可動配置による変更等)がなされたコンピュータ可読媒体を含む可変接続の物理的コンポーネント(たとえば、実行ユニット、トランジスタ、単純回路等)を具備していてもよい。物理的コンポーネントの接続においては、たとえば絶縁体から導体へ(または、その逆に)、ハードウェア構成物の基礎となる電気的特性が変化する。命令は、関与するハードウェア(例えば、実行ユニット又はローディング機構)が可変接続によってハードウェア内の回路のメンバを生成することにより、動作の際に特定のタスクの一部分を実行できるようにする。したがって、コンピュータ可読媒体は、デバイスが動作している際に、回路の他のコンポーネントに通信可能に接続される。一例では、2つ以上の回路構成の2以上のメンバにおいて、これらの物理コンポーネントのうちのいずれかが使用されてもよい。例えば、演算に応じて、ある時点において第1の回路構成の第1の回路の中で複数の実行ユニットを使用してもよく、第1の回路構成の中の第2の回路によってそれらの実行ユニットを再利用してもよく、或いは、異なる時間点において第2の回路構成の中の第3の回路によってこれらの実行ユニットを使用してもよい。
【0054】
マシン(例えば、コンピュータシステム)600は、ハードウェアプロセッサ602(例えば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組み合わせ、例えば、メモリコントローラ、等)、メインメモリ604、およびスタティックメモリ606を含み、これらの一部または全部は、インターリンク(例えば、バス)608を介して互いに通信し得る。マシン600はさらに、表示デバイス610、英数字入力装置612(例えば、キーボード)、およびユーザーインタフェース(UI)ナビゲーションデバイス614(例えば、マウス)を含み得る。一例では、表示デバイス610、英数字入力装置612、およびUIナビゲーションデバイス614は、タッチスクリーンディスプレイであってもよい。マシン600は、ストレージデバイス622(例えば、駆動ユニット)、信号発生装置618(例えば、スピーカー)、ネットワークインタフェース装置620、全地球測位システム(GPS)センサ、翼センサ(wing sensors)、機械式装置センサ、温度センサ、ICPセンサ、ブリッジセンサ、オーディオセンサ、工業用センサ、コンパス、加速度計、または他のセンサなどの1つ又は複数のセンサ616、1つ又は複数のシステムインパッケージデータ収集装置(system-in-package data acquisition device)690をさらに含み得る。システムインパッケージデータ収集装置690は、オフセット較正システム(offset calibration system)100の機能の一部またはすべてを実装することができる。マシン600は、1つまたは複数の周辺デバイス(例えば、プリンタ、カードリーダーなど)と通信または制御するために、シリアル(例えば、ユニバーサルシリアルバス(USB))、パラレル、または他の有線または無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラ628を含み得る。
【0055】
ストレージデバイス622は、本明細書において記載される技術または機能のうちの任意の1つまたは複数によって具体化または利用される1つ又は複数の組のデータ構造または命令624(例えば、ソフトウェア)が記憶されるマシン可読媒体を含む。複数の命令624はまた、マシン600によるその実行中に、メインメモリ604内、スタティックメモリ606内、またはハードウェアプロセッサ602内に、完全にまたは少なくとも部分的に存在してもよい。一例では、ハードウェアプロセッサ602、メインメモリ604、スタティックメモリ606、またはストレージデバイス621の1つまたは任意の組み合わせが、マシン可読媒体を構成してもよい。
【0056】
マシン可読媒体が単一の媒体として示されているが、「マシン可読媒体」という用語は、命令624を記憶するように構成された単一の媒体または複数の媒体(例えば、集中型もしくは分散型データベース、又は関連するキャッシュおよびサーバー)を含み得る。
【0057】
「マシン可読媒体」という用語は、マシン600による実行のために一時的または非一時的な複数の命令を記憶するか、符号化するか、または転送することができ、マシン600が本開示の技術のうちのいずれか1つ以上を実行すること、またはそのような複数の命令によって使用されるかまたはそれに関連する複数のデータ構造を記憶するか、符号化するか、または転送することを可能にする任意の一時的または非一時的な媒体を含み得る。非限定的なマシン可読媒体の例は、ソリッドステートメモリ、及び光媒体及び磁気媒体を含んでもよい。一例では、有質量マシン可読媒体(massed machine readable medium)は、(例えば、静止質量等の)不変の質量を有する複数の粒子を伴うマシン可読媒体を含む。したがって、有質量マシン可読媒体は、一時的な伝播信号ではない。有質量マシン可読媒体の特定の例は、(例えば、電気的プログラム可能な読み出し専用メモリ(EPROM)、電気的消去可能なプログラム可能読み出し専用メモリ(EEPROM)等の)半導体メモリデバイス及びフラッシュメモリデバイス等の不揮発性メモリ、内部ハードディスク及びリムーバブルディスク等の磁気ディスク、磁気光ディスク、CD-ROM及びDVD-ROMディスクを含んでもよい。
【0058】
ストレージデバイス621に記憶されている複数の命令624(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、ハードウェアプロセッサ602によって使用するためにメインメモリ604によってアクセスされ得る。メインメモリ604(例えば、DRAM)は、典型的には高速であるが揮発性であり、従って、「オフ」状態の間を含む長期記憶に適したストレージデバイス621(例えば、SSD)とは異なるタイプの記憶装置である。ユーザーまたはマシン600によって使用される複数の命令624またはデータは、典型的には、ハードウェアプロセッサ602によって使用されるためにメインメモリ604に読み込まれる。メインメモリ604がフル(満杯)になると、ストレージデバイス621からの仮想空間を割り当ててメインメモリ604を補うことができる。しかしながら、ストレージデバイス621は、典型的には、メインメモリ604よりも遅く、書き込み速度は、典型的には、読み出し速度の少なくとも二倍遅いため、仮想メモリの使用は、(メインメモリ604、例えばDRAMとは対照的に)ストレージデバイスの待ち時間に起因するユーザエクスペリエンスを大幅に低下させる可能性がある。さらに、仮想メモリのためのストレージデバイス621の使用は、ストレージデバイス621の使用可能な寿命を大幅に短縮させる可能性がある。
【0059】
命令624は、いくつかの転送プロトコルの任意のもの(例えば、フレームリレー、インターネットプロトコル(IP : Internet protocol)、送信制御プロトコル(TCP : Transmission Control Protocol)、ユーザーデータグラムプロトコル(UDP : User Datagram Protocol)、ハイパーテキスト転送プロトコル(HTTP:HyperText Transfer Protocol)、など)を利用するネットワークインタフェース装置620を介して送信媒体を使用して通信ネットワーク626上において更に送信又は受信することができる。例示用の通信ネットワークは、その他のものに加えて、ローカルエリアネットワーク(LAN : Local Area Network)、ワイドエリアネットワーク(WAN : Wide Area Network)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、セルラーネットワーク)、POTS(Plain Old Telephone Service)ネットワーク、及び無線データネットワーク(例えば、Wi-Fi(登録商標)と呼称されるIEEE(Institute of Electrical and Electronics Engineers)802.11規格ファミリー、WiMax(登録商標)と呼称されるIEEE802.16規格ファミリー)、IEEE802.15.4規格ファミリー、ピアツーピア(P2P)ネットワークを含みうる。一例では、ネットワークインタフェース装置620は、通信ネットワーク626に接続するべく、1つ又は複数の物理的ジャック(例えば、Ethernet、同軸、又は電話ジャック)又は1つ又は複数のアンテナを含みうる。一例では、ネットワークインタフェース装置620は、単一入力複数出力(SIMO : Single-Input Multiple-Output)、複数入力複数の出力(MIMO : Multiple-Input Multiple-Output)、又は複数入力単一出力(MISO(Multiple Input Single Output)技法の少なくとも1つを使用して無線通信するべく、複数のアンテナを含みうる。「伝送媒体」という用語は、マシン600による実行のための複数の命令を記憶、符号化、または転送することができる任意の有形又は無形の媒体を含み、そのようなソフトウェアの通信を可能にするためのデジタルまたはアナログ通信信号または他の有形又は無形の媒体を含むものとみなす。
【0060】
本明細書において説明された非限定的な複数の態様または複数の実施例の各々は、それ自体で存在してもよく、または他の実施例の1つまたは複数と様々な順列または組み合わせで組み合わされてもよい。
【0061】
上記の詳細な説明は、詳細な説明の一部を形成する添付図面への参照を含む。複数の図面は、例示として、本発明の主題が実施され得る特定の実施形態を示している。また、これらの実施形態は、本明細書においては「例」と呼称されている。こうした例は、図示又は記載したものに加えて要素を含むことができる。但し、本発明者らは、図示又は記載されている要素のみが提供される例をも想定している。更には、本発明者らは、特定の例(又は、その1つ又は態様)との関係において又は本明細書において図示又は記載されているその他の例(又は、その1つ又は複数の態様)との関係において図示又は記載されている要素の任意の組合せ又は順列を使用する例(又は、その1つ又は複数の態様)をも想定している。
【0062】
本明細書及び参照によって組み込まれた文献との間に矛盾する使用法が存在する場合には、本明細書の使用法によって支配される。
本明細書において、「1つの(a)」又は「1つの(an)」という用語は、特許文献において一般的であるように、「少なくとも1つの」又は「1つ又は複数の」の任意のその他の例又は使用法とは独立的に、1つ又は複数を含むものとして使用されている。本明細書においては、「又は」という用語は、そうではない旨が通知されていない限り、非排他的なものを意味するように、或いは、「A又はB」が、「BではなくA」、「AではなくB」、及び「A及びB」を含むように、使用されている。本明細書においては、「含む(including)」及び「この場合に(in which)」という用語は、「備える(comprising)」及び「ここで(wherein)」という個々の用語の平易な英語の同等物として使用されている。また、添付の請求項において、「含む」及び「備える」という用語は、オープンエンド型であり、即ち、請求項においてこれらの用語の後に列挙されているものに加えて要素を含むシステム、装置、物品、組成、処方、又はプロセスが、依然として、その請求項の範囲に含まれるものと考えられている。更には、添付の請求項において、「第1の」、「第2の」、及び「第3の」などの用語は、ラベルとして使用されているものに過ぎず、それらの物体に対して数値的要件を課すことを意図したものではない。
【0063】
本明細書で説明される方法の複数の例は、少なくとも部分的にマシンまたはコンピュータによって実行され得る。いくつかの例は、上記の複数の例で説明された方法を実行するように電子デバイスを設定するように動作可能な一時的または非一時的な命令で符号化されたコンピュータ可読媒体またはマシン可読媒体を含み得る。そのような複数の方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのコードを含み得る。そのようなコードは、様々な方法を実行するための一時的または非一時的なコンピュータ可読命令を含み得る。コードは、コンピュータプログラム製品の部分を形成し得る。さらに、一例では、コードは、実行中または他の時間などに、1つまたは複数の揮発性、非一時的、または不揮発性の有形のコンピュータ可読媒体に有形に記憶されることができる。これらの有形のコンピュータ可読媒体の複数の例としては、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)などが挙げられるが、これらに限定されない。
【0064】
以上の説明は、限定ではなく、例示を目的としたものであると解釈されたい。例えば、上述の例(又は、その1つ又は複数に態様)は、相互に組合せにおいて使用することができる。上記説明を検討した当業者等により、他の実施形態を使用することができる。要約は、読者が技術的な開示の特性を迅速に特定することを可能にするべく提供されている。これは、請求項の範囲又は意味を解釈又は限定するべく使用されないものと理解されたい。また、上記詳細な説明において、本開示を簡素化するためにさまざまな特徴を併せてグループ化している場合がある。これは、特許請求されていない開示された特徴が任意の請求項にとって必須であることを意図したものとして解釈してはならない。むしろ、本発明の主題は、特定の開示されている実施形態のすべての特徴未満において存在しうる。従って、添付の請求項は、これにより、それぞれの請求項が別個の実施形態として自立している状態において、例又は実施形態として詳細な説明に内蔵され、このような実施形態は、様々な組合せ又は順列において相互に組み合わせられうるものと想定されている。本発明の主題の範囲は、請求項に付与される均等物の完全な範囲と共に、添付の請求項を参照して判定することを要する。