?

基于智能卡的匿名認證方案

2020-09-16 02:43濮光寧殷鳳梅侯整風
合肥師范學院學報 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 單片機的非接觸智能卡讀寫機設計
好玩的“反口令”游戲
單向度
健身氣功·五禽戲教學口令
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合