(57)【特許請求の範囲】
【請求項１】
モバイルコードの実行装置であって、
他の装置からモバイルコードを取得する、モバイルコード取得手段と、
前記取得した前記モバイルコードに付加されている署名を検証する、署名検証手段と、
前記署名検証手段によって、当該モバイルコードの署名の検証に成功した場合に、当該モバイルコードの持つ機能を記述した機能仕様を取得する機能仕様取得手段と、
前記取得した前記機能仕様によって、前記モバイルコードの持つ機能を確認し、当該モバイルコードの実行を許可するか否かを判断する、機能確認手段と、
前記機能確認手段によって、前記モバイルコードの実行が許可された場合に、前記モバイルコードを実行するモバイルコード実行手段と、を備えた
ことを特徴とするモバイルコードの実行装置。
【請求項２】
請求項１記載のモバイルコードの実行装置であって、
前記機能確認手段は、前記機能仕様をユーザーに提示し、前記ユーザーが当該機能仕様を持つモバイルコードの実行を許可すると判断した場合に、前記モバイルコードの実行を許可すると判断する手段を備える
ことを特徴とするモバイルコードの実行装置。
【請求項３】
請求項１記載のモバイルコードの実行装置であって、
実行を許可する機能仕様を格納した、機能仕様管理ファイルを備え、
前記機能確認手段は、前記機能仕様が、前記機能仕様管理ファイルに登録されている場合に、前記モバイルコードの実行を許可すると判断する手段を含む
ことを特徴とするモバイルコードの実行装置。
【請求項４】
請求項３記載のモバイルコードの実行装置であって、
前記機能確認手段は、前記モバイルコードの実行を許可すると判断した場合に、前記機能仕様管理ファイルに前記機能仕様を追加する手段を備える
ことを特徴とするモバイルコードの実行装置。
【請求項５】
請求項１ないし４いずれか一に記載のモバイルコードの実行装置であって、
前記モバイルコードは、当該モバイルコードの実行コードと、前記署名と、前記機能仕様と、を含み、
前記機能仕様取得手段は、前記モバイルコードから前記機能仕様を取り出す手段をさらに含む
ことを特徴とするモバイルコードの実行装置。
【請求項６】
請求項１ないし４いずれか一に記載のモバイルコードの実行装置であって、
前記モバイルコードは、当該モバイルコードの実行コードと、前記署名と、当該モバイルコードを識別する、モバイルコード識別子と、を含み、
前記機能仕様取得手段は、前記モバイルコード識別子に対応する機能仕様を、前記ユーザーが信頼する第三者機関装置が備える、前記モバイルコード識別子と当該モバイルコード識別子に対応する前記機能仕様とが組として保管された機能仕様登録ファイルから取得する
ことを特徴とするモバイルコードの実行装置。
【請求項７】
請求項５または６に記載のモバイルコードの実行装置であって、
前記署名は前記第三者機関装置が作成する
ことを特徴とするモバイルコードの実行装置。
【請求項８】
モバイルコードのソースコードを作成する、ソースコード作成端末と、
ソースコードの機能を検証する、機能検証サーバと、
モバイルコードを配布する、モバイルコード配布サーバと、
モバイルコードを実行する、ユーザー端末と、からなるモバイルコードシステムであって、
前記ソースコード作成端末は、
モバイルコードのソースコードを作成するソースコード作成手段と、
前記モバイルコードのソースコードを前記機能検証サーバに送信するソースコード送信手段と、
を備え、
前記機能検証サーバは、
送信された前記モバイルコードのソースコードから当該モバイルコードの持つ機能を記述した機能仕様を作成し、当該モバイルコードが不正な処理を行うものでないかを検証する機能検証手段と、
前記機能検証手段が前記モバイルコードは不正な処理を行うものではないと判断した場合に、前記ソースコードから前記モバイルコードを作成するモバイルコード作成手段と、
前記モバイルコード配布サーバに対して、前記モバイルコード作成手段によって作成された、前記モバイルコードの登録を要求する登録要求手段と、
を備え、
前記モバイルコード配布サーバは、
前記登録を要求された前記モバイルコードを格納し、保管するモバイルコード保管手段と、
前記ユーザー端末から配送を要求された、前記モバイルコード保管手段が保管している前記モバイルコードを、前記ユーザー端末に送信するモバイルコード送信手段と、
を備え、
前記ユーザー端末は、
前記モバイルコード配布サーバに対して、モバイルコードの配送を要求する配送要求送信手段と、
配送されたモバイルコードに付加されている電子的な署名を検証する署名検証手段と、
前記署名検証手段が署名の検証に成功した場合、前記機能検証サーバの機能検証手段が作成した前記機能仕様を取得し、当該機能仕様によって前記モバイルコードの持つ機能を確認し、当該モバイルコードの実行を許可するか否かを判断する機能確認手段と、
前記機能確認手段が前記モバイルコードの実行を許可すると判断した場合に、前記モバイルコードを実行するモバイルコード実行手段と、
を備える
ことを特徴とするモバイルコードシステム。
【請求項９】
請求項８記載のモバイルコードシステムであって、
前記ユーザー端末の前記機能確認手段は、
前記機能仕様をユーザーに提示し、前記ユーザーが当該機能仕様を持つモバイルコードの実行を許可すると判断した場合に、前記モバイルコードの実行を許可すると判断する手段を備える
ことを特徴とするモバイルコードシステム。
【請求項１０】
請求項８または９記載のモバイルコードシステムであって、
前記ユーザー端末は、実行を許可する機能仕様を格納した、機能仕様管理ファイルを備え、
前記ユーザー端末の前記機能確認手段は、前記機能仕様が、前記機能仕様管理ファイルに予め登録されている場合に、前記モバイルコードの実行を許可すると判断する手段を備える
ことを特徴とするモバイルコードシステム。
【請求項１１】
請求項８または９記載のモバイルコードシステムであって、
前記ユーザー端末の前記機能確認手段は、
前記モバイルコードの実行を許可すると判断した場合に、前記機能仕様管理ファイルに前記機能仕様を追加する手段を備える
ことを特徴とするモバイルコードシステム。
【請求項１２】
請求項８ないし１１いずれか一に記載のモバイルコードシステムであって、
前記モバイルコードは、当該モバイルコードの実行コードと、前記署名と、前記機能仕様と、を含み、
前記ユーザー端末の前記機能確認手段は、前記モバイルコードから前記機能仕様を取得する手段を備える
ことを特徴とするモバイルコードシステム。
【請求項１３】
請求項１０または１１に記載のモバイルコードシステムであって、
前記モバイルコードは、当該モバイルコードの実行コードと、前記署名と、当該モバイルコードを識別する、モバイルコード識別子と、を含み、
前記ユーザー端末の前記機能確認手段は、前記モバイルコード識別子に対応する機能仕様を、前記機能検証サーバが備える機能仕様登録ファイルから取得する手段を備える
ことを特徴とするモバイルコードシステム。
【請求項１４】
請求項１３記載のモバイルコードシステムであって、
前記ユーザー端末の前記機能仕様を取得する手段は、前記機能検証サーバに前記モバイルコード識別子を送信する手段を備え、
前記機能検証サーバは、
前記機能仕様登録ファイルとして、前記モバイルコード識別子と当該モバイルコード識別子に対応する前記機能仕様との組を保管する機能仕様保管手段と、
前記ユーザー端末から受信したモバイルコード識別子に対応する機能仕様を前記機能仕様登録ファイルから検索する手段と、
検索した前記機能仕様を、前記ユーザー端末に送信する機能仕様送信手段と、を備える
ことを特徴とするモバイルコードシステム。
【請求項１５】
請求項８ないし１４いずれか一に記載のモバイルコードシステムであって、
前記機能検証サーバは、前記署名を生成し、付加する手段を備える
ことを特徴とするモバイルコードシステム。
【発明の詳細な説明】
技術分野
本発明は、サーバからネットワークを介してユーザー端末にダウンロードされ、自動的に実行されるモバイルコードのセキュリティに関する。
背景技術
Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（ＷＷＷ）の表現力や利便性を大幅に高める手段として、モバイルコードが広く用いられてきている。モバイルコードは、ＷＷＷサーバ上に置いておき、ユーザー端末を利用するユーザーがＢｒｏｗｓｅｒプログラムを用いて、当該ページにアクセスしたときにダウンロードされ、自動的に実行される、というプログラムである。
しかし、その一方で、ユーザー端末上のリソース（ファイルや周辺機器など）に勝手にアクセスし、情報を盗んだり、障害を引き起こすといった、不正な処理を行うモバイルコードが問題となってきてもいる。
そのため、モバイルコードを利用するシステムには、モバイルコードの実行に対して、以下のようなセキュリティ機能を設けているものがある。
（１）モバイルコードには、ユーザー端末上のリソースへのアクセスを基本的に認めない。
（２）モバイルコードは、そのモバイルコードが保管されていたサーバとの間でしか通信することができない。
このようなセキュリティ機能は、不正なモバイルコードからシステムを守るために考えだされたものである。
しかし、その一方で、このような規制がモバイルコードの利便性を損なうものであることも明らかである。そのため、モバイルコードが、そのモバイルコードの作成者の署名（電子的な署名でディジタル署名と呼ばれる）が付加された、いわゆる署名付きコードであり、かつ、その作成者のモバイルコードならば信用するとユーザー端末を利用するユーザーが認めた場合には、上記モバイルコードに対する制限は適用されないように機能拡張されてきている。例えば、特開平１０−８３３１０号公報には、このような署名付きコードを利用するシステムの一例が示されている。また、上記ディジタル署名技術については、例えば「ＳＥＣＵＲＥ  ＥＬＥＣ−ＴＲＯＮＩＣ  ＣＯＭＭＥＲＣＥ」（ＰＲＥＮＴＩＣＥ  ＨＡＬＬ、１９９７）ｐｐ．１１１−１１６に記載されている。
ローカルファイルにアクセスする署名付きコードを、ネットワークを介してサーバからダウンロードした場合の、当該ユーザー端末での処理手順例を第１９図を参照して簡単に説明すると、以下のようである。
ユーザー端末を利用するユーザーが、Ｂｒｏｗｓｅｒプログラムを用いて署名付きコードをサーバからダウンロードすると（ステップ１９０１）、まず、署名付きコードに付加されたディジタル署名を検証し、モバイルコードの完全性（改ざんされていないこと）を確認する（ステップ１９０２）。完全性が確認された場合には、次に、その署名の署名者が、すでにローカルファイルへのアクセスを許可されている署名者であるかどうかを確認し（ステップ１９０３）、アクセスが許可された署名者であった場合には、署名付きコードがローカルファイルにアクセスして、あらかじめプログラミングされた処理を実行する（ステップ１９０５）。
また、ステップ１９０３において、アクセスが許可されていない署名者であった場合、ユーザー端末を利用しているユーザーに対して、当該署名者が作成した署名付きコードにローカルファイルへのアクセス許可を与えるかどうかを選択させる（ステップ１９０４）。許可が与えられた場合には、署名付きコードがローカルファイルにアクセスしてあらかじめプログラミングされた処理を実行する（ステップ１９０５）。
ステップ１９０２において完全性が確認できなかった場合、およびステップ１９０４においてアクセスの許可が与えられなかった場合には、ユーザー端末を利用しているユーザーにその旨を通知し（ステップ１９０６）、処理を終了する。
上述の署名付きコードのセキュリティ機能は、モバイルコードの署名者によってモバイルコードの実行を許可するか否かを判断するものであり、当該モバイルコードがどのような機能を持っているのかは、実行してみるまでわからない。そのため、ユーザーは、当該モバイルコードを実行してみるまでは、実行してよいか否かの十分な情報を得ることができない。そして、ユーザーが署名者を信頼すると判断した場合には、署名付きコードが不正な処理を行うモバイルコードであっても、実行されてしまうという問題がある。
特開平１０−８３３１０号公報には、コードと共に当該コードが要求するリソースの一覧（ＡＣＬ）を配布し、実行時に当該ＡＣＬにしたがってリソースを割当てるという方法が開示されている。コードと共にＡＣＬを配布することによって、コードがどのリソースにアクセスするのかを実行前に知ることはできるが、そのリソースをどのように使用するのか、すなわち、コードがどのような機能を持っているのかはわからない。
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、モバイルコードが持っている機能に基づいて、当該モバイルコードを実行するか否かを決定することができる、モバイルコードの構成と当該モバイルコードの実行方法と、それを利用したモバイルコードシステム、さらには、そこに用いるソースコード作成端末、機能検証サーバ、モバイルコード配布サーバ、ユーザー端末、およびそれらを実現するプログラムを提供することにある。
発明の開示
上記目的を達成するため、本発明のモバイルコードには、当該モバイルコードの持つ機能を記述した機能仕様、または当該機能仕様に対応づけられた識別子が添付されていることを特徴とする。
さらに、本発明のモバイルコードの実行方法は、前記モバイルコードを実行する前に、それが持つ機能を確認し、実行するか否かを判断するステップを設けたことを特徴とする。
すなわち、本発明のモバイルコードの実行方法は、モバイルコードを取得する、モバイルコード取得ステップと、前記モバイルコード取得ステップによって取得された前記モバイルコードに付加されている電子的な署名を検証する、署名検証ステップと、前記署名検証ステップによって、当該モバイルコードの署名の検証に成功した（検証結果が合格であった）場合に、当該モバイルコードの持つ機能を記述した機能仕様を取得する、機能仕様取得ステップと、前記機能仕様取得ステップで取得した前記機能仕様によって、前記モバイルコードの持つ機能を確認し、当該モバイルコードを実行するか否かを判断する、機能確認ステップと、前記機能確認ステップにおいて、前記モバイルコードは実行を許可されると判断された場合に、当該モバイルコードを実行する、モバイルコード実行ステップと、を備えている。
また、本発明のモバイルコードシステムは、モバイルコードのソースコードを作成するソースコード作成端末と、ソースコードの機能を検証する機能検証サーバと、モバイルコードを配布するモバイルコード配布サーバと、モバイルコードを実行するユーザー端末と、からなるモバイルコードシステムであって、
前記ソースコード作成端末は、モバイルコードのソースコードを作成するソースコード作成手段と、前記モバイルコードのソースコードを前記機能検証サーバに送信するソースコード送信手段と、を備え、
前記機能検証サーバは、送信された前記モバイルコードのソースコードから当該モバイルコードの持つ機能を記述した機能仕様を作成し、当該モバイルコードが不正な処理を行うものでないかを検証する機能検証手段と、前記機能検証手段が前記モバイルコードは不正な処理を行うものではないと判断した場合に、前記ソースコードから前記モバイルコードを作成するモバイルコード作成手段と、前記配布サーバに対して、前記モバイルコード作成手段によって作成された、モバイルコードの登録を要求する登録要求手段と、を備え、
前記モバイルコード配布サーバは、前記登録を要求された前記モバイルコードを格納し、保管するモバイルコード保管手段と、前記ユーザー端末から配送を要求された、前記モバイルコード保管手段が保管している前記モバイルコードを前記ユーザー端末に送信するモバイルコード送信手段と、を備え、
前記ユーザー端末は、前記モバイルコード配布サーバに対して、モバイルコードの配送を要求する配送要求送信手段と、配送されたモバイルコードに付加されている電子的な署名を検証する署名検証手段と、前記署名検証手段が署名の検証に成功した場合、前記検証サーバの機能検査手段が作成した前記機能仕様を取得し、当該機能仕様によって前記モバイルコードの持つ機能を確認し、当該モバイルコードの実行を許可するか否かを判断する機能確認手段と、前記機能確認手段が前記モバイルコードの実行を許可すると判断した場合に、前記モバイルコードを実行するモバイルコード実行手段と、を備えている。
さらに、本発明のモバイルコードシステムでは、前記機能確認手段は、前記機能仕様と同じ機能仕様が、ユーザー端末に保管されている機能仕様管理ファイルに登録されているか、または、前記機能仕様をユーザーに提示し、ユーザーが当該機能を持つモバイルコードの実行を許可すると判断した場合に、当該モバイルコードの実行を許可すると判断する。
したがって、本発明では、モバイルコードをダウンロードしたユーザー端末は、当該モバイルコードを実行する前に、当該モバイルコードの持つ機能を記述した機能仕様を確認する処理を行う。そして、前記機能仕様が、予め実行を許可されたものであるか、または、ユーザーが当該機能仕様を持つモバイルコードの実行を許可すると判断した場合にのみ、前記モバイルコードが実行されるようにしている。
このため、本発明によれば、モバイルコードが持っている機能に基づいて、当該モバイルコードを実行するか否かを決定することができる。
なお、本発明はモバイルコードに限るものではなく、ユーザー端末の記憶装置に格納されているような、一般のプログラムコードを実行する場合にも適用可能である。
発明を実施するための最良の形態
以下、図面を用いて、本発明の実施形態について説明する。なお、これにより本発明が限定されるものではない。
第１図は、本発明の一実施形態が適用されたモバイルコードシステムの機器概略構成、及びハードウェア構成を示す図である。
本実施形態のシステムは、第１図に示すように、モバイルコードのソースコードを作成する、ソースコード作成端末１１０（以下、単に作成端末１１０とも称する）と、ソースコードの機能を検証し、当該ソースコードからモバイルコードを作成する、機能検証サーバ１２０（以下、単に検証サーバ１２０とも称する）と、モバイルコードを登録し、配布する、モバイルコード配布サーバ１３０（以下、単に配布サーバ１３０とも称する）と、モバイルコードを実行する、ユーザー端末１４０と、が、それぞれ、コンピュータ上に構成されて、ＬＡＮなどの通信網１００を介して、互いに接続されて構成されている。
なお、第１図において複数の、作成端末１１０、検証サーバ１２０、配布サーバ１３０、またはユーザー端末１４０が接続されていてもよい。
前記作成端末１１０、検証サーバ１２０、配布サーバ１３０、とユーザー端末１４０を構成するコンピュータは、第１図に示すように、通信網インタフェースと、表示装置と、入力装置と、記憶装置と、中央処理装置（ＣＰＵ）と、一時記憶装置（メモリ）とが、バスによって互いに接続されて構成されている。通信網インターフェース１１１、１２１、１３１、１４１は、通信網１００を介したデータの送受信を行うためのインタフェース装置である。表示装置１１２、１２２、１３２、１４２は、上記各端末、サーバを使用する使用者へのメッセージなどを表示するために用いられるものであり、ＣＲＴや液晶ディスプレイなどで構成される。入力装置１１３、１２３、１３３、１４３は、前記使用者がデータや命令などを入力するために用いられるものであり、キーボードやマウスなどで構成される。記憶装置１１４、１２４、１３４、１４４は、プログラムやデータなど種々の情報を永続的に記憶するために用いられるものであり、ハードディスクやフロッピーディスクなどで構成される。ＣＰＵ１１５、１２５、１３５、１４５は、各部を統括的に制御したり、様々な演算処理を行ったりする。メモリ１１６、１２６、１３６、１４６には、オペレーティングシステム（以下、単にＯＳとも称する）１１６ａ、１２６ａ、１３６ａ、１４６ａや、ＣＰＵが上記各端末、サーバの機能を実現するために必要なプログラム、データなどが格納される。
ここで、ＯＳ１１６ａは、ユーザー端末１１０全体の制御を行うために、ファイル管理やプロセス管理、あるいはデバイス管理といった機能を実現するためのプログラムである。
コード作成プログラム１１６ｂは、前記作成端末１１０の使用者（以下、単に作成者とも称する）の指示にしたがって、モバイルコード１４６ｃのソースコード（以下、単にソースコードとも称する）を作成し、記憶装置１１４に格納するためのプログラムである。検証依頼プログラム１１６ｃは、前記作成者の指示にしたがって、記憶装置１１４に格納されている、前記ソースコードを検証サーバ１２０に送信するためのプログラムである。
コード検証プログラム１２６ｂは、作成端末１１０から前記ソースコードを受信し、当該ソースコードの機能を検証し、当該ソースコードから、モバイルコード１４６ｃや、その機能仕様を作成し、それらを前記配布サーバ１３０に登録するためのプログラムである。
コード配布プログラム１３６ｂは、検証サーバ１２０からモバイルコード１４６ｃを受信した場合に、前記モバイルコード１４６ｃを記憶装置１３４に格納し、また、ユーザー端末１４０からＢｒｏｗｓｅｒプログラム１４６ｂによるアクセスがあった場合に、記憶装置１３４に格納されているモバイルコード１４６ｃを、必要に応じてマルチメディアデータなどを添付して、送信するプログラムである。
また、Ｂｒｏｗｓｅｒプログラム１４６ｂは、ユーザー端末１４０が配布サーバ１３０と通信し、配布データ、すなわちモバイルコード１４６ｃと必要に応じて添付される種々のデータ（たとえば、音声、画像、動画などのマルチメディアデータを含むＨＴＭＬファイル）からなるデータ、をダウンロードし、モバイルコード１４６ｃの機能を確認し、当該モバイルコード１４６ｃを実行するためのプログラムである。なお、これらの添付される種々のデータは、Ｂｒｏｗｓｅｒプログラム１４６ｂが当該モバイルコード１４６ｃを実行する際に必要とされるものである。
モバイルコード１４６ｃは、ユーザー端末１４０の各種リソースにアクセスを行い、計算処理を行うプログラムである。
なお、本実施形態では、モバイルコード１４６ｃには、当該モバイルコード１４６ｃの実行コード以外に、当該モバイルコード１４６ｃの機能仕様、前記検証者の署名（本実施形態では署名を検証するために必要なデータをまとめて署名と記述する）や、モバイルコード自身が使用するデータやファイルが含まれており、モバイルコード１４６ｃ自体の完全性の確認（改ざんされているかどうかの確認）や機能の確認に利用可能である。
次に、本実施形態における各プログラムの機能ブロック構成とその動作について説明する。以下の説明において、各機能ブロックは、上記ＣＰＵがＯＳを介して、あるいは直接に、プログラムを実行することによって、実現されるものである。
ただし、前記作成者が作成端末１１０で前記ソースコードを作成する場合の、機能ブロック構成、および動作については、従来のモバイルコードシステムにおいて前記ソースコードを作成する場合と同じであり、その詳細な説明は省略する。なお、前記作成者が作成した前記ソースコードは、記憶装置１１４のソースコードファイル２０２に格納される。
まず、作成端末１１０が、モバイルコード１４６ｃの機能検証を、検証サーバ１２０に依頼する場合の、作成端末１１０および検証サーバ１２０の機能ブロック構成、および動作について、第２図、第１０図、第１１図を参照して説明する。
第２図は、作成端末１１０が、モバイルコード１４６ｃの機能検証を、検証サーバ１２０に依頼する場合の、作成端末１１０および検証サーバ１２０の機能ブロック構成を示す図である。まず、作成端末１１０の機能ブロック構成について説明する。
作成端末１１０は、第２図に示すように、入力装置１１３を介して、前記作成者の指示を受け付ける入力部２０４と、前記入力部２０４に入力されたデータなどを、表示装置１１２に表示させる表示部２０３と、前記入力装置１１３に入力された前記作成者の指示にしたがい、検証サーバ１２０に対して、通信網１００を介して、記憶装置１１４のソースコードファイル２０２に格納された、前記ソースコードと当該ソースコードが実行時に使用する、データまたはファイル、例えば、音声、画像、動画データなどを送信する、ソースコード送信処理部２０１と、を有する。なお、これらの実行時に使用されるデータまたはファイルは、上述の配布データにモバイルコードに添付されるデータやファイルとは異なり、当該モバイルコードがその実行時に必要とするものである。
次に、検証サーバ１２０の機能ブロック構成について説明する。
検証サーバ１２０は、第２図に示すように、作成端末１１０から前記ソースコードを受信したという情報などを表示装置１２２に表示させる表示部２１３と、前記作成端末１１０から前記ソースコードを受信するソースコード受信処理部２１１と、を有する。
次に、作成端末１１０の動作について説明する。
第１０図は、作成端末１１０が、モバイルコード１４６ｃの機能検証を、検証サーバ１２０に依頼する場合の、作成端末１１０の動作フローを示した図である。
まず、前記作成者が入力装置１１３に前記ソースコードの格納場所と名前、および前記検証サーバ１２０の位置と名前を入力する（ステップ１００１）。次に、ソースコード送信処理部２０１は、ステップ１００２において、指定された前記ソースコードを前記ソースコードファイル２０２から取り出し、当該ソースコードとソースコードが実行時に使用するデータやファイルを含む機能検証依頼２０３を作成し、当該機能検証依頼２０３を、前記作成者が指示した前記検証サーバ１２０に送信する。
次に、検証サーバ１２０の動作について説明する。
第１１図は、作成端末１１０が、前記ソースコードの機能検証を、検証サーバ１２０に依頼する場合の、検証サーバ１２０の動作フローを示した図である。
まず、ステップ１１０１において、前記ソースコード受信処理部２１１が、前記作成端末１１０から前記機能検証依頼２０３を待ち受ける。前記機能検証依頼２０３を受信すると、前記ソースコード受信処理部２１１は、当該機能検証依頼２０３から取り出した、前記ソースコードをソースコードファイル２１２に格納し（ステップ１１０３）、前記作成端末１１０から前記ソースコードを受信したという情報を、前記表示装置１２２に表示する（ステップ１１０４）。その後、ステップ１１０１に遷移し、再び、前記作成端末１１０から前記機能検証依頼２０３を待ち受ける。
次に、検証サーバ１２０が、前記ソースコードの機能検証、モバイルコード１４６ｃの作成と、当該モバイルコード１４６ｃの配布サーバ１３０への登録を行う場合の、検証サーバ１２０および配布サーバ１３０の機能ブロック構成および動作について説明する。
第３図は、検証サーバ１２０でソースコードの機能を検証し、当該ソースコードから作成したモバイルコード１４６ｃを配布サーバ１３０に登録する場合の、検証サーバ１２０および配布サーバ１３０の機能ブロック構成を示した図である。ここで、検証サーバ１２０の各機能ブロックは、検証サーバ１２０のＣＰＵ１２５がメモリ１２６に格納された各プログラムをＯＳを介して実行することで実現される。また、配布サーバ１３０の各機能ブロックは、配布サーバ１３０のＣＰＵ１３５がメモリ１３６に格納された各プログラムをＯＳを介して実行することで実現される。
まず、検証サーバ１２０の機能ブロック構成について説明する。
検証サーバ１２０は、第３図に示すように、前記検証サーバ１２０の使用者（以下、単に検証者とも称する）の指示を受け付ける入力部１２３と、前記入力部１２３に入力されたデータなどを表示する表示装置１２２と、前記入力部１２３から入力された、前記検証者の指示にしたがって、前記記憶装置１２４に格納された前記ソースコードの機能を検証する、機能検証処理部３０１と、前記ソースコードからモバイルコード１４６ｃを作成するモバイルコード作成処理部３０２と、前記モバイルコード１４６ｃの登録を要求するため、登録要求３０５を配布サーバ１３０に送信する、登録要求送信処理部３０３と、を有している。なお、前記登録要求３０５には、前記モバイルコード作成処理部３０２が作成した、モバイルコード１４６ｃとモバイルコードを格納する場所を指定する情報が含まれている。
次に、配布サーバ１３０の機能ブロック構成について説明する。
配布サーバ１３０は、第３図に示すように、前記配布サーバ１３０の使用者（以下、単に配布者とも称する）の指示を受け付ける入力部１３３と、前記入力部１３３に入力されたデータなどを表示する表示部１３２と、前記検証サーバ１２０から前記登録要求３０５を受信し、当該登録要求３０５に含まれるモバイルコード１４６ｃを、前記記憶装置１３４に格納する、登録要求受信処理部３１１と、を有している。
次に、検証サーバ１２０の動作について説明する。
第１２図は、検証サーバ１２０でソースコードの機能を検証し、当該ソースコードから作成したモバイルコード１４６ｃを配布サーバ１３０に登録する場合の、検証サーバ１２０の動作フローを示した図である。
まず、前記検証者が、機能を検証する前記ソースコードの格納場所と名前を入力部１２３に入力する（ステップ１２０１）と、機能検証処理部３０１は、前記ソースコードファイル２１２から指定された前記ソースコードを検索し、当該ソースコードからモバイルコード１４６ｃの持つ機能を記述した機能仕様５００を作成する（ステップ１２０２）。次に、機能仕様確認画面６００を前記表示装置１２２に表示し（ステップ１２０３）、ステップ１２０４に遷移し、前記検証者の指示を待ち受ける。
第５図は、前記機能検証処理部３０１が作成する前記機能仕様５００の一例を示した図である。この例では、前記ソースコードが、「／ｅｔｃ／ｐａｓｓｗｄ」というファイルに読み込み（５０１）や書き込み（５０４）を行ったり、「／ｂｉｎ／ｒｍ」というプログラムを実行したりする（５０３）などの情報が記述されている。
また、第６図は、前記機能検証処理部３０１が前記表示装置１２２に表示する、前記機能仕様確認画面６００の画面の一例である。前記検証者は、ソースコード表示領域６０１に表示された前記ソースコードと、機能仕様表示領域６０２に表示された前記機能仕様５００とを比較、確認し、前記モバイルコード１４６ｃを作成するか否かを選択する。例えば、前記検証者は、前記表示装置１２２に表示された前記機能仕様５００を確認し、当該モバイルコード１４６ｃが有害な動作を行うものであると判断した場合には、前記検証者は、キャンセル（拒否）ボタン６０４を押すなどによって、前記モバイルコード１４６ｃの作成を拒否することができる。有害な動作とは例えば、本来の動作には関係のないプログラムを起動している、ユーザー端末からデータを読み込んでサーバに転送しているなどの動作である。なお、作成とは、ソースコードから実行コードを作成（コンパイル）し、機能仕様と実行コードと実行時に使用されるデータやファイルを一つにまとめて（アーカイブして）、さらに署名を付加するという処理を行うことを指す。
ここで、前記検証者が前記モバイルコード１４６ｃの作成を拒否するという指示を行った場合には、ステップ１２０９において、前記ソースコードと、前記機能仕様５００とを破棄し、処理を終了する。なお、前記検証者が前記モバイルコード１４６ｃの作成を拒否した場合に、前記作成者に対して作成が拒否された旨をその理由と共に通知してもよい。これによって、前記作成者は当該モバイルコード１４６ｃの修正すべき箇所を知ることができるという効果がある。
一方、前記検証者が、作成ボタン６０３を押すなどによって、前記モバイルコード１４６ｃの作成を選択した場合には、ステップ１２０５に遷移する。
また、ステップ１２０４で、前記検証者が前記機能仕様５００を編集することも可能である。前記検証者が編集ボタン６０５を押すことによって、機能仕様５００の編集を選択した場合には、ステップ１２１０に遷移し、前記機能検証処理部３０１は、機能仕様編集画面７００を前記表示装置１２２に表示し、前記検証者からの指示を待ち受ける（ステップ１２１１）。
第７図は、前記機能検証処理部３０１が前記表示装置１２２に表示する、前記機能仕様編集画面７００の画面の一例である。前記検証者は、この画面を使って、前記機能仕様５００の編集を行う。
ここで、更新ボタン７０２を押すなどによって、編集結果を前記機能仕様５００に反映することを選択した場合には、前記機能検証処理部３０１は、編集結果を反映した機能仕様５００を新たに作成し（ステップ１２１２）、ステップ１２０４に戻る。
一方、キャンセルボタン７０３を押すなどによって、編集結果を前記機能仕様５００に反映しないことを選択した場合には、そのまま、ステップ１２０４に戻る。
ステップ１２０５では、前記機能仕様５００と、検証サーバが作成した前記モバイルコード１４６ｃを特定するためのモバイルコード識別子と、の組を機能仕様登録ファイル３０４に格納し、前記モバイルコード作成処理部３０２に処理を移す。
前記モバイルコード作成処理部３０２は、ステップ１２０６で、実行コードと、検証者の署名とを生成し、モバイルコード１４６ｃを作成する。
次に、ステップ１２０７で、前記検証者が、前記モバイルコード１４６ｃを登録する配布サーバ１３０の名前とその中の格納場所を入力すると、前記登録要求送信処理部３０３は、前記モバイルコード１４６ｃと、その格納場所などを含んだ登録要求３０５を作成し、指定された配布サーバ１３０に、前記登録要求３０５を送信し（ステップ１２０８）、処理を終了する。なお、前記モバイルコード１４６ｃを前記配布サーバ１３０に登録した場合に、前記作成者に対してその旨を通知してもよい。これにより、前記作成者は前記モバイルコード１４６ｃが確かに作成されたことを知ることができるという効果がある。
次に、配布サーバ１３０の動作について説明する。
第１３図は、検証サーバ１２０でソースコードの機能を検証し、当該ソースコードから作成した当該モバイルコード１４６ｃを配布サーバ１３０に登録する場合の、配布サーバ１３０の動作フローを示した図である。
まず、ステップ１３０１において、前記登録要求受信処理部３１１が、前記検証サーバ１２０から前記登録要求３０５を待ち受ける。前記登録要求３０５を受信する（ステップ１３０２）と、前記登録要求受信処理部３１１は、前記登録要求３０５に含まれるモバイルコード１４６ｃを、指定された格納場所に格納し（ステップ１３０３）、前記検証サーバ１２０から前記モバイルコード１４６ｃを受信したという情報を、前記表示部１３２に表示する（ステップ１３０４）。その後、ステップ１３０１に遷移し、再び、前記検証サーバ１２０から前記登録要求３０５を待ち受ける。
次に、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、ユーザー端末１４０および配布サーバ１３０の機能ブロック構成および動作について説明する。
第４図は、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取る際の、ユーザー端末１４０および配布サーバ１３０の機能ブロック構成を示す図である。ここで、ユーザー端末１４０の各機能ブロックは、ユーザー端末１４０のＣＰＵ１４５がメモリ１４６に格納された各プログラムをＯＳを介して実行することで実現される。また、配布サーバ１３０の各機能ブロックは、配布サーバ１３０のＣＰＵ１３５がメモリ１３６に格納された各プログラムをＯＳを介して実行することで実現される。
まず、ユーザー端末１４０の機能ブロック構成について説明する。
ユーザー端末１４０は、第４図に示すように、前記ユーザー端末１４０の使用者（以下、単にユーザーとも称する）の指示を受け付ける入力部１４３と、前記入力部１４３に入力されたデータや、配布サーバ１３０から送られてきたデータなどを表示する表示部１４２と、前記入力部１４３に入力された前記ユーザーの指示にしたがい、配布サーバ１３０に対してモバイルコード１４６ｃの配送要求４１７を送信する、要求送信処理部４１１と、前記配布サーバ１３０からモバイルコード１４６ｃを受信するモバイルコード受信処理部４１２と、前記モバイルコード１４６ｃに付加された署名を検証する署名検証処理部４１３と、前記モバイルコード１４６ｃの機能を確認する機能確認処理部４１４と、前記モバイルコード１４６ｃを実行するモバイルコード実行処理部４１５と、を有する。
次に、配布サーバ１３０の機能ブロック構成について説明する。
配布サーバ１３０は、第４図に示すように、ユーザー端末１４０から前記配送要求４１７を受け付ける要求受信処理部４０１と、当該配送要求４１７にしたがい、モバイルコード１４６ｃを含む上記配布データを前記ユーザー端末１４０に送信するモバイルコード送信処理部４０２と、を有する。
次に、ユーザー端末１４０の動作について説明する。
第１４図は、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、ユーザー端末１４０の動作フローを示した図である。
まず、前記モバイルコード１４６ｃの名前や格納場所を示す情報（ファイル名やディレクトリ名など）を用いて、前記配布サーバ１３０に置かれているモバイルコード１４６ｃなどのダウンロードが指示される（ステップ１４０１）と、要求送信処理部４１１は、前記配布サーバ１３０に、前記モバイルコード１４６ｃの配送要求４１７を送信する（ステップ１４０２）。前記モバイルコード１４６ｃの名前や格納場所を示す情報としては、例えば、本実施形態のように、Ｂｒｏｗｓｅｒプログラムを利用してデータを受信する場合には、配布データの名前や格納場所を示す情報として、配布サーバ１３０のアドレスとファイル名とを連結した、いわゆるＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒｓ（ＵＲＬｓ）を用いる。
次に、ステップ１４０３において、前記モバイルコード受信処理部４１２が、前記配布サーバ１３０からの配付データを待ち受け、前記配布サーバ１３０から、前記モバイルコード１４６ｃなどを受け取ると、前記署名検証処理部４１３に処理を移す。ステップ１４０４において、前記署名検証処理部４１３は、前記モバイルコード１４６ｃに付加されている、前記検証者の署名を検証する上記ダウンロードの指示方法として、
（１）前記ユーザがＵＲＬを明示的に指定する
（２）閲覧中のＨＴＭＬファイルにモバイルコードのＵＲＬが指定されていて、Ｂｒｏｗｓｅｒプログラム１４６ｂが自動的にダウンロード指示を出す
がある。また、
（３）配布サーバ１３０がＰＵＳＨ技術を用いて、モバイルコード１４６ｃを送付してくる場合もある
が、このとき、ステップ１４０１、１４０２は省略される。
ここで、前記モバイルコード１４６ｃの完全性（前記検証サーバ１２０が当該モバイルコード１４６ｃを作成した時点から当該モバイルコード１４６ｃに対して改ざんがなされていない）が確認できなかった場合や、前記検証者を信頼することができないと判断した場合には、その旨を表示部１４２に表示した後（ステップ１４１２）、ステップ１４１３に移行し、処理を終了する。なお、検証者を信頼することができるか否かを判断する方法については、従来の署名付きコードにおいて、その署名者を信頼できるか否かを判断する方法と同じであり、詳細な説明は省略する。
一方、ステップ１４０５において、前記モバイルコード１４６ｃの完全性が確認され、かつ、前記検証者を信頼することができると判断した場合には、前記機能確認処理部４１４に処理を移す。前記機能確認処理部４１４は、前記モバイルコード１４６ｃから、当該モバイルコード１４６ｃの機能仕様５００を取り出し（ステップ１４０６）、記憶装置１４４の機能仕様管理ファイル４１６に記録された、第９図に示すようなテーブルに同じ機能仕様５００が登録されているか否かを確認する（ステップ１４０７）。
なお、機能仕様管理ファイル４１６は、機能仕様５００が、その実行が許可される度に順次登録された、あるいは、信頼できる、第３者やシステムの管理者によって、あらかじめ配布された、実行が許可された実績のある（すなわち安全な）機能仕様を格納したファイルである。第９図は、安全な機能仕様５００が、順番に番号が付けられて前記機能仕様管理ファイル４１６に登録されている例を示している。
ここで、前記機能仕様管理ファイル４１６に同じ機能仕様５００が登録されている場合には、ステップ１４１１に移行し、前記モバイルコード実行処理部４１５に処理を移す。
一方、同じ機能仕様５００が前記機能仕様管理ファイル４１６に登録されていなかった場合には、ステップ１４０８で、表示部１４２に、実行確認画面８００を表示し、当該モバイルコード１４６ｃを実行するか否かの指示を前記ユーザーに求める。
第８図は、前記実行確認画面８００の一例である。この例では、現在実行しようとしているモバイルコード１４６ｃが「／ｅｔｃ／ｐａｓｓｗｄ」というファイルからデータを読み込んだり（８１１）、読み込んだデータをｗｗｗ．ｆｏｏ．ｃｏ．ｊｐというコンピュータに転送する（８１３）などの情報が表示されている。
また、第２０図は、前記実行確認画面８００の他の一例である。この例では、現在実行しようとしているモバイルコード１４６ｃが「／ｅｔｃ／ｐａｓｓｗｄ」というファイルに読み込み（２０１１）や書き込み（２０１４）を行ったり、「／ｂｉｎ／ｒｍ」というプログラムを実行（２０１５）したりするなどの情報が表示されている。
いずれの場合も、前記ユーザーは、画面に表示された情報により、現在実行しようとしている前記モバイルコード１４６ｃの機能を確認し、当該モバイルコード１４６ｃの実行を許可するか否かを選択する。
ここで、前記ユーザーが、実行ボタン８２０を押すなど、入力部１４２から、前記モバイルコード１４６ｃを実行するという指示を入力した場合には、前記機能確認処理部４１４は、前記機能仕様管理ファイル４１６に、前記モバイルコード１４６ｃの機能仕様５００を新規に追加し（ステップ１４１０）、ステップ１４１１に移行して、前記モバイルコード実行処理部４１５に処理を移行する。
一方、前記ユーザーが拒否ボタン８３０を押すなど、入力部１４２から、前記モバイルコード１４６ｃの実行を認めないという指示を入力した場合には、ステップ１４１３に移行する。
ステップ１４１１では、モバイルコード実行処理部４１４が前記モバイルコード１４６ｃを実行する。なお、本実施例におけるモバイルコード１４６ｃの実行とは、当該モバイルコードに含まれる実行コードの実行を意味する。
次に、配布サーバ１３０の動作について説明する。
第１５図は、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、配布サーバ１３０の動作フローを示した図である。
まず、ステップ１５０１で、前記要求受信処理部４０１が、前記ユーザー端末１４０から配送要求４１７を待ち受け、前記ユーザー端末１４０から配送要求４１７を受信すると、前記モバイルコード送信処理部４０２に処理を移す。前記モバイルコード送信処理部４０２は、当該配送要求４１７に応じた前記モバイルコード１４６ｃを、必要に応じてマルチメディアファイルなどを添付して、前記ユーザー端末１４０に送信する（ステップ１５０３）。その後、ステップ１５０１に戻って、再び、前記ユーザー端末１４０から配送要求４１７を待ち受ける。
以上述べたように、本実施例では、モバイルコード１４６ｃには、検証サーバ１２０によって作成された、当該モバイルコード１４６ｃの持つ機能を記述した機能仕様５００が含まれている。ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを受信した場合、前記モバイルコード１４６ｃを実行する前に、当該モバイルコード１４６ｃから取り出した前記機能仕様５００を、それが実行許可されたものでない場合でも、前記ユーザーに提示し、当該モバイルコード１４６ｃを実行するか否かを選択させる。このため、前記ユーザー端末１４０は、モバイルコード１４６ｃの持つ機能に基づいて、当該モバイルコード１４６ｃを実行するか否かを決定することができる。
次に、本発明の他の実施形態として、機能仕様５００を検証サーバ１２０で集中管理する実施形態について説明する。
本実施形態では、モバイルコード１４６ｃには、当該モバイルコード１４６ｃの実行コード以外に、当該モバイルコード１４６ｃを他と区別するためのモバイルコード識別子や、前記検証者の署名（本実施形態でも署名を検証するために必要なすべてのデータをまとめて署名と記述する）や、モバイルコード自身が使用するデータやファイルが含まれており、モバイルコード１４６ｃ自体の完全性の確認に利用可能である。
なお、機能仕様５００を検証サーバ１２０で集中管理する実施形態のシステムの機器概略構成、およびハードウェア構成は、前述の、モバイルコード１４６ｃに機能仕様５００が含まれる実施形態と同じであり、その詳細な説明は省略する。
同様に、前記作成者が作成端末１１０で前記ソースコードを作成する場合の、前記作成端末１１０の機能ブロック構成、および動作については、従来のモバイルコードシステムと同じであり、その詳細な説明は省略する。
同様に、作成端末１１０が、モバイルコード１４６ｃの機能検証を、検証サーバ１２０に依頼する場合の、前記作成端末１１０、および前記検証サーバ１２０の機能ブロック構成、および動作については、前述の、モバイルコード１４６ｃに機能仕様５００が含まれる実施形態と同じであり、その詳細な説明は省略する。
また、検証サーバ１２０でモバイルコード１４６ｃの機能検証を行い、配布サーバ１３０に登録する場合の、前記検証サーバ１２０、および前記配布サーバ１３０の機能ブロック構成、および動作については、第１２図のステップ１２０６においてモバイルコード１４６ｃを作成する際に、機能仕様５００の代わりに当該機能仕様５００と対応づけて作成したモバイルコード識別子を用いる以外は、前述の、モバイルコード１４６ｃに機能仕様５００が含まれる実施形態と同じであり、その詳細な説明は省略する。
まず、本実施例において、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、検証サーバ１２０、ユーザー端末１４０、および配布サーバ１３０の機能ブロック構成および動作について説明する。
第１６図は、本実施例において、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、検証サーバ１２０、配布サーバ１３０、およびユーザー端末１４０の機能ブロック構成を示した図である。
検証サーバ１２０は、第１６図に示すように、ユーザー端末１４０から機能仕様要求４１８を受信し、当該ユーザー端末１４０に要求された機能仕様５００を送信する、機能仕様送信処理部１６２１を有している。
なお、第１６図において、ユーザー端末１４０、および配布サーバ１３０の機能ブロック構成は、第４図に示したものと同じであり、その詳細な説明は省略する。ただし、本実施例では、ユーザー端末１４０の機能確認処理部４１４は、前記検証サーバ１２０に機能仕様要求４１８を送信し、前記検証サーバ１２０から機能仕様５００を受信するという処理も行う。
次に、ユーザー端末１４０の動作について説明する。
第１７図は、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、ユーザー端末１４０の動作フローを示した図である。
この図において、ステップ１４０１からステップ１４０５とステップ１４０７からステップ１４１２までは第１４図と同じであり、説明を省略する。
ステップ１４０５の判断結果により、前記機能確認処理部４１４に処理が移ると、
前記機能確認処理部４１４は、前記モバイルコード１４６ｃから、モバイルコード識別子を取り出し、当該モバイルコード識別子を含む、機能仕様要求４１８を前記配布サーバ１２０に送信する（ステップ１７０１）。ステップ１７０２で、前記配布サーバ１２０から前記モバイルコード識別子に対応する機能仕様５００を受信すると、あらかじめ記憶装置１４４の機能仕様管理ファイル４１６に記憶された、第９図に示したようなテーブルに同じ機能仕様５００が登録されているか否かを確認する（ステップ１４０７）。
以下のステップの動作は、第１４図と同じなので、説明を省略する。
次に、検証サーバ１２０の動作について説明する。
第１８図は、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを含む上記配布データを受け取り、当該モバイルコード１４６ｃを実行する際の、前記検証サーバ１２０の動作フローを示した図である。
まず、仕様送信処理部１６２１は、ステップ１８０１で、前記ユーザー端末１４０から前記機能仕様要求４１８を待ち受ける。前記機能仕様要求４１８を受信した場合には、前記機能仕様要求４１８に含まれているモバイルコード識別子を取り出し（ステップ１８０３）、機能仕様登録ファイル３０４から、当該モバイルコード識別子に対応する機能仕様５００を検索する（ステップ１８０４）。前記機能仕様５００を、前記ユーザー端末１４０に送信し（ステップ１８０５）、ステップ１８０１に戻り、再度、前記ユーザー端末１４０から前記機能仕様要求４１８を待ち受ける。
なお、配布サーバ１３０の動作については、前述の、モバイルコード１４６ｃに機能仕様５００が含まれる実施形態と同じであり、その詳細な説明は省略する。
以上述べたように、本実施例では、検証サーバ１２０が、ソースコードの機能を検証した際に作成した、機能仕様５００と前記モバイルコード１４６ｃを一意に特定するためのモバイルコード識別子との組を管理している。かつ、モバイルコード１４６ｃには、前記モバイルコード識別子が含まれており、ユーザー端末１４０が、配布サーバ１３０からモバイルコード１４６ｃを受信した場合、まず、モバイルコード１４６ｃから取り出したモバイルコード識別子を検証サーバ１２０に送信する。モバイルコード識別子を受信した検証サーバ１２０では、モバイルコード識別子に対応する機能仕様５００を検索し、前記ユーザー端末１４０に返信する。前記機能仕様５００を受信した前記ユーザー端末１４０は、当該機能仕様５００が許可済みの機能仕様でなければ、それを前記ユーザーに提示し、当該モバイルコード１４６ｃを実行するか否かを選択させる。このため、前記ユーザー端末１４０は、モバイルコード１４６ｃの持つ機能に基づいて、当該モバイルコード１４６ｃを実行するか否かを決定することができる。
なお、以上の各実施例において、各プログラムが行う、種々の「要求」、「依頼」を含む通信は、周知のプログラム（あるいは、モジュール、プロセス）間の通信技術（たとえば、”ソケット”が知られている）を使用することで実現できるものである。
また、各プログラムが行う送受信は、各計算機ハードウェアのＯＳと、通信網インタフェースと、通信網を介して行われるものである。
また、各表示装置への表示や入力装置からの入力は、それぞれ、表示部や入力部のプログラムが、ＯＳを介して、あるいは、直接に行うものである。
なお、本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
たとえば、上記の実施形態では、検証サーバ１２０と、配布サーバ１３０と、は異なる計算機ハードウェア上に構成しているが、本発明はこれに限定されない。すなわち、検証サーバ１２０と、配布サーバ１３０と、を同じ計算機ハードウェア上に構成してもよい。同様に、作成端末１１０と、検証サーバ１２０と、を同じ計算機ハードウェア上に構成してもよい。同様に、作成端末１１０と、配布サーバ１３０と、を同じ計算機ハードウェア上に構成してもよい。さらには、作成端末１１０と、検証サーバ１２０と、配布サーバ１３０と、を同じ計算機ハードウェア上に構成してもよい。これらの場合、各サーバ、端末の機能を実現するプログラムは、同じ計算機ハードウェア上で、ＯＳにより互いに独立したプログラム（プロセス）として、その動作が管理されることになる。
また、検証サーバ１２０は、作成した前記モバイルコード１４６ｃを作成端末１１０に送信し、作成端末１１０が配布サーバ１３０に登録するようにしてもよい。このようにすることで、作成者はモバイルコード１４６ｃを登録する配布サーバ１３０を選択することができる。
また、作成端末１１０は、前記ソースコードを配布サーバ１３０に登録し、配布サーバ１３０が、検証サーバ１２０にモバイルコード１４６ｃの機能検証を依頼するようにしてもよい。このようにすることで、配布者は自らが信頼する検証者に機能検証を依頼することができる。
また、前記作成端末１１０において、作成者が前記機能仕様５００を作成し、前記ソースコードと共に当該機能仕様５００を、検証サーバ１２０に送信するようにしてもよい。このようにすることで、検証者は、前記機能仕様５００が不正な動作をするものでないことと、前記ソースコードが当該機能仕様５００の通りに実装されたものであることと、を確認することによって、モバイルコード１４６ｃが不正な動作を行うものでないことを保証することができる。検証者サーバ１２０に機能仕様５００を作成する機能は不要となる。
また、検証者に機能を確認させる前に、不正な処理を行うモバイルコード１４６ｃの機能仕様５００の特徴を、リストにまとめ、検証サーバ１２０の記憶装置１２４に保存しておいてもよい。そして検証対象となっているソースコードから作成する機能仕様５００が、前記リストに該当する特徴を持つか否かを確認することによって、当該モバイルコード１４６ｃが不正な処理を行うか否かを確認する処理を組み込んでもよい。このようにすることで、既知の不正処理手法を用いた、前記リストに該当するモバイルコード１４６ｃについては、検証者が機能検証を行う手間を省くことができるので、効率がよくなる。
また、前記作成端末１１０は、検証サーバ１２０に対し、前記モバイルコード１４６ｃの実行コードと機能仕様を送信するようにしてもよい。この場合、第１２図においてステップ１２０２が不要となる。またステップ１２０１の「ソースコード指定」が「実行コード指定」に、ステップ１２０９の「ソースコード破棄」が「実行コード破棄」に変更される。さらに、ステップ１２０６において、ソースコードから実行コードをコンパイルする機能を不要とすることができる。
また、上記の実施形態では、作成端末１１０と、検証サーバ１２０と、配布サーバ１３０と、ユーザー端末１４０と、の間で、通信網１００を介してやり取りされる情報の機密性や完全性の確保について特別な手段を用いていないが、本発明は、様々な暗号手段や認証手段を併用することを妨げるものではない。通信網１００を流れる情報に対して、暗号手段や認証手段を適用することにより、システム全体の安全性をさらに高めることができる。
また、上記の実施形態では、前記ユーザーが実行を許可したモバイルコード１４６ｃは、他のプログラムを自由に起動するなど、ユーザー端末１１０のあらゆるリソースを使用することができると仮定している。しかし、たとえば、モバイルコード１４６ｃが他のプログラムに各種サービスを要求する場合には、Ｂｒｏｗｓｅｒプログラム１４６ｂ、またはＯＳ１４６ａが、機能仕様５００を前記他のプログラムに渡すようにし、前記機能仕様５００を渡されたプログラムは、モバイルコード１４６ｃからの要求を実行するか否かを、当該機能仕様５００に基づいて判断するようにしてもよい。
また、上記の実施形態では、作成端末１１０と検証サーバ１２０との間のデータのやり取りは、通信網１００を介して行うようにしているが、本発明はこれに限定されない。作成端末１１０で作成した前記ソースコードをフロッピーディスクなどの記憶媒体に記録し、前記検証者に渡すようにしてもよい。同様に、検証サーバ１２０と配布サーバ１３０との間のデータのやり取りも、モバイルコード１４６ｃを記憶媒体に記録し、前記配布者に渡すようにしてもよい。
産業上の利用可能性
以上説明したように、本発明によれば、モバイルコードが持っている機能に基づいて、当該モバイルコードを実行するか否かを決定することができるのでより安全である。
【図面の簡単な説明】
第１図は、本発明の一実施形態が適用されたモバイルコード配布システムの機器概略構成、及びハードウェア構成を示す図であり、第２図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの機能検証依頼処理に関係した、作成端末および検証サーバの機能ブロック構成を示す図であり、第３図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの機能検証処理および登録処理に関係する、検証サーバおよび配布サーバの機能ブロック構成を示す図であり、第４図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの実行処理に関係する、配布サーバおよびユーザー端末の機能ブロック構成を示す図であり、第５図は、第３図において、検証サーバが作成する機能仕様の一例を示す図であり、第６図は、第３図において、検証サーバが検証者に対して表示する機能仕様確認画面の画面の一例であり、第７図は、第３図において、検証サーバが検証者に対して表示する機能仕様編集画面の画面の一例であり、第８図は、第４図において、ユーザー端末がユーザーに対して表示する実行確認画面の一例であり、第９図は、第４図に示す機能仕様管理ファイルに格納されている情報の一例を説明するための図であり、第１０図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの機能検証依頼処理に関係する、作成端末の動作を説明するためのフロー図であり、第１１図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの機能検証依頼処理に関係する、検証サーバの動作を説明するためのフロー図であり、第１２図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの機能検証処理に関係する、検証サーバの動作を説明するためのフロー図であり、第１３図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの登録に関係する、配布サーバの動作を説明するためのフロー図であり、第１４図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの実行に関係する、配布サーバの動作を説明するためのフロー図であり、第１５図は、本発明の一実施形態が適用されたシステムにおいて、モバイルコードの実行に関係する、ユーザー端末の動作を説明するためのフロー図であり、第１６図は、本発明の他の実施形態が適用されたシステムにおいて、モバイルコードの実行に関係する、検証サーバ、配布サーバおよびユーザー端末の機能ブロック構成を示す図であり、第１７図は、本発明の他の実施形態が適用されたシステムにおいて、モバイルコードの実行に関係する、ユーザー端末の動作を説明するためのフロー図であり、第１８図は、本発明の他の実施形態が適用されたシステムにおいて、モバイルコードの実行に関係する、検証サーバの動作を説明するためのフロー図であり、第１９図は、従来のモバイルコードにおけるセキュリティ機能を説明するためのフロー図であり、第２０図は、第４図において、ユーザー端末がユーザーに対して表示する実行確認画面の一例である。
【図１】
0003873624.tif 000002
【図２】
0003873624.tif 000003
【図３】
0003873624.tif 000004
【図４】
0003873624.tif 000005
【図５】
0003873624.tif 000006
【図６】
0003873624.tif 000007
【図７】
0003873624.tif 000008
【図８】
0003873624.tif 000009
【図９】
0003873624.tif 000010
【図１０】
0003873624.tif 000011
【図１１】
0003873624.tif 000012
【図１２】
0003873624.tif 000013
【図１３】
0003873624.tif 000014
【図１４】
0003873624.tif 000015
【図１５】
0003873624.tif 000016
【図１６】
0003873624.tif 000017
【図１７】
0003873624.tif 000018
【図１８】
0003873624.tif 000019
【図１９】
0003873624.tif 000020
【図２０】
0003873624.tif 000021