李祉岐,孫 磊,聞 凱
(1.北京國電通網(wǎng)絡(luò)技術(shù)有限公司,北京 100070;2.南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210016)
隨著信息技術(shù)的快速發(fā)展,各種高效網(wǎng)絡(luò)服務(wù)機(jī)制為人們提供方便,也帶來了一些安全問題,如云存儲免除了遠(yuǎn)程用戶對存儲空間的擔(dān)憂,但要求較高的網(wǎng)絡(luò)安全性和資源保護(hù)性,而身份驗(yàn)證協(xié)議可對遠(yuǎn)程用戶進(jìn)行身份驗(yàn)證,防御試圖破壞網(wǎng)絡(luò)安全的惡意攻擊[1,2]。由于身份驗(yàn)證協(xié)議的緊迫性和重要性,其研究具有重要的商業(yè)價(jià)值和社會意義。
迄今為止,研究人員已經(jīng)提出了很多身份驗(yàn)證協(xié)議。常見的有“單因子”身份驗(yàn)證協(xié)議[3],即服務(wù)器將用戶密碼的散列數(shù)值存儲在數(shù)據(jù)庫中,在用戶登錄時(shí)驗(yàn)證身份信息。該方法簡單高效,但易于受校驗(yàn)值丟失攻擊。為抵御校驗(yàn)值丟失攻擊,研究人員通過智能卡,刪除服務(wù)器上的用戶表,使用密碼和智能卡的“雙因子”身份驗(yàn)證協(xié)議[4,5]。該類協(xié)議一定程度上提高了網(wǎng)絡(luò)安全性,但在面對冒名攻擊時(shí)并不安全。Wang等[6]證明了上述協(xié)議不能抵御口令猜測攻擊、已知密鑰攻擊等。Cui等[7]和Rong等[8]也對協(xié)議進(jìn)行了改進(jìn),但存在可追蹤性,因?yàn)橛脩鬒D在所有登陸請求消息中不變。Shi等[9]提出了一種基于動(dòng)態(tài)身份的驗(yàn)證協(xié)議,以解決之前的問題,并提供不可追蹤性。近期,Kaul等[10]對易受冒名、拒絕服務(wù)攻擊,且沒有提供密鑰協(xié)商和不可追蹤性的協(xié)議問題進(jìn)行改進(jìn),提出了一個(gè)身份驗(yàn)證協(xié)議。本文對該協(xié)議進(jìn)行分析,證明其存在的安全性問題;同時(shí),為克服這些缺陷,提出一種高效安全的輕量級身份驗(yàn)證協(xié)議。本文的主要工作總結(jié)如下:①對已有協(xié)議進(jìn)行分析,證明其不能抵御離線密碼猜測攻擊,且沒有提供用戶匿名性;②提出一種輕量級身份驗(yàn)證協(xié)議,提高協(xié)議安全性和執(zhí)行效率。
本小節(jié)主要對文獻(xiàn)[10]協(xié)議的缺陷進(jìn)行分析。該協(xié)議包括4個(gè)階段:注冊、登錄、身份驗(yàn)證和密碼更改。由于篇幅較大,具體步驟詳見文獻(xiàn)[10]。
本文所使用的符號說明見表1。
表1 符號說明
在Kaul等[10]提出的協(xié)議中,如果攻擊者竊取了用戶的智能卡,則其能夠以離線的方式猜測該智能卡的密碼。在得到智能卡及其密碼后,攻擊者可以冒充合法用戶竊取相關(guān)服務(wù)。假定攻擊者已經(jīng)竊取用戶的智能卡,猜測該智能卡密碼的步驟如下。
步驟1 攻擊者從智能卡的內(nèi)存中對Ai、Mi、Yi、Di、Ei和h(·)進(jìn)行檢索[11,12]。
在Kaul等[10]提出的協(xié)議中,每個(gè)合法用戶都可以通過竊聽通信信道,并對其他用戶的登錄請求消息進(jìn)行分析,得到其他用戶的真實(shí)身份標(biāo)識,并不能提供用戶匿名性。用戶Ui可以通過下列步驟,得到用戶Uj的真實(shí)身份標(biāo)識。
針對目前協(xié)議存在的問題,本文提出一種安全身份驗(yàn)證協(xié)議,該協(xié)議包括3個(gè)階段:注冊、登錄和身份驗(yàn)證、密碼更改。
在注冊階段中,根據(jù)如下步驟向用戶Ui分配智能卡。如圖1所示。
圖1 協(xié)議注冊階段
步驟3 當(dāng)用戶端接收到智能卡時(shí),其將步驟1中隨機(jī)選擇的數(shù)值r存儲到該智能卡中。
該階段中,用戶端和服務(wù)器相互認(rèn)證,就會話密鑰達(dá)成一致。在身份驗(yàn)證后,用戶和服務(wù)器能夠使用商定的會話密鑰對消息進(jìn)行加密和認(rèn)證。其主要流程如圖2所示。下面介紹具體步驟。
圖2 登錄和身份驗(yàn)證階段
該階段中,用戶可以進(jìn)行密碼更改。將智能卡插入讀卡器,并輸入身份標(biāo)識和當(dāng)前密碼。之后,智能卡進(jìn)行如下步驟。
步驟1 該步驟與2.2節(jié)中步驟1相同。
步驟2 該步驟與2.2節(jié)中步驟2相同。
本節(jié)首先證明協(xié)議的正確性;然后分析提出協(xié)議在抵御已知攻擊時(shí)的性能表現(xiàn);接著分析其時(shí)間復(fù)雜度,并與其它安全協(xié)議進(jìn)行比較。
本節(jié)將使用BAN邏輯[14]證明提出協(xié)議的正確性。BAN邏輯是對身份驗(yàn)證協(xié)議進(jìn)行分析的一種形式化方法。該邏輯存在一些規(guī)則,定義如下。BAN邏輯分析中使用的符號見表2。
表2 BAN邏輯分析中使用的符號
根據(jù)BAN邏輯的程序,提出的協(xié)議必須實(shí)現(xiàn)以下目標(biāo):
(1)目標(biāo)1:Ui|≡(Ui?SKS)。
(2)目標(biāo)2:S|≡(Ui?SKS)。
為使用BAN邏輯,提出的協(xié)議被轉(zhuǎn)換為如下的理想化形式。
(1)Message 1:Ui→S:({IDi,N}x,{IDi,RNi,Ti,{IDi,N}x}Ai)。
為了對提出的協(xié)議進(jìn)行分析,本文做出以下關(guān)于提出的協(xié)議的初始狀態(tài)的假設(shè):
(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邏輯規(guī)則和假設(shè),本文對提出的協(xié)議的理想化形式進(jìn)行了分析。
根據(jù)Message 1,可以得到:R1)S?({IDi,N}x,{IDi,RNi,Ti,{IDi,N}x}Ai)。
基于假設(shè)A7,在將消息含義規(guī)則應(yīng)用到R1后,可以得到:R2)S|≡Ui|~(IDi,RNi,Ti,{IDi,N}x)。
基于假設(shè)A5,在將管轄權(quán)規(guī)則應(yīng)用到R6后,可以實(shí)現(xiàn)第一個(gè)目標(biāo):R7)Ui|≡(Ui?SKS)(目標(biāo)1)。
基于假設(shè)A7,在將消息含義規(guī)則引用到R8后,可以得出:R9)S|≡Ui|~(RNS,RNi)。
基于假設(shè)A4,在將臨時(shí)值驗(yàn)證規(guī)則引用到R9后,可以得出:R10)S|≡Ui|≡(RNS,RNi)。
根據(jù)假設(shè)A6,在將管轄權(quán)規(guī)則應(yīng)用到R11后,可以實(shí)現(xiàn)最后一個(gè)目標(biāo):R12)S|≡(Ui?SKS)(目標(biāo)2)。
3.2.1 重放攻擊
3.2.2 離線密碼猜測攻擊
3.2.3 用戶冒名攻擊
3.2.4 服務(wù)器冒名攻擊
3.2.5 提供用戶匿名性
3.2.6 會話密鑰的安全性
本節(jié)對本文協(xié)議的時(shí)間復(fù)雜度和執(zhí)行時(shí)間進(jìn)行分析。操作系統(tǒng)為32位Ubuntu操作系統(tǒng),2.2 GHz CPU、2.0 GB RAM。為了更方便地對協(xié)議復(fù)雜度進(jìn)行分析,定義不同操作的標(biāo)識符:fEN/DE表示進(jìn)行一次對稱加密/解密操作;fHash表示進(jìn)行一次散列操作;fXOR表示進(jìn)行一次異或操作。
本文提出協(xié)議的注冊階段需要進(jìn)行1次對稱加密操作、2次散列化操作和1次異或操作。因此,提出的協(xié)議在注冊階段的時(shí)間復(fù)雜度為fEN/DE+2fHash+fXOR。在身份驗(yàn)證和密鑰協(xié)商階段,需要進(jìn)行6次加密/解密操作,6次散列化操作和1次異或操作。因此,身份驗(yàn)證階段的時(shí)間復(fù)雜度為6fEN/DE+6fHash+fXOR。時(shí)間復(fù)雜度總計(jì)為7fEN/DE+8fHash+2fXOR,執(zhí)行時(shí)間為49.8 μs。
為了說明本文提出協(xié)議的良好性能,將其安全性功能和時(shí)間復(fù)雜度與其它3種協(xié)議進(jìn)行比較。
表3給出本文協(xié)議與其它協(xié)議之間的安全性比較。表4給出不同協(xié)議的時(shí)間復(fù)雜度和具體執(zhí)行時(shí)間??梢钥闯霰疚膮f(xié)議能夠抵御各種攻擊,且提供用戶匿名性。文獻(xiàn)[8]協(xié)議的執(zhí)行時(shí)間最短,但不能抵御離線密碼猜測攻擊,且未提供用戶匿名性和會話密鑰安全性。文獻(xiàn)[10]協(xié)議不能抵御離線密碼猜測攻擊,且沒有提供用戶匿名性。文獻(xiàn)[9]協(xié)議提供了用戶匿名性,但執(zhí)行時(shí)間要高于本文和其它協(xié)議,且不能抵御離線密碼猜測攻擊??梢钥闯?,本文提出的協(xié)議能夠抵御各種安全性攻擊,提供會話密鑰的安全性和用戶匿名性,且執(zhí)行時(shí)間適中,因此更適用于真實(shí)應(yīng)用。
表3 各協(xié)議的安全性
表4 各協(xié)議的時(shí)間復(fù)雜度和執(zhí)行時(shí)間
本文對已有的身份驗(yàn)證協(xié)議不能抵御離線密碼猜測攻擊,且沒有提供用戶匿名性的問題進(jìn)行分析。針對存在的缺陷,提出一種改進(jìn)的身份驗(yàn)證協(xié)議。所有發(fā)送信息中均不包含密碼,且設(shè)置服務(wù)器私人密鑰,抵御離線密碼猜測攻擊。同時(shí)提出的協(xié)議中,用戶身份標(biāo)識在每個(gè)會話中存在差異,攻擊者無法對用戶的行為進(jìn)行跟蹤。通過與其它協(xié)議比較,本文協(xié)議能夠抵御已知的安全性攻擊,且提供了用戶匿名性。同時(shí)執(zhí)行時(shí)間適中,是一種輕量級身份驗(yàn)證和密鑰協(xié)商協(xié)議,適用于資源受限環(huán)境。