JP6454919B2 - 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム - Google Patents
管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム Download PDFInfo
- Publication number
- JP6454919B2 JP6454919B2 JP2017197257A JP2017197257A JP6454919B2 JP 6454919 B2 JP6454919 B2 JP 6454919B2 JP 2017197257 A JP2017197257 A JP 2017197257A JP 2017197257 A JP2017197257 A JP 2017197257A JP 6454919 B2 JP6454919 B2 JP 6454919B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- ecu
- data
- vehicle
- encrypted data
- 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
Links
Images
Description
本発明は、管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラムに関する。
従来、自動車は、ECU(Electronic Control Unit:電子制御装置)を有し、ECUによってエンジン制御等の機能を実現する。ECUは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。複数のECUをCAN(Controller Area Network)に接続して構成される車載制御システムについてのセキュリティ技術が例えば非特許文献1に記載されている。
竹森敬祐、"セキュアエレメントを基点とした車載制御システムの保護 −要素技術の整理と考察−"、電子情報通信学会、信学技報、vol. 114、no. 508、pp. 73-78、2015年3月
日本工業規格、JISD4901、"車両識別番号(VIN)"
STMicroelectronics、"AN4240 Application note"、[平成28年6月28日検索]、インターネット<URL:http://www.st.com/web/en/resource/technical/document/application_note/DM00075575.pdf>
自動車の車載制御システムに適用されるECUの信頼性を向上させることが一つの課題であった。
本発明は、このような事情を考慮してなされたものであり、自動車等の車両に搭載されるECU等の車載コンピュータの信頼性を向上させることができる管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラムを提供することを課題とする。
本発明の一態様は、データ提供装置と、車両に搭載される車載コンピュータとを備え、前記データ提供装置は、前記車両とデータを送受する車両インタフェースと、前記車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成部と、前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算部と、前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理部と、を備え、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両インタフェースにより前記車両に送信し、前記適用データの測定値の検証結果を前記車両インタフェースにより前記車両から受信し、前記車載コンピュータは、自車載コンピュータの外部の装置とデータを送受するインタフェース部と、前記インタフェース部により前記データ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理部と、前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定部と、を備え、該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信する、管理システムである。
本発明の一態様は、車両とデータを送受する車両インタフェースと、前記車両に搭載される車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成部と、前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算部と、前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理部と、を備え、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両インタフェースにより前記車両に送信し、前記適用データの測定値の検証結果を前記車両インタフェースにより前記車両から受信する、データ提供装置である。
本発明の一態様は、車両に搭載される車載コンピュータにおいて、自車載コンピュータの外部の装置とデータを送受するインタフェース部と、前記インタフェース部によりデータ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理部と、前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定部と、を備え、該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信する、車載コンピュータである。
本発明の一態様は、データ提供装置と、車両に搭載される車載コンピュータとを備える管理システムの管理方法であって、前記データ提供装置が、前記車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成ステップと、前記データ提供装置が、前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算ステップと、前記データ提供装置が、前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理ステップと、前記データ提供装置が、前記車両とデータを送受する車両インタフェースにより、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両に送信するステップと、前記車載コンピュータが、自車載コンピュータの外部の装置とデータを送受するインタフェース部により前記データ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理ステップと、前記車載コンピュータが、前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定ステップと、前記車載コンピュータが、該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信するステップと、前記データ提供装置が、前記適用データの測定値の検証結果を前記車両インタフェースにより前記車両から受信するステップと、を含む管理方法である。
本発明の一態様は、車両とデータを送受する車両インタフェースを備えるデータ提供装置のコンピュータに、前記車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成機能と、前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算機能と、前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理機能と、前記車両インタフェースにより、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両に送信する送信機能と、前記車両インタフェースにより、前記適用データの測定値の検証結果を前記車両から受信する受信機能と、を実現させるためのコンピュータプログラムである。
本発明の一態様は、車両に搭載される車載コンピュータに、自車載コンピュータの外部の装置とデータを送受するインタフェース部によりデータ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理機能と、前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定機能と、該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信する送信機能と、を実現させるためのコンピュータプログラムである。
本発明によれば、自動車等の車両に搭載されるECU等の車載コンピュータの信頼性を向上させることができるという効果が得られる。
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
図1は、本実施形態に係る管理システム及び自動車1001の構成例を示す図である。本実施形態では、車載コンピュータの一例として、自動車1001に搭載されるECU(電子制御装置)を挙げて説明する。
図1において、自動車1001は、第1のECU1010と複数の第2のECU1020とを備える。第1のECU1010及び第2のECU1020は、自動車1001に備わる車載コンピュータである。第1のECU1010は、自動車1001に搭載されたECUのうち、ゲートウェイ機能を有するECUである。第2のECU1020は、自動車1001に搭載されたECUのうち、エンジン制御等の機能を有するECUである。第2のECU1020として、例えば、エンジン制御機能を有するECU、ハンドル制御機能を有するECU、ブレーキ制御機能を有するECUなどがある。
第1のECU1010と複数の第2のECU1020は、自動車1001に備わるCAN(Controller Area Network)1030に接続される。CAN1030は通信ネットワークである。CANは車両に搭載される通信ネットワークの一つとして知られている。
第1のECU1010は、CAN1030を介して、各第2のECU1020との間でデータを交換する。第2のECU1020は、CAN1030を介して、他の第2のECU1020との間でデータを交換する。
なお、車両に搭載される通信ネットワークとして、CAN以外の通信ネットワークを自動車1001に備え、CAN以外の通信ネットワークを介して、第1のECU1010と第2のECU1020との間のデータの交換、及び、第2のECU1020同士の間のデータの交換が行われてもよい。例えば、LIN(Local Interconnect Network)を自動車1001に備えてもよい。また、CANとLINとを自動車1001に備えてもよい。また、自動車1001において、LINに接続する第2のECU1020を備えてもよい。また、第1のECU1010は、CANとLINとに接続されてもよい。また、第1のECU1010は、CANを介して該CANに接続される第2のECU1020との間でデータを交換し、また、LINを介して該LINに接続される第2のECU1020との間でデータを交換してもよい。また、第2のECU1020同士が、LINを介してデータを交換してもよい。
自動車1001は診断ポート1060を備える。診断ポート1060として、例えばOBD(On-board Diagnostics)ポートを使用してもよい。診断ポート1060には、自動車1001の外部の装置を接続可能である。診断ポート1060に接続可能な自動車1001の外部の装置として、例えば、診断端末や図1に示される鍵生成装置1300などがある。診断ポート1060は第1のECU1010に接続される。第1のECU1010と、診断ポート1060に接続された装置、例えば鍵生成装置1300とは、診断ポート1060を介して、データを交換する。
自動車1001はインフォテイメント(Infotainment)機器1040を備える。インフォテイメント機器1040として、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有するものが挙げられる。インフォテイメント機器1040は第1のECU1010に接続される。第1のECU1010は、インフォテイメント機器1040から入力された情報を第2のECU1020へ送信する。
自動車1001は、TCU(Tele Communication Unit)1050を備える。TCU1050は通信装置である。TCU1050は通信モジュール1051を備える。通信モジュール1051は、無線通信ネットワークを利用して無線通信を行う。通信モジュール1051は、SIM(Subscriber Identity Module)1052を備える。SIM1052は、無線通信ネットワークを利用するための情報が書き込まれたSIMである。通信モジュール1051は、SIM1052を使用することにより該無線通信ネットワークに接続して無線通信を行うことができる。なお、SIM1052として、eSIM(Embedded Subscriber Identity Module)を使用してもよい。
TCU1050は第1のECU1010に接続される。第1のECU1010は、TCU1050の通信モジュール1051とデータを交換する。
なお、図1の構成では第1のECU1010とTCU1050を直接接続することにより第1のECU1010と通信モジュール1051の間でデータを交換するが、これに限定されない。例えば、TCU1050をインフォテイメント機器1040に接続し、第1のECU1010が、インフォテイメント機器1040を介して、TCU1050の通信モジュール1051とデータを交換してもよい。又は、TCU1050を診断ポート1060に接続し、第1のECU1010が、診断ポート1060を介して、該診断ポート1060に接続されたTCU1050の通信モジュール1051とデータを交換してもよい。又は、第1のECU1010が、SIM1052を含む通信モジュール1051を備えてもよい。第1のECU1010がSIM1052を含む通信モジュール1051を備える場合には、自動車1001はTCU1050を備えなくてもよい。
第1のECU1010は、メイン演算器1011とHSM(Hardware Security Module)1012を備える。メイン演算器1011は、第1のECU1010の機能を実現させるためのコンピュータプログラムを実行する。HSM1012は暗号処理機能等を有する。HSM1012は耐タンパー性(Tamper Resistant)を有する。HSM1012はセキュアエレメント(Secure Element:SE)の例である。HSM1012は、鍵等のデータを記憶する記憶部1013を備える。メイン演算器1011はHSM1012を使用する。
第2のECU1020は、メイン演算器1021とSHE(Secure Hardware Extension)1022を備える。メイン演算器1021は、第2のECU1020の機能を実現させるためのコンピュータプログラムを実行する。SHE1022は暗号処理機能等を有する。SHE1022は耐タンパー性を有する。SHE1022はセキュアエレメントの例である。SHE1022は、鍵等のデータを記憶する記憶部1023を備える。メイン演算器1021はSHE1022を使用する。
自動車1001に備わる車載コンピュータシステム1002は、第1のECU1010と複数の第2のECU1020とがCAN1030に接続されて構成される。第1のECU1010は、ゲートウェイ機能を有し、車載コンピュータシステム1002の内部と外部の間の通信を監視する。本実施形態において、車載コンピュータシステム1002は、自動車1001の車載制御システムとして機能する。なお、第1のECU1010がゲートウェイ機能を有さないように構成してもよい。
以下の説明において、第1のECU1010と第2のECU1020とを特に区別しないときは単にECUと称する。
図2は、鍵生成装置1300の構成例を示す図である。図2において、鍵生成装置1300は、車両インタフェース11と記憶部12と期待値計算部13と検証部14と鍵生成部15と暗号処理部16とを備える。
車両インタフェース11は、自動車1001とデータを送受するインタフェースである。本実施形態では、車両インタフェース11は、診断ポート1060に接続し、診断ポート1060を介してデータを送受する。なお、車両インタフェース11として、診断ポート1060のインタフェース以外のインタフェースを備えてもよい。例えば、車両インタフェース11として、通信モジュールを備え、自動車1001の通信モジュール1051と無線通信を行ってもよい。また、例えば、車両インタフェース11として、CANインタフェースを備え、自動車1001のCAN1030に接続し、CAN1030を介してデータを送受してもよい。
記憶部12は、鍵等のデータを記憶する。期待値計算部13は、ECUが予め格納しているデータの期待値を計算する。ECUが予め格納しているデータとして、例えば、ECUコード(ECU code)が挙げられる。ECUコードは、ECUに適用されるデータの例である。ECUコードは、ECUに予めインストールされる初期プログラム等のコンピュータプログラムであってもよく、又は、ECUに予め設定される初期パラメータ設定値などの設定データであってもよい。
検証部14は、ECUの測定値の検証に係る処理を行う。例えば、検証部14は、期待値計算部13が計算した期待値に基づいて、ECUの測定値を検証する。鍵生成部15は、ECUの鍵を生成する。暗号処理部16は、データの暗号化及び暗号化データの復号を行う。
鍵生成装置1300の機能は、該鍵生成装置1300が備えるCPU(Central Processing Unit:中央演算処理装置)がコンピュータプログラムを実行することにより実現される。なお、鍵生成装置1300として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
図3は、第1のECU1010の構成例を示す図である。図3において、第1のECU1010は、メイン演算器1011とHSM1012とインタフェース部20とを備える。メイン演算器1011は、制御部21と記憶部22とを備える。HSM1012は、記憶部1013と測定値計算部31と暗号処理部32と測定部33と鍵生成部34とを備える。
インタフェース部20は、自第1のECU1010の外部の装置とデータを送受する。インタフェース部20は、CAN1030を介してデータを送受するインタフェースと、インフォテイメント機器1040とデータを送受するインタフェースと、TCU1050とデータを送受するインタフェースと、診断ポート1060を介してデータを送受するインタフェースとを備える。メイン演算器1011は、インタフェース部20を介して、第1のECU1010以外の他の装置とデータの送受を行う。
制御部21は、第1のECU1010の制御を行う。記憶部22は、データを記憶する。記憶部1013は、鍵等のデータを記憶する。測定値計算部31は、ECUコード等のデータの測定値を計算する。暗号処理部32は、データの暗号化及び暗号化データの復号を行う。測定部33は、ECUコード等のデータの測定値を計算し、該測定値を期待値に基づいて検証する。鍵生成部34は、自動車1001内部で使用される鍵(以下、車内鍵と称する)を生成する。
図4は、第2のECU1020の構成例を示す図である。図4において、第2のECU1020は、メイン演算器1021とSHE1022とインタフェース部40とを備える。メイン演算器1021は、制御部41と記憶部42とを備える。SHE1022は、記憶部1023と測定値計算部51と暗号処理部52と測定部53とを備える。
インタフェース部40は、自第2のECU1020の外部の装置とデータを送受する。インタフェース部40は、CAN1030を介してデータを送受するインタフェースを備える。メイン演算器1021は、インタフェース部40を介して、自第2のECU1020以外の他の装置とデータの送受を行う。
制御部41は、第2のECU1020の制御を行う。記憶部42は、データを記憶する。記憶部1023は、鍵等のデータを記憶する。測定値計算部51は、ECUコード等のデータの測定値を計算する。暗号処理部52は、データの暗号化及び暗号化データの復号を行う。測定部53は、ECUコード等のデータの測定値を計算し、該測定値を期待値に基づいて検証する。
なお、本実施形態では、第1のECU1010にHSMを使用しているが、第1のECU1010においてHSMの代わりにSHEを使用してもよい。なお、SHEについては、例えば非特許文献3に記載されている。
[ECU識別子の構成例]
本実施形態に係るECU識別子の構成例1、構成例1を説明する。ECU識別子は、ECUを識別する情報である。
本実施形態に係るECU識別子の構成例1、構成例1を説明する。ECU識別子は、ECUを識別する情報である。
<ECU識別子の構成例1>
ECU識別子の構成例1では、ECU識別子のビット長を64ビット以内にする。このECU識別子のビットの内訳の例を以下に示す。
・ECUベンダー識別子:16ビット
・ECU機種識別子:16ビット
・シリアル番号:32ビット
ECU識別子の構成例1では、ECU識別子のビット長を64ビット以内にする。このECU識別子のビットの内訳の例を以下に示す。
・ECUベンダー識別子:16ビット
・ECU機種識別子:16ビット
・シリアル番号:32ビット
<ECU識別子の構成例2>
ECU識別子の構成例2では、ECU識別子のビット長を128ビット以内にする。このECU識別子のビットの内訳の例1、例2、例3を以下に示す。
(例1)
・車両識別番号(VIN:Vehicle Identification Number):102ビット(17ケタの英数字、1文字は6ビット)
・CAN識別子:11ビット
CAN識別子の11ビットは、CANの標準フォーマットのデータフレーム中の11ビット長のIDフィールドに格納されるCAN識別子である。又は、CAN識別子の11ビットは、CANの拡張フォーマットのデータフレーム中の11ビット長のベースID(Base ID)フィールドに格納されるCAN識別子である。なお、車両識別番号(VIN)については、例えば非特許文献2に記載されている。
ECU識別子の構成例2では、ECU識別子のビット長を128ビット以内にする。このECU識別子のビットの内訳の例1、例2、例3を以下に示す。
(例1)
・車両識別番号(VIN:Vehicle Identification Number):102ビット(17ケタの英数字、1文字は6ビット)
・CAN識別子:11ビット
CAN識別子の11ビットは、CANの標準フォーマットのデータフレーム中の11ビット長のIDフィールドに格納されるCAN識別子である。又は、CAN識別子の11ビットは、CANの拡張フォーマットのデータフレーム中の11ビット長のベースID(Base ID)フィールドに格納されるCAN識別子である。なお、車両識別番号(VIN)については、例えば非特許文献2に記載されている。
(例2)
・車両識別番号(VIN)の製造業者識別コード(WMI:World Manufacturer Identifier)以外の残りの部分:84ビット(14ケタの英数字、1文字6ビット)
・CAN識別子:29ビット
CAN識別子の29ビットは、CANの拡張フォーマットのデータフレーム中の11ビット長のベースIDフィールドに格納されるCAN識別子部分「11ビット」と、18ビット長の拡張ID(Extend ID)フィールドに格納されるCAN識別子部分「18ビット」との合計である。
・車両識別番号(VIN)の製造業者識別コード(WMI:World Manufacturer Identifier)以外の残りの部分:84ビット(14ケタの英数字、1文字6ビット)
・CAN識別子:29ビット
CAN識別子の29ビットは、CANの拡張フォーマットのデータフレーム中の11ビット長のベースIDフィールドに格納されるCAN識別子部分「11ビット」と、18ビット長の拡張ID(Extend ID)フィールドに格納されるCAN識別子部分「18ビット」との合計である。
(例3)
・SHEの識別子(UID):120ビット
この例3では、ECUに備わるSHEのUIDを当該ECUのECU識別子に使用する。
・SHEの識別子(UID):120ビット
この例3では、ECUに備わるSHEのUIDを当該ECUのECU識別子に使用する。
車両識別番号(VIN)、CAN識別子及びSHEのUIDは、例えば自動車1001の製造工場において事前に取得される。
[管理方法の例]
次に本実施形態に係る管理方法の例を説明する。
次に本実施形態に係る管理方法の例を説明する。
<管理方法の例1>
図5は、本実施形態に係る管理方法の例1のシーケンス図である。図5を参照して本実施形態に係る管理方法の例1を説明する。鍵生成装置1300は、例えば、自動車1001の製造工場に設けられている。鍵生成装置1300の車両インタフェース11は、該製造工場で製造中の自動車1001の診断ポート1060に接続される。
図5は、本実施形態に係る管理方法の例1のシーケンス図である。図5を参照して本実施形態に係る管理方法の例1を説明する。鍵生成装置1300は、例えば、自動車1001の製造工場に設けられている。鍵生成装置1300の車両インタフェース11は、該製造工場で製造中の自動車1001の診断ポート1060に接続される。
図5には、説明の便宜上、自動車1001に搭載される第2のECU(n)1020のうち、1個の第2のECU(1)1020のみを示している。但し、nは1からNまでの整数である。Nは、自動車1001に搭載されている第2のECU1020のうち、鍵配信対象の第2のECU1020の個数である。
鍵生成装置1300は、マスタ鍵Master_Secretと、ECUのECUコードと、初期Root鍵Kriとを予め記憶部12に格納している。ECUのECUコードは、ECUの初期ECUコードを含む。
第1のECU1010のHSM1012は、初期Root鍵Kri及び初期署名鍵Kbiを予め記憶部1013に格納している。初期Root鍵Kri及び初期署名鍵Kbiは、例えば第1のECU1010の製造時に、HSM1012に書き込まれる。第2のECU1020のSHE1022は、初期Root鍵Kri及び初期署名鍵Kbiを予め記憶部1023に格納している。初期Root鍵Kri及び初期署名鍵Kbiは、例えば第2のECU1020の製造時に、SHE1022に書き込まれる。初期Root鍵Kri及び初期署名鍵Kbiは、新品のECUに格納される鍵である。
第1のECU1010のメイン演算器1011は、初期ECUコードEciを予め記憶部22に格納している。初期ECUコードEciは、例えば第1のECU1010の製造時に、メイン演算器1011に書き込まれる。初期ECUコードEciは、新品の第1のECU1010に格納されるECUコードである。第2のECU(n)1020のメイン演算器1021は、初期ECUコードEniを予め記憶部42に格納している。初期ECUコードEniは、例えば第2のECU(n)1020の製造時に、メイン演算器1021に書き込まれる。初期ECUコードEniは、新品の第2のECU(n)1020に格納されるECUコードである。
以下、鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されている。
(ステップS1)鍵生成装置1300において、鍵生成部15は、自動車1001に搭載されているECUのRoot鍵と署名鍵とを生成する。本実施形態では、鍵生成部15は、第1のECU1010のRoot鍵Krc及び署名鍵Kbcと、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとを生成する。記憶部12は、第1のECU1010のRoot鍵Krc及び署名鍵Kbcと、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとを格納する。Root鍵Krc及びKrnは、第1の鍵に対応する。署名鍵Kbc及びKbnは、第2の鍵に対応する。
鍵生成部15は、鍵生成装置1300の記憶部12に格納されているマスタ鍵Master_Secretと、第1のECU1010のECU識別子ECU_IDとから第1ダイジェスト値を算出する。第1ダイジェスト値は、第1のECU1010のRoot鍵Krcである。鍵生成部15は、鍵生成装置1300の記憶部12に格納されているマスタ鍵Master_Secretと、第1のECU1010のECU識別子ECU_IDとから第2ダイジェスト値を算出する。第2ダイジェスト値は、第1のECU1010の署名鍵Kbcである。第1ダイジェスト値の算出方法と、第2ダイジェスト値を算出方法とは異なる。よって、第1ダイジェスト値(第1のECU1010のRoot鍵Krc)と第2ダイジェスト値(第1のECU1010の署名鍵Kbc)とは異なる。
鍵生成部15は、鍵生成装置1300の記憶部12に格納されているマスタ鍵Master_Secretと、第2のECU(n)1020のECU識別子ECU_IDとから第1ダイジェスト値を算出する。第1ダイジェスト値は、第2のECU(n)1020のRoot鍵Krnである。鍵生成部15は、鍵生成装置1300の記憶部12に格納されているマスタ鍵Master_Secretと、第2のECU(n)1020のECU識別子ECU_IDとから第2ダイジェスト値を算出する。第2ダイジェスト値は、第2のECU(n)1020の署名鍵Kbnである。第1ダイジェスト値の算出方法と、第2ダイジェスト値の算出方法とは異なる。よって、第1ダイジェスト値(第2のECU(n)1020のRoot鍵Krn)と第2ダイジェスト値(第2のECU(n)1020の署名鍵Kbn)とは異なる。
自動車1001のECUのECU識別子ECU_IDは、上述のECU識別子の構成例のいずれかによって生成される。鍵生成装置1300が自動車1001のECUのECU識別子ECU_IDを生成してもよく、又は、自動車1001のECUのECU識別子ECU_IDが鍵生成装置1300に入力されてもよい。
ダイジェスト値として、例えば、ハッシュ(hash)関数により算出される値や排他的論理和演算により算出される値などが挙げられる。
本実施形態に係る鍵(共通鍵)の生成方法の一例を次式に示す。
共通鍵=ダイジェスト(Master_Secret、ECU_ID、Nk)
但し、Nkは変数である。ダイジェスト(Master_Secret、ECU_ID、Nk)は、マスタ鍵Master_SecretとECU識別子ECU_IDと変数Nkとから生成されるダイジェスト値である。例えば、共通鍵は、マスタ鍵Master_SecretとECU識別子ECU_IDと変数Nkとを入力値に使用して算出されるハッシュ関数値である。変数Nkの値が異なれば、ダイジェスト値の算出方法は異なる。変数Nkの値を変えることによって、同じマスタ鍵Master_SecretとECU識別子ECU_IDとから、異なる共通鍵を生成することができる。例えば、Root鍵用の変数Nkの値をNk_1とし、署名鍵用の変数Nkの値をNk_2とする。この場合、同じマスタ鍵Master_SecretとECU識別子ECU_IDとを使用して、
Root鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_1)、
署名鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_2)、
により、Root鍵と署名鍵とを異なる鍵として生成することができる。
共通鍵=ダイジェスト(Master_Secret、ECU_ID、Nk)
但し、Nkは変数である。ダイジェスト(Master_Secret、ECU_ID、Nk)は、マスタ鍵Master_SecretとECU識別子ECU_IDと変数Nkとから生成されるダイジェスト値である。例えば、共通鍵は、マスタ鍵Master_SecretとECU識別子ECU_IDと変数Nkとを入力値に使用して算出されるハッシュ関数値である。変数Nkの値が異なれば、ダイジェスト値の算出方法は異なる。変数Nkの値を変えることによって、同じマスタ鍵Master_SecretとECU識別子ECU_IDとから、異なる共通鍵を生成することができる。例えば、Root鍵用の変数Nkの値をNk_1とし、署名鍵用の変数Nkの値をNk_2とする。この場合、同じマスタ鍵Master_SecretとECU識別子ECU_IDとを使用して、
Root鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_1)、
署名鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_2)、
により、Root鍵と署名鍵とを異なる鍵として生成することができる。
本実施形態に係る鍵(共通鍵)の生成方法の他の例として、ECUのRoot鍵をハッシュ関数により算出される値とし、署名鍵を排他的論理和演算により算出される値としてもよい。又は、その逆、つまり、ECUのRoot鍵を排他的論理和演算により算出される値とし、署名鍵をハッシュ関数により算出される値としてもよい。
(ステップS2)鍵生成装置1300の暗号処理部16は、初期Root鍵Kriにより第1のECU1010のRoot鍵Krcを暗号化して第1の暗号化データKri(Krc)を生成する。鍵生成装置1300は、車両インタフェース11により、第1の暗号化データKri(Krc)を自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第1の暗号化データKri(Krc)を受信する。
(ステップS3)第1のECU1010の制御部21は、第1の暗号化データKri(Krc)をHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納している初期Root鍵Kriにより第1の暗号化データKri(Krc)を復号して、Root鍵Krcを取得する。HSM1012は、該取得したRoot鍵Krcを記憶部1013に格納する。HSM1012は、記憶部1013において、該取得したRoot鍵Krcを初期Root鍵Kriに代えて格納してもよい。
(ステップS4)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより第1のECU1010の署名鍵Kbcを暗号化して第2の暗号化データKrc(Kbc)を生成する。鍵生成装置1300は、車両インタフェース11により、第2の暗号化データKrc(Kbc)を自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第2の暗号化データKrc(Kbc)を受信する。
(ステップS5)第1のECU1010の制御部21は、第2の暗号化データKrc(Kbc)をHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより第2の暗号化データKrc(Kbc)を復号して、署名鍵Kbcを取得する。HSM1012は、該取得した署名鍵Kbcを記憶部1013に格納する。HSM1012は、記憶部1013において、該取得した署名鍵Kbcを初期署名鍵Kbiに代えて格納してもよい。
(ステップS6)第1のECU1010の制御部21は、記憶部22に格納している初期ECUコードEciをHSM1012に渡して、セキュアブート処理を実行させる。セキュアブート処理において、HSM1012の測定値計算部31は、記憶部1013に格納している署名鍵Kbcにより、初期ECUコードEciの測定値を計算する。本実施形態では、測定値の一例として、CMAC(Cipher-based Message Authentication Code)を使用する。よって、測定値計算部31は、記憶部1013に格納している署名鍵Kbcにより、初期ECUコードEciのCMACを計算する。この計算結果のCMACを測定値Ecn_aと称する。HSM1012は、測定値Ecn_aをセキュアブート処理で使用する期待値に設定する。該期待値「測定値Ecn_a」は記憶部1013に格納される。
(ステップS7)第1のECU1010のHSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより測定値Ecn_aを暗号化して第3の暗号化データKrc(Ecn_a)を生成する。HSM1012は、第3の暗号化データKrc(Ecn_a)を制御部21に渡す。制御部21は、インタフェース部20により、第3の暗号化データKrc(Ecn_a)を、診断ポート1060を介して、鍵生成装置1300に送信する。鍵生成装置1300は、車両インタフェース11により、自動車1001の第1のECU1010から診断ポート1060を介して、第3の暗号化データKrc(Ecn_a)を受信する。
(ステップS8)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより第3の暗号化データKrc(Ecn_a)を復号して測定値Ecn_aを取得する。期待値計算部13は、第1のECU1010の署名鍵Kbcにより、第1のECU1010の初期ECUコードEciのCMACを計算する。この計算結果のCMACを期待値Ecn_bと称する。
なお、第1のECU1010は、測定値Ecn_aを暗号化しないでそのままのデータで鍵生成装置1300に送信してもよい。
なお、第1のECU1010は、測定値Ecn_aを暗号化しないでそのままのデータで鍵生成装置1300に送信してもよい。
検証部14は、測定値Ecn_aと期待値Ecn_bとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には測定値Ecn_aの検証が合格である。測定値Ecn_aの検証が合格である場合には、ステップS9に進む。一方、両者が一致しない場合には測定値Ecn_aの検証が不合格である。測定値Ecn_aの検証が不合格である場合には、図5の処理を終了する。また、測定値Ecn_aの検証が不合格である場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS9)第1のECU1010のHSM1012の鍵生成部34は、車内鍵Kvを生成する。記憶部1013は、車内鍵Kvを格納する。
(ステップS10)鍵生成装置1300の暗号処理部16は、初期Root鍵Kriにより第2のECU(1)1020のRoot鍵Kr1を暗号化して第1の暗号化データKri(Kr1)を生成する。鍵生成装置1300は、車両インタフェース11により、第1の暗号化データKri(Kr1)を、自動車1001の第1のECU1010経由で第2のECU(1)1020に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第1の暗号化データKri(Kr1)を受信すると、該第1の暗号化データKri(Kr1)を、インタフェース部20により、CAN1030を介して第2のECU(1)1020に転送する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第1の暗号化データKri(Kr1)を受信する。
(ステップS11)第2のECU(1)1020の制御部41は、第1の暗号化データKri(Kr1)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納している初期Root鍵Kriにより第1の暗号化データKri(Kr1)を復号して、Root鍵Kr1を取得する。SHE1022は、該取得したRoot鍵Kr1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得したRoot鍵Kr1を初期Root鍵Kriに代えて格納してもよい。
(ステップS12)鍵生成装置1300の暗号処理部16は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の署名鍵Kb1を暗号化して第2の暗号化データKr1(Kb1)を生成する。鍵生成装置1300は、車両インタフェース11により、第2の暗号化データKr1(Kb1)を、自動車1001の第1のECU1010経由で第2のECU(1)1020に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第2の暗号化データKr1(Kb1)を受信すると、該第2の暗号化データKr1(Kb1)を、インタフェース部20により、CAN1030を介して第2のECU(1)1020に転送する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第2の暗号化データKr1(Kb1)を受信する。
(ステップS13)第2のECU(1)1020の制御部41は、第2の暗号化データKr1(Kb1)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第2の暗号化データKr1(Kb1)を復号して、署名鍵Kb1を取得する。SHE1022は、該取得した署名鍵Kb1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した署名鍵Kb1を初期署名鍵Kbiに代えて格納してもよい。
(ステップS14)第2のECU(1)1020の制御部41は、記憶部42に格納している初期ECUコードE1iをSHE1022に渡して、セキュアブート処理を実行させる。セキュアブート処理において、SHE1022の測定値計算部51は、記憶部1023に格納している署名鍵Kb1により、初期ECUコードE1iの測定値を計算する。本実施形態では、測定値の一例として、CMACを使用する。よって、測定値計算部51は、記憶部1023に格納している署名鍵Kb1により、初期ECUコードE1iのCMACを計算する。この計算結果のCMACを測定値E1n_aと称する。SHE1022は、測定値E1n_aをセキュアブート処理で使用する期待値に設定する。該期待値「測定値E1n_a」は記憶部1023に格納される。
(ステップS15)第2のECU(1)1020のSHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により測定値E1n_aを暗号化して第3の暗号化データKr1(E1n_a)を生成する。SHE1022は、第3の暗号化データKr1(E1n_a)を制御部41に渡す。制御部41は、インタフェース部40により、第3の暗号化データKr1(E1n_a)を、CAN1030を介して第1のECU1010経由で鍵生成装置1300に送信する。第1のECU1010は、インタフェース部20により、第2のECU(1)1020からCAN1030を介して、第3の暗号化データKr1(E1n_a)を受信すると、該第3の暗号化データKr1(E1n_a)を、インタフェース部20により、診断ポート1060を介して鍵生成装置1300に転送する。鍵生成装置1300は、車両インタフェース11により、自動車1001の第1のECU1010から診断ポート1060を介して、第3の暗号化データKr1(E1n_a)を受信する。
(ステップS16)鍵生成装置1300の暗号処理部16は、第2のECU(1)1020のRoot鍵Kr1により第3の暗号化データKr1(E1n_a)を復号して測定値E1n_aを取得する。期待値計算部13は、第2のECU(1)1020の署名鍵Kb1により、第2のECU(1)1020の初期ECUコードE1iのCMACを計算する。この計算結果のCMACを期待値E1n_bと称する。
なお、第2のECU(1)1020は、測定値E1n_aを暗号化しないでそのままのデータで鍵生成装置1300に送信してもよい。
なお、第2のECU(1)1020は、測定値E1n_aを暗号化しないでそのままのデータで鍵生成装置1300に送信してもよい。
検証部14は、測定値E1n_aと期待値E1n_bとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には測定値E1n_aの検証が合格である。測定値E1n_aの検証が合格である場合には、ステップS17に進む。一方、両者が一致しない場合には測定値E1n_aの検証が不合格である。測定値E1n_aの検証が不合格である場合には、第2のECU(1)1020について図5の処理を終了する。よって、測定値E1n_aの検証が不合格である場合には、第2のECU(1)1020についてステップS17は実行されない。また、測定値E1n_aの検証が不合格である場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS17)鍵生成装置1300は、車両インタフェース11により、車内鍵送付要求メッセージを自動車1001の第1のECU1010に送信する。この車内鍵送付要求メッセージは、測定値E1n_aの検証が合格した第2のECU(1)1020に車内鍵を送付することを要求するメッセージである。該車内鍵送付要求メッセージは、第2のECU(1)1020のRoot鍵Kr1を含む。該Root鍵Kr1は、第1のECU1010のRoot鍵Krcにより暗号化されて該車内鍵送付要求メッセージに格納されることが好ましい。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、車内鍵送付要求メッセージを受信する。
(ステップS18)第1のECU1010の制御部21は、車内鍵送付要求メッセージに含まれる第2のECU(1)1020のRoot鍵Kr1をHSM1012に渡して、車内鍵Kvの暗号化を実行させる。なお、車内鍵送付要求メッセージに含まれる第2のECU(1)1020のRoot鍵Kr1が暗号化されている場合には、制御部21は、該Root鍵Kr1の暗号化データKrc(Kr1)をHSM1012に渡して、Root鍵Krcにより復号させることにより、第2のECU(1)1020のRoot鍵Kr1を取得する。
HSM1012の暗号処理部32は、第2のECU(1)1020のRoot鍵Kr1により車内鍵Kvを暗号化して暗号化データKr1(Kv)を生成する。HSM1012は、暗号化データKr1(Kv)を制御部21に渡す。制御部21は、インタフェース部20により、暗号化データKr1(Kv)を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、暗号化データKr1(Kv)を受信する。
(ステップS19)第2のECU(1)1020の制御部41は、暗号化データKr1(Kv)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により暗号化データKr1(Kv)を復号して、車内鍵Kvを取得する。SHE1022は、該取得した車内鍵Kvを記憶部1023に格納する。
上記ステップS10からステップS19までは、自動車1001に搭載されている全ての第2のECU(n)1020に対して同様に実行される。
上述した管理方法の例1によれば、自動車1001に搭載されているECUが算出したECUコードの測定値を、鍵生成装置1300が期待値に基づいて検証することにより、自動車1001に搭載されているECUの真贋判定を行う。これにより、自動車1001に搭載されているECUの信頼性が向上する効果を奏する。
<管理方法の例2>
管理方法の例2は、上述した管理方法の例1の変形例である。図6は、本実施形態に係る管理方法の例2のシーケンス図である。図6において、図5の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図6を参照して、上述した管理方法の例1と異なる点を主に説明する。
管理方法の例2は、上述した管理方法の例1の変形例である。図6は、本実施形態に係る管理方法の例2のシーケンス図である。図6において、図5の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図6を参照して、上述した管理方法の例1と異なる点を主に説明する。
鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されている。ステップS1からステップS8までが実行される。ステップS1からステップS8までは、上述した図5に係る管理方法の例1と同じである。ステップS8において測定値Ecn_aの検証が合格である場合には、ステップS21に進む。一方、ステップS8において測定値Ecn_aの検証が不合格である場合には、図6の処理を終了する。また、測定値Ecn_aの検証が不合格である場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS21)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnを各々に暗号化する。この暗号化によって、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)とが生成される。
鍵生成装置1300は、車両インタフェース11により、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)とを自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)とを受信する。
(ステップS22)第1のECU1010の制御部21は、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)とをHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)とを各々に復号する。この復号によって、N個のRoot鍵Kr1、Kr2、・・・、KrNと、N個の署名鍵Kb1、Kb2、・・・、KbNとが取得される。HSM1012は、該取得したN個のRoot鍵Kr1、Kr2、・・・、KrNと、N個の署名鍵Kb1、Kb2、・・・、KbNとを記憶部1013に格納する。
(ステップS23)第1のECU1010のHSM1012の鍵生成部34は、車内鍵Kvを生成する。記憶部1013は、車内鍵Kvを格納する。
(ステップS24)第1のECU1010のHSM1012の暗号処理部32は、初期Root鍵Kriにより第2のECU(1)1020のRoot鍵Kr1を暗号化して第1の暗号化データKri(Kr1)を生成する。HSM1012は、第1の暗号化データKri(Kr1)を制御部21に渡す。制御部21は、インタフェース部20により、第1の暗号化データKri(Kr1)を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第1の暗号化データKri(Kr1)を受信する。
(ステップS25)第2のECU(1)1020の制御部41は、第1の暗号化データKri(Kr1)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納している初期Root鍵Kriにより第1の暗号化データKri(Kr1)を復号して、Root鍵Kr1を取得する。SHE1022は、該取得したRoot鍵Kr1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得したRoot鍵Kr1を初期Root鍵Kriに代えて格納してもよい。
(ステップS26)第1のECU1010のHSM1012の暗号処理部32は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の署名鍵Kb1を暗号化して第2の暗号化データKr1(Kb1)を生成する。HSM1012は、第2の暗号化データKr1(Kb1)を制御部21に渡す。制御部21は、インタフェース部20により、第2の暗号化データKr1(Kb1)を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第2の暗号化データKr1(Kb1)を受信する。
(ステップS27)第2のECU(1)1020の制御部41は、第2の暗号化データKr1(Kb1)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第2の暗号化データKr1(Kb1)を復号して、署名鍵Kb1を取得する。SHE1022は、該取得した署名鍵Kb1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した署名鍵Kb1を初期署名鍵Kbiに代えて格納してもよい。
次いでステップS14からステップS19までが実行される。ステップS14からステップS19までは、上述した図5に係る管理方法の例1と同じである。
上記ステップS24からステップS27及びステップS14からステップS19までは、自動車1001に搭載されている全ての第2のECU(n)1020に対して同様に実行される。
なお、上記ステップS22からステップS27までは、自動車1001内に閉じた処理である。このため、ステップS22からステップS27までは、鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されていなくてもよい。
上述した管理方法の例2によれば、管理方法の例1と同様に、自動車1001に搭載されているECUが算出したECUコードの測定値を、鍵生成装置1300が期待値に基づいて検証することにより、自動車1001に搭載されているECUの真贋判定を行う。これにより、自動車1001に搭載されているECUの信頼性が向上する効果を奏する。
また、管理方法の例2によれば、第1のECU1010は、第2のECU(n)1020に、鍵生成装置1300から送信されるN個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)とを中継する機能(ステップS22、S24及びS26に対応する機能)を有する。これにより、鍵生成装置1300と自動車1001とが接続される時間を、管理方法の例1よりも短縮できる。
<管理方法の例3>
図7は、本実施形態に係る管理方法の例3のシーケンス図である。図7を参照して本実施形態に係る管理方法の例3を説明する。鍵生成装置1300は、例えば、自動車1001の製造工場に設けられている。鍵生成装置1300の車両インタフェース11は、該製造工場で製造中の自動車1001の診断ポート1060に接続される。
図7は、本実施形態に係る管理方法の例3のシーケンス図である。図7を参照して本実施形態に係る管理方法の例3を説明する。鍵生成装置1300は、例えば、自動車1001の製造工場に設けられている。鍵生成装置1300の車両インタフェース11は、該製造工場で製造中の自動車1001の診断ポート1060に接続される。
図7には、説明の便宜上、自動車1001に搭載される第2のECU(n)1020のうち、1個の第2のECU(1)1020のみを示している。但し、nは1からNまでの整数である。Nは、自動車1001に搭載されている第2のECU1020のうち、鍵配信対象の第2のECU1020の個数である。
鍵生成装置1300は、図5に係る管理方法の例1と同様に、マスタ鍵Master_Secretと、ECUのECUコードと、初期Root鍵Kriとを予め記憶部12に格納している。ECUのECUコードは、ECUの初期ECUコードを含む。
第1のECU1010のHSM1012は、図5に係る管理方法の例1と同様に、初期Root鍵Kri及び初期署名鍵Kbiを予め記憶部1013に格納している。第2のECU1020のSHE1022は、図5に係る管理方法の例1と同様に、初期Root鍵Kri及び初期署名鍵Kbiを予め記憶部1023に格納している。
第1のECU1010のメイン演算器1011は、図5に係る管理方法の例1と同様に、初期ECUコードEciを予め記憶部22に格納している。第2のECU(n)1020のメイン演算器1021は、図5に係る管理方法の例1と同様に、初期ECUコードEniを予め記憶部42に格納している。
以下、鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されている。
(ステップS31)鍵生成装置1300において、鍵生成部15は、自動車1001に搭載されているECUのRoot鍵と署名鍵とを生成する。本実施形態では、鍵生成部15は、第1のECU1010のRoot鍵Krc及び署名鍵Kbcと、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとを生成する。記憶部12は、第1のECU1010のRoot鍵Krc及び署名鍵Kbcと、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとを格納する。Root鍵Krc及びKrnは、第1の鍵に対応する。署名鍵Kbc及びKbnは、第2の鍵に対応する。Root鍵Krc及びKrn、並びに、署名鍵Kbc及びKbnの生成方法は、図5に係る管理方法の例1のステップS1と同じである。
期待値計算部13は、第1のECU1010の署名鍵Kbcにより、第1のECU1010の初期ECUコードEci(CGWコード)のCMACを計算する。この計算結果のCMACを期待値Ecnと称する。期待値計算部13は、第2のECU(n)1020の署名鍵Kbnにより、第2のECU(n)1020の初期ECUコードEni(ECUnコード)のCMACを計算する。この計算結果のCMACを期待値Ennと称する。これにより、第1のECU1010の初期ECUコードEci(CGWコード)についての期待値Ecnと、N個の第2のECU(n)1020の初期ECUコードEni(ECUnコード)についての各々の期待値E1n、E2n、・・・、ENnとが、期待値計算部13によって生成された。記憶部12は、第1のECU1010の初期ECUコードEci(CGWコード)についての期待値Ecnと、N個の第2のECU(n)1020の初期ECUコードEni(ECUnコード)についての各々の期待値E1n、E2n、・・・、ENnとを格納する。
次いでステップS32及びステップS33が実行される。ステップS32は、図5に係る管理方法の例1のステップS2と同じである。ステップS33は、図5に係る管理方法の例1のステップS3と同じである。次いでステップS34が実行される。
(ステップS34)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより第1のECU1010の署名鍵Kbc及び期待値Ecnを各々に暗号化して、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を生成する。鍵生成装置1300は、車両インタフェース11により、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を受信する。
(ステップS35)第1のECU1010の制御部21は、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)をHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を各々に復号して、署名鍵Kbc及び期待値Ecnを取得する。HSM1012は、該取得した署名鍵Kbcを記憶部1013に格納する。HSM1012は、記憶部1013において、該取得した署名鍵Kbcを初期署名鍵Kbiに代えて格納してもよい。また、HSM1012は、該取得した期待値Ecnをセキュアブート処理で使用する期待値に設定する。
(ステップS36)第1のECU1010の制御部21は、記憶部22に格納している初期ECUコードEciをHSM1012に渡して、セキュアブート処理を実行させる。セキュアブート処理において、HSM1012の測定部33は、記憶部1013に格納している署名鍵Kbcにより、初期ECUコードEciの測定値を計算する。本実施形態では、測定値の一例として、CMACを使用する。よって、測定部33は、記憶部1013に格納している署名鍵Kbcにより、初期ECUコードEciのCMACを計算する。この計算結果のCMACを測定値Ecn_xと称する。
測定部33は、測定値Ecn_xと期待値Ecnとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には測定値Ecn_xの検証が合格である。一方、両者が一致しない場合には測定値Ecn_xの検証が不合格である。HSM1012は、測定値Ecn_xの検証結果「合格又は不合格」を制御部21に渡す。
(ステップS37)制御部21は、インタフェース部20により、セキュアブート結果として測定値Ecn_xの検証結果「合格又は不合格」を、診断ポート1060を介して、鍵生成装置1300に送信する。鍵生成装置1300は、車両インタフェース11により、自動車1001の第1のECU1010から診断ポート1060を介して、セキュアブート結果「合格又は不合格」を受信する。
なお、第1のECU1010は、セキュアブート結果としての測定値Ecn_xの検証結果「合格又は不合格」をRoot鍵Krcにより暗号化して鍵生成装置1300に送信してもよい。この場合、鍵生成装置1300は、該暗号化されたセキュアブート結果「合格又は不合格」を受信して第1のECU1010のRoot鍵Krcにより復号する。
なお、第1のECU1010は、セキュアブート結果としての測定値Ecn_xの検証結果「合格又は不合格」をRoot鍵Krcにより暗号化して鍵生成装置1300に送信してもよい。この場合、鍵生成装置1300は、該暗号化されたセキュアブート結果「合格又は不合格」を受信して第1のECU1010のRoot鍵Krcにより復号する。
鍵生成装置1300が自動車1001の第1のECU1010から受信したセキュアブート結果「合格又は不合格」が「合格」である場合には、ステップS38に進む。一方、該セキュアブート結果「合格又は不合格」が「不合格」である場合には、図7の処理を終了する。また、該セキュアブート結果「合格又は不合格」が「不合格」である場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS38)第1のECU1010のHSM1012の鍵生成部34は、車内鍵Kvを生成する。記憶部1013は、車内鍵Kvを格納する。
次いでステップS39及びステップS40が実行される。ステップS39は、図5に係る管理方法の例1のステップS10と同じである。ステップS40は、図5に係る管理方法の例1のステップS11と同じである。次いでステップS41が実行される。
(ステップS41)鍵生成装置1300の暗号処理部16は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の署名鍵Kb1及び期待値E1nを各々に暗号化して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を生成する。鍵生成装置1300は、車両インタフェース11により、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を、自動車1001の第1のECU1010経由で第2のECU(1)1020に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を受信すると、該第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を、インタフェース部20により、CAN1030を介して第2のECU(1)1020に転送する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を受信する。
(ステップS42)第2のECU(1)1020の制御部41は、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を各々に復号して、署名鍵Kb1及び期待値E1nを取得する。SHE1022は、該取得した署名鍵Kb1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した署名鍵Kb1を初期署名鍵Kbiに代えて格納してもよい。また、SHE1022は、該取得した期待値E1nをセキュアブート処理で使用する期待値に設定する。
(ステップS43)第2のECU(1)1020の制御部41は、記憶部42に格納している初期ECUコードE1iをSHE1022に渡して、セキュアブート処理を実行させる。セキュアブート処理において、SHE1022の測定部53は、記憶部1023に格納している署名鍵Kb1により、初期ECUコードE1iの測定値を計算する。本実施形態では、測定値の一例として、CMACを使用する。よって、測定部53は、記憶部1023に格納している署名鍵Kb1により、初期ECUコードE1iのCMACを計算する。この計算結果のCMACを測定値E1n_xと称する。
測定部53は、測定値E1n_xと期待値E1nとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には測定値E1n_xの検証が合格である。一方、両者が一致しない場合には測定値E1n_xの検証が不合格である。SHE1022は、測定値E1n_xの検証結果「合格又は不合格」を制御部41に渡す。
(ステップS44)制御部41は、インタフェース部40により、セキュアブート結果として測定値E1n_xの検証結果「合格又は不合格」を、CAN1030を介して第1のECU1010経由で鍵生成装置1300に送信する。第1のECU1010は、インタフェース部20により、第2のECU(1)1020からCAN1030を介して、セキュアブート結果「合格又は不合格」を受信すると、該セキュアブート結果「合格又は不合格」を、インタフェース部20により、診断ポート1060を介して鍵生成装置1300に転送する。鍵生成装置1300は、車両インタフェース11により、自動車1001の第1のECU1010から診断ポート1060を介して、第2のECU(1)1020のセキュアブート結果「合格又は不合格」を受信する。
なお、第2のECU(1)1020は、セキュアブート結果としての測定値E1n_xの検証結果「合格又は不合格」をRoot鍵Kr1により暗号化して鍵生成装置1300に送信してもよい。この場合、鍵生成装置1300は、該暗号化されたセキュアブート結果「合格又は不合格」を受信して第2のECU(1)1020のRoot鍵Kr1により復号する。
なお、第2のECU(1)1020は、セキュアブート結果としての測定値E1n_xの検証結果「合格又は不合格」をRoot鍵Kr1により暗号化して鍵生成装置1300に送信してもよい。この場合、鍵生成装置1300は、該暗号化されたセキュアブート結果「合格又は不合格」を受信して第2のECU(1)1020のRoot鍵Kr1により復号する。
鍵生成装置1300が自動車1001の第2のECU(1)1020から受信したセキュアブート結果「合格又は不合格」が「合格」である場合には、ステップS45に進む。一方、該セキュアブート結果「合格又は不合格」が不合格である場合には、第2のECU(1)1020について図7の処理を終了する。よって、第2のECU(1)1020からのセキュアブート結果「合格又は不合格」が不合格である場合には、第2のECU(1)1020についてステップS45は実行されない。また、第2のECU(1)1020からのセキュアブート結果「合格又は不合格」が不合格である場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
次いでステップS45からステップS47までが実行される。ステップS45は、図5に係る管理方法の例1のステップS17と同じである。ステップS46は、図5に係る管理方法の例1のステップS18と同じである。ステップS47は、図5に係る管理方法の例1のステップS19と同じである。
上記ステップS39からステップS47までは、自動車1001に搭載されている全ての第2のECU(n)1020に対して同様に実行される。
上述した管理方法の例3によれば、自動車1001に搭載されているECUのECUコードの期待値を鍵生成装置1300が生成してECUに供給する。そして、ECUが、自己のECUコードの測定値を、鍵生成装置1300から供給された期待値に基づいて検証し、この検証結果を鍵生成装置1300に通知することにより、自動車1001に搭載されているECUの真贋判定を行う。これにより、自動車1001に搭載されているECUの信頼性が向上する効果を奏する。
<管理方法の例4>
管理方法の例4は、上述した管理方法の例3の変形例である。図8は、本実施形態に係る管理方法の例4のシーケンス図である。図8において、図7の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図8を参照して、上述した管理方法の例3と異なる点を主に説明する。
管理方法の例4は、上述した管理方法の例3の変形例である。図8は、本実施形態に係る管理方法の例4のシーケンス図である。図8において、図7の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図8を参照して、上述した管理方法の例3と異なる点を主に説明する。
鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されている。ステップS31からステップS38までが実行される。ステップS31からステップS38までは、上述した図7に係る管理方法の例3と同じである。鍵生成装置1300が自動車1001の第1のECU1010から受信したセキュアブート結果「合格又は不合格」が「合格」である場合には、ステップS38に次いでステップS51が実行される。一方、該セキュアブート結果「合格又は不合格」が「不合格」である場合には、図8の処理を終了する。また、該セキュアブート結果「合格又は不合格」が「不合格」である場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS51)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより、N個の第2のECU(n)1020の各々のRoot鍵Krn、署名鍵Kbn及び期待値Ennを各々に暗号化する。この暗号化によって、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)と、N個の第4の暗号化データKrc(E1n)、Krc(E2n)、・・・、Krc(ENn)が生成される。
鍵生成装置1300は、車両インタフェース11により、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)と、N個の第4の暗号化データKrc(E1n)、Krc(E2n)、・・・、Krc(ENn)とを自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)と、N個の第4の暗号化データKrc(E1n)、Krc(E2n)、・・・、Krc(ENn)とを受信する。
(ステップS52)第1のECU1010の制御部21は、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)と、N個の第4の暗号化データKrc(E1n)、Krc(E2n)、・・・、Krc(ENn)とをHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより、N個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)と、N個の第4の暗号化データKrc(E1n)、Krc(E2n)、・・・、Krc(ENn)とを各々に復号する。この復号によって、N個のRoot鍵Kr1、Kr2、・・・、KrNと、N個の署名鍵Kb1、Kb2、・・・、KbNと、N個の期待値E1n、E2n、・・・、ENnとが取得される。HSM1012は、該取得したN個のRoot鍵Kr1、Kr2、・・・、KrNと、N個の署名鍵Kb1、Kb2、・・・、KbNと、N個の期待値E1n、E2n、・・・、ENnとを記憶部1013に格納する。
次いでステップS53及びステップS54が実行される。ステップS53は、図6に係る管理方法の例2のステップS24と同じである。ステップS54は、図6に係る管理方法の例2のステップS25と同じである。次いでステップS55が実行される。
(ステップS55)第1のECU1010のHSM1012の暗号処理部32は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の署名鍵Kb1及び期待値E1nを各々に暗号化して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を生成する。HSM1012は、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を制御部21に渡す。制御部21は、インタフェース部20により、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を受信する。
(ステップS56)第2のECU(1)1020の制御部41は、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を各々に復号して、署名鍵Kb1及び期待値E1nを取得する。SHE1022は、該取得した署名鍵Kb1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した署名鍵Kb1を初期署名鍵Kbiに代えて格納してもよい。また、SHE1022は、該取得した期待値E1nをセキュアブート処理で使用する期待値に設定する。
次いでステップS57が実行される。ステップS57は、図7に係る管理方法の例3のステップS43と同じである。次いでステップS58が実行される。
(ステップS58)第2のECU(1)1020の制御部41は、インタフェース部40により、セキュアブート結果として測定値E1n_xの検証結果「合格又は不合格」を、CAN1030を介して第1のECU1010に送信する。第1のECU1010は、インタフェース部20により、第2のECU(1)1020からCAN1030を介して、セキュアブート結果「合格又は不合格」を受信する。
第1のECU1010が第2のECU(1)1020から受信したセキュアブート結果「合格又は不合格」が「合格」である場合には、ステップS59に進む。一方、該セキュアブート結果「合格又は不合格」が不合格である場合には、第2のECU(1)1020について図8の処理を終了する。よって、第2のECU(1)1020からのセキュアブート結果「合格又は不合格」が不合格である場合には、第2のECU(1)1020についてステップS59は実行されない。また、第2のECU(1)1020からのセキュアブート結果「合格又は不合格」が不合格である場合には、第1のECU1010は所定のエラー処理を実行してもよい。
(ステップS59)第1のECU1010のHSM1012の暗号処理部32は、第2のECU(1)1020のRoot鍵Kr1により車内鍵Kvを暗号化して暗号化データKr1(Kv)を生成する。HSM1012は、暗号化データKr1(Kv)を制御部21に渡す。制御部21は、インタフェース部20により、暗号化データKr1(Kv)を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、暗号化データKr1(Kv)を受信する。
(ステップS60)第2のECU(1)1020の制御部41は、暗号化データKr1(Kv)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により暗号化データKr1(Kv)を復号して、車内鍵Kvを取得する。SHE1022は、該取得した車内鍵Kvを記憶部1023に格納する。
上記ステップS53からステップS60までは、自動車1001に搭載されている全ての第2のECU(n)1020に対して同様に実行される。
なお、上記ステップS53からステップS60までは、自動車1001内に閉じた処理である。このため、ステップS53からステップS60までは、鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されていなくてもよい。
上述した管理方法の例4によれば、管理方法の例3と同様に、自動車1001に搭載されているECUのECUコードの期待値を鍵生成装置1300が生成してECUに供給する。そして、ECUが、自己のECUコードの測定値を、鍵生成装置1300から供給された期待値に基づいて検証する。そして、本管理方法の例4によれば、第1のECU1010による検証結果を鍵生成装置1300に通知することにより、自動車1001に搭載されている第1のECU1010の真贋判定を行う。また、第2のECU(n)1020による検証結果を第1のECU1010に通知することにより、自動車1001に搭載されている第2のECU(n)1020の真贋判定を行う。これにより、自動車1001に搭載されているECUの信頼性が向上する効果を奏する。また、第1のECU1010がN個の第2のECU(n)1020の真贋判定を行うことにより、鍵生成装置1300と自動車1001とが接続される時間を、管理方法の例3よりも短縮できる。
また、管理方法の例4によれば、第1のECU1010は、第2のECU(n)1020に、鍵生成装置1300から送信されるN個の第1の暗号化データKrc(Kr1)、Krc(Kr2)、・・・、Krc(KrN)と、N個の第2の暗号化データKrc(Kb1)、Krc(Kb2)、・・・、Krc(KbN)と、N個の第4の暗号化データKrc(E1n)、Krc(E2n)、・・・、Krc(ENn)とを中継する機能(ステップS52、S53及びS55に対応する機能)を有する。これにより、鍵生成装置1300と自動車1001とが接続される時間を、管理方法の例3よりも短縮できる。
<管理方法の例5>
図9は、本実施形態に係る管理方法の例5のシーケンス図である。図9を参照して本実施形態に係る管理方法の例5を説明する。鍵生成装置1300は、例えば、自動車1001の製造工場に設けられている。鍵生成装置1300の車両インタフェース11は、該製造工場で製造中の自動車1001の診断ポート1060に接続される。
図9は、本実施形態に係る管理方法の例5のシーケンス図である。図9を参照して本実施形態に係る管理方法の例5を説明する。鍵生成装置1300は、例えば、自動車1001の製造工場に設けられている。鍵生成装置1300の車両インタフェース11は、該製造工場で製造中の自動車1001の診断ポート1060に接続される。
図9には、説明の便宜上、自動車1001に搭載される第2のECU(n)1020のうち、1個の第2のECU(1)1020のみを示している。但し、nは1からNまでの整数である。Nは、自動車1001に搭載されている第2のECU1020のうち、鍵配信対象の第2のECU1020の個数である。
鍵生成装置1300は、図5に係る管理方法の例1と同様に、マスタ鍵Master_Secretと、ECUのECUコードと、初期Root鍵Kriとを予め記憶部12に格納している。ECUのECUコードは、ECUの初期ECUコードを含む。
第1のECU1010のHSM1012は、図5に係る管理方法の例1と同様に、初期Root鍵Kri及び初期署名鍵Kbiを予め記憶部1013に格納している。本管理方法の例5では、第1のECU1010のHSM1012は、さらに初期暗号鍵Keciを予め記憶部1013に格納している。第2のECU1020のSHE1022は、図5に係る管理方法の例1と同様に、初期Root鍵Kri及び初期署名鍵Kbiを予め記憶部1023に格納している。本管理方法の例5では、第2のECU1020のSHE1022は、さらに初期暗号鍵Keeiを予め記憶部1023に格納している。
第1のECU1010のメイン演算器1011は、図5に係る管理方法の例1と同様に、初期ECUコードEciを予め記憶部22に格納している。第2のECU(n)1020のメイン演算器1021は、図5に係る管理方法の例1と同様に、初期ECUコードEniを予め記憶部42に格納している。
以下、鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されている。
(ステップS71)鍵生成装置1300において、鍵生成部15は、自動車1001に搭載されているECUのRoot鍵と署名鍵とを生成する。本実施形態では、鍵生成部15は、第1のECU1010のRoot鍵Krc及び署名鍵Kbcと、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとを生成する。記憶部12は、第1のECU1010のRoot鍵Krc及び署名鍵Kbcと、N個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとを格納する。Root鍵Krc及びKrnは、第1の鍵に対応する。署名鍵Kbc及びKbnは、第2の鍵に対応する。Root鍵Krc及びKrn、並びに、署名鍵Kbc及びKbnの生成方法は、図5に係る管理方法の例1のステップS1と同じである。
本管理方法の例5では、鍵生成部15は、さらに、自動車1001に搭載されているECUの暗号鍵を生成する。暗号鍵は、Root鍵及び署名鍵とは異なるように生成される。例えば、Root鍵用の変数Nkの値をNk_1とし、署名鍵用の変数Nkの値をNk_2とし、暗号鍵用の変数Nkの値をNk_3とする。鍵生成部15は、マスタ鍵Master_SecretとECUのECU識別子ECU_IDとを使用して、
Root鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_1)、
署名鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_2)、
暗号鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_3)、
により、Root鍵と署名鍵と暗号鍵とを異なる鍵として生成する。鍵生成部15は、上述した第1のECU1010のRoot鍵Krc及び署名鍵KbcとN個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとに加えて、さらに、第1のECU1010の暗号鍵Kecと、N個の第2のECU(n)1020の各々の暗号鍵Kenとを生成する。記憶部12は、上述した第1のECU1010のRoot鍵Krc及び署名鍵KbcとN個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとに加えて、さらに、第1のECU1010の暗号鍵Kecと、N個の第2のECU(n)1020の各々の暗号鍵Kenとを格納する。暗号鍵Kec及びKenは、第3の鍵に対応する。
Root鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_1)、
署名鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_2)、
暗号鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_3)、
により、Root鍵と署名鍵と暗号鍵とを異なる鍵として生成する。鍵生成部15は、上述した第1のECU1010のRoot鍵Krc及び署名鍵KbcとN個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとに加えて、さらに、第1のECU1010の暗号鍵Kecと、N個の第2のECU(n)1020の各々の暗号鍵Kenとを生成する。記憶部12は、上述した第1のECU1010のRoot鍵Krc及び署名鍵KbcとN個の第2のECU(n)1020の各々のRoot鍵Krn及び署名鍵Kbnとに加えて、さらに、第1のECU1010の暗号鍵Kecと、N個の第2のECU(n)1020の各々の暗号鍵Kenとを格納する。暗号鍵Kec及びKenは、第3の鍵に対応する。
期待値計算部13は、第1のECU1010の署名鍵Kbcにより、第1のECU1010の初期ECUコードEci(CGWコード)のCMACを計算する。この計算結果のCMACを期待値Ecnと称する。期待値計算部13は、第2のECU(n)1020の署名鍵Kbnにより、第2のECU(n)1020の初期ECUコードEni(ECUnコード)のCMACを計算する。この計算結果のCMACを期待値Ennと称する。これにより、第1のECU1010の初期ECUコードEci(CGWコード)についての期待値Ecnと、N個の第2のECU(n)1020の初期ECUコードEni(ECUnコード)についての各々の期待値E1n、E2n、・・・、ENnとが、期待値計算部13によって生成された。記憶部12は、第1のECU1010の初期ECUコードEci(CGWコード)についての期待値Ecnと、N個の第2のECU(n)1020の初期ECUコードEni(ECUnコード)についての各々の期待値E1n、E2n、・・・、ENnとを格納する。
次いでステップS72及びステップS73が実行される。ステップS72は、図5に係る管理方法の例1のステップS2と同じである。ステップS73は、図5に係る管理方法の例1のステップS3と同じである。次いでステップS74が実行される。
(ステップS74)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより第1のECU1010の暗号鍵Kecを暗号化して、第5の暗号化データKrc(Kec)を生成する。検証部14は、乱数Nonceを発生させる。記憶部12は、該乱数Nonceを格納する。鍵生成装置1300は、車両インタフェース11により、第5の暗号化データKrc(Kec)及び乱数Nonceを自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第5の暗号化データKrc(Kec)及び乱数Nonceを受信する。
(ステップS75)第1のECU1010の制御部21は、第5の暗号化データKrc(Kec)をHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより第5の暗号化データKrc(Kec)を復号して、暗号鍵Kecを取得する。HSM1012は、該取得した暗号鍵Kecを記憶部1013に格納する。HSM1012は、記憶部1013において、該取得した暗号鍵Kecを初期暗号鍵Keciに代えて格納してもよい。本実施形態では、暗号鍵Kecは、HSM1012が実行するセキュアブート処理において測定値の検証が合格した場合に使用することができる暗号鍵として設定される。したがって、暗号鍵Kecは、HSM1012が実行するセキュアブート処理において測定値の検証が不合格になった場合には使用することができない。
記憶部22は、乱数Nonceを格納する。乱数Nonceの格納場所は、記憶部22の記憶領域のうち、セキュアブートの測定対象外の不揮発性記憶領域である。
(ステップS76)鍵生成装置1300の暗号処理部16は、第1のECU1010のRoot鍵Krcにより第1のECU1010の署名鍵Kbc及び期待値Ecnを各々に暗号化して、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を生成する。鍵生成装置1300は、車両インタフェース11により、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を受信する。
(ステップS77)第1のECU1010の制御部21は、第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)をHSM1012に渡す。HSM1012の暗号処理部32は、記憶部1013に格納しているRoot鍵Krcにより第2の暗号化データKrc(Kbc)及び第4の暗号化データKrc(Ecn)を各々に復号して、署名鍵Kbc及び期待値Ecnを取得する。HSM1012は、該取得した署名鍵Kbcを記憶部1013に格納する。HSM1012は、記憶部1013において、該取得した署名鍵Kbcを初期署名鍵Kbiに代えて格納してもよい。また、HSM1012は、該取得した期待値Ecnをセキュアブート処理で使用する期待値に設定する。
(ステップS78)第1のECU1010の制御部21は、記憶部22に格納している初期ECUコードEciをHSM1012に渡して、セキュアブート処理を実行させる。セキュアブート処理において、HSM1012の測定部33は、記憶部1013に格納している署名鍵Kbcにより、初期ECUコードEciの測定値を計算する。本実施形態では、測定値の一例として、CMACを使用する。よって、測定部33は、記憶部1013に格納している署名鍵Kbcにより、初期ECUコードEciのCMACを計算する。この計算結果のCMACを測定値Ecn_xと称する。
測定部33は、測定値Ecn_xと期待値Ecnとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には測定値Ecn_xの検証が合格である。測定値Ecn_xの検証が合格した場合、暗号鍵Kecが使用可能になる。一方、両者が一致しない場合には測定値Ecn_xの検証が不合格である。測定値Ecn_xの検証が不合格になった場合、暗号鍵Kecは使用することができない。HSM1012は、測定値Ecn_xの検証結果「合格又は不合格」を制御部21に渡す。
(ステップS79)制御部21は、HSM1012から受け取った測定値Ecn_xの検証結果が「合格」である場合、記憶部22に格納している乱数NonceをHSM1012に渡して、暗号鍵Kecにより暗号化を実行させる。HSM1012の暗号処理部32は、記憶部1013に格納している暗号鍵Kecにより乱数Nonceを暗号化して、第6の暗号化データKec(Nonce)を生成する。HSM1012は、第6の暗号化データKec(Nonce)を制御部21に渡す。一方、制御部21は、HSM1012から受け取った測定値Ecn_xの検証結果が「不合格」である場合には、乱数Nonceの暗号化を実施しない。
制御部21は、インタフェース部20により、セキュアブート結果として測定値Ecn_xの検証結果「合格又は不合格」を、診断ポート1060を介して、鍵生成装置1300に送信する。このとき、制御部21は、測定値Ecn_xの検証結果が「合格」である場合には、セキュアブート結果「合格(OK)」に第6の暗号化データKec(Nonce)を含める。鍵生成装置1300は、車両インタフェース11により、自動車1001の第1のECU1010から診断ポート1060を介して、第1のECU1010のセキュアブート結果「合格又は不合格」を受信する。
なお、セキュアブート結果「合格(OK)」に、乱数Nonceを暗号化しないでそのまま含めてもよい。また、セキュアブート結果「合格(OK)」に、乱数Nonceと乱数NonceのCMACとを含めてもよい。乱数NonceのCMACは、暗号鍵Kecにより、計算されてもよい。セキュアブート結果「合格(OK)」に、乱数Nonceと乱数NonceのCMACとを含める場合、乱数Nonce若しくは乱数NonceのCMACのいずれか一方、又は、乱数Nonceと乱数NonceのCMACの両方を暗号化してもよい。
なお、セキュアブート結果「合格(OK)」に、乱数Nonceを暗号化しないでそのまま含めてもよい。また、セキュアブート結果「合格(OK)」に、乱数Nonceと乱数NonceのCMACとを含めてもよい。乱数NonceのCMACは、暗号鍵Kecにより、計算されてもよい。セキュアブート結果「合格(OK)」に、乱数Nonceと乱数NonceのCMACとを含める場合、乱数Nonce若しくは乱数NonceのCMACのいずれか一方、又は、乱数Nonceと乱数NonceのCMACの両方を暗号化してもよい。
(ステップS80)鍵生成装置1300の暗号処理部16は、第1のECU1010のセキュアブート結果「合格(OK)」に含まれる第6の暗号化データKec(Nonce)を、第1のECU1010の暗号鍵Kecにより復号して復号データNonceを取得する。検証部14は、復号データNonceと記憶部12に格納されている乱数Nonceとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には、第1のECU1010のセキュアブート結果「合格」が正しいと判断する。セキュアブート結果「合格」が正しいと判断された場合にはステップS81に進む。一方、両者が一致しない場合には、第1のECU1010のセキュアブート結果「合格」が正しくないと判断する。セキュアブート結果「合格」が正しくないと判断された場合には、図9の処理を終了する。また、セキュアブート結果「合格」が正しくないと判断された場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
また、鍵生成装置1300が自動車1001の第1のECU1010のセキュアブート結果「不合格」を受信した場合には、図9の処理を終了する。また、セキュアブート結果「不合格」を受信した場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS81)第1のECU1010のHSM1012の鍵生成部34は、車内鍵Kvを生成する。記憶部1013は、車内鍵Kvを格納する。
次いでステップS82及びステップS83が実行される。ステップS82は、図5に係る管理方法の例1のステップS10と同じである。ステップS83は、図5に係る管理方法の例1のステップS11と同じである。次いでステップS84が実行される。
(ステップS84)鍵生成装置1300の暗号処理部16は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の暗号鍵Ke1を暗号化して、第5の暗号化データKr1(Ke1)を生成する。検証部14は、乱数Nonce1を発生させる。記憶部12は、該乱数Nonce1を格納する。鍵生成装置1300は、車両インタフェース11により、第5の暗号化データKr1(Ke1)及び乱数Nonce1を、自動車1001の第1のECU1010経由で第2のECU(1)1020に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第5の暗号化データKr1(Ke1)及び乱数Nonce1を受信すると、該第5の暗号化データKr1(Ke1)及び乱数Nonce1を、インタフェース部20により、CAN1030を介して第2のECU(1)1020に転送する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第5の暗号化データKr1(Ke1)及び乱数Nonce1を受信する。
(ステップS85)第2のECU(1)1020の制御部41は、第5の暗号化データKr1(Ke1)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第5の暗号化データKr1(Ke1)を復号して、暗号鍵Ke1を取得する。SHE1022は、該取得した暗号鍵Ke1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した暗号鍵Ke1を初期暗号鍵Keeiに代えて格納してもよい。本実施形態では、暗号鍵Ke1は、SHE1022が実行するセキュアブート処理において測定値の検証が合格した場合に使用することができる暗号鍵として設定される。したがって、暗号鍵Ke1は、SHE1022が実行するセキュアブート処理において測定値の検証が不合格になった場合には使用することができない。
記憶部42は、乱数Nonce1を格納する。乱数Nonce1の格納場所は、記憶部42の記憶領域のうち、セキュアブートの測定対象外の不揮発性記憶領域である。
(ステップS86)鍵生成装置1300の暗号処理部16は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の署名鍵Kb1及び期待値E1nを各々に暗号化して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を生成する。鍵生成装置1300は、車両インタフェース11により、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を、自動車1001の第1のECU1010経由で第2のECU(1)1020に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を受信すると、該第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を、インタフェース部20により、CAN1030を介して第2のECU(1)1020に転送する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を受信する。
(ステップS87)第2のECU(1)1020の制御部41は、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を各々に復号して、署名鍵Kb1及び期待値E1nを取得する。SHE1022は、該取得した署名鍵Kb1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した署名鍵Kb1を初期署名鍵Kbiに代えて格納してもよい。また、SHE1022は、該取得した期待値E1nをセキュアブート処理で使用する期待値に設定する。
(ステップS88)第2のECU(1)1020の制御部41は、記憶部42に格納している初期ECUコードE1iをSHE1022に渡して、セキュアブート処理を実行させる。セキュアブート処理において、SHE1022の測定部53は、記憶部1023に格納している署名鍵Kb1により、初期ECUコードE1iの測定値を計算する。本実施形態では、測定値の一例として、CMACを使用する。よって、測定部53は、記憶部1023に格納している署名鍵Kb1により、初期ECUコードE1iのCMACを計算する。この計算結果のCMACを測定値E1n_xと称する。
測定部53は、測定値E1n_xと期待値E1nとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には測定値E1n_xの検証が合格である。測定値E1n_xの検証が合格した場合、暗号鍵Ke1が使用可能になる。一方、両者が一致しない場合には測定値E1n_xの検証が不合格である。測定値E1n_xの検証が不合格になった場合、暗号鍵Ke1は使用することができない。SHE1022は、測定値E1n_xの検証結果「合格又は不合格」を制御部41に渡す。
(ステップS89)制御部41は、SHE1022から受け取った測定値E1n_xの検証結果が「合格」である場合、記憶部42に格納している乱数Nonce1をSHE1022に渡して、暗号鍵Ke1により暗号化を実行させる。SHE1022の暗号処理部52は、記憶部1023に格納している暗号鍵Ke1により乱数Nonce1を暗号化して、第6の暗号化データKe1(Nonce1)を生成する。SHE1022は、第6の暗号化データKe1(Nonce1)を制御部41に渡す。一方、制御部41は、SHE1022から受け取った測定値E1n_xの検証結果が「不合格」である場合には、乱数Nonce1の暗号化を実施しない。
制御部41は、インタフェース部40により、セキュアブート結果として測定値E1n_xの検証結果「合格又は不合格」を、CAN1030を介して第1のECU1010経由で鍵生成装置1300に送信する。このとき、制御部41は、測定値E1n_xの検証結果が「合格」である場合には、セキュアブート結果「合格(OK)」に第6の暗号化データKe1(Nonce1)を含める。第1のECU1010は、インタフェース部20により、第2のECU(1)1020からCAN1030を介して、セキュアブート結果「合格又は不合格」を受信すると、該セキュアブート結果「合格又は不合格」を、インタフェース部20により、診断ポート1060を介して鍵生成装置1300に転送する。鍵生成装置1300は、車両インタフェース11により、自動車1001の第1のECU1010から診断ポート1060を介して、第2のECU(1)1020のセキュアブート結果「合格又は不合格」を受信する。
なお、セキュアブート結果「合格(OK)」に、乱数Nonce1を暗号化しないでそのまま含めてもよい。また、セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含めてもよい。乱数Nonce1のCMACは、暗号鍵Ke1により、計算されてもよい。セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含める場合、乱数Nonce1若しくは乱数Nonce1のCMACのいずれか一方、又は、乱数Nonce1と乱数Nonce1のCMACの両方を暗号化してもよい。
なお、セキュアブート結果「合格(OK)」に、乱数Nonce1を暗号化しないでそのまま含めてもよい。また、セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含めてもよい。乱数Nonce1のCMACは、暗号鍵Ke1により、計算されてもよい。セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含める場合、乱数Nonce1若しくは乱数Nonce1のCMACのいずれか一方、又は、乱数Nonce1と乱数Nonce1のCMACの両方を暗号化してもよい。
(ステップS90)鍵生成装置1300の暗号処理部16は、第2のECU(1)1020のセキュアブート結果「合格(OK)」に含まれる第6の暗号化データKe1(Nonce1)を、第2のECU(1)1020の暗号鍵Ke1により復号して復号データNonce1を取得する。検証部14は、復号データNonce1と記憶部12に格納されている乱数Nonce1とを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には、第2のECU(1)1020のセキュアブート結果「合格」が正しいと判断する。セキュアブート結果「合格」が正しいと判断された場合にはステップS91に進む。一方、両者が一致しない場合には、第2のECU(1)1020のセキュアブート結果「合格」が正しくないと判断する。第2のECU(1)1020のセキュアブート結果「合格」が正しくないと判断された場合には、第2のECU(1)1020について図9の処理を終了する。よって、第2のECU(1)1020のセキュアブート結果「合格」が正しくないと判断された場合には、第2のECU(1)1020についてステップS91は実行されない。また、セキュアブート結果「合格」が正しくないと判断された場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
また、鍵生成装置1300が自動車1001の第2のECU(1)1020のセキュアブート結果「不合格」を受信した場合には、第2のECU(1)1020について図9の処理を終了する。よって、第2のECU(1)1020のセキュアブート結果「不合格」を受信した場合には、第2のECU(1)1020についてステップS91は実行されない。また、セキュアブート結果「不合格」を受信した場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
次いでステップS91からステップS93までが実行される。ステップS91は、図5に係る管理方法の例1のステップS17と同じである。ステップS92は、図5に係る管理方法の例1のステップS18と同じである。ステップS93は、図5に係る管理方法の例1のステップS19と同じである。
上記ステップS82からステップS93までは、自動車1001に搭載されている全ての第2のECU(n)1020に対して同様に実行される。
上述した管理方法の例5によれば、自動車1001に搭載されているECUのECUコードの期待値を鍵生成装置1300が生成してECUに供給する。そして、ECUが、自己のECUコードの測定値を、鍵生成装置1300から供給された期待値に基づいて検証し、この検証結果を鍵生成装置1300に通知することにより、自動車1001に搭載されているECUの真贋判定を行う。これにより、自動車1001に搭載されているECUの信頼性が向上する効果を奏する。
さらに、上述した管理方法の例5によれば、ECUが自己のECUコードの測定値の検証結果を鍵生成装置1300に通知する際に、鍵生成装置1300から供給された検証値(上述の例では乱数Nonce,Nonce1)を、測定値の検証が合格した場合に使用することができる暗号鍵により暗号化して第6の暗号化データを生成し、該第6の暗号化データを鍵生成装置1300に送信する。該暗号鍵は、鍵生成装置1300と共有されている。鍵生成装置1300は、該第6の暗号化データを復号し、この復号データとECUに供給した元の検証値との一致を判断することにより、ECUのECUコードの測定値の検証結果の正当性を確認することができる。
<管理方法の例6>
管理方法の例6は、上述した管理方法の例5の変形例である。図10は、本実施形態に係る管理方法の例6のシーケンス図である。図10において、図9の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図10を参照して、上述した管理方法の例5と異なる点を主に説明する。
管理方法の例6は、上述した管理方法の例5の変形例である。図10は、本実施形態に係る管理方法の例6のシーケンス図である。図10において、図9の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図10を参照して、上述した管理方法の例5と異なる点を主に説明する。
鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されている。ステップS71からステップS81までが実行される。ステップS71からステップS81までは、上述した図9に係る管理方法の例5と同じである。鍵生成装置1300が受信した自動車1001の第1のECU1010のセキュアブート結果「合格」が正しいと判断された場合には、ステップS81に次いでステップS101が実行される。この場合、第1のECU1010のセキュアブート結果は「合格」であるので、第1のECU1010のHSM1012において暗号鍵Kecは使用可能になる。
一方、該セキュアブート結果「合格」が正しくないと判断された場合及び鍵生成装置1300が自動車1001の第1のECU1010のセキュアブート結果「不合格」を受信した場合には、図10の処理を終了する。また、該セキュアブート結果「合格」が正しくないと判断された場合及び鍵生成装置1300が自動車1001の第1のECU1010のセキュアブート結果「不合格」を受信した場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
(ステップS101)鍵生成装置1300の暗号処理部16は、第1のECU1010の暗号鍵Kecにより、N個の第2のECU(n)1020の各々のRoot鍵Krn、署名鍵Kbn、期待値Enn及び暗号鍵Kenを各々に暗号化する。この暗号化によって、N個の第1の暗号化データKec(Kr1)、Kec(Kr2)、・・・、Kec(KrN)と、N個の第2の暗号化データKec(Kb1)、Kec(Kb2)、・・・、Kec(KbN)と、N個の第4の暗号化データKec(E1n)、Kec(E2n)、・・・、Kec(ENn)と、N個の第7の暗号化データKec(Ke1)、Kec(Ke2)、・・・、Kec(KeN)と、が生成される。
鍵生成装置1300は、車両インタフェース11により、N個の第1の暗号化データKec(Kr1)、Kec(Kr2)、・・・、Kec(KrN)と、N個の第2の暗号化データKec(Kb1)、Kec(Kb2)、・・・、Kec(KbN)と、N個の第4の暗号化データKec(E1n)、Kec(E2n)、・・・、Kec(ENn)と、N個の第7の暗号化データKec(Ke1)、Kec(Ke2)、・・・、Kec(KeN)と、を自動車1001の第1のECU1010に送信する。自動車1001の第1のECU1010は、インタフェース部20により、鍵生成装置1300から診断ポート1060を介して、N個の第1の暗号化データKec(Kr1)、Kec(Kr2)、・・・、Kec(KrN)と、N個の第2の暗号化データKec(Kb1)、Kec(Kb2)、・・・、Kec(KbN)と、N個の第4の暗号化データKec(E1n)、Kec(E2n)、・・・、Kec(ENn)と、N個の第7の暗号化データKec(Ke1)、Kec(Ke2)、・・・、Kec(KeN)と、を受信する。
(ステップS102)第1のECU1010の制御部21は、N個の第1の暗号化データKec(Kr1)、Kec(Kr2)、・・・、Kec(KrN)と、N個の第2の暗号化データKec(Kb1)、Kec(Kb2)、・・・、Kec(KbN)と、N個の第4の暗号化データKec(E1n)、Kec(E2n)、・・・、Kec(ENn)と、N個の第7の暗号化データKec(Ke1)、Kec(Ke2)、・・・、Kec(KeN)と、をHSM1012に渡して、暗号鍵Kecにより復号を実行させる。HSM1012は、記憶部1013に格納している暗号鍵Kecにより、N個の第1の暗号化データKec(Kr1)、Kec(Kr2)、・・・、Kec(KrN)と、N個の第2の暗号化データKec(Kb1)、Kec(Kb2)、・・・、Kec(KbN)と、N個の第4の暗号化データKec(E1n)、Kec(E2n)、・・・、Kec(ENn)と、N個の第7の暗号化データKec(Ke1)、Kec(Ke2)、・・・、Kec(KeN)と、を各々に復号する。この復号によって、N個のRoot鍵Kr1、Kr2、・・・、KrNと、N個の署名鍵Kb1、Kb2、・・・、KbNと、N個の期待値E1n、E2n、・・・、ENnと、N個の暗号鍵Ke1、Ke2、・・・、KeNと、が取得される。HSM1012は、該取得したN個のRoot鍵Kr1、Kr2、・・・、KrNと、N個の署名鍵Kb1、Kb2、・・・、KbNと、N個の期待値E1n、E2n、・・・、ENnと、N個の暗号鍵Ke1、Ke2、・・・、KeNと、を記憶部1013に格納する。
次いでステップS103及びステップS104が実行される。ステップS103は、図6に係る管理方法の例2のステップS24と同じである。ステップS104は、図6に係る管理方法の例2のステップS25と同じである。次いでステップS105が実行される。
(ステップS105)第1のECU1010のHSM1012の暗号処理部32は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の暗号鍵Ke1を暗号化して、第5の暗号化データKr1(Ke1)を生成する。HSM1012は、第5の暗号化データKr1(Ke1)を制御部21に渡す。制御部21は、乱数Nonce1を発生させる。記憶部22は、該乱数Nonce1を格納する。制御部21は、インタフェース部20により、第5の暗号化データKr1(Ke1)及び乱数Nonce1を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第5の暗号化データKr1(Ke1)及び乱数Nonce1を受信する。
(ステップS106)第2のECU(1)1020の制御部41は、第5の暗号化データKr1(Ke1)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第5の暗号化データKr1(Ke1)を復号して、暗号鍵Ke1を取得する。SHE1022は、該取得した暗号鍵Ke1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した暗号鍵Ke1を初期暗号鍵Keeiに代えて格納してもよい。本実施形態では、暗号鍵Ke1は、SHE1022が実行するセキュアブート処理において測定値の検証が合格した場合に使用することができる暗号鍵として設定される。したがって、暗号鍵Ke1は、SHE1022が実行するセキュアブート処理において測定値の検証が不合格になった場合には使用することができない。
記憶部42は、乱数Nonce1を格納する。乱数Nonce1の格納場所は、記憶部42の記憶領域のうち、セキュアブートの測定対象外の不揮発性記憶領域である。
(ステップS107)第1のECU1010のHSM1012の暗号処理部32は、第2のECU(1)1020のRoot鍵Kr1により第2のECU(1)1020の署名鍵Kb1及び期待値E1nを各々に暗号化して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を生成する。HSM1012は、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を制御部21に渡す。制御部21は、インタフェース部20により、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を、CAN1030を介して第2のECU(1)1020に送信する。第2のECU(1)1020は、インタフェース部40により、第1のECU1010からCAN1030を介して、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を受信する。
(ステップS108)第2のECU(1)1020の制御部41は、第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)をSHE1022に渡す。SHE1022の暗号処理部52は、記憶部1023に格納しているRoot鍵Kr1により第2の暗号化データKr1(Kb1)及び第4の暗号化データKr1(E1n)を各々に復号して、署名鍵Kb1及び期待値E1nを取得する。SHE1022は、該取得した署名鍵Kb1を記憶部1023に格納する。SHE1022は、記憶部1023において、該取得した署名鍵Kb1を初期署名鍵Kbiに代えて格納してもよい。また、SHE1022は、該取得した期待値E1nをセキュアブート処理で使用する期待値に設定する。
次いでステップS109が実行される。ステップS109は、図9に係る管理方法の例5のステップS88と同じである。次いでステップS110が実行される。
(ステップS110)制御部41は、SHE1022から受け取った測定値E1n_xの検証結果が「合格」である場合、記憶部42に格納している乱数Nonce1をSHE1022に渡して、暗号鍵Ke1により暗号化を実行させる。SHE1022の暗号処理部52は、記憶部1023に格納している暗号鍵Ke1により乱数Nonce1を暗号化して、第6の暗号化データKe1(Nonce1)を生成する。SHE1022は、第6の暗号化データKe1(Nonce1)を制御部41に渡す。一方、制御部41は、SHE1022から受け取った測定値E1n_xの検証結果が「不合格」である場合には、乱数Nonce1の暗号化を実施しない。
制御部41は、インタフェース部40により、セキュアブート結果として測定値E1n_xの検証結果「合格又は不合格」を、CAN1030を介して第1のECU1010に送信する。このとき、制御部41は、測定値E1n_xの検証結果が「合格」である場合には、セキュアブート結果「合格(OK)」に第6の暗号化データKe1(Nonce1)を含める。第1のECU1010は、インタフェース部20により、第2のECU(1)1020からCAN1030を介して、第2のECU(1)1020のセキュアブート結果「合格又は不合格」を受信する。
なお、セキュアブート結果「合格(OK)」に、乱数Nonce1を暗号化しないでそのまま含めてもよい。また、セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含めてもよい。乱数Nonce1のCMACは、暗号鍵Ke1により、計算されてもよい。セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含める場合、乱数Nonce1若しくは乱数Nonce1のCMACのいずれか一方、又は、乱数Nonce1と乱数Nonce1のCMACの両方を暗号化してもよい。
なお、セキュアブート結果「合格(OK)」に、乱数Nonce1を暗号化しないでそのまま含めてもよい。また、セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含めてもよい。乱数Nonce1のCMACは、暗号鍵Ke1により、計算されてもよい。セキュアブート結果「合格(OK)」に、乱数Nonce1と乱数Nonce1のCMACとを含める場合、乱数Nonce1若しくは乱数Nonce1のCMACのいずれか一方、又は、乱数Nonce1と乱数Nonce1のCMACの両方を暗号化してもよい。
(ステップS111)第1のECU1010の制御部21は、第2のECU(1)1020のセキュアブート結果「合格(OK)」に含まれる第6の暗号化データKe1(Nonce1)を、HSM1012に渡して、第2のECU(1)1020の暗号鍵Ke1により復号を実行させる。HSM1012の暗号処理部32は、記憶部1013に格納している第2のECU(1)1020の暗号鍵Ke1により第6の暗号化データKe1(Nonce1)を復号して、復号データNonce1を取得する。HSM1012は、復号データNonce1を制御部21に渡す。
制御部21は、復号データNonce1と記憶部22に格納されている乱数Nonce1とを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合には、第2のECU(1)1020のセキュアブート結果「合格」が正しいと判断する。セキュアブート結果「合格」が正しいと判断された場合にはステップS112に進む。一方、両者が一致しない場合には、第2のECU(1)1020のセキュアブート結果「合格」が正しくないと判断する。第2のECU(1)1020のセキュアブート結果「合格」が正しくないと判断された場合には、第2のECU(1)1020について図10の処理を終了する。よって、第2のECU(1)1020のセキュアブート結果「合格」が正しくないと判断された場合には、第2のECU(1)1020についてステップS112は実行されない。また、セキュアブート結果「合格」が正しくないと判断された場合には、鍵生成装置1300は所定のエラー処理を実行してもよい。
また、第1のECU1010が第2のECU(1)1020のセキュアブート結果「不合格」を受信した場合には、第2のECU(1)1020について図10の処理を終了する。よって、第2のECU(1)1020のセキュアブート結果「不合格」を受信した場合には、第2のECU(1)1020についてステップS112は実行されない。また、セキュアブート結果「不合格」を受信した場合には、第1のECU1010は所定のエラー処理を実行してもよい。
次いでステップS112及びステップS113が実行される。ステップS112は、図8に係る管理方法の例4のステップS59と同じである。ステップS113は、図8に係る管理方法の例4のステップS60と同じである。
上記ステップS103からステップS113までは、自動車1001に搭載されている全ての第2のECU(n)1020に対して同様に実行される。
なお、上記ステップS103からステップS113までは、自動車1001内に閉じた処理である。このため、ステップS103からステップS113までは、鍵生成装置1300の車両インタフェース11と自動車1001の診断ポート1060とは接続されていなくてもよい。
上述した管理方法の例6によれば、管理方法の例5と同様に、自動車1001に搭載されているECUのECUコードの期待値を鍵生成装置1300が生成してECUに供給する。そして、ECUが、自己のECUコードの測定値を、鍵生成装置1300から供給された期待値に基づいて検証する。そして、本管理方法の例6によれば、第1のECU1010による検証結果を鍵生成装置1300に通知することにより、自動車1001に搭載されている第1のECU1010の真贋判定を行う。また、第2のECU(n)1020による検証結果を第1のECU1010に通知することにより、自動車1001に搭載されている第2のECU(n)1020の真贋判定を行う。これにより、自動車1001に搭載されているECUの信頼性が向上する効果を奏する。また、第1のECU1010がN個の第2のECU(n)1020の真贋判定を行うことにより、鍵生成装置1300と自動車1001とが接続される時間を、管理方法の例5よりも短縮できる。
さらに、上述した管理方法の例6によれば、管理方法の例5と同様に、第1のECU1010が自己のECUコードの測定値の検証結果を鍵生成装置1300に通知する際に、鍵生成装置1300から供給された検証値(上述の例では乱数Nonce)を、測定値の検証が合格した場合に使用することができる暗号鍵により暗号化して第6の暗号化データを生成し、該第6の暗号化データを鍵生成装置1300に送信する。該暗号鍵は、鍵生成装置1300と共有されている。鍵生成装置1300は、該第6の暗号化データを復号し、この復号データと第1のECU1010に供給した元の検証値との一致を判断することにより、第1のECU1010のECUコードの測定値の検証結果の正当性を確認することができる。
また、上述した管理方法の例6によれば、第2のECU1020が自己のECUコードの測定値の検証結果を第1のECU1010に通知する際に、第1のECU1010から供給された検証値(上述の例では乱数Nonce1)を、測定値の検証が合格した場合に使用することができる暗号鍵により暗号化して第6の暗号化データを生成し、該第6の暗号化データを第1のECU1010に送信する。該暗号鍵は、第1のECU1010と共有されている。第1のECU1010は、該第6の暗号化データを復号し、この復号データと第2のECU1020に供給した元の検証値との一致を判断することにより、第2のECU1020のECUコードの測定値の検証結果の正当性を確認することができる。
なお、検証値(上述の例では乱数Nonceや乱数Nonce1)は、暗号化されずに、鍵生成装置1300や第1のECU1010に送信されてもよい。また、検証値と検証値のCMACとが鍵生成装置1300や第1のECU1010に送信されてもよい。検証値のCMACは、測定値の検証が合格した場合に使用することができる暗号鍵により、計算されてもよい。検証値と検証値のCMACとが鍵生成装置1300や第1のECU1010に送信される場合、検証値若しくは検証値のCMACのいずれか一方、又は、検証値と検証値のCMACの両方を暗号化してもよい。
なお、検証値(上述の例では乱数Nonceや乱数Nonce1)は、暗号化されずに、鍵生成装置1300や第1のECU1010に送信されてもよい。また、検証値と検証値のCMACとが鍵生成装置1300や第1のECU1010に送信されてもよい。検証値のCMACは、測定値の検証が合格した場合に使用することができる暗号鍵により、計算されてもよい。検証値と検証値のCMACとが鍵生成装置1300や第1のECU1010に送信される場合、検証値若しくは検証値のCMACのいずれか一方、又は、検証値と検証値のCMACの両方を暗号化してもよい。
[自動車の他の構成例]
図11は、本実施形態に係る管理システム及び自動車1001の他の構成例を示す図である。図11において、図1の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図11を参照して、図1に示す自動車1001と異なる点を主に説明する。
図11は、本実施形態に係る管理システム及び自動車1001の他の構成例を示す図である。図11において、図1の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図11を参照して、図1に示す自動車1001と異なる点を主に説明する。
図11において、図1に示す構成と異なる点として、第1のECU1010がゲートウェイ機能を有さない点と、第1のECU1010とは別個の装置としてゲートウェイ1070を設けた点とがある。ゲートウェイ1070はCAN1030に接続される。ゲートウェイ1070は、インフォテイメント機器1040、TCU1050及び診断ポート1060と接続される。図11に示す自動車1001に備わる車載コンピュータシステム1002aは、第1のECU1010と複数の第2のECU1020とがCAN1030に接続されて構成される。第1のECU1010及び第2のECU1020は、ゲートウェイ1070を介して、車載コンピュータシステム1002aの外部の装置と通信を行う。ゲートウェイ1070は、車載コンピュータシステム1002aの内部と外部の間の通信を監視する。本実施形態において、車載コンピュータシステム1002aは、自動車1001の車載制御システムとして機能する。
なお、CAN1030の構成として、CAN1030が複数のバス(通信線)を備え、該複数のバスをゲートウェイ1070に接続してもよい。この場合、一つのバスに、一つのECU又は複数のECUが接続される。また、同じバスに第1のECU1010と第2のECU1020とが接続されてもよく、又は、第1のECU1010が接続されるバスと第2のECU1020が接続されるバスとを別個にしてもよい。
[管理方法の他の例]
図12、図13及び図14を参照して管理方法の他の例を説明する。本管理方法の他の例は、ECUコードの管理方法の一例である。図12は、本実施形態に係る管理システムの他の構成例を示す図である。図12において、自動車1001は、図11の構成を適用している。なお、図1に示す自動車1001の構成を適用してもよい。図12に示す管理システムは、サーバ装置2000を備える。
図12、図13及び図14を参照して管理方法の他の例を説明する。本管理方法の他の例は、ECUコードの管理方法の一例である。図12は、本実施形態に係る管理システムの他の構成例を示す図である。図12において、自動車1001は、図11の構成を適用している。なお、図1に示す自動車1001の構成を適用してもよい。図12に示す管理システムは、サーバ装置2000を備える。
サーバ装置2000は、通信回線を介して、自動車1001のTCU1050の通信モジュール1051とデータを送受する。サーバ装置2000は、自動車1001のTCU1050の通信モジュール1051が利用する無線通信ネットワークを介して、該通信モジュール1051とデータを送受する。又は、サーバ装置2000は、インターネット等の通信ネットワークと該無線通信ネットワークとを介して、該通信モジュール1051とデータを送受してもよい。また、例えば、サーバ装置2000と通信モジュール1051との間をVPN(Virtual Private Network)回線等の専用回線で接続し、該専用回線でデータを送受してもよい。例えば、SIM1052に対応する無線通信ネットワークによって、VPN回線等の専用回線が提供されてもよい。
サーバ装置2000は、ECUに適用されるECUコードを自動車1001へ提供する。ECUコードは、ECUに適用されるデータの例である。ECUコードは、ECUにインストールされる更新プログラム等のコンピュータプログラムであってもよく、又は、ECUに設定されるパラメータ設定値などの設定データであってもよい。
自動車1001の診断ポート1060にはメンテナンスツール(maintenance tool)2100を接続可能である。自動車1001の診断ポート1060に接続されたメンテナンスツール2100は、ゲートウェイ1070を介して、CAN1030に接続されるECUと通信を行うことができる。メンテナンスツール2100は、OBDポートに接続される従来の診断端末の機能を有していてもよい。
図13は、サーバ装置2000の構成例を示す図である。図13において、サーバ装置2000は、通信部2011と記憶部2012と期待値計算部2013と検証部2014と鍵生成部2015と暗号処理部2016とを備える。通信部2011は、通信回線を介して、他の装置と通信を行う。記憶部2012は、鍵等のデータを記憶する。期待値計算部2013は、ECUコードについての期待値を計算する。検証部2014は、ECUコードについての検証を行う。鍵生成部2015は、ECUの鍵を生成する。暗号処理部2016は、データの暗号化及び暗号化データの復号を行う。
サーバ装置2000の機能は、該サーバ装置2000が備えるCPUがコンピュータプログラムを実行することにより実現される。なお、サーバ装置2000として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
次に図14を参照して、管理方法の他の例の手順を説明する。図14は、ECUコードの提供手順の例を示すシーケンスチャートである。なお、図14において、ECUは、自動車1001に搭載されるECUであって、第1のECU1010であってもよく、又は、第2のECU1020であってもよい。
サーバ装置2000は、マスタ鍵Master_SecretとECUのECUコードとを予め記憶部2012に格納している。ECUのECUコードは、ECUに適用する予定のECUコードを含む。ECUは、Root鍵Kr、署名鍵Kb、暗号鍵Ke及びECUコードEcを予め格納している。第1のECU1010においては、HSM1012の記憶部1013が各鍵を格納し、メイン演算器1011の記憶部22がECUコードを格納する。第2のECU1020においては、SHE1022の記憶部1023が各鍵を格納し、メイン演算器1021の記憶部42がECUコードを格納する。
以下、サーバ装置2000は、通信部2011により、自動車1001のTCU1050と通信を行い、TCU1050及びゲートウェイ1070を介して、自動車1001のCAN1030に接続される各ECUとの間でデータを送受する。また、以下の説明では、第1のECU1010と第2のECU1020とを特に区別せず、ECUとして説明する。このため、説明の便宜上、セキュアエレメントとは、ECUが第1のECU1010の場合にはHSM1012を指し、ECUが第2のECU1020の場合にはSHE1022を指す。また、セキュアエレメントの記憶部とは、ECUが第1のECU1010の場合にはHSM1012の記憶部1013を指し、ECUが第2のECU1020の場合にはSHE1022の記憶部1023を指す。また、ECUの制御部とは、ECUが第1のECU1010の場合には制御部21を指し、ECUが第2のECU1020の場合には制御部41を指す。
(ステップS201)サーバ装置2000の鍵生成部2015は、自動車1001に搭載されているECUのRoot鍵Kr、署名鍵Kb及び暗号鍵Keを生成する。これらの鍵の生成方法は、図9に係る管理方法の例5のステップS71に係るRoot鍵、署名鍵及び暗号鍵の生成方法と同様である。例えば、Root鍵用の変数Nkの値をNk_1とし、署名鍵用の変数Nkの値をNk_2とし、暗号鍵用の変数Nkの値をNk_3とする。鍵生成部2015は、マスタ鍵Master_SecretとECUのECU識別子ECU_IDとを使用して、
Root鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_1)、
署名鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_2)、
暗号鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_3)、
により、Root鍵Krと署名鍵Kbと暗号鍵Keを異なる鍵として生成する。記憶部2012は、Root鍵Kr、署名鍵Kb及び暗号鍵Keを格納する。
Root鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_1)、
署名鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_2)、
暗号鍵=ダイジェスト(Master_Secret、ECU_ID、Nk_3)、
により、Root鍵Krと署名鍵Kbと暗号鍵Keを異なる鍵として生成する。記憶部2012は、Root鍵Kr、署名鍵Kb及び暗号鍵Keを格納する。
また、サーバ装置2000の期待値計算部2013は、自動車1001に搭載されているECUに適用する予定のECUコード(以下、Ecnewコードと称する)のCMACを、署名鍵Kbにより計算する。この計算結果のCMACを期待値Ecnと称する。記憶部2012は、期待値Ecnを格納する。
(ステップS202)サーバ装置2000は、通信部2011により、期待値EcnをECUに送信する。ECUは、サーバ装置2000から送信された期待値Ecnを受信する。
(ステップS203)ECUのセキュアエレメントは、サーバ装置2000から受信した期待値Ecnを、セキュアブート処理で使用する期待値に設定する。
(ステップS204)サーバ装置2000は、通信部2011により、EcnewコードをECUに送信する。ECUは、サーバ装置2000から送信されたEcnewコードを受信する。
(ステップS205)ECUの制御部は、サーバ装置2000から受信したEcnewコードを自己に適用する。
(ステップS206)ECUの制御部は、Ecnewコードの適用後に、セキュアブートを実行する。このセキュアブートでは、ECUのセキュアエレメントは、セキュアエレメントの記憶部に格納している署名鍵KbによりEcnewコードのCMACを計算し、該計算結果のCMACと期待値Ecnとの比較を行う。この比較の結果、両者が一致する場合にはセキュアブート結果が合格であり、両者が一致しない場合にはセキュアブート結果が不合格である。ECUのセキュアエレメントは、セキュアブート結果をECUの制御部に渡す。ECUの制御部は、セキュアブート結果が合格である場合にEcnewコードの実行を進める。一方、ECUは、セキュアブート結果が不合格である場合にはEcnewコードの実行を停止する。
(ステップS207)ECUは、セキュアブート結果「合格又は不合格」をサーバ装置2000に送信する。サーバ装置2000は、通信部2011により、ECUから送信されたセキュアブート結果「合格又は不合格」を受信する。サーバ装置2000は、ECUから受信したセキュアブート結果「合格又は不合格」に応じて、所定の処理を実行する。例えば、セキュアブート結果が合格である場合には、その旨を記録する。一方、セキュアブート結果が不合格である場合には、例えば、サーバ装置2000が期待値Ecnを再生成し、サーバ装置2000とECUとは上記のステップS202からステップS207までを再実行する。この期待値Ecnの再生成及びステップS202からステップS207までの再実行は、セキュアブート結果が合格になるまで繰り返す、又は、所定回数だけ繰り返す。
次に、上述した図14のECUコードの提供手順の変形例を説明する。
<ECUコードの提供手順の変形例1>
ステップS202において、サーバ装置2000は、暗号処理部2016により期待値Ecnを暗号化して、ECUに送信する。この暗号化に用いる鍵は、Root鍵Kr、署名鍵Kb又は暗号鍵Keのいずれであってもよい。ECUのセキュアエレメントは、サーバ装置2000から受信した暗号化データを、自己の暗号処理部により、セキュアエレメントの記憶部に格納されている該当の鍵で復号して、期待値Ecnを取得する。
ステップS202において、サーバ装置2000は、暗号処理部2016により期待値Ecnを暗号化して、ECUに送信する。この暗号化に用いる鍵は、Root鍵Kr、署名鍵Kb又は暗号鍵Keのいずれであってもよい。ECUのセキュアエレメントは、サーバ装置2000から受信した暗号化データを、自己の暗号処理部により、セキュアエレメントの記憶部に格納されている該当の鍵で復号して、期待値Ecnを取得する。
<ECUコードの提供手順の変形例2>
ステップS204において、サーバ装置2000は、暗号処理部2016によりEcnewコードを暗号化して、ECUに送信する。この暗号化に用いる鍵は、Root鍵Kr、署名鍵Kb、又は暗号鍵Keのいずれであってもよい。ECUのセキュアエレメントは、サーバ装置2000から受信した暗号化データを、自己の暗号処理部により、セキュアエレメントの記憶部に格納されている該当の鍵で復号して、Ecnewコードを取得する。
ステップS204において、サーバ装置2000は、暗号処理部2016によりEcnewコードを暗号化して、ECUに送信する。この暗号化に用いる鍵は、Root鍵Kr、署名鍵Kb、又は暗号鍵Keのいずれであってもよい。ECUのセキュアエレメントは、サーバ装置2000から受信した暗号化データを、自己の暗号処理部により、セキュアエレメントの記憶部に格納されている該当の鍵で復号して、Ecnewコードを取得する。
<ECUコードの提供手順の変形例3>
上記のECUコードの提供手順の変形例1とECUコードの提供手順の変形例2の両方を適用する。つまり、期待値EcnとEcnewコードの両方を暗号化して、サーバ装置2000からECUに送信する。
上記のECUコードの提供手順の変形例1とECUコードの提供手順の変形例2の両方を適用する。つまり、期待値EcnとEcnewコードの両方を暗号化して、サーバ装置2000からECUに送信する。
<ECUコードの提供手順の変形例4>
ステップS207において、ECUからサーバ装置2000に送信するセキュアブート結果「合格又は不合格」は所定値とする。例えば、合格は「1」であり、不合格は「0」である。
<ECUコードの提供手順の変形例5>
ステップS207において、ECUからサーバ装置2000に送信するセキュアブート結果「合格又は不合格」は、ステップS206のセキュアブートで計算された結果のEcnewコードのCMACとする。サーバ装置2000の検証部2014は、ECUから受信したセキュアブート結果のCMACと、ステップS202でECUに送信した期待値Ecnとを比較する。サーバ装置2000の検証部2014は、該比較の結果、両者が一致する場合にはECUのセキュアブート結果が合格であると判断し、両者が一致しない場合にはECUのセキュアブート結果が不合格であると判断する。
<ECUコードの提供手順の変形例6>
サーバ装置2000は、検証値(例えば、乱数Nonce)を予めECUに供給する。ステップS207において、ECUは、セキュアブート結果が合格である場合にはセキュアブート結果「合格」に検証値を含め、一方、セキュアブート結果が不合格である場合にはセキュアブート結果「不合格」に検証値を含めない。サーバ装置2000の検証部2014は、ECUから受信したセキュアブート結果「合格」に含まれる検証値と、予めECUに供給した元の検証値とを比較する。サーバ装置2000の検証部2014は、該比較の結果、両者が一致する場合にはECUのセキュアブート結果が合格であると判断し、両者が一致しない場合にはECUのセキュアブート結果が不合格であると判断する。
ステップS207において、ECUからサーバ装置2000に送信するセキュアブート結果「合格又は不合格」は所定値とする。例えば、合格は「1」であり、不合格は「0」である。
<ECUコードの提供手順の変形例5>
ステップS207において、ECUからサーバ装置2000に送信するセキュアブート結果「合格又は不合格」は、ステップS206のセキュアブートで計算された結果のEcnewコードのCMACとする。サーバ装置2000の検証部2014は、ECUから受信したセキュアブート結果のCMACと、ステップS202でECUに送信した期待値Ecnとを比較する。サーバ装置2000の検証部2014は、該比較の結果、両者が一致する場合にはECUのセキュアブート結果が合格であると判断し、両者が一致しない場合にはECUのセキュアブート結果が不合格であると判断する。
<ECUコードの提供手順の変形例6>
サーバ装置2000は、検証値(例えば、乱数Nonce)を予めECUに供給する。ステップS207において、ECUは、セキュアブート結果が合格である場合にはセキュアブート結果「合格」に検証値を含め、一方、セキュアブート結果が不合格である場合にはセキュアブート結果「不合格」に検証値を含めない。サーバ装置2000の検証部2014は、ECUから受信したセキュアブート結果「合格」に含まれる検証値と、予めECUに供給した元の検証値とを比較する。サーバ装置2000の検証部2014は、該比較の結果、両者が一致する場合にはECUのセキュアブート結果が合格であると判断し、両者が一致しない場合にはECUのセキュアブート結果が不合格であると判断する。
<ECUコードの提供手順の変形例7>
上記のECUコードの提供手順の変形例4,5,6のいずれか複数を組合せて適用する。
上記のECUコードの提供手順の変形例4,5,6のいずれか複数を組合せて適用する。
<ECUコードの提供手順の変形例8>
上記のECUコードの提供手順の変形例4,5,6,7において、ECUは、セキュアエレメントの暗号処理部によりセキュアブート結果を暗号化して、サーバ装置2000に送信する。この暗号化に用いる鍵は、Root鍵Kr又は署名鍵Kbのいずれであってもよい。サーバ装置2000は、ECUから受信した暗号化データを、暗号処理部2016により、記憶部2012に格納されている該当の鍵で復号して、セキュアブート結果を取得する。なお、セキュアブート結果が合格である場合には、暗号鍵Keが使用可能になるので、セキュアブート結果「合格」を暗号鍵Keにより暗号化してもよい。
上記のECUコードの提供手順の変形例4,5,6,7において、ECUは、セキュアエレメントの暗号処理部によりセキュアブート結果を暗号化して、サーバ装置2000に送信する。この暗号化に用いる鍵は、Root鍵Kr又は署名鍵Kbのいずれであってもよい。サーバ装置2000は、ECUから受信した暗号化データを、暗号処理部2016により、記憶部2012に格納されている該当の鍵で復号して、セキュアブート結果を取得する。なお、セキュアブート結果が合格である場合には、暗号鍵Keが使用可能になるので、セキュアブート結果「合格」を暗号鍵Keにより暗号化してもよい。
上述した管理方法の他の例によれば、サーバ装置2000は、ECUに適用するECUコードの期待値をECUに提供する。ECUは、サーバ装置2000から提供されたECUコードの期待値に基づいて、サーバ装置2000から提供されたECUコードを検証する。ECUは、ECUコードの検証結果をサーバ装置2000に送信する。これにより、ECUに適用されるECUコードの信頼性を向上させることができる。
上述した管理方法の他の例において、サーバ装置2000はデータ提供装置に対応し、通信部2011は車両インタフェースに対応する。
なお、メンテナンスツール2100が、サーバ装置2000と同様の機能を備え、サーバ装置2000と同様のECUコードの提供手順により、診断ポート1060を介してECUにECUコードを提供するように構成してもよい。
また、自動車1001のTCU1050が、サーバ装置2000からECUコードを受信し、受信したECUコードについて期待値を生成し、生成したECUコードの期待値をECUに提供してもよい。例えば、TCU1050の通信モジュール1051のSIM1052が、マスタ鍵Master_Secretを予め格納し、マスタ鍵Master_SecretとECUのECU識別子ECU_IDとを使用してCMACの生成に使用する鍵を生成し、生成した鍵によりECUコードのCMAC(期待値)を計算する。
また、自動車1001の第1のECU1010が、サーバ装置2000から第2のECU1020のECUコードを受信し、受信した第2のECU1020のECUコードについて期待値を生成し、生成した第2のECU1020のECUコードの期待値を第2のECU1020に提供してもよい。例えば、第1のECU1010のHSM1012が、マスタ鍵Master_Secretを予め格納し、マスタ鍵Master_Secretと第2のECU1020のECU識別子ECU_IDとを使用してCMACの生成に使用する鍵を生成し、生成した鍵により第2のECU1020のECUコードのCMAC(期待値)を計算する。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
上述した実施形態では、ECUにHSM又はSHEを備えたが、HSM及びSHE以外の暗号処理チップを使用してもよい。第1のECU1010に対して、例えば「TPM(Trusted Platform Module)f」と呼ばれる暗号処理チップを使用してもよい。TPMfは耐タンパー性を有する。TPMfはセキュアエレメントの例である。第2のECU1020に対して、例えば「TPMt」と呼ばれる暗号処理チップを使用してもよい。TPMtは耐タンパー性を有する。TPMtはセキュアエレメントの例である。
上述した実施形態は、自動車の製造工場において、自動車の製造工程で自動車に搭載された新品のECUに適用してもよい。また、上述した実施形態は、自動車の整備工場や販売店等において、自動車のECUを新品に交換した際に、自動車に搭載された新品のECUに適用してもよい。
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
また、上述した鍵生成装置又はECUの機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
11…車両インタフェース、12,22,42,2012…記憶部、13,2013…期待値計算部、14,2014…検証部、15,34,2015…鍵生成部、16,32,52,2016…暗号処理部、20,40…インタフェース部、21,41…制御部、31,51…測定値計算部、33,53…測定部、1001…自動車、1002,1002a…車載コンピュータシステム、1010…第1のECU、1011,1021…メイン演算器、1012…HSM、1013,1023…記憶部、1020…第2のECU、1022…SHE、1030…CAN、1040…インフォテイメント機器、1050…TCU、1051…通信モジュール、1052…SIM、1060…診断ポート、1070…ゲートウェイ、1300…鍵生成装置、2000…サーバ装置、2011…通信部、2100…メンテナンスツール
Claims (6)
- データ提供装置と、車両に搭載される車載コンピュータとを備え、
前記データ提供装置は、
前記車両とデータを送受する車両インタフェースと、
前記車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成部と、
前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算部と、
前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理部と、を備え、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両インタフェースにより前記車両に送信し、前記適用データの測定値の検証結果を前記車両インタフェースにより前記車両から受信し、
前記車載コンピュータは、
自車載コンピュータの外部の装置とデータを送受するインタフェース部と、
前記インタフェース部により前記データ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理部と、
前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定部と、を備え、該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信する、
管理システム。 - 車両とデータを送受する車両インタフェースと、
前記車両に搭載される車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成部と、
前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算部と、
前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理部と、を備え、
前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両インタフェースにより前記車両に送信し、
前記適用データの測定値の検証結果を前記車両インタフェースにより前記車両から受信する、
データ提供装置。 - 車両に搭載される車載コンピュータにおいて、
自車載コンピュータの外部の装置とデータを送受するインタフェース部と、
前記インタフェース部によりデータ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理部と、
前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定部と、を備え、
該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信する、
車載コンピュータ。 - データ提供装置と、車両に搭載される車載コンピュータとを備える管理システムの管理方法であって、
前記データ提供装置が、前記車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成ステップと、
前記データ提供装置が、前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算ステップと、
前記データ提供装置が、前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理ステップと、
前記データ提供装置が、前記車両とデータを送受する車両インタフェースにより、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両に送信するステップと、
前記車載コンピュータが、自車載コンピュータの外部の装置とデータを送受するインタフェース部により前記データ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理ステップと、
前記車載コンピュータが、前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定ステップと、
前記車載コンピュータが、該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信するステップと、
前記データ提供装置が、前記適用データの測定値の検証結果を前記車両インタフェースにより前記車両から受信するステップと、
を含む管理方法。 - 車両とデータを送受する車両インタフェースを備えるデータ提供装置のコンピュータに、
前記車載コンピュータに格納される第1の鍵及び第2の鍵を生成する鍵生成機能と、
前記第2の鍵を使用して、前記車載コンピュータに適用される適用データの期待値を計算する期待値計算機能と、
前記車載コンピュータが予め格納している初期鍵により前記第1の鍵を暗号化して第1の暗号化データを生成し、前記第1の鍵により前記第2の鍵を暗号化して第2の暗号化データを生成し、前記第1の鍵により前記期待値を暗号化して第4の暗号化データを生成する暗号処理機能と、
前記車両インタフェースにより、前記適用データ、前記第1の暗号化データ、前記第2の暗号化データ及び前記第4の暗号化データを前記車両に送信する送信機能と、
前記車両インタフェースにより、前記適用データの測定値の検証結果を前記車両から受信する受信機能と、
を実現させるためのコンピュータプログラム。 - 車両に搭載される車載コンピュータに、
自車載コンピュータの外部の装置とデータを送受するインタフェース部によりデータ提供装置から受信した第1の暗号化データを自車載コンピュータが予め格納している初期鍵により復号して第1の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第2の暗号化データを該取得した第1の鍵により復号して第2の鍵を取得し、前記インタフェース部により前記データ提供装置から受信した第4の暗号化データを該取得した第1の鍵により復号して期待値を取得する暗号処理機能と、
前記インタフェース部により前記データ提供装置から受信した適用データの測定値を該取得された第2の鍵を使用して計算し、該取得された期待値に基づいて該測定値を検証する測定機能と、
該測定値の検証結果を前記インタフェース部により前記データ提供装置に送信する送信機能と、
を実現させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017197257A JP6454919B2 (ja) | 2017-10-10 | 2017-10-10 | 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017197257A JP6454919B2 (ja) | 2017-10-10 | 2017-10-10 | 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016156573A Division JP6260067B1 (ja) | 2016-08-09 | 2016-08-09 | 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018026866A JP2018026866A (ja) | 2018-02-15 |
JP6454919B2 true JP6454919B2 (ja) | 2019-01-23 |
Family
ID=61194346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017197257A Active JP6454919B2 (ja) | 2017-10-10 | 2017-10-10 | 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6454919B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055952B (zh) | 2018-04-30 | 2024-05-03 | 华为国际有限公司 | 一种车载设备升级方法及相关设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068147B2 (en) * | 1999-12-07 | 2006-06-27 | Denso Corporation | Control information rewriting system |
US9177153B1 (en) * | 2005-10-07 | 2015-11-03 | Carnegie Mellon University | Verifying integrity and guaranteeing execution of code on untrusted computer platform |
US9464905B2 (en) * | 2010-06-25 | 2016-10-11 | Toyota Motor Engineering & Manufacturing North America, Inc. | Over-the-air vehicle systems updating and associate security protocols |
CN104429018B (zh) * | 2012-06-29 | 2017-09-26 | 富士通株式会社 | 通信装置以及通信方法 |
US10038565B2 (en) * | 2012-12-20 | 2018-07-31 | GM Global Technology Operations LLC | Methods and systems for bypassing authenticity checks for secure control modules |
JP2014182571A (ja) * | 2013-03-19 | 2014-09-29 | Denso Corp | 車載電子制御装置のプログラム書換システム及び車載中継装置 |
JP5949732B2 (ja) * | 2013-11-27 | 2016-07-13 | 株式会社オートネットワーク技術研究所 | プログラム更新システム及びプログラム更新方法 |
JP6188672B2 (ja) * | 2014-10-29 | 2017-08-30 | Kddi株式会社 | 鍵管理システム |
-
2017
- 2017-10-10 JP JP2017197257A patent/JP6454919B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018026866A (ja) | 2018-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6260067B1 (ja) | 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム | |
JP6454918B2 (ja) | 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム | |
JP6683588B2 (ja) | 再利用システム、サーバ装置、再利用方法、及びコンピュータプログラム | |
JP6197000B2 (ja) | システム、車両及びソフトウェア配布処理方法 | |
JP6288219B1 (ja) | 通信システム | |
JP6178390B2 (ja) | 管理装置、管理システム、車両、管理方法、及びコンピュータプログラム | |
WO2018043386A1 (ja) | 車両情報収集システム、車載コンピュータ、車両情報収集装置、車両情報収集方法、及びコンピュータプログラム | |
US10970398B2 (en) | Data provision system, data security device, data provision method, and computer program | |
US11212109B2 (en) | Data provision system, data security device, data provision method, and computer program | |
JP2017046038A (ja) | 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム | |
JP6440334B2 (ja) | システム、車両及びソフトウェア配布処理方法 | |
JP6547180B2 (ja) | 通信システム | |
JP6454919B2 (ja) | 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム | |
JP2018006782A (ja) | データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム | |
JP6554704B2 (ja) | データ提供システム及びデータ提供方法 | |
JP2018050334A (ja) | データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム | |
JP6787848B2 (ja) | 通信システム及び通信方法 | |
JP6354099B2 (ja) | データ提供システム及びデータ提供方法 | |
JP2017208731A (ja) | 管理システム、管理装置、車載コンピュータ、管理方法、及びコンピュータプログラム | |
WO2018131270A1 (ja) | 通信システム、車両、サーバ装置、通信方法、及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20181120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181127 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6454919 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |