JP6866317B2 - 電子機器、メッセージ送信方法およびプログラム - Google Patents

電子機器、メッセージ送信方法およびプログラム Download PDF

Info

Publication number
JP6866317B2
JP6866317B2 JP2018007347A JP2018007347A JP6866317B2 JP 6866317 B2 JP6866317 B2 JP 6866317B2 JP 2018007347 A JP2018007347 A JP 2018007347A JP 2018007347 A JP2018007347 A JP 2018007347A JP 6866317 B2 JP6866317 B2 JP 6866317B2
Authority
JP
Japan
Prior art keywords
transmission
message
transmitted
value
interval
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018007347A
Other languages
English (en)
Other versions
JP2019126007A (ja
Inventor
浩司 由良
浩司 由良
崇志 桜井
崇志 桜井
後藤 英樹
英樹 後藤
友和 守谷
友和 守谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Toshiba Digital Solutions Corp
Original Assignee
Toyota Motor Corp
Toshiba Digital Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp, Toshiba Digital Solutions Corp filed Critical Toyota Motor Corp
Priority to JP2018007347A priority Critical patent/JP6866317B2/ja
Publication of JP2019126007A publication Critical patent/JP2019126007A/ja
Application granted granted Critical
Publication of JP6866317B2 publication Critical patent/JP6866317B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明の実施形態は、電子機器、メッセージ送信方法およびプログラムに関する。
例えば自動車に搭載される車載ネットワークでは、メッセージの不正送信によって自動車が運転手の意図と異なる挙動をすることが知られている。こうしたネットワークへの攻撃に対する対策として、メッセージの不正送信を検知する技術の開発が進められている。例えば、周期送信されるメッセージの周期異常を検知することによりメッセージの不正送信を検知し、不正送信されたメッセージの破棄などを行う技術などが提案されている。
しかし、送信メッセージの周期性に着目した不正送信の検知方法では、送信間隔が変化するメッセージの不正送信を適切に検知できない。例えば、AUTOSAR COM(車載制御ソフトウェアの標準化団体であるAUTOSARで規定されたECU間通信仕様)のMIXED送信モードでは、周期的なPERIODIC送信と不定期のDIRECT送信が混在するが、このような送信モードでメッセージを送信する場合、メッセージの送信間隔が変化するため、送信メッセージの周期性に着目した不正送信の検知方法ではメッセージの不正送信を適切に検知することができない。このため、送信間隔が変化するメッセージの不正送信を適切に検知できるようにすることが求められている。
特許第5919205号公報
本発明が解決しようとする課題は、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知できるようにメッセージを送信する電子機器、メッセージ送信方法およびプログラムを提供することである。
実施形態の電子機器は、メッセージを送信する電子機器であって、予め定めたメッセージの最長送信間隔TlとTlにおいて許容されるメッセージの最大送信回数Mとに基づいてメッセージの送信タイミングを制御し、Mに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する。
図1は、車載ネットワークの構成例を示す図である。 図2は、送信カウンタの値をもとにメッセージの不正送信を検知する方法を説明する図である。 図3は、メッセージのデータ構造の一例を示す図である。 図4は、実施形態の概要を説明する図である。 図5は、正規送信ECUのハードウェア構成例を示すブロック図である。 図6は、正規送信ECUの機能的な構成例を示すブロック図である。 図7は、送信履歴テーブルのデータ構造の一例を示す図である。 図8は、第1実施形態の概要を説明する図である。 図9は、第1実施形態の送信制御部による処理手順の一例を示すフローチャートである。 図10は、受信ECUの機能的な構成例を示すブロック図である。 図11は、受信履歴テーブルのデータ構造の一例を示す図である。 図12は、第1実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。 図13は、第2実施形態の概要を説明する図である。 図14は、第2実施形態の送信制御部による処理手順の一例を示すフローチャートである。 図15は、第2実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。 図16は、第3実施形態の概要を説明する図である。 図17は、送信履歴テーブルのデータ構造の一例を示す図である。 図18は、第3実施形態の送信制御部による処理手順の一例を示すフローチャートである。 図19は、受信履歴テーブルのデータ構造の一例を示す図である。 図20は、第3実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。 図21は、メッセージのデータ構造の一例を示す図である。 図22は、第4実施形態の送信制御部による処理手順の一例を示すフローチャートである。 図23は、第4実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。 図24は、第5実施形態の概要を説明する図である。 図25は、第5実施形態の送信制御部による処理手順の一例を示すフローチャートである。 図26は、第5実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。 図27は、第6実施形態の概要を説明する図である。 図28は、第6実施形態の送信制御部による処理手順の一例を示すフローチャートである。 図29は、第6実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
以下、実施形態に係る電子機器、メッセージ送信方法およびプログラムを、図面を参照して詳細に説明する。以下では、自動車に搭載される車載ネットワークにおいてメッセージの送信を行う電子制御ユニット(ECU)への適用例を例示するが、適用可能な電子機器はこれに限定されるものではなく、送信間隔が変化するメッセージを送信する様々な電子機器に対して有効に適用できる。
<実施形態の概要>
車載ネットワークは、自動車に設けられた多数のECU間で、メッセージ識別子により識別されるメッセージを送受信するネットワークである。この車載ネットワークへの攻撃として、正規のメッセージと同じメッセージ識別子を持つ「なりすまし」メッセージを不正送信する攻撃が知られている。本実施形態は、このようなメッセージの不正送信を適切かつ簡便に検知できる仕組みを提案する。以下では、正規のメッセージを送信するECUを「正規送信ECU」、メッセージを受信するECUを「受信ECU」、メッセージを不正送信するECUを「不正送信ECU」と呼ぶ。
図1は、本実施形態において想定する車載ネットワークの構成例を示す図である。本実施形態では、図1に示すように、正規送信ECU10と受信ECU20に加え、不正送信ECU30がネットワークバス40に接続された車載ネットワークを想定する。
正規送信ECU10は、受信ECU20に伝えるべきシグナルを含むユーザデータの先頭に、自身が送信するメッセージに対して割り当てられた所定のメッセージ識別子を付加したメッセージを、ネットワークバス40上に送信する。正規送信ECU10は、シグナルの変化などのメッセージ送信イベントが発生したときにメッセージの送信を行うことに加え、シグナルの変化がない場合でも、少なくとも予め定めた最長送信間隔Tlで1回はメッセージの送信を行う。最長送信間隔Tlは、直前のメッセージ送信時刻から起算されてもよいし、上述のAUTOSAR COMのMIXED送信モードにおけるPERIODIC送信の間隔であってもよい。このようなメッセージの送信方法は、特に、シグナルの変化の頻度が比較的低い場合に、通信量の削減とシグナル変化に対する応答性とを両立させる方法として有効である。
不正送信ECU30は、ネットワークバス40上に送信されるメッセージをモニタし、任意のタイミングで、正規送信ECU10が送信したメッセージと同じメッセージ識別子を持つメッセージを、ネットワークバス40上に不正送信する。
受信ECU20は、ネットワークバス40上に送信されるメッセージをモニタし、自身が受信すべきメッセージ識別子を持つメッセージがネットワークバス40上に送信されると、このメッセージを受信する。受信ECU20が受信するメッセージには、正規送信ECU10が送信したメッセージに加え、不正送信ECU30が不正送信したメッセージも含まれる。受信ECU20は、このようなメッセージの不正送信を検知する機能を持つ。
実施形態に係る電子機器、メッセージ送信方法およびプログラムは、一例として、図1に示す構成の車載ネットワークにおける正規送信ECU10に適用される。正規送信ECU10は、上述のように送信間隔が変化するメッセージを送信するが、このような送信間隔が変化するメッセージの不正送信を受信ECU20において適切かつ簡便に検知できるように、メッセージの送信を行う。
送信間隔が変化するメッセージの不正送信を検知する方法として、送信カウンタを用いる方法がある。送信カウンタは、メッセージを送信するたびに値をインクリメント(+1)するカウンタである。メッセージに送信カウンタの値(送信カウンタ値)を含めて送信することで、受信側では送信カウンタ値の不連続性からメッセージの不正送信が生じたことを検知できる。例えば図2に示すように、不正送信ECU30が、送信カウンタ値が1のメッセージが送信されたことを検知して、送信カウンタ値が2のメッセージを不正送信したとする。この場合、受信ECU20は、正規送信ECU10が送信した送信カウンタ値が2のメッセージを受信した時点で、受信したメッセージの送信カウンタ値に不連続が生じていることが分かり、メッセージの不正送信を検知できる。
図3は、送信カウンタを用いてメッセージの不正送信を検知する場合のメッセージのデータ構造の一例を示す図である。送信カウンタを用いる場合、図3に示すように、メッセージのユーザデータの領域の一部が送信カウンタ値を格納する領域に割り当てられる。ここで、送信カウンタ値のサイズが大きいとユーザデータの領域が圧迫されるため、N(一般にN=2)回のカウントで巡回するカウンタ(モジュロNカウンタ)を送信カウンタとして用い、送信カウンタ値のサイズをできるだけ小さくすることが望ましい。
しかし、モジュロNカウンタを送信カウンタとして用いる場合、送信カウンタ値の不連続性から不正送信を検知できなくなる場合がある。例えば図4(a)に示すように、正規送信ECU10が最長送信間隔Tlでメッセージを送信する間に、不正送信ECU30が、送信カウンタ値が連続するようにN個のメッセージを不正送信したとする。この場合、正規送信、N個の不正送信、正規送信の順番で受信ECU20が受信するメッセージは、送信カウンタ値が連続することになるため、不正送信を検知できない。
そこで、本実施形態では、図4(b)に示すように、最長送信間隔Tlにおいて許容されるメッセージの最大送信回数M(M≦N)、あるいは、最長送信間隔Tlよりも短い間隔で送信するメッセージ(短間隔メッセージ)に許容される最短送信間隔Ts(Ts≧Tl/N)を定めるようにしている。そして、正規送信ECU10は、最大送信回数Mまたは最短送信間隔Tsを用いてメッセージの送信タイミングを制御し、受信ECU20は、送信カウンタ値の連続性に加えて、最大送信回数Mまたは最短送信間隔Tsを用いてメッセージの不正送信を検知する。なお、実際には通信のアービトレーションなどによりメッセージの送信間隔にばらつきが生じるため、最長送信間隔Tlや最短送信間隔Tsに変動を吸収するパラメータを加えてもよい。
例えば、正規送信ECU10が最長送信間隔Tlでメッセージを送信する間に、不正送信ECU30が、送信カウンタ値が連続するようにN個のメッセージを不正送信したとする。この場合、図4(c)に示すように、少なくとも1つのメッセージ送信間隔Tが最短送信間隔Tsよりも短くなるため、受信ECU20は、受信したメッセージの送信カウンタ値が連続していたとしても、最短送信間隔Tsの違反によりメッセージの不正送信を検知できる。また、受信ECU20が、正規送信ECU10が送信した送信カウンタ値が0のメッセージを受信してから最長送信間隔Tlの間で受信するメッセージの数は、不正送信ECU30が送信したN個のメッセージと、最長送信間隔Tlで正規送信ECU10が送信した送信カウンタ値が1のメッセージとを合せてN+1になる。このため、受信ECU20は、受信したメッセージの送信カウンタ値が連続していたとしても、最大送信回数Mの違反によりメッセージの不正送信を検知できる。
以下では、より具体的な実施形態について説明する。なお、以下に示す各実施形態においては、車載ネットワークの通信規格としてCAN(Controller Area Network)を用いることを想定する。CANは、メッセージ識別子(CAN_ID)で識別されるメッセージを送受信する車載ネットワークの通信規格として一般的な規格である。ただし、メッセージ識別子で識別されるメッセージを送受信する他の通信規格を用いてもよい。また、以下に説明する各実施形態において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
<第1実施形態>
まず、正規送信ECU10の構成について説明する。図5は、正規送信ECU10のハードウェア構成例を示すブロック図である。正規送信ECU10は、例えば図5に示すように、LSI(Large-Scale Integration)11と、ネットワークバス40に接続されるトランシーバ12とを備える。トランシーバ12は、ネットワークバス40における差動電位をデジタル信号に変換したり、デジタル信号を差動電位に変換したりといったアナログ処理を行う。
LSI11は、デジタル信号処理を行う集積回路(マイクロコンピュータ)であり、CPU13、RAM14、ROM15、通信コントローラ16、およびタイマ17などが実装されている。CPU13は、所定のプログラムを実行して正規送信ECU10全体の動作を制御するプロセッサである。RAM14は、CPU13がプログラムを実行する際のワークエリアとなるメモリであり、ROM15は、CPU13が実行するプログラムやデータを格納するメモリである。通信コントローラ16は、トランシーバ12と協働して、ネットワークバス40へのメッセージの送信を行うためのコントローラである。タイマ17は、正規送信ECU10で扱う時間の計測を行い、例えば、送信タイミングの判断や送信タイムスタンプの記録などのために時間を計測する。
実施形態に係る電子機器としての機能は、一例として、上述した正規送信ECU10のハードウェアとソフトウェア(プログラム)との協働により実現することができる。すなわち、正規送信ECU10を実施形態に係る電子機器として機能させるためのプログラムをROM15に格納し、CPU13が、RAM14をワークエリアとして利用して、ROM15に格納されたプログラムを読み出して実行することにより、正規送信ECU10を実施形態に係る電子機器として機能させることができる。
図6は、実施形態に係る電子機器としての機能を持つ正規送信ECU10の機能的な構成例を示すブロック図である。正規送信ECU10は、機能的な構成要素として、例えば図6に示すように、送信部51と、送信制御部52と、シグナル更新部55とを備える。また、正規送信ECU10は、送信制御部52が読み書きする送信履歴テーブル53と、送信制御部52が参照するシグナルテーブル54とを備える。
送信部51は、通信コントローラ16を制御して、ネットワークバス40にトランシーバ12を介してメッセージを送信する機能である。送信制御部52は、送信部51が送信するメッセージをバッファに設定し、適切なタイミングで送信部51に送信の指示を行う。送信部51が送信するメッセージは、上述のようにモジュロNカウンタとして構成される送信カウンタの値(送信カウンタ値)を含む。送信制御部52は、直前に送信したメッセージの送信カウンタ値をインクリメント(+1)してユーザデータに設定し、この送信カウンタ値を含むメッセージをバッファに設定し、適切なタイミングで送信部51に送信の指示を行う。なお、送信カウンタはモジュロNカウンタであるためNカウントで巡回する。ここで、インクリメントとは、送信カウンタ値がN−1から巡回して0に戻ることも含む。
送信履歴テーブル53は、メッセージ識別子が同一のメッセージごとに、少なくとも送信済みのメッセージの送信カウンタ値と送信タイムスタンプとを保持する。送信履歴テーブル53の一例を図7に示す。送信制御部52は、送信部51がメッセージを送信するたびに、そのメッセージに含まれる送信カウンタ値と、そのメッセージの送信時刻を示す送信タイムスタンプとの組み合わせを、新たなレコードとして送信履歴テーブル53に追加する。なお、送信履歴テーブル53に所定数(例えばM個)以上のレコードが溜まった場合は、古いレコードから削除するようにしてもよい。
シグナルテーブル54は、正規送信ECU10がモニタする各種シグナル(メッセージにより受信ECU20に伝えるべき各種シグナル)の最新の値を保持する。シグナルの変化が検知されると、シグナル更新部55が、シグナルテーブル54の該当するシグナルの値を、変化した後の値に更新する。
なお、以上説明した正規送信ECU10の構成は、基本的に、後述の各実施形態においても共通である。ただし、送信制御部52がメッセージの送信タイミングを制御する手法が、実施形態ごとに異なっている。
本実施形態の正規送信ECU10では、送信制御部52が、予め定めたメッセージの最長送信間隔Tlと、Tlにおいて許容されるメッセージの最大送信回数M(M≦N)とに基づいて、メッセージの送信タイミングを制御する。すなわち、本実施形態の正規送信ECU10は、直前のメッセージ送信時刻からTlが経過するまでの間にシグナルの変化などのメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると、モジュロNの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からTlが経過する前にメッセージ送信イベントが発生した場合は、M個前のメッセージの送信時刻からTlが経過しているか否かを判断し、M個前のメッセージの送信時刻からTlが経過していれば、モジュロNの送信カウンタ値を含むメッセージをすぐに送信する。一方、M個前のメッセージの送信時刻からTlが経過していなければ、Tlが経過するまで待って、モジュロNの送信カウンタ値を含むメッセージを送信する。
本実施形態では、シグナルの変化などのメッセージ送信イベントが高頻度で発生する場合、最長送信間隔Tlの間にM回までのメッセージの送信が許容され、M+1回目のメッセージの送信は禁止される。したがって、図8に示すように、M個前のメッセージ送信時刻から最長送信間隔Tlが経過する前にメッセージ送信イベントが発生したとしても、Tlが経過するまでの間は送信禁止期間となり、Tlが経過したときにメッセージの送信が許容される。これにより、不正送信ECU30が送信カウンタ値に不連続が生じないようにメッセージの不正送信を行った場合には、最大送信回数Mの違反が生じ、受信ECU20がこの不正送信を検知することができる。
図9は、本実施形態の送信制御部52による処理手順の一例を示すフローチャートである。送信制御部52は、送信履歴テーブル53とシグナルテーブル54とを参照しながら、この図9のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
送信制御部52は、まず、直前のメッセージ送信時刻からの経過時間Twが最長送信間隔Tlに達したか否かを判定し(ステップS101)、直前のメッセージ送信時刻からの経過時間Twが最長送信間隔Tlに達していなければ(ステップS101:No)、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する(ステップS102)。この判定は、例えば、送信制御部52がシグナルテーブル54を参照することで行ってもよいし、シグナルの変化が検知されたときにシグナル更新部55が送信制御部52に通知する構成として、この通知の有無に基づいて行ってもよい。
ここで、メッセージ送信イベントが発生していなければ(ステップS102:No)、ステップS101に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は(ステップS102:Yes)、送信制御部52は、次に、M個前のメッセージ送信時刻からの経過時間Tzが最長送信間隔Tlに達したか否かを判定する(ステップS103)。そして、TzがTlに達していれば(ステップS103:Yes)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS104)。
一方、TzがTlに達していなければ(ステップS103:No)、送信制御部52は、TzがTlに達するまで待機し、TzがTlに達した段階で送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS104)。また、ステップS101の判定で、TwがTlに達している場合(ステップS101:Yes)、送信制御部52は送信部51に対して送信の指示を行い、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS104)。
本実施形態では、正規送信ECU10の送信制御部52が以上のようにメッセージの送信タイミングを制御することにより、受信ECU20が、送信カウンタ値の不連続性または最大送信回数Mの違反により、メッセージの不正送信を検知することができる。
ここで、不正送信を検知する機能を持つ受信ECU20について説明する。図10は、受信ECU20の機能的な構成例を示すブロック図である。受信ECU20は、機能的な構成要素として、例えば図10に示すように、受信部61と、受信制御部62と、不正送信検知部64とを備える。また、受信ECU20は、受信制御部62により書き込まれて不正送信検知部64により参照される受信履歴テーブル63を備える。なお、受信ECU20のハードウェア構成は正規送信ECU10と同様(図5参照)であるため、説明を省略する。
受信部61は、通信コントローラ16を制御して、ネットワークバス40からトランシーバ12を介してメッセージを受信する機能である。受信制御部62は、ネットワークバス40に送信されたメッセージのメッセージ識別子をもとに、このメッセージを受信すべきか否かを判断し、受信すべきメッセージであれば受信部61に対して受信の指示を行う。
受信履歴テーブル63は、メッセージ識別子が同一のメッセージごとに、少なくとも受信済みのメッセージの送信カウンタ値と受信タイムスタンプとを保持する。受信履歴テーブル63の一例を図11に示す。受信制御部62は、受信部61がメッセージを送信するたびに、そのメッセージに含まれる送信カウンタ値と、そのメッセージの受信時刻を示す受信タイムスタンプとの組み合わせを、新たなレコードとして受信履歴テーブル63に追加する。なお、受信履歴テーブル63に所定数(例えばM個)以上のレコードが溜まった場合は、古いレコードから削除するようにしてもよい。
不正送信検知部64は、受信したメッセージに含まれる送信カウンタ値の不連続性または最大送信回数Mの違反を検知することで、送信間隔が変化するメッセージの不正送信を検知する。最大送信回数Mの違反は、正規送信ECU10と共有する最長送信間隔Tlと最大送信回数Mとに基づいて判断される。
なお、以上説明した受信ECU20の構成は、基本的に、後述の各実施形態においても共通である。ただし、不正送信検知部64が不正送信を検知する手順が、実施形態ごとに異なっている。
図12は、本実施形態の不正送信検知部64による処理手順の一例を示すフローチャートである。不正送信検知部64は、受信部61によりメッセージが受信されるたびに、受信履歴テーブル63を参照しながら、この図12のフローチャートで示す一連の処理を繰り返し実行する。
受信部61によりメッセージが受信されると、不正送信検知部64は、まず、今回受信したメッセージの受信時刻とM個前のメッセージの受信時刻との間隔Tz’が最長送信間隔Tl以上であるか否かを判定する(ステップS201)。そして、Tz’がTl以上であれば(ステップS201:Yes)、不正送信検知部64は、次に、今回受信したメッセージの送信カウンタ値Cm0が、直前に受信したメッセージの送信カウンタ値Cm1からインクリメントされているか否かを判定する(ステップS202)。
そして、Cm0がCm1からインクリメントされていれば(ステップS202:Yes)、不正送信検知部64は、不正送信なしと判断する(ステップS203)。一方、ステップS201の判定で、Tz’がTl未満であった場合(ステップS201:No)、または、ステップS202の判定で、Cm0がCm1からインクリメントされていない場合は(ステップS202:No)、不正送信検知部64は、不正送信ありと判断する(ステップS204)。
以上説明したように、本実施形態の正規送信ECU10は、直前のメッセージ送信時刻から最長送信間隔Tlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると、モジュロNの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からTlが経過する前にメッセージ送信イベントが発生した場合は、M個前のメッセージの送信時刻からTlが経過しているか否かを判断し、M個前のメッセージの送信時刻からTlが経過していれば、モジュロNの送信カウンタ値を含むメッセージをすぐに送信する。一方、M個前のメッセージの送信時刻からTlが経過していなければ、Tlが経過するまで待って、モジュロNの送信カウンタ値を含むメッセージを送信する。したがって、受信ECU20は、送信カウンタ値の不連続性または最大送信回数Mの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
<第2実施形態>
次に、第2実施形態について説明する。本実施形態では、正規送信ECU10の送信制御部52が、予め定めたメッセージの最長送信間隔Tlと、Tlよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Ts(Ts≧Tl/N)とに基づいて、メッセージの送信タイミングを制御する。すなわち、本実施形態の正規送信ECU10は、直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると、モジュロNの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生した場合は、直前のメッセージの送信時刻から最短送信間隔Tsが経過しているか否かを判断し、直前のメッセージの送信時刻からTsが経過していれば、モジュロNの送信カウンタ値を含むメッセージをすぐに送信する。一方、直前のメッセージの送信時刻からTsが経過していなければ、Tsが経過するまで待って、モジュロNの送信カウンタ値を含むメッセージを送信する。
本実施形態では、シグナルの変化などのメッセージ送信イベントが高頻度で発生する場合、最短送信間隔Tsよりも短い間隔で短間隔メッセージを送信することが禁止される。したがって、図13に示すように、直前のメッセージ送信時刻から最短送信間隔Tsが経過する前にメッセージ送信イベントが発生したとしても、Tsが経過するまでの間は送信禁止期間となり、Tsが経過したときにメッセージの送信が許容される。これにより、不正送信ECU30が送信カウンタ値に不連続が生じないようにメッセージの不正送信を行った場合には、最短送信間隔Tsの違反が生じ、受信ECU20がこの不正送信を検知することができる。
図14は、本実施形態の送信制御部52による処理手順の一例を示すフローチャートである。送信制御部52は、送信履歴テーブル53とシグナルテーブル54とを参照しながら、この図14のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
送信制御部52は、まず、直前のメッセージ送信時刻からの経過時間Twが最長送信間隔Tlに達したか否かを判定し(ステップS301)、直前のメッセージ送信時刻からの経過時間Twが最長送信間隔Tlに達していなければ(ステップS301:No)、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する(ステップS302)。
ここで、メッセージ送信イベントが発生していなければ(ステップS302:No)、ステップS301に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は(ステップS302:Yes)、送信制御部52は、次に、直前のメッセージ送信時刻からの経過時間Twが最短送信間隔Tsに達したか否かを判定する(ステップS303)。そして、TwがTsに達していれば(ステップS303:Yes)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS304)。
一方、TwがTsに達していなければ(ステップS303:No)、送信制御部52は、TwがTsに達するまで待機し、TwがTsに達した段階で送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS304)。また、ステップS301の判定で、TwがTlに達している場合(ステップS301:Yes)、送信制御部52は送信部51に対して送信の指示を行い、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS304)。
本実施形態では、正規送信ECU10の送信制御部52が以上のようにメッセージの送信タイミングを制御することにより、受信ECU20が、送信カウンタ値の不連続性または最短送信間隔Tsの違反により、メッセージの不正送信を検知することができる。
図15は、本実施形態の不正送信検知部64による処理手順の一例を示すフローチャートである。不正送信検知部64は、受信部61によりメッセージが受信されるたびに、受信履歴テーブル63を参照しながら、この図15のフローチャートで示す一連の処理を繰り返し実行する。
受信部61によりメッセージが受信されると、不正送信検知部64は、まず、直前に受信したメッセージの受信時刻と今回受信したメッセージの受信時刻との間隔Tw’が最短送信間隔Ts以上であるか否かを判定する(ステップS401)。そして、Tw’がTs以上であれば(ステップS401:Yes)、不正送信検知部64は、次に、今回受信したメッセージの送信カウンタ値Cm0が、直前に受信したメッセージの送信カウンタ値Cm1からインクリメントされているか否かを判定する(ステップS402)。
そして、Cm0がCm1からインクリメントされていれば(ステップS402:Yes)、不正送信検知部64は、不正送信なしと判断する(ステップS403)。一方、ステップS401の判定で、Tw’がTs未満であった場合(ステップS401:No)、または、ステップS402の判定で、Cm0がCm1からインクリメントされていない場合は(ステップS402:No)、不正送信検知部64は、不正送信ありと判断する(ステップS404)。
以上説明したように、本実施形態の正規送信ECU10は、直前のメッセージ送信時刻から最長送信間隔Tlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると、モジュロNの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からTlが経過する前にメッセージ送信イベントが発生した場合は、直前のメッセージの送信時刻から最短送信間隔Tsが経過しているか否かを判断し、直前のメッセージの送信時刻からTsが経過していれば、モジュロNの送信カウンタ値を含むメッセージをすぐに送信する。一方、直前のメッセージの送信時刻からTsが経過していなければ、Tsが経過するまで待って、モジュロNの送信カウンタ値を含むメッセージを送信する。したがって、受信ECU20は、送信カウンタ値の不連続性または最短送信間隔Tsの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
<第3実施形態>
次に、第3実施形態について説明する。本実施形態の送信制御部52は、上述の第2実施形態と同様に最長送信間隔Tlと最短送信間隔Tsとに基づいてメッセージの送信タイミングを制御するが、最長送信間隔Tlでメッセージを送信した直後の短間隔メッセージについては、最短送信間隔Tsの制限を適用しない。すなわち、本実施形態の正規送信ECU10は、直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると、モジュロNの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生した場合は、直前に送信したメッセージが短間隔メッセージでなければ(最長送信間隔Tlで送信したメッセージであれば)モジュロNの送信カウンタ値を含むメッセージをすぐに送信し、直前に送信したメッセージが短間隔メッセージであれば、直前のメッセージの送信時刻から最短送信間隔Tsが経過しているか否かを判断する。そして、直前のメッセージの送信時刻からTsが経過していれば、モジュロNの送信カウンタ値を含むメッセージをすぐに送信し、直前のメッセージの送信時刻からTsが経過していなければ、Tsが経過するまで待って、モジュロNの送信カウンタ値を含むメッセージを送信する。
本実施形態では、最長送信間隔Tlでメッセージを送信した直後の短間隔メッセージに最短送信間隔Tsの制限が適用されない。したがって、最短送信間隔Tsは、図16に示すように、直前の短間隔メッセージの送信時刻から起算され、最短送信間隔Tsが経過する前にメッセージ送信イベントが発生したとしても、Tsが経過するまでの間は送信禁止期間となり、Tsが経過したときにメッセージの送信が許容される。なお、本実施形態における最短送信間隔Tsは、送信カウンタの巡回するカウント数Nと最長送信間隔Tlとの関係から、Ts≧Tl/(N−1)と定義される。これにより、不正送信ECU30が送信カウンタ値に不連続が生じないようにメッセージの不正送信を行った場合には、最短送信間隔Tsの違反が生じ、受信ECU20がこの不正送信を検知することができる。
本実施形態の正規送信ECU10は、直前に送信したメッセージが最長送信間隔Tlで送信したメッセージか否かを判断する必要がある。そこで、例えば図17に示すように、送信履歴テーブル53に最長送信間隔Tlでの送信か否かを示す最長間隔送信フラグの値を格納するカラムを追加し、送信したメッセージが最長送信間隔Tlで送信したメッセージであれば1、そうでなければ0を格納する。
図18は、本実施形態の送信制御部52による処理手順の一例を示すフローチャートである。送信制御部52は、送信履歴テーブル53とシグナルテーブル54とを参照しながら、この図18のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
送信制御部52は、まず、直前のメッセージ送信時刻からの経過時間Twが最長送信間隔Tlに達したか否かを判定し(ステップS501)、直前のメッセージ送信時刻からの経過時間Twが最長送信間隔Tlに達していなければ(ステップS501:No)、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する(ステップS502)。
ここで、メッセージ送信イベントが発生していなければ(ステップS502:No)、ステップS501に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は(ステップS502:Yes)、送信制御部52は、次に、直前に送信したメッセージの最長間隔送信フラグの値が1であるか否かを判定する(ステップS503)。そして、直前に送信したメッセージの最長間隔送信フラグの値が0であれば(ステップS503:No)、直前のメッセージ送信時刻からの経過時間Twが最短送信間隔Tsに達したか否かを判定し(ステップS504)、TwがTsに達していれば(ステップS504:Yes)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS505)。
一方、TwがTsに達していなければ(ステップS504:No)、送信制御部52は、TwがTsに達するまで待機し、TwがTsに達した段階で送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS505)。また、ステップS501の判定で、TwがTlに達している場合(ステップS501:Yes)、あるいは、ステップS503の判定で、直前に送信したメッセージの最長間隔送信フラグの値が1であれば(ステップS503:Yes)、送信制御部52は送信部51に対して送信の指示を行い、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS505)。
本実施形態では、正規送信ECU10の送信制御部52が以上のようにメッセージの送信タイミングを制御することにより、受信ECU20が、送信カウンタ値の不連続性または最短送信間隔Tsの違反により、メッセージの不正送信を検知することができる。
本実施形態の受信ECU20は、直前に受信したメッセージが最長送信間隔Tlで送信されたメッセージか否かを判断する必要がある。そこで、例えば図19に示すように、受信履歴テーブル63に最長送信間隔Tlでの送信か否かを示す最長間隔送信検知フラグの値を格納するカラムを追加し、メッセージの受信時に前回受信したメッセージとの受信時刻の差分を求め、前回受信したメッセージとの受信時刻の差分がTl+α以上であれば1、そうでなければ0を格納する。ここでαは、メッセージの送信間隔の変動を吸収するパラメータである。
図20は、本実施形態の不正送信検知部64による処理手順の一例を示すフローチャートである。不正送信検知部64は、受信部61によりメッセージが受信されるたびに、受信履歴テーブル63を参照しながら、この図20のフローチャートで示す一連の処理を繰り返し実行する。
受信部61によりメッセージが受信されると、不正送信検知部64は、まず、前回受信したメッセージの最長間隔送信検知フラグの値が1であるか否かを判定する(ステップS601)。そして、前回受信したメッセージの最長間隔送信検知フラグの値が0であれば(ステップS601:No)、不正送信検知部64は、次に、直前に受信したメッセージの受信時刻と今回受信したメッセージの受信時刻との間隔Tw’が最短送信間隔Ts以上であるか否かを判定し(ステップS602)、Tw’がTs以上であれば(ステップS602:Yes)、今回受信したメッセージの送信カウンタ値Cm0が、直前に受信したメッセージの送信カウンタ値Cm1からインクリメントされているか否かを判定する(ステップS603)。なお、ステップS601の判定で、前回受信したメッセージの最長間隔送信検知フラグの値が1であれば(ステップS601:Yes)、ステップS602の判定は行わずにステップS603に進む。
そして、Cm0がCm1からインクリメントされていれば(ステップS603:Yes)、不正送信検知部64は、不正送信なしと判断する(ステップS604)。一方、ステップS602の判定で、Tw’がTs未満であった場合(ステップS602:No)、または、ステップS603の判定で、Cm0がCm1からインクリメントされていない場合は(ステップS603:No)、不正送信検知部64は、不正送信ありと判断する(ステップS605)。
以上説明したように、本実施形態の正規送信ECU10は、直前のメッセージ送信時刻から最長送信間隔Tlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると、モジュロNの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からTlが経過する前にメッセージ送信イベントが発生した場合は、直前に送信したメッセージが短間隔メッセージでなければモジュロNの送信カウンタ値を含むメッセージをすぐに送信し、直前に送信したメッセージが短間隔メッセージであれば、直前のメッセージの送信時刻から最短送信間隔Tsが経過しているか否かを判断し、直前のメッセージの送信時刻からTsが経過していれば、モジュロNの送信カウンタ値を含むメッセージをすぐに送信する。一方、直前のメッセージの送信時刻からTsが経過していなければ、Tsが経過するまで待って、モジュロNの送信カウンタ値を含むメッセージを送信する。したがって、受信ECU20は、送信カウンタ値の不連続性または最短送信間隔Tsの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
<第4実施形態>
次に、第4実施形態について説明する。本実施形態は、AUTOSAR COMのMIXED送信モードでメッセージを行う場合の適用例である。MIXED送信モードは、所定周期でメッセージの送信を行うPERIODIC送信と、シグナルの変化などのメッセージ送信イベントに応じて不定期でメッセージの送信を行うDIRECT送信が混在する。MIXED送信モードでは、メッセージ送信イベントが発生しなくてもPERIODIC送信のタイミングでメッセージが送信されるため、PERIODIC送信の周期が最長送信間隔Tlとなる。なお、上述の各実施形態では、メッセージ送信イベントが発生することなく最長送信間隔Tlが経過するとメッセージを送信したが、本実施形態では、DIRECT送信の有無にかかわらず、PERIODIC送信のタイミングでは必ずメッセージを送信する。
本実施形態では、正規送信ECU10の送信制御部52が、メッセージの最長送信間隔(PERIODIC送信の周期)Tlと、Tlにおいて許容されるメッセージの最大送信回数(PERIODIC送信の間に許容されるDIRECT送信の最大数)Mとに基づいて、MIXED送信モードのPERIODIC送信とDIRECT送信のタイミングを制御する。なお、本実施形態における最大送信回数Mは、PERIODIC送信の間に許容されるDIRECT送信の最大数であるため、M≦N−1と定義される。
本実施形態では、受信ECU20が受信したメッセージがPERIODIC送信のメッセージであるかDIRECT送信のメッセージであるかを判断する必要がある。そこで、例えば図21に示すように、PERIODIC送信かDIRECT送信かを識別するためのPERIODIC送信フラグをメッセージに含めて送信する。PERIODIC送信フラグは、そのメッセージがPERIODIC送信のメッセージであれば1、DIRECT送信のメッセージであれば0をとる。
本実施形態の正規送信ECU10は、PERIODIC送信については、モジュロNの送信カウンタの値とPERIODIC送信フラグの値1とを含むPERIODIC送信のメッセージをTl周期で送信する。また、DIRECT送信については、直前のPERIODIC送信の後にDIRECT送信が行われた回数がMに達しているか否かを判断し、M未満であればモジュロNの送信カウンタの値とPERIODIC送信フラグの値0とを含むDIRECT送信のメッセージを送信し、Mに達していればDIRECT送信のメッセージは送信せずに、次のPERIODIC送信のタイミングでPERIODIC送信のメッセージを送信する。
図22は、本実施形態の送信制御部52による処理手順の一例を示すフローチャートである。送信制御部52は、送信履歴テーブル53とシグナルテーブル54とを参照しながら、この図22のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
送信制御部52は、まず、PERIODIC送信のタイミングであるか否かを判定し(ステップS701)、PERIODIC送信のタイミングでなければ(ステップS701:No)、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する(ステップS702)。
ここで、メッセージ送信イベントが発生していなければ(ステップS702:No)、ステップS701に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は(ステップS702:Yes)、送信制御部52は、次に、前回のPERIODIC送信後のDIRECT送信の回数nが最大送信回数Mに達したか否かを判定する(ステップS703)。そして、nがMに達していなければ(ステップS703:No)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値とPERIODIC送信フラグの値0とを含むメッセージを送信する(ステップS704)。
一方、nがMに達していれば(ステップS703:Yes)、送信制御部52は、次のPERIODIC送信のタイミングとなるまで待ち(ステップS705)、PERIODIC送信のタイミングがくると、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値とPERIODIC送信フラグの値1とを含むメッセージを送信する(ステップS706)。また、ステップS701の判定で、PERIODIC送信のタイミングであると判定した場合も(ステップS701:Yes)、送信制御部52は送信部51に対して送信の指示を行い、モジュロNの送信カウンタ値とPERIODIC送信フラグの値1とを含むメッセージを送信する(ステップS706)。
本実施形態では、正規送信ECU10の送信制御部52が以上のようにメッセージの送信タイミングを制御することにより、受信ECU20が、送信カウンタ値の不連続性または最大送信回数Mの違反により、メッセージの不正送信を検知することができる。
図23は、本実施形態の不正送信検知部64による処理手順の一例を示すフローチャートである。不正送信検知部64は、受信部61によりメッセージが受信されるたびに、受信履歴テーブル63を参照しながら、この図23のフローチャートで示す一連の処理を繰り返し実行する。
受信部61によりメッセージが受信されると、不正送信検知部64は、まず、今回受信したメッセージの送信カウンタ値Cm0が、直前に受信したメッセージの送信カウンタ値Cm1からインクリメントされているか否かを判定する(ステップS801)。そして、Cm0がCm1からインクリメントされていなければ(ステップS801:No)、不正送信検知部64は、不正送信ありと判断する(ステップS806)。
一方、Cm0がCm1からインクリメントされていれば(ステップS801:Yes)、不正送信検知部64は、次に、受信したメッセージのPERIODIC送信フラグの値が1であるか否かを判定し(ステップS802)、PERIODIC送信フラグの値が1であれば(ステップS802:Yes)、PERIODIC送信の周期が正常か否かを判定する(ステップS803)。この判定には、例えば特許文献1に記載の方法など、メッセージの周期異常を検知する公知の方法を用いればよい。そして、不正送信検知部64は、PERIODIC送信の周期が正常であれば(ステップS803:Yes)、不正送信なしと判断し(ステップS805)、PERIODIC送信の周期が異常であれば(ステップS803:No)、不正送信ありと判断する(ステップS806)。
また、ステップS802の判定で、受信したメッセージのPERIODIC送信フラグの値が0であれば(ステップS802:No)、不正送信検知部64は、直近のPERIODIC送信のメッセージ(PERIODIC送信フラグの値が1のメッセージ)を受信した後にDIRECT送信のメッセージ(PERIODIC送信フラグの値が1のメッセージ)を受信した回数nが、今回の受信も含めてM以下であるか否かを判定する(ステップS804)。そして、不正送信検知部64は、nがM以下であれば(ステップS804:Yes)、不正送信なしと判断し(ステップS805)、nがMを超えていれば(ステップS804:No)、不正送信ありと判断する(ステップS806)。
以上説明したように、本実施形態の正規送信ECU10は、PERIODIC送信については、モジュロNの送信カウンタの値とPERIODIC送信フラグの値1とを含むPERIODIC送信のメッセージをTl周期でPERIODIC送信し、DIRECT送信については、直前のPERIODIC送信の後にDIRECT送信が行われた回数がMに達しているか否かを判断し、M未満であればモジュロNの送信カウンタの値とPERIODIC送信フラグの値0とを含むDIRECT送信のメッセージを送信し、Mに達していればDIRECT送信のメッセージを送信せずに、次のPERIODIC送信のタイミングでPERIODIC送信のメッセージを送信する。したがって、受信ECU20は、送信カウンタ値の不連続性または最大送信回数Mの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
<第5実施形態>
次に、第5実施形態について説明する。本実施形態の送信制御部52は、上述の第4実施形態と同様に最長送信間隔Tlと最大送信回数Mとに基づいてMIXED送信モードのPERIODIC送信とDIRECT送信のタイミングを制御するが、メッセージにPERIODIC送信フラグの値を含めない。その代わり、PERIODIC送信のメッセージに含める送信カウンタ値を、直前に送信したメッセージの送信カウンタ値と同じにすることで、受信ECU20が受信したメッセージがPERIODIC送信のメッセージであるかDIRECT送信のメッセージであるかを判断できるようにする。
すなわち、本実施形態では、PERIODIC送信の間にDIRECT送信がない場合は、図24(a)に示すように、最新のPERIODIC送信のメッセージに含まれる送信カウンタの値が、直近のPERIODIC送信のメッセージに含まれる送信カウンタの値と同じになる。また、PERIODIC送信の間にDIRECT送信があった場合は、図24(b)に示すように、最新のPERIODIC送信のメッセージに含まれる送信カウンタの値が、直前のDIRECT送信のメッセージに含まれる送信カウンタの値と同じになる。
図25は、本実施形態の送信制御部52による処理手順の一例を示すフローチャートである。送信制御部52は、送信履歴テーブル53とシグナルテーブル54とを参照しながら、この図25のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
送信制御部52は、まず、PERIODIC送信のタイミングであるか否かを判定し(ステップS901)、PERIODIC送信のタイミングでなければ(ステップS901:No)、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する(ステップS902)。
ここで、メッセージ送信イベントが発生していなければ(ステップS902:No)、ステップS901に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は(ステップS902:Yes)、送信制御部52は、次に、前回のPERIODIC送信後のDIRECT送信の回数nが最大送信回数Mに達したか否かを判定する(ステップS903)。そして、nがMに達していなければ(ステップS903:No)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS904)。
一方、nがMに達していれば(ステップS903:Yes)、送信制御部52は、次のPERIODIC送信のタイミングとなるまで待ち(ステップS905)、PERIODIC送信のタイミングがくると、送信部51に対して送信の指示を行って、直前に送信したメッセージと同じ送信カウンタ値を含むメッセージを送信する(ステップS906)。また、ステップS901の判定で、PERIODIC送信のタイミングであると判定した場合も(ステップS901:Yes)、送信制御部52は送信部51に対して送信の指示を行い、直前に送信したメッセージと同じ送信カウンタ値を含むメッセージを送信する(ステップS906)。
図26は、本実施形態の不正送信検知部64による処理手順の一例を示すフローチャートである。不正送信検知部64は、受信部61によりメッセージが受信されるたびに、受信履歴テーブル63を参照しながら、この図26のフローチャートで示す一連の処理を繰り返し実行する。
受信部61によりメッセージが受信されると、不正送信検知部64は、まず、今回受信したメッセージの送信カウンタ値Cm0が、直前に受信したメッセージの送信カウンタ値Cm1と同じであるか否かを判定する(ステップS1001)。そして、Cm0がCm1と同じであれば(ステップS1001:Yes)、不正送信検知部64は、次に、PERIODIC送信の周期が正常か否かを判定し(ステップS1002)、PERIODIC送信の周期が正常であれば(ステップS1002:Yes)、不正送信なしと判断し(ステップS1005)、PERIODIC送信の周期が異常であれば(ステップS1002:No)、不正送信ありと判断する(ステップS1006)。
また、ステップS1001の判定で、Cm0がCm1と同じでなければ(ステップS1001:No)、不正送信検知部64は、次に、Cm0がCm1からインクリメントされているか否かを判定する(ステップS1003)。そして、Cm0がCm1からインクリメントされていなければ(ステップS1003:No)、不正送信検知部64は、不正送信ありと判断する(ステップS1006)。
一方、Cm0がCm1からインクリメントされていれば(ステップS1003:Yes)、不正送信検知部64は、次に、直近のPERIODIC送信のメッセージ(送信カウンタ値が1つ前と同じメッセージ)を受信した後にDIRECT送信のメッセージ(送信カウンタ値が1つ前からインクリメントされているメッセージ)を受信した回数nが、今回の受信も含めてM以下であるか否かを判定する(ステップS1004)。そして、不正送信検知部64は、nがM以下であれば(ステップS1004:Yes)、不正送信なしと判断し(ステップS1005)、nがMを超えていれば(ステップS1004:No)、不正送信ありと判断する(ステップS1006)。
以上説明したように、本実施形態では、PERIODIC送信については、直前に送信したメッセージと同じ値の送信カウンタ値をメッセージに含めるようにしているので、メッセージにPERIODIC送信フラグの値を含めることなく、PERIODIC送信とDIRECT送信とを区別できる。
<第6実施形態>
次に、第6実施形態について説明する。本実施形態の送信制御部52は、メッセージの最長送信間隔(PERIODIC送信の周期)Tlと、DIRECT送信のメッセージ(短間隔メッセージ)に許容される最短送信間隔Tsとに基づいて、MIXED送信モードのPERIODIC送信とDIRECT送信のタイミングを制御する。また、本実施形態では、PERIODIC送信の直後のDIRECT送信のメッセージについては、最短送信間隔Tsの制限を適用しない。このため、本実施形態における最短送信間隔Tsは、上述の第3実施形態と同様に、Ts≧Tl/(N−1)と定義される。また、本実施形態では、上述の第5実施形態と同様に、PERIODIC送信のメッセージに含める送信カウンタ値を、直前に送信したメッセージの送信カウンタ値と同じにすることで、受信ECU20が受信したメッセージがPERIODIC送信のメッセージであるかDIRECT送信のメッセージであるかを判断できるようにする。
すなわち、本実施形態の正規送信ECU10は、PERIODIC送信については、直前のメッセージに含まれる送信カウンタ値と同じ送信カウンタ値を含むPERIODIC送信のメッセージをTl周期で送信する。また、DIRECT送信については、直前に送信したメッセージがPERIODIC送信のメッセージであれば、モジュロNのカウンタ値を含むDIRECT送信のメッセージをすぐに送信し、直前に送信したメッセージがDIRECT送信のメッセージであれば、直前のDIRECT送信のメッセージの送信時刻から最短送信間隔Tsが経過しているか否かを判断する。そして、直前のDIRECT送信のメッセージの送信時刻からTsが経過していれば、モジュロNの送信カウンタ値を含むDIRECT送信のメッセージをすぐに送信し、直前のDIRECT送信のメッセージの送信時刻からTsが経過していなければ、Tsが経過するまで待って、モジュロNの送信カウンタ値を含むDIRECT送信のメッセージを送信する。また、直前のDIRECT送信のメッセージの送信時刻からTsが経過する前にPERIODIC送信のタイミングとなった場合は、DIRECT送信のメッセージは送信せずに、PERIODIC送信のメッセージを送信する。
本実施形態では、DIRECT送信の直後のDIRECT送信のメッセージについては、最短送信間隔Tsの制限が適用されない。したがって、最短送信間隔Tsは、図27に示すように、直前のDIRECT送信のメッセージの送信時刻から起算され、最短送信間隔Tsが経過する前にメッセージ送信イベントが発生したとしても、Tsが経過するまでの間は送信禁止期間となり、Tsが経過したときに次のDIRECT送信のメッセージを送信できる。また、直前のDIRECT送信のメッセージの送信時刻からTsが経過する前にPERIODIC送信のタイミングとなった場合は、DIRECT送信のメッセージは送信されず、PERIODIC送信のメッセージが送信される。
図28は、本実施形態の送信制御部52による処理手順の一例を示すフローチャートである。送信制御部52は、送信履歴テーブル53とシグナルテーブル54とを参照しながら、この図28のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
送信制御部52は、まず、PERIODIC送信のタイミングであるか否かを判定し(ステップS1101)、PERIODIC送信のタイミングでなければ(ステップ1101:No)、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する(ステップS1102)。
ここで、メッセージ送信イベントが発生していなければ(ステップS1102:No)、ステップS1101に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は(ステップS1102:Yes)、送信制御部52は、次に、直前に送信したメッセージがPERIODIC送信のメッセージであるか否かを判定し(ステップS1103)、直前に送信したメッセージがPERIODIC送信のメッセージであれば(ステップS1103:Yes)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS1104)。
一方、直前に送信したメッセージがDIRECT送信のメッセージであれば(ステップS1103:No)、送信制御部52は、次に、直前のDIRECT送信のメッセージ送信時刻からの経過時間Twが最短送信間隔Tsに達したか否かを判定し(ステップS1105)、TwがTsに達していれば(ステップS1105:Yes)、送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS1104)。
一方、TwがTsに達していなければ(ステップS1105:No)、送信制御部52は、TwがTsに達するまで待機し、TwがTsに達する前にPERIODIC送信のタイミングになった場合は(ステップS1106:Yes)、送信部51に対して送信の指示を行い、直前に送信したメッセージと同じ送信カウンタ値を含むメッセージを送信する(ステップS1107)。一方、PERIODIC送信のタイミングになる前にTwがTsに達すると(ステップS1106:No、ステップS1105:Yes)、送信制御部52は送信部51に対して送信の指示を行って、モジュロNの送信カウンタ値を含むメッセージを送信する(ステップS1104)。
図29は、本実施形態の不正送信検知部64による処理手順の一例を示すフローチャートである。不正送信検知部64は、受信部61によりメッセージが受信されるたびに、受信履歴テーブル63を参照しながら、この図29のフローチャートで示す一連の処理を繰り返し実行する。
受信部61によりメッセージが受信されると、不正送信検知部64は、まず、今回受信したメッセージの送信カウンタ値Cm0が、直前に受信したメッセージの送信カウンタ値Cm1と同じであるか否かを判定する(ステップS1201)。そして、Cm0がCm1と同じであれば(ステップS1201:Yes)、不正送信検知部64は、次に、PERIODIC送信の周期が正常か否かを判定し(ステップS1202)、PERIODIC送信の周期が正常であれば(ステップS1202:Yes)、不正送信なしと判断し(ステップS1206)、PERIODIC送信の周期が異常であれば(ステップS1202:No)、不正送信ありと判断する(ステップS1207)。
また、ステップS1201の判定で、Cm0がCm1と同じでなければ(ステップS1201:No)、不正送信検知部64は、次に、Cm0がCm1からインクリメントされているか否かを判定する(ステップS1203)。そして、Cm0がCm1からインクリメントされていなければ(ステップS1203:No)、不正送信検知部64は、不正送信ありと判断する(ステップS1207)。
一方、Cm0がCm1からインクリメントされていれば(ステップS1203:Yes)、不正送信検知部64は、次に、直前に受信したメッセージの送信カウンタ値Cm1が、2つ前に受信したメッセージの送信カウンタ値Cm2と同じであるか否かを判定する(ステップS1204)。そして、Cm1がCm2と同じであれば(ステップS1204:Yes)、不正送信なしと判断する(ステップS1206)。一方、Cm1がCm2と同じでなければ(ステップS1204:No)、不正送信検知部64は、次に、直前に受信したDIRECT送信のメッセージの受信時刻と今回受信したDIRECT送信のメッセージの受信時刻との間隔Tw’が最短送信間隔Ts以上であるか否かを判定する(ステップS1205)。そして、不正送信検知部64は、Tw’がTs以上であれば(ステップS1205:Yes)、不正送信なしと判断し(ステップS1206)、Tw’がTs未満であれば(ステップS1205:No)、不正送信ありと判断する(ステップS1207)。
以上説明したように、本実施形態の正規送信ECU10は、PERIODIC送信については、直前のメッセージに含まれる送信カウンタ値と同じ送信カウンタ値を含むPERIODIC送信のメッセージをTl周期で送信し、DIRECT送信については、直前のメッセージがPERIODIC送信のメッセージであればモジュロNの送信カウンタの値を含むDIRECT送信のメッセージを送信し、直前のメッセージがDIRECT送信のメッセージであれば、直前のDIRECT送信のメッセージ送信時刻から最短送信間隔Tsが経過しているか否かを判断する。そして、直前のDIRECT送信のメッセージ送信時刻から最短送信間隔Tsが経過していればモジュロNの送信カウンタの値を含むDIRECT送信のメッセージを送信し、最短送信間隔Tsが経過していなければ、最短送信間隔Tsが経過した時点でDIRECT送信のメッセージを送信、あるいは次のPERIODIC送信のタイミングでPERIODIC送信のメッセージを送信する。したがって、受信ECU20は、送信カウンタ値の不連続性または最短送信間隔Tsの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
また、本実施形態では、PERIODIC送信については、直前に送信したメッセージと同じ値の送信カウンタ値をメッセージに含めるようにしているので、上述の第5実施形態と同様に、メッセージにPERIODIC送信フラグの値を含めることなく、PERIODIC送信とDIRECT送信とを区別できる。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 正規送信ECU
11 LSI
12 トランシーバ
51 送信部
52 送信制御部
53 送信履歴テーブル
54 シグナルテーブル
55 シグナル更新部

Claims (12)

  1. メッセージを送信する電子機器であって、
    予め定めたメッセージの最長送信間隔TlとTlにおいて許容されるメッセージの最大送信回数Mとに基づいてメッセージの送信タイミングを制御し、Mに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
    ことを特徴とする電子機器。
  2. 直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると前記送信カウンタの値を含むメッセージを送信し、
    直前のメッセージ送信時刻からTlが経過する前に前記メッセージ送信イベントが発生した場合は、M個前のメッセージの送信時刻からTlが経過しているか否かを判断し、Tlが経過していれば前記送信カウンタの値を含むメッセージをすぐに送信し、Tlが経過していなければTlが経過するまで待って前記送信カウンタの値を含むメッセージを送信する
    ことを特徴とする請求項1に記載の電子機器。
  3. AUTOSARの通信仕様のMIXED送信モードでメッセージを送信する電子機器であって、
    PERIODIC送信については、前記送信カウンタの値とPERIODIC送信であることを示すフラグとを含むメッセージをTl周期でPERIODIC送信し、
    DIRECT送信については、直前のPERIODIC送信の後にDIRECT送信が行われた回数がMに達しているか否かを判断し、M未満であれば前記送信カウンタの値とDIRECT送信であることを示すフラグとを含むメッセージをDIRECT送信し、Mに達していればDIRECT送信を行わない
    ことを特徴とする請求項1に記載の電子機器。
  4. AUTOSARの通信仕様のMIXED送信モードでメッセージを送信する電子機器であって、
    PERIODIC送信については、直前のDIRECT送信またはPERIODIC送信のメッセージに含まれる前記送信カウンタの値と同じ値を含むメッセージをTl周期でPERIODIC送信し、
    DIRECT送信については、直前のPERIODIC送信の後にDIRECT送信が行われた回数がMに達しているか否かを判断し、M未満であれば前記送信カウンタの値を含むメッセージをDIRECT送信し、Mに達していればDIRECT送信を行わない
    ことを特徴とする請求項1に記載の電子機器。
  5. メッセージを送信する電子機器であって、
    予め定めたメッセージの最長送信間隔TlとTlよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Tsとに基づいてメッセージの送信タイミングを制御し、Tl/Tsに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
    ことを特徴とする電子機器。
  6. 直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると前記送信カウンタの値を含むメッセージを送信し、
    直前のメッセージ送信時刻からTlが経過する前に前記メッセージ送信イベントが発生した場合は、直前のメッセージ送信時刻からTsが経過しているか否かを判断し、Tsが経過していれば前記送信カウンタの値を含むメッセージをすぐに送信し、Tsが経過していなければTsが経過するまで待って前記送信カウンタの値を含むメッセージを送信する
    ことを特徴とする請求項5に記載の電子機器。
  7. 直前のメッセージ送信時刻からTlが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からTlが経過すると前記送信カウンタの値を含むメッセージを送信し、
    直前のメッセージ送信時刻からTlが経過する前に前記メッセージ送信イベントが発生した場合は、直前に送信したメッセージが前記短間隔メッセージでなければ前記送信カウンタの値を含むメッセージをすぐに送信し、直前に送信したメッセージが前記短間隔メッセージであれば、直前のメッセージ送信時刻からTsが経過しているか否かを判断し、Tsが経過していれば前記送信カウンタの値を含むメッセージをすぐに送信し、Tsが経過していなければTsが経過するまで待って前記送信カウンタの値を含むメッセージを送信する
    ことを特徴とする請求項5に記載の電子機器。
  8. AUTOSARの通信仕様のMIXED送信モードでメッセージを送信する電子機器であって、
    PERIODIC送信については、直前のDIRECT送信またはPERIODIC送信のメッセージに含まれる前記送信カウンタの値と同じ値を含むメッセージをTl周期でPERIODIC送信し、
    DIRECT送信については、直前に送信したメッセージがPERIODIC送信のメッセージであれば前記送信カウンタの値を含むメッセージをすぐにDIRECT送信し、直前に送信したメッセージがDIRECT送信のメッセージであれば、直前のメッセージ送信時刻からTsが経過しているか否かを判断し、Tsが経過していれば前記送信カウンタの値を含むメッセージをすぐにDIRECT送信し、Tsが経過していなければ、Tsが経過する前にPERIODIC送信のタイミングにならない場合はTsが経過するまで待って前記送信カウンタの値を含むメッセージをDIRECT送信し、Tsが経過する前にPERIODIC送信のタイミングとなる場合はDIRECT送信を行わない
    ことを特徴とする請求項5に記載の電子機器。
  9. メッセージを送信する方法であって、
    予め定めたメッセージの最長送信間隔TlとTlにおいて許容されるメッセージの最大送信回数Mとに基づいてメッセージの送信タイミングを制御し、Mに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
    ことを特徴とするメッセージ送信方法。
  10. メッセージを送信する方法であって、
    予め定めたメッセージの最長送信間隔TlとTlよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Tsとに基づいてメッセージの送信タイミングを制御し、Tl/Tsに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
    ことを特徴とするメッセージ送信方法。
  11. メッセージを送信する電子機器で実行されるプログラムであって、
    予め定めたメッセージの最長送信間隔TlとTlにおいて許容されるメッセージの最大送信回数Mとに基づいてメッセージの送信タイミングを制御し、Mに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する機能を前記電子機器に実現させるためのプログラム。
  12. メッセージを送信する電子機器で実行されるプログラムであって、
    予め定めたメッセージの最長送信間隔TlとTlよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Tsとに基づいてメッセージの送信タイミングを制御し、Tl/Tsに基づいて定まるN回のカウントで巡回する送信カウンタの値を含むメッセージを送信する機能を前記電子機器に実現させるためのプログラム。
JP2018007347A 2018-01-19 2018-01-19 電子機器、メッセージ送信方法およびプログラム Active JP6866317B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018007347A JP6866317B2 (ja) 2018-01-19 2018-01-19 電子機器、メッセージ送信方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018007347A JP6866317B2 (ja) 2018-01-19 2018-01-19 電子機器、メッセージ送信方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019126007A JP2019126007A (ja) 2019-07-25
JP6866317B2 true JP6866317B2 (ja) 2021-04-28

Family

ID=67398803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018007347A Active JP6866317B2 (ja) 2018-01-19 2018-01-19 電子機器、メッセージ送信方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6866317B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022270240A1 (ja) * 2021-06-24 2022-12-29 住友電気工業株式会社 車載装置、検知装置、送信制御方法および検知方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3947026B2 (ja) * 2002-03-29 2007-07-18 オムロン株式会社 情報処理装置および方法、並びに記録媒体
US8631149B2 (en) * 2008-11-25 2014-01-14 Citrix Systems, Inc. Systems and methods for object rate limiting
KR20120136507A (ko) * 2011-06-09 2012-12-20 삼성전자주식회사 네임 기반의 네트워크 시스템에서 펜딩 테이블의 오버플로우를 방지하는 노드 장치 및 방법
CN104272695B (zh) * 2012-04-20 2017-04-19 三菱电机株式会社 数据处理装置
JP6190404B2 (ja) * 2014-06-05 2017-08-30 Kddi株式会社 受信ノード、メッセージ受信方法およびコンピュータプログラム
JP6199335B2 (ja) * 2014-06-05 2017-09-20 Kddi株式会社 通信ネットワークシステム及びメッセージ検査方法

Also Published As

Publication number Publication date
JP2019126007A (ja) 2019-07-25

Similar Documents

Publication Publication Date Title
CN107707520B (zh) 网络监视装置
CN109002368B (zh) 监控设备的工作方法及多核系统
JP2014146868A (ja) ネットワーク装置およびデータ送受信システム
JP6369341B2 (ja) 車載通信システム
JP2019068253A (ja) 異常検知装置、異常検知方法、プログラム及び通信システム
JP2014236248A (ja) 電子制御装置、電子制御システム
US11394726B2 (en) Method and apparatus for transmitting a message sequence over a data bus and method and apparatus for detecting an attack on a message sequence thus transmitted
JP2021005821A (ja) 異常検出装置
JP6866317B2 (ja) 電子機器、メッセージ送信方法およびプログラム
JP2010081152A (ja) 通信装置および通信システム並びに通信方法、canノード
CN110915170B (zh) Ecu
JP2006180205A (ja) 車載送信装置およびプログラム。
JP2017168993A (ja) 監視装置、及び、通信システム
JP2019047177A (ja) 監視装置、監視システムおよびコンピュータプログラム
JP7011637B2 (ja) 不正信号検出装置
JP2001352345A (ja) データ伝送装置およびデータ送出制御方法
JP5445396B2 (ja) 無線通信装置及び無線通信システム
JP2008236477A (ja) 通信遅延時間推定方法、通信遅延時間推定プログラム、車載通信器
JP2021136631A (ja) 不正信号検出装置
JP6191759B2 (ja) 通信装置、輻輳制御方法および記録媒体
JP2020145547A (ja) 不正送信データ検知装置
JP7063278B2 (ja) 異常通知装置
JP7175858B2 (ja) 情報処理装置および正規通信判定方法
JP6561917B2 (ja) 制御装置
JP6451587B2 (ja) 通信システム及び通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210301

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210407

R150 Certificate of patent or registration of utility model

Ref document number: 6866317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350