(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023122639
(43)【公開日】2023-09-04
(54)【発明の名称】車両のソフトウェアの改竄の軽減
(51)【国際特許分類】
G06F 21/55 20130101AFI20230828BHJP
【FI】
G06F21/55
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023025765
(22)【出願日】2023-02-22
(31)【優先権主張番号】10 2022 201 901.6
(32)【優先日】2022-02-23
(33)【優先権主張国・地域又は機関】DE
(71)【出願人】
【識別番号】591245473
【氏名又は名称】ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100161908
【弁理士】
【氏名又は名称】藤木 依子
(72)【発明者】
【氏名】マヌエル・ヤウス
(72)【発明者】
【氏名】フェリックス・ハラチェク
(72)【発明者】
【氏名】マルセル・クナイプ
(57)【要約】
【課題】車両のソフトウェアの改竄の軽減すること。
【解決手段】方法は、ソフトウェアの改竄を軽減するための中央デバイスにおいて、車両の車載ネットワークの複数のコンポーネントのうちの第1のコンポーネントのソフトウェアの改竄の可能性を認識するステップを含む。中央デバイスは、車載ネットワークの一部であり、車載ネットワークの複数のコンポーネントの各々におけるソフトウェアの改竄を軽減するように設計されている。この方法は、改竄を軽減するための中央デバイスによって、第1のコンポーネントのソフトウェアの改竄を軽減するための対策を導入するステップと、第1のコンポーネントのソフトウェアの改竄を軽減するための対策を実施するステップとをさらに含む。改竄に対する対策は、第1のコンポーネントのセキュリティモジュールおよび/または第1のコンポーネントの不変モジュールを使用した第1のコンポーネントのソフトウェアのリセットを含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
ソフトウェアの改竄を軽減するための中央デバイス(25)において、車両(20)の車載ネットワークの複数のコンポーネント(27a~f)のうちの第1のコンポーネント(27c)のソフトウェアの改竄の可能性を認識するステップ(101)であって、
前記改竄を軽減するための中央デバイス(25)が、前記車載ネットワークの一部であり、前記車載ネットワークの前記複数のコンポーネント(27a~f)の各々におけるソフトウェアの改竄を軽減するように設計されている、ステップ(101)と、
前記改竄を軽減するための中央デバイス(25)によって、前記第1のコンポーネント(27c)の前記ソフトウェアの前記改竄を軽減するための対策を導入するステップ(103)と、
前記第1のコンポーネント(27c)の前記ソフトウェアの前記改竄を軽減するための前記対策を実施するステップであって、
前記改竄に対する前記対策が、前記第1のコンポーネント(27c)のセキュリティモジュール(93)および/または前記第1のコンポーネント(27c)の不変モジュール(99)を使用した前記第1のコンポーネント(27c)の前記ソフトウェアのリセットを含む、ステップと、
を含む、方法。
【請求項2】
前記第1のコンポーネント(27c)の前記ソフトウェアの前記リセットが、
前記第1のコンポーネント(27c)のセキュリティモジュール(93)および/または前記第1のコンポーネント(27c)の不変モジュール(99)によって、前記第1のコンポーネント(27c)をリセットモードにするステップ
を含む、請求項1に記載の方法。
【請求項3】
前記第1のコンポーネント(27c)の前記ソフトウェアの前記リセットが、
前記第1のコンポーネント(27c)を前記リセットモードにする前記ステップの前に、前記第1のコンポーネント(27c)のプロセッサを再起動するステップ、
前記第1のコンポーネント(27c)をリセットモードにする前記ステップの後に、前記ソフトウェアをリセットするためのソフトウェアコンポーネントを受信するステップ、および
受信された前記ソフトウェアコンポーネントを前記第1のコンポーネント(27c)のメモリに格納するステップ
をさらに含む、請求項1または2に記載の方法。
【請求項4】
前記第1のコンポーネント(27c)の前記プロセッサを再起動する前記ステップが、前記セキュリティモジュール(93)によって開始される、請求項3に記載の方法。
【請求項5】
前記第1のコンポーネント(27c)の前記プロセッサを再起動する前記ステップが、前記車載ネットワークの前記複数のコンポーネント(27a~f)に選択的にエネルギーを供給するように設計されている前記車両(20)の電源ユニットによって開始される、請求項3または4に記載の方法。
【請求項6】
前記第1のコンポーネント(27c)の前記プロセッサを再起動する前記ステップが、前記車両(20)の中央作動機能の作動によって開始される、請求項3から5のいずれか一項に記載の方法。
【請求項7】
前記第1のコンポーネント(27c)の前記不変モジュールがブートローダである、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ソフトウェアをリセットするためのソフトウェアコンポーネントが、前記改竄を軽減するための中央デバイス(25)から送信される、請求項1から6のいずれか一項に記載の方法。
【請求項9】
前記ソフトウェアをリセットするための前記ソフトウェアコンポーネントを受信する前記ステップと、受信された前記ソフトウェアコンポーネントを格納する前記ステップとが、前記セキュリティモジュール(93)によって実行される、請求項3から8のいずれか一項に記載の方法。
【請求項10】
前記ソフトウェアをリセットするための前記ソフトウェアコンポーネントを受信する前記ステップと、受信された前記ソフトウェアコンポーネントを格納する前記ステップとが、前記不変モジュール(99)によって実行される、請求項3から9のいずれか一項に記載の方法。
【請求項11】
請求項1から8のいずれか一項に記載の方法を実行するように設計されているシステム。
【請求項12】
車両(20)用の車載ネットワークであって、
ソフトウェアの改竄を軽減するための中央デバイス(25)と、
第1のコンポーネント(27c)を含む前記車載ネットワークの複数のコンポーネント(27a~f)とを含み、
請求項1から10のいずれか一項に記載の方法を実施するように設計されている、
車載ネットワーク。
【請求項13】
請求項11に記載のシステムを含む、もしくはその一部である、および/または請求項12に記載の車載ネットワークを含む車両(20)。
【請求項14】
請求項1から10のいずれか一項に記載の方法を実行するように設計されているコンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムを含むまたは符号化するコンピュータ可読媒体または信号。
【発明の詳細な説明】
【技術分野】
【0001】
車両のソフトウェアに関する。
【背景技術】
【0002】
近年、車両は、ますますオープンコンテキストに組み込まれている(すなわち、車両が1つまたは複数のインターフェースを有し、インターフェースを介して動作中にデータが受信および/または送信され、他方それらは車両の動作のために使用される)。さらに、車両のコンポーネント、特にそれらのソフトウェアの複雑さは増し続けている。また、車両のソフトウェアは、よりいっそう多様な形で動作中に更新される。
【0003】
その結果、車両のコンポーネントのソフトウェアの改竄の可能性がより多様になる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
現況技術のいくつかの方法では、改竄の検出およびとりわけ軽減(すなわち、規定の(安全な)状態が達成されるような修復)には、かなりの労力、したがって時間遅延が伴う。例えば、工場整備の枠組で、コンポーネント(例えば制御装置)の改竄されたソフトウェアをリセットし、したがって改竄を修復することができる。他の技法では、遠隔コンピュータシステムがソフトウェアを要求することができ、この技法により、コンポーネント(例えば制御装置)の改竄されたソフトウェアがリセットされ、したがって改竄が修復される。どちらの場合にも、改竄の検出と改竄の軽減との間にかなりの期間があり得る。状況によっては、この期間中に車両の動作が妨げられている(例えば、所定の安全基準がもはや満たされない)。いくつかの場合には、車両がもはや走行不能になる、またはその機能性が著しく損なわれていることがある。したがって、ソフトウェアの改竄を軽減するための改良された技法が望ましい。
【課題を解決するための手段】
【0005】
本開示の第1の全般的な態様は、コンピュータ実装方法に関する。この方法は、ソフトウェアの改竄を軽減するための中央デバイスにおいて、車両の車載ネットワークの複数のコンポーネントのうちの第1のコンポーネントのソフトウェアの改竄の可能性を認識するステップを含む。改竄を軽減するための中央デバイスは、車載ネットワークの一部であり、車載ネットワークの複数のコンポーネントの各々におけるソフトウェアの改竄を軽減するように設計されている。この方法は、改竄を軽減するための中央デバイスによって、第1のコンポーネントのソフトウェアの改竄を軽減するための対策を導入するステップと、第1のコンポーネントのソフトウェアの改竄を軽減するための対策を実施するステップとをさらに含む。改竄に対する対策は、第1のコンポーネントのセキュリティモジュールおよび/または第1のコンポーネントの不変モジュールを使用した第1のコンポーネントのソフトウェアのリセットを含む。
【0006】
本開示の第2の全般的な態様は、第1の全般的な態様による方法を実行するように設計されているシステムに関する。
本開示の第3の全般的な態様は、車両用の車載ネットワークに関する。車載ネットワークは、第1のコンポーネントを含む複数のコンポーネントと、ソフトウェアの改竄を軽減するための中央デバイスとを含む。車載ネットワークは、第1の全般的な態様による方法を実行するように設計されている。
【0007】
本開示の第4の全般的な態様は、第2の全般的な態様によるシステムを含むおよび/もしくはその一部である、ならびに/または第3の全般的な態様による車載ネットワークを含む車両に関する。
【0008】
本開示の第1から第4の全般的な態様の技法は、いくつかの場合には、以下の利点の1つまたは複数を有し得る。
まず、いくつかの状況では、コンポーネントの改竄されたソフトウェアを安全にリセットすることができる(例えば、改竄されていないソフトウェアコンポーネントによって置き換えることができる)ことが達成され得る。リセット時の第1のコンポーネントのセキュリティモジュールおよび/または不変モジュールの使用により、いくつかの場合には、侵入者が(さらに)リセットプロセスを侵害することができないことを保証することができる。これは、本開示の技法によって、いくつかの場合には、侵入者によってあまり簡単には(理想的には全く)侵害され得ないモジュールがリセットプロセスで採用されることによって達成される。この特性は、セキュリティモジュールと不変モジュールとの両方によって提供することができる。すなわち、セキュリティモジュール(例えば、ハードウェアセキュリティモジュール、HSM)は、第1のコンポーネントの他のモジュールと比べて追加のセキュリティ機器を備えることができ、したがって他のモジュールよりも改竄するのが困難であり得る。不変モジュールは、動作時にそのソフトウェアおよび/または機能性の変更を本質的に許可しないことができる。これによっても、このモジュールの改竄はより困難に、最良の場合には不可能になり得る。これらのモジュールは、リセットプロセスにおいて様々な様式で使用することができ、例えば、コンポーネントを、ソフトウェアのリセットを許可するリセットモードにすることができる。追加または代替として、これらのモジュールは、リセットのためのソフトウェアコンポーネントを受け取ることができる。いずれの場合にも、それぞれのプロセスを改竄から保護することができる。
【0009】
第2に(および第1の利点の結果として)、本開示の技法は、ソフトウェアの改竄を軽減するための中央デバイスの、いくつかの場合には安全な使用を可能にする。ソフトウェアの改竄を軽減するための中央デバイスを備えたシステムは、現況技術のいくつかの技法と比較して、より簡単にスケーリングすることができ、および/またはより古い車両(最新の規格に従って設計されていない車両)に使用することができる。例えば、改竄を軽減するための中央デバイスは、追加のコンポーネントを「監視」するために比較的容易に変更することができる。いくつかの場合には、このために、「監視」されるコンポーネントをほとんど、または全く変更する必要がなく、これにより、より古い車両での使用が容易になる。いくつかの場合には、改竄を軽減するための中央デバイス自体を、ソフトウェア更新によって後付けすることもできる。例えば、車両の既存のコンポーネント(例えば車両の中央通信インターフェースまたは車両の中央コンピュータ)に、ソフトウェアの更新によって、改竄を軽減するための中央デバイスの(追加の)機能を設けることができる。
【0010】
いくつかの用語は、本開示では以下のように使用される。
すなわち、本開示における(車載ネットワークの)「コンポーネント」は、命令を実行するための少なくとも1つのプロセッサと、少なくとも1つのソフトウェアコンポーネントを格納するためのメモリとを含む独自のハードウェアリソースを備える。「プロセッサ」という用語は、マルチコアプロセッサ、または電子デバイスの中央処理装置のタスクを引き受ける(および場合によってはタスクを共有する)複数の別個の構成部品も含む。コンポーネントは、独立してタスク(例えば、測定タスク、監視タスク、制御タスク、通信タスク、および/または他の作業タスク)を実行することができる。しかし、いくつかの例では、コンポーネントを別のコンポーネントによって制御することもできる。コンポーネントは、(例えば独自のハウジングを用いて)物理的に分離されていても、または上位システムに統合されていてもよい。コンポーネントは、車両の制御装置または通信機器であってもよい。コンポーネントは、埋め込みシステムであってもよい。コンポーネントは、1つまたは複数のマイクロコントローラを含んでもよい。
【0011】
「埋め込みシステム」は、技術的なコンテキストに組み込まれた(埋め込まれた)コンポーネントである。ここで、コンポーネントは、測定タスク、監視タスク、制御タスク、通信タスク、および/または他の作業タスクを引き受ける。
【0012】
「(専用)制御装置」は、車両の1つ(のみ)の機能を制御するコンポーネントである。制御装置は、例えば、エンジン制御、ブレーキシステムの制御、またはアシストシステムの制御を引き受けることができる。ここで、「機能」は、車両の様々なレベルで定義することができる(例えば、機能に関して、単一のセンサまたはアクチュエータを使用することができ、しかしまた、より大きな機能ユニットにまとめられている多数のアセンブリを使用することもできる)。
【0013】
「ソフトウェア」または「ソフトウェアコンポーネント」という用語は、基本的には、本開示のコンポーネント(例えば制御装置)のソフトウェアの各部分であり得る。特に、ソフトウェアコンポーネントは、本開示のコンポーネントのファームウェアコンポーネントであってもよい。ファームウェアは、(電子)コンポーネントに埋め込まれ、そこで基本的な機能を行うソフトウェアである。ファームウェアは、コンポーネントのそれぞれのハードウェアに、(一方が他方なしでは利用可能でないように)機能的に密接に接続される。ファームウェアは、フラッシュメモリまたはEEPROMなどの不揮発性メモリに記憶されていてもよい。
【0014】
「更新情報」または「ソフトウェア更新情報」という用語は、直接または対応する処理ステップ後に、本開示によるコンポーネントのソフトウェアコンポーネントを形成するすべてのデータを含む。更新情報は、実行可能コードまたはまだコンパイルされていないコード(対応するコンポーネントのメモリに格納されているコード)を含んでもよい。
【0015】
「改竄」という用語は、本開示では、車両のコンポーネントのソフトウェアの各変更を含む。この変更は、攻撃(すなわちサードパーティの意図的な影響力行使)の結果であり得るが、無作為のまたは意図しない影響の結果でもあり得る。
【0016】
「車両」という用語は、乗員および/または貨物を輸送するどの装置も含む。車両は、自動車(例えば乗用車またはトラック)であってもよく、しかしまた鉄道車両であってもよい。しかし、浮遊装置および飛行装置も車両であり得る。車両は、少なくとも一部自律動作するものであっても、または補助されるものであってもよい。
【0017】
「車載ネットワーク」は、車両のコンポーネントがそれを介して通信する車両の各内部ネットワークであり得る。いくつかの例では、車載ネットワークは、近距離ネットワークである。車載ネットワークは、1つまたは複数の近距離通信プロトコル(例えば、2つ以上の近距離通信プロトコル)を使用することができる。近距離通信プロトコルは、無線または有線通信プロトコルであってもよい。近距離通信プロトコルは、バスプロトコル(例えば、CAN、LIN、MOST、FlexRay、またはイーサネット)を含んでもよい。近距離通信プロトコルは、Bluetooth(登録商標)プロトコル(例えば、Bluetooth5もしくはそれ以降)またはWLANプロトコル(例えば、IEEE802.11ファミリーのプロトコル、例えば802.11hもしくはそれ以降のプロトコル)を含んでもよい。車載ネットワークは、車両の外部のシステムと通信するためのインターフェースを含んでもよく、したがって他のネットワークに組み込むこともできる。しかし、車両の外部のシステムおよび他のネットワークは、車載ネットワークの一部ではない。
【0018】
「・・・の可能性の認識」という表現は、ソフトウェアの改竄があり得る状態を認識するために、特定のイベント(例えば信号、または信号の不在)が所定の規則に従って解釈されることを意味する。
【図面の簡単な説明】
【0019】
【
図2】本開示の技法を使用することができる車両の車載ネットワークのコンポーネントを示す図である。
【
図3】車載ネットワークの例示的なコンポーネントを示す図である。
【
図4】本開示の例示的な方法のフローチャートを示す図である。
【
図5】第1のコンポーネントが改竄された、
図2による車載ネットワークを示す図である。
【
図6】第1のコンポーネントの改竄が修復された、
図2による車載ネットワークを示す図である。
【発明を実施するための形態】
【0020】
まず、
図1~
図3を参照して、本開示の技法を実施することができる車両およびコンポーネント、ならびに本開示の技法の基本的な態様を論じる。
図4を参照して、本開示の技法の例を論じる。
図5および
図6に基づいて、ソフトウェアの改竄を軽減するための中央デバイスのさらなる態様を説明する。
【0021】
図1は、本開示の技法を示すフローチャートである。
図2は、本開示の技法が使用され得る車両の車載ネットワークのコンポーネントを示す。
図3は、車載ネットワークの例示的なコンポーネントを示す。
【0022】
図1では、中央の列に、ソフトウェアの改竄を軽減するための中央デバイスによって実施されるステップが示されている。右の列には、(ソフトウェアの改竄を軽減するための中央デバイスを除く)車載ネットワークの特定のコンポーネント(またはコンポーネントのグループ)によって実行されるステップが示されている。左の列には、遠隔システムによって(すなわち車両の外部で)実施されるステップが示されている。
【0023】
本開示の技法は、車両20の車載ネットワークの複数のコンポーネントのうちの第1のコンポーネント27cのソフトウェアの改竄の可能性を認識するステップ101を含む。
図2に、車両20が概略的に示されている。車両には、車両20の複数のコンポーネント21~24、25、27a~fを接続する車載ネットワークが装備されている(車載ネットワークは、上述したように構成することができる)。
【0024】
車両20は、ソフトウェアの改竄を軽減するための中央デバイス25を有し、この中央デバイス25は、改竄の可能性を認識する。したがって、これは車載ネットワークの一部である(すなわち、車両の一部でもあり、車両と共に移動される)。ソフトウェアの改竄を軽減するための中央デバイス25は、車載ネットワークの複数のコンポーネント21~24、27a~fの各々におけるソフトウェアの改竄を軽減するように設計されている。
【0025】
いくつかの例では、ソフトウェアの改竄を軽減するための中央デバイス25は、車両20の中央通信インターフェースに統合されている。中央通信インターフェースは、車両20内部での通信および/または通信インターフェース21、22を介する外界との通信のためのデータ分配器として機能するように設計されていてもよい。ここで、中央通信インターフェースは、(車載ネットワークでの通信または外部システムとの通信のための)異なる通信プロトコルをサポートする、および/またはセキュリティ機能を実装することができる。他の例では、ソフトウェアの改竄を軽減するための中央デバイスは、他のコンポーネントに統合されても(さらなる例は以下に続く)、またはスタンドアロンコンポーネントとして設計されていてもよい。
【0026】
認識は、いくつかの例では、車両20の車載ネットワークの複数のコンポーネントのうちの第1のコンポーネントのソフトウェアの改竄を表示する信号の受信を含み得る。信号は、ソフトウェアの改竄を軽減するための中央デバイス25自体、および/または別のデバイスにおいて生成することができる。
【0027】
追加または代替として、認識は、(予想される)信号(例えば、第1のコンポーネント、または第1のコンポーネントを監視するコンポーネントからの信号)の不在の認識を含んでもよい。車載ネットワークは、複数のコンポーネント21~24、25、27a~fまたは他のコンポーネントが、複数のコンポーネント21~24、25、27a~fのそれぞれのコンポーネントのソフトウェアの改竄がないことを表示する信号を(例えば定期的に、またはコンポーネントの起動などの特定のイベントの発生時に)送信するように設計されていてもよい。
【0028】
さらに追加または代替として、認識は、第1のコンポーネントのソフトウェアの改竄の可能性を認識するために、車載ネットワークの他のステータス情報の処理を含んでもよい。
【0029】
車両20の車載ネットワークの複数のコンポーネントのうちの第1のコンポーネントのソフトウェアの改竄の可能性の認識(例えば、信号の受信または信号の不在の認識)に応答して、ソフトウェアの改竄を軽減するための中央デバイス25は、第1のコンポーネントの改竄を軽減するための対策を導入する103。次いで、第1のコンポーネントの改竄を軽減するための対策が実施される123。
【0030】
改竄に対する対策は、改竄の可能性が認識された第1のコンポーネント27cのソフトウェアのリセットを含む。第1のコンポーネント27cのソフトウェアのリセットは、第1のコンポーネント27cのセキュリティモジュールおよび/または第1のコンポーネント27cの不変モジュールを使用して実施される。セキュリティモジュールおよび不変モジュールについては、
図3を参照して以下にさらにより詳細に論じる。いくつかの例では、リセットのために、セキュリティモジュールのみまたは不変モジュールのみを使用することができる。他の例では、リセットのために、セキュリティモジュールと不変モジュールとの両方を使用することができる(いくつかの例では、セキュリティモジュールは不変モジュールでもあり得る)。導入は、セキュリティモジュールまたは不変モジュールへの、ソフトウェアの改竄を軽減するための中央デバイス25のメッセージおよび/または命令を含んでもよい。メッセージおよび/または命令の受信後、セキュリティモジュールまたは不変モジュールは、対応するステップを実施することができる。代替として、導入は、ソフトウェアの改竄を軽減するための中央デバイス25によるメッセージ(例えば、改竄の可能性が検出されない限り、ソフトウェアの改竄を軽減するための中央デバイス25から定期的に送信されるタイプのメッセージ)の送信の中止を含んでもよい。
【0031】
リセットは複数のステップを含むことができ、それらのステップのうちの1つまたは複数は、セキュリティモジュールおよび/または不変モジュールを使用して実行される。それぞれのモジュールの使用は、リセット、またはリセットのステップの1つを調整する1つまたは複数の手段を含んでもよい(例えば、リセットの1つまたは複数のステップを実効するための、第1のコンポーネントの他のモジュールへ命令を送信するステップ)。代替または追加として、使用は、リセットの枠組でのデータの送信および/または受信を含んでもよい。
【0032】
いくつかの例では、ソフトウェアのリセットは、第1のコンポーネントのプロセッサを再起動するステップ115を含み得る(プロセッサは、コンポーネントの中央処理装置である)。いくつかの例では、再起動するステップ115は、プロセッサのシャットダウンおよびその後の起動を含んでもよい。追加または代替として、再起動するステップは、(例えばプロセッサの電源電圧の中断および再印加による)プロセッサの電源オフおよびその後の電源オンを含んでもよい。但し他の例では、再起動するステップは、特定の構成へのプロセッサのリセット、および/またはプロセッサの特定の部分(例えばそのレジスタ)のリセットを含むこともできる。いくつかの例では、再起動後、コンポーネントのプログラムを改めて最初から始めることができる。
【0033】
再起動は、様々な様式で開始され得る。
いくつかの例では、再起動するステップは、セキュリティモジュールによって開始されてもよい。例えば、セキュリティモジュールは、第1のコンポーネント27cのプロセッサの再起動を強制することができる。セキュリティモジュールは、このために特別に設計することができる。いくつかの例では、セキュリティモジュールは、(他の状況で再起動を開始するために)既にこの機能性を備えていることがある。
【0034】
代替または追加として、第1のコンポーネント27cのプロセッサを再起動するステップは、車両20の電源ユニットによって開始されてもよい。いくつかの例では、電源ユニットは、車載ネットワークの複数のコンポーネント27a~f(またはそれらのコンポーネントからのグループ)に選択的にエネルギーを供給するように設計されていることもある。電源ユニットは、例えば、車載ネットワークの複数のコンポーネント27a~f(またはそれらのコンポーネントからのグループ)を選択的にオンまたはオフに切り替えることができる。
【0035】
さらに代替または追加として、第1のコンポーネント27cのプロセッサを再起動するステップは、車両の中央作動機能(例えば、車両20の点火または他の中央作動機能)の作動によって開始されてもよい。
【0036】
上述したすべての場合において、再起動は、改竄によって損なわれている可能性のある第1のコンポーネント27cの部分が使用されることなく開始され得る。これにより、侵入者がリセットプロセスを妨害する可能性を減らすことができる。
【0037】
いくつかの例では、リセットは、第1のコンポーネント27cのセキュリティモジュールおよび/または第1のコンポーネント27cの不変モジュールによって、(例えば再起動するステップ115後または再起動するステップ115中に)第1のコンポーネント27cをリセットモードにするステップ117を含む。リセットモードは、その後のソフトウェアのリセットを可能にすることができる。リセットモードは、例えば第1のコンポーネント27cのプログラミングモードであってもよく、このプログラミングモードでは、第1のコンポーネント27cのソフトウェアを変更することができる(これは動作モードでは可能でない)。
【0038】
いくつかの例では、リセットは、(例えば第1のコンポーネント27cをリセットモードにした後に)第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントを受信するステップ119、および受信されたソフトウェアコンポーネントを第1のコンポーネント27cのメモリに格納するステップを含む。これにより、改竄されたソフトウェアコンポーネントを置き換える(および改竄を修復する)ことができる。改竄されたソフトウェアコンポーネントは、第1のコンポーネントのソフトウェアの一部であってもよい。代替または追加として、受信されたソフトウェアコンポーネントは、第1のコンポーネント27cのソフトウェアをリセットするための構成情報を含んでもよい。構成情報を用いて、第1のコンポーネント27cのソフトウェアの構成を変更することができる。ソフトウェアをリセットするためのソフトウェアコンポーネントは、改竄を軽減するための中央デバイス25から(例えば、以下にさらに述べる技法によって)送信され得る121。
【0039】
以下にさらに述べるように、いくつかの例では、第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントが、例えば複数のコンポーネントに関するソフトウェア更新情報を含むソフトウェアバンドルまたはソフトウェアコンテナ31の一部として、車両に記憶されていてもよい(例えば、改竄を軽減するための中央デバイス25の永続的メモリ41に記憶される)。これらの例では(しかしまた一般的に)、第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントを、リセット前に検証することができる。これは、様々な様式で行うことができる(それらの様式は組み合わせることもできる)。いくつかの例では、第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントを認証することができる。例えば、第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントに、1つまたは複数の参照認証要素を割り当てていてもよい(1つまたは複数の参照認証要素は、場合により、車両の他のコンポーネントのソフトウェアをリセットするための他のソフトウェアコンポーネントに関する対応する参照認証要素と共にリストに記憶されていてもよく、例えば第1のコンポーネント27cまたは車両の別のメモリに記憶されていてもよい)。いくつかの例では、1つまたは複数の参照認証要素は、第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネント、例えばソフトウェアバンドルまたはソフトウェアコンテナ31の受信時に、車両において特定される(および例えばリストに格納される)。次いで、これらの参照認証要素は、ソフトウェアコンポーネントを検証するための後続の比較のために利用される。第1のコンポーネント27c(または別のソフトウェアコンポーネント)のソフトウェアをリセットするためのソフトウェアコンポーネントを検証するために、リセット前に、対応する参照認証要素を、車両に記憶されている第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントに関して決定される認証要素と比較することができる。比較に基づいて、車両に記憶されている第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントが認証される(例えば、参照認証要素が、決定された認証要素と一致する)とき、第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントを使用することができる。比較に基づいて、車両に記憶されている第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントが認証されない(例えば、参照認証要素が、決定された認証要素と一致しない)とき、リセットプロセスを中断することができる。参照認証要素(したがって、対応する決定された認証要素)は、様々な様式で構成されていてもよい。いくつかの例では、(参照)認証要素は、ハッシュ値であり得る(その際、第1のコンポーネント27cのソフトウェアをリセットするための真正なソフトウェアコンポーネントに関するハッシュ値が決定され、参照認証要素として車両に記憶される)。他の例では、(参照)認証要素はデジタル署名であり得る(その際、第1のコンポーネント27cのソフトウェアをリセットするための真正なソフトウェアコンポーネントに関するデジタル署名が受信され、参照認証要素として車両に記憶される)。さらに他の例では、参照認証要素は、MAC要素(「メッセージ認証コード」)であり得る(その際、第1のコンポーネント27cのソフトウェアをリセットするための真正なソフトウェアコンポーネントに関するMAC要素が受信され、参照認証要素として車両に記憶される)。第1のコンポーネント27cのソフトウェアをリセットするためのソフトウェアコンポーネントの検証は、いくつかの状況では、受信後に車両内で侵入者によって改竄された、車両に格納されているソフトウェアコンポーネントが、第1のコンポーネント27cをリセットするために使用されることを防止することができる。検証がなければ、ソフトウェアのリセットに使用されるソフトウェアコンポーネントが車両内に保持される場合(例えば、より長期間、例えば1日よりも長い期間)、この(これらの)保持されているソフトウェアコンポーネントは、車両内でローカルで改竄され、その後、コンポーネントのリセットに使用される可能性があるであろう。
【0040】
いくつかの例では、ソフトウェアをリセットするためのソフトウェアコンポーネントを受信するステップと、受信されたソフトウェアコンポーネントを格納するステップとが、セキュリティモジュールによって実行され得る。代替または追加として、ソフトウェアをリセットするためのソフトウェアコンポーネントを受信するステップと、受信されたソフトウェアコンポーネントを格納するステップとが、不変モジュールによって実行され得る。上述したように、いくつかの例では、ソフトウェアコンポーネントはファームウェアコンポーネントであってもよい。他方、どちらの場合にも、改竄によって損なわれている可能性のある第1のコンポーネント27cの部分は用いられない。どちらの場合にも、これにより、侵入者が、ソフトウェアをリセットするプロセスを妨害する、および/または他方で改竄されたソフトウェアを忍び込ませることをより困難にすることができる。
【0041】
ここで、
図3を参照して、第1のコンポーネント27cの態様をさらに説明する(本開示の他のコンポーネントも、記載する構造を同様に有することができる)。第1のコンポーネント27cは、メモリ91を備える。例えば、メモリ91は、不揮発性メモリ(例えばEPROMメモリまたはフラッシュメモリ)であってもよい。メモリ91は、(例えば上述したようにリセットの枠組で)第1のコンポーネント27cのための(例えば、第1のコンポーネント27cを制御するための)少なくとも1つのソフトウェアコンポーネントを格納するように設計されていてもよい。メモリ91は、第1のコンポーネント27cのプログラムメモリであってもよい。メモリ91は、第1のコンポーネント27cの全メモリの一部のみを含んでもよい。代替または追加として、複数のハードウェアモジュールおよび/または論理セグメントにわたってメモリ91を分散させていてもよい。
【0042】
第1のコンポーネント27cは、セキュリティモジュール93を有し得る。セキュリティモジュール93は、そのハードウェアおよび/またはソフトウェアに関して、第1のコンポーネント27cの残りのモジュールとは分かれていてもよい(例えば、別個の物理モジュールまたはスタンドアロン周辺モジュールであってもよい)。セキュリティモジュールは、1つまたは複数の専用プロセッサ(例えば、少なくとも1つの暗号化アクセラレータ)を含んでもよい。他の例では、セキュリティモジュール93は、マルチコアプロセッサの1つまたは複数のコア、またはより上位のコンポーネントの他の要素(セキュリティモジュールに静的または動的に割り当てられた要素であり、例えば、セキュリティモジュールのためのマルチコアプロセッサの1つまたは複数のコアを構成することができる)を含んでもよい。またこの場合、セキュリティモジュール(例えばマルチコアプロセッサの1つまたは複数のコア)は、他の要素から分離されている(例えば回路が物理的に分離されている)。セキュリティモジュール93は、いくつかの例では、ソフトウェアの改竄を軽減するための中央デバイス25との通信を暗号により保護するために1つまたは複数の暗号機能(例えばさらに上で述べた暗号機能)を実行するように設計されていてもよい。いくつかの例では、上述したように、セキュリティモジュール93は、第1のコンポーネント27cのリセットプロセスで使用することができる。追加または代替として、第1のコンポーネント27cのセキュリティモジュール93は、改竄の可能性を検出するように設計されていても(例えば、以下にさらに述べる検出デバイス81aを含んでも)よい。
【0043】
いくつかの例では、セキュリティモジュール93は、ハードウェアセキュリティモジュール(英語のHardware Security Module-HSM)である。
図3の例では、セキュリティモジュール93は、コンポーネント27cの内部セキュリティモジュールである。他の例では、セキュリティモジュールは、コンポーネント27cのための外部セキュリティモジュールであってもよい(例えば、車両20の別のコンポーネント、例えばソフトウェアの改竄を軽減するための中央デバイス25に含まれる外部セキュリティモジュール)。
【0044】
第1のコンポーネントは、それに加えて、不変モジュール99を含み得る。上述したように、不変モジュール99(またはそのソフトウェアおよび/または機能性)は、第1のコンポーネント27cの通常動作中には変更可能でないようにできる。いくつかの例では、不変モジュール99は、第1のコンポーネントを起動するための(最小の)プログラムを実行するように構成されたブートローダを含む。いくつかの例では、不変モジュール99は、読み取り専用メモリまたは書き込み禁止のメモリを有する。いくつかの例では、上述したように、不変モジュール99は、第1のコンポーネント27cのリセットプロセスにおいて使用することができる。
【0045】
コンポーネント27cは、それに加えて、命令を実行するためのプロセッサ94を含む。上述したように、「プロセッサ」という用語は、マルチコアプロセッサ、またはコンポーネントの中央処理装置のタスクを引き受ける(および場合によってはタスクを共有する)複数の別個の構成部品も含む。いくつかの例では、コンポーネント27cは、車載ネットワークの伝送路96を介して通信するように設計されている1つまたは複数のインターフェース95を含んでもよい。
図3で見られるように、プロセッサ94、セキュリティモジュール93、またはそれら両方は、車載ネットワークの伝送路96を介して通信するために、1つまたは複数のインターフェース95に直接アクセスすることができる。伝送路は、バスシステムの伝送路(例えば、CAN、LIN、MOST、FlexRay、またはイーサネット)であってもよい。1つまたは複数のインターフェース95へのセキュリティモジュール93の直接アクセスは、セキュリティモジュールがリセットプロセスのためのソフトウェアコンポーネントを(安全に)受信することを可能にすることができる(第1のコンポーネントの損なわれている可能性があるモジュールがそれに関与することなしに)。
【0046】
図4に基づき、続いて、本開示の方法の例示的なフローを論じる。
図4には、各列に、特定のコンポーネント(もしくはそのモジュールの1つ)またはシステムのアクションが示されている。列間の矢印は、それぞれのユニット間の通信を表す。一番左には、特定のコンポーネント(本開示の第1のコンポーネント27c)が示されている(例えば、車両20の埋め込みシステム、例えば制御ユニット)。コンポーネント27cは、2つのモジュール、(例えばプロセッサ94を含んでもよい)メインユニット403とセキュリティモジュール93とを有してもよい。メインユニット403は、車両内のコンポーネントの機能性(例えば、測定タスク、監視タスク、制御タスク、通信タスク、および/または他の作業タスク)を提供するように設計されていてもよい。中央の列には、車載ネットワークの他のコンポーネント402の1つが示されている。一番右には、ソフトウェアの改竄を軽減するための中央デバイス25の動作が示されている。
【0047】
ここで、特定の時点で、
図4に示されるように、第1のコンポーネント27c(またはメインユニット403)のソフトウェアの改竄410が行われることがある。改竄は、第1のコンポーネント27cのセキュリティモジュール93によって検出され得る404。次いで、セキュリティモジュール93は、第1のコンポーネントのソフトウェアのリセットを調整することができる。例えば、メインユニット403(例えばプロセッサ)が再起動され得る405。代替または追加として、セキュリティモジュール93は、メインユニット403をリセットモードにすることができ、リセットモードでは改竄されたソフトウェアをリセットすることができる(例えば再プログラミングモード)。第1のコンポーネント27cがリセットモードにされたという確認422を、セキュリティモジュール93からソフトウェアの改竄を軽減するための中央デバイス25に送信することができる。
【0048】
いくつかの例では、(例えばソフトウェアの改竄を軽減するための中央デバイス25から)セキュリティモジュール93によって受信される信号によって、第1のコンポーネント27cのソフトウェアのリセットをトリガするための信号をトリガすることができる。代替または追加として、セキュリティモジュール93は、(例えばソフトウェアの改竄を軽減するための中央デバイス25から)普通であれば定期的に受信される信号411の予定の時点での不在を、第1のコンポーネント27cのソフトウェアをリセットするためのトリガ条件として使用することができる。
【0049】
それに加えて、ソフトウェアの改竄を軽減するための中央デバイス25に対し、改竄が検出されたことを通信することができる。
図4の例では、これは、普通であれば(定期的に)第1のコンポーネント27cから送信される信号411が予定の時点で送信されないことによって行われる。ソフトウェアの改竄を軽減するための中央デバイス25は、信号の不在、したがって第1のコンポーネント27cのソフトウェアの改竄の可能性を認識することができる412。続いて、ソフトウェアの改竄を軽減するための中央デバイス25は、別のコンポーネント402への機能性の移行を調整することができる。例えば、機能性の受渡し命令413を別のコンポーネント402に送信することができる。その後、別のコンポーネントが機能性を提供する(および場合により、ソフトウェアの改竄を軽減するための中央デバイス25に確認414を送信する)ことができる。
【0050】
図4には、第1のコンポーネント27cの機能性の変更が、時間的に別のコンポーネント402への機能性の移行後に終了されることが示されている。他の例では、両方のアクションを逆の順序で、または同時に(例えば1秒以内に)実施することができる。
【0051】
ここで、改竄は、第1のコンポーネント27cのソフトウェアをリセットすることによって修復することができる。
図4の例では、この目的で、ソフトウェアの改竄を軽減するための中央デバイス25からメインユニット403にソフトウェアコンポーネントが送信される416。他の例では、上述したように、セキュリティモジュール93は、ソフトウェアコンポーネントを受信することができる。
【0052】
以下のセクションでは、ソフトウェアの改竄を軽減するための中央デバイス25の態様を説明する。
図2の例に、ソフトウェアの改竄を軽減するための中央デバイス25が示されている。いくつかの場合には、車両は、複数のコンポーネント21~24、27a~f(例えば、ソフトウェアの改竄を修復することができる車両のすべてのコンポーネント、またはこれらのコンポーネントのサブセット)の改竄を軽減するように設計されたソフトウェアの改竄を軽減するための中央デバイス25を1つのみ含んでもよい。他の例では、車両は、ソフトウェアの改竄を軽減するための中央デバイスを複数備えることができ、それらは、車載ネットワークの一部であり、それぞれが車載ネットワークの複数のコンポーネントに割り当てられている(すなわち、割り当てられたコンポーネントのソフトウェアでの改竄を修復することができる)。しかし、どちらの場合にも、ソフトウェアの改竄を軽減するための中央デバイスは、割り当てられたコンポーネントから分離されている。ソフトウェアの改竄を軽減するための中央デバイス25は、いくつかの場合には、それ自体のソフトウェア、および/またはソフトウェアの改竄を軽減するための中央デバイス25が統合されているコンポーネントのソフトウェアの改竄を軽減するためにも設計されていてもよい。
【0053】
図2の例では、本開示の技法を用いてそれらのソフトウェアの改竄を修復することができる複数のコンポーネントが、複数の制御装置27a~fを含む。既に述べたように、本開示の技法は、制御装置に限定されず、基本的には、車両20の車載ネットワークの各コンポーネントに使用可能である。しかし、車両内の制御装置27a~fは、基本的には限られたハードウェアリソースおよび/または機能性しか備えていないので、本開示の技法は、いくつかの場合には制御装置にとって特に有利であり得る。
【0054】
図2で、制御装置27a~fは、いくつかのドメイン26a~nに分割されている。ドメインは、車両20の機能ドメインおよび/またはローカルドメインであり得る。機能ドメインは、車両の特定の機能(例えば、エンジン制御、パワートレイン制御、インフォテインメント、空気調和など)の提供に関与する車両の様々なコンポーネントを含んでもよい。ローカルドメインは、車両の特定の領域(例えば「右後部」、「左前部」、「内部前側」など)に物理的に配置された車両の様々なコンポーネントを含んでもよい。
【0055】
他方でドメイン26a~nは、それぞれのドメイン26a~nのための中央通信ノードとして機能する、および/またはそれぞれのドメイン26a~nのための制御機能を引き受けるコンポーネント27a、27dを含んでもよい。いくつかの例では、ソフトウェアの改竄を軽減するための中央デバイスは、それぞれのドメイン26a~nのための中央通信ノードとして機能する、および/またはそれぞれのドメイン26a~nのための制御機能を引き受けるコンポーネント27a、27dの一部であってもよい。このソフトウェアの改竄を軽減するための中央デバイスは、さらなるソフトウェアの改竄を軽減するための中央デバイス(例えば、車載ネットワークの中央通信インターフェースの一部としてのソフトウェアの改竄を軽減するための中央デバイス)に加えて、または唯一のソフトウェアの改竄を軽減するための中央デバイスとして提供されていてもよい(さらに上の説明を参照)。さらに代替または追加として、ソフトウェアの改竄を軽減するための中央デバイスは、車両の中央制御ユニット23の一部として設計されていてもよい。さらに代替または追加として、ソフトウェアの改竄を軽減するための中央デバイスは、車両20のインフォテインメントシステム(
図2には図示せず)のヘッドユニット(英語ではHead Unit)の一部として配置されていてもよい。さらに代替または追加として、ソフトウェアの改竄を軽減するための中央デバイスは、車載ネットワークの中央コンピュータ(「車両コンピュータ」)の一部として配置されていてもよい(車載ネットワークは、複数の中央コンピュータである「車両コンピュータ」を含んでもよい)。中央コンピュータ(「車両コンピュータ」)は、車載ネットワークの専用制御装置よりも(かなり)高性能であり、(状況によっては上記のドメインのいくつかでの)複数の制御装置のタスクを引き受けることができる。
【0056】
車両20は、中央永続的メモリ41(すなわち、その情報を車両に永続的に、例えば1日よりも長く、もしくは1週間よりも長く記憶する、および/または車両のアイドリング状態中に記憶するメモリ)をさらに含んでもよい。いくつかの例では、永続的メモリ41はフラッシュメモリを含んでもよい。
図2の例では、永続的メモリ41は、車両20の中央通信インターフェースに配置されている、またはこの中央通信インターフェースに直接接続されている。上述したように、車両20の中央通信インターフェースに、ソフトウェアの改竄を軽減するための中央デバイス25を同様に配置していてもよい。ソフトウェアの改竄を軽減するための中央デバイスが(追加または代替として)別のコンポーネントに配置されているときも、追加または代替として永続的メモリを同じコンポーネントに配置していてもよい。このようにして、永続的メモリに格納されたデータを、ソフトウェアの改竄を軽減するための中央デバイスによって、改竄の軽減のために使用することができる。しかし、他の例では、ソフトウェアの改竄を軽減するための中央デバイスと永続的メモリとを、車載ネットワークの異なるコンポーネントに配置していてもよい(およびソフトウェアの改竄を軽減するための中央デバイスは、ネットワークを介して永続的メモリにアクセスできる)。
【0057】
永続的メモリ41は、複数のコンポーネント27a~fの各々のためのソフトウェアコンポーネント42a、42c~nを同時に記憶するように設計されていてもよい。このために、永続的メモリ41は、256MBを超える(好ましくは5GBを超える)メモリ容量を有するように設計されていてもよい。
【0058】
改竄に対する対策は、上述したように、そのソフトウェアの改竄が認識されたコンポーネント(本開示では「第1のコンポーネント」とも呼ぶ)のソフトウェアのリセットを含む。これは、中央永続的メモリ41に記憶されている、それぞれのコンポーネントのためのソフトウェアコンポーネント42a、42c~nを使用して行うことができる。この対策のさらなる態様は、
図5および
図6を参照して以下にさらに論じる。
【0059】
いくつかの例では、中央永続的メモリ41に含まれるソフトウェアコンポーネント42a、42c~nは、複数のコンポーネント27a~nの各々に関するソフトウェア更新情報32a、32c~nに基づくことができる(例えば、それらからソフトウェア更新情報32a、32c~nとして生成される、またはこれらに対応する)。
【0060】
ソフトウェア更新情報32a、32c~nは、車両20のインターフェース21を介して受信することができる。インターフェース21は、無線インターフェース(
図2に図示するように)であってもよいが、他の例ではまた有線インターフェース(
図2には図示しない)であってもよい。車両は、インターフェース21を介して遠隔システム30からソフトウェア更新情報32a、32c~nを受信するように設計されていてもよい。
図1に示されるように、遠隔システム30は、対応する車両に関するソフトウェア更新情報32a、32c~nを選択し107、インターフェース21を介して車両20に送信する109ことができる。遠隔システム30は、ソフトウェア更新情報32a、32c~nを提供するのに適した任意の各システム(例えばクラウドストレージおよび/または分散システム)であってもよい。遠隔システム30は、ソフトウェア更新情報32a、32c~nの提供に加えて、車両の動作時にさらなる機能(例えば車両に対する監視および/または制御機能)を引き受けることができる。
【0061】
いくつかの例では、複数のコンポーネント(例えば制御装置27a、c~n)に関するソフトウェア更新情報32a、32c~nは、ソフトウェアバンドルまたはソフトウェアコンテナ31に含まれる(すなわち、ソフトウェア更新情報は、バンドルで提供される)。ソフトウェアバンドルまたはソフトウェアコンテナ31(多くの場合、かなりのサイズである)は、特定の時点で車両20に伝送される。上述したように、車両20において、伝送されたソフトウェア更新情報32a、32c~nは、複数のコンポーネント27a~fのソフトウェアを更新するために使用される。このために、遠隔システム30から得られたソフトウェア更新情報32a、32c~nに、1つまたは複数の準備ステップ(例えば、展開、署名の検証など)を施すことができる。
【0062】
追加または代替として、(例えばソフトウェアバンドルまたはソフトウェアコンテナでの)ソフトウェア更新情報32a、32c~nは、有線インターフェース22を介して受信することもできる。
【0063】
ソフトウェア更新情報32a、32c~nは、場合によってはあり得る準備ステップの前または後に、複数のコンポーネント27a、c~nのためのソフトウェアコンポーネント42a、42c~nとして、(例えばコンポーネント27a、c~nのソフトウェアを更新するために使用される前に)永続的メモリ41に格納することができる。このとき、格納されている、複数のコンポーネント27a、c~nのためのソフトウェアコンポーネント42a、42c~nを、ソフトウェアの改竄を軽減するための中央デバイス25が、複数のコンポーネント27a、c~nでの改竄を軽減するために利用可能である。この軽減は、複数のコンポーネント27a、c~nの各々のソフトウェアの更新の終了後(例えば、さらなるソフトウェア更新情報32a、32c~nの受信までの期間)に行われ得る。
【0064】
このようにして、本開示の技法は、いくつかの例では、例えば車両20のソフトウェアの更新プロセスで使用される永続的メモリ41など、車両に既にあるコンポーネントを取り扱うことができる。いくつかの場合には、これは、コンポーネントのかなりの節約につながる可能性がある(上述したように、ソフトウェア更新情報32a、32c~nのソフトウェアバンドルまたはソフトウェアコンテナ31を格納するために必要なメモリは、かなりの程度を占めることがある)。それに加えて、または代替として、個々のコンポーネントに追加のリソース(例えばメモリ)を備えることを避けることができ、これにより、同様に複雑さを低減し、したがってエラーの発生しやすさおよび/またはコストを低減することができる。さらに追加または代替として、永続的メモリ41の情報は、多くの状況で、迅速に、車両の通信チャネルの利用可能性とは無関係に利用可能である。これは、改竄の軽減方法の反応時間を向上させることができる。
【0065】
本開示の技法では、軽減に対する対策は、実質的に車両20の外部のシステム(例えば遠隔システム30)の補助なしに実施することができる。例えば、対策は、車両20の外部のシステムとの通信を必要とせずに、ソフトウェアの改竄を軽減するための中央デバイス25によって導入することができる(このプロセス中、車両20は、他の目的のために車両20の外部のシステムと十分に通信することができる)。追加または代替として、ソフトウェアの改竄を軽減するための中央デバイス25(または車載ネットワークの別のコンポーネント)は、車両20の外部のシステムとの通信を必要とせずに対策を実施することができる。
【0066】
いくつかの例では、本開示の技法は、車両に関するコンテキスト情報に基づいて、複数の対策の中から対策を選択することを含んでもよい。コンテキスト情報は、車両20の動作状態に関する情報および/または車両20の動作のための所定の規則に関する情報を含んでもよい。
【0067】
動作状態は、車両の走行状態(例えば、高速走行、低速走行、特定の走行操作の実施など)であってもよいが、また車両が走行していない間の動作状態であってもよい。代替または追加として、車両20に関するコンテキスト情報は、周囲情報および/または車両のコンポーネントのステータス情報を含んでもよい。
【0068】
車両20の動作のための規則は、所定の安全基準を含んでもよい(他方これらは、車両20の動作状態に依存することができ、例えば特定のコンポーネントに関する対策がいつ、どの依存関係で導入されてよいかを決定する)。
【0069】
コンテキスト情報は、対策の選択において使用するために、ソフトウェアの改竄を軽減するための中央デバイス25のメモリ(例えば中央永続的メモリ41)に少なくとも一部(特に、車両20の動作のための所定の規則に関する情報を含むコンテキスト情報の一部)を格納していてもよい。コンテキスト情報は、いくつかの例では、車両20の外部から更新することができる(例えば、ソフトウェアの改竄を軽減するための中央デバイス25のための、またはソフトウェアの改竄を軽減するための中央デバイス25が配置されているコンポーネントのソフトウェア更新情報32bの一部として)。
【0070】
いくつかの例では、コンポーネント27a、c~nのソフトウェアの特定の改竄を軽減するために、様々な対策を利用することができる(取り得る対策については、以下にさらに詳述)。ここで、コンテキスト情報を利用して、利用可能な対策の1つを選択することができる。いくつかの例では、複数の利用可能な対策の中から、コンポーネントの目標状態を最も広範囲に復元することを可能にする(すなわち改竄を最も広範囲に修復する)ものを選択することができる。他方で、いくつかの状況では、コンテキスト情報に含まれる規則に基づいて、(例えば特定のセキュリティ基準に違反するであろうときに)利用可能な対策を除外することができる。
【0071】
例えば、第1の対策は、第2の対策よりも広範囲な改竄の軽減を可能にし得るが、他方で、車両のコンポーネントへのより深刻な介入(したがって、軽減プロセス自体によって引き起こされ得る妨害に関するより大きなリスク)を生じ得る。第2の対策は、第1の対策と比較してそれほど広範囲でない改竄の軽減を可能にし得るが、他方で、また車両のコンポーネントへのそれほど深刻でない介入を生じ得る。この場合、第1のコンテキスト(コンテキスト情報によって表される)において第1の対策を選択することができ、第2のコンテキスト(コンテキスト情報によって表される)において第2の対策を選択することができる。例示的な例では、第1のコンテキストは、車両が高速で走行するコンテキストであってもよく、第2のコンテキストは、車両が静止しているコンテキストであってもよい。他の場合には、コンテキスト情報はセキュリティ基準を含むことができ、そのセキュリティ基準の遵守により、第1の状況では第1の対策の実施が禁止されるが、第2の状況では許可される。
【0072】
いくつかの例では、対策は、(例えば、受信されたソフトウェア更新情報に基づいて生成された)中央永続的メモリ41に記憶されているソフトウェアコンポーネント42a、c~nを使用して、改竄が認識されたコンポーネント27a、c~fに関して、第1のコンポーネント27a、c~fのソフトウェアを即時に(例えば、5分以内または1分以内に)リセットするステップ、および、それぞれのコンポーネント27a、c~fのためのソフトウェアコンポーネント42a、c~nを使用してコンポーネント27a、c~fのソフトウェアを後でリセットするステップを含んでもよい。他方、特定のコンテキストでは(例えばセキュリティ基準によって)即時リセットを除外していてもよい。例えば、後のリセットは、それぞれのコンポーネント27a、c~fの次の起動プロセスまでの期間内に行うことができる。
【0073】
続いて、
図5および
図6に基づいて、本開示の技法のさらなる態様を説明する。
図5は、
図2による車載ネットワークを示し、ここでは、第1のコンポーネント27cが改竄されている。
図6は、
図2による車載ネットワークを示し、ここでは第1のコンポーネント27cの改竄が修復されている。
【0074】
最初に、車両20のコンポーネント27a、c~fのソフトウェアの改竄の検出のいくつかの態様をより詳細に説明する。上述したように、本開示の技法は、車載ネットワークの複数のコンポーネントのうちの1つのコンポーネントのソフトウェアの改竄の可能性の認識を含み、これは、いくつかの例では、信号の受信を含む。この信号は、様々な様式で生成することができる。
【0075】
最初に、コンポーネント27a、c~fのソフトウェアの改竄を検出することができる。この検出は、対応するコンポーネントの対応する(改竄)検出デバイスによってローカルで行うことができる。
【0076】
図5において、制御装置27cのうちの1つ(本開示のいくつかの例では「第1のコンポーネント」)のソフトウェアが改竄されていた。改竄されたソフトウェアコンポーネント71が導入された。
【0077】
制御装置27cの(改竄)検出デバイス81a(例えばセキュリティモジュールの一部)は、この改竄を認識し、ソフトウェアの改竄を軽減するための中央デバイス25のための対応する信号を生成することができる(
図1でのステップ111および113も参照)。次いで、この信号を上述したように処理して、軽減を導入することができる。
【0078】
他の例では、または追加として、車両20の中央通信インターフェースの(改竄)検出デバイス61bは、制御装置27cの改竄を(遠隔から)検出し、(
図3の例では、同様に車両20の中央通信インターフェースに配置されている)ソフトウェアの改竄を軽減するための中央デバイス25のための信号を生成することができる。したがって、いくつかの例では、ソフトウェアの改竄を軽減するための中央デバイス25はまた、車載ネットワークの複数のコンポーネント27a、c~fのソフトウェアの改竄の中央検出のために設計されている。
【0079】
他の例では、または追加として、遠隔システム30の検出デバイスが、制御装置27cの改竄を(遠隔から)検出し、ソフトウェアの改竄を軽減するための中央デバイス25のための信号を生成することができる。この例では、車両のインターフェースを介して信号を受信することができる。しかし、改竄の検出も車両内で行うとき、いくつかの場合には、改竄を軽減するまでの期間を短縮することができる。
【0080】
様々な検出デバイス81a、61b(特に、車両に配置された検出デバイス81a、61b)は、(車載)ネットワークに既にある検出デバイスであってもよい。上述したように、いくつかの既知の方法でソフトウェアの改竄を認識することもできる。
【0081】
改竄の検出は、考えられる各様式で行うことができる。例えば、ソフトウェアは、起動時(「セキュアブート」)および/または動作中(「ランタイム改竄検出」)に、ソフトウェアの真実性および/または真正性をチェックするための1つまたは複数の方法によって(例えば、1つまたは複数のデジタル署名を使用して)チェックすることができる。
【0082】
他の例では、その信号が存在しないときに改竄の可能性が認識される信号を、先行するセクションで述べたコンポーネントによって生成することができる。例えば、制御装置27cの(改竄)検出デバイス81aは、(例えば定期的に、または特定のイベントの発生時に)信号を生成することができ、その信号の不在が、制御装置27cのソフトウェアの改竄を表示することができる。
【0083】
ここで、
図5および
図6を参照して、中央永続的メモリ41に記憶されている、第1のコンポーネント27cのためのソフトウェアコンポーネント42cを使用する、第1のコンポーネント27cのソフトウェアのリセットの対策のさらなる態様を論じる。
【0084】
改竄を軽減するための中央デバイス25は、第1のコンポーネント27cの改竄の検出に基づいて、対策を選択することができる。
図5および
図6の例では、第1のコンポーネント27cのソフトウェアのリセットが記載されている。リセットは、ソフトウェアを最後に認証された状態にすることを含んでもよい。これは、第1のコンポーネント27cのソフトウェアの一部または全体(例えば制御装置)を削除および/または上書きすることを含んでもよい。第1のコンポーネント27cのソフトウェアの一部または全体の削除および/または上書きは、改竄を軽減するための中央デバイス25によって遠隔から(すなわち車載ネットワークの接続を介して)実行することができる。このようにして、改竄されたソフトウェアコンポーネント71またはその一部81a、81bを、真正な(すなわち改竄されていない)ソフトウェアコンポーネント52cまたはその一部53a、53bによって置き換えて、改竄を修復することができる。
【0085】
真正な(すなわち改竄されていない)ソフトウェア52cは、永続的メモリ41から呼び出すことができる。上述したように、永続的メモリ41は、ソフトウェアコンポーネント42cを、直接使用可能な形式で、または改竄されたソフトウェアコンポーネント71または第1のコンポーネント27cをリセットするための1つまたは複数の処理ステップの後にのみ使用することができる形式で記憶することができる。
【0086】
いくつかの例では、改竄を軽減するための中央デバイス25は、コンポーネントのソフトウェアをリセットするために使用されるソフトウェアコンポーネント42a、c~nの信頼性を保証するための手段を実行することができる。例えば、ソフトウェアコンポーネント42a、c~nの使用前に、(例えばデジタル署名または別のセキュリティ機能に基づいて)信頼性チェックを実行することができる。改竄を軽減するための中央デバイス25は、信頼性チェックのために、改竄を軽減するための中央デバイス25が統合されているコンポーネントの機能性を用いることができる。
【0087】
いくつかの例では、永続的メモリ41は、車載ネットワークの特定のコンポーネントのための複数のバージョンのソフトウェアコンポーネントを含んでもよい。この場合、改竄を軽減するための中央デバイス25は、それらのバージョンのうちの1つ(例えば最新バージョンのソフトウェアコンポーネント)を選択することができる。
【0088】
先行するセクションでは、
図5および
図6を参照して、車載ネットワークの第1のコンポーネント27cの改竄を軽減するための対策に言及した。しかし、改竄を軽減するための中央デバイス25は、第1のコンポーネント27cのソフトウェアの改竄の軽減と異なる時点で、または同時に、複数のコンポーネント27a、d~fのうちの1つまたは複数のさらなるコンポーネントのソフトウェアの改竄に関する対策を導入するように構成されている。
【0089】
いくつかの例では、改竄を軽減するための中央デバイス25は、車載ネットワークの複数のコンポーネントのうちのさらなるコンポーネント27a、d~fのソフトウェアの改竄の可能性を認識し、さらなるコンポーネント27a、d~fの改竄を軽減するためのさらなる対策を導入するように設計されている。改竄の検出、対策の導入および実施は、上述したように進めることができる。例えば、さらなるコンポーネント27a、d~fの改竄されたソフトウェアコンポーネントをリセットすることができる。
【0090】
このようにして、改竄を軽減するための単一の中央デバイスが、車載ネットワーク内でそこから離れた複数のコンポーネント(例えば、様々なドメインにある制御装置)を担当する(すなわち、複数のコンポーネントのソフトウェアの改竄を修復する)ことができる。
【0091】
先行するセクションでは、改竄を軽減するための中央デバイスによって導入され、車載ネットワークで実施される対策として、コンポーネントのソフトウェアのリセットについて述べた。
【0092】
いくつかの例では、改竄を軽減するための中央デバイスがさらなる対策を追加的に導入でき、次いでその対策が実行される。
いくつかの例では、改竄に対するさらなる対策は、第1のコンポーネント27c(そのソフトウェアが改竄されている)の車載ネットワークを介する通信の遮断を含んでもよい。通信の遮断は、第1のコンポーネント27cの改竄されたソフトウェアが車載ネットワークを介して損傷を引き起こすことを防ぐことができる。他方で、改竄されたソフトウェアは、依然として(例えば一定期間にわたって)第1のコンポーネント27cの機能を実行することができる。このため、いくつかの場合には、第1のコンポーネント27cの車載ネットワークを介する通信の遮断は、(例えば、第1のコンポーネント27cの故障が少なくとも短期的に許容できない、または望ましくないコンテキストにおいて)第1のコンポーネント27cのソフトウェアのリセットよりも好ましいことがある。第1のコンポーネント27cのソフトウェアをリセットする対策は、第1のコンポーネント27cの通信を遮断する対策に続いて(例えば、変更されたコンテキストで)導入および実施することができる。
【0093】
代替または追加として、改竄に対するさらなる対策は、第1のコンポーネント27cを含む、車載ネットワークを介するコンポーネントのグループの通信の遮断を含んでもよい。
図3の例では、第1のコンポーネント27cは、さらなるコンポーネント27a、bと共に第1のドメイン26aに含まれていてもよい。車載ネットワークを介するコンポーネントのグループの通信の遮断は、前述したような個々のコンポーネントの遮断と同様である。ここでも、車載ネットワークでのコンポーネントのグループによって損傷が引き起こされるのを防ぐことができる。車載ネットワークを介するコンポーネントのグループの通信を遮断する場合にも、後の時点で、(例えば、変更されたコンテキストで)第1のコンポーネント27cのソフトウェアをリセットする対策を導入して実施することができる。
【0094】
さらに代替または追加として、改竄に対するさらなる対策は、改竄が認識された第1のコンポーネント27cの機能性の変更を含んでもよい。例えば、所定のパターンに従って、(例えばそれぞれのコンテキストで特定のセキュリティ関連の態様に必要とされる機能性に対して)機能性を制限することができる。
【0095】
さらに代替または追加として、改竄に対するさらなる対策は、改竄が認識された第1のコンポーネント27cの機能性を、複数のコンポーネント27a、b、d~fのうちの1つまたは複数の他のコンポーネントに移行することを含んでもよい。例えば、複数のコンポーネント27a、b、d~fのうちの1つまたは複数の他のコンポーネントが、第1のコンポーネント27cのタスク(またはその一部)を少なくとも一時的に引き受けることができる。次いで、第1のコンポーネント27cを作動停止および/または遮断することができる。この場合にも、後の時点で、(例えば、変更されたコンテキストで)第1のコンポーネント27cのソフトウェアをリセットする対策を導入して実施することができる。
【0096】
先行するセクションでは、多くの場合、本開示の技法を、それぞれの方法に基づいて述べてきた。本開示は、本開示の方法を実行するように設計されているシステムにも関する。システムは、車両の車載ネットワークの1つまたは複数のコンポーネントを含んでもよい(例えばこれらに統合されていてもよい)。車載ネットワークは、車載ネットワークに一時的にのみ含まれるデバイス(例えば、車両にあり、車載ネットワークに統合されているモバイル機器)を含むこともできる。他の例では、システムは、遠隔システムも含んでもよい。
【0097】
しかし、本開示はまた、少なくとも1つの、本開示によるソフトウェアの改竄を軽減するための中央デバイスと、車載ネットワークの複数のコンポーネントとを含む車両用の車載ネットワークにも関する。車載ネットワークは、本開示の方法を実行するように設計されていてもよい。車載ネットワークは、車載ネットワークに一時的にのみ含まれるデバイス(例えば、車両にあり、車載ネットワークに統合されているモバイルデバイス)を含んでもよい。
【0098】
上述したように、ソフトウェアの改竄を軽減するための中央デバイスは、スタンドアロンデバイス(すなわち、車載ネットワークの一部であり、車載ネットワークの他のコンポーネントと通信することができる、独自のハードウェアおよびソフトウェアリソースを備えた専用モジュール)であってもよい。しかし、他の場合には、ソフトウェアの改竄を軽減するための中央デバイスは、車載ネットワークの別の(既存の)コンポーネントに統合されている。このとき、ソフトウェアの改竄を軽減するための中央デバイスは、ソフトウェアモジュール(コンポーネントのソフトウェアに挿入されるモジュール)として構成されていてもよい。他の場合には、ソフトウェアの改竄を軽減するための中央デバイスは、(その中央デバイスが統合されているコンポーネントの他のハードウェアコンポーネントを一緒に利用しながら)少なくともいくつかの専用ハードウェアコンポーネントを備えることができる。同様に述べたように、他のコンポーネントは、車載ネットワークの中央通信インターフェース、中央コンピュータ(「車両コンピュータ」)、または比較的高性能なハードウェアを備えた別のコンポーネントであってもよい。
【0099】
いくつかの例では、車載ネットワークの既存のコンポーネント(例えば、車両もしくは車両のドメインの中央通信インターフェース、車両の中央コンピュータ、またはインフォテインメントシステムのヘッドユニット)を、車載ネットワークのコンポーネントのソフトウェアの更新によって、ソフトウェアの改竄を軽減するための中央デバイスとして構成することができる。
【0100】
ソフトウェアの改竄を軽減するための中央デバイスまたはそれが統合されている別のコンポーネントは、少なくとも1つのプロセッサ(場合によっては複数のコアを備える)と、プロセッサによって実行されるときに本開示の方法を実行する命令を含むメモリとを含んでもよい。
【0101】
本開示はさらに、本開示によるシステムを含む、もしくはその一部である、および/または本開示による車載ネットワークを含む車両に関する。
本開示はさらに、本開示の方法を実行するように設計されているコンピュータプログラムに関する。
【0102】
本開示はさらに、本開示のコンピュータプログラムを含むコンピュータ可読媒体(例えばDVDまたは固体メモリ)に関する。
本開示はさらに、本開示のコンピュータプログラムを符号化する信号(例えば、無線または有線通信プロトコルによる電磁信号)に関する。
【符号の説明】
【0103】
20 車両
21、22 通信インターフェース
23 中央制御ユニット
21~24 複数のコンポーネント
25 ソフトウェアの改竄を軽減するための中央デバイス
26a~n ドメイン
27a~f 制御装置
30 遠隔システム
31 ソフトウェアバンドル
32a、32c~n ソフトウェア更新情報
41 永続的メモリ
42a、42c~n ソフトウェアコンポーネント
52c ソフトウェアコンポーネント/ソフトウェア
53a、53b ソフトウェアコンポーネント52cの一部
61b 検出デバイス
71 ソフトウェアコンポーネント
81検出デバイス
91 メモリ
93 セキュリティモジュール
94 プロセッサ
95 複数のインターフェース
96 車載ネットワークの伝送路
99 不変モジュール
402 他のコンポーネント
403 メインユニット
【外国語明細書】