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