JP6685023B2 - 電子制御装置、通信方法およびプログラム - Google Patents

電子制御装置、通信方法およびプログラム Download PDF

Info

Publication number
JP6685023B2
JP6685023B2 JP2019065338A JP2019065338A JP6685023B2 JP 6685023 B2 JP6685023 B2 JP 6685023B2 JP 2019065338 A JP2019065338 A JP 2019065338A JP 2019065338 A JP2019065338 A JP 2019065338A JP 6685023 B2 JP6685023 B2 JP 6685023B2
Authority
JP
Japan
Prior art keywords
message
mac
unit
data
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.)
Active
Application number
JP2019065338A
Other languages
English (en)
Other versions
JP2019097218A (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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co 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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Publication of JP2019097218A publication Critical patent/JP2019097218A/ja
Application granted granted Critical
Publication of JP6685023B2 publication Critical patent/JP6685023B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40026Details regarding a bus guardian
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Small-Scale Networks (AREA)
  • Mechanical Engineering (AREA)

Description

本発明は、バスで接続された通信システムにおける電子制御装置、通信方法およびプログラムに関する。
車載ネットワークとしてCAN(Controller Area Ne twork)が普及している。CANはバス型ネットワークを採用したシリアル通信プロトコルである。バスに接続される各ノードからのメッセージは、バスに接続される全てのノードにブロードキャストされる。当該メッセージには送信元ノード及び宛先ノードの識別情報が含まれない。したがって受信ノードにおいて、正しい通信相手から来たメッセージであるか否かを単純に判断することはできない。
メッセージの完全性を保証したり、CANに接続された不正機器からのリプレイ攻撃を防御したりするため、メッセージ認証コード(Message Authentication Code;MAC)を用いる方法が提案されている。例えば通常のメッセージを生成および送信する度にそのメッセージに対するMACを生成し、MACを含むメッセージを送信する方法が提案されている(例えば特許文献1参照)。
特開2013−98719号公報
本発明は、ブロードキャスト送信される通信システムにおけるセキュリティを、負荷の増大を抑制しつつ向上させる技術を提供する。
本発明の一態様に係る送信装置は、検出部と、生成部と、送信部と、を有する。検出部は、他の送信装置によりネットワークへブロードキャスト送信されたメッセージの通信規則が、本送信装置が保持するメッセージの通信規則と一致するか否かを検出する。生成部は、異常を検出したことを通知するための異常通知メッセージを生成する。送信部は、生成部が生成したメッセージをネットワークへブロードキャスト送信する。検出部が、他の送信装置によりネットワークへブロードキャスト送信されたメッセージの通信規則と本送信装置がネットワークへブロードキャスト送信するメッセージの通信規則との一致を検出した場合、生成部は、異常通知メッセージを生成し、送信部が、この異常通知メッセージをネットワークへブロードキャスト送信する。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、又はコンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、ブロードキャスト送信される通信システムにおけるセキュリティを、負荷の増大を抑制しつつ向上させることができる。
CANで使用される標準フォーマットのデータフレームの一例を示す図 本発明の実施の形態に係るCANシステムの構成の一例を示す図 本発明の実施の形態に係るECUの構成例を示す図 異常検出後に制御を続ける方式にてMACを別メッセージで送信する場合における、メッセージ処理部のなりすまし検出およびメッセージ送信に必要な機能を示すブロック図 図4のメッセージ処理部による、なりすまし検出処理を示すフローチャート 図4のメッセージ処理部によってなりすましが検出された後のメッセージ送信処理を示すフローチャート 異常検出後に制御を続ける方式にてメインメッセージを先に受信しMACメッセージを後に受信する場合における、メッセージ処理部のメッセージ受信に必要な機能を示すブロック図 図7のメッセージ処理部によるメインメッセージ受信処理を示すフローチャート 図7のメッセージ処理部によるMACメッセージ受信処理を示すフローチャート 異常検出後に制御を続ける方式にてMACメッセージを先に受信しメインメッセージを後に受信する場合における、メッセージ処理部のメッセージ受信に必要な機能を示すブロック図 図10のメッセージ処理部によるMACメッセージ受信処理を示すフローチャート 図10のメッセージ処理部によるメインメッセージ受信処理を示すフローチャート 異常検出後に制御を続ける方式にてMACをメインメッセージに含めて送信する場合における、メッセージ処理部のなりすまし検出およびメッセージ送信に必要な機能を示すブロック図 図13のメッセージ処理部による、なりすまし検出後のMAC付きメインメッセージ送信処理を示すフローチャート 異常検出後に制御を続ける方式にてMAC付きメインメッセージを受信する場合における、メッセージ処理部のメッセージ受信に必要な機能を示すブロック図 図15のメッセージ処理部によるMAC付きメインメッセージ受信処理を示すフローチャート 異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部のなりすまし検出および不正通知メッセージ送信に必要な機能を示すブロック図 不正通知メッセージのフォーマット例を示す図 図17のメッセージ処理部によるなりすまし検出処理および不正通知メッセージ送信処理を示すフローチャート 異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部の不正通知メッセージ受信に必要な機能を示すブロック図 異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部による不正通知メッセージ受信処理を示すフローチャート 異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部によるメインメッセージ受信処理を示すフローチャート 2つのCANシステムがゲートウェイ装置を介して接続された統合システムの構成例を示す図 図23のゲートウェイ装置が保持するホワイトリストの一例を示す図 統合システム内の異なるCANシステム間におけるなりすましを検出する第1の構成例を説明するためのタイミングチャート 統合システム内でなりすましを検出するための第2の構成例を採用する場合におけるホワイトリストの一例を示す図 統合システム内の異なるCANシステム間におけるなりすましを検出する第2の構成例を説明するためのタイミングチャート 統合システム内の異なるCANシステム間におけるなりすましを検出する第3の構成例を説明するためのタイミングチャート
本発明の実施の形態の説明に先立ち、従来の送信装置における課題を簡単に説明する。従来の送信装置では、通常のメッセージを生成および送信する度にMACを生成する。この場合、ノードの負荷が大きくなり消費電力も増大する。またメッセージの数が増えるためバスの占有率も増大する。
本発明の実施の形態は、車両内に搭載される複数のECU(Electr onic Control Unit)がノードとして接続された車載ネットワークであって、メッセージIDとデータと認証コードとしてのMACとが含まれるメッセージがブロードキャストされるものに関する。以下このようなネットワークとしてのCANシステムを例示して本発明の実施の形態を説明する。上述のようにCANはバス型ネットワークを採用しており、バスに接続される各ECUからのメッセージはバスに接続される全てのECUにブロードキャストされる。近年、車両の電装化が進み一台の車両に搭載されるECUの数やECUが扱うデータ量が増えており、CANバスのトラフィック量が増えている。またECUの増加および高度化に伴いバッテリの消費電力が増えている。
図1は、CANで使用される標準フォーマットのデータフレームの一例を示す図である。このデータフォーマットは次の規格文書に記載されている。ISO 11898−1:2003 Road vehicles −− Controller area network(CAN)−−Part 1: Data link layer and physical si gnalling
図1のデータフレームはSOF、IDフィールド、RTR、IDE、r0 、DLC、データフィールド、CRCデリミタ、Ack、Ackデリミタ及びEOFを含む。各ボックス内の数字はビット数を示す。またボックスの上が開放されている項目は常に「0」をとる項目であり、ボックスの下が開放されている項目は常に「1」をとる項目である。上下が開放されていない項目は「0」と「1」の両方をとりうる項目である。
本実施の形態では主にIDフィールドF1とデータフィールドF2に注目する。IDフィールドF1に格納されるID(以下適宜、CANIDともいう)は、メッセージの種類および優先度を表す識別情報である。本明細書では送信可能な状態のデータフレームをメッセージと呼ぶ。CANにおけるメッセージは車両内の特定の処理対象の特定の通知事項に関するメッセージである。当該処理対象には特定の監視対象および特定の制御対象が含まれる。例えば車両内の特定の処理対象に関するメッセージとして、速度情報を含むメッセージ、又はドアの開閉を指示するメッセージ等がある。また同じ処理対象に対して複数の通知事項が設定されることがある。例えば1つのメーターに対してエンジン回転数を通知するための通知事項、及びエンジン水温を通知するための通知事項など複数の通知事項が設定可能である。
CANIDは、送信されるメッセージに含まれる特定の処理対象の特定の通知事項に関連づけられている。メッセージを受信したECUでは、そのCANIDに基づいてメッセージに含まれる特定の通知事項の内容を判断する。データフィールドF2には最大64ビットのデータを格納できる。
図1に示すようにCANのデータフレームには送信先IDおよび受信先IDが含まれない。したがって受信側のECUは、正しい通信相手から来たメッセージであるか否か判断できない。例えばエンジン回転数を含むメッセージはエンジンECUから送信される。当該メッセージに付与されるCANIDと同じCANIDが付与されたメッセージが、不正なECUから送信されると、受信側のECUは正当なエンジンECUからのメッセージであるか不正なECUからのメッセージであるか判別できない。すなわち、不正なECUが送信ECUになりすまして不正な情報を含むメッセージを送信したとしても、受信側のECUでは、正当なメッセージとして処理してしまい、その後の処理(補機の制御など)に悪影響が及んでしまう。例えば、不正なECUがエンジンECUになりすましてエンジン回転数を含むメッセージを送信することにより、それを受信したメーターECUの制御に悪影響が及ぶといったことが挙げられる。
このようにCANプロトコルでは、なりすましが容易である。またメッセージがCANバスに対してブロードキャスト送信されるため、ユニキャスト送信よりも盗聴が容易である。
これらの脅威に対して本実施の形態ではMACを用いることでCANメッセージを認証する。MACは認証対象のデータと共通鍵とに所定のMACアルゴリズムを適用して生成される。共通鍵はCANに接続されたECU間で事前に共有される秘密の鍵である。MAC生成アルゴリズムにはハッシュ関数を使う方式(HMAC)やブロック暗号アルゴリズムを使う方式(OMAC/CMAC、CBC−MAC、PMAC)などがある。受信側のECUではメッセージに含まれる認証対象のデータと自己が保持する共通鍵に、送信側のECUで使用されたMACアルゴリズムを適用してMACを算出する。この算出したMACと受信したMACが一致していれば認証が成功したと判定し、不一致であれば認証が失敗したと判定する。
したがって共通鍵が漏洩しなければ不正なECUや悪意がある発信元などからのメッセージは認証されないことになる。正当なメッセージとMACを受信した不正なECUなどからの再送攻撃に対しては認証対象のデータにカウンタ値などを含めることにより対処できる。本実施の形態では送信側のECUで生成されるMACのデータ長を64ビット以下とする。64ビットを超えるMACが算出される場合、その任意の64ビット又はそれ以下のビットを抽出して使用する。
以下本明細書ではデータフィールドに、特定の処理対象の特定の通知事項に関する情報(以下適宜、通常データという)を含みMACを含まないメッセージをメインメッセージという。メインメッセージは通常の処理を行うために送信されるメッセージである。通常データは、特定の処理対象の特定の機能に関する制御値などが該当する。データフィールドに通常データを含まずMACを含むメッセージをMACメッセージという。データフィールドに通常データとMACの両方を含むメッセージをMAC付きメインメッセージという。メインメッセージ、MACメッセージ及びMAC付きメインメッセージは通常のメッセージである。通常のメッセージ以外に、あるCANIDを含むメッセージが不正なメッセージであることを通知するためのメッセージがある。以下このメッセージを不正通知メッセージという。また、MACメッセージとMAC付きメインメッセージと不正通知メッセージとのうち、少なくともいずれか1つを含むメッセージを異常通知メッセージという。異常通知メッセージとは、上述のような「なりすまし」などによる異常を検出した際に、異常を検出したことを他のECUへ通知するためのメッセージである。詳細後述する通り、以下の実施の形態において、MACを受信した時点で受信側のECUが異常(なりすましによる不正)の発生を判断できるため、MACメッセージおよびMAC付きメインメッセージも実質的に異常通知メッセージに含まれる。
CANの性質上、基本的にあるIDのメッセージを送信するECUは一意に定められる。このCANのブロードキャストの性質を利用することにより、自らが送信すべきIDのメッセージが他のECUに送信されていないか監視することで、不正なメッセージ送信を検出できる。以下この検出方法を利用して恒常的にMACを送信することなく、セキュリティを確保する方法を検討する。
図2は、本発明の実施の形態に係るCANシステム500の構成の一例を示す図である。当該CANシステム500では、CANバス200に複数のECU100(図2ではECU1(100a)、ECU2(100b)、ECU3(100c)及びECU4(100d))が接続されている。CAN ではCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)と呼ばれるアクセス制御方式が採用されており、CANバス200に対して最初に送信を開始したECU100が送信権を取得する。なお同時に複数のECU100が送信した場合は通信調停(bus arbitration)が行われる。CANではCANIDの値が小さいほうが優先される。
図3は、本発明の実施の形態に係るECU100の構成例を示す図である。ECU100は、アプリケーション処理部10、メッセージ処理部30及び送受信部50を有する。これらの構成はハードウエア的には任意のプロセッサ、メモリ及びその他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところである。
アプリケーション処理部10は例えば、プロセッサ、メモリ及びメモリにロードされたアプリケーションプログラムによって実現される。メッセージ処理部30は例えば、プロセッサ、メモリ、メモリにロードされたメッセージ処理プログラム及びCANコントローラによって実現される。なおCANコントローラに全ての機能を実装する構成も可能である。送受信部50は例えば、トランシーバにより実現される。
アプリケーション処理部10は各ECU100の処理対象(例えばエンジン、ステアリング、ブレーキ又はその他の各種補機)と接続し、それらの処理対象からステータス情報または指示情報を取得する。アプリケーション処理部10は当該処理対象から取得した情報をもとに、CANにおいてブロードキャスト送信すべきデータを生成し、メッセージ処理部30に渡す。またアプリケーション処理部10は、CANバス200から受信されたメインメッセージ又はMAC付きメインメッセージに含まれるデータをメッセージ処理部30から受け取り、当該データに応じて当該処理対象を処理する。
メッセージ処理部30はメッセージ送信時にメッセージを生成するとともに、メッセージ受信時にメッセージを解析する。メッセージ処理部30の具体的な構成は後述する。
送受信部50は、メッセージ処理部30により生成されたメッセージをCANバス200へブロードキャスト送信する。送受信部50は、他のECU100で生成されCANバス200へブロードキャスト送信されたメッセージをCANバス200から受信する。送受信部50は受信したメッセージをメッセージ処理部30に渡す。
本実施の形態では正規の送信側のECU100が、自己が送信すべきメッセージが自己以外の装置から他のECU100に送信されていることを検出した場合、受信側のECU100に対して異常を通知する。これにより不正制御が行われることを防止する。正規の送信側のECU100による不正メッセージの検出後、不正メッセージに含まれるIDにより特定される処理対象の機能について、制御を続ける方式とフェイルセーフ制御に移行する方式が考えられる。まず制御を続ける方式から説明する。
図4は、異常検出後に制御を続ける方式にてMACを別メッセージで送信する場合における、メッセージ処理部30のなりすまし検出およびメッセージ送信に必要な機能を示すブロック図である。図4では受信に関する機能は省略して描いている。図4のメッセージ処理部30はメッセージ解析部31、CANID抽出部32、なりすまし検出部34、MAC生成部35、メインメッセージ生成部36、データフィールド抽出部37及びMACメッセージ生成部38を有する。
図5は、図4のメッセージ処理部30による、なりすまし検出処理を示すフローチャートである。送受信部50はCANバス200からメッセージを受信し、メッセージ解析部31に渡す。CANID抽出部32は、メッセージ解析部31により受信されたメッセージのIDフィールドからCANID を抽出する(図5のS10)。CANID抽出部32は抽出したCANIDをなりすまし検出部34に渡す。
なりすまし検出部34はCANID抽出部32から渡されたCANIDと、自己のECU100が送信するメッセージに含めるべきCANIDとを比較して、なりすましを検出する(S11)。ここで、自己が送信するIDは複数あることが一般的であり、複数のID(ID群)はリスト化されて(IDリスト)、各ECUのメモリに保存されているものとする。したがって、なりすまし検出部34は、IDリストの全IDについてCANIDとの比較を行う。
両者のCANIDが一致する場合は、受信されたメッセージがなりすましメッセージであると判定する。なりすましが検出された場合(S12のY) 、なりすまし検出部34はなりすまし発生をMAC生成部35及びメインメッセージ生成部36に通知する(S13)。なりすましが検出されない場合(S12のN)、ステップS13の処理はスキップされる。
図6は、図4のメッセージ処理部30によってなりすましが検出された後のメッセージ送信処理を示すフローチャートである。メインメッセージ生成部36はなりすまし検出部34からなりすまし発生の通知を受けると、なりすまされたCANIDで特定される処理対象の機能に関する正当なデータをアプリケーション処理部10から取得する。メインメッセージ生成部36は取得したデータをCANメッセージのデータフィールドに格納する。また当該データに対応するCANIDをIDフィールドに格納する。メインメッセージ生成部36はCANメッセージのその他の項目の値を確定してメインメッセージを完成させる。メインメッセージ生成部36は生成したメインメッセージを送受信部50に渡し、送受信部50は当該メインメッセージをCANバス200へブロードキャスト送信する(図6のS20)。
CANID抽出部32は、送信されたメインメッセージのIDフィールドからCANIDを抽出する(S21)。CANID抽出部32は抽出したCANIDをMAC生成部35に渡す。データフィールド抽出部37は、送信されたメインメッセージのデータフィールドに格納されたデータを抽出する(S22)。データフィールド抽出部37は抽出したデータをMAC生成部35に渡す。
MAC生成部35は、抽出されたCANID及びデータをもとにMACを生成する(S23)。具体的には少なくとも抽出されたCANID及びデータを含む認証対象に、保持する共通鍵35aを使用して所定のMACアルゴリズムを適用する。これにより当該認証対象に対するMACが生成される。MAC生成部35は生成したMACをMACメッセージ生成部38に渡す。
MACメッセージ生成部38はMAC生成部35から取得したMACをCANメッセージのデータフィールドに格納する。また上記データに対するMACを含むメッセージであることを示すCANIDをIDフィールドに格納する。例えば上記データそのものを含むメッセージであることを示すCANIDの値から所定の固定値を減算した値が使用されてもよい。MACメッセージ生成部38はCANメッセージのその他の項目の値を確定してMACメッセージを完成させる。MACメッセージ生成部38は生成したMACメッセージを送受信部50に渡し、送受信部50は当該MACメッセージをCANバス200へブロードキャスト送信する(S24)。
図6では、なりすまされたCANIDで特定される処理対象の機能の正当なデータを含むメインメッセージを先に送信し、当該正当なデータを少なくとも対象とするMACを含むMACメッセージを後に送信する例を説明した。この点、当該MACメッセージを先に送信し、当該メインメッセージを後に送信することとしても良い。
図7は、異常検出後に制御を続ける方式にてメインメッセージを先に受信しMACメッセージを後に受信する場合における、メッセージ処理部30のメッセージ受信に必要な機能を示すブロック図である。図7ではなりすまし検出およびメッセージ送信に関する機能は省略して描いている。図7のメッセージ処理部30はメッセージ解析部41、CANID抽出部42、データフィールド抽出部43、モード切替部44、MAC生成部45、MAC比較部46、データ受渡部47及びメインメッセージ一時保持部48を有する。
図8は、図7のメッセージ処理部30によるメインメッセージ受信処理を示すフローチャートである。送受信部50はCANバス200からメインメッセージを受信し、メッセージ解析部41に渡す。メッセージ解析部41はメインメッセージを受信すると、当該メインメッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(図8のS30)。
異常検出後に制御を続ける方式における縮退モードとは、メインメッセージに含まれる特定の処理対象の特定の機能に関するデータを、MACの検証に成功したことを条件として、当該機能に関する処理に使用するモードである。したがってMACの検証に失敗した場合、当該機能に関するデータは使用されずに破棄される。通常モードでは、メインメッセージに含まれる当該データは、MACの検証を行うことなく当該機能に関する処理に使用される。
ステップS30にて縮退モードに移行中でなく通常モードの場合(S30 のN)、メッセージ解析部41により受信されたメインメッセージに対して、データフィールド抽出部43が、このメインメッセージのデータフィールドに格納されたデータを抽出してデータ受渡部47に渡す。データ受渡部47は、データフィールド抽出部43から取得したデータをアプリケーション処理部10に渡す(S31)。アプリケーション処理部10は取得したデータに応じて処理対象を処理する。
ステップS30にて縮退モードに移行中の場合(S30のY)、メッセージ解析部41は、受信されたメインメッセージをデータフィールド抽出部43には渡さず、処理が保留される(S32)。
メッセージ解析部41は、メインメッセージ一時保持部48にメインメッセージが保持されているか否か判断する(S33)。保持されている場合( S33のY)、メインメッセージ一時保持部48に保持されているメインメッセージの数がn個以上であるか否か判断する(S34)。nはメインメッセージ一時保持部48に保持されるメインメッセージの上限数を規定したパラメータである。例えばn=3に設定される。
メインメッセージの数がn個以上、保持されている場合(S34のY)、メッセージ解析部41は、メインメッセージ一時保持部48に保持されている複数のメインメッセージの内、最も古いメインメッセージを破棄する(S35)。メッセージ解析部41は受信した新しいメインメッセージをメインメッセージ一時保持部48に格納する(S36)。即ちメインメッセージ一時保持部48はFIFO(FIRST−IN FIRST−OUT)で管理される。メインメッセージ一時保持部48に格納されたメインメッセージに含まれるデータに対するMACの生成処理は、メッセージ解析部41から指示があるまで保留される。
ステップS34にて、メインメッセージ一時保持部48に保持されているメインメッセージの数がn個未満である場合(S34のN)、ステップS35はスキップされ、メッセージ解析部41は受信した新しいメインメッセージをメインメッセージ一時保持部48に格納する(S36)。
ステップS33にて、メインメッセージ一時保持部48にメインメッセージが保持されていない場合(S33のN)、メッセージ解析部41は受信した新しいメインメッセージをメインメッセージ一時保持部48に格納する( S36)。
図9は、図7のメッセージ処理部30によるMACメッセージ受信処理を示すフローチャートである。送受信部50はCANバス200からMACメッセージを受信し、メッセージ解析部41に渡す。メッセージ解析部41はMACメッセージを受信すると、当該メインメッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(図9のS40)。縮退モードに移行中でない場合(S40のN)、モード切替部44は通常モードから縮退モードに切り替える(S41)。縮退モードに移行中の場合(S40のY)、縮退モードを継続する。このように異常検出後に制御を続ける方式では、受信側のECU100でMACが受信されたタイミングで縮退モードに移行する。
メッセージ解析部41は、メインメッセージ一時保持部48にメインメッセージが保持されているか否か判断する(S42)。保持されている場合(S42のY)、メッセージ解析部41は受信したMACメッセージをデータフィールド抽出部43に渡し、データフィールド抽出部43は、取得したMACメッセージのデータフィールドからMACを抽出する(S43)。データフィールド抽出部43は抽出したMACをMAC比較部46に渡す。
メインメッセージ一時保持部48に保持されるメインメッセージのMACが生成済みでない場合(S44のN)、CANID抽出部42は、メッセージ解析部41により受信されてメインメッセージ一時保持部48に保持されているメインメッセージのIDフィールドからCANIDを抽出する(S45)。CANID抽出部42は抽出したCANIDをMAC生成部45に渡す。データフィールド抽出部43は、メッセージ解析部41により受信されてメインメッセージ一時保持部48に保持されているメインメッセージのデータフィールドに格納されたデータを抽出する(S46)。データフィールド抽出部43は抽出したデータをMAC生成部45及びデータ受渡部47に渡す。
MAC生成部45は、抽出されたCANID及びデータをもとにMACを生成する(S47)。生成方法は送信側のMAC生成部35の生成方法と同じである。受信側のMAC生成部45は、送信側のMAC生成部35が保持する共通鍵35aと同じ共通鍵45aを保持している。MAC生成部45は生成したMACをMAC比較部46に渡す。
MAC比較部46はMAC生成部45により生成されたMACと、データフィールド抽出部43により抽出されたMACとを比較する(S48)。両者のMACが一致した場合(S49のY)、MAC比較部46はMACの検証が成功したと判定し、データ受渡部47に検証が成功した旨を通知する。データフィールド抽出部43は、MACの検証が成功したメインメッセージのデータフィールドからデータを抽出してデータ受渡部47に渡す。データ受渡部47はデータフィールド抽出部43から渡されたデータをアプリケーション処理部10に渡す(S410)。アプリケーション処理部10は取得したデータに応じて処理対象を処理する。
メッセージ解析部41は、メインメッセージ一時保持部48にメインメッセージが保持されているか否か判断する(S412)。保持されている場合(S412のY)、メッセージ解析部41はメインメッセージ一時保持部48に保持されているメッセージを破棄する(S413)。メインメッセージ一時保持部48にメインメッセージが保持されていない場合(S412のN)、ステップS413の処理がスキップされる。
ステップS49にて、両者のMACが一致しない場合(S49のN)、MAC比較部46はMACの検証が失敗したと判定し、データ受渡部47に検証が失敗した旨を通知する。データ受渡部47はデータフィールド抽出部43から渡されたデータをアプリケーション処理部10に渡さない。メッセージ解析部41は受信したMACメッセージを破棄する(S411)。
ステップS44にて、メインメッセージ一時保持部48に保持されているメインメッセージのMACが生成済みである場合(S44のY)、ステップS45〜ステップS47の処理がスキップされる。
ステップS42にて、メインメッセージ一時保持部48にメインメッセージが保持されていない場合(S42のN)、メッセージ解析部41は受信したMACメッセージを破棄する(S411)。
なおMACメッセージが受信された際、メインメッセージ一時保持部48に複数のメインメッセージが保持されている場合、新しいメインメッセージから順にMACが生成され、受信されたMACメッセージに含まれるMACと比較される。受信したMACメッセージに対応するメインメッセージが見つかった時点で当該メインメッセージに含まれるデータに応じた処理が実行される。それと共にメインメッセージ一時保持部48に保持されている残りのメインメッセージが破棄される。
図10は、異常検出後に制御を続ける方式にてMACメッセージを先に受信しメインメッセージを後に受信する場合における、メッセージ処理部30のメッセージ受信に必要な機能を示すブロック図である。図10ではなりすまし検出およびメッセージ送信に関する機能は省略して描いている。図10のメッセージ処理部30は、図7のメッセージ処理部30のメインメッセージ一時保持部48がMACメッセージ一時保持部48aに置き換わった構成である。
図11は、図10のメッセージ処理部30によるMACメッセージ受信処理を示すフローチャートである。送受信部50はCANバス200からMACメッセージを受信し、メッセージ解析部41に渡す。メッセージ解析部41はMACメッセージを受信すると、当該MACメッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(図11のS50)。縮退モードに移行中でない場合(S50のN )、モード切替部44は通常モードから縮退モードに切り替える(S51)。縮退モードに移行中の場合(S50のY)、縮退モードを継続する。
メッセージ解析部41は、MACメッセージ一時保持部48aに保持されているMACメッセージの数がn個以上であるか否か判断する(S52)。nはMACメッセージ一時保持部48aに保持されるMACメッセージの上限数を規定したパラメータである。例えばn=3に設定される。
MACメッセージの数がn個以上、保持されている場合(S52のY)、メッセージ解析部41は、MACメッセージ一時保持部48aに保持されている複数のMACメッセージの内、最も古いMACメッセージを破棄する(S53)。メッセージ解析部41は受信した新しいMACメッセージをMACメッセージ一時保持部48aに格納する(S54)。即ちMACメッセージ一時保持部48aはFIFO(FIRST−IN FIRST−OUT)で管理される。ステップS52にて、MACメッセージ一時保持部48aに保持されているMACメッセージの数がn個未満である場合(S52のN)、ステップS53がスキップされ、メッセージ解析部41は受信した新しいMACメッセージをMACメッセージ一時保持部48aに格納する(S54 )。
メインメッセージが受信されるとデータフィールド抽出部43は、先に受信されたMACメッセージのデータフィールドに格納されたMACを抽出してMAC比較部46に渡す(S55)。
図12は、図10のメッセージ処理部30によるメインメッセージ受信処理を示すフローチャートである。送受信部50はCANバス200からメインメッセージを受信し、メッセージ解析部41に渡す。メッセージ解析部41はメインメッセージを受信すると、当該メインメッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(図12のS60)。
縮退モードに移行中であり(S60のY)且つMACメッセージが受信済みである場合(S61のY)、CANID抽出部42は、メッセージ解析部41により受信されたメインメッセージのIDフィールドからCANIDを抽出する(S62)。CANID抽出部42は抽出したCANIDをMAC生成部45に渡す。データフィールド抽出部43は、メッセージ解析部41により受信されたメインメッセージのデータフィールドに格納されたデータを抽出する(S63)。データフィールド抽出部43は抽出したデータをMAC生成部45及びデータ受渡部47に渡す。
MAC生成部45は、抽出されたCANID及びデータをもとにMACを生成する(S64)。MAC生成部45は生成したMACをMAC比較部46に渡す。MAC比較部46はMAC生成部45により生成されたMACと、データフィールド抽出部43によりMACメッセージのデータフィールドから抽出されたMACとを比較する(S65)。両者のMACが一致した場合(S66のY)、MAC比較部46はMACの検証が成功したと判定し、データ受渡部47に検証が成功した旨を通知する。データ受渡部47は当該通知を受けると、データフィールド抽出部43から渡され保留していたデータをアプリケーション処理部10に渡す(S67)。アプリケーション処理部10は取得したデータに応じて処理対象を処理する。
ステップS66にて、両者のMACが一致しない場合(S66のN)、MAC比較部46はMACの検証が失敗したと判定し、データ受渡部47に検証が失敗した旨を通知する。データ受渡部47は、データフィールド抽出部43から渡されたデータをアプリケーション処理部10に渡さない。ステップS61にて、MACメッセージが受信済みでない場合(S61のN)、メッセージ解析部41は受信したメインメッセージを破棄する(S68)。ステップS60にて、縮退モードに移行中でない場合(S60のN)、ステップS61〜ステップS66がスキップされ、受信されたメインメッセージから抽出されたデータはアプリケーション処理部10に渡される(S67)。アプリケーション処理部10は取得したデータに応じて処理対象を処理する。
なおメインメッセージが受信された際、MACメッセージ一時保持部48aに複数のMACメッセージが保持されている場合、新しいMACから順に、メインメッセージに含まれるデータから生成されるMACと比較される。MACが一致した時点で当該メインメッセージに含まれるデータに応じた処理が実行される。それと共にMACメッセージ一時保持部48aに保持されている残りのMACメッセージが破棄される。
以上、正当なデータを含むメインメッセージを先に送信し、当該メインメッセージに対するMACメッセージを後に送信する場合と、正当なデータを含むメインメッセージに対するMACメッセージを先に送信し、当該メインメッセージを後に送信する場合を説明した。両者の送信方法のどちらを採用してもよいが、後者の送信方法を採用した方が縮退モードに移行するタイミングが早くなる。受信側のECU100ではMACメッセージの受信を契機として縮退モードに移行するためである。当該MACメッセージと当該メインメッセージの間に、攻撃者により不正メッセージが挿入された場合でも既に縮退モードに移行しているため、当該不正メッセージによる不正な制御を防止できる。
図13は、異常検出後に制御を続ける方式にてMACをメインメッセージに含めて送信する場合における、メッセージ処理部30のなりすまし検出およびメッセージ送信に必要な機能を示すブロック図である。図13では受信に関する機能は省略して描いている。図13のメッセージ処理部30は、図4のメッセージ処理部30からMACメッセージ生成部38が省略された構成である。
図14は、図13のメッセージ処理部30による、なりすまし検出後のMAC付きメインメッセージ送信処理を示すフローチャートである。メインメッセージ生成部36は、なりすまし検出部34からなりすまし発生の通知を受けると、なりすまされたCANIDで特定される処理対象の機能に関する正当なデータをアプリケーション処理部10から取得する。メインメッセージ生成部36は取得したデータをCANメッセージのデータフィールドに格納してメインメッセージを生成する(S20a)。
CANID抽出部32は、生成されたメインメッセージのIDフィールドからCANIDを抽出する(S21a)。CANID抽出部32は抽出したCANIDをMAC生成部35に渡す。データフィールド抽出部37は、生成されたメインメッセージのデータフィールドに格納されたデータを抽出する(S22a)。データフィールド抽出部37は抽出したデータをMAC生成部35に渡す。
MAC生成部35は、抽出されたCANID及びデータをもとにMACを生成する(S23a)。MAC生成部35は生成したMACをメインメッセージ生成部36に渡す。メインメッセージ生成部36はMAC生成部35から取得したMACを、上記メインメッセージのデータフィールドに追加で格納する。メインメッセージ生成部36はMACを追加したMAC付きメインメッセージを送受信部50に渡し、送受信部50は当該MAC付きメインメッセージをCANバス200へブロードキャスト送信する(S24a)。
図15は、異常検出後に制御を続ける方式にてMAC付きメインメッセージを受信する場合における、メッセージ処理部30のメッセージ受信に必要な機能を示すブロック図である。図15ではなりすまし検出およびメッセージ送信に関する機能は省略して描いている。図15のメッセージ処理部30は、図7のメッセージ処理部30のメインメッセージ一時保持部48が省略された構成である。また図10のメッセージ処理部30のMACメッセージ一時保持部48aが省略された構成でもある。
図16は、図15のメッセージ処理部30によるMAC付きメインメッセージ受信処理を示すフローチャートである。送受信部50はCANバス200からメッセージを受信し、メッセージ解析部41に渡す。メッセージ解析部41は送受信部50から取得したメッセージにMACが含まれるか否か判定する(図16のS398)。MACが含まれるか否かは、例えばデータ長符号(DLC:DataLengthCode)、CANID、又はデータフィールド内にMACを含むか否かを示すフラグを参照することにより判定できる。
MACが含まれる場合(S398のY)、メッセージ解析部41は受信したMAC付きメインメッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(S40)。縮退モードに移行中でない場合(S40のN)、モード切替部44は通常モードから縮退モードに切り替える(S41)。縮退モードに移行中の場合(S40のY)、縮退モードを継続する。
CANID抽出部42は、メッセージ解析部41により受信されたMAC付きメインメッセージのIDフィールドからCANIDを抽出する(S45a)。CANID抽出部42は抽出したCANIDをMAC生成部45に渡す。データフィールド抽出部43は、メッセージ解析部41により受信されたMAC付きメインメッセージのデータフィールドからMACとデータを抽出する(S46a)。データフィールド抽出部43は抽出したMACをMAC比較部46に渡し、抽出したデータをMAC生成部45及びデータ受渡部47に渡す。
MAC生成部45は、抽出されたCANID及びデータをもとにMACを生成する(S47)。MAC比較部46はMAC生成部45により生成されたMACと、データフィールド抽出部43により抽出されたMACとを比較する(S48)。両者のMACが一致した場合(S49のY)、MAC比較部46はMACの検証が成功したと判定し、データ受渡部47に検証が成功した旨を通知する。データ受渡部47はデータフィールド抽出部43から渡されたデータをアプリケーション処理部10に渡す(S410)。アプリケーション処理部10は取得したデータに応じて処理対象を処理する。
ステップS49にて、両者のMACが一致しない場合(S49のN)、MAC比較部46はMACの検証が失敗したと判定し、データ受渡部47に検証が失敗した旨を通知する。データ受渡部47はデータフィールド抽出部43から渡されたデータをアプリケーション処理部10に渡さない。
ステップS398にて、MACが含まれない場合(S398のN)、メッセージ解析部41は、受信されたメッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(S399)。縮退モードに移行中でなく通常モードの場合(S399のN)、データフィールド抽出部43はメッセージ解析部41により受信されたメッセージのデータフィールドに格納されたデータを抽出してデータ受渡部47に渡す。データ受渡部47はデータフィールド抽出部43から取得したデータをアプリケーション処理部10に渡す(S410)。アプリケーション処理部10は取得したデータに応じて処理対象を処理する。ステップS399にて、縮退モードに移行中の場合(S399のY)、メッセージ解析部41により受信されたメッセージに含まれるデータは、アプリケーション処理部10に渡されない。当該受信されたメッセージは破棄されるか、図示しないメッセージ一時保持部に一時保持される。
以上に説明したMACをメインメッセージに含めて送信する方式は、送信すべき通常データの量が少ない場合に有効である。MACをメインメッセージに含めて送信する方式はMACを別のメッセージで送信する方式と比較し、基本的にメッセージ数を減らす効果がある。しかしながら通常データの量が多い場合、64ビットのデータフィールドに通常データとMACを併存させるのが難しくなる。その場合、両者の少なくとも一方を複数に分割する必要があり、メッセージの数が増える。またMACを別メッセージで送信する方式のほうが通常、メッセージ処理部30の処理を単純化できる。したがって必ずしも、MACをメインメッセージに含めて送信する方式が、MACを別のメッセージで送信する方式より有利というわけではない。したがって通常データの量などが考慮されたうえで、両者が使い分けられて設定されるのが好ましい。
次に、正規の送信側のECU100による不正メッセージの検出後、不正メッセージに含まれるIDにより特定される処理対象の機能について、フェイルセーフ制御に移行する方式を説明する。この方式では、不正メッセージを検出した正規の送信側のECU100が不正通知メッセージを送信する。受信側のECU100は不正通知メッセージを受信すると予め定められた縮退モードへと移行し、フェイルセーフ制御を行う。
上述のように異常検出後に制御を続ける方式における縮退モードは、メインメッセージに含まれる特定の機能に関するデータを、MACの検証に成功したことを条件として、当該機能の処理に使用するモードを意味した。
これに対して異常検出後にフェイルセーフ制御に移行する方式における縮退モードは、不正通知メッセージによって通知されたCANIDのメインメッセージに含まれる特定の機能に関するデータの値を信用せず、予め規定されたフェイルセーフ制御を行うモードを意味する。フェイルセーフ制御とは、特定の処理対象の特定の機能を当該処理対象を安全に処理するために、予め安全性を考慮して規定されたデフォルト値に応じて行われる制御である。
なお重要な処理対象の重要な機能に関連するメッセージに不正が発生した場合については、当該機能に関してのみフェイルセーフ制御に移行させるのではなく、当該処理対象全体または車両全体をフェイルセーフ制御に移行させてもよい。例えば車両が安全に停止できるよう車両内の全ての処理対象に関する制御値を予め安全性を考慮して規定されたデフォルト値に設定してもよい。
図17は、異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部30のなりすまし検出および不正通知メッセージ送信に必要な機能を示すブロック図である。図17では受信に関する機能は省略して描いている。図17のメッセージ処理部30はメッセージ解析部31、CANID抽出部32、なりすまし検出部34、MAC生成部35、不正通知メッセージ生成部36a、データフィールド抽出部37及びカウンタ値記憶部39を有する。
図18は、不正通知メッセージのフォーマット例を示す図である。不正通知メッセージのフォーマットは、図1のCANメッセージのフォーマットと同じフォーマットである。図18のCANヘッダは、図1のSOFからDLCまでに相当する。図18のデータフィールドF2には異常が発生したCANID、再送攻撃を防ぐためのカウンタ値、及びMACが格納される。当該MACは、当該CANID及び当該カウンタ値を対象として生成されたMACである。
当該CANIDは、なりすまし検出部34により検出される不正メッセージに含まれるCANIDである。当該カウンタ値には、各ECU100において各CANIDのメッセージが送信された回数を用いることができる。カウンタ値記憶部39は各CANIDのメッセージの送信回数をカウンタ値として記憶している。即ち、あるCANIDのメッセージが送信される度に当該CANIDのカウンタ値がインクリメントされる。上記のデータフィールドF2に格納されるカウンタ値には、異常通知メッセージの送信回数が使用される。
なお不正通知メッセージのデータフィールドF2に格納されるデータのフォーマットは、図18の例に限るものではない。例えばカウンタ値を含まないフォーマットも可能である。この場合、図17のカウンタ値記憶部39は不要となる。またカウンタ値の代わりに乱数を用いてもよい。なお不正通知メッセージのデータフィールドF2には、異常が発生したCANIDを特定するための情報が含まれていればよく、当該CANIDそのものを含めないフォーマットも可能である。
図19は、図17のメッセージ処理部30によるなりすまし検出処理および不正通知メッセージ送信処理を示すフローチャートである。送受信部50はCANバス200からメッセージを受信し、メッセージ解析部31に渡す。CANID抽出部32は、メッセージ解析部31により受信されたメッセージのIDフィールドからCANIDを抽出する(図19のS10)。CANID抽出部32は、抽出したCANIDをなりすまし検出部34に渡す。
なりすまし検出部34はCANID抽出部32から渡されたCANIDと、自己のECU100が送信するメッセージに含めるべきCANIDとを比較して、なりすましを検出する(S11)。両者のCANIDが一致する場合、受信されたメッセージがなりすましメッセージであると判定する。なりすましが検出された場合(S12のY)、なりすまし検出部34はなりすまし発生を不正通知メッセージ生成部36aに通知する(S14)。
不正通知メッセージ生成部36aは、なりすましが検出されたCANIDを含むデータを生成し、不正通知メッセージのデータフィールドに格納するとともに(S15)、MAC生成部35に渡す。当該データは例えば、なりすましが検出されたCANIDと、当該CANIDのメッセージの送信回数を示すカウンタ値との組み合わせで生成される。
MAC生成部35は不正通知メッセージ生成部36aにより生成されたデータをもとにMACを生成する(S16)。MAC生成部35は生成したMACを不正通知メッセージ生成部36aに渡す。不正通知メッセージ生成部36aはMAC生成部35により生成されたMACを、不正通知メッセージのデータフィールドに追加で格納する(S17)。不正通知メッセージ生成部36aは生成した不正通知メッセージを送受信部50に渡し、送受信部50は当該不正通知メッセージをCANバス200へブロードキャスト送信する(S18)。
図20は、異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部30の不正通知メッセージ受信に必要な機能を示すブロック図である。図20ではなりすまし検出およびメッセージ送信に関する機能は省略して描いている。図20のメッセージ処理部30は、図15のメッセージ処理部30にカウンタ値記憶部49が追加された構成である。カウンタ値記憶部49は各CANIDのメッセージの受信回数をカウンタ値として記憶している。即ち、あるCANIDのメッセージが受信され、MACの検証に成功する度に当該CANIDのカウンタ値がインクリメントされる。
図21は、異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部30による不正通知メッセージ受信処理を示すフローチャートである。送受信部50はCANバス200から不正通知メッセージを受信し、メッセージ解析部41に渡す。データフィールド抽出部43はメッセージ解析部41により受信された不正通知メッセージのデータフィールドを抽出する(図20のS70)。データフィールド抽出部43は、抽出したデータフィールドに含まれるデータとMACを分離する(S71)。データフィールド抽出部43は、抽出および分離したデータをMAC生成部45に渡し、抽出および分離したMACをMAC比較部46に渡す。
MAC生成部45は、分離されたデータに含まれる異常が発生したCANIDと、カウンタ値記憶部49から取得される当該CANIDのカウンタ値をもとにMACを生成する(S72)。MAC生成部45は生成したMACをMAC比較部46に渡す。
なお当該カウンタ値として、受信された不正通知メッセージのデータフィールドに含まれているカウンタ値をそのまま使用してもよい。この場合、例えば受信されたカウンタ値がカウンタ値記憶部49から取得される当該CANIDのカウンタ値より大きく、且つMACの検証に成功した場合に、カウンタ値記憶部49に記憶されるカウンタ値を、受信されたカウンタ値の値に更新することで、送信側のECUと受信側のECUにおけるカウンタ値のずれを防ぐことができる。
さらに、単に受信されたカウンタ値とカウンタ値記憶部49から取得される当該CANIDのカウンタ値の大小を比較するのみではなく、次に示す内容でもセキュリティ強度を高めることができる。
すなわち、受信されたカウンタ値がカウンタ値記憶部49から取得される当該CANIDのカウンタ値より大きく、カウンタ値記憶部49から取得される当該CANIDのカウンタ値に、任意の値を足したものより小さい範囲に入っているカウンタ値のみを更新の対象にするなどである。
MAC比較部46はMAC生成部45により生成されたMACと、データフィールド抽出部43により抽出および分離されたMACとを比較する(S73)。両者のMACが一致した場合(S74のY)、モード切替部44は通常モードから縮退モード(フェイルセーフ制御)に移行する(S75)。両者のMACが一致しない場合(S74のN)、通常モードに維持される。
図22は、異常検出後にフェイルセーフ制御に移行する方式にて、メッセージ処理部30によるメインメッセージ受信処理を示すフローチャートである。送受信部50はCANバス200からメインメッセージを受信し、メッセージ解析部41に渡す。メッセージ解析部41はメインメッセージを受信すると、当該メッセージに含まれるCANIDにより特定される処理対象の機能が縮退モードに移行中であるか否か判定する(図22のS80)。縮退モードに移行中でなく通常モードの場合(S80のN)、受信されたメインメッセージに含まれるデータはアプリケーション処理部10に渡され、アプリケーション処理部10は渡されたデータに応じて処理対象を処理する(S81)。縮退モードに移行中の場合(S80のY)、メッセージ解析部41は受信したメインメッセージを破棄する(S82)。当該メッセージに含まれるCANIDにより特定される処理対象の機能は、フェイルセーフ制御が維持される。
以上説明したように本実施の形態によれば、なりすましメッセージが検出された際、MACメッセージ、MAC付きメインメッセージ又は不正通知メッセージを送信する。これにより、通常データを含むメッセージを送信する度にMACを生成および送信することなくセキュリティを向上させることができる。恒常的なMACの生成および送信処理が不要であるため、各ECU100でのMACの生成およびMACの検証にかかる処理負荷を軽減できる。またCANバス200の占有率の増加を抑制できる。
また不正通知メッセージを通常のCANメッセージのフォーマットで生成するため、CANコントローラ等のハードウエア資源に変更を加えることなく、且つ規格で規定された処理内容を変更することなく実装できる。したがって導入コストを低く抑えることができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
たとえば変形例の1つとして、以下のような例がある。すなわち、上述の実施の形態では、受信側のECU100が異常検出後の不正通知メッセージを受信した際に「フェイルセーフ制御へ移行する方式」について詳細を説明したが、本変形例は、受信側のECU100が不正通知メッセージを受信した際に「制御を続ける方式」へ移行する処理フローを採用する例である。
この場合、メッセージ処理部30のなりすまし検出および不正通知メッセージ送信に必要な機能ブロック、不正通知メッセージのフォーマット例、処理フローは、上記実施の形態の説明で用いた図17から図19に示される構成や内容と同じ構成、内容にて実現される。また、不正通知メッセージ受信に必要な機能の構成および処理フローも図20および図21に示すものと同様である。
ただし、受信側のECU100における処理は、図21に示すステップS70からステップS73までは同じ処理を行い、MAC比較部46がMAC生成部45により生成されたMACとデータフィールド抽出部43により抽出および分離されたMACとを比較し(S73)、両者のMACが一致した場合、MACの検証が成功したと判定し、「制御を続ける方式」における縮退モードに移行する。
不正通知メッセージ受信後に「制御を続ける方式」に移行する場合、異常が検出された後に、送信側のECU100からはメインメッセージとMACメッセージとを分けて送信する場合と、MAC付きメインメッセージを送信する場合がある。メインメッセージとMACメッセージとを分けて送信する場合、メッセージ処理部30のメッセージ送信に必要な機能の構成および処理フローは図4および図6に示すものと同様である。MAC付きメインメッセージを送信する場合、メッセージ処理部30のメッセージ送信に必要な機能の構成および処理フローは図13および図14に示すものと同様である。
また、受信側ECU100において、メインメッセージを先に受信し、MACメッセージを後に受信する場合と、MACメッセージを先に受信し、メインメッセージを後に受信する場合と、MAC付きメインメッセージを受信する場合がある。
メインメッセージを先に受信し、MACメッセージを後に受信する場合、メッセージ処理部30のメッセージ受信に必要な機能の構成および処理フローは、図7から図9に示すものと同様である。
MACメッセージを先に受信し、メインメッセージを後に受信する場合、メッセージ処理部30のメッセージ受信に必要な機能の構成および処理フローは、図10から図12に示すものと同様である。
MAC付きメインメッセージを受信する場合、メッセージ処理部30のメッセージ受信に必要な機能の構成および処理フローは、図15から図16に示すものと同様である。
この変形例を採用しても、上記実施の形態にて説明したものと同様にセキュリティを向上させることができる。
なお、任意のECU100(受信側のECU100)において、それぞれ異なるCANIDを含むメッセージを複数受信し、複数の当該メッセージに対して異常が検出された後に「制御を続ける方式」に移行した場合、移行後さらに「フェイルセーフ制御へ移行する方式」に移行してもよい。
また、上述の実施の形態においては、なりすましが検出された後にMACが送信される内容を例示して説明したが、次のような場合に受信側のECU100が、フェイルセーフ制御に移行する構成としてもよい。
すなわち、送信側のECU100と受信側のECU100との間でメッセージにMACが付与されるタイミングを共有させておくことを前提に、送信側のECU100から定期的にMACを送信し、受信側のECU100において、本来MACを受信すべきタイミングでMACの検証に失敗した場合である。
もしくは、送信側のECU100と受信側のECU100との間でメッセージにMACが付与されるタイミングを共有させておくことを前提に、送信側のECU100から定期的にMACを送信し、受信側のECU100において、本来MACを受信すべきタイミングで送信側のECU100からMACが送信されなかった場合である。
これらの構成により、CANシステム500の動作中に正規のECU100に対する改ざんや不正な取り外しなどによる異常状態の検出や安全性の確保が可能となる。
あるいは、CANシステム500が起動し通信が開始される際に、初めて送信するCANIDのメッセージに対してMACを付与して送信する構成としてもよい。この構成によれば、システムの起動時における正規のECU100に対する改ざんや不正な取り外しなどに起因する異常状態の検出や安全性の確保が可能となる。
上述の実施の形態では、あらかじめ設定された規則として、送信側のECU100が本来送信するCANIDを当該ECU100自身は受信しないという事象を規定し、この規則に反した事象(この場合、本来送信するCANIDを受信すること)の発生を異常が発生した(あるいは不正が検出された)こととして説明した。
このような、あらかじめ設定(あるいは規定)された規則を通信規則と称すると、当該通信規則にはその他にもいくつかの種類が考えられ、たとえば以下のものが適用可能である。
通信規則の一例としては、送信側のECU100において、CANバス200に任意のCANIDのメッセージが送信される周期を通信規則として保持する例がある。本例では、当該CANIDのメッセージが送信される周期があらかじめ通信規則として設定された周期と不一致であった場合に、これを不正なメッセージとして検出することが可能である。
通信規則の一例としては、送信側のECU100において、CANバス200に任意のCANIDのメッセージが送信される最大頻度を通信規則として保持する例がある。本例では、当該CANIDのメッセージが送信される頻度があらかじめ通信規則として設定された最大頻度と不一致であった場合に、これを不正なメッセージとして検出することが可能である。
また、通信規則の別の例としては、送信側のECU100において、あるCANIDのメッセージのフォーマットを通信規則として保持する例がある。フォーマットとしては、メッセージのデータサイズなどが挙げられる。本例では、CANバス200に送信された当該CANIDのメッセージのデータサイズが、あらかじめ通信規則として設定されたデータサイズと不一致であった場合に、これを不正として検出することが可能である。
また、通信規則の別の例としては、送信側のECU100において、あるCANIDのメッセージに含まれるデータの値の範囲や変化量などを通信規則として保持する例がある。本例では、当該CANIDのメッセージにCANバス200に送信された当該CANIDのメッセージに含まれるデータの値が、あらかじめ通信規則として規定されている値と不一致であった場合に、これを不正として検出することが可能である。
上述の実施の形態では単一のCANバス200で構成されるCANシステム500を説明した。以下、複数のCANシステムをゲートウェイ装置を介して接続した統合システムに拡張する例を説明する。
複数のCANシステムにゲートウェイ装置が介在する状態において、ゲートウェイ装置がメッセージの送信者になる場合がある。
これは、複数のCANシステムのうち任意の一つのCANシステムにおけるECUからゲートウェイ装置を介して該複数のCANシステム内の他のCANシステムにおけるECUへメッセージを送信する場合である。
なぜなら、ゲートウェイ装置が一度このメッセージを受信してから該他のCANシステムへメッセージを送信し直す(転送する)ためであり、他のCANシステムにおいてはゲートウェイ装置がメッセージの送信者となる。
そのため、上述した単一のCANバス200で構成されるCANシステム500のように「自らが送信すべきIDのメッセージが他のECUに送信されていないか監視することで、不正なメッセージ送信を検出」することができなくなる。そこで、ゲートウェイ装置を介して複数のCANシステムを接続した統合システムでは、ゲートウェイ装置に記憶されているホワイトリストを利用することによって対処させることができる。以下にその詳細を説明する。
図23は、2つのCANシステムがゲートウェイ装置300を介して接続された統合システム500aの構成例を示す図である。第1CANバス200aにはECU1(100a)、ECU2(100b)及びECU3(100c)が接続されている。第2CANバス200bにはECU4(100d )、ECU5(100e)及びECU6(100f)が接続されている。第1CANバス200aと第2CANバス200bの間にゲートウェイ装置300が接続される。
ゲートウェイ装置300は、例えば通信トラフィックの増大を防止するなどのために第1CANバス200aと第2CANバス200bとの間に配置される。ゲートウェイ装置300にはホワイトリスト310が保持されている。このホワイトリストには、ゲートウェイ装置300を介して異なるCANシステムへ転送されることがあらかじめ許可されるメッセージと、当該メッセージの転送方向(「第1CANバス200aから第2CANバス200bへ」または「第2CANバス200bから第1CANバス200aへ」などメッセージの送信方向)と、メッセージのCANIDとが紐づけられて保持(記憶)されている。
図24は、図23のゲートウェイ装置300が保持するホワイトリスト310の一例を示す。図24のホワイトリスト310には、第1CANバス200aから第2CANバス200bへの転送を許可するメッセージのCANIDが登録されている。CANID=0x03及び0x04のメッセージはECU1(100a)で生成されるメッセージである。CANID=0x11及び0x12のメッセージはECU2(100b)で生成されるメッセージである。CANID=0x21のメッセージはECU3(100c)で生成されるメッセージである。また、図示する例では、転送方向は全て第1CANバス200aから第2CANバス200bへ向かう方向である(但し、上述のように、各メッセージに対して個別に紐づけられていても良い)。
ゲートウェイ装置300は、ホワイトリスト310に登録されたCANIDのメッセージを第1CANバス200aから受信すると第2CANバス200bに転送する。具体的にはゲートウェイ装置300は、第1CANバス200aに送信された当該CANIDのメッセージを一度受信し、第2CANバス200bに送信し直す。したがって第2CANバス200bにおいてはゲートウェイ装置300が当該メッセージの送信者となる。
以下、第2CANバス200bに接続された不正なECU6(100f) がECU1(100a)になりすまして、CANID=0x03のメッセージを送信するケースを考える。このケースは、正常状態においては、ECU1(100a)からゲートウェイ装置300を介してECU4(100d)およびECU5(100e)へメッセージを送信するのが正しいケースである。しかしながら、ECU6(100f)からECU4(100d)およびECU5(100e)へのメッセージ送信は、単一のCANバスである第2CANバス200bにて接続されるシステム内での処理であるため、ECU6(100f)からゲートウェイ装置300を介してECU1(100a)へ送信されることが無い。そこで、ゲートウェイ装置300がホワイトリストを利用して不正なECUのなりすましを検出する。以下になりすましの検出処理および検出後の対応処理について、詳細説明する。
第1の構成例は、ゲートウェイ装置300がなりすましを検出した後、ゲートウェイ装置300が異常対応を行うものである。即ちゲートウェイ装置300が、ECU100のメッセージ処理部30における、なりすまし検出機能およびメッセージ送信機能を搭載する例である。
図25は、統合システム500a内の異なるCANシステム間におけるなりすましを検出する第1の構成例を説明するためのタイミングチャートである。第2CANバス200bに接続された不正なECUがなりすましメッセージを送信すると、ゲートウェイ装置300が当該なりすましメッセージを受信し、異常を検出する(P11)。ゲートウェイ装置300は異常を検出すると異常対応処理を実行する(P12)。例えばホワイトリスト310に登録されているCANIDと同一のCANIDのメッセージを、第2CANバス200bから受信した場合、異常と判断できる。ゲートウェイ装置300は異常対応処理として上述の不正通知メッセージを第2CANバス200bに送信する。
なお異常対応処理として正当なデータを含むメインメッセージと、当該メインメッセージに対応するMACメッセージを送信する処理も考えられる。ただしこの方法では、ゲートウェイ装置300がECU1(100a)、ECU2(100b)及びECU3(100c)から各機能に関する正当なデータを収集する必要がある。したがって異常対応処理としては上述の不正通知メッセージを送信する処理のほうが簡便である。第1の構成例では、ゲートウェイ装置300がなりすましを検出して異常対応を行うことから即時応答性が高い。
第2の構成例は、ゲートウェイ装置300がなりすましメッセージを正規の送信ECUであるECU1(100a)が接続された第1CANバス200aに転送し、当該正規の送信ECUが異常対応を行うものである。第2の構成例は、ゲートウェイ装置300が保持するホワイトリスト310に登録されている全てのCANIDのメッセージを双方向に転送するように設定することにより実現できる。
図26は、統合システム500a内でなりすましを検出するための第2の構成例を採用する場合におけるホワイトリスト310の一例を示す。このホワイトリスト310に登録されているCANIDのメッセージは、第1CANバス200aと第2CANバス200b間で双方向に転送される。ただし通常は、第2CANバス200bに接続されたECUから当該CANIDのメッセージが送信されることはないため、第2CANバス200bから第1CANバス200aへの転送処理は発生しない。第2CANバス200bに接続されたECUから不正ななりすましメッセージが送信されたときのみ、第2CANバス200bから第1CANバス200aへの転送処理が発生する。
図27は、統合システム500a内の異なるCANシステム間におけるなりすましを検出する第2の構成例を説明するためのタイミングチャートである。第2CANバス200bに接続された不正なECUがなりすましメッセージを送信すると、ゲートウェイ装置300は当該なりすましメッセージを受信し、第1CANバス200aに転送する(P21)。正規の送信ECU であるECU1(100a)は当該なりすましメッセージを検出することにより異常を検出して(P22)、異常対応処理を実行する(P23)。ECU1(100a)は、正当なデータを含むメッセージなどの異常対応メッセージを送信し、ゲートウェイ装置300は当該異常対応メッセージを受信し、第2CANバス200bに転送する(P24)。第2の構成例では、ホワイトリスト310を改良するだけで済むためゲートウェイ装置300の機能追加を最低限に抑えることができる。
第3の構成例は、ゲートウェイ装置300がなりすましを検出し、正規の送信ECUであるECU1(100a)に通知し、当該正規の送信ECUが異常対応を行うものである。ゲートウェイ装置300はECU100のメッセージ処理部30における、なりすまし検出機能を搭載する。またゲートウェイ装置300は図23のホワイトリスト310を保持することを前提とする。
図28は、統合システム500a内の異なるCANシステム間におけるなりすましを検出する第3の構成例を説明するためのタイミングチャートである。第2CANバス200bに接続された不正なECUがなりすましメッセージを送信すると、ゲートウェイ装置300は当該メッセージを受信し、異常を検出する(P31)。ゲートウェイ装置300は異常を検出すると、なりすまし検出通知を正規の送信ECUであるECU1(100a)に送信する。このなりすまし検出通知は、ゲートウェイ装置300で新たに生成されるメッセージである。当該メッセージは、CANメッセージのフォーマットに準拠したメッセージである。
ECU1(100a)は当該なりすまし検出通知を受信すると異常対応処理を実行する(P32)。ECU1(100a)は、正当なデータを含むメッセージなどの異常対応メッセージを送信し、ゲートウェイ装置300は当該異常対応メッセージを受信し、第2CANバス200bに転送する(P33)。第3の構成例では、ホワイトリスト310を書き換えずに、正規の送信ECUに異常対応処理を委ねることができる。
本発明の一態様の概要は、次の通りである。本発明のある態様は、送信装置である。この装置は、検出部と、生成部と、送信部とを有する。検出部は、他の送信装置によりネットワークへブロードキャスト送信されたメッセージの通信規則が、本送信装置が保持する当該メッセージの通信規則と一致するか否かを検出する。生成部は、異常を検出したことを通知するための異常通知メッセージを生成する。送信部は、生成部が生成したメッセージをネットワークへブロードキャスト送信する。検出部が、他の送信装置によりネットワークへブロードキャスト送信されたメッセージの通信規則と本送信装置がネットワークへブロードキャスト送信するメッセージの通信規則との一致を検出した場合、生成部は、異常通知メッセージを生成する。そして、送信部は、この異常通知メッセージをネットワークへブロードキャスト送信する。
この態様によると、自己が保持するメッセージの通信規則と一致する通信規則のメッセージを受信すると不正通知メッセージを送信することにより、不正発生をネットワークに接続された他の装置に通知して他の装置のセキュリティを向上させることができる。またこの不正なメッセージの検出処理と不正通知メッセージの送信処理は軽負荷な処理であり、送信装置の負荷の増大を抑えることができる。
本発明の別の態様もまた、送信装置である。この装置は、検出部と、生成部と、送信部とを有する。検出部は、他の送信装置によりネットワークへブロードキャスト送信されたメッセージに含まれる識別情報が、本送信装置がネットワークへブロードキャスト送信するメッセージに含めるべき識別情報と一致するか否かを検出する。生成部は、異常を検出したことを通知するための異常通知メッセージを生成する。送信部は、生成部が生成したメッセージをネットワークへブロードキャスト送信する。検出部が、他の送信装置によりネットワークへブロードキャスト送信されたメッセージに含まれる識別情報と本送信装置がネットワークへブロードキャスト送信するメッセージに含めるべき識別情報との一致を検出した場合、生成部は、異常通知メッセージを生成する。そして、送信部は、この異常通知メッセージをネットワークへブロードキャスト送信する。「識別情報」はCANIDであってもよい。「検出部」は図17のなりすまし検出部34であってもよい。「生成部」は図17の不正通知メッセージ生成部36aであってもよく、図13のメインメッセージ生成部でもよく、図4のMACメッセージ生成部38であってもよい。「送信部」は図3の送受信部50であってもよい。
この態様によると、自己が送信するメッセージに含めるべき識別情報を含むメッセージを受信すると不正通知メッセージを送信することにより、不正発生をネットワークに接続された他の装置に通知して他の装置のセキュリティを向上させることができる。またこの不正なメッセージの検出処理と不正通知メッセージの送信処理は軽負荷な処理であり、送信装置の負荷の増大を抑えることができる。
本発明の別の態様もまた、送信装置である。この装置は、第1生成部と、第2生成部と、送信部とを有する。第1生成部は、他の送信装置によりネットワークへブロードキャスト送信されたメッセージに含まれる識別情報が、本送信装置がネットワークへブロードキャスト送信するメッセージに含めるべき識別情報と一致する場合、当該識別情報と、当該識別情報で特定される処理対象の通知事項に関する正当なデータを含むメッセージを生成する。第2生成部は、正当なデータを少なくとも対象としたメッセージ認証コードを生成する。送信部は、第1生成部において生成したメッセージと、第2生成部において生成したメッセージ認証コードをネットワークへブロードキャスト送信する。「識別情報」はCANIDであってもよい。「第1生成部」は図4のメインメッセージ生成部36であってもよい。「第2生成部」は図4 のMAC生成部35であってもよい。「送信部」は図3の送受信部50であってもよい。
この態様によると、自己が送信するメッセージに含めるべき識別情報を含むメッセージを受信すると、正当なデータを含むメッセージとMACを送信することにより、不正発生をネットワークに接続された他の装置に通知して他の装置のセキュリティを向上させることができる。またそれ以外の場合は、MACを生成および送信しないことにより、送信装置の負荷の増大を抑制できる。
本発明の別の態様もまた、送信装置である。この装置は、メッセージ生成部と、送信部とを有する。メッセージ生成部は、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを生成する。送信部は、メッセージ生成部において生成したメッセージをネットワークへブロードキャスト送信する。メッセージ生成部は、他の送信装置によりネットワークへブロードキャスト送信されたメッセージに含まれる識別情報が、本送信装置がネットワークへブロードキャスト送信するメッセージに含めるべき識別情報と一致する場合、当該識別情報を含むメッセージが不正なメッセージであることを通知するための不正通知メッセージを、通常のメッセージと同じフォーマットで生成する。そして、送信部は、この不正通知メッセージをネットワークへブロードキャスト送信する。「識別情報」はCANIDであってもよい。「メッセージ生成部」は図17 の不正通知メッセージ生成部36aであってもよい。「送信部」は図3の送受信部50であってもよい。
この態様によると、自己が送信するメッセージに含めるべき識別情報を含むメッセージを受信すると不正通知メッセージを送信することにより、不正発生をネットワークに接続された他の装置に通知して他の装置のセキュリティを向上させることができる。またこの不正なメッセージの検出処理と不正通知メッセージの送信処理は軽負荷な処理であり、送信装置の負荷の増大を抑えることができる。
また、送信装置は識別情報を少なくとも対象としたメッセージ認証コードを生成するメッセージ認証コード生成部をさらに有してもよい。メッセージ生成部は、メッセージ認証コード生成部において生成したメッセージ認証コードを不正通知メッセージに含めてもよい。「メッセージ認証コード生成部」は図17のMAC生成部35であってもよい。
この態様によると、不正通知メッセージにMACを含めることにより不正通知メッセージの信頼性を向上させることができる。
本発明のさらに別の態様は、受信装置である。この装置は、受信部と、処理部とを有する。受信部は、ネットワークから、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを受信する。処理部は、受信部において受信したメッセージを処理する。受信部が、ネットワークからメッセージを認証するためのメッセージ認証コードを受信すると、処理部は、メッセージに含まれるデータを、メッセージ認証コードを用いた検証なしに有効とするモードから、メッセージ認証コードを用いた検証に成功したことを条件として有効とするモードに切り替える。「識別情報」はCANIDであってもよい。「受信部」は図3の送受信部50であってもよい。「処理部」は図7のメッセージ処理部30であってもよい。
この態様によると、MACの受信に起因してMACを用いた検証なしに有効とするモードから、MACを用いた検証に成功したことを条件として有効とするモードに切り替えることにより、受信装置の負荷の増大を抑制しつつセキュリティを向上させることができる。
本発明のさらに別の態様もまた、受信装置である。この装置は、受信部と、処理部とを有する。受信部は、ネットワークから、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを受信する。処理部は、受信部において受信したメッセージを処理する。受信部が、ネットワークから識別情報を含むメッセージが不正なメッセージであることを通知するためのメッセージであり、通常のメッセージと同じフォーマットで生成された不正通知メッセージを受信すると、処理部は、識別情報を含むメッセージに含まれるデータを無効とするモードに切り替える。「識別情報」はCANIDであってもよい。「受信部」は図3の送受信部50であってもよい。「処理部」は図20のメッセージ処理部30であってもよい。
この態様によると、不正通知メッセージの受信に起因して、不正通知メッセージで通知された識別情報を含むメッセージに含まれるデータを無効とするモードに切り替えることにより、受信装置の負荷の増大を抑制しつつセキュリティを向上させることができる。
なお処理部は、不正通知メッセージに、識別情報を少なくとも対象としたメッセージ認証コードが含まれている場合、当該メッセージ認証コードを用いた検証に成功したことを条件として、識別情報を含むメッセージに含まれるデータを無効とするモードに切り替えてもよい。
この態様によると、MACの検証に成功したことを条件として、不正通知メッセージで通知された識別情報を含むメッセージに含まれるデータを無効とするモードに切り替えることにより、モード切替処理の信頼性を向上させることができる。
本発明のさらに別の態様もまた、受信装置である。この装置は、受信部と、処理部とを有する。受信部は、ネットワークから、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを受信する。処理部は、受信部において受信したメッセージを処理する。受信部が、ネットワークから識別情報を含むメッセージが不正なメッセージであることを通知するためのメッセージであり、通常のメッセージと同じフォーマットで生成された不正通知メッセージを受信すると、処理部は、受信部が受信した不正通知メッセージに、識別情報を少なくとも対象としたメッセージ認証コードが含まれている場合、メッセージ認証コードを用いた検証に成功したことを条件として、識別情報を含むメッセージに含まれるデータを、メッセージ認証コードの検証なしに有効とするモードから、メッセージ認証をコードを用いた検証に成功したことを条件として有効とするモードに切り替える。「識別情報」はCANIDであってもよい。「受信部」は図3の送受信部50であってもよい。「処理部」は図20のメッセージ処理部30であってもよい。
この態様によると、不正通知メッセージを受信した際、MACの検証に成功したことを条件として、MACを含むメッセージに含まれるデータを、MACの検証なしに有効とするモードから、MACの検証に成功したことを条件として有効とするモードに切り替えることにより、受信装置の負荷の増大を抑制しつつセキュリティを向上させることができる。
本発明のさらに別の態様は、送信方法である。この方法は、第1ステップと、第2ステップと、第3ステップとを有する。第1ステップでは、他の送信装置によりネットワークへブロードキャスト送信されたメッセージに含まれる識別情報が、本送信装置がネットワークへブロードキャスト送信するメッセージに含めるべき識別情報と一致する場合、当該識別情報と、当該識別情報で特定される処理対象の通知事項に関する正当なデータを含むメッセージを生成する。第2ステップでは、正当なデータを少なくとも対象としたメッセージ認証コードを生成する。第3ステップでは、第1ステップにおいて生成したメッセージと、第2ステップにおいて生成したメッセージ認証コードとをネットワークへブロードキャスト送信する。
この態様によると、自己が送信するメッセージに含めるべき識別情報を含むメッセージを受信すると、正当なデータを含むメッセージとMACを送信することにより、不正発生をネットワークに接続された他の装置に通知して他の装置のセキュリティを向上させることができる。またそれ以外の場合は、MACを生成および送信しないことにより、送信装置の負荷の増大を抑制できる。
本発明のさらに別の態様もまた、送信方法である。この方法は、第1ステップと、第2ステップとを有する。第1ステップでは、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを生成する。第2ステップでは、第1ステップにおいて生成したメッセージをネットワークへブロードキャスト送信する。第1ステップでは、他の送信装置によりネットワークへブロードキャスト送信されたメッセージに含まれる識別情報が、本送信装置がネットワークへブロードキャスト送信するメッセージに含めるべき識別情報と一致する場合、当該識別情報を含むメッセージが不正なメッセージであることを通知するための不正通知メッセージを、通常のメッセージと同じフォーマットで生成する。第2ステップでは、不正通知メッセージをネットワークへブロードキャスト送信する。
この態様によると、自己が送信するメッセージに含めるべき識別情報を含むメッセージを受信すると不正通知メッセージを送信することにより、不正発生をネットワークに接続された他の装置に通知して他の装置のセキュリティを向上させることができる。またこの不正なメッセージの検出処理と不正通知メッセージの送信処理は軽負荷な処理であり、送信装置の負荷の増大を抑えることができる。
本発明のさらに別の態様は、受信方法である。この方法は、第1ステップと、第2ステップとを有する。第1ステップでは、ネットワークから、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを受信する。第2ステップでは、第1ステップにおいて受信したメッセージを処理する。第1ステップで、ネットワークからメッセージに含まれる識別情報を少なくとも対象としたメッセージ認証コードを受信すると、第2ステップは、メッセージに含まれるデータを、メッセージ認証コードを用いた検証なしに有効とするモードから、メッセージ認証コードを用いた検証に成功したことを条件として有効とするモードに切り替える。
この態様によると、MACの受信に起因してMACを用いた検証なしに有効とするモードから、MACを用いた検証に成功したことを条件として有効とするモードに切り替えることにより、受信装置の負荷の増大を抑制しつつセキュリティを向上させることができる。
本発明のさらに別の態様もまた、受信方法である。この方法は、第1ステップと、第2ステップとを有する。第1ステップでは、ネットワークから、特定の処理対象の特定の通知事項に関連づけられた識別情報および当該通知事項に関するデータを含むメッセージを受信する。第2ステップでは、第1ステップにおいて受信したメッセージを処理する。第1ステップで、ネットワークから識別情報を含むメッセージが不正なメッセージであることを通知するためのメッセージであり、通常のメッセージと同じフォーマットで生成された不正通知メッセージを受信すると、第2ステップでは、識別情報を含むメッセージに含まれるデータを無効とするモードに切り替える。
この態様によると、不正通知メッセージの受信に起因して、不正通知メッセージで通知された識別情報を含むメッセージに含まれるデータを無効とするモードに切り替えることにより、受信装置の負荷の増大を抑制しつつセキュリティを向上させることができる。
本発明は、CANに利用可能である。
10 アプリケーション処理部
30 メッセージ処理部
31 メッセージ解析部
32 CANID抽出部
34 なりすまし検出部
35 MAC生成部
35a 共通鍵
36 メインメッセージ生成部
36a 不正通知メッセージ生成部
37 データフィールド抽出部
38 MACメッセージ生成部
39 カウンタ値記憶部
41 メッセージ解析部
42 CANID抽出部
43 データフィールド抽出部
44 モード切替部
45 MAC生成部
45a 共通鍵
46 MAC比較部
47 データ受渡部
48 メインメッセージ一時保持部
48a MACメッセージ一時保持部
49 カウンタ値記憶部
50 送受信部
100,100a,100b,100c,100d,100e,100f ECU
200 CANバス
200a 第1CANバス
200b 第2CANバス
300 ゲートウェイ装置
310 ホワイトリスト
500 CANシステム
500a 統合システム

Claims (6)

  1. 車載ネットワークを介して他の電子制御装置との間で処理対象に関するメッセージを通信可能な電子制御装置であって、
    前記他の電子制御装置からの不正なメッセージを検出する検出部と、
    前記検出部によって不正なメッセージが検出された場合、前記不正なメッセージに含まれる識別情報と当該識別情報により特定される前記処理対象の機能に関する正当なデータとを含むメッセージと、前記正当なデータを少なくとも対象としたメッセージ認証コードとを生成する生成部と、
    前記生成部によって生成された前記メッセージと前記メッセージ認証コードとを前記車載ネットワークに送信する送信部と、
    を備える電子制御装置。
  2. 前記送信部は、前記メッセージ認証コードを、前記生成部によって生成された前記メッセージとは異なるメッセージ認証コード用メッセージにて、前記車載ネットワークへ送信する、請求項1に記載の電子制御装置。
  3. 前記生成部は、生成した前記メッセージの一部として前記メッセージ認証コードを含める、請求項1に記載の電子制御装置。
  4. 前記検出部は、メッセージの識別情報、メッセージの送信周期、メッセージの送信の最大頻度、メッセージのフォーマット、および、メッセージに含まれるデータの値の範囲または変化量のうちの少なくともいずれかに基づいて不正なメッセージを検出する、請求項1〜3の少なくともいずれか1項に記載の電子制御装置。
  5. 車載ネットワークを介して他の電子制御装置との間で処理対象に関するメッセージを通信可能な電子制御装置による通信方法であって、
    前記他の電子制御装置からの不正なメッセージを検出する検出ステップと、
    前記検出ステップによって不正なメッセージが検出された場合、前記不正なメッセージに含まれる識別情報と当該識別情報により特定される前記処理対象の機能に関する正当なデータとを含むメッセージと、前記正当なデータを少なくとも対象としたメッセージ認証コードとを生成する生成ステップと、
    前記生成ステップによって生成された前記メッセージと前記メッセージ認証コードとを前記車載ネットワークに送信する送信ステップと、
    を含む通信方法。
  6. 車載ネットワークを介して他の電子制御装置との間で処理対象に関するメッセージを通信可能な電子制御装置による情報処理をコンピュータに実行させるためのプログラムであって、
    前記他の電子制御装置からの不正なメッセージを検出する検出処理と、
    前記検出処理によって不正なメッセージが検出された場合、前記不正なメッセージに含まれる識別情報と当該識別情報により特定される前記処理対象の機能に関する正当なデータとを含むメッセージと、前記正当なデータを少なくとも対象としたメッセージ認証コードとを生成する生成処理と、
    前記生成処理によって生成された前記メッセージと前記メッセージ認証コードとを前記車載ネットワークに送信する送信処理と、
    をコンピュータに実行させるプログラム。
JP2019065338A 2014-05-29 2019-03-29 電子制御装置、通信方法およびプログラム Active JP6685023B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2014110908 2014-05-29
JP2014110908 2014-05-29
JP2014251551 2014-12-12
JP2014251551 2014-12-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016523140A Division JP6569087B2 (ja) 2014-05-29 2015-05-25 受信装置および受信方法

Publications (2)

Publication Number Publication Date
JP2019097218A JP2019097218A (ja) 2019-06-20
JP6685023B2 true JP6685023B2 (ja) 2020-04-22

Family

ID=54698455

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016523140A Expired - Fee Related JP6569087B2 (ja) 2014-05-29 2015-05-25 受信装置および受信方法
JP2019065338A Active JP6685023B2 (ja) 2014-05-29 2019-03-29 電子制御装置、通信方法およびプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016523140A Expired - Fee Related JP6569087B2 (ja) 2014-05-29 2015-05-25 受信装置および受信方法

Country Status (4)

Country Link
US (1) US10165442B2 (ja)
EP (1) EP3151462B1 (ja)
JP (2) JP6569087B2 (ja)
WO (1) WO2015182103A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6260064B2 (ja) * 2016-03-14 2018-01-17 Kddi株式会社 通信ネットワークシステム及び車両
JP6629999B2 (ja) * 2016-04-12 2020-01-15 ガードノックス・サイバー・テクノロジーズ・リミテッドGuardKnox Cyber Technologies Ltd. セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法
JP6814549B2 (ja) * 2016-04-27 2021-01-20 日立オートモティブシステムズ株式会社 演算装置、認証システム、認証方法
JP6280662B2 (ja) * 2016-07-05 2018-02-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正制御抑止方法、不正制御抑止装置及び車載ネットワークシステム
JP6455939B2 (ja) * 2016-09-27 2019-01-23 株式会社デンソーテン 通信方法
JP6724829B2 (ja) * 2017-03-16 2020-07-15 株式会社デンソー 制御装置
JP6527541B2 (ja) * 2017-03-17 2019-06-05 本田技研工業株式会社 送信装置
US10917387B2 (en) * 2017-04-11 2021-02-09 Panasonic Intellectual Property Management Co., Ltd. Information processing device, information processing system, information processing method, and information processing program
US10873600B2 (en) * 2017-04-11 2020-12-22 Panasonic Intellectual Property Management Co., Ltd. Information processing device, information processing system, information processing method, and information processing program
US11606344B2 (en) 2017-05-10 2023-03-14 Osr Enterprises Ag Security enforcement in a system with a multiplicity of end units
JP6628106B2 (ja) * 2017-05-23 2020-01-08 本田技研工業株式会社 通信システム、及び通信制御方法
EP3682267A4 (en) 2017-06-01 2021-07-14 OSR Enterprises AG SYSTEM AND PROCEDURE FOR MERGERING INFORMATION FROM A COLLECTED ENVIRONMENT
JP7045247B2 (ja) * 2017-08-25 2022-03-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 通信保護装置、制御方法、および、プログラム
US10979390B2 (en) 2017-08-25 2021-04-13 Panasonic Intellectual Property Corporation Of America Communication security apparatus, control method, and storage medium storing a program
JP2019080119A (ja) * 2017-10-20 2019-05-23 国立大学法人名古屋大学 車載通信装置、車載通信システム及び車載通信方法
JP7121737B2 (ja) 2018-05-23 2022-08-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置、異常検知方法およびプログラム
JP6555559B1 (ja) * 2018-06-15 2019-08-07 パナソニックIpマネジメント株式会社 電子制御装置、監視方法、プログラム及びゲートウェイ装置
US11552990B2 (en) * 2019-03-07 2023-01-10 Proofpoint, Inc. Message management platform for performing impersonation analysis and detection
US11251989B2 (en) * 2019-03-20 2022-02-15 Nxp B.V. Secure bridging of controller area network buses
GB2583476B (en) * 2019-04-29 2021-05-26 Canis Automotive Labs Ltd CAN security invention
CN112291125B (zh) * 2020-10-16 2022-03-15 江苏徐工工程机械研究院有限公司 一种can总线多节点自动识别方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631193B1 (en) * 1994-11-28 2009-12-08 Yt Acquisition Corporation Tokenless identification system for authorization of electronic transactions and electronic transmissions
US6871284B2 (en) * 2000-01-07 2005-03-22 Securify, Inc. Credential/condition assertion verification optimization
JP2001285962A (ja) * 2000-03-29 2001-10-12 Toshiba Kyaria Kk ホームネットワークシステム
US7308715B2 (en) * 2001-06-13 2007-12-11 Mcafee, Inc. Protocol-parsing state machine and method of using same
JP2004229125A (ja) 2003-01-24 2004-08-12 Sony Corp 送信装置及び受信装置
US20060112271A1 (en) 2004-11-22 2006-05-25 Murata Kikai Kabushiki Kaisha Cipher mail server device
JP4244938B2 (ja) * 2005-01-25 2009-03-25 村田機械株式会社 電子メールサーバ装置
US20080076425A1 (en) * 2006-09-22 2008-03-27 Amit Khetawat Method and apparatus for resource management
JP2009105828A (ja) * 2007-10-25 2009-05-14 Toyota Motor Corp 車両用通信システム及び車両用通信装置
US8627422B2 (en) * 2010-11-06 2014-01-07 Qualcomm Incorporated Authentication in secure user plane location (SUPL) systems
US8925083B2 (en) * 2011-10-25 2014-12-30 GM Global Technology Operations LLC Cyber security in an automotive network
JP5770602B2 (ja) * 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
JP5522160B2 (ja) * 2011-12-21 2014-06-18 トヨタ自動車株式会社 車両ネットワーク監視装置
JP5664799B2 (ja) * 2011-12-22 2015-02-04 トヨタ自動車株式会社 通信システム及び通信方法
WO2013128317A1 (en) * 2012-03-01 2013-09-06 Nds Limited Anti-replay counter measures
WO2013175633A1 (ja) * 2012-05-25 2013-11-28 トヨタ自動車 株式会社 通信装置、通信システム及び通信方法
US8925059B2 (en) * 2012-06-08 2014-12-30 Lockheed Martin Corporation Dynamic trust connection
EP2865210A1 (en) * 2012-06-20 2015-04-29 Nokia Solutions and Networks Oy Device to machine communications
JP5935543B2 (ja) * 2012-06-29 2016-06-15 トヨタ自動車株式会社 通信システム
US9436652B2 (en) * 2013-06-01 2016-09-06 General Electric Company Honeyport active network security
JP6012867B2 (ja) * 2013-06-13 2016-10-25 日立オートモティブシステムズ株式会社 ネットワーク装置およびネットワークシステム
JP2015002614A (ja) 2013-06-14 2015-01-05 アイシン・エィ・ダブリュ株式会社 コイル鋳造装置及びコイル鋳造方法
US9560523B2 (en) * 2013-08-23 2017-01-31 General Electric Company Mobile device authentication
WO2015170451A1 (ja) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット及び不正検知方法

Also Published As

Publication number Publication date
WO2015182103A1 (ja) 2015-12-03
EP3151462A4 (en) 2017-04-12
US20170078884A1 (en) 2017-03-16
JP6569087B2 (ja) 2019-09-04
JPWO2015182103A1 (ja) 2017-04-20
EP3151462A1 (en) 2017-04-05
EP3151462B1 (en) 2018-10-24
US10165442B2 (en) 2018-12-25
JP2019097218A (ja) 2019-06-20

Similar Documents

Publication Publication Date Title
JP6685023B2 (ja) 電子制御装置、通信方法およびプログラム
US11134100B2 (en) Network device and network system
JP5880898B2 (ja) 送信装置
US10243928B2 (en) Detection of stale encryption policy by group members
CN108353015B (zh) 中继装置
JP6846706B2 (ja) 監視装置、監視方法およびコンピュータプログラム
WO2016080422A1 (ja) 通信制御装置及び通信システム
JP2017123639A (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
EP1895738A2 (en) Intelligent network interface controller
US10560286B2 (en) Gateway device and control method for the same
JP7182559B2 (ja) ログ出力方法、ログ出力装置及びプログラム
WO2017057165A1 (ja) 車載通信システム
KR102373922B1 (ko) 차량의 제어 장치에 대한 공격을 검출하기 위한 방법
JP6468133B2 (ja) 車載ネットワークシステム
WO2020137852A1 (ja) 情報処理装置
JP6108251B2 (ja) 受信装置、及び受信方法
JP6447974B2 (ja) 送信方法
JP2019134262A (ja) 電子制御装置
Ramesh et al. Reset-based Recovery Mechanism through Entropy Cutoff to Counter BUS-OFF Attacks
JP2020141414A (ja) Ecu、ネットワーク装置
EP3087714B1 (en) A method and apparatus for detecting that an attacker has sent one or more messages to a receiver node

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200313

R150 Certificate of patent or registration of utility model

Ref document number: 6685023

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150