(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022133908
(43)【公開日】2022-09-14
(54)【発明の名称】制御装置
(51)【国際特許分類】
G06F 21/57 20130101AFI20220907BHJP
G06F 21/64 20130101ALI20220907BHJP
【FI】
G06F21/57 320
G06F21/64
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021032856
(22)【出願日】2021-03-02
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002572
【氏名又は名称】特許業務法人平木国際特許事務所
(72)【発明者】
【氏名】森田 伸義
(72)【発明者】
【氏名】矢野 正
(72)【発明者】
【氏名】金子 周平
(72)【発明者】
【氏名】藤井 康広
(72)【発明者】
【氏名】片岡 幹雄
(72)【発明者】
【氏名】野村 晃啓
(57)【要約】
【課題】複数の演算処理装置を備える制御装置の安全な起動を容易に実現することを目的とする。
【解決手段】制御装置5は、第1プログラムを実行するプロセッサを含む第1マイコン1と、第2プログラムを実行するプロセッサを含む第2マイコン2と、第2プログラムが格納された記憶装置3と、を備える。第1マイコン1は、第1プログラム及び第2プログラムのそれぞれの改竄有無を検証する検証部1221と、検証部1221により第1プログラムの改竄が無いと検証された場合に、記憶装置3から第2プログラムを取得する第1取得部1126とを有する。第1マイコン1は、検証部1221により第2プログラムの改竄が無いと検証された場合に、第2プログラムの起動許可を第2マイコン2に通知する起動許可通知部1124を有する。第2マイコン2は、記憶装置3から第2プログラムを取得する第2取得部222と、起動許可が通知された場合に、第2プログラムを起動させる起動実行部221とを有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1プログラムを実行するプロセッサを含む第1演算処理装置と、第2プログラムを実行するプロセッサを含む第2演算処理装置と、前記第2プログラムが格納された記憶装置と、を備える制御装置であって、
前記第1演算処理装置は、
前記第1プログラム及び前記第2プログラムのそれぞれの改竄有無を検証する検証部と、
前記検証部により前記第1プログラムの改竄が無いと検証された場合に、前記記憶装置から前記第2プログラムを取得する第1取得部と、
前記検証部により前記第2プログラムの改竄が無いと検証された場合に、前記第2演算処理装置が前記第2プログラムを起動することを許可する起動許可を、前記第2演算処理装置に通知する起動許可通知部と、を有し、
前記第2演算処理装置は、
前記記憶装置から前記第2プログラムを取得する第2取得部と、
前記起動許可が通知された場合に、前記第2プログラムを起動させる起動実行部と、を有する
ことを特徴とする制御装置。
【請求項2】
前記第1演算処理装置は、耐タンパ性を有するセキュア領域を有し、
前記第2演算処理装置は、プログラムの書き換えが不可能なOTP領域を有し、
前記検証部は、前記セキュア領域に格納され、
前記第2取得部及び前記起動実行部は、前記OTP領域に格納されている
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記起動実行部は、前記第2取得部が前記第2プログラムを取得した後、前記起動許可が通知されるまで、前記第2演算処理装置を待機状態に移行させる
ことを特徴とする請求項2に記載の制御装置。
【請求項4】
前記セキュア領域は、プログラムの書き換えが可能な領域であり、
前記第1演算処理装置は、前記セキュア領域に格納された更新対象を、更新パッケージによって更新する更新部を有し、
前記検証部は、前記更新パッケージの改竄有無を検証し、
前記更新部は、前記検証部により前記更新パッケージの改竄が無いと検証された場合に、前記更新パッケージによって前記更新対象を更新する
ことを特徴とする請求項2に記載の制御装置。
【請求項5】
前記第1演算処理装置は、前記検証部により前記第1プログラムの改竄が無いと検証された場合に、前記第2演算処理装置が前記記憶装置から前記第2プログラムを取得することを許可する取得許可を、前記第2演算処理装置に通知する取得許可通知部を有し、
前記取得許可通知部は、前記起動許可通知部が前記起動許可を前記第2演算処理装置に通知する前に、前記取得許可を前記第2演算処理装置に通知し、
前記第2取得部は、前記取得許可が通知された場合に、前記記憶装置から前記第2プログラムを取得する
ことを特徴とする請求項2に記載の制御装置。
【請求項6】
前記起動実行部は、前記制御装置の電源投入後、前記取得許可が通知されるまで、前記第2演算処理装置を待機状態に移行させる
ことを特徴とする請求項5に記載の制御装置。
【請求項7】
前記第1演算処理装置は、耐タンパ性を有するセキュア領域と、プログラムの書き換えが不可能なOTP領域とを有し、
前記第2演算処理装置は、プログラムの書き換えが不可能なOTP領域を有し、
前記記憶装置は、前記第1プログラム及び前記第2プログラムを格納し、
前記検証部は、前記セキュア領域に格納され、
前記第1取得部は、前記第1演算処理装置の前記OTP領域に格納され、前記記憶装置から前記第1プログラムを取得し、
前記第2取得部及び前記起動実行部は、前記第2演算処理装置の前記OTP領域に格納されている
ことを特徴とする請求項1に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置に関する。
【背景技術】
【0002】
例えば、車両を制御する車載用の制御装置には、マイクロコントローラ(以下、マイコン)等の演算処理装置が起動時にプログラムの安全性を検証するセキュアブート機能が搭載されている。セキュアブート機能の安全性を向上させるためには、HSM(Hardware Security Module)のような耐タンパ性が担保された専用モジュールのセキュリティ機能を演算処理装置に搭載することが好ましい。一方、制御装置は、複数の演算処理装置を備えるので、複数の演算処理装置の全てにHSMのようなセキュリティ機能を搭載した場合、制御装置のコストが大幅に増加してしまう。
【0003】
複数の演算処理装置の全てにHSMのようなセキュリティ機能を搭載せずに制御装置の安全な起動を実現する技術として、例えば、特許文献1に開示された技術が知られている。特許文献1は、2つの演算処理装置を備える装置のセキュアブート技術を開示しており、一方の演算処理装置が他方の演算処理装置において実行されるプログラムの改竄有無を起動時に検証する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1は、一方の演算処理装置において実行されるプログラム自体の検証機能については開示していない。特許文献1に開示された技術では、一方の演算処理装置において実行されるプログラム自体が改竄されたとしても、これを検出することは難しい。よって、特許文献1に開示された技術は、装置の安全な起動を容易に実現する点において、改善の余地がある。
【0006】
本発明は、上記に鑑みてなされたものであり、複数の演算処理装置を備える制御装置の安全な起動を容易に実現することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の制御装置は、第1プログラムを実行するプロセッサを含む第1演算処理装置と、第2プログラムを実行するプロセッサを含む第2演算処理装置と、前記第2プログラムが格納された記憶装置と、を備える制御装置であって、前記第1演算処理装置は、前記第1プログラム及び前記第2プログラムのそれぞれの改竄有無を検証する検証部と、前記検証部により前記第1プログラムの改竄が無いと検証された場合に、前記記憶装置から前記第2プログラムを取得する第1取得部と、前記検証部により前記第2プログラムの改竄が無いと検証された場合に、前記第2演算処理装置が前記第2プログラムを起動することを許可する起動許可を、前記第2演算処理装置に通知する起動許可通知部と、を有し、前記第2演算処理装置は、前記記憶装置から前記第2プログラムを取得する第2取得部と、前記起動許可が通知された場合に、前記第2プログラムを起動させる起動実行部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、複数の演算処理装置を備える制御装置の安全な起動を容易に実現することができる。
上記以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】実施形態1の制御装置の機能的構成を示す図。
【
図2】
図1に示す制御装置の起動処理の流れを示すシーケンス。
【
図3】
図1に示す制御装置の更新処理の流れを示すフローチャート。
【
図4】実施形態2の制御装置の機能的構成を示す図。
【
図5】
図4に示す制御装置の起動処理の流れを示すシーケンス。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を用いて説明する。なお、各実施形態において同一の符号を付された構成は、特に言及しない限り、各実施形態において同様の機能を有し、その説明を省略する。
【0011】
[実施形態1]
本実施形態では、マイコン等の演算処理装置が起動時にプログラムの安全性を検証するセキュアブート機能を搭載した制御装置の一例について説明する。しかしながら、本発明の技術的思想は、暗号処理や電子署名の検証処理等の情報セキュリティ技術に広く適用することができる。
【0012】
制御装置5は、制御対象を電気的に制御する装置である。制御装置5の制御対象は、特に限定されない。制御装置5の制御対象は、自動車等の製品寿命が比較的長い機械又は機器であってもよい。例えば、制御装置5は、車載用のECUによって構成されてもよい。
【0013】
図1は、実施形態1の制御装置5の機能的構成を示す図である。
【0014】
制御装置5は、第1マイコン1と、第2マイコン2と、記憶装置3とを備える。記憶装置3は、通信バス4を介して、第1マイコン1及び第2マイコン2のそれぞれに接続される。但し、通信バス4は、物理的には複数の通信バスによって構成される。通信バス4を構成する複数の通信バスの規格は、全て同一であってもよいし、異なっていてもよい。当該規格は、例えば、SPI(Serial Peripheral Interface)やMII(Media Independent Interface)等である。
【0015】
なお、第1マイコン1は、特許請求の範囲に記載された「第1演算処理装置」の一例である。第2マイコン2は、特許請求の範囲に記載された「第2演算処理装置」の一例である。
【0016】
第1マイコン1は、互いにバス線115によって結線された、メイン制御部111と、メインプログラム記憶部112と、メインデータ記憶部113と、通信部114とを備える。本実施形態では、第1マイコン1のこれらの構成要素が所属する領域及びバス線115を、「メイン領域11」とも称する。
【0017】
更に、第1マイコン1は、互いにバス線125によって結線された、セキュア制御部123と、セキュアプログラム記憶部122と、セキュアデータ記憶部121とを備える。本実施形態では、第1マイコン1のこれらの構成要素が所属する領域及びバス線125を、「セキュア領域12」とも称する。
【0018】
メイン領域11は、第1マイコン1においてセキュア領域12以外の領域である。セキュア領域12は、耐タンパ性を有する領域である。すなわち、第1マイコン1は、耐タンパ性を有するセキュア領域12と、セキュア領域12以外の領域であるメイン領域11とを有する。また、セキュア領域12は、プログラム及びデータの書き換えが可能な領域である。
【0019】
メイン領域11のバス線115とセキュア領域12のバス線125とは、安全性の担保の観点から直接的に接続されておらず、セキュア制御部123を介して間接的に接続されている。メイン領域11とセキュア領域12の間におけるコマンド及びデータの送受信は、セキュア制御部123を介して行われる。
【0020】
メイン制御部111は、プロセッサ(CPU、MPU又はDSP)を有しており、メインプログラム記憶部112に格納されたプログラムを実行する。なお、メイン制御部111は、特許請求の範囲に記載された「第1演算処理装置」に含まれる「プロセッサ」の一例である。
【0021】
メインプログラム記憶部112は、メイン制御部111が実行するプログラムを格納する。メインデータ記憶部113は、メイン制御部111がプログラムを実行するときに使用するデータを格納する。メインプログラム記憶部112及びメインデータ記憶部113のそれぞれは、フラッシュメモリ、EEPROM、SSD、FRAM(登録商標、以下同じ)又は磁気ディスクのような、不揮発性の記憶装置によって構成される。メインプログラム記憶部112及びメインデータ記憶部113のそれぞれは、複数の記憶装置によって構成されてもよい。メインプログラム記憶部112は、複数の記憶装置に分散してプログラムを格納してもよい。メインデータ記憶部113は、複数の記憶装置に分散してデータを格納してもよい。
【0022】
メインプログラム記憶部112及びメインデータ記憶部113のそれぞれは、不揮発性の記憶装置であるROMと、揮発性の記憶装置であるRAMとを有するメモリであってもよい。ROMは、不変のプログラムを格納する。RAMは、DRAMのような高速且つ揮発性の記憶装置であってもよく、メイン制御部111が実行するプログラムと、当該プログラムの実行時に使用されるデータとを一時的に格納することができる。メインプログラム記憶部112及びメインデータ記憶部113は、その一部又は全部を互いの構成要素として有してもよい。デバイスとして明確な区別が無くても、メインプログラム記憶部112は、プログラムを格納している部分であり、メインデータ記憶部113は、データを格納している部分であればよい。
【0023】
メインプログラム記憶部112は、メイン制御プログラム1121と、第1検証期待値1122と、メイン更新部1123と、起動許可通知部1124と、取得許可通知部1125と、第1取得部1126とを格納する。メイン制御プログラム1121、メイン更新部1123、起動許可通知部1124、取得許可通知部1125及び第1取得部1126は、メイン制御部111が実行するプログラムであり、制御装置5における第1マイコン1としての機能を実現するためのプログラムである。
【0024】
本実施形態では、メインプログラム記憶部112に格納された、メイン制御部111が実行するプログラムを、「第1プログラム」とも称する。第1プログラムは、例えば、メイン制御プログラム1121、メイン更新部1123、起動許可通知部1124、取得許可通知部1125及び第1取得部1126である。また、本実施形態では、記憶装置3の第2マイコン用記憶領域31に格納された、制御部21が実行するプログラムを、「第2プログラム」とも称する。第2プログラムは、例えば、制御プログラム311である。
【0025】
メイン制御プログラム1121は、制御装置5が制御対象を制御するためのプログラムであって、第1マイコン1のメイン制御部111によって実行されるプログラムである。メイン制御プログラム1121は、制御装置5としての複数の制御機能を実現するために、複数あってもよい。第1検証期待値1122は、第1プログラムの改竄有無を検証する処理において算出されることが期待される値である。第1検証期待値1122は、第1マイコン1が読み出すことができる場所に格納されていればよい。第1検証期待値1122は、例えば、メインデータ記憶部113、セキュアデータ記憶部121、セキュアプログラム記憶部122の何れかに格納されてもよい。
【0026】
第1取得部1126は、検証部1221により第1プログラムの改竄が無いと検証された場合に、記憶装置3から第2マイコン用記憶領域31に格納された第2プログラム及び第2検証期待値312を取得する。取得許可通知部1125は、検証部1221により第1プログラムの改竄が無いと検証された場合に、第2マイコン2が記憶装置3から第2プログラムを取得することを許可する取得許可を、第2マイコン2に通知する。取得許可通知部1125は、起動許可通知部1124が起動許可を第2マイコン2に通知する前に、取得許可を第2マイコン2に通知する。起動許可通知部1124は、検証部1221により第2プログラムの改竄が無いと検証された場合に、第2マイコン2が第2プログラムを起動することを許可する起動許可を、第2マイコン2に通知する。
【0027】
メイン更新部1123は、検証部1221により更新パッケージの改竄が無いと検証された場合に、メインプログラム記憶部112若しくはメインデータ記憶部113又は記憶装置3の第2マイコン用記憶領域31に格納された更新対象のプログラム又はデータを、更新パッケージによって更新する。更に、メイン更新部1123は、検証部1221により更新パッケージの改竄が無いと検証された場合に、セキュア更新部1223と連携して、セキュアプログラム記憶部122又はセキュアデータ記憶部121に格納された更新対象のプログラム又はデータを、更新パッケージによって更新する。
【0028】
更新対象は、更新の対象として予め定められたプログラム又はデータである。更新パッケージは、更新対象を更新するためのプログラム又はデータである。更新パッケージは、更新パッケージの改竄有無を検証する処理において算出されることが期待される検証期待値を含む。更新パッケージは、センタサーバ又は端末等の制御装置5の外部装置から、制御装置5に送信される。
【0029】
メインデータ記憶部113は、特に図示していないが、制御データを格納する。この制御データは、メイン制御部111によって実行されるメイン制御プログラム1121、メイン更新部1123、起動許可通知部1124、取得許可通知部1125、第1取得部1126が処理に使用するデータであり、制御装置5における第1マイコン1としての機能を実現させるためのデータである。この制御データは、用途に応じて複数あってもよい。
【0030】
通信部114は、第1マイコン1が、第2マイコン2を含む制御装置5の他の構成要素と通信する機能と、制御装置5の外部装置と通信する機能とを有する。通信部114は、SPI、MII、CAN、CAN FD、Ethernet又はFlexRay等の規格に準拠した通信モジュールによって構成されてもよい。通信部114は、用途及び通信方式に応じて複数の通信部によって構成されてもよい。通信部114は、他の通信を行う通信モジュールとの共用であってもよい。なお、通信部114は、無線通信を行う場合、アンテナ及び変復調回路を含んで構成される。通信部114は、有線通信を行う場合、コネクタ及び変復調回路を含んで構成される。
【0031】
セキュア制御部123は、HSM、SHE若しくはTPM等のセキュアマイコン、又は、セキュアコアと称されるプロセッサ(CPU、MPU若しくはDSP)によって構成される。セキュア制御部123は、セキュアプログラム記憶部122に格納されたプログラムを実行する。セキュア制御部123は、耐タンパ性を有する。なお、セキュア制御部123を構成するHSM、SHE又はTPMは、セキュアプログラム記憶部122及びセキュアデータ記憶部121を含んで構成されてもよい。
【0032】
セキュアプログラム記憶部122は、セキュア制御部123が実行するプログラムを格納する。セキュアデータ記憶部121は、セキュア制御部123がプログラムを実行するときに使用するデータを格納する。セキュアプログラム記憶部122及びセキュアデータ記憶部121のそれぞれは、耐タンパ性を有する。セキュアプログラム記憶部122及びセキュアデータ記憶部121のそれぞれは、フラッシュメモリ、EEPROM、SSD、FRAM又は磁気ディスクのような、不揮発性の記憶装置によって構成される。セキュアプログラム記憶部122及びセキュアデータ記憶部121のそれぞれは、複数の記憶装置によって構成されてもよい。セキュアプログラム記憶部122は、複数の記憶装置に分散してプログラムを格納してもよい。セキュアデータ記憶部121は、複数の記憶装置に分散してプログラムを格納してもよい。
【0033】
セキュアプログラム記憶部122及びセキュアデータ記憶部121のそれぞれは、不揮発性の記憶装置であるROMと、揮発性の記憶装置であるRAMとを有するメモリであってもよい。ROMは、不変のプログラムを格納する。RAMは、DRAMのような高速且つ揮発性の記憶装置であってもよく、セキュア制御部123が実行するプログラムと、当該プログラムの実行時に使用されるデータとを一時的に格納することができる。セキュアプログラム記憶部122及びセキュアデータ記憶部121は、その一部又は全部を互いの構成要素として有してもよい。デバイスとして明確な区別が無くても、セキュアプログラム記憶部122は、プログラムを格納している部分であり、セキュアデータ記憶部121は、データを格納している部分であればよい。
【0034】
セキュアプログラム記憶部122は、検証部1221と、暗号処理部1222と、セキュア更新部1223とを格納する。検証部1221、暗号処理部1222及びセキュア更新部1223は、セキュア制御部123が実行するプログラムであり、第1マイコン1に搭載された制御装置5のセキュリティ機能を実現するためのプログラムである。
【0035】
検証部1221は、メイン領域11に格納されたプログラムの改竄有無を検証する。すなわち、検証部1221は、第1プログラムの改竄有無を検証する。具体的には、検証部1221は、第1プログラムのうちの検証範囲情報1212に該当するプログラムを取得する。検証部1221は、この検証範囲情報1212に該当するプログラムの改竄有無を検証する検証値を算出する所定のアルゴリズムと暗号鍵1211とに基づいて、この検証範囲情報1212に該当するプログラムから検証値を算出する。そして、検証部1221は、算出された検証値と第1検証期待値1122とを比較する。検証部1221は、算出された検証値と第1検証期待値1122とが一致する場合、第1プログラムの改竄が無いと判断し、一致しない場合、第1プログラムの改竄が無いとは判断できないと判断する。
【0036】
更に、検証部1221は、記憶装置3の第2マイコン用記憶領域31に格納されたプログラムの改竄有無を検証する。すなわち、検証部1221は、第2プログラムの改竄有無を検証する。具体的には、検証部1221は、第2プログラムのうちの検証範囲情報1212に該当するプログラムを取得する。検証部1221は、この検証範囲情報1212に該当するプログラムの改竄有無を検証する検証値を算出する所定のアルゴリズムと暗号鍵1211とに基づいて、この検証範囲情報1212に該当するプログラムから検証値を算出する。そして、検証部1221は、算出された検証値と第2検証期待値312とを比較する。検証部1221は、算出された検証値と第2検証期待値312とが一致する場合、第2プログラムの改竄が無いと判断し、一致しない場合、第2プログラムの改竄が無いとは判断できないと判断する。
【0037】
更に、検証部1221は、更新パッケージの改竄有無を検証する。具体的には、検証部1221は、更新パッケージに含まれる検証期待値を取得すると共に、更新パッケージのうちの検証範囲情報1212に該当するプログラム又はデータを取得する。検証部1221は、この検証範囲情報1212に該当するプログラム又はデータの改竄有無を検証する検証値を算出する所定のアルゴリズムと暗号鍵1211とに基づいて、この検証範囲情報1212に該当するプログラム又はデータから検証値を算出する。そして、検証部1221は、算出された検証値と更新パッケージに含まれる検証期待値とを比較する。検証部1221は、算出された検証値と更新パッケージに含まれる検証期待値とが一致する場合、更新パッケージの改竄が無いと判断し、一致しない場合、更新パッケージの改竄が無いとは判断できないと判断する。
【0038】
検証部1221によって行われる上記の各検証処理は、共通鍵を用いたMAC(Message Authentication Code;メッセージ認証符号)による検証処理であってもよいし、公開鍵を用いたRSA(Rivest-Shamir-Adleman cryptosystem)による検証処理であってもよいし、電子署名を用いたECDSA(Elliptic Curve Digital Signature Algorithm)等による検証処理であってもよい。
【0039】
暗号処理部1222は、所定のデータを暗号化する暗号処理、又は、暗号化されたデータを復号化する復号処理を行う。セキュア更新部1223は、メイン更新部1123と連携し、セキュアプログラム記憶部122又はセキュアデータ記憶部121に格納された更新対象のプログラム又はデータを、更新パッケージによって更新する。なお、セキュア領域12に格納された更新対象を更新するメイン更新部1123及びセキュア更新部1223は、特許請求の範囲に記載された「更新部」の一例である。
【0040】
セキュアデータ記憶部121は、暗号鍵1211と、検証範囲情報1212とを格納する。暗号鍵1211は、検証部1221によって行われる検証処理に用いられる暗号鍵のデータである。暗号鍵1211は、用途に応じて複数あってもよい。検証範囲情報1212は、検証部1221が検証対象とするプログラム又はデータを示す情報である。検証範囲情報1212は、アドレス情報であってもよい。例えば、第1プログラムの改竄有無の検証に用いられる検証範囲情報1212は、第1プログラムに該当する一部又は全部のプログラムの一部又は全部の格納先を指定するアドレス情報である。例えば、第2プログラムの改竄有無の検証に用いられる検証範囲情報1212は、第2プログラムに該当する一部又は全部のプログラムの一部又は全部の格納先を指定するアドレス情報である。例えば、更新パッケージの改竄有無の検証に用いられる検証範囲情報1212は、更新パッケージの一部若しくは全部のプログラム又はデータの一部若しくは全部の格納先を指定するアドレス情報である。
【0041】
セキュアデータ記憶部121は、特に図示していないが、セキュア制御データを格納する。このセキュア制御データは、セキュア制御部123によって実行される検証部1221、暗号処理部1222、セキュア更新部1223が処理に使用するデータであり、第1マイコン1に搭載された制御装置5のセキュリティ機能を実現させるためのデータである。このセキュア制御データは、用途に応じて複数あってもよい。
【0042】
第2マイコン2は、互いにバス線25によって結線された、制御部21と、プログラム記憶部22と、データ記憶部23と、通信部24とを備える。
【0043】
制御部21は、プロセッサ(CPU、MPU又はDSP)を有しており、プログラム記憶部22に格納されたプログラムと、記憶装置3の第2マイコン用記憶領域31に格納された制御プログラム311とを実行する。なお、制御部21は、特許請求の範囲に記載された「第2演算処理装置」に含まれる「プロセッサ」の一例である。
【0044】
プログラム記憶部22は、制御部21が実行するプログラムを格納する。データ記憶部23は、制御部21がプログラムを実行するときに使用するデータを格納する。プログラム記憶部22及びデータ記憶部23のそれぞれは、フラッシュメモリ、EEPROM、SSD、FRAM又は磁気ディスクのような、不揮発性の記憶装置によって構成される。プログラム記憶部22及びデータ記憶部23のそれぞれは、複数の記憶装置によって構成されてもよい。プログラム記憶部22は、複数の記憶装置に分散してプログラムを格納してもよい。データ記憶部23は、複数の記憶装置に分散してデータを格納してもよい。
【0045】
プログラム記憶部22及びデータ記憶部23のそれぞれは、不揮発性の記憶装置であるROMと、揮発性の記憶装置であるRAMとを有するメモリであってもよい。ROMは、不変のプログラムを格納する。RAMは、DRAMのような高速且つ揮発性の記憶装置であってもよく、制御部21が実行するプログラムと、当該プログラムの実行時に使用されるデータとを一時的に格納することができる。プログラム記憶部22及びデータ記憶部23は、その一部又は全部を互いの構成要素として有してもよい。デバイスとして明確な区別が無くても、プログラム記憶部22は、プログラムを格納している部分であり、データ記憶部23は、データを格納している部分であればよい。
【0046】
プログラム記憶部22は、起動実行部221と、第2取得部222とを格納する。起動実行部221及び第2取得部222は、制御部21が実行するプログラムであり、制御装置5における第2マイコン2としての機能を実現するためのプログラムである。
【0047】
起動実行部221及び第2取得部222は、不正に書き換えられることを防止するために、OTP(One Time Programable)領域に格納される。OTP領域は、一度しかプログラムを書き込むことができず、一度プログラムを書き込むと、異なるプログラムに書き換えることが不可能な記憶領域である。すなわち、第2マイコン2は、プログラム記憶部22において、プログラムの書き換えが不可能なOTP領域を有する。起動実行部221及び第2取得部222は、OTP領域に格納されている。
【0048】
第2取得部222は、所定のタイミングにおいて、記憶装置3の第2マイコン用記憶領域31に格納されたプログラムを取得する。具体的には、第2取得部222は、第1マイコン1から上記の取得許可が通知された場合に、記憶装置3の第2マイコン用記憶領域31から第2プログラムを取得する。第2取得部222は、取得された第2プログラムを、第2マイコン2の所定の記憶領域に展開して格納する。第2取得部222は、記憶装置3の第2マイコン用記憶領域31から第2プログラムを取得する際、当該第2マイコン用記憶領域31に格納されたデータを取得してもよい。
【0049】
起動実行部221は、所定のタイミングにおいて、記憶装置3の第2マイコン用記憶領域31に格納されたプログラムを起動させる。具体的には、起動実行部221は、第1マイコン1から上記の起動許可が通知された場合に、記憶装置3の第2マイコン用記憶領域31から取得された第2プログラムを起動させる。また、起動実行部221は、制御装置5の電源投入後、第1マイコン1から上記の取得許可が通知されるまで、第2マイコン2を待機状態に移行させる。起動実行部221は、第2取得部222が第2プログラムを取得した後、第1マイコン1から上記の起動許可が通知されるまで、第2マイコン2を待機状態に移行させる。
【0050】
データ記憶部23は、特に図示していないが、制御データを格納する。この制御データは、制御部21によって実行される制御プログラム311、起動実行部221、第2取得部222が処理に使用するデータであり、制御装置5における第2マイコン2としての機能を実現させるためのデータである。この制御データは、用途に応じて複数あってもよい。
【0051】
通信部24は、第2マイコン2が、第1マイコン1を含む制御装置5の他の構成要素と通信する機能と、制御装置5の外部装置と通信する機能とを有する。通信部24は、SPI、MII、CAN、CAN FD、Ethernet又はFlexRay等の規格に準拠した通信モジュールによって構成されてもよい。通信部24は、用途及び通信方式に応じて複数の通信部によって構成されてもよい。通信部24は、他の通信を行う通信モジュールとの共用であってもよい。なお、通信部24は、無線通信を行う場合、アンテナ及び変復調回路を含んで構成される。通信部24は、有線通信を行う場合、コネクタ及び変復調回路を含んで構成される。
【0052】
記憶装置3は、フラッシュメモリ、EEPROM、SSD、FRAM又は磁気ディスクのような、不揮発性の記憶装置によって構成される。記憶装置3は、第2マイコン用記憶領域31を有する。第2マイコン用記憶領域31は、第2プログラムである制御プログラム311と、第2検証期待値312とを格納する。
【0053】
制御プログラム311は、制御装置5が制御対象を制御するためのプログラムであって、第2マイコン2の制御部21によって実行されるプログラムである。制御プログラム311は、第2マイコン2の所定の記憶領域に展開され、起動実行部221に従って制御部21により実行される。制御プログラム311は、第1マイコン1及び第2マイコン2の何れもが読み出すことができる場所に格納されていればよい。第2検証期待値312は、第2プログラムの改竄有無を検証する処理において算出されることが期待される値である。第2検証期待値312は、第1マイコン1が読み出すことができる場所に格納されていればよい。第2検証期待値312は、例えば、メインデータ記憶部113、セキュアデータ記憶部121、セキュアプログラム記憶部122の何れかに格納されてもよい。
【0054】
なお、制御装置5には、第2マイコン2と同様の構成を有するマイコンが複数備わっていてもよい。この場合、記憶装置3には、複数の制御プログラム311と、複数の第2検証期待値312とが格納される。
【0055】
図2は、
図1に示す制御装置5の起動処理の流れを示すシーケンスである。
【0056】
図2の説明において、メインプログラム記憶部112に格納されたプログラムの実行主体はメイン制御部111であり、セキュアプログラム記憶部122に格納されたプログラムの実行主体はセキュア制御部123であるものとする。プログラム記憶部22及び第2マイコン用記憶領域31に格納されたプログラムの実行主体は、制御部21であるものとする。
【0057】
図2に記載された矢印は、コマンド及びデータの概念的な流れを示すものであり、通信方向又は指令方向を限定するものではない。
図2に示す起動処理には、
図2に記載された矢印以外のコマンド及びデータの流れが含まれていてもよい。
【0058】
図2に示す起動処理は、制御装置5の電源投入後に開始される。制御装置5の電源は、例えば、制御装置5の制御対象である車両等のイグニッションスイッチがONされたことによって投入される。
【0059】
ステップS101において、第1マイコン1は、検証部1221を用いて、メイン領域11に格納されたプログラムの改竄有無を検証する。例えば、第1マイコン1は、検証範囲情報1212が示すアドレスに該当するプログラムを取得して検証値を算出し、第1検証期待値1122と比較する。第1マイコン1は、算出された検証値と第1検証期待値1122とが一致する場合、第1プログラムの改竄が無いと判断し、検証OK(検証成功)と判断する。一方、第1マイコン1は、算出された検証値と第1検証期待値1122とが一致しない場合、第1プログラムの改竄が無いとは判断できず、検証NG(検証不成功)と判断する。
【0060】
ステップS102において、第1マイコン1は、ステップS101において検証OKと判断した場合、ステップS104へ移行する。一方、第1マイコン1は、ステップS101において検証NGと判断した場合、ステップS103へ移行する。
【0061】
ステップS103において、第1マイコン1は、検証部1221を用いて、予め定められたエラー処理を実行する。例えば、第1マイコン1は、エラー処理として、ステップS101の検証処理を再実行したり、第1マイコン1の特定の機能を制限する縮退運転を実行するように設定したり、制御装置5の起動を全面的に停止したりする。更に、第1マイコン1は、検証NGであること、又は、これらのエラー処理を実行することを報知することができる。
【0062】
ステップS104において、第1マイコン1は、第1取得部1126を用いて、記憶装置3から第2マイコン用記憶領域31に格納された第2プログラム及び第2検証期待値312を取得する。
【0063】
ステップS105において、第1マイコン1は、取得許可通知部1125を用いて、第2プログラムの取得許可を第2マイコン2に通知する。
【0064】
ステップS106において、第1マイコン1は、検証部1221を用いて、ステップS104において取得した第2プログラムの改竄有無を検証する。例えば、第1マイコン1は、検証範囲情報1212が示すアドレスに該当するプログラムを取得して検証値を算出し、第2検証期待値312と比較する。第1マイコン1は、算出された検証値と第2検証期待値312とが一致する場合、第2プログラムの改竄が無いと判断し、検証OK(検証成功)と判断する。一方、第1マイコン1は、算出された検証値と第2検証期待値312とが一致しない場合、第2プログラムの改竄が無いとは判断できず、検証NG(検証不成功)と判断する。
【0065】
ステップS107において、第1マイコン1は、ステップS106において検証OKと判断した場合、ステップS109へ移行する。一方、第1マイコン1は、ステップS106において検証NGと判断した場合、ステップS108へ移行する。
【0066】
ステップS108において、第1マイコン1は、検証部1221を用いて、予め定められたエラー処理を実行する。例えば、第1マイコン1は、エラー処理として、ステップS106の検証処理を再実行したり、第2マイコン2の特定の機能を制限する縮退運転を実行するように設定したり、制御装置5の起動を全面的に停止したりする。更に、第1マイコン1は、検証NGであること、又は、これらのエラー処理を実行することを報知することができる。
【0067】
ステップS109において、第1マイコン1は、起動許可通知部1124を用いて、第2マイコン2の起動許可を第2マイコン2に通知する。
【0068】
ステップS201において、第2マイコン2は、起動実行部221を用いて、第2プログラムの取得許可が第1マイコン1から通知されるまで、待機状態に移行する。
【0069】
ステップS202において、第2マイコン2は、第2プログラムの取得許可が第1マイコン1から通知された場合、第2取得部222を用いて、記憶装置3から第2マイコン用記憶領域31に格納された第2プログラムを取得する。その後、第2マイコン2は、起動実行部221を用いて、第2プログラムの起動許可が第1マイコン1から通知されるまで、待機状態に移行する。
【0070】
ステップS203において、第2マイコン2は、第2プログラムの起動許可が第1マイコン1から通知された場合、起動実行部221を用いて、ステップS202において取得された第2プログラムを起動する。
【0071】
ステップS204において、第2マイコン2は、第2プログラムの起動が完了した場合、起動実行部221を用いて、第2マイコン2の起動完了を第1マイコン1に通知する。
図2に示す処理によって、制御装置5は、安全に起動することができる。
【0072】
なお、
図2のステップS105は、ステップS102の後であってステップS109より前に実行されていればよく、ステップS104とステップS106の間に実行される必要はない。ステップS105は、例えば、ステップS102とステップS104との間に実行されてもよいし、ステップS107とステップS109との間に実行されてもよい。
【0073】
図3は、
図1に示す制御装置5の更新処理の流れを示すフローチャートである。
【0074】
図3に示す更新処理は、制御装置5のプログラム又はデータの更新依頼が、制御装置5の外部装置から送信された際に開始する。
【0075】
ステップS301において、制御装置5は、通信部114又は通信部24を介して、外部装置から更新依頼を受信する。制御装置5は、メイン更新部1123を用いて、更新パッケージを受信するまで待機する待機状態に移行する。制御装置5は、この待機状態に移行する前に、所定の機器認証を実行し、更新依頼の送信元の外部装置が正規の装置であること検証してもよい。
【0076】
ステップS302において、制御装置5は、メイン更新部1123を用いて、外部装置から更新パッケージを受信し、所定の記憶領域に格納する。更新パッケージを格納する所定の記憶領域は、例えば、メインデータ記憶部113若しくは記憶装置3の何れか、又は、両方に設けられていてもよい。更新パッケージを格納する所定の記憶領域は、揮発性の記憶装置に設けられていてもよいし、不揮発性の記憶装置に設けられていてもよい。
【0077】
ステップS303において、第1マイコン1は、検証部1221を用いて、ステップS302において受信された更新パッケージの改竄有無を検証する。例えば、第1マイコン1は、検証範囲情報1212が示すアドレスに該当するプログラムを取得して検証値を算出し、更新パッケージ用の検証期待値と比較する。第1マイコン1は、算出された検証値と検証期待値とが一致する場合、更新パッケージの改竄が無いと判断し、検証OK(検証成功)と判断する。一方、第1マイコン1は、算出された検証値と検証期待値とが一致しない場合、更新パッケージの改竄が無いとは判断できず、検証NG(検証不成功)と判断する。
【0078】
ステップS304において、第1マイコン1は、ステップS303において検証OKと判断した場合、ステップS306へ移行する。一方、第1マイコン1は、ステップS303において検証NGと判断した場合、ステップS305へ移行する。
【0079】
ステップS305において、第1マイコン1は、検証部1221を用いて、予め定められたエラー処理を実行する。例えば、第1マイコン1は、エラー処理として、ステップS303の検証処理を再実行したり、第1マイコン1又は第2マイコン2の特定の機能の更新を制限するように設定したり、制御装置5の更新を全面的に停止したりする。更に、第1マイコン1は、検証NGであること、又は、これらのエラー処理を実行することを報知することができる。
【0080】
ステップS306において、第1マイコン1は、暗号処理部1222を用いて、秘匿用途に用いる暗号鍵1211と所定のアルゴリズムとに基づき更新パッケージを復号する。例えば、第1マイコン1は、AES-CBCを用いた暗号処理及び復号処理を行ってもよい。また、第1マイコン1は、セキュア制御部123しかアクセスできないセキュアデータ記憶部121に格納された更新パッケージ用の暗号鍵1211に基づいて復号処理を行ってもよい。
【0081】
ステップS307において、第1マイコン1は、メイン更新部1123(及びセキュア更新部1223)を用いて、ステップS306において復号された更新パッケージを、更新対象のプログラム又はデータの格納先に格納して、更新対象を更新する。更新パッケージは、更新対象の格納先を指定するアドレス情報を含んでいてもよい。更新パッケージは、複数の更新プログラム又は更新データによって構成されていてもよい。これらの複数の更新プログラム又は更新データのそれぞれには、格納先のIDが付与されていてもよい。例えば、更新パッケージが、検証部1221を更新対象とする更新プログラムと、暗号鍵1211を更新対象とする更新データとから構成される場合、更新プログラムには検証部1221のアドレス情報に対応するIDが付与され、更新プログラムには暗号鍵1211のアドレス情報に対応するIDが付与されてもよい。
図3に示す処理によって、制御装置5は、更新対象を安全に更新することができる。
【0082】
以上のように、実施形態1の制御装置5は、第1プログラムを実行するプロセッサを含む第1マイコン1と、第2プログラムを実行するプロセッサを含む第2マイコン2と、第2プログラムが格納された記憶装置3と、を備える制御装置である。第1マイコン1は、第1プログラム及び第2プログラムのそれぞれの改竄有無を検証する検証部1221と、検証部1221により第1プログラムの改竄が無いと検証された場合に、記憶装置3から第2プログラムを取得する第1取得部1126とを有する。更に、第1マイコン1は、検証部1221により第2プログラムの改竄が無いと検証された場合に、第2マイコン2が第2プログラムを起動することを許可する起動許可を、第2マイコン2に通知する起動許可通知部1124を有する。第2マイコン2は、記憶装置3から第2プログラムを取得する第2取得部222と、起動許可が通知された場合に、第2プログラムを起動させる起動実行部221とを有する。
【0083】
このような構成により、実施形態1の制御装置5は、起動時に、プログラム検証機能を有する第1マイコン1が、プログラム検証機能を有しない第2マイコン2において実行される第2プログラムを検証するだけでなく、当該第1マイコン1において実行される第1プログラム自体を検証することができる。そして、第1マイコン1は、改竄が無いことが確認された第1プログラムの機能に基づいて第2プログラムを検証し、改竄が無いことが確認された第2プログラムの起動を許可することができる。したがって、実施形態1の制御装置5は、プログラム検証機能を第1マイコン1及び第2マイコン2の全てに搭載しなくても、第1プログラム又は第2プログラムの何れかが改竄されたことを適切に検出及び対処することができる。よって、実施形態1の制御装置5は、複数の演算処理装置を備える制御装置の安全な起動を容易に実現することができる。
【0084】
更に、実施形態1の制御装置5では、第1マイコン1が耐タンパ性を有するセキュア領域12を有し、第2マイコン2がプログラムの書き換えが不可能なOTP領域を有する。検証部1221はセキュア領域12に格納され、第2取得部222及び起動実行部221は、OTP領域に格納されている。
【0085】
このような構成により、実施形態1の第1マイコン1は、起動時に、HSMのような耐タンパ性が担保されたセキュア領域12に格納された検証部1221に基づいて第1プログラムを検証することができる。そして、第1マイコン1は、改竄が無いことが確認された第1プログラムの機能に基づいて第2プログラムを検証し、改竄が無いことが確認された第2プログラムの起動を許可することができる。一方、実施形態1の第2マイコン2は、改竄不可能なOTP領域に格納された第2取得部222を用いて第2プログラムを取得することができる。そして、第2マイコン2は、第2プログラムの起動が許可された場合、改竄不可能なOTP領域に格納された起動実行部221を用いて第2プログラムを起動することができる。したがって、実施形態1の制御装置5は、制御装置5のセキュリティ機能を実現し得る検証部1221や、第2プログラムの起動に関わる第2取得部222及び起動実行部221が改竄されることを確実に防止することができる。よって、実施形態1の制御装置5は、HSMのようなセキュリティ強度の高いセキュリティ機能を第1マイコン1及び第2マイコン2の全てに搭載しなくても、複数の演算処理装置を備える制御装置の起動時における安全性を更に向上させることができる。
【0086】
更に、実施形態1の制御装置5では、起動実行部221が、第2取得部222が第2プログラムを取得した後、第2プログラムの起動許可が通知されるまで、第2マイコン2を待機状態に移行させる。
【0087】
このような構成により、実施形態1の制御装置5では、第2プログラムの取得後から起動許可が通知されるまでの間に、第2マイコン2が不正プログラムを起動するような不正な事態が発生することを確実に防止することができる。よって、実施形態1の制御装置5は、複数の演算処理装置を備える制御装置の起動時における安全性を更に向上させることができる。
【0088】
更に、実施形態1の制御装置5において、第1マイコン1は、検証部1221により第1プログラムの改竄が無いと検証された場合に、第2マイコン2が記憶装置3から第2プログラムを取得することを許可する取得許可を第2マイコン2に通知する取得許可通知部1125を有する。取得許可通知部1125は、起動許可通知部1124が起動許可を第2マイコン2に通知する前に、取得許可を第2マイコン2に通知する。第2取得部222は、取得許可が通知された場合に、記憶装置3から第2プログラムを取得する。
【0089】
このような構成により、実施形態1の第2マイコン2は、第1プログラムの改竄が無いことが確認されれば、第2プログラムの起動許可が通知される前に第2プログラムを取得しておき、起動許可が通知されると直ちに第2プログラムを起動することができる。よって、実施形態1の制御装置5は、複数の演算処理装置を備える制御装置の安全且つ高速な起動を容易に実現することができる。
【0090】
更に、実施形態1の制御装置5では、起動実行部221が、制御装置5の電源投入後、第2プログラムの取得許可が通知されるまで、第2マイコン2を待機状態に移行させる。
【0091】
このような構成により、実施形態1の制御装置5では、制御装置5の電源投入後から取得許可が通知されるまでの間に、第2マイコン2が改竄されたプログラムを起動してしまうような不正な事態が発生することを確実に防止することができる。よって、実施形態1の制御装置5は、複数の演算処理装置を備える制御装置の起動時における安全性を更に向上させることができる。
【0092】
更に、実施形態1の制御装置5は、セキュア領域12がプログラムの書き換えが可能な領域であり、第1マイコン1がセキュア領域12に格納された更新対象を更新パッケージによって更新するメイン更新部1123及びセキュア更新部1223を有する。検証部1221は、更新パッケージの改竄有無を検証する。メイン更新部1123及びセキュア更新部1223は、検証部1221により更新パッケージの改竄が無いと検証された場合に、更新パッケージによって更新対象を更新する。
【0093】
このような構成により、実施形態1の制御装置5では、セキュア領域12に格納された検証部1221のアルゴリズムや暗号鍵1211のデータの更新が可能である。
【0094】
ここで、制御装置5は、自動車等の製品寿命が比較的長い機械又は機器の制御装置であってもよい。例えば、制御装置5が車載用のECUによって構成される場合、自動車の走行制御は人命に関わるので、制御装置5は10年を超える長期間に亘って走行制御の安全性を確保し続けなければならない。一方、長期に亘る制御装置5の運用期間において、走行制御に関わるプログラムの検証機能を構成するアルゴリズムやデータが、危殆化する虞がある。万一、これらのアルゴリズムやデータが危殆化した場合には、安全なアルゴリズムやデータに更新するべきである。しかしながら、特許文献1のようにプログラム検証機能がOTP領域に格納されていると、危殆化したこれらのアルゴリズムやデータを、安全なアルゴリズムやデータに更新することができない。これにより、特許文献1のようなプログラム検証機能がOTP領域に格納された制御装置では、製品寿命の比較的長い機械等が制御対象である場合、この製品寿命の期間に亘って長期的に安全な起動を実現することが難しい。
【0095】
これに対し、実施形態1の制御装置5では、HSMのような耐タンパ性が担保されたセキュア領域12に格納された検証部1221のアルゴリズムや暗号鍵1211のデータの更新が可能である。これにより、実施形態1の制御装置5は、検証部1221のアルゴリズムや暗号鍵1211のデータが危殆化する前に、これらを安全なアルゴリズムやデータに更新することができる。したがって、実施形態1の制御装置5は、製品寿命の比較的長い機械等が制御対象であっても、この製品寿命の期間に亘って長期的に安全な起動を実現することができる。
【0096】
[実施形態2]
図4及び
図5を用いて、実施形態2の制御装置5について説明する。実施形態2の制御装置5において、実施形態1と同様の構成及び動作については、説明を省略する。
【0097】
図4は、実施形態2の制御装置5の機能的構成を示す図である。
図5は、
図4に示す制御装置5の起動処理の流れを示すシーケンスである。なお、
図5に示す起動処理は、
図2に示す起動処理に対応しており、制御装置5の電源投入後に開始される。
【0098】
実施形態2の制御装置5では、実施形態1と同様に、検証部1221がセキュア領域12に格納され、第2取得部222及び起動実行部221が第2マイコン2のOTP領域に格納されている。
【0099】
実施形態2の制御装置5では、実施形態1とは異なり、記憶装置3が第2プログラムだけでなく、第1プログラムを格納してもよい。具体的には、
図4に示すように、実施形態2のメイン制御プログラム1121、メイン更新部1123、起動許可通知部1124及び取得許可通知部1125が、第1プログラムとして、記憶装置3の第1マイコン用記憶領域32に格納されていてもよい。実施形態2の第1検証期待値1122についても、記憶装置3の第1マイコン用記憶領域32に格納されていてもよい。
【0100】
また、実施形態2の制御装置5では、実施形態1とは異なり、メインプログラム記憶部112が、プログラムの書き換えが不可能なOTP領域を有し、第1取得部1126が当該OTP領域に格納されていてもよい。そして、実施形態2の第1取得部1126は、記憶装置3から第2プログラム及び第2検証期待値312を取得するだけではなく、記憶装置3から第1プログラム及び第1検証期待値1122を取得してもよい。
【0101】
具体的には、
図5のステップS111に示すように、実施形態2の第1マイコン1は、第1取得部1126を用いて、制御装置5の電源投入後であってステップS101の前に、記憶装置3の第1マイコン用記憶領域32から第1プログラムを取得する。その後、実施形態2の第1マイコン1は、実施形態1と同様のステップS101~ステップS109を実行してもよい。実施形態2の第2マイコン2は、実施形態1と同様のステップS201~ステップS204を実行してもよい。
【0102】
なお、
図5のステップS111において、実施形態2の第1マイコン1は、第1取得部1126を用いて、第1プログラム及び第2プログラムの両方を取得することもできる。この場合、実施形態2の第1マイコン1は、ステップS104を省略することができる。また、この場合、実施形態2の第1マイコン1は、第1プログラムの改竄が無いことが検証された直後(ステップS102:YESの直後)に、ステップS105を実行して第2プログラムの取得許可を第2マイコン2に通知することができる。
【0103】
このように、実施形態2の制御装置5は、検証部1221はセキュア領域12に格納され、第1取得部1126、第2取得部222及び起動実行部221は、OTP領域に格納されている。実施形態2の制御装置5は、実施形態1と同様に、制御装置5のセキュリティ機能を実現し得る検証部1221や、第1プログラム及び第2プログラムの起動に関わる第1取得部1126、第2取得部222及び起動実行部221が改竄されることを確実に防止することができる。更に、実施形態2の制御装置5では、第1プログラムの容量が将来的に増大する場合であっても、第1マイコン1よりも拡張性の高い記憶装置3を容量の大きな記憶装置に交換するだけで容易に対応することができる。よって、実施形態2の制御装置5は、複数の演算処理装置を備える制御装置の安全な起動を容易且つ持続的に実現することができる。
【0104】
[その他]
なお、本発明は上記の実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、或る実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、或る実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0105】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路にて設計する等によりハードウェアによって実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアによって実現してもよい。各機能を実現するプログラム、テープ、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0106】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0107】
1…第1マイコン(第1演算処理装置)、111…メイン制御部(プロセッサ)、1123…メイン更新部、1124…起動許可通知部、1125…取得許可通知部、1126…第1取得部、12…セキュア領域、1221…検証部、1223…セキュア更新部、2…第2マイコン(第2演算処理装置)、21…制御部(プロセッサ)、221…起動実行部、222…第2取得部、3…記憶装置、5…制御装置