一种基于口令的远程认证协议方法技术

技术编号:10179547 阅读:290 留言:0更新日期:2014-07-02 18:30
本发明专利技术涉及一种基于口令的远程认证协议方法,其特征在于:基于椭圆曲线密码算法实现,包括如下步骤:步骤1:在系统初始化子协议中,用户同服务器协商好以后认证需要使用的椭圆曲线密码系统参数;步骤2:新用户UA通过用户注册子协议进行注册,选择身份标识和用户口令PWA;步骤3:用户UA希望登陆系统并进行会话密钥协商时,首先输入自己的身份标识IDA和用户口令PWA;然后通过身份认证和密钥协商子协议,与服务器进行双向认证并且协商在以后通信中使用的密钥SK。

【技术实现步骤摘要】
一种基于口令的远程认证协议方法
本专利技术涉及一种基于口令的远程认证协议方法。
技术介绍
在网络应用中,身份认证对于保障网络资源的安全性起着重要作用,因此寻找简单有效、实用方便、费用低廉的认证协议是当前研究的重点内容。基于口令的身份认证协议由于数据运算简单、部署成本低廉、安全可靠而成为近年来研究的热点。然而,基于口令的身份认证协议仍然存在着安全隐患。因为用户习惯上选择使用简单容易自己记忆的字符串作为口令,例如自己姓名字母的缩写、生日数字的组合,身份证号码的组合以及邮箱电话号码等,这将直接导致这种方式的身份认证协议容易遭到典型的字典攻击,这其中就包括包括离线口令猜测攻击和在线口令猜测攻击等。根据调查显示,在使用英语的国家当中,有25%的用户使用的口令是英文单词,MorrisThompson发现穷举搜索一部字典,可以在短短的5分钟之内发现超过1/3的口令;1999年,中科院信息安全中心的Samsa进行了一项研究,他根据中国人姓氏和人名中经常出现的汉字,设计了一部专用的字典,用它穷举搜索,发现了某服务器中保存的将近1/2的用户口令。事实表明,口令认证协议很容易遭受口令猜测攻击(passwordguessingattack)。尽管基于口令的认证存在着如上所述的安全隐患,但这并不能阻止人们对它的青睐,由于其相对于生物特征认证,口令认证机制拥有更小的数据量,更快的响应速度等优点,而且实现起来更容易,多数用户能够接受,因而口令认证机制目前仍然是系统网络等各种需要认证的系统中主要采取的认证方式。
技术实现思路
本专利技术目的在于提供一种基于口令的远程认证协议方法,能够实现双向认证,有效提高安全性。实现本专利技术目的技术方案:一种基于口令的远程认证协议方法,其特征在于:基于椭圆曲线密码算法实现,包括如下步骤:步骤1:在系统初始化子协议中,用户同服务器协商好以后认证需要使用的椭圆曲线密码系统参数;步骤2:新用户UA通过用户注册子协议进行注册,选择身份标识和用户口令PWA;步骤3:用户UA希望登陆系统并进行会话密钥协商时,首先输入自己的身份标识IDA和用户口令PWA;,然后通过身份认证和密钥协商子协议,与服务器进行双向认证并且协商在以后通信中使用的密钥SK。步骤2中,服务器S收到新用户UA注册提交的身份标识IDA和用户口令PWA;后,进行计算然后把数据(IDA,WA)保存在服务器的认证数据库中,前述式中,dS表示服务器的私钥,h表示单向哈希函数。步骤3中,具体包括以下步骤,步骤3.1:用户UA首先输入自己的身份标识IDA和用户口令PWA;用户自由选择一个随机数r1,r1∈Z*n,Z*n表示整数模n的剩余类,然后进行运算R1=r1·P,P表示群G的生成元,把消息<IDA,R1>发送给服务器S;步骤3.2:服务器S接收到上一步来自用户UA的消息<IDA,R1>后,根据自己的认证数据库中存储的数据对用户IDA进行合法性检验;如果在数据库中未找到该IDA,则服务器S终止协议的进程;否则,服务器S进行如下运算,选择随机数r2,r2∈Z*n,计算R2=r2·P,KS=r2·R1,R3=dS·R1,h1=h(S||IDA||R1||R2||R3||KS),式中S表示服务器的身份标识,最后由服务器S把消息<R2,h1>发送到用户UA;步骤3.3:当用户UA接收到来上一步来自服务器S的消息<R2,h1>后,进行运算KU=r1·R2=r1·r2·P,以及计算h1*=h(S||IDA||R1||R2||r1·PS||KU),其中Ps代表公钥,验证h1*与收到来自服务器的h1是否保持一致,如果不一致,则用户UA终止进行协议进程;否则,用户UA计算h2=h(IDA||S||r1·PS||KU||PWA),然后将h2发送给服务器S,并且用户UA计算一个密钥SK=h(IDA||S||R1||R2||r1·PS||KU||PWA);步骤3.4:服务器S从本地认证数据库中提取步骤2中计算获得的WA,并进行计算得到服务器端计算得到的PWA*,然后计算h(IDA||S||R3||KS||PWA*),得到的计算结果与上一步中收到的h2进行对比验证,看是否保持一致,如果不一致,则用户UA对服务器的认证请求失败,终止协议;否则,服务器S认可用户UA的合法身份,并且服务器S计算一个密钥SK=h(IDA||S||R1||R2||R3||KS||PWA*)。用户UA可进行口令修改,包括以下步骤,步骤4.1:用户UA和服务器S首先执行密钥SK;步骤4.2:假如上一步成功,则用户UA通过客户端输入新的口令PWAnew;步骤4.3:用户UA通过客户端计算和W=h(KU||SK||PWAnew),并把消息<PWD,W>发送至服务器S;步骤4.4:当服务器S收到来自于用户UA的请求修改口令的消息<PWD,W>后,首先进行如下式子的计算,然后对比验证W是否等于h(KS||SK||PWAnew*),假如不相等,服务器需要计算h3=h(SK||KS||“Refused”)并将消息<“Refused”,h3>发送给用户,拒绝更改口令;如果两者相等,则进行计算h4=h(SK||KS||“Accepted”),并将消息<“Accepted”,h4>发送给用户,允许其变更口令;最后服务器将计算新的WA*来替换原来的WA并保存到认证数据库,其中WA*的计算式为步骤4.5:如果用户UA收到消息<“Refused”,h3>,并且经验证h3等于h(SK||KU||“Refused”),则可以确定是服务器S发送的消息拒绝更改口令;而如果收到消息<“Accepted”,h4>,并且经过验证h4等于h(SK||KU||“Accepted”),则用户UA可以确定是服务器S发送的消息接收了变更口令请求。本专利技术具有的有益效果:本专利技术可以抵抗重放攻击。本专利技术是一种三消息挑战-响应模式的认证协议,只有合法用户才能正确的应答挑战信息R2,同时也只有合法的服务器才能正确的响应新鲜值R1,所以本专利技术能够有效的抵御重放攻击。本专利技术可以抵抗离线口令猜测攻击。本专利技术能够有效地抵抗离线口令猜测攻击,假设以下两种情形:1)假设攻击者捕获了WA,但是由于其无法或者服务器的私钥dS,所以无法进行离线口令猜测攻击;2)攻击者不能够从h2发动离线口令猜测攻击,这是因为假如攻击者要计算h2,则必须同时计算出KU或者KS,而计算KU或者KS则需要根据R1,R2来计算,这又归结为椭圆曲线计算Diffie-Hellman问题。本专利技术能够抵抗身份冒充攻击。攻击者在不知道PW的情况下,是不能构造出正确的第3条回应消息的,所以攻击者就无法冒充用户身份。同时,攻击者也无法正确的通过计算得出dS·R1和回应消息,因为如果要构造该值,则需要知道r1或者dS,而假如通过R1来计算得到r1或者通过PS计算得到dS都将面临椭圆曲线离散对数难题。本专利技术能够提供双向认证。从上面的认证和密钥协商过程可以清楚的看到,本协议提供了双向认证。第2条响应消息只有拥有合法身份的服务器才能构造出来;而第3条响应消息只有除了服务器之外的合法用户才能构造出来。所以该认证协议提供了双向认证。本专利技术能够提供前向安全性。本专利技术是基于椭圆曲线Diffi本文档来自技高网...
一种基于口令的远程认证协议方法

【技术保护点】
一种基于口令的远程认证协议方法,其特征在于:基于椭圆曲线密码算法实现,包括如下步骤:步骤1:在系统初始化子协议中,用户同服务器协商好以后认证需要使用的椭圆曲线密码系统参数;步骤2:新用户UA通过用户注册子协议进行注册,选择身份标识和用户口令PWA;步骤3:用户UA希望登陆系统并进行会话密钥协商时,首先输入自己的身份标识IDA和用户口令PWA;,然后通过身份认证和密钥协商子协议,与服务器进行双向认证并且协商在以后通信中使用的密钥SK。

【技术特征摘要】
1.一种基于口令的远程认证协议方法,其特征在于:基于椭圆曲线密码算法实现,包括如下步骤:步骤1:在系统初始化子协议中,用户同服务器协商好以后认证需要使用的椭圆曲线密码系统参数;步骤2:新用户UA通过用户注册子协议进行注册,选择身份标识和用户口令PWA;具体包括:服务器S收到新用户UA注册提交的身份标识IDA和用户口令PWA后,进行计算然后把数据(IDA,WA)保存在服务器的认证数据库中,前述式中,dS表示服务器的私钥,h表示单向哈希函数;步骤3:用户UA希望登陆系统并进行会话密钥协商时,首先输入自己的身份标识IDA和用户口令PWA,然后通过身份认证和密钥协商子协议,与服务器进行双向认证并且协商在以后通信中使用的密钥SK;具体包括以下步骤,步骤3.1:用户UA首先输入自己的身份标识IDA和用户口令PWA;用户自由选择一个随机数r1,r1∈Z*n,Z*n表示整数模n的剩余类,然后进行运算R1=r1·P,P表示群G的生成元,把消息<IDA,R1>发送给服务器S;步骤3.2:服务器S接收到上一步来自用户UA的消息<IDA,R1>后,根据自己的认证数据库中存储的数据对用户IDA进行合法性检验;如果在数据库中未找到该IDA,则服务器S终止协议的进程;否则,服务器S进行如下运算,选择随机数r2,r2∈Z*n,计算R2=r2·P,KS=r2·R1,R3=dS·R1,h1=h(S||IDA||R1||R2||R3||KS),式中S表示服务器的身份标识,最后由服务器S把消息<R2,h1>发送到用户UA;步骤3.3:当用户UA接收到来上一步来自服务器S的消息<R2,h1>后,进行运算KU=r1·R2=r1·r2·P,以及计算h1*=h(S||IDA||R1||R2||r1·PS||KU),其中Ps代表公钥,验证h1*与收到来自服务器的h1是否保持一致,如果不一致,则用户UA终止进行协议进程;否则,用户UA计算h2=h(IDA||S||r1·PS||KU||PWA),然后将h2发送给服务器S,并且用户UA计算一个密钥SK=h(IDA||S||R1||R2||r1·PS...

【专利技术属性】
技术研发人员:马春光付韬崔振山苗俊峰
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:黑龙江;23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1