JP6422059B2 - 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム - Google Patents

処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム Download PDF

Info

Publication number
JP6422059B2
JP6422059B2 JP2015151988A JP2015151988A JP6422059B2 JP 6422059 B2 JP6422059 B2 JP 6422059B2 JP 2015151988 A JP2015151988 A JP 2015151988A JP 2015151988 A JP2015151988 A JP 2015151988A JP 6422059 B2 JP6422059 B2 JP 6422059B2
Authority
JP
Japan
Prior art keywords
program
execution environment
data
secure
normal
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
JP2015151988A
Other languages
English (en)
Other versions
JP2017033248A (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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2015151988A priority Critical patent/JP6422059B2/ja
Priority to PCT/JP2016/001776 priority patent/WO2017022149A1/ja
Publication of JP2017033248A publication Critical patent/JP2017033248A/ja
Application granted granted Critical
Publication of JP6422059B2 publication Critical patent/JP6422059B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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

Description

本発明は、安全かつ高速な起動が求められる処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラムに関する。
自動車の利便性向上に伴う車載システムのネットワーク接続や追加アプリダウンロードにより、車載システムのセキュリティ確保が急務となっている。車載システムのセキュリティ確保においては、車載システムの完全性を保証するセキュアブート機能が必須と考えられる。特にカーナビゲーションシステムやディスプレイオーディオ等のヘッドユニット、電子化されたコックピットシステムでは、エンジン始動からシステムの起動完了までの時間制約が非常に厳しく、安全かつ高速なセキュアブート機能が求められる。
国際公開第2011−114621号
セキュアブートでは、フラッシュメモリ等の不揮発性メモリからプログラムを読み込み、読み込んだプログラムの改ざんチェックが実行される。改ざんチェックの対象となるプログラムの数は数百にも上るため、改ざんチェックに時間がかかる。しかしながら、車載システムではプログラムの改ざんにより外部から不正操作された場合の影響が大きいため、基本的にセキュリティ強度を下げることはできない。
本発明はこうした状況に鑑みなされたものであり、その目的は、セキュリティ強度を確保しつつ、起動時間を短縮する技術を提供することにある。
上記課題を解決するために、本発明のある態様の処理装置は、少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置であって、プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを格納する、セキュア実行環境下で使用されるセキュア記憶領域と、前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す、セキュア実行環境下で動作するセキュア処理部と、前記セキュア処理部から渡された前記プログラムまたはデータの識別情報を格納する、通常実行環境下で使用される通常記憶領域と、前記検証が必要なプログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する、通常実行環境下で動作する通常処理部と、を備える。前記通常処理部は、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部に依頼する。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、又はコンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、セキュリティ強度を確保しつつ、起動時間を短縮することができる。
本発明の実施の形態に係る処理装置のハードウェア構成を示すブロック図である。 本発明の実施の形態に係る処理装置のソフトウェア構成を示すブロック図である。 本発明の実施の形態に係る、処理装置を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。 比較例に係る、処理装置を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。 図1の処理装置を備える車載端末装置の構成を示すブロック図である。
本発明の実施の形態は、車載システムにおけるセキュアブートに関する。セキュアブート機能とは、Root of Trustと呼ばれる物理的に改変不可能な領域の情報に基づいた信頼性の基点を作りこみ、そこからブートローダ、OS等のソフトウェアに対して、完全性(改ざんされていないこと)を検証しながら順次起動していく技術である。
一般的にセキュアブートでは改ざんを検証する範囲と、起動時間はトレードオフの関係にある。すなわち、改ざんを検証する範囲を広くすればするほど、セキュリ強度は強くなるが、起動時間は遅くなる。逆に、改ざんを検証する範囲を狭くするほど、起動時間は早くなるが、セキュリティ強度は弱くなる。セキュアブートのセキュリティ強度については、一部スマートフォンにてセキュアブートが解除される事例が報告されており、商品仕様における起動時間の制約を守りつつ、セキュリティ強度を担保した上で必要十分な範囲を改ざん検出することが重要である。
著作権機能を有する家電機器では、機器内に記録された著作権に関する情報資産を不正入手から防ぐため、セキュアブート機能が搭載されることが一般的であった。また、家電機器のセキュアブート機能においても、改ざんを検証する範囲と起動時間はトレードオフの関係にあった。
しかし、セキュアブート機能が実際に動作するタイミングがOSの起動時であり、かつ家電機器の場合、OSの起動は電源プラグをコンセントに差し込むときや、スマートフォンの電源を入れる等、通常使用の中においては限定的であったため、車載システムと比較して起動時間の条件が比較的緩やかであった。
一方、車載システムにおいては、エンジン始動からヘッドユニットや電子コックピットの起動時間は、操作性の観点、及びいわゆるKT法(Kids and Transportation Safety Act)の観点から、概ね2秒以内に完了する必要があるという見方が一般的である。
また、車載システムにおいては、バッテリーの寿命の問題から、エンジン停止時はDRAM(Dynamic Random Access Memory)バックアップと呼ばれる、DRAMにメモリ保持のためのリフレッシュ電流のみを供給し、それ以外のシステムは電流を供給せずに停止することが一般的である。これにより、次回のエンジン始動に伴う車載システムの起動時は、フラッシュROMからDRAMにソフトウェアをロードすることは省略可能であり、その分起動時間は短縮される。但し、DRAMバックアップモード中にDRAMのデータが不正に書き換えられる可能性があるため、エンジン始動に伴う車載システムの起動において、DRAMのデータに対するセキュアブートは毎回実施する必要がある。
以上の結果、車載システムにおけるセキュアブート機能は、一般的に数百ms以内に終了する必要があり、従来の家電機器と比較して厳しい条件となっている。そこでセキュリティ強度を維持しつつ、徹底した処理の効率化が求められる。
図1は、本発明の実施の形態に係る処理装置1のハードウェア構成を示すブロック図である。処理装置1は通常実行環境とセキュア実行環境を有する。セキュア実行環境は、ハードウェア的に通常実行環境と隔離された実行環境であり、少なくとも使用するメモリ空間が通常実行環境と物理的または論理的に隔離されている。セキュア実行環境は、隔離実行環境、トラステッド実行環境とも呼ばれる。例えば、ARM社のTrustZone(登録商標)ハードウェアアーキテクチャにより通常実行環境とセキュア実行環境を有する処理装置1を構築できる。
処理装置1は、処理部10、揮発性記憶部20、不揮発性記憶部30を備える。処理部10は単一のLSIで構成することができる。処理部10はバス40を介して、LSIの外部に設けられる揮発性記憶部20及び不揮発性記憶部30と接続される。なお、揮発性記憶部20の一部は、セキュリティ強度を強くするため、処理部10に内蔵されていてもよい。処理部10は、通常実行環境下で動作する通常処理部11と、セキュア実行環境下で動作するセキュア処理部12を含む。通常処理部11とセキュア処理部12には、物理的に1つのプロセッサを時分割で使用することにより構築される2つの仮想プロセッサがそれぞれ割り当てられる。なお、セキュア処理部12の動作を専用に実行するセキュア処理用のプロセッサを、汎用のプロセッサと別に設けてもよい。
揮発性記憶部20はSDRAM(Synchronous Dynamic Random Access Memory) で構成でき、通常記憶領域21及びセキュア記憶領域22を含む。通常記憶領域21は通常実行環境下で使用され、セキュア記憶領域22はセキュア実行環境下で使用される。通常記憶領域21とセキュア記憶領域22は、物理的または論理的に異なる領域に設定される。なお、セキュア記憶領域22は専用の別のRAMチップで構成されてもよい。また、セキュア実行環境下で動作する専用のプロセッサとRAMを含む別のセキュリティチップで構成してもよい。セキュア記憶領域22には、通常処理部11からはアクセスできず、セキュア処理部12からのみアクセスできる。
図2は、本発明の実施の形態に係る処理装置1のソフトウェア構成を示すブロック図である。図2には、本実施の形態に関連するソフトウェア及びデータのみを描いている。以下、処理装置1のOSとして、車載システムのオープン化やネットワーク化に伴い、今後の利用が多くなっていくと予想されるLinux(登録商標)を想定する。なお、Windows(登録商標)、ITRON(登録商標)等の他のOSを使用することも可能である。
通常実行環境下では、カーネル130、ハンドラ110が実行される。カーネル130は、OSの中核をなすプログラムであり、ハードウェア資源を管理して各アプリケーションプログラムに実行環境を提供する。SE Linux(登録商標)、TOMOYO Linux(登録商標)等の強制アクセス制御機能が追加されたセキュアOSでは、カーネル130は強制アクセス制御を実行する。強制アクセス制御とは、システム管理者により設定されたセキュリティポリシーに従い、ユーザからリソース(プロセス、ファイル、 システムデバイス等)へのアクセスに対する許可または拒否を決定する制御である。たとえファイルの所有者であっても、セキュリティポリシーにより変更が許可されていない場合は当該ファイルを変更できない。
ハンドラ110は、アプリケーションプログラム実行時のアクセス要求に対して、アクセス元の権限を判定するための権限判定プログラム112が記述されたハンドラである。権限判定プログラム112は、各アプリケーションプログラムから要求されるセキュリティイベント(ファイルアクセス等)に対して、セキュリティポリシー及び履歴情報の少なくとも一方を参照して、リソースへのアクセスを許可するか拒否するかを判定する。
ハンドラ110には、改ざん検出対象リスト120に基づきアプリケーションプログラムの改ざんを検出する処理を実行するための改ざん検出プログラム111も記述される。このように、改ざん検出プログラム111をカーネル130ではなく、ハンドラ110に記述することにより、改ざん検出プログラム111を変更した際にカーネル130を修正する必要がなくなる。
アプリケーションプログラムの改ざんを検出する処理において署名を検証する処理は、セキュア実行環境側で実行される。改ざん検出プログラム211は、改ざん検出対象リスト220に基づき、アプリケーションプログラムの署名を検証する。
図3は、本発明の実施の形態に係る、処理装置1を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。通常実行環境下において、通常処理部11は不揮発性記憶部30から、暗号化された改ざん検出対象リストを読み出し、セキュア実行環境に渡す(S10)。図3のフローチャートは改ざん検出対象リストが暗号化される場合のフローチャートであるが、秘匿性が不要で完全性のみ保証する必要がある場合、改ざん検出対象リストを暗号化せず署名またはMACのみを含める構成でもよい。通常実行環境側からセキュア実行環境側が呼び出されると処理部10の実行環境が、通常実行環境からセキュア実行環境に切り替わる。
セキュア実行環境下において、セキュア処理部12は、通常実行環境側から渡された暗号化された改ざん検出対象リストを復号する(S20)。公開鍵暗号方式が用いられる場合、セキュア処理部12は、改ざん検出対象リストを暗号化する際に使用された秘密鍵と対をなす公開鍵を用いて改ざん検出対象リストを復号する。
セキュア処理部12は、復号された改ざん検出対象リストにハッシュ関数を適用して改ざん検出対象リストのハッシュ値を算出する。また、セキュア処理部12は、改ざん検出対象リストの署名(暗号化状態のハッシュ値)を取得して、当該署名を生成した際に使用された秘密鍵と対をなす公開鍵を使用してハッシュ値を復元する。セキュア処理部12は改ざん検出対象リストから算出したハッシュ値と、署名を復号して得たハッシュ値を比較して、両者が一致する場合は署名の検証が成功したと判定し、一致しない場合は署名の検証が失敗したと判定する。なお、ハッシュ値を、暗号化された状態の検出対象リストから生成する方式でもよい。
改ざん検出対象リストには、改ざん検出が必要なアプリケーションプログラムのリスト(以下、プログラムリストという)と、各アプリケーションプログラムの改ざん検証に必要な署名が含まれる。署名は、アプリケーションプログラムにハッシュ関数を適用して得られたハッシュ値に対して秘密鍵を使用して生成されたものである。なお、改ざん検出対象リストが暗号化されている場合は、署名の代わりにハッシュ値を使用することも可能である。改ざん検出が必要なアプリケーションプログラムは、全てのアプリケーションプログラムの内、例えば改ざん等により正常動作しないとセキュリティを低下させる可能性があるアプリケーションプログラムであり、システム管理者により予め選別されたものである。プログラムリストは、ツリー形式のディレクトリ構造で記述される。ディレクトリ構造において各プログラムはパスとして指定され、各プログラムには署名(暗号化状態のハッシュ値)が関連付けられている。
セキュア処理部12は、復号した改ざん検出対象リストをセキュア記憶領域22に格納するとともに、改ざん検出対象リストからプログラムリストを抽出し、抽出したプログラムリストを通常実行環境に渡す(S21)。セキュア実行環境側から通常実行環境側が呼び出されると処理部10の実行環境が、セキュア実行環境から通常実行環境に切り替わる。
通常実行環境下において、通常処理部11は、セキュア実行環境側から渡されたプログラムリストを通常記憶領域21に格納する。通常処理部11は、アプリケーションプログラムの実行要求を受け付けると(S11のY)、当該アプリケーションプログラムがプログラムリスト内に含まれているか否か判定する(S12)。プログラムリスト内に含まれていない場合(S12のN)、通常処理部11は、当該アプリケーションプログラムを不揮発性記憶部30から読み出し、読み出したアプリケーションプログラムを起動する(S15)。
実行要求を受け付けたアプリケーションプログラムがプログラムリスト内に含まれている場合(S12のY)、通常処理部11は、当該アプリケーションプログラムを不揮発性記憶部30から読み出し、読み出したアプリケーションプログラムをセキュア実行環境に渡すとともに、当該アプリケーションプログラムの署名の検証をセキュア実行環境に依頼する(S13)。通常実行環境側からセキュア実行環境側が呼び出されると処理部10の実行環境が、通常実行環境からセキュア実行環境に切り替わる。
セキュア実行環境下において、セキュア処理部12は、通常実行環境側から渡されたアプリケーションプログラムにハッシュ関数を適用してハッシュ値を算出する。また、セキュア処理部12は、改ざん検出対象リストから当該アプリケーションプログラムの署名を取得して、当該署名を生成した際に使用された秘密鍵と対をなす公開鍵を使用してハッシュ値を復元する。セキュア処理部12は当該アプリケーションプログラムから算出したハッシュ値と、当該署名を復号して得たハッシュ値を比較して、両者が一致する場合は署名の検証が成功したと判定し、一致しない場合は署名の検証が失敗したと判定する(S25)。セキュア処理部12は、当該アプリケーションプログラムの署名を検証した結果を通常実行環境に渡す。セキュア実行環境側から通常実行環境側が呼び出されると処理部10の実行環境が、セキュア実行環境から通常実行環境に切り替わる。なお、ここではハッシュ値の算出をセキュア処理部12で実施することとしたが、セキュア処理部12の処理量の増加は、セキュア処理部12の処理が一定時間毎に時分割で通常実行環境に切り替えるようスケジューリングされるシステムの場合、後述の通常実行環境−セキュア実行環境間の切り替え回数の増加を引き起こし、システム全体のパフォーマンス低下を引き起こす可能性がある。これを避けるため、ハッシュ値の算出を通常実行環境側で実施し、セキュア処理部12にハッシュ値を渡すこととしてもよい。
通常実行環境下において、セキュア実行環境側から渡された署名を検証した結果が成功であった場合(S14のY)、通常処理部11は、実行要求を受け付けたアプリケーションプログラムを起動する(S15)。セキュア実行環境側から渡された署名を検証した結果が失敗であった場合(S14のN)、通常処理部11は、実行要求を受け付けたアプリケーションプログラムの起動を中止する(S16)。
以上の処理フローにおいて、セキュア処理部12は定期的にプログラムリストを通常実行環境側に渡す。通常実行環境は、外部から不正な攻撃を受けるリスクがセキュア実行環境よりも高く、プログラムリストが改ざんされるリスクが相対的に高い。そこで通常実行環境側のプログラムリストを定期的にリフレッシュする。具体的にはセキュア処理部12は、前回、プログラムリストを通常実行環境に渡してから一定時間が経過すると(S23のY)、プログラムリストを通常実行環境に渡す(S24)。通常実行環境側では、通常処理部11は現在のプログラムリストを、セキュア実行環境側から新たに渡されたプログラムリストで上書きする。なお、セキュア処理部12が通常記憶領域21に直接アクセスできる場合、セキュア処理部12が直接、プログラムリストを上書きしてもよい。通常処理部11を介さない方がセキュリティ強度は強くなる。
なお、プログラムリストのリフレッシュを定期的に実行するのではなく、イベントが発生した時に実行してもよい。例えば、イベントは、重要なアプリケーションプログラムの実行が終了したタイミングで発生してもよい。重要なアプリケーションプログラムの例として、デバイスドライバのインストールプログラム(Linux(登録商標)の場合insmodコマンド等)があげられる。特に、不正なデバイスドライバがインストールされると、カーネルが乗っ取られてしまい、ユーザランド上で動作する他のアプリケーションプログラムが乗っ取られた場合よりも危険である。この場合、ステップS13において、実行対象プログラムがデバイスドライバのインストールプログラムであった場合、実行対象プログラムに加えてインストール対象のデバイスドライバについても改ざん検出を実行することとしてもよい。
図4は、比較例に係る、処理装置1を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。ステップS10、S20の処理は、図3のフローチャートと同じ処理である。比較例では、セキュア処理部12は、復号した改ざん検出対象リストをセキュア記憶領域22に格納するが、プログラムリストを通常実行環境側に渡さない。
通常実行環境下において、通常処理部11は、アプリケーションプログラムの実行要求を受け付けると(S11のY)、当該アプリケーションプログラムを不揮発性記憶部30から読み出し、読み出したアプリケーションプログラムをセキュア実行環境に渡すとともに、当該アプリケーションプログラムの署名の検証をセキュア実行環境に依頼する(S13)。通常実行環境側からセキュア実行環境側が呼び出されると処理部10の実行環境が、通常実行環境からセキュア実行環境に切り替わる。
セキュア実行環境下において、セキュア処理部12は、署名の検証を依頼されたアプリケーションプログラムが改ざん検出対象リスト内に含まれているか否か判定する(S22)。改ざん検出対象リスト内に含まれていない場合(S22のN)、セキュア処理部12は、当該アプリケーションプログラムが改ざん検出の対象でないとの判定結果を通常実行環境に返す。
署名の検証を依頼されたアプリケーションプログラムが改ざん検出対象リスト内に含まれる場合(S22のY)、セキュア処理部12は、通常実行環境側から渡されたアプリケーションプログラムの署名を検証し、署名の検証結果を通常実行環境に渡す(S25)。
通常実行環境下において、実行対象のアプリケーションプログラムが改ざん検出の対象でない場合、または当該アプリケーションプログラムの署名の検証結果が成功であった場合(S14のY)、通常処理部11は当該アプリケーションプログラムを起動する(S15)。当該アプリケーションプログラムの署名の検証結果が失敗であった場合(S14のN)、通常処理部11は当該アプリケーションプログラムの起動を中止する(S16)。
図3のフローチャートと図4のフローチャートを比較すると、実行対象のアプリケーションプログラムが改ざん検出の対象であるか否かを判定する処理を、通常実行環境側で実行するか、セキュア実行環境側で実行するかの点で異なっている。図4のフローチャートに示される比較例では、セキュア実行環境側で実行しているため、アプリケーションプログラムの実行要求が発生する度に通常実行環境からセキュア実行環境、及びセキュア実行環境から通常実行環境への切り替えが発生している。当該切り替え処理には、一般的にレジスタの退避、メモリ管理ユニット(MMU)の設定変更、キャッシュ処理等が伴い、オーバーヘッドが発生する。1回の切り替えに伴うオーバーヘッド時間は数msであるが、処理装置1を起動する時は数百個のアプリケーションプログラムを起動する必要があるため、起動時間が秒単位で遅くなる。図3のフローチャートに示される本実施の形態では、改ざん検出対象リストからプログラムリストを切り出して通常実行環境側に渡し、通常実行環境側で改ざん検出の対象であるか否かを判定することにより、実行環境の切り替えに係るオーバーヘッドを低減することができる。改ざん検出の対象とするアプリケーションプログラムを、システムの根幹に関わるアプリケーションプログラムに絞り込めば、実行環境の切り替え回数を大きく削減することができる。
改ざん検出対象リストに含まれる全てのアプリケーションプログラムの改ざんを検出する処理が終了した後、通常処理部11は、強制アクセス制御機能を有効化する。処理装置1を起動する時における改ざんを検出する処理が実行されている間は強制アクセス制御は無効にしている。これにより、処理装置1を起動する時における改ざんを検出する処理が実行されている間、強制アクセス制御に伴い、アクセス元がリソースにアクセスする権限を有しているか否かを判定する処理が発生しなくなる。当該処理によるオーバーヘッド時間は一般的に1回につき数msであるが、前記の通常実行環境−セキュア実行環境間の切り替えと同様、処理装置1を起動する時は数百個のアプリケーションプログラムを起動する必要があるため、起動時間が秒単位で遅くなる。これにより当該処理に係るオーバーヘッドを低減することができる。なお、強制アクセス制御機能を有効化するタイミングが早いほど、オーバーヘッドの低減度合いは減少するがセキュリティ強度は上がるため、強制アクセス制御機能を有効化するタイミングはシステム要件等に応じ、処理装置1を起動する時における改ざんを検出する処理が終了するまでに実施することとしてもよい。
図5は、図1の処理装置1を備える車載端末装置7の構成を示すブロック図である。図5では車載端末装置7として、カーナビゲーションシステムを想定している。車載端末装置7は、処理装置1、表示部2、音声出力部3、操作部4、GPS受信部5、及び無線通信部6を備える。
表示部2は液晶ディスプレイまたは有機ELディスプレイを備え、処理装置1から供給される映像データを表示する。例えば、ナビゲーション画面を表示する。音声出力部3はスピーカを備え、処理装置1から供給される音声データを音声出力する。例えば、音声ガイダンスを音声出力する。操作部4は物理キー、タッチパネル等の入力手段を備え、ユーザの操作を電気信号に変換して処理装置1に出力する。GPS受信部5はGPS受信機を備え、複数のGPS衛星から電波を受信して処理装置1の位置を測定する。GPS受信部5は、経度緯度で規定される位置情報を処理装置1に出力する。無線通信部6は携帯電話網または無線LANを介してインターネットに接続するための通信モジュールを備える。例えば、ネットワーク上の図示しない地図サーバと接続し、地図データおよび音声ガイダンス用の音声データを受信し、処理装置1に供給する。
車載端末装置7がインターネットに接続可能な構成の場合、インターネットを経由してマルウェアやウイルスが処理装置1に侵入するリスクがある。また、スマートフォンと連携して動作する場合も、スマートフォンを経由してマルウェアやウイルスが侵入するケースがある。また、DVD等のメディアを経由して侵入する場合もある。これに対して本発明の実施の形態に係る処理装置1を使用すれば、アプリケーションプログラムを起動する前に改ざんを検出する処理を実行するため、不正な改ざんから車載端末装置7を保護することができる。従って安全かつ高速なセキュアブートを実現した車載端末装置7を構築できる。
以上説明したように本実施の形態によれば、プログラムリストを通常実行環境側に保持することにより、セキュア実行環境を呼び出す回数を減らすことができ、実行環境を切り替える処理によるオーバーヘッドを低減することができる。その際、改ざん検出対象リストに含まれる各アプリケーションプログラムの署名は、セキュア実行環境側から通常実行環境側に渡さないため、セキュリティ強度の低下を抑えることができる。また、通常実行環境側に保持されるプログラムリストを定期的またはイベント発生ごとにリフレッシュすることにより、外部から不正に改ざんされたプログラムリストを使用して、アプリケーションプログラムの改ざんを検出する処理が実行される可能性を極力抑えることができる。
また、強制アクセス制御機能の有効化を、改ざん検出対象リストに含まれる全てのアプリケーションプログラムの改ざんを検出する処理が終了した後に実行することにより、強制アクセス機能に係る処理により発生するオーバーヘッドを低減することができる。また、改ざん検出プログラム111をカーネル130ではなくハンドラ110に持たせることにより、改ざん検出プログラム111を修正した際にカーネル130を修正する必要がなくなる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上述の実施の形態では、改ざんを検出する処理として、公開鍵暗号方式を用いて生成された署名を検証する例を説明した。この点、署名の代わりに共通鍵暗号方式を用いて生成されたメッセージ認証コード(MAC)を検証して、改ざんを検出してもよい。また、その他の暗号方式を使用した検証方法を用いてもよい。
また上述の実施の形態では、強制アクセス制御機能を備えたセキュアOSを使用する例を説明したが、任意アクセス制御を用いたOSにも適用できる。その場合、改ざんを検出する処理の終了後に強制アクセス制御機能を有効化する処理はスキップされる。
また上述の実施の形態では、アプリケーションプログラムを対象として改ざんを検出する処理を行うこととしたが、アプリケーションプログラムではなく、ファイルシステムイメージを対象としてもよい。特に、ファイルシステムがramfsやpramfsで実現されている場合、ファイルシステムイメージは一般的に連続したメモリ領域に配置される。この場合、当該メモリ領域をマッピングすることで、アプリケーションプログラムを対象とした場合と比較して、ファイルアクセス関連のシステムコール回数を削減し、当該システムコールのオーバーヘッドを低減できる。さらに、メモリマッピングによるアクセスにより、ファイルシステムが保有するファイル読み書きに使用するキャッシュに影響を与えずに、改ざん検出処理を行うことが可能になる。これにより、当該キャッシュを使用する他のアプリケーションの処理速度を低減させることなく、改ざん検出を処理することが可能になる。ファイルシステムが保有するファイル読み書きに使用するキャッシュに影響を与えない方法として、メモリマッピング以外に、直接不揮発性記憶部を読みに行く方法と、ファイルオープンやリードの際にオプションとしてキャッシュに影響を与えない旨を指定する方法があり、これらの方法を用いてもよい。
また図5では、本実施の形態に係る処理装置1をカーナビゲーションシステムに適用する例を説明したが、ディスプレイオーディオ、コックピットシステム、各種ECU(エンジンECU等)にも適用可能である。また、本実施の形態に係る処理装置1を車載用途以外に使用することを制限するものではなく、安全かつ高速なセキュアブート機能が求められる機器であれば、当該機器に搭載してもよい。
なお、実施の形態は、以下の項目によって特定されてもよい。
[項目1]
少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置(1)であって、
プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リスト(220)を格納する、セキュア実行環境下で使用されるセキュア記憶領域(22)と、
前記検証リスト(220)内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す、セキュア実行環境下で動作するセキュア処理部(12)と、
前記セキュア処理部(12)から渡された前記プログラムまたはデータの識別情報(120)を格納する、通常実行環境下で使用される通常記憶領域(21)と、
前記検証が必要なプログラムまたはデータの識別情報(120)を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する、通常実行環境下で動作する通常処理部(11)と、を備え、
前記通常処理部(11)は、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部(12)に依頼することを特徴とする処理装置(1)。
[項目2]
前記通常処理部(11)は、前記処理装置(1)の起動時において、暗号化された前記検証リストを取得して、セキュア実行環境に渡し、
前記セキュア処理部(12)は、暗号化された前記検証リストを復号し、復号された前記検証リストから前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すことを特徴とする項目1に記載の処理装置(1)。
[項目3]
前記セキュア処理部(12)は、定期的またはイベント発生ごとに前記検証が必要なプログラムまたはデータの識別情報を通常実行環境に渡す、または通常実行環境から読み込んでチェックすることを特徴とする項目1または2に記載の処理装置(1)。
[項目4]
前記通常処理部(11)は、強制アクセス制御機能を備えたセキュアOS(Operating System)を起動する際、検証が必要なプログラムまたはデータの検証が終了するまでにまたは終了した後、前記強制アクセス制御機能を有効化することを特徴とする項目1から3のいずれかに記載の処理装置(1)。
[項目5]
前記通常処理部(11)は、プログラム実行時におけるアクセス要求に対する権限判定を実行するためのハンドラ(110)を実行し、
前記ハンドラ(110)に、プログラムまたはデータの完全性を確認するための検証処理における通常実行環境側の処理が記述されていることを特徴とする項目1から4のいずれかに記載の処理装置(1)。
[項目6]
前記検証が必要なプログラムまたはデータには、ファイルシステムイメージが含まれることを特徴とする項目1から5のいずれかに記載の処理装置(1)。
[項目7]
前記セキュア処理部は、前記ファイルシステムのキャッシュメモリに影響を与えずに、前記ファイルシステムイメージを検証することを特徴とする項目6に記載の処理装置(1)。
[項目8]
前記検証が必要なプログラムまたはデータには、デバイスドライバのインストールプログラム、および/またはインストール対象の前記デバイスドライバが含まれるが含まれることを特徴とする項目1から7のいずれかに記載の処理装置(1)。
[項目9]
項目1から8のいずれかに記載の処理装置(1)を備えることを特徴とする車載端末装置(7)。
[項目10]
少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動方法であって、
プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納するステップと、
前記検証リスト内から前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すステップと、
セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納するステップと、
通常実行環境下において、前記プログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼するステップと、
を備えることを特徴とする処理装置の起動方法。
[項目11]
少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動プログラムであって、
プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納する機能と、
前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す機能と、
セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納する機能と、
通常実行環境下において、前記プログラムのリストを参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼する機能と、
をコンピュータに実行させることを特徴とする処理装置の起動プログラム。
1 処理装置、 2 表示部、 3 音声出力部、 4 操作部、 5 GPS受信部、 6 無線通信部、 7 車載端末装置、 10 処理部、 11 通常処理部、 12 セキュア処理部、 20 揮発性記憶部、 21 通常記憶領域、 22 セキュア記憶領域、 30 不揮発性記憶部、 40 バス。
本発明は、カーナビゲーションシステムやディスプレイオーディオ等のヘッドユニットに利用可能である。

Claims (11)

  1. 少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置であって、
    プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを格納する、セキュア実行環境下で使用されるセキュア記憶領域と、
    前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す、セキュア実行環境下で動作するセキュア処理部と、
    前記セキュア処理部から渡された前記プログラムまたはデータの識別情報を格納する、通常実行環境下で使用される通常記憶領域と、
    前記検証が必要なプログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する、通常実行環境下で動作する通常処理部と、を備え、
    前記通常処理部は、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部に依頼することを特徴とする処理装置。
  2. 前記通常処理部は、前記処理装置の起動時において、暗号化された前記検証リストを取得して、セキュア実行環境に渡し、
    前記セキュア処理部は、暗号化された前記検証リストを復号し、復号された前記検証リストから前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すことを特徴とする請求項1に記載の処理装置。
  3. 前記セキュア処理部は、定期的またはイベント発生ごとに前記検証が必要なプログラムまたはデータの識別情報を通常実行環境に渡す、または通常実行環境から読み込んでチェックすることを特徴とする請求項1または2に記載の処理装置。
  4. 前記通常処理部は、強制アクセス制御機能を備えたセキュアOS(Operating System)を起動する際、検証が必要なプログラムまたはデータの検証が終了するまでにまたは終了した後、前記強制アクセス制御機能を有効化することを特徴とする請求項1から3のいずれかに記載の処理装置。
  5. 前記通常処理部は、プログラム実行時におけるアクセス要求に対する権限判定を実行するためのハンドラを実行し、
    前記ハンドラに、プログラムまたはデータの完全性を確認するための検証処理における通常実行環境側の処理が記述されていることを特徴とする請求項1から4のいずれかに記載の処理装置。
  6. 前記検証が必要なプログラムまたはデータには、ファイルシステムイメージが含まれることを特徴とする請求項1から5のいずれかに記載の処理装置。
  7. 前記セキュア処理部は、前記ファイルシステムのキャッシュメモリに影響を与えずに、前記ファイルシステムイメージを検証することを特徴とする請求項6記載の処理装置。
  8. 前記検証が必要なプログラムまたはデータには、デバイスドライバのインストールプログラム、および/またはインストール対象の前記デバイスドライバが含まれることを特徴とする請求項1から7のいずれかに記載の処理装置。
  9. 請求項1から8のいずれかに記載の処理装置を備えることを特徴とする車載端末装置。
  10. 少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動方法であって、
    プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納するステップと、
    前記検証リスト内から前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すステップと、
    セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納するステップと、
    通常実行環境下において、前記プログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼するステップと、
    を備えることを特徴とする処理装置の起動方法。
  11. 少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動プログラムであって、
    プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納する機能と、
    前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す機能と、
    セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納する機能と、
    通常実行環境下において、前記プログラムのリストを参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼する機能と、
    をコンピュータに実行させることを特徴とする処理装置の起動プログラム。
JP2015151988A 2015-07-31 2015-07-31 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム Active JP6422059B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015151988A JP6422059B2 (ja) 2015-07-31 2015-07-31 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
PCT/JP2016/001776 WO2017022149A1 (ja) 2015-07-31 2016-03-28 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015151988A JP6422059B2 (ja) 2015-07-31 2015-07-31 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Publications (2)

Publication Number Publication Date
JP2017033248A JP2017033248A (ja) 2017-02-09
JP6422059B2 true JP6422059B2 (ja) 2018-11-14

Family

ID=57942611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015151988A Active JP6422059B2 (ja) 2015-07-31 2015-07-31 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Country Status (2)

Country Link
JP (1) JP6422059B2 (ja)
WO (1) WO2017022149A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6852604B2 (ja) * 2017-07-12 2021-03-31 住友電気工業株式会社 車載装置、管理方法および管理プログラム
JP6463435B1 (ja) * 2017-10-04 2019-02-06 三菱電機株式会社 制御装置および制御方法
JP7052325B2 (ja) * 2017-12-04 2022-04-12 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法
JP6659180B2 (ja) * 2018-04-16 2020-03-04 三菱電機株式会社 制御装置および制御方法
CN110489971A (zh) * 2018-05-15 2019-11-22 微软技术许可有限责任公司 安全的数据集管理
JP2020135459A (ja) * 2019-02-20 2020-08-31 ソニー・オリンパスメディカルソリューションズ株式会社 プロセッサ、制御装置、及びプロセッサの起動プログラム
JP7092071B2 (ja) * 2019-03-05 2022-06-28 トヨタ自動車株式会社 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム
JP6800276B2 (ja) * 2019-05-14 2020-12-16 三菱電機株式会社 制御装置
JP7290166B2 (ja) * 2019-07-22 2023-06-13 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及びプログラム
JP7316902B2 (ja) 2019-10-16 2023-07-28 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
JP7354074B2 (ja) 2020-09-18 2023-10-02 株式会社東芝 情報処理装置、情報処理方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009372A (ja) * 2007-06-28 2009-01-15 Panasonic Corp 情報端末、クライアントサーバシステムおよびプログラム
JP5085287B2 (ja) * 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
JP2015022521A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム

Also Published As

Publication number Publication date
WO2017022149A1 (ja) 2017-02-09
JP2017033248A (ja) 2017-02-09

Similar Documents

Publication Publication Date Title
JP6422059B2 (ja) 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
CN112074836B (zh) 通过可信执行环境保护数据的设备和方法
JP6595822B2 (ja) 情報処理装置及びその制御方法
US6539480B1 (en) Secure transfer of trust in a computing system
US8893295B2 (en) Secure and private location
CN106534148B (zh) 应用的访问管控方法及装置
KR101904303B1 (ko) 보안 소프트웨어 인증 및 검증
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
US8543841B2 (en) Secure hosted execution architecture
KR20180013854A (ko) 전자 디바이스의 무결성을 검증하기 위한 시스템 및 방법
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
US7802069B2 (en) Method and apparatus for protecting flash memory
EP2484564A1 (en) Method and apparatus for vehicle security
JP4754299B2 (ja) 情報処理装置
WO2016101559A1 (zh) 一种数据安全存取方法、装置和计算机存储介质
JP2023542099A (ja) 無線端末、及び無線端末のUbootモードにおけるインタフェースアクセス認証方法
KR20200041639A (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
CN114357468B (zh) 一种固件的安全性保护方法、装置
US20200244461A1 (en) Data Processing Method and Apparatus
CN114553428A (zh) 一种可信验证系统、装置、存储介质及电子设备
CN116745765A (zh) 安全的服务中固件更新
CN114879980A (zh) 车载应用安装方法、装置、计算机设备、存储介质
CN113722736A (zh) 应用文件的访问隔离方法、电子设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181005

R150 Certificate of patent or registration of utility model

Ref document number: 6422059

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

SZ03 Written request for cancellation of trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z03