摘 要:本文提出一個(gè)匿名數(shù)字證書的發(fā)布方案,方案允許實(shí)體用已獲得的實(shí)名證書向證書發(fā)布機(jī)構(gòu)申請(qǐng)多個(gè)匿名數(shù)字證書,將不同的匿名數(shù)字證書應(yīng)用于網(wǎng)絡(luò)中文件傳輸?shù)牟煌A段,可以在不泄露實(shí)體真實(shí)身份的同時(shí),增加要傳輸文件的安全性。
關(guān)鍵詞:匿名數(shù)字證書;文件傳輸;安全性
中圖分類號(hào):TP393.08
1 背景介紹
在網(wǎng)絡(luò)傳輸中,實(shí)體間重要文件的傳輸是一項(xiàng)很重要的活動(dòng),如證書,合同簽名,重要的電子商品,以及付費(fèi)的收據(jù)等文件的傳輸。正因?yàn)檫@些文件的重要性,所以交換過程必須安全可靠,避免有些惡意實(shí)體可以得到它們想要的文件。因此,在文件傳輸中需要考慮兩個(gè)特性:匿名性和不可否認(rèn)性。匿名性保護(hù)了實(shí)體的身份和位置等信息,不可否認(rèn)性是防止文件的發(fā)送者不承認(rèn)自己發(fā)送了文件。匿名性是要隱藏實(shí)體的真實(shí)身份,而不可否認(rèn)性是要暴露實(shí)體的真實(shí)身份,因此,需要使用有效的方法來解決這兩個(gè)特性間的沖突。本文提出使用匿名證書來解決這個(gè)問題,實(shí)體可以通過已有實(shí)名證書從多個(gè)CA處獲得匿名證書,并且這些CA是不能相互串通的。
2 方案簡(jiǎn)介
在實(shí)體所獲得的證書中,標(biāo)有實(shí)體真實(shí)身份的證書稱為實(shí)名證書,假設(shè)存在多個(gè)CA(Ai)用來發(fā)布證書,每個(gè)實(shí)體擁有至少一個(gè)實(shí)名證書,并且實(shí)體可以根據(jù)已有的實(shí)名證書申請(qǐng)多個(gè)匿名證書。本方案中允許一個(gè)實(shí)體擁有多個(gè)匿名數(shù)字證書主要是為了提高文件傳輸?shù)陌踩?,?shí)體的不同匿名證書可以用于文件傳輸?shù)牟煌A段,因?yàn)檫@些證書好像沒有任何聯(lián)系,所以這就阻止了惡意的實(shí)體通過這些傳輸階段鏈接到同一個(gè)實(shí)體,在匿名應(yīng)用中避免這樣的情況是非常必要的。
本方案中匿名證書的發(fā)布還要注意以下兩個(gè)問題:
(1)控制匿名數(shù)字證書的數(shù)量。如果不嚴(yán)格控制匿名證書的數(shù)量,則CA的通信處理會(huì)大大增加,它將導(dǎo)致匿名證書性能的降低和證書管理方面的問題。因此,必須嚴(yán)格控制一個(gè)實(shí)體的匿名數(shù)字證書的數(shù)量。
(2)證書有效期的設(shè)置。為了簡(jiǎn)化證書的管理和提高證書的可靠性,當(dāng)實(shí)體的一個(gè)證書到期了,那么由這個(gè)過期證書直接或間接發(fā)布的所有證書都應(yīng)該視為到期。如果實(shí)體的不同證書使用相同的有效期,那么惡意實(shí)體就可以利用這些證書相同的有效期去鏈接到同一實(shí)體。
3 符號(hào)說明
本文中所使用的符號(hào)及說明如下:
(pki,a,ski,a)是由CA(Aa)發(fā)給實(shí)體Pi的證書的公鑰和私鑰,(pka,ska)是CA(Aa)自己的公鑰和私鑰。
Ek(x)表示數(shù)據(jù)x用密鑰k進(jìn)行加密后的密文。
x,y表示數(shù)據(jù)項(xiàng)x,y。
H(x)表示哈希函數(shù)。
Pi→Pj:m表示一個(gè)實(shí)體Pi通過一個(gè)普通信道向另一個(gè)實(shí)體Pj發(fā)送信息m。
Pi→APj:m表示實(shí)體Pi通過一個(gè)匿名信道向另一個(gè)實(shí)體Pj發(fā)送信息m,這里Pi知道Pj的地址和身份,而Pj不知道Pi的地址和身份。如果Pi要求Pj對(duì)它發(fā)送的信息做出響應(yīng),Pi需要給Pj發(fā)送信息m的同時(shí)再發(fā)送一個(gè)匿名的回復(fù)地址。
Ci,b是由CA(Ab)發(fā)給實(shí)體Pi的一個(gè)實(shí)名或匿名證書,它可以表示為Ci,b=(Ab,Ii,b,pki,b,ei,b,si,b),其中si,b=Eskb(h(Ab,Ii,b,pki,b,ei,b))是Ab的簽名,Ii,b,pki,b和ei,b,是Pi的真實(shí)身份或匿名,證書的公鑰和證書的有效期。我們假設(shè)每一個(gè)實(shí)體都知道所有CA的公鑰。
4 匿名證書的發(fā)布方案
為了限定匿名證書的數(shù)量,我們假設(shè)每一個(gè)實(shí)體擁有一個(gè)樹形證書結(jié)構(gòu),一個(gè)實(shí)名證書是樹根。圖1描述了這樣一個(gè)證書樹,根結(jié)點(diǎn)是由Ao發(fā)布給Pi的一個(gè)實(shí)名證書,其它證書都是基于這個(gè)實(shí)名證書直接或間接發(fā)布的匿名證書。例如,圖中的Ci,o是Ci,a的父結(jié)點(diǎn),Ci,a是通過證書Ci,o直接發(fā)布的,Ci,o是Ci,b的祖父結(jié)點(diǎn),Ci,b是間接地通過Ci,a由Ab發(fā)布的證書。很明顯,如果Pi擁有m個(gè)實(shí)名證書,那么Pi就會(huì)擁有m個(gè)相應(yīng)的證書樹。
圖1 證書樹
對(duì)于每個(gè)證書樹,我們都需要設(shè)置證書樹的層數(shù)和子證書的個(gè)數(shù),每個(gè)CA(Aj)需要設(shè)置兩個(gè)值mlj和mcj。mlj表示對(duì)于任意由Aj發(fā)布的實(shí)名證書的證書樹的層數(shù)不能超過mlj;mcj表示對(duì)于任意由Aj發(fā)布的實(shí)名或匿名證書,如果它擁有子證書,那么子證書的數(shù)量不能超過mcj。一個(gè)證書如果沒有子證書被稱為樹的葉子。當(dāng)一個(gè)實(shí)體Pi請(qǐng)求CA(Ab)根據(jù)現(xiàn)有的證書Ci,a發(fā)布一個(gè)匿名證書Ci,b時(shí),匿名證書Ci,b的有效期不應(yīng)該比證書Ci,a的有效期長(zhǎng),也就是lei,b 下面我們介紹發(fā)布匿名證書的四個(gè)階段。假設(shè)實(shí)體Pi請(qǐng)求CA(Ab)根據(jù)已有的證書Ci,a來發(fā)布一個(gè)新證書Ci,b。第1階段,實(shí)體Pi向Ab發(fā)出請(qǐng)求,這個(gè)請(qǐng)求包括Aa的真實(shí)身份和數(shù)據(jù)項(xiàng)xi,b,這個(gè)信息只能被Aa所驗(yàn)證,請(qǐng)求信息通過匿名信道發(fā)送,Ab不需要知道實(shí)體的真實(shí)身份。第2階段,Ab發(fā)送xi,b及其它相關(guān)的數(shù)據(jù)項(xiàng)給Aa。第3階段,Aa通過驗(yàn)證xi,b來證明實(shí)體Pi請(qǐng)求的真實(shí)性,驗(yàn)證成功后授權(quán)Ab為實(shí)體Pi發(fā)布證書。第4階段,Ab根據(jù)授權(quán)發(fā)布新的證書Ci,b。 匿名證書發(fā)布過程及相關(guān)的定義 T1.Pi→AAb:Epkb(Aa,pki,b,sei,b,sni,b,xi,b) T2.Ab→AAa:xi,b T3.Aa→AAb:sni,b,Eki,b(sri,b) T4.Ab→APi:Ci,b 匿名證書發(fā)布過程中使用的符號(hào)及說明如下: sei,b,sni,b:Pi選擇的隨機(jī)數(shù) li,a:Aa發(fā)布的實(shí)名證書Ci,a中標(biāo)注的Aa的真實(shí)身份信息 pki,b:Pi實(shí)名證書的公鑰 ki,b=h(Ab,pki,b,sei,b) aui,b=Eski,a(Aa,li,a,sni,b,ki,b) xi,b=Epka(li,a,aui,b) gri,b:Aa對(duì)Ab的授權(quán)值 sri,b=Eska(sni,b,ki,b,gri,b) Ci,b:Ab發(fā)布給Pi的匿名證書 下面詳細(xì)介紹匿名證書發(fā)布方案。 (1)在第T1階段,Pi定義一對(duì)公鑰和私鑰(pki,b,ski,b),產(chǎn)生兩個(gè)隨機(jī)數(shù)sni,b和sei,b,Pi計(jì)算出ki,b,aui,b和xi,b。這里,用Aa的公鑰pka對(duì)xi,b加密是為了只允許Aa知道Pi的真實(shí)身份Ii,a。用Aa的私鑰ska對(duì)aui,b加密是為了只讓Aa驗(yàn)證Pi的真實(shí)身份。Xi,b使得Ab從Aa處獲得允許驗(yàn)證與ki,b相關(guān)的公鑰pki,b,不需要讓Aa知道pki,b。如果需要,還可以為信息加上一個(gè)時(shí)間戳。 (2)在T2階段,Ab首先用私鑰skb對(duì)實(shí)體的信息進(jìn)行解密,并且證明Aa是一個(gè)合法的CA。如果驗(yàn)證失敗,Ab會(huì)終止協(xié)議的進(jìn)行。不用特殊指明,任何驗(yàn)證失敗都會(huì)導(dǎo)致協(xié)議的終止。如果驗(yàn)證通過,Ab會(huì)存儲(chǔ)所有數(shù)據(jù)并把xi,b轉(zhuǎn)發(fā)給Aa。 (3)在T3階段,Aa用自己的私鑰ska對(duì)xi,b解密,并且通過xi,b中由Aa發(fā)布的證書Ci,a證明實(shí)體的身份,并且這個(gè)證書沒有過期或被撤銷。如果驗(yàn)證通過,Aa用公鑰pki,a對(duì)xi,b中的aui,b進(jìn)行解密得到A’a,I’I,a,sni,b和ki,b。如果A’a=Aa并且I’I,a=Ii,a,則Aa就可以確定請(qǐng)求是實(shí)體Pi發(fā)出的。 (4)在T4階段,Ab用ki,b對(duì)Eki,b(sri,b)進(jìn)行解密,用私鑰pka對(duì)sri,b進(jìn)行解密。Ab驗(yàn)證sri,b中的sni,b和ki,b是正確的,并且gri,b中的sti,b>0。如果驗(yàn)證通過,Ab產(chǎn)生匿名Ii,b,設(shè)置有效期ei,b并且有ei,b si,b=Eskb(h(Ab,Ii,b,pki,b,ei,b)) Ci,b=(Ab,Ii,b,pki,b,ei,b,si,b) 如果Ab不允許發(fā)布證書,則Ab執(zhí)行下面的操作: Ab→APi:sni,b,Eskb(sni,b,’no certification’) 5 結(jié)束語 本文詳細(xì)介紹了匿名證書的發(fā)布方案,此方案發(fā)布的匿名證書具有匿名性,即使某個(gè)CA與惡意實(shí)體串通的情況下,對(duì)于攻擊者想要由匿名證書鏈接到實(shí)名證書也是很難的,在實(shí)體間文件傳輸?shù)牟煌A段使用不同的匿名證書,再通過匿名信道,可以大大提高文件傳輸過程的安全性。本文只研究了匿名證書的發(fā)布方案,匿名證書還要具有可追蹤性,當(dāng)由匿名證書簽名的信息受到質(zhì)疑時(shí),必須由權(quán)威機(jī)構(gòu)來證明信息的合法性,所以還需要研究基于證書樹結(jié)構(gòu)的匿名證書追蹤方案。 參考文獻(xiàn): [1]AndrewNash,williamDuane,CeliaJoseph,DerekBrink,張玉清,陳建奇,楊波,薛偉等譯.公鑰基礎(chǔ)設(shè)施(PKl)實(shí)現(xiàn)和管理電子安全[M].北京:清華大學(xué)出版社,2002:45-65. [2]William Stallings著,劉玉珍,王麗娜等譯.密碼編碼學(xué)與網(wǎng)絡(luò)安全-原理與實(shí)踐[M].北京:電子工業(yè)出版社,2005:14-16. [3]劉知貴,楊立春,蒲潔,張霜.基于PKI技術(shù)的數(shù)字簽名身份認(rèn)證系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2004(9):158-160. 作者簡(jiǎn)介: 作者單位:遼寧商貿(mào)職業(yè)學(xué)院,沈陽 110161