CN1446331A - 使用多个服务器的远程密码验证的***、方法和软件 - Google Patents

使用多个服务器的远程密码验证的***、方法和软件 Download PDF

Info

Publication number
CN1446331A
CN1446331A CN01813879A CN01813879A CN1446331A CN 1446331 A CN1446331 A CN 1446331A CN 01813879 A CN01813879 A CN 01813879A CN 01813879 A CN01813879 A CN 01813879A CN 1446331 A CN1446331 A CN 1446331A
Authority
CN
China
Prior art keywords
server
password
key
value
client computer
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.)
Granted
Application number
CN01813879A
Other languages
English (en)
Other versions
CN1249972C (zh
Inventor
D·亚布伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phoenix Technologies Ltd
Original Assignee
Phoenix Technologies Ltd
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 Phoenix Technologies Ltd filed Critical Phoenix Technologies Ltd
Publication of CN1446331A publication Critical patent/CN1446331A/zh
Application granted granted Critical
Publication of CN1249972C publication Critical patent/CN1249972C/zh
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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

***、方法和软件采用零知识密码(ZKP)协议来使用用户容易记住的低级密码提供强验证。我们描述的协议允许多服务器校验密码而不提供任何单一服务器、客户机或具有能力的网络攻击者脱机确认对密码的猜测。另外的改进包括消除对现有安全信道和客户机存储的密码或证书的依赖性,增加性能而不引入新的密码假定,以及更好地管理密码输入中的错误。为了注册,用户选择密码并处理由多个共享部分组成的主密钥K。主密钥可用于多种目的,如解密用户的私钥或其他敏感数据。选择一组随机值{y1,y2,...yn},在适当的有限群中按Ki=Pyi计算每个共享部分。将每个yi值分配到N个服务器中的第ith个。为了验证,客户机选择随机安全x,以及用每个服务器,发送Px,检索mi=(Px)yi并计算Ki=mi 1/x。客户机重新构造K,在K上执行确认测试,并使用K解密私有数字签名密钥U。当确认测试成功时,基于在验证尝试中由相同用户误输入的错误密码,客户机用包含Px和由客户机发送的任何其他值的U签名消息。每个服务器核验签名消息以验证用户以及原谅用户某些合理计数的错误。通过有效消息、错误等等的知识,服务器微调无效访问尝试的统计。没有单一服务器知道K、P或任何一个Ki共享部分,以及没有服务器接收足够的信息来发动对K或P的字典攻击。用非常简单的模型保持密码安全性,不要求客户机或任一服务器间的现有安全或服务器验证信道。该模型进一步防止人们必须验证服务器的***中固有的风险,但该模型不用验证服务器。受小密码保护的数据以及没有其他密钥仍然安全即使面对危及两个或多个协作验证服务器的任何一个,但不是全部的对手。

Description

使用多个服务器的远程密码验证的***、方法和软件
背景
本发明通常涉及计算机安全,更具体地说,涉及提供使用多个服务器的远程密码验证的***、方法和软件。
基于密码的验证是大多数个人验证***的基础。即使当用便于携带的令牌、智能卡以及生物统计学做为补充,容易记住的密码通常仍然是用于在计算机事务中建立个人身份的主要核心因子。人们能容易记住的那种类型的低级密码对许多其他的安全***来说是特别严重的问题。为适应低级密码,开发了零知识密码协议以便消除网络威胁。然而,剩余的问题是如何防止对密码验证数据的攻击,当该数据对一个对手来说很有用时。
在一个典型的密码***中,服务器保存用于该密码的验证数据,该验证数据可能是密码本身的一个拷贝。在UNIX***中,为特别安全起见,验证数据是该密码的迭代单向函数,该验证数据通常被存储在文件中。经常进一步保护该文件以便无特权用户和程序不能访问它。传统的UNIX密码攻击是攻击者设法已经访问过密码验证数据的文件,并运行与针对它的密码破译工具来确定或“破译”尽可能多的密码。密码破译是简单地将单向函数应用于候选密码列表。当单向函数的输出与验证数据匹配时,该攻击者知道他已经猜中了正确的密码。可将这种攻击优化成首先尝试最通用或最可能的密码,以便能在指定时间周期中破译尽可能多的密码。
一个目的是在基于密码的客户/服务器验证***中,用最简单可能的安全模型—即使用尽可能少的假定,尽可能地降低对密码的基于服务器攻击的威胁。该目的是即使面对服务器上全部不受约束的攻击,防止暴露密码。在本模型中,假定该攻击者有能力改变服务器软件,访问可在那个服务器上获得的所有数据并控制那个服务器的使用同时验证合法和不可疑的用户。
为实现该目的,很显然需要使用不至台机器。在任何单一机器***中,通过模拟该用户的动作,能访问用户的密码验证数据或能访问任何加密的密码数据的人具有足够的信息执行不受约束的脱机蛮力攻击。该问题具体地是如何拆分在两个或多个服务器中的密码验证数据以便消除该风险。单一服务器应当没有能力发动次脱机蛮力攻击。
公钥密码学现在正逐渐被认为是用于安全个人电子事务的最重要的工具。希望个人数字签名具有广泛的应用。然而,大问题在于如何保护和管理用户的私钥。将其放在该客户机上,可能稍微对该密码进行加密,是不希望的安全风险。将不变的可破译的密码数据放在其安全性时常是众人皆知难以管理的客户机上被认为是很愚蠢的。另外,在多个用户能共用单一机器的模型中,要求本地存储用户证书是不切实际的。
用于所谓的“漫游”用户的一种用户验证解决方案是保存在远程服务器上存储的用户的个人证书,并使用基于密码的验证来检索这些证书。强零知识密码(ZKP)协议通过消除基于网络的蛮力攻击,同时消除客户机上对其他存储的密钥和证书的依赖性,来着手解决在这些解决方案中的许多威胁。ZKP协议对多个服务器情形也很重要。
讨论用于多个服务器安全漫游***的两种模型:强模型以及较弱模型。在这两种模型中,假定该攻击者能访问密码验证数据的拷贝,同时有能力在合理长的时间周期执行计算(合理长表示不受约束,但在计算可行性的限度内。任意长计算能破译任意大的公钥。如在大多数密码方法中,假定对潜在攻击者可用的时间和功率设定的一些实用上界,并可能确定用于密钥的相应的安全最小合理大小。)
在较弱模型中,假定攻击者已经访问过服务器的持久性数据的拷贝,但不能防碍正在运行的服务器的操作。
在强模型中,方法必须保持密钥的安全性,即使面对除一个验证服务器外所有服务器的总的有效折衷(active compromise)。假定攻击者能修改服务器软件并访问服务上有用的所有信息同时验证有效用户。强模型更简单,因而是最好的。它也比用于假定存在现有安全信道的类似***的较早模型更强。
在所有这些模型中,通过限制允许无效访问尝试的次数,每个服务器可保护其自身不受无约束的在线攻击。可用多种有用的方法来实施这些限制。本发明的优选实施例也包括帮助服务器更好地计算在密码输入中所犯的合理错误的特征。
漫游***的目的是允许移动用户安全地访问和使用他们的私钥来执行公钥密码操作。移动性从广义上讲涉及和包含使用个人工作站以及其他人的工作站而不必在那儿存储密钥、使用公用电话终端以及使用现代的手持无线网络设备的运作。期望从任何地方为用户提供密码验证访问私钥同时减小对手窃取或破译密码从而获得这些密钥的机会。
智能卡已经有望为漫游用户解决密钥存储问题,但该解决方案要求配置卡和安装卡阅读器。对人们来说为了方便牺牲安全性的倾向已经证明是广泛使用要求另外的硬件的解决方案的障碍。这是基于软件的漫游协议的一个动机。
正如在此所使用的,漫游协议涉及用于从一个或多个认证服务器远程检索私钥的安全的基于密码的协议。仅使用容易记住的密码,而不使用其他存储的用户证书,用户向认证服务器验证并检索用于在任何可接受的客户机上临时使用的她的私钥。客户将密码用于一个或多个事务,然后,删除密钥以及任何本地与密钥有关的数据。
这里,代表特定用户的客户机被成为Alice和证书(credential)服务器一般被成为Bob,或分别是Bi,为女性客户机和她的男***器使用性别特定的代名词。
“漫游”***的概念与认证服务器非常相关。由J.Tardo和K.Alagapan在“SPX:Global Authentication Using Public KeyCertificates”中,Proc.1991 IEEE Computer Society Symposium onSecurity and Privacy,1991,pp.232-244中公开的SPX LEAF***介绍了使用服务器验证信道来向用于校验的认证服务器传送密码,并执行后来的检索以及解密用户私钥的漫游协议。认证服务器通过限制它能检测的推测攻击来保护自身,以及该协议防止不显眼的密码脱机推测。
当认证服务器能确定密码推测是否正确时,它能防止或延迟在预定失败阀值后进一步交换。
只有密码的(password only)协议是另一重要相关的领域。由S.Bellovin以及M.Merritt在“Encrypted Key Exchange:Password-based protocols secure against dictionary attacks”,Proceedings of the IEEE Symposium on Research in Security andPrivacy,1992年5月公开的EKE协议通过安全验证在不要求先前的服务器验证动作的的不安全网络上的密码引入了安全的只有的密码的协议的概念。已经开发了具有类似目的的一系列其他方法,包括由L.Gong、T.M.A.Lomas,R.M.Needham,以及J.H.Saltzer在“ProtectingPoorly Chosen Secret from Guessing Attacks”,IEEE Journal onSelected Areas in Communications,vol,11,no.5,June1993,pp.648-656以及由L.Gong在“Increasing Availability and Security of anAuthentication Service”,IEEE  Journal on Selected Areas inCommunications,vol.11,no.5,June 1993,pp657-662公开的“secretpublic key”方法以及由D.Jablon在“Strong password-onlyauthenticated key exchange”,ACM Computer CommunicationsReview,vol.26,no.5,October 1996,pp.5-26,http://www.IntegritvSciences.com/links.htm\#Jab96讨论的SPEKE 方法、由S.Lucks在“Open Key Exchange:How to Defeat DictionaryAttacks Without Encrypting Public Keys”,The Security ProtocolWorkshop’97,Ecole Normale Superieure,April 7-9,1997描述的OKE方法,由T.Wu在“The Secure Remote Password Protocol”、Proceedingsof 1998 Network and Distributed System SecuritySymposium,Internet Society,January 1998,pp.97-111以及具有在只有密钥的模型中的理论研究的成长主体的其他方法,如由S.Halev以及HoKrawczyk在“Public-key cryptography and passwordprotocols”,Proceddings of the Fifth ACM Conference on Computerand Communications Security,1998,M.K.Boyarasky在“Public-keyCryptography and Password Protocols:The Multi-UsersCase”,Proc.6th ACM Conference on computer and CommunicationsSecurity,Novemberl-4,1999,singapore,V.Boyko,P.marcKenzie andS.Patel在“Provably Secure Password Authertiated Notes inComputer Science,vol.1807,Springer-Verlag,May 2000以及M.Bellare,D.Pointech以及P.Rogaway在”Authenticated KeyExchange Secure Against Dictionary Attack”、Advances inCryptology-EUROCRYPT 2000,Lecture Notes in computerScience,vol.1807,pp.139-155,Springer-Verlag,May 2000。大多数这些论文强调必须适当地将密码和相关记住的秘密假定成可由蛮力破解或是最多是不定熵的观点,这确保另外的测量来保护用户。
由本发明的受让人开发的SPEKE方法是公知的Diffie-Hellman(DH)指数密钥交换的验证形式,其中交换的基础是由密码确定的。在普通SPEKE使用形式中,密码提供导出的Diffie-Hellman会话密钥的人工验证。在未决US专利申请序列号08/823,961以及由D.Jablon的名为“Extended Password Protocols Immune to Dictionary Attack”、Proceedings of the Sixth Workshops on EnablingTechnologies:Infrastructure for CollaborativeEnterprises(WET-ICE’97)  Enterprise Security Workshop,IEEEComputer Society,June 18-20,1997,pp.248-255的论文以及在由R.Perlman以及C.Kaufman,“Secure Password-Based Protocol forDownloading a Private Key”,Proceedings of 1999 Network andDistributed System Security Symposium,Internetsociety,February3-5 1999论文中也描述过SPEKE的变化。
由D.Jablon在1999年1月21日口头介绍过名为“Secret PublicKeys and Passwords”在〈http:www.IntegritySciences.com/rsa99/index.html>斜体印刷的使用多个机器中的拆分密钥,在此称为SK1的运行的SPEKE***。该***中,将Alices的私钥U分成三个共享部分,密码导出共享部分P,以及两个大共享部分X和Y。使用函数(逐位异或),U=PXY组合这些共享部分,下面概述SK1注册以及密钥检索处理。
在SK1注册中,Alice选择三个共享部分(share){P,X,Y},将两个共享部分组合起来生成安全私钥S(其中S=PX),记住P并在其机器上存储X。然后,使用B-SPEKE协议的形式,该协议是1997年6月Jablon论文中描述的几种其他的形式的一种,她构造与密码导出值{P,S}一致的验证机{g,V}如下:使用加密散列函数构造g=hash(S)以及使用适当群中取幂构造V=P。然后她将{g,V,Y}发送给Bob,Bob将它们存储成她的秘密。
在SKi密钥检索中,Alice(在某一稍后的时间)从Bob获得她的私钥U。Alice使用B-SPEKE协议来向Bob证明她的P和S的知识,并与Bob商定验证会话密钥K。在Bob使用他的{g,V}知识核对Alice后,他发送在K下对称加密的她的Y。然后Alice解密以检索Y并重构U。在该***中在密码导出值P上的蛮力攻击要求攻击者访问过存储在两个不同机器上的两个共享部分x和Y。
A:S=PX
A:g=hash(S) A → B : A , Q A = g 2 R A B → A : Q B = g 2 R B A : K 1 = Q B R A
A:K2=QB p B : K 1 = Q B R A B : K 1 = V 2 R B
A→B:hash(hash(K1,K2))
B→A:encrypt(K,Y)
A:   U=PXY
为使在SKi中P上的蛮力攻击起使用,攻击者需要访问X和Y。
在Perlman和Kaufman论文中结合了漫游模型和只有密码的方法以创建基于EKE和SPEKE的协议。这些作者示出的只有密码的方法的简单形式足够安全漫游访问证书。在Gong.Lomas,Needham,以及Saltzer论文,Wu论文,S.Halevi以及H.Krawczyk论文“Public-keycryptography and password protocols”,Proceedings of the FifthACM Conference on Computer and Communications Security,1998以及P.MacKenzie以及R.Swaminathan论文“Secure NetworkAuthentication with Password Identification”提交IEEEP1363工作组, http://grouper.ieee.org/groups/1363/,1999年7月30日的其他漫游协议,上述所有协议均被设计成当客户机存储密钥不切实际时,阻止对网络消息的脱机猜测攻击以提供强的基于软件的保护。
改进的Diffie-Hellman是由Eric Hughes在名为“An encryptedKey Transimmion Protocol”的论文中,在1994年8月CRYPTO’94会议上发表以及由John Wiley & Sons,1996,页515上出版的由B.Schneier所著的名为“Applied Cryptography Second Edition”的书中描述过的一种方法。在常规的Diffie-Hellman中,客户机和服务器知道固定的g以及共同商定K=gxy。然而,在改进的Diffie-Hellman中,客户机(Alice)发送gx,接受gxy,以及从服务器检索K=gy。将她的秘密指数x用作隐秘因子。通过将服务器值自乘以x的倒数次幂K:=(gxy)1/x重新恢复密钥。不象常规的Diffie-Hellman方法,能再次计算用于K的统计值,即使在服务器接收客户机的(Alice’s)gx
基于改进的Diffie-Hellman的SPEKE的形式,在此称为改进的SPEKE在U.S专利申请序列号08/823,961中描述过,在改进的SPEKE中,Alice导出基于她的P知识的密钥K,从她的密码导出的值,以及对Bob已知的随机值y。Alice将密码自乘以秘密随机x次幂,并将最后结果的值(QA)发送给Bob。Bob将QA自乘以y次幂,然后将结果(QA)返回给Alice。根据K=Py的结果,Alice通过将QB自乘x的倒数次幂计算K。
Alice             Bob
QA:=Px    →
            ←    QB:=QA y
K:=QB (1/x)
建议P是密码的加密散列函数,如SHA1或MD5,导致适当的大的有限群的生成元。另外的详细情况可在U.S专利申请系列号018/823,961以及有关SPEKE的其他论文中找到。
为分散窃取验证数据的风险,可将数据拆分在多个机器中。在网络协议的设计中必须慎重使用多个机器来避免暴露对密码导出数据的新的攻击方法。
用于保护字典攻击的另一种方法是称为密码伪装的技术(在此称为CC),如由D.Hoover & B.Kausik在“Software Smart Cards viaCryptographic Camoflauge”,Proceedins of 1999 IEEE Symposium onSecurity and Privacy讨论过的。引入CC***来降低客户机存储的私有数据的缺点,与本发明相比,来降低服务器存储验证数据的弱点。
已经改进至少一个CC***来支持漫游用户,该***提供两个服务器漫游解决方案。在讨论两个服务器漫游解决方案前,将讨论基本的CC***,该基本的CC***包括用户、客户机以及CC验证服务器(CCAS)。
CC使用在某种程度上明显违反公钥技术的一些原理但具有设计成实现在Hoover和Kausik论文中讨论的目的的一组限制的公钥技术。术语“CC私钥”以及“CC公钥”用来指定该***的两个组分。
注意在术语“CC私钥”和“CC公钥”中的使用的“私有”和“公用”具有与普通使用“私钥”和“公钥”不一致的特殊的含义。具体来说,CC模型假定CC私钥不是公众已知的。
将CC私钥存储在客户机上,但在某种程度上用小个人身份号码(PIN)隐藏。它使用通过同样似是而非的任何可能的PIN的私钥解密存储的私钥的特殊结构。(当考虑人为选择的与机器生成的PIN、对手的部分的PIN知识以及相关的迹象时,稍后讨论该问题)。
只是所信任的当事人必须知道CC公钥。如果加密的CC私钥被窃,拥有CC公钥使窃贼有能力发动对PIN字典攻击。为满足安全目的,必须仅CCAS知道CC公钥。实际上,用户可能以在CCAS公钥下加密的形式存储CC公钥,以便仅CCAS能读取它。每次客户机向CCAS验证时,客户机将该加密包发送给CCAS。
类似地,用用户的CC私钥签名的任何数字签名必须仅CCAS可见。因此,首先用CC私钥签名消息,然后用CCAS公钥密封。
注意Hoover和Kausik讲述了更多限制,即必须仅CCAS知道在包含可校验的明文的CC私钥下加密的任何消息。注意实际上很难创建不受可校验明文约束的有用消息。明文是不可校验的这种假定遗留了有关***的安全性的未决问题,***的安全性依赖于攻击者的灵活性以创建适当的校验方法。未决问题诸如那些在本模型中是不能接受,因此使用该限制的更严密的语句。下面是CC***的概述。
在CC注册中,客户选择PINP、私钥Ec以及相应的公钥Dc。也有这里我们不关心的另外的限制,即将CC强加在Ec或Dc的结构上的那些限制。客户机存储:
CC(P,Ec)    伪装的私钥
Ds           CCAS的公钥
Ds(Dc)       为CCAS密封的客户私钥
在CC验证中,用户输入P,以及客户机从CC(P,Ec)检索Ec。客户向CCAS发送:
Ds(Ec(message)),以及
Ds(Dc)。
CCAS开封Ec(message)以及Dc,并校验客户的签名以验证消息。
为了CCAS,可能假定Dc带有证明密钥的有效性的一套适当的证书。甚至假定Dc必须保持由客户和CCAS共用的秘密,这看起来将排除用于使用第三方认证授权证明Dc的普通方法。结合在CC私钥和CC公钥上的这些限制,很显然这些不适合用在任何真正的私钥***中。
在CC中,将PIN有效地划分成两个共享部分,
CC(P,Ec)    仅客户机知道,以及
Dc           仅服务器知道。
通常,也必须在Ds下密封在Ec下签名或在Dc下密封的所有另外的消息。根据本发明,这能变换成两个服务器漫游解决方案。
CC***通过检测在客户机上在密码输入中排字错误的特征,用特殊的方式处理密码输入错误。客户机将少量散列密码与在客户机上本地存储的参考数据进行比较。然而,这种机制具有显著的成本,因为它将有关该密码的一些信息位泄漏给访问存储的客户机数据的对手。结果是对指定的相对于在线猜测攻击的安全级,在CC***中的密码必须稍微大些或更复杂些,并因此更难记住。在人们更辛苦工作以便减轻***上的计算负担的前提下,设计了CC错误处理特征,因为在客户机上先前的错误检测防止在服务器上不必要的工作。另一基本原理是计算机应当用来使人们从工作解脱出来。***应当努力工作以容许用户错误,而不惩罚用户,以及仍然保持最高可能的障碍以防止密码猜测攻击。在本发明的优选实施例中包括了用于优化处理在密码输入中无恶意的错误的***。
已经由许多公司设计和开发了漫游解决方案,为了验证“漫游用户”,主要是不可用智能卡的地方,这些解决方案提供公钥体系结构(PKI)。在这些***中,用户从可在http://www.integritysciences.com/PKI50.html上得到的由J.Kerstetter,“Entrust,VeriSign clear path to PKI”,PC Week,1999年6月14日讨论的远程认证服务器安全地检索存储的用户简表(通常包括用户私钥)。其他在认证服务器上的工作使用如在Perlman和Kaufman论文中描述的EKE和SPEKE变量。
上面描述过的密码伪装***假定单一CC服务器,以及假定用户密钥信息存储在客户机上。通过将客户机存储的数据移动到CC漫游服务器(CCRS)以及为CCRS指定用于第二用户密码的另外的校验数据,可以将该解决方案变换成被称为CC漫游的两个服务器漫游解决方案。
用户使用密码和适当的密码验证协议向CCRS验证,该协议导致CCRS有能力安全地将信息返回给用户。最好,这使用基于验证机或所谓的“扩展”零知识密码协议。然而,另外的结构是可能的,包括通过服务器验证的SSL(加密套接字协议层)或TLS信道将明文密码传送到CCRS以便校验。由A.Frier,P.Karlton和P.Kocher在“The SSL3.0Protocol”,Netscape Communication Corp.,Nov.18,1996讨论过SSL以及由T.Dierks以及C.Allen在“The TLS Protocol Version1.0”,IETF RFC2246, http://www.itef.org/rfc/rfc2246.txt,IntrenetActiVities Board,1999年1月讨论过TSL。如上所述,为了十分完全,必须选定CCAS PIN和CCRS密码作为完全独立值。如果它们是相关值,在密码上攻击可能导致暴露PIN。
大体上,CC漫游是两个密码的***,一个密码用于CCRS,另一个(PIN)用于CCAS。CC漫游的一个显而易见的限制是第一服务器有机会发动对第一密码上的蛮力攻击。两个其他相关的问题是使用客户熵的效率以及PIN和密码的无关性。
当使用通过SSL密码的CC漫游向CCRS验证时,同时增加了来自假冒服务器攻击和将在下面描述的相关密码/PIN攻击的风险,假冒服务器攻击由F.Feiton,D.Balfanz,D.Dean以及D.Wallach在“WebSpoofing:An Internet Con Game”,20th National Information SystemsSecurity Conference,1997年10月7-10日,Baltimore,Maryland以及在http:/www.cs.princenton.edu/sip/pub/spoofing.html讨论过。在所有这些情况下,如果仅它们中的一个受到攻击,有可能损失两个服务器方法的某些好处。使用零知识密码证明向CCRS验证能消除假冒服务器攻击,并使相关的PIN/密码攻击更加困难。
CC漫游***使使用用户密码中固有的熵无效,必须将熵认为是有价值和稀有的资源。密码方法的主要目的—回忆是减少用户必须记住以实现指定安全级的信息量(有效位的次数)。CC漫游***浪费这些位并引入几点弱点。首先,Hoover以及Kausik建议在运行协议前使用PIN的某些位来预先限制PIN。他们通过另外在客户机中存储PIN的特殊构造的小散列来完成该操作。攻击者能使用散列的PIN以减小候选PIN的范围。假定已经减小了PIN的大小,这可能是很危险的。如果允许用户选择的PIN,这可能将有效PINs的范围降低到危险级。
CC漫游***也可能对两个密码,AS PIN和RS密码间的关系很敏感,人工划分用户秘密熵。Hoover和Kausik很清楚地指出伪装的AS PIN不可以用于任何其他目的。然而,如果用户偶然将AS PIN结合在RS密码中,或者如果存在攻击者可能知道的这些秘密间的一些对应关系,在CC漫游中的基础的CC***变成易受攻击。
相关的密码/PIN是可能的,当用户将它们选择为相同值或具有显而易见的或可能巧妙但可辨别的关系的不同值时。这对具有真正无关的PIN和密码的用户错误地键入一个代替另一个时也有风险。
如果有人想对多个用户广泛攻击,通过首先破译具有弱RS密码的用户,然后将精力集中在破译的RS用户组上来破译他们的相应ASPINs,能降低目标范围。泄漏的有关RS密码的信息能减少潜在攻击者的整个工作。相反,如果结合相同的RS密码和AS PINs,理想的两个服务器(将要描述)具有由密码和PINs而定的破译工作因子,要求更大的整个工作因子。
人工将秘密划分成用于CC漫游***的两个因子从而引入了新的弱点并使模型变弱。在优选实施例的描述中,描述了更强大、更简单以及至少同样保护用户记住的秘密的CC和CC漫游的更简单的替代方案。
所有单一服务器漫游解决方案具有内在的限制。在所有上述漫游方法中,单一认证服务器保持能被用来校验有关用户密码的信息的数据。如果假定散列密码通过蛮力破解,密码校验服务器主要表示对该敏感的用户数据的单点失败。现在将讨论解决该问题的***。
多服务器漫游表示另一改进。当单一服务器防止猜测攻击客户机或网络时,它们不阻止基于可能从服务器所偷的密码校验数据的推测。多服务器漫游***可防止这种攻击到惊人的程度。以使用n个相关认证服务器来验证为代价,多服务器将保护范围扩展到认证服务器数据库。在这些***中,对手能全部控制n-1个服务器,并在用有效用户成功证书检索期间监视这些服务器的操作,但仍然不能校验对任何人密码的单一推测,而不会被剩余的未妥协的服务器检测。
在2000年6月,Verisign在2000年5月发布一篇名为“VeriSignIntroduces New Technology to Enable Network-basedAuthentication,Digital Signature and Data Privacy”的新闻稿,并发表在 http://www.versign.com/rsc/wp/roaming/index.html的网页上并以较高的高度描述了多服务器漫游特征。在2000年6月14日在IEEE Ni nth Internat ional Workshops on EnablingTechnologies:Infrastructure for Collaborative Enterprises inGaithersburg MD介绍了W.Ford和B.Kaliski的论文,名为“Server-Assisted Generation of a Strong Secret from apassword”。该论文的修订版在2000年9月出版在学报中(W.Ford和B.Kaliski,“Server-Assisted Generation of a Strong Secret froma password”,Proceedings of 9th International Workshops onEnabling Technologies:Infrastructure for CollaborativeEnterprises,IEEE,9,2000)。这些论文描述了使用多服务器来挫败基于服务器的密码破译攻击的方法。注意在2000年6月14日,Ford&Kaliski论文中描述的方法依赖现有服务器验证信道。对于密码安全性的这种对现有安全信道的依赖性引入了不必要的和潜在的风险安全性假定。消除这种依赖性是本发明的一个优点。
在2000年6月14日论文中公开的一个方法使用如上前所述的改进的SPEKE协议,将该协议用在本发明的优选实施例中。在2000年6月14日论文描述的各种方法中,两个或多个服务器分摊保持密码校验数据秘密的负担。每个服务器为用户存储一个秘密。客户机从用户获得密码并在第二阶段处理中与每个服务器相互作用。首先,客户机从每个服务器获得基于密码的放大密钥,然后创建用来向每个服务器验证的“主”密钥(注意在此使用术语“放大密钥”(来自Bellovin和Merritt的论文)代替了Ford和Kaliski的“加固密钥”术语。)每个放大密钥表示用户主密钥的一个共享部分。客户机使用任何标准的技术如使用散列函数来结合放大密钥共享部分以创建主密钥。
为获得每个放大密钥,Ford和Kaliski建议了两种基本方法。一个是上面描述过的改进的SPEKE方法,另一个方法是将隐秘RSA数字签名用在由D.Chaum在“Security withoutIdentification:Transaction  System to Make Big BrotherObsolete”,communication of the ACM,28(1985),1030-1044中描述过的式样中的变量。这些方法比较如下。
服务器跟踪无效访问尝试,以及根据Ford和Kaliski,如果有比成功验证“显著多“的密码放大(password amplification)步骤,服务器采取行动限制或锁定进一步请求。然而,***不区分由有效用户和可能更反映对密码的真正攻击的其他事件所犯的错误。同样地,在这里他们的用于处理不成功的尝试的***不优先处理普通的人为错误。由于简单的排字错误或其他较正错误的不成功的放大不应当计算为其他不成功的尝试。本发明提供更好的方法来处理这些情况。
在2000年6月14论文中的方法进一步依赖服务器的现有安全的服务器验证的信道。对在前验证的这种依赖性产生了不必要的复杂的安全模型,并增加了攻击的风险。这些风险可能与消除单点错误的目的不相符。
将RSA隐秘公钥签名用在2000年6月14日论文中描述过的一个密码放大方法中。这种技术实现了与改进的SPEKE方法相同的效果——基于由另一方已知的随机分量将密码放大成大密钥。然而,RSA方法引入了另外的复杂性。RSA隐秘方法的详细情况并不包括在Ford和Kaliski论文中,但基于对Chaum-blinding的引用的方法似乎工作如下。
代替单一值y,服务器为每个用户保持值{n,e,y}。这些值中没有一个是从密码导出的。值n等于p-q,其中p和q是适用于RSA模数的素数,e是RSA公钥以及y是相应的私钥,以致e=1/mod(p-1)(q-1)。基本上,放大密钥是密码上的RSA签名KB。使用x使这成为如在Chaum论文中描述过的隐秘公钥签名模式,其中隐秘因子x防止服务器知道它正在签名的数据(P)。
在2000年6月14日论文中,提出使用SSL来验证信道以确保用于客户机的KB的真实性。论文也指出了在RSA隐秘上改进的SPEKE的优点在于RSA隐秘客户机没有好的(即有效的)方法来确认n和e值,除了通过验证服务器外。
Ford和Kaliski进一步介始了“特殊情况”协议,其中“密码加固服务器”用来将密码放大成用来向(常规的)认证服务器验证的密钥K1。K1值完全由密码加固服务器的响应和密码来确定。控制第一交换的任何攻击者必须不能确定由用户计算的K1值是否等于基于他对P′的猜测构造的候选的K1′值。因此攻击者必须永远不能查看K1。同样,如果用包含可校验的明文的K1加密消息,攻击者也从那确认猜测。为反击该威胁,作者建议应当完整保护认证服务器通信信道。2000年6月14论文具体指出明确的方法,但它建议使用SSL。(注意2000年9月论文的确讨论过如何避免对预先安全信道的需要)。如果假定在客户机中一套普通的根证书能确认两个服务器,则将一个或多个失败点引入到该***中。在为根或任何辅助的认证授权私钥预留的每个位置存在单一失败点。这是重要的,因为该模型的主要目的是消除单一失败点。
通过折衷具有密钥的任何单一***以创建用于所述的两个服务器的有效查看证书链来实现上述攻击。另外,如上所述,对安全性的SSL/网页浏览器模型的安全性的攻击能欺骗用户使用“有效”SSL连接到恶意服务器或根本不使用SSL。
对现有服务器验证的依赖性是严重的限制。在用户环境中,如能连接到在不同领域的各种服务器上的公用电话亭或私有桌上型电脑,用户必须定位和连接到适当的服务器。对用户安全地连接到适当的服务器以保持密码的安全性的依赖性引入了问题。Ford和Kaliski讨论用户能如何使用SSL来创建安全的服务器验证信道。这暗示用户必须(设法)确认服务器的身份以便保持密码的安全性。在典型的实现中,它也暗示客户机存储服务器特定的状态信息以验证到服务器的通信信道。为建立到服务器的安全信道,SSL解决方案通常要求具有用于安装在客户机中的一个或多个证书的预先安装的根密钥。它也要求访问已经构造的将根密钥与指定的服务器的公钥关联的证书链。客户机必须包括证书确认软件以及策略执行以确认由用户选择的适当的服务器的证书。最后,用户必须确保捆绑的服务器名称是正确的。这可能要求用户有效的动作和注意。对SSl的依赖性,特别用在浏览器模型中,是不必要的风险。能欺骗用户使用“有效的”SSL连接到恶意的服务器或欺骗根本不使用SSL。该过程容易出现可能由于“人为错误”引起的几种类型的失败。将该问题认为是基于人为参与者的不切实际的期望的整个***设计错误。
对密码安全性的现有服务器验证信道的依赖性是不必要的。本发明的优选的另外的方法用更适合于在多漫游用户或多服务器环境中普通人的行为的更简单的模型工作。
优选的安全性模型与2000年6月14日论文中相似之处在于两者均使用多服务器。然而,在本发明的优选模型中,假定不在客户机和服务器间存储预先验证的安全信道。优选模型使用户从必须认真地确认服务器的身份以便保持密码的安全性解脱出来。在该模型中,用户独立的随便通过诸如在Internet上普遍使用的任何不安全的机制随意定位该服务器。这些方法包括手工键入(或错误键入的)URLs、不安全的DNS协议、不可靠的搜索引擎、点击由未知源收集的集合中的项。所有这些方法等等提供许多方式来建立与正确服务器的连接,但这些方法中没有一个必须保证不会连接到诈骗者上的机会。在该简单模型中提出的最糟的威胁是一种拒绝服务一总是不管以任何方式出现在更复杂的模型中的威胁。优选模型的另外的好处是永久不会暴露密码,即使当不管以任何方式将客户机连接到诈编者上。
大多数现有技术处理错误密码输入非常简单。在2000年6月14日论文中,建议每个服务器能跟踪“密码加固”步骤的次数,并使这与成功验证的次数一致。如果有比验证“显著多”的加固,那么锁定该帐户。这通常用于基于密码的***。然而,注意不成功的登录可能相当普遍。频繁地错误输入密码,以及在最后得到正确的密码前,用户可能经常输入多个密码的错误选择。如果将长期固定限制放在这些错误上,可能将有效的笨拙的用户锁在外面。另一方面,如果***容许3比1的尝试成功比,可能仍然不能检测对手的长期的偶然的猜测攻击。
为解决该错误处理问题,在本发明中引入了“原谅”的概念。***应当原谅和不考虑由有效用户用与未知用户的无效访问相同方式所犯的临时错误。在本发明的优选实施例中解决了该问题。
因此本发明的一个目的是尽可能减小在基于密码的客户机/服务器验证***的简单安全模型中的几个基于服务器的攻击的威胁。本发明的另一目的是提供使用多个服务器的远程用户验证。本发明的另一目的是仅使用小密码由客户机向服务器验证。本发明的另一个目的是提供不要求在客户机上存储密钥或证书的验证。本发明的一个目的是使用用于容错的多个服务器。本发明的另一个目的是提供安全的甚至具有任何单个服务器的总的有效折衷的远程密码验证。本发明的另一个目的是更好地处理在密码输入中的普通人为错误。
发明概述
为实现上述和其他目的,本发明提供使用多个服务器实现远程密码验证的***、方法和软件。***、方法和软件采用改进的SPEKE的形式来实现在多服务器***中的安全性。
根据本发明,示例性***包括一个或多个客户机以及多个通过网络耦合在一起的验证服务器。在示例性***中,客户机使用改进的SPEKE来从每个验证服务器检索安全主密钥的共享部分Ki。其中i是指定特定服务器的变量。客户机结合来自每个服务器的各个共享部分以创建主密钥Km,主密钥Km用来向服务器验证并检索和解密在服务器或其他地方安全存储的敏感数据(包括她的私钥)。
每个验证服务器单独知道与主密钥的单一共享部分一致的随机值yi。每个验证服务器也负责保持来自客户机最近访问请求的列表并通过验证从有效客户机接收到的证明消息来协调这些访问尝试。具体来说,当它能确认原谅的有效请求时,每个服务器必须原谅有效用户在密码输入中最近已犯的错误。
为防止控制通信信道的对手能欺骗Alice使用不正确的主密钥Km的可能性,Alice在使用它以创建可能显示给对手的任何数据之前确认Km是正确的。验证步骤使用从Alice到每个服务器的签名消息来验证有效登录以及验证和请求原谅在前最近的合法但错误的登录尝试。
更具体地说,在注册时,Alice创建主对称密钥Km的n个共享部分,其中第i个共享部分Si形成为她的密码P自乘随机指数yi次幂的函数。共享部分与函数结合以便具有正确的任何共享部分的子集的知识的攻击者不能将Km从在相同范围同的随机值区别开来。然而Alice设法通过第i个服务器转换将被存储为严密保护的秘密的每个指数yi。Alice也选择用于数字签名的公钥/私钥对{V,U},以及使用从Km导出的密钥对称地加密私钥U以创建她的加密的私钥UK。最后,Alice创建将密钥链接到她的主密钥的证明值proofPKm。Alice将V发送给n个服务器的每一个,并在方便的地方也许是每个服务器上存储Uk和proofPKm。通过安全信道执行注册协议流,安全信道的每第i个服务器Bi验证Alice的身份A。
client:{enroll,A,V,yi}→Bi
client:{record,A,UKm,proofPKm}→Bi
在密钥检索时,为了Alice重构她的主密钥以及检索她的私钥,Alice将随机隐秘形式的密码Q发送给每个服务器。每个服务器依次用隐秘应答Ri(Ri=Qyi)响应,Ri由隐秘密码自乘安全指数值次幂构成,yi表示用户主密钥的隐秘共享部分。至少一个服务器也向Alice发送她的加密的私有签名密钥Uk和proofPKm
Client:{request,Q}→Bi
Server Bi:{reply,Qyi,Uk,proofPKm}→Client
有趣地,Alice检索Uk和proofPKM的信道不必保证这些值的完整性。这将在节4.4中进一步讨论。
Alice不隐秘(unblind)每个应答以获得每个密钥共享部分并结合这些共享部分以重建她的主密钥Km。然后,她使用证明值proofPKm和她的密码P校验主密钥是否正确。如果证明是不正确的,这暗示至少一个密钥共享部分是不正确的,并且她必须中断协议而不向网络显示任何有关Km或P的另外的信息。否则,使用从Km导出的密钥来解密她的加密的私钥(以及任何其他数据),然后,通过向每个服务器证明她的身份,她完成协议。对最近发送给每个服务器的每个隐秘密码Q,她发送隐秘密码的签名拷贝。
Client:{confirm,Q1,sign(U,Q1)}→Bi
Client:{confirm,Q2,sign(U,Q2)}→Bi
每个服务器将来自Alice的签名Qx值与最近接收的隐秘密码的列表匹配,并删除有效签名所带有的任何匹配的输入。如果在合理的时间量内未确认,剩余输入将被认为是可疑的非法的访问尝试,将其标记为无效。如果计数超过某一阀值,可使用计算无效的访问尝试来限制或延迟对用户帐户的另外的隐秘共享部分应答。
Alice必须校验她的主密钥。如上所述,Alice能在不安全的信道上执行验证。她检索(通常是从证书服务器)她的校验机proofPKm,然后通过将她的密码的密钥散列与proofPKm比较,确认重构的主密钥的有效性。如果值不匹配,Alice中断协议。
方法的另一种改进涉及Alice如何向每个服务器证明主密钥的知识,以及每个服务器如何将该信息与其自己的访问尝试的记录协调。
每个服务器通过查看来自Alice的消息以及通过暗示她知道她的密码的证明检测非法访问尝试,消息包括主密钥的她的知识的证明。如果有效证明与隐秘密码值无关,服务器必须触发用于Alice的帐户的无效的访问事件。本方法在构造Alice的证明以及每个服务器如何使用证明来原谅Alice在密码输出中的错误方面不同于现有技术。
当不使用安全信道时,简单将证明发送给Bi能将该方法暴露给再现攻击。为防止这个,证据给合由Alice发送的隐秘请求值。另外,认识到Alice偶尔误键入她的密码,以及通过递增可能导致过早帐户锁定的她的非法访问计数而不处罚她。期望当她后来能向服务器证明她最终能输入正确的密码时,每个服务器原谅她的错误。
使用原谅协议,原谅用户的诚实的错误。在每次成功验证后,Alice以原谅请求的形式发送她的最近的在前的无效访问尝试的证明。一旦接收和校验该证据,每个服务器从记录删除错误,或将该事件记录为校正的可原谅的错误。通过以这种方式微调服务器的事件登录,与当仅挫败有效用户时相反,***管理员获得当***真正处于风险中时更详细概念。
原谅***似乎要求在客户机上的至少一个签名生成步骤以及用于每个服务器的一个签名校验步骤。为减少计算(由于计算成本,当使用公钥签名方法时很重要),签名步骤提供验证服务并证明请求来自那个用户的组合函数。在构造用于用户的有效验证消息中,客户机包括由那个用户发布的所有最近的挑战消息组,用适当的用户密钥数字签名结果并将其发送给所有服务器。每个服务器校验签名以验证用户,同时,验证她的最近可原谅的错误的证明。(这些签名可使用在公钥数字签名***中的用户私钥来创建并使用客户的公钥,或作为选择,使用由各别的对称密钥加密的密钥MAC来校验,对称密钥可由客户机和每个服务器双方共享)。
一旦接收到Alice的确认消息,每个服务器尝试使她的访问尝试的证明与他的最近尝试的记录的列表一致。他通过校验Alice在每个Q值的签名来完成这个。一旦成功校验,他知道Q值的确由最终知道该密钥的某人发送,不管请求消息是否特定用于重建她的主密钥。
在本发明的优选实施例中,密码校验机的弱点分布在服务器中以便没有一个服务器能破译校验机。提供标定为N个服务器的***,其中对任何等于N-1个服务器数量的攻击不能暴露用户的密码或任何受保护的密码数据。提供强大的保证,即使面对达到除一个验证服务器外所有服务器的总的有效折衷,以及面对现有不安全的通信信道。应当理解密码仅是实现***中的一个因子。
应当理解密码仅是在实现本发明中要求的验证因子。只有密码的验证是当今使用的主要方法。在本发明中,密码因子被尽可能做得强,以及不依赖其他因子。
也应当理解可使用其他另外的密钥或证书。预见本发明可用在多因子***中。很显然,在非漫游应用中,有能力存储本地密钥,可通过这种操作来提供强度层。例如,对本发明中密码的安全性,不要求使用加密套接字协议层(SSL)信道,但另外使用SSL能提供其他好处,如当执行这些事务时增加用户姓名的安全级。通过消除用于密码安全性的其他因子的依赖性,大大增加了整个***的强度。具体来说,本发明阻止可能针对当今广泛使用的过分简单的Web浏览器验证,通过SSL密码***的整类假冒Web服务器的攻击。
附图的简单说明
本发明的各种特性和优点将参考下述结合附图的详细说明变得更容易理解,其中相同的参考数字表示相同的结构元件,以及其中:
图1是根据本发明的原理描述示例性***的客户机和服务器组件的框图;
图2是根据本发明的原理,描述客户机操作的示例性方法的流程图;
图3是根据本发明的原理,描述服务器操作的示例性方法的流程图;
图4是根据本发明的原理,描述示例性方法的流程图;
图5是根据本发明的原理,描述表示仅与两个服务器中的一个通信的客户机的操作的示例性方法的流程图。
详细说明
参考附图,图1是根据本发明的原理,描述示例性多服务器***100的框图。所示的示例性***100包括客户机101或客户计算机101(Alice)以及多个验证服务器103、104,在该例子中为通过网络102耦合在一起的两个服务器B1103以及B2104。
本***100以及方法采用用于客户机101的改进的SPEKE方法以便从两个或多个服务器103、104检索主密钥共享部分(使用数字n来指定用在特定实施例中服务器103、104的数量。)用在实现本发明中的模型允许在不受保护的信道或网络102上发送验证消息,以及不需要安全信道(例如SSL)。为防止控制信道的对手能欺骗Alice使用不正确的主密钥的可能性,Alice在使用它创建可能显示给对手的任何数据前确认主密钥是正确的。另外,验证步骤使用签名的消息验证有效登录,以及在前合法但错误的登录以适应原谅协议。提供独特函数以创建用于指数交换的密码导出的基本元素,以及描述了允许更灵活地构成客户机101和服务器103、104的形式。在对专门情况很重要的较弱的安全模式中提供另外的方法。
在优选实施例中,Alice的潜在的小密码以及所有她的受保护的密码数据仍然安全,即使面对等于n-1个服务器103、104的总有效折衷。在从Km导出的密钥下的Alice的敏感数据的加密确保通过该验证过程,她的数据将仅对使用正确密码的当事人有效。
注册时,Alice选择密码以及用来创建主密钥Km的许多共享部分{y1,y2,...yn}。在该例子中,主密钥导出函数是Km=hash(k1‖K2‖...Kn),每个共享部分按 K i = p y i 计算,但是下面描述其他另外的密钥导出函数。Alice通过每个Bi预先计算Km和存储用于Km的相应的密钥共享部分yi以及验证数据。验证数据通常是使用公钥数字签名或另外的对称密钥MAC函数的数字签名的消息。
每个服务器Bi使用改进的SPEKE协议,基于他的yi的知识,为Alice提供部分Ki。每次运行协议检索一个她的隐秘密钥共享部分,在该实施例中为值 m i = P xy i 。 Alice结合和散列这些共享部分以导出主密钥,在该例子中,使用:
km=hash(m1 1/x‖M2 1/x‖...mn 1/x)
由于随机yi值,这些密钥共享部分是无关的。
参考图2,稍后,Alice从服务器103、104检索主密钥。客户机101提示用户输入密码201,并根据改进的SPEKE方法从密码导出群元素202(当使用具有(p-1)/2素数的大的素数次方子群zp *时,这种函数的一个例子是p=hash(password)2modp)。使用改进的SPEKE方法,Alice将隐秘密码值Px发送给每个服务器Bi2O3。每个服务器Bi使隐秘密码值自乘以适当次幂,正如在 m i = ( p x ) y i 中,并将结果返回给Alice。Alice检索每个密钥共享部分mi的相应的隐秘值204,并不隐秘每个结果且结合它们来创建她的主密钥205。在该例子中,用函数 k m = hash ( m 1 y 1 | | m 2 y 2 | | . . . m n y n ) .
这里示出了用于Alice从任何服务器,通常标记为Bi检索密钥共享部分Ki的一般方法。
A→Bi:mn=Px B i → A : m i = m o y i A : K i = m i 1 / x = p y i
B1知道的安全值y1完全与B2知道的值y2无关等等。因此,没有一个服务器具有足够的信息来发动Km或P的字典攻击。用该协议,每个Bi预先存储yi,以及也存储主密钥Km的单向函数的校验数据V。
使用从Km导出的密钥,Alice能使用Km来解密已经存储在加密容器中的个人私有数据208。该容器可能存储在任何一个服务器103、104或方便的任何地方,并且能在不安全信道上被检索。然而,在Alice将从她的Km知识导出的任何数据显示给任何其他当事人前,她必须首先确定Km是有效的208。下面讨论专门的确认技术。
如果Km无效,那么根据本地密码重试策略,可能要求用户通过重新输入密码再试一次201。如果执行重试,客户机101将用在失败交换中的Px值存储在安全短期存储器中。
如果Km有效,Alice构造Km的知识的证明Px以及由相同用户产生的存储在短期存储器中的任何最近在前Px值的列表,并将该证明发送给每个服务器103、104 207。现在Alice也能自由地使用从Km导出的数据,如存储在加密容器中的具有私钥的签名公用文档209。
使用任何适当的零知识协议,Alice能向任何Bi证明Km的知识,零知识协议不必是零知识密码协议,因为Km具有大的熵。每个服务器Bi具有与Km一致并允许他校验Alice的Km的零知识证明的校验数据信息V。
例如,在一个实施例中,Alice使用Km来检索用于公钥数字签名模式的用户私钥U,其中V是与U一致的用户公用签名密钥。Alice能用许多方法向Bi证明Km的知识,如使用私钥签名消息,其中Bi校验签名以及证明Alice的Km的知识。
也能用许多方法从Km导出U。在一个实施例中,正好是使用任何数据直接从Km导出U和V值。
在本发明的优选实施例中,继续将U值密封在用从Km导出的对称密钥加密的容器中。在这种情况下,Alice使用Km导出对称加密密钥,然后开启她的私钥U。
然后Alice签名Bi知道的消息来证明她的Km知识,并将签名的消息发送给Bi。在本发明的一个实施例中,消息是由Bob向Alice发送的值RBi
Bi→A:RBi,随机一次性数字
A→Bi:U(RBi)她的RBi签名
另外,在本发明的优选实施例中,Alice发送U(QA),进一步使用QA证明她是验证的那个人。下面讨论为什么Alice应当验证QA,以及它涉及每个服务器需要如何从无效的访问尝试中区分出好的。
第三种方法是V=gKm,主要是用于Km的Diffie-Hellman公钥。在这种情况下,Alice可能验证如下:
Bi→A:gx
A→Bi:m:=hash(gx)Km)
Bi:   如果(m=Vx),那么Alice必须知道Km
然后Alice可能发送Ekm(QA)以证明她自己。
在任何情况下,当Alice证明Km的知识时,她也正在证明密码P的知识。
有不希望服务器Bi知道单一共享部分Ki的好的理由,因为Ki和yi组合的知识使那个服务器有能力破译P。在单一服务器情况下,服务器必须存储能被用来破译密码的某些数据似乎是不可避免的。但在理想的多服务器情况下,不希望服务器知道P、Km或Ki,或任何其他的能导致破译P的数据。
总的来说,每个Bi不知道P或Ki。Bi使用yi来运行改进的SPEKE以及验证Alice的Km的知识。每个Bi仅知道yi以及V,用于Km的校验数据,该校验数据也用作Ki的校验数据或更广泛地用于Alice的P的知识的校验数据。
注册
在注册时,Alice选择她的密码,及适用于执行公钥数字签名的公用/私钥对{V,U}。
Alice脱机执行下述步骤:
基于密码构造群元素P,其中:
    P=hash(password)2mod p
For i=1 to n servers 103、104
{
   选择yi作为无关大的随机数
   Computer Ki:=pyi mod p
}
   用所有Ki共享部分组成K,例如
       Km=hash(K1‖K2‖...Kn)
构造用于主密钥Km的通用验证数据,如
V=gKm mod p
那么Alice将这些证书安全地分配给n服务器103、104
让“UserID”为用于用户的标识符
For i=1 to n servers
{
      在每个服务器上存储{UserID,yi,V}
}
验证
Alice通过使用改进的SPEKE检索每个Ki共享部分、组合共享部分来创建Km、核对Km的有效性以及提供Km的知识来向每个服务器Bi验证。
对每个服务器Bi
{
A→Bi:QA=Pxmodp B i → A : QB = Q A y i mod p , V
A:Ki=QB (1/xmod(m-1))modp
}
计算Km:=hash(K1‖K2...‖Ki)
校验Km的有效性(如下所述)
对每个服务器Bi
{
A→Bi:proof(Km,QA)
}
注意每个服务器Bi不知道Ki,以及在不知道密码P的情况下不能计算它。更好,每个Bi不知道Km或P,以及没有其他共享部分的知识,不能从V计算它。即使用蛮力,Bi也不能从yi计算它,除非他获得所有共享部分yi。因此,实现了有恶意的服务器不能计算P除非所有n个服务器103、104均妥协的目的。无能力访问即使仅一个yi值使得蛮力不能实行。
防止在线蛮力攻击
为防止在线猜测攻击,服务器103、104将希望在每个用户的基础上限制运行协议的计数或频率。这种技术是公知的。然而,为优化这种***,服务器103、104有必要区别协议的有效或无效运行。另外,对无效运行的协议,区别合法用户错误以及可疑的攻击也很有用。
具体来说,希望将偶尔键入错误密码的用户与真正未授权的尝试区分开来以便验证。不象机器对机器的验证,在用户验证中错误是很普遍的。具体来说,在密码验证中,有几种普遍类型的错误。可能Alice暂时忘记她的密码并键入某些类似的,但却是错误的。或可能Alice知道密码,但在键入它时犯了错。另一种普遍的错误是键入她可能模糊记住的多个密码的错误选择。对用户来说在一系列登录尝试期间犯这些错误是很普遍的,其中最后一次最终的尝试是有效的。如果服务器将所有这些情况均算作可疑的黑客攻击,以及如果服务器在将该用户锁在外面之前对尝试计数有严格的限制,可能普遍偶然地将用户锁在他们的***之外。
在上面描述的***100中,Alice能向所有验证服务器103、104证明她的组合的{Km‖Px}的知识以使他们将她的合法的但错误的访问尝试与攻击者的猜测尝试区分开来。如果服务器不检索这类证明,也许在某一时间间隔中,它们应当保守地假定用Px所做的猜测是攻击者的无效的且未授权的访问尝试,并相对于允许的无效的尝试计数。
减少排字错误对无效访问计算的影响的一个方法是检测在客户机101上的无效的输入,并避免向服务器103、104发送重复复制的无效的密码。只要客户机软件检测到已经由服务器拒绝的特殊输入,它向用户显示拒绝消息。如果用户重复同样的无效输入,客户机软件可以识别这个,并避免再次连接服务器。这种优化必须在短的持续时间完成,以便减小暴露客户机101上存储的密码。
原谅协议
现在描述该问题的另一个新颖的方法,称为“原谅”协议。在该***100中,假定在短期内在许多偶然输入错误密码后输入正确的密码。当这种情况发生时,希望服务器103、104原谅错误输入,这可通过有效地从记录的无效访问尝试数消除事件来完成,如果证明是由合法用户所犯的这些错误的话。通过原谅,频繁误键入他的密码的用户不必受保持有关未授权访问尝试的小的长期限制的***100的处罚。
自然的方法是在每次成功尝试后简单删除所有在前最近的无效尝试的记录。然而,这允许知道***阀值攻击者在由实际用户的有效运行协议间交替的对密码做最理想的猜测数。
对该问题的解决解决方案是(尽可能地)识别错误访问尝试仅是有效用户的偶然错误,以及向服务器证明该信息。这是通过客户机在每次成功运行协议期间发送那个用户已知的在前所犯的错误的证据来完成。基本上,用户要求原谅每次这种错误。当服务器校验有效用户犯了错误,服务器从记录减少(消除)错误,
好处在于能拉紧在无效访问数上更严密限制而不处罚重复地少数排字错误的用户。
参考图3,描述了用在改进的SPEKE多服务器***100的优选实施例中的示范性的原谅协议300(用软件300)实现):
服务器103保持下述用于用户的数据变量:
Z          尝试数
N          最近放大请求的次数
R[1...n]   Px密码放大请求值列表
T[1...n]   与R[1...n]有关的时间戳列表
服务器103接收隐秘密码(Px)请求301。根据本地策略,核对用户帐户以查看它是否被锁定302。如果被锁定,不必发送应答303。如果未被锁定,那么在短期可疑列表中记录隐秘密码304,创建隐秘密钥共享部分(pxyi)305,以及在306将隐秘密钥共享部分(pxyi)发送给客户机101。
在未锁定帐户且将隐秘共享部分发送给客户机的情况下,应当仅完成记录隐秘密码请求。然而,为了安全起见,应当在发送隐秘共享部分前完成记录。
因此,对每次登录尝试,其中密码放大过程发生305,递减N值,以及服务器103将在那次运行中的用过的QA值记录在短期存储器的列表值R[N]中315。服务器103也将相关的时间戳值记录在T[N]中以记下接收请求的时间。
定期地,服务器103将运行一个进程来找出或核对失效请求313。当在T中的任何时间戳值与当前时间间的差异变得大于特定的时间周期时,服务器103将删除任何相应的R值314。该周期的长度通常可以是犯过错误的有效用户希望的继续用正确密码尝试登录的最大计数。当从列表删除每个R值时,也删除相应的T值以及最近放大数N。在每个这种事件时,在长期存储器316中递减无效尝试数Z以表示未校验用户已经发生过多次密码放大事件。
当成功登录发生时,在308,客户机101将等于密码自乘随机幂的QA值以及在同样的登录会话中来自先前运行的用于QA的任何在前值发送给在数字签名消息中的每个服务器103。使用从用户的主密钥Km的知识导出的密钥签名该消息。最好使用可由具有用户公钥V任何服务器103校验的用户的私钥U的使用消息上的公钥数字签名执行签名。
另外,可通过计算由用户和服务器共用密钥加密的密钥MAC执行签名。在这种情况下,可直接从Km导出或从由Km对称加密的加密的容器获得密钥,但通常对每个用户/服务器关系,共用密钥必须是唯一的。
可从服务器接收该签名的消息308并确认309。确认步骤可是使用用户公用签名密钥的公钥数字签名确认,或另外,使用对服务器来说已知的用户特定的密钥的加密的MAC的确认。服务器103校验所有最近QA值的用户列表签名,并将它们与在列表R中在前最近运行中找到的值的列表比较309。当没有匹配时,不改变列表R310。通常***不应当将接收的无效证明处理为成功的或不成功的登录事件。当有匹配时,从在短期存储器315的列表R中消除相应的访问尝试311,同时消除相应的时间戳并递减N值。
服务器103可选择限制无效尝试数Z,或也许无效尝试和最近未被确认的放大的总数(Z+N)。该限制可能对用户、用户集是特定的,或是全***限制。同样,当超过限制时,可将所采取的行动从将帐户永久地锁在外面变成暂时将帐户锁在外面,以及/或将报警状态呈现给***管理员。技术方面的这种改变在基于密码的***中是普遍的。
服务器103也希望记录与客户机101或网络102有关的来自事件访问的信息。服务器103可能甚至在每个客户机的基础上保持这种事件的帐户。
注意在改进的SPEKE***100中,即使暴露的QA值的记录对客户机101或服务器造成不安全威胁,因为该数据已经被公开。
当使用原谅协议时,一个担心是在共用工作站设置中。如果长时间间隔运行的持久的登录程序,攻击者可能正好在所希望的目的用户到达时间前能到达工作站,并且攻击者能***将很快被原谅的多个猜测。因此,***设计者需要考虑这种事件的似然性,并可能适当地调整原谅时间窗。降低这种威胁的另一种方法是使用提出基于会话的方法来登录的***。客户机101可使用安全注意密钥来开始对几个访问尝试保持有效的登录窗,然后在静止周期后离开。该***对在在前会话中所做的无效登录尝试永不请求原谅,但可原谅在单个会话中的所有无效尝试。也应当训练用户以确保当使用共用工作站时总是使用最新的登录会话。
分配U(QA)消息的一个显而易见的进程是使Alice接触所有N个服务器103、104。然而,为减小在这些繁忙的机器上的中断,可使Alice仅与其中的一个服务器103、104接触。然后该服务器103、104能将证据传播到所有其他关联的服务器103、104并以总的批请求系列来完成。例如,可每几分钟执行更新以分发对当前到来的用于***的所有用户的“原谅我”的请求。该技术能减少中断的计数以及每个服务器的通信开销量。
原谅协议概述
本***100是“宽大的”,因为它计算有效用户的错误防止无效尝试的用户帐户限额。它将有效瞬时错误低估成不是对***100的威胁,同时仍然保持能力计算和限制未知用户的无效访问尝试。
这是通过在每次成功验证后发送最近在前无效访问尝试的证据来完成。一旦接收和确认该证据,每个服务器从记录删除错误,或将事件记录为较正的可原谅的错误。通过用这种方式微调服务器事件登录,***管理员当***100真正处于风险时获得更详细的概观,与当仅挫败有效用户时相反。
原谅***100需要在客户机101上的至少一个签名生成步骤以及用于每个服务器103、104的一个签名校验步骤。为减小比较,签名步骤能与验证用户的签名步骤结合。在构造用于用户的有效验证消息中,客户机101包括由那个用户发布的所有最近挑战消息组、用用户私钥数字签名该结果,并将它发送给所有服务器103、104。每个服务器103、104确认签名来验证用户,以及同时确认她的最近的可原谅的错误的证据。原谅***100的这种实现要求没有用于任何当事人的显著的额外计算。
拒绝服务
当在无效尝试上设置用于帐户锁定的小限制时,同时也有增加的拒绝服务攻击的威胁。攻击者通过执行重复的故意的无效访问尝试可简单否定特定用户访问***100。
减轻该问题的一个方法是在服务器记录中记录有关无效访问尝试源的信息,更具体地说,在每个源的基础上使服务器执行锁定操作。当这种信息有效时,源信息可能包括始发客户计算机101的姓名或网络地址。
扩展
只要用户获得她的主密钥Km,可用许多方法扩展上面描述的基本***100。每个验证服务器,以及更通常是任何其他服务器,能存储用于客户机101的在用户私钥Km下对称加密的私有文件。甚至可自由地将文件发送给用户而不验证,因为它被有力地加密。该文件可包含用户私钥以及其他用于用户的敏感数据。
可扩展上面描述的基本的多服务器协议以允许可暂时无效一些服务器103、104子集的情况。
注意能用许多不同的方法结合共享部分Ki。一个例子是扩展该***100以允许N中的M个验证,其中访问n个服务器103、104中的子集m足以获得足够的共享部分来组成K。这个的一个例子如下:
计算{C1,C2...Cx}的组合列表,其中Ci是一个Ki部分的所有可能的有效组合。例如,当m=n-1时,有人能用以下方式计算所有n-1共享部分的有效组合:
for i:=1 to n
   c:=null bit string
   for k:=1 to n
        if k!=i
             c:=Ci‖Kk
   Ci=hash(c)
然后服务器存储K:C={excrypt(C1,K),excrypt(C2,K),...excrypt(Cx,K))的x个不同对称加密。
验证时,客户机101检索列表C、解密K并向服务器103、104证明K的知识。该方法可能实用于小值m和n。
短指数问题
由于一般来说是q的大小取幂是上述方法的主要代价,希望减小指数的大小。D.Jablon在“Password Key Exchange using a CompositeModulus”,Document DisclosureNo.443510,1998年8月20日申请的U.S.PTO的一种用于提供具有短指数的有效的零知识方法的一套方法,在此合并作为参考。
另一种方法是使用由P.C.van Oorschot和M.J.Wiener在“OnDiffie-Hellman Key Agreement with Short Exponent”在Proceedingof Eurocrypt96,Springer-Verlag,1996年5月讨论的短指数。这些作者讨论已知计算攻击的相对成本,并讨论短指数的适当的大小。
然而,仍然有一个担心,即这未解决可能开发技术来泄漏有关导出密码基数的信息的可能性,假定对不同密码值取幂短随机指数的最后得到的域非常清楚的。
当使用从在[1,o(G)]中平均分布范围选择的随机指数x时,仅Px的知识而没有x的知识没有显示有关P的信息是显而易见的。但是当使用在范围[1,m]中的短指数x时,其中m<o(G),安全性依赖一些计算刺手的另外的假定。假设有人找到对该事件的特殊的攻击会怎么样呢?
Van Oorschot和Wiener讨论过在Diffie-Hellman中使用短指数,其中作者将Pollardλ方法识别为最有效的已知方法来计算用于一些已知固定基数g的随机指数gx。λ离散对数计算需要x1/2操作。破译Diffie-Hellman交换生成的密码的过分简单的方法是计算用于每个可能的基数P1的指数,其中P1是为每个候选密码构造的。然而,有人可能关心可能存在更简单的解决方法。
关于问题(1)可能比蛮力λ攻击更简单的(不必要的)担心,我们提出一种方法,通过使用显著小于模数的素数次方的子群来降低Alice和Bob的计算。希望消除任何计算刺手的假定,至于对于对手仅从客户的Px值确定信息的情况。
用于密码导出生成元的P=f(g.h)方法
解决该问题的方法使用具有显著小于模数的次方的大的素数次方子群。使用函数来(相对有效地)将密码转换成该子群的生成元,以及通过减少泄漏有关具有可能较少假定计算刺手的服务器安全指数的信息使用有效保持安全性的装置。在该实施例中,从两个独立的随机群元素(g,h)导出值P,其中这些元素中的一个h根据密码函数乘以幂。
固定的***参数:
让p=k·q+1其中21023<p<21024,以及2159<q<2160,p和q是素数
让g=hash(“g”)k mod p
让h=hash(“h”)k mod p,两个不相关元素的q次方
散列函数是标准的密码散列函数如SHA1。在该例子中对函数的输入串是任意常数,以及在该例子中是单一的ASCII字符串“g”和“h”。g和h是任意独立的数字是很重要的,以便通过任何指数幂不知道g与h有关。
注册
Alice在注册时执行下述步骤:
选择y∈R[1,q]在1至q的范围内的随机数
计算t=hash(password)mod q
计算P=g.ht mod p
计算K=Py mod p
用服务器B存储y
在指数中导出的密码t增加了有关在1997年6月Jablon论文中确定的“password-in-exponent”问题的担心。攻击者不必能创建“指数字典”{e1,e2,...}来建立固定基数g与用于P的候选值的字典{P1,P2,...}的对应关系以便 g e i = P i .
如果独立选择g和h以便通过任何书籍的指数不能关联它们,然后防止该问题。如上面描述的固定***参数的结构保证了这个。
注意如果由于某些原因希望可变参数,客户机101可能通过校验证明它们的有效性的公开的证书来校验g和h是适当的。可将证书简单地输入到散列函数中一在该例子中是串“g”和“h”。如果散列函数必须合理,且散列范围必须足够大以防止冲突,最终得到的值应当基本上与随机数难以区分。离散对数问题确保不能确定这两个随机元素间的指数关系。一种适当的散列函数是在“Secure Hash Standard”,FIPS 180-1,U.S.National Institude of Standards and Technology中描述过的SHA1。
验证
在Alice与Bob执行的密码放大协议中,
Alice执行以下:
计算t=hash(password)mod q
计算P=g·htmod p
选择y∈R[1,q],在范围1至q中的随机数
计算r=Px
将r发送给Bob
然后Bob执行以下:
如果(rq mod p)≠1或r=1,中止处理
计算s=ry
将s发送给Alice
然后Alice执行下述步骤
如果(sq mod p)≠1或s=1中止
计算km=s1/xmod p
在该方法中,Bob和Alice用160位指数执行两个指数。当与类似的Ford和Kaliski方法比较时,在假定可解决短指数问题的情况下,该方法提供一种具有相当低的计算的粗略同等的安全级。
将这说成是“粗略”同等,因为很难确定用于指数的最小大小与对称密钥间的任何精确的同等关系。在该例子中假定高于随机指数和子群是160位,对称密钥具有80位强度以及模数大小为1024位。这种关系很难准确说明。如引用的一种观点,注意DSS签名标准使用512位模数的160位子群。其他标准通常为160位子群假定大的模数大小。在任何情况下,由于通常用于增加密钥大小标准改变,也适当调整在这里描述的方法中的值的大小。
用p=f(g.h)的模数构造
在上述方法中,其中p=kq+1,以及使用子群的计数q,存在有关对因子k的担心。对所有小因子k,其中小表示小于某些最小安全大小,对手能用特定值T试探服务器以获得Ty mod p。该结果可能允许对手知道有关服务器的指数y的信息。让S为所有小因子k的倍数,认可用于每个小因子,有相应的小子群。通过构造K以便S=2,能将攻击减小到最小程序,仅泄漏y的低位。在一个实施例中,p=kq+1,其中K=S.r,S=2,以及r,q以及p是素数。
仅泄漏y的低位应当不是重要的问题,如果指数y真正是随机的话。假定低位是独立的随机数,可将最小安全指数大小简单增加1位来补偿。该1位泄漏可通过使固定常数值的低位y遍布该***100来防止。
用p=f(g.h)的安全性和有效性
降低从试探攻击信息泄漏的类似方法是确保y是S的倍数。同样在这里,必须适当增加y的大小以补偿随机性损失,以便如果S是10位数时,y是大于在S=2的情况下的10位。
用p=f(g.h)方法,我们能使用具有更有置信度的短指数,仅增加用于客户机101的小计算费用。可将该方法的性能与使用类似短指数但具有能产生更大群的值P的方法的性能比较。该方法获得客户的第一消息的可证明的安全性的另外的保护,而没有显著增加服务器的计算。客户增加的成本是h的t次幂。
最后,在本发明中使用的通过消除计算刺手的假定增加安全性的方法有一天将被证是是无关的。可能证明使用短指数的计算安全性与我们将该方法当作一个整体的其他假定诸如假定离散算术问题难以处理类似是可能的。
另外的密钥导出函数
另外的密钥导出函数对于从密钥共享{y1,y2...yn}中导出主密钥是可能的。这里给出3个这种函数,第一个与上述的例子相同。
Km=hash(Py1‖Py2‖...Py2),使用级联,
Km=hash(Py1py2...Py2),使用XOR函数,
Km=hash(Py1*py2*...Py2),使用群操作符。
在特定情况下,采用用于群中取幂和这里所示的组合密钥导出函数的组合密钥共享更为有利,以下将进一步讨论。
Km=hash(Py1.y2....yn),使用重复的群取幂。
在下一节,这些不同的另外的密钥导出函数在不同的方法实施例中有优点。
另外的流和组合密钥导出函数
用于与多个服务器103、104验证的一个简单方法具有客户机101,客户机101执行一系列与两个或多个服务器103、104的每一个的挑战/响应协议,其中:
方法(1)
A:    m1=Px
A→B1:m1 B 1 : m 2 = m 1 y 1
B1→A:m2
A→B2:m1 B 2 : m 3 = m 1 y 2
B2→A:m3
A:    Km=hash(m3 (1/x),m3(1/x))
使客户机101将单一Px同时发送给多个服务器103、104的另外的方法(2)在客户机101能异步收集响应的环境中可能很有利,让服务器103、104(B1和B2)同时工作以并行计算和发送响应。
方法(2)
A:    m1=Px
A→B1:m1
A→B2:m1 B 1 : m 2 = m 1 y 1 B 2 : m 3 = m 1 y 2
B1→A:m2
B2→A:m3
A:    Km=hash(m2 (1/x),m3 (1/x))
当与方法(1)比较时,方法(2)可降低整个运行时间。
方法(2)中的进一步优化是从密钥共享部分的群乘积导出主密钥,如在Km=hash(K1*K2*...Kn)。在这种情况下,Alice能执行计算Km=hash(m2*m3)(1/x)),这降低她必须执行的指数量。
具体来说,图4是根据本发明的原理,描述示范性方法400的流程图,表示使用具有优化计算的群乘积密钥导出函数的客户机和两个服务器的操作。
在步骤401,在注册时间{UserID,yi,V}存储在每个服务器103、104上,以及将P(Hp=hash(P))的加密拷贝以及用户的私钥存储在与用户身份{UserID,encrypt(Km,{Hp,U})有关的字典中。注意加密容器包括消息认证码以确保不能修改容器破坏U同时不破环Hp
登录时,在步骤402,创建输入密码的适当的函数的群元素(P)(如上所述)。在步骤403中,形成隐秘密钥共享部分(m1=Px)。在步骤404,将隐秘密钥共享部分发送给每个服务器B1103和B2104。
在步骤405,在第一服务器(B1)103h形成隐秘密钥共享部分(m2=m1 y1)。在步骤406,服务器B1在短期存储器中存储隐秘密码,以及在步骤407将隐秘密钥共享部分(m2)发送给Alice。在步骤408,Alice从公用字典获得她的加密的密码校验机Hp以及私钥U(步骤408能在任何方便的时间完成)。在步骤409,在第二服务器(B2)104上形成隐秘密钥共享部分(m3=m2 y2)。在步骤410,第二服务器(B2)104在短期存储器中记录m1并在步骤411将m2发送给Alice。在步骤412,Alice101不隐秘这些共享部分并创建她的主密钥Km=hash(m3*m3)(1/x)。注意 K m = hash ( P y 1 * P y 2 ) , 使用用于密钥导出的共享部分的群乘积。
在步骤413,客户机101使用Km解密字典数据以便检索Hp和U。在步骤414和415,如果Hp不等于hash(P),客户机101中断。在步骤416,客户机101使用她的私钥U创建包含隐秘密码m1的签名消息,并将其发送给B1和B2作为她正在代表合法用户操作的证据。在步骤417,每个服务器使用用户公钥V校验在消息m4中在m1上的签名。在步骤418和419中,如果校验在m1上的签名并在可疑登录请求的短期列表中找到m1,从列表中删除隐秘密钥共享部分m1
然而,可能存在消息流串行化不可避免的情况,正如在连锁方法的例子中,其中服务器B1充当客户机101和服务器B2间的媒介。在这种情况下,使用隐秘密钥的序列指数,如在 Km = hash ( P y 1 * y 2 . . . y n ) 中,能使用另一种组合的密钥导出函数来导出主密钥。
方法(3)
A:     m1=Px
A→B1: m1 B 1 : m 2 = m 1 y 1
B1→B2:m2 B 2 : m 3 = m 2 y 2
B2→B1:m3
B1→A: m3
A:     Km=hash(m3 (1/x))
注意可互换由B1和B2执行的计算的顺序,以及B2能简单地将m3直接发送给A。在下面详细描述该方法并在图5中表示。另一等效的顺序如下:
方法(4)
A:     m1=Px
A→B1: m1
B1→B2:m1 B 2 - - - m 2 = m 1 y 21
B2→B1  m2 B 1 : m 3 = m 2 y 1
B1→A: m3
A:     Km=hash(m3 (1/x))
Alice也能将组合密钥导出函数作为媒介用在串行化方法中:
方法(5)
A:    m1=Px
A→B1:m1 B 1 : m 2 = m 1 y 1
B1→A:m2
A→B2  m2 B 2 : m 3 = m 2 y 2
B2→A:m3
A:    Km=hash(m3 (1/x))
在导出K中使用组合密钥导出函数来降低Alice的指数计算的的方法(5)中的该进程可用各种方式扩展成任何数量的服务器103、104。在该方法中,Alice应当将她的m1的知识的证明发送给服务器B1、m2的证明发送给B2等等。
然而,当服务器103、104充当计算中的媒介,以及Alice无权访问中间结果时,可能需要另一方法来证明她的有效参与。使用组合密钥导出函数的两个服务器的结构的特殊的例子如图5所示,其中Alice仅直接与服务器B1通信。更具体地说,图5是根据本发明的原理,描述表示仅与两个服务器103、104中的一个通信的客户机101的操作的示范性方法500的流程图。
在步骤501中,在注册时,将{UserID,yi,V}存储在每个服务器103、104上,并加密密码的散列的拷贝(Hp=hash(P))以及将用户私钥U存储在与用户身份{UserID,encrypt(Km,{Hp,U})}有关的字典中。注意加密容器包括消息验证代码以确保不能修改容器以破环U不而破坏Hp
在登录时,在步骤502中,创建群元素(P),群元素(P)是合适的输入密码的函数(如上所述)。在步骤503中,形成隐秘密钥部分要(m1=Px)。在步骤504,将隐秘密钥共享部分发送给服务器B1103。
在步骤505中,在第一服务器(B1)103上形成隐秘密钥共享部分 ( m 2 = m 1 y 1 ) 。 在步骤506中,服务器B1将隐秘密码记录在短期存储器中,并在步骤507中将隐秘密钥共享部分(m2)发送给服务器B2104。在步骤508中,Alice从公用字典中获取她的加密的密钥验证机Hp以及私钥U(能在任何方便的时间执行步骤508)。在步骤509中,在第二服务器(B2)104上形成两个密钥部分的隐秘组合形式(m3=m2 y2)。在步骤510中,第二服务器(B2)将m3记录在短期存储器中(注意他记录应答值,而不是请求值。参见下面的进一步描述)。在步骤511中,B2将m3发送给B1,B1将其转发给Alice。在步骤512中,Alice101不隐秘组合共享部分并创建她的主密钥Km=hash(m3 (1/x))。注意Km=hash(m3 (1/x)),重复使用用于密钥导出的指数。
在步骤513中,使用Km,客户机101解密字典数据以检索Hp以及U。在步骤514和515中,如果Hp不等于hash(P),客户机101中止。在步骤516中,客户机101使用她的私钥U创建包含隐秘密钥m1和隐秘组合密钥共享部分值的签名消息m4,并将它发送给B1作为她正按照代表合法用户办事的证明。B1也将该消息转发给B2。在步骤517中,服务器B1103使用用户私钥V验证在消息m4中m1上的签名。在步骤518和519中,如果验证m1上签名并在可疑登录请求的短期列表中找到m1,则从列表删除隐秘密钥共享部分m1
在步骤520中,服务器B1103使用用户公钥V验证在消息m4中m3上的签名。在步骤521和522中,如果验证m3上签名并在可疑登录请求的短期列表中找到m3,则从列表删除隐秘密钥共享部分m3
在这种情况下,B1是Alice和B2间的媒介。Alice向B1证明请求值Px的知识,并向B2证明应答值 的知识。象这种变化是需要的,因为服务器B2未必能相信B1是诚实的,而且需要具有将对B2和Alice已知的特定值用在Km计算中的证明。在这种情况下,特定值可是服务器输入值或服务器响应值。
注意在前述示范性实施例中B1和B2的校验操作的不对称性。可能希望使用另外的方法,其中B1和B2执行类似的操作。例如,两者均能在短期列表中存储输入请求值(用于B1的m1以及用于B2的m2)并通过核对两者来执行校验操作。当接收到签名时,其中请求或应答值匹配存储在短期列表中的值,那么可将密钥检索过程认为是有效的。可按当作固定长度的位串的变量的单向散列函数实现在所有这些方法中的hash函数。可连接多个变量,如在使用在“Secure Hash Standard”、FIP 180-1,U.S.National Institute of Standards and Technology中讨论的SHA1标准散列函数的实现中所示:
hash(x,y)=SHA1(x‖y)
其他类似的密钥导出函数是公知的。
Km的有效性以及现有服务器验证
因为无法指望通信信道的安全性,用户的客户机101在用向对手显示信息的任何方式使用组合主密钥前执行组合主密钥的有效性核对。如果有效性核对失败,用户中止该进程。
用户核对Km的一种方法是获得另外的消息,该消息已经用基于Km的正确的注册值的密钥对称加密。用户可从诸如任何一个验证服务器103、104的任何方便的地方获得该加密消息。使用用于Km的商定值,用户解密该消息,并执行解密数据的有效必核对。如果它是无效的,客户机101将中止该过程,并确保不显示有关Km的商定值的信息。
确认消息的一个方法是将大的固定***常数值J嵌入数据中。当解密值与J匹配时,使客户机101确信密钥是正确的。但是,根据加密***,可能担心对手能特殊构造消息以便解密具有几个不同密钥的消息均产生包含值J的明文数据。但是这不应该可能用于设计好的加密***中,一种防止这种情况的方法是使J为密码的函数。
在一个实施例中,将J计算为密码的单向散列,如用在SHA1(“J”‖password)中。客户机101使用Km解密信息并将J的解密值与SHA1(“J”‖password)比较,以及如果它们匹配,假定Km有效。如果它们不匹配,客户机101马上中止验证过程,并确保不使从用于Km的他的无效值导出的值对潜在的对手有效。
Km的确认暗示确认用来创建Km的所有放大的密钥共享部分。
共享部分的小子群限制
可能产生担心的另一问题是控制网络102的对手可能仅返回小子群,象单位元1,而不返回Py。在所有服务器响应均是小群元素的情况下,将使Km为小值集中的一个。例如,在所有服务器响应均为1的特殊情况下,将Km计算为具有常数值,如:
Km=hash(11/x,11/x,...)=hash(1,1,...)。
注意用用于Km的优选的确认方法,子群限制将不是问题,但如果用于J的值是固定***常数,它会是一个问题。在这种情况下,攻击者能构造确认数据以便不管密码如何,单元元解密消息以便永远显示用于J的已知固定值。类似地,在其中{y1,y2,...}均是很小子群的元素的情况下,对手能构造消息以便可能存在客户机101将解密该消息以便找出用于J的固定值的重要机会。
防止小子群限制K的另一种方法是使客户机101直接检测这个,如在U.S.专利申请序列号08/823/961以及S.Bellovin以及M.Merrit,名为“Encrypted Key Exchange:Password-based protocolssecure against dictionary attacks”,Proceedings of the IEEESymposium on Research in Security and Privacy,1992年5月以及W.Diffie,P.C.van Oorschot,以及M.Wiener,名为“Authenticationand Authenticated Key Exchanges”,Designs Codes andCryptography,2,107-125,(1992)的论文中描述的。为减小客户机101必须核对的特殊情况的次数,客户机101也可将所接收的值乘以使该结果变成更小元素集,也许是集{1}的幂,然后对这些情况进行测试,如U.S.专利申请序列号08/823,961中所述。通过排除那些特殊情况,可能安全地使用用于Km的更多种的确认测试。
注意总是可能由控制用于{y1,y2,...yN}并对用于P的值做特殊推测的人所做的试探攻击。恢复此时的目的是使对手在每次运行中对P做至少一次推测,这不是协议关心的事情。
组参数中的变量
通常假定定组将使用的组的***参数包括模数m以及任何必要的因子(m-1)均是内置到客户机和服务器实现的固定的***参数。这些值可能用于***100的所有用户。
另外,这些方法可使用任何适当的组,如椭圆曲线上的点线,正如用于Diffie-Hellman的椭圆曲线加密方法和在IEEE Std 1363-2000、IEEE Standard Specifications for Public-Key Cryptography、IEEE,2000年8月29日,A.11.1,P.131中所述的相关协议中的通用惯例。
方法也可使用从服务器发送到客户机101的可变参数,或反之亦然。在这种情况下,当事人必须负责或通过作用原始测试,或通过确认由信任的当事人出具的用于参数的证书、或通过为这些当事人给出足够的有效性的保证的其他任何方式来确保参数是有效的。
“随机”指数
安全指数{y1,y2,...}应当是独立的数字,选择那些不会被任何潜在的对手获得的数字。只要由任何潜在对手看来,他们似乎是独立的随机值,就可能足以从伪随机数生成元导出这些数字。通用加密惯例是使用散列函数从一个或多个随机输入的安全源导出用于这种加密目的的伪随机数序列。
在较弱模型中的备选解决方案
在开发本发明的优选实施例期间,如下所述,开发了在较弱模型中、在某些不使用零知识密码技术的情况下操作的另外的方法。尽管不太理想,这些方法提供在特殊情况下有用的备选解决方案。在此描述的三个实施例是具有客户机存储器(在此指AM1的)单一服务器***100、双服务器漫游***(AM2)100以及多服务器漫游***(AMM)100。
用于CC的备选解决方案
AM1***100是用于单一服务器环境的CC***100的备选解决方案。AM1***100消除所有由CC所加的特殊的限制,扩展用户私钥的功能性以及仍然提供与CC一样的用于用户密码的等效安全级。当CC***100将某些苛刻的限制引入基础公钥***的使用以及用户私有/公钥对的使用上时,AM1方法消除这些限制。该方法能提供比CC更好的备选解决方案,该备选解决方案比CC更容易理解和分析。
注册
在AM1注册中,客户机101为不对称的加密***选择PIN码P,以及私钥Ec以及相应的公钥Dc。在这里,在Ec和Dc的结构上没有强加特殊的限制。客户机101使用适用零知识注册过程的函数f或任何其他适当的强密码***构造S=f(salt,P)c及用于S的用作验证数据的V。最好,这使用默认低熵S的强扩展密码***,如在1997年6月Jablon论文中讨论的B-SPEKE。
客户机存储:
salt               安全盐值,仅存储在客户机101上
Ds                验证服务器(AS)的公钥
Ds(V)             为AS所密封的客户机密码核对数据
Ds(encrypt(K,Ec)  在K下加密的客户私钥,然后为AS密封
Dc                客户机公钥,不是秘密
验证
在AM1验证中,用户输入P,以及客户机101计算S=f(salt,P),将Ds(V)发送给服务器,以及基于S和V与服务器执行适当的强密码验证。这可能最好使用B-SPEKE方法来完成。
一旦用S验证用户,同样用V校验,服务器发送回encrypt(K,Ec)以便仅证明S的知识的用户能读取它。最好,服务器可发送 Enc K 2 ( encrypt ( K , E c ) ) , 其中K2是由B-SPEKE协议生成的、证明客户机的S知识的会话密钥。客户机101知道K2和K,因此能解密Ec
然后客户机101随意使用用于通用公钥目的的{Ec/Dc}密钥对。与CC***相对,在使用Ec和Dc上没有任何限制,CC***将它们的使用限制到仅与验证服务器服务事务。两样,证书或证书链可能与客户机的公钥有关。
用于两个服务器的CC漫游的备选解决方案
现在将描述AM2***100,该***提供当将CC修改成用在两个服务器漫游解决方案中时的一种备选解决方案。AM2***100是比上面描述过的CC漫游解决方案更简单的解决方案。
注册
在AM2注册中,用户选择两个密码P1和P2,最好选择两个独立值,以便P1的知识不显示有关P2的信息,或反之亦然。用户分别构造用于每个密码V1和V2的验证数据。用户也选择两个随机密钥Y1和Y2,并构造K=hash(Y1,Y2)。用户使用主密钥K对称地加密最好包括私钥DA的私有数据。
第一验证服务器工安全存储
{V1,Y1,以及随意的encrypt(K,DA))}
第二验证服务器AS2安全存储
{V2,Y2,以及随意的encrypt(K,DA)}}
当客户机101用P1或P2验证时,如果encrypt(K,DA)没有存储在别的地方,那么这些服务器103、104中的一个必须存储它并将其拷贝返回给客户机101。
用户使用S1向AS1验证以获得Y1
用户使用S2向AS2验证以获得Y2
用户主密钥K=hash(Y1,Y2,S1,S2)。
用户使用密钥K开启她的加密的私钥encrypt(K,DA)。
因为在EA上没有特殊的限制,一个或多个服务器能公开地存储EA并将它以未加密的形式发送给客户机101。
验证
在AM2验证中,客户机101使用P1以获得验证会话密钥KS1,以及服务器AS1使用AS1的校验数据V1。AS1返回在KS1下对称加密的Y1
同时客户机101使用P2重复类似过程以向服务器AS2验证来检索Y2
两个服务器103、104中的一个返回encrypt(K,DA)。
现在DA和EA可用作全功能私有或公钥。
另外的实施例
在AM2的另一实施例中,在客户机101和/或用户,或一个或两个验证服务器103、104能预先存储或校验服务器的公用密码的真实性的情况下,通过用服务器的公钥密封服务器的存储数据可封装它。这使该数据可仅由那个服务器访问,假定该服务器是拥有相应的私钥的唯一实体。然后根据需要,可将这种密封的数据组存储在客户机101或其他验证服务器上。
同样注意该方法以各种方式调整服务器103、104的数量,其中N>2。用于注册和从第N个服务器获得密钥共享部分的过程可能与用于第一或第二服务器103、104的过程相同。当然可用下述公式计算组合密钥
K=hash(K1‖K2...Kn)。
下面讨论调整问题,以及发动解决容错问题以允许仅用n个中的m个服务器103、104来成功验证,其中n>m>1。
非零知识多服务器方法
现在描述用于多服务器环境的AMM***100。AMM***100在比上述的优选的多服务器漫游***100的更弱安全模式中操作。一个例子根本不使用零知识密钥协议,但仍保持每个Bi不在他的数据库中存储密钥或可破译数据的特性。讨论该***100的设计和或比较限制。
每个AMM服务器Bi存储用于用户的yi值,如在上述的优选***100中一样。每个Bi从Alice接收P,但以不隐秘的形式。他用K=hash(P,yi)响应。由于Bi不存储任何密码导出数据,不存在对所偷的数据库的字典攻击威胁。
对每个服务器Bi
A→Bi:P
Bi→A:Ki=hash(P,yi)
计算Km并按以上证明。
该方法需要用通信信道做另外的保护,否则偷听者能对P对字典攻击。这里的一个解决解决方案是使用SSL/TLS服务器验证信道。
限制:攻击BoB
在AMM***100中没有实现有效限制是因为密码可能被窃取同时在服务器上使用。获得对Bob高特权访问的攻击者也可能有机会恶意改变Bob的软件。象这种改变能以由恶意的管理员、恶意的或好奇的黑客乃至间接通过病毒的补钉或更新的形式来完成。当Bob短暂地接收用于***100的用户的值P时,补钉软件能控制、截取以及收集这些密码,虽然这样的数据库通常并不呈现在服务器100上。
限制:通信信道的攻击
AMM的另一限制,或任何其他的非零知识多服务器方法在于它要求一些其他的手段来保护信道以防止对P的偷听者字典攻击。当用SLL或一些其他协议实现该操作时,该过程对客户机101提出另外的要求以保持有趋势使***100更弱或对漫游解决方案来说不可接受的密钥或证书。
可能有许多非零知识形式的密码验证,但通常在每次运行这些协议时Bob接收信息以启动他的字典攻击。因此该信息也可能泄漏给危及Bob的攻击者。在防止危及有效服务器的攻击中零知识密码协议是必不可少的。
当前简化的安全模式
我们的方法的优越方面在于它们在很简单的安全模型下操作。客户计算机101不需要存储任何用户或服务器的特定状态,以及我们不需要在任何部件间的任何在前的安全的或验证过的通信信道。该模型比在用于安全的多服务器密码验证的任何在前方法中提供的模型更简单。
在优选实施例中,客户机101不需要保持用于客户或任何服务器的长期证书。该更简化的模型降低了可能在多根证书认证的通用的SSL/浏览器模型中出现的另外的失败点。SSL/浏览器模型在复杂的信任链中创建多个潜在的弱链接,信任链要求来自用户的实际动作和/或关注。我们的更简化的模型依赖在前的服务器103、104的验证消除了在模型中典型属于“人为错误”的实际风险。
本发明有广泛的应用。本发明的方法的好处并不限于漫游应用。对非漫游应用,使用上述优选***100检索用户主密钥Km,并将Km用来存取或解密在用户个人台式机上本地存储的证书。使用非特殊的软件,这提供由小用户选择的密码以及远程存储的密钥共享部分因子{y1,y2,...}保护的不可破译的本地存储。也有另外的保证,即Km和受保护的数据不会显示给对手,即使他攻击所有相关的网络服务器103、104,只要同时不访问本地便携式电脑数据。
可能使用主密钥来创建对称密钥来解密存储在公众可访问位置中的私有数据,以及创建对称密钥来验证,以及直接导出用于接收密封消息的公用/私钥对。
上述***100提供可能对于智能卡来说最好的基于软件的备选解决方案。
详细的协议描述
使用在下面表1中概述的标记,下面给出了协议的详细实现。
表1.标记
符号    含义(合理的例子)
Ci     由Bi存储的证书列表
P       从密码[hash(password)2r mod P]相应导出的Gq的元素
Gq      素数q次方组[其中Zp *,p=2rq+1,22j>q>22j-1,2k>p>2k-1,p和r是质数]
hash    密码散列函数[SHA1]
j       用于驻留蛮力攻击的安全参数[80]
K       用于驻留NFS离散登记攻击的安全参数[1024]
Ki      Alice和Bi间的共用密钥[hash(Km‖i)]
Km      Alice的主密钥[连接共享部分的散列,hash(S1‖...‖Sn)mod 2j]
password  用户密码,0<password<22j[SHA1(ASCII password)]
Ri       隐秘密钥共享部分=pxyi
Si        密钥部分=(P)yi
U         Alice的私有签名密钥
UK        Alice的加密私钥=encrypt(K,U)
V         与U一致的Alice的公钥
yi       由Bi存储的Alice安全共享部分指数
encrypt(x,y)  用对称密钥x加密的消息y
decrypt(x,y)  用对称密钥x解密的消息y
sign(x,y)     用私钥x签名的消息y(以便能读取消息y)
参数。在该协议中定义两个安全参数,j表示用于对称函数所需要的位强度,以及k表示非对称函数的模数所要求的位数。
将Gq定义成在Zp *中q次方的子群,其中p,q以及r是奇素数,p=2rq+1,2k>p>2k-1,r≠q,以及22j>q>22j-1。使用函数来将密码映射到群元素P∈Gq,其中P=hash(password)^2r mod p。
(另一种解决方案可能使用在具有近似等于p的r.q次方,素数q以及小余因子r∈[1,100]左右的点组的GF(p)中的椭圆曲线组。在这种情况下,用标量点乘法替代所有指数,并定义P=r.pojnt(hash(password)),其中point使用hash(password)来安排伪随机数生成元以找出在曲线上的任意点。这在D.Jablon,名为“Strong password-only authenticated key exchange”,ACM ComputerCommunicatoins Review,vol.26,no.5.10.1996中讨论过。
注册。Alice选择密钥P,计算户P:=hash(password)2r以及创建适用于执行数字签名的私钥U和相应的公钥V。然后,她创建n个密钥共享部分,其中使用随机选择的yiR[1,q-1]将每第i个共享部分Si∈Gq形成为 S i : = P y i 。然后,,她用Km:=hash(S1‖...‖Sn)mod2j创建主j-bit对称密钥,按Uk:=encrypt(Km,U)创建她的加密的私钥,以及创建她的密钥验证数据 proof PK m : = hash ( K m | | g ) .
为登记这些证书,客户机101发送将存储在每个Bi上的列表Ci中的Alice的证书。他们必须使用确保A的正确身份的验证通信方法来执行这些动作:
Client:用于每个i∈[1,n,{enroll,A,yi,V,Uk,proofPKm}→Bi
Servers:将(A,yi,V,Uk,proofPKm)存储在Ci
验证检索。为验证证书检索,客户机101和服务器103、104执行下述列出的操作。在该过程中,每个服务器保持包含可疑的无效的访问尝试的记录的列表Li
客户机:
       选择随机数X∈[1,q-1]
       Q:Px mod p
       {request,A,Q)→服务器
服务器:
       从Ci检索{A,yi,V,UK,proofPKm}
        t: CurrenTime
        将{A,Q,V,t}追加到Li R i : Q y i
        {reply,Ri,Uk,proofPKm}→Client
客户机:
                 i∈[1,n],
                 Si:Ril/xmodp
                 K′:=hash(S1‖S2...‖Sn)
        对每个if proofPKm≠e hash(k′‖g),中止
              U:=decrypt(K,UK)
              for Q′in{Q,Q1,Q2,...}
                       {confirm,Q',sign(U,Q')}→Servers}
服务器:
        对每个接收的{confirm,Q′,Q′u}
        对在Li中的任何{A,Q,V,t},其中Q=Q'
        用V将sign(U,Q’)校验为Q的签名
        如果签名有效
        从Li消除{A,Q,V,t}
定期地,也许每一分钟,每个Bi扫描它的用于(CurrentTime-t)太大不能接受的无效输入{A,Q,V,t}的列表Li。当发现无效输入时,从列表消除该输入,以及触发对用户A的无效尝试事件。注意作为一种优化解决方案,Alice仅需要计算和发送单一签名来向所有服务器103、104验证所有最近Q值的列表。
性能改进
当将FK1协议与我们的协议比较时,应当考虑几种因子,包括用于基本隐秘函数组算法的成本、相关验证函数的成本以及使用每个服务器的服务器验证信道的成本、好处以及风险。
隐秘操作的成本。令安全因子j=80以及k=1024,新协议提供比FK1协议显著高的性能。使用q=(p-1)/2,每个FK1服务器必须执行一个1023位指数以及客户机必须执行两个1023位指数。
当使用如我们的方法所示的p=2rq+1时,我们使用次方子组2160>q>2159。在后者的事件中,将两个客户机和一个服务器计算降低到约前者的1/6。给定不同的方式来估计等效对称和不对称的安全算法,你的里程可能改变。
然而,当Alice在P:=hash(password)2r中必须执行864位指数,不能实现客户利益。但是,在P的另外的结构中可利用诸如下述将描述的一些好处。
迄今为止的比较忽略了通过消除建立服务器验证信道的所有另外的节省。然而,通过消息所有服务器验证,节省是以允许由假服务器103、104所做的一些在线猜测为代价并且可能将身份A显示给偷听者。
P的另外结构。可使用另外的结构P:g1·g2 hash(password)mod q。这使用固定参考g1和g2,g1和g2是彼此无已知指数关系的q次方的两个随机元素。用于产生用于g1和g2的通用可接受值的一个可能性是将散列函数用作随机预言者,正如用在g1:=hash(″g1″)2rmodp中。
用相同的安全参数,另外的结构要求三个用于客户机101的160位指数,以及一个用于服务器,当与FK1比较时,该结构降低了客户机成本53%以及服务器成本84%。
验证函数的成本。上述方法要求用于用户的数字签名以证明她的隐秘密码组的真实性。幸运地,可仅做一次客户机签名生成以为所有服务器103、104创建包含一个或多个的最近发送的密码请求的消息,以及当使用RSA时,服务器签名验证很快。
另外,为削减在客户机101上公钥签名操作的成本,使用她与Bi登记的共用安全密钥Ki=hash(Km‖i),Alice可能使用加密的消息验证代码代替“签名”她的隐秘密码。在这种情况下,她注册独特密钥并为每个服务器构造独特签名。
安全性参数。下面描述几个与本发明的安全性有关的简单变量。
每个密钥共享部分是强安全。仅将用于每个共享部分的关键数据存储在有希望安全证书服务器上的安全值yi中,以及仅在改进的Diffie-Hellman交换的指数中释放。该计算是以p=2rq+1形式的素数为模,严重地限制攻击者能获得的有关yi的信息。由试探攻击确定的一切是yi是否具有和2rq一样的因子。然而,由于yi是随机的且除2以外的所有因子很大,概率趋于零。因此,如在2000年6月Ford和Kaliski论文中提到的,唯一能确定的信息是yi的低位。
Alice在她的隐秘请求消息中有关P的零信息,因为对任何显示出的值,存在由任何给定P产生的相等的概率。同样,即使出现另外的数据,象Pxy值,不会帮助攻击者确定P,因为对攻击者已知的任何数据,y与P无关。
可忽略从Alice在她的确认消息中向控制信道的对手泄漏信息的可能性,因为如果她从服务器接收任何无效应答,在释放所有有用信息前,她将中止。由于该组合散列函数,如果主密钥的一共享部分是不正确的,和压倒性可能性一致,组合密钥将是不正确的。同样,如果主密钥是不正确的,那么由于相同的原因,验证机散列值将是不正确的。因此如果它们真匹配,Alice能确信她的主密钥是正确的。
通信信道不必保证由服务器发送的Uk和proofPKm值的完整性。为明白为什么,假定有伪造这些值并将它们发送给Alice的恶意方。在最坏的情况下,该对手要么在每次运行中验证对密码的单一推测,要么执行抑制服务攻击。如果将客户机101设计成不比服务器更容许无效推测,那么这些攻击一般来说等于在安全信道模型中的可能攻击。幸运的,人们倾向于拥有对逻辑错误的低容错,并可能向***管理员抱怨有关循环问题。然而,必须将客户机101设计成确保至少用户知道所有失败。在这两种模型中,在至少一个方向中,对手能做有限的少许在线猜测,并通过修改或删除消息引起拒绝服务。
上述的Hash(password)2r函数和另外的结构保证元素的q次方,并防止在1997年D.Jablon论文和2000年6月Ford和Kaliski论文中提出的指数中密码以及短指数问题。
短指数
减小计算的另一方法是使用较短指数。例如,在具有p=2q+1,1023位q的组中的,有人可能使用在[1,2160-1]范围中的指数。在在vanOorschot,et al,1996年5月的论文中讨论过Diffie-Hellman中使用的短指数。当使用短指数时,Pollardλ方法是计算用于已知固定基数g的随机指数x-gx的最有效的已知方法。λ离散对数计算要求有关x1/2操作。然而,不能保证将来不会发现更简单的方法。
考虑中止协议,其中用户简单显示隐秘密码系列,而且没有其他信息对攻击者有效。当使用实际大小平均颁的随机指数x∈R[1,o(Gq)]时,Px值显示有关P的零信息。
当使用短指数x∈R[1,m]m<<q时,安全性可能要求计算棘手的另外的假定,并希望消除不必要的假定。该假定是否有效还是未决的问题。
因此,关于短指数引入不希望的假定的(或许不必要的)担心,降低计算的优选的方法是使用显著小于模数的素数次方的子群。
本发明使用比在现有技术中使用的更简单的模型。在操作中,消除在***中内在的问题,在该***中,人们必须安全地识别服务器103、104,但本发明不必。本发明用更简单的模型实现所有在前目的,而不需要服务器存储密钥或证书,具有增加的性能并具有增强的责任性以便更好地管理在密码输入中的人为错误。这些方法也能提供相同的安全级,用相当少的计算防止登录攻击。
因此,公开了使用多服务器提供用于远程密码验证的***、方法和软件。应当理解上述实施例仅为了说明表示本发明的原理的应用的许多特定实施例中的一些。显然,本领域的技术人员在不脱离本发明的范围的情况下能轻易地导出许多和其他解决方案。

Claims (24)

1、一种***,提供远程密码验证,包括:
客户计算机;
多个验证服务器;
网络,互联客户计算机和多个验证服务器;
在客户计算机和多个验证服务器上运行的软件,用来在客户机上输入密码,在每个服务器上存储唯一随机值yi、从密码导出群元素(P),将隐秘密码值(Px)发送给服务器,从服务器检索隐秘密钥共享部分不隐秘和结合共享部分来创建主密钥(Km)以及使用主密钥(Km)在客户计算机上解密加密的私有数据。
2、如权利要求1所述的***,其中在客户机上操作的软件用来确认主密钥(Km)。
3、如权利要求1所述的***,其中在客户机上操作的软件用来使用主密钥(Km)解密加密的私有数据。
4、如权利要求2所述的***,其中在客户机上操作的软件用来使用确认的主密钥(Km)来解密加密的私有数据。
5、如权利要求2所述的***,其中在客户机上操作的软件用来将验证的主密钥(Km)的证明以及每个隐秘密码值(Px)发送给服务器。
6、一种方法,使用包括客户计算机、多个验证服务器以及互联客户计算机和多个验证服务器的网络,提供远程密码验证,该方法包括步骤:
输入密码;
从密码导出群元素(P);
将隐秘密码值(Px)发送给服务器;
从服务器检索隐秘密码共享部分
Figure A0181387900022
不隐秘并结合共享部分来创建主密钥(Km);以及
使用主密钥(Km)解密在客户计算机上的加密的私有数据。
7、如权利要求6所述的方法,进一步包括确认主密钥(Km)的步骤。
8、如权利要求6所述的方法,其中在客户机上操作的软件使用主密钥(Km)来解密加密的私有数据。
9、如权利要求7所述的方法,进一步包括使用确认的主密钥(Km)解密加密的私有数据的步骤。
10、如权利要求7所述的方法,进一步包括将确认的主密钥(Km)的证明和每个隐秘密码值(Px)发送给服务器的步骤。
11、一种包含在计算机可读介质上的计算机程序,用于启动在多服务器***中的远程密码验证,多服务器***包括客户计算机、多个验证服务器以及互联客户计算机和多个验证服务器的网络,计算机程序包括:
输入密码的代码段;
数据存储区域,包含在每个服务器上的唯一随机值yi
从密码导出群元素(P)的代码段;
将隐秘密码值(Px)发送给服务器的代码段;
从服务器检索隐秘密码部分 的代码段;
不隐秘并结合共享部分来创建主密钥(Km)的代码段;以及
使用主密钥(Km)解密在客户计算机上的加密私有数据的代码段。
12、如权利要求11所述的计算机程序,进一步包括确认主密钥(Km)的代码段。
13、如权利要求11所述的计算机程序,进一步包括使用主密钥(Km)解密加密私有数据的代码段。
14、如权利要求12所述的计算机程序,进一步包括使用确认的主密钥(Km)解密加密的私有数据的代码段。
15、如权利要求12所述的计算机程序,进一步包括将确认主密钥(Km)的证明和隐秘密码值(Px)发送给服务器的代码段。
16、如权利要求1所述的***,其中软件用来:
保持无效登录尝试的计数、最近放大的次数、最近密码Px放大请求值的列表以及与在服务器上的最近密码放大请求值列表有关的时间戳列表;
接收隐秘密码(Px)请求;
在短期列表中记录隐秘密码;
核对用户帐户以查看是否被锁定;
如果未被锁定,创建隐秘密钥共享部分
以及将隐秘密钥共享部分发送给客户计算机。
17、如权利要求16所述的***,其中软件:
记录时间戳值以记下接收请求的时间;
定期核对当任一时间戳值与当前时间间的差值大于特定时间周期时确定的失效请求;
删除相应的密码放大请求值以及时间戳;以及
递增无效尝试的计数。
18、如权利要求16所述的***,其中,当成功登录时,软件:
发送QA以及来自在相同登录会话中先前运行的用于QA的任一在前值给加密消息中的每个服务器,QA等于密码自乘以随机次幂;以及
使用主密钥Km验证该消息。
19、如权利要求6所述的方法,进一步包括步骤
保持无效登录尝试计数、最近放大的次数、最近密码Px放大请求值的列表以及与服务器上的最近密码放大请求值列表有关的时间戳列表;
接收隐秘密码(Px)请求;
在短期列表中记录隐秘密码;
核对用户帐户以查看是否被锁定;
如果未被锁定,创建隐秘密钥共享部分
Figure A0181387900041
以及将隐秘密钥共享部分发送给客户计算机。
20、如权利要求19所述的***,其中软件:
记录时间戳值以记下接收请求的时间;
定期核对当任一时间戳值与当前时间间的差值大于特定时间周期时确定的失效请求;
删除相应的密码放大请求值以及时间戳;以及
递增无效尝试的计数。
21、如权利要求19所述的方法,进一步包括步骤
发送QA以及来自在相同登录会话中先前运行的用于QA的任一在前值给加密消息中的每个服务器,QA等于密码自乘以随机次幂;以及
使用主密钥Km验证该消息。
22、如权利要求11所述的计算机***,进一步包括代码段:
保持无效登录尝试计数、最近放大的次数、最近密码Px放大请求值的列表以及与服务器上的最近密码放大请求值列表有关的时间戳列表;
接收隐秘密码(Px)请求;
在短期列表中记录隐秘密码;
核对用户帐户以查看是否被锁定;
如果未被锁定,创建隐秘密钥共享部分
以及将隐秘密钥共享部分发送给客户计算机。
23、如权利要求22所述的计算机程序,进一步包括代码段:
记录时间戳值以记下接收请求的时间;
定期核对当任一时间戳值与当前时间间的差值大于特定时间周期时确定的失效请求;
删除相应的密码放大请求值以及时间戳;以及
递增无效尝试的计数。
24、如权利要求22所述的计算机程序,进一步包括代码段:
发送QA以及来自在相同登录会话中先前运行的用于QA的任一在前值给加密消息中的每个服务器,QA等于密码自乘以随机次幂;以及
使用主密钥Km验证该消息。
CNB018138799A 2000-06-05 2001-05-31 使用多个服务器的远程密码验证的***和方法 Expired - Fee Related CN1249972C (zh)

Applications Claiming Priority (4)

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

Publications (2)

Publication Number Publication Date
CN1446331A true CN1446331A (zh) 2003-10-01
CN1249972C CN1249972C (zh) 2006-04-05

Family

ID=26903984

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018138799A Expired - Fee Related CN1249972C (zh) 2000-06-05 2001-05-31 使用多个服务器的远程密码验证的***和方法

Country Status (7)

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

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1910851B (zh) * 2004-01-23 2010-04-21 法国电信公司 零知识检验加密方法与设备
CN101091156B (zh) * 2004-10-29 2010-09-29 高通股份有限公司 提供多证书验证协议的***及方法
CN1918880B (zh) * 2004-01-14 2010-10-06 Stg交互公司 用于公布内容的计算机网络的操作方法和***
CN101388813B (zh) * 2007-09-14 2010-12-22 英业达股份有限公司 企业用软件注册方法及***
CN101273572B (zh) * 2005-10-03 2011-11-16 诺基亚公司 用于在网络实体之间对数据协商进行认证的***、方法和计算机程序产品
WO2014019129A1 (en) * 2012-07-31 2014-02-06 Google Inc. Automating password maintenance
CN106888097A (zh) * 2017-03-30 2017-06-23 福建北卡科技有限公司 一种hce模式下基于零知识证明的身份认证方法
CN107070960A (zh) * 2010-03-01 2017-08-18 交互数字专利控股公司 M2m gw以及在m2m gw处实施的用于m2m设备管理的方法
CN109643359A (zh) * 2016-06-30 2019-04-16 微软技术许可有限责任公司 控制密钥-值存储的验证
CN111460406A (zh) * 2013-03-22 2020-07-28 诺克诺克实验公司 高级验证技术和应用
CN111630811A (zh) * 2017-10-19 2020-09-04 奥特海威公司 生成和寄存用于多点认证的密钥的***和方法
CN112257119A (zh) * 2020-10-20 2021-01-22 河北素数信息安全有限公司 一种身份认证方法及用于保证加密装置安全的保护方法
CN112385176A (zh) * 2018-08-09 2021-02-19 赫尔实验室有限公司 妥协环境中的匿名分配和多数表决
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US12041039B2 (en) 2019-02-28 2024-07-16 Nok Nok Labs, Inc. System and method for endorsing a new authenticator

Families Citing this family (208)

* 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
US20030084172A1 (en) * 2001-10-29 2003-05-01 Sun Microsystem, Inc., A Delaware Corporation Identification and privacy in the World Wide Web
US7275260B2 (en) 2001-10-29 2007-09-25 Sun Microsystems, Inc. Enhanced privacy protection in identification in a data communications network
US7085840B2 (en) * 2001-10-29 2006-08-01 Sun Microsystems, Inc. Enhanced quality of identification in a data communications network
US20030084302A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation Portability and privacy with data communications network browsing
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
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
US7325065B1 (en) * 2001-12-21 2008-01-29 Aol Llc, A Delaware Limited Liability Company Identifying unauthorized communication systems using a system-specific identifier
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 한국전자통신연구원 무선 단말기용 암호키 관리 시스템 및 방법
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 삼성전자주식회사 객체 식별자를 이용하여 이동형 저장 장치에서 권리객체를 검색하는 방법 및 장치
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
US8645683B1 (en) 2005-08-11 2014-02-04 Aaron T. Emigh Verified navigation
US7793335B2 (en) * 2005-09-12 2010-09-07 International Business Machines Corporation Computer-implemented method, system, and program product for managing log-in strikes
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
US8245050B1 (en) * 2006-09-29 2012-08-14 Netapp, Inc. System and method for initial key establishment using a split knowledge 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
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
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
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
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
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
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
US8504481B2 (en) * 2008-07-22 2013-08-06 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
US9124431B2 (en) 2009-05-14 2015-09-01 Microsoft Technology Licensing, Llc Evidence-based dynamic scoring to limit guesses in knowledge-based authentication
US8856879B2 (en) 2009-05-14 2014-10-07 Microsoft Corporation Social authentication for account recovery
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
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
CA2759971A1 (en) * 2010-11-29 2012-05-29 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
US8656484B2 (en) 2010-12-28 2014-02-18 Authernative, Inc. System and method for mutually authenticated cryptographic key exchange using matrices
US8621227B2 (en) 2010-12-28 2013-12-31 Authernative, Inc. System and method for 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
EP2697786B1 (en) * 2011-04-13 2017-10-04 Nokia Technologies Oy Method and apparatus for identity based ticketing
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 飞天诚信科技股份有限公司 一种基于短信的身份验证方法、***和装置
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
US9197409B2 (en) 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
US8842840B2 (en) 2011-11-03 2014-09-23 Arvind Gidwani Demand based encryption and key generation and distribution systems and methods
EP2634993B1 (en) * 2012-03-01 2017-01-11 Certicom Corp. Devices and methods 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
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
US9215076B1 (en) 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
CN104428784B (zh) * 2012-04-25 2017-07-14 罗文有限公司 密码操作***、密码装置以及超级密码生成方法
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
US9660972B1 (en) * 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
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
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
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
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
US9213812B1 (en) * 2012-12-28 2015-12-15 Allscripts Software, Llc Systems and methods related to security credentials
US9960919B2 (en) * 2013-01-08 2018-05-01 Bar-Ilan University 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
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
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with 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
DE102015200313A1 (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
DE102015017060A1 (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 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
RU2018103181A (ru) * 2015-06-30 2019-07-31 Виза Интернэшнл Сервис Ассосиэйшн Конфиденциальные аутентификация и обеспечение
EP3318041A1 (en) * 2015-06-30 2018-05-09 Raghav Bhaskar User friendly two factor authentication
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
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
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
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
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
KR102139897B1 (ko) * 2018-11-27 2020-07-31 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
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 杜晓楠 一种数字资产托管方法和***
US11463467B2 (en) 2020-01-09 2022-10-04 Kyndryl, Inc. Advanced risk evaluation for servers
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
US11700125B2 (en) * 2020-10-05 2023-07-11 Redcom Laboratories, Inc. zkMFA: zero-knowledge based multi-factor authentication system
CN113852461B (zh) * 2021-09-26 2024-02-02 深圳万兴软件有限公司 一种密码恢复方法、装置、计算机设备及存储介质

Family Cites Families (13)

* 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
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
US5832211A (en) * 1995-11-13 1998-11-03 International Business Machines Corporation Propagating plain-text passwords from a main registry to a plurality of foreign registries
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
JP3656688B2 (ja) * 1997-03-31 2005-06-08 栄司 岡本 暗号データ回復方法及び鍵登録システム
IL132961A0 (en) * 1997-05-28 2001-03-19 Young Adam Lucas Auto-recoverable auto-certifiable cryptosystems
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
GB2329096A (en) 1997-08-29 1999-03-10 Ncipher Limited Creating sub-keys from hashed cryptographic master key
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

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1918880B (zh) * 2004-01-14 2010-10-06 Stg交互公司 用于公布内容的计算机网络的操作方法和***
CN1910851B (zh) * 2004-01-23 2010-04-21 法国电信公司 零知识检验加密方法与设备
CN101091156B (zh) * 2004-10-29 2010-09-29 高通股份有限公司 提供多证书验证协议的***及方法
CN101273572B (zh) * 2005-10-03 2011-11-16 诺基亚公司 用于在网络实体之间对数据协商进行认证的***、方法和计算机程序产品
CN101388813B (zh) * 2007-09-14 2010-12-22 英业达股份有限公司 企业用软件注册方法及***
CN107070960B (zh) * 2010-03-01 2021-01-29 Iot控股公司 M2m gw以及在m2m gw处实施的用于m2m设备管理的方法
CN107070960A (zh) * 2010-03-01 2017-08-18 交互数字专利控股公司 M2m gw以及在m2m gw处实施的用于m2m设备管理的方法
WO2014019129A1 (en) * 2012-07-31 2014-02-06 Google Inc. Automating password maintenance
CN111460406B (zh) * 2013-03-22 2023-11-14 诺克诺克实验公司 高级验证技术和应用
CN111460406A (zh) * 2013-03-22 2020-07-28 诺克诺克实验公司 高级验证技术和应用
US11929997B2 (en) 2013-03-22 2024-03-12 Nok Nok Labs, Inc. Advanced authentication techniques and applications
CN109643359A (zh) * 2016-06-30 2019-04-16 微软技术许可有限责任公司 控制密钥-值存储的验证
CN109643359B (zh) * 2016-06-30 2023-06-02 微软技术许可有限责任公司 控制密钥-值存储的验证
CN106888097A (zh) * 2017-03-30 2017-06-23 福建北卡科技有限公司 一种hce模式下基于零知识证明的身份认证方法
CN111630811A (zh) * 2017-10-19 2020-09-04 奥特海威公司 生成和寄存用于多点认证的密钥的***和方法
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
CN112385176A (zh) * 2018-08-09 2021-02-19 赫尔实验室有限公司 妥协环境中的匿名分配和多数表决
CN112385176B (zh) * 2018-08-09 2024-04-16 赫尔实验室有限公司 匿名工作分配和多数表决的***、方法和介质
US12041039B2 (en) 2019-02-28 2024-07-16 Nok Nok Labs, Inc. System and method for endorsing a new authenticator
CN112257119A (zh) * 2020-10-20 2021-01-22 河北素数信息安全有限公司 一种身份认证方法及用于保证加密装置安全的保护方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1249972C (zh) 使用多个服务器的远程密码验证的***和方法
CN1242587C (zh) 高速、灵活的加密***的方法及设备
US8023647B2 (en) Password self encryption method and system and encryption by keys generated from personal secret information
Juang Efficient multi-server password authenticated key agreement using smart cards
CN100338907C (zh) 信息处理***和方法、信息处理设备和方法
Ku et al. Weaknesses and improvements of an efficient password based remote user authentication scheme using smart cards
CN1679271A (zh) 基于认证的加密和公共密钥基础结构
CN1941699A (zh) 密码方法、主机***、可信平台模块和计算机安排
CN1833398A (zh) 安全数据解析器方法和***
US20080034216A1 (en) Mutual authentication and secure channel establishment between two parties using consecutive one-time passwords
CN1871810A (zh) 认证***和远隔分散保存***
CN101076807A (zh) 一次性密码
CN1504028A (zh) 利用瞬时模数的密码验证
CN1492346A (zh) 电子值的认证方法、认证***与装置
CN1808966A (zh) 安全数据处理方法及其***
WO2006119184A2 (en) Protecting one-time-passwords against man-in-the-middle attacks
CN1934564A (zh) 使用证书撤销列表进行数字权限管理的方法和设备
CN1768502A (zh) 相互认证方法和装置
Hsu Security of two remote user authentication schemes using smart cards
Nair et al. A hybrid PKI-IBC based ephemerizer system
Lee et al. A computation-efficient three-party encrypted key exchange protocol
CN1092434C (zh) 共享保密信息,产生数据签名和执行确认的方法和通信***
CN1925390A (zh) 实用不可展的公钥加密***
CN1262830A (zh) 基于要求随机数绘制的密码***的散列编码函数的伪随机发生器
Yeh et al. Improvement of password authenticated key exchange based on RSA for imbalanced wireless networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee