JP4833489B2 - 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア - Google Patents

複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア Download PDF

Info

Publication number
JP4833489B2
JP4833489B2 JP2002502962A JP2002502962A JP4833489B2 JP 4833489 B2 JP4833489 B2 JP 4833489B2 JP 2002502962 A JP2002502962 A JP 2002502962A JP 2002502962 A JP2002502962 A JP 2002502962A JP 4833489 B2 JP4833489 B2 JP 4833489B2
Authority
JP
Japan
Prior art keywords
password
client computer
server
authentication servers
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002502962A
Other languages
English (en)
Other versions
JP2003536320A (ja
Inventor
ジャブロン,ディビッド
Original Assignee
フィーニックス  テクノロジーズ  リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フィーニックス  テクノロジーズ  リミテッド filed Critical フィーニックス  テクノロジーズ  リミテッド
Publication of JP2003536320A publication Critical patent/JP2003536320A/ja
Application granted granted Critical
Publication of JP4833489B2 publication Critical patent/JP4833489B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

【0001】
本発明は、一般に、コンピュータ・セキュリティに関し、より詳細には、複数のサーバを使用した遠隔パスワード認証のためのシステム、方法、およびソフトウェアに関する。
【0002】
パスワードベースの認証は、大部分の個人的な認証システムの基礎である。キャリーアラウンド・トークン、スマート・カード、およびバイオメトリックが追加されている場合でも、単純な記憶されたパスワードが、通常、コンピュータのトランザクションで人間の識別を確立するために不可欠の中心的な要因のままである。グレードの低いパスワード、すなわち人間が容易に記憶することができる種類のパスワードは、多くのそういうことがなければ安全なシステムにとって特にやっかいな問題である。グレードの低いパスワードに対処する目的で、ネットワークの脅威を解消するためにゼロ知識(zero-knowledge)パスワードが開発された。しかし、パスワード検証データが敵に対して使用可能になった場合にそのパスワード検証データへの攻撃をいかにして防止するかはいまだ未解決の問題である。
【0003】
通常のパスワード・システムでは、サーバはパスワードのための検証データを維持しているが、それはパスワード自体のコピーである場合がある。UNIX(登録商標)システムでは、追加のセキュリティのために、検証データは反復されたパスワードの一方向性関数であるが、それは通常はファイルに記憶されている。特権のないユーザおよびプログラムがそれに対するアクセス権を有しないように、このファイルがさらに保護されることが多い。従来のUNIXパスワードに対する攻撃は、攻撃者がパスワード検証データのファイルに何らかの形でアクセス権を有し、かつ、可能な限り多くのパスワードを決定または「クラック」するためにそのファイルに対してパスワード・クラッキング・ツールを実行する。パスワードのクラッキングは、単に候補パスワードのリストに対して一方向性関数を適用することである。一方向性関数の出力が検証データと一致する場合、攻撃者は自分が正確なパスワードを推測したことを知る。このような攻撃は、所与の時間内にできるだけ多くのパスワードをクラックすることができるように、最も一般的なあるいは最も可能性のあるパスワードを試行するために最適化することができる。
【0004】
目的は、可能な限り最も簡単なセキュリティ・モデルを使用して、すなわち可能な限り少ない推測を使用して、パスワードベースのクライアント/サーバ認証システムで可能な限り多くのパスワードに対するサーバベースの攻撃の脅威を低減することである。この目的は、サーバに対するまったく拘束を受けていない攻撃に直面してもなお、パスワードの露出を防止することである。現在のモデルでは、攻撃者がサーバのソフトウェアを変更し、そのサーバに対して入手可能なすべてのデータにアクセスし、サーバが合法的で疑わしくないユーザを認証している間にそのサーバの使用を制御する能力を有することを想定している。
【0005】
この目的を達成するためには、複数のマシンを使用する必要があることは明らかである。任意の単一マシン・システムで、ユーザのパスワード検証データにアクセスすることができる、または任意のパスワードの暗号化されたデータにアクセスすることができる人物は、ユーザのアクションをシミュレーションすることによる拘束を受けていないオフラインの暴力的な攻撃を実行するために十分な情報を有している。問題は、このリスクを解消するために、複数のサーバ間でいかにしてパスワード検証データを分割するかということである。単一サーバは、オフラインの暴力的な攻撃を仕掛ける能力を有しないはずである。
【0006】
公開鍵暗号化は、現在では安全な個人的な電子トランザクションのために必須のツールとして承認されてきている。個人のデジタル署名には広範な適用があることが予想される。しかし大きな問題は、ユーザの秘密鍵をいかにして保護し、管理するかということにある。それをおそらくはパスワードによって弱く暗号化された状態でクライアント・マシンに放置しておくことは、望ましくないセキュリティ・リスクである。セキュリティがあまりにも頻繁に管理困難に陥るクライアント・マシン上にパスワードがクラックされ得る永続的データを放置しておくことは愚かであろう。さらに、複数のユーザが単一マシンを共有するモデルでは、ユーザの信用証明書のローカルな記憶を要求することは現実的ではない。
【0007】
いわゆる「ローミング」ユーザに対するユーザ認証の解決法の1つのクラスは、遠隔サーバに記憶されているユーザの個人的な信用証明書を保存し、それらの信用証明書を取り出すためにパスワードベースの認証を使用する。強力なゼロ知識パスワード(ZKP)プロトコルは、ネットワークベースの暴力的な攻撃を解消することによってそれらの解決法にある脅威の多くに対処するが、同時にクライアント・マシン上の他の記憶された鍵と証明書への依存性をも解消する。ZKPプロトコルは、複数サーバの場合にも同様に必須である。
【0008】
強力なモデルと弱いモデルとの複数サーバの安全なローミング・システムのための2つのモデルを議論する。どちらのモデルでも、攻撃者はパスワード検証データのコピーに対するアクセス権を入手することができると想定されており、適切に長い時間で計算を実行する能力を有する。(適切に長いとは、拘束は受けていないが計算の実現可能性の制限内であることを意味している。任意に長い計算は任意に大きな公開鍵をクラックすることができる。大部分の暗号化方法でそうであるように、潜在的な攻撃者に使用可能な時間と力に対してある種の現実的な上限を設定することができ、また鍵に対応した安全な最小限の適切なサイズを決定することができるということが想定される。)
【0009】
弱いモデルでは、攻撃者は、サーバの永続的データのコピーに対するアクセス権を有するが、実行中のサーバのオペレーションに干渉することはできないと想定する。
【0010】
強力なモデルでは、方法は、認証サーバのうちの1つ以外すべてに対する完全にアクティブなリークに直面してさえパスワードの安全性を維持する必要がある。攻撃者は、サーバのソフトウェアを変更し、サーバが有効なユーザを認証している間にそのサーバに入手可能なすべての情報にアクセスすることができると想定される。強力なモデルはより単純であり、したがって好ましい。これはまた、従来の安全なチャネルの存在を想定した類似のシステムに対する初期のモデルよりも強力である。
【0011】
これらのモデルのすべてで、各サーバは、多数の許容される無効アクセスの試行に制限を課すことによって、拘束を受けていないオンラインの攻撃から自衛することができる。これらの制限は複数の通常の方法で課すことができる。本発明の好ましい一実施態様は、サーバがパスワード入力の際の合法的な誤りに対してよりよく説明することを支援する機能も含んでいる。
【0012】
ローミング・システムの目的は、モバイル・ユーザが公開鍵暗号化オペレーションを実行するために自分の秘密鍵に安全にアクセスして使用することを可能にすることである。モビリティとは広義で使用されており、そこに鍵を記憶することを必要とせずに個人用ワークステーションおよび他の人物のワークステーションを使用すること、公衆キオスク端末を使用すること、ならびに現代的なハンドヘルド・ワイヤレス・ネットワーク・デバイスを使用することを包含している。ユーザに対してどこからでも秘密鍵に対するパスワード認証アクセスを提供しながら、同時に敵がパスワードを盗みまたはクラックし、それによってそれらの鍵を獲得する機会を最低限に抑えることが望まれる。
【0013】
スマート・カードはローミング・ユーザに対して秘密鍵の記憶問題を解決することを約束してきたが、この解決法はカードの配置とカードリーダーの導入を必要とする。個人が便宜性のために安全性を犠牲にする傾向は、追加のハードウェアを必要とする解決法の幅広い用途に対する障壁であることは既に証明済みである。これは、ソフトウェアベースのローミング・プロトコルを求める1つの動機である。
【0014】
本明細書で使用されるように、ローミング・プロトコルとは、1つまたは複数の信用証明書サーバからの秘密鍵の遠隔取り出しのための安全なパスワードベースのプロトコルのことである。容易に記憶されるパスワードを使用し、他の記憶されているユーザの信用証明書は一切使用しないことによって、ユーザは信用証明書サーバに対して認証し、任意のアクセス可能なクライアント・マシン上で一時的に使用するために自身の秘密鍵を取り出す。クライアントは、1つまたは複数のトランザクション用の鍵を使用し、次いでその後、その鍵と任意のローカルなパスワード関連データとを消去する。
【0015】
本明細書で使用するように、女性のクライアントと彼女の男性のサーバに対する人称代名詞を使用して、特定のユーザに代わって動作しているクライアント・マシンはAliceと称し、信用証明書サーバは一般にBobと称するか個別にBと称する。
【0016】
「ローミング」システムの概念は信用証明書サーバと密接に関係している。J.TardoおよびK.Alagappanの「SPX:Global Authentication Using Public Key Certificates(SPX:公開鍵信用証明書を使用したグローバル認証)」、IEEE Computer Society Symposium on Security and Privacy、1991年の議事録1991年、232頁から244頁で開示されているSPX LEAFシステムは、検証するためにパスワードを信用証明書サーバに対して送信し、その後ユーザの秘密鍵の取り出しと解読とを実行するためにサーバ認証チャネルを使用するローミング・プロトコルを提示している。信用証明書サーバは、それ自体が検出することのできる推測による攻撃を制限することによって自衛し、プロトコルはオフラインでのパスワードの目立たない推測を防止する。
【0017】
信用証明書(認証)サーバは、パスワードの推測が正確かどうかを判定できる場合、故障閾値を事前設定した後のさらなる交換を防止または遅延させることができる。
【0018】
パスワードのみのプロトコルはもう1つの重要な関連分野である。S.BellovinおよびM.Merrittの「Encrypted Key Exchnage:Password−based protocols secure against dictionary attacks(暗号化された鍵交換:ディクショナリ攻撃に対して安全なパスワードベースのプロトコル)」、IEEE Symposium on Research in Security and Privacy1992年5月の議事録で開示されたEKEプロトコルは、事前にサーバ認証の動作を一切必要とせずに安全でないネットワークを介してパスワードを安全に認証することによる安全なパスワードのみのプロトコルの概念を紹介している。L.Gong、T.M.A.Lomas、R.M.Needham,およびJ.H.Saltzerによって「Protecting Poorly Chosen Secrets from Guessing Attacks(不十分に選択された秘密の予測による攻撃からの保護)」IEEE Journal on Selected Areas in Communications第11巻、no.5、1993年6月の648頁から656頁と、L.Gongによる「Increasing Availability and Security of an Authentication Service(認証サーバの使用可能性および安全性の向上)」IEEE、Journal on Selected Areas in Communications第11巻no.5、1993年6月の657頁から662頁とによって開示された「秘密公開鍵」方法と、D.Jablonによって「Strong passward−only authenticated key exchange(強力なパスワードのみによる認証のなされた鍵交換)」ACM Computer Communications Review、第26巻no.5、1996年10月の5頁から26頁、http://www.IntegritySciences.com/links.html\#Jab96で議論されているSPEKE方法と、S.Lucksによる「Open Key Exchange:How to Defeat Dictionary Attacks Without Encrypting Public Keys(オープン鍵交換:公開鍵を暗号化せずにディクショナリ攻撃に打ち勝つ方法)」Security Protocol Workshop‘97、Ecole Normale Superieure、1997年4月7日から9日に記載のOKE方法と、T.Wuによって「The Secure Remote Password Protocol(安全な遠隔パスワード・プロトコル)」、1998 Network and Distributed System Secureity Symposiumの議事録、Internet Society、1998年1月97頁から111頁、その他に記載のSRP−3方法を含めて同様の目的のための一連の他の方法が開発されたものだが、これらは、S.HaleviおよびH.Krawczykによる「Public−key cryptography and password protocols(公開鍵の暗号化およびパスワード・プロトコル)」、the Fifth ACM Conference on Computer and Communications Security,1998年の記事録と、M.K.Boyarskyによる「Public−Key Cryptography and Password Protocols:The Multi−User Case(公開鍵暗号化およびパスワード・プロトコル:複数のユーザの場合)」、6thACM Conference on Computer and Communications Security、1999年11月1日から4日、シンガポールの議事録と、V.Boyko、P.MacKenzieおよびS.Patelによる「Provably Secure Password Authenticated Key Exchange Using Diffie−Hellman(Diffie−Hellmanを使用した証明可能に安全なパスワード認証鍵交換)」、暗号化の発展−EUROCRYPT 2000、コンピュータ・サイエンスの講義録第1807巻、Springer−Verlag、2000年5月と、M.Bellare、D.PointchevalおよびP.Rogawayによる「Authenticated Key Exchange Secure Against Dictionary Attack(ディクショナリ攻撃に対して安全な認証された鍵交換)」、暗号化の発展−EUROCRYPT 2000、コンピュータ・サイエンスの講義録第1807巻139頁から155頁、Springer−Verlag、2000年5月によって開示されているようにパスワードのみのモデルにおける理論的な研究自体が成長しつつある中で行われた。これらの論文の大部分は、パスワードおよび関連する記憶された秘密は、暴力によってクラックされうるものか、またはせいぜい解決できないエントロピーを有するものであると保守的に想定される必要があるという点を強調しており、これによってユーザを保護するためのさらなる規準が保証される。
【0019】
本発明の譲受人によって開発されたSPEKE方法は、交換の基数がパスワードによって決定される周知のDeffie−Hellman(DH)指数鍵交換の認証された形式である。SPEKEの一般に使用される形式では、パスワードは、導出されたDiffie−Hellmanセッション鍵の相互認証を規定する。SPEKEの変形態様は、係属中の米国特許出願第08/823,961号およびD.JablonによるSixth Workshops on Enabling Technologies:Infrastructure for Collaborative Enterprises(WET−ICE’97)Enterprise Security Workshop、IEEEコンピュータ・ソサエティ、1997年6月18日から20日の議事録248頁から255頁の「Extended Password Protocol Immune to Dictionary Attack(ディクショナリ攻撃に影響されない拡張型パスワード・プロトコル)」題する論文、およびR.PerlmanおよびC.Kaufmanによる「Secure Password−Based Protocol for Downloading a Private Key(秘密鍵をダウンロードするための安全なパスワードベースのプロトコル)」、1999 Network and Distributed System Security Symposium、インターネット・ソサエティ、1999年2月3日から5日の議事録にも記載されている。
【0020】
複数のマシン間で分割鍵を使用するSPEKE使用可能システムは本明細書ではSK1と称するが、D.Jablonによる1999年1月21日の1999年RSAデータ・セキュリティ会議99での「Secret Public Keys and Passwords(秘密公開鍵とパスワード)」と題する講義で提示されたものであり、このスライドは<http://www.IntegritySciences.com/rsa99/index.html>で公開されている。このシステムでは、Aliceの秘密鍵であるUは、パスワード導出シェアPと、2つの大きなシェアであるXとYの3つのシェアに分割される。これらのシェアは、U=P(○+)X(○+)Yとして(○+)関数(ビット単位の排他的論理和)を使用して結合される。SK1の登録と鍵の取り出しプロセスについては以下で概説する。(訳注:明細書中(○+)は○の中に+が入っている排他的OR演算を現す記号の代わりである)
【0021】
SK1登録で、Aliceは3つのシェア{P、X、Y}を選択し、それらのシェアのうちの2つを結合して機密の秘密鍵S(S=P(○+)Xとして)を作成し、Pを記憶し、AliceのマシンにXを記憶する。次いで、複数の他の形式がJablonの1997年6月の論文に記載されているB−SPEKEプロトコルの形式を使用して、Aliceはパスワード導出値{P、S}に対応する検証子{g、V}を以下のように構築する。すなわち、暗号ハッシュ関数を使用したg=ハッシュ(S)と、適切なグループの累乗法を使用したV=Pである。Aliceは次いでBobに{g、V、Y}を送信し、BobはそれらをAliceの秘密として記憶する。
【0022】
SK1鍵取り出しで、Aliceは(後刻)BobからAlice自身の秘密鍵Uを得る。Aliceは、B−SPEKEプロトコルを使用してBobに対してPとSに関するAlice自身の知識を証明し、Bobと認証されたセッション鍵Kを交渉する。Bobが{g、V}に対するBob自身の知識を使用してAliceを検証した後、BobはKで対称的に暗号化されたYをAliceに送信する。Aliceは次いで解読してYを取り出し、Uを再構築する。このシステムにおけるパスワード導出値Pに対する暴力的な攻撃は、攻撃者が2つの異なるマシン上に記憶されているシェアXとYの両方に対するアクセス権を有することを必要とする。
A: S=P(○+)X
A: g=ハッシュ(S)
A→B: A、Q=g2R
B→A: Q=g2R
A: K=Q
A: K=Q
B: K=Q
B: K=V2R
A→B: ハッシュ(ハッシュ(K、K))
B→A: 暗号化(K、Y)
A: U=P(○+)X(○+)Y
SK1でPに対する暴力的な攻撃を可能にするには、攻撃者はXとYの両方へのアクセス権を有する必要がある。(訳注:明細書中上付き文字Rの次の下付き文字A、BはいずれもRの下付き文字である)
【0023】
ローミング・モデルとパスワードのみの方法は、EKEとSPEKEの両方に基づくプロトコルを作成するためにPerlmanとKaufmanの論文で結合された。これらの筆者は、信用証明書に対する安全なローミングのアクセスにはパスワードのみの方法の単純な形式で十分であることを示した。Gong,Lomas,NeedhamおよびSaltzerの論文、Wuの論文、S.HaleviおよびH.Krawczykの論文「Public−key cryptography and password protocols(公開鍵およびパスワード・プロトコル)」the Fifth ACM Conference on Computer and Communications Security,1998年の議事録、およびP.MacKenzieおよびR.SwaminathanのIEEEP1363作業部会への提出物である論文「Secure Network Authentication with Password Identification(パスワード識別による安全なネットワーク認証)」http://grouper.ieee.org/groups/1363/、1999年7月30日では他のローミング・プロトコルが議論されているが、これらはすべて鍵のクライアント記憶が実用的でない場合に強力なソフトウェアベースの保護を提供するためにネットワーク・メッセージに対するオフラインでの予測による攻撃を停止するように設計されている。
【0024】
変形Diffie−Hellmanは、1994年8月のCRYPTO‘94のセッションで提示された「An encrypted Key Transmission Protocol(暗号化された鍵伝送プロトコル)」と題する論文でEric Hughesによって記載され、またB.Schneier著、1996年Wiley&Sonsから出版の「Applied Cryptography Second Edition(応用暗号化第2版)」と題する書籍の515頁に記載された方法である。通常のDiffie−Hellmanでは、クライアントとサーバの両方が固定したgを知っており、共同してK=gxyを交渉する。しかし変形Diffie−Hellmanでは、クライアント(Alice)はgを送信し、gxyを受信し、サーバからK=gを取り出す。Aliceの秘密指数xはブラインディング係数として使用される。鍵は、K:=(gxy1/xのようにサーバの値を逆転したx乗することによって取り出される。通常のDiffie−Hellman方法とは異なり、Kに対する静的な値は、サーバがクライアントの(Aliceの)gを受信する前にでさえ事前計算することができる。
【0025】
変形Diffie−Hellmanに基づくSPEKEの一形式は本明細書では変形SPEKEと称するが、これは米国特許出願第08/823,961号に記載されている。変形SPEKEで、Aliceは、Pに関するAlice自身の知識、Alice自身のパスワードから導出された値、およびBobに知られているランダム値に基づく鍵Kを導出する。Aliceはパスワードを秘密のランダムなベキx乗し、その結果生じた値(Q)をBobに送信する。BobはQをy乗し、その結果(Q)をAliceに戻す。Aliceは、K=Pという結果になるようにQをxの反転乗することによってKを計算する。
Figure 0004833489
【0026】
Pは、適切な大きな有限群のジェネレータを生じるSHA1またはMD5などのパスワードの暗号ハッシュ関数であることが推奨される。さらなる詳細は、米国特許出願第08/823,961号およびSPEKEに関する他の論文に記載されている。
【0027】
盗まれた検証データのリスクを分散するために、データを複数のマシン間で分割することができる。複数のマシンを使用するネットワーク・プロトコルの設計には、パスワード導出データに対する攻撃の新しい手段を露呈することを防止するための注意が必要である。
【0028】
ディクショナリ攻撃から保護しているシステムに対する別の手法は、1999年IEEESymposium on Security and Privacyの議事録のD.HooverおよびB.Kausikによる「Software Smart Cards via Cryptographic Camoflauge(暗号カモフラージュによるソフトウェア・スマートカード)」で議論されるように、暗号カモフラージュ(本明細書ではCCと称する)と称される技術である。CCシステムは、サーバに記憶されている検証データの脆弱性を低減するという現段階での目的とは対照的に、クライアントに記憶されている秘密鍵の脆弱性を低減させるように導入されたものである。
【0029】
ローミングするユーザを支援するために少なくとも1つのCCシステムが変更されており、それは2つのサーバのローミング解決法を提供する。次に、2つのサーバ・ローミング版を議論する前に基本的なCCシステムを議論するが、この基本的なCCシステムにはユーザと、クライアント・マシンと、CC認証サーバ(CCAS)が含まれる。
【0030】
CCは、公開鍵技術の原理の一部には明らかに違反するが、HooverおよびKausikの論文で議論された目的を達成するように設計された1組の規定による方法で公開鍵技術を使用する。「CC秘密鍵」および「CC公開鍵」という用語は、システムの2つの構成要素を示すために使用される。
【0031】
用語「CC秘密鍵」および「CC公開鍵」の「秘密」と「公開」の用法には、用語「秘密鍵」および「公開鍵」の通常の使用法とは一致しない特別な意味があることに留意されたい。具体的には、CCモデルは、CC公開鍵が公的に知られていないことを前提としている。
【0032】
CC秘密鍵はクライアントに記憶されるが、小さな個人識別番号(PIN)と共に隠蔽される方法で記憶される。これは、記憶されている秘密鍵を同等に信頼できる任意の予想されるPINによって解読する特別の構築を使用する。(この問題は、人間の選択対マシン生成PINと、PINに対する敵の部分的な知識と、関連する脅威とを考察する際に後で議論する。)
【0033】
信頼される関係者だけがCC公開鍵を知る必要がある。CC暗号化秘密鍵が盗まれた場合、CC公開鍵を所有していることによって盗用者はPINに対するディクショナリ攻撃を行う能力を得る。セキュリティの目的を満たすために、CC公開鍵はCCASだけに知られる必要がある。実際には、クライアントは、CCASだけがそれを読み取ることができるようにCCAS公開鍵の下で暗号化された形式でCC公開鍵を記憶することができる。クライアントは、いつCCASに対して認証したとしてもこの暗号化されたパッケージをCCASに送信する。
【0034】
同様に、ユーザのCC秘密鍵によって署名された任意のデジタル署名は、CCASだけに可視的である必要がある。したがってメッセージはまずCC秘密鍵によって署名され、次いでCCAS公開鍵によって封印される。
【0035】
HooverおよびKausikの状態は、検証可能な平文を含んでいるCC秘密鍵の下で暗号化された任意のメッセージはCCASだけに知られる必要があるというより自由な制約であることに留意されたい。実際には、検証可能な平文からは自由である有用なメッセージを作成することは非常に困難であることに留意されたい。平文は検証可能ではないという前提は、適切な検証方法を作成することが攻撃者の巧妙さに依存するシステムのセキュリティに関する問題を未解決のままとする。これらのような未解決の問題は現在のモデルでは受け入れることができず、したがってこの制約に対するより厳格な命題が使用される。以下にCCシステムの概要を示す。
【0036】
CC登録では、クライアントはPINであるP、秘密鍵であるE、および対応する公開鍵Dを選択する。CCがEとDの構築に対して課すさらなる制約があるが、これらについてはここで考察する必要はない。クライアントは以下を記憶する。
CC(P、E) カモフラージュされた秘密鍵
CCASの公開鍵
(D) CCASに対して封印されたクライアントの公開鍵
【0037】
CC認証で、ユーザはPを入力し、クライアントはCC(P、E)からEを取り出す。クライアントはCCASに、
(E(メッセージ))と、
(D)とを送信する。
【0038】
CCASはそのメッセージを認証するためにE(メッセージ)とDの両方を開封し、クライアントの署名を検証する。
【0039】
には、CCASのために鍵の有効性を証明する適切な1組の信用証明書が伴うことを想定することができよう。しかし、DがクライアントとCCASによって共有される秘密のままでなければならないと仮定すると、第3者の信用証明書オーソリティを使用してDを証明するための通常の方法は除外されるだろう。CC秘密鍵とCC公開鍵に対するそれらの制約は共に、いかなる本当の公開鍵システムで使用するためにもそれらが不適切であるということを明らかにしている。
【0040】
CCでは、PINは事実上次の2つの部分に分割される。
CC(P、E) クライアントにだけ知られている
サーバにだけ知られている
【0041】
一般に、Eの下で署名されるかまたはDの下で封印されたすべてのさらなるメッセージは、Dの下でも封印される必要がある。本発明によると、これは2つのサーバによる解決法に変換することができる。
【0042】
CCシステムは、クライアントでのパスワード入力の際のタイピング・エラーを検出する機能によって特別の方法でパスワード入力エラーに対処する。クライアントは、少量のハッシュされたパスワードをクライアントにローカルに記憶された参照データと比較する。しかしこの機構は、記憶されたクライアント・データへのアクセス権を得ている敵に対してパスワードに関する情報を数ビットをリークするという大きな損失を有する。結果は、オンライン予測攻撃に対する所与のレベルのセキュリティに対して、CCシステムのパスワードが若干大きくなるかまたはより複雑になる必要があり、したがって記憶することがより困難になることになる。クライアント上での早期のエラーの検出がサーバ上での不要の作業を防止するという点において、システム上での計算の困難さを軽減するために人がもう少し努力することができるという想定でCCエラー取り扱い機能が設計された。別の理念は、人間がしなければならない作業を軽減するためにコンピュータが使用されるべきであるというものである。システムは、ユーザに罰則を課さずにユーザの誤りに耐性を有しながら依然としてパスワード予測攻撃に対する予測し得る最高の障壁を維持するために努力すべきである。パスワードの入力における悪意のない誤りに最適に対処するシステムは、本発明の好ましい実施態様に含まれる。
【0043】
ローミングの解決法は、公開鍵のインフラストラクチャ(PKI)を提供する複数の企業によって、主としてスマート・カードが使用不可能な場合に「ローミング」ユーザを認証する目的で設計され開発されてきた。このようなシステムでは、ユーザは、<http://www.integritysciences.com/PKI50.html>で入手可能なJ.Kerstetter著「Entrust,VeriSign clear path to PKI」PC Week、1999年6月14日によって議論された遠隔信用証明書サーバから記憶されているユーザ・プロファイル(通常はユーザの秘密鍵を含んでいる)を安全に取り出す。信用証明書サーバに関する他の研究は、PerlmanおよびKaufmanの論文に記載のEKEおよびSPEKEの変形態様を使用する。
【0044】
上述の暗号カモフラージュ・システムは、単一のCCサーバを前提としており、またユーザの鍵情報はクライアントに記憶されていることを前提としている。クライアントに記憶されているデータをCCローミング・サーバ(CCRS)に移動し、第2のユーザのパスワードに関する追加の検証データをCCRSに提供することによって、CCローミングと称される2つのサーバのローミング解決法にこの方法を変換することができる。
【0045】
ユーザは、パスワードと、CCRSに対してクライアントに安全に情報を戻すことができるようにする適切なパスワード認証プロトコルとを使用してCCRSに対して認証する。これは、検証子ベースの、またはいわゆる「拡張」ゼロ知識パスワード・プロトコルを使用することが好ましい。しかし、サーバ認証済みのSSL(セキュア・ソケット層)またはTLSチャネルを介して検証のためにCCRSにクリア・テキストを送信することを含めた代替構築も可能である。SSLは、A.Frier,P.KarltonおよびP.Kocherによる「The SSL 3.0 Protocol(SSL3.0プロトコル)」1996年11月18日、Netscape Communications Corp.で議論されており、TLSは、T.DierksおよびC.Allenによる「The TLS Protocol Version1.0(TLSプロトコル、バージョン1.0)」1999年1月、IETF RFC 2246、http://www.ietf.org/rfc/rfc2246.txt、Internet Activities Boardで議論されている。上述のように、完全な安全性のためには、CCAS PINおよびCCRSパスワードを完全に独立した値として選択する必要がある。これらの値が関連する場合、パスワードに対する攻撃はPINの露出に繋がる危険性がある。
【0046】
本質的に、CCローミングは、CCRS用の1つのパスワードとCCAS用のもう1つのパスワード(PIN)との2つのパスワードのシステムである。CCローミングの1つの顕著な限界は、第1のサーバが第1のパスワードに対する暴力的な攻撃を仕掛ける機会を有するということである。他の2つの関連する問題は、クライアントのエントロピーを使用することの有効性と、PINとパスワードの独立性とである。
【0047】
CCRSに対して認証するためにパスワードを介したSSLと共にCCローミングを使用する場合、E.Felton,D.Balfanz,D.DeanおよびD.Wallachによる「Web Spoofing:An Internet Con Game(ウェブ・スプーフィング:インターネット詐欺)」20th National Information Systems Security Conference,1997年10月7日から10日、Baltimore,Marylandと,http://www.cs.princeton.edu/sip/pub/spoofing.htmlで議論されたサーバ・スプーフィング攻撃と、後述する関連するパスワード/PIN攻撃との両方によるさらなるリスクがある。これらのすべてのケースでは、2つのサーバのうちの1つが攻撃された場合に2つのサーバによる手法の利点の一部が失われる危険性がある。CCRSに対して認証するためにゼロ知識パスワード・プルーフを使用することによってサーバ・スプーフィング攻撃は解消され、関連するPIN/パスワード攻撃をより困難にすることができる。
【0048】
CCローミング・システムは、貴重かつ希少な資源であると考えられるに違いないユーザのパスワードに本来備わっているエントロピーを浪費している。パスワードによる方法の主目的は、所与のレベルのセキュリティを達成するためにユーザが記憶しなければならない情報量(上位ビット数)を最低限に抑えることであることを想起されたい。CCローミング・システムはこれらのビットを浪費し、数点の脆弱性をもたらしている。第1に、HooverおよびKausikは、プロトコル実行前のPINの事前資格審査用にPINのいくつかのビットを使用するよう提案している。かれらは、特別に構築されたPINの小さなハッシュをクライアントに付加的に記憶することによってこれを行う。攻撃者は、候補PINの空間を低減するためにハッシュされたPINを使用することができる。PINのサイズが既に低減されたことを考慮すると、これは危険である。ユーザが選択したPINが許可されるということは、有効なPINの空間を危険なレベルにまで低減させることに繋がりかねない。
【0049】
CCローミング・システムは、ユーザの秘密のエントロピーを人工的に分割するAS PINとRSパスワードの2つのパスワード間の関係によっても損傷を受けやすい。HooverおよびKausikはカモフラージュされたAS PINが他のいかなる目的にも使用されることがあってはならないと明言している。しかしユーザがAS PINをRSパスワードに誤って組み込んだ場合、またはこれらの秘密の間に攻撃者に知られ得る対応関係がある場合、CCローミングの基礎をなすCCシステムは攻撃に対して脆弱になる。
【0050】
関連するパスワード/PIN攻撃は、ユーザがこれらを同じ値として選択した場合、あるいは明らかに区別可能なまたは場合によってはかろうじて区別可能な関係性をもって識別可能な値として選択した場合に可能である。本当に独立したPINとパスワードとを有するユーザが、これらの一方の場所に誤って他方をタイプした場合にも危険はある。
【0051】
複数のユーザに対する広域的な攻撃を想定した場合、まず弱いRSパスワードを有するユーザをクラックすることによって目標空間を縮小し、次いでそれらクラックされたユーザの対応するAS PINをクラックするためにそれらユーザの集合に作業を集中させることができる。このようなRSパスワードに関する情報のリークは、潜在的な攻撃者の全体的な作業を低減させることができる。対照的に、同じRSパスワードとAS PINとを結合すると、理想的な2つのサーバによるシステム(後述する)は、パスワードとPINの両方に依存するクラッキング作業要因を有することになり、より大きな全体的な作業要因が必要となる。
【0052】
したがって、CCローミング・システムに対して秘密を2つの要因に人工的に区画することは新たな脆弱性をもたらし、モデルを弱める。好ましい実施態様の説明では、CCおよびCCローミングに対するより簡単な代替態様は、より強力だが複雑さの点ではより低下しており、ユーザが記憶している秘密に対して少なくとも同等の保護を有するものとして記載されている。
【0053】
すべての単一サーバのローミングによる解決法はインターネットの限界を有する。上記のローミング方法のすべてにおいて、単一の信用証明書サーバは、ユーザのパスワードに関する情報を検証するために使用することができるデータを維持する。ハッシュされたパスワードが暴力によって破壊される危険性があると仮定した場合、パスワード検証サーバは基本的にこの機密のユーザのデータに対して単一の障害点を表すことになる。次に、この問題に対処するシステムを説明する。
【0054】
複数サーバのローミングはさらなる進歩を示す。単一サーバによるシステムはクライアントおよびネットワークからの予測攻撃は防止するが、サーバから盗まれる可能性のあるパスワード検証データに基づく予測は停止させない。複数のサーバによるローミング・システムは、このような攻撃を驚異的な程度にまで防止することができる。認証するためにn個の関連する信用証明書サーバを使用するという代償を払って、複数のサーバによるシステムは、信用証明書サーバのデータベースに対する保護の範囲を拡張する。これらのシステムでは、敵はn−1個のサーバを完全に制御し、有効なユーザの成功裡の信用証明書の取り出し中にこれらのサーバのオペレーションを監視することができるが、それでもなお、残りの損なわれていないサーバによって検出されずに誰のパスワードに対しても1つも予測を検証することはできない。
【0055】
2000年6月、VeriSignは、2000年5月に「VeriSign Introduces New Technology to Enable Network−Based Authentication,Digital Singnatures and Data Privacy(ネットワークベースの認証、デジタル署名およびデータ・プライバシーを可能にする新しい技術をVeriSignが紹介する)」という広報を発表し、高レベルでの複数のサーバによるローミング機能を説明したhttp://www.verisign.com/rsc/wp/roaming/index.htmlにあるウェブページを公表した。W.FordおよびB.Kaliskiによる「Server−Assisted Generation of a Strong Secret from a Password(サーバ支援によるパスワードからの強力な秘密の生成)」と題する論文は2000年6月14日のGaithersburg MDでのIEEE Ninth International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprisesで提示された。この論文の改定版は、2000年9月の議事録に発表された(W.FordおよびB.Kaliski,「Server−Assisted Generation of a Strong Secret from a Password(サーバ支援によるパスワードからの強力な秘密の生成)」9th International Workshops on Enabling Technologies:Infrastructure for Collaborative Enterprises、IEEE、2000年9月の議事録)。これらの論文は、複数のサーバを使用したサーバベースのパスワード・クラッキング攻撃を防止する方法を説明している。2000年6月14日、Ford&Kaliskiの論文に記載の方法は従来のサーバ認証チャネルに依存することに留意されたい。パスワードの安全性に関してこのように従来の安全なチャネルに依存することは、不要かつ潜在的にリスクのある安全性の仮定をもたらす。この依存性を除去することが、本発明の利点の1つである。
【0056】
2000年6月14日の論文に記載の方法のうちの1つは、本発明の好ましい実施態様で使用される上述のような変形SPEKEプロトコルを使用する。2000年6月14日の論文に記載の様々な方法では、複数のサーバがパスワード検証データの秘密を保持する義務を共有している。各サーバはユーザのために秘密を記憶する。クライアントはユーザからパスワードを獲得し、2ステップのプロセスによって各サーバと連係する。最初にクライアントは各サーバからパスワードに基づいて増幅された鍵を獲得し、次いでサーバのそれぞれに対して認証するために使用される「マスター」鍵を生成する。(本明細書では、FordおよびKaliskiの用語である「強化鍵」の代わりに「増幅された鍵」という用語(BellovinおよびMerrittの論文に記載)を使用していることに留意されたい。)各増幅された鍵はユーザのマスター鍵の1つのシェアを表している。クライアントは、マスター鍵を生成する目的で増幅された鍵のシェアを結合するためにハッシュ関数を使用するなどの任意の標準的な技術を使用する。
【0057】
各増幅された鍵を獲得するために、FordおよびKaliskiは2つの基本的な方法を提案する。1つは上述の変形SPEKE方法であり、もう1つはD.Chaumによる「Security without Identification:Transaction Systems to Make Big Brother Obsolete(識別なしのセキュリティ:ビッグブラザーを陳腐化するトランザクション・システム)」Communications of the ACM 28(1985年)1030から1044に記載のスタイルでブラインドRSAデジタル署名を使用する一変形態様である。これらの方法を以下で比較する。
【0058】
サーバは無効アクセスの試行を追跡しており、FordおよびKaliskiによると、成功裡の認証に比べてパスワードの増幅に「甚だしく多くの」ステップがある場合、サーバはさらなる要求を制限またはロックアウトする動作をとる。しかしシステムは有効なユーザによってなされた誤りとパスワードに対する本当の攻撃をよりよく反映する他の事象とを区別しない。したがってこの不成功の試行に対処するためのFordおよびKaliskiのシステムは、一般的な人間の誤りを最適に扱っていない。単純なタイプミスや他の訂正された誤りによる不成功の増幅は、他の不成功の試行のようにみなされるべきではない。本発明はこれらのケースに対処するよりよい方法を提供する。
【0059】
2000年6月14日の論文の方法は、サーバに対する既にセキュリティ保護されたサーバ認証チャネルにさらに依存している。以前の認証に対するこの依存は不要に複雑なセキュリティ・モデルを作成し、したがって攻撃のリスクは増大した。これらのリスクは、単一の障害点を解消する目的とは相容れない場合がある。
【0060】
2000年6月14日の論文に記載のパスワード増幅方法のうちの1つではRSAブラインド公開鍵署名が使用される。この技術は、変形SPEKE方法と同様の効果を達成するが、これらはどちらももう一方の関係者に周知のランダム成分に基づいてパスワードを増幅して大きな鍵にするものである。しかしRSA方法はさらに複雑である。RSAブラインディング方法の詳細はFordおよびKaliskiの論文には含まれていないが、Chaumブラインディングへの参照に基づく一方法は以下のように機能すると想定される。
【0061】
単一の値yの代わりに、サーバは各ユーザに対して値{n,e,y}を維持する。これらの値はどれもパスワードからは導出されない。値nは、pとqをRSAモジュールに適した素数とした場合にp・qに等しく、eはRSA公開鍵であり、yは対応する秘密鍵であり、したがってe=1/d mod(p−1)(q−1)である。基本的に、増幅された鍵はパスワードに対するRSA署名であるKである。xを使用すると、これは、ブラインディング係数xが、それが署名しているデータ(P)をサーバが知ることを防止するChaumの論文に記載のブラインド公開鍵署名方式となる。
【0062】
2000年6月14日の論文では、クライアントに対してKの認証を保証する目的でチャネルを認証するためにSSLが使用されることが提案されている。この論文は、RSAのブラインディング・クライアントが、サーバを事前認証することによる他にnとeの値を検証する良好な(すなわち有効な)方法をまったく有しないという点で、RSAブラインディングに勝る変形SPEKEの利点も指摘している。
【0063】
FordおよびKaliskiは、(従来型)信用証明書サーバに対して認証するために使用される鍵Kにパスワードを増幅するために「パスワード強化サーバ」が使用される「特別なケース」のプロトコルをさらに提案している。Kの値はパスワード強化サーバの応答およびそのパスワードによって完全に決定される。第1の交換を制御する任意の攻撃者は、ユーザが計算するKの値が、ユーザがP’に対する自身の予測に基づいて構築する候補K’の値に等しいかどうかを判定することができるようであってはならない。したがって攻撃者はKを決して見てはいけない。同様に、Kによって暗号化されたメッセージが検証可能な平文を含んでいる場合、攻撃者は同様にそこから予測を検証することができる。この脅威に対抗するために、筆者らは信用証明書サーバ通信チャネルが完全に保護されることを提案する。2000年6月14日の論文は明示的な方法は特定しないが、SSLの使用を提案している。(2000年9月の論文は事前にセキュリティ保護されたチャネルの必要性を回避する方法を議論していることに留意されたい。)クライアントのルート信用証明書の共通のセットが両方のサーバを検証することができると想定される場合、1つまたは複数の単一の障害点がシステムにもたらされる。秘密鍵が常駐する各場所にルートまたは任意の副次的な信用証明書オーソリティに対して単一の故障点がある。このモデルの主目的として単一の故障点を解消することであるということが重大である。
【0064】
前述の攻撃は、当該2つのサーバに対する一見有効そうな信用証明書チェーンを作成するための鍵を有する任意の単一のシステムを損なうことによって達成することができる。さらに前述のように、セキュリティのSSL/ウェブ・ブラウザ・モデルに対する攻撃は、ユーザを騙して悪意のあるサーバへの「有効」SSL接続を使用させるか、またはSSLを一切使用させないようにすることができる。
【0065】
以前のサーバ認証に対する依存は重大な制約である。公衆キオスク、または異なるドメインの広範な様々なサーバに接続可能な個人向けデスクトップなどの消費者環境では、ユーザは適切なサーバの位置を特定してそこに接続する必要がある。適切なサーバに安全に接続し、パスワードの安全性を維持することをユーザに依存することによって問題が生じる。FordおよびKaliskiは安全なサーバ認証チャネルを作成するためにクライアントがSSLを使用できる方法を議論している。これは、クライアントがパスワードのセキュリティを維持するために(何らかの形で)サーバの識別を検証する必要があることを暗示している。また、一般的な実施態様では、サーバに対して通信チャネルを認証するためのサーバ特有状態情報をクライアントが記憶することも暗示している。サーバに対して安全なチャネルを確立するために、SSL解決法は一般的に、クライアントにインストールされた1つまたは複数の信用証明書オーソリティに対して事前インストールしたルート鍵を有することを要求する。これはまた、指名されたサーバのルート鍵と公開鍵を関連付けるように構築した信用証明書のチェーンに対するアクセスをも要求する。クライアントは、ユーザが選択した適切な1つの(または複数の)サーバの信用証明書を検証する信用証明書検証ソフトウェアおよびポリシーの施行を含める必要がある。最後に、ユーザはサーバ・ネームのバインディングが正確であることを保証する必要がある。これは、ユーザによる多大の動作と注目とを必要とする場合がある。特にブラウザ・モデルで使用されるようなSSLへの依存は不必要に危険である。ユーザは、悪意のあるサーバへの「有効」SSL接続を使用するか、またはSSLを一切使用しないように騙される危険性がある。このプロセスは、「人間の誤り」に属する可能性のあるいくつかのタイプの障害を被る。問題は、人間の参加者による非現実的な予測に基づくシステム全体の設計ミスであると考えられる。
【0066】
パスワードの安全性に関する以前のサーバ認証チャネルに対する依存は不要である。本発明の好ましい代替方法は、複数のローミング・ユーザと複数のサーバの環境における通常の人間の挙動によりよく適合したより単純なモデルである。
【0067】
好ましいセキュリティ・モデルは、どちらも複数のサーバを使用するという点で2000年6月14日の論文に類似している。しかし本発明の好ましいモデルでは、クライアントとサーバの間に事前認証された安全なチャネルが存在することは前提ではない。好ましいモデルは、パスワードの安全性を維持するためにサーバの識別を慎重に検証しなければならないという必要性からユーザを解放する。このモデルでは、ユーザは、インターネットで一般的に使用されるような任意の安全でない機構を偶然に使用して自由にサーバを配置することができる。これらの方法は、手動でタイプ(またはミスタイプ)されたURL、安全でないDNSプロトコル、信頼性のないサーチ・エンジン、知られていないソースによって収集されたコレクション中のアイテムを「クリックすること」が含まれる。これらすべての方法およびこれ以上の方法は、正確なサーバへの接続を確立するために堅固な複数の方法を提供するが、これらはどれも詐欺師に接続する機会に対しては保証する必要はない。この単純なモデルに提示された最悪の脅威はサービスの拒否の1つであるが、これはより複雑なモデルでは概して常に存在する脅威である。好ましいモデルに付加された利点は、たとえクライアントが詐欺師に接続したとしてもいかなる手段によってもパスワードが絶対に露出しないということである。
【0068】
従来技術の大部分は、エラーのあるパスワード入力を非常に簡単に取り扱う。2000年6月14日の論文では、各サーバが「パスワード強化」ステップ数を追跡できること、またこの数を成功裡の認証数と照合確認することが提案されている。認証よりも「かなり多くの」強化がある場合、そのアカウントはロックアウトされる。これはパスワードベースのシステムにとっては一般的である。しかし不成功のログインも非常に一般的であることに留意されたい。パスワードはしばしばミスタイプされ、ユーザは複数あるパスワードのうちから、最終的に訂正する前に誤った選択肢を入力することがしばしばある場合がある。長期の固定された制限がそのような誤りにある場合、有効な稚拙なユーザはロックアウトされる可能性がある。一方、システムが3対1の試行対成功比に耐える場合、長期にわたる敵による時折の予測攻撃は未検出のままである場合がある。
【0069】
このエラー取り扱い問題に対処するために、「許容」の概念が本発明に導入された。システムは、知られていないユーザによる無効アクセスの試行と同様の方法で有効なユーザによる一時的な誤りを許し、それを考慮しない。この問題は、本発明の好ましい実施態様で対処される。
【0070】
したがって、本発明の目的は、サーバベースの攻撃の脅威を、パスワードベースのクライアント/サーバ認証システムの単純なセキュリティ・モデルで可能な限り低減することである。複数のサーバを使用した遠隔ユーザ認証を行うことも本発明の目的である。小さいパスワードのみを使用してクライアントからサーバに対して認証することも本発明の目的である。クライアント・マシン上に記憶されている鍵または信用証明書を必要としない認証を行うことも本発明の目的である。耐障害性のために複数のサーバを使用することも本発明の目的である。いかなる個別サーバに完全に動的なリークがある場合でさえも安全な遠隔パスワード認証を行うことも本発明の目的である。パスワード入力における一般的な人間のエラーによりよく対処することも本発明の目的である。
発明の概要
【0071】
上記および他の目的を達成するために、本発明は複数のサーバを使用した遠隔パスワード認証を実施するシステム、方法およびソフトウェアを提供する。システム、方法およびソフトウェアは、複数のサーバ・システムでセキュリティを実施するために変形SPEKEの態様を採用する。
【0072】
本発明によるシステムの一例は、1つまたは複数のクライアントと、ネットワークによって相互に結合されている複数の認証サーバとを含んでいる。このシステムの一例で、クライアントは、iを特定のサーバを指定する変数とした場合に各認証サーバから秘密マスター鍵のシェアであるKを取り出すために変形SPEKEを使用する。クライアントはサーバのそれぞれの各シェアを結合してマスター鍵Kを作成し、このマスター鍵Kはサーバに対して認証し、そのサーバまたはどこかに安全に記憶されている機密データ(自分の秘密鍵を含めて)を取り出して解読するために使用される。
【0073】
各認証サーバは、マスター鍵の単一シェアに対応するランダム値yを個別に知っている。各認証サーバは、クライアントからの最近のアクセス要求のリストを維持し、有効なクライアントから受信したプルーフ・メッセージを検証することによってそれらのアクセスの試行を照合確認する責任をも持つ。具体的には、各サーバは、許容に対する有効な要求を検証することができる場合、有効なユーザのパスワード入力の際の最近の過去のエラーを許す必要がある。
【0074】
通信チャネルを制御する敵がAliceを騙して不適切なマスター鍵Kを使用させることができることを防止するために、Aliceは、敵に露出する可能性のあるあらゆるデータを作成する際に、使用する前にKが正確であることを確認する。認証ステップは、有効なログインを認証するために、事前の最近の合法だが誤ったログイン試行に対する許容を認証し、要求すると共にAliceから各サーバへの署名されたメッセージを使用する。
【0075】
より具体的には、各i番目のシェアSがランダム指数y乗されたAliceのパスワードPに応じて形成される場合、Aliceは登録時にマスター対称鍵Kのn個のシェアを作成する。シェアの任意の正確な部分集合の知識を有する攻撃者が同じ範囲のランダム値からKを区別することができないように、このシェアは関数と結合される。次いでAliceは、i番目のサーバによって緊密に保護された秘密として記憶されるべき各指数yを何らかの形で伝達する。Aliceは、また、デジタル署名用の公開/秘密鍵対{V、U}も選択し、対称的に、自身の暗号化された秘密鍵Uを作成するためにKから導出された鍵を使用して秘密鍵Uを暗号化する。最後に、AliceはパスワードをAliceのマスター鍵にリンクするプルーフ値プルーフPKmを作成する。Aliceはn個のサーバのそれぞれにVを送信し、便宜的な場所、おそらくはサーバのそれぞれにUおよびプルーフPKmを記憶する。登録プロトコルのフローは、Aliceの識別Aを各i番目のサーバBに対して認証する安全なチャネルによって実行される。
クライアント:{登録、A、V、y}→B
クライアント:{記録、A、UKm、プルーフPKm}→B
【0076】
鍵取り出しの時点で、自身のマスター鍵を再構成して自身の秘密鍵を取り出すために、AliceはパスワードQのランダムにブラインドされた形式を各サーバに送信する。各サーバは、ユーザのマスター鍵のブラインドされたシェアを表す秘密指数値(R=Q )乗されたブラインドされたパスワードを含んでいるブラインドされた応答Rに応答する。サーバの少なくとも1つはAliceに対してAliceの暗号化された秘密署名鍵UとプルーフPKmをも送信する。
クライアント:{要求、Q}→B
サーバB:{応答、Q ,U、プルーフPKm}→クライアント
(訳注:明細書において上付き文字yのあとの下付き文字はyの下付である)
【0077】
興味深いことには、AliceがUおよびプルーフPKmを取り出すチャネルはそれらの値の保全性を保証する必要はない。これは節4.4でさらに議論する。
【0078】
Aliceは、各鍵のシェアを得るために各応答をアンブラインドし、Aliceのマスター鍵Kを再構築するためにそのシェアを結合する。Aliceは次いで、プルーフ値プルーフPKmと自身のパスワードPとを使用してマスター鍵が正確かどうかを検証する。プルーフが不正確な場合、これは鍵のシェアの少なくとも1つが不正確であることを暗示しており、Aliceはネットワークに対してKまたはPに関する任意のさらなる情報を露出せずにそのプロトコルをアボートする必要がある。そうでない場合、Aliceの暗号化された秘密鍵(および任意の他のデータ)を解読するためにKから導出された鍵が使用され、次いでAliceは自身の識別を各サーバに提供することによってプロトコルを完了する。各サーバに最近送信された各ブラインドされたパスワードQに対して、Aliceはブラインドされたパスワードの署名されたコピーを送信する。
クライアント:{確認、Q、署名(U、Q)}→B
クライアント:{確認、Q、署名(U、Q)}→B
・・・
【0079】
各サーバは、Aliceからの署名されたQ値を最近受信したブラインドされたパスワードのリストと照合し、有効な署名を伴ういかなる一致するエントリをも除去する。残りのエントリは、適切な時間内では確認されなかったとしても、悪質とラベリングされた疑わしい非合法のアクセス試行とみなされることになる。悪いアクセスの試行をカウントすることは、そのカウントが特定の閾値を超える場合にユーザのアカウントに対してさらなるブラインドされたシェアの応答を制限または遅延させるように使用することができる。
【0080】
Aliceは自身のマスター鍵を検証する必要がある。上述のように、Aliceは安全でないチャネルを介して認証を実行することができる。Aliceは自身の検証子プルーフPKmを取り出し(通常は信用証明書サーバから)、次いでプルーフPKmに対して自身のパスワードの鍵を掛けられたハッシュとそれとを比較することによって再構築されたマスター鍵の有効性を確認する。値が一致しない場合、Aliceはプロトコルをアボートする。
【0081】
本発明者らの方法の別の強化は、Aliceが各サーバに対してマスター鍵の知識をどのように証明するか、また各サーバがこの情報をアクセス試行の独自の記録とどのように照合確認するかに関係している。
【0082】
各サーバは、マスター鍵に関するAlice自身の知識のプルーフを含んでいるAliceからのメッセージを探し、Aliceが自身のパスワードを知っているというプルーフの含意によって不正アクセス試行を検出する。有効なプルーフがブラインドされたパスワード値に関連付けられていない場合、サーバはAliceのアカウントに対して悪いアクセス事象をトリガしなければならない。現在の方法は、Aliceのプルーフの構築と各サーバがパスワード入力の際のAliceの誤りを許すためにどのようにプルーフを使用するかという点で従来技術と異なる。
【0083】
安全なチャネルを使用していない場合、Bに単純にプルーフを送信することによって攻撃を再実行する方法が露出される場合がある。これを防止するために、プルーフはAliceから送信されたブラインドされた要求値を組み込んでいる。さらに、Aliceは時折自分のパスワードをミスタイプすることが容認されており、Aliceは時期尚早のアカウントのロックアウトの原因となる可能性のある自分の不正アクセスのカウントを増分することによって罰せられることはない。Aliceが最終的に正確なパスワードを入力することができたことをサーバに対して後で証明することができる場合、各サーバはAliceの誤りを許すことが望ましい。
【0084】
許容プロトコルを使用することによって、ユーザの悪意のない誤りは許される。Aliceは各成功裡の認証の後で、許容に対する要求の形式で最近の以前の無効アクセス試行の証拠を送信する。この証拠を受信して検証すると、各サーバは記録から誤りを消去するか、または訂正された許容可能な誤りとしてこの事象を記録する。この方法でサーバの事象ログを微調整することによって、システム管理者は、有効なユーザが単純に失敗した時点ではなく、システムが本当に危険な時点に関するより詳細な見解を得る。
【0085】
許容システムは、クライアントの少なくとも1つの署名生成ステップと、サーバのそれぞれに対する1つの署名検証ステップとを要求するように考えられる。計算を最低限に抑えるために(公開署名方法が使用されている場合に計算コストのために重要である場合がある)、署名ステップは、ユーザを認証し、そのユーザから要求が発せられたことを証明する結合された関数を提供する。ユーザに対する有効な認証メッセージを構築する際、クライアントはそのユーザによって発行されたすべての最近のチャレンジ・メッセージの集合を含め、その結果を適切なユーザの鍵によってデジタルに署名し、それをすべてのサーバに送信する。各サーバはユーザを認証するために署名を検証し、同時に自分の最近の許容可能な誤りの証拠を検証する。(これらの署名は、公開鍵デジタル署名システムでクライアントの秘密鍵を使用して作成することができ、クライアントの公開鍵を使用して、または代替方法として、クライアントと各サーバの間で相互に共用される別個の対称鍵によって鍵を掛けられた鍵の掛かったMACを使用して検証される。)
【0086】
Aliceの確認メッセージを受信すると、各サーバはAliceのアクセス試行のプルーフをサーバの記録された最近の試行リストと照合確認することを試行する。サーバは、各Q値に対するAliceの署名を検証することによってこれを実行する。検証が成功すると、その要求メッセージがAliceのマスター鍵を再現するために明確に使用されるかどうかには関わらず、サーバは最終的にパスワードを知っている人物によってQ値が実際に送信されたことを知る。
【0087】
本発明の好ましい実施態様では、どのサーバもパスワード検証子をクラックすることができないように、パスワード検証子の脆弱性はサーバ間に分配される。最高N−1個のサーバまでの任意の数のサーバに対する攻撃がユーザのパスワードまたは任意のパスワードによって保護されたデータを露出しない場合に、N個のサーバまで拡大縮小するシステムが提供される。これは、認証サーバのうちの1つ以外すべてのサーバまでの完全に動的なリークに直面してさえ、また、以前の安全でない通信チャネルに直面しても強力な保証を提供する。パスワードはこのシステムを実施する際の唯一の要因であることを理解されたい。
【0088】
パスワードは、本発明を実施する際に要求される唯一の認証要因であることを理解されたい。パスワードのみによる認証は現在使用されている主流の方法である。本発明では、パスワード要因は可能な限り強力に作成されており、他の要因には依存しない。
【0089】
他の追加的な鍵または信用証明書を使用することができることも理解されたい。本発明は、複数要因システムで使用することができることが想定される。明らかに、ローカル鍵を記憶することができる非ローミングの用途では、強度の付加的な層を提供するためにこれを実行することができる。例えばセキュア・ソケット層(SSL)チャネルを使用することは本発明のシステムのパスワードの安全性に対しては必要ないが、SSLの付加的な使用は、これらのトランザクションを実行する際にユーザ名に対するプライバシー・レベルを増すなどの他の利点を提供する。パスワードの安全性に関するそのような他の要因に対する依存性を除去することによって、システム全体の強度は大幅に増大する。具体的には、本発明は、現在では広範に使用されているウェブ・ブラウザ認証の過度に単純化したパスワードによるSSLシステムに対して可能なウェブサーバのスプーフィング攻撃のクラス全体を停止する。
【0090】
本発明の様々な特徴および利点は、類似の参照番号が類似の構造上の要素を示す添付の図面と共に以下の詳細な説明を参照することによってより容易に理解することができる。
【0091】
(詳細な説明)
図面を参照すると、図1は、本発明の原理による複数サーバ・システム100の一例を示すブロック図である。この例示のシステム100は、1つのクライアント101またはクライアント・コンピュータ101(Alice)と、この例ではネットワーク102によって相互に結合されている2つのサーバB 103とB 104である複数の認証サーバ103、104とを含んでいるように示されている。
【0092】
本発明のシステム100および方法は、クライアント101が複数のサーバ103、104からマスター鍵のシェアを取り出すために変形SPEKE方法を使用する。(数字nは、特定の実施態様で使用されるサーバ103、104の数を示すために使用される。)本発明を実施するために使用されるモデルは、保護されていないチャネルまたはネットワーク102を介して認証メッセージが送信されることを可能にし、安全なチャネル(例えばSSL)は一切必要としない。チャネルを制御する敵がAliceを騙して不適切なマスター鍵を使用させる危険性を防止するために、Aliceは敵に露出する可能性があるいかなるデータを作成するためにマスター鍵を使用する前にでもそのマスター鍵が正確であることを確認する。さらに認証ステップは、許容プロトコルに適応する目的で有効なログイン並びに以前の合法だが誤ったログインを認証するために署名済みメッセージを使用する。指数交換に対するパスワード導出ベースの要素を作成するために独特の関数が提供され、クライアント101とサーバ103、104のより柔軟な構成を可能にする態様を本発明者らは記載する。特別な状況には貴重な場合のある安全性の弱いモデルで代替方法が提供される。
【0093】
好ましい実施態様では、Aliceの潜在的に小さなパスワードとAliceのすべてのパスワード保護データは、最大n−1個までのサーバ103、104の完全に動的なリークがあった場合でさえ安全なままである。Kから導出された鍵によるAliceの機密データの暗号化は、この認証プロセスで正確なパスワードを使用する関係者にのみAliceのデータが入手可能になるよう保証する。
【0094】
登録の時点で、Aliceはパスワードと、マスター鍵Kを作成するために使用される一連のシェア{y、y、…y}とを選択する。この実施例では、マスター鍵導出関数はK=ハッシュ(K‖K‖...K)だが、ここで各シェアはK=P として計算される。但し、他の代替鍵導出関数については後述する。AliceはKを事前計算し、各Biと共に対応する鍵のシェアyとKに対する検証データを記憶する。検証データは、一般に公開鍵デジタル署名またはその代わりに対称鍵MAC関数のどちらかを使用してデジタルに署名されたメッセージである。
【0095】
各サーバBは、yに関するサーバの知識に基づいて変形SPEKEプロトコルを使用してシェアKをAliceに提供する。プロトコルの各実行によって、Aliceのブラインドされた鍵シェアのうちの1つ、この実施例では値m=Pxy が取り出される。Aliceはこれらのシェアを結合しハッシュしてマスター鍵を導出する。この実施例では以下を使用する。
=ハッシュ(m 1/x‖m 1/x‖...m 1/x
ランダムなy値のため、これらの鍵のシェアは独立している。
【0096】
図2を参照すると、Aliceは後でサーバ103、104からマスター鍵を取り出す。クライアント101は、変形SPEKE方法に従ってユーザにパスワード201を入力するよう促し、パスワード202から群要素を導出する。((p−1)/2素数と共にZ の大きなプライム・オーダー部分集合を使用する場合に、そのような関数の一例はP=ハッシュ(パスワード)mod pである。)変形SPEKE方法を使用することによって、Aliceは各サーバB203にブラインドされたパスワード値Pを送信する。各サーバBはブラインドされたパスワード値をm=(P のよう適切なベキ乗し、その結果をAliceに戻す。Aliceは、各鍵のシェアm204の対応するブラインドされた値を取り出し、各結果をアンブラインドし、それらを結合してAliceのマスター鍵205、この実施例では関数K=ハッシュ(m ‖m ‖...m )によって作成する。
【0097】
Aliceが任意のサーバから鍵のシェアKを取り出すための一般的な方法、一般的にBとラベリングされている方法は以下の通りである。
A→B: m=P
→A: m=m
A: K=m 1/x=P
【0098】
が知っている秘密値yは、Bが知っている値yとは完全に独立しており、以下も同様である。したがって、サーバのどれ1つをとっても、KまたはPのどちらかに対してディクショナリ攻撃を仕掛けるために十分な情報は有しない。このプロトコルを使用すると、各Bはyを事前に記憶しており、またマスター鍵Kの単方向関数である検証データVも記憶する。
【0099】
AliceはKを使用して、Kから導出された鍵を使用して暗号化されたコンテナに記憶されている個人の秘密データ208を解読することができる。このコンテナは、サーバ103、104のどれかに記憶されているか、または便利な他の場所に記憶されている場合があり、安全でないチャネルを介して取り出すことができる。しかし、AliceがKに関するAlice自身の知識から導出した任意のデータを任意の他の関係者に露出する前に、AliceはまずKが有効であるかどうかを判定する必要がある208。具体的な検証技術は後述する。
【0100】
が有効でない場合、ローカル・パスワード再試行ポリシーに基づいて、ユーザにはパスワードの再入力を再度試行することが要求される場合がある201。再試行が実行されると、クライアント101は安全な短期メモリでの失敗した交換で使用されるP値を保存する。
【0101】
が有効である場合、AliceはKの知識と、Pの知識と、短期メモリに記憶された同じユーザによって生成された任意の最近の以前のPのリストとのプルーフを構築し、このプルーフをサーバ103、104のそれぞれに送信する207。この場合、Aliceは、暗号化されたコンテナに記憶された秘密鍵によって公開文書に署名するように、Kから導出されたデータを自由に使用することができる209。
【0102】
Aliceは、任意の適切なゼロ知識プロトコルを使用して任意のBに対してKに関する知識を証明することができるが、Kが大きなエントロピーを有しているのでこのゼロ知識・プロトコルはゼロ知識パスワード・プロトコルである必要はない。各サーバBは、Kに対応し、サーバ自体にAliceのKのゼロ知識・プルーフを検証することを可能にする検証データ情報Vを有する。
【0103】
例えば一実施態様では、Kは公開鍵デジタル署名方式に対してユーザの秘密鍵Uを取り出すためにAliceによって使用されるが、ここでVはUに対応するユーザの公開署名鍵である。Aliceは、Bが署名を検証し、これがAliceのKに関する知識を証明する秘密鍵を使用してメッセージに署名するなどの多くの方法でKに関する知識をBに対して証明することができる。
【0104】
からのUの導出も多くの方法で実行することができる。一実施態様では、UおよびVの値は他のデータを使用せずKから直接的に導出することができる。
【0105】
本発明の好ましい一実施態様では、Uの値はKから導出された対称鍵によって暗号化されたコンテナの中に封印して保存される。この実施例の場合、AliceはKを使用して対称暗号鍵を導出し、次いでAlice自身の秘密鍵Uを開封する。
【0106】
Aliceは次いでBに知られているメッセージに署名するが、これはKに関するAlice自身の知識を証明するものである。次いでAliceは署名されたメッセージをBに送信する。本発明の一実施態様では、メッセージはBobからAliceに送信された値RBiである。
→A: RBi、ランダムな一時的な数
A→B: U(RBi)、RBiの彼女の署名
【0107】
別法として、本発明の好ましい実施態様で、AliceはU(Q)を送信するが、これはAliceがQを使用して認証した一員であったことをさらに証明する。AliceがQを認証すべき理由と、良いアクセス試行と悪いアクセス試行とを区別するためにそれを各サーバのニーズにどのように関係付けるかを後述する。
【0108】
第3の手法は、V=gKmの場合、基本的にはKに対するDiffie−Hellman公開鍵である。この場合、Aliceは以下のように認証することができる。
→A: g
A→B: m:=ハッシュ((g
: (m=V)の場合、AliceはKを知らなければならない。
【0109】
Aliceは次いで自分自身を証明するためにEKm(Q)を送信する。
【0110】
いかなる場合でも、AliceはKに対する知識を証明する場合にパスワードPに関する知識も証明する。
【0111】
とyに関する結合された知識によってサーバはPをクラックする能力を得るので、サーバBに単一シェアKを知ることを希望することは適切な判断である。単一サーバの場合、パスワードをクラックするために使用することができるある種のデータをそのサーバが記憶する必要があることは避けられないことであると考えられる。しかし理想的な複数サーバの場合、サーバがP、K、またはKのどれか、またはPをクラックすることに繋がる可能性のある他の何かをサーバが知ることは望ましくない。
【0112】
すなわち各BはPまたはKを知らない。Bはyを使用して変形SPEKEを実行し、Kに関するAliceの知識を認証する。各BはyおよびV、すなわちKに対する検証データとしても働くKに対する検証データ、またはより広範にPに関するAliceの知識に対する検証データとして働くKに対する検証データだけを知っている。
【0113】
登録
登録の時点で、Aliceは自身のパスワード、および公開鍵デジタル署名を実行するために適した公開/秘密鍵対(V、U)を選択する。
【0114】
Figure 0004833489
【0115】
Figure 0004833489
【0116】
各サーバBはKを知らず、パスワードPを知らずにこれを計算することはできないことを留意されたい。さらに良いことには、各BはKまたはPを知らず、他のシェアの知識なくしてVからそれを計算することはできない。Bは、すべてのシェアyを入手しない限り暴力によってさえyからそれを計算することはできない。したがって、すべてのn個のサーバ103、104が損傷されない限り悪意のあるサーバはPを計算することはできないという目的は達成された。y値の1つにさえアクセスすることが不可能であるということによって、暴力は実行不可能になる。
【0117】
オンライン暴力的攻撃の防止
オンライン予測攻撃を防止するために、サーバ103、104は、ユーザ1人あたりベースのプロトコルの実行の回数および/または頻度を制限することを希望する。このような技術は周知である。しかし、このようなシステムを最適化するには、サーバ103、104がプロトコルの有効な実行と無効な実行との間を区別することが必要となる。さらにプロトコルの無効な実行の場合は、合法的なユーザの誤りと疑わしい攻撃との間を区別することも有用である。
【0118】
具体的には、誤って間違ったパスワードをタイプしたユーザと、本当に無許可の認証の試行との間を区別することが望ましい。マシン対マシン認証とは異なり、ユーザ認証での誤りは一般的である。具体的にはパスワード認証では、いくつかの一般的なタイプの誤りがある。おそらくAliceは一時的に自分のパスワードを忘れて類似だが誤ったパスワードをタイプする場合がある。または、Aliceはパスワードを知ってはいるがタイプする際に誤る場合もある。別の一般的な誤りは、Aliceが曖昧に記憶している複数のパスワードから誤った選択肢をタイプするというものである。ユーザが、最後の試行が最終的に有効となった一連のログイン試行中にこのような誤りをなすことは非常に一般的である。仮にサーバがすべてのこのようなケースを疑わしいハッカーの攻撃とみなし、またユーザをロックアウトする前の試行回数に関して厳重な制限を有している場合、ユーザは一般的に自分のシステムから誤ってロックアウトされる場合がある。
【0119】
前述のシステム100で、Aliceは、すべての認証サーバ103、104がAliceの合法ではあるがエラーのあるアクセス試行を攻撃者による予測試行と区別することができるようにすべての認証サーバ103、104に対してAliceの{K‖P}に関する結合された知識を証明することができる。サーバが、おそらくは一定の時間間隔内で、そのようなプルーフを受信しない場合、サーバは、Pによってなされた予測は無効であり攻撃者による無許可のアクセスであると従来通りに推測し、許可された悪い予測の制限に対してそれを不利とみなす。
【0120】
無効アクセス回数にタイプミスが占める割合を最低限に抑えるための1つの手法は、クライアント101での二重の悪い入力を検出し、サーバ103、104に対して反復された二重の悪いパスワードを送信することを防止することである。クライアントのソフトウェアは、特定の入力がサーバによって拒絶されたことを検出すると、ユーザに対して拒絶メッセージを表示する。ユーザが同じ無効入力を反復する場合、クライアントのソフトウェアはそれを認識することができ、そのサーバに再度接触することを防止することができる。最適化は、クライアント101に記憶されているパスワードの露出を最小限に抑えるために短期間だけしか行うことはできない。
許容プロトコル
【0121】
この問題に対するもう1つの新しい手法は、「許容」プロトコルと称することを次に説明する。このシステム100では、誤ったパスワードの多くの事故的な入力が発生すると即座に正確なパスワードの入力が続くことが前提となる。これが発生すると、サーバ103、104は誤った入力を許すことが望ましい。これは、これらの誤りが合法的なユーザによってなされたことが証明された場合に、記録されている無効アクセス試行回数からこの事象を事実上除去することによって行うことができる。許されることにより、自分のパスワードを頻繁にミスタイプするユーザは無許可アクセス試行に関する小さい長期制限を維持するシステム100によって不要に罰則を受けることはない。
【0122】
稚拙な手法は、各成功裡の試行後にそれ以前のすべての無効な試行の記録を単純に消去することである。しかしこれは、パスワードに対する最適な予測回数を行うためにシステムの閾値を知っている攻撃者が実際のユーザによるプロトコルの有効な実行の間にインターリーブすることを可能にする。
【0123】
この問題に対する解決法は、エラーのあるどのアクセス試行が有効なユーザの単なる事故的な誤りであるかを(できるだけ多く)識別し、この情報をサーバに提供することである。これは、プロトコルの各成功裡の実行中にそのユーザによってなされた既知の以前の誤りの証拠をクライアントに送信させることによって行われる。基本的に、クライアントはそれぞれのそのような誤りに対して許しを求める。サーバは、有効なユーザが誤りをなしたことを検証すると、その記録から誤りをディスカウント(除去)する。
【0124】
利点は、無効アクセス回数に対するより厳しい制約は、反復された少数のタイプミスに関してユーザを罰せずにより厳しくすることができる。
【0125】
図3を参照すると、変形SPEKE複数サーバ・システム100の好ましい実施態様で使用されるような、許容プロトコル300(ソフトウェア300として実施される)の一例が示されている。
【0126】
サーバ103は、ユーザごとに以下のデータ変数を維持する。
Z 悪い試行数
N 最近の増幅要求数
R[1..N] 最近のPパスワード増幅要求値リスト
T[1..N] R[1..N]に関連付けられたタイムスタンプのリスト
【0127】
サーバ103はブラインドされたパスワード(P)要求を受信する301。ローカル・ポリシーに従って、ユーザ・アカウントがロックされているかどうかを知るためにユーザ・アカウントがチェックされる302。ロックされている場合は、応答は送信されてはいけない303。アンロックされている場合、ブラインドされたパスワードは短期嫌疑リストに記録され304、ブラインドされた鍵のシェア(Pxy )が作成され305、ブラインドされた鍵のシェア(Pxy )がクライアント101に送信される306。
【0128】
ブラインドされたパスワード要求を記録することは、そのアカウントがロックされておらず、ブラインドされたシェアがクライアントに送信されるべき場合にのみ行われるべきである。しかし安全を期して、記録はブラインドされたシェアが送信される前に行われるべきである。
【0129】
したがって、パスワード増幅プロセス305が発生するログイン試行のたびにNの値は増分され、サーバ103は、その実行で使用されたQの値を短期メモリ315のリスト値R[N]に記録する。サーバ103はさらに、要求が受信された時刻を示す関連するタイムスタンプ値をT[N]に記録する。
【0130】
サーバ103は、陳腐な要求を発見313またはチェックする313ためのプロセスを定期的に実行する。T内の任意のタイムスタンプ値と現在時刻との間の差異が特定の時間間隔以上に大きくなる場合、サーバ103はいかなる対応するR値をも削除する314。この期間の長さは、誤りをなした有効なユーザが正確なパスワードでログインを試行し続けることが予想される典型的な最大時間である場合がある。各R値がリストから除去されると、対応するT値および最近の増幅数Nも同様に除去される。このような事象が発生するたびに、未検証のユーザに対してもう1回パスワード増幅が発生したことを示すために、長期メモリ316にある悪い試行回数Zが増分される。
【0131】
成功裡のログインが行われた場合、クライアント101は、ランダム乗したパスワードと等しいQの値を、同じログイン・セッションの以前の実行のQに対する任意の以前の値と共にデジタルに署名したメッセージ308形式で各サーバ103に送信する。このメッセージはマスター鍵Kに関するユーザの知識から導出された鍵を使用して署名される。この署名は、ユーザの公開鍵Vを有する任意のサーバ103によって検証可能なユーザの秘密鍵Uを使用して、メッセージ上の公開鍵デジタル署名を使用して実行されることが好ましい。
【0132】
別法として、署名は、ユーザとサーバによって共用される鍵による鍵の掛かった鍵を掛けられたMACを計算することによって実行することができる。この場合、鍵はKから直接的に導出することも、Kによって対称的に暗号化された暗号化済みコンテナから得ることもできるが、一般的に共用鍵はそれぞれのユーザ/サーバ関係に対して一意である必要がある。
【0133】
この署名されたメッセージは、サーバによって受信され308、検証される309。検証ステップは、ユーザの公開署名鍵を使用した公開鍵デジタル署名検証であっても、あるいはサーバに既知のユーザ特有鍵を使用した鍵の掛かったMACの確認であってもよい。サーバ103は、すべての最近のQ値のユーザのリストの署名を検証し、それらをリストRの以前の最近の実行で発見された値のリストと比較する309。一致がない場合、リストRは変更されない310。システムは、成功裡のログイン事象としてもまたは不成功のログイン事象としても無効プルーフの受信は一般に取り扱うべきでない。一致がある場合、対応するアクセス試行は短期メモリ315内のリストRから除去され311、対応するタイムスタンプも除去され、Nの値が減分される。
【0134】
サーバ103は、悪い試行数Zまたはおそらくは悪い試行数と最近の未確認増幅(Z+N)の総数を制限することを選択することができる。この制限はユーザ、ユーザの集合、またはシステム規模の制限に対して特有であることができる。同様に、制限が超過された場合に取られるべき動作は、アカウントを永続的にロックアウトすること、一時的にロックアウトすること、かつ/またはシステム管理者に対して警報状態を提示することなど変動する場合がある。技術におけるこのような変動はパスワードベースのシステムでは一般的なことである。
【0135】
サーバ103は、アクセス・イベントを発生させたクライアント101またはネットワーク102に関連付けられた情報を記録することを希望することもできる。サーバ103は、そのようなイベントのアカウントをクライアント1人あたりベースで維持することさえできる。
【0136】
変形SPEKEシステム100では、このようなデータは既に公開されているので、Q値の露出した記録であってもクライアント101またはサーバに対して安全性の脅威を提示しない。
【0137】
許容プロトコルを使用する際の1つの懸念は、共用ワークステーション設定にある。常に長期間にわたって実行されている永続的ログイン・プログラムがある場合、攻撃者は、標的となったユーザの予想到着時刻直前にワークステーションに到着することができ、またその攻撃者は間もなく許されるであろう数点の予測を挿入することができる場合がある。したがって、システム設計者はそのようなイベントの発生する可能性を考慮し、かつおそらくは許容時間ウィンドウを適切に調整する必要がある。この脅威を低減するもう1つの方法は、ログインに対してセッションベースの手法を提示するシステムを使用することである。クライアント101は、数回のアクセス試行に対して活動状態のままであり、次いで非活動状態の期間後に消失するログイン・ウィンドウを開始するために保護注意鍵を使用することができる。このシステムは、それ以前のセッションでなされた無効ログイン試行に対する許しを求めることは一切ないが、単一セッション中の悪い試行以外はすべて許容されることが可能である。ユーザは同様に、共用ワークステーションを使用している場合には常に新しいログイン・セッションを確実に使用するように訓練されるべきである。
【0138】
U(Q)メッセージを分配する明白なプロセスは、Aliceに自身ですべてのN個のサーバ103、104に接触させることである。しかし、これらの活発なマシンに対する割込みを最小限に抑えるために、本発明者らはAliceにサーバ103、104の1つだけに接触させることしかできない。次いでこのサーバ103、104は、証拠を他のすべてのサーバ103、104に伝播させ、また集められた一連の一括された要求でも同様に行うことができる。例えば、現在の間隔で、システムのすべてのユーザに対して「許容を求める」要求を分配するために数分ごとに更新を行うことができる。この技術は割込み数および各サーバに対する通信オーバーヘッド量を低減させることができる。
【0139】
許容プロトコルの概要
このシステム100は、ユーザのアカウントの悪いアクセス試行の持分に対して有効なユーザによる誤りをカウントしないので、「寛大」である。これは、有効な遷移誤りはシステム100に対する脅威としてではなくディスカウントするが、未知のユーザによる無効アクセス試行をカウントおよび制限する能力は依然として保持している。
【0140】
各成功裡の認証後の最近の以前の無効アクセス試行の証拠を送信することによってこれは達成される。この証拠を受信して検証する際、各サーバは記録からその誤りを消去するか、またはそのイベントを訂正された許容可能な誤りとして記録する。この方法でサーバのイベント・ログを微調整することによって、システム管理者は、有効なユーザが単に失敗している時点ではなくシステム100が本当に危険な時点に関するより詳細な見解を得る。
【0141】
許容システム100は、クライアント101での少なくとも1つの署名生成ステップと、サーバ103、104のそれぞれに対する少なくとも1つの署名検証ステップとを要求する。計算を最小限に抑えるために、署名ステップを、ユーザを認証する署名ステップと結合することができる。ユーザに対する有効認証メッセージを構築する際、クライアント101はそのユーザによって発行されたすべての最近のチャレンジ・メッセージの集合を含め、その結果をユーザの秘密鍵でデジタルに署名し、それをすべてのサーバ103、104に送信する。各サーバ103、104はユーザを認証するために署名を検証し、同時にユーザの最近の許容可能な誤りの証拠を検証する。許容システム100のこの実施態様は、いかなる関係者に対しても著しい付加的な計算は一切要求しない。
【0142】
サービスの拒絶
アカウントのロックアウトに対する無効な試行に対して小さい制限を設定すると、サービス攻撃の拒絶の脅威も増加する。攻撃者は、反復した故意の無効アクセス試行を行うことによってシステム100への特定ユーザによるアクセスを単純に拒絶することができる。
【0143】
この問題を緩和する1つの手法は、無効アクセス試行のソースに関する情報をサーバの記録に記録し、またサーバに、より具体的にはソース1つあたりベースでロックアウト・オペレーションを実行させることである。ソース情報は、そのような情報が入手可能な場合に発信側のクライアント・コンピュータ101の名前またはネットワーク・アドレスを含めることができる。
【0144】
拡張子
ユーザが自分のマスター鍵Kを得ると、上述の基本システム100は多くの方法で拡張することができる。各認証サーバ、およびより一般的には任意の他のサーバは、ユーザのマスター鍵Kで対称的に暗号化されたクライアント101に対する秘密ファイルを記憶することができる。このファイルは、強力に暗号化されているので、認証なしにユーザに自由に送信することさえできる。このファイルはユーザの秘密鍵とユーザに関する任意の他の機密データを含めることができる。
【0145】
上述の基本的な複数サーバのプロトコルは、サーバ103、104のある種の部分集合が一時的に使用不可能になるケースを見込んで拡張することができる。
【0146】
シェアKは多くの様々な方法で結合することができることに留意されたい。一例は、Kを構成するために十分なシェアを得るためには、n個のサーバ103、104のうちのいくつかの部分集合mに対するアクセスで十分である場合にN個中M個の認証を可能にするためにこのシステム100を拡張することである。この一例は以下の通りである。
【0147】
各CがKシェアのすべての予想される有効な組み合わせの1つである{C、C、...C}の組み合わせのリストを計算する。例えば、m=n−1の場合、n−1のシェアのすべての有効な組み合わせは以下のように計算することができる。
Figure 0004833489
【0148】
次いでサーバは、K:C={暗号(C、K)、暗号(C、K)、...暗号(C、K)}のx個の異なる対称的な暗号を記憶する。
【0149】
認証の時点で、クライアント101はリストCを取り出し、Kを解読し、Kに関する知識をサーバ103、104に対して証明する。この手法は、mおよびnの小さい値の場合に実用的である場合がある。
【0150】
短い指数の問題
概略的にqのサイズである累乗に対する指数が上述の方法の優勢な損失なので、指数のサイズを低減することが望ましい。能率的なゼロ知識方法に短い指数を提供する1組の方法が、参照により本明細書に組み込んだ1998年8月20日のU.S.PTOによって出願された文書開示番号第443510号のD.Jablonによる「Password Key Exchange using a Composite Modulus(複合モジュラスを使用したパスワード鍵交換)」に記載されている。
【0151】
もう1つの手法は、1996年5月のEurocrypt 96,Springer−Verlagの議事録のP.C.van OorschotおよびM.J.Wienerによって「On Diffie−Hellman Key Agreement with Short Exponents(短い指数によるDiffie−Hellman鍵アグリーメント)」で議論されているような短い指数を使用するというものである。これらの著者は周知の計算の攻撃の相対的な損失を議論し、短い指数の適切なサイズを議論している。
【0152】
しかし、短いランダムな指数に異なるパスワード値をベキ乗した結果生じるドメインが高度に明確な場合、パスワード導出ベースに関する情報をリークするための技術が開発される場合のある可能性を残しているということが依然として懸念である場合がある。
【0153】
[1、o(G)]で均一に分散された値の範囲から選択されたランダムな指数xを使用する際、xに関する知識なくしてPだけに関する知識がPに関する情報を一切露出しないことは明らかである。しかしm<o(G)として範囲[1、m]で短い指数xを使用する際、セキュリティは、計算上の取り扱いにくさの何らかの付加的な仮定に依存している。この場合に対する特別な攻撃を誰かが発見したらどうすればよいのだろうか。
【0154】
Diffie−Hellmanでの短い指数の使用はvan OorschotおよびWienerによって議論されているが、ここで著者らは、いくつかの既知の固定した基数gに対してgのランダムな指数xを計算する最も効率的な周知の方法としてPollardラムダ方法を特定している。ラムダ離散ログ計算は約x1/2のオペレーションを必要とする。パスワード生成Diffie−Hellman交換を解読する単純化した手法は、P’を各候補パスワードに対して構築されたものとした場合に各潜在的な基数P’に対する指数を計算するというものである。しかし、より簡単な解決法があるかも知れないと考える人物もいる可能性がある。
【0155】
問題(1)が暴力的なラムダ攻撃よりも非常に簡単である場合があるという(おそらくは警告されていない)考慮により、本発明者らはモジュラスよりも非常に小さいプライム・オーダーの部分集合を使用することによってAliceとBobの計算を低減させる手法を提案する。少なくとも敵がクライアントのP値だけから情報を決定する場合には計算上の取り扱いにくさのいかなる仮定をも除去することが望ましい。
【0156】
パスワード導出ジェネレータ用のP=f(g・h)方法
問題に対処する一方法は、モジュラスよりも非常に小さいオーダーで大きなプライム・オーダー部分集合を使用する。パスワードをこの部分集合のジェネレータに(比較的効率的に)変換する関数が使用され、計算上の取り扱いにくさの潜在的により少数の仮定をもってサーバの秘密指数に関する情報のリークを低減させることによってセキュリティを効率的に維持する手段が使用される。この実施態様では、値Pは2つ独立したランダムな群要素(g、h)から導出されるが、これら要素のうちの1つhはパスワードの関数に基づいて累乗される。
固定したシステム・パラメータは以下の通りである。
1023<p<21024であり、2159<q<2160、pおよびqが素数の場合にp=k・q+1とする
g=ハッシュ(“g”)mod pとする
h=ハッシュ(“h”)mod p、オーダーqの2つの関係しない要素とする
【0157】
ハッシュ関数はSHA1のような標準的な暗号ハッシュ関数である。この実施例の関数に対する入力ストリングは任意の定数であり、この実施例では単一のASCII文字ストリング「g」と「h」である。gとhは任意の独立した数字であり、したがってgはいかなる既知の指数累乗によってもhに関係していることが知られないことが重要である。
【0158】
登録
Aliceは登録時に以下のステップを実行する。
1からqまでの範囲の乱数、y∈[1、q]を選択する
t=ハッシュ(パスワード)mod qを計算する
P=g・hmod pを計算する
K=Pmod pを計算する
サーバBでyを記憶する
【0159】
指数のパスワード導出tは1997年6月のJablonの論文で示された「指数内パスワード」問題に関する懸念を増大させる。攻撃者は、g =Pのように、固定した基数gとPに対する候補値のディクショナリ{P、P、...}との対応関係を確立するために「指数のディクショナリ」{e、e、...}を作成することが可能であってはならない。
【0160】
gとhがいかなる既知の指数によっても関係付けられないように別個に選択された場合、この問題は回避される。上述のような固定したシステム・パラメータの構築がこれを保証する。
【0161】
何らかの理由で変数パラメータが望まれる場合、クライアント101は、gおよびhの有効性を証明する公開された信用証明書を検証することによってgおよびhが適切であることを検証することができることに留意されたい。信用証明書は、この実施例ではストリング「g」および「h」であるハッシュ関数への単なる入力であってよい。ハッシュ関数が正常でなければならず、かつハッシュ空間が衝突を防止するために十分に大きくなければならない場合、結果として生じる値は基本的に乱数と区別不可能であるべきである。離散ログ問題は、2つのそのようなランダム要素間の指数の相関関係を決定することができないよう保証する。1つのそのような適切なハッシュ関数は、「Secure Hash Standard(安全なハッシュ標準)」、FIPS 180−1、U.S.National Institute of Standards and Technologyに記載のSHA1である。
【0162】
認証
AliceがBobと共に実行するパスワード増幅プロトコルでは、
Aliceは以下のように続行する。
t=ハッシュ(パスワード)mod qを計算する
P=g・hmod pを計算する
x∈[1、q]、1からqの範囲の乱数を選択する
r=Pを計算する
rをBobに送信する
次いでBobは以下を実行する。
(rmod p)≠1またはr=1の場合にプロセスをアボートする。
s=rを計算する
sをAliceに送信する
次いでAliceは以下のステップを実行する。
(smod p)≠1またはs=1の場合にアボートする。
=s1/xmod pを計算する。
【0163】
この方法では、BobとAliceはそれぞれに160ビットの指数によって2つの累乗法を実行する。この方法は、類似のFordおよびKaliski方法と比較した場合、短い指数問題が解決可能であるという仮定の下で、非常に少ない計算によって略同等レベルのセキュリティを提供する。
【0164】
指数の最低サイズと対称鍵との間で任意の正確な等価の相関関係を決定することは困難なので、これは「略」同等とされる。上記の実施例ではランダム指数と部分群のサイズは160ビットであり、対称鍵は80ビットの強度を有し、モジュラスのサイズは1024ビットと仮定する。このような相関関係は厳密に明確に定義付けるのは困難である。1つの参照点として、DSS署名規格は512ビットのモジュラスの160ビットの部分群を使用したことに留意されたい。他の勧告は、通常、160ビットの部分群に対してより大きなモジュラスのサイズを仮定する。いかなる場合でも、全般的に増大する鍵のサイズに対して勧告が変化するにつれて、ここで説明する方法で使用する値のサイズを適切に調整することができる。
【0165】
P=f(g・h)によるモジュラスの構築
p=kq+1でありオーダーqの部分群が使用される上記の方法では、kの係数に関する懸念がある。小さい手段がある種の最低の安全なサイズよりも少ないkのすべての小さな係数に関しては、敵はTmod pを得るために特定の値Tでサーバをプローブすることができる。この結果によって敵はサーバの指数yに関する情報を学習することができる。Sをkのすべての小さい係数の倍数として各小さい係数に関してそれを認める場合、対応する小さな部分群がある。S=2となるようにkを構築することによって、yの低いビットだけがリークされる最低レベルにまで攻撃を低減することができる。一実施態様では、k=S・r、S=2とし、r、qおよびpを素数とした場合にp=kq+1である。
【0166】
yの低いビットだけのリークは、指数yが本当にランダムである場合は重大な問題ではないはずである。その低いビットが別個にランダムであると仮定すると、最低の安全な指数サイズは補償するために1ビットだけ増やすことができる。この1ビットのリークは、yの低いビットをシステム100全体を通して固定された定数とすることによって防止することができる。
【0167】
P=f(g・h)によるセキュリティと効率
プロービング攻撃から情報リークを低減する類似の手法は、yがSの倍数になることを保証することである。ここでもまた、Sが10ビットの数であるとyはS=2になるこの(上記の)場合よりも10ビット大きくなるというように、ランダム性の損失を補償するためにyのサイズが適切に増やされる必要がある。
【0168】
P=f(g、h)方法によって、本発明者らはクライアント101にほんの僅かな計算上の代償を追加する、より信頼性のある短い指数を使用することができる。この方法の性能は、同様に短い指数を使用するが、遥かに大きな群を生成する値Pを伴う方法と比較することができる。この方法は、サーバに対する重要な追加の計算は一切なく、クライアントの第1のメッセージのプローブ可能なセキュリティの保護を得る。クライアントの追加された損失は、t乗されるhの累乗法である。
【0169】
最後に、計算上の取り扱いにくさという仮定を除去することによってセキュリティを向上させる本発明で使用されている手法は、他日、不適切であると証明することができよう。短い指数を使用する計算上の安全性は、離散対数問題が扱いにくいという仮定などの、本発明者らが方法に対して全体として行った他の仮定と等価であることを証明することができる。
【0170】
代替鍵導出関数
鍵のシェア{y、y、...y}からマスター鍵を導出するために代替鍵導出関数が可能である。ここでは3つのそのような関数を示すが、それらの関数の第1の関数は上記の実施例で使用される関数と同じである。
=ハッシュ(P ‖P ‖...P )、連結を使用して
=ハッシュ(P (○+)P (○+)...P )、XOR関数を使用して、
=ハッシュ(P ...P )、群演算子を使用して、
特別な場合、ここで示し、かつさらに後述する結合された鍵導出関数によって群内で累乗法を使用する鍵のシェアを結合するのに有利な場合がある。
=ハッシュ(P ・... )、反復した群累乗法を使用して、
【0171】
次節では、これらの異なる代替関数が方法の異なる実施態様で有利であることを示す。
【0172】
代替フローおよび結合された鍵導出関数
複数のサーバ103、104を認証するための1つの簡単な手法は、クライアント101に以下のように複数のサーバのそれぞれと共に一連の連続したチャレンジ/応答プロトコルを実行させることである。
手法(1)
A: m=P
A→B: m
: m=m
→A: m
A→B: m
: m=m
→A: m
A: K=ハッシュ(m (1/x)、m (1/x)
【0173】
クライアント101に単一P値を複数のサーバ103、104に同時に送信させるもう1つの代替的な手法(2)は、クライアント101が非同期的に応答を収集することができる、サーバ103、104(BおよびB)に同時に並行して応答を計算して送信する作業にあたらせる環境では有利である場合がある。
手法(2)
A: m=P
A→B: m
A→B: m
: m=m
: m=m
→A: m
→A: m
A: K=ハッシュ(m (1/x)、m (1/x)
【0174】
手法(2)は、手法(1)と比較して全体的な実行時間を低減することができる。
【0175】
手法(2)のさらなる最適化は、K=ハッシュ(K ...K)のように、鍵のシェアのグループ積からマスター鍵を導出することである。この場合、Aliceは、自分が実行しなければならない累乗法の量を低減させる計算K=ハッシュ((m (1/x))を実行することができる。
【0176】
具体的には、図4は、最適化された計算によってグループ積鍵導出関数を使用して2つのサーバと共に1つのクライアントのオペレーションを示す本発明の原理による方法の一例400を示す流れ図である。
【0177】
ステップ401では、登録時刻{ユーザID、y、V}が各サーバ103、104に記憶され、P(H=ハッシュ(P))のハッシュの暗号化されたコピーとユーザの秘密鍵Uはユーザの識別子{ユーザID、暗号(K、{H、U})}に関連付けられるかまたは関係付けられたディレクトリに保存される。暗号化されたコンテナは、同様にHを破損せずにUを破損するようにコンテナが変更される危険性がないことを保証するためにメッセージ認証コードを含むことに留意されたい。
【0178】
ログインの時点で、ステップ402では、入力されたパスワード(上記のような)の適切な関数である群要素(P)が作成される。ステップ403では、ブラインドされた鍵のシェア(m=P)が形成される。ステップ404では、ブラインドされた鍵のシェアは各サーバB103およびB104に送信される。
【0179】
ステップ405では、ブラインドされた鍵のシェア(m=m )は第1のサーバ(B)103上で形成される。ステップ406では、サーバBはブラインドされたパスワードを短期メモリに記録し、ステップ407ではブラインドされた鍵のシェア(m)をAliceに送信する。ステップ408で、Aliceは公開ディレクトリからAliceの暗号化されたパスワード検証子Hと秘密鍵Uを獲得する。(ステップ408は任意の便宜的な時点で実行することができる。)ステップ409では、ブラインドされた鍵のシェア(m=m )は第2のサーバ(B)104上で形成される。ステップ410では、第2のサーバ(B)104はmを短期メモリに記録し、ステップ411ではmをAliceに送信する。ステップ412では、Alice101はそのシェアをアンブラインドし、Aliceのマスター鍵K=ハッシュ((m (1/x))を作成する。鍵導出用のシェアのグループ積を使用するK=ハッシュ(P )に留意されたい。
【0180】
ステップ413で、クライアント101はHおよびUを取り出すためにKを使用してディレクトリ・データを解読する。ステップ414および415では、Hがハッシュ(P)に等しくない場合、クライアント101はアボートする。ステップ416では、クライアント101はクライアントの秘密鍵Uを使用してブラインドされたパスワードmを含んでいる署名されたメッセージmを作成し、それをクライアント101が合法的ユーザの代わりに動作していることのプルーフとしてBおよびBに送信する。ステップ417で、各サーバ103、104はユーザの公開鍵Vを使用してメッセージmのm上の署名を検証する。ステップ418および419では、m上の署名が検証されてmが疑わしいログイン要求の短期リスト内で発見される場合、ブラインドされた鍵のシェアmはそのリストから消去される。
【0181】
しかし、サーバBがクライアント101とサーバBの間の媒介物として動作する連鎖的手法の一例のように、メッセージ・フローのシリアル化が必然である場合がある。この場合、本発明者らは、K=ハッシュ(P *y *...y )でのようにブラインドされた鍵の連続的な累乗法を使用してマスター鍵を導出するために代替の結合された鍵導出関数を使用することができる。
手法(3)
A: m=P
A→B: m
: m=m
→B: m
: m=m
→B: m
→A: m
A: K=ハッシュ(m (1/x)
【0182】
とBによって実行される計算の順番は交換可能であり、Bはmを単純に直接的にAに送信できることに留意されたい。この手法は以下で詳述し、図5に示す。代替的な等価のシーケンスは以下の通りである。
手法(4)
A: m=P
A→B: m
→B: m
: m=m
→B: m
: m=m
→A: m
A: K=ハッシュ(m (1/x)
【0183】
結合された鍵導出関数は、シリアル化された手法で媒介物としてのAliceによっても使用することができる。
手法(5)
A: m=P
A→B: m
: m=m
→A: m
A→B: m
: m=m
→A: m
A: K=ハッシュ(m (1/x)
【0184】
Kを導出する際にAliceの累乗計算を低減するために結合された鍵導出関数を使用する手法(5)のこのプロセスは、任意の数のサーバ103、104に明らかな方法で拡張することができる。この手法では、Aliceはmに関するAliceの知識のプルーフをサーバBに、mのプルーフをサーバBに、という具合に送信すべきである。
【0185】
しかし、サーバ103、104が計算で媒介物として動作し、Aliceが媒介の結果に対するアクセス権を有しない場合、Aliceの動的な参加を証明するためには別の手法が必要となる場合がある。AliceがサーバBと直接的に通信するだけの結合された鍵導出関数を使用する2つのサーバ構成の特別な場合を図5に示す。より具体的には、図5は、クライアント101が2つのサーバ103と104のうちの1つだけと通信するオペレーションを示す本発明の原理による方法500の一例を示す流れ図である。
【0186】
ステップ501では、登録時刻{ユーザID、y、V}が各サーバ103、104に記憶され、パスワード(H=ハッシュ(P))のハッシュの暗号化されたコピーとユーザの秘密鍵Uがユーザの識別子{ユーザID、暗号(K、{H、U})}に関連付けられるかまたは関係付けられたディレクトリに保存される。暗号化されたコンテナは、同様にHを破損せずにUを破損するようにコンテナが変更される危険性がないことを保証するためにメッセージ認証コードを含むことに留意されたい。
【0187】
ログインの時点で、ステップ502では、入力されたパスワード(上記のような)の適切な関数である群要素(P)が作成される。ステップ503では、ブラインドされた鍵のシェア(m=P)が形成される。ステップ504では、ブラインドされた鍵のシェアは各サーバB103に送信される。
【0188】
ステップ505では、ブラインドされた鍵のシェア(m=m )は第1のサーバ(B)103上で形成される。ステップ506では、サーバBはブラインドされたパスワードを短期メモリに記録し、ステップ507でブラインドされた鍵のシェア(m)を第2のサーバB104に送信する。ステップ508で、Aliceは公開ディレクトリからAliceの暗号化されたパスワード検証子Hと秘密鍵Uとを獲得する。(ステップ508は便宜的な時点で実行することができる。)ステップ509では、両方の鍵のシェア(m=m )のブラインドされ結合された形式が第2のサーバ(B)104上で形成される。ステップ510では、第2のサーバ(B)104はmを短期メモリに記録する。(サーバは要求値ではなく応答値を記録するということに留意されたい。さらなる説明は以下を参照のこと。)ステップ511でBはmをBに送信し、BはそれをAliceに転送する。ステップ512では、Alice101はその結合されたシェアをアンブラインドし、Aliceのマスター鍵K=ハッシュ(m (1/x))を作成する。鍵導出用の反復された累乗法を使用する、K=ハッシュ(P )に留意されたい。
【0189】
ステップ513で、クライアント101はHおよびUを取り出すためにKを使用してディレクトリ・データを解読する。ステップ514および515では、Hがハッシュ(P)に等しくない場合、クライアント101はアボートする。ステップ516では、クライアント101はクライアントの秘密鍵Uを使用してブラインドされたパスワードmとブラインドされ結合された鍵のシェア値mを含んでいる署名されたメッセージmを作成し、それをクライアント101が合法的ユーザの代わりに動作していることのプルーフとしてBに送信する。BはこのメッセージをBにも送信する。ステップ517で、サーバB103はユーザの公開鍵Vを使用してメッセージmのm上の署名を検証する。ステップ518および519では、m上の署名が検証されてmが疑わしいログイン要求の短期リスト内で発見される場合、ブラインドされた鍵のシェアmはそのリストから消去される。
【0190】
ステップ520では、サーバB103は、ユーザの公開鍵Vを使用してメッセージmのm上の署名を検証する。ステップ521および522では、m上の署名が検証されてmが疑わしいログイン要求の短期リスト内に発見される場合、ブラインドされた鍵のシェアmはそのリストから消去される。
【0191】
この場合、BはAliceとBの間の媒介物である。Aliceは要求値Pの知識をBに対して証明し、応答値(Pxy )の知識をBに対して証明する。サーバBは必ずしもBが正直であると信用してはおらず、BとAliceの両方に周知の特別な値がKの計算に使用されたことのプルーフを有することを必要とするので、このような検証は必要である。この場合、この特別の値はサーバの入力値またはサーバの応答値のどちらかである。
【0192】
前の例示の実施態様のBおよびBの検証オペレーションの対称性に留意されたい。BとBが類似のオペレーションを実行する場合に代替方法を使用することが望ましい場合がある。例えばどちらも入力要求値(Bに対するmとBに対するm)並びに応答値(Bに対するmとBに対するm)の両方を短期リストに記憶することができ、両方をチェックすることによって検証関数を実行することができる。要求または応答値のどちらかが短期リストに記憶されているものと一致する場合に署名が受信されると、次いでその鍵取り出しプロセスが有効であるとみなされる。これらすべての手法のハッシュ関数は、固定長ビットストリングとして扱われる引数の単方向ハッシュ関数として実施することができる。「Secure Hash Standard(安全なハッシュ標準)」,FIPS 180−1 U.S.National Institute of Standards and Technologyで議論されるSHA1標準ハッシュ関数を使用するこの実施態様に示すように複数の関数が連結される。
ハッシュ(x、y)=SHA1(x‖y)
【0193】
他の類似の鍵導出関数は周知である。
【0194】
の検証および前のサーバ認証
通信チャネルのセキュリティは想定されていないので、ユーザのクライアント101は、敵に情報を露出する任意の方法で結合されたマスター鍵を使用する前にその結合されたマスター鍵の有効性チェックを実行する。有効性チェックが失敗すると、ユーザはこのプロセスをアボートする。
【0195】
ユーザがKをチェックする1つの方法は、Kの正確な登録された値に基づいて鍵によって対称的に暗号化された追加メッセージを得ることである。ユーザは、認証サーバ103、104の任意の1つなどの任意の便利な場所からこの暗号化されたメッセージを得ることができる。Kに対する交渉済みの値を使用することで、ユーザはメッセージを解読し、解読されたデータに対して有効性チェックを実行することができる。無効である場合、クライアント101はプロセスをアボートし、Kに対する交渉済みの値に関して情報が一切露出されないことを保証する。
【0196】
メッセージを検証する1つの方法は、データに大きな固定したシステム定数値Jを埋め込むことである。クライアント101は、解読された値がJと一致する場合、その鍵が正確であると確信する。しかし暗号システムに基づいて、敵は、複数の異なる鍵によるメッセージの解読がすべて値Jを含むクリア・テキスト・データを生じるように特別にメッセージを構築することができるという懸念がある場合がある。これは良好に設計された暗号システムでは不可能であるべきだが、これに対する1つの防衛方法はJをパスワードの1つの関数にすることである。
【0197】
一実施態様では、本発明者らはSHA1(“J”‖パスワード)でのようにパスワードの単方向ハッシュを計算する。クライアント101はKを使用してメッセージを解読し、Jの解読された値をSHA1(“J”‖パスワード)と比較し、それらが一致する場合、Kは有効であると想定される。それらが一致しない場合、クライアント101は認証のプロセスをアボートし、Kに対するその無効な値から導出された値は潜在的な敵に一切入手可能にならないよう保証する必要がある。
【0198】
の検証は、Kを作成するために使用された増幅された鍵のシェアのすべてを暗黙的に検証する。
【0199】
シェアの小さな部分群の制限
懸念を起こさせるもう1つの問題は、ネットワーク102を制御する敵が、Pを戻すのではなく、識別要素1のような小さな部分群要素を単純に戻すことができることである。すべてのサーバの応答が小さな群要素の場合、Kは値の小さな集合のうちの1つになるように強いられる。例えば、すべてのサーバの応答が1であるという特別な場合、Kは以下のように定数値を有するように計算される。
=ハッシュ(11/x、11/x、...)=ハッシュ(1、1、...)
【0200】
部分群の制限はKに対する好ましい変形態様の方法では問題ではないが、Jに対する値が固定したシステム定数である場合には問題となりうることに留意されたい。この場合、パスワードに関わらず、Jに関する周知の固定した値を常に露出するように識別要素がメッセージを解読するように、攻撃者は検証データを構築することができる。同様に{y、y、...}がすべて非常に小さい部分群である場合、Jに関する固定した値を発見するようにクライアント101がメッセージを解読する大きなチャンスを得ることができるように敵はメッセージを構築することができる。
【0201】
Kの小さな部分群制限を防止する1つの代替方法は、米国特許出願第08/823,961号および「Encrypted Key Exchange: Password−based protocols secure against dictionary attacks(暗号化鍵交換:ディクショナリ攻撃に対して安全なパスワードベースのプロトコル)」と題するIEEE Symposium on Research in Security and Privacy1992年5月の議事録であるS.BellovinおよびM.Merrittの論文と、「Authentication and Authenticated Key Exchanges(認証および認証済み鍵交換)」Designs Codes and Cryptography、2、107〜125(1992年)と題するW.Diffie,P.C.van OorschotおよびM.Wienerの論文に記載のようにクライアント101にこれを直接的に検出させるというものである。クライアント101がチェックしなければならない特別な場合の数を最小限に抑えるため、クライアント101はまた、要素のより小さな集合、おそらくは集合{1}に解を入れるように受信した値を累乗し、次いで米国特許出願第08/823,961号に記載のような場合に関して試験することもできる。これらの特別な場合を除外することによって、Kに対するより広範な種類の検証試験を安全に使用することができる。
【0202】
{y、y、...y}に対する値を制御し、Pに対する値に関して特別の予測を行う人物によるプロービング攻撃は常に可能であることに留意されたい。ここでの目的は、プロトコルの各実行中に敵に対してPに対して多くても1つしか予測をさせないことなので、これはプロトコルの懸念ではない。
【0203】
グループ・パラメータ内での検証
グループを使用されるべきであると定義するシステム・パラメータは、モジュラスmと(m−1)の任意の必須の係数を含めて、クライアントとサーバの実施態様に内蔵される固定したシステム・パラメータであることが一般的に想定される。これらの値はシステム100のすべてのユーザに対して使用することができる。
【0204】
別法として、これらの方法は、Diffie−HellmanおよびIEEE Std 1363−2000,IEEE Standard Specifications for Public−Key Cryptography,IEEE、2000年8月29日、A.11.1、131頁に記載の関連するプロトコルのための楕円曲線暗号方法では一般的な慣習であるように、楕円曲線の点のグループなどの任意の適切なグループを使用することができる。
【0205】
方法は、サーバによってクライアント101に送信された、またはその反対に送信された変数パラメータも使用することができる。この場合、関係者は、主要性試験を使用することによって、あるいは信頼ある関係者によるかまたはそれらの関係者に対して有効性の十分な保証を提供する任意の他の手段によって生成されたパラメータに対する信用証明書を検証することによってそのパラメータが有効であることを保証することに責任を負う必要がある。
【0206】
「ランダム」指数
秘密指数{y、y、...}はどのような潜在的な敵にも入手不可能であるように選択された独立した数であるべきである。これらの数が任意の潜在的な敵によって独立したランダム値であるようにみなされる限り、これらの数は擬似乱数ジェネレータから導出することで十分である場合がある。一般的な暗号の習慣は、ハッシュ関数を使用してランダム入力の1つまたは複数の共通した秘密ソースから、そのような暗号の目的に対する擬似乱数のシーケンスを導出することである。
【0207】
より脆弱なモデルでの認証
後述するような本発明の好ましい実施態様を開発する過程で、代替方法は、場合によってはゼロ知識パスワード技術を使用せずにより脆弱なモデルで動作するように開発された。理想的ではないが、これらの方法は特別の場合には有用な可能性のある代替態様を提供する。本明細書に記載の3つの実施態様は、クライアントの記憶(本明細書ではAM1と称する)を伴う単一サーバ・システム100と、2つのサーバ・ローミング・システム(AM2)100と、複数サーバ・ローミング・システム(AMM)100である。
【0208】
CCの代替態様
AM1システム100は、単一サーバ環境の場合のCCシステム100に対する1つの代替態様である。AM1システム100は、CCによって強制されたすべての特別な制約を除去し、ユーザの秘密鍵の関数を広げ、それでもなおCCとしてユーザのパスワードに対する少なくとも等価レベルのセキュリティを提供する。CCシステム100は基礎をなす公開鍵システムの使用と、ユーザの秘密/公開鍵対の使用とにある種の強力な制約を課すが、AM1の手法はこれらの制約を解消する。この手法は、CCよりも理解し、構築し、分析しやすいCCに対するより良い代替態様を提供することができる。
【0209】
登録
AM1登録では、クライアント101はPINコードP、秘密鍵E、非対称暗号システムに対する対応する公開鍵Dを選択する。ここではEおよびDに対して課される特別な制約は一切ない。クライアント101は、ゼロ知識の登録プロセスに適切な関数fまたは任意の他の適切に強力なパスワード・システムを使用して、Sに対する検証データとしてS=f(salt、P)とVを構築する。これは1997年6月のJablonの論文で議論されるB−SPEKEなどの低いエントロピーSに耐える強力な拡張パスワード・システムを使用することが好ましい。
クライアントは以下を記憶する:
salt クライアント101にのみ記憶される秘密salt値
認証サーバ(AS)の公開鍵
Ds(V) ASに対して封印されたクライアントのパスワード検証データ
(暗号(K、E)) Kの下で暗号化され、次いでASに対して封印されたクライアントの秘密鍵
クライアントの秘密鍵ではなく公開鍵
【0210】
認証
AM1認証では、ユーザはPを入力し、クライアント101はS=f(salt、P)を計算し、D(V)をサーバに送信し、SおよびVに基づいて適切に強力なパスワード認証をサーバと共に実行する。これはB−SPEKE方法を使用して好適に行うことができる。
【0211】
ユーザがVによって検証されたようにSによって認証されると、サーバは、Sの知識を証明したユーザのみがそれを読むことができるように暗号(K、E)を送信して戻す。KがクライアントのSの知識を証明したB−SLEKEプロトコルによって生成されたセッション鍵である場合に、サーバはEncK2(暗号(K、E))を送信することが好ましい。クライアント101はKおよびKを知っており、したがってEを解読することができる。
【0212】
クライアント101は次いで、一般的な公開鍵の目的で{E/D}鍵対を自由に使用する。EおよびDの使用を認証サーバだけによるトランザクションに限定するCCシステムとは対照的に、EおよびDの使用には一切の制約は課されない。同様に、信用証明書または信用証明書の連鎖はクライアントの公開鍵に関連付けることができる。
【0213】
2つのサーバに対するCCローミングの代替態様
AM2システム100を次に説明する。このシステムは、2つのサーバのローミング解決法で使用するために変更された場合にCCに対する代替態様を提供する。AM2システム100は上記のCCローミング解決法よりも簡単な解決法である。
【0214】
登録
AM2登録では、ユーザは2つのパスワードPとPとを、好適にはPの知識はPに関する情報を露出しないように、またその反対でもあるように独立した値として選ばれるように選択する。ユーザは、各パスワードに対する検証データVとVとをそれぞれに構築する。ユーザは2つのランダム鍵YとYも選択し、K=ハッシュ(Y、Y)を構築する。ユーザは、マスター鍵Kを使用して、好適には秘密鍵Dを含めて対称的に秘密データを暗号化する。
第1の認証サーバASは以下を安全に記憶する。
{V、Y、および任意選択で暗号(K、D)}
第2の認証サーバASは以下を安全に記憶する。
{V、Y、および任意選択で暗号(K、D)}
【0215】
暗号(K、D)がどこにも記憶されていない場合、これらのサーバ103、104のうちの1つはそれを記憶して、クライアント101がPまたはPによって認証するときにそのコピーをクライアント101に戻す必要がある。
ユーザはYを得るためにSを使用してASに対して認証する。
ユーザはYを得るためにSを使用してASに対して認証する。
ユーザのマスター鍵K=ハッシュ(Y、Y、S、S)。
ユーザは鍵Kを使用して自分の暗号化された秘密鍵暗号(K、D)をアンロックする。
【0216】
には特別な制約が一切ないので、1つまたは複数のサーバはEを公然と記憶し、それを暗号化されていない形式でクライアント101に送信することができる。
【0217】
認証
AM2認証では、クライアント101は、ASの検証データVを使用してサーバASによって認証されたセッション鍵KSを得るためにPを使用する。ASはKSの下で対称的に暗号化されたYを戻す。
【0218】
類似のプロセスは、Yを取り出す目的でサーバASに対して認証するためにPを使用してクライアント101によって反復する。
2つのサーバ103、104のうちの1つが暗号(K、D)を戻す。
クライアント101はK=ハッシュ(Y、Y、S、S)を計算し、Dを解読する。
これでDとEはユーザの完全に機能可能な秘密および公開鍵として使用することができる。
【0219】
代替態様
AM2の代替の一実施態様では、クライアント101および/またはユーザ、または認証サーバ103、104の1つまたは両方がサーバの公開鍵の信頼性を事前記憶または検証することができる場合、サーバの記憶されたデータはサーバの公開鍵によってそれを封印することによってカプセル化することができる。これによってデータはサーバにアクセス可能なだけになり、これは対応する秘密鍵を所有する唯一のエンティティであると想定される。このような封印されたデータ・セットは次いで、必要に応じてクライアント101または他の認証サーバに記憶することができる。
【0220】
この方法は、N>2である場合にN個のサーバ103、104の任意の数まで明らかな方法で拡大縮小するということにも留意されたい。N番目のサーバから鍵のシェアを登録し獲得するプロセスは、第1または第2のサーバ103、104に対するプロセスと同一であってよい。結合鍵は必然的に以下のように計算することができる。
K=ハッシュ(k‖k‖...k
【0221】
拡大縮小の問題は後述し、n>m>1の場合にn個のサーバ103、104のうちのm個だけによる成功裡の認証を可能にするために耐障害性の問題が扱われる。
【0222】
非ゼロ知識の複数サーバ方法
次にAMMシステム100を複数サーバ環境に関して説明する。AMMシステム100が、上述の好ましい複数サーバ・ローミング・システム100よりも安全性の脆弱なモデルで動作する。一例は、ゼロ知識のパスワード・プロトコルを一切使用しないが、それでもなお、各Bがパスワードまたはクラック可能なデータを自分のデータベースに記憶しないという特性は維持している。このシステム100の設計および類似の制限を説明する。
【0223】
各AMMサーバBは、上記の好ましいシステム100でのように各ユーザに対して1つのy値を記憶する。各BはAliceからPを受信するがこれはアンブラインドされた形式である。BはK=ハッシュ(P、y)でAliceに応答する。Bはいかなるパスワード導出データを記憶しないので、盗まれたデータベースに対するディクショナリ攻撃の脅威はまったくない。
各サーバBに対して、
A→B:P
→A:K=ハッシュ(P、y
は上記のように計算され、証明される。
【0224】
この方法は通信チャネルに対するさらなる保護を必要とするが、そうしないと盗聴者がPに対してディクショナリ攻撃を仕掛ける危険性がある。ここでの1つの解決法は、1つのSSL/TLSサーバ認証チャネルを使用することである。
【0225】
限界:Bobに対する攻撃
AMMシステム100で対処されない重大な限界は、パスワードがサーバ上で使用されている間に盗まれる危険性があるということである。Bobに対して優先順位の高いアクセス権を得る攻撃者は、Bobのソフトウェアに対して悪意のある変更を行う機会を得る可能性も同様にある。このような変更は悪意のある管理者、悪意または好奇心のあるハッカー、またはウィルスによって間接的にでさえインストールされたパッチまたは更新の形式で行うことができる。Bobがシステム100のユーザに関するPの値を一時的に受信すると、パッチされたソフトウェアが制御権を有し、インターセプトしてこれらのパスワードを収集し、それらを攻撃者に対して入手可能にすることができる。事実上、攻撃者は、自分固有のパスワード・データベースを構築することができる。これはたとえこのようなデータベースが通常はシステム100上には存在しないとしてもである。
【0226】
限界:通信チャネルに対する攻撃
AMMまたは任意の他の非ゼロ知識の複数サーバ方法のもう1つの限界は、Pに対する盗聴者のディクショナリ攻撃を防止するためにチャネルをセキュリティ保護する何らかの他の手段を必要とすることである。これはSSLまたは何らかの他のプロトコルによって達成することができるが、システム100を脆弱にし、ローミング解決法に対して受容不可能にする傾向のある鍵または信用証明書をクライアント101が維持するさらなる必要条件をさらに提示する。
【0227】
パスワード認証の多くの非ゼロ知識形式は可能だが、Bobは一般的に自分のディクショナリ攻撃を可能にするためにこれらのプロトコルの各実行中に情報を受信する。したがって、この情報はBobを損なう攻撃者にもリークされる危険性がある。ゼロ知識のパスワード・プロトコルは、動的なサーバを損なうことによる攻撃を防止する際には不可欠である。
【0228】
本発明の単純化されたセキュリティ・モデル
本発明者らの方法の注目に値する一態様は、それらが非常に単純なセキュリティ・モデルで動作するというものである。クライアント・コンピュータ101は、いかなるユーザまたはサーバ特有状態をも記憶する必要はなく、本発明者らはいかなる構成要素間にも以前にセキュリティ保護または認証された通信チャネルを必要としない。このモデルは、安全な複数サーバ・パスワード認証に対するいかなる従来の方法で提示されるモデルよりも単純である。
【0229】
好ましい実施態様では、クライアント101はユーザまたはいかなるサーバに対しても長期の信用証明書を保存する必要はない。このより単純なモデルは、複数のルート信用証明書オーソリティの一般的なSSL/ブラウザのモデルで提示される場合があるように、追加の障害点を低減する。SSL/ブラウザのモデルは、ユーザからのかなりの量の動作および/または注意を必要とする複雑な信用の連鎖に複数の潜在的な脆弱なリンクを作成する。本発明者らのより単純なモデルは、サーバ103、104の従来の認証に依存するモデルで従来は一般的に「人間のエラー」に属していた重大なリスクを解消する。
【0230】
本発明は広範な適用範囲を有している。本発明の方法の利点はローミングの用途だけに限定されるものではない。非ローミングの用途、ユーザのマスター鍵Kは上記の好ましいシステム100を使用して取り出され、Kはユーザのパーソナル・ラップトップ・マシン上にローカルに記憶されている信用証明書にアクセスして解読するために使用される。これは特別なハードウェアを使用せずに小さなユーザ選択のパスワードと遠隔に記憶されている鍵のシェア係数{y、y、...}によって保護されるクラック不可能なローカル記憶を提供する。敵がすべての関係するネットワーク・サーバ103、104を攻撃したとしても、ローカルのラップトップ・データに対するアクセス権をも有しない限りKおよび保護されたデータが敵に露出することはないという付加的な保証も同様にある。
【0231】
公的にアクセス可能な場所に記憶されている秘密データを解読するための対称鍵を作成するため、認証するために対称鍵を作成するため、封印されたメッセージを受信するための公開/秘密鍵対を直接的に導出するためにマスター鍵を使用することができる。
【0232】
上述のシステム100はスマートカードに対する予測される最良のソフトウェアベースの代替態様を提供する。
【0233】
詳細なプロトコルの説明
以下では、以下の表1に要約された表記法を使用してプロトコルの実施態様を詳細に提示する。
表1.表記法
記号 意味[妥当な例]
によって記憶されている信用証明書のリスト
P パスワード[ハッシュ(パスワード)2rmod p]から導出された対応するGの要素
プライム・オーダーqのグループ
[Z において、p=2rq+1、22j>q>22j−1、2k>p>2k−1、pおよびrは素数]
ハッシュ 暗号ハッシュ関数[SHA1]
j 暴力的な攻撃に抵抗するセキュリティ・パラメータ[80]
k NFS離散ログ攻撃に抵抗するセキュリティ・パラメータ[1024]K AliceとB[ハッシュ(K‖i)]の間で共用される鍵
Aliceのマスター鍵[連結されたシェアのハッシュ ハッシュ(S‖...‖S)mod 2j]
によって記憶された疑わしい悪い試行のリスト
パスワード ユーザのパスワード、0<パスワード<22j[SHA1(ASCIIパスワード)]
ブラインドされた鍵のシェア=Pxy
鍵のシェア=(P)yi
U Aliceの秘密署名鍵
Aliceの暗号化された秘密鍵=暗号(K、U)
V Uに対応するAliceの公開鍵
によって記憶されたAliceの秘密シェア指数
暗号(x、y) 対称鍵xによって暗号化されたメッセージy
解読(x、y) 対称鍵xによって解読されたメッセージy
署名(x、y) 秘密鍵xによって署名されたメッセージy(メッセージyが読まれるように)
【0234】
パラメータ。このプロトコルでは、対称関数に対する所望のビット強度を表すjと、非対称関数のモジュラスに対して要求されるビット数を表すkの2つのセキュリティ・パラメータが定義されている。
【0235】
p、qおよびrを奇数の素数、p=2rq+1、2>p>2k−1、r≠q、および22j>q>22j−1として、GはZ の位数qの部分群と定義されている。P=ハッシュ(パスワード)∧2rmod pの、パスワードを群要素P∈Gにマッピングする関数が使用される。
【0236】
(別法として、p、素数q、および小さな余因数r∈[1、100]などに略等価の位数r・qの点の群と共にGF(p)の楕円曲線群を使用することができる。この場合、すべての累乗法はスカラー点乗法に置き換えられ、P=r・点(ハッシュ(パスワード))と定義される。ここで点は、曲線上に任意の点を発見する目的で擬似乱数ジェネレータをシードするためにハッシュ(パスワード)を使用する。これは、D.JablonによるACM Computer Communications Review第26巻、no.5、1996年10月の「Strong password−only authenticated key exchange(強力なパスワードのみによる認証済み鍵交換)」と題する論文で議論されている。
【0237】
登録。AliceはパスワードPを選択し、P:=ハッシュ(パスワード)2rを計算し、デジタル署名を実行するために適した秘密鍵Uと対応する公開鍵Vとを作成する。次いでAliceは、ランダムに選択されたy[1、q−1]を使用してS:=P として各番目のシェアS∈Gが形成されるn個の鍵のシェアを作成する。次いでAliceは、K:=ハッシュ(S‖...‖S)mod 2によって自分のマスターjビット対称鍵を作成し、U:=暗号(K、U)として自分の暗号化された秘密鍵を作成し、自分の鍵検証データであるプルーフPKm:=ハッシュ(K‖g)を作成する。
【0238】
これらの信用証明書を登録するために、クライアント101は各Bで維持されるリストCに記憶されるべきAliceの信用証明書を送信する。これらは、以下のように、Aの正確な識別を保証する認証済みの通信方法を使用してこれらの動作を実行しなければならない。
クライアント:各i∈[1、n]に対して、{登録、A、y、V、U、プルーフPKm}→B
サーバ:Cに{A、y、V、U、プルーフPKm}を記憶する
【0239】
認証済みの取り出し。認証済みの信用証明書の取り出しの場合、クライアント101とサーバ103、104は以下に列挙する動作を実行する。このプロセスで、各サーバは疑わしい悪いアクセスの試行の記録を含んでいるリストLを維持する。
Figure 0004833489
【0240】
定期的に、おそらくは1分に1回、各Bは、(現在時刻−t)が許容不可能なほどに大きすぎる悪い入力{A、Q、V、t}に関してそのリストLをスキャンする。悪い入力が発見されると、そのエントリはリストから除去され、ユーザAに対して悪いアクセス試行イベントがトリガされる。最適化として、Aliceはすべてのサーバ103、104に対してすべての最近のQ値のリストを認証するために単一の署名を計算して送信するだけでよいということに留意されたい。
【0241】
性能の向上
FK1プロトコルと本発明者らのプロトコルを比較する場合、基礎的なブラインディング関数に対する群算術のコストと、関係する検証関数のコストと、各サーバに対してサーバ認証チャネルを使用することのコスト、利点およびリスクとを含めて考慮すべき要因が数点ある。
【0242】
ブラインディング・オペレーションのコスト。セキュリティ係数j=80およびk=1024によって、新しいプロトコルはFK1よりも非常に高い性能を提供する。q=(p−1)/2を使用すると、各FK1サーバは1つの1023ビット累乗法を実行しなければならず、またクライアントはこれを2つ実行しなければならない。
【0243】
本発明者らの方法を示したようにp=2rq+1を使用する場合、本発明者らは位数2160>q>2159の部分群を使用する。後者の場合、2つのクライアントと1つのサーバの計算は概略で以前の量の1/6にまで低減される。等価の対称および非対称セキュリティ・パラメータを評価するための異なる方法がある場合、マイレージは異なる場合がある。
【0244】
しかし、AliceがP:=ハッシュ(パスワード)2rで864ビットの累乗法を実行しなければならない場合にはクライアントの利点は実現しない。それでも尚、後述する1つのケースようにPの代替構築ではいくつかの利点を再生することができる。
【0245】
現段階ではこの比較は、サーバ認証チャネルのセットアップを解消することによって達成できるいかなる付加的な節約をも無視している。しかし、すべてのサーバ認証を解消することによって、節約は、偽サーバ103、104による少数のオンライン予測を可能にし、かつおそらくは識別Aを盗聴者に露出するという犠牲に見合う場合がある。
【0246】
Pの代替構築。代替構築P:=g・g hash(password)mod q manを使用することができる。これは、相互に周知の指数関係がない位数qの2つのランダム要素である固定したパラメータgとgを使用する。gとgに対して普遍的に受容可能な値を作成する1つの可能性は、g:=ハッシュ(“g1”)2rmod pにあるように、ランダムなオラクルとしてハッシュ関数を使用することである。
【0247】
同じセキュリティ・パラメータを使用して、代替構築は、クライアント101に対して160ビットの累乗法を3つと、サーバに対して1つとを必要とするが、これはFK1と比較してクライアントのコストを53%、サーバのコストを84%低減するものである。
【0248】
認証関数のコスト。上記の方法は、ユーザが自分のブラインドされたパスワードの集合の信頼性を証明するためにデジタル署名を必要とする。幸いながら、クライアントの署名生成は、すべてのサーバ103、104に対する1つまたは複数の最近送信されたパスワード要求を包含するメッセージを作成するために1回実行するだけでよく、またサーバの署名検証はRSAを使用する場合は高速である。
【0249】
さらに、クライアント101での公開鍵署名オペレーションのコストを解消するために、Aliceはその方法の代わりに、AliceがBによって登録する共用秘密鍵K=ハッシュ(K‖i)を使用して、鍵を掛けたメッセージ認証コードによって自分のブラインドされたパスワードの集合に「署名」することができる。この場合Aliceは別個の鍵を登録し、サーバごとに別個の署名を構築する。
【0250】
セキュリティに対する引数。本発明のセキュリティに関して数個の単純な引数を以下に示す。
【0251】
各鍵のシェアは強力な秘密である。各シェアに関する重要なデータは、望ましくは安全な信用証明書サーバの秘密y値にだけ記憶され、変形Diffie−Hellman交換の指数でのみ解放される。この計算は、p=2rq+1の形式の素数を法とするものであるが、これは攻撃者がyに関して得られる情報を極度に制限するものである。プロービング攻撃によって決定することができるのは、yが2rqと共通する係数を有するかどうかということだけである。しかし、yはランダムであり2以外のすべての係数は莫大なので、確率は無視できるほど僅少である。したがって、2000年6月のFordおよびKaliskiの論文で指摘されているように、決定することができる唯一の情報はyの低いビットである。
【0252】
いかなる露出した値にも任意の所与のPによって生成された同等の確率があるので、Aliceは自分のブラインドされた要求メッセージではPに関する情報をまったくリークしない。同様に、Pxy値などの追加のデータが存在する場合でも、y値は攻撃者に周知の任意のデータによってPには関連しないので、攻撃者がPを決定するためには役立たない。
【0253】
Aliceがサーバから任意の無効応答を受信した場合、任意の有用な情報を解放する前にAliceはアボートするので、Aliceの確認メッセージでAliceからチャネルを制御する敵への情報リークの機会は僅少である。結合するハッシュ関数のせいで、マスター鍵の1つのシェアが不正確であると、結合された鍵は圧倒的な確率で不正確となる。同様に、マスター鍵が不正確な場合、同じ理由によって検証子ハッシュ値も不正確となる。したがってそれらが一致する場合、Aliceは自分の鍵が正確であることを確信することができる。
【0254】
通信チャネルは、サーバによって送信されたUとプルーフPKm値の保存性を保証する必要はない。その理由を知るためには、これらの値を偽造してそれらをAliceに送信する悪意ある関係者を想定されたい。最悪の場合、この敵は各実行中にパスワードに対する単一の予測を検証するか、またはサービス攻撃の拒絶を実行することができる。クライアント101がサーバよりも悪い予測により耐えるようには設計されていない場合、これらの攻撃は安全なチャネルのモデルで予想される攻撃と略等価である。幸いながら、人間は、ログインの失敗に対して低い耐性しか有しない傾向があり、何度も繰り返す問題に関してシステム管理者に不平を漏らす可能性がある。しかしクライアント101は、少なくとも当該ユーザが確実にすべての失敗に気づくように設計される必要がある。どちらのモデルでも、敵は少なくとも1つの方向では制限された少数のオンライン予測を行うことしかできず、またメッセージを変更または削除することによってサービスの拒絶の原因となる場合がある。
【0255】
上記のハッシュ(パスワード)2r関数と代替構築のどちらも位数qの要素を保証し、1997年6月のD.Jablonの論文と2000年6月のFordとKaliskiの論文で指摘された指数内パスワードと短い指数問題から保護する。
【0256】
短い指数
計算を低減する代替的な手法はより短い指数を使用することである。例えばp=q+1による群では、1023ビットのqによって範囲[1、2160−1]で指数を使用することができる。Diffie−Hellmanでの短い指数の使用については、1996年5月のvan Oorschot他の論文で議論されている。短い指数を使用する場合、Pollardラムダ方法は周知の固定した基数gに対してgのランダム指数xを計算する最も効率的な周知の方法である。ラムダ離散ログ計算は、約x1/2のオペレーションを必要とする。しかし、より単純な解決法が発見されないという保証はない。
【0257】
ユーザが単純に一連のブラインドされたパスワードを露出するが他の情報は攻撃者に対して一切入手可能でないアボートされるプロトコルを想定されたい。フルサイズの均等に分散したランダム指数x∈[1、o(G)]を使用する場合、P値はPに関する情報をまったく露出しない。
【0258】
短い指数x∈[1、m]、m<<qを使用する場合、セキュリティは計算上の扱いにくさというさらなる仮定を必要とする場合があるが、不要な仮定は除去することが望ましい。この仮定が重要かどうかは未解決の問題である。
【0259】
したがって、短い指数が不要な仮定をもたらすという(おそらくは保証されていない)懸念によって、計算を低減する好ましい手法は、モジュラスよりも非常に小さいプライム・オーダーの部分群を使用するというものである。
【0260】
本発明は、従来技術で使用されるモデルよりも単純なモデルを使用する。このように行う際、人がサーバ103、104を安全に識別すべきなのにそれをしないシステムに固有の問題を解消する。本発明は、クライアントに記憶された鍵または信用証明書を必要とせず、性能は向上させて、またパスワード入力の際に人間のエラーをよりよく管理するための強化された責任によって、より単純なモデルで従来からの目的のすべてを達成する。これらの方法は、非常に少ない計算によって離散ログ攻撃から少なくとも等価レベルのセキュリティでの保護を提供することもできる。
【0261】
以上、複数のサーバを使用した遠隔パスワード認証を行うシステム、方法およびソフトウェアを開示した。上記の実施態様は、本発明の原理の用途を表す多くの特定の実施態様の一部を示しているだけであるということを理解されたい。明らかに、当業者は、本発明の範囲を逸脱せずに多数の他の構成を容易に考案することができる。
【図面の簡単な説明】
【図1】 本発明の原理によるシステムの一例のクライアントとサーバの構成要素を示すブロック図である。
【図2】 本発明の原理によるクライアント・オペレーションの方法の一例を示す流れ図である。
【図3】 本発明の原理によるサーバ・オペレーションの方法の一例を示す流れ図である。
【図4】 2つのサーバを伴う1つのクライアントのオペレーションを示す本発明の原理による方法の一例を示す流れ図である。
【図5】 2つのサーバのうちの1つのサーバだけと通信する1つのクライアントのオペレーションを示す本発明の原理による方法の一例を示す流れ図である。

Claims (21)

  1. 遠隔パスワード認証を行うシステムであって、
    クライアント・コンピュータと、
    複数の認証サーバと、
    クライアント・コンピュータと複数の認証サーバとを相互接続するネットワークと、
    クライアント・コンピュータにパスワードを入力し、複数の認証サーバのそれぞれに一意のランダム値yiを記憶し、パスワードから群要素(P)を導出し、ブラインドされたパスワード値(Px)を複数の認証サーバに送信し、ブラインドされた鍵のシェア(Pxy i)を複数の認証サーバから取り出し、マスター鍵(Km)を作成するためにシェアをアンブラインドして結合し、マスター鍵(Km)を使用してクライアント・コンピュータで暗号化された秘密データを解読するために共同するクライアント・コンピュータで実行されるソフトウェアと複数の認証サーバで実行されるソフトウェアとを含むシステム。
  2. クライアント・コンピュータで動作しているソフトウェアがマスター鍵(Km)を検証するように動作する請求項1に記載のシステム。
  3. クライアント・コンピュータで動作しているソフトウェアがマスター鍵(Km)を使用して暗号化された秘密データを解読するように動作する請求項1に記載のシステム。
  4. クライアント・コンピュータで動作しているソフトウェアが検証されたマスター鍵(Km)を使用して暗号化された秘密データを解読するように動作する請求項2に記載のシステム。
  5. クライアント・コンピュータで動作しているソフトウェアが、検証されたマスター鍵(Km)のプルーフと各ブラインドされたパスワード値(Px)をサーバに送信するように動作する請求項2に記載のシステム。
  6. クライアント・コンピュータと、
    複数の認証サーバと、
    クライアント・コンピュータと複数の認証サーバを相互接続するネットワークとを含むシステムを使用する遠隔パスワード認証を行う方法であって、
    クライアント・コンピュータが、入力されたパスワードから群要素(P)を導出するステップと、
    クライアント・コンピュータが、ブラインドされたパスワード値(Px)を複数の認証サーバに送信するステップと、
    クライアント・コンピュータが、ブラインドされた鍵のシェア(Pxy i)を複数の認証サーバから取り出すステップと、
    クライアント・コンピュータが、マスター鍵(Km)を作成するためにシェアをアンブラインドして結合するステップと、
    クライアント・コンピュータが、マスター鍵(Km)を使用してクライアント・コンピュータで暗号化された秘密データを解読するステップとを含む方法。
  7. クライアント・コンピュータが、マスター鍵(Km)を検証するステップをさらに含む請求項6に記載の方法。
  8. クライアント・コンピュータで動作しているソフトウェアがマスター鍵(Km)を使用して暗号化された秘密データを解読するように動作する請求項に6記載の方法。
  9. クライアント・コンピュータが、検証されたマスター鍵(Km)を使用して暗号化された秘密データを解読するステップをさらに含む請求項7に記載の方法。
  10. クライアント・コンピュータが、検証されたマスター鍵(Km)のプルーフと各ブラインドされたパスワード値(PX)を複数の認証サーバに送信するステップをさらに含む請求項7に記載の方法。
  11. クライアント・コンピュータと、
    複数の認証サーバであって、それぞれの一意のランダム値を含むデータ記憶領域を含む複数の認証サーバと、
    クライアント・コンピュータと複数の認証サーバを相互接続するネットワークとを含む複数サーバ・システムで遠隔パスワード認証を可能にするためのンピュータ・プログラムであって
    クライアント・コンピュータに、入力されたパスワードから群要素(P)を導出させるためのコード・セグメントと、
    クライアント・コンピュータに、ブラインドされたパスワード値(Px)を複数の認証サーバに送信させるためのコード・セグメントと、
    クライアント・コンピュータに、ブラインドされた鍵のシェア(Pxy i)を複数の認証サーバから取り出させるためのコード・セグメントと、
    クライアント・コンピュータに、マスター鍵(Km)を作成するためにシェアをアンブラインドして結合させるためのコード・セグメントと、
    クライアント・コンピュータに、マスター鍵(Km)を使用してクライアント・コンピュータで暗号化された秘密データを解読させるためのコード・セグメントと
    を含むコンピュータ・プログラム。
  12. クライアント・コンピュータに、マスター鍵(Km)を検証させるためのコード・セグメントをさらに含む請求項11に記載のコンピュータ・プログラム。
  13. クライアント・コンピュータに、マスター鍵(Km)を使用して暗号化された秘密データを解読させるためのコード・セグメントをさらに含む請求項11に記載のコンピュータ・プログラム。
  14. クライアント・コンピュータに、検証されたマスター鍵(Km)を使用して暗号化された秘密データを解読させるためのコード・セグメントをさらに含む請求項12に記載のコンピュータ・プログラム。
  15. クライアント・コンピュータに、検証されたマスター鍵(Km)のプルーフとブラインドされたパスワード値(Px)を複数の認証サーバに送信させるためのコード・セグメントをさらに含む請求項12に記載のコンピュータ・プログラム。
  16. ログイン試行回数、増幅数、P x パスワード増幅要求値のリスト、P x パスワード増幅要求値のリストに関連付けられたタイムスタンプのリストを複数の認証サーバ上に維持し、
    ブラインドされたパスワード(P x )要求を受信し、
    ブラインドされたパスワードを短期リストに記録し、
    ユーザ・アカウントがロックされているかどうかを調べるためにユーザ・アカウントをチェックし、
    ブラインドされた鍵のシェア(P xy i )を作成し、
    クライアント・コンピュータがアンロックされている場合にはブラインドされた鍵のシェアをクライアント・コンピュータに送信するようにソフトウェアが共同する請求項1に記載のシステムであって、
    複数の認証サーバで実行されるソフトウェアが、
    複数の認証サーバに、ブラインドされた鍵のシェア(P xy i )が作成されるログイン試行のたびに、増幅数を増分させ、P x パスワード増幅要求値のリストに、ランダムなベキ乗されるパスワードに等しいQ A の値を記録させ、
    複数の認証サーバに、要求が受信された時刻を示すタイムスタンプ値を記録させ、
    複数の認証サーバに、任意のタイムスタンプ値と現在時刻の差異が特定の時間間隔よりも大きくなった場合に判定される陳腐な要求を定期的にチェックさせ、
    複数の認証サーバに、対応するパスワード増幅要求値とタイムスタンプと、増幅数とを削除させ、
    複数の認証サーバに、ログイン試行回数を増分させる
    請求項1に記載のシステム。
  17. 成功裡のログインが行われたときに、クライアント・コンピュータで実行されるソフトウェアが、
    クライアント・コンピュータに、ランダムなベキ乗されるパスワードに等しいQ A の値を同じログイン・セッションの以前の実行のQ A に対する任意の以前の値と共に、暗号化されたメッセージの形式で各認証サーバに送信させ、
    クライアント・コンピュータに、マスター鍵K m を使用してこのメッセージを認証させる、請求項16に記載のシステム。
  18. 複数の認証サーバが、ログイン試行回数と、増幅数と、P x パスワード増幅要求値のリストと、複数の認証サーバ上のパスワード増幅要求値のリストに関連付けられたタイムスタンプのリストとを維持するステップと、
    複数の認証サーバが、ブラインドされたパスワード(P x )要求を受信するステップと、
    複数の認証サーバが、ブラインドされたパスワードを短期リストに記録するステップと、
    複数の認証サーバが、ユーザ・アカウントがロックされているかどうかを調べるためにユーザ・アカウントをチェックするステップと、
    複数の認証サーバが、ブラインドされた鍵のシェア(P xy i )を作成するステップと、
    複数の認証サーバが、クライアント・コンピュータがアンロックされている場合にはブラインドされた鍵のシェアをクライアント・コンピュータに送信するステップとをさらに含む請求項6に記載の方法であって、
    複数の認証サーバで実行されるソフトウェアが、
    複数の認証サーバに、ブラインドされた鍵のシェア(P xy i )が作成されるログイン試行のたびに、増幅数を増分させ、P x パスワード増幅要求値のリストに、ランダムなベキ乗されるパスワードに等しいQ A の値を記録させ、
    複数の認証サーバに、要求が受信された時刻を示すタイムスタンプ値を記録させ、
    複数の認証サーバに、任意のタイムスタンプ値と現在時刻の差異が特定の時間間隔よりも大きくなった場合に判定される陳腐な要求を定期的にチェックさせ、
    複数の認証サーバに、対応するパスワード増幅要求値とタイムスタンプと、増幅値とを削除させ、
    複数の認証サーバに、ログイン試行回数を増分させる、請求項6に記載の方法。
  19. クライアント・コンピュータが、ランダムなベキ乗されるパスワードに等しいQ A の値を同じログイン・セッションの以前の実行のQ A に対する任意の以前の値と共に、暗号化されたメッセージの形式で各認証サーバに送信するステップと、
    クライアント・コンピュータが、マスター鍵K m を使用してこのメッセージを認証するステップをさらに含む請求項18に記載の方法。
  20. 複数の認証サーバに、ログイン試行回数と、増幅数と、P x パスワード増幅要求値のリストと、複数の認証サーバ上のパスワード増幅要求値のリストに関連付けられたタイムスタンプのリストとを維持させ、
    複数の認証サーバに、ブラインドされたパスワード(P x )要求を受信させ、
    複数の認証サーバに、ブラインドされたパスワードを短期容疑リストに記録させ、
    複数の認証サーバに、ユーザ・アカウントがロックされているかどうかを調べるためにユーザ・アカウントをチェックさせ、
    複数の認証サーバに、アンロックされている場合にはブラインドされた鍵のシェア(P xy i )を作成させ、 ブラインドされた鍵のシェアをクライアント・コンピュータに送信させ、
    複数の認証サーバに、ブラインドされた鍵のシェア(P xy i )が作成されるログイン試行のたびに、増幅数を増分させ、P X パスワード増幅要求値のリストに、ランダムなベキ乗されるパスワードに等しいQ A の値を記録させ、
    複数の認証サーバに、要求が受信された時刻を示すタイムスタンプ値を記録させ、
    複数の認証サーバに、任意のタイムスタンプ値と現在時刻の差異が特定の時間間隔よりも大きくなった場合に判定される陳腐な要求を定期的にチェックさせ、
    複数の認証サーバに、対応するパスワード増幅要求値とタイムスタンプと、増幅数とを削除させ、
    複数の認証サーバに、ログイン試行回数を増分させる
    ためのコード・セグメントをさらに含む請求項11に記載のコンピュータ・プログラム。
  21. クライアント・コンピュータに、ランダムなベキ乗されるパスワードに等しいQ A の値を同じログイン・セッションの以前の実行のQ A に対する任意の以前の値と共に、暗号化されたメッセージの形式で各認証サーバに送信させ、
    クライアント・コンピュータに、マスター鍵K m を使用してこのメッセージを認証させる
    ためのコード・セグメントをさらに含む請求項20に記載のコンピュータ・プログラム。
JP2002502962A 2000-06-05 2001-05-31 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア Expired - Fee Related JP4833489B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US20925800P 2000-06-05 2000-06-05
US60/209,258 2000-06-05
US21583500P 2000-07-03 2000-07-03
US60/215,835 2000-07-03
PCT/US2001/017979 WO2001095545A2 (en) 2000-06-05 2001-05-31 Systems, methods and software for remote password authentication using multiple servers

Publications (2)

Publication Number Publication Date
JP2003536320A JP2003536320A (ja) 2003-12-02
JP4833489B2 true JP4833489B2 (ja) 2011-12-07

Family

ID=26903984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002502962A Expired - Fee Related JP4833489B2 (ja) 2000-06-05 2001-05-31 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア

Country Status (7)

Country Link
US (1) US7139917B2 (ja)
JP (1) JP4833489B2 (ja)
KR (1) KR100769482B1 (ja)
CN (1) CN1249972C (ja)
AU (1) AU6816101A (ja)
TW (1) TWI233739B (ja)
WO (1) WO2001095545A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463467B2 (en) 2020-01-09 2022-10-04 Kyndryl, Inc. Advanced risk evaluation for servers

Families Citing this family (222)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181953B1 (en) 2013-09-16 2019-01-15 Amazon Technologies, Inc. Trusted data verification
US7596223B1 (en) * 2000-09-12 2009-09-29 Apple Inc. User control of a secure wireless computer network
US6959394B1 (en) * 2000-09-29 2005-10-25 Intel Corporation Splitting knowledge of a password
US20030115452A1 (en) * 2000-12-19 2003-06-19 Ravi Sandhu One time password entry to access multiple network sites
US7197765B2 (en) * 2000-12-29 2007-03-27 Intel Corporation Method for securely using a single password for multiple purposes
US7590859B2 (en) * 2001-08-24 2009-09-15 Secure Computing Corporation System and method for accomplishing two-factor user authentication using the internet
US20030084302A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation Portability and privacy with data communications network browsing
US20030084172A1 (en) * 2001-10-29 2003-05-01 Sun Microsystem, Inc., A Delaware Corporation Identification and privacy in the World Wide Web
US7085840B2 (en) * 2001-10-29 2006-08-01 Sun Microsystems, Inc. Enhanced quality of identification in a data communications network
US7275260B2 (en) 2001-10-29 2007-09-25 Sun Microsystems, Inc. Enhanced privacy protection in identification in a data communications network
US20030084171A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation User access control to distributed resources on a data communications network
US7610390B2 (en) * 2001-12-04 2009-10-27 Sun Microsystems, Inc. Distributed network identity
US7325065B1 (en) * 2001-12-21 2008-01-29 Aol Llc, A Delaware Limited Liability Company Identifying unauthorized communication systems using a system-specific identifier
FR2834153B1 (fr) * 2001-12-21 2004-04-23 France Telecom Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
US7571239B2 (en) * 2002-01-08 2009-08-04 Avaya Inc. Credential management and network querying
KR100398161B1 (ko) * 2002-02-26 2003-09-26 한국정보보호진흥원 서버의 사전 탐색 공격을 고려한 패스워드 기반의 사용자인증 프로토콜
KR100450953B1 (ko) * 2002-03-05 2004-10-02 삼성전자주식회사 암호를 이용한 사용자 인증방법
US7120797B2 (en) * 2002-04-24 2006-10-10 Microsoft Corporation Methods for authenticating potential members invited to join a group
US6718536B2 (en) * 2002-06-21 2004-04-06 Atmel Corporation Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications
KR100458254B1 (ko) * 2002-07-26 2004-11-26 학교법인 성균관대학 패스워드 강화 프로토콜을 이용한 패스워드 기반 키 분배방법
US7725730B2 (en) * 2002-08-09 2010-05-25 Emc Corporation Cryptographic methods and apparatus for secure authentication
AU2002337588A1 (en) * 2002-09-23 2004-04-08 Avner Geller Method and system for authentication
US7426382B2 (en) * 2002-10-09 2008-09-16 Motorola, Inc. Contact validation and trusted contact updating in mobile wireless communications devices
US20040073795A1 (en) * 2002-10-10 2004-04-15 Jablon David P. Systems and methods for password-based connection
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
US9503470B2 (en) * 2002-12-24 2016-11-22 Fred Herz Patents, LLC Distributed agent based model for security monitoring and response
US7480384B2 (en) * 2003-02-10 2009-01-20 International Business Machines Corporation Method for distributing and authenticating public keys using random numbers and Diffie-Hellman public keys
CA2422334C (en) * 2003-03-17 2009-06-09 British Telecommunications Public Limited Company Authentication of network users
US7836493B2 (en) 2003-04-24 2010-11-16 Attachmate Corporation Proxy server security token authorization
US6994249B2 (en) * 2003-05-27 2006-02-07 Cardinal Health Technologies, Llc System and method for drug management utilizing transferable labels
US8769680B2 (en) * 2003-06-12 2014-07-01 International Business Machines Corporation Alert passwords for detecting password attacks on systems
US8214884B2 (en) * 2003-06-27 2012-07-03 Attachmate Corporation Computer-based dynamic secure non-cached delivery of security credentials such as digitally signed certificates or keys
JP3854954B2 (ja) * 2003-09-05 2006-12-06 キヤノン株式会社 データ共有装置
US7565702B2 (en) * 2003-11-03 2009-07-21 Microsoft Corporation Password-based key management
US20050129244A1 (en) * 2003-12-16 2005-06-16 International Business Machines Corporation System and method for mitigating denial of service attacks on trusted platform
KR100744531B1 (ko) * 2003-12-26 2007-08-01 한국전자통신연구원 무선 단말기용 암호키 관리 시스템 및 방법
FR2865051B1 (fr) * 2004-01-14 2006-03-03 Stg Interactive Procede et systeme pour l'exploitation d'un reseau informatique destine a la publication de contenu
FR2865590A1 (fr) * 2004-01-23 2005-07-29 France Telecom Procede pour etablir, a partir d'un jeu de grands nombres premiers, un jeu de cles destine a prouver l'authenticite d'une entite ou l'integrite d'un message
US7818416B2 (en) * 2004-02-27 2010-10-19 Teamon Systems, Inc. Communications system and method for accessing a server and preventing access blocking and minimizing network traffic
US7770032B2 (en) * 2004-04-06 2010-08-03 Telecom Italia S.P.A. Secure logging for irrefutable administration
US20050289645A1 (en) * 2004-06-25 2005-12-29 Kyocera Mita Corporation Image processing device and program
US8214649B2 (en) * 2004-06-30 2012-07-03 Nokia Corporation System and method for secure communications between at least one user device and a network entity
WO2006003675A2 (en) * 2004-07-12 2006-01-12 Syed Ibrahim Abdul Hameed Khan System, method of generation and use of bilaterally generated variable instant passwords
US7373516B2 (en) * 2004-08-19 2008-05-13 International Business Machines Corporation Systems and methods of securing resources through passwords
KR100608604B1 (ko) * 2004-09-15 2006-08-03 삼성전자주식회사 객체 식별자를 이용하여 이동형 저장 장치에서 권리객체를 검색하는 방법 및 장치
US7784089B2 (en) * 2004-10-29 2010-08-24 Qualcomm Incorporated System and method for providing a multi-credential authentication protocol
EP1846830B1 (en) * 2004-12-20 2020-07-08 Biogy, Inc. Access keys
WO2006085207A1 (en) * 2005-02-11 2006-08-17 Nokia Corporation Method and apparatus for providing bootstrapping procedures in a communication network
US20090158049A1 (en) * 2005-04-06 2009-06-18 Michael Stephen Fiske Building a security access system
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
US9087218B1 (en) 2005-08-11 2015-07-21 Aaron T. Emigh Trusted path
US7793335B2 (en) * 2005-09-12 2010-09-07 International Business Machines Corporation Computer-implemented method, system, and program product for managing log-in strikes
US7783041B2 (en) * 2005-10-03 2010-08-24 Nokia Corporation System, method and computer program product for authenticating a data agreement between network entities
US7984482B1 (en) * 2005-12-16 2011-07-19 Oracle America, Inc. Global account lockout (GAL) and expiration using an ordered message service (OMS)
US8495380B2 (en) * 2006-06-06 2013-07-23 Red Hat, Inc. Methods and systems for server-side key generation
US20080126808A1 (en) * 2006-07-05 2008-05-29 Cms Products, Inc. Encrypted dataset access by custodians
US8527770B2 (en) * 2006-07-20 2013-09-03 Research In Motion Limited System and method for provisioning device certificates
US8301897B2 (en) * 2006-08-23 2012-10-30 Cisco Technology, Inc. Challenge-based authentication protocol
US8645706B2 (en) * 2006-08-31 2014-02-04 Red Hat, Inc. Preventing error in an access protocol
US8042155B1 (en) * 2006-09-29 2011-10-18 Netapp, Inc. System and method for generating a single use password based on a challenge/response protocol
US7958356B1 (en) * 2006-09-29 2011-06-07 Netapp, Inc. System and method for establishing a shared secret among nodes of a security appliance
US8245050B1 (en) * 2006-09-29 2012-08-14 Netapp, Inc. System and method for initial key establishment using a split knowledge protocol
JP4944203B2 (ja) 2006-10-26 2012-05-30 クゥアルコム・インコーポレイテッド 無線通信システムにおけるキャリア周波数オフセット推定おびフレーム同期のための方法および装置
US8838975B2 (en) * 2006-10-31 2014-09-16 Blackberry Limited System and method for protecting a password against brute force attacks
US8752181B2 (en) * 2006-11-09 2014-06-10 Touchnet Information Systems, Inc. System and method for providing identity theft security
US9002003B2 (en) * 2006-11-29 2015-04-07 Certicom Corp. Password protocol for data communication system
US8611542B1 (en) 2007-04-26 2013-12-17 Netapp, Inc. Peer to peer key synchronization
US8824686B1 (en) 2007-04-27 2014-09-02 Netapp, Inc. Cluster key synchronization
US8196182B2 (en) 2007-08-24 2012-06-05 Netapp, Inc. Distributed management of crypto module white lists
NO327765B1 (no) * 2007-08-29 2009-09-21 Message Man As Fremgangsmate og et arrangement relatert til sikkerhetsmekanismer for meldingsbaserte elektroniske transaksjoner
JP4924943B2 (ja) * 2007-09-04 2012-04-25 Kddi株式会社 認証付鍵交換システム、認証付鍵交換方法およびプログラム
US9774445B1 (en) 2007-09-04 2017-09-26 Netapp, Inc. Host based rekeying
CN101388813B (zh) * 2007-09-14 2010-12-22 英业达股份有限公司 企业用软件注册方法及系统
DE102007000589B9 (de) * 2007-10-29 2010-01-28 Bundesdruckerei Gmbh Verfahren zum Schutz einer Chipkarte gegen unberechtigte Benutzung, Chipkarte und Chipkarten-Terminal
DE102007000587A1 (de) 2007-10-29 2009-04-30 Bundesdruckerei Gmbh Verfahren zum Freischalten einer Chipkartenfunktion mittels Fernüberprüfung
KR101452708B1 (ko) * 2008-02-01 2014-10-21 삼성전자주식회사 Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체
US20090202081A1 (en) * 2008-02-08 2009-08-13 Ayman Hammad Key delivery system and method
DE102008000348B4 (de) 2008-02-19 2011-04-07 Compugroup Holding Ag Verfahren zur Signierung eines medizinischen Datenobjekts
US8254577B2 (en) * 2008-02-20 2012-08-28 International Business Machines Corporation Validation of encryption key
US9479339B2 (en) * 2008-02-29 2016-10-25 Blackberry Limited Methods and apparatus for use in obtaining a digital certificate for a mobile communication device
US10015158B2 (en) * 2008-02-29 2018-07-03 Blackberry Limited Methods and apparatus for use in enabling a mobile communication device with a digital certificate
US8464058B1 (en) 2008-04-08 2013-06-11 Hewlett-Packard Development Company, L.P. Password-based cryptographic method and apparatus
US8140855B2 (en) * 2008-04-11 2012-03-20 Microsoft Corp. Security-enhanced log in
FR2931336B1 (fr) * 2008-05-19 2011-02-11 Eads Secure Networks Procedes et dispositifs d'emission et d'authentification de messages pour garantir l'authenticite d'un systeme
US7522723B1 (en) 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information
WO2010011747A1 (en) * 2008-07-22 2010-01-28 New Jersey Institute Of Technology System and method for protecting user privacy using social inference protection techniques
US8813197B2 (en) * 2008-12-15 2014-08-19 Novell, Inc. Techniques for network process identity enablement
DE102009000404B4 (de) 2009-01-26 2024-05-29 Bundesdruckerei Gmbh Verfahren zur Freischaltung einer Chipkartenfunktion, Lesegerät für eine Chipkarte und Chipkarte
DE102009000408A1 (de) 2009-01-26 2010-09-16 Bundesdruckerei Gmbh Lesegerät für eine Chipkarte und Computersystem
US8272040B2 (en) 2009-01-29 2012-09-18 International Business Machines Corporation Preventing inadvertent lock-out during password entry dialog
US8856879B2 (en) * 2009-05-14 2014-10-07 Microsoft Corporation Social authentication for account recovery
US9124431B2 (en) 2009-05-14 2015-09-01 Microsoft Technology Licensing, Llc Evidence-based dynamic scoring to limit guesses in knowledge-based authentication
EP2285042A1 (fr) * 2009-07-07 2011-02-16 Gemalto SA Module logiciel de sécurisation utilisant le chiffrement du haché d'un mot de passe concaténé avec une graine
US8433918B2 (en) * 2009-10-14 2013-04-30 Texas Instruments Incorporated Methods and systems for improving the security of password-based authentication protocols for IEEE 802.11 networks
EP2336931B1 (fr) * 2009-11-18 2013-01-09 STMicroelectronics (Rousset) SAS Procédé de vérification de signature
KR101760912B1 (ko) * 2010-03-01 2017-07-24 인터디지탈 패튼 홀딩스, 인크 머신-투-머신 게이트웨이 아키텍처 및 기능
US9015489B2 (en) * 2010-04-07 2015-04-21 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
US8549314B2 (en) 2010-04-29 2013-10-01 King Saud University Password generation methods and systems
US20120137359A1 (en) * 2010-11-29 2012-05-31 Groupe Cgi Inc. Method For Storing (Hiding) A Key In A Table And Corresponding Method For Retrieving The Key From The Table
US9237155B1 (en) 2010-12-06 2016-01-12 Amazon Technologies, Inc. Distributed policy enforcement with optimizing policy transformations
US8621227B2 (en) 2010-12-28 2013-12-31 Authernative, Inc. System and method for cryptographic key exchange using matrices
US8656484B2 (en) 2010-12-28 2014-02-18 Authernative, Inc. System and method for mutually authenticated cryptographic key exchange using matrices
US8971539B2 (en) 2010-12-30 2015-03-03 Verisign, Inc. Management of SSL certificate escrow
US8739260B1 (en) 2011-02-10 2014-05-27 Secsign Technologies Inc. Systems and methods for authentication via mobile communication device
US8719952B1 (en) * 2011-03-25 2014-05-06 Secsign Technologies Inc. Systems and methods using passwords for secure storage of private keys on mobile devices
US8793780B2 (en) 2011-04-11 2014-07-29 Blackberry Limited Mitigation of application-level distributed denial-of-service attacks
CN103597520B (zh) * 2011-04-13 2016-12-07 诺基亚技术有限公司 基于身份的票务方法和系统
GB2490483B (en) 2011-04-26 2019-05-29 Hewlett Packard Entpr Dev Lp Digital signature method and system
US8689304B2 (en) * 2011-04-27 2014-04-01 International Business Machines Corporation Multiple independent authentications for enhanced security
US8681986B2 (en) * 2011-05-25 2014-03-25 International Business Machines Corporation Single-round password-based key exchange protocols
US8769642B1 (en) 2011-05-31 2014-07-01 Amazon Technologies, Inc. Techniques for delegation of access privileges
DE102011079441A1 (de) 2011-07-19 2013-01-24 Bundesdruckerei Gmbh Verfahren zum Schutz eines Chipkarten-Terminals gegen unberechtigte Benutzung
CN102300182B (zh) * 2011-09-07 2013-08-14 飞天诚信科技股份有限公司 一种基于短信的身份验证方法、系统和装置
US9197409B2 (en) 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
US9178701B2 (en) 2011-09-29 2015-11-03 Amazon Technologies, Inc. Parameter based key derivation
US9203613B2 (en) 2011-09-29 2015-12-01 Amazon Technologies, Inc. Techniques for client constructed sessions
US8842840B2 (en) 2011-11-03 2014-09-23 Arvind Gidwani Demand based encryption and key generation and distribution systems and methods
US9106635B2 (en) * 2012-03-01 2015-08-11 Certicom Corp. System and method for connecting client devices to a network
EP2639997B1 (en) * 2012-03-15 2014-09-03 ATS Group (IP Holdings) Limited Method and system for secure access of a first computer to a second computer
US8892865B1 (en) 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
US9215076B1 (en) 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
JP5947453B2 (ja) * 2012-04-25 2016-07-06 ロウェム インコーポレイテッド パスコード運営システム、パスコード装置、及びスーパーパスコードの生成方法
US9703932B2 (en) * 2012-04-30 2017-07-11 Excalibur Ip, Llc Continuous content identification of broadcast content
US9887989B2 (en) * 2012-06-23 2018-02-06 Pomian & Corella, Llc Protecting passwords and biometrics against back-end security breaches
US9258118B1 (en) 2012-06-25 2016-02-09 Amazon Technologies, Inc. Decentralized verification in a distributed system
US9043388B2 (en) * 2012-06-25 2015-05-26 International Business Machines Corporation Aggregation and queuing of communications
US9660972B1 (en) * 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
WO2014019129A1 (en) * 2012-07-31 2014-02-06 Google Inc. Automating password maintenance
US9049011B1 (en) * 2012-08-15 2015-06-02 Washington State University Secure key storage and distribution
US9684898B2 (en) * 2012-09-25 2017-06-20 Google Inc. Securing personal identification numbers for mobile payment applications by combining with random components
US9215072B1 (en) 2012-10-23 2015-12-15 Authernative, Inc. Back-end matching method supporting front-end knowledge-based probabilistic authentication systems for enhanced credential security
US8868919B2 (en) 2012-10-23 2014-10-21 Authernative, Inc. Authentication method of field contents based challenge and enumerated pattern of field positions based response in random partial digitized path recognition system
US8955074B2 (en) 2012-10-23 2015-02-10 Authernative, Inc. Authentication method of enumerated pattern of field positions based challenge and enumerated pattern of field positions based response through interaction between two credentials in random partial digitized path recognition system
US9213812B1 (en) 2012-12-28 2015-12-15 Allscripts Software, Llc Systems and methods related to security credentials
WO2014108835A2 (en) * 2013-01-08 2014-07-17 Bar-Ilan University A method for providing security using secure computation
JP6040780B2 (ja) * 2013-01-15 2016-12-07 富士通株式会社 暗号処理装置、方法およびプログラム
US8966591B2 (en) * 2013-01-18 2015-02-24 Ca, Inc. Adaptive strike count policy
DE102013203257A1 (de) 2013-02-27 2014-08-28 Bundesdruckerei Gmbh Lesen eines Attributs aus einem ID-Token
US9032212B1 (en) * 2013-03-15 2015-05-12 Emc Corporation Self-refreshing distributed cryptography
US10270748B2 (en) * 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
EP2793157A1 (en) 2013-04-19 2014-10-22 Thomson Licensing Apparatus and method for managing passwords
GB201310084D0 (en) 2013-06-06 2013-07-17 Mastercard International Inc Improvements to electronic authentication systems
US9407440B2 (en) 2013-06-20 2016-08-02 Amazon Technologies, Inc. Multiple authority data security and access
US9305161B1 (en) * 2013-06-24 2016-04-05 Emc Corporation Password hardening system using password shares distributed across multiple servers
US9521000B1 (en) 2013-07-17 2016-12-13 Amazon Technologies, Inc. Complete forward access sessions
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9189617B2 (en) * 2013-09-27 2015-11-17 Intel Corporation Apparatus and method for implementing zero-knowledge proof security techniques on a computing platform
DK3063919T3 (da) * 2013-10-28 2017-11-06 Sepior Aps System og fremgangsmåde til håndtering af fortrolige data
US10243945B1 (en) 2013-10-28 2019-03-26 Amazon Technologies, Inc. Managed identity federation
US9420007B1 (en) 2013-12-04 2016-08-16 Amazon Technologies, Inc. Access control using impersonization
US10015153B1 (en) * 2013-12-23 2018-07-03 EMC IP Holding Company LLC Security using velocity metrics identifying authentication performance for a set of devices
US9292711B1 (en) 2014-01-07 2016-03-22 Amazon Technologies, Inc. Hardware secret usage limits
US9374368B1 (en) 2014-01-07 2016-06-21 Amazon Technologies, Inc. Distributed passcode verification system
US9369461B1 (en) 2014-01-07 2016-06-14 Amazon Technologies, Inc. Passcode verification using hardware secrets
US9262642B1 (en) 2014-01-13 2016-02-16 Amazon Technologies, Inc. Adaptive client-aware session security as a service
US9275219B2 (en) 2014-02-25 2016-03-01 International Business Machines Corporation Unauthorized account access lockout reduction
US10771255B1 (en) 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
EP2955654A1 (en) * 2014-06-12 2015-12-16 Thomson Licensing Apparatus and method for password authentication
US9258117B1 (en) 2014-06-26 2016-02-09 Amazon Technologies, Inc. Mutual authentication with symmetric secrets and signatures
US10326597B1 (en) 2014-06-27 2019-06-18 Amazon Technologies, Inc. Dynamic response signing capability in a distributed system
US9350545B1 (en) 2014-06-30 2016-05-24 Emc Corporation Recovery mechanism for fault-tolerant split-server passcode verification of one-time authentication tokens
US9544838B2 (en) 2014-08-01 2017-01-10 Apple Inc. Detecting and connecting to Wi-Fi™ networks
TWI497339B (zh) * 2014-08-15 2015-08-21 Chi-Pei Wang 具有帳號密碼分散儲存防側錄功能之電腦系統
US9639687B2 (en) * 2014-11-18 2017-05-02 Cloudfare, Inc. Multiply-encrypting data requiring multiple keys for decryption
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
DE102015017060A1 (de) 2015-01-13 2016-07-14 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102015017061A1 (de) 2015-01-13 2016-07-28 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102015200313A1 (de) 2015-01-13 2016-07-14 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102015204828A1 (de) 2015-03-17 2016-09-22 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines Zertifikats für einen Sicherheitstoken
DE102015207064A1 (de) 2015-04-17 2016-10-20 Bundesdruckerei Gmbh Elektronisches System zur Erzeugung eines Zertifikats
US20160315927A1 (en) * 2015-04-21 2016-10-27 Zte (Usa) Inc. Method and system for establishing and managing personal black box (pbb) in virtually-networked big-data (vnbd) environment
US10374802B2 (en) 2015-04-24 2019-08-06 Red Hat, Inc. Multi-factor simple password exponential key exchange (SPEKE) authentication
DE102015207690A1 (de) 2015-04-27 2016-10-27 Bundesdruckerei Gmbh ID-Token, System und Verfahren zur Erzeugung einer elektronischen Signatur
DE102015209073B4 (de) 2015-05-18 2019-02-07 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
KR102460096B1 (ko) * 2015-05-27 2022-10-27 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
EP3318041A1 (en) * 2015-06-30 2018-05-09 Raghav Bhaskar User friendly two factor authentication
CA2990651A1 (en) * 2015-06-30 2017-01-05 Visa International Service Association Confidential authentication and provisioning
DE102015214340A1 (de) 2015-07-29 2017-02-02 Bundesdruckerei Gmbh Sperrdienst für ein durch einen ID-Token erzeugtes Zertifikat
US20170063831A1 (en) * 2015-08-24 2017-03-02 International Business Machines Corporation Authentication of a user and of access to the user's information
US20170091887A1 (en) * 2015-09-24 2017-03-30 Yahoo! Inc. Method for accessing an online account after the owner's death
US9860237B2 (en) * 2015-10-08 2018-01-02 International Business Machines Corporation Password-based authentication in server systems
US9565020B1 (en) 2016-02-02 2017-02-07 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
US10250591B2 (en) 2016-02-12 2019-04-02 International Business Machines Corporation Password-based authentication
US10476672B2 (en) 2016-03-14 2019-11-12 Callware Technologies, Inc Fragmented encryption of a secret
US10158651B1 (en) * 2016-04-20 2018-12-18 Wells Fargo Bank, N.A. Verifying secure transactions through distributed nodes
DE102016208038A1 (de) 2016-05-10 2017-11-16 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102016208040A1 (de) 2016-05-10 2017-11-16 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
US10396991B2 (en) * 2016-06-30 2019-08-27 Microsoft Technology Licensing, Llc Controlling verification of key-value stores
US10158616B1 (en) 2016-07-20 2018-12-18 Google Llc Methods and systems for online access credential transition
US10116440B1 (en) 2016-08-09 2018-10-30 Amazon Technologies, Inc. Cryptographic key management for imported cryptographic keys
SG10201609247YA (en) * 2016-11-04 2018-06-28 Huawei Int Pte Ltd System and method for configuring a wireless device for wireless network access
DE102016222170A1 (de) 2016-11-11 2018-05-17 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
CN106797386B (zh) * 2016-11-30 2021-09-03 深圳前海达闼云端智能科技有限公司 安全验证方法、装置、终端设备及服务器
EP3340149A1 (en) * 2016-12-22 2018-06-27 Mastercard International Incorporated Methods and systems for validating an interaction
US10250576B2 (en) 2017-02-08 2019-04-02 International Business Machines Corporation Communication of messages over networks
CN106888097B (zh) * 2017-03-30 2020-08-11 北卡科技有限公司 一种hce模式下基于零知识证明的身份认证方法
CN107248997B (zh) * 2017-07-03 2020-04-14 暨南大学 多服务器环境下基于智能卡的认证方法
US10924278B2 (en) * 2017-07-13 2021-02-16 Qwyit, Llc Method and apparatus for authentication and encryption service employing unbreakable encryption
CA3079371A1 (en) * 2017-10-19 2019-04-25 Autnhive Corporation System and method for generating and depositing keys for multi-point authentication
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
KR101936955B1 (ko) * 2018-06-28 2019-04-09 펜타시큐리티시스템주식회사 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법
US10576934B2 (en) 2018-07-20 2020-03-03 Ford Global Technologies, Llc Decentralized cloud-based authentication for autonomous vehicles
US11068893B2 (en) 2018-07-20 2021-07-20 Ford Global Technologies, Llc Decentralized cloud-based authentication for vehicles and associated transactions
WO2020033033A1 (en) * 2018-08-09 2020-02-13 Hrl Laboratories, Llc Anonymous allocation and majority voting in a compromised environment
US11184162B1 (en) * 2018-09-28 2021-11-23 NortonLifeLock Inc. Privacy preserving secure task automation
US11089008B2 (en) 2018-11-20 2021-08-10 HCL Technologies Italy S.p.A. System and method for facilitating pre authentication of user[s] intended to access data resources
AU2018347196B2 (en) * 2018-11-27 2020-05-14 Advanced New Technologies Co., Ltd. System and method for information protection
US11616774B2 (en) * 2019-01-17 2023-03-28 Blackberry Limited Methods and systems for detecting unauthorized access by sending a request to one or more peer contacts
JP2022519681A (ja) * 2019-02-05 2022-03-24 エトパス,リミティド ライアビリティ カンパニー セキュリティシステム及び関連する方法
US11190336B2 (en) * 2019-05-10 2021-11-30 Sap Se Privacy-preserving benchmarking with interval statistics reducing leakage
CN111144885B (zh) * 2019-12-13 2023-06-06 杜晓楠 一种数字资产托管方法和系统
CN111277571A (zh) * 2020-01-13 2020-06-12 熊国华 一种基于零知识证明的企业app登录管理系统
US11146558B2 (en) 2020-03-11 2021-10-12 International Business Machines Corporation Stateless multi-party authorization system in web applications
US11425107B2 (en) 2020-09-09 2022-08-23 Springcoin, Inc. Method and apparatus for third-party managed data transference and corroboration via tokenization
EP4226573A1 (en) * 2020-10-05 2023-08-16 Redcom Laboratories, Inc. Zkmfa: zero-knowledge based multi-factor authentication system
CN112257119B (zh) * 2020-10-20 2022-10-28 河北素数信息安全有限公司 一种身份认证方法及用于保证加密装置安全的保护方法
CN113852461B (zh) * 2021-09-26 2024-02-02 深圳万兴软件有限公司 一种密码恢复方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544322A (en) * 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
JPH09179826A (ja) * 1995-11-13 1997-07-11 Internatl Business Mach Corp <Ibm> パスワード同期を与える方法及び装置
JPH10274926A (ja) * 1997-03-31 1998-10-13 Eiji Okamoto 暗号データ回復方法、鍵登録システムおよびデータ回復システム
WO1998054864A2 (en) * 1997-05-28 1998-12-03 Adam Lucas Young Auto-recoverable auto-certifiable cryptosystems
GB2329096A (en) * 1997-08-29 1999-03-10 Ncipher Limited Creating sub-keys from hashed cryptographic master key

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535276A (en) * 1994-11-09 1996-07-09 Bell Atlantic Network Services, Inc. Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography
US5557346A (en) * 1994-08-11 1996-09-17 Trusted Information Systems, Inc. System and method for key escrow encryption
US5717756A (en) * 1995-10-12 1998-02-10 International Business Machines Corporation System and method for providing masquerade protection in a computer network using hardware and timestamp-specific single use keys
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US6161185A (en) * 1998-03-06 2000-12-12 Mci Communications Corporation Personal authentication system and method for multiple computer platform
US6311276B1 (en) * 1998-08-25 2001-10-30 3Com Corporation Secure system for remote management and wake-up commands
US6510513B1 (en) * 1999-01-13 2003-01-21 Microsoft Corporation Security services and policy enforcement for electronic data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544322A (en) * 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
JPH09179826A (ja) * 1995-11-13 1997-07-11 Internatl Business Mach Corp <Ibm> パスワード同期を与える方法及び装置
JPH10274926A (ja) * 1997-03-31 1998-10-13 Eiji Okamoto 暗号データ回復方法、鍵登録システムおよびデータ回復システム
WO1998054864A2 (en) * 1997-05-28 1998-12-03 Adam Lucas Young Auto-recoverable auto-certifiable cryptosystems
GB2329096A (en) * 1997-08-29 1999-03-10 Ncipher Limited Creating sub-keys from hashed cryptographic master key

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463467B2 (en) 2020-01-09 2022-10-04 Kyndryl, Inc. Advanced risk evaluation for servers

Also Published As

Publication number Publication date
WO2001095545A2 (en) 2001-12-13
KR100769482B1 (ko) 2007-10-24
KR20030010667A (ko) 2003-02-05
TWI233739B (en) 2005-06-01
US20020067832A1 (en) 2002-06-06
US7139917B2 (en) 2006-11-21
WO2001095545A3 (en) 2002-07-04
CN1249972C (zh) 2006-04-05
AU6816101A (en) 2001-12-17
JP2003536320A (ja) 2003-12-02
CN1446331A (zh) 2003-10-01

Similar Documents

Publication Publication Date Title
JP4833489B2 (ja) 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア
Jablon Password authentication using multiple servers
CN112106322B (zh) 基于密码的阈值令牌生成
US7725730B2 (en) Cryptographic methods and apparatus for secure authentication
US7359507B2 (en) Server-assisted regeneration of a strong secret from a weak secret
CA2335172C (en) Secure mutual network authentication and key exchange protocol
US7599493B2 (en) Asymmetric key pair having a kiosk mode
US7630493B2 (en) Multiple factor private portion of an asymmetric key
US7596697B2 (en) Technique for providing multiple levels of security
US8213608B2 (en) Roaming utilizing an asymmetric key pair
US6940980B2 (en) High security cryptosystem
WO2006119184A2 (en) Protecting one-time-passwords against man-in-the-middle attacks
Wang et al. Secure password-based remote user authentication scheme against smart card security breach
US7565527B2 (en) Technique for asymmetric crypto-key generation
Pathak et al. Secure authentication using zero knowledge proof
Abusukhon et al. An authenticated, secure, and mutable multiple‐session‐keys protocol based on elliptic curve cryptography and text‐to‐image encryption algorithm
Sun et al. Password-based authentication and key distribution protocols with perfect forward secrecy
TWI381696B (zh) 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證
Boonkrong Authentication and Access Control
Kelsey et al. TMPS: ticket-mediated password strengthening
Murdoch et al. A Forward-secure Efficient Two-factor Authentication Protocol
Yoon et al. An efficient password authentication schemes without using the server public key for grid computing
Zhu et al. Improvement upon mutual password authentication scheme
Zhu et al. An enhanced Kerberos protocol with non‐interactive zero‐knowledge proof
Boyd et al. A Tutorial Introduction to Authentication and Key Establishment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110913

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110922

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees