(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024011421
(43)【公開日】2024-01-25
(54)【発明の名称】メモリ異常判定方法、及び共通鍵書き込みシステム
(51)【国際特許分類】
G06F 11/22 20060101AFI20240118BHJP
H04L 9/10 20060101ALI20240118BHJP
H04L 9/08 20060101ALI20240118BHJP
【FI】
G06F11/22 607Z
H04L9/10 A
H04L9/08 E
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022113379
(22)【出願日】2022-07-14
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】山形 裕貴
(72)【発明者】
【氏名】星野 一也
【テーマコード(参考)】
5B048
【Fターム(参考)】
5B048AA19
(57)【要約】
【課題】共通鍵書き込みの失敗原因を特定する。
【解決手段】共通鍵書き込みシステムにおけるメモリ異常判定方法であって、前記共通鍵書き込みシステムは、共通鍵を暗号化して保管するデータ保安装置と、前記暗号化された共通鍵を書き込む鍵書き込み装置と、HSM機能に共通鍵保管領域を有する電子制御装置とを有し、前記メモリ異常判定方法は、前記鍵書き込み装置が、前記共通鍵保管領域への共通鍵の書き込み失敗後に、第1検証用共通鍵、及び前記第1検証用共通鍵の値をビット反転させた第2検証用共通鍵を前記電子制御装置に書き込み、前記鍵書き込み装置が、前記第1検証用共通鍵及び前記第2検証用共通鍵の書き込み結果を評価することによって、前記共通鍵保管領域のメモリ異常を特定することを特徴とする。
【選択図】
図7
【特許請求の範囲】
【請求項1】
共通鍵書き込みシステムにおけるメモリ異常判定方法であって、
前記共通鍵書き込みシステムは、
共通鍵を暗号化して保管するデータ保安装置と、
前記暗号化された共通鍵を書き込む鍵書き込み装置と、
HSM機能に共通鍵保管領域を有する電子制御装置とを有し、
前記メモリ異常判定方法は、
前記鍵書き込み装置が、前記共通鍵保管領域への共通鍵の書き込み失敗後に、第1検証用共通鍵、及び前記第1検証用共通鍵の値をビット反転させた第2検証用共通鍵を前記電子制御装置に書き込み、
前記鍵書き込み装置が、前記第1検証用共通鍵及び前記第2検証用共通鍵の書き込み結果を評価することによって、前記共通鍵保管領域のメモリ異常を判定することを特徴とするメモリ異常判定方法。
【請求項2】
請求項1に記載のメモリ異常判定方法であって、
前記鍵書き込み装置が、前記第1検証用共通鍵及び前記第2検証用共通鍵のうち、一方の書き込み結果のみが正常である場合、前記共通鍵保管領域の異常であると判定することを特徴とするメモリ異常判定方法。
【請求項3】
請求項1に記載のメモリ異常判定方法であって、
前記鍵書き込み装置が、前記第1検証用共通鍵及び前記第2検証用共通鍵のうち、両方の書き込み結果が正常である場合、前記第1検証用共通鍵及び前記第2検証用共通鍵の前に書き込まれた共通鍵の異常であると判定することを特徴とするメモリ異常判定方法。
【請求項4】
請求項1に記載のメモリ異常判定方法であって、
前記HSM機能は、前記電子制御装置のマイクロコントローラに内蔵されていることを特徴とするメモリ異常判定方法。
【請求項5】
請求項1に記載のメモリ異常判定方法であって、
前記HSM機能は、前記電子制御装置のマイクロコントローラと別に設けられていることを特徴とするメモリ異常判定方法。
【請求項6】
請求項1に記載のメモリ異常判定方法であって、
前記鍵書き込み装置は、前記第1検証用共通鍵を前記共通鍵保管領域に書き込み後、前記第2検証用共通鍵を前記共通鍵保管領域に書き込むことを特徴とするメモリ異常判定方法。
【請求項7】
共通鍵書き込みシステムであって、
共通鍵を暗号化して保管するデータ保安装置と、
前記暗号化された共通鍵を書き込む鍵書き込み装置と、
HSM機能に共通鍵保管領域を有する電子制御装置とを備え、
前記鍵書き込み装置が、
前記共通鍵保管領域への共通鍵の書き込み失敗後に、第1検証用共通鍵、及び前記第1検証用共通鍵の値をビット反転させた第2検証用共通鍵を前記電子制御装置に書き込み、
前記第1検証用共通鍵及び前記第2検証用共通鍵の書き込み結果を評価することによって、前記共通鍵保管領域のメモリ異常を特定することを特徴とする共通鍵書き込みシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ異常判定方法に関し、特に、車載電子制御装置の共通鍵書き込み失敗時における異常原因の特定方法に関する。
【背景技術】
【0002】
コンピュータの情報通信において機密を保証する仕組みの一つとして、メッセージ認証が用いられる。メッセージ認証とは、ネットワークを通じて送信したメッセージが途中で改ざんされていないかを確認する仕組みである。メッセージの送信者と受信者で同じ共通鍵を保有し、メッセージの送信者は共通鍵を用いて、一定の計算手法で計算した検証用データをメッセージに添付する。メッセージの受信者は、受信したメッセージと共通鍵から検証用データを計算し、メッセージに添付されて届いた検証用データと比較して、両者が一致すれば、通信途上でメッセージが改ざんされていないことを確認できる。
【0003】
自動車の車載ソフトウェアに適用されるAUTOSAR仕様に基づいて、ECU(Electronic Control Unit)にCAN(Controller Area Network)通信のメッセージ認証を実装する場合は、CAN通信のメッセージ認証に使用される共通鍵をECUが有するHSM(Hardware Security Module)の共通鍵保管領域に予め書き込む必要がある。
【0004】
共通鍵はHSMの共通鍵保管領域に書き込まれ、HSMソフトウェアのみが共通鍵保管領域にアクセスできる。共通鍵は、アプリケーションソフトからHSMソフトウェアに送信され、共通鍵保管領域に書き込まれる。アプリケーションソフトとHSMソフトウェアは、ECUに搭載されるマイクロコントローラに書き込まれる。HSMはマイクロコントローラに内蔵されている場合と、マイクロコントローラの外部に取り付けられている場合がある。HSMがマイクロコントローラに内蔵されている場合、マイクロコントローラ内の通信を用いて、共通鍵をHSMの共通鍵保管領域に書き込む。HSMがマイクロコントローラの外部に取り付けられている場合、マイクロコントローラとHSMとの間で、例えばSPI(Serial Peripheral Interface)通信を行い、共通鍵をHSMの共通鍵保管領域に書き込む。
【0005】
CAN通信のメッセージ認証の適用において、カーメーカーはアプリケーションソフト及びHSMソフトウェアを開発し、共通鍵を発行する。サプライヤは、ECUを組み立て、開発されたアプリケーションソフト及びHSMソフトウェアと、共通鍵をECUに書き込む。カーメーカーがHSMソフトウェアを開発する場合、HSMソフトウェアの仕様は開示されていない場合があり、カーメーカーから提供されたアプリケーションソフトからHSMソフトウェアを仲介して共通鍵を書き込む。
【0006】
ECUへの共通鍵の書き込みに失敗した場合、HSMの共通鍵保管領域のメモリ異常でなければ、書き込み領域の再初期化によって製品の廃棄を回避できるため、HSMの共通鍵保管領域のメモリ異常であるかを特定する必要がある。
【0007】
本技術分野の背景技術として、以下の先行技術がある。特許文献1(特開2018-98572号公報)には、自動車に備わる通信ネットワークにデータ保安装置と複数のECUが接続され、データ保安装置のメイン演算器は、データ保安装置のSHE(セキュアハードウェアエクステンション)に第1メッセージ認証符号生成対象情報のメッセージ認証符号の生成を要求し、SHEから第1メッセージ認証符号生成対象情報のメッセージ認証符号CMACを取得して、初期鍵と第1メッセージ認証符号生成対象情報のメッセージ認証符号CMACである第1鍵とを使用して第1鍵更新要求メッセージを生成し、第1鍵更新要求メッセージをECUに送信する配信システムが記載されている。
【先行技術文献】
【特許文献】
【0008】
【非特許文献】
【0009】
【非特許文献1】AUTOSAR, "Specification of Secure Hardware Extensions", rev. R21-11, 2021年11月25日
【発明の概要】
【発明が解決しようとする課題】
【0010】
一般的に、アプリケーションソフトを用いて共通鍵を書き込む際、データ保安装置で共通鍵を暗号化し、暗号化された共通鍵を鍵書き込み装置からアプリケーションソフトに送信して、所定の記憶領域に書き込む。共通鍵の書き込みが成功した場合にはレスポンスデータが、書き込みが失敗した場合にはエラーIDが、アプリケーションソフトから鍵書き込み装置に返信される。アプリケーションソフトが用意しているエラーIDの数は、共通鍵の書き込み結果が失敗となる原因の数よりも少ない場合がある。共通鍵の書き込み結果が失敗となる原因には、共通鍵の設定項目に原因がある場合と、HSMに原因がある場合がある。例えば、共通鍵の設定項目に原因がある場合は下記の(1)から(5)、HSMに原因がある場合は下記の(6)と(7)が考えられる。
(1)UID(Unique Identification)の設定
UIDは、一般的にECU固有の値などのユニークな値が設定されるが、サプライヤ側で共通鍵を書き込む場合は0が設定される場合もある。UIDの設定がECU固有の値と一致しない、又は0でない場合は、書き込みの失敗原因となる。
(2)SHE ID(Secure Hardware Extension Identification)の設定
SHE IDは、共通鍵の格納先IDであり、指定した格納先IDがHSMの共通鍵保管領域に存在しない場合は、書き込みの失敗原因となる。
(3)Auth ID(Authentication Identification)の設定
Auth IDは、暗号化された共通鍵の復号化及び復号結果の検証に使用する共通鍵を指定する設定項目である。Auth IDの設定で誤った共通鍵を指定した場合、暗号化された共通鍵を正常に復号化できないため、書き込みの失敗原因となる。
(4)CID(Counter Identification)の設定
CIDは書き込みカウンタIDであり、書き込まれる共通鍵のCIDがHSMの書き込み先に格納されているCIDより大きい値が設定されていない場合は、書き込みの失敗原因となる。
(5)FID(Flag Identification)の設定
FIDは、共通鍵の上書き制限やECU起動制限などの各種プロテクションフラグの設定である。AUTOSARの仕様により、FIDは0bit目が0でないと、書き込みの失敗原因となる。
(6)HSMへの書き込み制限
HSMへの書き込みが制限されている場合は、書き込みの失敗原因となる。
(7)HSMの共通鍵保管領域のメモリ異常
HSMの共通鍵保管領域のメモリ異常で共通鍵の値が正常に書き込めない場合は、書き込みの失敗原因となる。
【0011】
共通鍵書き込みの失敗原因の(1)から(6)は、暗号化された共通鍵のデータ及び共通鍵保管領域の保護設定に書き込み失敗の原因があり、共通鍵の設定又は共通鍵保管領域の保護設定を再確認し、共通鍵保管領域を再初期化することで共通鍵を再度書き込むことができる。しかし、失敗原因の(7)の場合はHSMの共通鍵保管領域のメモリに異常があることが原因であり、HSMの共通鍵保管領域を再初期化しても、共通鍵を書き込むことができないため、この状態を検出する必要がある。
【0012】
本発明は、共通鍵書き込みの失敗原因を特定し、書き込み領域の再初期化による回復が不可能なハードウェア異常の検出を目的とする。
【課題を解決するための手段】
【0013】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、共通鍵書き込みシステムにおけるメモリ異常判定方法であって、前記共通鍵書き込みシステムは、共通鍵を暗号化して保管するデータ保安装置と、前記暗号化された共通鍵を書き込む鍵書き込み装置と、HSM機能に共通鍵保管領域を有する電子制御装置とを有し、前記メモリ異常判定方法は、前記鍵書き込み装置が、前記共通鍵保管領域への共通鍵の書き込み失敗後に、第1検証用共通鍵、及び前記第1検証用共通鍵の値をビット反転させた第2検証用共通鍵を前記電子制御装置に書き込み、前記鍵書き込み装置が、前記第1検証用共通鍵及び前記第2検証用共通鍵の書き込み結果を評価することによって、前記共通鍵保管領域のメモリ異常を特定することを特徴とする。
【発明の効果】
【0014】
本発明の一態様によれば、共通鍵書き込みの原因がハードウェア異常であるかを特定できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施例のHSMの共通鍵保管領域に共通鍵を書き込む共通鍵書き込みシステムの構成を示す図である。
【
図2】本発明の実施例のHSMがマイクロコントローラに内蔵の場合のECUの構成を示す図である。
【
図3】本発明の実施例のHSMがマイクロコントローラに外付けの場合のECUの構成を示す図である。
【
図4】本発明の実施例のECUのソフトウェア構成を示す図である。
【
図5】本発明の実施例の検証用共通鍵の構成例を示す図である。
【
図6】本発明の実施例の検証用共通鍵の具体例を示す図である。
【
図7】本発明の実施例のHSMの共通鍵保管領域のメモリ異常を特定する方法を示す図である。
【発明を実施するための形態】
【0016】
以下、添付された図面を参照し、本発明を実施するための実施例について詳述する。
【0017】
[実施例1]
図1は、HSM320の共通鍵保管領域321に共通鍵401を書き込む共通鍵書き込みシステムの構成を示す図である。
【0018】
データ保安装置100は、共通鍵401の暗号化、共通鍵の書き込み結果501の検証に用いる検証用共通鍵410を生成し、共通鍵401を安全に保管する。共通鍵401は、仕様に従って、データ保安装置100の外部で取り扱う場合は暗号化をする必要がある。共通鍵401を暗号化する際は、AUTOSARの仕様に基づいてAES(Advanced Encryption Standard)暗号のCBC(Cipher Block Chaining)モードと、CMAC(Cipher-based Message Authentication Code)の二つの暗号化アルゴリズムを使用して暗号化する。暗号化された共通鍵400はM1、M2、M3の三つに分割されて存在する。検証用共通鍵410は、共通鍵401の書き込み結果501を検証するためのデータであり、AUTOSARの仕様に基づいて、暗号化アルゴリズムであるAES暗号のECB(Electronic Codebook)モードを使用して、M4及びM5を生成する。また、データ保安装置100は、暗号化された共通鍵400及び検証用共通鍵410を鍵書き込み装置200に送信する機能と、鍵書き込み装置200で検証された書き込み結果データ504を鍵書き込み装置200から受信する機能を有する。
【0019】
鍵書き込み装置200は、暗号化された共通鍵400及び検証用共通鍵410をデータ保安装置100から受信する機能と、暗号化された共通鍵400をアプリケーションソフト311に送信する機能と、共通鍵401の書き込みが成功した場合にレスポンスデータ502を、書き込みが失敗した場合にエラーID503をアプリケーションソフト311から受信する機能と、検証用共通鍵410及びレスポンスデータ502、又はエラーID503を用いて共通鍵401の書き込み結果501を検証し、書き込み結果データ504をデータ保安装置100に送信する機能を有する。
【0020】
ECU300は、アプリケーションソフト311及びHSM320の二つを有する。
【0021】
アプリケーションソフト311は、鍵書き込み装置200から暗号化された共通鍵400を受信してHSMソフトウェア312に送信する機能と、HSMソフトウェア312から共通鍵401の書き込み結果501を受信して、書き込みが成功した場合にレスポンスデータ502を、書き込みが失敗した場合にエラーID503を鍵書き込み装置200に送信する機能を有する。
【0022】
HSM320は、HSMソフトウェア312及び共通鍵保管領域321を有する。
【0023】
HSMソフトウェア312は、アプリケーションソフト311から受信した暗号化された共通鍵400を復号化し、復号化された共通鍵401を共通鍵保管領域321に書き込む機能と、共通鍵401の書き込み結果の読み取り値500を判定し、アプリケーションソフト311に書き込み結果501を送信する機能と、鍵書き込み装置200で鍵の書き込み結果501の検証に使用するM4’及びM5’を書き込み結果の読み取り値500から計算する機能を有する。
【0024】
共通鍵保管領域321は、HSMソフトウェア312以外からのアクセスを防止し、共通鍵401を安全に保管する機能を有する。
【0025】
データ保安装置100及び鍵書き込み装置200は、例えば外部の通信ネットワークと接続しないローカルエリアネットワークなどで接続する。鍵書き込み装置200及びECU300は、例えば、CANなどの車載ネットワーク通信バスで接続される。
【0026】
共通鍵401の書き込み手順は、以下の通りである。
【0027】
初めに、データ保安装置100が、共通鍵401を暗号化して暗号化された共通鍵400を生成し、検証用共通鍵410を生成する。
【0028】
次に、データ保安装置100が、暗号化された共通鍵400及び検証用共通鍵410を鍵書き込み装置200に送信する。
【0029】
次に、鍵書き込み装置200が、受信した暗号化された共通鍵400をアプリケーションソフト311に送信する。
【0030】
次に、アプリケーションソフト311が、受信した暗号化された共通鍵400をHSMソフトウェア312に送信する。
【0031】
次に、HSMソフトウェア312が、受信した暗号化された共通鍵400を復号化し、復号化された共通鍵401をHSM320の共通鍵保管領域321に書き込む。
【0032】
次に、HSMソフトウェア312が、共通鍵401の書き込み結果の読み取り値500を確認し、書き込み結果501をアプリケーションソフト311に送信する。書き込み成功時の書き込み結果501はM4’及びM5’、書き込み失敗時の書き込み結果501はエラー情報である。
【0033】
次に、アプリケーションソフト311が、受信した書き込み結果501から書き込みの成否を判定し、書き込みが成功していればレスポンスデータ502を、書き込みが失敗していればエラーID503を、鍵書き込み装置200に送信する。レスポンスデータ502は、M4’及びM5’を含む。
【0034】
次に、鍵書き込み装置200が、受信したレスポンスデータ502又はエラーID503から共通鍵の書き込み結果501を検証する。レスポンスデータ502を受信した場合、HSMソフトウェア312が計算し、レスポンスデータ502に含まれるM4’及びM5’と、鍵書き込み装置200がデータ保安装置100から受信したM4及びM5を比較して、書き込み結果501の正当性を検証する。M4とM4’が一致し、かつ、M5とM5’が一致すれば、正常に共通鍵401を書き込めたことを確認できる。エラーID503を受信した場合、エラーID503の値によってエラー内容を検証する。検証結果は、書き込み結果データ504として鍵書き込み装置200に一時的に保存される。
【0035】
最後に、鍵書き込み装置200が、検証した書き込み結果データ504をデータ保安装置100に送信し、データ保安装置100が、書き込み結果データ504を保存する。
【0036】
図2は、HSM320がマイクロコントローラ340aに内蔵の場合のECU300aの構成を示す図である。ECU300aは、例えばCANなどの車載ネットワーク通信バス330と、マイクロコントローラ340aと、例えばSPIなどのECU内通信バス350から構成される。マイクロコントローラ340aは、車載ネットワーク通信バス330と、ECU内通信バス350と通信するためのインタフェース部341と、マイクロコントローラ340aの演算を行う制御部342と、アプリケーションソフト311及びBSW(Basic Software)313を格納するデータ保管領域343と、マイクロコントローラ340aに内蔵される内蔵HSM320aから構成される。
【0037】
図3は、HSM320がマイクロコントローラ340bに外付けの場合のECU300bの構成を示す図である。ECU300bは、例えばCANなどの車載ネットワーク通信バス330と、マイクロコントローラ340bと、例えばSPIなどのECU内通信バス350と、外部HSM320bから構成される。マイクロコントローラ340bは、車載ネットワーク通信バス330及びECU内通信バス350と通信するためのインタフェース部341と、マイクロコントローラ340bの演算を行う制御部342と、アプリケーションソフト311及びBSW313を格納するデータ保管領域343から構成される。
【0038】
図4は、ECU300のソフトウェア構成310を示す図である。ソフトウェアはアプリケーションソフト311とBSW313から構成される。BSW313は、外部と通信するためのCANモジュール315やSPIモジュール316と、各種モジュールとアプリケーションソフト311の間で通信するためのCOMモジュール314と、HSMソフトウェア312から構成される。外部通信を行うためのモジュールとして、CANモジュール315及びSPIモジュール316を例示したが、他の形式の外部通信を使用する場合は、当該通信の形式に適合する通信モジュールを用いるとよい。
【0039】
図5は、HSM320の共通鍵保管領域321のメモリ異常であるかを特定するための検証用共通鍵の構成例を示す図であり、
図6は、
図5に示す検証用共通鍵の具体例を示す図である。
【0040】
図5に例示するように、検証用共通鍵は、検証用共通鍵A410と検証用共通鍵B420を有する。検証用共通鍵B420の鍵の値426は、検証用共通鍵A410の鍵の値416をビットの値を反転させた値であり、CID424は、検証用共通鍵A410のCID414より大きい値である。検証用共通鍵A410及び検証用共通鍵B420のUID411、SHE ID412、Auth ID413、及びFID415は、共通鍵と同じ値を設定すればよい。
【0041】
より具体的には、
図6に例示するように、検証用共通鍵A410aのCID414aは、最大値より1小さい値であり、鍵の値416aは全ビットが0に設定される。検証用共通鍵B420aのCID424aは、最大値であり、鍵の値426aの全ビットが1に設定される。CIDは28bitであるため、最大値は0xFFFFFFFとなる。二つの検証用共通鍵は、互いの鍵の値をビット反転させた鍵で、かつ検証用共通鍵B420のCID424が検証用共通鍵A410のCID414よりも値を大きく設定していれば例示するものでなくてもよい。
【0042】
図7は、共通鍵401の書き込みが失敗した際、HSM320の共通鍵保管領域321のメモリ異常、又は初めに書き込みが失敗した共通鍵401のCID異常、又はそれ以外に異常があるかを特定する方法を示す図である。
【0043】
HSM320の共通鍵保管領域321のメモリ異常を特定する方法は、初めに共通鍵401を書き込む(S201)。次に、アプリケーションソフト311から鍵書き込み装置200に書き込み結果501として、レスポンスデータ502又はエラーID503のどちらを受信するかを確認することによって、共通鍵401の書き込みが正常終了したかを鍵書き込み装置200が判定する(S202)。
【0044】
レスポンスデータ502を受信した場合(S202でYES)、共通鍵401の書き込みが正常終了したと判定する(S203)。一方、エラーID503を受信した場合(S202でNO)、共通鍵401の書き込みに異常があると判定し、データ保安装置100が検証用共通鍵A410及び検証用共通鍵B420を作成し、鍵書き込み装置200に送信する(S204)。検証用共通鍵A410及び検証用共通鍵B420は、事前に鍵書き込み装置200に準備してもよい。
【0045】
次に、鍵書き込み装置200は、検証用共通鍵A410及び検証用共通鍵B420を共通鍵保管領域321に書き込む(S205)。検証用共通鍵410、420を書き込む際、先に検証用共通鍵A410を書き込んだ後に検証用共通鍵B420を書き込む。鍵書き込み装置200は、検証用共通鍵A410及び検証用共通鍵B420の書き込み結果501としてアプリケーションソフト311から報告されるレスポンスデータ502又はエラーID503のどちらを受信するかを確認する(S206)。
【0046】
一つの検証用共通鍵のみが書き込めた場合、HSM320の共通鍵保管領域321のメモリの記憶ビットが0又は1のどちらかに固着しており、データが正常に書き込めない状態であるため、HSM320の共通鍵保管領域321のメモリ異常と判定する(S207)。二つの検証用共通鍵の書き込みが失敗した場合、鍵の値をメモリに書き込む以外の場所で異常が発生しているため、HSM320の共通鍵保管領域321のメモリ以外に異常がある(例えば、書き込みが失敗した共通鍵401のCIDが、ECU300に書き込まれているCID以下の値であるECU300が鍵書き込み禁止状態である)と判定する(S208)。二つの検証用共通鍵の書き込みが成功した場合、書き込みが失敗した共通鍵401のCIDが、ECU300に書き込まれているCID以下の値であることが書き込み失敗の原因であるため、共通鍵のCID異常と判定する(S209)。
【0047】
HSM320の共通鍵保管領域321のメモリ以外に異常がある(S208)、又は書き込みが失敗した共通鍵401のCIDの異常である(S209)と判定された場合、ECU300をリセットして、共通鍵保管領域321の初期化によって、ECU300を不良品と判定することなく再利用できる。
【0048】
本発明の実施例の共通鍵書き込みシステムは、鍵書き込み装置200が、共通鍵保管領域321への共通鍵401の書き込み失敗後に、第1検証用共通鍵410、及び第1検証用共通鍵410の値をビット反転させた第2検証用共通鍵420を電子制御装置(ECU300)に書き込み、第1検証用共通鍵410及び第2検証用共通鍵420の書き込み結果501を評価することによって、共通鍵保管領域321のメモリ異常を特定するので、共通鍵書き込みエラーの原因がハードウェア異常であるのか、書き込む共通鍵401のデータ異常であるのか、又は書き込み領域の保護設定であるのかを特定できる。このため、ハードウェア異常でない場合は共通鍵保管領域321の初期化によって、製品の廃棄を回避できる。
【0049】
また、共通鍵401の書き込みが失敗した後に、互いに鍵の値をビット反転させた二つの検証用共通鍵を順次書き込んで、1回の書き込みのみが成功した場合、メモリ異常と判定するので、ハードウェア異常を正確に判定できる。このため、鍵の書き込み結果501が失敗となる原因の数よりエラーIDの数が少ない場合でも、エラーの原因を正確に特定できる。
【0050】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0051】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0052】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0053】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0054】
100 データ保安装置
200 鍵書き込み装置
300、300a、300b ECU
310 ソフトウェア構成
311 アプリケーションソフト
312 HSMソフトウェア
314 COMモジュール
315 CANモジュール
316 SPIモジュール
321 共通鍵保管領域
330 車載ネットワーク通信バス
340a、340b マイクロコントローラ
341 インタフェース部
342 制御部
343 データ保管領域
350 ECU内通信バス
400 暗号化された共通鍵
401 共通鍵
410 第1検証用共通鍵
420 第2検証用共通鍵