羅長遠,霍士偉,邢洪智
(1. 信息工程大學 電子技術學院,河南 鄭州 450004;2. 西安通信學院,陜西 西安 710106)
普適計算是一種開放的網絡環境,用戶可以隨時隨地獲得服務。開放性和無所不在性使普適環境相對于傳統網絡更容易受到各種惡意攻擊。為了保證普適環境的安全,需要實施加密、訪問控制等安全措施。其中認證是各種安全措施的基礎,對構建安全的普適環境具有重要意義[1]。
普適環境中存在大量不可見的設備(如傳感器),它們不停地搜集用戶的身份、位置等敏感信息,用戶的敏感信息隨時有被泄露的可能。所以,普適環境下用戶的隱私保護被提到了重要的高度[2]。在認證中,同樣需要考慮用戶隱私保護的問題。現有的認證機制需要用戶提供身份信息,這會造成用戶身份信息泄露,使用戶的會話和位置被惡意實體跟蹤。為了保護用戶隱私,普適環境下的認證方案在實現安全認證的基礎上要滿足以下要求[2]:1) 用戶匿名性,在認證過程中,服務方和外部用戶都無法確定用戶的真實身份;2) 無關聯性,服務方和外部用戶都無法確定不同的會話來自相同的用戶。另外由于普適環境下用戶一般使用計算能力有限的便攜設備,因此認證方案要滿足用戶端計算量小的要求[3]。
文獻[4]提出了一種普適環境中的匿名認證和密鑰協商方案,該方案需要證書的支持,證書管理開銷較大。文獻[5]基于橢圓曲線上的離散對數問題提出了一種普適環境中的匿名認證和密鑰協商方案,具有較小的計算開銷。文獻[4,5]中方案只能實現對外部用戶匿名,而服務方可以確定用戶身份,無法滿足用戶的強匿名需求,即用戶希望在認證過程中,外部用戶和服務方都無法確定自己的身份,從而更好地保護隱私。文獻[2]利用盲簽名技術設計了一種新的普適環境中的匿名認證方案,方案可以滿足強匿名要求。文獻[6]在文獻[2]方案的基礎上增加了抵御拒絕服務攻擊的功能。文獻[7]指出文獻[2]方案存在安全缺陷,非法用戶可以假冒合法用戶通過認證,并對方案進行了改進,使方案可以避免假冒攻擊。
上述基于盲簽名的匿名認證方案在認證過程中保證了用戶的身份無法被外部用戶和服務方獲得,有效保護了用戶隱私。但是由于盲簽名的不可追蹤性,當合法用戶進行惡意活動時,服務方仍然無法確定用戶的身份,給犯罪分子帶來可乘之機[8]。針對盲簽名的缺點,研究者提出了一次性公鑰的思想[8]。在一次性公鑰中,可信中心只需給用戶生成一次私鑰,用戶每次簽名時可以生成不同的公鑰,使得用戶的每次簽名之間不存在關聯性,從而保證了用戶身份匿名性和會話無關聯性。此外,在必要時簽名驗證者可以向可信中心遞交簽名者的一次性公鑰,可信中心可以揭示簽名者身份,防止簽名者進行惡意活動。文獻[9]提出了基于身份的一次性公鑰及簽名算法,但是該算法是可偽造的,非法用戶利用合法用戶的一次性公鑰可以偽造簽名。文獻[10]提出了一種新的基于身份的一次性公鑰及簽名算法,并證明了算法的安全性。上述基于身份的一次性公鑰及簽名算法需要多次雙線性對運算,一次性公鑰長度較長,這會造成較大的計算開銷和通信開銷,不適合在資源受限的普適環境下應用。并且上述算法都存在密鑰托管問題,可信中心的主密鑰如果被惡意實體獲得,惡意實體就可以計算出合法用戶的簽名私鑰,從而可以冒充合法用戶。所以方案中的系統主密鑰成為安全瓶頸。本文提出了一種新的基于身份的一次性公鑰及簽名算法,在保證安全性的基礎上,通過對算法優化,減少了雙線性對運算次數和一次性公鑰長度,并且不存在密鑰托管問題。基于該算法設計了普適環境中的匿名認證方案,在提供強匿名性的同時,能夠防止用戶進行惡意活動。
本算法基于雙線性對運算實現,包括以下算法。
1) 系統初始化
可信中心TC選擇橢圓曲線上滿足雙線性對要求e、G1、G2、q,G1的生成元為P。隨機選擇s∈作為系統主密鑰,系統公鑰為Ppub=sP。定義安全的散列函數:H1:{0,1}*×G1→和H2:{0,1}*→。TC妥善保管s,公開系統參數{G1, G2, e, q, P, Ppub,H1, H2}。
2) 用戶私鑰生成
假設用戶A的身份標識為AID,隨機選擇作為秘密數,計算R1=xAP,然后將R1和IDA發送給TC,TC可以通過零知識證明方法確認A具有與R1對應的秘密數xA。TC對用戶身份和R1鑒定后,按如下步驟計算用戶A的部分私鑰:
① 隨機選擇rA∈,計算R2=rAP,RA=R1+R2;
② 令c=H1(IDA,RA),計算部分私鑰dA=rA+sc。
TC保存(IDA,c, RA),用作以后確認A的身份。將RA和dA通過安全信道發送給A。A計算sA=xA+dA作為完整私鑰,通過檢驗sAP=RA+H1( IDA,RA)Ppub是否成立來驗證私鑰的正確性,驗證通過后A妥善保存(sA,RA)。
3) 一次性公鑰生成
4) 簽名
用戶A對消息m∈{0,1}*簽名時,隨機選擇y∈,計算Y=yP,計算h=H(m, Y ),計算2z=y+asAh,簽名為<z, Y>,A將簽名<z, Y>和消息m發送給驗證者B。
5) 驗證
B首先驗證一次性公鑰的合法性,驗證等式

是否成立,若成立則確定發送方確實在可信中心進行了注冊。
因為

若等式成立,則說明AP含有系統主密鑰,因此發送方在可信中心進行過注冊。
然后B驗證簽名,計算h=H2(m, Y),驗證等式

是否成立。若成立,則驗證通過,否則拒絕。
1) 算法可保證發送方匿名
首先,用戶A的一次性公鑰和簽名中不包含身份信息。其次,用戶A的一次性公鑰(PA, UA,VA)都經過了隨機數a的處理,a不同則一次性公鑰不同,因此用戶B無法獲得A的真實身份,并且A的不同活動之間不存在任何聯系。
2) 算法可保證匿名用戶的可追蹤性
如果用戶A執行了非法的操作,驗證者B通過和可信中心合作,可以揭示用戶A的真實身份。用戶B只需要將UA,VA發送給TC,TC就可以揭示A的身份。因為TC保存了A的相關信息(IDA,c, RA),TC通過驗證

是否成立來揭示用戶A的身份。事實上,e( UA,cP)=e( aRA,cP)=e( acP, RA)=e( VA,RA)。因此,該算法既保證了用戶A的匿名性,也可以防止用戶A進行惡意的活動。
3) 算法可抵御偽造攻擊
① 合法用戶A無法偽造虛假的一次性公鑰和簽名來欺騙用戶B
首先,對消息m的簽名z無法偽造。因為,通過驗證等式(1),B確定PA中含有系統主密鑰s,通過驗證等式(2),可以確定z含有主密鑰s,因此z是利用合法的私鑰生成的,z不可偽造。其次,PA無法偽造,由于z是利用合法的私鑰生成的,如果PA是偽造的,則等式(2)無法驗證通過。同樣AU和AV無法偽造,由于PA是按照正確的步驟生成的,如果UA和VA是偽造的,則無法通過等式(1)的驗證。
其次,A企圖消滅進行惡意活動的證據,即躲開式(3)的檢查是不可行的。假設A選擇a, b∈(a≠b),計算PA=aRA+bcPpub,UA′=aRA,VA′=bcP作為一次性公鑰,此時可以通過式(1)驗證且式(3)無法成立。但是,A無法生成相應的簽名私鑰a( xA+rA)+bsc 對m進行簽名,因此無法通過式(2)驗證。因此,A無法偽造虛假的一次性公鑰和簽名來進行惡意活動。
② 非法用戶C無法偽造虛假的一次性公鑰和有效的簽名
其次,C無法利用合法用戶A的公開信息(PA, UA,VA)和對消息m的簽名<z, Y>進行偽造。C如果選擇b∈,計算PC=bPA,UC=bUA,VC=bVA,將(PC, UC,VC)作為自己的一次性公鑰。雖然(PC, UC,VC)可以通過式(1)驗證,但是C無法計算出相應的簽名私鑰basA生成正確的簽名。因為通過PA=asAP獲得asA面臨解決橢圓曲線群上的離散對數問題,而通過z=y+asAh獲得asA首先要獲得y,y沒有公開傳送,要通過Y=yP獲得y同樣面臨解決橢圓曲線群上的離散對數問題。因此C無法生成正確簽名通過式(2)驗證。
在算法中,用戶A的完整私鑰為sA=xA+dA,其中,dA是TC為用戶產生的部分私鑰,xA是用戶自己選擇的秘密數構成另一部分私鑰。xA是保密的,其他用戶包括TC都無法獲得xA。即使獲得TC的主密鑰,由于無法獲得xA,仍無法得到用戶
4) 算法無密鑰托管A的完整私鑰,因此本算法不存在密鑰托管問題。

表1 算法效率比較
以下將對算法的計算開銷和通信開銷進行分析,并與文獻[9,10]中的算法進行比較,如表1所示。考慮的運算包括雙線性對運算(P)、1G上的點乘運算(Pm)、1G上的點加運算(Pa)、2G上的點乘運算(Gm)和映射到橢圓曲線上點的散列運算(MtP),相對于這些運算,其他運算可以忽略不計[10]。
由表1中數據可以看出,本算法具有更小的計算開銷,同時本算法的一次性公鑰和簽名長度較短,因此通信開銷較小,所以本算法具有更高的執行效率,更適合在普適環境中應用。
系統包括3類實體:可信中心(TC)、用戶(A)和服務提供者(SP)。TC負責為系統中的合法用戶簽發基于身份的私鑰,并在服務提供者出示用戶惡意活動證據的情況下,揭示用戶的身份。服務提供者在為用戶提供服務前,要對用戶進行認證,確認用戶的合法性,即用戶擁有TC簽發的私鑰。同時用戶也要確認服務提供者是合法的。在認證過程中要滿足以下要求。首先,服務提供者和其他實體都無法確定用戶的真實身份,充分保護用戶的隱私。另外,當用戶進行惡意活動時,服務提供者通過和TC合作可以揭示用戶身份。本方案的安全性基于以下假設,TC是誠實可信的,即TC不會發送虛假的信息,不會利用掌握的用戶密鑰信息實施假冒攻擊,不會隨意向其他實體揭露用戶的真實身份,除非合法的SP提供了某用戶的惡意活動證據。
方案利用第2節中的一次性公鑰及簽名算法結合散列鏈認證技術來實現匿名認證。散列鏈認證技術可以減少簽名次數,提高認證效率。方案中用戶只需要在首次訪問服務時執行一次性公鑰及簽名算法,在之后訪問服務時利用散列鏈作為認證憑證。方案包括4個階段:系統建立、私鑰生成、認證和惡意用戶身份恢復。
1) 系統建立
TC按照2.1節中描述的方法產生系統參數,選定系統公私鑰對(s, Ppub),定義安全的散列函數:H1:{0,1}*×G1→,H2:{0,1}*→,H3:G1→{0,1}*,H4:{0,1}*→{0,1}*。并公布系統參數{G1, G2, e, q,P, Ppub,H1, H2,H3,H4}。
2) 私鑰生成
私鑰生成方法同2.1節中描述方法相同。用戶A的身份標識為IDA,經過與TC交互A獲得的完整私鑰為sA=xA+dA,其中,dA=rA+sc( c=H1( IDA,RA))是TC為用戶A生成的部分私鑰,xA是用戶A選擇的秘密數,RA是TC為用戶A生成的輔助參數。A妥善保存(sA,RA),TC保存了與用戶A身份相關的信息(IDA,c, RA)。SP的長期私鑰為sP∈,SP的公鑰為PKP=sPP,SP妥善保存sP,將PKP向全網公開。
3) 認證
當用戶A第一次要求SP提供服務時,通過以下步驟向SP證明自己是合法用戶。
step1 用戶A隨機選擇x∈{0,1}*,計算C0=H4(x),Ci=(C0),1≤i≤n ,A安全的保存所有的散列值,散列值的計算可以利用空閑時間離線完成。用戶A隨機選擇a∈,計算PA=asAP,UA=aRA,VA=acP( c=H1( IDA,RA)),得到一次性公鑰WA=(PA, UA,VA)。A獲取當前時間戳TA,隨機選擇yA∈,計算YA=yAP,YA′=yAPKP,h=H2(Cn, TA, YA),計算簽名z=yA+asAh。A計算k=H3( YA)并保存k,加密Cn得σ=Cn⊕k,向SP發送消息<TA, WA,YA′,z,σ>。
step2 SP收到消息后,檢查時戳TA的新鮮性,若TA新鮮,則按照2.1節中方法驗證一次性公鑰WA是否合法。驗證通過后,SP計算YA=,計算k=H3( YA),解密Cn=σ⊕k,驗證簽名zP=YA+H2(Cn, TA, YA)PA是否成立。驗證通過后,則確認A為合法用戶。SP將Cn保存到一個列表L中。SP選擇yP∈,計算YP=yPP,計算會話密鑰kAP=H3(yPYA),獲取當前時間戳TP,向A發送消息<TP,Ek( YP, TP, TA)>,E為對稱加密算法。
step3 A收到消息后,檢查時戳TP的新鮮性,若新鮮,則利用k解密Ek(YP, TP, TA)并核對TP和TA是否一致。若一致,則通過對SP的認證,然后計算kAP=H3(yAYP),并把kAP作為之后通信的會話密鑰。
當用戶再次要求SP提供服務時,可以利用保存的散列值Ci,0≤i<n作為認證憑證,不需要構造一次性公鑰及簽名,SP僅需要進行簡單的散列運算就可以實現對用戶A的認證,利用散列鏈進行認證可以減少認證的計算開銷和通信開銷。以用戶A的第2次認證為例,具體過程如下。
step1 A隨機選擇yA∈,計算YA=yAP,YA′=yAPKP,計算k=H3( YA)并保存k,對Cn-1加密得z=Cn-1⊕k ,向SP發送消息<YA′,z>。
step2 SP收到消息后,計算YA=,k=H3( YA),解密Cn-1=z⊕k ,計算H4(Cn-1),查找列表L中是否存在H4(Cn-1),若存在則證明當前用戶為已通過認證的合法用戶,將列表L中的Cn替換為Cn-1。SP選擇yP∈,計算YP=yPP,計算會話密鑰kAP=H3(yPYA),獲取當前時間戳TP,向A發送消息<TP,Ek( YP, TP, YA′)>,E為對稱加密算法。
step3 A收到消息后,檢查時戳TP的新鮮性,若新鮮,則利用k解密Ek( YP, TP, YA′ )并核對TP和YA′,若一致,則通過對SP的認證,然后計算kAP=H3(yAYP),并把kAP作為之后通信的會話密鑰。
4) 惡意用戶身份恢復
如果用戶A在訪問SP服務的過程中,進行了惡意操作,SP將A的惡意操作證據和A的一次性公鑰WA=(PA, UA,VA)發送給TC。TC首先驗證SP提供的證據屬實,然后利用保存的信息(IDA,c, RA)驗證e( UA,cP)=e( VA,RA)是否成立,若成立則證明進行惡意操作的用戶為A。
1) 雙向認證
本方案可以實現用戶A和服務提供者SP之間的雙向認證。SP可以確定當前請求訪問服務的用戶A是合法的。在A首次訪問服務時,SP通過驗證A的一次性公鑰及對nC和AT的簽名完成對A的認證。由2.2節中分析可知一次性公鑰及簽名算法是安全的,同時簽名中包含了時間戳可以保證簽名的新鮮性,所以SP對用戶A的認證是安全的。在用戶之后訪問服務時,SP通過散列鏈來認證用戶A。以第2次認證過程為例,SP通過驗證H4(Cn-1)是否等于Cn來認證用戶,由于Cn已經通過SP的認證,根據散列函數的單向計算特性,只有已通過認證的合法用戶A才能出示正確的Cn-1。用戶A也可以確定當前的服務提供者SP是合法的,A通過解密Ek(YP, TP, TA)并核對TP和TA完成對SP的認證,因為只有合法的SP才能利用私鑰由Y′A計算出YA,進而計算出正確的密鑰k。
2) 用戶匿名性
在認證過程中,其他用戶和SP都無法確定用戶A的真實身份。用戶A首次認證時,利用一次性公鑰及對nC和AT的簽名作為認證信息,根據一次公鑰的匿名特性,其他用戶和SP都無法根據認證信息確定用戶A的真實身份。在之后的認證過程中,A利用Ci(0≤i<n)作為認證憑證,同樣不會泄露A的身份。
3) 無關聯性
對于外部用戶,本方案具有完善的無關聯性。A提供的一次性公鑰都經過隨機數的處理,具有隨機性,外部用戶無法根據一次性公鑰將不同的會話聯系起來。雖然同一個散列鏈中的Ci(0≤i≤n)存在關聯性,但是本方案對Ci(0≤i≤n)進行了加密處理,外部用戶無法得到Ci(0≤i≤n)的明文,因此外部用戶同樣無法根據Ci(0≤i≤n)將不同的會話聯系起來。對于SP,本方案具有部分無關聯性。由于SP可以解密獲得Ci(0≤i≤n)的明文,SP可以將利用同一個散列鏈認證的n個會話聯系起來。由于不同散列鏈之間不存在聯系,對于采用不同散列鏈認證的會話,SP無法將其聯系起來。
4) 安全的會話密鑰建立
方案中用戶和SP可以建立安全的會話密鑰kAP。會話密鑰是由雙方選擇的密鑰協商參數yA和yP共同決定的,并且公開發送的YA′和加密傳送的YP不會導致yA和yP的泄露,因此協商的密鑰滿足已知會話密鑰安全、前向安全性和密鑰控制安全。
5) 用戶身份可追蹤性
由于一次性公鑰在提供匿名性的同時具有可追蹤性,當用戶A進行惡意活動后,SP將A的一次性公鑰提交給TC,TC利用保存的(IDA,c, RA)可以揭示用戶A的身份。該特性可以有效防止用戶進行非法操作。
將本方案與現有普適環境中的匿名認證方案進行安全性比較,結果如表2所示。其中,“Y”表示滿足安全要求,“N”表示不滿足,“P”表示部分滿足(對服務提供者SP不滿足)。由表2中數據可以看出,同文獻[2,6,7]中方案相比,本方案在滿足雙向認證、用戶匿名性等安全要求的同時,能夠對惡意用戶身份進行追蹤,從而可以防止用戶進行惡意活動。同文獻[4,5]中方案相比,本方案具有更強的匿名性,而文獻[4,5]中方案只能實現部分匿名性(對服務提供者SP不滿足匿名性)。因此,本方案在安全性上優于其他方案。

表2 安全性比較
本方案在認證過程中主要的計算開銷來自于驗證一次性公鑰,需要3次雙線性對運算,這些主要的運算由計算能力較強的服務提供者來完成,而用戶只需要進行橢圓曲線上的點乘和點加運算,因此方案不會給用戶端帶來較大的計算開銷,滿足普適環境中用戶端計算量小的要求。同時,本方案只需在用戶首次認證時進行雙線性對運算,在之后的訪問中,只需要進行橢圓曲線上的點乘和點加運算,因此在多次訪問過程中方案的平均計算開銷較小。
為了保護用戶隱私,普適環境下的認證方案需要滿足用戶匿名性要求。本文提出了一種基于身份的一次性公鑰及簽名算法,算法在保證安全性的基礎上具有較小的計算和通信開銷。基于該算法和散列鏈認證技術設計了一種普適環境中的匿名認證方案,在提供強匿名性的同時,可防止用戶進行惡意活動。同現有普適環境中的匿名認證方案相比,本方案具有更好的安全性。
[1] YAO L, WANG L, KONG X W, et al. An inter-domain authentication scheme for pervasive computing environment[J]. Computers and Mathematics with Applications, 2010, 59(2):811-821.
[2] REN K, LOU W J, KIM K, et al. A novel privacy preserving authentication and access control scheme for pervasive computing environments[J]. IEEE Transactions on Vehicular Technology, 2006, 55(4):1373-1384.
[3] FORNE J, HINAREJOS F, MARIN A, et al. Pervasive authentication and authorization infrastructures for mobile users[J]. Computers &Security, 2010, 29(4):501-514.
[4] KANG M H, RYOU H B, CHOI W C. Design of anonymity-preserving user authentication and key agreement protocol for ubiquitous computing environments[A]. International Workshop on Internet and Network Economics[C]. Hong Kong, China, 2005.491-499.
[5] WANG R C, JUANG W S, WU C C, et al. A lightweight key agreement protocol with user anonymity in ubiquitous computing environments[A]. International Conference on Multimedia and Ubiquitous Engineering[C]. Seoul, Korea, 2007. 313-318.
[6] REN K, LOU W J. Privacy-enhanced, attack-resilient access control in pervasive computing environments with optional context authentication capability[J]. Mobile Networks and Applications, 2007,12(1):79-92.
[7] LI C T, HWANG M S, CHU Y P. Further improvement on a novel privacy preserving authentication and access control scheme for pervasive computing environments[J]. Computer Communications, 2008,31(18):4255-4258.
[8] 張秋璞, 郭寶安. 基于ID的一次性盲公鑰[J]. 電子學報, 2003,31(5):669-771.ZHANG Q P, GUO B A. One-off blind public key based on ID[J].Acta Electronica Sinica, 2003, 31(5):669-771.
[9] 張勝, 徐國愛, 胡正名等. 一種基于身份一次性公鑰的構造[J]. 電子與信息學報, 2006, 28(8):1412-1414.ZHANG S, XU G A, HU Z M, et al. Construction of the one-off public key based on identity[J].Journal of Electronics&Information Technology, 2006, 28(8):1412-1414.
[10] 劉宏偉, 謝維信, 喻建平等. 基于身份的公平不可否認協議[J]. 通信學報, 2009, 30(7):119-123.LIU H W, XIN W X, YU J P, et al. Fare non-repudiation protocol based on identity-based cryptography[J]. Journal on Communications,2009, 30(7):119-123.