(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】サイバー攻撃から車両を保護するための方法及び対応する装置
(51)【国際特許分類】
H04L 12/40 20060101AFI20240730BHJP
H04L 12/22 20060101ALI20240730BHJP
【FI】
H04L12/40 Z
H04L12/22
【外国語出願】
(21)【出願番号】P 2019221395
(22)【出願日】2019-12-06
【審査請求日】2022-11-07
(31)【優先権主張番号】102018000021550
(32)【優先日】2018-12-31
(33)【優先権主張国・地域又は機関】IT
(73)【特許権者】
【識別番号】519437087
【氏名又は名称】マレリ ヨーロッパ エス.ピー.エー.
(73)【特許権者】
【識別番号】519437098
【氏名又は名称】ウニベルシタ ディ ピサ
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ロザディニ クリスチャン
(72)【発明者】
【氏名】ネスシー ウォルター
(72)【発明者】
【氏名】バルダンジ ルカ
(72)【発明者】
【氏名】クロセッティ ルカ
(72)【発明者】
【氏名】ファヌッチ ルカ
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2015-136107(JP,A)
【文献】特表2016-522616(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-69/40
(57)【特許請求の範囲】
【請求項1】
コントローラエリアネットワーク(CAN)バスと、信号交換関係で前記CANバスに関連し、かつ、車両機能を制御するユニットに少なくとも部分的に関連する複数のノードとを含む、車両CAN通信ネットワークをサイバー攻撃から保護する方法であって、前記方法は、
不正なCANメッセージを識別すべく、前記複数のノードのうちのノード間で伝送中のCANメッセージの内容を分析する工程と、
前記不正なメッセージをブロックする工程と
を備え、
前記ブロックする工程は、破損したメッセージを取得すべく、前記ノードのCANコントローラによってエラーと認識される破損ビットシーケンスを挿入することによって、前記CANコントローラによって実行されるインテグリティチェックに対して前記不正なメッセージを無効にすることを有し、
前記方法は、前記不正なCANメッセージのインテグリティチェックフィールドにおいて、前記破損ビットシーケンスを挿入するビット時間を計算する工程を備え、
前記不正なメッセージのセパレーターフィールド
が、前記破損ビットシーケンスを含む前記不正なメッセージを受信する前記車両CAN通信ネットワークのノードによって生成される、エラーメッセージの対応するセパレーターフィールドと時間的に整合
するように、
前記破損ビットシーケンスが、前記ビット時間で前記不正なCANメッセージの前記インテグリティチェックフィールドに挿入される
方法。
【請求項2】
‐伝送の間、伝送中の前記メッセージの情報内容を抽出する工程と、
‐ファイアウォールルールのセットに基づいて、前記情報内容を分析する工程と、
‐破損したメッセージを取得すべく、前記情報内容の前記分析によって、不正なメッセージであると分析された前記メッセージを識別する場合に、前記メッセージを無効にする工程と
を備える、請求項1に記載の方法。
【請求項3】
少なくとも、全ての前記不正なCANメッセージだけを選択的にブロックするモードに従って、又は全ての前記CANメッセージを完全にブロックするモードに従って、前記不正なメッセージを無効にする前記工程を適用するかどうかの選択が行われる、請求項2に記載の方法。
【請求項4】
前記不正なメッセージを無効にする前記工程は、
前記不正なメッセージを伝送するCANノードに、任意の変更をすることなく複製された前記不正なCANメッセージを送信する、あるいは、前記不正なメッセージを伝送する前記車両CAN通信ネットワークについては複製の任意のアクションを採用しない段階と、
前記CANノード又は前記車両CAN通信ネットワークのそれぞれによって前記不正なメッセージを伝送する場合に前記CANバスあるいは前記CANノードをエミュレートし、1つの受信ノード又は複数の受信ノードよる前記不正なメッセージの誤りのない受信を通知し、前記不正なメッセージを伝送する前記CANノード又は前記車両CAN通信ネットワークについては、前記不正なメッセージに関連するエラーメッセージを同時にブロックする段階と
によって、前記不正なCANメッセージを伝送する前記CANノード又は前記車両CAN通信ネットワークから、破損ビットシーケンスを挿入する前記工程を隠す工程を有する、
請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記ファイアウォールルールのセットは、
‐所与の車両条件に適用される、許可されたメッセージのホワイトリスト、
‐許可された診断サービスのホワイトリスト、
‐所与の車両条件に適用される、許可されていない診断サービスのブラックリスト、
‐前記完全にブロックするモードをアクティブにするための前記ホワイトリスト及び前記ブラックリストの侵害の
数の閾値、
‐前記完全にブロックするモードをアクティブにするための前記CANバスの占有の閾値、及び
‐前記診断サービスの前記ブラックリスト及び前記許可されたメッセージに対する前記ホワイトリストを評価するのに用いられる車両条件を示す、前記車両条件の検出に関する情報
のリスト及びパラメータのうちの1又は複数を含む、請求項3に記載の方法。
【請求項6】
‐メッセージ識別子を抽出し、前記
車両条件に対するホワイトリストの対応するフィールドと前記メッセージ識別子を比較する工程と、
‐前記ホワイトリストの対応するフィールドと比較されるメッセージ長を抽出する工程と、
‐同一のメッセージの最後の受信から経過した時間を測定し、タイミング閾値と前記時間を比較する工程と、
a)前記メッセージが診断タイプである場合に、前記メッセージが前記診断サービスのホワイトリストに存在しているかどうかをチェックする工程と、
b)前記メッセージが診断タイプである場合に、前記診断サービス
を示す値を抽出し、前記値が前記
車両条件に対する前記診断サービスのブラックリストに存在しているかどうかをチェックする工程と、
‐バス占有の値を更新し、バス占有閾値と前記バス占有の値を比較する工程
の1又は複数を含む、前記CANメッセージの前記情報内容を分析する工程を備える、請求項5に記載の方法。
【請求項7】
前記破損ビットシーケンスの最初のビットの直前の最後のビットは、前記破損ビットシーケンスの前記最初のビットの極性と反対の極性を有する、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記インテグリティチェックフィールドは、CRCフィールドである、請求項1から7のいずれか一項に記載の方法。
【請求項9】
コントローラエリアネットワーク(CAN)バスと、信号交換関係で前記CANバスに関連し、かつ、車両機能を制御するユニットに少なくとも部分的に関連する複数のノードとを含む、車両CAN通信ネットワークでサイバー攻撃から保護する装置であって、前記装置は、請求項1から
8のいずれか一項に記載の方法に従って動作するよう構成される、装置。
【請求項10】
CANメッセージの前記内容を分析し、前記ノードのCANコントローラによって実行されるインテグリティチェックに対して不正なメッセージを無効にする前記工程を少なくとも実行するよう構成されるファイアウォールモジュールと、
ファイアウォールのルールのセットを格納する格納モジュールと
を備える、請求項
9に記載の装置。
【請求項11】
前記装置は、CANノードのCANコントローラとCAN送受信機の間に配置される、請求項
9又は
10に記載の装置。
【請求項12】
前記装置は、ゲートウェイと合併して2つのCANネットワークの間に配置される、請求項
9又は
10に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラエリアネットワーク(CAN)バスと、信号交換関係でCANバスに関連し、車両機能を制御するユニットに少なくとも部分的に関連する複数のノードを含む車両CAN通信ネットワークをサイバー攻撃から保護する技術に関する。上記の技術は、不正なCANメッセージを識別すべく、複数のノードのうちのノード間で伝送中のCANメッセージの内容を分析する工程と、不正なメッセージをブロックする工程とを備える。ブロックする工程は、破損したメッセージを取得すべく、CANコントローラによってエラーと認識される破損ビットシーケンスを挿入することによって、特に、元のビットシーケンスの一部を破損シーケンスと交換することによって、ノードのCANコントローラによって実行されるインテグリティチェックに対して不正なメッセージを無効にすることを有する。
【0002】
自動車における通信バスとして採用されるCANバスは、シリアルでマルチマスタであるタイプの通信手段である。バスに接続されて「ノード」とも称されるそれぞれのマスタは、メッセージを送受信し、複数の伝送ノードよる同時アクセスに起因するあらゆる衝突を解決することができる。
【0003】
図1Aに示されるように、CANバス10で通信することができるノード11は、概して、
‐伝送ラインTT及び受信ラインTRを介してCANバス10に関連し、CANバス(OSIモデルの物理層)の適切な電気レベルを管理するよう構成されるCAN送受信機12と、
‐それぞれの伝送ラインCT及び受信ラインCRを介してCAN送受信機12に接続され、CANバス10(OSIモデルのデータリンク層)のロジックレベル及びシリアライゼーションを管理するよう構成されるCANコントローラ13と、
‐メッセージの送受信に関するロジック(データリンク層の上位のOSI層の管理)を含むマイクロコントローラ14と
を備える。
【0004】
図1Aは、CANコントローラ13及びマイクロコントローラ14が全く同一のシステムオンチップ15に配置されるが、CAN送受信機が別個のチップ上にあることを想定する実装の可能な解決策のうちの1つを示す。
【0005】
図1Aに示されるように、CANコントローラ13とCAN送受信機12との間のサイバー攻撃から保護する装置16を組み込むことは、既知である。保護装置16は、不正な又は悪意のあるメッセージを識別して、CANコントローラ13とCAN送受信機12との間で伝送中のメッセージを処理、特に分析し、
図2、3、4及び5に記載される異なる使用状況で、CANバス上のこれらの悪意のあるメッセージの注入をブロックする工程を実行する。
【0006】
特に、
図1Bでは、保護装置16は、CANコントローラ13から保護装置16に向かう伝送ラインCT上のCANメッセージを受信し、上記のブロックする工程によってCANメッセージを分析してフィルタにかけて、その結果、保護装置16とCAN送受信機12との間のラインは、保護装置16によって処理されたCANメッセージが移動する、フィルタにかけられた伝送ラインDTである。反対方向において、送受信機12からのCANメッセージは、これらのモジュールを接続する受信ラインCR上の保護装置に達し、保護装置16で処理されて、保護装置16によってフィルタにかけられた受信ラインDR上のCANコントローラ13に伝送される。
【0007】
特に、
図2は、例えば、電子制御ユニット(ECU)のような車両制御ユニット、例えば、エンジン制御ユニット、並びに、照明、空調、伝送、ABS、サスペンション、及び他の車両サービス専用の他のプロセッサモジュールのための制御ユニットを表す、複数のノード11
1、…、11
nを備える車両ネットワーク20が与えられる場合を示す。この複数のノード11
1、…、11
nにおいて、ノード11
1は、保護されたノード、すなわち、保護装置16を備えているノードであり、図で表されているのは、保護されたノード11
1は悪意があり、車両ネットワーク20に悪意のある、すなわち、不正なCANメッセージ又はCANフレームMFを注入する場合である。この使用例は、例えば、インフォテインメント/テレマティックスユニットに対応するノードに起こり得るような、マイクロコントローラ14が、無線チャネルのような他の通信チャネルによって侵害された一例である。この場合において、保護装置16の存在によって、これらのメッセージMFが車両ネットワーク20、すなわち、他の保護されていないノード11
2、…、11
nに達することを阻止する。
【0008】
図3は、車両ネットワーク20によって、すなわち、保護装置が提供されていないノード、すなわち、保護されていないノード11
2、…、11
nのうちの1つ、特に、ノード11
2によって、悪意のあるCANメッセージMFが注入された場合を示す。
図3は、車両ネットワーク20のいずれかのノードが侵害された場合を表す。この場合、保護装置16の存在によって、保護装置16自身が設置されるそれぞれの保護されたCANノード11
1に関係しないメッセージが、マイクロコントローラ14によって処理されることを阻止する。
【0009】
図4は、保護装置16がCANゲートウェイ18と共に用いられる場合を示す。この構成は、概して保護されていないそれぞれノード11A
1、…、11A
n及びノード11B
1、…、11B
nを有する、2つの区別できるCANネットワーク20A及び20Bを分離し、1つのネットワークと他のネットワークとの間で伝送中のCANフレームをフィルタにかけることを保証することを可能にする。
図4の特定の場合において、保護装置16は、ネットワーク20Aによって伝送される不正なメッセージMFをブロックし、ネットワーク20Bにそれらが拡散することを阻止する。保護装置16はまた、ネットワーク20Bのノードによって、ゲートウェイ18を介してネットワーク20Aに伝送される不正なCANメッセージMFをブロックできることが、明らかである。
【0010】
米国特許出願公報第2015/191136号は、自動車CANバス上で動作する保護装置を記載し、これは、パラメータが不正なメッセージの基準を満たす、伝送中のメッセージをブロックすることを想定する。ブロックは、CANコントローラによって実行される有効性チェックに対して不正なメッセージを無効にすることによって、すなわち、CANコントローラによってエラーと認識されたビットのシーケンス、すなわち、スタッフィングビットを挿入することによって、特に、CANプロトコルによって想定されるビットスタッフィングルールに関連しないシーケンスを用いてスタッフィングエラーを挿入するによって、CAN送受信機とCANコントローラとの間の不正なメッセージの伝送の間、不正なメッセージを破損することによって実行され、従って、これらの不正なメッセージをCANコントローラに無視させて、CANネットワークに不正なメッセージを伝播しない。しかしながら、複数のスタッフィングビットを処理することによって、(バスに送信される)破損したメッセージと、破損したメッセージを受信するCANノードによって生成されるフレームエラーメッセージとの間に一時的な不整合を起こす場合がある。
【0011】
本発明の目的は、不正なメッセージを無効にし、同時に適切な整合を確実にすることを可能にする監視方法を提供することである。
【0012】
本発明に従って、上記の目的は、以降の特許請求の範囲で詳細に想起される特性を示す保護方法及び対応する保護装置のおかげで実現される。
【図面の簡単な説明】
【0013】
本発明は、非限定の例として単に提供される添付の図面に関連して記載される。
【
図5】本明細書で記載される方法を実装する保護装置の原理ブロック図を示す。
【
図6】保護装置によって処理されるCANメッセージを概略的に表す図である。
【
図7A】本明細書で方法の3つの動作段階で記載される保護装置の概略図である。
【
図7B】本明細書で方法の3つの動作段階で記載される保護装置の概略図である。
【
図7C】本明細書で方法の3つの動作段階で記載される保護装置の概略図である。
【
図8】本明細書で記載される方法の工程を示すフローチャートである。
【発明を実施するための形態】
【0014】
図5は、本発明による保護装置26の原理ブロック図を示す。この保護装置26は、例えば、
図3のノード11
1の構成のように、CANネットワーク10の保護されたノード内のCANコントローラ13とCAN送受信機12との間に配置されるものとして表される。本明細書で記載される解決策は、適用されるCANのバージョン(CAN2.0又はCAN-FD)に関係なく、説明を簡単にするために、CAN2.0バージョンに対応するシナリオだけが記載される。
【0015】
保護装置26は、概して、受信ラインCR及び伝送ラインCTに送信されたCANメッセージMのシーケンスを受信し、フィルタにかけられた受信ラインDR及びフィルタにかけられた伝送ラインDRにフィルタにかけられたCANメッセージのシーケンスを送信するファイアウォールモジュール261を含む。前述のように、メッセージMは、不正なメッセージMFであり得る。以下においてさらに詳細に記載されるように、フィルタにかけられたシーケンスは、CANメッセージM自身を含んでよく、不正なメッセージMFから取得された破損したメッセージMF'を含んでよく、あるいは、正当なメッセージM及び不正なメッセージMFの両方を破損すること(以下において記載されるモードB2)によって完全にブロックすることを適用してよい。
【0016】
従って、上記のファイアウォールモジュール261は、
‐伝送ラインCT又は受信ラインCRの伝送中にCANメッセージMの情報内容を抽出し、
‐上記の情報内容を分析し、これは、例えば、伝送中CANメッセージMのフィールドの値を、ルールのデータベースを表し、ファイアウォールモジュール261が、少なくとも読み出すためのアクセスを有するルール格納モジュール262に格納されたファイアウォールルールRのセットと比較することを含み、
‐その内容に基づいて、不正なCANメッセージMFであるとして識別される場合に、伝送中のCANメッセージMを無効にし、これは、不正なメッセージMFがCANバスでまだ伝送中であるが、分析されたメッセージMが不正なメッセージMFであると識別された場合に、ブロックモード、例えば、以下でより詳細に記載されるB1及びB2に従って、保護装置26によって伝送の間にこれらを破損することを実行することによって取得される、
よう構成される。
【0017】
前述のように、保護装置26は、不正なメッセージMFを識別すべく、ファイアウォール261によって、分析された、すなわち、伝送中のCANメッセージに適用されるルールRを含むデータベースである、ルールのデータベース262をさらに含む。伝送ラインCT及び受信ラインCRから到達する伝送中のCANメッセージMは、ルールデータベース262におけるルールRの全く同一のセットに従ってよく、あるいは、ルールデータベース262は、受信CR及び伝送CTに独立に適用されるルールの2つのセットを含んでよい。
【0018】
保護装置26は、工程格納モジュール263、すなわち、CANバス10の保護装置26によって実行される工程Bのログを格納するための専用メモリ領域をさらに含む。保護装置26は、上記のモジュール263にアクセスして、CANバス10の保護装置によって実行される工程Bを書き込む。ログBは、
図5に示されるように、読み出すために工程格納モジュール263にアクセスできる構成インタフェース264を用いて、閲覧され得る(伝送ラインCT上の破損した不正なフレームMFの数、受信ラインCR上の破損した不正なフレームの数等のような)ファイアウォール261のアクティビティの統計値を含む。
【0019】
前述のように、保護装置26は、次に、ファイアウォール261によって適用され、モジュール262に格納されるフィルタルールRを画定するための構成インタフェース264を含む。特に、この構成インタフェースは、(図に示されていない)外部の通信インタフェースから保護装置26のフィルタ設定、すなわち、ルールRを受信し得る。この構成インタフェース264は、例えば、ファイアウォールによってフィルタにかけるためのルールRのセットが書き込まれるルールデータベース262、及び、前述のように、例えば、ファイアウォール261の工程ログにおけるデータを読み出すための工程格納モジュール263とデータ交換関係である。
【0020】
構成インタフェース264に関連するのは、例えば、デジタル署名及びデータ暗号化メカニズムによって、外部の通信インタフェースから受信されたフィルタ設定の信頼性をチェックするよう構成される認証モジュール265である。
【0021】
保護装置26は、概して、悪意のある、無関連なCANメッセージをブロックして、正当なデータだけを通過させるフィルタを実装するよう構成される。
【0022】
正当なメッセージと不正なメッセージとの間の区別は、保護装置26の使用目的に基づいて構成されてよく、以下の特有のパラメータCを通じて画定されてよい。
C1:CANメッセージ識別子
C2:CANメッセージ長
C3:伝送時間、例えば、周期的なメッセージの場合における周波数
C4:メッセージ内容、このパラメータは、診断タイプのメッセージにのみ用いられる
C5:車両状態、このパラメータは、診断タイプのメッセージにのみ用いられる
C6:単位時間あたりのバスの使用のパーセンテージ
【0023】
保護装置26は、概して、非診断メッセージ及び診断メッセージにルールRのセットを適用し、伝送中のフレームが診断タイプであると認識された場合に、この設定にさらなる特定のフィルタルールを適用するよう構成される。
【0024】
保護装置26は、特に、ファイアウォールモジュール261によって、全ての不正なCANメッセージMFだけがブロックされる、選択的なブロックモードB1、並びに全てのCANメッセージ、正当なメッセージM及び不正なメッセージMFの両方がブロックされる、完全なブロックモードB2の2つのメッセージのブロックモードのうちの1つを実装するようさらに構成される。
【0025】
完全なブロックモードB2は、完全なブロックモードB2が有効にされる又は無効にされる第1の使用モードBC1、並びに、完全なブロックモードB2が有効にされる場合、ブロックモードがアクティブのままである間の時間だけでなく、完全なブロックモードB2がアクティブにされなければならないことに達するとすぐに、特定された侵害のタイプごとに、保護装置26で侵害のタイプと、侵害の数とを画定することが可能であり、従って、第2の使用モードB2において、1又は複数の非アクティブなパラメータが、侵害のタイプと、侵害の数と、非アクティブな時間とを備えるリストで画定される第2の使用モードBC2で設定可能である。
【0026】
完全なブロックモードB2は、任意の期間にCANバス10からi番目のノード11
i又はネットワーク(例えば、
図4における20B)の仮想切断を可能にし、これは、構成に基づいて、実質的に無限でさえあり得、従って、ノード11
i又はネットワークを完全に分離し、あるいは、設定された期間が経過した後、ノード11
iの通信能力を回復する。
【0027】
保護装置26が不正なCANメッセージをブロックするメカニズムは、ゼロ遅延モードを実装する。これは、実際には保護装置26であるような、追加のフィルタ要素によって導入される伝播遅延が最小化される全ての適用で保護装置26の有利な使用を与える。
【0028】
前述のように、保護装置26によって実装されるゼロ遅延メッセージフィルタモードは、受信ノードが、CANコントローラ13のデジタルレベル、すなわち、データリンク層で上記の不正なメッセージMFをすでに無視するような方法で、CANバス上の伝送の間に不正なCANメッセージMFを無効にする、すなわち、不正なCANメッセージMFを破損することによって、CANバスにすでに存在するインテグリティチェックメカニズムを活用することを想定し、ここで、マイクロコントローラ14に(及びOSIスタックの上位層に)メッセージを伝播することなく、メッセージのインテグリティのチェックが実行される。その結果として、上記のゼロ遅延モードは、ゼロ分析時間の理想的な状態においても、フィルタ要素が、いずれの場合もメッセージを分析することができる前にメッセージが終了するのを待たなければならず、メッセージが正当であって再伝送されなければならない場合に、再びバス競合及び(分析後の)調停に参加しなければならず、従って、メッセージ自身を再伝送する継続時間に少なくとも等しい追加の遅延を導入する限りにおいて、フィルタ要素が、ゲートウェイの典型的な動作であるような、受信、分析、再伝送する1つのモードとは完全に異なる。さらに、これまでに分析されたメッセージを再伝送することができるためには、フィルタ要素がCANバス競合に勝つ必要があるので、この追加の遅延は、CANプロトコルの特性のために、理論上無限である上限で著しく長くなる場合があり、これは、より高い優先度を有するメッセージが他のネットワークノードによって伝送される場合である。
【0029】
代わりに、保護装置26によって実装されるゼロ遅延モードは、伝送中、すなわち伝送の間又は装置26が設置されるノードによる受信の間にCANメッセージの検査を可能にし、従って、
‐伝送又は受信が終了する前であってもメッセージが不正である場合、メッセージを破損することによって迅速に作動し、
‐メッセージが正当である場合、メッセージを変更しないで通過させ、従って、伝播時間を損なわない
ことを可能にする。保護装置26によって実装される第1の選択的なブロックモードB1あるいは第2の完全なブロックモードB2による、CANフレームをゼロ遅延のフィルタにかける手順は、具体的には、CANメッセージの伝播時間を変更しないで、不正なメッセージが成功裏に送信されたことを悪意のあるノードに想定させないような2つの工程を含む。
【0030】
第1の工程は、CANメッセージ自身のビットのシーケンスを破損することによって、保護装置26によって実行される、伝送中のメッセージをブロックする工程F1である。
【0031】
第2の工程は、保護装置26によって妨害された不正なCANメッセージMFを伝送する悪意のあるCANモードから、悪意のあるCANモードによって伝送された不正なCANメッセージを破損することを隠す工程、及び、従って、結果として、他のCANノードのCANコントローラで実装されるインテグリティチェックによってCANメッセージをブロックする工程から成る工程F2である。
【0032】
破損することF1及び隠すことF2のそれぞれによる上記のブロックモードB1又はB2の結果として、保護装置26及び装置26によって実装された保護方法は、不正なメッセージMFにブロックする工程F1を適用する保護装置26を含むノード及び不正なメッセージMFを注入するCANノード以外の1つの受信CANノード/複数の受信CANノード111、…、11nによって、保護装置26によって実行される工程F1によって破損された不正なCANメッセージの通過の終了と、上記の破損した不正なCANメッセージに応えて(すなわち、悪意のあるCANメッセージを破損すべく、保護装置26によって悪意のあるCANメッセージに導入されたエラー条件の検出の結果として)送信されたエラーメッセージの伝送の終了との間の同時性を保証する。
【0033】
この同時性は、バス占有オーバーヘッドでCANバス10のデータの一連の破損を引き起こし、最終的に通信の中断を引き起こすであろう送信されたメッセージの整合されていない重畳をトリガーすることを阻止するための基本的な側面を表す。
【0034】
破損することF1及び隠すことF2の工程によって保護装置に実装される保護方法は、CANプロトコルのデータ及びエラータイプのメッセージの特定の構造を利用する。
【0035】
特に、データタイプのメッセージが、以下の表1でリストされる隣接ビットのセクションSで構造化される。
[表1]
【表1】
【0036】
データタイプのメッセージのセクションSの構造は、もちろんそれ自体がCANバス基準で既知である。
【0037】
エラータイプのメッセージは、アクティブタイプのメッセージ及びパッシブタイプのメッセージを含む。アクティブエラーについて、メッセージが以下の表2のように構造化される。
[表2]
【表2】
【0038】
代わりに、パッシブエラーについて、メッセージが以下の表3のように構造化される。
[表3]
【表3】
【0039】
図6で例として示されるのは、アクティブエラーを参照する場合である。MFで表されるのが伝送される不正なCANメッセージであるが、MF'で表されるのがCANコントローラによって実装されたインテグリティチェックが破損を検出した後、受信ノードのうちの1つによって送信されたレスポンスエラータイプのCANメッセージである、エラーメッセージEMを最後に有する破損したメッセージである。
【0040】
さらにbtで表されるのがビット時間軸であり、NVで表されるが保護装置26によって不正なCANメッセージMFに書き込まれる信号である。Siで表されるのが、保護装置によって生成された内部信号である。特に、信号Siは、メッセージが伝送される場合における保護装置26の信号DT、又は代替的にメッセージが受信される場合における保護装置26の信号DRである。
【0041】
保護装置26によって破損されたデータタイプの不正なCANメッセージMFの伝送の終了と、受信ノード11のうちの任意の1つによって発行されたレスポンスエラータイプの対応するメッセージEMの伝送の終了との間の同時性が保証されるべく、すなわち、不正なメッセージMFに対するインターミッション(ITM)フィールド(フィールドS8)及び上記のメッセージのエラーメッセージEMに対するフィールドSE3が整合されて重畳されるべく、正確な挿入ポイント、すなわち、不正なメッセージMFのビット時間btの特定の値でエラー条件を挿入する必要がある。特に、これは、破損したメッセージを取得すべく、元のビットのシーケンスの一部を破損シーケンスと交換することによって実行される。
【0042】
6個の連続したビット(NV)で構成される破損シーケンスが挿入される正確な挿入ポイントは、パケットのフォーマットによって及びCANプロトコルのルールによって一意に決定され、挿入ポイントの計算及び上記の破損シーケンスNVを構成するビットの極性の計算専用のロジックリソース/モジュールの使用を必要とする。
【0043】
特に、巡回冗長検査(CRC)フィールド内の6個の連続したビットのシーケンスの開始ポイント及びそれを構成するビットの(ドミナント又はリセッシブ)極性を計算すべく、保護装置26、特に、ファイアウォールモジュール261は、
‐CRCフィールド内に存在するスタッフィングビットの数を予測すべく、CRCフィールドS5の値を(ランタイムで)動的に計算し、
‐CRCフィールド、すなわち、メッセージM、MFのフィールドS5に存在するスタッフィングビットの数を評価すべく、CRCに先行するビットも考慮に入れて前の段階で再構成されたCRCフィールドの内容を分析する
よう設計又は構成される、1又は複数のロジックモジュール/要素が提供され、CRCフィールドは、データ依存である(従って、データもランタイムで異なる)ので、破損シーケンスを挿入する正確なポイントも、動的な態様で決定される。
【0044】
図6に関連して、破損シーケンスを挿入する正確なポイントは、インスタントbt
j-5であるが、受信ノードがスタッフエラー条件(SPE)を検出するインスタントは、インスタントbt
jである。破損シーケンスがこのビットの極性と反対の極性を有さなければならない、という事実を明確に示すべく、破損シーケンスの最初のビットの直前の最後のビットが、bt
j-6で図に示される。
【0045】
この結果として、
‐複数の受信ノード、それぞれの受信ノード11
iが、エラーフレームが任意の他の受信ノードによって送信されたエラータイプの任意の他のCANメッセージEMのエラーフレームに正確に重畳されるエラータイプのCANメッセージEMを伝送する場合、CANノード11は、エラーメッセージEM(アクティブエラーが示される例である限りにおいて、フィールドSE1、SE2、SE3、そうでなければ、パッシブエラーに対して、フィールドSP1、SP2、SP3が用いられる)に対応する破損したメッセージMFを受信し、スタッフエラー条件SPEが発生するポイントでのビット時間bt
jの直後のビット時間bt
j+1から開始し、より具体的には、
図6に示されるように、エラーメッセージEMが書き込まれるビット時間bt
j+1から開始する。
‐エラーメッセージ(又は重畳されたエラーメッセージ)の終了、すなわち、リセッシブビット、具体的には、メッセージ間のセパレーターとして、すなわち、インターミッションフィールドとして機能する3ビットのフィールドを含む、セクションSE3ITMは、送信元の悪意のあるノードに変更しないで同時に再伝送される不正なメッセージMFの対応するITMフィールドS8と時間的に整合される。
【0046】
たとえCANメッセージのデータタイプのフレームのさまざまなフィールドの長さが同一であっても、CANメッセージの長さは、スタッフィングビットを挿入することが可能であるため、上記のフィールドの内容に基づいて異なり得る。その結果として、保護装置26が、それぞれのCANメッセージに対して、フレームMFが破損されなければならない場合に、同一の極性を有する6個の連続したビットのシーケンスNVを挿入する必要があるCRCフィールドのポイントbtj-5を動的に計算するよう構成される。保護装置26は、それぞれCANメッセージに対して、フレームMFが破損されなければならない場合に、同一の極性を有する6個の連続したビットのシーケンスNVを挿入する必要があるCRCフィールドのポイントbtj-5及びビットbtj-6の極性と反対でなければならない上記のシーケンスNVのビットの極性の両方を動的に計算するよう構成される。
【0047】
前述のように、保護装置26によって実行される他の基本的な工程は、保護装置26によって妨害された不正なCANメッセージを伝送する悪意のあるCANモードから、上記の不正なCANメッセージを破損することを隠す工程F2、及び、従って、結果として、他のCANノードのCANコントローラに実装されるインテグリティチェックによってこれらをブロックする工程である。
【0048】
保護装置26が不正なフレームMFを破損する場合において、保護装置26が破損、すなわち、不正なフレームMFのCRCフィールドS5の挿入ポイントbtj-5で挿入されて、ポイントbtjでスタッフエラー条件SPEを決定するシーケンスNVを隠さない場合、悪意のあるフレームMFを送信したCANノードは、このスタッフエラー条件SPEを検出し、結果として、悪意のあるフレームMFの伝送を中断し、(全ての他の受信ノードによって送信されたエラータイプの全ての他のフレームで整合されていない)エラータイプのフレームEMを伝送し、その後、同一の悪意のあるフレームを再伝送することを試みるであろう。
【0049】
伝送中のメッセージを破損するプロセスを隠す工程F2が、
図7A~
図7Cに示されるように、処理される。ここで、表されているCANコントローラ要素13及びCAN送受信機要素12は、例えば、保護装置26が設置された保護されたCANノード11
1に属するものであり、保護されたCANノードは、悪意のあるメッセージMFを伝送する(これは、保護装置26が設置されたCANノードが侵害された場合である)。特に、伝送ラインCTで伝送されたCANメッセージMFのそれぞれのビットも受信ラインCRで再び読み出されるので、保護装置26は、以下において記載されるように、装置26に到達した悪意のあるフレームMFが伝送ラインCTで識別された(
図7A参照)後、2つの段階で上記の悪意のあるフレームMFを破損する工程を実行するよう動作する。
【0050】
第1の段階において、
図7Bに表されるように、ホスト側で、すなわち、悪意のあるノード(伝送ラインCT及びフィルタにかけられた受信ラインDR)に向かって、不正なCANメッセージMFが、フィルタにかけられた受信ラインDRでビットストリームを任意に変更することなく複製されるが、送受信機12のCANバス側のダウンストリームで、すなわち、悪意のない受信ノード、すなわち、フィルタにかけられた伝送ラインDT及びフィルタにかけられ受信ラインCRに向かって、不正なメッセージMFが、破損したメッセージMF'を取得すべく、ビットストリーム自身を修正することによって、適切な態様で破損される。
【0051】
第2の段階において、(
図7Cに表されるように)ホスト側で、すなわち、悪意のあるノードに向かって、保護装置26は、ラインDRでの誤りのない受信のメッセージOR(
図7C)により、ネットワーク20の他のノード11
2、…、11
nによるメッセージの適切な受信を通知することによって、特に、ビット時間ACKスロットの間、ドミナントビットを送信することによって、CANバスをエミュレートし、同時に、CANバス側で、保護装置26は、破損したメッセージMF'を受信したネットワークの他のノード11によって、CANプロトコルによって想定されたエラーフレームEMで、ラインCRで発行されるエラー警告をブロックする。
【0052】
伝送中のメッセージを破損するプロセスを隠す工程F2はまた、メッセージを受信する場合におけるCANプロトコルの特性に従って、上記で表されたもの、並びに
図7A、
図7B及び
図7Cに示されるものと類似する態様で、不正なメッセージ、すなわち、保護装置26が設置される保護されたCANノード11
1以外のCANノード11
1によって伝送された1つのメッセージが受信される場合に適用する。特に、二重性によって、ラインDTで伝送されるべきである、悪意のあるノードに送信され、複製されるべきメッセージMFが、この場合において不要である、すなわち、複製のアクションが実行されないが、誤りのない受信のメッセージORは、(今回は、CANバス10である)悪意のあるメッセージの誤りのない受信の証拠を提供するのに十分である。
【0053】
従って、CANバス10と、信号交換関係でCANバス10に関連し、かつ、車両機能を制御するユニットに少なくとも部分的に関連する複数のノード11とを含む車両CAN通信ネットワーク20においてサイバー攻撃から保護する方法は、不正なCANメッセージMFを識別すべく、複数のノード11のうちのノード間で伝送中のCANメッセージMの内容を分析する工程と、ブロックモードB1、B2によって、不正なメッセージMFをブロックする工程とを備え、ブロックモードB1、B2によって、ブロックする工程は、破損したメッセージMF'を取得すべく、ノード11のCANコントローラ13によって実行されるインテグリティチェックに対して不正なメッセージMFを無効にすること、すなわち、CANコントローラ13によってエラーと認識される破損ビットシーケンスNVを挿入することF1によって、不正なメッセージMFを破損することを有し、具体的には、ビット時間btj-5で不正なCANメッセージMFのインテグリティチェックフィールドS5、特にCRCフィールドに破損ビットシーケンスNVを挿入することF1を想定し、破損ビットシーケンスの値は、不正なメッセージのセパレーターフィールド、すなわち、ITM、特に、3個のリセッシブビットで構成されるインターミッションフィールドを、破損シーケンスNVを含む不正なメッセージMFを受信するネットワーク20のノードによって生成される、エラーメッセージEMの対応するセパレーターフィールドと時間的に整合させるようなものである。破損したメッセージ又は不正なメッセージMF'を取得すべく、上記の挿入する工程が、元のビットシーケンスの一部、特に、インテグリティチェックフィールドS5の一部を、破損ビットシーケンス、すなわち、ビットシーケンスNV、特に、挿入ポイントbtj-5のビットに先行する時間btj-6のビットの極性と反対の極性を有するこのビットシーケンスNVと交換するによって実行されることを注意すべきである。
【0054】
記載される方法は、次に、
‐伝送の間、伝送中のメッセージMの情報内容を抽出する工程と、
‐ファイアウォールルールRのセットに基づいて、情報内容の分析を実行する工程と、
‐破損したメッセージMF'を取得すべく、情報内容の分析によって、不正なメッセージMFであると分析されたメッセージMを識別する場合に、メッセージMを無効にする工程F1
を備える。記載される方法は、次に、少なくとも、全ての不正なCANメッセージMFだけを選択的にブロックするモードB1に従って、不正なメッセージMFを無効にする工程F1を適用するか、あるいは、CANメッセージが正当なメッセージであろうと不正なメッセージMFであろうと全てのCANメッセージを完全にブロックするモードB2に従って、不正なメッセージMFを無効にする工程F1を適用するかどうかを選択することを備える。
【0055】
記載される方法は、次に、不正なメッセージMFを無効にする工程は、不正なメッセージMFを伝送するCANノード11に、任意の変更をすることなく、特に、シーケンスNVなしで、複製された不正なCANメッセージMFを送信する、あるいは、不正なメッセージMFを伝送するCANネットワーク10については複製のアクションを採用しない段階と、CANノード11又はCANバス10のそれぞれによって不正なメッセージを伝送する場合にCANバス10あるいはCANノード11をエミュレートし、1つの受信ノード又は複数の受信ノードによる不正なメッセージMFの誤りのない受信を通知し、不正なメッセージを伝送するCANノード又はCANネットワークについては、不正なメッセージMFに関連エラーメッセージEMを同時にブロックする段階とによって、不正なCANメッセージMFを伝送するCANノード又はCANネットワークから、破損ビットNVを挿入する工程を隠す工程F2を有する可能性を想定する。
【0056】
上記の工程が、格納モジュール262に格納されるルールRに基づいて、保護装置26によって、特に、ファイアウォールモジュール261によって実装される。
【0057】
このため、保護装置26は、変形した実施形態において、CANノードのCANコントローラ13とCAN送受信機12との間に配置されてよく、従って、たとえそれ自体が悪意のあるノードである場合でも、CANノードは保護されたノードである。
【0058】
保護装置26は、さらに変形した実施形態において、ゲートウェイ18と合併して、2つのCANネットワーク20A、20Bの間に配置され得る。
【0059】
前述のように、保護装置26は、構成インタフェース、すなわち、以下のリスト及びパラメータによって、ファイアウォールルールRを画定することを可能するインタフェース264を有する。
‐(任意の方向における)許可されたメッセージが所与の車両条件に適用されるためのホワイトリスト、すなわち、承認又は許可された要素のリスト。このリストのそれぞれの項目は、以下のフィールドを含む。
a)識別子
b)長さ
c)伝送及び侵害閾値パラメータ
d)メッセージのタイプ(診断/非診断)
‐許可された診断サービスのホワイトリスト(このリストは、診断タイプのメッセージにのみ適用可能である)
‐ブラックリスト、すなわち、許可されてない診断サービスの承認又は許可されていない要素のリスト(このリストは、所与の車両条件に適用される診断タイプのメッセージにのみ適用可能である)
‐完全にブロックするモードをアクティブにするための「ホワイト/ブラックリストの侵害の閾値」
‐完全にブロックするモードをアクティブにするための「バス占有閾値」、及び
‐「診断サービスのブラックリスト」及び許可されたメッセージの「ホワイトリスト」と共同で用いられる、どのような状態であるか(例えば、5km/hより速い現在のスピード)を決定するための「車両条件の検出に関する情報」
【0060】
上述したパラメータ及びリストを用いて設定されたファイアウォールルールRが、格納モジュール262のテーブルに格納され、新たなファイアウォールルールRを加えることによって、あるいは既存のファイアウォールルールRを上書き及び/又は除くことによって更新され得る。
図5に示されるように、保護装置26は、ファイアウォールのアクティビティに対応し、かつ、モジュール263にアクセスできる構成インタフェース264によって閲覧され得る全ての統計的な情報B(ラインDTの破損した不正なフレームの数、ラインDRの破損した不正なフレームの数等)を格納モジュール263に格納する。
【0061】
画定されて格納モジュール262に含まれるファイアウォールルールRの適用が、データフレームタイプ又は遠隔フレームタイプのそれぞれのCANメッセージMに対して実装される。フィルタにかけるプロセスの概略図が、
図8に表される。
【0062】
図8のフローチャートによれば、保護装置26によって実行される保護手順100の例として提供される一実施形態が、記載される。
【0063】
手順の開始105後、段階110において、ファイアウォール261は、伝送中のCANメッセージMの調停フィールドS2から、車両設定の条件に対する「ホワイトリスト」の対応するフィールドと比較されるメッセージ識別子(ID、11/29ビット)を抽出する。メッセージ識別子が存在する場合、次の段階120が実行され、そうでなければ、メッセージMが不正なメッセージMFとみなされ、制御は段階180に移動する。
【0064】
段階120において、ファイアウォール261は、伝送中のCANメッセージMの制御フィールドS3から、「ホワイトリスト」の対応するフィールドと比較されるメッセージ長(DLC、4ビット)を抽出する。長さが正しい場合、次の段階130が実行され、そうでなければ、CANメッセージMが不正なメッセージMFとみなされ、制御は段階180に移動する。
【0065】
段階130において、同一のメッセージの最後の受信から経過した時間が、識別子に基づいて測定され、例えば、最大時間Tmaxと最小時間Tminとの間の画定された時間間隔、すなわち、期間等によって、タイミングルールの侵害の順序とも関連する、構成されたタイミング閾値と比較される。同一のメッセージの最後の受信から経過した時間が、許可された間隔の範囲に入る、あるいは許可された間隔の範囲に入らないが、検出された侵害の数が所与の閾値(全てのこれらのパラメータが、時間間隔のパラメータのような、「ホワイトリスト」から抽出される)より低い場合、次の段階135が実行され、そうでなければ、CANメッセージが不正なメッセージMFであるとみなされ、制御は段階180に移動する。
【0066】
段階135において、メッセージMが診断タイプであることを検証すべく、チェックが行われる。メッセージMが診断タイプでない場合、制御は、車両の状態が更新される段階160に移動する。メッセージMが診断タイプである場合、段階140において、データフィールドから診断サービスの値が抽出され、モジュール262に格納された「診断サービスのホワイトリスト」にそれが存在するかどうかを検証すべく、チェックが行われる。存在する場合、次の段階150が実行され、そうでなければ、CANメッセージMが不正なメッセージMFであるとみなされ、制御は段階180に移動する。
【0067】
段階150において、データフィールドS4から診断サービスの値が抽出され、車両設定の条件に対する「診断サービスのブラックリスト」にそれが存在するかどうかを検証すべく、チェックが行われる(段階160を参照)。存在する場合、メッセージMが不正なメッセージMFであるとみなされ、制御は段階180に移動し、そうでなければ、メッセージMが正当なメッセージであるとみなされ、車両の状態を更新する次の段階160が実行される。
【0068】
段階160において、メッセージMの調停フィールド及びデータフィールドと共同で「車両条件の検出に関する情報」を用いることによって、車両の条件を表す内部情報が更新される。具体的に、段階160において、車両の状態の更新を実行することが必要であるかどうかを検証すべく、チェックが行われる。車両の状態が更新されるべきであるかどうかを評価するための識別因子が、ルールRのセットに含まれる。チェックは、伝送中のフレームの調停フィールド及びデータフィールドに基づいている。
【0069】
次に、段階170において、メッセージの全長からバス占有の値が更新されて、「バス占有閾値」と比較される。メッセージがこれらの閾値に関連しない場合、CANメッセージMが不正なメッセージMFであるとみなされ、制御は段階180に移動する。そうでなければ、手順100は段階195で終了する。
【0070】
従って、概して、ファイアウォール261によって実行される、伝送ラインCT又は受信ラインCRで伝送中のCANメッセージMの情報内容を抽出する工程及びこの情報内容を分析する工程は、工程110、120、130、135、140、150、170の1又は複数を含む。
【0071】
段階180において、CANメッセージMが不正なメッセージMFであるとみなされたので、検出された侵害のタイプを「ホワイト/ブラックリストの侵害の閾値」と組み合わせることによって、ブロックモードB1又はブロックモードB2をアクティブにするかどうかを決定する。
【0072】
段階190において、メッセージの有効性及びB1であってもB2であっても実装されるべきブロックモードに関する情報が、ブロックモードによって必要とされる工程、すなわち、完全にブロックすること(B1)あるいは破損することF1及び隠すことF2によってブロックすること(B2)を実行するファイアウォールブロック261に伝送される。
【0073】
保護装置26は、単一フレーム診断メッセージとマルチフレーム診断メッセージの両方で動作する可能性を想定する。マルチフレーム診断メッセージの場合において、一連のメッセージの第1のフレームは悪意があると認識された場合、保護装置26は、段階135を通じて、そのメッセージ及びマルチフレームメッセージを構成する全ての後続のメッセージをブロックすることができる。その結果として、どれくらいのCANフレームがCANバスを通り過ぎたかの記録をつけて、特定の診断サービスに対する破損プロセスがいつ終了するかを決定するカウンタが、保護装置26に存在する。
【0074】
従って上記で記載されたものから、提案された解決策の利点が明らかになる。
【0075】
記載された装置及び方法は、(バスで送信された)破損したメッセージと、破損したメッセージを受信するCANノードによって生成されたエラーフレームメッセージとの間の任意の一時的な不整合を阻止する。
【0076】
さらに、記載された装置及び方法は、適切な隠すプロセスを用いて、不正なフレームを送信したCANノードから破損する工程をマスクすることが可能になる。これは、悪意のあるCANモードによって、結果として生じるCANバスを占有する自動的な再伝送を阻止する。
【0077】
記載された装置及び方法は、CANメッセージの伝播の任意の遅延を導入しないことが可能になり、関係するCANノードによって透過的な態様でこれらを用いることを保証する。
【0078】
本明細書で記載された装置及び方法は、診断タイプのCANメッセージでも動作することが可能になる。専用制御ロジックのおかげで、マルチフレームタイプのシーケンスの診断メッセージを認識し、診断サービスが悪意のあると識別された場合に全ての一連のメッセージを無効にすることが可能になる。