(57)【要約】【課題】より安全なデータ通信を可能とするデータ通信システム、データ通信機器、及びデータ通信方法を提供する。【解決手段】マスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０は、データ通信に際して、各々の記憶部１０３，２０３に記憶されて、データ通信ごとにインクリメントされるカウンタの値を用いてメッセージ認証を行う。マスター側ＥＣＵ１０は、その起動後におけるスレーブ側ＥＣＵ２０との最初のデータ通信に先立って、乱数生成器１０７により生成された乱数を、カウンタの値として自身の記憶部１０３に記憶するとともに、その記憶した値をスレーブ側ＥＣＵ２０に通知する初期化処理部１０８を備え、スレーブ側ＥＣＵ２０は、その通知された値を、カウンタの値として自身の記憶部２０３に記憶する同期処理部２０７を備える。【選択図】図１
2017034555.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたデータ通信機器間のデータ通信を行うデータ通信システムにおいて、
データ通信を行う２つのデータ通信機器の一方をマスター機器とし、他方をスレーブ機器としたとき、
前記マスター機器及び前記スレーブ機器には、カウンタの値を記憶する記憶部と、前記マスター機器と前記スレーブ機器との間でデータ通信が行われる毎に前記カウンタの値をインクリメントするカウンタ操作部と、前記マスター機器と前記スレーブ機器との間のデータ通信でのメッセージ認証に用いるメッセージ認証符号を、前記カウンタを用いて生成するＭＡＣ生成部と、がそれぞれ設けられ、
前記マスター機器には、乱数を生成する乱数生成器と、当該マスター機器の起動後における前記スレーブ機器との最初のデータ通信に先立って、前記乱数生成器により生成された乱数を前記カウンタの値として同マスター機器の前記記憶部に記憶するとともに、その記憶した値を同カウンタの初期値として前記スレーブ機器に通知する初期化処理を行う初期化処理部と、が設けられ、
前記スレーブ機器には、前記初期値の通知に応じて、その通知された初期値を前記カウンタの値として同スレーブ機器の前記記憶部に記憶する同期処理を行う同期処理部が設けられた
ことを特徴とするデータ通信システム。
【請求項２】
前記初期化処理部は、前記初期値の通知を行うタイミングを前記マスター機器が起動される毎に変更する
請求項１に記載のデータ通信システム。
【請求項３】
前記初期化処理部は、前記初期化処理の実施後に規定の再実施条件が成立したときに、同初期化処理を再実施する
請求項１又は２に記載のデータ通信システム。
【請求項４】
当該データ通信システムは、車内ネットワークを通じた車載機器間のデータ通信を行うシステムであり、前記再実施条件はエンジンの停止をその成立の要件とする
請求項３に記載のデータ通信システム。
【請求項５】
当該データ通信システムは、車内ネットワークを通じた車載機器間のデータ通信を行うシステムである
請求項１〜３のいずれか１項に記載のデータ通信システム。
【請求項６】
ネットワークに接続されるとともに、同ネットワークに接続された他のデータ通信機器とデータ通信を行うデータ通信機器において、
カウンタの値を記憶する記憶部と、
前記他のデータ通信機器とのデータ通信が行われる毎に前記カウンタの値をインクリメントするカウンタ操作部と、
乱数を生成する乱数生成器と、
当該データ通信機器の起動後における前記他のデータ通信機器との最初のデータ通信に先立って、前記乱数生成器により生成された乱数を前記カウンタの値として前記記憶部に記憶するとともに、その記憶した値を同カウンタの初期値として前記他のデータ通信機器に通知する初期化処理を行う初期化処理部と、
前記他のデータ通信機器とのデータ通信でのメッセージ認証に用いるメッセージ認証符号を前記記憶部に記憶された前記カウンタの値を用いて生成するＭＡＣ生成部と、
を備えるデータ通信機器。
【請求項７】
前記初期化処理部は、前記初期値の通知を行うタイミングを当該データ通信機器が起動される毎に変更する
請求項６に記載のデータ通信機器。
【請求項８】
前記初期化処理部は、前記初期化処理の実施後に規定の再実施条件が成立したときに、同初期化処理を再実施する
請求項６又は７に記載のデータ通信機器。
【請求項９】
当該データ通信機器は、車内ネットワークに接続されるものであって、前記再実施条件はエンジンの停止をその成立の要件とする
請求項８に記載のデータ通信機器。
【請求項１０】
当該データ通信機器は、車内ネットワークに接続される
請求項６〜８のいずれか１項に記載のデータ通信機器。
【請求項１１】
ネットワークに接続されたデータ通信機器間のデータ通信方法において、
データ通信を行う２つのデータ通信機器の一方をマスター機器とし、他方をスレーブ機器としたとき、
前記マスター機器及び前記スレーブ機器はそれぞれ、それらの間でデータ通信が行われる毎に、各々が記憶するカウンタの値をインクリメントするカウンタ操作処理を行い、
前記マスター機器は、その起動後における前記スレーブ機器との最初のデータ通信に先立って、乱数生成器により生成された乱数を前記カウンタの初期値として設定するとともに、その初期値を前記スレーブ機器に通知する初期化処理を行い、
前記スレーブ機器は、前記マスター機器から通知された前記初期値を、自身の記憶する前記カウンタの初期値に設定する同期処理を行い、
且つ前記マスター機器及び前記スレーブ機器は、互いのデータ通信に際してのメッセージ認証に用いるメッセージ認証符号を、自身が記憶する前記カウンタの値を用いて生成する
ことを特徴とするデータ通信方法。
【請求項１２】
前記初期化処理において、前記初期値の通知を行うタイミングを前記マスター機器が起動される毎に変更する
請求項１１に記載のデータ通信方法。
【請求項１３】
前記マスター機器は、前記初期化処理の実施後に規定の再実施条件が成立したときに、前記初期化処理を再実施する
請求項１１又は１２に記載のデータ通信方法。
【請求項１４】
当該データ通信方法は、車内ネットワークを通じた車載機器間のデータ通信に適用され、前記再実施条件はエンジンの停止をその成立の要件とする
請求項１３に記載のデータ通信方法。
【請求項１５】
当該データ通信方法は、車内ネットワークを通じた車載機器間のデータ通信に適用される
請求項１１〜１３のいずれか１項に記載のデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信システム、データ通信機器、及びデータ通信方法に関する。
【背景技術】
【０００２】
近年、自動車に設置される各種の電子制御ユニット（ＥＣＵ：Electronic Control Unit）を車内ネットワークに接続し、その車内ネットワークを介してＥＣＵ同士が相互にデータ通信を行うことで、車両の統合制御を実現する車内データ通信システムが実用されている。こうした車内データ通信システムでは、通信途中のデータ改ざんや送信元を偽った偽装通信への対策として、メッセージ認証が行われることがある。メッセージ認証では、通信するデータの本体（メッセージ）と、送信側、受信側が共有する共通鍵とから生成されたメッセージ認証符号（ＭＡＣ：Message Authentication Code）が用いられる。すなわち、送信側は、自身の記憶する共通鍵と送信しようとするメッセージとからＭＡＣを生成して、そのＭＡＣをメッセージと共に受信側に送る。受信側は、自身の記憶する共通鍵と受信したメッセージとからＭＡＣを生成して、その生成したＭＡＣを、送信側から送られたＭＡＣと比較することで、受信データの適否を検証する。
【０００３】
しかしながら、この対策だけでは、車内ネットワークに不正に接続された機器（以下、不正機器と記載する）によるリプライ攻撃に対して盤石とは言いがたい。リプライ攻撃は、ネットワーク上を流れるメッセージを傍受して記憶し、後にその傍受したメッセージをネットワークに再送することで、不正な動作を引き起こす攻撃である。ここで、上記のようなメッセージ認証を行っても、共通鍵が固定されていれば、メッセージをＭＡＣごと盗聴して再送すれば、正当なメッセージと認証されてしまうため、リプライ攻撃を防げない可能性がある。
【０００４】
従来、特許文献１には、データを送信する機器及びデータを受信する機器の双方が、相互のデータ通信が行われる毎にインクリメントされるカウンタの値をそれぞれ記憶し、そのカウンタの値を共通鍵としてＭＡＣを生成するデータ通信システムが記載されている。こうした場合、ＭＡＣ生成用の共通鍵の値がデータ通信毎に変更されるため、上記のようなリプライ攻撃を防ぐことができる。
【０００５】
ところで、上記のようなカウンタを用いたメッセージ認証では、データの送信側、受信側の機器の間で、カウンタの値の同期がずれてしまうと、メッセージ認証を適正に行うことができなくなってしまう。こうしたカウンタの値の同期のずれは、不揮発性メモリにカウンタを記憶させることである程度の防止が可能である。また、特許文献２に記載のように、データ通信のセッションごとに、チャレンジ・レスポンス方式でカウンタの初期値を通信相手に受け渡して、再同期を取ることでも、カウンタの値の同期のずれを防止することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−０９８７１９号公報
【特許文献２】特開２０１４−２０４４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、車内データ通信システムのように、頻繁にシステムがオフとされ、長期にわたって運用されるデータ通信システムでは、その運用期間中にデータ通信機器の一部が交換されることがある。そのため、上記のようにカウンタの値を不揮発性メモリに記憶するようにしても、機器交換が行われば、機器間のカウンタの値の同期を保てなくなってしまう。
【０００８】
一方、特許文献２の方式を採用する場合、データ通信のセッションごとにカウンタの初期値の受け渡しが行われるため、機器交換が行われても、カウンタの値の同期を保つことができる。一方、カウンタの初期値の受け渡しに際しては、その受け渡しのための通信が傍受され、受け渡すカウンタの初期値が解読される可能性がある。そのため、データ通信システムの稼働中に初期値の受け渡しが高頻度に行われる特許文献２の方式では、カウンタの値が解読されて偽装通信を許す可能性がその分高くなってしまう。
【０００９】
なお、こうした問題は、車内データ通信以外のデータ通信においても、同様に生じ得るものとなっている。
本発明は、こうした実情に鑑みてなされたものであり、その解決しようとする課題は、より安全なデータ通信を可能とするデータ通信システム、データ通信機器、及びデータ通信方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するデータ通信システムは、ネットワークに接続されたデータ通信機器間のデータ通信を行うデータ通信システムにおいて、データ通信を行う２つのデータ通信機器の一方をマスター機器とし、他方をスレーブ機器としたとき、前記マスター機器及び前記スレーブ機器には、カウンタの値を記憶する記憶部と、前記マスター機器と前記スレーブ機器との間でデータ通信が行われる毎に前記カウンタの値をインクリメントするカウンタ操作部と、前記マスター機器と前記スレーブ機器との間のデータ通信でのメッセージ認証に用いるメッセージ認証符号を、前記カウンタを用いて生成するＭＡＣ生成部と、がそれぞれ設けられ、前記マスター機器には、乱数を生成する乱数生成器と、当該マスター機器の起動後における前記スレーブ機器との最初のデータ通信に先立って、前記乱数生成器により生成された乱数を前記カウンタの値として同マスター機器の前記記憶部に記憶するとともに、その記憶した値を同カウンタの初期値として前記スレーブ機器に通知する初期化処理を行う初期化処理部と、が設けられ、前記スレーブ機器には、前記初期値の通知に応じて、その通知された初期値を前記カウンタの値として同スレーブ機器の前記記憶部に記憶する同期処理を行う同期処理部が設けられたことを特徴とする。
【００１１】
また、上記課題を解決するデータ通信機器は、ネットワークに接続されるとともに、同ネットワークに接続された他のデータ通信機器とデータ通信を行うデータ通信機器において、カウンタの値を記憶する記憶部と、前記他のデータ通信機器とのデータ通信が行われる毎に前記カウンタの値をインクリメントするカウンタ操作部と、乱数を生成する乱数生成器と、当該データ通信機器の起動後における前記他のデータ通信機器との最初のデータ通信に先立って、前記乱数生成器により生成された乱数を前記カウンタの値として前記記憶部に記憶するとともに、その記憶した値を同カウンタの初期値として前記他のデータ通信機器に通知する初期化処理を行う初期化処理部と、前記他のデータ通信機器とのデータ通信でのメッセージ認証に用いるメッセージ認証符号を前記記憶部に記憶された前記カウンタの値を用いて生成するＭＡＣ生成部と、を備えることを特徴とする。
【００１２】
更に、上記課題を解決するデータ通信方法は、ネットワークに接続されたデータ通信機器間のデータ通信方法において、データ通信を行う２つのデータ通信機器の一方をマスター機器とし、他方をスレーブ機器としたとき、前記マスター機器及び前記スレーブ機器はそれぞれ、それらの間でデータ通信が行われる毎に、各々が記憶するカウンタの値をインクリメントするカウンタ操作処理を行い、前記マスター機器は、その起動後における前記スレーブ機器との最初のデータ通信に先立って、乱数生成器により生成された乱数を前記カウンタの初期値として設定するとともに、その初期値を前記スレーブ機器に通知する初期化処理を行い、前記スレーブ機器は、前記マスター機器から通知された前記初期値を、自身の記憶する前記カウンタの初期値に設定する同期処理を行い、且つ前記マスター機器及び前記スレーブ機器は、互いのデータ通信に際してのメッセージ認証に用いるメッセージ認証符号を、自身が記憶する前記カウンタの値を用いて生成することを特徴とする。
【００１３】
これらのデータ通信システム、データ通信機器及びデータ通信方法によれば、メッセージ認証符号の生成に使用するカウンタの値をデータ通信ごとに変更しつつ、その値の同期を保つことができる。そのため、より安全なデータ通信が可能となる。
【００１４】
なお、上記システム、機器及び方法において、上記初期化処理での初期値の通知を行うタイミングは、当該データ通信機器（マスター機器）が起動される毎に変更することが望ましい。
【００１５】
また、上記システム、機器及び方法において、上記初期化処理の実施後に規定の再実施条件が成立したときに、同初期化処理を再実施することが望ましい。なお、上記システム、機器及び方法が車内ネットワークを通じた車載機器間のデータ通信に適用される場合、上記再実施条件はエンジンの停止をその成立の要件とすることが望ましい。
【００１６】
なお、上記システム、機器及び方法は、車内ネットワークを通じた車載機器間のデータ通信への適用が特に好適なものとなっている。
【発明の効果】
【００１７】
本発明のデータ通信システム、データ通信機器、及びデータ通信方法によれば、より安全なデータ通信が可能となる。
【図面の簡単な説明】
【００１８】
【図１】データ通信システムの一実施形態の構成を模式的に示す略図。
【図２】同データ通信システムにおいてデータ送信側の機器が実施するデータ送信処理のフローチャート。
【図３】同データ通信システムにおいてデータ受信側の機器が実施するデータ受信処理のフローチャート。
【図４】同データ通信システムにおいてマスター機器が実施する初期化処理のフローチャート。
【図５】同データ通信システムにおいてスレーブ機器が実施する同期処理のフローチャート。
【発明を実施するための形態】
【００１９】
以下、データ通信システムの一実施形態を、図１〜図５を参照して詳細に説明する。本実施形態のデータ通信システムは、車両に搭載された各種の電子制御ユニット（ＥＣＵ：Electronic Control Unit）間のデータ通信を行う車内データ通信システムとして構成されている。ＥＣＵとしては、エンジン制御を司るエンジンＥＣＵ、ブレーキ制御を司るブレーキＥＣＵ、パワーステアリングシステムの制御を司るパワステＥＣＵなどがある。そして、これらのＥＣＵがデータ通信機器に相当する構成となっている。なお、本実施形態のデータ通信システムが搭載される車両では、信号待ちなどの停車時にエンジンを一時停止する、いわゆるアイドリングストップ制御が行われている。
【００２０】
本実施形態のデータ通信システムでは、相互にデータ通信を行う２つのＥＣＵの一方がマスター機器として機能し、もう一方がスレーブ機器として機能するようになっている。相互にデータ通信を行う２つＥＣＵのいずれがマスター機器、スレーブ機器となるかは、それら２つのＥＣＵの関係においてのみ定まるものとなっている。よって、一つのＥＣＵが、あるＥＣＵとの関係においてはマスター機器となり、別のＥＣＵとの関係においてはスレーブ機器となることもある。
【００２１】
図１に示すように、マスター機器として機能するＥＣＵ（以下、マスター側ＥＣＵ１０と記載する）は、送信するデータの生成や送信先の決定、受信したデータの処理を行うデータ制御部１０１と、車内ネットワーク３０とのデータの送受信に係る処理を担う通信制御部１０２とを備える。また、マスター側ＥＣＵ１０は、メッセージ認証符号の値（ＭＡＣ値）の演算に用いられるカウンタの値を記憶する記憶部１０３、ＭＡＣ値を演算するＭＡＣ生成部１０４、及びデータ受信時のメッセージ認証を行うＭＡＣ照合部１０５、記憶部１０３に記憶されたカウンタの操作を行うカウンタ操作部１０６を備える。更にマスター側ＥＣＵ１０は、乱数を生成する乱数生成器１０７と、カウンタの値の初期化に係る処理を行う初期化処理部１０８とを備える。
【００２２】
一方、スレーブ機器として機能するＥＣＵ（以下、スレーブ側ＥＣＵ２０と記載する）は、マスター側ＥＣＵ１０と同様のデータ制御部２０１、通信制御部２０２、記憶部２０３、ＭＡＣ生成部２０４、ＭＡＣ照合部２０５、及びカウンタ操作部２０６を備える。さらに、スレーブ側ＥＣＵ２０には、マスター側ＥＣＵ１０とのカウンタの値の同期にかかる処理を行う同期処理部２０７が設けられている。
【００２３】
なお、記憶部１０３，２０３には、揮発性のメモリが用いられており、イグニッションスイッチがオフとされると、それらに記憶されたカウンタの値はクリアされる。ちなみに、マスター側ＥＣＵ１０、スレーブ側ＥＣＵ２０が他のＥＣＵともデータ通信を行う場合、通信を行うＥＣＵ毎に個別のカウンタが設けられるようになっている。
【００２４】
（データの送信／受信処理）
続いて、これらマスター側ＥＣＵ１０、スレーブ側ＥＣＵ２０の間でのデータ通信について説明する。なお、ここでは、マスター側ＥＣＵ１０からスレーブ側ＥＣＵ２０にデータを送信する場合を例として説明する。一方、スレーブ側ＥＣＵ２０がマスター側ＥＣＵ１０にデータを送信する場合も、データの送信側、受信側のＥＣＵが入れ替わるだけで、同様にデータ通信が行われる。なお、この場合には、かっこ内に符号が記載された部材が処理を行うことになる。
【００２５】
図２に、マスター側ＥＣＵ１０、スレーブ側ＥＣＵ２０間のデータ通信に際して、データを送信する側のＥＣＵにおいて実施されるデータ送信処理のフローチャートを示す。本処理は、データ制御部１０１（２０１）によるデータの送信の要求に応じて実施される。
【００２６】
データ送信に際しては、まずステップＳ１００において、ＭＡＣ生成部１０４（２０４）が、当該ＥＣＵの記憶部１０３（２０３）に記憶されたカウンタを読み込む。そして、ステップＳ１０１において、ＭＡＣ生成部１０４（２０４）は、その読み込んだカウンタを共通鍵として用いて、送信するデータのＭＡＣの値（ＭＡＣ値）を演算する。ＭＡＣ値は、例えば送信データとカウンタの値とを合成したデータに対してのハッシュを演算することで行われる。
【００２７】
続いて、ステップＳ１０２において、通信制御部１０２（２０２）は、ＭＡＣ生成部１０４（２０４）により演算されたＭＡＣ値を送信データと共に車内ネットワーク３０に送信する。また、続くステップＳ１０３において、カウンタ操作部１０６（２０６）が、記憶部１０３（２０３）に記憶されたカウンタをインクリメントするカウンタ操作処理を行う。具体的には、このときのカウンタ操作部１０６（２０６）は、記憶部１０３（２０３）に記憶されたカウンタの値に「１」を加算する。そして、以上をもって、今回のデータ送信処理を終了する。
【００２８】
図３に、データを受信する側のＥＣＵにおいて実施されるデータ送信処理のフローチャートを示す。本処理は、通信制御部２０２（１０２）による当該ＥＣＵに対するデータの受信に応じて実施される。
【００２９】
データ受信に際しては、まずステップＳ２００において、ＭＡＣ生成部２０４（１０４）が、記憶部２０３（１０３）に記憶されたカウンタを読み込む。続いて、ステップＳ２０１において、ＭＡＣ生成部２０４（１０４）は、その読み込んだカウンタを共通鍵として用いて、受信データのＭＡＣ値（照合用ＭＡＣ値）を演算する。このときのＭＡＣ値の演算は、データ送信処理でのステップＳ１０１と同一の演算ロジックで行われる。そして、ステップＳ２０２において、ＭＡＣ照合部２０５（１０５）は、ここで演算したＭＡＣ値が受信データに付されたＭＡＣ値と一致するか否かを判定する。
【００３０】
ここで、両者のＭＡＣ値が一致しない場合（Ｓ２０２：ＮＯ）、ステップＳ２０５において、ＭＡＣ照合部２０５（１０５）が受信データを不正なデータとして破棄した後、今回のデータ受信処理を終了する。一方、両者のＭＡＣ値が一致した場合（Ｓ２０２：ＹＥＳ）、ステップＳ２０３において、正当なデータとして受信データがデータ制御部２０１（１０１）に受け渡されて処理される。そして、ステップＳ２０４において、カウンタ操作部２０６（１０６）が、記憶部２０３に記憶されたカウンタの値をインクリメントするカウンタ操作処理を行った後、今回のデータ受信処理を終了する。
【００３１】
（カウンタの初期化／同期処理）
以上のように、本実施形態では、マスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０がそれぞれの記憶部１０３，２０３に記憶するカウンタを共通鍵として用いてメッセージを行うようにしている。カウンタは、データ通信を行うごとにインクリメントされ、その値が変化するため、傍受したＭＡＣをそのまま再送しても、メッセージ認証を通すことはできず、リプライ攻撃は無効となる。ただし、こうした態様でメッセージ認証を行うには、マスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０がそれぞれの記憶部１０３，２０３に記憶するカウンタの同期を保証する必要がある。本実施形態では、以下の初期化処理及び同期処理をマスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０がそれぞれ実施することで、両ＥＣＵのカウンタを同期させている。
【００３２】
図４に、初期化処理のフローチャートを示す。本処理は、マスター側ＥＣＵ１０の初期化処理部１０８により、車内ネットワークシステムの稼働中に周期的に繰り返し実施される。
【００３３】
本処理が開始されると、まずステップＳ３００において、初期化処理部１０８は、初期化実施時期であるか否かを判定する。本実施形態では、以下の（イ）、（ロ）が初期化実施時期とされている。なお、下記の待機時間は、乱数生成器１０７により生成された乱数に応じて決定される。なお、下記（イ）は、マスター側ＥＣＵ１０の起動後における最初の初期化処理の実施時期を、下記（ロ）は、最初の初期化処理の実施後における同初期化処理の再実施の時期をそれぞれ示している。すなわち、本実施形態において下記（ロ）は、初期化処理の再実施条件となっている。
【００３４】
（イ）イグニッションスイッチのオン後、ランダムに決定された待機時間が経過したとき。
（ロ）アイドリングストップ制御によるエンジンの一時停止中であり、かつエンジン停止から、ランダムに決定された待機時間が経過したとき。
【００３５】
ここで、初期化実施時期でなければ（Ｓ３００：ＮＯ）、初期化処理部１０８は、そのまま今回の処理を終了する。一方、初期化実施時期であれば（Ｓ３００：ＹＥＳ）、初期化処理部１０８は、ステップＳ３０１において、乱数生成器１０７から乱数を取得し、続くステップＳ３０２において、その乱数の値をカウンタとして記憶部１０３に記憶する。そして、初期化処理部１０８は、その乱数の値を暗号化したものを初期化データとしてスレーブ側ＥＣＵ２０に送信した後、今回の本処理を終了する。なお、このときの暗号化は、マスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０が共有する共通鍵を用いて行われる。
【００３６】
図５に、同期処理のフローチャートを示す。本処理は、スレーブ側ＥＣＵ２０に設けられた同期処理部２０７により、車内ネットワークシステムの稼働中に周期的に繰り返し実施される。
【００３７】
本処理が開始されると、同期処理部２０７は、まずステップＳ４００において、上述の初期化データを受信したか否かを判定する。ここで、初期化データを受信していなければ（Ｓ４００：ＮＯ）、同期処理部２０７は、そのまま今回の本ルーチンの処理を終了する。一方、初期化データを受信していれば（Ｓ４００：ＹＥＳ）、同期処理部２０７は、ステップＳ４０１においてその受信した初期化データを復号する。そして同期処理部２０７は、ステップＳ４０２においてその復号により得られた値を、すなわち、マスター側ＥＣＵ１０から通知されたカウンタの初期値を、カウンタとして記憶部２０３に記憶した後、今回の本ルーチンの処理を終了する。
【００３８】
（作用）
イグニッションスイッチがオンとされてマスター側ＥＣＵ１０が起動されると、ランダムに決定された待機時間の経過後に、初期化処理部１０８により初期化処理が実施される。そして、その初期化処理により、乱数生成器１０７により生成された乱数が、カウンタの値として記憶部１０３に記憶され、更にその値がカウンタの初期値としてスレーブ側ＥＣＵ２０に通知される。一方、スレーブ側ＥＣＵ２０では、そうした初期値の通知に応じて同期処理部２０７により同期処理が実施され、通知された初期値がカウンタの値として記憶部２０３に記憶される。以上により、マスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０の両記憶部１０３，２０３に記憶されたカウンタは、マスター側ＥＣＵ１０の起動後におけるスレーブ側ＥＣＵ２０との最初のデータ通信に先立って、ランダムに決定された同一の値に設定される。
【００３９】
マスター側ＥＣＵ１０及びスレーブ側ＥＣＵ２０の間のデータ通信に際しては、両記憶部１０３，２０３に記憶されたカウンタの値を用いて演算されたＭＡＣ値を用いてメッセージ認証が行われる。さらに、両記憶部１０３，２０３に記憶されたカウンタの値は、データ通信後にカウンタ操作部１０６，２０６によって、それぞれインクリメントされる。そのため、両記憶部１０３，２０３に記憶されたカウンタの値は、データ通信が行われるごとに同期を保ちながら変更されるようになる。
【００４０】
一方、データ通信開始後にも、車両が信号待ちなどで一定の時間以上停止して、エンジンが一時停止されると、初期化処理が再び実施され、両記憶部１０３，２０３に記憶されたカウンタの値の再初期化が行われる。すなわち、マスター側ＥＣＵ１０において、ランダムに決定された値がカウンタの値として再設定されるとともに、その値がスレーブ側ＥＣＵ２０に受け渡されて、両記憶部１０３，２０３に記憶されたカウンタの値の同期が取られる。
【００４１】
ちなみに、こうした本実施形態では、マスター側ＥＣＵ１０からスレーブ側ＥＣＵ２０へのカウンタの初期値の受け渡しに際して、初期値の暗号化に使用される共通鍵は固定されている。そのため、暗号化した初期化データからの初期値の解読は、ＭＡＣ値からのカウンタの値の解読よりは容易となっている。すなわち、このデータ通信システムでは、初期値の受け渡しの直後の期間が、サイバー攻撃を最も受ける可能性が高くなっている。その点、本実施形態では、初期値の受け渡しは、その直後にサイバー攻撃による車両の不正動作が万一発生しても、その影響が比較的小さい、車両及びエンジンの停止期間に行われるようになっている。
【００４２】
以上の本実施形態のデータ通信システムによれば、以下の効果を奏することができる。
（１）データ通信ごとに変化するカウンタの値を用いてメッセージ認証を行っているため、より安全なデータ通信が可能となる。
【００４３】
（２）ＥＣＵが交換されても、カウンタの値の同期を保つことができるため、運用期間が長い車両のデータ通信システムにも採用し易い。
（３）カウンタの初期値の受け渡しを、車両及びエンジンの停止期間に行っているため、万一、初期値が読み取られて、サイバー攻撃による不正動作を許したとしても、その影響を小さく抑えられる。
【００４４】
（４）初期値の受け渡しを行うタイミングをランダムに決定しているため、その受け渡しのための通信の傍受をより困難とすることができる。
（５）マスター側ＥＣＵ１０の起動直後に加え、再実施条件の成立時にも、カウンタの値がランダムに変更されるため、データ通信の偽装をより困難とすることができる。
【００４５】
なお、上記実施形態は、以下のように変更して実施することもできる。
・上記実施形態では、初期値の受け渡し、すなわちスレーブ側ＥＣＵ２０への初期化データの送信を行う時期をランダムに決定していたが、その時期を固定するようにしてもよい。
【００４６】
・上記実施形態では、アイドリングストップ制御によるエンジンの一時停止中にカウンタの初期化処理を再実施するようにしていたが、例えば、一定の期間ごとに初期化処理を繰り返し実施するようにするなど、そうした初期化処理の再実施条件を任意に変更してもよい。
【００４７】
・上記実施形態では、データ通信が行われるごとに、カウンタの値を１ずつ加増していたが、「１」以外の任意の数ずつ、カウンタの値を加増するようにしてもよい。
・上記実施形態では、マスター側ＥＣＵ１０の起動直後以外にも、カウンタの初期化処理を実施するようにしていたが、マスター側ＥＣＵ１０の起動直後のみに初期化処理を行うようにしてもよい。
【００４８】
・上記実施形態では、送信／受信データとカウンタの値とを合成したデータのハッシュを演算することでＭＡＣ値を演算していたが、カウンタの値を共通鍵として用いる演算ロジックであれば、それ以外の演算ロジックを採用してもよい。
【００４９】
・上記実施形態のデータ通信システムは、車内データ通信システム以外のデータ通信システムにも、同様に適用することができる。
【符号の説明】
【００５０】
１０…マスター側ＥＣＵ、２０…スレーブ側ＥＣＵ、３０…車内ネットワーク、１０１…データ制御部、１０２…通信制御部、１０３…記憶部、１０４…ＭＡＣ生成部、１０５…ＭＡＣ照合部、１０６…カウンタ操作部、１０７…乱数生成器、１０８…初期化処理部、２０１…データ制御部、２０２…通信制御部、２０３…記憶部、２０４…ＭＡＣ生成部、２０５…ＭＡＣ照合部、２０６…カウンタ操作部、２０７…同期処理部。
【図１】
2017034555.tif 000003
【図２】
2017034555.tif 000004
【図３】
2017034555.tif 000005
【図４】
2017034555.tif 000006
【図５】
2017034555.tif 000007