JP2018160888A - 更新処理方法、車載ネットワークシステムおよび電子制御ユニット - Google Patents

更新処理方法、車載ネットワークシステムおよび電子制御ユニット Download PDF

Info

Publication number
JP2018160888A
JP2018160888A JP2018006869A JP2018006869A JP2018160888A JP 2018160888 A JP2018160888 A JP 2018160888A JP 2018006869 A JP2018006869 A JP 2018006869A JP 2018006869 A JP2018006869 A JP 2018006869A JP 2018160888 A JP2018160888 A JP 2018160888A
Authority
JP
Japan
Prior art keywords
electronic control
mac
key
vehicle
update
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.)
Pending
Application number
JP2018006869A
Other languages
English (en)
Inventor
勇二 海上
Yuji Kaijo
勇二 海上
崇光 佐々木
Takamitsu Sasaki
崇光 佐々木
芳賀 智之
Tomoyuki Haga
智之 芳賀
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 Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to PCT/JP2018/006140 priority Critical patent/WO2018173603A1/ja
Publication of JP2018160888A publication Critical patent/JP2018160888A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】車載ネットワークシステムにおいて用いられる鍵の更新を効率よく確実に実施することができる更新処理方法車載ネットワークシステム及び電子制御ユニットを提供する。【解決手段】複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、複数の電子制御ユニットの少なくとも一つから送信される、車両の走行に関する情報である走行情報を取得する取得ステップS10と、走行情報により得られる車両の走行に関する状態が所定状態であることを条件としてS11、車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する鍵更新ステップS12とを含む。【選択図】図15

Description

本開示は、更新処理方法、車載ネットワークシステムおよび電子制御ユニットに関する。
近年、自動車の中のシステムには、電子制御ユニット(以下、ECU:Engine Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークを車載ネットワークと呼ぶ。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Controller Area Network(以下、CAN)という規格がある。
CANでは、通信線として用いられるバス(bus)は2本のケーブル(ツイストペア・ケーブル)で構成され、このバスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信するノード(以下、送信ノードともいう)は2本のケーブルに電圧をかけ、それぞれのケーブル間で発生させた電位差の有無に応じたレセシブと呼ばれる“1”の値とドミナントと呼ばれる“0”の値とを送信することで、フレームのデータを2進数に変換したバイナリデータで送信する。
なお、複数の送信ノードが全く同一のタイミングで、レセシブとドミナントとを送信した場合は、ドミナントが優先されて送信される。フレームを受信するノード(以下、受信ノードともいう)は、受け取ったフレームのフォーマットに異常がある場合には、例えば連続する6bitのドミナントで始まるエラーフレームと呼ばれるフレームを送信する。受信ノードは、エラーフレームを送信することで、送信ノードおよび他の受信ノードにフレームの異常を通知することができる。
また、CANでは、送信先または送信元を指す識別子は存在しない。送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付けて送信し、各受信ノードは予め決められたメッセージIDを含むフレームのみ受信する。
また、CANでは、CSMA/CR(Carrier Sense Multiple Access/Collision Resolution)方式が採用されており、複数ノードの同時送信時にはメッセージIDによる調停が行われ、メッセージIDの値が小さいフレームが優先的に送信される。
一方、CANでは、不正なフレームが送信されるようなケースを想定したセキュリティ機能が存在しない。そのため、不正なノードが勝手にCANのバスに接続し、不正なフレームを送信することで、当該CANが搭載された自動車の車体を不正にコントロールすることが可能である。
それに対して、例えば特許文献1では、CAN通信に用いられるデータフレームおけるデータフィールドにメッセージ認証コード(以降、MAC:Message Authentication Code)を埋め込んで送信する方法が開示されている。そして、通常のデータフレームに続けて、当該データフレームおけるデータフィールドにMACを埋め込んだデータフレームを送信することで、不正なフレームの送信を防止することができる。
特開2013−98719号公報
RFC2104 HMAC: Keyed-Hashing for Message Authentication
ところで、CAN通信に用いられるフレームには、MACを付加するためのフィールドは存在しない。さらにCAN通信に用いられるデータフレームにおけるデータフィールドは8バイトと少なく、データフィールドに埋め込まれるMACのサイズでは、十分な攻撃の耐性を確保することが難しい。
そこで、データフィールドに埋め込まれるMACに対する総当り攻撃の耐性を高めるために、MACの生成に利用される鍵(以下、MAC鍵ともいう)を定期的に更新することが望ましいと考えられる。
しかしながら、定期的に鍵の更新を行うとすると、自動車の動作にかかわらず鍵を更新することになる。つまり、定期的に鍵の更新を行う場合、CANにおいてフレームがほとんど送受信されていなくても鍵が更新されることから、車載ネットワークシステムにとって鍵の更新処理が負荷になることがある。
本開示は、上述の事情を鑑みてなされたもので、車載ネットワークシステムにおいて用いられる鍵の更新を効率よく確実に実施することができる更新処理方法等を提供することを目的とする。
本発明の一態様に係る更新処理方法は、複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、前記複数の電子制御ユニットの少なくとも一つから送信される、前記車両の走行に関する情報である走行情報を取得する取得ステップと、前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する鍵更新ステップとを含む。
本開示の更新処理方法等は、車載ネットワークシステムにおいて用いられる鍵の更新を効率よく確実に実施することができる。これにより、安全な状態の車載ネットワークシステムを維持することができる。
実施の形態における車載ネットワークシステムの構成を示すブロック図である。 図1に示す鍵更新管理装置の構成の一例を示すブロック図である。 実施の形態における車載ネットワークシステムの全体構成の一例を示す図である。 CANプロトコルのデータフレームのフォーマットを示す図である。 CAN通信におけるMACの送信方法の一例を示す図である。 イーサネット(登録商標)通信におけるMACの送信方法の一例を示す図である。 実施の形態におけるECUの機能構成を示すブロック図である。 実施の形態における受信IDリストの一例を示す図である。 実施の形態における判定ルールの一例を示す図である。 実施の形態における判定ルールの一例を示す図である。 実施の形態におけるエンジンに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 実施の形態におけるブレーキに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 実施の形態におけるドア開閉センサに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 実施の形態におけるウィンドウ開閉センサに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 実施の形態におけるGPSセンサに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 実施の形態における更新処理方法を示すフローチャートである。 図15に示すステップS11の詳細処理を示すフローチャートである。 図15に示すステップS12の詳細処理を示すフローチャートの一例である。 図15に示すステップS12の詳細処理を示すフローチャートの別の一例である。
本開示の一態様の更新処理方法は、複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、前記複数の電子制御ユニットの少なくとも一つから送信される、前記車両の走行に関する情報である走行情報を取得する取得ステップと、前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する鍵更新ステップとを含む。
これにより、MAC鍵の鍵更新処理、および、カウンタのリセット処理を含む更新処理を、走行距離および/または車の状態に応じて実行することで、更新処理を車の動作に応じて、適切な頻度で実行できる。つまり、ECUにおける鍵の更新処理が効率よく適切に実行できる。それにより、車載ネットワークシステム全体として、安全な状態を維持することができる。
また、前記所定状態は、前記走行情報により得られる前記車両の走行距離であって前記MAC鍵の前回の更新時からの前記車両の走行距離が閾値を超えた状態であってもよい。
また、前記所定状態は、前記MAC鍵の前回の更新時から所定時間経過後、かつ、前記走行情報により得られる前記車両の状態が駐車中である状態であってもよい。
また、前記鍵更新ステップでは、前記複数の電子制御ユニットのすべてが、前記条件を満たした同一のタイミングで、前記MAC鍵を用いて新たなMAC鍵を生成することにより、前記MAC鍵を前記新たなMAC鍵に更新してもよい。
また、前記鍵更新ステップでは、前記複数の電子制御ユニットの一が、前記条件を満たしたときに、前記MAC鍵を用いて新たなMAC鍵を生成する生成ステップと、前記一の電子制御ユニットが生成した前記新たなMAC鍵を、前記一の電子制御ユニット以外の前記複数の電子制御ユニットのすべてに配布することにより、前記MAC鍵を前記新たなMAC鍵に更新する配布ステップとを含んでもよい。
また、前記車載ネットワークは、前記複数の電子制御ユニットがバスに接続されたCAN(Controller Area Network)であり、前記更新処理方法は、前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、CANプロトコルに従ってバスを介して、前記データとしてデータフレーム、および、前記データに付加されるメッセージ認証コードとして前記データフレームのデータフィールドを前記メッセージ認証コードとした検証用データフレームの送信を行う送信ステップと、前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信されたデータフレーム、および、検証用データフレームを、バスを介して受信する受信ステップとを含んでもよい。
また、前記送信ステップでは、前記第1電子制御ユニットが、前記データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、前記受信ステップでは、前記第2電子制御ユニットが、前記検証用データフレームを受信して得た前記メッセージ認証コードと、受信した前記データフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含んでもよい。
また、前記車載ネットワークシステムは、前記複数の電子制御ユニットがLAN(Local Area Network)により接続されたネットワークであり、前記更新処理方法は、前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、前記データに付加される前記メッセージ認証コードとしてペイロード部分に前記メッセージ認証コードを含めて、前記データの送信を行う送信ステップと、前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信された前記データを受信する受信ステップとを含んでてもよい。
また、前記送信ステップでは、さらに、前記第1電子制御ユニットが、前記データに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたデータの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、前記受信ステップでは、前記第2電子制御ユニットが、ペイロード部分に前記メッセージ認証コードが含まれた前記データを受信して得た前記メッセージ認証コードと、受信した当該データに付加された送信元アドレスおよぎ送信先アドレスと受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含んでもよい。
また、前記更新処理方法は、さらに、前記条件として前記送信カウンタおよび前記受信カウンタをリセットするリセットステップを含むとしてもよい。
また、前記複数の電子制御ユニットは、前記車両の制御用途により分類された複数のグループの一に属し、前記複数のグループのそれぞれにおける前記所定状態は、前記複数のグループごとに定められてもよい。
また、本開示の一態様の車載ネットワークシステムは、複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムであって、前記複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得する取得部と、前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する更新処理部とを備える。
また、本開示の一態様の電子制御ユニットは、車両に搭載される車載ネットワークシステムに接続される電子制御ユニットであって、CPUとメモリとを有し、前記CPUは、複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得して前記メモリに格納し、前記CPUは、前記メモリに格納された前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する。
以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、任意で含まれる構成要素として説明される。
(実施の形態)
以下では、図面を参照しながら、実施の形態における更新処理方法等の説明を行う。
[1.システムの構成]
図1は、本実施の形態における車載ネットワークシステム100の構成を示すブロック図である。図2は、図1に示す鍵更新管理装置の構成の一例を示すブロック図である。
本実施の形態における車載ネットワークシステム100は、複数の電子制御ユニット(ECU)を有し、車両に搭載される。図1において、車載ネットワークシステム100は、鍵更新管理装置10と、複数のECUとを備える。複数のECU間、複数のECUおよび鍵更新管理装置の間は、ネットワークで接続されている。ネットワークは、上記のCANであってもよいし、Ethernet(登録商標)等のLANであってもよい。
鍵更新管理装置10は、車両の動作に応じて適切な頻度で鍵更新処理を行う。鍵更新管理装置10は、例えば、ゲートウェイであってもよいし、複数のECUのうちの一つであってもよい。鍵更新管理装置10は、図2に示すように、取得部11と鍵更新部12と鍵更新処理判定部13とを備える。
取得部11は、複数の電子制御ユニットの少なくとも一つから送信される車両の走行に関する情報である走行情報を取得する。走行情報により車両の走行距離等が得られる。
鍵更新処理判定部13は、鍵更新部12が鍵更新処理を実行する条件を満たしたか否かを判定する。
鍵更新部12は、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として、車載ネットワークシステム100において授受されるデータに付加されるMACであって改ざん防止のコードであるMACの生成に利用される鍵であるMAC鍵を更新する。なお、鍵更新部12は、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として送信カウンタおよび受信カウンタをリセットするとしてもよい。
鍵更新部12は、鍵更新処理を実行する条件を満たしたタイミングを通知することで、複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。また、鍵更新部12は、鍵更新処理を実行する条件を満たしたタイミングにおいて生成した新たなMAC鍵を複数のECUすべてに配布することにより、複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。なお、鍵更新処理を実行する条件を満たしたタイミングを通知することは必須ではなく、CANであれば複数のECUすべてがそれぞれ独立にタイミングを判定しても、複数のECUすべてが同一のタイミングで更新することになるからである。
以下、本実施の形態における車載ネットワークシステム100の全体構成の一例について説明する。
[1.1 車載ネットワークシステム100aの全体構成]
図3は、本実施の形態における車載ネットワークシステム100aの全体構成の一例を示す図である。車載ネットワークシステム100aは、上記の車載ネットワークシステム100の一例である。複数の電子制御ユニットであるECU111、ECU121、ECU131、ECU141、ECU151、ECU161、ECU171、ECU181、ECU182、ECU184、ECU191、および、ゲートウェイ101が車載ネットワークで接続されている。ここで、車載ネットワークは、CANであってもよいし、Ethernet(登録商標)であってもよいし、CANとEthernetが混在していてもよい。
車載ネットワークには、例えば、エンジン110、トランスミッション120、および、図示しないモータ、燃料、電池の制御に関連する駆動系のECUが接続されている。図3に示すように、車載ネットワークには、エンジン110用のECU111およびトランスミッション120用のECU121が接続されている。
また、車載ネットワークには、ブレーキ130およびステアリング140などの曲がる、止まるに関連するシャーシ系ECUが接続されている。図3に示すように、車載ネットワークには、ブレーキ130用のECU131ステアリング140用のECU141が接続されている。
また、車載ネットワークには、自動ブレーキ150、車線維持装置160、および、図示しない車間距離機能、衝突防止機能、エアバッグなどの安全快適機能系ECUが接続されている。図3に示すように、車載ネットワークには、自動ブレーキ150用のECU151と、車線維持装置160用のECU161とが接続されている。
また、車載ネットワークには、車車間通信装置170などに関連する通信系ECUが接続されている。図3に示すように、車載ネットワークには、車車間通信装置170用のECU171が接続されている。車車間通信装置170は、他の車両からコンテンツデータを取得する。ECU171は、取得したコンテンツデータを用いて自動運転などの動作処理を行う。
また、車載ネットワークには、ヘッドユニット180などインフォテイメント系ECUが接続されている。図3に示すように、車載ネットワークには、ヘッドユニット180用のECU181が接続されている。なお、ヘッドユニット180用のECU181がなく、ヘッドユニット180がECU181を介さず直接車載ネットワークに接続されていてもよい。
また、車載ネットワークには、高度道路交通システムであるITS(Intelligent Transport Systems)装置190用のECU191が接続されている。図3に示すように、車載ネットワークには、ITS装置190用のECU191が接続されている。ITS装置190は、道路情報だけでなく、道路および建物などの静的な地物を載せた地図データなどを外部のサーバから受信する。またITS装置190は、センサ情報およびGPS(Global Positioning Syastem)による位置情報、カメラの画像情報などを外部のサーバに送信することで、外部のサーバが道路状況などの確認ができる。
また、車載ネットワークには、ウィンドウ開閉センサ183、ドア開閉センサ185およびGPSセンサ187などが接続されている。図3に示すように、車載ネットワークには、ウィンドウ開閉センサ183用のECU182と、ドア開閉センサ185用のECU184と、GPSセンサ187用のECU186とが接続されている。なお、図示しない各種センサおよびカメラの画像情報なども車載ネットワークには接続されている。
このような複数の電子制御ユニットは、接続されたものの状態等を取得し、定期的に取得した状態等を表すフレームを車載ネットワークに送信する。
[1.2 データフレームフォーマット]
図4は、CANプロトコルのデータフレームのフォーマットを示す図である。ここではCANプロトコルにおける標準IDフォーマットにおけるデータフレームを示している。
図4に示すように、データフレームは、Start Of Frame(以下、SOF)と、IDフィールド、Remote Transimission Request(以下、RTR)、Identifier Extension(以下、IDE)、予約ビット(r)、データレングスコード(以下、DLC)、データフィールド、Cycric Redundancy Check(以下、CRC)シーケンス、CRCデリミタ(図中、左のDEL)と、Acknowledgement(以下、ACK)スロットと、ACKデリミタ(図中、右のDEL)と、エンドオブフレーム(以下、EOF)とから構成される。
SOFは、1ビットのドミナントである。バスがアイドルのときはレセシブになっている。送信ノードはバスをレセシブからドミナントへ変更することでフレームの送信開始を通知する。
IDは、11ビット長の値で、データフレームの種類を示す。ここでいうデータフレームの種類とは、例えばデータの内容またはデータフレームの送信元である送信ノードを指す。また、IDは、同一ネットワーク上で複数のノードが同時にデータフレームの送信を開始した場合の通信調停にも用いられる。より具体的には、IDがより小さい値を持つデータフレームはより優先されて送信される。
RTRは、1ビットのドミナントで、データフレームであることを示す。
IDEおよびrは、それぞれ1ビットのドミナントである。
DLCは、44ビット長の値で、続くデータフィールドの長さを示す。
データフィールドは、最大64ビット長で送信されるデータの部分であり、データフレームのペイロードである。長さは8ビット単位で調整可能である。送信されるデータの部分への割り当てに関する仕様は、車種および製造者の少なくとも一方に依存する。
CRCシーケンスは、15ビット長で、SOF、IDフィールド、コントロールフィールド、および、データフィールドの送信値より算出される値を示す。受信ノードは、各データフレームについてSOF、IDフィールド、コントロールフィールド、および、データフィールドの受信値から算出した結果をCRCシーケンスの値と比較することで異常の有無を判断する。
CRCデリミタは、1ビットのレセシブで、CRCシーケンスの終了を表す区切り記号である。
ACKスロットは、1ビット長であり、送信ノードはこの部分でレセシブを送信する。受信ノードはCRCシーケンスまで正常に受信ができていれば、この部分でドミナントを送信する。CANの規格では、同時に送信されたドミナントとレセシブとでは上述のとおりドミナントが優先される。そのため、通信が正常に行われている車載ネットワークシステムでは、ACKスロットの送信中、バスはドミナントの状態である。
ACKデリミタは、1ビット長さのレセシブで、ACKスロットの終了を表す区切り記号である。
EOFは、7ビット長さのレセシブで、データフレームの終了を示す。
[1.3 メッセージ認証コード(MAC)の送信]
図5は、CAN通信におけるMACの送信方法の一例を示す図である。図5の(a)には、CAN通信に用いられるデータフレームが示され、図4と同一となっている。図5の(b)には、MACの送信に用いられる検証用データフレームが示されている。
図5の(b)に示すように、MACは、図5の(a)に示す通常のデータフレームのデータフィールドをMACとした検証用データフレームにより送信される。つまり、通常のデータフレームに続けて、当該データフレームおけるデータフィールドをMACとした検証用データフレームを送信する。より具体的には、複数の電子制御ユニットのうちの一である第1電子制御ユニットが、CANプロトコルに従ってバスを介して、データとしてデータフレーム、および、データに付加されるMACとしてデータフレームのデータフィールドをMACとした検証用データフレームの送信を行う。
なお、詳細は後述するが、第1電子制御ユニットが、データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して、MAC鍵を用いてMACを生成する。また、複数の電子制御ユニットのうちの第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、第1電子制御ユニットにより送信されたデータフレーム、および、検証用データフレームを、バスを介して受信する。そして、第2電子制御ユニットが、検証用データフレームを受信して得たMACと、受信したデータフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、MAC鍵を用いて生成したMACとの同一性を検証する。
なお、検証用フレームは、データフレームに付加されるMACの一例であり、これに限られない。データフレームに付加されるMACとしては、通常のデータフレームにMACを追加する方法であってもよい。例えばデータフィールドの8バイトのうち、4バイトのみデータの送信用として用いられる場合、データフィールドの残りの4バイトに、MAC値の16バイトのうち、上位または下位の4バイトのみを付加される場合が考えられる。また、データフィールドの残りの4バイトに、MAC値の16バイトのうち、1バイトのみを付加する場合も考えられる。
図6は、イーサネット(登録商標)通信におけるMACの送信方法の一例を示す図である。図6の(a)には、イーサネット(登録商標)通信において送信される情報の固まりであるMACフレーム(Media Access Control Frame)が示されている。MACフレーム(以下、フレームともいう)は、イーサネット(登録商標)通信において送信すべき通信データが一定の長さ以下に分割されたデータと、ヘッダ、送信元アドレスおよび送信先アドレス等とを含む、決められた形式による情報の固まりである。図6の(b)には、MACの送信に用いられるMACフレームの一例が示されている。つまり、MACフレームをAESなどの暗号方式で鍵(MAC鍵と呼ぶ)を用いて暗号化したものをメッセージ認証コード(つまりMAC)としてペイロード部分に含めてMACフレームを送信することでMACを送信する。より具体的には、複数の電子制御ユニットのうちの一である第1電子制御ユニットが、MACフレームに付加されるMACとしてペイロード部分にMACを含めて、MACフレームの送信を行う。
なお、第1電子制御ユニットが、MACフレームに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたMACフレームの送信回数とを少なくとも結合した値に対してMAC鍵を用いMACを生成する。また、複数の電子制御ユニットのうちの第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、第1電子制御ユニットにより送信されたMACフレームを受信する。そして、第2電子制御ユニットが、ペイロード部分にMACが含まれたフレームを受信して得たMACと、受信した当該MACフレームに付加された送信元アドレスおよび送信先アドレスと受信カウンタによりカウントされたMACフレームの受信回数とを少なくとも結合した値に対して、MAC鍵を用いて生成したMACとの同一性を検証する。
なお、図6の(b)にはMACフレームのペイロードにおけるデータ部分を暗号化した場合の例が示されているが、データ部分を暗号化することは必須ではない。また、MACフレームに、その種類等を識別するためのIDが付加または含まれる場合には、MACフレームに付加された送信元アドレスおよび送信先アドレスに代えて、MACフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して、MAC鍵を用いてMACを生成してもよいのはいうまでもない。
[1.4 ECU111の構成]
図3に示す車載ネットワークに接続されるECU111が、鍵更新管理装置10として機能する場合について、以下説明する。
図7は、本実施の形態におけるECU111の機能構成を示すブロック図である。
ECU111は、車両に搭載される車載ネットワークに接続される電子制御ユニットであって、CPU(Central Processing Unit)とメモリとを有する。ECU111は、図7に示すように、フレーム送受信部1111と、フレーム解釈部1112と、受信ID判断部1113と、受信IDリスト保持部1114と、フレーム処理部1115と、車体状態保持部1116と、判定ルール保持部1117と、タイマー1118と、鍵更新判定部1119と、更新処理部1120と、MAC鍵保持部1121と、カウンタ保持部1122と、MAC生成部1123と、フレーム生成部1124と、データ取得部1125とを備える。なお、車体状態保持部1116、判定ルール保持部1117、タイマー1118および鍵更新判定部は、鍵更新処理判定部13の一例である鍵更新処理判定部13aを構成する。また、更新処理部1120、MAC鍵保持部1121、カウンタ保持部1122およびMAC生成部1123は、鍵更新部12の一例である鍵更新部12aを構成する。
これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU111における通信回路、メモリに格納された制御プログラムを実行するプロセッサあるいはデジタル回路等により実現される。なお、ECU131〜ECU191も同様の構成を備え、鍵更新管理装置10として機能する。また、以下では、車載ネットワークがCANであるとして説明する。
<フレーム送受信部1111>
フレーム送受信部1111は、バスに対して、CANのプロトコルに従ったフレームを送受信する。また、フレーム送受信部1111は、バスからフレームを1ビットずつ受信し、フレーム解釈部1112に転送する。また、フレーム送受信部1111は、フレーム生成部1124より通知を受けたフレームの内容をバスに送信する。
<フレーム解釈部1112>
フレーム解釈部1112は、フレーム送受信部1111により転送されて受け取ったフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。
フレーム解釈部1112は、IDフィールドと解釈した値を受信ID判断部1113へ通知する。フレーム解釈部1112は、受信ID判断部1113から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドの値とを、フレーム処理部1115に転送する、または、当該判定結果が通知された以降において解釈を中止することでフレームの受信を中止する。
フレーム解釈部1112は、IDフィールド以降に現れるデータフィールドの値をフレーム処理部1115に転送する場合、その後に受け取ったフレームの値から解釈したデータフレーム内のACKスロットの内容をフレーム処理部1115へ通知する。
一方、フレーム解釈部1112は、受け取ったフレームの値から、当該フレームがCANプロトコルに則っていないフレームであると解釈した場合、フレーム生成部1124にエラーフレームを送信する旨の指示を通知する。
フレーム解釈部1112は、受け取ったフレームの値から、当該フレームがエラーフレームであると解釈した場合、それ以降は、当該フレームの解釈を中止し、当該フレームを破棄する。
<受信ID判断部1113>
受信ID判断部1113は、フレーム解釈部1112から通知されるIDフィールドの値を受け取り、受信IDリスト保持部1114に保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。受信ID判断部1113は、判定結果を、フレーム解釈部1112に通知する。
<受信IDリスト保持部1114>
受信IDリスト保持部1114は、ECU111が受信するID(メッセージID)のリストである受信IDリストを保持する。受信IDリストの一例を図8を用いて説明する。
図8は、本実施の形態における受信IDリストの一例を示す図である。図8には、例えば、ECU111、ECU131、ECU182、ECU184およびECU186が受信するメッセージIDリストの一例が示されており、メッセージID「1」、「2」、「3」、「4」を受信する設定が表されている。
<フレーム処理部1115>
フレーム処理部1115は、フレーム解釈部1112より受信した全てのデータフレームに付加される、改ざん防止のコードであるMACを検証する。このMACの検証は、データフレーム(メッセージ)の正当性を検証する意義を有する。
例えば、フレーム処理部1115は、受信したデータフレームのメッセージIDに対応したMAC鍵をMAC鍵保持部1121より取得し、当該メッセージIDに対応したカウンタ値をカウンタ保持部1122より取得することで、当該データフレームに続いて受信した検証用データフレームのデータフィールドに含まれるMACを検証する。
具体的には、フレーム処理部1115は、検証用データフレームを受信して得たMACと、受信したデータフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、MAC鍵を用いて生成したMACとの同一性を検証する。本実施の形態では、フレーム処理部1115は、まず、MAC生成部1123と同様の方法(後述)を用いて、MACを計算により生成し、続いて、生成したMACと当該検証用データフレームのデータフィールドに含まれるMACとを比較する。そして、フレーム処理部1115は、両MACが一致すれば検証に成功したと判定し、一致しなければ検証に失敗した、つまりエラーと判定する。フレーム処理部1115は、エラーと判定すれば、フレーム解釈部1112へ通知して、以降の受信処理を中止する。
このように、フレーム処理部1115は、MACの検証を行うので、バスに接続された不正ECUにより送信された不正なフレームを受信したとしてもエラーと判定し受信処理を中止できるので、不正なフレームによる車両の制御等を阻止することができる。
また、フレーム処理部1115は、車両の状態(以降、車両状態)および/または走行情報を通知するフレームを受信した場合、車体状態保持部1116に受信した車両状態および/または走行情報を通知する。
ここで、車両状態は、例えば、「走行中」、「停車中」または「駐車中」であり、車両が走行中か走行中に移り得る状態かを示す。車両状態は、例えば、トランスミッション120に接続されるECU121が、トランスミッション120から得た例えばパーキング、ニュートラル、1速、2速などのギアポジションに基づいて特定し、フレームに含めてバスに通知するものでもよい。また、車両状態は、例えば、図3に不図示のECUが、複数のECUから通知された情報に基づいて車両状態を特定し、フレームに含めてバスに通知するものでもよい。
走行情報は、車両の走行に関する情報であり、例えばGPSセンサ187が取得した位置、または、他のセンサにより検出した車両の走行距離もしくは走行時間でもよいし、ECU111がエンジン110から取得した車速および当該車速の時間などである。このように、フレーム処理部1115は、上述した取得部11の機能を有し、複数の電子制御ユニットの少なくとも一つから送信される車両の走行に関する情報である走行情報を取得する。
また、フレーム処理部1115は、受信したフレームのデータに応じた処理を行う。ECU111が車両の搭乗者に対してアラーム音を鳴らすためのスピーカ等を有するなどアラーム音を鳴らす機能を有しているとする。そして、例えば走行情報またはエンジン110等から得た情報により得られる車両の時速が30kmを超えた状況でドアが開いている旨を示す情報を受信する場合には、フレーム処理部1115は、車両の搭乗者に対してアラーム音を鳴らしてもよい。このように、フレーム処理部1115は、他のECUから受信した、例えばドアの状態を通知するデータフレームを管理し、エンジン110より得られる車速に基づいて一定条件下でアラーム音を鳴らす処理を行うなど、受信したフレームのデータに応じた処理を行う。なお、フレーム処理部1115は、複数のECUで共通するとして説明したがECU毎に異なる処理を行ってもよい。例えば、ブレーキがかかっていない状況でドアが開いた場合に、ECU184は、車両の搭乗者に対してアラーム音を鳴らす処理を行う一方で、ECU131、ECU182等は、アラーム音を鳴らす処理を行わないとしてもよい。ECU111〜ECU186は、アラーム音を鳴らす機能以外の機能をそれぞれ備えてもよいし備えないでもよい。
また、フレーム処理部1115は、フレーム解釈部1112より受信したデータフレーム内のACKスロットの値を確認し、フレーム送受信部1111から送信したフレームが、他のECUで正常に受信されているかどうかを確認する。そして、フレーム処理部1115は、確認した結果を更新処理部1120に通知する。
<車体状態保持部1116>
車体状態保持部1116は、フレーム処理部1115より通知された現在の車両状態および現在の走行状態を保持する。この結果、車体状態保持部1116は、現在までに通知された車両状態および走行情報を保持することになる。具体的には、車体状態保持部1116は、車両状態として、上述したが例えば「走行中」、「停車中」、「駐車中」を保持する。また、走行情報として、上述したが例えば走行距離、車速、および車両の位置を示すGPS情報を保持する。
車体状態保持部1116は、走行情報により得られる走行距離であってMAC鍵の前回の更新時からの車両の走行距離が閾値を超えた状態になった場合に、鍵更新判定部1119に通知する。ここで、走行情報により得られる走行距離は、他のセンサにより検出した車両の走行距離でもよいし、GPSセンサ187が取得した位置により計算される移動距離でもよいし、エンジン110から取得した車速および当該車速の時間から計算される距離でもよい。
<判定ルール保持部1117>
判定ルール保持部1117は、鍵更新判定部1119により用いられる判定ルールを保持する。ここで、判定ルールは、更新処理部1120が更新処理を実行する条件を満たしたか否かを判定するためのルールである。以下、判定ルールの一例を図9Aおよび図9Bを用いて説明する。
図9Aおよび図9Bは、本実施の形態における判定ルールの一例を示す図である。図9Aには車両状態に応じた判定ルールの一例が示され、図9Bには走行情報に応じた判定ルールの一例が示されている。
図9Aでは、車両状態が「走行中」または「停車中」である場合、更新処理を実施しない判定ルールが示されている。一方、車両状態が「駐車中」である場合、更新処理を実施する判定ルールが示されている。つまり、図9Aに示す判定ルールによれば、例えば車両状態が「走行中」または「停車中」であるとき、MAC鍵更新の更新タイミングが到来しても更新処理部1120が更新処理を実行する条件を満たさないと判定され、更新処理されない。そして、車両状態が「駐車中」に変わったときに、更新処理部1120が更新処理を実行する条件を満たすと判定され、更新処理が実行される。また、車両状態が「駐車中」であるときに、MAC鍵更新の更新タイミングが到来すれば更新処理部1120が更新処理を実行する条件を満たすと判定される。
図9Bでは、車両の走行距離が閾値D1以下であれば更新処理を実施せずに、閾値D1より上であれば更新処理を実施する判定ルールが示されている。また、GPSによる車両の移動距離が閾値D2以下であれば更新処理を実施せず、閾値D2より上であれば更新処理を実施する判定ルールが示されている。なお、GPSによる車両の移動距離は、走行情報に含まれるGPSセンサ187が取得した位置により得られる。つまり、GPSによる車両の移動距離は、走行情報により得られる車両の走行距離に含まれるとしてもよい。このように、車両の走行距離が閾値D1以下、または、GPSによる車両の移動距離が閾値D2以下であれば、更新処理部1120が更新処理を実行する条件を満たさないと判定され、更新処理されない。車両の走行距離が閾値D1より上、または、GPSによる車両の移動距離が閾値D2より上であれば、MAC鍵更新の更新タイミングが到来する前であっても更新処理部1120が更新処理を実行する条件を満たすと判定され、更新処理される。
なお、更新処理部1120が更新処理を実行する条件を満たしたか否かの判定は、車両状態と走行情報の判定ルールのいずれかの判定ルールに従って行うとしてもよいし、車両状態と走行情報の両方の判定ルールに従って行うとしてもよい。
例えば、図9Aに示す車両状態と図9Bに示す走行情報の両方の判定ルールに従って、例えば車両状態が走行中、または、走行距離が閾値D1以下の場合には、更新処理部1120が更新処理を実行する条件を満たさないと判定され、更新処理がされないとしてもよい。
また、車両状態の判定ルールと走行状態の判定ルールとが、相反する等で異なり、更新処理の判定ができない場合は、更新処理部1120が更新処理を実行する条件を満たしていないと判定されるとしてもよい。
<タイマー1118>
タイマー1118は、経過時間に対応するタイマー値のカウントアップを繰り返す計時機構である。タイマー1118は、MAC鍵の前回の更新処理完了時からの経過時間を鍵更新判定部1119へ通知する。また、タイマー1118は、鍵更新判定部1119からの更新処理の完了通知に基づいて、タイマー値のリセットを行う。
<鍵更新判定部1119>
鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たしているか否かを判定する。また、鍵更新判定部1119は、MAC鍵更新の更新タイミングが到来したかを判定してもよい。ここで、更新タイミングとは、予め定められた一定時間(例えば6時間、1日等)が経過したタイミングであり、タイマー1118に基づき、判定される。更新処理部1120が更新処理を実行する条件とは、走行情報により得られる車両の走行に関する状態が所定状態であることを満たすことである。所定状態とは、MAC鍵更新の更新タイミングが到来する前であれば、走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離が閾値を超えた状態である。または、所定状態とは、MAC鍵更新の更新タイミングが到来した後であれば、車両の状態が駐車中である状態である。
本実施の形態では、鍵更新判定部1119は、タイマー1118に基づき、予め定められた更新タイミングが到来したとき、車体状態保持部1116から現在の車両状態を取得し、判定ルール保持部1117から取得した判定ルールに応じて、更新処理部1120が更新処理を実行する条件を満たすか否かを判定する。ここで、更新処理とは、MAC鍵の更新処理を少なくとも含み、MACの生成に利用されるデータの更新に関連する更新処理も含む。より具体的には、更新処理は、MACを生成するために用いる鍵であるMAC鍵の値を更新する鍵更新処理と、MACに反映するカウンタ値をリセット(つまりゼロ等の特定値に更新)するカウンタリセット処理とを意味する。
そして、この場合、鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たすと判定したとき、更新処理部1120へその旨を通知する。一方、鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たさないと判定したときには、車両状態の変化を待つ。
また、鍵更新判定部1119は、予め定められた更新タイミングが到来していなくても、車体状態保持部1116から現在を含む走行情報を取得し、判定ルール保持部1117から取得した判定ルールに応じて、更新処理部1120が更新処理を実行する条件を満たすか否かを判定する。鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たすと判定したとき、更新処理部1120へその旨を通知する。一方、鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たさないと判定したときには、予め定められた更新タイミングが到来するまで待って、車両状態に基づく判定を行えばよい。
また、鍵更新判定部1119は、更新処理が完了した場合、タイマー1118にタイマー値のリセットを行わせるために、タイマー1118に更新処理の完了通知を通知する。
<更新処理部1120>
更新処理部1120は、鍵更新判定部1119からの通知に従って更新処理を行う。すなわち、更新処理部1120は、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として、MAC鍵を更新する更新処理を行う。
例えば更新処理部1120は、当該所定状態であるという鍵更新処理を実行する条件を満たしたタイミングを通知することで、自ECU111を含む複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。つまり、更新処理部1120は、複数のECUのすべてが、上記条件を満たした同一のタイミングで、MAC鍵を用いて新たなMAC鍵を生成するとしてもよい。そして、更新処理部1120は、上記条件を満たした同一のタイミングで送信カウンタおよび受信カウンタをリセットしてもよい。
また、例えば鍵更新部12は、上記条件を満たしたときに、MAC鍵を用いて新たなMAC鍵を生成するとしてもよい。そして、鍵更新部12は、上記条件を満たしたタイミングにおいて生成した新たなMAC鍵を、自ECU111を除く複数のECUすべてに配布することにより、複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。同様に、更新処理部1120は、上記条件を満たした同一のタイミングで送信カウンタおよび受信カウンタをリセットしてもよい。
本実施の形態では、更新処理部1120は、鍵更新判定部1119から更新処理部1120が更新処理を実行する条件を満たすと判定した旨の通知を受けて、新たにMAC鍵候補となる鍵を生成し、MAC鍵保持部1121へ通知する。また、更新処理部1120は、当該通知を受けて、カウンタ保持部1122に対し、カウンタ値をリセットするよう通知する。なお、更新処理部1120は、当該通知を受けたとき、MAC鍵保持部1121が保持していたMAC鍵を取得して旧鍵としてキャッシュ(つまり一時的に記憶媒体に保持)するとともに、カウンタ保持部1122が保持しているカウンタ値を取得してキャッシュする。
更新処理部1120は、MAC鍵の更新が複数のECUのうち一つでも成功しなかった場合、キャッシュしている旧鍵であるMAC鍵をMAC鍵保持部1121へ通知し、キャッシュしているリセット前のカウンタ値をカウンタ保持部1122へ通知する。
一方、更新処理部1120は、MAC鍵の更新が複数のECUすべてで成功した場合、キャッシュしている旧鍵であるMAC鍵と、リセット前のカウンタ値を削除する。なお、これらの削除は、一時的に保持していたこれらの値を以後使用できないものと扱うことができれば、図示しない一時記憶装置に記憶されている値の削除に限らない。
なお、更新処理部1120は、MAC鍵の生成方法として、例えば、旧鍵となる現在のMAC鍵を、例えばハッシュ関数等の予め定められた一方向関数に入力することで導出される結果を新たなMAC鍵候補とする方法を用いればよい。
<MAC鍵保持部1121>
MAC鍵保持部1121は、メモリ等の記憶媒体により実現され、MAC鍵を、メッセージID毎に1つ保持する。保持されるMAC鍵は、上述したように、MAC生成部1123およびフレーム処理部1115がMACを計算する際に必要となる。また、MAC鍵保持部1121は、更新処理部1120からの通知に従って、これまで持っていたMAC鍵を破棄し、通知された新たなMAC鍵を保持することでMAC鍵を更新する。
<カウンタ保持部1122>
カウンタ保持部1122は、メモリ等の記憶媒体を含んで実現され、カウンタ値を、メッセージID毎に1つ保持する。カウンタ保持部1122は、更新処理部1120からの通知に従って、通知されたカウンタ値を保持し、また、更新処理部1120からのリセットすべき旨の通知に従って、保持しているカウンタ値をリセットする。このリセットによりカウンタ値は、ゼロ等の特定値に更新される。
ここで、カウンタ値は、MAC生成部1123およびフレーム処理部1115がMACを計算する際に必要となる。また、カウンタ値は、フレーム送受信部1111からフレームが正常に送信された場合にインクリメント(1増加)される。カウンタ値は、フレーム送受信部1111からデータフレームが送信される場合においては送信カウンタとして扱われ、送信回数がカウントされる。また、カウンタ値は、フレーム送受信部1111でデータフレームを受信する場合においては受信カウンタとして扱われ、受信回数がカウントされる。
カウンタ保持部1122は、例えばメッセージIDが「1」のデータフレームをフレーム送受信部1111から送信する場合、保持するカウンタ値のうちメッセージIDが「1」に対応するカウンタ値を送信カウンタとして扱い、正常に1回送信される毎にインクリメントする。
また、カウンタ保持部1122は、例えばメッセージIDが「1」のデータフレームをフレーム送受信部1111で受信する場合、保持するカウンタ値のうちメッセージIDが「1」に対応するカウンタ値を、受信カウンタとして扱い、正常に受信される毎にインクリメントする。
<MAC生成部1123>
MAC生成部1123は、データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して、MAC鍵を用いてMACを生成する。
本実施の形態では、MAC生成部1123は、フレーム生成部1124より通知されるメッセージIDとデータフィールド用のデータの値と、カウンタ保持部1122で保持するカウンタ値(つまりメッセージIDに対応するカウンタ値)とを結合した値(結合値)を算出する。そして、MAC生成部1123は、算出した結合値に対し、MAC鍵保持部1121で保持するMAC鍵(つまりメッセージIDに対応するMAC鍵)を用いて、MACを算出(つまりMACの値を計算により導出)して、この算出した結果であるMACをフレーム生成部1124へと通知する。
ここで、MACの計算方法として、例えば非特許文献1に示されるHMAC(Hash-based Message Authentication Code)を採用してもよい。この場合、MAC生成部1123は、算出した結合値に対し、例えば4バイトの所定のブロック分までパディングした値でMAC鍵を使って計算し、出てきた計算結果の先頭4バイトをMAC値とすればよい。
なお、本実施の形態で説明するMAC値のサイズ、計算方法は一例であり、これに限定されるものではない。また、MACは、フレームが送信される毎にインクリメントされるカウンタ値を反映して生成される。つまり、たとえECU111が同じデータの値を含むデータフレームを複数回送信したとしても、データフレームに付与(つまり付加)されるMACは送信毎に変化する。
なお、上述したが、車載ネットワークがEthernet(登録商標)である場合には、フレームには通常IDが付与されず、代わりに送信元アドレスおよび送信先アドレスが付加されている。そのため、フレームに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたMACフレームの送信回数とを少なくとも結合した値に対してMAC鍵を用いMACを生成すればよい。
<フレーム生成部1124>
フレーム生成部1124は、フレーム解釈部1112から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成してフレーム送受信部1111へ通知する。
また、フレーム生成部1124は、予め定められたメッセージIDとデータ取得部1125より通知されたデータの値(データフィールド用のデータの値)とをMAC生成部1123へ通知することによりMACの通知を受ける。そして、フレーム生成部1124は、予め定められたメッセージIDと、通知されたMACと、通知されたデータフィールド用のデータの値とに基づきフレームを構成してフレーム送受信部1111へ通知する。
<データ取得部1125>
データ取得部1125は、ECUにつながっている機器、センサ等の状態を示すデータを取得し、フレーム生成部1124に通知する。
[1.5 送信されるフレームの例]
以下、例えばECU111、ECU131、ECU182、ECU184およびECU186のそれぞれが送信するフレームの一例について図10〜図14を用いて説明する。
<ECU111が送信するフレームの例>
図10は、本実施の形態におけるエンジン110に接続されたECU111が送信するメッセージIDと、データの一例を示す図である。図10に示すように、ECU111が送信するメッセージIDは例えば「1」である。そして、ECU111が送信するデータフィールドの値のうち、先頭1バイトは時速を表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。時速は最低0km〜最高180kmまでの範囲を取るとしている。つまり、ECU111は、時速を表す先頭1バイトの値と、それぞれに対応したカウンタ値とMAC値とをセットにして6バイトで送信する。図10では、車両が0kmから1kmずつ加速されている様子が示されている。
<ECU131が送信するフレームの例>
図11は、本実施の形態におけるブレーキ130に接続されたECU131が送信するメッセージIDと、データの一例を示す図である。図11に示すように、ECU131が送信するメッセージIDは例えば「2」である。そして、ECU131が送信するデータフィールドの値のうち、先頭1バイトはブレーキのかかり具合を%で表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。ブレーキを全くかけていない状態を0%とし、ブレーキを最大限かけている状態を100%としている。つまり、ECU131は、ブレーキのかかり具合を表す先頭1バイトの値と、それぞれの値に対応したカウンタ値と、MAC値とをセットにして6バイトで送信する。図11では、車両が100%から徐々にブレーキを弱める様子が示されている。
<ECU184が送信するフレームの例>
図12は、本実施の形態におけるドア開閉センサ185に接続されたECU184が送信するメッセージIDと、データの一例を示す図である。図12に示すように、ECU184が送信するメッセージIDは例えば「3」である。そして、ECU184が送信するデータフィールドの値のうち、先頭の1バイトはドアの開閉状態を表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。ドアが開いている状態を「1」、ドアが閉まっている状態を「0」としている。つまり、ECU184は、ドアの開閉状態を表す先頭1バイトの値と、それぞれの値に対応したカウンタ値と、MAC値とをセットにして6バイトで送信する。図12では、ドアが開いている状態から、途中で閉められた様子が示されている。
<ECU182が送信するフレームの例>
図13は、本実施の形態におけるウィンドウ開閉センサ183に接続されたECU182が送信するメッセージIDと、データの一例を示す図である。図13に示すように、ECU182が送信するメッセージIDは例えば「4」である。そして、ECU182が送信するデータフィールドの値のうち、先頭の1バイトは窓の開閉状態を%で表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。窓が閉まっている状態を0%、窓が全開の状態を100%としている。つまり、ECU182は、窓の開閉状態を表す先頭1バイトの値と、それぞれに対応したカウンタ値と、MAC値とをセットにして6バイトで送信する。図13では、窓が閉まっている状態から、徐々に開いていく様子が示されている。
<ECU186が送信するフレームの例>
図14は、実施の形態におけるGPSセンサ187に接続されたECU186が送信するメッセージIDと、データの一例を示す図である。図14に示すように、ECU182が送信するメッセージIDは例えば「5」である。そして、ECU186が送信するデータフィールドの値のうち、先頭の3バイトはGPSの差分を表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表す。つまり、ECU186は、前回の位置からの差分値と、カウンタ値と、MAC値とをセットとして8バイトで送信する。
[1.6 更新処理]
次に、車載ネットワークシステム100の動作について説明する。
図15は、本実施の形態における更新処理方法を示すフローチャートである。以下では、車載ネットワークシステム100を構成する鍵更新管理装置10が更新処理を行うとして説明するが、これに限らない。各ECUが更新処理を行ってもよいし、全ECUの一が鍵更新管理装置10として更新処理を行うとしてもよいし、車載ネットワークシステム100aを構成するゲートウェイ101が更新処理を行うとしてもよい。
まず、鍵更新管理装置10は、複数の電子制御ユニットの少なくとも一つから送信される、車両の走行に関する情報である走行情報を取得する(S10)。
次に、鍵更新管理装置10は、走行情報により得られる車両の走行に関する状態が所定状態であるという条件を満たすか否かを判定する(S11)。
ステップS11において、上記の条件を満たせば(S11でY)、鍵更新管理装置10は、車載ネットワークシステム100において授受されるデータに付加されるMAC(メッセージ認証コード)であって改ざん防止のコードであるMACの生成に利用される鍵であるMAC鍵を更新する(S12)。なお、ステップS11において、上記の条件を満たさない場合(S11でN)、ステップS10に戻る。
図16は、図15に示すステップS11の詳細処理を示すフローチャートである。以下では、車載ネットワークシステム100aを構成する複数のECUの一であるECU111が鍵更新管理装置10として更新処理を実行する場合を例に挙げて説明する。
ステップS11において、ECU111は、内部に持つタイマー1118により、前回の更新処理完了時からの経過時間を確認する(S1101)。
次に、ECU111は、前回の更新処理完了時から予め定められた一定時間経過しているかどうかを判定する(S1102)。より具体的には、ECU111は、タイマー1118がカウントする経過時間に基づき、MAC鍵更新の更新タイミングが到来したかを判定する。
ステップS1102において、前回の更新処理完了時から一定時間が経過していない場合(S1102でN)、ECU111は、前回の更新処理完了時から車両が走行した距離を確認する(S1103)。より具体的には、ECU111は、走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離を確認する。
次に、ECU111は、前回の更新処理完了時から車両が走行した距離があらかじめ定められた閾値より大きいかを判定する(S1104)。例えば図9Bに示すような判定ルールに従い、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値より大きいかを判定する。
ステップS1104において、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値以下の場合(S1104でN)、S1101へ戻る。
一方、ステップS1104において、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値より大きい場合(S1104でY)、ステップS11の処理を終了し、図15に示すステップS12に進む。なお、ステップS1104において、前回の更新処理完了時から車両が走行した距離が閾値以下の場合(S1104でN)、ECU111は、図15に示すステップS10に戻る。
また、ステップS1102において、前回の更新処理完了時から一定時間が経過している場合(S1102でY)、ECU111は、現在の車両状態を確認し(S1105)、車両が駐車中であるか否かを判定する(S1106)。
車両が駐車中であれば(S1106でY)、ECU111は、ステップS11の処理を終了し、図15に示すステップS12に進む。一方、車両が駐車中であれば(S1106でN)、ECU111は、ステップS1105に戻る。
なお、ステップS1104において、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値より大きい場合(S1104でY)、ステップS11の処理を終了するとしたが、これに限らない。さらに、ステップS1105およびS1106の処理を行うとしてもよい。
このように、ECU111は、現在の車両状態または走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離から、判定ルール保持部1117に保持されている判定ルールに従って更新処理を実行するかどうかを判定することができる。
例えば図9Aに示した判定ルールに従う場合、ECU111は、車両状態が「走行中」「停車中」であれば、更新処理を実行しない。一方、車両状態が「駐車中」であれば更新処理を実行する。また、図9Bに示した判定ルールに従う場合、ECU111は、走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離が閾値D1以下であれば、更新処理を実行しない。また、GPSの移動距離で示される走行距離が閾値D2以下であれば、更新処理を実行しない。
図17は、図15に示すステップS12の詳細処理を示すフローチャートの一例である。図17でも、図16と同様に、車載ネットワークシステム100aを構成する複数のECUの一であるECU111が更新処理を実行する場合を例に挙げて説明する。ここで、図17には、鍵更新処理を実行する条件を満たしたタイミングにおいて生成した新たなMAC鍵を、自ECU111を除く複数のECUすべてに配布することにより、複数のECUすべてにMAC鍵を同一のタイミングで更新させる更新処理が示されている。
図17に示すように、ステップS12において、ECU111は、MAC鍵保持部1121が保持しているMAC鍵を、旧鍵としてキャッシュする(S1201)。続いて、ECU111は、生成した鍵をMAC鍵とする(S1202)。より具体的には、ECU111は、新たにMAC鍵候補となる鍵を生成して、MAC鍵としてMAC鍵保持部1121に保持する。
次に、ECU111は、カウンタ保持部1122が保持しているカウンタ値を、キャッシュする(S1203)。続いて、ECU111は、カウンタ保持部1122が保持しているカウンタ値をゼロにリセットする(S1204)。
次に、ECU111は、生成したMAC鍵を用いてMACを生成する(S1205)。より具体的には、ECU111は、予め定められたメッセージIDと、データフィールド用のデータ値と、リセット後のカウンタ保持部1122が保持しているカウンタ値と、MAC鍵保持部1121が保持している新たに生成したMAC鍵とを用いてMACを生成する。
次に、ECU111は、生成したMAC鍵を配布するためのデータフレームである鍵配布フレームを生成してブロードキャストし、続けて更新の同期を確認するためのデータフレームである更新フレームをブロードキャストする(S1206)。より具体的には、まず、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1202において生成したMAC鍵とを含む鍵配布フレームを生成してバスへ送信を行い、自ECU111を除く複数のECUすべてに同一タイミングでMAC鍵を更新させる。続けて、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1205において生成したMACとを含む更新フレームを生成してバスへ送信する。なお、鍵配布フレームを受信した他のECUは、ECU111同様に、旧鍵であるMAC鍵と、リセット前のカウンタ値とをキャッシュしている。
次に、ECU111は、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを判定する(S1207)。より具体的には、ECU111は、ステップS1206において更新フレームをバスに送信後、自ECU111を除く複数のECUすべてが更新フレームの受信に成功(つまり正常に受信)したかどうかを、ACKスロットの値を見ることで判定する。
ステップS1207において、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したと判定した場合(S1207でY)、ECU111は、キャッシュしていた旧鍵であるMAC鍵とリセット前のカウンタ値とを破棄して(S1208)、更新処理を終了する。自ECU111を除く複数のECUすべてが更新フレームの受信に成功した場合、複数のECUすべてにおいて新たなMAC鍵によりMAC鍵の更新が完了したことがわかるからである。
一方、ステップS1207において、更新フレームの受信に成功しなかった場合(S1207でN)、ECU111は、キャッシュしておいた旧鍵であるMAC鍵を、再度MAC鍵に設定し(S1210)、キャッシュしておいたリセット前のカウンタ値を再度設定する(S1211)。より具体的には、ECU111は、更新フレームの受信に失敗したECUがあった場合、キャッシュしておいた旧鍵であるMAC鍵をMAC鍵保持部1121に保持させる。また、ECU111は、キャッシュしておいたリセット前のカウンタ値を、再度カウンタ値としてカウンタ保持部1122に保持させる。なお、他のECUは、ECU111同様に、キャッシュしておいた旧鍵であるMAC鍵を、再度MAC鍵に設定し、キャッシュしておいたリセット前のカウンタ値を再度設定する。また、更新フレームの受信に成功しなかったECUがあった場合でも、再度鍵配布フレームをブロードキャストして新たなMAC鍵を再度配布した上で、更新フレームの受信に失敗したECUがあったかどうかを判定してもよい。
次に、ECU111は、再設定したMAC鍵とカウンタ値を用いてMACを生成する(S1212)。より具体的には、ECU111は、予め定められたメッセージIDと、データフィールド用のデータ値と、キャッシュから再設定したカウンタ保持部1122のカウンタ値と、キャッシュから再設定したMAC鍵保持部1121のMAC鍵とを用いて、MACを生成する。
次に、ECU111は、更新の同期を確認するためのデータフレームである更新フレームをブロードキャストする(S1213)。より具体的には、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1212において生成されたMACとを含む更新フレームを生成してバスに送信する。
次に、ECU111は、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを判定する(S1214)。より具体的には、ECU111は、ステップS1213において更新フレームをバスに送信後、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを、ACKスロットの値を見ることで判定する。
ステップS1214において、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したと判定した場合(S1214でY)、ECU111は、一定時間待機後、再度更新処理を実施する(S1215)。つまり、ECU111は、MAC鍵の更新が失敗したのは軽微なエラーであったとしてステップS1201に戻り更新処理を再度行う。
一方、ステップS1214において、更新フレームの受信に失敗したと判定した場合(S1214でN)、ECU111は、致命的なエラー発生につき処理を中止する(S1216)。ECU111は、MAC鍵の更新が失敗したため、旧鍵に戻したことを確認するために送信した更新フレームの受信が失敗するのは、システム上致命的なエラーとみなせるからである。
なお、更新処理を中止した場合には、ECU111は、エラー発生について報知、ログの記録等の処理を実行しても良い。また、エラー発生の報知は、他のECUへのエラー発生を示すデータフレームの送信、ディスプレイ等への表示、音声出力、発光等により、実行され得る。
図17を用いて、全ECUの一であるECU111が新たに生成したMAC鍵を配布することで新たなMAC鍵に更新する更新処理について説明したが、それに限らない。複数のECUのすべてが、所定状態である条件を満たした同一のタイミングで、MAC鍵を用いて新たなMAC鍵を生成することにより、MAC鍵を新たなMAC鍵に更新する更新処理を実行するとしてもよい。これについて図18を用いて説明する。
図18は、図15に示すステップS12の詳細処理を示すフローチャートの別の一例である。図18でも、図17と同様に車載ネットワークシステム100aを構成する複数のECUの一であるECU111が更新処理を実行する場合を例に挙げて説明する。図17と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図18では、まず、S1217Aにおいて、ECU111は、鍵更新のタイミングを示す通知フレームをブロードキャストする。より具体的には、ECU111は、所定状態であるという鍵更新処理を実行する条件を満たしたタイミングを通知するために、鍵更新のタイミングを示す通知フレームをバスに送信する。鍵更新のタイミングを示す通知フレームとして、旧鍵である現在のMAC鍵をデータフィールドに含めて送るとしてもよいし、鍵更新のタイミングを示す旨をデータフィールドに含めて送るとしてもよい。これにより、自ECU111を含む複数のECUすべてに同一タイミングでMAC鍵を更新させることができる。なお、上述したように、鍵更新処理を実行する条件を満たしたタイミングを通知することは必須ではない。CANであれば複数のECUすべてがそれぞれ独立に鍵更新処理を実行する条件を満たしたタイミングを判定しても、同一のタイミングを判定できるので、複数のECUすべてが同一のタイミングで更新することができるからである。
次に、ECU111は、ステップS1201〜S1205を行う。なお、鍵更新のタイミングを示す通知フレーム受信した他のECUは、ECU111同様に、旧鍵であるMAC鍵と、リセット前のカウンタ値とをキャッシュしている。
次に、ECU111は、S1206Aにおいて、更新の同期を確認するためのデータフレームである更新フレームをブロードキャストする。より具体的には、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1205において生成したMACとを含む更新フレームを生成してバスへ送信する。
次に、ECU111は、ステップS1207Aにおいて、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを判定する。
ステップS1207Aにおいて、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したと判定した場合(S1207AでY)、ECU111は、キャッシュしていた旧鍵であるMAC鍵とリセット前のカウンタ値とを破棄して(S1208)、更新処理を終了する。
一方、ステップS1207Aにおいて、更新フレームの受信に成功しなかった場合(S1207AでN)、ECU111は、キャッシュしておいた旧鍵であるMAC鍵を、再度MAC鍵に設定し、キャッシュしておいたリセット前のカウンタ値を再度設定する(S1218)。
なお、複数のECUは更新フレームの受信に成功したかどうかを、ACKスロットの値を見ることで判定できるので、ECU111と同様に、複数のECUはステップS1218の処理を行う。
次に、ECU111は、一定時間待機後、再度更新処理を実施する(S1219)。つまり、ECU111は、MAC鍵の更新が失敗したのは軽微なエラーであったとしてステップS1217に戻り更新処理を再度行う。
なお、どのECUが更新フレームを送信しても良い。本実施の形態では、例えば、メッセージID「1」のデータフレームを繰り返し送信するECU111が、メッセージID「1」に対応するMACに係る更新処理を同期させるための更新フレームを送信するとして説明した。
[1.7 実施の形態の効果]
以上のように、本実施の形態によれば、MAC鍵の鍵更新処理、および、カウンタのリセット処理を含む更新処理を、走行距離および/または車の状態に応じて実行することができる。これにより、更新処理を車両の動作に応じて適切な頻度で実行できる。
より具体的には、本実施の形態によれば、車両の走行距離が閾値以下であるかを判定し、走行距離が短い、かつ、車の動作があるまたは予定されている場合に、更新処理をしないと判定することで、走行距離および/または車の状態に応じて更新処理を実行することができる。これにより、過度に更新処理が行われることを抑制できるので、CANへの負荷を低減できる。つまり、ECUにおける鍵の更新処理が効率よく適切に実行され、車載ネットワークシステム全体として、安全な状態を維持することができる。
[2.その他変形例]
なお、本開示を上記実施の形態に基づいて説明してきたが、本開示は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
(1)上記実施の形態では、フレームは定期的に送信されるとしたが、状態変化を通知するイベントとして送信されるとしてもよい。例えば、ドアロックの状態を定期的に送信するのではなく、ドアロックの状態が変化した場合にのみ、フレームを送信するとしても良い。また、定期的に送信、かつ、状態変化が発生した時に送信するとしても良い。
(2)上記実施の形態では、フレームに含まれるMACのサイズは4バイトに制限するものではなく、送信毎に異なるサイズであってもよい。同様にカウンタサイズも1バイトに制限するものではない。
また、フレームにデータ値、カウンタ値、MAC値、データフレームに含まれるその他のフィールドの値全てが含まれている必要はなく、それぞれの組み合わせであっても良い。
また、MACサイズは固定のサイズに限定するものではなく、メッセージID毎に異なるサイズであってもよい。また、複数のメッセージにまたがって送信されるものであっても良い。
(3)上記実施の形態では、カウンタ値を送信毎にインクリメントするとしているが、時刻に応じて自動的にインクリメントされる値であっても良い。また、時刻そのものの値をカウンタの代わりに使用してもよい。
(4)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットであっても良い。
(5)上記実施の形態では、MAC算出のアルゴリズムをHMACとしているが、これに限らない。CBC−MAC、CMACであっても良い。また、MAC計算に登場するパディングについては、ゼロパディング、ISO10126、PKCS1、PKCS5、PKCS7、その他、データサイズが計算に必要となるパディングの方式であれば何でもよい。
また4バイトへのサイズの変更方法についても、先頭、最後尾、中間、いずれをとっても良い。また、連続している4バイトでなくても、特定のルールに従って1ビットずつ収集して結合しても良い。
(6)上記実施の形態では、更新処理として、MAC鍵の更新処理と、カウンタリセットの処理を同時に行っているが、いずれか一方のみ行ってもよい。また、MAC鍵の更新処理についても、新たにMAC鍵更新処理専用の鍵を埋め込んでも良い。
(7)上記実施の形態では、MAC鍵をメッセージID毎に1つ保持しているが、ECU毎に1つであっても良い。また、全てのECUが共通のMAC鍵を保持していても良い。同一のバスにつながるECUは全て共通のMAC鍵を保持していても良い。
(8)上記実施の形態では、カウンタ値をメッセージID毎に1つ保持しているが、ECU毎に1つであっても良い。また、同一のバス上を流れる全てのフレームに対して共通のカウンタ値を使用しても良い。
(9)上記実施の形態では、カウンタ値はMAC算出のために使用しているが、データフィールドに含めて送信しても良い。また、その際は、全てのカウンタ値を送信してもよいし、一部のみを送信してもよい。
(10)上記実施の形態では、判定ルールは一例に限定されるわけではなく、他の判定ルールであってもよいし、複数の判定ルールがあってもよい。また、判定ルールはECUにそれぞれ出荷時に設定されてもよいし、搭載される車体の出荷時に設定されてもよいし、部品として、あるいは、搭載される車体自体が販売される時に設定されてもよい。また、判定ルールは、外部との通信、各種メディア、または、各種診断ツールによって設定されてもよい。
(11)上記実施の形態では、ECU間で送受信されるデータフレームに対して、受信したECUがMACの検証を行っているが、全てのデータフレームに付与するMACの検証を一手に行うMAC検証用のECUであってもよい。
また、このMAC検証用ECUが全てのメッセージIDに対応するMAC鍵と、カウンタ値を保持していてもよい。また、このMAC検証用ECUがMAC検証の結果、エラーと判定した場合、その他のECUでの受信を防止するため、エラーフレームを送信してもよい。
(12)上記実施の形態では、走行距離が閾値より大きい場合に、すべてのMAC鍵に関して、鍵更新処理を行っているが、これに限定するわけではなく、走行距離に関するメッセージIDのMAC鍵のみを更新するとしてもよい。
(13)上記実施の形態では、走行距離が閾値より大きい場合に、すべてのMAC鍵に関して、鍵更新処理を行っているが、これに限定するわけではなく、走行距離に関するメッセージIDが送信されるバスのみのMAC鍵を更新するとしてもよい。
(14)上記実施の形態では、所定の時間が経過、または走行距離が閾値より大きい場合に、判定ルールに基づいて更新処理を行っているが、これに限定するわけではなく、カウンタ値が閾値より大きい場合に更新処理を実行するとしてもよい。このとき、カウンタ値が閾値より大きいメッセージIDに対応するMAC鍵のみを更新するとしてもよい。
(15)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(16)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部またはすべてを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(17)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(18)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(19)上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
本開示は、ECUにおけるMAC鍵の更新処理が特定のタイミングに集中することなく、確実に実行され、車載ネットワークシステム全体として、安全な状態を維持することができる。
10 鍵更新管理装置
11 取得部
12、12a 鍵更新部
13、13a 鍵更新処理判定部
100、100a 車載ネットワークシステム
101 ゲートウェイ
111、121、131、141、151、161、171、181、182、184、186、191 ECU
110 エンジン
120 トランスミッション
130 ブレーキ
140 ステアリング
150 自動ブレーキ
160 車線維持装置
170 車車間通信装置
180 ヘッドユニット
183 ウィンドウ開閉センサ
185 ドア開閉センサ
187 GPSセンサ
190 ITS装置
1111 フレーム送受信部
1112 フレーム解釈部
1113 受信ID判断部
1114 受信IDリスト保持部
1115 フレーム処理部
1116 車体状態保持部
1117 判定ルール保持部
1118 タイマー
1119 鍵更新判定部
1120 更新処理部
1121 MAC鍵保持部
1122 カウンタ保持部
1123 MAC生成部
1124 フレーム生成部
1125 データ取得部

Claims (13)

  1. 複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、
    前記複数の電子制御ユニットの少なくとも一つから送信される、前記車両の走行に関する情報である走行情報を取得する取得ステップと、
    前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する鍵更新ステップとを含む、
    更新処理方法。
  2. 前記所定状態は、前記走行情報により得られる前記車両の走行距離であって前記MAC鍵の前回の更新時からの前記車両の走行距離が閾値を超えた状態である、
    請求項1に記載の更新処理方法。
  3. 前記所定状態は、前記MAC鍵の前回の更新時から所定時間経過後、かつ、前記走行情報により得られる前記車両の状態が駐車中である状態である、
    請求項1に記載の更新処理方法。
  4. 前記鍵更新ステップでは、
    前記複数の電子制御ユニットのすべてが、前記条件を満たした同一のタイミングで、前記MAC鍵を用いて新たなMAC鍵を生成することにより、前記MAC鍵を前記新たなMAC鍵に更新する、
    請求項1〜3のいずれか1項に記載の更新処理方法。
  5. 前記鍵更新ステップでは、
    前記複数の電子制御ユニットの一が、前記条件を満たしたときに、前記MAC鍵を用いて新たなMAC鍵を生成する生成ステップと、
    前記一の電子制御ユニットが生成した前記新たなMAC鍵を、前記一の電子制御ユニット以外の前記複数の電子制御ユニットのすべてに配布することにより、前記MAC鍵を前記新たなMAC鍵に更新する配布ステップとを含む、
    請求項1〜3のいずれか1項に記載の更新処理方法。
  6. 前記車載ネットワークは、前記複数の電子制御ユニットがバスに接続されたCAN(Controller Area Network)であり、
    前記更新処理方法は、
    前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、CANプロトコルに従ってバスを介して、前記データとしてデータフレーム、および、前記データに付加されるメッセージ認証コードとして前記データフレームのデータフィールドを前記メッセージ認証コードとした検証用データフレームの送信を行う送信ステップと、
    前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信されたデータフレーム、および、検証用データフレームを、バスを介して受信する受信ステップとを含む、
    請求項1〜5のいずれか1項に記載の更新処理方法。
  7. 前記送信ステップでは、
    前記第1電子制御ユニットが、前記データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、
    前記受信ステップでは、
    前記第2電子制御ユニットが、前記検証用データフレームを受信して得た前記メッセージ認証コードと、受信した前記データフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含む、
    請求項6に記載の更新処理方法。
  8. 前記車載ネットワークシステムは、前記複数の電子制御ユニットがLAN(Local Area Network)により接続されたネットワークであり、
    前記更新処理方法は、
    前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、前記データに付加される前記メッセージ認証コードとしてペイロード部分に前記メッセージ認証コードを含めて、前記データの送信を行う送信ステップと、
    前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信された前記データを受信する受信ステップとを含む、
    請求項1〜5のいずれか1項に記載の更新処理方法。
  9. 前記送信ステップでは、さらに、
    前記第1電子制御ユニットが、前記データに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたデータの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、
    前記受信ステップでは、
    前記第2電子制御ユニットが、ペイロード部分に前記メッセージ認証コードが含まれた前記データを受信して得た前記メッセージ認証コードと、受信した当該データに付加された送信元アドレスおよぎ送信先アドレスと受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含む、
    請求項8に記載の更新処理方法。
  10. 前記更新処理方法は、さらに、
    前記条件として前記送信カウンタおよび前記受信カウンタをリセットするリセットステップを含む、
    請求項9に記載の更新処理方法。
  11. 前記複数の電子制御ユニットは、前記車両の制御用途により分類された複数のグループの一に属し、
    前記複数のグループのそれぞれにおける前記所定状態は、前記複数のグループごとに定められる、
    請求項1〜10のいずれか1項に記載の更新処理方法。
  12. 複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムであって、
    前記複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得する取得部と、
    前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する更新処理部とを備える、
    車載ネットワークシステム。
  13. 車両に搭載される車載ネットワークシステムに接続される電子制御ユニットであって、
    CPUとメモリとを有し、
    前記CPUは、複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得して前記メモリに格納し、
    前記CPUは、
    前記メモリに格納された前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コード(MAC:Message Authentication Code)であって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵を更新する、
    電子制御ユニット。
JP2018006869A 2017-03-21 2018-01-19 更新処理方法、車載ネットワークシステムおよび電子制御ユニット Pending JP2018160888A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/006140 WO2018173603A1 (ja) 2017-03-21 2018-02-21 更新処理方法、車載ネットワークシステムおよび電子制御ユニット

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017054953 2017-03-21
JP2017054953 2017-03-21

Publications (1)

Publication Number Publication Date
JP2018160888A true JP2018160888A (ja) 2018-10-11

Family

ID=63796029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018006869A Pending JP2018160888A (ja) 2017-03-21 2018-01-19 更新処理方法、車載ネットワークシステムおよび電子制御ユニット

Country Status (1)

Country Link
JP (1) JP2018160888A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102194469B1 (ko) * 2020-09-02 2020-12-23 (주)티에이치엔 차량용 통신 제어 장치의 보안 방법 및 그 장치
KR102398763B1 (ko) * 2020-12-11 2022-05-17 (주)티에이치엔 메시지 우선 순위에 따른 차량용 네트워크의 보안 방법 및 그 장치
KR102398764B1 (ko) * 2020-12-11 2022-05-17 (주)티에이치엔 차량 제어 메시지 인증 방법 및 그 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102194469B1 (ko) * 2020-09-02 2020-12-23 (주)티에이치엔 차량용 통신 제어 장치의 보안 방법 및 그 장치
KR102398763B1 (ko) * 2020-12-11 2022-05-17 (주)티에이치엔 메시지 우선 순위에 따른 차량용 네트워크의 보안 방법 및 그 장치
KR102398764B1 (ko) * 2020-12-11 2022-05-17 (주)티에이치엔 차량 제어 메시지 인증 방법 및 그 장치

Similar Documents

Publication Publication Date Title
JP7170780B2 (ja) 不正検知ルール更新方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP6931028B2 (ja) 不正対処方法及び路側機
CN107431625B (zh) 网关装置、车载网络系统以及转送方法
JP6407981B2 (ja) 車載ネットワークシステム、電子制御ユニット及び不正対処方法
JP6807906B2 (ja) 車両へのコンピュータ攻撃を阻止するためのルールを生成するシステムおよび方法
WO2018173603A1 (ja) 更新処理方法、車載ネットワークシステムおよび電子制御ユニット
CN109076001B (zh) 帧传送阻止装置、帧传送阻止方法及车载网络系统
CN108353014B (zh) 非法控制抑止方法、非法控制抑止装置和车载网络系统
WO2015170452A1 (ja) 車載ネットワークシステム、電子制御ユニット及び更新処理方法
JP6762347B2 (ja) 交通手段に対するコンピュータ攻撃を阻止するためのシステムおよび方法
JP2018160888A (ja) 更新処理方法、車載ネットワークシステムおよび電子制御ユニット
JP7412506B2 (ja) 不正検知ルール更新方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP6983977B2 (ja) ゲートウェイ装置、車載ネットワークシステム及び転送方法
CN113556271A (zh) 非法控制抑止方法、非法控制抑止装置和车载网络系统
WO2020105657A1 (ja) 車載中継装置及び中継方法
JP7453404B2 (ja) 通信システム、中継装置、受信装置及び通信制御方法
WO2018020833A1 (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
CN117728969A (zh) 用于在系统中引入缓解措施的计算机实现的方法
WO2016116977A1 (ja) 不正対処方法及び電子制御ユニット