APP下载

基于智能卡的匿名认证方案

2020-09-16濮光宁殷凤梅侯整风

合肥师范学院学报 2020年3期
关键词:智能卡单向口令

濮光宁,殷凤梅,侯整风

(1.安徽财贸职业学院,安徽 合肥 230601;2. 合肥师范学院 计算机学院,安徽 合肥 230601;3.合肥工业大学 计算机与信息学院,安徽 合肥 230009)

传统的身份认证是基于口令的认证,用户输入口令即可完成身份认证。但由于口令很容易被攻击者窃取,基于口令的认证方案的安全性会受到很大威胁。智能卡易于便携且成本较低,常常应用到身份认证系统中。Huang等人[1]使用了智能卡实现了远程认证。Das等人[2]将智能卡和口令两种认证方式组合在一起,提出一种新的身份认证协议,但He 等人[3]指出方案[2]中的智能卡可能会被第三方攻击。Yoon和Yoo[4]基于生物特征和智能卡提出多服务器认证方案,基于生物特征的很多认证方案[5-6]也相继被提出。He和Wang[7]指出方案[4]容易受智能卡丢失攻击。2016年,Jung等人[8]提出匿名认证协议,但Xiong等人[9]指出方案[8]易受智能卡丢失攻击,且不具备前向安全性。Lei[10]将匿名认证方案应用到电子病历隐私保护中。该方案可以抵抗智能卡丢失攻击,但不能抵抗内部攻击。

在分析以上方案的基础上,在单向散列函数、随机数和时间戳基础上,提出一种基于智能卡的匿名认证方案。该方案在满足系统安全性的前提下,可以实现用户和服务器之间的相互认证,并且可以抵抗智能卡丢失攻击和内部攻击。

1 散列函数

本文方案基于无碰撞的单向散列函数,如SHA-512。对于单向散列函数H(·)满足三个特点:

(1)给定x,很容易计算H(x);

(2)知道H(x),很难计算出x;

(3)任意的x1≠x2,可得出H(x1)≠H(x2)。

2 基于智能卡的匿名认证方案

本文提出的匿名认证方案由用户、注册中心和服务器三方组成,包括四个阶段:注册、登录、认证和更改口令。

2.1 注册

每个用户Ui都需要先向注册中心RC注册。注册的步骤如下:

①Ui→RC:{IDi,Ai}

Ui选择自己的身份标识IDi、口令PWi和密钥Ki,计算Ai=H(IDi||Ki)和Bi=H(IDi||PWi),通过安全信道将注册信息{IDi,Ai}发送给注册中心RC。

②RC→智能卡:{Ci}→Ui

RC收到信息{IDi,Ai}后,计算Ui的认证参数。RC使用服务器与注册中心的共享秘钥Ksj,计算Ci=H(Ai||Ksj),并将{Ci}存入智能卡,通过安全信道发送给用户Ui。

③Ui→智能卡:{Ai,Bi,Ci′,Di}

Ui收到智能卡后,计算Di=H(Ai)⊕Ki和Ci′=Ci⊕H(Ai||Ki),用Ci′代替Ci存入智能卡,并将Ai、Bi和Di也存入智能卡,智能卡中现有存储信息{Ai,Bi,Ci′,Di}。

方案中使用的符号含义如表1所示。

表1 符号含义

2.2 登录

用户完成注册并收到RC发来的智能卡,才能进行登录操作。登录的步骤如下:

①Ui→智能卡:{IDi,PWi}

Ui将智能卡插入读卡器,输入自己的IDi和PWi。

② 智能卡:返回“登录成功”或“登录失败”

2.3 认证

Ui登录成功后,智能卡使用Ui的匿名身份AIDi申请访问服务器Sj,Ui和Sj相互认证成功后,生成共享的会话密钥。认证的步骤如下:

① 智能卡→Sj:{AIDi,Ai,M2,M3,T1}

智能卡产生随机数N1和时间戳T1,计算

和M3=H(AIDi||SIDj||Ai||M1||N1||T1),并将{AIDi,Ai,M2,M3,T1}发送给Sj。

②Sj验证Ui身份

Sj收到信息后,检查T1有效性。若T1无效,Sj中断认证。若T1有效,Sj计算M4=H(Ai||Ksj)、M5=M2⊕M4和M6=H(AIDi||SIDj||Ai||M4||M5||T1)。

判断M6与M3是否相等。若不等,Sj中断认证。若相等,认为Ui是合法用户,Sj继续进行下面的认证步骤。

③Sj→智能卡:{SIDj,M7,M8,M9,T2}

Sj产生随机数N2和时间戳T2,计算M7=N2⊕M5⊕AIDi、M8=H(AIDi||SIDj||N2)、SKij=H(N1||N2||T1||T2)和M9=H(SKij),将SKij作为Sj和Ui的会话密钥保密存储,将{SIDj,M7,M8,M9,T2}发送给智能卡。

④ 智能卡验证信息,生成会话密钥

智能卡收到信息后,检查T2有效性。若T2无效,智能卡中断认证。若T2有效,智能卡计算M10=M7⊕N1⊕AIDi和M11=H(AIDi||SIDj||M10)。

判断M11与M8是否相等。若不等,智能卡停止认证。若相等,智能卡继续下面的认证。

2.4 更改口令

本文方案支持用户随时更改口令,且更改口令仅通过智能卡即可完成,操作简单。

①Ui将智能卡插入读卡器,输入IDi和旧的PWi,按照“2.2 登录”阶段的步骤验证用户身份。通过身份验证,Ui才可以继续更改口令的下一步操作。

②Ui向智能卡输入IDi和新的PWi′,智能卡计算Bi′=H(IDi||PWi′),用Bi′代替Bi存入智能卡。

3 性能分析

从正确性和安全性两个方面对本文方案进行分析。

3.1 正确性分析

(1)Sj验证Ui合法性

在认证阶段,服务器Sj可以通过M6与M3是否相等,判断Ui是否是合法用户。证明如下:

=H(Ai)⊕Ki⊕H(Ai)

=Ki

=Ci

∵M4=H(Ai||Ksj)=Ci=M1

M5=M2⊕M4=M1⊕N1⊕M1=N1

∴M6=H(AIDi||SIDj||Ai||M4||M5||T1)

=H(AIDi||SIDj||Ai||M1||N1||T1)

=M3

(2)智能卡验证Sj正确性

智能卡可以通过M11与M8是否相等,判断服务器Sj是否发送了正确的信息。证明如下:

∵M10=M7⊕N1⊕AIDi

=N2⊕M5⊕AIDi⊕N1⊕AIDi

=N2⊕N1⊕AIDi⊕N1⊕AIDi

=N2

∴M11=H(AIDi||SIDj||M10)

=H(AIDi||SIDj||N2)

=M8

(3)Ui和Sj生成相同的会话密钥

用户和服务器通过双方认证后,双方各自生成相同的会话密钥SKij。证明如下:

由“3.1 正确性分析”可知M10=N2

=H(N1||N2||T1||T2)

=SKij

通过M12与M9是否相等,智能卡可以验证会话密钥的正确性。

3.2 安全性分析

(1)用户匿名性

在本文方案的认证过程中,智能卡使用Ui的匿名身份AIDi,实现用户身份的匿名化。假设攻击者窃取了智能卡中的信息{Ai,Bi,Ci′,Di},在认证通信中截取了{AIDi,Ai,M2,M3,T1}和{SIDj,M7,M8,M9,T2}。由于单向散列函数H(·)的防碰撞特性和随机数Ni的随机性,攻击者无法从这些信息中求出Ui的真实身份IDi。因此,本文方案实现用户的匿名性。

(2)相互认证性

为了保护用户和服务器双方的安全性,在认证通信过程中,本文方案增加了双方对消息进行相互认证的环节。第一次认证:智能卡将{AIDi,Ai,M2,M3,T1}发送给Sj,Sj通过M6与M3是否相等,认证Ui的合法性。第二次认证:Sj将{SIDj,M7,M8,M9,T2}发送给智能卡,智能卡通过M11与M8是否相等,认定Sj的正确性。

(3)会话密钥安全性

会话密钥SKij的计算需要使用用户和服务器双方产生的随机数N1和N2,且添加了单向散列函数H(·)。单向散列函数的防碰撞特性可以有效阻止攻击者或其他用户获得SKij,从而保证了会话密钥的安全性。

(4)抵抗内部攻击

假设攻击者是RC内部特权人员。Ui向RC申请注册时,发送的是Ai=H(IDi||Ki),其并不包含口令PWi。因而,攻击者并不能获得PWi。另外,根据单向散列函数的防碰撞特性,攻击者也不能从中求出密钥Ki。

假设攻击者是合法的用户Ui。根据单向散列函数的防碰撞特性,攻击者无法从智能卡的Ci=H(Ai||Ksj)中获取服务器与注册中心的共享秘钥Ksj。

综上所述,本文方案可以抗内部攻击。

(5)抵抗外部攻击

假设攻击者窃听到认证通信过程中的信息{AIDi,Ai,M2,M3,T1},欲伪装成用户Ui,与服务器Sj相互认证后生成会话密钥SKij=H(N1||N2||T1||T2)。为了通过认证,并计算SKij,需要产生新的随机数N1′和时间戳T1′,改变M2′=M1⊕N1′和M3′=H(AIDi||SIDj||Ai||M1||N1′||T1′)。由于单向散列函数的防碰撞特性,攻击者无法改变M2和M3,即无法改变认证请求信息。因此,本文方案可以抵抗外部攻击。

(6)抵御重放攻击

(7)抗智能卡丢失攻击

假设用户Ui的智能卡丢失。由于智能卡中存储的信息是{Ai,Bi,Ci′,Di},没有存储Ui的身份信息IDi、口令PWi和密钥Ki,即使智能卡丢失,用户的隐私信息也是安全的。另外,根据单向散列函数的防碰撞特性,攻击者不能从{Ai,Bi,Ci′,Di}获取Ui的隐私信息,因此,本文方案可以抗智能卡丢失攻击。

4 计算成本分析

4.1 理论分析

本文提出的匿名认证方案与其他同类方案的计算成本对比如表2所示。其中,n表示用户数量,Ch表示单向散列函数计算成本,CECC表示椭圆曲线加密/解密计算成本。通常情况下,CECC>Ch。

表2 计算成本对比

从表2可以看出,在注册阶段,当n=1时,本文方案的计算成本相对较大。但随着用户数n的增加,本文方案的计算成本会变得相对较小。在登录和更改口令阶段,本文方案的计算成本与方案[10]相同,但比方案[4]小。在认证阶段,本文方案的计算成本相对较小。

4.2 仿真分析

仿真实验硬件环境i3-8100T CPU、8GB RAM,软件环境Windows 10 64bit OS,codeblocks-17.12软件。通过仿真实验将本文方案与方案[4]、方案[10]在处理时间上作对比,如图1所示。

图1 处理时间对比

从图1的曲线可以看出,随着成员数量n的增加,三个方案的处理时间成线性增加。与其余两个方案相比,本文方案的处理时间相对较小。

5 结语

本文基于智能卡提出了一种匿名认证方案。通过性能分析可知,本文方案不仅正确可行,还具备匿名性、用户与服务器的相互认证性,同时可以抵抗内部攻击和外部攻击,抵御重放攻击和智能卡丢失攻击。与同类方案相比,本文方案的计算成本相对较小。方案可以应用到电子医疗等需要匿名认证的应用场景中。

猜你喜欢

智能卡单向口令
碳纤维/PPS热塑性单向预浸带进入市场
用“单向宫排除法”解四宫数独
高矮胖瘦
东方磁卡李晓东:进击的智能卡研发巨子
口 令
单向街书店:智力、思想和文化生活的公共空间
基于STC89 单片机的非接触智能卡读写机设计
好玩的“反口令”游戏
单向度
健身气功·五禽戏教学口令