(57)【特許請求の範囲】
【請求項１】
ウェブページデータの安全な送信のための方法であって、
受信ステップと、分析ステップと、選択ステップと、暗号化ステップと、生成ステップと、修正ステップと、送信ステップと、を備え、
前記受信ステップでは、プロキシサーバが、ユーザ機器に要求されたウェブページを受信し、
前記分析ステップでは、前記プロキシサーバのハードウェア・プロセッサが、前記ウェブページを分析して当該ウェブページの要素のコードを特定し、
前記選択ステップでは、暗号化するために前記特定された要素を選択し、前記選択された要素は、データ入力に使用される要素と機密のユーザデータを含む要素とを含み、
前記暗号化ステップでは、前記ハードウェア・プロセッサが、前記選択された要素のコードを暗号化して暗号コードを生成し、
前記生成ステップでは、前記ハードウェア・プロセッサが、前記暗号コードと、ユーザ機器で実行されるときに前記暗号コードを復号化しうるコードとを含むスクリプトを生成し、
前記修正ステップでは、前記ハードウェア・プロセッサが、前記選択された要素のコードを前記スクリプトに置き換えて前記ウェブページを修正し、
前記送信ステップでは、前記プロキシサーバが、前記修正されたウェブページを前記ユーザ機器に送信する、
方法。
【請求項２】
前記修正ステップでは、前記ウェブページのＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）を修正することを含む、
請求項１に記載の方法。
【請求項３】
前記暗号化ステップでは、非対称暗号化方法を使用することを含む、
請求項１に記載の方法。
【請求項４】
前記非対称暗号化方法を使用する前記暗号化ステップでは、前記ユーザ機器のアプリケーションの公開鍵を使用して前記コードを暗号化することを含む、
請求項３に記載の方法。
【請求項５】
前記暗号化ステップでは、対称暗号化方法を使用することを含む、
請求項１に記載の方法。
【請求項６】
前記ウェブページ上のユーザ入力データを暗号化するために、前記プロキシサーバが、前記ユーザ機器のアプリケーションによって使用されるリモートサーバの公開鍵を前記ユーザ機器に送信する送信ステップを更に含む、
請求項１に記載の方法。
【請求項７】
ウェブページデータの安全な送信のためのシステムであって、ハードウェア・プロセッサを有するプロキシサーバを備え、
前記ハードウェア・プロセッサは、
ユーザ機器に要求されたウェブページを受信し、
前記ウェブページを分析して当該ウェブページの要素のコードを特定し、
暗号化するために前記特定された要素を選択し、前記選択された要素は、データ入力に使用される要素と機密のユーザデータを含む要素とを含み、
前記選択した要素の前記コードを暗号化して暗号コードを生成し、
前記暗号コードと、ユーザ機器で実行されるときに前記暗号コードを復号化しうるコードとを含むスクリプトを生成し、
前記選択された要素のコードを前記スクリプトに置き換えて前記ウェブページを修正し、
前記修正されたウェブページを前記ユーザ機器に送信する、
ように構成される、
システム。
【請求項８】
前記ウェブページの修正は、前記ウェブページのＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）を修正することを含む、
請求項７に記載のシステム。
【請求項９】
前記暗号コードの生成には、非対称暗号化方法を使用することを含む、
請求項８に記載のシステム。
【請求項１０】
前記非対称暗号化方法を使用する前記暗号コードの生成は、前記ユーザ機器のアプリケーションの公開鍵を使用して前記コードを暗号化することを含む、
請求項９に記載のシステム。
【請求項１１】
前記暗号コードの生成は、対称暗号化方法を使用することを含む、
請求項７に記載のシステム。
【請求項１２】
前記ハードウェア・プロセッサは、更に
前記ウェブページ上のユーザ入力データを暗号化するために、前記ユーザ機器のアプリケーションによって使用されるリモートサーバの公開鍵を前記ユーザ機器に送信するように構成される、
請求項７に記載のシステム。
【請求項１３】
ウェブページデータの安全な送信のための方法であって、
第１受信ステップと、暗号化ステップと、送信ステップと、第２受信ステップと、復号化ステップと、修正ステップと、を備え、
第１受信ステップでは、ユーザ機器が、リモートウェブサーバの公開鍵を受信し、
前記暗号化ステップでは、前記ユーザ機器のハードウェア・プロセッサが、前記公開鍵を使用して、前記リモートウェブサーバに前記ユーザ機器のアプリケーションにウェブページを提供する要求を暗号化し、
前記送信ステップでは、前記ユーザ機器が、前記暗号化された要求を前記リモートウェブサーバに送信し、
第２受信ステップでは、前記ユーザ機器が、前記ウェブページの要素の暗号化されたコードである暗号コードと前記暗号コードを復号化しうるコードとを含むスクリプトを含み且つ要求された前記ウェブページを受信し、前記要素は、データ入力に使用される要素と機密のユーザデータを含む要素とを含み、
前記復号化ステップでは、前記スクリプトを実行し、前記ハードウェア・プロセッサが、前記ユーザ機器のアプリケーションの秘密鍵を使用して、前記暗号コードを復号化し、
前記修正ステップでは、前記ハードウェア・プロセッサが、前記暗号コードを含む前記スクリプトを前記復号化されたコードに置き換えて前記ウェブページを修正する、
方法。
【請求項１４】
第１受信ステップでは、前記ユーザ機器が、前記リモートウェブサーバの公開鍵を含むスクリプトを受信し、前記ハードウェア・プロセッサが、前記スクリプトを実行して前記リモートウェブサーバの前記公開鍵を検索することを含む、
請求項１３に記載の方法。
【請求項１５】
前記暗号コードは、前記ユーザ機器のアプリケーションの公開鍵を使用して暗号化される、
請求項１３に記載の方法。
【請求項１６】
前記修正されたウェブページを前記ユーザ機器のディスプレイ上に表示することを更に備える、
請求項１３に記載の方法。
【請求項１７】
ウェブページデータの安全な送信のためのシステムであって、
ハードウェア・プロセッサを有するプロキシサーバを備え、
前記ハードウェア・プロセッサは、
リモートウェブサーバの公開鍵を受信し、
前記公開鍵を使用して、前記リモートウェブサーバにユーザ機器のアプリケーションにウェブページを提供する要求を暗号化し、
前記暗号化された要求を前記リモートウェブサーバに送信し、
前記ウェブページの要素の暗号化されたコードである暗号コードと前記暗号コードを復号化しうるコードとを含むスクリプトを含む要求された前記ウェブページを受信し、前記要素は、データ入力に使用される要素と機密のユーザデータを含む要素とを含み、
前記スクリプトを実行し、前記ユーザ機器のアプリケーションの秘密鍵を使用して、前記暗号コードを復号化し、
前記暗号コードを含む前記スクリプトを前記復号化されたコードに置き換えて前記ウェブページを修正する、
システム。
【請求項１８】
前記公開鍵の受信は、前記ユーザ機器が、前記リモートウェブサーバの公開鍵を含むスクリプトを受信し、前記ハードウェア・プロセッサが、前記スクリプトを実行して前記リモートウェブサーバの前記公開鍵を検索することを含む、
請求項１７に記載のシステム。
【請求項１９】
前記暗号コードは、前記ユーザ機器のアプリケーションの公開鍵を使用して暗号化される、
請求項１７に記載のシステム。
【請求項２０】
前記ハードウェア・プロセッサは更に、
前記修正されたウェブページを前記ユーザ機器のディスプレイ上に表示するように構成される、
請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してコンピュータセキュリティの分野に関し、より詳細には、ウェブページの暗号化送信のためのシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータの脅威（マルウェア、ハッカーの攻撃など）がますます増えているため、電子決済システム、インターネットバンキングサービス、及び機密データを扱う他のインターネットサービスは、ユーザのアプリケーションとネットワークサーバとの間の通信中にデータの保護レベルを高める必要がある。通信ネットワークを介して送信されるデータ（ウェブページなど）を保護するために、暗号化された通信プロトコル（プロトコルＨＴＴＰＳ、ＳＳＬ／ＴＬＳなど）が従来から使用されている。
【０００３】
ただし、ユーザのコンピュータにインストールされている悪意のあるソフトウェアの一部は、保護された通信プロトコルによる送信前にユーザのデータを傍受することができる。たとえば、バンキングサービスに係るトロイの木馬「Ｚｅｕｓ」や「ＳｐｙＥｙｅ」は、サーバから受信したＷｅｂページのコンテンツを分析し、ＡＰＩ（アプリケーション・プログラミング・インタフェース）の呼び出しを傍受するメカニズムを利用してブラウザに表示する直前に、その内容を修正してしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現在のデータ保護技術は、そのようなマルウェアに対抗するには効果がないことがしばしばありうる。したがって、ユーザ機器に送信されるウェブページのセキュリティを向上させる必要がある。
【課題を解決するための手段】
【０００５】
ユーザ機器へのウェブページの暗号化送信のためのシステム及び方法が開示される。本発明の一側面によれば、ウェブページデータの安全な送信のための方法であって、受信ステップと、分析ステップと、選択ステップと、暗号化ステップと、生成ステップと、修正ステップと、送信ステップと、を備え、前記受信ステップでは、プロキシサーバが、ユーザ機器に要求されたウェブページを受信し、前記分析ステップでは、前記プロキシサーバのハードウェア・プロセッサが、前記ウェブページを分析して当該ウェブページの要素のコードを特定し、前記選択ステップでは、暗号化するために１つ又は複数の前記要素を選択し、前記暗号化ステップでは、前記ハードウェア・プロセッサが、前記選択した要素の前記コードを暗号化して暗号コードを生成し、前記生成ステップでは、前記ハードウェア・プロセッサが、前記暗号コードを含むスクリプトを生成し、前記修正ステップでは、前記ハードウェア・プロセッサが、前記コードを前記スクリプトに置き換えて前記ウェブページを修正し、前記送信ステップでは、前記プロキシサーバが、前記修正されたウェブページを前記ユーザ機器に送信する、方法が提供される。
【０００６】
好ましくは、前記修正ステップでは、前記ウェブページのＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）を修正することを含む。
【０００７】
好ましくは、前記暗号化ステップでは、非対称暗号化方法を使用することを含む。
【０００８】
好ましくは、前記非対称暗号化方法を使用する前記暗号化ステップでは、前記ユーザ機器のアプリケーションの公開鍵を使用して前記コードを暗号化することを含む。
【０００９】
好ましくは、前記暗号化ステップでは、対称暗号化方法を使用することを含む。
【００１０】
好ましくは、前記選択ステップでは、（ｉ）ユーザの入力要素及び（ｉｉ）機密のユーザデータを含む出力要素のうちの１つ又は複数を選択することを含む。好ましくは、前記ウェブページ上のユーザ入力データを暗号化するために、前記プロキシサーバが、前記ユーザ機器のアプリケーションによって使用される前記リモートサーバの公開鍵を前記ユーザ機器に送信する送信ステップを更に含む。
【００１１】
本発明の別の側面によれば、ウェブページデータの安全な送信のためのシステムであって、ハードウェア・プロセッサを有するプロキシサーバを備え、前記ハードウェア・プロセッサは、ユーザ機器に要求されたウェブページを受信し、前記ウェブページを分析して当該ウェブページの要素のコードを特定し、暗号化するために１つ又は複数の前記要素を選択し、前記選択した要素の前記コードを暗号化して暗号コードを生成し、前記暗号コードを含むスクリプトを生成し、前記暗号コードを前記スクリプトに置き換えて前記ウェブページを修正し、前記修正されたウェブページを前記ユーザ機器に送信する、ように構成される、システムが提供される。
【００１２】
本発明の別の側面によれば、ウェブページデータの安全な送信のための方法であって、第１受信ステップと、暗号化ステップと、送信ステップと、第２受信ステップと、復号化ステップと、修正ステップと、を備え、第１受信ステップでは、ユーザ機器が、前記リモートウェブサーバの公開鍵を受信し、前記暗号化ステップでは、前記ユーザ機器のハードウェア・プロセッサが、前記公開鍵を使用して、前記リモートウェブサーバに前記ユーザ機器のアプリケーションにウェブページを提供する要求を暗号化し、前記送信ステップでは、前記ユーザ機器が、前記暗号化された要求を前記リモートウェブサーバに送信し、第２受信ステップでは、前記ユーザ機器が、１つ又は複数の前記要素の暗号化されたコードである暗号コードを含むスクリプトを含み且つ要求された前記ウェブページを受信し、前記復号化ステップでは、前記スクリプトを実行し、前記ハードウェア・プロセッサが、前記ユーザ機器のアプリケーションの秘密鍵を使用して、前記暗号コードを復号化し、前記修正ステップでは、前記ハードウェア・プロセッサが、前記暗号コードを含む前記スクリプトを前記復号化されたコードに置き換えて前記ウェブページを修正する、方法が提供される。
【００１３】
好ましくは、第１受信ステップでは、前記ユーザ機器が、前記リモートウェブサーバの公開鍵を含むスクリプトを受信し、前記ハードウェア・プロセッサが、前記スクリプトを実行して前記リモートウェブサーバの前記公開鍵を検索することを含む。
【００１４】
好ましくは、前記暗号コードは、前記ユーザ機器のアプリケーションの公開鍵を使用して暗号化される。
【００１５】
好ましくは、前記修正されたウェブページを前記ユーザ機器のディスプレイ上に表示することを更に備える。
【００１６】
本発明の別の側面によれば、ウェブページデータの安全な送信のためのシステムであって、ハードウェア・プロセッサを有するプロキシサーバを備え、前記ハードウェア・プロセッサは、前記リモートウェブサーバの公開鍵を受信し、前記公開鍵を使用して、前記リモートウェブサーバに前記ユーザ機器のアプリケーションにウェブページを提供する要求を暗号化し、前記暗号化された要求を前記リモートウェブサーバに送信し、１つ又は複数の前記要素の暗号化されたコードである暗号コードを含むスクリプトを含む要求された前記ウェブページを受信し、前記スクリプトを実行し、前記ユーザ機器のアプリケーションの秘密鍵を使用して、前記暗号コードを復号化し、前記暗号コードを含む前記スクリプトを前記復号化されたコードに置き換えて前記ウェブページを修正する、システムが提供される。
【００１７】
本発明の例示的な側面に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、すべての企図された側面の広範な概要ではなく、すべての側面の重要な又は重要な要素を特定することも本発明の任意の又はすべての側面の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、１つ又は複数の側面を簡略化した形で提示することである。前述の目的を達成するために、本発明の１つ又は複数の側面が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
【図面の簡単な説明】
【００１８】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本発明の１つ又は複数の例示的な側面を示し、詳細な説明とともに、それらの基本原理及び実施形態を説明する役割を果たすものである。
【図１】プロキシサーバを使用してウェブページをユーザ機器に暗号化送信するための１つの例示的なシステムを示す。
【図２】プロキシサーバを使用してウェブページをユーザ機器に暗号化送信するための暗号化の１つの例示的な方法を示す。
【図３】プロキシサーバ無しにウェブページをユーザ機器に暗号化送信するための別の例示的なシステムを示す。
【図４】プロキシサーバ無しにウェブページをユーザ機器に暗号化送信するための別の例示的な方法を示す。
【図５】システム及び方法に係る開示された側面を実施することができる汎用コンピュータ・システムの例を示す。
【発明を実施するための形態】
【００１９】
本発明の例示的な側面は、ユーザ機器へのウェブページの暗号化送信のためのシステム、方法、及びコンピュータプログラム製品に関連し、本明細書で説明される。当業者であれば、以下の説明は例示的なものに過ぎず、決して限定するものではないことを理解するであろう。他の側面は、本開示の利益を有する当業者には容易に示唆されるであろう。以下、添付の図面に例示されている例示的な側面の実施形態を詳細に参照する。同一の符号は、図面全体にわたって可能な範囲で使用され、以下の説明は、同じ又は同様の項目を参照するために使用される。
【００２０】
図１は、プロキシサーバを使用してウェブページをユーザ機器に暗号化送信するための１つの例示的なシステムを示す。このシステムは、１つ又は複数のウェブページ１０６を含むウェブサイトをホストするリモートサーバ１０１を含む。リモートサーバ１０１は、プロキシサーバ１０２に接続され、プロキシサーバ１０２は、リモートサーバ１０１からウェブページ１０６を受信し、暗号化モジュール１０４を使用してその少なくとも一部を暗号化することによってウェブページを修正し、修正されたウェブページをユーザ機器１０３上のアプリケーション１０７（例えば、インターネットブラウザ、インターネットバンキングアプリケーションなど）に送信する。
【００２１】
例示的な一側面では、プロキシサーバ１０２は、ウェブページ１０６の要素を識別し、１つ又は複数の選択されたウェブページの要素のプログラムコードを暗号化するように構成された暗号化モジュール１０４を含む。ウェブページの要素とは、テキストフィールド、「ボタン」フィールド、データ入力フィールド、ファイル（オーディオ、ビデオ、グラフィックス）へのリンク、ハイパーリンク、及び他の既知のＨＴＭＬ、ＸＭＬ又はウェブページの他の要素を含みうる。
【００２２】
１つの例示的な側面では、プロキシサーバ１０２は、スクリプト（例えば、ＪａｖａＳｃｒｉｐｔコードなど）を生成し、スクリプトを追加することによってウェブページを修正し、ウェブページの要素の暗号化の元となったコードを削除するように構成されるスクリプトモジュール１０５も含む。スクリプトは、暗号化モジュール１０４によって暗号化されたウェブページの要素のコードと、ユーザ機器１０３上で実行されるときにウェブページの要素の暗号コードを復号化しうるコードとを含む。
【００２３】
例示的な一側面では、プロキシサーバ１０２は、スクリプトに含まれる暗号化データを復号化しうるコードを有するスクリプトのテンプレートを含みうる。したがって、スクリプトを生成するとき、プロキシサーバ１０２は、テンプレートを利用して、受信したウェブページの要素の暗号コードを追加することができる。
【００２４】
ウェブページは、異なるフォーマット（テキスト、グラフィックス、オーディオ、ビデオ、スクリプトなど）、データベースなどのファイルへのリンクを含みうるＨＴＭＬフォーマットの文書であってもよい。
【００２５】
１つの例示的な側面では、暗号化モジュール１０４は、暗号化が必要なウェブページの要素のリストを含みうる。要素のリストは、管理者によって予め決められてもよいし、多数のウェブページに含まれるウェブページの要素に関する統計に基づいて自動的に生成されてもよいし、データ漏洩防止（ＤＬＰ：Ｄａｔａ  Ｌｅａｋ  Ｐｒｅｖｅｎｔｉｏｎ）の様々な技術を用いて自動的に生成されてもよい。１つの例示的な側面では、要素のリストは、悪意のあるソフトウェアによる盗難から保護すべきウェブページ要素を含む。例えば、リストには５つのテキストフィールド、２つのグラフィックスへのリンク、及びデータベースへのリンクが含まれている。
【００２６】
１つの例示的な側面では、要素のリストからの要素のコードの暗号化は、非対称暗号化方法（ＲＳＡアルゴリズムなど）を使用して行われうる。この場合、リモートサーバ１０１は、あらかじめ自身の公開鍵と秘密鍵を生成し、アプリケーション１０７は、自身の公開鍵と秘密鍵を生成する。次に、リモートサーバ１０１とアプリケーション１０７は、公開鍵を交換する。
送信されるデータを暗号化するためには公開鍵が必要だが、受信側でデータを復号化するには秘密鍵が必要となる。１つの例示的な側面において、プロキシサーバ１０２は、プロキシサーバ１０２に送信されたメッセージを暗号化するために、アプリケーション１０７によって必要とされる公開暗号鍵を送信するように構成されうる。データの復号化を可能にするプログラムコードを含むスクリプトを実行することによって、アプリケーション１０７の秘密暗号鍵を使用してデータの復号化（ウェブページの要素の暗号コード）を行うことができる。
【００２７】
さらに別の例示的な側面では、ウェブページの要素のコードの暗号化は、非対称暗号化よりも一般的に高速である対称暗号化（ＡＥＳアルゴリズムなど）を使用して行うことができる。この場合、データの暗号化と復号化のために設計された秘密暗号鍵が使用されうる。例示的な一側面では、秘密暗号鍵は、リモートサーバ１０１によって生成され、非対称暗号化を使用してアプリケーション１０７に送信される。別の例示的な側面では、秘密鍵は定期的に（例えば、１日に１回又は新しいブラウザセッションが開かれるとき）変更されうる。
【００２８】
図２は、プロキシサーバを使用してウェブページをユーザ機器に暗号化送信するための暗号化の１つの例示的な方法を示す。ステップ２０１において、プロキシサーバ１０２は、リモートサーバ１０１からウェブページ１０６を受信する。次に、ステップ２０２において、プロキシサーバ１０２は、受信したウェブページ１０６を暗号化モジュール１０４に送信する。
ステップ２０３において、暗号化モジュール１０４は、ウェブページ１０６内の要素を識別し、暗号化する要素を選択する。１つの例示的な側面では、ウェブページのすべての要素が暗号化のために選択されてもよい。別の例示的な側面では、プロキシサーバ１０２上に存在する要素のリストに含まれる要素のみが暗号化のために選択される。次に、ステップ２０４において、暗号化モジュール１０４は、選択されたウェブページの要素のコードの暗号化を実行して暗号コードを生成する。ステップ２０５において、スクリプトモジュール１０５は、選択されたウェブページの要素の暗号コードを含むスクリプト（例えば、ＪａｖａＳｃｒｉｐｔコード）を生成する。ステップ２０６において、スクリプトモジュール１０５は、生成されたスクリプトをウェブページ１０６に追加し、ウェブページ１０６からウェブページの要素の暗号化の元となったコードを削除することによって、ウェブページ１０６を修正する。ステップ２０７において、プロキシサーバ１０２は、修正されたウェブページ１０６をアプリケーション１０７に送信する。１つの例示的な側面では、ウェブページ１０６の修正は、ウェブページ１０６のＤＯＭ（ドキュメントオブジェクトモデル）ツリーを修正することによって行うことができる。
【００２９】
例示的な一側面では、ステップ２０４において、要素のリストからのウェブページの要素のコードの暗号化は、非対称暗号化方法を使用して行われる。別の例示的な側面では、ステップ２０７において、プロキシサーバ１０２は、プロキシサーバ１０２に送信されたアプリケーション１０７のメッセージを暗号化するためにアプリケーション１０７によって必要とされるリモートサーバ１０１の公開鍵をさらにアプリケーション１０７に送信することができる。また、ウェブページの要素内で且つユーザによって入力されたデータを暗号化する。
【００３０】
別の例示的な側面では、ステップ２０４における暗号化は、アプリケーション１０７の公開暗号鍵を使用して行われ、アプリケーション１０７は、その秘密鍵を使用して、修正されたウェブページの復号化を実行する。アプリケーション１０７の公開暗号鍵は、事前にプロキシサーバ１０２に送信されていてもよい。別の例示的な側面では、ステップ２０４における暗号化は、対称暗号化アルゴリズムを使用して行われてもよい。かかる場合、データの暗号化と復号化の両方に単一の秘密鍵が使用されうる。この秘密鍵は、アプリケーション１０７とプロキシサーバ１０２との間で予め設定されていてもよい。
【００３１】
一例として、プロキシサーバ１０２は、そのフィールドに機密データ（銀行のカードデータ、ユーザの氏名など）を含むインターネットバンキングウェブサイトのウェブページ１０６を受信することができる。暗号化モジュール１０４は、例えば、データ入力に使用されるウェブページの要素及び機密データを含むウェブページの要素を選択し、選択された要素のコードを暗号化することができる。要素の暗号コードは元のウェブページ１０６から除去され、暗号化形式でスクリプトに追加され、暗号化されたフォームが修正されたウェブページ１０６に含まれる。最後に、修正されたウェブページ１０６が、アプリケーション１０７に送信される。
【００３２】
図３は、プロキシサーバ無しにウェブページをユーザ機器に暗号化送信するための別の例示的なシステムを示す。このシステムは、暗号化モジュール１０４に接続されたリモートサーバ１０１と、アプリケーション１０７を有するユーザ機器１０３とを含む。リモートサーバ１０１には、リモートサーバの公開鍵と秘密暗号鍵が格納されており、アプリケーション１０７には公開鍵１０７と秘密鍵１０７が格納されている。暗号鍵は、暗号化モジュール１０４を用いてアプリケーション１０７とリモートサーバ１０１との間で暗号化されたメッセージを交換する役割を果たす。さらに、アプリケーションは、リモートサーバの公開鍵を有し、プロキシサーバは、アプリケーションの公開鍵を有するので、あるパーティは、それぞれのパーティの公開鍵を使用して、他のパーティにメッセージを暗号化することができる。リモートサーバ１０１は、リモートサーバ１０１の公開暗号鍵を含むスクリプトをアプリケーション１０７に送信する。例示的な一側面では、スクリプトは、第三者によってリモートサーバ１０１から送信されている情報の不正な修正を防止するために、デジタル署名をさらに含むことができる。
【００３３】
暗号化モジュール１０４は、アプリケーション１０７の公開暗号鍵を用いて、アプリケーション１０７へのメッセージを暗号化するように構成されている。次いで、リモートサーバ１０１は、暗号化されたメッセージをアプリケーション１０７に送信する。
【００３４】
アプリケーション１０７は、リモートサーバ１０１の公開暗号鍵を含むリモートサーバ１０１からスクリプトを、ウェブページ１０６のウェブページ要素を含むアプリケーション１０７の公開暗号鍵で暗号化されたリモートサーバ１０１からのメッセージとともに受信する。アプリケーション１０７は、リモートサーバ１０１の公開暗号鍵を使用して、リモートサーバ１０１に送信されているメッセージを暗号化する。
【００３５】
アプリケーション１０７は、スクリプトを実行し、リモートサーバ１０１の公開暗号鍵で暗号化された要求をリモートサーバ１０１に送信し、ウェブページ１０６を受信する。この要求の暗号化は、スクリプトを実行することによって行うことができる。アプリケーション１０７はまた、リモートサーバ１０１の公開鍵で暗号化されたウェブページ１０６の要素のコードを受信するためのユーザの要求をリモートサーバ１０１に送信する。
【００３６】
図４は、プロキシサーバ無しにウェブページをユーザ機器に暗号化送信するための別の例示的な方法を示す。ステップ４０１において、アプリケーション１０７は、スクリプトが含まれているリモートサーバ１０１からウェブページ１０６を受信する。スクリプトには、リモートサーバ１０１の公開暗号鍵が含まれている。ステップ４０２において、受信したスクリプトを実行することにより、アプリケーション１０７は、ウェブサーバ１０６の受信要求をリモートサーバ１０１の公開暗号鍵で暗号化し、リモートサーバ１０１に送信する。次に、ステップ４０３において、スクリプトを実行することによって、アプリケーション１０７は、ウェブページ１０６の選択された要素のコードを含むアプリケーション１０７の公開暗号鍵を使用して、暗号化モジュール１０４によって暗号化されたリモートサーバ１０１からメッセージを受信する。ステップ４０４において、アプリケーション１０７は、スクリプトを実行することにより、アプリケーション１０７の秘密暗号鍵を用いて受信したメッセージを復号化する。ステップ４０５において、スクリプトを実行することによって、アプリケーション１０７は、受信したウェブページ１０６に、復号されたメッセージからウェブページの要素の復号化されたコードを追加し、ステップ４０６において、変更されたウェブページ１０６をユーザに表示する。
【００３７】
１つの例示的な側面では、システムはさらに、ウェブページ１０６が存在する第２リモートサーバを有することができる。かかる場合、リモートサーバ１０１は、アプリケーション１０７と第２リモートサーバとの間のプロキシサーバとして動作する。
【００３８】
また、リモートサーバ１０１がプロキシサーバ１０２の機能を実行する場合には、ステップ４０２において、アプリケーション１０７の要求に基づいて、リモートサーバ１０１からウェブページ１０６を受信する。次に、プロキシサーバ１０２は、図２におけるステップ２０１〜２０５を実行する。最後に、ステップ４０３において、アプリケーション１０７は、スクリプトをプロキシサーバ１０２から受信し、ステップ２０５において、アプリケーション１０７のための修正されたウェブページ１０６を送信する。
【００３９】
図５は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム（パーソナル・コンピュータやサーバ等）の例を示している。例えば、コンピュータ・システム２０は、保護サーバ１２０又はシンクライアント１１０の１つ又は複数に対応し得る。図示の通り、コンピュータ・システム２０は、ＣＰＵ２１（シンクライアント１１０用ではないことに留意）と、システムメモリ２２と、ＣＰＵ２１と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス２３とを含み得る。システムバス２３は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来から公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含む。基本的な入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４の使用によってオペレーティング・システムをロードする際等、パーソナル・コンピュータ２０の要素間の情報の伝達を担う基本的な手順を含む。
【００４０】
パーソナル・コンピュータ２０は、データの読み書きのためのハードディスク２７、取り外し可能な磁気ディスク２９の読み書きのための磁気ディスクドライブ２８、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光学メディア等の光学ディスク３１の読み書きのための光学式ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、及び光学式ドライブ３０は、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、及び光学式ドライブインターフェース３４それぞれを横切るシステムバス２３と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパーソナル・コンピュータ２０の他のデータのストレージのための電源依存のモジュールである。
【００４１】
本発明は、ハードディスク２７、取り外し可能な磁気ディスク２９及び取り外し可能な光学ディスク３１を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ（ＲＡＭ）等の他のタイプのコンピュータ情報メディア５６を使用してもよいことに留意されたし。また、これはコントローラ５５を介してシステムバス２３に接続される。
【００４２】
コンピュータ２０は、ファイルシステム３６を有し、記録されたオペレーティング・システム３５を保持する。また追加のプログラムアプリケーション３７、他のプログラムモジュール３８、及びプログラムデータ３９を有する。ユーザは、入力デバイス（キーボード４０、マウス４２）を用いてコマンドと情報をパーソナル・コンピュータ２０に入力することができる。他の入力デバイス（不図示）：マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力デバイスは、通常、システムバスに次々接続しているシリアルポート４６を通じてコンピュータ・システム２０に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス（ＵＳＢ）に接続される。ディスプレイ機器のモニタ４７又は他のタイプは、また、ビデオアダプタ４８等のインターフェースと交差するシステムバス２３に接続している。モニタ４７に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力デバイス（不図示）を接続できる。
【００４３】
パーソナル・コンピュータ２０は、１つ又は複数のリモートコンピュータ４９とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ（又はコンピュータ）４９は、図４に示すように、パーソナル・コンピュータ２０の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
【００４４】
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク（ＬＡＮ）５０及びワイドエリアコンピュータ・ネットワーク（ＷＡＮ）を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていにインターネットにアクセスすることができる。ＬＡＮ又はＷＡＮネットワークにおいて、パソコン２０は、ネットワークアダプタ又はネットワークインターフェース５１に交差するローカルエリアネットワーク５０に接続されている。ネットワークが用いられる時には、パソコン２０は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム５４又は他のモジュールを使用することができる。内部又は外部の機器であるモデム５４は、シリアルポート４６によりシステムバス２３と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法もあることに留意されたい。
【００４５】
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及びメソッドを実施し得る。ソフトウェアにおいて実装される場合は、メソッドは不揮発性コンピュータ可読メディアの１つ又は複数の指示又はコードとして保存され得る。コンピュータ可読メディアは、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読メディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【００４６】
様々な実施形態で、本発明のシステム及びメソッドが、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という２つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる（図６において詳述したもの等）。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
【００４７】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【００４８】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【００４９】
本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
0006545136.tif 000002
【図２】
0006545136.tif 000003
【図３】
0006545136.tif 000004
【図４】
0006545136.tif 000005
【図５】
0006545136.tif 000006