(57)【特許請求の範囲】
【請求項１】
一人または複数のユーザに固有の専用キーと共に公開キー暗号を使ってメッセージを処理する通信システムであって、
ネットワークを介したクライアントとのデータ通信に適合され、予めキー暗号化キーで暗号化されたユーザ用の専用キーを受け取り安全な形で記憶する第１のデータ記憶手段を含むサーバ手段を含み、
サーバ手段が、さらに、クライアント上で実行可能なアプレット・コードを記憶する第２のデータ記憶手段を含み、サーバが、ネットワークを介するクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをクライアントに提供するものであり、
アプレット・コードが、クライアント内で実行されるとき、処理すべきメッセージをユーザから受け取り、サーバ手段からネットワークを介してユーザ用の暗号化した専用キーを取り出し、ユーザからキー暗号化キーを受け取り、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの暗号化処理を実行するように動作可能な安全処理手段を含み、
アプレット・コードとその関連キーが、アプレット・コードの終了時にクライアントから除去されることを特徴とする通信システム。
【請求項２】
安全処理手段が、登録ユーザの最初の登録中にクライアントで実行されるとき、専用キーとその関連公開キーを生成し、登録するユーザからキー暗号化キーを受け取り、登録ユーザから受け取ったキー暗号化キーを使って専用キーを暗号化し、暗号化した専用キーと公開キーをクライアントからサーバ手段に送って、第１のデータ記憶手段に記憶するように動作可能なことを特徴とする請求項１に記載の通信システム。
【請求項３】
サーバ手段が、暗号化した専用キーを記憶するキーサーバと、ネットワークに接続されたウェブ・サーバと、ウェブ・サーバをキーサーバに接続するファイヤウォールとを含み、キーサーバが、専用キーをウェブ・サーバを介してクライアントに提供することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
一人または複数のユーザに固有の専用キーによる公開キー暗号を使ってメッセージを処理する方法であって、
ネットワークを介するクライアントとのデータ通信に適合され、ユーザ用の専用キーを安全な形で記憶するサーバ手段に、予めキー暗号化キーで暗号化された専用キーを受け取って記憶する段階と、
サーバ手段に、クライアント上で実行可能なアプレット・コードを記憶する段階と、
ネットワークを介するクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをサーバからクライアントに送る段階と、
アプレット・コードを介して、安全処理手段をクライアントに供給する段階と、
クライアントが安全処理手段を介して、ユーザから処理するメッセージを受け取る段階と、
クライアントが安全処理手段を介して、ネットワークを介してサーバ手段からユーザ用の暗号化した専用キーを取り出す段階と、
クライアントが安全処理手段を介して、ユーザからキー暗号化キーを受け取る段階と、
クライアントが安全処理手段を介して、キー暗号化キーを使って専用キーを非暗号化する段階と、
クライアントが安全処理手段を介して、非暗号化した専用キーを使ってメッセージの暗号化処理を実行する段階と、
アプレットの終了時に、クライアントからアプレット・コードとその関連キー及びアルゴリズムを除去する段階と
を含むことを特徴とする方法。
【請求項５】
登録ユーザの最初の登録中に、クライアントにおいて安全処理手段を介して専用キーとその関連公開キーを生成する段階と、
登録ユーザからキー暗号化キーを受け取る段階と、
登録ユーザの最初の登録中に、クライアントにおいて安全処理手段を介して登録ユーザから受け取ったキー暗号化キーを使って専用キーを暗号化する段階と、
暗号化した専用キーと公開キーを、第１のデータ記憶手段に記憶するためにクライアントからサーバ手段に送る段階と
を含むことを特徴とする請求項４に記載の方法。
【請求項６】
メッセージを、一人または複数のユーザに固有の専用キーによる公開キー暗号を使って処理する通信システムのサーバ・コンピュータ・システムであって、
ネットワークを介してクライアントとデータを通信する通信手段と、
予めキー暗号化キーで暗号化されたユーザ用の専用キーを受け取り安全な形で記憶する第１のデータ記憶手段とを含み、
サーバ手段が、さらに、クライアント上で実行可能なアプレット・コードを記憶する第２のデータ記憶手段を含み、サーバが、ネットワークを介したクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをクライアントに提供し、
アプレット・コードが、クライアント内で実行されるとき、ユーザから処理するメッセージを受け取り、ネットワークを介してサーバ手段からユーザ用の暗号化した専用キーを取り出し、ユーザからキー暗号化キーを受け取り、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの暗号化処理を実行するように動作可能な安全処理手段を含み、
アプレット・コードの終了時に、アプレット・コードとその関連キーがクライアントから除去されることを特徴とするサーバ・コンピュータ・システム。
【請求項７】
暗号化した専用キーを記憶するキーサーバと、ネットワークに接続されたウェブ・サーバと、ウェブ・サーバをキーサーバに接続するファイヤウォールとを含み、キーサーバが、専用キーをウェブ・サーバを介してクライアントに提供することを特徴とする請求項６に記載のサーバ・コンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信システムに関し、より詳細には、公開キー暗号を使ったデータ通信システム内のメッセージの安全な処理に関する。本発明は、特に、ディジタル署名の生成に適用されるが、それだけに制限されるものではない。
【０００２】
【従来の技術】
公開キー暗号アルゴリズムは、データ通信システムにおいてメッセージの起点を確認したり安全性または保全性を保証したりするために幅広く使用されている。そのようなアルゴリズムには様々なタイプが存在し、その１つの周知の変形はＲＳＡアルゴリズムである。公開キー暗号及びＲＳＡアルゴリズムの一般的な紹介は、メイヤー（Ｍｅｙｅｒ）とマチヤス（Ｍａｔｙａｓ）による「Ｃｒｙｐｔｏｇｒａｐｈｙ  −  Ａ  Ｎｅｗ  Ｄｉｍｅｎｓｉｏｎ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ」３２〜４８ページ、ｗｉｌｅｙ  １９８２年に出ている。これらのアルゴリズムは、従来の対称キーアルゴリズムに勝るいくつかの明確な利点を有する。特に、これらのアルゴリズムは、キーを公開しあるいは証明するための機能を提供して、独立した第三者が中央の権限を参照せずにメッセージを受け取り検証することができる。
【０００３】
データ通信の公開キー暗号の利用法の１つの例は、ディジタル署名の生成である。この技術の背後にある原理は、公開ディジタル値すなわち伝送されるメッセージと署名ユーザに依存する署名の作成であり、それにより、受信ユーザが、他のユーザではなくその送信ユーザだけが署名値を作成することができ、そのユーザが他のメッセージではなくそのメッセージの署名値を作成したことを確信することができる。
【０００４】
そのようなシステムにおいて、メッセージに署名する側は、対応する公開キーがある専用キーをもつ。公開キーは、署名者が専用キーを使って暗号化したデータを非暗号化するために誰でも使用できるが、専用キーを使わないとそのような暗号化データをだれも作成できないように使用可能である。
【０００５】
一般に、署名者は、別のメッセージが同じ値になる可能性が極めて小さくなるように、強力なハッシュ・アルゴリズムを使ってメッセージからハッシュ値を作成する。この値を計算する手段は公知であるが、同じ値になる異なるメッセージを決定することができる方法はない。署名者は、専用キーを使って値を暗号化し、メッセージとその暗号化した値を受信側に送る。暗号化した値は、一般に、「ディジタル署名」として知られる。
【０００６】
受信側は、公開キーを使ってその値を非暗号化することができ、メッセージ上での計算が同じ値になるかどうか試すことができる。これを行えば、同じ値となる別のメッセージを計算するのに実行可能な方法がないため、メッセージが署名されたものであるということを受信側に確信させることができる。また、専用キーを使わずにだれも暗号化した値を作成できないため、受信側は、署名者が実際にメッセージに署名したことを確信することができる。
【０００７】
しかし、そのような公開キー暗号方式は、計算が大変であり、暗号化と非暗号化のために処理能力やメモリ要件など、対称キー方式よりもはるかに大きい計算資源を必要とする。
【０００８】
公開キー暗号のデータ通信への多くの応用例において、メッセージは、セキュリティ装置の制御下で処理し、ユーザが提示しなければならない。セキュリティ装置は、スマート・カード、ＰＣＭＣＩＡカード、ラップトップ・コンピュータなどの家庭用コンピュータ端末や携帯型装置でもよい。米国商務省／国立標準技術研究所（ＮＩＳＴ）において、１９９４年５月１９日に連邦情報処理標準（ＦＩＰＳ）１８６で公表されたディジタル署名規格のような、検証するよりも少ない計算労力でメッセージに署名できるようにする方法が提案されたが、あいかわらず、現行技術を利用した多くのケースでは、十分に強力な公開キーの処理を許容範囲内の時間で実行するのに必要な処理能力やメモリを備えたセキュリティ装置を提供することは実際的でなくあるいはコスト効率が悪い。
【０００９】
セキュリティ装置が、秘密キーをサーバに公表する必要なしに、高性能のサーバ・コンピュータの支援により公開キーの処理を実行できるようにするために、従来技術において様々な方法が提案された。そのような技術の例は、たとえば、ライヒ（Ｌａｉｈ）他による「Ｔｗｏ  ｅｆｆｉｃｉｅｎｔ  ｓｅｒｖｅｒ−ａｉｄｅｄ  ｓｅｃｒｅｔ  ｃｏｍｐｕｔａｔｉｏｎ  ｐｒｏｔｏｃｏｌｓ  ｂａｓｅｄ  ｏｎ  ｔｈｅ  ａｄｄｉｔｉｏｎ  ｓｅｑｕｅｎｃｅ」、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  Ａｓｉａｃｒｙｐｔ  ９１  Ｐｒｏｃｅｅｄｉｎｇｓ  １９９３  ｐｐ４５０−４５９に出ている。
【００１０】
これらの方法は、問題をある程度軽減するが、ユーザの所有するデバイスに秘密キーを記憶することによるいくつかの欠点を有する。
【００１１】
第１に、秘密キーを獲得するために装置が精密に調べられる可能性がある。
【００１２】
第２に、署名者の専用キーが損なわれている場合、別のユーザがその専用キーを使ってメッセージを処理することができる。この状況では、無許可のユーザが使用できないように秘密キーを無効にする手段が必要である。セキュリティ装置はシステムに常時接続されているわけではなく、いつでもシステムに再接続されることがあるため、秘密キーの取り消しまたは使用防止は、実際には極めて困難である。通常、これは、様々なタイプのユーザ・ブラックリストを使って実施されていた。しかし、そのようなリストの信憑性を、特に広範囲のネットワークにわたって制御し、更新し、検証することに伴う実際上の問題がたくさんある。
【００１３】
さらに、署名のために公開キーアルゴリズムを使用するある種のスマート・カードの実施形態は、スマート・カード内で１対のユーザの公開キーと専用キーを生成することができないため、最初にキーをセキュリティ装置にロードするときに、セキュリティが露顕する可能性がある。これは、キー生成アルゴリズムが、暗号化及び非暗号化の関数よりもかなり複雑であるためである。したがって、秘密キーをカードに記憶させる必要がある場合には、秘密キーをカードの外部で生成し、初期設定プロセスの間にカードに入力しなければならない。この初期設定プロセスは、必然的に、キーをある程度露顕させる。
【００１４】
欧州特許出願ＥＰ０７２５５１２Ａ２は、ユーザが保持する携帯型セキュリティ・デバイスの制御下で、１人または複数のユーザに固有の専用キーによる公開キー暗号を使ってメッセージを処理する通信システムを開示しており、このシステムは、専用キーを使って公開キー処理を実行するように、携帯型セキュリティ装置とのデータ通信に適合されたサーバを含み、サーバは、キー暗号化キーで暗号化されたユーザ用の専用キーを暗号の形だけの安全な方法で記憶するデータ記憶手段を含みあるいは使用し、このサーバは、ユーザから処理するメッセージを受け取り、ユーザ用の暗号化した専用キーを取り出し、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの公開キー処理を実行し、使用後はキー暗号化キーと非暗号化した専用キーを削除する安全処理手段を含むことを特徴とし、各セキュリティ装置は、キー暗号化キーを記憶または生成し、キー暗号化キーをサーバに提供する手段と、処理するメッセージを指定する手段とを含み、システムは、サーバへの少なくともキー暗号化キーの通信が安全で、サーバが、キー暗号化キーだけを使ってユーザによって指定されたメッセージを処理することができるように構成される。
【００１５】
ＥＰ０７２５５１２に記載された通信システムにおいて、公開キーアルゴリズムは、安全なサーバによって実行される。但し、サーバは、暗号化した形の専用キーだけを使用する。携帯型セキュリティ装置は、サーバが専用キーを非暗号化し、それを使用し、使用後にその専用キーを削除できるようにサーバにキーを提供することによって公開キーの処理を制御する。
【００１６】
【発明が解決しようとする課題】
本発明は、暗号アルゴリズムやキーを許可ユーザが保持する必要なしに、許可ユーザだけが特定メッセージの処理を許可されたことを示すことができるような形で、許可ユーザの代わりに公開キー処理を使ってメッセージを処理することができる安全な方法を提供する課題を対象とする。
【００１７】
【課題を解決するための手段】
この問題を解決するために、本発明によれば、一人または複数のユーザに固有の専用キーと共に公開キー暗号を使ってメッセージを処理する通信システムであって、ネットワークを介したクライアントとのデータ通信に適合され、キー暗号化キーで暗号化されたユーザ用の専用キーを安全な形で記憶する第１のデータ記憶手段を含むサーバ手段を含み、サーバ手段が、さらに、クライアント上で実行可能なアプレット・コードを記憶する第２のデータ記憶手段を含み、サーバが、ネットワークを介したクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをクライアントに提供し、アプレット・コードが、クライアント内で実行されるとき、ユーザから処理するメッセージを受け取り、ネットワークを介してサーバ手段からユーザ用の暗号化した専用キーを取り出し、ユーザからキー暗号化キーを受け取り、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの暗号キー処理を実行するように動作できる安全処理手段を含み、アプレット・コードとその関連キーが、アプレット・コードが終了するとクライアントから除去されることを特徴とする通信システムが提供される。
【００１８】
安全処理手段が、登録ユーザの最初の登録中にクライアントで実行されるときに、専用キーとその関連公開キーを生成し、登録ユーザからキー暗号化キーを受け取り、登録するユーザから受け取ったキー暗号化キーを使って専用キーを暗号化し、暗号化した専用キーと公開キーをクライアントからサーバ手段に送って、第１のデータ記憶手段に記憶できるように動作できることが好ましい。
【００１９】
本発明の好ましい実施形態において、サーバ手段は、暗号化した専用キーを記憶するキーサーバと、ネットワークに接続されたウェブ・サーバと、ウェブ・サーバをキーサーバに接続するファイヤウォールとを含み、キーサーバが、専用キーをウェブ・サーバを介してクライアントに提供する。
【００２０】
本発明を別の側面から見ると、一人または複数のユーザに固有の専用キーと共に公開キー暗号を使ってメッセージを処理する方法であって、ネットワークを介したクライアントとのデータ通信に適合され、ユーザ用の専用キーを安全な形で記憶するサーバ手段に、キー暗号化キーで暗号化された専用キーを記憶する段階と、サーバ手段に、クライアント上で実行可能なアプレット・コードを記憶する段階と、ネットワークを介したクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをサーバからクライアントに送る段階と、アプレット・コードを介して、安全処理手段をクライアントに供給する段階と、クライアントが安全処理手段を介して、ユーザから処理するメッセージを受け取る段階と、クライアントが安全処理手段を介して、サーバ手段からネットワークを介してユーザ用の暗号化された専用キーを取り出す段階と、クライアントが安全処理手段を介して、ユーザからキー暗号化キーを受け取る段階と、クライアントが安全処理手段を介して、キー暗号化キーを使って専用キーを非暗号化する段階と、クライアントが安全処理手段を介して、非暗号化した専用キーを使ってメッセージの暗号キー処理を実行する段階と、アプレットの終了時に、クライアントから、アプレット・コードとその関連キー及びアルゴリズムを除去する段階とを含む方法が提供される。
【００２１】
この方法は、登録ユーザの最初の登録中にクライアントにおいて安全処理手段を介して専用キーとその関連公開キーを生成する段階と、登録ユーザからキー暗号化キーを受け取る段階と、登録ユーザの最初の登録中にクライアントにおいて安全処理手段を介して登録ユーザから受け取ったキー暗号化キーを使って専用キーを暗号化する段階と、暗号化した専用キーと公開キーを、第１のデータ記憶手段に記憶するためにクライアントからサーバ手段に送る段階とを含むことが好ましい。
【００２２】
本発明をさらに別の側面から見ると、メッセージを、一人または複数のユーザに固有の専用キーと共に公開キー暗号を使って処理する通信システムのサーバ・コンピュータ・システムであって、ネットワークを介してクライアントとデータを通信する通信手段と、キー暗号化キーで暗号化したユーザ用の専用キーを安全な形で記憶する第１のデータ記憶手段とを含み、サーバ手段が、さらに、クライアント上で実行可能なアプレット・コードを記憶する第２のデータ記憶手段を含み、サーバが、ネットワークを介したクライアントのサーバへの接続に応答して、アプレット・コードをネットワークを介してクライアントに提供し、アプレット・コードが、クライアント内で実行されるとき、ユーザから処理するメッセージを受け取り、サーバ手段からユーザ用の暗号化した専用キーをネットワークを介して取り出し、ユーザからキー暗号化キーを受け取り、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの暗号キー処理を実行するように動作できる安全処理手段を含み、アプレット・コードの終了時に、アプレット・コードとその関連キーがクライアントから除去されることを特徴とするサーバ・コンピュータ・システムが提供される。
【００２３】
【発明の実施の形態】
これから説明する本発明の好ましい実施形態は、インターネットを介して動作するように構成される。より具体的には、これから説明する好ましい実施形態は、インターネットによって提供される機能の１つであるワールド・ワイド・ウェブ（ＷＷＷ）を介して動作するように構成される。ＷＷＷは、多数の様々なサーバに分散された情報の多数のページまたはファイルを含む。各ページは、Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）によって識別される。ＵＲＬはそれぞれ、サーバ装置と、その装置上の特定のファイルまたはページを表す。１つのサーバには多数のページまたはＵＲＬが常駐することができる。
【００２４】
ＷＷＷを使用するとき、ユーザは、パーソナル・コンピュータなどのクライアント・コンピュータ・システム上でウェブ・ブラウザと呼ばれるコンピュータ・プログラムを実行する。幅広く使用されているウェブ・ブラウザの例には、インターナショナル・ビジネス・マシーンズ・コーポレーションから提供されるＯＳ／２オペレーティング・システム・ソフトウェアのウェブ・ブラウザ「ＷｅｂＥｘｐｌｏｒｅｒ」、またはＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なウェブ・ブラウザ「Ｎａｖｉｇａｔｏｒ」がある。ユーザは、ウェブ・ブラウザと対話して特定のＵＲＬを選択する。ブラウザは、対話によって、選択したＵＲＬで識別されるページまたはファイルの要求を、選択したＵＲＬで識別されるサーバに送る。一般に、サーバは、要求されたページを検索し、そのページのデータを要求クライアントに返送することにより応答する。クライアントとサーバの対話は、通常、ハイパーテキスト転送プロトコル（「ｈｔｔｐ」）に従って実施される。この場合、クライアントが受け取ったぺージは、クライアントの表示画面上でユーザに表示される。また、クライアントは、サーバにアプリケーションを立ち上げさせ、たとえば特定の話題に関するＷＷＷページを探索することもできる。
【００２５】
ＷＷＷページは、通常、ハイパーテキスト・マークアップ言語（「ＨＴＭＬ」）として知られるコンピュータ・プログラミング言語によってフォーマットされている。したがって、通常のＷＷＷページは、たとえば、フォント・スタイル、フォント・サイズ、レイアウトなどを制御するために使用されているタグと呼ばれるフォーマット・コマンドを埋め込んだテキストを含む。ウェブ・ブラウザは、テキストを指定のフォーマットで表示させるために、ＨＴＭＬスクリプトを解析する。さらに、ＨＴＭＬページは、イメージ、ビデオ・セグメント、オーディオ・ファイルなどのマルチメディア・データ部分への別のＵＲＬによる参照を含むこともある。ウェブ・ブラウザは、そのような参照に応答して、マルチメディア・データを取り出し、表示しまたは再生する。あるいは、マルチメディア・データが、ＨＴＭＬテキストを囲むことなくＷＷＷページ自体に常駐していることもある。
【００２６】
ＷＷＷページは、ＨＴＭＬテキスト、図形、マルチメディア・データ及びＵＲＬの他に、アプレットとして一般に知られるコンピュータ・プログラム・コードを含むこともある。ウェブ・ブラウザが、アプレットが埋め込まれているＷＷＷページを表示させるとき、ＷＷＷページが常駐するサーバから、ウェブ・ブラウザが常駐するローカル・システムにアプレットがダウンロードされる。アプレットは、次に、ウェブ・ブラウザによってその内部で実行される。アプレットは、一般に、米国、カリフォルニアのＳｕｎ  ＭｉｃｒｏＳｙｓｔｅｍｓによって開発されたＪａｖａプログラミング言語などのオブジェクト指向プログラミング言語で記述される（Ｊａｖａは、米国、カリフォルニアのＳｕｎ  ＭｉｃｒｏＳｙｓｔｅｍｓの登録商標である）。
【００２７】
ほとんどのＷＷＷページは、本来のページと同じサーバ上に常駐していない場合もある他のＷＷＷページへの１つまたは複数の参照を含む。そのような参照は、通常、マウスの制御ボタンをクリックして、ユーザが画面上の特定の場所を選択することによって活動化させることができる。これらの参照またはロケーションは、ハイパーリンクとして知られ、通常は、ウェブ・ブラウザによって特定の方式でフラグが立てられる。たとえば、ハイパーリンクに関連付けられたテキストは、異なる色で表示される。ユーザが、ハイパーリンクされたテキストを選択すると、参照したページが取り出され、現在表示しているページに置き換わる。
【００２８】
ｈｔｍｌとＷＷＷについての詳しい情報は、ダグラス・マッカーサー（Ｄｏｕｇｌａｓ  ＭｃＡｒｔｈｕｒ）による「Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  ａｎｄ  ＨＴＭＬ」、ｐ．１８〜２６、Ｄｒ  Ｄｏｂｂｓ  Ｊｏｕｒｎａｌ、１９９４年１２月と、イアン・グラハム（Ｉａｎ  Ｇｒａｈａｍ）とジョン・ウィリー（Ｊｏｈｎ  Ｗｉｌｅｙ）による「Ｔｈｅ  ＨＴＭＬ  ＳｏｕｒｃｅＢｏｏｋ」ニューヨーク、１９９５年に出ている。Ｊａｖａプログラミング言語の詳しい情報は、ローラ・レメイ（Ｌａｕｒａ  Ｌｅｍａｙ）とチャールズ・パーキン（Ｃｈａｒｌｅｓ  Ｐｅｒｋｉｎｓ）による「Ｔｅａｃｈ  Ｙｏｕｒｓｅｌｆ  Ｊａｖａ  ｉｎ  ２１  Ｄａｙｓ」、Ｓａｍｅ  Ｎｅｔ、インディアナポリス、１９９６年に出ている。
【００２９】
図１を参照すると、ＷＷＷ１００を含む通信システムが示されている。ＷＷＷ１００に、クライアント・コンピュータ・システム１１０が結合される。ＷＷＷ１００とクライアント・コンピュータ・システム１１０との結合は、モデム・リンク、ローカル・エリア・ネットワーク（ＬＡＮ）、広域エリア・ネットワーク（ＷＡＮ）やそれらの任意の組み合わせによって実施するとができる。クライアント・コンピュータ・システム１１０は、ウェブ・ブラウザ１０５を含み、さらに、スマート・カード１２０と協同して動作するスマート・カード・リーダを組み込むことができる。また、ＷＷＷ１００には、サーバ・コンピュータ・システム１３０を結合することもできるが、この場合も必ずしも中間ネットワークを介さなくてもよい。サーバ・コンピュータ・システム１３０は、「ファイアウォール」１３７を介してキーサーバ・コンピュータ１３８に結合されたウェブ・サーバ・コンピュータ１３６を含む。ウェブ・サーバ１３６には、クライアント１１０のブラウザ１０５によってアクセス可能なＷＷＷページ１３５が記憶される。簡単に説明すると、ＷＷＷページ１３５は、ユーザと、たとえば銀行、小売店あるいは同様のサービスの受信側との間のメッセージ交換を容易にする。ファイヤウォール１３７は、キーサーバ１３８をＷＷＷ１００からスクリーニングする。また、ＷＷＷ１００には、例としてメインフレーム・コンピュータ１４０として示した、ユーザ１５０からのメッセージのもう１つの可能な宛先が接続される。クライアント１１０は、たとえば、パーソナル・コンピュータの家庭用端末でもよい。スマート・カード１２０は、ユーザが所有している。構成は、ユーザ１５０がディジタル署名を使ってクライアント１１０により生成されたメッセージに署名をすることができるようなものである。たとえば、メッセージは、ＷＷＷページ１３５がユーザの銀行に属しているような場合には、ユーザの口座の借方指示を含む。
【００３０】
これらの実施形態において、サーバ１３０は、分かり易くするために別のコンピュータ・システムであると想定しているが、以下の説明から、サーバ１３０の機能は、メインフレーム・コンピュータ１４０内で実行するプロセスによって同じように実行できることが理解されよう。さらに、本明細書に記載した本発明の実施形態では、サーバ・コンピュータ・システム１３０は、複数のサーバ・コンピュータを含むが、本発明の他の実施形態では、サーバ・コンピュータ・システム１３０は、１台のコンピュータを含むこともあると考えられる。
【００３１】
以下の説明は、背景としての公開／専用キーメッセージ暗号の簡単な説明であり、その中で、表記ＥＫＥＹ（Ａ）は、キーＫＥＹを使って暗号化した量Ａを示すために使用される。
【００３２】
図２は、公開キー暗号を使用したディジタル署名の作成と使用の背景となる原理の簡単な例を示す。このタイプのディジタル署名は、本発明の他の実施形態にも使用できる公開キー暗号を使ってディジタル署名を生成する多数の技術のうちの１つにすぎないことを理解されよう。
【００３３】
図２は、互いに通信し相手の一致を確認することを望む２人のユーザを示す。各ユーザは、１対の公開キーと専用キーＰＫとＳＫをもつ。各ユーザは、相手のユーザと公開キーを共用する。通常、各ユーザは、各専用キーを秘密にするが、公開キーは、通信したい人は誰でも利用することができる。
【００３４】
ユーザＡが、データ通信網を介してユーザＢにメッセージＭＳＧを送りたいと想定する。既知の多くのタイプがある中から１つの強力なハッシュ関数を使ってメッセージのハッシュ値を最初に生成することによって、メッセージからディジタル署名が生成される。ディジタル署名を計算するのに適した強力なハッシュ・アルゴリズムの例は、米国特許Ａ４９０８８６１号に記載されている。含まれる特定のハッシュ関数が、Ｂに既知であると想定する。次に、このハッシュ値は、Ａの秘密キーを使って暗号化され、ディジタル署名ＥＳＫａ（Ｈａｓｈ（ＭＳＧ））が生成される。次に、メッセージは、ディジタル署名と共にユーザＢに送られる。ユ−ザＢは、公開キーＰＫａを使ってディジタル署名を非暗号化し、得た値をメッセージから得たハッシュ値と比較することによって、メッセージの信憑性を確認することができる。本明細書において、本発明の実施形態は、ディジタル署名をＥＳＫａ（Ｈａｓｈ（ＭＳＧ））の形で参照するように記述されているが、本発明は、他の形のディジタル署名を使用するシステムにも使用できることを理解されたい。
【００３５】
公開キーＰＫａの保全性は、実際には、キーを証明する役割の第三者によって証明される。その第三者は、ＰＫａが、実際にＡと関連付けられ他の誰とも関連付けられていない公開キーであることをＢに確信させる働きをする。そのような公開キーの証明と配布は、当技術分野では周知であり、本明細書ではこれ以上詳しく説明しない。これらの証明の考察は、ＣＣＩＴＴ勧告Ｘ．５０９  ディレクトリ・サービス（１９８８）に出ている。
【００３６】
図３を参照すると、本発明の好ましい実施形態において、ユーザに属する専用キーＳＫｕが、キーサーバ１３８の記憶部分または、サーバ１３８がアクセスするデータ記憶手段に記憶される。専用キーＳＫｕは、サーバ・システム１３０からユーザ１５０に、ウェブ・サーバ１３６とＷＷＷ１００を介してアプレットＡｐで送られる。アプレットＡｐは、たとえば、前述のＪａｖａプログラミング言語で記述される。以下の説明から、この構成によって、キーと暗号アルゴリズムが所有ユーザから要求されたときだけクライアント１１０にダウンロードされるため、盗難や誤用の危険が減少することが理解されよう。さらに、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）やＳＨＴＴＰ（Ｓｅｃｕｒｅ  ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのＷＷＷセキュリティが、サーバ１３０に関してのみデータを保護する。本明細書で説明するアプレットによる解決方法が、ビジネス・アプリケーション間で端末間通信を安全に実行できるようにすることは容易に明らかであろう。
【００３７】
動作に際して、許可を要求するユーザが、クライアント１１０上のブラウザ１０５を介してウェブ・サーバ１３６上のＷＷＷページ１３５にアクセスすると、サーバ・システム１３０が、アプレットＡｐをコンパイルする。アプレットＡｐは、キーサーバ１３８上に記憶された要求ユーザの暗号化した専用キーＥＰＰｕ（ＳＫｕ）と、そのすべての関連暗号アルゴリズムを含む。サーバ１３０は、ＷＷＷ１００を介してアプレットＡｐをブラウザ１０５に送る。ブラウザ１０５において、専用キーＳＫｕは、要求ユーザが所有ユーザのパス・フレーズＰＰｕを知っており、そのためクライアント１１０に入ることができる場合だけ、アプレットによって使用される。パス・フレーズＰＰｕを知っていると、専用キーＳＫｕを使ってメッセージに「署名」できるようになり、所有ユーザの識別が確定される。アプレットＡｐまたはブラウザ１０５が終了するとき、アルゴリズムとキーは、クライアント１００のメモリから失われる。
【００３８】
本発明の好ましい実施形態において、トランザクションは、アプレットＡｐが、ユーザ登録、ユーザ・サインイン、ユーザ認証、メッセージ・セキュリティ、ユーザ再登録、及び取消しの段階をサポートすることによって保証される。サーバ１３０の信憑性を確立するために、ＳＳＬなどの従来の暗号技術を利用することもできる。
【００３９】
アプレットＡｐは、さらに、各サーバに属するデータ保全性の公開キー証明ＰＵＢ（ｉ，ｓ）とデータ機密性の公開キーＰＵＢ（ｃ，ｓ）、ランダム・シードＲ（ｓ）、タイム・スタンプＴ（ｓ）及びｎｏｎｃｅ  Ｎ（ｓ）を含む。最後の３つの値は、すべて同じでもよい。ブラウザ１０５において、アプレットＡｐは、ランダムな対称アルゴリズムキーＫＳ（ｍ，ｓ）をシードＲ（ｓ）の関数として非決定論的に生成し、これをＰＵＢ（ｃ，ｓ）を使って暗号化されたサーバ・システム１３０に戻す。次に、アルゴリズムのキーＫＳ（ｍ，ｓ）を利用し、メッセージ認証コード（ＭＡＣ）と暗号の両方を使ってクライアント１１０からサーバ・システム１３０に返送されるメッセージ・データを保護する。
【００４０】
ユーザ登録の段階には、登録申し込み、登録の同意、登録の更新の３つのステージがある。
【００４１】
登録申し込みステージで、ユーザは、登録を申し込む。キーはすべて作成されるが、ユーザ１５０がキーの使用に同意するまで、暗号的に使用不能にされる。アプレットＡｐは、サーバ・システム１３０からの要求に従って、ユーザに、名前、口座番号、アドレスなどの登録データを入力するように要求する。アプレットＡｐはまた、生成したユーザ１５０の専用キーＳＫｕを暗号化するために使用するパス・フレーズＰＰｕを入力するようにユーザに要求する。パス・フレーズＰＰｕは、たとえば、スマート・カード１２０に記憶することができる。また、アプレットＡｐは、新しい１対の専用／公開キーＳＫｕ／ＰＫｕを生成し、サーバ・システム１３０に戻す証明要求メッセージを作成する。証明要求メッセージは、タイム・スタンプＴ（ｓ）とユーザ登録の詳細と共に、公開キーＰＫｕと暗号化した専用キーＥＰＰｕ（ＳＫｕ）を含む。メッセージのＭＡＣは、ＮｏｎｃｅＮ（ｓ）の含意によって計算される。これは、１つの元の要求に対して２つの登録が行われるのを防止する。メッセージは、サーバ・システム１３０への送信前に、暗号化されたメッセージに添付されデータ機密性公開キーＰＵＢ（ｃ，ｓ）を使って暗号化されたアルゴリズムキーＫＳ（ｍ，ｓ）を使って暗号化される。メッセージは、サーバ・システム１３０が受け取って検証する。同意フレーズＣＰｕが、サーバ・システム１３０で生成され、安全な固定物に印刷され、たとえば郵便によりユーザ１５０に発送される。同意フレーズＣＰｕは、暗号キーとしても利用され、ユーザ１５０に属する専用キーＳＫｕをさらに暗号化する。暗号化した専用キーＥＣＰｕ（ＥＰＰｕ（ＳＫｕ）は、サーバ・システム１３０のキーサーバ１３８のメモリに記憶され、あるいは代替実施形態においては、サーバ・システム１３０が安全なアクセス権限をもつ別のデータ記憶機構に記憶される。専用キーＳＫｕは、メモリ内で、同意を待つ要求ユーザの識別に索引付けされる。パス・フレーズＰＰｕと同意フレーズＣＰｕは、キーとして使用しなくてもよい。本発明のいくつかの実施形態では、暗号キーを作成するために、フレーズが、メッセージ・ダイジェストやＳＨＡ−１などのハッシュ・アルゴリズムによって処理されることがある。パス・フレーズＰＰｕとそのハッシュは、サーバ・システム１３０には知られておらず、サーバ・システム１３０が専用キーＳＫｕを使用するのを防ぐ。
【００４２】
登録同意ステージは、不正なアプリケーションが有効にならないようにする。登録を２つのステージに分けることにより、ユーザ１５０の要求された識別の検証が可能になり、（たとえば、同意フレーズの受け取りに対応して）同意書に署名して戻すようユーザ１５０に要求する機会を提供する。また、公開ディレクトリにオフラインで置くため公開キーの証明を作成することができる。ユーザ１５０が、（たとえば、郵便で同意フレーズを受け取って）登録同意ステージを選択すると、アプレットＡｐは、登録データと同意フレーズＣＰｕを両方とも要求する。アプレットＡｐは、入力した登録データと同意フレーズＣＰｕを暗号化し認証する。登録データと同意フレーズＣＰｕが暗号化されて認証されると、アプレットＡｐによってサーバ１３０に送られる。サーバ・システム１３０は、同意フレーズＣＰｕを使って、暗号化された専用キーＥＣＰｕ（ＥＰＰｕ（ＳＫｕ））をロック解除する。専用キーＥＰＰｕ（ＳＫｕ）が正しく非暗号化されたことを確認するために、暗号化した専用キーのレコードのハッシュ値が、サーバ・システム１３０に保持される。保持された暗号化したハッシュ値は、サーバ・システム１３０によって、同意フレーズＣＰｕによって非暗号化された暗号化した専用キーレコードのハッシュと比較される。この比較により、同意フレーズＣＰｕの正しさが検証される。専用キーＳＫｕは、このステージでは、パス・フレーズＰＰｕによってまだ暗号化されており、サインインの準備中にブラウザ１０５内のアプレットＡｐに送られる。
【００４３】
ユーザ・サインインの段階で、ユーザ１５０に、登録サービスまたはトランザクション・サービスを選択するオプションが提示される。登録サービスについては前に説明した。ユーザ１５０は、通常は、登録サービスではなくトランザクション・サービスを要求することを理解されたい。借方指示などのトランザクションを要求したいとき、ユーザ１５０は、まず自分の識別をクライアント１１０に入力する。この識別は、登録に関して前に説明したように、暗号化された形でアプレットＡｐによってサーバ・システム１３０に送られる。サーバ１３０は、この場合も登録ステージに関して前に説明したように（この場合は同意が必要ではないが）、暗号化した専用キーレコードを戻す。このとき、専用キーレコードは、クライアント１１０内のアプレットＡｐによって保持されるが、ユーザ１５０のパス・フレーズＰＰｕでまだ暗号化されている。アプレットＡｐが、ユーザ１５０に、パス・フレーズＰＰｕの入力を要求し、アプレットＡｐは使用準備中に専用キーレコードを非暗号化することができる。
【００４４】
専用キーレコードは、ユーザの登録データと共にそれ自体専用のハッシュ値を含み、ユーザ認証段階でパス・フレーズＰＰｕの検証を可能にする。アプレットＡｐが、専用キーレコードを非暗号化する際、専用キーＳＫｕは、アプレットＡｐによって、記録した登録データと一緒に再ハッシュされる。再ハッシュにより得られたハッシュ値は、アプレットＡｐによって、レコードによるハッシュ値と比較される。レコードによるハッシュ値が一致した場合に、再ハッシュによるハッシュ値が、アプレットＡｐによって正しいと判断された専用キーＳＫｕであり、これによりユーザ１５０が、アプレットＡｐによって本物と判断される。
【００４５】
本発明の好ましい実施形態においては、同意フレーズが暗号化された形で送られる同意プロセスの期間中以外は、ＷＷＷ１００を介してユーザ・パスワードやＰＩＮ番号を転送することなくユーザの認証が行われることを理解されたい。専用キーＳＫｕは、ブラウザ１０５内でアプレットＡｐが使用可能になるが、ユーザのサインインの詳細とパス・フレーズＰＰｕがアプレットＡｐによって正しいと判定される場合だけそうなる。
【００４６】
次に、メッセージのセキュリティに移ると、認証ステージにおいて、アプレットＡｐとサーバ・システム１３０が、対称暗号キーＫＳ（ｍ，ｓ）を共用する。さらに、アプレットＡｐは、サーバ１３０の公開キー証明ＰＵＢ（ｉ，ｓ）を保持し、サーバ・システム１３０は、アプレットＡｐの公開キー証明ＰＵＢ（ｉ，ａ）を保持する。アプレットＡｐはまた、ユーザ１５０の専用キーＳＫｕを保持する。これにより、メッセージを、送信側が署名し、受信側が検証することができ、また対称キーによって暗号化することもできる。
【００４７】
本発明のいくつかの実施形態において、ＷＷＷページ１３５を介して使用可能なサービスを、別のシステムに常駐するホスト・アプリケーションによってサーバ・システム１３０に提供することができる。そのような実施形態において、ホスト・アプリケーションは、メッセージの機密性と保全性のために、それ自体の１対の専用キーと公開キーをもつこともある。そのようなキーの公開キー証明は、サーバ・システム１３０へのアプリケーション・メッセージではなく、ホスト・アプリケーションへのアプリケーション・メッセージを保護するために使用されている。ただし、登録に関係するメッセージは、サーバ・システム１３０のドメインに残る。
【００４８】
本発明のいくつかの実施形態において、ホスト公開キー証明ＰＵＢ（ｃ，ｈ）及びＰＵＢ（ｉ，ｈ）は、サーバ１３０によってアプレットＡｐに提供されることもある。そのような実施形態では、アプレットＡｐは、ホストの公開キー証明ＰＵＢ（ｃ，ｈ）のもとで暗号化された異なる端末間機密性のキーＫＳ（ｍ，ｓ）を生成して、ホスト・アプリケーションに端末間機密性を提供する。これにより、ホスト・アプリケーションの提供者とは違う組織が、サーバ・システム１３０を操作できるようになる。キーとアプレットは、サーバ・システム１３０によってさらに処理されるが、アプリケーションのトランザクションは、ホスト・アプリケーションによって経路指定され、端末間ベースで保証される。
【００４９】
再登録の段階では、新しい暗号化した専用キーレコードを、登録済みのユーザに関して記録された識別に対してサーバ・システム１３０に預けることが可能になる。専用キーレコードは、たとえば、パス・フレーズまたは暗号キーが変化したり、新しい署名の１対の専用キーと公開キーが生成されたりしたために変化した可能性がある。どちらのケースも、パス・フレーズと１対の専用／公開キーの両方が変化したかのように扱われる。アプレットＡｐによってサーバ・システム１３０に送られたメッセージは、暗号化した新しい専用キーレコードと、「新しい」公開キー値と、現行専用キーを使用する署名を含む。サーバ・システム１３０で、公開キーレコード及び専用キーレコードが置き換えられる。要求はすでに有効になった署名キーで署名されているため、合意の処理は不要である。必要に応じて、新しい公開キー証明が要求され発行される。昔の公開キー証明は、保管用にサーバ・システム１３０に保持される。
【００５０】
サーバ１３０が、アルファベットで暗号化された専用キーをもつとき、サーバ・システム１３０はそれを単に消去することでキーを非活動化することができることを理解されたい。この場合、そのキーはもう署名に使用することができない。
【００５１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５２】
（１）一人または複数のユーザ（１５０）に固有の専用キー（ＳＫｕ）と共に公開キー暗号を使ってメッセージを処理する通信システムであって、
ネットワーク（１００）を介したクライアント（１１０）とのデータ通信に適合され、キー暗号化キーで暗号化されたユーザ用の専用キーを安全な形で記憶する第１のデータ記憶手段を含むサーバ手段（１３０）を含み、
サーバ手段が、さらに、クライアント上で実行可能なアプレット・コードを記憶する第２のデータ記憶手段を含み、サーバが、ネットワークを介するクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをクライアントに提供するものであり、
アプレット・コードが、クライアント内で実行されるとき、処理すべきメッセージをユーザから受け取り、サーバ手段からネットワークを介してユーザ用の暗号化した専用キーを取り出し、ユーザからキー暗号化キーを受け取り、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの暗号キー処理を実行するように動作可能な安全処理手段を含み、
アプレット・コードとその関連キーが、アプレット・コードの終了時にクライアントから除去されることを特徴とする通信システム。
（２）安全処理手段が、登録ユーザの最初の登録中にクライアントで実行されるとき、専用キーとその関連公開キーを生成し、登録するユーザからキー暗号化キーを受け取り、登録ユーザから受け取ったキー暗号化キーを使って専用キーを暗号化し、暗号化した専用キーと公開キーをクライアントからサーバ手段１３０に送って、第１のデータ記憶手段に記憶するように動作可能なことを特徴とする上記（１）に記載の通信システム。
（３）サーバ手段が、暗号化した専用キーを記憶するキーサーバと、ネットワークに接続されたウェブ・サーバと、ウェブ・サーバをキーサーバに接続するファイヤウォールとを含み、キーサーバが、専用キーをウェブ・サーバを介してクライアントに提供することを特徴とする上記（１）または（２）に記載の通信システム。
（４）一人または複数のユーザ（１５０）に固有の専用キー（ＳＫｕ）による公開キー暗号を使ってメッセージを処理する方法であって、
ネットワーク（１００）を介するクライアント（１１０）とのデータ通信に適合され、ユーザ用の専用キーを安全な形で記憶するサーバ手段（１３０）にキー暗号化キーで暗号化された専用キーを記憶する段階と、
サーバ手段に、クライアント上で実行可能なアプレット・コードを記憶する段階と、
ネットワークを介するクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをサーバからクライアントに送る段階と、
アプレット・コードを介して、安全処理手段をクライアントに供給する段階と、
クライアントが安全処理手段を介して、ユーザから処理するメッセージを受け取る段階と、
クライアントが安全処理手段を介して、ネットワークを介してサーバ手段からユーザ用の暗号化した専用キーを取り出す段階と、
クライアントが安全処理手段を介して、ユーザからキー暗号化キーを受け取る段階と、
クライアントが安全処理手段を介して、キー暗号化キーを使って専用キーを非暗号化する段階と、
クライアントが安全処理手段を介して、非暗号化した専用キーを使ってメッセージの暗号キー処理を実行する段階と、
アプレットの終了時に、クライアントからアプレット・コードとその関連キー及びアルゴリズムを除去する段階と
を含むことを特徴とする方法。
（５）登録ユーザの最初の登録中に、クライアントにおいて安全処理手段を介して専用キーとその関連公開キーを生成する段階と、
登録ユーザからキー暗号化キーを受け取る段階と、
登録ユーザの最初の登録中に、クライアントにおいて安全処理手段を介して登録ユーザから受け取ったキー暗号化キーを使って専用キーを暗号化する段階と、暗号化した専用キーと公開キーを、第１のデータ記憶手段に記憶するためにクライアントからサーバ手段に送る段階と
を含むことを特徴とする上記（４）に記載の方法。
（６）メッセージを、一人または複数のユーザ（１５０）に固有の専用キー（ＳＫｕ）による公開キー暗号を使って処理する通信システムのサーバ・コンピュータ・システムであって、
ネットワーク（１００）を介してクライアント（１１０）とデータを通信する通信手段と、
キー暗号化キーで暗号化されたユーザ用の専用キーを安全な形で記憶する第１のデータ記憶手段とを含み、
サーバ手段が、さらに、クライアント上で実行可能なアプレット・コードを記憶する第２のデータ記憶手段を含み、サーバが、ネットワークを介したクライアントのサーバへの接続に応答して、ネットワークを介してアプレット・コードをクライアントに提供し、
アプレット・コードが、クライアント内で実行されるとき、ユーザから処理するメッセージを受け取り、ネットワークを介してサーバ手段からユーザ用の暗号化した専用キーを取り出し、ユーザからキー暗号化キーを受け取り、キー暗号化キーを使って専用キーを非暗号化し、非暗号化した専用キーを使ってメッセージの暗号キー処理を実行するように動作可能な安全処理手段を含み、
アプレット・コードの終了時に、アプレット・コードとその関連キーがクライアントから除去されることを特徴とするサーバ・コンピュータ・システム。
（７）暗号化した専用キーを記憶するキーサーバと、ネットワークに接続されたウェブ・サーバと、ウェブ・サーバをキーサーバに接続するファイヤウォールとを含み、キーサーバが、専用キーをウェブ・サーバを介してクライアントに提供することを特徴とする上記（１）に記載のサーバ・コンピュータ・システム。
【図面の簡単な説明】
【図１】通信システムの例のブロック図である。
【図２】ディジタル署名の生成を示す図である。
【図３】図１の通信システムにおけるアプレットの転送を示す図である。
【図４】図１の通信システムにおけるアプレットの生成を示す図である。
【符号の説明】
１００  ＷＷＷ
１０５  ブラウザ
１１０  クライアント・コンピュータ・システム
１２０  スマート・カード
１３０  サーバ・コンピュータ・システム
１３５  ＷＷＷページ
１３６  ウェブ・サーバ
１３７  ファイヤウォール
１３８  キーサーバ・コンピュータ
１４０  メインフレーム・コンピュータ
１５０  ユーザ
【図１】
0003605501.tif 000002
【図２】
0003605501.tif 000003
【図３】
0003605501.tif 000004
【図４】
0003605501.tif 000005