(57)【要約】【課題】実行中のアプリケーションプログラムに不正な書き換えがあったときに、そのプログラム実行の継続を防止することのできる半導体装置を提供する。【解決手段】実施形態の半導体装置は、ＣＰＵ１を備え、認証情報生成部２が、ＣＰＵ１で実行されるアプリケーションプログラムごとに、その実行情報をもとに、そのアプリケーションプログラムの認証情報を生成し、セキュアロジック３が、認証情報生成部２により生成された認証情報をもとに、アプリケーションプログラムから要求されたサービスの実行の可否を判定する。【選択図】  図１
2013196291.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵの内部情報を参照することによって、実行中のアプリケーションプログラムを特定するとともに、そのアプリケーションプログラムが例外処理の実行中であるか否かを判定する比較・制御部と、前記ＣＰＵで実行されるアプリケーションプログラムごとに、その実行情報をもとに前記アプリケーションプログラムの認証情報を生成する認証情報生成部と、
前記認証情報生成部により生成された前記認証情報をもとに前記アプリケーションプログラムから要求されたサービスの実行の可否を判定するセキュアロジックと
を備え、
前記認証情報生成部は、
前記ＣＰＵの内部情報を参照することによって、実行中のアプリケーションプログラムを特定するとともに、そのアプリケーションプログラムが例外処理の実行中であるか否かを判定する比較・制御部と、前記ＣＰＵの内部情報をもとに、前記アプリケーションプログラムごとに、所定の演算により認証情報を生成する認証情報演算部とを備え、前記認証情報演算部が、前記比較・制御部が、前記例外処理の実行中ではないと判定したときのみ、前記演算を継続して実行し、
前記セキュアロジックは、
前記アプリケーションプログラムに対して提供可能なサービスごとに記載された、前記認証情報に対する、予め生成された認証情報期待値を格納する認証情報期待値テーブルと、前記サービスの要求を受けたときに、前記認証情報生成部から前記認証情報を取得し、前記認証情報期待値テーブルに格納された前記認証情報期待値と比較する認証情報照合部とを備え、前記認証情報照合部が前記認証情報と前記認証情報期待値との一致を検出したときのみ、前記要求されたサービスを実行する
ことを特徴とする半導体装置。
【請求項２】
ＣＰＵと、
前記ＣＰＵで実行されるアプリケーションプログラムごとに、その実行情報をもとに前記アプリケーションプログラムの認証情報を生成する認証情報生成部と、
前記認証情報生成部により生成された前記認証情報をもとに前記アプリケーションプログラムから要求されたサービスの実行の可否を判定するセキュアロジックと
を備えることを特徴とする半導体装置。
【請求項３】
前記認証情報生成部が、
前記ＣＰＵの内部情報を参照することによって、実行中のアプリケーションプログラムを特定するとともに、そのアプリケーションプログラムが例外処理の実行中であるか否かを判定する比較・制御部と、
前記ＣＰＵの内部情報をもとに、前記アプリケーションプログラムごとに、所定の演算により認証情報を生成する認証情報演算部と
を備え、
前記認証情報演算部は、
前記比較・制御部が、前記例外処理の実行中ではないと判定したときのみ、前記演算を継続して実行する
ことを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記セキュアロジックが、
前記認証情報に対する、予め生成された認証情報期待値を格納する認証情報期待値テーブルと、
前記サービスの要求を受けたときに、前記認証情報生成部から前記認証情報を取得し、前記認証情報期待値テーブルに格納された前記認証情報期待値と比較する認証情報照合部と
を備え、
前記認証情報照合部が前記認証情報と前記認証情報期待値との一致を検出したときのみ、前記要求されたサービスを実行する
ことを特徴とする請求項２または３に記載の半導体装置。
【請求項５】
前記認証情報期待値テーブルは、
前記アプリケーションプログラムに対して提供可能なサービスごとに、前記認証情報期待値が記載されている
ことを特徴とする請求項４に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体装置に関する。
【背景技術】
【０００２】
映画や音楽といった様々な商用データ（以下、これらをコンテンツと呼ぶ）は、情報記録媒体、あるいはネットワークを経由した配信によってユーザに提供される。このコンテンツの不正コピーや改竄を防止する手法の１つとして、コンテンツの暗号化処理がある。
【０００３】
暗号化されたコンテンツを視聴する場合、暗号化されたデータの復号が必要になる。そのため、暗号化されたコンテンツを処理する情報処理装置には、暗号化されたデータを復号するセキュアロジックや、復号された情報を再生するアプリケーションプログラムを実行するＣＰＵ、等を備える半導体装置が搭載されている。
【０００４】
この半導体装置のセキュリティ上の問題は、実行中のアプリケーションプログラムが何らかの不正な手段で書き換えられると、以降、その不正なアプリケーションプログラムが、そのまま継続して実行されることである。これにより、この不正なアプリケーションプログラムが、保護されるべき再生対象のコンテンツの不正コピー手段となりうる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１２９０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、実行中のアプリケーションプログラムに不正な書き換えがあったときに、そのプログラム実行の継続を防止することのできる半導体装置を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態の半導体装置は、ＣＰＵを備え、認証情報生成部が、前記ＣＰＵで実行されるアプリケーションプログラムごとに、その実行情報をもとに前記アプリケーションプログラムの認証情報を生成し、セキュアロジックが、前記認証情報生成部により生成された前記認証情報をもとに前記アプリケーションプログラムから要求されたサービスの実行の可否を判定する。
【図面の簡単な説明】
【０００８】
【図１】実施形態の半導体装置の構成の例を示すブロック図。
【図２】実施形態の半導体装置の認証情報テーブルの構成の例を示す図。
【図３】認証対象のアプリケーションプログラムの処理の流れの例を示すフロー図。
【図４】実施形態の半導体装置の認証情報生成部の認証情報生成処理の流れの例を示すフロー図。
【図５】実施形態の半導体装置の認証情報生成部の認証情報出力処理の流れの例を示すフロー図。
【図６】実施形態の半導体装置のセキュアロジックの処理の流れの例を示すフロー図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について図面を参照して説明する。なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
【００１０】
（実施形態）
図１は、実施形態の半導体装置の構成の例を示すブロック図である。
【００１１】
本実施形態の半導体装置は、ＣＰＵ１と、ＣＰＵ１で実行されるアプリケーションプログラムごとに、その実行情報をもとに、そのアプリケーションプログラムの認証情報を生成する認証情報生成部２と、認証情報生成部２により生成された認証情報をもとに、アプリケーションプログラムから要求されたサービスの実行の可否を判定するセキュアロジック３と、を備える。
【００１２】
ＣＰＵ１は、認証情報生成部２へ認証情報生成に関わるコマンドを発行する認証コマンド発行部１１と、実行中のアプリケーションプログラムの実行状況を示す情報が格納されるプロセスＩＤレジスタ１２およびステータスレジスタ１３と、分岐命令やジャンプ命令によるプログラムカウンタ（ＰＣ）の切り替わりを検出し、その分岐先のＰＣ値を出力する分岐先ＰＣ値出力部１４と、を有する。
【００１３】
認証コマンド発行部１１は、認証対象のアプリケーションの認証情報の生成開始および停止などの操作を行うためのコマンドを発行する。
【００１４】
プロセスＩＤレジスタ１２には、オペレーティングシステム（ＯＳ）により実行権が与えられたアプリケーションプログラムのプロセスＩＤが記録される。
【００１５】
ステータスレジスタ１３には、ＣＰＵ１の内部状態が記録される。
【００１６】
本来、ＣＰＵ１においては複数のアプリケーションプログラムが動作している可能性があり、それらの制御はＯＳにより行われる。ＯＳはアプリケーションプログラムごとにプロセスＩＤを与え、それらの管理に使用する。
【００１７】
その１つの目的がメモリ管理であって、プロセスＩＤレジスタ１２は、本来メモリ管理を担うＭＭＵ（Memory Management Unit）の資源であるが、本実施形態においては、この既存の資源を利用する。その目的は、認証情報生成部が動作中のアプリケーションプログラムを正しく認識することにある。
【００１８】
ＯＳは、必要に応じて動作中のアプリケーションプログラムを切り替える。このとき、実行権を得たアプリケーションプログラムのプロセスＩＤが、プロセスＩＤレジスタ１２にＯＳによって記録される。
【００１９】
このアプリケーションプログラムの切り替え操作を、一般にはディスパッチと呼ぶ。ＯＳは、必要に応じてディスパッチを行い、ＣＰＵ１上で実行されるアプリケーションプログラムは常に入れ替わる可能性がある。
【００２０】
そこで、本実施形態では、今まさに動作しているアプリケーションプログラムを特定するための手段として、プロセスＩＤレジスタ１２を利用する。
【００２１】
一般に、ＣＰＵは内部状態を有する。その１つは例外であり、例外発生時にＣＰＵが実行するプログラムは、その時点で実行権を得ているアプリケーションプログラムとは独立したものである。例えば、割り込みもこの例外に属する。
【００２２】
割り込みが発生すると、その時点で実行権を得ているアプリケーションプログラムの実行は一時中断され、割り込み処理がそれに代わって実行される。その後、必要に応じてディスパッチが発生し、割り込みによって処理が中断されていたアプリケーションプログラムに再度実行権が与えられる。
【００２３】
このＣＰＵ１内部状態は、ＣＰＵ１の資源であるステータスレジスタ１３に反映され、ＯＳがその参照を行い、ＣＰＵ１の内部状態の把握を行う。
【００２４】
本実施形態では、この既存の資源であるステータスレジスタ１３を利用し、プロセスＩＤレジスタ１２の情報と併せて、アプリケーションプログラムの実行状況を把握するための情報として活用する。
【００２５】
分岐先ＰＣ値出力部１４は、分岐命令やジャンプ命令によるＰＣの切り替わりを検出し、その分岐先のＰＣ値を認証情報生成部２へ出力する。この分岐先ＰＣ値も、アプリケーションプログラムの実行情報の１つとして、認証情報生成部２にて利用される。
【００２６】
認証情報生成部２は、実行中のアプリケーションプログラムを特定するとともに、そのアプリケーションプログラムが例外処理の実行中であるか否かを判定する比較・制御部２１と、ＣＰＵ１の内部情報をもとに、アプリケーションプログラムごとに、所定の演算により認証情報を生成する認証情報演算部２２と、を備える。
【００２７】
必要に応じてアプリケーションプログラムは、それ自身の認証情報の生成を行うために、認証コマンド発行部１１を経由して、認証情報生成部２へ認証情報生成コマンドを発行する。
【００２８】
認証情報生成部２は、認証コマンド発行部１１から認証情報生成コマンドが発行されると、アプリケーションプログラムの認証情報の生成を開始する。
【００２９】
このとき、認証情報生成部２は、その認証情報生成コマンドを発行したアプリケーションプログラムのプロセスＩＤをプロセスＩＤレジスタ１２から読み出し、認証対象アプリケーションのＩＤとして、その内部に登録する。
【００３０】
この条件の下、認証情報生成部２は、ＣＰＵ１のプロセスＩＤレジスタ１２およびステータスレジスタ１３を比較・制御部２１にて参照し、対象のアプリケーションプログラムが実行中であり、かつ、例外処理ではない場合に限り、分岐先ＰＣ値出力部１４の情報から、認証情報演算部２２にて所定の演算により認証情報の演算を継続的に行う。
【００３１】
この認証情報の演算は、対象のアプリケーションプログラムによって認証情報出力コマンドが、ＣＰＵ１の認証コマンド発行部１１を経由して認証情報生成部２に対して発行されるまで継続される。
【００３２】
その過程において、ＣＰＵ１の内部状態が例外状態に遷移し、ステータスレジスタ１３の状態からＣＰＵ１の内部状態の変化が検出された場合や、ディスパッチによってプロセスＩＤレジスタ１２の値が変化し、認証情報生成対象のアプリケーションプログラムと異なるプロセスＩＤが登録されていることが検出された場合、比較・制御部２１は、認証情報演算部２２における対象のアプリケーションプログラムに対する認証情報の生成処理を中断させる。
【００３３】
また、認証情報生成部２は、ＣＰＵ１の認証コマンド発行部１１を経由して認証情報出力コマンドが発行されると、演算結果である認証情報と、その認証情報に対応するプロセスＩＤの組を、その内部に保持する。
【００３４】
セキュアロジック３は、認証情報生成部２で生成される認証情報に対する、予め生成された認証情報期待値を格納する認証情報期待値テーブル３１と、アプリケーションプログラムからサービスの要求を受けたときに、認証情報生成部２から認証情報を取得し、認証情報期待値テーブル３１に格納された認証情報期待値と比較する認証情報照合部３２と、を備える。
【００３５】
図２に、情報期待値テーブル３１の構成の例を示す。
【００３６】
図２に示す例では、情報期待値テーブル３１は、第１のテーブル３１１と、第２のテーブル３１２と、で構成される。
【００３７】
第１のテーブル３１１には、セキュアロジック３が特定のアプリケーションプログラムに対して提供可能なサービスの種別と、そのサービスに該当する認証情報期待値の格納位置を示すインデックスと, そのサービスに対する認証情報の候補の数と、が記載されている。
【００３８】
ここでは、サービスの種別がＳｅｒｖｉｃｅ１、Ｓｅｒｖｉｃｅ２、・・・と表され、インデックスがＩｎｄｅｘ１、Ｉｎｄｅｘ２、・・・と表され、認証情報の候補の数ｎがＳｉｚｅ  ｎと表される。
【００３９】
第２のテーブル３１２には、各サービスに対する認証情報の候補となる複数の認証情報期待値が記載されている。
【００４０】
認証情報照合部３２は、アプリケーションプログラムからサービスの要求を受けたときに、認証情報生成部２から認証情報を取得し、認証情報期待値テーブル３１に格納された認証情報期待値と比較する。
【００４１】
次に、セキュアロジック３の動作について説明する。
【００４２】
アプリケーションプログラムは、セキュアロジック３へサービスを要求するとき、自身のプロセスＩＤをサービス要求のコマンドに付加してセキュアロジック３に対し発行する。
【００４３】
サービス要求のコマンドを受信すると、セキュアロジック３は、そのサービス要求のコマンドに付加されているプロセスＩＤと、その認証情報出力要求を認証情報生成部２へ送信し、その後、そのプロセスＩＤに対応する認証情報を認証情報生成部２から読み出す。
【００４４】
なお、この認証情報の読み出しが行われると、認証情報生成部２は、保持していた、あるプロセスＩＤに該当する認証情報を破棄し、同一の認証情報の連続した読み出しを抑制する。
【００４５】
認証情報照合部３２は、認証情報生成部２から認証情報が送られてくると、要求されたサービスの種別に対する認証情報期待値の候補を認証情報テーブル３１から読み出し、認認証情報生成部から受信した認証情報と、順次比較する。
【００４６】
例えば、要求されたサービスの種別がＳｅｒｖｉｃｅ２であった場合、認証情報照合部３２は、図２に示すテーブル３１１のインデックスの値Ｉｎｄｅｘ２、および候補の数を示すＳｉｚｅ  ２にもとづいて、テーブル３１２から認証情報期待値２＿１、認証情報期待値２＿２を読み出し、認認証情報生成部から受信した認証情報と、順次比較する。
【００４７】
なお、このＳｅｒｖｉｃｅ２は、例えば、暗号によって秘匿されたコンテンツの一部の復号を処理するサービス、などである。
【００４８】
セキュアロジック３は、認証情報期待値と認証情報に一致が見られない場合、サービス要求コマンドに対応した処理を実行しない。一方、認証情報期待値と認証情報に一致が見られた場合には、セキュアロジック３は、サービス要求コマンドに対応した処理を実行し、適切な応答をアプリケーションプログラムに返す。
【００４９】
すなわち、前者はアプリケーションプログラムの認証失敗に相当し、後者はアプリケーションプログラムの認証成功に相当する。
【００５０】
このように、本実施形態では、セキュアロジック３に対してサービス要求コマンドを発行したアプリケーションプログラムの認証が可能となり、しかも、その認証はアプリケーションプログラムが実際に動作することによって可能となる。つまり、リバースエンジニアリングなどによって不正に改造されたアプリケーションプログラムの継続的な実行を阻止し、より高度なコンテンツ保護の機構を実現することができる。
【００５１】
上述したように、アプリケーションプログラムは、セキュアロジック３に対して、例えばＳｅｒｖｉｃｅ２なる特定の処理を要求する。このときのアプリケーションプログラムの処理の流れを図３に示すフロー図を用いて説明する。
【００５２】
図３は、アプリケーションプログラムのサービス要求時の処理の流れを示すフロー図である。
【００５３】
アプリケーションプログラムは、セキュアロジック３に対するサービス要求コマンドの発行に先立ち、ＣＰＵ１の認証コマンド発行部１１へ認証情報生成コマンドを入力し、認証コマンド発行部１１経由で認証情報生成部２へ認証情報生成コマンドを発行する（ステップＳ０１）。
【００５４】
この認証情報生成コマンドの発行を受けると、認証情報生成部２は、認証情報生成コマンド受信時のプロセスＩＤをプロセスＩＤレジスタ１２から読み出し、認証対象のアプリケーションプログラムと一致するプロセスＩＤを取得する。
【００５５】
認証情報生成部２では、比較・制御部２１が、プロセスＩＤレジスタ１２の値が特定のプロセスＩＤであり、かつ、ステータスレジスタ１３が例外処理状態を示していない、と判定した場合に限り、認証情報演算部２２が、分岐先ＰＣ値出力部１４から取得したＰＣ値をもとに所定の演算を実行し、認証情報を作成する。
【００５６】
一方、アプリケーションプログラムは、セキュアロジック３に対してサービス要求コマンドを発行する（ステップＳ０２）。
【００５７】
続いて、アプリケーションプログラムは、ＣＰＵ１の認証コマンド発行部１１へ認証情報出力コマンドを入力し、認証コマンド発行部１１経由で認証情報生成部２へ認証情報出力コマンドを発行する（ステップＳ０３）。
【００５８】
この認証情報出力コマンドの発行を受けると、認証情報生成部２は、認証情報演算部２２で実行中の認証情報の演算を終了し、セキュアロジック３へ出力する認証情報を生成し、対象のプロセスＩＤの値とともに保持する。
【００５９】
このように、本実施形態では、セキュアロジック３に対してサービスを要求するアプリケーションプログラムは、それ自身が、専用のコマンドを用いて、認証情報の演算開始とその終了を認証情報生成部２へ依頼する必要がある。
【００６０】
次に、認証情報生成部２における認証情報の生成処理について、図４に示すフロー図を用いて説明する。
【００６１】
図４は、認証情報生成部２における認証情報の生成処理の流れを示すフロー図である。
【００６２】
認証情報生成部２は、常に動作しており、ＣＰＵ１の認証コマンド発行部１１から認証情報生成コマンドが発行されると、認証情報の生成処理を開始する。
【００６３】
処理を開始すると、まず、比較・制御部２１が、ＣＰＵ１のプロセスＩＤレジスタ１２を読み出し（ステップＳ１１）、実行権を得ているアプリケーションプログラムを特定する。
【００６４】
また、比較・制御部２１は、ＣＰＵ１のステータスレジスタ１３を読み出し（ステップＳ１２）、ＣＰＵ１が例外処理の状態あるか否かを判定する（ステップＳ１３）。
【００６５】
ＣＰＵ１が例外処理を実行している場合は（ＹＥＳ）、認証情報生成部２は、以降の処理へ進まず、ステップＳ１１へ戻る。
【００６６】
ＣＰＵ１が例外処理を実行していない場合（ＮＯ）、すなわち、対象のアプリケーションプログラムを実行している場合、認証情報生成部２は、続いて、新規に認証情報生成コマンドが入力されたものか否かを判定する（ステップＳ１４）。
【００６７】
新規の認証情報生成コマンドの入力の場合には（ＹＥＳ）、認証情報演算部２２は、認証情報生成処理を開始する（ステップＳ１５）。
【００６８】
一方、認証コマンド発行部１１から発行されたコマンドが新規の認証情報生成コマンドでない場合は（ＮＯ）、そのコマンドが新規の認証情報出力コマンドであるか否かを判定する（ステップＳ１６）。
【００６９】
新規の認証情報出力コマンドである場合は（ＹＥＳ）、認証情報演算部２２は、認証情報の演算を停止し、演算結果である認証情報をセキュアロジック３へ出力し（ステップＳ１７）、ステップＳ１１へ戻る。
【００７０】
一方、実行権を得ているアプリケーションプログラムが認証情報出力コマンドを発行していない場合（ＮＯ）、そのプロセスＩＤに相当する認証情報をクリアする（ステップＳ１７）。
【００７１】
以上の処理の実行によって、認証情報の生成やその出力を要求したアプリケーションプログラムの認証情報を確実に生成し、出力することができる。さらに、プロセスＩＤをもとに、複数のアプリケーションプログラムの認証情報生成を可能とする。また、これらの認証情報生成と出力処理は常に発生し得る例外処理の影響を受けることがない。
【００７２】
これは、プロセスＩＤをもとに、アプリケーションプログラムの区別が可能であって、アプリケーションプログラムごとに、認証情報の生成、中断（例外の検出やプロセスＩＤの変化によるディスパッチの検出）、出力およびクリアが可能であるからにほかならない。
【００７３】
次に、認証情報生成部２における認証情報の出力処理について、図５に示すフロー図を用いて説明する。
【００７４】
図５は、認証情報生成部２における認証情報の出力処理の流れを示すフロー図である。
【００７５】
認証情報生成部２は、最初に、セキュアロジック３からの認証情報の出力要求の有無を判定し（ステップＳ２１）、次に、保持するプロセスＩＤとセキュアロジック３から送られてきたプロセスＩＤとを比較する（ステップＳ２２）。
【００７６】
ここで、セキュアロジック３から送られてきたプロセスＩＤは、対象とするアプリケーションプログラムのプロセスＩＤである。
【００７７】
セキュアロジック３から送られてきたプロセスＩＤが、保持するプロセスＩＤと一致しない場合は（ＮＯ）、認証情報の出力処理を停止する。
【００７８】
一方、該当するプロセスＩＤを保持している場合は（ＹＥＳ）、認証情報生成部２は、そのプロセスＩＤに対応する認証情報の生成が済んでいることを確認し（ステップＳ２３）、その認証情報をセキュアロジック３へ出力する（ステップＳ２４）。
【００７９】
認証情報の出力後、認証情報生成部２は、出力した認証情報をクリアする（ステップＳ２５）する。
【００８０】
次に、セキュアロジック３におけるアプリケーションプログラムの認証処理について説明する。セキュアロジック３は、アプリケーションプログラムから要求されたサービスを実行する前に、そのサービスを要求したアプリケーションプログラムの認証を行う。
【００８１】
図６は、セキュアロジック３におけるアプリケーションプログラムの認証処理の流れを示すフロー図である。
【００８２】
セキュアロジック３は、最初に、アプリケーションプログラムからのサービス要求の有無を判定し（ステップＳ３１）、アプリケーションプログラムからのサービス要求を確認する。
【００８３】
次に、セキュアロジック３は、サービスを要求したアプリケーションプログラムのプロセスＩＤを用い、認証情報生成部２に対し、認証情報の出力を要求する（ステップＳ３２）。
【００８４】
セキュアロジック３は、認証情報生成部２からの認証情報の受領を待ち（ステップＳ３３）、認証情報生成部２から認証情報が入力されると、認証情報照合部３２が、認証情報テーブル３１との参照を開始する（ステップＳ３４）。
【００８５】
認証情報照合部３２は、認証情報テーブル３１に認証情報期待値があるかどうか判定し（ステップＳ３５）、認証情報期待値があった場合は（ＹＥＳ）、認証情報生成部２から取得した認証情報と比較し（ステップＳ３６）、両者が一致するまで認証情報テーブル３１の参照を繰り返す。この繰り返しは、上記の如く、図２のテーブル３１２に登録されている認証情報の候補数分、繰り返される。
【００８６】
認証情報テーブル３１に認証情報期待値が存在しない場合や、認証情報生成部２から取得した認証情報と一致する認証情報期待値が存在しない場合（ステップＳ３６のＮＯ)、セキュアロジック３は、その全ての処理を停止する。
【００８７】
ステップＳ３７において、認証情報生成部２から取得した認証情報と認証情報テーブル３１に記載された認証情報期待値が一致した場合（ＹＥＳ）に限り、セキュアロジック３は、アプリケーションプログラムから要求されたサービスを実行し（ステップＳ３７）、セキュアロジック３のステータスを更新する（ステップＳ３８）。
【００８８】
以上の処理の実行によって、セキュアロジック３は、サービスを要求してきたアプリケーションプログラムの認証を行い、その認証が成功しない限り、要求のあったサービスを実行しない。
【００８９】
このような本実施形態によれば、セキュアロジック３へサービス要求コマンドを発行したアプリケーションプログラムに対して認証情報を生成し、認証情報テーブル３１に記載された認証情報期待値と比較することにより、そのアプリケーションプログラムの認証を行うことができる。しかも、その認証は、アプリケーションプログラムが実際に動作することによって実行される。これにより、不正に改造されたアプリケーションプログラムの継続的な実行を阻止することができ、より高度なコンテンツ保護の機構を実現することができる。
【００９０】
以上説明した実施形態の半導体装置によれば、実行中のアプリケーションプログラムに不正な書き換えがあったときに、そのプログラム実行の継続を防止することができる。
【００９１】
また、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９２】
１  ＣＰＵ
２  認証情報生成部
３  セキュアロジック
１１  認証コマンド発行部
１２  プロセスＩＤレジスタ
１３  ステータスレジスタ
１４  分岐先ＰＣ値出力部
２１  比較・制御部
２２  認証情報演算部
３１  認証情報テーブル
３２  認証情報照合部
【図１】
2013196291.tif 000003
【図２】
2013196291.tif 000004
【図３】
2013196291.tif 000005
【図４】
2013196291.tif 000006
【図５】
2013196291.tif 000007
【図６】
2013196291.tif 000008