説明

セキュア認証の暗号方法および暗号装置

限られた計算リソースを有するモバイル通信デバイスを認証するのに使用するのに特に適するセキュア認証プロトコルを開示する。例示的実施形態では、ネットワークベース通信システムに、クライアントデバイスと少なくとも2つのサーバが含まれる。第1共有および第2共有が、クライアントデバイスに関連する第1パスワードから生成され、それぞれ第1サーバおよび第2サーバに保管される。クライアントデバイスは、それに関連する追加情報を、第1サーバおよび第2サーバの少なくとも1つにサブミットする。第1共有および第2共有のそれぞれは、追加情報と第1パスワードの対応をそれだけから判定することが実行不可能であるという特性を有する。第1サーバおよび第2サーバは、めいめいの第1共有および第2共有を使用して、追加情報と第1パスワードの前記対応を集合的に判定する。有利なことに、対応判定は、クライアントデバイスとサーバの一方または両方とのさらなる相互作用を必要とせずに行うことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的には、コンピュータネットワークまたは他の通信媒体を介するセキュア通信を提供する暗号技法に関し、具体的には、セキュアローミングまたはモバイル通信デバイスを伴う他の認証応用での使用に特に適する暗号技法に関する。
【背景技術】
【0002】
ユーザのモビリティの高まりおよび様々なコンピューティングデバイスの使用の増加が、セキュアローミングへの幅広い関心に動機を与えてきた。特に重要なのが、ユーザが、短い鍵または他の「弱い」パスワードを使用して、信頼されるサーバとのセキュア機能性を達成する能力である。ローミングユーザの非常に一般的な目的は、信頼されるサーバから「軽量」デバイスすなわち限られた処理能力、メモリ、または他の計算リソースを有するデバイスに認証をダウンロードすることである。そのようなデバイスに、例えば、携帯電話機、携帯情報端末(PDA)、ゲーム機などが含まれる。そのようなデバイスのユーザは、その代わりに、デジタル署名および公開鍵ベース暗号化解除などの集中型計算または注意深い鍵ストレージを必要とする暗号動作を信頼されるサーバに委任することを求める場合がある。ローミングユーザに関するもう1つの重要な必要は、パスワード回復またはリセットの必要である。
【0003】
ローミングユーザは、そのすべてが必ずしも同一のソフトウェアまたはコンフィギュレーションを有しない、任意の数の異なるデバイスのいずれでも使用することができる。スマートカードおよび類似する鍵ストレージデバイスは、モバイルユーザのセキュリティへの手際良く調和された手法を提供するが、適当に開発されたサポートするインフラストラクチャがない。現在、例えば、特に米国で、非常に少数のコンピューティングデバイスに、スマートカードリーダが含まれる。さらに、多くのユーザが、物理的認証トークンが不便であることに気付いている。また、トークンを失ったか忘れたローミングユーザを認証する必要がある場合がある。現在、これは、一般に、ユーザに1組の「ライフクエスチョン(life question)」すなわち、個人情報またはプライベート情報に関する質問への回答を提供するように求めることによって達成される。これらの観察から、認証の形として、覚えやすい短い情報または他の弱いパスワードをローミングユーザが使用できるようにする必要が強調される。
【0004】
多くの基本的ローミングプロトコルで、パスワードは、中央データベースに保管され、その結果、サーバが危険にさらされた場合の1まとめにしての盗難に脆弱である。そのようなプロトコルは、しばしば、SPAKA(secure password-authenticated key agreement)に基づく。通常のSPAKAプロトコル実装では、クライアントおよびサーバが、パスワードを共有し、このパスワードが、暗号的に強いセッション鍵がこの2つの当事者によって秘密に共有されることの相互保証を達成するのに使用される。弱いパスワードの問題に対処するために、SPAKAプロトコルは、アクティブな攻撃者が存在する場合であっても、パスワード情報を漏らさないように構成されている。信頼されるサーバから認証を得るための認証手段として使用される時に、SPAKAプロトコルは、通常は、オンライン推測攻撃を防ぐために、スロットリングまたはロックアウト機構を用いて増補される。多くのローミング認証提案に、認証を得るための挺子の支点として、または自立した認証プロトコルとしてのSPAKAプロトコルの使用が含まれる。
【0005】
しかし、上述したように、ほとんどのSPAKAプロトコルの設計は、サーバ自体が深刻な脆弱性を表すという基本的な問題を見逃している。SPAKAプロトコルは、検証するサーバがユーザパスワードまたは派生材料への平文アクセスを必要とするので、サーバが危険にさらされることが、潜在的にパスワードのデータベース全体の露出につながる。多くのSPAKAプロトコルでは、パスワードがいわゆる「ソルト(salt)」と組み合わせてまたは累乗された形で保管されるが、攻撃者は、オフライン辞書攻撃を開始する可能性を有する。さらに、これらのシステムは、サーバ破壊に対する抵抗を提供しない。認証サーバの制御を得た攻撃者は、成功裡のログインの試みになりすますことができる。
【0006】
普通のSPAKAベース技法に関する上記の問題に対処するために、FordおよびKaliskiは、複数のサーバを用い、少なくともいくつかのサーバが危険にさらされないままである場合にパスワードプライバシが保たれる、パスワード「強化(hardening)」方式の集合を提案した(例えば、参照によって本明細書に組み込まれる非特許文献1参照)。このシステムでは、クライアントが、それぞれがサーバ秘密を使用してパスワードをブラインド(blind)変換する1つまたは複数の強化サーバとの対話を介して、弱いパスワードを強いパスワードに拡張する。
【0007】
具体的な例として、FordおよびKaliskiのシステムの1バージョンのクライアントは、各強化サーバSからのパスワードPに対するブラインド関数評価σまたは「共有(share)」とみなすことができるものを入手する。問題の関数は、各サーバおよびユーザアカウントに一意の秘密に基づく。クライアントは、秘密の集合{σ}を単一の秘密σに組み合わせ、このσは、例えば認証の暗号化解除、ユーザ自身の認証など、セキュア認証応用でユーザが使用できる強い鍵として働く。ブラインド関数評価方式の適当な選択を与えられれば、このプロトコルのサーバは、情報理論の意味で、パスワードPに関する情報を学習しないものとすることができる。
【0008】
FordおよびKaliskiのシステムは、閾値設定に拡張され、幅広く包含的な攻撃モデル(例えば、参照によって本明細書に組み込まれる非特許文献2参照)での厳格なセキュリティ保証を有するがより複雑なプロトコルにつながった。具体的に言うと、P.Mackenzie他は、n個のうちのk個のサーバと通信するクライアントが、パスワードベース認証によってk個のサーバのそれぞれとのセッション鍵を確立でき、k−1個のサーバが共謀する場合であっても、クライアントのパスワードがプライベートのままであるプロトコルを実証した。このシステムを単純に活用して、セキュアダウンロード可能認証を達成することができる。
【0009】
しかし、Mackenzie他のシステムは、複数のタイプのかなりのオーバーヘッドを負わせる。第1に、サーバは、共有されるグローバル鍵およびローカル鍵も所有しなければならず、合計4n+1個の公開鍵を所有しなければならない。さらに、クライアントは、n+1個の証明された公開鍵を保管しなければならない。クライアントは、セッションを開始するごとに、サーバごとに複数のべき剰余(modular exponentiation)を実行しなければならず、サーバに対する計算負荷も高い。最後に、Mackenzie他のプロトコルは、計算的におよび実装に関しての両方で、かなり複雑である。その一方で、Mackenzie他のプロトコルは、明らかに、random oracleモデルでのDecision Diffie−Hellman仮定の下でのセキュリティの厳格な証明を与えられた最初のプロトコルである。
【0010】
長所にもかかわらず、上で説明した既知の技法は、特に軽量デバイスを介して通信される弱いパスワードを使用するセキュアで効率的な形でユーザが自分自身を認証できるようにすることに関して、ローミングユーザのセキュリティの必要を完全には満足していない。
【0011】
【非特許文献1】W. Ford and B.S. Kaliski Jr., "Server-Assisted Generation of a Strong Secret from a Password," Proceedings of the IEEE 9th International Workshop on Enabling Technologies (WETICE), NIST, Gaithersburg MD, June 2000
【非特許文献2】P. Mackenzie et al., "Threshold Password-Authenticated Key Exchange," Research Papers on Strong Password Authentication, http: //www.integritysciences.com/links.html, 2002
【非特許文献3】A.J. Menezes et al., Handbook of Applied Cryptography, CRC Press, 1997
【非特許文献4】V. Shoup. "A Proposal for an ISO Standard for Public Key Encryption (Version 2.1)," http: //shoup.net/papers/, December 20, 2001
【非特許文献5】M. Jakobsson and A. Juels, "Mix and Match: Secure Function Evaluation Via Ciphertexts," ASIACRYPT '00, LNCS No. 1976, T. Okamoto, editor, Springer-Verlag, pp. 162-177, 2000
【非特許文献6】P.C. van Oorschot and M.J. Wiener, "On Diffie-Hellman Key Agreement with Short Exponents," EUROCRYPT 1996, pp. 332-343
【非特許文献7】M. Blum, "Coin flipping by telephone," Proc. of 24th IEEE Compcon, pp. 133-137, 1982
【非特許文献8】A. Shamir, "How to Share a Secret," Communications of the Association for Computing Machinery, 22(11): 612-613
【非特許文献9】P. Paillier, "Public-Key Cryptosystems Based on Composite Degree Residuosity Classes," EUROCRYPT '99, LNCS No. 1592, J. Stern, editor, pp. 223-238, 1999
【非特許文献10】R. Cramer et al., "Proofs of Partial Knowledge and Simplified Design of Witness Hiding Protocols," CRYPTO '94, LNCS No. 839, Y.G. Desmedt, editor, pp. 174-187, Springer-Verlag, 1994
【非特許文献11】A. de Santis et al., "On Monotone Formula Closure of SZK," FOCS '94, IEEE Press, pp. 454-465, 1994
【非特許文献12】E. Fujisaki and T. Okamoto, "Statistical Zero Knowledge Protocols to Prove Modular Polynomial Relations," CRYPTO '97, LNCS No. 1294, B. Kaliski, editor, Springer-Verlag, pp. 16-30, 1997
【非特許文献13】I. Damgard and E. Fujisaki, "An Integer Commitment Scheme Based on Groups with Hidden Order," IACR eArchive, 2001
【非特許文献14】D. Chaum, "Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms," Communications of the ACM, 24(2): 84-88, 1981
【非特許文献15】A. Juels, "Targeted Advertising ... and Privacy Too," RSA-CT '01, LNCS No. 2020, D. Naccache, editor, pp. 408-424, 2001
【非特許文献16】J. Furukawa and K. Sako, "An Efficient Scheme for Proving a Shuffle," CRYPTO '01, LNCS No. 2139, Springer-Verlag, pp. 368-387, 2001
【非特許文献17】A. Neff, "A Verifiable Secret Shuffle and its Application to E-voting," ACM CCS '01, ACM Press, pp. 116-125, 2001
【非特許文献18】M. Ohkubo and M. Abe, "A Length-Invariant Hybrid Mix," ASIACRYPT '00, LNCS No. 1976, T. Okamoto, editor, pp. 178-191, 2000
【非特許文献19】M. Jakobsson and A. Juels, "An Optimally Robust Hybrid Mix Network," Principles of Distributed Computing (PODC) '01, ACM Press, pp. 284-292, 2001
【非特許文献20】D.J. Bernstein, http: //cr.yp.to/syncookies.html, 2002
【非特許文献21】A. Juels and J. Brainard, "Client Puzzles: A Cryptographic Countermeasure Against Connection Depletion Attacks," Networks and Distributed System Security, S. Kent, editor, pp. 151-165, 1999
【非特許文献22】http: //addurl.altavista.com/sites/addurl/newurl
【非特許文献23】D.P. Jablon, "Password Authentication Using Multiple Servers," Topics in Cryptology - CT-RSA 2001, LNCS No. 2020, D. Naccache, editor, Springer-Verlag, pp. 344-360, 2001
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の目的は、限られた計算リソースを有するモバイル通信デバイスでの使用に特に適するセキュア認証プロトコルを実施する方法および装置を提供することである。
【課題を解決するための手段】
【0013】
本発明の一態様によれば、ネットワークベースのシステムに、クライアントデバイスおよび少なくとも2つのサーバが含まれる。第1共有および第2共有が、クライアントデバイスに関連する第1パスワードから生成され、それぞれ第1サーバおよび第2サーバに保管される。第1サーバおよび第2サーバの少なくとも1つへの、クライアントに関連する追加情報のサブミットの際に、第1共有および第2共有のそれぞれが、第1パスワードへの追加情報の対応だけから判定することが実行不可能であるという特性を有し、第1サーバおよび第2サーバは、各々の第1共有および第2共有を使用して、第1パスワードへの追加情報の前記対応を集合的に判定する。この配置の長所は、クライアントデバイスとサーバの一方または両方とのそれ以上の対話を必要とせずに、対応判定を行えることである。もう1つの長所は、クライアントデバイスが、重要な暗号計算を実行する必要がないことである。
【0014】
本発明のもう1つの態様によれば、追加情報に、例えば、クライアントデバイスに関連する第2パスワードに対する第3共有および第4共有を含めることができる。追加情報は、第1サーバおよび第2サーバが第1共有および第3共有の関数として第1サーバによって生成される第1量を第2共有および第4共有の関数として第2サーバによって生成される第2量と比較することによって、処理される。第1サーバおよび第2サーバは、第1量と第2量が実質的に同等と判定される場合に、追加情報を真正として受け入れる。
【0015】
本発明のセキュア認証プロトコルの他の態様は、例えば、サーバによって計算される上記の量の同等性テスト、1つまたは複数のサーバでのユーザ識別の匿名保護、複雑さを減らされた変形、nが2を超えるnサーバ変形、および多項式ベース認証に関する。
【0016】
本発明のセキュア認証プロトコルは、前に説明した従来の技法に関連する問題の1つまたは複数を克服し、軽量デバイスを介して通信される弱いパスワードを使用してセキュアで効率的な形でユーザがユーザ自身を認証できるようにする。本発明の上記および他の特徴および長所は、添付図面および下の詳細な説明からすぐに明白になる。
【発明を実施するための最良の形態】
【0017】
本明細書で、クライアントがネットワークを介して1つまたは複数のサーバと通信する、例のネットワークベース通信システムに関して本発明を説明する。しかし、本発明が、これまたは他の特定のシステム構成での使用に制限されないことを諒解されたい。
【0018】
本明細書に記載のある従来の暗号技法に関する追加の詳細は、例えば参照によって本明細書に組み込まれる非特許文献3にある。
【0019】
例示的システム
図1は、本発明のセキュア認証技法を示すのに使用される、単純化されたネットワークベース通信システム100を示す。システム100には、クライアント102、第1サーバ104R、および第2サーバ104Bが含まれ、これらのすべてが、ネットワーク106を介して通信するように構成される。図を単純にするためおよび表記の都合上、第1サーバ104Rおよび第2サーバ104Bを、本明細書でそれぞれ「Red」サーバおよび「Blue」サーバと称し、本発明によるセキュア認証プロトコルの一部を実施する例のサーバ対をこれに含める。サーバ104の特定の1つをRedサーバ、他方をBlueサーバとする表記は、任意である。というのは、これらのサーバの役割を、本明細書に記載のプロトコルで逆転できるからである。
【0020】
図1には、単一のクライアントだけが示されているが、システム100の実用的実施形態が、実質的に多数のクライアントをサポートすると期待される。同様に、図1にはサーバの単一の対だけが示されているが、本発明によるシステムに、多数のそのようなサーバの対ならびにサーバの他の配置、例えば一般的な数n個のサーバ(n≧2)を含めることができる。したがって、本発明は、特定の個数のクライアントデバイスまたはサーバデバイスに制限されず、システム内のサーバデバイスの特定のペアリングまたは他の配置を必要としない。
【0021】
クライアント102は、携帯電話機、PDA、ゲーム機などの軽量デバイスを表すことができる。クライアント102は、デスクトップパーソナルコンピュータ(PC)、ラップトップPC、ミニコンピュータ、ワークステーション、メインフレームコンピュータ、有線電話機、ファクシミリ機、テレビジョンセットトップボックス、または本発明のセキュア認証技法から利益を得ることができる他の情報処理デバイスを表すことができる。したがって、クライアント102を、サーバとして実施することもできる。言い換えると、本発明は、ローミング軽量クライアントデバイスがサーバにそれ自体を認証する応用での使用に特に適するが、それ自体がサーバであるデバイスを含むすべてのタイプの情報処理デバイスのセキュア認証に使用することができる。
【0022】
クライアント102を、本明細書でユーザと称する場合もある。用語「ユーザ」は、クライアントデバイス、デバイスを使用するか他の形でデバイスに関連する人、またはその両方を含むものとして理解されたい。したがって、ユーザによって実行されるものとして本明細書に記載の動作は、デバイス、デバイスを使用するか他の形でデバイスに関連する人、またはユーザおよびデバイスの両方によって実行することができる。同様に、デバイスに関連するパスワードは、デバイスのユーザのパスワードとすることができる。この場合に、パスワードは、それぞれが異なるパスワードを有する複数のユーザにサービスするデバイスの場合のように、ユーザによるデバイスへのパスワードの入力の際に、デバイスに一時的に関連付けられるものとすることができる。
【0023】
サーバ104Rおよび104Bは、本明細書に記載のセキュア認証機能を実行するようにプログラムされた、それ以外は普通のサーバとして、または他のタイプの適当にプログラムされた情報処理デバイスとして、実施することができる。
【0024】
ネットワーク106は、インターネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、衛星網、電話網、ケーブルネットワーク、あるいは上記および他のタイプのネットワークの様々な部分または組合せを表すことができる。
【0025】
前述から明白なように、図1に示されたシステム100は、より一般的に、互いに通信するように構成され、デバイスの所与の1つが他のデバイスに対してそれ自体を認証する、少なくとも3つの処理デバイスを有するシステムと見ることができる。したがって、図1のデバイスについて示された特定の「クライアント」および「サーバ」のラベルは、本発明の制限ではなく、例示とみなされなければならない。
【0026】
図2は、図1のシステムの処理デバイス102、104R、または104Bの所与の1つの1つの可能な実施形態を示す。この実施形態のデバイスに、メモリ202およびネットワークインターフェース204に結合されたプロセッサ200が含まれる。これらのデバイス要素は、全体としてまたは部分的に、普通のマイクロプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路(ASCI)、または他のタイプの回路ならびにそのような回路要素の部分または組合せとして実施することができる。当業者が諒解するように、本発明によるセキュア認証プロトコルは、少なくとも部分的に、デバイスメモリ202に保管され、対応するプロセッサ200によって実行される1つまたは複数のソフトウェアプログラムの形で実施することができる。メモリ202は、本発明のセキュア認証プロトコルに関連する計算または他の動作の実行に使用される情報を保管するのにも使用される。
【0027】
前述したように、本発明は、その一態様に従って、図1のシステム100のクライアント102などの1つのデバイスが、システム100のサーバ104Rおよび104Bなどの他のデバイスの対にそれ自体を認証するセキュア認証技法を提供する。本発明の第1の例示的実施形態による例の2サーバセキュア認証プロトコルを、下で図3から図6に関して説明する。計算の複雑さを減らされた代替の2サーバ実施形態を、図7および図8に関して説明する。その後、マルチサーバ変形および多数の他の変形を説明する。
【0028】
本明細書で説明する例示的実施形態での本発明は、それ自体がクライアントおよびサーバの相互認証を提供しないという点で、前に説明した従来のSPAKAプロトコルとは異なる。その代わりに、本発明は、従来の技法に関連する計算的な重荷が回避されるように、クライアントが分散された形で複数のサーバにそれ自体を認証する特に効率的な技法を提供する。具体的に言うと、従来の技法に関する本発明の重要な特徴は、クライアントデバイスによる集中型の暗号計算を本質的に必要としないように実施できることである。もう1つの長所は、クライアントデバイス側の特殊目的ソフトウェアを必要としない形で実施でき、したがって、ハイパーテキストマークアップ言語(HTML)フォームまたは他の類似する機構を使用する現在のパスワードサブミット技法と完全に互換であることである。例示的実施形態では、サーバ側認証を仮定するが、これは、例えば、当業者が諒解するように、サーバ側証明書の提示、正しいURL(uniform resource locator)へのルーティング、または他の技法、ならびにその組合せによって実施することができる。
【0029】
2サーバセキュア認証プロトコル
図3は、本発明の第1の例示的実施形態による、2サーバセキュア認証プロトコルを示す。この実施形態では、図1のクライアント102に関連するユーザが、サーバ104Rおよび104Bの対に対して自分自身を認証する。上で注記したように、ユーザによって実行されるものとして示された動作は、少なくとも部分的に、関連するクライアントデバイスによって実行される。図3には、ユーザがパスワードPを2つのサーバ用の共有に分割する登録部分300と、後続認証のためにパスワードP’を提示する際に、ユーザが2つのサーバにP’の新しいランダムな共有を提供する認証部分302が含まれる。この処理の認証部分では、パスワードP’が、登録されたパスワードPと実質的に等しいかどうかを判定する。具体的に言うと、この例示的実施形態の処理の認証部分の一部として、サーバは、P=P’であるかどうかを学習するが、サーバの1つが不正を試みる場合であっても意味のある追加情報を学習しない形で、2つの共有PおよびP’を比較する。
【0030】
パスワードP’は、本明細書でより一般的に「追加情報」と称するものの例であり、この例示的実施形態では、パスワードPの登録の後にユーザまたは関連するデバイスによってサブミットされる情報を表す。しかし、本明細書で使用される時の用語「追加情報」を、すべてのタイプの情報とすることができることを理解されたい。
【0031】
図3の例示的実施形態は、パスワードPの共有のそれぞれが、所与の共有だけからパスワードPとのパスワードP’の対応を判定することが実行不可能であるという特性を有する。上で示したように、認証部分302で、2つのサーバが、めいめいの第1共有および第2共有を使用して、パスワードPとのパスワードP’の対応を集合的に判定する。この文脈で使用される用語「対応」は、例えば、制限なしに、第1の情報と第2の情報の完全なまたは正確な対応、あるいは、例えば情報が単純にランダムに選択される場合に存在するものを超える第1の情報と第2の情報の間に存在する関係を示す、部分的対応を含むことが意図されている。
【0032】
所与のパスワードを、図3のプロトコルの登録部分および認証部分へのサブミットの前に、従来の技法を使用してクライアントデバイスによって前処理できることに留意されたい。そのような前処理動作の結果の出力も、本明細書ではパスワードと称する。
【0033】
したがって、本明細書で使用する用語「パスワード」は、例えば、制限なしに、実際の単語、数のシーケンス、文字または他のシンボル、2進コード、暗号鍵、個人識別番号(PIN)、秘密、パスコード、ライフクエスチョンに対する回答またはそのような回答の組、ユーザプロファイルまたはその一部、RSA SecurID(登録商標)トークンに関連する1つまたは複数の値、または類似物などの、認証に使用されるのに適するデータを含むように広義に解釈されることが意図されている。
【0034】
用語「共有」は、例えば、制限なしに、パスワードの一部を含むことが意図されている。
【0035】
セキュア認証プロトコルの登録部分300に、ステップ304、306、および308が含まれる。Hが、大きい群(例えば160ビット次数の)であり、+が群演算子であるものとする。fが、衝突のないハッシュ関数f:{0,1}*→Hであるものとする。ステップ304で、ユーザが、ランダムな群要素R∈Hを選択する。ユーザは、ステップ306で、Pblue=f(P)+RとしてBlueサーバ104Bの共有Pblueを計算し、Redサーバ104Bの共有PredにRをセットする。ステップ308で、共有PblueおよびPredを、めいめいのBlueサーバおよびRedサーバに送信する。各サーバの共有が、個別にはパスワードPに関する情報を提供しないことを観察されたい。
【0036】
このプロトコルの上で説明した登録部分をシミュレートすることによって、単純な形でレガシデータを共有に変換でき、サーバにロードできることに留意されたい。そのようなレガシデータは、一般に、これと同一のシミュレーション手法を介して、他のローミング認証プロトコルの共有に変換することもできる。
【0037】
セキュア認証プロトコルの認証部分302には、ステップ310から320が含まれる。ステップ310で、ユーザが、新しいランダム群要素R’∈Hを選択し、P’blue=f(P’)+R’を計算し、P’redにR’をセットし、P’blueをBlueサーバ104Bに送信し、P’redをRedサーバ104Rに送信することによって、パスワードP’に基づく認証を開始する。
【0038】
RedサーバおよびBlueサーバは、次のように、登録中に供給された共有を認証のために供給された共有と組み合わせる。ステップ312で、Blueサーバが、Qblue=Pblue−P’blue=(f(P)−f(P’))+(R−R’)を計算し、ステップ314で、Redサーバが、同様にQred=Pred−P’red=R−R’を計算する。P=P’の場合すなわち、ユーザが、正しいパスワードを提供した場合に、f(P)とf(P’)が打ち消しあい、その結果、Qblue=Qredになることを観察されたい。そうでない場合に、fの衝突しにくさによって、結果はQblue≠Qredになる。したがって、認証のためにサブミットされたユーザパスワードをテストするために、2つのサーバは、ステップ316に示されているように、好ましくは追加情報をまったく明らかにせずに、Qblue=Qredであるかどうかをテストするだけでよい。ステップ316のテストで、Qblue=Qredであることが確かめられる場合には、ステップ318に示されているように、ユーザパスワードP’が受け入れられ、認証が完了し、そうでない場合には、ステップ320に示されているように、パスワードが拒絶され、認証が失敗する。
【0039】
前述したように正確な同等性ではなく、実質的な同等性に基づいて真正性を判定するように、本発明の他の実施形態を構成できることに留意されたい。
【0040】
上述したように、関数fは、パスワードを大きい群に写像する。実際には、出力が指定された群に含まれるように適当に修正されたハッシュ関数を用いて達成することができる。例えば、Hが、ビット単位XOR演算の下の160ビットストリングの群である場合に、160ビットハッシュ関数が適当である。その代わりに、Hが、160ビット要素を有する乗法群である場合に、ハッシュ関数の出力にあるモジュラリダクション(modular reduction)を適用する必要が生じる場合がある。Hが、ハッシュ関数の出力より長い要素(例えば1024ビット要素)を有する群である場合に、ハッシュ関数の出力の拡張が必要になる場合がある。この拡張を達成する形の1つが、RSA LaboratoriesのPKCS(Public−Key Cryptography Standard)#1、Version 2.1、June 2002(http://www.rsasecurity.com/rsalabs/pkcs/で入手可能)のMGF1などのマスク生成関数を適用することである。
【0041】
パスワードの他に、他の入力を関数fに与えることができる。この入力に、辞書攻撃に対する対抗手段として普通に行われているように、秘密でないソルト値を含めることもできる。秘密でないソルト値は、登録部分300中にクライアントまたはサーバの一方によって生成し、サーバの一方でユーザに関する他の情報と共に保管し、認証部分302中にクライアントに供給することができる。入力に、ユーザの名前およびサーバの名前などの他の固定パラメータを含めて、関数fの出力をこれらのパラメータに関連付けることもできる。
【0042】
前述では、関数fが1方向であることを仮定した。しかし、関数fが可逆であるシステムを構成することも可能である。そのような構成の長所は、パスワードP(または他の秘密)を、共有PblueおよびPredから再計算できることである。この場合に、関数fは、パスワードPを、可逆の形で群要素に写像する。Hが、ビット単位XOR演算の下の160ビットストリングの群であり、Pが160ビットより短い場合に、単純なパディングフォーマットが適当である。
【0043】
実際には、クライアントは、RedにRおよびR’などの値を供給することに関する複数のオプションを有する。一例として、クライアントは、Redの公開鍵の下でRedと共に確立したプライベートチャネルを介してRedに直接に値を配布することができる。もう1つの例として、クライアントは、プライベートチャネルを介して「ベース」値を確立することができ、ここで、クライアントとRedは、1方向関数を介してベース値からRまたはR’などの1つまたは複数の値を導出する。この後者のオプションは、クライアントとRedが所与のセッション中に1つのベース値を確立するだけでよく、このベース値からRおよびR’などの複数の値を導出できるという長所を有する。例えば、複数のライフクエスチョンがある場合に、1方向関数への入力にクエスチョンインデックスを含めることによって、異なる値を同一のベース値から導出することができる。クライアントが、所与のセッション中に1つのライフクエスチョンに複数の回答を行う場合に、1方向関数への入力に試行インデックスを含めることによって、試行ごとに異なる値を導出することができる。具体的に言うと、i番目の質問のj番目の試行の値R’ijを、ベース値、インデックスi、およびjを1方向関数に適用することによって得ることができる。
【0044】
Redが、RSA公開鍵(n,e)を有し、nが剰余、eが公開べきである場合に、ベース値を確立する方法の1つは、RSA−KEM技法(例えば、参照によって本明細書に組み込まれる非特許文献4参照)の変形を介することである。この変形では、クライアントが、0とn−1の間のランダムな整数rを生成し、Redの公開鍵を用いてrを暗号化して、c=r mod nを入手し、cをRedに送信する。ベース値は、1方向関数を介して整数rから導出することができる。Redは、その秘密鍵を用いてcを暗号化解除して、rを回復し、同様にベース値を導出する。その代わりに、整数r自体を、ベース値とみなすことができる。他の公開鍵暗号に基づく類似する技法が可能である。
【0045】
前述の例の全てで、派生される値をパラメータに関連付けるのに有用と一般に考えられる、RedおよびBlueの名前、タイムスタンプ、Redの公開鍵、暗号文cなどの他のパラメータを、1方向関数への入力に含めることができる。
【0046】
図3のプロトコルで、クライアントが、意味のある暗号計算を実行する必要がないことに留意されたい。したがって、このプロトコルは、軽量クライアントデバイスと共に使用することによく適する。しかし、クライアントが、ある暗号計算を実行して、RedサーバおよびBlueサーバとのセキュア接続を確立できることに留意されたい。例えば、周知のSSL(secure sockets layer)手法を、クライアントとサーバの間の接続を確立するのに使用する場合に、使用されるRSA暗号化に、少数の剰余乗算が含まれる。さらに、クライアントは、ステップ310で共有をサブミットしたならば、このプロセスの認証部分にこれ以上関係する必要はない。RedサーバおよびBlueサーバが、一緒に、認証のためにサブミットされたパスワードの正しさを判断する。成功裡の認証の場合に、これらのサーバの一方または両方が、ユーザの代わりに1つまたは複数のポスト認証アクションを実行することができる。例えば、各サーバが、秘密鍵の共有をユーザに送信することができ、2つのサーバが、単一の認証の別々の部分を発行することができ、あるいは、サーバが、協同で、デジタル署名または認証を作ることができる。
【0047】
ステップ316での同等性テストを、これから詳細に説明する。ステップ316の同等性テストを実行するのに使用される、例の同等制定ストプロトコルを、図4に関して説明する。同等性テストでは、次数qの第2の大きい群Gを利用し、これに関して、乗算が群演算を表すものとする。群Gは、その上での離散対数問題が困難な群でなければならない。2つのサーバが、前もってこの群について同意し、Gの生成元gに合意し、検証したと仮定する。また、衝突のない写像w:H→Gを使用する。値QblueおよびQredの同等性テストについて、考え方は、2つのサーバがDiffie−Hellman鍵交換の変形を実行することである。しかし、この変形では、値QblueおよびQredが、Diffie−Hellman鍵によって「マスク」される。
【0048】
結果の同等性テストプロトコルは、PETプロトコル(例えば、参照によって本明細書に組み込まれる非特許文献5参照)の技術的単純化とみなすことができる。しかし、この同等性テストプロトコルは、PETでのコンポーネントの通常の対ではなく、El Gamal暗号の1つのコンポーネントだけを使用する。同等性テストプロトコルは、EKE(encrypted key exchange)などのSPAKAプロトコルとの類似性も共有する。例えば、同等性Qblue=Qredを、共有される秘密鍵をもたらすものとみなし、非同等性を、2つのサーバの異なる鍵をもたらすものとみなすことができる。しかし、本発明では、このプロトコル実行から共有鍵を導出することはせずに、最小の情報漏れで2つの秘密値の同等性をテストすることを求める。
【0049】
この同等性テストプロトコルでは、さらに、2つのサーバの間のプライベートで相互に認証されるチャネルを前提とする。この例ではBlueサーバと仮定される、サーバの特定の1つが、「開始サーバ」として指定される。同等性テストプロトコルは、開始サーバが、所与のユーザアカウントに関する複数同時の認証セッションを確立しようとする場合に、他方のサーバが拒絶するように構成される。具体的に言うと、図4のプロトコルで、Redサーバは、最初のフローが以前に確立されたアクティブな認証セッションと同一のユーザアカウントを指定するセッションの開始を拒絶する。さらに、どちらのサーバも、所与のユーザアカウントに対する単一のアクティブ認証セッションだけを許容する。単一アカウントに関する並列ログイン要求を許容する代替手法は、可能であるが、より複雑である。Blueサーバが、Redサーバがユーザから対応する認証要求を受信していないユーザUに関するRedサーバを伴う認証要求を開始する場合に、Redサーバは、ある適当な遅延の後に、その認証を拒絶する。
【0050】
blue,Uが、BlueサーバがユーザUについてテストしたい現在の共有組合せを表し、Qred,Uが、ユーザUとの類似するRedサーバ共有組合せを表すものとする。どちらのサーバについても、「拒絶」が、ユーザUから来たと主張する認証セッションの拒絶および終了を表し、「受け入れ」が、ユーザUから発したものとしてのセッションの受け入れを表すものとする。
【0051】
図4のプロトコルならびに本明細書に記載の他のプロトコルでは、サーバが、
【0052】
【数1】

【0053】
によって表される数学的関係の検証に失敗する場合に、そのサーバは、プロトコル失敗が発生したと判定する。
【0054】
が、ある集合からの一様でランダムな選択を表すものとする。大括弧によって、望まれる場合にBlueによるプロトコル開始の前にRedが行うことができる計算を表す。Zred、Y、Y’、Hredなどの添字redまたは1が、Redによって計算されるか受け取られる値を表し、Zblue、Y、Hblueなどのblueまたは0が、Blueによって計算されるか受け取られる値を表すものとする。見た目の明瞭さのために、これらの表記の形を交替させる。hが、1方向ハッシュ関数を表すものとし、この関数は、random oracleによるセキュリティ分析のためにモデリングすることができる。システムに、複数のBlueサーバおよび/またはRedサーバを含めることができる場合に、ハッシュHredに、サーバ識別も含まれなければならない。‖は、ストリング連結を表すものとする。
【0055】
説明を単純にするために、図4の例の同等性テストプロトコルについて、特定の群Gを固定する。具体的に言うと、Gは、素数p=2q+1である、Zの次数qの素数部分集合であると考える。この特定の群の使用は、図4のプロトコルで、(1)送信される値の操作での群へのメンバシップを保証するための偶数のべきeおよびeの使用と、(2){2,...,p−2}でのメンバシップ検査によって反映されている。群の他の選択に関して、操作される値の群メンバシップを、当業者にすぐに明白になる他の手段によって保証することができる。すべての算術が、pを法とする剰余系で実行される。
【0056】
図4を参照すると、Blueは、集合{2,4,...,q−1}からランダムにeを選択し、A=w(Qblue,U)および
【0057】
【数2】

【0058】
を計算する。Redは、集合{2,4,...,q−1}からランダムにeを選択し、
【0059】
【数3】

【0060】
を計算する。BlueはYおよびUをRedに送信し、Redは、B=w(Qred,U)、Y1=BY’、および
【0061】
【数4】

【0062】
を計算する。Redは、Zred≠0であるかどうかを検査し、Zred、Y、Y、およびUのストリング連結にハッシュ関数hを適用したものとしてHredを計算する。Redは、YおよびHredをBlueに送信し、Blueは
【0063】
【数5】

【0064】
を計算する。Blueは、Zblue≠0であるかどうかを検査し、ZblueおよびHredのストリング連結にハッシュ関数hを適用したものとしてHblueを計算する。Blueは、HblueをRedに送信する。Blueは、Hredが、Zblue、Y、Y、およびUのストリング連結にハッシュ関数hを適用した結果と同等である場合に受け入れ、そうでない場合に拒絶する。Redは、Hblueが、ZredとHredのストリング連結にハッシュ関数hを適用した結果と同等である場合に受け入れ、そうでない場合に拒絶する。
【0065】
図4のプロトコルでのpの適切な選択は、他の値を使用することができるが、1024ビット素数である。より短いべきeおよびe、例えば160ビットを選択することによって、より高い効率を達成することができる。その代わりに、群Gの他の選択によって、より高い効率をもたらすことができる。例えば、1つの可能性が、楕円曲線上の適当な群としてのGの選択である。これは、べき演算よりはるかによい効率をもたらし、群メンバシップの効率的なテストも有する。Hについて、例えば160ビットストリングからなり、群演算子としてXORを有する群を単純に選択することができる。これは、登録または認証するクライアントによる剰余算術を必要としないという長所を有する。多数の他の手法が、GまたはHの選択について可能である。
【0066】
群Hから群Gへの写像wについて、上のハッシュ関数およびマスク生成関数を用いる技法を適用することができる。Gが、楕円曲線群である場合に、点への識別子の最初の写像は、群要素をもたらさない場合がある(すべての点が曲線上にあるわけではない)が、当技術分野で周知のように、群要素がもたらされるまで、通常は少ない回数だけ、変形の写像を適用することができる。
【0067】
BlueサーバとRedサーバの間の情報の流れのすべてが、クライアントを通過できることに留意されたい。これらの流れに対する保全性保護は、両方のサーバが正当である場合の悪意のあるクライアントに対する保護のために働く。流れの暗号化は、匿名の暴露に対して保護するように働く。流れは、やはり暗号化および保全性保護の使用を伴って、下で説明する代替の複数サーバ変形でもクライアントを通過することができる。
【0068】
図3および4の2サーバプロトコルで、クライアントと2つのサーバの間の完全にプライベートなチャネルが前提になっていることにも留意されたい。
【0069】
セキュリティに関して、2つのサーバの1つの制御を有する敵対者およびユーザの任意の集合が、正当なユーザのアカウントを攻撃する際に、本質的にランダムなオンライン推測よりよく行動できないことを示すことができる。そのような推測を伴う攻撃は、標準的なスロットリング機構、例えば3回の不正な推測の後に所与のアカウントをシャットダウンすることによって、阻止することができる。上で注記したハッシュ関数に関するrandom−oracle仮定および適当なモデルを使用して、上で説明したシステムのセキュリティを、群Gの計算的Diffie−Hellman仮定に縮小することができる。
【0070】
単純なサーバ故障に対する堅牢性は、RedサーバおよびBlueサーバの複製を介して単純に達成することができる。
【0071】
図3および4の2サーバプロトコルのセキュリティは、RedおよびBlueの両方を危険にさらす攻撃者の能力に依存する。したがって、サーバ構成の不均一性が、ここで検討される重要な実用的セキュリティである。最も単純なレベルで、RedサーバおよびBlueサーバは、異なるオペレーティングシステムを実行することができ、これによって、自称攻撃者が直面する技術的障害の範囲が広がる。この方向でのさらなるステップは、インサイダ攻撃またはソーシャルエンジニアリング攻撃のリスクを最小にすることを期待して、RedおよびBlueを異なる組織に配置することであろう。
【0072】
組織にまたがるセキュリティの分散は、危険にさらすことに関する法的責任および財政的責任を柔軟に割り振ることができる、リスク管理の魅力的なモデルを提供する。具体的に言うと、これを、2つのサーバの一方、例えばBlueサーバが、サービスプロバイダによって操作され、他方のサーバ、Redサーバが、「プライバシプロバイダ」と呼ぶことができるものによって操作される、プライバシアウトソーシングの一形態とみなすことができる。プライバシプロバイダは、プライバシ暴露に関連する法的責任および財政的責任の大きい部分を引き受ける、セキュリティ維持などの主要な重荷を引き受ける意志を持ち、特殊な専門技術を有する組織とすることができる。
【0073】
サービスプロバイダが、大きい潜在的なモバイルユーザ人口に魅力的な形でこの手法を採用するためには、2つの顕著な要件がある。第1は、一般性すなわち、クライアントが特殊目的ソフトウェアをインストールする必要がないことである。具体的に言うと、クライアントは、HTMLおよびJava(登録商標)などの標準ブラウザコンポーネントによってシステムとインターフェースできなければならない。第2の要件は、匿名性すなわち、プライバシプロバイダ、この例ではRedが、アカウントに関連するユーザ名への明示的アクセスを得ることができてはならないことである。最小限でも、クライアントは、匿名ですなわち、真のアカウント名またはIPアドレスにリンク可能でない識別子を用いて、このサーバと相互作用できなければならない。これによって、Redのオペレータの側でのアカウント情報の不正使用に対する技術的障害がもたらされる。Redが危険にさらされた場合のアカウント識別子の露出を制限するためにも、この形で匿名を使用することが有用である。
【0074】
匿名性要件、特にRedがクライアントのIPアドレスを学習してはならないと言う概念に鑑みて、プライバシプロバイダは、バックエンドサーバすなわち、クライアントではなく他のサーバだけと相互作用するサーバとしてRedを操作することが好ましい。この構成のもう1つの動機づけが、Redのセキュリティに対する強調である。アウトソーシングモデルでは、責任およびセキュリティの主要な重荷が、Redにかかり、プライバシプロバイダは、セキュリティ専門技術の主要なソースである。したがって、Redをインターネット上のオープンコミュニティから隔離し、その相互作用を1つまたは複数のBlueサーバに制限することが望ましい。この構成は、サービス拒否攻撃へのRedの露出を最小にするのにも役立ち、この攻撃は、それ自体のユーザベースにより精通したBlueが、それを処理するためのよりよい備えを有する。
【0075】
この文脈で、RedおよびBlueを、その代わりに、エンタープライズモデルに従って構成することができ、その場合に、RedおよびBlueが、エンタープライズ内の異なるグループによって制御されるか、適当な形で分離されることに留意されたい。
【0076】
一般性の要件は、セキュア認証プロトコルのソフトウェアが、多分ブラウザプラグインまたは独立の実行可能ファイルとして一部のクライアントにインストールされるが、Java(登録商標)アプレットの形で使用可能でもある必要があることを示す。このアプレットは、Blueによって、またはその代わりに追加サーバによって、分配することができる。このアプレットに、図3の基本的な2サーバプロトコルのクライアント部分を実行するソフトウェアが含まれ、Redの公開鍵も含めることができる。この公開鍵は、Blueを介するRedへのプライベートチャネルを確立するためにも働く。
【0077】
Blueによるそのようなアプレットの配布は、Blueが危険にさらされた場合に、Blueが悪いアプレットを配布する可能性があるという直接の問題を示す。具体的に言うと、能動的な形でBlueを危険にさらした攻撃者は、そのサーバに、Redの誤った公開鍵を含むか、実際にRed宛の共有を暗号化しないアプレットをこのサーバに配布させることができる。信頼されるソフトウェアの問題は、ローミングクライアントがオンザフライでそのようなソフトウェアをインストールする必要がある場合に、SPAKAプロトコルにも存在する。アプレットまたは他のソフトウェアにデジタル署名することができるが、ほとんどのユーザは、ブラウザが提供する検証ツールを使用して、関連するコードに署名する証明書の正しさを検査する方法を理解している可能性が低い。そうではなく、発明人は、この問題に関する次の観察を行った。第1に、Blueのコアコンポーネントを能動的に危険にさらすことは、受動的に危険にさらすことよりはるかに難しい可能性が高い。また、悪意のあるコード変更を検出するように特に設計されたシステム保全性チェッカツールを利用することができる。さらに、この形でBlueを危険にさらすという攻撃者の作業は、原理的にすべての観察者がアプレットを検査することによって危険にさらされたことを検出できるという点で、従来の暗号設定での能動的な危険にさらす作業より困難である。したがって、プライバシプロバイダは、Blueとの認証要求を周期的に開始して、その保全性を監視することができる。もう1つの相補的な手法は、Redが、Blueがサービスするコードのハッシュを検証するソフトウェアを、関心を持つクライアントに配布することである。
【0078】
より深刻な問題が、匿名性要件に伴って生じる。この要件を満たすために、Blueは、固定された匿名Vに従って、Redに所与のユーザ名Uを識別しなければならない。この場合に可能な攻撃の1つが、Redが、識別子Uの下で認証するクライアントを装い、Blueがどの関連する匿名Vをアサートするかを見ることである。これによって、Redは、UとVの間のリンケージを知ることができる。このタイプの攻撃に対する防御の実用的な方法は、事実上ない。その代わりに、Redの側でのそのような振る舞いに先んずるために、社会的要因に頼る。例えば、サービスプロバイダとして、アカウント名のリストを保持するのはBlueであり、その結果、Redが、これらをひとまとめにして累積することは困難である。さらに、評判の低下と言う危険に対して、Redは、匿名に対する攻撃を開始することを嫌わなければならない。もちろん、匿名の使用は、Redを受動的に危険にさらすことが、真のアカウント識別子を露出しないという点で、まだ有益である。
【0079】
しかし、より深刻なのが、壊されたBlueサーバによる、大量のオンライン偽匿名攻撃の可能性である。具体的に言うと、Blueは、それが選んだパスワードの辞書を用いて、偽の匿名
【0080】
【数6】

【0081】
の下でRedの架空のアカウントの任意の大きい集合を作成することができる。Blueは、匿名
【0082】
【数7】

【0083】
に対する所与のクライアントによる認証要求を再演することができる。一致を達成するまで再演を繰り返すことによって、Blueは、アカウントUに関する秘密情報を知る。この攻撃は、検出されずに無限に進行できるという点で特に深刻である。この種の挙動は、例えば不正アプレットの配布を伴う攻撃と異なって、公に検出可能ではない。
【0084】
この問題に対処するために、Blueに、秘密の静的な1方向関数fを使用して、ユーザ識別子を匿名に写像することを要求することができる。Blueは、クライアントと共に、正しい匿名をアサートすることを、認証要求のすべてについてRedに証明する。この証明戦略を使用するプロトコルを設計する際の課題の1つが、認証された後になるまで、クライアントがアカウントの匿名を知ることを許可できないことである。そうしないと、Redが、クライアントを装うことによって匿名を学習することができる。第2の課題は、Red、Blue、および特にクライアントにとって軽量な証明プロトコルの設計である。図5に、そのような匿名証明プロトコルの例を示す。この例のプロトコルは、クライアントによる集中型の暗号計算を必要とせず、1つのモジュラインバージョン(modular inversion)および複数の対称鍵計算だけを必要とする。
【0085】
図5の匿名証明プロトコルの基礎は、Decision Diffie−Hellman問題が困難である次数q’の群G’でのf:m→mの形のべき剰余を含む1方向関数である。1方向関数のこの選択は、複数の特に好ましい特徴を有する。第1に、別個のログに対する標準的な非対話型ゼロ知識証明を使用することによって、fの適用に関するステートメントを証明することが可能である。さらに、関数fは、乗法準同形を有するすなわち、f(a)f(b)=f(ab)である。fを秘密に保つために、値xが、Blueによって秘密に保たれる整数であることが好ましい。y=gが、Redに配布される対応する公開鍵を表すものとする。
【0086】
べき剰余演算で、短いべきを使用できることに留意されたい(例えば、参照によって本明細書に組み込まれる非特許文献6参照)。
【0087】
匿名証明プロトコルをクライアントにとって軽量にするために、「カットアンドチューズ(cut−and−choose)」証明戦略を使用する。考え方は、クライアント識別子Uを、G’の非自明な群要素として表すことである。クライアントは、G’上のUの共有UおよびUへのランダムな乗法分割を計算し、したがってU=Uである。クライアントは、UおよびUへのコミットメントCおよびCも計算し、これらをBlueに送信する。Blueは、共有UおよびUのそれぞれにfを適用することによってVを計算する。具体的に言うと、Blueは、値V=f(U)およびV=f(U)をRedに送信する。fの乗法準同形によって、Redが、匿名V=f(U)=f(U)f(U)=Vを計算できることを観察されたい。
【0088】
群要素としてのクライアント識別子Uの表現は、複数の標準的な形で達成することができる。群G’が、素数を法とする乗法群である場合に、上で述べたようにハッシュ関数またはマスク生成関数を適用することによって、または識別子が適当なサイズである場合に直接に、識別子を群の整数要素に写像することができる。やはり上で注記したように、群が楕円曲線群である場合に、標準的な技法が使用可能である。
【0089】
この匿名Vが正しい匿名であることを証明するために、Redは、ランダムなチャレンジビットbをBlueに送信する。Blueは、Uを明らかにし、V=f(U)であることを証明する。このプロトコルで不正をするBlueが検出される可能性は、適当な暗号仮定の下で、1/2に極端に近い。したがって、Blueが、例えば80回、匿名攻撃を開始することを試みる場合に、これは、圧倒的な確率でRedによって検出される。したがって、このカットアンドチューズ匿名証明プロトコルは、Blueによるそのような攻撃の脅威を、パスワード推測をサブミットするならず者のクライアントの脅威よりはるかに軽くする。
【0090】
図5の匿名証明プロトコルの特徴の1つは、クライアントが、共有の対(U,U)に対するそのコミットメントを認証しなければならず、その結果、Redが、Blueがそれを変更していないことを知るようになることである。これを達成するために、クライアントは、R’の下のメッセージ認証コード(MAC)すなわちRedに送信するパスワード共有を適用する。説明を単純にするために、図5では、この図のトランスポート機構を明示的に含むことなく、RedがR’をプライベートに受信すると仮定する。Π=DLEQ[a,b,c,d]が、群G’での同等性logb=logdの知識の非対話型ゼロ知識証明を表すものとする。Blueが、同等性
【0091】
【数8】

【0092】
を検証できない場合に、BlueおよびRedがサブミットされたパスワードをテストする前であっても、認証要求は失敗する。同様に、Blueが、UおよびUがUの正しい共有でないと判定する場合に、Blueは、要求を拒絶する。Redが、
【0093】
【数9】

【0094】
を検証できないか、証明Πを検証できない場合に、Redは、Blueが壊されたと結論する。Redが、
【0095】
【数10】

【0096】
を検証できない場合に、Redは、クライアントが無効な要求をサブミットしたか、BlueがMを変更したと結論する。どちらの場合でも、Redは、匿名Vによって識別されるアカウントのパスワード検証を許可しないか、これに加わらない。
【0097】
図5の量yは、y=gによって与えられ、Blueの公開鍵を表すとみなすことができ、このxは、Blueの秘密鍵を表す。
【0098】
図5では、クライアントが、共有UおよびUならびにコミットメントCおよびCをBlueに送信する。しかし、クライアントが、これらの値を決定するのに十分な情報をBlueに送信することだけが必要である。例えば、クライアントは、Uだけを送信することができる。BlueはUを知っているので、G’上のU/UとしてUを判定することができる。コミットメントが、決定論的に計算されると仮定すると、Blueは、UおよびUからこれを再計算することができる。同様に、Blueは、V、V、C、C、V、およびその後にUまたはUを判定するのに十分な情報をRedに送信することだけが必要である。例えば、VおよびVを送信する代わりに、Blueは、VおよびVを送信することができ、Redは、必要な場合にV/VとしてVを再計算することができる。
【0099】
コミットメントを、El Gamal暗号化を用いるものなど、コミットメントの他の技法に基づいて、決定論的に計算しないことが可能である。この場合に、通常は、クライアントがコミットメントをBlueに送信し、Blueが、多分別の当事者(例えばRed)との相互作用によって、再計算せずにコミットメントを検証する。
【0100】
ここおよび他所で、
【0101】
【数11】

【0102】
などの表記を、一般に、クライアントとRedによって共有される鍵R’を用いる値Cの適当な認証を示すものとして理解されたい。当技術分野で周知のように、MAC鍵は、R’から導出される異なる鍵とすることができる。より一般的には、MAC鍵は、上で述べた例に似て、クライアントとRedの間で確立されるベース値から導出される異なる鍵とすることができる。MACへの入力に、値Cに加えて、MACの意図を示すあるコンテキスト情報(すなわち、本明細書の他所に記載の鍵R’を用いるMACの別の応用のように、別のタイプの値ではなく値Cを認証するためのものであること)を含めることができる。その代わりに、鍵R’を用いて複数の値が認証されなければならない場合に、MACを、鍵R’または関連する鍵を用いて、複数の値を表す適当な入力に基づいて計算することができる。また、一般に、トランザクションにパラメータを関連付けるのに有用と一般にみなされる、他のパラメータを、1方向関数への入力に含めることができる。
【0103】
図6に、図5の匿名証明プロトコルと共に使用できる反射対抗プロトコルを示す。下で説明するように、このプロトコルは、反射攻撃からシステムを保護するように設計されている。
【0104】
クライアントがプライベートチャネルを介してRedおよびBlueと直接に通信する場合に、サーバのいずれかを制御する敵対者は、1つの共有から導出されるデータだけにアクセスできるので、反射攻撃を開始する能力を有しない。しかし、クライアントがBlueを介してRedと通信する上の実施形態では、もやはそうではない。実際に、クライアントによってRedに送信される共有の新鮮さを保証する追加機構がなければ、Blueを制御する敵対者が、単純にクライアントからの通信のすべてを繰り返すことによって、反射攻撃を開始することができる。敵対者は、この形でパスワードPを学習しないが、敵対者は、成功裡の認証を不正にシミュレートすることができる。
【0105】
単純な対抗策は、タイムスタンプを使用することである。具体的に言うと、Blueは、現在時刻をクライアントに送信することができる。他の情報と共に、クライアントは、このタイムスタンプのR’の下でのMACを送信する。Redが、ユーザパスワードごとに成功裡の認証に付随する最新のタイムスタンプを保管するならば、Redは、関連するタイムスタンプがパスワードについて保管された最新のタイムスタンプの後に続くことを検証することによって、受信した共有の新鮮さを検証することができる。しかし、この手法の短所は、時刻同期化要件によって導入されるエンジニアリングの複雑さである。
【0106】
代替手法では、カウンタの使用が用いられる。この手法では、BlueおよびRedが、ユーザパスワードごとに、成功裡の認証の試みの数をログ記録するカウンタを維持する。Blueは、ログインの時にクライアントに最新のカウンタ値を供給し、クライアントは、Redに転送される保全性を保護されたベリファイヤとして、このカウンタのR’の下でのMACを送信する。このベリファイヤを使用することによって、Redは、関連するログイン要求の新鮮さを確認することができる。
【0107】
上で説明したカウンタ手法の短所は、アカウント情報の漏洩である。所与のユーザを装う攻撃者は、ユーザのパスワードのカウンタ値を知ることができ、したがって、ユーザのログインパターンに関する情報を収集することができる。Redを制御する敵対者は、さらに、認証の試みを開始せずに、したがって潜在的に疑わしい挙動に対してBlueに警戒させる危険を冒さずに、そのカウンタ値を入手することができる。このカウンタ値をRedによって保管されたカウンタ値と突き合わせることによって、そのような敵対者は、匿名をユーザ識別に相関させることができる。
【0108】
したがって、平文のカウンタ値をクライアントに送信しないことが重要である。その代わりに、Blueは、認証するクライアントに、主張されるユーザ識別のカウンタ値γのコミットメントζを送信することができる(例えば、参照によって本明細書に組み込まれる非特許文献7参照)。クライアントは、そのログイン情報にζのR’の下のMACを与えて、Redに転送する。認証要求を開始する時に、Blueは、カウンタ値γおよびζに関連する証拠ρをRedに供給する。この2つのデータ、γおよびρが一緒になって、関連するカウンタ値をデコミットする。この形で、クライアントはγを学習しないが、カウンタ値γと所与の認証要求の間の束縛の保全性が保たれる。
【0109】
ハッシュ関数は、上で説明したコミットメント方式を実現する効率的な形を表し、random oracle仮定の下で計算的に束縛的であり、隠蔽的である。具体的に言うと、Blueは、ζ=h(γ‖ρ)としてγをコミットし、ここで、証拠ρ∈{0,1}は、適当なセキュリティパラメータlに関する、長さlのランダムビットストリングである。通常の実施形態で、lは、少なくとも160ビットの長さであることが好ましい。デコミットするために、Blueは、γおよびρを供給し、Redがζの正しさを検証できるようにする。
【0110】
上で説明したプロトコルを、図6に示す。このプロトコルに関連する流れは、図3のプロトコルの認証部分として使用される図5の匿名証明プロトコルなど、前に説明した他のプロトコルの1つまたは複数の流れにオーバーレイすることができる。
【0111】
図6のプロトコルでは、γblue,Uが、ログインを試みるユーザUのパスワードアカウントについて保管されたカウンタ値を表し、γred,Uが、Redによって保管される対応するカウンタ値を表す。図6のプロトコルの最後に、クライアントによる成功裡の認証時に、Blueは、γblue,Uを1つ増分し、Redは、γred,Uを1つ増分する。この図の量Dは、上で説明した、ζのR’の下でのMACを表す。
【0112】
図5の匿名証明プロトコルをもう一度参照すると、Blueは、アカウントUのデータベースエントリにVを保管することによって、その計算負荷を減らすことができる。Uに対する認証要求時に、Blueは、V=f(U)およびV=V/Vを計算する。もう1つの可能な最適化が、クライアントに、UおよびU’=U U((U=U/Uではなく)にコミットさせ、対
【0113】
【数12】

【0114】
をBlueに送信させることである。これによって、クライアントが、計算的により高価なモジュラインバージョンを剰余乗算に置換することによって、その計算負荷を減らすことが可能になる。図5のプロトコルの残りは、この場合にそれ相応に変更されなければならない。
【0115】
図5の匿名証明プロトコルの流れは、自然な形で、それぞれ図3および4に関して上で説明した基本認証プロトコルおよび同等性テストプロトコルの流れにオーバーレイすることができる。具体的に言うと、クライアントは、その認証情報および匿名証明情報を、Redの暗号化された共有を含めてBlueにサブミットする。Blueは、Redと共に図4の同等性テストプロトコルを実行する。これは、図5の匿名証明プロトコルに似て、3フローのプロトコルである。したがって、そのうちの2つを、3フローの過程で並列に実行することができる。図6の反射対抗プロトコルは、同様に、他のプロトコルに便利に一体化することができる。
【0116】
図5の匿名証明プロトコルおよび図6の反射対抗プロトコルを、本明細書で2つ以上のサーバを伴う認証プロトコルの文脈で説明したが、これらは、他の設定でのより一般的な応用を有する。例えば、これらを、フロントエンドサーバ(Blueによって表される)を介してバックエンドサーバ(Redによって表される)のユーザにプライバシを提供することに適用することができる。共通の要素は、Blueがクライアントに扮することができないように、クライアントが、あるトランザクションを実行する意図をRedに保証することである。しかし、クライアントおよびRedの両方が、クライアントの匿名を学習しない。
【0117】
Redのデータベースの内容のほとんどをBlueにオフロードすることによって、Redに対する動作要件をさらに減らすことが可能であることに留意されたい。具体的に言うと、Redは、Redが保持する秘密鍵の下で暗号化されたアカウントレコードのそれぞれをBlueに保管することができる。所与のアカウントの認証要求が開始される時に、Blueは、適当な暗号化されたレコードをRedに送信する。レコードの新鮮さを保証するために、Redは、各アカウントのカウンタを保管し、現在のカウンタ値を最も最近のレコードに束縛することができる。これは、例えば、Redの秘密鍵の下でレコードおよびカウンタ値にMACを適用することによって、達成することができる。その代わりに、Redが、各アカウントの最も最近のレコードのハッシュを保管することができる。
【0118】
Blueによる正しい匿名形成のより強い証明が、クライアントによる追加の暗号計算を用いて可能であることに留意されたい。この代替手法の例で、クライアントは、本質的にその識別に対するブラインデッドEl Gamal暗号文の一種であるものを構築する。ユーザ識別子Uを用いて認証するために、クライアントは、暗号文(α,β)=(y,Ug)を構築する。ただし、
【0119】
【数13】

【0120】
である。Uに対する従来のEl Gamal暗号文が、(Uy,g)の形をとる、すなわち、平文Uが、対の第2成分ではなく第1成分に乗算されることを観察されたい。
【0121】
暗号文(α,β)は、標準El Gamal暗号化解除の下で、関連する平文がUではなくUであるという特性を有する。言い換えると、α/β=U−x=1/Vである。したがって、β=Vαである。したがって、この方式では、クライアントが、Vまたは秘密の1方向関数fを知らずに、匿名V=f(U)の逆数の暗号文を構築することができる。(α,β)を構築した後に、クライアントは、Redに送信したパスワード共有に基づく鍵を使用してMACを適用することによって、Redについてクライアントを認証する。Blueは、この共有をRedに送信する時に、アカウント匿名V=f(U)をアサートする。Blueは、1/Vが(α,β)に対応する平文であることの非対話型ゼロ知識証明を供給することによって、Vが正しいことを証明する。この証明は、DLEQ[g,y,β,Vα]の形になる。
【0122】
より一般的に、クライアントは、好ましくはq’に対して素である整数dについて、暗号文(y,U)を構築することができる。この場合に、標準El Gamal暗号化解除の下での関連する平文は、V−dであり、証明は、DLEQ[g,y,β,Vα]の形になる。例えばd=−1の場合に、関連する平文は、V自体になる。
【0123】
より弱い匿名証明を使用することも可能である。例えば、RedサーバがBlueによる匿名の正しさを検証するはるかに単純な形は、Redが、証拠Wの下でアカウント識別子Uに対応するコミットメントC=C(U,W)を匿名VのRedレコードに付随させることであり、このコミットメントCは、登録中に計算される。アカウント識別子Uは、この手法では特定の群に属する必要がないが、証拠Wは、例えば1方向関数hおよびBlueによって秘密に保たれる値σのh(W,σ)として、Blueによって導出することができる。
【0124】
認証時に、クライアントは、アカウント識別子Uをその認証要求に束縛する。これは、例えば、クライアントが鍵R’の下でUに対するMACを供給する、図5のプロトコルで使用されるものに似た手法を使用することによって可能である。Blueは、単に証拠Wを供給することによって、Redに対して関連する匿名Vの正しさを証明し、このWによって、コミットメントCに関する検証が可能になる。この手法は、図5に関して上で説明したカットアンドチューズ証明より単純であり、効率的である。この手法は、アカウント識別子のRedへの短時間の露出を許すと言う短所を有する。言い換えると、この手法では、Redが、認証要求に関連するアカウント識別子を見、これらをセキュアに消去するものとして信頼されなければならない。
【0125】
匿名攻撃を防ぐもう1つの可能な手法は、Redが、τによってパラメータ化される、ある時間ウィンドウ内で、認証要求のレコードを保つことである。この手法では、クライアントは、その要求に時間依存値を含め、これを、所与のセッション内の後続の再試行に暗号的に束縛する。Redは、時間τより古い要求を、満了したものとみなす。したがって、Blueは、このケースで、単一の署名に対する所与の認証だけを向ける、すなわち、所与のアカウントのユーザからのセッションごとに1回だけ匿名攻撃を開始することができる。Blueが、多数の匿名攻撃を開始する場合には、Redは、失敗する認証の試みの異常な外見上誤ったパターンをユーザが報告することの結果として、これを検出することができる。しかし、この種の検出は、不確実である。この手法のもう1つの短所は、実装詳細の複雑さである。
【0126】
あるクラスのクライアントが、Java(登録商標)アプレットを実行できないことが期待される。そのようなクライアントを、本明細書では「ゼロフットプリント(zero−footprint)クライアント」と称する。これには、例えば、古臭いブラウザまたは低機能ブラウザを走らせるクライアントと、非常に制限的なセキュリティ設定を有するクライアントを含めることができる。説明を単純にするために「Green」と呼ぶことができる第3のサーバを展開することによって、そのようなクライアントに対処することが可能である。Greenは、プライベートチャネル、例えばSSLリンクを介して、クライアントからパスワードを受け入れる。Greenは、クライアントの代わりに上で説明したプロトコルを実行し、その後、パスワードを消去する。これは、もちろん、Red/Blueサーバコンフィギュレーションで使用可能なセキュリティの力をかなり減らし、サブミットされるパスワードの短期間の露出をもたらす。しかし、Greenサーバの使用は、従来の単一サーバパスワードベース認証システムより優れた総合的セキュリティを有するシステムをもたらす。単一サーバシステムは、既に、短期間のパスワード露出によって引き起こされる脆弱性を有する。しかし、さらに、単一サーバシステムは、受動的攻撃者が、サーバデータベース内のすべてのパスワードのハッシュを入手することも許容し、オフライン辞書攻撃が可能になる。対照的に、Greenを危険にさらす唯一の形は、短期間だけ露出されるパスワードを介するものである。したがって、Greenに対する成功裡の攻撃は、かなりの数のパスワードを明らかにしなければならない場合に、永続的である必要がある。Greenを、最も単純に別々のサーバとしてではなく、Blueのモジュールとして展開できることに留意されたい。
【0127】
貧者の変形
ゼロフットプリントクライアントをサポートするさらに単純な手法が、本明細書で「貧者の変形」と称する図3のプロトコルの複雑さを減らした変形である。この複雑さを減らされたセキュア認証プロトコルは、クライアントだけではなく、サーバ自体が、計算集中型の暗号演算を実質的に実行しないように構成されている。図3のプロトコルに似て、貧者の変形には、登録部分と認証部分が含まれる。貧者の変形の登録部分および認証部分を、それぞれ図7および8に関して下で説明する。
【0128】
貧者の変形では、クライアントが、明示的な形でフロントエンドサーバにパスワードPを明かし、フロントエンドサーバは、クライアントの代わりに分割を実行し、Pを消去する。この変形は、特殊目的ソフトウェアなしで展開でき、パスワードは、例えばHTMLブラウザを介してサブミットすることができる。クライアントとフロントエンドサーバの間のプライベートチャネルが、フォワードシークレシ(forward secrecy)を有すると仮定すると、前にサブミットされたパスワードは、フロントエンドサーバの状態が完全に危険にさらされている場合であっても、プライベートのままになる。
【0129】
図7に、貧者の変形の登録部分を示す。ユーザは、従来の「アウトオブバンド」方法を使用して自分の身元を証明すると仮定され、これらの相互作用は、この図には示されていない。BlueおよびRedは、長さlのラダムビットストリングを用いるハッシングを介して、ユーザが供給したパスワードPの間接共有を作成し、lは、セキュリティパラメータである。ここでは、Uが、どちらのサーバにも登録されていないと仮定する。そうでない場合には、サーバは、再登録の試みに対するめいめいの適当なポリシに従う。hおよびhが、衝突が困難な1方向関数を表すものとする。ユーザパスワードPに基づく秘密値について消去を行わなければならないステップに関する明示的ガイドラインを提供する。PのハッシュであるHが、Pに基づく副ハッシュである
【0130】
【数14】

【0131】
の消去の前に消去されることがわかる。これによって、Redからの応答を待っている間にBlueのメモリにHを保たないという些細な利益が提供される。攻撃者は、この期間中にも
【0132】
【数15】

【0133】
に対する辞書攻撃を開始することができるが、少なくとも、Hに直接にはアクセスできない。
【0134】
図8に、貧者の変形の認証部分を示す。この図では、H’が、パスワードP’Uにハッシュ関数hを適用した結果を表す。Redは、所与のアカウントUの正しい入力鍵
【0135】
【数16】

【0136】
を受信する時に、保管された鍵(s)を解放すると仮定する。そうでない場合に、Redは、拒絶メッセージを送信する。貧者の変形の目的は、Blue単独で所与の認証セッションを受け入れるか拒絶することを可能にすることと仮定する。より高度なセキュア認証プロトコルは、Blueに対(s,t)をクライアントに送信させ、クライアントが値の対から鍵を導出できるようにすることによって達成することができる。これは、Blueへのsの短期間の露出をもたらす。しかし、秘密がBlueに永続的な形では保管されないと言う点で、貧者の変形の基本的セキュリティは変更されない。もう1つの拡張は、Blue自体が対(s,t)から鍵を再構築することである。
【0137】
この変形の様々な異なる実現が可能である。一例として、入力鍵
【0138】
【数17】

【0139】
を直接にRedに送信するのではなく、Blueが、Redとの認証プロトコルを実行して、
【0140】
【数18】

【0141】
が正しいことを実証することができる。このプロトコルは、従来のSPAKA技法を含む、Redに認証するための標準的なパスワードベースプロトコルとすることができる。Redは、成功裡の認証時に他のエンティティに他の保管された情報へのアクセスを許可するのと同様に、保管された鍵sへのBlueのアクセスを許可する。したがって、Redを、原理的に、ファイルサーバまたは類似するネットワークリソースとして実装することができる。
【0142】
Redは、入力鍵
【0143】
【数19】

【0144】
を検証することだけを必要とし、それを保管する必要はない。したがって、Redは、従来の認証プロトコルで使用される技法に似た技法を使用して、
【0145】
【数20】

【0146】
のハッシュ化されたバージョンをその代わりに保管することができる。Redは、上で説明したタイプのクライアントまたは第2システムのサーバの1つの役割を演ずることによって、入力キーを検証することもできる。
【0147】
もう1つの例として、入力鍵
【0148】
【数21】

【0149】
を、H’およびtから導出される公開鍵/秘密鍵対の秘密鍵とすることができる。Blueは、Redに認証するために公開鍵を用いる動作を実行し、Redは、秘密鍵を用いてそれを検証する。この場合に、
【0150】
【数22】

【0151】
ではなく公開鍵がRedに保管され、図7の登録プロトコルが、それ相応に変更される。
【0152】
RedおよびBlueは、SSLを介して確立されるものなどのプライベートチャネルを介して相互作用することができ、あるいは、認証プロトコルに応じて、値
【0153】
【数23】

【0154】
自体が、プライベートチャネルの確立を提供することができる。
【0155】
BlueがRedを認証する時に、Blueは、それ自体が、まず保管されたt値との組合せを介してパスワードを「強化」するので、単なるクライアントのプロキシではない。Blueが、同一のパスワードを用いてクライアントの代わり認証する単純なプロキシである場合に、Redが危険にさらされると、標準的なパスワードベースのプロトコルと同様に、攻撃者がパスワードに対する辞書攻撃を開始できるようになる。本発明の方法では、Redが危険にさらされる場合であっても、パスワードがプライベートのままになる。
【0156】
複数サーバ変形
多項式秘密共有の標準的技法を使用するn中kシステムに基づく変形形態など(例えば、参照によって本明細書に組み込まれる非特許文献8参照)、複数のサーバを有する変形を構成して、より強いセキュリティを提供することができる。しかし、2サーバプロトコルと同様に、このより強い変形は、クライアントの側での計算集中型計算をほとんどまたはまったく必要としない。
【0157】
複数のサーバ、すなわち一般的な数n個のサーバ(ただしn≧2)に適する、図3のセキュア認証プロトコルの変形をこれから説明する。もちろん、図3のプロトコルのそのような複数サーバ変形は、冗長サーバの使用および複数の2サーバプロトコルの同時使用によって、単純に得ることができる。この変形には、その代わりに、n個のサーバと閾値アクセス構造が含まれ、n個のうちの少なくともk個のサーバが動作している場合に、ユーザが成功裡に認証できるようになっている。
【0158】
複数サーバ変形は、限られた数の単純なサーバ故障すなわち、すべてのサーバが正しく振る舞っているが、故障の可能性がある情況に対する堅牢性を提供する。この変形は、ビザンチン障害(Byzantine failure)すなわち、サーバが悪意をもって振る舞う可能性がある障害の一般的な場合での堅牢性は提供しないが、ビザンチン堅牢性の問題は、下でさらに詳細に対処する。
【0159】
複数サーバ変形では、クライアントが、標準多項式秘密共有によって、複数のサーバの間でパスワードを分散する。パスワードPは、ゼロ点p(0)がパスワードの表現と等しいランダム多項式pによって登録される。クライアントは、主張されるパスワードP’を表す独立のランダム多項式p’によって認証する。サーバの仕事は、p(0)=p’(0)であるかどうか、またはこれと同等に、(p−p’)(0)=0であるかどうかを、追加情報を漏らさずに判定することである。サーバは、各々の共有のブラインデッド変換を交換することによって達成する。言い換えると、サーバは、共有の値を隠すが、それでも条件
【0160】
【数24】

【0161】
をテストできるようにする暗号文を交換する。
【0162】
説明を明瞭にするために、マルチサーバ変形は、qが大きい素数、例えば長さ160ビットであるZ上の体を使用すると仮定するが、体Fの他の表現を使用するように変形を拡張することが可能である。さらに、hが、衝突が困難なハッシュ関数{0,1}*→Zであるものとする。Gが、Decision Diffie−Hellman問題が困難である、公開された生成元gを有する次数qの群であるものとする。次の説明での用語「ブロードキャスト」は、個々のすべてのサーバへのあるデータの送信を示すのに使用される。実際には、真のブロードキャストチャネルの使用は必要でなく、この変形の有利な特徴である。Sが、i番目のサーバを表し、[i,j]が、両端を含むiとjの間の整数の集合を表すものとする。最後に、λ0,jが、整数jでの多項式の評価を与えられた時の、Z上の(k−1)次多項式の自由項の再構築のためのラグランジュ係数を表すものとする。
【0163】
複数サーバ変形の登録部分では、パスワードPが、次数k−1のF上のランダム多項式pとして、p(0)=h(P)になるようにエンコードされる。1≦i≦nについて、クライアントは、サーバSに点p(i)を送信する。
【0164】
認証部分では、クライアントが、次数k−1のランダム多項式p’を、p’(0)=h(P’)になるように構成することによって、パスワードP’を提示する。1≦i≦nについて、クライアントは、サーバSに点p’(i)を送信する。n個のサーバが、k個の機能するサーバの集合で、Uによるすべてのログインの試みの一意のセッション識別子IDに基づいて判断すると仮定する。例えば、各アカウントのカウンタを持たせ、カウンタ不一致の場合に停止させることによって達成することができる。一般性を失わずに、これをS、S,...,Sと表すことができる。rが、多項式p−p’を表すものとすると、各サーバSが、それ自体の評価r(i)=p(i)−p’(i)を計算できることが観察される。サーバは、次のステップを実行する。いつでも、サーバが、別のサーバから不正なデコミットメントを受信する場合に、そのサーバは、終了し、拒絶する。
【0165】
1.各サーバSは、ランダムなブラインディング係数bを選択する。
【0166】
2.各サーバSは、
【0167】
【数25】

【0168】
を計算し、コミットメントC=C(μ,U,ID)をブロードキャストする。
【0169】
3.コミットメントのすべての集合
【0170】
【数26】

【0171】
を受信する時に、各サーバSは、
【0172】
【数27】

【0173】
をブロードキャストする。
【0174】
4.j=2からkについて:
a.各サーバSは、d=i+(j−1)mod kおよび
【0175】
【数28】

【0176】
を計算する。
【0177】
b.各サーバSは、
【0178】
【数29】

【0179】
をブロードキャストする。
【0180】
c.コミットメントのすべての集合
【0181】
【数30】

【0182】
を受信する時に、各サーバSは、
【0183】
【数31】

【0184】
をブロードキャストする。
【0185】
d.各サーバSは、すべてのdについてデコミットメント
【0186】
【数32】

【0187】
を検査する。
【0188】
5.サーバSは、
【0189】
【数33】

【0190】
を計算する。
【0191】
6.w=1の場合に、サーバSは、r(0)=0であると結論し、受け入れる。そうでない場合には、拒絶する。
【0192】
このマルチサーバ変形では、図3の2サーバプロトコルと同様に、クライアントが、登録および認証のどちらについても、計算集中型の暗号演算を実行する必要がないことを観察されたい。この変形のセキュリティを、G上のDiffie−Hellman仮定およびハッシュ関数hの衝突の困難さに還元できることを示すことができる。しかし、敵対者が簡単にサービス拒否攻撃を開始できるという意味で、この変形ではセキュリティが限られていることに留意することが重要である。実際に、悪意のある敵対者は、単純に不正なブラインデッド共有値を供給することによって、認証の試みの誤った拒絶を引き起こすことができる。
【0193】
成功裡の部分集合が見つかるか完全な失敗が達成されるまで、網羅的な形でk個の共有のすべての可能な部分集合を検査することによって、最も単純にビザンチン障害の問題を回避することが可能である。この手法は、k個の共有の異なる組合せによってそれぞれがインスタンス化される複数のパスワード推測を攻撃者が効果的に行うことを可能にするという危険を冒す。有効なパスワードがGのごく小さいランダムな部分集合を占めるようにする、例えば、その範囲がGの小さい部分集合を構成するハッシュ関数を使用してパスワードをGに写像することによって、この問題を回避することができる。この手法は、多数のサーバがある時には、完全に非実用的である。しかし、少数のサーバだけがある時には、多少実現可能である。さらに、監査者は、クライアントを装うことによって、この手法を使用して、不正を働くサーバを検出し、除去することができる。
【0194】
ビザンチン堅牢性を有する代替の複数サーバ変形
これから、クライアントが計算集中型の暗号を使用せずに自分のパスワードに対する検証可能に正しいEl Gamal暗号文をサブミットできるようにする、未分析のセキュリティを有する複数サーバプロトコル変形を説明する。考え方は、体ではなく、RSA modulus Nの環Z上の多項式を定義することである。しかし、この環は、
【0195】
【数34】

【0196】
内の要素の圧倒的な部分が乗算逆数を有すると言う意味で、ほとんど体である。クライアントは、pの点へのコミットメントの集合C={(p(i)) mod N}を計算し、これをすべてのサーバに送信する。クライアントは、個々の点p(i)もサーバSに送信する。サーバは、Cの一貫性のあるバージョンに基づいて、存在する場合には多数決によって、判断する。
【0197】
このシステムでは、El Gamal暗号文が、多項式が構成される環と同一の次数Nの基礎になる群で作られる。具体的に言うと、サーバは、次数Nの
【0198】
【数35】

の部分群からなる群GでEl Gamal暗号文を操作する。この部分群の生成元は、g=1+Nである。これは、Paillier暗号法(参照によって本明細書に組み込まれる非特許文献9参照)のセットアップとして当業者に既知である。各サーバは、El Gamal暗号文E[gp(i)]をポストし、Cで提供される、(p(i)) mod Nに関する非対話型ゼロ知識証明でその正しさを証明する。
【0199】
そのような証明は、周知の技法の単純な使用によって構成することができる(例えば、参照によって本明細書に組み込まれる非特許文献10および非特許文献11参照)。しかし、実用的な効率を達成するためには、変形を使用する必要が生じる場合がある(例えば、参照によって本明細書に組み込まれる非特許文献12および非特許文献13参照)。これらの変形は、未知の次数の群、例えばRSA modulus N’の
【0200】
【数36】

【0201】
の部分群で機能し、Strong RSA Assumptionの追加の実施を必要とする。共有がポストされ、検証されたならば、サーバは、ユーザのパスワードに対する登録されたEl Gamal暗号文に対してサブミットされたEl Gamal暗号文を検査することができる。これは、例えば上で注記したPETプロトコルを使用して、セキュアに行うことができる。その結果は、完全なビザンチン堅牢性を有するプロトコル変形である。
【0202】
このプロトコル変形のセキュリティは、コミットメント(p(i)) mod Nがp(i)に関する十分な情報を隠蔽する能力に依存する。この変形のセキュリティは、詳細には分析されていないが、Strong RSA AssumptionおよびGでのDecision Diffie−Hellman仮定に還元できると思われる。
【0203】
本発明のセキュア認証プロトコルの複数の例の応用をこれから説明する。次の説明では、説明を単純明瞭にするために、主に図3の2サーバプロトコルに言及するが、これらの応用は、一般に、貧者の変形および複数サーバ変形ならびに他の変形にも適用可能である。説明される例の応用は、ローミング認証、プロキシ署名、サインドアサーション(signed assertion)、ライフクエスチョン、プライベート情報分割、プライバシ保護データマイニング、および2シードRSA SecurID(登録商標)認証である。
【0204】
ローミング認証
前に説明したFordおよびKaliskiのシステムに似て、本発明のセキュア認証プロトコルは、ローミングユーザがセキュリティを強化された状態で認証をダウンロードすることを可能にするように適合することができる。図3のプロトコルを参照すると、2つの共有
【0205】
【数37】

【0206】
および
【0207】
【数38】

【0208】
の形で、BlueおよびRedにまたがって秘密鍵σを分散することができる(秘密鍵をまず生成してから共有に分割するか、まず共有を生成し、それらから秘密鍵を導出することができる)。ユーザが成功裡に認証する時に、2つのサーバが、その共有をユーザに解放する。
【0209】
Redがバックエンドサーバとして働く配置では、Redは、R’またはそれから導出された鍵の下で
【0210】
【数39】

【0211】
を暗号化でき、上で注記したように、R’は、認証のためにクライアントによって供給される共有である。
【0212】
より一般的に、秘密鍵または認証を、一方のサーバに保管された鍵を用いて暗号化することができ、暗号化の結果は、他方のサーバに保管される。成功裡の認証時に、一方のサーバは、暗号化鍵をクライアントに返し、他方のサーバは、暗号化された認証を返す。
【0213】
プロキシ署名
各サーバがユーザの認証の共有を使用して、ユーザの代わりに暗号動作を実行する、上記の代替手法が可能である。例えば、上の
【0214】
【数40】

【0215】
および
【0216】
【数41】

【0217】
は、それぞれ、RSA署名鍵の共有とすることができる。標準的な閾値技法を使用して、RedおよびBlueが、ユーザによる成功裡の認証時に、ユーザの「プロキシ」としてユーザの秘密鍵を使用してデジタル署名を作ることができる。ここで、ユーザは、署名されるメッセージをサーバにサブミットする(サーバへの今認証されたチャネルによって提供される適当な保全性保護を用いて)。もちろん、暗号化解除など、他の形の暗号サービス委任も可能である。
【0218】
同等性テストプロトコルが成功する場合に、両方のサーバが、他方がユーザを成功裡に認証したことの保証を得る。原則として、サーバの一方が、その後、ユーザが両方のサーバによって認証されたことを保証された状態で、ユーザのプロキシとして単独で動作することができる。例えば、一方のサーバだけで、ユーザの代わりにデジタル署名を作ることができる。これは、クライアントではなくサーバの一方で共有
【0219】
【数42】

【0220】
および
【0221】
【数43】

【0222】
からユーザの秘密鍵を再構成することによって行うことができる。この形で、秘密鍵は、クライアントではなく、サーバの一方で一時的にのみ露出される。閾値技法に基づく手法は、さらに、秘密鍵が一時的にも露出されないという長所を有する。
【0223】
サインドアサーション
上のデジタル署名手法のもう1つの変形として、RedおよびBlueが、ユーザに関連する鍵ではなく、2つのサーバを表す鍵を用いて協同して署名を作ることができる。この署名は、例えばSAML(Security Assertion Markup Language)で指定されるものなど、ユーザによる成功裡の認証を他の頼る当事者に示すように働くことができる。これは、ユーザに関する認証情報またはサインドアサーションの発行のいずれかに関する単一の危険にさらされる点がないので、認証サービスに対する役に立つ機能強化である。もちろん、上で注記したように、別のコンフィギュレーションに、両方によるユーザの成功裡の認証時にサインドアサーションを発行するサーバが1つだけ含まれる。
【0224】
ライフクエスチョン
上で注記したように、多くのサービスプロバイダは、現在、登録時に、1組のライフクエスチョンすなわちユーザに関する個人的質問の組への回答を供給するようにユーザに要求する。そのような質問の例が、「在籍した高校の名前は?」である。失われたパスワードを回復するために、ユーザは、これらの質問に対する回答をもう一度供給する。サービスプロバイダは、供給される回答全体を検証する。ユーザが、十分に正しい回答、例えば5問中3問に応える場合に、サービスプロバイダは、忘れられたパスワードまたはPINを解放するか、ユーザがそれをリセットすることを許可する。
【0225】
本発明のセキュア認証プロトコルを使用して、例えばこの種の個人的質問に対する回答を個々のパスワードとして扱うことによって、これらの回答を保護することができる。しかし、そのような変形は、追加の設計特徴を必要とする。個人的ライフクエスチョンに対する推測攻撃を防ぐために、システムは、質問の集合全体に関する試みをスロットリングしなければならない。すなわち、質問に対する回答のすべてを、一緒に単一のアカウントに属するものとみなさなければならず、同時に検証するか、ポリシ判断で集合的にカウントしなければならない。例えば、異なるライフクエスチョンに対する回答に対応するプロトコル値を、集合としてBlueおよびRedに送信し、並列に処理することができ、最終決断は、各値(およびある閾値)に関するプロトコルの成功に依存する。アカウント全体を、失敗した認証の試みの数に基づいてロックしなければならず、成功または失敗は、質問集合全体に適用されるシステムポリシである。
【0226】
実際には、1つのサーバ、例えばBlueサーバだけが、ユーザのパスワードを管理することができる。ユーザは、ライフクエスチョンを介して両方に認証し、成功裡の認証の時に、1つのサーバが、ユーザが自分のパスワードをリセットすることを許可する。
【0227】
テーマに従ってライフクエスチョンをグループ化することも可能である。具体的に言うと、ユーザがテーマの組の中から選択でき、テーマのそれぞれに、テーマによって統一された質問の組が含まれるように、システムを構成することができる。例えば、「ロックンロール」テーマに、ロックバンドに関する質問を含めることができる。そのようなテーマベースの質問が、本明細書で使用される用語「ライフクエスチョン」に含まれることが意図されている。
【0228】
プライベート情報分割
認証は、RedとBlueの間で便利に分割できる、プライベート情報の唯一の形ではない。例えば、ライフクエスチョンシステムで、成功裡に認証されたユーザに、誤って回答された質問に対する回答を思い出させることが便利である。これらの回答は、既に2つのサーバにまたがって分割されているので、関連する共有をクライアントにダウンロードし、表示のために再アセンブルすることができる。クレジットカード情報、住所情報などの他のプライベートユーザ情報を、同様に、2つのサーバにまたがる共有を介して保護することができ、クライアントまたはいずれかのサーバで適当に再アセンブルすることができる。その代わりに、この情報を第三者に送信する、例えばクレジットカード情報を商人に送信することを望むクライアントについて、ユーザ情報を、成功裡のユーザ認証時にリモートでアセンブルすることができる。
【0229】
この拡張を見る1つの形が、Redが、一方はBlueに関し、他方はクライアントに関する2つの鍵を保管できると考えることである。この形で、Blueは、クレジットカード番号およびユーザプロファイルなど、ユーザが成功裡に認証された後に限って暗号化解除される情報を保管することができる。情報が、Blueに解放された鍵を用いて保護される場合に、Blueは、その情報をローカルに暗号化解除することができる。情報が、クライアントに解放された鍵を用いて保護される場合に、クライアントが、その情報を暗号化解除することができる。
【0230】
ライフクエスチョンに対する回答または他の秘密が、再構成を必要としない場合に、値自体ではなく、値の1方向関数を、前に説明したように分割することができる。
【0231】
プライバシ保護データマイニング
多数のユーザの2つのサーバにまたがるプライベート情報共有を与えられて、匿名データマイニングに適するように変える形で情報をブラインド化することが可能である。ユーザデータδが、ある適当な群で乗法的に共有され、共有δredがRedによって保持され、δblueがBlueによって保持され、δ=δredδblueであると仮定する。yが、対応する秘密鍵が2つのサーバによって共有されるEl Gamal公開鍵であり、gが、基礎になる群の生成元であるものとする。Redが、ランダム暗号化係数kを使用してδredで暗号文
【0232】
【数44】

【0233】
を構成し、Blueが、δblueで類似する暗号文(α,β)を構成すると仮定する。暗号文(α,β)=(αα,ββ)が、El Gamalの乗法準同形に起因して、対応する平文δを有することを観察されたい。
【0234】
そのような暗号文のリストを構成した後に、RedおよびBlueは、あるタイプの2サーバデクリプションミックス(decryption mix)ネットワーク(例えば、参照によって本明細書に組み込まれる非特許文献14参照)として働くことができる。デクリプションミックスは、サーバの集合が入力として暗号文のリストをとり、秘密のランダム置換に従って並べ返られた対応する平文を出力する構成である。ミックスネットワークの特殊なセキュリティ特性は、サーバの過半数を制御しない敵対者が置換を判定できないという事実である。したがって、結果の出力に、すべての平文すなわちユーザのプライベート情報が、RedまたはBlueのいずれか単独によって個々の情報をその所有者に結び付けられないように、完全に匿名の形で含まれる。この情報は、例えば第三者への提示またはプライバシが保たれるターゲティングされた宣伝の実行(例えば、参照によって本明細書に組み込まれる非特許文献15参照)など、ユーザ人口に関する有用な匿名化された統計を編集するのに使用することができる。
【0235】
プロファイル匿名化という考え方は、複数サーバの場合、RSAなどの他の非対称暗号法の使用、およびクライアント自体がミキシング用の暗号文を直接に用意するシナリオに、単純に拡張することができる。2サーバ設定では、RedがBlueに直接に匿名情報を供給する単純化が可能である。この場合に、Redが、1サーバデクリプションミックスとして働くこと、すなわち、各暗号文に関するRedの暗号化共有と共に、Blueに再暗号化された暗号文のランダム置換を送ることが可能である。Blueは、暗号文自体の暗号化解除を完了することができる。
【0236】
1サーバまたは2サーバのいずれかのミックスネットワークでの最強のセキュリティは、正しさを実施する構成を使用して達成可能である。そのようなミックスネットワークでは、各参加するサーバが、それがミキシング動作を正しく実行したことの証明と、それが正しい暗号化解除共有に寄与したことの証明を提供する。しかし、しばしば、ミキシング処理中にサーバが不正に振る舞う誘因は、小さい。その場合に、正しい挙動の証明を省略することが可能である。これによって、この方式がより効率的になるが、これは、ミックスが、最も強い意味で、過半数未満のサーバが受動的に危険にさらされることに対してのみ攻撃に抵抗することを意味する。
【0237】
本発明の複数サーバ認証変形のように、3つ以上のサーバがある場合に有用なミックスネットワークのもう1つの特性が、堅牢性である。これは、少数のサーバが何らかの形で故障する場合であってもミックスネットワークがそれに従って機能する特性である。
【0238】
El Gamal暗号文のミキシングに関する正しさおよび堅牢性を提供する最近のミックスネットワーク構成の例が、文献に記載されている(例えば、参照によって本明細書に組み込まれる非特許文献16および非特許文献17参照)。
【0239】
いくつかの場合に、ユーザプロファイル内の情報の1つが、標準的な長さ、例えば1024ビットの単一の非対称暗号文でのエンコーディングを可能にするのに長すぎる場合がある。そのような情報を、複数の非対称暗号文にまたがってエンコードすることができるが、これは、暗号文の非効率的なアセンブリおよび非効率的なミキシングにつながる可能性がある。この問題を迂回するために、本発明では、ハイブリッドミックスネットワークと称するものを使用することができる。この用語は、広義に、長い入力暗号文の効率的なミキシングを可能にするための、対称暗号と非対称暗号を組み合わせるミックスネットワークを指す。
【0240】
例えば、上で示した文献(非特許文献14参照)のオリジナル提案は、ハイブリッドミックスネットワークと見ることができ、次のように本発明と共に使用するために適合することができる。mが、ミックスネットワークを介して渡される1つのユーザプロファイル情報であるものとする。RedおよびBlueの両方を用いる2サーバミックスについて、クライアントは、暗号文
【0241】
【数45】

【0242】
を供給することができ、ここで、
【0243】
【数46】

【0244】
は、例えば長い平文の標準公開鍵暗号化などのエンベローピングを使用する公開鍵PKの下での暗号化を表す。ミキシング動作を実行するために、Redは、各入力暗号文の外側層を暗号化解除し、結果の暗号文のリストをランダムに置換し、Blueに渡す。Blueは、類似する動作を実行し、ランダムに置換し、結果の平文を出力する。Redだけを用いるハイブリッドミックスでは、クライアントが、Redに送信される暗号文
【0245】
【数47】

【0246】
を用意することで十分である。
【0247】
正しさおよび/または堅牢性などのセキュリティ特性が望まれる場合に、クライアントは、適当な特性を提供するハイブリッドミックス(例えば、参照によって本明細書に組み込まれる非特許文献18および非特許文献19参照)に適当な暗号文を用意することができる。
【0248】
図3のプロトコルの認証部分でパスワードの共有に使用される+演算子を、実際には、例えばXOR演算子ではなく、Hでの剰余乗算を用いてインスタンス化できることに留意されたい。この場合、Hは、El Gamal暗号化およびミキシングに使用される乗法群である。この形で、サーバにまたがるパスワード共有およびミキシングに関する他のプライベート情報の共有の処理の調和をとることができる。
【0249】
2シードRSA SecurID(登録商標)
RSA SecurID(登録商標)は、米国マサチューセッツ州ベッドフォードのRSA Security Inc.社が市販する、ハードウェアベースのユーザ認証トークンである。これは、トークンおよび認証サーバによって共有される一意の秘密σによって機能する。一意の秘密σを、「シード」とも称する。トークンは、本質的に次のように動作する。毎分、トークンは、σおよび現在時刻t(1分の粒度を有する)を擬似乱数ジェネレータfに供給し、出力f(σ,t)を作ることによって計算される、数字の新しいシーケンスを含むパスコードを表示する。認証するために、ユーザは、このパスコードをクライアントに入力し、クライアントは、そのコードを検証のために認証サーバに送信する。このシステムでは、認証サーバが危険にさらされると、システムが危険にさらされる結果になる可能性がある。
【0250】
しかし、本発明の技法を使用すると、RSA SecurID(登録商標)または、秘密のシードおよび事項または他の変化する値の関数としてパスワードが変更される類似する動的認証方法の2サーバ変形または複数サーバ変形を構築することが可能である。1つのシードσを含めるのではなく、ユーザUのトークンに、2つのシードσredおよびσblueが含まれると仮定する。トークンは、P’=f(σred,t)+f(σblue,t)を表示する。ここで、上と同様に、すべての算術が、適当な代数群で行われる。クライアントは、
【0251】
【数48】

【0252】
になるように、P’をランダムに共有
【0253】
【数49】

【0254】
および
【0255】
【数50】

【0256】
に分割する。次に、Redが、Pred=f(σred,t)を計算し、Blueが、同様に、Pblue=f(σblue,t)を計算する。ユーザによって供給される共有の正しさを検査するために、2つのサーバは、図4の同等性テストプロトコルを使用して、Redによって計算される値
【0257】
【数51】

【0258】
およびBlueによって計算される類似する値Qblueの同等性を検査する。このシステムでは、2つのサーバの1つを危険にさらす攻撃者は、まだ、成功裡に認証することができない。ユーザは、RSA SecurID(登録商標)システムのPINも使用できることに留意されたい。これらは、上で説明した技法を使用して、パスワードと同一の形で分割することができる。PINおよびシードの両方が、2つのサーバの間で分割される場合には、一方のサーバが危険にさらされることが、ユーザの認証の1「要因」を手に入れるのにも不十分であり、PINが一方のサーバに保管され、シードが他方のサーバに保管されるより直接的な手法に対する長所である。
【0259】
他のローミングプロトコルへの適用
上の応用は、全般的に、複数のサーバを使用する他のローミングプロトコルに適用可能である。例えば、これらを、Ford−Kaliskiプロトコルに適用することができる。そのプロトコルでは、クライアントが、複数のサーバとの相互作用を介して、パスワードなどの弱い秘密から強い秘密を入手する。その後、強い秘密を適用して、認証を暗号化解除し、サーバに認証することができる。
【0260】
1つまたは複数のサーバでの認証は、クライアントがFord−Kaliskiプロトコルで強い秘密を入手した後に行われ、そのサーバによって、それ以上のサービス(ローカルなレコード保存以外)はユーザに与えられない。しかし、上述した様々な応用では、さらなるサービスが、サーバでの認証の後にユーザに与えられる。これと同一のサービスを、Ford−Kaliskiプロトコルに適用することができる。
【0261】
具体的に言うと、Ford−Kaliskiプロトコルでのサーバへのユーザによる認証の後に、サーバは、(a)認証の共有をユーザに供給し、(b)ユーザの代わりにデジタル署名を計算するか他の暗号動作を実行し(1つのサーバで、または複数のサーバを用いる閾値技法を介して)、(c)成功裡の認証のサインドアサーションを発行し(例えばSAMLアサーション)、(d)ライフクエスチョンへの正しい回答のユーザによる提供に基づいてパスワードをリセットし、(e)クライアントに、互いに、および/または別の当事者にプライベート情報の共有を供給することができる。プライバシ保護データマイニングは、一般に、2つのサーバが用いられるコンテキストにも適用可能であり、認証の処理と別々に実行することができる。
【0262】
次に、システムのセキュリティおよび信頼性を高めるように設計された複数の例のプロトコル拡張を説明する。これらの拡張は、先を見越したセキュリティおよびサービス拒否攻撃に対するセキュリティである。やはり、主に図3の2サーバプロトコルの文脈で説明するが、これらの拡張は、他の変形およびローミングプロトコルにも適用可能である。
【0263】
先を見越したセキュリティ
先を見越したセキュリティは、一般に、異なる時に両方のサーバが危険にさらされることに対するセキュリティを指す。考え方は、サーバにまたがる情報共有の周期的再ランダム化を実行することである。PredおよびPblueが、RedおよびBlueにまたがるパスワードPの追加の共有を表すものとする。所与のパスワードPの可能な再ランダム化手順の1つが、次である。
【0264】
1.サーバの1つ、例えばBlueが、ρ∈Hを選択し、ρをRedに送信する。
【0265】
2.Redが、PredをPred+ρに更新する。
【0266】
3.Blueが、PblueをPblue−ρに更新する。
【0267】
再ランダム化手順の前だけにRedを受動的に危険にさらすことを達成し、再ランダム化の後だけにBlueを受動的に危険にさらすことを達成した攻撃者を検討されたい。そのような攻撃者は、PredおよびPblue−ρを学習する。しかし、ρは、Pの共有と独立のランダムな値なので、P自体に関する情報は、攻撃者に明かされていない。同一の考え方が、攻撃の後にすべてのコードおよびデータが復元される場合に、敵対者が限られた時間期間だけ各サーバの能動的制御を達成する時にあてはまる。
【0268】
しかし、送信される値ρを保護するという追加の問題が残っている。Blueが、Redに属する公開鍵PKredの下のプライベートチャネルを介してρを送信すると仮定する。受動的な形でRedを危険にさらした攻撃者は、対応する秘密鍵SKredを学習する。したがって、この攻撃者は、どちらのサーバの制御を有しない場合であっても、再ランダム化中の2つのサーバの間の通信を暗号化解除することができる。これは、ρを危険にさらすことをもたらし、先を見越したセキュリティ特性を傷つける。
【0269】
その結果、先を見越したセキュリティのもう1つの重要な要件が、サーバ(または、少なくともRed)が、定期的にその公開鍵を更新することである。これは、例えば、証明機関(CA)への新しい証明書の定期的登録を介して達成することができる。攻撃者が、新しい公開鍵の登録時または再ランダム化手順中にサーバを制御しないならば、先を見越したセキュリティの望みの特性が達成される。RedおよびBlueは、共有チャネルでのフォワードシークレシを達成するために、アウトオブバンド対称鍵配布など、証明書リフレッシュ以外の機構も使用することができる。
【0270】
サービス拒否攻撃に対するセキュリティ
本発明のセキュア認証プロトコルの一部は、特にライフクエスチョン変形で、サーバに対する適度に高い計算の重荷を課す可能性がある。したがって、検討すべきもう1つのセキュリティ問題は、サービス拒否攻撃の問題である。攻撃者は、アカウントのロックダウンおよび多分いくつかのアカウントを危険にさらすことをもたらす正当なアカウントに対する推測攻撃と、サーバに対する維持できない計算の重荷を作る認証要求のすばやいサブミットとの組合せを介して、正当なユーザに対してサービスを拒否させることを求めることができる。次に、この種のサービス拒否攻撃を扱う複数の手法を説明する。
【0271】
サービス拒否攻撃の機先を制する手法の1つが、IPトレーシングによって仮定の攻撃のソースを識別し、疑わしいIPアドレスへのサービスをスロットリングすることである。例えば、信頼性のあるIPトレーシングを容易にする機構が、Syncookies(例えば、参照によって本明細書に組み込まれる非特許文献20参照)によって提供され、これは、現在、最新のLinuxオペレーティングシステムおよびFreeBSDオペレーティングシステムの標準部分である。しかし、攻撃者が、複数のIPアドレスを介してまたは正当なユーザの大きいベースと共有されるIPアドレスを介して攻撃を開始することを求めることができるので、IPトレーシングは、いくつかの場合に限られた有用性を有する場合がある。
【0272】
サービス拒否攻撃をスロットリングするもう1つの手法が、攻撃が検出された時に、認証するクライアントにリソースチャージを課すことである。例えば、「クライアントパズル(client puzzle)」手法(参照によって本明細書に組み込まれる非特許文献21参照)では、クライアントが、サービスを得るために、適度に困難な暗号「パズル」に対する正しい解をサブミットすることを要求される。これは、攻撃を開始するためにかなりの計算リソースを集めることを攻撃者に要求するという効果を有する。したがって、クライアントパズルは、大規模分散サービス拒否攻撃を開始する攻撃者に対する非常に限られた有用性を有する。
【0273】
代替の同盟手法では、クライアントに要求されるリソースを、認証プロセスへの人間の能動的な参加とすることができる。この手法は、複数のウェブサイトで採用されており、これらのウェブサイトは、ユーザに、サービスを得るために、ある時間制限以内に光学文字認識(OCR)に基づく問題を解くように要求する。この問題は、コンピュータによって効果的に解くことができないが、人間にとって比較的簡単と思われるものである。例えば、AltavistaのURLサブミッションサービスを参照されたい(例えば、非特許文献22参照)。
【0274】
複数の不成功のログインの試みの後に所与のアカウントをロックダウンすることの代替案が、ある時間期間の間、そのアカウントに対する認証要求を拒否することである。これは、アカウント識別子の小さい集合だけを知っている攻撃者の側での推測攻撃を低速にさせるという効果を有する可能性がある。しかし、多数のアカウント識別子のリストを有する攻撃者は、単純にこのリストを通って、遅延が課せられるまで所与のアカウントを攻撃し、その後、新しいアカウントに移ることができる。
【0275】
アカウントロックダウンを伴うサービス拒否攻撃は、正当なユーザによる誤ったログインの試みによってさらに悪化する可能性がある。具体的に言うと、そのような正当なユーザは、失敗した認証の試みのカウントを故意でなく増やす。経時的に個々のアカウントに対する失敗の総数を登録するシステムでは、これが、早めのアカウントのロックダウンをもたらす場合がある。この問題に対する部分的解決策が、「弁解(apology)」機構によって提供される(例えば、参照によって本明細書に組み込まれる非特許文献23参照)。この提案は、次の通りである。成功裡に認証する時に、ユーザは、自分の前の誤った試みを認め、これによって、対応するユーザアカウントに対する誤った試みのレコードからこれらを除去することができる。
【0276】
上で説明した特定のセキュア認証技法が、例として提供されたものであり、本発明を特定の実施形態または実施形態のグループに制限するものとして解釈されてはならないことをもう一度強調する必要がある。さらに、様々な例示的実施形態の説明の過程で上で行った様々な単純化の仮定は、本発明の要件または制限ではなく、例示とみなされなければならない。請求項の範囲内の多数の代替実施形態が、当業者にすぐに明白になる。
【図面の簡単な説明】
【0277】
【図1】本発明の暗号技法を実施できる例のシステムを示す単純化されたブロック図である。
【図2】図1のシステムのクライアントデバイスまたはサーバデバイスの所与の1つの1つの可能な実施形態を示す図である。
【図3】本発明の技法による、図1のシステムのクライアントおよび1対のサーバを用いるセキュア認証プロトコルの例示的実施形態の登録部分および認証部分を示す流れ図である。
【図4】本発明による図3のプロトコルの認証で使用される同等性テストプロトコルを示す図である。
【図5】本発明による図3のプロトコルの認証部分で使用される匿名証明プロトコルを示す図である。
【図6】図5の匿名証明プロトコルと共に使用される反射対抗プロトコルを示す図である。
【図7】図3の実施形態に関して減らされた計算の複雑さを有する本発明の代替実施形態によるセキュア認証プロトコルの登録部分を示す図である。
【図8】図3の実施形態に関して減らされた計算の複雑さを有する本発明の代替実施形態によるセキュア認証プロトコルの認証部分を示す図である。

【特許請求の範囲】
【請求項1】
複数の処理デバイスを含むシステムで情報を認証する方法であって、前記処理デバイスのそれぞれは、他のデバイスの1つまたは複数と通信するように適合可能であり、前記方法は、
前記複数のデバイスの第1デバイスに関連する第1パスワードの第1共有および第2共有を生成するステップと、
前記第1共有および前記第2共有を、それぞれ、前記複数のデバイスの第2デバイスおよび第3デバイスに保管するステップと
を具え、
前記第2デバイスおよび前記第3デバイスの少なくとも1つへの前記第1デバイスに関連する追加情報のサブミットの時に、前記第1共有および前記第2共有の各々は、前記追加情報の前記第1パスワードとの対応だけから判定することが実行不可能であるという特性を有し、
前記第2デバイスおよび前記第3デバイスは、前記各々の第1共有および第2共有を使用して、前記追加情報の前記第1パスワードとの前記対応を集合的に判定することを特徴とする方法。
【請求項2】
第3共有および第4共有は、各々の第1共有および第2共有ならびに前記追加情報の少なくとも一部の関数として各々の前記第2デバイスおよび前記第3デバイスによって計算されることを特徴とする請求項1記載の方法。
【請求項3】
前記追加情報は、第3共有および第4共有を含み、
前記第3共有は、前記第1デバイスによって前記第2デバイスに配布され、
前記第4共有は、前記第1デバイスによって前記第3デバイスに配布されることを特徴とする請求項1記載の方法。
【請求項4】
前記第1デバイスは、クライアントデバイスを含み、
前記第2デバイスおよび前記第3デバイスは、ネットワークを介して前記クライアントデバイスに接続可能な各々の第1サーバおよび第2サーバを含むことを特徴とする請求項1記載の方法。
【請求項5】
前記生成ステップは、前記クライアントデバイスで実施され、
前記第1共有および前記第2共有は、前記クライアントデバイスによって各々の前記第1サーバおよび前記第2サーバに保管のために供給されることを特徴とする請求項4記載の方法。
【請求項6】
前記生成ステップは、少なくとも部分的に前記クライアントデバイスの代わりに前記第1サーバで実施され、
前記第1サーバは、前記第1パスワードに基づいて前記第1共有および前記第2共有の少なくとも1つを生成し、前記第1共有を保管し、前記第1パスワードを消去し、前記第2共有を前記第2サーバでの保管のために前記第2サーバに供給することを特徴とする請求項4記載の方法。
【請求項7】
前記生成ステップおよび保管ステップは、前記追加情報の後続認証のための前記第1パスワードの登録を提供することを特徴とする請求項1記載の方法。
【請求項8】
前記第1共有および前記第2共有は、代数群内の各々の第1要素および第2要素を含み、
前記群の演算子の下での前記第1要素および前記第2要素の合成は、前記第1パスワードの表現を作ることを特徴とする請求項1記載の方法。
【請求項9】
前記追加情報は、前記クライアントデバイスに関連する第2パスワードの第3共有および第4共有を含むことを特徴とする請求項4記載の方法。
【請求項10】
前記処理ステップは、前記第1共有および第3共有の関数として前記第1サーバによって生成される第1量を前記第2共有および第4共有の関数として前記第2サーバによって生成される第2量と比較することを含むことを特徴とする請求項9記載の方法。
【請求項11】
前記第1サーバおよび第2サーバは、前記第1量および前記第2量が実質的に同等と判定される場合に、真正として前記追加情報を受け入れることを特徴とする請求項10記載の方法。
【請求項12】
実質的同等性は、2つのデータの間の同等性を前記データに関する情報を明らかにせずに判定する最小知識暗号技法を使用して、前記第1量と前記第2量との間で判定されることを特徴とする請求項11記載の方法。
【請求項13】
前記追加情報は前記第1サーバおよび前記第2サーバによって真正として受け入れられる場合に、前記第1サーバおよび前記第2サーバの少なくとも1つは、デジタル認証に変換可能なデータを前記クライアントデバイスに送信することを特徴とする請求項4記載の方法。
【請求項14】
前記第1サーバは、第1プロバイダエンティティによって操作され、
前記第2サーバは、前記第1プロバイダエンティティと異なる第2プロバイダエンティティによって操作されることを特徴とする請求項4記載の方法。
【請求項15】
前記第1サーバは、前記クライアントデバイスと通信するフロントエンドサーバとして構成され、
前記第2サーバは、前記第1サーバと通信するが前記クライアントデバイスと通信する必要がないバックエンドサーバとして構成されることを特徴とする請求項4記載の方法。
【請求項16】
前記クライアントデバイスは、前記第1サーバによって前記第2サーバに供給される匿名に基づいて前記第2サーバに知られることを特徴とする請求項4記載の方法。
【請求項17】
前記第1サーバは、クライアント識別子を匿名に写像するのに1方向関数を使用し、
前記第1サーバは前記第2サーバに正しい対応する匿名を提示していることを、複数の認証要求のそれぞれについて前記第2サーバに証明するために前記クライアントデバイスと共に動作することを特徴とする請求項16記載の方法。
【請求項18】
前記1方向関数は、暗号ゼロ知識証明技法または最小知識証明技法を使用することによって前記関数の適用に関するステートメントを証明することが可能になるように、
:m→mの形のべき剰余関数を含むことを特徴とする請求項17記載の方法。
【請求項19】
前記クライアントデバイスは、クライアント識別子の共有を生成し、前記共有に対するコミットメントを計算し、前記コミットメントを判定するのに十分な情報を前記第1サーバに送信し、
前記第1サーバは、前記匿名を判定するのに十分な情報および前記各々の共有に前記1方向関数を適用することによって生成される匿名値を前記第2サーバに送信し、
前記第2サーバは、前記匿名を計算し、1つまたは複数のチャレンジビットを前記第1サーバに送信し、
前記第1サーバは、前記1つまたは複数のチャレンジビットに対応する前記クライアント識別子の前記共有を前記第2サーバに明かし、前記1つまたは複数のチャレンジビットに対応する前記匿名の前記共有が、前記1つまたは複数のチャレンジビットに対応する前記クライアント識別子の前記共有への前記1方向関数の前記適用との一貫性を有することを、前記証明技法を使用して前記第2サーバに証明することを特徴とする請求項18記載の方法。
【請求項20】
前記クライアントデバイスは、前記共有に対するそのコミットメントの認証を生成し、前記認証は、前記第1サーバによって前記第2サーバに配布可能であり、前記第2サーバによって検証可能であることを特徴とする請求項19記載の方法。
【請求項21】
前記クライアントデバイスは、前記匿名の知識なしで前記匿名の関数に対する暗号文を生成し、前記第2サーバによって検証可能な前記暗号文の認証を生成し、前記暗号文および前記認証を前記第1サーバに送信し、
前記第1サーバは、前記匿名の前記関数が前記暗号文に対応する平文であることの証明と共に、(i)前記匿名、(ii)前記暗号文、および(iii)前記認証を判定するのに十分な情報を前記第2サーバに送信することを特徴とする請求項17記載の方法。
【請求項22】
前記第1サーバが、少なくとも1つの証拠要素を判定し、前記第2サーバに提示することによって、前記第2サーバに対して匿名の正しさを証明できるようにするために、
前記第2サーバは、(i)少なくとも1つの対応するクライアント識別子および(ii)前記第1サーバによって判定可能な少なくとも1つの前記証拠要素に対する、少なくとも1つのコミットメントを使用することによって、前記第1サーバによって提示される前記匿名の前記正しさを検証することを特徴とする請求項17記載の方法。
【請求項23】
前記第2サーバは、指定された時間ウィンドウ内に受信した認証要求のレコードを維持し、
前記クライアントデバイスは、所与の認証要求に時間依存値を含み、
前記時間依存値は、所与のセッション内で前記クライアントデバイスによって生成される後続認証要求のすべてに暗号的に束縛され、
前記第2サーバは、前記指定された時間ウィンドウの外に含まれる時間依存値を有する認証要求のすべてを満了として拒絶することを特徴とする請求項17記載の方法。
【請求項24】
前記クライアントデバイスは、クライアント識別子を前記第1サーバに送信し、
前記第1サーバは、前記クライアント識別子、前記追加情報、および前記第1共有から第1情報を判定し、
前記第1情報を使用して前記第2サーバに認証し、
前記第2サーバが前記第2共有から前記認証が正しいと判定する場合に、前記第2サーバは、前記第1サーバに第2情報を解放することを特徴とする請求項6記載の方法。
【請求項25】
前記第1情報および第2情報の各々は、所与のクライアントアカウントの入力鍵を具えたことを特徴とする請求項24記載の方法。
【請求項26】
前記第1サーバは、前記クライアントデバイスが鍵を導出した値の対を前記クライアントデバイスに転送することを特徴とする請求項24記載の方法。
【請求項27】
前記複数のデバイスは、前記クライアントデバイスならびに、前記第1サーバおよび前記第2サーバを含むn個のサーバを具え、
前記クライアントデバイスは、1≦i≦nについて、ランダム多項式pの対応する点p(i)として、n個のサーバのそれぞれSの第1パスワードの共有を生成し、点p(0)は、前記第1パスワードのハッシュを表すことを特徴とする請求項4記載の方法。
【請求項28】
前記追加情報は、前記クライアントデバイスによって前記n個のサーバにサブミットされ、1≦i≦nについて、ランダム多項式p’の対応する点p’(i)として、n個のサーバのそれぞれSの第2パスワードの共有を具え、
点p’(0)は、前記第2パスワードのハッシュを表すことを特徴とする請求項27記載の方法。
【請求項29】
前記n個のサーバは、その個々の共有のブラインド変換を交換することによってp(0)=p’(0)であるかどうかを判定することによって、前記追加情報が真正であるかどうかを判定することを特徴とする請求項28記載の方法。
【請求項30】
前記複数のデバイスは、前記クライアントデバイスならびに前記第1サーバおよび第2サーバを含むn個のサーバを具え、
前記クライアントデバイスは、1≦i≦nについて、ランダム多項式pの対応する点p(i)としてのn個のサーバのそれぞれSの前記第1パスワードの共有、およびp上の点に対するコミットメントの集合C={(p(i)) mod N}を生成し、
前記コミットメントの集合は、前記n個のサーバのそれぞれに送信され、前記多項式は、Nを法とする剰余系の環Zの上で定義されることを特徴とする請求項4記載の方法。
【請求項31】
前記追加情報は、前記クライアントから前記n個のサーバにサブミットされ、
第2パスワードに対する検証可能に正しい暗号文を具え、
前記サーバは、コミットメントの前記集合の一貫性のあるバージョンを判定し、前記コミットメントおよび前記暗号文に基づいて前記追加情報を認証することを特徴とする請求項30記載の方法。
【請求項32】
前記共有の各々は、情報の前記組からの対応する情報要素の表現を具え、
少なくとも前記第2デバイスおよび前記第3デバイスの単独の1つは、1つまたは複数のユーザの情報の組全体を実行可能に判定できないことを特徴とする請求項1記載の方法。
【請求項33】
情報の前記組は、ユーザプロファイルを具え、
前記情報要素は、前記プロファイルの別個の部分を具えたことを特徴とする請求項32記載の方法。
【請求項34】
情報の前記組は、ライフクエスチョンの組に対する回答を具え、
前記情報要素は、ライフクエスチョンの前記組の特定の質問に対する個々の回答を具えたことを特徴とする請求項32記載の方法。
【請求項35】
ライフクエスチョンの前記組は、ユーザ選択可能なテーマに従って編成されることを特徴とする請求項34記載の方法。
【請求項36】
前記第1パスワードは、ライフクエスチョンの組に対する回答を具え、
前記対応判定は、前記追加情報がライフクエスチョンの前記組に対する前記回答を含むことを集合的に検証するために、各々の前記第1共有および前記第2共有を使用する前記第1デバイスおよび前記第2デバイスを具えたことを含むことを特徴とする請求項1記載の方法。
【請求項37】
前記第2処理デバイスおよび前記第3処理デバイスの少なくとも1つは、
(i)暗号化動作、(ii)暗号化解除動作、および(iii)再暗号化ミキシング動作の少なくとも1つを実行するためにミックスサーバとして動作するように構成されたことを特徴とする請求項1記載の方法。
【請求項38】
前記第1共有および前記第2共有は、各々の第1シードおよび第2シードを具え、
前記第3共有および前記第4共有は、前記第1シードおよび前記第2シードの両方の関数として生成された出力の共有を具えたことを特徴とする請求項3記載の方法。
【請求項39】
前記第2処理デバイスおよび前記第3処理デバイスに保管された前記共有を周期的に再ランダム化するステップをさらに具えたことを特徴とする請求項1記載の方法。
【請求項40】
前記第2処理デバイスおよび前記第3処理デバイスの少なくとも1つで、対応する1つまたは複数のデバイスに対するサービス拒否攻撃を制限する機構の少なくとも一部を実施するステップをさらに具えたことを特徴とする請求項1記載の方法。
【請求項41】
メモリに結合されたプロセッサを有する処理デバイスを含む装置であって、
前記処理デバイスは、それぞれが1つまたは複数の他のデバイスと通信するように適合可能である複数の処理デバイスの1つであり、
前記処理デバイスは、前記複数のデバイスの第1デバイスに関連する第1パスワードの少なくとも第1共有および第2共有を前記複数のデバイスの各々の第2デバイスおよび第3デバイスに保管するシステムで使用可能であり、
前記第1デバイスに関連する追加情報の前記第2デバイスおよび前記第3デバイスの少なくとも1つへのサブミットのときに、前記第1共有および前記第2共有の各々は、前記追加情報の前記第1パスワードとの対応だけから判定することが実行不可能であるという特性を有し、前記第2デバイスおよび前記第3デバイスは、前記追加情報の前記第1パスワードとの前記対応を集合的に判定するためにめいめいの前記第1共有および前記第2共有を使用することを特徴とする装置。
【請求項42】
それぞれが1つまたは複数の他のデバイスと通信するように適合可能である複数の処理デバイスを含むシステムで情報を認証するのに使用される1つまたは複数のソフトウェアプログラムを保管する機械可読記憶媒体であって、
前記1つまたは複数のソフトウェアプログラムは、前記複数のデバイスの第1デバイスによって実行されるときに、
前記第1デバイスに関連する第1パスワードの少なくとも第1共有および第2共有を生成するステップを実施し、
前記第1共有および前記第2共有は、前記複数のデバイスの各々の第2デバイスおよび第3デバイスに保管され、
前記第1デバイスに関連する追加情報を前記第2デバイスおよび前記第3デバイスの少なくとも1つへサブミットするときに、
前記第1共有および前記第2共有の各々は、前記追加情報の前記第1パスワードとの対応だけから判定することが実行不可能であるという特性を有し、
前記第2デバイスおよび第3デバイスは、前記追加情報の前記第1パスワードとの前記対応を集合的に判定するために、各々の前記第1共有および前記第2共有を使用することを特徴とする機械可読媒体。
【請求項43】
各々が1つまたは複数の他のデバイスと通信するように適合可能な複数の処理デバイスを含むシステムで情報を認証する方法であって、
パスワードの共有がそれぞれ前記複数のデバイスの1つに対応して保管されるように、前記共有を前記システム内で保管するステップと、
前記共有を保管する前記デバイスの特定の1つが追加情報とパスワードとの間の対応を判定できないように、前記デバイスの少なくとも1つにサブミットされる追加情報の真正性を判定するのに前記共有を使用するステップと
を具え、
前記追加情報のサブミッタは、前記デバイスの別の1つによって前記デバイスの前記所与の1つに供給される匿名に基づいて、少なくとも前記共有を保管する前記デバイスの所与の1つに知られることを特徴とする方法。
【請求項44】
それぞれが1つまたは複数の他のデバイスと通信するように適合可能な複数の処理デバイスを含むシステムで情報を認証する方法であって、
前記複数のデバイスの第1の1つは、前記複数のデバイスの少なくとも第2の1つに追加情報をサブミットするステップ
を具え、
前記第2デバイスは、前記サブミットされた情報が真正であるかどうかを判定するために、前記複数のデバイスの少なくとも第3の1つと相互作用し、
前記第1デバイスは、前記第2デバイスによって供給される匿名によって前記第3デバイスに対して識別され、
前記第2デバイスは、ユーザ識別子を匿名に写像するのに1方向関数を使用し、複数の認証要求のそれぞれについて、前記第2デバイスが前記第3デバイスに適当な対応する匿名を提示していることを前記第3デバイスに証明するために前記第1デバイスと共に動作することを特徴とする方法。
【請求項45】
それぞれが1つまたは複数の他のデバイスと通信するように適合可能な複数の処理デバイスを含むシステムで情報を認証する方法であって、
パスワードの共有がそれぞれ前記複数のデバイスの対応する1つに保管されるように、前記システム内で前記共有を保管するステップと、
前記共有を保管する前記デバイスの特定の1つが、前記デバイスの少なくとも1つにサブミットされる追加情報と前記パスワードとの間の対応を判定できない形で、前記追加情報の真正性を判定するのに前記共有を使用するステップと
を具え、
前記共有のそれぞれは、ライフクエスチョンの組に対する回答の部分に対応し、前記追加情報は、認証のためにサブミットされるライフクエスチョンの前記組に対する回答の対応する部分を具え、
前記使用するステップは、ライフクエスチョンの前記組に対する正しい回答の数が指定された閾値を超える場合に、前記追加情報が真正であると判定されるように構成されることを特徴とする方法。
【請求項46】
それぞれが1つまたは複数の他のデバイスと通信するように適合可能な複数の処理デバイスを含むシステムで情報を認証する方法であって、
パスワードの共有がそれぞれ前記複数のデバイスの対応する1つに保管されるように、前記システム内で前記共有を保管するステップと、
前記デバイスの少なくとも1つにサブミットされる追加情報の真正性を判定するのに前記共有を使用するステップと、
前記追加情報が真正と判定される場合に、関連するユーザの代わりに少なくとも1つのポスト認証アクションを実行するステップと
を具えたことを特徴とする方法。
【請求項47】
それぞれが1つまたは複数の他のデバイスと通信するように適合可能な複数の処理デバイスを含むシステムで情報を認証する方法であって、
パスワードの共有がそれぞれ前記複数のデバイスの対応する1つに保管されるように、前記システム内で前記共有を保管するステップと、
前記デバイスの少なくとも1つにサブミットされた追加情報の真正性を判定するのに前記共有を使用するステップと
を具え、
前記共有を保管する前記デバイスは、前記追加情報の真正性を判定するのに前記共有を使用する際に、ミックスネットワークとして動作することを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2006−511104(P2006−511104A)
【公表日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願番号】特願2004−553414(P2004−553414)
【出願日】平成15年8月8日(2003.8.8)
【国際出願番号】PCT/US2003/025099
【国際公開番号】WO2004/046849
【国際公開日】平成16年6月3日(2004.6.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
Linux
【出願人】(500198841)アールエスエイ セキュリティー インコーポレーテッド (4)
【Fターム(参考)】