JP2006085598A - プログラム実行装置及びプログラム実行方法 - Google Patents

プログラム実行装置及びプログラム実行方法 Download PDF

Info

Publication number
JP2006085598A
JP2006085598A JP2004271925A JP2004271925A JP2006085598A JP 2006085598 A JP2006085598 A JP 2006085598A JP 2004271925 A JP2004271925 A JP 2004271925A JP 2004271925 A JP2004271925 A JP 2004271925A JP 2006085598 A JP2006085598 A JP 2006085598A
Authority
JP
Japan
Prior art keywords
program
information
unit
verification
type
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.)
Pending
Application number
JP2004271925A
Other languages
English (en)
Inventor
Fumimitsu Miura
史光 三浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2004271925A priority Critical patent/JP2006085598A/ja
Publication of JP2006085598A publication Critical patent/JP2006085598A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】より確実に、プログラムの動作に適切な制約を与える。
【解決手段】種類情報検出部200が、プログラムの種類を示す種類情報を検出する。動作決定部220が、動作保持部140において、プログラムの種類と対応づけられる動作を、プログラムに認められる動作として決定する。プログラム実行部240が、プログラムを実行する。動作制約部251が、実行中であるプログラムの動作を、決定された動作に制約する。
【選択図】図1

Description

本発明は、プログラム実行装置及びプログラム実行方法に関する。
従来、プログラムを実行することができるパソコンや携帯電話等の装置においては、一般的に、プログラムに認められる動作は当該プログラムの所有者に付与されている権限に基づいて定められている。例えば、重要なファイルの読込や更新、ネットワークへのアクセス等の動作は、管理者権限等の高度な利用権限を認められている者に所有されるプログラムにのみ認められる。
又、プログラムの所有者以外の者によって管理されるファイルへのアクセスを制約することも一般的に行われている(例えば、非特許文献1参照。)。
しかしながら、例えば、ネットワーク等からダウンロードしたプログラムを利用する場合は、当該プログラムのソースコードを入手できないことが多い。このため、プログラムの所有者であっても、当該プログラムの動作を正確に把握することは困難な場合がある。
従って、所有者に付与されている権限に基づいてプログラムの動作を制約するだけでは、プログラムの所有者に対してはゲーム等の正当な動作をするプログラムとして振舞いつつ、所有者のプライバシーに係る情報を、ネットワークを通じて漏洩するような不正な動作をするプログラムによる脅威を回避できない。
又、例えば、最高の利用権限である管理者権限を有する所有者に所有されるプログラムには、重要なパラメータの変更等、重要な動作が認められる。このため、管理者に所有されるプログラムの1つにでも欠陥があると、装置全体が危険な状態になるという問題が知られている(例えば、非特許文献2参照。)。
このように、プログラムの所有者に付与されている権限に基づいて、当該プログラムに認められる動作を定める方法では、プログラムの動作に適切な制約を与えることができない。
又、従来、プログラムの動作を適切に制約することを目的として、プログラムを実行する度に、プログラムに認められる動作を手動で定めることが行われている。
或いは、プログラムからの要求を監視し、それぞれの要求を受け入れるか否かを判断する技術も知られている(例えば、非特許文献3、特許文献1参照。)。これは、例えば、ネットワークを介してダウンロードされるJava(登録商標) Appletを動作させるために用いられている。
Donald Lewine, "POSIX Programmer’s Guide", ISBNO-937175-73-0 中村雄一他著、"SELinux徹底ガイド", ISBN4-8222-2111-3 G.マグロー+E.W.フェルテン著、"Java (登録商標)セキュリティ"、 ISBN4-8101-8979-1 特開2001−337864号報
しかしながら、プログラムを実行する度に、プログラムに認められる動作を手動で定める従来の技術では、プログラムを実行する度の判断や、プログラムに認められる動作の決定が煩雑であるために、プログラムの所有者が判断を誤る場合や、判断を行わない場合があった。又、プログラムの所有者が判断を誤った場合であっても、プログラムの所有者が誤った判断をしたことに気づきにくい。
更に、プログラムからの要求を監視し、それぞれの要求を受け入れるか否かを判断する従来の技術では、要求がある度に要求を受け入れるか否かを判断するため、判断を誤る場合があった。又、例えば、Java(登録商標) Appletの実装上の問題により、仮想計算機を介してのプログラムからの要求を制約せず、全て受け入れてしまう場合があった。
そこで、本発明は、より確実に、プログラムの動作に適切な制約を与えることを目的とする。
本発明に係るプログラム実行装置は、プログラムの種類を示す種類情報を検出する種類情報検出部と、種類情報によって示される種類に応じて、プログラムに認められる動作を決定する動作決定部と、プログラムを実行するプログラム実行部と、実行中であるプログラムの動作を、プログラムに認められる動作に制約する動作制約部とを備えることを特徴とする。
このようなプログラム実行装置によればプログラムに認められる動作はプログラムの種類に応じて決定される。そして、プログラムの動作が、動作制約部によって、決定された、プログラムに認められる動作に制約される。そのため、プログラムの動作に適切な制約を与えることができる。
又、プログラムに認められる動作は、プログラムが実行される前に決定される。そのため、プログラムからの要求がある度に、要求を受け入れるか否かを判断するより確実に、プログラムの動作に制約を与えることができる。
プログラム実行装置は、プログラムの種類と動作とを対応づけて保持する動作保持部を備え、動作決定部は、動作保持部において、プログラムの種類と対応づけられる動作を、プログラムに認められる動作として決定することが好ましい。
これによれば、プログラムの種類と、プログラムに認められる動作とが動作保持部において明確に対応づけられる。
動作決定部は、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合に、所定の動作をプログラムに認められる動作として決定するか、或いは、プログラム実行部にプログラムの実行を拒否させることが好ましい。
これによれば、動作決定部が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合には、当該プログラムの動作は所定の動作に制約されるか、若しくは、当該プログラムは実行されない。尚、動作決定部が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合とは、例えば、動作決定部が、プログラムの種類を判断できなかった場合、若しくは、プログラムの種類に対応づけられる動作が動作保持部によって保持されていない場合等である。又、プログラムの種類が判断できなかった場合とは、例えば、種類情報検出部が種類情報を検出できなかった場合や、動作決定部が、検出された種類情報を参照しても、プログラムの種類を判断できなかった場合等である。
プログラム実行装置は、種類情報を保持する種類情報保持部を備え、動作制約部は、動作決定部によって決定された、プログラムに認められる動作に基づいて、種類情報保持部によって保持される種類情報の操作を制約することが好ましい。
これによれば、種類情報保持部によって保持される種類情報の格納、更新、削除等の操作は特定のプログラムのみに認められる。そのため、プログラムに認められる動作を決定する根拠となる種類情報が不当に設定される危険性を抑制することができる。
プログラム実行装置は、プログラム及び種類情報の検証に用いられる検証情報を保持する検証情報保持部と、検証情報保持部によって保持される検証情報を用いてプログラム及び種類情報を検証する検証部とを備えることが好ましい。
これによれば、検証部によって、プログラム及び種類情報が検証される。
そのため、プログラム又は種類情報の少なくとも1つが改竄された場合に、改竄されたことを検出することができる。従って、検証部は、プログラムと種類情報との対応が正しいか否かを判断することができる。
動作制約部は、動作決定部によって決定された、プログラムに認められる動作に基づいて、検証情報保持部によって保持される検証情報の操作を制約することが好ましい。
これによれば、検証情報保持部によって保持される検証情報の格納、更新、削除等の操作は特定のプログラムのみに認められる。そのため、プログラム及び種類情報を検証するために用いられる検証情報が不当に設定され、又は変更される危険性を抑制することができる。
動作決定部は、検証部による検証結果が不成立である場合に、所定の動作をプログラムに認められる動作として決定するか、或いは、プログラム実行部に、プログラムの実行を拒否させることが好ましい。
又、プログラム又は種類情報の少なくとも1つの検証が成立しなかった場合には、当該プログラムの動作は所定の動作に制約されるか、若しくは、当該プログラムは実行されない。そのため、信頼性の低いプログラムの動作を大幅に制限することができる。
プログラム実行装置は、秘密情報を用いて電子署名又はMAC(Message Authentication Code)を生成する生成部を備え、検証部は、検証情報として電子署名又はMACを用いて検証することが好ましい。
プログラム実行装置は、秘密情報を保持する秘密情報保持部を備え、動作制約部は、秘密情報保持部によって、秘密情報が保持されていない場合に限り、プログラムによる、秘密情報保持部に対する秘密情報の格納操作を受け入れることが好ましい。
これによれば、秘密情報保持部に秘密情報が保持されていない場合に限り、動作制約部によって、プログラムによる、秘密情報保持部に対する秘密情報の格納操作が受け入れられる。このため、秘密情報の初期化は1度だけ認められる。尚、秘密情報保持部に対する格納操作が受け入れられるとは、秘密情報保持部への秘密情報の格納がプログラムに認められることを意味する。
プログラム実行装置は、秘密情報を保持する秘密情報保持部を備え、動作制約部は、動作決定部によって決定された、プログラムに認められる動作に基づいて、秘密情報保持部によって保持される秘密情報の操作を制約することが好ましい。
これによれば、秘密情報保持部によって保持される秘密情報の格納、更新、削除等の操作は特定のプログラムのみに認められる。そのため、プログラム又は種類情報の少なくとも1つを検証するために用いられる秘密情報が不当に設定され、又は変更される危険性を抑制することができる。
プログラム実行装置は、複数の秘密情報保持部と、プログラム毎に複数の検証情報保持部とを備え、複数の秘密情報保持部の1つである第1の秘密情報保持部は、検証部によって用いられる電子署名又はMACと関連する秘密情報を保持し、複数の検証情報保持部の1つである第1の検証情報保持部は、検証部による検証に用いられる電子署名又はMACを保持し、秘密情報と電子署名又はMACとを更新するプログラムは、新たな秘密情報を、第1の秘密情報保持部と異なる秘密情報保持部である第2の秘密情報保持部に格納し、第2の秘密情報保持部によって保持される秘密情報を用いて、電子署名又はMACを生成し、第1の検証情報保持部と異なる検証情報保持部である第2の検証情報保持部に、生成した電子署名又はMACを格納し、複数の秘密情報保持部のいずれが第1の秘密情報保持部であるかを示す秘密情報管理情報を書き換え、複数の検証情報保持部のいずれが第1の検証情報保持部であるかを示す検証情報管理情報を書き換えることが好ましい。
これによれば、秘密情報と電子署名又はMACとが更新される際に、検証部が検証している場合であっても、検証に用いられている電子署名又はMACに関連する秘密情報と、電子署名又はMACとは変更されない。このため、検証部による検証の処理は影響を受けない。又、秘密情報と、電子署名又はMACとの世代の管理が可能になる。従って、秘密情報と電子署名又はMACとの更新の過程でシステムトラブルがあった場合でも、検証部は、秘密情報管理情報に基づいて取得した秘密情報又は当該秘密情報に関連する秘密情報関連情報と、検証情報管理情報に基づいて取得した電子署名又はMACとを用いて検証することが可能である。尚、電子署名又はMACに関連する秘密情報とは、電子署名又はMACの生成に用いられる秘密情報である。
プログラム実行装置は、外部装置から、プログラムを取得するプログラム取得部と、取得されたプログラムの種類情報を、外部装置から取得する種類情報取得部と、取得されたプログラム及び種類情報の検証に用いられる検証情報を、外部装置から取得する検証情報取得部と、検証部による検証が成立する場合に、取得されたプログラムと、種類情報とを格納するプログラム格納部とを備えることが好ましい。
これによれば、外部装置から取得されるプログラムは、検証部による、プログラム及び種類情報の検証が成立する場合に、プログラム格納部によって格納される。そのため、プログラムと種類情報との少なくとも1つが改竄されたおそれのあるプログラムをプログラム実行装置内に保持する危険性を抑制することができる。
或いは、前記検証部は、検証情報としてハッシュ値を用い、秘密情報を用いなくてもよい。
本発明に係るプログラム実行方法は、プログラムの種類を示す種類情報を検出し、種類情報によって示される種類に応じて、プログラムに認められる動作を決定し、プログラムを実行し、実行中であるプログラムの動作を、決定された、プログラムに認められる動作に制約することを特徴とする。
以上説明したように、本発明によれば、より確実に、プログラムの動作に適切な制約を与えることが可能となる。
(プログラム実行装置)
図1に、本発明の実施の形態に係るプログラム実行装置100を示す。プログラム実行装置100は、プログラムを保持し、実行することができる装置であり、例えば、パソコンや、携帯情報端末や、携帯電話等である。
図1に示すように、プログラム実行装置100は、プログラム保持部110と、プログラム情報リスト120と、秘密情報データベース130と、動作保持部140と、通信部150と、入力受付部160と、秘密情報格納部170と、種類情報付与部180と、検証情報生成部190と、種類情報検出部200と、検証部210と、動作決定部220と、実行中動作保持部230と、プログラム実行部240と、プログラム実行管理部250と、プログラム取得部260とを備える。
プログラム保持部110は、プログラムを保持する。
プログラム情報リスト120は、プログラム保持部110によって保持されるプログラムのそれぞれに係るプログラム情報を保持する。プログラム情報は、プログラム名保持部121と、種類情報保持部122a,122bと、種類情報管理情報保持部123と、検証情報保持部124a,124bと、検証情報管理情報保持部125とを含む。
プログラム名保持部121は、プログラム保持部110によって保持されているプログラムのファイル名を保持する。
種類情報保持部122a,122bは、プログラムの種類を示す種類情報を保持する。このように、プログラム実行装置100は、プログラム保持部110によって保持されるプログラム毎に複数の種類情報保持部を備える。ここで、プログラムの種類とは、複数のプログラムを、共通の性質によって分類したまとまりをいう。本実施の形態においては、プログラムは、その機能によって、ゲーム、メール送受信プログラム、住所録管理プログラム等に分類される。
種類情報管理情報保持部123は、複数の種類情報保持部122a,122bのいずれが、検証に用いられる種類情報を保持する種類情報保持部であるかを示す種類情報管理情報を保持する。
検証情報保持部124a,124bは、検証情報を保持する。本実施の形態においては、検証情報として電子署名又はMACが用いられる。検証情報保持部124a,124bによって保持される、電子署名又はMACは、プログラム及び種類情報の検証に用いられる情報である。即ち、電子署名又はMACは、プログラム及び種類情報の検証に用いられる検証情報として機能する。
このように、プログラム実行装置100は、プログラム保持部110によって保持されるプログラム毎に、複数の検証情報保持部を備える。
検証情報管理情報保持部125は、複数の検証情報保持部124a,124bのいずれが、検証に用いられる電子署名又はMACを保持する検証情報保持部であるかを示す検証情報管理情報を保持する。尚、検証に用いられる電子署名又はMACを保持する検証情報保持部は、第1の検証情報保持部である。
秘密情報データベース130は、複数の秘密情報保持部131a,131bと、秘密情報管理情報保持部132とを含む。
秘密情報保持部131a,131bは秘密情報を保持する。このように、プログラム実行装置100は、複数の秘密情報保持部を備える。秘密情報は、電子署名又はMACの生成に用いられる情報であり、例えば、電子署名又はMACを生成するために用いられる秘密鍵である。尚、検証に用いられる検証情報がMACである場合には、秘密情報は、プログラム及び種類情報の検証を行うためにも用いられる。
秘密情報管理情報保持部132は、複数の秘密情報保持部131a,131bの内、いずれが、検証に用いられる電子署名又はMACと関連する秘密情報を保持する秘密情報保持部であるかを示す秘密情報管理情報を保持する。尚、検証に用いられる電子署名又はMACと関連する秘密情報を保持する秘密情報保持部は、第1の秘密情報保持部である。
本実施の形態における動作保持部140は、図2に示すように、プログラムの種類と、プログラムに認められる動作とを対応づけて保持する。ここで、動作保持部140に保持される動作は、重要な情報や、資源のへのアクセスに関するルールを定めるものである。例えば、動作保持部140は、所定のファイルへの書込、読込、更新等の動作方法の種類が認められるか否かに関する情報、即ち、ポリシーを保持する。尚、動作保持部140は、プログラムに認められる動作と認められない動作とを保持してもよい。
本実施の形態においては、動作保持部140は、プログラムの種類として、「ゲーム」、「メール送受信」、「住所録管理」、「秘密情報更新」、「初期化」「種類情報操作」、「システム情報設定」を保持し、それぞれの種類のプログラムに認められる動作を保持する。尚、種類「その他」に対応づけられている動作は、動作決定部220が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合に、当該プログラムに認められる動作として決定される所定の動作である。動作決定部220が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合とは、例えば、動作決定部220が、プログラムの種類を判断できなかった場合や、動作保持部140において、プログラムの種類と対応づけられる動作が保持されていない場合である。又、動作決定部220が、プログラムの種類を判断できなかった場合とは、例えば、種類情報検出部200が種類情報を検出できなかった場合や、動作決定部220が、検出された種類情報を参照しても、プログラムの種類を判断できなかった場合等である。
尚、所定の動作は、動作決定部220が、種類情報によって示される種類に応じて決定される、プログラムに認められる動作よりも制約されることが好ましい。種類情報によって示される種類に応じて決定される、プログラムに認められる動作よりも制約される所定の動作とは、当該プログラムが、悪意を持った動作を試みるプログラムであった場合でも、被害を抑制しうる動作であって、例えば、図2において、種類「その他」に対応づけられている動作「プログラム保存フォルダ内のファイルの読込」である。
又、動作保持部140は、プログラムの種類を示す種類情報も、種類に対応づけて保持する。
通信部150は、移動通信網や無線LANのような無線ネットワークや、インターネット等のネットワークを介して外部装置とデータの送受信を行う。
入力受付部160は、プログラム実行装置100に備えられるボタンやキーボード等を用いた入力操作によるユーザからの指示を受け付ける。
秘密情報格納部170は、秘密情報保持部131a,131bのいずれかに秘密情報を格納する。具体的には、秘密情報格納部170は、秘密情報保持部131a,131bの操作を認められたプログラムから、秘密情報の初期化又は秘密情報の更新の指示を取得した場合に、秘密情報を生成する。
秘密情報格納部170は、初期化の指示を取得した場合には、種類情報を付与すべき旨の通知と、生成した秘密情報とを後述する種類情報付与部180に入力する。秘密情報格納部170は、種類情報付与部180から、全てのプログラムの処理が終了した旨の通知を取得した際に、生成した秘密情報を秘密情報保持部131a、或いは、秘密情報保持部131bに格納する。
一方、秘密情報格納部170は、秘密情報の更新の指示を取得した場合には、生成した秘密情報を秘密情報保持部131a、或いは、秘密情報保持部131bに格納する。その際、秘密情報格納部170は、新たな秘密情報を、検証に用いられる電子署名又はMACと関連する秘密情報を保持する第1の秘密情報保持部と異なる秘密情報保持部である第2の秘密情報保持部に格納する。秘密情報格納部170は、生成した秘密情報を格納した秘密情報保持部がいずれであるかを示す情報と、電子署名又はMACを生成すべき旨の通知とを、種類情報付与部180を介して、検証情報生成部190に入力する。
秘密情報格納部170は、生成した秘密情報を格納した秘密情報保持部が、検証に用いられる電子署名又はMACと関連する秘密情報を保持する第1の秘密情報保持部であることを示すように、秘密情報管理情報保持部132によって保持される秘密情報管理情報を書き換える。
種類情報付与部180は、秘密情報格納部170から種類情報を付与すべき旨の通知を取得した場合、及び、後述する検証情報生成部190から、電子署名又はMACの生成を終了した旨の通知を取得した場合に、プログラムに種類情報を付与する。具体的には、種類情報付与部180は、プログラム保持部110と、プログラム情報リスト120とを参照して、種類情報が格納されていないプログラムがあれば、種類情報を付与すべきプログラムがあると判断する。この場合、種類情報付与部180は、秘密情報格納部170を介して入力受付部160からユーザに指示された種類情報を取得し、種類情報保持部122a或いは種類情報保持部122bに格納する。その際、種類情報付与部180は、検証に用いられる種類情報を保持する種類情報保持部と異なる種類情報保持部に種類情報を格納する。
尚、種類情報付与部180は、プログラム保持部110を参照して、プログラム情報リスト120にプログラム情報が保持されていないプログラムがあれば、当該プログラムのプログラム情報をプログラム情報リスト120に追加する。
一方、種類情報付与部180は、プログラム保持部110と、プログラム情報リスト120とを参照して、種類情報が格納されていないプログラムがないと判断した場合には、秘密情報格納部170に、全てのプログラムの処理が終了した旨の通知を入力する。
種類情報付与部180は、種類情報管理情報保持部123によって保持される種類情報管理情報が、種類情報を格納した種類情報保持部が検証に用いられる種類情報を保持することを示すように、種類情報管理情報を書き換える。種類情報付与部180は、格納した種類情報と、秘密情報格納部170から取得した秘密情報とを検証情報生成部190に入力する。
検証情報生成部190は、秘密情報を用いて電子署名又はMACを生成する生成部である。具体的には、検証情報生成部190は、電子署名又はMACを格納するために十分な大きさの領域を確保できた場合に、プログラム保持部110から取得したプログラムと、種類情報付与部180から取得した種類情報及び秘密情報とを用いて電子署名又はMACを生成する。検証情報生成部190は、プログラム情報リスト120内に、電子署名又はMACを格納するために必要な大きさの領域を確保する。検証情報生成部190は、領域が確保できた場合には、所定の方法で電子署名又はMACを生成する(例えば、Bruce Schneier, “Applied Cryptography second edition”,ISBN0-471-11709-9参照。)。
検証情報生成部190は、生成した電子署名又はMACを、検証情報保持部124a,124bのいずれかに格納する。その際、検証情報生成部190は、新たな電子署名又はMACを、検証に用いられる電子署名又はMACを保持する第1の検証情報保持部と異なる検証情報保持部である第2の秘密情報保持部に格納する。検証情報生成部190は、検証情報管理情報保持部125によって保持される検証情報管理情報が、電子署名又はMACを格納した検証情報保持部が検証に用いられる電子署名又はMACを保持することを示すように、検証情報管理情報を書き換える。検証情報生成部190は、検証情報の生成が終了した旨を種類情報付与部180に通知する。
種類情報検出部200は、種類情報を検出する。具体的には、種類情報検出部200は、入力受付部160から実行しようとするプログラムのプログラム名を取得する。種類情報検出部200は、種類情報管理情報保持部123によって保持される種類情報管理情報に基づいて、種類情報保持部122a,122bのいずれかから、検証に用いられる種類情報を取得する。種類情報検出部200は、取得した種類情報を、検出結果として検証部210に入力する。
一方、種類情報検出部200は、プログラム情報リスト120から、実行しようとするプログラムの種類情報を取得できなかった場合には、検出結果として、「失敗」を検証部210に入力する。
検証部210は、プログラム及び種類情報を検証する。ここで、プログラム及び種類情報の検証結果は、情報を作成した者以外の者によって改竄されていない場合には成立となり、改竄されている場合には不成立となる。本実施の形態においては、検証部210は、検証情報として電子署名又はMACを用い、更に秘密情報関連情報又は秘密情報とを用いてプログラム及び種類情報を検証する。
具体的には、検証にMACが用いられる場合は、検証部210は、まず、実行しようとするプログラムと、当該プログラムに係る種類情報と、MACと、秘密情報とを取得する。検証部210は、取得した秘密情報を用いて、取得したプログラム及び種類情報から電子署名又はMACを生成する。検証部210は、取得したMACと、生成したMACとを比較し、一致すれば検証結果を「成立」とし、一致しなければ検証結果を「不成立」とする。
一方、検証に電子署名が用いられる場合は、検証部210は、実行しようとするプログラムと、当該プログラムに係る種類情報と、電子署名と、秘密情報関連情報とを取得する。ここで、秘密情報関連情報とは、秘密情報によって生成された検証情報を解読するために用いられる情報、即ち電子署名を解読する公開鍵である。検証部210は、取得した秘密情報関連情報を用いて、取得した電子署名を解読してプログラム及び種類情報の元データを得る。検証部210は、解読して得た元データと、取得したプログラム及び種類情報とを比較し、一致すれば検証結果を「成立」とし、一致しなければ検証結果を「不成立」とする。
検証部210は、以下に示す方法で、プログラムと、種類情報と、電子署名又はMACと、秘密情報関連情報又は秘密情報とを取得する。検証部210は、種類情報検出部200から、検出結果と、実行しようとするプログラムのプログラム名を取得する。尚、検出結果は、種類情報か、若しくは、「失敗」である。
検証部210は、プログラム保持部110から、実行しようとするプログラムを取得する。
検証部210は、秘密情報管理情報保持部132によって保持されている秘密情報管理情報に基づいて、秘密情報保持部131a,131bのいずれかから、検証に用いられる電子署名又はMACと関連する秘密情報を取得する。又、検証に電子署名が用いられる場合は、更に、検証部210は、例えば、取得した秘密情報を、通信部150を介して外部装置に送信し、その応答として、取得した秘密情報に関連する秘密情報関連情報を取得する。
又、検証部210は、検証情報管理情報保持部125によって保持される検証情報管理情報に基づいて、第1の秘密情報保持部である検証情報保持部124a,124bのいずれかから、検証に用いられる電子署名又はMACを取得する。
尚、検証情報保持部124a,124bによって保持される電子署名又はMACが、検証情報生成部190によって生成されたものである場合には、検証部210は、検証情報生成部190によって生成された電子署名又はMACを取得する。
或いは、検証部210は、後述するプログラム取得部260から、種類情報と、電子署名又はMACとを取得し、秘密情報データベース130から秘密情報を取得する。
尚、検証部210は、種類情報検出部200による検出結果として、「失敗」を取得した場合、及び、プログラム情報リスト120から、目的とする電子署名又はMACを取得できなかった場合には、検証結果を「不成立」とする。
動作決定部220は、種類情報によって示される種類に応じて、プログラムに認められる動作を決定する。具体的には、動作決定部220は、検証部210から、種類情報の検出結果と、検出結果と、プログラム名とを取得する。動作決定部220は、動作保持部140において、プログラムの種類と対応づけられる動作を、プログラムに認められる動作として決定する。
例えば、動作決定部220は、種類情報の検出結果として「game」、検証結果として「成立」、プログラム名として「game1」を取得する。動作決定部220は、図2に示される動作保持部140を参照して、「game」によって示されるプログラムの種類は「ゲーム」であると判断する。動作決定部220は、プログラムの種類「ゲーム」に対応づけられている、「プログラム保存フォルダ内のファイルの読込」、「プログラム保存フォルダ内のファイルの削除」、「プログラム保存フォルダ内のファイルの更新」、「ダウンロード元サイトへのアクセス」を含む動作を、プログラム名「game1」のプログラムに認められる動作として決定する。
或いは、動作決定部220は、種類情報の検出結果として「word−processor」、検証結果として「成立」、プログラム名として「word−processor1」を取得する。動作決定部220は、図2に示される動作保持部140において、種類情報「word−processor」によって示されるプログラムの種類に対応づけられる動作が保持されていないと判断する。このため、種類「その他」に対応づけられている動作を、プログラム名「word−processor1」のプログラムに認められるの動作として決定する。
又、動作決定部220は、種類情報検出部200が種類情報の検出に失敗した場合、或いは、検証部210による検証結果が「不成立」である場合には、後述するプログラム実行部240に、プログラムの実行を拒否させる。
具体的には、動作決定部220は、種類情報の検出結果として「失敗」を取得するか、若しくは、検証結果として「不成立」を取得した場合には、空の動作を、実行しようとするプログラムに認められる動作として決定する。即ち、動作決定部220は、当該プログラムには、いかなる動作も認められないことを決定する。後述するように、プログラム実行部240は、動作決定部220から空の動作を取得した場合には、プログラムの実行を拒否する。
動作決定部220は、決定した動作を実行中動作保持部230に格納する。
実行中動作保持部230は、動作決定部220によって格納された、実行中のプログラムに認められる動作を保持する。
尚、プログラム保持部110と、プログラム情報リスト120と、秘密情報データベース130と、動作保持部140と、実行中動作保持部230とには、例えば、RAM、ROM、ハードディスク、フレキシブルディスク、コンパクトディスク等を用いることができる。
プログラム実行部240は、プログラムを実行する。具体的には、プログラム実行部240は、動作決定部220から実行しようとするプログラムのプログラム名と、決定された、当該プログラムに認められる動作とを取得する。プログラム実行部240は、取得した動作が空の動作でなければ、プログラム保持部110を参照して、取得したプログラム名のプログラムを実行する。
一方、プログラム実行部240は、動作決定部220から空の動作を取得した場合に、プログラムの実行を拒否する。
プログラム実行管理部250は、実行中のプログラムの動作を管理する。具体的には、プログラム実行管理部250は、実行中のプログラムからの、資源の利用の要求を検出し、当該要求を認めるか、或いは、制約するかを決定する。ここで、資源の利用とは、例えば、プログラム実行装置100内に格納されるファイルの読込又はファイルの更新等の、ファイルの操作や、ネットワークへのアクセスである。プログラム実行管理部250は、動作制約部251を備える。
動作制約部251は、実行中であるプログラムの動作を、動作決定部220によって決定された、プログラムに認められる動作に制約する。即ち、動作制約部251は、決定された、プログラムに認められる動作から逸脱しないように、実行中のプログラムを動作させる。具体的には、動作制約部251は、実行中動作保持部230を参照して、プログラム実行管理部250によって検出されたプログラムからの資源の利用の要求が、プログラムに認められる動作に含まれる動作を要求するか否かを判断する。動作制約部251は、実行中であるプログラムからの要求が、実行中動作保持部230に保持されている、当該プログラムに認められる動作に含まれていなければ、プログラムからの要求を拒否する。
例えば、種類が「ゲーム」であるプログラムの実行中には、実行中動作保持部230には、プログラム保存フォルダ内のファイルの操作及びダウンロード元サイトへのアクセスのみを含む動作が保持されている。
従って、種類が「ゲーム」のプログラムの実行中は、動作制約部251は、実行中動作保持部230を参照し、種類情報保持部122a,122bによって保持される種類情報の操作の要求や、秘密情報保持部131a,131bによって保持される秘密情報の操作の要求を拒否する。
尚、図2に示される動作保持部140では、種類情報保持部122a,122bに保持される種類情報の操作は、種類が「種類情報操作」又は「初期化」であるプログラムのみに認められ、秘密情報保持部131a,131bによって保持される秘密情報の操作は、種類が「秘密情報更新」又は「初期化」であるプログラムのみに認められる。又、種類が「初期化」のプログラムには、秘密情報保持部131a,131bによって秘密情報が保持されていない場合の秘密情報保持部131a,131bへの秘密情報の格納と、種類情報保持部122a,122bへの種類情報の格納と、検証情報保持部124a,124bへの電子署名又はMACの格納とが認められる。
プログラム取得部260は、外部装置からプログラムを取得する。又、プログラム取得部260は、当該プログラムの種類情報を、外部装置から取得する種類情報取得部としても機能する。更に、プログラム取得部260は、当該プログラムに係る電子署名又はMACを、外部装置から取得する検証情報取得部としても機能する。ここで、外部装置とは、プログラム実行装置100の他の装置であり、1つの装置であっても、複数の装置であってもよい。
具体的には、プログラム取得部260は、通信部150とネットワークとを介して、外部装置からプログラムと、種類情報と、電子署名又はMACとを取得する。プログラムと、種類情報と、電子署名又はMACとは、全て同じ装置から取得されてもよいし、異なる装置から取得されてもよい。
又、プログラム取得部260は、検証部210による検証結果が「成立」である場合に、取得したプログラムと種類情報とを格納するプログラム格納部としても機能する。
具体的には、プログラム取得部260は、取得した種類情報と、電子署名又はMACとを検証部210に入力する。プログラム取得部260は、検証部210から、検証結果を取得する。プログラム取得部260は、検証結果が「成立」であった場合に、取得したプログラムをプログラム保持部110に格納し、取得した電子署名又はMACを検証情報保持部124a又は検証情報保持部124bに格納する。
一方、プログラム取得部260は、プログラムを取得した際に、種類情報と電子署名又はMACとの少なくとも1つが取得できなかった場合には、取得したプログラムと電子署名又はMACとを格納しない。又、プログラム取得部260は、検証結果が「不成立」であった場合にも、取得したプログラムと、電子署名又はMACとを格納しない。
(プログラム実行方法)
次に、プログラム実行装置100を用いたプログラム実行方法の手順を図3〜図6を用いて説明する。まず、図3を用いて、秘密情報と、種類情報と、電子署名又はMACとが初期化される手順について説明する。プログラム実行管理部250が、プログラムから初期化要求を検出することによって、秘密情報等の初期化処理が開始される(S101)。
図2に示すように、実行中のプログラムの種類が「初期化」であれば、秘密情報が秘密情報保持部131a,131bのいずれにも保持されていない場合の秘密情報格納、即ち初期化は、プログラムに認められる動作に含まれる。このため、動作制約部251は、秘密情報保持部131a,131bを参照し、秘密情報が保持されているか否かを判断する(S102)。
ステップ(S102)において、秘密情報保持部131a,131bのいずれにも秘密情報が保持されていないと判断された場合には、初期化要求が、決定された、プログラムに認められる動作に含まれる動作を要求すると判断される。従って、この場合は、プログラムは秘密情報格納部170に初期化の指示を送ることによって秘密情報を生成する(S103)。
種類情報付与部180は、処理すべきプログラム、即ち、種類情報を付与すべきプログラムがプログラム保持部110に保持されているか否かを判断する(S104)。種類情報付与部180は、処理すべきプログラムがあると判断した場合、種類情報を取得し、種類情報保持部122a或いは種類情報保持部122bに格納することによって、プログラムに種類情報を付与する(S105)。
検証情報生成部190は、電子署名又はMACを格納するために十分な大きさの領域を確保できたか否かを判断する(S106)。検証情報生成部190は、電子署名又はMACを格納する領域を確保できた場合に、プログラム保持部110から取得したプログラムと、種類情報付与部180から取得した種類情報及び秘密情報とを用いて電子署名又はMACを生成する(S107)。検証情報生成部190は、生成した電子署名又はMACを、検証情報保持部124a,124bのいずれかに格納する(S108)。
その後、ステップ(S104)に戻り、種類情報付与部180が、他に処理すべきプログラムがあるか否か判断する。
ステップ(S104)において、種類情報付与部180によって他に処理すべきプログラムがないと判断された場合には、秘密情報格納部170は、秘密情報保持部131a、或いは、秘密情報保持部131bに、秘密情報を格納する(S109)。秘密情報等の初期化処理が正常終了する(S110)。
一方、ステップ(S102)において、秘密情報保持部131a,131bのいずれかに秘密情報が保持されていると判断された場合、及び、ステップ(S106)において、電子署名又はMACを格納するために十分な大きさの領域が確保できなかった場合には、秘密情報等の初期化処理は異常終了する(S111)。
次に、図4を用いて、ユーザからプログラムの実行要求があった場合に、プログラムを実行し、その動作を制約する手順について説明する。種類情報検出部200が、入力受付部160から実行しようとするプログラムのプログラム名を取得することによって、処理が開始される(S201)。
種類情報検出部200は、プログラム情報リスト120を参照して、種類情報を検出する(S202)。ステップ(S202)において、種類情報が検出できた場合は、検証部210は、プログラム情報リスト120から、電子署名又はMACを取得する(S203)。ステップ(S203)において、検証部210が、電子署名又はMACを取得できた場合には、検証部210は、プログラムと種類情報と電子署名又はMACと秘密情報又は秘密情報関連情報とを用いてプログラム及び種類情報を検証する(S204)。
ステップ(S204)において、プログラム及び種類情報の検証が成立した場合には、動作決定部220は、実行しようとするプログラムの種類に対応づけられる動作が動作保持部140に保持されているか否かを判断する(S205)。ステップ(S205)において、実行しようとするプログラムの種類に対応づけられる動作が動作保持部140に保持されていると判断された場合には、動作決定部220は、動作保持部140において、実行しようとするプログラムの種類に対応づけられる動作を、プログラムに認められる動作として決定する(S206)。
プログラム実行部240は、プログラム保持部110を参照し、実行しようとするプログラム名に応じたプログラムを実行する(S207)。動作制約部251が、実行中のプログラムの動作を制約する(S208)。プログラムを実行し、その動作を制約する処理は正常終了する(S209)。
一方、ステップ(S202)において、種類情報が検出されなかった場合と、ステップ(S203)において、電子署名又はMACが取得されなかった場合と、ステップ(S204)において、プログラム及び種類情報の検証が不成立であると判断された場合と、ステップ(S205)において、プログラムの種類に対応づけられる動作が動作保持部140に保持されていないと判断された場合とに、動作決定部220は、それぞれの場合について認められる動作があるか否かを判断する(S210)。ステップ(S210)において、認められる動作があると判断された場合には、動作決定部220は、当該動作を、実行しようとするプログラムに認められる動作として決定する(S211)。
一方、ステップ(S210)において、認められる動作がないと判断された場合には、動作決定部220は、空の動作を、実行しようとするプログラムの動作として決定する(S212)。プログラム実行部240は、プログラムの実行を拒否する(S213)。プログラムを実行してその動作を制約する処理は異常終了する(S214)。
次に、図5及び図6を用いて、図4のステップ(S208)におけるプログラムの動作の制約の例を説明する。図5を用いて、プログラムからの種類情報操作要求を処理する手順について説明する。プログラム実行管理部250が、種類情報操作要求を検出することによって、プログラムからの種類情報操作要求の処理が開始される(S301)。
動作制約部251は、実行中動作保持部230を参照して、種類情報操作要求が、プログラムに認められる動作に含まれる動作を要求するか否かを判断する(S302)。図2に示すように、実行中のプログラムの種類が「種類情報操作」であれば、種類情報の操作は、プログラムに認められる動作に含まれるため、種類情報操作要求が、決定された、プログラムに認められる動作に含まれる動作を要求すると判断される。従って、この場合は、プログラムは種類情報を付与又は更新する(S303)。このとき、プログラムは、図1に示される種類情報付与部180に、種類情報の付与又は更新等の種類情報の操作を指示してもよい。
実行中のプログラムは、電子署名又はMACを格納するために十分な大きさの領域を確保できたか否かを判断する(S304)。実行中のプログラムは、電子署名又はMACを格納する領域を確保できた場合に、プログラムと種類情報と秘密情報とを用いて電子署名又はMACを生成する(S305)。実行中のプログラムは、生成した電子署名又はMACを検証情報保持部124a,124bのいずれかに格納する(S306)。尚、実行中のプログラムは、ステップ(S304)〜ステップ(S306)を、検証情報生成部190に指示することによって行ってもよい。種類情報操作要求の処理が正常終了する(S307)。
一方、ステップ(S302)において、種類情報操作が、プログラムに認められる動作に含まれないと判断された場合には、動作制約部251によって種類情報操作要求は拒否される(S308)。プログラムからの種類情報操作要求の処理は異常終了する(S309)。
図6を用いて、プログラムからの秘密情報更新要求を処理する手順について説明する。プログラム実行管理部250が、秘密情報更新要求を検出することによって、プログラムからの種類情報操作要求の処理が開始される(S401)。
動作制約部251は、実行中動作保持部230を参照して、秘密情報更新要求が、プログラムに認められる動作に含まれる動作を要求するか否かを判断する(S402)。図2に示すように、実行中のプログラムの種類が「秘密情報更新」であれば、既に秘密情報が秘密情報保持部131a,131bのいずれかに保持されている場合の秘密情報の更新は、プログラムに認められる動作に含まれる。このため、動作制約部251は、秘密情報データベース130を参照し、既に秘密情報が秘密情報保持部131a,131bのいずれかに保持されているか否かを判断する(S403)。
ステップ(S403)において、秘密情報保持部131a,131bのいずれかにに秘密情報が保持されていると判断された場合には、秘密情報の更新は、プログラムに認められる動作に含まれる。従って、この場合は、プログラムは秘密情報を格納するために十分な大きさの領域を確保する(S404)。
ステップ(S404)において、秘密情報を格納する領域が確保された場合には、プログラムは、新たな秘密情報を生成する(S405)。プログラムは、新たな秘密情報に基づく電子署名又はMACが保持されていないプログラムがあるか否かを判断する(S406)。新たな秘密情報に基づく電子署名又はMACが保持されていないプログラムがあると判断された場合には、プログラムは、電子署名又はMACを格納するために十分な大きさの領域を確保できたか否かを判断する(S407)。プログラムは、電子署名又はMACを格納する領域を確保できた場合に、プログラム保持部110から取得したプログラムと、新たに生成した秘密情報と、プログラム情報リスト120内に保持されている種類情報とを用いて電子署名又はMACを生成する(S408)。プログラムは、生成した電子署名又はMACを、検証情報保持部124a,124bに格納する(S409)。その際、プログラムは、検証情報管理情報に基づいて、検証に用いられる電子署名又はMACを保持する第1の検証情報保持部と異なる検証情報保持部である第2の検証情報保持部に、新たな電子署名又はMACを格納する。例えば、検証情報管理情報が、検証情報保持部124aが検証に用いられる電子署名又はMACを保持することを示す場合は、プログラムは検証情報保持部124bに、新たな電子署名又はMACを格納する。その後、ステップ(S406)に戻り、プログラムは、他に処理すべきプログラムがあるか否か判断する。
ステップ(S406)において、他に処理すべきプログラムがないと判断された場合には、プログラムは、生成した秘密情報を秘密情報保持部131a,131bのいずれかに格納する(S410)。その際、プログラムは、秘密情報管理情報に基づいて、検証に用いられる電子署名又はMACと関連する秘密情報を保持する第1の秘密情報保持部と異なる秘密情報保持部である第2の秘密情報保持部に格納する。例えば、秘密情報管理情報が、秘密情報保持部131aが検証に用いられる電子署名又はMACと関連する秘密情報を保持すること示す場合は、プログラムは秘密情報保持部131bに、新たな秘密情報を格納する。
プログラムは、秘密情報管理情報保持部132によって保持される秘密情報管理情報が、格納された新たな秘密情報が、検証に用いられる電子署名又はMACと関連する秘密情報であることことを示すように、秘密情報管理情報を書き換える。又、プログラムは、検証情報管理情報保持部125によって保持される検証情報管理情報が、格納された新たな電子署名又はMACが検証に用いられることを示すように、検証情報管理情報を書き換える(S411)。秘密情報更新要求の処理は正常終了する(S412)。
尚、実行中のプログラムは、ステップ(S404)、ステップ(S405)、ステップ(S410)を秘密情報格納部170に指示することによって、ステップ(S406)〜ステップ(S409)を検証情報生成部190に指示することによって行ってもよい。
一方、ステップ(S402)及びステップ(S403)において、秘密情報更新は、実行中のプログラムに認められる動作に含まれないと判断された場合には、秘密情報更新要求は拒否される(S413)。秘密情報更新要求の処理は、異常終了する(S414)。又、ステップ(S407)において、電子署名又はMACを格納する領域が確保できなかった場合にも、秘密情報更新要求の処理は異常終了する(S415)。
上記プログラムは、秘密情報保持部131a,131bによって保持される秘密情報と、検証情報保持部124a,124bによって保持される電子署名又はMACとを更新する。
(効果)
このようなプログラム実行装置100及びプログラム実行方法によれば、プログラムの動作が、動作制約部251によって、プログラムの種類に応じて定められた、プログラムに認められる動作に制約される。そのため、プログラムの動作に適切な制約を与えることができる。
又、プログラムに認められる動作は、プログラムが実行される前に決定される。そのため、プログラムからの要求がある度に、要求を受け入れるか否かを判断するより確実に、プログラムの動作に制約を与えることができる。
特に、動作保持部140がプログラムの種類と動作とを対応づけて保持するため、プログラムの種類と、動作決定部220によって決定される動作とが明確に対応づけられる。
又、実行しようとするプログラムの種類が判断できない場合、若しくは、プログラムの種類に対応づけられる動作が動作保持部140によって保持されていない場合等、動作決定部220が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合には、当該プログラムの動作は所定の動作に制約される。そのため、信頼度が低いプログラムの動作を大幅に制約することができる。
更には、プログラム情報リスト120によって保持される種類情報情報の格納、更新、削除等の操作は、種類が「種類情報操作」又は「初期化」である特定のプログラムのみに認められる。このように、種類情報を操作できるプログラムを少数のプログラムに限定することによって、当該少数のプログラムの信頼性を吟味することが可能になる。そのため、プログラムに認められる動作を決定する根拠となる種類情報が不当に設定される危険、即ち、種類情報が改竄される可能性を抑制することができる。
又、秘密情報保持部131a,131bによって保持される秘密情報の格納、更新、削除等の操作は種類が「秘密情報更新」又は、「初期化」である特定のプログラムのみに認められる。そのため、プログラム及び種類情報を検証するために用いられる電子署名又はMACと関連する秘密情報が不当に設定される危険や、秘密漏洩の可能性を抑制しつつ、秘密情報を更新することができる。尚、秘密情報の更新は、秘密情報を取得しようとする攻撃を回避するために、好ましい。
更には、検証情報保持部124a,124bによって保持される電子署名又はMACの格納、更新、削除等の操作は、種類が「秘密情報更新」又は「種類情報操作」又は「初期化」である特定のプログラムのみに認められる。そのため、プログラム及び種類情報を検証するために用いられる電子署名又はMACが不当に設定され、又は変更される危険性を抑制することができる。
更には、検証部210によって、プログラム及び種類情報が検証される。そのため、プログラム或いは種類情報の少なくとも1つが改竄された場合に、プログラム或いは種類情報の少なくとも1つが改竄されたことを検出することができる。従って、検証部210は、プログラムと種類情報との対応が正しいか否かを判断することができる。又、プログラム及び種類情報の検証が成立しなかった場合には、プログラムは実行されない。このため、プログラム又は種類情報の少なくとも1つを書き換えることによって、プログラムの動作及びプログラムに認められる動作を変更しようとする攻撃を回避できる。
更には、秘密情報保持部131a,131bのいずれにも秘密情報が保持されていない場合に、動作制約部251によって、プログラムに、秘密情報保持部131a,131bへの秘密情報の格納と、種類情報保持部122a,122bへの種類情報の格納と、検証情報保持部124a,124bへの電子署名又はMACの格納とが認められる。そのため、秘密情報が保持されていない場合に、秘密情報と、種類情報と、電子署名又はMACとが初期化される。即ち、プログラム実行装置100の初期状態において、一度だけ、秘密情報の初期化が認められる。
このため、出荷前において、或いは、プログラム実行装置100を入手した利用者によって初期化が行われれば、秘密情報が不当に書き換えられ、又、入手される機会を抑制することができる。
又、外部装置から取得されるプログラムは、検証部210による、当該プログラム及び種類情報の検証が成立した場合に、プログラム取得部260によって、プログラム保持部110に格納される。そのため、プログラム又は種類情報の少なくとも1つが改竄されたおそれのあるプログラムをプログラム実行装置100内に保持する危険性を抑制することができる。
更には、種類情報付与部180は、ユーザに指示された種類情報をプログラム情報リスト120に格納し、動作決定部220は、プログラム情報リスト120によって保持されている種類情報に基づいて、プログラムに認められるの動作を決定する。そのため、ユーザが、プログラムに付与すべき種類情報を一度だけ判断することによって、その後は、プログラムの動作が自動的に制約される。従って、プログラムに付与すべき種類情報の吟味を誤る危険性を抑制することができる。尚、ユーザは、プログラムに種類情報を付与する際、当該プログラムの動作を制約すべきかどうか、又、制約する場合はどのように制約すべきかを判断し、その判断結果に基づいてプログラムに種類情報を付与することが好ましい。
又、動作保持部140は、図2に示すようにプログラムの種類に対応づけられる動作を保持する。例えば、種類が「ゲーム」であるプログラムには、プログラム保存フォルダ内のファイルの操作と、ダウンロード元サイトへのアクセスのみが認められる。そのため、ダウンロードしてきたゲームのプログラムは当該ゲームのプログラムによって生成されたデータにはアクセスできるが、アドレス帳ファイル等に保存されているユーザの個人情報、即ち、プライバシー情報にはアクセスできない。従って、当該ゲームのプログラムがプライバシー情報を漏洩する危険性を抑制できる。
又、例えば、種類が「メール送受信」や「住所録管理」であるプログラムにのみ、アドレス帳、住所録、メール等の個人情報へのアクセスが認められるため、個人情報が漏洩する危険性を抑制することができる。或いは、種類が「システム情報設定」であるプログラムにのみ、システム情報の更新が認められる。このため、種類が「システム情報設定」であるプログラムの信頼性を十分に吟味することによって、悪意のあるプログラムにプログラム実行装置100の制御が奪われる危険性を抑制することができる。
このように、プログラムを分類し、信頼度が低いプログラムの動作を大幅に制約することができるため、プログラム実行装置100の安全性及び信頼性を確保しつつ、プログラムを自由に取得して実行することができる。又、例えば、ネットワークへのアクセスと、システム情報の設定とを同一種類のプログラムに認めなければ、外部装置からの侵入を受けた場合であっても、システム情報が変更される危険を抑制することができる。
又、上記実施の形態においては、種類情報保持部と、検証情報保持部と、秘密情報保持部とが、2つずつ備えられている。更に、種類情報管理情報と、検証情報管理情報とが、いずれの種類情報保持部、又は、検証情報保持部に保持される情報が検証に用いられる情報であるかを示す。又、秘密情報管理情報が、いずれの秘密情報保持部に保持される秘密情報が、検証に用いられる電子署名又はMACと関連する秘密情報であるかを示す。又、種類情報又は電子署名又はMAC又は秘密情報の少なくとも1つを更新するプログラムは、新たな種類情報を検証に用いられる種類情報を保持する第1の種類情報保持部と異なる種類情報保持部である第2の種類情報保持部に格納し、新たな電子署名又はMACを検証に用いられる電子署名又はMACを保持する第1の検証情報保持部と異なる検証情報保持部である第2の検証情報保持部に格納し、新たな秘密情報を、検証に用いられる電子署名又はMACと関連する秘密情報を保持する第1の秘密情報保持部と異なる秘密情報保持部である第2の秘密情報保持部に格納する。従って、種類情報又は電子署名又はMAC又は秘密情報の少なくとも1つが更新される際に、検証部210が検証している場合であっても、検証に用いられている電子署名又はMACと、当該電子署名又はMACとに関連する秘密情報と、種類情報とは変更されない。このため、検証部210による検証の処理は影響を受けない。
又、種類情報管理情報と、検証情報管理情報と、秘密情報管理情報とは、更新の処理が行われた後に書き換られる。即ち、種類情報、電子署名又はMAC、秘密情報のそれぞれの世代が管理される。従って、例えば、種類情報、電子署名又はMAC、秘密情報のいずれかが、不当に更新された場合であっても、検証部210は、更新される前の種類情報と電子署名又はMACと秘密情報又は当該秘密情報に関連する秘密情報関連情報とを用いて、プログラム及び種類情報を検証することができる。或いは、検証情報生成部190によって、新たな秘密情報に基づく電子署名又はMACが検証情報保持部124a,124bに格納された後、秘密情報格納部170によって、新たな秘密情報が秘密情報保持部131a,131bに格納される前に、システムトラブルがあった場合でも、検証部210は、検証情報管理情報に基づいて取得した電子署名又はMACと秘密情報管理情報に基づいて取得した秘密情報又は秘密情報関連情報とを用いて検証することが可能である。
(変更例)
尚、本発明は上記実施の形態に限定されるものではなく種々の変更が可能である。例えば、上記実施の形態においては、プログラムの所有者の権限については判断していないが、プログラムを実行する前に、或いは、プログラムからの要求が検出された際に、プログラムの所有者の権限についても判断してもよい。プログラムからの要求が検出された際に、プログラムの所有者の権限について判断した上で、プログラムからの要求を処理する手順を図7に示す。
プログラムからの要求が検出されることによって、処理が開始される(S501)。要求されている動作が、プログラムの所有者に認められる動作か否かが判断される(S502)。プログラムの所有者に認められる動作であれば、図5又は図6に示すのと同様の手順で、プログラムの動作が制約される(S503)。プログラムからの要求の処理が正常終了する(S504)。一方、ステップ(S502)において、検出された要求が所有者に認められない動作であれば、当該処理は異常終了する(S505)。これによれば、更に適切に、プログラムの動作を制約することができる。
又、秘密情報は、外部装置から取得されてもよい。この場合、秘密情報格納部170は、通信部150を介して外部装置から秘密情報を取得して、秘密情報保持部131a,131bに格納する。或いは、検証部210が、通信部150を介して外部装置から取得した秘密情報を用いてプログラム及び種類情報を検証してもよい。
或いは、上記実施の形態においては、秘密情報関連情報は、外部装置から取得することとしているが、プログラム実行装置100内に保持されてもよい。
又、秘密情報関連情報が、プログラム実行装置100内に保持されている場合には、秘密情報が更新された際に秘密情報関連情報が必要に応じて更新される。必要に応じて更新される、とは、保持されている秘密情報関連情報が検証に用いられている場合には更新され、用いられていない場合には更新されないことを意味する。
更には、上記実施の形態においては、検証部210は、プログラム及び種類情報を検証するが、プログラム又は種類情報を検証してもよい。
これによれば、検証部210によって、プログラム又は種類情報のいずれかが検証される。そのため、プログラムが改竄された場合又は種類情報が改竄された場合に、改竄されたことを検出することができる。又、プログラム又は種類情報の検証が成立しなかった場合には、当該プログラムの動作は大幅に制約されるか、若しくは、当該プログラムは実行されない。従って、プログラム又は種類情報を書き換えて、本来認められない動作をさせる攻撃による危険性を抑制することができる。尚、この場合、検証部210は、プログラム又は種類情報と、電子署名又はMACと、秘密情報関連情報又は秘密情報とを用いて、プログラムを検証する。
或いは、上記実施の形態では、プログラムの種類情報及びその検証に用いられる電子署名又はMACは、プログラム情報リスト120内に保持される。しかし、種類情報及びその検証に用いられる電子署名又はMACは、プログラム自体のプログラム名、プログラムの記憶装置上の場所(例えば、フォルダ名)、プログラムのID、ファイルシステムが持つファイル管理情報、又は、これらの一部を種類情報又は電子署名又はMACとすることによって保持され得る。尚、この場合、プログラム名又はその一部を種類情報とすること、フォルダ名又はその一部が種類情報であるフォルダにプログラムを格納すること、或いは、プログラムのID又はその一部を種類情報とすることによって、ファイルシステムが持つファイル管理情報を種類情報に設定することによって、種類情報がプログラムに付与される。
更には、種類情報や電子署名又はMACは、プログラムのプログラム名、プログラムの記憶装置上の場所、プログラムのID、プログラム自体、又は、これらの一部のハッシュ値等を用いて検索できるデータベース内に保持されていてもよい。
これによれば、プログラム実行装置100内に多数のプログラムが保持されている場合でも、容易にプログラムの種類情報や電子署名又はMACを検索することができる。
又、種類情報と電子署名又はMACとはプログラム実行装置100内に保持されていなくてもよい。この場合、種類情報検出部200や検証部210は、例えば、プログラムのプログラム名、プログラムの記憶装置上の場所、プログラムのID、プログラム自体、又は、これらの一部のハッシュ値等を、通信部150を介して外部装置に送信し、応答として種類情報や電子署名又はMACを取得する。
或いは、上記実施の形態においては、秘密情報は、秘密情報データベース130内に保持されているが、特定のファイルとして保持されていてもよいし、特定のプログラムファイルの一部として保持されていてもよいし、ハードウェア等の記録媒体の特定の領域に記憶することによって保持されていてもよい。
又は、上記実施の形態においては、種類情報、電子署名又はMAC、秘密情報のそれぞれについて、2つずつ格納する領域が備えられている。しかし、種類情報、電子署名又はMAC、秘密情報のそれぞれ1つを格納する領域が備えられていてもよい。これによれば、ハードディスクや不揮発メモリ等を節約できる。
更には、上記実施の形態においては、実行中動作保持部230は、1つのプログラムに対して認められる動作のみを保持する。しかし、プログラム実行装置100上で、同時に複数のプログラムが動作できる場合には、実行中動作保持部230は、同時に動作する複数のプログラムのそれぞれに認められる動作を保持してもよい。これによれば、同時に動作する複数のプログラムに適切な制約を与えることができる。
或いは、上記実施の形態においては、種類情報付与部180は、入力受付部160からユーザに指示された種類情報を取得するが、種類情報付与部180が決定した種類情報を付与してもよい。
又、プログラムは種々な方法で分類することができる。上記実施の形態とにおいては、プログラムの機能によって分類していたが、例えば、プログラムの入手の経路によって分割することができる。この場合、プログラムは、例えば、プログラム実行装置100内に元からあるプログラム、プログラム実行装置100のユーザが制作したプログラム、ネットワークを介して取得、即ちダウンロードしたプログラム等の種類に分類される。これによれば、ネットワークを介して取得したプログラムの信頼性が低い場合であっても、ダウンロードしたプログラムによる危険性を抑制できる
或いは、動作保持部140は、動作として、アクセスできるファイルの情報と、当該ファイルに対するアクセス方法を保持してもよい。ここで、ファイルに対するアクセス方法とは、例えば、書込と読込である。
更には、上記実施の形態においては、プログラム取得部260は、種類情報と電子署名又はMACとの少なくとも1つが取得できなかった場合や、検証部210による検証結果が「不成立」であった場合には、取得したプログラムと電子署名又はMACとを格納しない。しかし、又、プログラム取得部260は、このような場合であっても、取得したプログラムと、電子署名又はMACとを格納してもよい。これによれば、信頼性が低いプログラムであっても、動作を大幅に制約して動作させたり、ユーザの指示に応じて動作させたりすることができる。
又、上記実施の形態においては、種類情報検出部200が種類情報の検出に失敗した場合、或いは、動作保持部140にプログラムの種類と対応づけられる動作が保持されていない場合に、動作決定部220は、空の動作をプログラムに認められるの動作として決定し、プログラム実行部240は、プログラムの実行を拒否してもよい。これによれば、動作決定部220が、種類情報によって示される種類に応じて、プログラムに認められる動作を決定できなかった場合には、当該プログラムは実行されない。
或いは、検証部210による、プログラム及び種類情報の検証が成立しなかった場合に、動作決定部220は、所定の動作を当該プログラムに認められる動作として決定してもよい。これによれば、検証部210による検証結果が「不成立」であった場合には、当該プログラムの動作を大幅に制約することができる。
更に、検証部210は、検証情報として、電子署名又はMACでなくハッシュ値を用いてもよい。この場合、検証部210は、プログラム実行装置100内に保持されるハッシュ関数、又は、外部装置から取得したハッシュ関数を用いて、プログラム及び種類情報をハッシュ化する。検証部210は、ハッシュ化によって得られた値と、検証情報であるハッシュ値とを比較し、一致すれば検証結果を「成立」とし、一致しなければ検証結果を「不成立」とする。即ち、検証部210は、検証情報としてハッシュ値を用い、秘密情報を用いない。
又、検証情報としてハッシュ値が用いられる場合には、検証情報生成部190は、プログラム実行装置100内に保持されるハッシュ関数、又は、外部装置から取得したハッシュ関数を用いて、プログラム及び種類情報をハッシュ化することによってハッシュ値を生成する。即ち、検証情報生成部190による検証情報の生成にも秘密情報が用いられない。従って、プログラム実行装置100は、秘密情報保持部131a,131b、秘密情報管理情報保持部132を含む秘密情報データベース130を備えない。
本発明の実施の形態に係るプログラム実行装置の構成を示すブロック図である。 本発明の実施の形態に係る動作保持部を示す図である。 本発明の実施の形態に係る秘密情報と、種類情報と、電子署名又はMACとが初期化される手順を示すフローチャートである。 本発明の実施の形態に係るユーザからプログラムの実行要求があった場合に、プログラムを実行し、その動作を制約する手順を示すフローチャートである。 本発明の実施の形態に係るプログラムからの種類情報操作要求を処理する手順について説明するフローチャートである。 本発明の実施の形態に係るプログラムからの秘密情報更新要求を処理する手順を示すフローチャートである。 本発明の変更例に係るプログラムからの要求を処理する手順を示すフローチャートである。
符号の説明
100…プログラム実行装置
110…プログラム保持部
120…プログラム情報リスト
121…プログラム名保持部
122a,122b…種類情報保持部
123…種類情報管理情報保持部
124a,124b…検証情報保持部
125…検証情報管理情報保持部
130…秘密情報データベース
131a,131b…秘密情報保持部
132…秘密情報管理情報保持部
140…動作保持部
150…通信部
160…入力受付部
170…秘密情報格納部
180…種類情報付与部
190…検証情報生成部
200…種類情報検出部
210…検証部
220…動作決定部
230…実行中動作保持部
240…プログラム実行部
250…プログラム実行管理部
251…動作制約部
260…プログラム取得部

Claims (14)

  1. プログラムの種類を示す種類情報を検出する種類情報検出部と、
    前記種類情報によって示される前記種類に応じて、前記プログラムに認められる動作を決定する動作決定部と、
    前記プログラムを実行するプログラム実行部と、
    実行中である前記プログラムの動作を、前記プログラムに認められる前記動作に制約する動作制約部と
    を備えることを特徴とするプログラム実行装置。
  2. 前記プログラムの前記種類と前記動作とを対応づけて保持する動作保持部を備え、
    前記動作決定部は、前記動作保持部において、前記プログラムの前記種類と対応づけられる前記動作を、前記プログラムに認められる前記動作として決定することを特徴とする請求項1に記載のプログラム実行装置。
  3. 前記動作決定部は、前記種類情報によって示される前記種類に応じて、前記プログラムに認められる前記動作を決定できなかった場合に、所定の動作を前記プログラムに認められる前記動作として決定するか、或いは、前記プログラム実行部に、前記プログラムの実行を拒否させることを特徴とする請求項2に記載のプログラム実行装置。
  4. 前記種類情報を保持する種類情報保持部を備え、
    前記動作制約部は、前記動作決定部によって決定された前記プログラムに認められる前記動作に基づいて、前記種類情報保持部によって保持される前記種類情報の操作を制約することを特徴とする請求項1乃至3のいずれか1項に記載のプログラム実行装置。
  5. 前記プログラム及び前記種類情報の検証に用いられる検証情報を保持する検証情報保持部と、
    該検証情報保持部によって保持される前記検証情報を用いて前記プログラム及び前記種類情報を検証する検証部と
    を備えることを特徴とする請求項1乃至4のいずれか1項に記載のプログラム実行装置。
  6. 前記動作制約部は、前記動作決定部によって決定された、前記プログラムに認められる前記動作に基づいて、前記検証情報保持部によって保持される前記検証情報の操作を制約することを特徴とする請求項5に記載のプログラム実行装置。
  7. 前記動作決定部は、前記検証部による検証結果が不成立である場合に、所定の動作を前記プログラムに認められる前記動作として決定するか、或いは、前記プログラム実行部に、前記プログラムの実行を拒否させることを特徴とする請求項5又は6に記載のプログラム実行装置。
  8. 秘密情報を用いて電子署名又はMACを生成する生成部を備え、
    前記検証部は、前記検証情報として前記電子署名又は前記MACを用いて検証することを特徴とする請求項5乃至7のいずれか1項に記載のプログラム実行装置。
  9. 前記秘密情報を保持する秘密情報保持部を備え、
    前記動作制約部は、前記秘密情報保持部によって、前記秘密情報が保持されていない場合に限り、プログラムによる、前記秘密情報保持部に対する前記秘密情報の格納操作を受け入れることを特徴とする請求項8に記載のプログラム実行装置。
  10. 前記秘密情報を保持する秘密情報保持部を備え、
    前記動作制約部は、前記動作決定部によって決定された、前記プログラムに認められる前記動作に基づいて、前記秘密情報保持部によって保持される前記秘密情報の操作を制約することを特徴とする請求項8に記載のプログラム実行装置。
  11. 複数の前記秘密情報保持部と、
    前記プログラム毎に複数の前記検証情報保持部とを備え、
    前記複数の秘密情報保持部の1つである第1の秘密情報保持部は、前記検証部によって用いられる前記電子署名又は前記MACと関連する前記秘密情報を保持し、
    前記複数の検証情報保持部の1つである第1の検証情報保持部は、前記検証部による検証に用いられる前記電子署名又は前記MACを保持し、
    前記秘密情報と前記電子署名又は前記MACとを更新するプログラムは、新たな秘密情報を、前記第1の秘密情報保持部と異なる前記秘密情報保持部である第2の秘密情報保持部に格納し、前記第2の秘密情報保持部によって保持される前記秘密情報を用いて、前記電子署名又は前記MACを生成し、前記第1の検証情報保持部と異なる前記検証情報保持部である第2の検証情報保持部に、生成した前記電子署名又は前記MACを格納し、前記複数の秘密情報保持部のいずれが前記第1の秘密情報保持部であるかを示す秘密情報管理情報を書き換え、前記複数の検証情報保持部のいずれが前記第1の検証情報保持部であるかを示す検証情報管理情報を書き換える
    ことを特徴とする請求項9又は10に記載のプログラム実行装置。
  12. 外部装置から前記プログラムを取得するプログラム取得部と、
    取得された前記プログラムの前記種類情報を、前記外部装置から取得する種類情報取得部と、
    取得された前記プログラム及び前記種類情報の検証に用いられる前記検証情報を、前記外部装置から取得する検証情報取得部と、
    前記検証部による検証が成立する場合に、取得された前記プログラムと前記種類情報とを格納するプログラム格納部と
    を備えることを特徴とする請求項5乃至11のいずれか1項に記載のプログラム実行装置。
  13. 前記検証部は、検証情報としてハッシュ値を用い、秘密情報を用いないことを特徴とする請求項5乃至7のいずれか1項に記載のプログラム実行装置。
  14. プログラムの種類を示す種類情報を検出し、
    前記種類情報によって示される前記種類に応じて、前記プログラムに認められる動作を決定し、
    前記プログラムを実行し、
    実行中である前記プログラムの動作を、決定された前記プログラムに認められる前記動作に制約することを特徴とするプログラム実行方法。


JP2004271925A 2004-09-17 2004-09-17 プログラム実行装置及びプログラム実行方法 Pending JP2006085598A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004271925A JP2006085598A (ja) 2004-09-17 2004-09-17 プログラム実行装置及びプログラム実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004271925A JP2006085598A (ja) 2004-09-17 2004-09-17 プログラム実行装置及びプログラム実行方法

Publications (1)

Publication Number Publication Date
JP2006085598A true JP2006085598A (ja) 2006-03-30

Family

ID=36164030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004271925A Pending JP2006085598A (ja) 2004-09-17 2004-09-17 プログラム実行装置及びプログラム実行方法

Country Status (1)

Country Link
JP (1) JP2006085598A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217433A (ja) * 2008-03-10 2009-09-24 Fuji Xerox Co Ltd ファイル管理プログラム及びファイル管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217433A (ja) * 2008-03-10 2009-09-24 Fuji Xerox Co Ltd ファイル管理プログラム及びファイル管理装置

Similar Documents

Publication Publication Date Title
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
KR101247022B1 (ko) 실행가능 파일의 신뢰를 검증하는 시스템 및 방법
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
US8046592B2 (en) Method and apparatus for securing the privacy of sensitive information in a data-handling system
KR101548041B1 (ko) 네트워크와의 통신을 위한 장치의 검증 및/또는 인증
JP4064914B2 (ja) 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
JP5270694B2 (ja) 機密ファイルを保護するためのクライアント・コンピュータ、及びそのサーバ・コンピュータ、並びにその方法及びコンピュータ・プログラム
Mohamed et al. Android vs iOS security: A comparative study
US9607156B2 (en) System and method for patching a device through exploitation
JP4796050B2 (ja) セキュア処理装置、及びセキュア処理システム
US10873588B2 (en) System, method, and apparatus for computer security
US20190121959A1 (en) System, Method, and Apparatus for Computer Security
US20170201528A1 (en) Method for providing trusted service based on secure area and apparatus using the same
US11487868B2 (en) System, method, and apparatus for computer security
WO2017021683A1 (en) Controlling configuration data storage
US9665711B1 (en) Managing and classifying states
EP1262859A2 (en) Information processing apparatus and method for executing software input from outside
JP2012008732A (ja) インストール制御装置およびプログラム
JP4526383B2 (ja) 実行可能なコードを格納するタンパーエビデントな取り外し可能な媒体
RU2750628C2 (ru) Система и способ определения уровня доверия файла
GB2540965A (en) Secure configuration data storage
JP2006085598A (ja) プログラム実行装置及びプログラム実行方法
WO2019235450A1 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム
JP5126495B2 (ja) 安全度評価と連動するセキュリティの方針設定装置、そのプログラムおよびその方法
JP2019008568A (ja) ホワイトリスト管理システムおよびホワイトリスト管理方法