JP4796158B2 - Mobile device - Google Patents

Mobile device Download PDF

Info

Publication number
JP4796158B2
JP4796158B2 JP2009021683A JP2009021683A JP4796158B2 JP 4796158 B2 JP4796158 B2 JP 4796158B2 JP 2009021683 A JP2009021683 A JP 2009021683A JP 2009021683 A JP2009021683 A JP 2009021683A JP 4796158 B2 JP4796158 B2 JP 4796158B2
Authority
JP
Japan
Prior art keywords
secure
cpu
execution domain
secure execution
interrupt
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.)
Expired - Fee Related
Application number
JP2009021683A
Other languages
Japanese (ja)
Other versions
JP2010176630A (en
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2009021683A priority Critical patent/JP4796158B2/en
Publication of JP2010176630A publication Critical patent/JP2010176630A/en
Application granted granted Critical
Publication of JP4796158B2 publication Critical patent/JP4796158B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する携帯端末に関する。   A secure execution domain for processing protection target information, a first CPU associated with a non-secure execution domain for processing non-protection target information, and a second CPU associated with a communication domain for performing communication processing for communicating with a network It relates to mobile terminals.

従来、多様なコンテンツやアプリケーションを追加可能に構成された携帯端末が知られている。近年では、コンテンツやアプリケーションのデータサイズは大きくなっており、コンテンツやアプリケーションの高機能化が進んでいる。このような状況に対応するために、携帯端末に設けられたCPUの高機能化が求められている。   Conventionally, portable terminals configured to be able to add various contents and applications are known. In recent years, the data size of contents and applications has increased, and the functions of contents and applications have been advanced. In order to cope with such a situation, it is required to increase the functionality of a CPU provided in a portable terminal.

例えば、第1CPU(以下、A−CPU)と、第2CPU(以下、C−CPU)とを有する携帯端末が提案されている。A−CPUは、アプリケーションを実行する専用のCPUである。C−CPUは、移動通信網などのネットワークと通信を行う処理(通信処理)を実行する専用のCPUである。このような携帯端末では、A−CPU上で実行されるアプリケーションが通信処理を必要とする場合には、A−CPUは通信処理をC−CPUに依頼する必要がある。   For example, a portable terminal having a first CPU (hereinafter referred to as A-CPU) and a second CPU (hereinafter referred to as C-CPU) has been proposed. The A-CPU is a dedicated CPU that executes an application. The C-CPU is a dedicated CPU that executes processing (communication processing) for communicating with a network such as a mobile communication network. In such a portable terminal, when an application executed on the A-CPU requires communication processing, the A-CPU needs to request communication processing from the C-CPU.

ここで、A−CPUは、メール、ウェブ閲覧、カメラなどのように、様々なアプリケーションを実行する。従って、A−CPUは、例えば、Linux、Symbian OS、Windows(登録商標) Mobileなどの高機能OSを有することが多い。一方で、C−CPUは、μITRON(Micro Industrial The Real−time Operating system Nucleus)などのリアルタイムOSを有する。   Here, the A-CPU executes various applications such as mail, web browsing, and a camera. Therefore, the A-CPU often has a high-function OS such as Linux, Symbian OS, or Windows (registered trademark) Mobile. On the other hand, the C-CPU has a real-time OS such as μITRON (Micro Industrial The Real-time Operating System Nucleus).

ここで、A−CPU上では、PCなどと同様に、A−CPUに設けられたOS上で直接的にアプリケーションを実行することが可能である。これによって、不要なオーバヘッドが生じることなく、アプリケーションが実行される。しかしながら、PCなどと同様に、ウィルスなどを含む攻撃アプリケーションが不正に実行されると、携帯端末に記憶された各種情報(コンテンツや個人情報など)の消去や漏洩が生する危険性がある。また、携帯端末が故障する危険性もある。   Here, on the A-CPU, an application can be directly executed on an OS provided in the A-CPU, like a PC or the like. As a result, the application is executed without causing unnecessary overhead. However, as with a PC or the like, if an attack application including a virus or the like is executed illegally, there is a risk that various information (contents, personal information, etc.) stored in the mobile terminal may be erased or leaked. There is also a risk that the mobile terminal will break down.

このような危険性に対処する技術するために、(1)仮想的なリソースによって複数のOSを動作させる第1技術(例えば、特許文献1)、(2)複数のOSのそれぞれが用いるメモリ領域を分離する第2技術(例えば、特許文献2)、(3)複数のCPU間で通信を行う場合に、受信側OSが用いるメモリ領域のアドレスを指定する技術(例えば、特許文献3)が提案されている。   In order to deal with such a risk, (1) a first technology that operates a plurality of OSs using virtual resources (for example, Patent Document 1), and (2) a memory area used by each of the plurality of OSs. Proposed (for example, Patent Document 2), and (3) a technique for specifying the address of a memory area used by the receiving OS when communicating between a plurality of CPUs (for example, Patent Document 3) Has been.

第1技術では、仮想的なCPU、メモリ領域、周辺デバイスを有する仮想端末が構成される。複数のOSは仮想端末上で動作する。このような仮想端末上において、アプリケーションを実行するOSと、コンテンツや個人情報などを処理するOSとを分離することが考えられる。   In the first technique, a virtual terminal having a virtual CPU, a memory area, and a peripheral device is configured. A plurality of OSs operate on a virtual terminal. On such a virtual terminal, it is conceivable to separate an OS that executes an application from an OS that processes content and personal information.

第2技術では、複数のOSのそれぞれが用いるメモリ領域を分離することによって、携帯端末は、非セキュア実行ドメインとセキュア実行ドメインとを有する。非セキュア実行ドメインは、メモリ領域に格納されたデータが保護されないドメインである。セキュア実行ドメインは、メモリ領域に格納されたデータが保護されるドメインである。携帯端末は、非セキュア実行ドメインへの外部割込みを処理する第1処理部と、セキュア実行ドメインへの外部割込みを処理する第2処理部とを有する。これによって、外部CPU(例えば、C−CPU)からの外部割込みは、適切なOS(ドメイン)に通知される。   In the second technique, the mobile terminal has a non-secure execution domain and a secure execution domain by separating memory areas used by each of the plurality of OSs. The non-secure execution domain is a domain in which data stored in the memory area is not protected. The secure execution domain is a domain in which data stored in the memory area is protected. The portable terminal includes a first processing unit that processes an external interrupt to the non-secure execution domain and a second processing unit that processes an external interrupt to the secure execution domain. Thereby, an external interrupt from an external CPU (for example, C-CPU) is notified to an appropriate OS (domain).

第3技術では、複数のCPU間で通信を行う場合に、受信側CPUが用いるメモリ領域のアドレスを送信側CPUが指定する。   In the third technique, when communication is performed between a plurality of CPUs, the transmitting CPU designates the address of the memory area used by the receiving CPU.

米国特許第6,453,392号明細書US Pat. No. 6,453,392 米国特許出願公開第2004/0153593号明細書US Patent Application Publication No. 2004/0153593 米国特許第7,136,933号明細書US Pat. No. 7,136,933

しかしながら、上述した技術では、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(以下、保護対象情報)が十分に保護されていない。   However, in the above-described technique, information to be processed in the secure execution domain (hereinafter, protection target information) is not sufficiently protected when the secure execution domain and the non-secure execution domain operate in parallel.

具体的には、上述した第1技術では、仮想端末上で動作する複数のOSは、物理的には単一のハードウェアによって実現されている。従って、複数のOS(セキュア実行ドメイン及び非セキュア実行ドメイン)を並列で動作させることができない。   Specifically, in the first technique described above, a plurality of OSs operating on the virtual terminal are physically realized by a single hardware. Therefore, a plurality of OSs (secure execution domain and non-secure execution domain) cannot be operated in parallel.

上述した第2技術では、外部割込みを適切なOSに通知するに過ぎない。すなわち、第2技術では、外部CPU(例えば、C−CPU)がセキュア実行ドメイン及び非セキュア実行ドメインのいずれに割り込むかについて考慮されていない。従って、外部CPU(例えば、C−CPU)が非セキュア実行ドメインに割り込む場合に、外部CPU(例えば、C−CPU)が取得した保護対象情報が非セキュア実行ドメインに漏洩する可能性がある。   In the second technique described above, an external interrupt is merely notified to an appropriate OS. That is, in the second technique, no consideration is given to which of the secure execution domain and the non-secure execution domain the external CPU (for example, C-CPU) interrupts. Therefore, when the external CPU (for example, C-CPU) interrupts the non-secure execution domain, the protection target information acquired by the external CPU (for example, C-CPU) may leak to the non-secure execution domain.

上述した第3技術では、受信側CPUが用いるメモリ領域のアドレスを送信側CPUが指定するに過ぎない。すなわち、第3技術では、受信側CPU上で複数のOS(セキュア実行ドメイン及び非セキュア実行ドメイン)が動作することについて考慮されていない。このように、セキュア実行ドメインについて考慮されていないため、保護対象情報の保護が十分ではない。   In the third technique described above, the transmitting CPU only specifies the address of the memory area used by the receiving CPU. In other words, the third technique does not consider the operation of a plurality of OSs (secure execution domain and non-secure execution domain) on the receiving CPU. As described above, since the secure execution domain is not considered, the protection target information is not sufficiently protected.

そこで、本発明は、上述した課題を解決するためになされたものであり、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供することを目的とする。   Therefore, the present invention has been made to solve the above-described problem, and in the case where the secure execution domain and the non-secure execution domain operate in parallel, information (protection target information) to be processed in the secure execution domain is obtained. An object is to provide a portable terminal that can be sufficiently protected.

第1の特徴に係る携帯端末は、保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する。携帯端末は、前記第1CPUに関連付けられており、前記第1CPU及び前記第2CPUが共有するメモリ領域であるデータ共有領域を備える。前記第1CPUは、前記第2CPUから前記セキュア実行ドメインへの割込みであるセキュア割込みと、前記第2CPUから前記非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有する。前記第2CPUは、前記セキュア実行ドメインから前記第2CPUへの外部割込みであるセキュア外部割込みと、前記非セキュア実行ドメインから前記第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有する。前記セキュア実行ドメインは、前記第2CPUから前記第1CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護する。   The mobile terminal according to the first feature includes a first CPU associated with a secure execution domain for processing protection target information and a non-secure execution domain for processing non-protection target information, and communication for executing communication processing for communicating with a network. And a second CPU associated with the domain. The portable terminal includes a data sharing area that is associated with the first CPU and is a memory area shared by the first CPU and the second CPU. The first CPU has a first CPU side identification unit that identifies a secure interrupt that is an interrupt from the second CPU to the secure execution domain and a non-secure interrupt that is an interrupt from the second CPU to the non-secure execution domain. . The second CPU side identification for identifying a secure external interrupt that is an external interrupt from the secure execution domain to the second CPU and a non-secure external interrupt that is an interrupt from the non-secure execution domain to the second CPU Part. The secure execution domain protects the protection target information written in the data sharing area for passing from the second CPU to the first CPU from the non-secure execution domain.

第1の特徴において、前記セキュア実行ドメインは、前記第1CPUから前記第2CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護する。   In the first feature, the secure execution domain protects the protection target information written in the data sharing area for passing from the first CPU to the second CPU from the non-secure execution domain.

第1の特徴において、前記データ共有領域は、前記セキュア実行ドメインに設けられている。   In the first feature, the data sharing area is provided in the secure execution domain.

第1の特徴において、前記データ共有領域は、前記セキュア実行ドメインに設けられたセキュア共有領域と、前記非セキュア実行ドメインに設けられた非セキュア共有領域とを含む。前記第2CPU側識別部は、前記セキュア共有領域及び前記非セキュア共有領域の状態に応じて、前記セキュア外部割込みと非セキュア外部割込みとを識別する。   In the first feature, the data sharing area includes a secure sharing area provided in the secure execution domain and a non-secure sharing area provided in the non-secure execution domain. The second CPU side identification unit identifies the secure external interrupt and the non-secure external interrupt according to the state of the secure shared area and the non-secure shared area.

第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインに設けられた前記データ共有領域にアクセス可能である。前記セキュア実行ドメインは、前記セキュア割込みが検出された後に検出された前記非セキュア割込みを無効化する第1無効化部と、前記保護対象情報が前記データ共有領域から消去された後に、前記第1無効化部によって無効化された前記非セキュア割込みを有効化する第1有効化部とを有する。   In the first feature, the data sharing area is provided in the non-secure execution domain. The secure execution domain can access the data sharing area provided in the non-secure execution domain. The secure execution domain includes a first invalidation unit that invalidates the non-secure interrupt detected after the secure interrupt is detected, and the protection target information is erased from the data sharing area. A first validation unit that validates the non-secure interrupt invalidated by the invalidation unit.

第1の特徴において、前記セキュア実行ドメインは、前記保護対象情報が前記データ共有領域から消去されるまで、前記非セキュア実行ドメインで実行される処理を停止する実行停止部を有する。   In the first feature, the secure execution domain includes an execution stop unit that stops processing executed in the non-secure execution domain until the protection target information is erased from the data sharing area.

第1の特徴において、前記セキュア実行ドメイン及び前記第2CPUは、前記データ共有領域に書き込まれた前記保護対象情報を共同で消去する。   In the first feature, the secure execution domain and the second CPU jointly erase the protection target information written in the data sharing area.

第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第1検証部と、前記第2CPUによって前記データ共有領域に書き込まれる前記保護対象情報を前記セキュア実行ドメインに渡すデータ取得処理を前記非セキュア実行ドメインに依頼する第1依頼部とを有する。前記第1依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ取得処理を前記非セキュア実行ドメインに依頼する。   In the first feature, the data sharing area is provided in the non-secure execution domain. The secure execution domain includes a first verification unit that verifies the integrity of a program executed in the non-secure execution domain, and the protection target information written in the data sharing area by the second CPU to the secure execution domain. And a first request unit that requests the non-secure execution domain for a data acquisition process to be passed. The first request unit requests the data acquisition process to the non-secure execution domain when the integrity of the program being executed in the non-secure execution domain is verified.

第1の特徴において、前記データ共有領域は、前記非セキュア実行ドメインに設けられている。前記セキュア実行ドメインは、前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第2検証部と、前記セキュア実行ドメインによって前記データ共有領域に書き込まれる前記保護対象情報を前記第2CPUに渡すデータ送信処理を前記非セキュア実行ドメインに依頼する第2依頼部とを有する。前記第2依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ送信処理を前記非セキュア実行ドメインに依頼する。   In the first feature, the data sharing area is provided in the non-secure execution domain. The secure execution domain includes: a second verification unit that verifies the integrity of a program executed in the non-secure execution domain; and the protection target information written in the data sharing area by the secure execution domain to the second CPU. A second request unit that requests the non-secure execution domain for a data transmission process to be passed. The second request unit requests the non-secure execution domain for the data transmission process when the integrity of a program executed in the non-secure execution domain is verified.

第1の特徴において、前記通信ドメインは、前記セキュア実行ドメインから取得した前記保護対象情報と、前記非セキュア実行ドメインから取得した前記非保護対象情報とをまとめて、前記ネットワークに送信される送信データを生成するデータ結合部を有する。   In the first feature, the communication domain collects the protection target information acquired from the secure execution domain and the non-protection target information acquired from the non-secure execution domain, and transmits transmission data to the network. Has a data coupling unit for generating

第1の特徴において、前記通信ドメインは、前記ネットワークから受信する受信データを、前記セキュア実行ドメインに渡す前記保護対象情報と、前記非セキュア実行ドメインに渡す前記非保護対象情報とに分離するデータ分離部を有する。   In the first feature, the communication domain separates received data received from the network into the protection target information passed to the secure execution domain and the non-protection target information passed to the non-secure execution domain. Part.

本発明によれば、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することを可能とする携帯端末を提供することができる。   According to the present invention, there is provided a portable terminal capable of sufficiently protecting information (protection target information) to be processed in a secure execution domain when a secure execution domain and a non-secure execution domain operate in parallel. be able to.

第1実施形態に係るプログラム実行装置100を示すブロック図である。1 is a block diagram showing a program execution device 100 according to a first embodiment. 第1実施形態に係るデータ共有領域163を示す図である。It is a figure which shows the data sharing area | region 163 which concerns on 1st Embodiment. 第1実施形態に係るデータ共有領域163を示す図である。It is a figure which shows the data sharing area | region 163 which concerns on 1st Embodiment. 第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 1st Embodiment. 第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 1st Embodiment. 第2実施形態に係るプログラム実行装置100を示すブロック図である。It is a block diagram which shows the program execution apparatus 100 which concerns on 2nd Embodiment. 第3実施形態に係るプログラム実行装置100を示すブロック図である。It is a block diagram which shows the program execution apparatus 100 which concerns on 3rd Embodiment. 第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 3rd Embodiment. 第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 3rd Embodiment. 第4実施形態に係るプログラム実行装置100を示すブロック図である。It is a block diagram which shows the program execution apparatus 100 which concerns on 4th Embodiment. 第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 4th Embodiment. 第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 4th Embodiment. 第5実施形態に係るプログラム実行装置100を示すブロック図である。It is a block diagram which shows the program execution apparatus 100 which concerns on 5th Embodiment. 第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 5th Embodiment. 第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 5th Embodiment. 第6実施形態に係るプログラム実行装置100を示すブロック図である。It is a block diagram which shows the program execution apparatus 100 which concerns on 6th Embodiment. 第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 6th Embodiment. 第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。It is a flowchart which shows operation | movement of the program execution apparatus 100 which concerns on 6th Embodiment.

以下において、本発明の実施形態に係る携帯端末について、図面を参照しながら説明する。なお、以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。   Hereinafter, a mobile terminal according to an embodiment of the present invention will be described with reference to the drawings. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.

ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。従って、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。   However, it should be noted that the drawings are schematic and ratios of dimensions and the like are different from actual ones. Therefore, specific dimensions and the like should be determined in consideration of the following description. Moreover, it is a matter of course that portions having different dimensional relationships and ratios are included between the drawings.

[実施形態の概要]
実施形態に係る携帯端末は、保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する。携帯端末は、第1CPUに関連付けられており、第1CPU及び第2CPUが共有するメモリ領域であるデータ共有領域を備える。
[Outline of Embodiment]
The mobile terminal according to the embodiment includes a secure execution domain for processing protection target information and a first CPU associated with the non-secure execution domain for processing non-protection target information, and a communication domain for executing communication processing for communication with a network. And an associated second CPU. The portable terminal is associated with the first CPU and includes a data sharing area that is a memory area shared by the first CPU and the second CPU.

第1CPUは、第2CPUからセキュア実行ドメインへの割込みであるセキュア割込みと、第2CPUから非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有する。   The first CPU has a first CPU side identification unit that identifies a secure interrupt that is an interrupt from the second CPU to the secure execution domain and a non-secure interrupt that is an interrupt from the second CPU to the non-secure execution domain.

第2CPUは、セキュア実行ドメインから第2CPUへの外部割込みであるセキュア外部割込みと、非セキュア実行ドメインから第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有する。   The second CPU has a second CPU side identifying unit that identifies a secure external interrupt that is an external interrupt from the secure execution domain to the second CPU and a non-secure external interrupt that is an interrupt from the non-secure execution domain to the second CPU.

セキュア実行ドメインは、第2CPUから第1CPUに渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。同様に、セキュア実行ドメインは、第1CPUから第2CPUに渡すためにデータ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。   The secure execution domain protects the protection target information written in the data sharing area from the second CPU to the first CPU from the non-secure execution domain. Similarly, the secure execution domain protects the protection target information written in the data sharing area for passing from the first CPU to the second CPU from the non-secure execution domain.

実施形態では、第1CPUは、セキュア割込み及び非セキュア割込みを識別する第1CPU側識別部を有する。同様に、第2CPUは、セキュア外部割込み及び非セキュア外部割込みを識別する第2CPU側識別部を有する。なお、セキュア実行ドメインは、データ共有領域に書き込まれた保護対象情報を非セキュア実行ドメインから保護する。   In the embodiment, the first CPU has a first CPU side identification unit that identifies a secure interrupt and a non-secure interrupt. Similarly, the second CPU has a second CPU side identification unit for identifying a secure external interrupt and a non-secure external interrupt. The secure execution domain protects the protection target information written in the data sharing area from the non-secure execution domain.

このように、セキュア割込み、非セキュア割込み、セキュア外部割込み及び非セキュア外部割込みの識別によって、セキュア実行ドメイン及び非セキュア実行ドメインが並列で動作するケースにおいて、セキュア実行ドメインで処理すべき情報(保護対象情報)を十分に保護することができる。   As described above, when secure execution domains and non-secure execution domains operate in parallel by identifying secure interrupts, non-secure interrupts, secure external interrupts, and non-secure external interrupts, information to be processed in the secure execution domain (protection target) Information) can be adequately protected.

なお、以下においては、携帯端末に設けられたプログラム実行装置について主として説明する。   In the following, the program execution device provided in the mobile terminal will be mainly described.

[第1実施形態]
(プログラム実行装置の構成)
以下において、第1実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図1は、第1実施形態に係るプログラム実行装置100を示すブロック図である。プログラム実行装置100は、例えば、携帯端末に設けられる。
[First Embodiment]
(Configuration of program execution device)
The configuration of the program execution device according to the first embodiment will be described below with reference to the drawings. FIG. 1 is a block diagram showing a program execution device 100 according to the first embodiment. The program execution device 100 is provided in a mobile terminal, for example.

図1に示すように、プログラム実行装置100は、第1CPU110と、第2CPU120と、第1CPU用メモリ130と、第2CPU用メモリ140とを有する。   As shown in FIG. 1, the program execution device 100 includes a first CPU 110, a second CPU 120, a first CPU memory 130, and a second CPU memory 140.

第1CPU110は、第1CPU用メモリ130上にプログラムを展開して、各種アプリケーション(プログラム)を実行する。第1CPU110は、第1CPU用メモリ130に関連付けられている。第1CPU110は、例えば、アプリケーションを実行する専用のCPU(A−CPU)である。第1CPU110は、例えば、メール、ウェブ閲覧、カメラなどのようなアプリケーションを実行する。   The first CPU 110 develops a program on the first CPU memory 130 and executes various applications (programs). The first CPU 110 is associated with the first CPU memory 130. The first CPU 110 is, for example, a dedicated CPU (A-CPU) that executes an application. The first CPU 110 executes applications such as e-mail, web browsing, and camera.

第1実施形態では、第1CPU110は、第2CPU120からの割込みの種別を識別する割込み識別部111を有する。第2CPU120からの割込みとしては、非セキュア実行ドメイン150への割込みである非セキュア割込みと、セキュア実行ドメイン160への割込みであるセキュア割込みとが挙げられる。すなわち、割込み識別部111は、非セキュア割込みとセキュア割込みとを識別する。   In the first embodiment, the first CPU 110 includes an interrupt identification unit 111 that identifies the type of interrupt from the second CPU 120. Examples of the interrupt from the second CPU 120 include a non-secure interrupt that is an interrupt to the non-secure execution domain 150 and a secure interrupt that is an interrupt to the secure execution domain 160. That is, the interrupt identification unit 111 identifies a non-secure interrupt and a secure interrupt.

第1実施形態では、非セキュア割込み及びセキュア割込みは、異なる構成を有する割込みである。すなわち、非セキュア割込み及びセキュア割込みは、それぞれ、専用の割込みである。   In the first embodiment, the non-secure interrupt and the secure interrupt are interrupts having different configurations. That is, the non-secure interrupt and the secure interrupt are dedicated interrupts, respectively.

第2CPU120は、第2CPU用メモリ140上にプログラムを展開して、各種アプリケーション(プログラム)を実行する。第2CPU120は、第2CPU用メモリ140に関連付けられている。第2CPU120は、例えば、移動通信網などのネットワークと通信を行う処理(通信処理)を実行する専用のCPU(C−CPU)である。   The second CPU 120 develops a program on the second CPU memory 140 and executes various applications (programs). The second CPU 120 is associated with the second CPU memory 140. The second CPU 120 is a dedicated CPU (C-CPU) that executes processing (communication processing) for communicating with a network such as a mobile communication network.

第1実施形態では、第2CPU120は、第1CPU110からの外部割込みの種別を識別する外部割込み識別部121を有する。第1CPU110からの外部割込みとしては、非セキュア実行ドメイン150からの外部割込みである非セキュア外部割込みと、セキュア実行ドメイン160からの外部割込みであるセキュア外部割込みとが挙げられる。すなわち、外部割込み識別部121は、非セキュア外部割込みとセキュア外部割込みとを識別する。   In the first embodiment, the second CPU 120 includes an external interrupt identification unit 121 that identifies the type of external interrupt from the first CPU 110. Examples of the external interrupt from the first CPU 110 include a non-secure external interrupt that is an external interrupt from the non-secure execution domain 150 and a secure external interrupt that is an external interrupt from the secure execution domain 160. That is, the external interrupt identification unit 121 identifies a non-secure external interrupt and a secure external interrupt.

第1実施形態では、非セキュア外部割込み及びセキュア外部割込みは、異なる構成を有する外部割込みである。すなわち、非セキュア外部割込み及びセキュア外部割込みは、それぞれ、専用の外部割込みである。   In the first embodiment, the non-secure external interrupt and the secure external interrupt are external interrupts having different configurations. That is, each of the non-secure external interrupt and the secure external interrupt is a dedicated external interrupt.

第1CPU用メモリ130は、非セキュア実行ドメイン150と、セキュア実行ドメイン160とを有する。第1CPU用メモリ130は、例えば、RAM(Random Access Memory)などによって構成される。   The first CPU memory 130 has a non-secure execution domain 150 and a secure execution domain 160. The first CPU memory 130 is composed of, for example, a RAM (Random Access Memory).

非セキュア実行ドメイン150は、非保護対象情報を処理するドメインである。すなわち、非セキュア実行ドメイン150では、メモリ領域に格納されたデータがセキュア実行ドメイン160よりも保護されない。   The non-secure execution domain 150 is a domain that processes unprotected information. That is, in the non-secure execution domain 150, data stored in the memory area is not protected more than the secure execution domain 160.

具体的には、非セキュア実行ドメイン150は、非信頼アプリケーション処理部151とと、非セキュア外部割込み処理部152とを有する。   Specifically, the non-secure execution domain 150 includes an untrusted application processing unit 151 and a non-secure external interrupt processing unit 152.

非信頼アプリケーション処理部151は、信頼性を有していないアプリケーションを処理する。例えば、非信頼アプリケーション処理部151は、携帯端末に新たに追加されたアプリケーションを処理する。   The untrusted application processing unit 151 processes an application that does not have reliability. For example, the untrusted application processing unit 151 processes an application newly added to the mobile terminal.

非セキュア外部割込み処理部152は、第2CPU120への外部割込み(非セキュア外部割込み)を発行する。具体的には、非セキュア外部割込み処理部152は、非信頼アプリケーション処理部151からの要求に従って、非セキュア外部割込みを発行する。例えば、非セキュア外部割込み処理部152は、非信頼アプリケーション処理部151からの要求に従って、第2CPU120によってネットワークにデータを送信する際に、非セキュア外部割込みを発行する。   The non-secure external interrupt processing unit 152 issues an external interrupt (non-secure external interrupt) to the second CPU 120. Specifically, the non-secure external interrupt processing unit 152 issues a non-secure external interrupt according to a request from the untrusted application processing unit 151. For example, the non-secure external interrupt processing unit 152 issues a non-secure external interrupt when the second CPU 120 transmits data to the network according to a request from the untrusted application processing unit 151.

セキュア実行ドメイン160は、保護対象情報を処理するドメインである。すなわち、セキュア実行ドメイン160では、メモリ領域に格納されたデータが非セキュア実行ドメイン150よりも保護される。詳細には、セキュア実行ドメイン160では、メモリ領域に格納されたデータが非セキュア実行ドメイン150から保護される。   The secure execution domain 160 is a domain that processes protection target information. That is, in the secure execution domain 160, data stored in the memory area is protected more than in the non-secure execution domain 150. Specifically, in the secure execution domain 160, data stored in the memory area is protected from the non-secure execution domain 150.

具体的には、セキュア実行ドメイン160は、信頼アプリケーション処理部161と、セキュア外部割込み処理部162と、データ共有領域163とを有する。   Specifically, the secure execution domain 160 includes a trusted application processing unit 161, a secure external interrupt processing unit 162, and a data sharing area 163.

信頼アプリケーション処理部161は、信頼性を有するアプリケーションを処理する。例えば、信頼アプリケーション処理部161は、携帯端末に予めインストールされたアプリケーションを処理する。   The trusted application processing unit 161 processes a reliable application. For example, the trusted application processing unit 161 processes an application installed in advance on the mobile terminal.

セキュア外部割込み処理部162は、第2CPU120への外部割込み(セキュア外部割込み)を発行する。具体的には、セキュア外部割込み処理部162は、信頼アプリケーション処理部161からの要求に従って、セキュア外部割込みを発行する。例えば、セキュア外部割込み処理部162は、信頼アプリケーション処理部161からの要求に従って、第2CPU120によってネットワークにデータを送信する際に、セキュア外部割込みを発行する。   The secure external interrupt processing unit 162 issues an external interrupt (secure external interrupt) to the second CPU 120. Specifically, the secure external interrupt processing unit 162 issues a secure external interrupt according to a request from the trusted application processing unit 161. For example, the secure external interrupt processing unit 162 issues a secure external interrupt when the second CPU 120 transmits data to the network in accordance with a request from the trusted application processing unit 161.

データ共有領域163は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。   The data sharing area 163 is an area associated with the first CPU 110 and shared by the first CPU 110 and the second CPU 120.

ここで、データ共有領域163には、第1CPU110から第2CPU120に渡すデータが書き込まれる。すなわち、データ共有領域163には、第2CPU120によってネットワークに送信されるデータが格納される。   Here, data to be passed from the first CPU 110 to the second CPU 120 is written in the data sharing area 163. That is, data transmitted to the network by the second CPU 120 is stored in the data sharing area 163.

また、データ共有領域163には、第2CPU120から第1CPU110に渡すデータが書き込まれる。すなわち、データ共有領域163には、第2CPU120によってネットワークから受信されるデータが格納される。   In the data sharing area 163, data to be passed from the second CPU 120 to the first CPU 110 is written. That is, the data sharing area 163 stores data received from the network by the second CPU 120.

第2CPU用メモリ140は、通信アプリケーション処理部141と、セキュア割込み処理部142と、非セキュア割込み処理部143とを有する。第2CPU用メモリ140は、ネットワークと通信を行う処理(通信処理)を実行する通信ドメインである。   The second CPU memory 140 includes a communication application processing unit 141, a secure interrupt processing unit 142, and a non-secure interrupt processing unit 143. The second CPU memory 140 is a communication domain that executes processing (communication processing) for communicating with a network.

通信アプリケーション処理部141は、通信機能に係るアプリケーションを処理する。具体的には、通信アプリケーション処理部141は、ネットワークと通信を行う処理(通信処理)に係るアプリケーションを処理する。   The communication application processing unit 141 processes an application related to a communication function. Specifically, the communication application processing unit 141 processes an application related to processing (communication processing) for communicating with the network.

セキュア割込み処理部142は、第1CPU110のセキュア実行ドメイン160への割込み(セキュア割込み)を発行する。具体的には、セキュア割込み処理部142は、通信アプリケーション処理部141からの要求に従って、セキュア割込みを発行する。例えば、セキュア割込み処理部142は、通信アプリケーション処理部141からの要求に従って、第2CPU120によってネットワークから受信されたデータをセキュア実行ドメイン160に送信する際に、セキュア割込みを発行する。   The secure interrupt processing unit 142 issues an interrupt (secure interrupt) to the secure execution domain 160 of the first CPU 110. Specifically, the secure interrupt processing unit 142 issues a secure interrupt according to a request from the communication application processing unit 141. For example, the secure interrupt processing unit 142 issues a secure interrupt when transmitting data received from the network by the second CPU 120 to the secure execution domain 160 in accordance with a request from the communication application processing unit 141.

非セキュア割込み処理部143は、第1CPU110の非セキュア実行ドメイン150への割込み(非セキュア割込み)を発行する。具体的には、非セキュア割込み処理部143は、通信アプリケーション処理部141からの要求に従って、非セキュア割込みを発行する。例えば、非セキュア割込み処理部143は、通信アプリケーション処理部141からの要求に従って、第2CPU120によってネットワークから受信されたデータを非セキュア実行ドメイン150に送信する際に、非セキュア割込みを発行する。   The non-secure interrupt processing unit 143 issues an interrupt (non-secure interrupt) to the non-secure execution domain 150 of the first CPU 110. Specifically, the non-secure interrupt processing unit 143 issues a non-secure interrupt according to a request from the communication application processing unit 141. For example, the non-secure interrupt processing unit 143 issues a non-secure interrupt when transmitting data received from the network by the second CPU 120 to the non-secure execution domain 150 in accordance with a request from the communication application processing unit 141.

(保護対象情報の保護)
以下において、第1実施形態に係る保護対象情報の保護について説明する。具体的には、データ共有領域163は、セキュア実行ドメイン160に設けられている。また、セキュア実行ドメイン160は、データ共有領域163に書き込まれたデータを非セキュア実行ドメイン150から保護する。
(Protection of protected information)
Hereinafter, protection of protection target information according to the first embodiment will be described. Specifically, the data sharing area 163 is provided in the secure execution domain 160. In addition, the secure execution domain 160 protects data written in the data sharing area 163 from the non-secure execution domain 150.

すなわち、セキュア実行ドメイン160は、セキュア実行ドメイン160は、第1CPU110から第2CPU120に渡すためにデータ共有領域163に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。同様に、セキュア実行ドメイン160は、第2CPU120から第1CPU110に渡すためにデータ共有領域163に書き込まれた保護対象情報を非セキュア実行ドメイン150から保護する。   That is, the secure execution domain 160 protects the protection target information written in the data sharing area 163 for passing from the first CPU 110 to the second CPU 120 from the non-secure execution domain 150. Similarly, the secure execution domain 160 protects the protection target information written in the data sharing area 163 for passing from the second CPU 120 to the first CPU 110 from the non-secure execution domain 150.

第1実施形態では、保護対象情報は、図2及び図3に示すように、データ受信完了フラグによって管理される。   In the first embodiment, the protection target information is managed by a data reception completion flag as shown in FIGS.

図2には、第2CPU120からセキュア実行ドメイン160に渡す保護対象情報に対応付けられたデータ受信完了フラグが示されている。このようなケースでは、セキュア実行ドメイン160は、第2CPU120から保護対象情報を受信した場合に、データ受信完了フラグに“承認”をセットする(図2に示す1番目の保護対象情報を参照)。   FIG. 2 shows a data reception completion flag associated with the protection target information passed from the second CPU 120 to the secure execution domain 160. In such a case, when receiving the protection target information from the second CPU 120, the secure execution domain 160 sets “approval” to the data reception completion flag (see the first protection target information shown in FIG. 2).

図3には、セキュア実行ドメイン160から第2CPU120に渡す保護対象情報に対応付けられたデータ受信完了フラグが示されている。このようなケースでは、第2CPU120は、セキュア実行ドメイン160から保護対象情報を受信した場合に、データ受信完了フラグに“承認”をセットする(図3に示す1番目の保護対象情報を参照)。   FIG. 3 shows a data reception completion flag associated with the protection target information passed from the secure execution domain 160 to the second CPU 120. In such a case, when receiving the protection target information from the secure execution domain 160, the second CPU 120 sets “approval” to the data reception completion flag (see the first protection target information shown in FIG. 3).

(プログラム実行装置の動作)
以下において、第1実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図4及び図5は、第1実施形態に係るプログラム実行装置100の動作を示すフロー図である。
(Operation of the program execution device)
Hereinafter, the operation of the program execution device according to the first embodiment will be described with reference to the drawings. 4 and 5 are flowcharts showing the operation of the program execution device 100 according to the first embodiment.

以下においては、第1CPU用メモリ130上に設けられた構成は、第1CPU110によって制御されるため、第1CPU用メモリ130上に設けられた構成の処理について、必要に応じて、第1CPU110の処理として説明する。同様に、第2CPU用メモリ140上に設けられた構成は、第2CPU120によって制御されるため、第2CPU用メモリ140上に設けられた構成の処理について、必要に応じて、第2CPU120の処理として説明する。   In the following, since the configuration provided on the first CPU memory 130 is controlled by the first CPU 110, the processing of the configuration provided on the first CPU memory 130 is performed as the processing of the first CPU 110 as necessary. explain. Similarly, since the configuration provided on the second CPU memory 140 is controlled by the second CPU 120, the processing of the configuration provided on the second CPU memory 140 will be described as the processing of the second CPU 120 as necessary. To do.

第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図4を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。   First, a case where data is transferred from the second CPU 120 (an application operating on the second CPU memory 140) to the first CPU 110 (an application operating on the first CPU memory 130) will be described with reference to FIG. Here, a case where protection target information is passed from the second CPU 120 to the secure execution domain 160 will be described.

図4に示すように、ステップ110において、第2CPU120は、第2CPU120によってネットワークから受信されるデータをデータ共有領域163に書き込む。具体的には、通信アプリケーション処理部141は、セキュア実行ドメイン160に渡す保護対象情報をデータ共有領域163に書き込む。   As shown in FIG. 4, in step 110, the second CPU 120 writes data received from the network by the second CPU 120 in the data sharing area 163. Specifically, the communication application processing unit 141 writes the protection target information to be passed to the secure execution domain 160 in the data sharing area 163.

ステップ120において、第2CPU120は、第1CPU110への割込みを発行する。具体的には、セキュア割込み処理部142は、セキュア実行ドメイン160への割込みであるセキュア割込みを発行する。   In step 120, the second CPU 120 issues an interrupt to the first CPU 110. Specifically, the secure interrupt processing unit 142 issues a secure interrupt that is an interrupt to the secure execution domain 160.

ステップ210において、第1CPU110は、第1CPU110への割込みを検知する。具体的には、割込み識別部111は、セキュア実行ドメイン160への割込みであるセキュア割込みを検知する。   In step 210, the first CPU 110 detects an interrupt to the first CPU 110. Specifically, the interrupt identification unit 111 detects a secure interrupt that is an interrupt to the secure execution domain 160.

ステップ220において、第1CPU110は、データ共有領域163からデータを読み出す。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、データ共有領域163から保護対象情報を読み出す。   In step 220, the first CPU 110 reads data from the data sharing area 163. Specifically, the trusted application processing unit 161 of the secure execution domain 160 reads the protection target information from the data sharing area 163.

ステップ230において、第1CPU110は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。   In step 230, the first CPU 110 sets “approval” to the data reception completion flag associated with the data read from the data sharing area 163. Specifically, the trusted application processing unit 161 of the secure execution domain 160 sets “approval” to the data reception completion flag associated with the protection target information.

ステップ240において、第1CPU110は、第2CPU120への外部割込みを発行する。具体的には、セキュア実行ドメイン160のセキュア外部割込み処理部162は、第2CPU120への外部割込みであるセキュア外部割込みを発行する。   In step 240, the first CPU 110 issues an external interrupt to the second CPU 120. Specifically, the secure external interrupt processing unit 162 of the secure execution domain 160 issues a secure external interrupt that is an external interrupt to the second CPU 120.

ステップ310において、第2CPU120は、第2CPU120への外部割込みを検知する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みを検知する。   In step 310, the second CPU 120 detects an external interrupt to the second CPU 120. Specifically, the external interrupt identification unit 121 detects an external interrupt to the second CPU 120.

ステップ320において、第2CPU120は、第2CPU120への外部割込みの発行元(割込み元)を確認する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みの発行元を確認する。   In step 320, the second CPU 120 confirms the issue source (interrupt source) of the external interrupt to the second CPU 120. Specifically, the external interrupt identification unit 121 confirms the issue source of the external interrupt to the second CPU 120.

ステップ330において、第2CPU120は、第2CPU120への外部割込みの発行元がセキュア実行ドメイン160であるか否かを識別する。具体的には、外部割込み識別部121は、外部割込みがセキュア外部割込みであるか否かを識別する。   In step 330, the second CPU 120 identifies whether or not the issue source of the external interrupt to the second CPU 120 is the secure execution domain 160. Specifically, the external interrupt identification unit 121 identifies whether or not the external interrupt is a secure external interrupt.

外部割込みがセキュア外部割込みである場合には、ステップ340が実行される。一方で、外部割込みが非セキュア外部割込みである場合には、一連の処理が終了する。   If the external interrupt is a secure external interrupt, step 340 is executed. On the other hand, when the external interrupt is a non-secure external interrupt, a series of processing ends.

ステップ340において、第2CPU120は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグを確認する。具体的には、通信アプリケーション処理部141は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”が設定されていることを確認する。   In step 340, the second CPU 120 confirms the data reception completion flag associated with the data read from the data sharing area 163. Specifically, the communication application processing unit 141 confirms that “approval” is set in the data reception completion flag associated with the protection target information.

第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図5を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。   Secondly, a case where data is transferred from the first CPU 110 (an application operating on the first CPU memory 130) to the second CPU 120 (an application operating on the second CPU memory 140) will be described with reference to FIG. Here, a case where protection target information is transferred from the secure execution domain 160 to the second CPU 120 will be described.

図5に示すように、ステップ410において、第1CPU110は、第2CPU120によってネットワークに送信されるデータをデータ共有領域163に書き込む。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、第2CPU120に渡す保護対象情報をデータ共有領域163に書き込む。   As shown in FIG. 5, in step 410, the first CPU 110 writes data transmitted to the network by the second CPU 120 in the data sharing area 163. Specifically, the trusted application processing unit 161 of the secure execution domain 160 writes the protection target information to be passed to the second CPU 120 in the data sharing area 163.

ステップ420において、第1CPU110は、第2CPU120への外部割込みを発行する。具体的には、セキュア実行ドメイン160のセキュア外部割込み処理部162は、第2CPU120への外部割込みであるセキュア外部割込みを発行する。   In step 420, the first CPU 110 issues an external interrupt to the second CPU 120. Specifically, the secure external interrupt processing unit 162 of the secure execution domain 160 issues a secure external interrupt that is an external interrupt to the second CPU 120.

ステップ510において、第2CPU120は、第2CPU120への外部割込みを検知する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みを検知する。   In step 510, the second CPU 120 detects an external interrupt to the second CPU 120. Specifically, the external interrupt identification unit 121 detects an external interrupt to the second CPU 120.

ステップ520において、第2CPU120は、第2CPU120への外部割込みの発行元(割込み元)を確認する。具体的には、外部割込み識別部121は、第2CPU120への外部割込みの発行元を確認する。   In step 520, the second CPU 120 confirms the issue source (interrupt source) of the external interrupt to the second CPU 120. Specifically, the external interrupt identification unit 121 confirms the issue source of the external interrupt to the second CPU 120.

ステップ530において、第2CPU120は、第2CPU120への外部割込みの発行元がセキュア実行ドメイン160であるか否かを識別する。具体的には、外部割込み識別部121は、外部割込みがセキュア外部割込みであるか否かを識別する。   In step 530, the second CPU 120 identifies whether or not the issue source of the external interrupt to the second CPU 120 is the secure execution domain 160. Specifically, the external interrupt identification unit 121 identifies whether or not the external interrupt is a secure external interrupt.

外部割込みがセキュア外部割込みである場合には、ステップ540が実行される。一方で、外部割込みが非セキュア外部割込みである場合には、一連の処理が終了する。   If the external interrupt is a secure external interrupt, step 540 is executed. On the other hand, when the external interrupt is a non-secure external interrupt, a series of processing ends.

ステップ540において、第2CPU120は、データ共有領域163からデータを読み出す。具体的には、通信アプリケーション処理部141は、データ共有領域163から保護対象情報を読み出す。   In step 540, the second CPU 120 reads data from the data sharing area 163. Specifically, the communication application processing unit 141 reads the protection target information from the data sharing area 163.

ステップ550において、第2CPU120は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、通信アプリケーション処理部141は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。   In step 550, the second CPU 120 sets “approval” to the data reception completion flag associated with the data read from the data sharing area 163. Specifically, the communication application processing unit 141 sets “approval” to the data reception completion flag associated with the protection target information.

ステップ560において、第2CPU120は、第1CPU110への割込みを発行する。具体的には、セキュア割込み処理部142は、セキュア実行ドメイン160への割込みであるセキュア割込みを発行する。   In step 560, the second CPU 120 issues an interrupt to the first CPU 110. Specifically, the secure interrupt processing unit 142 issues a secure interrupt that is an interrupt to the secure execution domain 160.

ステップ610において、第1CPU110は、第1CPU110への割込みを検知する。具体的には、割込み識別部111は、セキュア実行ドメイン160への割込みであるセキュア割込みを検知する。   In step 610, the first CPU 110 detects an interrupt to the first CPU 110. Specifically, the interrupt identification unit 111 detects a secure interrupt that is an interrupt to the secure execution domain 160.

ステップ620において、第1CPU110は、データ共有領域163から読み出されたデータに対応付けられたデータ受信完了フラグを確認する。具体的には、セキュア実行ドメイン160の信頼アプリケーション処理部161は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”がセットされていることを確認する。   In step 620, the first CPU 110 confirms the data reception completion flag associated with the data read from the data sharing area 163. Specifically, the trusted application processing unit 161 of the secure execution domain 160 confirms that “approval” is set in the data reception completion flag associated with the protection target information.

(作用及び効果)
第1実施形態では、第1CPU110は、セキュア割込み及び非セキュア割込みを識別する割込み識別部111を有する。同様に、第2CPU120は、セキュア外部割込み及び非セキュア外部割込みを識別する外部割込み識別部121を有する。なお、第1CPU110に関連付けられたセキュア実行ドメイン160は、データ共有領域に書き込まれた保護対象情報を、第1CPU110に関連付けられた非セキュア実行ドメイン150から保護する。
(Function and effect)
In the first embodiment, the first CPU 110 includes an interrupt identification unit 111 that identifies a secure interrupt and a non-secure interrupt. Similarly, the second CPU 120 includes an external interrupt identification unit 121 that identifies a secure external interrupt and a non-secure external interrupt. The secure execution domain 160 associated with the first CPU 110 protects the protection target information written in the data sharing area from the non-secure execution domain 150 associated with the first CPU 110.

このように、セキュア割込み、非セキュア割込み、セキュア外部割込み及び非セキュア外部割込みの識別によって、セキュア実行ドメイン160及び非セキュア実行ドメイン150が並列で動作するケースにおいて、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を十分に保護することができる。   Thus, in the case where the secure execution domain 160 and the non-secure execution domain 150 operate in parallel by identifying secure interrupts, non-secure interrupts, secure external interrupts, and non-secure external interrupts, information to be processed in the secure execution domain 160 (Protected information) can be sufficiently protected.

第1実施形態では、データ共有領域163がセキュア実行ドメイン160に設けられているため、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を十分に保護することができる。   In the first embodiment, since the data sharing area 163 is provided in the secure execution domain 160, information (protection target information) to be processed in the secure execution domain 160 can be sufficiently protected.

[第2実施形態]
以下において、第2実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
[Second Embodiment]
Hereinafter, the second embodiment will be described with reference to the drawings. In the following, differences from the first embodiment will be mainly described.

具体的には、第1実施形態では、非セキュア割込み及びセキュア割込みは、異なる構成を有する割込みである。非セキュア外部割込み及びセキュア外部割込みは、異なる構成を有する外部割込みである。   Specifically, in the first embodiment, the non-secure interrupt and the secure interrupt are interrupts having different configurations. Non-secure external interrupts and secure external interrupts are external interrupts having different configurations.

これに対して、第2実施形態では、非セキュア割込み及びセキュア割込みは、同様の構成を有する割込みである。非セキュア外部割込み及びセキュア外部割込みは、同様の構成を有する外部割込みである。   On the other hand, in the second embodiment, the non-secure interrupt and the secure interrupt are interrupts having the same configuration. A non-secure external interrupt and a secure external interrupt are external interrupts having a similar configuration.

(プログラム実行装置の構成)
以下において、第2実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図6は、第2実施形態に係るプログラム実行装置100を示すブロック図である。図6では、図1と同様の構成について、同様の符号を付している。
(Configuration of program execution device)
Hereinafter, the configuration of the program execution device according to the second embodiment will be described with reference to the drawings. FIG. 6 is a block diagram showing the program execution device 100 according to the second embodiment. In FIG. 6, the same components as those in FIG.

図6に示すように、非セキュア実行ドメイン150は、非セキュア共有領域153をさらに備える。セキュア実行ドメイン160は、データ共有領域163に代えて、セキュア共有領域164を備える。   As shown in FIG. 6, the non-secure execution domain 150 further includes a non-secure shared area 153. The secure execution domain 160 includes a secure sharing area 164 instead of the data sharing area 163.

非セキュア共有領域153は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。具体的には、非セキュア共有領域153は、非セキュア実行ドメイン150及び第2CPU120によって共有される領域である。   The non-secure shared area 153 is an area associated with the first CPU 110 and shared by the first CPU 110 and the second CPU 120. Specifically, the non-secure shared area 153 is an area shared by the non-secure execution domain 150 and the second CPU 120.

ここで、非セキュア共有領域153に格納されるデータには、第2CPU120から非セキュア実行ドメイン150に非セキュア割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。同様に、非セキュア実行ドメイン150に格納されるデータには、非セキュア実行ドメイン150から第2CPU120に非セキュア外部割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。   Here, the data stored in the non-secure shared area 153 is associated with an interrupt identification flag indicating that the data is passed from the second CPU 120 to the non-secure execution domain 150 by a non-secure interrupt. Similarly, the data stored in the non-secure execution domain 150 is associated with an interrupt identification flag indicating that the data is passed from the non-secure execution domain 150 to the second CPU 120 by a non-secure external interrupt.

セキュア共有領域164は、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。具体的には、セキュア共有領域164は、セキュア実行ドメイン160及び第2CPU120によって共有される領域である。   The secure sharing area 164 is an area associated with the first CPU 110 and shared by the first CPU 110 and the second CPU 120. Specifically, the secure shared area 164 is an area shared by the secure execution domain 160 and the second CPU 120.

ここで、セキュア共有領域164に格納されるデータには、第2CPU120からセキュア実行ドメイン160にセキュア割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。同様に、セキュア共有領域164に格納されるデータには、セキュア実行ドメイン160から第2CPU120にセキュア外部割込みによって渡されるデータであることを示す割込み識別フラグが対応付けられる。   Here, the data stored in the secure shared area 164 is associated with an interrupt identification flag indicating that the data is passed from the second CPU 120 to the secure execution domain 160 by a secure interrupt. Similarly, the data stored in the secure shared area 164 is associated with an interrupt identification flag indicating that the data is passed from the secure execution domain 160 to the second CPU 120 by a secure external interrupt.

上述した割込み識別部111は、非セキュア割込みとセキュア割込みとを割込み識別フラグによって識別する。すなわち、割込み識別部111は、非セキュア共有領域153及びセキュア共有領域164の状態に応じて、非セキュア割込みとセキュア割込みとを識別する。   The above-described interrupt identification unit 111 identifies a non-secure interrupt and a secure interrupt by an interrupt identification flag. That is, the interrupt identifying unit 111 identifies a non-secure interrupt and a secure interrupt according to the states of the non-secure shared area 153 and the secure shared area 164.

上述した外部割込み識別部121は、非セキュア外部割込みとセキュア外部割込みとを割込み識別フラグによって識別する。すなわち、外部割込み識別部121は、非セキュア共有領域153及びセキュア共有領域164の状態に応じて、非セキュア外部割込みとセキュア外部割込みとを識別する。   The external interrupt identification unit 121 described above identifies non-secure external interrupts and secure external interrupts by an interrupt identification flag. That is, the external interrupt identification unit 121 identifies a non-secure external interrupt and a secure external interrupt according to the states of the non-secure shared area 153 and the secure shared area 164.

(作用及び効果)
第2実施形態では、割込み識別部111は、非セキュア共有領域153及びセキュア共有領域164に格納された割込み識別フラグによって、非セキュア割込みとセキュア割込みとを識別する。従って、非セキュア割込み及びセキュア割込みが同じ構成を有していても、非セキュア割込みとセキュア割込みとの識別が可能である。
(Function and effect)
In the second embodiment, the interrupt identification unit 111 identifies a non-secure interrupt and a secure interrupt by using an interrupt identification flag stored in the non-secure shared area 153 and the secure shared area 164. Therefore, even if the non-secure interrupt and the secure interrupt have the same configuration, the non-secure interrupt and the secure interrupt can be distinguished.

同様に、外部割込み識別部121は、非セキュア共有領域153及びセキュア共有領域164に格納された割込み識別フラグによって、非セキュア外部割込みとセキュア外部割込みとを識別する。従って、非セキュア外部割込み及びセキュア外部割込みが同じ構成を有していても、非セキュア外部割込みとセキュア外部割込みとの識別が可能である。   Similarly, the external interrupt identification unit 121 identifies non-secure external interrupts and secure external interrupts based on the interrupt identification flags stored in the non-secure shared area 153 and the secure shared area 164. Therefore, even if the non-secure external interrupt and the secure external interrupt have the same configuration, the non-secure external interrupt and the secure external interrupt can be distinguished.

[第3実施形態]
以下において、第3実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
[Third Embodiment]
Hereinafter, a third embodiment will be described with reference to the drawings. In the following, differences from the first embodiment will be mainly described.

具体的には、第1実施形態では、データ共有領域がセキュア実行ドメイン160に設けられている。これに対して、第3実施形態では、データ共有領域が非セキュア実行ドメイン150に設けられている。   Specifically, in the first embodiment, the data sharing area is provided in the secure execution domain 160. On the other hand, in the third embodiment, the data sharing area is provided in the non-secure execution domain 150.

(プログラム実行装置の構成)
以下において、第3実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図7は、第3実施形態に係るプログラム実行装置100を示すブロック図である。図7では、図1と同様の構成について、同様の符号を付している。
(Configuration of program execution device)
Hereinafter, the configuration of the program execution device according to the third embodiment will be described with reference to the drawings. FIG. 7 is a block diagram showing a program execution device 100 according to the third embodiment. In FIG. 7, the same reference numerals are given to the same configurations as those in FIG. 1.

図7に示すように、第2CPU用メモリ140は、データ消去部144をさらに備える。非セキュア実行ドメイン150は、データ共有領域154をさらに備える。セキュア実行ドメイン160は、データ共有領域163に代えて、割込み監視部165及びデータ消去部166を備える。   As shown in FIG. 7, the second CPU memory 140 further includes a data erasing unit 144. The non-secure execution domain 150 further includes a data sharing area 154. The secure execution domain 160 includes an interrupt monitoring unit 165 and a data erasing unit 166 instead of the data sharing area 163.

データ消去部144は、第1CPU110から第2CPU120に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、非セキュア実行ドメイン150の割込みが有効化される前に、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   The data erasing unit 144 deletes the data written in the data sharing area 154 for passing from the first CPU 110 to the second CPU 120. Specifically, the data erasure unit 144 deletes the protection target information written in the data sharing area 154 to be passed from the secure execution domain 160 to the second CPU 120 before the interrupt of the non-secure execution domain 150 is enabled. To do.

データ共有領域154は、データ共有領域163と同様に、第1CPU110に関連付けられており、第1CPU110及び第2CPU120によって共有される領域である。なお、セキュア実行ドメイン160は、データ共有領域154にアクセス可能であることに留意すべきである。   Similar to the data sharing area 163, the data sharing area 154 is associated with the first CPU 110 and is an area shared by the first CPU 110 and the second CPU 120. It should be noted that the secure execution domain 160 can access the data sharing area 154.

ここで、データ共有領域154には、第1CPU110から第2CPU120に渡すためのデータが書き込まれる。すなわち、データ共有領域154には、第2CPU120によってネットワークに送信されるデータが格納される。   Here, data to be transferred from the first CPU 110 to the second CPU 120 is written in the data sharing area 154. That is, data transmitted to the network by the second CPU 120 is stored in the data sharing area 154.

また、データ共有領域154には、第2CPU120から第1CPU110に渡すためのデータが書き込まれる。すなわち、データ共有領域154には、第2CPU120によってネットワークから受信されるデータが格納される。   In addition, data to be transferred from the second CPU 120 to the first CPU 110 is written in the data sharing area 154. That is, data received from the network by the second CPU 120 is stored in the data sharing area 154.

割込み監視部165は、第1CPU110から第2CPU120への割込み、第2CPU120から第1CPU110への外部割込みを監視する。   The interrupt monitoring unit 165 monitors an interrupt from the first CPU 110 to the second CPU 120 and an external interrupt from the second CPU 120 to the first CPU 110.

ここで、割込み監視部165は、セキュア割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する第1無効化部を構成する。また、割込み監視部165は、セキュア外部割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。   Here, the interrupt monitoring unit 165 constitutes a first invalidating unit that invalidates other interrupts (for example, non-secure interrupts and non-secure external interrupts) detected after the secure interrupt is detected. Further, the interrupt monitoring unit 165 invalidates other interrupts (for example, non-secure interrupts and non-secure external interrupts) detected after the secure external interrupt is detected.

割込み監視部165は、保護対象情報がデータ共有領域154から消去された後に、割込み監視部165によって無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する第1有効化部を構成する。   The interrupt monitoring unit 165 first activates another interrupt (for example, a non-secure interrupt or a non-secure external interrupt) invalidated by the interrupt monitoring unit 165 after the protection target information is erased from the data sharing area 154. Configure the validation part.

割込み監視部165は、保護対象情報がデータ共有領域154から消去されるまで、非セキュア実行ドメイン150で実行される処理を停止する実行停止部を構成する。具体的には、割込み監視部165は、セキュア実行ドメイン160から第2CPU120へのセキュア外部割込みが発行されてから、第2CPU120からセキュア実行ドメイン160へのセキュア割込みが検知されるまで、非セキュア実行ドメイン150で実行される処理を停止させて、セキュア実行ドメイン160を維持する。   The interrupt monitoring unit 165 constitutes an execution stopping unit that stops processing executed in the non-secure execution domain 150 until the protection target information is deleted from the data sharing area 154. Specifically, the interrupt monitoring unit 165 receives the secure external interrupt from the secure execution domain 160 to the second CPU 120 until the secure interrupt from the second CPU 120 to the secure execution domain 160 is detected. The process executed at 150 is stopped and the secure execution domain 160 is maintained.

データ消去部166は、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、少なくとも、非セキュア実行ドメイン150の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   The data erasing unit 166 deletes the data written in the data sharing area 154 for passing from the second CPU 120 to the first CPU 110. Specifically, the data erasure unit 166 passes at least the interrupt of the non-secure execution domain 150 (for example, non-secure interrupt or non-secure external interrupt) from the second CPU 120 to the secure execution domain 160 before being enabled. The protection target information written in the data sharing area 154 is deleted.

(プログラム実行装置の動作)
以下において、第3実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図8及び図9は、第3実施形態に係るプログラム実行装置100の動作を示すフロー図である。図8では、図4と同様の処理について、同様のステップ番号が付されている。図9では、図5と同様の処理について、同様のステップ番号が付されている。
(Operation of the program execution device)
The operation of the program execution device according to the third embodiment will be described below with reference to the drawings. 8 and 9 are flowcharts showing the operation of the program execution device 100 according to the third embodiment. In FIG. 8, the same step numbers are assigned to the same processes as in FIG. In FIG. 9, the same step numbers are assigned to the same processes as in FIG.

第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図8を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。   First, a case where data is transferred from the second CPU 120 (an application operating on the second CPU memory 140) to the first CPU 110 (an application operating on the first CPU memory 130) will be described with reference to FIG. Here, a case where protection target information is passed from the second CPU 120 to the secure execution domain 160 will be described.

図8に示すように、ステップ211において、第1CPU110は、他の割込みを無効化する。具体的には、割込み監視部165は、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。   As shown in FIG. 8, in step 211, the first CPU 110 invalidates other interrupts. Specifically, the interrupt monitoring unit 165 invalidates other interrupts (for example, non-secure interrupt and non-secure external interrupt).

ここで、ステップ211の処理は、ステップ210の処理の後、すなわち、セキュア割込みが割込み識別部111によって検知された後に行われることに留意すべきである。   Here, it should be noted that the processing in step 211 is performed after the processing in step 210, that is, after a secure interrupt is detected by the interrupt identification unit 111.

ステップ221において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   In step 221, the first CPU 110 deletes the data written in the data sharing area 154. Specifically, the data erasure unit 166 deletes the protection target information written in the data sharing area 154 for transfer from the second CPU 120 to the secure execution domain 160.

ここで、ステップ221の処理は、ステップ240の処理の前、すなわち、セキュア外部割込みが発行される前に行われることに留意すべきである。   Here, it should be noted that the process of step 221 is performed before the process of step 240, that is, before the secure external interrupt is issued.

ステップ242において、第1CPU110は、他の割込みを有効化する。具体的には、割込み監視部165は、ステップ211で無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。   In step 242, the first CPU 110 enables another interrupt. Specifically, the interrupt monitoring unit 165 enables another interrupt (for example, a non-secure interrupt or a non-secure external interrupt) invalidated in step 211.

ここで、ステップ241の処理は、ステップ240の処理の後、すなわち、セキュア外部割込みが発行された後に行われることに留意すべきである。   Here, it should be noted that the process of step 241 is performed after the process of step 240, that is, after a secure external interrupt is issued.

第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図9を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。   Secondly, a case where data is transferred from the first CPU 110 (an application operating on the first CPU memory 130) to the second CPU 120 (an application operating on the second CPU memory 140) will be described with reference to FIG. Here, a case where protection target information is transferred from the secure execution domain 160 to the second CPU 120 will be described.

図9に示すように、ステップ401において、第1CPU110は、他の割込みを無効化する。具体的には、割込み監視部165は、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。   As shown in FIG. 9, in step 401, the first CPU 110 invalidates other interrupts. Specifically, the interrupt monitoring unit 165 invalidates other interrupts (for example, non-secure interrupt and non-secure external interrupt).

ここで、ステップ401の処理は、ステップ410の処理の前、すなわち、セキュア実行ドメイン160が保護対象情報をデータ共有領域154に書き込む処理の前に行われることに留意すべきである。   Here, it should be noted that the process in step 401 is performed before the process in step 410, that is, before the process in which the secure execution domain 160 writes the protection target information in the data sharing area 154.

ステップ421において、第1CPU110は、セキュア実行ドメイン160を維持する状態(ドメイン維持状態)をセットする。具体的には、割込み監視部165は、ドメイン維持状態をセットして、非セキュア実行ドメイン150で実行される処理を停止させる。   In step 421, the first CPU 110 sets a state for maintaining the secure execution domain 160 (domain maintenance state). Specifically, the interrupt monitoring unit 165 sets the domain maintenance state and stops processing executed in the non-secure execution domain 150.

ステップ541において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   In step 541, the second CPU 120 deletes the data written in the data sharing area 154. Specifically, the data erasure unit 144 deletes the protection target information written in the data sharing area 154 to be transferred from the secure execution domain 160 to the second CPU 120.

なお、ステップ541の処理は、ステップ550の処理の前、すなわち、データ受信完了フラグに“承認”がセットされる前に行われることに留意すべきである。   It should be noted that the processing in step 541 is performed before the processing in step 550, that is, before “approval” is set in the data reception completion flag.

ステップ611において、第1CPU110は、セキュア実行ドメイン160を維持する状態(ドメイン維持状態)を解除する。具体的には、割込み監視部165は、ドメイン維持状態を解除して、非セキュア実行ドメイン150で実行される処理を再開させる。   In step 611, the first CPU 110 cancels the state for maintaining the secure execution domain 160 (domain maintenance state). Specifically, the interrupt monitoring unit 165 releases the domain maintenance state and restarts the processing executed in the non-secure execution domain 150.

なお、ステップ611の処理は、ステップ610の処理の後、セキュア割込みが検知された後に行われるに留意すべきである。   It should be noted that the processing in step 611 is performed after the processing in step 610 and after a secure interrupt is detected.

ステップ621において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、ステップ541で削除されなかった残りの保護対象情報を削除する。   In step 621, the first CPU 110 deletes the data written in the data sharing area 154. Specifically, the data erasure unit 166 deletes the remaining protection target information that has not been deleted in Step 541.

なお、ステップ621の処理は、ステップ620の処理の後、すなわち、データ受信完了フラグに“承認”がセットされていることが確認された後に行われる。   The process of step 621 is performed after the process of step 620, that is, after it is confirmed that “approval” is set in the data reception completion flag.

ステップ622において、第1CPU110は、他の割込みを有効化する。具体的には、割込み監視部165は、ステップ401で無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。   In step 622, the first CPU 110 enables another interrupt. Specifically, the interrupt monitoring unit 165 enables other interrupts invalidated in step 401 (for example, non-secure interrupts and non-secure external interrupts).

(作用及び効果)
第3実施形態では、割込み監視部165は、セキュア割込みが検出された後に検出された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を無効化する。従って、データ共有領域154が非セキュア実行ドメイン150に設けられていても、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。
(Function and effect)
In the third embodiment, the interrupt monitoring unit 165 invalidates other interrupts detected after the secure interrupt is detected (for example, a non-secure interrupt or a non-secure external interrupt). Therefore, even if the data sharing area 154 is provided in the non-secure execution domain 150, information (protection target information) to be processed in the secure execution domain 160 can be protected from the non-secure execution domain 150.

第3実施形態では、割込み監視部165は、保護対象情報がデータ共有領域154から消去された後に、割込み監視部165によって無効化された他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)を有効化する。従って、セキュア実行ドメイン160及び非セキュア実行ドメイン150を並列で動作させることができる。   In the third embodiment, the interrupt monitoring unit 165 has another interrupt (for example, a non-secure interrupt or a non-secure external interrupt) invalidated by the interrupt monitoring unit 165 after the protection target information is erased from the data sharing area 154. Activate. Therefore, the secure execution domain 160 and the non-secure execution domain 150 can be operated in parallel.

第3実施形態では、割込み監視部165は、保護対象情報がデータ共有領域154から消去されるまで、非セキュア実行ドメイン150で実行される処理を停止する。従って、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。   In the third embodiment, the interrupt monitoring unit 165 stops processing executed in the non-secure execution domain 150 until the protection target information is deleted from the data sharing area 154. Therefore, information (protection target information) to be processed in the secure execution domain 160 can be protected from the non-secure execution domain 150.

[第4実施形態]
以下において、第4実施形態について、図面を参照しながら説明する。以下においては、第3実施形態との相違点について主として説明する。
[Fourth Embodiment]
Hereinafter, a fourth embodiment will be described with reference to the drawings. In the following, differences from the third embodiment will be mainly described.

具体的には、第3実施形態では、データ共有領域154に書き込まれた保護対象情報を受信側が削除する。第4実施形態では、データ共有領域154に書き込まれた保護対象情報を受信側及び送信側の双方が削除する。   Specifically, in the third embodiment, the receiving side deletes the protection target information written in the data sharing area 154. In the fourth embodiment, both the reception side and the transmission side delete the protection target information written in the data sharing area 154.

(プログラム実行装置の構成)
以下において、第4実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図10は、第4実施形態に係るプログラム実行装置100を示すブロック図である。図10では、図7と同様の構成について、同様の符号を付している。
(Configuration of program execution device)
The configuration of the program execution device according to the fourth embodiment will be described below with reference to the drawings. FIG. 10 is a block diagram showing a program execution device 100 according to the fourth embodiment. In FIG. 10, the same reference numerals are given to the same configurations as those in FIG. 7.

図10に示すように、第2CPU用メモリ140は、送信データ消去部145をさらに備える。セキュア実行ドメイン160は、送信データ消去部167をさらに備える。   As shown in FIG. 10, the second CPU memory 140 further includes a transmission data erasing unit 145. The secure execution domain 160 further includes a transmission data erasing unit 167.

送信データ消去部145は、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部145は、セキュア実行ドメイン160によってデータ受信完了フラグに“承認”がセットされた場合に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   The transmission data erasure unit 145 deletes the data written in the data sharing area 154 for delivery from the second CPU 120 to the first CPU 110. Specifically, the transmission data erasure unit 145 is written in the data sharing area 154 to be passed from the second CPU 120 to the secure execution domain 160 when the data execution completion flag is set by the secure execution domain 160. Delete the protected information.

送信データ消去部167は、第1CPU110から第2CPU120に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部167は、第2CPU120によってデータ受信完了フラグに“承認”がセットされた場合に、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   The transmission data erasure unit 167 deletes the data written in the data sharing area 154 for passing from the first CPU 110 to the second CPU 120. Specifically, the transmission data erasure unit 167 protects the data written in the data sharing area 154 to be passed from the secure execution domain 160 to the second CPU 120 when “approval” is set in the data reception completion flag by the second CPU 120. Delete the target information.

(プログラム実行装置の動作)
以下において、第4実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図11及び図12は、第4実施形態に係るプログラム実行装置100の動作を示すフロー図である。図11では、図8と同様の処理について、同様のステップ番号が付されている。図12では、図9と同様の処理について、同様のステップ番号が付されている。
(Operation of the program execution device)
The operation of the program execution device according to the fourth embodiment will be described below with reference to the drawings. 11 and 12 are flowcharts showing the operation of the program execution device 100 according to the fourth embodiment. In FIG. 11, the same step numbers are assigned to the same processes as in FIG. In FIG. 12, the same step numbers are assigned to the same processes as in FIG.

第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図11を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。   First, a case where data is transferred from the second CPU 120 (an application operating on the second CPU memory 140) to the first CPU 110 (an application operating on the first CPU memory 130) will be described with reference to FIG. Here, a case where protection target information is passed from the second CPU 120 to the secure execution domain 160 will be described.

図11に示すように、ステップ241において、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部166は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   As shown in FIG. 11, in step 241, the first CPU 110 deletes the data written in the data sharing area 154. Specifically, the data erasure unit 166 deletes the protection target information written in the data sharing area 154 for transfer from the second CPU 120 to the secure execution domain 160.

ここで、ステップ241の処理は、図8に示すステップ221の処理と同様である。図11では、図8に示すステップ221の処理に代えて、ステップ241の処理が行われる。   Here, the process of step 241 is the same as the process of step 221 shown in FIG. In FIG. 11, the process of step 241 is performed instead of the process of step 221 shown in FIG.

ステップ241の処理は、ステップ240の処理の後、すなわち、セキュア外部割込みが発行された後に行われることに留意すべきである。但し、ステップ241の処理は、ステップ242の処理の前、すなわち、他の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に行われる。   It should be noted that the process of step 241 is performed after the process of step 240, that is, after a secure external interrupt is issued. However, the process in step 241 is performed before the process in step 242, that is, before another interrupt (for example, a non-secure interrupt or a non-secure external interrupt) is enabled.

ステップ341において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部145は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   In step 341, the second CPU 120 deletes the data written in the data sharing area 154. Specifically, the transmission data erasure unit 145 deletes the protection target information written in the data sharing area 154 for transfer from the second CPU 120 to the secure execution domain 160.

ここで、ステップ341の処理は、ステップ340の処理の後、すなわち、データ受信完了フラグに“承認”がセットされた後に行われることに留意すべきである。   Here, it should be noted that the process of step 341 is performed after the process of step 340, that is, after “approval” is set in the data reception completion flag.

このように、第4実施形態では、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報は、送信データ消去部145及びデータ消去部166の双方によって共同で削除される。   As described above, in the fourth embodiment, the protection target information written in the data sharing area 154 to be transferred from the second CPU 120 to the secure execution domain 160 is jointly deleted by both the transmission data erasure unit 145 and the data erasure unit 166. Is done.

第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図12を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。   Second, a case where data is transferred from the first CPU 110 (an application operating on the first CPU memory 130) to the second CPU 120 (an application operating on the second CPU memory 140) will be described with reference to FIG. Here, a case where protection target information is transferred from the secure execution domain 160 to the second CPU 120 will be described.

図12に示すように、ステップ561において、第2CPU120は、データ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部144は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   As shown in FIG. 12, in step 561, the second CPU 120 deletes the data written in the data sharing area 154. Specifically, the data erasure unit 144 deletes the protection target information written in the data sharing area 154 to be transferred from the secure execution domain 160 to the second CPU 120.

ここで、ステップ561の処理は、図9に示すステップ541の処理と同様である。図12では、図9に示すステップ541の処理に代えて、ステップ561の処理が行われる。   Here, the process of step 561 is the same as the process of step 541 shown in FIG. In FIG. 12, the process of step 561 is performed instead of the process of step 541 shown in FIG.

ステップ561の処理は、ステップ560の処理の後、すなわち、セキュア実行ドメイン160への割込みであるセキュア割込みが発行された後に行われることに留意すべきである。   It should be noted that the processing in step 561 is performed after the processing in step 560, that is, after a secure interrupt that is an interrupt to the secure execution domain 160 is issued.

ステップ621Aにおいて、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、送信データ消去部167は、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   In step 621A, the first CPU 110 deletes the data written in the data sharing area 154. Specifically, the transmission data erasure unit 167 deletes the protection target information written in the data sharing area 154 for transfer from the secure execution domain 160 to the second CPU 120.

ここで、ステップ341の処理は、ステップ340の処理の後、すなわち、データ受信完了フラグに“承認”がセットされた後に行われることに留意すべきである。   Here, it should be noted that the process of step 341 is performed after the process of step 340, that is, after “approval” is set in the data reception completion flag.

なお、ステップ621Aの処理は、図9に示すステップ621の処理と類似する。しかしながら、第4実施形態では、セキュア実行ドメイン160から第2CPU120に渡すためにデータ共有領域154に書き込まれた保護対象情報は、データ消去部144及び送信データ消去部167の双方によって共同で削除される。   Note that the processing in step 621A is similar to the processing in step 621 shown in FIG. However, in the fourth embodiment, the protection target information written in the data sharing area 154 to be passed from the secure execution domain 160 to the second CPU 120 is jointly deleted by both the data erasure unit 144 and the transmission data erasure unit 167. .

(作用及び効果)
第4実施形態では、データ共有領域154に書き込まれた保護対象情報は、送信側及び受信側の双方によって削除される。従って、他の割込みを短時間で有効化することができる。
(Function and effect)
In the fourth embodiment, the protection target information written in the data sharing area 154 is deleted by both the transmission side and the reception side. Therefore, other interrupts can be validated in a short time.

[第5実施形態]
以下において、第5実施形態について、図面を参照しながら説明する。以下においては、第3実施形態との相違点について主として説明する。
[Fifth Embodiment]
Hereinafter, a fifth embodiment will be described with reference to the drawings. In the following, differences from the third embodiment will be mainly described.

具体的には、第3実施形態では、データ共有領域154に書き込まれた保護対象情報は、セキュア実行ドメイン160によって削除される。第5実施形態では、データ共有領域154に書き込まれた保護対象情報は、セキュア実行ドメイン160の依頼に応じて、非セキュア実行ドメイン150によってセキュア実行ドメイン160に渡される。   Specifically, in the third embodiment, the protection target information written in the data sharing area 154 is deleted by the secure execution domain 160. In the fifth embodiment, the protection target information written in the data sharing area 154 is passed to the secure execution domain 160 by the non-secure execution domain 150 in response to a request from the secure execution domain 160.

(プログラム実行装置の構成)
以下において、第5実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図13は、第5実施形態に係るプログラム実行装置100を示すブロック図である。図13では、図7と同様の構成について、同様の符号を付している。
(Configuration of program execution device)
The configuration of the program execution device according to the fifth embodiment will be described below with reference to the drawings. FIG. 13 is a block diagram showing a program execution device 100 according to the fifth embodiment. In FIG. 13, the same reference numerals are given to the same components as those in FIG.

図13に示すように、非セキュア実行ドメイン150は、データ消去部155をさらに備える。セキュア実行ドメイン160は、データ消去部166に代えて、依頼部168及び完全性検証部169を有する。   As shown in FIG. 13, the non-secure execution domain 150 further includes a data erasure unit 155. The secure execution domain 160 includes a request unit 168 and an integrity verification unit 169 instead of the data erasure unit 166.

データ消去部155は、データ消去部166と同様に、第2CPU120から第1CPU110に渡すためにデータ共有領域154に書き込まれたデータを削除する。具体的には、データ消去部155は、少なくとも、非セキュア実行ドメイン150の割込み(例えば、非セキュア割込みや非セキュア外部割込み)が有効化される前に、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   Similar to the data erasure unit 166, the data erasure unit 155 deletes data written in the data sharing area 154 to be transferred from the second CPU 120 to the first CPU 110. Specifically, the data erasure unit 155 passes from the second CPU 120 to the secure execution domain 160 at least before an interrupt (for example, non-secure interrupt or non-secure external interrupt) of the non-secure execution domain 150 is enabled. The protection target information written in the data sharing area 154 is deleted.

依頼部168は、セキュア実行ドメイン160で処理するデータを第2CPU120に渡すデータ送信処理を非セキュア実行ドメイン150に依頼する。同様に、依頼部168は、セキュア実行ドメイン160で処理するデータを第2CPU120から取得するデータ取得処理を非セキュア実行ドメイン150に依頼する。   The request unit 168 requests the non-secure execution domain 150 to perform data transmission processing for passing data to be processed in the secure execution domain 160 to the second CPU 120. Similarly, the request unit 168 requests the non-secure execution domain 150 for data acquisition processing for acquiring data to be processed in the secure execution domain 160 from the second CPU 120.

具体的には、依頼部168は、データ共有領域154に書き込まれる保護対象情報を第2CPU120に渡すデータ送信処理を非信頼アプリケーション処理部151に依頼する。同様に、依頼部168は、データ共有領域154に書き込まれ保護対象情報をセキュア実行ドメイン160に渡すデータ取得処理を非信頼アプリケーション処理部151に依頼する。   Specifically, the request unit 168 requests the untrusted application processing unit 151 to perform data transmission processing for passing the protection target information written in the data sharing area 154 to the second CPU 120. Similarly, the request unit 168 requests the untrusted application processing unit 151 to perform a data acquisition process that is written in the data sharing area 154 and passes the protection target information to the secure execution domain 160.

なお、依頼部168は、非セキュア実行ドメイン150に保護対象情報を渡す。同様に、依頼部168は、非セキュア実行ドメイン150から保護対象情報を取得する。   The request unit 168 passes the protection target information to the non-secure execution domain 150. Similarly, the request unit 168 acquires protection target information from the non-secure execution domain 150.

完全性検証部169は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。メモリイメージの完全性の検証は、正しいメモリイメージとの比較、正しいメモリイメージから導出されたハッシュ値との比較によって行われる。   The integrity verification unit 169 verifies the integrity of an untrusted application (untrusted program) operating in the unsecure execution domain 150. Specifically, the integrity verification unit 169 verifies the integrity of the memory image on the non-secure execution domain 150. Verification of the integrity of the memory image is performed by comparison with a correct memory image and a hash value derived from the correct memory image.

(プログラム実行装置の動作)
以下において、第5実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図14及び図15は、第5実施形態に係るプログラム実行装置100の動作を示すフロー図である。図14では、図8と同様の処理について、同様のステップ番号が付されている。図15では、図9と同様の処理について、同様のステップ番号が付されている。
(Operation of the program execution device)
The operation of the program execution device according to the fifth embodiment will be described below with reference to the drawings. 14 and 15 are flowcharts showing the operation of the program execution device 100 according to the fifth embodiment. In FIG. 14, the same step numbers are assigned to the same processes as in FIG. In FIG. 15, the same step numbers are assigned to the same processes as in FIG.

第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図14を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。   First, a case where data is transferred from the second CPU 120 (an application operating on the second CPU memory 140) to the first CPU 110 (an application operating on the first CPU memory 130) will be described with reference to FIG. Here, a case where protection target information is passed from the second CPU 120 to the secure execution domain 160 will be described.

ステップ212において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。   In step 212, the first CPU 110 verifies the integrity of the untrusted application (untrusted program) operating in the unsecure execution domain 150. Specifically, the integrity verification unit 169 verifies the integrity of the memory image on the non-secure execution domain 150.

ステップ213において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)が改竄されているか否かを安定する。改竄が無い場合には、ステップ214の処理が行われる。改竄がある場合には、一連の処理を終了する。   In step 213, the first CPU 110 stabilizes whether or not an untrusted application (untrusted program) operating in the unsecure execution domain 150 has been tampered with. If there is no falsification, the process of step 214 is performed. If there is tampering, the series of processing ends.

ステップ214において、第1CPU110は、セキュア実行ドメイン160で処理するデータを第2CPU120から取得するデータ取得処理を非セキュア実行ドメイン150に依頼する。具体的には、依頼部168は、データ共有領域154に書き込まれる保護対象情報をセキュア実行ドメイン160に渡すデータ取得処理を非信頼アプリケーション処理部151に依頼する。   In step 214, the first CPU 110 requests the non-secure execution domain 150 for data acquisition processing for acquiring data to be processed in the secure execution domain 160 from the second CPU 120. Specifically, the request unit 168 requests the untrusted application processing unit 151 to perform data acquisition processing for passing the protection target information written in the data sharing area 154 to the secure execution domain 160.

ステップ220Xにおいて、第1CPU110は、データ共有領域154からデータを読み出す。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、データ共有領域154から保護対象情報を読み出す。   In step 220X, the first CPU 110 reads data from the data sharing area 154. Specifically, the untrusted application processing unit 151 of the non-secure execution domain 150 reads the protection target information from the data sharing area 154.

ステップ221Xにおいて、第1CPU110は、データ共有領域154に書き込まれたデータを削除する。具体的には、非セキュア実行ドメイン150のデータ消去部155は、第2CPU120からセキュア実行ドメイン160に渡すためにデータ共有領域154に書き込まれた保護対象情報を削除する。   In step 221X, the first CPU 110 deletes the data written in the data sharing area 154. Specifically, the data erasure unit 155 of the non-secure execution domain 150 deletes the protection target information written in the data sharing area 154 for transfer from the second CPU 120 to the secure execution domain 160.

ステップ230Xにおいて、第1CPU110は、データ共有領域154から読み出されたデータに対応付けられたデータ受信完了フラグに“承認”をセットする。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、保護対象情報に対応付けられたデータ受信完了フラグに“承認”をセットする。   In step 230 </ b> X, the first CPU 110 sets “approval” to the data reception completion flag associated with the data read from the data sharing area 154. Specifically, the untrusted application processing unit 151 of the non-secure execution domain 150 sets “approval” to the data reception completion flag associated with the protection target information.

なお、ステップ220X〜ステップ230Xの処理は、セキュア実行ドメイン160ではなくて、非セキュア実行ドメイン150によって行われることに留意すべきである。   It should be noted that the processing from Step 220X to Step 230X is performed by the non-secure execution domain 150, not the secure execution domain 160.

ステップ231において、セキュア実行ドメイン160は、非セキュア実行ドメイン150からデータを受信する。具体的には、信頼アプリケーション処理部161は、非信頼アプリケーション処理部151から保護対象情報を受信する。   In step 231, the secure execution domain 160 receives data from the non-secure execution domain 150. Specifically, the trusted application processing unit 161 receives the protection target information from the untrusted application processing unit 151.

第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図15を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。   Second, a case where data is transferred from the first CPU 110 (an application operating on the first CPU memory 130) to the second CPU 120 (an application operating on the second CPU memory 140) will be described with reference to FIG. Here, a case where protection target information is transferred from the secure execution domain 160 to the second CPU 120 will be described.

図15に示すように、ステップ402において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。具体的には、完全性検証部169は、非セキュア実行ドメイン150上のメモリイメージの完全性を検証する。   As shown in FIG. 15, in step 402, the first CPU 110 verifies the integrity of an untrusted application (untrusted program) operating in the unsecure execution domain 150. Specifically, the integrity verification unit 169 verifies the integrity of the memory image on the non-secure execution domain 150.

ステップ403において、第1CPU110は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)が改竄されているか否かを安定する。改竄が無い場合には、ステップ404の処理が行われる。改竄がある場合には、一連の処理を終了する。   In step 403, the first CPU 110 stabilizes whether or not an untrusted application (untrusted program) operating in the unsecure execution domain 150 has been tampered with. If there is no falsification, the process of step 404 is performed. If there is tampering, the series of processing ends.

ステップ404において、第1CPU110は、セキュア実行ドメイン160で処理するデータを第2CPU120に渡すデータ送信処理を非セキュア実行ドメイン150に依頼する。具体液には、依頼部168は、データ共有領域154に書き込まれる保護対象情報を第2CPU120に渡すデータ送信処理を非信頼アプリケーション処理部151に依頼する。   In step 404, the first CPU 110 requests the non-secure execution domain 150 to perform data transmission processing for passing data to be processed in the secure execution domain 160 to the second CPU 120. For the specific liquid, the request unit 168 requests the untrusted application processing unit 151 to perform data transmission processing for passing the protection target information written in the data sharing area 154 to the second CPU 120.

ステップ410Xにおいて、第1CPU110は、第2CPU120によってネットワークに送信されるデータをデータ共有領域154に書き込む。具体的には、非セキュア実行ドメイン150の非信頼アプリケーション処理部151は、第2CPU120に渡す保護対象情報をデータ共有領域154に書き込む。   In step 410X, the first CPU 110 writes the data transmitted to the network by the second CPU 120 in the data sharing area 154. Specifically, the untrusted application processing unit 151 of the non-secure execution domain 150 writes the protection target information to be passed to the second CPU 120 in the data sharing area 154.

なお、ステップ410Xの処理は、セキュア実行ドメイン160ではなくて、非セキュア実行ドメイン150によって行われることに留意すべきである。   It should be noted that the processing of step 410X is performed by the non-secure execution domain 150, not the secure execution domain 160.

(作用及び効果)
第4実施形態では、完全性検証部169は、非セキュア実行ドメイン150で動作する非信頼アプリケーション(非信頼プログラム)の完全性を検証する。依頼部168は、非信頼アプリケーション(非信頼プログラム)の改竄が無ければ、保護対象情報の送信又は保護対象情報の受信を非セキュア実行ドメイン150に依頼する。
(Function and effect)
In the fourth embodiment, the integrity verification unit 169 verifies the integrity of an untrusted application (untrusted program) that operates in the unsecure execution domain 150. If there is no falsification of the untrusted application (untrusted program), the request unit 168 requests the non-secure execution domain 150 to transmit the protection target information or receive the protection target information.

従って、保護対象情報の送信又は保護対象情報の受信を非セキュア実行ドメイン150によって行う場合であっても、セキュア実行ドメイン160で処理すべき情報(保護対象情報)を非セキュア実行ドメイン150から保護することができる。また、データ共有領域154にセキュア実行ドメイン160が直接的にアクセスできなくても、セキュア実行ドメイン160が保護対象情報を取得することができる。   Therefore, even when the protection target information is transmitted or the protection target information is received by the non-secure execution domain 150, the information (protection target information) to be processed in the secure execution domain 160 is protected from the non-secure execution domain 150. be able to. Further, even if the secure execution domain 160 cannot directly access the data sharing area 154, the secure execution domain 160 can acquire the protection target information.

[第6実施形態]
以下において、第6実施形態について、図面を参照しながら説明する。以下においては、第1実施形態との相違点について主として説明する。
[Sixth Embodiment]
The sixth embodiment will be described below with reference to the drawings. In the following, differences from the first embodiment will be mainly described.

具体的には、第6実施形態では、第2CPU120(第2CPU用メモリ140)は、非保護対象情報及び保護対象情報の分離、非保護対象情報及び保護対象情報の結合を行う。なお、第6実施形態は、第1実施形態〜第5実施形態のいずれにも適用できることに留意すべきである。   Specifically, in the sixth embodiment, the second CPU 120 (second CPU memory 140) separates the non-protection target information and the protection target information, and combines the non-protection target information and the protection target information. It should be noted that the sixth embodiment can be applied to any of the first to fifth embodiments.

(プログラム実行装置の構成)
以下において、第6実施形態に係るプログラム実行装置の構成について、図面を参照しながら説明する。図16は、第6実施形態に係るプログラム実行装置100を示すブロック図である。なお、図16では、第2CPU120及び第2CPU用メモリ140のみが示されており、他の構成が省略されていることに留意すべきである。また、図16では、図1と同様の構成について、同様の符号を付している。
(Configuration of program execution device)
The configuration of the program execution device according to the sixth embodiment will be described below with reference to the drawings. FIG. 16 is a block diagram showing a program execution device 100 according to the sixth embodiment. In FIG. 16, it should be noted that only the second CPU 120 and the second CPU memory 140 are shown, and other configurations are omitted. In FIG. 16, the same reference numerals are given to the same configurations as those in FIG. 1.

図16に示すように、第2CPU用メモリ140は、データ分離部146及びデータ結合部147をさらに備える。   As shown in FIG. 16, the second CPU memory 140 further includes a data separator 146 and a data combiner 147.

データ分離部146は、非保護対象情報と保護対象情報とを分離する。具体的には、データ分離部146は、通信アプリケーション処理部141から受け取った受信データを非保護対象情報と保護対象情報とに分離する。通信アプリケーション処理部141は、非保護対象情報と保護対象情報とが結合された受信データをネットワークから受信する。   The data separator 146 separates unprotected information from protected information. Specifically, the data separation unit 146 separates the received data received from the communication application processing unit 141 into non-protection target information and protection target information. The communication application processing unit 141 receives, from the network, received data in which the non-protection target information and the protection target information are combined.

なお、データ分離部146は、非保護対象情報を非セキュア実行ドメイン150に渡す。データ分離部146は、保護対象情報をセキュア実行ドメイン160に渡す。   The data separation unit 146 passes the non-protection target information to the non-secure execution domain 150. The data separator 146 passes the protection target information to the secure execution domain 160.

データ結合部147は、非保護対象情報と保護対象情報とを結合する。具体的には、データ結合部147は、非保護対象情報と保護対象情報とを結合して、非保護対象情報と保護対象情報とが結合された送信データを通信アプリケーション処理部141に渡す。通信アプリケーション処理部141は、非保護対象情報と保護対象情報とが結合された送信データをネットワークに受信する。   The data combining unit 147 combines the non-protection target information and the protection target information. Specifically, the data combining unit 147 combines the non-protection target information and the protection target information, and passes the transmission data in which the non-protection target information and the protection target information are combined to the communication application processing unit 141. The communication application processing unit 141 receives transmission data in which the non-protection target information and the protection target information are combined to the network.

なお、データ結合部147は、非保護対象情報を非セキュア実行ドメイン150から受け取る。データ分離部146は、保護対象情報をセキュア実行ドメイン160から受け取る。   The data combining unit 147 receives the non-protection target information from the non-secure execution domain 150. The data separator 146 receives the protection target information from the secure execution domain 160.

(プログラム実行装置の動作)
以下において、第6実施形態に係るプログラム実行装置の動作について、図面を参照しながら説明する。図17及び図18は、第6実施形態に係るプログラム実行装置100の動作を示すフロー図である。図17では、図4と同様の処理について、同様のステップ番号が付されている。図18では、図5と同様の処理について、同様のステップ番号が付されている。
(Operation of the program execution device)
The operation of the program execution device according to the sixth embodiment will be described below with reference to the drawings. 17 and 18 are flowcharts showing the operation of the program execution device 100 according to the sixth embodiment. In FIG. 17, the same step numbers are assigned to the processes similar to those in FIG. In FIG. 18, the same step numbers are assigned to the processes similar to those in FIG. 5.

第1に、第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)から第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)にデータを渡すケースについて、図17を参照しながら説明する。ここでは、第2CPU120からセキュア実行ドメイン160に保護対象情報を渡すケースについて説明する。   First, a case where data is transferred from the second CPU 120 (an application operating on the second CPU memory 140) to the first CPU 110 (an application operating on the first CPU memory 130) will be described with reference to FIG. Here, a case where protection target information is passed from the second CPU 120 to the secure execution domain 160 will be described.

図17に示すように、ステップ101において、第2CPU120は、ネットワークから受信したデータを、非保護対象情報と保護対象情報とに分離する。具体的には、データ分離部146は、通信アプリケーション処理部141から受け取った受信データを非保護対象情報と保護対象情報とに分離する。   As shown in FIG. 17, in step 101, the second CPU 120 separates data received from the network into non-protection target information and protection target information. Specifically, the data separation unit 146 separates the received data received from the communication application processing unit 141 into non-protection target information and protection target information.

第2に、第1CPU110(第1CPU用メモリ130上で動作するアプリケーション)から第2CPU120(第2CPU用メモリ140上で動作するアプリケーション)にデータを渡すケースについて、図18を参照しながら説明する。ここでは、セキュア実行ドメイン160から第2CPU120に保護対象情報を渡すケースについて説明する。   Secondly, a case where data is transferred from the first CPU 110 (an application operating on the first CPU memory 130) to the second CPU 120 (an application operating on the second CPU memory 140) will be described with reference to FIG. Here, a case where protection target information is transferred from the secure execution domain 160 to the second CPU 120 will be described.

図18に示すように、ステップ561において、第2CPU120は、非保護対象情報と保護対象情報とを結合する。具体的には、データ結合部147は、非保護対象情報と保護対象情報とを結合して、非保護対象情報と保護対象情報とが結合された送信データを通信アプリケーション処理部141に渡す。   As shown in FIG. 18, in step 561, the second CPU 120 combines the non-protection target information and the protection target information. Specifically, the data combining unit 147 combines the non-protection target information and the protection target information, and passes the transmission data in which the non-protection target information and the protection target information are combined to the communication application processing unit 141.

[その他の実施形態]
本発明は上述した実施形態によって説明したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
[Other Embodiments]
Although the present invention has been described with reference to the above-described embodiments, it should not be understood that the descriptions and drawings constituting a part of this disclosure limit the present invention. From this disclosure, various alternative embodiments, examples and operational techniques will be apparent to those skilled in the art.

実施形態では、データ共有領域に格納されるデータを読み込むと、データ受信完了フラグに“承認”をセットする。しかしながら、実施形態は、これに限定されるものではない。データ受信完了フラグを用いずに、データ共有領域に格納されるデータを読み込むと、データ共有領域に格納されるデータを直ちに削除してもよい。   In the embodiment, when data stored in the data sharing area is read, “approval” is set to the data reception completion flag. However, the embodiment is not limited to this. If data stored in the data sharing area is read without using the data reception completion flag, the data stored in the data sharing area may be immediately deleted.

第2実施形態では、非セキュア共有領域153に格納されるデータには割込み識別フラグが対応付けられる。しかしながら、実施形態は、これに限定されるものではない。例えば、非セキュア共有領域153に格納されるデータのヘッダに、割込み識別フラグが設けられていてもよい。   In the second embodiment, an interrupt identification flag is associated with data stored in the non-secure shared area 153. However, the embodiment is not limited to this. For example, an interrupt identification flag may be provided in the header of data stored in the non-secure shared area 153.

その他の実施形態として、第1実施形態〜第6実施形態の中から、2以上の実施形態を組み合わせてもよい。   As other embodiments, two or more embodiments may be combined among the first to sixth embodiments.

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・・・完全性検証部   DESCRIPTION OF SYMBOLS 100 ... Program execution apparatus, 110 ... 1st CPU, 111 ... Interrupt identification part, 120 ... 2nd CPU, 121 ... External interrupt identification part, 130 ... Memory for 1st CPU, 140. ..Second CPU memory 141... Communication application processing unit 142... Secure interrupt processing unit 143... Non-secure interrupt processing unit 144 .. data erasing unit 145. 146... Data separation unit 147... Data combination unit 150... Non-secure execution domain 151... Untrusted application processing unit 152 152 Non-secure external interrupt processing unit 153. .. Non-secure shared area, 154... Data shared area, 155... Data erasure unit, 160. Trust application processing unit 162... Secure external interrupt processing unit 163... Data sharing area 164... Secure sharing area 165... Interrupt monitoring unit 166. Transmission data erasure unit, 168 ... request unit, 169 ... integrity verification unit

Claims (11)

保護対象情報を処理するセキュア実行ドメイン及び非保護対象情報を処理する非セキュア実行ドメインに関連付けられた第1CPUと、ネットワークと通信を行う通信処理を実行する通信ドメインに関連付けられた第2CPUとを有する携帯端末であって、
前記第1CPUに関連付けられており、前記第1CPU及び前記第2CPUが共有するメモリ領域であるデータ共有領域を備え、
前記第1CPUは、前記第2CPUから前記セキュア実行ドメインへの割込みであるセキュア割込みと、前記第2CPUから前記非セキュア実行ドメインへの割込みである非セキュア割込みとを識別する第1CPU側識別部を有しており、
前記第2CPUは、前記セキュア実行ドメインから前記第2CPUへの外部割込みであるセキュア外部割込みと、前記非セキュア実行ドメインから前記第2CPUへの割込みである非セキュア外部割込みとを識別する第2CPU側識別部を有しており、
前記セキュア実行ドメインは、前記第2CPUから前記第1CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護することを特徴とする携帯端末。
A secure execution domain for processing protection target information, a first CPU associated with a non-secure execution domain for processing non-protection target information, and a second CPU associated with a communication domain for performing communication processing for communicating with a network A mobile device,
A data sharing area associated with the first CPU and shared by the first CPU and the second CPU;
The first CPU has a first CPU side identification unit for identifying a secure interrupt that is an interrupt from the second CPU to the secure execution domain and a non-secure interrupt that is an interrupt from the second CPU to the non-secure execution domain. And
The second CPU side identification for identifying a secure external interrupt that is an external interrupt from the secure execution domain to the second CPU and a non-secure external interrupt that is an interrupt from the non-secure execution domain to the second CPU Have
The portable terminal characterized in that the secure execution domain protects the protection target information written in the data sharing area for passing from the second CPU to the first CPU from the non-secure execution domain.
前記セキュア実行ドメインは、前記第1CPUから前記第2CPUに渡すために前記データ共有領域に書き込まれた前記保護対象情報を前記非セキュア実行ドメインから保護することを特徴とする請求項1に記載の携帯端末。   2. The mobile phone according to claim 1, wherein the secure execution domain protects the protection target information written in the data sharing area to be passed from the first CPU to the second CPU from the non-secure execution domain. Terminal. 前記データ共有領域は、前記セキュア実行ドメインに設けられていることを特徴とする請求項1又は請求項2に記載の携帯端末。   The mobile terminal according to claim 1, wherein the data sharing area is provided in the secure execution domain. 前記データ共有領域は、前記セキュア実行ドメインに設けられたセキュア共有領域と、前記非セキュア実行ドメインに設けられた非セキュア共有領域とを含み、
前記第2CPU側識別部は、前記セキュア共有領域及び前記非セキュア共有領域の状態に応じて、前記セキュア外部割込みと非セキュア外部割込みとを識別することを特徴とする請求項1又は請求項2に記載の携帯端末。
The data sharing area includes a secure sharing area provided in the secure execution domain, and a non-secure sharing area provided in the non-secure execution domain,
The said 2nd CPU side identification part identifies the said secure external interrupt and a non-secure external interrupt according to the state of the said secure shared area and the said non-secure shared area, The Claim 1 or Claim 2 characterized by the above-mentioned. The portable terminal described.
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、前記非セキュア実行ドメインに設けられた前記データ共有領域にアクセス可能であり、
前記セキュア実行ドメインは、
前記セキュア割込みが検出された後に検出された前記非セキュア割込みを無効化する第1無効化部と、
前記保護対象情報が前記データ共有領域から消去された後に、前記第1無効化部によって無効化された前記非セキュア割込みを有効化する第1有効化部とを有する請求項1に記載の携帯端末。
The data sharing area is provided in the non-secure execution domain,
The secure execution domain is accessible to the data sharing area provided in the non-secure execution domain;
The secure execution domain is
A first invalidation unit for invalidating the non-secure interrupt detected after the secure interrupt is detected;
The portable terminal according to claim 1, further comprising: a first validation unit that validates the non-secure interrupt invalidated by the first invalidation unit after the protection target information is erased from the data sharing area. .
前記セキュア実行ドメインは、前記保護対象情報が前記データ共有領域から消去されるまで、前記非セキュア実行ドメインで実行される処理を停止する実行停止部とを有することを特徴とする請求項5に記載の携帯端末。   The said secure execution domain has an execution stop part which stops the process performed by the said non-secure execution domain until the said protection object information is erase | eliminated from the said data sharing area | region. Mobile devices. 前記セキュア実行ドメイン及び前記第2CPUは、前記データ共有領域に書き込まれた前記保護対象情報を共同で消去することを特徴とする請求項5又は請求項6に記載の携帯端末。   The portable terminal according to claim 5 or 6, wherein the secure execution domain and the second CPU jointly erase the protection target information written in the data sharing area. 前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、
前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第1検証部と、
前記第2CPUによって前記データ共有領域に書き込まれる前記保護対象情報を前記セキュア実行ドメインに渡すデータ取得処理を前記非セキュア実行ドメインに依頼する第1依頼部とを有しており、
前記第1依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ取得処理を前記非セキュア実行ドメインに依頼することを特徴とする請求項1に記載の携帯端末。
The data sharing area is provided in the non-secure execution domain,
The secure execution domain is
A first verification unit for verifying the integrity of a program executed in the non-secure execution domain;
A first request unit that requests the non-secure execution domain for data acquisition processing for passing the protection target information written to the data sharing area by the second CPU to the secure execution domain;
The said 1st request part requests | requires the said data acquisition process to the said non-secure execution domain, when the integrity of the program currently run by the said non-secure execution domain is verified. The portable terminal described.
前記データ共有領域は、前記非セキュア実行ドメインに設けられており、
前記セキュア実行ドメインは、
前記非セキュア実行ドメインで実行されているプログラムの完全性を検証する第2検証部と、
前記セキュア実行ドメインによって前記データ共有領域に書き込まれる前記保護対象情報を前記第2CPUに渡すデータ送信処理を前記非セキュア実行ドメインに依頼する第2依頼部とを有しており、
前記第2依頼部は、前記非セキュア実行ドメインで実行されているプログラムの完全性が検証された場合に、前記データ送信処理を前記非セキュア実行ドメインに依頼することを特徴とする請求項2に記載の携帯端末。
The data sharing area is provided in the non-secure execution domain,
The secure execution domain is
A second verification unit for verifying the integrity of a program executed in the non-secure execution domain;
A second request unit for requesting the non-secure execution domain to perform data transmission processing for passing the protection target information written to the data sharing area by the secure execution domain to the second CPU;
The said 2nd request part requests | requires the said data transmission process to the said non-secure execution domain, when the integrity of the program currently run by the said non-secure execution domain is verified. The portable terminal described.
前記通信ドメインは、前記セキュア実行ドメインから取得した前記保護対象情報と、前記非セキュア実行ドメインから取得した前記非保護対象情報とをまとめて、前記ネットワークに送信される送信データを生成するデータ結合部を有することを特徴とする請求項1に記載の携帯端末。   The communication domain combines the protection target information acquired from the secure execution domain and the non-protection target information acquired from the non-secure execution domain, and generates a transmission data to be transmitted to the network The mobile terminal according to claim 1, comprising: 前記通信ドメインは、前記ネットワークから受信する受信データを、前記セキュア実行ドメインに渡す前記保護対象情報と、前記非セキュア実行ドメインに渡す前記非保護対象情報とに分離するデータ分離部を有することを特徴とする請求項1に記載の携帯端末。   The communication domain includes a data separator that separates received data received from the network into the protection target information passed to the secure execution domain and the non-protection target information passed to the non-secure execution domain. The mobile terminal according to claim 1.
JP2009021683A 2009-02-02 2009-02-02 Mobile device Expired - Fee Related JP4796158B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009021683A JP4796158B2 (en) 2009-02-02 2009-02-02 Mobile device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009021683A JP4796158B2 (en) 2009-02-02 2009-02-02 Mobile device

Publications (2)

Publication Number Publication Date
JP2010176630A JP2010176630A (en) 2010-08-12
JP4796158B2 true JP4796158B2 (en) 2011-10-19

Family

ID=42707499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009021683A Expired - Fee Related JP4796158B2 (en) 2009-02-02 2009-02-02 Mobile device

Country Status (1)

Country Link
JP (1) JP4796158B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332864A (en) * 1993-05-27 1994-12-02 Fujitsu Ltd Inter-cpu communication system for multiprocessor system
JP2002169699A (en) * 2000-11-30 2002-06-14 Fujitsu Ltd Communication system using multiple virtual computers
JP2003036179A (en) * 2001-07-25 2003-02-07 Kyushu Univ Virtual shared memory, virtual shared storing method and virtual shared storing program
GB2396034B (en) * 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
JP2006127461A (en) * 2004-09-29 2006-05-18 Sony Corp Information processing device, communication processing method, and computer program
JP2009169841A (en) * 2008-01-18 2009-07-30 Panasonic Corp Information processor and portable telephone device

Also Published As

Publication number Publication date
JP2010176630A (en) 2010-08-12

Similar Documents

Publication Publication Date Title
US11423159B2 (en) Technologies for trusted I/O protection of I/O data with header information
CN107111715B (en) Using a trusted execution environment for security of code and data
JP4556144B2 (en) Information processing apparatus, recovery apparatus, program, and recovery method
CN101621520B (en) Method and system for platform-based trust verifying service for multi-party verification
KR101268767B1 (en) information flow tracking and protection
TWI356298B (en) Projection of trustworthiness from a trusted envir
JP4811271B2 (en) Information communication apparatus and program execution environment control method
JP4774049B2 (en) Method and program for secure inter-platform and intra-platform communication
JP5374485B2 (en) Information security protection host
US8516272B2 (en) Secure dynamically reconfigurable logic
JP5346608B2 (en) Information processing apparatus and file verification system
KR101483839B1 (en) Protecting video content using virtualization
JP2005129033A (en) Integration of high-assurance feature into application through application factoring
TW201627908A (en) System and method of rapid deployment trusted execution environment application
JP4890569B2 (en) Prevent executable code changes
KR20140111943A (en) Secure environment apparatus and method thereof
WO2023103697A1 (en) Communication method in computer system, and related product
JP4796158B2 (en) Mobile device
US8336059B2 (en) Access right checking system, access right checking method, and access right checking program
US11461490B1 (en) Systems, methods, and devices for conditionally allowing processes to alter data on a storage device
CN101819619A (en) Method for preventing virus and Trojan horse
Shen et al. H-binder: A hardened binder framework on android systems
Booth Draft NISTIR 8138, Vulnerability Description Ontology (VDO)
TWI830522B (en) Method for enhancing memory protection and computing system
Liu et al. TZEAMM: An Efficient and Secure Active Measurement Method Based on TrustZone

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110728

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees