(57)【要約】【課題】ＣＡＮバスの負荷を低下させること。【解決手段】制御部１１１は、ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置１０１のメッセージＩＤの各々について、メッセージの認証に失敗した頻度を導出する。制御部１１１は、メッセージＩＤの各々について、導出した頻度に基づいて、メッセージＩＤを含むメッセージに付与されるＭＡＣデータ長を決定する。制御部１１１は、決定したＭＡＣデータ長を表す情報を含むメッセージを送信元のデータ通信装置１０１へ送信する。【選択図】図１
2018032903.tif 000002
【特許請求の範囲】
【請求項１】
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
制御部を有することを特徴とするデータ通信装置。
【請求項２】
前記制御部は、
前記識別情報の各々について、前記各メッセージの認証に失敗した回数を計数することにより前記頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記長さを決定する、
ことを特徴とする請求項１に記載のデータ通信装置。
【請求項３】
前記制御部は、
所定時間ごとに、前記識別情報の各々について、前記頻度を導出し、
前記所定時間ごとに、前記識別情報の各々について、導出した前記頻度に基づいて、前記長さを決定する、
ことを特徴とする請求項１または２に記載のデータ通信装置。
【請求項４】
前記制御部は、
導出した前記頻度と、前記各メッセージに付与された認証用のデータの第２長さと、に基づいて、前記長さを決定する、
ことを特徴とする請求項１〜３のいずれか一つに記載のデータ通信装置。
【請求項５】
前記頻度の範囲別に前記長さの増減値を対応付けて記憶する記憶部を有し、
前記制御部は、
前記識別情報の各々について、前記記憶部を参照して、導出した前記頻度の範囲に対応付けられた前記増減値と、前記第２長さと、に基づいて、前記長さを決定する、
ことを特徴とする請求項４に記載のデータ通信装置。
【請求項６】
コンピュータに、
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
処理を実行させることを特徴とするデータ通信プログラム。
【請求項７】
コンピュータが、
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
処理を実行することを特徴とするデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信装置、データ通信プログラム、およびデータ通信方法に関する。
【背景技術】
【０００２】
従来、自動車、輸送用機器、工場、工作機器などにおいて、相互接続されたデータ通信装置間のデータ転送にＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と呼ばれるシリアル通信プロトコルが使用される。自動車などの車両ネットワークにおける複数のデータ通信装置はＣＡＮバスによって相互に接続される。また、車両ネットワークにおける複数のデータ通信装置間では、ＣＡＮを用いて、速度、エンジンの回転数、ブレーキの状態、故障診断などのデータが転送される。
【０００３】
また、従来、データ通信装置間で通信されるメッセージの保護技術としては、ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）認証が挙げられる。ＭＡＣ認証では、通信を行うデータ通信装置のみに共通鍵を持たせる。送信側のデータ通信装置は、送信したいメッセージに、共通鍵に基づき生成したＭＡＣデータを付与して送信する。受信側のデータ通信装置は、受信したメッセージと共通鍵とに基づいてＭＡＣデータを生成し、生成したＭＡＣデータと受信したメッセージに含まれるＭＡＣデータとの一致判定によりメッセージの認証を行う。例えば、メッセージに付与されるＭＡＣデータの長さが予め長く設定されてあるほど、ＭＡＣ認証において共通鍵を持たない装置に共通鍵を特定させることを抑制することができる。
【０００４】
先行技術としては、アクセラレータにおいて、暗号化、メッセージ認証、チェックサムなどの各データ処理に対応する処理部を有し、データ処理の入力データ長を設定可能な設定レジスタを有する技術がある（例えば、以下特許文献１参照。）。また、カオス暗号を使って、暗号鍵を追加した認証対象のメッセージを暗号鍵として、原始元を暗号化する認証技術がある（例えば、以下特許文献２参照。）。また、ユーザを識別する認証情報を記憶し、入力された認証情報を少なくとも一回は拒否した後、再び入力される認証情報と記憶された認証情報を照合する技術がある（例えば、以下特許文献３参照。）。また、同一ユーザが一定期間内に規定回数以上認証失敗となった場合、該ユーザからのアクセスを不正アクセスとみなし、以降該当ユーザからの接続要求を認証サーバへ問い合わせることなく廃棄する技術がある（例えば、以下特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−６７１５２号公報
【特許文献２】特開２００２−１５２１９２号公報
【特許文献３】特開２００５−２０８９３１号公報
【特許文献４】特開２００７−３１０６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＣＡＮ通信において、メッセージに付与されるＭＡＣデータが長いと、ＣＡＮバスの負荷が大きくなるという問題点がある。例えば、車両ネットワークにおいてＣＡＮバスの負荷が大きくなると、自動車の自動運転や安全運転に関するデータ転送に遅延が生じ、ひいては、自動車の安全性が低下する恐れがある。
【０００７】
１つの側面では、本発明は、ＣＡＮバスの負荷を低下させることができるデータ通信装置、データ通信プログラム、およびデータ通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信するデータ通信装置、データ通信プログラム、およびデータ通信方法が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、ＣＡＮバスの負荷を低下させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明にかかるデータ通信装置の一動作例を示す説明図である。
【図２】図２は、車両システムのシステム構成例を示す説明図である。
【図３】図３は、ＥＣＵのハードウェア構成例を示す説明図である。
【図４】図４は、ＥＣＵの機能的構成例を示すブロック図である。
【図５】図５は、送信内部情報と受信内部情報例を示す説明図である。
【図６】図６は、ＭＡＣデータ長遷移表例を示す説明図である。
【図７】図７は、メッセージのフレーム構成例を示す説明図である。
【図８】図８は、ＭＡＣデータの付与例を示す説明図である。
【図９】図９は、ＭＡＣ認証例を示す説明図である。
【図１０】図１０は、ＥＣＵ間の通信シーケンス例を示す説明図である。
【図１１】図１１は、ＥＣＵによるＭＡＣデータ長増減要求通知処理手順例を示すフローチャートである。
【図１２】図１２は、ＥＣＵによるＭＡＣデータ長増減要求受信後処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかるデータ通信装置、データ通信プログラム、およびデータ通信方法の実施の形態を詳細に説明する。
【００１２】
図１は、本発明にかかるデータ通信装置の一動作例を示す説明図である。データ通信装置１０１は、ＣＡＮ通信におけるデータ転送によるバスの負荷の低減を図るコンピュータである。
【００１３】
従来、自動車、輸送用機器、工場、工作機器などにおいて、相互接続されたデータ通信装置間のデータ転送にＣＡＮと呼ばれるシリアル通信プロトコルが使用される。自動車などの車両ネットワークにおけるデータ通信装置間では、速度、エンジンの回転数、ブレーキの状態、故障診断の情報などのデータ転送にＣＡＮが用いられる。
【００１４】
車両ネットワークでは、ＣＡＮバスによって複数のデータ通信装置を同時に接続することができる。接続可能な数はＣＡＮバスの遅延時間と電気的な負荷によって定まる。通信速度を下げるとより多くの装置を接続することができ、通信速度を上げると接続できる装置の数は少なくなる。
【００１５】
また、車両ネットワークでは、複数のネットワークがゲートウェイを介してデータのやり取りを行うことができる。ネットワークとしては、エアコンやドアなどのボディ系のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、テレビや音楽などの情報系のＬＡＮ、各種センサなどの安全系のＬＡＮ、エンジン、ブレーキ、タイヤ圧などのエンジンやパワートレイン系のＬＡＮなどが挙げられる。また、車両ネットワークは、通信制御ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）などによって車両の外部のネットワークと接続可能である。車両ネットワークは、点検用のＯＢＤ（Ｏｎ  Ｂｏａｒｄ  Ｄｉａｇｎｏｓｔｉｃｓ）２アダプターなどによって車両の外部と接続可能である。
【００１６】
また、近年、車両ネットワークでは、危険回避のための運転者への警告や障害物と車両との衝突に備えるための自動ブレーキなどのためのメッセージや自動運転のためのメッセージなどがデータ通信装置間で行われる。
【００１７】
また、各ＥＣＵなどのデータ通信装置間で通信されるメッセージの保護技術としては、ＭＡＣ認証が挙げられる。ＭＡＣ認証では、通信を行うデータ通信装置のみに共通情報を持たせておき、送信側のデータ通信装置は、送信したいメッセージに、共通鍵を元に生成したＭＡＣデータを付与して送信する。そして、ＭＡＣ認証では、受信側のデータ通信装置は、受信したメッセージと、共通鍵とに基づいて認証用のデータであるＭＡＣデータを生成し、受信したメッセージに含まれるＭＡＣデータと生成したＭＡＣデータとに基づいてメッセージの認証を行う。共通鍵を持たない装置から送信されたメッセージを排除することができる。また、現在のＭＡＣ認証では、ＭＡＣデータ長はメッセージの重要性や送信周期に基づいた固定の値が設定されている。
【００１８】
しかし、共通鍵を持たない装置が、ＭＡＣデータを総当たりとなるようにランダムに生成して故意にメッセージを送信しつづけると、受信側のデータ通信装置は、共通鍵を持たない装置からのメッセージを偶発的に受け入れてしまう場合がある。このような場合、共通鍵を持たない装置は共通鍵を特定することができる。
【００１９】
ＭＡＣ認証を車両ネットワークに用いる場合、「走る」、「曲がる」、「止まる」などを制御するためのメッセージが偽装されると、誤った運転が行われ、安全性が低下する恐れがある。ＭＡＣデータのデータ長が短いと、共通鍵の特定にかかる時間が比較的短くなるため、安全性が低下する。
【００２０】
しかし、ＭＡＣ認証を車両ネットワークに用いる場合、ＭＡＣデータのデータ長が長いと、メッセージのデータ長が長くなるため、ＣＡＮバスの負荷が増加するという問題点がある。車両ネットワークにおいてＣＡＮバスの負荷が増加すると、メッセージ通信に遅延が発生し、ひいては、安全性が低下する恐れがある。「走る」、「曲がる」、「止まる」などを制御するためのメッセージは即時行われないと、制御の遅れにより車両が前方の物体と衝突するなどの危険がある。
【００２１】
このように、ＭＡＣデータ長を長くすると、セキュリティ強度は向上するが、ＣＡＮバスの負荷が高くなる。一方、ＭＡＣデータ長を短くすると、ＣＡＮバスの負荷は低下するが、セキュリティ強度は低下する。
【００２２】
そこで、本実施の形態では、データ通信装置１０１は、ＣＡＮ通信において受信したメッセージのメッセージＩＤごとにＭＡＣ認証に失敗した頻度を求め、メッセージＩＤごとに認証に失敗した頻度に基づきＭＡＣデータ長を可変にする。これにより、攻撃が少ないときにＭＡＣデータ長を短くすることにより、ＣＡＮバスの負荷の低減を図ることができる。また、攻撃が多いときにＭＡＣデータ長を長くすることにより、安全性の向上を図ることができる。
【００２３】
図１の例では、データ通信装置１０１は、制御部１１１を有する。また、データ通信装置１０１は、制御部１１１によって扱うデータを記憶する記憶部１１２を有する。データ通信装置１０１と、データ通信装置１０２と、偽データ通信装置１０３とは、ＣＡＮバス１０４によって相互に接続される。データ通信装置１０２は、データ通信装置１０１との間で共通鍵を持つ装置である。一方、偽データ通信装置１０３は、データ通信装置１０１との共通鍵を持たない装置である。偽データ通信装置１０３は、ネットワークを介して接続された装置であってもよい。
【００２４】
制御部１１１は、ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置１０１の識別情報の各々について、メッセージの認証に失敗した頻度を導出する。送信元のデータ通信装置１０１の識別情報は、ＣＡＮ通信プロトコルにおけるメッセージＩＤである。
【００２５】
図１の例では、データ通信装置１０１を識別するメッセージＩＤが「０ｘ２２０」であり、データ通信装置１０２を識別するメッセージＩＤが「０ｘ１２０」である。メッセージの認証に失敗した頻度は、所定時間ごとのメッセージの認証に失敗した回数そのものであってもよいし、当該回数に基づく値や文字によって表されてもよい。ここでの値や文字とは、１〜５、ａ〜ｅなどのような段階評価の値や文字である。図１の例では所定時間ごとにメッセージの認証に失敗した回数を頻度として扱う。所定時間については、データ通信装置１０１の開発者などが予め定める。
【００２６】
制御部１１１は、偽データ通信装置１０３からメッセージｍ１を受信する。制御部１１１は、メッセージｍ１にＭＡＣデータが付与されていないため、メッセージｍ１の認証に失敗したと判断する。図１（１）に示すように、データ通信装置１０１は、頻度を導出する。データ通信装置１０１は、「２」から「３」にカウントアップする。
【００２７】
つぎに、図１（２）に示すように、制御部１１１は、メッセージＩＤの各々について、導出した頻度に基づいて、メッセージＩＤを含むメッセージに付与されるＭＡＣデータ長を決定する。ここで、ＭＡＣデータ長を新たに決定するタイミングについては、所定時間ごとのように周期的なタイミングでもよいし、頻度が閾値を超えたタイミングなどでもよく、特に限定しない。認証に失敗した頻度が高いと、偽データ通信装置１０３などのデータ通信装置１０１との共通鍵を持たない装置から攻撃されていると判断できる。そこで、制御部１１１は、頻度が高いほど、ＭＡＣデータ長を長くし、頻度が低いほど、ＭＡＣデータ長を短くしてもよい。また、制御部１１１は、現在のＭＡＣデータ長と、頻度と、に基づいてＭＡＣデータ長を決定してもよい。制御部１１１は、ＭＡＣデータ長および頻度の範囲の各々について、ＭＡＣデータ長が対応付けられた情報から、導出した頻度の範囲と現在のＭＡＣデータ長とに対応付けられたＭＡＣデータ長を取得してもよい。
【００２８】
図１の例では、制御部１１１は、頻度に基づいて、現状のＭＡＣデータ長である「１０」ビットよりも２ビット多い「１２」ビットに決定する。
【００２９】
そして、制御部１１１は、決定したＭＡＣデータ長を表す情報を含むメッセージを送信元のデータ通信装置１０１へ送信する。ＭＡＣデータ長を表す情報は、ＭＡＣデータ長そのものを表す情報であってもよいし、現在のＭＡＣデータ長と決定したＭＡＣデータ長との差分値を表す情報であってもよい。制御部１１１は、メッセージＩＤ「０ｘ２２０」と、データとしてＭＡＣデータ長を表す情報「１２ビット」と、ＭＡＣデータと、を含むメッセージｍ２をデータ通信装置１０２へ送信する。これにより、データ通信装置１０２からデータ通信装置１０１へのメッセージのＭＡＣデータ長を変更できる。
【００３０】
ここで、図１の例では、制御部１１１は、メッセージの認証に失敗した頻度を導出しているが、これに限らず、メッセージの認証に成功した頻度を導出してもよい。制御部１１１は、メッセージの認証に成功した頻度を導出する場合、メッセージＩＤの各々について、導出した頻度に基づいて、メッセージＩＤを含むメッセージに付与されるＭＡＣデータ長を決定する。ＭＡＣデータ長を新たに決定するタイミングについては、メッセージの認証に失敗した頻度を導出する場合と同じであり、特に限定しない。制御部１１１は、認証に成功した頻度が低いと、偽データ通信装置１０３などのデータ通信装置１０１との共通鍵を持たない装置から攻撃されていると判断できる。そこで、制御部１１１は、頻度が低いほど、ＭＡＣデータ長を長くし、頻度が高いほど、ＭＡＣデータ長を短くしてもよい。また、制御部１１１は、現在のＭＡＣデータ長と、頻度と、に基づいてＭＡＣデータ長を決定してもよい。また、制御部１１１は、メッセージの認証に成功した頻度を導出する場合において、ＭＡＣデータ長を決定した後の処理についてはメッセージの認証に失敗した頻度を導出する場合と同じであるため、詳細な説明を省略する。
【００３１】
（車両システムのシステム構成例）
図２は、車両システムのシステム構成例を示す説明図である。図２において、車両システム２００は、車両に搭載されるシステムである。
【００３２】
車両システム２００は、各種のＥＣＵ２０１−Ａ〜２０１−Ｄなどが搭載される。図１の例では、ＥＣＵ２０１−Ａ〜２０１−Ｄは、それぞれデータ通信装置１０１である。ＥＣＵ２０１が４つの例を示すが、特に限定しない。ＥＣＵ２０１−Ａ〜２０１−Ｄは、ＣＡＮバス２１０によって互いにデータ通信を行う。ＣＡＮバス２１０は、車両内のＬＡＮである。
【００３３】
ＥＣＵ２０１−Ａ、ＥＣＵ２０１−Ｂ、ＥＣＵ２０１−Ｃ、ＥＣＵ２０１−Ｄなどのように各ＥＣＵを「ＥＣＵ２０１−ｉ」と表記する場合がある。ＥＣＵ２０１−ｉとしては、ブレーキ補助検出ＥＣＵ、緊急停止制御ＥＣＵ、エンジン制御ＥＣＵ、通信制御ＥＣＵ、モータ制御ＥＣＵ、ＨＥＶ制御ＥＣＵ、車両のトランスミッションを制御するＥＣＵなどが挙げられる。通信制御ＥＣＵなどは、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）を有する。この通信制御ＥＣＵのＩ／Ｆは、通信回線を通じて、移動体通信網やインターネットなどのネットワークに接続され、ネットワークを介して外部のコンピュータに接続される。そして、Ｉ／Ｆは、ネットワークと内部のインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。また、通信制御ＥＣＵは、車両と、車両の附属品と、の間の通信を行うことができる。附属品は、電子キー、スマートフォンなどの携帯端末装置、ウェアラブル端末などが挙げられる。
【００３４】
このように、通信制御ＥＣＵなどがネットワークに接続し、車両システム２００の外部と接続可能であると、悪意のあるユーザが故意に各種のＥＣＵへメッセージなどの攻撃を行う場合がある。
【００３５】
また、車両システム２００は、タッチパネルディスプレイや各種センサなどが設けられていてもよい。また、車両システム２００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。カメラとしては、虹彩認証用のカメラ、顔認証用のカメラなどを有していてもよい。また、図示を省略するが、車両システム２００は、指紋認証用のセンサや静脈認証用のセンサなどを有していてもよい。また、図示を省略するが、車両システム２００には、スピーカなどの出力装置が設けられていてもよい。
【００３６】
（ＥＣＵ２０１−ｉのハードウェア構成例）
図３は、ＥＣＵのハードウェア構成例を示す説明図である。図３において、ＥＣＵ２０１−ｉは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２と、不揮発メモリ３０３と、ＣＡＮ通信装置３０４と、を有する。各部はバス３１０によってそれぞれ接続されている。
【００３７】
ここで、ＣＰＵ３０１は、ＥＣＵ２０１−ｉの全体の制御を司る。ＲＡＭ３０２は、ＣＰＵ３０１のワークエリアとして使用される。不揮発メモリ３０３は、各種のプログラムやデータを記憶する。
【００３８】
ＣＡＮ通信装置３０４は、ＣＡＮバス２１０に接続され、ＣＡＮプロトコルを実現するためのＩ／Ｆである。ＣＡＮ通信装置３０４は、外部装置からのデータの入出力を制御する。また、ＣＡＮ通信装置３０４は、不揮発メモリ３０３などに記憶されたデータ通信プログラムを読み出して、データ通信プログラムにコーディングされた処理を実行してもよい。これにより、データ通信方法を実現してもよい。
【００３９】
（ＥＣＵ２０１−ｉの機能的構成例）
図４は、ＥＣＵの機能的構成例を示すブロック図である。ＥＣＵ２０１−ｉは、受信部４０１−ｉと、認証部４０２−ｉと、導出部４０３−ｉと、決定部４０４−ｉと、メッセージ生成部４０５−ｉと、送信部４０６−ｉと、記憶部４１０−ｉと、を有する。受信部４０１−ｉから送信部４０６−ｉまでの制御部１１１の処理は、図３に示すＣＡＮ通信装置３０４がアクセス可能なＲＡＭ３０２、不揮発メモリ３０３などの記憶部４１０−ｉに記憶されたプログラムにコーディングされている。そして、ＣＡＮ通信装置３０４が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部１１１の処理結果は、ＲＡＭ３０２、不揮発メモリ３０３などの記憶部４１０−ｉに記憶される。
【００４０】
また、ＥＣＵ２０１−ｉは、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。また、上述した制御部の各機能をＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｉｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、データ通信装置内の一部の装置を製造することができる。
【００４１】
また、受信部４０１−ｉと、認証部４０２−ｉと、送信部４０６−ｉとの機能については、ＣＡＮ通信装置３０４によって実現され、導出部４０３−ｉと決定部４０４−ｉとの機能については、ＣＰＵ３０１によって実現されてもよい。この場合、導出部４０３−ｉと決定部４０４−ｉの処理は、記憶部４１０−ｉに記憶されたプログラムにコーディングされている。ＣＰＵ３０１が記憶装置から該プログラムを読み出してプログラムにコーディングされている処理を実行してもよい。
【００４２】
記憶部４１０−ｉは、送信内部情報や受信内部情報を記憶する。送信内部情報は、送信するメッセージのメッセージＩＤやＭＡＣデータ長を管理するための情報である。受信内部情報は、受信するメッセージのメッセージＩＤ、ＭＡＣデータ長、攻撃回数などを管理するための情報である。
【００４３】
図５は、送信内部情報と受信内部情報例を示す説明図である。ＣＡＮ通信を行うために不揮発メモリ３０３などに記憶される送信内部情報５０１や受信内部情報５００の例を説明する。図５の例では、ＥＣＵ２０１−Ａの送信ＩＤは「０ｘ２２０」であり、ＥＣＵ２０１−Ｂの送信ＩＤは「０ｘ１２０」である。ここで、送信ＩＤは、メッセージに付与するＥＣＵ２０１−ｉの識別情報であり、受信ＩＤは、メッセージに付与されたＥＣＵ２０１−ｉの識別情報である。
【００４４】
受信内部情報５００は、受信ＩＤごとにＭＡＣデータ長、攻撃回数、ＭＡＣデータ遷移表を表す情報を有する。受信内部情報５００は、受信ＩＤ，ＭＡＣデータ長、攻撃回数、ＭＡＣデータ遷移表のフィールドを有する。受信ＩＤのフィールドには、自通信装置を表す識別情報が設定される。ＭＡＣデータ長のフィールドには、受信したメッセージの中に含まれるＭＡＣデータの長さが設定される。
【００４５】
攻撃回数は、受信ＩＤごとに受信ＩＤを含むメッセージの認証に失敗した頻度である。また、攻撃回数は、所定時間ごとに計数される。ＭＡＣデータ遷移表は、現状のＭＡＣデータ長と、攻撃回数と、に基づいてつぎのＭＡＣデータ長を決定するための表である。
【００４６】
送信内部情報５０１は、送信ＩＤごとに決定されたＭＡＣデータ長を示す情報である。送信内部情報５０１は、送信ＩＤとＭＡＣデータ長とを示す情報を有する。
【００４７】
図５の例では、ＥＣＵ２０１−ＢがＥＣＵ２０１−Ａに対してメッセージを送信する際に、ＥＣＵ２０１−Ｂは、メッセージＩＤとして送信ＩＤ「０ｘ１２０」と、送信したいデータと、８ビットのＭＡＣデータと、を含むメッセージを生成する。そして、ＥＣＵ２０１−Ｂは、生成したメッセージを送信する。
【００４８】
図６は、ＭＡＣデータ長遷移表例を示す説明図である。ＭＡＣデータ長遷移表Ｔ＿ＡＢは、ＥＣＵ２０１−ＢからＥＣＵ２０１−Ａへのメッセージに含まれるＭＡＣデータのデータ長を決定するための表である。ＭＡＣデータ長遷移表Ｔ＿ＡＣは、ＥＣＵ２０１−ＣからＥＣＵ２０１−Ａへのメッセージに含まれるＭＡＣデータのデータ長を決定するための表である。ＭＡＣデータ長遷移表Ｔ＿ＡＢとＭＡＣデータ長遷移表Ｔ＿ＡＣとは、同一の内容であるが、それぞれ異なる内容であってもよく、特に限定しない。
【００４９】
ここでは、ＭＡＣデータ長遷移表Ｔ＿ＡＢを用いて説明する。ＭＡＣデータ長遷移表Ｔ＿ＡＢは、メッセージＩＤ「０ｘ１２０」について、現在のＭＡＣデータ長、単位時間ごとの攻撃回数、ＭＡＣデータ長の増減値のフィールドを有する。各フィールドに情報が設定されることによりレコードとして記憶される。
【００５０】
例えば、現在のＭＡＣデータ長が８ビットの場合、単位時間ごとの攻撃回数が１〜４回であれば、ＭＡＣデータ長の増減値は、２ビットである。すなわち、ＭＡＣデータ長は、８＋２の１０ビットとなる。また、現在のＭＡＣデータ長が、１０ビットの場合、単位時間ごとの攻撃回数が０回であれば、ＭＡＣデータ長の増減値は、−２ビットである。すなわち、ＭＡＣデータ長は、１０−２の８ビットとなる。これにより、単位時間当たりの攻撃回数によって増減値を変更することができる。
【００５１】
図７は、メッセージのフレーム構成例を示す説明図である。メッセージは、メッセージＩＤと、ＤＡＴＡ部と、ＭＡＣデータ部と、を有する。メッセージＩＤのデータ幅は、１１ビットである。ＤＡＴＡ部には、送信したい内容が設定される。ＭＡＣデータ部には、生成されたＭＡＣデータのうち決定されたＭＡＣデータ長のＭＡＣデータが設定される。ＤＡＴＡ部とＭＡＣデータ部とのデータ幅は、最大で８バイトである。例えば、ＤＡＴＡ部のデータ幅が５バイトであると、ＭＡＣデータ部のデータ幅は最大で３バイトである。
【００５２】
ＥＣＵ２０１−ＢからＥＣＵ２０１−Ａへのメッセージの場合、メッセージＩＤには、「０ｘ１２０」が設定され、ＤＡＴＡ部には送信したいＤＡＴＡが設定され、ＭＡＣデータ部には決定されたＭＡＣデータ長のＭＡＣデータが設定される。
【００５３】
ＥＣＵ２０１−ＡからＥＣＵ２０１−ＢへのＭＡＣデータ長の増減値のメッセージの場合、メッセージＩＤには、「０ｘ２２０」が設定され、ＤＡＴＡ部には２ビットの増または減を示す情報と、増減値の値と、が設定される。ＭＡＣデータ部には決定されたＭＡＣデータ長のＭＡＣデータが設定される。
【００５４】
導出部４０３−ｉは、ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、各メッセージの認証に失敗した頻度を導出する。
【００５５】
つぎに、受信部４０１−ｉは、ＣＡＮバス２１０を介してＣＡＮ通信における各メッセージを受信する。認証部４０２ーｉは、受信部４０１−ｉによって受信されたメッセージについて、メッセージに含まれるメッセージＩＤに対応付けられた共通鍵とメッセージに含まれるデータとに基づいてＭＡＣデータを生成する。そして、認証部４０２ーｉは、生成したＭＡＣデータに基づいてメッセージの認証を行う。認証部４０２−ｉは、受信内部情報５００を参照して、生成したＭＡＣデータのうちの、メッセージＩＤに対応付けられたＭＡＣデータ長のデータと、メッセージに含まれるＭＡＣデータと、の一致判定により認証に失敗したか成功したかを判断する。
【００５６】
そして、導出部４０３−ｉは、認証部４０２−ｉによって認証に失敗したと判断された場合に、メッセージＩＤについての頻度を導出する。導出部４０３−ｉは、メッセージＩＤの各々について、各メッセージの認証に失敗した回数を計数することにより頻度を導出する。頻度は、例えば、各メッセージの認証に失敗した回数そのものであってもよいし、当該回数に基づいて求めたものであってもよい。頻度を複数の段階で表す場合などに、導出部４０３−ｉは、例えば、回数の範囲ごとに頻度を求めてもよい。導出部４０３−ｉは、所定時間ごとに頻度を導出してもよい。所定時間については、予め定められ、記憶部４１０−ｉなどに記憶される。ＥＣＵ２０１−ｉの機能や性能などに応じて通信タイミングが異なるため、所定時間については、ＥＣＵ２０１−ｉの機能や性能に応じて車両システム２００の開発者が定めてもよい。これにより、定期的に頻度を導出することができる。
【００５７】
つぎに、決定部４０４−ｉは、メッセージＩＤの各々について、導出した頻度に基づいて、メッセージＩＤを含むメッセージに付与されるＭＡＣデータ長を決定する。決定部４０４ーｉは、頻度が高いほど、ＭＡＣデータ長が長くなるようにし、頻度が低いほど、ＭＡＣデータ長が短くなるようにデータ長を決定する。
【００５８】
また、決定部４０４−ｉは、導出した頻度と、各メッセージに付与されたＭＡＣデータの第２長さと、に基づいて、ＭＡＣデータ長を決定する。ここで、第２長さは、現在のＭＡＣデータ長である。上述したように、記憶部４１０−ｉは、第２長さを受信内部情報５００内に記憶する。決定部４０４ーｉは、頻度が高ければ、現在のＭＡＣデータ長よりも長くなるようにし、頻度が低ければ、ＭＡＣデータ長が短くなるまたはＭＡＣデータ長を変えないようにする。また、決定部４０４ーｉは、受信内部情報５００を参照して、第２長さを決定した長さに更新する。
【００５９】
また、記憶部４１０−ｉは、頻度の範囲別に長さの増減値を対応付けて記憶する。上述したように、記憶部４１０−ｉは、ＭＡＣデータＩＤの各々について、図６に示すようなＭＡＣデータ遷移表を記憶する。
【００６０】
つぎに、決定部４０４−ｉは、ＭＡＣデータＩＤの各々について、記憶部４１０−ｉを参照して、導出した頻度の範囲に対応付けられた増減値と、第２長さと、に基づいて、長さを決定する。
【００６１】
また、決定部４０４−ｉは、第２長さおよび頻度の範囲別に長さの増減値を対応付けて記憶する。そして、決定部４０４ーｉは、メッセージＩＤの各々について、記憶部４１０−ｉを参照して、現在のＭＡＣデータ長および頻度の範囲に対応する増減値、に基づいて、ＭＡＣデータ長を決定する。
【００６２】
送信部４０６−ｉは、決定した長さを表す情報を含むメッセージを送信元のデータ通信装置へ送信する。メッセージ生成部４０５−ｉは、決定した長さを表す情報を含むメッセージを生成する。メッセージについては、図７に示したように、送信元のＥＣＵ２０１−ｉを識別するメッセージＩＤと、増減値を示す情報と、ＭＡＣデータと、を含む。そして、送信部４０６−ｉは、メッセージ生成部４０５−ｉによって生成されたメッセージを送信する。
【００６３】
また、上述したように、導出部４０３−ｉは、ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、各メッセージの認証に成功した頻度を導出してもよい。成功した頻度を導出する処理としては、導出部４０３−ｉは、例えば、メッセージＩＤの各々について、各メッセージの認証に成功した回数を計数することにより頻度を導出する。頻度は、例えば、各メッセージの認証に成功した回数そのものであってもよいし、成功した回数に基づいて求めたものであってもよい。
【００６４】
そして、各メッセージの認証に成功した頻度を導出する場合において、決定部４０４−ｉは、メッセージＩＤの各々について、導出した頻度に基づいて、メッセージＩＤを含むメッセージに付与されるＭＡＣデータ長を決定する。各メッセージの認証に成功した頻度の場合、決定部４０４−ｉは、成功した頻度が低いほど、ＭＡＣデータ長が長くなるようにし、頻度が高いほど、ＭＡＣデータ長が短くなるようにデータ長を決定する。決定部４０４−ｉは、導出した頻度と、各メッセージに付与されたＭＡＣデータの第２長さと、に基づいて、ＭＡＣデータ長を決定する。ここで、第２長さは、上述したように現在のＭＡＣデータ長である。決定部４０４−ｉは、頻度が低ければ、現在のＭＡＣデータ長よりも長くなるようにし、頻度が高ければ、ＭＡＣデータ長が短くなるまたはＭＡＣデータ長を変えないようにする。また、決定部４０４−ｉは、受信内部情報５００を参照して、第２長さを決定した長さに更新する。第２長さは記憶部４１０−ｉに記憶される。各メッセージの認証に成功した頻度を導出する場合における送信部４０６−ｉやメッセージ生成部４０５−ｉの処理については、各メッセージの認証に失敗した頻度を導出する場合における処理と同じであるため、詳細な説明を省略する。
【００６５】
また、導出部４０３−ｉは、メッセージＩＤの各々について、各メッセージの認証の回数と、各メッセージの認証に失敗した回数を計数し、認証の回数のうちの、失敗した回数の割合を攻撃の頻度としてもよい。決定部４０４−ｉは、失敗した回数の割合（攻撃の頻度）が高いほど、攻撃されていると判断する。このため、決定部４０４−ｉは、攻撃の頻度が高いほど、ＭＡＣデータ長が長くなるようにし、攻撃の頻度が低いほど、ＭＡＣデータ長が短くなるようにデータ長を決定してもよい。
【００６６】
また、導出部４０３−ｉは、メッセージＩＤの各々について、各メッセージの認証回数と、各メッセージの認証に成功した回数を計数し、認証回数のうちの成功した回数の割合を攻撃の頻度としてもよい。決定部４０４−ｉは、成功した回数の割合（攻撃の頻度）が高いほど、攻撃されていないと判断する。このため、決定部４０４−ｉは、攻撃の頻度が低いほど、ＭＡＣデータ長が長くなるようにし、攻撃の頻度が高いほど、ＭＡＣデータ長が短くなるようにデータ長を決定してもよい。
【００６７】
以上を踏まえて、ＭＡＣ付与方式、ＭＡＣ検証方式、ＥＣＵ２０１−ｉ間の通信シーケンスの詳細例を説明する。ＥＣＵ２０１−Ａが、メッセージの送信先であり、ＥＣＵ２０１−Ｂが、メッセージの送信元である場合の例を用いて説明する。
【００６８】
＜ＭＡＣデータ付与方法＞
図８は、ＭＡＣデータの付与例を示す説明図である。ここでは、ＥＣＵ２０１−Ｂが、メッセージＩＤ「０ｘ１２０」を含むメッセージを生成する例を説明する。メッセージ生成部４０５−Ｂは、メッセージＩＤ「０ｘ１２０」に対応する共通鍵を取得する。メッセージ生成部４０５−Ｂは、共通鍵と、送信したいデータと、に基づいてＭＡＣデータを生成する。ＭＡＣデータの生成方法については、公知であるため、詳細な説明を省略する。
【００６９】
ここで、メッセージのフレーム構成は、メッセージＩＤ、ＤＡＴＡ部、ＭＡＣデータの３つである。メッセージ生成部４０５−Ｂは、メッセージＩＤ「０ｘ１２０」に対応するＭＡＣデータ長を送信内部情報５０１から取得する。メッセージ生成部４０５−Ｂは、生成したＭＡＣデータのうちの上位のＭＡＣデータ長のデータをメッセージに付与する。そして、送信部４０６は、生成されたメッセージを送信する。
【００７０】
＜ＭＡＣ認証方式＞
図９は、ＭＡＣ認証例を示す説明図である。ここでは、ＥＣＵ２０１−Ａが、メッセージＩＤ「０ｘ１２０」を含むメッセージを受信する例を説明する。
【００７１】
受信部４０１−Ａは、ＣＡＮバス２１０からメッセージを受信する。認証部４０２−Ａは、受信部４０１−Ａが受信したメッセージに含まれるメッセージＩＤに基づく共通鍵を記憶部４１０から取得する。
【００７２】
そして、認証部４０２−Ａは、受信したメッセージのメッセージＩＤに基づく共通鍵と、受信したメッセージに含まれるＤＡＴＡ部と、に基づいてＭＡＣデータを生成する。つぎに、認証部４０２−Ａは、受信したメッセージのメッセージＩＤに対応する受信内部情報５００−Ｂに記憶されたＭＡＣデータ長を取得する。認証部４０２−Ａは、生成したＭＡＣデータのうちの取得したＭＡＣデータ長のＭＡＣデータと、メッセージに含まれるＤＡＴＡ部のうちの取得したＭＡＣデータ長のＭＡＣデータと、の一致判定を行う。認証部４０２−Ａは、一致した場合、認証に成功したと判断し、不一致の場合、認証に失敗したと判断する。
【００７３】
また、導出部４０３−Ａは、メッセージＩＤの各々について、所定時間ごとの攻撃回数を計数する。上述したように、メッセージＩＤ「０ｘ１２０」についての攻撃回数は、受信内部情報５００−Ｂによって管理される。認証に失敗した場合、受信したメッセージは、攻撃データであると判断され、導出部４０３は、所定時間ごとの攻撃回数をカウントアップする。
【００７４】
決定部４０４−Ａは、所定時間ごとに、受信内部情報５００−Ｂに記憶された攻撃回数に基づいて、ＭＡＣデータ長を決定する。図５の例では、ＭＡＣデータ長が８ビットであり、攻撃回数が２である。決定部４０４−Ａは、ＭＡＣデータ遷移表Ｔ＿ＡＢを参照して、現在のＭＡＣデータ長が８ビットであり、攻撃回数が２の場合における増減値「２ビット」を取得する。そして、決定部４０４−Ａは、現在のＭＡＣデータ長の「８ビット」に「２ビット」増加させ、新たなＭＡＣデータ長を「１０ビット」に決定する。
【００７５】
決定部４０４−Ａは、決定したＭＡＣデータ長に基づいて受信内部情報５００を更新する。この際、決定部４０４−Ａは、受信内部情報５００の攻撃回数を「０」にリセットする。これにより、所定時間ごとの攻撃回数をカウントすることができる。
【００７６】
図１０は、ＥＣＵ間の通信シーケンス例を示す説明図である。ここでは、ＥＣＵ２０１−ＢがメッセージＩＤ「０ｘ１２０」のメッセージをＥＣＵ２０１−Ａに送信するだけでなく、偽ＥＣＵ９００が、メッセージＩＤ「０ｘ１２０」のメッセージをＥＣＵ２０１−Ａに送信する例を説明する。
【００７７】
ＥＣＵ２０１−Ｂは、ＭＡＣデータ長が８ビットのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１００１）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１００２）。ステップＳ１００２において、ＥＣＵ２０１−Ａは、認証に成功したと判断する。
【００７８】
つぎに、偽ＥＣＵ９００は、ＭＡＣデータなしのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１００３）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１００４）。ステップＳ１００４において、ＥＣＵ２０１−Ａは、認証に失敗したと判断し、攻撃回数を１にカウントアップする。
【００７９】
つぎに、偽ＥＣＵ９００は、ＭＡＣデータなしのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１００５）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１００６）。ステップＳ１００６において、ＥＣＵ２０１−Ａは、認証に失敗したと判断し、攻撃回数を２にカウントアップする。
【００８０】
そして、所定時間が経過すると、ＥＣＵ２０１−Ａは、攻撃回数チェック処理を行う（ステップＳ１００７）。現在のＭＡＣデータ長が「８ビット」であり、攻撃回数が「２」であるため、ＥＣＵ２０１−Ａは、ＭＡＣデータ遷移表Ｔ＿ＡＢを参照して、ＭＡＣデータ長を２ビット増加することを決定する。そして、ＥＣＵ２０１−Ａは、メッセージＩＤが「０ｘ２２０」であり、ＭＡＣデータ長を２ビット増加させる増加要求のメッセージをＥＣＵ２０１−Ｂへ送信する（ステップＳ１００８）。また、ＥＣＵ２０１−Ａは、攻撃回数チェック処理の終了後に攻撃回数をリセットして０にする。
【００８１】
ＥＣＵ２０１−Ｂは、２ビットの増加要求を受け付けたため、以降のＥＣＵ２０１−Ａに対するメッセージに８＋２の１０ビットのＭＡＣデータを付与する。ＥＣＵ２０１−Ｂは、ＭＡＣデータ長が１０ビットのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１００９）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１０１０）。ステップＳ１０１０において、ＥＣＵ２０１−Ａは、認証に成功したと判断する。
【００８２】
ＥＣＵ２０１−Ｂは、ＭＡＣデータ長が１０ビットのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１０１１）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１０１２）。ステップＳ１０１２において、ＥＣＵ２０１−Ａは、認証に成功したと判断する。
【００８３】
つぎに、所定時間が経過すると、ＥＣＵ２０１−Ａは、攻撃回数チェック処理を行う（ステップＳ１０１３）。現在のＭＡＣデータ長が「１０ビット」であり、攻撃回数が「０」であるため、ＥＣＵ２０１−Ａは、ＭＡＣデータ遷移表Ｔ＿ＡＢを参照して、ＭＡＣデータ長を２ビット減少することを決定する。そして、ＥＣＵ２０１−Ａは、メッセージＩＤが「０ｘ２２０」であり、ＭＡＣデータ長を「２ビット」減少させる減少要求のメッセージをＥＣＵ２０１−Ｂへ送信する（ステップＳ１０１４）。また、ＥＣＵ２０１−Ａは、攻撃回数チェック処理の終了後に攻撃回数をリセットして０にする。
【００８４】
偽ＥＣＵ９００は、ＭＡＣデータなしのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１０１５）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１０１６）。ここでは、ＥＣＵ２０１−Ａは、受信したメッセージＭＡＣデータが付与されていないため、認証に失敗したと判断して撃回数を１にカウントアップする。ステップＳ１０１７からステップＳ１０２４において、ステップＳ１０１５とステップＳ１０１６の処理が繰り返し行われ、攻撃回数は５になる。
【００８５】
ＥＣＵ２０１−Ｂは、ＭＡＣデータ長が８ビットのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１０２５）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１０２６）。ステップＳ１０２６において、ＥＣＵ２０１−Ａは、認証に成功したと判断する。偽ＥＣＵ９００は、ＭＡＣデータなしのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１０２７）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１０２８）。攻撃回数は６になる。ステップＳ１０２８において、ＥＣＵ２０１−Ａは、受信したメッセージにＭＡＣデータが付与されていないため、認証に失敗したと判断して攻撃回数を６にカウントアップする。
【００８６】
つぎに、所定時間が経過すると、ＥＣＵ２０１−Ａは、攻撃回数チェック処理を行う（ステップＳ１０２９）。現在のＭＡＣデータ長が「８ビット」であり、攻撃回数が「６」であるため、ＥＣＵ２０１−Ａは、ＭＡＣデータ遷移表Ｔ＿ＡＢを参照して、ＭＡＣデータ長を４ビット増加することを決定する。そして、ＥＣＵ２０１−Ａは、メッセージＩＤが「０ｘ２２０」であり、ＭＡＣデータ長を「４ビット」増加させる増加要求のメッセージをＥＣＵ２０１−Ｂへ送信する（ステップＳ１０３０）。ＥＣＵ２０１−Ｂは、４ビットの増加要求を受け付けたため、以降のＥＣＵ２０１−Ａに対するメッセージに８＋４の１２ビットのＭＡＣデータを付与する。
【００８７】
そして、ＥＣＵ２０１−Ｂは、ＭＡＣデータ長が１２ビットのメッセージをＥＣＵ２０１−Ａに対して送信する（ステップＳ１０３１）。ＥＣＵ２０１−Ａは、受信したメッセージについての認証を行う（ステップＳ１０３２）。ステップＳ１０３２において、ＥＣＵ２０１−Ａは、認証に成功したと判断する。
【００８８】
このように、所定時間ごとの攻撃回数に応じてＭＡＣデータ長を増減させることにより、ＭＡＣデータ長を定期的に変更することが可能となる。攻撃の頻度が高い場合はＭＡＣデータ長を長くしてセキュリティの強度の向上を図ることができる。一方、攻撃の頻度が低い場合はＭＡＣデータ長を短くしてＣＡＮバスの通信負荷の低下を図ることができる。
【００８９】
（ＥＣＵ２０１−ｉによるＭＡＣデータ長増減要求通知処理手順例）
図１１は、ＥＣＵによるＭＡＣデータ長増減要求通知処理手順例を示すフローチャートである。ＥＣＵ２０１−ｉは、所定時間の経過を検出すると、受信内部情報５００を参照して、処理対象のメッセージＩＤについての攻撃回数を取得する（ステップＳ１１０１）。つぎに、ＥＣＵ２０１−ｉは、受信内部情報５００を参照して、処理対象のメッセージＩＤについての現在のＭＡＣデータ長を取得する（ステップＳ１１０２）。ＥＣＵ２０１−ｉは、ＭＡＣデータ長遷移表を参照して、攻撃回数と現在のＭＡＣデータ長に基づく増減値を取得する（ステップＳ１１０３）。
【００９０】
ＥＣＵ２０１−ｉは、増減値が０であるか否かを判断する（ステップＳ１１０４）。増減値が０でないと判断された場合（ステップＳ１１０４：Ｎｏ）、ＥＣＵ２０１−ｉは、自ＥＣＵ２０１−ｉのメッセージＩＤのメッセージのＤＡＴＡ部に増減値を設定する（ステップＳ１１０５）。ＥＣＵ２０１−ｉが、ＥＣＵ２０１−Ａの場合、メッセージＩＤが「０ｘ２２０」である。ＥＣＵ２０１−ｉは、メッセージを送信する（ステップＳ１１０６）。そして、ＥＣＵ２０１−ｉは、受信内部情報５００を参照して、処理対象のメッセージＩＤについてのＭＡＣデータ長を更新する（ステップＳ１１０７）。ステップＳ１１０７において、ＥＣＵ２０１−ｉは、受信内部情報５００を参照して、処理対象のメッセージＩＤについての現在のＭＡＣデータ長に増減値を加算することによりＭＡＣデータ長を更新する。
【００９１】
増減値が０であると判断された場合（ステップＳ１１０４：Ｙｅｓ）、ＥＣＵ２０１−ｉは、一連の処理を終了する。
【００９２】
（ＥＣＵ２０１−ｉによるＭＡＣデータ長増減要求受信後処理手順例）
図１２は、ＥＣＵによるＭＡＣデータ長増減要求受信後処理手順例を示すフローチャートである。ＥＣＵ２０１−ｉは、メッセージに含まれるＭＡＣデータ長の増減値を取得する（ステップＳ１２０１）。そして、ＥＣＵ２０１−ｉは、送信内部情報５０１を参照して、ＭＡＣデータ長を更新し（ステップＳ１２０２）、一連の処理を終了する。ステップＳ１２０２において、ＥＣＵ２０１−ｉは、送信内部情報５０１を参照して、処理対象のメッセージＩＤについての現在のＭＡＣデータ長に増減値を加算することによりＭＡＣデータ長を更新する。
【００９３】
以上説明したように、データ通信装置１０１は、ＣＡＮ通信において受信したメッセージのメッセージＩＤごとにＭＡＣ認証に失敗した頻度を求め、メッセージＩＤごとに当該頻度によって認証用のＭＡＣデータ長を可変にする。認証に失敗することは、いずれかの装置から攻撃されている可能性がある。攻撃が少ないときにＭＡＣデータ長を短くすることにより、ＣＡＮバスの負荷の低減を図ることができる。また、攻撃が多いときにＭＡＣデータ長を長くすることにより、安全性の向上を図ることができる。
【００９４】
また、データ通信装置１０１は、メッセージＩＤの各々について、各メッセージの認証に失敗した回数を計数することにより頻度を導出する。これにより、メッセージの認証に失敗した回数によって簡単に頻度を求めることができる。
【００９５】
また、データ通信装置１０１は、所定時間ごとに、メッセージＩＤの各々について、頻度を導出し、導出した頻度に基づいて、ＭＡＣデータ長を決定する。
【００９６】
また、データ通信装置１０１は、導出した頻度と、各メッセージに付与された現在のＭＡＣデータ長に基づいて、新たなＭＡＣデータ長を決定する。導出した頻度が高ければ、現在のＭＡＣデータ長よりも大きくし、安全性の向上を図ることができる。また、導出した頻度が低ければ、現在のＭＡＣデータ長よりも短くするか現在のＭＡＣデータ長のままにし、ＣＡＮバスの負荷の低減を図ることができる。
【００９７】
また、データ通信装置１０１は、ＣＡＮ通信において受信したメッセージのメッセージＩＤごとにＭＡＣ認証に成功した頻度を求め、メッセージＩＤごとに当該頻度によって認証用のＭＡＣデータ長を可変にする。認証に成功するのは、いずれかの装置から攻撃されていないことを示す。攻撃が少ないときにＭＡＣデータ長を短くすることにより、ＣＡＮバスの負荷の低減を図ることができる。また、攻撃が多いときにＭＡＣデータ長を長くすることにより、安全性の向上を図ることができる。
【００９８】
なお、本実施の形態で説明したデータ通信方法は、予め用意されたデータ通信プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ通信プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、データ通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１００】
（付記１）ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
制御部を有することを特徴とするデータ通信装置。
【０１０１】
（付記２）前記制御部は、
前記識別情報の各々について、前記各メッセージの認証に失敗した回数を計数することにより前記頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記長さを決定する、
ことを特徴とする付記１に記載のデータ通信装置。
【０１０２】
（付記３）前記制御部は、
所定時間ごとに、前記識別情報の各々について、前記頻度を導出し、
前記所定時間ごとに、前記識別情報の各々について、導出した前記頻度に基づいて、前記長さを決定する、
ことを特徴とする付記１または２に記載のデータ通信装置。
【０１０３】
（付記４）前記制御部は、
導出した前記頻度と、前記各メッセージに付与された認証用のデータの第２長さと、に基づいて、前記長さを決定する、
ことを特徴とする付記１〜３のいずれか一つに記載のデータ通信装置。
【０１０４】
（付記５）前記第２長さを記憶する記憶部を有し、
前記制御部は、
前記頻度と、前記記憶部に記憶された前記第２長さと、に基づいて、前記長さを決定し、
前記記憶部を参照して、前記第２長さを決定した前記長さに更新する、
ことを特徴とする付記４に記載のデータ通信装置。
【０１０５】
（付記６）前記頻度の範囲別に前記長さの増減値を対応付けて記憶する記憶部を有し、
前記制御部は、
前記識別情報の各々について、前記記憶部を参照して、導出した前記頻度の範囲に対応付けられた前記増減値と、前記第２長さと、に基づいて、前記長さを決定する、
ことを特徴とする付記４または５に記載のデータ通信装置。
【０１０６】
（付記７）ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に成功した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
制御部を有することを特徴とするデータ通信装置。
【０１０７】
（付記８）コンピュータに、
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
処理を実行させることを特徴とするデータ通信プログラム。
【０１０８】
（付記９）コンピュータに、
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に成功した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
処理を実行させることを特徴とするデータ通信プログラム。
【０１０９】
（付記１０）コンピュータが、
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に失敗した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
処理を実行することを特徴とするデータ通信方法。
【０１１０】
（付記１１）コンピュータが、
ＣＡＮ通信において受信した各メッセージに含まれる送信元のデータ通信装置の識別情報の各々について、前記各メッセージの認証に成功した頻度を導出し、
前記識別情報の各々について、導出した前記頻度に基づいて、前記識別情報を含むメッセージに付与される認証用のデータの長さを決定し、
決定した前記長さを表す情報を含むメッセージを前記送信元のデータ通信装置へ送信する、
処理を実行することを特徴とするデータ通信方法。
【符号の説明】
【０１１１】
１０１，１０２  データ通信装置
１０３  偽データ通信装置
１０４，２１０  ＣＡＮバス
１１１  制御部
１１２，４１０  記憶部
２００  車両システム
２０１  ＥＣＵ
３０１  ＣＰＵ
３０２  ＲＡＭ
３０３  不揮発メモリ
３０４  ＣＡＮ通信装置
３１０  バス
４０１  受信部
４０２  認証部
４０３  導出部
４０４  決定部
４０５  メッセージ生成部
４０６  送信部
９００  偽ＥＣＵ
ｍ１，ｍ２  メッセージ
【図１】
2018032903.tif 000003
【図２】
2018032903.tif 000004
【図３】
2018032903.tif 000005
【図４】
2018032903.tif 000006
【図５】
2018032903.tif 000007
【図６】
2018032903.tif 000008
【図７】
2018032903.tif 000009
【図８】
2018032903.tif 000010
【図９】
2018032903.tif 000011
【図１０】
2018032903.tif 000012
【図１１】
2018032903.tif 000013
【図１２】
2018032903.tif 000014