(57)【要約】第1の端末(10)を第2の端末(18)に対して認証する方法および装置が記述される。ある実施態様では、本発明は、第2の端末へストリングを要求し(54)、第2の端末から要求したストリングを得て(56)、得たストリングとパスワードとをマージし第2で端末(18)で予想される識別コードを生成し、情報サーバ(20)からの情報(66)を認証第1の端末(10)へ送信するステップを含む。さらなる実施態様では、ストリング(54)は、擬似乱数列、および、順序付けられた級数の１つの要素である。ストリングをマージするステップ(58)は、第1の端末(10)のアプレット(52)を使用してストリングとパスワードとをマージするステップを含み得る。アプレット(52)は、固有のマージキーを用いて暗号化アルゴリズムを実行する。
2004527938.tif 000002
【特許請求の範囲】
【請求項１】
第1の端末を第2の端末に対して認証する方法であって、
第2の端末へストリングを要求するステップと、
前記要求したストリングを前記第2の端末から得るステップと、
前記得たストリングとパスワードとをマージして識別コードを生成するステップと、
前記識別コードが前記第2の端末で予想される識別コードにマッチする場合は、認証を受け取るステップと、
情報サーバから前記第1の端末へ情報を送信するステップと、
を含む方法。
【請求項２】
請求項１に記載の方法において、
前記ストリングは擬似乱数列である、
ことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、
前記ストリングは、順序付けられた級数の要素である、
ことを特徴とする方法。
【請求項４】
請求項１に記載の方法において、
前記マージして識別コードを生成するステップは、
固有のマージキーを用いた暗号化アルゴリズムを実行する、前記第1の端末にあるアプレットを使用して、前記ストリングと前記パスワードとをマージするステップを含む、
ことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、
前記マージして識別コードを生成するステップは、
前記パスワードと前記ストリングとのブロック加算を実行するステップを含む、
ことを特徴とする方法。
【請求項６】
請求項５に記載の方法において、
前記ブロック加算を実行するステップは、さらに、前記ストリングおよび前記パスワードに対して転置を実行し、この転置されたストリングおよび転置されたパスワードを加算するステップをも含む、
ことを特徴とする方法。
【請求項７】
請求項１に記載の方法において、
前記要求したストリングを得るステップは、
前記ストリングと要求を生成するためのプログラムを含むウェブページを受信するステップを含む、
ことを特徴とする方法。
【請求項８】
請求項１に記載の方法において、
前記ウェブページはＨＴＭＬページであり、前記プログラムはアプレットである、
ことを特徴とする方法。
【請求項９】
請求項１に記載の方法において、
さらに、前記暗号化されたデータを送信した後前記アプレットを終了し、これによって前記ストリングを無効化するステップを含む、
ことを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、
さらに、順序付けられた級数の要素であるストリングを使用してその他の通信セッションを開始するステップをも含み、
前回の通信セッションの前記ストリングは同じ順序付けられた級数の要素に先行する要素である、
ことを特徴とする方法。
【請求項１１】
第1の端末を第2の端末に対して認証する方法であって、
ストリングを生成し、それを、第1の端末の識別情報と関連付けて格納するステップと、
前記ストリングを前記第1の端末に送信するステップと、
前記送信されたストリングと送信者のパスワードとをマージすることによって生成された、前記第1の端末から識別コードを受信するステップと、
前記識別コードと予想される識別コードとを比較するステップと、
前記識別コードが予想される識別コードとマッチする場合は、前記第1の端末を認証するステップと、
を含む方法。
【請求項１２】
請求項１１に記載の方法において、
前記ストリングは擬似乱数列である、
ことを特徴とする方法。
【請求項１３】
請求項１１に記載の方法において、
前記ストリングは、順序付けられた級数の要素である、
ことを特徴とする方法。
【請求項１４】
請求項１１に記載の方法において、
前記のストリングをマージするステップは、
固有のマージキーを用いて暗号化アルゴリズムを実行する、前記送信者におけるアプレットを使用して、前記ストリングと前記パスワードとをマージするステップを含む、
ことを特徴とする方法。
【請求項１５】
請求項１１に記載の方法において、
前記ストリングをマージするステップは、前記パスワードと前記ストリングとのブロック加算を実行するステップを含む、
ことを特徴とする方法。
【請求項１６】
請求項１５に記載の方法において、
前記ブロック加算を実行するステップは、
さらに、前記ストリングと前記パスワードとに転置を実行し、前記転置されたストリングと前記転置されたパスワードとを加算するステップを含む、
ことを特徴とする方法。
【請求項１７】
請求項１１に記載の方法において、
前記要求したストリングを得るステップは、
前記ストリングと要求を生成するためのプログラムを含むウェブページを受信するステップを含む、
ことを特徴とする方法。
【請求項１８】
請求項１７に記載の方法において、
前記ウェブページはＨＴＭＬページであり、前記プログラムはアプレットである、
ことを特徴とする方法。
【請求項１９】
請求項１１に記載の方法において、
さらに、前記暗号化されたデータを送信した後、前記アプレットを終了し、これによって前記ストリングを無効化するステップをも含む
ことを特徴とする方法。
【請求項２０】
請求項１１に記載の方法において、
さらに、順序付けられた級数の要素であるストリングを使用してその他の通信セッションを開始するステップをも含み、
前回の通信セッションの前記ストリングは同じ順序付けられた級数の要素に先行する要素である、
ことを特徴とする方法。
【請求項２１】
認証端末であって、
ストリングをマージし、それを、第２の端末の識別情報と関連付けて格納する、プロセッサに結合されたマージストリングライブラリと、
前記第2の端末へ前記マージストリングを送信する出力装置と、
前記送信されたストリングを第2の端末のパスワードとマージすることによって生成される識別コードを前記第2の端末から受信する入力装置と、
前記識別コードと予想される識別コードとを比較し、前記識別コードが予想される識別コードとマッチする場合は前記第2の端末を認証する、前記プロセッサに結合された識別テストライブラリと、
を含む認証端末。
【請求項２２】
請求項２１に記載の端末において、
前記ストリングは、順序付けられた級数の要素である、
ことを特徴とする端末。
【請求項２３】
請求項２１に記載の端末において、
さらに、前記第2の端末に対して固有なマージキーを用いた暗号化アルゴリズムを使用して、前記マージストリングと前記第2の端末のパスワードとをマージすることによって、前記予想される識別コードを生成する、前記プロセッサに結合された暗号ライブラリを含む、
ことを特徴とする端末。
【請求項２４】
請求項２１に記載の端末において、
前記端末はウェブサーバであり、前記入力装置及び前記出力装置はウェブを越えて通信を行い、
前記端末は、前記マージストリングと前記ユーザパスワードとをマージするためのプログラムを含む前記第2の端末へウェブページを送信する、
ことを特徴とする端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には遠隔地にある装置間の安全な通信に関するものであり、より詳細には、本発明は、パスワードと暗号化キーとを使用して通信の信頼性を保証することに関する。
【背景技術】
【０００２】
関連技術の説明
コンピュータネットワーク上の端末は、通常は、ネットワークにアクセスする全ての者に開かれている電子通信経路を越えて通信を行う。それぞれの通信でやり取りされるパケットでは、各端末は、通常は各パケットのヘッダーを用いて自身で識別を行う。閉じたネットワークでは、ネットワーク上の各端末が信頼され得るのを同様に、これらの識別パケットも信頼し得るものである。オープンなネットワーク、例えばインターネット、および、無線ＬＡＮやＷＡＮなどの安全でないネットワークでは、部外者がユーザや端末の識別情報を想定して承認を受けることなくネットワークへのアクセス権限を得ることも可能である。このことは、ネットワークの実行可能性およびセキュリティ即ち安全性を脅かし得るものである。ｅ-コマースのアプリケーションでは、誰かの識別情報を使用して買物がなされるという結果が起こり得る。
【０００３】
現在は、ユーザを認証する、即ち、ユーザがそうであると主張している者かを判定するために、デジタル署名がインターネットのトランザクション（取引）で使用されている。しかしながら、このようなシステムにおいてさえも、暗号化されたパスワードがアクセスされ得るネットワークを越えて送信されている。このようなネットワークでは、通常は通信経路の安全でない性質のため、暗号化されたパスワードは、サービスプロバイダーやウェブ管理者を含むネットワークにアクセス可能な誰にでも見られ得る。システムのセキュリティを破るためには、パスワードを復号する必要は必ずしも必要ではない。暗号化されたパスワードを送信することで、ネットワークトランザクションへのアクセスを可能にすることができる。デジタル署名アルゴリズムで為されるようなパスワードの暗号化は、セキュリティを保証しない。その理由は、ネットのトランザクションで典型的に使用されるプロトコルは、ユーザ識別情報と暗号化されたパスワードとを一緒にファイルに記録し、このファイルは部外者にアクセス可能となり得るからである。この恐れを無くすためには、このパスワードは、トランザクションが終了する毎に変更されなければならない。しかしながら、このことは、パスワードがリセットされるまでに開始要求が復号されることを必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
幾つかのネットワークシステム、例えばＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）は、識別のためにソケットを使用する。これは、パスワードやユーザ識別情報が格納され得るようなその他のロケーションを提供する。セキュアーソケットレイヤー（ＳＳＬ）やトランスポート層セキュリテイ（ＴＬＳ）プロトコルは、ワールドワイドウェブのe-コマースセキュリティの目的で、ウェブサイトの信頼性を保証するため、注意が必要なデータを伝送を暗号化するため、および交換される情報のデータインテグリティを保証するためなどに広く使用されている。ＳＳＬは識別情報から始まる全てのメッセージを暗号化するが、ＲＳＡ暗号を必要とする（特許になっている公開鍵アルゴリズムであって、開発者のRivest、Shamir、Adlemanの名前が付けられている）。その他のアプローチは、オープンＳＳＨであり、セキュアーシェルスイートは、リモートログインやリモートファイル転送のようなネットワークのための暗号化を提供する。オープンＳＳＨは、全てのトラヒック（パスワードを含む）を暗号化し、盗聴、通信ハイジャック、およびその他のネットワークレベルの攻撃を減少させる。さらに、オープンＳＳＨは、幾つかの安全なトンネル化能力を提供する。これらのプログラムやその他の多数のものは、暗号化アルゴリズムの複雑さを利用してセキュリティ即ち安全を作り出している。ＲＳＡやＤＥＳ暗号化では、暗号化および復号を実施するときに相当なコンピュータリソースを消費する。
【０００５】
従って、現存する認証システムは十分なセキュリティを提供していない。パスワードは、サーバやクライアントの登録簿から、或いは、通信経路から獲得することができる。パスワードが暗号化されていたとしても、それらは未だに使用され得るものである。さらに、暗号化の追加の負荷は、ネットワークの計算リソースに重度の負担を強いるものである。本発明は、柔軟かつスケーラブルな認証亜プローチを提供する。ユーザを、安全、正確、かつ、確実に識別することができる。パスワードは確実に保護されており、オープンなやり取りは行われない。その代わりに固有の一時識別コードが送信される。この一時識別コードは頻繁に変更されるものであり、送信されたメッセージを検証することによっては看破することができないような方法で決定される。さらに、本発明は、順序付けられたランダムなストリング（ordered random strings）即ち文字列を使用する計数メカニズムを含むものである。このことは、システムが容易に使用を追跡することを可能にし、ある一定時間経過した後、或いはある一定回数を使用した後でパスワードを満了させることを可能にする。これらのパスワードは、通信端末上でも確実に保護されている。暗号が使用されるが、暗号化される値は小さく、そのため、利用可能なリソースに過度な負荷をかけることなく、非常に複雑な暗号化さえも実行することができる。
【課題を解決するための手段】
【０００６】
発明の概要
第1の端末を第2の端末に対して認証する方法および装置を説明する。ある実施態様では、本発明は、第2の端末へストリングを要求し、第2の端末から要求したストリングを得て、得たストリングとパスワードとをマージし第2の端末で予想される識別コードを生成し、識別コードが第2の端末で予想された識別コードとマッチする場合は認証を受け、情報サーバからの情報を認証された第1の端末へ送信するステップを含む。さらなる実施態様では、ストリングは、擬似乱数列、および、順序付けられた級数（ordered series）のうちの１つの要素である。ストリングをマージするステップは、第1の端末におけるアプレットを使用してストリングとパスワードとをマージするステップを含み得る。アプレットは、固有のマージキーを用いて暗号化アルゴリズムを実行する。
本発明のその他の特徴は、付属の諸図面や以下の詳細な説明によって明らかとなるであろう。
【発明を解決するための最良の形態】
【０００７】
本発明の詳細な説明
本発明を例示かつ非限定の意図で付属の諸図面を用いて説明するが、同様の符号は同様の構成要素を指すものである。
本発明は、信頼性のある安全な認証を提供する。これは、多数の種々のアプリケーションに効果をもたらす。ある実施態様では、人間が読むことができるパスワードを使用してワールドワイドウェブなどのようなネットワーク上の識別を提供する。このようなアプリケーションでは、認証されていないユーザをウェブサーバなどへのアクセスから除外することができる。これを用いて、例えば、時間制限のライセンス用にサーバアクセスを制限することができる。
【０００８】
その他の実施態様では、ソフトウェアはオンラインでライセンス即ち実施許諾することができる。実施許諾者のためには、本発明は、実施権者以外の者は誰もソフトウェアを使用せず、実施権者は支払った実施権即ちライセンスの数の分だけ使用することを保証する。実施権者のためには、本発明は、実施許諾を受けたソフトウェアへの迅速なアクセスを提供し、ネットワークを越えて便利かつ素早い更新を提供する。本発明を使用して、製品のダウンロードや銀行トランザクションを実行することもできる。
【０００９】
本発明は、ソフトウェアプロバイダー、サービスや製品のサプライヤー、或いは銀行によって実施され得るものであり、さらには、別個の認証プロバイダーによって実施され得る。以下の説明では、識別サーバとアプリケーションサーバとを示す。これらのサーバは、同じ或いは異なる装置とすることができ、これらの所有者や運用者は同じでも異なっても良い。以下に説明するように、識別サーバが認証を提供する場合は、アプリケーションサーバはパスワードや認証を追跡したり監視したりする必要はない。
【００１０】
セキュリティの局面
本発明のセキュリティは、２つの局面で解析され得る。パスワードセキュリティとは、ユーザパスワードやキーが入手され得ることの容易性を指す。セッションセキュリティとは、通信経路が悪用され得ることの容易性を指す。本発明は、両方のセキュリティ要件に対応するために、柔軟な実施を可能にする。パスワードセキュリティは少なくとも３つのレベルが想定されるが、より多い或いはより少ないレベルとすることも可能である。レベルの選択は、セキュリティの程度や所望の費用に依存することとなる。高度のセキュリティとするためには、パスワードセキュリティは、パスワードのためのアルゴリズムの各部をどのように保持するかによって制御される。第1のレベルでは、パスワードを使用するためのアルゴリズムの全てを、アプレットやユーザの機器上その他のプログラムに保持する。このアプレットは、典型的には、ネットからユーザの装置にロードされる。このケースでは、ある1人がネットを越えて送信されたアプレットにアクセスできたときは、パスワードを入手することができ、アプレットのコードを逆アセンブルし、入力として全ての可能性のあるパスワードを試行することができる。
【００１１】
第2のレベルでは、アプレットはネットを越えて送信されない。このケースでは、ある1人は、インターネットやログインを介してユーザ機器にアクセスして、パスワードを得なければならない。この者は、その後、アプレットのジャバコードを逆アセンブルし、入力として全ての可能性のあるパスワードを試行する。第3のレベルでは、アプレットやその他のプログラムは、いかなるその他のプログラムもアクセスできないユーザ独自の空間で稼動する。これは、アプレットにアクセスして異なるパスワードを試行することをより困難にする。これらのレベルは、主としてアルゴリズムの各部の保持され方という点で異なるものである。
【００１２】
セッションセキュリティは、幾つのユーザ識別トランザクションが１つのセッションで必要とされるのかということを制御することによって、変更され得る。第1のレベルでは、各セッションは、単一の識別トランザクションを持つ。このようなケースでは、ある部外者がパスワードおよびアプリケーションのプロトコルを知っている場合は、ユーザのパスワードがそうであるものと想定し、これによって当該セッション中はシステムを欺くことができる。第2のレベルでは、新たな識別トランザクションが、セッション中の重要なトランザクション別に必要とされる。このことは、ある者が得られたパスワードやキーを使用することができる間の使用可能な期間を制限するものである。第3のレベルでは、各トランザクションは、独自の識別トランザクションを持つ。パスワードセキュリティと同様に、より多い或いはより少ないレベルとすることも可能である。レベルの選択は、セキュリティの程度や所望の費用に依存することとなる。
【００１３】
システムアーキテクチャ
図１は、本発明を実施するのに適するハードウェアシステムの一例を示す。図１においては、各端末は、お互いに他の端末とインターネットを越えて結合されている。ある１つのネットワーク端末、即ち、ログインアプレット１２とブラウザ１４とを持つクライアント１０は、インターネット１６などを介して第2の端末である識別サーバ１８、第3の端末であるアプリケーションサーバ２０に接続されている。クライアント端末は、メインフレーム、ミニコン、マイクロコンピュータ、デスクトップやラップトップやパームトップのコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、電子メール機器、無線電話、或いはその他の大小のコンピュータ機器とすることができる。
【００１４】
識別サーバ１８は、インターネット１６を通してアプリケーションサーバ２０に接続されている。上述したように、クライアントは識別サーバを通してアプリケーションサーバに接続させることができ、その結果、識別サーバは識別サーバのクライアントへアプリケーションを提供することができる。或いは、アプリケーションサーバは、識別サーバがクライアントを認証した後にクライアントに直接アプリケーションを提供することもできる。本実施態様では、通信はインターネット１６を介して行われるように示してあるが、本発明は、その他の私用ネットワークや無線通信チャネルを含むその他のデータ経路に適用させることもできる。
【００１５】
アプリケーションサーバ２０は、当該分野では周知のように、ログインモジュール２２とサーバモジュール２４とを含む。典型的には、ログインモジュールは、ログインアプレットを具えたＨＴＭＬウェブページを含む。当該分野で周知のように、アプリケーションサーバは、典型的には大容量記憶装置とキャッシュメモリを含むメモリ（記憶装置）２６も含む。大容量記憶装置は、典型的には、サーバを操作するためのその他の命令と同様にクライアントに提供されるべきアプリケーションやその他のデータを含む。アプリケーションサーバ端末は、ウェブサーバと操作するように設計された、ＣＰＵ（中央演算装置）などの演算ユニット２８を含む。このサーバは、当該分野では周知のように、様々な入力部／出力部、ユーザインターフェイス、および、通信機能（図示しない）を含む。
【００１６】
識別サーバ１８は、識別サーバと同様に、メモリ（記憶装置）３０と演算ユニット３２とを含む。アプリケーションサーバと同様に、この端末は、当該分野では周知のように、様々な入力部／出力部、ユーザインターフェイス、および通信機能（図示しない）を含む。識別サーバは、幾つかのライブラリを含む。暗号ライブラリ３４は、クライアントのアプレットで使用される暗号化アルゴリズムを含み、これを使用して後述する有効性テストライブラリ（識別情報テスト）４０に含まれるような検査プロセスを実行させる。パスワード・識別情報ライブラリ３６は、パスワードと識別コードとを管理する。これはテストおよび満了プロセスで使用される。満了プロセスは、有効性終了ライブラリ４２に収容されている。「するべきことのライブラリ３８」は、テストプロセス４０で使用されるが、ＨＴＭＬページへのコール（CALL）、および、識別アルゴリズムで保護されるその他のプロセスを含む。さらに、マージストリングライブラリ４４があるが、これは、ランダムなマージストリングを生成するプロセスのための演算機能を含む。このライブラリを使用してランダムストリングプロセスを改造し個々のアプリケーションサーバの要件に合ったものとすることができる。当該分野では周知であるが、これらのライブラリの全ては、サーバのＣＰＵを介して相互接続されるものである。様々な種々のアプローチを相互接続に用いることができるが、例えば、ライブラリにスクリプト機能を使用してプロセスをコール即ち呼び出すことができる。代替の実施多様では、これらライブラリを各アプリケーションのための顧客ライブラリで置換することもできる。デフォルトのライブラリと同様に図１の示したライブラリは、共有のライブラリであるが、ライブラリ間の相関性は、ＣＯＲＢＡ（共通オブジェクトリクエストブローカアーキテクチャ）、ＯＬＥ（オブジェクトリンキング・アンド・エンベッディング）、ＲＭＳ（デジタルブランドコンピュータ用の記録管理サービス）、或いは、ＴＣＰ／ＩＰ（トランスミッションコントロールプロトコル／インターネットプロトコル）を介して提供することができる。
【００１７】
情報の流れ
図２は、本発明の一実施態様に基づき、識別サーバ１８、アプリケーションサーバ２０、およびクライアント１０の間の情報の流れを示す図である。本発明は、サーバ対クライアントの関係の文脈で示してあるが、同様に、ネットワーク上のピア・ツー・ピア、メインフレーム端末、接続していないサーバ、その他のタイプやその他の通信アーキテクチャなどの非接続の端末にも適用され得る。さらに、本発明は、サーバから情報を入手するクライアントの文脈で説明されているが、逆にサーバがクライアントから情報を得る場合にも適用させ得るものである。以下の棋説明から理解されるであろうが、本発明は、認証に使用される識別コードを頻繁に変更することから多大な効果を生じさせるものである。
【００１８】
セッションを始めるために、クライアントは要求を識別（認証）サーバに送信する（５０）。これは、典型的には、クライアントへＨＴＭＬ文書を返送することによって回答される（５２）。セッションを開始する前に、クライアントを始動させることができる。このために、特別なプログラムを送信してクライントの機器にロードさせることができ、このプログラムは、パスワードや暗号化キー（鍵）を監視し、本明細書で記述する様々な暗号化処理を実行する。ある実施態様では、このプログラムは、ネットスケープナビゲータ・インターネットブラウザと共に使用されるための、ＪＡＶＡ（登録商標）で書かれたログインアプレットであるが、マイクロソフトインターネットエクスプローラを含むその他のブラウザを代わりに使用することができる。このログインアプレットは、ユーザパスワードと連動してユーザをセッションにログインさせる。この実施態様では、ブラウザを通じてインターネットを越えてサーバとの間で後述する通信が起こる。当該分野で周知であるように、アプレットはサーバからインターネットを介してクライアントへ伝送される。ユーザパスワードは、サーバから、或いはクライアントへインターネットを越えて送信することができるが、ユーザパスワードはより高いセキュリティで取り扱うことができる。上述したようにＳＳＬを含む様々な異なるセキュリティの枠組みをログインアプレットやユーザパスワードのトランザクションに適用させることができる。
【００１９】
より高度なセキュリティのためには、アプレットおよびユーザパスワードは、専用の電話接続、或いはその他の直接的なモデム通信チャネルを越えて別個のパッケージとして運搬させることができる。また、これらは、郵便や、多くの銀行のパスワードで現在行われているようにその他の宅配便（クーリエ）を通じて送ることもできる。ユーザパスワードは、識別サーバの安全な場所に保持され、通常の操作では変更されることは無い。より高いセキュリティのためには、ユーザパスワードは、クライアント側の安全な場所に保持させることができ、各ログインのたびにユーザが必要とすることができる。セッションが終了した後、パスワードは、セッションの終了に合わせてログインアプレットによって消去させることができる。始動プロセス５０、５２は、典型的には、セッションが開始する毎に為される。当該分野で周知のように、クライアントが識別サーバのウェブサーバにアクセスするときは毎回、クライアントは、当該ページのＨＴＭＬに埋め込まれている新たなログインアプレットを受信することができる。他方、ユーザパスワードは、典型的にはもっと長い期間保持されるものである。或いは、アプレットおよびユーザパスワードの通信は、通常のウェブトランザクションを使用して実施されなかった場合は、この始動プロセスは、一回だけしか実施しないこともでき、或いは、識別サーバのウェブサーバへのアクセスに直接関連する、或いは関連しないような間隔で繰り返すこともできる。ウェブトランザクション無しでこのプロセスを開始するために、既にクライアントに存在するログインアプレットは、識別サーバと対話することなくユーザからユーザパスワードを受信することができ、サーバとの最初の通信の内容は、後述するマージストリング要求となる（５４）。
【００２０】
本発明は、クライアントが、識別サーバを通じてアクセスされ得るような何らかのアプリケーションサーバに認証されることを可能にする。特に機密とされる情報の場合は、異なる認証アカウントをそれぞれのアプリケーションサーバのために確立することもできる。しかしながら、識別サーバが多数の異なるアプリケーションサーバに対してクライアントを認証することを可能にすることは、安全確実な通信を容易化することができる。
【００２１】
ユーザがユーザパスワードを入力した後、クライアントのアプレットは、ブラウザを通してサーバにマージストリング（合併文字列）を要求する（５４）。ユーザパスワードは、そのときに識別サーバへ送信することができるが、より高いセキュリティとすることを別とすれば、これをクライントの場所のみに一時的に格納しておく。ＣＧＩ（コモンゲートウェイインターフェイス）スクリプトを使用する場合は、これは、特定の長さの擬似ランダムストリングを生成するＣＧＩスクリプトをコールすることによって為される。擬似ランダムマージストリングの生成についての詳細は後述する。
【００２２】
マージストリングを生成した後、それは、識別サーバからクライアントに送信され（５６）、その後クライアントにおいてクライアント固有のユーザパスワードとマージ（併せる）される。このマージしたストリングおよびユーザパスワードは、クライアントを認証するのに使用される識別コードになる。このマージストリングは、クライアントに暗号化して或いは暗号化せずに送信することができる。セキュリティを向上させる場合は、マージストリングは、固有のユーザパスワードの有効な間は、一回だけ送信することとする。これが頻繁に送信される場合は、マージストリングは、識別ストリングが受信されるまでの識別プロシージャの度重なるコールによって、敵意のある者によって入手されてしまうかもしれない。この識別ストリングを使用してマージストリングを判定することができ、その後ネットワークにログインすることができる。このマージについては後で詳細に述べる。マージは、クライアントに存在するアプレットによって実行される。後で詳細に述べるが、ある1つの実施態様では、マージ機能は、一対一であり、逆に演算することが非常に困難になるように設計されている。
【００２３】
サーバは、そして、クライアントからのマージされたストリングおよびパスワードを識別コードの形式で受信し（５８）、この受信した識別コードを予想したものと比較する。これは、クライアントが適正なパスワードを持つことのみでなく、適正なマージングアルゴリズムを持つことも保証することによって、クライアントを認証する。上述したように識別サーバは、暗号化したユーザパスワードのコピー、送信されたマージストリングのコピー、および、当該ユーザのためのマージアルゴリズムのコピーを持つ。アルゴリズムの記録およびパスワードの暗号化は、オペレーティングシステムおよび識別サーバにおいて使用可能なアプリケーションソフトウェアに依存して、例えば、ウィンドウズ（登録商標）レジストリ、或いは、別個のデータベース、或いは、その他の何らかの安全な場所に保持することができる。最終的に、認証が正しいものとされたときは、要求したデータがクライアントに送信され、正しくない場合は通信が拒絶される。図２に示す実施態様では、データを送信するプロセスは、認証されたユーザをアプリケーションサーバに知らせることによって開始する（６０）。
【００２４】
マージストリングの生成
クライアントがマージストリングを要求するとき（５４）、サーバは擬似ランダムストリングを生成し、それをファイルに書き込む。そのファイルの名前、或いはその他の登録簿の場所は、ユーザ識別番号などのクライアントによって送信された識別ストリングすなわち識別文字列を収容する。ある実施態様では、この擬似ランダムマージストリングは、1セッションあたり１回だけ送信される。上述したように、ユーザパスワードの有効な期間は、典型的にはマージストリングの有効期間よりも非常に長いものである。セキュリティを向上するためには、このランダムストリングには、始動プロセスにおいて送信されたＨＴＭＬページのパラメータとして含ませることもできる（５２）。
【００２５】
このストリングは真にランダムなものとすることができるが、認証システムのセキュリティを破ろうとする部外者にランダムに現れさせるには十分である。
典型的には、マージストリングは、ＪＡＶＡ（登録商標）やＣプログラミング言語の「rand」関数などのような単純な擬似乱数発生機能を使用して生成された擬似乱数とすることができる。ある実施態様では、同じストリングが2回使用されることの可能性を減少させるために、一連のストリングを順序付ける。このようなケースでは、このランダムストリングは、各ユーザ用の線形順序を使用して、各ユーザのために生成され、前回のストリングはサーバ上に格納される。ある実施態様では、この順序付けられたランダムストリングは、最大要素を持つ。本実施例では、線形順序の要素は、ある幾つかの線形順序のアルファベット記号上のストリング（文字列）である。Siの長さ（ストリングの記号の数）がSjの長さよりも短い場合に限り、ストリングSiは幾つかのその他のストリングSjよりも大きいと定義する。換言すれば、Si=a1a2…anでありSj=b1b2…bnであり、ここでnはストリングの長さである。そして、アルファベット記号の線形順序において添え字（index）kがあり、akはbkよりも小さい（記号ではak＜ bk）。具体的な例では、ストリングに使用されるアルファベットは、a,b,…,A..Z,0,…9である。このケースでは、空のストリングが、前記線形順序のうちの最大要素である。或いは、ストリング集合の一部として空の要素を使用することを避けるためには、「a」を最大要素とすることができる。各要素は、第1のものよりも大きいストリングの有限数列である。このアルファベットを使用する第1のストリングが例えば「First」である場合、数列は、「Firss」，「Firsr」，．．「Firsa」，「Firr9」，「Firr8」，．．．「F」，「E」，．．「z」，．．「a」というように続く。或いは、アルファベット全部のみならず整数を使用することもできるが、整数ストリングは、「First」からわかるように非常に遠くにあるものである。1〜1000000の間の乱数が12343である場合には、「First」の後に来る第2の乱数は、「Fiofo」である。第3の乱数は、1000000〜2000000の間になるべきであり、理由は、それが第2のセル(cell)の中にあるべきであり、かつ、それのランダムな部分として23434を持つべきだからである。これに相当する記号列は「Fdgnt」となり以下同様である。
【００２６】
ストリングの要素数は下記のように算出することができる。要素数がストリングs=a1a2…anよりも大きいことは以下の式と同じことである。
|(s)|=f(an)+f(an-1)*z+…+f(a1)*zn-1
ここでzはアルファベット記号の要素の数であり、(s)はsによって導出される数列を意味し、||は濃度の記号であり、関数fは、アルファベット記号と自然数との間の自然同型写像（natural isomorphism）であり、ここでの演算子は「＜」である（この例ではaは0、bは1、…９は62）。「First」の場合は、我々は上記の式で得られる対応する数として475058094を持つこととなる。
【００２７】
より大きな数は分割して数のセル(number cells)にすることができる。例えば、各セルは、1つのセルに1000000の数を持つことができる。ランダムストリングは、1〜1000000の乱数をセルの第1の要素の添え字（index）から引くことによって計算される。ストリングは、その後、この対応する添え字を使用して計算される。このケースでは、４７５の可能性のあるランダムストリングがある。この４７５の可能性のあるストリングを使用してそれらが満了した後は、新たな順序および新たな第1のストリングがこの新たな順序のために決定される。ストリングの級数の最後のものを使用して、ユーザパスワードの満了のトリガーにすることができる。このケースでは、例えばユーザが４６０回目のログインをするとき、ユーザに、現在のユーザパスワードは１５よりも多くのセッションを持った後に満了すること、および新たなユーザパスワードを要求しなければならないことを知らせることもできる。
【００２８】
ランダムなマージストリングとユーザパスワードとのマージング
上述したように、クライアントがマージストリングを受信した後（５６）、識別コードを計算しそれをサーバに返送する（５８）。サーバは、ユーザを認証するために同じマージング処理を実行する。サーバが、クライアントから受信したものと同じ識別コードを得る場合は、クライアントは認証される。当該コードがマッチしない場合は、クライアントはそうであると主張するクライアントではなく、ネットワークおよびアプリケーションサーバへのアクセスは拒否される。マージング関数の特定の例を以下で説明するが、マージング関数（function）の正確性は重要ではない。マージング関数の第1の目的は、クラインアントが安全でないネットワークを越えて秘密のユーザパスワードを見せることなく送信し得るような一時パスワード（即ち識別コード）を開発することである。識別コードは受信したマージストリングに基づき、識別サーバで容易に複製され得るが、ログインアプレットに含まれるマージングアルゴリズムおよびユーザパスワードを知らずには容易に複製され得ないような方法で生成される。後述するマージプロセスは、識別コードがかなり長く、かつ値が均一に分散された乱数として出現するという利点を持つ。これらの特性は、ユーザパスワードとアルゴリズムとを決定するのをより一層困難にするものである。
【００２９】
マージング関数は、本発明に高いセキュリティを提供する。マージング関数とマージストリングを知ることは、ある者が、全ての可能性のあるパスワードのための関数の出力を計算することを可能にすることができる。この出力はサーバに送信された識別コードと比較することができる。マッチするものが見つかった場合、その者はユーザパスワードを得たこととなり、自分が本物の当該クライアントであることを確認することができる。このことが起こるのを回避するためには、ログインアプレットをネットワークを越えて送信せずにクライアントコンピュータ上に導入することもできる。これはマージング関数をその他のいかなるネットワークユーザから隠す。当該関数の秘密性を保持するために、全てのユーザは、ユーザパスワードのために異なる暗号化関数、或いは幾つかの可能性のある、異なる関数のうちの少なくとも１つを入手すべきである。例えば、ユーザパスワードのためにトリプルＤＥＳアルゴリズムを使用することができ、この場合は全てのユーザは独自の暗号化キーを入手する。ユーザキーを読むことができない場合はさらにセキュリティを向上させることができる。例えば、この暗号化関数の各部が、ログインアプレット以外のプログラムがアクセスできないような、クライアント上の空間に保持される場合には、このセキュリティの向上を図ることができる。
【００３０】
さらにセキュリテイを向上するためには、全てのユーザのためにキーの数列を生成するような鍵（キー）生成関数を使用することができる。このようにして、それぞれの鍵は一回だけ使用される。この鍵生成器は、クライアント上の別個の空間に保持すべきである。鍵生成関数は、サーバと同様にクライアントコンピュータに保持すべきである。鍵生成関数との通信は、例えばＴＣＰ／ＩＰなどを使用して行うことができる。アプレットにＪＡＶＡ（登録商標）を使用した場合は、当該分野では周知のように、ポリシーファイルを設定して、鍵を含む重要なファイル、鍵生成器、およびユーザパスワードへのアクセスを制限することができる。
【００３１】
図３にマージング戦略の一例を示す。ブラウザとしてネットスケープナビゲータを使用する場合、これはいかなるセキュリティ機能も提供していないため、ＪＡＶＡ（登録商標）言語のプラグインをアプレットで使用してマージングをサポートすることができる。ＪＡＶＡ（登録商標）セキュリティメッセージダイジェスト関数を使用してランダムなストリングを用いた特定の方法でマージされたユーザパスワードを暗号化することができる。その他のネットワークでは、その他のソフトウェアを使用して、マージング関数を既存のソフトウェアセキュリティ関数に一体化することができる。
【００３２】
図３に示すように、ユーザパスワードは、暗号化形式で格納されている登録簿(register) ８０から取り出される。それは同じ或いはその他の方法で暗号化される（８２）。或いは、既に登録簿８０で暗号が適用済みのものを使用することができる。これらの暗号化関数（encryption functions）はアプレットによって制御され、必要に応じて多かれ少なかれ暗号化を施すことができる。同様に、マージストリングも、暗号化された形式で格納されているその他の登録簿８４から取り出すこともできる。そしてそれを再度暗号化する（８６）。或いは、マージストリングは、短期間の有効性を持つ擬似乱数列であるため、暗号化せずに格納することができ、そして暗号化なしでマージ関数を適用することができる。或いは、ユーザパスワードと同様に、格納されていたときの形式で使用することもできる。これら２つの要素をマージ即ち１つに合併し（８０）、その結果を暗号化する（９０）。この暗号化した結果物を識別コードとして使用することができ、これをその後に続く通信の全てを認証することに使用することができる。このマージ関数は、シンプルブロック加算（simple block addition）とすることができる。このようなシンプルブロック加算を以下のように表すことができる。
新ストリング[i]＝暗号化されたランダムストリング[i]＋パスワードストリング[i]
或いはさらにセキュリティを向上させるために、暗号化されたパスワードと暗号化されたランダムストリングの両者に転置（permutation）を以下のように施すことができる。
新ストリング[i]＝暗号化されたランダムストリング[i+per1(i)]＋パスワードストリング[i+per2(i)]
【００３３】
シンプルブロック加算を施した暗号を使用して、ユーザパスワードおよびランダムマージストリングを同じサイズにさせることができる。或いは、ユーザパスワードおよびマージストリングは、同じサイズになるように選択することもできる。しかしながら、幾つかのアプリケーションでは、このことはユーザパスワードを扱いにくくすることもあり得る。パスワードが数個の長さの文字だけの場合は、結果として生じる識別コードは、ランダムマージストリングのみに依存する部分を持つことができる。優秀な暗号化アルゴリズムは、シンプルブロック加算を不要にすることができる。この転置マージでは、転置、即ち、per1(int i)とper2(int i)は、暗号化アルゴリズムの出力語の有効な文字の添え字（index）の集合で（java暗号メッセージダイジェストの場合は[0,…,31]、ＤＥＳの場合は[0,…,63]である）定義される、一対一関数である。これら転置が全ての暗号化に対して同じままの状態である場合は、これら転置はアルゴリズムを非常に安全にさせることにはならない。これら転置が変わる場合は、これら転置がアルゴリズムの安全性を向上させる。
【００３４】
さらにセキュリティを向上させるために、さらなるステップ９２を追加することができる。マージされたユーザパスワードおよびユーザストリングを識別コードとして使用する代わりに、マージされたユーザパスワードおよびユーザストリングを、擬似乱数生成関数９２の種として使用することができる。その他のプログラミング言語と同様にＣおよびＪａｖａ（登録商標）は、擬似乱数を生成する「rand」と称する関数を持つ。これらの関数は、同一の種を使った場合に常に同じ擬似乱数を生成するのに十分なものである。この第1の数から、この関数は擬似乱数を生成し続け、これら一連の数のうちのそれぞれの数は、同一の種が使用される限り常に同じものとなる。ログインアプレットは、rand関数をヘのコールを含むことができ、この関数は、マージされたパスワードとストリングを使用して擬似乱数を生成する。これらの擬似乱数を識別コードとして使用する。その結果、ユーザパスワードは、さらに効果的に隠すことができ、識別サーバは、同じ種と同じ関数を使用することによって、ログインアプレットが生成した擬似乱数の全てを信頼性高く再作製することができ、これによってクライアントを認証する。
【００３５】
識別コードの有効性のテスト
識別サーバのテスト機能４０は、ユーザに送信されたランダムマージストリングとウィンドウズ（登録商標）ＯＳのレジストリやデータベース内に保持されるユーザパスワードを使用してクライアントのアプレットと全く同じ暗号化を実行する。マージされたパスワードおよびマージストリングが擬似乱数生成関数の種として使用された場合は、このプロセスはサーバでも再現される。クライントのアプレットで実行されたプロセスを再現した後、識別サーバは、その結果とクライアントから受信したものと比較することができる。この識別コード検査が成功した場合は、ユーザは認証されたこととなり、ユーザの諸機能が呼び出される。ユーザパスワードおよびマージストリングは、サーバ上でファイルに保持することができるが、これは、特にユニックスベースのサーバシステムでは安全性が低い。パスワードをファイルに保持する場合は、インターネットサーバの構成の何らかのエラーによって、そのインターネットサーバのユーザがアクセスし得る全てのものがインターネット全体にアクセス可能な状態にされ得る。ある実施態様では、パスワード或いはパスワードファイルは、プレーンテキストではない暗号化されたものとして格納される。
【００３６】
図２では、ユーザの諸機能は、クライアントに関する認証情報をアプリケーションサーバに送ることによって（６０）、「するべきことのライブラリ３８」での決定されたことに応じてコール即ち呼び出される。これは、クライアントとアプリケーションサーバとの間の情報の交換を開始する。図２の実施態様では、アプリケーションサーバは自身でクライアントを認証し、その結果セッションを開始する（６２）。その後、クライアントはその情報要求をアプリケーションサーバに送信し（６４）、アプリケーションサーバは要求されたデータを返すことができる（６６）。この交換は、識別サーバを通じて、或いは、識別サーバとは別個に発生させることができる。データの交換は、当該分野で周知の技法を使用して暗号化することもしないこともできる。
【００３７】
この交換は、マージストリングの満了を引き起こしそして新たなマージストリングを要求するような事象が起こるまで通常は続けられることとなる。この事象は、アプリケーションサーバか、識別サーバにある有効性終了ライブラリかによってコールされる。上述したように、ストリングを変更しなければならない頻度は、アプリケーションのセッションのセキュリティ要件に基づき選択することができる。新たなストリングが必要とされる場合には、識別（認証）サーバは、新たなランダムストリングをクライアントに送信する（６８）。このランダムストリングは、特定のクライアントに対して特定の線形順序の次のものに成るように選択することができる。そして、クライアントは、新たなストリングとユーザパスワードとをマージしたものに基づき新たな識別コードを送信する（７０）。それが前記テストに合格した場合は、識別サーバはアプリケーションサーバに対する認証を再確認（７２）し、データ交換は続けられる。前述したように、アプリケーションサーバは交換を開始し（７４）、これに続いて、クライアントからの情報要求（７６）と応答として送信されるアプリケーションデータ（７８）が行われる。
【００３８】
これらストリングは最大要素を含む線形順序であるため、この最大要素を使用してユーザパスワードに満了日を与えることができる。このケースでは、最大要素に到達した場合は、ユーザパスワードが満了する。新ユーザパスワード始動プロセスが開始し、パスワードおよびストリング級数（string series）をリセットする。このようなケースでは、様々な警告をユーザへ事前に送信しておくことができる。経過時間、頻度、或いは使用したデータ量などのようなその他の事象を、新たなパスワードが必要であることのトリガーとして使用することもできる。線形順序および最大要素は、パスワード満了に対する便利なトリガーである。その理由は、最大要素への到達はクライアントの認証された通信の量に直接的に関連することだからである。
【００３９】
要求されたデータの送信
上述したように、データは、アプリケーションサーバとクライアントとの間でやり取りされる。使用する暗号は、所望のセキュリティに依存する。この暗号は、前記認証のセキュリティのため従来システムのように複雑なものとする必要はない。全てのユーザがパスワードおよびマージストリングの暗号化のための独自の鍵を持つような上述した実施態様である場合は、ユーザパスワードを暗号化するための前記ユーザキーと共に使用される三重ＤＥＳ暗号化は、データを暗号化するのにも使用することができる。これは非常に安全かつ確実な方法である。その理由は、変化した鍵のバージョンが使用された場合に同じテキストの暗号化は常に異なったものに見えるからである。
【００４０】
上述したある実施態様では、クライアントへ送信されるデータは、パラメータとしてマージストリングを持つアプレットを含むＨＴＭＬページであった。このアプレットは、ウェブサーバに対する要求を実行し、マージストリングとユーザパスワードとをマージして識別コードを作り出す。要求は全てこの識別コードを含むことができる。あるセキュリティレベルでは、アプレットの終了はマージストリングおよび対応する識別コードを無効化する。ウェブサーバから読み取ったＨＴＭＬファイルは、取り込まれてその後に使用されることを防止するために一時的なものとすることができる。識別コードが長時間有効である場合は、他のクライアントがそれを使用するかもしれない。しかしながら、識別コードの持続時間が一回のセッションだけのものである場合には、他のクライアントが識別コードをインターセプトし使用するのに十分な時間は存在しない。上述したように、順序付けられた級数のストリングにマージを施すことによって、ユーザパスワードの満了が終わるまでは、識別コードが再使用されないことを保証することができる。
【００４１】
上の説明では、説明を目的として、本発明の完全な理解をもたらすために、多数の具体的な細部を説明した。しかしながら、本発明はこれら具体的な細部の幾つかなしでも実践することができることは、当業者には明らかである。その他の実施例では周知の構造や装置はブロック図の形式で示した。これらの構造や構成の具体的な細部は当業者には理解され得るであろう。
【００４２】
本発明は上述したような様々なステップを含む。これらステップはハードウェアコンポーネントによって実行することもできるし、或いは、機械実行可能な命令に埋め込むこともでき、これらの命令は、汎用或いは特別な目的用のプロセッサやプログラムされたロジック回路と命令で前記ステップを実行させることができる。
【００４３】
本発明は、コンピュータプログラム製品としても提供することができる。これには、コンピュータ（或いはその他の電子機器）をプログラムして本発明による方法を実行することができるような命令をそこに格納した機械可読な媒体も含まれる。機械可読な媒体には、フレキシブルディスク、光学ディスク、ＣＤＲＯＭ、磁気光学ディスク、ＲＯＭ，ＲＡＭ，ＥＰＲＯＭ，ＥＥＰＲＯＭ、磁気或いは光学カード、フラッシュメモリ、その他のタイプの媒体、または、電子的な命令を格納するのに適した機械可読な媒体を含むことができるが、これらに限定されるわけではない。さらに、本発明は、コンピュータプログラム製品としてダウンロードすることもでき、このプログラムは、通信リンク（例えば、モデムやネットワーク接続）を介して搬送波やその他の搬送媒体で実現されるデータ信号の方法で遠隔地のコンピュータから要求したコンピュータに伝送することができる。
【００４４】
本発明の実施態様はインターネットを越えてユーザを認証し安全な通信を行うことに言及しながら説明してきたが、本明細書で述べた方法や装置は、同様に、イントラネット、エクストラネット、ローカルおよびワイドエリアネットワーク、およびピアツーピア通信にも適用可能なものである。
【００４５】
前述した明細書では、本発明は具体的な実施態様を参照しながら説明を行った。しかしながら、本発明の幅広い範囲から離れることなく本発明には様々な修正や変更を施すことができることは明らかである。従って、本明細書および諸図面は、限定の意味ではなく例示である考えるべきであり、本発明は特許請求の範囲のみによって限定されるべきである。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施態様を実施する通信システムの例示のアーキテクチャーを示すブロック図である。
【図２】本発明の一実施態様のハイレベル通信フローの図である。
【図３】本発明の一実施態様による識別コードの生成を説明するブロック図である。
【図１】
2004527938.tif 000003
【図２】
2004527938.tif 000004
【図３】
2004527938.tif 000005
【国際公開パンフレット】
2004527938.tif 000006
2004527938.tif 000007
2004527938.tif 000008
2004527938.tif 000009
2004527938.tif 000010
2004527938.tif 000011
2004527938.tif 000012
2004527938.tif 000013
2004527938.tif 000014
2004527938.tif 000015
2004527938.tif 000016
2004527938.tif 000017
2004527938.tif 000018
2004527938.tif 000019
2004527938.tif 000020
2004527938.tif 000021
2004527938.tif 000022
2004527938.tif 000023
2004527938.tif 000024
2004527938.tif 000025
2004527938.tif 000026
2004527938.tif 000027
2004527938.tif 000028
2004527938.tif 000029
2004527938.tif 000030
【国際調査報告】
2004527938.tif 000031
2004527938.tif 000032