(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法
(51)【国際特許分類】
G06F 21/55 20130101AFI20241111BHJP
H04L 12/46 20060101ALI20241111BHJP
【FI】
G06F21/55
H04L12/46 Z
【外国語出願】
(21)【出願番号】P 2021097341
(22)【出願日】2021-06-10
(62)【分割の表示】P 2019220491の分割
【原出願日】2017-04-12
【審査請求日】2021-07-09
【審判番号】
【審判請求日】2023-02-28
(32)【優先日】2016-04-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518363381
【氏名又は名称】ガードノックス・サイバー・テクノロジーズ・リミテッド
【氏名又は名称原語表記】GuardKnox Cyber Technologies Ltd.
(74)【代理人】
【識別番号】100101454
【氏名又は名称】山田 卓二
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100189544
【氏名又は名称】柏原 啓伸
(72)【発明者】
【氏名】ディオニス・テシュラー
(72)【発明者】
【氏名】モーシェ・シュリセル
(72)【発明者】
【氏名】イダン・ナダブ
【合議体】
【審判長】吉田 美彦
【審判官】須田 勝巳
【審判官】脇岡 剛
(56)【参考文献】
【文献】特開2013-187555(JP,A)
【文献】特開2011-035834(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/55-57
(57)【特許請求の範囲】
【請求項1】
ハードウェア構成要素において、
少なくとも
二つの論理セルを含み、
前記少なくとも
二つの論理セルは、前記ハードウェア構成要素内部で、ランタイム中に変更できない静的構成で構成されており、
前記ハードウェア構成要素は、
1)車両に搭載される第1の通信ネットワーク
と第2の通信ネットワークに接続される電子制御ユニット(ECU)の少なくとも一つのコンピュータプロセッサと、
2)
前記第1の通信ネットワーク
及び前記第2の通信ネットワークと
の間を仲介し、
前記少なくとも
二つの論理セル
のうちの一方は、
前記第1の通信ネットワークにのみ機能
し、また、前記少なくとも二つの論理セルのうちの他方は、前記第2の通信ネットワークにのみ機能するように構成されており、
前記少なくとも
二つの論理セルは、前記
第1及び第2の通信ネットワークに関連する各通信の少なくとも一つの検証については、
各通信の少なくとも一つの部分を、
i)製造業者の仕様に基づいて予め定義された、各メッセージ構造の承認済み定義および各通信の各パラメータに関連付けられた少なくとも一つの承認済み値を記憶する、予め定義された少なくとも一つの承認済みメッセージ辞書と、
ii)前記ECUが入ることができる少なくとも一つの関連状態を表す少なくとも一つの状態ベクトルを導出する少なくとも一つの有限状態マシンであって、該少なくとも一つの関連状態は製造者の仕様に従って前記ECUの動作モードが変化する状態を含むものである、少なくとも一つの有限状態マシンと、及び、
iii)メッセージの少なくとも一つのシーケンス、各通信についての少なくとも一つの送信元・送信先対、少なくとも一つの第2の通信レート、若しくは、車両の前記少なくとも一つの関連状態にかかるメッセージング論理の、少なくとも一つについての、少なくとも一つの承認済み定義を記憶する少なくとも一つの承認済みの通信スキーマと
に対して検証することと、
各通信の前記少なくとも一つの部分を検証することに少なくとも部分的に基づいて、各通信が、1)不正通信であること、又は、2)承認済みの通信であることを、決定することと、
並びに、
1)不正通信で少なくとも一つの管理動作を実行すること、又は、
2)i)前記承認済みの通信を前記ハードウェア構成要素から送信する、若しくは、ii)前記承認済みの通信を少なくとも一つの第1の予め定義された変更で修正して、変更された承認済みの通信を生成し、前記ハードウェア構成要素から前記変更された承認済みの通信を送信する、の、i)とii)とのうちの一つを行うこと
の、一つを実行することと
により、検証するように構成されている、
ハードウェア構成要素。
【請求項2】
前記ハードウェア構成要素は、更に、
前記少なくとも
二つの論理セルと前記
第1及び第2の通信ネットワーク
夫々との間で通信を交換するために要求される物理層を実装するように構成された専用のハードウェアインタフェーストランシーバを
含む、請求項1に記載のハードウェア構成要素。
【請求項3】
前記ハードウェア構成要素は、
前記少なくとも
二つの論理セルと前記
第1及び第2の通信ネットワーク
夫々との間で通信を交換するために要求される夫々の通信プロトコルを実装するように構成された専用のインタフェースコントローラを
含む、請求項1に記載のハードウェア構成要素。
【請求項4】
前記専用のインタフェースコントローラは、IPコアとして実装される、
請求項3に記載のハードウェア構成要素。
【請求項5】
前記ハードウェア構成要素は、専用のハードウェアコントローラを含む
請求項3に記載のハードウェア構成要素。
【請求項6】
前記ハードウェア構成要素は、前記ECU内に配置される、
請求項1に記載のハードウェア構成要素。
【請求項7】
前記ハードウェア構成要素が、
i)前記予め定義された少なくとも一つの承認済みメッセージ辞書と、
ii)前記少なくとも一つの有限状態マシンと、
iii)前記少なくとも一つの承認済みの通信スキーマと
のうちの少なくとも一つを記憶する少なくとも一つの不揮発性メモリ構成要素と動作上関連付けられる、
請求項1に記載のハードウェア構成要素。
【請求項8】
前記ハードウェア構成要素は、前記少なくとも一つの不揮発性メモリ構成要素を含む、
請求項7に記載のハードウェア構成要素。
【請求項9】
前記ハードウェア構成要素は、少なくとも一つの第2の論理セルを含み、
前記少なくとも一つの第2の論理セルは、
前記
第1または第2の通信ネットワークの各通信が承認済みのレートで送信されたことを検証することにより、レート検証を実行するように構成されており、
前記少なくとも
二つの論理セル
の少なくとも一つは、
前記少なくとも一つの第2の論理セルを利用して、各通信が承認済みのレートで送信されたこと、又は不正レートで送信されたことを、更に決定することにより、前記
第1または第2の通信ネットワークと関連付けられる各通信の前記少なくとも一つの検証を行うように更に構成されている、
請求項1に記載のハードウェア構成要素。
【請求項10】
前記少なくとも一つの管理動作は、
1)前記不正通信をドロップすることと、
2)前記不正通信を消去することと、
3)前記不正通信を記録することと、
4)前記承認済みの通信を生成するために前記不正通信を変更することと
のうちの少なくとも一つである、請求項1に記載のハードウェア構成要素。
【請求項11】
前記不正通信は、少なくとも部分的に、少なくとも一つのサイバー脅威に基づくものである、請求項1に記載のハードウェア構成要素。
【請求項12】
前記ハードウェア構成要素は、前記少なくとも一つの管理動作の少なくとも一つの表示を生成するように、更に構成されている、
請求項1に記載のハードウェア構成要素。
【請求項13】
前記ハードウェア構成要素は、
前記少なくとも一つの表示を記録することと、
前記少なくとも一つの表示を、前記ECUの外部に位置する少なくとも一つの外部電子送信先に送信することと
のうちの少なくとも一つを実行するように、更に構成されている、
請求項12に記載のハードウェア構成要素。
【請求項14】
前記少なくとも一つの論理セルは、前記静的構成を確立するために起動時にプログラムされるように構成されている、
請求項1に記載のハードウェア構成要素。
【請求項15】
前記ハードウェア構成要素が、更に
、
1)前記ECUの前記少なくとも一つのコンピュータプロセッサと、
2)前記少なくとも
二つの論理セル
のうちの一方と、
3)前記少なくとも
二つ
の論理セル
のうちの他方と
の間を仲介するように構成されている、少なくとも一つの第3の論理セルと
を含む、請求項1に記載のハードウェア構成要素。
【請求項16】
車両内にハードウェア構成要素を設置することを含む、方法において、
前記ハードウェア構成要素は、少なくとも
二つの論理セルを含み、
前記少なくとも
二つの論理セルは、前記ハードウェア構成要素内部で、ランタイム中に変更できない静的構成で構成されており、
前記ハードウェア構成要素は、
1)車両に搭載される第1の通信ネットワーク
と第2の通信ネットワークに接続される電子制御ユニット(ECU)の少なくとも一つのコンピュータプロセッサと、
2)
前記第1の通信ネットワーク
及び前記第2の通信ネットワークと
の間を仲介し、
前記少なくとも
二つの論理セル
のうちの一方は、
前記第1の通信ネットワークにのみ機能
し、また、前記少なくとも二つの論理セルのうちの他方は、前記第2の通信ネットワークにのみ機能するように構成されており、
前記少なくとも
二つの論理セルは、前記
第1及び第2の通信ネットワークに関連する各通信の少なくとも一つの検証については、
各通信の少なくとも一つの部分を、
i)製造業者の仕様に基づいて予め定義された、各メッセージ構造の承認済み定義および各通信の各パラメータに関連付けられた少なくとも一つの承認済み値を記憶する、予め定義された少なくとも一つの承認済みメッセージ辞書と、
ii)前記ECUが入ることができる少なくとも一つの関連状態を表す少なくとも一つの状態ベクトルを導出する少なくとも一つの有限状態マシンであって、該少なくとも一つの関連状態は製造者の仕様に従って前記ECUの動作モードが変化する状態を含むものである、少なくとも一つの有限状態マシンと、及び、
iii)メッセージの少なくとも一つのシーケンス、各通信についての少なくとも一つの送信元・送信先対、少なくとも一つの第2の通信レート、若しくは、車両の前記少なくとも一つの関連状態にかかるメッセージング論理の、少なくとも一つについての、少なくとも一つの承認済み定義を記憶する少なくとも一つの承認済みの通信スキーマと
に対して検証することと、
各通信の前記少なくとも一つの部分を検証することに少なくとも部分的に基づいて、各通信が、1)不正通信であること、又は、2)承認済みの通信であることを、決定することと、
並びに、
1)不正通信で少なくとも一つの管理動作を実行すること、又は、
2)i)前記承認済みの通信を前記ハードウェア構成要素から送信する、若しくは、ii)前記承認済みの通信を少なくとも一つの第1の予め定義された変更で修正して、変更された承認済みの通信を生成し、前記ハードウェア構成要素から前記変更された承認済みの通信を送信する、の、i)とii)とのうちの一つを行うこと
の、一つを実行することと
により、検証するように構成されている、
方法。
【請求項17】
前記ハードウェア構成要素は、
前記少なくとも
二つの論理セルと前記
第1及び第2の通信ネットワーク
夫々との間で通信を交換するために要求される物理層を実装するように構成された専用のハードウェアインタフェーストランシーバを
含む、請求項
16に記載の方法。
【請求項18】
前記ハードウェア構成要素は、更に、
前記少なくとも
二つの論理セルと前記
第1及び第2の通信ネットワーク
夫々との間で通信を交換するために要求される夫々の通信プロトコルを実装するように構成された専用のインタフェースコントローラを
含む、請求項
16に記載の方法。
【請求項19】
前記専用のインタフェースコントローラは、IPコアとして実装される、
請求項
18に記載の方法。
【請求項20】
前記ハードウェア構成要素は、専用のハードウェアコントローラを含む
請求項
18に記載の方法。
【請求項21】
前記ハードウェア構成要素は、前記ECU内に配置される、
請求項
16に記載の方法。
【請求項22】
前記ハードウェア構成要素が、
i)前記予め定義された少なくとも一つの承認済みメッセージ辞書と、
ii)前記少なくとも一つの有限状態マシンと、
iii)前記少なくとも一つの承認済みの通信スキーマと
のうちの少なくとも一つを記憶する少なくとも一つの不揮発性メモリ構成要素と動作上関連付けられる、
請求項
16に記載の方法。
【請求項23】
前記ハードウェア構成要素は、前記少なくとも一つの不揮発性メモリ構成要素を含む、
請求項
22に記載の方法。
【請求項24】
前記ハードウェア構成要素は、少なくとも一つの第2の論理セルを含み、
前記少なくとも一つの第2の論理セルは、
前記
第1または第2の通信ネットワークの各通信が承認済みのレートで送信されたことを検証することにより、レート検証を実行するように構成されており、
前記少なくとも
二つの論理セル
の少なくとも一つは、
前記少なくとも一つの第2の論理セルを利用して、各通信が承認済みのレートで送信されたこと、又は不正のレートで送信されたことを、更に決定することにより、前記
第1または第2の通信ネットワークと関連付けられる各通信の前記少なくとも一つの検証を行うように更に構成されている、
請求項
16に記載の方法。
【請求項25】
前記少なくとも一つの管理動作は、
1)前記不正通信をドロップすることと、
2)前記不正通信を消去することと、
3)前記不正通信をログに記録することと、
4)前記承認済みの通信を生成するために前記不正通信を変更することと
のうちの少なくとも一つである、請求項
16に記載の方法。
【請求項26】
前記不正通信は、少なくとも部分的に、少なくとも一つのサイバー脅威に基づくものである、請求項
16に記載の方法。
【請求項27】
前記ハードウェア構成要素は、前記少なくとも一つの管理動作の少なくとも一つの表示を生成するように、更に構成されている、
請求項
16に記載の方法。
【請求項28】
前記ハードウェア構成要素は、
前記少なくとも一つの表示を記録することと、
前記少なくとも一つの表示を、前記ECUの外部に位置する少なくとも一つの外部電子送信先に送信することと
のうちの少なくとも一つを実行するように、更に構成されている、
請求項
27に記載の方法。
【請求項29】
前記少なくとも一つの論理セルは、前記静的構成を確立するために起動時にプログラムされるように構成されている、
請求項
16に記載の方法。
【請求項30】
前記ハードウェア構成要素が、更に
、
1)前記ECUの前記少なくとも一つのコンピュータプロセッサと、
2)前記少なくとも
二つの論理セル
のうちの一方と、
3)前記少なくとも
二つ
の論理セル
のうちの他方と
の間を仲介するように構成されている、少なくとも一つの第3の論理セルと
を含む、請求項
16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2016年4月12日に出願され、「セキュリティ通信、構成、及び物理分離ロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピュータシステムおよびその使用方法」と題された米国仮特許出願第62/321,372号の優先権を主張し、すべての目的のためにその全体が参照により本明細書に組み込まれる。
【0002】
いくつかの実施形態では、本発明は、一般に、セキュリティ通信および構成のロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法に関する。
【背景技術】
【0003】
例えば、車両は、多数のコンピュータ、電子制御ユニット(ECU)を含むことができる。典型的には、ECUは、Bluetooth(登録商標)、3G、Wi-Fiなどの外部通信機能を含むことができる様々なネットワークを介して相互接続され得る。場合によっては、車両のECUおよび/または動作機能を追跡、制御および/または更新するために、そのような例示的な外部通信機能が利用され得る。
【発明の概要】
【課題を解決するための手段】
【0004】
いくつかの実施形態では、本発明は、少なくとも以下の構成要素を含む例示的な本発明の装置を提供する:少なくとも1つのネットワークの少なくとも1つの電子制御ユニット(ECU)と動作可能に関連付けられた少なくとも1つのセキュアロックダウン構成要素を備え、少なくとも1つのセキュアロックダウン構成要素は、前記装置が、i)任意の他のネットワークから少なくとも1つのネットワークを物理的に分離すること、ii)前記少なくとも1つのネットワークに導かれる外部入力から前記少なくとも1つのネットワークを物理的に分離すること、iii)少なくとも1つの他のECUから少なくとも1つのECUを物理的に分離すること、iv)前記少なくとも1つのECUに導かれる外部入力から前記少なくとも1つのECUを物理的に分離すること、v)前記少なくとも1つのECU内の前記少なくとも1つの処理ユニットから前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素を物理的に分離すること、およびvi)それらの任意の組み合わせを行うことのうちの少なくとも1つを行うように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、少なくとも1つのセキュアロックダウン手順を実行するようにプログラムされた少なくとも1つのプロセッサと、i)すべての有効な電子メッセージのエントリを含む少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む少なくとも1つの承認済み通信スキーマデータベース、iii)少なくとも1つの予め定義された状態マシン、iv)前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素の承認済みコンテンツ、およびvii)前記少なくとも1つのECU内の少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つを記憶する少なくとも1つの不揮発性メモリ構成要素とを含み、前記少なくとも1つのセキュアロックダウン構成要素の前記少なくとも1つのプロセッサは、実行時に、i)前記少なくとも1つのネットワークに向けられた、ii)前記少なくとも1つのネットワーク内で送信された、iii)前記少なくとも1つのネットワークから少なくとも1つの外部コンピューティング装置に外部送信された、iv)前記少なくとも1つのECUに向けられた、またはv)前記少なくとも1つのECUから送信されるべき、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素に送信されるべき、vii)前記少なくとも1つのECU内の少なくとも1つのハードウェア構成要素を構成するように送信されるべき、のうちの少なくとも1つである各電子メッセージを分析するように構成された前記少なくとも1つのセキュアロックダウン手順を実行するように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、i)すべての有効電子メッセージのエントリを含む前記少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む前記少なくとも1つの承認済み通信スキーマデータベース、およびiii)前記少なくとも1つの予め定義された状態マシンのうちの少なくとも1つに基づいて各電子メッセージを分析し、各電子メッセージの分析に基づいて、少なくとも1つの未承認の変更を生じさせる、またはi)前記少なくとも1つのネットワークの前記少なくとも1つのECUの少なくとも1つの動作構成、ii)1)前記1つの他のECUおよび2)前記少なくとも1つのネットワークの外部に位置する少なくとも1つの外部電子コンピューティング装置のうちの少なくとも1つと通信するように前記少なくとも1つのECUによって利用される少なくとも1つの通信スキーマ、iii)前記少なくとも1つの承認済みメッセージ辞書データベース、iv)前記少なくとも1つの承認済み通信スキーマデータベース、v)前記少なくとも1つの予め定義された状態マシン、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素の承認済みコンテンツ、vii)前記少なくとも1つのECU内の前記少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つに違反する少なくとも1つの未承認の電子メッセージを特定し、前記少なくとも1つの不正電子メッセージが前記少なくとも1つのセキュアロックダウン構成要素を通過するのを阻止するように構成されている。
【0005】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン手順は、少なくとも1つの通信セキュアロックダウン手順である。
【0006】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン手順は、少なくとも1つの構成セキュアロックダウン手順である。
【0007】
いくつかの実施形態では、本発明は、例示的な本発明の装置を車両に組み込むことを少なくとも含み、前記例示的な本発明の装置が少なくとも以下の構成要素を含む方法を提供する:少なくとも1つのネットワークの少なくとも1つの電子制御ユニット(ECU)と動作可能に関連付けられた少なくとも1つのセキュアロックダウン構成要素を備え、前記少なくとも1つのECUは前記車両内に存在し、前記少なくとも1つのセキュアロックダウン構成要素は、前記装置が、i)任意の他のネットワークから少なくとも1つのネットワークを物理的に分離すること、ii)前記少なくとも1つのネットワークに導かれる外部入力から前記少なくとも1つのネットワークを物理的に分離すること、iii)少なくとも1つの他のECUから少なくとも1つのECUを物理的に分離すること、iv)前記少なくとも1つのECUに導かれる外部入力から前記少なくとも1つのECUを物理的に分離すること、v)前記少なくとも1つのECU内の前記少なくとも1つの処理ユニットから前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素を物理的に分離すること、およびvi)それらの任意の組み合わせを行うことのうちの少なくとも1つを行うように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、少なくとも1つのセキュアロックダウン手順を実行するようにプログラムされた少なくとも1つのプロセッサと、i)すべての有効な電子メッセージのエントリを含む少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む少なくとも1つの承認済み通信スキーマデータベース、iii)少なくとも1つの予め定義された状態マシン、iv)前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素の承認済みコンテンツ、およびvii)前記少なくとも1つのECU内の少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つを記憶する少なくとも1つの不揮発性メモリ構成要素とを含み、前記少なくとも1つのセキュアロックダウン構成要素の前記少なくとも1つのプロセッサは、実行時に、i)前記少なくとも1つのネットワークに向けられた、ii)前記少なくとも1つのネットワーク内で送信された、iii)前記少なくとも1つのネットワークから少なくとも1つの外部コンピューティング装置に外部送信された、iv)前記少なくとも1つのECUに向けられた、またはv)前記少なくとも1つのECUから送信されるべき、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素に送信されるべき、vii)前記少なくとも1つのECU内の少なくとも1つのハードウェア構成要素を構成するように送信されるべき、のうちの少なくとも1つである各電子メッセージを分析するように構成された前記少なくとも1つのセキュアロックダウン手順を実行するように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、i)すべての有効電子メッセージのエントリを含む前記少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む前記少なくとも1つの承認済み通信スキーマデータベース、およびiii)前記少なくとも1つの予め定義された状態マシンのうちの少なくとも1つに基づいて各電子メッセージを分析し、各電子メッセージの分析に基づいて、少なくとも1つの未承認の変更を生じさせる、またはi)前記少なくとも1つのネットワークの前記少なくとも1つのECUの少なくとも1つの動作構成、ii)1)前記1つの他のECUおよび2)前記少なくとも1つのネットワークの外部に位置する少なくとも1つの外部電子コンピューティング装置のうちの少なくとも1つと通信するように前記少なくとも1つのECUによって利用される少なくとも1つの通信スキーマ、iii)前記少なくとも1つの承認済みメッセージ辞書データベース、iv)前記少なくとも1つの承認済み通信スキーマデータベース、v)前記少なくとも1つの予め定義された状態マシン、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素の承認済みコンテンツ、vii)前記少なくとも1つのECU内の前記少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つに違反する少なくとも1つの未承認の電子メッセージを特定し、前記少なくとも1つの不正電子メッセージが前記少なくとも1つのセキュアロックダウン構成要素を通過するのを阻止するように構成されている。
【図面の簡単な説明】
【0008】
本発明は、添付の図面を参照してさらに説明され得、同様の構造は、いくつかの図を通して同様の参照符号によって参照される。示された図面は、必ずしも縮尺どおりのものではなく、その代わりに一般に本発明の原理を説明することに重点が置かれている。したがって、本明細書で開示される特定の構造的および機能的詳細は、限定として解釈されるべきではなく、単に本発明を多様に使用するために当業者に教示するための代表的な基礎として解釈されるべきである。
【0009】
【
図1】
図1は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図2】
図2は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図3】
図3は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図4】
図4は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図5】
図5は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図6】
図6は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図7】
図7は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図8】
図8は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図9】
図9は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図10】
図10は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図11】
図11は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図12】
図12は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図13】
図13は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図14】
図14は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図15】
図15は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図16】
図16は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図17】
図17は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図18】
図18は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図19】
図19は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図20】
図20は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図21】
図21は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図22】
図22は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図23】
図23は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図24】
図24は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図25】
図25は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図26】
図26は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図27】
図27は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図28】
図28は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【
図29】
図29は、本発明の少なくともいくつかの実施形態の少なくともいくつかの原理に従って示された本発明のいくつかの例示的な態様を示している。
【発明を実施するための形態】
【0010】
開示された利点および改善のうち、本発明の他の目的および利点は、添付の図面と併せて以下の説明から明らかになるであろう。本発明の詳細な実施形態は、本明細書に開示されるが、開示された実施形態は、様々な形態で具体化され得る本発明の単なる例示であることが理解されるべきである。さらに、本発明の様々な実施形態に関連して与えられた各例は、例示的なものであり、限定的なものではないことが意図されている。
【0011】
例えば、本明細書で詳述する様々な実施形態の例示的な例は、様々なタイプの移動車両(例えば、自動車、トラック、バスなど)などの自動車産業において実施されるように説明されているが、多くの他の実装形態が当業者にとって明らかとなることができ、本発明の原理、方法、システム、および装置は、コンピューティング装置を利用する様々な他の環境において同様に実施され得る。例えば、本発明の原理、方法、システム、および装置は、限定されるものではないが、コンピュータ、医療機器、金融端末、ユーティリティ管理、住宅セキュリティ、重要なインフラストラクチャコンピューティングシステム(例えば、信号灯、電力網など)、および他の同様の適切なアプリケーションなど、多くの産業、環境、およびコンピューティング装置において、当業者にとって明らかになることができる任意の変更を伴って、または伴わずに実施され得る。
【0012】
本明細書を通して、以下の用語は、文脈上他に明確に指示されない限り、本明細書に明示的に関連付けられた意味をとる。本明細書で使用される「1つの実施形態では」および「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を指しているとは限らないが、同じ実施形態を指すことができる。さらにまた、本明細書で使用される「別の実施形態では」および「いくつかの他の実施形態では」という語句は、必ずしも異なる実施形態を指しているとは限らないが、異なる実施形態を指すことができる。したがって、以下に説明するように、本発明の範囲または精神から逸脱することなく、本発明の様々な実施形態は、容易に組み合わせられることができる。
【0013】
さらに、本明細書で使用される場合、用語「または」は、包括的な「または」演算子であり、文脈上他に明確に指示されない限り、「および/または」という用語と同等である。用語「に基づいて」は、排他的ではなく、文脈上他に明確に指示されていない限り、記載されていない追加の要素に基づいている。さらに、明細書全体にわたって、「a」、「an」および「the」の意味は、複数の言及を含む。「in」の意味は、「in」および「on」を含む。
【0014】
本明細書で説明される様々な実施形態の少なくとも1つの態様/機能性は、リアルタイムおよび/または動的に実行され得ることが理解される。本明細書で使用される場合、用語「リアルタイム(real-time)」は、別のイベント/アクションが発生したときに瞬間的またはほぼ瞬時に発生することができるイベント/アクションを指す。いくつかの実施形態では、用語「瞬時に(instantaneous)」、「瞬時に(instantaneously)」、「瞬時に(instantly)」、および「リアルタイムで(in real time)」は、検索要求が送信されたときの最初の時間と、要求に対する応答が受信されたときの第2野時間との差が1秒以下である状態を指す。いくつかの実施形態では、要求と応答との間の時間差は、1秒未満から数秒(例えば、5~10秒)の間である。
【0015】
本明細書で使用される場合、用語「動的(に)(dynamic(ly))」は、人間の介入なしにイベントおよび/またはアクションがトリガされるおよび/または発生することができることを意味する。いくつかの実施形態では、本発明にかかるイベントおよび/またはアクションは、リアルタイムとすることができる、および/またはナノ秒、数ナノ秒、ミリ秒、数ミリ秒、秒、数秒、分、数分、1時間、数時間、1日、数日、週1回、月1回などのうちの少なくとも1つの予め定義された周期性に基づくことができる。
【0016】
本明細書で使用される場合、用語「通信(communication)」および「メッセージ(message)」は、相互に使用可能であり、通信は、単一のメッセージまたは複数のメッセージに対応することができるものと仮定される。
【0017】
本明細書で使用される場合、用語「実行時(runtime)」は、ソフトウェアアプリケーションまたはソフトウェアアプリケーションの少なくとも一部の実行中に動的に決定される任意の挙動に対応する。
【0018】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、分散ネットワーク環境で動作し、適切なデータ通信ネットワーク(例えば、インターネットなど)を介して通信し、少なくとも1つの適切なデータ通信プロトコル(例えば、IPX/SPX、X.25、AX.25、AppleTalk(商標)、TCP/IP(例えば、HTTP)など)を利用するように構成されている。いくつかの実施形態では、サイバーセキュリティロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、少なくとも10台の他の電子/コンピューティング装置(例えば、限定されるものではないが、10-99台)、少なくとも100台の他の電子/コンピューティング装置(例えば、限定されるものではないが、100-999台)、少なくとも1,000台の他の電子/コンピューティング装置(例えば、限定されるものではないが、1,000-9,999台)、少なくとも10,000台(例えば、限定されるものではないが、10,000-99,999台)、少なくとも100,000台(例えば、限定されるものではないが、100,000-999,999台)、少なくとも1,000,000台(例えば、限定されるものではないが、1,000,000-9,999,999台)、少なくとも10,000,000台(例えば、限定されるものではないが、10,000,000-99,999,999台)、少なくとも100,000,000台(例えば、限定されるものではないが、100,000,000-999,999,999台)、少なくとも1,000,000,000台(例えば、限定されるものではないが、1,000,000,000-10,000,000,000台)に関連付けられた相互作用を処理/追跡/管理するように構成されている。
【0019】
本明細書で使用される場合、用語「サイバーセキュリティロックダウン」、「セキュリティ通信ロックダウン」、「サイバーセキュリティ通信ロックダウン」、「構成ロックダウン」などは、信頼できる/承認済みの構成、通信スキーマ、またはその双方をロックダウンし、変化および/または変更を引き起こすいかなる試みに対してもそれらを確保する例示的な原理に基づく本発明のいくつかの実施形態の少なくとも1つの本発明の方法論を識別する。本発明のロックダウンは、サイバー攻撃に不可知であり、相互接続されたネットワークの特定のセット内で行われるすべての通信(例えば、車両内のすべてのネットワーク、発電所内のすべてのネットワークなど)についての少なくとも1つの承認済み構成を確保することのみにフォーカスする。
【0020】
いくつかの実施形態では、特定の通信の例示的な本発明のロックダウンは、文脈上の通信認識(例えば、特定のシーケンスのみ(送信および/または生成命令)および/または許可される通信メッセージのレートなど)を有するビットレベル(例えば、メッセージおよび/またはメッセージのセットに占めるすべてのビット)で実装され得る。いくつかの実施形態では、本発明のロックダウンの原理は、特定のコンピューティング装置内で何ら実行中に変化しないように、特定のコンピューティング装置の構成および/または実行時環境の完全静的状態を維持することを含む。
【0021】
本発明のいくつかの実施形態の例示的な非限定的例
自動車業界での運用
【0022】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、典型的には電子制御ユニット(ECU)と呼ばれる多数(例えば、10、20、30、40、50、60台など)のコンピューティング装置を含む車両内に存在するように構成されている。車両の例示的な制御システムの例示的なECUは、ユーザ生成信号および/またはセンサおよび/またはアクチュエータによって生成された信号を受信し、信号に応答して、特定の機能の実行に関与する車両構成要素を制御するように動作する。例示的な制御システムの例示的なECUはまた、他の車両制御システムによって、および/または他の車両制御システム内の構成要素によって生成された機能の実行に関連する信号を受信および/または処理することもできる。例えば、従来のケーブルをアクセルペダルとエンジンスロットルとの間で置き換えるワイヤ制御システムによる車両スロットルは、電子アクセルペダル、エンジン制御モジュール(ECM)とも呼ばれるECU、およびエンジンへの空気流を制御することによってエンジンが発生する動力を制御する電子スロットルバルブを備えることができる。電子アクセルペダルは、運転者がペダルを踏み込む位置に応じて電子信号を発生することができる。例示的なECMは、アクセルペダル信号を受信することができ、加えて、車載通信ネットワークを介してエンジンの安全且つ効率的な制御に関連する情報を提供する車両内の他のセンサ、アクチュエータ、および電子制御システムによって生成され得る電子信号を受信することができる。そして、例示的なECMは、運転者入力信号および他の関連信号を処理して、スロットルを制御する電子制御信号を生成することができる。他のセンサアクチュエータのうち、および車載ネットワークを介してECMに関連信号を提供することができる電子制御システムは、空気流センサ、スロットル位置センサ、燃料噴射センサ、エンジン速度センサ、車速センサ、ワイヤシステムによってブレーキに含まれるブレーキ力および他のトラクション制御センサ、およびクルーズ制御センサである。
【0023】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、これらに限定されるものではないが、遠隔での車両の追跡、制御、および/または更新など、様々な目的で製造業者、乗客、保険代理店、および様々な他の第三者機関によって使用され得る外部通信(例えば、Bluetooth(登録商標)、3G、Wi-Fiなど)を含むことができる様々なコンピューティングネットワーク(例えば、バス)を介して相互接続され得る例示的なECUと相互作用するように構成されている。例えば、近代的な車両の車載通信ネットワークは、典型的には、車両の安全且つ効率的な動作に対する様々な重要度の比較的大きな多数の電子制御システムのための通信をサポートする必要がある。例えば、車両は、これらに限定されるものではないが、相互に通信する70個以上の多くの制御システムECUと、車載ネットワークを介して車両機能を監視および制御するセンサおよびアクチュエータとを含むことができる。ECUは、例えば、上述したエンジンスロットルに加えて、パワーステアリング、トランスミッション、アンチロックブレーキ(ABS)、エアバッグ展開、クルーズ制御、パワーウィンドウ、ドア、およびミラー調整を制御するために使用され得る。さらに、車載ネットワークは、典型的には、オンボード診断(OBD)システムおよび通信ポート、様々な車両状態警告システム、衝突回避システム、オーディオおよびビジュアル情報およびエンターテイメント(インフォテイメント)システム、およびオンボードカメラシステムで取得された画像の処理をサポートする。車載ネットワークはまた、一般に、移動体通信ネットワーク、Wi-FiおよびBluetooth(登録商標)通信、無線、TPMS(タイヤ圧監視システム)、V2X(車両間および車両インフラ通信)、キーレスエントリーシステム、インターネット、およびGPS(全地球測位システム)に対するアクセスを提供する。
【0024】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、サイバー脅威(例えば、第三者による不正アクセス、コンピュータウイルスの注入など)を防止するように構成されている。いくつかの実施形態では、セキュリティ構成のロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、実行時にそれらを何ら変更しないように強制される完全静的状態の車両内の様々なECUの構成および実行時環境を維持するように構成されている。
【0025】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、セキュリティ通信ロックダウンを実行するために少なくとも1つの「承認済みメッセージ辞書」データベースおよび少なくとも1つの「承認済み通信スキーマ」データベースをあてにするように構成されている。
【0026】
いくつかの実施形態では、承認済みメッセージ辞書データベースは、製造業者の仕様および/または別の指定された権限からの入力に基づいて予め定義されたすべての有効メッセージの定義を記憶する。例えば、承認済みメッセージ辞書データベースは、各メッセージ構造の「承認済み」定義および各メッセージの各パラメータに関連付けられた承認済み値を記憶することができる。
【0027】
いくつかの実施形態では、承認済み通信スキーマデータベースは、製造業者の仕様および/または別の指定された権限からの入力に基づいて定義されたすべての通信スキーマの定義を記憶する。例えば、承認済み通信スキーマデータベースは、以下の少なくとも1つの「承認済み」定義を記憶することができる。
-すべての承認済みメッセージのシーケンス
-特定メッセージについての承認済み送信元・送信先対
-通信レート(例えば、各特定メッセージの送信の周期性)
-車両の内部状態(例えば、エンジン状態、特定速度、点灯、など)および/または外部入力(例えば、雨、滑りやすい道路、車両に接続されたまたは車両への接続を求める少なくとも1つの外部システムの状態など)にかかるメッセージング論理(プロトコル)
-それらの任意の組み合わせ。
【0028】
本発明の状態マシンを利用するいくつかの実施形態では、特定の状態(例えば、特定の現在状態)においてどのメッセージが許可されるかを制御するために、例示的な本発明の状態マシンが定義され得る。例えば、例示的な本発明の状態マシンは、各特定状態について以下の少なくとも1つを制御するように定義され得る。
-すべての承認済みメッセージのシーケンス
-特定メッセージについての承認済み送信元・送信先対
-通信レート(例えば、各特定メッセージの送信の周期性)
-車両の内部状態(例えば、エンジン状態、特定速度、点灯、など)および/または外部入力(例えば、雨、滑りやすい道路、車両に接続されたまたは車両への接続を求める少なくとも1つの外部システムの状態など)にかかるメッセージング論理
-それらの任意の組み合わせ
【0029】
いくつかの実施形態では、承認済みメッセージ辞書および承認済み通信スキーマは、限定されるものではないが、例えば以下の論理層を含むことができる3つの論理層モデルを使用して表すことができる。
1.コンテンツ(データ)層-承認済みメッセージ辞書に含まれるすべての承認済み/有効(予め定義された)メッセージを表す。
2.ルーティング層-特定メッセージのすべての承認済み送信元・送信先対を表す。
3.コンテンツ(状態)層-以下の少なくとも1つを表す。
-すべての承認済みメッセージのシーケンス
-通信レート(例えば、各特定メッセージの送信の周期性)
-車両の内部状態(例えば、エンジン状態、特定速度、点灯、など)および/または外部入力(例えば、雨、滑りやすい道路、車両に接続されたまたは車両への接続を求める少なくとも1つの外部システムの状態など)にかかるメッセージング論理
-それらの任意の組み合わせ
【0030】
いくつかの実施形態では、3つの層はすべて、本明細書で詳述するような例示的な本発明の状態マシンを使用して実装され得る。
【0031】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、製造仕様を電子的に取得し、少なくとも1つの承認済みメッセージ辞書データベースおよび/または少なくとも1つの承認済み通信スキーマデータベースを自動的に生成するように構成されている。いくつかの実施形態では、承認済みメッセージ辞書に関連付けられた定義および承認済み通信スキーマに関連付けられた定義は、同じデータベース内に存在することができる。
【0032】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、
図1で特定される例示的な構成要素を含むように構成されている。例えば、いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、様々な車両ネットワーク間の所定部分またはすべての通信がセキュリティ通信ロックダウンを実装するように構成された本発明の装置を通って流れ、それらをバイパスすることができないように車両ネットワーク内に設置された1つ以上のECUを含むことができる。いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、セキュリティ通信ロックダウンを必要とする車両ネットワークの一部のみを制御するように構成され得る。いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、特定のネットワークに対して単一のECU通信のみを制御するように構成され得る。いくつかの実施形態では、セキュリティ通信のロックダウンを実装するために、例示的な本発明の装置は、本発明の装置の能力および/または機能を何ら意識する必要なく通信が通過することができる他のすべてのECUに対して透過的であるように構成されている。例えば、他のECUは、あたかもそこにいないかのように通信を続けることができる。
【0033】
いくつかの実施形態では、
図2に示すように、分散アーキテクチャでセキュリティ通信ロックダウンを実装するために、例示的な本発明の特別にプログラムされたコンピューティングシステムは、限定されるものではないが、
-セキュリティ通信ロックダウンを実装するように構成された少なくとも1つの本発明の装置は、車両の特定の通信ネットワーク専用であり、入口/出口点として機能する、
-セキュリティ通信ロックダウンを実装するように構成された少なくとも1つの本発明の装置は、(例えば、3Gモデム、Wi-Fiルータなどの前の)各外部通信ポイントに専用である(
図2)、および/または
-セキュリティ通信ロックダウンを実装するように構成された少なくとも1つの本発明の装置は、ネットワーク内の特定のECU(例えば、テレマティクスECU、インフォテイメントECU、エンジン管理ECU)に専用である、
などに配置されたセキュリティ通信ロックダウンを実装するように構成されている。
【0034】
いくつかの実施形態では、
図3に示すように、中央アーキテクチャでセキュリティ通信ロックダウンを実装するために、例示的な本発明の特別にプログラムされたコンピューティングシステムは、車両のネットワークのすべてを相互接続するセキュリティ通信ロックダウンを実装するように構成された本発明の中央装置を含むことができる。例えば、
図3に示すように、セキュリティ通信ロックダウンネットワークを実装するように構成された例示的な本発明の装置は、バイパスすることができないように配置されている(ネットワークの内外、外部インターフェース内外、およびネットワーク間のすべての通信は、例示的な本発明の中央装置を通過する)。
【0035】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明の装置は、承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースに対するすべての通信を検証し、それが確かに有効であることを確認するように構成されている。いくつかの実施形態では、
図4に示すように、セキュリティ通信ロックダウンを実施するために、例示的な本発明の装置は、何らかの理由で承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースに対する検証に失敗した任意の通信をドロップする(例えば、消去する)ように構成されている。
【0036】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明の装置は、通信がその意図された送信先に転送されることを許可するかまたは阻止するかを決定し、それによって攻撃を防止するように構成されている。
【0037】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明の装置は、阻止された各通信を記録するように構成されている。いくつかの実施形態では、セキュリティ通信のロックダウンを実施するために、例示的な本発明の装置は、失敗した各通信を毎回または予め定義された周期ベースで、バッチで報告するために表示(例えば、警告、レポート)を生成するように構成されている。いくつかの実施形態では、表示は、視覚的形式、音声形式、またはその双方であってもよい。
【0038】
いくつかの実施形態では、セキュリティ通信のロックダウンを実施するために、例示的な本発明の装置は、承認済み通信にロックダウンを強制することにフォーカスすることによって特定の攻撃または攻撃戦略に対して完全に不可知であるように構成されている(すなわち、予め定義された許可された通信のみが通過するのを許可される)。例えば、例示的な承認済みメッセージ辞書データベースおよび/または例示的な承認済み通信スキーマデータベースは、実行時にいかなる可能な修正もなく完全に静的且つ決定論的である。いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、(例示的な承認済みメッセージ辞書データベースおよび/または例示的な承認済み通信スキーマデータベース内の各承認済みメッセージ通信スキーマが同じままである限り)更新を必要とせず、いかなる外部エンティティとの接続がないように構成されている。いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、例示的な承認済みメッセージ辞書データベースおよび/または例示的な承認済みメッセージ通信スキーマデータベースに従って静的決定機構をあてにするように構成されている。
【0039】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された関連装置を有する本発明の特別にプログラムされたコンピューティングシステムは、相互接続するすべてのネットワーク間の物理的分離を提供し、したがってネットワーク間の悪意のあるまたは不慮の不正漏洩に対するセキュリティの追加層を提供するように構成されている。
【0040】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された本発明の装置は、典型的には車両に存在するゲートウェイECUの代わりに設置され、したがって記載された本発明の通信ロックダウン機能を提供しながらフィットおよび機能する形態でゲートウェイECUを置き換えるように構成されている。
【0041】
セキュリティ通信ロックダウンを実装するように構成された本発明の中央装置の実例
【0042】
1つのケースでは、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置(すなわち、本発明のECU)は、車両の3つのネットワーク、すなわちMOST(メディア・オリエンテッド・システムズ・トランスポート)プロトコルに基づくインフォテインメントネットワーク、CAN(制御エリアネットワーク)プロトコルに基づく駆動系ネットワーク、およびイーサネット(登録商標)および/またはFlexRay(ISO 17458-1から17458-5)通信プロトコルに基づくセーフティネットワークに相互接続することができる。いくつかの実施形態では、
図5に示すように、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、少なくとも以下の構成要素を含むことができる:少なくとも1つのプロセッサ(例えば、マイクロプロセッサ)、メモリユニット(例えば、フラッシュ記憶メモリ、DDR RAMベースの実行時メモリ)、少なくとも1つのCANトランシーバ、少なくとも1つのMOSTトランシーバ、および少なくとも1つのFlexRayトランシーバ。
【0043】
いくつかの実施形態では、例示的なマイクロプロセッサは、特定のボード(プロセッサおよびメモリと互換性がある)上で動作するためにすべてのドライバおよび3つすべてのトランシーバのドライバを含むLinux(登録商標)に基づくソフトウェアパッケージを有することができる。例えば、セキュリティ通信ロックダウンを実装するように構成された例示的かつ中心的な本発明の装置の例示的なLinux(登録商標)の実装では、以下の並列に処理する4つの実行プロセスが存在することができ、これには、それぞれが各ネットワーク上の特定の通信を処理する3つのプロセスおよびセキュリティ通信のロックダウンを実装する本発明のセキュリティコアを実行する第4のプロセスがある。セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、例えば、限定されるものではないが、XMLフォーマットにおけるすべての承認済みメッセージのリストを含むことができる承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースを記憶するように構成されている。例えば、データベース内の各承認済みメッセージエントリは、例えば、これに限定されるものではないが、ビットレベル(ビットレベル表現)で各メッセージが有することができるすべてのフィールドを定義することができる。
【0044】
いくつかの実施形態では、例えば、各メッセージは、固有のメッセージIDを含むことができる。同様に、承認済み通信スキーマデータベースは、例えば、これに限定されるものではないが、互いに通信することが承認される送信元ECU・送信先ECU対の形態で各通信スキーマの定義を含むことができる。例えば、各対について、承認済み通信スキーマデータベースは、各送信元ECU・送信先ECU対の間で通過することができる承認済みメッセージに対応するメッセージIDのリストを含むことができる。例えば、各対について、承認済み通信スキーマデータベースはまた、これらのメッセージのそれぞれが送信され得る承認済みレートを定義することもできる(例えば、毎秒2回まで)。例えば、各対について、承認済み通信スキーマデータベースはまた、各メッセージが送信され得る車両、通信、および/またはネットワークの承認済みコンテキストまたは状態を定義することもできる(例えば、特定のメッセージが送信されることが許可される前に特定のメッセージに先行することができるメッセージのすべての組み合わせを定義する)。
【0045】
いくつかの実施形態では、
図4に示すように、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、限定されるものではないが、以下のように、受信された各通信を処理するように構成されている。セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、メッセージを受信し、そのメッセージを承認済みメッセージ辞書データベースと比較するように構成されている。セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置が、承認済みメッセージ辞書データベース内の許可されたメッセージのエントリに対するメッセージと一致しない場合、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、そのようなメッセージを阻止するように構成されている。一致が見つかった場合、いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、メッセージのメッセージIDを記録/記憶するように構成されている。
【0046】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、承認済み通信スキーマデータベースに少なくとも部分的に基づいて、送信元および送信先ECUおよび/またはネットワークが互いに通信することができる旨を検証するために次のチェックを実行するように構成されている。メッセージがこの送信元・送信先対およびメッセージIDのチェックを通過した場合、いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、承認済みコンテキストを検証することによって次のチェックをさらに実行するように構成されている。
【0047】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、例示的な本発明の装置が起動されてから通過したメッセージの全履歴をそのメモリに含めるように構成されている。いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、承認済み通信スキーマデータベースに基づいて、メッセージのコンテキストが承認されたかどうかを判定するために履歴(例えば、このメッセージが通過するために必要な前提条件のメッセージが記録された)をチェックすることによって次のチェックをさらに実行するように構成されている。詳細チェックのいずれかが失敗した場合、セキュリティ通信ロックダウンを実施するように構成された例示的な本発明の装置は、メッセージをドロップするように構成されている。すべての詳細チェックがクリアされた場合、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、送信先ECUが接続されているそのターゲットネットワークにメッセージを送信するように構成されている。
【0048】
例えば、セーフティネットワークに無線で接続できるタイヤ空気圧監視センサ(TPMS)は、インフォテインメントコンピュータに右前タイヤの圧力を含むメッセージを送信する。セキュリティ通信ロックダウンを実施するように構成された例示的な本発明の装置が、承認済みメッセージ辞書データベース内で一致が見つかったとき、このメッセージがシステム内の有効メッセージである旨を判定する-すなわち、右前タイヤの圧力を有するTPMSからのメッセージが存在する可能性があると定義するエントリが存在する。さらに、承認済み通信スキーマデータベースは、TPMS ECUがインフォテイメントECUに1秒に1回、任意のコンテキスト(以前の履歴要件なし)でメッセージを送信できることを定義し、したがって、セキュリティ通信のロックダウンを実装するように構成された例示的な本発明の装置は、これらの判定に基づいてメッセージを検証し、運転者に表示するためにインフォテイメントECUにそのメッセージを渡す。
【0049】
TPMSセンサがハッキングされ、攻撃者が駆動系ネットワーク内のエンジンECUにエンジン停止メッセージを送信しようとした場合、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、メッセージ自体が承認済みメッセージ辞書データベースに存在するために検証されたとき、TPMS ECUおよびエンジンECUの送信元・送信先対が承認済み通信スキーマデータベースには存在しない旨を判定する。例えば、承認済み通信スキーマデータベースは、車両の特定の状況および特定の状態が、TPMSセンサが停止メッセージをエンジンに送信することを許可しないことを定義することができる。結果として、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、メッセージを阻止(ドロップ/消去)して攻撃を防止するように構成される。
【0050】
いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、メッセージの検証に関して送信先ECUによって認識されるメッセージが検証されたことを示すメッセージにメタデータの一部を追加するように構成されている。いくつかの実施形態では、セキュリティ通信ロックダウンを実装するように構成された例示的な本発明の装置は、メッセージが検証を通過したことを送信元ECUに警告するように構成されている。
【0051】
ECUの構成ロックダウンの例示
【0052】
いくつかの実施形態では、本発明の特別にプログラムされたコンピューティングシステムは、セキュリティ通信ロックダウンを実装するように構成された本発明の装置に関して構成ロックダウン手順を実装するとともに、車両内に存在する他の各ECUに関して構成ロックダウン手順を実装するように構成されている。例えば、セキュリティ通信ロックダウンは、特定のECUの内部に実装され得る(例えば、本発明のソフトウェア/ハードウェア構成要素をECUのアーキテクチャに追加する)。別の例では、セキュリティ通信ロックダウンは、そのようなECUとネットワークとの間で本発明の通信ロックダウンを実装する本発明のソフトウェア/ハードウェア構成要素をECUに取り付けることによって実装され得る。
【0053】
例えば、
図6に示すように、一般に、特定の時点/期間におけるECUの全体的な状態は、ソフトウェアの実行、そのメモリの状態および/またはそのハードウェア構成要素によって定義される。例えば、例示的な本発明の構成ロックダウン手順は、信頼できるエンティティ(例えば、製造業者)によって設定可能な特定のECUを動作させるために必要なソフトウェアおよび/またはファームウェアパッケージ(例えば、ドライバ)の定義-すなわち、「承認済みソフトウェアパッケージ定義」-をあてにすることができる。例えば、例示的な本発明の構成ロックダウン手順は、さらに、メモリの少なくとも一部が書き込み可能および/または読み取り可能であるロックダウンを必要とするメモリのコンテンツ(例えば、ソフトウェアのコード、構成パラメータなど)を定義することができる「承認済みメモリマップ」定義をあてにすることができる。例えば、例示的な本発明の構成ロックダウン手順は、さらに、仮想ハードウェア装置(例えば、ソフトウェアでエミュレートされるハードウェア装置)を含む、特定のECU内のすべてのハードウェアのマッピングを少なくとも含む「承認済みハードウェア構成」定義をあてにすることができる。例えば、承認済みハードウェア構成定義は、ハードウェアの構成パラメータ(例えば、アドレス、クロック、ピン設定、動作モード、およびそれらの任意の組み合わせ)を含むことができる。
【0054】
いくつかの実施形態では、ECUごとに構成ロックダウンを実施するために、追加の本発明のソフトウェア/ファームウェアおよび/またはハードウェア構成要素(「構成ロックダウン構成要素」)が各ECUに追加される。いくつかの実施形態では、構成ロックダウン構成要素のタイプおよび動作条件は、各ECUに関連する動作および/または環境要因に基づいて変化し得る。例えば、いくつかの実施形態では、構成ロックダウン構成要素は、ECUおよび/または他のハードウェア構成要素によって実行される各ソフトウェアおよび/またはファームウェアによるすべてのメモリアクセスを検証するように構成されている。例えば、構成ロックダウン構成要素は、限定されるものではないが、以下のうちの少なくとも1つを実行するように構成されている。
1)ECUメモリに記憶され且つ実行されるとロードされる承認済みソフトウェアパッケージが変更されていないことを検証する。
2)実行時メモリ(例えば、RAM)にロードされた承認済みソフトウェアパッケージが実行中に変更されていないことを検証する。
3)承認済みメモリマップ定義に基づいて承認済みメモリマップが無効化されていない-例えば、ソフトウェアおよび/またはハードウェアエンティティがそうしようとしている動作のために承認されるメモリセクションのみを使用している(例えば、メモリの読み出し専用のセクションが書き込まれていない、ロックされたセクションがアクセスされていない、コードおよび命令メモリがデータ用に使用されていないなど)ことを検証する。
4)承認済みハードウェア構成定義に基づいてハードウェア構成を記憶しているメモリが無効化されていない(例えば、ハードウェアアドレスが変更されていない、構成パラメータが承認された範囲を超えて変更されていないなど)ことを検証する。
【0055】
例えば、ハードウェア構成は、通常、ECUの初期化中にロードされるため、一般的なシナリオでは、実行時にハードウェア構成が何ら変更されるべきではない。いくつかの実施形態では、ECUごとに構成ロックダウンを実施するために、本発明の構成ロックダウン構成要素は、各ハードウェア構成要素がその特定の構成のみを受信することを保証するように構成されている。
【0056】
いくつかの実施形態では、
図7に示すように、ECUごとの構成ロックダウンを実施するために、本発明の構成ロックダウン構成要素は、ECU内のメモリ(例えば、記憶装置および実行時メモリの双方)を物理的に分離して承認済み構成定義(例えば、承認済みソフトウェアパッケージ定義、承認済みメモリマップ定義、承認済みハードウェア構成定義、およびそれらの任意の組み合わせ)を実施する少なくとも1つの専用ハードウェア構成要素を含む。
【0057】
ここで参照するように、用語「記憶メモリ」は、コードおよび/またはデータが休止状態で記憶される不揮発性コンピュータメモリ(例えば、ハードドライブ、フラッシュメモリなど)を対象とする。
【0058】
ここで参照するように、用語「実行時メモリ」は、現在実行中のプログラムの実行に使用されるコードおよび/またはデータを記憶するために使用される動作メモリ(例えば、RAM)を対象とする。
【0059】
いくつかの実施形態では、
図8に示すように、ECUごとに構成ロックダウンを実施するために、本発明の構成ロックダウン構成要素は、ECU上のすべてのメモリアクセスを仲介するソフトウェアまたはファームウェアの部分を含む。例えば、ECU毎に構成ロックダウンを実施するために、本発明の構成ロックダウン構成要素は、メモリに常駐および/または連続的に動作するように構成され、したがって、本発明の構成ロックダウン構成要素は、バイパスすることができない-すなわち、すべての必要なメモリアクセスは、本発明の構成ロックダウン構成要素を通過するものとする。
【0060】
いくつかの実施形態では、
図7に示すような本発明の構成ロックダウン構成要素は、内蔵不揮発性メモリ(例えば、フラッシュメモリを有するチップ上のシステム)を有する少なくとも1つのプロセッサ(例えば、マイクロプロセッサ)を含むことができる。いくつかの実施形態では、本発明の構成ロックダウン構成要素は、記憶メモリおよび/または実行時メモリに直接接続され、すべてのアクセスは、本発明の構成ロックダウン構成要素を介して行われる。例えば、プロセッサは、記憶メモリおよび/または実行時メモリにおいて読み取り可能および/または書き込み可能なすべてのメモリセクションのメモリ内のリストを有する。例えば、本発明の構成ロックダウン構成要素は、特定のECUのメインプロセッサおよび/または特定のECUの別の構成要素から到来する各メモリコマンドをチェック/検証するように構成されている。例えば、本発明の構成ロックダウン構成要素は、限定されるものではないが、以下の少なくとも1つをチェックするように構成されている:
-読み取りまたは書き込みのコマンドであるか?
-メモリのどの部分にアクセスしようとしているか?
-このメモリ内のどのアドレスにアクセスしようとしているか?
【0061】
例えば、本発明の構成ロックダウン構成要素は、それらのパラメータを、ローカルに記憶される承認済み構成定義(例えば、承認済みソフトウェアパッケージ定義、承認済みメモリマップ定義、承認済みハードウェア構成定義、およびそれらの任意の組み合わせ)と比較するように構成されている。例えば、本発明の構成ロックダウン構成要素が、必要なメモリアドレスが特定の動作(例えば、読み出し/書き込み)のためにアクセス可能であるとしてリスト化されていると判定した場合、本発明の構成ロックダウン構成要素は、そのようなコマンドの実行を可能にするように構成されている。例えば、本発明の構成ロックダウン構成要素が、必要なメモリアドレスが特定の動作のためにアクセスできないとしてリスト化されていると判定した場合、本発明の構成ロックダウン構成要素は、コマンドを阻止するように構成されている。いくつかの実施形態では、本発明の構成ロックダウン構成要素は、アクセス違反があることをコマンドを送信したエンティティに報告することができる。いくつかの実施形態では、本発明の構成ロックダウン構成要素は、アクセス違反の記録を記録する。
【0062】
いくつかの実施形態では、本発明は、少なくとも以下の構成要素を含む例示的な本発明の装置を提供する:少なくとも1つのネットワークの少なくとも1つの電子制御ユニット(ECU)と動作可能に関連付けられた少なくとも1つのセキュアロックダウン構成要素を含み、少なくとも1つのセキュアロックダウン構成要素は、前記装置が、i)任意の他のネットワークから少なくとも1つのネットワークを物理的に分離すること、ii)前記少なくとも1つのネットワークに導かれる外部入力から前記少なくとも1つのネットワークを物理的に分離すること、iii)少なくとも1つの他のECUから少なくとも1つのECUを物理的に分離すること、iv)前記少なくとも1つのECUに導かれる外部入力から前記少なくとも1つのECUを物理的に分離すること、v)前記少なくとも1つのECU内の前記少なくとも1つの処理ユニットから前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素を物理的に分離すること、およびvi)それらの任意の組み合わせを行うことのうちの少なくとも1つを行うように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、少なくとも1つのセキュアロックダウン手順を実行するようにプログラムされた少なくとも1つのプロセッサと、i)すべての有効な電子メッセージのエントリを含む少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む少なくとも1つの承認済み通信スキーマデータベース、iii)少なくとも1つの予め定義された状態マシン、iv)前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素の承認済みコンテンツ、およびvii)前記少なくとも1つのECU内の少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つを記憶する少なくとも1つの不揮発性メモリ構成要素とを含み、前記少なくとも1つのセキュアロックダウン構成要素の前記少なくとも1つのプロセッサは、実行時に、i)前記少なくとも1つのネットワークに向けられた、ii)前記少なくとも1つのネットワーク内で送信された、iii)前記少なくとも1つのネットワークから少なくとも1つの外部コンピューティング装置に外部送信された、iv)前記少なくとも1つのECUに向けられた、またはv)前記少なくとも1つのECUから送信されるべき、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素に送信されるべき、vii)前記少なくとも1つのECU内の少なくとも1つのハードウェア構成要素を構成するように送信されるべき、のうちの少なくとも1つである各電子メッセージを分析するように構成された前記少なくとも1つのセキュアロックダウン手順を実行するように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、i)すべての有効電子メッセージのエントリを含む前記少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む前記少なくとも1つの承認済み通信スキーマデータベース、およびiii)前記少なくとも1つの予め定義された状態マシンのうちの少なくとも1つに基づいて各電子メッセージを分析し、各電子メッセージの分析に基づいて、少なくとも1つの未承認の変更を生じさせる、またはi)前記少なくとも1つのネットワークの前記少なくとも1つのECUの少なくとも1つの動作構成、ii)1)前記1つの他のECUおよび2)前記少なくとも1つのネットワークの外部に位置する少なくとも1つの外部電子コンピューティング装置のうちの少なくとも1つと通信するように前記少なくとも1つのECUによって利用される少なくとも1つの通信スキーマ、iii)前記少なくとも1つの承認済みメッセージ辞書データベース、iv)前記少なくとも1つの承認済み通信スキーマデータベース、v)前記少なくとも1つの予め定義された状態マシン、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素の承認済みコンテンツ、vii)前記少なくとも1つのECU内の前記少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つに違反する少なくとも1つの未承認の電子メッセージを特定し、前記少なくとも1つの不正電子メッセージが前記少なくとも1つのセキュアロックダウン構成要素を通過するのを阻止するように構成されている。
【0063】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン手順は、少なくとも1つの通信セキュアロックダウン手順である。
【0064】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン手順は、少なくとも1つの構成セキュアロックダウン手順である。
【0065】
いくつかの実施形態では、コンテキスト通信認識分析は、複数の電子メッセージの少なくとも1つの予め定義された通信シーケンスと、複数の電子メッセージの少なくとも1つの予め定義された通信レートのうちの少なくとも1つに少なくとも部分的に基づいている。
【0066】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、i)ビットごとの分析およびii)コンテキスト通信認識分析のうちの少なくとも1つに基づいて各電子メッセージを分析するように構成されている。
【0067】
いくつかの実施形態では、少なくとも1つのネットワークの少なくとも1つのECUの少なくとも1つの動作構成は、i)少なくとも1つのECUの少なくとも1つの承認済みハードウェア構成、およびii)少なくとも1つのECUの少なくとも1つの承認済みソフトウェア構成のうちの少なくとも1つを備える。
【0068】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素の少なくとも1つのプロセッサは、さらに、実行時に、1)少なくとも1つの不揮発性メモリ構成要素に記憶された少なくとも1つの承認済みソフトウェア構成が変更されていないこと、2)実行時メモリにロードされた少なくとも1つの承認済みソフトウェア構成が実行中に変更されていないこと、3)承認済みメモリマップが無効化されていないこと、および4)少なくとも1つの承認済みハードウェア構成を記憶する少なくとも1つの不揮発性メモリ構成要素の一部が無効化されていないこと、のうちの少なくとも1つを検証するように構成されている。
【0069】
いくつかの実施形態では、少なくとも1つの未承認の変更を引き起こすかまたは違反する少なくとも1つの不正電子メッセージの判定は、少なくとも1つのECUの動作構成および少なくとも1つのECUの実行時環境の予め定義された静的状態のうちの少なくとも1つに少なくとも部分的に基づいている。
【0070】
いくつかの実施形態では、すべての予め定義された有効メッセージのそれぞれについて、少なくとも1つの承認済みメッセージ辞書データベースは、少なくとも1つの承認済みメッセージ構造定義および各メッセージパラメータの少なくとも1つの承認済み値を定義する少なくとも1つのエントリを備える。
【0071】
いくつかの実施形態では、各承認済み通信スキーマについて、少なくとも1つの承認済み通信スキーマデータベースは、i)電子メッセージのすべての承認済みシーケンス、ii)各電子メッセージについてのすべての承認済み送信元・送信先対、iii)すべての承認済み通信レート、iv)少なくとも1つのネットワークの内部状態に基づくすべての承認済みメッセージング動作プロトコル、v)少なくとも1つのネットワークに関連付けられた少なくとも1つの外部入力に基づくすべての承認済みメッセージング動作プロトコル、vi)少なくとも1つのECUの内部状態に基づくすべての承認済みメッセージング動作プロトコル、vii)少なくとも1つのECUに関連付けられた少なくとも1つの外部入力に基づくすべての承認済みメッセージング動作プロトコル、およびviii)それらの任意の組み合わせのうちの少なくとも1つを定義する少なくとも1つのエントリを備える。
【0072】
いくつかの実施形態では、少なくとも1つの予め定義された状態マシンは、i)電子メッセージのすべての承認済みシーケンス、ii)各電子メッセージのすべての承認済み送信元・送信先対、iii)承認済みすべての通信レート、iv)少なくとも1つのネットワークの内部状態に基づくすべての承認済みメッセージング動作プロトコル、v)少なくとも1つのネットワークに関連付けられた少なくとも1つの外部入力に基づくすべての承認済みメッセージング動作プロトコル、vi)少なくとも1つのECUの内部状態に基づくすべての承認済みメッセージング動作プロトコル、vii)少なくとも1つのECUに関連付けられた少なくとも1つの外部入力に基づくすべての承認済みメッセージング動作プロトコル、およびviii)それらの任意の組み合わせのうちの少なくとも1つを定義するように構成されている。
【0073】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、以下の論理層のうちの少なくとも1つを有するように構成されている:1)すべての予め定義された有効メッセージを表すコンテンツ論理層、2)すべての承認済みソースを表すルーティング論理層、および3)i)電子メッセージのすべての承認済みシーケンス、ii)各電子メッセージについてのすべての承認済み送信元・送信先対、iii)すべての承認済み通信レート、iv)少なくとも1つのネットワークの内部状態に基づくすべての承認済みメッセージング動作プロトコル、v)少なくとも1つのネットワークに関連付けられた少なくとも1つの外部入力に基づくすべての承認済みメッセージング動作プロトコル、vi)少なくとも1つのECUの内部状態に基づくすべての承認済みメッセージング動作プロトコル、vii)少なくとも1つのECUに関連付けられた少なくとも1つの外部入力に基づくすべての承認済みメッセージング動作プロトコル、およびviii)それらの任意の組み合わせのうちの少なくとも1つを表す状態論理層。
【0074】
いくつかの実施形態では、少なくとも1つのネットワークは車両内に存在する。
【0075】
いくつかの実施形態では、少なくとも1つのECUは、車両内の少なくとも1つの特定の機能を実行し、またはこれに影響を及ぼすように構成された少なくとも1つの電子コンピューティング装置である。
【0076】
いくつかの実施形態では、すべての予め定義された有効メッセージは、少なくとも部分的に、車両製造業者の車両仕様またはECU製造業者の少なくとも1つのECUのECU仕様に基づいて予め定義される。
【0077】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、さらに、少なくとも1つの信頼できる電子送信元から車両仕様を電子的に取得し、車両仕様に基づいて、1)少なくとも1つの承認済みメッセージ辞書データベース、2)少なくとも1つの承認済み通信スキーマデータベース、および3)少なくとも1つの予め定義された状態マシンのうちの少なくとも1つを動的に生成するように構成されている。
【0078】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、さらに、少なくとも1つの不正電子メッセージを消去するように構成されている。
【0079】
いくつかの実施形態では、少なくとも1つの未承認の変更は、少なくとも1つのサイバー脅威に少なくとも部分的に基づく変更である。
【0080】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、さらに、少なくとも1つの不正電子メッセージの少なくとも1つの表示を生成するように構成されている。
【0081】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、さらに、各承認済み電子メッセージにメタデータを追加するように構成されており、メタデータは、装置によって承認されると少なくとも1つの送信先ECUによって認識されるように構成されている。
【0082】
いくつかの実施形態では、少なくとも1つのネットワークは車両外に存在する。
【0083】
いくつかの実施形態では、少なくとも1つの不正電子メッセージは、少なくとも1つのサイバー脅威に関連している。
【0084】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、ハードウェア、ソフトウェアスタックに沿った少なくとも1つの場所、またはその双方のうちの1つにおいて少なくとも1つの不正電子メッセージを阻止するように構成されている。
【0085】
いくつかの実施形態では、少なくとも1つの予め定義された状態マシンは、1)コンテンツ論理層、2)ルーティング論理層、および3)状態論理層のうちの少なくとも1つを実装するように構成されている。
【0086】
いくつかの実施形態では、少なくとも1つのセキュアロックダウン構成要素は、さらに、少なくとも1つの不正電子メッセージの少なくとも1つの表示を記録すること、装置の外部にある少なくとも1つの外部電子送信先に対して少なくとも1つの不正電子メッセージの少なくとも1つの表示を送信することのうちの少なくとも1つを行うように構成されている。
【0087】
いくつかの実施形態では、少なくとも1つのセキュアなロックダウン構成要素は、さらに、少なくとも1つの許可された電子メッセージの少なくとも1つの表示を生成すること、少なくとも1つの許可された電子メッセージ、少なくとも1つの表示、またはその双方を記録すること、装置の外部にある少なくとも1つの外部電子送信先に対して少なくとも1つの許可された電子メッセージの少なくとも1つの表示を送信することのうちの少なくとも1つを行うように構成されている。
【0088】
いくつかの実施形態では、本発明は、例示的な本発明の装置を車両に組み込むことを少なくとも含み、前記例示的な本発明の装置が少なくとも以下の構成要素を含む方法を提供する:少なくとも1つのネットワークの少なくとも1つの電子制御ユニット(ECU)と動作可能に関連付けられた少なくとも1つのセキュアロックダウン構成要素を備え、前記少なくとも1つのECUは前記車両内に存在し、前記少なくとも1つのセキュアロックダウン構成要素は、前記装置が、i)任意の他のネットワークから少なくとも1つのネットワークを物理的に分離すること、ii)前記少なくとも1つのネットワークに導かれる外部入力から前記少なくとも1つのネットワークを物理的に分離すること、iii)少なくとも1つの他のECUから少なくとも1つのECUを物理的に分離すること、iv)前記少なくとも1つのECUに導かれる外部入力から前記少なくとも1つのECUを物理的に分離すること、v)前記少なくとも1つのECU内の前記少なくとも1つの処理ユニットから前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素を物理的に分離すること、およびvi)それらの任意の組み合わせを行うことのうちの少なくとも1つを行うように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、少なくとも1つのセキュアロックダウン手順を実行するようにプログラムされた少なくとも1つのプロセッサと、i)すべての有効な電子メッセージのエントリを含む少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む少なくとも1つの承認済み通信スキーマデータベース、iii)少なくとも1つの予め定義された状態マシン、iv)前記少なくとも1つのECU内の少なくとも1つのメモリ構成要素の承認済みコンテンツ、およびvii)前記少なくとも1つのECU内の少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つを記憶する少なくとも1つの不揮発性メモリ構成要素とを含み、前記少なくとも1つのセキュアロックダウン構成要素の前記少なくとも1つのプロセッサは、実行時に、i)前記少なくとも1つのネットワークに向けられた、ii)前記少なくとも1つのネットワーク内で送信された、iii)前記少なくとも1つのネットワークから少なくとも1つの外部コンピューティング装置に外部送信された、iv)前記少なくとも1つのECUに向けられた、またはv)前記少なくとも1つのECUから送信されるべき、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素に送信されるべき、vii)前記少なくとも1つのECU内の少なくとも1つのハードウェア構成要素を構成するように送信されるべき、のうちの少なくとも1つである各電子メッセージを分析するように構成された前記少なくとも1つのセキュアロックダウン手順を実行するように構成されており、前記少なくとも1つのセキュアロックダウン構成要素は、i)すべての有効電子メッセージのエントリを含む前記少なくとも1つの承認済みメッセージ辞書データベース、ii)少なくとも1つの承認済み通信スキーマの少なくとも1つのエントリを含む前記少なくとも1つの承認済み通信スキーマデータベース、およびiii)前記少なくとも1つの予め定義された状態マシンのうちの少なくとも1つに基づいて各電子メッセージを分析し、各電子メッセージの分析に基づいて、少なくとも1つの未承認の変更を生じさせる、またはi)前記少なくとも1つのネットワークの前記少なくとも1つのECUの少なくとも1つの動作構成、ii)1)前記1つの他のECUおよび2)前記少なくとも1つのネットワークの外部に位置する少なくとも1つの外部電子コンピューティング装置のうちの少なくとも1つと通信するように前記少なくとも1つのECUによって利用される少なくとも1つの通信スキーマ、iii)前記少なくとも1つの承認済みメッセージ辞書データベース、iv)前記少なくとも1つの承認済み通信スキーマデータベース、v)前記少なくとも1つの予め定義された状態マシン、vi)前記少なくとも1つのECU内の前記少なくとも1つのメモリ構成要素の承認済みコンテンツ、vii)前記少なくとも1つのECU内の前記少なくとも1つのハードウェアユニットの承認済み構成のうちの少なくとも1つに違反する少なくとも1つの未承認の電子メッセージを特定し、前記少なくとも1つの不正電子メッセージが前記少なくとも1つのセキュアロックダウン構成要素を通過するのを阻止するように構成されている。
【0089】
静的状態マシンに基づくセキュリティ通信ロックダウンの実例-セキュアネットワークオーケストレータ(SNO)
【0090】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、セキュリティ通信ロックダウンを実施するように構成された本発明の例示的な装置は、静的(有限)状態マシンとして動作するSNO構成要素(例えば、状態/イベントベースマシン、統一モデリング言語(UML)状態マシン、仕様および記述言語(SDL)状態マシン、通信インターフェースを介してSNO構成要素装置に出入りするメッセージの形態の入出力タップを有するツーリングマシン)として構成されている。例えば、本明細書で詳述するように、セキュリティ通信ロックダウンは、外部起源、内部起源、またはその双方のセキュリティ脅威に基づいて要求されることが可能である。いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明のSNO構成要素は、少なくとも1つの承認済みメッセージ辞書データベースおよび/または少なくとも1つの承認済み通信スキーマデータベースを実施するために、物理的なECUまたは既に存在するECU内のソフトウェア構成要素とすることができる。いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明のSNO構成要素は、それ自身でセキュアであり、その動作原理を変更する可能性がある攻撃に耐えるように構成されている。例えば、例示的な本発明のSNO構成要素は、実行中の変更に対して、承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースを含んでセキュアにするように構成されており、したがって、本明細書で定義される静的ロックダウン原理を支持する。例えば、例示的な本発明のSNO構成要素の完全性は、ISO/IEC 15408などの適切な方法および規格を使用して検証および認証されるように構成されている。
【0091】
例えば、SNO ECUなどの例示的な本発明のSNO構成要素は、1つ以上のプロセッサ(例えば、マイクロプロセッサ)、記憶メモリ、実行時メモリ、および典型的には例示的な本発明のSNO構成要素を介して相互接続するネットワークと通信するために必要なハードウェア(例えば、ハードウェアトランシーバ)を含むことができる。例えば、
図9に示すように、例示的な本発明のSNO構成要素は、MOSTプロトコルに基づくインフォテインメントネットワーク、CANプロトコルに基づく駆動系ネットワーク、および/またはFlexRayプロトコルに基づくセーフティネットワークを相互接続することができる。
【0092】
いくつかの実施形態では、例示的な本発明のSNO構成要素は、ソフトウェア構成要素の形態であってもよく、またはソフトウェア構成要素とハードウェア構成要素との組み合わせであってもよい。例えば、例示的な本発明のSNO構成要素は、これに限定されるものではないが、オペレーティングシステムカーネルなどのセキュア分離カーネル、またはハードウェアとそのハードウェア上で動作するアプリケーションとの間のミドルウェアを含むことができる。いくつかの実施形態では、セキュア分離カーネルは、複数のパーティションと、サブジェクトとそれらのパーティションに割り当てられたエクスポートされたリソースとの間を流れる制御情報とを確立し、隔離し、分離することを主な機能とするハードウェアおよび/またはファームウェアおよび/またはソフトウェア機構の形態とすることができる。いくつかの実施形態では、セキュア分離カーネルは、米国国家安全保障局(NSA)によって確立された分離カーネル保護プロファイル(SKPP)(2007年)に従って実装され、その具体的な説明は、参照することによって本明細書に組み込まれる。例えば、例示的な本発明のSNO構成要素のセキュア分離カーネルは、これに限定されるものではないが、Green HillsのIntegrity(登録商標)カーネル、Wind RiverのVxWorks MILS(登録商標)カーネル、Lynx SoftwareのLynxSecure(登録商標)カーネルを含む分離カーネルのうちの1つ以上とすることができる、または具体的には(本発明の原理に従って変更された)それらの変更バージョンとすることができる。
【0093】
いくつかの実施形態では、セキュア分離カーネルの機能は、以下のうちの少なくとも1つを含むことができる。
サブジェクトに利用可能とされたエクスポートされたリソースからの評価セキュリティ機能のターゲット(TSF)によって使用される内部リソースの分離、
エクスポートされたリソースのパーティションおよび分離、
パーティションとエクスポートされたリソースとの間の情報の仲介、
監査サービス、およびそれらの任意の組み合わせ。
【0094】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明のSNO構成要素のセキュア分離カーネルは、複数のアプリケーション(例えば、プロセス)を独自の仮想「コンパートメント」において実行するのを可能にする「アプリケーションパーティション」を提供するために利用され、各アプリケーション(例えば、プロセス)は、これらに限定されるものではないが、プロセッサ時間やメモリ割り当てなどの専用リソースを有することができる。例えば、本発明のセキュア分離カーネルの形態の例示的な本発明のSNO構成要素は、いくつかのアプリケーションまたはアプリケーションパーティション(例えば、スレッド)の間で、プロセッサおよびメモリリソース、および/またはその使用を分離する。いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、以下の少なくとも2つのレベルでアプリケーションパーティション間の分離を提供することができる。
1.プロセッサタイムスロットの分離-各アプリケーションパーティションは、本発明のセキュア分離カーネルによって実施される独自の静的に割り当てられたタイムスロットを有するものとする(すなわち、タイムスロットが終了すると、次のパーティションが静的スケジューラに従ってスイッチインされる)。
2.メモリアドレス空間の分離-各アプリケーションパーティションは、独自のメモリアドレス空間を有するものとし、本発明のセキュア分離カーネルは、各パーティションがその割り当てられたセグメント(例えば、メモリアドレス範囲)のみにアクセスするように構成されている。
【0095】
いくつかの実施形態では、例示的な本発明のSNO構成要素で利用されるセキュア分離カーネルは、アプリケーションまたはアプリケーションパーティション間のセキュア分離を提供し、したがって、それらが互いに影響を及ぼす可能性のある状態を防止する(例えば、1つの感染したプログラムは、他に感染することができ、または1つのクラッシュしたプログラムは、他をクラッシュする)。例えば、プロセッサとメモリの双方のリソースが分離されているため、1つのパーティションからのコードは、異なるパーティションのメモリに読み書きすることができない。例えば、プロセッサ時間の分離のために、例示的な本発明のSNO構成要素のセキュア分離カーネルは、それらが本発明のセキュア分離カーネルによってスケジュールされるため、1つのパーティションからの第1のコードが異なるパーティションからの第2のコードの実行を拒否することができるときのシナリオを容易にすることができ、したがって、本発明のセキュア分離カーネルの動作は、1つのパーティションによる別のパーティションへのサービス攻撃の拒否を防止する。例えば、悪意のあるコードが1つのパーティションに入っている場合であっても、悪意のあるコードは、拡散したりまたは他のパーティションに影響を与えたりすることができない。いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、ハードウェア分離(例えば、アプリケーションパーティションのセットまたはアプリケーションのセットについてのプロセッサ、メモリおよび他の構成要素の分離)に入ることなく十分なセキュリティ保護を提供することができる。
【0096】
いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、その制御下にあるすべてのエクスポートされたリソースをパーティションに割り当てるように構成されている。いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、明示的に許可された情報フローを除いて、隔離されたパーティションを維持することができる。いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、そのフローが許可されていない限り、他のパーティションにおけるサブジェクトから1つのパーティションにおけるサブジェクトのアクションを隔離するように構成されている(すなわち、検出または通信することができない)。いくつかの実施形態では、用語「パーティション」および「サブジェクト」は、直交抽象である。例えば、用語「パーティション」は、数学的起源によって示されるように、システムエンティティの集合論的グループ分けを提供することができるが、用語「サブジェクト」は、システムの個々のアクティブエンティティを記述して実装するために利用可能である。例えば、パーティション(0個以上の要素を含む集合)は、サブジェクト(アクティブ要素)ではないが、0個以上のサブジェクトを含むことがある。
【0097】
いくつかの実施形態では、パーティションおよびフローを管理するために、例示的な本発明のSNO構成要素のセキュア分離カーネルは、少なくとも部分的に、
図10の「セキュリティコア」として指定された項目の一部である本発明の状態マシンおよび/または承認済みメッセージ辞書データベースおよび/または承認済みの通信スキーマデータベースをあてにするように構成されている。例えば、例示的な本発明のSNO構成要素のセキュア分離カーネルは、ハードウェア(例えば、プロセッサ、メモリなど)上で直接実行されるように、および/または様々なハードウェア構成要素へのドライバおよび低レベルソフトウェアインターフェイスを提供するファームウェアパッケージ(本明細書では、「ボードサポートパッケージ」または「BSP」と称される)の一部であるように、および/またはBSPと様々な通信ネットワーク/プログラムのためのソフトウェアインターフェースとの間でBSP(
図10に示される)上で直接実行されるように構成され得る。
【0098】
例えば、例示的な本発明のSNO構成要素のセキュア分離カーネルは、とりわけ少なくとも以下の要素を含むことができるARM Integrator 920Tボード用のWind River(商標)ボードサポートパッケージ(BSP)の一部であるかまたはその上で実行され得る。
-ROM SIZEやRAM HIGH ADRSなどの定数を定義するconFIGhファイル
-フラッシュメモリへのプログラミングのためのVxWorks ROMイメージのバイナリバージョンを定義するMakefile
-ボードのブートラインパラメータを定義するbootromファイル
-スイッチやジャンパの設定、割り込みレベル、およびオフセットバイアスなどのボード固有の情報を記述するtarget.refファイル
-VxWorksイメージ
-様々なCファイルは、
-flashMem.c-ボードのフラッシュメモリの装置ドライバ、
-pcilomapShow.c-PCIバスのマッピングファイル、
-primeCellSio.c-TTYドライバ、
-sysLib.c-このボード固有のシステム依存ルーチン、および
-romlnit.s-ボードのROM初期化モジュールを含み、
ROMから実行を開始するイメージのエントリコードを備える。
【0099】
例えば、本発明の変更されたBSPは、少なくとも以下の動作を実行するように構成される。
-プロセッサの初期化
-バスの初期化
-割り込みコントローラの初期化
-クロックの初期化
-RAM設定の初期化
-セグメントの設定
-フラッシュからのブートローダのロードおよび実行
【0100】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、例示的な本発明のSNO構成要素のセキュア分離カーネルは、アプリケーションを実行するために必要な要素(例えば、メモリ管理ルーチンおよびプロセススケジューラ)を少なくとも含むマイクロカーネルの一部として構成されている。いくつかの実施形態では、例示的な本発明のSNO構成要素は、ユーザがユーザ空間において非セキュリティ構成要素を追加できるように構成されている。
【0101】
いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、各通信インターフェースが、セキュリティ通信ロックダウンを実施するように構成された例示的な本発明のSNO構成要素との相互作用を管理する別個のパーティションを有することを可能にする。例えば、通信インターフェースは、対応するハードウェアインターフェースを介してデータを送受信するために必要なロジックを実装するソフトウェア(例えば、デーモン[UNIX(登録商標)サービス]および/またはサービス)であってもよい。
【0102】
いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、オペレーティングシステムを介してコマンドを、ハードウェアに中継する低レベルファームウェアBSPに送信するために必要な機能およびドライバを含むように構成されている。例えば、例示的な本発明のSNO構成要素1のセキュア分離カーネルは、限定されるものではないが、UNIX(登録商標)ソケットおよびUNIX(登録商標) TCP/IPスタック、および低レベルファームウェアBSPなどのソフトウェアインターフェースからのメッセージを処理するように構成されている。例えば、例示的な本発明のSNO構成要素のセキュア分離カーネルは、例えば、1)BSPおよび/またはハードウェアに影響を及ぼす/操作する/変更するようなUNIX(登録商標)ソケットおよび/またはUNIX(登録商標) TCP/IPスタックを介した不正なコードまたはデータの注入、および2)UNIX(登録商標)ソケットおよび/またはUNIX(登録商標) TCP/IPスタックとオペレーティングシステムとの間の不正なデータ漏洩を防止するように構成されている。
【0103】
いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、例示的な本発明のSNO構成要素が、それぞれ別個のパーティションではなく単一のパーティション内のすべての通信インターフェースを処理することを可能にする。いくつかの実施形態では、例示的な本発明のSNO構成要素のセキュア分離カーネルは、少なくとも1つの専用パーティションで実行されるように構成されている。
【0104】
いくつかの実施形態では、セキュア分離カーネルに加えて、例示的な本発明のSNO構成要素は、通過するいかなる通信に動的および静的に管理するために本明細書に詳述する本発明の原理に従って決定論的に構成された
図11に例示された本発明の有限状態マシンを含むように構成されている。
【0105】
いくつかの実施形態では、
図11に示すように、例示的な本発明のSNO構成要素はまた、限定されるものではないが、本明細書に記載された3つの論理層モデルとして、セキュア通信ロックダウンを実施して構成可能な各通信を検証するように承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースを含むように構成されている。例えば、受信された各通信は、送信先に進むことが阻止される(ドロップされる)かまたは許可される。例えば、例示的な本発明のSNO構成要素の有限状態マシンは、特定の通信が例示的な本発明のSNO構成要素によって受信される各現在のコンテキストを定義する(例えば、車両/車両ネットワーク内のECUの状態)。例えば、例示的な本発明のSNO構成要素は、受信された通信を、そのような各通信について承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースと比較することによって初期検証を実行するように構成されている。例えば、承認済みメッセージ辞書は、例えば、限定されるものではないが、ビットレベル(例えば、承認済み値を有するメッセージのすべてのフィールドのビット単位表現)ですべての承認済みメッセージのエントリを含む少なくとも1つのローカルデータベースに記憶され得る。例えば、例示的な本発明のSNO構成要素は、有限状態マシンと承認済み通信スキーマデータベースとを使用することによって通信スキーマをさらに検証するように構成されている。例えば、受信されたメッセージの通信スキーマを承認済み通信スキーマデータベースと検証するために、例示的な本発明のSNO構成要素は、(特定の環境(例えば、車両)内のすべての関連するECUのコンテキストおよび/または現在の状態を表すことができる)状態マシンの現在の状態において、受信されたメッセージが送信元ECUから送信先ECUに送信されることが許可されるかどうかをチェックする。許可されている旨を状態が指示する場合、例示的な本発明のSNO構成要素は、検証を完了し、メッセージを送信先ECUに送信するように構成されており、そうでなければ、例示的な本発明のSNO構成要素は、メッセージを阻止(ドロップ)し、したがって攻撃を防止するように構成されている。
【0106】
例えば、いくつかの実施形態では、メッセージの送信元および送信先は、メッセージおよびそのコンテキストの一部であるとみなされ、メッセージを検証するために承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースと比較することによって検証される。例えば、
図11に示すように、例示的な本発明の状態マシンは、所与の瞬間に送信され得る承認済みメッセージのセットを管理する任意の車両パラメータを含む(すなわち、例示的な状態マシンは、車両の全体的な状態を定義する)。例えば、各状態ベクトルは、特定の動作時間(例えば、オン、アイドル、オープン、クローズ、または他の同様に定量化可能な測定値)において、車両内のすべてのECUまたは車両内のすべての関連するECUの少なくとも一部の状態を含むことができる。例えば、例示的な本発明の状態マシンはまた、予め定義された権限(例えば、製造業者)によって定義された予め設定されたロジックを含むこともできる。予め設定されたロジックの例は、以下とすることができる。ECU Aは、オンにされ、したがって、ECU Bは、動作を開始しなければならないが、ECU AがECU AとECU Bとの間の専用信号経路を介してオンにされていることから、関連ネットワークを介した通信は行われない。
【0107】
例えば、
図12に示すように、例示的な本発明の状態マシン内の任意の状態は、少なくとも1つの状態ベクトルを使用して表すことができる。いくつかの実施形態では、各状態ベクトルは、所与の時点における車両の状態および可能な値の組み合わせを定義する車両パラメータのすべてまたは少なくとも関連部分を含むことができる。例えば、状態ベクトルは、エンジンECUによって報告された現在の速度、それらの専用ECUによって報告されたペダルの状態、および定量化可能な形態で通信可能な他の関連する追加のECUの状態を含むことができる。
【0108】
いくつかの実施形態では、各状態(およびそれを定義する状態ベクトル)について、それについて承認されたすべての有効メッセージ(メッセージの一部として送信元および送信先を含む)を定義するリストが存在する。いくつかの実施形態では、リストは、状態遷移の形態で実装され、各有効メッセージは、現在の状態から別の状態への遷移として生じる。例えば、いくつかの実施形態では、受信メッセージが承認メッセージ辞書データベースに存在する場合、例示的な本発明のSNO構成要素は、受信メッセージに対応する現在の状態からの適切な遷移がないと判定するが、例示的な本発明のSNO構成要素は、メッセージをドロップするように構成されている(承認済み通信スキーマに従って検証されない)。したがって、そのような実施形態では、状態マシンは、承認済み通信スキーマデータベースの役割を果たすように構成されている。例えば、承認済み状態マシンは、各状態のエントリと、本明細書で説明されるように設定された承認済み遷移のリストとを含む少なくとも1つのデータベース内のメモリにローカルに記憶され得る。
【0109】
例えば、いくつかの実施形態では、各法的メッセージは、状態遷移に対応し、すべての承認済みメッセージを構成する多数の状態をもたらす。その結果、未確認の(不正な)メッセージは、状態遷移を引き起こさない。
【0110】
例えば、いくつかの実施形態では、記憶された各状態は、そのような状態に対して許可されるすべてのメッセージのリストを含むおよび/または関連付けられる。例えば、許可されたメッセージのリストのいくつかのメッセージは、状態遷移を引き起こす。
【0111】
例えば、いくつかの実施形態では、例示的な本発明のSNO構成要素は、実行時メモリに現在の状態を記憶し、そのような通信を検証するために任意の新たな通信が到来したときにアクセスするように構成されている。いくつかの実施形態では、遷移が起こると(例えば、受信されたメッセージが検証されて送信される)、例示的な本発明のSNO構成要素は、現在の状態を更新するように構成されている。例えば、
図13は、例示的な本発明のSNO構成要素によって受信され得る一連のメッセージとの通信の例と、例示的な本発明の状態マシンを利用するそれらの検証プロセスを示している。
【0112】
いくつかの実施形態では、本発明の原理に従って、例示的な本発明の状態マシンは、各ECU仕様を分析して、そのようなECUが入る可能性のある様々な状態と、どのパラメータがこれらの状態を変更するかを判定することによって生成される。例えば、車両が常に動いているという事実は、車両が動いている間はエンジンをオフにすることができないため、独自の状態である。例えば、状態遷移に重要な車両の様々なパラメータ(速度、アクセルペダル位置など)はまた、各状態ベクトルに含めることもできる。
【0113】
いくつかの実施形態では、本発明の原理に従って、例示的な本発明の状態マシンは、したがって、複数の状態ベクトルから導出され、特定の状態ベクトルにおける様々な状態の各固有の組み合わせは、マシンにおいて単一の状態として表される。例えば、いくつかの実施形態では、状態量を最小にするために車両のいくつかの一般的なパラメータ(例えば、速度など)は無視され得る。例えば、上記詳述したように、各状態について、仕様に基づいて、この状態において有効である承認済みメッセージ辞書からのすべての承認メッセージのリストが存在し得る。
【0114】
図13では、状態マシンの各状態は、状態マシンの隣に対応する状態ベクトルとともに示されている。
図13に示すように、例示的な本発明のSNO構成要素によって受信された例示的な通信は、車両が始動されており(すなわち、インストルメントクラスタECUからエンジンECUに送信された「スタート」コマンド)、アクセルペダルが押圧されてペダルECUからエンジンECUにメッセージが送信された後、車両がインストルメントクラスタECUによってオフされることを示すことができる。
図13に示される進行中のある時点で、例示的な本発明のSNO構成要素は、アクセルペダルが押圧されていることを例示的な本発明の状態マシンが識別したとき、電子ハンドブレーキECUからハンドブレーキメッセージを受信し、例示的な本発明のSNO構成要素は、ハンドブレーキメッセージに対応する状態4からの遷移が存在しないため、ハンドブレーキメッセージを阻止する(したがって、攻撃を阻止する)ように構成されている。
【0115】
いくつかの実施形態では、例示的な本発明のSNO構成要素は、
図13に例示された本発明の状態マシンを承認済み通信スキーマデータベースとして利用し、それを実施するように構成されている。例えば、通信が受信されて承認済みと検証されるたびに、例示的な本発明のSNO構成要素は、受信したメッセージに従ってその状態マシンを新たな状態に更新するように構成されている。結果として、例示的な本発明の状態マシンの状態になされた更新のログは、以前の通信の履歴を表す。
【0116】
図14は、屋根を開閉する機能を有するコンバーチブル車両のシナリオにおける例示的な本発明のSNO構成要素の例示的な動作の例を示している。例えば、機械的な理由から、屋根は、毎時30マイル(mph)未満でしか開閉することができない。この特定の例では、関与するECUは、例えば、現在の速度を計算して現在の速度データのメッセージを車両内の他のECUに送信するエンジンECU、記憶式屋根動作を制御する開閉式屋根ECU、加速するためのコマンドを送信するアクセルペダルECU、およびエンジンを始動および停止し且つ運転者に現在の速度を表示しながら屋根を開閉するためのすべての制御を有するインストルメントクラスタECUである。さらに、この例示的な例では、車両をオフにするために、屋根は閉じられなければならない。
【0117】
この例示的な例では、各ECUは、(対応するECUの隣に大きな円で示される)IDを有し、各メッセージタイプは、(対応するメッセージの隣に小さな円で示される)IDを有する。この例示的な例では、
図15に示すように、例示的な承認済み通信プロトコル/スキーマは、以下の各メッセージについて4つのフィールドから構成されるように定義される。送信元ECU、送信先ECU、送信されるメッセージIDおよび値。各フィールドは8ビット長である。この例示的な例では、送信元および送信先ECU値は、1-4であり、メッセージIDの値は、1-5である。
【0118】
この例示的な例では、承認済み機関(例えば、製造業者)は、関連するECUに対して以下の仕様を提供することができる。エンジンECUは、0~250mphの範囲で定義されている現在の速度でインストルメントクラスタおよび開閉式屋根ECUを更新する。開閉式屋根ECUは、屋根の現在の状態(0=閉、1=開)でインストルメントクラスタを更新する。アクセルペダルECUは、ペダルの現在位置を0-1の間の連続値によって定義されるペダルの現在の位置でエンジンECUを更新し、ここで、1は完全に押圧され、0は全く押圧されない。インストルメントクラスタECUは、エンジン始動/停止コマンドと屋根開閉コマンドとをエンジンおよび開閉式屋根ECUにそれぞれ送信する。この例では、上記の例示的な仕様は、
図16に示された承認済みメッセージ辞書に変換され、例示的な本発明のSNO構成要素内に記憶されるおよび/または例示的な本発明のSNO構成要素によってアクセスされる少なくとも1つのデータベースに記憶される。
【0119】
図16に示すように、それぞれ、例示的な「エンジン始動」コマンドは値1で定義され、例示的な「エンジン停止」は値0で定義され、例示的な「屋根開」コマンドは値1で定義され、例示的な「屋根閉」コマンドは値0で定義される。この特定の例では、この例の例示的な有限状態マシンの各状態ベクトルは、様々なECUが入ることができるすべての関連状態(仕様に従って動作モードが変化する状態)を導出することによって生成される。
図17は、この特定の例についての例示的な状態ベクトルを示している。
【0120】
例えば、開閉式屋根ECUは、速度が30mphを超えるときおよび30mphを上回る速度から30mphを下回るときに状態を変更する。したがって、状態ベクトルは、屋根が動作可能な速度(「低速」状態)か否か(「高速」状態)に車両があるかどうかを示す状態を含む。
図18は、この特定の例のために採用された例示的な本発明の状態マシンの概略図を示している。
図18は、各状態が対応する状態ベクトルを有することを示している。例えば、例示的な状態遷移は、特定の値を有する少なくとも1つの特定のメッセージが例示的な本発明のSNO構成要素によって受信されたときに行われる。例示的な本発明のSNO構成要素は、(例えば速度が20から22mphに上昇した場合などの、状態変化が生じなかった場合であっても)各有効化されたメッセージで各状態ベクトルを更新する。
【0121】
コンテキストで送信されるメッセージを強制することに加えて、状態マシンを利用する例示的な本発明のSNO構成要素は、状態遷移なしで試みられる不正な値の変更を強制(防止)することもできる。例えば、権限(例えば、製造業者)は、変化が5mphを超える場合にのみ速度値が更新可能であると決定することができ、例示的な本発明のSNO構成要素が新たな速度値を担持するメッセージを受信した場合、例示的な本発明のSNO構成要素は、例示的な状態マシンに基づいてメッセージを分析して、新たな速度値が現在の状態ベクトルの現在の速度値から5mphを超えて異なるかどうかを判定する。新たな速度値が5mphを超えて異ならない場合、例示的な本発明のSNO構成要素は、メッセージを破棄するように構成されている。したがって、例示的な本発明のSNO構成要素は、状態ベクトルを使用して現在の状態の完全性を保護する。
【0122】
表1は、例示的な状態マシンが
図18で特定された「屋根閉鎖におけるエンジン」状態にある間に受信されたメッセージを例示的な本発明のSNO構成要素が受信した場合に、例示的な本発明のSNO構成要素によって実行される例示的なコードを示している。
【0123】
いくつかの実施形態では、本発明の特別にプログラムされたコンピューティングシステムは、互いに通信するECUの各対に対して構成された別個の有限状態マシンを含むことができ、特殊状態マシンのネットワークをもたらす。いくつかの実施形態では、本発明の特別にプログラムされたコンピューティングシステムは、通信ネットワークの各対が共同で利用されて様々なECU間でメッセージを交換するように構成された別個の有限状態マシンを含むことができる。いくつかの実施形態では、本発明の特別にプログラムされたコンピューティングシステムは、使用可能な車両内の各プロセスのために別個の有限状態マシンを含むことができる。例えば、開閉式屋根を有する上記の例では、開閉式屋根の操作のために別個の有限状態マシンが定義される。そのような場合、例示的な本発明のSNO構成要素は、受信された各メッセージに対していくつかの状態マシンの状態を更新するように構成され得る。
【0124】
いくつかの実施形態では、本発明の特別にプログラムされたコンピュータシステムは、例えば製造業者仕様を電子的に取得し、特定の承認済みメッセージ辞書、各特定の状態ベクトルおよび対応する状態マシンを生成する自動ツールを含むことができる。例えば、自動ツールは、タグ付き言語(XMLなど)でエンコードされた仕様を取得することができる。
【0125】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するように構成された本発明の特別にプログラムされたコンピューティングシステムおよび関連する本発明の装置は、完全に決定論的であり、コンピュータプログラムを使用して完全に分析され、セーフティおよびセキュリティについて容易に認証され得る。例えば、例示的な分析は、特定の各入力の下で、特定の本発明の状態マシンが未定義状態および/または無許可状態に入らず、特定の本発明の状態マシンおよび対応する本発明のSNO構成要素が予め定義された使用に従って挙動することを検証することができる。
【0126】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するように構成された本発明の特別にプログラムされたコンピューティングシステムおよび関連する本発明の装置は、製造業者の仕様に基づいて定義され得る車両のすべての可能な状態の一部のみをカバーする部分状態マシンを含むことができ、いずれの状態とも一致しない各通信は、通信に関連する各メッセージが承認済みメッセージ辞書データベースに対して検証され得る限り、ロックダウン装置によってドロップまたは許可される。
【0127】
【0128】
いくつかの実施形態では、セキュリティ通信ロックダウン(本発明のロックダウン装置)を実施するように構成された本発明の特別にプログラムされたコンピューティングシステムおよび関連する本発明の装置は、さらに、プロトコル変換機能も実装するように構成され、それらは、それらに接続された通信ネットワーク間のデータ解釈器として機能することができる。例えば、メッセージが検証された後、本発明のロックダウン装置は、受信ネットワークおよび/またはECUの通信プロトコルに基づいてメッセージを変換するように構成され得る。例えば、メッセージが有効であれば、本発明のロックダウン装置は、特定のメッセージをMOSTプロトコルからCANプロトコルに変換することができる。
【0129】
いくつかの実施形態では、本発明のロックダウン装置は、適切な種類の少なくとも1つの暗号鍵および/またはセキュリティ証明書などの他の同様のセキュリティ関連データを記憶するセキュアメモリを保持するように構成され得る。いくつかの実施形態では、本発明の特別にプログラムされたコンピューティングシステムは、内部および/または外部ECU通信のための、または、限定されるものではないが、オンライン決済のための車両識別、車両通信に対する車両についての認証および暗号化、製造業者から受信した更新の認証、他のECUのために信頼できるプラットフォームモジュール(TPM)として効果的に機能することなど、任意の他の適切な目的のための暗号鍵および/または証明書を利用するように構成され得る。
【0130】
いくつかの実施形態では、本発明のロックダウン装置は、ネットワークレベルおよび/または個別のECUレベルのいずれかで暗号化および/または認証スキームを使用するように構成され得、したがって、暗号化通信を終了し、送信先に対して別の通信を開始すること、またはそれに接続されたセッション暗号化と認証ネットワークの任意の他の組み合わせを可能にする。
【0131】
例えば、いくつかの実施形態では、自動車インフォテイメントMOSTネットワークおよびクリティカルセーフティLINネットワークに接続された例示的な本発明のロックダウン装置は、双方のネットワークが同じ車両に属しているにもかかわらず、MOSTネットワークとセーフティLINネットワークとの間のすべての通信を拒否する製造業者の要求に基づいて構成され得る。別の例では、例示的な本発明のロックダウン装置は、データをインフォテインメント画面でグラフィカルに表示するために、エンジン管理CANネットワークに接続された特定のECUで生成された製造業者指定のテレメトリデータがMOSTネットワーク内で通信されることを可能にするように構成され得る。
【0132】
別の例では、本発明のロックダウン装置は、車両のユーザのプライバシーを保護するように構成され得る。例えば、車両は、車両に組み込まれた無線3Gモデムを介して、自動緊急サービス呼を発する(例えば、電子レポートを送信する)ようにプログラムされてもよい。事故の場合、車両は、ユーザの状態に関係なく、自動救急サービスコールを発して瞬時に事故について当局に知らせることができる。例えば、そのようなレポートは、オンボードGPS受信機を介して判定された車両の位置、年齢、性別、居住地、電話番号および/またはユーザの病状などのユーザまたは所有者の個人情報を含むことができる。例えば、そのようなレポートはまた、型、年式、VIN(車両識別番号)、ナンバープレート、エアバッグ展開状態および/または直近2分のテレメトリデータなどの車両自体に関するデータを含むこともできる。例えば、レポートは、事故の時間と場所、重症度、怪我の可能性のある医学的プロフィール、探したい車両、連絡する家族を判定するのに十分な情報を含むことができ、緊急対応チームが向上した効率でそれらの責務を行うことを可能にする。そのようなシーンの詳細な記述や関連する可能性のある記述は、プライバシーに関する重大な懸念を引き起こす。
【0133】
例えば、事故の場合、以下のことが起こる可能性がある。
1.(通信ロックダウンECUに接続された)「セーフティネットワーク」にあるセンサは事故を検出し、タスクに割り当てられたECUは、当局のレポートを作成する。レポートは、ロックダウンECUによって受信され、承認済みメッセージ辞書および通信スキーマに従って検証される。
2.ECUは、CANバスインターフェースを介して3Gモデムを搭載した(または直接接続している)通信ロックダウンECUとの内部通信を確立し、レポートを送信する。
3.通信ロックダウンECUは、認証されたリモート緊急通知サーバとの新たな暗号化接続を確立し、レポートを送信する。
【0134】
このシナリオでは、いくつかの実施形態によれば、機密情報は、オンボードネットワーク上で暗号化されずに移動するが、本発明のロックダウン装置によって検証され、暗号化され、正しい外部送信先に送信される。
【0135】
いくつかの実施形態では、本発明のロックダウン装置が存在する物理的ハウジングは、(例えば、マイクロスイッチセンサ、光学センサおよび他の同様に適した技術/装置を利用して)物理的ハウジングが開かれたかまたは破損したことを検出することができる耐候性手段を含むことができ、本発明のロックダウン装置に記憶されているすべてのソフトウェアおよびデータをセキュアに消去することができる。
【0136】
いくつかの実施形態では、本発明のロックダウン装置は、車両内に展開する必要がある外部ソフトウェアパッケージを認証および/または検証するように構成され得る。例えば、本発明のロックダウン装置は、外部ソフトウェアパッケージの暗号化署名を検証し、その暗号化を解読し、認可されたECUにのみ展開するように構成され得る。
【0137】
いくつかの実施形態では、ECUが受信されている通信の肯定応答を必要とするセッションベースの通信プロトコルを利用している場合、本発明のロックダウン装置は、通信を阻止した後にメッセージが受信されなかった旨の通知を送信ECUに対して送信するように構成され得る。
【0138】
いくつかの実施形態では、本発明のロックダウン装置は、展開されて(単一のECUとネットワークとの間の)単一の通信リンクを保護することができる。
【0139】
いくつかの実施形態では、本発明のロックダウン装置および本発明の状態マシンは、外部通信インターフェース(例えば、3G携帯電話、Wi-Fiなど)を介して車両と通信する外部システムの状態を考慮に入れることができる。
【0140】
静的実行環境エンフォーサ(SREE)に基づくECUの構成ロックダウンの例示
【0141】
いくつかの実施形態では、自動車ECUまたは任意のコンピューティングシステムのためのセキュリティ構成ロックダウンを実施するために、例示的な本発明のロックダウン装置は、承認済みソフトウェアパッケージ、承認済みメモリマップ、および/または承認済みハードウェア構成が実行時に変更されないことを確保するためにすべてのメモリアクセスをセキュアに検証する本発明のSREE構成要素を含むことができるおよび/またはそれとして構成され得る。
【0142】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、実行および記憶メモリの直前に位置してメモリ構成要素に直接相互接続され(他の装置がそれらに直接接続されることなく(すなわち、物理的にバイパス不可能である))、すべてのメモリアクセスを検証するハードウェア構成要素(アプリケーション特有集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)にかかわらず)として実装され得る。いくつかの実施形態では、例示的な本発明のSREE構成要素は、メモリロックダウンをセキュアに実施するためのファームウェア構成要素として実装され得る。いくつかの実施形態では、例示的な本発明のSREE構成要素は、ハードウェアとファームウェアとの組み合わせとして実装され得る。
【0143】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、別個のアプリケーションとしてオペレーティングシステム上で実行される悪意のあるソフトウェアから関連するコンピューティングシステムを保護するおよび/または別のアプリケーションの一部として自己を注入するように構成されている。いくつかの実施形態では、例示的な本発明のSREE構成要素は、関連するコンピューティングシステムを悪意のあるソフトウェアの能力から保護して、「特権エスカレーション」と呼ばれるプロセスを介してセキュアリソースへのアクセスを得るように構成されている。通常、「特権エスカレーション」は、オペレーティングシステムコア(またはカーネル)を攻撃して、オペレーティングシステムコアと同じレベルのアクセスを得る必要がある。いくつかの実施形態では、例示的な本発明のSREE構成要素は、オペレーティングシステムコアソフトウェアの下に存在するBSP(ボードサポートパッケージ)ファームウェアの層の一部として構成されている。例えば、典型的には、組込みシステムでは、それはBSPと呼ばれ、PCでは、BIOS(基本入力/出力システム)と呼ばれる。ここで参照されるように、用語「BSP」は、オペレーティングシステムとハードウェア(ブートローダを含む)との間に存在する任意のタイプのミドルウェアを含む。上記詳述したように、BSPは、オペレーティングシステムがコンピューティングシステムのハードウェア構成要素にアクセスするためのインターフェースを提供するドライバのセットである。上記詳述したように、典型的には、BSPは、プロセッサアクセス用のドライバ(例えば、アーキテクチャサポートパッケージ(ASP))、メモリアクセス用のドライバ(メモリ管理ユニット、記憶メモリ、および実行演算メモリ)および/または周辺装置用のドライバ(例えば、ネットワークカード、ビデオカード、USBコントローラなど)を含むことができる。上記詳述したように、例えば、Wind RiverのARM Integrator 920Tボード用BSP内において、flashMem.cファイルは、ボードのフラッシュメモリ用の装置ドライバを含み、romlnit.sファイルは、ボード用のROM初期化モジュール、ROMからの実行を開始するソフトウェアイメージを含む。いくつかの実施形態では、例示的な本発明のSREE構成要素は、本明細書に詳述されるECUロックダウン原理をいかなるオペレーティングシステムからも独立して且つ完全に実装するように構成されている。
【0144】
例えば、
図19に示すように、例示的な本発明のSREE構成要素は、すべてのメモリアクセス動作が例示的な本発明のSREE構成要素を介してルーティングされるように、BSPの不可欠な構成要素として実装される。いくつかの実施形態では、例示的な本発明のSREE構成要素は、メモリアクセス動作の実行を許可するか阻止するかを決定し、したがって本質的に攻撃を阻止するように構成されている。いくつかの実施形態では、例示的な本発明のSREE構成要素は、1つ以上の以下の基準に少なくとも部分的に基づいて判定を行うように構成されている。メモリ要求のタイプ(例えば、読み出しまたは書き込み)、ターゲットメモリ(例えば、記憶または実行)および/またはアクセスしようとしている特定のメモリアドレスまたはメモリアドレス範囲。
【0145】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、メモリ(記憶および実行の双方)の特定の予め定義されたアドレス範囲へのアクセス(書き込み、読み出し、またはその双方)を拒否することによって承認済みメモリマップの実施を実装するように構成されている。このようにして、
図20が示すように、例示的な本発明のSREE構成要素は、承認済みメモリマップが無効化されておらず、保護されたメモリ領域がアクセスされていないことを保証するように構成されている。表2は、
図20の例に従って実行するために例示的な本発明のSREE構成要素によって利用され得る例示的なコードを示している。
【0146】
【0147】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、例えば、ハードウェア構成を含み且つ読み出し動作のみを許可するメモリアドレスのリストを記憶することによって、例示的な承認済みハードウェア構成の実施を実装するように構成されている。例えば、
図21に示すように、システムブート(または初期化手順)の間、例示的な本発明のSREE構成要素は、ブートプロセス中にのみハードウェアへの読み出し専用アクセスを実施し、その後、これらのメモリ空間へのいかなるアクセスも防止してこのメモリセグメントを読み出し専用メモリ(ROM)にするように構成されている。いくつかの実施形態では、承認済みハードウェア構成が首尾よく検索されると、例示的な本発明のSREE構成要素は、オペレーティングシステムまたは任意の他のソフトウェア/ファームウェアがハードウェア構成要素を構成できるように構成されている。表3は、
図21の例に従って実行するために例示的な本発明のSREE構成要素によって利用され得る例示的なコードを示している。
【0148】
【0149】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、
図22に示すように、記憶メモリ用および実行時メモリ用の少なくとも2つの機構を利用することによって、例示的な承認済みソフトウェアパッケージハードウェア構成の強制を実施するように構成されている。いくつかの実施形態では、記憶メモリに記憶された承認済みソフトウェアパッケージの変更を防止するために、例示的な本発明のSREE構成要素は、承認済みソフトウェアパッケージが記憶されたアドレス空間のリストを利用し、いかなる変更も防止する(例えば、すべての書き込みアクセスが防止される)ように構成されている。いくつかの実施形態では、オペレーティングシステムは、これらのセキュアアドレス空間からのみソフトウェアをロードするようにプログラムされ、さらに、例示的な本発明のSREE構成要素は、これらのセキュアアドレス空間にも記憶され得る。例えば、これらのセキュアアドレス空間は、承認済みメモリマップに含まれ、それを介して本発明のSREE構成要素によって実施される。
【0150】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、2部アプローチを使用することによって実行時メモリの変更を防止するように構成されている。実行時メモリの第1の部分は、実行時に承認済みソフトウェアパッケージの実行可能コードを含む読み出しアクセス権のみを有する。例えば、例示的な本発明のSREE構成要素は、ブートプロセスの間およびオペレーティングシステムの介在なしに、承認済みソフトウェアパッケージ仕様に従ってそのようなコードのロードを強制する。オペレーティングシステムは、ソフトウェアを実行するために実行時メモリからそれを読み取ることができる。オペレーティングシステムは、それを実行するために承認済みすべてのソフトウェアコードのアドレス空間の静的構成を含んでいなければならない。実行中にソフトウェアによって使用されるすべてのデータは、実行時メモリの保護されていないセクション(第2の部分)に記憶され、オペレーティングシステムが完全に利用できるようにする。そのような分離は、完全に静的であり、予め認可されたメモリマップの一部として構成されているものとする。例えば、本発明のSREE構成要素のために予約されたメモリセクションは、承認済みメモリマップに従ってアクセスが拒否されるものとする。表4は、
図22の例に従って実行するために例示的な本発明のSREE構成要素によって利用され得る例示的なコードを示している。
【0151】
【0152】
承認済みメモリマップ、承認済みハードウェア構成および承認済みソフトウェアリストを記憶するために、例示的な本発明のSREE構成要素は、
図23に示されるようにアクセス不可能にマッピングされて例示的な本発明のSREE構成要素によってのみ使用される記憶メモリの専用部分を使用するように構成されている。
【0153】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、オペレーティングシステムが認識していない(専用ハードウェア記憶メモリのアドレス空間は、メモリコントローラによってOSに知られていないかまたは反映されていない)専用ハードウェア記憶メモリを使用するように構成されており、例示的な本発明のSREE構成要素のみが、専用ハードウェア記憶メモリにアクセスするように構成されている。
【0154】
いくつかの実施形態では、例えば、メモリアクセスコマンドが発行される場合、例示的な本発明のSREE構成要素は、動作のタイプ、アクセスされるメモリ、および/またはアクセスされる特定のメモリアドレス(および/またはアドレスの範囲)のうちの少なくとも1つに従って、ならびに、メモリアクセスコマンドが承認済みソフトウェアパッケージを無効化するかどうか、メモリアクセスコマンドが承認済みメモリマップを無効化するかどうか、およびメモリアクセスコマンドが承認済みハードウェア構成(またはその任意のサブセット)を無効化するかどうかのうちの少なくとも1つをチェックすることによって、メモリアクセスコマンドを実行するか否かを検証するように構成されている。いくつかの実施形態では、例示的な本発明のSREE構成要素は、任意の順序で検証を実行するように構成されている。例示的な本発明のSREE構成要素がメモリアクセスコマンドを無効にする場合、例示的な本発明のSREE構成要素は、メモリアクセスコマンドを阻止し(実行を許可しない)、攻撃が防止される。例示的な本発明のSREE構成要素がメモリアクセスコマンドを承認する場合、その動作は、
図24に示されるように、例示的な本発明のSREE構成要素によって実行されるか、または例示的な本発明のSREE構成要素による実行のために別の構成要素(例えば、マイクロプロセッサ)に渡され、任意の結果(例えば、メモリ読み出し動作の結果)が例示的な本発明のSREE構成要素または別の構成要素によって返される。表5は、
図24の例に従って実行するために例示的な本発明のSREE構成要素によって利用され得る例示的なコードを示している。
【0155】
【0156】
例えば、
図25は、記憶および実行時メモリのための例示的な承認済みメモリマップを示している(アドレスはバイト単位)。ブートプロセス中、ソフトウェアパッケージ(またはソフトウェアイメージ)は、記憶メモリから実行時メモリにコピーされて実行され得る。ブート時に、ハードウェア構成がアクセスされてハードウェアを構成し、その後、アクセスが防止される。ブートプロセスが終了した後(ブートプロセスは、ECUがオンになってオペレーティングシステムが完全にロードされて実行されるまで継続する)、すべてのメモリアクセス試行は、例えば
図24に示されるように、例示的な本発明のSREE構成要素によって実施される検証スキーマを通過するものとする。例えば、アドレス128への書き込みに対する記憶メモリアクセスは拒否されるが、アドレス228からの読み出しは実行される。読み出し試行が許可されている間、実行時メモリアドレス56への書き込みは拒否される。記憶メモリ内のアドレス0-99は、承認済みメモリマップおよび/または承認済みソフトウェアパッケージの構成を読み出すためにのみ例示的な本発明のSREE構成要素によって使用されるものとする。表6は、
図25の例に従って実行するために例示的な本発明のSREE構成要素によって利用され得る例示的なコードを示している。
【0157】
【0158】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、上記の実施構成要素(例えば、承認済みメモリマップ、承認済みソフトウェアパッケージおよび承認済みハードウェア構成)の任意の組み合わせを利用することによって構成ロックダウンを実施するように構成されている。いくつかの実施形態では、例示的な本発明のSREE構成要素は、上記の実施構成要素間で任意の順序で検証を実行するように構成されている。例えば、例示的な本発明のSREE構成要素は、上記の実施構成要素を(3つに分解する代わりに)単一の検証条件にともに結合するように構成されている。例えば、いくつかの実施形態では、承認済みメモリマップおよび承認済みハードウェア構成はまた、ブート中に実行時メモリにロードされ、そこで保護されたメモリ空間内に常駐することができる。
【0159】
例えば、すべての構成および実行可能なソフトウェアコードを含む記憶メモリへのすべてのアクセスを防止することによって、例示的な本発明のSREE構成要素は、悪意のあるソフトウェアがECUへのアクセスを管理する場合に保護を提供するように構成されている。保護されていない実行時メモリの一部で悪意のあるソフトウェアが管理した場合であっても、悪意のあるソフトウェアは、次回のECUの電源投入時に自己をメモリに記憶してロードすることができない。したがって、例示的な本発明のSREE構成要素は、例えば、ECUがオフにされて再びオンになると、承認済みソフトウェアのみがロードされて実行されることを保証するように構成されている。例示的な本発明のSREE構成要素は、例えば、ECUがターンダウンされると、悪意のあるコードを含まない予め定義された静的構成に戻ることを保証するように構成されている。
【0160】
いくつかの実施形態では、承認済みソフトウェアパッケージおよび/または他の強制構成要素を強制することを超えて、例示的な本発明のSREE構成要素は、オペレーティングシステム(OS)およびOS上で実行される任意のアプリケーションに対して透過的になるように構成されている。例えば、保護されたメモリがそこに存在しないかのようにアプリケーションが保護されたメモリにアクセスしようとすると、アプリケーションは、例示的なSREE構成要素が返すことができるアクセスエラーを受信することができる。例えば、実行時メモリ内の承認済みソフトウェアパッケージ実施の場合にのみ(例えば、記憶メモリの実施のみが使用される場合、例示的な本発明のSREE構成要素も透過的である)、OSは、上述したように例示的な本発明のSREE構成要素を認識しなければならない。
【0161】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、静的オペレーションロジックを有する静的構成要素として構成されている。例えば、例示的な本発明のSREE構成要素は、オペレーティングシステム(それが実施するマッピングを知る必要があるだけであり、例示的な本発明のSREE構成要素に依存するが、他の方法ではない)から独立して構成され、オペレーティングシステムは、アプリケーションを実行する。いくつかの実施形態では、例示的な本発明のSREE構成要素は、メモリアクセスを検証することによってロックダウン構成のみを実施するように構成されている。
【0162】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、ハードウェア管理ユニットの必要性を低減し、実施がOSに完全に透過的であるのを可能にするファームウェアメモリ管理ユニット(MMU)としても機能するように構成されている。OSは、メモリ管理ユニットに依存して、OSがアクセス可能なメモリの総アドレス空間を提供する。したがって、例示的な本発明のSREE構成要素がMMUでもある場合、例示的な本発明のSREE構成要素は、ロックダウンされていないアドレス範囲をOSに宣言するだけである。さらに、例示的な本発明のSREE構成要素は、OSのメモリ割り当てを仮想化して、OSが承認済みソフトウェアを実行時メモリにロードすることを決定するように構成され、例示的な本発明のSREE構成要素は、ソフトウェアをロードし、コードとデータメモリを分離するとともに、分離されていないことをOSに中継することによって、それが確かに承認済みソフトウェアであることを検証するように構成されている。したがって、例示的な本発明のSREE構成要素は、OSがコードを所望するアドレスを、コードが存在する実際の保護されたアドレスに仮想的に変換するように構成されている。
【0163】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、
図26で説明したようにメモリとECU構成要素の残りとの間に接続された少なくとも1つのマイクロプロセッサおよび/またはFPGAを含むように構成されている。例えば、いくつかの実施形態では、本発明のFPGAは、上述したのと同じロジック(
図21-
図24)を有して実装され、承認済みソフトウェア構成、承認済みメモリマップおよび承認済みハードウェア構成を維持する。いくつかの実施形態では、実施構成は、記憶メモリに記憶され、本発明のFPGAによって保護される。いくつかの実施形態では、本発明のFPGAは、
図22で説明したように、必要なメモリセグメンテーション(例えば、アクセスなし、読み出し専用など)を維持して記憶メモリから実行時メモリにコードをロードする予備タスクを実行ながら、実行中にメモリ動作を許可するか拒否するかを決定するように構成されている。
【0164】
いくつかの実施形態では、例示的な本発明のSREE構成要素は、(1)必要なメモリセグメンテーション(例えば、アクセスなし、読み出し専用など)を維持し且つ(2)記憶メモリから実行時メモリにコードをロードする予備タスクを実行しながら、ハイパーバイザを利用してメモリアクセス強制を提供して、OSとハードウェアとの間のアクセスを監督し、実行時にメモリ動作を許可するか拒否するかを決定することができるファームウェア層を提供するように構成されている。いくつかの実施形態では、ハイパーバイザを提供する例示的な本発明のSREE構成要素は、OSが承認済みソフトウェアを実行時メモリにロードすることを決定するとOSのメモリ割り当てを仮想化するように構成され得、例示的な本発明のSREE構成要素は、ソフトウェアをロードしてそのコードとデータメモリを分離するとともに、分離されていないことをOSに中継するによって、それが確かに承認済みソフトウェアであることを検証するように構成されている。したがって、例示的な本発明のSREE構成要素は、OSがコードを所望するアドレスを、コードが存在する実際の保護されたアドレスに仮想的に変換するように構成され得る。
【0165】
ECUにおいて通信ネットワークをセキュアに物理的に分離するための実例
【0166】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、本発明のロックダウン装置は、本発明のロックダウン装置に接続された異なる相互接続ネットワーク間の分離を強制するように構成されている。例えば、上記詳述したように、本発明のロックダウン装置は、各通信インターフェースが独自のパーティションに存在することを強制する本発明の分離カーネルを介してソフトウェアレベルの分離を実施するように構成され得る。
【0167】
いくつかの実施形態では、例えばサービスの拒否(DoS)攻撃の場合にセキュリティ通信ロックダウンを実施するために、本発明のロックダウン装置は、さらに、攻撃者がシステム/装置に入ることができる前にハードウェア分離を実施するように構成され得る。
【0168】
いくつかの実施形態では、ハードウェアの分離を実施するために、例示的な本発明の装置(例えば、本発明の変更されたECU)は、例えば、限定されるものではないが、具体的にプログラムされたフィールドプログラマブルゲートアレイ(FPGA)チップ、複合プログラマブルロジック装置(CPLD)および/または他の同様に適切なプログラマブルハードウェアプロセッサを利用するように構成されている。具体的には、本発明の変更されたFPGAは、実行中に変更することができない静的構成を実施するために何らかの方法で相互接続することができる基本論理セルのマトリックスを含む。例えば、いくつかの実施形態では、本発明の変更されたFPGAは、各インターフェースに対して別個のハードウェアトランシーバを有するように構成され得る。例えば、特定のインターフェース用のトランシーバは、特定のインターフェース(例えば、イーサネット(登録商標)、CAN、MOSTなど)を介してデータを送受信するために必要な電気的および電子的通信プロトコルを実装する。特定のインターフェースごとに別個のトランシーバセットを有することは、本発明の変更されたFPGAが本発明の通信ロックダウン装置に接続する異なるハードウェアインターフェースのすべてと通信することを可能にする。例えば、いくつかの実施形態では、トランシーバは、オンチップハードウェアおよび/または半導体知的財産(IP)コアの形態の外部専用ハードウェアまたはFPGAに対して内部のいずれかとすることができる(それぞれが再利用可能なロジックユニット、セル、またはFPGA上の特定の機能のチップレイアウト設計実装であり、FPGAをプログラムするために、内部にハードウェア構成要素を定義するIPコアを使用することができる)。
【0169】
例えば、本発明は、テキサスインスツルメンツ社のTCAN334G(商標)チップに適切に類似する専用のトランシーバを利用することができる。例えば、本発明は、ザイリンクス社のZynq 7000(商標)のFPGAおよびCANトランシーバを内蔵した例示的なシステムオンチップと適切に類似するハードウェアを構成することができる。例えば、本発明は、通信を可能にするためにFPGAに実装することができるザイリンクス社のCAN IPコアを利用することができる。
【0170】
本明細書で使用される場合、用語「トランシーバ」は、典型的にはバス上を流れるアナログ信号をデジタルビットに変換するハードウェアとソフトウェアとの組み合わせを指す。例えば、一部のトランシーバはまた、ビットをパケットに組み立てることもできる。例えば、本発明にかかる各IPコアは、各トランシーバから個々のビットを受信し、それらを特定の通信プロトコルに従ってパケットおよび/またはメッセージに組み立てる。いくつかの実施形態では、内蔵トランシーバを用いて、通常、双方の機能(すなわち、変換および組み立て)を含めることができる。いくつかの実施形態では、外部トランシーバを用いて、本発明の変更されたFPGAは、各IPコアを含むように構成され得る。例えば、
図29は、例示的な外部トランシーバを示している。
【0171】
次に、いくつかの実施形態では、本発明の変更されたFPGAは、
図27に示すような上記詳述した本発明の通信ロックダウンシステムファームウェアおよびソフトウェアを実行するプロセッサと通信することができる。
図10は、
図27の「セキュリティコア」として示された項目を含む構成要素の拡大図を示している。いくつかの実施形態では、セキュリティコアは、本発明の状態マシンおよび/または承認済みメッセージ辞書データベース、および/または承認済み通信スキーマデータベースを含むことができる。
【0172】
例えば、セキュリティ通信ロックダウンを実施するために、本発明のロックダウン装置は、本発明の変更されたハードウェア構成要素(例えば、本発明の変更されたFPGA)または構成要素を、各インターフェースごとに少なくとも1つ含むことができ、承認済みメッセージ辞書および/または承認済み通信スキーマに応じて通信の完全性およびレートを検証し、それに応じて必要なすべてのネットワーク(インターフェース)と通信することができる。いくつかの実施形態では、本発明の変更されたFPGA内の本発明の変更されたハードウェア構成要素は、静的に構築され、例えばビットレベルで承認済みメッセージ辞書および/または承認済み通信スキーマとの通信を検証する。いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、本発明の変更されたハードウェア構成要素は、すべての通信およびメッセージビットの完全な検証を実行するように、または部分的に承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースに対してメッセージの送信元および/または送信先のみを検証することによって構成され得る。いくつかの実施形態では、承認済みメッセージ辞書データベースおよび/または承認済み通信スキーマデータベースは、本発明の変更されたFPGAの一部としてハードウェアに静的に記憶され得る。
【0173】
いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、承認済みメッセージ辞書は、本発明の変更されたFPGA構成(例えば、ネットワークメッセージ検証構成要素の一部)の一部としてプログラムされ、実行中に本発明の変更されたFPGAを完全に静的にする。いくつかの実施形態では、セキュリティ通信ロックダウンを実施するために、本発明の変更されたFPGAは、例えば、特定のインターフェース上の承認済みメッセージレート、特定のタイプのメッセージなどを検証するように構成されている。検証を通過しないすべてのメッセージは、ドロップ(阻止)され、したがって本発明の変更されたFPGAは、攻撃を阻止するように構成されている。
【0174】
いくつかの実施形態では、すべてのネットワークインターフェースは、統一されたプロトコルおよびバック(例えば、TCP/IP)に通信を変換することができる統一された通信インターフェース(例えば、イーサネット(登録商標))を介してホストCPUと通信する。
図28は、本発明の変更されたFPGAに基づく本発明のハードウェアネットワーク分離の例を示している。例えば、本発明の変更されたFPGAに基づく本発明のハードウェアネットワーク分離は、以下のうちの少なくとも1つを可能にすることができる:
-本発明の変更されたFPGAは、特定の目的のためにのみ使用される専用のハードウェア構成要素として機能するため、実行速度が向上する。
-他のすべてのインタフェースおよびシステムソフトウェアとは物理的に分離される。
-より複雑な分析を行う必要があるCPU上のソフトウェア構成要素から処理の一部をオフロードする(例えば、DoS攻撃の場合、攻撃メッセージは、それらがソフトウェア構成要素に到達する前に本発明のハードウェアにおいて停止され、したがって通信オーバーフローが進むのを防止する)。
-承認済みメッセージ辞書に対してより速い速度で基本チェックを実施し、本発明のセキュア分離カーネルへの負荷を軽減することができる。
-限定されるものではないが、バッファオーバーフローやコードインジェクションなど、様々な形態の攻撃に対して復元力がある。
【0175】
注目すべきことに、本明細書に記載の実施形態は、もちろん、任意の適切なハードウェアおよび/またはコンピューティングソフトウェア言語を使用して実装され得る。これに関して、当業者は、使用され得るコンピュータハードウェアのタイプ、使用され得るコンピュータプログラミング技術のタイプ(例えば、オブジェクト指向プログラミング)、および使用され得るコンピュータプログラミング言語のタイプ(例えば、C++、Basic、AJAX、Javascript(登録商標))をよく知っている。上記の例は、もちろん、説明的なものであり、限定的なものではない。
【0176】
本発明の多くの実施形態が記載されているが、これらの実施形態は例示に過ぎず、限定的ではなく、本明細書に記載された本発明の方法論、本発明のシステム、および本発明の装置を含む多くの変更が当業者にとって明らかであり、互いに任意の組み合わせで利用され得ることが理解される。さらに、様々なステップは、任意の所望の順序で実行されてもよい(さらに任意の所望のステップが追加されてもよくおよび/または任意の所望のステップが排除されてもよい)。