基于服务器私人密钥轻量级的身份验证协议

2018-11-17 01:48李祉岐
计算机工程与设计 2018年11期
关键词:匿名性智能卡身份验证

李祉岐,孙 磊,闻 凯

(1.北京国电通网络技术有限公司,北京 100070;2.南京航空航天大学 自动化学院,江苏 南京 210016)

0 引 言

随着信息技术的快速发展,各种高效网络服务机制为人们提供方便,也带来了一些安全问题,如云存储免除了远程用户对存储空间的担忧,但要求较高的网络安全性和资源保护性,而身份验证协议可对远程用户进行身份验证,防御试图破坏网络安全的恶意攻击[1,2]。由于身份验证协议的紧迫性和重要性,其研究具有重要的商业价值和社会意义。

迄今为止,研究人员已经提出了很多身份验证协议。常见的有“单因子”身份验证协议[3],即服务器将用户密码的散列数值存储在数据库中,在用户登录时验证身份信息。该方法简单高效,但易于受校验值丢失攻击。为抵御校验值丢失攻击,研究人员通过智能卡,删除服务器上的用户表,使用密码和智能卡的“双因子”身份验证协议[4,5]。该类协议一定程度上提高了网络安全性,但在面对冒名攻击时并不安全。Wang等[6]证明了上述协议不能抵御口令猜测攻击、已知密钥攻击等。Cui等[7]和Rong等[8]也对协议进行了改进,但存在可追踪性,因为用户ID在所有登陆请求消息中不变。Shi等[9]提出了一种基于动态身份的验证协议,以解决之前的问题,并提供不可追踪性。近期,Kaul等[10]对易受冒名、拒绝服务攻击,且没有提供密钥协商和不可追踪性的协议问题进行改进,提出了一个身份验证协议。本文对该协议进行分析,证明其存在的安全性问题;同时,为克服这些缺陷,提出一种高效安全的轻量级身份验证协议。本文的主要工作总结如下:①对已有协议进行分析,证明其不能抵御离线密码猜测攻击,且没有提供用户匿名性;②提出一种轻量级身份验证协议,提高协议安全性和执行效率。

1 协议漏洞分析

本小节主要对文献[10]协议的缺陷进行分析。该协议包括4个阶段:注册、登录、身份验证和密码更改。由于篇幅较大,具体步骤详见文献[10]。

本文所使用的符号说明见表1。

表1 符号说明

1.1 离线密码猜测攻击漏洞

在Kaul等[10]提出的协议中,如果攻击者窃取了用户的智能卡,则其能够以离线的方式猜测该智能卡的密码。在得到智能卡及其密码后,攻击者可以冒充合法用户窃取相关服务。假定攻击者已经窃取用户的智能卡,猜测该智能卡密码的步骤如下。

步骤1 攻击者从智能卡的内存中对Ai、Mi、Yi、Di、Ei和h(·)进行检索[11,12]。

1.2 用户匿名性漏洞

在Kaul等[10]提出的协议中,每个合法用户都可以通过窃听通信信道,并对其他用户的登录请求消息进行分析,得到其他用户的真实身份标识,并不能提供用户匿名性。用户Ui可以通过下列步骤,得到用户Uj的真实身份标识。

2 提出的协议

针对目前协议存在的问题,本文提出一种安全身份验证协议,该协议包括3个阶段:注册、登录和身份验证、密码更改。

2.1 注册阶段

在注册阶段中,根据如下步骤向用户Ui分配智能卡。如图1所示。

图1 协议注册阶段

步骤3 当用户端接收到智能卡时,其将步骤1中随机选择的数值r存储到该智能卡中。

2.2 登录和身份验证阶段

该阶段中,用户端和服务器相互认证,就会话密钥达成一致。在身份验证后,用户和服务器能够使用商定的会话密钥对消息进行加密和认证。其主要流程如图2所示。下面介绍具体步骤。

图2 登录和身份验证阶段

2.3 密码更改阶段

该阶段中,用户可以进行密码更改。将智能卡插入读卡器,并输入身份标识和当前密码。之后,智能卡进行如下步骤。

步骤1 该步骤与2.2节中步骤1相同。

步骤2 该步骤与2.2节中步骤2相同。

3 性能分析与比较

本节首先证明协议的正确性;然后分析提出协议在抵御已知攻击时的性能表现;接着分析其时间复杂度,并与其它安全协议进行比较。

3.1 协议正确性的证明

本节将使用BAN逻辑[14]证明提出协议的正确性。BAN逻辑是对身份验证协议进行分析的一种形式化方法。该逻辑存在一些规则,定义如下。BAN逻辑分析中使用的符号见表2。

表2 BAN逻辑分析中使用的符号

根据BAN逻辑的程序,提出的协议必须实现以下目标:

(1)目标1:Ui|≡(Ui↔SKS)。

(2)目标2:S|≡(Ui↔SKS)。

为使用BAN逻辑,提出的协议被转换为如下的理想化形式。

(1)Message 1:Ui→S:({IDi,N}x,{IDi,RNi,Ti,{IDi,N}x}Ai)。

为了对提出的协议进行分析,本文做出以下关于提出的协议的初始状态的假设:

(1)A1:Ui|≡(Ui↔AiS);

(2)A2:S|≡↔AiUi;

(3)A3:Ui|≡#(RNi);

(4)A4:S|≡#(RNS);

(5)A5:Ui|≡S⟹(Ui↔SKS);

(6)A6:S|≡Ui⟹(Ui↔SKS);

基于BAN逻辑规则和假设,本文对提出的协议的理想化形式进行了分析。

根据Message 1,可以得到:R1)S◁({IDi,N}x,{IDi,RNi,Ti,{IDi,N}x}Ai)。

基于假设A7,在将消息含义规则应用到R1后,可以得到:R2)S|≡Ui|~(IDi,RNi,Ti,{IDi,N}x)。

基于假设A5,在将管辖权规则应用到R6后,可以实现第一个目标:R7)Ui|≡(Ui↔SKS)(目标1)。

基于假设A7,在将消息含义规则引用到R8后,可以得出:R9)S|≡Ui|~(RNS,RNi)。

基于假设A4,在将临时值验证规则引用到R9后,可以得出:R10)S|≡Ui|≡(RNS,RNi)。

根据假设A6,在将管辖权规则应用到R11后,可以实现最后一个目标:R12)S|≡(Ui↔SKS)(目标2)。

3.2 协议安全性分析

3.2.1 重放攻击

3.2.2 离线密码猜测攻击

3.2.3 用户冒名攻击

3.2.4 服务器冒名攻击

3.2.5 提供用户匿名性

3.2.6 会话密钥的安全性

3.3 时间复杂度

本节对本文协议的时间复杂度和执行时间进行分析。操作系统为32位Ubuntu操作系统,2.2 GHz CPU、2.0 GB RAM。为了更方便地对协议复杂度进行分析,定义不同操作的标识符:fEN/DE表示进行一次对称加密/解密操作;fHash表示进行一次散列操作;fXOR表示进行一次异或操作。

本文提出协议的注册阶段需要进行1次对称加密操作、2次散列化操作和1次异或操作。因此,提出的协议在注册阶段的时间复杂度为fEN/DE+2fHash+fXOR。在身份验证和密钥协商阶段,需要进行6次加密/解密操作,6次散列化操作和1次异或操作。因此,身份验证阶段的时间复杂度为6fEN/DE+6fHash+fXOR。时间复杂度总计为7fEN/DE+8fHash+2fXOR,执行时间为49.8 μs。

3.4 与其它协议的比较

为了说明本文提出协议的良好性能,将其安全性功能和时间复杂度与其它3种协议进行比较。

表3给出本文协议与其它协议之间的安全性比较。表4给出不同协议的时间复杂度和具体执行时间。可以看出本文协议能够抵御各种攻击,且提供用户匿名性。文献[8]协议的执行时间最短,但不能抵御离线密码猜测攻击,且未提供用户匿名性和会话密钥安全性。文献[10]协议不能抵御离线密码猜测攻击,且没有提供用户匿名性。文献[9]协议提供了用户匿名性,但执行时间要高于本文和其它协议,且不能抵御离线密码猜测攻击。可以看出,本文提出的协议能够抵御各种安全性攻击,提供会话密钥的安全性和用户匿名性,且执行时间适中,因此更适用于真实应用。

表3 各协议的安全性

表4 各协议的时间复杂度和执行时间

4 结束语

本文对已有的身份验证协议不能抵御离线密码猜测攻击,且没有提供用户匿名性的问题进行分析。针对存在的缺陷,提出一种改进的身份验证协议。所有发送信息中均不包含密码,且设置服务器私人密钥,抵御离线密码猜测攻击。同时提出的协议中,用户身份标识在每个会话中存在差异,攻击者无法对用户的行为进行跟踪。通过与其它协议比较,本文协议能够抵御已知的安全性攻击,且提供了用户匿名性。同时执行时间适中,是一种轻量级身份验证和密钥协商协议,适用于资源受限环境。

猜你喜欢
匿名性智能卡身份验证
东方磁卡李晓东:进击的智能卡研发巨子
基于STC89 单片机的非接触智能卡读写机设计
去个体化心理分析
微信弹性社交中的失范行为分析
临沂机顶盒智能卡升级方案介绍
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
智能卡领域首个国家工程建设标准发布
基于概率论的发送者匿名性度量模型
网民特性及媒介素养探析
身份验证中基于主动外观模型的手形匹配