安全高效的三因素远程身份认证协议
2022-05-28黄朝阳赵玉超
黄朝阳,赵玉超
(厦门海洋学院信息工程学院 福建 厦门 361100)
在信息安全的“木桶理论”中,作为“桶底”的身份认证的重要性不言而喻。近年来,加密技术和身份认证技术发展突飞猛进,各种具有不同安全性能和运算复杂度的密码体制不断涌现;从单一口令认证到结合智能卡、生物特征的多种因素身份认证技术层出不穷。但由于网络环境的开放性和多种不可靠因素的迭代,身份认证协议面临各种形式多样的攻击威胁[1],从而导致身份认证协议的分析和设计存在客观的复杂性。而正是在这种安全技术攻防易手的进程中,不断有新的更为安全高效的远程身份认证方案展现出来。
智能卡具备方便安全的特性,生物特征有其特有的唯一性[2-3],结合智能卡及生物特征的多因素身份认证方案一直是身份认证技术研究的热点,先后涌现出多种改良的多因素身份认证协议[4]。
2010 年,文献[5]提出了一种只使用少量异或运算和杂凑运算的的智能卡多因素身份认证协议,并证明了该协议具有高效性。2011 年,文献[6]分析并证明了上述协议存在的漏洞,并设计一种安全性更高的多因素身份认证协议。随后,文献[7]证明此协议也不能抵抗若干种已知攻击,为修补所发现的缺陷,给出了改良的多因素身份认证协议。文献[8]指出文献[7]的运算复杂度较高,且存有多种安全漏洞,给出了更为安全高效的多因素身份认证协议。
本文首先分析了文献[8]提出的身份认证协议,指出该协议存在的安全漏洞,然后给出一种新的三因素远程身份认证协议。新协议引入标准的挑战/应答机制,使用椭圆曲线点乘运算替换文献[8]协议中的模幂运算,由Hash 函数的单向性、椭圆曲线离散对数难题和生物特征的安全特性保证协议具备更高的安全性能。经分析证明,新协议能抵御各种已知攻击,并具备更高的运算效率,还支持协商生成认证双方后续所需的一次性会话密钥。
1 现有认证协议[8]的安全性分析
现有认证协议[8]的安全漏洞分析如下,协议中所用符号如表1 所示。
表1 符号标记与含义
1.1 无法抵御MITM 攻击
MITM(man-in-the-middleattack)攻击亦为中间人攻击[10-11],指敌手阻拦截取并再次发送公共信息上的认证消息,同时令正常参与认证的双方彼此都还以为是直接在与对方通信。假定现有一敌手Uatt,他有能力阻拦截取认证双方的交互信息,那他就可能实现下述的MITM 攻击。
1)Uatt阻拦截取Ui传递给S的认证消息Mess1={DIDi,A,Ci,T1},同 时 启 动 一 个 新 的 与S间 的 会话,把伪认证消息Mess1'= {DIDi,A,Ci,T1}传递给S。
1.2 无法实现安全的双向身份认证
上节中敌手Uatt可成功顶替合法用户的身份实现服务器欺骗,同时也实现假冒服务器身份实现用户欺骗。所以文献[8]的方案无法实现安全的远程双向身份认证。
图1 针对文献[8]协议MITM 攻击的细节
2 新的三因素远程身份认证协议
本文采用椭圆曲线点乘运算改进文献[8]协议中所使用的模幂运算,并将挑战/应答机制引入其中,提出一种新的基于口令、智能卡和生物特征的三因素远程身份认证及密钥协商协议。协议通过下述步骤实现注册、双向认证和密钥协商。协议中所用符号如表1 所示。
2.1 用户注册
1) 用户Ui选定某一高熵随机数RUi,再结合帐号IDi、安全口令PWi,计算得出I= Hash(PWi||RUi),Ui发送注册请求消息{IDi,I}。
2)S接收Ui发来的注册消息{IDi,I}后,计算W=Hash(IDi||Kpri_s)⊕I,计算Y=Kpri_s·p,并公开发布Y。S将{W, Hash(·),p,g,Y}存储到Ui的智能卡SCi中,并将SCi分发给Ui。
3)Ui接收智能卡SCi。Ui输入自己的生物特征Bi,计算获取Gen(Bi) = (δi,θi),E= Hash(δi)⊕RUi,V= Hash(IDi|| PWi||RUi);最后把{θi,E,V}存入SCi。图2 为新协议的注册阶段细节。
图2 新协议的注册阶段细节
2.2 登录与双向认证
用户Ui和服务器S通过下列步骤实现双向认证和密钥协商。
图3 新协议的登录和认证阶段细节
2.3 口令更新
用户Ui随时可以在没有S参与的前提下通过以下步骤完成口令更新操作。
2.4 撤销智能卡
Ui的智能卡被盗或丢失时,可以通过下列步骤撤销并重新获取合法的智能卡SCinew。
1)Ui选定另一高熵随机数RUi*、另一帐号IDi*以及新的口令PWi*,据此计算得到I* =Hash(PWi* ||RUi* );将新的注册消息{I* , IDi* }经过可靠信道发给S。
2)S接收Ui发来的注册消息{IDi*,I* }后,重新计算W* = Hash(IDi* ||Kpri_s)⊕I*。S将{W*, Hash(·),p,g,Y}存 储 到Ui的 智 能 卡SCinew中,并 将SCinew分发给Ui。
3)Ui接收智能卡SCinew。Ui输入自己的生物特征Bi,计算获取Gen(Bi) = (δi,θi),E* = Hash(δi)⊕RUi*,V* = Hash(IDi* || PWi* ||RUi* );最后把{θi,E*,V* }存入SCinew。
2.5 会话密钥的协商
3 安全性分析
本文协议能抵御多种已知攻击,具有较高的安全性能,同时支持协商生成认证双方后续所需的一次性会话密钥,分别在命题1~12 中加以证明。
命题1 协议能保障智能卡遗失时的安全性
证明:假设敌手Uatt获取用户Ui的智能卡SCi,并通过公共信道非法获取认证双方的所有消息,通过差分能量攻击[12]从中成功提取W= Hash(IDi||Kpri_s)⊕Hash(PWi||RUi),E= Hash(δi)⊕RUi,V= Hash(IDi|| PWi||RUi)。但本协议把智能卡中所存储的信息设计为上述的非明文形式,基于Hash函数的单向安全性,且因为用户生物特征Bi存在唯一性而不可伪造,同时因Uatt并未掌握S的私钥Kpri_s,Uatt想通过口令猜测攻击取得PWi无法实现,所以协议能保障智能卡遗失时的安全性。
命题2 协议能抵御假冒攻击
证明:本协议所设计的登录请求消息格式为Mess_request = {DIDi,D,Ci},Uatt若 要 假 冒Ui获取S的成功认证,就必需同时掌握Ui的生物特征Bi、帐号IDi和口令PWi信息,才能生成Mess_request的组成要件Ci= Hash(IDi||M||D||F)并向S发送正确的登录请求消息,这一假设明显不成立,所以Uatt无法假冒用户Ui骗取服务器S的认证。
命题3 协议能抵御冒充服务器攻击
证明:本协议所设计的服务器挑战信息为挑战消息Mess_challenge = {realm, Auth_S,H},敌手因不能掌握S的Kpri_s,无法生成Auth_S合法的组成要件F'=Kpri_s·D,在用户对服务器的认证阶段必然被发现。因此敌手无法实现冒充服务器攻击。
命题4 协议能抵御知识窃取类内部威胁
证明:本协议设计为在服务器的数据库中并未存储协议参与方任何的相关信息,因此知识窃取类内部威胁对本协议无效。
命题5 协议能抵御篡改攻击
命题6 协议能抵御离线口令猜测攻击
证明:假定敌手在公共信道上截取认证过程的所有交互消息,同时取得Ui的SCi,并且利用差分能量攻 击从中成功提取W= Hash(IDi||Kpri_s)⊕Hash(PWi||RUi),E= Hash(δi)⊕RUi,V= Hash(IDi||PWi||RUi)。由以上本协议所设计的在公共信道上所传输的消息格式可知,离线口令猜测过程中若要验证所猜测的口令值是否正确,则必须用到RUi。但是RUi= Hash(δi)⊕E,必须拥有Ui的唯一生物特征Bi才可以提取并获得δi= Rep(Bi,θi),而敌手并未掌握Ui的生物特征Bi,所以敌手的离线口令猜测攻击必将失败。
命题7 协议能抵御重播攻击
/
证明:在本协议所设计的挑战 应答模式的整体框架下,能对Ui的请求消息Mess_request ={DIDi,D,Ci}给出正确回复的只能是合法的S。同时,能对S的挑战消息Mess_challenge = {realm,Auth_S,H}给出正确应答的也只能是Ui本身。所以重播攻击对本协议无效。
4 效率分析
4.1 运算量比较
字符串连接操作和异或运算的运算量很小,与协议中的其他运算相比可以忽略不计。这里主要考量协议在登录、认证和密钥协商过程中的模幂运算、点乘运算和Hash 运算的运算量。协议的口令更新和智能卡撤销为偶然性操作,其运算量也不在认证过程运算复杂度考量范围之内。表2 给出了文献[8]等协议和本文协议的主要运算量比较。表中,Te 为模幂运算,Ts 为点乘运算,Th 为Hash运算。
4.2 安全密钥位比较
从表2 可以看出文献[8]等协议和本文协议在运算次数上并没有显著差别。但文献[13-15]显示,在相同的密码安全强度下,椭圆曲线所需的密钥量比RSA 所需的密钥量低得多。两者安全密钥位的比较如表3 所示。
表2 各协议的主要运算量比较
表3 相同安全性能下RSA 和ECC密钥位的比较
4.3 仿真实验比较
远程身份认证协议的服务器通常需要同时处理多个登录认证请求,因此服务器的运算量对整个协议的效率影响最大[16]。如表2 所示,文献[8]协议的登录和认证过程在服务器端所需运算量为3Ts+4Th,而本文协议相应过程在服务器端所需运算量为3Ts+5Th。在运行平台Windows 7、Intel i7 2.8 GHz、RAM 16 G,Matlab 环境中,仿真这两种协议的登录和认证过程在服务器端的主要运算耗时,结果图4 所示。
图4 两种协议在服务器端的主要运算耗时测试结果
在提供相同安全强度的前提下,本文协议使用的椭圆曲线点乘运算与文献[8]等协议中所使用的模幂运算相比较,具备速度更快的优势。而且,随着密钥长度的增加,这一优势将更为明显。
综上所述,本文协议具备更高的运算效率。
5 应用场景分析
对于采用“一次一密”思路的远程身份认证体系来说,最大的困难不只是大量密钥的生成和管理,如何低成本地安全传递密钥才是关键问题。本文方案可以自动协商产生后续一次性会话密钥,且会话密钥由认证双方根据认证过程信息自动生成,无需再次通过安全通道传递,可以有效解决上述问题。
一种远程身份认证方案的安全性能越高,所要求的运算量、带宽要求、应用成本等各种认证开销也越高。如何找到在认证安全性能与认证开销之间达到符合认证安全实际需求的平衡点至关重要。本文协议是基于口令、智能卡和生物特征的三因素身份认证方案,其在认证安全性能与认证开销之间获得了一个较好的平衡点,可以应用于高等级的安全部门认证场景,如电子银行、电子证券、电子商务、电子政务、智能电网的远程身份认证。
6 结 束 语
本文针对文献[8]提出的多因素认证协议展开研究,证明其存在的安全缺陷。然后,将标准的挑战/应答机制引入其中,并采用椭圆曲线点乘运算改进文献[8]协议中所使用的模幂运算,提出了新的基于口令、智能卡和生物特征的三因素远程身份认证方案。通过多种非形式化的安全分析证明,新的三因素远程身份认证方案对于假冒攻击、篡改攻击、服务器伪装攻击、口令猜测攻击、重播攻击、Denning-Sacco 攻击和MITM 攻击等多种常见攻击是安全的。新方案在提供双向认证的同时还支持认证双方后续会话所使用的一次性密钥协商,仿真实验证明了本文方案具有更高的运算效率。