劉衛(wèi)紅,曾建
(廣東農(nóng)工商職業(yè)技術(shù)學(xué)院,廣州 510507)
隨著云計算技術(shù)的發(fā)展,越來越多的用戶在云服務(wù)器上實現(xiàn)數(shù)據(jù)的計算、存儲、處理和共享,云環(huán)境中的安全問題也越來越嚴(yán)峻,因此設(shè)計一種云環(huán)境下用戶和服務(wù)器之間身份認(rèn)證和密鑰交換的協(xié)議具有重要的應(yīng)用價值。
口令因其簡單易記、操作方便,常被用于密鑰交換協(xié)議中(文獻(xiàn)[1-5]),但因其熵值較小,重復(fù)利用且易被遺忘,也常成為攻擊者的攻擊方向。生物特征具有不易遺忘、不易丟失,不易偽造且隨身攜帶等優(yōu)點,它常被用來與口令一起作為密鑰交換協(xié)議中身份認(rèn)證的依據(jù)(文獻(xiàn)[6-9])。在這些協(xié)議中,攻擊者不能僅靠口令來破解協(xié)議,還需要獲得用戶的生物特征信息。因此,基于生物特征和口令認(rèn)證的協(xié)議安全性強且又便捷可行。但是目前大部分協(xié)議在用戶注冊階段都假設(shè)用戶與服務(wù)器之間存在安全的通信信道,并且服務(wù)器是安全可信的,這些假設(shè)在現(xiàn)實部署中是很難實現(xiàn)的,因此這些協(xié)議的安全性和可行性值得商榷。針對上述問題,本文提出了一種云環(huán)境下基于指紋和口令認(rèn)證的密鑰交換協(xié)議,對用戶與服務(wù)器之間的通信信道以及服務(wù)器本身都沒有安全性要求,借助哈希函數(shù)、離散對數(shù)、計算性Diffie-Hellman問題、盲簽名和模糊提取技術(shù)既實現(xiàn)了服務(wù)器與用戶之間的雙向認(rèn)證,又保證了傳輸數(shù)據(jù)的完整性和真實性,安全可靠地實現(xiàn)了云環(huán)境下用戶與服務(wù)器之間的密鑰協(xié)商與共享,安全性分析表明該協(xié)議具有語義安全性,密鑰保密性、前向安全性,且能對抗重放攻擊、惡意服務(wù)器攻擊、離線字典攻擊、不可檢測在線字典攻擊等常見攻擊。
盲簽名是一種數(shù)字簽名的方式,它的簽名過程為:
請求者先將消息加密(盲化),然后簽名者再對密文簽名,最后請求者對簽名進(jìn)行解密(脫盲),從而獲取到簽名者對消息的簽名。
模糊提?。‵uzzy Extractor)技術(shù)是一種基于生物特征的密鑰產(chǎn)生技術(shù),該技術(shù)能從生物特征中提取出重構(gòu)用戶生物特征所需要的冗余信息而不用存儲生物特征模板本身,既利用生物特征進(jìn)行了身份認(rèn)證,又對生物特征信息進(jìn)行了保密。該技術(shù)包括Gen和Rep兩種算法:
Gen(B)→R,P:輸入 B,輸出輔助數(shù)據(jù) P(公開)和均勻隨機值R。
Rep(B,P)→R:給定 P,輸入 B,重新生成均勻隨機值R。
本協(xié)議中使用該技術(shù)的Gen算法通過輸入由生物特征和口令處理的值B,輸出一個輔助數(shù)據(jù)P和一個均勻隨機值R作為認(rèn)證密鑰。然后使用Rep算法以B和P為輸入,恢復(fù)認(rèn)證密鑰R。用戶和服務(wù)器使用R加密對方的驗證信息以實現(xiàn)雙向身份認(rèn)證。
本文用到的所有符號說明如下:
U和S分別表示云環(huán)境下的用戶和服務(wù)器,ID表示用戶U的id,A→B:M表示A給B發(fā)送消息M;pw和b表示用戶U的口令和指紋信息;H表示安全的單向Hash函數(shù);Ek(M)表示用密鑰k加密消息M;R表示用戶的認(rèn)證密鑰;NU為用戶選取的隨機數(shù),NS為服務(wù)器選取的隨機數(shù),表示異或操作;||表示消息的級聯(lián);p,q 表示大素數(shù),且 p=2q+1;g表示 q 階群 GF(p)的生成元;Zq是一個模q的整數(shù)環(huán);是Zq的乘法群;表示在中隨機選取元素 x;gx表示gx=gx(modp)。
一個云環(huán)境下基于指紋和口令認(rèn)證的密鑰交換協(xié)議被稱為是安全的,如果它滿足下列5個條件:
(1)語義安全性:對外部惡意攻擊者來說,會話密鑰和隨機數(shù)不可分;
(2)密鑰保密性:密鑰具有前向安全性;
(3)用戶口令、指紋信息和驗證密鑰安全;
(4)用戶與服務(wù)器之間都能進(jìn)行身份認(rèn)證;
(5)對抗重放攻擊、惡意服務(wù)器攻擊、不可檢測在線字典攻擊、離線字典攻擊。
在以往的口令認(rèn)證密鑰交換協(xié)議中,一般都假定用戶與服務(wù)器之間存在一個安全的通信信道,用來發(fā)送用戶口令或生物特征信息,并且假定服務(wù)器是可信的,將口令或生物特征信息存儲在服務(wù)器上。這些假設(shè)在實際的應(yīng)用場景中都是難以實現(xiàn)的,所以這些認(rèn)證方案的可用性和安全性都大大降低。針對這些認(rèn)證方案的不足,我們提出了一種云環(huán)境下基于指紋和口令認(rèn)證的密鑰交換協(xié)議,該協(xié)議在注冊階段將用戶口令和指紋信息通過hash函數(shù)和離散對數(shù)進(jìn)行處理,然后發(fā)送至服務(wù)端存儲,用戶端和服務(wù)器端都不直接保存用戶口令和指紋信息。在會話密鑰協(xié)商階段,服務(wù)器和用戶通過盲簽名和模糊提取技術(shù)進(jìn)行身份認(rèn)證并交換會話密鑰,實現(xiàn)了云環(huán)境下用戶與服務(wù)器的雙向認(rèn)證,同時也保證了會話密鑰的安全性,并能有效地抵抗在線字典攻擊、離線字典攻擊、惡意服務(wù)器攻擊。
協(xié)議分成注冊和密鑰協(xié)商兩個階段:
(1)注冊階段
U →S:W、Wb、ID
注冊階段,用戶通過電腦和指紋采集器錄入口令pw和指紋信息b,然后計算W=H(pw)[⊕]H(b)以及Wb,最后將W、Wb、ID發(fā)送給S。
服務(wù)器收到信息后,將ID、W、Wb保存起來。
(2)密鑰協(xié)商階段
用戶注冊為合法用戶之后,如果想接入云服務(wù)器使用其服務(wù),則需先與服務(wù)器進(jìn)行雙向身份認(rèn)證并協(xié)商一個會話密鑰進(jìn)行安全通信。
Step1:
U→S:ID,NU
用戶U選擇一個隨機數(shù)NU,然后向服務(wù)器發(fā)送用戶ID和NU;
S→U:Wc
服務(wù)器根據(jù)ID檢索到W和Wb,系統(tǒng)生成一個盲化因子c,計算Wc,并將Wc發(fā)送給用戶。
Step2:
U→S:Wcb
用戶收到消息后輸入口令pw和指紋信息b,然后計算Wc?b=(H(pw)⊕H(b))c?b,然后將其發(fā)送給服務(wù)器。
Step3:
U→S:A2,gy
用戶收到消息后計算Wb=(H(pw)⊕H(b))b,然后使用Wb和P恢復(fù)R,即Rep(Wb,P)→R,再用R解密A1得到NU,驗證NU,如果與之前自己選取的隨機數(shù)NU不一致,則拒絕,否則用R加密NS和ID,并隨機選取,計算gy,將,gy發(fā)送給服務(wù)器,同時計算sk=H(gxy||ID||NS||NU)。
服務(wù)器收到消息后用ER解密A2得到NS和ID,驗證如果跟自己選取的隨機數(shù)一致,則計算sk=H(gyx||ID||NS||NU|=H(gxy||ID||NS||NU)。
用戶和服務(wù)器最終以sk=H(gxy||ID||NS||NU)最為會話密鑰進(jìn)行安全通信。
該協(xié)議中用戶口令和指紋信息都是通過hash和離散對數(shù)處理后進(jìn)行傳輸和存儲的,因此對用戶與服務(wù)器之間的通信信道沒有安全性要求,也不要求服務(wù)器必須可信,符合實際的部署場景,保證了協(xié)議的可行性。在會話密鑰協(xié)商階段,服務(wù)器和用戶通過盲簽名和模糊提取技術(shù)實現(xiàn)了云環(huán)境下用戶與服務(wù)器的雙向認(rèn)證,同時基于計算性Diffie-Hellman問題的困難性和哈希函數(shù)的隨機性交換會話密鑰,保證了會話密鑰的安全性,并能有效地抵抗重放攻擊、惡意服務(wù)器攻擊、不可檢測在線字典攻擊、離線字典攻擊。
(1)語義安全性
因為用戶和服務(wù)器傳遞用戶口令、指紋信息以及驗證信息時都使用了哈希、離散對數(shù)或加密處理,并且使用盲簽名和模糊提取技術(shù)對驗證數(shù)據(jù)進(jìn)行處理,因此,改進(jìn)協(xié)議相對于外部敵手來說是語義安全的。
(2)密鑰保密性
前向安全性:若E竊取了用戶的口令和指紋信息,基于計算性Diffie-Hellman問題的困難性,他無法從截獲的消息gx和gy計算出gxy,也就無法計算出之前的會話密鑰sk=H(gxy||ID||NS||NU),從而保證了協(xié)議的前向安全性。
(3)用戶口令、指紋信息和驗證密鑰的安全性。
用戶口令、指紋信息和驗證密鑰都不直接保存在用戶端和服務(wù)器端,而是通過hash和離散對數(shù)處理后保存在服務(wù)器端,所以不存在泄漏可能。同時驗證密鑰也是盲簽名和模糊提取技術(shù)生成,所以攻擊者不可能獲取用戶口令、指紋信息和驗證密鑰。
(4)用戶與服務(wù)器之間的雙向認(rèn)證。
因為驗證用戶和服務(wù)器的過程中都加入了隨機數(shù),并使用模糊提取技術(shù)生成的驗證密鑰進(jìn)行加密,保證了只有擁有真正口令和指紋信息的用戶以及注冊時的服務(wù)器才能加密對方選取的隨機數(shù)并解密獲取和驗證自己的隨機數(shù),因此,保證了服務(wù)器與用戶之間身份的雙向認(rèn)證。
(5)對抗重放攻擊、惡意服務(wù)器攻擊、不可檢測在線字典攻擊、離線字典攻擊。
重放攻擊:因為驗證用戶和服務(wù)器的過程中都加入了隨機數(shù)并使用模糊提取技術(shù)生成的驗證密鑰進(jìn)行加密,所以攻擊者不能通過對方的驗證,也就無法假冒任何一方發(fā)動重放攻擊。
惡意服務(wù)器攻擊:因為服務(wù)器并不擁有也不存儲用戶的指紋信息,因此無法偽冒自己域中用戶或其他域中用戶進(jìn)行盲簽名,也就無法通過其他服務(wù)器的驗證,更無法進(jìn)行后續(xù)的密鑰交換,故不存在惡意服務(wù)器攻擊。
不可檢測在線字典攻擊:敵手選擇一個pwd'和b'作為用戶的候選口令和指紋信息,然后選擇一個隨機數(shù)發(fā)送給服務(wù)器后,服務(wù)器隨機選取c向敵手發(fā)送Wc,敵手計算以及W'cb',服務(wù)器收到后計算,顯然≠,服務(wù)器馬上能檢測到敵手的攻擊。
離線字典攻擊:如果攻擊者選擇離線字典攻擊,攻擊者同樣從口令空間中選取一個候選口令和候選指紋信息b'作為用戶的真實口令和指紋信息,攻擊者通過截獲真實會話中的任意一個消息來驗證候選口令和候選指紋信息b'的正確性。因為涉及到用戶口令、指紋信息和驗證密鑰的消息都被Hash函數(shù)、離散對數(shù)或盲簽名以及模糊提取技術(shù)處理過,由于Hash函數(shù)的不可逆性和離散對數(shù)問題的困難性以及盲簽名和模糊提取技術(shù)的安全性可知攻擊者從真實消息中驗證口令和指紋正確的概率幾乎為零。
本文的云環(huán)境下基于指紋和口令認(rèn)證的密鑰交換協(xié)議結(jié)合了口令認(rèn)證的簡單、指紋認(rèn)證的安全便攜,以及離散對數(shù)、計算性Diffie-Hellman的高可靠等特點,具有語義安全性,密鑰保密性、前向安全性,且能對抗重放攻擊、惡意服務(wù)器攻擊、離線字典攻擊、不可檢測在線字典攻擊等常見攻擊。借助哈希函數(shù)、離散對數(shù)、計算性Diffie-Hellman問題、盲簽名和模糊提取技術(shù)既實現(xiàn)了服務(wù)器與用戶之間的雙向認(rèn)證,又保證了傳輸數(shù)據(jù)的完整性和真實性,安全可靠地實現(xiàn)了云環(huán)境下用戶與服務(wù)器之間的密鑰協(xié)商與共享。