【文献】
竹森 敬祐,セキュアエレメントを基点とした車載制御システムの保護,電子情報通信学会技術研究報告 Vol.114 No.508,日本,2015年 3月 2日,第114巻,p.77
(58)【調査した分野】(Int.Cl.,DB名)
車両に備わる管理装置と車載コンピュータを備え、前記管理装置と前記車載コンピュータとが前記車両に備わる通信ネットワークを介して通信する管理システムの管理方法であって、
前記管理装置と前記車載コンピュータとが、Root秘密鍵と前記Root秘密鍵のペアのRoot公開鍵の公開鍵証明書であるRoot証明書とを、共通して各々の鍵記憶部に記憶するステップと、
前記鍵記憶部に記憶されるRoot証明書とRoot秘密鍵のペアを使用して、公開鍵暗号方式に使用される公開鍵証明書を発行するステップと、を含む管理方法であり、
前記管理装置の鍵生成部が、新Root公開鍵と新Root秘密鍵のペアを生成するステップと、
前記管理装置の暗号処理部が、前記管理装置の鍵記憶部に記憶されるRoot秘密鍵を使用して前記新Root公開鍵の電子署名を生成するステップと、
前記管理装置の鍵記憶部が、前記新Root秘密鍵と、前記新Root公開鍵と当該新Root公開鍵の電子署名とから構成される公開鍵証明書である新Root証明書とを記憶するステップと、
前記管理装置が、前記新Root秘密鍵と前記新Root証明書を、前記車載コンピュータとの間で共有する暗号路鍵で暗号化して前記車載コンピュータへ送信するステップと、
前記車載コンピュータが、前記管理装置から受信した前記新Root秘密鍵と前記新Root証明書の暗号化データを前記暗号路鍵で復号化するステップと、
前記車載コンピュータの検証部が、復号化された前記新Root証明書を、前記車載コンピュータの鍵記憶部に記憶されるRoot証明書を使用して検証するステップと、
前記車載コンピュータの鍵記憶部が、前記新Root証明書の検証が成功である場合に、前記新Root秘密鍵と前記新Root証明書を記憶するステップと、
を含む管理方法。
【発明を実施するための形態】
【0016】
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
【0017】
[第1実施形態]
図1は、第1実施形態に係る自動車1を示す図である。
図1において、自動車1は管理装置10とECU50を備える。管理装置10は制御用車載ネットワーク40に接続される。制御用車載ネットワーク40として、例えばCAN(Controller Area Network)が使用される。CANは車両に搭載される通信ネットワークの一つとして知られている。本実施形態では、制御用車載ネットワーク40はCANである。制御用車載ネットワーク40には、各種のECU50が接続される。ECU50は、自動車1に備わる車載コンピュータである。ECU50は、例えば、駆動系ECU、車体系ECU、安全制御系ECUなどである。管理装置10は、制御用車載ネットワーク40を介して、各ECU50との間でデータを交換する。ECU50は、制御用車載ネットワーク40を介して、他のECU50との間でデータを交換する。
【0018】
管理装置10はセキュアエレメント20を備える。ECU50はセキュアエレメント60を備える。
【0019】
図2は、第1実施形態に係る管理装置10を示す構成図である。
図2において、管理装置10は、制御部11とCANインタフェース12とセキュアエレメント20を備える。これら各部はデータを交換できるように構成される。セキュアエレメント20は、鍵生成部21と鍵記憶部22と検証部23と暗号処理部24を備える。
【0020】
制御部11は管理装置10の制御機能を有する。CANインタフェース12は、ECU50と通信する通信部である。CANインタフェース12は、制御用車載ネットワーク40と接続し、制御用車載ネットワーク40を介して各ECU50とデータを交換する。セキュアエレメント20は耐タンパー性(Tamper Resistant)を有する。
【0021】
セキュアエレメント20において、鍵生成部21は鍵を生成する。鍵記憶部22は鍵を記憶する。検証部23は、データの交換についての検証を行う。暗号処理部24は、データの暗号化と暗号化データの復号化とを行う。
【0022】
図3は、
図2に示す鍵記憶部22の構成を示す図である。
図3において、鍵記憶部22は、Root証明書記憶部31とRoot秘密鍵記憶部32とS公開鍵証明書記憶部33とS秘密鍵記憶部34とC公開鍵証明書記憶部35とMAC鍵記憶部36を備える。
【0023】
Root証明書記憶部31はRoot証明書Cert_KRpを記憶する。Root秘密鍵記憶部32はRoot秘密鍵KRsを記憶する。Root証明書Cert_KRpは公開鍵の証明書である。Root証明書Cert_KRpが証明する公開鍵はRoot公開鍵KRpである。Root秘密鍵KRsは、Root公開鍵KRpとペアの秘密鍵である。Root証明書Cert_KRpとRoot秘密鍵KRsとは、例えば管理装置10の製造時などに、安全にセキュアエレメント20に書き込まれる。セキュアエレメント20に書き込まれたRoot証明書Cert_KRpは、Root証明書記憶部31に記憶される。セキュアエレメント20に書き込まれたRoot秘密鍵KRsは、Root秘密鍵記憶部32に記憶される。Root証明書Cert_KRp及びRoot秘密鍵KRsについては、平文のままでセキュアエレメント20から外部に出力させないように管理し秘匿することが好ましい。
【0024】
S公開鍵証明書記憶部33はS公開鍵証明書Cert_KSpを記憶する。S秘密鍵記憶部34はS秘密鍵KSsを記憶する。S公開鍵証明書KSpは公開鍵の証明書である。S公開鍵証明書Cert_KSpが証明する公開鍵はS公開鍵KSpである。S秘密鍵KSsは、S公開鍵KSpとペアの秘密鍵である。S公開鍵証明書Cert_KSpとS秘密鍵KSsとは鍵生成部21によって生成される。鍵生成部21によって生成されたS公開鍵証明書Cert_KSpは、S公開鍵証明書記憶部33に記憶される。鍵生成部21によって生成されたS秘密鍵KSsは、S秘密鍵記憶部34に記憶される。
【0025】
C公開鍵証明書記憶部35はC公開鍵証明書を記憶する。C公開鍵証明書は、ECU50毎に存在する。C公開鍵証明書記憶部35は、各ECU50のC公開鍵証明書を記憶する。あるECU50のC公開鍵証明書は、当該ECU50の公開鍵の証明書である。例えば、自動車1に備わるECU50のうちの一つである第1のECU50のC公開鍵証明書Cert_KC1pが証明する公開鍵はC公開鍵KC1pである。C公開鍵KC1pは、第1のECU50の公開鍵である。C公開鍵KC1pは、第1のECU50の秘密鍵であるC秘密鍵KC1sとペアである。各ECU50から受信されたC公開鍵証明書は、C公開鍵証明書記憶部35に記憶される。
【0026】
MAC鍵記憶部36はMAC鍵Kmを記憶する。MAC鍵Kmは鍵生成部21によって生成される共通鍵である。鍵生成部21によって生成されたMAC鍵Kmは、MAC鍵記憶部36に記憶される。MAC鍵Kmは、例えば、ECU50間のデータ交換の際に使用される。
【0027】
図4は、第1実施形態に係るECU50を示す構成図である。
図4において、ECU50は、制御部51とCANインタフェース52とセキュアエレメント60を備える。これら各部はデータを交換できるように構成される。セキュアエレメント60は、鍵生成部61と鍵記憶部62と検証部63と暗号処理部64を備える。
【0028】
制御部51は、ECU50に対応する所定の制御機能を備える。CANインタフェース52は、管理装置10や他のECU50と通信する通信部である。CANインタフェース52は、制御用車載ネットワーク40と接続し、制御用車載ネットワーク40を介して管理装置10や他のECU50とデータを交換する。セキュアエレメント60は耐タンパー性を有する。
【0029】
セキュアエレメント60において、鍵生成部61は鍵を生成する。鍵記憶部62は鍵を記憶する。検証部63は、データの交換についての検証を行う。暗号処理部64は、データの暗号化と暗号化データの復号化とを行う。
【0030】
図5は、
図4に示す鍵記憶部62の構成を示す図である。
図5において、鍵記憶部62は、Root証明書記憶部71とRoot秘密鍵記憶部72とC公開鍵証明書記憶部73とC秘密鍵記憶部74とS公開鍵証明書記憶部75とMAC鍵記憶部76を備える。
【0031】
Root証明書記憶部71は、管理装置10と同じRoot証明書Cert_KRpを記憶する。Root秘密鍵記憶部72は、管理装置10と同じRoot秘密鍵KRsを記憶する。したがって、管理装置10と各ECU50とは、同一のRoot証明書Cert_KRpとRoot秘密鍵KRsのペアを備える。Root証明書Cert_KRpとRoot秘密鍵KRsとは、例えばECU50の製造時などに、安全にセキュアエレメント60に書き込まれる。セキュアエレメント60に書き込まれたRoot証明書Cert_KRpは、Root証明書記憶部71に記憶される。セキュアエレメント60に書き込まれたRoot秘密鍵KRsは、Root秘密鍵記憶部72に記憶される。Root証明書Cert_KRp及びRoot秘密鍵KRsについては、平文のままでセキュアエレメント60から外部に出力させないように管理し秘匿することが好ましい。
【0032】
C公開鍵証明書記憶部73はC公開鍵証明書を記憶する。C秘密鍵記憶部74はC秘密鍵を記憶する。C公開鍵証明書は公開鍵の証明書である。C秘密鍵は、C公開鍵証明書の公開鍵とペアの秘密鍵である。C公開鍵証明書とC秘密鍵とは鍵生成部61によって生成される。鍵生成部61によって生成されたC公開鍵証明書は、C公開鍵証明書記憶部73に記憶される。鍵生成部61によって生成されたC秘密鍵は、C秘密鍵記憶部74に記憶される。例えば、第1のECU50のC公開鍵証明書Cert_KC1pは、第1のECU50のC公開鍵KC1pの証明書である。C公開鍵KC1pは、第1のECU50のC秘密鍵KC1sとペアである。第1のECU50の鍵生成部61によって生成されたC公開鍵証明書Cert_KC1pは、第1のECU50のC公開鍵証明書記憶部73に記憶される。第1のECU50の鍵生成部61によって生成されたC秘密鍵KC1sは、第1のECU50のC秘密鍵記憶部74に記憶される。
【0033】
S公開鍵証明書記憶部75は管理装置10のS公開鍵証明書Cert_KSpを記憶する。管理装置10から受信されたS公開鍵証明書Cert_KSpは、S公開鍵証明書記憶部75に記憶される。
【0034】
MAC鍵記憶部76はMAC鍵Kmを記憶する。管理装置10から受信されたMAC鍵Kmは、MAC鍵記憶部76に記憶される。
【0035】
次に、
図6から
図9を参照して第1実施形態に係る管理方法を説明する。なお、以下の説明において、管理装置10とECU50とは、制御用車載ネットワーク40を介してデータを送受する。管理装置10のセキュアエレメント20は、CANインタフェース12を介して、ECU50のセキュアエレメント60とデータを送受する。ECU50のセキュアエレメント60は、CANインタフェース52を介して、管理装置10のセキュアエレメント20とデータを送受する。これにより、管理装置10のセキュアエレメント20とECU50のセキュアエレメント60との間でデータの交換が行われる。
【0036】
[公開鍵証明書の更新段階]
図6を参照して、公開鍵証明書の更新段階を説明する。
図6は、第1の実施形態に係る管理方法のシーケンスチャートである。ここでは、説明の便宜上、自動車1に備わるECU50のうちの一つである第1のECU50を例に挙げて説明するが、他のECU50についても同様である。
【0037】
(ステップS1)管理装置10のセキュアエレメント20において、鍵生成部21が、S公開鍵KSpとS秘密鍵KSsのペアを生成する。公開鍵と秘密鍵のペアの生成方法として、例えば、RSA(Rivest Shamir Adleman)やECC(Elliptic Curve Cryptosystems)などが利用可能である。さらに、鍵生成部21が、生成したS公開鍵KSpのS公開鍵証明書Cert_KSpを生成する。S公開鍵証明書Cert_KSpは、S公開鍵KSpと、S公開鍵KSpの電子署名とから構成される。S公開鍵KSpの電子署名は、S公開鍵KSpのハッシュ値をRoot秘密鍵KRsで暗号化した結果の暗号化データである。
【0038】
S公開鍵証明書Cert_KSpの生成において、まず鍵生成部21が、S公開鍵KSpのハッシュ値hash(KSp)を算出する。次いで、暗号処理部24が、鍵生成部21により算出されたハッシュ値hash(KSp)を、Root秘密鍵記憶部32に記憶されるRoot秘密鍵KRsで暗号化する。この暗号化データKRs(hash(KSp))はS公開鍵KSpの電子署名である。次いで、鍵生成部21が、S公開鍵KSpとS公開鍵KSpの電子署名KRs(hash(KSp))とからS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」を構成する。
【0039】
S公開鍵証明書記憶部33は、鍵生成部21により生成されたS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」を記憶する。S秘密鍵記憶部34は、鍵生成部21により生成されたS秘密鍵KSsを記憶する。また、S公開鍵証明書記憶部33に記憶されるS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」とS秘密鍵記憶部34に記憶されるS秘密鍵KSsとがペアであることを示す関連付け情報を設定する。
【0040】
(ステップS2)第1のECU50のセキュアエレメント60において、鍵生成部61が、C公開鍵KC1pとC秘密鍵KC1sのペアを生成する。さらに、鍵生成部61が、生成したC秘密鍵KC1sのC公開鍵証明書Cert_KC1pを生成する。C公開鍵証明書Cert_KC1pは、C公開鍵KC1pと、C公開鍵KC1pの電子署名とから構成される。C公開鍵KC1pの電子署名は、C公開鍵KC1pのハッシュ値をRoot秘密鍵KRsで暗号化した結果の暗号化データである。
【0041】
C公開鍵証明書Cert_KC1pの生成において、まず鍵生成部61が、C公開鍵KC1pのハッシュ値hash(KC1p)を算出する。次いで、暗号処理部64が、鍵生成部61により算出されたハッシュ値hash(KC1p)を、Root秘密鍵記憶部72に記憶されるRoot秘密鍵KRsで暗号化する。この暗号化データKRs(hash(KC1p))はC公開鍵KC1pの電子署名である。次いで、鍵生成部61が、C公開鍵KC1pとC公開鍵KC1pの電子署名KRs(hash(KC1p))とからC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」を構成する。
【0042】
C公開鍵証明書記憶部73は、鍵生成部61により生成されたC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」を記憶する。C秘密鍵記憶部74は、鍵生成部61により生成されたC秘密鍵KC1sを記憶する。また、C公開鍵証明書記憶部73に記憶されるC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」とC秘密鍵記憶部74に記憶されるC秘密鍵KC1sとがペアであることを示す関連付け情報を設定する。
【0043】
(ステップS3)管理装置10のセキュアエレメント20が、CANインタフェース12により、上記のステップS1で生成されたS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」を第1のECU50のセキュアエレメント60へ送信する。
【0044】
(ステップS4)第1のECU50のセキュアエレメント60が、CANインタフェース52により、管理装置10のセキュアエレメント20からS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」を受信する。第1のECU50のセキュアエレメント60において、検証部63が、管理装置10のセキュアエレメント20から受信したS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」を検証する。
【0045】
S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」の検証において、まず検証部63が、S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」からS公開鍵KSpを取得し、取得したS公開鍵KSpのハッシュ値hash(KSp)を算出する。次いで、検証部63が、S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」から電子署名KRs(hash(KSp))を取得し、取得した電子署名KRs(hash(KSp))を、Root証明書記憶部71に記憶されるRoot証明書Cert_KRpのRoot公開鍵KRpで復号化する。この復号化により、復号化データ「KRp・KRs(hash(KSp))」が得られる。次いで、検証部63が、算出したハッシュ値hash(KSp)と、復号化データ「KRp・KRs(hash(KSp))」とが一致するかを判定する。この判定の結果、一致する場合にはS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」の検証が成功であり、不一致する場合にはS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」の検証が失敗である。
【0046】
S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」の検証が成功である場合には、検証部63が、S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」をS公開鍵証明書記憶部75に記憶させる。この後、ステップS5に進む。
【0047】
一方、S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」の検証が失敗である場合には、
図6の処理を終了する。よって、S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」は、S公開鍵証明書記憶部75に記憶されない。また、S公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」の検証が失敗である場合に、制御部51が所定のエラー処理を実行してもよい。
【0048】
(ステップS5)第1のECU50のセキュアエレメント60が、CANインタフェース52により、上記のステップS2で生成されたC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」を管理装置10のセキュアエレメント20へ送信する。
【0049】
(ステップS6)管理装置10のセキュアエレメント20が、CANインタフェース12により、第1のECU50のセキュアエレメント60からC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」を受信する。管理装置10のセキュアエレメント20において、検証部23が、第1のECU50のセキュアエレメント60から受信したC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」を検証する。
【0050】
C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」の検証において、まず検証部23が、C公開鍵証明書Cert_KC1p「KC1,KRs(hash(KC1p))」からC公開鍵KC1pを取得し、取得したC公開鍵KC1pのハッシュ値hash(KC1p)を算出する。次いで、検証部23が、C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」から電子署名KRs(hash(KC1p))を取得し、取得した電子署名KRs(hash(KC1p))を、Root証明書記憶部31に記憶されるRoot証明書Cert_KRpのRoot公開鍵KRpで復号化する。この復号化により、復号化データ「KRp・KRs(hash(KC1p))」が得られる。次いで、検証部23が、算出したハッシュ値hash(KC1p)と、復号化データ「KRp・KRs(hash(KC1p))」とが一致するかを判定する。この判定の結果、一致する場合にはC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」の検証が成功であり、不一致する場合にはC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」の検証が失敗である。
【0051】
C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」の検証が成功である場合には、検証部23が、C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」をC公開鍵証明書記憶部35に記憶させる。この後、
図6の処理を終了する。
【0052】
一方、C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」の検証が失敗である場合には、
図6の処理を終了する。よって、C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」は、C公開鍵証明書記憶部35に記憶されない。また、C公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」の検証が失敗である場合に、制御部11が所定のエラー処理を実行してもよい。
【0053】
上述した公開鍵証明書の更新段階によれば、自動車1の内部に閉じて、管理装置10がS公開鍵証明書Cert_KSpを発行し、また、ECU50がC公開鍵証明書を発行することができる。このため、一般のPKI(Public Key Infrastructure、公開鍵基盤)を使用することなく、自動車1の内部に閉じて公開鍵証明書の発行を行うことができる。これにより、一般のPKIを使用することなく自動車1の内部に閉じた公開鍵暗号方式を実現することができる。また、公開鍵暗号方式を使用して自動車1の内部のデータの秘匿を図る際に、自動車1の外部に存在するPKIを使用するための通信が不要となるので、通信装置を削減すること、通信ができない環境に適用すること、公開鍵証明書の発行頻度を容易に増加させることなどの効果が得られる。
【0054】
なお、管理装置10及びECU50は、比較的短い周期で繰り返し公開鍵と秘密鍵のペアを生成して公開鍵証明書を発行し、公開鍵証明書の発行の度に公開鍵証明書を新しいものに交換するようにしてもよい。これにより、公開鍵の失効リスト(リボケーションリスト)の管理を省略してもよい。
【0055】
[MAC鍵の更新段階]
図7を参照して、MAC鍵の更新段階を説明する。
図7は、第1の実施形態に係る管理方法のシーケンスチャートである。ここでは、説明の便宜上、自動車1に備わるECU50のうちの一つである第1のECU50を例に挙げて説明するが、他のECU50についても同様である。
【0056】
(ステップS11)管理装置10のセキュアエレメント20において、鍵生成部21が、MAC鍵Kmを生成する。次いで、鍵生成部21が、生成したMAC鍵Kmに対して電子署名を施す。MAC鍵Kmに対する電子署名では、まず鍵生成部21が、MAC鍵Kmのハッシュ値hash(Km)を算出する。次いで、暗号処理部24が、鍵生成部21により算出されたハッシュ値hash(Km)を、S秘密鍵記憶部34に記憶されるS秘密鍵KSsで暗号化する。この暗号化データKSs(hash(Km))はMAC鍵Kmの電子署名である。次いで、鍵生成部21が、MAC鍵KmとMAC鍵Kmの電子署名KSs(hash(Km))とからMAC鍵証明書「Km,KSs(hash(Km))」を構成する。MAC鍵記憶部36は、鍵生成部21により生成されたMAC鍵Kmを記憶する。
【0057】
(ステップS12)管理装置10のセキュアエレメント20において、暗号処理部24が、C公開鍵証明書記憶部35に記憶されるC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」からC公開鍵KC1pを取得する。次いで、暗号処理部24が、取得したC公開鍵KC1pで、鍵生成部21により生成されたMAC鍵証明書「Km,KSs(hash(Km))」を暗号化する。この暗号化データKC1p(「Km,KSs(hash(Km))」)は暗号路鍵の送付データである。次いで、管理装置10のセキュアエレメント20が、CANインタフェース12により、暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)を第1のECU50のセキュアエレメント60へ送信する。
【0058】
(ステップS13)第1のECU50のセキュアエレメント60が、CANインタフェース52により、管理装置10のセキュアエレメント20から暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)を受信する。第1のECU50のセキュアエレメント60において、検証部63が、管理装置10のセキュアエレメント20から受信した暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)を検証する。
【0059】
暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)の検証において、まず暗号処理部64が、C秘密鍵記憶部74に記憶されるC秘密鍵KC1sで、暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)を復号化する。この復号化により、復号化データ「KC1s・KC1p(「Km,KSs(hash(Km))」)」が得られる。次いで、検証部63が、復号化データ「KC1s・KC1p(「Km,KSs(hash(Km))」)」からMAC鍵Kmを取得し、取得したMAC鍵Kmのハッシュ値hash(Km)を算出する。
【0060】
次いで、検証部63が、S公開鍵証明書記憶部75に記憶されるS公開鍵証明書Cert_KSp「KSp,KRs(hash(KSp))」からS公開鍵KSpを取得する。次いで、検証部63が、復号化データ「KC1s・KC1p(「Km,KSs(hash(Km))」)」から電子署名KSs(hash(Km))を取得し、取得した電子署名KSs(hash(Km))をS公開鍵KSpで復号化する。この復号化により、復号化データ「KSp・KSs(hash(Km))」が得られる。
【0061】
次いで、検証部63が、算出したハッシュ値hash(Km)と、復号化データ「KSp・KSs(hash(Km))」とが一致するかを判定する。この判定の結果、一致する場合には暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)の検証が成功であり、不一致する場合には暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)の検証が失敗である。
【0062】
暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)の検証が成功である場合には、検証部63が、暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)から取得したMAC鍵KmをMAC鍵記憶部76に記憶させる。この後、
図7の処理を終了する。
【0063】
一方、暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)の検証が失敗である場合には、
図7の処理を終了する。よって、暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)に含まれるMAC鍵Kmは、MAC鍵記憶部76に記憶されない。また、暗号路鍵の送付データKC1p(「Km,KSs(hash(Km))」)の検証が失敗である場合に、制御部51が所定のエラー処理を実行してもよい。
【0064】
上述したMAC鍵の更新段階によれば、自動車1で使用されるMAC鍵Kmの更新を、自動車1の内部に閉じて、公開鍵暗号方式により安全に行うことができる。
【0065】
[Root証明書の更新段階]
図8及び
図9を参照して、Root証明書の更新段階を説明する。
図8及び
図9は、第1の実施形態に係る管理方法のシーケンスチャートである。
【0066】
(Root証明書の初回更新段階)
まず
図8を参照して、Root証明書の初回更新段階を説明する。ここでは、説明の便宜上、管理装置10及びECU50に最初に保持されるRoot証明書Cert_KRpとRoot秘密鍵KRsのペアにおいて、Root証明書Cert_KRpを初期Root証明書Cert_KRpと称し、Root公開鍵KRpを初期Root公開鍵KRpと称し、Root秘密鍵KRsを初期Root秘密鍵KRsと称する。また、新規に生成されるRoot証明書Cert_KRpとRoot秘密鍵KRsのペアにおいて、Root証明書Cert_KRpを新Root証明書Cert_KRp_newと称し、Root公開鍵KRpを新Root公開鍵KRp_newと称し、Root秘密鍵KRsを新Root秘密鍵KRs_newと称する。また、ここでは、自動車1に備わるECU50のうちの一つである第1のECU50を例に挙げて説明するが、他のECU50についても同様である。
【0067】
(ステップS21)管理装置10のセキュアエレメント20において、鍵生成部21が、新Root公開鍵KRp_newと新Root秘密鍵KRs_newのペアを生成する。さらに、鍵生成部21が、生成した新Root公開鍵KRp_newの証明書である新Root証明書Cert_KRp_newを生成する。新Root証明書Cert_KRp_newは、新Root公開鍵KRp_newと、新Root公開鍵KRp_newの電子署名とから構成される。新Root公開鍵KRp_newの電子署名は、新Root公開鍵KRp_newのハッシュ値を初期Root秘密鍵KRsで暗号化した結果の暗号化データである。
【0068】
新Root証明書Cert_KRp_newの生成において、まず鍵生成部21が、新Root公開鍵KRp_newのハッシュ値hash(KRp_new)を算出する。次いで、暗号処理部24が、鍵生成部21により算出されたハッシュ値hash(KRp_new)を、Root秘密鍵記憶部32に記憶される初期Root秘密鍵KRsで暗号化する。この暗号化データKRs(hash(KRp_new))は新Root公開鍵KRp_newの電子署名である。次いで、鍵生成部21が、新Root公開鍵KRp_newと新Root公開鍵KRp_newの電子署名KRs(hash(KRp_new))とから新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」を構成する。
【0069】
Root証明書記憶部31は、鍵生成部21により生成された新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」を記憶する。Root秘密鍵記憶部32は、鍵生成部21により生成された新Root秘密鍵KRs_newを記憶する。また、Root証明書記憶部31に記憶される新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」とRoot秘密鍵記憶部32に記憶される新Root秘密鍵KRs_newとがペアであることを示す関連付け情報を設定する。
【0070】
(ステップS22)管理装置10のセキュアエレメント20において、鍵生成部21が、暗号路鍵Kcを生成する。次いで、暗号処理部24が、C公開鍵証明書記憶部35に記憶されるC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」からC公開鍵KC1pを取得する。次いで、暗号処理部24が、取得したC公開鍵KC1pで、鍵生成部21により生成された暗号路鍵Kcを暗号化する。この暗号化データKC1p(Kc)は暗号路鍵の送付データである。次いで、管理装置10のセキュアエレメント20が、CANインタフェース12により、暗号路鍵の送付データKC1p(Kc)を第1のECU50のセキュアエレメント60へ送信する。
【0071】
第1のECU50のセキュアエレメント60が、CANインタフェース52により、管理装置10のセキュアエレメント20から暗号路鍵の送付データKC1p(Kc)を受信する。第1のECU50のセキュアエレメント60において、暗号処理部64が、管理装置10のセキュアエレメント20から受信した暗号路鍵の送付データKC1p(Kc)を、C秘密鍵記憶部74に記憶されるC秘密鍵KC1sで復号化する。この復号化により、復号化データ「KC1s・KC1p(Kc)」が得られる。暗号路鍵の送付データKC1p(Kc)の復号化が成功すれば、復号化データ「KC1s・KC1p(Kc)」は暗号路鍵Kcである。ここでは、暗号路鍵の送付データKC1p(Kc)の復号化が成功し、暗号路鍵Kcが得られたとする。
【0072】
(ステップS23)管理装置10のセキュアエレメント20において、暗号処理部24が、上記のステップS22で鍵生成部21により生成された暗号路鍵Kcで、新Root秘密鍵KRs_newと、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」とを暗号化する。これにより、暗号化データKc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)が得られる。次いで、管理装置10のセキュアエレメント20が、CANインタフェース12により、暗号化データKc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)を第1のECU50のセキュアエレメント60へ送信する。
【0073】
(ステップS24)第1のECU50のセキュアエレメント60が、CANインタフェース52により、管理装置10のセキュアエレメント20から暗号化データKc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)を受信する。第1のECU50のセキュアエレメント60において、暗号処理部64が、管理装置10のセキュアエレメント20から受信した暗号化データKc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)を、上記のステップS22で暗号路鍵の送付データKC1p(Kc)の復号化により得られた暗号路鍵Kcで復号化する。この復号化により、復号化データ「Kc・Kc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)」が得られる。暗号化データKc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)の復号化が成功すれば、復号化データ「Kc・Kc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)」から、新Root秘密鍵KRs_newと、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」とが得られる。ここでは、暗号化データKc(KRs_new,「KRp_new,KRs(hash(KRp_new))」)の復号化が成功し、新Root秘密鍵KRs_newと、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」とが得られたとする。次いで、検証部63が、得られた新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」を検証する。
【0074】
新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」の検証において、まず検証部63が、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」から新Root公開鍵KRp_newを取得し、取得した新Root公開鍵KRp_newのハッシュ値hash(KRp_new)を算出する。次いで、検証部63が、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」から電子署名KRs(hash(KRp_new))を取得し、取得した電子署名KRs(hash(KRp_new))を、Root証明書記憶部71に記憶される初期Root証明書Cert_KRpの初期Root公開鍵KRpで復号化する。この復号化により、復号化データ「KRp・KRs(hash(KRp_new))」が得られる。
【0075】
次いで、検証部63が、算出したハッシュ値hash(KRp_new)と、復号化データ「KRp・KRs(hash(KRp_new))」とが一致するかを判定する。この判定の結果、一致する場合には新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」の検証が成功であり、不一致する場合には新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」の検証が失敗である。
【0076】
新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」の検証が成功である場合には、Root証明書記憶部71が、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」を記憶する。Root秘密鍵記憶部72が、新Root秘密鍵KRs_newを記憶する。また、Root証明書記憶部71に記憶される新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」とRoot秘密鍵記憶部72に記憶される新Root秘密鍵KRs_newとがペアであることを示す関連付け情報を設定する。この後、
図8の処理を終了する。
【0077】
一方、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」の検証が失敗である場合には、
図8の処理を終了する。よって、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」は、Root証明書記憶部71に記憶されない。また、新Root証明書Cert_KRp_new「KRp_new,KRs(hash(KRp_new))」の検証が失敗である場合に、制御部51が所定のエラー処理を実行してもよい。
【0078】
(Root証明書の2回目以降の更新段階)
次に
図9を参照して、Root証明書の2回目以降の更新段階を説明する。ここでは、説明の便宜上、管理装置10及びECU50に保持される更新前のRoot証明書Cert_KRpとRoot秘密鍵KRsのペアにおいて、Root証明書Cert_KRpを旧Root証明書Cert_KRp_oldと称し、Root公開鍵KRpを旧Root公開鍵KRp_oldと称し、Root秘密鍵KRsを旧Root秘密鍵KRs_oldと称する。また、新規に生成されるRoot証明書Cert_KRpとRoot秘密鍵KRsのペアにおいて、Root証明書Cert_KRpを新Root証明書Cert_KRp_newと称し、Root公開鍵KRpを新Root公開鍵KRp_newと称し、Root秘密鍵KRsを新Root秘密鍵KRs_newと称する。また、ここでは、自動車1に備わるECU50のうちの一つである第1のECU50を例に挙げて説明するが、他のECU50についても同様である。
【0079】
(ステップS31)管理装置10のセキュアエレメント20において、鍵生成部21が、新Root公開鍵KRp_newと新Root秘密鍵KRs_newのペアを生成する。さらに、鍵生成部21が、生成した新Root公開鍵KRp_newの証明書である新Root証明書Cert_KRp_newを生成する。新Root証明書Cert_KRp_newは、新Root公開鍵KRp_newと、新Root公開鍵KRp_newの電子署名とから構成される。新Root公開鍵KRp_newの電子署名は、新Root公開鍵KRp_newのハッシュ値を旧Root秘密鍵KRs_oldで暗号化した結果の暗号化データである。
【0080】
新Root証明書Cert_KRp_newの生成において、まず鍵生成部21が、新Root公開鍵KRp_newのハッシュ値hash(KRp_new)を算出する。次いで、暗号処理部24が、鍵生成部21により算出されたハッシュ値hash(KRp_new)を、Root秘密鍵記憶部32に記憶される旧Root秘密鍵KRs_oldで暗号化する。この暗号化データKRs_old(hash(KRp_new))は新Root公開鍵KRp_newの電子署名である。次いで、鍵生成部21が、新Root公開鍵KRp_newと新Root公開鍵KRp_newの電子署名KRs_old(hash(KRp_new))とから新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」を構成する。
【0081】
Root証明書記憶部31は、鍵生成部21により生成された新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」を記憶する。Root秘密鍵記憶部32は、鍵生成部21により生成された新Root秘密鍵KRs_newを記憶する。また、Root証明書記憶部31に記憶される新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」とRoot秘密鍵記憶部32に記憶される新Root秘密鍵KRs_newとがペアであることを示す関連付け情報を設定する。
【0082】
(ステップS32)管理装置10のセキュアエレメント20において、鍵生成部21が、暗号路鍵Kcを生成する。次いで、暗号処理部24が、C公開鍵証明書記憶部35に記憶されるC公開鍵証明書Cert_KC1p「KC1p,KRs(hash(KC1p))」からC公開鍵KC1pを取得する。次いで、暗号処理部24が、取得したC公開鍵KC1pで、鍵生成部21により生成された暗号路鍵Kcを暗号化する。この暗号化データKC1p(Kc)は暗号路鍵の送付データである。次いで、管理装置10のセキュアエレメント20が、CANインタフェース12により、暗号路鍵の送付データKC1p(Kc)を第1のECU50のセキュアエレメント60へ送信する。
【0083】
第1のECU50のセキュアエレメント60が、CANインタフェース52により、管理装置10のセキュアエレメント20から暗号路鍵の送付データKC1p(Kc)を受信する。第1のECU50のセキュアエレメント60において、暗号処理部64が、管理装置10のセキュアエレメント20から受信した暗号路鍵の送付データKC1p(Kc)を、C秘密鍵記憶部74に記憶されるC秘密鍵KC1sで復号化する。この復号化により、復号化データ「KC1s・KC1p(Kc)」が得られる。暗号路鍵の送付データKC1p(Kc)の復号化が成功すれば、復号化データ「KC1s・KC1p(Kc)」は暗号路鍵Kcである。ここでは、暗号路鍵の送付データKC1p(Kc)の復号化が成功し、暗号路鍵Kcが得られたとする。
【0084】
(ステップS33)管理装置10のセキュアエレメント20において、暗号処理部24が、上記のステップS32で鍵生成部21により生成された暗号路鍵Kcで、新Root秘密鍵KRs_newと、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」とを暗号化する。これにより、暗号化データKc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)が得られる。次いで、管理装置10のセキュアエレメント20が、CANインタフェース12により、暗号化データKc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)を第1のECU50のセキュアエレメント60へ送信する。
【0085】
(ステップS34)第1のECU50のセキュアエレメント60が、CANインタフェース52により、管理装置10のセキュアエレメント20から暗号化データKc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)を受信する。第1のECU50のセキュアエレメント60において、暗号処理部64が、管理装置10のセキュアエレメント20から受信した暗号化データKc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)を、上記のステップS32で暗号路鍵の送付データKC1p(Kc)の復号化により得られた暗号路鍵Kcで復号化する。この復号化により、復号化データ「Kc・Kc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)」が得られる。暗号化データKc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)の復号化が成功すれば、復号化データ「Kc・Kc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)」から、新Root秘密鍵KRs_newと、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」とが得られる。ここでは、暗号化データKc(KRs_new,「KRp_new,KRs_old(hash(KRp_new))」)の復号化が成功し、新Root秘密鍵KRs_newと、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」とが得られたとする。次いで、検証部63が、得られた新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」を検証する。
【0086】
新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」の検証において、まず検証部63が、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」から新Root公開鍵KRp_newを取得し、取得した新Root公開鍵KRp_newのハッシュ値hash(KRp_new)を算出する。次いで、検証部63が、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」から電子署名KRs_old(hash(KRp_new))を取得し、取得した電子署名KRs_old(hash(KRp_new))を、Root証明書記憶部71に記憶される旧Root証明書Cert_KRp_oldの旧Root公開鍵KRp_oldで復号化する。この復号化により、復号化データ「KRp_old・KRs_old(hash(KRp_new))」が得られる。
【0087】
次いで、検証部63が、算出したハッシュ値hash(KRp_new)と、復号化データ「KRp_old・KRs_old(hash(KRp_new))」とが一致するかを判定する。この判定の結果、一致する場合には新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」の検証が成功であり、不一致する場合には新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」の検証が失敗である。
【0088】
新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」の検証が成功である場合には、Root証明書記憶部71が、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」を記憶する。Root秘密鍵記憶部72が、新Root秘密鍵KRs_newを記憶する。また、Root証明書記憶部71に記憶される新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」とRoot秘密鍵記憶部72に記憶される新Root秘密鍵KRs_newとがペアであることを示す関連付け情報を設定する。この後、
図9の処理を終了する。
【0089】
一方、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」の検証が失敗である場合には、
図9の処理を終了する。よって、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」は、Root証明書記憶部71に記憶されない。また、新Root証明書Cert_KRp_new「KRp_new,KRs_old(hash(KRp_new))」の検証が失敗である場合に、制御部51が所定のエラー処理を実行してもよい。
【0090】
上述したRoot証明書の更新段階によれば、自動車1の内部に閉じて、Root証明書とRoot秘密鍵のペアを更新することができる。このため、Root証明書とRoot秘密鍵のペアを定期的に更新することにより、Root証明書とRoot秘密鍵のペアの信頼性を高めることができるので、一般のPKIを使用することなく自動車1の内部に閉じた公開鍵暗号方式を実現する際の安全性が向上する。例えば、初期Root証明書Cert_KRpと初期Root秘密鍵KRsのペアを更新することなく使い続ける場合、耐タンパー性を有するセキュアエレメントであっても、漏洩電磁波解析の結果として初期Root証明書Cert_KRpと初期Root秘密鍵KRsのペアが漏洩する可能性を否定できない。このため、Root証明書とRoot秘密鍵のペアを定期的に更新することは好ましい。また、初期Root証明書Cert_KRpと初期Root秘密鍵KRsのペアについては、信頼性の向上のために、できる限り使用回数を少なくすることは好ましい。例えば、初期Root証明書Cert_KRpと初期Root秘密鍵KRsのペアの使用は、所定回数(例えば1回のみ)に限定してもよい。
【0091】
また、Root証明書とRoot秘密鍵のペアは自動車1毎に異なることが好ましい。上述したRoot証明書の更新段階によれば、自動車1の内部に閉じてRoot証明書とRoot秘密鍵のペアを更新することができるので、初期Root証明書Cert_KRpと初期Root秘密鍵KRsのペアが各自動車1に共通であったとしても、Root証明書とRoot秘密鍵のペアの更新により、各自動車1のRoot証明書とRoot秘密鍵のペアが異なるようにすることができる。
【0092】
[第2実施形態]
図10は、第2実施形態に係る管理システムを示す図である。
図10において
図1の各部に対応する部分には同一の符号を付け、その説明を省略する。
図10において、管理システムは、管理装置10aと管理サーバ装置80を備える。管理装置10aは自動車1に備わる。管理サーバ装置80は、無線通信ネットワーク2の通信事業者に備わる。
【0093】
無線通信ネットワーク2を利用するためには、無線通信ネットワーク2の契約者情報が書き込まれたSIM(Subscriber Identity Module)又はeSIM(Embedded Subscriber Identity Module)が必要である。管理装置10aは、SIM_20aを備える。SIM_20aは、無線通信ネットワーク2の契約者情報が書き込まれたSIMである。よって、管理装置10aは、SIM_20aを使用することにより無線通信ネットワーク2を利用できる。管理装置10aは、SIM_20aを使用して確立される無線通信回線3により無線通信ネットワーク2に接続する。SIM_20aはセキュアエレメントである。
【0094】
管理サーバ装置80は、無線通信ネットワーク2の通信事業者の通信回線4により無線通信ネットワーク2に接続する。管理装置10aと管理サーバ装置80とは、無線通信ネットワーク2を介して通信する。
【0095】
なお、管理装置10aと管理サーバ装置80との間に無線通信ネットワーク2を介した専用線を確立し、管理装置10aと管理サーバ装置80とが専用線を介してデータを送受するようにしてもよい。
【0096】
自動車1において、管理装置10aは制御用車載ネットワーク40に接続される。本実施形態では、制御用車載ネットワーク40はCANである。制御用車載ネットワーク40には、各種のECU50が接続される。管理装置10aは、制御用車載ネットワーク40を介して、各ECU50との間でデータを交換する。
【0097】
図11は、第2実施形態に係る管理装置10aを示す構成図である。
図11において
図2の各部に対応する部分には同一の符号を付け、その説明を省略する。
図11において、管理装置10aは、制御部11とCANインタフェース12と無線通信部13とSIM_20aを備える。これら各部はデータを交換できるように構成される。SIM_20aは、鍵生成部21と鍵記憶部22と検証部23と暗号処理部24を備える。第2実施形態においても、鍵記憶部22の構成は上記の
図3に示される構成と同じである。
【0098】
SIM_20aは、セキュアエレメントであり、耐タンパー性を有する。なお、セキュアエレメントとして、SIM_20aの代わりにeSIMを利用してもよい。SIM及びeSIMは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。
【0099】
無線通信部13は無線通信によりデータを送受する。SIM_20aは、無線通信ネットワーク2の契約者情報が書き込まれたSIMである。よって、無線通信部13は、SIM_20aを使用することにより、無線通信回線3を介して無線通信ネットワーク2に接続する。
【0100】
SIM_20aは、上記の
図2に示すセキュアエレメント20と同様の機能を実現する。これにより、上記の
図6から
図9を参照して説明した第1実施形態の管理方法が実現される。
【0101】
本実施形態では、SIM_20aは、無線通信部13により、無線通信ネットワーク2を介して管理サーバ装置80とデータを交換する。管理サーバ装置80は、SIM_20aへ、Root証明書とRoot秘密鍵のペアを送信する。管理サーバ装置80からSIM_20aへRoot証明書とRoot秘密鍵のペアを送信する際には、管理装置10aと管理サーバ装置80との間に無線通信ネットワーク2を介した専用線を確立し、確立した専用線を介してデータを送受することが好ましい。
【0102】
SIM_20aは、管理サーバ装置80から受信したRoot証明書を、Root証明書記憶部31に記憶させる。SIM_20aは、管理サーバ装置80から受信したRoot秘密鍵を、Root秘密鍵記憶部32に記憶させる。
【0103】
本実施形態によれば、無線通信により、管理サーバ装置80から自動車1へRoot証明書とRoot秘密鍵のペアを送信することができる。これにより、自動車1に保持されるRoot証明書とRoot秘密鍵のペアを、管理サーバ装置80から更新することができる。
【0104】
なお、無線通信ネットワーク2の電波が届かない等の理由により管理装置10aが無線通信ネットワーク2を介して管理サーバ装置80と通信できない場合には、必要に応じて、自動車1に対し、新たなRoot証明書とRoot秘密鍵のペアを保持する管理装置10a及びECU50に交換してもよい。
【0105】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0106】
例えば、セキュアエレメントとして、SIM又はeSIMを使用する例を挙げたが、これに限定されない。セキュアエレメントとして、例えば、耐タンパー性のある暗号処理チップを使用してもよい。耐タンパー性のある暗号処理チップとして、例えば、HSM(Hardware Security Module)やTPM(Trusted Platform Module)と呼ばれる暗号処理チップが知られている。TPMについては、例えば非特許文献3に記載されている。例えば、管理装置10のセキュアエレメント20及びECU50のセキュアエレメント60にHSM又はTPMを使用してもよい。又は、管理装置10,10aのセキュアエレメント20,20a及びECU50のセキュアエレメント60にSIM又はeSIMを使用してもよい。又は、管理装置10,10aのセキュアエレメント20,20aとしてSIM又はeSIMを使用し、ECU50のセキュアエレメント60としてHSM又はTPMを使用してもよい。
【0107】
また、自動車1に備わるいずれかのECU50を管理装置10又は管理装置10aとして機能させてもよい。
【0108】
また、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
【0109】
また、上述した管理装置10、管理装置10a又はECU50が実行する管理方法の各ステップを実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0110】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。