(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154671
(43)【公開日】2024-10-31
(54)【発明の名称】署名検証装置、署名検証方法、署名検証プログラム、及び暗号処理装置
(51)【国際特許分類】
G06F 21/57 20130101AFI20241024BHJP
G06F 21/64 20130101ALI20241024BHJP
G06F 21/60 20130101ALI20241024BHJP
【FI】
G06F21/57
G06F21/64
G06F21/60 320
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023068624
(22)【出願日】2023-04-19
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】230120499
【弁護士】
【氏名又は名称】藤江 和典
(74)【代理人】
【識別番号】100201385
【弁理士】
【氏名又は名称】中安 桂子
(72)【発明者】
【氏名】菅野 康治
(72)【発明者】
【氏名】中村 剛
(57)【要約】 (修正有)
【課題】アルゴリズムが危殆化した場合でも、不正である可能性のあるファイルの利用を制限する署名検証装置を提供する。
【解決手段】外部装置から情報を記録したファイル及び情報から生成した署名を受信し、ファイルに対する処理を行う署名検証装置11は、受信部101、セキュリティ強度比較部102及びファイル利用処理実行部103を備える。受信部は、外部装置から情報を記録したファイル及び署名を受信する。セキュリティ強度比較部は、署名のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルとともに受信した署名のセキュリティ強度である第2のセキュリティ強度とを比較する。ファイル利用処理実行部は、第1のセキュリティ強度が第2のセキュリティ強度以上の場合、ファイルを利用するための処理を実行し、第1のセキュリティ強度が第2のセキュリティ強度よりも低い場合、同処理を実行しない。
【選択図】
図5
【特許請求の範囲】
【請求項1】
外部装置(30)から情報を記録したファイル及び前記情報から生成した署名を受信し、前記ファイルに対する処理を行う署名検証装置であって、
前記ファイル及び前記署名を受信する受信部(101)と、
前記署名のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルとともに受信した署名のセキュリティ強度である第2のセキュリティ強度とを比較するセキュリティ強度比較部(102)と、
前記ファイルを利用するための処理を行うファイル利用処理実行部(103)と、を有し、
前記ファイル利用処理実行部は、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より高い場合、前記ファイルを利用するための処理を実行し、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より低い場合、前記ファイルを利用するための処理を実行しない、
署名検証装置(11,12,13)。
【請求項2】
前記ファイル利用処理実行部は、
前記第1のセキュリティ強度が前記第2のセキュリティ強度以上の場合、前記ファイルを利用するための処理を実行する、
署名検証装置(11,12,13)。
【請求項3】
当該署名検証装置は、接続された複数の電子制御装置(20)のうち、前記情報であるソフトウェアの更新対象である更新対象装置に対して前記ソフトウェアの更新を制御する更新制御装置であり、
前記ファイル利用処理実行部は、前記ファイルを利用するための処理として、前記更新対象装置に対し、前記ファイルを送信する、
請求項2記載の署名検証装置(11)。
【請求項4】
当該署名検証装置は、当該署名検証装置を実現している電子制御装置に対して前記情報であるソフトウェアの更新を制御する更新制御装置であり、
前記ファイル利用処理実行部は、前記ファイルを利用するための処理として、前記ソフトウェアのインストールを実行する、
請求項2記載の署名検証装置(12)。
【請求項5】
当該署名検証装置は、前記情報であるデータの利用を制御するデータ利用制御装置であり、
前記ファイル利用処理実行部は、前記ファイルを利用するための処理として、前記データを復号若しくは保存し、又は前記データのダウンロードを実行する、
請求項1記載の署名検証装置(13)。
【請求項6】
前記ファイルには複数の前記ソフトウェアが含まれており、
前記署名は、複数の前記ソフトウェアのそれぞれから生成した複数の個別署名、及び前記ファイルから生成した全体署名であり、
前記ファイル利用処理実行部は、複数の前記個別署名及び前記全体署名のそれぞれの前記第1のセキュリティ強度の少なくとも一つが、対応する個別署名又は全体署名の前記第2のセキュリティ強度よりも高い場合、前記ファイルを利用するための処理を実行する、
請求項3又は4記載の署名検証装置(11,12)。
【請求項7】
受信した前記ファイルに含まれる前記ソフトウェアのバージョンは、過去に受信したファイルに含まれるソフトウェアのバージョンよりも低いバージョンである、
請求項3又は4記載の署名検証装置(11,12)。
【請求項8】
前記署名のセキュリティ強度は、前記署名の署名方式のアルゴリズム及び前記署名に用いる鍵の長さに基づき定めている、
請求項2記載の署名検証装置(11,12,13)。
【請求項9】
当該署名検証装置は、移動体に搭載されている、
請求項1記載の署名検証装置(11,12,13)。
【請求項10】
当該署名検証装置は、前記電子制御装置とともに移動体に搭載されている、
請求項3又は4記載の署名検証装置(11)。
【請求項11】
前記電子制御装置は移動体に搭載されており、
当該署名検証装置は、前記移動体の外部に配置されている、
請求項3記載の署名検証装置(11)。
【請求項12】
外部装置(30)から情報を記録したファイル及び前記情報から生成した署名を受信し、前記ファイルに対する処理を行う署名検証装置(11,12,13)で実行される署名検証方法であって、
前記ファイル及び前記署名を受信し(S101)、
前記署名のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルとともに受信した署名のセキュリティ強度である第2のセキュリティ強度とを比較し(S106)、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より高い場合、前記ファイルを利用するための処理を実行し(S109~S112)、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より低い場合、前記ファイルを利用するための処理を実行しない(S113)、
署名検証方法。
【請求項13】
外部装置(30)から情報を記録したファイル及び前記情報から生成した署名を受信し、前記ファイルに対する処理を行う署名検証装置(11,12,13)で実行可能な署名検証プログラムであって、
前記ファイル及び前記署名を受信し(S101)、
前記署名のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルとともに受信した署名のセキュリティ強度である第2のセキュリティ強度とを比較し(S106)、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より高い場合、前記ファイルを利用するための処理を実行し(S109~S112)、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より低い場合、前記ファイルを利用するための処理を実行しない(S113)、
署名検証プログラム。
【請求項14】
外部装置(30)から暗号化された情報を記録したファイルを受信し、前記ファイルに対する処理を行う暗号処理装置であって、
前記ファイルを受信する受信部(141)と、
前記情報の暗号化に用いた暗号のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルに含まれる情報の暗号化に用いた暗号のセキュリティ強度である第2のセキュリティ強度とを比較するセキュリティ強度比較部(142)と、
前記ファイルを利用するための処理を行うファイル利用処理実行部(143)と、を有し、
前記ファイル利用処理実行部は、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より高い場合、前記ファイルを利用するための処理を実行し、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より低い場合、前記ファイルを利用するための処理を実行しない、
暗号処理装置(14)。
【請求項15】
前記ファイル利用処理実行部は、前記ファイルを利用するための処理として、前記情報を復号若しくは保存し、前記情報のダウンロードを実行する、
請求項14記載の暗号処理装置(14)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主として車載の電子制御システムに搭載され、外部装置から情報を記録したファイルを受信し、署名又は暗号のセキュリティ強度に基づいて、当該ファイルを利用するための処理を行う署名検証装置、暗号処理装置、及び署名検証装置等で実現する方法及び署名検証装置等で実行可能なプログラムに関する。
【背景技術】
【0002】
自動車においては、車載ネットワークで接続された様々な電子制御装置が搭載されている。近年の自動運転技術の発展に伴い自動車に求められる機能が複雑になるため、自動車に搭載される電子制御装置の数は増加しつつある。
【0003】
電子制御装置のソフトウェアは、脆弱性を無くしてセキュリティ性能を高めたり、新機能の追加や既存機能の改善を行うことを目的として、更新(すなわち、アップデート)する必要がある。ソフトウェアを更新するための更新ファイルは、例えば配信装置から通信回線を通じて提供を受けることができる。
【0004】
配信装置から更新ファイルの提供を受ける場合、更新ファイルの完全性確認、認証、及び否認防止を目的として、更新ファイルに署名を付して送信することが望ましい。あるいは、漏洩防止を目的として、更新ファイルに含まれるプログラムやデータに暗号化を施すことが望ましい。
【0005】
もっとも、署名や暗号は、攻撃手法の研究や分析機器の発達に伴い、署名や暗号の危殆化が問題となる。
例えば、特許文献1には、暗号鍵が危殆化したことを示す危殆化情報をサーバから収集し、暗号危殆化情報に基づき更新すべき暗号鍵を特定し、暗号鍵を更新する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、本発明者は、詳細な検討の結果、以下の課題を見出した。
署名や暗号のセキュリティ強度は、署名方式や暗号方式すなわち署名や暗号のアルゴリズムと、当該アルゴリズムで使用する鍵の長さである鍵長で決まる。アルゴリズムが危殆化した場合は、例えば特許文献1に記載されているような鍵長を伸長しても、危殆化したアルゴリズムで署名等の偽造が可能であるので、セキュリティを確保することができない。
【0008】
そこで、本発明は、アルゴリズムが危殆化した場合でも、不正である可能性のあるファイルの利用を制限することができる、例えば不正なソフトウェアの更新を防ぐことができる署名検証装置等を実現することを目的とする。
【課題を解決するための手段】
【0009】
本開示の一態様による署名検証装置は、外部装置(30)から情報を記録したファイル及び前記情報から生成した署名を受信し、前記ファイルに対する処理を行う署名検証装置であって、
前記ファイル及び前記署名を受信する受信部(101)と、
前記署名のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルとともに受信した署名のセキュリティ強度である第2のセキュリティ強度とを比較するセキュリティ強度比較部(102)と、
前記ファイルを利用するための処理を行うファイル利用処理実行部(103)と、を有し、
前記ファイル利用処理実行部は、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より高い場合、前記ファイルを利用するための処理を実行し、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より低い場合、前記ファイルを利用するための処理を実行しない。
【0010】
本開示の一態様による暗号処理装置は、外部装置(30)から暗号化された情報を記録したファイルを受信し、前記ファイルに対する処理を行う暗号処理装置であって、
前記ファイルを受信する受信部(141)と、
前記情報の暗号化に用いた暗号のセキュリティ強度である第1のセキュリティ強度と、過去に受信したファイルに含まれる情報の暗号化に用いた暗号のセキュリティ強度である第2のセキュリティ強度とを比較するセキュリティ強度比較部(142)と、
前記ファイルを利用するための処理を行うファイル利用処理実行部(143)と、を有し、
前記ファイル利用処理実行部は、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より高い場合、前記ファイルを利用するための処理を実行し、
前記第1のセキュリティ強度が前記第2のセキュリティ強度より低い場合、前記ファイルを利用するための処理を実行しない。
【0011】
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
また、上述の技術分野や課題は一例であり、これには限定されない。例えば、車載用途以外の装置等であってもよい。あるいは、ソフトウェアの更新を目的とするものでなくてもよく、例えば、データのダウンロードを目的としてもよい。
【発明の効果】
【0012】
以上の構成によれば、本発明の署名検証装置等は、受信したファイルの署名や暗号のセキュリティ強度と過去に受信したファイルの署名や暗号のセキュリティ強度とを比較して、ファイル利用処理を実行するか否かを決定しているので、アルゴリズムが危殆化した場合でも、不正である可能性のあるファイルの利用を制限することができる、例えば不正なソフトウェア更新やデータのダウンロード等を防ぐことができる署名検証装置等を実現することができる。
【図面の簡単な説明】
【0013】
【
図2】署名検証装置等と電子制御システム(電子制御装置)の配置を説明する図
【
図5】実施形態1、2、3の署名検証装置の構成を説明するブロック図
【
図6】実施形態1、2、3の署名検証装置で用いる署名情報テーブルを説明する説明図
【
図7】実施形態1の署名検証装置の動作の具体例を説明する図
【
図8】実施形態1の署名検証装置の動作を説明する図
【
図9】実施形態1の変形例1の署名検証装置で用いるファイルの構造を説明する図
【
図10】実施形態2の署名検証装置の動作を説明する図
【
図11】実施形態3の署名検証装置の動作を説明する図
【
図12】実施形態4の暗号処理装置の構成を説明するブロック図
【
図13】実施形態4の暗号処理装置で用いる暗号情報テーブルを説明する説明図
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照して説明する。
【0015】
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
【0016】
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
【0017】
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
【0018】
複数の実施形態(変形例を含む。以下、本段落において同様。)がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせてもよい。また、複数の実施形態それぞれに開示の構成を集めて組み合わせてもよい。
【0019】
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。実施形態1の従来の課題の項に記載した課題や知見も同様である。
【0020】
1.各実施形態の前提となる構成
(1)署名検証装置又は暗号処理装置の配置
図1は、各実施形態の「署名検証装置」又は「暗号処理装置」の配置を説明する図である。例えば、
図1(a)に示すように、署名検証装置11、署名検証装置12、署名検証装置13、又は暗号処理装置14(以下、署名検証装置11等と略する。)は、「移動体」である車両に「搭載」されている。あるいは、
図1(b)に示すように、署名検証装置11等は、必ずしも「移動体」に「搭載」されていなくてもよい。
図1(a)の署名検証装置11等の形態の例として、電子制御装置(ECU:(Electric Control Unit))が挙げられるが、これに限らない。また、
図1(b)の署名検証装置11等の形態の例として、パーソナルコンピュータ(PC)やスマートフォンが挙げられるが、これらに限らない。
ここで、
「移動体」とは、移動可能な物体をいい、移動速度は任意である。また移動体が停止している場合も当然含む。例えば、自動車、自動二輪車、自転車、歩行者、船舶、航空機、及びこれらに搭載される物を含み、またこれらに限らない。
「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
【0021】
図1(a)の場合、署名検証装置11等は、主に無線通信を介して外部装置30から情報を記録したファイルを受信する。車両が駐車中であったり、修理工場に収容されている場合は、有線通信を介してファイルを受信してもよい。
図1(b)の場合、署名検証装置11等は、無線通信又は有線通信を介して外部装置30からファイルを受信する。
【0022】
図2は、各実施形態の署名検証装置11等と電子制御システムSの配置を説明する図である。各実施形態の署名検証装置11等は、電子制御システムSを構成する複数の「電子制御装置」20(以下、ECU(Electronic Control Unit)と称する)と「接続」されている。
ここで、
「電子制御装置」とは、物理的に独立した電子制御装置の他、仮想化技術を用いて実現した仮想化電子制御装置であってもよい。
「接続」とは、データのやり取りが可能な状態をいい、異なるハードウェアが有線又は無線の通信ネットワークを介して接続されている場合はもちろん、同一のハードウェア上で実現された仮想マシン同士が仮想的に接続されている場合も含む。
【0023】
図2(a)は、署名検証装置11等が電子制御システムSの内部に設けられている場合、
図2(b)は、署名検証装置11等が電子制御システムSの外部かつ車両の内部に設けられている場合、を示している。すなわち、署名検証装置11等は、ECU20とともに「移動体」に「搭載」されている。
図2(a)及び
図2(b)の場合、署名検証装置11等と複数のECU20とは、例えばCAN(Controller Area Network)、LIN(Local Interconnect Network)といった車載通信ネットワークを介して「接続」されている。あるいは、Ethernet(登録商標)、Wi-Fi(登録商標)、Bluetooth(登録商標)等、有線無線を問わず任意の通信方式を用いて接続されてもよい。
【0024】
図2(c)は、署名検証装置11等が電子制御システムSの外部かつ車両の外部に設けられている場合を示している。すなわち、ECU20は、「移動体」に「搭載」されており、署名検証装置11等は、移動体の外部に配置されている。例えば、署名検証装置11等は、サーバ装置等で実現されている。
図2(c)の場合、署名検証装置11等と複数のECU20とは、例えば、IEEE802.11(Wi-Fi(登録商標))、IEEE802.16(WiMAX(登録商標))、W-CDMA(Wideband Code Division Multiple Access)、HSPA(High Speed Packet Access)、LTE(Long Term Evolution)、LTE-A(Long Term Evolution Advanced)、4G、5G等の無線通信方式といった通信ネットワークを介して「接続」されている。あるいは、DSRC(Dedicated Short Range Communication)を用いることができる。車両が駐車場に駐車されていたり、修理工場に収容されている場合は、無線通信方式に代えて、有線通信方式を用いることができる。例えば、LAN(Local Area Network)やインターネット、固定電話回線を用いることができる。
【0025】
(2)電子制御システムSの構成
図3は、電子制御システムSの構成例を示す図である。電子制御システムSは、複数のECU20、及びこれらを接続する車載ネットワーク(NW1~NW3)から構成されている。
図3は8つのECU(ECU20a~ECU20h)を例示しているが、当然のことながら、電子制御システムSは任意の数のECUから構成される。以後の説明では、単数又は複数の電子制御装置全体を包括して説明する場合はECU20や各ECU20、個々の電子制御装置を特定して説明する場合はECU20a、ECU20b、ECU20c、・・・のように記載している。
【0026】
図3の場合、各ECU20間は、上述の
図2(a)(b)の説明で記載した車載ネットワークや、その他の有線通信方式や無線通信方式で接続されている。
【0027】
図3に示す電子制御システムSは、統合ECU20a、外部通信ECU20b、ゾーンECU(20c,20d)、及び個別ECU(20e~20h)を含んでいる。
【0028】
統合ECU20aは、電子制御システムS全体を制御する機能を備えるとともに、各ECU20間の通信を仲介するゲートウェイ機能を備えたECUである。統合ECU20aは、ゲートウェイECU(G-ECU)、モビリティコンピュータ(MC)と呼ばれることもある。また、統合ECU20aは、中継装置やゲートウェイ装置であってもよい。
【0029】
外部通信ECU20bは、車両の外部に設けられた外部装置、例えば各実施形態では外部装置30と通信を行う通信部を有するECUである。外部通信ECU20bが用いる通信方式は、
図2(c)の説明で記載した無線通信方式や有線通信方式である。
なお、複数の通信方式を実現するため、外部通信ECU20bを複数設けるようにしてもよい。また、外部通信ECU20bを設ける代わりに、統合ECU20aが外部通信ECU20bの機能を内包してもよい。
【0030】
ゾーンECU(20c,20d)は、後述の個別ECUが配置される場所や機能に応じて適宜配置されたゲートウェイ機能を備えたECUである。例えば、ゾーンECU20cは、車両の前方に配置された個別ECU20e及び個別ECU20fと他のECU20との通信を仲介するゲートウェイ機能を有するECU、ゾーンECU20dは、車両の後方に配置された個別ECU20g及び個別ECU20hと他のECU20との通信を仲介するゲートウェイ機能を有するECU、である。ゾーンECU(20c,20d)は、ドメインコンピュータ(DC)と呼ばれることもある。ゾーンECU20cには、ネットワーク2(NW2)を介して個別ECU20e及び個別ECU20fが接続され、ゾーンECU20dには、ネットワーク3(NW3)を介して個別ECU20g及び個別ECU20hが接続されている。
【0031】
個別ECU(20e~20h)は任意の機能を有するECUで構成することができる。例えば、エンジン、ハンドル、ブレーキ等の制御を行う駆動系電子制御装置、メータやパワーウインドウ等の制御を行う車体系電子制御装置、ナビゲーション装置等の情報系電子制御装置、あるいは、障害物や歩行者との衝突を防止するための制御を行う安全制御系電子制御装置が挙げられる。また、ECU同士が並列ではなく、マスタとスレーブとに分類されていてもよい。
【0032】
実施形態1、実施形態3、及び実施形態4においては、署名検証装置11、署名検証装置13、暗号処理装置14が、統合ECU20aに設けられている場合を例として説明する。実施形態2においては、署名検証装置12が、個別ECU(20e~20h)に設けられている場合を例として説明する。もっとも、署名検証装置11等は、外部通信ECU20b、ゾーンECU(20c~20d)、又は個別ECU(20e~20h)に設けられていてもよい。個別ECU(20e~20h)の1つに設けられる場合は、更新制御装置11等を実現する専用のECUとすることが望ましい。
【0033】
なお、電子制御システムSを構成する各ECU20のうち、外部通信ECU20bではないECU20が署名検証装置11等の機能を内蔵する場合、後述する署名検証装置11等の受信部101は、外部通信ECU20bを介して、電子制御システムSの外部からファイルを取得する。この場合、署名検証装置11等は、AUTOSAR(AUTomotive Open System ARchitecture)仕様においてUCMマスタと称される。また、外部通信ECU20bは、AUTOSAR仕様においてOTA(Over The Air)クライアントと称される。なお、
図3における各ECU20は、AUTOSAR仕様においてUCM(Update and Configuration Management)サブオーディネイトと称される。
【0034】
以下、実施形態1の例として署名検証装置11、実施形態2の例として署名検証装置12、実施形態3の例として署名検証装置13、実施形態4の例として暗号処理装置14について説明する。
【0035】
2.実施形態1
(1)従来の課題
図4を用いて、従来の課題を説明する。
図4(a)は、更新対象装置が、配信装置からソフトウェアを更新するための更新ファイル(SW1(1))を受信し、ソフトウェア(SW1(1))のインストールを行う様子を示している。
更新対象装置は、セキュリティ強度が高い耐量子計算機暗号(PQC(Post-Quantum Cryptography))に対応した検証鍵1と、セキュリティ強度が中程度の楕円曲線暗号(ECC(Elliptic Curve Cryptography))に対応した検証鍵2を有している。特に、PQCのような次世代暗号への移行過渡期の場合、既存暗号で接続性を維持しつつ、暗号の危殆化の備えとして次世代暗号にも対応するために、複数の方式の暗号に対応する装置が必要とされることが考えられる。更新対象装置がPQCに対応した署名1及び更新用のソフトウェア(SW1(1))を含む更新ファイル(SW1(1))を受信した場合、更新対象装置は検証鍵1を用いて検証を行い、検証が成功すればソフトウェア(SW1(1))をインストールする。
【0036】
図4(b)は、更新対象装置が、配信装置から再度同じソフトウェア(SW1(2))を受信し、ソフトウェア(SW1(2))のインストールを行う様子を示している。
更新対象装置がECCに対応した署名2及び更新用のソフトウェア(SW1(2))を含む更新ファイル(SW1(2))を受信した場合、更新対象装置は検証鍵2を用いて検証を行い、検証が成功すれば現在インストールされているソフトウェア(SW1(1))に上書きするように、今回受信したソフトウェア(SW1(2))をインストールする。
【0037】
ここで、配信装置から更新ファイル(SW1(2))を受信した時点でECCのアルゴリズムやECCの検証鍵2が危殆化している場合、更新ファイル(SW1(2))に付されている署名2が偽造されている可能性がある。この場合、危殆化した検証鍵2を用いて検証を行っても検証が成功してしまい、ソフトウェア(SW1(2))がインストールされてしまう。そして、ソフトウェア(SW1(2))に脆弱性が織り込まれていたり、ダウングレードされていた場合、更新対象装置がサイバー攻撃やその他の危険に晒されることになってしまう。
【0038】
なお、ソフトウェア(SW1(1))とソフトウェア(SW1(2))は、完全に同じものである必要はない。例えば、機能等が追加されている場合やバージョンが異なっている場合、あるいは上述の通り改変が加わっている場合もある。すなわち、更新対象装置において上書き動作の対象となる等、更新対象装置において同じソフトウェアとして取り扱われる可能性があれば足りる。本実施形態の他、実施形態2や実施形態4においても同様である。
【0039】
本実施形態では、このような不正なソフトウェア更新を排除することを目的としている。
【0040】
(2)署名検証装置11の構成
図5を用いて、本実施形態の署名検証装置11の構成例を説明する。署名検証装置11は、受信部101、セキュリティ強度比較部102、ファイル利用処理実行部103、ファイル保存部104、及び署名情報保存部105を有する。本実施形態では、署名検証装置11は、
図3の統合ECU20aに設けられているとする。また、更新対象装置は、
図3のゾーンECU(20c,20d)、個別ECU(20e~20h)、外部通信ECU20b、統合ECU20aとする。
【0041】
署名検証装置11は、汎用のCPU(Central Processing Unit)、RAM等の揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリ、各種インターフェース、及びこれらを接続する内部バスで構成することができる。そして、これらのハードウェア上でソフトウェアを実行することにより、
図5に記載の各機能ブロックの機能を発揮させるように構成することができる。
【0042】
署名検証装置11は、外部装置30から「情報」を記録したファイル及び「情報から生成した署名」を受信し、ファイルに対する処理を行う装置である。実施形態2の署名検証装置12及び実施形態3の署名検証装置13においても同様である。
ここで、
「情報」には、ソフトウェア又はデータが含まれる。ソフトウェアにはOS(Operating System)上で動作するソフトウェアはもちろん、ミドルウェア(例えば、OS)も含む。データには、動画像、静止画像、地図、音声等も含む。
「情報から生成した署名」には、情報の全部又は一部から直接生成した署名の他、情報の全部又は一部から間接的に生成した署名、例えば情報の全部又は一部から求めたハッシュ値から生成した署名も含む。
【0043】
本実施形態では、署名検証装置11は、接続された複数のECU20のうち、「情報」である「ソフトウェア」の更新対象である更新対象装置に対してソフトウェアの更新を制御する更新制御装置である。このような更新制御装置は、外部装置30のから提供される更新プログラムの配信を受け、電子制御システム内で更新対象装置を管理する統合ECU20aで実現する例があり、OTA(Over The Aire)リプログラミングとも呼ばれる。
ここで、「ソフトウェア」には、OS(Operating System)上で動作するソフトウェアはもちろん、電子制御装置そのものを動作させるミドルウェア(例えば、OS)も含む。
【0044】
受信部101は、例えば配信装置である外部装置30から更新ファイル(「ファイル」に相当)及び更新ファイルに付された署名を受信する。具体的には、更新ファイル(SW1(N))と署名を受信する。受信した更新ファイルは、ファイル保存部104に出力される。ファイル保存部104は、不揮発性又は揮発性の記録媒体を用いることができる。ファイル保存部104は、セキュアな領域に設けることが望ましい。
【0045】
図2(a)や
図2(b)に示すように、署名検証装置11が移動体に搭載されている場合、外部通信ECU20bは、電子制御システムSの外部に設けられたサーバ装置等から更新ファイルを無線通信又は有線通信を介して受信し、署名検証装置11の受信部101は、外部通信ECU20bから送信された更新ファイルを、車内ネットワークを介して受信する。
なお、
図2(c)に示すように、署名検証装置11を車両外部のサーバ装置等で実現する場合、署名検証装置11の受信部101は、当該サーバ装置で生成された若しくは他の装置で生成された更新ファイルを、無線通信又は有線通信を介して受信する。
【0046】
更新ファイルは、更新対象装置に搭載されたソフトウェアを更新するための更新ファイルを含む。更新ファイルは、複数のソフトウェアを更新するための複数の更新ファイルを含む更新ファイル群であってもよい。更新ファイル群には、複数の更新対象装置それぞれに用いる更新ファイルが含まれていてもよい。あるいは、更新ファイルは、一の更新ファイルが複数に分割されたファイルであってもよい。
【0047】
更新ファイルには、更新すべきソフトウェアを搭載している更新対象装置を特定する情報や、それぞれの更新ファイルのデータ量を示す情報を含めてもよい。これらの情報は更新ファイルのヘッダに格納してもよいし、更新ファイルの更新データ部分に格納されていてもよい。
【0048】
署名には、署名のサイズ、署名に用いた鍵、署名の方式を示す情報を含めてもよい。後述のセキュリティ強度を示す情報が含まれていてもよい。これらの情報は、署名のヘッダに格納してもよい。
【0049】
セキュリティ強度比較部102は、今回受信部101で受信した署名のセキュリティ強度である第1のセキュリティ強度と、過去に受信部101で受信したファイルとともに受信した署名のセキュリティ強度である第2のセキュリティ強度とを比較する。具体的には、今回受信部101で受信した更新ファイル(SW1(N))に付された署名のセキュリティ強度(「第1のセキュリティ強度」に相当)と、過去に受信した更新ファイル(SW1(N-1))の署名のセキュリティ強度(「第2のセキュリティ強度」に相当)とを比較する。過去に受信した更新ファイルのセキュリティ強度は、署名情報保存部105に保存されている署名情報を読み出して用いる。
なお、ソフトウェア(SW1(N―1))とソフトウェア(SW1(N))との関係は、本実施形態の従来の課題で説明した通りである。
【0050】
図6は、署名情報保存部105に保存されている署名情報テーブルの例である。
署名情報テーブルは更新対象装置毎に設けられ、各署名情報テーブルにはSW識別情報、署名方式情報、及びセキュリティ強度が記録されている。
【0051】
SW識別情報は、受信した更新ファイルに含まれるソフトウェアを識別するための情報である。
図6においては、ソフトウェアの種類を示す情報としてSW1、同種のソフトウェア同士を区別する識別子として(N-1)、(N-2)が付与されている。Nは、例えば受信回数やタイムスタンプ等の時刻情報や、ソフトウェアのバージョンを示す情報である。また、ソフトウェアが複数種類ある場合、例えばSW1~SW4の4種類がある場合、SW1~SW4の全ての種類のソフトウェアを識別するための情報を記録するようにすればよい。
【0052】
署名方式情報は、ソフトウェアに付された署名の署名方式を示す情報である。
図6においては、署名方式を示す情報として、ECCやPQCが記録されているが、さらに詳細な情報を記録するようにしてもよい。例えば、PQCの詳細例として、2022年7月に米国国立標準技術研究所が選定した標準PQCであるCRYSTAL-Dilithium、FALCON、SPHINCS+、が挙げられる。その他、AES-128、AES-192、AES―256のような情報としてもよい。
【0053】
セキュリティ強度は、署名方式が有するセキュリティ強度である。セキュリティ強度は、署名方式のアルゴリズム及び署名に用いる鍵の長さに基づき定めている。
図6においては、高中低の3段階で示されているが、それ以上の段階で示してもよい。あるいは、段階ではなくビット単位を示す数値で示してもよい。
【0054】
なお、
図6においては、署名方式情報及びセキュリティ強度の両方を記録しているが、いずれか一方でもよい。署名方式情報のみを記録する場合は、使用可能性のある署名方式とセキュリティ強度との対応関係を示すテーブルを別途準備することにより、セキュリティ強度を求めることができる。
また、
図6においては、過去受信したソフトウェアの全てに対し署名情報を記録しているが、署名情報保存部105のサイズを小さくするために、直近に受信したソフトウェアのみの署名情報を記録してもよい。
【0055】
図5に戻り、署名情報保存部105は、署名情報テーブルを保存する。署名情報保存部105は、不揮発性又は揮発性の記録媒体を用いることができる。署名情報保存部105は、セキュアな領域に設けることが望ましい。
【0056】
ファイル利用処理実行部103は、「ファイルを利用するための処理」を行う。本実施形態においては、具体的には、更新対象装置に対し、受信部101で受信した更新ファイルに含まれるソフトウェア、及びソフトウェアのインストールを指示するインストール指示を送信する。
なお、更新対象装置が統合ECU20a、すなわち署名検証装置11と更新対象装置が同じ統合ECU20aで実現されている場合は、更新対象装置に対するソフトウェア及びインストール指示の送信は不要であるため、更新対象装置である統合ECU20aにソフトウェアのインストールを実行する。署名検証装置11と更新対象装置が同一の装置である場合の実施形態は、実施形態2で説明する。
ここで、「ファイルを利用するための処理」とは、ファイルを利用するために必要な処理であればよく、ファイルそのものを用いる処理の他、その前段階や後段階の処理であってもよい。
【0057】
ファイル利用処理実行部103は、セキュリティ強度比較部102での比較結果が、更新ファイル(SW1(N))に付された署名のセキュリティ強度(「第1のセキュリティ強度」に相当)が、更新ファイル(SW1(N-1))の署名のセキュリティ強度(「第2のセキュリティ強度」に相当)以上の場合、すなわち前者のセキュリティ強度が後者のセキュリティ強度より高い場合、又は前者のセキュリティ強度と後者のセキュリティ強度が同じ場合、更新対象装置に対し、ソフトウェア(SW1(N))及びソフトウェア(SW1(N))のインストール指示を送信する。すなわちソフトウェア(SW1(N))をインストールするための処理を実行する。
そして、セキュリティ強度比較部102は、更新ファイル(SW1(N))に付された署名の署名情報を署名情報保存部105に出力し、署名情報保存部105はこの署名情報を保存する。
【0058】
これに対し、ファイル利用処理実行部103は、セキュリティ強度比較部102での比較結果が、更新ファイル(SW1(N))に付された署名のセキュリティ強度(「第1のセキュリティ強度」に相当)が、更新ファイル(SW1(N-1))の署名のセキュリティ強度(「第2のセキュリティ強度」に相当)より低い場合、更新対象装置に対し、ソフトウェア(SW1(N))及びソフトウェア(SW1(N))のインストール指示を送信しない。すなわちソフトウェア(SW1(N))をインストールするための処理を実行しない。
また、セキュリティ強度比較部102は、更新ファイル(SW1(N))の署名情報を署名情報保存部105に出力しない。
【0059】
なお、本実施形態では、更新ファイル(SW1(N))に付された署名のセキュリティ強度と更新ファイル(SW1(N-1))の署名のセキュリティ強度が同じ場合は、ファイルを利用するための処理を実行したが、この場合ファイルを利用するための処理を実行しないようにしてもよい。
【0060】
図7は、署名検証装置11の動作の具体例である。
図7(a)は過去の処理を示している。
受信部101は、更新ファイル(SW1(N-1))及びPQCに対応した署名1を受信した。そして、署名1を検証鍵1で検証し、検証が成功した場合、ソフトウェア(SW1(N-1))をインストールした。
【0061】
図7(b)及び
図7(c)は現在の処理を示している。
受信部101は、更新ファイル(SW1(N-1))及びPQCに対応した署名1を受信する。
セキュリティ強度比較部102は、署名情報保存部105の署名情報テーブルからソフトウェア(SW1(N-1))の署名のセキュリティ強度を読み出し、更新ファイル(SW1(N))に付された署名1のセキュリティ強度と、更新ファイル(SW1(N-1))に付された署名1のセキュリティ強度とを比較する。
図7(b)の場合、更新ファイル(SW1(N))の署名1のセキュリティ強度は“高”であり、更新ファイル(SW1(N-1))の署名1のセキュリティ強度は“高”であるから、更新ファイル(SW1(N))の署名1のセキュリティ強度は更新ファイルSW1(N-1))の署名1のセキュリティ強度と同じ、すなわち、更新ファイル(SW1(N))の署名1のセキュリティ強度は更新ファイルSW1(N-1))の署名1のセキュリティ強度以上である。
そこで、ファイル利用処理実行部は、更新ファイル(SW1(N))に含まれるソフトウェア(SW1(N))をインストールするための処理を実行する。
【0062】
図7(c)において、受信部101は、更新ファイル(SW1(N))及びECCに対応した署名2を受信する。
セキュリティ強度比較部102は、署名情報保存部105の署名情報テーブルからソフトウェア(SW1(N-1))の署名のセキュリティ強度を読み出し、更新ファイル(SW1(N))に付された署名2のセキュリティ強度と、更新ファイル(SW1(N-1))に付された署名2のセキュリティ強度とを比較する。
図7(c)の場合、更新ファイル(SW1(N))の署名2のセキュリティ強度は“中”であり、更新ファイル(SW1(N-1))の署名1のセキュリティ強度は“高”であるから、更新ファイル(SW1(N))の署名2のセキュリティ強度は更新ファイルSW1(N-1))の署名1のセキュリティ強度よりも低い。
そこで、ファイル利用処理実行部は、更新ファイル(SW1(N))に含まれるソフトウェア(SW1(N))をインストールするための処理を実行しない。
【0063】
(3)署名検証装置11の動作
図8を用いて、署名検証装置11の動作を説明する。なお、
図8に示す動作は、署名検証装置11で実行される署名検証方法を示すだけでなく、署名検証装置11で実行可能な署名検証プログラムの処理手順を示すものでもある。そして、これらで示す処理は、
図8で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。後述の
図10、
図11、
図14においても同様である。
【0064】
署名検証装置11の受信部101は、ソフトウェアを記録した更新ファイル、及びソフトウェアから生成した署名1を外部装置30から受信する(S101)。
【0065】
受信部101は、署名1をセキュリティ強度比較部102に出力し(S102)、更新ファイルをファイル保存部104に保存する(S103)。
【0066】
セキュリティ強度比較部102は、受信部101から署名1を受信する(S104)。
次に、セキュリティ強度比較部102は、署名情報保存部105に対して読み出し要求を出力し、署名情報保存部105から、過去に受信した更新ファイルと共に受信した署名2を読み出す(S105)。
そして、セキュリティ強度比較部102は、署名1のセキュリティ強度(「第1のセキュリティ強度」に相当)と署名2のセキュリティ強度(「第2のセキュリティ強度」に相当)とを比較する(S106)。
なお、セキュリティ強度比較部102は、署名情報保存部105から署名2を読み出すことに代えて、署名2のセキュリティ強度(「第2のセキュリティ強度」に相当)を読み出すようにしてもよい。
【0067】
署名1のセキュリティ強度が署名2のセキュリティ強度以上の場合、セキュリティ強度比較部102は、ファイル利用処理実行部103に対し、ファイル利用処理の実行を指示する(S107)。
また、セキュリティ強度比較部102は、署名1の署名情報を署名情報保存部105に出力し、署名情報保存部105は、署名1の署名情報を保存する(S108)。
【0068】
ファイル利用処理実行部103は、ファイルを利用するための処理を実行する。本実施形態において、具体的には、ファイル保存部104から更新ファイルを読み出し(S109)、署名1の検証を行い(S110)、さらにバージョン検証又はロールバック検証を行う(S111)。バージョン検証とは、例えば更新後のソフトウェアのバージョンが更新前のソフトウェアのバージョンよりも新しいことを確認することをいう。また、ロールバック検証は、ソフトウェアの不具合等により以前のバージョンのソフトウェアに戻すことを確認することをいい、例えば更新後のソフトウェアのバージョンが更新前のソフトウェアのバージョンよりも古いことを確認することをいう。なお、バージョン検証又はロールバック検証は任意である。
そして、署名1の検証及びバージョン検証等が成功すれば、更新対象装置に対し、更新ファイル及びインストール指示を送信する(S112)。
【0069】
署名1のセキュリティ強度が署名2のセキュリティ強度よりも低い場合、セキュリティ強度比較部102は、一連の処理を終了する(S113)。その結果、ファイル利用処理実行部103は、ファイルを利用するための処理を実行しない。
【0070】
(4)小括
以上、本実施形態の署名検証装置11によれば、受信した署名のセキュリティ強度と過去に受信した署名のセキュリティ強度とを比較してファイルを利用するための処理の実行の可否を決定するので、鍵が危殆化した場合はもちろん、アルゴリズムが危殆化した場合でも、不正である可能性のあるファイルの利用を制限することができる。
また、本実施形態の署名検証装置11によれば、更新対象装置であるECU20のソフトウェアの更新の可否を決定するので、不正なソフトウェアの更新を防ぐことができる。例えば、脆弱性のあるソフトウェアのインストールやダウングレード攻撃を未然に防ぐことができる。
【0071】
(5)変形例1
本実施形態では、ファイル毎に署名が付されており、ファイル毎に過去に受信したファイルとセキュリティ強度の比較を行っている。もっとも、ファイル同士が包含関係、すなわちあるファイルが別のファイルの中に含まれているという関係を有する場合もある。例えば、
図9のように、1つのパッケージファイルに複数のソフトウェアの更新ファイルや諸元データが含まれており、各更新ファイルには各更新ファイル1~3から生成した署名(署名1,署名2,署名3)、諸元データには諸元データから生成した署名(署名4)、パッケージファイルにはパッケージファイルから生成した署名(署名5)が付されているとする。
【0072】
この場合、セキュリティ強度比較部102は、これらの署名のセキュリティ強度と過去に受信した対応する更新ファイル又はデータに付された署名のセキュリティ強度とをそれぞれ比較する。そして、ファイル利用処理実行部103は、これらのうち少なくとも1つの署名のセキュリティ強度が、過去に受信した対応するファイル又はデータに付された署名のセキュリティ強度以上の場合、パッケージファイルを利用するための処理を実行する。
【0073】
例えば、
図9の場合、ファイル利用処理実行部103は、各更新ファイル1~3から生成した署名(署名1,署名2,署名3)及び諸元データから生成した署名(署名4)(以上、「個別署名」に相当)、並びにパッケージファイルから生成した署名(署名5)(「全体署名」に相当)のそれぞれのセキュリティ強度のうち少なくとも1つが、過去に受信したパッケージファイル並びにそれに含まれる複数の更新ファイル及び諸元データに付された対応する署名のセキュリティ強度以上の場合、全ての更新ファイルをインストールするための処理を実行する。
【0074】
攻撃者が不正にソフトウェア更新を実施しようとする場合、署名1~署名5の全ての署名を偽造する必要があるが、1つでも偽造が困難な署名であれば全体として偽造が困難な署名のセキュリティレベルで保護されているとみなすことができる。本変形例によれば、全ての署名につき検証する必要がなく、例えば、最初に検証した署名が条件を満たせばインストール処理を開始することができ、ハードウェアの負担を軽くできると共に、インストール処理を速やかに開始することができる。
【0075】
本変形例は、実施形態2~実施形態4にも適用できる。
【0076】
(6)変形例2
ソフトウェアにバージョンが存在する場合、現在受信したファイルに含まれるソフトウェアのバージョンは、過去に受信したファイルに含まれるソフトウェアのバージョンよりも高いことが通常である。すなわち、ソフトウェアはバージョンアップを繰り返すことにより、機能及び耐攻撃性がより高くなる。例えば、
図7において、更新ファイル(SW1(N))に含まれるソフトウェア(SW1(N))のバージョンは、更新ファイル(SW1(N-1))に含まれるソフトウェア(SW1(N-1))に含まれるソフトウェアのバージョンよりも高い。
【0077】
しかし、最新のバージョンのソフトウェアをダウンロードしてインストールした場合、ハードウェアの互換性やハードウェアの性能が原因で動作に不具合が生じることがある。また、最新のバージョンのソフトウェア自体にバグ等の問題が生じていることもある。このような場合、以前のバージョンに戻すために、低いバージョンのソフトウェアをダウンロードする必要がある。
【0078】
このような場合においても、本実施形態と同様、ファイル利用処理実行部103は、セキュリティ強度比較部102での比較結果が、更新ファイル(SW1(N))に付された署名のセキュリティ強度が、更新ファイル(SW1(N-1))に付された署名のセキュリティ強度以上の場合、ソフトウェアをインストールするための処理を実行する。また、ファイル利用処理実行部103は、セキュリティ強度比較部102での比較結果が、更新ファイル(SW1(N))に付された署名のセキュリティ強度が、更新ファイル(SW1(N-1))に付された署名のセキュリティ強度より低い場合、ソフトウェアをインストールするための処理を実行しない。
【0079】
つまり、ソフトウェアをダウングレードしてインストールする場合、たとえ過去に同じ低いバージョンのソフトウェアをダウンロードした際に付されていた署名と同じ署名が今回付されていたとしても、その間に高いバージョンのソフトウェアをインストールをした場合、当該高いバージョンのソフトウェアに付されていた署名のセキュリティ強度が低いバージョンのソフトウェアに付されている署名のセキュリティ強度よりも高かったのであれば、今回ダウンロードした低いバージョンのソフトウェアには、高いバージョンのソフトウェアに付されていた署名のセキュリティ強度と同等以上の署名が付されていなければならない。
【0080】
例えば、今回ダウンロードした低いバージョンのソフトウェアに付された署名のセキュリティ強度が、前回ダウンロードした高いバージョンのソフトウェアに付された署名のセキュリティ強度よりも低い場合、ファイル利用処理実行部103はインストールするための処理を中断するとともに、外部装置30に対し、高いバージョンのソフトウェアに付された署名のセキュリティ強度と同等以上のセキュリティ高度を有する署名を付して再送するようリクエストを送信するようにすればよい。
【0081】
本変形例によれば、ソフトウェアをダウングレードする場合においても署名のセキュリティ強度を用いてファイルを利用するための処理の実行の可否を決定するので、以前に同じバージョンのソフトウェアをダウンロードしていた場合であっても、それ以降に鍵が危殆化した場合はもちろん、アルゴリズムが危殆化した場合でも、不正である可能性のあるファイルの利用を制限することができる。
【0082】
本変形例は、実施形態2~実施形態4にも適用できる。
【0083】
3.実施形態2
(1)署名検証装置12の構成
実施形態1の署名検証装置11は、署名検証装置11と更新対象装置とが別の装置に設けられていた。本実施形態の署名検証装置12は、更新対象装置と同じ装置に設けられている場合の例である。例えば、
図3において、署名検証装置12が個別ECU20eに設けられ、更新対象装置も個別ECU20eに設けられた場合である。実施形態1で説明した通り、署名検証装置11が統合ECU20aに設けられ、更新対象装置も統合ECU20aに設けられた場合も、本実施形態に相当する。
【0084】
本実施形態の署名検証装置12は、ファイル利用処理実行部103の動作の一部を除いて、
図5の署名検証装置11の構成と同じであるので、
図5及びこれに対応する実施形態1の記載を引用する。その他、少なくとも
図6(いずれか1つの署名情報テーブル)及び
図7も本実施形態を示す図でもあるので、これに対応する実施形態1の記載を引用する。以下、実施形態1と相違する部分のみ説明する。
【0085】
本実施形態の署名検証装置12は、当該署名検証装置12を実現しているECU20に対して、「情報」である「ソフトウェア」の更新を制御する更新制御装置である。このような更新制御装置は、有線で接続される診断装置から提供される更新プログラムの配信を受け、更新制御機能を有する更新対象装置自身で実現する例があり、有線リプログラミングとも呼ばれる。
【0086】
ファイル利用処理実行部103は、実施形態1と同様に、「ファイルを利用するための処理」を行う。本実施形態においては、具体的には、更新対象装置であり、かつ署名検証装置12でもあるECU20eに対し、ソフトウェアのインストールを実行する。
【0087】
(2)署名検証装置12の動作
図10を用いて、署名検証装置12の動作を説明する。以下、実施形態1の署名検証装置11の動作を説明する
図8と相違する部分のみ説明し、同じ部分は
図8及びこれに対応する実施形態1の記載を引用する。
ファイル利用処理実行部103は、ファイルを利用するための処理を実行する。本実施形態において、具体的には、ファイル保存部104から更新ファイルを読み出し(S109)、署名1の検証を行い(S110)、バージョン検証又はロールバック検証を行う(S111)。
そして、署名1の検証及びバージョン検証等が成功すれば、更新対象装置でありかつ署名検証装置12でもあるECU20eに対し、ソフトウェアのインストールを実行する(S212)。
【0088】
(3)小括
以上、本実施形態の署名検証装置12によれば、受信した署名のセキュリティ強度と過去に受信した署名のセキュリティ強度とを比較してファイルを利用するための処理の実行の可否を決定するので、鍵が危殆化した場合はもちろん、アルゴリズムが危殆化した場合でも、不正である可能性のあるファイルの利用を制限することができる。
また、本実施形態の署名検証装置12によれば、更新対象装置である自装置のソフトウェアの更新の可否を決定するので、不正なソフトウェアの更新を防ぐことができる。例えば、脆弱性のあるソフトウェアのインストールやダウングレード攻撃を未然に防ぐことができる。
【0089】
4.実施形態3
(1)署名検証装置13の構成
実施形態1及び実施形態2の署名検証装置11及び署名検証装置12は、接続された複数のECU20のうち、「情報」である「ソフトウェア」の更新対象である更新対象装置に対してソフトウェアの更新を制御する更新制御装置であった。
本実施形態の署名検証装置13は、「情報」である「データ」の利用を制御するデータ利用制御装置である。すなわち、ファイルに含まれる情報がソフトウェアではなくデータである点で実施形態1及び実施形態2とは異なる。
ここで、「データ」には、動画像、静止画像、地図、音声等を含み、データの形式は任意である。
【0090】
本実施形態の署名検証装置13は、受信部101及びファイル利用処理実行部103の動作の一部を除いて、
図5の署名検証装置11の構成と同じであるので、
図5及びこれに対応する実施形態1の記載を引用する。その他、少なくとも
図6及び
図7も本実施形態を示す図でもあるので、これに対応する実施形態1の記載を引用する。ただし、ソフトウェアは、適宜データと読み替える。
【0091】
受信部101は、例えば配信装置である外部装置30からデータファイル(「ファイル」に相当)及びデータファイルに付された署名を受信する。受信したデータファイルは、ファイル保存部104に出力される。
【0092】
ファイル利用処理実行部103は、実施形態1と同様に、「ファイルを利用するための処理」を行う。本実施形態においては、具体的には、データを復号若しくは保存し、又はデータのダウンロードを実行する。
ファイルを利用するための処理がデータの復号の場合、ファイル利用処理実行部103は、ファイル保存部104からデータファイルを読み出し、符号化されたデータを復号する。
ファイルを利用するための処理がデータの保存の場合、ファイル利用処理実行部103は、ファイル保存部104からデータファイルを読み出し、所定の記録装置にデータファイルを保存する。所定の記録装置は、署名検証装置13が搭載されたECU20に設けられていても、その他のECU20に設けられていてもよい。前者の場合は、実施形態2の処理に相当し、後者の場合は実施形態1の処理に相当する。
ファイルを利用するための処理がデータのダウンロードの場合、ファイル利用処理実行部103は、図示しない送信部から外部装置30に対してデータの送信をリクエストし、受信部101はデータファイルを受信する。
【0093】
(2)署名検証装置13の動作
図11を用いて、署名検証装置13の動作を説明する。以下、実施形態1の署名検証装置11の動作を説明する
図8と相違する部分のみ説明し、同じ部分は
図8及びこれに対応する実施形態1の記載を引用する。
【0094】
署名検証装置13の受信部101は、データを記録したデータファイル、及びデータから生成した署名1を外部装置30から受信する(S301)。
【0095】
受信部101は、署名1をセキュリティ強度比較部102に出力し(S102)、データファイルをファイル保存部104に保存する(S303)。
【0096】
ファイル利用処理実行部103は、ファイルを利用するための処理を実行する。本実施形態において、具体的には、ファイル保存部104からデータファイルを読み出し(S309)、署名1の検証を行い(S110)、バージョン検証又はロールバック検証を行う(S111)。
そして、署名1の検証及びバージョン検証等が成功すれば、ファイル利用処理実行部103は、データファイルを復号して表示等を行う(S312)。
【0097】
(3)小括
以上、本実施形態の署名検証装置13によれば、外部装置30からデータファイルをダウンロードする場合においても、受信した署名のセキュリティ強度と過去に受信した署名のセキュリティ強度とを比較してデータファイルを利用するための処理の実行の可否を決定するので、鍵が危殆化した場合はもちろん、アルゴリズムが危殆化した場合でも、不正である可能性のあるデータファイルの利用を制限することができる。
【0098】
5.実施形態4
(1)暗号処理装置14の構成
実施形態1~実施形態3の署名検証装置11、署名検証装置12、及び署名検証装置13は、ファイルに付されている署名を検証する装置であった。
本実施形態の暗号処理装置14は、外部装置30から暗号化された情報を記録したファイルを受信し、ファイルに対する処理を行う暗号処理装置である。
【0099】
図12を用いて、本実施形態の暗号処理装置14の構成例を説明する。暗号処理装置14は、受信部401、セキュリティ強度比較部402、ファイル利用処理実行部403、ファイル保存部404、及び暗号情報保存部405を有する。本実施形態では、暗号処理装置14は、
図3の統合ECU20aに設けられているとする。
【0100】
受信部401は、例えば配信装置である外部装置30から暗号化された情報を記録したファイル(以下、暗号化ファイルという。)を受信する。暗号化された情報は、例えば暗号化されたソフトウェアや暗号化されたデータである。
【0101】
暗号化ファイルには、暗号化に用いた鍵、暗号の方式を示す情報を含めてもよい。また、セキュリティ強度を示す情報を含めてもよい。これらの情報は、暗号化ファイルのヘッダに格納してもよい。
【0102】
セキュリティ強度比較部402は、今回受信部401で受信した暗号化ファイルで用いた暗号のセキュリティ強度である第1のセキュリティ強度と、過去に受信部401で受信した暗号化ファイルで用いた暗号のセキュリティ強度である第2のセキュリティ強度とを比較する。過去に受信した暗号化ファイルで用いた暗号のセキュリティ強度は、暗号情報保存部405に保存されている暗号情報を読み出して用いる。
【0103】
図13は、暗号情報保存部405に保存されている署名情報テーブルの例である。
暗号情報テーブルは、実施形態1と異なり少なくとも1つ設けられていればよい。暗号情報テーブルにはSW/データ識別情報、暗号方式情報、及びセキュリティ強度が記録されている。
【0104】
SW/データ識別情報は、受信した暗号化ファイルに含まれるソフトウェア又はデータを識別するための情報である。
図13においては、ソフトウェアの種類を示す情報としてSW1、同種のソフトウェア同士を区別する識別子として(N-1)、(N-2)が付与されている。その他は、実施形態の
図6と同様である。
【0105】
暗号方式情報は、暗号化ファイルの暗号方式を示す情報である。
図13においては、暗号方式を示す情報として、ECCやPQCが記録されているが、さらに詳細な情報を記録するようにしてもよい。
【0106】
セキュリティ強度は、暗号方式が有するセキュリティ強度である。セキュリティ強度は、暗号方式のアルゴリズム及び暗号に用いる鍵の長さに基づき定めている。
図13においては、高中低の3段階で示されているが、それ以上の段階で示してもよい。あるいは、段階ではなくビット単位を示す数値で示してもよい。
【0107】
図12に戻り、暗号情報保存部405は、暗号情報テーブルを保存する。暗号情報保存部405は、不揮発性又は揮発性の記録媒体を用いることができる。暗号情報保存部405は、セキュアな領域に設けることが望ましい。
【0108】
ファイル利用処理実行部403は、「ファイルを利用するための処理」を行う。本実施形態においては、具体的には、暗号化ファイルに記録されている情報を復号若しくは保存し、又は情報のダウンロードを実行する処理である。また、情報がソフトウェアの場合、更新対象装置に対し暗号化ファイルを送信し、又はソフトウェアのインストールを実行する処理である。
ファイル利用処理実行部403の動作は実施形態1と同じであるので、実施形態1の記載を引用する。この際、署名を暗号と、検証鍵を復号鍵と、検証を復号と、それぞれ読み替える。
【0109】
(2)小括
以上、本実施形態の暗号処理装置14によれば、受信したファイルの暗号化に用いた暗号のセキュリティ強度と過去に受信したファイルの暗号化に用いた暗号のセキュリティ強度とを比較してファイルを利用するための処理の実行の可否を決定するので、鍵が危殆化した場合はもちろん、アルゴリズムが危殆化した場合でも、不正である可能性のある暗号化ファイルの利用を制限することができる。
【0110】
6.総括
以上、本発明の各実施形態における署名検証装置及び暗号処理装置等の特徴について説明した。
【0111】
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【0112】
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0113】
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
【0114】
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
【0115】
また、本発明の装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
【0116】
また各装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
【0117】
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【0118】
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【0119】
本開示は、主として自動車に搭載される車載用電子制御装置用の署名検証装置及び暗号処理装置として説明したが、自動二輪車、船舶、鉄道、航空機等、移動する移動体全般に適用することが可能である。また、移動体に限らず、マイクロコンピュータを包含する製品全般に適用可能である。
【符号の説明】
【0120】
11,12、13 署名検証装置、14 暗号処理装置、101 受信部、102 セキュリティ強度比較部、103 ファイル利用処理実行部、104 ファイル保存部、105 署名情報保存部、20 電子制御装置(ECU)、30 外部装置