IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルノー エス.ア.エス.の特許一覧 ▶ 日産自動車株式会社の特許一覧

特許7705807コンピューティングコンポーネントをインストールするための方法および関連付けられた電子デバイス
<>
  • 特許-コンピューティングコンポーネントをインストールするための方法および関連付けられた電子デバイス 図1
  • 特許-コンピューティングコンポーネントをインストールするための方法および関連付けられた電子デバイス 図2
  • 特許-コンピューティングコンポーネントをインストールするための方法および関連付けられた電子デバイス 図3
  • 特許-コンピューティングコンポーネントをインストールするための方法および関連付けられた電子デバイス 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-02
(45)【発行日】2025-07-10
(54)【発明の名称】コンピューティングコンポーネントをインストールするための方法および関連付けられた電子デバイス
(51)【国際特許分類】
   G06F 8/65 20180101AFI20250703BHJP
   G06F 21/44 20130101ALI20250703BHJP
   H04L 9/32 20060101ALI20250703BHJP
【FI】
G06F8/65
G06F21/44
H04L9/32 200B
【請求項の数】 13
(21)【出願番号】P 2021568090
(86)(22)【出願日】2020-04-15
(65)【公表番号】
(43)【公表日】2022-07-21
(86)【国際出願番号】 EP2020060506
(87)【国際公開番号】W WO2020229074
(87)【国際公開日】2020-11-19
【審査請求日】2023-03-16
(31)【優先権主張番号】1905119
(32)【優先日】2019-05-16
(33)【優先権主張国・地域又は機関】FR
(73)【特許権者】
【識別番号】507308902
【氏名又は名称】ルノー エス.ア.エス.
【氏名又は名称原語表記】RENAULT S.A.S.
【住所又は居所原語表記】122-122 bis, avenue du General Leclerc, 92100 Boulogne-Billancourt, France
(73)【特許権者】
【識別番号】000003997
【氏名又は名称】日産自動車株式会社
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】アバディ, エリク
(72)【発明者】
【氏名】ベシエール, セバスチャン
(72)【発明者】
【氏名】メニエール, パスカル
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2017-011491(JP,A)
【文献】国際公開第2017/002611(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/61
G06F 8/65
G06F 21/44
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
車両(V)に提供される電子機器(6、10)内にデータ処理コンポーネント(COMP1)をインストールするための、コンピュータにより行われる方法であって、
- 前記データ処理コンポーネントのハッシュ値(H(COMP1))を含む第1のマニフェスト(ECUPACKIND)を含むデバイスパケット(ECUPACK)を受信すること(E18)と、
- 前記第1のマニフェスト(ECUPACKIND)の整合性を検証すること(E22)と、
- 前記データ処理コンポーネント(COMP1)を受信すること(E32)と、
- 前記データ処理コンポーネントの前記ハッシュ値(H(COMP1))と受信された前記データ処理コンポーネント(COMP1)との間の対応関係を検証すること(E34)と、
- 前記第1のマニフェスト(ECUPACKIND)の前記整合性の肯定的検証、および前記対応関係の肯定的検証の場合のみ、前記データ処理コンポーネント(CCOMP1)をインストールすること(E40)と
を伴うステップ
を含み、
前記方法が、
- 前記デバイスパケット(ECUPACK)および第2のマニフェスト(DPACKIND)を含むコンテナ(GLOB)を受信すること(E8)と、
- 前記第2のマニフェスト(DPACKIND)の整合性を検証すること(E14)と
を伴うステップをさらに含む、方法。
【請求項2】
車両(V)に提供される電子機器(6、10)内にデータ処理コンポーネント(COMP1)をインストールするための、コンピュータにより行われる方法であって、
- 前記データ処理コンポーネントのハッシュ値(H(COMP1))を含む第1のマニフェスト(ECUPACKIND)を含むデバイスパケット(ECUPACK)を受信すること(E18)と、
- 前記第1のマニフェスト(ECUPACKIND)の整合性を検証すること(E22)と、
- 前記データ処理コンポーネント(COMP1)を受信すること(E32)と、
- 前記データ処理コンポーネントの前記ハッシュ値(H(COMP1))と受信された前記データ処理コンポーネント(COMP1)との間の対応関係を検証すること(E34)と、
- 前記第1のマニフェスト(ECUPACKIND)の前記整合性の肯定的検証、および前記対応関係の肯定的検証の場合のみ、前記データ処理コンポーネント(CCOMP1)をインストールすること(E40)と
を伴うステップを含み、
前記データ処理コンポーネント(COMP1)が、第2の署名(SIG(COMPIND))およびコンテンツ(CONTEN)を含み、前記方法が、前記第2の署名(SIG(COMPIND))を使用して前記コンテンツ(CONTEN)の整合性を検証するステップ(E36)をさらに含む、方法。
【請求項3】
前記第1のマニフェスト(ECUPACKIND)が、第1の車両識別子(VIN)を含み、前記方法が、
- 前記第1の車両識別子(VIN)を、前記車両(V)内に格納された第2の車両識別子と比較すること(E24)と、
- 前記第1の車両識別子(VIN)と前記第2の車両識別子との肯定的比較の場合のみ、前記データ処理コンポーネント(COMP1)をインストールすること(E40)と
を伴うステップを含む、請求項1又は2に記載の方法。
【請求項4】
前記デバイスパケット(ECUPACK)が、第1の署名(SIG(ECUPACKIND))を含み、前記マニフェスト(ECUPACKIND)の前記整合性が、暗号署名検証アルゴリズムを前記第1の署名(SIG(ECUPACKIND))および前記第1のマニフェスト(ECUPACKIND)に適用することによって検証される、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記データ処理コンポーネント(COMP1)が、前記デバイスパケット(ECUPACK)から独立して受信される、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記データ処理コンポーネント(COMP1)が、前記デバイスパケット(ECUPACK)内で受信される、請求項1から4のいずれか一項に記載の方法。
【請求項7】
前記コンテナ(GLOB)が、別の電子機器のための別のデバイスパケット(ECUPACK2)を含む、請求項1に記載の方法。
【請求項8】
前記第2のマニフェスト(DPACKIND)が、第1の車両識別子(VIN)を含み、前記方法が、
- 前記第1の車両識別子(VIN)を、前記車両(V)内に格納された第2の車両識別子と比較すること(E12)と、
- 前記第1の車両識別子(VIN)と前記第2の車両識別子との肯定的比較の場合のみ、前記デバイスパケット(ECUPACK)を伝送すること(E16)と
を伴うステップを含む、請求項1または7に記載の方法。
【請求項9】
前記コンテナ(GLOB)が、前記車両(V)によって伝送されたリクエスト(REQ)に応答して、リモートサーバ(S)から受信される、請求項1、7または8のいずれか一項に記載の方法。
【請求項10】
前記コンテナ(GLOB)が、前記車両(V)に設置されたリーダ(12)に挿入されたメモリカード(20)から受信される、請求項1、7または8のいずれか一項に記載の方法。
【請求項11】
車両に提供するための電子機器(6、8)であって、
- データ処理コンポーネントのハッシュ値(H(COMPi))を含むマニフェスト(ECUPACKIND)を含むデバイスパケット(ECUPACK)を受信するためのモジュールと、
- 前記マニフェスト(ECUPACKIND)の整合性を検証するためのモジュールと、
- 前記データ処理コンポーネント(COMPi)を受信するためのモジュールと、
- 前記データ処理コンポーネントの前記ハッシュ値(H(COMPi))と、受信された前記データ処理コンポーネント(COMPi)との間の対応関係を検証するためのモジュールと、
- 前記マニフェスト(ECUPACKIND)の前記整合性の肯定的検証、および前記対応関係の肯定的検証の場合のみ、前記データ処理コンポーネント(COMPi)をインストールするように構成されたインストールモジュールと
を備え、
前記電子機器(6、8)が、
- 前記デバイスパケット(ECUPACK)および第2のマニフェスト(DPACKIND)を含むコンテナ(GLOB)を受信するためのモジュールと、
- 前記第2のマニフェスト(DPACKIND)の整合性を検証するためのモジュールと
をさらに備える、電子機器(6、8)。
【請求項12】
車両に提供するための電子機器(6、8)であって、
- データ処理コンポーネントのハッシュ値(H(COMPi))を含むマニフェスト(ECUPACKIND)を含むデバイスパケット(ECUPACK)を受信するためのモジュールと、
- 前記マニフェスト(ECUPACKIND)の整合性を検証するためのモジュールと、
- 前記データ処理コンポーネント(COMPi)を受信するためのモジュールと、
- 前記データ処理コンポーネントの前記ハッシュ値(H(COMPi))と、受信された前記データ処理コンポーネント(COMPi)との間の対応関係を検証するためのモジュールと、
- 前記マニフェスト(ECUPACKIND)の前記整合性の肯定的検証、および前記対応関係の肯定的検証の場合のみ、前記データ処理コンポーネント(COMPi)をインストールするように構成されたインストールモジュールと
を備え、
前記データ処理コンポーネント(COMP1)が、第2の署名(SIG(COMPIND))およびコンテンツ(CONTEN)を含み、前記電子機器(6、8)が、前記第2の署名(SIG(COMPIND))を使用して前記コンテンツ(CONTEN)の整合性を検証するためのモジュールをさらに備える、電子機器(6、8)。
【請求項13】
前記マニフェスト(ECUPACKIND)が、第1の車両識別子(VIN)を含み、前記電子機器が、
- 前記第1の車両識別子(VIN)を、前記車両(V)内に格納された前記車両(V)の第2の車両識別子と比較するためのモジュール
を備え、
前記インストールモジュールが、前記マニフェスト(ECUPACKIND)の前記整合性の肯定的検証、前記第1の車両識別子(VIN)と前記第2の車両識別子との肯定的比較、および前記対応関係の肯定的検証の場合のみ、前記データ処理コンポーネント(COMPi)をインストールするように構成される、請求項11または12に記載の電子機器(6、8)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、車両、特に自動車内への、データ処理コンポーネントのインストールに関する。
【0002】
本発明は、このようなデータ処理コンポーネントを車両内にダウンロードする状況で特に好都合に使用されるが、データ処理コンポーネントが、例えばメモリカードから、車両にローカルにロードされるときにも使用される。
【0003】
本発明は、より詳細には、データ処理コンポーネントをインストールするための方法および関連付けられた電子機器に関する。
【背景技術】
【0004】
状況によっては、車両に設置された電子機器にデータ処理コンポーネントをインストールすることが望ましい。このことは、電子機器内に実装されるソフトウェア、または電子機器によって操作されるデータをアップデートすることが望ましいときに、特に当てはまる。
【0005】
このようなデータ処理コンポーネントのインストールは当然、車両のその後の動作に関する影響があり、制御された手法で実行されなければならない。
【発明の概要】
【0006】
この状況において、本発明は、車両に設置された電子機器にデータ処理コンポーネントをインストールするための方法であって、
- データ処理コンポーネントのハッシュ値を含む第1のマニフェストを含むデバイスパケットを受信することと、
- 第1のマニフェストの整合性を検証することと、
- データ処理コンポーネントを受信することと、
- データ処理コンポーネントのハッシュ値と、受信されたデータ処理コンポーネントとの間の対応関係を検証することと、
- 第1のマニフェストの整合性の肯定的検証、および対応関係の肯定的検証の場合のみ、データ処理コンポーネントをインストールすることと
を伴うステップを含む、方法を提案する。
【0007】
このように、本発明の結果として、車両は、データ処理コンポーネントに関連付けられ、(ハッシュ値を特に使用した)データ処理コンポーネントの整合性の検証に関与する、データ構造を受信する。提案されるソリューションは、デバイスパケットとデータ処理コンポーネント自体を別々に伝送することをさらに可能にし、車両および車両の電子機器の設計中に、より大きな柔軟性をもたらす。
【0008】
第1の車両識別子を含めるための上述の第1のマニフェスト、および、以下を伴うステップをさらに含むことになるインストール方法を提供することがさらに可能である:
- 第1の車両識別子を、車両内に格納された第2の車両識別子と比較すること
- 第1の識別子と第2の識別子との肯定的比較の場合のみ、データ処理コンポーネントをインストールすること。
【0009】
本発明による方法の他の有利かつ非限定的特徴は個別に行われるか、全ての技術的に可能な組合せに従って行われ、以下のようなものである。
【0010】
- デバイスパケットは、第1の署名を含む。
【0011】
- マニフェストの整合性は、暗号署名検証アルゴリズムを第1の署名および第1のマニフェストに適用することによって検証される。
【0012】
- データ処理コンポーネントは、デバイスパケットから独立して受信される。
【0013】
- データ処理コンポーネントは、デバイスパケット内で受信される。
【0014】
- データ処理コンポーネントは、第2の署名およびコンテンツを含む。
【0015】
- 方法は、第2の署名を使用してコンテンツの整合性を検証するステップを含む。
【0016】
方法は、以下を伴うステップをさらに含むことができる:
- デバイスパケットおよび第2のマニフェストを含むコンテナを受信すること
- 第2のマニフェストの整合性を検証すること
【0017】
したがって、この第2のマニフェストは、第1の車両識別子を含むことができ、インストール方法は、このケースでは、以下を伴うステップを含むことができる。
- 第1の車両識別子を、車両内に格納された第2の車両識別子と比較すること
- 第1の識別子と第2の識別子との肯定的比較の場合のみ、デバイスパケットを伝送すること。
【0018】
したがってコンテナは、例えば、別の電子機器のための別のデバイスパケットを含むことができる。
【0019】
このコンテナは、車両によって伝送されたリクエストに応答してリモートサーバから(例えばリモートサーバと車両との間で確立された通信(この通信は、車両とセルラー電話ネットワークとの間の無線リンクを部分的に使用することができる)を介して直接的に)さらに受信されてよく、1つの変形形態では、コンテナは、車両に設置されたリーダに挿入されたメモリカードから受信されてよい。
【0020】
最後に、本発明は、車両に提供するための電子機器に関し、電子機器は以下を備える:
- データ処理コンポーネントのハッシュ値を含むマニフェストを含むデバイスパケットを受信するためのモジュール
- マニフェストの整合性を検証するためのモジュール
- データ処理コンポーネントを受信するためのモジュール
- データ処理コンポーネントのハッシュ値と、受信されたデータ処理コンポーネントとの間の対応関係を検証するためのモジュール
- マニフェストの整合性の肯定的検証、および対応関係の肯定的検証の場合のみ、データ処理コンポーネントをインストールするように構成されたインストールモジュール。
【0021】
第1の車両識別子を含めるためのマニフェストをさらに提供することができ、したがって電子機器は、第1の車両識別子と、車両内に格納された車両の第2の識別子とを比較するためのモジュールを備えることができる。
【0022】
インストールモジュールは、マニフェストの整合性の肯定的検証、第1の識別子と第2の識別子との肯定的比較、および対応関係の肯定的検証の場合のみ、データ処理コンポーネントをインストールするように構成されてよい。
【0023】
マニフェストの検証がもたらす整合性および信憑性の保護以上に、マニフェスト内の対象の車両識別子を使用すると、合法性の保護を追加することができる。これは、アップデートするオンボード処理が、受信されたイメージが破損しておらず、正式で、かつ特定のハードウェアに対して互換性があることを間違いなく検証できるからであるが、これは、車両がイメージを正当に受信し得ることを必ずしも示唆していない。サイバー攻撃、またはエンドツーエンドの伝送チェーンにおける悪意の処理のイベントでは、ソースイメージの代わりに互換性のある車両イメージが挿入されることがある。したがってマニフェスト内の車両識別子により、本シナリオにおける詐欺のどのような発生も防ぐことができる。
【0024】
このような電子機器は、例えば、プロセッサと、プロセッサによって実行可能なコンピュータプログラム命令を格納するメモリとを備える電子制御ユニット(またはコンピュータ)である。
【0025】
上述のモジュールは、例えば、この事例では、(下記で説明されるような)当該のモジュールに帰する機能を実行するように構成された特定の命令がプロセッサによって実行されるとき、プロセッサと特定の命令との協働によって実行される。
【0026】
当然、本発明の様々な特徴、変形形態、および実施形態は、非互換でないか、相互に排他的でない限り、様々な組合せに従って互いに関連付けられてよい。
【0027】
添付の図面を参照しながら下記で行われる説明は、非限定的な例として示されており、本発明が含むもの、およびこれをどのように実装可能かについて、十分な理解をもたらすはずである。
【図面の簡単な説明】
【0028】
図1】本発明を実装可能なシステムを概略的に示す図である。
図2】本発明の状況で使用可能なデータ編成の例を示す図である。
図3】本発明の状況で使用可能なデータ編成の別の例を示す図である。
図4】本発明による車両内にデータ処理コンポーネントをインストールするための方法の例を示す図である。
【発明を実施するための形態】
【0029】
図1のシステムは、車両V(例えば自動車)、携帯電話ネットワークN、ワイドエリアネットワークI(インターネット等)、およびリモートサーバSを備える。
【0030】
車両Vは、通信ユニット2、処理ユニット4、第1の電子制御ユニット6、ゲートウェイ8、および第2の電子制御ユニット10を備える。
【0031】
図1は本発明を理解するのに有利な車両Vの要素を示しているが、車両Vは当然、実際には他の要素、具体的には他の電子制御ユニットすなわちプロセッサを備える。
【0032】
上述の電子機器(通信ユニット2、処理ユニット4、第1の電子制御ユニット6、ゲートウェイ8、および第2の電子制御ユニット10)はそれぞれ、実際にはマイクロプロセッサアーキテクチャの形で製造されてよく、特に本文脈では、これらの電子機器のそれぞれは、プロセッサならびに少なくとも1つのメモリ(例えばRAMおよび/または不揮発性メモリ)を備える。
【0033】
処理ユニット4はそれ自体が、実際には、利用可能であれば、下記で説明される機能以外の機能を有する電子制御ユニットを使用して実行されてよい。
【0034】
図1に概略的に示しているように、処理ユニット4は、通信ユニット2、第1の電子制御ユニット6、およびゲートウェイ8とデータを交換できるように、これらの種々の電子機器とに接続される。通信ユニット2、処理ユニット4、電子制御ユニット6、およびゲートウェイ8は、例えば、このために、例えばCANバス(「コントローラエリアネットワーク」)など、(同じ)ボード上のデータ処理ネットワーク(図示せず)に接続される。
【0035】
ゲートウェイ8は、例えば専用バスによって、第2の電子制御ユニット10にさらに接続される。
【0036】
車両Vは、下記で述べるような、本発明の構造上の変形形態で使用可能なメモリカード20用のリーダ12をさらに備えることができる。
【0037】
通信ユニット2は、携帯電話ネットワークN内の(接続が例えば3G/4G、Wi-Fi等の物理的なタイプの接続であることを表す連続線で図1に概略的に示されているような)通信Cを実行するように構成され、したがって、(車両Vと、携帯電話ネットワークNの一部であるセルラー電話ネットワークとの間の無線リンクを特に使用することによる)携帯電話ネットワークN、およびワイドエリアネットワークIを介したリモートサーバSとの接続を確立することができ、これにより、処理ユニット4とリモートサーバSは、下記で説明されるような、特に車両V内のデータ処理コンポーネントのインストールの状況において、(接続が論理タイプの接続であることを表す点線で図1に概略的に示されているような)データDを交換することができる。
【0038】
図2は、本発明の状況で使用可能なデータ編成の例を示す。
【0039】
これらのデータは、具体的にはデータ処理コンポーネントCOMP1、COMP2、COMPiを備え、この事例では、1つ1つが用語「電子機器」を使用して呼ばれる、具体的には第1の電子制御ユニット6および/または第2の電子制御ユニット10といった、車両Vの1つまたは複数の電子機器にインストールすることが望ましい。
【0040】
データ処理コンポーネントCOMP1、COMP2、COMPiは、この事例では、以下のように木構造および分岐構造内にカプセル化される。
- ダウンロードパケットDPACKは、それぞれが車両Vの電子機器に関連する1つまたは複数のデバイスパケットECUPACK1、ECUPACK2、ECUPACKnを備える。
- 各デバイスパケットECUPACKは、特定の電子機器のための1つまたは複数のデータ処理コンポーネントCOMP1、COMP2、COMPiに関するデータを含む。
【0041】
ロシア人形型のこのカプセル化方法は、対象コンポーネントごと、つまり本明細書では、電子制御ユニットのソフトウェアをリモートアップデート(またはファームウェアオーバジエアー(FOTA))で修正可能な電子制御ユニット2、4、6、8、および10ごとにコンテンツを分けることを可能にするということの他に、同じ電子コンポーネント内でアップデートの一貫性を保証することも可能なので、特に有利である。さらに、このカプセル化によって、いくつかのステージを含む整合性/信憑性の検証のレベルを達成することができる。より具体的には、通信ユニット2は、ダウンロードパケットDPACKにおける第1のレベルの検証を実行可能になり、この検証が正しいことが証明されるとすぐ、デバイスパケットECUPACKが抽出され、対象コンポーネント2、4、6、8、および10に配布されることになる。したがって対象コンポーネント2、4、6、8、および10は、種々の暗号ハードウェアを用いるレベル2検証を実行可能になり、レベル2検証は、生成されることになるコンポーネントごとにコンテンツの分離を可能にする(コンポーネントの多くのプロバイダが存在し得る)。デバイスパケットECUPACKが認証された後、データ処理コンポーネントCOMP1、COMP2、COMPiが抽出され、次に第3の暗号レベルで正しいことが証明され、肯定的検証の場合、最終的にインストールされてよい。したがってこの処理は、しばしばセキュアなゾーンまたは保護されたゾーン(すなわち信頼できるゾーン)、およびセキュアでないゾーン(すなわち信頼できないゾーン)から成る通信ユニット2のために、2つのレベル(ダウンロードパケットDPACKが、信頼できない接続ゾーン内で検証され、デバイスパケットECUPACKが抽出されて信頼できるゾーンと共有されること、および、その検証が、信頼できるゾーンで実行されることになること)でリモートプロセッサのように検証を実行することをこの方法がこのように可能にするので、対象プロセッサが通信ユニット2の場合、特に有利である。このように、最終的に、対象ECUがローカルであろうとリモート(車両ネットワークの他のECU)であろうと、方法は、いくつかのレベルでの検証を可能にする。コンポーネントCOMPがデバイスパケットECUPACK内にない図2にさらに示されている別の方式では、コンポーネントCOMPは、2次交換処理で受信され、デバイスパケットECUPACK内の第1のインスタンスに収められたハッシュ値H(COMP1)、H(COMP2)、H(COMPi)で正しいことが証明されることになる。コンポーネント内にアップデートコンテンツをカプセル化することは、導入の制御を保証するために、イメージの証明を保証するようにコンストラクタレベルの電子署名が制御されることを可能にする。コンポーネントのこの署名動作は、車両製造業者の敷地で(特定の特権を有する)認定済のセキュリティエージェントによって、例えば手動で、実行されることになる。この動作がないと、破損していないコンテンツを車両に導入することができない。この署名レベルは、例えば手動式であり(特にASSIM署名(ASSIM signing))、導入の認可を制御することができる。このように、サプライヤによって提供された破損していない正式なバイナリアップデートコンテンツは、車両製造業者によって認定されたイメージだけを車両に伝送できることをプロセッサ2、4、6、8、または10に保証できるこの検証レベルがないと、プロセッサ2、4、6、8、または10によって利用されることが不可能になる。これは、導入前に対象ソフトウェアの品質が保証されることをさらに可能にする。
【0042】
下記で説明されるように、これらのパケットのそれぞれが、データ処理コンポーネントのインストールのために使用されるデジタル署名を収める。下記で想定されるように、デジタル署名の検証は、本明細書で説明されることになる固有の暗号インフラストラクチャを必要とする。
【0043】
提示を簡素化するために、どのデジタル署名も、単に「署名」と下記で呼ばれる。
【0044】
以下は、特に下記で使用される:
- メタデータROOT.md、および秘密鍵ROOT.Kprivに関連付けられた公開鍵ROOT.Kpubを収めるルート証明書ROOT.cert
- メタデータCA.md、公開鍵CA.Kpub、および署名CA.sigを収める当局の証明書CA.cert
- メタデータR.md、公開鍵R.Kpub、および署名R.sigを収める製造業者の証明書R.cert
- 秘密鍵BK.Kprivに関連付けられた公開鍵BK.Kpub。
【0045】
秘密鍵CA.Kprivは、公開鍵CA.Kpubに関連付けられる。
【0046】
同様に、秘密鍵R.Kprivは、公開鍵R.Kpubに関連付けられる。
【0047】
用語、関連付けられた公開鍵および秘密鍵は、この事例では、「公開鍵インフラストラクチャ」(すなわちPKI)における関連付けられた公開鍵および秘密鍵を指すと理解されることを意図する。
【0048】
このような文脈では、データのグループは、秘密鍵を使用する(この事例ではRSAタイプの)暗号署名アルゴリズムをデータのこのグループに適用することによって署名されてよく、次に、上述の秘密鍵に関連付けられた公開鍵を使用する(この事例では同様にRSAタイプの)関連付けられた暗号署名検証アルゴリズムを使用して、署名を検証することができる。
【0049】
当局の証明書CA.certの署名CA.sigは、秘密鍵ROOT.Kprivを使用する暗号署名アルゴリズムを、メタデータCA.mdおよび公開鍵CA.Kpubによって形成されるグループに適用することによって取得される(この動作は、例えば証明当局によって実行される)。
【0050】
製造業者の証明書R.certの署名R.sigはそれ自体が、秘密鍵CA.Kprivを使用する暗号署名アルゴリズムを、メタデータR.mdおよび公開鍵R.Kpubによって形成されるグループに適用することによって取得される(この動作も、上述の証明当局によって実行されることが可能である)。
【0051】
図2に示されている様々なデータ構造が、ここで詳細に説明される。
【0052】
インストールされることになる各データ処理コンポーネントCOMPは以下を含む:
- 当該の電子機器にインストールされることになる(実際には格納されることになる)データを含むコンテンツCONTEN
- 特に、インストールされることになるコンテンツのハッシュ値H(CONTEN)、および利用可能であれば、例えばこのコンポーネントによってアップデートされる機能を記述したものなど、データ処理コンポーネントを記述したものを収めるマニフェストCOMPIND
- マニフェストCOMPINDの署名SIG(COMPIND)。
【0053】
インストールされることなるこれらのデータは、ソフトウェアまたはソフトウェアの一部(例えばソフトウェアアップデート)を構成することができる。したがって、このソフトウェアまたはソフトウェアの一部は、当該の電子機器のプロセッサによって少なくとも部分的に実行されるように構成される。1つの変形形態では、インストールされることになるこれらのデータは、当該の電子機器のプロセッサによるその後の操作のために格納されることになるデータ(例えば地図データ)でよい。
【0054】
ハッシュ値H(CONTEN)は、(例えばタイプSHA-256の)ハッシュ値機能をコンテンツCONTENに適用することによって取得される。
【0055】
署名SIG(COMPIND)は、秘密鍵BK.Kprivを使用する暗号署名アルゴリズムをマニフェストCOMINDに適用することによって取得される。
【0056】
例えばこれらの動作は、当該の(例えばソフトウェアの)コンテンツCONTENの証明機関によって実行される。
【0057】
各デバイスパケットECUPACKは、この事例では、以下を含む:
- 上記で説明されたような1つまたは複数のデータ処理コンポーネントCOMP1、COMP2、COMPi
- デバイスパケットECUPACKに収められたデータ処理コンポーネントCOMP1、COMP2、COMPiのそれぞれのためのハッシュ値H(COMP1)、H(COMP2)、H(COMPi)、ならびに利用可能であれば、車両識別子VIN、および/または、パケットに収められたデータ処理コンポーネントCOMP1、COMP2、COMPiを記述したものを含むマニフェストECUPACKIND
- マニフェストECUPACKINDの署名SIG(ECUPACKIND)。
【0058】
識別子VINを提供するためのいくつかの変形形態が実行されてよい。上述のようにデバイスパケットECUPACKに識別子VINを含めることによって、電子機器(例えば車両のプロセッサ)にインストールされたデータ処理コンポーネントが本当にこの車両に帰するコンポーネントであることをデバイスパケットECUPACKに保証することができる。これは、1つのコンポーネントが同じタイプの多くの車両に非常に適したものになり、例えば自分の車両のプロセッサを同じタイプの別の車両のプロセッサで置き替えるという可能性をユーザに提供するからである。デバイスパケットECUPACKにVIN識別子を含めることによって、この操作を回避することができる。
【0059】
1つの変形形態では、それでも、図3に示されている変形形態におけるケースのように、例えば下記で説明されるマニフェストDPACKIND内に車両識別子VINを入れることによって、この操作に権限付与することが、それでもなお可能である。このケースでは、マニフェストDPACKIND内で受信された識別子VINと、(この事例では処理ユニット4内に)格納されているような車両Vの識別子との間の肯定的比較の場合のみ、(処理ユニット4を使用して)デバイスパケットECUPACKを当該の電子機器に伝送することを想定することが可能である。
【0060】
想定され得る他の実施形態によれば、識別子VINは、例えばナビゲーションシステムの地図データを含むデータ処理コンポーネントなどの、特にいずれの車両とも互換性のあるデータ処理コンポーネントのためのマニフェストDPACKINDとマニフェストECUPACKINDの両方に入れられてよく、またはこれらの2つのマニフェストのどちらにも入れられなくてよい。
【0061】
この事例では、車両Vの識別子VINは、車両に一意に関連付けられた番号であり、一般にVIN「車両識別番号(Vehicle Identification Number)」と呼ばれる。
【0062】
ハッシュ値H(COMP1)、H(COMP2)、H(COMPi)は、例えば(当該の機器の要件、特にこの機器のアップデート要件による)デバイスパケットECUPACKの定義中に、当該のデータ処理コンポーネントCOMP1、COMP2、COMPiを構成するデータに(例えばタイプSHA-256の)ハッシュ関数をそれぞれ適用することによって取得される。
【0063】
署名SIG(ECUPACKIND)は、(製造業者の証明書R.certに関連付けられた)秘密鍵R.Kprivを使用する暗号署名アルゴリズムをマニフェストECUPACKINDに適用することによって取得される。
【0064】
例えば、これらの動作は、インストールされることになるデータ処理コンポーネントが、(識別子VINを使用して識別された)特定の車両における当該の電子機器のために定義されるとき、車両製造業者によって(または車両製造業者の代わりに)実行される。
【0065】
実際には、例えば署名SIG(ECUPACKIND)は、例えばcmsフォーマット(「暗号メッセージシンタックス(Cryptographic Message Syntax)」)内のフィールドなど、デバイスパケットECUPACKに専用のフィールドに収められる。このケースでは、このフィールドは、署名SIG(ECUPACKIND)、当局の証明書CA.cert、および製造業者の証明書R.certを含むことができる。
【0066】
ダウンロードパケットDPACKは、以下を含む:
- 上記で説明されたような、1つまたは複数のデバイスパケットECUPACK1、ECUPACK2、ECUPACKn
- 特にダウンロードパケットDPACKに収められたデバイスパケットECUPACK1、ECUPACK2、ECUPACKnのそれぞれのためのハッシュ値H(ECUPACK1)、H(ECUPACK2)、H(ECUPACKn)、および利用可能であれば、(当該のデバイスパケットの対象電子機器の各デバイスパケットECUPACK1、ECUPACK2、ECUPACKnについての例えば指示と共に)ダウンロードパケットDPACKに収められたデバイスパケットECUPACK1、ECUPACK2、ECUPACKnを記述したものを含むマニフェストDPACKIND
- マニフェストDPACKINDの署名SIG(DPACKIND)。
【0067】
ハッシュ値H(ECUPACK1)、H(ECUPACK2)、H(ECUPACKn)は、例えば、(対象電子機器、および機器のそれぞれについてのそれぞれの必要性の定義の後)ダウンロードパケットDPACKの定義中に、当該のデバイスパケットECUPACK1、ECUPACK2、ECUPACKnに(例えばタイプSHA-256の)ハッシュ関数をそれぞれ適用することによって取得される。
【0068】
署名SIG(DPACKIND)は、(製造業者の証明書R.certに関連付けられた)秘密鍵R.Kprivを使用する暗号署名アルゴリズムをマニフェストDPACKINDに適用することによって取得される。
【0069】
例えば、これらの動作は、当該の電子機器、およびこれらの電子機器にインストールされることになるデータ処理コンポーネントが定義されるとき、車両製造業者によって(または車両製造業者の代わりに)実行される。
【0070】
実際には、例えば、署名SIG(DPACKIND)は、例えばcmsフォーマット(「暗号メッセージシンタックス」)内のフィールドなど、ダウンロードパケットDPACKの専用フィールドに収められる。このケースでは、このフィールドは、署名SIG(DPACKIND)、当局の証明書CA.cert、および製造業者の証明書R.certを含むことができる。
【0071】
上記で説明されたアーキテクチャでは、データ処理コンポーネントCOMP1、COMP2、COMPiのそれぞれは、インストールの対象になる車両Vから独立している(また例えば車両全体のために使用され得る)ことに留意されたい。それでもデバイスパケットECUPACK1、ECUPACK2、ECUPACKn(および必然的にダウンロードパケットDPACK)は、車両Vのために特に構成される。
【0072】
図3は、ダウンロードパケットDPACK内のデータの編成のために想定され得る変形形態を含む。
【0073】
既に示されたように、この変形形態では、車両識別子VINは、マニフェストDPACKIND内に入れられる。
【0074】
さらに、特定の電子機器に関するデータ処理コンポーネントCOMP1、COMP2、COMPiは、この電子機器のためのデバイスパケットECUPACK1に含まれないが、代わりに、下記において説明されるように、利用可能であれば、デバイスパケットECUPACK1から別々に伝送可能にするために、電子機器の外部にある。
【0075】
デバイスパケットECUPACK1は、この事例では、以下を含む:
- 当該の電子機器に関連付けられたデータ処理コンポーネントCOMP1、COMP2、COMPiのそれぞれのためのハッシュ値H(COMP1)、H(COMP2)、H(COMPi)を含むマニフェストECUPACKIND
- マニフェストECUPACKINDの署名SIG(ECUPACKIND)。
【0076】
本発明による車両V内にデータ処理コンポーネントをインストールするための方法の例が、図4を参照しながらここで説明される。
【0077】
この方法はステップE2で始まり、ステップE2の間に、処理ユニット4は、リモートサーバSに向けたリクエストREQを伝送する。このリクエストにより、車両Vは、例えば特定のソフトウェアコンポーネントまたは特定のデータ(地図データなど)をアップデートするために、データ処理コンポーネントが車両V内でのインストールに利用可能かどうかを決定しようとする。
【0078】
例えば、リクエストREQは、処理ユニット4によって周期的に伝送される。実際には、例えばリモートサーバSの電子座標(coordonnees electroniques)が処理ユニット4内に格納され、リモートサーバSに向けたリクエストREQを伝送するために使用される。電子座標は、SSL(セキュアソケットレイヤ)などのセキュア接続を指すのが好ましい。
【0079】
リクエストREQは、車両Vの識別子VINを含むことができる。
【0080】
リモートサーバSはステップE4においてリクエストREQを受信し、データ処理コンポーネントが車両Vのためのダウンロードに利用可能かどうかを(例えばリクエストREQに含まれる識別子VINに基づいて)決定する。
【0081】
この事例では、データ処理コンポーネントが車両Vでのダウンロードおよびインストールに利用可能であると仮定される。必然的にサーバSは、ステップE6においてグローバルコンテナGLOBを処理ユニット4に伝送する。
【0082】
このグローバルコンテナGLOBは、マニフェストDPACKIND、関連付けられた署名SIG(DPACKIND)、およびデバイスパケットECUPACK1、ECUPACK2、ECUPACKnを含む。必然的に、実施形態によれば、このグローバルコンテナGLOBは、データ処理コンポーネントCOMP1、COMP2、COMPiを備えるか、備えない。
【0083】
これは、第1の実施形態によれば、このステップE6において、データ処理コンポーネントCOMP1、COMP2、COMPiの全てまたは一部を伝送することもできるからである(したがって、ステップE6において伝送されたこれらのコンポーネントは、下記で説明されるステップE26では伝送されない)。したがって、これらのデータ処理コンポーネントは、デバイスパケットECUPACK内で(例えば図2に示されているデータ構造のフレームワーク内で)、または、当該のデバイスパケットECUPACK1と共に(例えば図3に示されているデータ構造のフレームワーク内で)伝送されてよい。
【0084】
第2の実施形態によれば、ステップE6において伝送されたグローバルコンテナGLOBは、データ処理コンポーネントCOMP1、COMP2、COMPiのいずれも収めない(したがって、これらのデータ処理コンポーネントは、下記で説明されるステップE26による1つまたは複数のステップの間に伝送される)。
【0085】
処理ユニット4は、ステップE8においてグローバルコンテナGLOBを受信し、したがって、グローバルコンテナGLOBを格納することができる。グローバルコンテナGLOBは、この事例では、リモートサーバSと車両Vとの間に確立された通信を介して直接的に受信され、この通信は、この事例では、既に言及された車両Vとセルラー電話ネットワークとの間の無線リンクを部分的に使用する。
【0086】
1つの変形形態では、上記に示されているように、ステップE8において、リーダ12に挿入された(またこれにより処理ユニット4に接続された)メモリカード20からグローバルコンテナGLOBを(データ処理コンポーネントの有無に関わらず)受信することができる。ステップE2からE6は、このケースでは実行されない。
【0087】
伝送されるグローバルコンテナGLOBがデータ処理コンポーネントCOMP1、COMP2、COMPi(またはこれらのうちの少なくともいくつか)を収めない実施形態では、受信されたグローバルコンテナGLOBを格納するために処理ユニット4内で必要とされるメモリサイズを削減できることに留意されたい。言い換えれば、ダウンロードパケットDPACKの全てを格納するのに適したバッファメモリを処理ユニット4内に用意する必要はない。
【0088】
したがって処理ユニット4は、ステップE10において、特に署名を検証するためにその後使用される公開鍵R.Kpubを収める製造業者の証明書R.certの検証を実行する。
【0089】
上記に示されているように、証明書R.certは、この事例では、ダウンロードパケットDPACKの(およびしたがってステップE8において受信されたグローバルコンテナGLOBの)cmsフォーマットのフィールド内に収められる。
【0090】
製造業者の証明書R.certを検証するために、公開鍵CA.Kpubを使用する暗号署名検証アルゴリズムが、署名R.sigおよび署名済データ(この事例ではメタデータR.mdおよび公開鍵R.Kpub)に適用される。(公開鍵CA.Kpubは、上述のフォーマットCMSでフィールドにそれ自体が収められた証明書CA.certの一部であることに留意されたい。)実際には、例えば、署名済データのハッシュ値と、公開鍵CA.Kpubを使用する(この事例ではRSAタイプの)暗号アルゴリズムを署名R.sigに適用することによって取得された結果とが比較される。
【0091】
検証できない場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、インストールプロセスを終了し、利用可能であれば、エラーメッセージをリモートサーバSに送信する。
【0092】
ステップE10において肯定的検証の場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しい場合)、処理ユニットは、含められたときの日時と、メタデータR.mdに記載された有効期限の日時とを比較することによって、証明書R.certが期限切れになっていないかどうかを検証することができる。
【0093】
証明書の有効期限が切れている場合、インストールプロセスを終了し、利用可能であれば、エラーメッセージをリモートサーバSに送信する。
【0094】
証明書が有効な場合、処理ユニット4はステップE12において、(上記で説明されたように使用される公開鍵CA.Kpubを特に収める)当局の証明書CA.certの検証を実行する。
【0095】
上記に示されているように、証明書CA.certは、この事例では、ダウンロードパケットDPACKの(およびしたがってステップE8において受信されたグローバルコンテナGLOBの)cmsフォーマットのフィールドに収められる。
【0096】
当局の証明書CA.certを検証するために、公開鍵ROOT.Kpubを使用する暗号署名検証アルゴリズムが、署名CA.sigおよび署名済データ(この事例では、メタデータCA.mdおよび公開鍵CA.Kpub)に適用される。実際には、例えば、署名済データのハッシュ値と、公開鍵ROOT.KPubを使用する(この事例ではRSAタイプの)暗号アルゴリズムを署名CA.sigに適用することによって取得された結果とが比較される。
【0097】
例えば、公開鍵ROOT.Kpubは、(処理ユニット4の製造中に)処理ユニット4の不揮発性メモリ内に格納される。
【0098】
検証できない場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、インストールプロセスを終了し、利用可能であれば、エラーメッセージをリモートサーバSに送信する。
【0099】
ステップE12において肯定的検証の場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しい場合)、処理ユニットは、含められたときの日時と、メタデータCA.mdに記載された有効期限の日時とを比較することによって、証明書CA.certが期限切れになっていないかどうかを検証することができる。
【0100】
証明書の有効期限が切れている場合、インストールプロセスを終了し、利用可能であれば、エラーメッセージをリモートサーバSに送信する。
【0101】
証明書が有効な場合、所与の時間の日時と、メタデータROOT.mdに記載されたルート証明書ROOT.certの有効期限の日時とを比較することによって、ルート証明書ROOT.certの有効性を同様に検証することができる。
【0102】
証明書の有効期限が切れている場合、インストールプロセスを終了し、利用可能であれば、エラーメッセージをリモートサーバSに送信する。
【0103】
証明書が有効な場合、処理ユニット4はステップE14において、ステップE8において受信されたグローバルコンテナGLOBの特定部分を検証する。
【0104】
処理ユニットはステップE14において、(グローバルコンテナGLOBの中で受信された)マニフェストDPACKINDの整合性を特に検証する。
【0105】
このために、処理ユニットは、公開鍵R.Kpubを使用する暗号署名検証アルゴリズムを署名SIG(DPACKIND)およびマニフェストDPACKINDに適用する。実際には、例えば、マニフェストDPACKINDのハッシュ値と、公開鍵R.Kpubを使用する(この事例ではRSAタイプの)暗号アルゴリズムを署名SIG(DPACKIND)に適用することによって取得された結果とが比較される。ステップE10において、公開鍵R.Kpubを収める証明書R.certの有効性が検証されたことに留意されたい。
【0106】
検証できない場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、インストールプロセスを終了し、利用可能であれば、エラーメッセージをリモートサーバSに送信する。
【0107】
ステップE14において肯定的検証の場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、ステップE16においてインストールプロセスを続け、ステップE16はここで説明される。
【0108】
処理ユニット4はステップE16において、データ処理コンポーネントのインストールを担う電子機器(この事例では例えば第1の電子制御ユニット6および/またはゲートウェイ8)に様々なデバイスパケットECUPACKを配布する。
【0109】
各デバイスパケットECUPACKは、当該の実施形態に応じて、データ処理コンポーネントCOMP1、COMP2、COMPi自体の有無に関わらず、特定の電子機器(この事例では、第1の電子制御ユニット6またはゲートウェイ8)のためのグローバルコンテナGLOBのデータ、つまり、この電子機器のためのデバイスパケットECUPACKnのデータを収める。
【0110】
既に示されているように、実際には、ステップE6の中で、グローバルコンテナGLOBで伝送されることになる電子コンポーネントの全てまたは一部、およびしたがって、1つまたは複数のデータ処理コンポーネントを含むことになる少なくともいくつかのデバイスパケットECUPACKを提供することができる。
【0111】
したがって当該の各電子機器は、ステップE18において、デバイスパケットECUPACKを受信する。このような電子機器(この事例では第1の電子制御ユニット6またはゲートウェイ8)のための方法の実装形態が下記で説明されるが、実際にはデバイスパケットECUPACKを受信する他の電子機器のために同様のステップが実行される。
【0112】
したがって電子機器(この事例では第1の電子制御ユニット6またはゲートウェイ8)は、利用可能であれば、ステップE20において、製造業者の証明書R.certおよび当局の証明書CA.certの検証のステップを実行することができる。この事例で説明される例では、これらの証明書R.certおよびCA.certが、デバイスパケットECUPACKのcmsタイプのフィールドの一部であることに留意されたい。
【0113】
(当該の電子機器6、8によって実行される)ステップE20の検証は、上記で説明されたステップE10およびE12において処理ユニット4によって実行される検証と同様であり、ここでは詳細に説明されない。
【0114】
ステップE20において検証できない場合、当該の機器6、8内のインストールプロセスを終了する。さらにエラーメッセージを(例えばリモートサーバSへの伝送の可能性のために)処理ユニット4に送信することができる。
【0115】
ステップE20において肯定的検証の場合、当該の電子機器6、8は、ステップE22において、(デバイスパケットECUPACKIND内で受信された)マニフェストECUPACKINDの整合性の検証を実行する。
【0116】
このために、当該の電子機器6、8は、公開鍵R.Kpubを使用する暗号署名検証アルゴリズムを署名SIG(ECUPACKIND)およびマニフェストECUPACKINDに適用する。実際には、例えば、マニフェストECUPACKINDのハッシュ値と、公開鍵R.Kpubを使用する(この事例ではRSAタイプの)暗号アルゴリズムを署名SIG(ECUPACKIND)に適用することによって取得された結果とが比較される。(公開鍵R.Kpubを収める証明書R.certの有効性がステップE20の中で検証されたことに留意されたい。)
【0117】
検証できない場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、当該の電子機器6、8におけるインストールプロセスを終了し、利用可能であれば、(例えばリモートサーバSへの伝送の可能性のために)エラーメッセージを処理ユニット4に送信する。
【0118】
ステップE22において肯定的検証の場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、当該の電子機器6、8は、ステップE24において、マニフェストECUPACKINDに含まれる車両Vの識別子VINが電子機器6、8内の(例えば不揮発性メモリに)格納された車両Vの識別子VINに対応するかどうか(つまり実際に等しいかどうか)を検証する。
【0119】
検証できない場合(つまりマニフェストECUPACKIND内で示された識別子VINと格納された識別子とが等しくない場合)、当該の電子機器6、8におけるインストールプロセスを終了し、利用可能であれば、(例えばリモートサーバSへの伝送の可能性のために)エラーメッセージを処理ユニット4に送信する。
【0120】
ステップE24において肯定的検証の場合(つまりマニフェストECUPACKIND内で示された識別子VINと格納された識別子とが等しい場合)、インストールは、(ここで説明されるように、データ処理コンポーネントを受信した後)下記で説明されるステップE32において続けることができる。
【0121】
インストールを担う電子機器6、8内の言及された処理と同時に、リモートサーバSは、ステップE26において、ダウンロードパケットDPACKの少なくとも1つのデータ処理コンポーネントCOMPiを処理ユニット4に伝送する。(これは図4に示されていないが、データ処理コンポーネントCOMPiのこの伝送が、処理ユニット4からの指示がリモートサーバSによって受信された後、開始されてよく、例えばこの指示は、データ処理コンポーネントCOMPiを格納するためのバッファメモリ内の空間が十分であることを示す。)
【0122】
処理ユニット4は、ステップE28において、データ処理コンポーネントCOMPiを受信する。
【0123】
1つのデータ処理コンポーネントCOMPiの処理がここで、下記で説明される。実際には、いくつかのデータ処理コンポーネントは、処理ユニット4のバッファメモリの容量に応じて同時にまたは後で受信され、データ処理コンポーネントCOMPiについて説明されたように処理される。
【0124】
ステップE28において受信されたコンポーネントCOMPIによって、(グローバルコンテナGLOBのデータを使用して)デバイスパケットECUPACKnを補足することが可能になると、処理ユニット4は、利用可能であれば、ステップE29において、例えばマニフェストDPACKINDに収められたハッシュ値H(ECUPACKn)と、受信されたときにデバイスパケットECUPACKnにハッシュ関数(この事例ではSHA256)を適用することによって取得されたハッシュ値とを比較することによって、当該のデバイスパケットECUPACKnのコンテンツの検証を実行することができる。
【0125】
検証できない場合(つまりマニフェストDPACKINDのハッシュ値H(ECUPACKn)が、受信されたデバイスパケットECUPACKnに基づいて取得されたハッシュ値とは異なる場合)、データ処理コンポーネントCOMPiを当該の電子機器6、8に通信せず、利用可能であれば、エラーメッセージをリモートサーバSに送信することができる。
【0126】
ステップE29において肯定的検証の場合、つまりマニフェストDPACKINDのハッシュ値H(ECUPACKn)と、受信されたデバイスパケットECUPACKnに基づいて取得されたハッシュ値とが等しい場合、データ処理コンポーネントCOMPiは、ステップE30において、当該の電子機器6、8に配布される。
【0127】
したがって当該の電子機器6、8は、ステップE32において、データ処理コンポーネントCOMPiを受信する。
【0128】
したがって電子機器6、8は、このデータ処理コンポーネントCOMPiを検証することができる。
【0129】
まず第1に、ステップE34において、電子機器6、8は、マニフェストECUPACKINDに収められたハッシュ値H(COMPi)と、受信されたデータ処理コンポーネントCOMPiにハッシュ関数(この事例ではSHA256)を適用することによって取得されたハッシュ値とを比較する。(ステップE22においてマニフェストECUPACKINDの整合性が検証されたことに留意されたい。)
【0130】
否定的検証の場合(つまりマニフェストECUPACKINDに収められたハッシュ値H(COMPi)が、取得されたハッシュ値とは異なる場合)、データ処理コンポーネントCOMPiのインストールを終了する。
【0131】
ステップE34において肯定的検証の場合(つまりマニフェストECUPACKINDに収められたハッシュ値H(COMPi)と、取得されたハッシュ値とが等しい場合)、データ処理コンポーネントCOMPiの検証は、ステップE36において続く。
【0132】
電子機器6、8はまず、ステップE36において、データ処理コンポーネントCOMPiのマニフェストCOMPINDの整合性を検証する。
【0133】
このために、当該の電子機器6、8は、公開鍵BK.Kpubを使用する暗号署名検証アルゴリズムを署名SIG(COMPIND)およびマニフェストCOMPINDに適用する。実際には、マニフェストCOMPINDのハッシュ値と、(この事例ではRSAタイプの)暗号アルゴリズムの署名SIG(COMPIND)を適用することによって取得された結果とが、例えば、公開鍵BK.KPubを使用して比較される。
【0134】
例えば公開鍵BK.Kpubは、当該の電子機器6、8の不揮発性メモリに格納される。
【0135】
検証できない場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しくない場合)、データ処理コンポーネントCOMPiのインストールプロセスを終了し、利用可能であれば、(例えばリモートサーバSへの伝送の可能性のために)エラーメッセージを処理ユニット4に送信する。
【0136】
署名SIG(COMPIND)の肯定的検証の場合(つまり上述のハッシュ値と上述の結果を比較するステップにおいて等しい場合)、電子機器6、8は、マニフェストCOMPINDに収められたハッシュ値H(CONTEN)と、受信されたデータ処理コンポーネントCOMPiのコンテンツCONTENにハッシュ関数(この事例ではSHA256)を適用することによって取得されたハッシュ値とを比較する。
【0137】
検証できない場合(つまりマニフェストCOMPINDのハッシュ値H(CONTEN)と取得されたハッシュ値とが等しくない場合)、データ処理コンポーネントCOMPiのインストールプロセスを終了し、利用可能であれば、(例えばリモートサーバSへの伝送の可能性のために)エラーメッセージを処理ユニット4に送信する。
【0138】
肯定的検証の場合(つまりマニフェストCOMPINDのハッシュ値H(CONTEN)と取得されたハッシュ値とが等しくない場合)、インストール方法は、ここで説明されるように続く。
【0139】
例えば車両Vが熱機関を有する車両のケースでは、したがって、熱機関の動作を待つステップE38を行うことができる(このステップにより、電子機器全てが動作しており、データ処理コンポーネントCOMPiが当該の電子機器に正しくインストールできることを熱機関に実際に保証することができる)。
【0140】
熱機関が動作可能なとき(または熱機関のない車両についてはこの条件はない)、当該の電子機器6、8は、その後使用されることを視野に入れて、データ処理コンポーネントCOMPiのインストール、つまり不揮発性(書換え可能)メモリへのデータ処理コンポーネントCOMPiの格納を制御する。
【0141】
いくつかのケースでは(例えば第1の電子制御ユニット6については)、データ処理コンポーネントCOMPiのインストールは、上記で説明された前の検証ステップE20からE36を実行したことがある電子機器自体(この事例では第1の電子制御ユニット6)の中で実行される。
【0142】
対照的に他のケースでは(この事例では、ゲートウェイ8については)、インストールを担い、この文脈で前の検証ステップE20からE36を実行したことがある電子機器(この事例ではゲートウェイ8)は、別の電子機器、この事例では第2の電子制御ユニット10内でのデータ処理コンポーネントCOMPiのインストールを制御する。したがってゲートウェイ8は、例えば、第2の電子制御ユニット10の不揮発性(書換え可能な)メモリへのデータ処理コンポーネントCOMPiの格納を制御する。
【0143】
この事例では、ここで説明されるように、インストールされてもすぐに使用される予定はないが、代わりに他の条件に従うときのデータ処理コンポーネントを提供する。
【0144】
車両Vが熱機関を有する車両のとき、熱機関の動作が停止するのを待つステップE42を使用することができる。
【0145】
車両Vの熱機関が停止すると(または車両Vが熱機関を使用しないとき)、処理ユニット4は、データ処理コンポーネントがインストールされ、使用する準備が整ったという指示をユーザインターフェース(例えば車両Vの客室内に配置された画面)に表示する(ステップE44)。
【0146】
したがって処理ユニット4は、ステップE46において、例えば上述のユーザインターフェース(利用可能であれば、この画面がタッチスクリーンのとき上述の画面)を介して、ユーザ(例えば車両Vのドライバ)からの応答を待つ。
【0147】
ユーザの否定的応答のケースでは、ステップE40においてインストールされたデータ処理コンポーネントは使用されない。
【0148】
ステップE46においてユーザの肯定的応答のケースでは、処理ユニット4は、当該の様々な電子機器に(この事例では第1の電子制御ユニット6に、およびゲートウェイ8を介して第2の電子制御ユニット10に)、インストールされたデータ処理コンポーネントをアクティブにするためのコマンドCMDを伝送する(ステップE48)。
【0149】
次に、インストールされたデータ処理コンポーネントをアクティブにする(ステップE50)。
【0150】
ソフトウェアデータ処理コンポーネントについては、次に、当該のデータ処理コンポーネントに含まれる命令は、データ処理コンポーネントがインストールされた電子機器6、10のプロセッサによって実行されてよい。
【0151】
操作可能なデータから形成されたデータ処理コンポーネントについては、当該のデータ処理コンポーネントに含まれるデータは、データ処理コンポーネントがインストールされた電子機器6、10のプロセッサによって操作されてよい。
図1
図2
図3
図4