(57)【特許請求の範囲】
【請求項１】
システムであって、
ネットワークを介してユーザ・コンピュータと通信し、それぞれのユーザＩＤに関連するユーザ・パスワードの認証に応じて、前記ユーザ・コンピュータによるリソースへのアクセスを制御するためのアクセス制御サーバと、
前記ネットワークを介して前記アクセス制御サーバと通信するために、それぞれの秘密値を記憶する、複数ｎ個の認証サーバと、
を備え、
前記アクセス制御サーバが、各前記ユーザＩＤについて、前記秘密値に応じた所定のアルゴリズムを使用して、そのＩＤに関連する前記ユーザ・パスワードを暗号化することにより生成される第１の暗号文を記憶し、
ユーザ・コンピュータから前記ユーザＩＤおよび入力パスワードを受け取ることに応答して、前記アクセス制御サーバが、複数ｋ≦ｎ個の前記認証サーバと通信して、パスワード認証プロトコルを実施し、
前記ｋ個の認証サーバが、それらそれぞれの秘密値を使用することを必要とし、そこで、第２の暗号文が、前記所定のアルゴリズムを使用して前記入力パスワードを暗号化することにより生成され、
前記アクセス制御サーバが前記第１および第２の暗号文を使用して、前記受け取ったユーザＩＤについて前記入力パスワードが前記ユーザ・パスワードに等しいかどうかを決定し、等しい場合、前記ユーザ・コンピュータによる前記リソースへのアクセスを許可する、システム。
【請求項２】
設定動作における前記ユーザ・パスワードおよび関連するユーザＩＤの最初の入力に応答して、前記アクセス制御サーバが前記ｎ個の認証サーバと通信し、前記アクセス制御サーバにおけるそのユーザＩＤについての前記第１の暗号文の生成および前記第１の暗号文の記憶を含むパスワード設定プロトコルを実施して、そのユーザＩＤについての前記パスワード認証プロトコルの実施を可能にするようにする、請求項１に記載のシステム。
【請求項３】
前記第１の暗号文がｎ個の第１の疑似乱数値を含み、その各々が、疑似乱数関数を介して、それぞれの認証サーバにおいて前記秘密値および最初の疑似乱数値から暗号化されたものであり、
前記最初の疑似乱数値が、前記疑似乱数関数を介して、ユーザＩＤについての前記ユーザ・パスワードから暗号化されたものであり、
前記アクセス制御サーバがｋ＝ｎ個の認証サーバと通信して、前記パスワード認証プロトコルを実施する、請求項１に記載のシステム。
【請求項４】
前記アクセス制御サーバがさらなる秘密値を記憶し、前記最初の疑似乱数値が、前記疑似乱数関数を介して、前記さらなる秘密値も暗号化されたものである、請求項３に記載のシステム。
【請求項５】
前記最初の疑似乱数値が、前記疑似乱数関数を介して、前記ユーザ・パスワードに関連する前記ユーザＩＤも暗号化されたものである、請求項３に記載のシステム。
【請求項６】
前記パスワード認証プロトコルを実施するために、
前記アクセス制御サーバが、前記入力パスワードを使用して、前記最初の疑似乱数値に対応するテスト疑似乱数値を生成し、前記テスト疑似乱数値を各認証サーバに送信し、
各認証サーバが、前記テスト疑似乱数値を使用して、前記第１の疑似乱数値に対応するそれぞれのサーバ疑似乱数値を生成し、前記サーバ疑似乱数値を前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、前記ｎ個のサーバ疑似乱数値から前記第２の暗号文を生成し、前記第１の暗号文と前記第２の暗号文を比較して、前記入力パスワードが、最初に入力された前記ユーザ・パスワードに等しいかどうかを決定する、請求項３に記載のシステム。
【請求項７】
前記パスワード認証プロトコルの中で、
前記アクセス制御サーバが、各認証サーバに前記受け取ったユーザＩＤを送信し、
各認証サーバが、各ユーザＩＤについてスロットリング・メカニズムを実施する、請求項３に記載のシステム。
【請求項８】
前記最初の入力に応答して前記パスワード設定プロトコルを実施するために、
前記アクセス制御サーバが、擬似乱数関数を介して前記ユーザ・パスワードから前記最初の疑似乱数値を生成して、前記最初の疑似乱数値をｎ個の各認証サーバに送信し、
前記ｎ個の各認証サーバが、前記最初の疑似乱数値を使用して、それぞれの第１の疑似乱数値を生成し、前記第１の疑似乱数値を前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、前記ｎ個の第１の疑似乱数値から前記第１の暗号文を生成する、請求項２に記載のシステム。
【請求項９】
前記第１の暗号文が、前記ｎ個の第１の疑似乱数値のモジュロ２総和を含む、請求項３に記載のシステム。
【請求項１０】
各第１の疑似乱数値が、第２の疑似乱数値と第３の疑似乱数値のモジュロ２総和を含み、
前記第２の疑似乱数値は、前記最初の疑似乱数値を前記疑似乱数関数を介して暗号化したものであり、
前記第３の疑似乱数値は、前記疑似乱数関数を介して、前記認証サーバの前記秘密値、および前記ユーザＩＤを暗号化したものである、請求項９に記載のシステム。
【請求項１１】
前記第２の疑似乱数値が、前記疑似乱数関数を介して、前記それぞれの認証サーバについてのサーバＩＤも暗号化する、請求項１０に記載のシステム。
【請求項１２】
前記各認証サーバが、それぞれの秘密値を新しい秘密値にアップデートし、前記新しい秘密値を使用して、前記第３の疑似乱数値に対応するアップデートした疑似乱数値を生成し、
前記認証サーバが、前記アップデートした疑似乱数値と前記第３の疑似乱数値のモジュロ２総和を含む、アップデート値を生成して、前記アップデート値を前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、前記第１の暗号文と前記アップデート値のモジュロ２総和を生成することにより、前記第１の暗号文をアップデートする、
アップデート・プロトコルを実施する、請求項１０に記載のシステム。
【請求項１３】
前記第１の暗号文が、暗号キー対の公開キーの下で前記ユーザ・パスワードを暗号化するための所定の準同形暗号化アルゴリズムを使用して生成され、
前記認証サーバの前記秘密値が、前記キー対の秘密キーのそれぞれのキー共有を含む、請求項１に記載のシステム。
【請求項１４】
前記ユーザＩＤおよび入力パスワードの受け取りに応答して前記パスワード認証プロトコルを実施するために、
前記アクセス制御サーバが、前記準同形暗号化アルゴリズムを使用して前記入力パスワードから前記第２の暗号文を生成し、
前記アクセス制御サーバが、前記受け取ったユーザＩＤについて、演算
【数１】
0006448668.tif 000027
を介して、前記第２の暗号文と前記第１の暗号文を組み合わせることによりテスト値を生成し、前記演算
【数２】
0006448668.tif 000028
が、前記準同形暗号化アルゴリズムの準同形性に起因して、前記入力パスワードがそのユーザＩＤに関連する前記ユーザ・パスワードに等しい場合、前記テスト値が所定の値に復号されるようなものであり、
前記アクセス制御サーバが、前記テスト値を前記ｋ個の認証サーバに送信し、
前記ｋ個の認証サーバの各々が、そのそれぞれのキー共有を使用して、前記テスト値に応じて復号共有を生成し、前記復号共有を前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、前記テスト値が前記所定の値に復号されるかどうかを、前記ｋ個の復号共有から決定することにより、前記入力パスワードが前記ユーザ・パスワードに等しいかどうかを決定する、請求項１３に記載のシステム。
【請求項１５】
前記準同形暗号化アルゴリズムが、復号のため、ｐ＜ｎ個の復号共有を必要とする、閾値暗号化アルゴリズムを含み、
前記パスワード認証プロトコルにおいて、前記アクセス制御サーバが前記テスト値をｋ＝ｐ個の認証サーバに送信する、請求項１４に記載のシステム。
【請求項１６】
各認証サーバが、各前記ユーザＩＤについての前記第１の暗号文を記憶し、前記パスワード認証プロトコルにおいて、
前記アクセス制御サーバが、前記認証サーバに前記受け取ったユーザＩＤを前記テスト値とともに送信し、
各認証サーバが、各ユーザＩＤについてスロットリング・メカニズムを実施する、請求項１４に記載のシステム。
【請求項１７】
前記アクセス制御サーバが、前記入力パスワードの関数Ｆに前記準同形暗号化アルゴリズムを適用することにより前記第２の暗号文を生成する、請求項１４に記載のシステム。
【請求項１８】
各認証サーバが、各前記ユーザＩＤについての前記第１の暗号文を記憶し、前記パスワード認証プロトコルにおいて、
前記テスト値が前記受け取ったユーザＩＤについて前記第２の暗号文および前記第１の暗号文を含むことを立証するために、前記アクセス制御サーバが暗号証明を生成し、
前記アクセス制御サーバが、前記ｋ個の認証サーバに前記受け取ったユーザＩＤおよび前記証明を前記テスト値とともに送信し、
前記復号共有を生成する前に、前記ｋ個の認証サーバの各々が前記証明を検認する、請求項１７に記載のシステム。
【請求項１９】
前記入力パスワードが前記ユーザＩＤに関連する前記ユーザ・パスワードに等しい場合、前記テスト値が１に復号され、前記パスワード認証プロトコルの中で、
前記ｋ個の認証サーバの各々が、前記テスト値のそれぞれの乱数指数ｒｉ乗を含む、乱数化値Ｃｉを生成して、前記乱数化値Ｃｉを前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、各認証サーバから受け取った前記乱数化値Ｃｉを、（ｋ−１）個の他の認証サーバの各々に転送し、
各認証サーバが、前記演算
【数３】
0006448668.tif 000029
を介して、前記ｋ個の組の乱数化値Ｃｉを組み合わせて、乱数化暗号文ＣＲを生成し、そのそれぞれのキー共有を使用して、前記乱数化暗号文ＣＲから前記復号共有を生成し、
前記アクセス制御サーバが、前記乱数化暗号文ＣＲが１に復号されるかどうかを、前記ｋ個の復号共有から決定することにより、前記入力パスワードが前記ユーザ・パスワードに等しいかどうかを決定する、請求項１４に記載のシステム。
【請求項２０】
前記アクセス制御サーバが、前記ユーザＩＤについて、前記パスワード認証プロトコルの中でそれぞれの認証サーバによって前記乱数化暗号文ＣＲから生成される前記ｋ個の復号共有を記憶し、
そのユーザＩＤについての前記パスワード認証プロトコルにおけるスロットリング・メカニズムに起因して前記ユーザＩＤをブロックする前に、前記認証サーバが前記アクセス制御サーバと通信して、ブロック解除プロトコルを実施し、そこでは、前記アクセス制御サーバが、前記ｋ個の復号共有をその認証サーバに送信し、前記認証サーバが、前記ｋ個の復号共有から前記乱数化暗号文ＣＲが１に復号されるかどうかを決定する、請求項１９に記載のシステム。
【請求項２１】
前記最初の入力に応答してパスワード設定プロトコルを実施するために、前記アクセス制御サーバが、前記準同形暗号化アルゴリズムを使用して、前記ユーザ・パスワードから前記第１の暗号文を生成する、請求項１３に記載のシステム。
【請求項２２】
前記パスワード設定プロトコルの中で、前記アクセス制御サーバが、前記第１の暗号文を前記ｎ個の認証サーバに、前記ユーザ・パスワードに関連する前記ユーザＩＤとともに送信する、請求項２１に記載のシステム。
【請求項２３】
前記ｎ個の認証サーバが、前記秘密キーの前記ｎ個のキー共有をアップデートするための共有更新プロトコルを実施する、請求項１３に記載のシステム。
【請求項２４】
サーバであって、メモリと、通信インターフェイスと、請求項１ないし２３のいずれか一項に記載のシステムのアクセス制御サーバが実施する制御ロジックとを備え、前記メモリが、使用される各ユーザＩＤについての前記第１の暗号文を記憶する、サーバ。
【請求項２５】
サーバであって、メモリと、通信インターフェイスと、請求項１ないし２３のいずれか一項に記載のシステムの認証サーバが実施する制御ロジックとを備え、前記メモリが、使用される前記認証サーバの前記秘密値を記憶する、サーバ。
【請求項２６】
コンピュータ・プログラムであって、コンピュータに、請求項２４または請求項２５に記載のサーバの前記制御ロジックを実施させるためのプログラム・コードを含む、コンピュータ・プログラム。
【請求項２７】
ユーザ・コンピュータとネットワークを介して通信するために配置されるアクセス制御サーバおよび複数ｎ個の認証サーバにおいて、それぞれのユーザＩＤに関連するユーザ・パスワードの認証に依存して、前記ユーザ・コンピュータによるリソースへのアクセスを制御するための方法であって、
前記ｎ個の認証サーバにおいてそれぞれの秘密値を記憶するステップと、
各前記ユーザＩＤについて、前記アクセス制御サーバにおいて、前記秘密値に応じて所定のアルゴリズムを使用し、そのＩＤに関連する前記ユーザ・パスワードを暗号化することにより生成される第１の暗号文を記憶するステップと、
前記アクセス制御サーバにおいて、ユーザ・コンピュータから前記ユーザＩＤおよび入力パスワードを受け取ることに応答して、複数ｋ≦ｎ個の前記認証サーバと通信して、パスワード認証プロトコルを実施するステップであって、（ｉ）前記ｋ個の認証サーバがそれらそれぞれの秘密値を使用することを必要し、第２の暗号文が、前記所定のアルゴリズムを使用して前記入力パスワードを暗号化することにより生成され、（ｉｉ）前記アクセス制御サーバが前記第１および第２の暗号文を使用して、前記受け取ったユーザＩＤについて前記入力パスワードが前記ユーザ・パスワードに等しいかどうかを決定する、前記ステップと、
前記アクセス制御サーバにおいて、前記入力パスワードが前記ユーザ・パスワードに等しい場合、前記ユーザ・コンピュータによる前記リソースへのアクセスを許可するステップと
を含む、方法。
【請求項２８】
前記第１の暗号文がｎ個の第１の疑似乱数値を含み、その各々が、疑似乱数関数を介して、それぞれの認証サーバの前記秘密値および最初の疑似乱数値から暗号化されたものであり、
前記最初の疑似乱数値が、前記疑似乱数関数を介して、ユーザＩＤについての前記ユーザ・パスワードから暗号化されたものであり、
前記パスワード認証プロトコルを実施するために、
前記アクセス制御サーバが、前記入力パスワードを使用して、前記最初の疑似乱数値に対応するテスト疑似乱数値を生成し、前記テスト疑似乱数値をｋ＝ｎ個の認証サーバに送信し、
各認証サーバが、前記テスト疑似乱数値を使用して、前記第１の疑似乱数値に対応するそれぞれのサーバ疑似乱数値を生成し、前記サーバ疑似乱数値を前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、前記ｎ個のサーバ疑似乱数値から前記第２の暗号文を生成し、前記第１の暗号文と第２の暗号文を比較して、前記入力パスワードが、前記受け取ったユーザＩＤについての前記ユーザ・パスワードに等しいかどうかを決定する、請求項２７に記載の方法。
【請求項２９】
前記第１の暗号文が、暗号キー対の公開キーの下で前記ユーザ・パスワードを暗号化するための所定の準同形暗号化アルゴリズムを使用して生成され、前記認証サーバの前記秘密値が、前記キー対の秘密キーのそれぞれのキー共有を含み、前記ユーザＩＤおよび入力パスワードの受け取りに応答して前記パスワード認証プロトコルを実施するために、
前記アクセス制御サーバが、前記準同形暗号化アルゴリズムを使用して前記入力パスワードから前記第２の暗号文を生成し、
前記アクセス制御サーバが、前記受け取ったユーザＩＤについて、演算
【数４】
0006448668.tif 000030
を介して、前記第２の暗号文と前記第１の暗号文を組み合わせることによりテスト値を生成し、前記演算
【数５】
0006448668.tif 000031
が、前記準同形暗号化アルゴリズムの準同形性に起因して、前記入力パスワードがそのユーザＩＤに関連する前記ユーザ・パスワードに等しい場合、前記テスト値が所定の値に復号されるようなものであり、
前記アクセス制御サーバが、前記テスト値を前記ｋ個の認証サーバに送信し、
前記ｋ個の認証サーバの各々が、そのそれぞれのキー共有を使用して、前記テスト値に応じて復号共有を生成し、前記復号共有を前記アクセス制御サーバに送信し、
前記アクセス制御サーバが、前記テスト値が前記所定の値に復号されるかどうかを、前記ｋ個の復号共有から決定することにより、前記入力パスワードが前記ユーザ・パスワードに等しいかどうかを決定する、請求項２７に記載の方法。
【請求項３０】
ユーザ・コンピュータとネットワークを介して通信するために配置されるアクセス制御サーバおよび複数ｎ個の認証サーバにおいて、それぞれのユーザＩＤに関連するユーザ・パスワードの認証に依存して、前記ユーザ・コンピュータによるリソースへのアクセスを制御するための前記コンピュータ・プログラムであって、前記アクセス制御サーバに、
各前記ユーザＩＤについて、秘密値に応じて所定のアルゴリズムを使用し、そのＩＤに関連する前記ユーザ・パスワードを暗号化することにより生成される第１の暗号文を記憶することと、
ユーザ・コンピュータから前記ユーザＩＤおよび入力パスワードを受け取ることに応答して、複数ｋ≦ｎ個の前記認証サーバと通信して、パスワード認証プロトコルを実施することであって、（ｉ）前記ｋ個の認証サーバがそれらそれぞれの秘密値を使用することを必要とし、第２の暗号文が、前記所定のアルゴリズムを使用して前記入力パスワードを暗号化することにより生成され、（ｉｉ）前記アクセス制御サーバが前記第１および第２の暗号文を使用して、前記受け取ったユーザＩＤについて前記入力パスワードが前記ユーザ・パスワードに等しいかどうかを決定する、前記実施することと、
前記入力パスワードが前記ユーザ・パスワードに等しい場合、前記ユーザ・コンピュータによる前記リソースへのアクセスを許可することと
を行わせる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データ処理システムにおけるパスワードベース認証に関し、それによって、リソースへのアクセスが、ユーザ・パスワードの認証に応じて制御される。ユーザ・パスワードを認証するために、対応する方法、構成要素サーバおよびサーバを構成するためのコンピュータ・プログラムとともに、マルチサーバ・システムが提供される。
【背景技術】
【０００２】
パスワードは、データ処理システムにおいて、ユーザ認証のための最も普及したメカニズムである。長期にわたり、ユーザ・コンピュータへのフィッシング攻撃およびキーストローク・ロギング・マルウェアは、ハッカーが多数のユーザ・パスワードを取得するのに好まれる方法であった。しかし、より最近では、パスワード・セキュリティに対する主なリスクは、サーバ汚染から生じるように思われる。２０１２年だけで、数千万のパスワードがこの方式で失われ、多くのデータ侵害が様々な人気のあるウェブサイトでおこったと報告された。
【０００３】
従来型のパスワードベース認証システムでは、ユーザは、保護されるリソースへのアクセスを管理し、例えばユーザの名前などユーザＩＤのデータベースを維持するサーバに、ハッシュ化された形式で記憶される、ユーザＩＤに関連するユーザ・パスワードで接続する。ユーザＩＤおよび入力パスワードを受け取ると、アクセス制御サーバは、入力パスワードをハッシュし、結果が、そのユーザ用の記憶されたパスワード・ハッシュに等しいかどうかを検査する。しかし、全てのパスワード・ハッシュは、アクセス制御サーバ（または、関連するパスワード・ハッシュ・データベース）をハッキングすることにより盗まれる可能性がある。ハッシュされた形式でパスワードを記憶するのでは、メッセージ空間の辞書または総当たり攻撃を使用するオフライン攻撃の効率に起因して、ほとんど保護を提供しない。米国標準技術局は、人間が記憶可能な１６文字長のパスワードでさえ、約１０億の可能な組合せに対応する、ほんの３０ビットのエントロピーしか有しないことを推定した。毎秒８０億を超える組合せをテストできる現在のグラフィカル・プロセッサを使用すると、パスワード・データに対してオフライン攻撃が搭載されるとすぐにセキュリティが失われると考えるべきである。
【０００４】
サーバ汚染を通したオフライン攻撃にさらされることを減らすため、パスワードベース認証を、複数のサーバによって実行することができる。パスワードベース認証データが複数のサーバ間で分割される認証プロトコルは、例えば、認証キー交換または認証秘密共有プロトコルの部分として知られている。以前のマルチサーバ・パスワード認証システムは、全てのサーバの情報が認証のために必要であるので、ユーザ・コンピュータが、認証プロトコル中の全てのサーバと相互作用することが必要である。２つのサーバのパスワードベース認証システムも知られている。“RSA Distributed Credential Protection”, RSASecurity, Whitepaper 2012,http://www.emc.com/collateral/software/white-papers/h11013-rsa-dcp-0812-wp.pdfは、そのようなシステムの例を記載する。ここでは、パスワードベース認証データが２つのサーバ間に分割される。ユーザが、彼女のパスワードをランダム化し分割した形式で２つのサーバに送信し、次いで２つのサーバが、相互作用してパスワードを検証し、パスワードが正しい場合、アクセスを許可する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“RSA Distributed CredentialProtection”, RSA Security, Whitepaper 2012,http://www.emc.com/collateral/software/white-papers/h11013-rsa-dcp-0812-wp.pdf
【非特許文献２】Y. Desmedt, Y. Frankel. “Threshold Cryptosystems”, Desmedt & Y.Frankel, CRYPTO 1989
【非特許文献３】“Proactive Secret Sharing Or: Howto Cope With Perpetual Leakage”, Herzberg et al,.CRYPTO 1995
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マルチサーバ・パスワード認証システムの改善が、強く求められることになる。
【課題を解決するための手段】
【０００７】
本発明の第１の態様の実施形態は、
ネットワークを介してユーザ・コンピュータと通信し、それぞれのユーザＩＤに関連するユーザ・パスワードの認証に応じて、ユーザ・コンピュータによるリソースへのアクセスを制御するためのアクセス制御サーバと、
ネットワークを介してアクセス制御サーバと通信するために、それぞれの秘密値を記憶する、複数ｎ個の認証サーバと
を備え、
アクセス制御サーバが、各前記ユーザＩＤについて、前記秘密値に応じた所定のアルゴリズムを使用して、そのＩＤに関連するユーザ・パスワードを暗号化することにより生成される第１の暗号文を記憶し、
ユーザ・コンピュータから前記ユーザＩＤおよび入力パスワードを受け取ることに応答して、アクセス制御サーバが、複数ｋ≦ｎ個の認証サーバと通信して、パスワード認証プロトコルを実施し、ｋ個の認証サーバが、それらそれぞれの秘密値を使用することを必要とし、そこで、第２の暗号文が、前記所定のアルゴリズムを使用して入力パスワードを暗号化することにより生成され、アクセス制御サーバが第１および第２の暗号文を使用して、受け取ったユーザＩＤについて入力パスワードがユーザ・パスワードに等しいかどうかを決定し、等しい場合、ユーザ・コンピュータによるリソースへのアクセスを許可するように、アクセス制御サーバおよび認証サーバが適合されるシステムを提供する。
【０００８】
本発明を具現化するシステムでは、アクセス制御サーバは、リソースへのアクセス・ポイントならびにユーザを接続するためのマルチサーバ・パスワードベース認証プロトコルの集中制御の両方を提供する。このプロトコルの実施は、ｋ≦ｎ個の認証サーバとアクセス制御サーバの協調を必要とし、これらの認証サーバは、このプロセス中でそれらのそれぞれの秘密値を使用しなければならない。しかし、入力パスワードの有効性は、ｋ個のサーバとの通信に基づいて、アクセス制御サーバによって集約的に決定される。プロトコルは、アクセス制御サーバ（または、任意の他のサーバ）が、ユーザ・パスワードを再構築することを必要としない。認証は、認証サーバの秘密値に応じて所定の暗号化アルゴリズムを使用して、真性のユーザ・パスワードおよび入力パスワード試行からそれぞれ生成される第１および第２の暗号文を使用することに基づく。本発明を具現化するシステムは、安全で効率的なパスワードベース認証を提供することができる。ユーザ・コンピュータは、アクセス制御サーバとの通信のみを必要とし、他の形では、認証プロトコルの実施に含まれない。本発明の実施形態は、オフライン攻撃に対するセキュリティを提供し、効率的なアップデート・メカニズムの実施を可能にもし、このことによって、秘密値をアップデートして、例えば周期的または知られているセキュリティ侵害に応答してセキュリティを強化することができる。本発明を具現化するシステムのさらなる利点を、下に記載する特定の実施形態に関して説明することになる。
【０００９】
サーバの秘密値は、暗号キー、またはキー共有、またはシステム中のそれぞれのサーバにのみ知られている任意の他の強い秘密を含むことができる。暗号文を生成するために使用される暗号化アルゴリズムは、様々な方式で、直接的または間接的に、これらの秘密値に依存することができる。例えば、秘密値をアルゴリズム中で使用する場合があり、またはアルゴリズムが暗号キー対の公開キーを使用する場合があり、秘密値は、キー対の秘密キーのそれぞれのキー共有を含む場合がある。入力パスワードを直接的に、またはそのいくつかの機能を生成するための入力パスワードのさらなる処理の後に暗号化するために暗号化アルゴリズムを使用することにより、第２の暗号文を生成することができる。
【００１０】
第１の好ましい実施形態では、認証プロトコルは、アクセス制御サーバおよびｋ＝ｎ個の認証サーバによって実施される。第１の暗号文は、認証サーバのｎ個の秘密値、ユーザＩＤについてのユーザ・パスワード、および好ましくはアクセス制御サーバにより記憶されるさらなる秘密値から導出される疑似乱数値を含む。ユーザがログインするときパスワード検証プロトコルを実施するために、アクセス制御サーバは、第１の暗号文と同様の方式で、秘密値および入力パスワードから第２の暗号文の生成を調整する。次いで、アクセス制御サーバは、第１および第２の暗号文を単純に比較して、入力パスワードが、ユーザＩＤについてのユーザ・パスワードに等しいかどうかを決定する。
【００１１】
第２の好ましい実施形態では、第１の暗号文は、暗号キー対の公開キーの下でユーザ・パスワードを暗号化するための準同形暗号化アルゴリズムを使用して生成される。認証サーバの秘密値は、キー対の秘密キーのそれぞれのキー共有を含む。ユーザ・ログインにおけるパスワード認証プロトコルを実施するために、アクセス制御サーバは、前記準同形暗号化アルゴリズムを使用して入力パスワードから第２の暗号文を生成する。次いで、アクセス制御サーバは、受け取ったユーザＩＤについて、演算
【数１】
0006448668.tif 000002
を介して、第２の暗号文と第１の暗号文を組み合わせることによりテスト値を生成し、演算
【数２】
0006448668.tif 000003
は、前記暗号化アルゴリズムの準同形性に起因して、入力パスワードがユーザ・パスワードに等しい場合、テスト値が所定の値に復号されるようなものである。テスト値は、ｋ個の認証サーバに送信され、ｋ個の認証サーバは、それらの秘密キー共有を使用し、テスト値に応じて、それぞれの復号共有を生成する。次いで、アクセス制御サーバは、ｋ個の復号共有から、テスト値が前記所定の値に復号されるか、したがって入力パスワードがユーザ・パスワードに等しいかどうかを決定する。準同形暗号化アルゴリズムが、復号のためにｎ個より少ない復号共有を必要とする閾値暗号化アルゴリズムである場合、パスワード認証プロトコルは、ｋ＜ｎ個の認証サーバを使用して実施することができる。
【００１２】
オフライン攻撃に対する最高のセキュリティのために、アクセス制御サーバは、好ましい実施形態のパスワード認証プロトコルで、各認証サーバに受け取ったユーザＩＤを送信し、各認証サーバは、各ユーザＩＤについてスロットリング・メカニズムを実施する。スロットリング・メカニズムは、暗号法においてよく知られており、システム・ユーザによるログインを監視し、ログイン挙動に基づいて、何らかの特定のユーザ・アカウントをブロックするべきであるかどうかを決定するための手順を提供する。スロットリング・メカニズムは、例えば、閾値の数より多いログイン要求が所与の時間内に、または不正パスワードで、あるいはその両方でなされる場合といった、潜在的に悪意のある行為を示す所定の基準をログイン挙動が満たす場合、一般的に、ユーザ・アカウントをブロックする。下に詳述される第１の好ましい実施形態は、ユーザ・ログインの頻度に基づいて、スロットリング・メカニズムを実施する。第２の好ましい実施形態は、ログインの頻度と不正パスワード記入の組合せに基づいて、スロットリングを実施することができる。
【００１３】
好ましい実施形態では、アクセス制御サーバおよび認証サーバは、ユーザ・アカウントについてのパスワード設定プロトコルを実施するようにさらに適合される。特に、アクセス制御サーバおよび認証サーバは、設定動作における前記ユーザ・パスワードおよび関連するユーザＩＤの最初の入力に応答して、アクセス制御サーバがｎ個の認証サーバと通信し、アクセス制御サーバにおけるそのユーザＩＤについての前記第１の暗号文の生成および第１の暗号文の記憶を含むパスワード設定プロトコルを実施して、そのユーザＩＤについての前記検証プロトコルの後続の実施を可能にするように適合させることができる。好ましい実施形態は、所望に応じて秘密値をアップデートすることを可能にする、効率的なアップデート動作も提供する。
【００１４】
本発明の第２の態様の実施形態は、メモリと、通信インターフェイスと、本発明の第１の態様に従うシステムのアクセス制御サーバを実施するサーバを構成するように適合される制御ロジックとを備えるサーバであって、前記メモリが、使用中の各ユーザＩＤについての前記第１の暗号文を記憶するサーバを提供する。
【００１５】
本発明の第３の態様の実施形態は、メモリと、通信インターフェイスと、本発明の第１の態様に従うシステムの認証サーバを実施するサーバを構成するように適合される制御ロジックとを備えるサーバであって、前記メモリが、使用中の認証サーバの前記秘密値を記憶するサーバを提供する。
【００１６】
本発明のさらなる態様は、コンピュータに本発明の第２または第３の態様に従うサーバの制御ロジックをそれぞれ実施させるための、プログラム・コード手段を含むコンピュータ・プログラムを提供する。「コンピュータ」という用語は、最も一般的な意味で使用され、コンピュータ・プログラムを実施するためのデータ処理能力を有する任意のデバイス、構成要素、またはシステムを含む。さらに、本発明を具現化するコンピュータ・プログラムは、独立したプログラムもしくはプログラム・セットを構築することができ、またはより大きいプログラムもしくはプログラム・セットの要素であってよく、コンピュータ中にロードするためのディスクもしくは電子伝送などのコンピュータ可読媒体の中に供給、例えば具現化することができる。コンピュータ・プログラムのプログラム・コード手段は、コンピュータに、直接的に、または（ａ）別の言語、コード、または表記法への変換、および（ｂ）異なる材料形式での複製のいずれかまたは両方の後で、対象となっている方法を実行させることを意図した命令の組の、任意の言語、コード、または表記法での任意の表現を含むことができる。
【００１７】
本発明の別の態様の実施形態は、ユーザ・コンピュータとネットワークを介して通信するために配置されるアクセス制御サーバおよび複数ｎ個の認証サーバにおいて、それぞれのユーザＩＤに関連するユーザ・パスワードの認証に依存して、ユーザ・コンピュータによるリソースへのアクセスを制御するための方法を提供する。方法は、
ｎ個の認証サーバにおいてそれぞれの秘密値を記憶するステップと、
各前記ユーザＩＤについて、アクセス制御サーバにおいて、前記秘密値に応じて所定のアルゴリズムを使用し、そのＩＤに関連するユーザ・パスワードを暗号化することにより生成される第１の暗号文を記憶するステップと、
アクセス制御サーバにおいて、ユーザ・コンピュータから前記ユーザＩＤおよび入力パスワードを受け取ることに応答して、複数ｋ≦ｎ個の認証サーバと通信して、パスワード認証プロトコルを実施するステップであって、ｋ個の認証サーバがそれらそれぞれの秘密値を使用することを必要とし、第２の暗号文が、前記所定のアルゴリズムを使用して入力パスワードを暗号化することにより生成され、アクセス制御サーバが第１および第２の暗号文を使用して、受け取ったユーザＩＤについて入力パスワードがユーザ・パスワードに等しいかどうかを決定するステップと、
アクセス制御サーバにおいて、入力パスワードがユーザ・パスワードに等しい場合、ユーザ・コンピュータによるリソースへのアクセスを許可するステップと
を含む。
【００１８】
特徴は、本発明の一態様の実施形態を参照して本明細書に記載されるが、対応する特徴は、本発明の別の態様の実施形態中で適宜実現することができる。
【００１９】
本発明の好ましい実施形態は、ここで、例として添付図面を参照して記載する。
【図面の簡単な説明】
【００２０】
【図１】本発明を具現化するパスワード認証システムを含むデータ処理システムの概略図である。
【図２】パスワード認証システムの動作における設定手順の特徴を示す図である。
【図３】パスワード認証システムの動作におけるログイン手順の特徴を示す図である。
【図４】第１のパスワード認証プロトコルを実施するための、パスワード認証システムの第１の実施形態の構成を図示する図である。
【図５】第１の実施形態における、設定プロトコルのステップを示す図である。
【図６】第１の実施形態における、設定プロトコルのステップを示す図である。
【図７】第１の実施形態における、パスワード認証プロトコルのステップを示す図である。
【図８】第１の実施形態における、パスワード認証プロトコルのステップを示す図である。
【図９】第１の実施形態における、アップデート・プロトコルのステップを示す図である。
【図１０】第２のパスワード認証プロトコルを実施するための、パスワード認証システムの第２の実施形態の構成を図示する図である。
【図１１】第２の実施形態における、設定プロトコルのステップを示す図である。
【図１２】第２の実施形態における、パスワード認証プロトコルの簡単な実施のステップを示す図である。
【図１３】第２の実施形態における、パスワード認証プロトコルの簡単な実施のステップを示す図である。
【図１４】第２の実施形態における、パスワード認証プロトコルのより精巧な実施のステップを示す図である。
【図１５】第２の実施形態における、パスワード認証プロトコルのより精巧な実施のステップを示す図である。
【図１６】第２の実施形態における、パスワード認証プロトコルのより精巧な実施のステップを示す図である。
【図１７】第２の実施形態における、ブロック解除プロトコルのステップを示す図である。
【発明を実施するための形態】
【００２１】
図１は、本発明を具現化する認証システムを組み込むデータ処理システムの簡単な例を示す。全体的に１で示されるパスワード認証システムは、複数のユーザ・コンピュータ３とネットワーク４を介して通信するように配置されるアクセス制御サーバ２を含む。ネットワーク４は、一般的に、インターネットを含む、１つもしくは複数の構成要素ネットワークまたは相互接続ネットワークを含むことができる。ユーザ・コンピュータ３は、この例では汎用パーソナル・コンピュータ（ＰＣ）であるが、モバイル・フォン、タブレット・コンピュータ、個人用音楽プレイヤ、パームトップ・デバイスなどの他のコンピュータ・デバイスによって同じように実施することができる。アクセス制御サーバ２は、ユーザ・コンピュータ３によるリソース、この例ではデータベース５へのアクセスを制御する。アクセスは、動作においてユーザによってＰＣ３を介して入力される、例えばユーザ名といったそれぞれのユーザＩＤに関連するユーザ・パスワードの認証に依存して許可される。
【００２２】
パスワード認証システム１は、アクセス制御サーバ２とネットワーク４を介して通信するように配置され、Ｓ１、Ｓ２、…、Ｓｎと標示される複数の認証サーバ６も含む。ｎ個の認証サーバ６は、アクセス制御サーバ２と協調して、下に詳述されるマルチサーバ・パスワード認証プロトコルを実施するように適合される。認証サーバの数ｎは、様々な実施形態で変わる場合があるが、典型的なシステムは、特定のパスワード認証プロトコルおよび必要なセキュリティのレベルに依存して、２個と１０個の間の認証サーバを採用することができる。一般的に、認証サーバ６は、アクセス制御サーバ２と同じ位置、または１つまたは複数の様々な位置に配置することができ、アクセス制御サーバと同じ実体、または１つまたは複数の様々な実体により制御することができる。アクセス制御サーバ２および認証サーバ６の分布および制御は、こうして、所与のシステムについての特定のセキュリティ要件にしたがって選択することができる。
【００２３】
アクセス制御サーバ２および認証サーバ６の各々は、それぞれのサーバ機能性を実施するように構成される汎用コンピュータとして具現化することができる。アクセス制御サーバ２は、ここでは簡単に、ネットワーク４にわたる通信のための通信インターフェイス（Ｉ／Ｆ）７、制御ロジック８、およびメモリ９を備えるものとして示される。制御ロジック８は、一般的にアクセス制御サーバ２の動作を制御し、下に詳述されるパスワード認証および関連プロトコルのステップを実施するための機能性を提供する。メモリ９は、動作において制御ロジックにより使用される様々なデータを記憶する。これは、システムの各認定ユーザのユーザＩＤ（Ｕｉｄ）についての第１の暗号文ＣＴ１を含む。各認証サーバ６は、通信インターフェイス１１、下に詳述されるプロトコルで使用するための機能性を提供する認証ロジック１２、および動作において認証ロジック１２により使用されるデータを記憶するメモリ１３を備えるものとして同様に示される。これは、システム中のその特定のサーバＳｉにのみ知られている秘密値ｖｉを含む。一般的に、制御ロジック８および認証ロジック１２は、ハードウェアまたはソフトウェアまたはそれらの組合せで実施することができる。この例では、制御ロジック８、認証ロジック１２は、コンピュータに記載される機能を実行させるためにそれぞれのコンピュータ（アクセス制御サーバ２、認証サーバ６）上で走るソフトウェアにより好都合に実施される。
【００２４】
図２は、パスワード認証システム１の動作においてユーザ・アカウントを設定するための設定手順の鍵となる特徴を示す一般化したブロック図である。ステップ２０において示されるように設定動作を開始する際に、ユーザの後続の認証のために使用されるユーザＩＤ  Ｕｉｄおよび関連するユーザ・パスワードｐｗｄは、ステップ２１でアクセス制御サーバ２に入力される。典型的なアプリケーションでは、ユーザＩＤおよびパスワードは、ユーザによって、ここではユーザ・コンピュータ３を介して入力され、ネットワーク４を介してアクセス制御サーバ２に送信される。アクセス制御サーバは、ステップ２２で、パスワード設定プロトコルを始めることにより応答する。このプロトコルは、アクセス制御サーバ２とｎ個の認証サーバＳ１〜Ｓｎの通信を介して実施される。設定プロトコルは、ステップ２３において示されるように、入力ユーザＩＤについての第１の暗号文ＣＴ１の生成を含む。暗号文ＣＴ１は、ｎ個の認証サーバの秘密値ｖ１〜ｖｎに応じた所定のアルゴリズムを使用して、ユーザ・パスワードｐｗｄを暗号化することにより生成される。これは、下でさらに説明される。第１の暗号文ＣＴ１は、ステップ２４において示されるように、認定ユーザについてのユーザＩＤ  Ｕｉｄとともにアクセス制御サーバ２によって記憶される。ｎ個の認証サーバ６は、ステップ２５において示されるように、（典型的には、下でさらに論じられるスロットリング・メカニズムにより制御される「アカウント・ブロック」フラグなどの１つまたは複数の他の項目とともに）ユーザＩＤ  Ｕｉｄを記憶する。ステップ２４と２５の順序は、下で説明されるように、様々な実施で変わる場合があることに留意されたい。パスワード設定プロトコルは、こうして完了し、ユーザ・アカウントは、後続のログイン手順中で使用する準備が整う。
【００２５】
図３は、パスワード認証システム１の動作におけるログイン手順の概要を与える一般化したブロック図である。ステップ３０において、ユーザ・コンピュータ３を操作するユーザがパスワードｐｗｄ’（すなわち、ユーザ・パスワードｐｗｄにおける試行）およびユーザＩＤ  Ｕｉｄを入力すると、ログイン手順が開始される。ステップ３１で、Ｕｉｄ、ｐｗｄ’の入力がネットワーク４を介して送信され、アクセス制御サーバ２によって受け取られる。ステップ３２で、アクセス制御サーバは、入力パスワードｐｗｄ’を認証するため検証プロトコルを始めることによって応答する。このパスワード認証プロトコルは、アクセス制御サーバ２と複数ｋ≦ｎ個の認証サーバＳ１〜Ｓｎの通信を介して実施され、ここでｋの値は、特定のプロトコル実施に依存する。プロトコルを良好に動作させるには、図中のブロック３３において示されるように、ｋ個の認証サーバが、それらそれぞれの秘密値ｖｉを使用することを必要とする。プロトコルは、ブロック３４において示されるように、第２の暗号文ＣＴ２の生成を含む。この暗号文ＣＴ２は、第１の暗号文ＣＴ１を生成するため設定プロトコル中で使用されるアルゴリズムを使用して、入力パスワードｐｗｄ’を暗号化することによりパスワード認証システム１中で生成される。アクセス制御サーバ２は、次いで第１の暗号文ＣＴ１および第２の暗号文ＣＴ２を使用して、ステップ３１で受け取ったユーザＩＤについて、入力パスワードｐｗｄ’がユーザ・パスワードｐｗｄに等しいかどうかをステップ３５で決定する。その（判定ブロック３６における「Ｙ」の）場合、アクセス制御サーバ２は、ステップ３７において示されるように、データベース５へのユーザのアクセスを許可し、ログイン・プロセスが完了する。入力パスワードｐｗｄ’が無効の（判定ブロック３６における「Ｎ」の）場合、アクセス制御サーバ２は、ステップ３８においてアクセスを拒否し、それに応じてユーザに通知することができる。この場合も、図３のブロックにより示されるステップの順序は、下の例によって説明されるように、様々な実施で変わる場合があることに留意されたい。
【００２６】
第１のパスワード認証プロトコルを実施するように適合されるパスワード認証システム１の第１の実施形態を、ここで、図４〜図９を参照して詳細に記載する。第１のパスワード認証プロトコルは、疑似乱数関数およびＸＯＲ（すなわち、モジュロ２加算）演算を使用する対称暗号法に基づく。図４は、この実施形態中のシステム・サーバの初期構成を図示する。ｎ個の認証サーバＳ１〜Ｓｎの各々は、ｋ１ｉおよびｋ２ｉによって表される２つの対称キーを記憶する（キーｋ２ｉは、ここで、上で論じた秘密サーバ値ｖｉに対応する。ここで使用されるキーｋ１ｉは、下でさらに論じられるように、任意の固有サーバＩＤによって置き換えることができる）。この実施形態では、アクセス制御サーバは、さらなる秘密値、ここでは、ｋＡＣによって表されるさらなる対称キーを記憶する。システムは、アクセス制御サーバ２と認証サーバ６との間、すなわち転送秘匿性を有する認証された信用できるチャネルを介する、安全な通信で動作する。これらの特性は、例えば、ＳＳＬ（Secure Sockets Layer）またはＴＬＳ（Transport LayerSecurity）プロトコルを使用して、知られている方式で達成することができる。
【００２７】
設定プロトコル実施形態＃１
図５および図６は、この実施形態における、設定プロトコルの連続するステージを示す。図５中の（ａ）において示されるように、ユーザがアクセス制御サーバ２にユーザ・コンピュータ３を介してユーザＩＤ  Ｕｉｄおよびユーザ・パスワードｐｗｄを提供すると、動作が開始される。ステップ（ｂ）では、アクセス制御サーバ２の制御ロジック８が、ユーザ・パスワードｐｗｄを疑似乱数関数ＰＲＦを介して暗号化する最初の疑似乱数値ｔｉｎを生成する。最初の疑似乱数値ｔｉｎは、アクセス制御サーバの秘密キーｋＡＣおよび（異なるユーザが同じパスワードを選ぶ場合に衝突を避けるため）ユーザＩＤ  Ｕｉｄも暗号化する。この例では特に、最初の疑似乱数値ｔｉｎは、次式として計算される。
ｔｉｎ←ＰＲＦ（ＰＲＦ（ｋＡＣ，Ｕｉｄ），ｐｗｄ）
ステップ（ｃ）では、アクセス制御サーバは、ユーザＩＤ  Ｕｉｄおよび最初の疑似乱数値ｔｉｎをｎ個の認証サーバＳ１〜Ｓｎに、通信インターフェイス７およびネットワーク４を介して送信する。値（Ｕｉｄ、ｐｗｄ）は、通信インターフェイス１１を介して各認証サーバ６の認証ロジック１２によって受け取られる。
【００２８】
図５に（ｄ）で示される次のステップでは、各サーバＳｉの認証ロジック１２は、最初の疑似乱数値ｔｉｎを使用して、それぞれの第１の疑似乱数値ｔ１ｉを生成する。この第１の疑似乱数値は、第２の疑似乱数値ｔ２ｉと第３の疑似乱数値ｔ３ｉのモジュロ２総和を含む。第２の疑似乱数値ｔ２ｉは、最初の疑似乱数値ｔｉｎを疑似乱数関数ＰＲＦを介して暗号化する。第２の疑似乱数値ｔ２ｉは、疑似乱数関数ＰＲＦを介して、それぞれの認証サーバについてのサーバＩＤも暗号化しており、サーバ・キーｋ１ｉは、ここで、サーバＩＤを構築する。第３の疑似乱数値は、疑似乱数関数ＰＲＦを介して、認証サーバＳｉの秘密値ｖｉ＝ｋ２ｉ、および（最初の疑似乱数値ｔｉｎの中に暗号化されるユーザ・パスワードに関連する）受け取ったユーザＩＤ  Ｕｉｄを暗号化する。特に、
【数３】
0006448668.tif 000004
であり、ここで、
【数４】
0006448668.tif 000005
は、モジュロ２加算（ＸＯＲ）演算を表す。この式の第２の項ｔ３ｉは、下でさらに論じられる、事前アップデート手順のための基準を提供する。
【００２９】
図６の中の（ｅ）において示されるように設定動作の次のステージでは、各認証サーバＳｉは、そのそれぞれの第１の疑似乱数値ｔ１ｉをアクセス制御サーバ２に送信する。アクセス制御サーバ２の制御ロジック８は、次いで、ｎ個の第１の疑似乱数値ｔ１ｉから、第１の暗号文ＣＴ１を生成する。この実施形態ではｔｐｗｄで表される、第１の暗号文ＣＴ１は、次式によって与えられる。
【００３０】
【数５】
0006448668.tif 000006
したがって、この実施形態中の第１の暗号文は、その各々が、疑似乱数関数を介して、それぞれの認証サーバの秘密値ｋ２ｉを暗号化するｎ個の第１の疑似乱数値ｔ１ｉのモジュロ２総和、および、次いで、ユーザ・パスワードｐｗｄをアクセス制御サーバ２の秘密値ｋＡＣに暗号化する最初の疑似乱数値ｔｉｎを含むことが理解されよう。
【００３１】
図６に示されるように、このユーザについての設定プロトコルの最後に、アクセス制御サーバ２は、そのメモリ９の中にユーザＩＤ  Ｕｉｄについての第１の暗号文ｔｐｗｄを記憶する。各認証サーバ６のメモリ１３は、Ｕｉｄ、およびユーザ・アカウントがブロックされるか（ｂ＝１）または開くか（ｂ＝０）を示す「アカウント・ブロック」ビットｂ＝｛０，１｝を記憶する。最初に、このビットはｂ＝０に設定される。個別の疑似乱数値ｔｉｎ、ｔ１ｉは、アクセス制御サーバ２、認証サーバ６のいずれによっても記憶されず、ユーザ・アカウントの設定で使用した後に削除される。
【００３２】
パスワード認証プロトコル実施形態＃１
ユーザ・アカウントについての後続のログインでは、アクセス制御サーバ２は、ｋ＝ｎ個の認証サーバ６と通信し、パスワード認証プロトコルを実施する。図７および図８は、この実施形態における、パスワード認証プロトコルの連続するステージを示す。図７中の（ａ）において示されるように、ユーザがユーザ・コンピュータ３を介してユーザＩＤ  Ｕｉｄを提供し、ユーザ・パスワードｐｗｄ’を入力すると、動作が開始される。値（Ｕｉｄ，ｐｗｄ’）を受け取ると、アクセス制御サーバ２は、ユーザ記録（Ｕｉｄ，ｔｐｗｄ）がメモリ９の中に存在するかどうかを検査する。存在しない場合、ログインは失敗する。存在する場合、後続の動作は、一般的に上の設定プロトコルに対応するが、入力パスワードｐｗｄ’を使用する。したがって、ステップ（ｂ）では、アクセス制御サーバ・ロジックは、入力パスワードｐｗｄ’を使用して、最初の疑似乱数値ｔｉｎに対応するテスト疑似乱数値ｔｔｅｓｔを生成する。テスト疑似乱数値ｔｔｅｓｔは、こうして、最初の疑似乱数値ｔｉｎと同様の方式で生成されるが、ユーザ・パスワードｐｗｄの代わりに入力パスワードｐｗｄ’を使用する。ステップ（ｃ）では、アクセス制御サーバは、テスト疑似乱数値ｔｔｅｓｔを、受け取ったユーザＩＤ  Ｕｉｄとともに、各認証サーバＳ１〜Ｓｎに送信する。この点において、ステップ（ｄ）に示されるように、各認証サーバ６は、スロットリング・メカニズムの動作に起因して、ユーザ・アカウントがブロックされている（すなわち、Ｕｉｄについてのフラグｂが、ｂ＝１に設定されている）かどうかを検査する。特に、各認証サーバ６の認証ロジック１２は、ユーザ・ログイン要求の頻度に基づいて、各ユーザＩＤ  Ｕｉｄについてスロットリング・メカニズムを実施するように適合される。様々なそのようなスロットリング手段が当技術分野で知られており、ここで、任意の好都合な技法を採用することができる。例えば、閾値の数より多いログイン要求が受け取られる、または所与の時間制限内に受け取られる場合に、アカウントをブロックする場合がある。代替または追加として、例えば要求の特定の数または速度を超える場合といった、不審なログイン挙動が識別される場合に、例えば、ユーザ要求をサービスするために、徐々に増加する時間制限を適用することができる。したがって、スロットリング・メカニズムは、ユーザ・アカウントを一時的または永続的にブロックすることができ、後者は、特定の実施に依存して、認可された関係者によるブロック解除またはユーザ・アカウントの更新を必要とする。いずれの場合にも、ユーザ・アカウントが任意の認証サーバ６においてブロックされる場合には、ログイン動作は失敗する。サーバがユーザ・アカウントをブロックしなかった場合、ログイン動作は進むことができる。
【００３３】
図８の中の（ｅ）において示されるように、認証プロトコルの次のステージでは、各認証サーバＳｉが、テスト疑似乱数値ｔｔｅｓｔを使用して、上の第１の疑似乱数値ｔ１ｉに対応するそれぞれのサーバ疑似乱数値ｔｓｉを生成する。すなわち、サーバ疑似乱数値ｔｓｉは、第１の疑似乱数値ｔ１ｉと同様の方式で生成されるが、最初の疑似乱数値ｔｉｎの代わりにテスト疑似乱数値ｔｔｅｓｔを使用する。したがって、
【数６】
0006448668.tif 000007
である。ステップ（ｆ）では、各認証サーバＳｉは、そのサーバ疑似乱数値ｔｓｉをアクセス制御サーバ２に送信する。ステップ（ｇ）では、アクセス制御サーバは、ｎ個のサーバ疑似乱数値ｔｓｉから第２の暗号文ＣＴ２を生成する。この実施形態ではｔｐｗｄ’で表される第２の暗号文ＣＴ２は、したがって、次式で与えられる。
【００３４】
【数７】
0006448668.tif 000008
入力パスワードが有効である（ｐｗｄ’＝ｐｗｄ）かどうかを決定するために、アクセス制御サーバ・ロジックは、ステップ（ｈ）で第１の暗号文と第２の暗号文を単に比較し、ｔｐｗｄ’＝ｔｐｗｄであるかどうかを決定する。有効である場合、ログインは成功し、アクセス制御サーバは、リソース５へのユーザ・アクセスを許可する。有効でない場合、ログインは失敗し、アクセスは拒否される。
【００３５】
上のパスワード認証プロトコルは、アクセス制御サーバと、全てでｎ個の認証サーバとの間で実行される。敵対者が短時間にわたるサーバの完全な制御を獲得して、破損したサーバによって保持される、秘密キーを含む全ての情報を横取りできる「スマッシュ・アンド・グラッブ（smash-and-grab）」攻撃は、認証プロセスのために全てのサーバの秘密キーが必要であるので、セキュリティを侵害することはない。パスワードは、少なくとも１つのアクセス制御サーバ２、認証サーバ６が正当のままである限り、安全である。例えば、ｎ−１個以下の認証サーバおよびアクセス制御サーバが敵対者により破損されるだけであれば、敵対者は、パスワードを再構築すること、または蓄積された認証データに対してオフライン攻撃を走らせることができない。敵対者は、全てのパスワードの組合せをテストするために、残りの正当なサーバからのサポートを必要とすることになり、これは、スロットリング・メカニズムに起因して、正当なサーバによって認識および防止されることになる。この実施形態では、セキュリティは、速くて簡単であり、実施効率の点でかなりの利点を提供する、対称暗号化を介してのみ達成される。さらに、システムは、ユーザ・コンピュータ３において、何ら専用のクライアント・ソフトウェアを必要とせず、ユーザ・コンピュータは、システムの動作のため、アクセス制御サーバと通信することだけを必要とする。システムは、サーバ・キーをアップデートするための、効率的な事前セキュリティ・メカニズムの実施も可能にする。このアップデート・メカニズムは、何らユーザとの相互作用を必要としない。アップデート・プロトコルは、ここで、図９を参照して説明される。
【００３６】
アップデート・プロトコル実施形態＃１
アクセス制御サーバ２および各認証サーバ６は、認証サーバがそのそれぞれの秘密値ｖｉ＝ｋ２ｉを新しい秘密値ｋ２’ｉにアップデートするアップデート・プロトコルを実施するように適合される。連続するサーバ汚染に対してセキュリティをさらに増強するために、アクセス制御サーバならびに全ての認証サーバによって周期的にプロトコルを走らせることができる。加えて、プロトコルを使用して、既知の侵害後に、完全なセキュリティを再確立することができる。アクセス制御サーバ２が汚染されている場合、アップデート・プロトコルは、全てのサーバを含むことになる。単一の認証サーバのみのセキュリティ侵害は、アクセス制御サーバおよび影響を受けた認証サーバによるプロトコルの実施を必要とする。以下では、単一の認証サーバについての動作に焦点を合わせ、これは、必要に応じて全てのｎ個のサーバに拡張することができる。
【００３７】
アクセス制御サーバは、記録がアップデートされるべき全てのＵｉｄ値を、認証サーバ６に送信する。認証サーバ６は、そのそれぞれの秘密値ｖｉ＝ｋ２ｉを新しい秘密値ｋ２’ｉにアップデートし、新しい秘密値ｋ２’ｉを使用して、各ユーザＩＤ  Ｕｉｄについて、上の第３の疑似乱数値ｔ３ｉに対応するアップデートした疑似乱数値ｔｕｉを生成する。すなわち、図９のステップ（ａ）において示されるように、認証サーバ６は、新しいキーｋ２’ｉを選択し、次いで、アップデートした疑似乱数値ｔｕｉを次式のように計算する。
ｔｕｉ←ＰＲＦ（ｋ２’ｉ，Ｕｉｄ）
認証サーバは、次いで、アップデートした疑似乱数値ｔｕｉと第３の疑似乱数値ｔ３ｉのモジュロ２総和を含む、アップデート値ｕｉを生成する。
【００３８】
【数８】
0006448668.tif 000009
ステップ（ｂ）では、認証サーバが、アクセス制御サーバ２に各Ｕｉｄについてのアップデート値ｕｉを送信する。ステップ（ｃ）では、アクセス制御サーバ２が、第１の暗号文ｔｐｗｄとアップデート値ｕｉのモジュロ２総和を生成することにより、各Ｕｉｄについて記憶された第１の暗号文ｔｐｗｄをアップデートする。新しい第１の暗号文は、こうして
【数９】
0006448668.tif 000010
で与えられる（全てのサーバ・キーがアップデートされる場合、したがって新しい第１の暗号文は、
【数１０】
0006448668.tif 000011
によって与えられることになる）。新しい第１の暗号文は、さらに、必要に応じて、
【数１１】
0006448668.tif 000012
によって定められる、値のモジュロ２総和である。古いランダム性ＰＲＦ（ｋ２ｉ，Ｕｉｄ）は、モジュロ２加算によって無効にされ、それによって、失われるｋ２ｉは無用になる。新しい第１の暗号文は、次いで、ユーザＩＤについてアクセス制御サーバによって記憶される。
【００３９】
第２のパスワード認証プロトコルを実施するように適合されるパスワード認証システム１の第２の実施形態を、ここで、図１０〜図１７を参照して詳細に記載する。第２のパスワード認証プロトコルは、準同形閾値暗号化方式に基づく。図１０は、この実施形態中のシステム・サーバの初期構成を図示する。アクセス制御サーバ２は、暗号化（公開／秘密）キー対の公開キーｔｐｋを記憶する。認証サーバＳｉによって記憶される秘密値ｖｉは、このキー対の秘密キーのそれぞれのキー共有ｔｓｋｉを含む。システムは、以前のように、アクセス制御サーバ２と認証サーバ６との間の安全な通信で動作する。
【００４０】
設定プロトコル実施形態＃２
図１１は、この実施形態でのユーザ・アカウントを作るための設定プロトコルのステップを示す。動作は、ステップ（ａ）において、ユーザＩＤ  Ｕｉｄおよびユーザ・パスワードｐｗｄのアクセス制御サーバ２への入力で開始される。ステップ（ｂ）では、アクセス制御サーバは、公開キーｔｐｋの下でパスワードｐｗｄを暗号化するために、準同形閾値暗号化アルゴリズムＴＥｎｃｔｐｋを使用して第１の暗号文ＣＴ１を生成する。閾値暗号化アルゴリズムＴＥｎｃｔｐｋは、下でより詳細に説明されるような復号のため、ｐ＜ｎ個の復号共有を必要とする。この実施形態でＣｐｗｄで表される第１の暗号文ＣＴ１は、したがって次式で与えられる。
Ｃｐｗｄ＝ＴＥｎｃｔｐｋ（ｐｗｄ）
暗号化アルゴリズムＴＥｎｃは準同形であり、すなわち、Ｃ１∈ＴＥｎｃｔｐｋ（ｍ１）およびＣ２∈ＴＥｎｃｔｐｋ（ｍ２）である場合、
【数１２】
0006448668.tif 000013
であるような、暗号文Ｃに有効な演算
【数１３】
0006448668.tif 000014
が存在する（
【数１４】
0006448668.tif 000015
を繰り返し適用することを表すために、例えば
【数１５】
0006448668.tif 000016
を表すためにＣ２といった、指数も使用することになる）。アクセス制御サーバは、ユーザＩＤ  Ｕｉｄについての第１の暗号文Ｃｐｗｄを記憶し、ステップ（ｃ）で、ＣｐｗｄをＵｉｄとともに、ｎ個の認証サーバＳ１〜Ｓｎに送信する。各認証サーバＳｉは、Ｕｉｄおよびこの例ではＣｐｗｄ、ならびに上に論じられたようなスロットリング・メカニズムのための（最初は、ｂ＝０に設定される）アカウント・ブロック・ビットｂを記憶する。
【００４１】
パスワード認証プロトコル実施形態＃２
ユーザ・アカウントについての後続のログインでは、アクセス制御サーバ２は、ｋ＝ｐ個の認証サーバ６と通信して、パスワード認証プロトコルを実施する。このプロトコルの簡単な実施を、最初に、図１２および図１３を参照して記載する。これらは、パスワード認証プロトコルの動作中の連続するステージを示す。図１２中の（ａ）において示されるように、アクセス制御サーバ２へユーザＩＤ  Ｕｉｄおよび入力パスワードｐｗｄ’を提供すると、手順が開始される。Ｕｉｄについてのユーザ記録がメモリ９中に存在する場合、ステップ（ｂ）で、アクセス制御サーバは、準同形暗号化アルゴリズムを使用して、入力パスワードから第２の暗号文ＣＴ２＝Ｃｐｗｄ’を生成する。この最初の例では、Ｃｐｗｄ’によって表される第２の暗号文は、次式で与えられる。
Ｃｐｗｄ’＝ＴＥｎｃｔｐｋ（ｐｗｄ’）
ステップ（ｃ）では、次いで、アクセス制御サーバが、演算
【数１６】
0006448668.tif 000017
を介して、第２の暗号文Ｃｐｗｄ’と受け取ったＵｉｄについて記憶した第１の暗号文Ｃｐｗｄを組み合わせることにより、テスト値Ｃｔｅｓｔを生成する。この最初の例では、演算
【数１７】
0006448668.tif 000018
は、除算を表し、次式である。
Ｃｔｅｓｔ＝Ｃｐｗｄ／Ｃｐｗｄ’
上に説明したような暗号化アルゴリズムの準同形性に起因して、入力パスワードｐｗｄ’が受け取ったＵｉｄに関連するユーザ・パスワードｐｗｄに等しい場合、テスト値が１という所定の値に復号される。次に、ステップ（ｄ）では、アクセス制御サーバは、テスト値ＣｔｅｓｔをＵｉｄとともに、ｋ＝ｐ個の認証サーバ６に送信する。ｐ個の認証サーバは、ここでは例えば、応答する、またはｎ個の認証サーバ６の間で負荷分散法を実施する最初のｐ個のサーバとして、任意の好都合な方式で選択することができる。
【００４２】
図１３の中の（ｅ）において示されるように、この認証プロトコルの次のステージでは、各認証サーバＳｉは、上で論じたように、サーバ・ロジックにより実施されるスロットリング・メカニズムによって、ユーザ・アカウントがブロックされた（Ｕｉｄについてｂ＝１）かどうかを検査する。ユーザ・アカウントが任意の認証サーバ６においてブロックされる場合には、ログイン動作は失敗する。ｐ個のサーバのうちのどれもがユーザ・アカウントをブロックしなかった場合、ログイン動作は進むことができる。この場合、ステップ（ｆ）において示されるように、各認証サーバＳｉは、そのそれぞれのキー共有ｔｓｋｉを使用して、テスト値Ｃｔｅｓｔに応じて復号共有ｄｉを生成する。この簡単な例では、サーバは、そのキー共有ｔｓｋｉを使用してＣｔｅｓｔを単に復号し、ステップ（ｇ）でアクセス制御サーバにＵｉｄについての結果として得られる復号共有ｄｉを送信する。ステップ（ｈ）では、アクセス制御サーバは、テスト値が１に復号されるかどうか、すなわち次式が成り立つかどうかを、ｋ個の復号共有ｄ１…ｄｋから決定することにより、入力パスワードがユーザ・パスワードに等しいかどうかを決定する。
ＴＤｅｃ（Ｃｔｅｓｔ，ｄ１…ｄｋ）＝１
ここで、ＴＤｅｃは、下でさらに論じられるような、閾値暗号化方式のための復号アルゴリズムである。等しい場合、アクセスは許可される。ｐｗｄ’≠ｐｗｄである場合、復号結果は乱数となり、アクセスは拒否されることになる。
【００４３】
第２のパスワード認証プロトコルのより詳細な実施を、ここで、図１４〜図１６を参照して記載する。この例は、上の簡単な例を超える様々な実施を組み込み、スロットリングが、以前のユーザ・ログイン試行が成功であったかどうかを考慮に入れることを可能にする。次のプロトコルの理解を助けるために、最初に、閾値復号方式の簡潔な記載が与えられる。
【００４４】
閾値暗号化
閾値暗号化方式は、４つのアルゴリズム（ＥＫＧｅｎ、ＴＥｎｃ、ＰＤｅｃ、ＴＤｅｃ）からなる。キー生成アルゴリズムＥＫＧｅｎは、ｔが許容される悪意のあるサーバの最大値を表す入力（１λ，ｔ，ｎ）をとり、マスタ公開キーｔｐｋおよびｎ個の部分的なキー（キー共有）対（ｔｐｋ１，ｔｓｋ１）、…、（ｔｐｋｎ，ｔｓｋｎ）を出力する。暗号化アルゴリズムＴＥｎｃは、公開キーｔｐｋおよびメッセージｍを入力すると、暗号文Ｃを出力する。部分的な復号アルゴリズムＰＤｅｃは、秘密キー共有ｔｓｋｉ、公開キー共有ｔｐｋｉ、および暗号文Ｃを入力すると、復号共有ｄｉを出力する。閾値復号アルゴリズムＴＤｅｃは、Ｃ、ｔｐｋおよびｋ≧ｔ＋１個の復号共有ｄ１…ｄｋを入力すると、プレーンテキストｍまたは⊥（エラー）を出力する。様々なそのような閾値暗号化方式が知られており、例示的な構造は、Y. Desmedt, Y. Frankel. “ThresholdCryptosystems”, Desmedt & Y. Frankel, CRYPTO 1989に記載されている。
【００４５】
上に記載された設定プロトコルの前に、アクセス制御サーバ２が、全てのｎ個の認証サーバ６についての閾値キーを作る。すなわち、アクセス制御サーバ２は、下のキーを作る。
（ｔｐｋ，（ｔｐｋ１，ｔｓｋ１），…，（ｔｐｋｎ，ｔｓｋｎ））←ＥＫＧｅｎ（１λ，ｔ，ｎ）
秘密キー共有ｔｓｋｉは、各サーバＳｉに暗号化されて送信される。マスタ公開キーｔｐｋおよび公開キー共有ｔｐｋｉは、システム中で公開されて知られている。加えて、各認証サーバ６は、下で論じられるように、スロットルされるアカウントについてのブロック解除テストで使用されることになる、メッセージ認証方式（ＭＡＣ）のためのキーｋｉも作る。
【００４６】
ユーザ・アカウントについての設定プロトコルは、図１１を参照して記載されるとおりである。パスワード認証プロトコルでは、アクセス制御サーバ２が、ｐ＝ｔ＋１個の認証サーバ６と通信し、ここでｔは、上の閾値暗号化方式によって規定されるとおりである。パスワード認証プロトコルは、図１４〜図１６の中で、その動作が図の左に示されるアクセス制御サーバ２と、その動作が右に示される各認証サーバ６との間の相互作用として示される。
【００４７】
図１４中の（ａ）において、ユーザがアクセス制御サーバ２にＵｉｄおよび入力パスワードｐｗｄ’を送信すると、動作が開始される。Ｕｉｄについてユーザ記録が存在する場合、アクセス制御サーバは、準同形暗号化アルゴリズムを使用して、入力パスワードから第２の暗号文ＣＴ２＝Ｃｐｗｄ’を計算して処理を続ける。この例では、第２の暗号文Ｃｐｗｄ’は、入力パスワードの関数Ｆに準同形暗号化アルゴリズムを適用することにより生成され、ここでＦ（ｘ）＝１／ｘである。したがって、
Ｃｐｗｄ’＝ＴＥｎｃｔｐｋ（１／ｐｗｄ’）
である。このことによって、認証プロトコル中で、悪意のあるアクセス制御サーバが第１の暗号文Ｃｐｗｄを再び第２の暗号文Ｃｐｗｄ’として単純に使用することはできないことが確実になる。次いで、演算
【数１８】
0006448668.tif 000019
を介してＣｐｗｄ’とＣｐｗｄを組み合わせることによって、テスト値Ｃｔｅｓｔが生成され、ここでこの場合、
【数１９】
0006448668.tif 000020
は乗算を表す。
【００４８】
【数２０】
0006448668.tif 000021
上に説明したような暗号化アルゴリズムの準同形性に起因して、ｐｗｄ’＝ｐｗｄである場合、テスト値が再び１に復号される。次に、ステップ（ｃ）では、テスト値ＣｔｅｓｔがユーザＩＤについて第２の暗号文Ｃｐｗｄ’ならびに第１の暗号文Ｃｐｗｄを含むことを立証するために、アクセス制御サーバ２は、
【数２１】
0006448668.tif 000022
で示す暗号証明Πを生成する
（ここで、「ＮＩＺＫ」とは「ノンインタラクティブ・ゼロナレッジ(non-interactivezero-knowledge)」を意味し、「ゼロナレッジ」は、証明器が、立証されることが必要である以上のものは何も明らかにしないことを示し、「ノンインタラクティブ」は、証明の検証が、証明器と検証器との間の相互作用を必要としないことを意味する。証明を実施することが当業者にとって明らかであるので、そのような証明は、知られた方式および好適なプロトコルで実施することができる)。特に、証明Πは、テスト値Ｃｔｅｓｔが、Ｕｉｄについての正しい第１の暗号文Ｃｐｗｄ、および、入力パスワードの関数Ｆから正しく計算される第２の暗号文Ｃｐｗｄ’を含むことの検証を可能にする。ステップ（ｄ）において、次いでアクセス制御サーバは、ユーザＩＤおよび証明Πをｋ＝ｔ＋１個の認証サーバ６にテスト値Ｃｔｅｓｔとともに送信する。
【００４９】
図１５を参照して、各認証サーバＳｉは、ステップ（ｅ）で（Ｕｉｄ，Π，Ｃｔｅｓｔ）を受け取り、次いでステップ（ｆ）で、Ｕｉｄについてのアカウントがブロックされないこと、すなわちｂ＝０であることを検査する。ステップ（ｇ）では、サーバＳｉは、（Ｕｉｄ，Π，Ｃｔｅｓｔ）が、サーバＳｉに局所的に記憶された値（Ｕｉｄ，Ｃｐｗｄ）に関して正しいことを検査するために、証明Πを検認する。テスト・ステップ（ｆ）または（ｇ）のいずれかが失敗する場合、（下で論じられるブロック解除プロトコルの動作を条件として）ユーザ・ログインは失敗する。両方のテストが合格すると仮定すると、サーバＳｉは、ステップ（ｈ）に進み、テスト値のそれぞれの乱数指数ｒｉ乗を含む、乱数化値Ｃｉ
【数２２】
0006448668.tif 000023
をランダムに選択されたｒｉについて計算する。
各サーバは、次いでＣｉを記憶し、ステップ（ｉ）でハッシュ値ｈｉをアクセス制御サーバに送信することによりこの値に委ねる。ここで、ｈｉ←Ｈ（Ｃｉ，Ｕｉｄ）であり、Ｈは、暗号化ハッシュ関数を表す。ステップ（ｊ）で、アクセス制御サーバが全てのｋ＝ｔ＋１個のハッシュ値を受け取ると、アクセス制御サーバは、それらを（ｈ１，ｈ２，…，ｈｔ＋１）として、全てのサーバＳ１〜Ｓｋに転送する。ｋ個のサーバは、それらの乱数化値Ｃｉをステップ（ｋ）でアクセス制御サーバに送信することにより、それらの乱数化値Ｃｉをここで明らかにする。ステップ（ｌ）で、アクセス制御サーバが全てのｋ＝ｔ＋１個の乱数化値Ｃｉを受け取ると、アクセス制御サーバはそれらを（Ｃ１，Ｃ２，…，Ｃｔ＋１）として全てのサーバＳ１〜Ｓｋに転送する。
【００５０】
図１６を参照して、各認証サーバＳｉは、ステップ（ｍ）で、（Ｃ１，Ｃ２，…，Ｃｔ＋１）を受け取り、ステップ（ｎ）で、ｈｉ＝Ｈ（Ｃｉ，Ｕｉｄ）であるかどうか検査する。そうである場合、ステップ（ｏ）で、サーバＳｉは、演算
【数２３】
0006448668.tif 000024
（ここでは、乗算）を介して、ｋ＝ｔ＋１個の組の乱数化値Ｃｉを組み合わせて、乱数化暗号文ＣＲを生成し、そのそれぞれのキー共有ｔｓｋｉを使用して、乱数化暗号文ＣＲから復号共有ｄｉを生成する。
【００５１】
【数２４】
0006448668.tif 000025
ｄｉ←ＰＤｅｃｔｓｋｉ（ｔｐｋｉ，ＣＲ）
ステップ（ｐ）では、サーバＳｉは、（ｄｉ，ｓｉ）をアクセス制御サーバ２に送信し、ここで、メッセージ認証方式のため、そのキーｋｉを使用し、ｓｉ＝ＭＡＣｋｉ（Ｕｉｄ，ＣＲ）である。アクセス制御サーバが、全てのｋ＝ｔ＋１個のサーバの、復号共有およびＭＡＣｓ（ｄｉ，ｓｉ）を受け取ると、アクセス制御サーバは、閾値復号アルゴリズムＴＤｅｃを使用して、復号共有から、乱数化暗号文ＣＲが１に復号されるかどうか、したがってｐｗｄ’＝ｐｗｄであるかどうかを決定する。これは、テスト値Ｃｔｅｓｔ＝１である場合に乱数化値Ｃｉ＝１であり、それによって、準同形性に起因して、ｐｗｄ’＝ｐｗｄである場合、乱数化暗号文ＣＲがテスト値と同じ値すなわち１に復号されるので、後続する。したがって、ステップ（ｑ）では、アクセス制御サーバ２は、
【数２５】
0006448668.tif 000026
および
ｘ←ＴＤｅｃｔｐｋ（ＣＲ，｛ｄｉ｝ｉ＝１，…，ｔ＋１）
を計算する。
ｘ＝１である場合、パスワードが一致してアクセスが許可される。その他の場合、ログインは失敗する。
【００５２】
上のプロセスの中で、アクセス制御サーバは、ある期間、全ての復号共有およびＭＡＣ値（ｄｉ，ｓｉ）を保持し、ログインが成功だったことの、認証サーバに対するその後の証明を可能にする。特に、上のプロトコル中のステップ（ｈ）〜（ｐ）は、認証サーバが、ユーザ・アカウントをブロックする前に、前回のログイン試行中の入力パスワードの正しさを検査することを可能にする。Ｕｉｄについての後続のログインにおけるスロットリング・メカニズムに起因しアカウントをブロックする前に、認証サーバは、アクセス制御サーバと通信して、「ブロック解除プロトコル」を実施する。このブロック解除プロトコルを、ここで、図１７を参照して記載する。
【００５３】
ブロック解除プロトコル
ブロック解除プロトコルの中で、アクセス制御サーバ２と認証サーバ６により実行される動作が、図１７の左と右にそれぞれ示される。サーバＳｉが、あまりに多いログイン試行に気づき、Ｕｉｄについてのユーザ・アカウントをブロックしようとしている場合、サーバは、前回のログインが成功であった、すなわち乱数化暗号文ＣＲが１に復号されたという証明を要求する、証明要求をアクセス制御サーバに送信する。図１７のステップ（ａ）中でそのような要求を送信すると、最後のログインが成功だった場合、アクセス制御サーバは、値（Ｕｉｄ，ＣＲ，ｓｉ，｛ｄｉ｝ｉ＝１，…，ｔ＋１）を取り出し、これらの値をステップ（ｂ）で認証サーバに送信する。最後のログインが不成功だった場合、アクセス制御サーバは、代わりに値（Ｕｉｄ，ｆａｉｌ）を送信する。ステップ（ｃ）では、サーバＳｉは、ｓｉ＝ＭＡＣｋｉ（Ｕｉｄ，ＣＲ）およびＴＤｅｃｔｐｋ（ＣＲ，｛ｄｉ｝ｉ＝１，…，ｔ＋１）＝１であるかどうかを検証する。両方のテストが成功する場合にのみ、サーバは、Ｕｉｄについてのアカウントを開いたままにする。こうしてアカウント・ブロック・ビットｂは、ステップ（ｄ）の中で適切に設定され、プロトコルが完了する。
【００５４】
上のシステムは、パスワード検査ならびにログイン頻度に基づくスロットリングを可能にすることが理解されよう。加えて、この実施形態のｎ個の認証サーバは、ｎ個のキー共有ｔｓｋｉをアップデートするための、共有更新プロトコルを実施するようにさらに適合される。これは、事前秘密共有技法を使用する、知られている方式で実施することができ、その例は、“Proactive Secret Sharing Or: How to Cope With Perpetual Leakage”、Herzberg et al,. CRYPTO 1995に記載される。そのような技法を使用して、認証サーバ６は、それらの秘密キー共有のための共有更新プロトコルを、周期的に、または敵対者が秘密キー共有を学習した可能性があるときはいつでも、あるいはその両方で走らせることになる。古い共有は、各更新後に削除される。これによって、事前セキュリティは、一方では、新しい秘密キー共有ｔｓｋｉが依然としてメイン公開キーｔｐｋと「適合性があり」、他方では、敵対者が獲得した可能性がある古い秘密共有と「適合性がない」ことを確実にする。
【００５５】
上の実施形態では、最大でｔ個のサーバ（およびＤＳ）が破損されるだけであれば、それらのサーバを制御する敵対者は、例えばＣｐｗｄに対してオフライン攻撃を搭載することによって、パスワードを取り出すことができない。これは、敵対者が保持する閾値秘密キーの共有が最大でｔ個の場合にＣｐｗｄを復号できないことを保証する、閾値暗号化方式のセキュリティから得られる。ＤＳ内部者攻撃に対するセキュリティが実現される。というのは、ログイン・プロトコル期間に、サーバは、（値１の）パスワード指数を復号するだけであり、元のパスワードｐｗｄまたはパスワード試行ｐｗｄ’を復号しないからである。したがって、悪意のあるＤＳは、暗号化したパスワードの復号を単純にトリガできず、各パスワード推測のために完全なログイン・プロトコルを走らせなければならなくなる。正当なサーバ中のスロットリング・メカニズムに起因して、そのような攻撃は、数回の試行後に認識され、ブロックされる。この閾値ベースの方式は、最大ｔ個のサーバの長期の破損を許容さえし、これによってサーバは、異なる信頼するドメインに外部委託することができる。ｎ個の認証サーバのうちの単にｔ＋１個がパスワード認証のために必要であるので、ログインは特に効率的である。以前のように、システムの動作は、ユーザに対して完全に透過的であり、ユーザは、全てのプロトコルでアクセス制御サーバ２と通信するのみでよい。
【００５６】
例示的な実施形態を記載してきたが、多くの変更形態および修正形態を想定することができる。例えば、上の第１の実施形態の他の実装形態では、ｔ２ｉについての上の式中のキーｋ１ｉは、ＰＲＦ（ｋ１ｉ，  Ｕｉｄ）で置き換えることができる。また、システム・セキュリティは、この特定の値に依存しないので、キーｋ１ｉは、任意の固有のサーバＩＤで置き換えることができ、暗号学的に強い秘密である必要はない。また、第２の実施形態中の閾値暗号化方式は、所望の場合、復号のためにｔ＋１＝ｎ個の共有を必要とすることができ、このことにより、パスワード認証のためにｎ個の認証サーバ６を全て使用することになる。
【００５７】
アクセス制御サーバ２により保護されるリソースは、一般的に、例えばアプリケーション、サービス、データ、デバイス、ネットワークまたは任意の他の設備もしくは設備の組合せといった、ユーザ・アクセスが制限される任意のリソースを含むことができることが理解されよう。また、上の実施形態の中のサーバの機能性は、一般的に、単一の機械で、または複数の機械にわたって分散して実施することができる。上の設定プロトコルにより生成されるユーザ・アカウント・データが様々なサーバの中に事前にロードされる実施形態も、想定することができる。
【００５８】
本発明の範囲から逸脱することなく、記載した例示的な実施形態に、多くの他の変更および修正を行うことができる。
【００５９】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるため、コンピュータ可読プログラム命令を有する、１つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【００６０】
コンピュータ可読記憶媒体は、命令実行デバイスにより使用するための命令を保持および記憶できる有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子的記憶デバイス、磁気的記憶デバイス、光学的記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例の、網羅的でないリストは以下、すなわち、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、携帯型コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、命令を記録させたパンチカードまたは溝の中の隆起構造などの機械的に符号化されたデバイス、および上記の任意の好適な組合せを含む。本明細書で使用するコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝播する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通って伝送される電気信号など、一時的な信号自体であると解釈されるべきでない。
【００６１】
本明細書で記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワーク、あるいはそれらの組合せといったネットワークを介して、外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含むことができる。各コンピューティング／処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、ネットワークから、コンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体中で記憶するために、コンピュータ可読プログラム命令を転送する。
【００６２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手順型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれる、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはソース・コードもしくはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にはユーザのコンピュータ上および部分的にはリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続することができ、または、外部コンピュータに（例えば、インターネット・サービス・プロバイダを使用してインターネットを通して）接続をすることができる。いくつかの実施形態では、本発明の態様を実施するために、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、電子回路を個別化するために、コンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行することができる。
【００６３】
本発明の態様は、本発明の実施形態に従う、方法、装置（システム）およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して本明細書で記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方中のブロックの組合せは、コンピュータ可読プログラム命令により実施することが可能であることが理解されよう。
【００６４】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令を記憶させたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体中に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに特定のやり方で機能するように指示するものであってもよい。
【００６５】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実施するように、コンピュータ実施されるプロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させるものであってもよい。
【００６６】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態に従うシステム、方法、およびコンピュータ・プログラム製品の可能な実施の、アーキテクチャ、機能性、および動作を図示する。この点に関連し、フローチャートまたはブロック図中の各ブロックは、指定された論理的機能を実装するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の部分を表すことができる。いくつかの代替実装形態において、ブロック内に言及される機能は、図中で言及される順序から外れて生じる場合がある。例えば、含まれる機能性に依存して、連続して示される２つのブロックを、実際には、実質的に同時に実行することができ、またはブロックを、場合によって逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方中のブロックの組合せは、指定される機能もしくは行為を実施する専用ハードウェアベースのシステムにより実施でき、または専用ハードウェアとコンピュータ命令の組合せにより実行できることも留意されよう。
【図１】
0006448668.tif 000032
【図２】
0006448668.tif 000033
【図３】
0006448668.tif 000034
【図４】
0006448668.tif 000035
【図５】
0006448668.tif 000036
【図６】
0006448668.tif 000037
【図７】
0006448668.tif 000038
【図８】
0006448668.tif 000039
【図９】
0006448668.tif 000040
【図１０】
0006448668.tif 000041
【図１１】
0006448668.tif 000042
【図１２】
0006448668.tif 000043
【図１３】
0006448668.tif 000044
【図１４】
0006448668.tif 000045
【図１５】
0006448668.tif 000046
【図１６】
0006448668.tif 000047
【図１７】
0006448668.tif 000048