姜 參
(渤海大學(xué) 電子商務(wù)系,錦州 121000)
隨著人類活動(dòng)日益網(wǎng)絡(luò)化,人們更加依賴計(jì)算機(jī)化的社會(huì)結(jié)構(gòu),更加依賴P2P網(wǎng)絡(luò)來共享信息、表達(dá)觀點(diǎn)和交換數(shù)據(jù)。這就需要一個(gè)匿名的體系來更好的保護(hù)用戶的個(gè)人隱私。
無需考慮到相關(guān)責(zé)任而一味的追求用戶隱私的保密性是不切實(shí)際的。用戶節(jié)點(diǎn)沒有對(duì)被辨認(rèn)出來的擔(dān)心,就很難規(guī)范其行為。已有的責(zé)任認(rèn)定已經(jīng)可以通過傳統(tǒng)的認(rèn)證機(jī)制(訪問控制或者身份驗(yàn)證)來核實(shí)請(qǐng)求服務(wù)的用戶身分。在密碼學(xué)的經(jīng)典例子中有Kerberos和標(biāo)準(zhǔn)公共密鑰基礎(chǔ)設(shè)施(PKI),而這里客戶必須放棄他們個(gè)人信息的保密性來通過驗(yàn)證。
傳統(tǒng)的匿名證書系統(tǒng)假設(shè)只有客戶端而非服務(wù)器關(guān)心其隱私保密性。在P2P系統(tǒng)中客戶端和服務(wù)器是地位同等的,這就使得現(xiàn)有的證書系統(tǒng)都不能恰當(dāng)?shù)闹苯悠胶馑矫苄院蛯?duì)應(yīng)的問責(zé)。而雙重身份對(duì)等節(jié)點(diǎn)的隱私保護(hù)和問責(zé)機(jī)制,恰恰是如今蓬勃發(fā)展的非中心化網(wǎng)絡(luò)所必須具備的安全手段。
現(xiàn)有的k-Times匿名認(rèn)證只能在結(jié)點(diǎn)來自同一個(gè)服務(wù)器的時(shí)候用標(biāo)簽唯一的標(biāo)示對(duì)方。秘密握手(SHSs)也只允許相同組的成員之間不暴露各自的組屬性的前提下共享一個(gè)會(huì)話密鑰。這些都不具備如今P2P網(wǎng)絡(luò)的多服務(wù)器多角色的全局識(shí)別能力。
基于已有的匿名認(rèn)證體系,結(jié)合點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)特點(diǎn)提出改進(jìn)的初步方案。
可鏈接內(nèi)容(以下簡(jiǎn)稱LC)是確定認(rèn)證可鏈接性的運(yùn)行于框架中的屬性集聚。特別指的是當(dāng)只有兩個(gè)認(rèn)證同時(shí)進(jìn)行的時(shí)候是可鏈接,或者當(dāng)可鏈接內(nèi)容的屬性都來自相同的約束前提的時(shí)候。
在k-TAA中,只有來自同一個(gè)客戶端且同時(shí)運(yùn)行的認(rèn)證是可鏈接的。k-TAA的可鏈接內(nèi)容是LC =(client-ID,time)即身份和時(shí)間的聚集[1]。
PPAA中的可鏈接內(nèi)容 正確的選擇可鏈接內(nèi)容是建立PPAA的第一步。在本次設(shè)計(jì)中PPAA可鏈接內(nèi)容是客戶端和服務(wù)器端身份的無序?qū)蛯?duì)應(yīng)事件,這里PPAA中也是需要執(zhí)行認(rèn)證的前提。
LC ={{client-ID,server-ID},event-ID}。
面向事件的可關(guān)聯(lián)組的簽名環(huán)以及K-TAA是不能作為PPAA框架的安全手段的,原因是服務(wù)器端的驗(yàn)證不在其可鏈接的內(nèi)容中。但是可以通過映射一個(gè)事件(例如時(shí)間)進(jìn)入服務(wù)器驗(yàn)證的方法使其成為面向事件可鏈接組或認(rèn)證環(huán)(K-TTA)的可鏈接內(nèi)容[2]。
因此,LC成為(client-ID,server-ID)而由同一用戶運(yùn)行的到不同的服務(wù)器變認(rèn)證得不可鏈接。具體地,帶有加密xi的客戶端i針對(duì)服務(wù)器j形成ti,j=gxi j,其中g(shù)j是服務(wù)器端參數(shù)。于是同一個(gè)節(jié)點(diǎn)的標(biāo)簽對(duì)于不同服務(wù)器來講是絕對(duì)不可鏈接的。
假設(shè)已知有Diffie-Hellman協(xié)議描述下的組G1,使H:{0,1}*→G1作為秘密密鑰的哈希函數(shù),事件識(shí)別碼是任意長度的字符串。每一個(gè)用戶由GM頒發(fā)一個(gè)數(shù)字證書cred=(A,x,y)∈G1×Z2p,其中x,y∈RZp,A值在所有的證書中不同。在基本框架中,標(biāo)簽是函數(shù)f的輸出,同時(shí)作為節(jié)點(diǎn)初始化證書ced1=(A,x1,y1)的輸入,回應(yīng)節(jié)點(diǎn)cre2=(A2,x2,y2)并且事件ID為eid[3]。函數(shù)定義如下:
f:(ced1,crd2,eid) →tag={τ1,τ2},其中τ1=Ax2 1H(eid)y1 ,τ2=Ax1 2H(eid)y2
協(xié)議框架 以初始節(jié)點(diǎn)Alice(crd1=(A1,x1,y1))和回應(yīng)節(jié)點(diǎn)Bob(crd2=(A2,x2,y2))在事件(eid)中為例,協(xié)議完成后他們各自輸出一個(gè)標(biāo)簽。
為了進(jìn)一步保證協(xié)議參與結(jié)點(diǎn)的規(guī)范行為需要引入必要的機(jī)制,例如采用SPK[4]框架來進(jìn)一步約束協(xié)議中每一步的正確性。這里,我們引入同G1同樣描述的G2,使(G1,G2)成為被q-SDH(q-Strong Diffie-Hellman)假定約束平行的一對(duì)組。讓l成為多項(xiàng)式中使λ足夠大的安全參數(shù)。使g1,…,g5∈G1成為G1的原始構(gòu)成,這樣就使相關(guān)的在g1,…,g5和g0間的離散對(duì)數(shù)未知。使H:{0,1}*→Z作為秘密密鑰算法的哈希函數(shù)。H可以被體系中的各個(gè)SPK使用。
設(shè)定 GM隨機(jī)選擇γ∈RZp并計(jì)算ω=hγ 0∈G2。組密鑰是gsk=(γ),組公鑰是是gpk=(ω)
注冊(cè) 當(dāng)用戶Alice和GM的協(xié)議成功完成,Alice由cred=(A,e,x,y,z)∈G1×Z4p得到一個(gè)證書cred,并且Ae+r=g0gx1gy2gz3 。向GM輸入的私鑰是所管轄組的秘密密鑰gsk。協(xié)議運(yùn)行如下:
1)GM向Alice發(fā)送<N0>,其中N0∈R{0,1}l是隨機(jī)的。
2)Alice發(fā)送<C,Ⅱ0>給GM,其中C= gx1gy 2gz3∈G1是(x,y,z)∈RZ3P的委托,Ⅱ0是消息M=N0‖C SPK{(x,y,z):C=gx 1gy2gz3}(M)的數(shù)字簽名依據(jù)。這可以證明C的正確與否,同時(shí)參照上面的SPK作為SPK0。
3)如果Ⅱ0的認(rèn)證返回?zé)o效那么GM會(huì)在失敗處終止。否則GM向Alice發(fā)送<A,e,z2>,其中e,z2∈RZp并且A=(g0Cgz23)1/e+γ∈G1
4)Alice的計(jì)算機(jī)中z=z1+z2,如果ê(A,whe o)≠ê(g0gx1gy2gz3,h0)她也終止于這個(gè)失敗。否則她輸出的cred=(A,e,x,y,z)就作為她的證書。
考慮系統(tǒng)的安全需要,不允許兩個(gè)注冊(cè)協(xié)議的實(shí)例同時(shí)運(yùn)行,GM逐個(gè)注冊(cè)用戶。
驗(yàn)證 愛麗絲(作為發(fā)起人)和鮑勃(作為響應(yīng))在一個(gè)帶有標(biāo)識(shí)符 eid∈(0,1)*的事件中要相互驗(yàn)證彼此。Alice和Bob共同的輸入是eid,不同的輸入是Alice和Bob他們自己的私有證書,分別是(A1,e1,x1,y1,z1)和(A2,e2,x2,y2,z2)[5]。下面描述了4輪的身份驗(yàn)證協(xié)議的步驟:
1)Alice 發(fā)送<N1,U1, V1,Π1> 給Bob, 其中:
N1∈R{0,1}l,r1∈RZp
U1=Ar11∈G1,V1=H(eid)r1∈G1
Π1是對(duì)于消息M=m1=eid‖N1‖U1‖V1∈{0,1}*時(shí)
SPK{(A,e,x,y,z,r):Ae+r=g0gx1gy2gz 300000∧U1=Ar∧V1=H(eid)r}(M)的簽名, Alice由已知的(A1,e1,x1,y1,z1)產(chǎn)生。上面的SPK作為SPK1。
2)如果Π1的認(rèn)證返回?zé)o效Bob也終止于這個(gè)失敗。否則他發(fā)送<N2,U2, V2,Π2>給Alice,其中
N2∈R{0,1}l,r2∈RZp
U2=Ar2 2∈G1,V2=H(eid)r2∈G1,W2=Ux2 1Vy2 1,
Π2是在M=m2=m1‖Π1‖N2‖U2‖V2‖W2‖∈{0,1}*時(shí)
Ae+r=g0gx 1gy 2gz 3 ∧
SPK{(A,e,x,y,z,r):V2= H(eid)r∧U2=Ar∧}(M)
W2=Ux1Vy1的簽名, Bob由已知的(A2,e2,x2,y2,z2,r2)產(chǎn)生。將上面的SPK作為SPK2。
3)如果Π2的認(rèn)證返回?zé)o效Alice也終止于這個(gè)失敗。否則她發(fā)送<W1,r1, Π3>給Bob,其中
W1=Ux12Vy12∈G1,r1=W1/r12∈G1
Π3是M=m3=m2‖Π2‖W1‖t1∈{0,1}*時(shí)
Ae+r=g0gx 1gy 2gz 3 ∧
SPK{(A,e,x,y,z,r):U1=Ar∧V1=H(eid)r∧}(M)
W1=Ux 2Vy 2∧W2=tr 1的簽名,這里Alice可以用她已知的(A1,e1,x1,y1,z1,r1)產(chǎn)生。把上面的SPK作為SPK3。
4)如果ΠA的認(rèn)證返回?zé)o效Bob也終止于這個(gè)失敗。否則她發(fā)送< r2, Π4>給Alice,其中
τ2=W1/r21,
Π4是在M=m4=m3‖Π3‖t2∈{0,1}*的前提下
SPK{(r):W1=τr 2∧V2=H(eid)r}(M)的簽名,Bob可以用已知的r2來產(chǎn)生。把上面的SPK作為SPK4。
Bob計(jì)算出tag2={τ1,τ2},終止。
5)如果Π4的認(rèn)證返回?zé)o效Alice也終止于這個(gè)失敗。否則她計(jì)算出tag1={τ1,τ2},終止。
連接驗(yàn)證 輸入標(biāo)簽tag1,tag2,如果他們相等,算法返回已連接,否者告知未連接。
本文提出的對(duì)等節(jié)點(diǎn)匿名身份驗(yàn)證(PPAA)較好地平衡了對(duì)等用戶的網(wǎng)絡(luò)隱私保護(hù)和對(duì)應(yīng)的問責(zé),使這種非中心網(wǎng)絡(luò)中的結(jié)點(diǎn)也具有了雙向的對(duì)等身份,并提供較高的安全保證和較好的運(yùn)行效率。
[1] Giuseppe Ateniese,Marina Blanton,and Jonathan Kirsch.Secret Hands hakes with Dynamic and Fuzzy Matching [J].NDSS.The Internet Society,2007.
[2] Man Ho Au,Willy Susilo,and Yi Mu.Constant-size dynamic-taa [J].SCN.volume 4 116 of LNCS.2006:111-125.
[3] Man Ho Au,Willy Susilo,and Siu-Ming Yiu.Event-oriented k-times revocable-if-linked group signatures[M].ACISP,volume 4058 of LNCS.2006:223-234
[4] Mihir Bellare and Phillip Rogaway.Random oracles are practical:a paradigm for designing efficient protocols.In Proceeding of the1st ACM conference on Computer and communications security[M],ACM ,1993:62-73.
[5] Jan Camenisch, Susan Rosenberger,Mark Ulf Kohl Weiss,Anna Lysyanskaya,and Mira Meyerovich.How to win the clone wars:effcient periodicn-times anonymous authentication[J].Computer and Communications Security,2006:201-210.
[6] Maxim Raya and Jean-Pierre Hubaux.Securing vehicular ad hoc networks[J].Journal of Computer Security.2007,15(1):39-68.
[7] TPM Work Group.TCG TPM Speciffcation Version 1.2 Revision103[J].Trusted Computing Group,2007.
[8] Patrick P.Tsang and Sean W.Smith.PPAA:Peer-to-peer anonymous authentication[J]ACNS,LNCS.Springer,2008.