(57)【要約】      （修正有）【課題】共有メモリにアクセス可能なアプリケーションがサイバー攻撃を受けた場合であっても、共有メモリに書き込まれたデータを保護する電子制御装置を提供する。【解決手段】電子制御装置は、非セキュア領域内の共有メモリ１０２と、セキュア領域内の退避先メモリ１０４と、共有メモリに対するアクセス権情報を保存するアクセス権情報保存部１０５と、共有メモリへのデータの書き込み要求及び共有メモリから退避先メモリへのデータの退避要求を出力するとともに、データが共有メモリに書き込まれた場合、アクセス権情報を書き込み不可に設定し、データが共有メモリから退避先メモリに退避された場合、アクセス権情報を書き込み可能に設定する共有メモリ監視部１０６と、共有メモリ監視部からの書き込み要求または退避要求に基づいて、共有メモリへのデータの書き込み又は退避先メモリへのデータの退避を実行するメモリコントローラ１０８と、を備える。【選択図】図１
2019144794.tif 000002
【特許請求の範囲】
【請求項１】
非セキュア領域とセキュア領域とを有する電子制御装置（１０，２０，３０，４０）であって、
前記非セキュア領域内の共有メモリ（１０２）と、
前記セキュア領域内の退避先メモリ（１０４）と、
前記共有メモリに対するアクセス権情報を保存するアクセス権情報保存部（１０５）と、
前記共有メモリへのデータの書き込み要求、及び前記共有メモリから前記退避先メモリへの前記データの退避要求を出力するとともに、前記データが前記共有メモリに書き込まれた場合、前記アクセス権情報を書き込み不可に設定し、前記データが前記共有メモリから前記退避先メモリに退避された場合、前記アクセス権情報を書き込み可能に設定する、共有メモリ監視部（１０６）と、
前記共有メモリ監視部からの前記書き込み要求または前記退避要求に基づいて、前記共有メモリへの前記データの書き込みまたは前記退避先メモリへの前記データの退避を実行するメモリコントローラ（１０８）と、
を備える、電子制御装置。
【請求項２】
前記アクセス権情報保存部および前記共有メモリ監視部は前記セキュア領域に設けられている、
請求項１記載の電子制御装置。
【請求項３】
前記共有メモリ監視部は、前記アクセス権情報が書き込み不可に設定された前記共有メモリへの第１のデータの書き込み要求をアプリケーションから受信した場合、前記共有メモリに書き込まれているデータである第２のデータの前記退避要求を出力する、
請求項１記載の電子制御装置（１０）。
【請求項４】
前記共有メモリ監視部は、前記アクセス権情報が書き込み可能に設定された前記共有メモリへの第１のデータの書き込み要求をアプリケーションから受信し、かつ、前記共有メモリの空き容量が前記第１のデータのデータサイズ以下の場合、前記共有メモリに書き込まれているデータである第２のデータの前記退避要求を出力する、
請求項１記載の電子制御装置（１０）。
【請求項５】
前記メモリコントローラはさらに、前記共有メモリへの前記データの書き込み要求を出力した当該電子制御装置のドライバの改ざん有無を判定し、前記ドライバの改ざんがないと判定した場合に前記共有メモリへの前記データの書き込みを実行する、
請求項１記載の電子制御装置。
【請求項６】
当該電子制御装置はさらに、前記ドライバのプログラムが格納されているコード領域のハッシュ値の期待値を保存する期待値保存部（２０１）を備え、
前記メモリコントローラは、前記ドライバの前記コード領域のハッシュ値を算出し、前記期待値と算出した前記ハッシュ値とに基づいて前記ドライバの改ざん有無を判定する、
請求項５記載の電子制御装置（２０）。
【請求項７】
当該電子制御装置はさらに、
前記退避先メモリに退避された前記データを当該電子制御装置の外部に設けられたストレージに転送するアップロード実行部（３０１）を備える、
請求項１記載の電子制御装置（３０）。
【請求項８】
前記アップロード実行部は、前記ストレージへの前記データの転送が完了した後に前記退避先メモリから前記データを削除する、
請求項７記載の電子制御装置。
【請求項９】
前記アップロード実行部は、前記退避先メモリの空き容量が閾値以下の場合に前記データを前記ストレージに転送する、
請求項７記載の電子制御装置。
【請求項１０】
前記アップロード実行部は、当該電子制御装置と前記ストレージとの間の通信帯域の使用率をモニタし、前記通信帯域の前記使用率が閾値以下の場合に前記データを前記ストレージに転送する、
請求項７記載の電子制御装置。
【請求項１１】
前記アップロード実行部は、当該電子制御装置の前記セキュア領域に割り当てられたＣＰＵ資源の使用率をモニタし、前記使用率が閾値以下の場合に前記データを前記ストレージに転送する、
請求項７記載の電子制御装置。
【請求項１２】
当該電子制御装置は車両に搭載される電子制御装置であり、
前記アップロード実行部は、前記車両のエンジンが停止した場合に前記データを前記ストレージに転送する、
請求項７記載の電子制御装置。
【請求項１３】
当該電子制御装置はさらに、当該電子制御装置に発生する異常を検出する異常検知部を備え、
前記アップロード実行部は、前記異常検知部が前記異常を検出した場合に前記データを前記ストレージに転送する、
請求項７記載の電子制御装置。
【請求項１４】
前記アップロード実行部は、前記ストレージへの前記データの転送が失敗した場合、前記転送が失敗したことを示すログを当該電子制御装置の外部に設けられたデータレコーダに書き込む、
請求項７記載の電子制御装置。
【請求項１５】
当該電子制御装置は、車両に搭載される電子制御装置であって、
前記車両の状態を示す自車両情報を取得する情報取得部（４０１）と、
前記自車両情報に基づいて、前記車両に発生した異常を検出する車両異常検出部（４０２）と、
をさらに備え、
前記共有メモリ監視部は、前記車両異常検出部が前記異常を検出した場合に、前記共有メモリに対するアクセス権情報を書き込み可能に設定する、
請求項１記載の電子制御装置（４０）。
【請求項１６】
アプリケーションから、電子制御装置の非セキュア領域に設けられた共有メモリへのデータの書き込みを要求する第１の書き込み要求を受信するステップと、
前記データの書き込みが要求された前記共有メモリに対するアクセス権情報を参照するステップと、
前記アクセス権情報が、前記共有メモリが書き込み可能であることを示している場合、前記共有メモリへの前記データの書き込みを要求する第２の書き込み要求を出力するステップと、
前記データが前記共有メモリに書き込まれると、前記アクセス権情報を書き込み不可に設定するステップと、
前記共有メモリから、前記電子制御装置のセキュア領域に設けられた退避先メモリへの前記データの退避を要求する退避要求を出力するステップと、
前記データが前記共有メモリから前記退避先メモリに退避されると、前記アクセス権情報を書き込み可能に設定するステップと、
を含む、データ保護方法。
【請求項１７】
アプリケーションから、電子制御装置の非セキュア領域に設けられた共有メモリへのデータの書き込みを要求する第１の書き込み要求を受信するステップと、
前記データの書き込みが要求された前記共有メモリに対するアクセス権情報を参照するステップと、
前記アクセス権情報が、前記共有メモリが書き込み可能であることを示している場合、前記共有メモリへの前記データの書き込みを要求する第２の書き込み要求を出力するステップと、
前記データが前記共有メモリに書き込まれると、前記アクセス権情報を書き込み不可に設定するステップと、
前記共有メモリから、前記電子制御装置のセキュア領域に設けられた退避先メモリへの前記データの退避を要求する退避要求を出力するステップと、
前記データが前記共有メモリから前記退避先メモリに退避されると、前記アクセス権情報を書き込み可能に設定するステップと、
をコンピュータに実行させる、データ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置（ＥＣＵ：Electric Control Unit）に関するものであり、主として、車両用の電子制御装置に用いるものである。
【背景技術】
【０００２】
近年、自動車には、ＣＡＮ（Controller Area Network）と呼ばれる車載ネットワークで互いに接続された様々な種類の電子制御装置が搭載されている。これらの電子制御装置は、エンジンやハンドルといった車両の動作を制御するものであり、第三者による不正アクセスや、このような不正アクセスによるデータの改ざんを防止するための高いセキュリティが求められる。
【０００３】
例えば、特許文献１には、記憶装置に記録されたデータへのアクセスを監視し、許可されていないプロセスやユーザからアクセスを受けた場合にはプロセスを強制的に終了させることにより、データの破損や上書きを防止する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３１２２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示の技術によれば、許可されていないプロセスからデータを保護することが可能となる。しかしながら、サイバー攻撃等によって許可されているプロセスのプログラムが改ざんされた場合、このプロセスからはデータにアクセスすることが可能であるため、データを保護することができないおそれがある。
【０００６】
そこで、本発明の目的は、データにアクセス可能なプロセスがサイバー攻撃を受けた場合であっても、データの保護を実現することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の非セキュア領域とセキュア領域とを有する電子制御装置（１０，２０，３０，４０）は、
前記非セキュア領域内の共有メモリ（１０２）と、
前記セキュア領域内の退避先メモリ（１０４）と、
前記共有メモリに対するアクセス権情報を保存するアクセス権情報保存部（１０５）と、
前記共有メモリへのデータの書き込み要求、及び前記共有メモリから前記退避先メモリへの前記データの退避要求を出力するとともに、前記データが前記共有メモリに書き込まれた場合、前記アクセス権情報を書き込み不可に設定し、前記データが前記共有メモリから前記退避先メモリに退避された場合、前記アクセス権情報を書き込み可能に設定する、共有メモリ監視部（１０６）と、
前記共有メモリ監視部からの前記書き込み要求または前記退避要求に基づいて、前記共有メモリへの前記データの書き込みまたは前記退避先メモリへの前記データの退避を実行するメモリコントローラ（１０８）と、
を備える。
【発明の効果】
【０００８】
本発明の電子制御装置によれば、共有メモリに書き込まれたデータを適切に保護することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１の電子制御装置の構成を説明するブロック図
【図２】本発明の実施形態１の電子制御装置の動作を説明する図
【図３】本発明の実施形態１の電子制御装置の動作を説明する図
【図４】本発明の実施形態２の電子制御装置の構成を説明するブロック図
【図５】本発明の実施形態２の電子制御装置の動作を説明する図
【図６】本発明の実施形態３の電子制御装置の構成を説明するブロック図
【図７】本発明の実施形態４の電子制御装置の構成を説明するブロック図
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語は、特許請求の範囲又は課題を解決するための手段の項に記載された語を意味し、同じく以下の実施形態に限定されるものではない。また、特許請求の範囲の従属項に記載の構成及び方法、従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明においては任意の構成及び方法である。
なお、各実施形態に開示の構成は、各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の手段と共に発明の進歩性を肯定する事実である。
【００１１】
（実施形態１）
本実施形態１の電子制御装置の構成を図１を用いて説明する。図１に示す電子制御装置１０は、「非セキュア領域」と、非セキュア領域からはアクセスできない領域である「セキュア領域」とを有している。電子制御装置１０の非セキュア領域には、アプリケーション実行部１０１（図中では、ＡＰＰ実行部と示す）、共有メモリ１０２、及びドライバ１０３が設けられている。セキュア領域には、退避先メモリ１０４、アクセス権情報保存部１０５、共有メモリ監視部１０６、及び退避実行部１０７が設けられている。さらに、電子制御装置１０は、メモリコントローラ１０８を備えている。
【００１２】
ここで、本発明の「非セキュア領域」とは、「非セキュア領域」および「セキュア領域」のいずれからもアクセス可能な領域をいう。また、本発明の「セキュア領域」とは、「非セキュア領域」からはアクセスできず、同じ「セキュア領域」からのみアクセス可能な領域をいう。
【００１３】
アプリケーション実行部１０１は、共有メモリ１０２へのアクセス権限を有する任意のアプリケーションプログラムを実行し、アプリケーションプログラムにしたがって、共有メモリ１０２へのデータの書き込み要求を出力する。なお、本実施形態では、アプリケーション実行部１０１は非セキュア領域に設けられている。
【００１４】
共有メモリ１０２は、非セキュア領域に設けられたランダムアクセスメモリである。ランダムアクセスメモリは揮発性メモリであり、ＳＲＡＭやＤＲＡＭをはじめ、様々な方式のメモリを含む。共有メモリ１０２は非セキュア領域に設けられているため、共有メモリ１０２に書き込まれたデータは、サイバー攻撃等によって改ざん又は削除される可能性がある。
【００１５】
ドライバ１０３は、メモリコントローラ１０８に対して、共有メモリ１０２へのデータの書き込み要求、または、退避先メモリ１０４へのデータの退避要求を出力する。なお、本実施形態では、ドライバ１０３は非セキュア領域に設けられており、サイバー攻撃等を受ける可能性がある。
【００１６】
退避先メモリ１０４は、セキュア領域に設けられたランダムアクセスメモリであり、共有メモリ１０２に書き込まれたデータの退避先となるメモリである。退避先メモリ１０４はセキュア領域に設けられているため、退避先メモリ１０４に書き込まれたデータがサイバー攻撃によって改ざん等される可能性は低く、セキュリティ性が高い。
【００１７】
アクセス権情報保存部１０５は、「共有メモリ１０２に対するアクセス権情報」を保存するメモリ領域である。本実施形態のアクセス権情報保存部１０５は、アクセス権情報のセキュリティ性を高めるためにセキュア領域に設けられている。アクセス権情報は、例えば、書き込み権限（write/read）または読み取り権限（read-only）を示す情報であるが、共有メモリ１０２へのデータの書き込み可能又は書き込み不可のいずれかを示すものであればよい。
ここで、本発明の「共有メモリに対するアクセス権情報」とは、共有メモリ全体に対するアクセス権を示す情報だけでなく、共有メモリの一部の領域に対するアクセス権を示す情報であってもよい。
【００１８】
共有メモリ監視部１０６は、アプリケーション実行部１０１からの書き込み要求に基づいて、共有メモリへの「データ」の書き込み要求を出力する。そして、この書き込み要求に基づいてデータが共有メモリに書き込まれた場合、アクセス権情報保存部１０５に保存されているアクセス権情報を書き込み可能から書き込み不可に設定する。また、共有メモリ監視部１０６は、アクセス権情報が不正に変更されるのを防ぐために、セキュリティ性が高いセキュア領域に設けられている。
ここで、本発明の「データ」とは、アプリケーションが取り扱うデータの他、アプリケーションやシステムの履歴を示すログをも含む。
【００１９】
共有メモリ監視部１０６はさらに、共有メモリ１０２内に既に保存されているデータを、共有メモリ１０２から退避先メモリ１０４に退避させることを要求する退避要求を出力する。そして、この退避要求に基づいてデータが共有メモリ１０２から退避先メモリ１０４に退避された場合、アクセス権情報保存部１０５に保存されているアクセス権情報を書き込み不可から書き込み可能に設定する。
【００２０】
退避実行部１０７は、共有メモリ監視部１０６からの退避要求に基づいて、退避先メモリ１０４へのデータの退避要求をドライバ１０３に対して出力する。
【００２１】
メモリコントローラ１０８は、ドライバ１０３からの書き込み要求に基づいて、共有メモリ１０２へのデータの書き込みを実行する。メモリコントローラ１０８はさらに、ドライバ１０３からの退避要求に基づいて、退避先メモリ１０４への「データの退避」を実行する。
ここで、本発明の「データの退避」とは、データを共有メモリから読み出して退避先メモリに書き込むことをいい、共有メモリに保存されていたデータが削除されるか否かは問わない。
【００２２】
次に、本実施形態の電子制御装置１０の動作を、図２、３を用いて説明する。
【００２３】
アプリケーション実行部１０１は、共有メモリ１０２にデータを書き込むこと要求する書き込み要求を出力する（Ｓ１０１）。この書き込み要求には、データの書き込み先である共有メモリのアドレスと、書き込むデータのサイズが含まれる。
一般に、アプリケーション実行部から出力されたデータの書き込み要求はドライバが受信し、アプリケーション実行部からの書き込み要求に基づいて、ドライバがメモリコントローラに対してデータの書き込みを指示する。これに対し、本発明では、アプリケーション実行部１０１からの書き込み要求をフックして、共有メモリ監視部１０６において処理を実行する。
【００２４】
共有メモリ監視部１０６は、書き込み要求をフックしてアプリケーション実行部１０１からの書き込み要求を受信すると、アクセス権情報保存部１０５にアクセスして、データの書き込み先である共有メモリ１０２の所定の領域のアクセス権情報を参照する（Ｓ１０２）。
【００２５】
Ｓ１０２においてアクセス権情報を参照した結果、アクセス権情報が、共有メモリ１０２の所定の領域が書き込み可能であることを示している場合、共有メモリ監視部１０６は、ドライバ１０３に対して書き込み要求を出力する（Ｓ１０３）。ドライバ１０３は、共有メモリ監視部１０６から書き込み要求を受信すると（Ｓ１０３）、メモリコントローラ１０８に対して書き込み要求を出力する（Ｓ１０４）。
【００２６】
メモリコントローラ１０８は、ドライバ１０３からの書き込み要求に基づいて、共有メモリ１０２へのデータの書き込みを実行する（Ｓ１０５）。そして、データの書き込みが完了すると、データの書き込みが完了したことを知らせる書き込み完了通知をドライバ１０３に対して出力する（Ｓ１０６）。ドライバ１０３は、メモリコントローラ１０８から書き込み完了通知を受信すると、共有メモリ監視部１０６に対して書き込み完了通知を出力する（Ｓ１０７）。
【００２７】
共有メモリ監視部１０６は、ドライバ１０３から書き込み完了通知を受信すると（Ｓ１０７）、Ｓ１０５においてデータが書き込まれた共有メモリ１０２に対するアクセス権情報を、書き込み可能から書き込み不可に設定する（Ｓ１０８）。そして、データの書き込みを要求したアプリケーション実行部１０１に対し、書き込み完了通知を出力する（Ｓ１０９）。なお、共有メモリ監視部１０６は、書き込み完了通知を出力（Ｓ１０９）した後にアクセス権情報を書き込み不可に設定（Ｓ１０８）してもよい。
【００２８】
図２に示す一連の処理により、共有メモリ１０２へのデータの書き込みが完了する。ここで、上述したとおり、共有メモリ１０２は非セキュア領域に設けられているため、以上の処理によって共有メモリ１０２に書き込まれたデータは改ざんされる可能性がある。そこで、Ｓ１０９の処理が完了すると、以下に説明する、図３に示す一連の処理を実行することにより、共有メモリ１０２のデータを、セキュア領域に設けられたセキュリティ性の高い退避先メモリ１０４へと退避させる。
【００２９】
Ｓ１０９において、共有メモリ監視部１０６がアプリケーション実行部１０１に対して書き込み完了通知を出力した後、共有メモリ監視部１０６は、共有メモリ１０２に書き込まれたデータを退避先メモリ１０４に退避させることを要求する退避要求を退避実行部１０７に対して出力する（Ｓ２０１）。この退避要求には、退避させるデータのサイズと、退避させるデータが書き込まれている共有メモリ１０２のアドレスとが含まれる。
【００３０】
退避実行部１０７は、共有メモリ監視部１０６から受信した退避要求に基づいて、ドライバ１０３に対して退避要求を出力する（Ｓ２０２）。退避実行部１０７からの退避要求には、共有メモリ監視部１０６からの退避要求に含まれる、データのサイズと共有メモリ１０２のアドレスとに加えて、データの退避先である退避先メモリ１０４のアドレスが含まれる。
【００３１】
Ｓ２０２において退避実行部１０７から退避要求を受信すると、ドライバ１０３は、共有メモリ１０２から退避先メモリ内の指定されたアドレスにデータを退避させることを要求する退避要求をメモリコントローラ１０８に対して出力する（Ｓ２０３）。
【００３２】
メモリコントローラ１０８は、ドライバ１０３からの退避要求に基づいて、共有メモリ１０２からデータを読み出し（Ｓ２０４）、退避先メモリ１０４にデータの書き込みを実行することにより、データを退避させる（Ｓ２０５）。そして、データの退避が完了すると、データの退避が完了したことを知らせる退避完了通知を、ドライバ１０３に対して出力する（Ｓ２０６）。
【００３３】
ドライバ１０３は、メモリコントローラ１０８から退避完了通知を受信すると、退避実行部１０７に対して退避完了通知を出力する（Ｓ２０７）。そして、退避実行部１０７は、ドライバ１０３から退避完了通知を受信すると、共有メモリ監視部１０６に対して退避完了通知を出力する（Ｓ２０８）。
【００３４】
共有メモリ監視部１０６は、退避実行部１０７から退避完了通知を受信すると、退避させたデータが書き込まれていた共有メモリ１０２の所定の領域に対するアクセス権情報を、書き込み不可から書き込み可能に設定する（Ｓ２０９）。この結果、共有メモリ１０２の所定の領域に再びデータの書き込みが可能となる。
【００３５】
実施形態１によれば、非セキュア領域内の共有メモリ１０２に書き込まれたデータを、セキュリティ性が高いセキュア領域内の退避先メモリ１０４に退避させることができるため、適宜データを保護することが可能となる。
【００３６】
なお、共有メモリ監視部１０６は、退避実行部１０７を介してドライバ１０３に退避要求を出力しているが、ドライバ１０３に対して直接、退避要求を出力する構成としてもよい。
【００３７】
（変形例）
なお、上記実施形態によれば、図２に示す共有メモリ１０２へのデータの書き込みにかかる一連の処理が完了した後に、図３のＳ２０１〜Ｓ２０９に示す共有メモリ１０２から退避先メモリ１０４へのデータの退避にかかる一連の処理を実行することにより、共有メモリ１０２に書き込まれたデータを即座に退避先メモリ１０４に退避している。しかしながら、データの退避は、それ以外のタイミングで実行されてもよい。
【００３８】
例えば、共有メモリ１０２の所定の領域に書き込まれたデータは、同じ領域にデータの書き込みが要求されるまで退避されずに共有メモリ内に保持され、同じ領域にデータの書き込みが要求されたタイミングで図３に示す処理を実行してもよい。
この場合、共有メモリ監視部１０６がアプリケーション実行部１０１からデータ（本発明の「第１のデータ」に相当）の書き込み要求を受信し（Ｓ１０１）、この書き込み要求が指定する共有メモリ１０２の所定の領域のアクセス権情報が書き込み不可に設定されている場合（Ｓ１０２）、共有メモリ監視部１０６は、共有メモリ１０２の所定の領域に既に書き込まれているデータ（本発明の「第２のデータ」に相当）の退避要求を出力（Ｓ２０１）し、図３に示す一連の処理を実行する。そして、共有メモリ１０２から退避先メモリ１０４へとデータの退避が完了した後に、共有メモリ１０２へのデータの書き込み処理を実行する。
【００３９】
他の例では、共有メモリ監視部１０６は、共有メモリ１０２のメモリ空き容量に応じて、共有メモリ１０２から退避先メモリ１０４にデータを退避させてもよい。
例えば、共有メモリ監視部１０６がアプリケーション実行部１０１からデータ（本発明の「第１のデータ」に相当）の書き込み要求を受信し（Ｓ１０１）、この書き込み要求が指定する共有メモリ１０２の所定の領域のアクセス権情報が書き込み可能に設定されている場合（Ｓ１０２）、Ｓ１０３、Ｓ１０４の処理が実行される。ここで、データの書き込み先である共有メモリ１０２の空き容量が、書き込まれるデータのデータサイズ「以下」の場合、Ｓ１０５における書き込み処理を実行することはできない。そこで、共有メモリ監視部１０６は、共有メモリ１０２に既に書き込まれているデータ（本発明の「第２のデータ」に相当）の退避要求を出力（Ｓ２０１）し、図３に示す一連の処理を実行する。
ここで、「以下」とは、比較対象を含む場合、含まない場合の両方を含む。
【００４０】
共有メモリ１０２から退避先メモリ１０４にデータが退避されると、共有メモリ１０２に書き込まれていたデータは削除することができる。共有メモリ１０２内のデータが削除されると、共有メモリ１０２の空き容量は増加するため、共有メモリ１０２に再びデータを書き込むことが可能となる。
【００４１】
（実施形態２）
上記実施形態１によれば、共有メモリ１０２に書き込まれたデータをセキュア領域内の退避先メモリ１０４に退避させることによってデータを保護することが可能となる。しかしながら、メモリコントローラ１０８にデータの書き込みを要求するドライバ１０３がサイバー攻撃を受けた場合、ドライバ１０３がメモリコントローラ１０８に対して書き込みを要求して、共有メモリ１０２に書き込まれたデータを上書きしてしまうおそれがある。
【００４２】
そこで、実施形態２では、実施形態１との相違点を中心に、ドライバ１０３の改ざん有無を判定することによって共有メモリ１０２に書き込まれたデータのセキュリティを更に高める態様を説明する。
【００４３】
図４は、実施形態２の電子制御装置２０の一例を示している。ここでは、ドライバ１０３のプログラムが格納されているメモリ領域のハッシュ値に基づいて、ドライバ１０３の改ざん有無を判定する構成を説明する。本実施形態２の電子制御装置２０は、期待値保存部２０１を備えている点で、図１に示す電子制御装置１０とは異なっている。
【００４４】
さらに、本実施形態２のメモリコントローラ１０８は、実施形態１とは異なり、共有メモリ１０２または退避先メモリ１０４に対するデータの書き込みを実行することに加えて、共有メモリ１０２への書き込み要求を出力するドライバ１０３の改ざん有無を判定する。そして、ドライバ１０３の改ざんがないと判定した場合に限り、メモリコントローラ１０８は共有メモリ１０２に対してデータの書き込みを実行する。
【００４５】
期待値保存部２０１は、電子制御装置２０のドライバ１０３のプログラムが格納されているコード領域のハッシュ値の期待値を予め保存しておく。
【００４６】
そして、メモリコントローラ１０８は、共有メモリ１０２へのデータの書き込みを要求するドライバ１０３のコード領域のハッシュ値を算出するとともに、期待値保存部２０１に保存されているハッシュ値の期待値と算出したハッシュ値とに基づいてドライバ１０３の改ざん有無を判定する。具体的には、ハッシュ値の期待値と、算出されたハッシュ値とを比較し、これらの値が等しい場合にはドライバ１０３の改ざんがないと判定する。これに対し、期待値と算出されたハッシュ値とが異なる場合には、ドライバ１０３が改ざんされたと判定する。
【００４７】
図５は、図２に示す一連の処理に加えて、ドライバ１０３の改ざん有無の判定を行う場合のフローを示している。図２と同じ処理については説明を省略する。
【００４８】
本実施形態２の電子制御装置２０では、メモリコントローラ１０８は、Ｓ１０４においてドライバ１０３からデータの書き込み要求を受信すると、アクセス権情報保存部１０５に保存されているアクセス権情報を再び参照する（Ｓ３０１）。そして、データの書き込み先である共有メモリ１０２の所定の領域のアクセス権情報が、データを書き込み可能であることを示している場合には、メモリコントローラ１０８は、ドライバ１０３に対して、ドライバ１０３の改ざん有無の確認を実行する（Ｓ３０２）。上述したように、ハッシュ値に基づいてドライバ１０３の改ざん有無を判定する場合には、メモリコントローラ１０８は、期待値保存部２０１に保存されているハッシュ値の期待値を参照するとともに、ドライバ１０３のハッシュ値を算出する。
【００４９】
そして、Ｓ３０２において、ドライバ１０３の改ざんがないと判定した場合には、メモリコントローラ１０８は、実施形態１と同様、共有メモリ１０２にデータの書き込みを実行する（Ｓ１０５）。これに対し、ドライバ１０３の改ざんがあると判定した場合には、共有メモリ１０２へのデータの書き込み処理を実行しない。
【００５０】
本実施形態によれば、サイバー攻撃等によって改ざんされたドライバ１０３による、共有メモリ１０２へのデータの書き込みを防止することができ、共有メモリ１０２内のデータのセキュリティを高めることが可能となる。
【００５１】
（実施形態３）
上記実施形態１によれば、データを共有メモリ１０２から退避先メモリ１０４に退避することによってデータの保護を図ることができるが、退避先メモリ１０４の空き容量には限界がある。そのため、退避先メモリ１０４の空き容量が少ない場合、共有メモリ１０２から退避先メモリ１０４にデータが適切に退避できず、データが失われてしまうおそれがある。
【００５２】
そこで、本実施形態では、退避先メモリ１０４に退避されたデータを電子制御装置の外部に設けられたストレージに転送することにより、退避先メモリ１０４の空き容量を確保しながらデータの保護を図る態様を説明する。
【００５３】
図６は、本実施形態３の電子制御装置３０と、電子制御装置３０の外部に設けられたサーバ５０及びイベントデータレコーダー６０１（図中では、ＥＤＲと示す）とを示している。本実施形態３の電子制御装置３０は、セキュア領域に設けられたアップロード実行部３０１を備えている点で、図１の電子制御装置１０とは異なっている。また、サーバ５０はストレージ５０１を有しており、電子制御装置３０と、サーバ５０及びイベントデータレコーダー６０１とは有線または無線により接続されている。電子制御装置１０との相違点を中心に、電子制御装置３０を以下に説明する。
【００５４】
電子制御装置３０のアップロード実行部３０１は、退避先メモリ１０４内のデータをストレージ５０１に転送する。そして、退避先メモリ１０４からストレージ５０１へのデータの転送が完了すると、アップロード実行部３０１は退避先メモリ１０４からデータを削除する。なお、退避先メモリ１０４からストレージ５０１へのデータの転送は周期的に、あるいは任意のタイミングで実行することができる。
【００５５】
例えば、アップロード実行部３０１は、退避先メモリ１０４のメモリ空き容量が閾値以下になると、退避先メモリ１０４内のデータをストレージ５０１に転送してもよい。
【００５６】
あるいは、アップロード実行部３０１は、電子制御装置３０にかかる負荷が小さくなったタイミングで、退避先メモリ１０４内のデータをストレージ５０１に転送してもよい。
例えば、アップロード実行部３０１は、電子制御装置３０と、ストレージ５０１が設けられたサーバ５０との間の通信帯域の使用率をモニタし、通信帯域の使用率が閾値以下になった場合に、データをストレージ５０１に転送してもよい。その他の例では、アップロード実行部３０１は、電子制御装置のセキュア領域に割り当てられたＣＰＵ資源の使用率をモニタし、ＣＰＵ資源の使用率が閾値以下になった場合に、データをストレージ５０１に転送してもよい。例えば、電子制御装置３０が車載器の場合、車両のエンジンが停止するとＣＰＵ資源の使用率は低下する。したがって、アップロード実行部３０１は、従来のガソリン車のイグニッション、あるいは、電気自動車又はハイブリッド車のパワースイッチがオフになったことを検知して、データをストレージ５０１に転送してもよい。
【００５７】
さらに別の例として、電子制御装置３０はさらに、当該電子制御装置３０に発生する異常を検出する異常検知部（図示せず）を備え、アップロード実行部３０１は、異常検知部が異常を検知した場合にデータをストレージ５０１に転送してもよい。
【００５８】
なお、アップロード実行部３０１がデータをストレージ５０１に転送するタイミングのいくつか例示したが、アップロード実行部３０１は、上述した以外の任意のタイミングでデータをストレージ５０１に転送することができる。
【００５９】
さらに、本実施形態３では、電子制御装置３０は任意で、電子制御装置３０の外部に設けられたイベントデータレコーダー６０１と接続されてもよい。
【００６０】
上述したとおり、アップロード実行部３０１は退避先メモリ１０４内のデータをストレージ５０１に転送する。しかしながら、転送を実行している間に通信障害などが発生すると、データの全て又は一部をストレージ５０１に転送することができないことが起こり得る。このような場合に、アップロード実行部３０１が退避先メモリ１０４からストレージ５０１への退避が完了したと認識してしまうと、退避先メモリ１０４に退避していたデータは削除されてしまう。
【００６１】
これに対し、イベントデータレコーダー６０１が設けられている場合、通信障害などの異常が発生したことによってストレージ５０１へのデータの転送が「失敗」すると、イベントデータレコーダー６０１は、このような異常時に生成されるエラーログを保存する。このエラーログは、ストレージ５０１へのデータの転送が失敗したことを示す。
ここで、本発明の「失敗」とは、転送対象となるデータを退避先メモリからストレージに転送できないことをいい、データの一部のみがストレージに転送され、データの残りがストレージに転送されない場合や、転送処理自体を実行できない場合をも含む。
【００６２】
アップロード実行部３０１は、イベントデータレコーダー６０１に保存されたエラーログに基づいて、ストレージ５０１に転送されなかったデータを認識することが可能となるため、ストレージ５０１への転送が完了していないデータを、退避先メモリ１０４から削除するのを防ぐことが可能となる。さらに、通信障害等から回復した時点で再び、退避先メモリ１０４からストレージ５０１へのデータの退避を実行することができる。
【００６３】
以上のとおり、実施形態３によれば、退避先メモリ１０４のデータは外部のストレージ５０１へと適宜転送されるため、退避先メモリ１０４の空き容量不足によって、共有メモリ１０２から退避先メモリ１０４へのデータの退避ができなくなるのを防ぐことが可能となる。さらに、通信障害等が発生してもデータを損なうことなく、退避先メモリ１０４からストレージ５０１へとデータを転送することが可能となる。
【００６４】
（実施形態４）
上記実施形態１では、アクセス制御情報保存部１０５に保存されているアクセス権情報が書き込み可能を示している場合にのみ、共有メモリ１０２にデータを書き込むことが可能であった。しかしながら、重要度や緊急性が高いデータについては、アクセス権情報にかかわらず、データを共有メモリ１０２に書き込むことが望ましい場合がある。例えば、本発明の電子制御装置が車載器の場合、車両が急ブレーキ、急加速、急ハンドルといった動作をしたことを示すログデータは、車両事故や車両故障の原因を特定するために有用なデータであり、重要性および緊急性が高いデータであるといえる。
そこで、電子制御装置が車載器の場合であって、車両が急ブレーキ、急加速、急ハンドルといった動作をしたり、あるいは、車両に何らかの異常が発生している場合には、アクセス制御情報保存部１０５に保存されている共有メモリ１０２に対するアクセス権情報を書き込み可能に設定して、重要性や緊急性の高いデータが確実に共有メモリ１０２に書き込まれるようにする。
【００６５】
図７は本実施形態の電子制御装置４０を示している。電子制御装置４０は、情報取得部４０１と車両異常検出部４０２とを備えている点で、図１に示す電子制御装置１０と異なっている。電子制御装置１０との相違点を中心に、電子制御装置４０を以下に説明する。
【００６６】
情報取得部４０１は、電子制御装置４０が搭載された車両の状態を示す自車両情報を取得する。自車両情報は、例えば、自車両の動作状態を示す速度情報、ブレーキ量、及び操舵情報、あるいは、車載システムを構成する各装置の温度、電圧、及び電流などの情報が挙げられるが、これらに限定されるものではない。
【００６７】
車両異常検出部４０２は、情報取得部４０１にて取得された自車両情報に基づいて、「車両に発生した異常」を検出する。例えば、自車両情報に含まれるブレーキ量が著しく大きく、自車両が急激に減速したことを示している場合、車両は正常走行時には行われない動作をしているといえる。そこで、車両異常検知部４０２は、このような急減速を異常として認識して、車両に異常が発生したことを検出する。あるいは、自車両情報に含まれる電圧値が通常動作で起こり得る電圧範囲を超えている場合、車載システムを構成する装置に故障が発生している可能性が高い。そこで、このような自車両情報に基づいて、車両異常検知部４０２は異常を検出する。
ここで、本発明の「車両に発生した異常」とは、車載システム及び車載システムを構成する装置の異常が含まれることはもちろん、例えば、車両の急加速、急ハンドル、急ブレーキといった、車両の動作が正常ではないことをも含む。
【００６８】
車両異常検出部４０２が異常を検出した場合、共有メモリ監視部１０６は、アクセス権情報保存部１０５に保存されているアクセス権情報を書き込み可能に設定する。すなわち、共有メモリ１０２内の全ての領域に対するアクセス権情報が書き込み可能に設定されるため、共有メモリ１０２へのデータの書き込みが可能となる。
【００６９】
本実施形態によれば、車両に異常が発生した場合に、アクセス権情報保存部１０５に保存されているアクセス権情報を書き込み可能に設定することにより、車両の異常を示すデータを確実に共有メモリ１０２内に書き込むことが可能となるため、緊急性や重要性が高いデータが共有メモリ１０２に書き損なわれるのを防ぐことができる。
【００７０】
（総括）
以上、本発明の各実施形態における電子制御装置の特徴について説明した。なお、複数の実施形態およびその変形例の特徴を説明したが、各実施形態およびその変形例の特徴を２以上含むようにしてもよい。
【００７１】
本発明の電子制御装置の形態の例として、半導体、電子回路、モジュール、マイクロコンピュータが挙げられる。またこれらにアンテナや通信用インターフェースなど、必要な機能を追加してもよい。また、カーナビゲーションシステム、スマートフォン、パーソナルコンピュータ、携帯情報端末のような形態をとることも可能である。
【００７２】
加えて、本発明は、上述の専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録したプログラム、及びこれを実行可能な専用又は汎用ＣＰＵ及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【００７３】
専用や汎用のハードウェアの記憶領域（外部記憶装置（ハードディスク、ＵＳＢメモリ等）、内部記憶装置（ＲＡＭ，ＲＯＭ等））に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して上述の専用又は汎用のハードウェア（本発明の「コンピュータ」に相当」に提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【００７４】
本発明の電子制御装置は、主として自動車に搭載される車載用電子制御装置であるが、自動二輪車、船舶、鉄道、航空機等、移動する移動体全般に適用することが可能である。また、移動体に限らず、マイクロコンピュータを包含する製品全般に適用可能である。
【符号の説明】
【００７５】
１０，２０，３０，４０  電子制御装置、１０２  共有メモリ、１０４  退避先メモリ、１０５  アクセス権情報保存部、１０６  共有メモリ監視部、１０８  メモリコントローラ１０８、２０１  期待値保存部、３０１  アップロード実行部、４０１  情報取得部、４０２  車両異常検出部
【図１】
2019144794.tif 000003
【図２】
2019144794.tif 000004
【図３】
2019144794.tif 000005
【図４】
2019144794.tif 000006
【図５】
2019144794.tif 000007
【図６】
2019144794.tif 000008
【図７】
2019144794.tif 000009