JP2005182774A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2005182774A JP2005182774A JP2004342650A JP2004342650A JP2005182774A JP 2005182774 A JP2005182774 A JP 2005182774A JP 2004342650 A JP2004342650 A JP 2004342650A JP 2004342650 A JP2004342650 A JP 2004342650A JP 2005182774 A JP2005182774 A JP 2005182774A
- Authority
- JP
- Japan
- Prior art keywords
- program
- secure
- normal
- data processing
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Telephonic Communication Services (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】 本発明は、前記セキュアリソースを利用する1つ以上の処理手順と通常モードで実行される通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶しており、前記セキュアプログラムの実行途中に、前記呼出命令により、通常プログラムを呼び出し、呼び出した通常プログラムに従って動作するデータ処理装置である。
【選択図】 図8
Description
従来技術によると、保護される必要のあるセキュアデータ及び保護される必要のあるセキュアアプリケーションへのアクセスが可能なセキュアモードと、これらのセキュアデータ及びセキュアアプリケーションにアクセスすることができない通常モードとをモニタによって切り替えて実行するデータ処理装置が開示されている。この技術よると、通常モードにおいて動作するアプリケーションは、通常モードで動作するオペレーティングシステムを介して、セキュアアプリケーションへ処理を依頼する。オペレーティングシステムは、モニタへ実行モードの切替を依頼し、モニタは、実行モードを切り替える。セキュアアプリケーションは、依頼された処理を行い、処理結果をセキュア実行モードで動作するセキュアオペレーティングシステムを介して、アプリケーションへ返却する。セキュアオペレーティングシステムは、モニタに実行モードの切替を依頼し、モニタは実行モードを切り替える。このような構成により、セキュアモードと通常モードとを切り替えて実行することで、通常モードで動作するアプリケーションから、直接セキュアデータやセキュアアプリケーションへアクセスすることはできない。従って、セキュアデータ及びセキュアアプリケーションを保護することができる。
A New Foundation for CPU Systems Security(平成15年11月20日検索、URL:http://www.arm.com/armtech.nsf/htmlall/FC4C07580E29428080256D1A004A2345/$File/TrustZone_WP.pdf?OpenElement)
この構成によると、前記切替手段は、前記セキュアオペレーティングシステムを中断させた後、通常オペレーティングシステムを起動する。このため、当該データ処理装置は、通常モードで動作中には、前記セキュアリソースへのアクセスルートを完全に切断し、セキュアモードと通常モードとを排他的に実現することができる。
また、前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報に対応する位置情報により示される存在位置から前記通常プログラムを読み出すことを特徴とする。
前記データ処理装置において、前記通常プログラムを構成する1の処理手順は、ライブラリを構成する複数の関数を含み、他の処理手順は、前記複数の関数のうちのいずれかを呼び出し、前記処理手段は、前記他の処理手順に従って動作する場合に、当該他の処理手順により呼び出される関数に従って動作することを特徴とする。
この構成では、前記読出手段は、前記通常プログラムが前記通常記憶手段に書き込まれた場合に、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶する。このようにすることで、前記セキュアプログラムのロード直後から、前記読出手段は前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶している。従って、セキュアプログラム含まれる呼出し命令が実行される際には、速やかに前記通常プログラムを読み出すことができる。
従って、前記セキュアプログラムがロードされていない間は、前記通常プログラムもロードする必要がないため、このようにすることで、前記通常プログラムによって、通常モードで使用するメモリ領域を無駄にすることを防ぐことができる。
この構成によると、前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しているため、受け取った識別情報対応する位置情報を用いて、確実かつ迅速に、前記通常プログラムを読み出すことができる。
この構成によると、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリソースと前記処理手段とを切断するため、通常モードにおいて、前記処理手段は、前記セキュアリソースにアクセスすることができない。従って、前記セキュアリソースの安全を確保することができる。
この構成では、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリソースに保持されているセキュア情報を暗号化するため、通常モードにおいて、前記処理手段は、前記セキュアデータを利用することができない。従って、通常モードにおいて、前記セキュアリソースの保持するセキュアデータの安全を確保することができる。
また、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記データ部分を暗号化するとてもよい。
この構成によると、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記命令コード部分を暗号化する。又は、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記データ部分を暗号化する。又は、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記スタック部分を暗号化する。
前記データ処理装置は、さらに、前記処理手段の動作を監視し、操作するデバッグ装置からデバッグ操作信号を受け付けるデバッグ受付手段を含み、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記処理手段と前記デバッグ受付手段とを接続し、通常モードからセキュアモードに切り替える際に、前記処理手段と前記デバッグ受付手段とを切断することを特徴とする。
本発明のデータ処理装置において、前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報に対応する位置情報により示される存在位置から前記通常プログラムを読み出す構成であっても良い。
本発明は、第1オペレーティングシステムと第2オペレーティングシステムとを切り替え、各オペレーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理装置であって、前記第1オペレーティングシステムにおいて、第1プロセスを生成する第1生成手段と、前記第2オペレーティングシステムにおいて、前記第1プロセスと対応する第2プロセスを生成する第2生成手段と、前記第1オペレーティングシステムにおいて、前記第1プロセスの状態遷移を検出する第1検出手段と、前記第1オペレーティングシステムにおいて、検出された状態遷移を示す遷移情報を出力する第1出力手段と、前記第1オペレーティングシステムを前記第2オペレーティングシステムに切り替えるOS切替手段と、前記第2オペレーティングシステムにおいて、前記遷移情報を取得する第2取得手段と、取得した前記遷移情報に従って、前記第2プロセスの状態を遷移させる第2遷移手段とを備えることを特徴とするデータ処理装置でもある。
従って、第2オペレーティングシステムと第1オペレーティングシステムとを排他的に実行しながら、第2オペレーティングシステムから第1オペレーティングシステムへ情報を受け渡すことができる。
この構成によると、前記第2プロセスは、前記デバイスの駆動を制御するデバイス駆動プログラムであり、前記第2検出手段は、前記デバイスの動作に伴う前記第2プロセスの状態遷移を検出する。従って、前記第1プロセスも、前記デバイス駆動プログラムの状態遷移に伴って招待遷移し、前記第1オペレーティングシステムにおいても、前記デバイスの駆動状態を監視することができる。
前記データ処理装置において、前記通知手段は、割込が検出された場合、前記割込検出手段に対して、割込の検出を停止させ、前記第1取得手段は、前記割込通知情報を取得した場合、前記割込検出手段に対して、前記停止を解除することを特徴とする。
前記データ処理装置において、前記正当性判断手段は、前記記憶手段に記憶されている前記プログラムを示すプログラム識別情報を取得するプログラム情報取得部と、無効化されたプログラムを示す無効化識別情報を取得する無効化情報取得部と、取得した前記プログラム識別情報と取得した前記無効化識別情報とが一致するか否かを判断する判断部とを含み、一致すると判断される場合に、前記プログラムが不正であると決定することを特徴とする。
本発明のデータ処理装置に含まれる前記プログラム情報取得部は、前記プログラムを示すプログラム識別情報を記憶している識別情報記憶部と、前記識別情報記憶部から前記プログラム識別情報を読み出すことにより取得する読出部とを含み、前記無効化情報取得部は、無効化されたプログラムを示す無効化識別情報を記憶している無効化情報記憶部と、前記無効化情報記憶部から前記無効化識別情報を読み出すことにより取得する読出部とを含むことを特徴とする。
この構成によると、前記正当性判断手段は、前記プログラムに割り当てられた公開鍵の正当性を証明する前記公開鍵証明書に基づいて、前記判断を行う。公的な第三者機関により発行された公開鍵証明書を用いることで、前記プログラムの正当性をより確実に判定することができる。
前記データ処理装置において、前記正当性判断手段は、さらに、外部から最新の無効化識別情報を取得し、取得した無効化識別情報を前記無効化情報記憶部に書き込む更新部を含むことを特徴とする。
上記の構成では、前記更新部は、前記記憶手段へのアクセス要求を検出する度に、最新の無効化識別情報を取得するため、前記判定部は常に最新の無効化識別情報を用いて前記プログラムの正当性を判断することができる。
上記の構成では、前記更新部は、CRL発行装置から、ネットワークを介して、前記無効化識別情報を受信するため、最新の無効化識別情報を取得することができる。
また、記録媒体から前記無効化識別情報を読み出すことにより、前記CRL発行装置と通信する環境がない場合でも、当該データ処理装置は、前記無効化識別情報を更新することもできる。
この構成では、前記更新部は、前記署名データを取得し、取得した署名データに署名検証を施し、署名検証が成功した場合に、取得した前記無効化識別情報を前記無効化情報記憶部に書き込むため、前記無効化識別情報の正当な発行者から発行された無効化識別情報を取得することができる。
この構成では、前記正当性判断手段は、少なくとも2個の公開鍵証明書を用いて、前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断する。複数の公開鍵証明書を用いて前記判断を行うことで、より正確に、前記プログラムが不正であるか否かを判断できる。
前記データ処理装置を構成する前記正当性判断手段は、前記記憶手段へのアクセス要求を検出する度に、前記判断をすることを特徴とする。
また、前記正当性判断手段は、前記記憶手段に記憶されているプログラムへのアクセス要求を検出する度に、前記判断してもよい。
上記の構成によると、前記正当性判断手段は、前記記憶手段へのアクセス要求を検出する度に、前記判断をする。又は、前記記憶手段に記憶されているプログラムへのアクセス要求を検出する度に、前記判断をする。又は、当該データ処理装置へ電力供給が開始された直後に、前記判断をする。従って、前記プログラムを実行する前に、前記プログラムが不正であるか否かを判断することができる。
この構成では、前記監視手段は、前記プロセッサにより実行されるアプリケーションプログラム毎に、転送制限条件を選択し、選択した転送制限条件を用いる。前記データ処理装置において、複数のアプリケーションプログラムが実行される場合、アプリケーションごとに利用するデータやデバイスが異なることは十分考えられる。従って、アプリケーションプログラムごとに異なる転送制限条件を用いることで、当該データ処理装置は、複数のアプリケーションプログラムを安全に実行することができる。
上記に構成によると、前記監視手段は、抽出したアドレス情報が、前記アドレス範囲情報に含まれる場合に、前記転送データの転送を抑制する。従って、前記プロセッサが前記所定の記憶空間にアクセスすることを阻止することができる。
この構成によると、前記監視手段は、前記プロセッサに接続されるバス上において転送される前記転送データが転送制限条件を満たしているか否かを判断するため、前記プロセッサから伝送データが出力される度に、確実に、前記判定を行うことができる。
この構成では、前記監視手段は、転送制限条件を満たしていると判断する場合に、前記プロセッサにより実行中の前記プログラムを識別する識別情報をプログラム無効化リストに追加ため、前記プロセッサにより、このプログラムが再度実行されることを防ぐことができる。
1. 実施の形態1
本発明の実施の形態について、以下に説明する。
図1は、本発明の携帯電話100の使用例を示している。携帯電話100は、メモリカード300を装着される。
また、携帯電話100は、基地局15、携帯電話網10、インターネット20を介してコンテンツ配信装置と接続されている。携帯電話100は、コンテンツ配信装置の記憶している音楽、映像などから構成される各種のコンテンツをインターネット、携帯電話網を介して取得する。
メモリカード300は、図2に示すように、入出力部301、セキュア処理部302、一般領域303及びセキュア領域306から構成される。
一般領域303は、外部機器により自由にアクセスすることができる記憶領域であり、暗号化音楽データ304を記憶している。セキュア領域306は、許可された外部機器のみがアクセスできる記憶領域であり、コンテンツ鍵307が記憶されている。
暗号化アルゴリズムE1は、一例としてDES(Data Encryption Standard)などを用いる。
セキュア処理部302は、外部機器との間で、CPRM(Content Protection for Recordable Media)の仕組みに基づいて相互認証を行い、認証に成功した場合に、認証した機器と鍵を共有する。共有した鍵を用いて、外部機器との間で、安全にデータの入出力を行う。
1.2 携帯電話100の構成
携帯電話100は、図2に示すように、デバッガIF101、CPU102、MMU103、二次記憶部104、切替制御部106、割込コントローラ107、入力部108、表示部109、通常メモリ111、共有メモリ112、セキュアメモリ113、メモリ保護部114、入出力部116、暗号処理デバイス117、無線通信制御部118、マイク119、スピーカ120、通信部121、アンテナ122、バッファ123、符号処理部124及びD/A変換部126から構成され、各回路はバス130に接続されている。
(1)二次記憶部104、共有メモリ112
二次記憶部104は、ROMから構成され、一例として、図3に示すように、暗号化音楽復号プログラム141及び音楽復号デーモン142などを記憶している。
音楽復号デーモン142は、通常メモリ111上にロードされて実行されるプログラムであり、音楽復号プログラムと1対1に対応する。
共有メモリ112は、RAMから構成され、通常メモリ111上のプログラム及びセキュア記憶上のプログラムいずれのプログラムからも使用可能なメモリである。
(2)通常メモリ111及びセキュアメモリ113
通常メモリ111は、RAM及びROMから構成され、CPU102により実行される各種のプログラムを記憶している。一例として、図4に示すように、通常OS151、ライブラリ152、音楽再生プログラム153、音楽復号デーモン156、通常入出力デバイスドライバ157、セキュア入出力エントリデバイスドライバ158、暗号エントリデバイスドライバ159、通常切替デバイスドライバ160及び通常割込ハンドラ161を記憶している。
セキュアメモリ113は、一例として、図6に示すように、セキュアOS171、音楽復号プログラム176、セキュア入出力デバイスドライバ178、暗号デバイスドライバ179、セキュア切替デバイスドライバ180、セキュア割込ハンドラ181を記憶している。
<通常OS151>
通常OS151は、通常メモリ111上にロードされて実行される各種のプログラムを制御する基本ソフトウェアであり、制御プログラムと制御データから構成される。
ハンドル値は、セキュアメモリ113上にロードされるセキュアアプリケーションに割り当てられる識別子である。
デーモンアドレスは、セキュアアプリケーションと対応して動作するプログラムの通常メモリ111上のロードアドレスである。
具体的にエントリ167について説明すると、ハンドル値「1」は、音楽再生プログラム153がセキュアな処理を依頼する音楽復号プログラム176(後述する)に割り当てられる識別子である。デーモンアドレス「0000BBBB」は、音楽復号プログラム176と対応して動作する音楽復号デーモン156の通常メモリ111上のロードアドレスである。アプリコンテキストアドレス「0000AAEE」は、音楽再生プログラム153のコンテキストを保存している通常メモリ111上のアドレスである。
コマンド部1011に格納されるコマンドには、セキュアアプリ登録要求、登録完了通知、アプリ復帰要求、セキュアアプリ削除命令、削除完了通知、システムコール、応答通知、セキュア処理要求、外部処理要求、休眠要求、割込発生通知などがある。
セキュアアプリ登録要求は、通常メモリ111上で動作するアプリケーションが、セキュアな処理を依頼するセキュアアプリケーションをセキュアメモリ113上にロードし使用可能な状態にすることを要求するコマンドである。このとき、図9(b)の示すようにデータ格納部1012には、セキュアアプリケーションを示すセキュアアプリ情報とセキュアアプリケーションと対応して動作するプログラムを示すデーモン情報とが格納される。音楽再生プログラム153から出力されるセキュアアプリ登録要求を例にすると、セキュアアプリ情報は、二次記憶部104上の暗号化音楽復号プログラム141の記憶されているアドレスであり、デーモン情報は、音楽復号デーモン142の記憶されているアドレスである。なお、セキュアアプリ情報及びデーモン情報は、暗号化音楽復号プログラム141及び音楽復号デーモン142と対応する識別子などでも良い。
アプリ復帰要求は、依頼されていた処理を終えたセキュアアプリケーションが、依頼元であるアプリケーションの復帰を要求するコマンドである。このとき、データ格納部には、セキュアアプリケーションを示す識別情報が格納されている。
削除完了通知は、セキュアメモリ113上のセキュアアプリケーションが削除されたことを通知するものである。このとき、データ格納部1012には、削除されたセキュアアプリケーションを一意に識別するハンドル値が格納されている。
割込発生通知は、割込の発生を通知するものである。
ここで、セキュアアプリ登録要求、登録完了通知、アプリ復帰要求、セキュアアプリ削除命令及び削除完了通知については、具体的に、通常メモリ111上のアプリケーションを音楽再生プログラム153、セキュアアプリケーションを音楽復号プログラム176、セキュアアプリケーションと対になって動作するプログラムを音楽復号デーモン156として説明する。
読み出したコマンドを解読し(ステップS1002)、解読したコマンドが登録完了通知であれば、音楽復号デーモン156を通常メモリ111上にロードし(ステップS1004)、ロードしたアドレスと、登録完了通知のデータ格納部に含んで受け取ったハンドル値「1」をアプリ管理表166のエントリ167に書き込み(ステップS1005)、ハンドル値「1」を音楽再生プログラム153へ出力する。
読み出したコマンドが割込発生通知であれば(ステップS1002)、CPU102の割込レジスタに書き込まれているダミーデータを消去することで割込マスクを解除する(ステップS1007)。割込マスクについては、後のセキュア割込ハンドラ181に関する説明において述べる。
読み出したコマンドが、削除完了通知であれば(ステップS1002)、データ格納部に含まれるハンドル値「1」と対応する音楽復号デーモン156を通常メモリ111から削除し(ステップS1011)、アプリ管理表166からハンドル値「1」を含むエントリ167を削除する(ステップS1012)。
システムコールを受け付けると(ステップS1013)、データ格納部に書き込まれているハンドル値又はデバイスIDなどの仲介先を示す識別情報と対応するプログラムを呼び出し、データ格納部に含まれる情報を出力する(ステップS1014)。例えば、ハンドル値「1」が含まれていると、アプリ管理表166でハンドル値「1」を含むエントリ167を選択し、選択したエントリ167のデーモンアドレスを基に音楽復号デーモン156を呼び出し、デバイスID_Cが含まれていると、暗号エントリデバイスドライバ159を呼び出す。
休眠要求を受け付けると(ステップS1013)、データ格納部に書き込まれているハンドル値又はデバイスIDなどの識別情報に対応するプログラムと対応するプログラムを休眠状態に遷移させる(ステップS1016)。休眠状態とは、一切の動作を行わない状態を言う。
セキュア処理要求を受け付けると(ステップS1013)、受け付けたセキュア処理要求を共有メモリ112に書き込む(ステップS1021)。次に、切替処理を行う(ステップS1028)。
なお、本実施の形態では、通常OS151とセキュアOS171とは、共有メモリ112を介して、各種のコマンドをやり取りしているが、共有メモリ112に代わって、専用レジスタを用いるとしてもよい。
<セキュアOS171>
セキュアOS171は、図6に示すように、オペレーティングプログラム172、デバッグ無効化プログラム173、暗復号プログラム174から構成される。
暗復号プログラム174は、予め復号鍵をコーディングされており、暗号化音楽復号プログラムを復号して、音楽復号プログラムを生成する。
セキュアアプリ管理表186は、図7に示すように、複数のエントリ187、188・・・を含む。各エントリは、ハンドル値、セキュアアプリアドレス、セキュアアプリコンテキストアドレスから構成され、セキュアメモリ113上にロードされているセキュアアプリケーションと対応している。
セキュアアプリアドレスは、セキュアアプリケーションがロードされている、セキュアメモリ113上のアドレスである。セキュアアプリコンテキストアドレスは、セキュアアプリケーションのコンテキストが保存されているセキュアメモリ113上のアドレスである。
ここで、デバイスID_B及びデバイスID_Cは、通常OS151の有する制御データに含まれるデバイスID_B及びデバイスID_Cと同一である。
以下の説明において、説明の便宜上、オペレーティングプログラム172の行う処理を、セキュアOS171の行う処理として表現する。
読み出したコマンドがセキュアアプリ登録要求であれば(ステップS1042)、暗復号プログラム174によって、共有メモリ112上の暗号化音楽復号プログラムを復号して音楽復号プログラム176を生成し、セキュアメモリ113上にロードする(ステップS1043)。ロードアドレス及びハンドル値「1」をセキュアアプリ管理表186のエントリ187に書き込む(ステップS1044)。次に、登録完了通知をコマンド部に格納し、データ格納部にハンドル値「1」を格納した、登録完了通知を生成し、共有メモリ112に書き込む(ステップS1046)。次に、切替処理に移る(ステップS1062)。
次に、セキュアOS171は、セキュアメモリ113上の各プログラムから、コマンドを受け取る(ステップS1052)。
セキュア割込ハンドラ181(後述する)から、いずれかのデバイスで割込が発生したことを示す割込発生通知を受け取ると、受け取った割込発生通知を、共有メモリ112に書き込み(ステップS1054)、ステップS1062へ処理を移す。
受け取ったコマンドが、アプリ復帰要求であれば(ステップS1052)、共有メモリに、受け取ったアプリ復帰要求を書き込み(ステップS1061)、ステップS1062へ処理を移す。また、具体的には図示していないが、応答通知の場合も同様に、データ格納部に含まれる識別情報と対応するアプリケーションを呼び出す。
<ライブラリ152>
ライブラリ152は、各種のプログラムで共通に利用される関数を含んでおり、一例として、メモリカード300のアクセスを行うアクセス関数を含む。アクセス関数は、通常入出力デバイスドライバ157を呼び出し、データの読み出しを指示する関数である。
<音楽再生プログラム153>
音楽再生プログラム153は、利用者に表示する各種の画像データなどを含み、利用者の操作を受けてメモリカード300に記憶されている音楽を再生するアプリケーションである。音楽再生プログラム153には、予め、セキュアアプリ情報とデーモン情報とがコーディングされている。セキュアアプリ情報は、音楽再生プログラム153が、セキュアな処理を依頼するプログラムを示す情報であり、具体的には、暗号化音楽復号プログラム141の記憶されている二次記憶部104上のアドレスである。デーモン情報は、セキュアアプリ情報の示すプログラムと対になるプログラムを示す情報であり、具体的には、音楽復号デーモン142の記憶されている二次記憶部104上のアドレスである。
<音楽復号プログラム176及び音楽復号デーモン156>
音楽復号プログラム176と音楽復号デーモン156は、対になって動作することにより、暗号化音楽データの復号処理が達成される。
コマンドの出力元を示す識別情報としてデバイスID_Aと処理結果とを受け取ると、外部処理要求により、受け取った処理結果を音楽復号プログラム176へ出力する(ステップS014)。このとき、データ格納部には、処理結果と、受け取り先を示すハンドル値「1」とを格納する。
応答通知により、暗号エントリデバイスドライバ159から、デバイスID_Cと復号命令を受け取ると(ステップS012)、セキュア処理要求により、受け取った復号命令を暗号デバイスドライバ179へ出力する。このとき、データ格納部には、復号命令と受け取ったデバイスID_Cと音楽復号デーモン156自身を示すハンドル値「1」とを格納する(ステップS018)。
応答通知により、暗号エントリデバイスドライバ159から、デバイスID_Cと処理結果とを受け取ると、セキュア処理要求によって、音楽復号プログラム176へ受け取った処理結果を出力する(ステップS023)。
<通常入出力デバイスドライバ157>
通常入出力デバイスドライバ157は、予め、通常入出力デバイスドライバ157自身を示す識別情報として、デバイスID_Aを有している。
また、通常入出力デバイスドライバ157は、排他フラグを記憶している。通常入出力デバイス132が動作中は、排他フラグ「1」、動作中でなければ排他フラグ「0」を設定する。入出力の処理命令を受け取った際に排他フラグが「1」であれば、通常入出力デバイス132が動作中であり、処理を受け付けることができないことを示すエラー通知を出力する。
<セキュア入出力エントリデバイスドライバ158及びセキュア入出力デバイスドライバ178>
セキュア入出力デバイスドライバ178及びセキュア入出力エントリデバイスドライバ158は、予め、同一の識別情報、デバイスID_Bを有する。
セキュア入出力エントリデバイスドライバ158は、通常OS151を介して音楽復号デーモン156から休眠要求を受け取る。休眠要求を受け取ると、通常OS151に対して、データ格納部に、ハンドル値「1」とデバイスID_Bを含む休眠要求を出力する。
<暗号デバイスドライバ179及び暗号エントリデバイスドライバ159>
暗号デバイスドライバ179及び暗号エントリデバイスドライバ159は、予め、識別情報としてデバイスID_Cを有している。
次に、システムコールにより音楽復号デーモン156から休眠要求を受け取る。次に、通常OS151へ休眠要求を出力する。このとき、休眠要求のデータ格納部には、システムコールに含んで受け取ったハンドル値「1」とデバイスID_Cとが格納されている。
次に、通常OS151を介して、音楽復号デーモン156から処理結果を受け取る。処理結果を受け取ると、排他制御を解除して、排他フラグを「0」に戻す。応答通知により、受け取った処理結果を音楽復号デーモン156へ出力する。
通常OS151又はセキュアOSから切替指示を受け、通常切替デバイスドライバ160及びセキュア切替デバイスドライバ180は、切替制御部106へ切替指示を出力し、CPU102の使用権を通常OS151からセキュアOS171へ、又は、セキュアOS171から通常OS151へ移すプログラムである。
以下に、図13を用いて、通常OS151からセキュアOS171への切替処理について説明する。なお、これは、図10のステップS1028及び図16以降のフローチャートの切替処理1の詳細である。
通常切替デバイスドライバ160は、通常OS151から呼び出され、切替指示を受け取る(ステップS162)。切替指示を受け取ると、通常OS151のコンテキストを通常メモリ111上に退避する(ステップS163)。次に、切替制御部106へ切替指示を出力する(ステップS164)。
セキュア切替デバイスドライバ180は、呼び出されると、セキュアOS171のコンテキストをCPU102に復帰させる(ステップS168)。
(b)切替処理2
以下に、図14のフローチャートを用いて、セキュアOS171から通常OS151への切替処理について説明する。なお、これは、図11のステップS1062及び図16以降のフローチャートの切替処理2の詳細を示している。
セキュア切替デバイスドライバ180はセキュアOS171のコンテキストを退避し(ステップS178)、切替制御部106へ切替指示を出力する。
通常切替デバイスドライバ160は通常OS151のコンテキストをCPU102へ復帰させる(ステップS183)。
<通常割込ハンドラ161及びセキュア割込ハンドラ181>
通常割込ハンドラ161は、通常OS151及び通常OS151により制御されるプログラムの実行中に、割込が発生した場合に、通常OS151に呼び出される。通常OS151から呼び出され、割込発生通知を受け取ると、割込コントローラ107を制御し、割込を発生させている要因を調査する。次に、割込を発生させているデバイスを示す識別情報と割込通知とを通常OS151へ出力する。
入出力部116は、図8に示すようにアクセス部131、通常入出力デバイス132及びセキュア入出力デバイス133から構成される。
アクセス部131は、メモリカード300と接続され、メモリカード300と通常入出力デバイス132及びセキュア入出力デバイス133との間で、情報の入出力を行う。
セキュア入出力デバイス133は、セキュア入出力デバイスドライバ178の制御により、メモリカード300のセキュア処理部302との間で、CPRMの仕組みに基づいて相互認証を行う。相互認証が成功であった場合に限り、鍵を共有し、共有した鍵を用いて、安全に、セキュア領域306へのデータの書き込み及び読み出しを行う。
ここで、セキュア入出力デバイス133は、メモリカード300のセキュア領域306にアクセスする場合にのみ使用されるデバイスであり、メモリカード300のセキュア領域306にアクセスするプログラムは、限定されている。従って、複数のアプリケーションから同時に処理を依頼されることはありえないため、排他制御を行う必要がない。
暗号処理デバイス117は、暗号デバイスドライバ179の制御により、各種データの暗号処理を行う。本実施の形態では、暗号デバイスドライバ179から、暗号化音楽データの記憶されている共有メモリ112上のアドレスと、コンテンツ鍵が記憶されているセキュアメモリ113上のアドレスとを受け取り、暗号化音楽データの復号を指示される。コンテンツ鍵を用いて、暗号化音楽データに復号アルゴリズムD1を施して、音楽データを生成し、生成した音楽データをバッファ123へ書き込む。書き込み先のアドレスを、処理結果として暗号デバイスドライバ179へ出力する。復号アルゴリズムD1は、暗号化アルゴリズムE1によって生成された暗号文を復号するものである。
(5)CPU102
CPU102は、命令フェッチ部、命令デコーダ、演算器、プログラムカウンタ、レジスタなどを備え、通常メモリ111又はセキュアメモリ113上のプログラムから命令をフェッチし、フェッチした命令を解読し、解読した命令を実行する。
MMU103は、論理アドレスを物理アドレスに変換することにより仮想記憶機能を実現する。
(7)デバッガIF101及び割込コントローラ107
デバッガIF101は、携帯電話100と外部のデバッガとを接続するためのインターフェースである。
(8)切替制御部106及びメモリ保護部114
切替制御部106は、通常メモリ111上の通常切替デバイスドライバ160又は、セキュアメモリ113上のセキュア切替デバイスドライバ180から切替指示を受け取り、メモリ保護部114により、バス130とセキュアメモリ113を接続又は切断する。切替制御部106及びメモリ保護部114の詳細な動作は、上記の(a)切替処理1及び(b)切替処理2において説明した通りである。
通信部121は、無線通信制御部118と、携帯電話網10、インターネット20に接続された外部機器との間で、アンテナ122を介して情報の送受信を行う。
無線通信制御部118は、ベースバンド部、変復調部、増幅器などを備えており、通信部121及びアンテナ122を介して送受信される各種の情報の信号処理を行う。
バッファ123は、音楽データを一時的に記憶する。
符号処理部124は、バッファ123に記憶されている音楽データにMP3などの符号化技術に従った復号処理を施し、D/A変換部126へ出力する。
D/A変換部126は、符号処理部124により復号された音楽データをアナログ音声信号に変換し、スピーカ120へ出力する。
入力部108は、テンキー、決定ボタンなどの各種のボタンを備え、利用者によるこれらの操作を受け付ける。
表示部109は、VRAM、液晶画面を備え、各種の画面を表示する。
マイク119は、音声を検出し、検出した音声を無線通信制御部118へ出力する。
1.3 携帯電話100及びメモリカード300の動作
図15〜図35に示すフローチャートは、携帯電話100の動作を示すフローチャートである。図36〜図40は、携帯電話100の動作における各プログラム間のコマンドの授受を示したシーケンス図である。これらのフローチャート及びシーケンス図を用いて、携帯電話100の動作について説明する。
携帯電話100の動作について、図15に示すフローチャートを用いて説明する。
携帯電話100は、入力部108により利用者によるボタン操作を受け付ける(ステップS101)。受付た操作が、音楽再生を示している場合、音楽再生プログラム153を起動する(ステップS102)。受け付けたボタン操作がその他の処理を示している場合、その他の処理を行う(ステップS103)。
(2)音楽復号プログラムの登録
図16〜17は、音楽復号プログラムの登録処理における、各プログラムの動作を詳細に示すフローチャートである。これは、図36におけるステップS132〜ステップS153のシーケンスと対応している。図16〜17に示すフローチャート及び図36のシーケンス図を用いて、音楽復号プログラムの登録処理について説明する。
通常OS151は、セキュアアプリ登録要求を受け取ると、音楽再生プログラム153のコンテキストを保存し、保存先のアドレスをアプリ管理表のエントリ167のアプリコンテキストアドレスに書き込む(ステップS133)。次に、受け取ったセキュアアプリ情報と対応する暗号化音楽復号プログラム141を二次記憶部104から読み出し、共有メモリ112へ書き込む(ステップS134)。次に、セキュアアプリ登録要求を共有メモリ112のコマンド領域へ書き込み(ステップS136)、切替処理1に移る(ステップS137)。
通常OS151は、共有メモリ112から登録完了通知とハンドル値「1」とを読み出す(ステップS146)。読み出したハンドル値「1」を、アプリ管理表166のエントリ167に書き込む(ステップS147)。デーモン情報を基に二次記憶部104から、音楽復号デーモン142を読み出し、通常メモリ111上に書き込む(ステップS149)。通常メモリ111上の音楽復号デーモン156の書き込み先アドレスをアプリ管理表166のエントリ167へ書き込む(ステップS151)。
音楽再生プログラム153は、受け取ったハンドル値「1」を、通常メモリ111における音楽再生プログラム153自身の記憶領域に書き込む(ステップS154)。
図18〜27のフローチャートは、音楽再生プログラム153の依頼により、音楽復号プログラム176が暗号化音楽データを復号する際の各プログラムの動作を示している。これは、図36のステップS193〜図42のステップS347と対応している。
音楽再生プログラム153は、曲目リストなどを含む選択画面を表示し、利用者の楽曲選択を受け付ける(ステップS191)。受け付けた楽曲を示す楽曲IDとハンドル値「1」を読み出す(ステップS192)。読み出した楽曲IDを引数として、引数とハンドル値「1」と復号処理命令とを通常OS151へ出力する(ステップS193)。
排他フラグが「0」であると判断すると(ステップS224のYES)、排他フラグを「1」に変更し(ステップS227)、受け取った引数を通常入出力デバイス132へ出力し、データの読み出しを指示する(ステップS231)。
通常入出力デバイスドライバ157は、通常入出力デバイス132へ読出要求を出力すると(ステップS231)、通常OS151へ、通常入出力デバイスドライバ157自身の有するデバイスID_A及び受け取ったハンドル値「1」を含む休眠要求を出力する(ステップS232)。
通常入出力デバイス132における処理が終了すると、割込が発生し、音楽復号デーモン156は、処理結果を取得する(ステップS239)。ステップS239における、割込発生時の処理1につては、後で説明する。また、ステップS239の処理は、図37のステップS463〜478のシーケンスと対応している。
次に、CPU102は、音楽復号プログラム176(コンテンツ鍵読出ステップ)を実行する(ステップS256)。音楽復号プログラム176は、コンテンツ鍵読出命令とデバイスID_Bと音楽復号プログラム176自身を示すハンドル値「1」とを含むシステムコールをセキュアOS171へ出力する(ステップS257)。
セキュア入出力デバイスドライバ178は、コンテンツ鍵読出命令とデバイスID_Bとハンドル値「1」とを受け取り、セキュア入出力デバイス133へ、コンテンツ鍵読出命令を出力する(ステップS259)。
認証が失敗であった場合、カードエラー通知を出力し、前記コンテンツ鍵の取得を中止する(ステップS264)。この場合、音楽復号デーモン156及び音楽復号プログラム176は、復号処理を中止し、音楽再生プログラム153は、メモリカード300が読み取り不可であることを通知する画面を表示する。
切替処理が終了すると(ステップS273)、通常OS151は、共有メモリ112から、休眠要求とハンドル値「1」とデバイスID_Bとを読み出す(ステップS274)。読み出したハンドル値「1」を含むエントリ168を基に音楽復号デーモン156を起動し(ステップS276)、読み出した休眠要求とデバイスID_Bとハンドル値「1」とを出力する(ステップS277)。
セキュアOS171は、受け取ったデバイスID_Bと対応するセキュア入出力エントリデバイスドライバ158へ、受け取った休眠要求とデバイスID_Bとハンドル値「1」とを出力する(ステップS281)。
通常OS151は、休眠要求とデバイスID_Bとハンドル値「1」とを受け取る。休眠要求を受け取ると、受け取ったデバイスID_Bと対応するセキュア入出力エントリデバイスドライバ158と、受け取ったハンドル値「1」と対応する音楽復号デーモン156とに休眠処理を行う(ステップS283、ステップS284)。
セキュア入出力デバイス133によるコンテンツ鍵の取得が終了し、割込発生時の処理2(ステップS287)により、音楽復号プログラム176は、処理結果を取得する。ステップS287の割込発生時の処理2については、後で説明する。また、ステップS287における処理は、図38のステップS512〜図39のステップS541に対応している。
切替処理2が終了すると(ステップS294)、通常OS151は、共有メモリ112から復号命令、引数及びハンドル値「1」を読み出す(ステップS296)。読み出したハンドル値「1」とアプリ管理表166とを用いて、音楽復号デーモン156を起動し、音楽復号デーモン156へ読み出した復号命令と引数とハンドル値「1」とを出力する(ステップS297)。
通常OS151は、音楽復号デーモン156から復号命令、引数、デバイスID_C及びハンドル値「1」を受け取り、受け取ったデバイスID_Cと対応する暗号エントリデバイスドライバ159へ、受け取った復号命令、引数、デバイスID_C及びハンドル値「1」を出力する(ステップS301)。
通常OSは、受け取ったハンドル値「1」と対応する音楽復号デーモン156を呼び出し、受け取った復号命令と引数とハンドル値「1」とデバイスID_Cとを出力する(ステップS308)。
通常OS151は、音楽復号デーモン156から、復号命令と引数とデバイスID_Cとハンドル値「1」を受け取り、共有メモリ112へ、受け取った復号命令と引数とデバイスID_Cとハンドル値「1」とを書き込み(ステップS312)、切替処理2を行う(ステップS313)。
暗号処理デバイス117は、暗号デバイスドライバ179から復号を命令されると、セキュアメモリ113からコンテンツ鍵を読み出し、読み出したコンテンツ鍵を用いて、共有メモリ112上の暗号化音楽データに復号アルゴリズムD1を施して音楽データを生成し、生成した音楽データをバッファ123へ出力する(ステップS318)。
切替処理2が終了すると(ステップS323)、通常OS151は、共有メモリ112からハンドル値「1」、デバイスID_C及び休眠要求を読み出す(ステップS326)。読み出したハンドル値「1」とアプリ管理表166とを基に音楽復号デーモン156を起動し、読み出した休眠要求とハンドル値「1」とデバイスID_Cとを、音楽復号デーモン156へ出力する(ステップS327)。
通常OS151は、暗号エントリデバイスドライバ159から、休眠要求とハンドル値「1」とデバイスID_Cを受け取り、受け取ったハンドル値「1」と対応する音楽復号デーモン156を休眠状態にする(ステップS333)。次に、受け取ったデバイスID_Cと対応する暗号エントリデバイスドライバ159を休眠状態にする(ステップS334)。次に、タスクスケジューリングを行い、実行可能状態のプログラムにCPUを割り当てる(ステップS336)。
音楽復号プログラム176は、暗号処理デバイス117による処理結果として、音楽データのバッファ123上の書込先アドレスを取得する。次に、CPU102は、音楽復号プログラム176(音楽データ出力ステップ)を実行する(ステップS338)。音楽復号プログラム176は、音楽データの書込先アドレスを処理結果として、処理結果とアプリ復帰要求とハンドル値「1」とをセキュアOS171へ出力する(ステップS339)。
切替処理2が終了すると(ステップS342)、通常OS151は、共有メモリ112から、アプリ復帰要求と処理結果とハンドル値「1」とを読み出す(ステップS344)。アプリ管理表166のハンドル値「1」を含むエントリ167を基に音楽復号プログラム176のコンテキスト復帰させる(ステップS346)。次に、読み出した処理結果を音楽復号プログラム176へ出力する(ステップS347)。
図28に示すフローチャートを用いて、割込発生時の処理1について説明する。これは、図21のステップS239の詳細である。また、図37のステップS463〜478のシーケンスに対応している。
通常入出力デバイス132は、暗号化音楽データの読み出しが終了すると(ステップS462)、割り込みを発生させる(ステップS463)。
通常割込ハンドラ161は、割込コントローラ107を制御し、割込の要因を調査する(ステップS468)。次に、割込を発生させている通常入出力デバイスと対応するデバイスID_Aと割込通知とを通常OS151へ出力する(ステップS469)。
上記の割込発生時の処理1は、通常OS151又は通常OS151に管理される通常メモリ111上のプログラムの実行中に割込が発生した場合の動作を示している。ここでは、図29のフローチャートを用いて、セキュアOS171又はセキュアOS171によって管理されているプログラムの実行中に割込が発生した場合の動作について説明する。
割込コントローラ107は、割込を検出し、セキュアOS171へ割込発生通知を出力する(ステップS493)。
セキュアOS171は、割込コントローラ107から割込発生通知を受け取る。割込発生通知を受け取ると、セキュア割込ハンドラ181を起動し(ステップS494)、割込発生通知を出力する(ステップS496)。
セキュアOS171は、セキュア割込ハンドラ181から、割込発生通知を受け取り、受け取った割込発生通知を共有メモリ112へ書き込む(ステップS499)。次に、セキュアOS171と通常OS151は、切替処理2を行う(ステップS501)。
ここで、割込コントローラ107は、クリアされていないので、割込発生通知を出力し続けており、ステップS502以降の処理は、図28のステップS464以降の処理と同様である。
以下に、図30〜31のフローチャートを用いて、割込発生時の処理2について説明する。これは、図23のステップS287の詳細である。また、これは、図38のステップS512〜図39のステップS541のシーケンスと対応している。
セキュア入出力デバイス133は、コンテンツ鍵の読み出しが終了すると(ステップS511)、割り込みを発生させる(ステップS512)。
通常OS151は、割込コントローラ107から、割込発生通知を受け取り、通常割込ハンドラ161を起動する(ステップS514)。次に、通常割込ハンドラ161へ割込発生通知を出力する(ステップS516)。
通常OS151は、通常割込ハンドラ161から割込通知とデバイスID_Bとを受け取る。次に受け取ったデバイスID_Bと対応するセキュア入出力エントリデバイスドライバ158と、セキュア入出力エントリデバイスドライバ158と共に休眠処理を施した音楽復号デーモン156の休眠を解除する(ステップS519、ステップS521)。セキュア入出力エントリデバイスドライバ158へCPU102を割り当てる。
通常OS151は、受け取ったハンドル値「1」と対応する音楽復号デーモン156へ、受け取った割込通知とハンドル値「1」とデバイスID_Bとを出力する(ステップS524)。
通常OS151は、音楽復号デーモン156から割込通知とデバイスID_Bとハンドル値「1」とを受け取る。受け取った割込通知とデバイスID_Bとハンドル値「1」とを、共有メモリ112へ書き込み(ステップS529)、切替処理1に移る(ステップS531)。
ここまで、図30〜31を用いた説明では、通常OS151又は通常OS151によって管理される通常メモリ111上のプログラムの実行中における、割込発生時の動作について説明してきたが、セキュアOS171及びセキュアOS171によって管理されるプログラムの実行中における割込発生時の動作は、上述した割込発生時の処理1−2とほぼ同様であり、図26中の通常入出力デバイスを、セキュア入出力デバイスに変更すればよい。ステップS502以降の処理は、図30のステップS513へと続く。
以下に、図32〜34のフローチャートを用いて、割込発生時の処理3について説明する。これは、図27のステップS337の詳細である。また、割込発生時の処理3は、図40のステップS552〜図41のステップS606のシーケンスと対応している。
暗号処理デバイス117は、暗号化音楽データの復号が終了すると、割り込みを発生させる(ステップS552)。
通常OS151は、割込コントローラ107から割込発生通知を受け取り、通常割込ハンドラ161を起動する(ステップS556)。通常割込ハンドラ161へ割込発生通知を出力する(ステップS557)。
通常OS151は、通常割込ハンドラ161から割込通知とデバイスID_Cとを受け取る。受け取ったデバイスID_Cと対応する暗号エントリデバイスドライバ159及び、暗号エントリデバイスドライバ159と共に休眠処理を施した音楽復号デーモン156の休眠を解除し(ステップS562、ステップS563)、暗号エントリデバイスドライバ159へCPU102を割り当てる。
通常OS151は、割込通知とハンドル値「1」とデバイスID_Cとを受け取り、受け取ったハンドル値「1」と対応する音楽復号デーモン156へ、割込通知とハンドル値「1」とデバイスID_Cとを出力する(ステップS567)。
通常OS151は、音楽復号デーモン156から割込通知とデバイスID_Cとハンドル値「1」とを受け取り、受け取った割込通知とデバイスID_Cとハンドル値「1」とを共有メモリ112へ書き込む(ステップS571)。
切替処理1が終了すると、セキュアOS171は、共有メモリ112から、割込通知とデバイスID_Cとハンドル値「1」とを読み出す(ステップS576)。読み出したデバイスID_Cを基に、暗号デバイスドライバ179を起動し、読み出した割込通知とデバイスID_Cとハンドル値「1」とを出力する(ステップS577)。
暗号デバイスドライバ179は、取得した処理結果と、受け取ったハンドル値「1」と、暗号デバイスドライバ179自身を示すデバイスID_CをセキュアOS171へ出力する(ステップS582)。
次に、セキュアOS171及び通常OS151は、切替処理2を行う(ステップS584)。
音楽復号デーモン156は、通常OS151から処理結果とハンドル値「1」とデバイスID_Cとを受け取る。受け取った処理結果とデバイスID_Cと音楽復号デーモン156自身を示すハンドル値「1」とを含むシステムコールを通常OS151へ出力する(ステップS588)。
暗号エントリデバイスドライバ159は、通常OS151を介して、音楽復号デーモン156から処理結果とデバイスID_Cとハンドル値「1」とを受け取り、排他フラグを「0」に変更する(ステップS592)。次に、暗号エントリデバイスドライバ159は、通常OS151への応答通知により(ステップS596)、音楽復号デーモン156へ、受け取った処理結果とハンドル値「1」とデバイスID_Cとを出力する(ステップS597)。
通常OS151は、音楽復号デーモン156から処理結果とハンドル値「1」とを受け取り、受け取った処理結果とハンドル値「1」とを共有メモリ112へ書き込む(ステップS601)。
切替処理1が終了すると、セキュアOS171は、共有メモリ112からハンドル値「1」と処置結果とを読み出す(ステップS603)。セキュアアプリ管理表186上の、ハンドル値「1」を含むエントリ187を基に、音楽復号プログラム176のコンテキストを復帰し(ステップS604)、読み出した処理結果を音楽復号プログラム176へ出力する(ステップS606)。
図35に示すフローチャートを用いて、音楽復号プログラムの削除処理について説明する。これは、図15のステップS109の詳細である。また、音楽復号プログラム削除処理は、図42のステップS611〜618のシーケンスと対応する。
音楽復号プログラム176は、セキュアアプリ削除命令とハンドル値「1」とを通常OS151へ出力する(ステップS611)。
次に、通常OS151及びセキュアOS171は、切替処理1を行う(ステップS613)。
次に、セキュアOS171と通常OS151は切替処理2を行う(ステップS619)。
切替処理2が終了すると、通常OS151は、共有メモリ112から削除処理完了通知とハンドル値「1」とを読み出す(ステップS621)。ハンドル値「1」とアプリ管理表166とを基に音楽復号デーモン156を、通常メモリ111から削除する(ステップS622)。次に、音楽再生プログラム153へ、削除完了通知を出力し(ステップS623)、ハンドル値「1」を含むエントリ167をアプリ管理表166から削除する(ステップS624)。
以上説明してきたように、本発明の携帯電話100において、通常メモリ111上にロードされて実行される音楽再生プログラム153は、保護されるべき処理、具体的には、暗号化音楽データの復号の処理を、セキュアメモリ113上にロードされて実行される音楽復号プログラム176へ依頼する。
このように処理を分担することで、音楽復号プログラム176自体のプログラムサイズが小さくなり、音楽復号プログラム176の保持するデータ、変数なども減少する。さらに、音楽復号プログラム176からの依頼により、音楽復号デーモン156が、通常メモリ111上のライブラリに格納されている関数を使用する。このため、セキュアメモリ113上にライブラリを持つ必要がなくなる。
セキュアOS171に管理される、保護されるべきデバイスである暗号処理デバイス117の制御に関する処理について、保護する必要のない排他制御、休眠、割込の通知については、通常メモリ111上にロードされて実行される暗号エントリデバイスドライバ159が実行する。
セキュアOS171により管理されるデバイスであるセキュア入出力デバイス133についても、同様に、セキュア入出力エントリデバイスドライバ158を制御することにより、通常OS151は、セキュア入出力デバイス133の動作を監視し、制御することが可能になった。
携帯電話100の初期動作及び仮想メモリ空間の構築について以下に説明する。
(1)ブートプログラム
図43は、通常メモリ111に記憶されているデータの一例を示している。これは、携帯電話100の起動直後の通常メモリ111内の様子を示している。
ブートプログラム162は、通常メモリ111を構成するROMに予め記憶されておりブートプログラム162は、具体的には図示されていないが、携帯電話100に、含まれる起動部により読み出され実行されるプログラムである。
先ず、ブートプログラム162は、CPU102のレジスタ、MMU103をクリアし、切替制御部106へ初期化要求を出力する。切替制御部106から、セキュアメモリ113上のプログラムの初期化が終了したことを通知する初期化終了通知を受け取り、次に、通常OS151、通常切替デバイスドライバ160などを、通常メモリ111上にロードし、初期化する。
携帯電話100は、起動時に切替制御部106及びブートプログラムによって、初期化される。携帯電話100の起動時の動作について、図44に示すフローチャートを用いて説明する。
携帯電話100の電源がONの状態になり、電力供給が開始されると(ステップS651)、起動部は、ブートプログラム162を起動する(ステップS652)。ブートプログラム162は、先ず、CPU102及びMMU103のレジスタをクリアすることで初期化する(ステップS653)。次に、切替制御部106へ、初期化要求を出力する(ステップS654)。
ブートプログラム162は、切替制御部106から、初期化終了通知を受け取り、次に、通常OS151、通常切替デバイスドライバ160などのプログラムを通常メモリ上にロードし、初期化する(ステップS664)。
(3)通常OS151及びセキュアOS171による初期化動作
通常入出力デバイスドライバ157、セキュア入出力エントリデバイスドライバ158、暗号エントリデバイスドライバ159は、通常OS151の管理下で、通常メモリ111上に常駐するプログラムである。
ブートプログラム162は、通常OS151及び通常切替デバイスドライバ160などを通常メモリ111上にロードし、初期化し終えると、通常OS151を起動する。
通常OS151は、起動すると、先ず、通常メモリ111上にロードされているプログラムをサーチし、通常入出力デバイスドライバ157、セキュア入出力エントリデバイスドライバ158、暗号エントリデバイスドライバ159がロードされているか否かを判断し、ロードされていなければ、二次記憶部104から読み出し、ロードする。
通常OS151及びセキュアOS171による、この動作は、既に説明した音楽復号プログラムの登録処理と類似しているので、ここでは、簡単に説明する。なお、二次記憶部104は、各デバイスドライバ及び、エントリデバイスドライバを暗号化して生成された暗号化エントリデバイスドライバを、予め記憶しているものとする。
切替処理が終了し、CPU102に復帰すると、通常OS151は、共有メモリ112から、デバドラ登録完了通知を読み出す。
続いて、暗号エントリデバイスドライバついても、同様にして、ロードする。
セキュアOS171は、これまで言及していないが、図45に示すようにMMU制御プログラム184を含んでいる。MMU制御プログラム184は、MMU103により実行されるプログラムであり、セキュアメモリ113、共有メモリ112及び二次記憶部104の物理アドレスと論理アドレスとを変換することにより、仮想記憶空間を構築する。
音楽復号プログラム176及び通信鍵生成プログラム185は、それぞれ、仮想空間201、仮想空間204にロードされている。それぞれのプログラムには、個別に、通常共有空間202及び通常共有空間206が割り当てられている。通常共有空間202及び通常共有空間206は、それぞれのプログラムが、通常メモリ111上のプログラムと共有する仮想空間である。
セキュア共有空間207は、音楽復号プログラム176及び通信鍵生成プログラム185のいずれからもアクセス可能であるが、通常OS151の管理下で動作するプログラムからはアクセスできない仮想空間である。
このようにして、MMU制御プログラム184は、それぞれのアプリケーションごとに、個別の仮想空間を割り当て、お互いにアクセスできないように制御する。
1.5 実施の形態1の変形例
(1) 実施の形態1において、音楽復号プログラム176と音楽復号デーモン156とが対になって動作することにより、暗号化音楽データの復号処理を達成するとして説明してきたが、図47に示すような構成であっても良い。
(2) なお、本実施の形態において、セキュア入出力エントリデバイスドライバ158とセキュア入出力デバイスドライバ178とを同一の識別情報デバイスID_Bによって識別しているが、異なる識別情報にによって識別するとしても良い。暗号エントリデバイスドライバ159と暗号デバイスドライバ179についても同様である。
図48に示すセキュアデバイスドライバ管理表231は、2つのセキュアデバイスドライバ管理情報232、234を含む。各セキュアデバイスドライバ管理情報は、エントリデバイスドライバ識別子とセキュアデバイスドライバ識別子とから構成される。セキュアデバイスドライバ識別子は、セキュアOS171に管理されるデバイスを制御するデバイスドライバを示す識別情報であり、エントリデバイスドライバ識別子は、前記デバイスドライバと対になって動作する通常メモリ111上のプログラムを示す識別情報である。具体的には、セキュアデバイスドライバ管理情報232は、セキュア入出力エントリデバイスドライバ158を識別する情報であるデバイスID_Bと、セキュア入出力エントリデバイスドライバ158と対になって動作するセキュア入出力デバイスドライバ178を識別する情報である「100」から構成される。セキュアデバイスドライバ管理情報234は、暗号エントリデバイスドライバ159を示す識別情報デバイスあるデバイスID_Cと、暗号エントリデバイスドライバ159と対になって動作する暗号デバイスドライバ179を示す識別情報「101」とを含む。
セキュアデバイスドライバ情報234についても同様である。
この構成では、セキュア切替デバイスドライバ180は、切替制御部106から呼び出される度に、先ず、デバッガIF101を無効化し、次に、セキュアOS171のコンテキストを復帰させる。
このようにして、セキュアOS171がCPU102に復帰する前に、デバッガIF101を無効化することで、セキュアOS171の動作を、外部のデバッグ装置に検出、操作されることを、より確実に防ぐことができる。
(4)上記の実施の形態1では、通常入出力デバイスドライバ157及び暗号エントリデバイスドライバ159は、排他フラグを用いて排他制御を行っており、排他フラグが「1」であれば、エラー通知を出力するとしている。しかし、各ドライバが動作している間に受け取った処理の依頼をストックしておくとしても良い。
通常入出力デバイスドライバ157は、通常入出力デバイス132が処理を終え、処理結果を取得する。次に、QUEUEから次の処理依頼を読み出し、通常入出力デバイス132へ出力する。
また、QUEUEに代わって、暗号エントリデバイスドライバ159専用のバッファ領域を備え、バッファ領域に受け取った処理依頼と、受け取った処理依頼の優先度とを対応付けて書き込むとしてもよい。
(5)上記の実施の形態では、セキュア切替デバイスドライバ180が、セキュアOS171のコンテキストの保存及び復帰を行っているが、これを通常切替デバイスドライバ160が行っても良い。
このようにして、セキュアOS171のコンテキストの保存と復帰を通常メモリ111上の通常切替デバイスドライバ160が行うことにより、セキュアメモリ113上にセキュア切替デバイスドライバ180が不要になる。従って、セキュアメモリ113の容量を削減することができる。
従って、このような構成の場合、コンテキストの保存及び復帰に係るMMUの内容の保存を行う必要がなくなる。
(7)また、上記の実施の形態1において、携帯電話100は、通常メモリ111上にロードされる通常OS151とセキュアメモリ113上にロードされて実行されるセキュアOS171とを備えているが、通常OS151を備えていない構成であっても良い。
通常メモリ111上の各プログラムは、システムコールを含む全てのコマンドを、通常OS151に代わって、通常切替デバイスドライバ160へ出力する。
通常切替デバイスドライバ160は、通常メモリ111上のプログラムから、コマンドを受け取ると、受け取ったコマンドを、所定の記憶領域に書き込み、切替処理を行う。セキュアOS171は、CPU102に復帰すると、所定の記憶領域から、コマンドを読み出す。
また、逆に、セキュアOS171を備えていない構成であっても良い。この場合、セキュア切替デバイスドライバ180又は切替制御部106がデバッガ無効化プログラムを備えている。
通常OS151は、CPU102に復帰すると、共有メモリ112のコマンド領域から、セキュアメモリ113上のプログラムから出力されたコマンドを読み出す。
(8)上記の実施の形態及び変形例において、切替制御部106及びメモリ保護部114は、セキュアメモリ113とバス130とを切断することで、セキュアメモリ113上のプログラム及びデータを外部のアクセスから保護している。
メモリ保護部114は、切替制御部106の指示によって、セキュアメモリ113内のデータを暗号化又は復号する。
(9)上記の実施の形態及び変形例では、通常OS151が、アプリ管理表166を管理し、アプリ管理表166を用いて、該当するアプリケーション及びセキュアアプリケーションと対応するプログラム(例えば音楽復号デーモン156)を呼び出している。しかし、音楽再生プログラム153と同様にセキュアアプリケーションに処理を依頼するアプリケーションが多数存在する場合、通常OS151とは別に、アプリ管理表166の管理と、プログラムの呼び出しを行うプログラムを備える構成であっても良い。このプログラムをデーモン制御プログラムと呼ぶ。
また、各アプリケーション及び、音楽復号デーモン156を初めとするプログラムは、通常OS151に代わって、セキュア処理要求をデーモン制御プログラムに出力する。
(10)ここまで、本発明のひとつの実施の形態として携帯電話100について説明してきたが、同様の機能を有する情報処理装置、例えばパーソナルコンピュータなどであってもよい。
2. 実施の形態2
本発明の実施の形態2について、以下に説明する。
無効化リスト発行装置250は、無効化されたプログラムに係る情報を管理しており、これらのプログラムを示す無効化リストを生成し、インターネット20を介して、生成した無効化リストを携帯電話400へ送信する。
2.1 無効化リスト発行装置250
無効化リスト発行装置250は、図50に示すように、通信部251、署名生成部252、鍵記憶部253、ハッシュ生成部254、制御部257、情報記憶部260、入力部262及び表示部263から構成される。
(1)情報記憶部260
情報記憶部260は、図50に示すように、OS無効化リスト266及びアプリ無効化リスト276を記憶している。
発行者ID267は、OS無効化リストの発行者を示しており、一例として、無効化リスト発行装置250の装置ID、無効化リスト発行装置250の管理者の識別情報などである。
無効化ID269、270、271・・・は、無効化されたオペレーティングシステムの識別情報である。
アプリ無効化リスト276は、発行者ID277、リストID278、無効化ID279、280、281・・・から構成される。発行者ID277は、アプリ無効化リストの発行者を示す情報であり、一例として、無効化リスト発行装置250の装置ID、無効化リスト発行装置250の管理者の識別情報などである。
無効化ID279、280、281・・・は、無効化されたアプリケーションの識別情報である。
通信部251は、インターネット20と接続されており、制御部257とインターネット20に接続されている外部機器との間で、情報の送受信を行う。ここで、外部機器とは携帯電話400である。
(3)ハッシュ生成部254
ハッシュ生成部254は、制御部257から、OS無効化リスト266とハッシュ生成指示とを受け取る。また、アプリ無効化リスト276とハッシュ生成指示とを受け取る。
(4)鍵記憶部253及び署名生成部252
鍵記憶部253は、無効化リスト発行装置250に固有の発行装置秘密鍵と、前記発行装置秘密鍵と対応する発行装置公開鍵とを記憶している。
OSダイジェストデータを受け取り、署名生成を指示されると、鍵記憶部253から、発行装置秘密鍵を読み出し、読み出した発行装置秘密鍵を用いて、受け取ったOSダイジェストデータに署名生成アルゴリズムSを施して、署名データを生成し、生成した署名データを、制御部257へ出力する。署名生成アルゴリズムSは、一例として、楕円DSA署名、RSA(RivestShamirAdleman)署名などを用いる。
(5)制御部257
制御部257は、通信部251及びインターネット20を介して携帯電話400から、最新のOS無効化リスト及びアプリ無効化リストの送信を要求するリスト要求を受信する。
次に、通信部251及びインターネット20を介して携帯電話400へ、生成した署名付OS無効化リストと署名付アプリ無効化リストとを送信する。
(6)入力部262及び表示部263
入力部262は、無効化リスト発行装置250の操作者による指示及びデータの入力を受け付け、受け付けた指示及びデータを制御部257へ出力する。
2.2 携帯電話400
携帯電話400のハード構成は、図2に示す携帯電話100の構成とほぼ同様であり、デバッガIF、CPU、MMU、二次記憶部、切替制御部106、割込コントローラ、入力部、表示部、通常メモリ、共有メモリ、セキュアメモリ413、メモリ保護部414、入出力部、暗号処理デバイス、無線通信制御部、マイク、スピーカ、通信部、バッファ、符号処理部、D/A変換部から構成される。
(1)セキュアメモリ413
セキュアメモリ413は、図51に示すように、音楽復号プログラム446、セキュアOS441などの各種のプログラムを記憶している。
音楽復号プログラム446は、ヘッダ部分にアプリID447及び無効フラグ448を含んでいる。アプリID447は、音楽復号プログラム446に固有の識別情報である。無効フラグ448は、音楽復号プログラム446が、無効化されているか否かを示すフラグであり、無効フラグ「1」は、音楽復号プログラム446が無効化されていることを示しており、無効フラグ「0」は、無効化されていないことを示す。
セキュアOSID442は、セキュアOS171をと対応する識別情報である。無効フラグ443は、セキュアOS441が無効化されているか否かを示すフラグであり、無効フラグ「1」は、音楽復号プログラム446が無効化されていることを示しており、無効フラグ「0」は、無効化されていないことを示す。
(2)メモリ保護部414
メモリ保護部414は、図51に示すように、無効化リスト記憶部421、無効化リスト更新部424、アプリ検証部428、アプリ無効化部429、OS検証部431及びOS無効化部432から構成される。
無効化リスト記憶部421は、アプリ無効化リスト422及びOS無効化リスト423を記憶している。
アプリ無効化リスト422及びOS無効化リスト423は、それぞれ、無効化リスト発行装置250の情報記憶部260に記憶されているアプリ無効化リスト276及びOS無効化リスト266と同様の構成である。
無効化リスト更新部424は、予め、署名検証鍵426を記憶している。署名検証鍵426は、無効化リスト発行装置250の鍵記憶部253に記憶されている発行装置公開鍵と同一の鍵である。
無効化リスト更新部424は、切替制御部106から、セキュアメモリ413とバス130との接続を指示する接続指示を受け取る。接続指示を受け取ると、無線通信制御部、通信部を介して、最新のアプリ無効化リスト及びOS無効化リストの送信を要求するリスト要求を、無効化リスト発行装置250へ送信する。
受信した署名付OS無効化リストの署名データに、署名検証鍵を用いて、署名検証を行う。具体的には、署名データに、署名検証鍵を用いて、署名検証アルゴリズムVを施してチェックデータを生成する。署名検証アルゴリズムVは、署名生成アルゴリズムSによって生成された署名データを検証するアルゴリズムである。
次に、受信したOS無効化リストと、無効化リスト記憶部421の記憶しているOS無効化リスト423とに含まれるリストIDを比較する。両者が同一であれば、受信したOS無効化リストを破棄する。受信したOS無効化リストのリストIDが、無効化リスト記憶部421の記憶しているOS無効化リスト423のリストIDよりも新しい日付を示していれば、無効化リスト記憶部421の記憶しているOS無効化リスト423を、受信したOS無効化リストにより更新する。
<OS検証部431及びOS無効化部432>
OS検証部431は、セキュアOS441のヘッダ部分からセキュアOSID442を読み出す。次に、無効化リスト記憶部421からOS無効化リスト423を読み出し、読み出したセキュアOSID442が、OS無効化リスト423の無効IDに含まれているか否かを判断する。セキュアOSID442が、OS無効化リスト423に含まれている場合には、セキュアOS441が無効であると判断し、OS無効化部432へ無効化を指示する。
OS無効化部432は、OS検証部431から無効化を指示され、セキュアOS441のヘッダ部分の無効フラグを「1」に書き換える。
<アプリ検証部428及びアプリ無効化部429>
アプリ検証部428は、セキュアメモリ413上の音楽復号プログラム446のヘッダ部分からアプリID447を読み出す。次に、無効化リスト記憶部421からアプリ無効化リスト422を読み出し、アプリID447がアプリ無効化リスト422に含まれているか否かを判断する。アプリID447がアプリ無効化リスト422に含まれている場合、音楽復号プログラム446が無効なプログラムであると判断し、アプリ無効化部429へ無効化を指示する。
アプリ無効化部429は、アプリ検証部428から、無効化の指示を受け、音楽復号プログラム446の無効フラグを「1」に設定する。
セキュアメモリ413上に、複数のアプリケーションが存在する場合、全てのアプリケーションについて、アプリ検証部428及びアプリ無効化部429は、同様にして、アプリケーションが無効であるか否かの判断、無効であった場合の無効フラグの設定を繰り返す。
図52〜53に示すフローチャートを用いて、メモリ保護部414によるプログラムの検証動作について、説明する。
切替制御部106から、接続指示を受ける(ステップS671)。接続指示を受け取ると、無効化リスト更新部424は、無線通信制御部118及び通信部121を介して無効化リスト発行装置250へ、リスト要求を送信する(ステップS672)。次に、通信部及び無線通信制御部を介して、署名付OS無効化リストと署名付アプリ無効化リストとを取得する(ステップS673)。
署名検証が成功であれば(ステップS676のYES)、無効化リスト記憶部に記憶されているOS無効化リスト423及びアプリ無効化リスト422のリストIDを読み出す(ステップS677)。読み出したOS無効化リスト423リストIDと、受信したOS無効化リストのリストIDと比較し、アプリ無効化リスト422のリストIDと受信したアプリ無効化リストのリストIDを比較することで、OS無効化リスト423及びアプリ無効化リスト422が最新版であるか否かを判断する(ステップS678)。最新版でないと判断すると(ステップS678のNO)、受信したOS無効化リスト及び受信したアプリ無効化リストにより、無効化リスト記憶部421に記憶されているOS無効化リスト423及びアプリ無効化リスト422を更新する(ステップS679)。
ステップS672〜679の無効化リスト更新部424による処理が終了すると、OS検証部431は、セキュアメモリ413から、セキュアOSID442を読み出し(ステップS681)、読み出したセキュアOSID442が、OS無効化リスト423に登録されているか否かによって、セキュアOS441が無効であるか有効であるかを判定する(ステップS682)。
無効であると判断されると(ステップS683のNO)、OS無効化部432は、セキュアOS441の無効フラグ443を「1」に設定する(ステップS684)。
OS検証部431及びOS無効化部432によるステップS684までの処理が終了すると、アプリ検証部428は、セキュアメモリ413上の音楽復号プログラム446のアプリID447を読み出し(ステップS686)、読み出したアプリIDがアプリ無効化リスト422に登録されているか否かによって、音楽復号プログラム446が有効であるか無効であるかを判定する(ステップS687)。
2.3 まとめ・効果
以上、説明してきたように、本実施の形態の携帯電話400は、無効化リスト発行装置250から、随時最新のOS無効化リスト及びアプリ無効化リストを取得する。取得したOS無効化リスト及びアプリ無効化リストを基に、自身の記憶しているセキュアOS441、音楽復号プログラム446を初めとするセキュアメモリ413上にロードされているアプリケーションが有効であるか否かを判断し、無効化されているプログラムの実行を中止する。
2.4 実施の形態2の変形例1
本発明の実施の形態2について、以下のような構成であっても良い。
(1)無効化リスト発行装置250
無効化リスト発行装置250は、OS無効化リスト及びアプリ無効化リストを記憶しているが、OS無効化リストは、無効化ID269、270、271・・・に代わって、無効化されたオペレーティングシステムのセキュアOS証明書(後述する)の証明書IDを含んで構成される。
(2)携帯電話400
携帯電話400は、メモリ保護部414に代わってメモリ保護部454を備え、セキュアメモリ413に代わってセキュアメモリ453を備えている。メモリ保護部414が、セキュアメモリ413上の各プログラムに固有のIDによって、各プログラムが有効であるか無効であるかを判定する代わりに、メモリ保護部454は、セキュアメモリ453上の各プログラムに固有の証明書を用いて判定する。
(2−1)セキュアメモリ453
セキュアメモリ453は、一例として、図54に示すように、音楽復号プログラム476、セキュアOS481を含んでいる。
セキュアOS481は、ヘッダ部分に、セキュアOS証明書482及び無効フラグ483を含んでいる。
発行者ID484は、セキュアOS証明書482の発行元である認証局(以下、CA:Certificate Authorityと呼ぶ)の識別子である。セキュアOS公開鍵488は、セキュアOS証明書482によって正当性を証明されるセキュアOS481に固有の公開鍵である。署名アルゴリズム489は、CA署名491の生成に使用されたアルゴリズムを示す識別情報である。CA署名491は、セキュアOS証明書482の発行元であるCAの秘密鍵を用いて、上記の発行者ID484、証明書ID487・・・に、署名アルゴリズム489の示すアルゴリズムS1を施して生成された署名データである。
音楽復号プログラム476は、そのヘッダ部分にアプリ証明書477と無効フラグ478とを含んでいる。
アプリ証明書477は、図55のセキュアOS公開鍵488を、アプリ公開鍵に置き換えた構成である。
(2−2)メモリ保護部454
メモリ保護部454は、図54に示すように、無効化リスト記憶部461、無効化リスト更新部424、鍵格納部464、アプリ検証部468、アプリ無効化部429、OS検証部471及びOS無効化部432から構成される。
<無効化リスト記憶部461>
無効化リスト記憶部461は、図54に示すようにOS無効化リスト463及びアプリ無効化リスト462を含んでいる。
アプリ無効化リスト462は、無効化リスト発行装置250の記憶しているアプリ無効化リストと同様の構成であり、無効化されたアプリケーションの証明書IDを含んでいる。
鍵格納部464は、CA公開鍵466を記憶している。CA公開鍵466は、セキュアOS証明書482及びアプリ証明書477の発行元であるCAの公開鍵であり、セキュアOS証明書482及びアプリ証明書477に含まれるCA署名の生成に用いられたCAの秘密鍵と対になる鍵である。
OS検証部471は、無効化リスト更新部424によるOS無効化リスト及びアプリ無効化リストの更新の処理が終了すると、セキュアメモリ453から、セキュアOS481に含まれるセキュアOS証明書482を読み出す。鍵格納部464からCA公開鍵466を読み出し、読み出したCA公開鍵466を用いて、セキュアOS証明書482に含まれるCA署名491に署名検証アルゴリズムV1を施して署名検証を行う。署名検証アルゴリズムV1は、署名生成アルゴリズムS1により生成された署名データを検証するアルゴリズムである。
署名検証の結果が成功であれば、次に、セキュアOS証明書482に含まれる証明書ID487が、OS無効化リスト463に登録されているか否かによって、セキュアOS481が無効であるか否かを判定する。登録されていれば、セキュアOS481が無効なプログラムであると判定し、OS無効化部432へ、セキュアOS481の無効化を指示する。
なお、本実施の形態において、セキュアOS証明書482の署名検証を行い、署名検証が成功の場合に、証明書ID487が、OS無効化リスト463に登録されているか否かを判定しているが、証明書ID487が、OS無効化リスト463に登録されているか否かを判定し、登録されていない場合に、署名検証を行うとしてもよい。
アプリ検証部468は、OS検証部471によるセキュアOS481の検証が終了すると、セキュアメモリ453から、音楽復号プログラム476に含まれるアプリ証明書477を読み出す。鍵格納部464からCA公開鍵466を読み出し、読み出したCA公開鍵466を用いて、アプリ証明書477に含まれるCA署名に署名検証アルゴリズムV1を施して署名検証を行う。
署名検証の結果が成功であれば、次に、アプリ証明書477に含まれる証明書IDが、アプリ無効化リスト462に登録されているか否かによって、音楽復号プログラム476が無効であるか否かを判定する。登録されていれば、音楽復号プログラム476が無効なプログラムであると判定し、アプリ無効化部429へ、音楽復号プログラム476の無効化を指示する。
なお、上記の署名検証と証明書IDが、アプリ無効化リスト462に登録されているか否かの判定の順序は逆でもよい。
2.5 実施の形態2の変形例2
上記の変形例1において、音楽復号プログラム476は、階層構造を構成する複数の証明書を含んでいるとしても良い。
音楽復号プログラム476は、図56に示すように、アプリ証明書501、メーカー証明書511及びCA証明書521を含んでいる。
アプリ証明書501は、発行元502、証明書ID503、アプリ公開鍵504、署名アルゴリズム506及びメーカー署名508を含んで構成される。
発行元512は、メーカー証明書511の発行元であるCAを示す識別情報である。図56には説明の便宜上「CA」と記載している。証明書ID513は、メーカー証明書511に固有の識別情報である。メーカー公開鍵514は、音楽復号プログラム476の製造メーカーの公開鍵であり、メーカー証明書511によって、その正当性を証明される。メーカー公開鍵514は、アプリメーカー秘密鍵519と対応する鍵である。署名アルゴリズム516は、CA署名518の生成に使用された署名生成アルゴリズムを示す識別情報である。CA署名518は、CA秘密鍵529を用いて、発行元512、証明書ID513、メーカー公開鍵514、署名アルゴリズム516などのメーカー証明書511に含まれる情報に、署名生成アルゴリズムS3を施して生成された署名データである。
発行元522は、CA証明書521の発行元であるルートCAを示す識別情報である。図56には説明の便宜上「ルートCA」と記載している。証明書ID523は、CA証明書521に固有の識別情報である。CA公開鍵524は、CAの公開鍵であり、CA証明書521によって、その正当性を証明される。CA公開鍵524は、CA秘密鍵529と対応する鍵である。署名アルゴリズム526は、ルートCA署名528の生成に使用された署名生成アルゴリズムを示す識別情報である。ルートCA署名528は、ルートCA秘密鍵531を用いて、発行元522、証明書ID523、CA公開鍵524、署名アルゴリズム526などのCA証明書521に含まれる情報に、ルートCA秘密鍵531を用いて、署名生成アルゴリズムS4を施して生成された署名データである。ルートCA秘密鍵531は、ルートCAに固有の秘密鍵である。
この変形例において、鍵格納部464は、CA公開鍵466に代わって、ルートCA公開鍵を記憶している。ルートCA公開鍵は、ルートCA秘密鍵531と対応する鍵である。また、無効化リスト記憶部461は、アプリ無効化リスト462に加えて、メーカー無効化リスト及び、CA無効化リストを記憶している。メーカー無効化リストは、無効化されたメーカー証明書の証明書IDを含むリストであり、CA無効化リストは、無効化されたCA証明書の証明書IDを含むリストである。
署名検証が失敗であれば、アプリ検証部468は、以下の処理を中止して、アプリ無効化部429へ、音楽復号プログラム476の無効化を指示する。
登録されていなければ、次に、メーカー証明書511を読み出し、CA証明書521に含まれるCA公開鍵524を用いて、読み出したメーカー証明書511に含まれるCA署名518に署名検証アルゴリズムV3を施して署名検証を行う。署名検証アルゴリズムV3は、署名生成アルゴリズムS3により生成された署名データを検証するアルゴリズムである。
署名検証が成功であれば、次に、メーカー証明書511に含まれる証明書ID513がメーカー無効化リストに登録されているか否かを判断し、登録されていれば、アプリ検証部468は、以下の処理を中止して、アプリ無効化部429へ、音楽復号プログラム476の無効化を指示する。
署名検証が成功であれば、次に、アプリ証明書501に含まれる証明書ID503がアプリ無効化リストに462に登録されているか否かを判断し、登録されていれば、アプリ検証部468は、アプリ無効化部429へ、音楽復号プログラム476の無効化を指示する。
このように、2重、3重の検証をすることで、より高いセキュリティを確保することができる。また、メーカー証明書を導入したことにより、同一のメーカーにより開発されたプログラム全てを無効化することができる。
2.6その他の変形例
(1)上記の実施の形態2において、OS無効化リストは、リストIDとして、OS無効化リストの生成された日付を含んでいるが、図57に示すOS無効化リスト541のようにバージョン番号をリストID543として含んでいても良い。バージョン情報とは、OS無効化リストの世代を示す番号であり、値が大きいほど新しいことを示す。
(2)上記の説明において、無効化リスト発行装置250は、OS無効化リスト及びアプリ無効化リストを生成しているが、アプリ無効化リストとOS無効化リストの発行元は別々でも良い。
(3)上記の実施の形態及び変形例において、OS検証がセキュアアプリケーションを検証し、アプリ検証部がセキュアOSを検証するとしてもよい。
(4)また、無効化リスト発行装置250が送信するアプリ無効化リスト及びOS無効化リストは、必ず最新のものであり、無効化リスト記憶部421が記憶しているアプリ無効化リスト422及びOS無効化リスト423がこれらよりも新しいことはありえない。従って、無効化リスト更新部424は、アプリ無効化リスト及びOS無効化リストの更新を行う際に、上述したようなリストIDの比較を省略し、署名検証に成功すれば、無条件に、無効化リスト発行装置250から受信したアプリ無効化リスト及びOS無効化リストにより、アプリ無効化リスト422及びOS無効化リスト423を更新するとしてもよい。
3.実施の形態3
以下に、本発明に係る実施の形態3について説明する。
3.1無効化リスト発行装置
本実施の形態の無効化リスト発行装置は、実施の形態2における無効化リスト発行装置250と同様に、通信部、署名生成部、鍵記憶部、ハッシュ生成部、制御部、情報記憶部610、入力部及び表示部から構成される。
情報記憶部610は、図58に示すように、アプリ発行鍵マトリクス601、OS発行鍵マトリクス602、アプリ無効化情報604、606・・・、アプリマトリクス無効化リスト611及びOSマトリクス無効化リスト621を記憶している。
<アプリ発行鍵マトリクス601及びOS発行鍵マトリクス602>
アプリ発行鍵マトリクス601は、図58に示すように4行×4列の行列の各行列要素として、16個の発行鍵Key_11、Key_12、Key_13・・・を配置したものである。各発行鍵は、一例として擬似乱数を用いて生成される、64ビット長の鍵データである。
行番号「1」、列番号「1」と対応する行列要素661は、発行鍵Key_11であり、行番号「1」、列番号「2」と対応する行列要素662は、発行鍵Key_12である。行番号「1」、列番号「3」と対応する行列要素663は、発行鍵Key_13であり、行番号「1」、列番号「4」と対応する行列要素664は、発行鍵Key_14である。
一例として、携帯電話において実行される音楽復号プログラム(後述する)には、アプリ発行鍵マトリクス601において、実線円677、678、679、680で囲まれている、発行鍵Key_11、Key_32、Key_23、Key_14が割り当てられている。また、音楽復号プログラムとは別のセキュアアプリケーション(アプリBと呼ぶ)には、点線円681、682、683、684で囲まれている、発行鍵Key_21、Key_32、Key_33、Key_44が割り当てられている。
<アプリ無効化情報604、606・・・>
アプリ無効化情報604、606・・・についての説明を容易にするために、アプリ固有鍵マトリクス及びOS固有鍵マトリクスについて先ず説明する。
アプリ固有鍵マトリクス592は、暗号化音楽復号プログラム591を復号して生成される音楽復号プログラムと1対1に対応しており、音楽復号プログラムに割り当てられた4個の発行鍵を含んでいる。アプリ固有鍵マトリクス592は、4つの鍵情報901、902、903、904から構成される。各鍵情報は、列番号と行番号と発行鍵を含んでおり、鍵情報901は、アプリ発行鍵マトリクス601の1列目の行列要素から音楽復号プログラムに割り当てられた発行鍵Key_11と、アプリ発行鍵マトリクス601上でKey_11と対応する行番号「1」と列番号「1」とを含んでいる。鍵情報902は、アプリ発行鍵マトリクス601の2列目の行列要素から音楽復号プログラムに割り当てられた発行鍵Key_32と、アプリ発行鍵マトリクス601上でKey_32と対応する行番号「3」と列番号「2」とを含んでいる。鍵情報903は、アプリ発行鍵マトリクス601の3列目の行列要素から音楽復号プログラムに割り当てられた発行鍵Key_23と、アプリ発行鍵マトリクス601上でKey_23と対応する行番号「2」と列番号「3」とを含んでいる。鍵情報904は、アプリ発行鍵マトリクス601の4列目の行列要素から音楽復号プログラムに割り当てられた発行鍵Key_14と、アプリ発行鍵マトリクス601上でKey_14と対応する行番号「1」と列番号「4」とを含んでいる。
本実施の形態に記憶されている暗号化セキュアOS596を復号して生成されるセキュアOSには、OS発行鍵マトリクス602の各列から1個ずつ、計4個の発行鍵が割り当てられている。この4個の発行鍵の組み合わせは、オペレーティングシステムごとに異なる。
アプリ無効化情報604、606・・・は、無効化されたアプリケーションのアプリ固有鍵マトリクスの各鍵情報から列番号及び行番号を抽出したものである。
<アプリマトリクス無効化リスト611及びOSマトリクス無効化リスト621>
アプリマトリクス無効化リスト611は、図60に示すように、16個の行列要素911〜926を、4行×4列の行列状に配置して構成される。説明の便宜上、i行j列目の行列要素に格納される行列要素を変数Mijを用いて表現する。
(2)制御部
制御部は、インターネットを介して、携帯電話から、リスト要求を受信する。リスト要求を受信すると、情報記憶部610から、OSマトリクス無効化リスト621及びアプリマトリクス無効化リスト611を読み出し、ハッシュ制御部、署名生成部によって生成された署名を付加した署名付OSマトリクス無効化リストと署名付アプリマトリクス無効化リストとを携帯電話へ送信する。これは、実施の形態2の制御部257による、署名付OS無効化リスト及び署名付アプリ無効化リストの生成及び送信と同様であるので、詳細な説明は省略する。
また、新たなOS無効化情報の入力及びOSマトリクス無効化リストの生成の指示を受け付ける。受け付けた指示に従って、新たにOSマトリクス無効化リストを生成する。
先ず、p×n個の各行列要素M11、M12・・・Mpnに復号鍵を代入する(ステップS721)。列番号を格納する変数j及び行番号を格納する変数iを0で初期化する(ステップS722)。
次に、行列要素Mijにダミーデータ「0000」を代入する(ステップS727)。次に、変数j=nであるか否かを判断する(ステップS729)。j=nでないと判断すると(ステップS729のNO)、ステップS724に戻って、j=nになるまでステップS724〜729を繰り返す。
アプリ発行鍵マトリクス601のi行j列目の発行鍵Key_ijを読み出す(ステップS741)。読み出した発行鍵Key_ijを用いて、行列要素Mijに暗号化アルゴリズムE2を施して、Enc(Key_ij,Mij)を生成し、生成したEnc(Key_ij,Mij)をMijに代入する(ステップS742)。
次に、変数i=pであれば(ステップS744のYES)、アプリマトリクス無効化リストの生成を終了する。
なお、OSマトリクス無効化リストについても、OS発行鍵マトリクスとOS無効化情報を用いて、同様の手順で生成する。
3.2携帯電話
本実施の形態の携帯電話は、実施の形態2の携帯電話400と類似した構成である。従って、ここでは、実施の形態2と同様の部分の説明は省略し、本実施の形態の特徴部分についてのみ説明する。
セキュアメモリ613には、一例として、図62に示すように暗号化音楽復号プログラム591及び暗号化セキュアOS596を記憶している。
暗号化音楽復号プログラム591は、実施の形態2の音楽復号プログラム446と同様の音楽復号の手順を含む音楽復号プログラムに、暗号化アルゴリズムE3を施して、生成されたものである。また、暗号化音楽復号プログラム591は、ヘッダ部分に、音楽復号プログラムに固有のアプリ固有鍵マトリクス592と無効フラグ593を含んでいる。アプリ固有鍵マトリクス592については、上記において、述べたとおりである。無効フラグ593は、前記音楽復号プログラムが無効であるか否かを示すフラグであり「0」であれば、有効であることを、「1」であれば無効であることを示している。
(2)メモリ保護部571
メモリ保護部571は、図62に示すように無効化リスト記憶部572、無効化リスト更新部575、アプリ検証部578、アプリ無効化部579、OS検証部581、OS無効化部582及び暗号・復号部586から構成される。
アプリ無効化部579及びOS無効化部582の動作は、実施の形態2のアプリ無効化部429及びOS無効化部432と同様であるので、ここでは、改めて説明しない。
アプリ検証部578は、暗号化音楽復号プログラム591に含まれるアプリ固有鍵マトリクス592及び、無効化リスト記憶部572に記憶されているアプリマトリクス無効化リスト573を用いて、暗号化音楽復号プログラム591の復号鍵を生成する。正しく復号鍵を生成することができた場合、音楽復号プログラムが有効であると判定し、生成できなかった場合、音楽復号プログラムが無効であると判断する。上記の、音楽復号プログラムの検証の詳細な手順については、後に説明する。
無効であると判断すると、アプリ無効化部579へ無効化を指示する。
OS検証部581は、アプリ検証部578と同様にして、暗号化セキュアOS596を復号して生成されるセキュアOSが有効であるか無効であるかを判定する。ここでは、アプリ固有鍵マトリクス592、アプリマトリクス無効化リスト573に代わって、OS固有鍵マトリクス597、OSマトリクス無効化リスト574を用いる。
暗号・復号部586は、OS検証部581から暗号化セキュアOS596の復号鍵を受け取り、復号を指示される。復号を指示されると、受け取った復号鍵を用いて、セキュアメモリ613上の暗号化セキュアOS596に、復号アルゴリズムD3を施してセキュアOSを生成する。
ここで、D3は、暗号化アルゴリズムE3によって生成された暗号文を復号するアルゴリズムであり、一例として、DES、AES(Advanced Encryption Standard)などを用いる。
(3)メモリ保護部571による検証動作
メモリ保護部571による、セキュアメモリ613上のプログラムの検証動作について、図63のフローチャートを用いて説明する。
セキュアOSが無効であると判定すると(ステップS706のNO)、OS無効化部582へ指示して、無効フラグ598を「1」に設定する(ステップS709)。
無効であると判断されると(ステップS712のNO)、アプリ無効化部579は、無効フラグ593を「1」に設定する(ステップS716)。
以下に、図64のフローチャートを用いて、アプリ検証部578による音楽復号プログラムの検証処理について説明する。これは、図63のステップS711の詳細である。本実施の形態では、アプリマトリクス無効化リスト573は、4行×4列の行列を構成しており、アプリ固有鍵マトリクス592は、4個の鍵情報を含んで構成されているが、ここでは、より一般的に、アプリマトリクス無効化リスト573がn行p列のマトリクスを構成しており、アプリ固有鍵マトリクス592がp個の鍵情報から構成される場合について説明する。
アプリ検証部578は、変数jに1を代入する(ステップS732)。アプリ固有鍵マトリクス592の、列番号jと対応する行番号を、変数iに代入する(ステップS733)。
変数j=pであれば(ステップS744のYES)、音楽復号プログラムが無効であると判定する(ステップS746)。
3.3まとめ・効果
以上、説明してきたように、実施の形態3において、携帯電話のセキュアメモリ613上の暗号化音楽復号プログラム591及び暗号化セキュアOS596は、それぞれに固有のアプリ固有鍵マトリクス592、OS固有鍵マトリクス597を含んでいる。
セキュアOSについても、同様に、OSマトリクス無効化リスト574及びOS固有鍵マトリクスを用いて、有効か否かを判定する。
図58のアプリ発行鍵マトリクス601を構成する16個の鍵のうち、各アプリケーションには、各列から1個ずつ、合計4個の発行鍵が割り当てられる。このとき、異なるアプリケーションに割り当てられる発行鍵が4個とも一致することがないように割り当てられる。一例として、本実施の形態の音楽復号プログラムには、発行鍵Key_11、Key_32、Key_23、Key_14が割り当てられており、これらの発行鍵は、暗号化音楽復号プログラム591のアプリ固有鍵マトリクス592に含まれる。
ここで、出荷後にアプリBが無効化すべきプログラムであることが判明すると、無効化リスト発行装置には、アプリ無効化情報604が追加される。アプリ無効化情報604は、アプリBに割り当てられた4個の発行鍵と対応する列番号と行番号から構成されている。アプリ無効化情報604に基づいて生成されたアプリマトリクス無効化リスト611は、図60に示すように、行列要素M21、M32、M33及びM44にダミーデータを含んでいるため、暗号化アプリBに割り当てられた4個の発行鍵では、復号鍵を生成することができない。
このように、各アプリケーションに複数の発行鍵を割り当てておき、アプリ無効化リストと発行鍵とを用いて、復号鍵を生成する構成であれば、同一の方法で暗号化されていても、無効化すべきアプリケーションだけを無効化することができる。
(1)実施の形態3において、メモリ保護部571は、切替制御部106から、接続指示を受ける度に、通信制御部を介して、最新のOSマトリクス無効化リスト及びアプリマトリクス無効化リストを取得して、これらを更新し、セキュアメモリ613上の各プログラムを検証している。しかし、OSマトリクス無効化リスト及びアプリマトリクス無効化リストの更新、セキュアメモリ613上の各プログラムの検証を行うタイミングは、これに限るものではない。
また、各プログラムを起動する際、例えば、通常OSからセキュアOSへの切替処理の際には、セキュアOSの検証を行い、セキュアOSが音楽復号プログラムを起動する際に音楽復号プログラムの検証を行うとしてもよい。
(3)これまで、本発明の1つの実施の形態として携帯電話について説明してきたが、以下に説明するようなLANを構成する通信機器であるとしてもよい。
一例として、図65に示すような、ホームネットワークを形成する機器である。ホームネットワークは、PC(Personal Computer)650、ノートPC651、DVDプレーヤー652、ホームサーバ653、電子レンジ654をバスによって接続して構成される。
ホームサーバ653は、インターネット20と接続されており、定期的に無効化リスト発行装置250へ、アプリ無効化リスト及びOS無効化リストを要求する。インターネットを介して、無効化リスト発行装置250から最新のアプリ無効化リスト及びOS無効化リストを取得する。取得した無効化リストを、バスを介して、ホームネットワークを構成する各機器へ出力する。
4.実施の形態4
本発明の実施の形態4について、以下に説明する。
本実施の形態の携帯電話は、実施の形態1の携帯電話100と同様に、デバッガIF、CPU102、MMU、二次記憶部、切替制御部、割込コントローラ、入力部、表示部、通常メモリ、共有メモリ、セキュアメモリ713、メモリ保護部701、入出力部、暗号処理デバイス、無線通信制御部、マイク、スピーカ、通信部、アンテナ、バッファ、符号処理部、D/A変換部から構成され、各回路はバスに接続されている。
(1)セキュアメモリ713
セキュアメモリ713は、図66に示すように、音楽復号プログラム704、通信鍵生成プログラム706などのセキュアアプリケーション及びセキュアOS707を記憶している。
通信鍵生成プログラム706は、携帯電話がインターネットを介してコンテンツの送受信を行う際の暗号鍵を生成するセキュアアプリケーションである。
セキュアOS707は、実施の形態1のセキュアOS171と同様のオペレーティングシステムである。
(2)メモリ保護部701
メモリ保護部701は、図66に示すようにアクセス管理部702と信号監視部703とを含んで構成される。
信号監視部703は、予め、各プログラムの不正アクセスの許される回数(許容回数)を記憶している。信号監視部703は、セキュアメモリ713とCPUとの間のバス上の信号を監視し、CPUのアクセス対象となっているセキュアメモリ713上のアドレスを検出する。
含まれていなければ、アクセス管理部702が該当するプログラムと対応付けて記憶しているカウンタに1加算する。次に、カウンタと記憶している許容回数とを比較する。カウンタが許容回数以下であれば、そのまま監視を続ける。
ここで、不正であると判定されたプログラムが音楽復号プログラム704であった場合、信号監視部703は、強制的に、音楽復号プログラム704の実行を中止し、セキュアOS707にCPU102の実行権を移す。
不正であると判定されたプログラムがその他のセキュアアプリケーションである場合も同様である。
4.2まとめ・効果
以上説明してきたように、本発明の携帯電話は、セキュアメモリ713にロードされている各プログラムの動作を監視し、不正の動作を繰り返すプログラムの実行を中止する。このようにすることで、万一、セキュアメモリ713中のプログラムに欠陥があった場合や、実行途中で不正な改ざんが加えられた場合でも、これらのプログラムの実行を停止することができる。
(1)上記の実施の形態では、メモリ保護部701は、信号監視部703により、バス上の信号を監視することで不正な動作を検出しているが、これに代わって、定期的にCPUのプログラムカウンタ値を監視するとしても良い。
(2)上記の実施の形態では、セキュアメモリ713上の各プログラムが、起動時に、各プログラムごとに異なるアクセス情報をアクセス管理部702出力し、信号監視部703は、これらのアクセス情報を基に、各プログラムの動作を監視しているが、予め、アクセス管理部702が、セキュアメモリ713上のアクセス禁止領域を示す情報を記憶しているとしてもよい。この場合、いずれのプログラムが実行中であっても、禁止領域にアクセスしようとすると、信号監視部は、CPU102によるプログラム実行を中止し、CPU102及びMMUをクリアし、切替制御部へ切替指示を出力する。
この構成において、信号監視部703は、動作途中に不正な動作を行うプログラムを発見し、そのプログラムの動作を停止させると共に、無効化リスト記憶部の記憶しているOS無効化リスト又はアプリ無効化リストに、不正動作を行ったプログラムと対応するセキュアOSID又はアプリIDを追加する。
5.実施の形態
本発明の実施の形態5について以下に説明する。
実施の形態5の携帯電話750は、2枚のメモリカードを装着する。メモリカードのうち一方には、OS(オペレーティングシステム)及び、各種のアプリケーションが記憶されており、携帯電話750は、これらのプログラムを読み出して実行する。説明の便宜上このメモリカードを通常メモリカード800と呼ぶ。
携帯電話750は、セキュアメモリカード820上の各プログラムが、他のプログラムのプログラム部分を読み出すことは許可するが、他のプログラムのデータ部分を読み出すことを禁止する。
セキュアメモリカード820は、図67に示すように、入出力部821及び情報記憶部830から構成される。
セキュアメモリカード820は、具体的にはマイクロプロセッサ、RAM及びROMを含んで構成されるコンピュータシステムであり、前記RAM、ROMにはコンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、セキュアメモリカード820は、その機能の一部を達成する。
情報記憶部830は、セキュアID850、暗号化音楽復号プログラム831、暗号化鍵生成プログラム841などを記憶している。
セキュアID850は、セキュアメモリカード820に固有の情報であり、セキュアメモリカード820がセキュアな処理を行うプログラムを格納していることを示している。
暗号化復号プログラム834は、音楽データを復号する手順を含む復号プログラムを暗号化して生成されたものであり、暗号化復号データ836は、復号プログラムが復号の処理に使用するパラメータなどのデータを暗号化したものである。
ID842「B」は、暗号化鍵生成プログラム841に固有の識別情報である。暗号化生成プログラム844は、暗号鍵を生成する手順を含む生成プログラムを暗号化したものであり、暗号化鍵データ846は、前記生成プログラムの使用するパラメータなどのデータを暗号化したものである。
通常メモリカード800は、図68に示すように、入出力部801と情報記憶部802とを含んで構成される。
入出力部801は、情報記憶部802と外部機器との間で、各種のデータの入出力を行う。
携帯電話750は、図68に示すように、デバッガIF751、CPU752、MMU753、割込コントローラ757、入力部758、表示部759、メモリ761、メモリ保護部764、入出力部765、入出力部766、無線通信制御部768、通信部771、アンテナ772、マイク769、スピーカ770、バッファ773、符号処理部774、D/A変換部776をバス760によって接続して構成される。
(1)入出力部765及び入出力部766
入出力部765及び入出力部766は、2枚のメモリカードのいずれかと接続され、メモリカードとメモリ保護部764との間で、情報の入出力を行う。
メモリ保護部764は、図69に示すように、復号部781、復号鍵記憶部782、アクセス制御部783、鍵記憶部784、メモリ情報記憶部785及びID検出部786から構成される。
(2−1)鍵記憶部784
鍵記憶部784は、暗号化音楽復号プログラム831の復号鍵及び暗号化鍵生成プログラム841の復号鍵をそれぞれのプログラムのIDと対応付けて記憶している。
復号部781は、アクセス制御部783のから、復号指示及び暗号文を受け取る。復号指示を受け取ると、復号鍵記憶部782から復号鍵を読み出し、読み出した復号鍵を用いて、暗号化データを復号し、平文を生成する。生成した平文をCPU752へ出力する。
ここで復号部781が復号する暗号化データは、セキュアメモリカード820に記憶されている暗号化音楽復号プログラム831、暗号化鍵生成プログラム841を構成する暗号化データである。
(2−3)メモリ情報記憶部785
メモリ情報記憶部785は、図70に示すように、セキュアメモリ情報テーブル811及び通常メモリ情報テーブル861を記憶している。
セキュアメモリ情報テーブル811は、複数のセキュアメモリ情報812、813・・・から構成される。各セキュアメモリ情報は、プログラムID、コードアドレス及びデータアドレスを含む。
セキュアメモリ情報813は、プログラムIDとして、暗号化鍵生成プログラム841のID「B」842と、コードアドレスとして、暗号化生成プログラム844の記憶されているアドレス「A444〜A555」と、データアドレスとして、暗号化鍵データ846の記憶されているアドレス「A666〜A777」を含んでいる。
プログラムIDは、通常メモリカード800上に記憶されているプログラムのIDであり、コードアドレスは、プログラムIDと対応するプログラムのプログラム部分が記憶されている領域を示すアドレスであり、データアドレスは、データ部分が記憶されている領域のアドレスである。
(2−4)ID検出部786
ID検出部786は、CPU752のプログラムカウンタ(以下PC)を常時監視しており、CPU752が、セキュアメモリカード820上のプログラムを実行している間は、CPU752が実行中のプログラムを示すプログラムIDを記憶している。
ID検出部786は、PCを監視し(ステップS801)、メモリ情報記憶部785の記憶しているセキュアメモリ情報テーブル811及び通常メモリ情報テーブル861に含まれる、各プログラムのコードアドレスと、PCの示すアドレスとを比較することにより、PCの示すアドレスがセキュアメモリカード820上のアドレスであるか否かを判断する(ステップS802)。
セキュアメモリカード820上のアドレスであると判断すると(ステップS802のYES)、次に、PCから検出したアドレスと対応するセキュアメモリ情報をセキュアメモリ情報テーブル811から選択し、選択したセキュアメモリ情報に含まれるプログラムIDを抽出する(ステップS803)。抽出したプログラムIDを記憶する(ステップS804)。次に、アクセス制御部783へ、セキュアメモリカード820上のプログラムの実行が開始されることを示すセキュアアクセス通知を出力する(ステップS805)。
セキュアメモリカード820上のアドレスであると判断すると(ステップS807のYES)、PCから検出したアドレスと対応するセキュアメモリ情報をセキュアメモリ情報テーブル811から選択し、選択したセキュアメモリ情報に含まれるプログラムIDを抽出する(ステップS809)。抽出したプログラムIDとID検出部786自身の記憶しているプログラムIDとを比較する。両者が一致していれば(ステップS811のYES)、ステップS806へ戻って、PCの監視を続ける。
ステップS807において、セキュアメモリカード820上のアドレスでないと判断すると(ステップS807のNO)、ID検出部786自身の記憶しているプログラムIDを消去し(ステップS814)、ステップS801へ戻る。
アクセス制御部783は、予め、セキュアメモリカード820に書き込まれているセキュアIDを記憶している。
入出力部765及び入出力部766を介して、メモリカードが装着されたことを検出する。メモリカードの装着を検出すると、メモリカードに書き込まれているデータを検索する。記憶しているセキュアIDと同一のセキュアID850を検出した場合、そのメモリカードがセキュアメモリカード820であることを検知する。ここでは、入出力部265が、通常メモリカード800と接続されており、セキュアメモリカード820がセキュアメモリカード820と接続されている場合を想定する。
また、入出力部766を介して、セキュアメモリカード820の装着を検出すると、入出力部766を介して、セキュアメモリカード820に記憶されている情報をサーチし、セキュアメモリ情報テーブルを生成し、生成したセキュアメモリ情報テーブルをメモリ情報記憶部785に書き込む。
CPU752がセキュアメモリカード820へアクセスする際には、アクセス信号からアクセス先のアドレスを抽出し、抽出したアドレスによって、セキュアメモリカード820データの読み出し又読み出しの禁止を行う。このような、アクセス制御部783の動作について、図71、72に示すフローチャートを用いて、詳細に説明する。なお、説明の便宜上、ステップS821から説明を始める。このとき、CPU752は、通常メモリカード800又はメモリ761上のプログラムを実行している。
ID検出部786から、セキュアメモリカード820上のプログラムの実行が開始されることを示すセキュアアクセス通知を受け取る(ステップS805)。
セキュアアクセス通知を受け取ると、アクセス制御部783は、デバッガIF751を無効化し(ステップS823)、ID検出部786に記憶されているプログラムIDを読み出す(ステップS824)。読み出したプログラムIDと対応する復号鍵を鍵記憶部784から読み出し(ステップS826)、読み出した復号鍵を復号鍵記憶部782へ書き込む(ステップS827)。
アクセス先のアドレスを検出すると、ID検出部786からプログラムIDを読み出す(ステップS831)。プログラムIDを読み出すと(ステップS832のYES)、コードアドレス又はデータアドレスに検出したアクセス先アドレスを含むセキュアメモリ情報を、セキュアメモリ情報テーブル811から選択し、選択したセキュアメモリ情報からプログラムIDを抽出する(ステップS834)。
両者が一致していない場合(ステップS836のNO)、アクセス制御部783は、さらに、検出したアドレスが、選択したセキュアメモリ情報のコードアドレスに含まれているのか、データアドレスに含まれているのかを判定する(ステップS838)。データアドレスに含まれていると判定した場合(ステップS838のNO)、アクセスが許可できないことを示すエラー通知をCPU752へ出力し、ステップS829へ戻る。
次に、入出力部766を介して検出したアドレスに該当する記憶領域に記憶されている情報を読み出す(ステップS844)。読み出した情報の復号を復号部781へ指示し(ステップS846)、ステップS829へ戻る。
5.4 まとめ・効果
以上、説明してきたように、本発明の携帯電話は、通常メモリカード及びセキュアメモリカードに記憶されているプログラムを実行する。セキュアメモリカードに記憶されているプログラは予め暗号化されている。
音楽復号プログラムが実行される場合を例に説明すると、CPU752は、暗号化音楽復号プログラム831に含まれる暗号化音楽復号プログラム831の記憶されている領域と、暗号化鍵生成プログラムの暗号化生成プログラム844の記憶されている領域にアクセスすることはできるが、暗号化鍵生成プログラムの暗号化鍵データ846の記憶されている領域にはアクセスできない。
また、セキュアメモリカード820に記憶されている情報は、暗号化されているため、セキュアメモリカード820上のプログラム以外のプログラムをCPU752が実行している途中に、セキュアメモリカード820にアクセスした場合でも、解読することができない。従って、セキュアメモリカード820上のデータを不正なアクセスから保護することができる。
5.5 実施の形態5に関する変形例
上記の実施の形態では、セキュアメモリカード820上のセキュアアプリケーションの実行中にCPU752が、他のアプリケーションのデータ部分にアクセスしようとした場合、アクセス制御部783は、CPU752にエラー通知を出力しているが、実施の形態4の場合と同様に、他のプログラム、例えばOS806にCPU752の実行権を移すとしても良い。この場合、アクセス制御部783は、復号鍵記憶部782に記憶されている復号鍵を消去し、OS806の記憶されているアドレスをCPU782のプログラムカウンタに設定する。
6. その他の変形例
以上、実施の形態1〜5によって、本発明について説明してきたが、本発明は、これらの実施の形態に限定されるものではなく、以下のような場合も含む。
(2)また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(3)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
15 基地局
20 インターネット
100 携帯電話
101 デバッガIF
102 CPU
103 MMU
104 二次記憶部
106 切替制御部
107 割込コントローラ
108 入力部
109 表示部
111 通常メモリ
112 共有メモリ
113 セキュアメモリ
114 メモリ保護部
116 入出力部
117 暗号処理デバイス
118 無線通信制御部
119 マイク
120 スピーカ
121 通信部
122 アンテナ
123 バッファ
124 符号処理部
126 D/A変換部
130 バス
131 アクセス部
132 通常入出力デバイス
133 セキュア入出力デバイス
300 メモリカード
Claims (61)
- 保護対象のセキュアリソースの利用が許可されるセキュアモードと、保護対象外の通常リソースの利用のみが許可される通常モードとを切り替えて、プログラムを実行するデータ処理装置であって、
前記通常リソースを利用する1つ以上の処理手順から構成される通常プログラムを記憶している通常記憶手段と、
前記セキュアリソースを利用する1つ以上の処理手順から構成され、少なくとも前記通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶しているセキュア記憶手段と、
セキュアモードにおいて、次に実行すべき命令が、前記呼出命令であるか否かを判断する判断手段と、
セキュアモードにおいて、前記呼出命令であると判断される場合に、当該呼出命令により呼び出される前記通常プログラムを示す識別情報を出力する出力手段と、
前記呼出命令であると判断される場合に、セキュアリソースを保護して、セキュアモードから通常モードに切り替える切替手段と、
通常モードにおいて、前記識別情報を受け取る受取手段と、
通常モードにおいて、受け取った前記識別情報により示される前記通常プログラムを前記通常記憶手段から読み出す読出手段と、
通常モードにおいて、読み出した通常プログラムに従って動作する処理手段と
を備えることを特徴とするデータ処理装置。 - 前記切替手段は、前記セキュアプログラムを制御するセキュアオペレーティングシステムを中断させ、前記通常プログラムを制御する通常オペレーティングシステムを起動することにより、セキュアモードから通常モードに切り替える
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記データ処理装置は、セキュアモード及び通常モードの両方において、アクセスが許可される共有記憶領域を備え、
前記出力手段は、セキュアモードにおいて、前記識別情報を前記共有記憶領域に書き込むことにより、前記識別情報を出力し、
前記受取手段は、通常モードにおいて、前記共有記憶領域から前記識別情報を読み出すことにより、前記識別情報を受け取る
ことを特徴とする請求項2に記載のデータ処理装置。 - 前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報に対応する位置情報により示される存在位置から前記通常プログラムを読み出す
ことを特徴とする請求項3に記載のデータ処理装置。 - 前記通常プログラムを構成する1つの処理手順は、ライブラリを構成する複数の関数を含み、他の処理手順は、前記複数の関数のうちのいずれかを呼び出し、
前記処理手段は、前記他の処理手順に従って動作する場合に、当該他の処理手順により呼び出される関数に従って動作する
ことを特徴とする請求項3に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
セキュアモードにおいて、前記セキュアプログラムの前記セキュア記憶手段への書き込みを示す書込指示を受け取る指示取得手段と、
セキュアモードにおいて、前記書込指示を取得した場合に、前記セキュア記憶手段に前記セキュアプログラムを書き込み、前記書込みが終了したことを示す書込終了情報を出力するセキュアロード手段とを含み、
前記切替手段は、さらに、前記書込終了情報が出力された場合、セキュアモードから通常モードへ切り替え、
前記データ処理装置は、さらに、通常モードにおいて、前記書込終了情報を受け取り、前記通常記憶手段に前記通常プログラムを書き込む通常ロード手段とを含むことを特徴とする請求項2に記載のデータ処理装置。 - 前記読出手段は、さらに、通常モードにおいて、前記通常ロード手段により前記通常プログラムが前記通常記憶手段に書き込まれた場合に、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶する
ことを特徴とする請求項6に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
セキュアモードにおいて、前記セキュアプログラムの削除を指示する削除指示を取得する削除指示取得手段と、
前記削除指示を取得した場合に、セキュアモードにおいて、前記セキュアプログラムを前記セキュア記憶手段から削除し、前記削除が終了したことを示す削除終了情報を出力するセキュア削除手段とを含み、
前記切替手段は、さらに、前記削除終了情報が出力された場合、セキュアモードから通常モードへ切り替え、
前記データ処理装置は、さらに、
通常モードにおいて、前記削除終了情報を取得し、前記通常記憶手段から前記通常プログラムを削除する通常削除手段を含む
ことを特徴とする請求項6に記載のデータ処理装置。 - 前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報に対応する位置情報により示される存在位置から前記通常プログラムを読み出す
ことを特徴とする請求項2に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
前記処理手段を含む当該データ処理装置の備える1以上のデバイスを初期化する初期化手順及び前記セキュアオペレーティングシステムを起動する起動手順を含むブートプログラムを記憶しているブートプログラム記憶手段と、
前記ブートプログラム記憶手段から、前記ブートプログラムを読み出し、読み出した前記ブートプログラムに従って、前記デバイスを初期化し、初期化の完了後に、セキュアオペレーティングシステムを起動する初期化手段とを備える
ことを特徴とする請求項2に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
通常モードにおいて、前記処理手段による処理結果と前記セキュアプログラムを示すセキュア識別情報とを出力する通常出力手段を含み、
前記切替手段は、さらに、前記処理結果が出力された場合、通常モードからセキュアモードへ切り替え、
前記データ処理装置は、さらに、
セキュアモードにおいて、前記処理結果と前記セキュア識別情報とを受け取るセキュア受取手段と、
受け取った前記セキュア識別情報に対応する前記セキュアプログラムを前記通常記憶手段から読み出すセキュア読出手段とを含み、
前記処理手段は、さらに、セキュアモードにおいて、前記処理結果を用いて、前記セキュアプログラムに従って動作する
ことを特徴とする請求項2に記載のデータ処理装置。 - 前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリソースと前記処理手段とを切断する
ことを特徴とする請求項2に記載のデータ処理装置。 - 前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリソースに保持されているセキュア情報を暗号化する
ことを特徴とする請求の範囲2に記載のデータ処理装置。 - 前記セキュアリソースに保持されている前記セキュア情報は、セキュアモードにおいて実行され、命令コード部分とデータ部分とスタック部分から構成されるプログラムを含んでおり、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記命令コード部分を暗号化する
ことを特徴とする請求の範囲13に記載のデータ処理装置。 - 前記セキュアリソースに保持されている前記セキュア情報は、セキュアモードにおいて実行され、命令コード部分とデータ部分とスタック部分から構成されるプログラムを含んでおり、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記データ部分を暗号化する
ことを特徴とする請求の範囲13に記載のデータ処理装置。 - 前記セキュアリソースに保持されている前記セキュア情報は、セキュアモードにおいて実行され、命令コード部分とデータ部分とスタック部分から構成されるプログラムを含んでおり、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記スタック部分を暗号化する
ことを特徴とする請求の範囲13に記載のデータ処理装置。 - 前記データ処理装置は、さらに、前記処理手段の動作を監視し、操作するデバッグ装置からデバッグ操作信号を受け付けるデバッグ受付手段を含み、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記処理手段と前記デバッグ受付手段とを接続し、通常モードからセキュアモードに切り替える際に、前記処理手段と前記デバッグ受付手段とを切断する
ことを特徴とする請求項2に記載のデータ処理装置。 - 前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報に対応する位置情報により示される存在位置から前記通常プログラムを読み出す
ことを特徴とする請求項1に記載のデータ処理装置。 - 第1オペレーティングシステムと第2オペレーティングシステムとを切り替え、各オペレーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理装置であって、
前記第1オペレーティングシステムにおいて、第1プロセスを生成する第1生成手段と、
前記第2オペレーティングシステムにおいて、前記第1プロセスと対応する第2プロセスを生成する第2生成手段と、
前記第1オペレーティングシステムにおいて、前記第1プロセスの状態遷移を検出する第1検出手段と、
前記第1オペレーティングシステムにおいて、検出された状態遷移を示す遷移情報を出力する第1出力手段と、
前記第1オペレーティングシステムを前記第2オペレーティングシステムに切り替えるOS切替手段と、
前記第2オペレーティングシステムにおいて、前記遷移情報を取得する第2取得手段と、
取得した前記遷移情報に従って、前記第2プロセスの状態を遷移させる第2遷移手段と
を備えることを特徴とする請求項1に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
前記第2オペレーティングシステムにおいて、前記第2プロセスの状態遷移を検出する第2検出手段と、
前記第2オペレーティングシステムにおいて、検出された状態遷移を示す遷移情報を出力する第2出力手段とを含み、
前記OS切替手段は、さらに、前記第2オペレーティングシステムを前記第1オペレーティングシステムに切り替え、
前記データ処理装置は、さらに、
前記第1オペレーティングシステムにおいて、前記遷移情報を取得する第1取得手段と、
取得した前記遷移情報に従って、前記第1プロセスの状態を遷移させる第1遷移手段とを含むことを特徴とする請求項19に記載のデータ処理装置。 - 前記データ処理装置は、第1オペレーティングシステム及び第2オペレーティングシステムの両方において、アクセス可能な共有記憶領域を備え、
前記第1出力手段は、前記共有記憶領域に前記遷移情報を書き込むことにより、前記遷移情報を出力し、
前記第2取得手段は、前記共有記憶領域から前記遷移情報を読み出すことによって、前記遷移情報を取得する
ことを特徴とする請求項20に記載のデータ処理装置。 - 前記第2出力手段は、前記共有記憶領域に前記遷移情報を書き込むことにより、前記遷移情報を出力し、
前記第1取得手段は、前記共有記憶領域から前記遷移情報を読み出すことによって、前記遷移情報を取得する
ことを特徴とする請求項21に記載のデータ処理装置。 - 前記データ処理装置は、前記第2オペレーティングシステムにおいて管理されて動作するデバイスを含み、
前記第2プロセスは、前記デバイスの駆動を制御するデバイス駆動プログラムであり、
前記第2検出手段は、前記デバイスの動作に伴う前記第2プロセスの状態遷移を検出する
ことを特徴とする請求項22に記載のデータ処理装置。 - 前記第1オペレーティングシステムにおいて、前記第1プロセスが、休止状態から実行状態に遷移した場合、
前記データ処理装置は、前記デバイスへの処理依頼の重複を回避する排他処理を行う前記第1プロセスに従って動作し、
前記第1オペレーティングシステムにおいて、前記第1出力手段は、前記排他処理が終了した後に前記遷移情報を出力する
ことを特徴とする請求項23に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
第1オペレーティングシステム及び第2オペレーティングシステムにおいて、割込の発生を検出する割込検出手段と、
前記第1オペレーティングシステムにおいて、割込が検出された場合、割込発生要因を調査する割込調査手段と、
前記第1オペレーティングシステムにおいて、割込調査手段により、前記デバイスによる割込であると判断された場合、前記第1プロセスを休止状態から実行状態に遷移させる割込遷移手段と
を含むことを特徴とする請求項23に記載のデータ処理装置。 - 前記データ処理装置は、さらに、
前記第2オペレーティングシステムにおいて、割込が検出された場合、割込の検出を示す割込通知情報を出力する通知手段を含み、
前記OS切替手段は、前記第2オペレーティングシステムを前記第1オペレーティングシステムに切り替え、
前記第1取得手段は、さらに、前記第1オペレーティングシステムにおいて、前記割込通知情報を取得し、
前記割込調査手段は、さらに、第1オペレーティングシステムにおいて、前記割込通知情報を取得した場合、割込発生要因を調査する
ことを特徴とする請求項25に記載のデータ処理装置。 - 前記通知手段は、割込が検出された場合、前記割込検出手段に対して、割込の検出を停止させ、
前記第1取得手段は、前記割込通知情報を取得した場合、前記割込検出手段に対して、前記停止を解除する
ことを特徴とする請求項26に記載のデータ処理装置。 - プログラムに従って動作する前記データ処理装置であって、
複数の処理手順から構成されるプログラムを記憶している記憶手段と、
前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断する正当性判断手段と、
不正なものであると判断される場合に、前記プログラムを無効化する無効化手段と
を備えることを特徴とする請求項1に記載のデータ処理装置。 - 前記正当性判断手段は、
前記記憶手段に記憶されている前記プログラムを示すプログラム識別情報を取得するプログラム情報取得部と、
無効化されたプログラムを示す無効化識別情報を取得する無効化情報取得部と、
取得した前記プログラム識別情報と取得した前記無効化識別情報とが一致するか否かを判断する判断部とを含み、
一致すると判断される場合に、前記プログラムが不正であると決定する
ことを特徴とする請求項28に記載のデータ処理装置。 - 前記プログラム情報取得部は、
前記プログラムを示すプログラム識別情報を記憶している識別情報記憶部と、
前記識別情報記憶部から前記プログラム識別情報を読み出すことにより取得する読出部とを含み、
前記無効化情報取得部は、
無効化されたプログラムを示す無効化識別情報を記憶している無効化情報記憶部と、
前記無効化情報記憶部から前記無効化識別情報を読み出すことにより取得する読出部とを含む
ことを特徴とする請求項29に記載のデータ処理装置。 - 前記正当性判断手段は、前記プログラムに割り当てられた公開鍵の正当性を証明する公開鍵証明書に基づいて、前記プログラムが不正なものであるか否かを判断する
ことを特徴とする請求項28に記載のデータ処理装置。 - 前記正当性判断手段は、
前記公開鍵を識別する公開鍵識別情報を含む前記公開鍵証明書を記憶している証明書記憶部と、
前記公開鍵証明書から前記公開鍵識別情報を取得する公開鍵情報取得部と、
無効化された公開鍵を示す無効化識別情報を記憶している無効化情報記憶部と、
前記無効化情報記憶部から無効化識別情報を読み出す無効化情報読出部と、
取得した前記公開鍵識別情報と読み出した前記無効化識別情報とが一致するか否かを判断する判断部とを含み、
一致すると判断される場合に、前記プログラムが不正であると決定する
ことを特徴とする請求項31に記載のデータ処理装置。 - 前記正当性判断手段は、さらに、
外部から最新の無効化識別情報を取得し、取得した無効化識別情報を前記無効化情報記憶部に書き込む更新部を含む
ことを特徴とする請求項32に記載のデータ処理装置。 - 前記更新部は、前記記憶手段へのアクセス要求を検出する度に、最新の無効化識別情報を取得する
ことを特徴とする請求項33に記載のデータ処理装置。 - 前記更新部は、CRL(Certificate Revocation List)発行装置から、ネットワークを介して、前記無効化識別情報を受信し、CRL発行装置から、ネットワーク及びサーバ装置を介して、前記無効化識別情報を受信し、又は記録媒体から前記無効化識別情報を読み出すことにより、取得する
ことを特徴とする請求項33に記載のデータ処理装置。 - 前記更新部は、さらに、外部から、前記最新の無効化識別情報に対してデジタル署名を施して生成された署名データを取得し、取得した署名データに署名検証を施し、署名検証が成功した場合に、取得した前記無効化識別情報を前記無効化情報記憶部に書き込む
ことを特徴とする請求項33に記載のデータ処理装置。 - 前記正当性判断手段は、
少なくとも当該公開鍵に対してデジタル署名を施して生成された署名データを含む前記公開鍵証明書を記憶している証明書記憶部と、
前記証明書記憶部から前記公開鍵証明書を取得する公開鍵証明書取得部と、
取得した前記公開鍵証明書に含まれる署名データに、署名検証を施すことにより、取得した前記公開鍵証明書が正しいものであるか否かを検証する検証部とを含み、
前記公開鍵証明書が正しいものでないと判断される場合に、前記プログラムが不正であると決定する
ことを特徴とする請求項31に記載のデータ処理装置。 - 前記正当性判断手段は、少なくとも2個の公開鍵の正当性をそれぞれ証明する少なくとも2個の公開鍵証明書を用いて、前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断する
ことを特徴とする請求項28に記載のデータ処理装置。 - 前記2個の公開鍵は、前記プログラムに割り当てられた第1公開鍵及び前記データ処理装置又は前記プログラムの動作を制御するオペレーティングシステムに割り当てられた第2公開鍵であり、
前記正当性判断手段は、
権威のある認証機関の秘密鍵を用いて、少なくとも前記第2公開鍵に対してデジタル署名を施して生成された第2署名データと、前記第2公開鍵とを含む第2公開鍵証明書と、
前記データ処理装置又は前記オペーティングシステムの秘密鍵を用いて、少なくとも前記第1公開鍵に対してデジタル署名を施して生成された第1署名データと、前記第1公開鍵とを含む第1公開鍵証明書とを記憶している証明書記憶部と、
前記証明書記憶部から前記第1公開鍵証明書及び前記第2公開鍵証明書を取得する公開鍵証明書取得部と、
取得した前記第2公開鍵証明書に含まれる第2署名データに、前記認証機関の公開鍵を用いて、署名検証を施すことにより、取得した前記第2公開鍵証明書が正しいものであるか否かを検証し、
正しいと判定された場合に、前記第2公開鍵証明書から前記第2公開鍵を取得し、
取得した前記第1公開鍵証明書に含まれる第1署名データに、取得した前記第2公開鍵を用いて、署名検証を施すことにより、取得した前記第1公開鍵証明書が正しいものであるか否かを検証する検証部とを含み、
前記第2公開鍵証明書が正しいものでないと判断される場合及び前記第1公開鍵証明書が正しいものでないと判断される場合に、前記プログラムが不正であると決定する
ことを特徴とする請求項38に記載のデータ処理装置。 - 前記正当性判断手段は、前記記憶手段へのアクセス要求を検出する度に、前記判断をする
ことを特徴とする請求項28に記載のデータ処理装置。 - 前記正当性判断手段は、前記記憶手段に記憶されているプログラムへのアクセス要求を検出する度に、前記判断をする
ことを特徴とする請求項40に記載のデータ処理装置。 - 前記正当性判断手段は、当該データ処理装置へ電力供給が開始された直後に、前記判断をする
ことを特徴とする請求項28に記載のデータ処理装置。 - 暗号化されたプログラムを復号して実行する前記データ処理装置であって、
前記記憶手段は、前記プログラムに代えて、プログラム鍵を用いて、前記プログラムに暗号化アルゴリズムが施されて生成された暗号化プログラムを記憶しており、
前記正当性判断手段は、
p個の暗号鍵から選択されたm個の暗号鍵を記憶している暗号鍵記憶部と、
前記m個の暗号鍵のそれぞれを用いて、前記プログラム鍵及び所定の検知情報のいずれかが暗号化されて生成されたm個の暗号化情報を、m個の前記暗号鍵に対応づけて記憶している暗号化情報記憶部と、
前記m個の暗号鍵のそれぞれを用いて、対応する暗号化情報に復号アルゴリズムを施して、m個の復号情報を生成する復号部と、
生成されたm個の復号情報の全てが、前記検知情報であるか否かを判断する判断部とを含み、
生成されたm個の復号情報の全てが、前記検知情報であると判断される場合に、前記プログラムが不正なものであると決定する
ことを特徴とする請求項28に記載のデータ処理装置。 - 前記p個の暗号鍵は、n行m列(p=n×m)の第1行列の各要素位置に配されており、前記第1行列の各列から1個の暗号鍵が選択されることにより、前記第1行列からm個の暗号鍵が選択され、
前記暗号鍵記憶部は、前記第1行列において、各暗号鍵が配された要素位置を、各暗号鍵に対応付けて記憶しており、
前記暗号化情報記憶部は、n行m列の第2行列において、各暗号化情報に対応する暗号鍵が配されている要素位置と同じ要素位置において、当該暗号化情報を記憶しており、
復号部は、前記暗号鍵記憶部から、暗号鍵と対応する要素位置を読み出し、前記暗号化情報記憶部の第2行列において、前記読み出した要素位置と同じ要素位置に配されている暗号化情報を読み出し、読み出した前記暗号鍵を用いて、読み出した前記暗号化情報に復号アルゴリズムを施す
ことを特徴とする請求項43に記載のデータ処理装置。 - 前記データ処理装置であって、
データを記憶するためのメモリ手段と、
複数の処理手順から構成されるプログラムに従って動作するプロセッサと、
前記メモリ手段と前記プロセッサとの間に配置され、前記プロセッサから出力される前記メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転送制限条件を満たしていると判断する場合に、前記メモリ手段への転送データの転送を抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への転送データの転送を行う監視手段と
を備えることを特徴とする請求項1に記載のデータ処理装置。 - 前記監視手段は、複数のアプリケーションプログラム毎に、転送制限条件を記憶しており、前記プロセッサにより実行されるアプリケーションプログラム毎に、転送制限条件を選択し、選択した転送制限条件を用いる
ことを特徴とする請求項45に記載のデータ処理装置。 - 前記転送制限条件は、前記メモリ手段内の所定の記憶空間を示すアドレス範囲情報であり、
前記監視手段は、前記転送データからアドレス情報を抽出し、抽出したアドレス情報が、前記アドレス範囲情報に含まれる場合に、前記転送データの転送を抑制する
ことを特徴とする請求項46に記載のデータ処理装置。 - 前記転送制限条件は、前記メモリ手段内の所定の記憶空間へのアクセス回数の上限を示す制限回数であり、
前記監視手段は、過去における前記記憶空間へのアクセスの累積回数を記憶しており、前記転送データからアドレス情報を抽出し、抽出したアドレス情報が、前記アドレス範囲情報に含まれる場合に、前記累積回数に1を加算し、加算して得られた加算後回数が、前記制限回数を超える場合に、前記転送データの転送を抑制する
ことを特徴とする請求項46に記載のデータ処理装置。 - 前記監視手段は、前記プロセッサに接続されるバス上において転送される前記転送データが転送制限条件を満たしているか否かを判断する
ことを特徴とする請求項46に記載のデータ処理装置。 - 前記メモリ手段は、暗号鍵を用いて、前記プロセッサにより実行されている現プログラムとは異なるアプリケーションプログラムのコード部分とデータ部分とがそれぞれ暗号化されて生成された暗号化コード及び暗号化データを記憶しており、
前記転送制限条件は、前記メモリ手段内において前記暗号化データが格納されている記憶空間を示すアドレス範囲情報であり、
前記監視手段は、前記暗号化コード及び暗号化データを復号するための復号鍵を記憶しており、前記転送データからアドレス情報を抽出し、抽出したアドレス情報が、前記暗号化コードが格納されている記憶空間を示すアドレス範囲内にある場合に、前記復号鍵を用いて、前記転送データにより示される記憶空間に存在する暗号化コードを復号して復号コードを生成し、生成した復号コードを前記プロセッサへ転送し、抽出したアドレス情報が、前記アドレス範囲情報に含まれる場合に、転送データの転送を抑制する
ことを特徴とする請求項46に記載のデータ処理装置。 - 前記監視手段は、さらに、転送制限条件を満たしていると判断する場合に、前記プロセッサにより実行中の前記プログラムを識別する識別情報をプログラム無効化リストに追加する
ことを特徴とする請求項46に記載のデータ処理装置。 - 前記データ処理装置であって、
データを記憶するためのメモリ手段と、
複数の処理手順から構成されるプログラムに従って動作し、次に実行対象となる命令のアドレスが格納されているプログラムカウンタを備えるプロセッサと、
前記プログラムカウンタに格納されているアドレスが、所定のアドレス範囲内に含まれるか否かを判断し、所定のアドレス範囲内に含まれると判断する場合に、前記プロセッサに対して、プログラムカウンタに所定の値を格納するように指示する監視手段とを備え、
前記プロセッサは、前記指示を受け取ると、プログラムカウンタに前記所定の値を格納する
ことを特徴とする請求項1に記載のデータ処理装置。 - 保護対象のセキュアリソースの利用が許可されるセキュアモードと、保護対象外の通常リソースの利用のみが許可される通常モードとを切り替えて、プログラムを実行するデータ処理装置において用いられるデータ処理方法であって、
前記データ処理装置は、前記通常リソースを利用する1つ以上の処理手順から構成される通常プログラムを記憶している通常記憶手段と、前記セキュアリソースを利用する1つ以上の処理手順から構成され、少なくとも前記通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶しているセキュア記憶手段とを備え、
前記データ処理方法は、
セキュアモードにおいて、次に実行すべき命令が、前記呼出命令であるか否かを判断する判断ステップと、
セキュアモードにおいて、前記呼出命令であると判断される場合に、当該呼出命令により呼び出される前記通常プログラムを示す識別情報を出力する出力ステップと、
前記呼出命令であると判断される場合に、セキュアリソースを保護して、セキュアモードから通常モードに切り替える切替ステップと、
通常モードにおいて、前記識別情報を受け取る受取ステップと、
通常モードにおいて、受け取った前記識別情報により示される前記通常プログラムを前記通常記憶手段から読み出す読出ステップと、
通常モードにおいて、読み出した通常プログラムに従って動作する処理ステップと
を含むことを特徴とするデータ処理方法。 - 第1オペレーティングシステムと第2オペレーティングシステムとを切り替え、各オペレーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理方法であって、
前記第1オペレーティングシステムにおいて、第1プロセスを生成する第1生成ステップと、
前記第2オペレーティングシステムにおいて、前記第1プロセスと対応する第2プロセスを生成する第2生成ステップと、
前記第1オペレーティングシステムにおいて、前記第1プロセスの状態遷移を検出する第1検出ステップと、
前記第1オペレーティングシステムにおいて、検出された状態遷移を示す遷移情報を出力する第1出力ステップと、
前記第1オペレーティングシステムを前記第2オペレーティングシステムに切り替えるOS切替ステップと、
前記第2オペレーティングシステムにおいて、前記遷移情報を取得する第2取得ステップと、
取得した前記遷移情報に従って、前記第2プロセスの状態を遷移させる第2遷移ステップと
を含むことを特徴とする請求項53に記載のデータ処理方法。 - プログラムに従って動作する前記データ処理装置において用いられる前記データ処理方法であって、
前記データ処理装置は、複数の処理手順から構成されるプログラムを記憶している記憶手段を備え、
前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断する正当性判断ステップと、
不正なものであると判断される場合に、前記プログラムを無効化する無効化ステップと
を含むことを特徴とする請求項53に記載のデータ処理方法。 - 前記データ処理装置において用いられるデータ処理方法であって、
前記データ処理装置は、データを記憶するためのメモリ手段と複数の処理手順から構成されるプログラムに従って動作するプロセッサとを備え、
前記データ処理方法は、
前記メモリ手段と前記プロセッサとの間において、前記プロセッサから出力される前記メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転送制限条件を満たしていると判断する場合に、前記メモリ手段への転送データの転送を抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への転送データの転送を行う監視ステップ
を含むことを特徴とする請求項53に記載のデータ処理方法。 - 保護対象のセキュアリソースの利用が許可されるセキュアモードと、保護対象外の通常リソースの利用のみが許可される通常モードとを切り替えて、プログラムを実行するデータ処理装置において用いられるデータ処理プログラムであって、
前記データ処理装置は、前記通常リソースを利用する1つ以上の処理手順から構成される通常プログラムを記憶している通常記憶手段と、前記セキュアリソースを利用する1つ以上の処理手順から構成され、少なくとも前記通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶しているセキュア記憶手段とを備え、
前記データ処理プログラムは、
セキュアモードにおいて、次に実行すべき命令が、前記呼出命令であるか否かを判断する判断ステップと、
セキュアモードにおいて、前記呼出命令であると判断される場合に、当該呼出命令により呼び出される前記通常プログラムを示す識別情報を出力する出力ステップと、
前記呼出命令であると判断される場合に、セキュアリソースを保護して、セキュアモードから通常モードに切り替える切替ステップと、
通常モードにおいて、前記識別情報を受け取る受取ステップと、
通常モードにおいて、受け取った前記識別情報により示される前記通常プログラムを前記通常記憶手段から読み出す読出ステップと、
通常モードにおいて、読み出した通常プログラムに従って動作する処理ステップと
を含むことを特徴とするデータ処理プログラム。 - 第1オペレーティングシステムと第2オペレーティングシステムとを切り替え、各オペレーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理プログラムであって、
前記第1オペレーティングシステムにおいて、第1プロセスを生成する第1生成ステップと、
前記第2オペレーティングシステムにおいて、前記第1プロセスと対応する第2プロセスを生成する第2生成ステップと、
前記第1オペレーティングシステムにおいて、前記第1プロセスの状態遷移を検出する第1検出ステップと、
前記第1オペレーティングシステムにおいて、検出された状態遷移を示す遷移情報を出力する第1出力ステップと、
前記第1オペレーティングシステムを前記第2オペレーティングシステムに切り替えるOS切替ステップと、
前記第2オペレーティングシステムにおいて、前記遷移情報を取得する第2取得ステップと、
取得した前記遷移情報に従って、前記第2プロセスの状態を遷移させる第2遷移ステップと
を含むことを特徴とする請求項57に記載のデータ処理プログラム。 - プログラムに従って動作する前記データ処理装置において用いられる前記データ処理プログラムであって、
前記データ処理装置は、複数の処理手順から構成されるプログラムを記憶している記憶手段を備え、
前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断する正当性判断ステップと、
不正なものであると判断される場合に、前記プログラムを無効化する無効化ステップと
を含むことを特徴とする請求項57に記載のデータ処理プログラム。 - 前記データ処理装置において用いられるデータ処理プログラムであって、
前記データ処理装置は、データを記憶するためのメモリ手段と複数の処理手順から構成されるプログラムに従って動作するプロセッサとを備え、
前記データ処理プログラムは、
前記メモリ手段と前記プロセッサとの間において、前記プロセッサから出力される前記メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転送制限条件を満たしていると判断する場合に、前記メモリ手段への転送データの転送を抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への転送データの転送を行う監視ステップ
を含むことを特徴とする請求項57に記載のデータ処理プログラム。 - 前記データ処理プログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項57に記載のデータ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004342650A JP4629416B2 (ja) | 2003-11-28 | 2004-11-26 | データ処理装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003399055 | 2003-11-28 | ||
JP2004342650A JP4629416B2 (ja) | 2003-11-28 | 2004-11-26 | データ処理装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005182774A true JP2005182774A (ja) | 2005-07-07 |
JP2005182774A5 JP2005182774A5 (ja) | 2007-11-15 |
JP4629416B2 JP4629416B2 (ja) | 2011-02-09 |
Family
ID=34797364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004342650A Active JP4629416B2 (ja) | 2003-11-28 | 2004-11-26 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4629416B2 (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046887A (ja) * | 2006-08-17 | 2008-02-28 | Ntt Docomo Inc | Os切替装置及びos切替方法 |
JP2008123482A (ja) * | 2006-10-18 | 2008-05-29 | Matsushita Electric Ind Co Ltd | 記憶媒体制御方法 |
JP2009093660A (ja) * | 2007-10-08 | 2009-04-30 | ▲聯▼想(北京)有限公司 | オンラインで安全な支払いを実現する方法及びクライアントシステム |
JP2010541084A (ja) * | 2007-10-02 | 2010-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | セキュア・カーネル設計による安全基準の差別化 |
JP2012089138A (ja) * | 2010-10-21 | 2012-05-10 | Arm Ltd | 非セキュアドメインの中に表示される対象画像のためのセキュリティ対策 |
JP2013507698A (ja) * | 2009-10-15 | 2013-03-04 | エフティーエス コンピューターテクニク ジーエムビーエイチ | 安全性に関連したおよび安全性に関連していないソフトウェア・コンポーネントを1つのハードウェア・プラットフォーム上で実行する方法 |
US8402280B1 (en) | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
US8868925B2 (en) | 2008-12-09 | 2014-10-21 | Nvidia Corporation | Method and apparatus for the secure processing of confidential content within a virtual machine of a processor |
JP2015525934A (ja) * | 2012-07-24 | 2015-09-07 | スプリント コミュニケーションズ カンパニー エル.ピー. | 周辺機器にアクセスする信頼できるセキュリティゾーン |
JP2019160302A (ja) * | 2018-03-06 | 2019-09-19 | ライン プラス コーポレーションLINE Plus Corporation | セキュアメッセージ提供方法およびシステム |
JP2021530009A (ja) * | 2018-06-27 | 2021-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 暗号化されたデータに対するセキュアな動作 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272625A (ja) * | 1995-03-29 | 1996-10-18 | Toshiba Corp | マルチプログラム実行制御装置及び方法 |
JP2001022598A (ja) * | 1999-07-07 | 2001-01-26 | Hitachi Ltd | 計算機システム |
JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
JP2001318787A (ja) * | 2000-05-08 | 2001-11-16 | Toshiba Corp | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 |
JP2002182560A (ja) * | 2000-12-12 | 2002-06-26 | Hitachi Ltd | 暗号処理機能を備えた情報サーバ装置 |
JP2002189633A (ja) * | 2000-12-21 | 2002-07-05 | Nec Corp | 仮想空間のメモリ保護方法及び装置 |
JP2002251326A (ja) * | 2001-02-22 | 2002-09-06 | Hitachi Ltd | 耐タンパ計算機システム |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
JP2003280756A (ja) * | 2002-03-25 | 2003-10-02 | Seiko Epson Corp | 情報処理装置のデバッグ手段 |
-
2004
- 2004-11-26 JP JP2004342650A patent/JP4629416B2/ja active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272625A (ja) * | 1995-03-29 | 1996-10-18 | Toshiba Corp | マルチプログラム実行制御装置及び方法 |
JP2001022598A (ja) * | 1999-07-07 | 2001-01-26 | Hitachi Ltd | 計算機システム |
JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
JP2001318787A (ja) * | 2000-05-08 | 2001-11-16 | Toshiba Corp | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 |
JP2002182560A (ja) * | 2000-12-12 | 2002-06-26 | Hitachi Ltd | 暗号処理機能を備えた情報サーバ装置 |
JP2002189633A (ja) * | 2000-12-21 | 2002-07-05 | Nec Corp | 仮想空間のメモリ保護方法及び装置 |
JP2002251326A (ja) * | 2001-02-22 | 2002-09-06 | Hitachi Ltd | 耐タンパ計算機システム |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
JP2003280756A (ja) * | 2002-03-25 | 2003-10-02 | Seiko Epson Corp | 情報処理装置のデバッグ手段 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046887A (ja) * | 2006-08-17 | 2008-02-28 | Ntt Docomo Inc | Os切替装置及びos切替方法 |
JP2008123482A (ja) * | 2006-10-18 | 2008-05-29 | Matsushita Electric Ind Co Ltd | 記憶媒体制御方法 |
JP2010541084A (ja) * | 2007-10-02 | 2010-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | セキュア・カーネル設計による安全基準の差別化 |
JP2009093660A (ja) * | 2007-10-08 | 2009-04-30 | ▲聯▼想(北京)有限公司 | オンラインで安全な支払いを実現する方法及びクライアントシステム |
US8868925B2 (en) | 2008-12-09 | 2014-10-21 | Nvidia Corporation | Method and apparatus for the secure processing of confidential content within a virtual machine of a processor |
US8402280B1 (en) | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
JP2013507698A (ja) * | 2009-10-15 | 2013-03-04 | エフティーエス コンピューターテクニク ジーエムビーエイチ | 安全性に関連したおよび安全性に関連していないソフトウェア・コンポーネントを1つのハードウェア・プラットフォーム上で実行する方法 |
JP2012089138A (ja) * | 2010-10-21 | 2012-05-10 | Arm Ltd | 非セキュアドメインの中に表示される対象画像のためのセキュリティ対策 |
JP2015525934A (ja) * | 2012-07-24 | 2015-09-07 | スプリント コミュニケーションズ カンパニー エル.ピー. | 周辺機器にアクセスする信頼できるセキュリティゾーン |
JP2019160302A (ja) * | 2018-03-06 | 2019-09-19 | ライン プラス コーポレーションLINE Plus Corporation | セキュアメッセージ提供方法およびシステム |
US11881940B2 (en) | 2018-03-06 | 2024-01-23 | LINE Plus Corporation | Method and system for providing secure message |
JP7422490B2 (ja) | 2018-03-06 | 2024-01-26 | ライン プラス コーポレーション | セキュアメッセージ提供方法およびシステム |
JP2021530009A (ja) * | 2018-06-27 | 2021-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 暗号化されたデータに対するセキュアな動作 |
JP7201300B2 (ja) | 2018-06-27 | 2023-01-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 暗号化されたデータに対するセキュアな動作 |
Also Published As
Publication number | Publication date |
---|---|
JP4629416B2 (ja) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101037006B1 (ko) | 데이터 처리장치 | |
JP6067449B2 (ja) | 情報処理装置、情報処理プログラム | |
US8555089B2 (en) | Program execution apparatus, control method, control program, and integrated circuit | |
JP4886682B2 (ja) | データ処理装置 | |
JP5260081B2 (ja) | 情報処理装置及びその制御方法 | |
JP4537908B2 (ja) | プロセッサ、メモリ、コンピュータシステムおよびシステムlsi | |
JP4795812B2 (ja) | セキュアプロセッサ | |
JP4660188B2 (ja) | スリープ状態における攻撃からの保護 | |
EP2062191B1 (en) | System and method for securely restoring a program context from a shared memory | |
JP2009089390A (ja) | 信用済基盤区画(tpm)のための更新可能な鍵束縛を提供する方法及び装置 | |
WO2010041462A1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び集積回路 | |
JP4629416B2 (ja) | データ処理装置 | |
CN107077428A (zh) | 保护应用秘密免受操作***攻击 | |
JP2013519929A (ja) | 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法 | |
JPWO2011033773A1 (ja) | 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路 | |
JP2016111446A (ja) | メモリコントローラ、メモリコントローラの制御方法及びメモリシステム | |
JP2010128557A (ja) | 情報処理システムおよび情報処理プログラム | |
JP2007310601A (ja) | マイクロコンピュータおよびそのソフトウェア保護方法 | |
JP2005182774A5 (ja) | ||
JP5759827B2 (ja) | メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法 | |
JP6987308B1 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
JP2010146635A (ja) | コンテンツ記録再生装置並びにコンテンツの書き込み及び読み出し方法 | |
JP5304304B2 (ja) | セキュリティ強化システム、方法、プログラム及びusbメモリ | |
JP2004252852A (ja) | 情報処理装置及び情報処理方法 | |
JP2011118504A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071002 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100924 |
|
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: 20101019 |
|
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: 20101111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4629416 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
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 |
|
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 |