CN113626794B - 客户/服务器模式下的认证及密钥协商方法、系统及应用 - Google Patents
客户/服务器模式下的认证及密钥协商方法、系统及应用 Download PDFInfo
- Publication number
- CN113626794B CN113626794B CN202110833095.5A CN202110833095A CN113626794B CN 113626794 B CN113626794 B CN 113626794B CN 202110833095 A CN202110833095 A CN 202110833095A CN 113626794 B CN113626794 B CN 113626794B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- password
- pwc
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004364 calculation method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于密码技术领域,公开了一种客户/服务器模式下的认证及密钥协商方法、系统及应用,包括注册阶段,认证阶段和口令更新阶段。本发明使得客户和服务器之间通过开放的公共信道可以实现认证和密钥交换,保证服务器端口令列表的安全,并实现用户口令实时更新,安全强度高。本发明规避公钥操作,使用了除法计算性Diffie‑Hellman问题,仅利用乘法群运算,简单高效,计算简便。本发明可以实现系统的安全成本更低;本地服务器对用户口令实现安全存储,服务器的口令列表即使失窃,系统仍然安全,这使得客户/服务器之间的认证及密钥协商更加健壮;用户可以自由更新口令,提高了系统的灵活性。
Description
技术领域
本发明属于密码技术领域,尤其涉及一种客户/服务器模式下的认证及密钥协商方法、系统及应用。
背景技术
目前,客户/服务器模式是信息管理系统部署中一种常见的体系结构。它将一个数据库应用系统划分为两个部分,分别是前端的客户端应用程序和后台的服务器。装载在用户设备上的应用程序向服务器发出服务请求,服务器将处理结果返回应用程序。两者通过网络相连。Internet即是一种分布式的客户/服务器模式,世界上任何一个角落的人,使用浏览器软件就可以作为一台客户机,访问服务器上提供的信息和服务。
由于网络的开放性,客户和服务器在进行通信的过程中会不可避免地面临恶意攻击者的攻击。常见的攻击包括被动攻击,如窃听、消息重放、业务流分析;以及主动攻击,如中断、篡改、伪造等。这种攻击会影响正常通信,给用户造成损失。为了保证客户/服务器模式下信息资源传输的安全性,应当在客户和服务器之间提供安全机制,实现以下几点:
(1)客户-服务器之间的双向身份认证;
(2)客户-服务器之间的会话密钥建立;
(3)尽可能高的安全强度,尽可能低的安全支出。
基于口令的认证的密钥协商协议(Password-Based Authenticated KeyExchange,PAKE)仅使用一个低熵的口令作为初始值,通过开放的公共信道在两个实体之间实现相互认证,并建立高熵的会话密钥。它无需专用的硬件设备,也不需要公钥证书系统的支持。PAKE协议满足了客户/服务器模式下安全机制的要求,为实现该模式下的安全通信提供了一种理想的方法。
Ruan等在“Efficient provably secure password-based explicitauthenticated key agreement”中利用双线性对提出了一个PAKE协议EAKA。该协议中服务器以明文的形式保存客户的口令,并在密钥交换过程中使用,这使得一旦口令被窃取,认证及密钥交换的安全性将不复存在。此外,协议使用了双线性对,而双线性对是已知最复杂的计算,协议的计算效率不高。Kumari等在“Design of a Password Authentication andKey Agreement Scheme to Access e-Healthcare Services”中基于口令和生物特征提出了一种PAKE协议,该协议实现了双向认证和密钥协商,计算效率高,但是在注册阶段需要额外的安全信道实现用户口令的传输。RFC5054描述了一个基于口令的PAKE协议SRP(SecureRemote Password)。该协议具有较高的安全强度和计算效率,却未提供用户口令的更新方法。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有协议假设通信双方预共享一个口令,但口令的共享通常需要采取线下的方式,或使用额外的安全协议(如TLS)建立安全信道。这种方法为PAKE协议引入了额外的安全支出,这是现有技术的一个缺陷。
(2)现有的PAKE协议通常要求服务器保存口令列表,其中包含系统中所有用户的口令。一旦口令列表失窃,攻击者可以冒充任意用户获取服务,系统的认证安全将不复存在。要求保存系统内用户的口令列表是现有技术的一个缺陷。
(3)大部分PAKE协议未提供用户口令更新机制,这影响了协议的完整性。此外,当用户口令过期或泄露时用户无法更换口令,降低了协议的安全性。这是现有技术的一个缺陷。
解决以上问题及缺陷的难度为:
1、设计一种安全的口令传输方案。用户口令是服务器用于认证用户的唯一有效标识,在用户向服务器发送口令时,应保证口令的安全。采用线下提交口令或建立客户与服务器之间的安全信道的方法需要额外的软、硬件支持,增加了安全成本。但是不采用额外支持,同时保证口令传输的安全是困难的。
2、设计一种在服务器上安全存储用户口令的方案。需要考虑服务器上客户口令列表的形式,使得即使该列表失窃,也不影响客户的安全。同时还需要考虑服务器在没有客户口令明文的条件下,如何安全地认证客户和协商密钥。这在协议设计上是困难的。
3、设计一种用户的口令更新方案。用户的口令更新涉及到对用户旧口令的确认和对新口令的存储。为了保证服务器的安全,本发明要求在服务器端不存储用户口令明文。在这种条件下实现口令更新是困难的。
解决以上问题及缺陷的意义为:通过解决以上问题,可以实现客户服务器模式下客户可以直接向服务器提交口令而无需额外的支持,系统的安全成本更低。本地服务器对用户口令实现安全存储,服务器的口令列表即使失窃,系统仍然安全,这使得客户/服务器之间的认证及密钥协商更加健壮。用户可以自由更新口令,提高了系统的灵活性。
发明内容
针对现有技术存在的问题,本发明提供了一种客户/服务器模式下的认证及密钥协商方法、系统及应用,尤其涉及一种客户/服务器模式下基于口令的认证密钥交换方法及系统。
本发明中使用的符号说明如下:
正整数集群,表示有限域上所有正整数构成的集合。
∈:属于,表示私钥s是在正整数集群中选取的。
数学符号异或,/>表示两个数以二进制形式异或相加。
params:公共参数,在通信中用户通过此公共参数对消息进行加密和处理。
PWC:用户口令,秘密保存。通信中客户请求服务器服务时作为自己的身份凭证。
VPWC:用户口令的加盐哈希值,通信中用于服务端校验用户身份信息的凭证。
ACKs:发送给客户,表示服务端完成会话密钥协商过程的凭证。
ACKc:发送给服务端,表示客户完成会话密钥协商过程的凭证。
PWCnew:口令更新过程中,用户使用的新口令。
ACKu:口令更新过程中发送给客户,表示服务端对用户口令完成更新的凭证。
VPWCnew:用户新口令的加盐哈希值,保存在服务端本地,作为通信中对用户身份信息的校验凭证。
本发明是这样实现的,一种客户/服务器模式下的认证及密钥协商方法,所述客户/服务器模式下的认证及密钥协商方法包括以下步骤:
步骤一,服务器端S选择长度为k的大素数N,选择的生成元g,选择服务器的私钥/>并计算服务器的公钥PKs=gsmod N;规定口令的长度l。选择三个哈希函数H1:{0,1}*→{0,1}l,H2:{0,1}*→{0,1}k,H3:{0,1}*→{0,1}*;S将{k,l,N,g,PKs,H1,H2,H3}设置为系统的公共参数params,将私钥s秘密保存,并将params通过一个安全布告板进行公布。该步骤有助于去除登记口令时所需的线下信道或高层协议支持。
步骤二,当客户端C向S进行注册时,通过安全布告板下载公共参数params;选择长度为l的口令PWC;选择计算/> 将<C,xr,mr>发送给S。该步骤实现了客户在无其他额外安全支持的条件下向服务器登记口令。
步骤三,S利用私钥s计算计算/>计算VPWC=H2(C,PWC,s);VPWC是用户口令的加盐哈希值,S将VPWC存入本地口令列表。该步骤实现了服务器对客户口令的安全存储,保证了系统的健壮性。
步骤四,当客户需要和服务器进行认证和密钥交换时,选择计算选择/>计算kc=gx mod N,并将<C,xa,ma,kc>发送给服务器。该步骤实现了客户对服务器的安全认证。
步骤五,收到客户的消息后,S计算计算/>利用私钥s恢复VPWC并与本地存储值进行比较;若不一致则终止协议;若一致,则选择计算ks=gy mod N,计算/>计算/>计算ACKs=H3(S,C,ksc),并将<ms,ACKs>发送给C。该步骤实现了服务器对客户的安全认证,以及服务器端会话密钥的安全建立。
步骤六,客户利用ka、kc和PWC计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥kcs=ks xmod N;C计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致,若一致则计算ACKc=H3(C,S,kcs),并将其发送给S。该步骤实现了客户端会话密钥的安全建立。
步骤七,服务器利用ksc计算ACKc′=H3(C,S,ksc)并验证其与ACKc是否一致;若一致,则设置ksc为会话密钥,并为C提供服务。该步骤完成了客户/服务器模式下的认证和密钥协商过程。
步骤八,当客户需要和服务器更新自己的口令时,选择新的口令PWCnew,选择计算/>计算/>计算并将<C,xu,mu,mu′>发送给服务器。该步骤实现了客户选择新的口令并向服务器进行登记,保证了系统的灵活性。
步骤九,服务器收到消息<C,xu,mu,mu′>后,计算利用ku从mu中获得PWCnew,利用PWCnew从mu′中获得PWC;利用PWC重构VPWC,若与本地存储值一致,则接受PWCnew为用户新的口令,基于PWCnew产生新的加盐口令哈希值VPWCnew,更新口令列表中C的项;S产生确认消息ACKu=H3(C,S,PWC,PWCnew)并将ACKu发送给C。该步骤实现了服务器对用户新口令的记录和确认。
步骤十,客户重构ACKu′=H3(C,S,PWC,PWCnew)并与ACKu相比较,若二者一致,则认为口令更新成功。该步骤完成了口令更新过程。
进一步,步骤二中,所述客户端安全传输口令的方法,包括:
客户端选择通过服务器公钥加密的消息作为密钥和口令异或,即
进一步,步骤二中,所述客户选择用户名和口令并发送给服务器的方法,包括:
选择长度为l的口令PWC;选择计算/> 将<C,xr,mr>发送给S。
进一步,步骤三中,所述服务器端对于用户口令的存储方法,包括:
计算并存储VPWC=H2(C,PWC,s)。
进一步,步骤七中,所述客户端验证服务端身份的认证方法,包括:
客户接收到消息<ms,ACKs>后,从ms中恢复出ks,计算会话密钥kcs=ks xmod N;客户计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致。
进一步,步骤九中,所述服务端验证客户端身份的方法,包括:
服务端先利用消息<C,xu,mu,mu′>获取到新口令,将新口令作为密钥和旧的口令进行异或得到旧口令PWC,通过和本地存储值验证是否一致完成认证。
本发明的另一目的在于提供一种应用所述的客户/服务器模式下的认证及密钥协商方法的客户/服务器模式下的认证及密钥协商系统,所述客户/服务器模式下的认证及密钥协商系统,包括客户端和服务器;
其中,服务器S,用于接收客户端发送的<C,xr,mr>对客户进行注册。服务器从xr中利用s计算出注册密钥kr,再利用kr从mr中获得PWC。服务器计算并保存VPWC,即使口令列表被窃取,对客户端的认证依然是安全的。用于接收客户端发送的<C,xa,ma,kc>。S从xa中利用私钥s计算出密钥ka,再利用ka从ma中获得用户的口令PWC,S利用PWC计算出VPWC和本地存储值进行对比,若一致利用kc计算会话密钥ksc=kc y mod N,并发送消息<ms,ACKs>给用户。用于接收客户端发送的ACKc。利用ksc计算ACKc′=H3(C,S,ksc),若ACKc′=ACKc,则完成对C的认证,并使用ksc作为会话密钥。
客户端C,用于获取服务器S发布的参数params,其中包含服务器的公钥,可以实现客户端安全注册和对服务器的认证。客户端计算密钥分量xr,只有服务器才能够从xr恢复kr,从而安全地将PWC传送给服务器。用于接收服务器发送的消息ms,只有客户才具有ka和PWC,能够重构出H2(S,C,ka,PWC)从而获得ks并计算正确的会话密钥kcs。
其中s为服务器的私钥,是群上的一个整数。PWC为用户的口令;VPWC是加盐的用户口令哈希值,基于用户身份C、PWC和s生成。H2(S,C,ka,PWC)用作S向C证明自己的身份。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
服务器端S选择长度为k的大素数N,选择的生成元g,选择服务器的私钥并计算服务器的公钥PKs=gsmod N;规定口令的长度l。选择三个哈希函数H1:{0,1}*→{0,1}l,H2:{0,1}*→{0,1}k,H3:{0,1}*→{0,1}*;S将{k,l,N,g,PKs,H1,H2,H3}设置为系统的公共参数params,将私钥s秘密保存,并将params通过一个安全布告板进行公布;
当客户端C向S进行注册时,通过安全布告板下载公共参数params;选择长度为l的口令PWC;选择计算/> 将<C,xr,mr>发送给S;S利用私钥s计算/>计算/>计算VPWC=H2(c,PWC,s);VPWC是用户口令的加盐哈希值,S将VPWC存入本地口令列表;
当客户需要和服务器进行认证和密钥交换时,选择计算选择/>计算kc=gxmod N,并将<C,xa,ma,kc>发送给服务器;收到客户的消息后,S计算计算/>利用私钥s恢复VPWC并与本地存储值进行比较;若不一致则终止协议;若一致,则选择/>计算ks=gymod N,计算计算/>计算ACKs=H3(S,C,ksc),并将<ms,ACKs}发送给C;
客户利用ka、kc和PWC计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥kcs=ks xmod N;C计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致,若一致则计算ACKc=H3(C,S,kcs),并将其发送给S;服务器利用ksc计算ACKc′=H3(C,S,ksc)并验证其与ACKc是否一致;若一致,则设置ksc为会话密钥,并为C提供服务。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的客户/服务器模式下的认证及密钥协商系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明采用除法计算性Diffie-Hellman问题(Divisible Computational Diffie-Hellman Problem,DCDH),在客户端基于服务器公钥产生认证密钥,用于客户认证服务器,服务器利用客户的口令认证客户。协议利用DH密钥协商建立安全会话密钥,并且仅有合法客户才能够和服务器建立起会话密钥。本发明具有安全强度高、计算量小的特点,可以用于实现客户和服务器模式下的安全通信。
本发明与现有技术相比,具有以下优点:
(1)系统安全成本小
本发明提供的客户/服务器模式下的认证及密钥协商方法,使得客户和服务器之间通过开放的公共信道使用轻量的计算即可实现高安全强度的口令登记、认证和密钥建立;规避了公钥操作,仅利用乘法群运算及哈希、异或等简单操作实现协议。这些特点是系统的安全成本较小。
(2)系统具有健壮性
本发明将用户口令与会话密钥相异或后直接发送给服务器,服务器端可以利用口令计算口令的加盐哈希值并与本地保存值进行对比,从而验证客户口令是否正确。服务器仅需保存加盐的口令哈希值,即使该值被攻击者窃取,从哈希值中也无法恢复口令,系统具有健壮性。
(3)系统具有灵活性
本发明提供了用户的口令更新,支持客户端在需要时更新口令,系统具有灵活性。
附图说明
图1是本发明提供的客户/服务器模式下的认证及密钥协商方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
1、一种客户服务器模式下基于口令的认证及密钥协商方法,其步骤包括:
(1)服务器端S选择长度为k的大素数N,选择的生成元g,选择服务器的私钥并计算服务器的公钥PKs=gsmod N。规定口令的长度l。选择三个哈希函数H1:{0,1}*→{0,1}l,H2:{0,1}*→{0,1}k,H3:{0,1}*→{0,1}*。S将{k,l,N,g,PKs,H1,H2,H3}设置为系统的公共参数params,将私钥s秘密保存。然后将params通过一个安全布告板进行公布。
(2)当客户端C需要向S进行注册时,首先通过安全布告板下载公共参数params。选择长度为l的口令PWC。选择计算/> 将<C,xr,mr}发送给S。
(3)S利用私钥s计算计算/>计算VPWC=H2(C,PWC,s)。VPWC是用户口令的加盐哈希值,S将VPWC存入本地口令列表。
(4)当客户需要和服务器进行认证和密钥交换时,选择计算选择/>计算kc=gx mod N。最后将<C,xa,ma,kc}发送给服务器。
(5)收到客户的消息后,S首先计算计算/>利用私钥s恢复VPWC并与本地存储值进行比较。若不一致则终止协议。若一致,则选择计算ks=gy mod N,计算/>计算/>计算ACKs=H3(S,C,ksc),最后将<ms,ACKs}发送给C。
(6)客户利用ka、kc和PWC计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥C计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致,若一致则计算ACKc=H3(C,S,kcs),并将其发送给S。
(7)服务器利用ksc计算ACKc′=H3(C,S,ksc)并验证其与ACKc是否一致。若一致,则设置ksc为会话密钥,并为C提供服务。
2.如技术点1所述,其特征在于,步骤2)中,客户选择用户名和口令并发送给服务器的方法为:选择长度为l的口令PWC。选择计算将<C,xr,mr>发送给S。
3、如技术点1所述,其特征在于,步骤3)中,服务器端对于用户口令的存储方法为:计算并存储VPWC=H2(C,PWC,s)。
4、如技术点1所述,其特征在于,客户端验证服务端身份的认证方法为:客户接收到消息<ms,ACKs>后,从ms中恢复出ks,计算会话密钥客户计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致。
5、客户/服务器模式下基于口令的认证密钥交换方法及系统,其特征在于,包括客户端和服务器,其中:
服务器S,用于接收客户端发送的<C,xr,mr>对客户进行注册。服务器从xr中利用s计算出注册密钥kr,再利用kr从mr中获得PWC。服务器计算并保存VPWC,即使口令列表被窃取,对客户端的认证依然是安全的。用于接收客户端发送的(C,xa,ma,kc>。S从xa中利用私钥s计算出密钥ka,再利用ka从ma中获得用户的口令PWC,S利用PWC计算出VPWC和本地存储值进行对比,若一致利用kc计算会话密钥ksc=kc ymod N,并发送消息<ms,ACKs>给用户。用于接收客户端发送的ACKc。利用ksc计算ACKc′=H3(C,S,ksc),若ACKc′=ACKc,则完成对C的认证,并使用ksc作为会话密钥。
客户端C,用于获取服务器S发布的参数params,其中包含服务器的公钥,可以实现客户端安全注册和对服务器的认证。客户端计算密钥分量xr,只有服务器才能够从xr恢复kr,从而安全地将PWC传送给服务器。用于接收服务器发送的消息ms,只有客户才具有ka和PWC,能够重构出H2(S,C,ka,PWC)从而获得ks并计算正确的会话密钥kcs。
其中s为服务器的私钥,是群上的一个整数。PWC为用户的口令;VPWC是加盐的用户口令哈希值,基于用户身份C、PWC和s生成。H2(S,C,ka,PWC)用作S向C证明自己的身份。
6、如技术点5所述,其特征在于,服务器选择公钥和公共参数的方法为:选取长度为k的大素数N,选择的生成元g,选择服务器的私钥/>并计算服务器的公钥PKs=gsmod N。规定口令的长度l。选择三个哈希函数H1:{0,1}*→{0,1}l,H2:{0,1}*→{0,1}k,H3:{0,1}*→{0,1}*。将{k,l,N,g,PKs,H1,H2,H3}设置为系统的公共参数params。
7、一种安全的用户口令更新的方法,其步骤包括:
客户选择新的口令PWCnew,选择计算/> 计算/>计算/>最后将<C,xu,mu,mu′>发送给服务器。
服务器收到消息<C,xu,mu,mu′>后,计算利用ku从mu中获得PWCnew,利用PWCnew从mu′中获得PWC。利用PWC重构VPWC,若与本地存储值一致,则接受PWCnew为用户新的口令,基于PWCnew产生新的加盐口令哈希值VPWCnew,更新口令列表中C的项。S产生确认消息ACKu=H3(C,S,PWC,PWCnew)并将ACKu发送给C。
客户重构ACKu′=H3(C,S,PWC,PWCnew)并与ACKu相比较,若二者一致,则认为口令更新成功。
8、如技术点7所述,其特征在于,步骤1)中,客户端安全传输新口令的方法为:客户端选择通过服务器公钥加密的消息作为密钥和新口令异或,即
9、如技术点7所述,其特征在于,步骤2)中,服务端验证客户端身份的方法为:服务端先利用消息<C,xu,mu,mu′>获取到新口令,将新口令作为密钥和旧的口令进行异或得到旧口令PWC,通过和本地存储值验证是否一致完成认证。
实施例2
如附图认证阶段:
1)当客户需要和服务器进行认证和密钥交换时,选择计算其中:H1:{0,1}*→{0,1}l,l为口令的长度;选择/>计算kc=gxmod N。最后将<C,,xa,ma,kc>发送给服务器。
2)收到客户的消息后,S首先计算计算/>利用私钥s恢复VPWC并与本地存储值进行比较。若不一致则终止协议。若一致,则选择计算ks=gymod N,计算/>计算/>计算ACKs=H3(S,C,ksc),最后将<ms,ACKs>发送给C。
3)客户利用ka、kc和PWC计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥kcs=ks *mod N。C计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致,若一致则计算ACKc=H3(C,S,kcs),并将其发送给S。
服务器利用ksc计算ACKc′=H3(C,S,ksc)并验证其与ACKc是否一致。若一致,则设置ksc为会话密钥,并为C提供服务。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
为证明发明的安全性,使用SVO逻辑对本发明所提出的协议进行形式化分析,确认本发明提供了认证安全性和密钥协商安全性。
SVO逻辑的语法主要分为公式语言和消息语言。
消息语言:
如果X∈T,那么X是消息;
如果X1,X2,X3,X4,X5,X6……Xn是消息,那么消息的F函数F(X1,X2,X3,X4,X5,X6……Xn)也是消息;
如果Ф是公式,那么Ф是消息。
公式语言:
PbelievesX:P是主体,并且P相信消息X是真实的;
PreceivedX:P收到了一条包含消息X(传输给P)的消息,P能够读取消息X并且重复;
PsaidX:在某个时间,主体P发送了一条包含信息,消息内容中有X;
PsaysX:主体P一定是在现在或者是当前通信开始时候发送的包含X的消息;
PhasX:消息X最初是对P有效;由主体P接受的;P可以生成X;P可以进行构造的;
PcontrolsX:消息X的来源可以确认是P,并且P可以控制消息X;
fresh(X):消息X是新鲜的,也就是说在当前的协议运行之前,没有收到相同的消息X;
主体P和主体Q之间通过共享的会话密钥K进行通信,并且K除了P和Q以及他们信任的主体之外,对其他人是保密的;
{X}K:消息X是通过密钥K进行加密过的。
SVO逻辑遵从的两条基本推导规则:MP规则:规则:/>认证过程的形式化分析中遵循SVO公理:
相信公理
源关联公理
密钥协商公理
接收公理
看到公理
理解公理
叙述公理
仲裁公理
新鲜性公理
良好密钥的对称性公理
1)初始假设
A1:fresh(C,xa,ma,kc)
A2:fresh(ms,ACKs)
A3:fresh(ACKc)
A4:S received C,xa,ma,kc
A5:C received ms,ACKs
A6:S received ACKc
A7:C has C,params,PWC,kc,ka,S
A8:S has s,ks,params,VPWC
A9:C believes S controls
A10:S believes C controls
A1~A3:假设认证过程中消息具有新鲜性;A4~A6:假设认证过程中消息都成功传输给另一方;A7~A8:假设认证阶段前客户拥有共享密钥信息kc和需要的其他消息,服务器拥有共享密钥信息ks和私钥s;A9~A10:会话密钥ksc由通信双方共同生成,因此通信双方C和S都具有仲裁权。
2)分析方案实现目标和理想化方案交互过程
认证过程实现目标:P1:C believesP2:S believes/>应用上述假设和SVO逻辑公理对认证阶段方案的推理如下:
①S received C,xa,ma,kc,根据接收公理6和NEC推导规则可得;
②S believes S received PWC,kc,C,通过理想假设A8完成客户身份认证并结合看到公理8,9可得;
③S believes(S has kc,ka)∧S believes C said(kc,ka),结合理想假设A8和密钥协商公理5可得;
④S believes(S hasksc),根据理想假设A5和接收公理可得;
⑤C received结合理想假设A7可得;
⑥C received ks,结合看到公理6和NEC推导规则苛责;
⑦C believes C has ks,结合理想假设A11和密钥协商公理5可得;
⑧C believes C has ksc,结合推理过程5对服务器身份完成认证后可得;
⑨C believes S said H3(S,C,ksc),结合理想假设A2和新鲜性公理18可得;
⑩C believes S says结合理想假设A9和仲裁公理15可得目标P1;
C believes结合以上步骤同理可证得目标P2。
尽管为说明目的公开了本发明的具体内容、实施方式以及附图,其目的在于帮助理解本发明的目的并据以实施。任何熟悉本技术领域的技术人员可以理解:本发明的保护范围并不局限于此,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种客户/服务器模式下的认证及密钥协商方法,其特征在于:
步骤一,服务器端S选择长度为k的大素数N,选择的生成元g,选择服务器的私钥并计算服务器的公钥PKs=gsmod N;规定口令的长度l;选择三个哈希函数H1:{0,1}*→{0,1}l,H2:{0,1}*→{0,1}k,H3:{0,1}*→{0,1}*;S将{k,l,N,g,PKs,H1,H2,H3}设置为系统的公共参数params,将私钥s秘密保存,并将params通过一个安全布告板进行公布;
步骤二,当客户端C向S进行注册时,通过安全布告板下载公共参数pararms;选择长度为l的口令PWC;选择计算/> 将<C,xr,mr>发送给S;
步骤三,S利用私钥s计算计算/>计算VPWC=H2(C,PWC,s);VPWC是用户口令的加盐哈希值,S将VPWC存入本地口令列表;
步骤四,当客户需要和服务器进行认证和密钥交换时,选择计算选择/>计算kc=gx mod N,并将<C,xa,ma,kc>发送给服务器;
步骤五,收到客户的消息后,S计算计算/>利用私钥s恢复VPWC并与本地存储值进行比较;若不一致则终止协议;若一致,则选择计算ks=gy mod N,计算/>计算/>计算ACKs=H3(S,C,ksc),并将<ms,ACKs>发送给C;
步骤六,客户利用ka、kc和PWC计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥kcs=ks x mod N;C计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致,若一致则计算ACKc=H3(C,S,kcs),并将其发送给S;
步骤七,服务器利用ksc计算ACKc′=H3(C,S,ksc)并验证其与ACKc是否一致;若一致,则设置ksc为会话密钥,并为C提供服务;
步骤八,当客户需要和服务器更新自己的口令时,选择新的口令PWCnew,选择计算计算/>计算/>并将<C,xu,mwmu′>发送给服务器;
步骤九,服务器收到消息<C,xu,mu,mu′>后,计算利用ku从mu中获得PWCnew,利用PWCnew从mu′中获得PWC;利用PWC重构VPWC,若与本地存储值一致,则接受PWCnew为用户新的口令,基于PWCnew产生新的加盐口令哈希值VPWCnew,更新口令列表中C的项;S产生确认消息ACKu=H3(C,S,PWC,PWCnew)并将ACKu发送给C;
步骤十,客户重构ACKu′=H3(C,S,PWC,PWCnew)并与ACKu相比较,若二者一致,则认为口令更新成功。
2.如权利要求1所述的客户/服务器模式下的认证及密钥协商方法,其特征在于,步骤二中,所述客户选择用户名和口令并发送给服务器的方法,包括:
选择长度为l的口令PWC;选择计算/> 将<C,xr,mr>发送给S。
3.如权利要求1所述的客户/服务器模式下的认证及密钥协商方法,其特征在于,步骤三中,所述服务器端对于用户口令的存储方法,包括:
计算并存储VPWC=H2(C,PWC,s)。
4.如权利要求1所述的客户/服务器模式下的认证及密钥协商方法,其特征在于,步骤四中,所述密钥协商完成前,客户端通过服务器公钥安全传输消息的方法,包括:
客户选择计算/>将ka作为密钥,计算
进一步,服务端进行解密过程,计算计算/>
5.如权利要求1所述的客户/服务器模式下的认证及密钥协商方法,其特征在于,步骤七中,所述客户端验证服务端身份,并验证会话密钥的方法,包括:
客户接收到消息<ms,ACKs>后,计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥kcs=ks x mod N;客户计算ACKs′=Hs(S,C,kcs)并验证其是否与ACKs一致。
6.如权利要求1所述的客户/服务器模式下的认证及密钥协商方法,其特征在于,步骤八中,所述客户端安全传输新口令的方法,包括:
客户端选择通过服务器公钥加密的消息作为密钥和新口令异或,即
7.如权利要求1所述的客户/服务器模式下的认证及密钥协商方法,其特征在于,步骤九中,所述服务端验证客户端身份的方法,包括:
服务端先利用消息<C,xu,mu,mu′>获取到新口令,将新口令作为密钥和旧的口令进行异或得到旧口令PWC,通过和本地存储值验证是否一致完成认证。
8.一种实施权利要求1~7任意一项所述的客户/服务器模式下的认证及密钥协商方法的客户/服务器模式下的认证及密钥协商系统,其特征在于,所述客户/服务器模式下的认证及密钥协商系统,包括客户端和服务器;
其中,服务器S,用于接收客户端发送的<C,xr,mr>对客户进行注册;服务器从xr中利用s计算出注册密钥kr,再利用kr从mr中获得PWC;服务器计算并保存VPWC,即使口令列表被窃取,对客户端的认证依然是安全的;用于接收客户端发送的<C,xa,ma,kc>;S从xa中利用私钥s计算出密钥ka,再利用ka从ma中获得用户的口令PWC,S利用PWC计算出VPWC和本地存储值进行对比,若一致利用kc计算会话密钥ksc=kc y mod N,并发送消息<ms,ACKs>给用户;用于接收客户端发送的ACKc;利用ksc计算ACKc′=H3(C,S,ksc),若ACKc′ACKc,则完成对C的认证,并使用ksc作为会话密钥;
客户端C,用于获取服务器S发布的参数params,其中包含服务器的公钥,可以实现客户端安全注册和对服务器的认证;客户端计算密钥分量xr,只有服务器才能够从xr恢复kr,从而安全地将PWC传送给服务器;用于接收服务器发送的消息ms,只有客户才具有ka和PWC,能够重构出H2(S,C,ka,PWC)从而获得ks并计算正确的会话密钥kcs;
其中s为服务器的私钥,是群上的一个整数;PWC为用户的口令;VPWC是加盐的用户口令哈希值,基于用户身份C、PWC和s生成;H2(S,C,ka,PWC)用作S向C证明自己的身份。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
服务器端S选择长度为k的大素数N,选择的生成元g,选择服务器的私钥/>并计算服务器的公钥PKs=gs mod N;规定口令的长度l;选择三个哈希函数H1:{0,1}*→{0,1}l,H2:{0,1}*→{0,1}k,H3:{0,1}*→{0,1}*;S将{k,l,N,g,PKs,H1,H2,H3}设置为系统的公共参数params,将私钥s秘密保存,并将params通过一个安全布告板进行公布;
当客户端C向S进行注册时,通过安全布告板下载公共参数params;选择长度为l的口令PWC;选择计算/> 将<C,xr,mr>发送给S;S利用私钥s计算/>计算/>计算VPWC=H2(C,PWC,s);VPWC是用户口令的加盐哈希值,S将VPWC存入本地口令列表;
当客户需要和服务器进行认证和密钥交换时,选择计算选择/>计算kc=gx mod N,并将<C,xa,ma,kc>发送给服务器;收到客户的消息后,S计算计算/>利用私钥s恢复VPWC并与本地存储值进行比较;若不一致则终止协议;若一致,则选择/>计算ks=gy mod N,计算计算/>计算ACKs=H3(S,C,ksc),并将<ms,ACKs}发送给C;
客户利用ka和PWC计算H2(S,C,ka,PWC),从ms中恢复出ks,计算会话密钥kcs=ks x mod N;C计算ACKs′=H3(S,C,kcs)并验证其是否与ACKs一致,若一致则计算ACKc=H3(C,S,kcs),并将其发送给S;服务器利用ksc计算ACKc′=H3(C,S,ksc)并验证其与ACKc是否一致;若一致,则设置ksc为会话密钥,并为C提供服务。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求8所述的客户/服务器模式下的认证及密钥协商系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833095.5A CN113626794B (zh) | 2021-07-22 | 2021-07-22 | 客户/服务器模式下的认证及密钥协商方法、系统及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833095.5A CN113626794B (zh) | 2021-07-22 | 2021-07-22 | 客户/服务器模式下的认证及密钥协商方法、系统及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626794A CN113626794A (zh) | 2021-11-09 |
CN113626794B true CN113626794B (zh) | 2024-03-08 |
Family
ID=78380612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110833095.5A Active CN113626794B (zh) | 2021-07-22 | 2021-07-22 | 客户/服务器模式下的认证及密钥协商方法、系统及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626794B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666114B (zh) * | 2022-03-15 | 2024-02-02 | 成都安恒信息技术有限公司 | 一种基于生物特征的移动云数据安全认证方法 |
CN117834138B (zh) * | 2024-03-04 | 2024-05-24 | 北卡科技有限公司 | 一种适用于即时通信的密钥协商方法、系统、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008010003A1 (en) * | 2006-07-14 | 2008-01-24 | Abb Research Ltd. | Secure password-based authentication and key distribution protocol with robust availability properties |
KR20100024605A (ko) * | 2008-08-26 | 2010-03-08 | 충남대학교산학협력단 | Rsa기반 패스워드 인증을 통한 세션키 분배방법 |
CN101969446A (zh) * | 2010-11-02 | 2011-02-09 | 北京交通大学 | 一种移动商务身份认证方法 |
CN107154849A (zh) * | 2017-05-09 | 2017-09-12 | 哈尔滨工业大学深圳研究生院 | 基于高可靠智能卡的三方口令认证与密钥协商协议 |
WO2017202161A1 (zh) * | 2016-05-26 | 2017-11-30 | 中兴通讯股份有限公司 | 基于无证书两方认证密钥协商方法、装置和存储介质 |
CN107483195A (zh) * | 2017-09-08 | 2017-12-15 | 哈尔滨工业大学深圳研究生院 | 物联网环境下安全的双方认证与密钥协商协议 |
CN108965338A (zh) * | 2018-09-21 | 2018-12-07 | 杭州师范大学 | 多服务器环境下的三因素身份认证及密钥协商的方法 |
CN110838920A (zh) * | 2019-11-20 | 2020-02-25 | 北京航空航天大学 | web系统中无需存储口令相关信息的口令认证与密钥协商协议 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102549272B1 (ko) * | 2016-05-17 | 2023-06-30 | 한국전자통신연구원 | 패스워드와 id 기반 서명을 이용한 인증 키 합의 방법 및 장치 |
-
2021
- 2021-07-22 CN CN202110833095.5A patent/CN113626794B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008010003A1 (en) * | 2006-07-14 | 2008-01-24 | Abb Research Ltd. | Secure password-based authentication and key distribution protocol with robust availability properties |
KR20100024605A (ko) * | 2008-08-26 | 2010-03-08 | 충남대학교산학협력단 | Rsa기반 패스워드 인증을 통한 세션키 분배방법 |
CN101969446A (zh) * | 2010-11-02 | 2011-02-09 | 北京交通大学 | 一种移动商务身份认证方法 |
WO2017202161A1 (zh) * | 2016-05-26 | 2017-11-30 | 中兴通讯股份有限公司 | 基于无证书两方认证密钥协商方法、装置和存储介质 |
CN107154849A (zh) * | 2017-05-09 | 2017-09-12 | 哈尔滨工业大学深圳研究生院 | 基于高可靠智能卡的三方口令认证与密钥协商协议 |
CN107483195A (zh) * | 2017-09-08 | 2017-12-15 | 哈尔滨工业大学深圳研究生院 | 物联网环境下安全的双方认证与密钥协商协议 |
CN108965338A (zh) * | 2018-09-21 | 2018-12-07 | 杭州师范大学 | 多服务器环境下的三因素身份认证及密钥协商的方法 |
CN110838920A (zh) * | 2019-11-20 | 2020-02-25 | 北京航空航天大学 | web系统中无需存储口令相关信息的口令认证与密钥协商协议 |
Non-Patent Citations (2)
Title |
---|
虞淑瑶 ; 张友坤 ; 叶润国 ; 宋成 ; .基于动态口令验证因子认证的密钥交换协议.计算机工程.2006,(10),151-152+215. * |
魏振宇 ; 芦翔 ; 史庭俊 ; .基于PKI体系的跨域密钥协商协议.计算机科学.2017,(01),162-165+189. * |
Also Published As
Publication number | Publication date |
---|---|
CN113626794A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113783836B (zh) | 基于区块链和ibe算法的物联网数据访问控制方法及系统 | |
WO2018214133A1 (zh) | 基于区块链的fido认证方法、装置及系统 | |
Zhang et al. | Efficient and privacy-preserving blockchain-based multifactor device authentication protocol for cross-domain IIoT | |
JP5224481B2 (ja) | パスワード認証方法 | |
US11228450B2 (en) | Method and apparatus for performing multi-party secure computing based-on issuing certificate | |
CN110959163A (zh) | 能够在多个存储节点上安全存储大型区块链的计算机实现的系统和方法 | |
JP2023500570A (ja) | コールドウォレットを用いたデジタルシグニチャ生成 | |
CN113626794B (zh) | 客户/服务器模式下的认证及密钥协商方法、系统及应用 | |
US20220417031A1 (en) | Secure digital signing | |
CN108881222A (zh) | 基于pam架构的强身份认证系统及方法 | |
CN113411187B (zh) | 身份认证方法和系统、存储介质及处理器 | |
WO2020020008A1 (zh) | 一种鉴权方法及鉴权系统 | |
De Smet et al. | Lightweight PUF based authentication scheme for fog architecture | |
Hossain et al. | ICAS: Two-factor identity-concealed authentication scheme for remote-servers | |
Khan et al. | A brief review on cloud computing authentication frameworks | |
Ma et al. | A robust authentication scheme for remote diagnosis and maintenance in 5G V2N | |
CN111277583A (zh) | 一种移动云计算的监控系统身份认证方法 | |
Liou et al. | T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs | |
WO2024124924A1 (zh) | 小程序应用的密钥协商方法及装置 | |
CN111131160B (zh) | 一种用户、服务及数据认证系统 | |
KR20080005344A (ko) | 인증서버가 사용자단말기를 인증하는 시스템 | |
US20200059469A1 (en) | Secret sharing-based onboarding authentication | |
KR20070035342A (ko) | 패스워드 기반의 경량화된 상호 인증 방법 | |
CN116015906A (zh) | 用于隐私计算的节点授权方法、节点通信方法和装置 | |
CN111682941B (zh) | 基于密码学的集中式身份管理、分布式认证与授权的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |