(57)【要約】【課題】より確実に、プログラムの動作に適切な制約を与える。【解決手段】種類情報検出部２００が、プログラムの種類を示す種類情報を検出する。動作決定部２２０が、動作保持部１４０において、プログラムの種類と対応づけられる動作を、プログラムに認められる動作として決定する。プログラム実行部２４０が、プログラムを実行する。動作制約部２５１が、実行中であるプログラムの動作を、決定された動作に制約する。【選択図】図１
2006085598.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの種類を示す種類情報を検出する種類情報検出部と、
前記種類情報によって示される前記種類に応じて、前記プログラムに認められる動作を決定する動作決定部と、
前記プログラムを実行するプログラム実行部と、
実行中である前記プログラムの動作を、前記プログラムに認められる前記動作に制約する動作制約部と
を備えることを特徴とするプログラム実行装置。
【請求項２】
前記プログラムの前記種類と前記動作とを対応づけて保持する動作保持部を備え、
前記動作決定部は、前記動作保持部において、前記プログラムの前記種類と対応づけられる前記動作を、前記プログラムに認められる前記動作として決定することを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
前記動作決定部は、前記種類情報によって示される前記種類に応じて、前記プログラムに認められる前記動作を決定できなかった場合に、所定の動作を前記プログラムに認められる前記動作として決定するか、或いは、前記プログラム実行部に、前記プログラムの実行を拒否させることを特徴とする請求項２に記載のプログラム実行装置。
【請求項４】
前記種類情報を保持する種類情報保持部を備え、
前記動作制約部は、前記動作決定部によって決定された前記プログラムに認められる前記動作に基づいて、前記種類情報保持部によって保持される前記種類情報の操作を制約することを特徴とする請求項１乃至３のいずれか１項に記載のプログラム実行装置。
【請求項５】
前記プログラム及び前記種類情報の検証に用いられる検証情報を保持する検証情報保持部と、
該検証情報保持部によって保持される前記検証情報を用いて前記プログラム及び前記種類情報を検証する検証部と
を備えることを特徴とする請求項１乃至４のいずれか１項に記載のプログラム実行装置。
【請求項６】
前記動作制約部は、前記動作決定部によって決定された、前記プログラムに認められる前記動作に基づいて、前記検証情報保持部によって保持される前記検証情報の操作を制約することを特徴とする請求項５に記載のプログラム実行装置。
【請求項７】
前記動作決定部は、前記検証部による検証結果が不成立である場合に、所定の動作を前記プログラムに認められる前記動作として決定するか、或いは、前記プログラム実行部に、前記プログラムの実行を拒否させることを特徴とする請求項５又は６に記載のプログラム実行装置。
【請求項８】
秘密情報を用いて電子署名又はＭＡＣを生成する生成部を備え、
前記検証部は、前記検証情報として前記電子署名又は前記ＭＡＣを用いて検証することを特徴とする請求項５乃至７のいずれか１項に記載のプログラム実行装置。
【請求項９】
前記秘密情報を保持する秘密情報保持部を備え、
前記動作制約部は、前記秘密情報保持部によって、前記秘密情報が保持されていない場合に限り、プログラムによる、前記秘密情報保持部に対する前記秘密情報の格納操作を受け入れることを特徴とする請求項８に記載のプログラム実行装置。
【請求項１０】
前記秘密情報を保持する秘密情報保持部を備え、
前記動作制約部は、前記動作決定部によって決定された、前記プログラムに認められる前記動作に基づいて、前記秘密情報保持部によって保持される前記秘密情報の操作を制約することを特徴とする請求項８に記載のプログラム実行装置。
【請求項１１】
複数の前記秘密情報保持部と、
前記プログラム毎に複数の前記検証情報保持部とを備え、
前記複数の秘密情報保持部の１つである第１の秘密情報保持部は、前記検証部によって用いられる前記電子署名又は前記ＭＡＣと関連する前記秘密情報を保持し、
前記複数の検証情報保持部の１つである第１の検証情報保持部は、前記検証部による検証に用いられる前記電子署名又は前記ＭＡＣを保持し、
前記秘密情報と前記電子署名又は前記ＭＡＣとを更新するプログラムは、新たな秘密情報を、前記第１の秘密情報保持部と異なる前記秘密情報保持部である第２の秘密情報保持部に格納し、前記第２の秘密情報保持部によって保持される前記秘密情報を用いて、前記電子署名又は前記ＭＡＣを生成し、前記第１の検証情報保持部と異なる前記検証情報保持部である第２の検証情報保持部に、生成した前記電子署名又は前記ＭＡＣを格納し、前記複数の秘密情報保持部のいずれが前記第１の秘密情報保持部であるかを示す秘密情報管理情報を書き換え、前記複数の検証情報保持部のいずれが前記第１の検証情報保持部であるかを示す検証情報管理情報を書き換える
ことを特徴とする請求項９又は１０に記載のプログラム実行装置。
【請求項１２】
外部装置から前記プログラムを取得するプログラム取得部と、
取得された前記プログラムの前記種類情報を、前記外部装置から取得する種類情報取得部と、
取得された前記プログラム及び前記種類情報の検証に用いられる前記検証情報を、前記外部装置から取得する検証情報取得部と、
前記検証部による検証が成立する場合に、取得された前記プログラムと前記種類情報とを格納するプログラム格納部と
を備えることを特徴とする請求項５乃至１１のいずれか１項に記載のプログラム実行装置。
【請求項１３】
前記検証部は、検証情報としてハッシュ値を用い、秘密情報を用いないことを特徴とする請求項５乃至７のいずれか１項に記載のプログラム実行装置。
【請求項１４】
プログラムの種類を示す種類情報を検出し、
前記種類情報によって示される前記種類に応じて、前記プログラムに認められる動作を決定し、
前記プログラムを実行し、
実行中である前記プログラムの動作を、決定された前記プログラムに認められる前記動作に制約することを特徴とするプログラム実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム実行装置及びプログラム実行方法に関する。
【背景技術】
【０００２】
従来、プログラムを実行することができるパソコンや携帯電話等の装置においては、一般的に、プログラムに認められる動作は当該プログラムの所有者に付与されている権限に基づいて定められている。例えば、重要なファイルの読込や更新、ネットワークへのアクセス等の動作は、管理者権限等の高度な利用権限を認められている者に所有されるプログラムにのみ認められる。
【０００３】
又、プログラムの所有者以外の者によって管理されるファイルへのアクセスを制約することも一般的に行われている（例えば、非特許文献１参照。）。
【０００４】
しかしながら、例えば、ネットワーク等からダウンロードしたプログラムを利用する場合は、当該プログラムのソースコードを入手できないことが多い。このため、プログラムの所有者であっても、当該プログラムの動作を正確に把握することは困難な場合がある。
【０００５】
従って、所有者に付与されている権限に基づいてプログラムの動作を制約するだけでは、プログラムの所有者に対してはゲーム等の正当な動作をするプログラムとして振舞いつつ、所有者のプライバシーに係る情報を、ネットワークを通じて漏洩するような不正な動作をするプログラムによる脅威を回避できない。
【０００６】
又、例えば、最高の利用権限である管理者権限を有する所有者に所有されるプログラムには、重要なパラメータの変更等、重要な動作が認められる。このため、管理者に所有されるプログラムの１つにでも欠陥があると、装置全体が危険な状態になるという問題が知られている（例えば、非特許文献２参照。）。
【０００７】
このように、プログラムの所有者に付与されている権限に基づいて、当該プログラムに認められる動作を定める方法では、プログラムの動作に適切な制約を与えることができない。
【０００８】
又、従来、プログラムの動作を適切に制約することを目的として、プログラムを実行する度に、プログラムに認められる動作を手動で定めることが行われている。
【０００９】
或いは、プログラムからの要求を監視し、それぞれの要求を受け入れるか否かを判断する技術も知られている（例えば、非特許文献３、特許文献１参照。）。これは、例えば、ネットワークを介してダウンロードされるＪａｖａ（登録商標）  Ａｐｐｌｅｔを動作させるために用いられている。
【非特許文献１】Donald Lewine, “POSIX Programmer’s Guide”, ISBNO-937175-73-0
【非特許文献２】中村雄一他著、“SELinux徹底ガイド”, ISBN4-8222-2111-3
【非特許文献３】G.マグロー+E.W.フェルテン著、“Java （登録商標）セキュリティ”、 ISBN4-8101-8979-1
【特許文献１】特開２００１−３３７８６４号報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、プログラムを実行する度に、プログラムに認められる動作を手動で定める従来の技術では、プログラムを実行する度の判断や、プログラムに認められる動作の決定が煩雑であるために、プログラムの所有者が判断を誤る場合や、判断を行わない場合があった。又、プログラムの所有者が判断を誤った場合であっても、プログラムの所有者が誤った判断をしたことに気づきにくい。
【００１１】
更に、プログラムからの要求を監視し、それぞれの要求を受け入れるか否かを判断する従来の技術では、要求がある度に要求を受け入れるか否かを判断するため、判断を誤る場合があった。又、例えば、Ｊａｖａ（登録商標）  Ａｐｐｌｅｔの実装上の問題により、仮想計算機を介してのプログラムからの要求を制約せず、全て受け入れてしまう場合があった。
【００１２】
そこで、本発明は、より確実に、プログラムの動作に適切な制約を与えることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るプログラム実行装置は、プログラムの種類を示す種類情報を検出する種類情報検出部と、種類情報によって示される種類に応じて、プログラムに認められる動作を決定する動作決定部と、プログラムを実行するプログラム実行部と、実行中であるプログラムの動作を、プログラムに認められる動作に制約する動作制約部とを備えることを特徴とする。
【００１４】
このようなプログラム実行装置によればプログラムに認められる動作はプログラムの種類に応じて決定される。そして、プログラムの動作が、動作制約部によって、決定された、プログラムに認められる動作に制約される。そのため、プログラムの動作に適切な制約を与えることができる。
【００１５】
又、プログラムに認められる動作は、プログラムが実行される前に決定される。そのため、プログラムからの要求がある度に、要求を受け入れるか否かを判断するより確実に、プログラムの動作に制約を与えることができる。
【００１６】
プログラム実行装置は、プログラムの種類と動作とを対応づけて保持する動作保持部を備え、動作決定部は、動作保持部において、プログラムの種類と対応づけられる動作を、プログラムに認められる動作として決定することが好ましい。
【００１７】
これによれば、プログラムの種類と、プログラムに認められる動作とが動作保持部において明確に対応づけられる。
【００１８】
動作決定部は、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合に、所定の動作をプログラムに認められる動作として決定するか、或いは、プログラム実行部にプログラムの実行を拒否させることが好ましい。
【００１９】
これによれば、動作決定部が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合には、当該プログラムの動作は所定の動作に制約されるか、若しくは、当該プログラムは実行されない。尚、動作決定部が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合とは、例えば、動作決定部が、プログラムの種類を判断できなかった場合、若しくは、プログラムの種類に対応づけられる動作が動作保持部によって保持されていない場合等である。又、プログラムの種類が判断できなかった場合とは、例えば、種類情報検出部が種類情報を検出できなかった場合や、動作決定部が、検出された種類情報を参照しても、プログラムの種類を判断できなかった場合等である。
【００２０】
プログラム実行装置は、種類情報を保持する種類情報保持部を備え、動作制約部は、動作決定部によって決定された、プログラムに認められる動作に基づいて、種類情報保持部によって保持される種類情報の操作を制約することが好ましい。
【００２１】
これによれば、種類情報保持部によって保持される種類情報の格納、更新、削除等の操作は特定のプログラムのみに認められる。そのため、プログラムに認められる動作を決定する根拠となる種類情報が不当に設定される危険性を抑制することができる。
【００２２】
プログラム実行装置は、プログラム及び種類情報の検証に用いられる検証情報を保持する検証情報保持部と、検証情報保持部によって保持される検証情報を用いてプログラム及び種類情報を検証する検証部とを備えることが好ましい。
【００２３】
これによれば、検証部によって、プログラム及び種類情報が検証される。
【００２４】
そのため、プログラム又は種類情報の少なくとも１つが改竄された場合に、改竄されたことを検出することができる。従って、検証部は、プログラムと種類情報との対応が正しいか否かを判断することができる。
【００２５】
動作制約部は、動作決定部によって決定された、プログラムに認められる動作に基づいて、検証情報保持部によって保持される検証情報の操作を制約することが好ましい。
【００２６】
これによれば、検証情報保持部によって保持される検証情報の格納、更新、削除等の操作は特定のプログラムのみに認められる。そのため、プログラム及び種類情報を検証するために用いられる検証情報が不当に設定され、又は変更される危険性を抑制することができる。
【００２７】
動作決定部は、検証部による検証結果が不成立である場合に、所定の動作をプログラムに認められる動作として決定するか、或いは、プログラム実行部に、プログラムの実行を拒否させることが好ましい。
【００２８】
又、プログラム又は種類情報の少なくとも１つの検証が成立しなかった場合には、当該プログラムの動作は所定の動作に制約されるか、若しくは、当該プログラムは実行されない。そのため、信頼性の低いプログラムの動作を大幅に制限することができる。
【００２９】
プログラム実行装置は、秘密情報を用いて電子署名又はＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を生成する生成部を備え、検証部は、検証情報として電子署名又はＭＡＣを用いて検証することが好ましい。
【００３０】
プログラム実行装置は、秘密情報を保持する秘密情報保持部を備え、動作制約部は、秘密情報保持部によって、秘密情報が保持されていない場合に限り、プログラムによる、秘密情報保持部に対する秘密情報の格納操作を受け入れることが好ましい。
【００３１】
これによれば、秘密情報保持部に秘密情報が保持されていない場合に限り、動作制約部によって、プログラムによる、秘密情報保持部に対する秘密情報の格納操作が受け入れられる。このため、秘密情報の初期化は１度だけ認められる。尚、秘密情報保持部に対する格納操作が受け入れられるとは、秘密情報保持部への秘密情報の格納がプログラムに認められることを意味する。
【００３２】
プログラム実行装置は、秘密情報を保持する秘密情報保持部を備え、動作制約部は、動作決定部によって決定された、プログラムに認められる動作に基づいて、秘密情報保持部によって保持される秘密情報の操作を制約することが好ましい。
【００３３】
これによれば、秘密情報保持部によって保持される秘密情報の格納、更新、削除等の操作は特定のプログラムのみに認められる。そのため、プログラム又は種類情報の少なくとも１つを検証するために用いられる秘密情報が不当に設定され、又は変更される危険性を抑制することができる。
【００３４】
プログラム実行装置は、複数の秘密情報保持部と、プログラム毎に複数の検証情報保持部とを備え、複数の秘密情報保持部の１つである第１の秘密情報保持部は、検証部によって用いられる電子署名又はＭＡＣと関連する秘密情報を保持し、複数の検証情報保持部の１つである第１の検証情報保持部は、検証部による検証に用いられる電子署名又はＭＡＣを保持し、秘密情報と電子署名又はＭＡＣとを更新するプログラムは、新たな秘密情報を、第１の秘密情報保持部と異なる秘密情報保持部である第２の秘密情報保持部に格納し、第２の秘密情報保持部によって保持される秘密情報を用いて、電子署名又はＭＡＣを生成し、第１の検証情報保持部と異なる検証情報保持部である第２の検証情報保持部に、生成した電子署名又はＭＡＣを格納し、複数の秘密情報保持部のいずれが第１の秘密情報保持部であるかを示す秘密情報管理情報を書き換え、複数の検証情報保持部のいずれが第１の検証情報保持部であるかを示す検証情報管理情報を書き換えることが好ましい。
【００３５】
これによれば、秘密情報と電子署名又はＭＡＣとが更新される際に、検証部が検証している場合であっても、検証に用いられている電子署名又はＭＡＣに関連する秘密情報と、電子署名又はＭＡＣとは変更されない。このため、検証部による検証の処理は影響を受けない。又、秘密情報と、電子署名又はＭＡＣとの世代の管理が可能になる。従って、秘密情報と電子署名又はＭＡＣとの更新の過程でシステムトラブルがあった場合でも、検証部は、秘密情報管理情報に基づいて取得した秘密情報又は当該秘密情報に関連する秘密情報関連情報と、検証情報管理情報に基づいて取得した電子署名又はＭＡＣとを用いて検証することが可能である。尚、電子署名又はＭＡＣに関連する秘密情報とは、電子署名又はＭＡＣの生成に用いられる秘密情報である。
【００３６】
プログラム実行装置は、外部装置から、プログラムを取得するプログラム取得部と、取得されたプログラムの種類情報を、外部装置から取得する種類情報取得部と、取得されたプログラム及び種類情報の検証に用いられる検証情報を、外部装置から取得する検証情報取得部と、検証部による検証が成立する場合に、取得されたプログラムと、種類情報とを格納するプログラム格納部とを備えることが好ましい。
【００３７】
これによれば、外部装置から取得されるプログラムは、検証部による、プログラム及び種類情報の検証が成立する場合に、プログラム格納部によって格納される。そのため、プログラムと種類情報との少なくとも１つが改竄されたおそれのあるプログラムをプログラム実行装置内に保持する危険性を抑制することができる。
【００３８】
或いは、前記検証部は、検証情報としてハッシュ値を用い、秘密情報を用いなくてもよい。
【００３９】
本発明に係るプログラム実行方法は、プログラムの種類を示す種類情報を検出し、種類情報によって示される種類に応じて、プログラムに認められる動作を決定し、プログラムを実行し、実行中であるプログラムの動作を、決定された、プログラムに認められる動作に制約することを特徴とする。
【発明の効果】
【００４０】
以上説明したように、本発明によれば、より確実に、プログラムの動作に適切な制約を与えることが可能となる。
【発明を実施するための最良の形態】
【００４１】
（プログラム実行装置）
図１に、本発明の実施の形態に係るプログラム実行装置１００を示す。プログラム実行装置１００は、プログラムを保持し、実行することができる装置であり、例えば、パソコンや、携帯情報端末や、携帯電話等である。
【００４２】
図１に示すように、プログラム実行装置１００は、プログラム保持部１１０と、プログラム情報リスト１２０と、秘密情報データベース１３０と、動作保持部１４０と、通信部１５０と、入力受付部１６０と、秘密情報格納部１７０と、種類情報付与部１８０と、検証情報生成部１９０と、種類情報検出部２００と、検証部２１０と、動作決定部２２０と、実行中動作保持部２３０と、プログラム実行部２４０と、プログラム実行管理部２５０と、プログラム取得部２６０とを備える。
【００４３】
プログラム保持部１１０は、プログラムを保持する。
【００４４】
プログラム情報リスト１２０は、プログラム保持部１１０によって保持されるプログラムのそれぞれに係るプログラム情報を保持する。プログラム情報は、プログラム名保持部１２１と、種類情報保持部１２２ａ，１２２ｂと、種類情報管理情報保持部１２３と、検証情報保持部１２４ａ，１２４ｂと、検証情報管理情報保持部１２５とを含む。
【００４５】
プログラム名保持部１２１は、プログラム保持部１１０によって保持されているプログラムのファイル名を保持する。
【００４６】
種類情報保持部１２２ａ，１２２ｂは、プログラムの種類を示す種類情報を保持する。このように、プログラム実行装置１００は、プログラム保持部１１０によって保持されるプログラム毎に複数の種類情報保持部を備える。ここで、プログラムの種類とは、複数のプログラムを、共通の性質によって分類したまとまりをいう。本実施の形態においては、プログラムは、その機能によって、ゲーム、メール送受信プログラム、住所録管理プログラム等に分類される。
【００４７】
種類情報管理情報保持部１２３は、複数の種類情報保持部１２２ａ，１２２ｂのいずれが、検証に用いられる種類情報を保持する種類情報保持部であるかを示す種類情報管理情報を保持する。
【００４８】
検証情報保持部１２４ａ，１２４ｂは、検証情報を保持する。本実施の形態においては、検証情報として電子署名又はＭＡＣが用いられる。検証情報保持部１２４ａ，１２４ｂによって保持される、電子署名又はＭＡＣは、プログラム及び種類情報の検証に用いられる情報である。即ち、電子署名又はＭＡＣは、プログラム及び種類情報の検証に用いられる検証情報として機能する。
【００４９】
このように、プログラム実行装置１００は、プログラム保持部１１０によって保持されるプログラム毎に、複数の検証情報保持部を備える。
【００５０】
検証情報管理情報保持部１２５は、複数の検証情報保持部１２４ａ，１２４ｂのいずれが、検証に用いられる電子署名又はＭＡＣを保持する検証情報保持部であるかを示す検証情報管理情報を保持する。尚、検証に用いられる電子署名又はＭＡＣを保持する検証情報保持部は、第１の検証情報保持部である。
【００５１】
秘密情報データベース１３０は、複数の秘密情報保持部１３１ａ，１３１ｂと、秘密情報管理情報保持部１３２とを含む。
【００５２】
秘密情報保持部１３１ａ，１３１ｂは秘密情報を保持する。このように、プログラム実行装置１００は、複数の秘密情報保持部を備える。秘密情報は、電子署名又はＭＡＣの生成に用いられる情報であり、例えば、電子署名又はＭＡＣを生成するために用いられる秘密鍵である。尚、検証に用いられる検証情報がＭＡＣである場合には、秘密情報は、プログラム及び種類情報の検証を行うためにも用いられる。
【００５３】
秘密情報管理情報保持部１３２は、複数の秘密情報保持部１３１ａ，１３１ｂの内、いずれが、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持する秘密情報保持部であるかを示す秘密情報管理情報を保持する。尚、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持する秘密情報保持部は、第１の秘密情報保持部である。  
本実施の形態における動作保持部１４０は、図２に示すように、プログラムの種類と、プログラムに認められる動作とを対応づけて保持する。ここで、動作保持部１４０に保持される動作は、重要な情報や、資源のへのアクセスに関するルールを定めるものである。例えば、動作保持部１４０は、所定のファイルへの書込、読込、更新等の動作方法の種類が認められるか否かに関する情報、即ち、ポリシーを保持する。尚、動作保持部１４０は、プログラムに認められる動作と認められない動作とを保持してもよい。
【００５４】
本実施の形態においては、動作保持部１４０は、プログラムの種類として、「ゲーム」、「メール送受信」、「住所録管理」、「秘密情報更新」、「初期化」「種類情報操作」、「システム情報設定」を保持し、それぞれの種類のプログラムに認められる動作を保持する。尚、種類「その他」に対応づけられている動作は、動作決定部２２０が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合に、当該プログラムに認められる動作として決定される所定の動作である。動作決定部２２０が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合とは、例えば、動作決定部２２０が、プログラムの種類を判断できなかった場合や、動作保持部１４０において、プログラムの種類と対応づけられる動作が保持されていない場合である。又、動作決定部２２０が、プログラムの種類を判断できなかった場合とは、例えば、種類情報検出部２００が種類情報を検出できなかった場合や、動作決定部２２０が、検出された種類情報を参照しても、プログラムの種類を判断できなかった場合等である。
【００５５】
尚、所定の動作は、動作決定部２２０が、種類情報によって示される種類に応じて決定される、プログラムに認められる動作よりも制約されることが好ましい。種類情報によって示される種類に応じて決定される、プログラムに認められる動作よりも制約される所定の動作とは、当該プログラムが、悪意を持った動作を試みるプログラムであった場合でも、被害を抑制しうる動作であって、例えば、図２において、種類「その他」に対応づけられている動作「プログラム保存フォルダ内のファイルの読込」である。
【００５６】
又、動作保持部１４０は、プログラムの種類を示す種類情報も、種類に対応づけて保持する。
【００５７】
通信部１５０は、移動通信網や無線ＬＡＮのような無線ネットワークや、インターネット等のネットワークを介して外部装置とデータの送受信を行う。
【００５８】
入力受付部１６０は、プログラム実行装置１００に備えられるボタンやキーボード等を用いた入力操作によるユーザからの指示を受け付ける。
【００５９】
秘密情報格納部１７０は、秘密情報保持部１３１ａ，１３１ｂのいずれかに秘密情報を格納する。具体的には、秘密情報格納部１７０は、秘密情報保持部１３１ａ，１３１ｂの操作を認められたプログラムから、秘密情報の初期化又は秘密情報の更新の指示を取得した場合に、秘密情報を生成する。
【００６０】
秘密情報格納部１７０は、初期化の指示を取得した場合には、種類情報を付与すべき旨の通知と、生成した秘密情報とを後述する種類情報付与部１８０に入力する。秘密情報格納部１７０は、種類情報付与部１８０から、全てのプログラムの処理が終了した旨の通知を取得した際に、生成した秘密情報を秘密情報保持部１３１ａ、或いは、秘密情報保持部１３１ｂに格納する。
【００６１】
一方、秘密情報格納部１７０は、秘密情報の更新の指示を取得した場合には、生成した秘密情報を秘密情報保持部１３１ａ、或いは、秘密情報保持部１３１ｂに格納する。その際、秘密情報格納部１７０は、新たな秘密情報を、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持する第１の秘密情報保持部と異なる秘密情報保持部である第２の秘密情報保持部に格納する。秘密情報格納部１７０は、生成した秘密情報を格納した秘密情報保持部がいずれであるかを示す情報と、電子署名又はＭＡＣを生成すべき旨の通知とを、種類情報付与部１８０を介して、検証情報生成部１９０に入力する。
【００６２】
秘密情報格納部１７０は、生成した秘密情報を格納した秘密情報保持部が、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持する第１の秘密情報保持部であることを示すように、秘密情報管理情報保持部１３２によって保持される秘密情報管理情報を書き換える。
【００６３】
種類情報付与部１８０は、秘密情報格納部１７０から種類情報を付与すべき旨の通知を取得した場合、及び、後述する検証情報生成部１９０から、電子署名又はＭＡＣの生成を終了した旨の通知を取得した場合に、プログラムに種類情報を付与する。具体的には、種類情報付与部１８０は、プログラム保持部１１０と、プログラム情報リスト１２０とを参照して、種類情報が格納されていないプログラムがあれば、種類情報を付与すべきプログラムがあると判断する。この場合、種類情報付与部１８０は、秘密情報格納部１７０を介して入力受付部１６０からユーザに指示された種類情報を取得し、種類情報保持部１２２ａ或いは種類情報保持部１２２ｂに格納する。その際、種類情報付与部１８０は、検証に用いられる種類情報を保持する種類情報保持部と異なる種類情報保持部に種類情報を格納する。
【００６４】
尚、種類情報付与部１８０は、プログラム保持部１１０を参照して、プログラム情報リスト１２０にプログラム情報が保持されていないプログラムがあれば、当該プログラムのプログラム情報をプログラム情報リスト１２０に追加する。
【００６５】
一方、種類情報付与部１８０は、プログラム保持部１１０と、プログラム情報リスト１２０とを参照して、種類情報が格納されていないプログラムがないと判断した場合には、秘密情報格納部１７０に、全てのプログラムの処理が終了した旨の通知を入力する。
【００６６】
種類情報付与部１８０は、種類情報管理情報保持部１２３によって保持される種類情報管理情報が、種類情報を格納した種類情報保持部が検証に用いられる種類情報を保持することを示すように、種類情報管理情報を書き換える。種類情報付与部１８０は、格納した種類情報と、秘密情報格納部１７０から取得した秘密情報とを検証情報生成部１９０に入力する。
【００６７】
検証情報生成部１９０は、秘密情報を用いて電子署名又はＭＡＣを生成する生成部である。具体的には、検証情報生成部１９０は、電子署名又はＭＡＣを格納するために十分な大きさの領域を確保できた場合に、プログラム保持部１１０から取得したプログラムと、種類情報付与部１８０から取得した種類情報及び秘密情報とを用いて電子署名又はＭＡＣを生成する。検証情報生成部１９０は、プログラム情報リスト１２０内に、電子署名又はＭＡＣを格納するために必要な大きさの領域を確保する。検証情報生成部１９０は、領域が確保できた場合には、所定の方法で電子署名又はＭＡＣを生成する（例えば、Bruce Schneier, “Applied Cryptography second edition”,ISBN0-471-11709-9参照。）。
【００６８】
検証情報生成部１９０は、生成した電子署名又はＭＡＣを、検証情報保持部１２４ａ，１２４ｂのいずれかに格納する。その際、検証情報生成部１９０は、新たな電子署名又はＭＡＣを、検証に用いられる電子署名又はＭＡＣを保持する第１の検証情報保持部と異なる検証情報保持部である第２の秘密情報保持部に格納する。検証情報生成部１９０は、検証情報管理情報保持部１２５によって保持される検証情報管理情報が、電子署名又はＭＡＣを格納した検証情報保持部が検証に用いられる電子署名又はＭＡＣを保持することを示すように、検証情報管理情報を書き換える。検証情報生成部１９０は、検証情報の生成が終了した旨を種類情報付与部１８０に通知する。
【００６９】
種類情報検出部２００は、種類情報を検出する。具体的には、種類情報検出部２００は、入力受付部１６０から実行しようとするプログラムのプログラム名を取得する。種類情報検出部２００は、種類情報管理情報保持部１２３によって保持される種類情報管理情報に基づいて、種類情報保持部１２２ａ，１２２ｂのいずれかから、検証に用いられる種類情報を取得する。種類情報検出部２００は、取得した種類情報を、検出結果として検証部２１０に入力する。
【００７０】
一方、種類情報検出部２００は、プログラム情報リスト１２０から、実行しようとするプログラムの種類情報を取得できなかった場合には、検出結果として、「失敗」を検証部２１０に入力する。
【００７１】
検証部２１０は、プログラム及び種類情報を検証する。ここで、プログラム及び種類情報の検証結果は、情報を作成した者以外の者によって改竄されていない場合には成立となり、改竄されている場合には不成立となる。本実施の形態においては、検証部２１０は、検証情報として電子署名又はＭＡＣを用い、更に秘密情報関連情報又は秘密情報とを用いてプログラム及び種類情報を検証する。
【００７２】
具体的には、検証にＭＡＣが用いられる場合は、検証部２１０は、まず、実行しようとするプログラムと、当該プログラムに係る種類情報と、ＭＡＣと、秘密情報とを取得する。検証部２１０は、取得した秘密情報を用いて、取得したプログラム及び種類情報から電子署名又はＭＡＣを生成する。検証部２１０は、取得したＭＡＣと、生成したＭＡＣとを比較し、一致すれば検証結果を「成立」とし、一致しなければ検証結果を「不成立」とする。
【００７３】
一方、検証に電子署名が用いられる場合は、検証部２１０は、実行しようとするプログラムと、当該プログラムに係る種類情報と、電子署名と、秘密情報関連情報とを取得する。ここで、秘密情報関連情報とは、秘密情報によって生成された検証情報を解読するために用いられる情報、即ち電子署名を解読する公開鍵である。検証部２１０は、取得した秘密情報関連情報を用いて、取得した電子署名を解読してプログラム及び種類情報の元データを得る。検証部２１０は、解読して得た元データと、取得したプログラム及び種類情報とを比較し、一致すれば検証結果を「成立」とし、一致しなければ検証結果を「不成立」とする。
【００７４】
検証部２１０は、以下に示す方法で、プログラムと、種類情報と、電子署名又はＭＡＣと、秘密情報関連情報又は秘密情報とを取得する。検証部２１０は、種類情報検出部２００から、検出結果と、実行しようとするプログラムのプログラム名を取得する。尚、検出結果は、種類情報か、若しくは、「失敗」である。
【００７５】
検証部２１０は、プログラム保持部１１０から、実行しようとするプログラムを取得する。
【００７６】
検証部２１０は、秘密情報管理情報保持部１３２によって保持されている秘密情報管理情報に基づいて、秘密情報保持部１３１ａ，１３１ｂのいずれかから、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を取得する。又、検証に電子署名が用いられる場合は、更に、検証部２１０は、例えば、取得した秘密情報を、通信部１５０を介して外部装置に送信し、その応答として、取得した秘密情報に関連する秘密情報関連情報を取得する。
【００７７】
又、検証部２１０は、検証情報管理情報保持部１２５によって保持される検証情報管理情報に基づいて、第１の秘密情報保持部である検証情報保持部１２４ａ，１２４ｂのいずれかから、検証に用いられる電子署名又はＭＡＣを取得する。
【００７８】
尚、検証情報保持部１２４ａ，１２４ｂによって保持される電子署名又はＭＡＣが、検証情報生成部１９０によって生成されたものである場合には、検証部２１０は、検証情報生成部１９０によって生成された電子署名又はＭＡＣを取得する。
【００７９】
或いは、検証部２１０は、後述するプログラム取得部２６０から、種類情報と、電子署名又はＭＡＣとを取得し、秘密情報データベース１３０から秘密情報を取得する。
【００８０】
尚、検証部２１０は、種類情報検出部２００による検出結果として、「失敗」を取得した場合、及び、プログラム情報リスト１２０から、目的とする電子署名又はＭＡＣを取得できなかった場合には、検証結果を「不成立」とする。
【００８１】
動作決定部２２０は、種類情報によって示される種類に応じて、プログラムに認められる動作を決定する。具体的には、動作決定部２２０は、検証部２１０から、種類情報の検出結果と、検出結果と、プログラム名とを取得する。動作決定部２２０は、動作保持部１４０において、プログラムの種類と対応づけられる動作を、プログラムに認められる動作として決定する。
【００８２】
例えば、動作決定部２２０は、種類情報の検出結果として「ｇａｍｅ」、検証結果として「成立」、プログラム名として「ｇａｍｅ１」を取得する。動作決定部２２０は、図２に示される動作保持部１４０を参照して、「ｇａｍｅ」によって示されるプログラムの種類は「ゲーム」であると判断する。動作決定部２２０は、プログラムの種類「ゲーム」に対応づけられている、「プログラム保存フォルダ内のファイルの読込」、「プログラム保存フォルダ内のファイルの削除」、「プログラム保存フォルダ内のファイルの更新」、「ダウンロード元サイトへのアクセス」を含む動作を、プログラム名「ｇａｍｅ１」のプログラムに認められる動作として決定する。
【００８３】
或いは、動作決定部２２０は、種類情報の検出結果として「ｗｏｒｄ−ｐｒｏｃｅｓｓｏｒ」、検証結果として「成立」、プログラム名として「ｗｏｒｄ−ｐｒｏｃｅｓｓｏｒ１」を取得する。動作決定部２２０は、図２に示される動作保持部１４０において、種類情報「ｗｏｒｄ−ｐｒｏｃｅｓｓｏｒ」によって示されるプログラムの種類に対応づけられる動作が保持されていないと判断する。このため、種類「その他」に対応づけられている動作を、プログラム名「ｗｏｒｄ−ｐｒｏｃｅｓｓｏｒ１」のプログラムに認められるの動作として決定する。
【００８４】
又、動作決定部２２０は、種類情報検出部２００が種類情報の検出に失敗した場合、或いは、検証部２１０による検証結果が「不成立」である場合には、後述するプログラム実行部２４０に、プログラムの実行を拒否させる。
【００８５】
具体的には、動作決定部２２０は、種類情報の検出結果として「失敗」を取得するか、若しくは、検証結果として「不成立」を取得した場合には、空の動作を、実行しようとするプログラムに認められる動作として決定する。即ち、動作決定部２２０は、当該プログラムには、いかなる動作も認められないことを決定する。後述するように、プログラム実行部２４０は、動作決定部２２０から空の動作を取得した場合には、プログラムの実行を拒否する。
【００８６】
動作決定部２２０は、決定した動作を実行中動作保持部２３０に格納する。
【００８７】
実行中動作保持部２３０は、動作決定部２２０によって格納された、実行中のプログラムに認められる動作を保持する。
【００８８】
尚、プログラム保持部１１０と、プログラム情報リスト１２０と、秘密情報データベース１３０と、動作保持部１４０と、実行中動作保持部２３０とには、例えば、ＲＡＭ、ＲＯＭ、ハードディスク、フレキシブルディスク、コンパクトディスク等を用いることができる。
【００８９】
プログラム実行部２４０は、プログラムを実行する。具体的には、プログラム実行部２４０は、動作決定部２２０から実行しようとするプログラムのプログラム名と、決定された、当該プログラムに認められる動作とを取得する。プログラム実行部２４０は、取得した動作が空の動作でなければ、プログラム保持部１１０を参照して、取得したプログラム名のプログラムを実行する。
【００９０】
一方、プログラム実行部２４０は、動作決定部２２０から空の動作を取得した場合に、プログラムの実行を拒否する。
【００９１】
プログラム実行管理部２５０は、実行中のプログラムの動作を管理する。具体的には、プログラム実行管理部２５０は、実行中のプログラムからの、資源の利用の要求を検出し、当該要求を認めるか、或いは、制約するかを決定する。ここで、資源の利用とは、例えば、プログラム実行装置１００内に格納されるファイルの読込又はファイルの更新等の、ファイルの操作や、ネットワークへのアクセスである。プログラム実行管理部２５０は、動作制約部２５１を備える。
【００９２】
動作制約部２５１は、実行中であるプログラムの動作を、動作決定部２２０によって決定された、プログラムに認められる動作に制約する。即ち、動作制約部２５１は、決定された、プログラムに認められる動作から逸脱しないように、実行中のプログラムを動作させる。具体的には、動作制約部２５１は、実行中動作保持部２３０を参照して、プログラム実行管理部２５０によって検出されたプログラムからの資源の利用の要求が、プログラムに認められる動作に含まれる動作を要求するか否かを判断する。動作制約部２５１は、実行中であるプログラムからの要求が、実行中動作保持部２３０に保持されている、当該プログラムに認められる動作に含まれていなければ、プログラムからの要求を拒否する。
【００９３】
例えば、種類が「ゲーム」であるプログラムの実行中には、実行中動作保持部２３０には、プログラム保存フォルダ内のファイルの操作及びダウンロード元サイトへのアクセスのみを含む動作が保持されている。
【００９４】
従って、種類が「ゲーム」のプログラムの実行中は、動作制約部２５１は、実行中動作保持部２３０を参照し、種類情報保持部１２２ａ，１２２ｂによって保持される種類情報の操作の要求や、秘密情報保持部１３１ａ，１３１ｂによって保持される秘密情報の操作の要求を拒否する。
【００９５】
尚、図２に示される動作保持部１４０では、種類情報保持部１２２ａ，１２２ｂに保持される種類情報の操作は、種類が「種類情報操作」又は「初期化」であるプログラムのみに認められ、秘密情報保持部１３１ａ，１３１ｂによって保持される秘密情報の操作は、種類が「秘密情報更新」又は「初期化」であるプログラムのみに認められる。又、種類が「初期化」のプログラムには、秘密情報保持部１３１ａ，１３１ｂによって秘密情報が保持されていない場合の秘密情報保持部１３１ａ，１３１ｂへの秘密情報の格納と、種類情報保持部１２２ａ，１２２ｂへの種類情報の格納と、検証情報保持部１２４ａ，１２４ｂへの電子署名又はＭＡＣの格納とが認められる。
【００９６】
プログラム取得部２６０は、外部装置からプログラムを取得する。又、プログラム取得部２６０は、当該プログラムの種類情報を、外部装置から取得する種類情報取得部としても機能する。更に、プログラム取得部２６０は、当該プログラムに係る電子署名又はＭＡＣを、外部装置から取得する検証情報取得部としても機能する。ここで、外部装置とは、プログラム実行装置１００の他の装置であり、１つの装置であっても、複数の装置であってもよい。
【００９７】
具体的には、プログラム取得部２６０は、通信部１５０とネットワークとを介して、外部装置からプログラムと、種類情報と、電子署名又はＭＡＣとを取得する。プログラムと、種類情報と、電子署名又はＭＡＣとは、全て同じ装置から取得されてもよいし、異なる装置から取得されてもよい。
【００９８】
又、プログラム取得部２６０は、検証部２１０による検証結果が「成立」である場合に、取得したプログラムと種類情報とを格納するプログラム格納部としても機能する。
【００９９】
具体的には、プログラム取得部２６０は、取得した種類情報と、電子署名又はＭＡＣとを検証部２１０に入力する。プログラム取得部２６０は、検証部２１０から、検証結果を取得する。プログラム取得部２６０は、検証結果が「成立」であった場合に、取得したプログラムをプログラム保持部１１０に格納し、取得した電子署名又はＭＡＣを検証情報保持部１２４ａ又は検証情報保持部１２４ｂに格納する。
【０１００】
一方、プログラム取得部２６０は、プログラムを取得した際に、種類情報と電子署名又はＭＡＣとの少なくとも１つが取得できなかった場合には、取得したプログラムと電子署名又はＭＡＣとを格納しない。又、プログラム取得部２６０は、検証結果が「不成立」であった場合にも、取得したプログラムと、電子署名又はＭＡＣとを格納しない。
【０１０１】
（プログラム実行方法）
次に、プログラム実行装置１００を用いたプログラム実行方法の手順を図３〜図６を用いて説明する。まず、図３を用いて、秘密情報と、種類情報と、電子署名又はＭＡＣとが初期化される手順について説明する。プログラム実行管理部２５０が、プログラムから初期化要求を検出することによって、秘密情報等の初期化処理が開始される（Ｓ１０１）。
【０１０２】
図２に示すように、実行中のプログラムの種類が「初期化」であれば、秘密情報が秘密情報保持部１３１ａ，１３１ｂのいずれにも保持されていない場合の秘密情報格納、即ち初期化は、プログラムに認められる動作に含まれる。このため、動作制約部２５１は、秘密情報保持部１３１ａ，１３１ｂを参照し、秘密情報が保持されているか否かを判断する（Ｓ１０２）。  
ステップ（Ｓ１０２）において、秘密情報保持部１３１ａ，１３１ｂのいずれにも秘密情報が保持されていないと判断された場合には、初期化要求が、決定された、プログラムに認められる動作に含まれる動作を要求すると判断される。従って、この場合は、プログラムは秘密情報格納部１７０に初期化の指示を送ることによって秘密情報を生成する（Ｓ１０３）。
【０１０３】
種類情報付与部１８０は、処理すべきプログラム、即ち、種類情報を付与すべきプログラムがプログラム保持部１１０に保持されているか否かを判断する（Ｓ１０４）。種類情報付与部１８０は、処理すべきプログラムがあると判断した場合、種類情報を取得し、種類情報保持部１２２ａ或いは種類情報保持部１２２ｂに格納することによって、プログラムに種類情報を付与する（Ｓ１０５）。
【０１０４】
検証情報生成部１９０は、電子署名又はＭＡＣを格納するために十分な大きさの領域を確保できたか否かを判断する（Ｓ１０６）。検証情報生成部１９０は、電子署名又はＭＡＣを格納する領域を確保できた場合に、プログラム保持部１１０から取得したプログラムと、種類情報付与部１８０から取得した種類情報及び秘密情報とを用いて電子署名又はＭＡＣを生成する（Ｓ１０７）。検証情報生成部１９０は、生成した電子署名又はＭＡＣを、検証情報保持部１２４ａ，１２４ｂのいずれかに格納する（Ｓ１０８）。
【０１０５】
その後、ステップ（Ｓ１０４）に戻り、種類情報付与部１８０が、他に処理すべきプログラムがあるか否か判断する。
【０１０６】
ステップ（Ｓ１０４）において、種類情報付与部１８０によって他に処理すべきプログラムがないと判断された場合には、秘密情報格納部１７０は、秘密情報保持部１３１ａ、或いは、秘密情報保持部１３１ｂに、秘密情報を格納する（Ｓ１０９）。秘密情報等の初期化処理が正常終了する（Ｓ１１０）。
【０１０７】
一方、ステップ（Ｓ１０２）において、秘密情報保持部１３１ａ，１３１ｂのいずれかに秘密情報が保持されていると判断された場合、及び、ステップ（Ｓ１０６）において、電子署名又はＭＡＣを格納するために十分な大きさの領域が確保できなかった場合には、秘密情報等の初期化処理は異常終了する（Ｓ１１１）。
【０１０８】
次に、図４を用いて、ユーザからプログラムの実行要求があった場合に、プログラムを実行し、その動作を制約する手順について説明する。種類情報検出部２００が、入力受付部１６０から実行しようとするプログラムのプログラム名を取得することによって、処理が開始される（Ｓ２０１）。
【０１０９】
種類情報検出部２００は、プログラム情報リスト１２０を参照して、種類情報を検出する（Ｓ２０２）。ステップ（Ｓ２０２）において、種類情報が検出できた場合は、検証部２１０は、プログラム情報リスト１２０から、電子署名又はＭＡＣを取得する（Ｓ２０３）。ステップ（Ｓ２０３）において、検証部２１０が、電子署名又はＭＡＣを取得できた場合には、検証部２１０は、プログラムと種類情報と電子署名又はＭＡＣと秘密情報又は秘密情報関連情報とを用いてプログラム及び種類情報を検証する（Ｓ２０４）。
【０１１０】
ステップ（Ｓ２０４）において、プログラム及び種類情報の検証が成立した場合には、動作決定部２２０は、実行しようとするプログラムの種類に対応づけられる動作が動作保持部１４０に保持されているか否かを判断する（Ｓ２０５）。ステップ（Ｓ２０５）において、実行しようとするプログラムの種類に対応づけられる動作が動作保持部１４０に保持されていると判断された場合には、動作決定部２２０は、動作保持部１４０において、実行しようとするプログラムの種類に対応づけられる動作を、プログラムに認められる動作として決定する（Ｓ２０６）。
【０１１１】
プログラム実行部２４０は、プログラム保持部１１０を参照し、実行しようとするプログラム名に応じたプログラムを実行する（Ｓ２０７）。動作制約部２５１が、実行中のプログラムの動作を制約する（Ｓ２０８）。プログラムを実行し、その動作を制約する処理は正常終了する（Ｓ２０９）。
【０１１２】
一方、ステップ（Ｓ２０２）において、種類情報が検出されなかった場合と、ステップ（Ｓ２０３）において、電子署名又はＭＡＣが取得されなかった場合と、ステップ（Ｓ２０４）において、プログラム及び種類情報の検証が不成立であると判断された場合と、ステップ（Ｓ２０５）において、プログラムの種類に対応づけられる動作が動作保持部１４０に保持されていないと判断された場合とに、動作決定部２２０は、それぞれの場合について認められる動作があるか否かを判断する（Ｓ２１０）。ステップ（Ｓ２１０）において、認められる動作があると判断された場合には、動作決定部２２０は、当該動作を、実行しようとするプログラムに認められる動作として決定する（Ｓ２１１）。
【０１１３】
一方、ステップ（Ｓ２１０）において、認められる動作がないと判断された場合には、動作決定部２２０は、空の動作を、実行しようとするプログラムの動作として決定する（Ｓ２１２）。プログラム実行部２４０は、プログラムの実行を拒否する（Ｓ２１３）。プログラムを実行してその動作を制約する処理は異常終了する（Ｓ２１４）。
【０１１４】
次に、図５及び図６を用いて、図４のステップ（Ｓ２０８）におけるプログラムの動作の制約の例を説明する。図５を用いて、プログラムからの種類情報操作要求を処理する手順について説明する。プログラム実行管理部２５０が、種類情報操作要求を検出することによって、プログラムからの種類情報操作要求の処理が開始される（Ｓ３０１）。
【０１１５】
動作制約部２５１は、実行中動作保持部２３０を参照して、種類情報操作要求が、プログラムに認められる動作に含まれる動作を要求するか否かを判断する（Ｓ３０２）。図２に示すように、実行中のプログラムの種類が「種類情報操作」であれば、種類情報の操作は、プログラムに認められる動作に含まれるため、種類情報操作要求が、決定された、プログラムに認められる動作に含まれる動作を要求すると判断される。従って、この場合は、プログラムは種類情報を付与又は更新する（Ｓ３０３）。このとき、プログラムは、図１に示される種類情報付与部１８０に、種類情報の付与又は更新等の種類情報の操作を指示してもよい。
【０１１６】
実行中のプログラムは、電子署名又はＭＡＣを格納するために十分な大きさの領域を確保できたか否かを判断する（Ｓ３０４）。実行中のプログラムは、電子署名又はＭＡＣを格納する領域を確保できた場合に、プログラムと種類情報と秘密情報とを用いて電子署名又はＭＡＣを生成する（Ｓ３０５）。実行中のプログラムは、生成した電子署名又はＭＡＣを検証情報保持部１２４ａ，１２４ｂのいずれかに格納する（Ｓ３０６）。尚、実行中のプログラムは、ステップ（Ｓ３０４）〜ステップ（Ｓ３０６）を、検証情報生成部１９０に指示することによって行ってもよい。種類情報操作要求の処理が正常終了する（Ｓ３０７）。
【０１１７】
一方、ステップ（Ｓ３０２）において、種類情報操作が、プログラムに認められる動作に含まれないと判断された場合には、動作制約部２５１によって種類情報操作要求は拒否される（Ｓ３０８）。プログラムからの種類情報操作要求の処理は異常終了する（Ｓ３０９）。
【０１１８】
図６を用いて、プログラムからの秘密情報更新要求を処理する手順について説明する。プログラム実行管理部２５０が、秘密情報更新要求を検出することによって、プログラムからの種類情報操作要求の処理が開始される（Ｓ４０１）。
【０１１９】
動作制約部２５１は、実行中動作保持部２３０を参照して、秘密情報更新要求が、プログラムに認められる動作に含まれる動作を要求するか否かを判断する（Ｓ４０２）。図２に示すように、実行中のプログラムの種類が「秘密情報更新」であれば、既に秘密情報が秘密情報保持部１３１ａ，１３１ｂのいずれかに保持されている場合の秘密情報の更新は、プログラムに認められる動作に含まれる。このため、動作制約部２５１は、秘密情報データベース１３０を参照し、既に秘密情報が秘密情報保持部１３１ａ，１３１ｂのいずれかに保持されているか否かを判断する（Ｓ４０３）。
【０１２０】
ステップ（Ｓ４０３）において、秘密情報保持部１３１ａ，１３１ｂのいずれかにに秘密情報が保持されていると判断された場合には、秘密情報の更新は、プログラムに認められる動作に含まれる。従って、この場合は、プログラムは秘密情報を格納するために十分な大きさの領域を確保する（Ｓ４０４）。
【０１２１】
ステップ（Ｓ４０４）において、秘密情報を格納する領域が確保された場合には、プログラムは、新たな秘密情報を生成する（Ｓ４０５）。プログラムは、新たな秘密情報に基づく電子署名又はＭＡＣが保持されていないプログラムがあるか否かを判断する（Ｓ４０６）。新たな秘密情報に基づく電子署名又はＭＡＣが保持されていないプログラムがあると判断された場合には、プログラムは、電子署名又はＭＡＣを格納するために十分な大きさの領域を確保できたか否かを判断する（Ｓ４０７）。プログラムは、電子署名又はＭＡＣを格納する領域を確保できた場合に、プログラム保持部１１０から取得したプログラムと、新たに生成した秘密情報と、プログラム情報リスト１２０内に保持されている種類情報とを用いて電子署名又はＭＡＣを生成する（Ｓ４０８）。プログラムは、生成した電子署名又はＭＡＣを、検証情報保持部１２４ａ，１２４ｂに格納する（Ｓ４０９）。その際、プログラムは、検証情報管理情報に基づいて、検証に用いられる電子署名又はＭＡＣを保持する第１の検証情報保持部と異なる検証情報保持部である第２の検証情報保持部に、新たな電子署名又はＭＡＣを格納する。例えば、検証情報管理情報が、検証情報保持部１２４ａが検証に用いられる電子署名又はＭＡＣを保持することを示す場合は、プログラムは検証情報保持部１２４ｂに、新たな電子署名又はＭＡＣを格納する。その後、ステップ（Ｓ４０６）に戻り、プログラムは、他に処理すべきプログラムがあるか否か判断する。
【０１２２】
ステップ（Ｓ４０６）において、他に処理すべきプログラムがないと判断された場合には、プログラムは、生成した秘密情報を秘密情報保持部１３１ａ，１３１ｂのいずれかに格納する（Ｓ４１０）。その際、プログラムは、秘密情報管理情報に基づいて、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持する第１の秘密情報保持部と異なる秘密情報保持部である第２の秘密情報保持部に格納する。例えば、秘密情報管理情報が、秘密情報保持部１３１ａが検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持すること示す場合は、プログラムは秘密情報保持部１３１ｂに、新たな秘密情報を格納する。
【０１２３】
プログラムは、秘密情報管理情報保持部１３２によって保持される秘密情報管理情報が、格納された新たな秘密情報が、検証に用いられる電子署名又はＭＡＣと関連する秘密情報であることことを示すように、秘密情報管理情報を書き換える。又、プログラムは、検証情報管理情報保持部１２５によって保持される検証情報管理情報が、格納された新たな電子署名又はＭＡＣが検証に用いられることを示すように、検証情報管理情報を書き換える（Ｓ４１１）。秘密情報更新要求の処理は正常終了する（Ｓ４１２）。
【０１２４】
尚、実行中のプログラムは、ステップ（Ｓ４０４）、ステップ（Ｓ４０５）、ステップ（Ｓ４１０）を秘密情報格納部１７０に指示することによって、ステップ（Ｓ４０６）〜ステップ（Ｓ４０９）を検証情報生成部１９０に指示することによって行ってもよい。
【０１２５】
一方、ステップ（Ｓ４０２）及びステップ（Ｓ４０３）において、秘密情報更新は、実行中のプログラムに認められる動作に含まれないと判断された場合には、秘密情報更新要求は拒否される（Ｓ４１３）。秘密情報更新要求の処理は、異常終了する（Ｓ４１４）。又、ステップ（Ｓ４０７）において、電子署名又はＭＡＣを格納する領域が確保できなかった場合にも、秘密情報更新要求の処理は異常終了する（Ｓ４１５）。
【０１２６】
上記プログラムは、秘密情報保持部１３１ａ，１３１ｂによって保持される秘密情報と、検証情報保持部１２４ａ，１２４ｂによって保持される電子署名又はＭＡＣとを更新する。
【０１２７】
（効果）
このようなプログラム実行装置１００及びプログラム実行方法によれば、プログラムの動作が、動作制約部２５１によって、プログラムの種類に応じて定められた、プログラムに認められる動作に制約される。そのため、プログラムの動作に適切な制約を与えることができる。
【０１２８】
又、プログラムに認められる動作は、プログラムが実行される前に決定される。そのため、プログラムからの要求がある度に、要求を受け入れるか否かを判断するより確実に、プログラムの動作に制約を与えることができる。
【０１２９】
特に、動作保持部１４０がプログラムの種類と動作とを対応づけて保持するため、プログラムの種類と、動作決定部２２０によって決定される動作とが明確に対応づけられる。
【０１３０】
又、実行しようとするプログラムの種類が判断できない場合、若しくは、プログラムの種類に対応づけられる動作が動作保持部１４０によって保持されていない場合等、動作決定部２２０が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合には、当該プログラムの動作は所定の動作に制約される。そのため、信頼度が低いプログラムの動作を大幅に制約することができる。
【０１３１】
更には、プログラム情報リスト１２０によって保持される種類情報情報の格納、更新、削除等の操作は、種類が「種類情報操作」又は「初期化」である特定のプログラムのみに認められる。このように、種類情報を操作できるプログラムを少数のプログラムに限定することによって、当該少数のプログラムの信頼性を吟味することが可能になる。そのため、プログラムに認められる動作を決定する根拠となる種類情報が不当に設定される危険、即ち、種類情報が改竄される可能性を抑制することができる。
【０１３２】
又、秘密情報保持部１３１ａ，１３１ｂによって保持される秘密情報の格納、更新、削除等の操作は種類が「秘密情報更新」又は、「初期化」である特定のプログラムのみに認められる。そのため、プログラム及び種類情報を検証するために用いられる電子署名又はＭＡＣと関連する秘密情報が不当に設定される危険や、秘密漏洩の可能性を抑制しつつ、秘密情報を更新することができる。尚、秘密情報の更新は、秘密情報を取得しようとする攻撃を回避するために、好ましい。
【０１３３】
更には、検証情報保持部１２４ａ，１２４ｂによって保持される電子署名又はＭＡＣの格納、更新、削除等の操作は、種類が「秘密情報更新」又は「種類情報操作」又は「初期化」である特定のプログラムのみに認められる。そのため、プログラム及び種類情報を検証するために用いられる電子署名又はＭＡＣが不当に設定され、又は変更される危険性を抑制することができる。
【０１３４】
更には、検証部２１０によって、プログラム及び種類情報が検証される。そのため、プログラム或いは種類情報の少なくとも１つが改竄された場合に、プログラム或いは種類情報の少なくとも１つが改竄されたことを検出することができる。従って、検証部２１０は、プログラムと種類情報との対応が正しいか否かを判断することができる。又、プログラム及び種類情報の検証が成立しなかった場合には、プログラムは実行されない。このため、プログラム又は種類情報の少なくとも１つを書き換えることによって、プログラムの動作及びプログラムに認められる動作を変更しようとする攻撃を回避できる。
【０１３５】
更には、秘密情報保持部１３１ａ，１３１ｂのいずれにも秘密情報が保持されていない場合に、動作制約部２５１によって、プログラムに、秘密情報保持部１３１ａ，１３１ｂへの秘密情報の格納と、種類情報保持部１２２ａ，１２２ｂへの種類情報の格納と、検証情報保持部１２４ａ，１２４ｂへの電子署名又はＭＡＣの格納とが認められる。そのため、秘密情報が保持されていない場合に、秘密情報と、種類情報と、電子署名又はＭＡＣとが初期化される。即ち、プログラム実行装置１００の初期状態において、一度だけ、秘密情報の初期化が認められる。
【０１３６】
このため、出荷前において、或いは、プログラム実行装置１００を入手した利用者によって初期化が行われれば、秘密情報が不当に書き換えられ、又、入手される機会を抑制することができる。
【０１３７】
又、外部装置から取得されるプログラムは、検証部２１０による、当該プログラム及び種類情報の検証が成立した場合に、プログラム取得部２６０によって、プログラム保持部１１０に格納される。そのため、プログラム又は種類情報の少なくとも１つが改竄されたおそれのあるプログラムをプログラム実行装置１００内に保持する危険性を抑制することができる。
【０１３８】
更には、種類情報付与部１８０は、ユーザに指示された種類情報をプログラム情報リスト１２０に格納し、動作決定部２２０は、プログラム情報リスト１２０によって保持されている種類情報に基づいて、プログラムに認められるの動作を決定する。そのため、ユーザが、プログラムに付与すべき種類情報を一度だけ判断することによって、その後は、プログラムの動作が自動的に制約される。従って、プログラムに付与すべき種類情報の吟味を誤る危険性を抑制することができる。尚、ユーザは、プログラムに種類情報を付与する際、当該プログラムの動作を制約すべきかどうか、又、制約する場合はどのように制約すべきかを判断し、その判断結果に基づいてプログラムに種類情報を付与することが好ましい。
【０１３９】
又、動作保持部１４０は、図２に示すようにプログラムの種類に対応づけられる動作を保持する。例えば、種類が「ゲーム」であるプログラムには、プログラム保存フォルダ内のファイルの操作と、ダウンロード元サイトへのアクセスのみが認められる。そのため、ダウンロードしてきたゲームのプログラムは当該ゲームのプログラムによって生成されたデータにはアクセスできるが、アドレス帳ファイル等に保存されているユーザの個人情報、即ち、プライバシー情報にはアクセスできない。従って、当該ゲームのプログラムがプライバシー情報を漏洩する危険性を抑制できる。
【０１４０】
又、例えば、種類が「メール送受信」や「住所録管理」であるプログラムにのみ、アドレス帳、住所録、メール等の個人情報へのアクセスが認められるため、個人情報が漏洩する危険性を抑制することができる。或いは、種類が「システム情報設定」であるプログラムにのみ、システム情報の更新が認められる。このため、種類が「システム情報設定」であるプログラムの信頼性を十分に吟味することによって、悪意のあるプログラムにプログラム実行装置１００の制御が奪われる危険性を抑制することができる。
【０１４１】
このように、プログラムを分類し、信頼度が低いプログラムの動作を大幅に制約することができるため、プログラム実行装置１００の安全性及び信頼性を確保しつつ、プログラムを自由に取得して実行することができる。又、例えば、ネットワークへのアクセスと、システム情報の設定とを同一種類のプログラムに認めなければ、外部装置からの侵入を受けた場合であっても、システム情報が変更される危険を抑制することができる。
【０１４２】
又、上記実施の形態においては、種類情報保持部と、検証情報保持部と、秘密情報保持部とが、２つずつ備えられている。更に、種類情報管理情報と、検証情報管理情報とが、いずれの種類情報保持部、又は、検証情報保持部に保持される情報が検証に用いられる情報であるかを示す。又、秘密情報管理情報が、いずれの秘密情報保持部に保持される秘密情報が、検証に用いられる電子署名又はＭＡＣと関連する秘密情報であるかを示す。又、種類情報又は電子署名又はＭＡＣ又は秘密情報の少なくとも１つを更新するプログラムは、新たな種類情報を検証に用いられる種類情報を保持する第１の種類情報保持部と異なる種類情報保持部である第２の種類情報保持部に格納し、新たな電子署名又はＭＡＣを検証に用いられる電子署名又はＭＡＣを保持する第１の検証情報保持部と異なる検証情報保持部である第２の検証情報保持部に格納し、新たな秘密情報を、検証に用いられる電子署名又はＭＡＣと関連する秘密情報を保持する第１の秘密情報保持部と異なる秘密情報保持部である第２の秘密情報保持部に格納する。従って、種類情報又は電子署名又はＭＡＣ又は秘密情報の少なくとも１つが更新される際に、検証部２１０が検証している場合であっても、検証に用いられている電子署名又はＭＡＣと、当該電子署名又はＭＡＣとに関連する秘密情報と、種類情報とは変更されない。このため、検証部２１０による検証の処理は影響を受けない。
【０１４３】
又、種類情報管理情報と、検証情報管理情報と、秘密情報管理情報とは、更新の処理が行われた後に書き換られる。即ち、種類情報、電子署名又はＭＡＣ、秘密情報のそれぞれの世代が管理される。従って、例えば、種類情報、電子署名又はＭＡＣ、秘密情報のいずれかが、不当に更新された場合であっても、検証部２１０は、更新される前の種類情報と電子署名又はＭＡＣと秘密情報又は当該秘密情報に関連する秘密情報関連情報とを用いて、プログラム及び種類情報を検証することができる。或いは、検証情報生成部１９０によって、新たな秘密情報に基づく電子署名又はＭＡＣが検証情報保持部１２４ａ，１２４ｂに格納された後、秘密情報格納部１７０によって、新たな秘密情報が秘密情報保持部１３１ａ，１３１ｂに格納される前に、システムトラブルがあった場合でも、検証部２１０は、検証情報管理情報に基づいて取得した電子署名又はＭＡＣと秘密情報管理情報に基づいて取得した秘密情報又は秘密情報関連情報とを用いて検証することが可能である。
【０１４４】
（変更例）
尚、本発明は上記実施の形態に限定されるものではなく種々の変更が可能である。例えば、上記実施の形態においては、プログラムの所有者の権限については判断していないが、プログラムを実行する前に、或いは、プログラムからの要求が検出された際に、プログラムの所有者の権限についても判断してもよい。プログラムからの要求が検出された際に、プログラムの所有者の権限について判断した上で、プログラムからの要求を処理する手順を図７に示す。
【０１４５】
プログラムからの要求が検出されることによって、処理が開始される（Ｓ５０１）。要求されている動作が、プログラムの所有者に認められる動作か否かが判断される（Ｓ５０２）。プログラムの所有者に認められる動作であれば、図５又は図６に示すのと同様の手順で、プログラムの動作が制約される（Ｓ５０３）。プログラムからの要求の処理が正常終了する（Ｓ５０４）。一方、ステップ（Ｓ５０２）において、検出された要求が所有者に認められない動作であれば、当該処理は異常終了する（Ｓ５０５）。これによれば、更に適切に、プログラムの動作を制約することができる。
【０１４６】
又、秘密情報は、外部装置から取得されてもよい。この場合、秘密情報格納部１７０は、通信部１５０を介して外部装置から秘密情報を取得して、秘密情報保持部１３１ａ，１３１ｂに格納する。或いは、検証部２１０が、通信部１５０を介して外部装置から取得した秘密情報を用いてプログラム及び種類情報を検証してもよい。
【０１４７】
或いは、上記実施の形態においては、秘密情報関連情報は、外部装置から取得することとしているが、プログラム実行装置１００内に保持されてもよい。
【０１４８】
又、秘密情報関連情報が、プログラム実行装置１００内に保持されている場合には、秘密情報が更新された際に秘密情報関連情報が必要に応じて更新される。必要に応じて更新される、とは、保持されている秘密情報関連情報が検証に用いられている場合には更新され、用いられていない場合には更新されないことを意味する。
【０１４９】
更には、上記実施の形態においては、検証部２１０は、プログラム及び種類情報を検証するが、プログラム又は種類情報を検証してもよい。
【０１５０】
これによれば、検証部２１０によって、プログラム又は種類情報のいずれかが検証される。そのため、プログラムが改竄された場合又は種類情報が改竄された場合に、改竄されたことを検出することができる。又、プログラム又は種類情報の検証が成立しなかった場合には、当該プログラムの動作は大幅に制約されるか、若しくは、当該プログラムは実行されない。従って、プログラム又は種類情報を書き換えて、本来認められない動作をさせる攻撃による危険性を抑制することができる。尚、この場合、検証部２１０は、プログラム又は種類情報と、電子署名又はＭＡＣと、秘密情報関連情報又は秘密情報とを用いて、プログラムを検証する。
【０１５１】
或いは、上記実施の形態では、プログラムの種類情報及びその検証に用いられる電子署名又はＭＡＣは、プログラム情報リスト１２０内に保持される。しかし、種類情報及びその検証に用いられる電子署名又はＭＡＣは、プログラム自体のプログラム名、プログラムの記憶装置上の場所（例えば、フォルダ名）、プログラムのＩＤ、ファイルシステムが持つファイル管理情報、又は、これらの一部を種類情報又は電子署名又はＭＡＣとすることによって保持され得る。尚、この場合、プログラム名又はその一部を種類情報とすること、フォルダ名又はその一部が種類情報であるフォルダにプログラムを格納すること、或いは、プログラムのＩＤ又はその一部を種類情報とすることによって、ファイルシステムが持つファイル管理情報を種類情報に設定することによって、種類情報がプログラムに付与される。
【０１５２】
更には、種類情報や電子署名又はＭＡＣは、プログラムのプログラム名、プログラムの記憶装置上の場所、プログラムのＩＤ、プログラム自体、又は、これらの一部のハッシュ値等を用いて検索できるデータベース内に保持されていてもよい。
【０１５３】
これによれば、プログラム実行装置１００内に多数のプログラムが保持されている場合でも、容易にプログラムの種類情報や電子署名又はＭＡＣを検索することができる。
【０１５４】
又、種類情報と電子署名又はＭＡＣとはプログラム実行装置１００内に保持されていなくてもよい。この場合、種類情報検出部２００や検証部２１０は、例えば、プログラムのプログラム名、プログラムの記憶装置上の場所、プログラムのＩＤ、プログラム自体、又は、これらの一部のハッシュ値等を、通信部１５０を介して外部装置に送信し、応答として種類情報や電子署名又はＭＡＣを取得する。
【０１５５】
或いは、上記実施の形態においては、秘密情報は、秘密情報データベース１３０内に保持されているが、特定のファイルとして保持されていてもよいし、特定のプログラムファイルの一部として保持されていてもよいし、ハードウェア等の記録媒体の特定の領域に記憶することによって保持されていてもよい。
【０１５６】
又は、上記実施の形態においては、種類情報、電子署名又はＭＡＣ、秘密情報のそれぞれについて、２つずつ格納する領域が備えられている。しかし、種類情報、電子署名又はＭＡＣ、秘密情報のそれぞれ１つを格納する領域が備えられていてもよい。これによれば、ハードディスクや不揮発メモリ等を節約できる。
【０１５７】
更には、上記実施の形態においては、実行中動作保持部２３０は、１つのプログラムに対して認められる動作のみを保持する。しかし、プログラム実行装置１００上で、同時に複数のプログラムが動作できる場合には、実行中動作保持部２３０は、同時に動作する複数のプログラムのそれぞれに認められる動作を保持してもよい。これによれば、同時に動作する複数のプログラムに適切な制約を与えることができる。
【０１５８】
或いは、上記実施の形態においては、種類情報付与部１８０は、入力受付部１６０からユーザに指示された種類情報を取得するが、種類情報付与部１８０が決定した種類情報を付与してもよい。
【０１５９】
又、プログラムは種々な方法で分類することができる。上記実施の形態とにおいては、プログラムの機能によって分類していたが、例えば、プログラムの入手の経路によって分割することができる。この場合、プログラムは、例えば、プログラム実行装置１００内に元からあるプログラム、プログラム実行装置１００のユーザが制作したプログラム、ネットワークを介して取得、即ちダウンロードしたプログラム等の種類に分類される。これによれば、ネットワークを介して取得したプログラムの信頼性が低い場合であっても、ダウンロードしたプログラムによる危険性を抑制できる
或いは、動作保持部１４０は、動作として、アクセスできるファイルの情報と、当該ファイルに対するアクセス方法を保持してもよい。ここで、ファイルに対するアクセス方法とは、例えば、書込と読込である。
【０１６０】
更には、上記実施の形態においては、プログラム取得部２６０は、種類情報と電子署名又はＭＡＣとの少なくとも１つが取得できなかった場合や、検証部２１０による検証結果が「不成立」であった場合には、取得したプログラムと電子署名又はＭＡＣとを格納しない。しかし、又、プログラム取得部２６０は、このような場合であっても、取得したプログラムと、電子署名又はＭＡＣとを格納してもよい。これによれば、信頼性が低いプログラムであっても、動作を大幅に制約して動作させたり、ユーザの指示に応じて動作させたりすることができる。
【０１６１】
又、上記実施の形態においては、種類情報検出部２００が種類情報の検出に失敗した場合、或いは、動作保持部１４０にプログラムの種類と対応づけられる動作が保持されていない場合に、動作決定部２２０は、空の動作をプログラムに認められるの動作として決定し、プログラム実行部２４０は、プログラムの実行を拒否してもよい。これによれば、動作決定部２２０が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合には、当該プログラムは実行されない。
【０１６２】
或いは、検証部２１０による、プログラム及び種類情報の検証が成立しなかった場合に、動作決定部２２０は、所定の動作を当該プログラムに認められる動作として決定してもよい。これによれば、検証部２１０による検証結果が「不成立」であった場合には、当該プログラムの動作を大幅に制約することができる。
【０１６３】
更に、検証部２１０は、検証情報として、電子署名又はＭＡＣでなくハッシュ値を用いてもよい。この場合、検証部２１０は、プログラム実行装置１００内に保持されるハッシュ関数、又は、外部装置から取得したハッシュ関数を用いて、プログラム及び種類情報をハッシュ化する。検証部２１０は、ハッシュ化によって得られた値と、検証情報であるハッシュ値とを比較し、一致すれば検証結果を「成立」とし、一致しなければ検証結果を「不成立」とする。即ち、検証部２１０は、検証情報としてハッシュ値を用い、秘密情報を用いない。
【０１６４】
又、検証情報としてハッシュ値が用いられる場合には、検証情報生成部１９０は、プログラム実行装置１００内に保持されるハッシュ関数、又は、外部装置から取得したハッシュ関数を用いて、プログラム及び種類情報をハッシュ化することによってハッシュ値を生成する。即ち、検証情報生成部１９０による検証情報の生成にも秘密情報が用いられない。従って、プログラム実行装置１００は、秘密情報保持部１３１ａ，１３１ｂ、秘密情報管理情報保持部１３２を含む秘密情報データベース１３０を備えない。
【図面の簡単な説明】
【０１６５】
【図１】本発明の実施の形態に係るプログラム実行装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係る動作保持部を示す図である。
【図３】本発明の実施の形態に係る秘密情報と、種類情報と、電子署名又はＭＡＣとが初期化される手順を示すフローチャートである。
【図４】本発明の実施の形態に係るユーザからプログラムの実行要求があった場合に、プログラムを実行し、その動作を制約する手順を示すフローチャートである。
【図５】本発明の実施の形態に係るプログラムからの種類情報操作要求を処理する手順について説明するフローチャートである。
【図６】本発明の実施の形態に係るプログラムからの秘密情報更新要求を処理する手順を示すフローチャートである。
【図７】本発明の変更例に係るプログラムからの要求を処理する手順を示すフローチャートである。
【符号の説明】
【０１６６】
１００…プログラム実行装置
１１０…プログラム保持部
１２０…プログラム情報リスト
１２１…プログラム名保持部
１２２ａ，１２２ｂ…種類情報保持部
１２３…種類情報管理情報保持部
１２４ａ，１２４ｂ…検証情報保持部
１２５…検証情報管理情報保持部
１３０…秘密情報データベース
１３１ａ，１３１ｂ…秘密情報保持部
１３２…秘密情報管理情報保持部
１４０…動作保持部
１５０…通信部
１６０…入力受付部
１７０…秘密情報格納部
１８０…種類情報付与部
１９０…検証情報生成部
２００…種類情報検出部
２１０…検証部
２２０…動作決定部
２３０…実行中動作保持部
２４０…プログラム実行部
２５０…プログラム実行管理部
２５１…動作制約部
２６０…プログラム取得部
【図１】
2006085598.tif 000003
【図２】
2006085598.tif 000004
【図３】
2006085598.tif 000005
【図４】
2006085598.tif 000006
【図５】
2006085598.tif 000007
【図６】
2006085598.tif 000008
【図７】
2006085598.tif 000009