(57)【要約】【課題】高いセキュリティ強度および高速な起動を必要とする、通信線に接続された制御装置および制御方法を提供する。【解決手段】第一の処理環境と、第一の処理環境から隔離された第二の処理環境と、第一の処理環境下に、制御対象への制御処理を実行する制御処理部と、制御対象の制御用データを格納する第一の記憶領域と、検証判定部と、を備え、第二の処理環境下に、期待値を格納する第二の記憶領域と、検証値を生成する検証値生成部と、第一の記憶領域のデータの検証を実行する検証実行部と、を備えた制御装置であって、検証値生成部は、制御処理が停止する前に検証値を生成し、検証実行部は、制御処理が起動する前に期待値と検証値との比較処理を実行し、検証判定部は、検証合格の場合には制御処理部による制御処理を起動する判定処理を実行し、検証不合格の場合には制御処理の起動を中止する判定を実行する。【選択図】図１
2019068341.tif 000002
【特許請求の範囲】
【請求項１】
第一の処理環境と、前記第一の処理環境から隔離された第二の処理環境と、
前記第一の処理環境下に、
制御対象への制御処理を実行する制御処理部と、
前記制御処理部が前記制御対象の制御のために用いるデータを格納する第一の記憶領域と、
前記制御処理を実行するか否かを判定する検証判定部と、
を備え、
前記第二の処理環境下に、
前記第一の記憶領域のデータに基づいて予め生成された期待値を格納する第二の記憶領域と、
前記第一の記憶領域のデータに基づいて検証値を生成する検証値生成部と、
前記第一の記憶領域のデータの検証を実行する検証実行部と、
を備えた制御装置であって、
前記第二の記憶領域は、前記第二の処理環境からのみアクセス可能に設定され、
前記検証値生成部は、前記制御処理部による前記制御処理が停止する前に、前記検証値を生成し、生成した前記検証値を前記第二の記憶領域に格納し、
前記検証実行部は、前記制御処理部による前記制御処理が起動する前に、前記期待値と前記検証値との比較処理を実行し、検証合格か検証不合格かを示す比較結果を前記第一の処理環境内の前記検証判定部に送信し、
前記検証判定部は、
前記検証実行部から前記検証合格を示す比較結果を受信した場合には、前記制御処理部による前記制御処理を起動する判定処理を実行し、
前記検証実行部から前記検証不合格を示す比較結果を受信した場合には、前記制御処理部による前記制御処理の起動を中止する判定処理を実行する
制御装置。
【請求項２】
前記第一の処理環境下に、
前記制御処理部による前記制御処理の停止および起動を制御する起動制御部と、
外部機器との通信機能を有する通信制御部と、
を更に有し、
前記起動制御部は、
前記制御処理部による前記制御処理を停止させる前に、前記通信制御部による前記通信機能を無効とし、
続いて、前記検証値生成部に前記検証値を生成させた後に、前記制御処理部による前記制御処理を停止させる
請求項１に記載の制御装置。
【請求項３】
前記第一の処理環境下に、前記制御処理部による前記制御処理を起動する時刻になったことを起動指令として通知する時間計測部を更に有し、
前記起動制御部は、
前記制御処理部による前記制御処理を停止させた後に、前記時間計測部から前記起動指令を受信した場合には、前記通信制御部による前記通信機能を有効とし、
前記通信制御部が前記外部機器から前記制御処理部による前記制御処理を実行するための起動要求を受信した場合には、前記制御処理部による前記制御処理を起動させる前に、前記検証実行部による比較処理および前記検証判定部による判定処理を実行させる
請求項２に記載の制御装置。
【請求項４】
前記検証実行部は、前記検証値生成部により生成された複数の検証値と、前記第二の記憶領域に格納された複数の期待値とを比較し、それぞれの検証値について検証合格か検証不合格かを示す複数の比較結果を前記第一の処理環境下の前記検証判定部に送信し、
前記検証判定部は、前記複数の比較結果に基づいて、前記検証合格が得られた検証値に対応する制御処理の実行に限定し、前記制御処理部による前記制御処理の一部の起動を許可する
請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
第一の処理環境と、前記第一の処理環境から隔離された第二の処理環境と、前記第一の処理環境下に格納されているデータを用いて制御対象を制御する制御処理部と、を有する制御装置の制御方法であって、
前記制御処理部による制御処理が停止する前に、
前記第一の処理環境下の第一の記憶領域のデータに基づいて検証値を生成するステップと、前記検証値を前記第二の処理環境下の第二の記憶領域に格納するステップと、
前記制御処理部による前記制御処理が起動する前に、
前記第一の記憶領域のデータに基づいて予め生成された期待値と前記検証値との比較処理を実行するステップと、
前記比較処理の比較結果が検証合格の場合には、前記制御処理部による前記制御処理を起動する判定処理を実行ステップと、
前記比較結果が検証不合格の場合には、前記制御処理部による前記制御処理の起動を中止する判定処理を実行するステップと
を備える制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高いセキュリティ強度および高速な起動を必要とする、通信線に接続された制御装置に関するものである。
【背景技術】
【０００２】
従来から、車両に搭載される制御装置である、例えばＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）において、ＥＣＵ内部データの改ざん対策に関する技術が提案されている（例えば、特許文献１参照）。
【０００３】
通常、車両には複数のＥＣＵが搭載されており、各ＥＣＵ間は、通信接続されている。このため、外部からの不正な侵入を受けやすい。外部から不正な侵入を受け、ＥＣＵ内部データが改ざんされてしまうと、その結果として、ＥＣＵが外部から不正に遠隔操作されてしまうおそれがある。
【０００４】
データ改ざんの対策として、セキュアブート処理がある。このセキュアブート処理とは、暗号技術を用いてデータを検証し、データの改ざんを検知する技術である。ＥＣＵを起動する前に、ＥＣＵの内部データが改ざんされているか否かを検知することにより、ＥＣＵを高いセキュリティ強度で起動できるか否かを判断することができる。
【０００５】
しかしながら、車載用のＥＣＵは、起動開始から起動完了までの時間の制約が厳しい。そのため、ＥＣＵ起動時のセキュアブートには、高いセキュリティ強度および高速な処理が求められる。さらに、セキュアブート処理用のプログラム自体も改ざんされてしまうおそれがある。そのため、セキュアブート処理自体にも改ざんに対する高いセキュリティ強度が求められる。
【０００６】
特許文献１は、改ざん検出の対象とするアプリケーションプログラムを選別することで、セキュアブート処理時間を短縮している。また、特許文献１は、検証に用いるデータをイベント毎に更新することにより、セキュアブート処理も高いセキュリティ強度で起動することができるとしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−３３２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術には、以下のような課題がある。特許文献１では、セキュアブート処理時間を短縮するために、改ざん検出の対象とするアプリケーションプログラムを、システム管理者が予め選別することが必要である。すなわち、事前に選別されなかったアプリケーションプログラムは、改ざん検出の対象とはならない。このため、事前に選別されなかったアプリケーションプログラムに対して攻撃者によって不正にデータが改ざんされた場合には、改ざんを検出することができない。
【０００９】
また、セキュアブート処理自体の改ざんに対するセキュリティ強度を高めるためには、セキュアブートの検証に用いるデータ量を増加させる必要がある。また、検証値生成のための暗号鍵のデータ量を増加させる必要がある。
【００１０】
このように、改ざん検出の対象となるプログラムおよびデータの量を増加させることで、外部からシステム浸入し、データの改ざんを試みる攻撃者は、暗号化された検証値を解読することが困難となる。このため、改ざんに対するセキュリティ強度が向上する。
【００１１】
一方、改ざん検出の対象となるプログラムおよびデータの量を増加させた場合には、セキュアブート処理に要する時間が増大してしまうという問題がある。セキュアブート処理の時間短縮方法として、ＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）などの高速演算可能なハードウェアを用いる方法が知られている。しかしながら、データ量が多い場合には、ＨＳＭを使用したとしても、処理時間を十分に短縮できないという問題がある。
【００１２】
本発明は、このような問題を解決するためになされたものであり、その目的は、改ざん検出の対象となるプログラムおよびデータの量を増加させた場合、あるいはセキュアブート処理自体に用いるデータ量を増加させた場合であっても、高いセキュリティ強度を有しつつ、制御装置の起動時に実行されるセキュアブート処理の処理時間を、従来と比較して短縮することのできる制御装置および制御方法を得ることである。
【課題を解決するための手段】
【００１３】
本発明に係る制御装置は、第一の処理環境と、第一の処理環境から隔離された第二の処理環境と、第一の処理環境下に、制御対象への制御処理を実行する制御処理部と、制御処理部が制御対象の制御のために用いるデータを格納する第一の記憶領域と、制御処理を実行するか否かを判定する検証判定部と、を備え、第二の処理環境下に、第一の記憶領域のデータに基づいて予め生成された期待値を格納する第二の記憶領域と、第一の記憶領域のデータに基づいて検証値を生成する検証値生成部と、第一の記憶領域のデータの検証を実行する検証実行部と、を備えた制御装置であって、第二の記憶領域は第二の処理環境からのみアクセス可能に設定され、検証値生成部は、制御処理部による制御処理が停止する前に検証値を生成し、生成した検証値を前記第二の記憶領域に格納し、検証実行部は、制御処理部による制御処理が起動する前に期待値と検証値との比較処理を実行し、検証合格か検証不合格かを示す比較結果を第一の処理環境内の検証判定部に送信し、検証判定部は、検証実行部から検証合格を示す比較結果を受信した場合には、制御処理部による制御処理を起動する判定処理を実行し、検証実行部から検証不合格を示す比較結果を受信した場合には、制御処理部による制御処理の起動を中止する判定処理を実行するものである。
【００１４】
また、本発明に係る制御方法は、第一の処理環境と、前記第一の処理環境から隔離された第二の処理環境と、第一の処理環境下に格納されているデータを用いて制御対象を制御する制御処理部と、を有する制御装置の制御方法であって、制御処理部による制御処理が停止する前に、第一の処理環境下の第一の記憶領域のデータに基づいて検証値を生成するステップと、検証値を第二の処理環境下の第二の記憶領域に格納するステップと、制御処理部による制御処理が起動する前に、第一の記憶領域のデータに基づいて予め生成された期待値と検証値との比較処理を実行するステップと、比較結果が検証合格の場合には、制御処理部による制御処理を起動する判定処理を実行ステップと、比較結果が検証不合格の場合には、制御処理部による制御処理の起動を中止する判定処理を実行するステップと
を備えるものである。
【発明の効果】
【００１５】
本発明によれば、制御装置の停止前に、セキュアブート処理用（改ざん検出用）の検証値を予め生成しておき、起動時に該検証値を用いてセキュアブート処理を実行できる構成を備えている。この結果、改ざん検出の対象となるプログラムおよびデータの量を増加させた場合、あるいはセキュアブート処理自体に用いるデータ量を増加させた場合であっても、高いセキュリティ強度を有しつつ、制御装置の起動時に実行されるセキュアブート処理の処理時間を短縮することができる制御装置および制御方法を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１に係る制御装置の機能ブロック図である。
【図２】本発明の実施の形態１に係る制御装置の停止および起動処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下に、本発明の制御装置および制御方法の好適な実施の形態について、図面を用いて説明する。なお、以下では、制御装置の具体例として、制御対象を車両および車載機器とする車載制御装置（ＥＣＵ）に適用する場合について、詳細に説明する。
【００１８】
実施の形態１．
図１は、本発明の実施の形態１に係る制御装置を適用した車載制御装置（ＥＣＵ）の機能ブロック図である。本実施の形態１における車載制御装置（以下、制御装置１０と称する）は、起動制御部１００、制御処理部１０１、不揮発性記憶部１０２、検証値生成部１０３、検証実行部１０４、検証判定部１０５、通信制御部１０６および時間計測部１０７を備えて構成されている。
【００１９】
制御装置１０は、図１に示したように、第一の処理環境と第二の処理環境を有する。第二の処理環境は、第一の処理環境とは、ハードウェア的に隔離された処理環境である。例えば、第二の処理環境としては、ＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）を使用することができる。
【００２０】
第一の処理環境は、起動制御部１００、制御処理部１０１、不揮発性記憶部１０２内の第一の記憶領域１０２ａ、検証判定部１０５、通信制御部１０６および時間計測部１０７を備えている。
【００２１】
一方、第二の処理環境は、不揮発性記憶部１０２内の第二の記憶領域１０２ｂ、検証値生成部１０３および検証実行部１０４を備えている。そして、第二の記憶領域１０２ｂは、第二の処理環境からのみアクセス可能に設定されている。
【００２２】
制御装置１０は、車両の制御を行う車載制御装置である。制御装置１０は、車両内部の他の制御装置と、図示しない通信線、例えばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、を介して接続されている。
【００２３】
起動制御部１００は、制御装置１０の制御処理部１０１の起動および停止を制御する機能を有している。さらに、起動制御部１００は、制御処理部１０１の停止処理および起動処理を統括制御する機能も有している。
【００２４】
ここで、制御処理部１０１が起動していない状態とは、制御装置１０がスリープ状態、または制御装置１０の電源がオフとなっている状態である。
【００２５】
制御処理部１０１は、車内に搭載されている制御対象の機器を制御する機能を有している。なお、図１では、制御対象の機器を図示しておらず、以下の説明では、制御対称の機器のことを、単に制御対象と称する。車内に搭載されている制御対象とは、アクチュエーター等である。
【００２６】
具体的には、制御処理部１０１は、制御対象に対応した制御用プログラムデータを不揮発性記憶部１０２の第一の記憶領域１０２ａから読み出して、読み出したプログラムを実行することで、制御対象の制御を行う。
【００２７】
不揮発性記憶部１０２は、第一の記憶領域１０２ａと第二の記憶領域１０２ｂを有している。第一の記憶領域１０２ａと第二の記憶領域１０２ｂは、物理的または論理アドレス的に隔離されている。
【００２８】
第一の記憶領域１０２ａは、制御処理部１０１が制御処理を実行するための制御用プログラムデータを格納する領域である。第一の記憶領域１０２ａは、制御処理部１０１が通常の動作時に使用するデータが記憶されている領域である。このため、以下、第一の記憶領域１０２ａのことを第一の記憶領域（通常記憶領域）１０２ａと称する場合がある。
【００２９】
第二の記憶領域１０２ｂは、セキュアブート処理で使用する期待値と検証値を格納する領域である。以下、第二の記憶領域１０２ｂのことを第二の記憶領域（セキュア記憶領域）１０２ｂと称する場合がある。期待値は、例えば、制御装置１０の開発段階において、第一の記憶領域（通常記憶領域）１０２ａのデータに基づいて、検証値と同一の算出方法で生成される。
【００３０】
ここで、第一の記憶領域（通常記憶領域）１０２ａに記憶されたデータは、上述したように、制御処理部１０１が制御処理を実行するためのプログラムデータである。そのため、第一の記憶領域（通常記憶領域）１０２ａに記憶されたデータが不正に改ざんされてしまった場合には、制御対象の動作および車両全体の制御に重大な問題が生じるおそれがある。
【００３１】
第二の処理環境内に設けられた検証値生成部１０３は、第一の記憶領域（通常記憶領域）１０２ａに記憶された、通常の動作時に使用されるデータに基づいて、セキュアブート処理で使用する検証値を生成する機能を有している。検証値は、例えば、ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）、ＣＲＣ、ハッシュなどを使用することができる。
【００３２】
第二の処理環境内に設けられた検証実行部１０４は、第二の記憶領域に格納されている期待値と、第一の記憶領域（通常記憶領域）１０２ａのデータをもとに検証値生成部１０３で生成された検証値が一致するか否かの検証を実行する。
【００３３】
第一の処理環境内に設けられた検証判定部１０５は、検証実行部１０４の検証結果に基づいて、制御処理部１０１が制御処理対象に対する制御処理を実行してよいか否かを判定する。
【００３４】
検証実行部１０４による検証結果において、期待値と検証値が一致している場合には、検証判定部１０５は、第一の記憶領域（通常記憶領域）１０２ａのデータは改ざんされていないと判定する。以下、この検証判定結果を「検証合格」と称する。
【００３５】
また、検証結果において期待値と検証値が一致していない場合には、検証判定部１０５は、第一の記憶領域（通常記憶領域）１０２ａのデータが改ざんされていると判定する。以下、この検証判定結果を「検証不合格」と称する。
【００３６】
検証判定結果は、検証判定部１０５から起動制御部１００に出力される。起動制御部１００は、検証判定部１０５から出力された検証判定結果に基づいて、「検証合格」の場合には、制御処理部１０１の起動を実行し、「検証不合格」の場合には、制御処理部１０１の起動を中止する。
【００３７】
なお、以上の説明では、制御処理部１０１の起動を中止する場合には、制御処理部１０１の全ての機能の実行を中止するとした。しかしながら、本実施の形態１における中止処理は、これに限られるものではない。例えば、制御処理部１０１の一部の機能の実行を制限した状態で、制御処理部１０１の起動を実行するようにしてもよい。
【００３８】
通信制御部１０６は、図示しない通信線を介して、車内に搭載されている他の機器と接続されている。通信制御部１０６は、起動制御部１００からの出力に基づいて、制御装置１０と外部機器との通信機能を有効化または無効化する機能を備えている。
【００３９】
時間計測部１０７は、起動制御部１００および通信制御部１０６に、所定の時刻となったことを通知する時計機能、または、ある時刻から所定の時間が経過したことを通知するタイマー機能を有している。
【００４０】
起動制御部１００および時間計測部１０７は、制御装置１０がスリープ状態または電源オフ状態であっても継続して起動可能なように構成されている。例えば、起動制御部１００および時間計測部１０７には、制御装置１０がスリープ状態または電源オフ状態であっても、電池又は車内のバッテリー電源から電力が継続して供給されるように構成されている。
【００４１】
次に、制御処理部１０１の停止時および起動時に実行される処理について、図２を用いて詳細に説明する。図２は、本発明の実施の形態１に係る制御処理部１０１の停止時および起動時に実行される処理の流れを示すフローチャートである。
【００４２】
ステップＳ２０１において、起動制御部１００は、制御処理部１０１の停止処理を開始する。制御処理部１０１の停止処理は、制御装置１０がスリープ状態又は電源オフ状態となる直前に、自動的に実行されるように設定されている。
【００４３】
次に、ステップＳ２０２において、起動制御部１００は、通信制御部１０６に対して、現在の通信状態の問い合わせを行う。通信制御部１０６は、制御装置１０と外部機器との通信が有効となっているか否かを確認して、その確認結果を起動制御部１００に出力する。
【００４４】
続いて、起動制御部１００は、ステップＳ２０２において通信が無効（Ｓ２０２：ＮＯ）であった場合は、処理をステップＳ２０４に進める。一方、起動制御部１００は、ステップＳ２０２において通信が有効（Ｓ２０２：ＹＥＳ）であった場合は、処理をステップＳ２０３に進める。
【００４５】
ステップＳ２０３において、起動制御部１００は、通信制御部１０６に対して、通信を無効化する命令を出力する。起動制御部１００は、通信制御部１０６によって通信が無効化されたことを確認した後、処理をＳ２０４に進める。
【００４６】
ステップＳ２０４において、起動制御部１００は、第二の処理環境内の検証値生成部１０３に対して、検証値を生成する命令を出力する。
【００４７】
検証値生成部１０３は、不揮発性記憶部１０２の第一の処理環境内の第一の記憶領域（通常記憶領域）１０２ａから、セキュアブート処理における検証に用いるデータを読み出し、読み出したデータに基づいて検証値を生成する。検証値生成部１０３は、生成した検証値を、第二の記憶領域（セキュア記憶領域）１０２ｂに記憶させる。
【００４８】
例えば、検証値がＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）であり、第二の処理環境がＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）である場合、検証値生成部１０３は、検証値ＭＡＣを生成する。なお、検証値生成部１０３は、生成した検証値ＭＡＣを、第二の記憶領域（セキュア記憶領域）１０２ｂに記憶させる。
【００４９】
このように、本実施の形態１に係る制御装置１０は、制御処理を停止する前に、ステップＳ２０３で通信機能を無効化した後に、ステップＳ２０４にてセキュアブート処理（改ざん検出処理）で使用する検証値を生成しておく。
【００５０】
次に、ステップＳ２０５において、起動制御部１００は、制御処理部１０１による制御処理の動作を停止させる。制御処理部１０１の動作停止に伴って、制御装置１０は、スリープ状態または電源オフ状態に移行する。ここで、起動制御部１００および時間計測部１０７は、制御装置１０がスリープ状態または電源オフ状態であっても、継続して起動するように設定されている。
【００５１】
以上の処理によって、制御処理部１０１の停止処理は、終了する。この段階で、セキュアブート処理において使用する検証値は、既に生成されており、第二の記憶領域１０２ｂに格納された状態となっている。
【００５２】
続いて、制御処理部１０１の起動処理について説明する。
【００５３】
ステップＳ２０６において、時間計測部１０７は、制御処理部１０１による制御処理を起動する所定の時刻となったことを、起動指令として、起動制御部１００に通知する。ここで、所定の時刻とは、例えば、運転者が日常的に車両のエンジンを始動する時刻の直前（例えば１時間前）とする。または、運転者が選択した時刻を所定の時刻として、設定可能としてもよい。
【００５４】
また、所定の時刻ではなく、ある時刻から所定の時間（例えば１時間〜１２時間）が経過したタイミングで、時間計測部１０７が起動制御部１００に起動指令を通知するようにしてもよい。ここで、ある時刻とは、例えば、エンジンが停止した時刻または制御装置１０がスリープ又は電源オフとなった時刻とすればよい。また、所定の時間は、運転者が任意の時間を設定可能としてもよい。
【００５５】
次に、ステップＳ２０７において、起動制御部１００は、制御装置１０のスリープ状態を解除または電源オフ状態を解除する。これによって、制御装置１０は起動状態となる。
【００５６】
続いて、ステップＳ２０７において、起動制御部１００は、通信制御部１０６に対して、通信機能を有効化する命令を出力する。通信制御部１０６は、起動制御部１００からの出力に基づいて、制御装置１０と外部との通信機能を、無効状態から有効状態に変更する。
【００５７】
次に、ステップＳ２０８において、起動制御部１００は、制御装置１０に対して、通信線および通信制御部１０６を介して、外部機器から制御処理の起動要求があったか否かを判断する。そして、起動要求があった場合（Ｓ２０８：ＹＥＳ）には、起動制御部１００は、制御処理部１０１の起動処理を開始する。
【００５８】
一方、ステップＳ２０８において、制御処理の起動要求がない場合（Ｓ２０８：ＮＯ）には、起動制御部１００は、制御処理部１０１の起動処理を実行しない。ここで、外部機器からの制御処理の起動要求とは、例えば、ＣＡＮ通信を介して、制御装置１０以外の他のＥＣＵから出力される起動要求などである。
【００５９】
続いて、制御処理部１０１の起動処理について説明する。ステップＳ２０８において、制御処理の起動を要求された起動制御部１００は、第二の処理環境内の検証実行部１０４に対して、検証を実行する命令を出力する。
【００６０】
ステップＳ２０９において、検証実行部１０４は、第二の記憶領域（セキュア記憶領域）１０２ｂから検証値および期待値を読み出し、検証値および期待値が一致するか否かを比較する。なお、この検証値は、ステップＳ２０５において制御処理が停止する以前に、ステップＳ２０４において第二の記憶領域（セキュア記憶領域）１０２ｂに格納された検証値である。比較結果は、第二の処理環境内の検証実行部１０４から、第一の処理環境内の検証判定部１０５に出力される。
【００６１】
ステップＳ２１０において、検証判定部１０５は、比較結果から第一の記憶領域（通常記憶領域）１０２ａのデータが改ざんされているか否かを判定する。検証判定部１０５は、検証判定の結果を、起動制御部１００に出力する。
【００６２】
具体的には、検証判定部１０５は、比較結果において期待値と検証値が一致している場合には、第一の記憶領域（通常記憶領域）１０２ａのデータは改ざんされておらず、検証合格であると判定する（Ｓ２１０：ＹＥＳ）。一方、比較結果において期待値と検証値が一致していない場合には、検証判定部１０５は、第一の記憶領域（通常記憶領域）１０２ａのデータは改ざんされており、検証不合格であると判定する（Ｓ２１０：ＮＯ）。検証判定の結果は、検証判定部１０５から起動制御部１００に出力される。
【００６３】
起動制御部１００は、検証判定の結果に基づいて、制御処理部１０１を起動させるか否かを制御する。検証判定の結果が合格の場合（Ｓ２１０：ＹＥＳ）には、起動制御部１００は、制御処理部１０１を起動させる（Ｓ２１１）。起動された制御処理部１０１は、制御対象の制御を開始する。
【００６４】
一方、検証判定の結果が不合格の場合（Ｓ２１０：ＮＯ）には、起動制御部１００は、制御処理部１０１の起動を中止する（Ｓ２１２）。このようにすることにより、制御処理部１０１が、改ざんされたデータに基づいて制御対象を制御することを防止することができる。
【００６５】
なお、以上の説明では、ステップＳ２１０において検証判定部１０５が実施する検証判定を、合格・不合格の二段階の判定とした。また、制御処理部１０１の起動を中止する場合には、制御処理部１０１の全ての機能の実行を中止するとした。しかしながら、本実施の形態１は、これらのような処理に限られるものではない。
【００６６】
例えば、検証実行結果に基づく検証判定の段階を、検証合格・検証一部不合格の二段階、または、検証合格・検証一部不合格・検証不合格の三段階としてもよい。そして、検証一部不合格と判定された場合には、例えば、起動制御部１００は、検証不合格となった一部のデータまたはプログラムに対応する制御処理部１０１の一部の機能の実行を制限した状態で、制御処理部１０１の起動を行うようにしてもよい。
【００６７】
具体的には、以下に説明するように、制御プログラムデータ毎に検証を行うことによって、検証合格となった制御プログラムデータに対応する制御処理を実行し、検証不合格となった制御プログラムデータに対応する制御処理を実行しないように制限して、制御処理部１０１の起動を行うようにすればよい。
【００６８】
第一の記憶領域１０２ａに、複数の制御対象または複数の制御処理に対応した複数の制御プログラムデータが存在する場合が想定される。その場合は、検証値生成部１０３は、複数の制御用プログラムデータにそれぞれ対応した複数の検証値を生成する。
【００６９】
続いて、検証実行部１０４は、複数の制御用プログラムデータにそれぞれ対応した複数の検証値と、複数の検証値のそれぞれに対応して予め第二の記憶領域に１０２ｂに格納された期待値とを比較する。これらの複数の比較結果は、検証実行部１０４から検証判定部１０５に出力される。
【００７０】
検証判定部１０５は、検証実行部１０４から出力された複数の比較結果に基づいて、複数の制御用プログラムデータそれぞれについて、検証合格か不合格かを判定する。そして、複数の制御用プログラムデータそれぞれの期待値と検証値が全て一致している場合には、検証判定部１０５は、第一の記憶領域（通常記憶領域）１０２ａのデータは改ざんされておらず、検証合格であると判定する。一方、複数の制御用プログラムデータそれぞれの期待値と検証値の一部が一致していない場合には、検証判定部１０５は、第一の記憶領域（通常記憶領域）１０２ａのデータは部分的に改ざんされており、検証一部不合格であると判定する。
【００７１】
続いて、検証判定部１０５は、検証合格と判定された制御用プログラムデータに対応する制御処理を起動許可制御処理に指定し、検証不合格とされた制御用プログラムデータに対応する制御処理を起動不許可制御処理に指定する。起動制御部１００は、検証判定部１０５によって起動許可制御処理に指定された制御処理に限定して、制御処理部１０１の起動を実行する。これにより、検証不合格となったプログラムデータに対応する制御処理の実行を制限した状態で、制御処理部１０１を起動することができる。
【００７２】
なお、以上説明した実施の形態１では、本発明に係る制御装置を車載制御装置として使用する例について説明した。しかしながら、本発明に係る制御装置は、これに限られるものでない。例えば、高いセキュリティ強度を有し、かつ、高速な起動を必要とする、通信線に接続された制御装置に利用することができる。
【００７３】
以上説明した本発明に係る実施の形態１によれば、制御処理に用いるデータが改ざんされているか否かを確認するために行うセキュアブート処理において、以下のような効果が得られる。
従来の制御装置においては、制御処理の起動する前に、セキュアブート処理に用いる検証値を生成していた。これに対して、本実施の形態１に係る制御装置は、制御処理が停止する前に、セキュアブート処理に用いる検証値を生成する構成を備えている。そして、制御処理が起動する前に、予め生成した検証値を用いてセキュアブート処理を行う構成を備えている。
これにより、制御処理を起動する前に行うセキュアブート処理の処理時間を、従来に比べて短縮することができる。
【００７４】
また、このように、セキュアブート処理に用いる検証値を、時間制約の厳しい制御装置の起動の前ではなく、制御装置の停止前に予め生成しておくことにより、検証値生成のための暗号鍵のデータ量を十分に確保することができる。そのため、セキュアブート処理の信頼度を高めることができる。
【００７５】
さらに、本実施の形態１に係る制御装置は、第一の処理環境と、第一の処理環境から隔離された第二の処理環境とを備え、第二の処理環境内でセキュアブート処理に用いる検証値の生成、検証値の格納、およびセキュアブートによる検証を実行する構成を備えている。そして、検証値が格納される第二の記憶領域は、第二の処理環境からのみアクセス可能に設定されている。これにより、セキュアブート処理自体のセキュリティ強度と信頼度を高めることができる。
【００７６】
さらに、本実施の形態１に係る制御装置は、制御装置の通信機能を無効化した状態で、検証値の生成および格納を行う構成を備えている。これにより、通信線を介した外部からの攻撃によるデータの改ざんを防ぐことができる。
【００７７】
さらに、本実施の形態１に係る制御装置は、制御装置の通信状態を、通信無効状態から通信有効状態に復帰させる手段として、制御装置内に時間計測部を備え、時間計測部で計測した所定の時間に基づいて制御装置を通信有効状態とする構成を備えている。これにより、通信線を介した外部からの攻撃を受けることなく、制御装置の通信状態を、通信無効状態から通信有効状態に復帰させることが可能となる。
【符号の説明】
【００７８】
１０  制御装置、１００  起動制御部、１０１  制御処理部、１０２  不揮発性記憶部、１０２ａ  第一の記憶領域（通常記憶領域）、１０２ｂ  第二の記憶領域（セキュア記憶領域）、１０３  検証値生成部、１０４  検証実行部、１０５  検証判定部、１０６  通信制御部、１０７  時間計測部。
【図１】
2019068341.tif 000003
【図２】
2019068341.tif 000004
【手続補正書】
【提出日】平成30年11月1日(2018.11.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本発明に係る制御装置は、第一の処理環境と、第一の処理環境からハードウェア的に隔離された第二の処理環境と、第一の処理環境下に、制御対象への制御処理を実行する制御処理部と、制御処理部が制御対象の制御のために用いるデータを格納する第一の記憶領域と、制御処理を実行するか否かを判定する検証判定部と、制御処理部による制御処理の停止および起動を制御する起動制御部と、外部機器との通信機能を有する通信制御部と、制御処理部による制御処理を起動する時刻になったことを起動指令として通知する時間計測部と、を備え、第二の処理環境下に、第一の記憶領域のデータに基づいて予め生成された期待値を格納する第二の記憶領域と、第一の記憶領域のデータに基づいて検証値を生成する検証値生成部と、第一の記憶領域のデータの検証を実行する検証実行部と、を備えた制御装置であって、第二の記憶領域は、第一の記憶領域から物理的または論理アドレス的に隔離され、かつ第二の処理環境からのみアクセス可能に設定され、起動制御部は、制御処理の停止処理を開始した後、停止処理が終了する前に、通信制御部による通信機能を無効とし、続いて、検証値生成部に検証値を生成させた後に、制御処理部による制御処理を停止させ、制御処理部による制御処理を停止させた後に、時間計測部から起動指令を受信した場合には、通信制御部による通信機能を有効とし、通信制御部が外部機器から制御処理部による制御処理を実行するための起動要求を受信した場合には、停止処理の終了後、制御処理が起動する前に、検証実行部による比較処理および検証判定部による判定処理を実行させ、検証値生成部は、停止処理が終了する前に、検証値を生成し、生成した検証値を第二の記憶領域に格納し、検証実行部は、停止処理の終了後、制御処理が起動する前に、期待値と検証値との比較処理を実行し、検証合格か検証不合格かを示す比較結果を第一の処理環境内の検証判定部に送信し、検証判定部は、検証実行部から検証合格を示す比較結果を受信した場合には、制御処理部による制御処理を起動する判定処理を実行し、検証実行部から検証不合格を示す比較結果を受信した場合には、制御処理部による制御処理の起動を中止する判定処理を実行するものである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、本発明に係る制御方法は、本発明の制御装置において実行される制御装置の制御方法であって、検証値生成部が、制御処理の停止処理を開始した後、停止処理が終了する前に、第一の処理環境下の第一の記憶領域のデータに基づいて検証値を生成するステップと、検証値を第二の処理環境下の第二の記憶領域に格納するステップと、検証実行部が、停止処理の終了後、制御処理が起動する前に、第一の記憶領域のデータに基づいて予め生成された期待値と検証値との比較処理を実行するステップと、検証判定部が、比較処理の比較結果が検証合格の場合には、制御処理部による制御処理を起動する判定処理を実行するステップと、検証判定部が、比較結果が検証不合格の場合には、制御処理部による制御処理の起動を中止する判定処理を実行するステップと、さらに、起動制御部が、制御処理の停止処理を開始した後、停止処理が終了する前に、通信機能を無効とするステップと、
続いて、起動制御部が、検証値を生成させた後に、制御処理を停止させるステップと、起動制御部が、制御処理を停止させた後に、起動指令を受信した場合には、通信機能を有効とするステップと、通信制御部が、外部機器から制御処理を実行するための起動要求を受信した場合には、停止処理の終了後、制御処理が起動する前に、比較処理および判定処理を実行させるステップと、を備えるものである。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第一の処理環境と、前記第一の処理環境からハードウェア的に隔離された第二の処理環境と、
前記第一の処理環境下に、
制御対象への制御処理を実行する制御処理部と、
前記制御処理部が前記制御対象の制御のために用いるデータを格納する第一の記憶領域と、
前記制御処理を実行するか否かを判定する検証判定部と、
前記制御処理部による前記制御処理の停止および起動を制御する起動制御部と、
外部機器との通信機能を有する通信制御部と、
前記制御処理部による前記制御処理を起動する時刻になったことを起動指令として通知する時間計測部と、
を備え、
前記第二の処理環境下に、前記第一の記憶領域のデータに基づいて予め生成された期待値を格納する第二の記憶領域と、
前記第一の記憶領域のデータに基づいて検証値を生成する検証値生成部と、
前記第一の記憶領域のデータの検証を実行する検証実行部と、
を備えた制御装置であって、
前記第二の記憶領域は、前記第一の記憶領域から物理的または論理アドレス的に隔離され、かつ前記第二の処理環境からのみアクセス可能に設定され、
前記起動制御部は、
前記制御処理の停止処理を開始した後、前記停止処理が終了する前に、前記通信制御部による前記通信機能を無効とし、
続いて、前記検証値生成部に前記検証値を生成させた後に、前記制御処理部による前記制御処理を停止させ、
前記制御処理部による前記制御処理を停止させた後に、前記時間計測部から前記起動指令を受信した場合には、前記通信制御部による前記通信機能を有効とし、
前記通信制御部が前記外部機器から前記制御処理部による前記制御処理を実行するための起動要求を受信した場合には、前記停止処理の終了後、前記制御処理が起動する前に、前記検証実行部による比較処理および前記検証判定部による判定処理を実行させ、
前記検証値生成部は、前記停止処理が終了する前に、前記検証値を生成し、生成した前記検証値を前記第二の記憶領域に格納し、
前記検証実行部は、前記停止処理の終了後、前記制御処理が起動する前に、前記期待値と前記検証値との比較処理を実行し、検証合格か検証不合格かを示す比較結果を前記第一の処理環境内の前記検証判定部に送信し、
前記検証判定部は、
前記検証実行部から前記検証合格を示す比較結果を受信した場合には、前記制御処理部による前記制御処理を起動する判定処理を実行し、
前記検証実行部から前記検証不合格を示す比較結果を受信した場合には、前記制御処理部による前記制御処理の起動を中止する判定処理を実行する
制御装置。
【請求項２】
前記検証実行部は、前記検証値生成部により生成された複数の検証値と、前記第二の記憶領域に格納された複数の期待値とを比較し、それぞれの検証値について検証合格か検証不合格かを示す複数の比較結果を前記第一の処理環境下の前記検証判定部に送信し、
前記検証判定部は、前記複数の比較結果に基づいて、前記検証合格が得られた検証値に対応する制御処理の実行に限定し、前記制御処理部による前記制御処理の一部の起動を許可する
請求項１に記載の制御装置。
【請求項３】
請求項１又は２に記載の制御装置において実行される制御装置の制御方法であって、
前記検証値生成部が、前記制御処理の停止処理を開始した後、前記停止処理が終了する前に、
前記第一の処理環境下の第一の記憶領域のデータに基づいて検証値を生成するステップと、前記検証値を前記第二の処理環境下の第二の記憶領域に格納するステップと、
前記検証実行部が、前記停止処理の終了後、前記制御処理が起動する前に、
前記第一の記憶領域のデータに基づいて予め生成された期待値と前記検証値との比較処理を実行するステップと、
前記検証判定部が、前記比較処理の比較結果が検証合格の場合には、前記制御処理部による前記制御処理を起動する判定処理を実行するステップと、
前記検証判定部が、前記比較結果が検証不合格の場合には、前記制御処理部による前記制御処理の起動を中止する判定処理を実行するステップと
さらに、前記起動制御部が、前記制御処理の停止処理を開始した後、前記停止処理が終了する前に、通信機能を無効とするステップと、
続いて、前記起動制御部が、前記検証値を生成させた後に、前記制御処理を停止させるステップと、
前記起動制御部が、前記制御処理を停止させた後に、前記起動指令を受信した場合には、前記通信機能を有効とするステップと、
前記通信制御部が、前記外部機器から前記制御処理を実行するための起動要求を受信した場合には、前記停止処理の終了後、前記制御処理が起動する前に、前記比較処理および前記判定処理を実行させるステップと、
を備える制御装置の制御方法。