JP4886682B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP4886682B2 JP4886682B2 JP2007517924A JP2007517924A JP4886682B2 JP 4886682 B2 JP4886682 B2 JP 4886682B2 JP 2007517924 A JP2007517924 A JP 2007517924A JP 2007517924 A JP2007517924 A JP 2007517924A JP 4886682 B2 JP4886682 B2 JP 4886682B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- access
- address
- normal mode
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Description
しかしながら、暗号化データを復号する復号プログラムと、復号後のデータを再生するプレーヤプログラムとの間でデータを連携処理するような場合には、当該データを複数のプログラムから使用できるようにする必要があるので、前述の更新機能を悪用されて不正なプログラムが導入されると、当該不正なプログラムによって前記データが漏洩されてしまうという問題が生じうる。
また、上述の構成を備えることにより、第2のプログラムが更新されて機能が変更され、処理対象データの使用権限を失った場合においても前記判断手段がそれを検知し、前記制御手段で情報漏洩を防止できる。
また、前記保持部が保持する前記管理情報は、前記メモリ中のアドレスと、アドレスに対応する鍵とを対応づけた情報を一以上含み、前記アクセス制限部は、前記メモリのアドレスを含む前記メモリへのアクセス要求を取得する取得部と、前記アクセス要求に含まれるアドレスが、前記管理情報に含まれるか否かを判定するアドレス判定部と、含まれると判定された場合に、前記アクセス要求が書込要求であれば、書き込むデータを前記アドレスに対応する鍵で暗号化して前記アドレスで示される領域に書込み、前記アクセス要求が読出要求であった場合には、前記メモリの前記アドレスから読み出したデータを、前記アドレスに対応する鍵を用いて復号して出力するアクセス実行部とを含むこととしてもよい。
ここで、メモリへのアクセス要求には、前記メモリからデータを読み出す読出要求や、前記メモリへのデータの書込要求の他、使用を要望する前記メモリの領域の使用許可要求や、他のプロセスが使用許可されているメモリの領域を、自プロセスでも使用するための共有設定要求などが含まれるものとする。
この構成によれば、プロセスのコードが、漏洩するのを防ぐことができる。
また、各プロセスには、個別のプロセス識別子が割り当てられ、前記保持部が保持する前記管理情報は、前記メモリ中のアドレスと、前記アドレスへのアクセスが許可されているプロセス識別子とを対応付けた情報を一以上含み、前記アクセス制限部は、前記メモリのアドレスを含む前記メモリへのアクセス要求を取得する取得部と、アクセス要求に含まれるアドレスと、アクセス要求したプロセスに割り当てられたプロセス識別子とを対応付けた情報が、前記管理情報に含まれるか否かを判定するアドレス判定部と、含まれると判定された場合に、アクセス要求したプロセスを、前記メモリの前記アドレスにアクセスさせるアクセス実行部とを含むこととしてもよい。
また、前記データには、一以上のデータ処理方法それぞれについて実行を許可するか否かを示すセキュリティ要件情報が割り当てられ、プロセスそれぞれには、一以上のデータ処理方法それぞれを実行可能か否かを示す機能情報が割り当てられ、前記呼出命令は、一以上のデータ処理方法のいずれかを示す処理特定情報を含み、前記判断手段は、前記セキュリティ要件情報が前記処理特定情報により示されるデータ処理方法の実行を許可しておりかつ第2プロセスの機能情報が、前記処理特定情報により示されるデータ処理方法の実行が可能であることを示す場合に、前記使用権限があると決定することとしてもよい。
また、前記切替手段は、前記通常モードから前記保護モードへと切り替える場合に、前記通常モードで動作しているプロセスのコンテキストを前記メモリに退避し、前記保護モードから前記通常モードへと切り替える場合に、次に前記通常モードで動作するプロセスのコンテキストを前記メモリから復帰させることとしてもよい。
また、前記第1プロセス及び前記第2プロセスは、それぞれが動作している間に割り込み又は例外が発生した場合に、その割り込み又は例外を処理する割込処理又は例外処理を含み、前記データ処理装置は、さらに、割り込み又は例外が発生した場合に、実行されるべき処理を示すベクタテーブルを、保護モードにおいてのみ書き換え可能に保持するベクタテーブル保持手段と、動作するプロセスが、前記第1プロセスから前記第2プロセスへと切り替わる前に、保護モードにおいて前記ベクタテーブルを、前記通常モードにおいて割り込み又は例外が発生した際に第2プロセスの割込処理又は例外処理を実行するよう書き換えるベクタテーブル書換手段とを含むこととしてもよい。
また、前記判断手段は、さらに、プロセスから前記メモリにおける領域の使用要求を受け付ける使用要求受付部と、使用要求されたアドレスが、既に使用されているか否かを判定する使用判定部と、使用されていなかった場合に、使用要求したプロセスの、前記アドレスに格納を要望するデータについての使用権限の有無を判定する権限判定部と、前記権限判定部により使用権限があると判定された場合に、使用要求したプロセスの管理情報に、前記アドレスで示される領域へのアクセスを許可する情報を登録する管理情報登録部とを含むこととしてもよい。
また、前記管理情報登録部は、前記権限判定部により使用権限があると判定された場合に、鍵を生成し、前記アクセスを許可する情報として、前記アドレスと生成した鍵とを対応付けた情報を使用要求した前記プロセスの管理情報に追加することとしてもよい。
アドレス毎に異なる鍵を用いることなどとすれば、同じ鍵を用いる頻度が少なくなり鍵が解読される確率を低下させることができる。
また、前記データ処理装置は、さらに、前記プロセスに係るデバッグを行うデバッグ手段を含み、前記切替手段は、さらに、前記通常モードに切り替える場合に、前記デバッグ手段を有効化し、前記保護モードに切り替える場合に、前記デバッグ手段を無効化することとしてもよい。
本発明のデータ処理方法は、プログラムに従って動作するプロセッサを備え、前記プログラムの実行単位であるプロセスが動作する通常モードと前記プロセスの動作が抑制される保護モードを切り替えて動作するデータ処理装置に用いられるデータ処理方法であって、通常モードにおいて、第1プロセスの処理対象データに対して、前記第1プロセスによるアクセスを許可し、他のプロセスによるアクセスを禁止するアクセス禁止ステップと、通常モードにおいて、前記第1プロセスから、第2プロセスの呼び出しを指示する呼出命令を検出する検出ステップと、前記呼出命令が検出されると、通常モードから保護モードに切り替える切替ステップと、保護モードにおいて、前記第2プロセスが、前記処理対象データについての使用権限を有しているか否かを判断する判断ステップと、保護モードにおいて、前記第2プロセスが前記使用権限を有していると判断される場合に、前記アクセス禁止手段に対して、前記第2プロセスが前記通常モードにおいて、前記処理対象データに対しアクセスすることが許可されるように制御する制御ステップとを含む。
また、上述の構成を備えることにより、第2のプログラムが更新されて機能が変更され、処理対象データの使用権限を失った場合においても前記判断ステップによりそれを検知し、前記制御ステップによって情報漏洩を防止できる。
また、上述の構成を備えることにより、第2のプログラムが更新されて機能が変更され、処理対象データの使用権限を失った場合においても前記判断手段がそれを検知し、前記制御手段で情報漏洩を防止できる。
<1.概要>
図1は、プログラム保護装置0101の構成の主要な部分を模式的に示した図である。
プログラム保護装置0101は、図1に示すように、CPU0201と、不正動作防止回路0105と、蓄積メディア0216とを含んで構成される。
不正動作防止回路0105は、CPU0201により実行されるプログラムの不正実行及びプログラム間の不正アクセスを防ぐための機構を備えた回路である。
蓄積メディア0216は、CPU0201により実行されるプログラムが扱う、コンテンツや個人情報などの機密情報である保護対象データ0108を、暗号化した状態で記憶している。
不正動作防止制御部0106は、プログラムA0102、プログラムB0103、プログラムC0107その他の各プログラムとOS0104のそれぞれから、メモリ領域の使用要求を取得して使用可否を判定し、使用させる場合には不正動作防止回路0105を制御して、要求元のプログラムが要求する態様でのみ、当該メモリ領域の使用をさせる。
プログラムA0102、プログラムB0103、プログラムC0107は、任意の処理を実行するアプリケーションプログラムである。本実施形態では、一例として、プログラムA0102が、コンテンツである保護対象データ0108の復号を行うプログラムであり、プログラムB0103は、コンテンツの再生を行うプレーヤープログラムであり、プログラムA0102とプログラムB0103は、コンテンツを処理する際に連携動作するものとする。
前記呼出命令は、コンテンツの出力、コピー、移動、特殊再生、デジタル出力などのデータ処理方法を示す情報を含むものとする。
また、不正動作防止制御部0106が前記保護モードにおいて不正動作防止回路0105を制御することにより、例えば、プログラムC0107が、前記コンテンツを不正に使用したり、コンテンツを破壊するようなことを妨げている。
<2.構成>
<2.1.ハードウェア構成>
プログラム保護装置0101のハードウェア構成について、図面を用いて説明する。
プログラム保護装置0101は、図2に示すように、相互にバス0210を介して接続されるCPU0201、不揮発メモリ0203、バス暗号回路0204、鍵レジスタ0205、アクセス制限回路0207、状態切替回路0208、デバッガI/F0209、蓄積メディア0216、不揮発メモリ0221と、バス暗号回路0204に接続するRAM0202と、アクセス制限回路0207に接続する保護メモリ0206を含んで構成される。
CPU0201は、RAM0202、保護メモリ0206上に記憶されるプログラムを実行するマイクロプロセッサである。
保護モードは、セキュリティの高い特定のプログラムのみが動作するモードであり、通常モードは、その他のプログラムが動作するモードである。
アクセス制限回路0207は、バス0210と保護メモリ0206の接続を制御する回路であり、状態切替回路0208から受け取る状態信号Cが通常モードを示す場合には、バス0210と保護メモリ0206との接続を遮断し、保護モードを示す場合には、バス0210と保護メモリ0206を接続する。よって、通常モードで動作するプログラムは、保護メモリ0206内のデータにアクセスすることはできない。
デバッガI/F0209は、状態切替回路0208から通知される状態信号Aが、通常モードを示す場合に、前記プログラムデバッガとCPU0201とを接続し、状態信号Aが保護モードを示す場合に、プログラムデバッガとCPU0201との接続を切断する。
鍵レジスタ0205は、アクセス要求されたアドレスに対応する暗号鍵をバス暗号回路0204に出力する回路である。
RAM0202は、バス暗号回路0204と接続されているメモリ装置である。
バス暗号回路0204は、鍵レジスタ0205から通知される鍵を用いて、当該鍵に対応付けられたメモリアドレスに入出力するコードやデータの暗号化や復号を行う。
また、バス暗号回路0204は、CPU0201が命令フェッチのためにRAM0202にアクセスしているのか、データアクセスのためにアクセスしているのかを検知し、同一物理アドレスへの命令フェッチの場合には命令用バス暗号鍵を用い、データアクセスの場合にはデータ用バス暗号鍵を用いて、コードやデータの暗号化、復号を行う。
ここで、前記ファイルのデータ構造について、ファイルA0212のデータ構造を例に、図5を用いて説明する。
ファイルA0212は、コード暗号鍵0710、プログラムA0102のコード0711、署名A0115、機能フラグA0111を含む。
コード暗号鍵0710は、公開鍵暗号アルゴリズムで暗号化されている。
コード暗号鍵0710を暗号化する際に用いられた公開鍵に対応する秘密鍵は、不正動作防止制御部0106が保持する。
プログラムAのコード0711は、コード暗号鍵0710で暗号化されている。
署名A0115は、プログラムAのコード0711を暗号化したベンダの署名が格納されている。
機能フラグA0111は、プログラムA0102が、機能0714、0715、0716、0717、0718・・・を備えているか否か示すフラグである。
本実施形態では、機能フラグは、プログラムがファイル出力、コピー、移動、特殊再生、デジタル出力の各機能を備えているかを示すものとする。
ただし、ファイルC0214の機能フラグC0113は、ファイル出力機能0734を備えることを示し、ファイルOS0215の機能フラグOS0114はファイル出力機能0744、コピー機能0745、移動機能0746を備えることを示している。
プログラム保護装置0101において、CPU0201は、割り込みや例外の発生を検知した場合に、ベクタテーブル0219を参照して、次に実行するハンドラの位置を取得する。
蓄積メディア0216は、コンテンツや個人情報などの機密情報である保護対象データ0108を、暗号化した状態で記憶する。
データ0701は、保護対象となるデータであり、データ暗号鍵0702を用いて暗号化されている。但し、データ0701は必ずしも暗号化されている必要はない。
データ暗号鍵0702は、公開鍵暗号アルゴリズムで暗号化されており、暗号化する際に用いられた公開鍵に対応する秘密鍵は、不正動作防止制御部0106が保持しているので、不正動作防止制御部0106のみが復号可能である。
セキュリティ要件リストは、例えば、各ビットがセキュリティ要件を示す5ビットのデータであり、各ビットは、ファイル出力機能、コピー機能、移動機能、特殊再生機能、デジタル出力機能に対応し、ビット値が1の場合にはその機能が可能であることを示し、ビット値が0である場合にはその機能が不可能であることを示す。
ここで、データ0701に対するセキュリティ要件0703、0704、0705、0706、0707は、すべて不可能となっている。
署名データ0708は、セキュリティ要件リスト0109に対する署名データであり、当該署名データを用いることにより、セキュリティ要件リスト0109の正当性を検証することができる。
<2.2.ソフトウェア構成>
次に、プログラム保護装置0101のソフトウェア構成について、図面を用いて説明する。
BIOS0405は、ハードウェアの基本的な設定を行った後、OS0104をRAM0202にロードする。本実施形態では、BIOS0405は、OS0104のみをロードすることとしているが、更にプログラムA0102、B0103、C0107をロードすることとしてもよい。
また、OS0104に含まれるOS用割り込み管理部0404は、OS0104が動作している時に発生する割り込みや例外を処理するハンドラを含む。
プログラムA0102に含まれる割り込み管理部0402は、プログラムA0102が動作している時に発生する割り込みや例外を処理するハンドラを含む。
プログラムA0102、プログラムB0103、プログラムC0107、OS0104は、通常モードで動作するソフトウェアであり、それぞれRAM0202にロードされ、CPU0201により実行される。 セキュリティカーネル0401は、保護モードにおけるシステム制御を行うソフトウェアであり、保護メモリ0206にロードされて、CPU0201により実行される。
保護モードにおけるベクタテーブル0219の内容は、通常モードから保護モードへの切替直前に、状態切替部0206によって、割り込み及び例外発生時にCPU0201がセキュリティカーネル0401内のハンドラを実行するよう書き換えられる。
不正動作防止制御部0106による不正動作防止制御処理が終了すると、セキュリティカーネル0401に制御主体が戻り、セキュリティカーネル0401は、状態切替回路0208に対し、通常モードへの移行のための状態切替依頼を出力する。
不正動作防止制御部0106は、不正動作防止回路0105を制御してOS0104等を含むプログラムの不正動作を防止する。
不正動作防止制御部0106は、前記不正動作防止回路0105を制御するためのデータである管理テーブル0110を管理している。
(管理テーブル)
ここで、管理テーブル0110について、図8、図9を用いて説明する。
プログラム保護装置0101に電源が投入された時には、各管理テーブル0110の内容は空である。
不正動作防止制御部0106は、後述するデータ領域保護設定処理において、他のプログラムから成される保護設定要求に従ってデータ領域管理情報テーブル群の内容を登録又は更新し、後述するデータ領域共有設定において、他のプログラムから成される共有設定要求に従ってセキュリティ要件管理情報テーブルの内容を登録又は更新する。
(プログラム管理情報テーブルT0410)
プログラム管理情報テーブルT0410は、プログラム管理情報T0411、T0412、T0413、T0414・・・を含む。
プログラム管理情報識別子は、プログラム管理情報を識別するための識別子であり、不正動作防止制御部0106が、当該プログラム管理情報を登録する時に、既に使用されている値と重複しない値を割り当てる。
プログラム識別子は、前記アドレス領域にロードされるコードを含むプログラムの識別子であり、予め、各プログラムに対し割り振られている。
共有プログラム識別子は、前記アドレス領域のコードを共有するプログラムの識別子である。
機能フラグは、例えば、5ビットのデータであり、各ビットに、ファイル出力機能、コピー機能、移動機能、特殊再生機能、デジタル出力機能が割り当てられる。
即ち、ファイル出力と、移動とが許可されている場合の、機能フラグは、2進数表現で10100となり、デジタル出力機能のみが許可されている場合には、2進数表現で00001となる。
(コード領域管理情報テーブル群)
コード領域管理情報テーブル群0502は、プログラム用コード領域管理情報テーブルT0210、T0220、T0230・・・を含み、プログラム用コード領域管理情報テーブルは、プログラム毎に生成されたものである。
コード領域識別子は、コード領域管理情報を識別するための識別子であり、不正動作防止制御部0106が、当該コード領域管理情報を生成する時に、既に使用されている値と重複しない値を割り当てる。
コード暗号鍵は、前記アドレス領域で示されるメモリ領域に保持されたコードを暗号化、復号するための鍵であり、コードアクセスの際に用いられる。
(データ領域管理情報テーブル群)
データ領域管理情報テーブル群0501は、データ領域管理情報テーブルT0110、T0120、T0130・・・を含む。
データ領域識別子は、各データ領域管理情報を識別するための識別子である。
データアドレスは、各データ領域管理情報が管理対象とするアドレス領域である。
データ暗号鍵は、前記アドレス領域で示されるメモリ領域に保持されたデータを暗号化、復号するための鍵であり、データアクセスの際に用いられる。
(セキュリティ要件管理情報テーブル)
セキュリティ要件管理情報テーブルT0310は、データ領域管理情報テーブル群0501に含まれる各データ領域管理情報に対するセキュリティ要件を管理するためのテーブルであり、複数のセキュリティ要件管理情報T0311、T0312、T0313、T0314・・・を含む。
セキュリティ要件管理情報識別子は、セキュリティ要件管理情報を識別するための識別子である。
データアドレスは、セキュリティ領域管理情報が管理対象とするアドレス領域である。
共有プログラム識別子は、物理メモリ上の前記アドレス領域について、当該メモリ領域を共有するプログラムを識別するための識別子である。
セキュリティ要件は、前記データアドレスにより示される、物理メモリ上の前記アドレス領域に保持されるデータの保護方法を定める。
即ち、ファイル出力と、移動とが実行許可されている場合の、機能フラグは、2進数表現で10100となり、デジタル出力のみ実行許可されている場合には、2進数表現で00001となる。
(カレントプログラム管理テーブル0503)
カレントプログラム管理テーブル0503には、現在動作中のプログラムの識別子が記憶される。
<3.ソフトウェア動作>
次に、プログラム保護装置0101上で動作するソフトウェアによる処理の流れについて説明する。
プログラム保護装置0101に対し電源が投入されると、BIOS0405が起動する(ステップS2011)。
BIOS0405は、プログラム保護装置0101のハードウェアについての基本的な設定を行った後、OS0104をRAM0202にロードする(ステップS2012)。
次に、OS0104は、登録処理が成功したプログラムA0102、B0103、C0107を順に起動する(ステップS2031)。
次に、OS0104は、不正動作防止制御部0106に対し、自プログラム内で使用するデータ領域の後述する保護設定を行う(ステップS2040)。
同様に、プログラムA0102は、不正動作防止制御部0106に対し、自プログラム内で使用するデータ領域の後述する保護設定を行い(ステップS2041)、プログラムB0103は、不正動作防止制御部0106に対し、自プログラムが使用するデータ領域の保護設定を行い(ステップS2042)、プログラムC0107は、不正動作防止制御部0106に対し、自プログラムが使用するデータ領域の保護設定を行う(ステップS2043)。
同様に、プログラムB0103は、必要ある場合に、不正動作防止制御部0106に対し、他プログラムと使用するデータ領域を共有するためのデータ領域共有設定を行い(ステップS2052)、プログラムC0107は、必要ある場合に、不正動作防止制御部0106に対し、他プログラムと使用するデータ領域を共有するためのデータ領域共有設定を行う(ステップS2053)。
以後、OS0104は、必要に応じ、動作させるカレントのプログラムを切り替え(ステップS2061)、カレントのプログラムは、自プログラムが行うべき処理を実行する(ステップS2062)。
上述のステップS2020、ステップSS2021、ステップS2022、ステップS2023、ステップS2040、ステップS2041、ステップS2042、ステップS2043、ステップS2051、ステップS2052、ステップS2053は、全て、図10〜12で示す基本の処理フローに従い実行される。
また、ステップS2021〜S2053の各処理の実行は、一度に限らず、必要に応じて随時実行するものとする。
<3.1.プログラム登録処理>
図21におけるステップS2021は、OS0104が、プログラムAについての情報を、不正動作防止制御部0106に登録する処理である。
前記登録要求には、図5に示した、登録されるプログラムであるプログラムAのコードを暗号化する際に用いられた鍵(コード暗号化)、プログラムの署名データ、機能フラグが含まれる。さらに、前記登録要求には、プログラムのロードアドレス情報が含まれる。
秘密鍵は不正動作防止制御部0106の外部に漏洩しないよう対策が施される。
プログラムの署名データは、プログラムの正当性、完全性を検証するために用いられる。
プログラムXは、プログラムAの登録要求を要因とするソフトウェア割り込みを発生させ(ステップS0801)、プログラムX用割り込み管理部に制御を移す。
次に、プログラムX用割り込み管理部は、プログラムXが発生させたソフトウェア割込みの要因を調査し、前記登録要求を所定の前記データ領域から読み出し、割り込みの種別を確認する(ステップS0802)。ここで、プログラムX用割込み管理部は、前記割り込みの種別が、プログラムAについての登録要求を要因とするソフトウェア割り込みであったことを確認する。
ここで、前記共有メモリは、通常モードと保護モードとの通信に用いる、RAM0202内の所定のメモリ領域である。
ここで、プログラム保護装置0101の動作状態を、通常モードから保護モードへ切り替えるための状態切替動作Aを実行する。
プログラムXは、ここでは、OS0104である。
プログラムX用割り込み管理部は、状態切替回路0208に対し、保護モードへの状態切替依頼を行う(ステップS1700)。
状態切替回路0208は、CPU内の状態を予め定められているRAM0202内のプログラムXが管理するデータ領域に格納する(ステップS1701)。
状態切替回路0208は、保護モードを示す状態信号A0211を出力し、デバッガI/F0209を無効化する(ステップS1702)。
次に、状態切替回路0208は、CPU内部状態のクリアを行う(ステップS1703)。
ここで、鍵レジスタ0205は、バス0210を介して通知される設定信号0304を用いて命令用鍵情報テーブル0305とデータ用鍵情報テーブル0306を変更できるようにする。
開放状態とは、バス0210から保護メモリ0206へのアクセスが許可された状態を示す。
状態切替回路0208は、前回保護モードから通常モードに切り替える直前に保護メモリ0206に格納していたコンテキストをCPUに復帰させる(ステップS1707)。
次に、セキュリティカーネル0401は、不正動作防止制御部0106に制御を移す(ステップS0815)。
次に、不正動作防止制御部0106は、不正動作防止制御処理(ステップS0807)を実行する。
ここで、前記要求が前記登録要求である場合の不正動作防止制御処理(ステップS0807)の詳細について、図10を用いて説明する。
前記要求が登録要求であるので(ステップS600:登録)、ステップS0612へと分岐する。
次に、不正動作防止制御部0106は、セキュリティ要件管理情報テーブルT0310とプログラム管理情報テーブルT0410を用い、プログラムのロードアドレス情報によって示されているコードアドレス領域が、未使用領域であるかどうかを判定する(ステップS0612)。
署名検証結果がOKであった場合(ステップS0613のYES)、不正動作防止制御部0106は、新規のコード領域管理情報テーブルとデータ領域管理情報テーブルを生成する(ステップS0614)。
プログラム管理情報テーブルT0410の更新において、不正動作防止制御部0106は、固有のプログラム識別子を生成した後、プログラム管理情報の追加を行う。
コード領域管理情報テーブルの更新において、不正動作防止制御部0106は、コード暗号鍵の復号化とコード領域管理情報の追加を行う。
処理結果は、管理テーブルの更新(ステップS0615)時に生成したプログラム識別子を含む。コードアドレス領域が未使用領域でなかった場合(ステップS0612のNO)と署名検証に失敗した場合(ステップS0613のNO)には、処理に失敗した原因を処理結果に含める。ここで生成した処理結果を、共有メモリに格納する(ステップS0808)。
ここで、セキュリティカーネル0401、状態切替部0208、プログラムX用割り込み管理部が、状態切替動作Bを実行することにより、保護モードから通常モードへ切り替える(ステップS0809)。
ここで、プログラムXは、前述のように、OS0104である。
セキュリティカーネル0401は、状態切替回路0208に対し、通常モードを示す状態信号C0218を出力することにより、状態切替を依頼する(ステップS1710)。
状態切替回路0208は、CPUのコンテキストを保護メモリ0206に格納する(ステップS0817)。
遮断状態とは、バス0210から保護メモリ0206へアクセスできない状態を示す。
状態切替回路0208は、状態信号B0217を制御し、鍵レジスタ0205の設定を変更する(ステップS1713)。
状態切替回路0208は、CPU内部状態のクリアを行う(ステップS1714)。
状態切替回路0208は、ベクタテーブル0219の設定変更を行う(ステップS1715)。 ここで、状態切替回路0208は、割り込みおよび例外発生時にCPU0201がプログラムX用割り込み管理部に含まれるハンドラを実行するよう設定する。
次に状態切替回路0208は、状態信号A0211を制御してデバッガI/F0209を有効にする(ステップS1716)。
ここで、状態切替回路0208は、プログラムXのコンテキストを復帰させ(ステップS1717)、次に状態切替回路0208は、プログラムX用割り込み管理部に制御を移し(ステップS1718)、プログラム保護装置0101は通常モードとなり、状態切替動作Bは終了する。
次に、プログラムX用割り込み管理部は、処理結果をプログラムXが管理するデータ領域に格納(ステップS0812)した後、ソフトウェア割り込みからリターンする(ステップS0813)。
<3.2.データ領域の保護設定処理>
図21におけるステップS2041は、プログラムAが不正動作防止制御部0106に対し、使用するメモリ領域の保護設定を要求する処理である。
ここでは、プログラムXは、プログラムA0102であるものとする。
まず、プログラムXは、自プログラムについて予め指定されているRAM0202上のデータ領域である共有メモリに、データアドレスとセキュリティ要件とを含むデータ領域保護設定要求を書き込む。
前記セキュリティ要件は、プログラムXが前記データアドレスに格納するデータに対し設定を要望する保護属性であり、セキュリティ要件リスト0109と同様のデータ構造を持つ。例えば、前記セキュリティ要件は、5ビットのデータであり、各ビットに、ファイル出力機能、コピー機能、移動機能、特殊再生機能、デジタル出力機能の実行可否が割り当てられる。なお、前記セキュリティ要件は、セキュリティ要件リスト0109である場合もある。
ステップS0803〜S0806までは、プログラム登録処理と同様である。
ステップS0807の詳細である図10のステップS0600における判定で、不正動作防止制御部0106は、前記処理要求が、データ領域の保護設定要求であると判定し(ステップS0600の保護)、ステップS0602に移行する。
未使用領域であった場合(ステップS0602のYES)、セキュリティ要件管理情報テーブルT0310およびデータ領域管理情報テーブル群0501を更新する(ステップS0603)。
また、不正動作防止制御部0106は、前記新規セキュリティ要件管理情報におけるデータ暗号鍵には、乱数値を生成して登録する。
具体的には、不正動作防止制御部0106は、更新された情報の不正動作防止回路0105への設定として、前記新規セキュリティ要件管理情報のデータアドレスと、データ暗号鍵との組を、不正動作防止回路0105のデータ用鍵情報テーブル0306に追加する。
不正動作防止制御部0106は、処理結果を共有メモリに格納する(ステップS0808)。
以降の処理は、前述のプログラム登録処理と同様である。
<3.3.データ領域共有設定処理>
図21におけるステップS2051は、プログラムAが不正動作防止制御部0106に対し、使用するメモリ領域の共有設定を要求する処理である。
まず、プログラムXは、自プログラムについて予め指定されているRAM0202上のデータ領域である共有メモリに、データアドレスとセキュリティ要件とを含むデータ領域共有設定要求及び署名A0115を書き込む。
署名A0115は、不正動作防止制御部0106により、機能フラグA0111の正当性の確認に用いられる。 不正動作防止制御部0106は、ステップS0802において、前記データ領域共有設定要求を取得する。
ステップS0807の詳細である図10のステップS0600における判定で、処理要求が、データ領域の共有設定要求であると判定する(ステップS0600の共有)。
不正動作防止制御部0106は、ステップS0802において、RAM0202上の共有メモリから前記データ領域共有設定要求を取得し、ステップS0632において、前記データ領域共有設定要求に含まれるデータアドレスが、セキュリティ要件管理情報テーブルT0310中のセキュリティ要件管理情報として登録されているか否かを判定し、登録されている場合(ステップS0632のYES)、不正動作防止制御部0106は前記データ領域共有設定要求の妥当性判断を行う(ステップS0633)。
また、前記セキュリティ要件の正当性についても、前記共有メモリに書き込まれた署名を用いて確認する。
不正動作防止制御部0106は、セキュリティ要件管理情報テーブルT0310の更新において、具体的には、対象となるデータ領域に対応するセキュリティ要件管理情報の共有プログラム識別子に共有を要求しているプログラムの識別子を書き込む。
また、要求しているプログラムが指定しているセキュリティ要件が、既存のセキュリティ要件より厳しい場合、要求しているプログラムが指定しているセキュリティ要件を、対象となるデータ領域に対応するセキュリティ要件管理情報のセキュリティ要件として追加する。
さらに、データ領域管理情報テーブルの更新において、不正動作防止制御部0106は、要求元のプログラム用のデータ領域管理情報テーブルにデータ領域管理情報を追加する。
次に、不正動作防止制御部0106は、データ保護設定の変更を行う(ステップS0635)。
また、ステップS0632において、登録されていないと判断した場合(ステップS0632のNO)、および設定が妥当でないと判断した場合(ステップS0633のNO)、不正動作防止制御部0106は、エラーを示す処理結果を生成する。
処理結果には、正常終了、データアドレス領域が他のプログラムにより確保されている等のエラー要因などを含める。
以降の処理は、前述のプログラム登録処理と同様である。
<3.4.プログラム切替処理>
図21におけるステップS2061は、プログラムA0102が、不正動作防止制御部0106に対し、カレントのプログラムを切り替えるよう要求し、その要求に対する処理である。
なお、プログラムXは、プログラムA0102であり、プログラムB0103への切替を要求するものとする。
まず、プログラムXは、自プログラムについて予め指定されているRAM0202上のデータ領域である共有メモリに、切替を希望するプログラムの識別子を含む切替要求と、切替を希望するプログラムに対して伝達を希望する引数データとを書き込む。
ステップS0803〜S0806までは、プログラム登録処理と同様である。
ステップS0807の詳細である図10のステップS0600における判定で、処理要求が、プログラム切替要求であると判定する(ステップS0600の切替)。
不正動作防止制御部0106は、取得した引数データを保護メモリ0206に格納する。
なお、引数データの位置は固定である必要はなく、切替要求に含むこととしてもよい。
次に、不正動作防止制御部0106は、カレントプログラム管理テーブルの更新を行う(ステップS0622)。
次に、不正動作防止制御部0106は、不正動作防止回路0105の設定を変更する(ステップS0623)。
不正動作防止制御部0106は、鍵レジスタ0205に記憶されている命令用鍵情報テーブルの内容と、データ用鍵情報テーブルの内容を消去し、データ領域管理情報テーブル群0501に含まれる切替先のプログラムに対応するデータ領域管理情報テーブル中の各データ領域管理情報に記憶されているデータアドレスと、データ暗号鍵との組を、不正動作防止回路0105のデータ用鍵テーブルに書き込む。
次に、不正動作防止制御部0106は、予め保護メモリ0206に格納しておいた引数データを切替先のプログラムが管理するRAM0202に格納する(ステップS0624)。
このように、不正動作防止制御部0106は、引数データを保護メモリを介して他のプログラムに受け渡すことができる。
そのため、不正動作防止制御部0106は、OS0104を含むプログラムから他のプログラムへのデータの受け渡しを依頼された場合、依頼元のプログラムと依頼先のプログラム以外のプログラムへ、そのデータが漏洩しないように受け渡しを行うことが可能となる。
また、プログラムA0102がOS0104のシステムコールを呼び出す場合も同様に引数データの受け渡しを安全に行うことができる。
<4.全体動作>
プログラム保護装置0101によるプログラムの切替処理(プログラムA0102からプログラムB0103への切替処理)を例として、全体動作について、図13、図14に示すフローチャートを用いて説明する。
次に、プログラムA用割り込み管理部0402は、プログラムB0103へ切り替える旨の要求と引数データを共有メモリに格納する(ステップS0903)。
次に、ステップS0905において、制御主体となったセキュリティカーネル0401は、不正動作防止制御部0106に制御を移す(ステップS0907)。
次に、不正動作防止制御部0106は、前記要求がプログラムB0103への切り替え要求であることから、プログラムの切替処理が必要であることを判断し、前述したプログラムの切替処理0602の処理を行う(S0909)。
次に、不正動作防止制御部0106は、セキュリティカーネルに制御を移す(ステップS0911)。
ここで、セキュリティカーネル0401、状態切替回路0208及びOS用割込み管理部0404が前述の状態切替動作Bを実行し、保護モードから通常モードへ切り替える(ステップS0913)。また、プログラムの切替にはオペレーティングシステムの処理が必要なので、通常モードに復帰後、OS用割り込み管理部0404に制御を移す。
次にOS0104は、プログラムA0102からプログラムB0103への切替処理を行う(ステップS0917)。ここで、OS0104は、プログラムコンテキストの切替などの処理を行う。
次に、OS用割り込み管理部0404は、プログラムB0103への切替要求を共有メモリに格納する(ステップS0919)。
ただし、切替先のプログラムはOS0104ではなく、プログラムB0103であるので、プログラムB用割り込み管理部0403に制御が移る。
次に、プログラムB用割り込み管理部0403は、共有メモリから処理結果を取得する(ステップS0931)。
その後、プログラムB0103は、データ処理を行う(ステップS0934)。
<5.コンテンツ復号処理を例とした補足説明>
プログラム保護装置0101において、暗号化コンテンツである保護対象データ0108の復号処理を行うプログラムA0102と、復号されたコンテンツを再生するプレーヤーであるプログラムBとが、連係して動作する場合について、データの変化を中心に、図15〜図20に示す図を用いて補足説明する。
図16は、プログラム保護装置0101動作中のRAM0202の状態を示す。
プログラムA0102、プログラムB0103、プログラムC0107、OS0104のコードは、それぞれコード暗号鍵KC_A、KC_B、KC_C、KC_OSによって暗号化されて不揮発メモリ0203に格納されている。
その結果、プログラムA0102のコード領域(定数も含まれる)1201は、1000番地から1100番地にロードされる。
また、蓄積メディア0216に格納されている保護対象データ0108は、8000〜9000番地の保護対象データ領域1210にロードされる。
なお、保護対象データ0108は、必ずしもBIOS0405がロードする必要はなく、その他のプログラムがロードしてもよい。
不正動作防止制御部0106は、プログラムの登録処理0601に従って、各プログラムを登録する。
その結果、図17〜図19に示すように、管理テーブル0110内に、データ領域管理情報テーブルT0500、T0600、T0700、T0800、コード領域管理情報テーブルT0900、T1000、T1100、T1200、およびプログラム管理情報テーブルT1300、セキュリティ要件管理情報テーブルT1400が生成される。
プログラム登録処理0601の管理テーブルの更新(ステップS0615)で、プログラム管理情報T1301〜T1304がプログラム管理情報テーブルT1300に追加される。
また、プログラムC0107およびOS0104の機能フラグ0113および0114は、ファイル出力機能は有りであるので、プログラム管理情報T1303およびT1304の機能フラグはファイル出力機能有りとなる。
プログラム登録処理0601の管理テーブルの更新(ステップS0615)で、プログラムA用コード領域管理情報テーブルT0900には、コード領域管理情報T0901とT0902が追加される。
ここで、不正動作防止制御部0106は、ファイルA0212に格納されているコード暗号鍵0710を秘密鍵で復号化する。コード領域管理情報T0902において、コード領域識別子として“未定義領域”、コードアドレスとして“定義領域以外”、コード暗号鍵として“KC_RA”が設定される。
KC_RAは、不正動作防止制御部0106が生成した乱数値である。なお、他のコード領域管理情報テーブルT1000、T1100、T1200も図16に示すように、同様に設定される。
本フローチャートは、プログラムA〜Cが連携動作しようとし、プログラムCがセキュリティ要件違反により停止する場合を示している。
なお、図15では、各割り込み管理部0402、0403、0404、0406の動作は省略している。以下、図15にしたがってプログラム保護装置0101の動作を説明する。
ここで、プログラムA0102は、1500〜1599番地までのデータ領域をプログラムA0102のみアクセス可能な状態で確保するよう不正動作防止制御部0106に依頼をする。
以下、データ保護設定の依頼は同様の動作で行われるものとする。
その結果、プログラムA用データ領域管理情報テーブルT0500にデータ領域管理情報T0501が追加されると共に、セキュリティ要件管理情報テーブルT1400にセキュリティ要件管理情報T1401が追加される。
データ領域管理情報T0501のデータ暗号鍵KD_A1は、不正動作防止制御部が生成した乱数値である。
次にプログラムA0102は、保護対象データ領域1210のデータを取り扱えるように設定を行う(ステップS1102)。
ここでは、バス暗号回路0204で復号化するものとする。
そこで、プログラムA0102は、不正動作防止制御部0106に対し、データ領域設定要求を行う。
ここで、プログラムA0102は、セキュリティ要件として、保護対象データ0108に含まれるセキュリティ要件リスト0109を用いるように不正動作防止制御部0106に指示する。
不正動作防止制御処理(ステップS0807)において、不正動作防止制御部0106は、データ領域保護設定処理0603と同様の処理を行う。
ただし、未使用領域であるかどうかを確かめる処理(ステップS0602)の後、図20のフローチャートに示す、プログラムAの機能フラグが保護対象データ0108のセキュリティ要件リスト0109記載のセキュリティ要件を満たすかどうかの確認を行う処理が追加される。
ここで、セキュリティ要件を満たすかどうかの確認において、不正動作防止制御部0106は、まずセキュリティ要件リストの正当性確認を行う(ステップS1801)。
セキュリティ要件リストが正当でないと判断した場合(ステップS1801のNO)、不正動作防止制御処理を終了する。
次に、不正動作防止制御部0106は、セキュリティ要件と機能フラグの比較を行う(ステップS1802)。
ここで、不正動作防止制御部0106は、正当性を確認したセキュリティ要件リスト0109とプログラム管理情報T1301に含まれるプログラムAの機能フラグを比較し、セキュリティ要件を満たしているかどうかの確認、および、セキュリティ要件管理情報テーブルT1400に含まれる生成したプログラムがプログラムAであるセキュリティ要件管理情報のセキュリティ要件がセキュリティ要件リスト0109を満たしているかどうかの確認を行う。
セキュリティ要件管理情報テーブルT1400に含まれる他のデータ領域のセキュリティ要件がセキュリティ要件リスト0109を満たしているかどうか確認することで、保護対象データ0108のセキュリティ要件を満たしていないデータ領域からデータが漏洩することを防止することができる。
ここで、不正動作防止制御部0106は、プログラムA用データ領域管理情報テーブルT0500にデータ領域管理情報T0502を追加すると共に、セキュリティ要件管理情報テーブルT1400にセキュリティ要件管理情報T1402を追加する。
図17では、データ暗号鍵0702は、“KD_S”と示されている。
次にプログラムA0102は、1600〜1699番地までのデータ領域をセキュリティ要件リスト0109に基づくセキュリティ要件で確保するよう不正動作防止制御部0106に依頼をする(ステップS1103)。
ここで、不正動作防止制御部0106は、要求されたセキュリティ要件が、プログラムA0102が既に生成しているすべてのデータ領域のセキュリティ要件と同等かもしくは厳しいものであるかをセキュリティ要件管理情報テーブルT1400を用いて確認する。
要求されたセキュリティ要件が、既に生成しているすべてのデータ領域のセキュリティ要件と同等かもしくは厳しいものであると、プログラムA用データ領域管理情報テーブルT0500にデータ領域管理情報T0503が追加されると共に、セキュリティ要件管理情報テーブルT1400にセキュリティ要件管理情報T1403が追加される。
処理結果は、プログラムAのデータ領域1203に格納される。
次に、プログラムA0102は、プログラムA0102からプログラムB0103への切替処理を行う(ステップS1106)。
切替処理(ステップS1106)が実行される以前、不正動作防止制御部0105には、プログラムA用コード領域管理情報テーブルT0900およびプログラムA用データ領域管理情報テーブルT0500の情報が設定されている。
ここで、動作中のプログラムに合わせた鍵が鍵レジスタに設定されるように、不正動作防止制御部0105を構成している鍵レジスタ0205の命令用鍵情報テーブル0305に各コード領域管理情報テーブルの設定が反映され、データ用鍵情報テーブル0306に各データ領域管理情報テーブルの設定が反映される。
例えば、プログラムB0103の動作中にコード暗号鍵KC_Aで暗号化されてRAM0202に格納されているプログラムAのコード領域1201(1000〜1099番地に配置されている)に分岐する場合、コード領域1201のコードはコード暗号鍵KC_RBを用いて復号化される。
また、同様にプログラムB0103の動作中にプログラムAのデータ領域1202にアクセスしたとしてもデータ暗号鍵が異なるので、意味のあるデータは取得できない。
そのため、割り込みおよび例外によって、プログラムB0103以外のプログラムに制御を奪われることがない。
ここで、プログラムB0103は、2500〜2599番地までのデータ領域をプログラムB0103のみアクセス可能な状態で確保するよう不正動作防止制御部0106に依頼をする。
次に、プログラムB0103は、データ領域1203をプログラムAと共有するためにデータ保護設定を行う(ステップS1108)。
データ領域1203は、既にプログラムA0102によって確保されているので、データ領域を共有することとなる。
ここで、コード・データ保護設定(ステップS0807)において、不正動作防止制御部0106は、図10に示すデータ領域共有設定処理0604を行う。
データ領域共有設定処理0604において、不正動作防止制御部0106は、要求されているデータ領域がセキュリティ要件管理情報テーブルT1400に存在するかどうかを確かめる(ステップS0632)。
次に不正動作防止制御部0106は、プログラムBのプログラム管理情報T1302に含まれる機能フラグが、要求されているデータ領域のセキュリティ要件管理情報T1403に含まれるセキュリティ要件を満たすかどうかを確かめる。
その結果、セキュリティ要件管理情報T1403に含まれる共有プログラム識別子にプログラムBの識別子が設定される。
次に管理テーブルの更新(ステップS0634)が行われ、プログラムB用データ領域管理情報テーブルT0600にデータ領域管理情報T0602が追加される。
次にデータ保護設定の変更(ステップS0635)が行われ、鍵レジスタ0205の設定が変更される。
その結果、プログラムB0103からもプログラムAのデータ領域1203の参照が可能となる。
次にプログラム保護装置0101は、プログラムBからCへの切替処理を行う(ステップS1110)。
次に、プログラムC0107は、プログラムCのデータ領域1207を使用可能にするために不正動作防止制御部0106に対しデータ保護設定を依頼する(ステップS1111)。
その結果、プログラムC用データ領域管理情報テーブルT0700にデータ領域管理情報T0701が追加されると共に、セキュリティ要件管理情報テーブルT1400にセキュリティ要件管理情報T1405が追加される。
ここで、プログラムC0107は、1600〜1699番地までのデータ領域1203をファイルへの出力可を示すセキュリティ要件で確保するよう不正動作防止制御部0106に依頼をする。
共有メモリの設定(ステップS1112)は、共有メモリの設定(ステップS1108)と異なり、共有メモリの設定は失敗する。
データ領域共有設定処理0604における、要求の妥当性判断(ステップS0633)で妥当でないと判断されるからである。
セキュリティ要件がファイル出力不可であるのに機能フラグが出力可能であるので、不正動作防止制御部0106は、データ領域1203のセキュリティ要件をプログラムCが満たしていないと判断し(ステップS0633のNO)、不正動作防止制御部0106は、不正動作防止制御処理を終了する。
<6.変形例>
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1) 第1実施形態において、コード暗号鍵0710等のコード暗号鍵は、公開鍵暗号アルゴリズムで暗号化されているとしていたが、これに限るものではない。
また、データ0701を暗号化しない場合、データ暗号鍵0702はNULL鍵とする。
(2) 上述の実施形態では、不正動作防止回路0105を用いて、RAM0202へのアクセスを制限していたが、これに限らず、RAM0202へのアクセスを、プログラム単位で制限することができる他の回路、方法等を用いてもよい。
不正動作防止回路2105は、RAM0202に記憶させるコード、データに対し暗号化、復号を行うのに代えて、RAM0202へのアクセスを、プログラムIDを用いて制限する。
IDレジスタ2205は、図23に示すように、アドレスと命令用バス接続IDとの対応を示す命令用ID情報テーブル2305と、アドレスとデータ用バス接続IDとの対応を示すデータ用ID情報テーブル2306とを保持しており、バス接続許可回路2204からアドレス信号2301を取得して、アドレス信号2301が示すアドレスに対応づけられている命令用バス接続ID2302と、データ用バス接続ID2303とをバス接続許可回路2204に出力する。
また、IDレジスタ2205の設定は、状態切替回路0208が出力する状態信号Bが保護モードを示すときのみ、バス0210により通知される設定信号2304を用いて変更することができる。
バス接続許可回路2204は、IDレジスタ2205から通知されるデータ用バス接続ID、コード用バス接続IDと、現在動作中のプログラム固有のIDとを比較し、一致する場合に、当該アドレスで示されるメモリ領域へのアクセスを許可する。前述の現在動作中のプログラム固有のIDは、カレントプログラム管理テーブルT0503に設定されているカレントプログラムの固有のIDである。
また、バス接続許可回路2204は、CPU0201上で動作するプログラムが命令フェッチのためにRAM0202にアクセスしているのか、データアクセスのためにアクセスしているのかを検知し、同一物理アドレスへの命令フェッチの場合には命令用バス接続IDを用い、データアクセスの場合にはデータ用バス接続IDを用いる。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
(6)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
<7.用語についての補足説明>
前記データ処理装置は、プログラム保護装置0101に相当する。
前記アクセス手段は、不正動作防止制御回路0105及びRAM0202及び保護メモリ0206及びアクセス制限回路0207に相当する。
前記切替手段は、状態切替部0208に相当する。
前記判定手段は、不正動作防止制御部0106に相当する。
前記メモリは、RAM0202に相当する。
前記保持部は、鍵レジスタ0205に相当する。
前記アクセス制限部は、不正動作防止制御部0106及びセキュリティカーネル0401及び不正動作防止制御回路0105及びRAM0202及び保護メモリ0206及びアクセス制限回路0207に相当する。
前記アドレス判定部は、鍵レジスタ0205とバス暗号回路0204に相当する。
前記アクセス実行部は、バス暗号回路0204に相当する。
前記管理情報追加部は、不正動作防止制御部0106に相当する。
前記ベクタテーブル書換手段は、不正動作防止制御部0106に相当する。
前記使用要求受付部は、バス暗号回路0204に相当する。
前記使用判定部は、バス暗号回路0204に相当する。
前記権限判定部は、不正動作防止制御部0106に相当する。
前記デバッグ手段は、デバッガI/F0209に相当する。
前記強制無効化手段は、CPU0201に相当する。
0102 プログラムA
0103 プログラムB
0104 オペレーティングシステム(OS)
0105 不正動作防止回路
0106 不正動作防止制御部
0107 プログラムC
0108 保護対象データ
0109 セキュリティ要件リスト
0110 管理テーブル
0201 CPU
0202 RAM
0203 不揮発メモリ
0204 バス暗号回路
0205 鍵レジスタ
0206 保護メモリ
0207 アクセス制限回路
0208 状態切替回路
0209 デバッガI/F
0210 バス
0216 蓄積メディア
0219 ベクタテーブル
0221 不揮発メモリ
0401 セキュリティカーネル
0402 プログラムA用割り込み管理部
0403 プログラムB用割り込み管理部
0404 OS用割り込み管理部
0405 BIOS
0406 プログラムC用割り込み管理部
Claims (14)
- プログラムに従って動作するプロセッサを備え、前記プログラムの実行単位であるプロセスが動作する通常モードと前記プロセスの動作が抑制される保護モードを切り替えて動作するデータ処理装置であって、
通常モードにおいて、第1プロセスの処理対象データに対して、前記第1プロセスによるアクセスを許可し、他のプロセスによるアクセスを禁止するアクセス禁止手段と、
通常モードにおいて、前記第1プロセスから、第2プロセスの呼び出しを指示する呼出命令を検出する検出手段と、
前記呼出命令が検出されると、通常モードから保護モードに切り替える切替手段と、
保護モードにおいて、前記第2プロセスが、前記処理対象データについての使用権限を有しているか否かを判断する判断手段と、
保護モードにおいて、前記第2プロセスが前記使用権限を有していると判断される場合に、前記アクセス禁止手段に対して、前記第2プロセスが前記通常モードにおいて、前記処理対象データに対しアクセスすることが許可されるように制御する制御手段と
を備えることを特徴とするデータ処理装置。 - 前記アクセス禁止手段は、
メモリと、
プロセス毎の前記メモリ内でアクセスを許可する領域を示す管理情報を、保護モードにおいてのみ書き換え可能に保持する保持部と、
通常モードで動作するプロセスを、前記管理情報に従って前記メモリにアクセスさせるアクセス制限部と、
を含み、
前記制御手段は、前記判断手段により使用権限があると判定された場合に、第2プロセスの管理情報に、前記メモリ上で前記対象データが保持されている領域へのアクセスを許可する情報を追加する
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記保持部が保持する前記管理情報は、前記メモリ中のアドレスと、アドレスに対応する鍵とを対応付けた情報を一以上含み、
前記アクセス制限部は、
前記メモリのアドレスを含む前記メモリへのアクセス要求を取得する取得部と、
前記アクセス要求に含まれるアドレスが、前記管理情報に含まれるか否かを判定するアドレス判定部と、
含まれると判定された場合に、前記アクセス要求が書込要求であれば、書き込むデータを前記アドレスに対応する鍵で暗号化して前記アドレスで示される領域に書込み、前記アクセス要求が読出要求であった場合には、前記メモリの前記アドレスから読み出したデータを、前記アドレスに対応する鍵を用いて復号して出力するアクセス実行部と
を含むことを特徴とする請求項2に記載のデータ処理装置。 - 前記データは、プロセスのコードである
ことを特徴とする請求項2に記載のデータ処理装置。 - 各プロセスには、個別のプロセス識別子が割り当てられ、
前記保持部が保持する前記管理情報は、前記メモリ中のアドレスと、前記アドレスへのアクセスが許可されているプロセスを示すプロセス識別子とを対応付けた情報を一以上含み、
前記アクセス制限部は、
前記メモリのアドレスを含む前記メモリへのアクセス要求を取得する取得部と、
アクセス要求に含まれるアドレスと、アクセス要求したプロセスに割り当てられたプロセス識別子とを対応付けた情報が、前記管理情報に含まれるか否かを判定するアドレス判定部と、
含まれると判定された場合に、アクセス要求したプロセスを、前記メモリの前記アドレスにアクセスさせるアクセス実行部と
を含むことを特徴とする請求項2に記載のデータ処理装置。 - 前記データには、一以上のデータ処理方法それぞれについて実行を許可するか否かを示すセキュリティ要件情報が割り当てられ、
プロセスそれぞれには、一以上のデータ処理方法それぞれを実行可能か否かを示す機能情報が割り当てられ、
前記呼出命令は、一以上のデータ処理方法のいずれかを示す処理特定情報を含み、
前記判断手段は、前記セキュリティ要件情報が前記処理特定情報により示されるデータ処理方法の実行を許可しておりかつ第2プロセスの機能情報が、前記処理特定情報により示されるデータ処理方法の実行が可能であることを示す場合に、前記使用権限があると決定する
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記切替手段は、前記通常モードから前記保護モードへと切り替える場合に、前記通常モードで動作しているプロセスのコンテキストを前記メモリに退避し、
前記保護モードから前記通常モードへと切り替える場合に、次に前記通常モードで動作するプロセスのコンテキストを前記メモリから復帰させる
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記第1プロセス及び前記第2プロセスは、それぞれが動作している間に割り込み又は例外が発生した場合に、その割り込み又は例外を処理する割込処理又は例外処理を含み、
前記データ処理装置は、さらに、
割り込み又は例外が発生した場合に、実行されるべき処理を示すベクタテーブルを、保護モードにおいてのみ書き換え可能に保持するベクタテーブル保持手段と、
動作するプロセスが、前記第1プロセスから前記第2プロセスへと切り替わる前に、保護モードにおいて前記ベクタテーブルを、前記通常モードにおいて割り込み又は例外が発生した際に第2プロセスの割込処理又は例外処理を実行するよう書き換えるベクタテーブル書換手段と
を含むことを特徴とする請求項7記載のデータ処理装置。 - 前記判断手段は、さらに、
プロセスから前記メモリにおける領域の使用要求を受け付ける使用要求受付部と、
使用要求されたアドレスが、既に使用されているか否かを判定する使用判定部と、
使用されていなかった場合に、使用要求したプロセスの、前記アドレスに格納を要望するデータについての使用権限の有無を判定する権限判定部と、
前記権限判定部により使用権限があると判定された場合に、使用要求したプロセスの管理情報に、前記アドレスで示される領域へのアクセスを許可する情報を登録する管理情報登録部と
を含むことを特徴とする請求項1に記載のデータ処理装置。 - 前記管理情報登録部は、前記権限判定部により使用権限があると判定された場合に、鍵を生成し、前記アクセスを許可する情報として、前記アドレスと生成した鍵とを対応付けた情報の組を使用要求した前記プロセスの管理情報に追加する
ことを特徴とする請求項9に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
前記プロセスに係るデバッグを行うデバッグ手段を含み、
前記切替手段は、さらに、前記通常モードに切り替える場合に、前記デバッグ手段を有効化し、前記保護モードに切り替える場合に、前記デバッグ手段を無効化する
ことを特徴とする請求項1記載のデータ処理装置。 - プログラムに従って動作するプロセッサを備え、前記プログラムの実行単位であるプロセスが動作する通常モードと前記プロセスの動作が抑制される保護モードを切り替えて動作するデータ処理装置に用いられるデータ処理方法であって、
通常モードにおいて、第1プロセスの処理対象データに対して、前記第1プロセスによるアクセスを許可し、他のプロセスによるアクセスを禁止するアクセス禁止ステップと、
通常モードにおいて、前記第1プロセスから、第2プロセスの呼び出しを指示する呼出命令を検出する検出ステップと、
前記呼出命令が検出されると、通常モードから保護モードに切り替える切替ステップと、
保護モードにおいて、前記第2プロセスが、前記処理対象データについての使用権限を有しているか否かを判断する判断ステップと、
保護モードにおいて、前記第2プロセスが前記使用権限を有していると判断される場合に、前記アクセス禁止手段に対して、前記第2プロセスが前記通常モードにおいて、前記処理対象データに対しアクセスすることが許可されるように制御する制御ステップと
を含むことを特徴とするデータ処理方法。 - プログラムに従って動作するプロセッサを備え、前記プログラムの実行単位であるプロセスが動作する通常モードと前記プロセスの動作が抑制される保護モードを切り替えて動作するデータ処理装置に用いられるコンピュータプログラムであって、
通常モードにおいて、第1プロセスの処理対象データに対して、前記第1プロセスによるアクセスを許可し、他のプロセスによるアクセスを禁止するアクセス禁止ステップと、
通常モードにおいて、前記第1プロセスから、第2プロセスの呼び出しを指示する呼出命令を検出する検出ステップと、
前記呼出命令が検出されると、通常モードから保護モードに切り替える切替ステップと、
保護モードにおいて、前記第2プロセスが、前記処理対象データについての使用権限を有しているか否かを判断する判断ステップと、
保護モードにおいて、前記第2プロセスが前記使用権限を有していると判断される場合に、前記アクセス禁止手段に対して、前記第2プロセスが前記通常モードにおいて、前記処理対象データに対しアクセスすることが許可されるように制御する制御ステップと
をコンピュータに実行させることを特徴とするコンピュータプログラム。 - プログラムに従って動作するプロセッサを備え、前記プログラムの実行単位であるプロセスが動作する通常モードと前記プロセスの動作が抑制される保護モードを切り替えて動作する集積回路であって、
通常モードにおいて、第1プロセスの処理対象データに対して、前記第1プロセスによるアクセスを許可し、他のプロセスによるアクセスを禁止するアクセス禁止手段と、
通常モードにおいて、前記第1プロセスから、第2プロセスの呼び出しを指示する呼出命令を検出する検出手段と、
前記呼出命令が検出されると、通常モードから保護モードに切り替える切替手段と、
保護モードにおいて、前記第2プロセスが、前記処理対象データについての使用権限を有しているか否かを判断する判断手段と、
保護モードにおいて、前記第2プロセスが前記使用権限を有していると判断される場合に、前記アクセス禁止手段に対して、前記第2プロセスが前記通常モードにおいて、前記処理対象データに対しアクセスすることが許可されるように制御する制御手段と
を備えることを特徴とする集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007517924A JP4886682B2 (ja) | 2005-05-26 | 2006-05-26 | データ処理装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005153478 | 2005-05-26 | ||
JP2005153478 | 2005-05-26 | ||
JP2007517924A JP4886682B2 (ja) | 2005-05-26 | 2006-05-26 | データ処理装置 |
PCT/JP2006/310584 WO2006126686A1 (ja) | 2005-05-26 | 2006-05-26 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2006126686A1 JPWO2006126686A1 (ja) | 2008-12-25 |
JP4886682B2 true JP4886682B2 (ja) | 2012-02-29 |
Family
ID=37452108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007517924A Expired - Fee Related JP4886682B2 (ja) | 2005-05-26 | 2006-05-26 | データ処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7874009B2 (ja) |
JP (1) | JP4886682B2 (ja) |
CN (1) | CN101233525A (ja) |
WO (1) | WO2006126686A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190105507A (ko) * | 2018-03-05 | 2019-09-17 | 삼성전자주식회사 | 부채널 공격으로부터 캐시를 보호하는 시스템 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325077A1 (en) * | 2007-02-21 | 2010-12-23 | Naoshi Higuchi | Computer, operation rule application method and operating system |
US8775824B2 (en) | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US8332660B2 (en) | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
KR101425621B1 (ko) * | 2008-01-15 | 2014-07-31 | 삼성전자주식회사 | 컨텐츠를 안전하게 공유하는 방법 및 시스템 |
JP2009278491A (ja) * | 2008-05-16 | 2009-11-26 | Casio Comput Co Ltd | マイクロプロセッサ及びマイクロプロセッサ応用装置 |
US8484486B2 (en) * | 2008-08-06 | 2013-07-09 | Silver Spring Networks, Inc. | Integrated cryptographic security module for a network node |
US8555089B2 (en) * | 2009-01-08 | 2013-10-08 | Panasonic Corporation | Program execution apparatus, control method, control program, and integrated circuit |
JP5272751B2 (ja) * | 2009-01-26 | 2013-08-28 | 富士通セミコンダクター株式会社 | プロセッサ |
US20110167496A1 (en) * | 2009-07-07 | 2011-07-07 | Kuity Corp. | Enhanced hardware command filter matrix integrated circuit |
KR101601790B1 (ko) * | 2009-09-22 | 2016-03-21 | 삼성전자주식회사 | 암호키 선택장치를 구비하는 스토리지 시스템 및 암호 키 선택방법 |
US8301856B2 (en) * | 2010-02-16 | 2012-10-30 | Arm Limited | Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag |
JP5225412B2 (ja) * | 2011-03-03 | 2013-07-03 | 株式会社東芝 | 通信装置および通信方法 |
US9076020B2 (en) * | 2011-05-13 | 2015-07-07 | Microsoft Technology Licensing, Llc | Protected mode for mobile communication and other devices |
JP5782120B2 (ja) * | 2011-06-06 | 2015-09-24 | 株式会社ソシオネクスト | コンテンツデータ再生方法、およびサムネイル画像生成方法 |
US9298918B2 (en) | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US9575903B2 (en) * | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9170843B2 (en) | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US9798873B2 (en) | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US9098608B2 (en) | 2011-10-28 | 2015-08-04 | Elwha Llc | Processor configured to allocate resources using an entitlement vector |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US9558034B2 (en) | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9772875B2 (en) * | 2011-11-29 | 2017-09-26 | Dell Products L.P. | Multiple framework level modes |
KR20140105343A (ko) * | 2013-02-22 | 2014-09-01 | 삼성전자주식회사 | 디바이스 및 디바이스에서 복수의 모드를 이용한 데이터의 보안 방법 |
EP2808818B1 (en) * | 2013-05-29 | 2016-07-13 | Nxp B.V. | Processing system |
WO2015016824A1 (en) * | 2013-07-30 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Resource management based on a process identifier |
JP5911835B2 (ja) | 2013-09-17 | 2016-04-27 | 株式会社東芝 | 情報処理装置 |
DE102015110729A1 (de) * | 2014-07-21 | 2016-01-21 | Dspace Digital Signal Processing And Control Engineering Gmbh | Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle |
JP6370231B2 (ja) * | 2015-01-26 | 2018-08-08 | Kddi株式会社 | ソフトウェア更新装置、方法及びプログラム |
JP2016139322A (ja) * | 2015-01-28 | 2016-08-04 | 株式会社リコー | 画像処理装置及びそれを備えた電子黒板 |
EP3271827A4 (en) * | 2015-07-29 | 2019-02-27 | Hewlett-Packard Enterprise Development LP | FIREWALL FOR DETERMINING ACCESS TO A SECTION OF A MEMORY |
US10339333B2 (en) * | 2016-07-20 | 2019-07-02 | Montage Technology Co., Ltd. | Method and apparatus for controlling application to access memory |
US10649678B2 (en) * | 2017-01-13 | 2020-05-12 | Arm Limited | Partitioning of memory system resources or performance monitoring |
JP2019133345A (ja) * | 2018-01-30 | 2019-08-08 | 東芝メモリ株式会社 | データ蓄積装置、データ処理システムおよびデータ処理方法 |
KR20200021815A (ko) * | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
CN111968693B (zh) * | 2020-08-21 | 2022-08-05 | 广芯微电子(广州)股份有限公司 | 一种mcu及mcu调试接口控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337864A (ja) * | 2000-03-22 | 2001-12-07 | Hitachi Ltd | アクセス制御システム |
JP2002202720A (ja) * | 2000-12-28 | 2002-07-19 | Toshiba Corp | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
JP2004199693A (ja) * | 2002-01-16 | 2004-07-15 | Texas Instruments Inc | 高度機能電話または携帯情報端末用機密保護モード指示器 |
JP2004288155A (ja) * | 2002-11-18 | 2004-10-14 | Arm Ltd | メモリへのアクセスを管理するための装置および方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02155034A (ja) | 1988-12-08 | 1990-06-14 | Toshiba Corp | セキュリティ機能付き計算機 |
JPH04102920A (ja) | 1990-08-22 | 1992-04-03 | Nec Corp | 情報処理装置 |
DE69925087T2 (de) * | 1998-09-22 | 2006-02-02 | Matsushita Electric Industrial Co., Ltd., Kadoma | Optische Platte, Verfahren zur Wiedergabe zusätzlicher Daten aus einer optischen Platte, Wiedergabegerät für optische Platte sowie Aufzeichnungs- und Wiedergabegerät für optische Platte |
US7096268B1 (en) * | 1999-09-01 | 2006-08-22 | Matsushita Electric Industrial Co., Ltd. | Copyrighted data processing method and apparatus |
JP4226760B2 (ja) | 2000-05-08 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 |
US6983374B2 (en) | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US7035850B2 (en) | 2000-03-22 | 2006-04-25 | Hitachi, Ltd. | Access control system |
EP1331539B1 (en) | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
JP4102920B2 (ja) | 2002-07-25 | 2008-06-18 | カシオ計算機株式会社 | 情報提供装置およびプログラム |
GB2396713B (en) | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
KR100941104B1 (ko) | 2002-11-18 | 2010-02-10 | 에이알엠 리미티드 | 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체 |
GB2396451B (en) | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
US7383587B2 (en) | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
US7231476B2 (en) | 2002-11-18 | 2007-06-12 | Arm Limited | Function control for a processor |
RU2005115094A (ru) | 2002-11-18 | 2006-01-20 | Арм Лимитед (Gb) | Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
GB2411027B (en) | 2002-11-18 | 2006-03-15 | Advanced Risc Mach Ltd | Control of access to a memory by a device |
GB2411254B (en) | 2002-11-18 | 2006-06-28 | Advanced Risc Mach Ltd | Monitoring control for multi-domain processors |
GB2396712B (en) | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Handling multiple interrupts in a data processing system utilising multiple operating systems |
AU2003278342A1 (en) | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
GB2395583B (en) | 2002-11-18 | 2005-11-30 | Advanced Risc Mach Ltd | Diagnostic data capture control for multi-domain processors |
US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7370210B2 (en) | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
US7539853B2 (en) | 2002-11-18 | 2009-05-26 | Arm Limited | Handling interrupts in data processing of data in which only a portion of a function has been processed |
RU2005115083A (ru) | 2002-11-18 | 2006-01-20 | Арм Лимитед (Gb) | Переключение процессора между защищенным и незащищенным режимами |
US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US7117284B2 (en) | 2002-11-18 | 2006-10-03 | Arm Limited | Vectored interrupt control within a system having a secure domain and a non-secure domain |
-
2006
- 2006-05-26 WO PCT/JP2006/310584 patent/WO2006126686A1/ja active Application Filing
- 2006-05-26 CN CN200680027404.3A patent/CN101233525A/zh active Pending
- 2006-05-26 US US11/914,525 patent/US7874009B2/en active Active
- 2006-05-26 JP JP2007517924A patent/JP4886682B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337864A (ja) * | 2000-03-22 | 2001-12-07 | Hitachi Ltd | アクセス制御システム |
JP2002202720A (ja) * | 2000-12-28 | 2002-07-19 | Toshiba Corp | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
JP2004199693A (ja) * | 2002-01-16 | 2004-07-15 | Texas Instruments Inc | 高度機能電話または携帯情報端末用機密保護モード指示器 |
JP2004288155A (ja) * | 2002-11-18 | 2004-10-14 | Arm Ltd | メモリへのアクセスを管理するための装置および方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190105507A (ko) * | 2018-03-05 | 2019-09-17 | 삼성전자주식회사 | 부채널 공격으로부터 캐시를 보호하는 시스템 |
KR102287758B1 (ko) | 2018-03-05 | 2021-08-09 | 삼성전자주식회사 | 부채널 공격으로부터 캐시를 보호하는 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20090083520A1 (en) | 2009-03-26 |
JPWO2006126686A1 (ja) | 2008-12-25 |
CN101233525A (zh) | 2008-07-30 |
WO2006126686A1 (ja) | 2006-11-30 |
US7874009B2 (en) | 2011-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4886682B2 (ja) | データ処理装置 | |
US7788487B2 (en) | Data processing apparatus | |
US7469346B2 (en) | Dual virtual machine architecture for media devices | |
JP4612461B2 (ja) | マイクロプロセッサ | |
JP4989543B2 (ja) | メモリドメインを基にしたデータ処理システム内のセキュリティ制御 | |
US9536111B2 (en) | Secure processing unit systems and methods | |
US6983374B2 (en) | Tamper resistant microprocessor | |
JP3881942B2 (ja) | 暗号化部を有する半導体装置 | |
US20090307783A1 (en) | Data processing device, method, program, integrated circuit, and program generating device | |
US20080066075A1 (en) | System and Method for Securely Saving and Restoring a Context of a Secure Program Loader | |
JP4559794B2 (ja) | マイクロプロセッサ | |
WO2006129654A1 (ja) | 電子機器、更新サーバ装置、鍵更新装置 | |
JP2009032282A (ja) | データ・アクセス制御機能を使用した、統合システム内でのセキュア動作の初期化、維持、更新および回復 | |
JP2007514994A (ja) | 耐タンパ・トラステッド仮想マシン | |
JP2005527019A (ja) | マルチトークンのシール及びシール解除 | |
US7523279B2 (en) | Information processing apparatus for accessing memory spaces including a user memory space and a secure memory space | |
US20090106832A1 (en) | Computer system and program creating device | |
US8479014B1 (en) | Symmetric key based secure microprocessor and its applications | |
JP4580024B2 (ja) | コンテンツ再生方法 | |
JP4676547B2 (ja) | 半導体装置およびそのブート方法 | |
WO2006011888A1 (en) | Dual virtual machine architecture for media devices | |
JP5304304B2 (ja) | セキュリティ強化システム、方法、プログラム及びusbメモリ | |
JP2006179029A (ja) | 外部インターフェースを有する半導体装置、およびコンテンツ再生方法 | |
JP2010033613A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110916 |
|
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: 20111115 |
|
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: 20111209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141216 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4886682 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |