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

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

▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

<>
  • 特許-車載装置、プログラム及び情報処理方法 図1
  • 特許-車載装置、プログラム及び情報処理方法 図2
  • 特許-車載装置、プログラム及び情報処理方法 図3
  • 特許-車載装置、プログラム及び情報処理方法 図4
  • 特許-車載装置、プログラム及び情報処理方法 図5
  • 特許-車載装置、プログラム及び情報処理方法 図6
  • 特許-車載装置、プログラム及び情報処理方法 図7
  • 特許-車載装置、プログラム及び情報処理方法 図8
  • 特許-車載装置、プログラム及び情報処理方法 図9
  • 特許-車載装置、プログラム及び情報処理方法 図10
  • 特許-車載装置、プログラム及び情報処理方法 図11
  • 特許-車載装置、プログラム及び情報処理方法 図12
  • 特許-車載装置、プログラム及び情報処理方法 図13
  • 特許-車載装置、プログラム及び情報処理方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】車載装置、プログラム及び情報処理方法
(51)【国際特許分類】
   H04L 43/08 20220101AFI20221129BHJP
   H04L 12/28 20060101ALI20221129BHJP
   H04L 41/06 20220101ALI20221129BHJP
【FI】
H04L43/08
H04L12/28 100A
H04L41/06
【請求項の数】 16
(21)【出願番号】P 2022535950
(86)(22)【出願日】2021-08-04
(86)【国際出願番号】 JP2021029001
【審査請求日】2022-06-13
(31)【優先権主張番号】PCT/JP2021/007673
(32)【優先日】2021-03-01
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(73)【特許権者】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】足立 直樹
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2019-068253(JP,A)
【文献】特開2020-102771(JP,A)
【文献】特開2020-145547(JP,A)
【文献】特開2020-129785(JP,A)
【文献】特開2000-346871(JP,A)
【文献】特開2018-026663(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/08
H04L 12/28
H04L 41/06
(57)【特許請求の範囲】
【請求項1】
車両に搭載される車載ネットワークに接続される車載装置であって、
前記車載ネットワークに流れるデータの正否の判定に関する処理を行う処理部を備え、
前記処理部は、
前記車載ネットワークに流れる複数のデータを受信し、
受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、
前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行い、
複数の動作状態に遷移し、前記複数の動作状態は、前記正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態と、特定された前記正常周期範囲に基づき受信したデータの正否を判定する判定実行状態とを含み、
前記正常周期範囲内に同種のデータを受信できなかった場合、前記基準データ受信状態に遷移し、前記正常周期範囲以降に受信した同種のデータの受信時点を基準に次の正常周期範囲を特定し、
前記判定実行状態に遷移する
車載装置。
【請求項2】
前記正常周期範囲は、前記データの種別に基づき決定される送信周期を基準値として上下限値が設定された範囲である
請求項1に記載の車載装置。
【請求項3】
前記処理部は、
前記受信間隔が、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした前記正常周期範囲内である場合、連続して受信した同種のデータの内の後に受信したデータは正常であると判定し、
前記受信間隔が、前記正常周期範囲内でない場合、連続して受信した同種のデータの内の後に受信したデータは異常であると判定する
請求項1又は請求項2に記載の車載装置。
【請求項4】
前記処理部は、
前記正常周期範囲内にて受信した同種のデータの個数が一つの場合、該正常周期範囲内にて受信した一つのデータは正常であると判定し、
前記正常周期範囲内にて受信した同種のデータの個数が複数の場合、該正常周期範囲内にて受信した複数のデータに含まれるいずれかのデータは異常であると判定する
請求項1から請求項3のいずれか1項に記載の車載装置。
【請求項5】
前記処理部は、
前記正常周期範囲内にて受信した同種のデータの個数が複数の場合、前記正常周期範囲以降に受信した同種のデータの受信時点を基準に次の正常周期範囲を特定する
請求項1から請求項のいずれか1項に記載の車載装置。
【請求項6】
前記処理部は、
先に受信したデータの判定に用いられた前の正常周期範囲と、前記先に受信したデータの受信時点を基準とした今回の正常周期範囲との間にて、該データと同種のデータを受信した場合、該同種のデータは異常であると判定する
請求項1から請求項のいずれか1項に記載の車載装置。
【請求項7】
前記処理部は、
先に受信したデータの受信時点を基準とした正常周期範囲内にて、該データと同種のデータを1つ受信した場合、該同種のデータは正常であると判定し、
正常であると判定したデータの受信時点を基準に次の正常周期範囲を特定する
請求項1から請求項のいずれか1項に記載の車載装置。
【請求項8】
前記処理部は、前記基準データ受信状態では異常検知を行わない
請求項1から請求項のいずれか1項に記載の車載装置。
【請求項9】
前記処理部は、前記基準データ受信状態ではセキュリティログを保存しない
請求項1から請求項のいずれか1項に記載の車載装置。
【請求項10】
前記処理部は、受信したデータが異常である判定した場合、異常の態様に応じた情報をアクセス可能な所定の記憶領域に記憶する
請求項1から請求項のいずれか1項に記載の車載装置。
【請求項11】
前記アクセス可能な所定の記憶領域は、揮発性の記憶領域であり、
前記処理部は、前記車両のIGスイッチがオフにされた場合、前記揮発性の記憶領域に記憶した情報を、アクセス可能な所定の不揮発性の記憶領域に移行する
請求項10に記載の車載装置。
【請求項12】
前記処理部は、受信したデータの受信時点を基準に前記正常周期範囲を特定する際、前記基準となったデータの種類と受信時点とを関連付けてアクセス可能な所定の記憶領域に記憶する
請求項1から請求項11のいずれか1項に記載の車載装置。
【請求項13】
前記処理部は、前記車両のIGスイッチがオンにされた場合、
予め定められたダイアグマスク期間が経過した後、最初に受信したデータ及び該データと同種のデータを連続して受信し、
前記連続して受信したデータの受信間隔が、最初に受信したデータを基準とした前記正常周期範囲内である場合、前記連続して受信したデータの内の後に受信したデータの受信時点を基準に次の正常周期範囲を特定する
請求項1から請求項12のいずれか1項に記載の車載装置。
【請求項14】
コンピュータに、
車両に搭載される車載ネットワークに流れる複数のデータを受信し、
受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、
前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行い、
複数の動作状態に遷移し、前記複数の動作状態は、前記正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態と、特定された前記正常周期範囲に基づき受信したデータの正否を判定する判定実行状態とを含み、
前記正常周期範囲内に同種のデータを受信できなかった場合、前記基準データ受信状態に遷移し、前記正常周期範囲以降に受信した同種のデータの受信時点を基準に次の正常周期範囲を特定し、
前記判定実行状態に遷移する
処理を実行させるプログラム。
【請求項15】
コンピュータに、
車両に搭載される車載ネットワークに流れる複数のデータを受信し、
受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、
前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行い、
複数の動作状態に遷移し、前記複数の動作状態は、前記正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態と、特定された前記正常周期範囲に基づき受信したデータの正否を判定する判定実行状態とを含み、
前記正常周期範囲内に同種のデータを受信できなかった場合、前記基準データ受信状態に遷移し、前記正常周期範囲以降に受信した同種のデータの受信時点を基準に次の正常周期範囲を特定し、
前記判定実行状態に遷移する
処理を実行させる情報処理方法。
【請求項16】
前記処理部は、
前記正常周期範囲内にて受信した同種のデータの個数が複数の場合、該正常周期範囲内にて受信した複数のデータに含まれるいずれかのデータは異常であると判定し、
前記受信間隔が、前記正常周期範囲内でない場合、連続して受信した同種のデータの内の後に受信したデータは異常であると判定し、
前記複数のデータに含まれるいずれかのデータは異常であると判定した際の判定コードと、前記受信間隔が前記正常周期範囲内でないことにより異常であると判定した際の判定コードとを異ならせる
請求項1から請求項13のいずれか1項に記載の車載装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載装置、プログラム及び情報処理方法に関する。
本出願は、2021年3月1日出願の国際出願第PCT/JP2021/007673号に基づく優先権を主張し、前記国際出願に記載された全ての記載内容を援用するものである。
【背景技術】
【0002】
従来、車両に搭載された複数の車載ECU(Electronic Control Unit)間の通信には、CANの通信プロトコルが広く採用されている。車両の多機能化及び高機能化に伴って、搭載される車載ECUの数が増加する傾向となるが、当該車載ECUをグループ(セグメント)に分けて車両ネットワークを構成し、同一グループとなる複数の車載ECUは共通の通信線で接続され相互にデータの送受信を行うと共に、異なるグループの車載ECU間のデータの送受信は、車載中継装置(ゲートウェイ)によって中継される(例えば、特許文献1)。
【0003】
特許文献1の車両ネットワークには、車載中継装置(ゲートウェイ)に加え、車両ネットワークのセグメント夫々に接続され、車両ネットワークに流れる不正なデータ(メッセージ)を検知する車両ネットワーク監視装置を備えている。当該車両ネットワーク監視装置は、不正なデータ(メッセージ)を検知したとき、車載制御装置(車載ECU)に対して警告情報(メッセージコード)を送信する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-131907号公報
【発明の概要】
【0005】
本開示の一態様に係る車載装置は、車両に搭載される車載ネットワークに接続される車載装置であって、前記車載ネットワークに流れるデータの正否の判定に関する処理を行う処理部を備え、前記処理部は、前記車載ネットワークに流れる複数のデータを受信し、受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行う。
【図面の簡単な説明】
【0006】
図1】実施形態1に係る車載装置を含む車載システムの構成を例示する模式図である。
図2】車載装置の物理構成を例示するブロック図である。
図3】データ種別テーブルに関する説明図である。
図4】データの判定(正常判定)に関する説明図である。
図5】データの判定(通信途絶発生)に関する説明図である。
図6】データの判定(異常(特定)判定)に関する説明図である。
図7】データの判定(異常(範囲)判定)に関する説明図である。
図8】データの判定(組み合わせ)に関する説明図である。
図9】車載装置の処理部の状態遷移に関する説明図である。
図10】車載装置の処理部による判定態様に関する説明図である。
図11】車載装置の処理部の処理を例示するフローチャートである。
図12】実施形態2に係るデータの判定(ダイアグマスク期間)に関する説明図である。
図13】車載装置の処理部の状態遷移に関する説明図である。
図14】車載装置の処理部の処理を例示するフローチャートである。
【発明を実施するための形態】
【0007】
[本開示が解決しようとする課題]
特許文献1の車両ネットワーク監視装置は、周期的に送信されるメッセージに対し、当該送信周期に基づき効率的に不正なメッセージを検出する点に関する考慮がされていないという問題点がある。
【0008】
本開示は、周期的に送信されるデータに対し、当該送信周期に基づき効率的に不正なデータを検出することができる車載装置等を提供することを目的とする。
【0009】
[本開示の効果]
本開示の一態様によれば、周期的に送信されるデータに対し、当該送信周期に基づき効率的に不正なデータを検出する車載装置等を提供することができる。
【0010】
[本開示の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0011】
(1)本開示の一態様に係る車載装置は、車両に搭載される車載ネットワークに接続される車載装置であって、前記車載ネットワークに流れるデータの正否の判定に関する処理を行う処理部を備え、前記処理部は、前記車載ネットワークに流れる複数のデータを受信し、受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行う。
【0012】
本態様にあたっては、車載装置の処理部は、車載ネットワークに接続される車載ECUから送信されるCANメッセージ等の複数のデータを受信(取得)する。当該複数のデータは、例えば、同一のCAN-ID(メッセージID)となる同種のデータを含んでおり、処理部は、同種のデータを連続して受信した場合、先に受信したデータの受信時点と、後に受信したデータの受信時点との間隔となる受信間隔を導出する。処理部は、当該受信間隔と、先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、後に受信したデータ(先に受信したデータと同種のデータ)の成否の判定を行うため、周期的に送信されるメッセージに対し、当該送信周期に基づき効率的に不正なメッセージを検出する。正常周期範囲は、連続して受信した同種の2つのデータにおいて、先に受信したデータの受信時点を基準に特定されるため、先に受信したデータの受信時点が、当該データの送信周期の開始時点から固定的に定められる受信時点に対し変動した場合であっても、当該正常周期範囲に基づき、後に受信したデータの正否判定を適切に行うことができる。
【0013】
(2)本開示の一態様に係る車載装置は、前記正常周期範囲は、前記データの種別に基づき決定される送信周期を基準値として上下限値が設定された範囲である。
【0014】
本態様にあたっては、車載装置の処理部は、データの種別に基づき決定される送信周期(設計周期)を基準値とし、当該基準値を例えば中央値として上下限値を設定することにより、正常周期範囲を特定する。各車載ECUから送信されるCANメッセージ等のデータにおいて、例えば、同一のCAN-ID(メッセージID)となる同種のデータが送信される送信周期は、当該データの種別(メッセージID)によって予め決定されている。しかしながら、車載ネットワークのネットワーク負荷、車載ECUの演算負荷、又は車載中継装置の処理負荷に応じて、データが送信又は受信されるタイミングがずれ、当該送信周期から外れて、当該データが送信又は受信されることが発生する。これに対し、車載装置の処理部は、送信周期を基準値(例えば中央値)とし、当該送信周期の例えばa%等、所定の比率(上下限値比率)に相当する時間を加算した値を上限値とし、減算した値を下限値とした範囲を正常周期範囲とする。これにより、車載ネットワークのネットワーク負荷等にて影響されるデータの受信タイミングの遅延等の変動を吸収してロバスト性を向上させ、データの正否判定の精度向上を図ることができる。
【0015】
(3)本開示の一態様に係る車載装置は、前記処理部は、前記受信間隔が、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした前記正常周期範囲内である場合、連続して受信した同種のデータの内の後に受信したデータは正常であると判定し、前記受信間隔が、前記正常周期範囲内でない場合、連続して受信した同種のデータの内の後に受信したデータは異常であると判定する。
【0016】
本態様にあたっては、処理部は、連続して受信した同種の2つのデータによる受信間隔が、正常周期範囲内となる場合、後に受信したデータは正常であると判定し、正常周期範囲内でない場合、すなわち受信間隔が正常周期範囲外となる場合、後に受信したデータは異常であると判定するため、効率的にデータの正否判定を行うことができる。正常周期範囲は、例えば、先に受信したデータの受信時点に当該データの種別に基づき決定される送信周期を加算した時点に、上下限値が設定された範囲であるため、受信間隔が正常周期範囲内となることは、後に受信したデータの受信時点が、正常周期範囲によって定められる下限時点(limit-low)から上限時点(limit-upp)までの間に位置することを意味する。受信間隔が正常周期範囲外となることは、後に受信したデータの受信時点が、正常周期範囲によって定められる下限時点(limit-low)から上限時点(limit-upp)までの間に位置せず、例えば、下限時点(limit-low)よりも前の時点であることを意味する。このように受信間隔が、先に受信したデータの受信時点を基準に特定される正常周期範囲内であるか、範囲外であるかに基づき、後に受信したデータの正否判定を行うため、効率的に不正なデータを検出することができる。
【0017】
(4)本開示の一態様に係る車載装置は、前記処理部は、前記正常周期範囲内に同種のデータを受信できなかった場合、前記正常周期範囲以降に受信した同種のデータの受信時点を基準に次の正常周期範囲を特定する。
【0018】
本態様にあたっては、正常周期範囲内に同種のデータを受信できなかった場合、すなわち正常周期範囲によって定められる下限時点(limit-low)から上限時点(limit-upp)までの間に、先のデータと同種のデータを受信できなかった場合、本来送信又は受信されるデータが、ネットワーク負荷等の影響によるロスト(消失)したことによる通信遮断が発生したことが考えられる。これに対し、車載装置の処理部は、正常周期範囲以降、すなわち当該正常周期範囲にて定められる上限時点(limit-upp)よりも後に受信したデータ(先のデータと同種のデータ)の受信時点を基準に、正常周期範囲を特定する。これにより、データのロスト(消失)等による通信途絶が発生した場合であっても、正常周期範囲を特定するための基準となるデータを受信(再取得)することにより、当該データを受信(再取得)した後に受信したデータに対する正否判定処理を効率的に再開することができる。このように車載装置の処理部は、正常周期範囲以降に受信したデータに対し、一律に異常と判定せず、当該データの受信時点を基準に正常周期範囲を特定することにより、正常周期範囲以降に受信したデータが正常なデータであるにもかかわらず、異常なデータであるとして誤検知されることを防止することができる。
【0019】
(5)本開示の一態様に係る車載装置は、前記処理部は、前記正常周期範囲内にて受信した同種のデータの個数が一つの場合、該正常周期範囲内にて受信した一つのデータは正常であると判定し、前記正常周期範囲内にて受信した同種のデータの個数が複数の場合、該正常周期範囲内にて受信した複数のデータに含まれるいずれかのデータは異常であると判定する。
【0020】
本態様にあたっては、同種となる複数のデータが、順次に送信される際の送信周期は、当該データの種別に基づき予め決定しているため、正常周期範囲内にて受信、すなわち正常周期範囲によって定められる下限時点(limit-low)から上限時点(limit-upp)までの間に受信されるデータ(先のデータと同種のデータ)の個数は、本来的に1つである。これに対し、正常周期範囲内にて受信した同種のデータの個数が複数の場合、当該複数のデータには、異常なデータが含まれているものとなる。このように車載装置の処理部は、正常周期範囲内に複数の同種のデータを受信した場合、当該範囲内にて異常なデータが含まれていると判定することにより、所定の受信期間における範囲での異常検知(範囲異常検知)を効率的に行うことができる。
【0021】
(6)本開示の一態様に係る車載装置は、前記処理部は、前記正常周期範囲内にて受信した同種のデータの個数が複数の場合、前記正常周期範囲以降に受信した同種のデータの受信時点を基準に次の正常周期範囲を特定する。
【0022】
本態様にあたっては、車載装置の処理部は、正常周期範囲内にて受信、すなわち正常周期範囲によって定められる下限時点(limit-low)から上限時点(limit-upp)までの間に受信されるデータ(先のデータと同種のデータ)の個数が2つ以上の複数である場合、正常周期範囲以降(上限時点(limit-upp)以降)に受信した同種のデータの受信時点を基準に、次の判定処理にて用いる正常周期範囲を特定する。すなわち、車載装置の処理部は、正常周期範囲内にて受信した複数のデータには、少なくとも1つ以上の異常なデータが含まれていると判定し、当該複数のデータにおけるいずれのデータも、以降の判定処理にて用いる正常周期範囲を特定するための基準のデータとして、用いない。車載装置の処理部は、このように判定した正常周期範囲の上限時点よりも後に受信した同種のデータの受信時点を基準に、以降の判定処理にて用いる正常周期範囲を特定するため、所定の受信期間における範囲での異常検知(範囲異常検知)がされた場合であっても、データの正否判定を効率的に継続(再開)することができる。
【0023】
(7)本開示の一態様に係る車載装置は、前記処理部は、先に受信したデータの判定に用いられた前の正常周期範囲と、前記先に受信したデータの受信時点を基準とした今回の正常周期範囲との間にて、該データと同種のデータを受信した場合、該同種のデータは異常であると判定する。
【0024】
本態様にあたっては、同種となる複数のデータは、予め定められた送信周期(設計周期)に応じて順次に送信され、車載装置の処理部は、当該複数のデータを順次に受信するにあたり、受信したデータを基準に、次に受信するデータの正否判定を行うための正常周期範囲を特定する。従って、正常周期範囲は、順次に受信した複数のデータに応じて、順次に特定されるものとなる。車載装置の処理部は、先に受信したデータの判定の差異に用いた正常周期範囲(前の正常周期範囲)と、当該先に受信したデータの受信時点を基準とした正常周期範囲(今回の正常周期範囲)との間にて、該データと同種のデータを受信した場合、該同種のデータは異常(特定異常検知)であると判定する。すなわち、車載装置の処理部は、前の正常周期範囲によって定められる上限時点(limit-upp)と、今回の正常周期範囲によって定められる下限時点(limit-low)との間にて、先に受信したデータと同種のデータを受信した場合、当該同種のデータは異常であると判定する。車載装置の処理部は、このような判定ロジックを用いることにより、正常周期範囲外にて受信されたデータを効率的に異常であると判定することができる。
【0025】
(8)本開示の一態様に係る車載装置は、前記処理部は、先に受信したデータの受信時点を基準とした正常周期範囲内にて、該データと同種のデータを1つ受信した場合、該同種のデータは正常であると判定し、正常であると判定したデータの受信時点を基準に次の正常周期範囲を特定する。
【0026】
本態様にあたっては、車載装置の処理部は、前の正常周期範囲によって定められる上限時点(limit-upp)と、今回の正常周期範囲によって定められる下限時点(limit-low)との間にて、先に受信したデータと同種のデータを受信した場合、当該同種のデータは異常であると判定する。更に、車載装置の処理部は、先に受信したデータの受信時点を基準とした正常周期範囲内、すなわち今回の正常周期範囲にて、同種のデータを1つ受信した場合、当該同種のデータは正常であると判定する。車載装置の処理部は、これら判定処理を行うにあたり、前の正常周期範囲の上限時点(limit-upp)から、今回の正常周期範囲の上限時点(limit-upp)までに受信した同種のデータの個数をカウントし、当該カウントとした同種のデータそれぞれにおける受信間隔に基づき、個々のデータの正否判定を行うものであってもよい。
【0027】
(9)本開示の一態様に係る車載装置は、前記処理部は、複数の動作状態に遷移し、前記複数の動作状態は、前記正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態と、特定された前記正常周期範囲に基づき受信したデータの正否を判定する判定実行状態とを含む。
【0028】
本態様にあたっては、車載装置の処理部は、例えば、車両のIGスイッチがオンにされた以降にいずれかのデータが最初に受信(初回受信)されるまでの間、又は正常周期範囲内にて、正常と判定される後のデータを受信できなかった場合、処理部の状態は、正常周期範囲を特定するにあたり基準となるデータ(基準データ)の受信を行う基準データ受信状態に遷移する。当該基準データ受信状態に遷移した処理部は、基準となるデータ(基準データ)を受信すべく、当該データの受信を待ち受ける状態を継続する。車載装置の処理部は、正常周期範囲を特定するための基準となるデータ(基準データ)を受信した後、特定された正常周期範囲に基づき受信したデータの正否を判定する判定実行状態に遷移する。このように車載装置の処理部は、データの正否判定等に応じて、基準データ受信状態及び判定実行状態を含む複数の動作状態間にて遷移することにより、以降の処理にて用いる基準となるデータ(基準データ)を効率的に受信し、当該基準データに基づき正常周期範囲を効率的に特定することができる。
【0029】
(10)本開示の一態様に係る車載装置は、前記処理部は、前記基準データ受信状態では異常検知を行わない。
【0030】
本態様にあたっては、車載装置の処理部は、基準データ受信状態に遷移し、当該基準データ受信状態においては、受信したデータの正否を判等の異常検知に関する処理を禁止することにより、当該異常検知を行わないものとする。このように基準データ受信状態において異常検知を禁止することにより、受信したデータに対する誤検知が発生することを確実に抑制しつつ、当該受信したデータをルーティングマップに従い、他の通信線(CANバス)に転送する等の中継処理を効率的に行うことができる。
【0031】
(11)本開示の一態様に係る車載装置は、前記処理部は、前記基準データ受信状態ではセキュリティログを保存しない。
【0032】
本態様にあたっては、車載装置の処理部は、基準データ受信状態に遷移し、当該基準データ受信状態においては、判定実行状態での検知結果に基づくセキュリティログ(攻撃検知ログデータ)を、記憶部21に記憶する保存する処理を行わない。このように基準データ受信状態においては、セキュリティログを保存しないことにより、車載装置の処理部による処理負荷を低減させることができる。
【0033】
(12)本開示の一態様に係る車載装置は、前記処理部は、受信したデータが異常である判定した場合、異常の態様に応じた情報をアクセス可能な所定の記憶領域に記憶する。
【0034】
本態様にあたっては、車載装置の処理部は、受信したデータが異常である判定した場合、異常の態様に応じた情報を出力、又は自部からアクセス可能な所定の記憶領域に記憶するため、車両の操作者等に当該異常が発生した旨を効率的に報知することができる。
【0035】
(13)本開示の一態様に係る車載装置は、前記アクセス可能な所定の記憶領域は、揮発性の記憶領域であり、前記処理部は、前記車両のIGスイッチがオフにされた場合、前記揮発性の記憶領域に記憶した情報を、アクセス可能な所定の不揮発性の記憶領域に移行する。
【0036】
本態様にあたっては、車載装置の処理部がアクセス可能な所定の記憶領域は、例えばRAM等の揮発性の記憶領域と、フラッシュメモリ等の不揮発性の記憶領域とを含み、車載装置の処理部は、受信したデータが異常である判定した場合、異常の態様に応じた情報を揮発性の記憶領域に一旦、記憶する。車載装置の処理部は、IGスイッチがオフにされた場合、例えば当該オフ信号をトリガーとして、揮発性の記憶領域に記憶した情報(異常の態様に応じた情報)を、不揮発性の記憶領域に記憶(コピー)することにより、当該情報を不揮発性の記憶領域に移行(退避)する。これにより、IGスイッチがオフされ揮発性の記憶領域内の情報が消去されても、異常の態様に応じた情報を不揮発性の記憶領域にて保存することができる。車載装置の処理部は、異常の態様に応じた情報を揮発性の記憶領域に記憶するにあたり、当該情報を異常検知した際のログとして記憶するものであってもよい。この際、車載装置の処理部は、記憶(保存)するログの個数の上限値を定め、保存するログの個数が上限値を超えた場合、最も古いログを上書きして、最新のログを保存するものであってもよい。当該上限値は、異常検知の対象となるデータの種別(CANメッセージID)に応じて、異ならせるものであってもよい。又は全てのデータの種別を対象に上限値を定めるものであってもよい。このような上限値に基づく上書き処理を行うことにより、揮発性の記憶領域、又は不揮発性の記憶領域に要求される記憶容量が過度に大きくなることを、抑制することができる。
【0037】
(14)本開示の一態様に係る車載装置は、前記処理部は、受信したデータの受信時点を基準に前記正常周期範囲を特定する際、前記基準となったデータの種類と受信時点とを関連付けてアクセス可能な所定の記憶領域に記憶する。
【0038】
本態様にあたっては、車載装置の処理部は、受信したデータの受信時点を基準に正常周期範囲を特定する際、基準となったデータの種類と受信時点とを関連付けて出力、又は自部からアクセス可能な所定の記憶領域に記憶するため、基準データ受信状態に遷移した際の情報を的確に記憶等することができる。
【0039】
(15)本開示の一態様に係る車載装置は、前記処理部は、前記車両のIGスイッチがオンにされた場合、予め定められたダイアグマスク期間が経過した後、最初に受信したデータ及び該データと同種のデータを連続して受信し、前記連続して受信したデータの受信間隔が、最初に受信したデータを基準とした前記正常周期範囲内である場合、前記連続して受信したデータの内の後に受信したデータの受信時点を基準に次の正常周期範囲を特定する。
【0040】
本態様にあたっては、車載装置の処理部は、IGスイッチがオンにされた以降に行われるダイアグマスク期間が経過した後、正常周期範囲を特定するための基準データを特定する。当該ダイアグマスク期間は、車両に搭載される車載装置に対する異常検出を行わない期間である。車載装置の処理部は、ダイアグマスク期間が経過後に、最初に受信したデータと、当該データと同種のデータであって、当該データの直後に受信したデータ(後に受信したデータ)との受信間隔、すなわちこれら連続して受信したデータの受信間隔が、最初に受信したデータを基準とした前記正常周期範囲内である場合、後に受信したデータの受信時点を基準に次の正常周期範囲を特定する。このようにダイアグマスク期間の経過後において、最初に受信したデータ及び、当該データと同種のデータであって、当該データの直後に受信したデータから成る連続して受信した同種の2つのデータに基づき、後に受信したデータを、正常周期範囲を特定するための基準データと特定する。これにより、以降に受信するデータの正否判定の適切性を、向上させることができる。車載装置の処理部は、当該連続して受信した同種の2つのデータ(最初に受信したデータ、後に受信したデータ)を、記憶部に記憶するものであってもよい。
【0041】
(16)本開示の一態様に係るプログラムは、コンピュータに、車両に搭載される車載ネットワークに流れる複数のデータを受信し、受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行う処理を実行させる。
【0042】
本態様にあたっては、コンピュータを、周期的に送信されるデータに対し、当該送信周期に基づき効率的に不正なデータを検出する車載装置として動作させることができる。
【0043】
(17)本開示の一態様に係る情報処理方法は、コンピュータに、車両に搭載される車載ネットワークに流れる複数のデータを受信し、受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行う処理を実行させる。
【0044】
本態様にあたっては、コンピュータを、周期的に送信されるデータに対し、当該送信周期に基づき効率的に不正なデータを検出する車載装置として動作させる情報処理方法を提供することができる。
[本開示の実施形態の詳細]
本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載装置2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0045】
(実施形態1)
以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載装置2を含む車載システムの構成を例示する模式図である。図2は、車載装置2の物理構成を例示するブロック図である。
【0046】
車載システムSは、車両に搭載される車載装置2、車外通信装置1を含む。車載装置2は、車両に搭載される複数の車載ECU3間の通信を中継する。車載装置2は、車外通信装置1を介して車外ネットワークNを介して接続された外部サーバ100と通信し、外部サーバ100と、車両に搭載される車載ECU3との間の通信を中継するものであってもよい。
【0047】
外部サーバ100は、例えばインターネット又は公衆回線網等の車外ネットワークNに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による記憶部又はストレージ装置を備える。当該外部サーバ100の記憶部等は、車載装置2からアクセス可能な記憶領域に含まれる。
【0048】
車両Cには、車外通信装置1、車載装置2、表示装置5、及び種々の車載機器を制御するための複数の車載ECU3が搭載されている。車載装置2と車外通信装置1とは、例えばシリアルケーブル等のワイヤーハーネスにより通信可能に接続されている。車載装置2及び車載ECU3は、CAN(Control Area Network/登録商標)又はイーサネット(Ethernet/登録商標)等の通信プロトコルに対応した通信線41及び車載ネットワーク4によって通信可能に接続されている。車載装置2及び車載ECU3における通信プロトコルは、LIN、MOST、FlexRay等によるものであってもよい。
【0049】
車外通信装置1は、車外通信部(図示せず)及び、車載装置2と通信するための入出力I/F(図示せず)を含む。車外通信部は、3G、LTE、4G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナ11を介して外部サーバ100とデータの送受信を行う。車外通信装置1と外部サーバ100との通信は、例えば公衆回線網又はインターネット等の外部ネットワークNを介して行われる。入出力I/Fは、車載装置2と、例えばシリアル通信するための通信インターフェイスである。車外通信装置1と車載装置2とは、入出力I/F及び入出力I/Fに接続されたシリアルケーブル等のワイヤーハーネスを介して相互に通信する。本実施形態では、車外通信装置1は、車載装置2と別装置とし、入出力I/F等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置1は、車載装置2の一構成部位として、車載装置2に内蔵されるものであってもよい。
【0050】
車載装置2は、処理部20、記憶部21、入出力I/F22、及び車内通信部23を含む。車載装置2は、例えば、認知系の車載ECU3、判断系の車載ECU3及び、操作系の車載ECU3等の複数の通信線41による系統のセグメントを統括し、これらセグメント間での車載ECU3同士の通信を中継するゲートウェイ(CANゲートウェイ)等の車載中継装置である。複数の通信線41夫々は、各セグメントにおけるバス(CANバス)に相当する。車載装置2は、イーサSW等の車載中継装置、データ通信の中継機能に加え電源分配の機能を有するPLB(Power Lan Box)、中継機能を有し車両Cの全体を統合的に制御する統合ECUであってもよい。又は、車載装置2は、車両Cのボディ系アクチュエータを制御するボディECU等、車載ECU3の一機能部として構成されるものであってもよい。
【0051】
処理部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部21に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。処理部20は、車内通信部23を介して取得(受信)したデータ(メッセージ)の正否判定を行うと共に、車載装置2の全体的な制御を行う制御部として機能するものであってもよい。
【0052】
記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータが予め記憶してある。記憶部21に記憶された制御プログラムは、車載装置2が読み取り可能な記録媒体211から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部21に記憶させたものであってもよい。
【0053】
記憶部21には、車載ECU3間の通信、又は車載ECU3と外部サーバ100との間の通信のための中継処理を行うにあたり用いられる中継経路情報(ルーティングテーブル)が、記憶される。当該中継経路情報は、通信プロトコルに基づき書式が決定される。通信プロトコルがCANの場合、CAN用中継経路情報は、CANメッセージに含まれるメッセージ識別子(CAN-ID、メッセージID)及び、当該CAN-IDに関連付けられた中継先(車内通信部23のI/Oポート番号)を含む。
【0054】
入出力I/F22は、車外通信装置1の入出力I/Fと同様に、例えばシリアル通信するための通信インターフェイスである。例えば、入出力I/F22を介して、車載装置2は、車外通信装置1、表示装置5(HMI装置)及び、車両Cの起動及び停止を行うIGスイッチ6と通信可能に接続される。
【0055】
車内通信部23は、例えばCAN(Control Area Network)、CAN-FD(CAN with Flexible Data Rate)又はイーサネット(Ethernet/登録商標)の通信プロトコルを用いた入出力インターフェイスであり、処理部20は、車内通信部23を介して車載ネットワーク4に接続されている車載ECU3又は他の中継装置等の車載機器と相互に通信する。
【0056】
車内通信部23は、複数個設けられており、車内通信部23夫々に、車載ネットワーク4を構成する通信線41夫々(CANバス等)が接続されている。このように車内通信部23を複数個設けることにより、車載ネットワーク4を複数個のセグメントに分けるものであってもよい。車載ネットワーク4のトポロジー型式は、本実施形態における図示のようなバス型に限定されず、当該トポロジー型式は、例えば、車載装置2を中心としたスター型、複数の車載装置2によるリング型、又は車載装置2を最上位としたカスケード型であってもよい。
【0057】
車載ECU3は、車載装置2と同様に制御部(図示せず)、記憶部(図示せず)及び車内通信部(図示せず)を含む。記憶部は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、車載ECU3のプログラム又はデータが記憶されている。車載ECU3は、例えば、周期的にCANメッセージを送信し、車載装置2と通信する。車載ECU3は、センサ又はアクチュエータが接続され、統合ECUの配下に接続される個別ECUであってもよい。
【0058】
表示装置5は、例えばカーナビゲーションのディスプレイ等のHMI(Human Machine Interface)装置である。表示装置5は、車載装置2の入出力I/F22とシリアルケーブル等のハーネスにより通信可能に接続されている。表示装置5には、車載装置2の処理部20から入出力I/F22を介して出力されたデータ又は情報が表示される。
【0059】
図3は、データ種別テーブルに関する説明図である。処理部20が判定処理を行う際に参照する種々データは、車載装置2の記憶部21、車載ECU3又は外部サーバ100に接続されるストレージ装置等、処理部20からアクセス可能な所定の記憶領域に記憶されている。処理部20が判定処理を行うにあたり監視対象となるデータ種別は、例えば、テーブル形式にて構成されるデータ種別テーブルとして、記憶部21等に記憶されている。
【0060】
データ種別テーブルにて定義されている管理項目(フィールド)は、例えば、メッセージID、設計周期、上下限値比率、正常周期範囲、及び判定実行対象フラグを含む。
【0061】
メッセージIDの管理項目(フィールド)には、例えば、CANメッセージの種別を示すメッセージID(CAN-ID)が格納される。当該メッセージIDに基づき、受信させるデータの種別が決定される。判定対象のデータが、例えば、CANメッセージである場合、メッセージIDが同じCANメッセージは、同種のデータであるとして処理が行われる。
【0062】
データの種別を決定するための管理項目(フィールド)は、CANメッセージにおけるメッセージIDに限定されず、例えばTCP/IPパケットにおいては、当該パケットに含まれる送信元IPアドレス、送信先IPアドレス、TCPポート番号、UDPポート番号、又はこれらの組み合わせによるものであってもよい。
【0063】
設計周期は、データ(メッセージ)が、いずれかの車載ECU3等から送信される際、予め定められた送信周期を示すものであり、すなわち当該車載ECU3に実装されるアプリケーション等の設計仕様に基づく送信周期である。設計周期の管理項目(フィールド)には、個々のデータにおける設計周期(例えば、x[ms])が格納される。
【0064】
上下限値比率は、設計周期に基づき正常周期範囲を特定するための上下限値を示すものである。上下限値比率は、例えば、設計周期に対する比率(例えばa%、ただしa>0)として定義されるものであってもよく、又は、実時間(±x×a×0.01[ms])にて示されるものであってもよい。又は、上下限値比率は上限と下限で異なる比率であってもよい。
【0065】
正常周期範囲は、設計周期及び上下限値比率によって算出される範囲であり、受信したデータの正否を判定する際に用いられる情報である。例えば、設計周期がx[ms]、上下限値比率がa%(±x×a×0.01[ms])の場合、正常周期範囲は、x-x×a×0.01[ms]から、x+x×a×0.01[ms]となる。正常周期範囲を特定するにあたり基準となる基準データの受信時点を(Kms)とした場合、正常周期範囲の中央値は(K+x)ms、正常周期範囲の下限時点(limit-low)は{(K+x)-(x×a×0.01)}ms、正常周期範囲の上限時点(limit-upp)は{(K+x)+(x×a×0.01)}msの時点となる。本実施形態においては、データ種別テーブルは、設計周期及び上下限値比率と、正常周期範囲とを共に含むとしたが、これに限定されず、いずれかのみを含むものであってよいことは、言うまでもない。
【0066】
判定実行対象フラグは、車載ネットワーク4にて送受信されるデータにおいて、いずれの種別のデータを、正否判定の実行対象(監視対象)とするかを定めるフラグ値(1:監視対象、0:非監視対象)が格納される。このように車載ネットワーク4にて送受信されるデータにおいて、判定実行対象フラグが設定された種別のデータを正否判定の実行対象(監視対象)とすることにより、重要度が比較的に高いデータのみを監視対象にして、車載装置2(処理部)の処理負荷を低減することができる。
【0067】
図4は、データの判定(正常判定)に関する説明図である。本実施形態における図示において、特定のデータ種別のデータ(CANメッセージ等)に関する判定処理について説明する。当該図示において、横軸は時間(経過時間)を示す。
【0068】
車載装置2の処理部20は、例えば、記憶部21に記憶されているデータ種別テーブルにて定められるデータ(監視対象メッセージ)毎に、同種のデータ(同一のメッセージID)の受信間隔を算出し、受信間隔が正常周期範囲内に入っていれば、当該データ(メッセージ)を正常と判定する。
【0069】
処理部20は、受信間隔が正常周期範囲内に入っていない場合、又は正常周期範囲内にて複数のデータを受信した場合、当該データを異常と判定する。受信間隔が正常周期範囲内に入っていない場合は、どのメッセージが異常かを特定できた状態を示すものとなり、処理部20は、特定異常と判定する。正常周期範囲内にて複数のデータを受信した場合は、ある範囲に異常が含まれていることを検知した状態を示すものとなり、処理部20は、範囲異常と判定する。
【0070】
正常データ(メッセージ)と判定した場合、当該データ(メッセージ)を基準(基準データ)とし、当該基準データと、次に受信したデータ(メッセージ)との受信間隔を算出する。基準データ(基準メッセージ)は、監視対象メッセージのデータ種別(メッセージID)毎に設定し、基準データの取得状態において、初回受信メッセージと、2回目に受信したメッセージの受信間隔(ΔT)が正常範囲内だった場合、2回目に受信したデータ(メッセージ)を基準データ(基準メッセージ)とする。基準データの設定は2回に限らず、当該データが複数回連続した場合に決定する構成でもよい。すなわち、処理部20は、例えば、5回連続して受信間隔が正常範囲内だった場合、5回目に受信したデータ(メッセージ)を基準データ(基準メッセージ)とするものであってもよい。
【0071】
IGスイッチ6がオンされることにより車両Cが起動され、車載ネットワーク4に接続される個々の車載ECU3から、CANメッセージ等のデータが送信される。車載装置2の処理部20は、例えば、メッセージID(CAN-ID)等によって分類される各種別毎のデータの初回受信を行い、初回受信されたデータは、正常周期範囲を特定するための最初の基準データ(基準メッセージ)として設定される。
【0072】
処理部20は、基準データを受信した時刻等を示す受信時点に、記憶部21に記憶されているデータ種別テーブルを参照し、データの種別に基づき予め決定されている送信周期である設計周期(T)を加算し、加算された時点を中心値として、上下限値を加算、及び減算することにより、正常周期範囲を特定(導出)する。すなわち、正常周期範囲は、中心値に対し上限値が加算された上限時点(limit-upp)と、中心値に対し下限値が減算された下限時点(limit-low)との間の範囲(期間)に相当する。これにより、送信周期(設計周期)は、受信時刻(基準データの受信時点)からの相対時間となる。
【0073】
車載装置2の処理部20によって、繰り返し行われる判定処理を以下に説明する。処理部20は、基準メッセージから設計周期(T)後を中央値とし、下限時点(limit-low1)と上限時点(limit-upp1)を上下限とする正常周期範囲1を算出する。処理部20は、上限時点(limit-upp1)の時点で基準メッセージ以降に受信したメッセージの個数と受信間隔をカウントする。
【0074】
処理部20は、受信したメッセージ1(Msg1)が正常周期範囲1内かつ、個数が1個であるため、正常メッセージと判断しメッセージ1(Msg1)を基準メッセージとして更新(再設定)する。処理部20は、メッセージ1(Msg1)(この時点で基準メッセージ)から設計周期(T)後を中央値とし、下限時点(limit-low2)と上限時点(limit-upp2)を上下限とする正常周期範囲2を算出する。
【0075】
処理部20は、上限時点(limit-upp2)の時点で、メッセージ1(Msg1)により更新(再設定)された基準メッセージ以降に受信したメッセージの個数と、当該基準メッセージからの受信間隔をカウントする。処理部20は、受信したメッセージ2(Msg2)が正常周期範囲2内かつ、個数が1個であるため、メッセージ2(Msg2)を基準メッセージとして更新(再設定)する。
【0076】
処理部20は、車載装置2の処理部20は、上記の処理を繰り返すことにより、正常判定されたデータ(メッセージ)に基づき、基準データ(基準メッセージ)を更新(再設定)し、更新された基準データによって都度特定される正常周期範囲を用いて、当該基準データよりも後に受信したデータ(メッセージ)の判定処理を繰り返す。
【0077】
図5は、データの判定(通信途絶発生)に関する説明図である。処理部20は、基準メッセージから設計周期(T)後を中央値とし、下限時点(limit-low1)と上限時点(limit-upp1)を上下限とする正常周期範囲1を算出する。処理部20は、上限時点(limit-upp1)の時点で基準メッセージ以降に受信したメッセージの個数と受信間隔をカウントする。
【0078】
処理部20は、受信したメッセージ1(Msg1)が正常周期範囲1内かつ、個数が1個であるため、メッセージ1(Msg1)を基準メッセージとして更新(再設定)する。処理部20は、メッセージ1(Msg1)(この時点で基準メッセージ)から設計周期(T)後を中央値とし、下限時点(limit-low2)と上限時点(limit-upp2)を上下限とする正常周期範囲2を算出する。処理部20は、上限時点(limit-upp2)の時点で、メッセージ1(Msg1)により更新(再設定)された基準メッセージ以降に受信したメッセージの個数と、当該基準メッセージからの受信間隔をカウントする。
【0079】
処理部20は、正常周期範囲2において受信したメッセージが0個のため、通信途絶が発生したと判断し、当該正常周期範囲2が経過した後、すなわち正常周期範囲2の上限時点(limit-upp2)よりも後に基準メッセージの再取得を行う。処理部20は、正常周期範囲2の上限時点(limit-upp2)よりも後に取得(受信)したメッセージを基準メッセージとして設定し、正常周期範囲3を特定する。
【0080】
図6は、データの判定(異常(特定)判定)に関する説明図である。処理部20は、基準メッセージから設計周期(T)後を中央値とし、下限時点(limit-low1)と上限時点(limit-upp1)を上下限とする正常周期範囲1を算出する。処理部20は、上限時点(limit-upp1)の時点で基準メッセージ以降に受信したメッセージの個数と受信間隔をカウントする。
【0081】
処理部20は、受信したメッセージ1(Msg1)が正常周期範囲1内かつ、個数が1個であるため、メッセージ1(Msg1)を基準メッセージとして更新(再設定)する。処理部20は、メッセージ1(Msg1)(この時点で基準メッセージ)から設計周期(T)後を中央値とし、下限時点(limit-low2)と上限時点(limit-upp2)を上下限とする正常周期範囲2を算出する。
【0082】
処理部20は、上限時点(limit-upp2)の時点で、メッセージ1(Msg1)により更新(再設定)された基準メッセージ以降に受信したメッセージの個数と、当該基準メッセージからの受信間隔をカウントする。処理部20は、受信したメッセージが正常周期範囲外に1個(メッセージ2(Msg2))、正常周期範囲2内に1個(メッセージ3(Msg3))のため、メッセージ2(Msg2)を異常検知(特定異常と判定)とし、メッセージ3(Msg3)を基準メッセージとして更新(再設定)する。
【0083】
処理部20は、特定異常と判定されるデータを受信した場合であっても、上記の処理を繰り返すことにより、正常判定されたデータ(メッセージ)に基づき、基準データ(基準メッセージ)を更新(再設定)する。処理部20は、当該更新された基準データによって都度特定される正常周期範囲を用いて、当該基準データよりも後に受信したデータ(メッセージ)の判定処理を繰り返す。
【0084】
図7は、データの判定(異常(範囲)判定)に関する説明図である。処理部20は、基準メッセージから設計周期(T)後を中央値とし、下限時点(limit-low1)と上限時点(limit-upp1)を上下限とする正常周期範囲1を算出する。処理部20は、上限時点(limit-upp1)の時点で基準メッセージ以降に受信したメッセージの個数と受信間隔をカウントする。
【0085】
処理部20は、受信したメッセージ1(Msg1)が正常周期範囲1内かつ、個数が1個であるため、メッセージ1(Msg1)を基準メッセージとして更新(再設定)する。処理部20は、メッセージ1(Msg1)(この時点で基準メッセージ)から設計周期(T)後を中央値とし、下限時点(limit-low2)と上限時点(limit-upp2)を上下限とする正常周期範囲2を算出する。
【0086】
処理部20は、上限時点(limit-upp2)の時点で、メッセージ1(Msg1)により更新(再設定)された基準メッセージ以降に受信したメッセージの個数と、当該基準メッセージからの受信間隔をカウントする。処理部20は、受信したメッセージ(メッセージ2(Msg2)、メッセージ3(Msg3))が正常周期範囲2内に2個以上のため、メッセージ2(Msg2)、メッセージ3(Msg3)を異常検知(範囲異常と判定)とし、当該正常周期範囲2が経過した後、すなわち正常周期範囲2の上限時点(limit-upp2)よりも後に基準メッセージの再取得を行う。
【0087】
処理部20は、正常周期範囲2の上限時点(limit-upp2)よりも後に取得(受信)したメッセージを基準メッセージとして設定し、正常周期範囲3を特定する。処理部20は、範囲異常と判定される複数のデータを受信した場合であっても、上記の処理を繰り返すことにより、基準データ(基準メッセージ)を更新(再設定)し、更新された基準データによって都度特定される正常周期範囲を用いて、当該基準データよりも後に受信したデータ(メッセージ)の判定処理を繰り返す。
【0088】
図8は、データの判定(組み合わせ)に関する説明図である。処理部20は、基準メッセージから設計周期(T)後を中央値とし、下限時点(limit-low1)と上限時点(limit-upp1)を上下限とする正常周期範囲1を算出する。処理部20は、上限時点(limit-upp1)の時点で基準メッセージ以降に受信したメッセージの個数と受信間隔をカウントする。
【0089】
処理部20は、受信したメッセージ1(Msg1)が正常周期範囲1内かつ、個数が1個であるため、メッセージ1(Msg1)を基準メッセージとして更新(再設定)する。処理部20は、メッセージ1(Msg1)(この時点で基準メッセージ)から設計周期(T)後を中央値とし、下限時点(limit-low2)と上限時点(limit-upp2)を上下限とする正常周期範囲2を算出する。
【0090】
処理部20は、上限時点(limit-upp2)の時点で、メッセージ1(Msg1)により更新(再設定)された基準メッセージ以降に受信したメッセージの個数と、当該基準メッセージからの受信間隔をカウントする。処理部20は、受信したメッセージが正常周期範囲外に2個(メッセージ2(Msg2)、メッセージ3(Msg3))、正常周期範囲2内に2個以上(メッセージ4(Msg4)、メッセージ5(Msg5))のため、メッセージ2(Msg2)及びメッセージ3(Msg3)を異常検知(特定異常と判定)とする。処理部20は、メッセージ4(Msg4)及びメッセージ5(Msg5を異常検知(範囲異常と判定)とし、正常周期範囲2が経過した後、基準メッセージの再取得を行う。
【0091】
処理部20は、特定異常又は範囲異常と判定される複数のデータを受信した場合であっても、上記の処理を繰り返すことにより、基準データ(基準メッセージ)を更新(再設定)し、更新された基準データによって都度特定される正常周期範囲を用いて、当該基準データよりも後に受信したデータ(メッセージ)の判定処理を繰り返す。
【0092】
図9は、車載装置2の処理部20の状態遷移に関する説明図である。車載装置2の処理部20は、判定処理を行う過程において、複数の状態を遷移する。当該複数の状態は、例えば、正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態(基準メッセージの取得状態)と、特定された正常周期範囲に基づき受信したデータの正否を判定する判定実行状態(周期検知実行状態)とを含む。
【0093】
車載装置2の処理部20は、例えば、IGスイッチ6がオンされた直後は、基準データ受信状態となり、以降、最初にデータを受信(初回受信)した際、判定実行状態に遷移する。判定実行状態にある処理部20は、以降、正常周期範囲内にて取得したデータが正常であると判定した場合、当該正常データを基準データとして更新(再設定)することにより、判定実行状態を維持する。基準データ受信状態へは、IGスイッチ6のオンに限らずバッテリーのオン、又は通信スリープ状態からのウェイクアップ時の遷移でもよい。すなわち、車載装置2の処理部20が、基準データ受信状態に遷移するトリガーは、IGスイッチ6のオン、バッテリーのオン、ACCオン(アクセサリー電源のオン)、及び通信スリープ状態からのウェイクアップ時の遷移(ウェイクアップ信号の受信)等、様々な電源契機(電源状態の遷移)に基づくものであってもよい。すなわち、車載装置2の処理部20は、このような電源契機(電源状態の遷移)に関するイベントが発生した場合、当該イベント検知等することにより、基準データ受信状態に遷移するものであってもよい。
【0094】
判定実行状態にある処理部20は、正常周期範囲内にて複数の同種のデータを取得したことによる異常検知(範囲異常)、又は当該正常周期範囲内にて同種のデータを取得できなかった場合(通信途絶検出)、基準データ受信状態に遷移する。判定実行状態から基準データ受信状態に遷移した処理部20は、当該正常周期範囲を経過した後、すなわち正常周期範囲の上限時点(limit-upp)が経過した後、最初に取得した同種のデータを基準データとし、判定実行状態に遷移する。
【0095】
図10は、車載装置2の処理部による判定態様に関する説明図である。車載装置2の処理部20は、本実施形態における判定処理を行うにあたり、前の正常周期範囲の上限時点(limit-upp[t])の経過後から、今回の正常周期範囲の上限時点(limit-upp[t+1])までの間の期間を対象として単位判定期間を定め、当該単位判定期間毎に、判定処理を行うものであってもよい。このように設定された単位判定期間は、前の正常周期範囲の上限時点(limit-upp[t])の経過後から、今回の正常周期範囲の下限時点(limit-low[t+1])までの期間(期間A)と、今回の正常周期範囲の下限時点(limit-low[t+1])から、今回の正常周期範囲の上限時点(limit-upp[t+1])までの期間(期間B)とを含む。
【0096】
処理部20は、これら期間A及び期間Bのそれぞれにおいて、受信(取得)したデータ(基準データと同種のデータ)の個数をカウントし、それぞれの期間(期間A及び期間B)におけるデータの個数に応じて、判定処理、及び基準データの更新(再設定)を行うものであってもよい。
【0097】
期間Aにて取得したデータの個数が0個であり、期間Bにて取得したデータの個数が0個の場合、処理部20は、期間Bにて通信遮断(正常データがロスト等)が発生したと判定し、今回の正常周期範囲の上限時点を経過した後に取得したデータを基準のデータとすべく、基準データ受信状態に遷移する。
【0098】
期間Aにて取得したデータの個数が0個であり、期間Bにて取得したデータの個数が1個の場合、処理部20は、期間Bにて受信したデータを正常と判定し、期間Bにて取得したデータを基準のデータとし、判定実行状態を維持する。
【0099】
期間Aにて取得したデータの個数が0個であり、期間Bにて取得したデータの個数が2個以上の場合、処理部20は、期間Bにて受信した複数のデータを異常(範囲異常)と判定し、今回の正常周期範囲の上限時点を経過した後に取得したデータを基準のデータとすべく、基準データ受信状態に遷移する。
【0100】
期間Aにて取得したデータの個数が1個以上であり、期間Bにて取得したデータの個数が0個の場合、処理部20は、期間Aにて受信したデータを異常(特定異常)と判定する。処理部20は、期間Bにて通信遮断(正常データがロスト等)が発生したと判定し、今回の正常周期範囲の上限時点を経過した後に取得したデータを基準のデータとすべく、基準データ受信状態に遷移する。
【0101】
期間Aにて取得したデータの個数が1個以上であり、期間Bにて取得したデータの個数が1個の場合、処理部20は、期間Aにて受信したデータを異常(特定異常)と判定し、期間Bにて受信したデータを正常と判定し、期間Bにて取得したデータを基準のデータとし、判定実行状態を維持する。
【0102】
期間Aにて取得したデータの個数が1個以上であり、期間Bにて取得したデータの個数が2個以上の場合、処理部20は、期間Aにて受信したデータを異常(特定異常)と判定し、期間Bにて受信した複数のデータを異常(範囲異常)と判定し、今回の正常周期範囲の上限時点を経過した後に取得したデータを基準のデータとすべく、基準データ受信状態に遷移する。
【0103】
本実施形態における図示の情報は、例えばテーブル形式にて、判定態様テーブルとして記憶部21に記憶されているものであってもよい。処理部20は、単位判定期間毎にカウントしたデータの個数に基づき、当該判定態様テーブルを参照して、判定処理、及び基準データの更新(再設定)を行うものであってもよい。処理部20は、このように期間A及び期間Bのそれぞれにおいて、受信(取得)したデータ(基準データと同種のデータ)の個数にて決定される処理形態毎に、異なる判定コードを設定し、単位判定期間(正常周期範囲の上限時点)毎に、当該上限時点の時刻情報と、判定コードとを関連付けて、記憶部21に記憶するものであってよい。
【0104】
図11は、車載装置2の処理部の処理を例示するフローチャートである。車載装置2の処理部20は、例えば車両Cが起動状態(IGスイッチ6がオン)において、定常的に以下の処理を行う。
【0105】
車載装置2の処理部20は、基準データを受信する(S101)。処理部20は、基準データを受信することにより、判定実行状態に遷移する。IGスイッチ6がオンされることにより車両Cが起動され、車載ネットワーク4に接続される個々の車載ECU3から、CANメッセージ等のデータが、例えばブロードキャストされることによって、送信される。車載装置2の処理部20は、これらデータを受信(取得)することにより、例えば、メッセージID(CAN-ID)等によって分類される各種別毎のデータの初回受信を行う。初回受信されたデータは、正常周期範囲を特定するための基準データとして、設定される。車載装置2の処理部20は、受信したデータを基準データとして設定するにあたり、当該データの種別(メッセージID)と、データを受信した時刻等を示す受信時点とを関連付けて、記憶部21に記憶するものであってもよい。車載装置2の処理部20は、以降、各データの種別毎(例えば、メッセージID毎)に、以下の処理を行う。
【0106】
車載装置2の処理部20は、正常周期範囲を特定する(S102)。処理部20は、例えば、記憶部21に記憶されているデータ種別テーブルを参照し、データの種別(メッセージID)に基づき、正常周期範囲を特定する。正常周期範囲を特定するにあたり、設計周期及び上下限比率に基づき、当該正常周期範囲を演算して特定するものであってもよい。例えば、データの種別に基づき予め決定されている送信周期である設計周期(T)を、基準データの受信時点(C)に加算し、正常周期範囲における中心値(C+T)を決定する。当該中心値(C+T)に対し、例えば、上下限比率に基づき決定される上下限値(L)を加算(C+T+L)、及び減算(C+T-L)する。これにより、中心値(C+T)に対し、±Lによる範囲((C+T-L)から(C+T+L))が確定し、当該範囲が正常周期範囲に相当する。中心値(C+T)に対し、上下限値(L)を加算(C+T+L)することによって特定された時点は、正常周期範囲における上限時点(limit-upp)に相当する。中心値(C+T)に対し、上下限値(L)を減算(C+T-L)することによって特定された時点は、正常周期範囲における下限時点(limit-low)に相当する。
【0107】
このように正常周期範囲を特定することにより、基準データの受信以降に受信するデータ(基準データと同種のデータ)の正否判定を行うための時点情報を確定することができる。本実施形態において、中心値(C+T)に対し、加算及び減算する上下限値(L)は等しい値を用いているが、これに限定されず、加算する上限値(Lu)と、減算する下限値(Ll)とを、異なる値とするものであってよい。
【0108】
車載装置2の処理部20は、正常周期範囲内に同種のデータを取得したか否かを判定する(S103)。同種のデータとは、受信した基準データの種類と同じデータであり、当該データが例えばCANメッセージである場合、メッセージID(CAN-ID)が同じメッセージ(データ)同士が、同種のデータとなる。処理部20は、例えば、基準データの受信時点から、次に受信した同種のデータの受信時点までの受信間隔(ΔT)を算出する。当該受信間隔(ΔT)が、正常周期範囲内であるか否か、すなわち受信間隔(ΔT)が、基準データの受信時点から正常周期範囲の下限時点(limit-low)までの経過時間以上であり、かつ基準データの受信時点から正常周期範囲の上限時点(limit-upp)までの経過時間以内であるか否かにより、処理部20は、正常周期範囲内に同種のデータを取得したか否かを判定するものであってもよい。
【0109】
基準データの受信時点から、次に受信した同種のデータの受信時点までの受信間隔(ΔT)が、基準データの受信時点から正常周期範囲の下限時点(limit-low)までの経過時間以上であり、かつ正常周期範囲の上限時点(limit-upp)までの経過時間以内である場合、処理部20は正常周期範囲内に同種のデータを取得したと判定する。正常周期範囲の上限時点(limit-upp)が経過するよりも以前に、同種のデータを取得しなかった場合、処理部20は正常周期範囲内に同種のデータを取得しなかったと判定する。又は、処理部20は、正常周期範囲の下限時点(limit-low)から上限時点(limit-upp)までの期間における同種のデータの受信(取得)有無に基づき、正常周期範囲内に同種のデータを取得したか否かを判定するものであってもよい。すなわち、正常周期範囲の下限時点(limit-low)から上限時点(limit-upp)までの期間における同種のデータの受信した場合(下限時点≦同種のデータの受信時点≦上限時点)、処理部20は、正常周期範囲内に同種のデータを取得したと判定する。
【0110】
同種のデータを取得しなかった場合(S103:NO)、車載装置2の処理部20は、再度S101を実行すべく、ループ処理を行う。正常周期範囲内にて、同種のデータを取得しなかった場合、当該データのロスト等による通信途絶が発生したと判定し、車載装置2の処理部20は、再度S101を実行することにより、当該同種のデータの受信を試みる。処理部20は、基準データ受信状態に遷移する。処理部20は、S103からS101へのループ処理が連続して行われ、当該連続した回数が、例えば10回等の所定の閾値回数に到達した場合、又は当該閾値回数を超過した場合、S101にて受信したデータは異常であると判定するものであってもよい。
【0111】
同種のデータを取得した場合(S103:YES)、車載装置2の処理部20は、データの個数は1つであるか、否かを判定する(S104)。車載装置2の処理部20は、正常周期範囲内、すなわち正常周期範囲の下限時点(limit-low)から上限時点(limit-upp)までの期間にて受信した同種のデータの個数をカウントし、当該データの個数が1つであるか、否か(2つ以上の複数であるか)を判定する。
【0112】
車載装置2の処理部20は、受信(取得)した全てのデータにおいて、当該データそれぞれの受信時点と、CAN-ID等のデータ種別とを、関連付けて記憶部21に記憶する。車載装置2の処理部20は、当該データそれぞれの受信時点と、基準データの受信時点との差分となる受信間隔についても、CAN-ID等のデータ種別と関連付けて記憶部21に記憶するものであってもよい。
【0113】
受信したデータの個数が1つである場合(S104:YES)、車載装置2の処理部20は、受信したデータは、正常と判定する(S105)。正常周期範囲内にて取得した受信したデータの個数が1つである場合、当該データは、設計周期に基づき、いずれかの車載ECU3から正常に送信されたデータであり、車載装置2の処理部20は、受信したデータは、正常と判定する。
【0114】
車載装置2の処理部20は、受信したデータを次の判定処理に用いる基準データに設定し、正常周期範囲を特定する(S106)。車載装置2の処理部20は、受信したデータ、すなわちS105の処理にて正常と判定したデータを、次に受信する同種のデータの判定処理に用いる基準データに設定する。このように、車載装置2の処理部20は、直前の処理にて正常と判定されたデータによって基準データを設定することを繰り返すことにより、車載ネットワーク4の負荷状況等にリアルタイムに対応した基準データの設定(周期的な再設定)を継続して行うことができる。車載装置2の処理部20は、このように再設定した基準データに基づき、S102の処理と同様に正常周期範囲を特定する。処理部20は、当該特定した正常周期範囲に基づき、以降に受信されるデータの正否判定を繰り返す。
【0115】
受信したデータの個数が1つでない場合(S104:NO)、すなわち受信した同種のデータの個数が2つ以上(複数)である場合、受信した複数データは、範囲異常であると判定する(S1041)。単一の正常周期範囲内にて受信した複数のデータ(同種のデータ)において、少なくとも1つ以上のデータは、異常なデータである。この場合、車載装置2の処理部20は、これら複数のデータに対し、所定の範囲(正常周期範囲)に異常なデータが含まれるとして、範囲異常であると判定する。車載装置2の処理部20は、範囲異常と判定されたこれら複数のデータのデータ種別及び受信時点を、攻撃検知ログデータとして、記憶部21に記憶し、外部サーバ100又は表示装置5に出力するものであってもよい。
【0116】
車載装置2の処理部20は、基準データを受信する(S1042)。車載装置2の処理部20は、正常周期範囲よりも後に受信した同種のデータを、基準データとして受信する。範囲異常と判定されたこれら複数のデータは、少なくとも1つ以上の異常なデータを含むため、車載装置2の処理部20は、当該範囲異常とされたデータを基準データとして設定することは、行わない。これにより、範囲異常とされたデータによって、以降に取得したデータの正否判定が行われることを、確実に回避することができる。車載装置2の処理部20は、範囲異常とされた複数のデータが受信された正常周期範囲よりも後に受信した同種のデータを、基準データとして受信する。
【0117】
車載装置2の処理部20は、正常周期範囲を特定する(S1043)。車載装置2の処理部20は、S1042にて受信したデータを次の判定処理に用いる基準データに設定し、S102の処理と同様に正常周期範囲を特定する。このように範囲異常とされた複数のデータが受信された場合であっても、以降に受信したデータに基づき、基準データを再設定することにより、判定処理を継続又は再開することができる。
【0118】
車載装置2の処理部20は、範囲異常とされた複数のデータにおいて、いずれのデータが異常であるかを特定又は抽出する処理を行うものであってもよい。当該特定処理を行うにあたり、車載装置2の処理部20は、例えば、正常範囲に受信したデータのうち、正常範囲の中央値に最も近いものを正常データとし、それ以外を異常データとする方法を用いるものであってもよい。この場合、複数データのうち、正常データは必ず1つ存在することを前提として、いずれのデータが異常であるかを特定する処理が行われる。又は、車載装置2の処理部20は、正常データの正常範囲内での受信時間分布を予め取得しておき、分布の中央値に一番近いデータを正常データと判定する方法を用いるものであってもよい。この場合、受信時間分布は正常範囲の中で正規分布を取ることが多いが、必ずしも正常範囲の中央値付近に分布の中央があるわけではないことを利用するものである。車両Cに搭載されるオプション等によって、同一の通信線41(CANバス)上に接続される車載装置2の個数又は種類が変わると受信時間分布も変わることを想定した方法である。又は、車載装置2の処理部20は、同一の通信線41(CANバス)に流れる他データのCAN-ID等の前後関係によって判定する方法を用いるものであってもよい。CANゲートウェイ等の車載中継装置が受信するCAN-IDの順には一定の並び順があり、設計周期が長いデータ(CANメッセージ)ほど、並び順の規則は顕著になることを利用するものである。又は、車載装置2の処理部20は、データの中身など、受信データに含まれる周期以外の情報と合わせて判断する方法を用いるものであってもよい。この場合、他の検知アルゴリズムと組み合わせ複合的に判断するものであってもよい。又は、車載装置2の処理部20は、電気波形特性により判断する方法を用いるものであってもよい。この場合、例えばCANトランシーバ違いや、車載装置2等の送信ノードの接続場所によって、同じデータでも物理層レベルでは電気波形が異なることを利用するものである。更には、通信線41を構成するハーネスの幹線に接続されているのか支線に接続されているかでも、電気波形特性等が異なることを利用するものである。車載装置2の処理部20は、範囲異常とされた複数のデータ対し、上述した全ての方法を用いて、いずれのデータが異常であるかを特定し、各方法による特定結果に基づき、最も多くの方法が異常であると特定したデータを、異常なデータであるとして最終決定(多数決による決定)するものであってもよい。
【0119】
車載装置2の処理部20は、S106又はS1043の実行後、前の正常周期範囲から今回の正常周期範囲までの間に同種のデータを受信したか否かを判定する(S107)。正常周期範囲は、基準データが設定される都度特定されるものとなり、特定された正常周期範囲それぞれは、時系列に隣接するものとなる。時系列に隣接する2つの正常周期範囲(T[t]、T[t+1)の間の期間においては、正常なデータは送信されないため、当該期間にて受信(取得)したデータは、異常なデータである。車載装置2の処理部20は、S106又はS1043の処理の実行後、前の正常周期範囲(T[t])から今回の正常周期範囲(T[t+1])までの間、すなわち前の正常周期範囲の上限時点(limit-upp[t])の経過後から、今回の正常周期範囲の下限時点(limit-low[t+1])までの間に同種のデータを受信したか否かを判定する。
【0120】
同種のデータを受信した場合(S107:YES)、車載装置2の処理部20は、受信したデータは特定異常と判定する(S108)。受信したデータの個数が、一つである場合、車載装置2の処理部20は、当該データは異常であると個別に特定できるものであり、特定異常であると判定する。また、受信したデータの個数が、2つ以上(複数)である場合であっても、車載装置2の処理部20は、これらデータそれぞれを、特定異常であると判定する。車載装置2の処理部20は、特定異常と判定された単一又は複数のデータのデータ種別及び受信時点を、攻撃検知ログデータとして、記憶部21に記憶し、外部サーバ100又は表示装置5に出力するものであってもよい。
【0121】
同種のデータを受信しなかった場合(S107:NO)、又はS108の実行後、車載装置2の処理部20は、再度S103を実行すべく、ループ処理を行う。ループ処理にてS103を実行する際に用いられる正常周期範囲は、S106又はS1043の処理にて特定された正常周期範囲であることは、言うまでもない。車載装置2の処理部20は、本実施形態における判定処理の全ての結果(判定結果)を記憶部21に記憶し、又は車外通信装置1を介して外部サーバ100に送信(出力)するものであってもよい。
【0122】
車載装置2の処理部20は、本実施形態における判定処理にて、受信したデータの個数をカウントするにあたり、例えば、前の正常周期範囲の上限時点(limit-upp[t])の経過後から、今回の正常周期範囲の上限時点(limit-upp[t+1])までの間の期間を対象として単位判定期間を定め、当該単位判定期間毎に、判定処理を行うものであってもよい。この場合、車載装置2の処理部20は、個々の正常周期範囲の上限時点において、当該判定処理を行うものであってよい。本実施形態において、車載装置2の処理部20が判定処理を行う単位判定期間を、前の正常周期範囲の上限時点(limit-upp[t])の経過後から、今回の正常周期範囲の上限時点(limit-upp[t+1])としたが、これに限定されず、例えば、前の正常周期範囲の下限時点(limit-low[t])の経過後から、今回の正常周期範囲の下限時点(limit-low[t+1])を単位判定期間とするものであってもよい。
【0123】
車載装置2の処理部20は、本実施形態におけるフローチャートを実行するにあたり、データの種別毎に、個々のフローチャートにより処理を行うものであってもよい。すなわち、判定実行対象となっているデータの種別(CAN-ID)の個数が、例えば10個である場合、当該個数の同数(10個)のサブプロセスを生成し、個々のサブプロセスにて当該フローチャートによる処理を並行して行うものであってもよい。
【0124】
本実施形態において、車載装置2の処理部20が全ての処理を行うとしたがこれに限定されず、処理の一部は、例えば、車載装置2の処理部20と、いずれかの車載ECU3又は外部サーバ100とがプロセス間通信等を行うことにより協働して行うものであってもよい。
【0125】
(実施形態2)
図12は、実施形態2に係るデータの判定(ダイアグマスク期間)に関する説明図である。本実施形態における図示において、特定のデータ種別のデータ(CANメッセージ等)に関する判定処理について説明する。当該図示において、横軸は時間(経過時間)を示す。
【0126】
車載装置2の処理部20は、IGスイッチ6がオンされた場合、ダイアグマスク期間が経過するまで、異常検知の対象となるデータを受信することなく待機処理を行う。当該待機処理を行うにあたり、車載装置2の処理部20は、ダイアグマスク期間が経過したか否かのを判定する処理を継続して行うものであってもよい。ダイアグマスク期間は、例えば数秒等として記憶部21に記憶されており、車載装置2の処理部20は、記憶部21を参照することにより、ダイアグマスク期間の値を取得することができる。ダイアグマスク期間は、例えば、車載ECU3及び車載装置2に対するダイアグ処理(自己診断処理)を行う期間して設定されるものであり、車両Cに搭載される車載装置2等に対する異常検出を行わない期間である。
【0127】
車載装置2の処理部20は、ダイアグマスク期間が経過した後、異常検知の対象となるデータの取得を開始する。車載装置2の処理部20は、IGスイッチ6のオンよるダイアグマスク期間の開始時点から、当該ダイアグマスク期間の完了後(終了時点の後)であって最初に受信したデータ(本実施形態においては、メッセージ1:Msg1)の受信時点までの間、待機状態を維持する。車載装置2の処理部20は、実施形態1と同様に、例えば、記憶部21に記憶されているデータ種別テーブルにて定められるデータ(監視対象メッセージ)毎に、連続して受信される同種のデータ(同一のメッセージID)の受信間隔を算出する。
【0128】
本実施形態における図示のとおり、車載装置2の処理部20は、ダイアグマスク期間が経過した後、最初に受信したデータ(メッセージ1:Msg1)を基準とし、当該データ(メッセージ1:Msg1)と同種のデータ(メッセージ2:Msg2)を受信する。この場合、データ(メッセージ1:Msg1)と、データ(メッセージ2:Msg2)との間において、これらデータと同種のデータの受信はないため、これらデータ(メッセージ1:Msg1、メッセージ2:Msg2)は、連続して受信した同種の2つのデータに相当する。なお、当該2つの同種のデータ(メッセージ1:Msg1、メッセージ2:Msg2)を受信した時点の間に、他の種類のデータを受信した場合であっても、これら2つの同種のデータ(メッセージ1:Msg1、メッセージ2:Msg2)が、連続して受信した同種の2つのデータに相当することは、言うまでもない。
【0129】
車載装置2の処理部20は、実施形態1と同様に、最初に受信したデータ(メッセージ1:Msg1)と、後に受信したデータ(メッセージ2:Msg2)との受信間隔を算出し、当該受信間隔が、最初に受信したデータ(メッセージ1:Msg1)の受信時点を基準とした正常周期範囲内に入っていれば、これらデータ(メッセージ1:Msg1、メッセージ2:Msg2)を正常と判定する。車載装置2の処理部20は、このように連続して受信した同種の2つのデータの内、後に受信したデータ(メッセージ2:Msg2)を、基準データ(基準メッセージ)として設定する。
【0130】
車載装置2の処理部20は、最初に受信したデータ(メッセージ1:Msg1)の受信時点から、後に受信したデータ(メッセージ2:Msg2)を基準データ(基準メッセージ)として設定するまでの間、基準データ受信状態(基準メッセージ取得状態)を維持する。すなわち、車載装置2の処理部20は、ダイアグマスク期間の完了後において、最初に受信したデータ(メッセージ1:Msg1)の受信時点から、後に受信したデータ(メッセージ2:Msg2)の受信時点までの間、基準データ受信状態(基準メッセージ取得状態)を維持する。車載装置2の処理部20は、このように設定した基準データ(基準メッセージ)を用いて、実施形態1と同様に受信したデータに対する異常検知を開始する。車載装置2の処理部20は、当該異常検知を開始する際、判定実行状態(周期検知実行状態)に遷移する。
【0131】
図13は、車載装置の処理部の状態遷移に関する説明図である。車載装置2の処理部20は、判定処理を行う過程において、実施形態1と同様に複数の状態を遷移する。当該複数の状態は、例えば、ダイアグマスク期間等における待機処理を行う待機状態と、正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態(基準メッセージ取得状態)と、特定された正常周期範囲に基づき受信したデータの正否を判定する判定実行状態(周期検知実行状態)とを含む。
【0132】
車載装置2の処理部20は、例えば、車載装置2の電源(ECU電源)がオンされた直後は、待機状態となる。車載装置2の処理部20は、当該待機状態において、IGスイッチ6がオンにされ、ダイアグマスク期間が完了(ダイアグマスクがオフ)しかつ、最初に受信したデータを取得することにより、基準データ受信状態(基準メッセージ取得状態)に遷移する。
【0133】
車載装置2の処理部20は、基準データが未確定(基準メッセージ未確定)な間、すなわち基準データ(基準メッセージ)となる、後に受信した同種のデータを取得するまでの間は、基準データ受信状態(基準メッセージ取得状態)を維持する。車載装置2の処理部20は、基準データ受信状態において、IGスイッチ6がオフにされた場合、又はダイアグマスク期間が開始(ダイアグマスクがオン)された場合、待機状態に遷移する。車載装置2の処理部20は、基準データ受信状態において、基準データ(後に受信した同種のデータ)を受信した場合、判定実行状態(周期検知実行状態)に遷移する。
【0134】
車載装置2の処理部20は、判定実行状態(周期検知実行状態)において、異常を検知しない間、又は検知した異常が特定異常である場合、判定実行状態(周期検知実行状態)を維持する。車載装置2の処理部20は、判定実行状態(周期検知実行状態)において、検知した異常が範囲異常である場合、通信途絶を検出した場合、又はダイアグマスク期間が開始(ダイアグマスクがオン)された場合、待機状態に遷移する。
【0135】
図14は、車載装置2の処理部の処理を例示するフローチャートである。車載装置2の処理部20は、例えば車両Cが起動状態(IGスイッチ6がオン)において、定常的に以下の処理を行う。
【0136】
車載装置2の処理部20は、IGスイッチ6がオンされた場合、ダイアグマスク期間は経過したか否かを判定する(S201)。ダイアグマスク期間は車両Cに搭載される車載装置2に対する異常検出を行わない期間として、予め定められており、当該期間は、例えば、車載装置2の記憶部21に記憶されている。ダイアグマスク期間が経過していない場合(S201:NO)、車載装置2の処理部20は、例えば再度S201の処理を実行すべくループ処理を行うことにより、待機処理を行い、待機状態を維持する。
【0137】
ダイアグマスク期間が経過した場合(S201:YES)、車載装置2の処理部20は、ダイアグマスク期間の経過後における最初のデータを受信する(S202)。車載装置2の処理部20は、ダイアグマスク期間が経過後、最初に受信したデータを取得する。上述のとおり、受信されるデータは、複数種類のデータ(複数のデータ種別)であるため、車載装置2の処理部20は、データ種別毎に、最初に受信したデータを取得するものとなる。車載装置2の処理部20は、ダイアグマスク期間中は待機状態であったが、当該最初に受信したデータの受信時点以降、当該待機状態から基準データ受信状態に遷移する。
【0138】
車載装置2の処理部20は、基準データを受信する(S203)。車載装置2の処理部20は、S201の処理として最初に受信したデータと、当該データと同種のデータであって、当該データの直後に受信したデータ(後に受信したデータ)を取得する。これにより、車載装置2の処理部20は、ダイアグマスク期間の経過後において、連続して受信した同種の2つのデータを取得する。車載装置2の処理部20は、連続して受信した同種の2つのデータにおいて、当該データの受信間隔が正常周期範囲内である場合、後に受信したデータを基準データとして受信(取得)することにより、当該基準データを設定する。車載装置2の処理部20は、当該連続して受信した同種の2つのデータ(最初に受信したデータ、後に受信したデータ)を、記憶部21に記憶するものであってもよい。
【0139】
車載装置2の処理部20は、実施形態1の処理S102からS108と同様に、S204からS210までの処理を行う。車載装置2の処理部20は、S201からS203の処理が完了するまでの間、正常周期範囲を特定するにあたり基準となるデータの受信を行う基準データ受信状態を維持する。車載装置2の処理部20は、S203の処理が完了後、S204の処理を行うにあたり、特定された正常周期範囲に基づき受信したデータの正否を判定する判定実行状態に遷移する。車載装置2の処理部20は、S204以降の一連の処理を行うにあたり各処理内容に応じて、基準データ受信状態、判定実行状態又は待機状態に状態遷移するものとなる。車載装置2の処理部20は、基準データ受信状態、判定実行状態又は待機状態のいずれの状態であっても、受信したデータをルーティングマップに従い、他の通信線41(CANバス)に転送する等の中継処理を継続して行う。
【0140】
車載装置2の処理部20は、基準データ受信状態にある場合、受信したデータの正否を判定する等の異常検知に関する処理、及び判定実行状態での検知結果に基づくセキュリティログ等(攻撃検知ログデータ)を保存する処理を禁止し、これら処理を行わない。当該処理の禁止は、受信されるデータの種類(データ種別)毎に行われる。車載装置2の処理部20は、判定実行状態にある場合、判定実行状態での検知結果に基づくセキュリティログ等、異常の態様に応じた情報を、揮発性の記憶領域に記憶する。車載装置2の処理部20は、例えばIGスイッチ6がオフにされた場合、揮発性の記憶領域に記憶したセキュリティログ等を、不揮発性の記憶領域に記憶(コピー)する。車載装置2の処理部20は、記憶(保存)するセキュリティログの個数の上限値を定め、保存するセキュリティログの個数が上限値を超えた場合、最も古いセキュリティログを上書きして、最新のログを保存するものであってもよい。
【0141】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0142】
C 車両
S 車載システム
100 外部サーバ
1 車外通信装置
11 アンテナ
2 車載装置(車載中継装置)
20 処理部(制御部)
21 記憶部
22 入出力I/F
23 車内通信部
3 車載ECU
4 車載ネットワーク
41 通信線
5 表示装置(HMI装置)
6 IGスイッチ
【要約】
車載装置は、車両に搭載される車載ネットワークに接続される車載装置であって、前記車載ネットワークに流れるデータの正否の判定に関する処理を行う処理部を備え、前記処理部は、前記車載ネットワークに流れる複数のデータを受信し、受信した前記複数のデータにおいて、同種のデータを連続して受信した際の受信間隔を導出し、前記受信間隔と、連続して受信した同種のデータの内の先に受信したデータの受信時点を基準とした正常周期範囲とに基づき、連続して受信した同種のデータの内の後に受信したデータの正否の判定を行う。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14