寫在前面
現在開始接觸CA相關的內容,對一些名詞還是不甚瞭解,在遇到一些問題的時候也不能理解,剛好最近看了一本《PKI/CA與數字證書技術大全》,裡面介紹的比較系統全面,也對剛接觸這方面的人來說能有個入門。
1. PKI
所有與數字證書相關的各種概念和技術,統稱為PKI( Public Key Infrastructure 公鑰基礎設施)。
PKI通過引入CA,數字證書,LDAP,CRL,OCSP等技術並制定相應標準,有效地解決了公鑰與使用者對映關係,集中服務效能瓶頸,離線狀態查詢等問題。同時為促進並提高證書應用的規範性,還制定了很多與證書應用相關的各種標準。
所以以下我們提到的CA,數字證書,OCSP等名詞都是在PKI下的,即PKI裡面包含了這些東西。那麼這些名詞每個都是為了解決某個問題而產生的,所以當我們瞭解後看到這些名詞的時候,就能反應出它們是什麼意思,是要解決什麼問題的。
1.1 PKI體系框架
PKI體系框架主要包含三個內容:
1.1.1 數字證書與私鑰
關於數字證書
使用者或系統只有擁有自己的公鑰和私鑰後,才能實現數字簽名和加密解密功能,由於公鑰是隨機產生的,因此從公鑰無法直接判斷屬於哪個使用者。
為解決公鑰與使用者對映關係問題,PKI引入了數字證書。數字證書裡包含了使用者身份資訊,使用者公鑰資訊 (兩者用於確定使用者) 和CA的私鑰數字簽名 (使用CA的公鑰可判斷證書是否被篡改) 。
私鑰一般被儲存在硬體密碼裝置中(像U盾之類的)。
1.1.2 數字證書的管理
關於CA
為了解決數字證書的簽發問題,PKI引入了CA(Certificate Authority), 對數字證書進行集中籤發。 它實際是一種特殊的公鑰管理中心,對數字證書的全生命週期進行管理,包括:數字證書的簽發和更新,數字證書的作廢,凍結和解凍,查詢或下載,狀態查詢等。 像廣州CA,深圳CA就屬於這類,可去他們的官網上進行相關了解。
關於KMC
為解決私鑰的備份與恢復問題,PKI引入了KMC(Key Management Center)。 使用者公私鑰對由KMC產生,KMC對私鑰做備份;公私鑰也可由使用者自己產生,並將私鑰安全提交給KMC做備份。
關於雙證書
為防止使用者身份被冒用,應保證使用者私鑰的唯一性,不允許備份恢復;為防止公鑰加密後的資料無法解密,應提供使用者私鑰的備份恢復機制。
為解決這兩種矛盾需求,PKI引入了雙證書機制:簽名證書和加密證書。 簽名證書的公私鑰對由使用者自己產生,KMC不備份私鑰;加密證書金鑰對由KMC產生,且KMC對加密私鑰進行備份。
關於LDAP
為解決對CA證書的查詢或下載的效能問題,PKI引入 LDAP(Light-weight Directory Access Protocol 輕量目錄訪問協議)技術。
DAP(Directory Access Protocol 目錄訪問協議)是對資料管理的讀取功能進行特殊優化的技術,適合快速響應和大容量的查詢服務,應用系統只需通過X.500協議就能對資料進行快速查詢。但由於該協議過於複雜,國際組織對其進行簡化,形成了LDAP標準。
關於CRL和OCSP
為解決對CA證書有效性方面的查詢,PKI引入了CRL(Certificate Revocation List)和OCSP(Online Certificate Status Protocol) 技術。前者需要使用者按時定期下載,可用於離線使用;後者則可實時線上查詢。
關於RA
為對使用者提供 面對面 的證書業務服務,負責使用者證書辦理/作廢申請,使用者身份稽核,製作證書並移交使用者等功能。PKI引入了RA(Registry Authority)
關於電子認證服務機構
為保證CA系統在數字證書管理方面的規範性、合規性和安全性,PKI引入了電子認證服務機構, 以第三方運營的方式對外提供數字證書相關服務。
1.1.3 數字證書的應用
基於數字證書可實現四種基本安全功能:身份認證,保密性,完整性和抗抵賴性。
身份認證
如網路身份證。
保密性
如不洩露信用卡資訊。
完整性
如已簽訂的合同不會被某一方私自修改。
抗抵賴性
如發生交易糾紛時,可通過驗證對方的私鑰簽名來確認。
1.2 PKI信任模型
首先了解一下幾個概念:
信任:在ITU X.509規範中,“信任”定義為“當實體A認為實體B的行為與A所預期的完全一致時,則稱實體A信任實體B”。
使用者信任CA中心是指,使用者相信該CA中心的所有數字證書管理行為均符合政策法規,運營規範和資訊保安等要求。
使用者信任數字證書是指,使用者相信該數字證書持有人的身份是真是有效地,並不等於使用者信任該數字證書的持有人。
從信任CA中心到信任其簽發的使用者數字證書,這種信任傳遞關係的前提是,該使用者數字證書必須通過以下四個方面的合法性驗證:
4.1. 驗證該數字證書是否偽造。使用CA證書中公鑰即可離線驗證。
4.2. 驗證該數字證書中資訊是否正確。由CA中心在簽發數字證書時已保證。
4.3. 驗證該數字證書是否與持證人一致。可要求持證人使用私鑰對特定資料進行加密或簽名,然後使用數字證書中的公鑰來解密或驗籤。
4.4. 驗證該數字證書是否在黑名單上。通過CRL或OCSP實現。
信任錨:CA中心是信任的產生來源或信任起點。
認證路徑:一條從信任錨到數字證書之間構建的信任關係傳遞路徑,也叫證書路徑或信任鏈。
1.2.1 根CA信任模型
最上級CA中心只有一個,成為根CA,其它CA稱為子CA。根CA的數字證書由自己簽發,屬於自簽名證書,子CA的數字證書由上級CA證書籤發。信任錨可以是根CA,也可以是子CA。
以下圖為例:使用者X可信任使用者A證書,信任鏈為根CA——子CA1——使用者A證書。
1.2.2 交叉認證信任模型
根CA之間可以互相簽發交叉認證證書。
以下圖為例,使用者Y就可以信任使用者J證書。信任鏈為根CA2——根CA2(1)——根CA1——子CA12——使用者J證書
1.2.3 橋CA信任模型
在這裡引入獨立的橋CA中心,等同於虛擬的根CA。所有根CA與橋CA之間互相簽發交叉認證證書。與交叉認證信任模型類似。
1.2.4 信任列表信任模型
使使用者可以有多個信任錨。