JP2020144531A - 車両用制御装置、車両用制御装置の起動方法及び記録媒体 - Google Patents

車両用制御装置、車両用制御装置の起動方法及び記録媒体 Download PDF

Info

Publication number
JP2020144531A
JP2020144531A JP2019039703A JP2019039703A JP2020144531A JP 2020144531 A JP2020144531 A JP 2020144531A JP 2019039703 A JP2019039703 A JP 2019039703A JP 2019039703 A JP2019039703 A JP 2019039703A JP 2020144531 A JP2020144531 A JP 2020144531A
Authority
JP
Japan
Prior art keywords
program
important area
verification
control device
key
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.)
Granted
Application number
JP2019039703A
Other languages
English (en)
Other versions
JP7092071B2 (ja
Inventor
後藤 慶太
Keita Goto
慶太 後藤
雄介 佐藤
Yusuke Sato
雄介 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2019039703A priority Critical patent/JP7092071B2/ja
Priority to US16/740,537 priority patent/US11620385B2/en
Priority to EP20151799.2A priority patent/EP3706387B1/en
Priority to EP21198230.1A priority patent/EP3952244A1/en
Publication of JP2020144531A publication Critical patent/JP2020144531A/ja
Application granted granted Critical
Publication of JP7092071B2 publication Critical patent/JP7092071B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units, or advanced driver assistance systems for ensuring comfort, stability and safety or drive control systems for propelling or retarding the vehicle
    • B60W30/18Propelling the vehicle
    • B60W30/192Mitigating problems related to power-up or power-down of the driveline, e.g. start-up of a cold engine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Abstract

【課題】起動時の検証を迅速に実行できる車両用制御装置、車両用制御装置の起動方法及び記録媒体を提供する。【解決手段】車両用制御装置100は、起動プログラムであるBootLoader30及びFlashBootLoader32を含む重要領域内のプログラムの完全性を検証するための完全性検証プログラム12、鍵14、BootLoaderMAC18及びFlashBootLoaderMAC20と、起動プログラムにより重要領域内のプログラムが起動した状態で、非重要領域内の制御プログラム40の完全性を検証するための鍵16及び第1ソフトMAC50A等を格納したフラッシュROM50と、を含む。【選択図】図1

Description

本発明は、車両用制御装置、車両用制御装置の起動方法及び記録媒体に関する。
車両用制御装置であるECU(Electronic Control Unit)はプログラムに基づいて動作する半導体装置である。従って、ECUにインストールされているプログラムが正常でないと、正常な動作はおぼつかない。
ECUのプログラムのインストールは車両の製造者によって行われ、当該プログラムのアップデート等の保守は車両の製造者又は販売店によって行われる。しかしながら、当該プログラムのアップデート時に、錯誤により非正規のプログラムがインストールされるおそれが皆無とは言えない。また、近年のように車両がネットワークと接続可能に構成されたことで、外部からの悪意ある攻撃により、ECUに不正なプログラムがインストールされる又はECUのプログラムが改ざんされる等の問題が顕在化してきた。
特許文献1には、ECUの起動時にプログラムの完全性を検証し、当該検証に成功した場合にECUの起動(ブート)を許可するセキュアブート方法の発明が開示されている。
特開2015−022521号公報
しかしながら、特許文献1に開示されているセキュアブート方法は、ECUの全プログラムの検証が成功した場合にECUの起動を許可するため、ECUの起動に時間がかかるという問題があった。
本発明は、上記事実を考慮し、起動時の検証を迅速に実行できる車両用制御装置、車両用制御装置の起動方法及び記録媒体を提供することを目的とする。
上記課題を解決するために、請求項1に記載の車両用制御装置は、起動プログラムを含む重要領域内のプログラムの完全性を検証する第1検証部と、前記起動プログラムにより前記重要領域内のプログラムが起動した状態で、非重要領域内のプログラムの完全性を検証する第2検証部と、を含んでいる。
請求項1に記載の車両用制御装置によれば、車両用制御装置の起動プログラムを含む重要領域内のプログラムの完全性を非重要領域に対して優先的に検証する。
請求項2に記載の車両用制御装置は、請求項1に記載の車両用制御装置において、前記第1検証部は完全性検証プログラム、重要領域用鍵及び前記重要領域内のプログラムの検証用署名を、前記第2検証部は非重要領域用鍵及び非重要領域内のプログラムの検証用署名を、各々備える。
請求項2に記載の車両用制御装置によれば、第1検証部は重要領域内のプログラムの検証に必要な構成を、第2検証部は非重要領域内のプログラムの検証に必要な構成を各々備えることにより、重要領域内のプログラムの検証とは別に非重要領域内のプログラムの検証を実行できる。
請求項3に記載の車両用制御装置は請求項2に記載の車両用制御装置において、前記第1検証部は、前記完全性検証プログラム及び前記重要領域用鍵を用いて生成した前記重要領域内のプログラムの署名が前記重要領域内の検証用署名と一致する場合に前記重要領域内のプログラムが完全性を有すると判定する。
請求項3に記載の車両用制御装置によれば、重要領域用鍵により生成した重要領域内のプログラムの署名が検証用署名と一致した場合に当該プログラムが完全性を有すると判定できる。
請求項4に記載の車両用制御装置は、請求項3に記載の車両用制御装置において、前記第2検証部は、前記第1検証部が前記重要領域内のプログラムが完全性を有すると判定した後、前記非重要領域用鍵を用いて生成した前記非重要領域内のプログラムの署名が前記非重要領域内の検証用署名と一致する場合に前記非重要領域内のプログラムが完全性を有すると判定する。
請求項4に記載の車両用制御装置によれば、非重要領域用鍵により生成した非重要領域内のプログラムの署名が検証用署名と一致した場合に当該プログラムが完全性を有すると判定できる。
請求項5に記載の車両用制御装置は、請求項2〜4のいずれか1項に記載の車両用制御装置において、前記重要領域用鍵は、車両用制御装置が搭載される車両毎に異なる鍵であり、前記非重要領域用鍵は、同型式の車両用制御装置で同一の鍵である。
請求項5に記載の車両用制御装置によれば、重要領域用鍵を車両毎に異なる鍵にすることにより、第三者による重要領域用鍵の悪用を防止する。
上記課題を解決するために、請求項6に記載の車両用制御装置の起動方法は、起動プログラムを含む重要領域内のプログラムの完全性を検証する第1検証工程と、前記起動プログラムにより前記重要領域内のプログラムが起動した状態で、非重要領域内のプログラムの完全性を検証する第2検証工程と、を含んでいる。
請求項6に記載の車両用制御装置の起動方法によれば、車両用制御装置の起動プログラムを含む重要領域内のプログラムの完全性を非重要領域に対して優先的に検証する。
上記課題を解決するために、請求項7に記載の記録媒体は、起動プログラムを含む重要領域内のプログラムの完全性を検証するための完全性検証プログラム、重要領域用鍵及び前記重要領域内のプログラムの検証用署名、並びに非重要領域内のプログラムの完全性を検証するための非重要領域用鍵及び非重要領域内のプログラムの検証用署名を記録する。
請求項7に記載の記録媒体によれば、重要領域内及び非重要領域内の各々のプログラムの検証に必要な構成を必要に応じて持ち運べるという効果を奏する。
請求項1に記載の車両用制御装置によれば、重要領域内のプログラムの完全性を非重要領域に対して優先的に検証することにより、起動時の検証を迅速に実行できるという効果を奏する。
請求項2に記載の車両用制御装置によれば、重要領域内のプログラムの検証とは別に非重要領域内のプログラムの検証を実行できるようにすることにより、起動時の検証を迅速に実行できるという効果を奏する。
請求項3に記載の車両用制御装置によれば、重要領域用鍵により生成した重要領域内のプログラムの署名が検証用署名と一致した場合、当該プログラムの改ざんはないことを検証できるという効果を奏する。
請求項4に記載の車両用制御装置によれば、非重要領域用鍵により生成した非重要領域内のプログラムの署名が検証用署名と一致した場合、当該プログラムの改ざんはないことを検証できるという効果を奏する。
請求項5に記載の車両用制御装置によれば、重要領域用鍵を車両毎に異なる鍵にすることにより、セキュリティを担保できるという効果を奏する。
請求項6に記載の車両用制御装置の起動方法によれば、重要領域内のプログラムの完全性を非重要領域に対して優先的に検証することにより、起動時の検証を迅速に実行できるという効果を奏する。
請求項7に記載の記録媒体によれば、車両の製造者が重要領域内及び非重要領域内の各々のプログラムの検証に必要な構成を車両にインストールできるという効果を奏する。
本発明の実施の形態に係る車両用制御装置の起動時の状態を示すブロック図である。 本発明の実施の形態において、検証領域の区分の一例を示した表である。 検証に用いる鍵の保管及び検証ルートの一例を示したブロック図である。 本発明の実施の形態に係る車両用制御装置の重要領域の完全性の検証の一例を示したフローチャートである。 本発明の実施の形態に係る車両用制御装置の非重要領域の完全性の検証の一例を示したフローチャートである。
以下、図1〜図5を用いて、本実施の形態に係る車両用制御装置100について説明する。図1は、本実施の形態に係る車両用制御装置100の起動時の状態を示すブロック図である。
図1に示した車両用制御装置100は、一般にECUと呼称される半導体装置であり、車両に搭載されている機器を制御する第1ソフト40A、第2ソフト40B等の制御ソフトウェア40がインストールされている。
車両用制御装置100を起動するには、BootLoader30(以下、「BL30」と略記)及びFlashBootLoader32(以下、「FBL32」と略記)の各々を用いる。BL30は、車両用制御装置100のROM(Read only memory)等の記憶装置に格納された車両用制御装置100のソフトウェアを、FBL32は車両用制御装置100のフラッシュメモリに格納された車両用制御装置100のソフトウェアを、車両用制御装置100の起動時に各々車両用制御装置100の主記憶に呼び出すプログラムである。従って、BL30及びFBL32の各々は、本実施の形態に係る車両用制御装置100において、起動時に最初に実行されるプログラムである。
Root of Trust10(以下、「RoT10」と略記)には、完全性検証プログラム12、BL30とFBL32との検証で用いる鍵14、制御ソフトウェア40の検証で用いる鍵16、BootLoaderMAC18(以下、「BLMAC18」と略記)及びFlashBootLoadcrMAC20(以下、「FBLMAC20」と略記)が格納される。BLMAC18はBL30を、FBLMAC20はFBL32を、各々鍵14で認証する際に用いられるMAC(メッセージ認証コード)である。鍵14、16は、公開鍵でも共通鍵でもよいが、公開鍵の場合、後述するようにMACではなくハッシュ値を用いて検証する。また、共通鍵を用いた場合の方が、公開鍵を用いた場合よりも、若干ながら処理が高速になる。
完全性検証プログラム12、鍵14、16、BLMAC18及びFBLMAC20を格納したRoT10は、セキュアハードドライブにて保護され、車両の出荷後は、変更不能に構成されている。
本実施の形態では、BL30及びFBL32の各々が格納された領域を最も重要な領域とし、車両用制御装置100の起動又はリセット時に、制御ソフトウェア40の起動前に完全性検証プログラム12内でBL30及びFBL32の完全性を検証する。
本実施の形態において、鍵14、16が共通鍵の場合のBL30の完全性の検証の手順は、以下の通りである。
(1)鍵14によりBL30のMACを生成する。
(2)生成したMACをRoT10内のBLMAC18と比較する。
(3)比較した結果が一致した場合、BL30は完全性を有すると判定する。
BL30が完全性を有する場合、FBL32の完全性を以下の手順で検証する。
(1)鍵14によりFBL32のMACを生成する。
(2)生成したMACをRoT10内のFBLMAC20と比較する。
(3)比較した結果が一致した場合、FBL32は完全性を有すると判定する。
BL30及びFBL32が完全性を有する場合、BL30を起動し、BL30内で制御ソフトウェア40の完全性を以下の手順で検証する。
(1)鍵14又は鍵16により第1ソフト40AのMACを生成する。
(2)生成したMACをフラッシュROM50内の第1ソフトMAC50Aと比較する。
(3)比較した結果が一致した場合、第1ソフト40Aは完全性を有すると判定し、第1ソフト40Aを実行する。
(4)以下、上記(1)〜(3)と同様に鍵16を用いて、第2ソフト40B以降の各々の制御ソフトウェア40のMACを生成し、生成したMACをフラッシュROM50内の制御ソフトウェア40の各々のMACと比較して制御ソフトウェア40の各々の完全性を検証し、完全性を有する制御ソフトウェア40を順次実行する。
図2は、検証領域の区分の一例を示した表である。図2に示したように、本実施の形態に係る車両用制御装置100は、検証領域を重要領域と非重要領域とに区分している。重要領域は車両が走行中は検証実施が不可能な領域であり、本実施の形態では、上述のBL30及びFBL32がインストールされた領域等が該当する。特にBL30及びFBL32がインストールされた領域は、最初に検証されるべき領域であるから、ECUである車両用制御装置100の起動前に検証することを要する。
また、車両のエンジン、ブレーキ、操舵機構及びトランスミッション等の車両の走行に直接係る構成の制御ソフトウェア40がインストールされた領域も、重要領域に含めてもよいが、重要領域を多くすると、起動前の検証に時間を要する。
BL30及びFBL32がインストールされた領域は、セキュリティ上でも非常に重要な領域なので、検証に用いる鍵14は、車両毎に専用のものが用意される。また、当該領域が改ざんされた場合は、車両用制御装置100の起動を行わない。
非重要領域は、車両が走行中でも検証実施が可能な領域であり、本実施の形態では、上述の制御ソフトウェア40のうち、車両の走行及び安全に直接関係しない空調、音響機器及びナビゲーションシステム等のプログラムがインストールされた領域が該当する。
非重要領域は、重要領域ほど重大なセキュリティが求められないので、検証に用いる鍵16は、同一形式の全ての車両用制御装置100で共通である。また、当該領域が改ざんされた場合は、問題のあるソフトウェアを実行しない等のフェールセーフが行われる。
非重要領域は、車両用制御装置100の起動前でも検証は可能だが、本実施の形態では起動前は重要領域のみ検証を行って車両が走行可能な状態へ逸早く移行させている。重要領域の検証が完了しても、非重要領域の検証は完了していないが、車両は走行可能な状態なので、実用上は車両用制御装置100の起動時の検証が迅速かつ円滑に実行されることになる。
図3は、検証に用いる鍵14、16の保管及び検証ルートの一例を示したブロック図である。図3に示したように、セキュア領域であるRoT10では、BootプログラムであるBL30及びFBL32が上述のように完全性検証プログラム12内で完全性を検証された後、図3の(1)に示したように、重要領域用の鍵14を取り出して重要領域42内の実行プログラムAの完全性の検証を実施する。
そして、図3の(2)に示したように、(1)での検証の結果から実行プログラムAの署名(MAC又はハッシュ値)を生成し、図3の(3)で、(2)で生成した署名と実行プログラムAの作成時に計算した実行プログラムA内の署名とを比較し、両者が一致した場合、実行プログラムAは完全性を有すると判定する。
非重要領域60では、図3の(4)に示したように、非重要領域60用の鍵16を取り出して非重要領域60内の実行プログラムBの完全性の検証を実施する。
そして、図3の(5)に示したように、(4)での検証の結果から実行プログラムBの署名を生成し、図3の(6)で、(5)で作成した署名と実行プログラムBの作成時に計算した実行プログラムB内の署名とを比較し、両者が一致した場合、実行プログラムBは完全性を有すると判定する。
完全性の検証で用いる鍵14、16は、前述のように、共通鍵方式でも公開鍵方式でもよい。例えば、共通鍵方式は、RoT10内の鍵14と完全性検証プログラム12とを利用して、例えば、重要領域42内のソフトウェアの署名であるMACを生成する。そして、生成したMACと検証対象であるソフトウェア内のMACとを比較し、両者が一致した場合、検証対象のソフトウェアが完全性を有すると判定して、当該ソフトウェアを起動する。
プログラムの署名の暗号化を秘密鍵で行い、暗号化された署名の復号化を公開鍵で行う公開鍵方式では、以下のようにソフトウェアの完全性を検証する。例えば、RoT10内の完全性検証プログラム12又はハッシュ値演算用プログラム等を用いて、重要領域42又は非重要領域内のソフトウェアの署名であるハッシュ値を生成し、公開鍵である鍵14を用いて当該ソフトウェアの暗号化された署名を復号化してハッシュ値を得る。そして、生成したハッシュ値と復号化したハッシュ値とを比較し、両者が一致した場合、検証対象のソフトウェアが完全性を有すると判定して、当該ソフトウェアを起動する。
図4は、本実施の形態に係る車両用制御装置100の重要領域42の完全性の検証の一例を示したフローチャートである。図4に示した処理は、車両用制御装置100の起動又はリセット時に開始される。
ステップ400では、重要領域42のプログラム改ざんの検知に係るプログラムを起動する。当該プログラムは、例えば完全性検証プログラム12である。
ステップ402では、重要領域42の検証を開始し、ステップ404で重要領域42の検証用の鍵14を取り出す。鍵14は、前述のように、車両毎に個別に設けられた専用鍵である。
ステップ406では、鍵14を用いて重要領域42のソフトウェア(プログラム)の完全性を上述のように検証し、当該ソフトウェアの改ざんの有無をチェックする。
ステップ408ではステップ406でのチェック結果の妥当性を判定する。ステップ408の判定が問題ない(妥当な)場合は、ステップ410で車両のイグニッションスイッチのオンを許可する。そして、ステップ412でEUCである車両用制御装置100の起動を行って、手順を非重要領域の完全性の検証に移行する。
ステップ408の判定が問題ありの場合は、ステップ414でステップ408での問題ありの判定回数(失敗回数)が規定値以下か否かを判定する。規定値は、車両用制御装置100の仕様等によるが、一例として2〜3回である。
ステップ414で失敗回数が規定値以下と判定した場合は、ステップ416で車両用制御装置100の起動を停止する。そして、ステップ418で再度の改ざんチェックを行う決定をして、手順をステップ402に移行する。
ステップ414で失敗回数が規定値を超えた場合は、ステップ420で車両用制御装置100の起動を停止して処理を終了する。
図5は、本実施の形態に係る車両用制御装置100の非重要領域60の完全性の検証の一例を示したフローチャートである。ステップ500では図4のステップ412の手順で車両用制御装置100が起動し、ステップ502では車両用制御装置100が動作を開始し、車両が走行可能な状態になる。
ステップ504では、車両用制御装置100の動作中のバックグラウンドで非重要領域60の完全性の検証を開始する。
ステップ506で非重要領域60の検証用の鍵16を取り出す。鍵16は、前述のように、同型式の車両用制御装置100に共通の鍵である。
ステップ508では、鍵16を用いて非重要領域60のソフトウェア(プログラム)の完全性を上述のように検証し、当該ソフトウェアの改ざんの有無をチェックする。
ステップ510ではステップ508でのチェック結果の妥当性を判定する。ステップ508の判定が問題ない(妥当な)場合は、ステップ512で車両用制御装置100の動作を継続して、車両用制御装置100のソフトウェアの完全性の検証処理を終了する。
ステップ510での判定が問題ありの場合は、ステップ514でステップ510での問題ありの判定回数(失敗回数)が規定値以下か否かを判定する。規定値は、車両用制御装置100の仕様等によるが、一例として2〜3回である。
ステップ514で失敗回数が規定値以下と判定した場合は、ステップ516で車両用制御装置100の動作を継続する。そして、ステップ518で再度の改ざんチェックを行う決定をして、手順をステップ504に移行する。
ステップ514で失敗回数が規定値を超えた場合は、ステップ520で問題のあるソフトウェアを起動しない等のフェールセーフを行って、車両用制御装置100のソフトウェアの完全性の検証処理を終了する。
以上説明したように、本実施の形態に係る車両用制御装置100は、重要領域42のソフトウェアの完全性の検証を優先して行って、車両用制御装置100を起動した後、非重要領域60のソフトウェアの完全性の検証を行う。重要領域42の検証後、車両用制御装置100を起動することにより、起動時の検証が迅速に実行される。
本実施の形態では、車両用制御装置100の起動後も、車両用制御装置100のバックグラウンドでは非重要領域60の完全性の検証が行われるが、車両が走行可能な状態なので、実用上は問題がない。
全プログラムの検証を実施する為には、全車両同じ鍵を用いた改ざん検知技術、又はハッシュ関数のような処理負荷の低い技術を採用する必要があるが、これらの技術はセキュリティ上の脆弱性を有している。
また、本実施の形態は、重要領域の検証に用いる鍵14は各車両に専用品を設定し、かつ鍵14を車両の製造者以外は変更できないセキュア領域であるRoT10に格納することにより、高度なセキュリティを実現している。
本発明に係るプログラム等は、外部に流出しないように厳重な管理下に置くという条件付きで、記録媒体に格納して提供することも可能である。例えば、RoT10に格納される完全性検証プログラム12、鍵14、16、BLMAC18、FBLMAC20及びフラッシュROM50内の制御ソフトウェア40の各々のMACを、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的記録媒体に記録された形態で提供してもよい。
なお、特許請求の範囲の構成のうち、起動プログラムはBootLoader30及びFlashBootLoader32に、同第1検証部はRoT10に、同第2検証部はRoT10及びフラッシュROM50に、同完全性検証プログラムは完全性検証プログラム12に、同重要領域用鍵は鍵14に、同重要領域内のプログラムの検証用署名はBootLoaderMAC18及びFlashBootLoaderMAC20に、同非重要領域用鍵は鍵16に、同非重要領域内の検証用署名は第1ソフトMAC50A等に各々対応する。
本発明は、上記の形態例に限定されるものではなく、上記の形態例以外にも、その主旨を逸脱しない範囲内において種々変形して実施可能であることは勿論である。
10 Root of Trust
12 完全性検証プログラム
14、16 鍵
18 BootLoaderMAC
20 FlashBootLoaderMAC
30 BootLoader
32 FlashBootLoader
40 制御ソフトウェア
40A 第1ソフト
40B 第2ソフト
42 重要領域
60 非重要領域
100 車両用制御装置
50 フラッシュROM
50A 第1ソフトMAC

Claims (7)

  1. 起動プログラムを含む重要領域内のプログラムの完全性を検証する第1検証部と、
    前記起動プログラムにより前記重要領域内のプログラムが起動した状態で、非重要領域内のプログラムの完全性を検証する第2検証部と、
    を含む車両用制御装置。
  2. 前記第1検証部は完全性検証プログラム、重要領域用鍵及び前記重要領域内のプログラムの検証用署名を、
    前記第2検証部は非重要領域用鍵及び非重要領域内のプログラムの検証用署名を、各々備える請求項1に記載の車両用制御装置。
  3. 前記第1検証部は、前記完全性検証プログラム及び前記重要領域用鍵を用いて生成した前記重要領域内のプログラムの署名が前記重要領域内の検証用署名と一致する場合に前記重要領域内のプログラムが完全性を有すると判定する請求項2に記載の車両用制御装置。
  4. 前記第2検証部は、前記第1検証部が前記重要領域内のプログラムが完全性を有すると判定した後、前記非重要領域用鍵を用いて生成した前記非重要領域内のプログラムの署名が前記非重要領域内の検証用署名と一致する場合に前記非重要領域内のプログラムが完全性を有すると判定する請求項3に記載の車両用制御装置。
  5. 前記重要領域用鍵は、車両用制御装置が搭載される車両毎に異なる鍵であり、
    前記非重要領域用鍵は、同型式の車両用制御装置で同一の鍵である請求項2〜4のいずれか1項に記載の車両用制御装置。
  6. 起動プログラムを含む重要領域内のプログラムの完全性を検証する第1検証工程と、
    前記起動プログラムにより前記重要領域内のプログラムが起動した状態で、非重要領域内のプログラムの完全性を検証する第2検証工程と、
    を含む車両用制御装置の起動方法。
  7. 起動プログラムを含む重要領域内のプログラムの完全性を検証するための完全性検証プログラム、重要領域用鍵及び前記重要領域内のプログラムの検証用署名、並びに非重要領域内のプログラムの完全性を検証するための非重要領域用鍵及び非重要領域内のプログラムの検証用署名を記録した記録媒体。
JP2019039703A 2019-03-05 2019-03-05 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム Active JP7092071B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019039703A JP7092071B2 (ja) 2019-03-05 2019-03-05 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム
US16/740,537 US11620385B2 (en) 2019-03-05 2020-01-13 Vehicle control device, vehicle control device start-up method, and recording medium
EP20151799.2A EP3706387B1 (en) 2019-03-05 2020-01-14 Vehicle control device, vehicle control device start-up method, and recording medium
EP21198230.1A EP3952244A1 (en) 2019-03-05 2020-01-14 Vehicle control device, vehicle control device start-up method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019039703A JP7092071B2 (ja) 2019-03-05 2019-03-05 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム

Publications (2)

Publication Number Publication Date
JP2020144531A true JP2020144531A (ja) 2020-09-10
JP7092071B2 JP7092071B2 (ja) 2022-06-28

Family

ID=69172605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019039703A Active JP7092071B2 (ja) 2019-03-05 2019-03-05 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム

Country Status (3)

Country Link
US (1) US11620385B2 (ja)
EP (2) EP3952244A1 (ja)
JP (1) JP7092071B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022097448A1 (ja) * 2020-11-04 2022-05-12 株式会社オートネットワーク技術研究所 車載ecu、プログラム及びフェールセーフ方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11956369B2 (en) * 2020-08-13 2024-04-09 Robert Bosch Gmbh Accelerated verification of automotive software in vehicles

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537224A (ja) * 2005-04-15 2008-09-11 マイクロソフト コーポレーション 安全な起動方法およびシステム
CN106529301A (zh) * 2016-09-28 2017-03-22 东软集团股份有限公司 车机系统的控制方法、装置以及车机系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327153B2 (en) * 2009-12-04 2012-12-04 Electronics And Telecommunications Research Institute Method and system for verifying software platform of vehicle
DE102012016539A1 (de) * 2012-08-17 2014-05-15 Elektrobit Automotive Gmbh Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
JP2015022521A (ja) 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム
JP5867495B2 (ja) * 2013-12-20 2016-02-24 株式会社デンソー 電子制御装置
US9705678B1 (en) * 2014-04-17 2017-07-11 Symantec Corporation Fast CAN message authentication for vehicular systems
JP6197000B2 (ja) * 2015-07-03 2017-09-13 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
JP6422059B2 (ja) * 2015-07-31 2018-11-14 パナソニックIpマネジメント株式会社 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
US20180270052A1 (en) * 2015-09-22 2018-09-20 Bae Systems Plc Cryptographic key distribution
US20190190703A1 (en) * 2017-12-18 2019-06-20 Auton, Inc. Systems and methods for using an out-of-band security channel for enhancing secure interactions with automotive electronic control units
US10991175B2 (en) * 2018-12-27 2021-04-27 Beijing Voyager Technology Co., Ltd. Repair management system for autonomous vehicle in a trusted platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537224A (ja) * 2005-04-15 2008-09-11 マイクロソフト コーポレーション 安全な起動方法およびシステム
CN106529301A (zh) * 2016-09-28 2017-03-22 东软集团股份有限公司 车机系统的控制方法、装置以及车机系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022097448A1 (ja) * 2020-11-04 2022-05-12 株式会社オートネットワーク技術研究所 車載ecu、プログラム及びフェールセーフ方法

Also Published As

Publication number Publication date
US11620385B2 (en) 2023-04-04
JP7092071B2 (ja) 2022-06-28
EP3706387B1 (en) 2021-11-03
EP3952244A1 (en) 2022-02-09
EP3706387A1 (en) 2020-09-09
US20200285749A1 (en) 2020-09-10

Similar Documents

Publication Publication Date Title
JP5493951B2 (ja) 情報処理装置、正当性検証方法及びプログラム
JP4344115B2 (ja) マイクロコンピュータシステムのメモリ装置に格納された制御プログラムの検査メカニズムを活性化又は不活性化するための方法及びマイクロコンピュータシステム
WO2020124985A9 (zh) 固件安全升级方法、装置、车载系统和车辆
JP5937109B2 (ja) 車両の防犯のための方法及び機関制御システム
JP4647942B2 (ja) ディジタル・データを認証する方法及び装置
JP7092071B2 (ja) 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム
JP2021149964A (ja) リモートコンピューティングデバイス上に存在するソフトウェアの検証
JP6387908B2 (ja) 認証システム
JP7329702B2 (ja) 暗号化マテリアルを安全に使用するための方法
JP6659180B2 (ja) 制御装置および制御方法
US20230214494A1 (en) Electronic control device and control method
US11509640B2 (en) Method for protecting an electronic control unit
WO2022009464A1 (ja) 制御装置およびプログラム検証方法
CN117556430B (zh) 一种安全启动方法、装置、设备及存储介质
JP6698778B2 (ja) 制御システム
CN115421466A (zh) 控制器程序校验方法、装置、控制设备及存储介质
WO2021171906A1 (ja) 情報処理装置、及びプログラム起動方法
US20230385076A1 (en) Method for operating a control unit on which multiple applications are executed
CN115563625A (zh) 车载电子控制单元的启动方法、装置、车辆及存储介质
JP2023144496A (ja) システム、車両及び方法
CN114880651A (zh) 一种基于文件扩展属性的进程白名单实现方法及装置
JP2024501395A (ja) 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体
CN113051579A (zh) 一种控制方法及装置
CN117519812A (zh) 一种软件启动方法、控制器、车辆及存储介质
GB2548599A (en) Apparatus and method for device authentication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220428

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: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220530

R151 Written notification of patent or utility model registration

Ref document number: 7092071

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151