1. 引言
随着无线通讯技术的不断发展,如今选择使用智能设备访问网络来获取信息的人数日趋增多。而用户在使用无线移动互联网络(Wireless Mobile Internet, WMI)时往往很容易受到攻击等各种各样的安全问题,如无线网络的开放性较高,传输信号不稳定,鲁棒性较差,且无线网络的拓扑结构是动态的等。导致用户在使用无线网络时易受到主动干扰、被动窃听信息数据、在无线网络环境下攻击者通过使用假基站诱使用户与其进行认证而获取用户的身份信息等。这使得构建一个安全高效的匿名认证方案成为了热门话题。
现有的无线网络匿名认证方案主要分为基于共享密钥和基于非共享密钥两种。现有方案大多是基于非共享密钥的,此类匿名认证方案主要是通过签名算法 [1] [2]、公钥算法 [3]、零知识证明 [4] 等算法来实现匿名。但此类方案计算量较大、对储存空间要求较大、不适用于无线网络环境。目前匿名认证方案主要通过假名机制 [6]、HASH机制 [7] 等途径来实现匿名认证,而少部分是基于共享密钥的匿名认证方案 [5]。
文献 [6] 中Li基于非共享密钥提出了一种使用k-假名集合来实现匿名性的轻量级无线匿名认证协议。文献 [8] 通过研究发现在Li所提的匿名认证协议中,认证服务器对用户认证请求的处理时延会导致用户身份的泄露,之后提出了一个有分组机制的改进Li协议的匿名认证方案。本文对改进了的Li协议的匿名认证进行分析,发现此方案中并没有找到一个合理的分组机制,且方案中存在服务器需对用户所在组GID进行遍历才能验证用户身份的情况,导致此认证方案较为低效,故本文将在此基础上提出一个更为高效与安全的匿名认证方案。
现对本文中所用到的一些匿名认证算法中的符号含义进行简单的介绍,具体的内容如表1所示。
Table 1. The comparison table for protocol symbols
表1. 协议对照表
2. 改进的轻量级匿名认证协议方案
本协议需要认证服务器预先给用户进行序号分配,并将序号通过安全信道分发给用户,代替了原协议中将用户进行分组并将用户所在组的组标识发送给用户这一过程。在本协议中,服务器和每个用户都拥有自己的公钥以及私钥,用户在请求认证时,将由用户私钥及认证服务器的公钥加密后的随机数、排序序号等认证信息发送给用户,认证服务器经认证服务器私钥和用户公钥反解出该序号,计算认证信息并验证用户信息,从而完成服务器对该用户的认证,用户与认证服务器的具体流程如图1所示。
step1 用户®认证服务器
首先由用户请求开始匿名认证,消息内容是32比特长的字符串信息。
step2 认证服务器®用户
认证服务器收到用户发送的请求消息。产生随机数SNonce发送给用户,长度为64比特。
step3 用户®认证服务器
该步骤与原协议的计算方法有所不同,随机数SNonce到达用户端后,用户生成随机数CNonce,然后计算NC,MC。规定NC,MC的计算公式分别如下
其中e1,d2分别为认证服务器的公钥和用户的私钥,公式中“||”是字符串联接符,N为用户序号,ID为用户真实身份标识。
用户发送MC,CNonce,NC,L到服务器进行认证。
step4 认证服务器®用户
匿名认证服务器接收用户发送的MC,CNonce,NC,L。首先依据d1(L)反解出用户的公钥e2,然后再根据d1e2(NC)反解出N,然后计算服务器中第N位用户的
并验证是否与MC相等,其中
若相等,则认证成功;若不相等,则认证失败。
若认证成功,则服务器计算
并将MS发送给用户,用户收到消息后,以相同方式计算MS’然后进行比对,若相同,则客户端认证服务器成功,否则即是失败。
Figure 1. The improved lightweight anonymous authentication protocol
图1. 改进的轻量级匿名认证协议
3. 安全性分析
3.1. 抵抗时间关联攻击
Li所设计方案中在认证过程中虽然使用了k-假名集合,但是在认证过程中直接以明文的方式发送了包含用户的真实ID的假名集合给认证服务器,且容易被攻击者截获,通过文献 [8] 可知,攻击者可通过认证时间来判断用户真实ID在假名集合中的位置,从而便可进一步确定用户真实身份,造成用户隐私信息泄露。
本文方案使用公私钥以及Hash机制对用户的身份信息进行加密,由于Hash机制为单向函数,故攻击者不可依据所截取的认证消息反解出用户的身份等信息,进一步保证了用户的不可追踪性,因此可以保证用户的隐私安全。
3.2. 抵抗重放攻击
本文所设计匿名身份认证协议的交互过程引入了挑战-应答机制。保证了认证过程中传输消息的新鲜性。认证服务器收到用户发来的认证请求后发送一个随机数SNonce给用户。用户使用共享密钥和SNonce生成一条认证消息MC,并将MC和自己生成的随机数CNonce发往认证服务器。认证服务器用共享密钥计算MC与MC比较即可知道该消息是不是具有新鲜性。因为只用相同的随机数计算的消息才会相同,而认证服务器使用的是最新产生的随机数。同理用户也可以通过自己产生的随机数CNonce验证服务器发来的消息是否具有新鲜性,因此可以抵抗重放攻击。
3.3. 抵抗伪装攻击
本文所设计匿名身份认证协议通过公私钥加密来抵抗伪装攻击。用户在认证之前需要先到认证服务器注册。然后获得自己所在服务器中的用户序号,交互过程中用户发送认证消息MC到认证服务器。认证服务器使用服务器的私钥反解出用户的公钥,再运用用户的公钥服务器的私钥反解出用户序号,进而依据
公式生成消息
与MC进行比较。因为用户的私钥和服务器的私钥只有用户和认证服务器拥有,而攻击者没有,因此若
与MC相等则可证明该消息是来自用户的,且引入的挑战–应答机制避免了消息的重放攻击,因此能抵抗攻击者伪装合法用户。同理用户亦可通过消息MS来识别认证服务器是否被伪装。基于上述分析可知所设计匿名认证协议能够抵抗攻击者的伪装和对认证服务器的攻击。
4. 性能分析
4.1. 认证时间
认证时间是评估一个身份认证协议性能的重要标准。基于Li协议的轻量级匿名认证协议通过在服务器端对用户分组来进行认证,而在认证过程中会出现服务器需要遍历GID的情况,故此协议用户分组的大小是影响认证时间的重要因素。
本文所提出的改进的轻量级匿名认证协议方案选择利用公私钥对进行加密从而避开了用户分组机制中对用户分组方式不明确以及在服务器认证用户阶段时遍历GID导致的认证效率低下的问题,从而减少了认证时间,提高了认证效率。
4.2. 计算量
计算量指的是认证过程中计算认证消息所需计算量,分别为用户端计算量和认证服务器端计算量。用户在认证过程中需要进行的计算主要包括以下内容:
1) 用户端计算量包括2次异或运算、2次Hash运算和2次随机数运算;
2) 认证服务器端计算量包括2次异或运算、2次Hash运算和1次随机数运算。
根据上述计算量统计,并与现有的基于共享密钥的研究进行对比,对比结果如表2所示。可以看出本文所设计出方案在保证上述优点的同时并不增加计算量,并且通过合理的设置认证服务器端用户分组大小,可以保证用户端和认证服务器端的性能。
其中r表示用户真实身份标识在假名集合中的具体位置,n表示用户分组大小。上述性能测试与评估结果表明所设计匿名认证协议具有认证时间短、计算量小、所需存储空间小的特点,因此该方案具有轻量级的特点,能更好的适用于无线网络环境。
5. 结论
本文简单介绍了基于Li协议的轻量级匿名认证协议的缺陷,即在认证过程中认证服务器存在需遍历用户所在分组GID才可完成认证的情况,且并未对如何确定有效合适的GID分组方法进行具体研究。通过引入用户与认证服务器的公私钥,提出了一种改进的轻量级匿名认证方案。本文所设计的认证方案能够抵抗时间关联等攻击,同时也规避了无法有效合理地将用户分组的问题,并通过安全性及性能分析,证实了本文所提的改进的轻量级匿名认证方案具有较强的安全性,同时具备轻量级且高效的特点。
基金项目
河南省高等学校重点科研项目(项目编号:20A520012);河南科技大学大学生研究训练计划(SRTP)项目(项目编号:2019201)。