證書撤銷方法探究論文
時(shí)間:2022-11-04 03:51:00
導(dǎo)語:證書撤銷方法探究論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要PKI是網(wǎng)絡(luò)安全的基礎(chǔ),其安全性和可靠性直接影響到上層的網(wǎng)絡(luò)安全,證書撤銷是PKI系統(tǒng)中重要的一個(gè)方面。本文詳細(xì)討論了現(xiàn)存的證書撤銷狀態(tài)信息方法,并結(jié)合時(shí)戳服務(wù)提出了新的解決方案.該方法在現(xiàn)有時(shí)戳協(xié)議的基礎(chǔ)上,通過時(shí)戳提供證書的狀態(tài)信息,可以有效降低系統(tǒng)成本,提高系統(tǒng)的工作效率。
關(guān)鍵詞PKI;證書撤銷列表;時(shí)戳服務(wù)
0引言
信息安全是日漸得到社會(huì)各方注意的熱點(diǎn)問題之一。如何在公共網(wǎng)絡(luò)上保證信息的完整性、機(jī)密性和不可否認(rèn)性是各國推進(jìn)電子商務(wù)、發(fā)展網(wǎng)絡(luò)事業(yè)的最大挑戰(zhàn)。公鑰體制正迅速地成為解決這一問題的基礎(chǔ)技術(shù),但它的廣泛應(yīng)用要求有一個(gè)公鑰基礎(chǔ)設(shè)施來和管理這些公鑰值。公鑰基礎(chǔ)設(shè)施(PublicKeyInfrastructure,簡稱PKI)作為一個(gè)普適性的基礎(chǔ)設(shè)施,能為多種協(xié)議和安全應(yīng)用提供統(tǒng)一接口和底層支撐。它能在沒有安全保障的公共網(wǎng)絡(luò)中實(shí)現(xiàn)認(rèn)證、密鑰管理、數(shù)字簽名和不可否認(rèn)等服務(wù),從而最大限度地滿足網(wǎng)絡(luò)安全的需要。在網(wǎng)絡(luò)安全問題日趨嚴(yán)重的今天,PKI的應(yīng)用具有非常重要的意義。
當(dāng)密鑰對(duì)的公鑰以證書的形式公布后,在其整個(gè)有效期內(nèi)都應(yīng)該是可使用的。但是在某些情況下,比如發(fā)現(xiàn)或懷疑私鑰被損害、用戶名稱的改變以及主體和CA之間關(guān)系的變化(比如終止雇傭關(guān)系)等,可能需要在密鑰的有效期終止之前停止對(duì)該密鑰的使用。在這些情況下,客戶或CA需要撤消證書。用戶在驗(yàn)證一個(gè)證書是否有效時(shí),通常需要驗(yàn)證該證書是否已被撤消,因此證書撤銷在PKI系統(tǒng)中的重要性不言而喻。由于PKI是網(wǎng)絡(luò)安全的基礎(chǔ),所以其安全性和可靠性直接影響到上層的網(wǎng)絡(luò)安全,本文詳細(xì)討論了PKI技術(shù)中有關(guān)證書撤銷的方式,并提出了新的解決方案。
1現(xiàn)存證書撤銷方案
證書撤銷的方法很多,最常用的方法是周期性的機(jī)制,比如CA頒發(fā)的證書撤消列表(CertificateRevokationList,簡稱CRL)。另一種方法是在線查詢機(jī)制如在線證書狀態(tài)協(xié)議。在文獻(xiàn)[3]中對(duì)現(xiàn)存的證書撤銷方法給予了詳細(xì)說明,在此本文僅對(duì)這些方式給以簡單介紹。
1.1周期機(jī)制
CRL是一些帶有時(shí)戳的被撤消證書的列表。CRL可以在已知的網(wǎng)址上或從CA自己的X.500目錄條目中定期進(jìn)行。每個(gè)被撤消的證書在CRL中由其證書序列號(hào)來確認(rèn)。CRL的完整性和可靠性由它本身的數(shù)字簽名來保障。
大規(guī)模網(wǎng)絡(luò)環(huán)境中PKI的構(gòu)成是復(fù)雜的,往往用于鑒別密鑰的不再是一個(gè)單獨(dú)的證書,而是一個(gè)證書鏈。要確認(rèn)鏈中的證書的有效性,驗(yàn)證者需要獲取與每一個(gè)證書相對(duì)應(yīng)的CRL并一一加以驗(yàn)證。當(dāng)CA的數(shù)量和層次較多時(shí),下載和維護(hù)CRL就會(huì)成為沉重的負(fù)擔(dān)。
CRL是定期的,而撤銷請(qǐng)求的到達(dá)是隨機(jī)的,從證書撤銷請(qǐng)求到新的CRL公布之間的不確定的時(shí)間差。在這段時(shí)間中,被撤銷的證書的狀態(tài)是不一致的。這種不一致會(huì)嚴(yán)重影響到證書服務(wù)的質(zhì)量。所以對(duì)PKI系統(tǒng)來說,CRL的更新和頻率非常重要。另外隨著用戶的增加和系統(tǒng)使用時(shí)間延續(xù),CRL列表有可能變得越來越大,最后可能使用戶查詢起來極不方便。到目前為止,對(duì)這個(gè)問題的解決方案有如下幾種[6,7,8]:
(1)完全CRL:即所有撤消證書都列在一個(gè)CRL表里,這只可能適合于那些用戶群很小的PKI域。
(2)CA撤消列表(ARL):ARL不包括用戶證書的撤消信息,相當(dāng)于專項(xiàng)專用,因此在用戶驗(yàn)證證書路徑時(shí)會(huì)提高效率。
(3)CRL分布點(diǎn):這是目前最常采用的機(jī)制。系統(tǒng)對(duì)整個(gè)認(rèn)證空間分區(qū),并將一個(gè)單獨(dú)的CRL與每個(gè)區(qū)聯(lián)系。這種機(jī)制中的區(qū)段稱為CRL點(diǎn)或分配點(diǎn),所有撤消認(rèn)證的子集就保留在這些點(diǎn)上。分區(qū)可以按照撤消原因、撤消證書是CA證書還是終端實(shí)體證書、用戶的姓名等等來進(jìn)行。每個(gè)點(diǎn)由一套名稱來標(biāo)識(shí),這組名稱可以有多種形式。一旦點(diǎn)定義下來,它們就可以包括在證書中,以至于那些必須檢查證書狀態(tài)的應(yīng)用程序可以訪問在證書中CRL點(diǎn)而不是主CRL中指定的CRL點(diǎn),與主CRL相比,點(diǎn)中的CRL要小一些,可以加速證書狀態(tài)檢查的過程。CRL分配點(diǎn)可以通過使用證書中的cRLDistributionPoints擴(kuò)展與證書聯(lián)系起來。
(4)間接CRL:它使得在一個(gè)CRL中來自多個(gè)CA的撤消信息。間接CRL的使用可以減小用戶在進(jìn)行證書驗(yàn)證過程中需要檢索的總的CRL的數(shù)目。
(5)證書撤消樹:這是基于雜湊樹概念的一種撤消列表方式。
(6)Delta-CRL擴(kuò)展:Delta-CRL允許用戶只記錄上次完整CRL后所發(fā)生的改變。用戶維護(hù)著自己的CRL數(shù)據(jù)庫,并利用Delta-CRL不斷更新它。這樣避免了下載整個(gè)CRL,節(jié)省了通信帶寬和計(jì)算時(shí)間。每次Delta-CRL的時(shí)候,CA都需要同時(shí)一個(gè)完整的CRL。
事實(shí)上,這些擴(kuò)展并沒有完全解決CRL撤消證書的延遲性問題。
1.2在線檢查
周期性撤消列表方法的問題之一就是,證書使用系統(tǒng)不能容忍由于時(shí)間間隔而造成的撤消通知的延遲。根據(jù)應(yīng)用環(huán)境,許多損害來自密鑰受損的當(dāng)天。在理想的情況下,當(dāng)用戶要使用某受損的證書時(shí),他應(yīng)該馬上知道該證書已經(jīng)受損。
通過實(shí)時(shí)撤消檢查或在線狀態(tài)檢查(OCSP),希望確認(rèn)證書有效性的證書使用系統(tǒng)可以實(shí)現(xiàn)和相應(yīng)的CA服務(wù)器之間的在線通訊。該通訊將返回關(guān)于該證書狀態(tài)的一條指示。CA必須實(shí)現(xiàn)高度可用的在線服務(wù),這種服務(wù)對(duì)所有的潛在用戶都是可用的,并且必須在安全的環(huán)境中提供這種服務(wù)。對(duì)證書使用系統(tǒng)來說,該通訊在實(shí)時(shí)性和來源上必須是安全可靠的。這要求對(duì)每一次通訊,CA都產(chǎn)生數(shù)字簽名,證書使用系統(tǒng)驗(yàn)證該簽名。
實(shí)時(shí)狀態(tài)檢查在一些環(huán)境中運(yùn)轉(zhuǎn)良好,特別是在證書主體和證書使用的封閉環(huán)境中。但成本可能成為一個(gè)問題,尤其當(dāng)環(huán)境的規(guī)模擴(kuò)大時(shí),考慮到服務(wù)器需要為每個(gè)詢問通訊產(chǎn)生一個(gè)數(shù)字簽名,所要求的加密處理資源也將特別昂貴。安全服務(wù)器的運(yùn)作成本(包括所有安全控制的實(shí)施)將會(huì)很高。
2結(jié)合時(shí)間戳的證書撤銷方案
在電子商務(wù)中,時(shí)間戳服務(wù)是一個(gè)必不可少的服務(wù),通過時(shí)間戳服務(wù)為交易雙方提供一個(gè)可信的交易時(shí)間,來標(biāo)記交易的準(zhǔn)確發(fā)生時(shí)間。RFC文檔3161詳細(xì)規(guī)定了PKI服務(wù)中提供時(shí)間戳服務(wù)的協(xié)議。作為一項(xiàng)重要的服務(wù),時(shí)間戳服務(wù)同樣必須進(jìn)行安全防護(hù),才能保證時(shí)間戳的安全性。時(shí)間服務(wù)器作為可信第三方TTP,客戶端發(fā)送消息X的摘要H(X)到時(shí)間服務(wù)器,時(shí)間服務(wù)器獲取當(dāng)前時(shí)間t,并對(duì)(H(X),t)進(jìn)行簽字,把時(shí)間t和簽字SigTSS{(H(X),t)}回復(fù)給客戶端。
因?yàn)樗泻炞诌^程都需要一個(gè)可信的時(shí)間戳,作為簽字時(shí)間的一個(gè)保證。如果把時(shí)間服務(wù)器與CA的證書狀態(tài)服務(wù)器相關(guān)聯(lián),在客戶請(qǐng)求時(shí)間戳?xí)r,除了原來的時(shí)間戳請(qǐng)求消息外,還要求客戶提供將要使用的簽字證書的序列號(hào),然后時(shí)間服務(wù)器根據(jù)證書的序列號(hào),查詢?cè)撟C書的狀態(tài),如果證書已撤消,則不給予時(shí)間戳,在沒有時(shí)間戳的情況下,使用該證書對(duì)應(yīng)私鑰的簽字是無效的,從而可防止用戶欺騙行為。同時(shí)在發(fā)給用戶的時(shí)間戳中包含當(dāng)前時(shí)間和用戶的簽字證書序列號(hào),其他用戶在驗(yàn)證簽字時(shí),首先驗(yàn)證該時(shí)戳是否可信,然后再檢查用戶簽字證書的序列號(hào)與該時(shí)戳中的用戶簽字證書序列號(hào)是否一致,若一致,就說明簽字時(shí)用戶的簽字證書處于有效狀態(tài);若不一致,則可懷疑用戶有作弊行為,這樣,就可以安全地獲得用戶證書的狀態(tài)。該方案只需把原時(shí)間戳服務(wù)協(xié)議略加改造即可。
(1)簽字者在對(duì)消息X簽字前,首先向時(shí)間服務(wù)器發(fā)送請(qǐng)求,獲得時(shí)間戳,發(fā)送消息為:
TimeStampReq::=SEQUENCE{
versionINTEGER,
messageImprintMessageImprint,
reqPolicyTSAPolicyIdOPTIONAL,
nonceINTEGEROPTIONAL,
certReqBOOLEANDEFAULTFALSE,
extensions[0]IMPLICITExtensionsOPTIONAL}
MessageImprint::=SEQUENCE{
hashAlgorithmAlgorithmIdentifier,
hashedMessageOCTETSTRING
signCertIDINTEGER
}
該消息與rfc3161的協(xié)議相比增加了只增加了簽字證書的序列號(hào),即消息中的陰影部分的內(nèi)容。
(2)時(shí)間服務(wù)器接受到請(qǐng)求后,首先檢查signCertID對(duì)應(yīng)的簽字證書的有效性,如果有效則按照通常的時(shí)間服務(wù)進(jìn)行處理,生成響應(yīng)消息,發(fā)送給簽字者。響應(yīng)消息的格式為:
TimeStampResp::=SEQUENCE{
StatusPKIStatusInfo,
timeStampTokenTimeStampTokenOPTIONAL
}
TSTInfo::=SEQUENCE{
versionINTEGER,
policyTSAPolicyId,
messageImprintMessageImprint,
serialNumberINTEGER,
genTimeGeneralizedTime,
accuracyAccuracyOPTIONAL,
orderingBOOLEANDEFAULTFALSE,
nonceINTEGEROPTIONAL,
tsa[0]GeneralNameOPTIONAL,
extensions[1]IMPLICITExtensionsOPTIONAL}
在這個(gè)消息中格式與原來協(xié)議的格式一樣,只是messageImprint使用請(qǐng)求者發(fā)送來的messageImprint,即包含了請(qǐng)求者的簽字證書的序列號(hào)。時(shí)間戳是對(duì)TSTInfo的簽字,包括當(dāng)前時(shí)間和messageImprint,因此其他用戶不能更改時(shí)戳中的簽字證書的序列號(hào)。
(3)簽字者按照正常時(shí)間戳的使用方式使用時(shí)間服務(wù)器發(fā)送來的時(shí)間戳,他在對(duì)消息X簽字時(shí)務(wù)必使用在時(shí)戳請(qǐng)求中包含的簽字證書序列號(hào)對(duì)應(yīng)的證書。
(4)其他用戶在驗(yàn)證該簽字時(shí),首先驗(yàn)證時(shí)戳是否正確,然后在驗(yàn)證簽字所使用的證書的序列號(hào)和時(shí)戳messageImprint中包含簽字證書序列號(hào)是否一致,如果一致則表明該證書在使用時(shí)是有效的。
在一個(gè)安全性要求較高的環(huán)境中,時(shí)間服務(wù)器是必須的,其安全性也是必須要保證的,這樣把證書狀態(tài)響應(yīng)服務(wù)與時(shí)間服務(wù)相連,可以節(jié)省狀態(tài)響應(yīng)服務(wù)器運(yùn)行的成本,并且證書的使用者也可以通過驗(yàn)證時(shí)戳達(dá)到驗(yàn)證了證書狀態(tài)的目的,從而節(jié)省了用戶的資源和時(shí)間。
3結(jié)語
本文提出的結(jié)合時(shí)戳服務(wù),提供證書狀態(tài)信息,可以有效的解決證書撤銷帶來的問題,同時(shí)節(jié)約了用戶和系統(tǒng)的資源和時(shí)間,并且對(duì)當(dāng)前的時(shí)戳服務(wù)只需做一些小的改進(jìn),容易實(shí)現(xiàn)。上述關(guān)于證書撤消的各種方法具有不同的及時(shí)性,可以應(yīng)用于各種不同的環(huán)境。除了成本方面的考慮,最合適的方法還依賴于風(fēng)險(xiǎn)評(píng)估。該領(lǐng)域的研究還在繼續(xù),新的撤消方法還會(huì)不斷出現(xiàn)。
參考文獻(xiàn)
1Housley.R,Fond.W,Polk.W,etal.InternetX.509PublicKeyInfrastructureCertificateandCRLProfile[S].(1999-1),RFC2459.
2AdamsC,FarrellS.InternetX.509PublicKeyInfrastructureCertificateManagementProtocols[S].(1999-03),RFC,2510.
3CarlisleAdams,SteveLloyd著,馮登國等譯.公開密鑰基礎(chǔ)設(shè)施——概念、標(biāo)準(zhǔn)和實(shí)施[M].人民郵電出版社,2001.1.
4金融系統(tǒng)電子商務(wù)聯(lián)絡(luò)與研究小組,電子商務(wù)——安全認(rèn)證與網(wǎng)上支付[M],人民出版社.2000.4.
5Cain,P.,Pinkas,D.,andR.Zuccherato,"InternetX.509PublicKeyInfrastructureTimeStampProtocol",[S],rfc3161.
6薛源,周永彬,郭建鋒,倪惜珍.基于Huffman算法的證書撤銷樹[J].通信學(xué)報(bào).2005,26(2):45-50.
7王永靜,謝冬青,陳華勇.證書撤銷機(jī)制的分析與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究.2004,21(9):147-149.
8劉愛江,何大可,許長楓.基于排隊(duì)模型的證書撤銷機(jī)制分析.計(jì)算機(jī)應(yīng)用研究[J].2004,21(4):68-70.