JP2017038365A - 通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体 - Google Patents

通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体 Download PDF

Info

Publication number
JP2017038365A
JP2017038365A JP2016149956A JP2016149956A JP2017038365A JP 2017038365 A JP2017038365 A JP 2017038365A JP 2016149956 A JP2016149956 A JP 2016149956A JP 2016149956 A JP2016149956 A JP 2016149956A JP 2017038365 A JP2017038365 A JP 2017038365A
Authority
JP
Japan
Prior art keywords
count value
message
node
normal
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016149956A
Other languages
English (en)
Other versions
JP2017038365A5 (ja
JP6555209B2 (ja
Inventor
健司 菅島
Kenji Sugashima
健司 菅島
昭 米谷
Akira Yoneya
昭 米谷
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
Original Assignee
Denso 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 filed Critical Denso Corp
Priority to US15/747,261 priority Critical patent/US10735435B2/en
Priority to DE112016003605.1T priority patent/DE112016003605B4/de
Priority to PCT/JP2016/072877 priority patent/WO2017026361A1/ja
Publication of JP2017038365A publication Critical patent/JP2017038365A/ja
Publication of JP2017038365A5 publication Critical patent/JP2017038365A5/ja
Application granted granted Critical
Publication of JP6555209B2 publication Critical patent/JP6555209B2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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
    • 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

Landscapes

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

Abstract

【課題】各ノードにおけるカウンタの管理負担、およびカウント値の再同期に要する通信トラフィックを軽減する。【解決手段】管理ノード(10k)では、上位カウント値保持部(11k)が上位カウント値を保持し、上位カウント値配信部(143)が、上位更新条件に従って上位カウント値を更新し、更新後の上位カウント値を通常ノードに配信する。通常ノード(10n,10k)では、カウント値保持部(11n,11k)がカウント値を保持し、下位更新部(141:S210〜S220,142:S400〜S470)が、下位更新条件に従ってカウント値保持部が保持する下位カウント値を更新し、上位更新部(142:S310〜S390,S410〜S440)が、管理ノードから配信された上位カウント値により、カウント値保持部が保持する上位カウント値を更新しかつ下位カウント値をリセットする。【選択図】図1

Description

本開示は、通信システムにおいてメッセージを認証する技術に関する。
従来、車載ネットワークでのメッセージ認証において、各ECUでCANプロトコルのメッセージ識別子(以下、CANID)毎にメッセージの送信回数をカウントし、そのカウント値をメッセージ認証コード(以下、MAC)の生成に利用することで、リプレイ攻撃への耐性を持たせる技術が知られている(特許文献1参照)。なお、CANは登録商標である。
特開2013−98719号公報
しかしながら、カウンタは、繰り返し周期が十分に長くなるようにビット数の大きいものが用いられる。このため、CANID毎にカウント値を管理すると、各ECUで管理すべきデータ量が膨大になり、これを格納するためのメモリサイズや不揮発性メモリ等のリソースも増大するという問題があった。
また、従来技術では、ゲートウェイがメッセージを間引く等、何等かの理由でメッセージ抜けが生じると、送信側と受信側とでカウント値にずれが生じ、MACの検証結果が一致しなくなることがある。このような場合に、送信側と受信側とでカウント値を合わせる、いわゆる再同期を行う必要がある。この再同期もCANID毎に行う必要があるため、複数のECU間でカウンタずれが生じると、多数の再同期用のパケットがネットワーク上に流れることになり、通信トラフィックが増大するという問題もあった。
本開示は、各ノードにおけるカウンタの管理負担、およびカウント値の再同期に要する通信トラフィックを軽減することを目的とする。
本開示の一態様による通信システム(1,1a)は、相互に接続された複数のノードを備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージを検証する。ここで、ノードの一つを管理ノード(10k,10g)、メッセージの送受信を行うノードを通常ノード(10n,10k)とし、カウンタのカウント値を2分割した上位側を上位カウント値、下位側を下位カウント値とする。
そして、管理ノードは、上位カウント値保持部(11k)と、上位カウント値更新部(143:S110,S120,S140,S160)と、上位カウント値配信部(143:S110、S130〜S150,S170)とを備える。上位カウント値保持部は、上位カウント値を保持する。上位カウント値更新部は、予め設定された上位更新条件に従って上位カウント値を更新する。上位カウント値配信部は、上位カウント値保持部が保持する上位カウント値を、予め設定された配信条件に従って通常ノードに配信する。
一方、通常ノードは、カウント値保持部(11n,11k)と、下位更新部(141:S210〜S220,142:S400〜S470,S510〜S520,S640〜S660)と、上位更新部(142:S310〜S390,S410〜S440,S610〜S640,S670〜S680)と、下位初期化部(142:S380,S430,S680)とを備える。カウント値保持部は、カウント値を保持する。下位更新部は、予め設定された下位更新条件に従ってカウント値保持部が保持する下位カウント値を更新する。上位更新部は、管理ノードから配信される上位カウント値を用いて、カウント値保持部が保持する上位カウント値を更新する。下位初期化部は、上位更新部によって上位カウント値が更新されると、下位カウント値を初期化する。
このような構成によれば、上位カウント値は、管理ノードが一括して管理し、通常ノードは、管理ノードから配信される上位カウント値を、メッセージの用途や種類等によらず共通に記憶し、下位カウント値のみを、メッセージの用途や種類毎に個別に管理する。このため、通常ノードでは、カウント値を保存するために必要なデータ量を抑制することができ、不揮発性メモリを必ずしも必要としない。また、管理ノードによって上位カウント値が更新される毎に、各通常ノードの下位カウント値がリセットされるため、メッセージの送受信間でのカウント値のずれが生じにくく、仮に、カウント値のずれが生じたとしても、管理ノードが上位カウント値の配信を行うだけでカウント値の再同期を簡単に行うことができる。その結果、再同期に要する通信トラフィックも軽減することができる。
本開示の一態様は、カウンタ同期方法として把握される。このカウンタ同期方法では、管理ノードおよび通常ノードが以下の処理を実行する。即ち、管理ノード(10k,10g)は、上位カウント値を保持し、該上位カウント値を、予め設定された上位更新条件に従って更新し(143:S110,S120,S140,S160)、予め設定された配信条件に従って前記通常ノードに配信する(143:S110、S130〜S150,S170)。通常ノードは、それぞれ、カウント値を保持し、該カウント値を構成する下位カウント値を、予め設定された下位更新条件に従って更新し(141:S210〜S220,142:S400〜S470,S510〜S520,S640〜S660)、管理ノードから配信される上位カウント値を用いて、当該通常ノードが保持する上位カウント値を更新し(142:S310〜S390,S410〜S440,S610〜S640,S670〜S680)、上位カウント値が更新されると、下位カウント値を初期化する(142:S380,S430,S680)。
このカウンタ同期方法に従えば、上述の通信システムにおいて得られる効果と同様の効果を得ることができる。
本開示の一態様は、上述の通信システムを構成する管理ノード(10k,10g)として把握される。
本開示の一態様は、上述の通信システムを構成する通常ノード(10n,10k)として把握される。
なお、上記管理ノードを構成する各部の機能、および上記通常ノードを構成する各部の機能は、プログラムによりコンピュータに実現させることができる。上述のプログラムは、コンピュータに組み込まれるROMやバックアップRAMに記憶され、これらROMやバックアップRAMからコンピュータにロードして用いてもよいし、ネットワークを介してコンピュータにロードして用いてもよい。
また、上述のプログラムは、コンピュータにて読み取り可能なあらゆる形態の記録媒体に記録してユーザに提供することができる。記録媒体としては、例えば、光ディスク、磁気ディスク、USBメモリやメモリカード(登録商標)などの半導体製メモリ等が含まれる。
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
通信システムの全体構成を示すブロック図である。 カウンタの構造を示す説明図であり、(a)は基本的なカウンタ、(b)は管理ECUが管理するカウンタ、(c)は通常ECUが管理するカウンタである。 管理ECUと通常ECUとの間で送受信される初期化メッセージ、周期メッセージ、および通常ECU同士で送受信される通常メッセージの構造を示す説明図である。 メッセージを送信する送信側ECUおよびメッセージを受信する受信側ECUでの処理の概要を示す説明図である。 管理ECUのメッセージ処理部が実行する同期処理のフローチャートである。 通常ECUのメッセージ処理部が実行する送信処理のフローチャートである。 通常ECUのメッセージ処理部が実行する受信処理のフローチャートである。 第2実施形態における送信処理のフローチャートである。 第2実施形態における受信処理の変更部位のフローチャートである。 第3実施形態において通常ECUが管理するカウンタの構造を示す説明図である。 第3実施形態における受信処理のフローチャートである。 第4実施形態における通信システムの全体構成を示すブロック図である。
以下に本発明が適用された実施形態について、図面を用いて説明する。
[1.第1実施形態]
[1.1.全体構成]
通信システム1は、車両に搭載され、図1に示すように、複数のノード10と、各ノード10を相互に接続するバス状の通信路3とを備える。また、通信システム1では、通信路3上で調停負けしたノード10は送信を直ちに停止し、調停勝ちしたノード10のみが送信を継続する、いわゆるCSMA/CA方式のアクセス制御方式が用いられている。具体的には、ISO11898に規定されたCANプロトコルが用いられ、フレームのヘッダ部分に付与される識別子(以下、CANID)を用いて調停が実施される。なお、CANは登録商標である。
ノード10は、電子制御装置(以下、ECU)とも呼ばれる。なお、ECUは、Electronic Control Unitの略である。以下では、ノード10の一つを管理ECU10k、それ以外を通常ECU10nと呼び、両者を特に区別しない場合は、単にECU10と呼ぶ。これは後述する管理ECU10kおよび通常ECU10nの各構成要素についても同様である。
[1.2.管理ECU]
管理ECU10kは、カウント値保持部11k、鍵保持部12k、制御部13k、メッセージ処理部14k、通信コントローラ15kを備える。
通信コントローラ15kは、周知のCANコントローラを備える。通信コントローラ15kは、メッセージ処理部14kから供給される各種メッセージを、CANプロトコルに従った通信フレームに載せて通信路3に送信する。また、CANコントローラは、通信路3から自ECU10kで受信すべきCANIDが付与された通信フレームを受信すると、メッセージを抽出して、メッセージ処理部14kに供給する。なお、通信フレームには、メッセージの種類に応じたメッセージ識別子(即ち、CANID)が付与される。
カウント値保持部11kは、読み書き自在な不揮発性メモリを備える。カウント値保持部11kには、管理用カウンタのカウント値を保持するエリアと、通信用カウンタのカウント値を保持するエリアとが用意されている。
なお、図2(a)に示すように、基本となるカウンタは、後述するメッセージ認証コード(即ち、MAC)の生成に使用する所定ビットのものである。ここでは、64ビットのカウンタを用いる。このカウンタは、上位48ビットと下位16ビットに2分割され、その上位側のカウント値を上位カウント値、下位側のカウント値を下位カウント値という。上位カウント値は、更に24ビットずつに2分割され、その上位側のカウント値をトリップカウント値Ctr、下位側のカウント値をインターバルカウント値Cinという。また、下位カウント値はメッセージカウント値Cmeともいう。
そして、管理用カウンタのカウント値は、図2(b)に示すように、上位カウント値、即ち、トリップカウント値Ctrとインターバルカウント値Cinとで構成されている。また、通信用カウンタのカウント値は、図2(c)に示すように、自ECUが扱うCANID毎に設けられた下位カウント値と、自ECUが扱う全てのCANIDに共通に設けられた上位カウント値とで構成されている。なお、各ECU10は、一つのCANIDについては、送信または受信の一方のみが可能であるため、CANID毎に設けられた各通信カウンタは、それぞれ送信用の通信カウンタまたは受信用の通信カウンタのいずれかとして動作する。
鍵保持部12kは、読み書き自在な不揮発性メモリを備える。鍵保持部12kは、MACの生成に使用する所定ビットのいわゆる共通鍵Kを記憶する。ここでは、128ビットの共通鍵Kを用いる。この共通鍵Kは、全てのECU10に共通のものであり、鍵保持部12kには予め記憶されている。
制御部13kは、周知のコンピュータを備える。制御部13kは、メッセージ処理部14kおよび通信コントローラ15kを介した他のECU10との通信によって、予め自ECUに割り当てられた機能を実現するための各種処理を実行する。その際、制御部13kは、メッセージ処理部14kとの間でデータPDUをやりとりする。
メッセージ処理部14kは、CPUと、RAM、ROM、フラッシュメモリ等の半導体メモリ(以下、メモリ)と、を有する周知のマイクロコンピュータを中心に構成される。メッセージ処理部14kの各種機能は、CPUが非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリが、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムが実行されることで、プログラムに対応する方法が実行される。なお、メッセージ処理部14kを構成するマイクロコンピュータの数は1つでも複数でもよい。
メッセージ処理部14kは、CPUがプログラムを実行することで実現される機能の構成として、送信処理部141、受信処理部142、同期処理部143を備える。送信処理部141は、他のECU10にメッセージを送信する処理を実行する。受信処理部142は、他のECUからメッセージを受信する処理を実行する。同期処理部143は、メッセージに付加するMACの生成や検証に使用するカウンタの値を、各ECU10間で同期させる処理を実行する。これらの処理の詳細は、後述する。
[1.3.通常ECU]
通常ECU10nは、管理ECU10kと同様に、カウント値保持部11n、鍵保持部12n、制御部13n、メッセージ処理部14n、通信コントローラ15nを備える。このうち、鍵保持部12n,制御部13n,通信コントローラ15nは、管理ECU10kの鍵保持部12k,制御部13k,通信コントローラ15kと同様であるため、説明を省略する。
カウント値保持部11nは、通信用カウンタのカウント値を保持するメモリを備える。メモリは、管理ノード10kのカウント値保持部11kとは異なり、必ずしも不揮発性メモリである必要はない。通信用カウンタのカウント値の詳細は、図2(c)に示したカウント値保持部11kに保持されるものと同様である。
メッセージ処理部14nは、メッセージ処理部14kと同様の送信処理部141および受信処理部142を備える。
つまり、通常ECU10nは、管理ECU10kの構成から、管理ECU10k独自の機能に関わる構成(管理用カウンタ、同期処理部143)を省略したものとなっている。換言すれば、管理ECU10kは、通常ECU10nの機能を備えており、通常ECU10nとしても機能する。
[1.4.メッセージ処理部]
メッセージ処理部14が扱うメッセージを、図3に示す。メッセージは、DATA領域、CNT領域、MAC領域を備える。メッセージには、管理ECU10kから通常ECU10nへの配信に用いる初期化メッセージおよび周期メッセージと、通常ECU10n同士が通信する際に用いる通常メッセージとがある。
初期化メッセージは、図3(a)に示すように、DATA領域にはトリップカウント値Ctr、CNT領域には0、MAC領域にはDATA領域の情報を用いて生成されたMACの一部が格納される。またDATA領域にはインターバルカウント値Cinを含めてもよい。
周期メッセージは、図3(b)に示すように、DATA領域にはインターバルカウント値Cin、CNT領域には0、MAC領域にはDATA領域の情報を用いて生成されたMACの一部が格納される。
通常メッセージは、図3(c)に示すように、DATA領域にはデータPDU、CNT領域にはメッセージカウント値Cme、MAC領域にはDATA領域およびCNT領域の情報を用いて生成されたMACの一部が格納される。
なお、初期化メッセージおよび周期メッセージでは、CNT領域を省略してもよい。
ここで、メッセージ処理部14が、通常メッセージを送受信する際に実施する処理の概要を、図4を用いて説明する
メッセージを送信する送信側のECU10は、制御部13から供給されるデータPDUと、鍵保持部12に保持されている共通鍵Kと、カウント値保持部11に保持されている通信用カウンタのカウント値CTs(即ち、Ctr,Cin,Cme)とを用いてMACを生成する。そして、DATA領域にはデータPDU、CNT領域には送信用カウンタのメッセージカウント値Cme、MAC領域には生成されたMACの一部を載せたメッセージを生成し、これを通信コントローラ15に供給する。
一方、通信コントローラ15を介してメッセージを受信した受信側のECU10は、メッセージのDATA領域の値と、鍵保持部12に保持されている共通鍵Kと、カウント値保持部11に保持されている通信用カウンタの上位カウント値(即ち、Ctr,Cin)にメッセージのCNT領域の値(即ち、r_Cme)を下位カウント値として連結したカウント値CTrとを用いてMACを生成する。そして、生成されたMACとメッセージのMAC領域の値とを比較することでMACを検証する。この検証により、メッセージの完全性が確認された場合、即ちMAC検証OKの場合は、メッセージのDATA領域の値をデータPDUとして制御部13に供給する。この検証により、完全性が否定された場合、即ちMAC検証NGの場合は、メッセージを破棄する。
初期化メッセージを送受信する場合、送信側のECU10は、データPDUの代わりに、カウント値保持部11に保持されたトリップカウント値Ctrを用いる。送信側のECU10は、MACを、通信用カウンタのカウント値CTsを用いることなく、トリップカウント値Ctrと共通鍵Kとから生成する。そして、DATA領域にはトリップカウント値Ctrを格納し、MAC領域には生成したMACの一部を格納した初期化メッセージを生成する(図3(a)参照)。なお、受信側のECU10でも、カウント値Ctrを用いることなく、DATA領域の値と共通鍵KとからMACを生成する。
周期メッセージを送受信する場合、トリップカウント値Ctrの代わりにインターバルカウント値Cinを用いる以外は、初期化メッセージの場合と同様に動作する。
[1.4.1.同期処理部]
ここで、メッセージ処理部14が実行する処理のうち、管理ECU10kのみで実施される同期処理部143の処理を、図5に示すフローチャートを用いて説明する。本処理は、管理ECU10kの電源が投入されると起動する。
同期処理部143が起動すると、S110にて、自車両のイグニションスイッチのオン状態(IG−ON)が検出されたか否かを判断する。IG−ONが検出されなければ、S140に進む。
S120では、カウント値保持部11kに格納された管理用カウンタのカウント値を更新する。具体的には、トリップカウント値Ctrをインクリメント(即ち、Ctr←Ctr+1)し、インターバルカウント値Cinをゼロにリセットする。
続くS130では、S120にてインクリメントされたトリップカウント値Ctrを用いて初期化メッセージを生成、送信する。
続くS140では、予め設定された一定周期で発生する同期タイミングであるか否かを判断する。同期タイミングであればS160に移行し、同期タイミングでなければ、S150に移行する。
S150では、通常ECU10nから再同期要求を受信したか否かを判断する。再同期要求を受信していればS170に移行し、再同期要求を受信していなければS110に戻る。
S160では、カウント値保持部11kに格納された管理用カウンタのインターバルカウント値Cinをインクリメント(即ち、Cin←Cin+1)する。
続くS170では、インターバルカウント値Cinを用いて同期メッセージを生成、送信して、S110に戻る。
つまり、管理カウンタのトリップカウント値Ctrは、IG−ONが検出される毎に更新される。その更新されたトリップカウント値Ctrは、初期化メッセージによって、各ECU10に配信される。
また、管理カウンタのインターバルカウント値Cinは、IG−ONが検出されると0にリセットされ、同期タイミング毎に更新される。その更新されたインターバルカウント値Cinは、周期メッセージによって、各ECU10に配信される。なお、周期メッセージは、通常ECU10nから再同期要求を受信した時にも同様に配信される。
[1.4.2.送信処理部]
ECU10(即ち、通常ECU10nおよび通常ECUの機能を有した管理ECU10k)の送信処理部141が実行する処理を、図6に示すフローチャートを用いて説明する。本処理は、ECU10の電源が投入されると起動する。
送信処理部141は、本処理が起動すると、S210にて、制御部13からの送信要求があるか否かを判断する。送信要求がなければ同ステップを繰り返すことで待機し、送信要求があるとS220に進む。
S220では、制御部13から供給されるデータPDUの内容に対応するCANIDを特定し、そのCANIDで使用する通信用カウンタのメッセージカウント値Cmeをインクリメント(即ち、Cme←Cme+1)する。
続くS230では、制御部13から供給されるデータPDUおよびS220でインクリメントされたメッセージカウント値Cmeを用いて通常メッセージを生成、送信し、S210に戻る。
[1.4.3.受信処理部]
ECU10の受信処理部142が実行する処理を、図7に示すフローチャートを用いて説明する。本処理は、ECU10の電源が投入されると起動する。
受信処理部142は、本処理が起動すると、S310にて、初期化メッセージを受信したか否かを判断する。受信していなければS320に進む。
S320では、自車両のIG−ONが検出されたか否かを判断する。IG−ONが検出されていなければS390に進み、検出されていればS330に進む。
S330では、カウント値保持部11に格納されている通信用カウンタのトリップカウント値Ctrをインクリメント(即ち、Ctr←Ctr+1)して、S380に進む。
先のS310にて、初期化メッセージを受信していると判断された場合、S340に進み、初期化メッセージのDATA領域に示されたトリップカウント値r_Ctrと鍵保持部12に保持された共通鍵Kとに基づいてMACを生成し、この生成したMACと初期化メッセージのMAC領域に示された値とを比較することでMAC検証をする。その結果、MAC検証NGであればS370に進み、MAC検証OKであればS350に進む。
S350では、初期化メッセージのDATA領域に示されたトリップカウント値r_Ctrが、カウント値保持部11に保持された通信用カウンタのトリップカウント値Ctrより大きいか否かを判断する。r_Ctr>Ctrであれば、S360に進み、r_Ctr≦Ctrであれば、S370に進む。
S360では、カウント値保持部11に保持された通信用カウンタのトリップカウント値CtrをDATA領域に示されたトリップカウント値r_Ctrで更新してS380に進む。
S370では、受信した初期化メッセージに異常があるものとして予め定められたエラー処理を実行する。
S380では、カウント値保持部11に保持された通信用カウンタのインターバルカウント値Cin、および全てのCANIDについてのメッセージカウント値Cmeを0にリセットする。
つまり、S310〜S380の処理により、初期化メッセージを正常に受信するかIG−ONを検出すると、通信用カウンタのカウント値(Ctrを除く)が初期化されることになる。
続くS390では、周期メッセージを受信したか否かを判断する。周期メッセージを受信していなければ、S400に進み、通常メッセージを受信したか否かを判断する。通常メッセージを受信していなければ、S310に戻る。
先のS390にて周期メッセージを受信したと判断された場合は、S410に進み、受信した周期メッセージのDATA領域に示されたインターバルカウント値r_Cinと鍵保持部12に保持された共通鍵Kとに基づいてMACを生成し、この生成したMACと、周期メッセージのMAC領域に示された値とを比較することでMAC検証をする。その結果、MAC検証NGであればS440に進み、MAC検証OKであればS420に進む。
S420では、周期メッセージのDATA領域に示されたインターバルカウント値r_Cinが、カウント値保持部11に保持された通信用カウンタのインターバルカウント値Cinより大きいか否かを判断する。r_Cin>Cinであれば、S430に進み、r_Cin≦Cinであれば、S440に進む。
S430では、カウント値保持部11に保持された通信用カウンタのインターバルカウント値Cinを周期メッセージのDATA領域に示されたインターバルカウント値r_Cinで更新すると共に、全てのCANIDについてのメッセージカウント値Cmeを0にリセットしてS310に戻る。
一方S440では、管理ECUに対して再同期要求を送信してS310に戻る。
先のS400にて通常メッセージを受信したと判断された場合は、S450に進む。
S450では、通常メッセージのDATA領域に示されたデータr_PDUと鍵保持部12に保持された共通鍵Kと、カウント値保持部11に保持された通信用カウンタのトリップカウント値Ctr、インターバルカウント値Cinに、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeを連結したカウント値CTrとに基づいてMACを生成する。更に、この生成したMACと、通常メッセージのMAC領域に示された値とを比較することでMAC検証をする。その結果、MAC検証NGであればS310に戻り、MAC検証OKであればS460に進む。
S460では、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeが、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeより大きいか否かを判断する。但し、このメッセージカウント値Cmeは、受信した通常メッセージのCANID用のものであ。r_Cme>Cmeであれば、S470に進み、r_Cme≦Cmeであれば、S310に戻る。
S470では、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeをインクリメント(即ち、Cme←Cme+1)して、S310に戻る。このとき、通常メッセージのDATA領域は、データPDUとして制御部13に供給される。
つまり、S390〜S470の処理により、周期メッセージを正常に受信する毎に、通信用カウンタのインターバルカウント値Cinが更新され、メッセージカウント値Cmeが初期化される。また、通常メッセージを正常に受信する毎に、通信用カウンタのメッセージカウント値が更新される。
なお、メッセージ処理部14kを構成する各要素である送信処理部141、受信処理部142、同期処理部143を実現する手法は、ソフトウェアに限るものではなく、その一部又は全部の要素について、一つあるいは複数のハードウェアを用いて実現してもよい。例えば、各部の機能がハードウェアである電子回路によって実現される場合、その電子回路は多数の論理回路を含むデジタル回路、又はアナログ回路、あるいはこれらの組み合わせによって実現してもよい。
[1.5.動作]
このように構成された通信システム1は、以下のように動作する。
管理ECU10kは、IG−ONを検出すると、管理用カウンタのトリップカウント値Ctrを更新し、その更新した値を、初期化メッセージによって、各ECU10に配信する。このとき、初期化メッセージには、MACも付加される。
初期化メッセージを受信したECU10は、初期化メッセージに示されたトリップカウント値r_CtrのMAC検証と、自ECUが保持するトリップカウント値Ctrとの大小比較とを行う。その結果、MAC検証OK(即ち、メッセージは完全性あり)、かつr_Ctr>Ctrである場合に、自ECUが保持するトリップカウント値Ctrを更新し、インターバルカウント値Cinとメッセージカウント値Cmeを初期化する。
これにより、各ECU10が保持する通信用カウンタのカウント値は、いずれも同じ値となり送信側と受信側とで同期した状態となる。
その後、通常メッセージを送受信する毎に、送信側のECU10および受信側のECU10のそれぞれが、対応するCANIDの通信用カウンタのメッセージカウント値Cme、を更新し、そのメッセージカウント値Cmeを用いて、MAC生成・検証等を実施する。
また、管理ECU10kは、一定周期(例えば、500ms)の同期タイミング毎に、管理用カウンタのインターバルカウント値Cinを更新し、その更新したインターバルカウント値Cinを、同期メッセージによって各ECU10に配信する。このとき、同期メッセージには、MACも付加される。
同期メッセージを受信したECU10は、同期メッセージに示されたインターバルカウント値r_CinのMAC検証と、自ECUが保持するインターバルカウント値Cinとの大小比較を行う。MAC検証OK、かつr_Cin>Cinである場合に、自ECUが保持するインターバルカウント値Cinを更新し、メッセージカウント値Cmeを初期化する。
これにより、あるCANIDについて、メッセージ送信側のECUが保持する通信用カウンタのカウント値と、メッセージ受信側のECUが保持する通信用カウンタのカウント値との間にずれが生じていたとしても、同期メッセージを受信することによって、両ECUの通信用カウンタのカウント値は同じ値となり、即ち、カウント値が同期した状態に復帰する。
[1.6.効果]
以上説明したように、通信システム1では、通信用カウンタを上位カウント値(即ち、トリップカウント値Ctr、インターバルカウント値Cin)と、下位カウント値(即ち、メッセージカウント値Cme)に分けている。そして、管理ECU10kが上位カウント値を一括管理し、各ECU10は、上位カウント値については、メッセージ種別(即ち、CANID)の違いによらず、管理ECU10kから配信された共通の値を使用し、下位カウント値の更新のみを行う。
従って、各ECU10は、通信用カウンタのカウント値として、下位カウント値のみCANID毎に保持し、上位カウント値については全てのCANIDに共通な一つの値を保持すればよいため、通信用カウンタのカウント値を保持するために必要なメモリサイズを大幅に削減することができる。
また、通信システム1では、管理ECU10kが、上位カウント値(特にインターバルカウント値Cin)を周期的に更新して各ECU10に配信する。この配信を受けた各ECU10は、通信用カウンタの上位カウント値の更新だけでなく下位カウント値のリセットも行う。このため、通信システム1では、各ECU10が保持する通信カウンタのカウント値を定期的に再同期させることができる。
しかも、通信システム1では、上位カウント値を二つに分け、その一部であるトリップカウント値Ctrは、IG−ON時にのみ配信し、残りの部分であるインターバルカウント値Cinのみを定期的に送信している。このため、単一のメッセージで送信可能なデータ量が少ないCANプロトコルを採用した通信システムであっても、再同期を実施する時には、単一の同期メッセージだけを送信すればよいため、再同期時の通信トラフィックを大幅に削減することができる。
通信システム1では、各ECU10は、初期メッセージの受信時だけでなく、IG−ONを検出した時にも、通信用カウンタのカウント値を初期化する。このため、各ECU10は、初期化メッセージの配信を待つことなく、速やかに通常メッセージの送受信を開始することができる。
通信システム1では、同期メッセージを受信したECU10は、同期メッセージの異常を検出した場合、管理ECU10kに対して再同期要求を送信し、再同期要求を受信した管理ECU10kは、再同期タイミングを待つことなく、再び同期メッセージを送信する。従って、通信システム1では、通信用カウンタのカウント値の同期がとれていない状態を、速やかに解消することができる。
通信システム1では、メッセージを受信したECU10は、MAC検証だけでなく、メッセージに示されたカウント値と自ECU10が保持するカウント値との比較によっても受信したメッセージの正否を判断して、メッセージを破棄する。これにより、通信システム1では、いわゆるリプライ攻撃によるメッセージを排除することができ、システムのセキュリティを向上させることができる。
本実施形態では、管理ECU10kは、通常ECU10nとしての機能を有しているが、管理ECU10kから通常ECU10nとしての機能を削除し、同期処理専用のECUとして構成してもよい。
[2.第2実施形態]
[2.1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
前述した第1実施形態では、通信用カウンタのメッセージカウント値Cmeを、通常メッセージの送受信毎に更新している。これに対し、第2実施形態では、通常メッセージの送受信によらず、一定の更新時間(例えば1ms)毎に更新する点で第1実施形態とは相違する。
以下では、第1実施形態と相違する送信処理部141および受信処理部142の処理について説明する。
[2.2.送信処理部]
送信処理部141が実行する処理を、図8に示すフローチャートを用いて説明する。本処理は、通常ECUの電源が投入されると起動する。
送信処理部は、本処理が起動すると、S510にて、予め設定された一定の更新時間毎の更新タイミングであるか否かを判断する。更新タイミングであればS520に進み、更新タイミングでなければS530に進む。
S520では、即ち更新タイミングになると、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeをインクリメント(即ち、Cme←Cme+1)して、S530に進む。
S530では、制御部13からの送信要求があるか否かを判断する。送信要求があればS540に進み、送信要求がなければ、S510に戻る。
S540では、即ち送信要求があると、制御部13から供給されるデータPDUおよびカウント値保持部11に保持された通信用カウンタのカウント値を用いて通常メッセージを生成、送信し、S510に戻る。
つまり、本実施形態では、メッセージカウント値Cmeの更新を、メッセージ送信に依らず、周期的な更新タイミングで行っている。
[2.3.受信処理部]
受信処理部142が実行する処理では、図7に示すフローチャート中のS460およびS470の代わりに、図9に示すS465およびS475を実行する点だけが、第1実施形態とは異なっている。
即ち、通常メッセージを受信し、MAC検証OKであった場合、即ち、S400およびS450のいずれでも肯定判断された場合、S465に進む。
S465では、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeが、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cme以上であるか否かを判断する。r_Cme≧Cmeであれば、S475に進み、r_Cme<Cmeであれば、S390に戻る。
S475では、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeを、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeで更新(即ち、Cme←r_Cme)して、S390に戻る。
なお、更新タイミングを決める更新時間は、通常メッセージの平均的な送信間隔と同程度またはそれ以下であることが望ましい。要するに、メッセージカウント値Cmeは、更新時間毎に更新される計時タイマーの計時値であり、換言すれば、メッセージカウント値Cmeとしてタイムスタンプを用いていると言うことができる。
[2.4.効果]
以上詳述した第2実施形態によれば、前述した第1実施形態の効果と同様の効果を得ることができる。
[3.第3実施形態]
[3.1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
前述した第1実施形態では、周期メッセージを受信し、MAC検証に成功した場合、直ちにインターバルカウント値Cinを周期メッセージに示されたインターバルカウント値r_Cinに書き換えている。これに対し、第3実施形態では、周期メッセージに示されたインターバルカウント値r_Cinを一時保管値Cin_tmpとして一時的に保管する。その後、一時保管値Cin_tmpを用いて通常メッセージでのMAC検証に成功すると、インターバルカウント値Cinを一時保管値Cin_tmpに書き換える点で第1実施形態と相違する。
本実施形態において、カウント値保持部11k,11nは、図10に示すように、通信カウンタとして、第1実施形態で示した構成に加えて、一時保管値Cin_tmpを記憶する領域を備えている。
[3.2.処理]
次に、受信処理部142が、図7に示した第1実施形態の受信処理に代えて実行する受信処理について、図11のフローチャートを用いて説明する。なお、図11におけるS310〜S400の処理は、図7におけるS310〜S400の処理と同様であるため、説明を一部簡略化している。
受信処理部142は、S390にて周期メッセージを受信したと判断すると、S610に進む。
S610では、周期メッセージのDATA領域に示されたインターバルカウント値r_Cinが、カウント値保持部11に保持された通信用カウンタのインターバルカウント値Cinより大きいか否かを判断する。r_Cin>Cinであれば、S620に進み、r_Cin≦Cinであれば、S310に戻る。
S620では、受信した周期メッセージのDATA領域に示されたインターバルカウント値r_Cinと鍵保持部12に保持された共通鍵Kとに基づいてMACを生成し、この生成したMACと、周期メッセージのMAC領域に示された値とを比較することでMAC検証をする。その結果、MAC検証NGであればS310に戻り、MAC検証OKであればS630に進む。
S630では、カウント値保持部11に保持された通信用カウンタの一時保持値Cin_tmpを、周期メッセージのDATA領域に示されたインターバルカウント値r_Cinで更新してS310に戻る。
受信処理部142は、S400にて通常メッセージを受信したと判断すると、S640に進む。
S640では、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeが、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeより大きいか否かを判断する。但し、このメッセージカウント値Cmeは、受信した通常メッセージのCANID用のものである。r_Cme>Cmeであれば、S650に進み、r_Cme≦Cmeであれば、S670に進む。
S650では、通常メッセージのDATA領域に示されたデータr_PDUと鍵保持部12に保持された共通鍵Kと、カウント値保持部11に保持された通信用カウンタのトリップカウント値Ctr、インターバルカウント値Cinに、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeを連結したカウント値CTrとに基づいてMACを生成する。更に、この生成したMACと、通常メッセージのMAC領域に示された値とを比較することでMAC検証をする。その結果、MAC検証NGであればS310に戻り、MAC検証OKであればS660に進む。
S660では、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeを、通常メッセージに示されたメッセージカウント値r_Cmeで更新して、S310に戻る。このとき、通常メッセージのDATA領域は、データPDUとして制御部13に供給される。
S670では、通常メッセージのDATA領域に示されたデータr_PDUと鍵保持部12に保持された共通鍵Kと、カウント値保持部11に保持された通信用カウンタのトリップカウント値Ctr、一時保持値Cin_tmpに、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeを連結したカウント値CTrとに基づいてMACを生成する。更に、この生成したMACと、通常メッセージのMAC領域に示された値とを比較することでMAC検証をする。その結果、MAC検証NGであればS310に戻り、MAC検証OKであればS680に進む。
S680では、カウント値保持部11に保持された通信用カウンタのインターバルカウント値Cinを一時保持値Cin_tmpで更新する。これと共に、カウント値保持部11に保持された通信用カウンタのメッセージカウント値Cmeを、通常メッセージのCNT領域に示されたメッセージカウント値r_Cmeで更新して、S310に戻る。
[3.3.動作]
本実施形態では、上述した受信処理により、周期メッセージを正常に受信する毎に、周期メッセージに示されたインターバルカウント値r_Cinは、一時保持値Cin_tmpとしてカウント値保持部11に保持される。また、通常メッセージを正常に受信した場合、通信メッセージに示されたメッセージカウント値r_Cmeがカウント値保持部11に保持されたメッセージカウント値Cmeより大きければ、即ち、r_Cme>Cmeであれば、通常メッセージの送信元では、インターバルカウント値Cinの更新が行われていないものとして、カウント値保持部11に保持されたインターバルカウント値Cinを用いてMAC検証を実施する。一方、r_Cme≦Cmeであれば、通常メッセージの送信元でインターバルカウント値Cinの更新が行われたもとして、カウント保持部11に保持された一時保持値Cin_tmpを用いてMAC検証を実施する。MAC検証OKであれば、一時保持値Cin_tmpでインターバルカウント値Cinを更新する。
[3.4.効果]
以上詳述した第3実施形態によれば、前述した第1実施形態の効果と同様の効果に加えて、以下の効果を得ることができる。
本実施形態では、何らかの理由で、インターバルカウント値Cinの更新タイミングが、通信メッセージの受信側より送信側の方が遅れたとしても、受信側では、更新前のインターバルカウント値Cinが保持されているため、この値を用いて通信メッセージの検証を行うことができる。逆に、通信メッセージの受信側の方が送信側より遅れた場合、通信メッセージの検証が不成功となるが、その後、周期メッセージの受信によって、通信メッセージの検証を正しく実施することができる状態に直ちに復帰することができる。
[4.第4実施形態]
[4.1.第1実施形態との相違点]
第4実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
前述した第1実施形態では、管理ECU10kが、通常ECU10nの機能を備えている。換言すれば、通常ECUの一つが管理ECUとしても機能するように構成されている。これに対し、第4実施形態では、管理ECUは通常ECUとしての機能を備えない点で第1実施形態と相違する。
[4.2.全体構成]
通信システム1aは、車両に搭載され、図12に示すように、複数のバス上の通信路3と、各通信路3に接続される複数のノード10と、各通信路3間を相互に接続するゲートウェイ10gとを備える。
このうち、複数のノード10は、いずれも第1実施形態において説明した通常ECU10nと同様に構成されている。つまり、通信システム1aは、通信路3が複数ある点、管理ECU10kの代わりにゲートウェイ10gを備える点以外は、通信システム1と同様に構成されている。
[4.3.ゲートウェイ]
ゲートウェイ10gは、カウント値保持部11g、鍵保持部12g、メッセージ処理部14g、通信コントローラ15g、ゲートウェイ処理部16gを備える。
鍵保持部12g、通信コントローラ15gは、第1実施形態で説明した鍵保持部12k、通信コントローラ15kと同様のものである。
ゲートウェイ処理部16gは、各通信路3を流れるCANフレームに示されたCANIDを参照して、CANフレームの中継を行う周知のものである。
カウント値保持部11gには、図2(b)に示す管理用カウンタのカウント値を保持するエリアが少なくとも用意されている。
メッセージ処理部14gは、同期処理部143を備えている。
即ち、カウント値保持部11gおよびメッセージ処理部14gは、第1実施形態で説明したカウント値保持部11kおよびメッセージ処理部14kから、通常ECU10nとしての機能を削除した構成を有している。
[4.4.効果]
以上詳述した第4実施形態によれば、前述した第1実施形態の効果と同様の効果を得ることができる。
[5.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は、上述の実施形態に限定されることなく、種々変形して実施することができる。
(1)上記実施形態では、MACを生成する際に、予め用意された共通鍵Kを用いているが、管理用カウンタのカウント値(即ち、Ctr,Cin)を用いて生成される共通鍵Kを用いるようにしてもよい。例えば、トリップカウント値Ctrが更新される毎に共通鍵Kを生成する場合、管理ECU10kは、図5のS120が実行される毎に共通鍵Kを生成し、通信用カウンタを持つ各ECU10は、図7のS330またはS360が実行される毎に共通鍵Kを生成すればよい。また、インターバルカウント値Cinが更新される毎に共通鍵Kを生成する場合、管理ECU10kは、図5のS160が実行される毎に共通鍵Kを生成し、通信用カウンタを持つ各ECUは、図7のS380またはS430が実行される毎に共通鍵Kを生成すればよい。
(2)上記実施形態では、上位カウント値としてトリップカウント値Ctrおよびインターバルカウント値Cinを用いているが、上位カウント値の全部または一部に、タイムスタンプを用いるように構成してもよい。この場合、タイムスタンプに用いられる計時カウンタが更新されるタイミングである計時タイミングが上位更新条件となる。また、上位カウント値の配信条件である再同期タイミングは、計時タイミングより長い周期となるように設定すればよい。
(3)上記実施形態では、通常メッセージのCNT領域に、メッセージカウント値Cmeの全体を載せているが、メッセージカウント値Cmeの一部、例えば、下位所定桁だけを載せるように構成してもよい。
(4)上記実施形態では、管理ノード10kのカウント値保持部11kを不揮発性メモリで構成し、通常ECU10nのカウント値保持部11nは、必ずしも不揮発性メモリを用いることなく構成しているが、カウント値保持部11nも、不揮発性メモリで構成してもよい。この場合、例えば、電源の瞬断等があったとしても、カウント値保持部11nに記憶されたカウント値が消去されてしまうことがないため、カウント値の再同期を行うことなく通信を継続することができる。
(5)第3実施形態では、受信側のインターバルカウント値Cinの更新が遅れた場合に、通常メッセージを正しく受信できないが、以下のように構成してもよい。即ち、S670にて否定判定された場合に、インターバルカウント値Cinの値を一つ進めた次回値p_Cinを用いてMAC検証を行う。MAC検証OKであれば、周期メッセージを受信するまでの間は、次回値p_Cinを用いて通信メッセージのMAC検証を行うように構成してもよい。
(6)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
1,1a…通信システム、3…通信路、10…ノード(ECU)、10k…管理ECU、10n…通常ECU、10g…ゲートウェイ、11…カウント値保持部、12…鍵保持部、13…制御部、14…メッセージ処理部、15…通信コントローラ、16…ゲートウェイ処理部、141…送信処理部、142…受信処理部、143…同期処理部

Claims (19)

  1. 相互に接続された複数のノードを備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージを検証する通信システム(1,1a)であって、
    前記ノードの一つを管理ノード(10k、10g)、前記メッセージの送受信を行う前記ノードを通常ノード(10n,10k)とし、前記カウンタのカウント値を2分割した上位側を上位カウント値、下位側を下位カウント値として、
    前記管理ノードは、
    前記上位カウント値を保持する上位カウント値保持部(11k)と、
    予め設定された上位更新条件に従って前記上位カウント値を更新する上位カウント値更新部(143:S110,S120,S140,S160)と、
    前記上位カウント値保持部が保持する前記上位カウント値を、予め設定された配信条件に従って前記通常ノードに配信する上位カウント値配信部(143:S110、S130〜S150,S170)と、
    を備え、
    前記通常ノードは、
    前記カウント値を保持するカウント値保持部(11n,11k)と、
    予め設定された下位更新条件に従って前記カウント値保持部が保持する前記下位カウント値を更新する下位更新部(141:S210〜S220,142:S400〜S470,S510〜S520,S640〜S660)と、
    前記管理ノードから配信される前記上位カウント値を用いて、前記カウント値保持部が保持する前記上位カウント値を更新する上位更新部(142:S310〜S390,S410〜S440,S610〜S640,S670〜S680)と、
    前記上位更新部によって前記上位カウント値が更新されると、前記下位カウント値を初期化する下位初期化部(142:S380,S430,S680)と、
    を備える通信システム。
  2. 前記上位更新部は、
    前記管理ノードから配信される前記上位カウント値を一時的に保持する一時保持部(142:S610〜S630)と、
    前記一時保持部に保持された上位カウント値を用いて生成される前記メッセージ認証コードによって前記メッセージの検証に成功した場合に、前記一時保持部に保持された上位カウント値によって、前記カウント値保持部が保持する上位カウント値を更新する更新反映部(142:S640,S670〜S680)と、
    を備える請求項1に記載の通信システム。
  3. 前記上位更新条件は、電源の立ち上げの検出または予め設定された周期的な再同期タイミングのうち少なくとも一方であり、
    前記配信条件は、前記上位更新条件と同一である、
    請求項1または請求項2に記載の通信システム。
  4. 前記上位更新条件は、予め設定された周期的な計時タイミングであり、
    前記配信条件は、前記計時タイミングの周期より長い周期に設定された再同期タイミングである
    請求項1または請求項2に記載の通信システム。
  5. 前記管理ノードは、前記上位カウント値を複数の部分に分割して管理し、分割された部分毎に異なった前記上位更新条件を適用することを特徴とする請求項1ないし請求項4のいずれか1項に記載の通信システム。
  6. 前記通常ノードは、前記下位更新条件として、前記メッセージの送受信を適用することを特徴とする請求項1ないし請求項5のいずれか1項に記載の通信システム。
  7. 前記通常ノードは、前記下位更新条件として、予め設定された周期的な更新タイミングを適用することを特徴とする請求項1ないし請求項5のいずれか1項に記載の通信システム。
  8. 前記ノードは、前記メッセージ認証コードの生成に、予め設定された共通鍵を用いることを特徴とする請求項1ないし請求項7のいずれか1項に記載の通信システム。
  9. 前記共通鍵は、前記上位カウント値が更新される毎に、前記上位カウント値を用いて生成されることを特徴とする請求項8に記載の通信システム。
  10. 前記共通鍵は、前記上位カウント値が配信される毎に、前記配信された前記上位カウント値を用いて生成されることを特徴とする請求項8または請求項9に記載の通信システム。
  11. 前記メッセージを送信するノードは、自ノードが保持する前記下位カウント値を前記メッセージに付加し、
    前記メッセージを受信したノードは、自ノードが保持する前記下位カウント値と前記メッセージに示された前記下位カウント値との比較により、前記メッセージの正否を判断することを特徴とする請求項1ないし請求項10のいずれか1項に記載の通信システム。
  12. 前記管理ノードが前記上位カウント値を配信する際にも、前記メッセージ認証コードを用いてメッセージの完全性を保証することを特徴とする請求項1ないし請求項11のいずれか1項に記載の通信システム。
  13. 相互に接続された複数のノード間で送受信されるメッセージを検証するためのメッセージ認証コードをカウンタのカウント値を用いて生成し、通常ノードへ送信するとともに、前記通常ノード間での前記カウンタのカウント値の同期を管理するように構成された管理ノード(10k,10g)であって、
    前記カウンタのカウント値を2分割した上位側を上位カウント値、下位側を下位カウント値として、前記上位カウント値を保持する上位カウント値保持部(11k)と、
    予め設定された上位更新条件に従って前記上位カウント値を更新する上位カウント値更新部(143:S110,S120,S140,S160)と、
    前記上位カウント値保持部が保持する前記上位カウント値を、予め設定された配信条件に従って前記通常ノードに配信する上位カウント値配信部(143:S110、S130〜S150,S170)と、
    を備える管理ノード。
  14. 相互に接続された複数のノード間で送受信されるメッセージを検証するため、カウンタのカウント値を用いて生成されるメッセージ認証コードを受信する通常ノードであって、
    前記カウント値を保持するカウント値保持部(11n,11k)と、
    前記カウンタのカウント値を2分割した上位側を上位カウント値、下位側を下位カウント値として、予め設定された下位更新条件に従って前記カウント値保持部が保持する前記下位カウント値を更新する下位更新部(141:S210〜S220,142:S400〜S470,S510〜S520,S640〜S660)と、
    前記ノード間での前記カウンタのカウント値の同期を管理するように構成された管理ノードから配信される前記上位カウント値を用いて、前記カウント値保持部が保持する前記上位カウント値を更新する上位更新部(142:S310〜S390,S410〜S440,S610〜S640,S670〜S680)と、
    前記上位更新部によって前記上位カウント値が更新されると、前記下位カウント値を初期化する下位初期化部(142:S380,S430,S680)と、
    を備える通常ノード。
  15. 相互に接続された複数のノードを備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージを検証する通信システムにおいて、前記メッセージの送受信を行う前記ノードを通常ノード(10n,10k)として、前記通常ノード間で前記カウンタのカウント値を同期させるカウンタ同期方法であって、
    前記カウンタのカウント値を2分割した上位側を上位カウント値、下位側を下位カウント値として、
    前記ノードの一つである管理ノード(10k,10g)は、前記上位カウント値を保持し、該上位カウント値を、予め設定された上位更新条件に従って更新し(143:S110,S120,S140,S160)、予め設定された配信条件に従って前記通常ノードに配信し(143:S110、S130〜S150,S170)、
    前記通常ノードは、それぞれ、前記カウント値を保持し、該カウント値を構成する前記下位カウント値を、予め設定された下位更新条件に従って更新し(141:S210〜S220,142:S400〜S470,S510〜S520,S640〜S660)、前記管理ノードから配信される前記上位カウント値を用いて、当該通常ノードが保持する前記上位カウント値を更新し(142:S310〜S390,S410〜S440,S610〜S640,S670〜S680)、該上位カウント値が更新されると、前記下位カウント値を初期化する(142:S380,S430,S680)、カウンタ同期方法。
  16. 請求項13に記載の管理ノードの各部として、コンピュータを機能させるためのプログラム。
  17. 請求項14に記載の通常ノードの各部として、コンピュータを機能させるためのプログラム。
  18. 請求項13に記載の管理ノードの各部として、コンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  19. 請求項14に記載の通常ノードの各部として、コンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2016149956A 2015-08-07 2016-07-29 通信システム、管理ノード、通信ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体 Active JP6555209B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/747,261 US10735435B2 (en) 2015-08-07 2016-08-04 Communication system, management node, normal node, counter synchronization method, and storage medium
DE112016003605.1T DE112016003605B4 (de) 2015-08-07 2016-08-04 Kommunikationssystem, Verwaltungsknoten, normaler Knoten, Zählersynchronisationsverfahren, Programm und Speichermedium
PCT/JP2016/072877 WO2017026361A1 (ja) 2015-08-07 2016-08-04 通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015157234 2015-08-07
JP2015157234 2015-08-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019086188A Division JP6690758B2 (ja) 2015-08-07 2019-04-26 通信システム、管理ノード、通常ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体

Publications (3)

Publication Number Publication Date
JP2017038365A true JP2017038365A (ja) 2017-02-16
JP2017038365A5 JP2017038365A5 (ja) 2017-09-07
JP6555209B2 JP6555209B2 (ja) 2019-08-07

Family

ID=58049428

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016149956A Active JP6555209B2 (ja) 2015-08-07 2016-07-29 通信システム、管理ノード、通信ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体
JP2019086188A Active JP6690758B2 (ja) 2015-08-07 2019-04-26 通信システム、管理ノード、通常ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019086188A Active JP6690758B2 (ja) 2015-08-07 2019-04-26 通信システム、管理ノード、通常ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体

Country Status (3)

Country Link
US (1) US10735435B2 (ja)
JP (2) JP6555209B2 (ja)
DE (1) DE112016003605B4 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018078473A (ja) * 2016-11-10 2018-05-17 トヨタ自動車株式会社 通信システム
WO2018225366A1 (ja) * 2017-06-08 2018-12-13 日立オートモティブシステムズ株式会社 電子制御装置
WO2019003362A1 (ja) * 2017-06-28 2019-01-03 富士通株式会社 車載システム及びカウント更新方法
JP6732143B1 (ja) * 2019-07-31 2020-07-29 三菱電機株式会社 車両制御装置
DE112020002661T5 (de) 2019-06-04 2022-03-24 Denso Corporation Elektronische steuereinheit und kommunikationssystem
JP2022094755A (ja) * 2020-12-15 2022-06-27 株式会社東芝 情報処理装置、方法及びプログラム
WO2023228439A1 (ja) * 2022-05-23 2023-11-30 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、移動体装置、および通信システム
US11888645B2 (en) 2018-10-17 2024-01-30 Hitachi Astemo, Ltd. Information processing device and management device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779596B2 (en) 2012-10-24 2017-10-03 Apple Inc. Devices and methods for locating accessories of an electronic device
JP6409849B2 (ja) * 2016-10-31 2018-10-24 トヨタ自動車株式会社 通信システム及び通信方法
US11641563B2 (en) 2018-09-28 2023-05-02 Apple Inc. System and method for locating wireless accessories
KR20210068028A (ko) 2018-10-02 2021-06-08 캐피탈 원 서비시즈, 엘엘씨 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법
US11539782B2 (en) * 2018-10-02 2022-12-27 Hyundai Motor Company Controlling can communication in a vehicle using shifting can message reference
EP3957089A1 (en) * 2019-04-17 2022-02-23 Apple Inc. Sharing keys for a wireless accessory
US11863671B1 (en) 2019-04-17 2024-01-02 Apple Inc. Accessory assisted account recovery
US11889302B2 (en) 2020-08-28 2024-01-30 Apple Inc. Maintenance of wireless devices
US12009945B2 (en) 2020-09-29 2024-06-11 Nissan Motor Co., Ltd. Communication system, relay device, reception device, and communication control method
US20220255752A1 (en) * 2021-02-09 2022-08-11 Ford Global Technologies, Llc Vehicle computing device authentication
US12073705B2 (en) 2021-05-07 2024-08-27 Apple Inc. Separation alerts for notification while traveling
CN116232662B (zh) * 2022-12-26 2024-03-29 广东为辰信息科技有限公司 车内安全通信的计数器主从翻转处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0591108A (ja) * 1991-09-26 1993-04-09 Hitachi Ltd メツセージ通信制御方法および通信システム
JP2012169829A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 通信システムおよび通信方法
JP2013048374A (ja) * 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法
JP2013098719A (ja) * 2011-10-31 2013-05-20 Toyota Infotechnology Center Co Ltd 通信システムにおけるメッセージ認証方法および通信システム
WO2013084304A1 (ja) * 2011-12-06 2013-06-13 富士通株式会社 ノード、通信方法、および通信システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8102999B2 (en) * 2006-08-18 2012-01-24 Medtronic, Inc. Secure telemetric link
CN102917313B (zh) 2012-10-17 2015-05-27 重庆邮电大学 一种适用于无线传感器网络广播认证的方法
US8983069B2 (en) * 2013-03-14 2015-03-17 Robert Bosch Gmbh System and method for counter mode encrypted communication with reduced bandwidth
JP6149757B2 (ja) 2014-02-21 2017-06-21 マツダ株式会社 エンジン排ガス浄化用触媒材及びパティキュレートフィルタ
JP6377143B2 (ja) * 2014-05-08 2018-08-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 車載ネットワークシステム、電子制御ユニット及び更新処理方法
JP6568363B2 (ja) 2015-02-16 2019-08-28 日本ニュートリション株式会社 ほ乳期子豚用発育成績改善剤およびほ乳期子豚育成用配合飼料
CN104767618B (zh) 2015-04-03 2018-02-09 清华大学 一种基于广播的can总线认证方法及系统
JP6686390B2 (ja) * 2015-11-30 2020-04-22 セイコーエプソン株式会社 計時装置、電子機器、及び、移動体
US20170171169A1 (en) * 2015-12-14 2017-06-15 Qualcomm Incorporated Packet number determination in a neighbor aware network
US10554411B1 (en) * 2018-10-02 2020-02-04 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10474809B1 (en) * 2019-07-12 2019-11-12 Capital One Services, Llc Computer-based systems and computing devices configured to utilize one or more authentication servers for securing device commands transmissions and methods of use thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0591108A (ja) * 1991-09-26 1993-04-09 Hitachi Ltd メツセージ通信制御方法および通信システム
JP2012169829A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 通信システムおよび通信方法
JP2013048374A (ja) * 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法
JP2013098719A (ja) * 2011-10-31 2013-05-20 Toyota Infotechnology Center Co Ltd 通信システムにおけるメッセージ認証方法および通信システム
WO2013084304A1 (ja) * 2011-12-06 2013-06-13 富士通株式会社 ノード、通信方法、および通信システム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018078473A (ja) * 2016-11-10 2018-05-17 トヨタ自動車株式会社 通信システム
WO2018225366A1 (ja) * 2017-06-08 2018-12-13 日立オートモティブシステムズ株式会社 電子制御装置
JP2018206231A (ja) * 2017-06-08 2018-12-27 日立オートモティブシステムズ株式会社 電子制御装置
US11449091B2 (en) 2017-06-08 2022-09-20 Hitachi Astemo, Ltd. Electronic control device
WO2019003362A1 (ja) * 2017-06-28 2019-01-03 富士通株式会社 車載システム及びカウント更新方法
US11888645B2 (en) 2018-10-17 2024-01-30 Hitachi Astemo, Ltd. Information processing device and management device
DE112020002661T5 (de) 2019-06-04 2022-03-24 Denso Corporation Elektronische steuereinheit und kommunikationssystem
US11916904B2 (en) 2019-06-04 2024-02-27 Denso Corporation Electronic control unit and communication system
WO2021019715A1 (ja) * 2019-07-31 2021-02-04 三菱電機株式会社 車両制御装置
JP6732143B1 (ja) * 2019-07-31 2020-07-29 三菱電機株式会社 車両制御装置
JP2022094755A (ja) * 2020-12-15 2022-06-27 株式会社東芝 情報処理装置、方法及びプログラム
JP7438924B2 (ja) 2020-12-15 2024-02-27 株式会社東芝 情報処理装置、方法及びプログラム
WO2023228439A1 (ja) * 2022-05-23 2023-11-30 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、移動体装置、および通信システム

Also Published As

Publication number Publication date
US10735435B2 (en) 2020-08-04
DE112016003605T5 (de) 2018-05-09
JP6690758B2 (ja) 2020-04-28
DE112016003605B4 (de) 2024-08-01
JP6555209B2 (ja) 2019-08-07
US20180219872A1 (en) 2018-08-02
JP2019165473A (ja) 2019-09-26

Similar Documents

Publication Publication Date Title
JP6690758B2 (ja) 通信システム、管理ノード、通常ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体
JP6773617B2 (ja) 更新制御装置、ソフトウェア更新システムおよび更新制御方法
EP3151462B1 (en) Transmission device, reception device, transmission method, and reception method
US7944815B2 (en) System and method for network recovery from multiple link failures
CN108810887B (zh) 多个管理器或接入点在无线网络中的不相交安全
JP2013048374A (ja) 保護通信方法
EP3324574B1 (en) Gateway device and control method therefor
JP2016092716A (ja) 鍵管理通信装置および鍵配布方法
US20170142137A1 (en) Communication system, receiving apparatus, receiving method, and computer program product
CN108134713B (zh) 一种通信方法及装置
CN110574019A (zh) 数据中心之间鲁棒的数据复制
WO2017026360A1 (ja) 通信システム
WO2017026361A1 (ja) 通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体
US9087217B2 (en) Method for enhancing data reliability in a computer
Rosenstatter et al. Extending AUTOSAR's Counter-Based Solution for Freshness of Authenticated Messages in Vehicles
CN107070573A (zh) 监测基于以太网的网络中的时钟同步状态
CN112930662B (zh) 信息处理装置、管理装置
JP2017147695A (ja) イーサネットスイッチ装置
WO2020145086A1 (ja) 車載通信システム、車載通信制御装置、車載通信装置、通信制御方法及び通信方法
CN112104531B (zh) 一种备份实现方法及装置
CN109547435B (zh) 一种授权认证方法及装置
CN104219072B (zh) 一种安全控制器sc的恢复方法和装置
JP2018050183A (ja) 通信システム、中継装置、通信装置及び通信方法
JP2013121071A (ja) 中継システム及び、当該中継システムを構成する中継装置、外部装置
JP6915717B2 (ja) 通信システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170725

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190624

R151 Written notification of patent or utility model registration

Ref document number: 6555209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250