主要內容
9.1 理論基礎
- 9.1.1 CA認證與數字證書
- 9.1.2 信任關係與信任模型
9.2 PKI 的組成
- 9.2.1認證機構、
- 9.2.2 證書庫
- 9.2.3 PKI 應用接口系統
9.3 PKI 的功能和要求
- 9.3.1 密鑰和證書管理
- 9.3.2 對 PKI 的性能要求
9.4 PKI 的優缺點
9.1 理論基礎
PKI(Public Key Infrastructure,公鑰基礎設施)是以數字證書爲基礎,利用公鑰理論和技術建立的提供信息安全服務的基礎設施。
9.1.1 CA認證與數字證書
數字證書的創建和使用
- 要發佈自己公鑰的用戶 A 申請證書,CA 覈實身份後頒發證書(CA的主要職責):
- 其他用戶 B 得到 CA,並用已得到的 CA 的真實公鑰 PUCA 驗證該證書是真實的:
就可以得到A的真實公鑰 PUA。
數字證書的作用和特點
- 用戶得到 CA 公鑰真實 => 信任 CA 所頒發證書中其他用戶公鑰真實 => 證書擁有者向其他用戶證明自己身份及與公鑰的匹配關係
數字證書特點:
- 任何有 CA 公鑰的用戶都可恢復被 CA 認證的其他用戶公鑰;
- 證書的完整性由 CA 的數字簽名來保證,除了 CA 外無人能不被察覺地篡改該證書。
X.509 數字證書各部分的含義
證書格式採用 X.509 v3 標準:IPSec、SSL、SET
X.509 數字證書的格式
9.1.2 信任關係與信任模型
用戶必須完全相信 CA 是公正和正確的;
一個被用戶信任的實體可向用戶推薦他所信任實體,而這個實體又可推薦其他實體 ===> 信任路徑
X.509 中的“信任”:當實體 A 假定實體 B 嚴格地按 A 所期望的那樣行動,則 A 信任 B。
PKI 中的“信任”:如果用戶假定 CA 可以將任一公鑰準確綁定到某個實體上,則他信任該 CA。
(1)認證機構的嚴格層次結構模型
建立信任模型的目的:確保一個 CA 簽發的證書能夠被另一個 CA 的用戶所信任。
嚴格層次結構模型是一棵倒置的樹:
- “樹根”代表對所有實體有特別意義的 CA —— 根 CA,是信任的根或“信任錨” —— 認證起點/終點。
CA 的嚴格層次結構模型圖:
唯一都需要與所有實體建立信任的是 根CA,即每個 中介CA 和 終端實體 都必須擁有 根CA 的公鑰 —— 它的安裝通過安全的帶外方式。
(2)分佈式信任結構模型
把信任分散在兩個或多個 CA 上:
整個分佈式結構的 CA 必須是整個 PKI 系統的一個子集所構成的嚴格層次結構的 根CA。
分佈式信任結構模型圖:
(3)Web 模型
★ Web模型依賴於流行的瀏覽器
瀏覽器廠商起到信任錨的作用,預裝公鑰的 CA 就是它所認證的 CA —— 有隱含根的嚴格層次結構。
Web 模型圖:
安全問題:
- 預裝公鑰的 CA 是“壞的”,不能保證服務器公鑰的真實性。
- 沒有實用機制來自動即時撤消嵌入到瀏覽器中的 CA公鑰。
- 終端用戶與嵌入的 根CA 之間交互十分有限。
(4)以用戶爲中心的信任模型
每個用戶自己決定信任其他哪些用戶。
用戶的最初信任對象包括用戶的朋友/家人/同事,但是否真正信任某證書則被許多因素所左右。
PGP 的一個用戶通過擔當 CA(簽發其他實體的公鑰)來發布其他實體的公鑰——建立信任網(Web of Trust)。
在技術水平較高和利害關係一致的羣體中可行。
以用戶爲中心的信任模型圖:
(5)交叉認證
建立多個獨立運行 PKI 域爲不同環境用戶團體服務。
每個 CA 只覆蓋一定範圍,隸屬於不同 CA 的用戶要交換信息——引入交叉證書和交叉認證。
交叉認證 —— 在以前無關聯的 PKI 域的 CA 之間建立信任關係,雙方 CA 先要安全地交換公鑰信息。
- 一個 CA 的用戶信任所有與自己 CA 有交叉認證的其他 CA 的用戶。
在 CA1 和 CA2 之間交叉認證的例子:
假設 Alice 有 CA1 公鑰,Bob 有 CA2 公鑰,交叉認證後,Alice 的信任能擴展到 CA2 的主體羣(包括 Bob),反之亦然。
9.2 PKI的組成
9.2.1 認證機構
CA的職責:
- 驗證並標識證書申請者的身份。
- 確保CA用於簽名證書的私鑰的質量。
- 確保整個簽名過程的安全性,確保CA簽名私鑰的安全性。
- 證書信息(包括公鑰證書序列號、CA標識等)的管理。
- 確定並檢查證書的有效期限。
- 確保證書主體標識的唯一性,防止重名。
- 發佈並維護作廢證書列表(CRL)。
- 對整個證書籤發過程做日誌記錄。
CA 密鑰對的生成和管理
- 選擇較長密鑰對:最好是2048位。
- 使用硬件加密模塊:軟件加密要將密鑰讀入內存而會被陷阱程序竊取,而硬件加密模塊會感應到這一情況而將密鑰銷燬。
- 使用專用硬件產生密鑰對:優質的隨機數產生器可以連續產生無任何相似部分的多個密鑰對。
- 祕密分享原則:管理員合作才能完成證書籤發和備份密鑰恢復工作。
發佈並維護作廢證書列表 CRL
- CRL:包含未到期但已撤消的證書列表的簽名數據結構。
- CRL 的完整性和可靠性由CA對它的數字簽名保證。
- CRL 被創建後可通過證書庫和網絡自由分發。
- CA 定期(幾個小時到幾個星期)發佈 CRL,CRL 之間的時間延遲是應用 CRL 的一個主要的缺陷。
9.2.2 證書庫
- 證書庫是CA所簽發的證書和CRL的集中存放地。
- 系統必須確保證書庫的完整性,防止僞造、篡改證書和 CRL。
- 構造證書庫的最佳方法是採用支持 LDAP 協議的目錄系統。
- LDAP 很好地解決了人們使用其他應用程序訪問證書及 CRL 的問題。
9.2.3 PKI 應用接口系統
PKI 應用接口系統的功能:
- 完成證書的驗證工作,爲所有應用以一致、可信的方式使用證書/CRL/密鑰備份與恢復系統提供支持。
- 確保用戶的簽名私鑰始終只在用戶本人的控制下。
- 實現密鑰更新的自動、透明與一致。
- 嚮應用提供歷史密鑰的安全管理服務。
- 爲所有應用提供統一模式的交叉證書的驗證支持。
- 支持多種密鑰存放介質,包括 IC卡、安全文件。
- PKI 應用接口系統應該跨平臺。
9.3 PKI 的功能和要求
PKI 是創建、管理、存儲、分發和作廢證書的軟件、硬件、人員、策略和過程的集合,主要功能爲:
- 爲需要的用戶生成一對密鑰;
- CA爲用戶簽發數字證書並分發給需要的用戶;
- 用戶對數字證書的有效性進行驗證;
- 對用戶的數字證書進行管理。
PKI 認證體系的基本模型:
9.3.1 密鑰和證書管理
(1)初始化階段
1)終端實體註冊
- 是單個用戶或進程的身份被建立和驗證的過程。
- 是在線執行的,用註冊表格的交換來實現。
- 註冊中心 RA 是證書註冊審批機構,與 CA 邏輯上是一個整體,可單獨也可合併在 CA 中實現。
- 只有 CA 而非 RA 有權頒發證書和撤消證書。
終端實體初始化方案:
2)密鑰對產生
終端實體(用戶)的密鑰對有兩種產生方式:
雙密鑰對模型中密鑰管理的區別:
3)證書創建 和 4)證書分發
- 只能由CA創建,所有要與該用戶進行安全通信的其他用戶都會向CA請求該用戶的證書。
- 最成熟的證書分發——證書使用者查詢網上的證書庫,以得到其他用戶的證書。
- 與該用戶通信的對方必須容易獲得該用戶的:
- 用於機密性的證書
- 用於數字簽名的證書。
5)密鑰備份和託管 和 6)密鑰存儲
- 忘記保護解密私鑰的口令、磁盤被破壞或僱員被解僱等造成無法訪問解密私鑰 —— 密鑰備份。
- 若註冊時聲明密鑰對用於加/解密,那麼 CA 可對該用戶的解密私鑰進行備份。
- 密鑰託管 —— 用戶把自己的解密私鑰交由第三方保管,允許他解密有關密文。
- 由政府擔任可信第三方的被託管密鑰是 GAK(政府訪問密鑰)。
- 使用 PKCS#12 作爲用戶私鑰和證書的封裝形式。
(2)頒佈階段
1)證書檢索
有兩種不同的情況需要檢索一個終端實體證書:
- 數據加密發給其他實體的需求(保證機密性);
- 驗證從另一個實體收到的數字簽名的需求(實現對數字簽名的驗證)。
2)證書驗證
3)密鑰恢復 和 4)密鑰更新
- 密鑰恢復——解密私鑰已被破壞但沒被泄露時, 從備份(用戶的密鑰歷史)中重新得到該密鑰。
- 密鑰管理生命週期包括從遠程備份設施(如密鑰恢復中心或CA)自動化地恢復解密私鑰的能力。
- 密鑰更新——證書“接近”過期或私鑰泄露時,必須自動化地頒發一個新的公/私鑰對和相關證書。
(3)取消階段
1)證書過期
證書的有效期結束後將會過期,該終端實體可能做如下三件事之一:
- 證書恢復:相同的公鑰被加入具有新有效期的新證書(密鑰對和證書仍然可靠);
- 證書更新:產生新的公/私鑰對並頒發新的證書;
- 沒有活動:不再參加 PKI。
2)證書撤消
證書自然過期之前對證書的即時取消,警告其他用戶不要再使用這個公鑰。
撤銷原因:
- 僱傭終止
- CA 簽名私鑰的泄露
- 用戶的身份改變
- 遺失保護簽名私鑰的口令
- 用戶私鑰被盜
證書撤消實例方案:
3)密鑰銷燬
銷燬密鑰的原因:
- 密鑰使用時間越長泄露機會越大;
- 如果密鑰已泄露,那麼密鑰使用越久損失越大;
- 破譯者願意花費更多精力破譯使用久的密鑰。
密鑰的所有拷貝都被銷燬,重新生成該密鑰的全部信息也被刪除時,該密鑰的生命週期才終止。
4)密鑰歷史 和 5)密鑰檔案
- 密鑰歷史 —— 保證機密性的加密公鑰總要過期,因此用戶必須安全可靠地存儲相應的解密私鑰。
- 密鑰檔案 —— 用戶應該可靠地保存已經過期的用於驗證他人數字簽名的該用戶公鑰,以便再次對他人的數字簽名進行驗證,主要用於審計和出現交易爭端時。
9.3.2 對 PKI 的性能要求
- 透明性和易用性——向用戶屏蔽複雜的安全解決方案,對用戶簡單易用
- 可擴展性——證書庫和CRL必須具有良好的可擴展性
- 互操作性——必須建立在標準之上
- 支持多應用——面向廣泛的網絡應用
- 支持多平臺
9.4 PKI 的優缺點
PKI 的優點:
- 能提供 Kerberos 不能提供的服務 —— 不可否認性。
- 相對 Kerberos 來說,PKI 從開始設計就是一個容易管理和使用的體制。
- 提供所有的密鑰管理功能,遠超過 Kerberos 和其他解決方案。
- 利用證書庫進行數字證書的安全發佈,CA 和證書庫都不會像 KDC 那樣形成瓶頸。
PKI 的缺點:
- PKI 是一個正在發展的標準,而它的實現需要一套完整的標準。
- 實現 PKI 可能太昂貴,如果實現 PKI 失敗,最主要的原因是代價高昂。
- 在 PKI 中,每個人都必須看管好自己的私鑰,這也不是一個簡單的工作。