図面 (/)
課題
解決手段
通信システムは、誤り検出符号を付加した通信メッセージを送信する送信デバイスと、受信した通信メッセージに含まれる情報であって誤り検出符号の生成演算の対象範囲の情報をもとに生成演算して得られる値と、付加された誤り検出符号が示す値との比較によって、異常を検出する受信デバイスとを備える。送信デバイスは、生成演算して得られる値と付加された誤り検出符号が示す値とが不一致になるように、生成演算の対象範囲に含まれる情報の少なくとも一部を変更するかまたは前記生成演算して得られる値とは異なる値を前記誤り検出符号として付加して、通信メッセージを生成し、受信デバイスは、受信した通信メッセージについて、生成演算して得られる値と付加された誤り検出符号が示す値とが一致する場合に、異常を検出する。
概要
背景
概要
より簡便な構成により、ネットワークにおける不正な状態を検出する通信システム、及び制御装置を提供する。通信システムは、誤り検出符号を付加した通信メッセージを送信する送信デバイスと、受信した通信メッセージに含まれる情報であって誤り検出符号の生成演算の対象範囲の情報をもとに生成演算して得られる値と、付加された誤り検出符号が示す値との比較によって、異常を検出する受信デバイスとを備える。送信デバイスは、生成演算して得られる値と付加された誤り検出符号が示す値とが不一致になるように、生成演算の対象範囲に含まれる情報の少なくとも一部を変更するかまたは前記生成演算して得られる値とは異なる値を前記誤り検出符号として付加して、通信メッセージを生成し、受信デバイスは、受信した通信メッセージについて、生成演算して得られる値と付加された誤り検出符号が示す値とが一致する場合に、異常を検出する。
目的
本発明は、このような事情を考慮してなされたものであり、より簡便な構成により、ネットワークにおける不正な状態を検出する通信システムを提供する
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
誤り検出符号を付加したメッセージを送信する送信デバイスと、受信した前記メッセージに含まれる情報であって前記誤り検出符号の生成演算の対象範囲の情報をもとに前記生成演算して得られる値と、前記付加された誤り検出符号が示す値との比較によって、異常を検出する受信デバイスとを備える通信システムであって、前記送信デバイスは、前記生成演算して得られる値と前記付加された誤り検出符号が示す値とが不一致になるように、前記生成演算の対象範囲に含まれる情報の少なくとも一部を変更するかまたは前記生成演算して得られる値とは異なる値を前記誤り検出符号として付加して、前記メッセージを生成し、前記受信デバイスは、受信したメッセージについて、前記生成演算して得られる値と前記付加された誤り検出符号が示す値とが一致する場合に、異常を検出する、通信システム。
請求項2
前記送信デバイスは、前記生成演算の対象範囲に含まれる情報であって、前記生成演算に用いられる情報を示すビット列のうち少なくとも一部のビットについて、当該ビットを反転させることにより前記変更する、請求項1記載の通信システム。
請求項3
前記送信デバイスは、前記変更したメッセージを暗号化して、前記メッセージとする請求項1又は請求項2記載の通信システム。
技術分野
背景技術
0002
ネットワークを利用して各種制御対象を制御する通信システムでは、その信頼性を保つことが必要とされる。ネットワークを利用して車両を制御する技術が知られている(例えば、特許文献1参照。)。特許文献1には、自装置が、自装置から送信したことを示す識別情報を付与して通信メッセージを送信し、上記と同じ識別情報が附された通信メッセージを、自装置が受信した場合、その通信メッセージを不正なものと判断することが記載されている。
先行技術
0003
特開2014−11621号公報
発明が解決しようとする課題
0004
しかしながら、特許文献1によれば、装置は、通信メッセージを選択して受信するように記憶しているが、自装置が受信すべき通信メッセージを特定する識別情報を、自装置が送信する際に用いる識別情報も含めることで上記の判断を実施する。これにより、自装置が本来受信すべき識別情報が附された通信メッセージの他に、少なくとも自装置が送信した通信メッセージ等も受信することになる。この技術では、通信メッセージを受信して処理する数が増大し、ネットワークにおける不正な状態を検出するための処理が煩雑になるという問題がある。
本発明は、このような事情を考慮してなされたものであり、より簡便な構成により、ネットワークにおける不正な状態を検出する通信システムを提供することを目的の一つとする。
課題を解決するための手段
0005
請求項1記載の発明は、誤り検出符号を付加したメッセージを送信する送信デバイス(ECU10−1)と、受信した前記メッセージに含まれる情報であって前記誤り検出符号の生成演算の対象範囲の情報をもとに前記生成演算して得られる値と、前記付加された誤り検出符号が示す値との比較によって、異常を検出する受信デバイス(ECU10−2)とを備える通信システム(通信システム1)であって、前記送信デバイスは、前記生成演算して得られる値と前記付加された誤り検出符号が示す値とが不一致になるように、前記生成演算の対象範囲に含まれる情報の少なくとも一部を変更するかまたは前記生成演算して得られる値とは異なる値を前記誤り検出符号として付加して、前記メッセージを生成し、前記受信デバイスは、受信したメッセージについて、前記生成演算して得られる値と前記付加された誤り検出符号が示す値とが一致する場合に、異常を検出する、通信システムである。
0006
請求項2記載の発明における前記送信デバイスは、前記生成演算の対象範囲に含まれる情報であって、前記生成演算に用いられる情報を示すビット列のうち少なくとも一部のビットについて、当該ビットを反転させることにより前記変更する。
0007
請求項3記載の発明における前記送信デバイスは、前記変更したメッセージを暗号化して、前記メッセージとする。
発明の効果
0008
請求項に記載の発明によれば、送信デバイスは、生成演算して得られる値とメッセージに付加された誤り検出符号が示す値とが不一致になるように、生成演算の対象範囲に含まれる情報の少なくとも一部を変更するかまたは前記生成演算して得られる値とは異なる値を前記誤り検出符号として付加して、そのメッセージを生成し、受信デバイスは、受信したメッセージについて、生成演算して得られる値と付加された誤り検出符号が示す値とが一致する場合に、異常を検出することにより、より簡便な構成により、ネットワークにおける不正な状態を検出する通信システムを提供することができる。
図面の簡単な説明
0009
第1の実施形態の通信システム1の構成を示す図である。
本実施形態のECU10の構成例を示す図である。
本実施形態のECU10がバス2に送信するフレームFの形式例である。
本実施形態の通信システムにおける送受信処理のデータフローを示す図である。
本実施形態の通信システムにおける送信処理の手順を示すフローチャートである。
本実施形態の通信システムにおける受信処理の手順を示すフローチャートである。
本実施形態の第3変形例の受信処理の手順を示すフローチャートである。
第2の実施形態の通信システムにおける送受信処理のデータフローを示す図(その1)である。
本実施形態の通信システムにおける送受信処理のデータフローを示す図(その2)である。
本実施形態の通信システムにおける送信処理の手順を示すフローチャートである。
本実施形態の通信システムにおける受信処理の手順を示すフローチャートである。
実施例
0010
以下、図面を参照し、本発明の通信システムの実施形態について説明する。
0011
(第1の実施形態)
図1は、本実施形態の通信システム1の構成を示す図である。通信システム1は、例えば車両に搭載される。通信システム1は、少なくとも車両内にネットワークNWを構成する。ネットワークNWでは、例えば、バス2を介してCAN(Controller Area Network)に基づく通信が行われる。
0012
通信システム1は、バス2に接続されたECU10−1からECU10−3を備える。以下、ECU10−1からECU10−3を区別しない場合は、単にECU10と表記する。ECU10−1からECU10−3等の装置は、共通のバス2に接続されたものとして説明するが、不図示の中継装置等により互いに通信可能に接続された異なるバスに接続されていてもよい。
0013
ECU10は、例えばエンジンを制御するエンジンECUや、シートベルトを制御するシートベルトECU等である。ECU10は、自装置が所属するネットワークNWに送信されたフレームを受信する。以下、ネットワークNWに送信される各フレームのことをフレームFという。フレームFは、それぞれに附された識別子(以下、IDという。)により識別される。ECU10は、自ECU10に係るフレームFを識別するID(以下、登録IDという)を記憶部20(図2)に格納しておく。ECU10は、フレームFを受信する際には、受信したフレームFに附されたID(以下、受信IDという)を参照して、登録IDと同じ値の受信IDが附されたフレームFを抽出して取得する。
0014
ネットワークNWには、検証装置等の外部装置50が接続されるDLC3が設けられている。DLC3は、外部装置50と通信するための接続端子を有している。車両の点検時等にDLC3に接続される検証装置等は、バス2に接続されたECU10と通信して、通信システム1の状態を検査・検証する。車両の点検時等を除けば、DLC3に検証装置等を接続することなく、通信システム1を機能させることができる。
0015
図2は、ECU10の構成例を示す図である。ECU10は、例えば、記憶部20と、制御部30と、CANコントローラ36と、CANトランシーバ38とを備える。制御部30は、例えば、CPU(Central Processing Unit)等のプロセッサを有する。
0016
記憶部20は、例えば、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)、HDD(Hard Disk Drive)等の不揮発性の記憶装置と、RAM(Random Access Memory)、レジスタ等の揮発性の記憶装置によって実現される。記憶部20は、アプリケーションプログラム22や、通信制御プログラム24等のプログラムと、上記のプログラムが参照する各種情報を格納する。また、記憶部20は、送信バッファとして機能するTXD1記憶領域261とTXD2記憶領域262と、受信バッファとして機能するRXD記憶領域263とを含む一時記憶領域26を有する。また、記憶部20は、各種情報として、例えばネットワークNWを介して送受信するフレームFのIDが格納されたIDテーブルを記憶する。例えば、フレームFのIDは、送信元、宛先、フレームFの種類等を示す情報を含む。より具体的には、IDテーブルには、ECU10−1が受信すべきフレームFのIDとECU10−1が送信すべきフレームFのIDとが含まれる。
0017
アプリケーションプログラム22は、ECU10にそれぞれ割り当てられた情報処理を行うためのプログラムである。通信制御プログラム24は、アプリケーションプログラム22からの指示に応じてCANコントローラ36を制御して通信処理を実施させるとともに、CANコントローラ36を介した通信に係る通信処理の結果を管理情報として取得するためのプログラムである。通信制御プログラム24は、CANコントローラ36自身が実行する制御プログラムを含めて構成してもよく、或いは、CANコントローラ36自身が実行する制御プログラムをCANコントローラ36が有する場合には、CANコントローラ36自身が実行する制御プログラムを含まずに構成してもよい。以下の説明では、通信制御プログラム24は、CANコントローラ36の制御プログラムを含めて構成した場合を例示する。
0018
制御部30は、中央制御部32と、通信制御部34と、監視制御部35とを備える。中央制御部32は、アプリケーションプログラム22を実行することにより機能し、ECU10に与えられた制御を実行する。
0019
通信制御部34は、通信制御プログラム24を実行することにより機能し、中央制御部32からの制御を受けECU10の通信処理を実行する。
0020
例えば、通信制御部34は、送信時には、記憶部20の送信バッファに格納されたユーザデータを、CANトランシーバ38を介して送信する。その際、通信制御部34は、自ECU10が送信するものであることを示すIDを、CANトランシーバ38によって生成されるフレームFに付与して送信するようにCANトランシーバ38を制御する。ユーザデータを送信する際に実施する処理の詳細については、後述する。
0021
また、通信制御部34は、受信時には、CANトランシーバ38を介して受信されたフレームFの受信IDとIDテーブルに格納された登録IDとを参照し、受信されたフレームFに関して自装置の中央制御部32が使用する情報が含まれたフレームFであるか否かを判定する。例えば、ECU10−1のIDテーブルに格納された登録IDには、ECU10−1が受信すべきフレームFのID(登録受信ID)とECU10−1が送信すべきフレームFのID(登録送信ID)とが含まれる。通信制御部34は、上記の判定を実施する際に、例えば、IDテーブルにおける登録受信IDを利用する。
0022
通信制御部34は、自ECU10が使用する情報がフレームFに含まれる場合、フレームFに含まれた情報を取得し、記憶部20の一時記憶領域26に格納する。一方、通信制御部34は、自ECU10が使用する情報がフレームFに含まれていない場合、例えば、フレームFに含まれた情報を破棄するように制御する。
0023
CANトランシーバ38を介して受信されたフレームFには、送信側のECU10からの通信メッセージが含まれる場合がある。通信制御部34は、フレームFに対する誤り検出の結果を通して、通信システム1における不正な状態が生じていることを検出する。通信システム1における不正な状態の検出方法の詳細については後述する。
0024
監視制御部35は、通信制御部34によって上記の不正な状態が生じていることが検出された場合、ECU10におけるフェイルセーフ処理を実施するように制御する。ECU10におけるフェイルセーフ処理とは、不正な状態を検知したECU10が車両の走行等に対する影響を低減させて、車両の制御状態を安全な状態を維持するために実施する処理のことである。
0025
ECU10におけるフェイルセーフ処理として、例えば、監視制御部35は、通信制御部34が不正な状態を検出したとき以降の少なくとも一定時間の間においては、少なくとも新たにフレームFを受信しないように制御する。通信制御部34が受信しないようにするフレームFは、上記の不正な状態が生じたことを検出したフレームFに附されていた送信元を示すIDが附されたフレームFに限定してもよい。上記のように、ECU10は、フェイルセーフ処理により、受信するフレームFを制限することで、不正な状態を発生させた可能性が有る不正な装置や故障したECU10からの情報の受信を制限できる。なお、通信制御部34が上記の不正な状態を検出する処理の詳細については、後述する。
0026
通信制御部34は、CANコントローラ36にCANトランシーバ38からフレームFを送信させる。
0027
CANコントローラ36は、CANトランシーバ38を介して、バス2との間で種々のフレームFを送受信する。また、CANコントローラ36は、CANトランシーバ38からフレームFを受信する際には、CANトランシーバ38から供給される受信信号からフレームFを抽出して、抽出したフレームFを一時記憶領域26の受信バッファに格納する。CANコントローラ36は、フレームFにおける誤り検出処理を実行する誤り検出処理部361を含む。誤り検出処理部は、フレームFを送信する際には、フレームFの一部に含めて送信する所定の誤り検出符号を生成する。誤り検出処理部は、フレームFを受信する際には、フレームFの一部に含まれた誤り検出情報の検出の結果を出力する。
0028
CANトランシーバ38は、フレームFを送信する送信部、またはフレームFを受信する受信部として機能する。CANトランシーバ38は、バス2にフレームFを送信する際には、CANコントローラ36から取得した送信信号の論理状態に応じた差動電圧を生成してバス2に出力する。また、CANトランシーバ38は、バス2からフレームFを取得する際には、バス2の差動電圧から所定の電圧範囲に含まれるように整形した受信信号を生成して、CANコントローラ36に送信する。CANコントローラ36は、CANトランシーバ38から出力される信号からフレームFを抽出して記憶部20に格納する。
0029
以上に示すように、各ECU10は、上記の通信処理に関する共通の構成を有する。
0030
図3は、ECU10がバス2に送信するフレームFの形式例である。図3(a)に、1回の送信において送信されるフレームFを示す。フレームFは、フレームFの開始を表すスタートオブフレーム(SOF)、フレームFのID及びフレームFとリモートフレームを識別するためのリモートトランスミッションリクエスト(RTR)を含むアービトレーションフィールド、フレームFのバイト数等を表すコントロールフィールド、転送するフレームFの実体であるデータフィールド、フレームFの誤りを検出するための誤り検出符号(CRC)を付加するCRCフィールド、正しいフレームFを受信したユニットからの通知(ACK)を受けるACKスロット及びACKデリミタ、フレームFの終了を表すエンドオブフレーム(EOF)等を含む。
0031
ECU10は、フレームFのデータフィールド内の所定の位置にユーザデータを割り付けて通信する。ECU10は、ユーザデータの他に、ユーザデータの誤りを検査するための誤り検査用情報等を含めて、データフィールドに割り付けてもよい。ユーザデータの誤りを検査するための誤り検査用情報等には、例えば、単一のフレームF内のユーザデータまたは複数のフレームFを纏めたユーザデータの誤りを検査するための誤り検査用情報等を含めてもよい。ユーザデータに基づいて生成される誤り検査符号は、誤り検査用情報の一例である。
0032
図3(b)に、誤り検査用情報をデータフィールドに割り付けた一例を示す。誤り検査用情報は、例えば、SUM値(check sum)、パリティ、CRC(Cyclic Redundancy Check)等の誤り検出符号により構成される。
0033
なお、ユーザデータと誤り検査用情報とを、データフィールド内に割り付ける位置は任意であり、例えば、予め決定されているものとする。以下の説明において、ユーザデータと、上記の誤り検査用情報とを割り付けたフレームFを通信メッセージという。なお、フレームFに割り付けられたユーザデータには、その一部又は全部のビットの論理が反転されたものも含まれる。
0034
図4から図6を参照して、通信システムにおける不正な状態の検出処理について説明する。図4から図6に示す処理は、本実施形態におけるネットワークNWにおいて特段の不正な行為(不正行為ともいう。)が実施されない場合を示し、送信側の装置と受信側の装置が連携して機能することを示すものである。なお、ネットワークNWにおいて不正行為が実施されている場合には、受信側の装置が、その行為に対する検出処理を実施することになる。
0035
図4は、通信システムにおける送受信処理のデータフローを示す図であり、図5は、通信システムにおける送信処理の手順を示すフローチャートである。図6Aと図6Bは、通信システムにおける受信処理の手順を示すフローチャートである。以下の説明においてECU10−1を送信側の装置(送信デバイス)とし、ECU10−2を受信側の装置(受信デバイス)とする場合を例示して説明する。なお、図6Bについては後述する。
0036
(データの送信)
通信システム1は、ECU10間で誤り検出符号を用いて通信を実施して、受信した通信メッセージについて誤り検出符号を用いて検証する。その対象とする通信は、通信システム1における一部又は全部のECU10間で実施されるものとする。通信システム1は、ユーザデータ(以下、送信データTXD1という。)に基づいて誤り検出符号(以下、ECC1という。)を算出するための生成演算式(以下、生成演算式1という。)は、予め定められており、ECC1を用いて通信するECU10間で予め共有される。例えば、ECU10−1とECU10−2とにおけるCANコントローラ36は、生成演算式1による演算を可能とする。生成演算式1の対象とするデータは、送信データTXD1を含む。例えば、生成演算式1は、SUM値、パリティ、CRCなどを算出するものであってもよい。
0037
例えば、生成演算式1として、SUM値、パリティ、CRCなどを生成する式を適用するならば、生成されるECC1のデータ量は、演算の対象のデータ量(例えば、送信データTXD)に依存しない固定長にすることができ、更に演算の対象のデータ量よりも少ないデータ量にできる。例えば、送信データTXDとして、逐次大きさが変化する制御量等を含む指令値、又は、送信時の時刻を示す時刻情報を含まれるように構成することにより、生成されるECC1は遂次変化するものになる。上記の時刻情報は、送信データTXD1に含まれるデータの検出時刻、それを送信する送信時刻、送信に関連する処理の完了時刻など、送信データの送信に関する処理に伴う時刻とする。このようなECC1は、送信データTXD1に基づいた擬似乱数とみなすことができる。
0038
以下、図5を参照し、ECU10−1が通信メッセージをECU10−2宛に送信する際の手順を順に説明する。
0039
まず、ECU10−1の制御部30は、通信メッセージの基となる送信データTXD1を生成し(Sa12)、一時記憶領域26内のTXD1記憶領域261に格納する。
0040
次に、ECU10−1のCANコントローラ36は、TXD1記憶領域261に格納された送信データTXD1に基づいて、生成演算式1に基づいた生成演算の実施によりECC1を算出する(Sa14)。この生成演算式1は、受信した通信メッセージの信ぴょう性を検証するための情報に利用する。
0041
次に、ECU10−1の制御部30(通信制御部34)は、送信データTXD1に対し、所定のビットパターンで指定されるビットの論理を反転して、その結果の送信データTXD2を得て(Sa16)、一時記憶領域26内のTXD2記憶領域262に格納する。例えば、所定のビットパターンによって、対象とするビットの位置が決定される。対象とするビットは、生成演算式1の対象範囲内の任意の位置の少なくとも1ビットが含まれていればよい。なお、送信データTXD2は、送信データTXD1と同様にECC1に対応付けられるものになる。
0042
次に、ECU10−1のCANコントローラ36は、TXD2記憶領域262に格納された送信データTXD2とECC1を、フレームF内の所定の位置に格納して送信する(Sa18)。なお、フレームF内の所定の位置は、ECU10−1とECU10−2で予め共有されるものである。通信システム1におけるフレームF内の所定の位置として、送信データTXD2とECC1を、例えば、フレームFのデータフィールド内に設けてもよい。ECU10−1は、送信データTXD2とECC1の対応関係を保持して、共通するフレームFに割り付けて送信する。
0043
(データの受信)
0044
以下、図6Aを参照し、ECU10−2が通信メッセージを受信する際の手順を順に説明する。
0045
ECU10−2は、フレームFを受信して、受信したフレームF(受信フレーム)から、受信データRXDとECC1を抽出する(Sa32)。例えば、ECU10−2のCANトランシーバ38は、受信データRXDとECC1を抽出し、記憶部20のRXD記憶領域263に書き込む。
0046
次に、ECU10−2は、受信データRXDに対して、上記の生成演算式1を用いてRXD_ECC1を算出する(Sa34)。RXD_ECC1は、送信側で算出されたECC1と同じ長さの固定長のデータである。例えば、ECU10−2のCANトランシーバ38は、受信データRXDに基づいてRXD_ECC1を算出する。
0047
次に、ECU10−2の制御部30は、算出したRXD_ECC1と、受信フレームから抽出したECC1とを比較する(Sa36)。
0048
比較の結果、一致していなかった場合、ECU10−2の制御部30は、受信フレームに異常がないと判定し(Sa42)、受信データRXDに基づいた受信処理を実施する(Sa44)。
0049
一方、比較の結果、一致した場合、ECU10−2の制御部30は、受信フレームに異常があると判定し(Sa46)、判定の結果に基づいて異常状態を通知する(Sa48)。
0050
上記の手順に従う処理を実施することにより、ECU10−2は、受信フレームから、ネットワークにおける不正な状態の有無を検出する。
0051
上記の第1の実施形態によれば、ECU10−1は、ECC1(誤り検出符号)を付加した通信メッセージを送信する。ECU10−2は、受信した通信メッセージに含まれる情報であって誤り検出符号(RXD_ECC1)の生成演算の対象範囲の情報をもとに、生成演算して得られるRXD_ECC1の値と、付加されたECC1が示す値との比較によって、異常を検出する。このようなECU10−1は、RXD_ECC1とECC1が示す値が不一致になるように、生成演算の対象範囲に含まれる情報の少なくとも一部を変更して、通信メッセージを生成する。ECU10−2は、受信した通信メッセージについて、RXD_ECC1とECC1が示す値が一致する場合に、異常を検出する。
0052
通信システム1は、通信メッセージを選択して受信するが、上記の検出方法を採ることにより、自ECU10が送信する際に用いるIDを含む通信メッセージ、つまり自ECU10が送信した通信メッセージ等を受信する必要はなく、受信する通信メッセージの個数の増大を招くことはない。これにより、通信システム1は、ネットワークにおける不正な状態を検出するための処理を煩雑にすることなく、より簡便な構成により、ネットワークNWにおける不正な状態を検出することができる。
0053
また、ECU10−1は、生成演算の対象範囲に含まれる情報であって、生成演算に用いられる情報を示すビット列のうち少なくとも一部のビットについて、当該ビットを反転させることにより、RXD_ECC1とECC1が示す値が不一致になるように変更してもよい。
0054
(第1の実施形態の第1変形例)
第1の実施形態の第1変形例について説明する。第1の実施形態では、送信データTXD1において、所定のビットパターンで指定されたビットの論理を反転して送信データTXD2を得るものとして説明したが、これに代えて、本変形例では送信データTXD1において論理の反転を実施するビットは、検証用のビットとして利用可能な送信データTXD1内の未使用ビット又は未定義ビットを利用してもよい。ECC1の生成演算において、バイト単位で処理をする場合、送信データTXD1がバイトの整数倍ではなかったり、送信データTXD1のビット列の途中に未使用ビット又は未定義ビットが発生したりすることがある。上記の本変形例によれば、このような未使用ビット又は未定義ビットを利用することにより、送信データTXD1のデータ量を増やすことなく、実施形態と同様の効果を奏することができ、更に、送信データTXD1として有意なデータの論理に影響することなく、上記のビットの反転を利用することができる。
0055
(第1の実施形態の第2変形例)
第1の実施形態の第2変形例について説明する。第1の実施形態では、送信データTXD2とECC1を、フレームFのデータフィールド内の所定の位置に格納する場合について説明したが、これに代えて、本変形例ではフレームFのデータフィールド以外にECC1を割り付ける場合を例示する。
0056
例えば、ECU10−1は、送信データTXD2をフレームFのデータフィールド内に、ECC1をフレームFのCRCフィールド内にそれぞれ割り付ける。この場合、ECC1は、CAN仕様のCRCを算出する生成演算式1により算出される。上記の本変形例によれば、第1の実施形態と同様の効果を奏する他に、フレームFのデータフィールド内で伝送可能なデータ量が、本変形例の方が多くなる。
0057
(第1の実施形態の第3変形例)
第1の実施形態の第3の変形例について説明する。第1の実施形態では、ECU10−2は、受信した通信メッセージについて、生成演算して得られるRXD_ECC1の値と、ECU10−2によって付加された誤り検出符号(ECC1)が示す値とが一致する場合に、異常を検出することとした。本変形例のECU10−2はこれに加えて、前記生成演算して得られるRXD ECC1の値と前記付加された誤り検出符号(ECC1)が示す値とが、送信デバイス(ECU10−1)による変更操作の影響を超えて異なる場合にも、異常を検出する。ここで、「送信デバイスによる変更操作」とは、送信デバイス(ECU10−1)が、受信デバイスによりRXDから生成演算して得られるRXD ECC1の値と付加された誤り検出符号(ECC1)が示す値とが不一致になるように行う操作であって、生成演算の対象範囲に含まれる情報の少なくとも一部を変更する操作または生成演算して得られるRXD ECC1の値とは異なる値を誤り検出符号(ECC1)として付加する操作のことをいう。
0058
例えば、ECU10−1が、生成演算の対象範囲(TXD1)に含まれる情報の少なくとも一部を変更しTXD2を生成する操作を、図4と図5に示すSa16における処理において、上記の変更操作として行う場合について説明する。ECU10−1とECU10−2とは、予め、生成演算の対象範囲(TXD1)に含まれる情報のうち、Sa16の処理により変更される部分(変更予定部分)を示す情報を共有している。例えば、変更予定部分を示す情報は、当該部分の位置を示す情報や当該部分を特定可能な識別情報であってもよい。図6Bに示すように、前述の図6Aと同様に処理を進め、ECU10−2は、受信したメッセージ(フレームF)から生成演算して得られるRXDECC1の値と、受信フレームから抽出したECC1とを比較する(Sa36)。
0059
図6Bに示す本変形例においては、上記Sa36における比較の結果、一致していなかった場合に、ECU10−2の制御部30は、その不一致が、生成演算の対象範囲に含まれる情報のどの部分が変更されたことに基づくものかを推定し(Sa411)、変更された部分(変更部分)を特定する(Sa412)。ECU10−2の制御部30は、特定した変更部分と、予め共有されたルールで定められた変更予定部分とが異なるか否かを判定する(Sa413)。
0060
次に、Sa413において一致すると判定した場合、ECU10−2の制御部30は、受信フレームに異常がないと判定し(Sa42)、受信データRXDに基づいた受信処理を実施する(Sa44)。
一方、Sa36における比較の結果、一致した場合、又は、Sa413において異なると判定した場合に、ECU10−2の制御部30は、受信フレームに異常があることを検出し(Sa46)、異常状態を通知する(Sa48)。
0061
上記のように、ECU10−1が、受信データRXDに基づいて生成演算して得られるRXDECC1の値と、それに付加されていたECC1Aが示す値とが、送信デバイス(ECU10−1)による変更操作の影響を超えて異なる場合に、ECU10−2は、通信による異常を検出することができる。
0062
(第1の実施形態の第4変形例)
第1の実施形態の第4変形例について説明する。第1の実施形態では、ECU10−1は、RXD_ECC1とECC1が示す値が不一致になるように、生成演算の対象範囲に含まれる情報の少なくとも一部を変更して、通信メッセージを生成するものとして説明した。本変形例のECU10−1は、これに代えて、RXD_ECC1とECC1が示す値が不一致になるように、RXD_ECC1として得られる値とは異なる値をECC1として付加して、通信メッセージを生成するものを例示する。
0063
例えば、ECU10−1が、RXD_ECC1として得られる値とは異なる値の誤り検出符号を付加した通信メッセージを送信した場合について説明する。その場合の一例として、ECU10−1が、送信データTXD1から生成されたECC1を付加して通信メッセージを送信する前に、送信データTXD1から生成されたECC1と異なる値のECC1A(誤り検出符号)に変更して、ECC1としてECC1Aを付加した通信メッセージを送信する場合などが挙げられる。この場合、ECU10−2は、RXD_ECC1とECC1が示す値が不一致になることに変わりはない。
上記の変形例によれば、ECU10−1が、RXD_ECC1として得られる値とは異なる値の誤り検出符号を付加した通信メッセージを送信する場合においても、第1の実施形態と同様の効果を奏するものになる。
0064
さらに、本変形例のECU10−2は、これに加えて、受信データRXDに基づいて生成演算して得られるRXDECC1の値と、それに付加されていた誤り検出符号(ECC1)が示す値とが、送信デバイス(ECU10−1)による変更操作の影響を超えて異なる場合にも、異常を検出するようにしてもよい。例えば、ECU10−1が、生成演算して得られるRXD ECC1の値とは異なる値のECC1Aを誤り検出符号として付加する操作を、変更操作として行う場合について説明する。ECU10−1とECU10−2とは、予め、どの値をどの値に置き換えて誤り検出符号に付加するのかを共有している。受信デバイス(ECU10−2)は、受信したメッセージから生成演算して得られるRXD ECC1の値と付加された誤り検出符号(ECC1A)が示す値とが不一致の場合に、その不一致が、その誤り検出符号(ECC1A)がどの値から置き換えられたことに基づくものかを推定する。受信デバイス(ECU10−2)は、当該推定によって特定した変換前値と、予め共有されたルールから定められる変換前値とが異なっている場合に、通信の異常を検出する。
0065
(第2の実施形態)
第2の実施形態について説明する。第1の実施形態では、送信データTXD2とECC1を、フレームF内に格納して送信する場合について説明したが、これに代えて、本変形例では、ECU10−1が送信データTXD2とECC1を秘匿して送信する場合を例示する。以下、相違点を中心に説明する。
0066
第1の実施形態の構成では、ECU10−1は、送信データTXD2とECC1とを暗号化することなく、そのままフレームFに割り付けて送信しており、上記の位置の情報を有する受信モジュールは、送信された通信メッセージを傍受することが可能である。
0067
第1の実施形態の構成において、送信データTXD2とECC1をフレームFに割り付ける位置の情報を秘匿することで、その位置の情報を有していない受信デバイス(受信装置)は、受信フレームから受信データRXD2とECC2とを抽出することができないようにすることができる。このように、第1の実施形態の構成では、位置の情報が公開されないという条件付きで、送信データTXD2とECC1を秘匿することが可能である。
0068
そこで、本実施形態では、図7から図10に示すように、送信データTXD2とECC1とがフレームFに割り付けられる位置の情報を有しているだけでは傍受することができないように構成する。つまり、送信モジュールが送信データTXD2とECC1とを秘匿して送信するように構成し、とその処理について説明する。図7から図9に示す処理は、本実施形態におけるネットワークNWにおいて特段の不正な行為(不正行為ともいう。)が実施されない場合を示すものである。
0069
図7と図8は、通信システムにおける送受信処理のデータフローを示す図であり、図9は、通信システムにおける送信処理の手順を示すフローチャートである。図10は、通信システムにおける受信処理の手順を示すフローチャートである。以下の説明においてECU10−1が送信データTXD2とECC1を秘匿して送信する暗号化手法を例示する。
0070
(第1の手法)送信データTXD2とECC1とを纏めて暗号化する。
送信データTXD2とECC1とを纏めて暗号化することで、暗号化せずに送信される情報が無くなるため、秘匿性を確保できる。
0071
(第2の手法)送信データTXD2を暗号化し、ECC1は暗号化しない。
送信データTXD2のみを暗号化することで秘匿性を確保する。ECC1は暗号化せずに送信されるが、ECC1の情報から送信データTXD1も送信データTXD2も生成することができない。送信データTXD2の秘匿性が確保されれば、送信データTXD1とECC1のデータの組としての秘匿性も確保できる。
0072
上記のとおり、本実施形態の通信システム1では、少なくとも送信データTXD2を暗号化することで、送信データTXD2とECC1のデータの組としての秘匿性を確保する。暗号化の具体的な方法としては、既知の暗号化手法の何れかを利用することができる。以下、第1の手法を例示して、その詳細を説明する。
0073
(公開鍵の通知)
本実施形態におけるECU10−1の監視制御部35は、暗号化時に用いる秘密鍵と対になる公開鍵を生成する。ECU10−1の監視制御部35は、ECU10−2宛に、受信データRXDに対する認証処理に用いる公開鍵を通知する。ECU10−2は、受信データRXDに対する認証処理に用いる公開鍵を受信して保持する。
0074
(データの送信)
まず、ECU10−1の制御部30は、通信メッセージの基となる送信データTXD1を生成する(Sa12)。
0075
次に、ECU10−1の制御部30は、送信データTXD1に基づいて、生成演算式1に基づいた生成演算の実施によりECC1を算出する(Sa14)。
0076
次に、ECU10−1の制御部30は、送信データTXD1に対し、所定のビットパターンで指定されたビットの論理を反転して送信データTXD2を得る(Sa16)。
0077
次に、ECU10−1の監視制御部35は、秘密鍵を用いて、送信データTXD2とECC1の組に対する暗号化処理を実施する(Sa20)。
0078
次に、ECU10−1の監視制御部35は、暗号化処理された送信データTXD2とECC1の組を、フレームFのデータフィールド内の所定の位置に格納して、送信する(Sa22)。
0079
(データの受信)
次に、ECU10−2のCANコントローラ36は、フレームFを受信して、受信したフレーム(受信フレーム)から、暗号化処理された送信データTXD2とECC1の組を抽出する(Sa30)。
0080
次に、ECU10−2の監視制御部35は、公開鍵を用いて、抽出した送信データTXD2とECC1の組に対する復号化処理を実施して、受信データRXDとECC1を取得する(Sa32A)。
0081
ECU10−2の監視制御部35は、受信データRXDに対して、上記の生成演算式1を用いてRXD_ECC1を算出する(Sa34)。Sa36以降の処理は、第1の実施形態と同様である。
0082
上記の実施形態によれば、第1の実施形態と同様の効果を奏するものであるのに加えて、ECU10−1は、特定のビットの論理を変更した通信メッセージを暗号化して、ECU10−2宛に送信する通信メッセージとすることにより、ECU10間の通信を秘匿することができる。
0083
上記の各変形例によれば、様々な構成や方式のネットワークNWを用いた場合においても、上記の実施形態と同様の効果を奏することができる。上記の実施形態では、通信プロトコルの一例としてCANを例示して説明したが、例えば、LAN(Local Area Network)等で利用されるEthernet(登録商標)を通信プロトコルと利用する場合にも適用することができる。この場合、例えば、EthernetのMAC(media access control)フレームを上記のフレームFとし、MACフレームのペイロードに、上記の送信データTXD2を割り当てて、MACフレームのCRCに上記のECC1を割り当ててもよい。
0084
以上説明した少なくともひとつの実施形態によれば、通信システム1は、誤り検出符号(ECC1)を付加した通信メッセージを送信する送信デバイス(ECU10−1)と、受信した通信メッセージに含まれる情報であって誤り検出符号の生成演算の対象範囲の情報(送信データTXD1)をもとに生成演算して得られる値(RXD_ECC1)と、前記付加された誤り検出符号が示す値(ECC1)との比較によって、異常を検出する受信デバイス(ECU10−2)とを備える。送信デバイスは、前記生成演算して得られる値と前記付加された誤り検出符号が示す値とが不一致になるように、前記生成演算の対象範囲に含まれる情報の少なくとも一部を変更して、通信メッセージを生成する。前記受信デバイスは、受信した通信メッセージについて、前記生成演算して得られる値と前記付加された誤り検出符号が示す値とが一致する場合に、異常を検出することにより、より簡便な構成により、ネットワークにおける不正な状態を検出することができる。
0085
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
0086
1‥通信システム、2…バス、3…DLC、10…ECU、10−1…ECU(送信デバイス)、10−2…ECU(受信デバイス)、10−3…ECU、20…記憶部、30…制御部、50…外部装置。