(57)【特許請求の範囲】
【請求項１】
実行可能コードのネットワーク・セキュリティを講じる方法において、
（ａ）ネットワーク情報要求を受信するステップと、
（ｂ）呼び出された時、実行可能コードをダウンロードするネットワーク言語キーワードを該ネットワーク情報が含んでいるかどうかを判断するステップと、
（ｃ）対応する実行可能コードへの新しい特有の参照を有する該ネットワーク言語キーワードを生成し、該ネットワーク言語キーワードの存在に応答して該特有の参照を使用する該対応する実行可能コードを記憶するステップと、
（ｄ）該ネットワーク言語キーワードに該特有の参照が組み込まれたネットワーク情報を送信するステップと、そして
（ｅ）該特有の参照が組み込まれた該ネットワーク言語キーワードが呼び出されたときに該対応する実行可能コードを供給するステップと、
を具有することを特徴とする方法。
【請求項２】
上記ステップ（ｃ）が、さらに、
上記第１の対応する実行可能コードを記憶するステップ
を具有することを特徴とする請求項１記載の方法。
【請求項３】
さらに、
（ｆ）複数のネットワーク言語キーワードを含むネットワーク情報に応答して、対応する実行可能コードに対するそれぞれ特有の、対応する複数の参照を生成するステップと、
（ｇ）複数のネットワーク言語キーワードの各ネットワーク言語キーワードにそれぞれ特有の参照が組み込まれたネットワーク情報を供給するステップと、そして
（ｈ）それぞれ特有の参照が組み込まれたネットワーク言語キーワードが呼び出された時、対応する実行可能コードを供給するステップと、
を具有することを特徴とする請求項１の記載の方法。
【請求項４】
さらに、
複数組の複数のネットワーク言語キーワードを生成するステップで、複数のネットワーク言語キーワードの各組が別個のネットワーク情報要求に対応し、該各組の複数のネットワーク言語キーワードの中の各ネットワーク言語キーワードが対応する実行可能コードに対するそれぞれ特有の参照を有するステップ
を具有することを特徴とする請求項３記載の方法。
【請求項５】
上記ネットワーク情報がワールドワイドウェブ・ページであることを特徴とする請求項１記載の方法。
【請求項６】
上記ネットワーク言語キーワードがアプレットタグであることを特徴とする請求項１記載の方法。
【請求項７】
上記ネットワーク言語キーワードがＨＴＭＬキーワードであることを特徴とする請求項１記載の方法。
【請求項８】
上記ネットワーク言語キーワードがスクリプト言語キーワードであることを特徴とする請求項１記載の方法。
【請求項９】
上記特有の参照がランダムに生成されることを特徴とする請求項１記載の方法。
【請求項１０】
上記特有の参照が、特有の参照の所定の集合から選択されることを特徴とする請求項１記載の方法。
【請求項１１】
上記特有の参照がＪａｖａクラス名であることを特徴とする請求項１記載の方法。
【請求項１２】
上記対応する実行可能コードがＪａｖａプログラミング言語バイトコードであることを特徴とする請求項１記載の方法。
【請求項１３】
実行可能コードのネットワーク・セキュリティを講じる装置であって、
（ａ）ネットワーク情報要求を受信するように適合されたネットワーク・インタフェースと、そして
プロセッサと
を具有し、
該プロセッサが、
（ｂ）呼び出されたときに実行可能コードをダウンロードするネットワーク言語キーワードを該ネットワーク情報が含んでいるかどうかを判断し、
（ｃ）対応する実行可能コードへの新しい特有の参照を有する該ネットワーク言語キーワードを生成し、該ネットワーク言語キーワードの存在に応答して該特有の参照を使用する該対応する実行可能コードを記憶し、
（ｄ）該ネットワーク言語キーワードに該特有の参照が組み込まれたネットワーク情報を該ネットワーク・インタフェースによって送信し、そして
（ｅ）該特有の参照が組み込まれた該ネットワーク言語キーワードが呼び出された時、該ネットワーク・インタフェースによる送信のために該対応する実行可能コードを供給する、
ことを特徴とする装置。
【請求項１４】
さらに、
プロセッサに接続されていて上記対応する実行可能コードを記憶する記憶システム、
を具有することを特徴とする請求項１３の装置。
【請求項１５】
上記プロセッサが、さらに、
ネットワーク情報が複数のネットワーク言語キーワードを有する場合、対応する実行可能コードに対するそれぞれ特有の複数の参照を生成し、
ネットワーク・インタフェースによる送信のために、複数のネットワーク言語キーワードの各ネットワーク言語キーワードにそれぞれ特有の参照が組み込まれたネットワーク情報を供給し、そして
それぞれ特有の参照が組み込まれた該複数のネットワーク言語キーワードの中のあるネットワーク言語キーワードが呼び出された時、ネットワーク・インタフェースによる送信のために、該対応する実行可能コードを供給する、
ことを特徴とする請求項１３記載の装置。
【請求項１６】
プロセッサが、さらに、
複数組の複数のネットワーク言語キーワードで、該複数組の各複数のネットワーク言語キーワードが別個のネットワーク情報要求に対応する複数組の複数のネットワーク言語キーワードを生成し、かつ該各複数のネットワーク言語キーワードの中の各ネットワーク言語キーワードに、対応する実行可能コードに対するそれぞれ特有の参照が組み込まれる、ことを特徴とする請求項１５記載の装置。
【請求項１７】
ネットワーク情報がワールドワイドウェブ・ページであることを特徴とする請求項１３記載の装置。
【請求項１８】
第１のネットワーク言語キーワードがアプレットタグであることを特徴とする請求項１３記載の装置。
【請求項１９】
第１のネットワーク言語キーワードがオブジェクトタグであることを特徴とする請求項１３記載の装置。
【請求項２０】
第１のネットワーク言語キーワードがＨＴＭＬキーワードであることを特徴とする請求項１３記載の装置。
【請求項２１】
第１のネットワーク言語キーワードがスクリプト言語キーワードであることを特徴とする請求項１３記載の装置。
【請求項２２】
プロセッサが、さらに、第１の特有の参照をランダムに生成することを特徴とする請求項１３記載の装置。
【請求項２３】
プロセッサが、さらに、第１の特有の参照を特有の参照の所定の集合から選択することを特徴とする請求項１３記載の装置。
【請求項２４】
上記特有の参照がＪａｖａクラス名であることを特徴とする請求項１３記載の装置。
【請求項２５】
上記対応する実行可能コードがＪａｖａプログラミング言語バイトコードであることを特徴とする請求項１３記載の装置。
【請求項２６】
上記装置がサーバによって実施されることを特徴とする請求項１３記載の装置。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、コンピュータ・ネットワークや通信ネットワークのようなネットワークにおいてセキュリティ機能を確立しかつ強化するための技術に関するものである。より詳しくは、本発明はコンピュータ・ネットワークあるいは通信ネットワークにおいて実行可能コード用のネットワーク・セキュリティを講じるための装置、方法及びシステムに関連する。
【０００２】
発明の背景
ネットワーク・セキュリティは、企業内で運用されるイントラネットでも、またより大きいあるいはよりグローバルなデータに対するインターネットやワールドワイドウェブのようなコンピュータ・ネットワーク及び通信ネットワークでもネットワークユーザにとってますます重要な問題になって来ている。ネットワーク・セキュリティ機能を講じるためには、これまでアクセス制御、保護通信、セキュリティ支援及びセキュリティポリシー・マネジメントなどの価値のある重要な技術が開発されている。
【０００３】
アクセス制御は、特定のユーザまたはエンドシステム、あるいはユーザ起動通信が特定のコンピューティング・リソースまたは通信リソースにアクセス権を与えられるべきかどうかの判断に関係する。例えば、企業イントラネットのような同じネットワーク上で全て利用可能であっても、ある特定のユーザあるいはユーザの部門は電子メール（ｅｍａｉｌ）機能性へのアクセス権を与えるが、経理機能についてはアクセス権を与えないようにすることができる。
【０００４】
同様に、他のセキュリティ機能（保護通信と称する）は、情報あるいは他のデータが無許可の個人には確実に利用できないようにする、例えば無許可のユーザがアクセスしたり、修正したり、あるいは読み取ったり、コピーしたりすることができないようにするための方法に関係する技術である。また、他のセキュリティ機能には、ネットワークシステムの他の部分のセキュリティを確保するように種々のネットワーク機器でサポートし、ネットワークのセキュリティポリシーを決める実際のネットワークデータを管理することが含まれる。
【０００５】
しかしながら、セキュリティ対策が発展するにつれて、セキュリティ侵害戦術はますます巧妙化して来た。パスワード保護及び個人識別番号（「ＰＩＮ」番号）は、コンピュータのような機器・装置の物理的セキュリティを得るため、また口座、記録、プログラム及びその他の機密性が高い情報へのアクセス制御のようなコンピュータシステム及びコンテンツに対するアクセス制御を達成するために用いられて来た周知のセキュリティ対策である。このようなセキュリティ対策をくぐり抜ける種々の試みとしては、例えば適正なプログラムまたはアプリケーションの代わりに（ユーザが気付かないまま）ローグ・プログラムあるいは他のアプリケーションが使用される「トロイの木馬」攻撃がある。ユーザが適正なプログラムまたはアプリケーションを使おうとすると、代わりにローグ・プログラムまたはローグ・アプリケーションが実行され、これに伴ってしばしば有害な結果がもたらされる。従来コンピュータ「ハッカー」によって使用される周知の種々の「トロイの木馬」攻撃は、実行時にユーザのパスワードあるいは口座ＰＩＮ番号をハッカーに送信するプログラムのインストールを伴うものであった。そうすることによって、このような攻撃はユーザの銀行口座のように従来ユーザのパスワードあるいはＰＩＮ番号によって保護されていたどのようなシステムでも、それぞれの状況に応じたセキュリティ侵害を可能にする。
【０００６】
Ｊａｖａ（登録商標）言語、コンパイラ、インタプリタ及び全Ｊａｖａアーキテクチャ（個別に、また集合的に「Ｊａｖａ」あるいは「Ｊａｖａアーキテクチャ」と称する）は、コンピュータ／通信ネットワーキング・アプリケーション及びその他のアプリケーションのためにサン・マイクロシステムズ（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．）社（「サン（Ｓｕｎ）」）によって開発された。Ｊａｖａは、ネットワークから（すなわち、クライアント‐サーバ・ネットワークのネットワークサーバ側から）発する上記のような「トロイの木馬」またはその他の攻撃を阻むように設計されている。ワールドワイドウェブ（「ウェブ」）及びその他のインターネット・アプリケーションに関しては、現行の多くのウェブブラウザはＪａｖａ対応で（すなわち、ウェブブラウザにＪａｖａ仮想マシン（「ＪＶＭ」）用のプログラム命令が入っている）、これによってＪａｖａバイトコードのローカル実行が可能になる。ネットワークユーザは、Ｊａｖａ対応ブラウザを用いてウェブページにアクセスして情報を要求するとき、「アプレット」または「アップレット・パッケージ」と呼ばれる実行可能なアプリケーションまたはプログラム・パッケージをバイトコード形式でユーザ側エンドシステム（クライアント‐サーバ・ネットワークのクライアント側）にダウンロードすることができる。そして、アプレット（バイトコード形式）はウェブブラウザのＪＶＭによって実行され、ネットワークからダウンロードされた何らかのデータと結合されて、ユーザ側エンドシステム上でローカルに実行されるアプリケーションが得られる。このようなローカルで走るアプリケーションとしては、対話型ウェブページ、対話型ゲーム・アプリケーション、あるいは対話型スプレッドシートがある。
【０００７】
このような根本的に外来のプログラムコードをローカル実行のためにダウンロードする場合、固有のセキュリティ問題が起こり得、従ってそれらの問題は従来Ｊａｖａアーキテクチャ内で前もって対応がなされ、回避されるようになっている。Ｊａｖａアーキテクチャには、このようなダウンロードされたプログラムがユーザのプライベートリソースあるいはネットワーク外リソースに干渉するのを防ぐセキュリティ機能が含まれている。「Ｊａｖａサンドボックス」と呼ばれるこの機能で、Ｊａｖａアーキテクチャは（リモート側ウェブサーバからローカル側エンドシステムにダウンロードされた）信用できないアプレットあるいは潜在的に犯意のあるアプレットがローカル側のハードディスク・ドライブのようなプライベートリソースに対して読取り、書込み、あるいは実行等をするのを阻止するようになっている。他のセキュリティ機能の中でも特徴的なのは、Ｊａｖａ言語は、ポインタが任意の記憶場所を読み取ったり、そこに書き込むことができないようになっているタイプセーフ言語であるということである。さらに、入ってきたアプレットは、実行に先だって、バイトコードを潜在的に不正なコマンドの有無について調べるＪａｖａコード・ベリファイヤを通して走らせることにより、正当なアプレットだけがそのようなローカル側エンドシステムのＪＶＭによって実行されるようになっている。この点に関しては、例えば、サン・マイクロシステムズ社のウェブサイトｊａｖａ．ｓｕｎ．ｃｏｍ及びｊａｖａｓｏｆｔ．ｃｏｍで入手可能な「Ｊａｖａセキュリティ白書（Ｊａｖａ  Ｓｅｃｕｒｉｔｙ  Ｗｈｉｔｅｐａｐｅｒ）」；エー・タネンボーム（Ａ．Ｔａｎｅｎｂａｕｍ）著「コンピュータ・ネットワーク（Ｃｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋｓ）」（プレンティスホール（Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ）社刊、１９９６年第３版）７１８‐２０ページ；ディー・フラナガン（Ｄ．Ｆｌａｎａｇａｎ）著の「Ｊａｖａの概要」（オー・レイリー（Ｏ’Ｒｅｉｌｌｙ）社刊、１９９７年第２版）７、１３９−４３ページ；を参照のこと。
【０００８】
Ｊａｖａアーキテクチャは、ネットワーク（あるいはネットワークサーバ）から発生するセキュリティ侵害を防ぐが、それでもローカル・ユーザから（すなわち、ローカル側エンドシステムあるいはクライアント‐サーバ・ネットワークのクライアント側から）発生する潜在的セキュリティ侵害を阻止できるようにする必要が未解決のまま残されている。例えば、ローカル側エンドシステムの物理的セキュリティが破られるかあるいは他の何らかの形で危うくされた場合、アプレットをエミュレートするかまたは「攪乱する」ためのローグ・プログラムのようなローグ・プログラムあるいはウイルスがエンドシステムにローカルに記憶されることが起こり得る。従って、そのようなローカルにロードされたプログラムまたはアプレットが他意のない善意のユーザによって気付かれずに実行され、そのようなアプレットまたは他のプログラムのユーザのネットワーク・セキュリティを潜在的に危うくするのを防ぐことができるようにする必要がある。また、このようなさらなるセキュリティ対策は、ネットワーク・ハードウェアを追加することなく実行することができるべきであり、費用効果が高くあるべきであり、かつユーザ・トランスペアレントなものでなければならない。
【０００９】
発明の要旨
本発明は、インターネットを含むサーバやルータのネットワークのローカル側エンドシステムのように、ネットワークのクライアント側から発生し得る侵害に対しネットワーク・セキュリティを上記のように強化するものである。このように強化されたセキュリティ機能は、好ましくはネットワークサーバ内でソフトウェアまたは他のプログラミング命令として実装され、その結果ネットワーク・ハードウェアの追加を必要とせず、高い費用効果が達成される。さらに、本発明は、ネットワークサーバの実施態様として実装された場合、完全にユーザ・トランスペアレントであり、ユーザはさらに何らかの操作を行う必要がなく、かつユーザは、大方の場合、この強化されたセキュリティ機能の実装を全く意識しないことが可能である。
【００１０】
本発明の方法は、ユーザがそのパーソナルコンピュータまたはネットワークコンピュータのようなローカル側エンドシステムでネットワーク情報を要求すると、動作が開始される。このネットワーク情報は、例えばウェブページであってもよい。リモートサーバは、ネットワーク情報要求を受信すると、呼び出されたとき実行可能コードをダウンロードするようなキーワードがその要求されたネットワーク情報に含まれるかどうかを判断する。例えばウェブページの場合、リモートサーバは、要求されたウェブページが、ユーザによって呼び出されたときＪａｖａバイトコードをユーザにダウンロードするようリモートサーバに要求する（キーワードとしての）アプレットタグを持つべきかどうかを判断する。
【００１１】
要求されたネットワーク情報がアプレットタグのようなキーワードを含む場合、リモートサーバは対応する実行可能コードへの特有の参照を持つキーワードを生成し、その新しい特有の参照を用いて対応実行可能コードを保存する。さらにＪａｖａとの関連で説明すると、例えば、新しい特有のＪａｖａクラス名を持つアプレットタグが生成され、対応するアプレット・バイトコードがこの新しいクラス名の下に記憶される。次に、ウェブページのような要求されたネットワーク情報が生成され、一意のアプレットクラス名のような特有の参照を持つ全ての（アプレットタグのような）キーワードと共にユーザに送信される。
【００１２】
その後、ユーザは、例えばウェブページのグラフィカル・ユーザインタフェース上でマウスをクリックすることによってキーワードを呼び出すことができる。この呼び出されたキーワードは、ユーザには気付かれないで、すなわちトランスペアレントで、リモートサーバだけに記憶された対応コードを一意に指定する。リモートサーバがユーザのウェブブラウザを介して呼び出されたコード要求を受信すると、特有の参照を持つ対応実行可能コードがローカル実行のためにユーザに対してダウンロードされる。
【００１３】
「ハッカー」がリモートサーバによってウェブページにどのような特有の参照が生成され、次いでユーザにより呼び出されるかを前もって正確に知ることは、不可能ではないにしても、到底起こりそうにない。ローカル・セキュリティの侵害が発生し、（ローグ・アプレットのような）実行可能コードがローカルに記憶されたとしても、その実行可能コードは特有の参照（リモートサーバによって別途に、そして多分に別の時点に生成される）の下には記憶されてはいない。次いでユーザによってその特有の参照を持つキーワードが呼び出された場合、そのような（異なる参照を持つ）ローグ・アプレット他の実行可能コードがローカル・ユーザによって気付かれないまま実行されることはない。このように、本発明によれば、特有の参照を持つ対応コードだけが実行されることになる。
【００１４】
これによって、本発明はネットワークからダウンロードされたこのような全ての実行可能コードが、ローカルに記憶されたローグ・プログラムによって「攪乱」されたり、あるいは模倣されたりするのを確実に防ぐ。むしろ、このような実行可能コードは、当然予測されるように、ユーザによって直接アクセスされる既知のあるいは信頼できるソースから各ウェブアクセス毎に新規にダウンロードされる。その結果、たとえ（ローグコードがローカルに記憶されることを可能にした）ローカルの物理的セキュリティ侵害があったとしても、ユーザのネットワーク・セキュリティは保全される。さらに、実施態様としては、本発明はネットワークサーバ内で実施され、その特有の参照及び対応するコードを生成する動作は全て完全にユーザ・トランスペアレントである：ユーザは特定のコマンド、コードあるいはパスワードを入れる必要がなく、この強化されたセキュリティ対策が実装されていることを意識しないことさえある。
【００１５】
本発明の他の多くの長所及び特徴については、以下の本発明及び実施形態の詳細な説明、特許請求の範囲及び添付図面から容易に理解されよう。
【００１６】
（発明を実施するための最良の形態）
上記のように、ローカル・ユーザ（すなわち、ローカル側エンドシステムあるいはクライアント‐サーバ・ネットワークのクライアント側）から発生し得る潜在的ネットワーク・セキュリティ侵害の影響を排除する必要が依然として存在する。ローカル側エンドシステムの物理的セキュリティがアプレットのようなネットワーク言語プログラムまたはアプリケーションがローカルに記憶されるような危険にさらされた場合、本発明によれば、そのようなローカルにロードされたプログラムあるいはアプレットが他意のない善意のユーザによって気付かれないまま実行されることはない。その結果、アプレットを攪乱する「トロイの木馬」または他のローグ・プログラムがローカルインストールされたと仮定した場合、本発明は、そのようなセキュリティ侵害にもかかわらず、そのようなローグ・プログラムが潜在的にローカル・ユーザのネットワーク・セキュリティを危険にさらすことを防ぐ。この強化されたセキュリティ機能は、好ましくはネットワークサーバ内のソフトウェアあるいは他のプログラミング命令として実装されて、その結果、追加のネットワーク・ハードウェアを必要とせず、高い費用効果が達成される。さらに、本発明は、ネットワークサーバの実施形態として実装されると、ユーザ・トランスペアレントであり、ユーザは追加の操作を行う必要がなく、また大方の場合この強化されたセキュリティ機能を意識しなくてもよい。
【００１７】
図１は、本発明システムの実施形態６０を図解した状態図で、本発明の方法及び動作の概要的全体像が示されている。図１に示すように、システムの実施形態６０は、パーソナルまたはネットワークコンピュータのようなローカル側エンドシステム１５０及びリモートサーバ１１０で構成されている。リモートサーバ１１０は、通常リモートサーバシステム６５の一部であり、リモートサーバシステムにはメモリまたは他の記憶機能も具備されている。また、図１においては、異なる期間を示すために実線と破線が用いてあり、実線は最初の期間を示し、破線はその後の期間を示す。
【００１８】
図１において、ローカル側エンドシステム１５０は、ウェブブラウザあるいは他のインターネット通信プログラムを介して、ウェブページ要求のようなネットワーク情報要求を送信する（状態１０）。この要求はリモートサーバ１１０によって受信される（状態１５）。次に、リモートサーバ１１０は要求されたネットワーク情報が実行可能コードを呼び出すために用いられるアプレットタグのようなキーワードを１つ以上持つべきかどうかを判断する（状態２０）。ネットワーク情報がこのようなキーワードを持つべきである場合、リモートサーバ１１０は、各々新しいＪａｖａアプレットのクラス名のような新しい特有の参照を有するキーワードを生成する（状態２５）。このような各キーワードに対応する実行可能コードはリモートサーバ１１０内あるいは追加の記憶容量手段内に保存される（状態３０）。次に、リモートサーバ１１０は特有の参照を持つ各キーワードが含まれるその要求されたネットワーク情報を生成し（状態３５）、そのネットワーク情報をローカル側エンドシステムに送信する（状態４０）。その後、ローカル側エンドシステム１５０は、その特有の参照を用いる、あるいは有する実行可能コード要求を送信して、キーワードを呼び出すことができる（状態４５）。この要求を受信すると（状態５０）、リモートサーバ１１０は対応する実行可能コードをローカル側エンドシステム１５０に送信する（状態５５）。
【００１９】
図２は、サーバ１３０とより明確に指示されたリモートサーバ１１０及びローカルサーバ１２０のような本発明に基づくシステム実施形態を具有する典型的なネットワーク１８０を図解したブロック図である。図２に示すように、ネットワーク１８０には、ルータ１２５、サーバ１３０（より具体的にはリモートサーバ１１０及びローカルサーバ１２０）、ローカルエリア・ネットワーク（「ＬＡＮ」）１６５、広域ネットワーク（「ＷＡＮ」）１１５、他のネットワーク１４０及び複数のエンドシステム１５０のような複数の接続可能なあるいは接続された機器及び他のシステムが含まれている。エンドシステム１５０は、例えば、パーソナルコンピュータ、エンジニアリング・ワークステーション、ネットワークコンピュータ、またはウェブテレビジョン・システムあるいは個人用携帯型情報端末のようなネットワーク接続が可能な他の機器を含むことが可能である。ネットワーク１８０及び他のネットワーク１４０は、Ｔ１、Ｅ１、ＩＳＤＮ、ケーブルあるいは光ファイバ回線のような任意形態の通信チャンネル１６０を用いることが可能であり、また回線交換型あるいはパケットベース・ネットワーク接続のような任意の形態のネットワーク接続を用いることが可能である。例えば、種々の通信チャンネル１６０は、いくつかの場所では光ファイバ‐同軸混成ケーブル、他の場所ではツイストペア回線を用い、他のネットワーク１４０は公衆（または一般）交換電話回線網あるいは公衆または基幹インターネット・ルーティングシステムを用いることが可能である。リモートサーバ１１０及びローカルサーバ１２０のような種々のサーバ１３０は、通常、接続されたエンドシステム１５０、ＬＡＮ１６５及びＷＡＮ１１５にファイル保存、プログラム保存、データベースのような種々のサービスを提供し、またインターネット及びイントラネット・サービスを提供することも可能である。例えば、ローカルサーバ１２０は、リモートサーバ１１０のような種々の他のサーバ１３０とのインターネット接続を提供するインターネット・サービスプロバイダであってもよい。また例えば、リモートサーバ１１０のような種々の他のサーバ１３０は、個人、銀行、証券会社のような会社または機関、またはウェブサイトを提供したり、あるいは他の何らかの形でウェブページを生成したり、オンライン・サービス、オンライン・マーケティングあるいはオンライン販売を提供する他の何らかの実体によって提供されるものであってもよい。また、リモートサーバ１１０及びローカルサーバ１２０を含む種々のサーバ１３０は、追加の記憶装置１４５、またはシステムのハードドライブあるいは他の磁気または光記憶装置のような他の記憶容量手段または記憶容量アクセス手段と接続することもできれば、これらを具有することも可能である。以下さらに詳しく説明するように、本発明による装置及び方法は、好ましくは、図２に図解したようなサーバ１３０、リモートサーバ１１０またはローカルサーバ１２０のようなシステム内で実施される。また、図５及び６に図解する装置実施形態との関連で以下さらに詳細に説明するように、本発明のシステムは内部記憶容量手段あるいは図２に示す記憶装置１４５のような外部記憶容量手段を具有することも可能である。
【００２０】
ローカルサーバ１２０を介して、パーソナルコンピュータのようなエンドシステム１５０は一般にインターネットブラウザ・アプリケーションを用いてインターネット上のウェブサイトにアクセスすることができる。上記のように、このようなブラウザはＪａｖａのようなネットワーク・プログラミング言語を実行するかあるいは走らせることができるものであってもよい。通常、エンドシステム１５０はブラウザを介してウェブページを要求し、そのウェブページはリモートサーバ１１０（あるいは別のサーバ１３０）からローカルサーバ１２０を通してパケットベースの形式でダウンロードされ、エンドシステム１５０上に表示される。このようなウェブページは、ハイパーテキスト・マークアップ言語（「ＨＴＭＬ」）のような標準的言語、ダイナミックＨＴＭＬ、ＪａｖａＳｃｒｉｐｔ、ＰｅｒｌまたはＴｃｌのようなスクリプト言語あるいは他の同等の言語を用いて作成することが可能であり、特に境界や区画部についてはマークアップ言語、スクリプト言語及びプログラミング言語同士あるいはこれらの間でぼやけが生じる場合がある。それ故、本願においては、ダウンロード可能な実行可能コードが得られるこのような言語は全て、Ｊａｖａ及びＪａｖａＳｃｒｉｐｔのような言語を含めて個別に、また集合的に「ネットワーク言語」あるいは「ネットワーク・プログラミング言語」と称する。
【００２１】
引き続き図２を参照して説明すると、要求されたウェブページは、ネットワーク・プログラミング言語をインボークし、コールし、あるいは指定するよう設計された特別な、または指定されたキーワードを含むことが可能である。例えば、Ｊａｖａアプリケーションは「タグ」と呼ばれる、より詳しくは「アプレット」タグ（「＜ＡＰＰＬＥＴ＞」）と呼ばれるキーワードを用いてインボークされ、あるいはコールされる。（ＨＴＭＬ４．０のようなＨＴＭＬの他のバージョンも、アプレットタグの拡張あるいは代替として企図されたオブジェクトタグ（「＜ＯＢＪＥＣＴ＞」）と呼ばれる新しいタグをサポートするよう設計されている。それ故、本願においては、アプレットタグと言う場合、それはオブジェクトタグのような実行可能なネットワーク・プログラミング言語をインボーク又はコールする他のキーワードあるいはタグをも意味し、含意するものとする）。アプレットタグのようなキーワードは、通常、必要なあるいは望ましい属性、一般的には名前または参照属性、及び表示された時アプレットが使用する空間の大きさ（高さ及び幅属性）を有する。本願においては、キーワードは単に実行可能コードを指定するかまたは他の形で実行可能コードに対応する名前または参照属性を持ってさえいればよく、従って、名前あるいは参照属性は、キーワードが呼び出された時ダウンロードして実行されるコード（どこにあっても）に対応するか、あるいはそのようなコードを指す。より詳細にＪａｖａに関連して説明すると、実行のためにダウンロードされるＪａｖａプログラムはＪａｖａコンパイラを用いてＪａｖａソースコードから変換された「クラス」拡張子を有するコンピュータ可読のバイトコード形式になっている。オブジェクト指向プログラミング言語として、Ｊａｖａは「クラス」をデータ及びデータを処理するメソッド（手順あるいは関数）の集まりと定義する。それ故、Ｊａｖａアプレットはこのような参照属性として、「ＣＯＤＥ」として知られているパラメータを用いてウェブブラウザにより実行のためにダウンロードされるＪａｖａバイトコードのクラスに指名あるいは指定する。さらに、より一般的に言うと、このようなＪａｖａバイトコードは、パラメータ「ＣＯＤＥＢＡＳＥ」を用いて別のサーバ１３０上にある、すなわちウェブページを提供しているサーバ以外のサーバ１３０上にあるＪａｖａバイトコードのクラスの名前及び記憶場所を指定することにより指定することも可能であり、あるいはより速い同時ダウンロードを行うためにアーカイブパラメータを用いてＪａｖａクラスファイルのグループ全体を指定することにより指定することも可能である。
【００２２】
引き続き図２を参照して説明すると、エンドシステム１５０がウェブページを要求すると、そのウェブページはリモートサーバ１１０から（ローカルサーバ１２０を介して）ダウンロードされる。このページには通常（ＨＴＭＬを用いてフォーマットされた）テキスト、スクリプト、及びアプレットタグのようなネットワーク言語キーワードが含まれている。エンドシステム１５０が、例えばハイパーテキストあるいはグラフィカル・ユーザインタフェースのボタン上でマウスクリックすることによりアプレットタグのようなキーワードを呼び出す時、ブラウザは要求されたアプレットをダウンロードするための要求をリモートサーバ１１０に送信する。その場合この要求にはアプレットタグで指定されたクラス名のような対応する参照が伴うか、あるいは含まれている。すると、リモートサーバ１１０は対応する要求されたコード（及び何らかの要求されたデータ）を送信し、このようなコードは次いでＪＶＭのようなエンドシステム１５０のブラウザによって実行することが可能である。上記のように、実行可能コードは潜在的に未知かまたは信用できないソースからダウンロードされるので、Ｊａｖａアーキテクチャは、従来、リモートサーバ１１０からのようにネットワークから起こり得るセキュリティ侵害をＪａｖａサンドボックスやＪａｖａコード・ベリファイヤのような機能を用いて防止するように設計されている。また、上に述べたように、本発明はローカルで、すなわちローカル側エンドシステム１５０あるいはローカルサーバ１２０から発生し得るセキュリティ侵害に対してより強化された保護を講じるものである。
【００２３】
特定のネットワーク言語としてのＪａｖａにさらに詳細に関連して、また以下に図３及び４を参照してより詳しく説明されるように、本発明の動的Ｊａｖａクラスネーミングによれば、エンドシステム１５０がサーバ１３０に対して（例えばリモートサーバ１１０に対して）ウェブページを要求すると、サーバ１３０は全てのＪａｖａアプレットが新しい特有の（あるいは一意の）クラス名を有する新しいウェブページを生成して、各アプレットのそれぞれ特有の（あるいは一意の）クラス名を用いて対応する実行可能Ｊａｖａバイトコードを保存する。その後、エンドシステム１５０が実行可能Ｊａｖａバイトコードを要求するためには、エンドシステム１５０はウェブページと共に与えられるその新しい特有の（あるいは一意の）クラス名を用いて要求しなければならず、このようにして要求すると、その時点で対応する実行可能なバイトコードがサーバ１３０によってダウンロードされる。ローカルで、すなわちエンドシステム１５０またはローカルサーバ１２０に保存されている他のＪａｖａバイトコードがあれば、それらのＪａｖａバイトコードは全て前に生成された異なる名前を用いて記憶されているはずであるから、そのようなＪａｖａバイトコードがエンドシステム１５０によって気付かれずに実行されることはない；むしろ逆に、エンドシステム１５０のＪＶＭはその時（リモートサーバ１１０のような）特定のサーバ１３０上でしか得られず、エンドシステム１５０あるいはローカルサーバ１２０上では（まだ）利用可能ではない新たに特有の名前を付されたＪａｖａバイトコードを呼び出す。これによって、本発明の装置、方法及びシステムは、前にローカルに記憶されたＪａｖａバイトコードがあっても、それらのＪａｖａバイトコードが（別個に独立して新しく生成され、その新しく生成されたウェブページのアプレットタグに与えられた）新しい特有の（あるいは一意の）クラス名と正確に同一の名前を用いて記憶されているということは極めてありそうもないので、ネットワーク・セキュリティの強化が達成される。例えば、所望のセキュリティの程度によって、完全に一意のアプレットクラス名を例えばランダムジェネレータを用いて生成することも可能である；ローカルに記憶されたバイトコードは、あらかじめランダムに生成された一意のクラス名を推測によって知り、それを用いて前もって記憶された場合にのみ実行されるであろうが、このようなことは不可能ではないにしても、到底起こりそうにない。その結果、エンドシステム１５０の物理的セキュリティ侵害が起こって、不正あるいは不当なＪａｖａバイトコードがローカルに記憶されたと仮定しても、そのローカルに記憶されたバイトコードは実行されないであろう。むしろ、エンドシステム１５０のウェブブラウザのＪＶＭは、特有に命名されたバイトコードのみを要求し、その後実行することになる。従って、物理的セキュリティ侵害が起こって潜在的に不正なバイトコードがローカルに記憶されたと想定しても、本発明の動的ネーミングは、そのような実行されるバイトコードが全て、その都度新たに、既知のあるいは信頼できるソースから多分に直接受信されるようにするのに確実に有効に作用するから、それ以上ウェブブラウザのＪＶＭによるＪａｖａバイトコードの認識を伴わない潜在的実行のために害をこうむることはない。それによって、本発明の動的ネーミングは潜在的に不正な、ローカルに記憶されたバイトコードの無自覚ないしは無認識の実行を防止する。
【００２４】
図３は、本発明に基づく好ましい方法の実施形態、すなわち実行可能コードのネットワーク・セキュリティを講じるための好ましい方法としての動的Ｊａｖａクラスネーミングを図解したフローチャートである。図３において、図示実施形態の方法は、開始ステップ２００で開始され、ステップ２０５でウェブページ「ＡＢＣ」のようなウェブページ要求が受信される。このような要求は通常エンドシステム１５０により（そのウェブブラウザを介して）送信され、（ローカルサーバ１２０を介して）リモートサーバ１１０により受信される。次に、この方法は、通常リモートサーバ１１０を介して、要求されたウェブページが実行可能コードをインボークする、あるいはコールするよう設計された１つ以上のＪａｖａアプレットタグまたは他のキーワードを有する（あるいは有するべきである）かどうかを判断する（ステップ２１０）。要求されたウェブページがそのようなアプレットタグを必要としない場合は、その要求されたウェブページを提供することが可能で（ステップ２１５）、方法は終了することができる（リターンステップ２５５）。ステップ２１０で要求されたウェブページが１つ以上のアプレットタグあるいは他のキーワードを必要とする場合は、方法はステップ２２０に進み、要求された名前、コード、コードベースあるいはアーカイブ属性のような参照属性として新しい特有のあるいは一意のクラス名を有するアプレットタグを生成する。次に、ステップ２２５で、方法はそのアプレット用のバイトコードをこの同じ特有あるいは一意のクラス名と共にあるいはクラス名の下に記憶する。次いで、方法は、要求されたウェブページにさらにアプレットタグが必要であるかどうかを判断する（ステップ２３０）。ステップ２３０でさらにアプレットタグが必要ならば、方法はステップ２２０及び２２５に戻り、第２の特有のあるいは一意のクラス名を有する第２のアプレットタグを生成して、その第２の特有あるいは一意のクラス名と共にあるいはクラス名の下にその第２のアプレット用のバイトコードを記憶する動作を行う。方法は、このような追加の各アプレット毎にステップ２２０と２２５の両方を通して続行する（ループする）。その際このような第３、第４、・・・、第ｎ番目のアプレットに対して特有の名前を生成し、バイトコードを記憶する動作を、ステップ２３０でそれ以上後続アプレットが必要でなくなるまで繰り返した後、方法はステップ２３５に進む。方法は、ステップ２３５で、それぞれの新しい特有の（あるいは一意の）クラス名を持つ全てのアプレットタグを有する要求されたウェブページを生成し、供給する。その後、ステップ２４０で、それぞれ特有あるいは一意のクラス名を有する１つ以上のアプレット（アプレットクラスまたはアプレットクラス・パッケージ）の要求が受信されると、ステップ２４５で、方法は、そのような特有あるいは一意の各クラス名を有する対応アプレット・バイトコードを送信する。その送信された特有に命名されたアプレット・バイトコードは、次いで、例えばその特有のクラス名によりその要求を出した特定のエンドシステム１５０によって実行されることが可能である。ステップ２４０あるいは２４５の後、ウェブページ「ＤＥＦ」または「ＧＨＩ」のような１つ以上のウェブページがさらに要求されると（ステップ２５０）、方法はこのような追加の各ウェブページ毎にステップ２１０に戻って、繰り返し実行される。（ステップ２５０でそれ以上ウェブページが要求されなければ、方法は終了することが可能である（リターンステップ２５５）。
【００２５】
図３には別途示されていないが、ステップ２２０で特有あるいは一意のクラス名を有するアプレットタグのような実行可能コードに特有の参照を持つキーワードを生成するために用いることが可能な多種多様な形態の方法あるいはプロシージャがある。上に述べたように、所望のセキュリティの程度によって、アプレットクラス名は各エンドシステム１５０のブラウザによって各ウェブページ・アクセス毎に一意にあるいは特有の形で（サーバ１３０により）生成することが可能である。例えば、非常に高いセキュリティが必要な場合は、アプレットクラス名は、ランダムジェネレータあるいは如何なる方法でも容易には予測することができない名前を生成する他の技術的方法またはアルゴリズムを用いて、ウェブページが要求された時点で新たに一意に生成することができる。このランダム法は、アプレットクラスそれ自身の編集及び編集されたＪａｖａソースコードのリコンパイルを必要とすることがあるので、多くのアプリケーションの場合に望ましいよりも長い処理時間が費消されるかもしれない。ランダム法は、顕著なセキュリティが達成される一方、潜在的に処理時間がより長くなるため、ある所与のアプリケーションの場合は潜在的にあまりセキュリティが高くない他の方法がより望ましいこともあり得る。例えば、重要なセキュリティ問題が関わらない多くの消費者アプリケーションでは、１ページのテキストを１０秒以内で動的にロードし、送信する能力のように、顧客満足のために高速性が要求される場合もある。従って、別の方法では、キーワード参照の所定の集合、及びやはり如何なる方法でも容易には予測することができない所望のサイズのアプレットクラス名のライブラリのような対応する実行可能コードを生成するステップを具有することも可能である。例えば、数１００乃至数１，０００の特有あるいは一意のアプレットクラス名のライブラリを対応アプレットクラス・バイトコードと共に生成し、あらかじめ保存するようにすることが可能である。このライブラリ法は、潜在的により多くのメモリまたは記憶容量を費消するが、所望のセキュリティの程度と所望の処理適時性の両方を達成することができるので、特有に命名されたアプレットタグが、要求されたウェブページに組み入れるのに容易に得られ、また対応する特有に命名されたアプレットバイトコード・クラスが、要求された時ダウンロードするのに容易に得られる。
【００２６】
やはり所望のセキュリティレベルによって、動的に生成されるクラス名も、１つ１つのウェブページ・アクセス毎に完全に一意あるいは非常に特有とすることもできれば、より小さい識別性またはある程度の反復性を持たせて、一部の名前（及び対応する記憶バイトコード）が周期的に再使用されるか、あるいは他の時に単純に再使用されるようにすることもできる。例えば、「ハッカー」が、物理的セキュリティ侵害をユーザが認識することなく、あるいは他の何らかの形で物理的セキュリティ侵害が検知されることなく、ライブラリ全体（あるいはライブラリの重要な部分）をコピーして、対応するコードをエンドシステム１５０あるいはローカルサーバ１２０にローカル記憶することができるというようなことは極めて起こりそうにないというセキュリティ上の仮定の下に、数１，０００の名前のライブラリ及びこれに対応するコードを生成して、周期的に１つ以上のウェブページ・アクセスのために使用することも可能である。より高いセキュリティレベルが関わっている場合は、完全に一意のクラス名が望ましいかもしれない。
【００２７】
上に述べたように、広義における本発明は、ネットワーク上でダウンロードすることが可能な実行可能コードに強化されたセキュリティ機能を講じる技術に関するものであり、ネットワーク・プログラミング言語としてのＪａｖａ、スクリプト言語としてのＪａｖａＳｃｒｉｐｔ、マークアップ言語としてのＨＴＭＬに、あるいは実行可能コードのダウンロードを起動させるキーワードとしてのアプレットまたはオブジェクトタグに限定されるものではない。それ故、図４は、本発明による実行可能コードネットワーク・セキュリティを講じる方法をより一般的に図解したフローチャートであり、本発明は、あらゆる形態のダウンロード可能な実行可能コードについてこのようなより広いネットワーキング環境で利用することが可能である。図示の方法は、開始ステップ３００で開始され、ステップ３１０で、通常（図２に図解されているようにように）エンドシステム１５０からリモートサーバ１１０または他のシステムに送信されたネットワーク情報要求が受信される。ネットワーク情報は、ワールドワイドウェブ・ページの形とすることもできれば、他の任意の形態のフォーマットあるいはコンテンツを有することも可能である。次に、この実施形態の方法は、ステップ３１０で、要求された情報が、例えばＪａｖａのアプレットまたはオブジェクトタグのような実行可能コードをインボーク又はコールすることが可能な１つ以上のキーワードを有する（あるいは有するべきである）かどうかを判断する。ステップ３１０で、要求されたネットワーク情報がこのようなキーワードを持っていないかまたは持っているべきではない場合は、その要求されたネットワーク情報は提供することが可能で（ステップ３１５）、方法は終了することができる（リターンステップ３５０）。ステップ３１０で、要求されたネットワーク情報がキーワードを持っているべきである場合は、方法は、例えば対応する実行可能Ｊａｖａコードを参照する特有のＪａｖａクラス名を持つアプレットタグを生成する等、対応する実行可能コードに対して特有あるいは一意の参照を有するキーワードを生成する（ステップ３２０）。この対応する実行可能コードは、例えば対応Ｊａｖａバイトコードがその特有のクラス名と共に保存される等、その特有の参照と共に、またはその下に、あるいは特有の参照によってアクセス可能なように保存される（ステップ３２５）。上に図３を参照して説明したように、このようなステップ３２０のキーワード生成は、ランダム生成や所定の集合（ライブラリ）形成を含めて様々な仕方で行うことが可能である。ステップ３２０及び３２５の後、方法は、要求されたネットワーク情報でさらにキーワードが必要かどうかを判断して（ステップ３３０）、さらなるキーワードが必要ならば、そのような追加の各キーワード毎にステップ３２０及び３２５を繰り返し、各キーワード毎に特有の参照を生成し、対応するコードを保存する。ステップ３３０で追加のキーワードが必要でない場合、方法は、例えば全てのアプレットあるいはオブジェクトタグがそれぞれの一意のアプレットクラス名を有するウェブページを提供する等、全てのキーワードがそれぞれ特有の参照を有するネットワーク情報を提供する（ステップ３３５）。その後、特有の参照を有する要求が受信されると（ステップ３４０）、方法は、例えば対応ＪａｖａバイトコードをウェブブラウザのＪＶＭによって実行されるように供給する等、実行可能コードを供給する（ステップ３４５）。ステップ３１５及び３４５の後、あるいはステップ３４０で要求が全く受信されなかった場合は、方法は終了することができる（ステップ３５０）。
【００２８】
図５は、本発明に基づく装置４００を図解したブロック図である。上に述べたように、この実施形態においては、装置４００はサーバ１３０のような、より具体的にはリモートサーバ１１０またはローカルサーバ１２０のようなシステム内に内蔵され、設けられ、あるいは実装される。このようなシステムは、追加の記憶装置１４５あるいは他の記憶容量手段を含むことも可能である。図５において、装置４００は、受信器（あるいは受信するための手段）４１０、判断器（あるいは判断するための手段）４２０、ジェネレータ（あるいは生成するための手段）４３０、記憶装置（あるいは記憶のための手段）４４０、及び送信器（あるいは送信するための手段）４５０を具有する。以下さらに詳細に説明するように、装置４００は図１、３及び４に示す状態を有し、かつこれらの図に示す方法を遂行する。受信器４１０及び送信器４５０は、それぞれ、Ｔ１通信回線、適切なＩＳＤＮ回線インタフェース、同軸ケーブルまたは光ファイバインタフェース、あるいはアナログインタフェースを介してネットワーク１８０に接続された場合にＴ１インタフェースのような所望のあるいは選択されたネットワークチャンネルに対応する任意の入力と出力（Ｉ／Ｏ）インタフェースを用いることができる。受信器４１０及び送信器４５０は、それぞれ、情報、コード、要求及びその他のメッセージを通常インターネットプロトコル・パケットのようなパケットベースのフォーマットで送受信するために用いられる。例えば、受信器４１０はウェブページ要求または他のネットワーク情報要求の受信のために用いられ、送信器４５０は要求されたウェブページの送信及びＪａｖａバイトコードのような実行可能コードの送信のために用いられる。記憶装置４４０は、通常電磁ハードディスク・ドライブのような記憶システムである。記憶装置４４０は任意の形態の電磁式、光学式、または他の種類の記憶装置あるいはメモリコンポーネントとすることができ、システム実施形態の場合は、（装置４００の別コンポーネントと考えるよりは）記憶装置１４５内に設けてもよい。この実施形態においては、以下に図６を参照してさらに詳細に説明するように、判断器４２０及びジェネレータ４３０は、マイクロプロセッサ、ディジタル信号プロセッサ、特定用途向け集積回路（「ＡＳＩＣ」）のようなプロセッサ、またはこのようなプロセッサあるいはＩＣの集まりに組み込んだ形で実施される。
【００２９】
引き続き図５を参照して説明すると、受信器４１０がウェブページ要求のようなネットワーク情報要求（通常エンドシステム１５０から送信される）を受信すると、判断器４２０は、その要求された情報が例えば、Ｊａｖａのアプレットまたはオブジェクトタグのような実行可能コードをインボークする、あるいはコールすることが可能な１つ以上のキーワードを有する（あるいは有するべきである）かどうかを判断する。要求されたネットワーク情報にそのようなキーワードが含まれていない場合、判断器４２０はジェネレータ４３０に要求されたネットワーク情報を供給するよう命令し、すると、その要求されたネットワーク情報は送信器４５０によって（種々のルータ１２５及びサーバ１３０を介してエンドシステム１５０に）送信される。要求されたネットワーク情報がキーワードを持っているべきである場合は、判断器４２０は、例えば対応する実行可能Ｊａｖａバイトコードを参照する特有のＪａｖａクラス名を有するアプレットタグを生成する等、対応する実行可能コードに対して特有あるいは一意の参照を有するキーワードを生成するようジェネレータ４３０に指示する。また、ジェネレータ４３０は、例えば対応Ｊａｖａバイトコードをその特有のクラス名と共に記憶する等、対応する実行可能コードをその特有の参照と共に、その参照の下に、あるいはその参照でアクセス可能に記憶装置４４０に記憶する。上に図３及び４を参照して説明したように、このようなキーワード生成は、ランダム生成やライブラリ（所定の集合）形成を含め、ジェネレータ４３０によって様々な仕方で行うことが可能である。判断器４２０は、要求されたネットワーク情報でさらにキーワードが必要かどうかを判断し、必要な場合は、ジェネレータ４３０に、そのような追加の各キーワード毎に、特有の参照を生成して、各キーワード毎に対応する実行可能コードを（記憶装置４４０に）記憶するよう指示する。そのような追加のキーワードが必要でない場合は、ジェネレータ４３０は、（送信器４５０によるネットワーク送信のために）例えば全てのアプレットまたはオブジェクトタグがそれぞれの一意のアプレットクラス名を有するウェブページを提供する等、全てのキーワードがそれぞれ特有の参照を有するネットワーク情報を供給する。その後、判断器４２０による判断に従って特有の参照を有する要求が受信器４１０に受信されると、ジェネレータ４３０は、（やはり送信器４５０によるネットワーク送信のために）、例えばウェブブラウザのＪＶＭによる実行のために対応Ｊａｖａバイトコードを供給する等、対応する実行可能コードを供給する。
【００３０】
図６は、本発明に基づく実施形態の装置５００を図解したブロック図である。上に述べたように、図示実施形態においては、装置５００はサーバ１３０、より詳しくはリモートサーバ１１０またはローカルサーバ１２０のようなシステム内に内蔵され、設けられ、あるいは実装される；このようなシステムは追加の記憶装置１４５あるいは他の記憶容量手段を具有することも可能である。図６において、装置５００はネットワーク・インタフェース５２０、プロセッサ５１０及び記憶システム５３０を備える。ネットワーク・インタフェース４２０は、Ｔ１通信回線、適切なＩＳＤＮ回線インタフェース、同軸ケーブルまたは光ファイバインタフェース、あるいはアナログインタフェースを介してネットワーク１８０に接続された場合にＴ１インタフェースのような所望のあるいは選択されたネットワークチャンネルに対応する任意の入出力（Ｉ／Ｏ）インタフェースを用いることができる。ネットワーク・インタフェース５２０は、情報、コード、要求及びその他のメッセージを通常インターネットプロトコル・パケットのようなパケットベースのフォーマットで送受信するために使用され、（また図５を参照して上に説明した受信器４１０及び送信器４５０の機能を遂行する）。例えば、ネットワーク・インタフェース５２０は、ウェブページ要求または他のネットワーク情報要求の受信、要求されたウェブページの送信、Ｊａｖａバイトコードのような実行可能コードの送信のために用いられる。記憶システム５３０は、任意の形態の磁気式、光学式、または他の種類の記憶装置あるいはメモリコンポーネントとすることができ、システム実施形態の場合は、（装置５００の別コンポーネントと考えるよりは）記憶装置１４５内に設けてもよい。プロセッサ５１０は、（ＰＣＩバスのような）バス５１５を介してネットワーク・インタフェース５２０に接続することができ、また記憶システム５３０にも接続することが可能である（このような記憶システム５３０がサーバ１３０に接続することが可能な記憶装置１４５に内蔵されているのではなく、装置５００に別個に内蔵されている場合）。プロセッサ５１０は、単一の集積回路（「ＩＣ」）とすることもできるし、あるいは複数の集積回路またはマイクロプロセッサ、ディジタル信号プロセッサ、ＡＳＩＣ、（ＲＡＭ及びＲＯＭのような）付属メモリ、及び他のＩＣや構成要素のような互いに接続され、編成されあるいはまとめられた他の複数の構成要素とすることも可能である。それ故、本願で使用するプロセッサという用語は、マイクロプロセッサ・メモリまたは追加のＲＡＭ、ＲＯＭ、ＥＰＲＯＭあるいはＥ２ＰＲＯＭのような付属メモリと共に以下にさらに詳細に説明するような機能を遂行する単一のプロセッサ、またはプロセッサの編成、マイクロプロセッサ、コントローラ、あるいは何らかの他の一まとまりの集積回路を等価的に意味し、かつ包含するものと解すべきである。プロセッサ５１０は、図５を参照して上に説明した判断器４２０及びジェネレータ４３０の機能を遂行する。また、図３及び４を参照して上に説明したように、本発明の技術的方法は、付属メモリ及び他の等価の構成要素と共に後でプロセッサ５１０により実行されるプログラム命令のセットとしてプログラムし、記憶することが可能である。
【００３１】
この実施形態においては、ネットワーク・インタフェース５２０は、ウェブページ要求のようなネットワーク情報要求を受信するよう動作可能であり、またウェブページや実行可能コードのようなネットワーク情報を送信するよう動作可能である。プロセッサ５１０は、動作可能に接続されたとき（すなわち電源オンでパワーアップされた状態の時）、プログラム命令のセットを通して応答動作し、要求されたネットワーク情報が例えばＪａｖａのアプレットまたはオブジェクトタグのような実行可能コードをインボーク又はコールすることが可能な１つ以上のキーワードを有する（あるいは有するべきである）かどうかを判断する。要求されたネットワーク情報がそのようなキーワードを持っていないかまたは持っているべきではない場合、プロセッサ５１０は、要求されたネットワーク情報を供給するよう応答動作し、そのネットワーク情報ネットワーク・インタフェース５２０によって（種々のルータ１２５及びサーバ１３０を介してエンドシステム１５０に）送信される。要求されたネットワーク情報がキーワードを持っているべきである場合は、プロセッサ５１０は、例えば対応する実行可能Ｊａｖａバイトコードを参照する特有のＪａｖａクラス名を有するアプレットタグを生成する等、対応する実行可能コードに対して特有あるいは一意の参照を有するキーワードを生成するよう、また例えば対応Ｊａｖａバイトコードをその特有のクラス名と共に記憶する等、対応する実行可能コードをその特有の参照と共に、その参照の下に、あるいはその参照によってアクセス可能に記憶システム５３０に記憶するよう応答動作する。図３及び４を参照して上に説明したように、このようなキーワードの生成は、ランダム生成及び所定の集合（ライブラリ）形成を含めて様々な仕方でプロセッサ５１０によって行われる。次に、プロセッサ５１０はさらに、要求されたネットワーク情報で追加のキーワードが必要かどうかを判断するよう応答動作し、追加のキーワードが必要ならば、プロセッサ５１０は特有の参照を生成して、そのような各キーワード毎に対応する実行可能コードを記憶システム５３０に記憶する。追加のキーワードが必要でない場合、プロセッサ５１０は、（ネットワーク・インタフェース５２０によるネットワーク送信のために）、例えば全てのアプレットあるいはオブジェクトタグがそれぞれの一意のアプレットクラス名を有するウェブページを提供する等、全てのキーワードがそれぞれ特有の参照を有するネットワーク情報を供給するよう応答する。その後、プロセッサ５１０による判断に従い特有の参照を有する要求がネットワーク・インタフェース５２０によって受信されると、プロセッサ５１０は、（ネットワーク・インタフェース５２０によるネットワーク送信のために）、例えば対応ＪａｖａバイトコードをウェブブラウザのＪＶＭによる実行のために供給する等、対応する実行可能コードを供給するよう応答動作する。
【００３２】
本発明の様々な実施形態の多くの長所については自明であると言うことができる。まず第一に、本発明は、ローグ・アプレットまたは他の「トロイの木馬」ネットワーク言語プログラムあるいはアプリケーションが認識されずにあるいは気付かれずに実行されるのを防ぐことができる。その結果、ローグ・プログラムを植え付けることを目的としてローカル側エンドシステムの物理的セキュリティ破壊が起こったとしても、Ｊａｖａアプレットのようなネットワーク言語プログラムが使用される結果としてそれ以上損害が生じるようなことはない。例えば、本発明の動的Ｊａｖａクラスネーミングが用いられるとすると、万一ローグ・アプレットがローカルに記憶されても、そのローグ・アプレットが実行されることはない；代わりに、サーバによって異なるＪａｖａクラス名が生成され、このＪａｖａクラス名がエンドシステムによって同じ機能（またはオブジェクト指向性）のために対応してインボークされる、あるいはコールされることになる。
【００３３】
本発明のもう一つの長所は、その実装の容易さにある。本発明は、好ましくはネットワークサーバ内に存在するプログラム命令のセットとして実施され、ハードウェアの変化あるいはハードウェアの追加を全く必要としない。その結果、本発明は、大幅なコスト節減の下に実装することが可能である。
【００３４】
本発明のさらにもう一つの長所はそのユーザ透過性にある。本発明は、ネットワークサーバ内に実装することが可能であり、ローカル側エンドシステム内部については、本発明のための変更、追加、あるいは命令が全く不要である。さらに、ユーザは、この強化されたセキュリティ機能から、その動作に関する知識を得る上で、如何なるコマンドあるいは命令も入力する必要がなく、また如何なる不都合も伴わないという点で恩恵を受けることができる。
【００３５】
以上の説明から、本発明の新規な構想の精神及び範囲から逸脱することなく種々多様な変更態様並びに修正態様をなし得ることは明らかであろう。本願で図解し、説明した特定の方法及び装置に関しては、如何なる限定も意図されておらず、あるいは如何なる限定も示唆されるべきではないということは理解されよう。このような修正態様は全て、当然特許請求の範囲の記載に基づく本発明の範囲内にあるものとして特許請求の範囲によって包括されるものである。
【図面の簡単な説明】
【図１】  本発明に基づくシステム実施形態を図解した状態図である。
【図２】  本発明に基づくシステム実施形態を有する典型的ネットワークを図解したブロック図である。
【図３】  本発明に基づく方法実施形態を図解したフローチャートである。
【図４】  本発明に基づく一般的な方法実施形態を図解したフローチャートである。
【図５】  本発明に基づく装置実施形態を図解したブロック図である。
【図６】  本発明に基づくもう一つの装置実施形態を図解したブロック図である。
【図１】
0004184604.tif 000002
【図２】
0004184604.tif 000003
【図３】
0004184604.tif 000004
【図４】
0004184604.tif 000005
【図５】
0004184604.tif 000006
【図６】
0004184604.tif 000007