JP2020141414A - Ecu、ネットワーク装置 - Google Patents

Ecu、ネットワーク装置 Download PDF

Info

Publication number
JP2020141414A
JP2020141414A JP2020083497A JP2020083497A JP2020141414A JP 2020141414 A JP2020141414 A JP 2020141414A JP 2020083497 A JP2020083497 A JP 2020083497A JP 2020083497 A JP2020083497 A JP 2020083497A JP 2020141414 A JP2020141414 A JP 2020141414A
Authority
JP
Japan
Prior art keywords
data
network device
authentication
network
ecu
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.)
Withdrawn
Application number
JP2020083497A
Other languages
English (en)
Inventor
敏史 大塚
Toshifumi Otsuka
敏史 大塚
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2020083497A priority Critical patent/JP2020141414A/ja
Publication of JP2020141414A publication Critical patent/JP2020141414A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】ネットワーク上でなりすまし攻撃が発生した場合に、効率的に防御動作を行うことが可能となるネットワーク装置を提供する。【解決手段】ネットワーク装置は、複数のネットワーク装置とバスで接続されたネットワーク装置であって、バスを介して複数のネットワーク装置のうちの1つが送信元装置として送信するデータに含まれるメッセージ認証用情報に基づいて、認証を行う認証部と、認証が失敗した場合は、送信元装置が複数のネットワーク装置のうちの他のネットワーク装置になりすまして不正データを送信したと判断し、データを無効化する加工部とを有する。【選択図】図15

Description

本発明は、ECU、ネットワーク装置に関する。
本技術分野の背景技術として、非特許文献1がある。この文献には、「CANはバスネットワークを前提としており、やり取りされるメッセージには送信元や宛先ノードの情報が含まれず、同一バス内の全てのノードにブロードキャストされる。また、メッセージ認証や送信元認証機能がないため,容易になりすましが可能である。」ことを課題とし、解決手段として「CANの特徴であるブロードキャスト通信を利用し、不正メッセージがバス上に送信されていることを、なりすましの対象となったノード自身が検知し、エラーメッセージを送ることで、偽装メッセージの送信が完了する前にこれを破棄する」と記載されている。
T. Matsumoto, M. Hata, M. Tanabe, K. Yoshioka, K. Oishi,"A Method of Preventing Unauthorized Data Transmission in Controller Area Network", Vehicular Technology Conference (VTC Spring), 2012 IEEE 75th (2012)
非特許文献1には、送信ネットワーク装置のセキュリティ対策について記載が無い。送信ネットワーク装置が攻撃を受け動作不能になった場合には、他のネットワーク装置ではその攻撃を検出できないため、防御が困難になる。ネットワーク装置を攻撃から防御する際には、セキュリティモジュールの採用や脆弱性の実装を防ぐ検証方法など高度なセキュリティ対策が必要になり、それぞれの送信ネットワーク装置で対策コストが必要になる。
本発明の一態様によるECUは、複数のECUに通信線を介して接続されるECUであって、前記複数のECUの中の少なくとも1つの送信元ECUからのメッセージが有効なメッセージであるか否かを判断し、なりすましメッセージを検出する処理部と、前記なりすましメッセージが検出された場合は、前記なりすましメッセージをデータフレームの受信中にエラーフレームによって上書きするコントローラと、を有し、前記判断は複数ステップをもって行われ、第一のステップでは第一のフィルタを用いて判断し、前記第一のステップで認証が成功した場合、第二のステップでは、前記第一のフィルタとは異なる第二のフィルタを用いた認証を実施する。
本発明の一態様によるネットワーク装置は、複数のネットワーク装置に規格化されたネットワークを介して接続されるネットワーク装置であって、前記複数のネットワーク装置の中の少なくとも1つの送信元ネットワーク装置からのメッセージが有効なメッセージであるか否かを判断し、なりすましメッセージを検出して、前記なりすましメッセージをエラーフレームで上書きする処理部を有し、前記判断は複数ステップをもって行われ、第一のステップでは第一のフィルタを用いて判断し、前記第一のステップで認証が成功した場合、第二のステップでは、前記第一のフィルタとは異なる第二のフィルタを用いた認証を実施する。
本発明によれば、ネットワーク上でなりすまし攻撃が発生した場合に、その攻撃を検出する確実性を高め、効率的にその攻撃に対する防御動作を行うことが可能となる。
本発明の各実施形態におけるネットワーク装置を有するネットワークシステムの一例を示す図である。 ネットワークシステム内部構成の一例を示す図である。 ネットワーク装置の構成例を示す図である。 ネットワーク装置のソフトウェアモジュール構成の一例を示す図である。 ネットワーク上の通信プロトコルにおけるデータ構造の一例を示す図である。 ネットワーク上の通信プロトコルにおけるデータ長符号化の一例を示す図である。 ネットワーク上の通信プロトコルにおけるデータ構造の一例を示す図である。 ネットワーク上の通信プロトコルにおけるデータ構造の一例を示す図である。 ネットワーク上の通信プロトコルにおけるデータ構造の一例を示す図である。 ネットワーク上の通信プロトコルにおけるデータ構造の一例を示す図である。 フィルタテーブルの一例を示す図である。 認証手順の一例を示す図である。 署名付き通信データフォーマットの一例を示す図である。 鍵管理テーブルの一例を示す図である。 データ検出時の制御部における処理を表すフローチャートである。 第2実施形態におけるデータ検出時の制御部における処理を表すフローチャートである。 第4実施形態におけるデータ検出時の制御部における処理を表すフローチャートである。
以下、本発明に好適な実施形態を説明する。主には移動体、例えば車両に搭載される車載ネットワークなどのデータ送受信を行うネットワークにおける装置およびシステムの動作について説明している。本発明は、車載ネットワーク装置および車載ネットワークにおけるデータ送受信システムに好適であるが、車載ネットワーク装置および車載ネットワークにおけるデータ送受信システム以外のネットワーク装置およびネットワークシステムへの適用も可能である。
−−−第1実施形態−−−
<ネットワークシステムの構成>
図1は本発明の第1の実施の形態におけるネットワーク装置を有するネットワークシステムの一例を示す図である。図1は、自動車などの移動体の内部にネットワークシステムを有する制御システム1、例えば車載ネットワーク(CAN:Controller Area Network、CANFD:CAN with Flexible Data−rate、Ethernet(登録商標)、等)により構成されるネットワークシステム2を示している。図2は、制御システム1の外部と無線通信(例えば携帯電話の通信、無線LAN、WAN、等のプロトコルを使用した通信)を行う無線通信部3、ネットワークシステム2と異なる、または同一のプロトコルを用いたネットワークシステム4を示している。図2は、例えば、診断端子(OBD)やEthernet端子、外部記録媒体(例えばUSBメモリ、SDカード、等)端子などを有し、かつ有線接続によってネットワークシステム2にアクセスを行う有線通信部5を示している。図2は、ネットワークシステム2に有線または無線で接続され、ネットワークシステム2から送出されるデータを受信し、メッセージ情報(例えば映像、音)など必要な情報を表示または出力する、液晶ディスプレイ、警告灯、スピーカなどの出力装置6、を示している。ネットワークシステム2は、ネットワークシステム4、無線通信部3、有線通信部5、出力装置6、などと接続され、それぞれとの情報の送受信を行う。
図2は、ネットワークシステム2の内部構成例を示している。図2は、ネットワーク上のネットワーク装置を接続するバスを構成する複数のネットワークリンク301を示している。ネットワークリンク301は、例えばCANバスなどのネットワークリンクである。図2は、ネットワークリンク301および図示していないハードウェア(例えばセンサ、アクチュエータ)やネットワークリンク301以外のネットワークリンク(専用線含む)に接続され、ハードウェアの制御およびネットワークとのデータ送受信を行うECU(Electronic Control Unit:電子制御ユニット)302を示している。図2は、複数のネットワークリンク301を接続し、それぞれのネットワークリンクとデータの送受信を行うゲートウェイ(以下、GWと呼ぶ)303、を示している。
GW303は複数のネットワークリンクに接続されている場合があり、それぞれのリンクについてIDを付与して内部処理時にどのリンクに対する処理であるかについての識別を行う。この識別を行うIDをリンクIDと呼ぶ。リンクIDは、Channel ID、またはドメインIDとも呼ばれる。
図2(a)、(b)、(c)はそれぞれ異なるネットワークトポロジの例を示している。図2(a)は、バスを構成する2つのネットワークリンク301aおよび301bの各々に複数のECU302が接続されている例を示している。GW303は、ネットワークリンク301aに接続されたECU302とネットワークリンク301bに接続されたECU302との間のデータ転送を中継する。
図2(b)は、複数のECUがそれぞれ、ネットワークリンク301c、301d、・・・、301eによって直接GW303に接続されるスター型と、バス型のトポロジが混在している例を示している。バスは、ネットワークリンク301aおよび301c、301d、・・・、301eによって構成されている。GW303は、ネットワークリンク301a、301c、301d、・・・、301eのうちの2つのネットワークリンクを介したECU302間のデータ転送を中継する。
図2(c)はスター型のトポロジにスイッチ(以下、SWと呼ぶ)304が挿入されている例を示している。SW304は、アップリンク側においてネットワークリンク301fによってGW303に接続されている。SW304は、ダウンリンク側においてネットワークリンク301c、301d、・・・、301eによって、それぞれ1台ずつのECU302を接続している。バスは、ネットワークリンク301aおよび301f、301g、301h、・・・、301iによって構成されている。SW304は、ネットワークリンク301f、301g、301h、・・・、301iのうちの2つのネットワークリンクを介したECU302間のデータ転送を中継する。GW303は、ネットワークリンク301aおよび301fを介したECU302間のデータ転送を中継する。
GW303とECU302とは、必ずしも物理的に分離されているとは限らない。例えば、GW機能を有するECU、またはECUの機能を有するGWであってもよい。
本実施の形態の説明においては、ネットワークプロトコルの変換が、GW303では行われ、SW304では行われない。本発明はGW303およびSW304のどちらにも適用可能である。
以下の説明において、GW303やECU302、SW304など、ネットワークリンクで接続される装置のことをネットワーク装置とも呼ぶ。
ネットワークリンク301を介した通信においては、後述するネットワークプロトコル(手続き)の形式で通信を行う。後述するプロトコルによれば、ネットワーク装置間で送受信を行うデータ(以下、通信データ、またはペイロードとも呼ぶ)に対し、プロトコルで定められたヘッダを付与して通信を行う。
ECU302はネットワークから受信したデータをもとに、ハードウェアへの制御信号の出力、ネットワークへの制御信号および情報の出力、内部状態の変更、などの移動体制御処理を行う。
図3は、本発明にかかるネットワーク装置であるGW303、ECU302またはSW304の内部構成の一例を示す図である。図3は、キャッシュやレジスタなどの記憶素子を持ち、制御を実行するCPUなどのプロセッサ401を示している。図3は、ネットワークリンク301に対してデータの送受信を行う通信インタフェース402を示している。図3は、図示しないクロックなどを使用し、時間および時刻の管理を行うタイマ403を示している。図3は、プログラムおよび不揮発性のデータを保存するROM(Read
Only Memory)404、揮発性のデータを保存するRAM(Random Access Memory)405、ECU内部での通信に用いられる内部バス406を示している。図3は、鍵情報などを保護し、認証、ハッシュ演算、暗号、復号などの演算を行うセキュリティモジュール407を示している。
セキュリティモジュール407を用いることにより、不正アクセスから鍵情報を守り、認証などの処理負荷を削減することが可能となるが、耐タンパ性を強く求めない場合には、セキュリティモジュール407を使用しなくてもよい。
次にCPU401で動作するソフトウェアモジュールの構成について図4に示す。図4は、通信インタフェース402の動作および状態を管理し、内部バス406を介し通信インタフェース402に指示を行う通信管理部502を表している。図4は、タイマ403を管理し、時間に関する情報取得や制御を行う時間管理部503を表している。図4は、通信インタフェース402から取得したデータの解析や、ソフトウェアモジュール全体の制御を行う制御部501を表している。図4は、後述する鍵管理テーブル504、後述するフィルタテーブル505、受信したデータを保留するバッファ506を表している。
図4は、プロセッサ401上の動作概念を示したものである。プロセッサ401は、各ソフトウェアモジュールによって、動作時に必要な情報を、ROM404およびRAM405から適宜取得し、またはROM404およびRAM405に適宜書き込む。なお、後述する加工処理や認証処理においては高速処理が要求される場合もあるため、図4に示すような、制御部501によって実現される通信インタフェース402から取得したデータの解析は、ハードウェアで実現されることとしてもよい。
<ネットワークプロトコルの例:CANおよびCANFD>
図5に、ネットワークリンク302上での通信プロトコルにおけるデータ構造の例を示す。ここではCANおよびCANFDを使用した場合のフレーム(ネットワークにおける通信の1ブロック、パケットとも呼ぶ)のデータ構造を示しており、数値はフィールドごとのビット数を表している。
CANおよびCANFDでは同一ネットワークリンク上に接続されたネットワーク装置が、送信時にバス信号をドミナント(0)に設定し、送信時または受信時にバス信号のドミナント(0)またはリセッシブ(1)を検知することにより通信を行う。
SOF(Start Of Frame)はフレームの開始位置を示しており、フレームの同期を取るためにも用いられている。
識別子(ID)は、CANデータのID(以下、CANIDと呼ぶ)を示しており、CANIDによりデータの種類を識別可能である。
IDおよびRTR(Remote Transmission Request)ビットをアービトレーション・フィールドと呼び、このフィールドでバスのアービトレーション(調停)を行っている。
RB1、RB0は予約ビットであり、図5(a)の例では常にドミナントが入力される。一方、RB0の値がリセッシブの場合には、図5(b)のような拡張フォーマットを表し、IDを29ビットで表現可能となる。拡張フォーマットのデータ・フィールド以降の構成は図5(a)と同様である。
データ長コードは、データ・フィールドのデータ長(バイト数)を表している。
データ・フィールドは、送信するデータの内容を示しており、Nバイト分のデータが可変長で送信される。データ・フィールドのことをペイロードとも呼ぶ。
CRC・フィールドにはフレームのCRCが入力され、CRC境界については、アクノリッジとの境界のために、常にリセッシブで送信される。
アクノリッジについては、受信ノード(ネットワーク装置)が正しくデータを受信した場合に、応答のためにアクノリッジビットをドミナントにする。このようにして送信データの応答を返す。
EOF(End Of Frame)はフレームの終端を示し、7ビットのリセッシブとなっている。以上のようなフォーマットでデータの送受信を行っている。
車載ネットワークなどでは、特定のネットワーク装置が定期的にネットワークに対して自ネットワーク装置が観測した値(例えばセンサ値)を送信し、別のネットワーク装置に状態を通知する処理など、車両の各種制御を行っている。
CANではデータの送信時にアービトレーション・フィールドで調停を行っており、同時に送信を開始した場合、優先度の低い(CANIDが大きい、つまり調停期間により少なくドミナントを送信した)ネットワーク装置は送信を中断する。そのため各ネットワーク装置が周期的にデータを送信したい場合でも、調停の結果中断が発生した場合、または送信開始タイミングに他ネットワーク装置がデータを送信している場合、送出周期がずれる可能性がある。このように、データの送出タイミングが重複する事象、またはデータを送信したい時にバスを使用されている事象、などを衝突(コリジョン)と呼ぶ。
次にCANFDのプロトコルについて説明する。CANFDはCANを拡張したプロトコルであるから、CANとの差分についてのみ説明する。図5(c)は、CANFDの標準フォーマットにおけるデータ構造を示す。
EDLがCANFDのフォーマットであることを示すビットであり、EDLがリセッシブの場合には送信データがCANFDのフォーマットであり、ドミナントである場合にはCANのフォーマットであることを示している。
BRSはデータ送信中にビットレートを切り替えるか否かを示しており、リセッシブであればデータフェーズでビットレートを切り替え、ドミナントであればビットレートを切り替えない。
ESIはデータを送信するネットワーク装置のエラー状態を示しており、ドミナントであればデータを送信するネットワーク装置がエラーアクティブ、リセッシブであればエラーパッシブであることを示している。
またデータ長コードによるデータ長の符号化方式もCANFDとCANで異なる。データ長コードの符号化方法について図6に示す。ここでCANにおいてデータ長が8byteの場合は、bit0、bit1、bit2はDon’t Careである。図に示す通り、CANFDでは64byteまでのデータ長の表現が可能である。
CRCフィールドは、CANFDにおいては可変長であり、データ長により変化し、17または21bitとなる。またCRC境界、アクノリッジについては、2ビットのデータを許容する。
RB1、RB0は予約ビットであり、図5(c)の例では常にドミナントが入力される。CANFDではIDEの値がリセッシブの場合には、図5(d)のような拡張フォーマットを表し、IDを29ビットで表現可能となる。拡張フォーマットのデータ・フィールド以降の構成は図5(c)と同様である。
CANのアービトレーション・フィールドおよびコントロール・フィールドをヘッダとも呼ぶ。
CRCを付与する目的は、信号に誤りが含まれていないかを確認するものであり、受信側で受信したデータが、送信者が送信およびCRCを演算した内容と一致していれば、受信側で演算した結果についても同様となる。これにより、送信側が意図した送信データと不一致の場合(CRCエラー)には、受信側でデータを受信しない(破棄する)ことが可能となる。
<ネットワークプロトコルの例:Ethernet>
Ethernetのデータ(フレーム)構造について図7に示す。図7(a)はDIX形式の構造であり、図7(b)はIEEE802.3形式の構造を表している。
プリアンブルおよびSFD(Start Frame Delimiter)は、通信の同期を取るための固定パターンのデータを示している。宛先アドレスはデータ送信先のアドレス、送信元アドレスはデータ送信元のアドレスを示している。タイプは上位層のプロトコルの種別を示す値を表し、長さはデータ部分の長さ(オクテット:8bit単位)を表し、データはデータのペイロードを表す。FCS(Frame Check Sequence)はフレームのエラーを検出するためのフィールドであり、上述したCRCと同様の演算結果を含む、図中に記載した数値はそれぞれのフィールドの長さ(オクテット単位)を示している。
<ネットワークプロトコルの例:IP/TCP/UDP>
EthernetおよびCANの上位レイヤの例として、IP(Internet Protocol)があり、データ構造を図8に示す。IPヘッダの構造はバージョンにより異なり、バージョン4(IPv4)のヘッダ構造を図8(a)に、バージョン6(IPv6)のヘッダ構造を図8(b)に記載する。長さは異なるが、どちらのバージョンにおいても送信元と送信先をヘッダ情報に含んでおり、これらの情報から送信者と受信者を判定することが可能である。通信データはペイロードに含まれる。
IPのさらに上位のプロトコルの例として、TCPとUDPがある。ヘッダ構造について、図9にTCPヘッダの例を、図10にUDPヘッダの例を示す。TCPおよびUDPのレイヤでは送信者および受信者の情報は無く、使用しているポート(通信の種類ごとに区別する番号)が記載されている。
これら複数プロトコルのレイヤ構造において、例えばTCP/IP/Ethernetのプロトコルを使用して通信を行う場合には、通信データに対し、TCPヘッダが追加され、IPヘッダが追加され、さらにEthernetのヘッダが追加されて、さらに必要により全体データが結合および分割されて送信される。
レイヤ構造を把握することにより、受信データのどの位置に送信者および通信の内容を特定する情報が含まれているか、また認証に必要なデータがどの部分か、を把握することが可能になる。
<フォーマットエラー>
上述したプロトコルにおいては、特定のビットについてはあらかじめ値、もしくは値の範囲が定められているフィールドがある。たとえば予約ビット(Reserved bit)などがあり、それらがフォーマットに規定されている以外の値となることを、フォーマットエラーと呼ぶ。
また、CANでは連続した6ビット以上の同一値の発生は、正常時の通信においては発生しないようにスタッフィングルール(5ビット連続した同一値の次には、異なる値によりスタッフィング)が定められている。それらに違反することもフォーマットエラーと呼ぶ。
また物理層の変調方式やデータリンク層の符号化方式により、あらかじめ定められたパターン以外(たとえば連続する電位値が4連続)になることも、フォーマットエラーと呼ぶ。
<上書き可能なデータおよび上書き不可能なデータ>
上記各プロトコルのデータ送信においては、それぞれの信号を電位の高低(1,0)や、ツイストペアケーブル間の差分電位の大小を制御することによって送信側が送信し、受信側でも同様に信号を判定し、受信している。その際、プロトコルの物理層の規定により、優位性のある信号の状態が存在する。
例えば、CANの場合には、ドミナント(0)は、電位が0、もしくは差分電位が0となっており、リンクに接続されるネットワーク装置のいずれかが信号線を地絡した場合、他のネットワーク装置はリセッシブ(1)の値を発行できない。そのため、リセッシブは上書き可能なデータ、ドミナントは上書き不可能なデータとなる。
Ethernetの場合についても、物理層の構成は異なるが、同様に信号線を地絡することにより、送信する電位値を書き換え可能な値、書き換え不可能な値により、データを上書きすることが可能となる。
<フィルタテーブル>
フィルタテーブル505の例を図11に示す。図11は、バスを介して転送されるデータを識別するためのデータID1201、データの送信元ECU302が接続されているネットワークリンク301を示す送信元リンクID1202、そのデータの送信先ECU302が接続されているネットワークリンク301を示す送信先リンクID1203、送信元ECU302において使用されているデータ通信プロトコルを示す送信元プロトコル1204、そのデータの送信先ECU302が接続されているネットワークリンク301において使用されるデータ通信プロトコルを示す送信先プロトコル1205、そのデータが認証対象であるか否かを示す認証対象フラグ1206、を表している。
フィルタテーブル505は、バスを介したデータの転送が許可されているか否かを、そのデータがデータID1201に適合しているか否かに基づいて管理するためのテーブルである。また、フィルタテーブル505は、データID1201に適合しているデータに対して、一方のネットワークリンク301、すなわち上りリンクから、他方のネットワークリンク301、すなわち下りリンクへのデータ転送処理を行うGW303やSW304にも設けられる。そうしたGW303やSW304に設けられるフィルタテーブル505は、送信元リンクID1202と送信先リンクID1203とによって、どのデータID1201に適合したデータが、どの上りリンクから到来すると、どの下りリンクから出ていくかについて表すフォワーディングテーブルでもある。さらには、GW303やSW304に設けられるフィルタテーブル505は、送信元プロトコル1204と送信先プロトコル1205とによって、上りリンクから到来して下りリンクから出ていく際にプロトコル変換が必要であるか否かを表すプロトコル変換テーブルでもある。
データID1201の例としては、CANやCANFDにおけるCANIDや、EthernetにおけるMACアドレス、IPにおけるIPアドレス、TCPやUDPにおけるポート番号、およびそれら複数の情報の組み合わせ、がある。たとえばポート番号とIPアドレスの送信元および送信先を組み合わせることにより、通信経路と使用サービスとが特定される。
認証対象フラグ1206は、バスを介して転送されるデータに対して後述する認証処理を行うか否かを示している。ここでは“Yes”はそのデータに対して認証を行うことを表し、“No”はそのデータに対して認証を行わないことを表している。認証対象フラグ1206は、全データIDを認証対象とする場合、または後述する鍵管理テーブル504に記載のデータのみ認証対象とする場合、不要となる。
GW303にフィルタテーブル505が実装される場合は、GW303は、フィルタテーブル505に基づいて、バスを介して同一ネットワークリンク301に接続されたECU302間で転送されるデータを検出したり、2つのネットワークリンク301を跨って転送されるデータを検出したりする。GW303は、フィルタテーブル505に登録されている受信元プロトコル1204および送信先プロトコル1205を参照し、必要に応じてデータ転送処理の際にデータのプロトコル変換を行う。ECU302にフィルタテーブル505が実装される場合は、ECU302は、一方のネットワークリンク301から他方のネットワークリンク301へのデータ転送処理を行わないため、ECU302が接続される単一のネットワークリンク301で使用されるプロトコルが決まっていれば、フィルタテーブル505には、送信元リンクID1202、送信先リンクID1203、送信元プロトコル1204および送信先プロトコル1205が不要となる。SW304が、一方のネットワークリンク301から他方のネットワークリンク301へのデータ転送の際にプロトコルの変換を行わず、SW304が接続される複数のネットワークリンク301で使用されるプロトコルがあらかじめ限定されている(例えばEthernetのみに限定されている)場合、フィルタテーブル505には、受信元プロトコル1204および送信先プロトコル1205が不要となる。
<通信インタフェースにおけるデータ検出処理、転送処理および加工処理>
通信インタフェース402によるデータ検出処理のため、プロセッサ401は、例えば転送が必要なデータIDとして設計時に定められたデータIDに登録されているフィルタ情報を、フィルタテーブル505から読み出し、通信インタフェース402に指定する。こうしてデータIDが指定された通信インタフェース402は、送信元ECU302から送信先ECU302へネットワークリンク301で転送される信号を監視する。通信インタフェース402は、認証対象として指定されたデータIDに一致するデータがネットワークリンク301上で転送された場合に、プロセッサ401による認証処理のため、そのデータを、データIDと共にプロセッサ401に通知する。認証処理が通信インタフェース402によって行われる場合は、プロセッサ401への通知は必ずしも必要ではない。
データ検出処理においては、通信インタフェース402は、上述したフィルタテーブル505の一例に記載されたデータID以外のデータIDを、フィルタテーブル505に記載することによって、登録することも可能である。例えばCANのCANID、Ethernetのアドレスについて、マスク指定(特定のビットについて、どの値でも受信)でフィルタテーブル505に登録することにより、通信インタフェース402は所定範囲のデータIDに対応するデータを検出可能であり、CANIDおよびEthernetアドレスについて全ビットをマスクすることにより、すべてのデータを検出することも可能になる。
上りリンクから下りリンクへのデータ転送処理を行うGW303やSW304に設けられる通信インタフェース402の下りリンクから出ていくデータの転送処理としては、プロセッサ401からデータの転送処理指示が転送する情報を伴って通信インタフェース402に入力された場合に、その情報にさらに必要な情報を付加して得られるデータが、ネットワークプロトコルに合わせたデータ形式でネットワークリンク301に出ていく。
また通信インタフェース402は、指定されたデータを検出および転送するのみでなく、その指定されたデータに対して加工処理も行う。例えばネットワークリンク301上を流れる現在の信号値がデジタル表現の0(例えばネットワークリンク301の電位が基準値より低い)の場合に、デジタル表現の1(例えばネットワークリンク301の電位が基準値より高い)に信号値を書き換えるといった操作、または逆に、ネットワークリンク301上を流れる現在の信号値をデジタル表現の1から0に書き換える操作を行う。これらは通信の応答(Ack等)が返される場合にも行われる。
<なりすまし攻撃>
本発明による主な防御の対象である、なりすまし攻撃の例について説明する。例えば図2において、攻撃者は、外部の通信機器と接続されているECU302(以降、ECU_Aと呼ぶ)について攻撃し、ECU内部のROM404またはRAM405のデータを不正に書き換える攻撃(改ざん)を行い、ECU_Aからネットワークリンク301に対し、他のECU(以降、ECU_Bと呼ぶ)になりすました不正なデータを送信させる。その場合、不正なデータを受信した他のECUは、状況判断を誤り不正な動作を起こす可能性がある。このような攻撃をなりすまし攻撃と呼ぶ。
なりすまし攻撃の経路としては、上記ECU_Aの改ざん以外にも、ネットワークリンク301に直接不正な機器を接続される場合、ECUに接続される機器になりすまして不正な情報を送信する場合、などがある。
<認証処理>
なりすまし攻撃を防止する手段として、データ(メッセージ)に対する認証がある。認証とは、送信者が、所有している非公開情報(以降、鍵または鍵情報と呼ぶ)を用いて署名(電子署名)を作成し、受信者がその署名を確認することにより、正当な送信者からデータが送信されていることを確認する技術である。
例えば、データが改ざん無く正しい送信者から送信されたことを確認するために、署名(MAC:Message Authentication Code)をメッセージ認証用情報として認証する方法がある。手順を図12に示す。
図12(a)は、送信側と受信側で同じ鍵情報を持つ共通鍵方式の場合の演算例を示す。送信側では、送信するデータのハッシュを求める演算を行う。ハッシュとはデータの特徴を表す情報であり、特にデータが改ざんされた場合にハッシュの値が大きく変わることから、データが改ざんされていないことを確認するために用いられる。
次にハッシュに対して暗号化(符号化)を行う。暗号化には送信者が有する鍵(送信者鍵)および付随情報を使用する。ハッシュを送信者鍵で暗号化したものを署名とし、データと共に送信を行う。
付随情報とは、例えば初期値ベクトル(IV:Initialization Vactor)の様に、生成される署名の偏りを防ぐ等の目的で鍵とは別に用いる情報であり、後述する鍵交換手順等で事前に送付され、または署名データに付与され、送信側と受信側で共通する情報を保持する。付随情報はデータと共に暗号化される場合と、暗号化されない場合の両方がある。
受信側では、受信したデータについて、送信者側と同じ手順で署名を生成する。この際に、受信側の鍵として送信者側と同じ鍵を用いて同じ処理を行うことにより、同じ署名データが得られる。
データまたは署名に対して改ざんが行われている場合には署名が一致しないため、データが改ざんされていないことを確認することができ、結果として送信元のなりすましが生じていないことを確認可能である。
上記手順以外に、ハッシュ演算と暗号化を同時に実施することも可能である(HMAC:Hash−Based MAC)。例えばハッシュ演算を行うデータに対し、送信者鍵を加算(XOR)するなどの演算を行い、署名を作成する。その後受信側で同様の演算を行って署名を作成し、署名を比較することにより認証を行うことが可能となる。署名が一致した場合、認証OKであり、署名が不一致の場合、認証NGである。
また、上記では送信側と受信側で同じ鍵情報を持つ共通鍵方式の場合の演算例について示したが、共通鍵(対称鍵)ではない場合でも可能な処理について図12(b)に示す。この場合は、送信側の手順は同様で、受信側では同様の手順を実施する代わりに、署名を復号してデータのハッシュ値を求め、別途データから演算したハッシュ値と比較することにより、データの署名を確認する。ハッシュ値が一致した場合、認証OKであり、ハッシュ値が不一致の場合、認証NGである。このようにすることにより、非対称な鍵の場合でも署名を確認することができ、ハッシュ演算と復号化の並列処理も可能となる。
共通鍵の場合でも図12(b)と同様の認証処理を行ってもよい。
非対称鍵の演算は一般的に処理負荷が高くリアルタイム性が満たすことが厳しいため、後述する鍵交換手順を用いて、共通鍵を事前に共有しておく。
データについては、本来通信で必要なデータ以外にも様々なデータを付与して演算を行う。例えば、データにタイムスタンプ(送信するタイミングなどの時刻情報)を付与することにより、同じデータを再送してなりすましを行うリプレイアタックへの防御が可能になる。また乱数を付与することにより、毎回異なるデータを暗号化することになり、鍵情報を推測されることが困難になる。カウンタを付与することにより、正しい順序(タイミング)でデータが送信されることを確認することが可能となる。
ここでハッシュ演算については、何も処理を行わなくても良く、そのようにすることにより情報の撹拌性は低くなるが、演算量も低くなる。
<署名付き通信データフォーマット>
署名を付与した通信データのフォーマットについて図13に示す。これは上記ネットワークプロトコルのペイロード部分のデータとなる。
図13は、署名が付与されているか否かを表す署名有無1401、通信データの長さを表す通信データ長1402、署名の長さを示す署名長1403、通信データ1404、上記認証処理により送信者側で作成された署名データ1405、必要に応じ認証処理演算が終了するまでの時間猶予を保持するためのマージン1406、認証が正常に行われたか否かを判定するために用いられる認証結果情報を示す認証Ack1407を表している。
署名付き通信データについては全てのフィールドが必須では無い。例えば署名有無のフィールドについては、上位のプロトコルのヘッダに情報を含むことも可能である。例としては、Ethernetヘッダのタイプ、IPヘッダのプロトコルにて、署名を使用するプロトコルとして定義を行うこととしてもよい。CANおよびCANFDの予約ビットにて認証の有無を示すこととしてもよい。または、あらかじめ署名を使用する送信元や送信先、使用サービスの組み合わせを決定しておくこととしてもよい。これらの対応により、署名有無のフィールドは不要となる。これによりペイロードを受信する以前に認証有無が解り、処理が高速(ペイロードの判定が不要となることが判断可能、認証有無の情報を受信するタイミングが比較的早い)になる点や、レガシー機器との共存(不正なヘッダ、プロトコルであるため自動的に破棄)が可能になる。
また通信データ長、署名長について全ての転送データに含まれる必要は無く、署名付き通信を行う前にあらかじめ通信データ長や署名長を固定値で決定しておき、決定した固定値で通信を行うことにより不要となる。このようにすることにより、通信に使用するデータ量の削減が可能となる。
またマージン1406、認証Ack1407についても、後述する使用方法により使用をしない場合には不要となる。
また署名データについては、全通信データに存在する必要はなく、上位レイヤにおける通信単位ごとに署名が作成されることとしても良い。例えば、元のデータが1Mbyteであり、複数のパケットに分割される場合には、最終パケットにのみ署名が存在していれば良い。そのようにすることにより、送信側と受信側での演算量が削減可能となる。
<鍵交換手順>
認証処理においては、送信側および受信側で鍵の管理が必要になる。特に、同じ鍵を長期間使用し続けることはセキュリティ上鍵情報の漏洩リスクが高まるため、一定期間ごとに一時的な鍵(セッション鍵)を更新し、同じ鍵を使い続けないことが望ましい。
そのため、例えば2つのECU302の間で鍵交換を行う場合、一方のECU302は、他方のECU302の公開鍵でセッション鍵を暗号化して他方のECU302宛てに送信し、受信した他方のECU302は自身の秘密鍵で復号化しセッション鍵を取得するなどの処理を行う。この交換したセッション鍵を、認証処理の送信者鍵および受信者鍵として使用する。
また別の方法としては、公開鍵と秘密鍵のペアを用いず、製造時またはメンテナンス時にそれぞれ固有の鍵(マスタ鍵)をECU302のROM404またはセキュリティモジュール407に埋め込み、製造時またはメンテナンス時にそれぞれ通信を行うECU302のマスタ鍵情報を交換しておく。製品使用時にはこれらマスタ鍵を用いてセッション鍵を暗号化し、鍵を共有する。
これらの方法で、鍵情報、または鍵情報に関する様々な情報(鍵の有効期限、初期ベクトル、暗号対象のデータID、等)を安全に交換することが可能となる。なお、ECU302の場合を例に説明したが、GW303またはSW304の場合についても同様である。
<鍵管理テーブル>
鍵管理テーブルの例について、図14に示す。鍵管理テーブル504は、認証対象のデータを識別するデータID1501、認証対象のデータの通信に用いられるプロトコル1502、認証に用いられる鍵データ1503、鍵データの有効期限1504、鍵が有効か否かを示すフラグ1505、通信データ1404のデータ長1506、署名の長さ1507、により構成される。鍵管理テーブル504は、認証対象のデータに対する制御部501による認証用の鍵を管理するテーブルである。
データID1501については、フィルタテーブル505におけるデータID1201と同様である。通信経路と使用サービスなどを表すデータID1501の情報から、各データID1501に対応する鍵を判断することが可能となる。
またプロトコル1502がわかることにより、受信したデータのどの位置に通信データおよび署名が含まれているかがわかる。プロトコル1502は、図11に例示したフィルタテーブル505にも含まれている。プロトコル1502は、鍵管理テーブル504およびフィルタテーブル505のうちのどちらかのテーブルに存在していれば、データID1501またはデータID1201から参照可能である。
鍵データ1503は、鍵情報の直値、または、鍵を示す鍵IDもしくはポインタである。鍵データ1503が鍵IDの場合、鍵IDを指定し、セキュリティモジュール407にデータを送信し署名を確認することも可能である。そのようにすることにより、鍵データを外部に漏洩させずに安全に管理可能であり、またプロセッサに負荷をかけずに認証を行うことが可能になる。
鍵有効期限1504には、鍵の有効期限が記載されている。これは鍵を更新するごとに必要に応じて有効期限が更新される。または無期限の場合もある。鍵が未取得の場合には、鍵を未だ取得していないことを示す情報(絶対的な過去時間:ALL0等)、を示すことも可能である。そのようにすることにより後述の鍵情報有効フラグ1505が不要となる。
鍵情報有効フラグ1505は鍵情報が有効か否かを示すフラグである。鍵が有効でないとは、例えば、データIDの鍵情報を送信ネットワーク装置と鍵交換をしていないために鍵が有効でない、または不正アクセスや攻撃を受けた等の理由により鍵情報が無効化された、等を示している。
通信データ長1506および署名長1507は、署名付き通信データフォーマットの通信データ長1402および署名長1405に記載された通りの内容である。通信データ長1506および署名長1507が鍵管理テーブル504に保持されることにより、通信のたびに署名付き通信データフォーマットの通信データ長1402および署名長1405を取得する処理が不要となり、処理が軽減できる。
<バスを介して送信元ECUから送信先ECUへ転送中のデータ検出時の処理>
車両の各種制御を行う送信元ECUから、同様に車両の各種制御を行う送信先ECUへ、バスを介して転送中のデータ検出時における、ネットワーク装置(ECU302、GW303またはSW304)のプロセッサ401が有する制御部501による処理について図15を用いて説明する。ここでは本発明をGW303に適用した例について説明するが、ECU302またはSW304に適用した場合についても同様である。
まずGW303においては、ネットワークリンク301でバスを介して転送されるデータのうちから、通信インタフェース402が、プロセッサ401によって指定されたフィルタ情報にしたがって認証対象データを検出する。その後通信インタフェース402から、認証対象データ検出を通知された制御部501は、フィルタテーブル505および鍵管理テーブル504を参照し、転送中のデータのデータIDが、それらのテーブルのデータIDと一致し、かつ認証対象フラグが“Yes”であるデータか否かを確認する(ステップS101)。なお、上述したように、通信インタフェース402がプロセッサ401によって指定されたフィルタ情報にしたがって認証対象データを検出するので、ステップS101では、フィルタテーブル505を必ずしも参照しなくても良い上に、鍵管理テーブル504のデータIDをも必ずしも参照しなくても良い。ステップS101において、テーブルのデータIDに記載が無いまたは認証対象フラグが“No”であるデータに対しては否定判定がなされ、ステップS102におけるデータ認証処理が行われない。テーブルのデータIDに記載があってかつ認証対象フラグが“Yes”であるデータに対しては肯定判定がなされる。制御部501は、鍵管理テーブル504を参照し、ステップS101で肯定判定された認証対象データに対応した鍵を基にデータ認証処理を行う(ステップS102)。上述したように、転送中のデータが送信元ECU302のなりすましによって転送されているか否かに関する認証処理が行われる。
その後、ステップS103において、認証結果がOK(成功)である場合には、肯定判定がなされ、制御部501は、その認証が行われたデータに対しては特に処理を行わずに、通信インタフェース402へ、そのデータを引き渡す。そのデータが引き渡された送信先ECU302によって、そのデータの中から、暗号化されていない図13に示した通信データ1404が取り出される。ステップS103において、転送中のデータがなりすましによって転送されたために認証結果がNGである場合には、否定判定がなされる。制御部501は、転送中のデータは送信元ECU302のなりすましによって転送されている不正データであると判断し、そのデータを通信インタフェース402へ引き渡す際に、そのデータに対して、後述するデータ無効化などの加工処理を行うように、通信インタフェース402に指示する(ステップS104)。
このようにデータの認証結果を確認し、認証結果が失敗の場合にはデータ無効化などの加工処理を行うことにより、送信元装置のなりすましによる不正なデータの転送を防ぐことが可能となる。なお、図15を用いて上述した制御部501による認証処理は、通信インタフェース402によって行われることとしてもよい。認証処理が通信インタフェース402によって行われることによって、高速処理が可能となる。また、図15のステップS104における制御部501からの指示に基づいて行われる通信インタフェース402によるデータ加工処理が、制御部501によって行われることとしてもよい。GW303やSW304のように2つのネットワークリンク301を跨ったデータ転送を中継する装置に本発明を適用する場合は、後述する加工処理のうち、認証Ackの値を書き換えるといった上位レイヤ処理は、エラーフレーム生成のような下位レイヤ処理とは異なり、制御部501によって行われることが好ましい。
<データ無効化>
通信インタフェース402は、データ加工処理において、転送中のデータを受信した送信先ECU302によって認証が失敗したことが検出されるように、そのデータを加工することによって、そのデータを無効化する。データ無効化の例として、CANおよびCANFDの場合には、転送中のフレームに連続6ビット以上のドミナントを発生させて、その転送中のフレームをエラーフレームにすることができる。このようにすることにより、転送中のデータを無効化することが可能となる。
また別の方法としては、署名付き通信データフォーマットにおける認証結果情報を示す認証Ack1407について、送信者がリセッシブで送信していた値を、上書き不可能な値であるドミナントに書き換えて設定する。そのようにすることにより受信側のネットワーク装置が認証Ackを確認し、データが認証失敗により無効化されたことを確認できる。
また認証Ackのデータを書き換えることにより、CRCの演算結果が不正となるため、同様にエラーの含まれたデータとして無効化させることが可能となる。
また別の方法としては、一定期間通信を妨害するために、常時ドミナント(電位0)の値とし、以降の通信を不能化させることによりデータを無効化することも可能である。
Ethernetの例においても送信者の送信パターンと異なる信号を発生させることにより、受信側での受信エラー(復号エラーや、フレームチェックシーケンスエラー)を発生させ、データを無効化させることが可能となる。
またCANおよびCANFDと同様に、署名付き通信データフォーマットにおける認証Ackを認証が失敗したことを示す情報に変更することにより、或いは、バスの電位制御を行って一定期間通信を妨害することにより、無効化することが、Ethernetにおいても可能である。
上述したように、認証Ackについては、送信者は上書き可能な値を送信し、認証を行うネットワーク装置は、不正なデータの場合に認証Ackについて以後の上書きが不可能な値で上書きを行う。このような構成にすることにより、攻撃者は、不正なデータとみなされ上書きされ続けている転送中のデータの残りの部分について、不正な送信元ネットワーク装置にバスの電位制御をさせて、認証を行うネットワーク装置による上書き制御を行わせずに正常なデータで送信させるということができない。したがって、送信先ネットワーク装置によって不正なデータが正常なデータと誤認識されることを防ぐことが可能になる。
このようにデータの無効化を行うことにより、無効化されたデータを受信した送信先ネットワーク装置が、そのデータをエラーとして破棄するため、送信先ネットワーク装置による不正なデータによる処理の実行を防ぐことが可能となる。
以上の様に、ネットワーク装置が送信したデータに対し、他のネットワーク装置が認証処理を行い認証結果が失敗の場合にデータを無効化する加工処理を行うことで、不正なデータ転送を防ぐことが可能となる。特にネットワーク装置がネットワークリンクで転送されているデータに対し認証処理と加工処理を行うことにより、データの受信を行う複数のネットワーク装置での認証処理が不要となる。
−−−第2実施形態−−−
認証処理を行うネットワーク装置が、転送データ検出時に、認証結果が失敗の場合だけでなく、データ形式が想定する形式に一致しない転送データを全て無効化させる例について説明する。本実施形態におけるネットワーク装置が有する制御部501による転送データ検出時の処理について図16を用いて説明する。第1実施形態と異なる点は、ステップS201におけるデータ形式判定処理が追加された点である。したがって、第1実施形態と異なる点を中心に図16を用いて説明し、図16のうちで図1と同一のステップ番号を付した処理内容については、説明を省略する。
データ形式とは、ここではデータID、データIDで特定されるデータが転送されるバスのネットワークリンクID、上記プロトコルで規定されているそのデータのヘッダの形式、そのデータの順序を表すカウンタ、そのデータが送信されるタイミングを表すタイムスタンプ、鍵の有効期限、そのデータが上述した認証用の署名付き通信データを伴う場合の通信データ長、およびそのデータがその署名付き通信データを伴う場合の署名長などが挙げられる。
ステップS201において、制御部501は、検出された転送中のデータに対するデータ形式判定処理を行い、そのデータのデータ形式が想定しているデータ形式と一致していると判定した場合には、上述した次のステップS101に処理を進める(ステップS201においてyes)。検出された転送中のデータのデータ形式が想定しているデータ形式と一致しているというのは、具体的には、フィルタテーブル505に、転送中のデータのデータID1201および受信元リンクIDが記載されていること、転送中のデータが認証対象フラグが“Yes”であるデータであって、かつ鍵管理テーブル504に記載されたデータID1501に対応していること、転送中のデータが、鍵管理テーブル504に記載されたプロトコル1502や鍵データ1503に対応していること、転送中のデータに対応する鍵有効期限1504が有効な期間であること、転送中のデータに対応する鍵有効フラグ1505が有効であること、転送中のデータの通信データ長が通信データ長1506と一致すること、転送中のデータの署名長が署名長1507と一致すること、などの様々な条件が挙げられる。
また上記以外にも、通信データに含まれる転送中のデータの順序を表すカウンタが連続していること、転送中のデータが送信されるタイミングを表すタイムスタンプが現在時刻から一定値以内であること、といった場合にも、制御部501は、データ形式が一致すると判定する。
なお、データ形式が一致と判定される上記条件のうちのいくつかについては、制御部501ではなく通信インタフェース402によって行われることが好ましい場合、通信インタフェース402によって行われた条件判定結果が制御部501に通知されることとしてもよい。
データ形式が不一致(データ形式判定結果が失敗)の場合(ステップS201においてno)には、第1実施形態および本実施形態における認証NGの場合(ステップS103においてno)と同様に、制御部501は、その転送中のデータの加工処理を通信インタフェース402に指示することによって(ステップS104)、通信インタフェース402にデータの無効化を行わせる。なお、第1実施形態で説明したように、ステップS104における制御部501からの指示に基づいて行われる通信インタフェース402によるデータ加工処理が、制御部501によって行われることとしてもよい。
本実施形態においては、該当ネットワーク装置が認証対象データの検出を行うネットワークリンクにおいて転送される可能性があるデータを、全てフィルタテーブル505および鍵管理テーブル504に登録しておく。これらのテーブルがホワイトリスト(全ての安全なデータを記載したリスト)となり、フィルタテーブルに無いデータの転送(不正なデータ転送)を防ぐことが可能となる。
上述したように、制御部501は、図16のステップS201で、転送中のデータが、バスを介したデータの転送が許可されているか否かを管理するフィルタテーブル505、および転送が許可されているデータに対する認証用の鍵を管理する鍵管理テーブル504に対応しているか否かを判定する。ステップS103で認証が失敗した場合に加えてさらに、ステップS201において、そのデータがフィルタテーブル505および鍵管理テーブル504の少なくとも一方に対応していない場合に、通信インタフェース402は、そのデータ転送中に、そのデータを無効化する。フィルタテーブル505および鍵管理テーブル504に記載の無いデータID、または不正な形式のデータ送信を防ぐことが可能となる。なお、ヘッダの情報による判定は、認証処理を行うより処理負荷が小さいため、ヘッダの情報を基に不正なデータを判定することにより処理負荷の低減も可能となる。
−−−第3実施形態−−−
次に、GW303またはSW304が、一方のネットワークリンク301から他方のネットワークリンク301へ、転送データの中継を行う場合に、データが無効化される例について説明する。ここでは本実施の形態におけるネットワーク装置の例として、GW303を例にして説明するが、SW304においても同様である。
GW303が、図2(a)に示すように、送信元ネットワーク装置が接続されたネットワークリンク301aから、送信先ネットワーク装置が接続された、ネットワークリンク301aとは異なるネットワークリンク301bにデータを中継する場合の例について説明する。GW303において、送信元ネットワーク装置が接続されたネットワークリンク301aからのデータが入力され、そのデータのヘッダから送信先を確認し、ネットワークリンク301bに出力される。この場合、データを低遅延で転送するため、GW303の通信インタフェース402または制御部501は、GW303の通信インタフェース402へ入力中のデータのヘッダを解析し、送信先ネットワーク装置がわかった時点で、そのデータをネットワークリンク301bへ出力することを開始する。
その後、そのデータの残りの部分がネットワークリンク301aからGW303へ引き続き入力され、そのデータが有する署名データがGW303へ入力された時点で、図1または図16に記載のデータ認証処理がGW303において実施される。認証結果が失敗(ステップS103においてNo)またはデータ形式が一致しない(ステップS201においてNo)と判定された場合には、データ加工処理として、ネットワークリンク301bへ出力中のデータおよび/またはネットワークリンク301aから入力中のデータに対して上述した加工処理が実施される。
このような処理を実行することにより、ヘッダの確認のみで低遅延なデータ転送を可能にした上で、さらにその後認証結果が失敗と判定した場合に、不正なデータを無効化することが可能となる。
−−−第4実施形態−−−
次に本発明を適用したネットワーク装置が動作していることを確認する例について説明する。まず一つの方法としては、上述した認証Ackの情報について、送信元ネットワーク装置では、上書き可能な情報(例えばCANにおけるリセッシブ(1))で制御部501が作成し、CRC演算の際には認証Ackの値として上書きされた情報(例えばCANにおけるドミナント(0))で通信インタフェース402が演算を行い、その後、通信インタフェース402がそのデータを送信する。図17を用いて詳細を説明する。図17は、本実施形態におけるデータ検出時の制御部における処理を表すフローチャートである。第1実施形態におけるデータ検出時の制御部における処理を表す図15と同一のステップ番号の処理については、説明を省略する。
送信元ネットワーク装置から送信されて、送信先ネットワーク装置へ転送されるデータを検出したネットワーク装置が有する制御部501は、ステップS102において第1実施形態の手順と同様のデータの認証を行い、ステップS303において認証OKの場合には、ステップS304において認証Ackを上書き可能な値(例えばCANにおけるドミナント(0))で上書きするように、通信インタフェース402に指示する(ステップS303において肯定判定)。認証結果が失敗の場合にはデータの加工は行われない(ステップS303において否定判定)。すなわち、認証が行われるネットワーク装置の制御部501は、転送中のデータの認証Ackを上書きすることによって、認証を行ったことを示すための加工を、そのデータの転送中に、そのデータに対して行う。
転送されたそのデータを受信した送信先ネットワーク装置は、認証Ackを確認して上書きされていることを確認し、またはCRC演算結果がCRCフィールドが示す値と一致していることを確認することによって、そのデータが正しく認証されていることを確認できる。また、送信先ネットワーク装置は、受信したデータの認証Ackが上書きされているため、認証処理を行うネットワーク装置が正常に動作していることを確認することもできる。認証Ackを確認して上書きされていないことを確認するか、またはCRC演算結果がCRCフィールド値と不一致であることを確認した送信先ネットワーク装置は、受信したデータが認証処理を行うネットワーク装置によって正しく認証されていないと判断するとともに、受信したデータは不正なデータであるか、または認証を行うネットワーク装置が動作していない状況のどちらかであると判断し、受信したデータを廃棄する。
このようにすることにより、認証を行うネットワーク装置が正常に動作をしていない、または署名の演算が間に合わないような状況において、不正なデータが送信されていたとしても、受信側で正しいデータと見なされて動作することを防ぐことが可能となる。なお、このような、認証を行うネットワーク装置が正常動作をしていることを認証Ackによって表示する処理は、例えば通常のデータ転送が行われている期間中に行われてもよいが、メンテナンスのために通常のデータ転送が行われない診断モードにおいて行われることが、より好ましい。
認証を行うネットワーク装置が動作していることを確認する本実施形態の変形例として、認証を行うネットワーク装置が署名データを処理するまでは、図13に示す署名付き通信データフォーマットのマージン1406にドミナントが設定されたデータが送信され、署名データの処理が終了した時点でマージン1406にリセッシブが設定されたデータが送信される。そのようにすることにより、認証を行うネットワーク装置が動作していることを確認可能となる。
その際、マージン1406に設定された信号の値を含むCRC計算は、送信元ネットワーク装置においても送信先ネットワーク装置においても実施されず、マージン1406に設定された信号の値によらずにCRCが計算される。このようにすることにより、認証を行うネットワーク装置が、マージン1406を用いて認証処理を行った場合であっても、そのマージン1406を含むデータのCRCを計算することが可能となる。
さらに他の変形例としては、送信元ネットワーク装置から送信先ネットワーク装置へのデータ転送が行われるネットワークリンクとは別の、例えば保守用のネットワークリンクまたは専用線において、認証処理を行うネットワーク装置の制御部501が、制御部501による認証動作が正常に行われていることを示す情報を、送信元ネットワーク装置や送信先ネットワーク装置へ送ることとしてもよい。この場合、認証処理を行うネットワーク装置が動作していることを示す情報としては、上述したデータ形式の他に、定期的な定型データの送信、上記署名データ、データ認証のタイミングに合わせたデータの送信、などがある。このように複数のネットワークリンクまたは専用線を用いて認証処理を行うネットワーク装置の動作を確認することにより、いずれかの経路が攻撃をされた場合でも、認証処理を行うネットワーク装置が動作していることを各ネットワーク装置が正しく確認可能することができる。
−−−変形例−−−
署名の作成および認証の処理を低減するために、署名の作成における符号化にストリーム暗号を使用する変形例について説明する。ストリーム暗号の例としては、MUGI(登録商標)、MULTI−SO1、RC4(登録商標)、Enocoro(登録商標)などがある。ストリーム暗号によれば、暗号および復号処理がビット単位で実施でき、高速な処理が実行可能である。その場合の署名作成の例としては、図12の例において、暗号化および復号化の処理においてストリーム暗号を用い、処理をビット(またはバイト)単位で実施する。作成された署名データは、データと署名をビット単位で結合しても良く、または全ての署名データを出力してから結合してもどちらの形式でも可能である。
ストリーム暗号を用いる場合のハッシュ演算に関しては、実施を行わないか、ビット、またはバイト単位でストリーム暗号を行う単位と同じ単位で実行を行う。特にMULTI−S01など、データの撹拌や改ざん検出の機能が備わっている暗号の場合には、ハッシュ演算処理が不要となる。
このように符号化方式としてストリーム暗号等の逐次処理が可能な暗号を用いることにより高速に判定が可能となり、データの転送期間中に署名の演算を完了させることが容易となる。
上述した実施の形態および変形例におけるネットワーク装置は、車両の各種制御を行う送信元ネットワーク装置および送信先ネットワーク装置とバスで接続されたネットワーク装置であって、制御部501と通信インタフェース402とを有する。制御部501は、バスを介して送信元ネットワーク装置から送信先ネットワーク装置へ転送中のデータに含まれる署名に基づいて、データが送信元ネットワーク装置のなりすましによって転送されているか否かに関する認証を行う。データがなりすましによって転送されたたために認証が失敗した場合は、通信インタフェース402は、データの転送中に、データを無効化する。したがって、不正なデータ転送を防ぐことが可能となる。これにより、送信先ネットワーク装置での認証処理や鍵の管理等のセキュリティ対策が不要となる。その結果、個々のネットワーク装置を必要時のみ起動するパーシャルネットワーキングも可能となる。
第2実施形態におけるネットワーク装置は、バスを介したデータの転送が許可されているか否かを管理するフィルタテーブル505と、データに対する制御部501による認証用の鍵を管理する鍵管理テーブル504とを、さらに有する。このネットワーク装置が有する制御部501は、データの転送中に、データがフィルタテーブル505および鍵管理テーブル504に対応しているか否かを判定する。通信インタフェース402は、制御部501による認証が失敗した場合に加えてさらに、制御部501によって、データがフィルタテーブル505および鍵管理テーブル504の少なくとも一方に対応していない場合に、データの転送中に、データを無効化する。これにより、データ形式が不一致である不正なデータの送信を防ぎ、さらに認証処理を行うより低負荷で不正なデータの送信を防ぐことが可能となる。
第3実施形態におけるネットワーク装置においては、制御部501は、さらに、制御部501による認証が行われたことを示すための加工を、データの転送中に、データに対して行う。これにより、認証処理を行うネットワーク装置の動作を、他のネットワーク装置が確認することが可能となる。
認証処理における符号化方式についてストリーム暗号を用いた署名を用いることにより、より高速に判定が可能となり、データの送信期間中に署名の演算を完了させることが容易となる。
1 制御システム
2 ネットワークシステム
3 無線通信部
4 ネットワークシステム
5 有線通信部
6 出力装置
301 ネットワークリンク
302 ECU
303 GW
304 SW
401 プロセッサ
402 通信インタフェース
403 タイマ
404 ROM
405 RAM
406 内部バス
407 セキュリティモジュール
501 制御部
502 通信管理部
503 時間管理部
504 鍵管理テーブル
505 フィルタテーブル
506 バッファ

Claims (17)

  1. 複数のECUに通信線を介して接続されるECUであって、
    前記複数のECUの中の少なくとも1つの送信元ECUからのメッセージが有効なメッセージであるか否かを判断し、なりすましメッセージを検出する処理部と、
    前記なりすましメッセージが検出された場合は、前記なりすましメッセージをデータフレームの受信中にエラーフレームによって上書きするコントローラと、を有し、
    前記判断は複数ステップをもって行われ、
    第一のステップでは第一のフィルタを用いて判断し、前記第一のステップで認証が成功した場合、第二のステップでは、前記第一のフィルタとは異なる第二のフィルタを用いた認証を実施するECU。
  2. 請求項1に記載のECUにおいて、
    前記第一のフィルタを用いた認証はID認証であり、前記第二のフィルタを用いた認証は前記ID認証以外の認証であるECU。
  3. 請求項2に記載のECUにおいて、
    前記第二のフィルタはメッセージのペイロード、周期、頻度であるECU。
  4. 請求項3に記載のECUにおいて、
    前記ID認証とは、前記送信元ECUからのメッセージのIDを用いた認証であり、
    前記ペイロードとは、前記データフレームのデータフィールドのデータの値であり、
    前記周期とは、前記データフレームの周期であり、
    前記頻度とは、前記データフレームの送信頻度である、ECU。
  5. 請求項1又は4に記載のECUにおいて、
    前記なりすましメッセージは、前記送信元ECUが前記複数のECUのうちの他のECUになりすまして送信したメッセージである、ECU。
  6. 請求項1に記載のECUにおいて、
    前記通信線とは、CANであるECU。
  7. 複数のネットワーク装置に規格化されたネットワークを介して接続されるネットワーク装置であって、
    前記複数のネットワーク装置の中の少なくとも1つの送信元ネットワーク装置からのメッセージが有効なメッセージであるか否かを判断し、なりすましメッセージを検出して、前記なりすましメッセージをエラーフレームで上書きする処理部を有し、
    前記判断は複数ステップをもって行われ、
    第一のステップでは第一のフィルタを用いて判断し、前記第一のステップで認証が成功した場合、第二のステップでは、前記第一のフィルタとは異なる第二のフィルタを用いた認証を実施するネットワーク装置。
  8. 請求項7に記載のネットワーク装置において、
    前記第一のフィルタを用いた認証はID認証であり、前記第二のフィルタを用いた認証は前記ID認証以外の認証であるネットワーク装置。
  9. 請求項8に記載のネットワーク装置において、
    前記第二のフィルタはメッセージのペイロード、周期、頻度であるネットワーク装置。
  10. 請求項9に記載のネットワーク装置において、
    前記ID認証とは、前記送信元ネットワーク装置からのメッセージのIDを用いた認証であり、
    前記ペイロードとは、データフレームのデータフィールドのデータの値であり、
    前記周期とは、データフレームの周期であり、
    前記頻度とは、データフレームの送信頻度である、ネットワーク装置。
  11. 請求項7に記載のネットワーク装置において、
    前記なりすましメッセージは、前記送信元ネットワーク装置が前記複数のネットワーク装置のうちの他のネットワーク装置になりすまして送信したメッセージである、ネットワーク装置。
  12. 請求項7乃至10いずれかに記載のネットワーク装置において、
    前記ネットワーク装置とはECUであり、
    前記送信元ネットワーク装置とはECUである、ネットワーク装置。
  13. 請求項7乃至10いずれかに記載のネットワーク装置において、
    前記ネットワーク装置とはECUであり、
    前記送信元ネットワーク装置とはゲートウェイである、ネットワーク装置。
  14. 請求項7乃至10いずれかに記載のネットワーク装置において、
    前記ネットワーク装置とはゲートウェイであり、
    前記送信元ネットワーク装置とはゲートウェイである、ネットワーク装置。
  15. 請求項7乃至10いずれかに記載のネットワーク装置において、
    前記規格化されたネットワークとは、CANである、ネットワーク装置。
  16. 請求項7乃至10いずれかに記載のネットワーク装置において、
    前記規格化されたネットワークとは、CANFDである、ネットワーク装置。
  17. 請求項7乃至10いずれかに記載のネットワーク装置において、
    前記規格化されたネットワークとは、Ethernetである、ネットワーク装置。
JP2020083497A 2020-05-11 2020-05-11 Ecu、ネットワーク装置 Withdrawn JP2020141414A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020083497A JP2020141414A (ja) 2020-05-11 2020-05-11 Ecu、ネットワーク装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020083497A JP2020141414A (ja) 2020-05-11 2020-05-11 Ecu、ネットワーク装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018155203A Division JP2018182767A (ja) 2018-08-22 2018-08-22 Ecu、ネットワーク装置、及び車用ネットワーク装置

Publications (1)

Publication Number Publication Date
JP2020141414A true JP2020141414A (ja) 2020-09-03

Family

ID=72265313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020083497A Withdrawn JP2020141414A (ja) 2020-05-11 2020-05-11 Ecu、ネットワーク装置

Country Status (1)

Country Link
JP (1) JP2020141414A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013131907A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 車両ネットワーク監視装置
JP2013187555A (ja) * 2012-03-05 2013-09-19 Auto Network Gijutsu Kenkyusho:Kk 通信システム
JP2018182767A (ja) * 2018-08-22 2018-11-15 日立オートモティブシステムズ株式会社 Ecu、ネットワーク装置、及び車用ネットワーク装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013131907A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 車両ネットワーク監視装置
JP2013187555A (ja) * 2012-03-05 2013-09-19 Auto Network Gijutsu Kenkyusho:Kk 通信システム
JP2018182767A (ja) * 2018-08-22 2018-11-15 日立オートモティブシステムズ株式会社 Ecu、ネットワーク装置、及び車用ネットワーク装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TSUTOMU MATSUMOTO ET AL.: "A Method of Preventing Unauthorized DataTransmission in Controller Area Network", 2012 IEEE 75TH VEHICULAR TECHNOLOGY CONFERENCE (VTC SPRING), JPN6021013661, 6 May 2012 (2012-05-06), ISSN: 0004488027 *
大塚敏史,石郷岡祐: "既存ECUを変更不要な車載LAN向け侵入検知手法", 情報処理学会研究報告 2013 APRIL 研究報告 組込みシステム(EMB) NO.28(6), JPN6018010453, 15 April 2013 (2013-04-15), JP, ISSN: 0004488028 *
畑正人他: "CANにおける不正送信阻止方式の実装と評価", 電子情報通信学会技術研究報告 VOL.112 NO.342 IEICE TECHNICAL REPORT, vol. 第112巻,第342号, JPN6017008221, 5 December 2012 (2012-12-05), JP, pages 15 - 22, ISSN: 0004488029 *

Similar Documents

Publication Publication Date Title
US11134100B2 (en) Network device and network system
US11134064B2 (en) Network guard unit for industrial embedded system and guard method
US8335918B2 (en) MAC frame provision method and apparatus capable of establishing security in IEEE 802.15.4 network
JP6569087B2 (ja) 受信装置および受信方法
JP2017121091A (ja) Ecu、及び車用ネットワーク装置
US11245535B2 (en) Hash-chain based sender identification scheme
US20110164752A1 (en) Detection of Stale Encryption Policy By Group Members
EP1618702B1 (en) Transmission/reception system using message authentication code
CN110035047B (zh) 用于检查数据包中的消息完整性的轻型机制
US7139679B1 (en) Method and apparatus for cryptographic protection from denial of service attacks
JP2005117246A (ja) パケット判定装置
JP2018182767A (ja) Ecu、ネットワーク装置、及び車用ネットワーク装置
US10311005B2 (en) Message translator
Daily et al. Securing CAN traffic on J1939 networks
US11336657B2 (en) Securing communication within a communication network using multiple security functions
JP2016019031A (ja) フィルタリング装置およびフィルタリング方法
JP2020141414A (ja) Ecu、ネットワーク装置
JP7016783B2 (ja) 情報処理装置、管理装置
JP7467670B2 (ja) 特に自動車におけるデータの異常を処理するための方法
WO2022140895A1 (zh) 一种数据传输方法及装置
JP2003273894A (ja) ブリッジ装置および伝送方法
KR20220135899A (ko) 차량의 전자 제어 장치, 게이트웨이 장치 및 이들을 포함하는 차량
KR20110087972A (ko) 세션 테이블을 이용한 비정상 트래픽의 차단 방법
JPH11220495A (ja) 暗号通信装置
JP2008060817A (ja) 通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210420

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20210623