JP2018078473A - 通信システム - Google Patents

通信システム Download PDF

Info

Publication number
JP2018078473A
JP2018078473A JP2016219620A JP2016219620A JP2018078473A JP 2018078473 A JP2018078473 A JP 2018078473A JP 2016219620 A JP2016219620 A JP 2016219620A JP 2016219620 A JP2016219620 A JP 2016219620A JP 2018078473 A JP2018078473 A JP 2018078473A
Authority
JP
Japan
Prior art keywords
message
communication
information
communication message
authenticator
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.)
Granted
Application number
JP2016219620A
Other languages
English (en)
Other versions
JP6683105B2 (ja
Inventor
将秀 坂野
Masahide Sakano
将秀 坂野
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
Original Assignee
Toyota Motor 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 filed Critical Toyota Motor Corp
Priority to JP2016219620A priority Critical patent/JP6683105B2/ja
Publication of JP2018078473A publication Critical patent/JP2018078473A/ja
Application granted granted Critical
Publication of JP6683105B2 publication Critical patent/JP6683105B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】時変パラメータを利用して通信メッセージの信頼性を確保する場合であれ、通信メッセージの正/不正を適切に判断することができる通信システムを提供する。【解決手段】ゲートウェイ10は上位ビットを含む同期用メッセージMAを送信し、第1ECU21及び第3ECU23は同期用メッセージMAから上位ビットを取得する。第1ECU21は、記憶管理する下位ビットと取得した上位ビットとから再構成したメッセージカウンタを利用して生成した認証子を含む通信メッセージMBを送信する。第3ECU23は、通信メッセージMBから再構成したメッセージカウンタを利用して再生成した認証子と、同通信メッセージMBに含まれる認証子との比較に基づいて受信した通信メッセージMBを認証するが、同期用メッセージMAが受信できていないことに基づいて第1ECU21は通信メッセージを送信しない又は第3ECU23は通信メッセージを認証しない。【選択図】図1

Description

本発明は、車載された複数の電子制御装置がネットワーク接続されている通信システムに関する。
周知のように、車両に搭載された複数の電子制御装置(ECU)は、それぞれが同じネットワークに接続されていて、それらの有する情報(車両情報)が相互に送受信可能である車両用の通信システムを構成していることが多い。こうした通信システムの一例が特許文献1に記載されている。
特許文献1に記載されている通信システムは、データを送信する送信端末と、その送信端末からデータを受信する受信端末とを備える。送信端末は、データ取得部と、受信部と、鍵取得部と、受信部からチャレンジ情報を受信し、時変パラメータを管理する時変パラメータ管理部とを有する。また、送信端末は、受信した鍵情報、チャレンジ情報及び時変パラメータを用いて受信した通信データを変換して変換データを生成するデータ変換部と、データ変換部から変換データを受信し、該変換データを受信端末へ送信する送信部とを有する。一方、受信端末は、チャレンジ情報を生成するチャレンジ生成部と、チャレンジ情報を送信端末へ送信する送信部と、送信端末から変換データを受信する受信部と、送信端末における鍵情報と同一の鍵情報を取得する鍵取得部とを有する。また、受信端末は、受信した変換データの新規性を判断する時変パラメータ判断部と、受信した鍵情報、チャレンジ情報及び時変パラメータを用いて、受信した変換データが正しく変換されているか否かを認証し、その認証結果を時変パラメータ判断部へ送信するデータ認証部とを有する。そして、時変パラメータ判断部は、データ認証部から受信した認証結果に基づいて変換データの新規性を判断する。
特開2011−66703号公報
特許文献1に記載のシステムによれば、通信メッセージに含まれている時変パラメータは、時変パラメータを適切に変更できない攻撃者による正規の送信者へのなりすましを抑制して、通信メッセージの信頼性を向上させるようになる。
このように、時変パラメータを用いることで通信メッセージの信頼性が高められるようになるが、電源投入後やリセット後等であって時変パラメータが同期されるまでの間、受信装置と送信装置との間でそれぞれの記憶している時変パラメータが相違しているおそれがある。記憶している時変パラメータが相違しているような場合、受信装置は、送信装置が送信した正規の通信メッセージであっても、それを認証できないのみならず、不正であると判定してしまうことになる。
本発明は、このような実情に鑑みてなされたものであって、その目的は、時変パラメータを利用して通信メッセージの信頼性を確保する場合であれ、通信メッセージの正/不正を適切に判断することができる通信システムを提供することにある。
以下、上記課題を解決するための手段及びその作用効果を記載する。
上記目的を達成するために通信システムは、第1の情報と第2の情報とが組み合わされてなる管理コードのうちの前記第1の情報を記憶するとともに、記憶する前記第1の情報を前記第2の情報が複数回更新されることに基づいて1回更新するように管理する管理装置と、前記管理装置に通信ネットワークを介して通信可能に接続された受信装置及び送信装置とを備え、前記管理装置は、前記第1の情報を含む通信メッセージを送信し、前記受信装置及び送信装置は、前記管理装置が送信した前記通信メッセージを受信する都度、前記受信した通信メッセージに含まれる前記第1の情報を保持するものであり、前記送信装置は、前記管理コードのうちの前記第2の情報を管理するものであり、通信データと、前記保持する前記第1の情報及び前記管理する第2の情報を組み合わせてなる前記管理コードとから認証子を生成して、前記通信データと、前記管理する第2の情報と、前記生成した認証子とを含み、前記保持する第1の情報を含まない通信メッセージを生成して送信するとともに、通信メッセージの生成後に前記管理する第2の情報の値を更新し、前記受信装置は、前記送信装置の送信した前記通信メッセージを受信して、前記受信した通信メッセージに含まれる認証子と、前記受信した通信メッセージに基づいて再生成した認証子との比較に基づいて前記受信した通信メッセージを認証するものであって、前記受信装置は、前記保持する第1の情報及び前記送信装置の送信した通信メッセージから取得した前記第2の情報を組み合わせて管理コードを再構成し、前記送信装置の送信した通信メッセージから取得した通信データと、前記再構成した管理コードとから前記再生成した認証子を取得するものであり、前記送信装置は、前記管理装置の送信した前記第1の情報を含む通信メッセージが受信できていないことに基づいて通信メッセージを送信しないこと、及び、前記受信装置は、前記管理装置の送信した前記第1の情報を含む通信メッセージが受信できていないことに基づいて受信した通信メッセージを認証しないことの少なくとも一方を行うことを特徴とする。
通信の信頼性をより高めるためには管理コードを一度きりの値とすることが望ましいが、通信システムの使用期間に渡って管理コードを一度きりの値としようとすると管理コードに要する情報量が大きくなってしまう。そして、この管理コードを通信メッセージに含めるとなると、通信メッセージにおける管理コードの占有量が多くなり、送信したい通信内容であるメッセージデータに割り当てることのできる容量が少なくなってしまうといった問題がある。
この点、送信装置が送信する通信メッセージには管理コードのうちの第2の情報だけを含むようにすることで通信データのために多くの領域を確保することができる。
また、管理コードのうちの第1の情報は、管理装置によって管理されることから、送信装置及び受信装置のそれぞれの間で同期されるようにもなる。つまり、受信装置は、管理装置から送信された第1の情報と、送信装置から送信された通信メッセージに含まれる第2の情報とを組み合わせることで、送信装置で認証子の生成に利用された管理コードを再構成することができる。すなわち、管理コードの大きさを信頼性の確保に必要とされるサイズにしたとしても、通信メッセージの格納に要する容量を少なく抑えて、通信データのための容量の減少を抑制することができる。
また、管理装置から送信された管理コードのうちの第1の情報が受信されることによって、受信した管理コードのうちの第1の情報に受信装置及び送信装置が記憶している管理コードのうちの第1の情報が更新される、すなわち同期される。これにより、管理コードが第1の情報と第2の情報とに2分割されたとしても、通信メッセージを管理コードによって認証することが可能になる。
また、受信装置及び送信装置に記憶されている管理コードのうちの第1の情報を同期させることができるので、受信装置や送信装置は、記憶している管理コードのうちの第1の情報がリセット等により非同期に初期化されたとしても、その記憶している管理コードが同期されて正常な値に設定し直されることで、認証を正常に行うことが可能にもなる。
そして、このような構成によれば、送信装置は、第1の情報を含む通信メッセージが受信できていないことに基づいて通信メッセージを送信しないこと、及び、受信装置は、第1の情報を含む通信メッセージが受信できていないことに基づいて受信した通信メッセージを認証しないことの少なくとも一方を行う。つまり、管理コードの第1の情報が送信装置及び受信装置のそれらの間で同期されていないとき、通信メッセージが送信されない、又は、認証されないようになる。これにより、時変パラメータを利用して通信メッセージの信頼性を確保する場合であっても、管理コードの上位ビットが受信されていないことに起因して通信メッセージに対して不正であるとの判定がなされることが防止されて、通信メッセージの正/不正が適切に判断されるようになる。
通信システムを具体化した一実施形態について、その概略構成を示すブロック図。 同実施形態においてゲートウェイで実行される処理の概要を模式的に示す模式図。 同実施形態における電子制御装置(ECU)の概略構成を模式的に示す模式図。 同実施形態において電子制御装置(ECU)が送信時に実行する処理の概要を模式的に示す模式図。 同実施形態において電子制御装置(ECU)が受信時に実行する処理の概要を模式的に示す模式図。 同実施形態においてメッセージカウンタが同期されるときのゲートウェイ側の手順を示すフローチャート。 同実施形態においてメッセージカウンタが同期されるときのECU側の手順を示すフローチャート。 同実施形態において電子制御装置(ECU)が通信メッセージの送信処理を示すフローチャート。 同実施形態において電子制御装置(ECU)が通信メッセージの受信処理を示すフローチャート。
図1を参照して、通信システムを具体化した一実施形態について説明する。本実施形態の通信システムは、図示しない車両に搭載された車載ネットワークに適用された通信システムである。
図1に示すように、通信システムは、送信装置及び受信装置の少なくとも一方としての第1〜第4電子制御装置(ECU)21〜24と、第1及び第2ECU21,22が通信可能に接続される通信用バスL1と、第3及び第4ECU23,24が通信可能に接続される通信用バスL2とを有している。本実施形態では、通信用バスL1と通信用バスL2とが通信ネットワークを構成する。また、通信システムは、通信用バスL1と通信用バスL2とに通信可能に接続される管理装置としてのゲートウェイ10を備えている。ゲートウェイ10は、通信用バスL1と通信用バスL2との間で通信メッセージMBを相互に転送(中継)することができる。よって、通信用バスL1に接続された第1及び第2ECU21,22と、通信用バスL2に接続された第3及び第4ECU23,24とは、ゲートウェイ10を介して、相互に通信メッセージMBの送受信が可能である。
通信システムは、通信プロトコルとして、例えば、CAN(コントローラエリアネットワーク)プロトコルが採用されている。また、通信システムは、通信経路の一部に無線通信を含んでいたり、ゲートウェイ等を介してその他のネットワークを経由する経路が含まれていたりしてもよい。
CANプロトコルには、通信メッセージの構造であるフレームが規定されており、そのフレームには、通信メッセージの種類を示す識別子としての「メッセージID」の格納領域、ユーザが指定したデータである「メッセージデータ」の格納領域である「データフィールド」等が設けられている。「メッセージID」は、通信メッセージの種類毎に特定の値が定められており、各ECUは、送信する通信メッセージに、その種類に対応する「メッセージID」を付与して送信し、受信した通信メッセージの種類を「メッセージID」に基づいて判断する。この通信システムでは、ある1つの「メッセージID」を通信メッセージに付与して送信することができるのは、定められた一つのECUに限定されている。また、「メッセージデータ」が格納される領域である「データフィールド」は、0〜64ビット(8ビット×0〜8バイト)のうちのいずれかの長さで設定される。
ゲートウェイ10は、演算装置(CPU)や記憶装置を有するマイクロコンピュータを含み構成されている。ゲートウェイ10には、プログラムの演算処理を実行する演算装置と、そのプログラムやデータ等が記憶された読み出し専用メモリ(ROM)と、演算装置の演算結果が一時的に記憶される揮発性メモリ(RAM)とが設けられている。これにより、ゲートウェイ10は、記憶装置に保持されているプログラムを演算装置に読み込み、実行することで、所定の機能を提供する。例えば、ゲートウェイ10は、2つの通信用バスL1,L2の間で通信メッセージMBを転送する処理や、管理コードとしてのメッセージカウンタMC(図2参照)を管理する処理を行う。また、ゲートウェイ10は、バッテリから常に電力が供給されることにより設定値や演算値を記憶保持するバックアップメモリを備えている。
ゲートウェイ10は、メッセージカウンタMC(図2参照)を管理するコード管理部11と、メッセージカウンタMCの一部を送信する送信部12と、ゲートウェイ10が接続された各通信用バスL1,L2との間で各通信メッセージMBを授受する通信I/F部13とを備える。なお、コード管理部11及び送信部12の各機能は、ゲートウェイ10によるプログラムの演算処理により実現される。
通信I/F13は、通信用バスL1,L2との間でCANプロトコルに基づく通信メッセージMBを送受信する。また、通信I/F13は、送信部12等との間で通信メッセージMBを授受する。これにより、ゲートウェイ10は、自身が出力する同期用メッセージMAを通信用バスL1,L2に送信可能であるとともに、通信用バスL1,L2を介して他のECUが送信する通信メッセージMBを取得することができる。なお、本実施形態では、同期用メッセージMAは、CANプロトコルに基づく通常の通信メッセージのうちで同期用メッセージであることを示すメッセージIDが付与されたものである。よって、同期用メッセージMAは、通常の通信メッセージと同様に、各通信用バスL1,L2に接続されているECU21〜24に対してブロードキャストで送信される。
図2を参照して、コード管理部11について説明する。
コード管理部11は、ゲートウェイ10のバックアップメモリに記憶されるメッセージカウンタMCを管理する。なお、コード管理部11は、メッセージカウンタMCのうちの「上位ビットMCH」を記憶、管理する。また、コード管理部11は、メッセージカウンタMCのうちの「下位ビットMCL」の最新の値を通信メッセージMBから取得して、その値を監視するために記憶する。以下では、メッセージカウンタMCの全長については、単にメッセージカウンタMCと記載する。
メッセージカウンタMCは、「メッセージID」毎に管理されているカウンタであり、対応する「メッセージID」を有する通信メッセージが新たに生成されることに応じて、その値が更新されるカウンタである。つまり、「メッセージID」毎に対応するメッセージカウンタMCが更新される。本実施形態では、メッセージカウンタMCは、1ずつ増加させられるカウンタである。なお、以下では、1つの「メッセージID」と、これに対応するメッセージカウンタMCとを例にして説明し、説明の便宜上、その他の「メッセージID」とそれに対応するメッセージカウンタMCとの例についての説明は割愛する。
本実施形態では、メッセージカウンタMCを第1の情報としての「上位ビットMCH」と第2の情報としての「下位ビットMCL」とに2分割する。そして、「上位ビットMCH」をゲートウェイ10で記憶、管理及び送信し、「下位ビットMCL」を各ECU21〜24で記憶、管理及び送信するようにしている。また、メッセージカウンタMCは、「下位ビットMCL」が「0」から最大値まで変化したことに応じて、ゲートウェイ10が「上位ビットMCH」の値を「1」だけ増加させるとともに、その「上位ビットMCH」の増加に応じてECUが「下位ビットMCL」を初期値「0」に設定することを繰り返す。これにより、メッセージカウンタMCは、二度と同じ値にならないようになっている。なお、ゲートウェイ10は、メッセージカウンタMCを記憶する領域として確保された記憶領域にメッセージカウンタMCのうちの「上位ビットMCH」を記憶して、管理する。このとき、ゲートウェイ10は、メッセージカウンタMCのうちの「下位ビットMCL」を上記確保した記憶領域の下位ビットに対応する位置に入れて管理してもよいし、上記確保したメッセージカウンタMCを記憶する記憶領域とは別に確保した記憶領域にメッセージカウンタMCと分けて格納して、管理してもよい。つまり、ゲートウェイ10は、メッセージカウンタMCのうちの「下位ビットMCL」に対応するビットに、通信メッセージMBで受信される「下位ビットMCL」を入れてもよいし、所定の値を設定しておいてもよいし、「下位ビットMCL」に対応するビットを含まないかたちで管理してもよい。
メッセージカウンタMCは、通信メッセージMBの信頼性を担保できる情報量、すなわちビット長(ビット数)に設定される。例えば、メッセージカウンタMCを単調増加させつつ、二度と同じ値で使用することがないようにすることで通信メッセージMBの信頼性を担保する場合、車両寿命と通信メッセージMBの送信頻度とから、メッセージカウンタMCの長さ(ビット数)は、計算上、8バイトの長さが必要である。この8バイトの長さは、「データフィールド」の最大長64ビット(=8バイト)と同じ長さであるため、もし、メッセージカウンタMCを通信メッセージMBに格納して送信しようとすると、通信メッセージMBにユーザが指定したデータである「メッセージデータ」が格納できないことになってしまう。そこで、上述のように、メッセージカウンタMCを「上位ビットMCH」と「下位ビットMCL」とに2分割にして管理する。
詳述すると、コード管理部11は、メッセージカウンタMCのうちの「上位ビットMCH」を管理する。例えば、本実施形態では、メッセージカウンタMCが8バイト長である場合、「上位ビットMCH」を7バイト(=56ビット)長、「下位ビットMCL」を1バイト(=8ビット)長とする。この場合「下位ビットMCL」の最大値は「255」になる。
コード管理部11は、メッセージカウンタMCが二度と同じ値にならないように、メッセージカウンタMCのうちの「上位ビットMCH」を更新し、管理する。具体的には、コード管理部11は、メッセージカウンタMCのうちの「上位ビットMCH」を、更新タイミングで単調増加させることで更新する。更新タイミングは、メッセージカウンタMCのうちの「下位ビットMCL」が最大値になったタイミング、すなわち、「下位ビットMCL」の有する全てのパターンが使い切られるタイミングである。例えば、コード管理部11は、第1ECU21が送信する通信メッセージMBを受信することでメッセージカウンタMCのうちの「下位ビットMCL」を監視し、この「下位ビットMCL」が最大値以上になったときを更新タイミングにする。
コード管理部11は、メッセージカウンタMCのうちの「上位ビットMCH」を更新することに応じて、メッセージカウンタMCのうちの「上位ビットMCH」を送信部12に伝達する。
送信部12は、メッセージカウンタMCのうちの「上位ビットMCH」から「認証子AC1」を生成するとともに、生成した「認証子AC1」とメッセージカウンタMCのうちの「上位ビットMCH」とを含む同期用メッセージMAを生成する。同期用メッセージMAは、「データフィールド」にメッセージカウンタMCのうちの「上位ビットMCH」と、メッセージカウンタMCのうちの「上位ビットMCH」を暗号化した「認証子AC1」とを格納した通信メッセージである。そして、送信部12は、通信I/F13を介して、同期用メッセージMAを、CANプロトコルにおいて優先度の高いメッセージIDを有する通信メッセージとして、第1〜第4ECU21〜24へ送信する。なお、優先度の高いメッセージIDは、同期用メッセージMAのために予め設定されているものとする。そして、同期用メッセージMAは、ゲートウェイ10で管理しているメッセージカウンタMCのうちの「上位ビットMCH」を第1〜第4ECU21〜24へそれぞれ通知し、各ECU21〜24で管理されているメッセージカウンタMCのうちの「上位ビットMCH」を同期させる。
図2に示すように、送信部12は、暗号化エンジン111を備えている。暗号化エンジン111は、暗号鍵EKが設定されており、コード管理部11からメッセージカウンタMCのうちの「上位ビットMCH」を入力し、この入力したメッセージカウンタMCのうちの「上位ビットMCH」を暗号鍵EKで暗号化することで「認証子AC1」を生成する。そして、送信部12は、メッセージカウンタMCのうちの「上位ビットMCH」と、「認証子AC1」とから同期用メッセージMAを生成する。なお、暗号鍵EKは、耐タンパメモリ等を用いて外部から取得不可能であればなおよい。
また、送信部12は、同期用メッセージMAを、メッセージカウンタMCのうちの「上位ビットMCH」が更新されることに応じて、全てのECUに対して送信する。つまり、ゲートウェイ10は、メッセージカウンタMCのうちの「上位ビットMCH」を送信する。
図3及び図4を参照して、第1〜第4ECU21〜24について説明する。なお、第1〜第4ECU21〜24は、いずれも同様の構成を有しているので、ここでは第1ECU21について詳しく説明し、その他のECUの構成についての説明は割愛する。
第1ECU21は、演算装置(CPU)や記憶装置を有するマイクロコンピュータを含み構成されている。第1ECU21には、プログラムの演算処理を実行する演算装置と、そのプログラムやデータ等が記憶された読み出し専用メモリ(ROM)と、演算装置の演算結果が一時的に記憶される揮発性メモリ(RAM)とが設けられている。これにより、第1ECU21は、記憶装置に保持されているプログラムを演算装置に読み込み、実行することで、所定の機能を提供する。例えば、第1ECU21は、通信用バスL1との間で通信メッセージMBを送受信する処理や同期用メッセージMAを受信する処理、管理コードとしてのメッセージカウンタMCを管理する処理を行う。また、第1ECU21は、バッテリから常に電力が供給されることにより設定値や演算値を記憶保持するバックアップメモリを備えている。
図3及び図4に示すように、第1ECU21は、CANプロトコル用の通信I/F30と、通信メッセージが一時的に格納される複数のMBOX(MessageBox)31a,31b,31cと、送信する通信メッセージMB等に含まれる「認証子AC2」を生成する認証子生成部33とを備える。また、第1ECU21は、認証子を含み送受信される通信メッセージMBを処理するメッセージ処理部34と、「メッセージデータDT」を処理する情報処理部32と、通信メッセージMBの送受信の可否を「上位ビットMCH」の更新状態に応じて判定する送受信判定部36とを備える。なお、認証子生成部33、メッセージ処理部34及び送受信判定部36の各機能は、第1ECU21によるプログラムの演算処理により実現される。
通信I/F部30は、通信用バスL1を介して同期用メッセージMAを受信したり、通信メッセージMBを送受信したりする。
複数のMBOX31a,31b,31cは、通信I/F部30によって受信された通信メッセージMBを中継する。また、複数のMBOX31a,31b,31cは、通信I/F部30から送信する通信メッセージMBを中継する。例えば、MBOX31aは、通信I/F部30と情報処理部32との間で認証子を含まない通信メッセージを中継する。また、MBOX31bは、通信I/F部30と認証子生成部33との間で通信メッセージを中継する。MBOX31bは、特に、メッセージカウンタMCの管理に必要である同期用メッセージMAを中継する。MBOX31cは、通信I/F部30とメッセージ処理部34との間で通信メッセージを中継する。MBOX31cは、特に、通信メッセージMBを中継等する。
情報処理部32は、第1ECU21が受信した通信メッセージに含まれる「メッセージデータDT」を利用する各種アプリケーションを実行する。また、情報処理部32は、各種アプリケーションが出力したデータを外部へ送信する「メッセージデータDT」として出力する。
認証子生成部33は、「メッセージデータDT」と「メッセージカウンタMC」とから「認証子AC2」を生成する。認証子生成部33は、メッセージカウンタMCのうちの「上位ビットMCH」を保持しているとともに、「下位ビットMCL」を記憶及び管理している。なお、認証子生成部33は、メッセージカウンタMCのうちの「上位ビットMCH」と「下位ビットMCL」とを1つだけ確保されたメッセージカウンタMCの記憶領域の対応するビット位置に記憶するようにしてもよいし、「上位ビットMCH」と「下位ビットMCL」とをそれぞれ別々に確保された記憶領域に記憶してもよい。
送受信判定部36は、認証子生成部33とメッセージ処理部34との間で授受した情報に基づいて送受信の可否判断を行う。送受信判定部36は、認証子生成部33に記憶されている「上位ビットMCH」とその状態を取得し、送受信の可否結果を出力する。また、送受信判定部36は、メッセージ処理部34から「通信メッセージMB」又は「メッセージデータDT」を取得し、送受信の可否結果を出力する。
詳述すると、送受信判定部36は、「通信メッセージMB」又は「メッセージデータDT」に対応して認証子生成部33に記憶されている「上位ビットMCH」に基づいて、通信メッセージMBの送信の可否、又は、受信の可否について判定し、この判定した結果をメッセージ処理部34に出力する。よって、送受信判定部36は、送信の可否及び受信の可否の判定をするに際し、認証子生成部33に記憶されている「上位ビットMCH」の状態を判定する。この判定で「上位ビットMCH」の状態が適切であれば送信や受信が「可」であると判定し、状態が適切でなければ送信や受信が「否」であると判定する。状態が適切であることは、「上位ビットMCH」が定期的に更新されている状態や、先の更新から所定の期間以内である状態等であることに基づき判断される。逆に、状態が適切ではないことは、「上位ビットMCH」が初期値のままである状態や、「上位ビットMCH」の更新が停止されている状態や、先の更新から所定の期間を超えても更新されない状態等であることに基づいて判断される。送受信判定部36は、認証子生成部33が認証子を認証する必要があるときに送受信の可否の判定を行い、その判定結果を認証子生成部33やメッセージ処理部34に出力することができる。
メッセージ処理部34は、送受信される通信メッセージMBの信頼性を以下のようにして確保する。
通信メッセージMBを受信したとき、メッセージ処理部34は、MBOX31cから通信メッセージMBを入力し、この入力した通信メッセージMBの受信可否の判定及び認証処理をする。そしてメッセージ処理部34は、受信「可」の判定でのもと認証した通信メッセージMBに含まれる「メッセージデータDT」を情報処理部32に出力する。具体的には、メッセージ処理部34は、受信可否の判定を行うため、受信した通信メッセージMBを送受信判定部36に送り、送受信判定部36から受信の可否の判定結果が入力される。そして、メッセージ処理部34は、認証の結果にかかわらず、受信「否」の判定結果が入力されると、入力した通信メッセージMBを破棄する。一方、メッセージ処理部34は、受信「可」の判定結果が入力されると、入力した通信メッセージMBに対して認証結果に応じた処理を行う。そして、メッセージ処理部34は、認証処理を行うため、受信した通信メッセージMBを認証子生成部33に送り、認証子生成部33から通信メッセージMBに対する認証の結果を得る。
また、通信メッセージMBを送信するとき、メッセージ処理部34は、情報処理部32から「メッセージデータDT」を入力し、この入力した「メッセージデータDT」の送信可否の判定、及びこの入力した「メッセージデータDT」に基づく「認証子AC2」の生成を行う。そして、メッセージ処理部34は、送信「可」の判定であるとき、「メッセージデータDT」と「認証子AC2」とを含む送信する通信メッセージMBを生成し、この生成した送信する通信メッセージMBをMBOX31cに出力する。具体的には、メッセージ処理部34は、送信可否の判定を行うため、送信対象である「メッセージデータDT」を送受信判定部36に送り、送受信判定部36から送信の可否の判定結果が入力される。そして、メッセージ処理部34は、送信「否」の判定結果が入力されると、「メッセージデータDT」を送信しない。一方、メッセージ処理部34は、送信「可」の判定結果が入力されると、入力された「メッセージデータDT」を含む通信メッセージMBの生成を行う。すなわち、メッセージ処理部34は、認証子を作成するため、「メッセージデータDT」を認証子生成部33に送り、認証子生成部33から「メッセージデータDT」に対する「認証子AC2」を得る。そしてメッセージ処理部34は、生成された「認証子AC2」と「メッセージデータDT」とを含む通信メッセージMBを生成する。
認証子生成部33は、メッセージカウンタMCのうちの「上位ビットMCH」と「下位ビットMCL」とを管理している。なお、認証子生成部33は、メッセージカウンタMCのうちの「上位ビットMCH」と「下位ビットMCL」とを1つだけ確保されたメッセージカウンタMCの記憶領域の対応する位置に記憶するようにしてもよいし、「上位ビットMCH」と「下位ビットMCL」とをそれぞれ別々に確保された記憶領域に記憶するようにしてもよい。また、認証子生成部33は、電源遮断やリセットによって「下位ビットMCL」を記憶保持するため記憶領域や、「上位ビットMCH」を記憶保持するため記憶領域の値が初期化により初期値に設定されるようになっている。この初期化は、他のECUやゲートウェイ10とは非同期に生じることも少なくない。
認証子生成部33は、メッセージカウンタの同期処理と、通信メッセージの送信時処理と、通信メッセージの受信時処理とを行う。そこで各処理について、以下に詳述する。
[メッセージカウンタの同期処理]
認証子生成部33は、MBOX31bから同期用メッセージMAが入力されたとき、同期用メッセージMAを認証するとともに、認証できたことを条件に「上位ビットMCH」の値を同期用メッセージMAに含まれている「上位ビットMCH」の値により更新する。また、認証子生成部33は、「上位ビットMCH」の値の更新を条件に「下位ビットMCL」の値を初期化して「0」にする。これにより「下位ビットMCL」は「0」から最大値までの範囲で更新可能に設定される。
また、認証子生成部33は、同期用メッセージMAの認証を行う。認証子生成部33は、MBOX31bから入力した同期用メッセージMAから「認証子AC1」と「上位ビットMCH」を取得する。そして、認証子生成部33は、取得した「上位ビットMCH」を、暗号化エンジン35で暗号化して認証子を再生成する。そして、認証子生成部33は、再生成した認証子と同期用メッセージMAから取得した「認証子AC1」とを比較し、比較の結果が一致すれば同期用メッセージMAを認証する旨を判定し、一致しないのであれば同期用メッセージMAを認証しない旨を判定する。
すなわち、認証子生成部33に記憶されている「上位ビットMCH」は、同期用メッセージMAが入力されることで、定期的、又は、所定の期間以内に更新される。一方、受信されていないために同期用メッセージMAが入力されないときには、同記憶されている「上位ビットMCH」は、初期値のままであったり、更新が停止されていたり、先の更新から所定の期間を超えても更新されていなかったりするなどして、「上位ビットMCH」が所定の期間初期値の状態になる。更新停止は、更新が長時間停止していることや、外部入力されたフラグ等から判定され、所定の期間は、ECU内の時計やクロック等から取得できる。
なお、認証子生成部33は、暗号化エンジン35を備えている。暗号化エンジン35は、暗号鍵EKが設定されており、認証子生成部33からメッセージデータDTやメッセージカウンタMCを入力し、暗号鍵EKで暗号化することで認証子を生成する。暗号鍵EKは、ゲートウェイ10と同じものが設定されていることから、第1ECU21とゲートウェイ10との間、及び、第1ECU21と第2〜4ECU22〜24との間ではそれぞれ暗号化された通信が可能である。なお、暗号鍵EKは、耐タンパメモリ等を用いて外部から取得不可能であればなおよい。
[通信メッセージの送信時処理]
認証子生成部33は、通信メッセージMBの送信時処理として、送信する通信メッセージMBの認証子の生成処理を行う。認証子生成部33は、メッセージ処理部34から「メッセージデータDT」が入力される。認証子生成部33は、認証子の生成処理に先立ち、送受信判定部36から送信の可否を取得し、送信「否」であれば送信時処理を終了し、送信「可」であれば、以下の処理を続ける。
つまり、図4に示すように、認証子生成部33は、管理している「下位ビットMCL」と同期用メッセージMAから取得して保持している「上位ビットMCH」とから、メッセージカウンタMCを再構成する。そして、認証子生成部33は、暗号化エンジン35で、再構成したメッセージカウンタMCと入力されたメッセージデータDTとを暗号鍵EKで暗号化して「認証子AC2」を生成する。また、認証子生成部33は、入力した「メッセージデータDT」と、「認証子AC2」の生成に使用した「下位ビットMCL」と、生成した「認証子AC2」とをメッセージ処理部34に出力する。そして、メッセージ処理部34は、認証子生成部33から入力した「メッセージデータDT」、「下位ビットMCL」及び「認証子AC2」から送信する通信メッセージMBを生成するとともに、この生成した通信メッセージMBをMBOX31cに出力する。また、認証子生成部33は、「認証子AC2」を生成したことに対応して「下位ビットMCL」を1つ大きい値に更新する。これによって、「認証子AC2」が生成されるとき、メッセージカウンタMCが過去の値と二度と同じ値にならないようになっている。
[通信メッセージの受信時処理]
認証子生成部33は、通信メッセージMBの受信時処理として、受信した通信メッセージMBの認証処理を行う。認証子生成部33は、認証処理に先立ち、送受信判定部36から受信の可否を取得し、受信「否」であれば認証処理を終了し、受信「可」であれば、以下の処理を続ける。認証処理では、「認証子AC2」に基づく認証を行う。
つまり、図5に示すように、認証子生成部33には、メッセージ処理部34から受信した通信メッセージMBの「メッセージデータDT」と、メッセージカウンタMCのうちの「下位ビットMCL」と、「認証子AC2」とが入力される。認証子生成部33は、入力された「下位ビットMCL」と、保持している「上位ビットMCH」とから、メッセージカウンタMCを再構成するとともに、暗号化エンジン35で、再構成したメッセージカウンタMCと入力された「メッセージデータDT」とを暗号鍵EKで暗号化して「認証子AC3」を再生成する。また、認証子生成部33は、入力した「認証子AC2」と、再生成した「認証子AC3」とを比較して、一致すれば認証する旨を判定し、一致しないのであれば認証しない旨を判定する。そして、認証子生成部33は、認証の判定結果をメッセージ処理部34に出力する。つまり、メッセージ処理部34は、受信「可」であり、かつ、認証された通信メッセージMBの「メッセージデータDT」を情報処理部32に出力する一方、受信「否」であったり、認証されなかった通信メッセージMBの「メッセージデータDT」を破棄する。
本実施形態の通信システムの動作を説明する。
ここでは説明の便宜上、通信メッセージMBは、第1ECU21から送信されて、第3ECU23に受信されるものとする。
[上位ビットの更新]
図6及び図7には、ECU21〜24の認証子生成部33が保持しているメッセージカウンタMCのうちの「上位ビットMCH」を更新する手順を示す。この手順は、ゲートウェイ10やECU21〜24で所定の周期毎、又は所定の条件が成立する毎に実行が開始される。
図6に示すように、ゲートウェイ10は、同期用メッセージMAを送信するタイミングであるか否かを判定する(図6のステップS10)。送信するタイミングは、例えば、メッセージカウンタMCのうちの「上位ビットMCH」がゲートウェイ10のコード管理部11により更新されたとき等である。送信するタイミングではないと判定した場合(図6のステップS10でNO)、上位ビットを更新する処理が一旦終了される。
一方、送信するタイミングであると判定した場合(図6のステップS10でYES)、ゲートウェイ10は、「同期用メッセージMA」を全ECU21〜24に送信する(図6のステップS11)。そして、上位ビットを更新する処理は一旦終了する。
図7に示すように、各ECU21〜24は、同期用メッセージMAを受信したか否かを判定する(図7のステップS20)。同期用メッセージMAを受信していないと判定した場合(図7のステップS20でNO)、上位ビットを更新する処理は一旦終了する。一方、同期用メッセージMAを受信したと判定した場合(図7のステップS20でYES)、各ECU21〜24は、受信した同期用メッセージMAの「認証子AC1」を認証する(図7のステップS21)。「認証子AC1」の認証は、認証子生成部33で再生成した認証子との比較で行われ、比較の結果が一致すれば認証される一方、比較の結果が一致しなければ認証されない。同期用メッセージMAの「認証子AC1」を認証できない場合(図7のステップS21でNO)、上位ビットを更新する処理は一旦終了する。
一方、同期用メッセージMAの認証子AC1を認証した場合(図7のステップS21でYES)、各ECU21〜24は、記憶しているメッセージカウンタMCのうちの「上位ビットMCH」を更新する(図7のステップS22)。そして、上位ビットを更新する処理は一旦終了する。
[通信メッセージの送信処理]
図8に示す、通信メッセージの送信処理は、所定の周期で繰り返し実行される、又は、メッセージデータDTの生成に応じて実行される。
図8に示すように、第1ECU21には、メッセージの送信要求として、情報処理部32で生成された「メッセージデータDT」がメッセージ処理部34に入力される(図8のステップS30)。第1ECU21では、メッセージ処理部34が実行する「メッセージデータDT」についての送信可否の判定結果を送受信判定部36から取得する。すなわち、送受信判定部36では、同期用メッセージMAを受信しているか否かが判定される(図8のステップS31)。ここで、同期用メッセージMAを受信しているか否かは、同期用メッセージMAに対応するメッセージIDを有する通信メッセージが受信されたか否か、及び、同期用メッセージMAが受信されて「上位ビットMCH」が適切に更新されているか否かの少なくとも一方によって判定される。よって、同期用メッセージMAが受信できていないことは、同期用メッセージMAに対応するメッセージIDを有する通信メッセージが受信されていないこと、及び、同期用メッセージMAが受信されていても「上位ビットMCH」が適切に更新されていないことの少なくとも一方に基づいて判定される。また、受信しているか否かは、第1ECU21が電源投入後やリセットされた後、又は、所定の条件の後であることに基づいて判定される。そして、所定の条件とは、ゲートウェイ10がリセットされたことや、通信が途絶したこと等である。また、適切に更新されていることは、「上位ビットMCH」が初期値から変更されていること、更新が停止されていないこと、及び、定期的に更新されていることに基づいて判定される。同期用メッセージを受信していないと判定した場合(図8のステップS31でNO)、第1ECU21は、メッセージ処理部34で「メッセージデータDT」をキューイングする、又は破棄する(図8のステップS32)。そして一旦、通信メッセージの送信処理が終了する。なお、キューイングされた「メッセージデータDT」は、所定の時間経過後に再度、メッセージの送信要求として再度処理されて、いわゆる送信がリトライされる。
一方、同期用メッセージを受信していると判定した場合(図8のステップS31でYES)、第1ECU21は、メッセージ処理部34に保持している送信要求を認証子生成部33に送る(図8のステップS33)。つまり、メッセージ処理部34から認証子生成部33に「メッセージデータDT」が送られる。そして、図4も併せて参照すると、第1ECU21は、認証子生成部33で「メッセージデータDT」とメッセージカウンタMCとに基づいて「識別子AC2」を生成する(図8のステップS34)。また、第1ECU21は、「識別子AC2」を生成したときの「メッセージデータDT」及びメッセージカウンタMCのうちの「下位ビットMCL」と、生成した「識別子AC2」とから通信メッセージMBを生成する(図8のステップS35)とともに、この生成した通信メッセージMBを通信用バスL1に送信する(図8のステップS36)。通信用バスL1に送信された通信メッセージMBは、ゲートウェイ10で通信用バスL1から通信用バスL2に転送されて、通信用バスL2に接続されている第3ECU23で受信できるようになる。そして、第1ECU21は、通信メッセージの送信処理を一旦終了する。
[通信メッセージの受信処理]
図9に示す、通信メッセージの受信処理は、所定の周期で繰り返し実行される、又は、通信メッセージの受信に応じて実行される。
図9に示すように、第3ECU23は、受信した通信メッセージMBをメッセージ処理部34で取得したことに基づいて、送受信判定部36で同期用メッセージMAを受信しているか否かを判定する(図9のステップS40)。ここで、同期用メッセージMAを受信しているか否かは、図8のステップS31の処理と同様に、同期用メッセージMAに対応するメッセージIDが受信されたか否か、及び、同期用メッセージMAが受信されて「上位ビットMCH」が適切に更新されているか否かの少なくとも一方に基づいて判定される。よって、同期用メッセージMAが受信できていないことは、同期用メッセージMAに対応するメッセージIDを有する通信メッセージが受信されていないこと、及び、同期用メッセージMAが受信されていても「上位ビットMCH」が適切に更新されていないことの少なくとも一方に基づいて判定される。また、受信しているか否かは、第3ECU23が電源投入後やリセットされた後、又は、所定の条件の後であることに基づいて判定される。そして、所定の条件とは、ゲートウェイ10がリセットされたことや、通信が途絶したこと等である。同期用メッセージMAを受信していないと判定した場合(図9のステップS40でNO)、第3ECU23は、メッセージ処理部34で受信した「メッセージデータDT」を破棄するとともに、認証失敗を情報処理部32のアプリケーションに通知する(図9のステップS45)。そして、第3ECU23は、通信メッセージの受信処理を一旦終了する。
一方、同期用メッセージMAを受信していると判定した場合(図9のステップS40でYES)、図5を併せて参照すると、第3ECU23は、認証子生成部33で通信メッセージMBから「メッセージデータDT」と、メッセージカウンタMCのうちの「下位ビットMCL」と、「識別子AC2」とを取得する(図9のステップS41)。また、第3ECU23は、認証子生成部33でメッセージカウンタMCのうちの「下位ビットMCL」と、同期用メッセージMAから事前に取得したメッセージカウンタMCのうちの「上位ビットMCH」とからメッセージカウンタMCを再構成する。そして、第3ECU23は、暗号化エンジン35で「メッセージデータDT」と再構成したメッセージカウンタMCとから「認証子AC3」を再生成する(図9のステップS42)。続いて、第3ECU23は、認証子生成部33で、取得した「識別子AC2」と再生成した「認証子AC3」とを比較して一致するか否か判定する(図9のステップS43)。
一致すると判定された場合(図9のステップS43でYES)、第3ECU23は、「メッセージデータDT」を情報処理部32のアプリケーションに送る(図9のステップS44)。一方、一致しないと判定された場合、(図9のステップS43でNO)、第3ECU23は、上述したステップS45の処理、つまり、メッセージ処理部34で受信したメッセージデータDTを破棄するとともに、認証失敗を情報処理部32のアプリケーションに通知する処理を行う。そして、第3ECU23は、通信メッセージの受信処理を一旦終了する。
これにより、通信メッセージMBがなりすましなどで送信された不正なものである場合、この不正な通信メッセージMBに含まれている「メッセージデータDT」が情報処理部32へ送られ、処理されることが防がれるようになる。
以上説明したように、本実施形態に係る通信システムによれば、以下に示すような効果が得られるようになる。
(1)通信メッセージMBにはメッセージカウンタMCのうちの「下位ビットMCL」だけが含まれることとなり、メッセージデータのために多くの領域を確保することができる。また、「上位ビットMCH」は、ゲートウェイ10によって管理されることから、各ECU21〜24のそれぞれの間で同期されるようにもなる。つまり、受信側の各ECU21〜24は、ゲートウェイ10からの「上位ビットMCH」と、通信メッセージMBに含まれる「下位ビットMCL」とを組み合わせることで、送信側の各ECU21〜24で「認証子AC2」の生成に利用されたメッセージカウンタMCを再構成することができる。これにより、メッセージカウンタMCの大きさを信頼性の確保に必要とされるサイズにしたとしても、通信メッセージMBの格納に要する容量を少なく抑えて、メッセージデータのための容量の減少を抑制することができる。これにより、通信量の増大を抑えつつ、通信メッセージMBの信頼性を確保することができるようになる。
(2)ゲートウェイ10から送信されたメッセージカウンタMCのうちの「上位ビットMCH」が受信されることによって、各ECU21〜24に記憶されているメッセージカウンタMCのうちの「上位ビットMCH」が、受信したメッセージカウンタMCのうちの「上位ビットMCH」に更新されて、すなわち同期される。これにより、メッセージカウンタMCが「上位ビットMCH」と「下位ビットMCL」とに2分割されたとしても、通信メッセージMBをメッセージカウンタMCによって認証することが可能になる。
また、各ECU21〜24に記憶されているメッセージカウンタMCのうちの「上位ビットMCH」を同期させることができる。よって、各ECU21〜24に記憶されているメッセージカウンタMCのうちの「上位ビットMCH」がECU21〜24のリセット等により非同期に初期化されたりしたとしても、記憶しているメッセージカウンタMCが正常な値に設定し直されることで、認証を正常に行うことが可能にもなる。
(3)「メッセージID」の別にメッセージカウンタMCが管理されるので、メッセージカウンタMCの大きさが抑えられる。また、「メッセージID」の別であればメッセージカウンタMCのうちの「下位ビットMCL」の更新にも時間的な余裕が得られるようになることからメッセージカウンタMCの同期の自由度も高められる。
(4)同期用メッセージMAで送信されるメッセージカウンタMCのうちの「上位ビットMCH」を暗号鍵EKを用いて暗号化して得られる「認証子AC1」を利用することで、ゲートウェイ10から同期用メッセージMAで送信されるメッセージカウンタMCのうちの「上位ビットMCH」についても、その通信内容の信頼性が維持されるようになる。
すなわち、ゲートウェイ10から同期用メッセージMAで送信される「認証子AC1」は、メッセージカウンタMCのうちの「上位ビットMCH」から生成された「認証子AC1」である。このため、この同期用メッセージMAを受信した各ECU21〜24においても、同期用メッセージMAで送信された「認証子AC1」と、この同期用メッセージMAで送信されるメッセージカウンタMCのうちの「上位ビットMCH」から再生成した認証子とが取得でき、これら認証子の比較で、同期用メッセージMAの認証が可能になる。よって、各ECU21〜24は、ゲートウェイ10からの同期用メッセージMAを受信することで、信頼性の確保されたメッセージカウンタMCのうちの「上位ビットMCH」を取得し、これに基づく同期用メッセージMAの認証を行うことができるようになる。
(5)メッセージカウンタMCの値が重複することがないように更新されるので、一度送信された通信メッセージMBが再送信されたとしてもこれを無効と判断することができるようになる。
(6)認証子AC1,AC2の信頼性、つまり通信メッセージMBの信頼性が共通の暗号鍵EKにより確保される。耐タンパメモリ等を用いて暗号鍵EKを外部から取得不可能にすればなおよい。
(7)第1ECU21は、メッセージカウンタMCの「上位ビットMCH」を受信できていないことに基づいて通信メッセージMBを送信しない、及び、第3ECU23はメッセージカウンタMCの「上位ビットMCH」を受信できていないことに基づいて受信した通信メッセージMBを認証しないことの少なくとも一方を行う。つまり、メッセージカウンタMCの「上位ビットMCH」が第1ECU21及び第3ECU23のそれらの間で同期されていないとき、通信メッセージMBが送信されない、又は、認証されない。これにより、時変パラメータであるメッセージカウンタMCを利用して通信メッセージMBの信頼性を確保する場合であっても、メッセージカウンタMCの「上位ビットMCH」が受信されていないことに起因して通信メッセージMBに対して不正であるとする判定がなされることが防止される。すなわち、通信メッセージMBの正/不正が適切に判断されるようになる。
(その他の実施形態)
なお、上記実施形態は、以下の態様で実施することもできる。
[同期用メッセージ]
・上記実施形態では、メッセージカウンタが同期用メッセージで送信される場合について例示した。このとき、1つのメッセージIDに対して、同期用メッセージに用いるメッセージIDを1つずつ設けるようにしてもよい。この場合、通信システム全体としてメッセージIDの数が2倍以上になるおそれがある。
また、すべてのメッセージIDに対して、同期用メッセージに用いるメッセージIDを1つだけ設けるようにしてもよい。この場合、通信システム全体としてメッセージIDの数が1つ増えるだけである。さらに、全部よりも少ない複数のメッセージIDに対して、同期用メッセージに用いるメッセージIDを1つずつ設けるようにしてもよい。すなわち、同期用メッセージを共用することができれば、数に限りのあるメッセージIDのなかから同期用メッセージに割り当てるメッセージIDの数を少なく抑えることができる。メッセージIDの数が少なく抑えられれば、メッセージIDやメッセージデータを記憶するための領域の増加の抑制、処理負荷の増大の抑制、通信負荷の増大の抑制等も図られる。
[ゲートウェイ]
・上記実施形態では、ゲートウェイ10は、複数の通信用バスL1,L2の間における通信メッセージを中継する場合について例示した。しかしこれに限らず、ゲートウェイは、1つの通信用バスに接続されていてもよいし、2つよりも多い通信用バスの間に通信メッセージを中継してもよい。
・上記実施形態では、ゲートウェイ10が同期用メッセージMAを管理して送信する場合について例示した。しかしこれに限らず、ECUが同期用メッセージを管理して送信してもよい。
・上記実施形態では、1つのゲートウェイ10が同期用メッセージMAを管理して送信する場合について例示した。しかしこれに限らず、複数のゲートウェイやECUが同期用メッセージを分担して管理してもよい。
・上記実施形態では、コード管理部11は、メッセージカウンタMCのうちの「上位ビットMCH」を記憶、管理する場合について例示した。しかしこれに限らず、コード管理部は、メッセージカウンタMCの全長を保持していてもよい。そして、メッセージカウンタMCの「上位ビットMCH」に対応するビット部分を管理するようにしてもよい。なお、メッセージカウンタMCのうちの「下位ビットMCL」は最新の値を通信メッセージMBから取得してもよい。
・上記実施形態では、送信部12はメッセージカウンタMCの一部を送信する場合について例示した。しかしこれに限らず、ゲートウェイがメッセージカウンタの全体を保持していれば、送信部は同期用メッセージでメッセージカウンタの全体(全ビット数)を送信してもよい。なお、同期用メッセージを受信したECUは、メッセージカウンタの全体(全ビット数)のうちから上位ビットに対応する部分だけを利用すればよい。
[通信プロトコル]
・上記実施形態では、通信プロトコルがCANプロトコルである場合について例示した。しかしこれに限らず、通信メッセージの信頼性確保にメッセージカウンタを用いるのであれば、通信プロトコルは、CANプロトコル以外のプロトコル、例えば、イーサーネット(登録商標)やフレックスレイ(登録商標)などの通信プロトコルであってもよい。
[メッセージカウンタ]
・上記実施形態では、メッセージカウンタMCが「下位ビットMCL」と「上位ビットMCH」とからなる場合について例示した。しかしこれに限らず、メッセージカウンタは、ビット列のうち上位ビットとする位置と、下位ビットとする位置とが逆になってもよいし、別に確保された記憶領域をそれぞれ上位ビット用と下位ビット用として扱うようにしてもよい。
・上記実施形態では、メッセージカウンタMCの長さが8バイト(64ビット)である場合について例示した。しかしこれに限らず、二度と同じ値が繰り返されないか、又は、同じ値が繰り返されるにしても長時間の時間間隔が確保できれば、メッセージカウンタの長さは、64ビットよも長い124ビット等や、逆に、64ビットよも短い32ビット等であってもよい。
・上記実施形態では、コード管理部11は、「下位ビットMCL」が最大値になることに応じて「上位ビットMCH」を更新する場合、いわゆる、ビット列において桁上がりが生じることと同様の態様について例示した。しかしこれに限らず、コード管理部はさらに、同期用メッセージMAを送信する所定の条件が成立することに応じて「上位ビットMCH」を更新してもよい。所定の条件には、イグニッションが「オフ」から「オン」された場合や、先の同期用メッセージを更新(送信)した時点から所定の時間(例えば、Ymsec:Yは設定可能な値)が経過した場合等の1又は複数の条件、及び、それらの条件の組み合わせからなる条件とすることができる。
・上記実施形態では、メッセージカウンタMCの「下位ビットMCL」が「0」から最大値まで変化したことに応じてゲートウェイ10で「上位ビットMCH」の値が「1」だけ増加される(単調増加される)場合について例示した。しかしこれに限らず、メッセージカウンタMCが二度と同じ値にならないようにできるのであれば、「下位ビットMCL」が最大値を超えるよりも以前のタイミングを更新タイミングとして「上位ビットMCH」を更新してもよい。このとき、できるだけ「下位ビットMCL」の最大値に近い値であるときを更新タイミングとすれば、メッセージカウンタMCのビット数を有効に利用できるようになる。例えば、コード管理部で、ECUが送信する通信メッセージを受信することでメッセージカウンタのうちの「下位ビットMCL」を監視し、この「下位ビットMCL」が最大値未満に設定された閾値である更新値以上になったときを更新タイミングにするようにすればよい。
・上記実施形態では、メッセージカウンタMCのうちの「下位ビットMCL」が初期値の「0」から最大値に向けて変化する場合について例示した。しかしこれに限らず、初期値を「0」より大きい値に設定し、最大値の次に「0」に戻して初期値の手前の値まで変化させるようにしてもよい。
・上記実施形態では、メッセージカウンタMCは通信メッセージが送信される都度、値が「1」ずつ増加される場合について例示した。しかしこれに限らず、通信メッセージの信頼性が確保されるのであれば、メッセージカウンタは、例えば、二度と同じ値を使用しないように最大値から「0」まで減少してもよいし、不規則な変化をしてもよい。なお、上位ビットと下位ビットとは別々に管理されることから、上位ビットの変化態様と下位ビットの変化態様とは同一であってもよいし、別々であってもよい。
・上記実施形態では、1つのメッセージIDに1つのメッセージカウンタMCが対応している場合について例示した。しかしこれに限らず、1つのメッセージカウンタに、複数のメッセージIDが対応してもよい。メッセージカウンタが、複数のメッセージIDに対応する場合、管理するメッセージカウンタの数を減らすことができるようにもなる。
・上記実施形態では、メッセージカウンタMCが二度と同じ値にならないようにしている場合について例示したが、これに限らず、メッセージカウンタMCが一時的に同じ値になったりしてもよい。例えば、「上位ビット」の更新が間に合わなかったり、同期できなかったりした場合、メッセージカウンタが一時的に過去と同じ値になって二度使用されてもよい。また、必要な信頼性が確保できるのであれば、同じ値を、所定回数だけ使いまわすようにしてもよい。
・上記実施形態では、「上位ビットMCH」を7バイト、「下位ビットMCL」を1バイトとする場合について例示した。しかしこれに限らず、上位ビットと下位ビットとは、それ以外のバイト、例えば、「6バイト」及び「2バイト」等で区切ってもよい。また、バイト単位で区切るのではなく、例えば「60ビット」と「4ビット」と等、ビットの単位で区切ってもよい。
[メッセージボックス]
・上記実施形態では、複数のMBOX31a,31b,31cを備える場合について例示したが、これに限らず、MBOXは、送受信する通信メッセージがECUのなかの適切な部分と授受できるように中継及び一時格納できるのであれば、1つでもよいし、2つや、4つ以上であってもよい。
[認証子生成部]
・上記実施形態では、「認証子AC2」に基づく認証を行う場合について例示した。このとき、「認証子AC2」に基づく認証に先立ち、通信メッセージMBからメッセージカウンタMCのうちの「下位ビットMCL」を取得し、取得した「下位ビットMCL」が、前回の取得した「下位ビットMCL」よりも大きい(更新されている)か否かを確認してもよい。そして、大きい(更新されている)場合、「認証子AC2」に基づく認証を行い、逆に、大きくない(更新されていない)場合、認証しない旨を判定するとともに、「認証子AC2」に基づく認証を割愛してもよい。
10…ゲートウェイ、11…コード管理部、12…送信部、13…通信I/F部、21〜24…第1電子制御装置(ECU)、30…通信I/F部、31a,31b,31c…MBOX、32…情報処理部、33…認証子生成部、34…メッセージ処理部、35…暗号化エンジン、36…送受信判定部、111…暗号化エンジン、DT…メッセージデータ、EK…暗号鍵、L1,L2…通信用バス、MA…同期用メッセージ、MB…通信メッセージ、MC…メッセージカウンタ、AC1,AC2…認証子。

Claims (1)

  1. 第1の情報と第2の情報とが組み合わされてなる管理コードのうちの前記第1の情報を記憶するとともに、記憶する前記第1の情報を前記第2の情報が複数回更新されることに基づいて1回更新するように管理する管理装置と、
    前記管理装置に通信ネットワークを介して通信可能に接続された受信装置及び送信装置とを備え、
    前記管理装置は、前記第1の情報を含む通信メッセージを送信し、前記受信装置及び送信装置は、前記管理装置が送信した前記通信メッセージを受信する都度、前記受信した通信メッセージに含まれる前記第1の情報を保持するものであり、
    前記送信装置は、前記管理コードのうちの前記第2の情報を管理するものであり、通信データと、前記保持する前記第1の情報及び前記管理する第2の情報を組み合わせてなる前記管理コードとから認証子を生成して、前記通信データと、前記管理する第2の情報と、前記生成した認証子とを含み、前記保持する第1の情報を含まない通信メッセージを生成して送信するとともに、通信メッセージの生成後に前記管理する第2の情報の値を更新し、
    前記受信装置は、前記送信装置の送信した前記通信メッセージを受信して、前記受信した通信メッセージに含まれる認証子と、前記受信した通信メッセージに基づいて再生成した認証子との比較に基づいて前記受信した通信メッセージを認証するものであって、
    前記受信装置は、前記保持する第1の情報及び前記送信装置の送信した通信メッセージから取得した前記第2の情報を組み合わせて管理コードを再構成し、前記送信装置の送信した通信メッセージから取得した通信データと、前記再構成した管理コードとから前記再生成した認証子を取得するものであり、
    前記送信装置は、前記管理装置の送信した前記第1の情報を含む通信メッセージが受信できていないことに基づいて通信メッセージを送信しないこと、及び、前記受信装置は、前記管理装置の送信した前記第1の情報を含む通信メッセージが受信できていないことに基づいて受信した通信メッセージを認証しないことの少なくとも一方を行う
    ことを特徴とする通信システム。
JP2016219620A 2016-11-10 2016-11-10 通信システム Active JP6683105B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016219620A JP6683105B2 (ja) 2016-11-10 2016-11-10 通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016219620A JP6683105B2 (ja) 2016-11-10 2016-11-10 通信システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020056059A Division JP2020123960A (ja) 2020-03-26 2020-03-26 通信システム

Publications (2)

Publication Number Publication Date
JP2018078473A true JP2018078473A (ja) 2018-05-17
JP6683105B2 JP6683105B2 (ja) 2020-04-15

Family

ID=62151004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016219620A Active JP6683105B2 (ja) 2016-11-10 2016-11-10 通信システム

Country Status (1)

Country Link
JP (1) JP6683105B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020123960A (ja) * 2020-03-26 2020-08-13 トヨタ自動車株式会社 通信システム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012169829A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 通信システムおよび通信方法
JP2013048374A (ja) * 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法
JP2013098719A (ja) * 2011-10-31 2013-05-20 Toyota Infotechnology Center Co Ltd 通信システムにおけるメッセージ認証方法および通信システム
WO2013084304A1 (ja) * 2011-12-06 2013-06-13 富士通株式会社 ノード、通信方法、および通信システム
WO2013128317A1 (en) * 2012-03-01 2013-09-06 Nds Limited Anti-replay counter measures
JP2016100632A (ja) * 2014-11-18 2016-05-30 株式会社東芝 通信システム及び通信装置
JP2016158204A (ja) * 2015-02-26 2016-09-01 ルネサスエレクトロニクス株式会社 通信システムおよび通信装置
JP2017038365A (ja) * 2015-08-07 2017-02-16 株式会社デンソー 通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体
JP2018074435A (ja) * 2016-10-31 2018-05-10 トヨタ自動車株式会社 通信システム及び通信方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012169829A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 通信システムおよび通信方法
JP2013048374A (ja) * 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法
JP2013098719A (ja) * 2011-10-31 2013-05-20 Toyota Infotechnology Center Co Ltd 通信システムにおけるメッセージ認証方法および通信システム
WO2013084304A1 (ja) * 2011-12-06 2013-06-13 富士通株式会社 ノード、通信方法、および通信システム
WO2013128317A1 (en) * 2012-03-01 2013-09-06 Nds Limited Anti-replay counter measures
JP2016100632A (ja) * 2014-11-18 2016-05-30 株式会社東芝 通信システム及び通信装置
JP2016158204A (ja) * 2015-02-26 2016-09-01 ルネサスエレクトロニクス株式会社 通信システムおよび通信装置
JP2017038365A (ja) * 2015-08-07 2017-02-16 株式会社デンソー 通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体
JP2018074435A (ja) * 2016-10-31 2018-05-10 トヨタ自動車株式会社 通信システム及び通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
倉地 亮 ほか: "メッセージ認証を用いたCANの集中監視システム", 電子情報通信学会論文誌A, vol. 99, no. 2, JPN6017011701, 1 February 2016 (2016-02-01), JP, pages 118 - 130, ISSN: 0004218504 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020123960A (ja) * 2020-03-26 2020-08-13 トヨタ自動車株式会社 通信システム

Also Published As

Publication number Publication date
JP6683105B2 (ja) 2020-04-15

Similar Documents

Publication Publication Date Title
JP6409849B2 (ja) 通信システム及び通信方法
CN107846395B (zh) 确保车载总线上的通信安全的方法、系统、介质和车辆
CN106899404B (zh) 基于预共享密钥的车载can fd总线通信系统及方法
JP5878630B2 (ja) 半接続状態デバイスのグループとの仮想ペアリングのための方法および装置
US10735435B2 (en) Communication system, management node, normal node, counter synchronization method, and storage medium
JP5414898B2 (ja) 有線lanのセキュリティアクセス制御方法及びそのシステム
US20220276855A1 (en) Method and apparatus for processing upgrade package of vehicle
US11245535B2 (en) Hash-chain based sender identification scheme
JP6512023B2 (ja) 通信システム、送信ノード、及び受信ノード
ES2383607T3 (es) Sistema y método para la reinicialización remota de contraseña y de clave de cifrado
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
WO2012171285A1 (zh) 一种终端与智能卡双向认证的方法、协议及智能卡
US10749878B2 (en) Communication system, count value synchronization method, and count value synchronization program product
KR100892616B1 (ko) 무선 센서 네트워크에서의 새로운 장치 참여 방법
CN111614462B (zh) 一种基于区块链的密钥计算方法及系统
JP6683105B2 (ja) 通信システム
JP6915717B2 (ja) 通信システム
JP6683106B2 (ja) 通信システム
JP2020123960A (ja) 通信システム
JP2018014558A (ja) 通信装置
JP2013121071A (ja) 中継システム及び、当該中継システムを構成する中継装置、外部装置
JP2020137009A (ja) ネットワークシステム
US20170214667A1 (en) Communication device
KR102398761B1 (ko) 차량용 네트워크의 보안 방법 및 그 장치
US20230370440A1 (en) Security module and method of secure communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20191224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200210

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: 20200225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200309

R151 Written notification of patent or utility model registration

Ref document number: 6683105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151