携帯端末
【課題】
セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供する。
【解決手段】
携帯端末は、非セキュア実行ドメイン150及びセキュア実行ドメイン160に関連付けられた第1CPU110と、通信ドメインに関連付けられた第2CPU120とを有する。携帯端末は、第1CPU110及び第2CPU120が共有するデータ共有領域を備える。第1CPU110は、セキュア割込みと非セキュア割込みとを識別する第1CPU側識別部を有する。第2CPU120は、セキュア外部割込みと非セキュア外部割込みとを識別する第2CPU側識別部を有する。セキュア実行ドメイン160は、第2CPU120から第1CPU110に渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。
セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供する。
【解決手段】
携帯端末は、非セキュア実行ドメイン150及びセキュア実行ドメイン160に関連付けられた第1CPU110と、通信ドメインに関連付けられた第2CPU120とを有する。携帯端末は、第1CPU110及び第2CPU120が共有するデータ共有領域を備える。第1CPU110は、セキュア割込みと非セキュア割込みとを識別する第1CPU側識別部を有する。第2CPU120は、セキュア外部割込みと非セキュア外部割込みとを識別する第2CPU側識別部を有する。セキュア実行ドメイン160は、第2CPU120から第1CPU110に渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。
【発明の詳細な説明】
【技術分野】
【0001】
保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する携帯端末に関する。
【背景技術】
【0002】
従来、多様なコンテンツやアプリケーションを追加可能に構成された携帯端末が知られている。近年では、コンテンツやアプリケーションのデータサイズは大きくなっており、コンテンツやアプリケーションの高機能化が進んでいる。このような状況に対応するために、携帯端末に設けられたCPUの高機能化が求められている。
【0003】
例えば、第1CPU(以下、A−CPU)と、第2CPU(以下、C−CPU)とを有する携帯端末が提案されている。A−CPUは、アプリケーションを実行する専用のCPUである。C−CPUは、移動通信網などのネットワークと通信を行う処理(通信処理)を実行する専用のCPUである。このような携帯端末では、A−CPU上で実行されるアプリケーションが通信処理を必要とする場合には、A−CPUは通信処理をC−CPUに依頼する必要がある。
【0004】
ここで、A−CPUは、メール、ウェブ閲覧、カメラなどのように、様々なアプリケーションを実行する。従って、A−CPUは、例えば、Linux、Symbian OS、Windows(登録商標) Mobileなどの高機能OSを有することが多い。一方で、C−CPUは、μITRON(Micro Industrial The Real−time Operating system Nucleus)などのリアルタイムOSを有する。
【0005】
ここで、A−CPU上では、PCなどと同様に、A−CPUに設けられたOS上で直接的にアプリケーションを実行することが可能である。これによって、不要なオーバヘッドが生じることなく、アプリケーションが実行される。しかしながら、PCなどと同様に、ウィルスなどを含む攻撃アプリケーションが不正に実行されると、携帯端末に記憶された各種情報(コンテンツや個人情報など)の消去や漏洩が生する危険性がある。また、携帯端末が故障する危険性もある。
【0006】
このような危険性に対処する技術するために、(1)仮想的なリソースによって複数のOSを動作させる第1技術(例えば、特許文献1)、(2)複数のOSのそれぞれが用いるメモリ領域を分離する第2技術(例えば、特許文献2)、(3)複数のCPU間で通信を行う場合に、受信側OSが用いるメモリ領域のアドレスを指定する技術(例えば、特許文献3)が提案されている。
【0007】
第1技術では、仮想的なCPU、メモリ領域、周辺デバイスを有する仮想端末が構成される。複数のOSは仮想端末上で動作する。このような仮想端末上において、アプリケーションを実行するOSと、コンテンツや個人情報などを処理するOSとを分離することが考えられる。
【0008】
第2技術では、複数のOSのそれぞれが用いるメモリ領域を分離することによって、携帯端末は、非セキュア実行ドメインとセキュア実行ドメインとを有する。非セキュア実行ドメインは、メモリ領域に格納されたデータが保護されないドメインである。セキュア実行ドメインは、メモリ領域に格納されたデータが保護されるドメインである。携帯端末は、非セキュア実行ドメインへの外部割込みを処理する第1処理部と、セキュア実行ドメインへの外部割込みを処理する第2処理部とを有する。これによって、外部CPU(例えば、C−CPU)からの外部割込みは、適切なOS(ドメイン)に通知される。
【0009】
第3技術では、複数のCPU間で通信を行う場合に、受信側CPUが用いるメモリ領域のアドレスを送信側CPUが指定する。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】米国特許第6,453,392号明細書
【特許文献2】米国特許出願公開第2004/0153593号明細書
【特許文献3】米国特許第7,136,933号明細書
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上述した技術では、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(以下、保護対象情報)が十分に保護されていない。
【0012】
具体的には、上述した第1技術では、仮想端末上で動作する複数のOSは、物理的には単一のハードウェアによって実現されている。従って、複数のOS(セキュア実行ドメイン及び非セキュア実行ドメイン)を並列で動作させることができない。
【0013】
上述した第2技術では、外部割込みを適切なOSに通知するに過ぎない。すなわち、第2技術では、外部CPU(例えば、C−CPU)がセキュア実行ドメイン及び非セキュア実行ドメインのいずれに割り込むかについて考慮されていない。従って、外部CPU(例えば、C−CPU)が非セキュア実行ドメインに割り込む場合に、外部CPU(例えば、C−CPU)が取得した保護対象情報が非セキュア実行ドメインに漏洩する可能性がある。
【0014】
上述した第3技術では、受信側CPUが用いるメモリ領域のアドレスを送信側CPUが指定するに過ぎない。すなわち、第3技術では、受信側CPU上で複数のOS(セキュア実行ドメイン及び非セキュア実行ドメイン)が動作することについて考慮されていない。このように、セキュア実行ドメインについて考慮されていないため、保護対象情報の保護が十分ではない。
【0015】
そこで、本発明は、上述した課題を解決するためになされたものであり、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供することを目的とする。
【課題を解決するための手段】
【0016】
第1の特徴に係る携帯端末は、保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する。携帯端末は、前記第1CPUに関連付けられており、前記第1CPU及び前記第2CPUが共有するメモリ領域であるデータ共有領域を備える。前記第1CPUは、前記第2CPUから前記セキュア実行ドメインへの割込みであるセキュア割込みと、前記第2CPUから前記非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有する。前記第2CPUは、前記セキュア実行ドメインから前記第2CPUへの外部割込みであるセキュア外部割込みと、前記非セキュア実行ドメインから前記第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有する。前記セキュア実行ドメインは、前記第2CPUから前記第1CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護する。
【0017】
第1の特徴において、前記セキュア実行ドメインは、前記第1CPUから前記第2CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護する。
【0018】
第1の特徴において、前記データ共有領域は、前記セキュア実行ドメインに設けられている。
【0019】
第1の特徴において、前記データ共有領域は、前記セキュア実行ドメインに設けられたセキュア共有領域と、前記非セキュア実行ドメインに設けられた非セキュア共有領域とを含む。前記第2CPU側識別部は、前記セキュア共有領域及び前記非セキュア共有領域の状態に応じて、前記セキュア外部割込みと非セキュア外部割込みとを識別する。
【0020】
第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインに設けられた前記データ共有領域にアクセス可能である。前記セキュア実行ドメインは、前記セキュア割込みが検出された後に検出された前記非セキュア割込みを無効化する第1無効化部と、前記保護対象情報が前記データ共有領域から消去された後に、前記第1無効化部によって無効化された前記非セキュア割込みを有効化する第1有効化部とを有する。
【0021】
第1の特徴において、前記セキュア実行ドメインは、前記保護対象情報が前記データ共有領域から消去されるまで、前記非セキュア実行ドメインで実行される処理を停止する実行停止部を有する。
【0022】
第1の特徴において、前記セキュア実行ドメイン及び前記第2CPUは、前記データ共有領域に書き込まれた前記保護対象情報を共同で消去する。
【0023】
第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第1検証部と、前記第2CPUによって前記データ共有領域に書き込まれる前記保護対象情報を前記セキュア実行ドメインに渡すデータ取得処理を前記非セキュア実行ドメインに依頼する第1依頼部とを有する。前記第1依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ取得処理を前記非セキュア実行ドメインに依頼する。
【0024】
第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第2検証部と、前記セキュア実行ドメインによって前記データ共有領域に書き込まれる前記保護対象情報を前記第2CPUに渡すデータ送信処理を前記非セキュア実行ドメインに依頼する第2依頼部とを有する。前記第2依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ送信処理を前記非セキュア実行ドメインに依頼する。
【0025】
第1の特徴において、前記通信ドメインは、前記セキュア実行ドメインから取得した前記保護対象情報と、前記非セキュア実行ドメインから取得した前記非保護対象情報とをまとめて、前記ネットワークに送信される送信データを生成するデータ結合部を有する。
【0026】
第1の特徴において、前記通信ドメインは、前記ネットワークから受信する受信データを、前記セキュア実行ドメインに渡す前記保護対象情報と、前記非セキュア実行ドメインに渡す前記非保護対象情報とに分離するデータ分離部を有する。
【発明の効果】
【0027】
本発明によれば、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供することができる。
【図面の簡単な説明】
【0028】
【図1】第1実施形態に係るプログラム実行装置100を示すブロック図である。
【図2】第1実施形態に係るデータ共有領域163を示す図である。
【図3】第1実施形態に係るデータ共有領域163を示す図である。
【図4】第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図5】第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図6】第2実施形態に係るプログラム実行装置100を示すブロック図である。
【図7】第3実施形態に係るプログラム実行装置100を示すブロック図である。
【図8】第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図9】第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図10】第4実施形態に係るプログラム実行装置100を示すブロック図である。
【図11】第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図12】第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図13】第5実施形態に係るプログラム実行装置100を示すブロック図である。
【図14】第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図15】第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図16】第6実施形態に係るプログラム実行装置100を示すブロック図である。
【図17】第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図18】第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【発明を実施するための形態】
【0029】
以下において、本発明の実施形態に係る携帯端末について、図面を参照しながら説明する。なお、以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。
【0030】
ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。従って、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0031】
[実施形態の概要]
実施形態に係る携帯端末は、保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する。携帯端末は、第1CPUに関連付けられており、第1CPU及び第2CPUが共有するメモリ領域であるデータ共有領域を備える。
【0032】
第1CPUは、第2CPUからセキュア実行ドメインへの割込みであるセキュア割込みと、第2CPUから非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有する。
【0033】
第2CPUは、セキュア実行ドメインから第2CPUへの外部割込みであるセキュア外部割込みと、非セキュア実行ドメインから第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有する。
【0034】
セキュア実行ドメインは、第2CPUから第1CPUに渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。同様に、セキュア実行ドメインは、第1CPUから第2CPUに渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。
【0035】
実施形態では、第1CPUは、セキュア割込み及び非セキュア割込みを識別する第1CPU側識別部を有する。同様に、第2CPUは、セキュア外部割込み及び非セキュア外部割込みを識別する第2CPU側識別部を有する。なお、セキュア実行ドメインは、データ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。
【0036】
このように、セキュア割込み、非セキュア割込み、セキュア外部割込み及び非セキュア外部割込みの識別によって、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することができる。
【0037】
なお、以下においては、携帯端末に設けられたプログラム実行装置について主として説明する。
【0038】
[第1実施形態]
(プログラム実行装置の構成)
以下において、第1実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図1は、第1実施形態に係るプログラム実行装置100を示すブロック図である。プログラム実行装置100は、例えば、携帯端末に設けられる。
【0039】
図1に示すように、プログラム実行装置100は、第1CPU110と、第2CPU120と、第1CPU用メモリ130と、第2CPU用メモリ140とを有する。
【0040】
第1CPU110は、第1CPU用メモリ130上にプログラムを展開して、各種アプリケーション(プログラム)を実行する。第1CPU110は、第1CPU用メモリ130に関連付けられている。第1CPU110は、例えば、アプリケーションを実行する専用のCPU(A−CPU)である。第1CPU110は、例えば、メール、ウェブ閲覧、カメラなどのようなアプリケーションを実行する。
【0041】
第1実施形態では、第1CPU110は、第2CPU120からの割込みの種別を識別する割込み識別部111を有する。第2CPU120からの割込みとしては、非セキュア実行ドメイン150への割込みである非セキュア割込みと、セキュア実行ドメイン160への割込みであるセキュア割込みとが挙げられる。すなわち、割込み識別部111は、非セキュア割込みとセキュア割込みとを識別する。
【0042】
第1実施形態では、非セキュア割込み及びセキュア割込みは、異なる構成を有する割込みである。すなわち、非セキュア割込み及びセキュア割込みは、それぞれ、専用の割込みである。
【0043】
第2CPU120は、第2CPU用メモリ140上にプログラムを展開して、各種アプリケーション(プログラム)を実行する。第2CPU120は、第2CPU用メモリ140に関連付けられている。第2CPU120は、例えば、移動通信網などのネットワークと通信を行う処理(通信処理)を実行する専用のCPU(C−CPU)である。
【0044】
第1実施形態では、第2CPU120は、第1CPU110からの外部割込みの種別を識別する外部割込み識別部121を有する。第1CPU110からの外部割込みとしては、非セキュア実行ドメイン150からの外部割込みである非セキュア外部割込みと、セキュア実行ドメイン160からの外部割込みであるセキュア外部割込みとが挙げられる。すなわち、外部割込み識別部121は、非セキュア外部割込みとセキュア外部割込みとを識別する。
【0045】
第1実施形態では、非セキュア外部割込み及びセキュア外部割込みは、異なる構成を有する外部割込みである。すなわち、非セキュア外部割込み及びセキュア外部割込みは、それぞれ、専用の外部割込みである。
【0046】
第1CPU用メモリ130は、非セキュア実行ドメイン150と、セキュア実行ドメイン160とを有する。第1CPU用メモリ130は、例えば、RAM(Random Access Memory)などによって構成される。
【0047】
非セキュア実行ドメイン150は、非保護対象情報を処理するドメインである。すなわち、非セキュア実行ドメイン150では、メモリ領域に格納されたデータがセキュア実行ドメイン160よりも保護されない。
【0048】
具体的には、非セキュア実行ドメイン150は、非信頼アプリケーション処理部151とと、非セキュア外部割込み処理部152とを有する。
【0049】
非信頼アプリケーション処理部151は、信頼性を有していないアプリケーションを処理する。例えば、非信頼アプリケーション処理部151は、携帯端末に新たに追加されたアプリケーションを処理する。
【0050】
非セキュア外部割込み処理部152は、第2CPU120への外部割込み(非セキュア外部割込み)を発行する。具体的には、非セキュア外部割込み処理部152は、非信頼アプリケーション処理部151からの要求に従って、非セキュア外部割込みを発行する。例えば、非セキュア外部割込み処理部152は、非信頼アプリケーション処理部151からの要求に従って、第2CPU120によってネットワークにデータを送信する際に、非セキュア外部割込みを発行する。
【0051】
セキュア実行ドメイン160は、保護対象情報を処理するドメインである。すなわち、セキュア実行ドメイン160では、メモリ領域に格納されたデータが非セキュア実行ドメイン150よりも保護される。詳細には、セキュア実行ドメイン160では、メモリ領域に格納されたデータが非セキュア実行ドメイン150から保護される。
【0052】
具体的には、セキュア実行ドメイン160は、信頼アプリケーション処理部161と、セキュア外部割込み処理部162と、データ共有領域163とを有する。
【0053】
信頼アプリケーション処理部161は、信頼性を有するアプリケーションを処理する。例えば、信頼アプリケーション処理部161は、携帯端末に予めインストールされたアプリケーションを処理する。
【0054】
セキュア外部割込み処理部162は、第2CPU120への外部割込み(セキュア外部割込み)を発行する。具体的には、セキュア外部割込み処理部162は、信頼アプリケーション処理部161からの要求に従って、セキュア外部割込みを発行する。例えば、セキュア外部割込み処理部162は、信頼アプリケーション処理部161からの要求に従って、第2CPU120によってネットワークにデータを送信する際に、セキュア外部割込みを発行する。
【0055】
データ共有領域163は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。
【0056】
ここで、データ共有領域163には、第1CPU110から第2CPU120に渡すデータが書き込まれる。すなわち、データ共有領域163には、第2CPU120によってネットワークに送信されるデータが格納される。
【0057】
また、データ共有領域163には、第2CPU120から第1CPU110に渡すデータが書き込まれる。すなわち、データ共有領域163には、第2CPU120によってネットワークから受信されるデータが格納される。
【0058】
第2CPU用メモリ140は、通信アプリケーション処理部141と、セキュア割込み処理部142と、非セキュア割込み処理部143とを有する。第2CPU用メモリ140は、ネットワークと通信を行う処理(通信処理)を実行する通信ドメインである。
【0059】
通信アプリケーション処理部141は、通信機能に係るアプリケーションを処理する。具体的には、通信アプリケーション処理部141は、ネットワークと通信を行う処理(通信処理)に係るアプリケーションを処理する。
【0060】
セキュア割込み処理部142は、第1CPU110のセキュア実行ドメイン160への割込み(セキュア割込み)を発行する。具体的には、セキュア割込み処理部142は、通信アプリケーション処理部141からの要求に従って、セキュア割込みを発行する。例えば、セキュア割込み処理部142は、通信アプリケーション処理部141からの要求に従って、第2CPU120によってネットワークから受信されたデータをセキュア実行ドメイン160に送信する際に、セキュア割込みを発行する。
【0061】
非セキュア割込み処理部143は、第1CPU110の非セキュア実行ドメイン150への割込み(非セキュア割込み)を発行する。具体的には、非セキュア割込み処理部143は、通信アプリケーション処理部141からの要求に従って、非セキュア割込みを発行する。例えば、非セキュア割込み処理部143は、通信アプリケーション処理部141からの要求に従って、第2CPU120によってネットワークから受信されたデータを非セキュア実行ドメイン150に送信する際に、非セキュア割込みを発行する。
【0062】
(保護対象情報の保護)
以下において、第1実施形態に係る保護対象情報の保護について説明する。具体的には、データ共有領域163は、セキュア実行ドメイン160に設けられている。また、セキュア実行ドメイン160は、データ共有領域163に書き込まれたデータを非セキュア実行ドメイン150から保護する。
【0063】
すなわち、セキュア実行ドメイン160は、セキュア実行ドメイン160は、第1CPU110から第2CPU120に渡すためにデータ共有領域163に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。同様に、セキュア実行ドメイン160は、第2CPU120から第1CPU110に渡すためにデータ共有領域163に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。
【0064】
第1実施形態では、保護対象情報は、図2及び図3に示すように、データ受信完了フラグによって管理される。
【0065】
図2には、第2CPU120からセキュア実行ドメイン160に渡す保護対象情報に対応付けられたデータ受信完了フラグが示されている。このようなケースでは、セキュア実行ドメイン160は、第2CPU120から保護対象情報を受信した場合に、データ受信完了フラグに“承認”をセットする(図2に示す1番目の保護対象情報を参照)。
【0066】
図3には、セキュア実行ドメイン160から第2CPU120に渡す保護対象情報に対応付けられたデータ受信完了フラグが示されている。このようなケースでは、第2CPU120は、セキュア実行ドメイン160から保護対象情報を受信した場合に、データ受信完了フラグに“承認”をセットする(図3に示す1番目の保護対象情報を参照)。
【0067】
(プログラム実行装置の動作)
以下において、第1実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図4及び図5は、第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【0068】
以下においては、第1CPU用メモリ130上に設けられた構成は、第1CPU110によって制御されるため、第1CPU用メモリ130上に設けられた構成の処理について、必要に応じて、第1CPU110の処理として説明する。同様に、第2CPU用メモリ140上に設けられた構成は、第2CPU120によって制御されるため、第2CPU用メモリ140上に設けられた構成の処理について、必要に応じて、第2CPU120の処理として説明する。
【0069】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図4を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0070】
図4に示すように、ステップ110において、第2CPU120は、第2CPU120によってネットワークから受信されるデータをデータ共有領域163に書き込む。具体的には、通信アプリケーション処理部141は、セキュア実行ドメイン160に渡す保護対象情報をデータ共有領域163に書き込む。
【0071】
ステップ120において、第2CPU120は、第1CPU110への割込みを発行する。具体的には、セキュア割込み処理部142は、セキュア実行ドメイン160への割込みであるセキュア割込みを発行する。
【0072】
ステップ210において、第1CPU110は、第1CPU110への割込みを検知する。具体的には、割込み識別部111は、セキュア実行ドメイン160への割込みであるセキュア割込みを検知する。
【0073】
ステップ220において、第1CPU110は、データ共有領域163からデータを読み出す。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、データ共有領域163から保護対象情報を読み出す。
【0074】
ステップ230において、第1CPU110は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。
【0075】
ステップ240において、第1CPU110は、第2CPU120への外部割込みを発行する。具体的には、セキュア実行ドメイン160のセキュア外部割込み処理部162は、第2CPU120への外部割込みであるセキュア外部割込みを発行する。
【0076】
ステップ310において、第2CPU120は、第2CPU120への外部割込みを検知する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みを検知する。
【0077】
ステップ320において、第2CPU120は、第2CPU120への外部割込みの発行元(割込み元)を確認する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みの発行元を確認する。
【0078】
ステップ330において、第2CPU120は、第2CPU120への外部割込みの発行元がセキュア実行ドメイン160であるか否かを識別する。具体的には、外部割込み識別部121は、外部割込みがセキュア外部割込みであるか否かを識別する。
【0079】
外部割込みがセキュア外部割込みである場合には、ステップ340が実行される。一方で、外部割込みが非セキュア外部割込みである場合には、一連の処理が終了する。
【0080】
ステップ340において、第2CPU120は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグを確認する。具体的には、通信アプリケーション処理部141は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”が設定されていることを確認する。
【0081】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図5を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0082】
図5に示すように、ステップ410において、第1CPU110は、第2CPU120によってネットワークに送信されるデータをデータ共有領域163に書き込む。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、第2CPU120に渡す保護対象情報をデータ共有領域163に書き込む。
【0083】
ステップ420において、第1CPU110は、第2CPU120への外部割込みを発行する。具体的には、セキュア実行ドメイン160のセキュア外部割込み処理部162は、第2CPU120への外部割込みであるセキュア外部割込みを発行する。
【0084】
ステップ510において、第2CPU120は、第2CPU120への外部割込みを検知する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みを検知する。
【0085】
ステップ520において、第2CPU120は、第2CPU120への外部割込みの発行元(割込み元)を確認する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みの発行元を確認する。
【0086】
ステップ530において、第2CPU120は、第2CPU120への外部割込みの発行元がセキュア実行ドメイン160であるか否かを識別する。具体的には、外部割込み識別部121は、外部割込みがセキュア外部割込みであるか否かを識別する。
【0087】
外部割込みがセキュア外部割込みである場合には、ステップ540が実行される。一方で、外部割込みが非セキュア外部割込みである場合には、一連の処理が終了する。
【0088】
ステップ540において、第2CPU120は、データ共有領域163からデータを読み出す。具体的には、通信アプリケーション処理部141は、データ共有領域163から保護対象情報を読み出す。
【0089】
ステップ550において、第2CPU120は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、通信アプリケーション処理部141は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。
【0090】
ステップ560において、第2CPU120は、第1CPU110への割込みを発行する。具体的には、セキュア割込み処理部142は、セキュア実行ドメイン160への割込みであるセキュア割込みを発行する。
【0091】
ステップ610において、第1CPU110は、第1CPU110への割込みを検知する。具体的には、割込み識別部111は、セキュア実行ドメイン160への割込みであるセキュア割込みを検知する。
【0092】
ステップ620において、第1CPU110は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグを確認する。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”がセットされていることを確認する。
【0093】
(作用及び効果)
第1実施形態では、第1CPU110は、セキュア割込み及び非セキュア割込みを識別する割込み識別部111を有する。同様に、第2CPU120は、セキュア外部割込み及び非セキュア外部割込みを識別する外部割込み識別部121を有する。なお、第1CPU110に関連付けられたセキュア実行ドメイン160は、データ共有領域に書き込まれた保護対象情報を、第1CPU110に関連付けられた非セキュア実行ドメイン150から保護する。
【0094】
このように、セキュア割込み、非セキュア割込み、セキュア外部割込み及び非セキュア外部割込みの識別によって、セキュア実行ドメイン160及び非セキュア実行ドメイン150が並列で動作するケースにおいて、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を十分に保護することができる。
【0095】
第1実施形態では、データ共有領域163がセキュア実行ドメイン160に設けられているため、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を十分に保護することができる。
【0096】
[第2実施形態]
以下において、第2実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
【0097】
具体的には、第1実施形態では、非セキュア割込み及びセキュア割込みは、異なる構成を有する割込みである。非セキュア外部割込み及びセキュア外部割込みは、異なる構成を有する外部割込みである。
【0098】
これに対して、第2実施形態では、非セキュア割込み及びセキュア割込みは、同様の構成を有する割込みである。非セキュア外部割込み及びセキュア外部割込みは、同様の構成を有する外部割込みである。
【0099】
(プログラム実行装置の構成)
以下において、第2実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図6は、第2実施形態に係るプログラム実行装置100を示すブロック図である。図6では、図1と同様の構成について、同様の符号を付している。
【0100】
図6に示すように、非セキュア実行ドメイン150は、非セキュア共有領域153をさらに備える。セキュア実行ドメイン160は、データ共有領域163に代えて、セキュア共有領域164を備える。
【0101】
非セキュア共有領域153は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。具体的には、非セキュア共有領域153は、非セキュア実行ドメイン150及び第2CPU120によって共有される領域である。
【0102】
ここで、非セキュア共有領域153に格納されるデータには、第2CPU120から非セキュア実行ドメイン150に非セキュア割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。同様に、非セキュア実行ドメイン150に格納されるデータには、非セキュア実行ドメイン150から第2CPU120に非セキュア外部割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。
【0103】
セキュア共有領域164は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。具体的には、セキュア共有領域164は、セキュア実行ドメイン160及び第2CPU120によって共有される領域である。
【0104】
ここで、セキュア共有領域164に格納されるデータには、第2CPU120からセキュア実行ドメイン160にセキュア割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。同様に、セキュア共有領域164に格納されるデータには、セキュア実行ドメイン160から第2CPU120にセキュア外部割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。
【0105】
上述した割込み識別部111は、非セキュア割込みとセキュア割込みとを割込み識別フラグによって識別する。すなわち、割込み識別部111は、非セキュア共有領域153及びセキュア共有領域164の状態に応じて、非セキュア割込みとセキュア割込みとを識別する。
【0106】
上述した外部割込み識別部121は、非セキュア外部割込みとセキュア外部割込みとを割込み識別フラグによって識別する。すなわち、外部割込み識別部121は、非セキュア共有領域153及びセキュア共有領域164の状態に応じて、非セキュア外部割込みとセキュア外部割込みとを識別する。
【0107】
(作用及び効果)
第2実施形態では、割込み識別部111は、非セキュア共有領域153及びセキュア共有領域164に格納された割込み識別フラグによって、非セキュア割込みとセキュア割込みとを識別する。従って、非セキュア割込み及びセキュア割込みが同じ構成を有していても、非セキュア割込みとセキュア割込みとの識別が可能である。
【0108】
同様に、外部割込み識別部121は、非セキュア共有領域153及びセキュア共有領域164に格納された割込み識別フラグによって、非セキュア外部割込みとセキュア外部割込みとを識別する。従って、非セキュア外部割込み及びセキュア外部割込みが同じ構成を有していても、非セキュア外部割込みとセキュア外部割込みとの識別が可能である。
【0109】
[第3実施形態]
以下において、第3実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
【0110】
具体的には、第1実施形態では、データ共有領域がセキュア実行ドメイン160に設けられている。これに対して、第3実施形態では、データ共有領域が非セキュア実行ドメイン150に設けられている。
【0111】
(プログラム実行装置の構成)
以下において、第3実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図7は、第3実施形態に係るプログラム実行装置100を示すブロック図である。図7では、図1と同様の構成について、同様の符号を付している。
【0112】
図7に示すように、第2CPU用メモリ140は、データ消去部144をさらに備える。非セキュア実行ドメイン150は、データ共有領域154をさらに備える。セキュア実行ドメイン160は、データ共有領域163に代えて、割込み監視部165及びデータ消去部166を備える。
【0113】
データ消去部144は、第1CPU110から第2CPU120に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、非セキュア実行ドメイン150の割込みが有効化される前に、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0114】
データ共有領域154は、データ共有領域163と同様に、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。なお、セキュア実行ドメイン160は、データ共有領域154にアクセス可能であることに留意すべきである。
【0115】
ここで、データ共有領域154には、第1CPU110から第2CPU120に渡すためのデータが書き込まれる。すなわち、データ共有領域154には、第2CPU120によってネットワークに送信されるデータが格納される。
【0116】
また、データ共有領域154には、第2CPU120から第1CPU110に渡すためのデータが書き込まれる。すなわち、データ共有領域154には、第2CPU120によってネットワークから受信されるデータが格納される。
【0117】
割込み監視部165は、第1CPU110から第2CPU120への割込み、第2CPU120から第1CPU110への外部割込みを監視する。
【0118】
ここで、割込み監視部165は、セキュア割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する第1無効化部を構成する。また、割込み監視部165は、セキュア外部割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。
【0119】
割込み監視部165は、保護対象情報がデータ共有領域154から消去された後に、割込み監視部165によって無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する第1有効化部を構成する。
【0120】
割込み監視部165は、保護対象情報がデータ共有領域154から消去されるまで、非セキュア実行ドメイン150で実行される処理を停止する実行停止部を構成する。具体的には、割込み監視部165は、セキュア実行ドメイン160から第2CPU120へのセキュア外部割込みが発行されてから、第2CPU120からセキュア実行ドメイン160へのセキュア割込みが検知されるまで、非セキュア実行ドメイン150で実行される処理を停止させて、セキュア実行ドメイン160を維持する。
【0121】
データ消去部166は、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、少なくとも、非セキュア実行ドメイン150の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0122】
(プログラム実行装置の動作)
以下において、第3実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図8及び図9は、第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。図8では、図4と同様の処理について、同様のステップ番号が付されている。図9では、図5と同様の処理について、同様のステップ番号が付されている。
【0123】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図8を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0124】
図8に示すように、ステップ211において、第1CPU110は、他の割込みを無効化する。具体的には、割込み監視部165は、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。
【0125】
ここで、ステップ211の処理は、ステップ210の処理の後、すなわち、セキュア割込みが割込み識別部111によって検知された後に行われることに留意すべきである。
【0126】
ステップ221において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0127】
ここで、ステップ221の処理は、ステップ240の処理の前、すなわち、セキュア外部割込みが発行される前に行われることに留意すべきである。
【0128】
ステップ242において、第1CPU110は、他の割込みを有効化する。具体的には、割込み監視部165は、ステップ211で無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。
【0129】
ここで、ステップ241の処理は、ステップ240の処理の後、すなわち、セキュア外部割込みが発行された後に行われることに留意すべきである。
【0130】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図9を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0131】
図9に示すように、ステップ401において、第1CPU110は、他の割込みを無効化する。具体的には、割込み監視部165は、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。
【0132】
ここで、ステップ401の処理は、ステップ410の処理の前、すなわち、セキュア実行ドメイン160が保護対象情報をデータ共有領域154に書き込む処理の前に行われることに留意すべきである。
【0133】
ステップ421において、第1CPU110は、セキュア実行ドメイン160を維持する状態(ドメイン維持状態)をセットする。具体的には、割込み監視部165は、ドメイン維持状態をセットして、非セキュア実行ドメイン150で実行される処理を停止させる。
【0134】
ステップ541において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0135】
なお、ステップ541の処理は、ステップ550の処理の前、すなわち、データ受信完了フラグに“承認”がセットされる前に行われることに留意すべきである。
【0136】
ステップ611において、第1CPU110は、セキュア実行ドメイン160を維持する状態(ドメイン維持状態)を解除する。具体的には、割込み監視部165は、ドメイン維持状態を解除して、非セキュア実行ドメイン150で実行される処理を再開させる。
【0137】
なお、ステップ611の処理は、ステップ610の処理の後、セキュア割込みが検知された後に行われるに留意すべきである。
【0138】
ステップ621において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、ステップ541で削除されなかった残りの保護対象情報を削除する。
【0139】
なお、ステップ621の処理は、ステップ620の処理の後、すなわち、データ受信完了フラグに“承認”がセットされていることが確認された後に行われる。
【0140】
ステップ622において、第1CPU110は、他の割込みを有効化する。具体的には、割込み監視部165は、ステップ401で無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。
【0141】
(作用及び効果)
第3実施形態では、割込み監視部165は、セキュア割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。従って、データ共有領域154が非セキュア実行ドメイン150に設けられていても、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。
【0142】
第3実施形態では、割込み監視部165は、保護対象情報がデータ共有領域154から消去された後に、割込み監視部165によって無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。従って、セキュア実行ドメイン160及び非セキュア実行ドメイン150を並列で動作させることができる。
【0143】
第3実施形態では、割込み監視部165は、保護対象情報がデータ共有領域154から消去されるまで、非セキュア実行ドメイン150で実行される処理を停止する。従って、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。
【0144】
[第4実施形態]
以下において、第4実施形態について、図面を参照しながら説明する。以下においては、第3実施形態との相違点について主として説明する。
【0145】
具体的には、第3実施形態では、データ共有領域154に書き込まれた保護対象情報を受信側が削除する。第4実施形態では、データ共有領域154に書き込まれた保護対象情報を受信側及び送信側の双方が削除する。
【0146】
(プログラム実行装置の構成)
以下において、第4実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図10は、第4実施形態に係るプログラム実行装置100を示すブロック図である。図10では、図7と同様の構成について、同様の符号を付している。
【0147】
図10に示すように、第2CPU用メモリ140は、送信データ消去部145をさらに備える。セキュア実行ドメイン160は、送信データ消去部167をさらに備える。
【0148】
送信データ消去部145は、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部145は、セキュア実行ドメイン160によってデータ受信完了フラグに“承認”がセットされた場合に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0149】
送信データ消去部167は、第1CPU110から第2CPU120に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部167は、第2CPU120によってデータ受信完了フラグに“承認”がセットされた場合に、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0150】
(プログラム実行装置の動作)
以下において、第4実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図11及び図12は、第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。図11では、図8と同様の処理について、同様のステップ番号が付されている。図12では、図9と同様の処理について、同様のステップ番号が付されている。
【0151】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図11を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0152】
図11に示すように、ステップ241において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0153】
ここで、ステップ241の処理は、図8に示すステップ221の処理と同様である。図11では、図8に示すステップ221の処理に代えて、ステップ241の処理が行われる。
【0154】
ステップ241の処理は、ステップ240の処理の後、すなわち、セキュア外部割込みが発行された後に行われることに留意すべきである。但し、ステップ241の処理は、ステップ242の処理の前、すなわち、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に行われる。
【0155】
ステップ341において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部145は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0156】
ここで、ステップ341の処理は、ステップ340の処理の後、すなわち、データ受信完了フラグに“承認”がセットされた後に行われることに留意すべきである。
【0157】
このように、第4実施形態では、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報は、送信データ消去部145及びデータ消去部166の双方によって共同で削除される。
【0158】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図12を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0159】
図12に示すように、ステップ561において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0160】
ここで、ステップ561の処理は、図9に示すステップ541の処理と同様である。図12では、図9に示すステップ541の処理に代えて、ステップ561の処理が行われる。
【0161】
ステップ561の処理は、ステップ560の処理の後、すなわち、セキュア実行ドメイン160への割込みであるセキュア割込みが発行された後に行われることに留意すべきである。
【0162】
ステップ621Aにおいて、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部167は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0163】
ここで、ステップ341の処理は、ステップ340の処理の後、すなわち、データ受信完了フラグに“承認”がセットされた後に行われることに留意すべきである。
【0164】
なお、ステップ621Aの処理は、図9に示すステップ621の処理と類似する。しかしながら、第4実施形態では、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報は、データ消去部144及び送信データ消去部167の双方によって共同で削除される。
【0165】
(作用及び効果)
第4実施形態では、データ共有領域154に書き込まれた保護対象情報は、送信側及び受信側の双方によって削除される。従って、他の割込みを短時間で有効化することができる。
【0166】
[第5実施形態]
以下において、第5実施形態について、図面を参照しながら説明する。以下においては、第3実施形態との相違点について主として説明する。
【0167】
具体的には、第3実施形態では、データ共有領域154に書き込まれた保護対象情報は、セキュア実行ドメイン160によって削除される。第5実施形態では、データ共有領域154に書き込まれた保護対象情報は、セキュア実行ドメイン160の依頼に応じて、非セキュア実行ドメイン150によってセキュア実行ドメイン160に渡される。
【0168】
(プログラム実行装置の構成)
以下において、第5実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図13は、第5実施形態に係るプログラム実行装置100を示すブロック図である。図13では、図7と同様の構成について、同様の符号を付している。
【0169】
図13に示すように、非セキュア実行ドメイン150は、データ消去部155をさらに備える。セキュア実行ドメイン160は、データ消去部166に代えて、依頼部168及び完全性検証部169を有する。
【0170】
データ消去部155は、データ消去部166と同様に、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部155は、少なくとも、非セキュア実行ドメイン150の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0171】
依頼部168は、セキュア実行ドメイン160で処理するデータを第2CPU120に渡すデータ送信処理を非セキュア実行ドメイン150に依頼する。同様に、依頼部168は、セキュア実行ドメイン160で処理するデータを第2CPU120から取得するデータ取得処理を非セキュア実行ドメイン150に依頼する。
【0172】
具体的には、依頼部168は、データ共有領域154に書き込まれる保護対象情報を第2CPU120に渡すデータ送信処理を非信頼アプリケーション処理部151に依頼する。同様に、依頼部168は、データ共有領域154に書き込まれ保護対象情報をセキュア実行ドメイン160に渡すデータ取得処理を非信頼アプリケーション処理部151に依頼する。
【0173】
なお、依頼部168は、非セキュア実行ドメイン150に保護対象情報を渡す。同様に、依頼部168は、非セキュア実行ドメイン150から保護対象情報を取得する。
【0174】
完全性検証部169は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。メモリイメージの完全性の検証は、正しいメモリイメージとの比較、正しいメモリイメージから導出されたハッシュ値との比較によって行われる。
【0175】
(プログラム実行装置の動作)
以下において、第5実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図14及び図15は、第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。図14では、図8と同様の処理について、同様のステップ番号が付されている。図15では、図9と同様の処理について、同様のステップ番号が付されている。
【0176】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図14を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0177】
ステップ212において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。
【0178】
ステップ213において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)が改竄されているか否かを安定する。改竄が無い場合には、ステップ214の処理が行われる。改竄がある場合には、一連の処理を終了する。
【0179】
ステップ214において、第1CPU110は、セキュア実行ドメイン160で処理するデータを第2CPU120から取得するデータ取得処理を非セキュア実行ドメイン150に依頼する。具体的には、依頼部168は、データ共有領域154に書き込まれる保護対象情報をセキュア実行ドメイン160に渡すデータ取得処理を非信頼アプリケーション処理部151に依頼する。
【0180】
ステップ220Xにおいて、第1CPU110は、データ共有領域154からデータを読み出す。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、データ共有領域154から保護対象情報を読み出す。
【0181】
ステップ221Xにおいて、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、非セキュア実行ドメイン150のデータ消去部155は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0182】
ステップ230Xにおいて、第1CPU110は、データ共有領域154から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。
【0183】
なお、ステップ220X〜ステップ230Xの処理は、セキュア実行ドメイン160ではなくて、非セキュア実行ドメイン150によって行われることに留意すべきである。
【0184】
ステップ231において、セキュア実行ドメイン160は、非セキュア実行ドメイン150からデータを受信する。具体的には、信頼アプリケーション処理部161は、非信頼アプリケーション処理部151から保護対象情報を受信する。
【0185】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図15を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0186】
図15に示すように、ステップ402において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。
【0187】
ステップ403において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)が改竄されているか否かを安定する。改竄が無い場合には、ステップ404の処理が行われる。改竄がある場合には、一連の処理を終了する。
【0188】
ステップ404において、第1CPU110は、セキュア実行ドメイン160で処理するデータを第2CPU120に渡すデータ送信処理を非セキュア実行ドメイン150に依頼する。具体液には、依頼部168は、データ共有領域154に書き込まれる保護対象情報を第2CPU120に渡すデータ送信処理を非信頼アプリケーション処理部151に依頼する。
【0189】
ステップ410Xにおいて、第1CPU110は、第2CPU120によってネットワークに送信されるデータをデータ共有領域154に書き込む。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、第2CPU120に渡す保護対象情報をデータ共有領域154に書き込む。
【0190】
なお、ステップ410Xの処理は、セキュア実行ドメイン160ではなくて、非セキュア実行ドメイン150によって行われることに留意すべきである。
【0191】
(作用及び効果)
第4実施形態では、完全性検証部169は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。依頼部168は、非信頼アプリケーション(非信頼プログラム)の改竄が無ければ、保護対象情報の送信又は保護対象情報の受信を非セキュア実行ドメイン150に依頼する。
【0192】
従って、保護対象情報の送信又は保護対象情報の受信を非セキュア実行ドメイン150によって行う場合であっても、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。また、データ共有領域154にセキュア実行ドメイン160が直接的にアクセスできなくても、セキュア実行ドメイン160が保護対象情報を取得することができる。
【0193】
[第6実施形態]
以下において、第6実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
【0194】
具体的には、第6実施形態では、第2CPU120(第2CPU用メモリ140)は、非保護対象情報及び保護対象情報の分離、非保護対象情報及び保護対象情報の結合を行う。なお、第6実施形態は、第1実施形態〜第5実施形態のいずれにも適用できることに留意すべきである。
【0195】
(プログラム実行装置の構成)
以下において、第6実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図16は、第6実施形態に係るプログラム実行装置100を示すブロック図である。なお、図16では、第2CPU120及び第2CPU用メモリ140のみが示されており、他の構成が省略されていることに留意すべきである。また、図16では、図1と同様の構成について、同様の符号を付している。
【0196】
図16に示すように、第2CPU用メモリ140は、データ分離部146及びデータ結合部147をさらに備える。
【0197】
データ分離部146は、非保護対象情報と保護対象情報とを分離する。具体的には、データ分離部146は、通信アプリケーション処理部141から受け取った受信データを非保護対象情報と保護対象情報とに分離する。通信アプリケーション処理部141は、非保護対象情報と保護対象情報とが結合された受信データをネットワークから受信する。
【0198】
なお、データ分離部146は、非保護対象情報を非セキュア実行ドメイン150に渡す。データ分離部146は、保護対象情報をセキュア実行ドメイン160に渡す。
【0199】
データ結合部147は、非保護対象情報と保護対象情報とを結合する。具体的には、データ結合部147は、非保護対象情報と保護対象情報とを結合して、非保護対象情報と保護対象情報とが結合された送信データを通信アプリケーション処理部141に渡す。通信アプリケーション処理部141は、非保護対象情報と保護対象情報とが結合された送信データをネットワークに受信する。
【0200】
なお、データ結合部147は、非保護対象情報を非セキュア実行ドメイン150から受け取る。データ分離部146は、保護対象情報をセキュア実行ドメイン160から受け取る。
【0201】
(プログラム実行装置の動作)
以下において、第6実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図17及び図18は、第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。図17では、図4と同様の処理について、同様のステップ番号が付されている。図18では、図5と同様の処理について、同様のステップ番号が付されている。
【0202】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図17を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0203】
図17に示すように、ステップ101において、第2CPU120は、ネットワークから受信したデータを、非保護対象情報と保護対象情報とに分離する。具体的には、データ分離部146は、通信アプリケーション処理部141から受け取った受信データを非保護対象情報と保護対象情報とに分離する。
【0204】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図18を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0205】
図18に示すように、ステップ561において、第2CPU120は、非保護対象情報と保護対象情報とを結合する。具体的には、データ結合部147は、非保護対象情報と保護対象情報とを結合して、非保護対象情報と保護対象情報とが結合された送信データを通信アプリケーション処理部141に渡す。
【0206】
[その他の実施形態]
本発明は上述した実施形態によって説明したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【0207】
実施形態では、データ共有領域に格納されるデータを読み込むと、データ受信完了フラグに“承認”をセットする。しかしながら、実施形態は、これに限定されるものではない。データ受信完了フラグを用いずに、データ共有領域に格納されるデータを読み込むと、データ共有領域に格納されるデータを直ちに削除してもよい。
【0208】
第2実施形態では、非セキュア共有領域153に格納されるデータには割込み識別フラグが対応付けられる。しかしながら、実施形態は、これに限定されるものではない。例えば、非セキュア共有領域153に格納されるデータのヘッダに、割込み識別フラグが設けられていてもよい。
【0209】
その他の実施形態として、第1実施形態〜第6実施形態の中から、2以上の実施形態を組み合わせてもよい。
【符号の説明】
【0210】
100・・・プログラム実行装置、110・・・第1CPU、111・・・割込み識別部、120・・・第2CPU、121・・・外部割込み識別部、130・・・第1CPU用メモリ、140・・・第2CPU用メモリ、141・・・通信アプリケーション処理部、142・・・セキュア割込み処理部、143・・・非セキュア割込み処理部、144・・・データ消去部、145・・・送信データ消去部、146・・・データ分離部、147・・・データ結合部、150・・・非セキュア実行ドメイン、151・・・非信頼アプリケーション処理部、152・・・非セキュア外部割込み処理部、153・・・非セキュア共有領域、154・・・データ共有領域、155・・・データ消去部、160・・・セキュア実行ドメイン、161・・・信頼アプリケーション処理部、162・・・セキュア外部割込み処理部、163・・・データ共有領域、164・・・セキュア共有領域、165・・・割込み監視部、166・・・データ消去部、167・・・送信データ消去部、168・・・依頼部、169・・・完全性検証部
【技術分野】
【0001】
保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する携帯端末に関する。
【背景技術】
【0002】
従来、多様なコンテンツやアプリケーションを追加可能に構成された携帯端末が知られている。近年では、コンテンツやアプリケーションのデータサイズは大きくなっており、コンテンツやアプリケーションの高機能化が進んでいる。このような状況に対応するために、携帯端末に設けられたCPUの高機能化が求められている。
【0003】
例えば、第1CPU(以下、A−CPU)と、第2CPU(以下、C−CPU)とを有する携帯端末が提案されている。A−CPUは、アプリケーションを実行する専用のCPUである。C−CPUは、移動通信網などのネットワークと通信を行う処理(通信処理)を実行する専用のCPUである。このような携帯端末では、A−CPU上で実行されるアプリケーションが通信処理を必要とする場合には、A−CPUは通信処理をC−CPUに依頼する必要がある。
【0004】
ここで、A−CPUは、メール、ウェブ閲覧、カメラなどのように、様々なアプリケーションを実行する。従って、A−CPUは、例えば、Linux、Symbian OS、Windows(登録商標) Mobileなどの高機能OSを有することが多い。一方で、C−CPUは、μITRON(Micro Industrial The Real−time Operating system Nucleus)などのリアルタイムOSを有する。
【0005】
ここで、A−CPU上では、PCなどと同様に、A−CPUに設けられたOS上で直接的にアプリケーションを実行することが可能である。これによって、不要なオーバヘッドが生じることなく、アプリケーションが実行される。しかしながら、PCなどと同様に、ウィルスなどを含む攻撃アプリケーションが不正に実行されると、携帯端末に記憶された各種情報(コンテンツや個人情報など)の消去や漏洩が生する危険性がある。また、携帯端末が故障する危険性もある。
【0006】
このような危険性に対処する技術するために、(1)仮想的なリソースによって複数のOSを動作させる第1技術(例えば、特許文献1)、(2)複数のOSのそれぞれが用いるメモリ領域を分離する第2技術(例えば、特許文献2)、(3)複数のCPU間で通信を行う場合に、受信側OSが用いるメモリ領域のアドレスを指定する技術(例えば、特許文献3)が提案されている。
【0007】
第1技術では、仮想的なCPU、メモリ領域、周辺デバイスを有する仮想端末が構成される。複数のOSは仮想端末上で動作する。このような仮想端末上において、アプリケーションを実行するOSと、コンテンツや個人情報などを処理するOSとを分離することが考えられる。
【0008】
第2技術では、複数のOSのそれぞれが用いるメモリ領域を分離することによって、携帯端末は、非セキュア実行ドメインとセキュア実行ドメインとを有する。非セキュア実行ドメインは、メモリ領域に格納されたデータが保護されないドメインである。セキュア実行ドメインは、メモリ領域に格納されたデータが保護されるドメインである。携帯端末は、非セキュア実行ドメインへの外部割込みを処理する第1処理部と、セキュア実行ドメインへの外部割込みを処理する第2処理部とを有する。これによって、外部CPU(例えば、C−CPU)からの外部割込みは、適切なOS(ドメイン)に通知される。
【0009】
第3技術では、複数のCPU間で通信を行う場合に、受信側CPUが用いるメモリ領域のアドレスを送信側CPUが指定する。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】米国特許第6,453,392号明細書
【特許文献2】米国特許出願公開第2004/0153593号明細書
【特許文献3】米国特許第7,136,933号明細書
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上述した技術では、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(以下、保護対象情報)が十分に保護されていない。
【0012】
具体的には、上述した第1技術では、仮想端末上で動作する複数のOSは、物理的には単一のハードウェアによって実現されている。従って、複数のOS(セキュア実行ドメイン及び非セキュア実行ドメイン)を並列で動作させることができない。
【0013】
上述した第2技術では、外部割込みを適切なOSに通知するに過ぎない。すなわち、第2技術では、外部CPU(例えば、C−CPU)がセキュア実行ドメイン及び非セキュア実行ドメインのいずれに割り込むかについて考慮されていない。従って、外部CPU(例えば、C−CPU)が非セキュア実行ドメインに割り込む場合に、外部CPU(例えば、C−CPU)が取得した保護対象情報が非セキュア実行ドメインに漏洩する可能性がある。
【0014】
上述した第3技術では、受信側CPUが用いるメモリ領域のアドレスを送信側CPUが指定するに過ぎない。すなわち、第3技術では、受信側CPU上で複数のOS(セキュア実行ドメイン及び非セキュア実行ドメイン)が動作することについて考慮されていない。このように、セキュア実行ドメインについて考慮されていないため、保護対象情報の保護が十分ではない。
【0015】
そこで、本発明は、上述した課題を解決するためになされたものであり、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供することを目的とする。
【課題を解決するための手段】
【0016】
第1の特徴に係る携帯端末は、保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する。携帯端末は、前記第1CPUに関連付けられており、前記第1CPU及び前記第2CPUが共有するメモリ領域であるデータ共有領域を備える。前記第1CPUは、前記第2CPUから前記セキュア実行ドメインへの割込みであるセキュア割込みと、前記第2CPUから前記非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有する。前記第2CPUは、前記セキュア実行ドメインから前記第2CPUへの外部割込みであるセキュア外部割込みと、前記非セキュア実行ドメインから前記第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有する。前記セキュア実行ドメインは、前記第2CPUから前記第1CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護する。
【0017】
第1の特徴において、前記セキュア実行ドメインは、前記第1CPUから前記第2CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護する。
【0018】
第1の特徴において、前記データ共有領域は、前記セキュア実行ドメインに設けられている。
【0019】
第1の特徴において、前記データ共有領域は、前記セキュア実行ドメインに設けられたセキュア共有領域と、前記非セキュア実行ドメインに設けられた非セキュア共有領域とを含む。前記第2CPU側識別部は、前記セキュア共有領域及び前記非セキュア共有領域の状態に応じて、前記セキュア外部割込みと非セキュア外部割込みとを識別する。
【0020】
第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインに設けられた前記データ共有領域にアクセス可能である。前記セキュア実行ドメインは、前記セキュア割込みが検出された後に検出された前記非セキュア割込みを無効化する第1無効化部と、前記保護対象情報が前記データ共有領域から消去された後に、前記第1無効化部によって無効化された前記非セキュア割込みを有効化する第1有効化部とを有する。
【0021】
第1の特徴において、前記セキュア実行ドメインは、前記保護対象情報が前記データ共有領域から消去されるまで、前記非セキュア実行ドメインで実行される処理を停止する実行停止部を有する。
【0022】
第1の特徴において、前記セキュア実行ドメイン及び前記第2CPUは、前記データ共有領域に書き込まれた前記保護対象情報を共同で消去する。
【0023】
第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第1検証部と、前記第2CPUによって前記データ共有領域に書き込まれる前記保護対象情報を前記セキュア実行ドメインに渡すデータ取得処理を前記非セキュア実行ドメインに依頼する第1依頼部とを有する。前記第1依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ取得処理を前記非セキュア実行ドメインに依頼する。
【0024】
第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第2検証部と、前記セキュア実行ドメインによって前記データ共有領域に書き込まれる前記保護対象情報を前記第2CPUに渡すデータ送信処理を前記非セキュア実行ドメインに依頼する第2依頼部とを有する。前記第2依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ送信処理を前記非セキュア実行ドメインに依頼する。
【0025】
第1の特徴において、前記通信ドメインは、前記セキュア実行ドメインから取得した前記保護対象情報と、前記非セキュア実行ドメインから取得した前記非保護対象情報とをまとめて、前記ネットワークに送信される送信データを生成するデータ結合部を有する。
【0026】
第1の特徴において、前記通信ドメインは、前記ネットワークから受信する受信データを、前記セキュア実行ドメインに渡す前記保護対象情報と、前記非セキュア実行ドメインに渡す前記非保護対象情報とに分離するデータ分離部を有する。
【発明の効果】
【0027】
本発明によれば、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供することができる。
【図面の簡単な説明】
【0028】
【図1】第1実施形態に係るプログラム実行装置100を示すブロック図である。
【図2】第1実施形態に係るデータ共有領域163を示す図である。
【図3】第1実施形態に係るデータ共有領域163を示す図である。
【図4】第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図5】第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図6】第2実施形態に係るプログラム実行装置100を示すブロック図である。
【図7】第3実施形態に係るプログラム実行装置100を示すブロック図である。
【図8】第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図9】第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図10】第4実施形態に係るプログラム実行装置100を示すブロック図である。
【図11】第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図12】第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図13】第5実施形態に係るプログラム実行装置100を示すブロック図である。
【図14】第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図15】第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図16】第6実施形態に係るプログラム実行装置100を示すブロック図である。
【図17】第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【図18】第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【発明を実施するための形態】
【0029】
以下において、本発明の実施形態に係る携帯端末について、図面を参照しながら説明する。なお、以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。
【0030】
ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。従って、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0031】
[実施形態の概要]
実施形態に係る携帯端末は、保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する。携帯端末は、第1CPUに関連付けられており、第1CPU及び第2CPUが共有するメモリ領域であるデータ共有領域を備える。
【0032】
第1CPUは、第2CPUからセキュア実行ドメインへの割込みであるセキュア割込みと、第2CPUから非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有する。
【0033】
第2CPUは、セキュア実行ドメインから第2CPUへの外部割込みであるセキュア外部割込みと、非セキュア実行ドメインから第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有する。
【0034】
セキュア実行ドメインは、第2CPUから第1CPUに渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。同様に、セキュア実行ドメインは、第1CPUから第2CPUに渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。
【0035】
実施形態では、第1CPUは、セキュア割込み及び非セキュア割込みを識別する第1CPU側識別部を有する。同様に、第2CPUは、セキュア外部割込み及び非セキュア外部割込みを識別する第2CPU側識別部を有する。なお、セキュア実行ドメインは、データ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。
【0036】
このように、セキュア割込み、非セキュア割込み、セキュア外部割込み及び非セキュア外部割込みの識別によって、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することができる。
【0037】
なお、以下においては、携帯端末に設けられたプログラム実行装置について主として説明する。
【0038】
[第1実施形態]
(プログラム実行装置の構成)
以下において、第1実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図1は、第1実施形態に係るプログラム実行装置100を示すブロック図である。プログラム実行装置100は、例えば、携帯端末に設けられる。
【0039】
図1に示すように、プログラム実行装置100は、第1CPU110と、第2CPU120と、第1CPU用メモリ130と、第2CPU用メモリ140とを有する。
【0040】
第1CPU110は、第1CPU用メモリ130上にプログラムを展開して、各種アプリケーション(プログラム)を実行する。第1CPU110は、第1CPU用メモリ130に関連付けられている。第1CPU110は、例えば、アプリケーションを実行する専用のCPU(A−CPU)である。第1CPU110は、例えば、メール、ウェブ閲覧、カメラなどのようなアプリケーションを実行する。
【0041】
第1実施形態では、第1CPU110は、第2CPU120からの割込みの種別を識別する割込み識別部111を有する。第2CPU120からの割込みとしては、非セキュア実行ドメイン150への割込みである非セキュア割込みと、セキュア実行ドメイン160への割込みであるセキュア割込みとが挙げられる。すなわち、割込み識別部111は、非セキュア割込みとセキュア割込みとを識別する。
【0042】
第1実施形態では、非セキュア割込み及びセキュア割込みは、異なる構成を有する割込みである。すなわち、非セキュア割込み及びセキュア割込みは、それぞれ、専用の割込みである。
【0043】
第2CPU120は、第2CPU用メモリ140上にプログラムを展開して、各種アプリケーション(プログラム)を実行する。第2CPU120は、第2CPU用メモリ140に関連付けられている。第2CPU120は、例えば、移動通信網などのネットワークと通信を行う処理(通信処理)を実行する専用のCPU(C−CPU)である。
【0044】
第1実施形態では、第2CPU120は、第1CPU110からの外部割込みの種別を識別する外部割込み識別部121を有する。第1CPU110からの外部割込みとしては、非セキュア実行ドメイン150からの外部割込みである非セキュア外部割込みと、セキュア実行ドメイン160からの外部割込みであるセキュア外部割込みとが挙げられる。すなわち、外部割込み識別部121は、非セキュア外部割込みとセキュア外部割込みとを識別する。
【0045】
第1実施形態では、非セキュア外部割込み及びセキュア外部割込みは、異なる構成を有する外部割込みである。すなわち、非セキュア外部割込み及びセキュア外部割込みは、それぞれ、専用の外部割込みである。
【0046】
第1CPU用メモリ130は、非セキュア実行ドメイン150と、セキュア実行ドメイン160とを有する。第1CPU用メモリ130は、例えば、RAM(Random Access Memory)などによって構成される。
【0047】
非セキュア実行ドメイン150は、非保護対象情報を処理するドメインである。すなわち、非セキュア実行ドメイン150では、メモリ領域に格納されたデータがセキュア実行ドメイン160よりも保護されない。
【0048】
具体的には、非セキュア実行ドメイン150は、非信頼アプリケーション処理部151とと、非セキュア外部割込み処理部152とを有する。
【0049】
非信頼アプリケーション処理部151は、信頼性を有していないアプリケーションを処理する。例えば、非信頼アプリケーション処理部151は、携帯端末に新たに追加されたアプリケーションを処理する。
【0050】
非セキュア外部割込み処理部152は、第2CPU120への外部割込み(非セキュア外部割込み)を発行する。具体的には、非セキュア外部割込み処理部152は、非信頼アプリケーション処理部151からの要求に従って、非セキュア外部割込みを発行する。例えば、非セキュア外部割込み処理部152は、非信頼アプリケーション処理部151からの要求に従って、第2CPU120によってネットワークにデータを送信する際に、非セキュア外部割込みを発行する。
【0051】
セキュア実行ドメイン160は、保護対象情報を処理するドメインである。すなわち、セキュア実行ドメイン160では、メモリ領域に格納されたデータが非セキュア実行ドメイン150よりも保護される。詳細には、セキュア実行ドメイン160では、メモリ領域に格納されたデータが非セキュア実行ドメイン150から保護される。
【0052】
具体的には、セキュア実行ドメイン160は、信頼アプリケーション処理部161と、セキュア外部割込み処理部162と、データ共有領域163とを有する。
【0053】
信頼アプリケーション処理部161は、信頼性を有するアプリケーションを処理する。例えば、信頼アプリケーション処理部161は、携帯端末に予めインストールされたアプリケーションを処理する。
【0054】
セキュア外部割込み処理部162は、第2CPU120への外部割込み(セキュア外部割込み)を発行する。具体的には、セキュア外部割込み処理部162は、信頼アプリケーション処理部161からの要求に従って、セキュア外部割込みを発行する。例えば、セキュア外部割込み処理部162は、信頼アプリケーション処理部161からの要求に従って、第2CPU120によってネットワークにデータを送信する際に、セキュア外部割込みを発行する。
【0055】
データ共有領域163は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。
【0056】
ここで、データ共有領域163には、第1CPU110から第2CPU120に渡すデータが書き込まれる。すなわち、データ共有領域163には、第2CPU120によってネットワークに送信されるデータが格納される。
【0057】
また、データ共有領域163には、第2CPU120から第1CPU110に渡すデータが書き込まれる。すなわち、データ共有領域163には、第2CPU120によってネットワークから受信されるデータが格納される。
【0058】
第2CPU用メモリ140は、通信アプリケーション処理部141と、セキュア割込み処理部142と、非セキュア割込み処理部143とを有する。第2CPU用メモリ140は、ネットワークと通信を行う処理(通信処理)を実行する通信ドメインである。
【0059】
通信アプリケーション処理部141は、通信機能に係るアプリケーションを処理する。具体的には、通信アプリケーション処理部141は、ネットワークと通信を行う処理(通信処理)に係るアプリケーションを処理する。
【0060】
セキュア割込み処理部142は、第1CPU110のセキュア実行ドメイン160への割込み(セキュア割込み)を発行する。具体的には、セキュア割込み処理部142は、通信アプリケーション処理部141からの要求に従って、セキュア割込みを発行する。例えば、セキュア割込み処理部142は、通信アプリケーション処理部141からの要求に従って、第2CPU120によってネットワークから受信されたデータをセキュア実行ドメイン160に送信する際に、セキュア割込みを発行する。
【0061】
非セキュア割込み処理部143は、第1CPU110の非セキュア実行ドメイン150への割込み(非セキュア割込み)を発行する。具体的には、非セキュア割込み処理部143は、通信アプリケーション処理部141からの要求に従って、非セキュア割込みを発行する。例えば、非セキュア割込み処理部143は、通信アプリケーション処理部141からの要求に従って、第2CPU120によってネットワークから受信されたデータを非セキュア実行ドメイン150に送信する際に、非セキュア割込みを発行する。
【0062】
(保護対象情報の保護)
以下において、第1実施形態に係る保護対象情報の保護について説明する。具体的には、データ共有領域163は、セキュア実行ドメイン160に設けられている。また、セキュア実行ドメイン160は、データ共有領域163に書き込まれたデータを非セキュア実行ドメイン150から保護する。
【0063】
すなわち、セキュア実行ドメイン160は、セキュア実行ドメイン160は、第1CPU110から第2CPU120に渡すためにデータ共有領域163に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。同様に、セキュア実行ドメイン160は、第2CPU120から第1CPU110に渡すためにデータ共有領域163に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。
【0064】
第1実施形態では、保護対象情報は、図2及び図3に示すように、データ受信完了フラグによって管理される。
【0065】
図2には、第2CPU120からセキュア実行ドメイン160に渡す保護対象情報に対応付けられたデータ受信完了フラグが示されている。このようなケースでは、セキュア実行ドメイン160は、第2CPU120から保護対象情報を受信した場合に、データ受信完了フラグに“承認”をセットする(図2に示す1番目の保護対象情報を参照)。
【0066】
図3には、セキュア実行ドメイン160から第2CPU120に渡す保護対象情報に対応付けられたデータ受信完了フラグが示されている。このようなケースでは、第2CPU120は、セキュア実行ドメイン160から保護対象情報を受信した場合に、データ受信完了フラグに“承認”をセットする(図3に示す1番目の保護対象情報を参照)。
【0067】
(プログラム実行装置の動作)
以下において、第1実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図4及び図5は、第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
【0068】
以下においては、第1CPU用メモリ130上に設けられた構成は、第1CPU110によって制御されるため、第1CPU用メモリ130上に設けられた構成の処理について、必要に応じて、第1CPU110の処理として説明する。同様に、第2CPU用メモリ140上に設けられた構成は、第2CPU120によって制御されるため、第2CPU用メモリ140上に設けられた構成の処理について、必要に応じて、第2CPU120の処理として説明する。
【0069】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図4を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0070】
図4に示すように、ステップ110において、第2CPU120は、第2CPU120によってネットワークから受信されるデータをデータ共有領域163に書き込む。具体的には、通信アプリケーション処理部141は、セキュア実行ドメイン160に渡す保護対象情報をデータ共有領域163に書き込む。
【0071】
ステップ120において、第2CPU120は、第1CPU110への割込みを発行する。具体的には、セキュア割込み処理部142は、セキュア実行ドメイン160への割込みであるセキュア割込みを発行する。
【0072】
ステップ210において、第1CPU110は、第1CPU110への割込みを検知する。具体的には、割込み識別部111は、セキュア実行ドメイン160への割込みであるセキュア割込みを検知する。
【0073】
ステップ220において、第1CPU110は、データ共有領域163からデータを読み出す。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、データ共有領域163から保護対象情報を読み出す。
【0074】
ステップ230において、第1CPU110は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。
【0075】
ステップ240において、第1CPU110は、第2CPU120への外部割込みを発行する。具体的には、セキュア実行ドメイン160のセキュア外部割込み処理部162は、第2CPU120への外部割込みであるセキュア外部割込みを発行する。
【0076】
ステップ310において、第2CPU120は、第2CPU120への外部割込みを検知する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みを検知する。
【0077】
ステップ320において、第2CPU120は、第2CPU120への外部割込みの発行元(割込み元)を確認する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みの発行元を確認する。
【0078】
ステップ330において、第2CPU120は、第2CPU120への外部割込みの発行元がセキュア実行ドメイン160であるか否かを識別する。具体的には、外部割込み識別部121は、外部割込みがセキュア外部割込みであるか否かを識別する。
【0079】
外部割込みがセキュア外部割込みである場合には、ステップ340が実行される。一方で、外部割込みが非セキュア外部割込みである場合には、一連の処理が終了する。
【0080】
ステップ340において、第2CPU120は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグを確認する。具体的には、通信アプリケーション処理部141は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”が設定されていることを確認する。
【0081】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図5を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0082】
図5に示すように、ステップ410において、第1CPU110は、第2CPU120によってネットワークに送信されるデータをデータ共有領域163に書き込む。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、第2CPU120に渡す保護対象情報をデータ共有領域163に書き込む。
【0083】
ステップ420において、第1CPU110は、第2CPU120への外部割込みを発行する。具体的には、セキュア実行ドメイン160のセキュア外部割込み処理部162は、第2CPU120への外部割込みであるセキュア外部割込みを発行する。
【0084】
ステップ510において、第2CPU120は、第2CPU120への外部割込みを検知する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みを検知する。
【0085】
ステップ520において、第2CPU120は、第2CPU120への外部割込みの発行元(割込み元)を確認する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みの発行元を確認する。
【0086】
ステップ530において、第2CPU120は、第2CPU120への外部割込みの発行元がセキュア実行ドメイン160であるか否かを識別する。具体的には、外部割込み識別部121は、外部割込みがセキュア外部割込みであるか否かを識別する。
【0087】
外部割込みがセキュア外部割込みである場合には、ステップ540が実行される。一方で、外部割込みが非セキュア外部割込みである場合には、一連の処理が終了する。
【0088】
ステップ540において、第2CPU120は、データ共有領域163からデータを読み出す。具体的には、通信アプリケーション処理部141は、データ共有領域163から保護対象情報を読み出す。
【0089】
ステップ550において、第2CPU120は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、通信アプリケーション処理部141は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。
【0090】
ステップ560において、第2CPU120は、第1CPU110への割込みを発行する。具体的には、セキュア割込み処理部142は、セキュア実行ドメイン160への割込みであるセキュア割込みを発行する。
【0091】
ステップ610において、第1CPU110は、第1CPU110への割込みを検知する。具体的には、割込み識別部111は、セキュア実行ドメイン160への割込みであるセキュア割込みを検知する。
【0092】
ステップ620において、第1CPU110は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグを確認する。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”がセットされていることを確認する。
【0093】
(作用及び効果)
第1実施形態では、第1CPU110は、セキュア割込み及び非セキュア割込みを識別する割込み識別部111を有する。同様に、第2CPU120は、セキュア外部割込み及び非セキュア外部割込みを識別する外部割込み識別部121を有する。なお、第1CPU110に関連付けられたセキュア実行ドメイン160は、データ共有領域に書き込まれた保護対象情報を、第1CPU110に関連付けられた非セキュア実行ドメイン150から保護する。
【0094】
このように、セキュア割込み、非セキュア割込み、セキュア外部割込み及び非セキュア外部割込みの識別によって、セキュア実行ドメイン160及び非セキュア実行ドメイン150が並列で動作するケースにおいて、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を十分に保護することができる。
【0095】
第1実施形態では、データ共有領域163がセキュア実行ドメイン160に設けられているため、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を十分に保護することができる。
【0096】
[第2実施形態]
以下において、第2実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
【0097】
具体的には、第1実施形態では、非セキュア割込み及びセキュア割込みは、異なる構成を有する割込みである。非セキュア外部割込み及びセキュア外部割込みは、異なる構成を有する外部割込みである。
【0098】
これに対して、第2実施形態では、非セキュア割込み及びセキュア割込みは、同様の構成を有する割込みである。非セキュア外部割込み及びセキュア外部割込みは、同様の構成を有する外部割込みである。
【0099】
(プログラム実行装置の構成)
以下において、第2実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図6は、第2実施形態に係るプログラム実行装置100を示すブロック図である。図6では、図1と同様の構成について、同様の符号を付している。
【0100】
図6に示すように、非セキュア実行ドメイン150は、非セキュア共有領域153をさらに備える。セキュア実行ドメイン160は、データ共有領域163に代えて、セキュア共有領域164を備える。
【0101】
非セキュア共有領域153は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。具体的には、非セキュア共有領域153は、非セキュア実行ドメイン150及び第2CPU120によって共有される領域である。
【0102】
ここで、非セキュア共有領域153に格納されるデータには、第2CPU120から非セキュア実行ドメイン150に非セキュア割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。同様に、非セキュア実行ドメイン150に格納されるデータには、非セキュア実行ドメイン150から第2CPU120に非セキュア外部割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。
【0103】
セキュア共有領域164は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。具体的には、セキュア共有領域164は、セキュア実行ドメイン160及び第2CPU120によって共有される領域である。
【0104】
ここで、セキュア共有領域164に格納されるデータには、第2CPU120からセキュア実行ドメイン160にセキュア割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。同様に、セキュア共有領域164に格納されるデータには、セキュア実行ドメイン160から第2CPU120にセキュア外部割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。
【0105】
上述した割込み識別部111は、非セキュア割込みとセキュア割込みとを割込み識別フラグによって識別する。すなわち、割込み識別部111は、非セキュア共有領域153及びセキュア共有領域164の状態に応じて、非セキュア割込みとセキュア割込みとを識別する。
【0106】
上述した外部割込み識別部121は、非セキュア外部割込みとセキュア外部割込みとを割込み識別フラグによって識別する。すなわち、外部割込み識別部121は、非セキュア共有領域153及びセキュア共有領域164の状態に応じて、非セキュア外部割込みとセキュア外部割込みとを識別する。
【0107】
(作用及び効果)
第2実施形態では、割込み識別部111は、非セキュア共有領域153及びセキュア共有領域164に格納された割込み識別フラグによって、非セキュア割込みとセキュア割込みとを識別する。従って、非セキュア割込み及びセキュア割込みが同じ構成を有していても、非セキュア割込みとセキュア割込みとの識別が可能である。
【0108】
同様に、外部割込み識別部121は、非セキュア共有領域153及びセキュア共有領域164に格納された割込み識別フラグによって、非セキュア外部割込みとセキュア外部割込みとを識別する。従って、非セキュア外部割込み及びセキュア外部割込みが同じ構成を有していても、非セキュア外部割込みとセキュア外部割込みとの識別が可能である。
【0109】
[第3実施形態]
以下において、第3実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
【0110】
具体的には、第1実施形態では、データ共有領域がセキュア実行ドメイン160に設けられている。これに対して、第3実施形態では、データ共有領域が非セキュア実行ドメイン150に設けられている。
【0111】
(プログラム実行装置の構成)
以下において、第3実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図7は、第3実施形態に係るプログラム実行装置100を示すブロック図である。図7では、図1と同様の構成について、同様の符号を付している。
【0112】
図7に示すように、第2CPU用メモリ140は、データ消去部144をさらに備える。非セキュア実行ドメイン150は、データ共有領域154をさらに備える。セキュア実行ドメイン160は、データ共有領域163に代えて、割込み監視部165及びデータ消去部166を備える。
【0113】
データ消去部144は、第1CPU110から第2CPU120に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、非セキュア実行ドメイン150の割込みが有効化される前に、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0114】
データ共有領域154は、データ共有領域163と同様に、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。なお、セキュア実行ドメイン160は、データ共有領域154にアクセス可能であることに留意すべきである。
【0115】
ここで、データ共有領域154には、第1CPU110から第2CPU120に渡すためのデータが書き込まれる。すなわち、データ共有領域154には、第2CPU120によってネットワークに送信されるデータが格納される。
【0116】
また、データ共有領域154には、第2CPU120から第1CPU110に渡すためのデータが書き込まれる。すなわち、データ共有領域154には、第2CPU120によってネットワークから受信されるデータが格納される。
【0117】
割込み監視部165は、第1CPU110から第2CPU120への割込み、第2CPU120から第1CPU110への外部割込みを監視する。
【0118】
ここで、割込み監視部165は、セキュア割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する第1無効化部を構成する。また、割込み監視部165は、セキュア外部割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。
【0119】
割込み監視部165は、保護対象情報がデータ共有領域154から消去された後に、割込み監視部165によって無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する第1有効化部を構成する。
【0120】
割込み監視部165は、保護対象情報がデータ共有領域154から消去されるまで、非セキュア実行ドメイン150で実行される処理を停止する実行停止部を構成する。具体的には、割込み監視部165は、セキュア実行ドメイン160から第2CPU120へのセキュア外部割込みが発行されてから、第2CPU120からセキュア実行ドメイン160へのセキュア割込みが検知されるまで、非セキュア実行ドメイン150で実行される処理を停止させて、セキュア実行ドメイン160を維持する。
【0121】
データ消去部166は、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、少なくとも、非セキュア実行ドメイン150の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0122】
(プログラム実行装置の動作)
以下において、第3実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図8及び図9は、第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。図8では、図4と同様の処理について、同様のステップ番号が付されている。図9では、図5と同様の処理について、同様のステップ番号が付されている。
【0123】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図8を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0124】
図8に示すように、ステップ211において、第1CPU110は、他の割込みを無効化する。具体的には、割込み監視部165は、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。
【0125】
ここで、ステップ211の処理は、ステップ210の処理の後、すなわち、セキュア割込みが割込み識別部111によって検知された後に行われることに留意すべきである。
【0126】
ステップ221において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0127】
ここで、ステップ221の処理は、ステップ240の処理の前、すなわち、セキュア外部割込みが発行される前に行われることに留意すべきである。
【0128】
ステップ242において、第1CPU110は、他の割込みを有効化する。具体的には、割込み監視部165は、ステップ211で無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。
【0129】
ここで、ステップ241の処理は、ステップ240の処理の後、すなわち、セキュア外部割込みが発行された後に行われることに留意すべきである。
【0130】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図9を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0131】
図9に示すように、ステップ401において、第1CPU110は、他の割込みを無効化する。具体的には、割込み監視部165は、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。
【0132】
ここで、ステップ401の処理は、ステップ410の処理の前、すなわち、セキュア実行ドメイン160が保護対象情報をデータ共有領域154に書き込む処理の前に行われることに留意すべきである。
【0133】
ステップ421において、第1CPU110は、セキュア実行ドメイン160を維持する状態(ドメイン維持状態)をセットする。具体的には、割込み監視部165は、ドメイン維持状態をセットして、非セキュア実行ドメイン150で実行される処理を停止させる。
【0134】
ステップ541において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0135】
なお、ステップ541の処理は、ステップ550の処理の前、すなわち、データ受信完了フラグに“承認”がセットされる前に行われることに留意すべきである。
【0136】
ステップ611において、第1CPU110は、セキュア実行ドメイン160を維持する状態(ドメイン維持状態)を解除する。具体的には、割込み監視部165は、ドメイン維持状態を解除して、非セキュア実行ドメイン150で実行される処理を再開させる。
【0137】
なお、ステップ611の処理は、ステップ610の処理の後、セキュア割込みが検知された後に行われるに留意すべきである。
【0138】
ステップ621において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、ステップ541で削除されなかった残りの保護対象情報を削除する。
【0139】
なお、ステップ621の処理は、ステップ620の処理の後、すなわち、データ受信完了フラグに“承認”がセットされていることが確認された後に行われる。
【0140】
ステップ622において、第1CPU110は、他の割込みを有効化する。具体的には、割込み監視部165は、ステップ401で無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。
【0141】
(作用及び効果)
第3実施形態では、割込み監視部165は、セキュア割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。従って、データ共有領域154が非セキュア実行ドメイン150に設けられていても、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。
【0142】
第3実施形態では、割込み監視部165は、保護対象情報がデータ共有領域154から消去された後に、割込み監視部165によって無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。従って、セキュア実行ドメイン160及び非セキュア実行ドメイン150を並列で動作させることができる。
【0143】
第3実施形態では、割込み監視部165は、保護対象情報がデータ共有領域154から消去されるまで、非セキュア実行ドメイン150で実行される処理を停止する。従って、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。
【0144】
[第4実施形態]
以下において、第4実施形態について、図面を参照しながら説明する。以下においては、第3実施形態との相違点について主として説明する。
【0145】
具体的には、第3実施形態では、データ共有領域154に書き込まれた保護対象情報を受信側が削除する。第4実施形態では、データ共有領域154に書き込まれた保護対象情報を受信側及び送信側の双方が削除する。
【0146】
(プログラム実行装置の構成)
以下において、第4実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図10は、第4実施形態に係るプログラム実行装置100を示すブロック図である。図10では、図7と同様の構成について、同様の符号を付している。
【0147】
図10に示すように、第2CPU用メモリ140は、送信データ消去部145をさらに備える。セキュア実行ドメイン160は、送信データ消去部167をさらに備える。
【0148】
送信データ消去部145は、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部145は、セキュア実行ドメイン160によってデータ受信完了フラグに“承認”がセットされた場合に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0149】
送信データ消去部167は、第1CPU110から第2CPU120に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部167は、第2CPU120によってデータ受信完了フラグに“承認”がセットされた場合に、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0150】
(プログラム実行装置の動作)
以下において、第4実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図11及び図12は、第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。図11では、図8と同様の処理について、同様のステップ番号が付されている。図12では、図9と同様の処理について、同様のステップ番号が付されている。
【0151】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図11を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0152】
図11に示すように、ステップ241において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0153】
ここで、ステップ241の処理は、図8に示すステップ221の処理と同様である。図11では、図8に示すステップ221の処理に代えて、ステップ241の処理が行われる。
【0154】
ステップ241の処理は、ステップ240の処理の後、すなわち、セキュア外部割込みが発行された後に行われることに留意すべきである。但し、ステップ241の処理は、ステップ242の処理の前、すなわち、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に行われる。
【0155】
ステップ341において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部145は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0156】
ここで、ステップ341の処理は、ステップ340の処理の後、すなわち、データ受信完了フラグに“承認”がセットされた後に行われることに留意すべきである。
【0157】
このように、第4実施形態では、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報は、送信データ消去部145及びデータ消去部166の双方によって共同で削除される。
【0158】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図12を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0159】
図12に示すように、ステップ561において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0160】
ここで、ステップ561の処理は、図9に示すステップ541の処理と同様である。図12では、図9に示すステップ541の処理に代えて、ステップ561の処理が行われる。
【0161】
ステップ561の処理は、ステップ560の処理の後、すなわち、セキュア実行ドメイン160への割込みであるセキュア割込みが発行された後に行われることに留意すべきである。
【0162】
ステップ621Aにおいて、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部167は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0163】
ここで、ステップ341の処理は、ステップ340の処理の後、すなわち、データ受信完了フラグに“承認”がセットされた後に行われることに留意すべきである。
【0164】
なお、ステップ621Aの処理は、図9に示すステップ621の処理と類似する。しかしながら、第4実施形態では、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報は、データ消去部144及び送信データ消去部167の双方によって共同で削除される。
【0165】
(作用及び効果)
第4実施形態では、データ共有領域154に書き込まれた保護対象情報は、送信側及び受信側の双方によって削除される。従って、他の割込みを短時間で有効化することができる。
【0166】
[第5実施形態]
以下において、第5実施形態について、図面を参照しながら説明する。以下においては、第3実施形態との相違点について主として説明する。
【0167】
具体的には、第3実施形態では、データ共有領域154に書き込まれた保護対象情報は、セキュア実行ドメイン160によって削除される。第5実施形態では、データ共有領域154に書き込まれた保護対象情報は、セキュア実行ドメイン160の依頼に応じて、非セキュア実行ドメイン150によってセキュア実行ドメイン160に渡される。
【0168】
(プログラム実行装置の構成)
以下において、第5実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図13は、第5実施形態に係るプログラム実行装置100を示すブロック図である。図13では、図7と同様の構成について、同様の符号を付している。
【0169】
図13に示すように、非セキュア実行ドメイン150は、データ消去部155をさらに備える。セキュア実行ドメイン160は、データ消去部166に代えて、依頼部168及び完全性検証部169を有する。
【0170】
データ消去部155は、データ消去部166と同様に、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部155は、少なくとも、非セキュア実行ドメイン150の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0171】
依頼部168は、セキュア実行ドメイン160で処理するデータを第2CPU120に渡すデータ送信処理を非セキュア実行ドメイン150に依頼する。同様に、依頼部168は、セキュア実行ドメイン160で処理するデータを第2CPU120から取得するデータ取得処理を非セキュア実行ドメイン150に依頼する。
【0172】
具体的には、依頼部168は、データ共有領域154に書き込まれる保護対象情報を第2CPU120に渡すデータ送信処理を非信頼アプリケーション処理部151に依頼する。同様に、依頼部168は、データ共有領域154に書き込まれ保護対象情報をセキュア実行ドメイン160に渡すデータ取得処理を非信頼アプリケーション処理部151に依頼する。
【0173】
なお、依頼部168は、非セキュア実行ドメイン150に保護対象情報を渡す。同様に、依頼部168は、非セキュア実行ドメイン150から保護対象情報を取得する。
【0174】
完全性検証部169は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。メモリイメージの完全性の検証は、正しいメモリイメージとの比較、正しいメモリイメージから導出されたハッシュ値との比較によって行われる。
【0175】
(プログラム実行装置の動作)
以下において、第5実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図14及び図15は、第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。図14では、図8と同様の処理について、同様のステップ番号が付されている。図15では、図9と同様の処理について、同様のステップ番号が付されている。
【0176】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図14を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0177】
ステップ212において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。
【0178】
ステップ213において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)が改竄されているか否かを安定する。改竄が無い場合には、ステップ214の処理が行われる。改竄がある場合には、一連の処理を終了する。
【0179】
ステップ214において、第1CPU110は、セキュア実行ドメイン160で処理するデータを第2CPU120から取得するデータ取得処理を非セキュア実行ドメイン150に依頼する。具体的には、依頼部168は、データ共有領域154に書き込まれる保護対象情報をセキュア実行ドメイン160に渡すデータ取得処理を非信頼アプリケーション処理部151に依頼する。
【0180】
ステップ220Xにおいて、第1CPU110は、データ共有領域154からデータを読み出す。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、データ共有領域154から保護対象情報を読み出す。
【0181】
ステップ221Xにおいて、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、非セキュア実行ドメイン150のデータ消去部155は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。
【0182】
ステップ230Xにおいて、第1CPU110は、データ共有領域154から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。
【0183】
なお、ステップ220X〜ステップ230Xの処理は、セキュア実行ドメイン160ではなくて、非セキュア実行ドメイン150によって行われることに留意すべきである。
【0184】
ステップ231において、セキュア実行ドメイン160は、非セキュア実行ドメイン150からデータを受信する。具体的には、信頼アプリケーション処理部161は、非信頼アプリケーション処理部151から保護対象情報を受信する。
【0185】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図15を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0186】
図15に示すように、ステップ402において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。
【0187】
ステップ403において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)が改竄されているか否かを安定する。改竄が無い場合には、ステップ404の処理が行われる。改竄がある場合には、一連の処理を終了する。
【0188】
ステップ404において、第1CPU110は、セキュア実行ドメイン160で処理するデータを第2CPU120に渡すデータ送信処理を非セキュア実行ドメイン150に依頼する。具体液には、依頼部168は、データ共有領域154に書き込まれる保護対象情報を第2CPU120に渡すデータ送信処理を非信頼アプリケーション処理部151に依頼する。
【0189】
ステップ410Xにおいて、第1CPU110は、第2CPU120によってネットワークに送信されるデータをデータ共有領域154に書き込む。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、第2CPU120に渡す保護対象情報をデータ共有領域154に書き込む。
【0190】
なお、ステップ410Xの処理は、セキュア実行ドメイン160ではなくて、非セキュア実行ドメイン150によって行われることに留意すべきである。
【0191】
(作用及び効果)
第4実施形態では、完全性検証部169は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。依頼部168は、非信頼アプリケーション(非信頼プログラム)の改竄が無ければ、保護対象情報の送信又は保護対象情報の受信を非セキュア実行ドメイン150に依頼する。
【0192】
従って、保護対象情報の送信又は保護対象情報の受信を非セキュア実行ドメイン150によって行う場合であっても、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。また、データ共有領域154にセキュア実行ドメイン160が直接的にアクセスできなくても、セキュア実行ドメイン160が保護対象情報を取得することができる。
【0193】
[第6実施形態]
以下において、第6実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
【0194】
具体的には、第6実施形態では、第2CPU120(第2CPU用メモリ140)は、非保護対象情報及び保護対象情報の分離、非保護対象情報及び保護対象情報の結合を行う。なお、第6実施形態は、第1実施形態〜第5実施形態のいずれにも適用できることに留意すべきである。
【0195】
(プログラム実行装置の構成)
以下において、第6実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図16は、第6実施形態に係るプログラム実行装置100を示すブロック図である。なお、図16では、第2CPU120及び第2CPU用メモリ140のみが示されており、他の構成が省略されていることに留意すべきである。また、図16では、図1と同様の構成について、同様の符号を付している。
【0196】
図16に示すように、第2CPU用メモリ140は、データ分離部146及びデータ結合部147をさらに備える。
【0197】
データ分離部146は、非保護対象情報と保護対象情報とを分離する。具体的には、データ分離部146は、通信アプリケーション処理部141から受け取った受信データを非保護対象情報と保護対象情報とに分離する。通信アプリケーション処理部141は、非保護対象情報と保護対象情報とが結合された受信データをネットワークから受信する。
【0198】
なお、データ分離部146は、非保護対象情報を非セキュア実行ドメイン150に渡す。データ分離部146は、保護対象情報をセキュア実行ドメイン160に渡す。
【0199】
データ結合部147は、非保護対象情報と保護対象情報とを結合する。具体的には、データ結合部147は、非保護対象情報と保護対象情報とを結合して、非保護対象情報と保護対象情報とが結合された送信データを通信アプリケーション処理部141に渡す。通信アプリケーション処理部141は、非保護対象情報と保護対象情報とが結合された送信データをネットワークに受信する。
【0200】
なお、データ結合部147は、非保護対象情報を非セキュア実行ドメイン150から受け取る。データ分離部146は、保護対象情報をセキュア実行ドメイン160から受け取る。
【0201】
(プログラム実行装置の動作)
以下において、第6実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図17及び図18は、第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。図17では、図4と同様の処理について、同様のステップ番号が付されている。図18では、図5と同様の処理について、同様のステップ番号が付されている。
【0202】
第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図17を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。
【0203】
図17に示すように、ステップ101において、第2CPU120は、ネットワークから受信したデータを、非保護対象情報と保護対象情報とに分離する。具体的には、データ分離部146は、通信アプリケーション処理部141から受け取った受信データを非保護対象情報と保護対象情報とに分離する。
【0204】
第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図18を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。
【0205】
図18に示すように、ステップ561において、第2CPU120は、非保護対象情報と保護対象情報とを結合する。具体的には、データ結合部147は、非保護対象情報と保護対象情報とを結合して、非保護対象情報と保護対象情報とが結合された送信データを通信アプリケーション処理部141に渡す。
【0206】
[その他の実施形態]
本発明は上述した実施形態によって説明したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【0207】
実施形態では、データ共有領域に格納されるデータを読み込むと、データ受信完了フラグに“承認”をセットする。しかしながら、実施形態は、これに限定されるものではない。データ受信完了フラグを用いずに、データ共有領域に格納されるデータを読み込むと、データ共有領域に格納されるデータを直ちに削除してもよい。
【0208】
第2実施形態では、非セキュア共有領域153に格納されるデータには割込み識別フラグが対応付けられる。しかしながら、実施形態は、これに限定されるものではない。例えば、非セキュア共有領域153に格納されるデータのヘッダに、割込み識別フラグが設けられていてもよい。
【0209】
その他の実施形態として、第1実施形態〜第6実施形態の中から、2以上の実施形態を組み合わせてもよい。
【符号の説明】
【0210】
100・・・プログラム実行装置、110・・・第1CPU、111・・・割込み識別部、120・・・第2CPU、121・・・外部割込み識別部、130・・・第1CPU用メモリ、140・・・第2CPU用メモリ、141・・・通信アプリケーション処理部、142・・・セキュア割込み処理部、143・・・非セキュア割込み処理部、144・・・データ消去部、145・・・送信データ消去部、146・・・データ分離部、147・・・データ結合部、150・・・非セキュア実行ドメイン、151・・・非信頼アプリケーション処理部、152・・・非セキュア外部割込み処理部、153・・・非セキュア共有領域、154・・・データ共有領域、155・・・データ消去部、160・・・セキュア実行ドメイン、161・・・信頼アプリケーション処理部、162・・・セキュア外部割込み処理部、163・・・データ共有領域、164・・・セキュア共有領域、165・・・割込み監視部、166・・・データ消去部、167・・・送信データ消去部、168・・・依頼部、169・・・完全性検証部
【特許請求の範囲】
【請求項1】
保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する携帯端末であって、
前記第1CPUに関連付けられており、前記第1CPU及び前記第2CPUが共有するメモリ領域であるデータ共有領域を備え、
前記第1CPUは、前記第2CPUから前記セキュア実行ドメインへの割込みであるセキュア割込みと、前記第2CPUから前記非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有しており、
前記第2CPUは、前記セキュア実行ドメインから前記第2CPUへの外部割込みであるセキュア外部割込みと、前記非セキュア実行ドメインから前記第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有しており、
前記セキュア実行ドメインは、前記第2CPUから前記第1CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護することを特徴とする携帯端末。
【請求項2】
前記セキュア実行ドメインは、前記第1CPUから前記第2CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護することを特徴とする請求項1に記載の携帯端末。
【請求項3】
前記データ共有領域は、前記セキュア実行ドメインに設けられていることを特徴とする請求項1又は請求項2に記載の携帯端末。
【請求項4】
前記データ共有領域は、前記セキュア実行ドメインに設けられたセキュア共有領域と、前記非セキュア実行ドメインに設けられた非セキュア共有領域とを含み、
前記第2CPU側識別部は、前記セキュア共有領域及び前記非セキュア共有領域の状態に応じて、前記セキュア外部割込みと非セキュア外部割込みとを識別することを特徴とする請求項1又は請求項2に記載の携帯端末。
【請求項5】
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、前記非セキュア実行ドメインに設けられた前記データ共有領域にアクセス可能であり、
前記セキュア実行ドメインは、
前記セキュア割込みが検出された後に検出された前記非セキュア割込みを無効化する第1無効化部と、
前記保護対象情報が前記データ共有領域から消去された後に、前記第1無効化部によって無効化された前記非セキュア割込みを有効化する第1有効化部とを有する請求項1に記載の携帯端末。
【請求項6】
前記セキュア実行ドメインは、前記保護対象情報が前記データ共有領域から消去されるまで、前記非セキュア実行ドメインで実行される処理を停止する実行停止部とを有することを特徴とする請求項5に記載の携帯端末。
【請求項7】
前記セキュア実行ドメイン及び前記第2CPUは、前記データ共有領域に書き込まれた前記保護対象情報を共同で消去することを特徴とする請求項5又は請求項6に記載の携帯端末。
【請求項8】
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、
前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第1検証部と、
前記第2CPUによって前記データ共有領域に書き込まれる前記保護対象情報を前記セキュア実行ドメインに渡すデータ取得処理を前記非セキュア実行ドメインに依頼する第1依頼部とを有しており、
前記第1依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ取得処理を前記非セキュア実行ドメインに依頼することを特徴とする請求項1に記載の携帯端末。
【請求項9】
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、
前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第2検証部と、
前記セキュア実行ドメインによって前記データ共有領域に書き込まれる前記保護対象情報を前記第2CPUに渡すデータ送信処理を前記非セキュア実行ドメインに依頼する第2依頼部とを有しており、
前記第2依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ送信処理を前記非セキュア実行ドメインに依頼することを特徴とする請求項2に記載の携帯端末。
【請求項10】
前記通信ドメインは、前記セキュア実行ドメインから取得した前記保護対象情報と、前記非セキュア実行ドメインから取得した前記非保護対象情報とをまとめて、前記ネットワークに送信される送信データを生成するデータ結合部を有することを特徴とする請求項1に記載の携帯端末。
【請求項11】
前記通信ドメインは、前記ネットワークから受信する受信データを、前記セキュア実行ドメインに渡す前記保護対象情報と、前記非セキュア実行ドメインに渡す前記非保護対象情報とに分離するデータ分離部を有することを特徴とする請求項1に記載の携帯端末。
【請求項1】
保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する携帯端末であって、
前記第1CPUに関連付けられており、前記第1CPU及び前記第2CPUが共有するメモリ領域であるデータ共有領域を備え、
前記第1CPUは、前記第2CPUから前記セキュア実行ドメインへの割込みであるセキュア割込みと、前記第2CPUから前記非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有しており、
前記第2CPUは、前記セキュア実行ドメインから前記第2CPUへの外部割込みであるセキュア外部割込みと、前記非セキュア実行ドメインから前記第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有しており、
前記セキュア実行ドメインは、前記第2CPUから前記第1CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護することを特徴とする携帯端末。
【請求項2】
前記セキュア実行ドメインは、前記第1CPUから前記第2CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護することを特徴とする請求項1に記載の携帯端末。
【請求項3】
前記データ共有領域は、前記セキュア実行ドメインに設けられていることを特徴とする請求項1又は請求項2に記載の携帯端末。
【請求項4】
前記データ共有領域は、前記セキュア実行ドメインに設けられたセキュア共有領域と、前記非セキュア実行ドメインに設けられた非セキュア共有領域とを含み、
前記第2CPU側識別部は、前記セキュア共有領域及び前記非セキュア共有領域の状態に応じて、前記セキュア外部割込みと非セキュア外部割込みとを識別することを特徴とする請求項1又は請求項2に記載の携帯端末。
【請求項5】
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、前記非セキュア実行ドメインに設けられた前記データ共有領域にアクセス可能であり、
前記セキュア実行ドメインは、
前記セキュア割込みが検出された後に検出された前記非セキュア割込みを無効化する第1無効化部と、
前記保護対象情報が前記データ共有領域から消去された後に、前記第1無効化部によって無効化された前記非セキュア割込みを有効化する第1有効化部とを有する請求項1に記載の携帯端末。
【請求項6】
前記セキュア実行ドメインは、前記保護対象情報が前記データ共有領域から消去されるまで、前記非セキュア実行ドメインで実行される処理を停止する実行停止部とを有することを特徴とする請求項5に記載の携帯端末。
【請求項7】
前記セキュア実行ドメイン及び前記第2CPUは、前記データ共有領域に書き込まれた前記保護対象情報を共同で消去することを特徴とする請求項5又は請求項6に記載の携帯端末。
【請求項8】
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、
前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第1検証部と、
前記第2CPUによって前記データ共有領域に書き込まれる前記保護対象情報を前記セキュア実行ドメインに渡すデータ取得処理を前記非セキュア実行ドメインに依頼する第1依頼部とを有しており、
前記第1依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ取得処理を前記非セキュア実行ドメインに依頼することを特徴とする請求項1に記載の携帯端末。
【請求項9】
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、
前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第2検証部と、
前記セキュア実行ドメインによって前記データ共有領域に書き込まれる前記保護対象情報を前記第2CPUに渡すデータ送信処理を前記非セキュア実行ドメインに依頼する第2依頼部とを有しており、
前記第2依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ送信処理を前記非セキュア実行ドメインに依頼することを特徴とする請求項2に記載の携帯端末。
【請求項10】
前記通信ドメインは、前記セキュア実行ドメインから取得した前記保護対象情報と、前記非セキュア実行ドメインから取得した前記非保護対象情報とをまとめて、前記ネットワークに送信される送信データを生成するデータ結合部を有することを特徴とする請求項1に記載の携帯端末。
【請求項11】
前記通信ドメインは、前記ネットワークから受信する受信データを、前記セキュア実行ドメインに渡す前記保護対象情報と、前記非セキュア実行ドメインに渡す前記非保護対象情報とに分離するデータ分離部を有することを特徴とする請求項1に記載の携帯端末。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−176630(P2010−176630A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−21683(P2009−21683)
【出願日】平成21年2月2日(2009.2.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願日】平成21年2月2日(2009.2.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
[ Back to top ]