(57)【要約】【課題】外部にあるプログラムを実行する場合に、その外部にあるプログラムの挙動を制御することによって、悪意ある第三者の攻撃によって生じる被害を少なくすることができるようにした情報処理装置を提供する。【解決手段】第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、禁止制御手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する。【選択図】図１
2010092376.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する禁止制御手段
を具備することを特徴とする情報処理装置。
【請求項２】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可する許可手段
を具備することを特徴とする情報処理装置。
【請求項３】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、
手続き毎に実行可否の規則を記憶している記憶手段と、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てる実行権限割当手段
を具備することを特徴とする情報処理装置。
【請求項４】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てる実行権限割当手段
を具備することを特徴とする情報処理装置。
【請求項５】
前記判断手段は、前記第１のプログラムを実行する前に又は前記第１のプログラムを実行しているときに、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記請求項１から４に記載の情報処理装置のうち、複数の該情報処理装置を備えており、
前記複数の情報処理装置のうち、いずれか１つの情報処理装置を選択する選択手段と、
前記選択手段によって選択された情報処理装置による処理を行わせるように制御する制御手段
を具備することを特徴とする情報処理装置。
【請求項７】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、
禁止制御手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する
ことを特徴とする情報処理方法。
【請求項８】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、
許可手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可する
ことを特徴とする情報処理方法。
【請求項９】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、
前記情報処理装置は、
手続き毎に実行可否の規則を記憶している記憶手段
を具備し、
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断すると、
実行権限割当手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てる
ことを特徴とする情報処理方法。
【請求項１０】
第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、
実行権限割当手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てる
ことを特徴とする情報処理方法。
【請求項１１】
コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、
前記コンピュータを、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する禁止制御手段
として機能させることを特徴とする情報処理プログラム。
【請求項１２】
コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、
前記コンピュータを、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可する許可手段
として機能させることを特徴とする情報処理プログラム。
【請求項１３】
コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、
前記コンピュータを、
手続き毎に実行可否の規則を記憶している記憶手段と、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てる実行権限割当手段
として機能させることを特徴とする情報処理プログラム。
【請求項１４】
コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、
前記コンピュータを、
前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、
前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てる実行権限割当手段
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
端末装置で動作するプログラムとして、その端末装置内の記憶装置に記憶されている（ローカルにインストールともいう）ものと、通信回線（有線、無線を問わない）を介して接続されているサーバ等の他の情報処理装置から、そのプログラムを必要とするときにインストールするものとがある。
例えば、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋ‐ｕｐ  Ｌａｎｇｕａｇｅ）、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等のＷｅｂ記述言語による表現とＪａｖａＳｃｒｉｐｔ（登録商標）によるプログラム実行が可能なＷｉｄｇｅｔは、端末装置のローカルにインストールされたプログラムと、そのＷｉｄｇｅｔから通信回線を経由して呼び出される外部のサーバ等におかれたプログラムが存在する。なお、端末装置内のプログラムからの呼び出しとして、Ｗｅｂ記述言語からの呼び出し、ＪａｖａＳｃｒｉｐｔからの呼び出し等がある。
例えば、Ｗｉｄｇｅｔ内の外部プログラムを呼び出す記述として、
<Script Language=“JavaScript1.2” src=“http://aaa.bbb.ccc/dd.js”>
や、スクリプトからスクリプトを呼び出す記述として、
xmlhttp.open=(“post”,”http://aaa.bbb.ccc/dd.js”)
がある。
【０００３】
Ｗｉｄｇｅｔにドメイン・セキュリティ・モデルを適用し、セキュリティドメイン毎にメソッドの利用可否が割り当てられている場合では、そのＷｉｄｇｅｔから呼び出される外部におかれたＪａｖａＳｃｒｉｐｔは通常、起動したＷｉｄｇｅｔのセキュリティと同一のドメイン内で動作する。
例えば、図１７の例に示すように、端末装置１７１０は、Ｗｅｂサーバ１７５０とインターネット１７９０を介して接続されている。そして、端末装置１７１０内にはＡドメイン１７２０、Ｂドメイン１７３０があり、Ｂドメイン１７３０内ではＷｉｄｇｅｔ１７３１が動作する。Ｗｉｄｇｅｔ１７３１がＷｅｂサーバ１７５０内のＪａｖａＳｃｒｉｐｔ１７３２を呼び出すと、そのＪａｖａＳｃｒｉｐｔ１７３２はＢドメイン１７３０内で動作する。つまり、ＪａｖａＳｃｒｉｐｔ１７３２はＷｉｄｇｅｔ１７３１と同じセキュリティレベル（Ｂドメイン１７３０のセキュリティレベル）で動作する。
【０００４】
通信回線を経由して呼び出される外部のサーバ等におかれたプログラムには、次のリスクがある。
（Ａ１）Ｍａｎ−ｉｎ−ｔｈｅ−Ｍｉｄｌｅ  ａｔｔａｃｋ（通信経路におけるＪａｖａＳｃｒｉｐｔの差し替え）
（Ａ２）Ｗｅｂの改ざんによるＪａｖａＳｃｒｉｐｔの差し替え
例えば、図１８の例に示すように、前記（Ａ１）によってクラック１８０１が発生し、インターネット１７９０内の通信途中でＪａｖａＳｃｒｉｐｔ１７３２が差し替えられてしまうこと、前記（Ａ２）によってクラック１８０２が発生し、Ｗｅｂサーバ１７５０内でＪａｖａＳｃｒｉｐｔ１７３２が差し替えられてしまうことがあり得る。
この場合、悪意あるプログラムである差し替えられたＪａｖａＳｃｒｉｐｔ１７３２が、Ｂドメイン１７３０の権限で実行できてしまう。例えば、Ｂドメイン１７３０以外では実行できない、端末装置１７１０から個人情報を取得する機能を実行させ、攻撃者のサイトに送付するということが可能になってしまう。
【０００５】
これに関連する技術として、例えば、特許文献１には、従来のアプリケーション保護技術では、ダウンロード前後のアプリケーションのハッシュ値を比較することで、ダウンロード時にアプリケーションが改ざんされていないことを保証していたが、しかしこの方法では実行時の改ざんに対抗できないため、実行中の仮想マシンが改ざんされた場合にはアプリケーションを保護することができないということを課題とし、プラットフォームに依存しない中間言語で表現されたプログラムを、プラットフォームに依存した命令へ変換しながら動作する仮想マシンの改ざんを検査する方法であって、第三者による盗聴、改ざんを防止する耐タンパ実行部で実行される仮想マシンローダにより仮想マシンをロードするステップと、ロードされた仮想マシンのアドレス領域を、前記耐タンパ実行部で実行される改ざん検査部に通知するステップと、前記改ざん検査部により、前記仮想マシンのアドレス領域が改ざんされたか否かを、所定のタイミングで判定するステップと、判定の結果、前記仮想マシンが改ざんされていると判定された場合には、前記改ざん検査部は前記仮想マシンの実行を停止させるステップとを含む、仮想マシン改ざん検査方法が開示されている。
【０００６】
また、ドメイン毎にプログラムの実施権限を変更する実装例としては、携帯端末用Ｊａｖａがある。その仕様は非特許文献１に規定されている。
また、Ｓｙｍｂｉａｎ  ＯＳ  ｖ９からネイティブ・アプリケーションで同様のドメイン・セキュリティ・モデルが採用されている（非特許文献２参考）。
また、ＯＭＴＰには、このようなセキュリティ・モデルの一般的な枠組みが存在する（非特許文献３参考）。
【特許文献１】特開２００７−２２６２７７号公報
【非特許文献１】ＪＳＲ１１８  ＭＩＤＰ２（Ｍｏｂｉｌｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄｅｖｉｃｅ  Ｐｒｏｆｉｌｅ  ｖｅｒｓｉｏｎ  ２）、［平成２０年８月２６日検索］、インターネット＜ＵＲＬ：http://jcp.org/aboutJava/communityprocess/final/jsr118/＞
【非特許文献２】［平成２０年８月２６日検索］、インターネット＜ＵＲＬ：http://www.forum.nokia.com/main/platforms/s60/documents.html＞
【非特許文献３】ＯＭＴＰ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｆｒａｍｅｗｏｒｋ、［平成２０年８月２６日検索］、インターネット＜ＵＲＬ：http://www.omtp.org/Publications.aspx＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、外部のサーバ等におかれたプログラムを取得し、実行する場合に、内部にあるプログラムの実行ポリシと外部のサーバ等におかれたプログラムの実行ポリシをそれぞれ設定し、外部と内部とも異なる実行権限を実現させた技術はなかった。
本発明は、このような従来の技術が有する問題点に着目してなされたもので、外部にあるプログラムを実行する場合に、その外部にあるプログラムの挙動を制御することによって、悪意ある第三者の攻撃によって生じる被害を少なくすることができるようにした情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
［１］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する禁止制御手段を具備することを特徴とする情報処理装置。
【０００９】
［２］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可する許可手段を具備することを特徴とする情報処理装置。
【００１０】
［３］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、手続き毎に実行可否の規則を記憶している記憶手段と、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てる実行権限割当手段を具備することを特徴とする情報処理装置。
【００１１】
［４］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置であって、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てる実行権限割当手段を具備することを特徴とする情報処理装置。
【００１２】
［５］  前記判断手段は、前記第１のプログラムを実行する前に又は前記第１のプログラムを実行しているときに、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断することを特徴とする［１］から［４］のいずれか一項に記載の情報処理装置。
【００１３】
［６］  前記［１］から［４］に記載の情報処理装置のうち、複数の該情報処理装置を備えており、前記複数の情報処理装置のうち、いずれか１つの情報処理装置を選択する選択手段と、前記選択手段によって選択された情報処理装置による処理を行わせるように制御する制御手段を具備することを特徴とする情報処理装置。
【００１４】
［７］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、禁止制御手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御することを特徴とする情報処理方法。
【００１５】
［８］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、許可手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可することを特徴とする情報処理方法。
【００１６】
［９］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、前記情報処理装置は、手続き毎に実行可否の規則を記憶している記憶手段を具備し、判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断すると、実行権限割当手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てることを特徴とする情報処理方法。
【００１７】
［１０］  第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置が行う情報処理方法であって、判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、実行権限割当手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てることを特徴とする情報処理方法。
【００１８】
［１１］  コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、前記コンピュータを、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する禁止制御手段として機能させることを特徴とする情報処理プログラム。
【００１９】
［１２］  コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、前記コンピュータを、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可する許可手段として機能させることを特徴とする情報処理プログラム。
【００２０】
［１３］  コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、前記コンピュータを、手続き毎に実行可否の規則を記憶している記憶手段と、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てる実行権限割当手段として機能させることを特徴とする情報処理プログラム。
【００２１】
［１４］  コンピュータを、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムを実行し得る情報処理装置として機能させるための情報処理プログラムであって、前記コンピュータを、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断する判断手段と、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てる実行権限割当手段として機能させることを特徴とする情報処理プログラム。
【００２２】
前記本発明は次のように作用する。
本発明における情報処理装置、情報処理方法及び情報処理プログラムは、第１のプログラム内から外部にある第２のプログラムを呼び出して、該第２のプログラムの実行を制御する。
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、禁止制御手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの実行を禁止するように制御する。
【００２３】
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、許可手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムに認証不要のドメインでの実行を許可する。
【００２４】
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断すると、実行権限割当手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラム内の手続き毎に、前記記憶手段に記憶されている規則に従って、該手続きに対する実行の権限を割り当てる。
【００２５】
判断手段は、前記第１のプログラムを解析して、前記第２のプログラムがあるか否かを判断し、実行権限割当手段は、前記判断手段によって、前記第２のプログラムがあると判断された場合は、該第２のプログラムの署名を検証することによって、該第２のプログラムに対する実行の権限を割り当てる。
これらは、外部にあるプログラムの挙動を制御することによって、悪意ある第三者の攻撃によって生じる被害を少なくすることができるものである。
【発明の効果】
【００２６】
本発明にかかる情報処理装置、情報処理方法及び情報処理プログラムによれば、外部にあるプログラムを実行する場合に、その外部にあるプログラムの挙動を制御することによって、悪意ある第三者の攻撃によって生じる被害を少なくすることができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはプログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がプログラムの場合は、記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク等で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「所定」という用語は、予め定められたの意の他に、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じての意を含めて用いる。
【００２８】
本実施の形態の概要を説明する。
アプリケーション等のプログラムが属するセキュリティのレベルに応じ、プログラムの挙動を実行可能と実行不可能に振る舞いを変更することが可能な情報処理装置１００であって、情報処理装置１００内にあるアプリケーション等のプログラムと、情報処理装置１００外にあって、そのアプリケーション等のプログラムから呼び出されるプログラムに、別個のセキュリティのレベルを持たせ、それぞれのレベルに応じてプログラムを実行することが可能な情報処理装置１００である。
【００２９】
本実施の形態である情報処理装置１００は、内部にあるプログラムＡ内から外部にあるプログラムＢを呼び出して、そのプログラムＢを実行し得るものであって、図１に示すように、情報処理装置１００は、プログラム受取モジュール１１０、プログラム登録モジュール１２０、プログラム実行モジュール１３０、外部呼び出し処理モジュール１４０を有しており、外部にあるサーバ等と通信回線（有線、無線を問わない）を介して接続されている。例えば、情報処理装置１００として、携帯電話等のデータ通信可能な端末装置が該当する。
【００３０】
なお、情報処理装置１００内に記憶されているプログラムＡとして、Ｗｉｄｇｅｔ等（Ｗｅｂ記述言語による記載を含む）がある。Ｗｉｄｇｅｔ（ウィジェット）とは、アプリケーション・プログラムを構成するプログラム部品又はその組み合わせであり、それ自体が単独のプログラムとして動作してもよい。また、Ｗｉｄｇｅｔは、ＪａｖａＳｃｒｉｐｔのようなインタプリンタを介する方法ではなく、ネイティブ・アプリケーションであっても可能である。
また、ネイティブ・アプリケーションとは、実行する情報処理装置１００のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ソフトウェアプラットフォーム、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）等向けに特化したアプリケーションである。つまり、ネイティブ・アプリケーション（ネイティブなコード）を携帯電話等の情報処理装置１００が読み込むと、内蔵しているＣＰＵがそのまま実行できる形でメモリ中におかれ、実行されるものである。
【００３１】
プログラム受取モジュール１１０は、プログラムＡを受け取る。例えば、プログラムＡとしてＷｉｄｇｅｔがあり、例えば、そのファイル拡張子によって受け取るべきＷｉｄｇｅｔであるか否かを判断するようにしてもよい。また、プログラムＡの受け取りは、外部のサーバ等から通信回線を介した受信の他に、リムーバブルメディア等から読み取るようにしてもよい。
プログラム登録モジュール１２０は、プログラム受取モジュール１１０が受け取ったプログラムＡの登録を行う。ここで、プログラムＡの登録とは、取得したプログラムＡのセキュリティ・レベルを検証し、セキュリティ・レベルを割り当てることである。
プログラム実行モジュール１３０は、プログラム登録モジュール１２０で割り当てられたセキュリティ・レベルに従って、プログラム受取モジュール１１０が受け取ったプログラムＡを実行させる。
【００３２】
外部呼び出し処理モジュール１４０は、外部呼び出し制御モジュール１４１、外部呼び出し実行モジュール１４２、エラー処理モジュール１４３を有しており、プログラムＢの呼び出しに関する制御、その実行等を行う。
【００３３】
外部呼び出し制御モジュール１４１は、プログラムＡを解析して、プログラムＢの呼び出しがあるか否かを判断し、その判断結果として、プログラムＡ内にプログラムＢの呼び出しがあると判断した場合は、プログラムＢの実行を禁止するように制御する。
【００３４】
また、外部呼び出し制御モジュール１４１は、プログラムＡを解析して、プログラムＢの呼び出しがあるか否かを判断し、その判断結果として、プログラムＡ内にプログラムＢの呼び出しがあると判断した場合は、プログラムＢに認証不要のドメインでの実行を許可するようにしてもよい。「認証」とは、そのプログラムの実行に際して、証明書等の検証を行うことによって、その実行を許可又は許可しないことをいう。そして、ドメインとは、情報処理に用いる資源が共通の制御下におかれているコンピュータの一部分又は全部をいい、例えば、あるポリシー（規則）の制約下によってプログラムの挙動が定まり、そのポリシーの制約下にあることをドメインに属しているという。より具体的には、ドメイン・セキュリティ・モデルにおけるドメインのことを指す。また、コンピュータ内に仮想的なコンピュータを構築した場合に、その仮想的なコンピュータの１つをドメインとしてもよい。
【００３５】
また、外部呼び出し制御モジュール１４１は、プログラムＡを解析して、プログラムＢの呼び出しがあるか否かを判断し、その判断結果として、プログラムＡ内にプログラムＢの呼び出しがあると判断した場合は、プログラムＢ内の手続き毎に、ポリシファイルに従って、その手続きに対する実行の権限を割り当てるようにしてもよい。なお、ポリシファイルは、情報処理装置１００内の記憶装置に記憶されており、プログラムの実行権限に関する規則を定めた規制ファイルであり、例えば、情報処理装置１００等のマシン、ドメイン、ユーザＩＤ、時間帯などに基づいてプログラム又はプログラム内の手続き（メソッド）の実行を許諾又は禁止等するためのものである。
【００３６】
また、外部呼び出し制御モジュール１４１は、プログラムＡを解析して、プログラムＢの呼び出しがあるか否かを判断し、その判断結果として、プログラムＡ内にプログラムＢの呼び出しがあると判断した場合は、プログラムＢの署名を検証することによって、プログラムＢに対する実行の権限を割り当てるようにしてもよい。
また、外部呼び出し制御モジュール１４１による前記の判断は、プログラムＡを実行する前に又はプログラムＡを実行しているときに、プログラムＡを解析して、プログラムＡ内にプログラムＢの呼び出しがあるか否かを判断するようにしてもよい。より具体的には、プログラムＡを実行する前とは、プログラム受取モジュール１１０がプログラムＡを受け取った後又はプログラム登録モジュール１２０がプログラムＡを登録した後からプログラム実行モジュール１３０がプログラムＡを実行させる前のことをいい、プログラムＡを実行しているときとは、プログラム実行モジュール１３０がプログラムＡを実行させている場合に、プログラムＢの呼び出しがある都度にという意味である。
【００３７】
外部呼び出し実行モジュール１４２は、外部呼び出し制御モジュール１４１によってプログラムＢの実行が許可された場合は、プログラムＢを外部のサーバ等から呼び出して、プログラムＢを実行させる。
エラー処理モジュール１４３は、外部呼び出し制御モジュール１４１によってプログラムＢの実行禁止等になった場合のエラー処理を行う。例えば、エラーと判断した理由、そのエラーに対する処置等を情報処理装置１００のディスプレイ等の表示装置に出力する。また、プログラムＢを呼び出さないように、プログラムＡを変更してもよいし、プログラムＢの呼び出し処理をスキップさせるようにしてもよい。
【００３８】
図２は、本実施の形態による処理例を示すフローチャートである。
以下、プログラムＡとしてＷｉｄｇｅｔを主に例示し、外部のサーバ等にあるプログラムＢのことを外部スクリプトと称し、ＪａｖａＳｃｒｉｐｔを主に例示して説明する。
ステップＳ２０２では、プログラム受取モジュール１１０がＷｉｄｇｅｔを受け取って、情報処理装置１００に導入する。つまり、そのＷｉｄｇｅｔを情報処理装置１００にて動作可能にする。
ステップＳ２０４では、プログラム登録モジュール１２０が、ステップＳ２０２で導入したＷｉｄｇｅｔのセキュリティ・レベルを登録する。
ステップＳ２０６では、プログラム実行モジュール１３０が、ステップＳ２０４で登録されたセキュリティ・レベル下でＷｉｄｇｅｔを実行させる。
ステップＳ２０８では、外部呼び出し制御モジュール１４１が、ステップＳ２０６で実行されたＷｉｄｇｅｔから外部スクリプトの呼び出しを行う。この場合、外部スクリプトの実行を許可するか否かの判断を行う。
ステップＳ２１０では、外部呼び出し実行モジュール１４２が、ステップＳ２０８で呼び出された外部スクリプトを実行させる。
【００３９】
図３は、図２の例に示したステップＳ２０２の処理例を示す説明図である。主にプログラム受取モジュール１１０が行う処理である。
端末装置３１０とサーバ装置３２０は、インターネット３３０を介して接続されている。端末装置３１０は図１の例に示した情報処理装置１００に該当する。ここで、端末装置３１０が行うＷｉｄｇｅｔの導入とは、端末装置３１０外（例えば、サーバ装置３２０）にあるＷｉｄｇｅｔ３４０を端末装置３１０内に格納することである。
端末装置３１０（情報処理装置１００のプログラム受取モジュール１１０）は、サーバ装置３２０内に格納されているファイルのうち、ファイル拡張子によってＷｉｄｇｅｔ３４０の登録処理を行うか否かを判断する。例えば、Ｗｉｄｇｅｔ３４０のファイル拡張子として「．ｗｇｔ」、「．ｓｗｇｔ」がある。
サーバ装置３２０は、端末装置３１０の要求に応じて、ファイルを送信する。
図３の例では、端末装置３１０が、インターネット３３０を介してのファイル転送としてＷｉｄｇｅｔ３４０を受け取っているが、他の端末装置等から送信されてきた電子メールの添付ファルとして受け取ってもよいし、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ（登録商標））、メモリカード等のリムーバブルメディアを経由して受け取るようにしてもよい。
【００４０】
プログラム受取モジュール１１０が導入するＷｉｄｇｅｔは２種類のパッケージがある。つまり、署名情報付きとそうでないものがある。
図４は、Ｗｉｄｇｅｔのファイル構成例を示す説明図である。署名情報付きではないＷｉｄｇｅｔのパッケージは、図４（ａ）の例に示すようにファイル拡張子として「．ｗｇｔ」を有しているＸＸＸ．ｗｇｔ４１０がある。
ＸＸＸ．ｗｇｔ４１０内には、図４（ｂ）の例に示すようなファイル群（ＸＭＬ４１１、４１２、ＨＴＭＬ４１３、ＣＳＳ４１４、ＪａｖａＳｃｒｉｐｔ４１５、Ｉｍａｇｅ４１６、Ｓｏｕｎｄ４１７）がパッケージ（アーカイブ）されている。なお、パッケージとは、複数のファイルを圧縮等を用いてひとまとめにすることであり、例えば、その手法としてＺＩＰ、ＴＡＲ等がある。
【００４１】
図５は、署名情報付きＷｉｄｇｅｔのファイル構成例を示す説明図である。署名情報付きのＷｉｄｇｅｔのパッケージは、図５（ａ）の例に示すようにファイル拡張子として「．ｓｗｇｔ」を有しているＸＸＸ．ｓｗｇｔ５１０がある。
ＸＸＸ．ｓｗｇｔ５１０内には、図５（ｂ）の例に示すようなファイル群（ＸＭＬ４１１、４１２、ＨＴＭＬ４１３、ＣＳＳ４１４、ＪａｖａＳｃｒｉｐｔ４１５、Ｉｍａｇｅ４１６、Ｓｏｕｎｄ４１７）に加えて署名情報ファイル５１１がパッケージされている。つまり、セキュリティ・レベルを決めるために電子署名である署名情報ファイル５１１が付されている。署名情報ファイル５１１には、署名値、署名方法、電子証明書等が記載されている。
この署名情報ファイル５１１は、図５（ｂ）の例に示すようにＷｉｄｇｅｔファイルと共にアーカイブしている場合と、Ｗｉｄｇｅｔパッケージ（ＸＭＬ４１１からＳｏｕｎｄ４１７）と別に流通する方法がある。後者の場合、署名情報ファイル５１１には、Ｗｉｄｇｅｔパッケージの位置情報（ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）等）等が記載されることがある。その場合、まず署名情報ファイル５１１を取得してから、その中の位置情報を利用してＷｉｄｇｅｔパッケージを取得する。
【００４２】
図６は、図２の例に示したステップＳ２０４の処理例を示す説明図である。主にプログラム登録モジュール１２０が行う処理である。
プログラム登録モジュール１２０は、プログラム受取モジュール１１０によって受け取られたＷｉｄｇｅｔであるＸＸＸ．ｗｇｔ４１０、ＸＸＸ．ｓｗｇｔ５１０に基づいて、そのＷｉｄｇｅｔを登録する。ここで、Ｗｉｄｇｅｔの登録とは、取得したＷｉｄｇｅｔのセキュリティ・レベルを検証し、セキュリティ・レベルを割り当てることである。プログラム登録モジュール１２０内には署名検証モジュール６１０を含んでおり、署名検証モジュール６１０が署名を検証して、Ｗｉｄｇｅｔにアントラステッド・ドメイン６１１、サードパーティ・ドメイン６１２、オペレータ・ドメイン６１３のいずれかのセキュリティ・レベルを割り当てる。なお、アントラステッド・ドメイン６１１とは、認証不要のドメインである。サードパーティ・ドメイン６１２とは、サードパーティが作成したＷｉｄｇｅｔを実行させるドメインである。オペレータ・ドメイン６１３とは、情報処理装置１００の管理会社が作成したＷｉｄｇｅｔを実行させるドメインである。つまり、信頼性が高いＷｉｄｇｅｔを実行させ得るのがオペレータ・ドメイン６１３であり、次のレベルのものがサードパーティ・ドメイン６１２であり、一番レベルの低いものがアントラステッド・ドメイン６１１である。したがって、オペレータ・ドメイン６１３は機密性の高いデータも取り扱うことが可能である。
【００４３】
端末装置３１０（プログラム登録モジュール１２０）は、署名情報ファイルがないＷｉｄｇｅｔ（ＸＸＸ．ｗｇｔ４１０）をアントラステッド（Ｕｎｔｒａｓｔｅｄ）・ドメインとして扱う。つまり、署名検証モジュール６１０がＸＸＸ．ｗｇｔ４１０には署名情報がないことから、アントラステッド・ドメイン６１１を割り当てる。
端末装置３１０（プログラム登録モジュール１２０）は、端末装置３１０内に予め組み込まれているルート証明書によって、Ｗｉｄｇｅｔ（ＸＸＸ．ｓｗｇｔ５１０）の署名情報（署名情報ファイル５１１）を検証する。図６は、この署名情報の検証処理例を示す説明図である。署名検証モジュール６１０がＸＸＸ．ｓｗｇｔ５１０内の署名情報ファイル５１１を検証して、Ｗｉｄｇｅｔにアントラステッド・ドメイン６１１、サードパーティ・ドメイン６１２、オペレータ・ドメイン６１３のいずれかのセキュリティ・レベルを割り当てる。
署名情報ファイル５１１が、オペレータ・ドメイン用として組み込まれているルート証明書に紐づいた証明書に紐づく署名であれば、オペレータ・ドメイン６１３として扱う。
サードパーティ・ドメインに紐づけば、サードパーティ・ドメイン６１２として扱う。
検証できなければ登録失敗とするか又はアントラステッド・ドメイン６１１として扱う。
【００４４】
なお、プログラム登録モジュール１２０による署名検証を行うときは、Ｗｉｄｇｅｔのインストール時の検証に基づいて、Ｗｉｄｇｅｔとドメインを紐づく登録を行ってもよいし、Ｗｉｄｇｅｔの実行時にその都度、ドメインを確認するようにしてもよい。
また、プログラム登録モジュール１２０によって検証対象となる署名値は、Ｗｉｄｇｅｔパッケージ自体の署名値でもよいし、Ｗｉｄｇｅｔパッケージ内にあるファイルそれぞれの署名値であってもよい。
【００４５】
図７は、ポリシ情報テーブル７００のデータ構造例を示す説明図である。ポリシ情報テーブル７００は、情報処理装置１００内の記憶装置内にポリシ情報ファイルとして記憶されており、図１２、図１３に示す処理例で用いられるものである。
ポリシ情報テーブル７００は、機能グループ欄７１０、オペレータ・ドメイン欄７２０、サードパーティ・ドメイン欄７３０、アントラステッド・ドメイン欄７４０を有しており、アントラステッド・ドメイン６１１、サードパーティ・ドメイン６１２、オペレータ・ドメイン６１３とプログラム（Ｗｉｄｇｅｔ、外部スクリプト等）の機能グループの実行可否の関係を示すものである。つまり、ポリシ情報テーブル７００は、各ドメインに応じて、どの機能が利用できるかの規則を示すものである。
【００４６】
機能グループ欄７１０は、情報処理装置１００が提供している機能をグループ分けしたものであり、プログラムはいずれかのグループに属している。例えば、情報処理装置１００が携帯電話である場合は、電話としての機能を提供するための電話機能グループ、情報処理装置１００の現在の位置を測定するＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ、全地球測位システム）の機能を提供するためのＧＰＳ機能グループ、電子メールの機能を提供するためのメールグループ、インターネットを介して他のサーバ等との通信を行う機能を提供するためのインターネットグループに分かれる。
オペレータ・ドメイン欄７２０は、オペレータ・ドメイン６１３における各グループの実行可否を記憶しており、全ての機能グループによる機能提供、つまりオペレータ・ドメイン６１３として登録されたプログラムは全てが実行可能である。
【００４７】
サードパーティ・ドメイン欄７３０は、サードパーティ・ドメイン６１２における各グループの実行可否を記憶しており、ＧＰＳ機能グループ以外の機能提供、つまりサードパーティ・ドメイン６１２として登録されたＧＰＳ機能グループ以外のプログラムは実行可能である。
アントラステッド・ドメイン欄７４０は、アントラステッド・ドメイン６１１における各グループの実行可否を記憶しており、メールグループのみの機能提供、つまりアントラステッド・ドメイン６１１として登録されたプログラムはメール機能グループに属しているもののみが実行可能である。
【００４８】
なお、機能グループ欄７１０は、機能によってプログラムをグループ分けしているが、個別のメソッド（手続き）又はライブラリ毎にポリシを設定してもよい。
【００４９】
図８から図１５を用いて、外部呼び出し処理モジュール１４０による処理例を説明する。
図８、図９の例に示す第１の処理例は、外部スクリプトの呼び出しそのものを禁止するものである。
図１０、図１１の例に示す第２の処理例は、外部スクリプトを認証なしのドメインで実行許可するものである。
図１２、図１３の例に示す第３の処理例は、外部スクリプトを手続き毎に許可、不許可の制限をするものである。
図１４、図１５の例に示す第４の処理例は、外部スクリプトもＷｉｄｇｅｔと同等の認証によるドメイン分けをし、その属するドメインによって実行権限を変更するものである。
【００５０】
図８は、本実施の形態による第１−１の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行する前に、外部スクリプトの呼び出しを確認する処理である。例えば、Ｗｉｄｇｅｔの実行直前、Ｗｉｄｇｅｔの導入時又はＷｉｄｇｅｔの登録時に行う。外部呼び出し処理モジュール１４０は、例えば、Ｗｉｄｇｅｔプラットフォーム内に実装する。
【００５１】
ステップＳ８０２では、外部呼び出し制御モジュール１４１が、対象とするＷｉｄｇｅｔを選択する。
ステップＳ８０４では、外部呼び出し制御モジュール１４１が、ステップＳ８０２で選択したＷｉｄｇｅｔ内のファイルを解析する。ここでの解析とは、外部スクリプトの呼び出しを検出することである。例えば、図４の例で示したＸＭＬ４１１、ＨＴＭＬ４１３、ＪａｖａＳｃｒｉｐｔ４１５等の記述内容から、外部にあるスクリプトファイルの有無を、外部スクリプトの呼び出しに関するコマンド等のテキストマッチング等で検出する。
【００５２】
ステップＳ８０６では、外部呼び出し制御モジュール１４１が、ステップＳ８０４での解析結果に基づいて、外部スクリプトファイルがあったか否かの判断を行う。つまり、外部スクリプトの呼び出しがあるか否かの判断を行う。あった場合はステップＳ８１２へ進み、それ以外の場合はステップＳ８０８へ進む。
ステップＳ８０８では、Ｗｉｄｇｅｔ内に他のファイルがあるか否かの判断を行う。ある場合はステップＳ８０４へ戻り、それ以外の場合はステップＳ８１０へ進む。
【００５３】
ステップＳ８１０では、外部スクリプトの呼び出しがないＷｉｄｇｅｔであるので、そのＷｉｄｇｅｔを実行する。
ステップＳ８１２では、エラー処理モジュール１４３が、エラー処理を行う。例えば、外部スクリプトの呼び出しがあるＷｉｄｇｅｔであること、そして、そのＷｉｄｇｅｔの削除を推奨する旨を、情報処理装置１００のディスプレイ等の表示装置に表示する。なお、エラー処理として、その外部スクリプトの呼び出しをＷｉｄｇｅｔから削除するようにしてもよいし、Ｗｉｄｇｅｔ自体を実行できないようにしてもよい。
【００５４】
図９は、本実施の形態による第１−２の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行中に、外部スクリプトの呼び出しを確認する処理である。外部呼び出し処理モジュール１４０は、例えば、ＪａｖａＳｃｒｉｐｔインタプリンタ内に実装する。なお、ここでは実行するＷｉｄｇｅｔのファイルとしてＪａｖａＳｃｒｉｐｔを例示する。
【００５５】
ステップＳ９０２では、プログラム実行モジュール１３０が、Ｗｉｄｇｅｔ内のスクリプト（ＪａｖａＳｃｒｉｐｔ）の実行を開始する。
ステップＳ９０４では、ＪａｖａＳｃｒｉｐｔインタプリンタ内の外部呼び出し制御モジュール１４１が、ステップＳ９０２で実行を開始したＪａｖａＳｃｒｉｐｔを解析する。
【００５６】
ステップＳ９０６では、外部呼び出し制御モジュール１４１が、ステップＳ９０４での解析結果に基づいて、外部スクリプトの呼び出しがあるか否かの判断を行う。あった場合はステップＳ９１４へ進み、それ以外の場合はステップＳ９０８へ進む。
ステップＳ９０８では、プログラム実行モジュール１３０が、ＪａｖａＳｃｒｉｐｔの実行を行う。
【００５７】
ステップＳ９１０では、外部呼び出し制御モジュール１４１が、Ｗｉｄｇｅｔ内の全てのスクリプト（ＪａｖａＳｃｒｉｐｔ）を実行したか否かの判断を行う。行った場合はステップＳ９１２へ進み、それ以外の場合はステップＳ９０４へ戻る。
ステップＳ９１２では、プログラム実行モジュール１３０が、ステップＳ９０２で実行を開始したスクリプトの処理を終了させる。
ステップＳ９１４では、エラー処理モジュール１４３が、エラー処理を行う。例えば、外部スクリプトの呼び出しがあること、そして、その処理を終了させる旨を、情報処理装置１００のディスプレイ等の表示装置に表示する。なお、エラー処理として、その外部スクリプトの呼び出しをスキップして処理を続行するようにしてもよい。
【００５８】
図１０は、本実施の形態による第２−１の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行する前に、外部スクリプトの呼び出しを確認する処理であること等は、図８の例に示したフローチャートと同等である。
ステップＳ１００２からステップＳ１００８までの処理は、図８の例に示したステップＳ８０２からステップＳ８０８までの処理と同等である。
ステップＳ１０１０では、外部呼び出し制御モジュール１４１が、外部スクリプトを取得する。
ステップＳ１０１２では、外部呼び出し制御モジュール１４１が、ステップＳ１０１０で取得した外部スクリプトに対してアントラステッド・ドメインを割り当てる。
【００５９】
ステップＳ１０１４では、ステップＳ１００２で選択されたＷｉｄｇｅｔを実行する。つまり、外部スクリプト以外の部分は、そのＷｉｄｇｅｔに割り付けられたドメイン下で動作し、外部スクリプトの部分は、アントラステッド・ドメイン下で動作することになる。
なお、ステップＳ１０１０、ステップＳ１０１２の処理の代わりに、外部スクリプトファイルである旨のフラグを立て、Ｗｉｄｇｅｔ実行時において、該フラグがあれば、アントラステッドのポリシで（アントラステッド・ドメイン下で）動作するようにしてもよい。
【００６０】
図１１は、本実施の形態による第２−２の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行中に、外部スクリプトの呼び出しを確認する処理であること等は、図９の例に示したフローチャートと同等である。
ステップＳ１１０２の処理は、図９の例に示したステップＳ９０２の処理と同等である。
ステップＳ１１０４では、外部呼び出し制御モジュール１４１が、ステップＳ１１０２で実行を開始したスクリプトが所属しているドメインを登録情報１１０５を用いて確認する。登録情報１１０５は、図２の例に示したステップＳ２０４の処理によってＷｉｄｇｅｔ毎に登録されたドメインに関する情報である。
【００６１】
ステップＳ１１０６とステップＳ１１０８の処理は、図９の例に示したステップＳ９０４とステップＳ９０６の処理と同等である。
ステップＳ１１１０では、プログラム実行モジュール１３０又は外部呼び出し実行モジュール１４２が、実行しようとしているスクリプト（ＪａｖａＳｃｒｉｐｔである外部スクリプトを含む）には登録されたドメインと比較して、実行許可があるか否かの判断を行う。実行許可されている場合はステップＳ１１１２へ進み、それ以外の場合はステップＳ１１２２へ進む。
【００６２】
ステップＳ１１１２では、プログラム実行モジュール１３０又は外部呼び出し実行モジュール１４２が、ＪａｖａＳｃｒｉｐｔの実行を行う。
ステップＳ１１１４では、外部呼び出し制御モジュール１４１が、Ｗｉｄｇｅｔ内の全てのスクリプト（ＪａｖａＳｃｒｉｐｔ）を実行したか否かの判断を行う。行った場合はステップＳ１１１６へ進み、それ以外の場合はステップＳ１１０６へ戻る。
【００６３】
ステップＳ１１１６では、プログラム実行モジュール１３０又は外部呼び出し実行モジュール１４２が、ステップＳ１１０２で実行を開始したスクリプトの処理を終了させる。
ステップＳ１１１８では、外部呼び出し制御モジュール１４１が、外部スクリプトを取得する。
ステップＳ１１２０では、外部呼び出し制御モジュール１４１が、ステップＳ１１１８で取得した外部スクリプトに対してアントラステッド・ドメインを割り当てる。
【００６４】
ステップＳ１１２２では、エラー処理モジュール１４３が、エラー処理を行う。例えば、異なるドメインで実行しようとしている旨を情報処理装置１００のディスプレイ等の表示装置に表示する。なお、エラー処理として、その外部スクリプトの呼び出しをスキップして処理を続行するようにしてもよい。
なお、ステップＳ１１０４の処理は、スクリプトの実行時ではなく、Ｗｉｄｇｅｔの選択時等のスクリプトの実行前であってもよい。
また、ステップＳ１１１８、ステップＳ１１２０の処理の代わりに、外部スクリプトファイルである旨のフラグを立て、Ｗｉｄｇｅｔ実行時において、該フラグがあれば、アントラステッドのポリシで（アントラステッド・ドメイン下で）動作するようにしてもよい。
【００６５】
図１２は、本実施の形態による第３−１の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行する前に、外部スクリプトの呼び出しを確認する処理であること等は、図８の例に示したフローチャートと同等である。
ステップＳ１２０２からステップＳ１２０６までの処理は、図８の例に示したステップＳ８０２からステップＳ８０６までの処理と同等である。
ステップＳ１２０８では、外部呼び出し制御モジュール１４１が、実行しようとしているＷｉｄｇｅｔはスクリプトファイルか否かの判断を行う。スクリプトファイルである場合はステップＳ１２１８へ進み、それ以外の場合はステップＳ１２１０へ進む。
【００６６】
ステップＳ１２１０とステップＳ１２１２の処理は、図８の例に示したステップＳ８０８、ステップＳ８１０の処理と同等である。
ステップＳ１２１２では、ステップＳ１２０２で選択されたＷｉｄｇｅｔを実行する。つまり、外部スクリプト以外の部分は、そのＷｉｄｇｅｔに割り付けられたドメイン下で動作し、外部スクリプトの部分は、そのアントラステッド・ドメイン下で動作することになる。
ステップＳ１２１４では、外部呼び出し制御モジュール１４１が、外部スクリプトを取得する。
ステップＳ１２１６では、外部呼び出し制御モジュール１４１が、ステップＳ１２１４で取得した外部スクリプトに対して、外部スクリプトファイルである旨のフラグを立てる。
【００６７】
ステップＳ１２１８では、外部呼び出し制御モジュール１４１が、そのスクリプトを解析する。つまり、スクリプト内をメソッド（手続き）毎に分け、ポリシファイル１２１９を用いて、そのメソッドに対応する実行権限を抽出する。なお、ポリシファイル１２１９内には、図７の例で示したポリシ情報テーブル７００がある。
ステップＳ１２２０では、外部呼び出し制御モジュール１４１が、各メソッドにステップＳ１２１８で抽出された実行権限を割り当てる。
【００６８】
図１３は、本実施の形態による第３−２の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行中に、外部スクリプトの呼び出しを確認する処理であること等は、図９の例に示したフローチャートと同等である。
ステップＳ１３０２からステップＳ１３０８までの処理は、図１１の例に示したステップＳ１１０２からステップＳ１１０８までの処理と同等である。なお、登録情報１３０５は登録情報１１０５と同等のものである。
【００６９】
ステップＳ１３１０では、外部呼び出し制御モジュール１４１が、実行しようとしているＷｉｄｇｅｔは外部スクリプトか否かの判断を行う。この判断は、ステップＳ１３２２の処理でフラグが立てられたか否かによる。外部スクリプトである場合はステップＳ１３１２へ進み、それ以外の場合はステップＳ１３２４へ進む。
ステップＳ１３１２では、外部呼び出し制御モジュール１４１が、ポリシファイル１３１３を用いて、そのスクリプトには実行権限があるか否かを判断する。実行権限がある場合はステップＳ１３１４へ進み、それ以外の場合はステップＳ１３２８へ進む。
【００７０】
ステップＳ１３１４では、プログラム実行モジュール１３０又は外部呼び出し実行モジュール１４２が、ＪａｖａＳｃｒｉｐｔの実行を行う。
ステップＳ１３１６では、外部呼び出し制御モジュール１４１が、Ｗｉｄｇｅｔ内の全てのスクリプト（ＪａｖａＳｃｒｉｐｔ）を実行したか否かの判断を行う。行った場合はステップＳ１３１８へ進み、それ以外の場合はステップＳ１３０６へ戻る。
ステップＳ１３１８では、プログラム実行モジュール１３０又は外部呼び出し実行モジュール１４２が、ステップＳ１３０２で実行を開始したスクリプトの処理を終了させる。
【００７１】
ステップＳ１３２０とステップＳ１３２２の処理は、図１２の例に示したステップＳ１２１４とステップＳ１２１６の処理と同等である。
ステップＳ１３２４では、外部呼び出し実行モジュール１４２が、実行しようとしているスクリプト（ＪａｖａＳｃｒｉｐｔである外部スクリプトを含む）には登録されたドメインと比較して、実行許可があるか否かの判断を行う。実行許可されている場合はステップＳ１３１４へ進み、それ以外の場合はステップＳ１３２６へ進む。
ステップＳ１３２６では、エラー処理モジュール１４３が、エラー処理を行う。例えば、異なるドメインで実行しようとしている旨を情報処理装置１００のディスプレイ等の表示装置に表示する。
ステップＳ１３２８では、エラー処理モジュール１４３が、エラー処理を行う。例えば、実行権限がない旨を情報処理装置１００のディスプレイ等の表示装置に表示する。
【００７２】
図１４は、本実施の形態による第４−１の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行する前に、外部スクリプトの呼び出しを確認する処理であること等は、図８の例に示したフローチャートと同等である。
ステップＳ１４０２からステップＳ１４０８までの処理は、図８の例に示したステップＳ８０２からステップＳ８０８までの処理と同等である。
【００７３】
ステップＳ１４１０では、ステップＳ１４０２で選択されたＷｉｄｇｅｔを実行する。つまり、外部スクリプト以外の部分は、そのＷｉｄｇｅｔに割り付けられたドメイン下で動作し、外部スクリプトの部分は、ステップＳ１４１６で割り当てられたドメイン下で動作することになる。
ステップＳ１４１２では、外部呼び出し制御モジュール１４１が、外部スクリプトを取得する。
ステップＳ１４１４では、外部呼び出し制御モジュール１４１が、外部スクリプトに対応している署名を検証する。
ステップＳ１４１６では、外部呼び出し制御モジュール１４１が、外部スクリプトに対してステップＳ１４１４での署名検証に基づいてドメインを割り当てる。
【００７４】
図１５は、本実施の形態による第４−２の処理例を示すフローチャートである。Ｗｉｄｇｅｔを実行中に、外部スクリプトの呼び出しを確認する処理であること等は、図９の例に示したフローチャートと同等である。
ステップＳ１５０２からステップＳ１５１８までの処理は、図１１の例に示したステップＳ１１０２からステップＳ１１１８までの処理と同等である。なお、登録情報１５０５は登録情報１１０５と同等のものである。
【００７５】
ステップＳ１５２０では、外部呼び出し制御モジュール１４１が、外部スクリプトに対応している署名を検証する。
ステップＳ１５２２では、外部呼び出し制御モジュール１４１が、外部スクリプトに対してステップＳ１５２０での署名検証に基づいてドメインを割り当てる。
ステップＳ１５２４では、エラー処理モジュール１４３が、エラー処理を行う。例えば、異なるドメインで実行しようとしている旨を情報処理装置１００のディスプレイ等の表示装置に表示する。
【００７６】
なお、図８から図１５の例を用いて説明した処理例のうち、外部呼び出し処理モジュール１４０は複数の処理を行うことが可能なように構成してもよい。つまり、その複数の処理のうち、いずれか１つの処理を選択する選択モジュールを外部呼び出し処理モジュール１４０に設け、外部呼び出し制御モジュール１４１は、その選択モジュールによって選択された処理を行わせるように制御するようにしてもよい。
【００７７】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図１６に示すように、一般的なコンピュータであり、具体的には本実施の形態による処理以外にも多くの処理を高速に実行することができるサーバとなりうるようなコンピュータである。プログラム受取モジュール１１０、プログラム登録モジュール１２０、プログラム実行モジュール１３０、外部呼び出し処理モジュール１４０等のプログラムを実行するＣＰＵ１６１０と、そのプログラムやデータを記憶するＲＡＭ１６３０と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ１６２０と、補助記憶装置であるＨＤ１６４０と、キーボード、マウス等から操作者の操作によってデータを入力又はＣＲＴや液晶ディスプレイ等にデータを出力して操作者とのインタフェースとなるＵＩ／Ｆ１６５０と、ＣＤ−Ｒ等のリムーバブルメディアに対して読み書きするリムーバブルメディアリーダーライター１６６０と、通信ネットワークと接続するための通信回線Ｉ／Ｆ１６７０、そして、それらをつないでデータのやりとりをするためのバス１６８０により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００７８】
また、情報処理装置１００として、通信可能なものであれば、パーソナルコンピューター（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ナビゲーターシステム、情報家電等であってもよい。
なお、前述の実施の形態では、プログラム実行モジュール１３０がプログラムＡを実行させ、外部呼び出し実行モジュール１４２がプログラムＢを実行させているが、プログラム実行モジュール１３０がプログラムＡ及びプログラムＢを実行させるようにしてもよい。つまり、プログラム実行モジュール１３０は外部呼び出し実行モジュール１４２の機能を有していてもよい。また、逆に、外部呼び出し実行モジュール１４２がプログラムＡ及びプログラムＢを実行させるようにしてもよい。
【００７９】
なお、説明したプログラムについては、記録媒体に格納することも可能であり、その場合は、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明としても把握することができる。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させることが可能である。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に乗せて搬送することも可能である。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施の形態のモジュール構成例を示す図である。
【図２】本実施の形態による処理例を示すフローチャートである。
【図３】図２の例に示したステップＳ２０２の処理例を示す説明図である。
【図４】Ｗｉｄｇｅｔのファイル構成例を示す説明図である。
【図５】署名情報付きＷｉｄｇｅｔのファイル構成例を示す説明図である。
【図６】図２の例に示したステップＳ２０４の処理例を示す説明図である。
【図７】ポリシ情報テーブルのデータ構造例を示す説明図である。
【図８】本実施の形態による第１−１の処理例を示すフローチャートである。
【図９】本実施の形態による第１−２の処理例を示すフローチャートである。
【図１０】本実施の形態による第２−１の処理例を示すフローチャートである。
【図１１】本実施の形態による第２−２の処理例を示すフローチャートである。
【図１２】本実施の形態による第３−１の処理例を示すフローチャートである。
【図１３】本実施の形態による第３−２の処理例を示すフローチャートである。
【図１４】本実施の形態による第４−１の処理例を示すフローチャートである。
【図１５】本実施の形態による第４−２の処理例を示すフローチャートである。
【図１６】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【図１７】ドメイン・セキュリティ・モデルの例を示す説明図である。
【図１８】ドメイン・セキュリティ・モデルにおいてクラックが発生し得る場合の例を示す説明図である。
【符号の説明】
【００８１】
１００…情報処理装置
１１０…プログラム受取モジュール
１２０…プログラム登録モジュール
１３０…プログラム実行モジュール
１４０…外部呼び出し処理モジュール
１４１…外部呼び出し制御モジュール
１４２…外部呼び出し実行モジュール
１４３…エラー処理モジュール
３１０…端末装置
３２０…サーバ装置
３３０…インターネット
３４０…Ｗｉｄｇｅｔ
１７１０…端末装置
１７２０…Ａドメイン
１７３０…Ｂドメイン
１７３１…Ｗｉｄｇｅｔ
１７３２…ＪａｖａＳｃｒｉｐｔ
１７５０…Ｗｅｂサーバ
１７９０…インターネット
１８０１…クラック
１８０２…クラック
【図１】
2010092376.tif 000003
【図２】
2010092376.tif 000004
【図３】
2010092376.tif 000005
【図４】
2010092376.tif 000006
【図５】
2010092376.tif 000007
【図６】
2010092376.tif 000008
【図７】
2010092376.tif 000009
【図８】
2010092376.tif 000010
【図９】
2010092376.tif 000011
【図１０】
2010092376.tif 000012
【図１１】
2010092376.tif 000013
【図１２】
2010092376.tif 000014
【図１３】
2010092376.tif 000015
【図１４】
2010092376.tif 000016
【図１５】
2010092376.tif 000017
【図１６】
2010092376.tif 000018
【図１７】
2010092376.tif 000019
【図１８】
2010092376.tif 000020