基于ECC点乘的多因子远程身份验证协议

2018-11-17 01:48刘黎明
计算机工程与设计 2018年11期
关键词:智能卡身份验证攻击者

王 超,刘黎明

(南阳理工学院 软件学院,河南 南阳 473004)

0 引 言

远程用户身份验证[1]可分为两种环境,即单服务器环境[2,3]和多服务器环境[4,5]。单服务器环境中,用户必须注册到每个应用服务器。因此,单服务器环境的主要问题是用户必须记住许多私有信息(如身份标识和密码),以访问多个应用服务器。多服务器的身份验证方案可解决上述问题,其允许用户通过单次注册就可以访问多个应用服务器。

身份验证方案使用的密码函数众多,如单向散列函数、双线性对、ECC密码[6]、RSA密码[7],以及一些其它运算,如模糊验证、生物-散列函数、异或运算等。目前很多身份验证方案基于上述函数和运算,如Pippal等[8]使用模指数运算的双因子身份验证方案,在计算成本上具备高效性,但该方案不能抵御密码猜测攻击和冒充攻击。Liao等[9]提出了一个用于移动应用的多服务器远程用户身份验证方案,使用双线性配对运算。Hsieh等[10]对文献[9]的方案进行了分析,发现其不能抵御跟踪攻击,为此,提出了一个改进方案,但其通信成本和智能卡储存成本更高。崔维等[11]提出一种轻量级的动态化密钥协商的身份认证协议。该协议在用户进行登录验证时使用时间戳值,可防范重放攻击以及拒绝服务攻击。屈娟等[12]指出文献[13]易受智能卡丢失攻击、服务器模仿攻击,且不能保护用户的匿名性。为此,提出了一种基于生物特征和扩展混沌映射的多服务器认证方案。

当前,很多研究者利用ECC和双线性配对方法进行多服务器身份验证。值得一提,双线性配对的执行时间要大于点乘运算,其复杂度要高于点乘运算。因此,本文提出了一个用于多服务器环境的三因子远程用户身份验证协议,使用了ECC点乘运算和散列函数。与其它相关方案相比,所提协议更加安全和高效。

1 本文提出的方案

本文的远程用户认证方案使用了3个因子:密码、智能卡和生物统计信息。该方案包含以下5个阶段:初始、注册、登录、身份验证和密码更改阶段。三方实体分别为:用户Ui,服务器Sj,以及注册中心RC。表1给出了本文使用的符号。

表1 本文使用的符号

1.1 初始阶段

该阶段执行以下步骤:

(1)RC在素域Fp上选择一个椭圆曲线Ep(a,b),并在曲线上选择一个点e1;

(2)RC选择一个整数d,并计算e2=d×e1;

(3)RC选择一对(x,y)并宣布{x,y,d}为其私有密钥,且{E,e1,e2}为公开已知参数。

1.2 服务器注册阶段

通过注册中心注册到一个服务器Sj上,需要执行以下步骤:

(1)服务器Sj自由选择其标识SIDj,并通过一个可靠信道将其发送到注册中心RC;

(3)在收到来自RC的{KSR1}后,Sj将其保留为保密参数。

1.3 用户注册阶段

注册一个新用户到系统需要执行以下步骤。

(1)用户Ui将其生物信息bi和密钥输入其标识IDi和密码PWi中;

(6)RC将参数{P1,P2,Li,Vi,h(·),H(·)}存储在智能卡中,并通过一个可靠信道将其发送给Ui;

1.4 登录阶段

当Ui希望登录到远程服务器Sj时,需要执行以下步骤:

(1)用户Ui将智能卡插入终端,并输入其生物统计信息bi和密钥IDi、PWi;

(4)智能卡生成一个随机的临时值Ni,并计算

式中:T1为当前时间戳。

(5)最后,Ui通过一个不可靠信道,将登录请求消息{M1,M2,M3,M4,T1}发送至RC。

1.5 身份验证阶段

本阶段执行以下步骤:

(1)RC在时间T2接收到用户Ui的登录请求消息{M1,M2,M3,M4,T1},首先RC检查T2-T1≤ΔT是否成立,式中ΔT为预期时间间隔。若不成立,则RC终止会话;

(5)在时间T4接收到来自RC消息后,Sj计算T4-T3≤ΔT是否成立。若不成立,则终止会话;

(8)在收到来自Sj的消息后,Ui检查T6-T5≤ΔT是否成立。若不成立,则终止会话。

1.6 密码更改阶段

当用户Ui希望对其密码进行更新时,需要执行以下步骤。

(1)用户Ui将智能卡插入终端,并输入其生物统计信息bi和密钥IDi、PWi;

2 协议的BAN逻辑证明

为了验证所提协议的正确性,本文参考了BAN逻辑证明的基本规则和符号说明[14]。基于这些规则,做如下操作。

步骤1 为证明提出的协议的准确性,其需要实现以下6个目标。

步骤2 提出的方案转化为理想形式如下:

消息1:M1,M2,M3,T1,M4:AIDi;

消息2:M5,M6,M7,M8,T3,M9:RPWi;

消息3:T5,Ci,M10:h(RPWi||Ni)。

步骤3 为进一步分析,考虑9个假设如下:

假设1:Ui|≡#{Ni,Nr,Ns};

假设2:Si|≡#{Ni,Nr,Ns};

假设3:RC|≡#{Ni,Nr,Ns};

假设7:RC|≡Ui⟹Ni;

假设8:Sj|≡RC⟹Nr;

假设9:Ui|≡Sj⟹Ns。

步骤4 本文证明提出的协议的准确性如下:

通过“消息1”,可知:S1:RC◁{M1,M2,M3,T1,M4:AIDi};

通过“假设4”,消息含义规则和S1,可知:S2:RC|≡Ui|~{Ni};

通过S2,临时值验证规则和“假设3”,可知:S3:RC|≡Ui|≡{Ni};

通过权限规则,S3和“假设7”,可知:S4:RC|≡{Ni},其中Ni为会话密钥中的重要参数;

目标2:根据“消息2”,可知:S7:Sj◁{M5,M6,M7,M8,T3,M9:RPWi};

根据消息含义规则,S7和“假设5”,可以得到:S8:Sj|≡RC|~{Nr};

根据S8,验证规则和“假设2”,可以得到:S9:Sj|≡RC|≡Nr;

根据权限规则,“假设8”和S9,可以得到:S10:Sj|≡Nr;

上述讨论证明,提出的方案能够实现安全的双向身份验证和会话密钥协商。

3 安全性分析

3.1 抵御身份标识和密码猜测攻击

攻击者试图使用分离参数P1、P2、Li、Vi和RN,从智能卡的内存和通信消息{M2,M3,M4,M6,M7,M8,M9,M10,M11}中对IDi和PWi进行猜解。然而攻击者无法得到用户的IDi和PWi,原因如下:

(2)参数Li取决于Di,PWi,x,y,R和Fi,其中Fi为用户的生物统计信息,{x,y}为加密密钥,R为随机数。如果攻击者试图从Li中得到IDi和PWi,其必须同时知晓所有这些参数,因为用户生物信息非常难以猜解,因此攻击者无法猜解Fi。因此A无法从Li中得到IDi和PWi。

(3)参数Vi和RN受散列函数的保护,因此攻击者无法从Vi和RN中检索到IDi和PWi。此外,如果A试图猜解IDi和PWi,其必须同时猜解出{IDi,PWi,R}。猜解概率等于1/212n+160,无法在多项式时间内完成。

3.2 抵御用户和服务器假冒攻击

假设攻击者A窃听到消息,并试图利用从智能卡和截获的通信消息中检索到的参数,创建另一个假冒的登录或回复消息。则A依然无法假冒Ui或Sj,主要原因如下:

上述讨论证明,提出的方案能够抵御用户和服务器假冒攻击。

3.3 御智能卡丢失攻击

假定攻击者得到了用户的智能卡,并从中检索到所有加密信息{P1,P2,Li,Vi,h(·),H(·),RN,e1,e2}。所提方案能够抵御智能卡丢失攻击,原因如下:

(1)攻击者试图利用智能卡中提取出的数值{P1,P2,Li,Vi,h(·),H(·),RN,e1,e2},推导或猜解出IDi和PWi。但上文已经证明,A无法使用智能卡数值检索或猜解{IDi,PWi}。

(2)攻击者A希望利用得到的智能卡参数表现为Ui或Sj。但上文节已经证明了A无法使用智能卡信息假冒为Ui或Sj。

上述讨论证明了所提协议能够抵御智能卡丢失攻击。

3.4 抵御重放攻击和并行会话攻击

在重放攻击中,攻击者首先截获通信消息,并在一定时间后重新发送消息,以假冒为合法实体。本文方案中,如果攻击者截获了登陆请求消息{M1,M2,M3,M4,T1},并在一定时间后重新将该消息发送到注册中心以假冒为合法用户。那么,在接收到攻击者发送的消息后,注册中心首先检查时间戳T1的新鲜度,即T2-T2≤ΔT,式中T2为当前时间戳,ΔT为最大传输延迟。由此,注册中心会因为无效的传输延迟,而拒绝攻击者的登录请求。此外,提出的方案还能够抵御并行会话攻击,因为在不同会话中的登陆请求消息采用了不同的新鲜时间戳。从其它会话截获的消息一定会被发现是无效的。

3.5 抵御内部攻击

4 性能比较

本节将从安全性、计算成本和估计时间方面,对所提协议与其它协议[9,10,11,12]进行比较。

4.1 安全特征比较

表2给出了所提协议与其它相关协议的安全特征比较,其中,A1:抵御密码猜测攻击;A2:提供用户匿名性;A3:抵御用户假冒攻击;A4:抵御服务器假冒攻击;A5:抵御重放攻击;A6:提供前向保密性;A7:抵御会话密钥临时信息攻击;A8:抵御特权内部者攻击;A9:登录和密码更改阶段的准确性;A10:身份认证阶段的准确性;A11:提供会话密钥验证。由表2可知,文献[9,10]易于受到密码猜测攻击,且没有提供用户匿名性。文献[10]不能抵御服务器假冒攻击。文献[11,12]不能抵御内部攻击,除了文献[12]和本文协议,其它协议都不能提供会话密钥验证。因此,本文协议可以提供多种安全保障,抵御多种攻击,具有良好的安全性特征。

4.2 计算成本比较

表3给出了所提协议与其它协议在计算成本和估计时间方面的比较。在成本计算中,首先定义一些符号如下:

TH:散列函数

TBP:双线性配对运算

TBH:生物-散列函数

TS:对称密钥加密/解密运算

TE:模指数运算

表2 安全特性比较

TPM:椭圆曲线点乘运算

TMM:模乘

本文协议中,在执行注册阶段时,用户需要2TH+1TBH,服务器需要1TH,注册中心需要6TH+2TPM的运算。在登录阶段,用户、服务器和注册中心分别需要进行10TH+3TPM+1TBH、6TH+2TPM和7TH+4TPM的运算。在执行密码更改阶段时,用户需要完成11TH+2TPM+1TBH的运算。总计43TH+13TPM+3TBH。为了计算执行时间,本文假定散列函数耗时0.0005 s,模乘耗时0.001 25 s,对称密钥加密/解密运算耗时0.0087 s,模指数运算耗时0.522 s,生物-散列函数耗时0.021 02 s,点乘运算耗时0.0503 s,双线性配对运算耗时0.0621 s,本文协议的估计执行时间为0.738 s。

各协议的计算成本和估计执行时间比较见表3。从中可以看出,所提协议的计算成本优于现有协议。虽然文献[10]的总体计算成本更低。但该协议不能抵御服务器假冒攻击,且不具备前向保密性,登录和密码更改阶段效率较低。

表3 计算成本和估计执行时间比较

5 结束语

本文提出了一个用于多服务器环境的三因子远程用户身份验证和会话密钥协商方案,所用的因子分别是密码、智能卡和生物统计信息,在登陆阶段的时间戳信息保证了数据的新鲜性。密钥和时间戳保证了双向验证的顺利完成。BAN逻辑验证了所提方案准确可靠,能提供安全的双向身份验证和会话密钥协商。安全性分析证明所提方案能够抵御各种类型的攻击。性能评价给出了所提方案在安全性、计算成本和估计执行时间方面的优越性。在多服务器环境中的实用价值较高。

猜你喜欢
智能卡身份验证攻击者
基于微分博弈的追逃问题最优策略设计
东方磁卡李晓东:进击的智能卡研发巨子
正面迎接批判
基于STC89 单片机的非接触智能卡读写机设计
临沂机顶盒智能卡升级方案介绍
有限次重复博弈下的网络攻击行为研究
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
智能卡领域首个国家工程建设标准发布
身份验证中基于主动外观模型的手形匹配
ASP.NET中的Forms身份验证的研究