JP7440350B2 - 電子制御装置、制御方法 - Google Patents

電子制御装置、制御方法 Download PDF

Info

Publication number
JP7440350B2
JP7440350B2 JP2020101786A JP2020101786A JP7440350B2 JP 7440350 B2 JP7440350 B2 JP 7440350B2 JP 2020101786 A JP2020101786 A JP 2020101786A JP 2020101786 A JP2020101786 A JP 2020101786A JP 7440350 B2 JP7440350 B2 JP 7440350B2
Authority
JP
Japan
Prior art keywords
program
unit
verification
secure boot
verification unit
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
Application number
JP2020101786A
Other languages
English (en)
Other versions
JP2021196763A (ja
Inventor
裕紀 山▲崎▼
桃伽 粕谷
伸義 森田
康広 藤井
幹雄 片岡
正樹 藤原
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020101786A priority Critical patent/JP7440350B2/ja
Priority to PCT/JP2021/004439 priority patent/WO2021250939A1/ja
Priority to US17/928,050 priority patent/US20230214494A1/en
Publication of JP2021196763A publication Critical patent/JP2021196763A/ja
Application granted granted Critical
Publication of JP7440350B2 publication Critical patent/JP7440350B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Description

本発明は、電子制御装置、および制御方法に関する。
プログラムの更新が可能であり、なおかつプログラムの改竄を防止する技術としてセキュアブートが知られている。特許文献1には、セキュアブートを実行可能である情報処理装置であって、プログラムが格納される第1の不揮発性メモリ領域と前記プログラムが未検証であることを示す第1の値又は検証済であることを示す第2の値を有する第1のフラグが格納される第2の不揮発性メモリ領域とを含む不揮発性メモリと、前記第1の不揮発性メモリ領域に対する書換えが禁止であることを示す第3の値又は許可であることを示す第4の値を有する第2のフラグを格納する記憶装置を含み、書換え許可要求を受け且つ前記第1のフラグが前記第2の値を有する場合、前記第1のフラグの値を前記第1の値に変更し、前記第1のフラグの変更に応じて前記第2のフラグを前記第4の値に変更する許可部と、前記情報処理装置の起動時に前記第1のフラグが前記第1の値を有する場合、前記プログラムの検証が必要であると判定し、前記情報処理装置の起動時に前記第1のフラグが前記第2の値を有する場合、前記プログラムの検証が不要であると判定する判定部と、検証要求を受けた場合、又は、前記プログラムの検証が必要である場合、前記第2のフラグを前記第3の値に変更するように前記許可部を制御し、前記第2のフラグの変更に応じて前記プログラムに対する検証を行い、前記プログラムの検証が不要である場合、前記プログラムに対する検証をスキップする検証部と、を備えた情報処理装置が開示されている。
特開2017-156945号公報
特許文献1に記載されている発明では、セキュアブートと暗号に関する演算を同時に実行できない。
本発明の第1の態様による電子制御装置は、セキュアブート鍵、および制御用鍵が格納され、耐タンパ性を有するタンパ性記憶部と、プログラムを実行可能なプロセッサと、前記セキュアブート鍵を用いてプログラムの検証を行い、前記検証の結果に基づき前記プロセッサに前記プログラムを実行させるセキュアブートを行う、耐タンパ性を有する検証部と、前記制御用鍵を用いた暗号に関する演算を行う、耐タンパ性を有する演算部と、前記検証部から前記セキュアブートの権限を委譲される委譲検証部を実現する第1プログラム、および前記演算部を利用する制御部を実現する第2プログラムを格納し、耐タンパ性を有しない一般記憶部と、を備える。前記検証部は、前記第1プログラムおよび前記第2プログラムを対象とする前記検証に成功し前記プロセッサに前記第1プログラムおよび前記第2プログラムを実行させると、前記委譲検証部に前記セキュアブートの権限を委譲して前記セキュアブートの実行を終了し、前記演算部は、前記検証部が前記セキュアブートの実行を終了すると動作を開始し、前記委譲検証部は、前記演算部と同時に実行可能である。
本発明の第2の態様による制御方法は、セキュアブート鍵、および制御用鍵が格納され、耐タンパ性を有するタンパ性記憶部と、プログラムを実行可能なプロセッサと、前記セキュアブート鍵を用いてプログラムの検証を行い、前記検証の結果に基づき前記プロセッサに前記プログラムを実行させるセキュアブートを行う、耐タンパ性を有する検証部と、前記制御用鍵を用いた暗号に関する演算を行う、耐タンパ性を有する演算部と、前記検証部から前記セキュアブートの権限を委譲される委譲検証部を実現する第1プログラム、および前記演算部を利用する制御部を実現する第2プログラムを格納し、耐タンパ性を有しない一般記憶部と、を備える電子制御装置が実行する制御方法であって、前記検証部が、前記第1プログラムおよび前記第2プログラムを対象とする前記検証に成功し前記プロセッサに前記第1プログラムおよび前記第2プログラムを実行させると、前記委譲検証部に前記セキュアブートの権限を委譲して前記セキュアブートの実行を終了することと、前記演算部が、前記検証部による前記セキュアブートの実行を終了すると動作を開始することと、前記委譲検証部は、前記演算部と同時に実行可能であることとを含む。
本発明によれば、セキュアブートと暗号に関する演算とを同時に実行できる。
電子制御装置のハードウエア構成図 電子制御装置1の機能構成図 電子制御装置1の動作を示すタイムチャート HSM20の動作を示すフローチャート 委譲検証部115の動作を示すフローチャート 変形例1における電子制御装置の機能構成図
―第1の実施の形態―
以下、図1~図5を参照して、電子制御装置の第1の実施の形態を説明する。
(ハードウエア構成図)
図1は、本発明に係る電子制御装置のハードウエア構成図である。電子制御装置1は、中央演算装置メインCPU5と、メインRAM6と、通信部7と、ソフトウエア格納部8と、ハードウエアセキュリティモジュール(Hardware Security Module)であるHSM20とを備える。電子制御装置1はたとえば、車両に搭載される。
ソフトウエア格納部8には、ハイパーバイザ用プログラム10Pと、第1システム用プログラム11Pと、第2システム用プログラム12Pと、第3システム用プログラム13Pと、その他のプログラムが格納される。図示の都合により図1には記載していないその他のプログラムは、たとえば第4システム用プログラムや第5システム用プログラムである。ソフトウエア格納部8は、後述するタンパ性記憶部25とは異なりタンパ性が確保されていないので、タンパ性を有する記憶装置との対比によりソフトウエア格納部8を「一般記憶部」と呼ぶこともできる。
ハイパーバイザ用プログラム10Pは、仮想環境を制御するソフトウエアである。第1システム11、第2システム12、および第3システム13のそれぞれは、個別の仮想環境であり複数のソフトウエアを含む。またソフトウエア格納部8には4以上のシステム、たとえば第4システムや第5システムなどが格納されてもよい。
メインCPU5は、中央演算装置であり、ソフトウエア格納部8に格納されるプログラムをメインRAM6に展開して実行する。ただしソフトウエア格納部8は書き換えが可能でありソフトウエア格納部8に格納されるプログラムが書き換えられている可能性があるため、メインCPU5は後述するように検証されたプログラムのみを実行する。メインRAM6は、書き換え可能なメモリである。通信部7は、電子制御装置1の外部とデータの授受を行う。ただし通信部7は、後述するようにHSM20から通信抑制指令を受けると外部との通信を停止し、抑制解除指令を受けると外部との通信を開始する。ソフトウエア格納部8は、書き換え可能な記憶装置、たとえばハードディスクドライブやフラッシュメモリである。
HSM20は、サブCPU21と、サブRAM22と、タンパ性記憶部25とを備える。HSM20はタンパ性が確保された演算装置である。サブCPU21は中央演算装置であり、タンパ性記憶部25に格納されるプログラムをサブRAM22に展開して実行する。サブCPU21は、暗号に関する演算を高速に実行可能なアクセラレータ215を内蔵しており、後述する検証処理およびMAC演算処理を高速に実行できる。アクセラレータ215はたとえば、AES-CMACやSHA-256ハッシュを高速に算出する。
なおサブCPU21の名称に付している”サブ”とは、メインCPU5とは異なるハードウエアであり演算処理速度が遅く、サブCPU21の回路の規模がメインCPU5よりも小さい傾向にあることを示しているにすぎない。すなわちサブCPU21はメインCPU5の一部という意味ではないし、サブCPU21のアーキテクチャがメインCPU5のサブセットであることを限定するものでもない。またサブCPU21の演算処理速度がメインCPU5よりも早く、サブCPU21の回路の規模がメインCPU5よりも大きくてもよい。
サブRAM22は、書き換え可能なメモリである。サブRAM22の名称に付している”サブ”とは、メインRAM6よりも容量が少ない傾向にあることを示しているにすぎない。すなわちサブRAM22はメインRAM6よりも容量が大きくてもよい。
タンパ性記憶部25はタンパ性が確保された記憶装置であり、たとえば1回のみ書き込みが可能な記憶装置である。タンパ性記憶部25はタンパ性が確保されているため「タンパ性記憶部」と呼ぶこともできる。タンパ性記憶部25には、セキュアブート鍵251と、MAC鍵252と、署名データベース253と、HSMプログラム254とが格納される。セキュアブート鍵251は、セキュアブートの検証に用いられる鍵情報である。MAC鍵252は、MAC(メッセージ認証コード:Message Authentication Code)の算出に用いられる鍵情報である。なおMAC鍵252は後述するように制御部_が送信するメッセージのMACの算出に利用されるため、「MAC鍵」は「制御用鍵」と呼ぶこともできる。
署名データベース253は、セキュアブートの検証に用いられるデータベースであり、プログラムごとの署名が記録されている。署名データベース253にはたとえば、公開鍵であるセキュアブート鍵251に対応する秘密鍵を用いて作成された、各プログラムの署名が記録されている。HSMプログラム254は、後述する機能を実現するためのプログラムである。
(機能構成図)
図2は、電子制御装置1の機能構成図である。電子制御装置1は、ハイパーバイザ10と、ハイパーバイザ10が提供する仮想環境で動作する第1システム11、第2システム12、第3システム13、および不図示のその他のシステムとを有する。その他のシステムとはたとえば、第4システムおよび第5システムである。
第1システム11は、バーチャルマシン(VM:Virtual Machine)111と、委譲検証部115とを含む。なお第1システム11は、後述する処理によりセキュアブート鍵251を取得する。第2システム12は、VM121と、オペレーティングシステム(OS)122と、制御アプリ123とを有する。第3システム13は、VM131と、OS132と、検索アプリ134とを有する。なお第1システム11はOSを含んで構成されてもよいし、第2システム12および第3システム13はOSを含まない構成でもよい。
第1システム11のVM111および委譲検証部115は、メインCPU5が第1システム用プログラム11PをメインRAM6に展開して実行することにより実現される。第2システム12のVM121、OS122、および制御アプリ123は、メインCPU5が第2システム用プログラム12PをメインRAM6に展開して実行することにより実現される。制御アプリ123は、電子制御装置1を搭載する車両を制御するので、早期に起動して動作することが望ましい。
第3システム13のVM131、OS132、および検索アプリ134は、メインCPU5が第3システム用プログラム13PをメインRAM6に展開して実行することにより実現される。検索アプリ134は、制御アプリ123と比較すると早期の動作が必要ではなく、電子制御装置1の起動から検索アプリ134の動作開始までの時間の猶予がある。換言すると、検索アプリ134は制御アプリ123よりも重要度が低い。
HSM20は、検証部211と、MAC生成部212と、通信制御部217とを備える。検証部211、MAC生成部212、および通信制御部217は、サブCPU21がHSMプログラム254をサブRAM22に展開して実行することにより実現される。前述のように、HSMプログラム254はタンパ性を有するタンパ性記憶部25に格納されているので、HSMプログラム254により実現される検証部211、MAC生成部212、および通信制御部217もタンパ性を有する。検証部211およびMAC生成部212のそれぞれは、アクセラレータ215を利用することで高速に処理できる。ただし、検証部211およびMAC生成部212は演算中にアクセラレータ215を占有するため、同時には実行ができない。
検証部211は、メインCPU5がプログラムを読み込む前に読み込み対象のプログラムを検証する。検証部211による検証が成功すると、換言すると検証部211によりプログラムに問題がないと判断されると、そのプログラムはメインCPU5に読み込まれる。検証部211は、セキュアブート鍵251を用いて各プログラムの検証を行う。また検証部211は、後述する特定のタイミングにおいてセキュアブート鍵251および署名データベース253を第1システム11にコピーし、後述する別な特定のタイミングにおいて第1システム11にコピーしたセキュアブート鍵251および署名データベース253を消去する。
検証部211によるプログラムの検証を説明する。セキュアブート鍵251は、たとえば公開鍵暗号方式における公開鍵であり、各プログラムを対象として秘密鍵を用いて署名した署名情報が署名データベース253に格納される。検証部211はたとえば、検証対象のプログラムの署名情報を署名データベース253から読み取り、セキュアブート鍵251および読み取った署名情報を用いてプログラムを検証する。検証部211はたとえば、公開鍵を用いて署名情報を復号して得られる文字列と、検証対象のプログラムのハッシュ値とが一致する場合には検証が成功したと判断し、一致しない場合には検証が失敗したと判断する。
MAC生成部212は、制御アプリ123や検索アプリ134などから受信する文字列を入力情報として、MAC鍵252を用いて暗号に関する演算であるMACを生成する演算を実行し、生成したMACを出力する。MAC生成部212によるMACの生成にはアクセラレータ215が用いられる。
通信制御部217は、通信部7に対して電子制御装置1の外部からの通信受け入れ可否を設定する。具体的には通信制御部217は、電子制御装置1の起動時に通信部7に対して遮断指令を送信して外部からの通信遮断を開始させる。また通信制御部217は、後述するタイミングで通信部7に対して外部からの通信遮断を終了させるための解除指令を送信する。すなわち通信部7は、通信制御部217により電子制御装置1の起動から所定の期間は電子制御装置1の外部からの通信を受け付けない。
(タイムチャート)
図3は、電子制御装置1の動作を示すタイムチャートである。図3では、図示上部から下部に向かって時間が経過している。また図3では符号を付した図示横向きの矢印で構成間の処理を示しており、処理の主体を明示するために実線、破線、一点鎖線を使い分けている。すなわちHSM20を起点とする処理は実線で示し、第1システム11を起点とする処理は破線で示し、第2システム12を起点とする処理は一点鎖線で示す。
時刻t0において、電子制御装置1の起動処理が開始される。まず時刻t10においてHSM20の通信制御部217は、通信部7に外部からの通信受け入れを遮断させるための遮断指令を通信C11として送信する。この指令を受信した通信部7は、後に解除指令を受信するまで電子制御装置1の外部からの通信を受け付けない。
時刻t20においてHSM20の検証部211は、ハイパーバイザ用プログラム10Pの検証を行い、問題がないことを確認してハイパーバイザ10を起動させる(C12)。なお厳密にはハイパーバイザ用プログラム10Pを実行するのはメインCPU5であるが、図3では処理の因果関係を明示するためにHSM20からハイパーバイザ10に向かう矢印を記載している。以下も同様である。ハイパーバイザ10が起動することにより、ハイパーバイザ10が提供する仮想環境化での第1システム11などの動作が可能となる。
時刻t30において検証部211は、第1システム用プログラム11Pの検証を行い、問題がないことを確認して第1システム11を起動させる(C13)。さらに検証部211は、第1システム11に割り当てられるメインRAM6の領域に、セキュアブート鍵251および署名データベース253をコピーする。第1システム11は、VM111が起動すると委譲検証部115が動作を開始する。
時刻t40において検証部211は、第2システム用プログラム12Pの検証を行い、問題がないことを確認して第2システム12を起動させる(C14)。時刻t40において第1システム11の委譲検証部115は、第3システム用プログラム13Pの検証を行い問題がないことを確認する。この検証には、HSM20からコピーされたセキュアブート鍵251および署名データベース253が利用される。そして委譲検証部115は時刻t45に第3システム用プログラム13PをメインCPU5に実行させて第3システム13を起動させる(C21)。その後も委譲検証部115は、不図示の第4システムなどを実行するためのプログラムの検証を行い、問題がないことを確認するとメインCPU5にそのプログラムを実行させる(C22、C23)。
時刻t40以降に動作を開始する制御アプリ123は、外部に出力するメッセージを作成し、このメッセージを時刻t50にHSM20に送信する(C31)。このメッセージを受信したHSM20は、MAC生成部212がMACを生成して制御アプリ123に送信する(C15)。制御アプリ123は受信したMACを利用して車両の制御を行う。たとえば制御アプリ123は電子制御装置1の外部に生成したメッセージおよびMAC生成部212が生成したMACを送信する(C32)。
第1システム11の委譲検証部115は、検証すべき全てのプログラムの検証が完了したので、時刻t70にHSM20に検証完了を報告する(C24)。HSM20の検証部211は、第1システム11にコピーしたセキュアブート鍵251および署名データベース253を削除する(C16)。そしてHSM20の通信制御部217は、通信部7に解除指令を送信する(C17)。解除指令を受けた通信部7は、電子制御装置1の外部からの通信の遮断を解除し、電子制御装置1の内外から双方向の通信が可能となる。
(HSMのフローチャート)
図4は、HSM20の動作を示すフローチャートである。以下では、図3における対応する処理の符号も記載する。HSM20は、電子制御装置1が起動するとまずステップS301において通信制御部217が通信部7に遮断指令を出力する(図3のC11)。続くステップS302では検証部211は、ハイパーバイザ10、第1システム11、および第2システム12を検証し、問題がないことを確認して起動する(図3のC12~C14)。続くステップS303では検証部211は、起動検証情報、すなわちセキュアブート鍵251および署名データベース253を第1システム11のメモリ領域に複製する(図3のC13)。ステップS303の処理が完了すると、HSM20はステップS311とステップS321とを並列に実行する。
ステップS311ではHSM20のMAC生成部212は、電子制御装置1の内部からMACの生成依頼を受信したか否かを判断する。MAC生成部212はたとえば、MAC生成の依頼を示す文字列およびMACの生成対象となる文字列を受信するとMACの生成依頼を受信したと判断する。MAC生成部212は、MACの生成依頼を受信したと判断する場合はステップS312に進み、MACの生成依頼を受信していないと判断する場合はステップS311に留まる。
ステップS312ではMAC生成部212はMACの生成対象となる文字列、およびタンパ性記憶部25に格納されているMAC鍵252を用いてMACを生成し、MAC生成を依頼した装置に送信する(図3のC15)。その後MAC生成部212は、ステップ311に戻る。なお図4ではステップS311以降は終了がない無限ループとなっているが、電子制御装置1の電源がオフにされる場合などには、HSM20は処理を終了してよい。
ステップS311と並列に処理が開始されるステップS312では検証部211は、委譲検証部115から完了報告を受信したか否かを判断する。検証部211は、完了報告を受信したと判断する場合はステップS322に進み、完了報告を受信していないと判断する場合はステップS321に留まる。ステップS322では検証部211は、第1システム11のメモリ領域から起動検証情報、すなわちセキュアブート鍵251および署名データベース253を削除する(図3のC16)。続くステップS323では通信制御部217は、通信部7に解除指令を送信して(図3のC17)図4に示す処理を終了する。ただしステップS321~S323の処理が完了してもステップS311およびステップS312の処理は継続される。
(委譲検証部のフローチャート)
図5は、第1システム11の委譲検証部115の動作を示すフローチャートである。委譲検証部115はまずステップS351において、起動対象プログラムを確認する。換言すると委譲検証部115は、委譲検証部115がセキュアブートする対象となるプログラムの一覧を確認する。これのプログラムの一覧はたとえば、委譲検証部115を実現するプログラムの中にあらかじめ書き込まれる。
続くステップS352では委譲検証部115は、起動対象のプログラムから未検証のプログラムを1つ選択する。続くステップS353では委譲検証部115は、ステップS352において選択したプログラムの検証を行う。この検証は、検証部211が行う処理と同様であり検証部211により複製されたセキュアブート鍵251および署名データベース253が利用される。ただし委譲検証部115はアクセラレータ215を利用したが、HSM20の外部で実行される委譲検証部115はアクセラレータ215を利用できない。
続くステップS354では委譲検証部115は、ステップS353における検証が成功したか否かを判断する。委譲検証部115は検証が成功したと判断する場合はステップS355に進み、検証が失敗したと判断する場合はステップS356に進む。ステップS355では委譲検証部115は、ステップS353において検証したプログラムを起動する。換言すると委譲検証部115は、ステップS353において検証したプログラムをメインRAM6に展開してメインCPU5に実行させる。
ステップS356では委譲検証部115は、全ての起動対象プログラムを検証したか否かを判断する。委譲検証部115は、全ての起動対象プログラムを検証したと判断する場合はステップS357に進み、検証していない起動対象プログラムが存在すると判断する場合はステップS352に戻る。ステップS357では委譲検証部115は、検証部211に完了報告を送信して図5に示す処理を終了する。なお検証部211はこの完了報告を受信すると、第1システム11に複製した起動検証情報、すなわちセキュアブートの実行に必要なセキュアブート鍵251および署名データベース253を第1システム11から削除する。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)セキュアブート鍵251、および制御用鍵であるMAC鍵252が格納され、耐タンパ性を有するタンパ性記憶部25と、プログラムを実行可能なメインCPU5と、セキュアブート鍵251を用いてプログラムの検証を行い、検証の結果に基づきメインCPU5にプログラムを実行させるセキュアブートを行う、耐タンパ性を有する検証部211と、制御用鍵であるMAC鍵252を用いた演算を行う、耐タンパ性を有するMAC生成部212と、検証部211からセキュアブートの権限を委譲される委譲検証部115を実現する第1システム用プログラム11P、およびMAC生成部212を利用する制御アプリ123を実現する第2システム用プログラム12Pを格納し、耐タンパ性を有しないソフトウエア格納部8と、を備える。検証部211は、第1システム用プログラム11Pおよび第2システム用プログラム12Pを対象とする検証に成功しメインCPU5に第1システム用プログラム11Pおよび第2システム用プログラム12Pを実行させると、委譲検証部115にセキュアブートの権限を委譲してセキュアブートの実行を終了する。MAC生成部212は、検証部211がセキュアブートの実行を終了すると動作を開始する。委譲検証部115は、MAC生成部212と同時に実行可能である。そのため電子制御装置1は、セキュアブートと、暗号に関する演算であるMAC算出とを同時に実行できる。
(2)検証部211は、委譲検証部115へセキュアブートの権限を委譲する際にセキュアブート鍵251の複製を作成し、検証部211は、委譲検証部115による検証が完了すると複製されたセキュアブート鍵251を消去する。そのためセキュアブートに必要な情報は、最低限度の期間のみHSM20の外部に存在させることができる。
(3)電子制御装置1は、外部との通信を行う通信部7を制御し耐タンパ性を有する通信制御部217を備える。通信制御部217は、検証部211がセキュアブートを行う前に外部からの通信の遮断を開始させ(図3のC11)、検証部211が複製されたセキュアブート鍵251を消去すると外部からの通信の遮断を終了させる(図3のC17)。このように電子制御装置1は、検証部211および委譲検証部115がセキュアブートを実行する期間は、電子制御装置1の外部からの通信を遮断する。そのため、セキュアブートが完了する前に電子制御装置1の外部から悪意を有する通信や悪意を有するソフトウエアの侵入を防ぎ、第1システム11に複製したセキュアブート鍵251および署名データベース253が外部に流出することを防止できる。
(4)第1プログラムおよび第2プログラムはハイパーバイザ10上で稼働する仮想マシンによって実行される。検証部211は、第1システム用プログラム11Pおよび第2システム用プログラム12Pとともにハイパーバイザ10を実現するハイパーバイザ用プログラム10Pも対象として検証を行う(図4のステップS302)。検証部211は、第1システム用プログラム11P、第2システム用プログラム12P、およびハイパーバイザ用プログラム10Pについての検証が成功すると、メインCPU5に第1システム用プログラム11P、第2システム用プログラム12P、およびハイパーバイザ用プログラム10Pを実行させて、委譲検証部115にセキュアブートの権限を委譲してセキュアブートの実行を終了する。そのため、セキュアブートの対象が多くなるハイパーバイザ10を利用する仮想環境では、セキュアブートの完了に時間を要するため、セキュアブートの完了を待たずにMACの生成が可能である利益が大きい。
(5)電子制御装置1は車両に搭載される。MAC生成部212は入力されるメッセージを対象として制御鍵を用いてメッセージ認証コードを生成する。制御アプリ123は、MAC生成部212が出力するメッセージ認証コードを車両の制御におけるメッセージの認証に利用する。
(変形例1)
上述した実施の形態では、電子制御装置1はハイパーバイザ10を備えた。しかし電子制御装置はハイパーバイザ10を備えない、いわゆるベアメタルの構成でもよい。図6は、ハイパーバイザを備えない電子制御装置1Aの機能構成図である。上述した実施の形態における図2との違いは、ハイパーバイザ10を備えない点、および第1システム11~第3システム13がバーチャルマシンを備えない点である。本変形例における検証部211の動作は、ハイパーバイザ10およびバーチャルマシンのセキュアブートを行わない点が実施の形態と異なる。他の動作は実施の形態と同様である。
(変形例2)
上述した実施の形態では、HSM20の検証部211、MAC生成部212、および通信制御部217はソフトウエアにより実現された。しかしこれらの少なくとも1つはハードウエアで実現されてもよい。ただしこの場合でも検証部211およびMAC生成部212は演算リソースを共有し、同時に処理を実行できない。
(変形例3)
上述した実施の形態では、委譲検証部115は第1システム11にのみ備えられた。しかし委譲検証部115と同等の機能が他のシステム、たとえば実施の形態には記載していない第9システムに備えられてもよい。この場合には検証部211は、第1システム11に続いて第9システムのセキュアブートを行い、第1システム11および第9システムが他のプログラムのセキュアブートを行う。本変形例によれば、セキュアブートを2つ同時に実行しつつ、HSM20はMACを生成できる。
(変形例4)
上述した実施の形態では、HSM20の検証部211がセキュアブートを行う対象は、仮想環境を提供するハイパーバイザ10を実現するハイパーバイザ用プログラム10P、委譲検証部115を動作させる第1システム11を実現する第1システム用プログラム11P、および早期に動作を開始すべき第2システム12を実現する第2システム用プログラム12Pの3つであった。しかし検証部211は、さらに他のプログラムをセキュアブートの対象としてもよい。検証部211はたとえば、早期に動作を開始すべき他のプログラムや、重要度が高い他のプログラムをセキュアブートの対象としてもよい。
(変形例5)
上述した実施の形態では、電子制御装置1の起動時の処理として説明した。しかし電源がオフからオンに切り替わる起動時だけでなく、スリープ状態などの省電力状態からの復帰時にも同様の処理を行ってもよい。
(変形例6)
委譲検証部115があるプログラムのセキュアブートの検証に失敗した際に、検証部211がそのプログラムを対象として改めてセキュアブートを試みてもよい。
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
(変形例7)
上述した実施の形態では、HSM20はMAC生成部212を備えた。しかしHSM20は、MAC生成部212の代わりに暗号に関する他の演算、たとえば署名の生成を行う構成を有してもよい。また第2システム12が制御アプリ123を有することは必須の構成ではなく、HSM20が有する暗号に関する演算を利用する何らかのアプリケーションを有していればよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
1、1A…電子制御装置
7…通信部
8…ソフトウエア格納部
10…ハイパーバイザ
10P…ハイパーバイザ用プログラム
11…第1システム
11P…第1システム用プログラム
12…第2システム
12P…第2システム用プログラム
13…第3システム
13P…第3システム用プログラム
25…タンパ性記憶部
115…委譲検証部
123…制御アプリ
211…検証部
212…MAC生成部
215…アクセラレータ
217…通信制御部
251…セキュアブート鍵
252…MAC鍵
253…署名データベース
254…HSMプログラム

Claims (6)

  1. セキュアブート鍵、および制御用鍵が格納され、耐タンパ性を有するタンパ性記憶部と、
    プログラムを実行可能なプロセッサと、
    前記セキュアブート鍵を用いてプログラムの検証を行い、前記検証の結果に基づき前記プロセッサに前記プログラムを実行させるセキュアブートを行う、耐タンパ性を有する検証部と、
    前記制御用鍵を用いた暗号に関する演算を行う、耐タンパ性を有する演算部と、
    前記検証部から前記セキュアブートの権限を委譲される委譲検証部を実現する第1プログラム、および前記演算部を利用する制御部を実現する第2プログラムを格納し、耐タンパ性を有しない一般記憶部と、を備え、
    前記検証部は、前記第1プログラムおよび前記第2プログラムを対象とする前記検証に成功し前記プロセッサに前記第1プログラムおよび前記第2プログラムを実行させると、前記委譲検証部に前記セキュアブートの権限を委譲して前記セキュアブートの実行を終了し、
    前記演算部は、前記検証部が前記セキュアブートの実行を終了すると動作を開始し、
    前記委譲検証部は、前記演算部と同時に実行可能な電子制御装置。
  2. 請求項1に記載の電子制御装置において、
    前記検証部は、前記委譲検証部へ前記セキュアブートの権限を委譲する際に前記セキュアブート鍵の複製を作成し、
    前記検証部は、前記委譲検証部による前記検証が完了すると前記複製された前記セキュアブート鍵を消去する電子制御装置。
  3. 請求項2に記載の電子制御装置において、
    外部との通信を制御し耐タンパ性を有する通信制御部をさらに備え、
    前記通信制御部は、前記検証部が前記セキュアブートを行う前に外部からの通信の遮断を開始させ、前記検証部が前記複製された前記セキュアブート鍵を消去すると前記外部からの通信の遮断を終了させる電子制御装置。
  4. 請求項1に記載の電子制御装置において、
    前記第1プログラムおよび前記第2プログラムはハイパーバイザ上で稼働する仮想マシンによって実行され、
    前記検証部は、前記第1プログラムおよび前記第2プログラムとともに前記ハイパーバイザを実現するハイパーバイザ用プログラムも対象として前記検証を行い、前記第1プログラム、前記第2プログラム、および前記ハイパーバイザ用プログラムについての前記検証が成功すると、前記プロセッサに前記第1プログラム、前記第2プログラム、および前記ハイパーバイザ用プログラムを実行させて、前記委譲検証部に前記セキュアブートの権限を委譲して前記セキュアブートの実行を終了する電子制御装置。
  5. 請求項1に記載の電子制御装置において、
    前記電子制御装置は車両に搭載され、
    前記演算部は入力されるメッセージを対象として前記制御用鍵を用いてメッセージ認証コードを生成し、
    前記制御部は、前記演算部が出力するメッセージ認証コードを前記車両の制御におけるメッセージの認証に利用する電子制御装置。
  6. セキュアブート鍵、および制御用鍵が格納され、耐タンパ性を有するタンパ性記憶部と、プログラムを実行可能なプロセッサと、前記セキュアブート鍵を用いてプログラムの検証を行い、前記検証の結果に基づき前記プロセッサに前記プログラムを実行させるセキュアブートを行う、耐タンパ性を有する検証部と、前記制御用鍵を用いた暗号に関する演算を行う、耐タンパ性を有する演算部と、前記検証部から前記セキュアブートの権限を委譲される委譲検証部を実現する第1プログラム、および前記演算部を利用する制御部を実現する第2プログラムを格納し、耐タンパ性を有しない一般記憶部と、を備える電子制御装置が実行する制御方法であって、
    前記検証部が、前記第1プログラムおよび前記第2プログラムを対象とする前記検証に成功し前記プロセッサに前記第1プログラムおよび前記第2プログラムを実行させると、前記委譲検証部に前記セキュアブートの権限を委譲して前記セキュアブートの実行を終了することと、
    前記演算部が、前記検証部による前記セキュアブートの実行を終了すると動作を開始することと、
    前記委譲検証部は、前記演算部と同時に実行可能であることとを含む制御方法。

JP2020101786A 2020-06-11 2020-06-11 電子制御装置、制御方法 Active JP7440350B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020101786A JP7440350B2 (ja) 2020-06-11 2020-06-11 電子制御装置、制御方法
PCT/JP2021/004439 WO2021250939A1 (ja) 2020-06-11 2021-02-05 電子制御装置、制御方法
US17/928,050 US20230214494A1 (en) 2020-06-11 2021-02-05 Electronic control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020101786A JP7440350B2 (ja) 2020-06-11 2020-06-11 電子制御装置、制御方法

Publications (2)

Publication Number Publication Date
JP2021196763A JP2021196763A (ja) 2021-12-27
JP7440350B2 true JP7440350B2 (ja) 2024-02-28

Family

ID=78847152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020101786A Active JP7440350B2 (ja) 2020-06-11 2020-06-11 電子制御装置、制御方法

Country Status (3)

Country Link
US (1) US20230214494A1 (ja)
JP (1) JP7440350B2 (ja)
WO (1) WO2021250939A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7283525B2 (ja) * 2017-06-16 2023-05-30 株式会社三洋物産 遊技機

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225376A (ja) 2014-05-26 2015-12-14 Kddi株式会社 コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
US20180157841A1 (en) 2016-12-01 2018-06-07 Hyundai Autron Co., Ltd. System and method for secure boot of engine management system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473220B (zh) * 2010-05-07 2015-06-17 松下电器产业株式会社 信息处理装置、信息处理方法以及程序分发系统
US10831894B2 (en) * 2017-01-11 2020-11-10 Morgan State University Decentralized root-of-trust framework for heterogeneous networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225376A (ja) 2014-05-26 2015-12-14 Kddi株式会社 コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
US20180157841A1 (en) 2016-12-01 2018-06-07 Hyundai Autron Co., Ltd. System and method for secure boot of engine management system

Also Published As

Publication number Publication date
JP2021196763A (ja) 2021-12-27
WO2021250939A1 (ja) 2021-12-16
US20230214494A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
JP4795812B2 (ja) セキュアプロセッサ
US6223284B1 (en) Method and apparatus for remote ROM flashing and security management for a computer system
Raj et al. {fTPM}: A {Software-Only} Implementation of a {TPM} Chip
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
KR101476948B1 (ko) 변형 억제 부팅 시스템 및 방법
EP2482222B1 (en) Program for a secure processor
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
US20060236122A1 (en) Secure boot
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
CN109657448B (zh) 一种获取Root权限的方法、装置、电子设备及存储介质
CN109739613B (zh) 嵌套页表的维护方法、访问控制方法及相关装置
JP5689429B2 (ja) 認証装置、および、認証方法
US8108905B2 (en) System and method for an isolated process to control address translation
JP2020004390A (ja) 自動検証方法及びシステム
JP7440350B2 (ja) 電子制御装置、制御方法
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
EP3785149B1 (en) Memory assignment for guest operating systems
EP1465038B1 (en) Memory security device for flexible software environment
US20020169976A1 (en) Enabling optional system features
KR20200041639A (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
EP3933631B1 (en) Fast and versatile multicore soc secure boot method
US11468159B2 (en) Memory system
CN112307481A (zh) 一种系统可信启动方法、电子设备及计算机可读存储介质
JP6462537B2 (ja) メモリコントローラ
US11526598B2 (en) Microcontroller and semiconductor device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240215

R150 Certificate of patent or registration of utility model

Ref document number: 7440350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150