(57)【特許請求の範囲】
【請求項１】
クライアントサーバシステムでユーザを認証するための方法であって、
クライアントが、前記クライアントで記憶されているマスタ認証情報と、第１サーバに関連するデータとに基づいて、前記第１サーバのために前記第１サーバ特有の認証情報を作成するステップと、
前記クライアントが、前記第１サーバによって制御されている限定リソースにアクセスするために前記第１サーバ特有の認証情報を前記第１サーバに供給するステップとを備え、
前記第１サーバ特有の認証情報が前記マスタ認証情報とは異なる、方法。
【請求項２】
さらに、
前記クライアントが、前記認証情報と、第２サーバに関連するデータとに基づいて、前記第２サーバのために前記第２サーバ特有の認証情報を作成するステップと、
前記クライアントが、前記第２サーバによって制御されている限定リソースにアクセスするために、前記第２サーバに前記第２サーバ特有の認証情報を供給するステップとを備え、
前記第２サーバ特有の認証情報が、前記マスタ認証情報とは異なり、
前記第１サーバ特有の認証情報が、前記第２サーバ特有の認証情報と異なる、請求項１に記載の方法。
【請求項３】
さらに、前記第１サーバ特有の認証情報を前記クライアントから要求する前記第１サーバに応えて、ユーザに前記マスタ認証情報を前記クライアントに供給するように要求するステップを備える、請求項１に記載の方法。
【請求項４】
さらに、
前記クライアントが、前記クライアントが現在マスタ認証情報を記憶しているかどうかを判断することによって、前記第１サーバ特有の情報からの要求に応えるステップと、
前記クライアントが、前記クライアントが現在マスタ認証情報を記憶していると判断する場合に、前記クライアントが、前記マスタ認証情報をユーザから要求しないで、前記第１サーバ特有の認証情報を作成するステップを実行するステップと、
前記クライアントが、前記クライアントが現在マスタ認証情報を記憶していないと判断する場合に、前記クライアントが、前記ユーザに前記マスタ認証情報を提供するように要求し、前記マスタ認証情報を前記ユーザから受け取ることに応えて前記マスタ認証情報を記憶するステップとを備える、請求項１に記載の方法。
【請求項５】
さらに、
前記クライアントが、前記第１サーバ特有の認証情報のために前記第１サーバから第１要求を受け取るステップと、
前記クライアントが、前記第１要求に応えて、ユーザに、前記マスタ認証情報を供給するように要求するステップと、
前記クライアントが、前記ユーザから前記マスタ認証情報を受け取ることに応えて、前記認証情報を記憶するステップと、
前記クライアントが、前記第２サーバ特有の認証情報のために前記第２サーバから第２要求を受け取るステップと、
前記クライアントが、再び、前記ユーザに、前記マスタ認証情報を供給するように要求しなくても、前記マスタ認証情報を供給するステップ、前記第２サーバ特有の認証情報を作成するステップ、および前記第２サーバ特有の認証情報を前記第２サーバに供給するステップを実行するステップと、
を備える、請求項２に記載の方法。
【請求項６】
さらに、
前記クライアントが、サーバから第１クライアント側サインオンモジュールを受け取るステップを備え、
前記第１クライアント側サインオンモジュールが、
前記第１サーバのために前記第１サーバ特有の認証情報を作成するステップと、
前記第１サーバに前記第１サーバ特有の認証情報を供給するステップとを実行する、請求項１に記載の方法。
【請求項７】
前記第１クライアント側サインオンモジュールを受け取るステップが、前記第１サーバから前記クライアント要求限定リソースに応えて、前記第１クライアント側サインオンモジュールを前記第１サーバから受け取ることによって実行される、請求項６に記載の方法。
【請求項８】
さらに、
前記クライアントが、前記第１サーバから第１クライアント側サインオンモジュールを受け取るステップと、
前記クライアントが、前記第２サーバから第２クライアント側サインオンモジュールを受け取るステップとを備え、
前記第１サーバから第１クライアント側サインオンモジュールを受け取るステップでは、前記第１クライアント側サインオンモジュールが、
前記第１サーバのために前記第１サーバ特有の認証情報を作成するステップと、
前記第１サーバ特有の認証情報を前記第１サーバに供給するステップとを実行し、
前記第２サーバから第２クライアント側サインオンモジュールを受け取るステップでは、前記第２クライアント側サインオンモジュールが、
前記第２サーバのために前記第２サーバ特有の認証情報を作成するステップと、
前記第２サーバに、前記第２サーバ特有の認証情報を供給するステップとを実行する、請求項２に記載の方法。
【請求項９】
さらに、
前記第１クライアント側サインオンモジュールが、ユーザからマスタ認証情報を要求するステップと、
前記第１クライアント側サインオンモジュールが、前記ユーザから前記マスタ認証情報を受け取ることに応えて、前記クライアント上のメモリに前記マスタ認証情報を記憶するステップとを備える、請求項８に記載の方法。
【請求項１０】
さらに、
前記第２クライアント側サインオンモジュールが、前記クライアント内で前記第１クライアント側サインオンモジュールを検出するステップと、
前記第２クライアント側サインオンモジュールが、前記マスタ認証情報を、前記第１クライアント側サインオンモジュールから要求するステップとを備える、請求項９に記載の方法。
【請求項１１】
前記クライアントがマスタ認証情報を記憶するステップが、ユーザ名、ＩＰアドレス、およびマスタパスワードの１つまたは複数を記憶するステップを含む、請求項１に記載の方法。
【請求項１２】
前記第１サーバ特有の認証情報を作成するステップが、安全な片方向ハッシュ関数に基づき前記第１サーバ特有の認証情報を作成することを含む、請求項１に記載の方法。
【請求項１３】
第１クライアント側サインオンモジュールが、アクティブコンテンツモジュールを受け取ることを含み、そこでは、アクティブコンテンツモジュールが、プラグインモジュール、ＪＡＶＡアプレット、およびＡｃｔｉｖｅＸ構成要素の１つまたは複数を含む、請求項６に記載の方法。
【請求項１４】
前記第１サーバに関連する前記データが、ＵＲＬ、ＩＰアドレス、ソフトウェアベンダー番号および独自のサーバ識別子の内の１つまたは複数を含む、請求項１に記載の方法。
【請求項１５】
前記サーバがウェブサーバであり、
前記ウェブサーバが、ワールドワイドウェブ上で、ウェブサーバによって制御されている限定ウェブページを識別するＵＲＬを伝送するクライアント上のブラウザに応えて、前記第１サーバ特有の認証情報を要求し、
前記第１サーバ特有の認証情報を供給するステップが、ウェブサーバに第１サーバ特有の認証情報を伝送することによって実行される、請求項１に記載の方法。
【請求項１６】
さらに、
第１クライアント側サインオンモジュールが、前記第２クライアント側サインオンモジュールに関連するシグナチャが、前記第２クライアント側サインオンモジュールが信頼されているソースからであることを示すかどうかを判断することによって、前記第２クライアント側サインオンモジュールに応えるステップと、
前記第２クライアント側サインオンモジュールと関連する前記シグナチャが、前記第２クライアント側サインオンモジュールが信頼されているソースからであることを示す場合には、前記第１クライアント側サインオンモジュールが前記第２クライアント側サインオンモジュールに前記マスタ認証情報を供給するステップとを備える、請求項１０に記載の方法。
【請求項１７】
前記第１クライアント側サインオンモジュールが、前記第１クライアント側サインオンモジュールのＣｏｄｅＢａｓｅから前記第１サーバに関連する前記データを抽出した後に、前記第１サイトに関連するデータに基づき、前記第１サーバ特有の認証情報を作成するステップを実行する、請求項６に記載の方法。
【請求項１８】
クライアントサーバシステムでユーザを認証するための方法であって、
サーバが、クライアントから限定リソースに対する要求を受け取るステップと、
前記サーバが、前記クライアントで実行されると、前記サーバに関連するデータと前記クライアントに記憶されているマスタ認証情報とに基づき、サーバ特有の認証情報を作成するクライアント側サインオンモジュールを、前記クライアントに伝送するステップと、
前記サーバが、前記クライアント側サインオンモジュールが前記クライアントで実行するときに前記クライアント側サインオンモジュールから前記サーバ特有の認証情報を受け取るステップとを備える、方法。
【請求項１９】
前記クライアント側サインオンモジュールを伝送するステップは、そのＣｏｄｅＢａｓｅで、前記サーバ特有の認証情報を作成するために、前記マスタ認証情報との組み合わせで使用される前記サーバに関連するデータを符号化したクライアント側モジュールを伝送することを含む、請求項１８に記載の方法。
【請求項２０】
前記サインオンモジュールが、過去に存在したサインオンモジュールが前記クライアントで検出されない場合に前記クライアントのユーザに前記マスタ認証情報を要求し、過去に存在したサインオンモジュールが前記クライアントで検出される場合に前記マスタ認証情報を前記過去に存在したサインオンモジュールに要求するように構成される、請求項１８に記載の方法。
【請求項２１】
クライアントサーバシステムでユーザを認証するために１つまたは複数の命令のシーケンスを搬送するコンピュータ読取り可能媒体であって、
１台または複数台のプロセッサによる１つまたは複数の命令のシーケンスの実行が、１台または複数台のプロセッサに、
クライアントが、前記クライアントに記憶されているマスタ認証情報と第１サーバに関連するデータに基づき、前記第１サーバのために前記第１サーバ特有の認証情報を作成するステップと、
前記クライアントが、前記第１サーバによって制御されている限定リソースにアクセスするために、前記第１サーバに前記第１サーバ特有の認証情報を供給するステップとを実行させ、
前記第１サーバ特有の認証情報が、前記マスタ認証情報とは異なる、コンピュータ読取り可能媒体。
【請求項２２】
さらに、
前記クライアントが、前記マスタ認証情報と前記第２サーバに関連するデータとに基づき、前記第２サーバのために第２サーバ特有の認証情報を作成するステップと、
前記クライアントが、前記第２サーバによって制御されている限定リソースにアクセスするために、前記第２サーバに前記第２サーバ特有の認証情報を供給するステップとを実行するための命令を備え、
前記第２サーバ特有の認証情報が、前記マスタ認証情報と異なり、前記第１サーバ特有の認証情報が、前記第２サーバ特有の認証情報と異なる、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２３】
さらに、前記クライアントから前記第１サーバ特有の認証情報を要求する前記第１サーバに応えて、ユーザに、前記マスタ認証情報を前記クライアントに供給するように要求するステップを実行するための命令を備える、請求項２１に記載のコンピュータ読取り可能媒体
【請求項２４】
さらに、
前記クライアントが、クライアントが現在マスタ認証情報を記憶しているかどうかを判断することによって、前記第１サーバ特有の情報に前記第１サーバからの要求に応えるステップと、
前記クライアントが、前記クライアントが現在マスタ認証情報を記憶していると判断する場合には、前記クライアントが、前記マスタ認証情報をユーザから要求しないで、前記第１サーバ特有の認証情報を作成するステップを実行するステップと、
前記クライアントが、前記クライアントが現在マスタ認証情報を記憶していないと判断する場合に、前記クライアントが、前記ユーザに、前記マスタ認証情報を提供するように要求するステップと、
前記ユーザから前記マスタ認証情報を受け取ることに応えて、前記マスタ認証情報を記憶するステップと、を実行するための命令を備える、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２５】
さらに、
前記クライアントが、前記第１サーバ特有の認証情報に前記第１サーバからの第１要求を受け取るステップと、
前記クライアントが、ユーザに、前記第１要求に応えて、前記マスタ認証情報を供給するように要求するステップと、
前記クライアントが、前記ユーザから前記マスタ認証情報を受け取ることに応えて、前記認証情報を記憶するステップと、
前記クライアントが、前記第２サーバ特有の認証情報に前記第２サーバから第２要求を受け取るステップと、
前記クライアントが、再び前記ユーザに前記マスタ認証情報を供給するように要求しないで、前記第２サーバ特有の認証情報を作成するステップおよび前記第２サーバ特有の認証情報を前記第２サーバに供給するステップを実行するステップと、
を実行するための命令を備える、請求項２２に記載のコンピュータ読取り可能媒体。
【請求項２６】
さらに、
前記クライアントが、第１クライアント側サインオンモジュールをサーバから受け取るステップを実行するための命令を備え、
前記第１クライアント側サインオンモジュールが、
前記第１サーバのために前記第１サーバ特有の認証情報を作成するステップと、
前記第１サーバ特有の認証情報を前記第１サーバに供給するステップと、
を実行する、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２７】
前記第１クライアント側サインオンモジュールを受け取るステップが、前記第１サーバから限定リソースを要求する前記クライアントに応えて前記第１サーバから前記第１クライアント側サインオンモジュールを受け取ることによって実行される、請求項２６に記載のコンピュータ読取り可能媒体。
【請求項２８】
さらに、
前記クライアントが、第１クライアント側サインオンモジュールを前記第１サーバから受け取るステップと、
前記クライアントが、前記第２サーバから第２クライアント側サインオンモジュールを受け取るステップとを実行するための命令を備え、
第１クライアント側サインオンモジュールを前記第１サーバから受け取るステップでは、前記第１クライアント側サインオンモジュールが、
前記第１サーバのために前記第１サーバ特有の認証情報を作成するステップと、
前記第１サーバ特有の認証情報を前記第１サーバに供給するステップとを実行し、
前記第２サーバから第２クライアント側サインオンモジュールを受け取るステップでは、前記第２クライアント側サインオンモジュールが、
前記第２サーバのために前記第２サーバ特有の認証情報を作成するステップと、
前記第２サーバ特有の認証情報を前記第２サーバに供給するステップとを実行する、請求項２２に記載のコンピュータ読取り可能媒体。
【請求項２９】
さらに、
前記第１クライアント側サインオンモジュールが、ユーザからマスタ認証情報を要求するステップと、
前記第１クライアント側サインオンモジュールが、前記ユーザから前記マスタ認証情報を受け取ることに応えて、前記クライアント上のメモリ内に前記マスタ認証情報を記憶するステップと、を実行するための命令を備える、請求項２８に記載のコンピュータ読取り可能媒体。
【請求項３０】
さらに、
前記第２クライアント側サインオンモジュールが、前記クライアント内で前記第１クライアント側サインオンモジュールを検出するステップと、
前記第２クライアント側サインオンモジュールが、前記第１クライアント側サインオンモジュールから前記マスタ認証情報を要求するステップと、を実行するための命令を備える、請求項２９に記載のコンピュータ読取り可能媒体。
【請求項３１】
前記クライアントが、マスタ認証情報を記憶するステップが、前記クライアントがユーザ名、ＩＰアドレス、およびマスタパスワードの１つまたは複数を記憶するステップを含む、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項３２】
前記第１サーバ特有の認証情報を作成するステップが、安全な片方向ハッシュ関数に基づき、前記第１サーバ特有の認証情報を作成することを含む、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項３３】
第１クライアント側サインオンモジュールを受け取るステップが、アクティブコンテンツモジュールを受け取ることを含み、アクティブコンテンツモジュールが、プラグインモジュール、ＪＡＶＡアプレット、およびＡｃｔｉｖｅＸ構成要素の１つまたは複数を含む、請求項２６に記載のコンピュータ読取り可能媒体。
【請求項３４】
前記第１サーバに関連する前記データが、ＵＲＬ、ＩＰアドレス、ソフトウェアベンダー番号、独自のサーバ識別子の１つまたは複数を含む、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項３５】
前記第１サーバがウェブサーバであり、
前記ウェブサーバが、ワールドワイドウェブ上で、ウェブサーバによって制御されている限定ウェブページを識別するＵＲＬを伝送するクライアント上のブラウザに応えて、前記第１サーバ特有の認証情報を要求し、
前記第１サーバ特有の認証情報を供給するステップが、第１サーバ特有の認証情報をウェブサーバに伝送することによって実行される、請求項２１に記載のコンピュータ読取り可能媒体。
【請求項３６】
さらに、
第１クライアント側サインオンモジュールが、前記第２クライアント側サインオンモジュールに関連するシグナチャが、前記第２クライアント側サインオンモジュールが信頼されているソースからであることを示すかどうかを判断することによって、前記第２クライアント側サインオンモジュールに応答するステップと、
前記第２クライアント側サインオンモジュールに関連する前記シグナチャが、前記第２クライアント側サインオンモジュールが信頼されているソースからであることを示す場合には、前記第１クライアント側サインオンモジュールが、前記第２クライアント側サインオンモジュールに前記マスタ認証情報を供給するステップと、を実行するための命令を備える、請求項３０に記載のコンピュータ読取り可能媒体。
【請求項３７】
第１クライアント側サインオンモジュールが、前記第１クライアント側サインオンモジュールのＣｏｄｅＢａｓｅから前記第１サーバに関連する前記データを抽出した後に、前記第１サイトに関連するデータに基づき前記第１サーバ特有の認証情報を作成するステップを実行する、請求項２６に記載のコンピュータ読取り可能媒体。
【請求項３８】
クライアントサーバシステムでユーザを認証するための命令の１つまたは複数のシーケンスを搬送するコンピュータ読取り可能媒体であって、
１台または複数台のプロセッサによる１つまたは複数の命令のシーケンスの実行が、１台または複数台のプロセッサに、
サーバが、前記クライアントで実行時に、前記サーバに関連するデータおよび前記クライアントに記憶されているマスタ認証情報に基づき、サーバ特有の認証情報を作成するクライアント側サインオンモジュールをクライアントに伝送するステップと、
前記サーバが、前記クライアント側サインオンモジュールが前記クライアントで実行するときに前記クライアント側サインオンモジュールから前記サーバ特有の認証情報を受け取るステップとを実行させる、コンピュータ読取り可能媒体。
【請求項３９】
前記クライアント側サインオンモジュールを伝送するステップが、そのＣｏｄｅＢａｓｅで、前記サーバ特有の認証情報を作成するために、前記マスタ認証情報と組み合わせて使用される、前記サーバに関連するデータを符号化したクライアント側モジュールを伝送することを含む、請求項３８に記載のコンピュータ読取り可能媒体。
【請求項４０】
前記サインオンモジュールが、過去に存在していたサインオンモジュールが前記クライアントで検出されない場合に前記マスタ認証情報を前記クライアントのユーザに要求し、過去に存在していたサインオンモジュールが前記クライアントで検出される場合に、前記マスタ認証情報を前記過去に存在したサインオンモジュールに要求するように構成される、請求項３８に記載のコンピュータ読取り可能媒体。
【請求項４１】
クライアントと、
複数のサーバと、
前記クライアントと前記複数のサーバ間の通信を可能にするために、前記クライアントを前記複数のサーバに動作できるように接続するネットワークと、
前記クライアントにサインオンモジュールを送ることによって前記クライアントによって発行されるリソース要求に応答するように構成されている少なくとも第１サーバを含む前記複数のサーバとを備え、
前記サインオンモジュールが、前記クライアント上で実行中に、以下の前記クライアントに記憶されているマスタ認証情報を検索するステップと、
前記マスタ認証情報をサーバ特有のデータと結合するステップと、
前記マスタ認証情報とサーバ特有のデータに基づきサーバ特有の認証情報を作成するステップと、
前記複数のサーバの内のある特定のサーバに前記サーバ特有の認証情報を伝送するステップとを実行するように構成されている、クライアントサーバシステム。
【請求項４２】
前記特定のサーバが前記第１サーバである、請求項４１に記載のクライアントサーバシステム。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、ネットワーク化されたコンピュータシステムに関し、より特定的には、複数の別々に制御されている限定アクセスリソースを含むネットワークシステムにおけるユーザ認証に関する。
【０００２】
ワールドワイドウェブ（ＷＷＷ）は、インターネット上に、そのそれぞれが１つまたは複数のＨＴＭＬ（ハイパーテキストマーク付け言語）ページと関連しているサーバのネットワークを含む。サーバに関連するＨＴＭＬページは、情報と、そのサーバおよび（通常）それ以外のサーバ上のほかの文書に対するハイパーテキストリンクとを提供する。サーバは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用することによって、クライアントと通信する。サーバは、クライアントからのそのＨＴＭＬページに対する要求がないか聞くため、多くの場合「リスナー」と呼ばれる。
【０００３】
ワールドワイドウェブのユーザは、ブラウザと呼ばれているクライアントプログラムを使用し、リスナーからの情報を要求、復号、および表示する。ブラウザのユーザがＨＴＭＬページでリンクを選択すると、そのページを表示しているブラウザがインターネット上で、リンク内で指定されているUniversal Resource Locator（ＵＲＬ）と関連しているリスナーに要求を送る。要求に応えて、リスナーは要求されたデータを要求を発行したブラウザに伝送する。ブラウザは情報を受信し、受信された情報をユーザに提示し、次のユーザ要求を待機する。
【０００４】
インターネット上のサーバは、多数の識別不能のクライアントによってアクセスできるため、限定情報に対する無許可アクセスから保護するために複数の保護機構が開発されてきた。限定情報への無許可アクセスを妨げるために使用されている１つのアプローチは、クライアントに、彼らが特定のサーバで情報へのアクセスができるようになる前に一定の認証情報の提供を要求することである。この認証情報は、典型的には、ｕｓｅｒｉｄ（ユーザＩＤ）／パスワードの組み合わせ、特定のＩＰアドレス、特定のドメイン名または情報にアクセスしようとする特定のユーザおよび／または機械を識別できるその他の情報などのアイテムから成り立っている。
【０００５】
ユーザを認証するために使用されてよい多様な種類の認証情報の内、ｕｓｅｒｉｄ／パスワードの組み合わせは、特定の機械やサービスプロバイダに結び付けられていないため、多くの場合好まれる。したがって、ユーザがそのｕｓｅｒｉｄとパスワードを覚えている限り、彼らはインターネットに接続されている任意の機械から限定サイトへのアクセスを獲得することができる。認証情報がｕｓｅｒｉｄ／パスワードの組み合わせから成り立っている場合、ユーザは、ウェブサーバがユーザに限定情報を提供する前に、そのｕｓｅｒｉｄ／パスワードの組み合わせを何らかの方法でウェブサーバに提供する。
【０００６】
一旦、ユーザが認証情報をサーバに提出すると、サーバは、そのユーザが実際に限定情報にアクセスすることを許可されているかどうかを判断する。サーバが、そのユーザが限定情報にアクセスすることを許可されていると判断する場合には、限定情報がユーザに送られる。それ以外の場合には、ユーザは限定情報へのアクセスを許されない。
【０００７】
任意の指定されているユーザの場合、多数のオンラインサービスプロバイダの限定リソースにアクセスするためには、頻繁に認証情報が必要とされる。それぞれの別々に制御されているウェブサーバは、その製品またはサービスへのアクセスを許す前に、ユーザに、認証情報（例えば、ｕｓｅｒｉｄ／パスワードの組み合わせ）を提供するように要求する。したがって、ユーザが、例えば新規プロバイダと金融サービスプロバイダなどの２つの別々に制御されているオンラインサーバに加入している場合、各プロバイダが、そのサービスへのユーザアクセスを許す前に、ｕｓｅｒｉｄ／パスワードの組み合わせを要求するだろう。
【０００８】
これは、ユーザが別々に制御されている限定リソースごとにパスワードを思い出さなければならないため、ユーザにとっての問題を生じさせる。すなわち、任意の指定ユーザが多数のこのようなサービスに加入すると、ユーザは多数のパスワードを覚えなければならない。その結果、ユーザは多数の別個のパスワードを自らの記憶に保持する必要を回避するために多様な技法を採用してきた。
【０００９】
複数のパスワードの記憶を回避する１つのアプローチとは、ユーザが、その認証情報の文書によるコピーを自分のコンピュータの上または近くに保持しておくことである。このようにして、そのｕｓｅｒｉｄ／パスワードの組み合わせを要求されると、彼らはそれを記憶から思い起こす代わりに、それを読むだけでよい。しかしながら、第三者が、文書によるメモから認証情報を容易に取得し、それによって一覧表示されているサービスプロバイダのすべてへの無許可アクセスを得る可能性があるため、このアプローチは機密保護を危険にさらす。
【００１０】
複数のパスワード記憶を回避する別のアプローチにおいては、ユーザはそのサービスプロバイダのすべてに同じパスワードを使用する。あるサービスプロバイダの従業員が別のサービスプロバイダによって制御されている限定リソースへの無許可アクセスのためにユーザのパスワードを使用しようと試みる可能性があるため、再び、このアプローチは機密保護を危険にさらす。例えば、ユーザが、スポーツニュースを読むためにあるサイトにアクセスするために、そしてユーザの銀行口座を管理するために別々に制御されているサイトにアクセスするためにもパスワード「ｍｙｐａｓｓ」を使用する可能性がある。スポーツニュースサイトのプロバイダの従業員は、スポーツニュースサイト用のユーザのパスワードを知り、同じパスワードを使用してユーザの銀行口座へアクセスを試みる可能性がある。ユーザは両方のサービスに同じパスワードを使用するため、スポーツニュースの従業員はユーザの銀行口座の中に押し入ることができる。
【００１１】
上記に基づき、ユーザが、機密保護を危険にさらさずに複数のパスワードを記憶する必要を回避できる方法を提供することが望ましい。
【００１２】
（発明の要約）
クライアントサーバシステムを、ユーザがサーバごとに異なるパスワードを使用して多数のサーバにサインオンできるが、単一のマスタパスワードだけを覚えさえすれば良いように、クライアントサーバシステムでユーザを認証するための方法およびシステムが提供される。
【００１３】
本発明の１つの態様に従って、クライアントは、クライアントに記憶されているマスタ認証情報と、第１サーバに関連しているデータとに基づき、第１サーバのためにサイト特有の認証情報の第１セットを作成する。それから、クライアントは、第１サーバによって制御されている限定リソースにアクセスするために、第１サーバに対し第１サイト特有の認証情報を供給する。クライアントは、同じマスタ認証情報に基づき、第２サーバのために第２サイト特有の認証情報の第２セットを作成する。しかしながら、第２サーバのためのサイト特有の認証情報を作成するために、マスタリソース情報は、第２サーバと関連するデータと結合される。クライアントは、第２サーバによって制御されている限定リソースにアクセスするために、第２サイト特有の認証情報を第２サーバに供給する。
【００１４】
第１サイト特有の認証情報と第２サイト特有の認証情報の両方とも、マスタ認証情報とは異なり、第１サイト特有の認証情報は第２サイト特有の認証情報とは異なる。したがって、多様なサーバの管理者は、彼らが、他のサーバでユーザのアカウントにアクセスできるようにする情報を持たない。
【００１５】
本発明は、類似の参照番号が類似の要素を指す添付図面の図の中で、制限によってではなく、例によって示されている。
【００１６】
（好ましい実施の形態の説明）
複数の別々に制御されている限定アクセスリソースを含むネットワークシステムに対する単一サインオン用の方法および機器が説明される。以下の説明の中では、説明の目的のために、多数の特殊な詳細が、本発明の徹底的な理解を提供するために述べられている。しかしながら、当業者にとっては、本発明が、これらの特定の詳細なしに実践されてよいことが明らかだろう。その他の例では、周知の構造およびデバイスが、本発明を不必要に分かりにくくするのを避けるためにブロック図形式で示されている。
【００１７】
ハードウェア概要
図１は、その上で本発明が実現されてよい、コンピュータシステム１００を示すブロック図である。コンピュータシステム１００は、情報を通信するためのバス１０２またはそれ以外の通信機構、および情報を処理するためにバス１０２と結合されているプロセッサ１０４を含む。コンピュータシステム１００は、情報とプロセッサ１０４によって実行される命令を記憶するためにバス１０２に結合されている、ランダムアクセスメモリ（ＲＡＭ）またはその他の動的（ｄｙｎａｍｉｃ）記憶装置などのメインメモリ１０６を含む。メインメモリ１０６は、プロセッサ１０４によって実行される命令の実行中、一時的な変数またはその他の中間情報を記憶するためにも使用されてよい。コンピュータシステム１００は、さらに、読取り専用メモリ（ＲＯＭ）１０８またはプロセッサ１０４用の情報と命令を記憶するためにバス１０２に結合されているその他の静的（ｓｔａｔｉｃ）記憶装置を含む。磁気ディスクまたは光ディスクなどの記憶装置１１０が提供され、情報と命令を記憶するためにバス１０２に結合される。
【００１８】
コンピュータシステム１００は、情報をコンピュータユーザに表示するために、陰極線管表示装置（ＣＲＴ）などのディスプレイ１１２にバス１０２を介して結合されてよい。英数字キーとその他のキーを含む入力装置１１４は、情報とコマンドの選択をプロセッサ１０４に通信するためにバス１０２に結合される。別の種類のユーザ入力装置は、方向情報およびコマンド選択をプロセッサ１０４に通信するため、およびディスプレイ１１２の上でカーソル移動を制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソルコントロール１１６である。この入力装置は、典型的には、装置が平面内で位置を指定できるようにする、第１軸（例えば、ｘ）および第２軸（例えば、ｙ）という２つの軸の中に２つの自由度を有する。
【００１９】
本発明は、これ以降説明される技法を使用して限定サービスにサインオンするためのコンピュータシステム１００の使用に関する。発明の１つの実施態様に従って、単一サインオン機構が、メインメモリ１０６の中に記憶されている１つまたは複数の命令の１つまたは複数のシーケンスを実行するプロセッサ１０４に答えて提供される。このような命令は、記憶装置１１０などの別のコンピュータ読取り可能媒体からメインメモリ１０６の中に読み込まれてよい。メインメモリ１０６に記憶されている命令のシーケンスの実行は、プロセッサ１０４に、ここに説明されているプロセスステップを実行させる。代替実施態様においては、結線による回路が、本発明を実現するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用されてよい。したがって、本発明の実施態様は、ハードウェア回路とソフトウェアの特定の組み合わせに制限されない。
【００２０】
ここに使用されている「コンピュータ読取り可能媒体」という用語は、実行のために、プロセッサ１０４に命令を提供することに関与する媒体を指す。このような媒体は、不揮発性媒体および揮発性媒体を含むが、それらに制限されない多くの形を取ってよい。不揮発性媒体は、例えば、記憶装置１１０などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ１０６などの動的メモリを含む。
【００２１】
一般的な形式のコンピュータ読取り可能媒体は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、それ以外の磁気媒体、ＣＤ−ＲＯＭ、任意のそれ以外の光媒体、パンチカード、紙テープ、または任意のそれ以外の穴のパターン付きの物理的な媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、それ以外の任意のメモリチップ、またはカートリッジ、あるいはコンピュータがその中から読み取ることができる任意のそれ以外の媒体を含む。
【００２２】
多様な形式のコンピュータ読取り媒体は、実行のためにプロセッサ１０４に１つまたは複数の命令の１つまたは複数のシーケンスを搬送することに関わってよい。例えば、命令は、最初に、遠隔コンピュータの磁気ディスク上で実行されてよい。遠隔コンピュータは、命令をその動的メモリにロードし、モデムを使用して電話回線上で命令を送ることができる。コンピュータシステム１００にローカルなモデムは、電話回線上でデータを受信し、そのデータを赤外線信号に変換するために赤外線送信機を使用できる。赤外線検出器は、赤外線信号で搬送されるデータを受信し、適切な回路がデータをバス１０２の上に載せることができる。バス１０２は、データをメインメモリ１０６に搬送し、そこからプロセッサ１０４が命令を検索し、実行する。メインメモリ１０６によって受け取られる命令は、任意に、プロセッサ１０４による命令の前または後のどちらかに記憶装置１１０の上で記憶されてもよい。
【００２３】
コンピュータシステム１００は、バス１０２に結合されている通信インタフェース１１８も含む。通信インタフェース１１８は、ローカルネットワーク１２２に接続されているネットワークリンク１２０に結合する双方向データ通信を提供する。例えば、通信インタフェース１１８は、データ通信コネクションを対応する型の電話回線に提供するためにデジタル総合サービス網（ＩＳＤＮ）カードまたはモデムであってもよい。別の例として、通信インタフェース１１８は、互換性のあるＬＡＮにデータ通信コネクションを提供するためのローカルエリアネットワーク(ＬＡＮ)カードであってもよい。無線リンクも、実現されてもよい。このようなインプリメンテーションにおいて、通信インタフェース１１８は、多様な種類の情報を表しているデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受する。
【００２４】
ネットワークリンク１２０は、典型的には、１つまたは複数のネットワークを通してそれ以外のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク１２０は、ローカルネットワーク１２２を通して、インターネットサービスプロバイダ（ＩＳＰ）１２６によって運用されているホストコンピュータ１２４またはデータ装置へコネクションを提供してもよい。ＩＳＰ１２６は、代わりに、現在では一般的に「インターネット」１２８と呼ばれているワールドワイドパケットデータ通信網を通してデータ通信サービスを提供する。ローカルネットワーク１２２およびインターネット１２８の両方とも、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を使用する。コンピュータシステム１００に、および、コンピュータシステム１００から、デジタルデータを搬送する、多様なネットワークを通る信号と、ネットワークリンク１２０上の信号および通信インタフェース１１８を通る信号とは、情報をトランスポートする搬送波の例示的な形式である。
【００２５】
コンピュータシステム１００は、メッセージを送り、プログラムコードを含むデータを、ネットワーク（複数の場合がある）、ネットワークリンク１２０および通信インタフェース１１８を通して受け取る。インターネットの例では、サーバ１３０が、インターネット１２８、ＩＳＰ１２６、ローカルネットワーク１２２、および通信インタフェース１１８を通してアプリケーションプログラムに対し要求されたコードを伝送する可能性がある。本発明に従って、１つのこのようなダウンロード済みのアプリケーションが、ここに説明されているような単一サインオン機構に対処する。
【００２６】
受け取られたコードは、それが受信され、および／または実行のために記憶装置１１０、またはそれ以外の不揮発性記憶装置の中に記憶されるときにプロセッサ１０４によって実行されてよい。このようにして、コンピュータシステム１００は、搬送波の形を取るアプリケーションコードを取得してよい。
【００２７】
機能概要
ユーザが、さまざまなサイトへの異なるパスワードを提供できるが、単一の「マスタ」パスワードを覚えさえすれば良い単一サインオン機構が提供される。一般的には、ユーザは、マスタパスワードを、パスワードを限定サイトに提供することを担当するクライアント側モジュールに入力する。限定サイトがパスワードを要求すると、クライアント側モジュールは、（１）マスタパスワードと、（２）サイト特有の情報から引き出されるサイト特有のパスワードとを作成する。１つの実施態様に従って、サイト特有のパスワードを引き出すために使用される技法は、「マスタパスワード」をサイト特有のパスワードに基づいて判断できないようにするものである。
【００２８】
サイト特有のパスワードを引き出した後、クライアント側モジュールは、限定サイトでユーザを認証するために、サイト特有のパスワードを限定サイトに提供する。このプロセスは任意の数または限定サイトで繰り返されてもよく、その場合、各サイトには、異なるサイト特有のパスワードが与えられる。さまざまなサイトに供給されるサイト特有のパスワードは、それらが、部分的には異なるサイト特有の情報から引き出されるために異なる。異なるサイト特殊パスワードが異なる限定サイトに与えられるため、任意の指定限定サイトの管理者は、ユーザの他の限定サイトでのパスワードを知らないだろうし、推論することはできないだろう。
【００２９】
１つの実施態様に従って、ユーザは単一パスワードを覚えさえすればいいだけではなく、ユーザはセッションごとに一度マスタパスワードだけを提供する必要がある。マスタパスワードを提供した後、認証プロセスが、ユーザにトランスペアレントな方法でクライアント側モジュールによって各限定サイトで実行される。
【００３０】
本発明の１つの態様に従って、クライアント側モジュールは、それ自体、サーバからクライアントに送られてもよい。このようにして伝送されたクライアント側モジュールは、クライアントでの類似したクライアント側モジュールの存在を検出する場合に、新規に到着したクライアント側モジュールは、第１到着クライアント側モジュールに、第１到着クライアントモジュールでユーザによってすでに入力されているマスタパスワードに基づいて、サイト特有のパスワードをサーバに送らせる。他方、クライアント側モジュールが同様のクライアント側モジュールの存在を検出しない場合には、クライアント側モジュールはユーザからマスタパスワードを要求し、マスタパスワードとサイト特有の情報に基づいてサーバにサイト特有のパスワードを送る。
【００３１】
例示的なサインオンプロセス
図２は、本発明の実施態様に従って限定サイトにサインオンするためのステップを示すフローチャートである。説明のために、サインオン技法は、ワールドワイドウェブのコンテキストでここに説明されるだろう。このコンテキストでは、クライアント上で実行しているブラウザが、ユーザからの入力に応えてウェブサーバから情報を要求する。要求は、典型的には、ユーザがアクセスを希望するリソースを識別するUniversal Resource Locator（ＵＲＬ）を含む。
【００３２】
しかしながら、本発明が任意の特定の環境に限定されていないことが注記されなければならない。むしろ、それは、ユーザが複数の機構、モジュール、サーバまたはシステムによって認証されなければならない任意の環境で利用されてよい。本発明は、特に、ユーザがそれをもって認証されなければならない機構、モジュール、サーバ、またはシステムが同じソースによって制御されないときに、特に貴重である。
【００３３】
図２を参照すると、ステップ２００で、ユーザは、限定ウェブサイトにアクセスするために要求を送る。このステップは、例えば、限定サイトの「ログオン」ページのクライアント（つまり、ブラウザ）への送達を要求するユーザによって達成されてよい。ユーザは、過去に検索されたウェブページに常駐するハイパーリンクを選択し、限定ウェブサイトのＵＲＬをブラウザ上のテキストボックスの中に入力するか、あるいは多様なそれ以外のサイト選択機構の任意の１つを使用することによってこのような要求を発行する。
【００３４】
ステップ２０２では、限定ウェブサイトを制御するウェブサーバが、ウェブサイトに対するアクセスを要求したブラウザにサインオンモジュールを送る。本発明の１つの実施態様に従って、サインオンモジュールは、ＪＡＶＡアプレット、ＡｃｔｉｖｅＸコントロール、またはブラウザ「プラグイン」などのアクティブコンテンツ構成要素である。説明の目的のため、サインオンモジュールがログオンページに埋め込まれ、ＪＡＶＡバイトコードの形でブラウザに伝送されるＪＡＶＡアプレットであると仮定されるものとする。ブラウザ内のＪＡＶＡ仮想機械が、ＪＡＶＡバイトコードを、それを受信すると実行する。残りのステップ２０４、２０６，２０８，２１０，２１２および２１４は、それがクライアント上のＪＡＶＡ仮想機械内で実行するときに、サインオンアプレットによって実行される。
【００３５】
ステップ２０４では、サインオンアプレットが、クライアント上ですでに実行しているサインオンアプレットの別のインスタンスがあるかどうかを判断する。サインオンアプレットの別のインスタンスがクライアント上ですでに実行していない場合、制御は、サインオンアプレットがユーザからマスタパスワードを要求するステップ２０８に移る。他方、サインオンアプレットの別のインスタンスがクライアント上ですでに実行している場合には、ユーザは過去に存在していたサインオンアプレットの中にすでにマスタパスワードを入力済みであり、制御はステップ２０６に移る。ステップ２０６では、新規に到着したサインオンアプレットが過去に存在していたサインオンアプレットからマスタパスワードを取得する。
【００３６】
ステップ２１０では、サインオンアプレットがサイト特有のデータを取得する。サイト特有のデータは、ユーザがアクセスを求めているサイトを特に識別する任意のデータであってよい。例えば、サイト特有のデータは、ユーザがアクセスを試みているウェブサイトのＵＲＬであってよい。代わりに、サイト特有のデータは、ユーザがアクセスを試みているサイトのＩＰアドレス、またはサイトのＵＲＬアドレスとＩＰアドレスの組み合わせであってもよい。多様なそれ以外の形式のサイト特有のデータが使用されてもよい。その結果、本発明は、任意のタイプのサイト特有のデータに制限されない。
【００３７】
１つの実施態様に従って、サイト特有のデータが、アプレットのＣｏｄｅＢａｓｅで符号化される。このような実施態様においては、サイト特有のデータは、アプレットのＣｏｄｅＢａｓｅを抽出することによって、ステップ２１０で得られてよい。
【００３８】
ステップ２１２では、アプレットが、マスタパスワードおよびサイト特有のデータに基づき、サイト特有のパスワードを引き出す。このステップは、以下の公式によって表されてよく、
ＳＰ＝Ｈ［ＰＷ＋ＣＢ］
ここでは、ＳＰはサイト特有のパスワードであり、ＰＷはマスタパスワードであり、ＣＢはアプレットのＣｏｄｅＢａｓｅであり、Ｈ［］は、安全な片方向ハッシュ関数であり、「＋」はＰＷとＣＢを結合する演算を表す。
【００３９】
１つの実施態様に従って、ＰＷとＣＢをハッシュ関数Ｈ［］を適用する前に結合するために使用される結合演算は、単純なバイナリ連結演算であり、ハッシュ関数Ｈ［］は、国立規格技術研究所（Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ）によって発行されている連邦情報処理規格公報第１８０−１号に記載されている安全ハッシュ関数ＳＨＡ−１である。しかしながら、多様なハッシュ関数および結合演算が、アプレットによって代わりに使用されてよく、本発明は、任意の特定の種類のハッシュ関数または結合演算に制限されない。例えば、Ｈ［］は、代わりに、Ｂ．Ｓｃｈｎｅｉｅｒの「応用暗号法（Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ）」（ニューヨーク（Ｎｅｗ  Ｙｏｒｋ）：ジョンウィリーアンドサンズ（ＪｏｈｎＷｉｌｅｙ＆Ｓｏｎｓ，Ｉｎｃ．）第２版１９９６年）の４２９ページから４３１ページと４３６ページから４４１ページに詳説されているＭＤ５ハッシュ関数であってよい。
【００４０】
ステップ２１４では、ステップ２１２で作成されたサイト特有のパスワードが、限定アクセスウェブサイトを制御するウェブサイトに伝送される。パスワードを提出するプロセスは、例えば、（１）サイト特有のパスワードを符号化する新規ＵＲＬを構築し、（２）ブラウザに新規ＵＲＬまでナビゲーションさせるアプレットによって達成されてよい。限定アクセスウェブサイトを制御するウェブサーバは、それからサイト特有のパスワードをそのユーザベースと比較し、ユーザが限定サイトへのアクセスを許されているかどうかを判断する。ユーザが限定アクセスウェブサイトにアクセスする許可を得ていると仮定すると、ウェブサーバは、限定リソースを供給することによって応答するだろう。例えば、限定リソースがウェブページである場合、ウェブサーバは限定ウェブページをブラウザに送ることによって応答するだろう。
【００４１】
図２に示されているステップは、ユーザが限定ウェブサイトへのアクセスを試みるたびに繰り返される。セッション中に第１限定ウェブサイトにアクセスした後、アプレットのコピーがクライアントに存在するだろう。その結果、ユーザがマスタパスワードを入力するようにプロンプトを出されるステップ２０６は、ユーザがそれ以降の限定ウェブサイトにアクセスを試みると繰り返されないだろう。このようにしてそれらのそれ以降のサーバのために実行されるサインオンプロセスは、ユーザにトランスペアレントになるだろう。
【００４２】
サインオンモジュール
図２に関して前述された実施態様においては、サインオンモジュールは、ユーザが限定サイトにログオンしようと試みるたびにブラウザに送られるＪＡＶＡアプレットである。本発明の１つの実施態様に従って、サインオンモジュールは、「常駐」構成要素と「一時」構成要素という２つの構成要素を有する。サインオンモジュールの常駐構成要素は、ユーザがサインオンモジュールを伝送したサイトとは異なるウェブサイトにナビゲーションした後にもブラウザ内に留まる。
【００４３】
一時構成要素は、ユーザ名とパスワードを入力するようにユーザにプロンプトを出す小型ログインウィンドウである。ユーザがマスタユーザ名／パスワードの組み合わせをログインウィンドウの中に入力すると、一時構成要素が、マスタユーザ名／パスワードと、サインオンモジュールのＣｏｄｅＢａｓｅで符号化されているサイト特有のデータとに基づいて、サイト特有のパスワードを作成する。サイト特有のパスワードを作成した後、サインオンモジュールは、サイト特有のパスワードをウェブサーバに送る。さらに、一時構成要素が、マスタユーザ名／パスワードの組み合わせのコピーをサインオンモジュールの常駐構成要素に送る。サインオンモジュールの常駐構成要素は、クライアントのメモリの中にユーザ名／パスワードを記憶する。
【００４４】
ユーザが別の限定サイトにナビゲーションするとき、新規サイトを制御するウェブサーバは、サインオンモジュールの別のインスタンスをユーザのブラウザに伝送する。第２サイトオンモジュールは、ＣｏｄｅＢａｓｅが、第２限定サイトのサイト特有のサイトを符号化するという点で、第１サインオンモジュールとは異なる。サインオンモジュールの過去に送達されたインスタンスの常駐構成要素の存在を検出すると、第２サインオンモジュールは、ユーザにログオンウィンドウを提示しない。むしろ、第２サインオンモジュールは、事前に存在した常駐構成要素からマスタユーザ名／パスワードを検索する。それから、第２サインオンモジュールは、先に進み、第２サイトのサイト特有のパスワードを作成し、トランスペアレントにユーザを第２サイトにサインオンする。
【００４５】
機密保護を確実にするために、サインオンモジュールは、本発明の１つの実施態様に従って「署名」される。すなわち、それらはサインオンモジュールのソース（つまり、開発者）を識別するシグナチャ（ｓｉｇｎａｔｕｒｅ）を符号化する。ユーザのブラウザに送達されたサインオンモジュールがユーザによって信頼されているソースからではない場合には、ユーザは、サインオンモジュールが、実行するのを妨げることができるか、単にマスタユーザ名／パスワード情報を供給するのを拒絶してよい。同様に、サインオンモジュールの事前に存在した常駐構成要素は、それ以降到着するサインオンモジュールのシグナチャが信頼されているソースを識別しない限り、マスタユーザ名／パスワード情報をそれ以降到着するサインオンモジュールに送達しないだろう。１つの実施態様に従って、多様な別々に制御されている限定サイトによって使用されるサインオンモジュールは、同じソースからとなり、それらのサインオンモジュールは、同じソースからの他のサインオンモジュールを信頼するだけだろう。
【００４６】
代替実施態様に従って、多様な別々に制御されている限定サイトによって使用されるサインオンモジュールは、さまざまなソースからでよく、異なるハッシュ関数を実現してよく、さまざまな形式のアクティブコンテンツを使用して実現されてよい。ただし、それらは、マスタ認証情報を記憶しているサインオンモジュールの上で互いにマスタ認証情報を供給するために構成されてよく、マスタ認証情報を必要とするサインオンモジュールは信頼されているソースからであることを検証する。
【００４７】
上記明細書中、本発明は、その特定の実施態様に関して説明されてきた。しかしながら、多様な修正および変更が、本発明のさらに広い精神および範囲から逸脱することなくそれに加えられてよいことは明らかだろう。明細書および図面は、したがって、限定的な意味よりむしろ説明的な意味で考えられるべきである。
【図面の簡単な説明】
【図１】本発明の実施態様が実現されてよいコンピュータシステムのブロック図である。
【図２】本発明の実施態様に従って限定サイトへサインオンするためのステップを示すフローチャートである。
【図１】
0004639297.tif 000002
【図２】
0004639297.tif 000003