(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】製品のライフサイクル段階を順方向のみのライフサイクルを通じて次の段階に安全に移行させ、データと製品ステータスの完全性を検証する方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240927BHJP
【FI】
H04L9/32 200A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519403
(86)(22)【出願日】2022-09-20
(85)【翻訳文提出日】2024-03-28
(86)【国際出願番号】 EP2022076092
(87)【国際公開番号】W WO2023052201
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】522296653
【氏名又は名称】コンチネンタル・オートモーティヴ・テクノロジーズ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】Continental Automotive Technologies GmbH
【住所又は居所原語表記】Continental-Plaza 1, 30175 Hannover, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マーク ゼバスティアン パトリック シュテーティンガー
(72)【発明者】
【氏名】イ ウァン
(57)【要約】
メルクルツリーベースのデータ構造を実装しているライフサイクル証明書により、現在のライフサイクル段階を検証することと、第1の構成要素又は製品のライフサイクル段階を順方向のみで次のライフサイクル段階に安全に移行させることとを可能にする。ライフサイクル証明書は、ライフサイクルインデックスと、第1レベルのハッシュ値又はその参照値と、少なくとも1つの第2レベルのハッシュ値又はその参照値と、第3レベルのハッシュ値と、更なる第3レベルのハッシュ値又はそれに対応する参照値と、を含む。第3レベルのハッシュ値は、ライフサイクルインデックスのそれぞれの値に関連する、対応する機密データのハッシュを表す。ライフサイクル証明書は、データ構造の全ての他の構成要素の連結のハッシュ値である、制御ハッシュ値を更に含む。製品のライフサイクル段階を順方向のみで移行させる方法は、ライフサイクル証明書と、前のライフサイクル段階への移行を防止するためのメルクルツリーベースのデータ構造のユニークな特性とを使用する。
【特許請求の範囲】
【請求項1】
現在のライフサイクル段階を検証することと、製品(P)のライフサイクル段階を順方向のみで次のライフサイクル段階に安全に移行させることとを可能にする、メルクルツリーベースのデータ構造(100)であって、
ライフサイクル段階インデックス(i)と、
第1レベルのハッシュ値(H)又は前記第1レベルのハッシュ値(H)への参照値と、
少なくとも1つの第2レベルのハッシュ値(H0、H1、H2)又は前記少なくとも1つの第2レベルのハッシュ値(H0、H1、H2)への参照値と、
前記ライフサイクルインデックス(i)のそれぞれの値に関連する、対応する機密データのハッシュを表す、第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))、及び更なる第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))又は後者に対して対応する参照値(H0-0、H0-1、H1-0、H1-1、H2-0、H2-1)と、
前記インデックスフィールド(i)と、前記第1レベルのハッシュ値(H)又は前記その参照値と、前記少なくとも1つの第2レベルのハッシュ値(H0、H1、H2)又は前記その参照値と、前記第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))と、更なる第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))又は前記その参照値(H0-0、H0-1、H1-0、H1-1、H2-0、H2-1)との連結のハッシュ値である、制御ハッシュ値(CTRL)と、
を含む、データ構造(100)。
【請求項2】
前記ハッシュ値が、SHA-256、SHA-512、若しくはSHAKEハッシュ関数を含む暗号ハッシュ関数、又は好ましくは少なくとも128ビット幅の暗号ハッシュ値を計算するための対称ブロック暗号若しくはストリーム暗号の特別な演算モードに従って決定される、請求項1に記載のデータ構造(100)。
【請求項3】
要求元エンティティ(RE)における製品(P)の現在のライフサイクル段階を検証するための方法(200)であって、
前記製品(P)の現在のライフサイクル段階の提供を求める要求を前記製品(P)に送信すること(202)と、
前記製品(P)から、前記現在のライフサイクル段階と、請求項1又は2によるデータ構造(100)を実装しているライフサイクル証明書とを受信すること(204)と、
前記データ構造において提供される第1レベル、第2レベル、及び第3レベルのハッシュ値又はそれらの参照値に基づいて、前記メルクルツリーを通るパスを再構築する(206)ことと、前記対応するライフサイクル段階インデックスを決定することと、
前記受信されたライフサイクルインデックスが前記決定されたライフサイクルインデックスと等しいかどうかを検証する(208)ことであって、前記受信されたライフサイクルインデックスと前記決定されたライフサイクルインデックスとが等しい場合、前記ライフサイクル段階が検証される、ことと、
を含む、方法(200)。
【請求項4】
製品(P)のライフサイクル段階を順方向のみで目標のライフサイクル段階に安全に移行させる方法(300)であって、
a)要求元エンティティ(RE)から前記製品(P)において、現在のライフサイクル段階インデックス(i
c)を提供する要求を受信すること(302)と、
b)前記要求元エンティティ(RE)に、現在のライフサイクル段階インデックス(i
c)と、請求項1又は2によるデータ構造(100)を実装しているライフサイクル証明書とを提供すること(304)と、
c)前記製品(P)において、目標のライフサイクル段階に移行させる要求を受信すること(306)と、
d)前記目標のライフサイクル段階インデックス(i
t)が前記現在のライフサイクル段階インデックス(i
c)よりも高いかどうかを検証すること(308)と、
を含み、
前記目標のライフサイクル段階インデックス(i
t)が現在のライフサイクル段階インデックス(i
c)よりも高い場合、前記方法(300)が、
e)前記要求において受信された前記目標のライフサイクルインデックス(i
t)を前記現在のライフサイクル段階インデックス(ic)として設定すること(310)と、
f)前記以前のライフサイクル段階インデックスに関連する前記機密データを置換する新しい機密データを、前記製品(P)に記憶すること(312)と、
g)前記新しい機密データを表す第3レベルのハッシュ値を生成して(314)少なくとも一時的に記憶することと、
h)請求項1又は2によるデータ構造(100)を実装している新しいライフサイクル証明書を生成するための情報を決定し(316)、前記新しいライフサイクル証明書を生成することと、
i)前記現在のライフサイクル段階インデックス(i
c)と、ステップh)において生成された前記新しいライフサイクル証明書とを、前記要求元エンティティ(RE)に提供すること(318)と、
を含み、
又は、前記目標のライフサイクル段階インデックス(i
t)が現在のライフサイクル段階インデックス(i
c)よりも高くない場合、前記方法(300)が、
i)前記要求を無視すること(320)
を含む、方法(300)。
【請求項5】
k)前記要求元エンティティ(RE)において、ステップb)において提供された前記ライフサイクル段階インデックスと前記ライフサイクル証明書とに基づいて、前記目標のライフサイクル段階及び前記製品(P)に送信された機密データから、ライフサイクル証明書を決定すること(322)と、
l)ステップj)において決定された前記ライフサイクル証明書を、ステップh)において前記製品(P)によって提供された前記ライフサイクル証明書と比較すること(324)と、
を更に含み、
前記決定されたライフサイクル証明書と前記提供されたライフサイクル証明書とが同一である場合、前記移行が正常に完了する、
請求項4に記載の方法(300)。
【請求項6】
請求項1又は2によるデータ構造を実装している製品のライフサイクル証明書の有効性を検証する方法(400)であって、
要求元エンティティ(RE)から、及び前記製品(P)において、ライフサイクル証明書を検証する要求を受信すること(402)と、
検証すべきライフサイクル証明書が前記要求とともに受信されなかった場合、前記要求元エンティティ(RE)から、及び前記製品(P)において、前記検証すべきライフサイクル証明書を受信すること(404)と、
前記受信されたライフサイクル証明書に含まれるライフサイクル段階インデックスを、前記製品(P)の現在のライフサイクル段階インデックスと比較すること(406)と、
前記ライフサイクル段階インデックスが等しい場合、
前記製品(P)において、前記受信されたライフサイクル証明書を、前記製品(P)のメモリから取得された、又は前記製品(P)のメモリに記憶された情報に基づいて前記製品(P)によって生成された、ライフサイクル証明書と比較すること(408)と、
前記ライフサイクル証明書が同一である場合、
前記ライフサイクル証明書が有効であることを前記要求元エンティティ(RE)に応答すること(410)と、
又は
前記ライフサイクル段階インデックスが等しくない場合、若しくは前記ライフサイクル証明書が同一でない場合、
前記ライフサイクル証明書が無効であることを前記要求元エンティティ(RE)に応答すること(412)と、
を含む、方法(400)。
【請求項7】
請求項3~6のいずれか一項に記載の方法(200、300、400)であって、
前記要求元エンティティ(RE)と前記製品(P)との間で認証及び/又は認可を行うためのアクセス制御スキームを実行することと、
認証及び/若しくは認可に成功すると、前記製品(P)において要求を受け入れることと、又は
前記要求を拒否することと、
を更に含む、方法(200、300、400)。
【請求項8】
1つ以上のデータ線及び/又はバス(610)を介して通信可能に接続された、マイクロプロセッサ(602)と、揮発性メモリ(604)及び不揮発性メモリ(606)と、通信インターフェース(608)と、を備える製品(P)であって、ライフサイクル段階インデックスカウンタ値を記憶するためのセキュアメモリ領域(606a)を更に備え、前記不揮発性メモリ(606)が、前記マイクロプロセッサ(602)によって実行されると、前記製品(P)を、請求項4、6、又は7のいずれか一項に記載の方法のステップを実行するように構成するコンピュータプログラム命令を記憶する、製品(P)。
【請求項9】
コンピュータによって実行されると、前記コンピュータに、請求項3~7のいずれか一項に記載の方法を実行させるコンピュータプログラム命令を含む、コンピュータプログラム製品。
【請求項10】
請求項9に記載の前記コンピュータプログラム製品を取得可能に記憶する、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを記憶する製品又は構成要素に関し、このデータは、製品のライフサイクルの様々な段階を通じて、順方向の移行時に変化し得る。特に、本発明は、記憶されたデータがライフサイクルの対応する段階と一致すること、並びに以前のライフサイクル段階への逆方向の移行が防止され及び/又は少なくとも検出可能であることを確保及び検証することに関する。
【背景技術】
【0002】
様々な技術分野では、製品又は構成要素は、製品のライフサイクルの様々な段階を通じて、順方向の移行時に変化するデータを記憶する。そのような構成要素又は製品は、一般に、直接的に、又は他の構成要素又は製品によって提供及び/又は共有されるインターフェースを介してのいずれかで、通信インターフェースを介して外部エンティティと通信することができる。構成要素又は製品のライフサイクルには、生産、顧客納入、OEM生産、フィールドアプリケーション(販売後使用とも呼ばれる)、及び故障分析又は寿命終期分析などの段階が含まれ得る。寿命終期分析には、製品又は構成要素がその寿命を通じてどのように使用されたかを学習するための一般的な分析が含まれ得、故障分析には、例えば、製品又は構成要素がその通常の寿命終期の前に故障したときに関連し得る。しかしながら、寿命終期分析と故障解析とは十分に類似しているため、両方の用語は互換的に使用され得る。
【0003】
以下の説明では、「構成要素」又は「製品」という用語は、製品のライフサイクル段階間の移行時に変化するデータを記憶する1つ以上の構成要素を備え得るため、同義に使用される。
【0004】
記憶されるデータは、ライフサイクルのそれぞれの段階中にのみ使用され得、更に、それぞれの段階中に認可されたエンティティによってのみ使用される機密データであり得る。そのような機密データには、セキュリティ機能又は特徴のテスト又は実行に必要となるデータ、例えば、暗号鍵、アクセス認証情報などが含まれ得る。
【0005】
構成要素又は製品の適切な動作を保証するために、構成要素又は製品の生産中に、機密データに依存するか又は機密データを使用するそのような機能のいくつかのテストを実行するべき必要があり得ることは明らかである。同様に、製品又は構成要素がOEM製造者によって受け取られた後、その製品又は構成要素を顧客に販売される別の製品に実装する前に、いくつかのテストが実行される場合がある。また、製品又は構成要素の高度なテスト能力及び診断能力は、寿命終期分析にのみ利用可能である場合があり、その後、製品又は構成要素は、通常のサービスに戻されてはならない。しかしながら、製品又は構成要素のライフサイクル中にそのような機密データがあまりに多くのエンティティに対して利用可能である場合、機密データを秘密に保持するという目標と相容れない場合がある。
【0006】
例えば、構成要素の生産中に使用され得る任意の機密データは、構成要素の製造者がアクセスし得るが、顧客に渡されてはならない。そのような機密データの読み出しは、構成要素に実装されたセキュリティ機構によって防止され、いったん構成要素が受け取られると、その機密データは、顧客の機密データに置換され得る。
【0007】
顧客は、構成要素を備えるか又は実装する、より複雑な更なる製品の開発のために構成要素を使用する場合がある。この場合も同様に、適切な機密データを使用して、より複雑な更なる製品のコンテキストにおける構成要素のいくつかテストを必要とし得る。いったんより複雑な更なる製品の開発が終了し、顧客又は第三者のいずれか、例えばOEM製造者による生産の準備が整うと、構成要素における機密データは、より複雑な更なる製品の生産中のテストに適合された対応するデータに置換されることになる。したがって、より複雑な更なる製品が生産設備において受け取られると、機密データは、OEM製造者の機密データに置換され得る。
【0008】
いったん、より複雑な更なる製品が生産され、使用者に販売するための準備が整うか又は広義にはフィールドで使用するための準備が整うと、構成要素を備えるか又は実装する、より複雑な更なる製品を動作させるために必要な機密データが構成要素に記憶され得る。動作には、フィールドテスト及びフィールド診断が含まれ得る。フィールド使用のための機密データの記憶は、使用者によって、又は使用者の要求に応じて生産者によって行われてもよい。
【0009】
最後に、製品の寿命終了時に、より高度なテスト及び診断へのアクセスを提供するモードでは、より複雑な更なる製品を動作させるための機密データは、フィールド使用のための機密データに置換され得る。これは、そのような高度なテスト及び診断では以前の段階からの機密情報が明らかになる場合があるため、例えば、信頼されて認可されたエンティティに限定され得る。
【0010】
上記の例から、使用された又はそうでなければ漏洩された製品を再販売することはセキュリティ又は安全に関連するアプリケーションにおいて危険であり得るため、各段階の機密データは、他の段階中に制御を行う他の関係者から秘密保持されるべきであること、及び以前の段階に戻ることが防止されるべきことは明らかである。製品のライフサイクルの以前の段階に戻ることを防止することを、以下では順方向のみのライフサイクルと呼ぶ。
【0011】
本発明の目的は、現在のライフサイクル段階を検証することと、製品のライフサイクル段階を順方向のみで次のライフサイクル段階に安全に移行させることとを可能にするデータ構造を提供することである。本発明の更なる目的は、ライフサイクル段階を安全に移行させる方法と、製品の順方向のみのライフサイクルの様々なライフサイクル段階を通じてデータとデバイスステータスの完全性を確保して検証する方法とを提供することである。
【発明の概要】
【課題を解決するための手段】
【0012】
これらの目的は、請求項1のデータ構造、並びに請求項3、4、及び6の方法によって達成される。データ構造及び方法の有利な実施形態及び発展形態は、それぞれの従属請求項に示されている。
【0013】
本発明の第1の態様によれば、現在のライフサイクル段階を検証するための、及び、製品のライフサイクル段階を順方向のみで次のライフサイクル段階に安全に移行させるための、メルクルツリーベースのデータ構造は、ライフサイクル段階インデックスフィールドと、第1レベルのハッシュ値又は第1レベルのハッシュ値への参照値と、少なくとも1つの第2レベルのハッシュ値又は少なくとも1つの第2レベルのハッシュ値への参照値と、第3レベルのハッシュ値と、更なる第3レベルのハッシュ値又は後者に対して対応する参照値と、制御ハッシュ値と、を含む。制御ハッシュ値は、インデックスフィールドと、第1レベルのハッシュ値又はその参照値と、少なくとも1つの第2レベルのハッシュ値又はその参照値と、第3レベルのハッシュ値及び更なる第3レベルのハッシュ値又はその参照値との連結のハッシュ値である。制御ハッシュ値は、データ構造の個々のフィールドのいかなる操作も防止し、その完全性を保証する。
【0014】
データ構造のいくつかの要素の、メルクルツリー(ハッシュツリー)のノードとの関係を示す例示的なメルクルツリーを、
図1に示す。メルクルツリーのリーフノード、本データ構造では、第3レベルのハッシュ値H0-0、H0-1、H1-0、H1-1、H2-0、及びH2-1は、対応するデータブロックD
0~D
5のハッシュ値#(D
0)~#(D
5)を含む。データブロックD
0~D
5は、インデックスiによって表される、製品の異なるライフサイクル段階に関連する機密データ、例えば、オペレーティングソフトウェア及び/又はパラメータ、アクセス認証情報、暗号鍵、秘密、署名などを記憶し得る。ライフサイクル段階は、例えば、デバイス生産段階、OEM顧客納入段階、例えばデバイスが製品に組み込まれる、OEM生産段階、フィールドアプリケーション段階、又は使用段階、故障分析段階、及び更なる段階に対応し得る。
【0015】
非リーフノードハッシュ値である第2レベルのハッシュ値H0、H1、H2は、各々、それらが接続される第3レベルのハッシュ値H0-0、H0-1、H1-0、H1-1、H2-0、及びH2-1のハッシュ値を含む。
図1では、第2レベルのハッシュ値H0は、第3レベルのハッシュ値H0-0及びH0-1のハッシュ値を含み、第2レベルのハッシュ値H1は、第3レベルのハッシュ値H1-0及びH1-1のハッシュ値を含み、第2レベルのハッシュ値H2は、第3レベルのハッシュ値H2-0及びH2-1のハッシュ値を含む。第1レベルのハッシュ値Hは、第2レベルのハッシュ値H0、H1、及びH3のハッシュ値を含む。
【0016】
データ構造のインデックスフィールドiは、ライフサイクル段階のインデックスを表す。データ構造はまた、追加データ用のフィールドを含み得る。この場合、制御ハッシュ値を決定するための様々なフィールドの連結には、追加データ用のフィールドを含む。
【0017】
図2は、本発明の好ましい実施形態の例示的なデータ構造を示す。このデータ構造は、以下の順序、すなわち、インデックスフィールドi、追加情報又はデータのフィールド、第2レベルのハッシュ値H0、インデックスi=2に対する第3レベルのハッシュ値、インデックスi=3に対する更なる第3レベルのハッシュ値又はその参照値、第2レベルのハッシュ値H2、第1レベルのハッシュ値、最後に制御ハッシュ値、で様々なフィールド及びハッシュ値を含む。容易に明らかなように、現在のライフサイクル段階に関連する第3レベルのハッシュ値を含む第2レベルのハッシュ値H1は、現在のライフサイクル段階の第3レベルのハッシュ値、及び次のライフサイクル段階の第3レベルのハッシュ値又はその参照値に置換される。一般に、第2レベルのハッシュ値又はその参照値は、基礎となる第3レベルのハッシュ値又はその参照値によって置換されない限り、昇順に提供され、同様に昇順に配置される。しかしながら、他の所定の順序もまた使用され得る。
図2に示される例示的なデータ構造は、ライフサイクル段階インデックス1からライフサイクル段階インデックス2への移行後に製品によって送信されるライフサイクル証明書に対応していることに留意されたい。
【0018】
データ構造の様々なフィールド及びハッシュ値は、所定の文字又はコードによって分離されてもよく、又は所定の長さを有してもよく、これにより、実際のコンテンツが提供された全スペースを使用しない場合、デフォルトデータでパディングされ得る。
【0019】
ハッシュ値は、安全なハッシュアルゴリズム、例えば、SHA-256、SHA-512、又はSHAKEハッシュ関数に従って決定され得るが、AES-128と組み合わせたデイビスマイヤーハッシュ演算を含む、少なくとも128ビット幅の暗号ハッシュ値を計算するための他のハッシュ関数、例えば、対称ブロック暗号又はストリーム暗号の特別な演算モードに基づくハッシュ演算もまた使用され得る。
【0020】
データ構造が実際のハッシュ値を含む場合、検証又は移行に必要な全ての情報がメッセージに含まれる。
【0021】
しかしながら、ハッシュ値への参照値及び実際のハッシュ値がデータ構造で提供される場合、データ構造はむしろ、メルクルツリーを通る正しいパスを提供する。データ構造において参照されるだけのハッシュ値は、他のソースから取得される必要があるか、検証エンティティに対して既知であるデータに基づいて決定され得る。このように、データ構造は、それぞれ、製品において現在利用可能ないくつかの情報又は情報の表現を提供し、そうでなければ、検証のためにどのデータが更に必要であるかを示す情報を提供する。このデータは、他のライフサイクル段階に関連するエンティティから取得され得る。必要な情報は実際の機密データを含まず、そのハッシュのみであるため、この情報は、比較的安全でないチャネルを通して提供され得る。補完データの有効性は常に、製品に記憶され且つ製品から提供され得、それ自体が信頼できるソースとみなされる、第1レベルのハッシュに対して検証され得る。データ構造においてこのタイプのコンテンツを使用する本発明の実施形態は、他のライフサイクル段階に対して認可された様々な異なるエンティティによって欠落した情報を提供する必要があるので、更なる通信を伴い且つ追加の認証チェックを伴い得る、追加のセキュリティレベルを提供する。
【0022】
1つのライフサイクル段階から次のライフサイクル段階へ、例えば、インデックス1を有するライフサイクル段階からインデックス2を有する次のライフサイクル段階へ、例えば、OEM顧客納入段階からOEM生産段階に移行させるために、OEMによる納入及びテストのために構成要素に記憶された機密データが、OEM製品への統合に必要なデータによって置換される必要がある場合がある。そのような置換は通常、ライフサイクル段階の移行とともに行われる。更に上述したように、製品を以前のライフサイクル段階に戻すことはできないことが好ましい。製品のメモリは、通常、異なるライフサイクル段階を通じて使用され得る全ての種類のデータを永久に記憶することはできず、記憶する必要もなく、むしろ現在のライフサイクル段階で必要とされるデータのみを記憶するので、理想的には、改ざんに対して安全で、データのリバースエンジニアリングに使用され得るいかなる情報も明らかにしない方法で、製品が特定のライフサイクル段階にあること又はあったことを示すためのいくつかの証拠を提供しなければならない。この証拠は、データ構造を使用して製品自体によって提供されてもよく、これにより、製品外部のいくつかの場所に記録を保持する必要を省く。
【0023】
暗号ハッシュ関数のグループに属する特別の形式のハッシュ関数が、一意的で曖昧さのない大量のデータの表現を生成できることは周知であり、この表現は、比較的小さなメモリ空間しか占有せず、その表現が基づくデータを識別又は決定することを許可しない。したがって、ライフサイクル段階のデータの小さなサイズのハッシュ値のみを製品のメモリに保持することにより、現在のライフサイクル段階に関連するデータのためにメモリの主要部分を使用する一方で、前のライフサイクル段階の機密データが以前に製品に記憶されていたことを示す一意的で曖昧さのない証拠を保持し、最終的に製品がそのライフサイクル段階にあったことを示すことを可能にする。
【0024】
そのような暗号ハッシュ値は、比較的小さな労力で計算され得るが、ハッシュ値から基礎となるデータを再構築することは不可能であるとみなされ、これが、そのような特別なハッシュ関数が量子コンピュータベースの攻撃に対して耐性があるとみなされる理由である。
【0025】
本発明の第2の態様では、例えば次のライフサイクル段階に移行させる前に、要求元エンティティにおける製品の現在のライフサイクル段階を検証するための方法は、現在のライフサイクル段階の提供を求める要求を製品に送信することを含む。本方法は更に、製品から、現在のライフサイクル段階と、本発明によるデータ構造を実装しているライフサイクル証明書とを受信することと、ライフサイクル証明書で提供される第1レベル、第2レベル、及び第3レベルのハッシュ値又はその参照値に基づいて、メルクルツリーを通るパスを再構築することと、対応するライフサイクル段階インデックスを決定することと、提供された受信されたライフサイクル段階インデックスが決定されたライフサイクル段階インデックスと一致するかどうかを検証することと、を含む。受信されたライフサイクルインデックスと、ライフサイクル証明書で提供される他の情報から決定されたライフサイクルインデックスとが一致する場合、現在のライフサイクル段階が検証される。
【0026】
このコンテキストにおける要求元エンティティは、少なくとも一時的に製品と通信可能に接続された任意のデバイスであってもよい。通信接続は、有線でも無線でもよく、任意の適切な通信プロトコルを使用してもよい。同様に、要求元エンティティと製品との間の通信は、直接であっても、又は中間通信ノードを介してもよい。
【0027】
ライフサイクル段階インデックス及びライフサイクル証明書は、製品のメモリから取得されてもよく、又は要求に応じて、製品のメモリに記憶されたデータに基づいて生成されてもよい。前者の場合、ライフサイクル証明書は、以前に生成されて記憶されている。
【0028】
要求元エンティティが現在のライフサイクル段階に関連するエンティティである場合、制御ハッシュ値を決定するために、現在のライフサイクル段階のインデックスフィールド及び第3レベルのハッシュ値を除く、ライフサイクル証明書で提供される全ての情報を使用することができる。インデックスは、要求に応じて受信されたインデックスに置換され、受信されたライフサイクル証明書で提供された現在のライフサイクル段階に関連する第3レベルのハッシュ値は、製品に記憶されるべきであることを要求元エンティティが知っている機密データのハッシュ値に置換され、既知の機密データのハッシュ値は、要求元エンティティによって決定される。ライフサイクル証明書で提供された制御ハッシュと要求元エンティティによって決定された制御ハッシュとが一致、すなわち等しい場合、製品によって報告されたライフサイクル段階は有効である。そうでない場合、報告されたライフサイクル段階は無効であり、製品は、現在のライフサイクル段階では使用できないか、又は欠陥品である場合があり、廃棄される必要があり得る。
【0029】
したがって、要求元エンティティが次のライフサイクル段階に関連するエンティティである場合、制御ハッシュ値を決定するために、次のライフサイクル段階のインデックスフィールド及び第3レベルのハッシュ値を除く、ライフサイクル証明書で提供される全ての情報を使用することができる。インデックスは、要求に応じて受信されたインデックスに置換され、受信されたライフサイクル証明書で提供された次のライフサイクル段階に関連する第3レベルのハッシュ値は、次のライフサイクル段階において製品に記憶されることになる又は記憶されるべきであることを要求元エンティティが知っている機密データのハッシュ値に置換される。ライフサイクル証明書で提供された制御ハッシュと要求元エンティティによって決定された制御ハッシュとが一致する場合、製品によって報告されたライフサイクル段階は有効である。そうでない場合、報告されたライフサイクル段階は無効であり、製品は、次のライフサイクル段階に移行できないか、又は欠陥品である場合があり、廃棄される必要があり得る。
【0030】
それぞれの要求元エンティティに対して既知であるハッシュ値又は情報のみが使用されるため、データ構造で提供される情報により、他のライフサイクル段階の機密データを明らかにする又はその知識を有する必要なく、現在のライフサイクル段階を安全に検証することを可能にする。
【0031】
或いは、要求元エンティティにおいて、制御ハッシュを決定するために、要求に応じて受信されたライフサイクル段階に置換されるライフサイクル段階を除く、受信されたライフサイクル証明書からの全てのデータを使用して、制御ハッシュを受信されたライフサイクル証明書からのライフサイクル段階と比較することで十分な場合がある。これにより、悪意のあるソフトウェア又は中間者がライフサイクル段階を送信し、製品から受信された証明書を追加する何らかの改ざんが明らかになる。
【0032】
本発明の第3の態様によれば、現在のライフサイクル段階から次のライフサイクル段階に製品を移行させるための方法は、要求元エンティティから製品において、現在のライフサイクル段階を提供する要求を受信することを含む。要求に応じて、製品は、現在のライフサイクル段階、並びに本発明の第1の態様によるデータ構造を実装しているライフサイクル証明書を、要求元エンティティに提供する。
【0033】
前述したように、ライフサイクル段階及びデータ構造は、製品のメモリから取得されてもよく、又は要求に応じて、製品のメモリに記憶されたデータに基づいて生成されてもよい。前者の場合、データ構造は、以前に生成されて記憶されている。ライフサイクル証明書が現在のライフサイクル段階以外の任意の実際の第3レベルのハッシュ値を含む場合、現在のライフサイクル段階を除く全ての少なくとも第3レベルのハッシュ値が製品に記憶される必要があり、これにより、製品において第2レベル及び第1レベルのハッシュ値を決定することを可能にする。しかしながら、全てのハッシュ値を構成要素又は製品に記憶することもまた可能である。ライフサイクル証明書が様々なハッシュ値への参照値を含む場合、適切な参照値のみを製品に記憶する必要がある。
【0034】
要求元エンティティは、例えば、本発明の第2の態様による方法を参照して上述したように、移行を継続する前に、ライフサイクル段階を検証するために提供された情報を使用することができる。
【0035】
本方法は更に、製品において、目標のライフサイクル段階(通常、現在のライフサイクル段階よりも高いインデックスを有するライフサイクル段階)に移行させる要求を受信することを含む。製品は、要求において受信された目標のライフサイクル段階が現在のライフサイクル段階よりも高いかどうかを検証する。肯定的な場合、すなわち、目標のライフサイクル段階が現在のライフサイクル段階よりも高い場合、現在のライフサイクル証明書又は現在のライフサイクル証明書を構成又は生成する方法に関する情報が削除され、現在のライフサイクル段階を表すインデックスカウンタが、目標のライフサイクル段階に対応するインデックスにインクリメントされる。
【0036】
インデックスカウンタは、好ましくは、通信インターフェースを通して容易にアクセスされ得ない保護されたメモリ領域に提供され得る。保護されたメモリは、OTPメモリ、すなわち、コンテンツが一度しか書き込めないメモリを含み得る。同様に、インデックスカウンタをインクリメントするコンピュータプログラム命令は、好ましくは、改ざんを防止するために、保護されたメモリ領域に記憶され、保護されたメモリ領域から実行される。
【0037】
インデックスカウンタをインクリメントする前又はその後、目標のライフサイクル段階に対する新しい機密データが構成要素のメモリに記憶され得る。更に、新しいライフサイクル段階のライフサイクル証明書を生成するための情報、すなわちライフサイクル証明書が基づくメルクルツリーを通るパスが決定され、新しいライフサイクル証明書が生成される。次いで、新しいライフサイクル証明書及び新しい現在のライフサイクル段階インデックスが、要求元エンティティに提供される。
【0038】
目標のライフサイクル段階が現在のライフサイクル段階よりも高くない場合、要求は無視される。
【0039】
本方法の1つ以上の実施形態では、要求元エンティティは、移行を要求する前に受信されたライフサイクル証明書からのデータ、目標のライフサイクル段階のインデックス、及び製品に送信された目標のライフサイクル段階の機密データに基づいて、目標のライフサイクル段階のライフサイクル証明書を決定し、且つ移行後に製品から受信されたライフサイクル証明書を前に決定されたものと比較することによって、移行が成功したかどうかを検証することができる。2つのライフサイクル証明書が同一である場合、移行は正常に完了する。ライフサイクル証明書の制御ハッシュを比較するだけで十分な場合もあり、これにより、少なくとも比較のために必要な処理量を低減することができる。このように、要求元エンティティは、移行成功後に期待されるライフサイクル証明書を予測するために、移行のための要求前のライフサイクル段階に関する製品によって提供される情報、並びに要求元エンティティにおいて既知である目標のライフサイクル段階に関する情報を使用する。要求元エンティティは、後の使用のために、受信されたライフサイクル証明書を製品に関連付けて記憶され得る。
【0040】
本発明の第4の態様によれば、製品のライフサイクル証明書の有効性を検証する方法は、要求元エンティティから、構成要素において、ライフサイクル証明書を検証する要求を受信することを含む。要求は、検証されるライフサイクル証明書を含んでもよく、又はライフサイクル証明書を、要求を確認した後に別の送信で受信してもよい。検証されるライフサイクル証明書は、通常、製品の想定される現在のライフサイクル段階に対するものである。製品は、検証されるべきライフサイクル証明書のライフサイクル段階インデックスが、製品のインデックスカウンタに存在するライフサイクル段階インデックスの現在値と一致するかどうかを検証する。検証の結果が肯定的である場合、製品は、ライフサイクル証明書を、デバイスのメモリに記憶されているもの、又は製品に記憶されたライフサイクル証明書を生成するための情報に従って製品のメモリに記憶された情報から決定されるものと比較する。2つのライフサイクル証明書が一致する場合、例えば、同一である場合、製品は、検証のために受信されたライフサイクル証明書が有効であることを示すメッセージで応答する。そうでない場合、インデックスがインデックスカウンタの値と一致しないか、又はライフサイクル証明書が等しくないかのいずれかである場合、製品は、送信されたライフサイクル証明書がもはや有効でないことを示すメッセージで応答する。もはや有効でないライフサイクル証明書は、失効され得る。
【0041】
本発明による方法の1つ以上の実施形態では、要求元エンティティは、製品が要求を受け入れる前に、認証及び/又は認可プロセスを経る必要があり得る。認証又は認可が失敗した場合、要求は無視される。認証又は認可に対するブルートフォース攻撃を防止するために、一般的に既知の機構、例えば、試行間の遅延時間及び/又は各使用者に対する失敗した試行の最大許容回数を増加させることが採用され得る。
【0042】
コンピュータプログラム製品は、コンピュータによって実行されると、コンピュータに、本明細書で提示された本発明の態様による方法の1つによる方法を実行させるコンピュータプログラム命令を含む。
【0043】
コンピュータプログラム製品は、コンピュータ可読媒体又はデータキャリアに記憶され得る。媒体又はデータキャリアは、例えば、ハードディスク、ソリッドステートディスク、フラッシュメモリデバイスなどの形態で物理的に具現化され得る。しかしながら、媒体又はデータキャリアはまた、対応する受信機を用いてコンピュータによって受信され、且つコンピュータのメモリに転送されて記憶される、変調された電磁信号、電気信号、又は光信号を備え得る。
【0044】
第1レベルのハッシュ値の信頼されるソースは製品自体であるため、本データ構造及びそのデータ構造を使用する本方法は、外部の鍵インフラストラクチャに依存せず、可能性のある攻撃ベクトルを低減する。加えて、このデータ構造により、リモートデータベースにアクセスする必要なくライフサイクル証明書のローカルな検証を可能にする。
【0045】
以下では、下記の図面を参照して本発明を説明する。
【図面の簡単な説明】
【0046】
【
図1】本発明によるデータ構造が構築された、例示的なメルクルツリーを示す図である。
【
図2】本発明によるデータ構造を実装している、例示的なライフサイクル証明書を示す図である。
【
図3】ライフサイクルインデックス1からライフサイクルインデックス2への移行を効果的に行うために、要求元エンティティによって提供される必要がある情報を伴う、本発明によるデータ構造を示す図である。
【
図4】製品の現在のライフサイクル段階を検証するための方法の例示的なフロー図である。
【
図5】製品の現在のライフサイクル段階を順方向のみで目標のライフサイクル段階に安全に移行させる方法の例示的なフロー図である。
【
図6】
図5を参照して説明した方法に従ってライフサイクル段階を移行させる際の、要求元エンティティと製品との間の例示的なメッセージフロー図である。
【
図7】本発明によるデータ構造を実装しているライフサイクル証明書の有効性を検証するための方法の例示的なフロー図である。
【
図8】
図7を参照して説明した方法に従ってライフサイクル証明書を検証する際の、要求元エンティティと製品との間の例示的なメッセージフロー図である。
【
図9】本明細書で以前に提示された方法の製品側ステップを実行するように適合された製品の例示的なブロック図である。
【0047】
図面では、同一又は類似の要素は、同じ参照値指示子を用いてラベル付けされ得る。
【発明を実施するための形態】
【0048】
図1及び
図2については上記で更に説明したので、再度詳細に説明しない。
【0049】
図3は、ライフサイクルインデックス1からライフサイクルインデックス2への移行を効果的に行うために、要求元エンティティによって提供される必要がある情報を伴う、本発明によるデータ構造を示す。提供されるべき情報は、実線の輪郭を有するテキストボックスで示され、提供されるべき必要のない情報は、破線を有するテキストボックスで表されている。次のライフサイクルインデックスに属さないそれらのハッシュ値の基礎となる、署名又は他の機密データを表し得るデータD
0…D
5は、要求元エンティティによって提供される必要はないか、又は更には要求元エンティティに対して既知である必要もない。
【0050】
この例では、要求元エンティティは、ライフサイクルインデックス2に関連するエンティティである。それはライフサイクルインデックス1に関連する供給者から製品を受け取っている場合があり、ここで、製品に自身の機密データを記憶してライフサイクルインデックス2への移行をトリガするための準備が整っている。例えば、製品が正しいライフサイクルインデックス、又は少なくとも目標のライフサイクルインデックスよりも低いライフサイクルインデックスであることを確保するために、要求元エンティティは、まず製品に要求を送信し、製品の現在のライフサイクルインデックスを尋ねることができる。製品は、要求された情報を現在のライフサイクル段階のライフサイクル証明書とともに送信することによって応答する。受信されたライフサイクルインデックス及びライフサイクル証明書から、要求元エンティティは、次のステップにおいて製品にどの情報を提供しなければならないかを決定することができる。
【0051】
第1レベルのハッシュHは、ライフサイクル証明書で提供される。しかしながら、第1レベルのハッシュHを計算することができるようにするために、第2レベルのハッシュH0、H1、H2が既知でなければならない。それらは、それらが表す機密データに関するいかなる情報も与えないため、ライフサイクル証明書で提供されるか、又は他のチャネルを通じて取得され得る。第2レベルのハッシュの有効性は、それらを連結してハッシュ化し、その結果をライフサイクル証明書で提供される第1レベルのハッシュと比較することによって検証され得る。検証に成功した第2レベルのハッシュを提供しているソースは、信頼できるソースとみなされ得る。
【0052】
ここで、要求元エンティティは、ライフサイクルインデックスを目標のライフサイクルインデックスに移行させる要求を送信する。
【0053】
要求には、目標のライフサイクルインデックスに関連する機密データ、又はそのハッシュ値とともに、第3レベルのハッシュ値H1-1、並びに第2レベルのハッシュ値H0及びH2を含み得る。ハッシュ値H1-1は、後続のライフサイクル段階に対して認可されたエンティティによって要求元エンティティに提供され得る。それは基礎となるデータに関するいかなる情報も与えないため、他の認可されたエンティティからの機密データは秘密のままである。
【0054】
要求において受信されたデータにより、要求元エンティティがより高いライフサイクルインデックスへの移行を開始することが実際に認可されていることを製品が検証することが可能になる。検証するために、製品は、受信された機密データから第3レベルのハッシュ値H1-0を決定し、又は要求において提供されたハッシュ値を使用し、受信された又は以前に決定された第3レベルのハッシュ値H1-0及び要求において受信された第3レベルのハッシュ値H1-1から第2レベルのハッシュ値H1を決定し、以前に決定された第2レベルのハッシュ値H1並びに要求において受信された第2レベルのハッシュ値H0及びH2から第1レベルのハッシュ値Hを決定する。そうして決定された第1レベルのハッシュ値Hは、製品に記憶された第1レベルのハッシュ値と比較される。両方のハッシュ値が一致する場合、要求は正当であり、実行され得る。
【0055】
図4は、構成要素の現在のライフサイクル段階を検証するための方法200の例示的なフロー図を示す。この方法は、ステップ202において、製品に要求を送信することと、製品の現在のライフサイクル段階を提供するよう求めることと、ステップ204において、
図2を参照して説明したように、現在のライフサイクル段階及びライフサイクル証明書を受信することと、を含む。次いで、要求元エンティティは、受信されたライフサイクル証明書に含まれるライフサイクル段階インデックスが、要求に応じて提供されたものと一致するかどうかを検証する。肯定的な場合、報告されたライフサイクル段階が検証され、そうでなければ、製品は欠陥品である場合があり、廃棄される必要があり得る。図では、これには、ステップ206において、メルクルツリーを通るパスを再構築し、対応するライフサイクル段階インデックスを決定することと、ステップ208において、受信されたライフサイクル段階インデックスが、決定されたライフサイクル段階インデックスと一致するかどうかを検証することと、を含む。
【0056】
図5は、製品の現在のライフサイクル段階を順方向のみで目標のライフサイクル段階に安全に移行させる方法300の例示的なフロー図を示す。ステップ302において、製品は、要求元エンティティから、現在のライフサイクル段階インデックス(i
c)を提供する要求を受信する。要求に応じて、製品は、ステップ304において、現在のライフサイクル段階インデックス(i
c)及びライフサイクル証明書を提供する。要求元エンティティは、例えば
図4を参照して説明したように、受信されたデータにおいて提供された情報を検証することができる。次に、ステップ306において、製品は、目標のライフサイクル段階への移行させる要求を受信する。製品は、ステップ308において、目標のライフサイクル段階指数(i
t)が現在のライフサイクル段階指数(i
c)よりも高いかどうかを検証する。肯定的な場合、ステップ308の「はい」分岐で、製品は、要求において受信された目標のライフサイクルインデックス(i
t)を現在のライフサイクル段階インデックス(i
c)として設定し、ステップ312において、以前のライフサイクル段階インデックスに関連する機密データを置換する新しい機密データを製品に記憶し、ステップ314において、新しい機密データを表す第3レベルのハッシュ値を生成して少なくとも一時的に記憶する。ステップ316において、製品は、新しいライフサイクル証明書を生成するための情報、すなわち、データ構造が基づくメルクルツリーを通るパスを決定し、新しいライフサイクル証明書を生成する。ステップ318において、製品は、新しい今の現在のライフサイクル段階インデックス(i
c)及び新しいライフサイクル証明書を要求元エンティティに提供する。目標のライフサイクル段階インデックス(i
t)が現在のライフサイクル段階インデックス(i
c)よりも高くない場合、ステップ308の「いいえ」分岐で要求は無視され、ステップ320に進む。
【0057】
要求元エンティティは、ステップ322において、最初の要求に応じて受信されたライフサイクル段階インデックス及びライフサイクル証明書、並びに目標のライフサイクル段階及び製品に送信された機密データに基づいて、ライフサイクル証明書を決定し、ステップ324において、以前に決定されたライフサイクル証明書を、移行後に製品から受信されたライフサイクル証明書と比較することができる。ライフサイクル証明書が同一である場合、移行は正常に完了している。しかしながら、例えば、送信された機密データのハッシュ値が、要求元エンティティにおいて決定され、且つライフサイクル証明書で報告されたハッシュ値と一致するかどうか、及び/又はライフサイクル証明書において送信されたデータ構造を通るパスが正しいかどうかをチェックすることによる、更新が成功したことを検証する他の方法も可能である。
【0058】
図6は、
図5を参照して説明した方法に従ってライフサイクル段階を移行させる際の、要求元エンティティREと製品Pとの間の例示的なメッセージフロー図を示す。本方法の実際のステップを実行する前に、認証及び認可が実行されてもよく、又はより一般的には、チャレンジの送信及び応答の受信を伴い得るアクセス制御スキーム500が実行されてもよい。アクセスが拒否された場合、製品Pは、あらゆる要求を拒否することになる。アクセス制御スキームは任意選択的であり得、例示的にのみ破線で示されている。
【0059】
前述したように、現在のライフサイクル段階インデックスを提供する要求が製品Pに送信され、製品Pは、現在のライフサイクル段階インデックス並びに現在のライフサイクル証明書を提供することによって応答する。ここで、要求元エンティティREは、製品Pに、ステップ306~316、又は320を実行し、更には、要求元エンティティREに、新しい現在のライフサイクル段階インデックス及び新しいライフサイクル証明書を提供する、目標のライフサイクル段階に移行させる要求を送信する。次いで、要求元エンティティREは、移行が成功したかどうかをチェックするために、ステップ322及び324を実行することができる。
【0060】
図7は、本発明によるデータ構造を実装しているライフサイクル証明書の有効性を検証するための方法400の例示的なフロー図を示す。ステップ402において、製品Pは、要求元エンティティREから、ライフサイクル証明書を検証する要求を受信する。検証すべきライフサイクル証明書が要求とともに受信されなかった場合、要求は、別のステップ404において要求元エンティティREから受信される。ステップ406において、製品Pは、受信されたライフサイクル証明書に含まれるライフサイクル段階インデックスを、製品Pにおいて提供されたライフサイクル段階インデックスカウンタによって示される、製品Pの現在のライフサイクル段階インデックスと比較する。ライフサイクル段階インデックスが等しい場合、ステップ406の「はい」分岐で、製品Pは、ステップ408において、受信されたライフサイクル証明書を、製品Pのメモリから取得されたライフサイクル証明書、又は製品Pのメモリに記憶された情報に基づいて製品Pによって生成されたライフサイクル証明書と比較する。ライフサイクル証明書が等しい場合、ステップ408の「はい」分岐で、製品Pは、ライフサイクル証明書が有効であることを要求元エンティティREに応答する。そうでない場合、すなわち、ライフサイクル段階インデックス又はライフサイクル証明書が同一でない場合、製品Pは、ライフサイクル証明書が無効であることを要求元エンティティREに応答する。
【0061】
図8は、
図7を参照して説明した方法400に従ってライフサイクル証明書を検証する際の、要求元エンティティREと製品Pとの間の例示的なメッセージフロー図を示す。本方法の実際のステップを実行する前に、認証及び認可が実行されてもよく、又はより一般的には、チャレンジの送信及び応答の受信を伴い得るアクセス制御スキーム500が実行されてもよい。アクセスが拒否された場合、製品Pは、あらゆる要求を拒否することになる。アクセス制御スキームは任意選択的であり得、例示的にのみ破線で示されている。
【0062】
前述したように、要求元エンティティREは、製品Pに、ライフサイクル証明書を検証することを求める要求を送信する。検証すべきライフサイクル証明書が要求とともに受信されなかった場合、要求は、例えば、製品Pからの確認信号の後に、別のメッセージで送信される。製品は、方法400のステップ406~408を実行し、ライフサイクル証明書が有効であるか無効であるかのいずれかで応答する。
【0063】
図9は、本明細書で以前に提示された方法300及び/又は400の製品側ステップを実行するように適合された製品Pの例示的なブロック図を示す。製品Pは、マイクロプロセッサ602と、揮発性メモリ604と、不揮発性メモリ606と、通信インターフェース608と、を備え、これらは少なくとも1つのデータ接続又はバス610を介して通信可能に接続されている。製品Pは更に、ライフサイクル段階インデックスカウンタ値、及び任意選択的にライフサイクル段階インデックスカウンタを改ざん防止でインクリメントするためのコンピュータプログラム命令を、改ざん防止で記憶するためのセキュアメモリ領域616aを備える。不揮発性メモリ606は、マイクロプロセッサ602によって実行されると、製品Pに、上記で提示した本発明の方法300及び/又は400の製品側ステップを実行させる、コンピュータプログラム命令を記憶する。
【符号の説明】
【0064】
100 データ構造
H 第1レベルのハッシュ値
H0、H1、H2 第2レベルのハッシュ値
H0-0、H0-1、
H1-0、H1-1、
H2-0、H2-1 第3レベルのハッシュ値
CTRL 制御ハッシュ値
P 製品
RE 要求元エンティティ
i ライフサイクル段階インデックス
200 方法
202 要求の送信
204 現在のライフサイクル段階及び証明書の受信
206 メルクルツリーを通るパスの再構築
208 検証
300 方法
302 要求の受信
304 現在のライフサイクル段階及び証明書の提供
306 移行させる要求の受信
308 目標のライフサイクル段階の検証
310 ライフサイクル段階の設定
312 新しい機密データの記憶
314 第3レベルのハッシュ値の生成
316 パスの決定
318 ライフサイクルインデックス及び証明書の提供
320 要求の無視
322 ライフサイクル証明書の決定
324 受信されたライフサイクル証明書と決定されたライフサイクル証明書との比較
400 方法
402 検証する要求の受信
404 検証のためのライフサイクル証明書の受信
406 受信されたライフサイクルインデックスと製品に記憶されたライフサイクルインデックスとの比較
408 受信されたライフサイクル証明書と製品のライフサイクル証明書との比較
410 「有効」の応答
412 「無効」の応答
602 マイクロプロセッサ
604 揮発性メモリ
606 不揮発性メモリ
606a セキュアメモリ領域
608 通信インターフェース
610 データ線/バス
【手続補正書】
【提出日】2024-03-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
現在のライフサイクル段階を検証することと、製品(P)のライフサイクル段階を順方向のみで次のライフサイクル段階に安全に移行させることとを可能にする、メルクルツリーベースのデータ構造(100)であって、
ライフサイクル段階インデックス(i)と、
第1レベルのハッシュ値(H)又は前記第1レベルのハッシュ値(H)への参照値と、
少なくとも1つの第2レベルのハッシュ値(H0、H1、H2)又は前記少なくとも1つの第2レベルのハッシュ値(H0、H1、H2)への参照値と、
前記ライフサイクルインデックス(i)のそれぞれの値に関連する、対応する機密データのハッシュを表す、第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))、及び更なる第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))又は後者に対して対応する参照値(H0-0、H0-1、H1-0、H1-1、H2-0、H2-1)と、
前記インデックスフィールド(i)と、前記第1レベルのハッシュ値(H)又は前記その参照値と、前記少なくとも1つの第2レベルのハッシュ値(H0、H1、H2)又は前記その参照値と、前記第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))と、更なる第3レベルのハッシュ値(#(D
0)、#(D
1)、#(D
2)、#(D
3)、#(D
4)、#(D
5))又は前記その参照値(H0-0、H0-1、H1-0、H1-1、H2-0、H2-1)との連結のハッシュ値である、制御ハッシュ値(CTRL)と、
を含む、データ構造(100)。
【請求項2】
前記ハッシュ値が、SHA-256、SHA-512、若しくはSHAKEハッシュ関数を含む暗号ハッシュ関数、又は好ましくは少なくとも128ビット幅の暗号ハッシュ値を計算するための対称ブロック暗号若しくはストリーム暗号の特別な演算モードに従って決定される、請求項1に記載のデータ構造(100)。
【請求項3】
要求元エンティティ(RE)における製品(P)の現在のライフサイクル段階を検証するための方法(200)であって、
前記製品(P)の現在のライフサイクル段階の提供を求める要求を前記製品(P)に送信すること(202)と、
前記製品(P)から、前記現在のライフサイクル段階と、請求項
1によるデータ構造(100)を実装しているライフサイクル証明書とを受信すること(204)と、
前記データ構造において提供される第1レベル、第2レベル、及び第3レベルのハッシュ値又はそれらの参照値に基づいて、前記メルクルツリーを通るパスを再構築する(206)ことと、前記対応するライフサイクル段階インデックスを決定することと、
前記受信されたライフサイクルインデックスが前記決定されたライフサイクルインデックスと等しいかどうかを検証する(208)ことであって、前記受信されたライフサイクルインデックスと前記決定されたライフサイクルインデックスとが等しい場合、前記ライフサイクル段階が検証される、ことと、
を含む、方法(200)。
【請求項4】
製品(P)のライフサイクル段階を順方向のみで目標のライフサイクル段階に安全に移行させる方法(300)であって、
a)要求元エンティティ(RE)から前記製品(P)において、現在のライフサイクル段階インデックス(i
c)を提供する要求を受信すること(302)と、
b)前記要求元エンティティ(RE)に、現在のライフサイクル段階インデックス(i
c)と、請求項
1によるデータ構造(100)を実装しているライフサイクル証明書とを提供すること(304)と、
c)前記製品(P)において、目標のライフサイクル段階に移行させる要求を受信すること(306)と、
d)前記目標のライフサイクル段階インデックス(i
t)が前記現在のライフサイクル段階インデックス(i
c)よりも高いかどうかを検証すること(308)と、
を含み、
前記目標のライフサイクル段階インデックス(i
t)が現在のライフサイクル段階インデックス(i
c)よりも高い場合、前記方法(300)が、
e)前記要求において受信された前記目標のライフサイクルインデックス(i
t)を前記現在のライフサイクル段階インデックス(ic)として設定すること(310)と、
f)前記以前のライフサイクル段階インデックスに関連する前記機密データを置換する新しい機密データを、前記製品(P)に記憶すること(312)と、
g)前記新しい機密データを表す第3レベルのハッシュ値を生成して(314)少なくとも一時的に記憶することと、
h)請求項
1によるデータ構造(100)を実装している新しいライフサイクル証明書を生成するための情報を決定し(316)、前記新しいライフサイクル証明書を生成することと、
i)前記現在のライフサイクル段階インデックス(i
c)と、ステップh)において生成された前記新しいライフサイクル証明書とを、前記要求元エンティティ(RE)に提供すること(318)と、
を含み、
又は、前記目標のライフサイクル段階インデックス(i
t)が現在のライフサイクル段階インデックス(i
c)よりも高くない場合、前記方法(300)が、
i)前記要求を無視すること(320)
を含む、方法(300)。
【請求項5】
k)前記要求元エンティティ(RE)において、ステップb)において提供された前記ライフサイクル段階インデックスと前記ライフサイクル証明書とに基づいて、前記目標のライフサイクル段階及び前記製品(P)に送信された機密データから、ライフサイクル証明書を決定すること(322)と、
l)ステップj)において決定された前記ライフサイクル証明書を、ステップh)において前記製品(P)によって提供された前記ライフサイクル証明書と比較すること(324)と、
を更に含み、
前記決定されたライフサイクル証明書と前記提供されたライフサイクル証明書とが同一である場合、前記移行が正常に完了する、
請求項4に記載の方法(300)。
【請求項6】
請求項
1によるデータ構造を実装している製品のライフサイクル証明書の有効性を検証する方法(400)であって、
要求元エンティティ(RE)から、及び前記製品(P)において、ライフサイクル証明書を検証する要求を受信すること(402)と、
検証すべきライフサイクル証明書が前記要求とともに受信されなかった場合、前記要求元エンティティ(RE)から、及び前記製品(P)において、前記検証すべきライフサイクル証明書を受信すること(404)と、
前記受信されたライフサイクル証明書に含まれるライフサイクル段階インデックスを、前記製品(P)の現在のライフサイクル段階インデックスと比較すること(406)と、
前記ライフサイクル段階インデックスが等しい場合、
前記製品(P)において、前記受信されたライフサイクル証明書を、前記製品(P)のメモリから取得された、又は前記製品(P)のメモリに記憶された情報に基づいて前記製品(P)によって生成された、ライフサイクル証明書と比較すること(408)と、
前記ライフサイクル証明書が同一である場合、
前記ライフサイクル証明書が有効であることを前記要求元エンティティ(RE)に応答すること(410)と、
又は
前記ライフサイクル段階インデックスが等しくない場合、若しくは前記ライフサイクル証明書が同一でない場合、
前記ライフサイクル証明書が無効であることを前記要求元エンティティ(RE)に応答すること(412)と、
を含む、方法(400)。
【請求項7】
請求項
3に記載の方法(20
0)であって、
前記要求元エンティティ(RE)と前記製品(P)との間で認証及び/又は認可を行うためのアクセス制御スキームを実行することと、
認証及び/若しくは認可に成功すると、前記製品(P)において要求を受け入れることと、又は
前記要求を拒否することと、
を更に含む、方法(20
0)。
【請求項8】
1つ以上のデータ線及び/又はバス(610)を介して通信可能に接続された、マイクロプロセッサ(602)と、揮発性メモリ(604)及び不揮発性メモリ(606)と、通信インターフェース(608)と、を備える製品(P)であって、ライフサイクル段階インデックスカウンタ値を記憶するためのセキュアメモリ領域(606a)を更に備え、前記不揮発性メモリ(606)が、前記マイクロプロセッサ(602)によって実行されると、前記製品(P)を、請求項4、6、又は7のいずれか一項に記載の方法のステップを実行するように構成するコンピュータプログラム命令を記憶する、製品(P)。
【請求項9】
コンピュータによって実行されると、前記コンピュータに、請求項3~7のいずれか一項に記載の方法を実行させるコンピュータプログラム命令を含む、コンピュータプログラム製品。
【請求項10】
請求項9に記載の前記コンピュータプログラム製品を取得可能に記憶する、コンピュータ可読媒体。
【国際調査報告】