JP6463435B1 - 制御装置および制御方法 - Google Patents

制御装置および制御方法 Download PDF

Info

Publication number
JP6463435B1
JP6463435B1 JP2017194025A JP2017194025A JP6463435B1 JP 6463435 B1 JP6463435 B1 JP 6463435B1 JP 2017194025 A JP2017194025 A JP 2017194025A JP 2017194025 A JP2017194025 A JP 2017194025A JP 6463435 B1 JP6463435 B1 JP 6463435B1
Authority
JP
Japan
Prior art keywords
control
verification
unit
storage area
processing
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
JP2017194025A
Other languages
English (en)
Other versions
JP2019068341A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2017194025A priority Critical patent/JP6463435B1/ja
Priority to US15/938,044 priority patent/US10789365B2/en
Priority to DE102018207504.2A priority patent/DE102018207504A1/de
Application granted granted Critical
Publication of JP6463435B1 publication Critical patent/JP6463435B1/ja
Publication of JP2019068341A publication Critical patent/JP2019068341A/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】高いセキュリティ強度および高速な起動を必要とする、通信線に接続された制御装置および制御方法を提供する。【解決手段】第一の処理環境と、第一の処理環境から隔離された第二の処理環境と、第一の処理環境下に、制御対象への制御処理を実行する制御処理部と、制御対象の制御用データを格納する第一の記憶領域と、検証判定部と、を備え、第二の処理環境下に、期待値を格納する第二の記憶領域と、検証値を生成する検証値生成部と、第一の記憶領域のデータの検証を実行する検証実行部と、を備えた制御装置であって、検証値生成部は、制御処理が停止する前に検証値を生成し、検証実行部は、制御処理が起動する前に期待値と検証値との比較処理を実行し、検証判定部は、検証合格の場合には制御処理部による制御処理を起動する判定処理を実行し、検証不合格の場合には制御処理の起動を中止する判定を実行する。【選択図】図1

Description

本発明は、高いセキュリティ強度および高速な起動を必要とする、通信線に接続された制御装置に関するものである。
従来から、車両に搭載される制御装置である、例えばECU(Electronic Control Unit)において、ECU内部データの改ざん対策に関する技術が提案されている(例えば、特許文献1参照)。
通常、車両には複数のECUが搭載されており、各ECU間は、通信接続されている。このため、外部からの不正な侵入を受けやすい。外部から不正な侵入を受け、ECU内部データが改ざんされてしまうと、その結果として、ECUが外部から不正に遠隔操作されてしまうおそれがある。
データ改ざんの対策として、セキュアブート処理がある。このセキュアブート処理とは、暗号技術を用いてデータを検証し、データの改ざんを検知する技術である。ECUを起動する前に、ECUの内部データが改ざんされているか否かを検知することにより、ECUを高いセキュリティ強度で起動できるか否かを判断することができる。
しかしながら、車載用のECUは、起動開始から起動完了までの時間の制約が厳しい。そのため、ECU起動時のセキュアブートには、高いセキュリティ強度および高速な処理が求められる。さらに、セキュアブート処理用のプログラム自体も改ざんされてしまうおそれがある。そのため、セキュアブート処理自体にも改ざんに対する高いセキュリティ強度が求められる。
特許文献1は、改ざん検出の対象とするアプリケーションプログラムを選別することで、セキュアブート処理時間を短縮している。また、特許文献1は、検証に用いるデータをイベント毎に更新することにより、セキュアブート処理も高いセキュリティ強度で起動することができるとしている。
特開2017−33248号公報
しかしながら、従来技術には、以下のような課題がある。特許文献1では、セキュアブート処理時間を短縮するために、改ざん検出の対象とするアプリケーションプログラムを、システム管理者が予め選別することが必要である。すなわち、事前に選別されなかったアプリケーションプログラムは、改ざん検出の対象とはならない。このため、事前に選別されなかったアプリケーションプログラムに対して攻撃者によって不正にデータが改ざんされた場合には、改ざんを検出することができない。
また、セキュアブート処理自体の改ざんに対するセキュリティ強度を高めるためには、セキュアブートの検証に用いるデータ量を増加させる必要がある。また、検証値生成のための暗号鍵のデータ量を増加させる必要がある。
このように、改ざん検出の対象となるプログラムおよびデータの量を増加させることで、外部からシステム浸入し、データの改ざんを試みる攻撃者は、暗号化された検証値を解読することが困難となる。このため、改ざんに対するセキュリティ強度が向上する。
一方、改ざん検出の対象となるプログラムおよびデータの量を増加させた場合には、セキュアブート処理に要する時間が増大してしまうという問題がある。セキュアブート処理の時間短縮方法として、HSM(Hardware Security Module)などの高速演算可能なハードウェアを用いる方法が知られている。しかしながら、データ量が多い場合には、HSMを使用したとしても、処理時間を十分に短縮できないという問題がある。
本発明は、このような問題を解決するためになされたものであり、その目的は、改ざん検出の対象となるプログラムおよびデータの量を増加させた場合、あるいはセキュアブート処理自体に用いるデータ量を増加させた場合であっても、高いセキュリティ強度を有しつつ、制御装置の起動時に実行されるセキュアブート処理の処理時間を、従来と比較して短縮することのできる制御装置および制御方法を得ることである。
本発明に係る制御装置は、第一の処理環境と、第一の処理環境からハードウェア的に隔離された第二の処理環境と、第一の処理環境下に、制御対象への制御処理を実行する制御処理部と、制御処理部が制御対象の制御のために用いるデータを格納する第一の記憶領域と、制御処理を実行するか否かを判定する検証判定部と、制御処理部による制御処理の停止および起動を制御する起動制御部と、外部機器との通信機能を有する通信制御部と、制御処理部による制御処理を起動する時刻になったことを起動指令として通知する時間計測部と、を備え、第二の処理環境下に、第一の記憶領域のデータに基づいて予め生成された期待値を格納する第二の記憶領域と、第一の記憶領域のデータに基づいて検証値を生成する検証値生成部と、第一の記憶領域のデータの検証を実行する検証実行部と、を備えた制御装置であって、第二の記憶領域は、第一の記憶領域から物理的または論理アドレス的に隔離され、かつ第二の処理環境からのみアクセス可能に設定され、起動制御部は、制御処理停止処理を開始した後、停止処理が終了する前に、通信制御部による通信機能を無効とし、続いて、検証値生成部に検証値を生成させた後に、制御処理部による制御処理を停止させ、制御処理部による制御処理を停止させた後に、時間計測部から起動指令を受信した場合には、通信制御部による通信機能を有効とし、通信制御部が外部機器から制御処理部による制御処理を実行するための起動要求を受信した場合には、停止処理の終了後、制御処理が起動する前に、検証実行部による比較処理および検証判定部による判定処理を実行させ、検証値生成部は、停止処理が終了する前に、検証値を生成し、生成した検証値を第二の記憶領域に格納し、検証実行部は、停止処理の終了後、制御処理が起動する前に、期待値と検証値との比較処理を実行し、検証合格か検証不合格かを示す比較結果を第一の処理環境内の検証判定部に送信し、検証判定部は、検証実行部から検証合格を示す比較結果を受信した場合には、制御処理部による制御処理を起動する判定処理を実行し、検証実行部から検証不合格を示す比較結果を受信した場合には、制御処理部による制御処理の起動を中止する判定処理を実行するものである。
また、本発明に係る制御方法は、本発明の制御装置において実行される制御装置の制御方法であって検証値生成部が、制御処理停止処理を開始した後、停止処理が終了する前に、第一の処理環境下の第一の記憶領域のデータに基づいて検証値を生成するステップと、検証値を第二の処理環境下の第二の記憶領域に格納するステップと、検証実行部が、停止処理の終了後、制御処理が起動する前に、第一の記憶領域のデータに基づいて予め生成された期待値と検証値との比較処理を実行するステップと、検証判定部が、比較処理の比較結果が検証合格の場合には、制御処理部による制御処理を起動する判定処理を実行するステップと、検証判定部が、比較結果が検証不合格の場合には、制御処理部による制御処理の起動を中止する判定処理を実行するステップと、さらに、起動制御部が、制御処理の停止処理を開始した後、停止処理が終了する前に、通信機能を無効とするステップと、
続いて、起動制御部が、検証値を生成させた後に、制御処理を停止させるステップと、起動制御部が、制御処理を停止させた後に、起動指令を受信した場合には、通信機能を有効とするステップと、通信制御部が、外部機器から制御処理を実行するための起動要求を受信した場合には、停止処理の終了後、制御処理が起動する前に、比較処理および判定処理を実行させるステップと、を備えるものである。
本発明によれば、制御装置の停止前に、セキュアブート処理用(改ざん検出用)の検証値を予め生成しておき、起動時に該検証値を用いてセキュアブート処理を実行できる構成を備えている。この結果、改ざん検出の対象となるプログラムおよびデータの量を増加させた場合、あるいはセキュアブート処理自体に用いるデータ量を増加させた場合であっても、高いセキュリティ強度を有しつつ、制御装置の起動時に実行されるセキュアブート処理の処理時間を短縮することができる制御装置および制御方法を得ることができる。
本発明の実施の形態1に係る制御装置の機能ブロック図である。 本発明の実施の形態1に係る制御装置の停止および起動処理を示すフローチャートである。
以下に、本発明の制御装置および制御方法の好適な実施の形態について、図面を用いて説明する。なお、以下では、制御装置の具体例として、制御対象を車両および車載機器とする車載制御装置(ECU)に適用する場合について、詳細に説明する。
実施の形態1.
図1は、本発明の実施の形態1に係る制御装置を適用した車載制御装置(ECU)の機能ブロック図である。本実施の形態1における車載制御装置(以下、制御装置10と称する)は、起動制御部100、制御処理部101、不揮発性記憶部102、検証値生成部103、検証実行部104、検証判定部105、通信制御部106および時間計測部107を備えて構成されている。
制御装置10は、図1に示したように、第一の処理環境と第二の処理環境を有する。第二の処理環境は、第一の処理環境とは、ハードウェア的に隔離された処理環境である。例えば、第二の処理環境としては、HSM(Hardware Security Module)を使用することができる。
第一の処理環境は、起動制御部100、制御処理部101、不揮発性記憶部102内の第一の記憶領域102a、検証判定部105、通信制御部106および時間計測部107を備えている。
一方、第二の処理環境は、不揮発性記憶部102内の第二の記憶領域102b、検証値生成部103および検証実行部104を備えている。そして、第二の記憶領域102bは、第二の処理環境からのみアクセス可能に設定されている。
制御装置10は、車両の制御を行う車載制御装置である。制御装置10は、車両内部の他の制御装置と、図示しない通信線、例えばCAN(Controller Area Network)、を介して接続されている。
起動制御部100は、制御装置10の制御処理部101の起動および停止を制御する機能を有している。さらに、起動制御部100は、制御処理部101の停止処理および起動処理を統括制御する機能も有している。
ここで、制御処理部101が起動していない状態とは、制御装置10がスリープ状態、または制御装置10の電源がオフとなっている状態である。
制御処理部101は、車内に搭載されている制御対象の機器を制御する機能を有している。なお、図1では、制御対象の機器を図示しておらず、以下の説明では、制御対称の機器のことを、単に制御対象と称する。車内に搭載されている制御対象とは、アクチュエーター等である。
具体的には、制御処理部101は、制御対象に対応した制御用プログラムデータを不揮発性記憶部102の第一の記憶領域102aから読み出して、読み出したプログラムを実行することで、制御対象の制御を行う。
不揮発性記憶部102は、第一の記憶領域102aと第二の記憶領域102bを有している。第一の記憶領域102aと第二の記憶領域102bは、物理的または論理アドレス的に隔離されている。
第一の記憶領域102aは、制御処理部101が制御処理を実行するための制御用プログラムデータを格納する領域である。第一の記憶領域102aは、制御処理部101が通常の動作時に使用するデータが記憶されている領域である。このため、以下、第一の記憶領域102aのことを第一の記憶領域(通常記憶領域)102aと称する場合がある。
第二の記憶領域102bは、セキュアブート処理で使用する期待値と検証値を格納する領域である。以下、第二の記憶領域102bのことを第二の記憶領域(セキュア記憶領域)102bと称する場合がある。期待値は、例えば、制御装置10の開発段階において、第一の記憶領域(通常記憶領域)102aのデータに基づいて、検証値と同一の算出方法で生成される。
ここで、第一の記憶領域(通常記憶領域)102aに記憶されたデータは、上述したように、制御処理部101が制御処理を実行するためのプログラムデータである。そのため、第一の記憶領域(通常記憶領域)102aに記憶されたデータが不正に改ざんされてしまった場合には、制御対象の動作および車両全体の制御に重大な問題が生じるおそれがある。
第二の処理環境内に設けられた検証値生成部103は、第一の記憶領域(通常記憶領域)102aに記憶された、通常の動作時に使用されるデータに基づいて、セキュアブート処理で使用する検証値を生成する機能を有している。検証値は、例えば、MAC(Message Authentication Code)、CRC、ハッシュなどを使用することができる。
第二の処理環境内に設けられた検証実行部104は、第二の記憶領域に格納されている期待値と、第一の記憶領域(通常記憶領域)102aのデータをもとに検証値生成部103で生成された検証値が一致するか否かの検証を実行する。
第一の処理環境内に設けられた検証判定部105は、検証実行部104の検証結果に基づいて、制御処理部101が制御処理対象に対する制御処理を実行してよいか否かを判定する。
検証実行部104による検証結果において、期待値と検証値が一致している場合には、検証判定部105は、第一の記憶領域(通常記憶領域)102aのデータは改ざんされていないと判定する。以下、この検証判定結果を「検証合格」と称する。
また、検証結果において期待値と検証値が一致していない場合には、検証判定部105は、第一の記憶領域(通常記憶領域)102aのデータが改ざんされていると判定する。以下、この検証判定結果を「検証不合格」と称する。
検証判定結果は、検証判定部105から起動制御部100に出力される。起動制御部100は、検証判定部105から出力された検証判定結果に基づいて、「検証合格」の場合には、制御処理部101の起動を実行し、「検証不合格」の場合には、制御処理部101の起動を中止する。
なお、以上の説明では、制御処理部101の起動を中止する場合には、制御処理部101の全ての機能の実行を中止するとした。しかしながら、本実施の形態1における中止処理は、これに限られるものではない。例えば、制御処理部101の一部の機能の実行を制限した状態で、制御処理部101の起動を実行するようにしてもよい。
通信制御部106は、図示しない通信線を介して、車内に搭載されている他の機器と接続されている。通信制御部106は、起動制御部100からの出力に基づいて、制御装置10と外部機器との通信機能を有効化または無効化する機能を備えている。
時間計測部107は、起動制御部100および通信制御部106に、所定の時刻となったことを通知する時計機能、または、ある時刻から所定の時間が経過したことを通知するタイマー機能を有している。
起動制御部100および時間計測部107は、制御装置10がスリープ状態または電源オフ状態であっても継続して起動可能なように構成されている。例えば、起動制御部100および時間計測部107には、制御装置10がスリープ状態または電源オフ状態であっても、電池又は車内のバッテリー電源から電力が継続して供給されるように構成されている。
次に、制御処理部101の停止時および起動時に実行される処理について、図2を用いて詳細に説明する。図2は、本発明の実施の形態1に係る制御処理部101の停止時および起動時に実行される処理の流れを示すフローチャートである。
ステップS201において、起動制御部100は、制御処理部101の停止処理を開始する。制御処理部101の停止処理は、制御装置10がスリープ状態又は電源オフ状態となる直前に、自動的に実行されるように設定されている。
次に、ステップS202において、起動制御部100は、通信制御部106に対して、現在の通信状態の問い合わせを行う。通信制御部106は、制御装置10と外部機器との通信が有効となっているか否かを確認して、その確認結果を起動制御部100に出力する。
続いて、起動制御部100は、ステップS202において通信が無効(S202:NO)であった場合は、処理をステップS204に進める。一方、起動制御部100は、ステップS202において通信が有効(S202:YES)であった場合は、処理をステップS203に進める。
ステップS203において、起動制御部100は、通信制御部106に対して、通信を無効化する命令を出力する。起動制御部100は、通信制御部106によって通信が無効化されたことを確認した後、処理をS204に進める。
ステップS204において、起動制御部100は、第二の処理環境内の検証値生成部103に対して、検証値を生成する命令を出力する。
検証値生成部103は、不揮発性記憶部102の第一の処理環境内の第一の記憶領域(通常記憶領域)102aから、セキュアブート処理における検証に用いるデータを読み出し、読み出したデータに基づいて検証値を生成する。検証値生成部103は、生成した検証値を、第二の記憶領域(セキュア記憶領域)102bに記憶させる。
例えば、検証値がMAC(Message Authentication Code)であり、第二の処理環境がHSM(Hardware Security Module)である場合、検証値生成部103は、検証値MACを生成する。なお、検証値生成部103は、生成した検証値MACを、第二の記憶領域(セキュア記憶領域)102bに記憶させる。
このように、本実施の形態1に係る制御装置10は、制御処理を停止する前に、ステップS203で通信機能を無効化した後に、ステップS204にてセキュアブート処理(改ざん検出処理)で使用する検証値を生成しておく。
次に、ステップS205において、起動制御部100は、制御処理部101による制御処理の動作を停止させる。制御処理部101の動作停止に伴って、制御装置10は、スリープ状態または電源オフ状態に移行する。ここで、起動制御部100および時間計測部107は、制御装置10がスリープ状態または電源オフ状態であっても、継続して起動するように設定されている。
以上の処理によって、制御処理部101の停止処理は、終了する。この段階で、セキュアブート処理において使用する検証値は、既に生成されており、第二の記憶領域102bに格納された状態となっている。
続いて、制御処理部101の起動処理について説明する。
ステップS206において、時間計測部107は、制御処理部101による制御処理を起動する所定の時刻となったことを、起動指令として、起動制御部100に通知する。ここで、所定の時刻とは、例えば、運転者が日常的に車両のエンジンを始動する時刻の直前(例えば1時間前)とする。または、運転者が選択した時刻を所定の時刻として、設定可能としてもよい。
また、所定の時刻ではなく、ある時刻から所定の時間(例えば1時間〜12時間)が経過したタイミングで、時間計測部107が起動制御部100に起動指令を通知するようにしてもよい。ここで、ある時刻とは、例えば、エンジンが停止した時刻または制御装置10がスリープ又は電源オフとなった時刻とすればよい。また、所定の時間は、運転者が任意の時間を設定可能としてもよい。
次に、ステップS207において、起動制御部100は、制御装置10のスリープ状態を解除または電源オフ状態を解除する。これによって、制御装置10は起動状態となる。
続いて、ステップS207において、起動制御部100は、通信制御部106に対して、通信機能を有効化する命令を出力する。通信制御部106は、起動制御部100からの出力に基づいて、制御装置10と外部との通信機能を、無効状態から有効状態に変更する。
次に、ステップS208において、起動制御部100は、制御装置10に対して、通信線および通信制御部106を介して、外部機器から制御処理の起動要求があったか否かを判断する。そして、起動要求があった場合(S208:YES)には、起動制御部100は、制御処理部101の起動処理を開始する。
一方、ステップS208において、制御処理の起動要求がない場合(S208:NO)には、起動制御部100は、制御処理部101の起動処理を実行しない。ここで、外部機器からの制御処理の起動要求とは、例えば、CAN通信を介して、制御装置10以外の他のECUから出力される起動要求などである。
続いて、制御処理部101の起動処理について説明する。ステップS208において、制御処理の起動を要求された起動制御部100は、第二の処理環境内の検証実行部104に対して、検証を実行する命令を出力する。
ステップS209において、検証実行部104は、第二の記憶領域(セキュア記憶領域)102bから検証値および期待値を読み出し、検証値および期待値が一致するか否かを比較する。なお、この検証値は、ステップS205において制御処理が停止する以前に、ステップS204において第二の記憶領域(セキュア記憶領域)102bに格納された検証値である。比較結果は、第二の処理環境内の検証実行部104から、第一の処理環境内の検証判定部105に出力される。
ステップS210において、検証判定部105は、比較結果から第一の記憶領域(通常記憶領域)102aのデータが改ざんされているか否かを判定する。検証判定部105は、検証判定の結果を、起動制御部100に出力する。
具体的には、検証判定部105は、比較結果において期待値と検証値が一致している場合には、第一の記憶領域(通常記憶領域)102aのデータは改ざんされておらず、検証合格であると判定する(S210:YES)。一方、比較結果において期待値と検証値が一致していない場合には、検証判定部105は、第一の記憶領域(通常記憶領域)102aのデータは改ざんされており、検証不合格であると判定する(S210:NO)。検証判定の結果は、検証判定部105から起動制御部100に出力される。
起動制御部100は、検証判定の結果に基づいて、制御処理部101を起動させるか否かを制御する。検証判定の結果が合格の場合(S210:YES)には、起動制御部100は、制御処理部101を起動させる(S211)。起動された制御処理部101は、制御対象の制御を開始する。
一方、検証判定の結果が不合格の場合(S210:NO)には、起動制御部100は、制御処理部101の起動を中止する(S212)。このようにすることにより、制御処理部101が、改ざんされたデータに基づいて制御対象を制御することを防止することができる。
なお、以上の説明では、ステップS210において検証判定部105が実施する検証判定を、合格・不合格の二段階の判定とした。また、制御処理部101の起動を中止する場合には、制御処理部101の全ての機能の実行を中止するとした。しかしながら、本実施の形態1は、これらのような処理に限られるものではない。
例えば、検証実行結果に基づく検証判定の段階を、検証合格・検証一部不合格の二段階、または、検証合格・検証一部不合格・検証不合格の三段階としてもよい。そして、検証一部不合格と判定された場合には、例えば、起動制御部100は、検証不合格となった一部のデータまたはプログラムに対応する制御処理部101の一部の機能の実行を制限した状態で、制御処理部101の起動を行うようにしてもよい。
具体的には、以下に説明するように、制御プログラムデータ毎に検証を行うことによって、検証合格となった制御プログラムデータに対応する制御処理を実行し、検証不合格となった制御プログラムデータに対応する制御処理を実行しないように制限して、制御処理部101の起動を行うようにすればよい。
第一の記憶領域102aに、複数の制御対象または複数の制御処理に対応した複数の制御プログラムデータが存在する場合が想定される。その場合は、検証値生成部103は、複数の制御用プログラムデータにそれぞれ対応した複数の検証値を生成する。
続いて、検証実行部104は、複数の制御用プログラムデータにそれぞれ対応した複数の検証値と、複数の検証値のそれぞれに対応して予め第二の記憶領域に102bに格納された期待値とを比較する。これらの複数の比較結果は、検証実行部104から検証判定部105に出力される。
検証判定部105は、検証実行部104から出力された複数の比較結果に基づいて、複数の制御用プログラムデータそれぞれについて、検証合格か不合格かを判定する。そして、複数の制御用プログラムデータそれぞれの期待値と検証値が全て一致している場合には、検証判定部105は、第一の記憶領域(通常記憶領域)102aのデータは改ざんされておらず、検証合格であると判定する。一方、複数の制御用プログラムデータそれぞれの期待値と検証値の一部が一致していない場合には、検証判定部105は、第一の記憶領域(通常記憶領域)102aのデータは部分的に改ざんされており、検証一部不合格であると判定する。
続いて、検証判定部105は、検証合格と判定された制御用プログラムデータに対応する制御処理を起動許可制御処理に指定し、検証不合格とされた制御用プログラムデータに対応する制御処理を起動不許可制御処理に指定する。起動制御部100は、検証判定部105によって起動許可制御処理に指定された制御処理に限定して、制御処理部101の起動を実行する。これにより、検証不合格となったプログラムデータに対応する制御処理の実行を制限した状態で、制御処理部101を起動することができる。
なお、以上説明した実施の形態1では、本発明に係る制御装置を車載制御装置として使用する例について説明した。しかしながら、本発明に係る制御装置は、これに限られるものでない。例えば、高いセキュリティ強度を有し、かつ、高速な起動を必要とする、通信線に接続された制御装置に利用することができる。
以上説明した本発明に係る実施の形態1によれば、制御処理に用いるデータが改ざんされているか否かを確認するために行うセキュアブート処理において、以下のような効果が得られる。
従来の制御装置においては、制御処理の起動する前に、セキュアブート処理に用いる検証値を生成していた。これに対して、本実施の形態1に係る制御装置は、制御処理が停止する前に、セキュアブート処理に用いる検証値を生成する構成を備えている。そして、制御処理が起動する前に、予め生成した検証値を用いてセキュアブート処理を行う構成を備えている。
これにより、制御処理を起動する前に行うセキュアブート処理の処理時間を、従来に比べて短縮することができる。
また、このように、セキュアブート処理に用いる検証値を、時間制約の厳しい制御装置の起動の前ではなく、制御装置の停止前に予め生成しておくことにより、検証値生成のための暗号鍵のデータ量を十分に確保することができる。そのため、セキュアブート処理の信頼度を高めることができる。
さらに、本実施の形態1に係る制御装置は、第一の処理環境と、第一の処理環境から隔離された第二の処理環境とを備え、第二の処理環境内でセキュアブート処理に用いる検証値の生成、検証値の格納、およびセキュアブートによる検証を実行する構成を備えている。そして、検証値が格納される第二の記憶領域は、第二の処理環境からのみアクセス可能に設定されている。これにより、セキュアブート処理自体のセキュリティ強度と信頼度を高めることができる。
さらに、本実施の形態1に係る制御装置は、制御装置の通信機能を無効化した状態で、検証値の生成および格納を行う構成を備えている。これにより、通信線を介した外部からの攻撃によるデータの改ざんを防ぐことができる。
さらに、本実施の形態1に係る制御装置は、制御装置の通信状態を、通信無効状態から通信有効状態に復帰させる手段として、制御装置内に時間計測部を備え、時間計測部で計測した所定の時間に基づいて制御装置を通信有効状態とする構成を備えている。これにより、通信線を介した外部からの攻撃を受けることなく、制御装置の通信状態を、通信無効状態から通信有効状態に復帰させることが可能となる。
10 制御装置、100 起動制御部、101 制御処理部、102 不揮発性記憶部、102a 第一の記憶領域(通常記憶領域)、102b 第二の記憶領域(セキュア記憶領域)、103 検証値生成部、104 検証実行部、105 検証判定部、106 通信制御部、107 時間計測部。

Claims (3)

  1. 第一の処理環境と、前記第一の処理環境からハードウェア的に隔離された第二の処理環境と、
    前記第一の処理環境下に、
    制御対象への制御処理を実行する制御処理部と、
    前記制御処理部が前記制御対象の制御のために用いるデータを格納する第一の記憶領域と、
    前記制御処理を実行するか否かを判定する検証判定部と、
    前記制御処理部による前記制御処理の停止および起動を制御する起動制御部と、
    外部機器との通信機能を有する通信制御部と、
    前記制御処理部による前記制御処理を起動する時刻になったことを起動指令として通知する時間計測部と、
    を備え、
    前記第二の処理環境下に、前記第一の記憶領域のデータに基づいて予め生成された期待値を格納する第二の記憶領域と、
    前記第一の記憶領域のデータに基づいて検証値を生成する検証値生成部と、
    前記第一の記憶領域のデータの検証を実行する検証実行部と、
    を備えた制御装置であって、
    前記第二の記憶領域は、前記第一の記憶領域から物理的または論理アドレス的に隔離され、かつ前記第二の処理環境からのみアクセス可能に設定され、
    前記起動制御部は、
    前記制御処理停止処理を開始した後、前記停止処理が終了する前に、前記通信制御部による前記通信機能を無効とし、
    続いて、前記検証値生成部に前記検証値を生成させた後に、前記制御処理部による前記制御処理を停止させ、
    前記制御処理部による前記制御処理を停止させた後に、前記時間計測部から前記起動指令を受信した場合には、前記通信制御部による前記通信機能を有効とし、
    前記通信制御部が前記外部機器から前記制御処理部による前記制御処理を実行するための起動要求を受信した場合には、前記停止処理の終了後、前記制御処理が起動する前に、前記検証実行部による比較処理および前記検証判定部による判定処理を実行させ、
    前記検証値生成部は、前記停止処理が終了する前に、前記検証値を生成し、生成した前記検証値を前記第二の記憶領域に格納し、
    前記検証実行部は、前記停止処理の終了後、前記制御処理が起動する前に、前記期待値と前記検証値との比較処理を実行し、検証合格か検証不合格かを示す比較結果を前記第一の処理環境内の前記検証判定部に送信し、
    前記検証判定部は、
    前記検証実行部から前記検証合格を示す比較結果を受信した場合には、前記制御処理部による前記制御処理を起動する判定処理を実行し、
    前記検証実行部から前記検証不合格を示す比較結果を受信した場合には、前記制御処理部による前記制御処理の起動を中止する判定処理を実行する
    制御装置。
  2. 前記検証実行部は、前記検証値生成部により生成された複数の検証値と、前記第二の記憶領域に格納された複数の期待値とを比較し、それぞれの検証値について検証合格か検証不合格かを示す複数の比較結果を前記第一の処理環境下の前記検証判定部に送信し、
    前記検証判定部は、前記複数の比較結果に基づいて、前記検証合格が得られた検証値に対応する制御処理の実行に限定し、前記制御処理部による前記制御処理の一部の起動を許可する
    請求項に記載の制御装置。
  3. 請求項1又は2に記載の制御装置において実行される制御装置の制御方法であって
    前記検証値生成部が、前記制御処理停止処理を開始した後、前記停止処理が終了する前に、
    前記第一の処理環境下の第一の記憶領域のデータに基づいて検証値を生成するステップと、前記検証値を前記第二の処理環境下の第二の記憶領域に格納するステップと、
    前記検証実行部が、前記停止処理の終了後、前記制御処理が起動する前に、
    前記第一の記憶領域のデータに基づいて予め生成された期待値と前記検証値との比較処理を実行するステップと、
    前記検証判定部が、前記比較処理の比較結果が検証合格の場合には、前記制御処理部による前記制御処理を起動する判定処理を実行するステップと、
    前記検証判定部が、前記比較結果が検証不合格の場合には、前記制御処理部による前記制御処理の起動を中止する判定処理を実行するステップと
    さらに、前記起動制御部が、前記制御処理の停止処理を開始した後、前記停止処理が終了する前に、通信機能を無効とするステップと、
    続いて、前記起動制御部が、前記検証値を生成させた後に、前記制御処理を停止させるステップと、
    前記起動制御部が、前記制御処理を停止させた後に、前記起動指令を受信した場合には、前記通信機能を有効とするステップと、
    前記通信制御部が、前記外部機器から前記制御処理を実行するための起動要求を受信した場合には、前記停止処理の終了後、前記制御処理が起動する前に、前記比較処理および前記判定処理を実行させるステップと、
    を備える制御装置の制御方法。
JP2017194025A 2017-10-04 2017-10-04 制御装置および制御方法 Active JP6463435B1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017194025A JP6463435B1 (ja) 2017-10-04 2017-10-04 制御装置および制御方法
US15/938,044 US10789365B2 (en) 2017-10-04 2018-03-28 Control device and control method
DE102018207504.2A DE102018207504A1 (de) 2017-10-04 2018-05-15 Steuervorrichtung und Steuerverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017194025A JP6463435B1 (ja) 2017-10-04 2017-10-04 制御装置および制御方法

Publications (2)

Publication Number Publication Date
JP6463435B1 true JP6463435B1 (ja) 2019-02-06
JP2019068341A JP2019068341A (ja) 2019-04-25

Family

ID=65270571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017194025A Active JP6463435B1 (ja) 2017-10-04 2017-10-04 制御装置および制御方法

Country Status (3)

Country Link
US (1) US10789365B2 (ja)
JP (1) JP6463435B1 (ja)
DE (1) DE102018207504A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7010543B1 (ja) 2020-11-19 2022-01-26 Necプラットフォームズ株式会社 コンピュータシステム、ソフトウェア改竄検証方法、及び、プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108564A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Reducing the boot time of a TCPA based computing system when the Core Root of Trust Measurement is embedded in the boot block code
JP2010233182A (ja) * 2009-03-30 2010-10-14 Nec Corp 端末装置、端末ネットワークシステム、端末装置のリモート電源制御方法、リモート電源制御プログラム
JP2011100329A (ja) * 2009-11-06 2011-05-19 Hitachi Solutions Ltd コンピュータ
JP2012032925A (ja) * 2010-07-29 2012-02-16 Canon Inc プラットフォーム完全性検証システム
US20130262900A1 (en) * 2004-11-24 2013-10-03 Intellectual Ventures I Llc Systems and methods for waking wireless lan devices
WO2016185577A1 (ja) * 2015-05-20 2016-11-24 富士通株式会社 プログラム検証方法、検証プログラム、及び情報処理装置
JP2017033248A (ja) * 2015-07-31 2017-02-09 パナソニックIpマネジメント株式会社 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024555B2 (en) * 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
EP3043232A1 (en) * 2003-08-26 2016-07-13 Panasonic Intellectual Property Corporation of America Program execution device
JP2009225260A (ja) * 2008-03-18 2009-10-01 Fujitsu Ten Ltd 制御装置、制御方法、車両の制御装置、及び車両の制御システム
EP2711862A1 (en) * 2012-09-19 2014-03-26 ST-Ericsson SA Storing data in a memory of an electronic device
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
CN109789878B (zh) * 2016-10-03 2022-04-29 日立安斯泰莫株式会社 车载电子控制装置
US10565130B2 (en) * 2017-09-25 2020-02-18 Intel Corporation Technologies for a memory encryption engine for multiple processor usages
US11088846B2 (en) * 2019-03-28 2021-08-10 Intel Corporation Key rotating trees with split counters for efficient hardware replay protection

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108564A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Reducing the boot time of a TCPA based computing system when the Core Root of Trust Measurement is embedded in the boot block code
US20130262900A1 (en) * 2004-11-24 2013-10-03 Intellectual Ventures I Llc Systems and methods for waking wireless lan devices
JP2010233182A (ja) * 2009-03-30 2010-10-14 Nec Corp 端末装置、端末ネットワークシステム、端末装置のリモート電源制御方法、リモート電源制御プログラム
JP2011100329A (ja) * 2009-11-06 2011-05-19 Hitachi Solutions Ltd コンピュータ
JP2012032925A (ja) * 2010-07-29 2012-02-16 Canon Inc プラットフォーム完全性検証システム
WO2016185577A1 (ja) * 2015-05-20 2016-11-24 富士通株式会社 プログラム検証方法、検証プログラム、及び情報処理装置
JP2017033248A (ja) * 2015-07-31 2017-02-09 パナソニックIpマネジメント株式会社 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Also Published As

Publication number Publication date
US10789365B2 (en) 2020-09-29
DE102018207504A1 (de) 2019-04-04
JP2019068341A (ja) 2019-04-25
US20190102557A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
US8533492B2 (en) Electronic device, key generation program, recording medium, and key generation method
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
US9792440B1 (en) Secure boot for vehicular systems
JP6422059B2 (ja) 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
JP6659180B2 (ja) 制御装置および制御方法
JP5937109B2 (ja) 車両の防犯のための方法及び機関制御システム
JPWO2009013825A1 (ja) 情報処理装置、及び改竄検証方法
JP6387908B2 (ja) 認証システム
JP2016099837A (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP2014048800A (ja) 認証システムおよび認証方法
CN118051919B (zh) 数据处理方法、芯片、电子设备以及存储介质
US11366911B2 (en) Cryptography module and method for operating same
JP6463435B1 (ja) 制御装置および制御方法
CN113190880B (zh) 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作
CN113641463A (zh) 虚拟化系统可信认证方法、系统及计算机可读存储介质
CN117349849A (zh) 芯片启动方法和芯片
US12039050B2 (en) Information processing device
JP4621732B2 (ja) 車両外部の装置を認証するための方法、制御機器を有する自動車両のバスシステム及び車両外部の装置を認証するためのコンピュータ・プログラム
CN112219186B (zh) 用于将程序代码包安装到设备中的方法以及设备和机动车
US20230205887A1 (en) Secure automotive system
JP6698778B2 (ja) 制御システム
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
US11036846B2 (en) Control device
JP6461272B1 (ja) 制御装置
JP2023510122A (ja) インタフェースを備える装置およびインタフェースを備える装置の動作方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181101

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181228

R150 Certificate of patent or registration of utility model

Ref document number: 6463435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350