一種虛擬化環(huán)境中數(shù)字證書撤銷狀態(tài)檢查的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)安全領(lǐng)域,特別涉及一種在虛擬化環(huán)境中進(jìn)行數(shù)字證書撤銷狀態(tài)檢查的方法和系統(tǒng)。
【背景技術(shù)】
[0002]公鑰基礎(chǔ)設(shè)施(PKI:Public Key Infrastructure)在公鑰密碼技術(shù)的基礎(chǔ)上,主要解決密鑰屬于誰,即密鑰認(rèn)證的問題。PKI通過由數(shù)字證書認(rèn)證中心(CA -Certificat1nAuthority)簽發(fā)數(shù)字證書來實現(xiàn)密鑰認(rèn)證的服務(wù),也就是發(fā)布公鑰屬于誰的信息,使得網(wǎng)絡(luò)上的數(shù)字簽名等各種安全服務(wù)有了基礎(chǔ)的安全保障。
[0003]CA作為第三方的數(shù)字證書認(rèn)證中心,是PKI系統(tǒng)中通信雙方都信任的實體,由它負(fù)責(zé)簽發(fā)數(shù)字證書。一個數(shù)字證書(簡稱證書)中綁定了公鑰數(shù)據(jù)和相應(yīng)私鑰擁有者的身份信息,并帶有CA的數(shù)字簽名(簡稱簽名)。通過數(shù)字證書,PKI很好地證明了公鑰屬于誰的問題。證書是有時限的,在有效期之后,證書就不再是有效的證書,證書所表示的綁定關(guān)系也就不再存在。
[0004]由于密鑰泄露、證書持有者身份信息改變、公鑰算法被破解等原因,使證書在到期之前,解除綁定關(guān)系、中途作廢證書的行為稱為證書撤銷。如果缺少證書撤銷,PKI就會面臨很大的安全威脅。例如,Alice在證書到期之前,其私鑰被攻擊者Oscar竊取,如果沒有證書撤銷機(jī)制,Oscar就可以冒充Alice登錄到Alice的應(yīng)用系統(tǒng)、解密其他人發(fā)送給Alice的機(jī)密信息。
[0005]發(fā)布證書撤銷信息的最基本思路是:PKI系統(tǒng)中的CA將當(dāng)前被撤銷證書的標(biāo)識(通常是證書序列號)集中到一個列表中,向PKI系統(tǒng)的所有用戶公布。為了防止偽造和篡改,CA需要對這個列表進(jìn)行數(shù)字簽名。這個被CA簽名的、包含了當(dāng)前被撤銷證書標(biāo)識的列表,就被稱為證書撤銷列表(CRL-Certificate Revocat1n List)。
[0006]使用CRL來檢查證書撤銷狀態(tài)的基本過程大致如下:
[0007]a.首先,證書依賴方(證書依賴方是指使用其他人的證書來進(jìn)行加密通信、身份鑒別、數(shù)字簽名驗證等安全操作的實體)可以從資料庫查詢下載得到CRL,驗證CRL本身的有效性,包括:驗證CRL的數(shù)字簽名是否正確、CRL是否處于有效期內(nèi)。
[0008]b.構(gòu)造被撤銷證書的證書序列號列表。對于不同的CRL機(jī)制,有著不同的方法來構(gòu)造被撤銷證書的證書序列號列表。對于基本的CRL機(jī)制,從每一個單獨的CRL文件就能夠得到完整的、當(dāng)前被撤銷證書的證書序列號列表。
[0009]c.檢查證書是否已經(jīng)被撤銷。檢查被撤銷證書的證書序列號列表,查看被驗證證書的序列號是否在其中。如果在列表中,則表示證書已經(jīng)被撤銷;如果不在其中,則表示證書沒有被撤銷。
[0010]CRL具有時效性。因為證書撤銷狀態(tài)是隨時間變化,而且是不可預(yù)測的,所以CRL上面的信息也必須隨時變化,才能正確地反應(yīng)最新的情況。證書依賴方需要及時地獲取CRL。不同應(yīng)用場合,對撤銷信息的及時性要求會有所不同??紤]到只有在極少數(shù)安全事件發(fā)生的時候才需要撤銷證書,而大多數(shù)情況下,證書是不用被撤銷的。一般來說,CA采用周期性的發(fā)布CRL的方式來發(fā)布證書撤銷信息,更新周期長短由PKI系統(tǒng)根據(jù)應(yīng)用需求的不同而具體設(shè)定。例如,用于大額電子交易的CRL,其更新周期設(shè)定為I小時;用于日常電子郵件保護(hù)的CRL,其更新周期設(shè)定為48小時。
[0011]證書依賴方從同一個CRL文件中能夠同時知道多個證書的撤銷狀態(tài)。這種服務(wù)方式非常適用于證書依賴方與同時許多人進(jìn)行通信、需要驗證很多證書的情況。例如,對于要求用戶使用證書登錄的網(wǎng)絡(luò)游戲服務(wù)器,服務(wù)器只需要定期地從資料庫下載到最新的CRL,就能夠檢查所有用戶證書的撤銷狀態(tài),并沒有必要在驗證每一個證書的時候與PKI資料庫通信。
[0012]對于CA,提供CRL下載的方式有很多種,如使用CRL分發(fā)點機(jī)制、增量CRL機(jī)制、重定向CRL機(jī)制等,證書依賴方要按照不同CA的服務(wù)方式進(jìn)行分別進(jìn)行配置。CRL的下載方式,有的時候以證書擴(kuò)展的形式直接寫在證書中,則證書依賴方可以自動知道、然后自動去相應(yīng)的資料庫下載CRL。但是,有的時候,CRL的下載方式不寫在證書中,就需要證書依賴方在每一個機(jī)器上一一手工配置,比較麻煩。而且,有的時候,雖然CRL的下載方式已經(jīng)寫在證書中,但是該方式是某些證書依賴方的計算機(jī)系統(tǒng)不支持的,例如LDAP協(xié)議,就不一定所有證書依賴方都支持。如上述所說,這些都會帶來PKI客戶端設(shè)計和實現(xiàn)的復(fù)雜性,也會給應(yīng)用系統(tǒng)和使用者帶來混亂。另外,證書依賴方收到證書之后,才開始下載CRL,考慮到CRL文件有可能比較大(有的時候,超過IM字節(jié)),會帶來延遲(因為要等到CRL下載之后,才能夠進(jìn)行后續(xù)步驟的工作)。如果能夠提前下載,就能夠減少通信帶來的延遲。
[0013]隨著AMD和Intel相繼推出支持硬件虛擬化的產(chǎn)品,虛擬化技術(shù)得到廣泛應(yīng)用。企業(yè)利用虛擬化,可以減少資金成本、降低空間需求、提高可用性、提升業(yè)務(wù)的靈活適應(yīng)力、提高安全性。通過虛擬化技術(shù),可以在同一份物理計算機(jī)上運行多個客戶虛擬機(jī)(VirtualMachine,簡稱VM),此時物理計算機(jī)稱為宿主機(jī)。虛擬化平臺一個重要的組成部分是虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,VMM),它的主要作用是管理宿主機(jī)的資源,以使在其之上運行的客戶虛擬機(jī)可以共享同一套物理主機(jī)的資源。虛擬化平臺,提供了對多臺虛擬機(jī)統(tǒng)一管理的能力:通過虛擬化技術(shù)實現(xiàn)對客戶虛擬機(jī)屏蔽底層的差異,上層的客戶虛擬機(jī)可以用統(tǒng)一的方式使用下層的資源,不論該資源的具體實現(xiàn)方式是什么(可以是軟件實現(xiàn)或硬件實現(xiàn),可以是使用不同形式的硬件來實現(xiàn))。
【發(fā)明內(nèi)容】
[0014]本發(fā)明提供一種在虛擬化環(huán)境中進(jìn)行數(shù)字證書撤銷狀態(tài)檢查的方法和系統(tǒng),通過證書撤銷列表管理器管理每個客戶虛擬機(jī)中的證書依賴方對證書撤銷列表CRL的訪問;證書撤銷列表管理器運行在VMM中,獨立于虛擬機(jī)之外,作為一個虛擬設(shè)備用來管理客戶虛擬機(jī)中的證書依賴方的證書撤銷狀態(tài)檢查服務(wù)請求行為,并提供相應(yīng)的服務(wù)。
[0015]本發(fā)明的技術(shù)方案為:
[0016]一種虛擬化環(huán)境中數(shù)字證書撤銷狀態(tài)檢查的方法,其步驟為:
[0017]I)在宿主機(jī)上創(chuàng)建多個客戶虛擬機(jī),在該宿主機(jī)的虛擬機(jī)監(jiān)控器內(nèi)設(shè)置一證書撤銷列表管理器;其中,所述證書撤銷列表管理器中存儲證書撤銷列表文件CRL和一配置CRL文件訪問地址的配置文件;
[0018]2)客戶虛擬機(jī)中的證書依賴方向證書撤銷列表管理器發(fā)出證書撤銷狀態(tài)檢查服務(wù)請求;其中,所述證書撤銷狀態(tài)檢查服務(wù)請求包括:證書簽發(fā)者名稱和可選的證書序列號;
[0019]3)證書撤銷列表管理器根據(jù)該證書撤銷狀態(tài)檢查服務(wù)請求在本地查找是否有對應(yīng)的CRL文件:a)如果有對應(yīng)的CRL文件,則將該CRL文件返回給該客戶虛擬機(jī)中的證書依賴方,或者查找該CRL文件中是否存在對應(yīng)的證書序列號,然后將查詢結(jié)果返回給該客戶虛擬機(jī)中的證書依賴方;b)如果沒有對應(yīng)的CRL文件,則根據(jù)所述配置文件下載并驗證對應(yīng)的CRL文件,然后將該CRL文件返回給該客戶虛擬機(jī)中的證書依賴方,或者查找該CRL文件中是否存在對應(yīng)的證書序列號,然后將查詢結(jié)果返回給該客戶虛擬機(jī)中的證書依賴方。
[0020]進(jìn)一步的,所述證書撤銷狀態(tài)檢查服務(wù)請求還包括CRL分發(fā)點擴(kuò)展信息;所述步驟3)中,如果沒有對應(yīng)的CRL文件,所述證書撤銷列表管理器首先根據(jù)該CRL分發(fā)點擴(kuò)展信息訪問資料庫下載并驗證CRL文件,然后查詢對應(yīng)證書的撤銷狀態(tài)信息并將查詢結(jié)果返回給該客戶虛擬機(jī)中的證書依賴方。
[0021]進(jìn)一步的,當(dāng)所述證書撤銷列表管理器根據(jù)該證書撤銷狀態(tài)檢查服務(wù)請求下載對應(yīng)的CRL文件后,所述證書撤銷列表管理器重新配置該CRL文件的下載周期。
[0022]進(jìn)一步的,所述證書撤銷列表管理器根據(jù)所述配置文件定期更新本地的CRL文件。
[0023]進(jìn)一步的,所述證書撤銷管理器定期地查看本地存儲的CRL文件,將不在有效期內(nèi)的CRL文件刪除;或者在向客戶虛擬機(jī)中的證書依賴方提供查詢服務(wù)讀取對應(yīng)的CRL文件時檢查該CRL文件的有效期,如果不在有效期內(nèi),則重新下載相應(yīng)的最新CRL文件。
[0024]進(jìn)一步的,所述證書撤銷列表管理器與所述客戶虛擬機(jī)之間采用Virt1技術(shù)進(jìn)行通信;其中,前端驅(qū)