JP6814549B2 - 演算装置、認証システム、認証方法 - Google Patents

演算装置、認証システム、認証方法 Download PDF

Info

Publication number
JP6814549B2
JP6814549B2 JP2016089032A JP2016089032A JP6814549B2 JP 6814549 B2 JP6814549 B2 JP 6814549B2 JP 2016089032 A JP2016089032 A JP 2016089032A JP 2016089032 A JP2016089032 A JP 2016089032A JP 6814549 B2 JP6814549 B2 JP 6814549B2
Authority
JP
Japan
Prior art keywords
message
counter
abnormality
unit
synchronization
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
JP2016089032A
Other languages
English (en)
Other versions
JP2017200040A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2016089032A priority Critical patent/JP6814549B2/ja
Priority to US16/096,095 priority patent/US20190123908A1/en
Priority to CN201780025823.1A priority patent/CN109075977A/zh
Priority to EP17789212.2A priority patent/EP3451577B1/en
Priority to PCT/JP2017/014369 priority patent/WO2017187924A1/ja
Publication of JP2017200040A publication Critical patent/JP2017200040A/ja
Application granted granted Critical
Publication of JP6814549B2 publication Critical patent/JP6814549B2/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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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
    • 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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Description

本発明は、演算装置、認証システム、および認証方法に関する。
自動車の車載ネットワークにおける通信プロトコルとしてController Area Network(以下、CAN)が普及している。このような車載ネットワークでは、例えばOBD2(On−Board−Diagnostics 2)ポートのような車載ネットワークに直接繋がっているインタフェースに不正な機器を接続し、不正なメッセージを車載ネットワークに送信される危険性がある。このとき、CANには発信元(ソースアドレス)を示すフィールドがなく、なりすましが容易であり、特にリプレイ攻撃に対して脆弱である。ここで、リプレイ攻撃とは、通信路上を流れるメッセージを盗聴して事前に取得し、取得したメッセージを再送することで不正な動作を引き起こす攻撃である。特許文献1には、メインメッセージと、メインメッセージのメッセージ認証コード(Message Authentication Code: MAC)を含むMACメッセージを送信することでメッセージの改竄を防止する構成が開示されている。特許文献1にはさらに、メインメッセージがネットワーク上を伝送する度にインクリメントするカウンタ値を記憶し、メインメッセージとカウンタ値に所定のアルゴリズムを適用してMACを生成することでリプレイ攻撃を防止する構成が開示されている。
特許第5770602号
特許文献1に記載されている発明では、機器間でカウンタ値の同期がずれてしまうとメッセージを正しく検証できない。
本発明の第1の態様による認証システムは、ネットワークにより接続される、第1の演算装置、第2の演算装置、および第3の演算装置を含む認証システムであって、前記第1の演算装置は、メッセージを送信する第1通信部と、前記メッセージの送受信に関する異常を検知する異常検知部と、前記メッセージの送信に応じて更新されると共に前記異常検知部が前記異常を検知すると初期化される第1のカウンタ、前記異常検知部が前記異常を検知すると更新される第2のカウンタ、および鍵が格納される第1記憶部と、前記第1のカウンタの値および前記第2のカウンタの値を含む検証対象データを対象とし、前記鍵を用いて認証コードを生成する検証情報生成部と、を備え、前記第1通信部は、前記異常検知部が異常を検知すると、前記認証コード、前記第2のカウンタの値、および第1の所定の識別子を含むメッセージである同期通知メッセージを送信し、前記異常検知部が異常を検知しないと、前記認証コード、前記第1のカウンタの値、および第2の所定の識別子を含むメッセージを送信し、前記第2の演算装置は、前記メッセージを受信する第2通信部と、前記鍵が格納される第2記憶部と、前記第2通信部により受信された前記メッセージから少なくとも前記認証コードを除くデータと、前記メッセージの受信に応じて更新されると共に第3の所定の識別子を含むメッセージである同期依頼メッセージを受信すると初期化される第3のカウンタ値と、前記同期依頼メッセージを受信すると更新される第4のカウンタ値と、を含む検証対象データを対象として、前記鍵を用いて認証コードを生成し、前記メッセージに含まれる前記認証コードと前記生成した認証コードとが一致するか否かにより前記メッセージを検証する第2装置メッセージ検証部と、を備え、前記第3の演算装置は、前記同期通知メッセージを受信し前記同期依頼メッセージを送信する第3通信部と、前記メッセージの送信および受信を行う第3通信部と、前記第3通信部が前記同期通知メッセージを受信すると、初期化された第5のカウンタ値と、前記同期通知メッセージを受信するたびに更新される第6のカウンタ値を含む検証対象データを対象として、前記鍵を用いて認証コードを生成し、前記同期通知メッセージに含まれる前記認証コードと前記生成した認証コードとが一致すると、前記第1の演算装置が異常を検知したと判断して前記第3通信部から前記同期依頼メッセージを送信させる第3装置メッセージ検証部とを備える。
本発明によれば、機器間で通信用カウンタの同期がずれた場合でもメッセージの検証を行うことができる。
ECUの構成を示す図 異常検知関連情報の一例を示す図 異常用カウンタの一例を示す図 通信用カウンタの一例を示す図 図5(a)は制御用メッセージのデータ構造を示す図、図5(b)は同期依頼メッセージのデータ構造を示す図、図5(c)は同期完了メッセージのデータ構造を示す図 通常時の認証シーケンスを示す図 異常検出時の同期シーケンスを示す図 同期シーケンスにおける送信側ECUの処理を表すフローチャート 同期シーケンスにおける受信側ECUの処理を表すフローチャート 第2の実施の形態におけるホストECUの構成を示す図 第2の実施の形態における同期シーケンスを示す図
(第1の実施の形態)
以下、図1〜図9を参照して、本発明に係る情報処理装置の一実施の形態である電子制御ユニット(Electronic Control Unit:以下、ECU)の第1の実施の形態を説明する。ECUはたとえば車両内に複数設置され、これらは車両内のCANを介して互いに接続される。それぞれのECUは異なる機能、たとえばエンジン回転数の制御機能やパワーウインドの開閉機能を有するが、以下に説明する構成および機能は共通する。以下では、それぞれのECUが有する固有の機能は不図示の制御部により実行されることとし、ECUに共通する構成および機能を中心に説明する。
(MAC)
本実施の形態では、「認証対象データ」と「鍵」とを用いてメッセージ認証コード、すなわちMACを生成する。一般に、「認証対象データ」と、その「認証対象データ」を対象として生成したMACとがセットで送信されるが、本実施の形態では「認証対象データ」から一部の情報を欠落させたデータと、「認証対象データ」を対象として生成したMACとを送信する。なお「認証対象データ」は“メッセージ”とも呼ばれるが、CANのメッセージとの混同を避けるために本明細書では「認証対象データ」と呼ぶ。
(メッセージの構造)
CANネットワークにおいて送受信されるメッセージは、メッセージの種類を示すCAN−IDが格納されるヘッダと、電文内容であるペイロードとから構成される。換言すると、メッセージからヘッダを除いたものがペイロードである。
本実施の形態では、ECUが送信するメッセージの種類として通常メッセージと、同期依頼メッセージと、同期完了メッセージとがある。あるECUから送信されたメッセージが他のECUにより受信されると、当該ECUにおいて、受信したメッセージの種類が前述のヘッダに格納されたCAN−IDにより判別される。以下では、同期依頼メッセージのヘッダに格納されるCAN−IDを同期依頼IDと呼び、同期完了メッセージのヘッダに格納されるCAN−IDを同期完了IDと呼ぶ。同期依頼IDおよび同期完了IDはあらかじめ定められており、全てのECU間で同期依頼IDおよび同期完了IDの情報が共有されている。本実施の形態では、いずれのECUも同一の同期依頼IDおよび同一の同期完了IDを使用する。一方、通常メッセージのヘッダには、メッセージを送信するECUに固有のCAN−ID(以下、管理対象ID)が格納される。たとえば車両の速度情報をCANから取得したいECUは、車両の速度情報をCANに出力するECUの管理対象IDがヘッダに含まれるメッセージをCANから取得する。
図1は、複数のECU1が共通して備える構成を示す図である。ECU1は、たとえばCANである通信バス2を介して互いに接続され、相互にメッセージ(フレームとも呼ばれる)を送受信する。すなわちECU1は、送信機能と受信機能を兼ね備える。メッセージの構造は後述する。
ECU1は、不図示のCPU、不図示のROM、通信部10、不揮発性メモリ18、および揮発性メモリ19を備える。ECU1は、論理的な構成として、異常検知部11と、受信したメッセージの最新性を検証する最新性検証部12と、受信したメッセージの完全性を検証するメッセージ検証部13と、メッセージを生成するメッセージ生成部14と、異常用カウンタ182及び通信用カウンタ191を管理する最新性情報管理部15と、送信するメッセージに含めるMACを生成する検証情報生成部16と、同期処理制御部17とを備える。ECU1のこれら論理的な構成は、不図示のROMに格納されるプログラムをCPUが実行することにより実現される。
通信部10は、たとえばCANインタフェースである。通信部10は、通信バス2へのメッセージの送信、および通信バス2からのメッセージの受信を行う。不揮発性メモリ18は、たとえばフラッシュメモリであり、電源が消失しても不揮発性メモリ18に格納された情報は保持される。不揮発性メモリ18には、異常検知に必要なルールが格納される異常検知関連情報181と、異常検知時に更新される異常用カウンタ182と、MACの生成に用いられる鍵183とが格納される。鍵183は、たとえば乱数であり全てのECU1において同一の値である。揮発性メモリ19は、たとえばRAMである。揮発性メモリ19には通信時に更新される通信用カウンタ191が格納される。
異常検知部11は、ECU1において発生する可能性があるメッセージの送受信に関する様々な異常を検知するハードウエアおよびソフトウエアを備え、検知した異常の内容に応じた情報を異常検知関連情報181に格納する。また異常検知部11は、検出した異常の種類に応じて異常用カウンタ182を更新する。
異常検知部11は、たとえば以下のようにして、ECU1におけるメッセージの送受信に関する異常の一つである予期せぬ電源消失を検出する。異常検知部11はECU1の起動後に不揮発性メモリ18に予期せぬ電源断を示すビットフラグを記録し、正常終了時の処理としてビットフラグを消去する。そして、次回起動時に不揮発性メモリ18に予期せぬ電源消失を示すビットフラグが保存されているか否かにより予期せぬ電源消失が発生したか否かを判断する。これ以外にも、ECU1において発生する様々な異常を、その異常の種類に応じた検出方法により検出することができる。最新性検証部12、メッセージ検証部13、メッセージ生成部14、最新性情報管理部15、検証情報生成部16、および同期処理制御部17の具体的な動作は後述する。
本実施の形態では、異常用カウンタ182、および通信用カウンタ191の更新とは、それぞれのカウンタの値をインクリメント、すなわち1増加させることとである。ただしあらかじめ乱数表を用意し、使用する乱数を順番に変更することによりカウンタの値を更新してもよい。また通信用カウンタ191の初期化とは、カウンタの値をゼロ等の初期値に戻すことである。ROMまたは不揮発性メモリ18には、カウンタ値の更新ルール、およびカウンタ値の初期化ルールが格納される。そのため、ECU1は2つのカウンタ値のどちらが新しいか、換言すると更新回数が多いのはどちらのカウンタ値なのかを判断できる。
(異常検知関連情報)
図2は、異常検知関連情報181の一例を示す図である。異常検知関連情報181は、異常コードと、異常内容と、発生状況・対象との組み合わせをたとえば表形式で1つ以上格納したものである。異常コードとは、異常の種類ごとにあらかじめ定義されたコードである。発生内容とは、発生した異常の種類である。発生状況とは、異常コードごとの発生有無である。図2は予期せぬタイミングで電源が消失した場合の例を示しており、異常コード「0x01」に対応する発生状況・対象が更新される。このとき、電源の消失による通信途絶の影響は接続されるすべてのECUに影響するため、発生状況・対象は「発生・全て」に更新される。
(異常用カウンタ)
図3は、異常用カウンタ182の一例を示す図である。異常用カウンタ182には、CAN−IDごとの異常用カウンタ値がたとえば表形式で格納される。図3に示す例では、0x2D1のCAN−IDでは2回の異常がカウントされている。異常用カウンタ182は異常検知部11と最新性情報管理部15により更新されるが、異常検知部11により検出されたエラーにより更新される範囲が異なる。たとえば異常検知部11が予期せぬ電源消失を検知した場合は、その影響は全てのECUに及ぶことが想定されるので、全てのCAN−IDについてカウンタが更新される。しかし異常検知部11が特定のCAN−IDについて連続する通信メッセージの検証の失敗を検知すると、そのCAN−IDのカウンタのみが更新される。
(通信用カウンタ)
図4は、通信用カウンタ191の一例を示す図である。通信用カウンタ191には、CAN−IDごとの通信用カウンタ値がたとえば表形式で格納される。このカウント値は当該CAN−IDをヘッダに含むメッセージを送信すると最新性情報管理部15により更新され、当該CAN−IDをヘッダに含むメッセージを受信すると同期処理制御部17により更新される。このカウント値は同期依頼メッセージを受信し所定の条件を満たすと同期処理制御部17により初期化された値が格納される。図4に示す例では、「0x2D1」のCAN−IDは「0x103F02」回の通信がカウントされている。
(メッセージの構成)
図5は、メッセージの構造を示す図である。図5(a)は通常メッセージの構造を示し、図5(b)は同期依頼メッセージの構造を示し、図5(c)は同期完了メッセージの構造を示す。図5(a)に示す通常メッセージ710は、CAN−ID711と、制御データ712と、通信用カウンタ値713と、MAC714とから構成される。CAN−ID711は、通常メッセージ710のヘッダであり、通常メッセージ710を送信するECU1の管理対象IDを表す。通信バス2に接続された他のECU1はこのCAN−ID711に基づき受信したメッセージの処理の要否を判断する。制御データ712、通信用カウンタ値713、およびMAC714は、ペイロードである。CAN−ID711、および制御データ712は、ECU1の制御部が出力したものがそのまま使用される。通信用カウンタ値713は、通常メッセージ710を送信するECU1の通信用カウンタ191に格納されるCAN−ID711に対応するカウンタの値である。たとえば、CAN−ID711が「0x2D1」であり、送信側のECU1に記憶されている通信用カウンタ191が図4に示した例と同一の場合は、通信用カウンタ値713は、図4において「0x2D1」のCAN−IDに対応するカウンタ値である「0x103F02」となる。MAC714は、通常メッセージ710を送信するECU1の検証情報生成部16により生成されたMACである。すなわちMAC714は、通常メッセージ710を送信するECU1において、CAN−ID711、制御データ712、通信用カウンタ値713、および異常用カウンタ182のCAN−ID711に対応するカウント値を「認証対象データ」とし、鍵183を「鍵」として生成されたMACである。
図5(b)に示す同期依頼メッセージ720は、同期依頼ID721と、同期対象識別情報722と、異常用カウンタ値723と、MAC724とから構成される。同期依頼ID721は、同期依頼メッセージ720のヘッダである。この同期依頼ID721はあらかじめ定められており、全てのECUが同一の同期依頼IDを使用する。同期対象識別情報722には、同期対象となるECUを特定する情報、たとえば異常が検出されたECUの管理対象IDが格納される。異常用カウンタ値723は、同期対象識別情報722において特定されるECUに対応する異常用カウンタ182のカウント値である。MAC724は、同期依頼メッセージ720を送信するECU1の検証情報生成部16により生成されたMACである。すなわちMAC724は、同期依頼ID721、同期対象識別情報722、異常用カウンタ値723、および同期依頼メッセージ720を送信するECU1に記憶されている通信用カウンタ191の同期対象識別情報722に対応するECUのカウント値を「認証対象データ」とし、鍵183を「鍵」として生成されたMACである。
図5(c)に示す同期完了メッセージ730は、同期完了ID731と、同期対象識別情報732と、通信用カウンタ値733と、MAC734とから構成される。同期完了ID731は、同期完了メッセージ730のヘッダである。この同期完了ID731はあらかじめ定められており、全てのECUが同一の同期完了ID731を使用する。同期対象識別情報732には、同期が完了したECUを特定する情報、すなわち当該同期完了メッセージ730を送信するECUの管理対象IDが格納される。通信用カウンタ値733は、同期完了メッセージ730を送信するECU1の通信用カウンタ191において当該ECU1に対応するカウンタ値であり、後述するように初期化された後のカウンタ値である。MAC734は、同期完了メッセージ730を送信するECU1の検証情報生成部16により生成されたMACである。すなわちMAC734は、同期完了ID731、同期対象識別情報732、通信用カウンタ値733、および同期完了メッセージ730を送信するECU1に記憶されている異常用カウンタ182の同期対象識別情報732に対応するECUのカウント値を「認証対象データ」とし、鍵183を「鍵」として生成されたMACである。
以下の説明では、メッセージを送信するECUを便宜的に送信側ECU1S、メッセージを受信するECUを受信側ECU1Rと呼ぶ。
(通常時の処理)
図6は、通常時の認証シーケンスを示す図である。図6において図示上方から下方に向かって時間が経過している。送信側ECU1Sの制御部が制御データの送信を決定すると、図6のシーケンスが開始される。すなわち、図5におけるCAN−ID711と制御データ712が決定された状態で図6のシーケンスが開始される。
以下に説明するステップS321〜S324は、送信側ECU1Sにおいて実行されるシーケンスである。
ステップS321では、最新性情報管理部15は異常用カウンタ182から制御部が決定したCAN−ID711に対応する異常用カウンタ値を取得する。続くステップS322では、最新性情報管理部15は通信用カウンタ191から制御部が決定したCAN−ID711に対応するカウンタ値を取得し、当該カウンタ値を更新、すなわちインクリメントすることで、通信用カウンタ値713を更新する。続くステップS323では、検証情報生成部16は、制御部が決定したCAN−ID711および制御データ712と、ステップS321で取得した異常用カウンタ値と、ステップS322で更新した通信用カウンタ値713と、を対象としてMAC714を生成する。MAC714の生成アルゴリズムとして、たとえばCMAC(Cipher-based MAC)やHMAC(Hash-based MAC)を用いることができる。
続くステップS324では、メッセージ生成部14は制御部が決定したCAN−ID711および制御データ712と、ステップS322で更新した通信用カウンタ値713と、ステップS323で生成したMAC714とを含む通常メッセージ710を生成する。続くステップS325では、通信部10はステップS324で生成された通常メッセージ710を通信バス2に送信する。
以下に説明するステップS311〜S315は、受信側ECU1Rにおいて実行されるシーケンスである。
ステップS311では、受信側ECU1Rの通信部10はステップS325で送信側ECU1Sから送信された通常メッセージ710を受信し、受信した通常メッセージ710をチェックする。すなわち受信した通常メッセージ710のヘッダであるCAN−ID711(以下、受信ヘッダID)を取得し、当該受信ヘッダIDが受信側ECU1Rにおいて取得すべきメッセージを出力する送信側ECU1Sの管理対象IDである場合はステップS312に進み、送信側ECU1Sの管理対象IDでない場合は、本処理を終了する。
ステップS312では、最新性検証部12は受信した通常メッセージ710に含まれる通信用カウンタ値713(以下「送信側カウンタ値」)と、受信側ECU1Rの通信用カウンタ191において受信ヘッダIDに対応する通信用カウンタ値(以下「受信側カウンタ値」)を取得する。そして、2つのカウンタ値の新旧を比較し、送信側カウンタ値が受信側カウンタ値よりも新しい、すなわち送信側カウンタ値が最新であると判断する場合はステップS313に進み、送信側カウンタ値と受信側カウンタ値が等しい、または送信側カウンタ値よりも受信側カウンタ値が新しいと判断する場合は本処理を終了する。ただし、送信側カウンタ値と受信側カウンタ値との差が所定の閾値を超える場合には、差が大きすぎることを理由に最新ではないと判断してもよい。なお、送信側ECU1Sが通常メッセージを作成する以前のたとえばステップS321の時点では、送信側カウンタ値と受信側カウンタ値は等しいことが期待される。そして送信側カウンタ値のみがステップS322において更新されるため、理想的な状態では両者の差は1である。
ステップS313では、メッセージ検証部13は、以下のように「認証対象データ」を作成し、受信側ECU1Rの鍵183を「鍵」として、受信したメッセージの正当性を検証するためのMAC(以下、検証用MAC)を算出する。このときに検証用MACを算出するための「認証対象データ」は、受信した通常メッセージ710に含まれるCAN−ID711および制御データ712と、ステップS312で最新性が確認された送信側カウンタ値、すなわち受信した通常メッセージ710に含まれる通信用カウンタ値713と、受信側ECU1Rの異常用カウンタ182において受信ヘッダIDに対応する異常用カウンタ値と、に基づき作成される。メッセージ検証部13は、算出した検証用MACと受信した通常メッセージに含まれるMAC値714とを比較し、一致している場合はステップS314に進み、一致していない場合は本処理を終了する。
ステップS314では、同期処理制御部17は受信した通常メッセージ710に含まれる通信用カウンタ値713を通信用カウンタ191に格納する。すなわち本処理によって、受信側ECU1Rにおいても、送信側カウンタ値に合わせて受信側カウンタ値が更新される。続くステップS315では、受信側ECU1Rの制御部は、受信した通常メッセージ710に含まれる制御データ712に基づいて所定の制御処理を実行する。
以上のシーケンス処理により、送信側ECU1Sと受信側ECU1Rとの間における通信メッセージに対して、メッセージ認証によって正しいと判断された制御データを用いた制御処理を実行できる。
(異常検出時の処理)
図7は、異常検出時の同期シーケンスを示す図である。図7において図示上方から下方に向かって時間が経過している。送信側ECU1Sの異常検知部11が異常を検知すると、異常検知部11は異常検知関連情報181の発生状況の欄を更新し、図7のシーケンスが開始される。
ステップS411では、最新性情報管理部15は異常検知関連情報181を参照して発生した異常が影響するCAN−ID(以下、異常影響CAN−ID)を判断する。続くステップS412では最新性情報管理部15は、異常用カウンタ182から異常影響CAN−IDのカウンタ値を取得し、当該カウンタの値を更新することで、異常用カウンタ値723を更新する。たとえば、検知された異常が異常コード0x1の予期せぬ電源消失であれば異常用カウンタ182に掲載される全てのCAN−IDの異常用カウンタ値をインクリメントする。また、検知された異常が異常コード0x2の連続する通信メッセージの認証失敗であれば、連続して認証が失敗した通信に係るCAN−IDの異常用カウンタ値をインクリメントする。
続くステップS413では、最新性情報管理部15は所定のルールに従って通信用カウンタ191の初期値を取得する。例えば、あらかじめ定めた値であるゼロを初期化された通信用カウンタ値とする。続くステップS414では、検証情報生成部16は同期依頼ID721と、ステップS411において判断した異常影響CAN−IDである同期対象識別情報722と、ステップS412で更新した異常用カウンタ値723と、ステップS413で取得した初期化後の通信用カウンタ値と、を対象としてMAC724を生成する。そしてメッセージ生成部14は、同期依頼ID721がヘッダに格納され、同期対象識別情報722、当該異常用カウンタ値723、および生成したMAC724がペイロードに格納された同期依頼メッセージ720を生成する。続くステップS415では、通信部10はステップS414で生成した同期依頼メッセージ720を通信バス2に送信する。続くステップS416では、同期処理制御部17はステップS412で更新された異常用カウンタ値を異常用カウンタ182に登録し、ステップS413で初期化された通信用カウンタ値を通信用カウンタ191に登録する。
送信側ECU1Sの通信部10がステップS415において送信した同期依頼メッセージ720が受信側ECU1Rの通信部10に受信されると、受信側ECU1RにおいてステップS421の処理が実行される。
ステップS421では、受信側ECU1Rの通信部10は同期依頼ID721を含んだ同期依頼メッセージ720を受信する。そして、受信した同期依頼メッセージ720から同期対象識別情報722を特定し、同期対象識別情報722に当該受信側ECU1Rの管理対象IDが含まれるか否か、換言すると当該受信側ECU1Rが同期処理を行う必要の有無を判断する。ここでは同期処理を行う必要があると判断されたとしてステップS422に進む。
ステップS422では、最新性情報管理部15は所定のルールに従って通信用カウンタ191の初期値を取得する。例えば、あらかじめ定めた値であるゼロを初期化された通信用カウンタ値とする。続くステップS423では、最新性情報管理部15は異常用カウンタ182から受信側ECU1Rの管理対象IDの異常用カウンタ値を取得する。なお、本ステップでは異常用カウンタ値を取得するのみであり、ステップS412のようなカウンタ値の更新は行わない。
続くステップS424では、最新性検証部12は受信した同期依頼メッセージ720に含まれる異常用カウンタ値723と、ステップS424で取得した異常用カウンタ182のカウンタ値とを比較する。受信した異常用カウンタ値723が異常用カウンタ182のカウンタ値よりも新しい、すなわち最新のものであることが確認できた場合は、ステップS425に進み、それ以外の場合は本処理を終了する。例えば、最新性を検証する方法として、受信した異常用カウンタ値723が異常用カウンタ182の値よりも大きい場合は最新であると判断する。また、その差分に閾値を設けて、受信した異常用カウンタ値723と異常用カウンタ182の値の差が閾値を超える場合は本処理を終了してもよい。
続くステップS425では、メッセージ検証部13は、受信した同期依頼メッセージ720に含まれてステップS424で最新性が確認された異常用カウンタ値723と、ステップS422で取得した通信用カウンタ191の初期値と、同期依頼用CAN−ID721とを「認証対象データ」として、図6のステップS313と同様に、検証用MACを生成する。そしてメッセージ検証部13は、受信した同期依頼メッセージ720に含まれるMAC724と算出した検証用MACとを比較し、一致していると判断する場合はステップS426に進み、一致していないと判断する場合は本処理を終了する。
ステップS426では、同期処理制御部17はステップS421において受信した同期依頼メッセージ720に含まれる異常用カウンタ値723を異常用カウンタ182における受信側ECU1Rの管理対象IDの異常用カウンタ値として格納し、ステップS422で取得した通信用カウンタ191の初期値を通信用カウンタ191における受信側ECU1Rの管理対象IDの通信用カウンタ値として格納する。続くステップS427では、メッセージ生成部14は同期完了を示すCAN−IDが同期完了ID731としてヘッダに格納され、当該受信側ECU1Rを示す同期対象識別情報732がペイロードに格納された同期完了メッセージ730を生成する。続くステップS428では、通信部10はステップS427において生成した同期完了メッセージ730を通信バス2に送信する。
ステップS417では、同期処理制御部17は同期完了メッセージ730を受信すると、同期シーケンスを完了する。
以上のステップにより、送信側ECU1Sは受信側ECU1Rに同期依頼メッセージ720を送信し、受信側ECU1Rは所定のルールに従って異常用カウンタ182及び通信用カウンタ191を更新し、送信側ECU1Sと受信側ECU1Rとで共有される通信用カウンタ191の値を再同期できる。
(フローチャート 依頼送信側)
図8は、図7に示す異常検出時の同期シーケンスにおける送信側ECU1Sの処理、すなわち図7のステップS411〜S417の処理を表すフローチャートである。ECU1は一定時間ごとに図8に示す処理を実行する。
ステップS501では、異常検知部11は送信側ECU1Sの異常を検知したか否かを判断する。異常検知部11は、異常を検知したと判断する場合は検出した異常に基づき異常検知関連情報181を更新してステップS502に進む。この異常検知関連情報181の更新により、異常影響CAN−IDを判別可能な情報も異常検知関連情報181に格納される。異常検知部11は、異常を検出していないと判断する場合はステップS512に進み通常処理を行う。ステップS512における通常処理は、図6を用いて説明したのでここでは説明を省略する。
ステップS502では、最新性情報管理部15は異常検知関連情報181を参照し、発生した異常が影響するCAN−ID、すなわち異常影響CAN−IDを判断する。そして異常用カウンタ182から異常影響CAN−IDのカウンタ値を取得し、当該異常用カウンタ182の値を更新する。なお、複数のCAN−IDに異常の影響が生じる場合は、それぞれの異常影響CAN−IDを対象としてステップS502以下の処理が実行される。続くステップS503では、最新性情報管理部15は異常影響CAN−IDに紐づく通信用カウンタ値の初期値を取得する。続くステップS504では、検証情報生成部16はステップS503で更新した異常用カウンタ182の値とステップS504で取得した初期化後の通信用カウンタ値と、同期依頼を示すCAN−IDとを対象としてMAC724を生成する。次にステップS505に進む。
ステップS505では、メッセージ生成部14は同期依頼を示すCAN−IDが同期依頼ID721としてヘッダに格納され、異常影響CAN−IDを示す同期対象識別情報722、当該異常用カウンタ182の値を示す異常用カウンタ値723、および生成したMAC724がペイロードに格納された同期依頼メッセージ720を生成する。続くステップS506では、通信部10はステップS505で生成した同期依頼メッセージ720を通信バス2へ送信する。続くステップS507では、同期処理制御部17はステップS502において更新された異常用カウンタ値を、異常用カウンタ182における異常影響CAN−IDのカウンタ値として登録する。さらに同期処理制御部17は、ステップS503において初期化された通信用カウンタ値を通信用カウンタ191における異常影響CAN−IDのカウンタ値として登録する。次にステップS508に進む。
ステップS508では、通信部10は受信側ECU1Rから送られてくる同期完了メッセージ730を一定時間待ち受け、ステップS509に進む。ステップS509では、通信部10は受信側ECU1Rから同期完了メッセージ730を受信したか否かを判断する。同期完了メッセージ730を受信したと判断する場合はステップS510に進み、同期完了メッセージ730を受信していないと判断する場合はステップS511に進む。
ステップS510では、同期処理制御部17は同期完了処理、すなわち異常検知関連情報181の発生状況を「なし」に更新し図8に示す処理を終了する。ステップS511では、同期処理制御部17は異常検知関連情報181において同期処理が失敗したことを示すために、異常コードの発生状況を「発生」に更新し、図8に示す処理を終了する。
以上の処理により、送信側ECU1Sは、異常を検知した場合に生成する同期依頼メッセージ720を受信側ECU1Rに送信し、受信側ECU1Rから同期完了メッセージ730を受信した場合に、同期が取れたことを確認できる。なお、異常が頻繁に発生する場合は故障の可能性もあるため、別途エラー処理に移行してもよい。
(フローチャート 同期依頼受信側)
図9は、図7に示す異常検出時の同期シーケンスにおける受信側ECU1Rの処理、すなわち図7のステップS421〜S428の処理を表すフローチャートである。ECU1が同期依頼メッセージ720を受信すると図9に示す処理が開始される。
ステップS601では、通信部10は同期依頼ID721を含んだ同期依頼メッセージ720を受信したか否かを判断し、肯定を判断する場合はステップS602に進み、否定判断をする場合はステップS613に進む。ステップS613における通常処理は、図6を用いて説明したのでここでは説明を省略する。
ステップS602では、通信部10は受信した同期依頼メッセージ720から同期対象識別情報722を取得しステップS603に進む。
ステップS603では、通信部10はステップS602で取得した同期対象識別情報722に当該受信側ECU1Rの管理対象IDが含まれるか否かを判断する。通信部10は受信側ECU1Rの管理対象IDが含まれると判断する場合はステップS604に進み、管理対象IDが含まれないと判断する場合は図9に示す処理を終了する。
ステップS604では、最新性情報管理部15は所定のルールに従って通信用カウンタ191の初期値を取得しステップS605に進む。ステップS605では、最新性情報管理部15は異常用カウンタ182から受信側ECU1Rの管理対象IDの異常用カウンタ値を取得する。
ステップS606では、最新性検証部12は受信した同期依頼メッセージ720に含まれる異常用カウンタ値723と、ステップS605で取得した異常用カウンタ182のカウンタ値とを比較し、異常用カウンタ値723の最新性を確認する。続くステップS607では、最新性検証部12はステップS606における比較の結果、同期依頼メッセージ720に含まれる異常用カウンタ値723がステップS604で取得した当該受信側ECU1Rのカウンタ値よりも新しいことが確認できた場合はステップS608に進み、それが確認できなかった場合は図9に示す処理を終了する。
ステップS608では、メッセージ検証部13はステップS607において最新性が確認された異常用カウンタ値723と、ステップS604において取得した通信用カウンタ191の初期値と、同期依頼CAN−ID722とを「認証対象データ」として検証用MACを生成する。そしてメッセージ検証部13は、受信した同期依頼メッセージ720に含まれるMAC724と算出した検証用MACとを比較してステップS609に進む。ステップS609では、メッセージ検証部13はステップS608における比較の結果、MAC724と検証用MACが一致していると判断する場合はステップS610に進み、一致していないと判断する場合は図9に示す処理を終了する。
ステップS610では、同期処理制御部17は受信した同期依頼メッセージ720に含まれる異常用カウンタ値723を異常用カウンタ182における受信側ECU1Rの管理対象IDの異常用カウンタ値として格納し、ステップS604で取得した通信用カウンタ191の初期値を通信用カウンタ191における受信側ECU1Rの管理対象IDの通信用カウンタ値として格納する。次にステップS611に進む。
ステップS611では、メッセージ生成部14は同期完了ID731がヘッダに格納され、当該受信側ECU1Rを示す同期対象識別情報732がペイロードに格納された同期完了メッセージ730を生成する。続くステップS612では、通信部10はステップS611において生成した同期完了メッセージ730を通信バス2に送信し、図9に示す処理を終了する。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)ECU1は、認証コード、すなわちMACを含むメッセージを受信する通信部10と、鍵183が格納される記憶部、すなわち不揮発性メモリ18および揮発性メモリ19と、通信部10により受信されたメッセージから少なくとも認証コードを除くデータと、メッセージの受信に応じて更新されると共にメッセージの送受信に関する異常が発生すると初期化される第1のカウンタ値、すなわち通信用カウンタ191のカウンタ値と、異常が発生すると更新される第2のカウンタ値、すなわち異常用カウンタ182のカウンタ値と、を含む検証対象データを対象として、鍵183を用いて認証コードを生成し、メッセージに含まれる認証コードと生成した認証コードとが一致するか否かによりメッセージを検証するメッセージ検証部13と、を備える。
ECU1は、通信時に更新される通信用カウンタ191と、異常時に更新される異常用カウンタ182を備える。ECU1は、同期依頼ID721が含まれない通常メッセージを受信した場合は、更新した通信用カウンタ191の値と記憶された異常用カウンタ182の値を用いてMACを生成して受信したメッセージを検証する。ECU1は、同期依頼ID721を含む同期依頼メッセージを受信した場合は、初期化した通信用カウンタ191の値と更新された異常用カウンタ182の値を用いてMACを生成して受信したメッセージを検証する。そのためECU1は、メッセージ送信元と通信用カウンタ191の同期がずれてしまった場合でも異常用カウンタ182を用いてメッセージの検証を行うことができる。通信用カウンタ191は通信が行われるたびに更新されるため、予期せぬ電源の消失や通信路のノイズにより送信側のみが更新され、送信側と受信側で通信用カウンタ191の同期がずれる恐れがある。異常用カウンタ182ではそのような恐れがない。
(2)メッセージは、第1のカウンタ値または第2のカウンタ値を含み、記憶部には、さらに第1のカウンタ値を取得するための第1のカウンタ、すなわち通信用カウンタ191と、第2のカウンタ値を取得するための第2のカウンタ、すなわち異常用カウンタ182とが格納される。通信部10により受信されたメッセージに第1のカウンタ値が含まれている場合は、メッセージ検証部は、通信部により受信されたメッセージに含まれる第1のカウンタ値と、第2のカウンタから取得した第2のカウンタ値とを用いて、認証コードを生成し、通信部10により受信されたメッセージに第2のカウンタ値が含まれている場合は、メッセージ検証部は、第1のカウンタから取得した第1のカウンタ値と、通信部10により受信されたメッセージに含まれる第2のカウンタ値とを用いて、認証コードを生成する。受信した値をMACの算出にも散るので、通信回数のカウントや異常の発生回数のカウントの、送信側ECU1Sと受信側ECU1Rとの相違を許容できる。
(3)メッセージに含まれる第1のカウンタ値または第2のカウンタ値が、記憶部に格納された第1のカウンタの値または第2のカウンタの値よりもそれぞれ新しいか否かを判断する最新性検証部12をさらに備える。メッセージ検証部13は、メッセージに含まれる第1のカウンタ値または第2のカウンタ値が記憶部に格納された第1のカウンタの値または第2のカウンタの値よりも新しいと最新性検証部12が判断すると、認証コードを生成する。そのためECU1は、受信した通常メッセージ710、および同期依頼メッセージ720の最新性を確認することができる。
(4)最新性検証部12がメッセージに含まれる第1のカウンタ値または第2のカウンタ値が記憶部に格納された第1のカウンタの値または第2のカウンタの値よりも新しいと判断すると、記憶部に格納される第1のカウンタの値または第2のカウンタの値をメッセージに含まれる第1のカウンタ値または第2のカウンタ値に更新する同期処理制御部17を備える。そのため、ECU1は、通信用カウンタ191の値、または異常用カウンタ182の値をメッセージを送信した他のECU1と同期できる。
(5)メッセージを送信する通信部10と、メッセージの送受信に関する異常を検知する異常検知部11と、メッセージの送信に応じて更新されると共に異常検知部が異常を検知すると初期化される第1のカウンタ、すなわち通信用カウンタ191、異常検知部が異常を検知すると更新される第2のカウンタ、すなわち異常用カウンタ182および鍵183が格納される記憶部、すなわち不揮発性メモリ18および揮発性メモリ19と、第1のカウンタの値および第2のカウンタの値を含む検証対象データを対象とし、鍵を用いて認証コードを生成する検証情報生成部16と、を備える。通信部10は、検証情報生成部16により生成された認証コードを含むメッセージを送信する。
そのためECU1は、異常が検知されたことにより通信用カウンタ191の同期が受信側とずれたことが想定されると、初期化した通信用カウンタ191の値と異常用カウンタ182の値を用いて認証情報を生成することができる。
(6)通信部10は、異常検知部11が異常を検知した場合は、認証コードに加えて、第2のカウンタの値を含む同期依頼メッセージ720を送信し、異常検知部11が異常を検知しない場合は、認証コードに加えて、第1のカウンタの値を含む通常メッセージ710を送信する。
そのためECU1はデータの新しさを示す情報、すなわちカウンタ値をあわせて送信し、受信側でデータの新しさを検証させることができる。送信データに含まれるMACは、このカウンタ値を含む検証対象データを対象として算出されるので、鍵183を持たない第三者がカウンタ値を書き換えても、受信側のメッセージ検証部13でエラーとなるのでデータ改竄の対策として有効である。
(7)記憶部は、揮発性メモリ19と不揮発性メモリ18とを有し、第1のカウンタ、すなわち通信用カウンタ191は揮発性メモリ19に格納され、第2のカウンタ、すなわち異常用カウンタ182は不揮発性メモリ18に格納される。
そのため意図しない電源消失が生じても異常用カウンタ182の値を保持できる。通信用カウンタ191は、ECU1が備える再同期の仕組みにより他の機器と再同期が可能なので電源消失時に値を保持する必要性が少ない。また通信用カウンタ191は異常用カウンタ182に比べて頻繁に書き換えが生じるので、書き換え回数の制限が緩やかな揮発性メモリ19に格納することにより製品寿命を長くすることができる。
(変形例1)
同期依頼メッセージ720に異常用カウンタ値723が含まれなくてもよい。この場合は、同期依頼メッセージ720を受信したECU1は、自ら異常を検知して更新した異常用カウンタ182のカウンタ値、または当該同期依頼メッセージ720を受信したことを理由として更新した異常用カウンタ182のカウンタ値を用いてMACを生成し、受信した同期依頼メッセージ720を検証する。
この変形例1によれば、次の作用効果が得られる。
(1)記憶部には、第1のカウンタ値を取得するための第1のカウンタ、すなわち通信用カウンタ191と、第2のカウンタ値を取得するための第2のカウンタ、すなわち異常用カウンタ182と、が格納される。メッセージ検証部13は、第1のカウンタから取得した第1のカウンタ値と、第2のカウンタから取得した第2のカウンタ値とを用いて、認証コードを生成する。そのため、異常用カウンタ値723を含めないことによりメッセージのサイズを縮小することができる。
(変形例2)
通常メッセージ710に通信用カウンタ値713が含まれなくてもよい。この場合は通常メッセージ710を受信したECU1は、当該通常メッセージ710を受信したことを理由として更新した通信用カウンタ191の値を用いてMACを生成し、受信した通常メッセージ710を検証する。
この変形例2によれば、次の作用効果が得られる。
(1)記憶部には、第1のカウンタ値を取得するための第1のカウンタ、すなわち通信用カウンタ191と、第2のカウンタ値を取得するための第2のカウンタ、すなわち異常用カウンタ182と、が格納される。メッセージ検証部13は、第1のカウンタから取得した第1のカウンタ値と、第2のカウンタから取得した第2のカウンタ値とを用いて、認証コードを生成する。そのため、通信用カウンタ値713を含めないことによりメッセージのサイズを縮小することができる。もしくは、通信用カウンタ値713を削減した分だけ制御データ712のデータを増加させることができる。
(変形例3)
第1の実施の形態では、同期依頼メッセージ、および同期完了メッセージに含まれる同期対象識別情報722としてCAN−IDを用いた。しかし同期対象識別情報722はCAN−IDに限定されず、それぞれの機器を識別可能な情報であればよい。たとえば別途定義されたそれぞれのECU1に固有のIDを同期対象識別情報722として用いてもよい。
(変形例4)
異常用カウンタ182、通信用カウンタ191においてCAN−IDに代えてデバイスを識別できる情報、たとえばそれぞれのECU1に固有のIDを用いてもよい。
(変形例5)
同期依頼メッセージのヘッダとして、同期対象CAN−IDごとに異なるCAN−IDを用いてもよい。たとえば制御用通信メッセージに使用されるCAN−IDを0x000〜0x3FFに制限し、それぞれに対応させる同期用通信フレームのIDを0x400〜0x7FFとしてもよい。この場合は同期対象識別情報722を同期依頼メッセージ720に含めなくてよい。
(変形例6)
ECU1は、揮発性メモリ19に格納されている通信用カウンタ191を不揮発性メモリ18に格納してもよい。また、通信用カウンタ191は起動時に不揮発性メモリ18から揮発性メモリ19に読み出され、停止時に不揮発性メモリ18に格納されてもよい。
(変形例7)
第1の実施の形態ではプログラムは不図示のROMに格納されるとしたが、プログラムは不揮発性メモリ18に格納されていてもよい。また、ECU1が不図示の入出力インタフェースをECU1を備え、必要なときに入出力インタフェースとECU1が利用可能な媒体を介して、他の装置から不揮発性メモリ18、または揮発性メモリ19にプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
(変形例8)
第1の実施の形態では、本発明を車載ネットワークに適用したが、制御系システムや情報系システムに適用してもよい。すなわち、本発明に係る情報処理装置の具体的な態様として、ECUだけでなく他の制御機器も想定される。
(第2の実施の形態)
図10〜図11を参照して、本発明に係る情報処理装置の一実施の形態であるECUの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、同期依頼メッセージ720をマスタ−機器が送信する点で、第1の実施の形態と異なる。
本実施の形態におけるECU1の構成および動作は、以下の点を除いて第1の実施の形態と同様である。すなわち、第2の実施の形態ではECU1が異常を検知すると、同期依頼メッセージ720に代えて同期通知メッセージを送信する。同期依頼メッセージ720と同期通知メッセージとの違いは、メッセージのヘッダが同期依頼IDではなく同期通知IDである点である。両者のペイロードの構成は同様である。
図10は、マスタECU1Mの構成を示す図である。マスタECU1Mは通信バス2を介して複数のECU1と接続される。マスタECU1Mの構成は、第1の実施の形態における図1のECU1から異常検知部11を削除したものである。ただしROMに格納されるプログラムの動作が第1の実施の形態におけるECU1と異なる。
(動作の概要)
図11は、第2の実施の形態における異常検出時の同期シーケンスを示す図である。図11において図示上方から下方に向かって時間が経過している。送信側ECU1Sの異常検知部11が異常を検知すると図11のシーケンスが開始される。図11は第1の実施の形態における図7に相当し、図7と同様の処理には同一のステップ番号を付す。以下では主に図7との相違点を説明する。
図11のステップS411〜S413に示す、送信側ECU1Sの最新性情報管理部15が異常用カウンタ182および通信用カウンタ191を更新する処理は第1の実施の形態と同様である。続くステップS414Aでは、送信側ECU1Sの検証情報生成部16はステップS412で更新した異常用カウンタの値とステップS413で取得した初期化後の通信用カウンタ値と、同期通知IDとを対象としてMACを生成する。そして送信側ECU1Sのメッセージ生成部14は、同期通知IDがヘッダに格納され、当該異常用カウンタ182、および生成したMACがペイロードに格納された同期通知メッセージを生成する。続くステップS415Aでは、送信側ECU1Sの通信部10はステップS414Aで生成した同期通知メッセージを通信バス2に送信する。
送信側ECU1Sの通信部10がステップS415Aにおいて送信した同期通知メッセージがマスタECU1Mの通信部10に受信されると、マスタECU1MにおいてステップS421Aの処理が実行される。ステップS421Aでは、通信部10が受信したメッセージのヘッダが同期通知IDであるか否かを判断する。ここではヘッダが同期通知IDであるとしてステップS422に進む。
ステップS422における通信用カウンタの初期値の取得、ステップS423における異常用カウンタ182のカウント値の取得、ステップS424における最新性情報の検証、およびステップS425におけるMACの検証は、マスタECU1Mにおいて、第1の実施の形態と同様の処理が行われる。ステップS425においてMACの検証に成功すると実行されるステップS414Bでは、マスタECU1Mの検証情報生成部16は、同期依頼ID721と、受信した同期通知メッセージに含まれる同期対象識別情報722と、ステップS423で更新した異常用カウンタ値723と、ステップS422で取得した初期化後の通信用カウンタ値と、を対象としてMAC724を生成する。なお、ステップS423で更新した異常用カウンタ値は、受信した同期通知メッセージに含まれる異常用カウンタ値と同一である。そしてマスタECU1Mのメッセージ生成部14は、同期依頼ID721がヘッダに格納され、同期対象識別情報722、当該異常用カウンタ値723、および生成したMAC724がペイロードに格納された同期依頼メッセージ720を生成する。
続くステップS415では、通信部10はステップS414Bで生成した同期依頼メッセージ720を通信バス2に送信する。同期依頼メッセージ720を受信した受信側ECU1Rの動作は第1の実施の形態と同様なので説明を省略する。
上述した第2の実施の形態によれば、次の作用効果が得られる。
(1)マスタECU1Mの通信部10は認証コードを含むメッセージを受信し、通信部10により受信されたメッセージから少なくとも認証コードを除くデータと、メッセージの受信に応じて更新されると共にメッセージの送受信に関する異常が発生すると初期化される第1のカウンタ値と、異常が発生すると更新される第2のカウンタ値と、を含む検証対象データを対象として、鍵を用いて認証コードを生成し、メッセージに含まれる認証コードと生成した認証コードとが一致するか否かによりメッセージを検証するメッセージ検証部13を備える。異常検知部11は、メッセージ検証部13が、メッセージに含まれる認証コードと生成した認証コードとが一致すると判断すると異常を検知したと判断する。
そのため、マスタECU1Mは同期指示メッセージを検証することで、ECU1が異常を検出した際と同様に同期依頼メッセージを送信することができる。またマスタECU1Mは、ECU1から実質的に異常検知部11を除いた構成にすることができる。
(第2の実施の形態の変形例)
マスタECU1Mは2つのネットワークにまたがるゲートウェー機器として配置されてもよい。この場合は、第1のネットワークから同期通知メッセージを受信した場合に第2のネットワークへ同期依頼メッセージ720を送信し、第2のネットワークから同期通知メッセージを受信した場合に第1のネットワークへ同期依頼メッセージ720を送信する。さらに、同期依頼IDと同期指示IDが同一に設定されてもよい。さらに、受信した同期通知メッセージに含まれる同期対象識別情報732を書き換えて、同期依頼メッセージ720の同期対象識別情報722としてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
1 … ECU
2 … 通信バス
10 … 通信部
11 … 異常検知部
12 … 最新性検証部
13 … メッセージ検証部
14 … メッセージ生成部
15 … 最新性情報管理部
16 … 検証情報生成部
17 … 同期処理制御部
18 … 不揮発性メモリ
19 … 揮発性メモリ
181 … 異常検知関連情報
182 … 異常用カウンタ
183 … 鍵
191 … 通信用カウンタ

Claims (1)

  1. ネットワークにより接続される、第1の演算装置、第2の演算装置、および第3の演算装置を含む認証システムであって、
    前記第1の演算装置は、
    メッセージを送信する第1通信部と、
    前記メッセージの送受信に関する異常を検知する異常検知部と、
    前記メッセージの送信に応じて更新されると共に前記異常検知部が前記異常を検知すると初期化される第1のカウンタ、前記異常検知部が前記異常を検知すると更新される第2のカウンタ、および鍵が格納される第1記憶部と、
    前記第1のカウンタの値および前記第2のカウンタの値を含む検証対象データを対象とし、前記鍵を用いて認証コードを生成する検証情報生成部と、を備え、
    前記第1通信部は、前記異常検知部が異常を検知すると、前記認証コード、前記第2のカウンタの値、および第1の所定の識別子を含むメッセージである同期通知メッセージを送信し、前記異常検知部が異常を検知しないと、前記認証コード、前記第1のカウンタの値、および第2の所定の識別子を含むメッセージを送信し、
    前記第2の演算装置は、
    前記メッセージを受信する第2通信部と、
    前記鍵が格納される第2記憶部と、
    前記第2通信部により受信された前記メッセージから少なくとも前記認証コードを除くデータと、前記メッセージの受信に応じて更新されると共に第3の所定の識別子を含むメッセージである同期依頼メッセージを受信すると初期化される第3のカウンタ値と、前記同期依頼メッセージを受信すると更新される第4のカウンタ値と、を含む検証対象データを対象として、前記鍵を用いて認証コードを生成し、前記メッセージに含まれる前記認証コードと前記生成した認証コードとが一致するか否かにより前記メッセージを検証する第2装置メッセージ検証部と、を備え、
    前記第3の演算装置は、
    前記同期通知メッセージを受信し前記同期依頼メッセージを送信する第3通信部と、
    前記メッセージの送信および受信を行う第3通信部と、
    前記第3通信部が前記同期通知メッセージを受信すると、初期化された第5のカウンタ値と、前記同期通知メッセージを受信するたびに更新される第6のカウンタ値を含む検証対象データを対象として、前記鍵を用いて認証コードを生成し、前記同期通知メッセージに含まれる前記認証コードと前記生成した認証コードとが一致すると、前記第1の演算装置が異常を検知したと判断して前記第3通信部から前記同期依頼メッセージを送信させる第3装置メッセージ検証部とを備える認証システム。
JP2016089032A 2016-04-27 2016-04-27 演算装置、認証システム、認証方法 Active JP6814549B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016089032A JP6814549B2 (ja) 2016-04-27 2016-04-27 演算装置、認証システム、認証方法
US16/096,095 US20190123908A1 (en) 2016-04-27 2017-04-06 Arithmetic Device, Authentication System, and Authentication Method
CN201780025823.1A CN109075977A (zh) 2016-04-27 2017-04-06 运算装置、认证系统、认证方法
EP17789212.2A EP3451577B1 (en) 2016-04-27 2017-04-06 Computing device, authentication system, and authentication method
PCT/JP2017/014369 WO2017187924A1 (ja) 2016-04-27 2017-04-06 演算装置、認証システム、認証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016089032A JP6814549B2 (ja) 2016-04-27 2016-04-27 演算装置、認証システム、認証方法

Publications (2)

Publication Number Publication Date
JP2017200040A JP2017200040A (ja) 2017-11-02
JP6814549B2 true JP6814549B2 (ja) 2021-01-20

Family

ID=60161622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016089032A Active JP6814549B2 (ja) 2016-04-27 2016-04-27 演算装置、認証システム、認証方法

Country Status (5)

Country Link
US (1) US20190123908A1 (ja)
EP (1) EP3451577B1 (ja)
JP (1) JP6814549B2 (ja)
CN (1) CN109075977A (ja)
WO (1) WO2017187924A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6455939B2 (ja) * 2016-09-27 2019-01-23 株式会社デンソーテン 通信方法
KR20180119201A (ko) * 2017-04-24 2018-11-02 삼성전자주식회사 인증 시스템을 위한 전자 장치
US10581609B2 (en) * 2017-10-23 2020-03-03 Nxp B.V. Log message authentication with replay protection
US11895737B2 (en) * 2019-05-02 2024-02-06 Samsung Electronics Co., Ltd. Method and apparatus for supporting rapid cell activation in connection resumption procedure in next generation mobile communication system
WO2020246145A1 (ja) * 2019-06-04 2020-12-10 株式会社デンソー 電子制御装置および通信システム
US11411823B2 (en) * 2019-09-20 2022-08-09 Sonatus, Inc. System, method, and apparatus to support mixed network communications on a vehicle
JP7156257B2 (ja) * 2019-11-21 2022-10-19 トヨタ自動車株式会社 車両通信装置、通信異常の判定方法及びプログラム
DE102020118960A1 (de) * 2020-07-17 2022-01-20 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und Wiedergabeeinheit zur Wiedergabe von gesicherten Nachrichten
JP7380530B2 (ja) * 2020-11-13 2023-11-15 トヨタ自動車株式会社 車両通信システム、通信方法及び通信プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3491358B2 (ja) * 1994-12-23 2004-01-26 株式会社デンソー 電源遮断検出装置
JPH10290223A (ja) * 1997-04-17 1998-10-27 Matsushita Electric Ind Co Ltd データ送受信装置
US6690289B1 (en) * 1997-06-12 2004-02-10 Microsoft Corporation Message formatting, authentication, and error detection in home control systems
US7725709B2 (en) * 2005-09-09 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Methods for secure and bandwidth efficient cryptographic synchronization
JP2012169829A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 通信システムおよび通信方法
JP5770602B2 (ja) * 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
JP6569087B2 (ja) * 2014-05-29 2019-09-04 パナソニックIpマネジメント株式会社 受信装置および受信方法
CN104639328B (zh) * 2015-01-29 2018-04-13 华南理工大学 一种goose报文认证方法及系统
CN104767618B (zh) * 2015-04-03 2018-02-09 清华大学 一种基于广播的can总线认证方法及系统
JP6376073B2 (ja) * 2015-08-07 2018-08-22 株式会社デンソー 通信システム、カウント値同期方法、及びプログラム
WO2017026361A1 (ja) * 2015-08-07 2017-02-16 株式会社デンソー 通信システム、管理ノード、通常ノード、カウンタ同期方法、プログラム、記録媒体

Also Published As

Publication number Publication date
EP3451577A4 (en) 2019-12-18
WO2017187924A1 (ja) 2017-11-02
US20190123908A1 (en) 2019-04-25
JP2017200040A (ja) 2017-11-02
EP3451577A1 (en) 2019-03-06
CN109075977A (zh) 2018-12-21
EP3451577B1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
JP6814549B2 (ja) 演算装置、認証システム、認証方法
US20230028255A1 (en) Network timing synchronization
CN104717201B (zh) 网络装置以及网络系统
US10735435B2 (en) Communication system, management node, normal node, counter synchronization method, and storage medium
JP6488702B2 (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
US10050983B2 (en) Communication system, receiving apparatus, receiving method, and computer program product
US10425231B2 (en) Information processing apparatus and method for authenticating message
WO2018017566A1 (en) Hash-chain based sender identification scheme
JP2014138380A (ja) 車両不正状態検出方法、車載システムにおける制御方法、およびシステム
JP2017038143A (ja) 通信システム、送信ノード、及び受信ノード
US11558404B2 (en) On-board communication system, switching device, verification method, and verification program
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
JP2017121091A (ja) Ecu、及び車用ネットワーク装置
US10749878B2 (en) Communication system, count value synchronization method, and count value synchronization program product
CN108352991B (zh) 信息处理装置以及不正当消息检测方法
JP6730578B2 (ja) 監視方法および監視システム
JP2018182767A (ja) Ecu、ネットワーク装置、及び車用ネットワーク装置
US11888645B2 (en) Information processing device and management device
JP6615721B2 (ja) 通信システム、受信装置、受信方法およびプログラム
US10785034B2 (en) Implementation unit, implementation unit verification method, and computer-readable recording medium
WO2023095394A1 (ja) 情報処理装置および鍵管理装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170126

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200908

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201221

R150 Certificate of patent or registration of utility model

Ref document number: 6814549

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250