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