关键字 |
密码验证密钥交换,字典攻击,Diffie-Hellman密钥交换,ElGamal加密,SOAP |
介绍 |
如今,人们通常在登录过程中使用密码来控制访问受保护的计算机操作系统、移动电话、有线电视解码器、自动柜员机等。计算机用户可能在许多目的上需要密码:登录计算机帐户,从服务器检索电子邮件,访问程序,数据库,网络,网站,甚至在线阅读晨报。早期基于密码的身份验证系统通过公共通道传输密码的加密散列,这使得攻击者可以访问散列值。当这样做时(这是非常常见的),攻击者可以脱机工作,根据真实的密码散列值快速测试可能的密码。 |
当前的双服务器PAKE解决方案要么是对称的,即两个对等服务器对身份验证的贡献相同,要么是不对称的,即一个服务器在另一个服务器的帮助下对客户端进行身份验证,例如。一种对称的双服务器PAKE协议,例如Katz等。S协议可以并行运行,并在客户端和两台服务器之间分别建立秘密会话密钥。如果其中一台服务器因拒绝服务攻击而关闭,另一台服务器可以继续向认证成功的客户端提供服务。在并行计算和可靠服务方面,对称协议优于非对称协议。到目前为止,只有Katz等。s的双服务器PAKE协议是对称的。但他们的方案在实际应用中效率不高。非对称双服务器PAKE协议串联运行,只有前端服务器和客户端需要建立会话密匙。目前的非对称协议,如Yang等人的协议和Jin等人的协议,需要两台服务器进行多次串联消息交换。 These asymmetric designsare less efficient than a symmetric design which allows two servers to compute in parallel. |
本文提出了一种新的双服务器PAKE的对称解决方案。在现有的所有双服务器PAKE协议中,两台服务器都提供了随机密码共享pw1和pw2,并遵循pw1+ pw2=pw的规则。在我们的协议中,它为服务器S1提供了密码加密(g2 pw;pk2);和另一台服务器S2,其密码加密(g2 pw;pk1), pk1和pk2分别是S1和S2的加密密钥。另外,为两个服务器提供了随机密码共享b1和b2主题为tob1b2 = H(pw),其中H是哈希函数。 |
虽然它使用了公钥密码系统的概念,但我们的协议遵循仅密码模型。两个服务器的加解密密钥对由客户端生成,并在客户端注册时通过不同的安全通道传递给服务器,因为任何双服务器paake协议中的客户端都将密码的两部分分别秘密地发送给两个服务器。实际上,服务器不应该知道另一个服务器的加密密钥,基于El Gamal加密方案的同态属性,服务器只能对密码加密进行操作。 |
安全分析表明,我们的协议对于被动和主动攻击都是安全的,以防一台服务器被破坏。性能分析表明,该协议在并行计算方面比现有的对称和非对称双服务器PAKE协议效率更高。 |
我们的协议可以应用于多服务器的分布式系统。例如,Microsoft active directory domain service (AD DS)是在使用域控制器的Windows服务器操作系统上构建的分布式网络的基础。AD DS为网络中的对象(如用户、计算机、打印机和服务)提供结构化和分层的数据存储。AD DS还提供了定位和使用这些对象的支持。对于运行自有域的大型企业,为了实现容错功能,必须配置两台AD DS域控制器。用户在网络上进行身份验证时,通常需要向一台AD DS域控制器提供自己的身份和密码。基于我们的双服务器PAKE协议,它可以将用户密码分成两部分,分别存储在两个AD DS域控制器上,然后配合对用户进行身份验证。即使一个域控制器被破坏,系统仍然可以正常工作。这样,我们可以实现更安全的AD DS。 |
2文献调查 |
•Katz et.al系统 |
2005年,Katz等人提出了第一个双服务器密码认证密钥交换协议,并在标准模型中证明了安全性。他们的协议扩展并建立在Katz-Ostrovsky-Yung PAKE协议的基础上,称为KOY协议。在他们的协议中,客户端C随机选择一个密码pw,服务器a和服务器B随机提供密码共享pw1和pw2,条件为pw1+pw2=pw。在高层上,它们的协议可以被看作是KOY协议的两次执行,一次是在客户端C和服务器A之间,使用服务器B协助进行身份验证,另一次是在客户端C和服务器B之间,使用服务器A协助进行身份验证。另一个服务器的帮助是必要的,因为密码在两个服务器之间分配。在协议的最后,每个服务器和客户端都同意一个秘密的会话密钥。Katz等等。S协议是对称的,其中两个服务器平等地参与客户端身份验证和密钥交换。他们的基本协议对被动对手是安全的,每一方执行的工作量大约是KOY协议的两倍。对于安全的协议,针对活跃的对手,客户端的工作保持不变,但服务器的工作增加了大约2-4倍。 |
•Yang等系统 |
基于Brainard等人在2005年的工作,Yang等人提出了一种非对称设置,即前端服务器(称为服务服务器(SS))与客户端交互,而后端服务器(称为控制服务器(CS))帮助SS进行身份验证,最后只有SS和客户端就秘密会话密钥达成一致。他们在2005年提出了一个基于pki的非对称双服务器PAKE协议和几个非对称仅密码的双服务器PAKE协议。 |
接下来,SS和客户端通过检查他们是否可以在CS的帮助下就相同的秘密会话密钥达成一致来相互验证,其中a, (a1,b1)和b2分别由客户端、SS和CS随机选择。杨等人的安全。[30]中的S协议基于一个假设,即后端服务器不能被活动对手破坏。这个假设后来被取消了,代价是进行了更多的计算和通信回合。 |
•金双机系统 |
金进一步改良了杨等人。提出了一种通信轮数较少的双服务器PAKE协议。在他们的协议中,客户端发送 |
|
计算机科学;CS的回报 |
党卫军;党卫军计算 |
和响应到客户端,其中H是哈希函数。接下来,SS和客户端通过检查它们是否可以就相同的秘密会话密钥达成一致来相互验证 |
3模型 |
•服务器密码认证模型 |
在单服务器模型中,只涉及一台服务器,它保存用户密码数据库。大多数现有的密码系统都遵循这种单服务器模型,但是单服务器会导致针对用户密码数据库的脱机字典攻击的单点漏洞。 |
在上图所示的多服务器模型中,服务器端由多个服务器组成,目的是消除单点漏洞,服务器对用户的暴露程度相同,用户需要与多个或所有服务器并行通信进行身份验证。普通多服务器模型的主要问题是对通信带宽的需求和用户端同步的需要,因为用户必须同时与多个服务器进行通信。这可能会导致资源受限的移动设备(如手机和pda)出现问题。 |
在如图2所示的网关增强多服务器模型中,网关被定位为用户和服务器之间的中继点,用户只需与网关联系即可。雷竞技网页版显然,网关的引入消除了在普通多服务器模型中用户与多台服务器同时通信的需求。然而,网关在体系结构中引入了一个额外的层,这看起来是多余的,因为网关的目的只是在用户和服务器之间中继消息,它不以任何方式涉及服务提供、身份验证和其他安全实施。从安全的角度来看,更多的组件通常意味着更多的漏洞点。 |
双服务器模型包括服务器端的两个服务器,其中一个是向用户公开的公共服务器,另一个是后台服务器;用户只与公共雷竞技网页版服务器联系,但两个服务器一起进行用户身份验证。双服务器模型和早期的多服务器模型之间的区别是 |
1.在双服务器模型中,用户最终只与公共服务器建立会话密钥,后端服务器的作用仅仅是协助公共服务器进行用户身份验证,而在多服务器模型中,用户与每个服务器建立会话密钥(不同或相同)。 |
2.从安全的角度来看,多服务器模型中的服务器同样暴露在外部攻击者面前(回想一下网关增强多服务器模型中的网关并不强制执行安全性),而在双服务器模型中,只有公共服务器面临这样的问题。在双服务器模式下,提高了服务器端的安全性和整个系统的安全性。在双服务器模型中,两台服务器对于外部攻击者可以建立不同级别的信任。后端服务器比公共服务器更可靠。这是合乎逻辑的,因为后端服务器位于后端,并且对公众隐藏,因此不太可能受到攻击。双服务器模型成功地消除了普通多服务器模型(即用户与多台服务器之间的同时通信)和网关增强多服务器模型(即冗余)中的缺点,同时允许我们将用户密码和身份验证功能分发到两台服务器,以消除单服务器模型中的单点漏洞。因此,双服务器模型对于实际应用程序来说似乎是一个合理的模型。基于双服务器模型的现有系统是不够的,进而促使在双服务器模型上呈现一个仅密码的系统。 |
四、协议 |
•Diffie-Hellman密钥交换协议 |
Diffie Hellman建立了一个共享秘密,可以用于秘密通信,同时在公共网络上交换数据。为了实现Diffie-Hellman[3],两个终端用户Alice和Bob,同时在信道下通信,他们相互同意两个正整数q和g,这样q是质数,g是q的生成器。生成器g是一个数字,当被提升到小于q的构造整数幂时,对于任何两个这样的整数都不会产生相同的结果。q的值可能很大,但g的值通常很小。Diffie Hellman key exchange (DH)[nb 1]是一种特定的密钥交换方法。它是密码学领域中实现的最早的密钥交换实例之一。Diffie Hellman密钥交换方法允许互不知情的双方通过不安全的通信通道共同建立共享密钥。然后可以使用此密钥加密使用对称密钥密码的后续通信。 |
尽管Diffie Hellman密钥协议本身是一种匿名(未经身份验证)密钥协议,但它为各种身份验证协议提供了基础,并用于在传输层安全的临时模式(根据密码套件称为EDH或DHE)中提供完美的前向保密。这种方法在不久之后被RSA取代,RSA是一种使用非对称算法实现公钥加密的方法。一旦Alice和Bob私下就q和g达成一致,他们选择随机正整数m和n,接下来,Alice和Bob根据公式根据他们的个人密钥计算公钥A和B |
1.A = gmmodp |
2.B = gnmodq |
3.两个用户可以通过假定不可靠的通信媒介(如Internet或商业广域网)共享他们的公钥A和B。根据这些公钥,任何用户都可以根据自己的个人密钥生成一个数字x。爱丽丝用公式计算K1 |
4.K1 = (B)mmodq |
5.Bob用公式计算K2 |
6.K2 = (A)nmodq |
显然K1, K2。这将是Alice和Bob之间的共享密钥。 |
•ElGamal加密方案 |
在密码学中,ElGamal加密系统[5]是一种基于Diffie Hellman密钥交换的公开密钥加密的非对称密钥加密算法。它是由TaherElgamal在1984年描述的。它由密钥创建,加密和解密的所有步骤(算法)如下:密钥生成:- |
密钥生成器的工作原理如下: |
1.Alice用生成器G生成了一个q阶的乘法循环群G的有效描述。关于这个群的必要性质的讨论见下面。 |
2.爱丽丝从1中随机选择一个x, q-1。 |
3.Alice计算h = gx: |
4.Alice发布了h,以及G,q, G作为她的公钥的描述。Alice保留x作为她的私钥,必须保密。 |
五、web服务 |
在. net上下文中,Web服务是驻留在Web服务器上的组件,它使用标准的Web协议(如HTTP和简单对象访问协议(SOAP))向其他网络应用程序提供信息和服务。Web服务是两个电子设备之间通过万维网(WWW)进行通信的一种方法。web服务是通过web或云在网络地址上提供的软件任务;它是一种“始终在线”的服务,就像效用计算的概念一样。 |
•什么是SOAP? |
SOAP就是简单对象访问协议。SOAP是一种通信协议。SOAP是一种用于发送消息的格式。SOAP通过Internet进行通信。SOAP是平台独立的。SOAP基于XML。SOAP与语言无关。SOAP简单且可扩展。SOAP允许您获得近似的防火墙。SOAP可以形成web服务协议栈的基础层,提供基本的消息传递框架,web服务可以在此基础上构建。 This XML-based protocol consists of three parts: an envelope, which defines what is in the message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing procedure calls and responses. SOAP has three major characteristics: extensibility (security and WS-routing are among the extensions under development), neutrality (SOAP can be used over any transport protocol such as HTTP, SMTP, TCP, UDP, or JMS), and independence (SOAP allows for any programming model). As an example of how SOAP procedures can be used, a SOAP message could be sent to a web site that has web services enabled, such as a realestate price database, with the parameters needed for a search. The site would then re-turn an XML-formatted document with the resulting data, e.g., prices, location, features. With the data being returned in a standardized machine-parsable format, it can then be integrated directly into a third-party web site or application. |
•两步验证 |
在本文中,它使用了一种称为“两步验证”的技术,如下所示: |
以下常见的操作可能会使你的密码有被盗的风险: |
•在多个站点使用相同的密码。 |
•从互联网上下载软件。 |
1.登录你的账户会有一些不同: |
•输入密码: |
•无论您何时登录帐户,您都将像往常一样输入密码。 |
•输入验证码: |
•然后,你会被要求输入一个代码,该代码将通过短信、语音电话或电子邮件发送到你的手机上。 |
2.额外的安全层: |
大多数人只有一层密码来保护他们的账户。使用两步验证,如果坏人入侵了你的密码层,他仍然需要你的手机才能进入你的账户。 |
六、建议体系 |
我们的系统由一组客户端和两个服务器S1和S2组成。S1和S2合作进行客户端认证,并允许客户端使用业务。每个客户端C选择一个密码pwC,并为S1和S2生成密码认证信息Authc(1)和Au-thc(2),这样除非S1和S2协作,否则没有人可以从Au-thc(1)或Authc(2)中识别密码pwC。在客户端注册时,客户端通过各种安全通道分别将Authc(1)和Authc(2)发送给S1和S2。之后,密码认证信息i.eAuthc(1)和Authc(2)由两台服务器保存,客户端只记住密码。 |
像目前所有双服务器PAKE的解决方案一样,我们猜测这两个服务器永远不会一起暴露客户端的密码。当两台服务器协作验证客户端C时,我们认为客户端C可以同时向S1和S2发送消息。在我们的系统中,两台服务器和客户端通过公共媒介通信,这种媒介可能被窥探、延迟、重播,甚至被攻击者篡改。如果两台服务器以通信和计算的形式对验证做出相同的贡献,那么我们可以说我们的协议是对称的。我们系统中的挑战可能是被动的,也可能是主动的。我们关注在线字典攻击和离线字典攻击,在线字典攻击黑客试图频繁登录,尝试每个可能的密码,而在离线字典攻击中,攻击者从观察到的日志会话记录中构建关于密码的信息。 |
在线字典攻击不能被密码学禁止,但很容易被检测到,并在多次认证失败后暂停。我们假设攻击者只能侵入一台服务器,并且可以获得存储在服务器中的所有信息。被动攻击能够检查服务器和客户端之间的通信。主动攻击能够想象,客户端和一个服务器与真实的服务器通信,或者想象两个服务器都与有效的客户端通信,以随机的方式偏离协议设置的操作。在我们的协议中,攻击者试图学习客户端和诚实服务器之间建立的私有会话密钥。在主动攻击中,如果攻击者能够确定客户端的密码,那么攻击者就可以了解诚实服务器和客户端之间的私钥。通常情况下,如果攻击者在任何主动和被动攻击中都不能成功,以防一台服务器被破坏,我们就说我们的协议是安全的。 |
7系统架构 |
系统体系结构或系统的体系结构是定义系统结构、行为和更多视图的概念模型。体系结构描述是系统的正式描述和表示,其组织方式支持对系统结构的推理。 |
我们的方案分为四个阶段 |
1.初始化 |
在几乎所有现有的双服务器PAKE协议中,如[15],[16],[8],这意味着g2到基底g1的离散对数对任何人都是未知的,因此他们的协议是安全的。我们的初始化可以确保没有人能够知道g2以g1为底的离散对数,除非并且直到两台服务器在一起。我们的模型假设两台服务器永远不会串通,因为离散对数问题很难。 |
2.登记 |
为了进行身份验证,每个客户端C需要通过不同的安全通道注册服务器S1和S2。首先,客户端C使用两个服务器发布的公共参数(其中yi=g1xi)为服务器Si (i= 1,2)生成加密和解密密钥对(xi, yi)。 |
在此之后,客户端C选择一个密码pwC,并使用加密密钥yi对该密码进行加密,即(g2pwc,yi)=(Ai, Bi)=(g1ai, g2pwc yiai) (i=1,2),其中Ai根据ElGamal加密从Z*q中随机选择。 |
之后,客户端C从Z*q中随机选择b1,令b2=H(pwC) b1,其中代表两个l-bit块独占or最后,客户端C通过一个安全通道将密码认证信息发送给S1,即Authc(1)=x1,a1,b1,(g2pwc,y2),并通过另一个安全通道将密码认证信息发送给S2,即Authc(2) =x2,a2,b2,(g2pwc,y1)。 |
接下来,客户端C记住唯一的密码pwC对于所有两台服务器的PAKE协议,两个安全通道都是必需的。在注册过程中,密码被分成两个不同的部分,这些部分分别安全地分发到两台服务器S1和S2。一个服务器的加密密钥对另一个服务器是未知的,注册后客户端只记住一个密码。 |
3.认证和密钥交换: |
现在考虑两台服务器S1和S2拥有客户端C的认证信息,在并行计算方面,S1和S2对客户端C进行认证需要以下五个步骤,并与客户端C建立私有会话密钥。 |
4.两步移动验证 |
移动用户在gmail账号上生成验证码,用户生成随机码发送到验证用户系统,待服务器1和服务器2的数据匹配后提交,否则回滚系统。 |
结论 |
本文所提出的工作延续了双服务器范式的研究路线,通过在两台服务器上施加不同级别的信任来扩展模型,并在协议设计的技术级别上采用了一种非常不同的方法。在此基础上,提出了一种实用的双服务器密码认证和密钥交换系统,该系统在服务器被对手控制的情况下能够安全抵御离线字典攻击。所提出的方案是一个只有密码的系统,因为它不需要公钥密码系统,也不需要PKI。本文将基本的双服务器模型推广为单个后端服务器支持多个前端服务器的体系结构,并展望了联邦企业中有趣的应用。在给定的身份验证模式中,我们还使用SMS集成API进行两步验证,如Gmail,它将为最终用户提供额外的安全性。 |
数字一览 |
|
|
参考文献 |
- 王华雄,凌三,王迅毅,高效的双服务器密码认证密钥交换,并行与分布式系统学报,第24卷,NO。2013年9月9日
- M. Abdalla和D. Pointcheval,“简单的基于密码的加密密钥交换协议”,密码学过程Int Conf.主题(CTRSA),页。191 - 208年,2005年。
- M. Abdalla, O. Chevassut, D. Pointcheval,“基于一次性验证者的加密密钥交换”,第8届国际会议,公开密钥密码学理论与实践(PKC ' 05),第47-64页,2005。
- M. Bellare, D. Pointcheval, P. Rogaway,“认证密钥交换安全防范字典攻击”,第19届国际会议密码技术理论与应用(Eurocrypt ' 00), 139- 155,2000。
- S. Bellovin和M. Merritt,“加密密钥交换:基于密码的协议安全对抗字典攻击”,IEEE Symp。《安全与隐私研究》,第72-84页,1992。
- D. Boneh和M. Franklin,“基于Weil配对的身份加密”,第21期。国际密码学会议(Crypto ' 01),第213-229页,2001。
- D. Boneh和M. Franklin,“来自Weil配对的基于身份的加密”,SIAM J.计算,第32卷,no. 2。3, pp. 586-615, 2003。
- D. Boneh,“决策的Diffie-Hellman问题”,第三期国际算法数论。,页241-250,1998。
- V. Boyko, P. Mackenzie和S. Patel,“可证明的安全密码-使用Diffie-Hellman的验证密钥交换”,第19届国际会议。《密码技术理论与应用》(Eurocrypt ' 00),第156-171页,2000。
- J. Brainard, A. Jueles, B.S. Kaliski和M. Szydlo,“一种新的基于短秘密的双服务器身份验证方法”,第12届会议。usenix安全Symp。, pp. 201-214, 2003。
- W.迪菲和M.E.海尔曼,“密码学的新方向”,IEEE Trans。信息论,IT-22,不是。6, pp. 644-654, 11月1976.
- L. Gong, T.M.A. Lomas, R.M. Needham和J.H. Saltzer,“保护选择不佳的秘密免受猜测攻击”,IEEE
- J.《通讯之选》第11卷第1期5,第648-656页,1993年6月。
- S. Halevi和H. Krawczyk,“公开密钥密码学和密码协议”,ACM出版社。信息与系统安全,卷。2,没有。3,页230-268,1999。
- D. Jablon,“使用多服务器的密码认证”,密码学过程Conf主题:RSA密码学跟踪(RSACT ' 01),第344- 360,2001。
- 黄德寿,金海辉,徐玉玉,“一种高效的仅密码的双服务器认证密钥交换系统”,第九届国际会议。信息与通信安全(ICICS ' 07), pp. 44-56, 2007。
- J. Katz, R. Ostrovsky和M. Yung,“高效的密码-使用人类可记忆密码的认证密钥交换”,Proc。《密码学理论与应用:密码学进展》(Eurocrypt’01),第457-494页,
- 2001.Yi等人:高效的双服务器密码认证密钥交换1781
|