JP6559619B2 - 通信システム、通信装置、通信方法、およびプログラム - Google Patents

通信システム、通信装置、通信方法、およびプログラム Download PDF

Info

Publication number
JP6559619B2
JP6559619B2 JP2016133946A JP2016133946A JP6559619B2 JP 6559619 B2 JP6559619 B2 JP 6559619B2 JP 2016133946 A JP2016133946 A JP 2016133946A JP 2016133946 A JP2016133946 A JP 2016133946A JP 6559619 B2 JP6559619 B2 JP 6559619B2
Authority
JP
Japan
Prior art keywords
bus
frame
bit error
data
communication device
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
JP2016133946A
Other languages
English (en)
Other versions
JP2018007130A (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.)
Denso Corp
Nippon Telegraph and Telephone Corp
Original Assignee
Denso Corp
Nippon Telegraph and Telephone 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 Denso Corp, Nippon Telegraph and Telephone Corp filed Critical Denso Corp
Priority to JP2016133946A priority Critical patent/JP6559619B2/ja
Publication of JP2018007130A publication Critical patent/JP2018007130A/ja
Application granted granted Critical
Publication of JP6559619B2 publication Critical patent/JP6559619B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

この発明は、制御機器で用いる通信技術に関する。
自動車や船舶、航空機、その他の制御機器等の内部では、エレクトロニックコントロールユニット(ECU: Electronic Control Unit)と呼ばれるマイクロコンピュータが複数個搭載されており、電子制御が行われている。例えば自動車では、複数のECUやセンサ間で制御情報のデータ転送を行う際に、駆動系の制御ではController Area Network(CAN)、ボディ系の制御ではLocal Interconnect Network(LIN)といった制御用の車載通信プロトコルが一般的に利用されている。このような車載通信プロトコルを用いて、車速、エンジン回転数、舵角、故障情報等の車載制御情報に関するデータの送受信が、ECU間やセンサ間で行われている。
例えば、LIN通信プロトコルは、図1に示すように、単一のマスターノード1および複数のスレーブノード2−1,2−2がLINバス3に接続されて構成される。LINバス3は通常1本のメタル線で構成されるシリアルバスである。図1の例ではスレーブノードを2個のみ図示しているが、LIN通信プロトコルでは最大15個のスレーブノードを用いることが可能である。LIN通信プロトコルの基本的な通信単位はフレームと呼ばれ、フレームにはヘッダーとレスポンスの2種類がある。ヘッダーは、ブレーク(Sync break)、同期バイト(Sync field)、識別子(ID field)の3つの領域から構成されるフレームである。レスポンスは、データ(Data field)、チェックサム(Checksum field)の2つの領域から構成されるフレームである。データ領域は最大8バイトであり、チェックサムは1バイトである。
LIN通信プロトコルによる通信は、マスターノード1が相手先のスレーブノード2の識別子(図1の例では、「ID: 0x01」)を含むヘッダーを送信することで開始される。このとき、ヘッダーはLINバス3上にブロードキャストされ、該当する識別子「ID: 0x01」を持つスレーブノード2−1のみが受信し、そのヘッダーに対するレスポンスを送信する。次に、受信ノードに対応する識別子(図1の例では、「ID: 0x02」)を持つスレーブノード2−2がレスポンスを受信する。LIN通信プロトコルの詳細については、非特許文献1を参照されたい。
車載通信プロトコルでは、データの送信を行うECU(以下、「送信ノード」と呼ぶ)が、バス上に送信したデータが正しくバス上に流れているかを確認するために、バス上に流れているデータをバイト単位またはビット単位で監視し、自身が送信したデータとバス上のデータが一致しているかを確認する。もし、両者が一致していなければ、送信ノードは何らかの通信エラーが起きたと判断し(以下、このエラーを「ビットエラー」と呼ぶ)、バスへのデータ送信を停止することが一般的に行われている(例えば、非特許文献2参照)。このように、ビットエラーを検出した場合に送信ノードがバスへのデータ送信を停止することにより、誤ったデータをバス上に送信しないように制御している。なお、LIN通信プロトコルでは、通信エラーを検出する方法については仕様で決められているが、通信エラーを検出した後の処理については規定されておらず、アプリケーションが任意に実装することが可能となっている。
ISO/DIS 17987-3.2, "Road vehicles -- Local Interconnect Network (LIN) -- Part 3: Protocol specification, ICS: 01.040.43; 43.020, 2015-12-05. サイプレスセミコンダクタ,"F2MC-16FX Family MB96600 Series LINの使用方法",AN704-00007-2v0-J,2.0版,2012年4月
従来の車載通信プロトコルの実装では、送信ノードと受信ノードとの間で正しいデータ伝送を行うために、ビットエラーが検出された場合には、一般的に、送信ノードがデータ送信を停止することを行っていた。しかしながら、このような実装では、攻撃者が不正データをバス上に送信し、受信ノードにそのデータが正しいものと誤認識させることにより、不正な挙動を誘発して自動車が危険な状況に陥る可能性があった。このような攻撃方法には、レスポンスの衝突による攻撃と、ヘッダーの衝突による攻撃の2種類がある。以下、各攻撃方法の詳細を順に説明する。
図2を参照して、レスポンスの衝突による攻撃の流れを説明する。まず、マスターノード1がヘッダー(図2の例では、「ID: 0x01」)をLINバス3上に送信する。次に、識別子「ID: 0x01」を持つスレーブノード2−1がヘッダーに応じてレスポンスを送信する。このとき、同時に、攻撃者4が何らかの方法でLINバス3にアクセスし、不正なレスポンスを送信する。これにより、正規のレスポンスと不正なレスポンスの衝突が起きる。スレーブノード2−1は例えばバイト単位でLINバス3上のデータを監視しているとすると、ビットエラーを検知して衝突が起きたバイト以降のデータ送信を停止する。一方、攻撃者4は衝突を発生させたバイトから連続して不正なレスポンスを送信する。これにより、LINバス3上には攻撃者4が送信した不正なレスポンスのみが送信される。受信ノードであるスレーブノード2−2は不正なレスポンスを正規のレスポンスと誤認識して受信してしまい、不正な挙動が誘発されることになる。
図3に、レスポンスの衝突による攻撃のタイムチャートを示す。まず、マスターノードがヘッダーをバス上に送信する。次に、ヘッダーを受信したスレーブノードがレスポンス(図3の例では、「0xAA ……」)を送信する。同時に、攻撃者が不正なレスポンス(図3の例では、「0xA0 0x01 0x02 0x03」)をバス上に送信する。これにより、1バイト目(「0xAA」と「0xA0」)でレスポンスの衝突が起きる。スレーブノードはビットエラーを検知してレスポンスの2バイト目以降の送信を停止するが、攻撃者は不正なレスポンスの送信を継続するため、バス上のデータは不正なレスポンス(「0xA0 0x01 0x02 0x03」)のみとなる。
図4を参照して、ヘッダーの衝突による攻撃を説明する。攻撃者がヘッダーの衝突を故意に引き起こすことにより、スケジュールに記載された送受信の順番を変え、かつ、不正なレスポンスを正しいものとして受信ノードに受信および解釈させることが可能となる。ここで、スケジュールとはマスターノードのみが所有する、送信タイミングや送信の順番が定義されている情報である。
まず、マスターノード1がヘッダー(図4の例では、「ID: 0x02」)をLINバス3上に送信する。このとき、同時に、攻撃者4が何らかの方法でLINバス3にアクセスして、不正なヘッダー(図4の例では、「ID: 0x01」)をLINバス3上に送信する。これにより、LINバス3上には不正なヘッダー(ID:0x01)がブロードキャストされるため、本来は識別子「ID:0x02」を持つスレーブノード2−2が受信および解釈すべきヘッダーが、スレーブノード2−1により受信および解釈されることになる。以降は、上述したレスポンスの衝突による攻撃と同様にして、スレーブノード2−2に不正なレスポンスを受信させ、不正な挙動を誘発させることが可能となる。
この発明は、上述のような点に鑑みて、攻撃者が不正なデータをバス上に送信したとしても、不正な操作を行うことができない通信技術を提供することである。
上記の課題を解決するために、この発明の通信システムは、複数の通信装置がバスにより接続された通信システムであって、通信装置は、他の通信装置へ伝送する情報が設定されたフレームをバスへ送信するフレーム送信部と、バスの状態を監視し、フレームのデータとバス上のデータとが一致しないビットエラーを検知するエラー検知部と、ビットエラーを検知したら、ビットエラーが発生した位置からフレームの終了位置までバス上で転送されるデータを無効化する防御処理を実施する防御処理部と、を含む。
この発明によれば、攻撃者が不正なデータをバス上に送信したとしても、異常を検知した直後に不正なデータを無効化する防御処理を実施するため、不正な操作を行うことができなくなる。
図1は、従来の車載通信プロトコルを説明するための図である。 図2は、レスポンスの衝突による攻撃を説明するための図である。 図3は、レスポンスの衝突による攻撃を説明するための図である。 図4は、ヘッダーの衝突による攻撃を説明するための図である。 図5は、通信システムの機能構成を例示する図である。 図6は、通信装置(マスターノード)の機能構成を例示する図である。 図7は、通信装置(スレーブノード)の機能構成を例示する図である。 図8は、レスポンスの衝突による攻撃に対する通信方法の処理手続きを例示する図である。 図9は、パラレル通信におけるバスの構成を説明するための図である。 図10は、レスポンスの衝突による攻撃に対する防御信号を説明するための図である。 図11は、防御信号により異常を検知する構成を説明するための図である。 図12は、ヘッダーの衝突による攻撃に対する通信方法の処理手続きを例示する図である。 図13は、データの衝突による攻撃に対する通信方法の処理手続きを例示する図である。
この発明の通信技術では、ノード(ECUやセンサ)間でのデータ送受信に用いる車載通信プロトコルにおいて、データ送信時にビットエラーが発生した場合、不正なデータを無効化する防御処理を実施し、安全状態へ移行することを示す信号をバス上に送信する。また、安全状態に移行した後に異常が連続しなければ正常状態へ復帰することを示す信号をバス上に送信する。この実装により、攻撃者が不正なデータをバス上に送信することで、正規のデータの送信を停止させると共に、不正な挙動を誘発する不正なデータを通信に挿入したとしても、送信ノードが実施した防御処理により不正なデータが無効化され、安全な状態へ移行する。これにより、攻撃者が不正なデータをバス上に送信したとしても不正な挙動を誘発することができなくなる。
また、例えば自然環境の影響等、意図的な攻撃ではない要因により、送信ノードがバス上に送信したデータの一部が変化した場合であっても、送信ノードがビットエラーを検知して受信ノードへ異常が起きたことを通知し、全ノードが安全状態に移行することができ、その後に正常状態へ復帰することが可能である。そのため、従来技術に比べて、車載通信プロトコルの完全性を担保できる。
すなわち、この発明の通信技術は、攻撃者によって攻撃された可能性の高い状況で、攻撃者が送信する不正データを有効にしないように防御処理で無効化し、異常が連続で続かなければ自動で正常状態に復元することがポイントである。また、例えば自然環境の影響等、意図的な攻撃とは異なる要因でデータ値が変化したとしても、同等の処理を用いて自動で正常状態に復元することができる点もポイントとなる。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
実施形態の通信システムは、図5に示すように、通信装置(マスターノード)1、N(1≦N≦15)台の通信装置(スレーブノード)2−1,…,2−Nを含み、各通信装置はバス3により接続される。バス3には、攻撃者4が何らかの方法でアクセス可能となっているものとする。通信装置(マスターノード)1は、図6に示すように、フレーム送信部11、エラー検知部12、防御処理部13、および状態移行指示部14を含む。通信装置(スレーブノード)2−n(ただし、nは1以上N以下の整数)は、図7に示すように、フレーム送信部21、エラー検知部22、防御処理部23、エラー通知部24、および状態移行部25を含む。この通信システムが後述する各ステップの処理を行うことにより実施形態の通信方法が実現される。
実施形態の通信装置は、車載通信プロトコルにより通信を行う機能を備えたマイクロコンピュータもしくはマイクロコントローラであり、予めフラッシュメモリにインストールされたコンピュータプログラムを実行することにより、後述する各構成部の処理を実現する。通信装置は、車載通信プロトコルによる制御の対象とされる車体装備(例えば、パワーウィンドウや電動ミラー、エアコン、オーディオなど)に組み込まれて利用される。
以下、図8を参照して、実施形態の通信方法の処理手続きの一例を説明する。ここでは、レスポンスの衝突による攻撃を例として説明する。
ステップS11において、マスターノード1のフレーム送信部11は、受信ノードであるスレーブノード2−nの識別子を設定したヘッダーをバス3へ送信する。ヘッダーはバス3を通じてすべてのスレーブノード2−1,…,2−Nへブロードキャストされ、ヘッダーに設定された識別子をもつスレーブノード2−nのみがヘッダーを受信する。
ステップS21において、スレーブノード2−nのフレーム送信部21は、受信したヘッダーを解釈して所望の処理を実行し、その応答となるレスポンスをバス3へ送信する。ここでは、レスポンスは8バイトのデータ領域をもつものとする。
ステップS31において、攻撃者4は、スレーブノード2−nからレスポンスが送信されると同時に、不正な挙動を誘発するための不正なデータが設定された不正なレスポンスをバス3へ送信する。ここでは、不正なレスポンスは、正規のレスポンスと1バイト目が異なるデータをもつものとする。これにより、スレーブノード2−nが送信した正規のレスポンスと攻撃者4が送信した不正なレスポンスとがバス3上で衝突を起こす。
ステップS22において、スレーブノード2−nのエラー検知部22は、バス3上のデータをバイト単位で監視し、自身が送信したデータとバス3上のデータとを比較してビットエラーを検知する。ここでは、1バイト目が異なる不正なレスポンスが送信されたため、1バイト目でビットエラーが検知される。
ステップS23において、スレーブノード2−nの防御処理部23は、エラー検知部22においてビットエラーが検知されると、エラーが発生したバイト位置の直後からレスポンスの終了位置まで、不正なレスポンスを無効化するための防御処理を実施する。この防御処理としては複数の実装が考えられる。例えば、バス3がシリアル通信の場合には、(1)絶縁状態にスイッチングする、(2)バス3上で転送されるデータを無効化する防御信号を送信する、などが考えられる。データを無効化する防御信号としては、(2−1)バス3上で転送されるデータを上書きする防御信号や、(2−2)バス3に対して異常な電位を付与する防御信号、などが考えられる。また、例えば、バス3がパラレル通信の場合には、(2−3)データを無効化する防御信号を送る際に、ビットエラーを検知した信号線とは異なる信号線を用いて、データを無効化する防御信号を送信することができる。
(2−1)バス3上で転送されるデータを上書きする防御信号について、より詳しく説明する。例えば、1バイト目でビットエラーが検知された場合、2バイト目から8バイト目までの7バイトとチェックサム1バイトに「0x00」が設定された信号を防御信号として送信する。車載通信プロトコルでは、物理層の仕様として0と1が同時に送信された場合、0を優先して伝送することが規定されているため、バス3上では電気的に0が優先して送信される。そのため、攻撃者4が2バイト目以降に不正なデータを送信したとしても、防御信号により上書きされて、他のノードが不正なレスポンスを受信することがなくなる。ここでは、1バイト目でビットエラーが発生する例を説明したが、他のバイト位置(2バイト目から8バイト目のいずれか)で衝突が起きた場合も同様である。
(2−2)バス3に対して異常な電位を付与する防御信号は、例えば、CANのような複数線による通信プロトコルにおいて、エラー検知後に1線のみに特定の電位を付与するものである。このとき、各ノードには特定の信号線から特定の電位を受け取ると異常値と認識して受信しないような機能を持たせておく。
(2−3)パラレル通信の場合、図9に示すように、処理したい内容を示すデータを通信するN本の信号線Sig1−1,…,Sig1−Nと、それらのデータが有効か無効かを示すデータを通信する信号線Sig2とによりノード間が接続される構成となる。このとき、いずれかの信号線Sig1−1,…,Sig1−Nでエラーを検知した場合、エラーを検知したビットまたはバイト以降に信号線Sig2によってデータを無効化する防御信号を送信する。信号線Sig2により送信する防御信号の論理値は、物理層の仕様として電気的に優先される側の論理値に設定することで、データの完全性を守ることができる。
図10に、レスポンスの衝突による攻撃に対してバス上のデータを上書きする防御信号を送信する際のタイムチャートを示す。まず、マスターノードがヘッダーをバス上に送信する。次に、ヘッダーを受信したスレーブノードがレスポンス(図10の例では、「0xAA ……」)を送信する。同時に、攻撃者が不正なレスポンス(図10の例では、「0xA0 0x01 0x02 0x03」)をバス上に送信する。これにより、1バイト目(「0xAA」と「0xA0」)でレスポンスの衝突が起きる。ここで、スレーブノードはビットエラーを検知して2バイト目以降に「0x00」を設定した防御信号を送信する。攻撃者は不正なレスポンスの送信を継続するが、防御信号の方が優先されるため、バス上に不正なレスポンスが送信されることを防ぐことができる。
ステップS12において、マスターノード1のフレーム送信部11は、スケジュールに従って、次のヘッダーをバス3へ送信する。ヘッダーはバス3を通じてすべてのスレーブノード2−1,…,2−Nへブロードキャストされる。このときヘッダーに設定される識別子は、いずれのスレーブノードのものであってもよい。
ステップS24において、スレーブノード2−nのエラー通知部24は、ヘッダー内の識別子の値に関わらず、異常が起きていることをマスターノード1へ通知するためのレスポンスをバス3へ送信する。ここでは、1バイト目から8バイト目までがすべて「0x00」であるフレームを送信する。チェックサムは「0x00」でもよいし、通常のチェックサムの計算手法に基づいて算出した値を設定してもよい。
ステップS13において、マスターノード1の状態移行指示部14は、スレーブノード2−nから異常が起きていることを通知するレスポンスを受信すると、各スレーブノード2−1,…,2−Nを安全状態へ移行させるためのヘッダーをバス3上に送信する。このとき、ヘッダーに設定する識別子は「ID: 0x00」とする。状態移行指示部14は、安全状態へ移行させるためのヘッダーを送信するか否かを判断するため、各スレーブノード2−1,…,2−Nがバス3上に送信するレスポンスを監視する。
ステップS25において、スレーブノード2−nの状態移行部25は、マスターノード1から安全状態へ移行させるためのヘッダーを受信すると、安全状態へ移行する。ここで、安全状態とは、例えば、自動車を低速で動作する等、最低限の動作のみができる状態を意味する。
ステップS14において、マスターノード1の状態移行指示部14は、各スレーブノード2−1,…,2−Nの状態を監視するためのヘッダーをバス3へ送信する。スレーブノード2−nから防御信号や異常を通知するためのレスポンスが一定の回数連続してバス3へ送信された場合、スレーブノード2−nが危険な状態であるものとみなし、スレーブノード2−nを危険状態へ移行させるためのヘッダーをバス3へ送信する。一方、スレーブノード2−nから正常なレスポンスがバス3へ送信された場合、スレーブノード2−nが正常な状態に復帰したと判断し、スレーブノード2−nの安全状態を解除して正常状態へ移行させるためのヘッダーをバス3へ送信する。ここで、安全状態を解除するためのヘッダーは、例えば、識別子が「0xFB(2ビットのパリティ0x11+6ビットのフレームID: 0x3B)」を含むものとする。
ステップS26において、スレーブノード2−nの状態移行部25は、マスターノード1から危険状態へ移行させるためのヘッダーを受信すると、安全状態から危険状態へ移行する。危険状態に移行すると、スレーブノード2−nはバス3から論理的に切り離される。同時に、例えば、運転者に対して警告表示を示すなどして、異常が発生していることを通知する。
ステップS27において、スレーブノード2−nの状態移行部25は、マスターノード1から正常状態へ移行させるためのヘッダーを受信すると、安全状態から正常状態へ移行する。
上述のステップS24では、マスターノード1に異常を知らせるために、スレーブノード2−nはヘッダー内の識別子の値に関わらず、データ領域がすべて「0x00」のレスポンスを送信するものとした。このとき、マスターノード1の状態移行指示部14を、チェックサムを含めて最下位バイトから2バイト以上の「0x00」が続いたレスポンスを受信したら異常が起きたと判断するように構成することで、スレーブノード2−nの防御処理部23が送信した防御信号によりエラーを通知することができる。例えば、図11に示すように、データ領域の6バイト目で正規のレスポンスと不正なレスポンスの衝突が発生した場合、データ領域の7バイト目からチェックサムまでの3バイトで「0x00」が続くため、これを受信したマスターノード1は異常が起きたと判断することができる。この場合、スレーブノード2−nはエラー通知部24を備えなくてもよく、上述のステップS12およびS24は省略することができる。
上述のステップS13では、安全状態へ移行するためのヘッダーを各スレーブノード2−1,…,2−Nに送信したが、あらかじめ識別子(6ビット)の中に安全状態に移行するフラグを意味するビットを割り当てておいてもよい。例えば、識別子の最下位ビットに安全状態に移行するためのビットを割り当てたとする。ここでは、識別子の最下位ビットが1のときは正常状態を意味し、0のときは異常が起きて安全状態に移行する状態を意味するものとする。例えば、正常状態の識別子は「ID: 0x11(二進数表記で100010:左端が最下位ビット)」、安全状態に移行する場合は「ID: 0x10(二進数表記で000010:左端が最下位ビット)」となる。このとき、ビットエラーを検知したスレーブノード2−nが防御信号を送信した後、マスターノード1がスケジュールに沿ってヘッダーを送信する際に、最下位ビットを0に設定した識別子を含むヘッダーを送信する。各スレーブノード2−1,…,2−Nは識別子の最下位ビットを0に設定したヘッダーを受信したら安全状態に移行する。スレーブノード2−nからのレスポンスが正常に送信され、マスターノード1がスレーブノード2−nは正常状態に戻ったと判断した場合、次のヘッダーからは識別子の最下位ビットを1に設定したヘッダーを送信する。このようにして各スレーブノード2−1,…,2−Nは正常状態に復帰する。
上述のステップS14およびS27では、マスターノード1が安全状態を解除することを示す識別子を含むヘッダーを送信することにより、スレーブノード2−nが安全状態から正常状態へ復帰した。このとき、スレーブノード2−nに異常がなければ、マスターノード1が識別子を含むヘッダーを送付することなく、スレーブノード2−nが自律的に安全状態を解除してもよい。例えば、安全状態で正常な通信が行われた場合(すなわち、送信ノードがビットエラーを検知しなかった場合)、送信ノードであるスレーブノード2−nは自然に正常状態に移行する。このとき、他のスレーブノードは安全状態のままであるが、他のスレーブノードも自身が送信ノードとなったときに異常がなければ随時安全状態を解除すればよい。
以下、図12を参照して、実施形態の通信方法の処理手続きの他の例を説明する。ここでは、ヘッダーの衝突による攻撃を例として説明する。
ステップS11において、マスターノード1のフレーム送信部11は、受信ノードであるスレーブノード2−nの識別子を設定したヘッダーをバス3へ送信する。
ステップS32において、攻撃者4は、マスターノード1からヘッダーが送信されると同時に、例えば正規のヘッダーとは異なる識別子が設定された不正なヘッダーをバス3へ送信する。これにより、マスターノード1が送信した正規のヘッダーと攻撃者4が送信した不正なヘッダーとがバス3上で衝突を起こす。
ステップS15において、マスターノード1のエラー検知部12は、バス3上のデータをバイト単位もしくはビット単位で監視し、自身が送信したデータとバス3上のデータとを比較してビットエラーを検知する。
ステップS31において、攻撃者4は、不正なヘッダーを送信した後に、不正な挙動を誘発するためのデータが設定された不正なレスポンスをバス3へ送信する。
ステップS16において、マスターノード1の防御処理部13は、エラー検知部12においてビットエラーが検知されると、不正なレスポンスを無効化するための防御処理を実施する。ここでは、データ領域の1バイト目から8バイト目まですべて「0x00」が設定された信号を防御信号として送信する。この防御信号により攻撃者4が送信した不正なレスポンスが上書きされるため、他のノードが不正なレスポンスを受信することがなくなる。
以下、ステップS13からステップS27までの処理は、上述のレスポンスの衝突による攻撃の場合と同様である。
上述の実施形態では、1台のマスタノードとN−1台のスレーブノードによるマスター・スレーブ方式の通信システムを例として説明したが、例えば、全ノードがマスターノードとなり得るマルチマスター方式としても、この発明の通信技術は適用できる。図13にマルチマスター方式においてデータの衝突による攻撃に対応する実施形態を示す。図13の例では、ノードAが送信したデータに対して攻撃者が不正なデータを衝突させる攻撃を行うが、ノードAがエラーを検知し、防御処理を実施している。ステップS15以降の処理は、マスター・スレーブ方式のヘッダ衝突による攻撃の場合と同様である。
このように構成することにより、攻撃者が不正なデータをバス上に送信したとしても、各ノードは異常を検知した直後に防御処理を実施するため、不正なデータが無効化される。その結果、攻撃者が任意の不正なデータをバス上に送信することにより不正な操作を行う攻撃ができなくなるという効果がある。
また、自然環境等の攻撃ではない要因で正規データの一部が変化しても、変化したデータは防御処理で無効化され、異常が連続しなければ正常状態に復帰することが可能である。そのため、車載通信プロトコルの完全性を従来技術に比べてより担保できる。
さらに、この発明は既存の車載通信プロトコルを基にしているため、容易な実装方法により実現できる。また、データ衝突時にマスターノードがデータを送信する場合やヘッダーの衝突時には、衝突が起きたバイトに続いて防御信号を送信するオーバーヘッド(通信量)のみであるため、通常の車載通信プロトコルと比較した全体のオーバーヘッドは少ない。
この発明の通信技術によるヘッダーまたはレスポンスの衝突による攻撃への対策は、技術的に組み合わせることを阻害する要因がない限り、他の技術による異なる対策法と同時に実装してもよい。
上述の実施形態では、LIN通信プロトコルを基にして、この発明の技術を適用する例を説明したが、この発明の適用可能な範囲はLIN通信プロトコルに限定されず、不正なデータを通信路上に送信することで不正な操作を行う攻撃が行われ得る通信プロトコルに対して汎用的に適用することが可能である。特に、この発明の通信技術は、ビットエラー検知が実装された車載通信プロトコルへの応用が有効である。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 通信装置(マスターノード)
2 通信装置(スレーブノード)
3 バス
4 攻撃者

Claims (11)

  1. 複数の通信装置がバスにより接続された通信システムであって、
    上記通信装置は、
    他の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信部と、
    上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知部と、
    上記ビットエラーを検知したら、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを上書きする防御信号を送信する防御処理を実施する防御処理部と、
    を含む通信システム。
  2. 複数の通信装置がバスにより接続された通信システムであって、
    上記通信装置は、
    他の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信部と、
    上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知部と、
    上記ビットエラーを検知したら、上記ビットエラーを検知した信号線とは異なる信号線を用いて、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを無効化する防御信号を送信する防御処理を実施する防御処理部と、
    を含む通信システム。
  3. 複数の通信装置がバスにより接続された通信システムであって、
    上記通信装置は、
    他の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信部と、
    上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知部と、
    上記ビットエラーを検知したら、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを無効化する防御処理を実施する防御処理部と、
    を含み、
    上記複数の通信装置は、Nを通信装置の台数として、1台のマスターノードとN−1台のスレーブノードとからなり、
    上記スレーブノードは、上記防御処理を実施した後に、上記ビットエラーの発生を通知する情報が設定されたフレームを上記バスへ送信するエラー通知部をさらに含む、
    通信システム。
  4. 請求項に記載の通信システムであって、
    上記マスターノードは、上記ビットエラーの発生を通知する情報が設定されたフレームを受信すると、安全状態へ移行する指示を示す情報が設定されたフレームを上記バスへ送信する状態移行指示部をさらに含み、
    上記スレーブノードは、上記安全状態へ移行する指示を示す情報が設定されたフレームを受信すると、安全状態へ移行する状態移行部をさらに含む、
    通信システム。
  5. 複数の通信装置がバスにより接続された通信システムにおいて用いられる上記通信装置であって、
    他の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信部と、
    上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知部と、
    上記ビットエラーを検知したら、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを上書きする防御信号を送信する防御処理を実施する防御処理部と、
    を含む通信装置。
  6. 複数の通信装置がバスにより接続された通信システムにおいて用いられる上記通信装置であって、
    他の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信部と、
    上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知部と、
    上記ビットエラーを検知したら、上記ビットエラーを検知した信号線とは異なる信号線を用いて、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを無効化する防御信号を送信する防御処理を実施する防御処理部と、
    を含む通信装置。
  7. 複数の通信装置がバスにより接続された通信システムにおいて用いられる上記通信装置であって、
    他の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信部と、
    上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知部と、
    上記ビットエラーを検知したら、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを無効化する防御処理を実施する防御処理部と、
    上記防御処理を実施した後に、上記ビットエラーの発生を通知する情報が設定されたフレームを上記バスへ送信するエラー通知部と、
    を含む通信装置。
  8. 複数の通信装置がバスにより接続された通信システムが実行する通信方法であって、
    第一の通信装置のフレーム送信部が、第二の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信ステップと、
    上記第一の通信装置のエラー検知部が、上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知ステップと、
    上記第一の通信装置の防御処理部が、上記ビットエラーを検知したら、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを上書きする防御信号を送信する防御処理を実施する防御処理ステップと、
    を含む通信方法。
  9. 複数の通信装置がバスにより接続された通信システムが実行する通信方法であって、
    第一の通信装置のフレーム送信部が、第二の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信ステップと、
    上記第一の通信装置のエラー検知部が、上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知ステップと、
    上記第一の通信装置の防御処理部が、上記ビットエラーを検知したら、上記ビットエラーを検知した信号線とは異なる信号線を用いて、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを無効化する防御信号を送信する防御処理を実施する防御処理ステップと、
    を含む通信方法。
  10. 複数の通信装置がバスにより接続された通信システムが実行する通信方法であって、
    第一の通信装置のフレーム送信部が、第二の通信装置へ伝送する情報が設定されたフレームを上記バスへ送信するフレーム送信ステップと、
    上記第一の通信装置のエラー検知部が、上記バスの状態を監視し、上記フレームのデータと上記バス上のデータとが一致しないビットエラーを検知するエラー検知ステップと、
    上記第一の通信装置の防御処理部が、上記ビットエラーを検知したら、上記ビットエラーが発生した位置から上記フレームの終了位置まで上記バス上で転送されるデータを無効化する防御処理を実施する防御処理ステップと、
    上記第一の通信装置のエラー通知部が、上記防御処理を実施した後に、上記ビットエラーの発生を通知する情報が設定されたフレームを上記バスへ送信するエラー通知ステップと、
    を含む通信方法。
  11. 請求項8から10のいずれかに記載の通信方法の各ステップをコンピュータに実行させるためのプログラム。
JP2016133946A 2016-07-06 2016-07-06 通信システム、通信装置、通信方法、およびプログラム Active JP6559619B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016133946A JP6559619B2 (ja) 2016-07-06 2016-07-06 通信システム、通信装置、通信方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016133946A JP6559619B2 (ja) 2016-07-06 2016-07-06 通信システム、通信装置、通信方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2018007130A JP2018007130A (ja) 2018-01-11
JP6559619B2 true JP6559619B2 (ja) 2019-08-14

Family

ID=60950005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016133946A Active JP6559619B2 (ja) 2016-07-06 2016-07-06 通信システム、通信装置、通信方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6559619B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733399B (zh) * 2019-04-07 2021-07-11 新唐科技股份有限公司 安全裝置、安全方法、安全系統以及安全設備

Also Published As

Publication number Publication date
JP2018007130A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
JP6280662B2 (ja) 不正制御抑止方法、不正制御抑止装置及び車載ネットワークシステム
CN107710657B (zh) 用于通信总线的实时数据安全的方法和装置
EP3018635B1 (en) In-vehicle communication system
JP7075886B2 (ja) ブロードキャストバスフレームフィルタ
EP3358803A1 (en) Systems and methods for transmitting messages in a controller area network
US11522878B2 (en) Can communication based hacking attack detection method and system
Takahashi et al. Automotive attacks and countermeasures on lin-bus
EP3772841B1 (en) A security module for a can node
WO2016201091A1 (en) System and method for guarding a controller area network
JP6369341B2 (ja) 車載通信システム
EP3772840B1 (en) A security module for a can node
JP2019008618A (ja) 情報処理装置、情報処理方法及びプログラム
KR101972457B1 (ko) Can 통신 기반 해킹공격 탐지 방법 및 시스템
JP2014236248A (ja) 電子制御装置、電子制御システム
JP6586500B2 (ja) データバスによってメッセージシーケンスを送信するための方法及び装置並びにこうして送信されるメッセージシーケンスに対する攻撃を認識するための方法及び装置
WO2017006537A1 (ja) 通信方法、プログラムおよびそれを利用した通信装置
Kwon et al. Mitigation mechanism against in-vehicle network intrusion by reconfiguring ECU and disabling attack packet
US11012453B2 (en) Method for protecting a vehicle network against manipulated data transmission
JP6559619B2 (ja) 通信システム、通信装置、通信方法、およびプログラム
JP6920667B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
WO2020137852A1 (ja) 情報処理装置
CN113556271B (zh) 非法控制抑止方法、非法控制抑止装置和车载网络系统
JP2023122636A (ja) 車両のソフトウェアの改竄の軽減
CN115643038A (zh) 总线系统中经由接收线路的帧无效

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190702

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190717

R150 Certificate of patent or registration of utility model

Ref document number: 6559619

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250