1. 公鑰基礎設施簡介
(1)PKI的概念
公鑰基礎設施,利用公鑰理論和技術建立的提供信息安全服務的基礎設施。在公鑰體制中,加密密鑰與解密密鑰各不相同,發送者利用接收者的公鑰發送加密信息,接收者利用自己的私鑰進行解密。這種方式保證了信息的機密性、不可抵賴性。
公鑰體制主要用于CA認證、數字簽名和密鑰交換等。
PKI基于公開密鑰理論和技術的安全體系,提供信息安全服務的具有普適性的安全基礎設施;
該體系在統一的安全認證標準和規范基礎上,提供在線身份認證,是CA認證、數字證書、數字簽名以及相關安全應用組件模塊的集合;
PKI是認證、完整性、機密性和不可否認性的技術基礎,從技術上解決網上身份認證、信息完整性和抗抵賴等安全問題,為網絡應用提供可靠的安全保障。
PKI的核心是要解決信息網絡空間中的信任問題,確定信息網絡空間中各種主體身份的惟一性、真實性和合法性,保護信息網絡空間中各種主體的安全利益。
PKI是信息安全基礎設施的一個重要組成部分,是一種普遍適用的網絡安全基礎設施;授權管理基礎設施、可信時間戳服務系統、安全保密管理系統、統一的安全電子政務平臺等的構筑都離不開它的支持。數字證書認證中心CA、審核注冊中心RA(Registration Authority)、密鑰管理中心KM(Key Manager)都是組成PKI的關鍵組件。
(2) PKI的內容
PKI是以公開密鑰技術為基礎,以數據的機密性、完整性和不可抵賴性為安全目的而構建的認證、授權、加密等硬件、軟件的綜合設施。根據美國國家標準技術局的描述,在網絡通信和網絡交易中,特別是在電子政務和電子商務業務中,最需要的安全保證包括四個方面:身份標識和認證、保密或隱私、數據完整性和不可否認性。
PKI可以完全提供以上四個方面的保障,它所提供的服務主要包括以下三個方面。
①認證。在現實生活中,認證方式通常是兩個人事前協商,確定一個秘密,依據這個秘密相互認證。隨著網絡規模的擴大,兩兩協商幾乎不可能;透過一個密鑰管理中心來協調困難也會很大,當網絡規模巨大時,密鑰管理中心成為網絡通信的瓶頸。PKI通過證書進行認證,認證時對方知道你就是你,但卻無法知道你為什么是你。在這里,證書是一個可信的第三方證明,通過它,通信雙方可以安全地進行互相認證,而不用擔心對方是假冒的。
②支持密鑰管理。通過加密證書,通信雙方可以協商一個秘密,而這個秘密可以作為通信加密的密鑰。在需要通信時,可以在認證的基礎上協商一個密鑰。在大規模的網絡中,密鑰恢復也是密鑰管理的一個重要方面。PKI提供可信的、可管理的密鑰恢復機制,PKI提供全面的密鑰恢復與管理能力,保證網上活動的健康有序發展。
③完整性與不可否認。完整性與不可否認是PKI提供的最基本的服務。PKI提供的完整性是可以通過第三方仲裁的,并且這種由第三方進行仲裁的完整性是通信雙方都不可否認的。不可否認是通過PKI的數字簽名機制來提供服務的,當法律許可時,該“不可否認性”可以作為法律依據。正確使用時,PKI的安全性高于紙面圖章系統。
(3) PKI的體系結構
一個標準PKI系統具備以下主要內容:
①認證機構CA,是PKI的核心執行機構,通常稱為認證中心。CA還包括RA,它是數字證書的申請注冊、證書簽發和管理機構。
CA主要職責:驗證并標識證書申請者身份;對申請者的信用度、申請證書的目的、身份的真實可靠性等進行審查,確保證書與身份綁定的正確性。
確保CA用于簽名證書的非對稱密鑰的質量和安全性。CA用于簽名的私鑰長度必須足夠長,并且私鑰必須由硬件卡產生,私鑰不出卡。
管理證書信息資料。管理證書序號和CA標識,確保證書主體標識的惟一性,防止證書主體名字的重復。在使用中檢查證書有效期,不使用過期或作廢證書,確保網上交易安全。維護作廢證書列表CRL,因某種原因證書作廢,必須將其作為“黑名單”發布在CRL中,以供交易時在線查詢,防止交易風險。對已簽發證書的使用全過程進行監視跟蹤,作全程日志記錄,以備發生交易爭端時,提供公正依據,參與仲裁。
由此可見,CA是保證電子商務、電子政務、網上銀行、網上證券等交易的權威性、可信任性和公正性的第三方機構。
②證書和證書庫。證書是數字證書或電子證書的簡稱,它符合X.509標準,是網上實體身份的證明。證書是由具備權威性、可信任性和公正性的第三方機構簽發的,因此,它是權威性的電子文檔。
證書庫是CA頒發證書和撤消證書的集中存放地,可供公眾進行開放式查詢。一般來說,查詢的目的有兩個:其一是想得到與之通信實體的公鑰;其二是要驗證通信對方的證書是否已進入 “黑名單”。證書庫支持分布式存放,即可以采用數據庫鏡像技術,將CA簽發的證書中與本組織有關的證書和證書撤消列表存放到本地,以提高證書的查詢效率,減少向總目錄查詢的瓶頸。
③密鑰備份及恢復,是密鑰管理的主要內容,如果用戶的解密數據的密鑰丟失,從而使已被加密的密文無法解開。
為避免這種情況的發生,PKI提供了密鑰備份與密鑰恢復機制:當用戶證書生成時,加密密鑰即被CA備份存儲;當需要恢復時,用戶只需向CA提出申請,CA就會為用戶自動進行恢復。
④密鑰和證書的更新。一個證書的有效期是有限的,這種規定在理論上是基于當前非對稱算法和密鑰長度的可破譯性分析;在實際應用中是由于長期使用同一個密鑰有被破譯的危險。因此,證書和密鑰必須有一定的更換頻度,PKI對已發的證書進行密鑰更新或證書更新。
證書更新由PKI系統自動完成,不需要用戶干預。用戶在使用證書的過程中,PKI會自動到目錄服務器中檢查證書的有效期,當有效期結束之前,PKI/CA會自動生成一個新證書來代替舊證書。
⑤證書歷史檔案。從密鑰更新的過程,經過一段時間后,每個用戶都會形成多個舊證書和至少一個當前新證書。舊證書和相應的私鑰組成了用戶密鑰和證書的歷史檔案,記錄整個密鑰歷史。例如,用戶幾年前用自己的公鑰加密的數據無法用現在的私鑰解密,那么該用戶就必須從他的密鑰歷史檔案中,查找到幾年前的私鑰來解密數據。
⑥客戶端軟件。為方便客戶操作,解決PKI的應用問題,在客戶裝有客戶端軟件,以實現數字簽名、加密傳輸數據等功能。
⑦交叉認證。交叉認證就是多個PKI域之間實現互操作。
(4) PKI的相關標準
從PKI體系建立與發展歷程來看,PKI標準主要包括:
①X.509(1993)信息技術之開放系統互聯鑒別框架。X.509由國際電信聯盟(ITU-T)制定的數字證書標準。X.500確保用戶名稱惟一性,X.509為用戶名稱提供通信實體鑒別機制,規定實體鑒別過程中適用的證書語法和數據接口。X.509證書由用戶公共密鑰和用戶標識符組成,還包括版本號、證書序列號、CA標識符、簽名算法標識、簽發者名稱、證書有效期等信息。
②PKCS系列標準。由RSA實驗室制訂的PKCS系列標準,是一套針對PKI體系的加解密、簽名、密鑰交換、分發格式及行為標準,該標準目前已經成為PKI體系中不可缺少的一部分。
③OCSP在線證書狀態協議。OCSP(Online Certificate Status Protocol)是IETF頒布的用于檢查數字證書在某一交易時刻是否仍然有效的標準。該標準提供給PKI用戶一條方便快捷的數字證書狀態查詢通道,使PKI體系能夠更有效、更安全地在各個領域中被廣泛應用。
(5) PKI的應用
①虛擬專用網絡(Virtual Private Network),將分布在不同地點的物理網絡通過Internet連接而成的邏輯虛擬子網。VPN利用PKI與PMI和訪問控制技術提高安全性,VPN需要認證、機密、完整、不可否認等完善的安全技術。PKI技術是架構VPN的基礎,為路由器之間、PKI與PMI之間或路由器和PKI與PMI之間提供加密和認證的通信。
②安全電子郵件,一種標準信息交換工具,安全需求是完整、認證和不可否認。利用PKI技術,用戶可以對他所發的郵件進行數字簽名。安全電子郵件協議S/MIME (Secure Multi-purpose InternetMail Extension),是一個加密和簽名郵件協議,實現依賴于PKI技術。
③Web安全,Web交易安全問題:詐騙、泄漏、篡改、攻擊。解決Web安全問題,入手點是瀏覽器。IE和Firefox支持SSL協議(Secure Sockets Layer),SSL是一個在傳輸層和應用層之間的安全通信層。利用PKI技術,SSL協議允許在瀏覽器和服務器之間進行加密通信。
2. 證書權威(CA)
CA是在PKI基礎之上的產生和確定數字證書的第三方可信機構(trusted third party),主要功能發放身份證書,管理證書正常使用。
ca具有權威性、可信賴性及公正性,承擔公鑰體系中公鑰合法性檢驗。
ca為每個使用公鑰的用戶發放一個數字證書,其作用是證明證書中列出的用戶,合法擁有證書中列出的公鑰。
ca數字簽名,攻擊者不能偽造和篡改證書,ca負責吊銷證書、發布證書吊銷列表(crl),負責產生、分配和管理網上實體所需的數字證書。
(1) CA的功能和組成
①CA認證體系組成
一ca,負責產生和確定用戶實體的數字證書;
二審核授權部門ra,審查證書申請者的資格,決定是否同意給申請者發放證書;承擔資格審核錯誤引起的一切后果。
三證書操作部門cp,為已授權用戶發放和管理證書,承擔運營錯誤產生的一切后果,包括失密和為沒有授權的人發放證書,可由ra或第三方擔任。
四密鑰管理部門km,負責產生實體加密鑰對,提供解密私鑰托管服務。
五證書存儲池(dir),包括網上所有的證書目錄。
在ca認證體系中,各組成部分彼此之間認證關系:
用戶與ra之間:用戶將自己身份信息提交ra、請求ra審核,ra審核后、安全地將該信息轉發ca。
ra與ca之間:ra以安全可靠方式把用戶身份識別信息傳送ca。ca以安全可行方式將用戶數字證書傳送ra或直接傳送用戶。
用戶與dir之間:用戶可以在dir中查詢、撤銷證書列表和數字證書。
dir與ca之間:ca將自己產生的數字證書直接傳送給目錄dir,登記在目錄中,在目錄中登記數字證書要求用戶鑒別和訪問控制。
用戶與km之間:km接受用戶委托,代表用戶生成加密密鑰對;用戶所持證書的加密密鑰必須委托km生成;用戶可以申請解密私鑰恢復服務;km為用戶提供解密私鑰恢復服務。用戶解密私鑰必須統一在km托管。
ca與km之間:二者之間用通訊證書來保證安全性。通訊證書是ca與km、上級或下級ca進行通訊時使用的計算機設備證書,這些專用設備必須安裝ca發布的專用通訊證書、km、上級或下級認證機構專用通訊計算機設備所持有的通訊密鑰證書和認證機構的根證書。
②CA認證體系的職責
驗證并標識公開密鑰信息提交認證的實體的身份;確保用于產生數字證書的非對稱密鑰對的質量;保證認證過程和用于簽名公開密鑰信息的私有密鑰的安全;
確保兩個不同的實體未被賦予相同的身份,以便把它們區別開來;管理包含于公開密鑰信息中的證書材料信息,例如數字證書序列號、認證機構標識等;維護并發布撤銷證書列表;
指定并檢查證書的有效期;通知在公開密鑰信息中標識的實體,數字證書已經發布;記錄數字證書產生過程的所有步驟。
③CA認證體系的功能
簽發數字證書、管理下級審核注冊機構、接受下級審核注冊機構的業務申請、維護和管理所有證書目錄服務、向密鑰管理中心申請密鑰、實體鑒別密鑰器的管理等等。
(2) CA自身證書的管理
自身證書的查詢。PKI CA具有報表功能,它能夠在CA中產生一個用戶清單,用戶可以使用這一工具對所有CA的證書和狀態進行查詢。
CRL查詢。通過特定的應用程序和工具包,可以訪問CRL。
查詢操作日志。PKI安裝了審計跟蹤文件,提供了一個非常廣泛的存檔和審計能力,用于記錄涉及認證的所有日常交易,包括管理員注冊和注銷以及用戶初始化等。每個審計記錄是自動創建的管理員可以查詢所有審計記錄,但不能修改。
統計報表輸出。PKI提供了創建報表的靈活方法,包括固定格式和自定義格式的報表。這些報表內容可以是統計各類用戶表單,或有關用戶密鑰恢復的信息等。
(3) CA對用戶證書的管理
如果用戶想得到一份證書,他首先需要向CA提出申請。CA對申請者的身份進行認證后,由用戶或CA生成一對密鑰,私鑰由用戶妥善保存,CA將公鑰與申請者的相關信息綁定,并簽名,形成證書發給申請者。如果用戶想驗證CA簽發的另一個證書,可以用CA得公鑰對此證書上的簽名進行驗證,一旦驗證通過,該證書就認為是有效地。CA除了簽發證書,還負責證書和密鑰的管理。
(4) 密鑰管理和KMC
密鑰管理是數據加密技術中的重要一環,密鑰管理的目的是確保密鑰的安全性。
一個好的密鑰管理系統應該做到:密鑰難以被竊取;在一定條件下竊取了密鑰也沒有用,密鑰有使用范圍和時間的限制;密鑰的分配和更換過程對用戶透明,用戶不一定要親自掌管密鑰。
密鑰管理中心(Key Management Center,KMC)向CA服務提供相關密鑰服務,如密鑰生成、密鑰存儲、密鑰備份、密鑰恢復、密鑰更新和密鑰銷毀等,如圖3-28所示。

⑴密鑰生成。
KMC職能是為用戶產生加密密鑰對、提供解密私鑰的托管服務,加密密鑰對是在獨立設備中產生,支持在線生成和離線密鑰池方式。
①認證機構將證書序列號、法人實體的驗證簽名公鑰、法人相關信息提交給KMC,請求KMC代法人產生加密密鑰對。密鑰生成請求信息括:法人永久性ID;實體鑒別密碼器m;證書服務編號;密鑰長度。
②KMC在收到認證機構提交的密鑰對產生請求后立即產生加密密鑰對。
③KMC向CA中心返回處理結果,包括:加密公鑰;經加密的解密私鑰;KMC對密鑰對的簽名。
密鑰對產生有二種方式:簽名密鑰使用者自己產生,只有使用者自己知道密鑰,不會泄漏給第三者。在CA中心產生加密密鑰,在實體的保護下將密鑰交給使用者,并將產生密鑰有關的數據及密鑰本身銷毀。
當用戶證書生成后,用戶信息通過RA上傳到KMC,與加密密鑰一起存到當前庫進行托管保存,以便以后查詢和恢復操作。所有的托管密鑰都必須以分割和加密的方式保存在密鑰數據庫服務器中。
⑵密鑰存儲。
雙證書綁定同一個用戶,其私鑰保存硬件介質,簽名證書私鑰是用戶自己產生。信任方可以相信,證書中包含的公鑰驗證的信息確系證書所綁定的實體簽名,保證信息的完整性和不可抵賴性。
加密證書私鑰由KMC產生,在該機構數據庫中備份了用戶私鑰,實現用戶密鑰托管。用戶和KMC都擁有用戶加密證書所對應的私鑰。
用戶本地存儲私鑰,口令加密保存;當需要使用私鑰時,輸入口令對話框,讀取相應私鑰進行相應的操作。
用戶公鑰明文和用戶信息存儲在一個數據表中,私鑰經過加密、采用根CA公鑰進行加密,存儲與另一表中;其讀取應輸入相應管理員口令,公鑰與私鑰可以通過ID進行聯系。
⑶密鑰傳輸。
用戶提交申請信息,同時在用戶端產生簽名公鑰與私鑰,公鑰經過加密上傳CA中心,經審核后產生雙證書;使用該用戶的簽名公鑰進行加密返回用戶,返回方式以使用網站掛起或用戶郵箱進行發送
⑷密鑰備份。
①冷備(Cold Standby),通過定期的對生產系統數據庫進行備份,并將備份數據存儲在磁盤等介質。備份數據平時處于一種非激活的狀態,直到故障發生導致生產數據庫系統不可用、才激活。
②熱備(Warm Standby),需要一個備用的數據庫系統。與冷備相似,只不過當生產數據庫發生故障時,通過備用數據庫的數據進行業務恢復。因此,熱備的恢復時間比冷備大大縮短。
⑸密鑰和證書的更新。
證書更新的過程和證書簽發非常相似,因為用戶只是更新證書,在申請證書時己經通過審核,在證書更新時不再需要審核過程。
①CA依其實際需要,對新舊證書的有效期限,制定自己的策略。前后證書的期限可以重疊或不重疊。若允許有效期重疊,可以避免CA可能在同一失效期限,必須重新簽發大量的證書問題。
②已逾期證書需從目錄服務中刪除。CA提供不可否認服務,需將舊證書保存一段時間;以備將來有爭議時,驗證簽名解決爭議之用。
⑹查詢。
OCSP是一個簡單的請求/響應協議,使得客戶端應用程序可以測定所需驗證證書體系的狀態。一個OCSP客戶端發送一個證書狀態查詢給一個OCSP響應器,等待響應器返回一個響應。
協議對OCSP客戶端和OCSP響應器之間需要交換的數據進行描述。
OCSP請求包含:協議版本、服務請求 、目標證書標識和可選的擴展項等。
OCSP響應器對收到的請求返回一個響應;OCSP響應器返回出錯信息時,該響應不用簽名;響應器返回確定的回復,該響應必須進行數字簽名。
每一張被請求證書回復中包含證書狀態值,正常、撤銷、末知。“正常”狀態表示證書沒有被撤銷,“撤銷”狀態表示證書己被撤銷,“未知”狀態表示響應器不能判斷請求的證書狀態。
⑺注銷。
當有一些特殊狀況時,CA必須停止某些證書的使用,注銷此證書。例如使用者在證書有效期未滿之前,自覺其密鑰不安全,或是CA對此使用者已喪失管轄權等狀況,必須注銷此證書。

(5) 時間戳服務
時間戳是一個具有法律效力的電子憑證,是各種類型電子文件在時間、權屬及內容完整性方面的證明。時間戳能證明用戶在什么時間擁有一個什么樣的電子文件。
時間戳主要用在商業秘密保護、工作文檔的責任認定、著作權保護、原創作品、軟件代碼、發明專利、學術論文、試驗數據、電子單據等方面。
時間戳頒發必須由可信第三方時間戳服務機構提供可信賴的且不可抵賴的時間戳服務,其產生的時間戳具有法律效力。時間戳服務中心TSA由國家授時中心與共同建設的權威第三方時間戳服務機構。
時間戳服務是TSA通過我國法定時間源和現代密碼技術結合而提供的一種第三方服務,時間戳證明數據電文產生的時間及內容完整性。
解決了數據電文的內容和時間易被人為篡改、證據效力低、當事人舉證困難的問題,按照《中華人民共和國電子簽名法》規定,加蓋時間戳的數據電文可以作為有效法律證據,達到“不可否認”或“抗抵賴”的目的。
(6) 數字證書的定義
從數字證書技術角度,CA證書分為兩類:SSL證書和SET證書。SSL證書服務于銀行對企業、企業對企業的電子商務活動;SET證書服務于持卡消費、網上購物。
SSL證書功能是通過公鑰證明持證人的身份,SET證書作用是通過公鑰證明、持證人在指定銀行擁有該信用卡賬號、證明了持證人的身份。
①個人身份證書,符合X.509標準的數字安全證書,證書包含個人身份信息和個人公鑰,用于標識證書持有人的個人身份。數字安全證書和對應私鑰存儲E-key,用于個人進行合同簽定、定單、錄入審核、操作權限、支付信息等活動中標明身份。
②企業機構身份證書,符合X.509標準的數字安全證書,證書包含企業信息和企業公鑰,用于標識證書持有企業的身份。數字安全證書和對應私鑰存儲E-key或IC卡,用于企業在電子商務方面的合同簽定、網上證券交易、交易支付信息等方面。
③支付網關證書,證書簽發中心針對支付網關簽發的數字證書,是支付網關實現數據加解密的主要工具,用于數字簽名和信息加密。支付網關證書僅用于支付網關提供的服務。
④服務器證書,符合X.509 標準的數字安全證書,證書包含服務器信息和服務器公鑰,在網絡通訊中用于標識和驗證服務器的身份。數字安全證書和對應私鑰存儲E-key。服務器軟件利用證書機制保證與其它服務器、客戶端通信時身份的真實性、安全性、可信任度。
⑤企業機構代碼簽名證書,CA 中心簽發給軟件提供商數字證書,包含軟件提供商身份信息、公鑰及CA簽名。軟件提供商使用代碼簽名證書對軟件簽名后放到Internet上,用戶下載該軟件時得到提示,可以確信軟件來源、軟件自簽名后到下載前、沒有遭到修改或破壞。
⑥安全電子郵件證書,符合X.509標準的數字安全證書,通過IE申請,用IE申請的證書存儲windows注冊表。用于安全電子郵件或向需要客戶驗證的WEB服務器表明身份。
⑦個人代碼簽名證書,CA中心簽發給軟件提供人數字證書,包含軟件提供個人身份信息、公鑰及CA簽名。軟件提供人使用代碼簽名證書對軟件簽名后放到Internet上,用戶下載該軟件時得到提示,可以確信軟件來源,軟件自簽名后到下載前、沒有遭到修改或破壞。
@木子雨辰,將一直帶給大家信息安全知識,由淺至深、采用體系化結構逐步分享,大家有什么建議和問題,可以及留言,多謝大家點擊關注、轉發,謝謝大家。