基于高可靠智能卡的三方口令认证与密钥协商协议的制作方法

文档序号:11236581阅读:572来源:国知局

本发明涉及一种基于高可靠智能卡的三方口令认证与密钥协商协议。



背景技术:

由于网络的不断推广和扩大使用,安全方面的隐患也越来越多。比如,现在日趋普遍的电子商务的网上在线支付,门户网站以及电子邮件等等都会传递一些用户的隐私等相关敏感信息,这些很可能会遭到攻击者的恶意劫持和篡改。一旦发生安全泄露,基本上都会给用户造成极大甚至不可限量的损失。因此,信息安全已成为人们的迫切需求,也是几乎所有网络通信正常运行的保证。

ake协议辅助通信双方完成认证彼此并建立会话秘钥来保护后续的通信内容。口令认证与密钥协商(password-basedauthenticatedkeyexchange,pake)协议是ake协议的一种,仅仅通过一个低熵值的口令来完成通信双方彼此的认证和会话秘钥的建立。目前为止,pake协议应用广泛。pake协议最早被提出来应用在两方协议上,成为两方口令认证与密钥协商协议(two-partypassword-basedauthenticatedkeyexchange,2pake)。两方协议适合应用在客户端—服务器的环境里,但是并不适合应用在客户端—客户端环境。因为当客户端—客户端环境中存在很大数量的客户端时,任意两个客户端之间都需要维护一个共享的口令,每个客户端需要存储与之相关的所有共享口令,从而导致每个客户端都存储负载过重。为了避免该问题,将两方的口令认证与密钥协商协议发展为三方口令认证与密钥协商协议[10](three-partypassword-basedauthenticatedkeyexchange,3pake)。在3pake协议中,提供一台服务器作为任意两个通信客户端之间的媒介,每一个客户端只需要与服务器共享一个口令,从而极大地降低了客户端的存储量,解决了之前两方协议中的客户端负载过重的问题。

到目前为止,大量的基于chaoticmaps的pake还都是在研究两方的,研究三方的数量较少,最早的3pake协议是在2012年提出的。

目前的协议没有遭受恶意攻击,但是协议通信效率不是太高。另外,由于用户使用的口令往往过于简单,如123,abc等,所以3pake协议容易遭受字典攻击。为了保护口令的私密性,通常会使用服务器的公钥和对称加密。但是,这种方法就需具备密钥管理机制,还会增大系统的复杂性以及计算量的消耗。所以,需要设计既能够保证口令的安全,又能够避免使用公钥和对称加密这样复杂性和计算消耗都较大的方法,使协议性能、效率得到提升。

储存装置比如智能卡在3pake协议的设计中占有重要地位。将具有便携式、高效运算和加密的能力的储存装置应用于3pake协议常常可以降低协议的消耗。目前,越来越多的学者对在3pake协议中应用储存装置—智能卡,开展了大量的研究,智能卡一般是一张信用卡大小的塑胶卡片,内嵌一个涵盖微控制器、微存储器和小型操作系统的ic芯片,可以通过物理接触或者无接触的射频技术来与读卡器交换信息,并且具备存储数据、执行卡内程序的功能。



技术实现要素:

本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于高可靠智能卡的三方口令认证与密钥协商协议。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明提供一种基于高可靠智能卡的三方口令认证与密钥协商协议,其包括以下步骤:

a、初始化阶段:服务器s会选择一些初始参数,然后公开这些参数{p,α,h1(.),h2(.),h3(.),ids};

b、注册阶段:合法用户ui如果想要将自己的信息注册到服务器s上,会先发起注册请求,具体的步骤如下:

b1:ui选择自己的idi和密码pwi,然后将二者通过秘密途径发送给s;

b2:s选择一个随机数rsi∈r[1,p+1],计算rsi=(rsi(α)+pwi)modp;服务器s存储{idi,rsi}到数据库,并将{idi,rsi}通过秘密途径发送给用户ui;

b3:ui将rsi存入高可靠智能卡中;

c、认证和密钥协商阶段,假设有两个用户ua和ub想要认证彼此然后建立公共的会话密钥,具体过程如下;

c1:ua首先任意选择一个随机数ra∈r[1,p+1]并计算和rsa=rsa-pwa;ua再次计算has=h1(ida||idb||ids||ra||rsa),然后发送{ida,ra,has}给用户ub;

c2:ub随机选择一个数rb∈r[1,p+1]并计算和rsb=rsb-pwb;ub再次计算hbs=h1(ida||idb||ids||rb||rsb),然后将如下信息{ida,idb,ra,has,rb,hbs}发送给服务器;

c3:一旦收到从ub发送来的信息,s先验证has,hbs;如果二者均验证通过,s随机选择一个数rs,并计算hsa=h1(ida||ids||ra||rb||rs||rsa)和hsb=h1(idb||ids||hsa||ra||rb||rs||rsb);发送信息{hsa,hsb,rs}给ub;

c4:ub验证hsb,如果通过验证,计算和hba=h1(ids||hsa||k);将信息{rb,hba,hsa,rs}发送给用户ua;

c5:ua验证hsa,验证通过后计算进一步验证hba,验证通过后设置sk=h3(k)作为ua和ub的会话密钥;然后,ua计算has'=h1(ida||idb||ids||ra||rb||rs||rsa)和m=h2(k),发送信息{m,h'as}给用户ub;

c6:ub验证m,验证通过后计算sk=h3(k)作为本轮协议生成通信双方ua和ub的会话密钥;ub计算hbs'=h1(ida||idb||ids||ra||rb||rs||rsb),将信息{h'as,h'bs}发送给服务器s;

c7:s验证收到的信息h'as和h'bs的完整性,验证通过后s确认ua和ub已经建立了会话密钥;

在上述步骤a到c种,各符号代表含义为:ui为合法用户i;s为服务器server;idi为用户i的身份id;pwi为用户i的密码;h1(.),h2(.),h3(.)为三个单向哈希函数;sk为会话密钥。

本发明所达到的有益效果是:

本发明解决了互联网通信中通信双方信息的泄露、被窃取等不安全问题,并且在同类安全协议中有更高的性能和效率。本发明采用具备高可靠性的智能卡技术,该智能卡设备足以抵挡攻击者通过监测电量等边信道的手段来窃取智能卡中信息的攻击办法,即可以保证智能卡设备中信息的安全保密性。经过各种安全攻击验证后,找到满足以上条件的智能卡时,可以选择该协议实现认证与密钥协商的功能,在拥有极高的安全可靠性的同时还具备极佳的时间效能。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明认证与密钥协商阶段的流程示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

一种基于高可靠智能卡的三方口令认证与密钥协商协议,其包括以下步骤:

a、初始化阶段:服务器s会选择一些初始参数,然后公开这些参数{p,α,h1(.),h2(.),h3(.),ids};

b、注册阶段:合法用户ui如果想要将自己的信息注册到服务器s上,会先发起注册请求,具体的步骤如下:

b1:ui选择自己的idi和密码pwi,然后将二者通过秘密途径发送给s;

b2:s选择一个随机数rsi∈r[1,p+1],计算rsi=(rsi(α)+pwi)modp;服务器s存储{idi,rsi}到数据库,并将{idi,rsi}通过秘密途径发送给用户ui;

b3:ui将rsi存入高可靠智能卡中;

c、认证和密钥协商阶段(如图1所示),假设有两个用户ua和ub想要认证彼此然后建立公共的会话密钥,具体过程如下;

c1:ua首先任意选择一个随机数ra∈r[1,p+1]并计算和rsa=rsa-pwa;ua再次计算has=h1(ida||idb||ids||ra||rsa),然后发送{ida,ra,has}给用户ub;

c2:ub随机选择一个数rb∈r[1,p+1]并计算和rsb=rsb-pwb;ub再次计算hbs=h1(ida||idb||ids||rb||rsb),然后将如下信息{ida,idb,ra,has,rb,hbs}发送给服务器;

c3:一旦收到从ub发送来的信息,s先验证has,hbs;如果二者均验证通过,s随机选择一个数rs,并计算hsa=h1(ida||ids||ra||rb||rs||rsa)和hsb=h1(idb||ids||hsa||ra||rb||rs||rsb);发送信息{hsa,hsb,rs}给ub;

c4:ub验证hsb,如果通过验证,计算和hba=h1(ids||hsa||k);将信息{rb,hba,hsa,rs}发送给用户ua;

c5:ua验证hsa,验证通过后计算进一步验证hba,验证通过后设置sk=h3(k)作为ua和ub的会话密钥;然后,ua计算has'=h1(ida||idb||ids||ra||rb||rs||rsa)和m=h2(k),发送信息{m,h'as}给用户ub;

c6:ub验证m,验证通过后计算sk=h3(k)作为本轮协议生成通信双方ua和ub的会话密钥;ub计算hbs'=h1(ida||idb||ids||ra||rb||rs||rsb),将信息{h'as,h'bs}发送给服务器s;

c7:s验证收到的信息h'as和h'bs的完整性,验证通过后s确认ua和ub已经建立了会话密钥;

在上述步骤a到c种,各符号代表含义为:ui为合法用户i;s为服务器server;idi为用户i的身份id;pwi为用户i的密码;h1(.),h2(.),h3(.)为三个单向哈希函数;sk为会话密钥。

该协议可以抵抗很多已知攻击,其安全性分析如下。

(1)会话密钥的私有性:在该协议中,由于而数据ra只被用户a知道,数据rb只被用户b知道,用户a和用户b通过信息传输实现共享信息ra和rb,所以会话密钥sk仅为a和b共享。

(2)客户端与服务器之间的身份认证:服务器端和客户端需要辨认出对方身份的真实性。在本协议中,服务器端验证has和hbs的正确性,如果通过则认为a和b是合法的正确的用户,a和b分别验证hsa和hsb的正确性,如果验证通过则认为s是合法的正确的用户。

(3)客户端之间的身份认证:客户端之间的身份认证是指通过可信任的第三方服务器在不安全的网络信道内完成两个相对应的通信方的身份认证。在该协议中,a通过验证hba的正确性与否来判断b的合法性,b通过验证m的正确性来判断a的合法性。

(4)前向安全性:在该协议中,秘密信息rsi存在高可靠智能卡中,因此即使e拿到口令,也不知道rsi。每轮协议运行时,用户都会选择新随机数ri,从而使每轮会话密钥都是新鲜性。持有窃取到的口令和秘密信息rsi的攻击者仍然需要去获取特殊的随机数ri。因此该协议具备前向安全性。

(5)不需维护口令数据表:在该协议中,服务器s只需要将数据{idi,rsi}保存在自己的数据库内,却不去保存用户的口令。所以该协议不需要维护口令数据表。

(6)抵抗已知会话密钥攻击:该协议中,会话密钥仅依赖于随机值r1和r2。由于每轮会话中这两个随机值是各自独立的,所以假设攻击者能够得到某次生成的会话密钥仍然不能得到其他时候生成的会话密钥(因为其他会话中的r1′和r2′是用户随机选择的具备新鲜性的数据)。

(7)抵抗口令猜测攻击:正如前述部分所提到的,一些3pake协议遭受口令猜测攻击。在协议中,与口令相关的值rsi只有用户自己知道,外界无法得到;另外,协议中能够得到的传输信息has=h1(ida||idb||ids||ra||rsa)(其中rsa=rsa-pwa是存储在数据库中的)。因此,想要猜测出用户a的口令pwa是很困难的,即该协议能够抵抗这个攻击。

(8)抵抗伪造攻击:如果攻击者e想要伪造用户a,必须要窃取到a的关键值rsa=rsa-pwa,然而由于a的口令pwa和秘密信息rsa是只有a知道的,所以e获取rsa是不可能的。因此,如果攻击者使用某种技术手段窃取到信息{ida,ra,has}也仍然无法伪造用户a。同样,e也无法伪造用户b。因此,该协议能够抵抗该攻击。

(9)抵抗中间人攻击:在本协议中通信方a和s之间通过共享秘密信息rsa达到认证目的,通信方b和s之间通过共享秘密信息rsb达到认证目的,而通信方a和b通过k达到认证目的,所以能够抵抗这个攻击。

(10)抵抗重放攻击:由于在该协议中,每一轮协议的运行都会生成新的ra,rb和rs,所以当收到旧信息时,通信方不会验证通过,从而攻击者无法实施重放攻击。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1