(57)【要約】  本発明は、高速起動時のセキュリティを確保する技術を提供する。本発明は、移動体に搭載される電子制御装置であって、コードを用いてマイコンを制御する制御部と、前記コードのセキュリティ検証を行うセキュリティ検証部と、前記コードの一部であって、前記マイコンが起動される場合に実行される起動コードを備え、前記制御部は、前記マイコンが停止状態に移行する際、前記セキュリティ検証部による前記コードもしくは前記起動コードの検証が完了した場合に、前記起動コードを次回起動時に実行するよう有効化する。
2020158377.tif 000002
【特許請求の範囲】
【請求項１】
移動体に搭載される電子制御装置であって、
コードを用いてマイコンを制御する制御部と、前記コードのセキュリティ検証を行うセキュリティ検証部と、
前記コードの一部であって、前記マイコンが起動される場合に実行される起動コードを備え、
前記制御部は、前記マイコンが停止状態に移行する際、
前記セキュリティ検証部による前記コードもしくは前記起動コードの検証が完了した場合に、
前記起動コードを次回起動時に実行するよう有効化する、電子制御装置。
【請求項２】
前記停止状態が前記マイコンのスタンバイ状態であって、
前記起動コードが、前記マイコンがスタンバイ状態から起動される場合に実行されるスタンバイ起動コードであって、
前記電子制御装置は、前記スタンバイ起動コードを記憶するスタンバイ起動コード記憶部を備え、
前記制御部は、前記マイコンがスタンバイ状態に移行する際、
前記セキュリティ検証部による前記コードもしくは前記スタンバイ起動コードの検証が完了した場合に、
前記スタンバイ起動コードを前記スタンバイ起動コード記憶部に格納する、請求項１に記載の電子制御装置。
【請求項３】
前記セキュリティ検証部は、前記マイコンが停止状態に移行する際、
前記セキュリティ検証部による前記コードもしくは前記起動コードの検証が完了した場合に、
前記起動コードを次回起動時に実行するよう有効化する、請求項１または２に記載の電子制御装置。
【請求項４】
コードを用いてマイコンを制御する制御部と、前記コードのセキュリティ検証を行うセキュリティ検証部と、
前記コードの一部であって、前記マイコンが起動される場合に実行される起動コードを備え、
前記制御部は、前記マイコンが停止状態に移行する際、
前記セキュリティ検証部による前記コードもしくは前記起動コードの検証が完了した場合に、
前記起動コードを次回起動時に実行するよう有効化する、電子制御装置のセキュリティ検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置、電子制御装置のセキュリティ検証方法に関する。
【背景技術】
【０００２】
近年、安全運転支援及び自動運転技術の進展によって、車両がサーバまたはクラウドのような車外システムと繋がるようになっている。車内外のセキュリティを確保するために、車載装置はセキュアブート等のコード検証機能が搭載されている。【０００３】
特許文献１には、セキュアブートの方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１８８８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
車載装置のコードの改竄を検知するために、車載装置に搭載されるＨＳＭ（Hardware Security Module）のようなセキュアモジュールを用い、起動時にセキュアブートを行うことが望ましい。【０００６】
一方、高速起動を要求されるＥＣＵの場合は、起動時にセキュアブートを実行する時間が確保できないため、コード実行前にコード検証処理をできず、セキュリティが確保できないという課題がある。しかし、コード検証処理が実行できない場合にセキュリティを確保する方法は、特許文献１には開示されていない。【０００７】
本発明は、上記課題を解決するためのものであり、その目的は、高速起動時のセキュリティを確保する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に従う電子制御装置は、移動体に搭載される電子制御装置であって、コードを用いてマイコンを制御する制御部と、前記コードのセキュリティ検証を行うセキュリティ検証部と、前記コードの一部であって、前記マイコンが起動される場合に実行される起動コードを備え、前記制御部は、前記マイコンが停止状態に移行する際、前記セキュリティ検証部による前記コードもしくは前記起動コードの検証が完了した場合に、前記起動コードを次回起動時に実行するよう有効化する。
【発明の効果】
【０００９】
本発明によれば、高速起動時のセキュリティを確保することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係るＥＣＵを示すブロック図。
【図２】第１実施形態に係るセキュリティ検証処理を示すフローチャート。
【図３】第１実施形態に係るセキュリティ検証処理を示すフローチャート。
【図４】第２実施形態に係るセキュリティ検証処理を示すフローチャート。
【図５】第３実施形態に係るセキュリティ検証処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して幾つかの実施形態について説明する。本実施形態は、本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については、同一の参照符号が付されている。
【００１２】
本実施形態では、コードのセキュリティ検証（以下、セキュアブートとも呼ぶ）処理を実行する電子制御装置（Electronic Control Unit。以下、ＥＣＵ）の一例を説明する。
【００１３】
＜第１実施形態＞
図１は、第１実施形態に係るＥＣＵの構成例を示すブロック図である。
【００１４】
ＥＣＵ９０１は、互いにバス線で結線された、メイン制御部１０と、メインコード記憶部１１と、スタンバイ起動コード記憶部１２と、メインデータ記憶部１５と、電源制御部１７と、デバッグポート１８と、通信部１９とを備える。さらに、バス線は、後述するセキュア制御部２０からアクセスすることができる。後述するセキュア領域に対し、これらの構成要素が所属する領域及び結線を、便宜的にメイン領域１と呼称する。
【００１５】
さらに、ＥＣＵ９０１は、互いにバス線で結線された、セキュア制御部２０と、セキュアコード記憶部２１と、セキュアデータ記憶部２５とを備える。セキュア制御部２０、セキュアコード記憶部２１、及びセキュアデータ記憶部２５が所属する領域及び結線を、便宜的にセキュア領域２と呼称する。前記メイン領域１は、ＥＣＵ９０１において、セキュア領域２を除く部分である。
【００１６】
メイン領域１のバス線と、セキュア領域２のバス線とは、セキュリティ確保の理由から、直接接続されていない。両領域１，２間のコマンド及びデータの転送は、セキュア制御部２０を介して行われる。
【００１７】
メイン制御部１０は、プロセッサ（ＣＰＵ、ＭＰＵ、またはＤＳＰ）を有しており、メインコード記憶部１１もしくはスタンバイ起動コード記憶部１２に格納されたプログラムを実行する。
【００１８】
メインコード記憶部１１は、メイン制御部１０が実行するプログラムを格納する。メインコード記憶部１１は、フラッシュメモリ、ＥＥＰＲＯＭ、ＳＳＤ、ＦＲＡＭ（登録商標、以下同じ）、または磁気ディスクのような不揮発性の記憶装置でよい。メインコード記憶部１１は、複数の記憶装置から構成されてよく、各プログラムは、複数の記憶装置に分散して格納されてよい。
【００１９】
スタンバイ起動コード記憶部１２は、メイン制御部１０がスタンバイ起動時に実行するプログラムを格納する。スタンバイ起動コード記憶部１２は、揮発性の記憶素子であるＲＡＭを有するメモリでよい。スタンバイ起動コード記憶部１２が揮発性の記憶素子からなる場合は、スタンバイ状態において後述する電源制御部１７より電源の共有を受けることにより値を保持する。もしくはフラッシュメモリ、ＥＥＰＲＯＭ、ＳＳＤ、ＦＲＡＭ、または磁気ディスクのような不揮発性の記憶装置でよい。スタンバイ起動コード記憶部１２は、複数の記憶装置から構成されてよく、各プログラムは、複数の記憶装置に分散して格納されてよい。
【００２０】
メインコード記憶部１１及びスタンバイ起動コード記憶部１２及びメインデータ記憶部１５は、不揮発性の記憶素子であるＲＯＭと、揮発性の記憶素子であるＲＡＭとを有するメモリでよい。ＲＯＭは、不変のプログラムを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、メイン制御部１０が実行するプログラムと、プログラムの実行時に使用されるデータとを一時的に格納する。
【００２１】
なお、メインコード記憶部１１及びスタンバイ起動コード記憶部及びメインデータ記憶部１５は、その一部または全部を互いの構成要素として有してよい。デバイスとして明確な区別が無くても、メインコード記憶部１１及びスタンバイ起動コード記憶部は、コードを記憶している部分を示し、メインデータ記憶部１５は、データを記憶している部分を示すとしてよい。
【００２２】
メインコード記憶部１１は、メイン制御コード１１０と、スタンバイ起動制御コード１１１とを備える。メイン制御コード１１０は、メイン制御部１０が実行するプログラムであり、ＥＣＵ９０１の車載装置としての機能を実現させるためのプログラムである。メイン制御コード１１０は、複数でもよい。
【００２３】
スタンバイ起動制御コード１１１は、メイン制御部１０に実行されるプログラムであり、ＥＣＵ９０１がスタンバイ状態から起動する際に実行されるプログラムである。スタンバイ起動制御コード１１１は、後述するシーケンスによって、ＥＣＵ９０１がスタンバイ状態となる前の所定のタイミングでスタンバイ起動コード記憶部１２に書き込まれる。
【００２４】
メインデータ記憶部１５は、メイン制御部１０がプログラムを実行するときに使用されるデータを格納する。メインデータ記憶部１５は、フラッシュメモリ、ＥＥＰＲＯＭ、ＳＳＤ、ＦＲＡＭ、または磁気ディスクのような不揮発性の記憶装置でよい。メインデータ記憶部１５は、複数の記憶装置から構成されてよく、各データは、複数の記憶装置に分散して格納されてよい。
【００２５】
メインデータ記憶部１５は、特に図示していないが、制御データを備える。メインデータ記憶部１５の制御データは、メイン制御部１０に実行されるメイン制御コード１１０もしくはスタンバイ起動制御コード１１１が処理に使用するデータであり、ＥＣＵ９０１の車載装置としての機能を実現させるためのデータである。メインデータ記憶部１５の制御データは、用途に応じて複数でよい。
【００２６】
電源制御部１７は、ＥＣＵ９０１の構成要素が電源の供給を受けるための構成要素である。電源制御部１７は、状態に応じて個々の構成要素に別個に電力を供給する。一例として、スタンバイ状態で、スタンバイ起動コード記憶部１２に電力を供給し、メイン制御部１０に電力を共有しない制御を行う。
【００２７】
デバッグポート１８は、メインコード記憶部１１やメインデータ記憶部に記憶されたコード及びデータを、ＥＣＵ９０１の外部から書き換えるためのモジュールである。デバッグポート１８は、ＪＴＡＧやＳＰＩなどであることが考えられる。デバッグポート１８はデバッガ等の接続を検知して、電源制御部１７と連携してＥＣＵ９０１をリセットすることが考えられる。
【００２８】
通信部１９は、ＥＣＵ９０１が車両９００の他の構成要素と通信するための構成要素である。通信部１９は、ＣＡＮ、ＣＡＮ  ＦＤ、Ｅｔｈｅｒｎｅｔ（登録商標）、またはＦｌｅｘＲａｙによって通信するためのモジュールである。ＥＣＵ９０１は、用途及び通信方式に応じて複数の通信部１９を含んでよい。さらに、通信部１９は、他の通信を実施するモジュールと共用でよい。なお、通信部１９は、無線通信する場合、アンテナ及び変復調回路を含んでよい。通信部１９は、有線通信する場合、コネクタ及び変復調回路を含んでよい。
【００２９】
セキュア制御部２０は、ＨＳＭ、ＳＨＥ、ＴＰＭ、その他セキュアマイコン、またはセキュアコアと呼ばれるプロセッサ（ＣＰＵ、ＭＰＵ、またはＤＳＰ）から構成される。セキュア制御部２０は、セキュアコード記憶部２１に格納されたプログラムを実行する。セキュア制御部２０には、耐タンパ性を有してよい。なお、セキュア制御部２０の例として示したＨＳＭ，ＳＨＥ、またはＴＰＭは、後述のセキュアコード記憶部２１、及びセキュアデータ記憶部２５を包含してよい。
【００３０】
セキュアコード記憶部２１は、セキュア制御部２０が実行するプログラムを格納する。セキュアコード記憶部２１は、フラッシュメモリ、ＥＥＰＲＯＭ、ＳＳＤ、ＦＲＡＭ、または磁気ディスクのような不揮発性の記憶装置でよい。セキュアコード記憶部２１は、耐タンパ性を有してよい。セキュアコード記憶部２１は、複数の記憶装置から構成されてよく、各プログラムは、複数の記憶装置に分散して格納されてよい。
【００３１】
セキュアデータ記憶部２５は、セキュア制御部２０がプログラムを実行するときに使用されるデータを格納する。セキュアデータ記憶部２５は、フラッシュメモリ、ＥＥＰＲＯＭ、ＳＳＤ、ＦＲＡＭ、または磁気ディスクのような不揮発性の記憶装置でよい。セキュアデータ記憶部２５は、耐タンパ性を有してよい。
【００３２】
セキュアコード記憶部２１及びセキュアデータ記憶部２５は、不揮発性の記憶素子であるＲＯＭと、揮発性の記憶素子であるＲＡＭとを有するメモリでよい。ＲＯＭは、不変のプログラムを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、セキュア制御部２０が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００３３】
さらに、セキュアコード記憶部２１及びセキュアデータ記憶部２５は、その一部または全部を互いの構成要素として有してよい。デバイスとして明確な区別が無くても、セキュアコード記憶部２１は、セキュア領域２においてコードを記憶している部分を示し、セキュアデータ記憶部２５は、セキュア領域２においてデータを記憶している部分を示すとしてよい。
【００３４】
セキュアコード記憶部２１は、セキュア制御コード２１０を備える。セキュア制御コード２１０は、セキュア制御部２０で実行されるプログラムであり、ＥＣＵ９０１の車載装置としてのセキュリティ機能を実現させるためのプログラムである。セキュア制御コード２１０は、複数でよい。後述するシーケンスにおいて、セキュア制御コード２１０は、ＥＣＵ９０１のコードの正当性の検証を行う。
【００３５】
セキュアデータ記憶部２５は、スタンバイ起動制御コード格納部２５１と、検証用費判定フラグとを備える。スタンバイ起動制御コード格納部２５１は、スタンバイ起動コード１１１を一時的または永続的に格納するための領域であり、後述する第２実施形態において詳細を述べる。検証要否判定フラグ２５２は、セキュア制御部２０によるコード検証が必要か否かを判定するためのフラグであり、後述する第３実施形態において詳細を述べる。
【００３６】
また、セキュアデータ記憶部２５は、セキュア制御部２０に実行されるセキュア制御コード２１０が処理に使用するセキュア制御データを保持してよい。セキュアデータ記憶部２５が保持するセキュア制御データは、ＥＣＵ９０１の車載装置としてのセキュリティ機能を実現させるためのデータであり、用途に応じて複数でよい。
【００３７】
以下、図２と図３を参照しながらセキュリティ検証処理の一例を説明する。
【００３８】
図２は、第１実施形態に係るセキュリティ検証処理を示すフローチャートである。
【００３９】
以下、メインコード記憶部１１のプログラムが実行主体となる記述をした場合、メイン制御部１０によって当該プログラムが実行されるものとする。さらに、セキュアコード記憶部２１のプログラムが実行主体となる記述をした場合、セキュア制御部２０によって当該プログラムが実行されるものとする。
【００４０】
さらに、以下の図中の矢印は、概念的なコマンド及びデータの流れを示したものであって、通信方向及び指示方向を限定するものではない。矢印で図示されていない処理指示及びデータの流れがあってよい。
【００４１】
図示したシーケンスは、ＥＣＵ９０１が、スタンバイ状態への移行を開始した状態から開始する（Ｓ１０１）。ＥＣＵ９０１のスタンバイ状態への移行は、例えばエンジンＯＦＦなどをきっかけに開始する。
【００４２】
まず、メイン制御部１１は、セキュア制御部２１にコード検証の実行を要求する（Ｓ１０２）。これを受けセキュア制御部２１はメインコード記憶部１１の制御コードのコード検証を行う（Ｓ１０３）。Ｓ１０２は無くともよく、Ｓ１０２が無い場合はセキュア制御部２１がＳ１０１の次のステップとしてＳ１０３を実行してよい。あるいはセキュア制御部２１がタイマ駆動などでＳ１０３を実行してもよい。Ｓ１０３でのコード検証が失敗した場合（Ｓ１０４  ＮＧ）、セキュア制御部２１は所定のエラー処理を実施する（Ｓ１０５）。コード検証が成功した場合（Ｓ１０４  ＯＫ）、セキュア制御部２１は検証完了をメイン制御部１１に通知する（Ｓ１０６）。コード検証が正しく完了したことを受けたメイン制御部１１は、スタンバイ起動制御コード１１１をスタンバイ起動コード記憶部１２に書き込み（Ｓ１０７）、スタンバイモードに入る（Ｓ１０８）。
【００４３】
特に図２に示してはいないが、スタンバイモードでは、スタンバイ起動コード記憶部１２に対し電源制御部１７から電源が供給されており、スタンバイ起動コード記憶部１２はスタンバイモード中も値を保持することができる。またスタンバイモードではメイン制御部１１やセキュア制御部２１への電源供給が停止されていてよい。
【００４４】
続いて、エンジンＯＮなどのトリガでＥＣＵ９０１のスタンバイ起動が開始すると（Ｓ１０９）、電源供給部１７よりメイン制御部１１に電源が供給され、メイン制御部１１は、スタンバイ起動コード記憶部１２に格納されたスタンバイ起動制御コード１１を実行する（Ｓ１１０）。メイン制御部１１は、Ｓ１１０に続いてメイン制御コード１１０を実行してよい（Ｓ１１１）。
【００４５】
また図２に示してはいないが、スタンバイ起動制御コード１１０は、その処理の中でセキュア制御部２１にコード検証要求を行っても良い。これを受けたセキュア制御部２１でのコード検証は、検証範囲はＳ１０３と同等であってよく、また、メイン制御部１１によるスタンバイ起動制御コード１１１の実行もしくはメイン制御コード１１０の実行と、並行して行われてよい。
【００４６】
図３は、第１実施形態に係るセキュリティ検証処理を示すフローチャートであり、図２を用いて説明したフローチャートの分岐処理である。尚、図３に係るセキュリティ検証処理は、図２に係るセキュリティ検証処理において、スタンバイモード中にＥＣＵ９０１にリセットがかかるケースを述べたものであり、その他の構成は、図２に係るリプログラミング処理と同様である。したがって、図２との相違点を中心に述べる。
【００４７】
Ｓ１０８でＥＣＵ９０１がスタンバイモードにある場合に、デバッガ等が接続された場合（Ｓ２０１）、デバッグポート１８と電源制御部１７が連携してリセットが発生する（Ｓ２０２）。このときリセットによってスタンバイモードは解除され、スタンバイ起動コード記憶部１２はクリアされる（Ｓ２０３）。Ｓ２０３は、スタンバイ起動コード記憶部１２が不揮発メモリである場合は、明示的な書き換え処理を行ってもよい。
【００４８】
スタンバイモードが解除されてリセットからの起動となったＥＣＵ９０１は、セキュア制御部２２でメインコード記憶部１１の制御コードのコード検証を行う（Ｓ２０４）。Ｓ１０２とＳ１０３の関係のように、メイン制御部１１の信頼されたコードからコード検証要求を受けてＳ２０４が実行されてもよい。Ｓ２０５でのコード検証が失敗した場合（Ｓ２０５  ＮＧ）、セキュア制御部２１は所定のエラー処理を実施する（Ｓ２０６）。コード検証が成功した場合（Ｓ２０５  ＯＫ）、セキュア制御部２１は検証完了をメイン制御部１１に通知する（Ｓ２０７）。以降、コード検証が正しく完了したことを受けたメイン制御部１１は、Ｓ１１１の処理に進む。
【００４９】
尚、Ｓ２０１においてデバッガ接続を検知することはシーケンスの一例であり、Ｓ２０２のリセット動作が発生する処理フローであれば本例に限るものではない。すなわち、Ｓ２０１を含む、ＥＣＵ９０１のコード改竄等の攻撃などが疑われる任意の事象により、Ｓ２０２のリセットが発生する場合に、Ｓ２０４以降の処理が実行される。
【００５０】
この構成によれば、リセットを伴う不正なコード書き換えを検知しつつ、スタンバイモードからの高速起動時のセキュリティを確保することができる。
【００５１】
なお、本実施形態において説明したステップが、実施されている最中に、何らかのエラーが発生した場合、そのエラーが車両情報システムの各構成要素の制御部に通知されてよい。
【００５２】
また、メイン制御コード１１０、スタンバイ起動制御コード１１１、及びセキュア制御コード２１０に含まれる各プログラムは、必要に応じて、実行中の処理を示す情報を表示装置に表示してよい。これら各プログラムは、特に一連の処理の完了や、分岐処理の発生を示す情報を表示装置に表示することが望ましい。さらに、分岐処理における判定を、入力装置を介してユーザが実行してよい。
【００５３】
さらに、本実施形態において、各ステップ間の情報のやり取りを省略していることがある。しかし、実際には、コマンドに対するレスポンスのペアを成していることがある。さらに、各ステップ間の情報のやり取りを一組の双方向矢印で示している場合でも、このやり取りにおいて複数のコマンド及びレスポンスを含んでよい。さらに、エンティティ間でデータを送受信する内容を記述している場合でも、実際の通信は、一方のエンティティがクライアント役、他方のエンティティがサーバ役となることがある。この場合、実際の通信は、コマンド及びレスポンスを通じて実施され、その結果として前述のデータを送信してよい。
【００５４】
＜第２実施形態＞
第２実施形態に係るセキュリティ検証処理について説明する。尚、第２実施形態に係るセキュリティ検証処理は、第１実施形態に係るセキュリティ検証処理とは、スタンバイ起動制御コード１１１の書き込みの主体が異なるだけであり、その他の構成は、第１実施形態に係るセキュリティ検証処理と同様である。したがって、第１実施形態との相違点を中心に述べる。
【００５５】
図４は、第２実施形態に係るセキュリティ検証処理を示すフローチャートである。
【００５６】
図４では、図３のＳ１０７に変わり、セキュア制御部２１がＳ１０４（ＯＫ）の後に、スタンバイ起動制御コード格納部２５１に格納したスタンバイ起動制御コード１１１をスタンバイ起動コード記憶部１２に書き込む（Ｓ３０１）。セキュア制御部２０は、予めメインコード記憶部１１からスタンバイ起動制御コード１１１をスタンバイ起動制御コード格納部２５１にコピーしてよい。あるいはスタンバイ起動制御コード格納部２５１に永続的にスタンバイ起動制御コード１１１を保持していてもよい。以降、図２で示したフローと同様の処理を実行する。
【００５７】
第２の実施形態においては、スタンバイ起動コード記憶部１２は、セキュア領域２のみから書き込み可能であるように制御され、メイン領域１からは読み出しのみが可能であるように制御されることが望ましい。
【００５８】
この構成によれば、スタンバイ起動開始時に読み出されるスタンバイ起動コード記憶部１２のコードが、セキュア領域２からによってのみ書き込まれることが保障されることから、高速起動時のセキュリティをより高い強度で確保することができる。
【００５９】
＜第３実施形態＞
第３実施形態に係るセキュリティ検証処理について説明する。尚、第３実施形態に係るセキュリティ検証処理は、第１実施形態に係るセキュリティ検証処理とは、セキュリティ検証実施要否の判断の方法が異なるだけであり、その他の構成は、第１実施形態に係るリプログラミング処理と同様である。したがって、第１実施形態との相違点を中心に述べる。
【００６０】
図５は、第３実施形態に係るセキュリティ検証処理を示すフローチャートである。
【００６１】
図５では、ＥＣＵ９０１が、シャットダウンへの移行を開始した状態から開始する（Ｓ４０１）。第１、第２の実施形態と同様に、スタンバイ状態への以降を契機としてもよい。以降、Ｓ１０２〜Ｓ１０４（ＯＫ）まで、第２と同様に処理した後、検証が成功したことを受けて検証済みフラグを検証用費判定フラグ２５２に書き込む（Ｓ４０２）。その後、ＥＣＵ９０１は電源ＯＦＦ状態に移行する（Ｓ４０３）。第１、第２の実施形態と同様に、スタンバイモードに移行してもよい。
【００６２】
Ｓ４０３でＥＣＵ９０１が電源ＯＦＦ状態にある場合に、デバッガ等が接続された場合（Ｓ４０４）、デバッグポート１８とセキュア制御部２１が連携して検証要否判定フラグ２５２の検証済みフラグをクリアする。
【００６３】
ＥＣＵ９０１にエンジンＯＮなどで電源が投入されたり、リセットされたりすると（Ｓ４０５）、セキュア制御部２２は検証可否判定フラグ２５２をチェックし、検証済みであれば（Ｓ４０６  ＹＥＳ）、Ｓ２０７に進む。検証済みでなければ（Ｓ４０６  ＮＯ）、Ｓ２０４に進んでコード検証を実施する。ここで、検証済みである場合とは、シャットダウン前にＳ４０２によって検証要否判定フラグ２５２に検証済みを示すフラグが書き込まれ、かつ、Ｓ４０４等の検証済みを示すフラグのクリアが行われる処理が発生しなかった場合になる。
【００６４】
尚、Ｓ４０４においてデバッガ接続を検知することはシーケンスの一例であり、Ｓ４０４で検証済みフラグのクリアが行われる処理フローであれば本例に限るものではない。すなわち、Ｓ４０４を含む、ＥＣＵ９０１のコード改竄等の攻撃などが疑われる任意の事象により、検証要否判定フラグ２５２の検証済みフラグのクリアが行われる場合に、Ｓ２０４以降の処理が実行される。
【００６５】
この構成によれば、検証要否をセキュア制御部２１によって判断することが可能となり、スタンバイ起動に限らず、セキュリティを保ちつつ高速起動が可能となる。
【００６６】
なお、本発明は上記した各実施形態に限定されるものではなく、様々な変形例が含まれる。上記した各実施形態は本発明を分かりやすく説明するために詳細に説明されたものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。さらに、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、さらに、ある実施形態の構成に他の実施形態の構成を加えることも可能である。さらに、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００６７】
さらに、上記の各構成、機能、処理部、処理手段は、それらの一部または全部を、集積回路で設計することによって、ハードウェアで実現してよい。さらに、上記の各構成、機能は、プロセッサがそれぞれの機能を実現するプログラムを解釈及び実行することによって、ソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、及びファイルのような情報は、メモリ、ハードディスク、若しくはＳＳＤの記録装置、または、ＩＣカード、ＳＤカード、若しくはＤＶＤのような記録媒体に格納されてよい。
【００６８】
さらに、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には、殆ど全ての構成が相互に接続されてよい。
【符号の説明】
【００６９】
１…メイン領域、２…セキュア領域、１０…メイン制御部、１１…メインコード記憶部、１２…スタンバイ起動コード記憶部、１５…メインデータ記憶部、１７…電源制御部、１８…デバッグポート、１９…通信部、２０…セキュア制御部、２１…セキュアコード記憶部、２２…セキュアデータ記憶部、１１０…メイン制御コード、１１１…スタンバイ起動制御コード、２１０…セキュア制御コード、２５１…スタンバイ起動制御コード格納部、２５２…検証要否判定フラグ、９０１…ＥＣＵ
【図１】
2020158377.tif 000003
【図２】
2020158377.tif 000004
【図３】
2020158377.tif 000005
【図４】
2020158377.tif 000006
【図５】
2020158377.tif 000007
【国際調査報告】
2020158377.tif 000008
2020158377.tif 000009
2020158377.tif 000010
2020158377.tif 000011