PKI的組成:
一個PKI體系由終端實體、證書認證機構、證書注冊機構和證書/CRL存儲庫四部分共同組成。
- 證書頒發機構(CA)
- 證書注冊機構(RA)
- 證書庫
- 密鑰備份及恢復系統
- 證書廢除處理系統
- 應用系統接口
- 數字證書
PKI框架的三個重要角色:
- 終端實體(EE, End Entity): 證書的最終使用者,例如總部和分支的網關。
- 證書頒發機構(CA, Certificate Authority):是一個權威的、可信的第三方機構,負載證書頒發、查詢以及更新等工作。
- 證書注冊機構(RA)
附材料:
PKI基礎架構
密鑰管理面臨的挑戰:
在使用任何基于RSA服務之前 ,一個實體需要真實可靠的獲取其他實體的公鑰。
- 通過非信任的通道,公鑰交換必須是安全的。
- 在密鑰交換過程中,公鑰必須不能夠被截獲和更改。
- 交換呈現Full Mesh的復雜度。
- 由最終用戶來確認密鑰有效性,非常不靠譜。
PIK介紹:
公鑰基礎設施PKI(Public Key Infrastructure),是通過使用公鑰技術和數字證書來提供系統信息安全服務,并負責驗證數字證書持有者身份的一種體系。PKI技術是信息安全技術的核心,也是電子商務的關鍵和基礎技術。
PIK保證了通信數據的私密性、完整性、不可否認性和 源認證性 。
為什么要用PKI:
IPSec身份認證(預共享密鑰方式):
- 配置簡單。只需要在總部和二分部的網關上配相同的密鑰即可。
- 維護復雜。隨著分部數量越倆越多,總部和每個分部之間形成的對等體都要配置預共享秘鑰。
- 安全風險高。如果所有對等體都使用同一個密鑰,存在安全風險。
IPSec身份認證(PIK中的證書認證方式):
- 維護簡單。隨著分部數量越來越多,只需要向CA申請證書即可。
- 安全風險低。不同的分部使用不同的證書,對應的密鑰也不同。
數字證書介紹
數字證書:
數字證書簡稱證書,它是一個經證書授權中心CA數字簽名的文件,包含擁有者的公鑰及相關身份信息。
數字證書技術解決了數字簽名技術中無法確定公鑰是指定擁有者的問題。
注意:數字證書僅僅是解決了“這個公鑰的持有者到底是誰“的問題。
證書結構:
最簡單的證書包含一個公鑰、名稱以及證書授權中心的數字簽名。一般情況下證書中還包括密鑰的有效期,頒發者(證書授權中心)的名稱,該證書的序列號等信息,證書的結構遵循X.509 v3版本的規范。

圖:證書組成結構
證書的各字段解釋:
- 版本:即使用X.509的版本,目前普遍使用的是v3版本(0x2)。
- 序列號:頒發者分配給證書的一個正整數,同一頒發者頒發的證書序列號各不相同,可用與頒發者名稱一起作為證書唯一標識。
- 簽名算法:頒發者頒發證書使用的簽名算法。
- 頒發者:頒發該證書的設備名稱,必須與頒發者證書中的主體名一致。通常為CA服務器的名稱。
- 有效期:包含有效的起、止日期,不在有效期范圍的證書為無效證書。
- 主體名:證書擁有者的名稱,如果與頒發者相同則說明該證書是一個自簽名證書。
- 公鑰信息:用戶對外公開的公鑰以及公鑰算法信息。
- 擴展信息:通常包含了證書的用法、CRL的發布地址等可選字段。
- 簽名:頒發者用私鑰對證書信息的簽名。
證書類型:
- 自簽名證書:自簽名證書又稱為根證書,是自己頒發給自己的證書,即證書中的頒發者和主體名相同。
- CA證書:CA自身的證書。如果PKI系統中沒有多層級CA,CA證書就是自簽名證書;如果有多層級CA,則會形成一個CA層次結構,最上層的CA是根CA,它擁有一個CA“自簽名”的證書。
- 本地證書:CA頒發給申請者的證書。
- 設備本地證書:設備根據CA證書給自己頒發的證書,證書中的頒發者名稱是CA服務器的名稱。
證書格式:
- PKCS#12:以二進制格式保存證書,可以包含私鑰,也可以不包含私鑰。常用的后綴有:.P12和.PFX。
- DER:以二進制格式保存證書,不包含私鑰。常用的后綴有:.DER、.CER和.CRT。
- PEM:以ASCII碼格式保存證書,可以包含私鑰,也可以不包含私鑰。常用的后綴有:.PEM、.CER和.CRT。
對于證書后綴為.CER或.CRT,可以用記事本打開證書,查看證書內容來區分證書格式。
- 如果有類似"—–BEGIN CERTIFICATE—–"和"—–END CERTIFICATE—–"的頭尾標記,則證書格式為PEM。
- 如果是亂碼,則證書格式為DER
PKI的核心部分CA
CA介紹:
證書認證機構CA(Certificate Authority)。CA是PKI的信任基礎,是一個用于頒發并管理數字證書的可信實體。它是一種權威性、可信任性和公正性的第三方機構,通常由服務器充當,例如Windows Server 2008。
CA通常采用多層次的分級結構,根據證書頒發機構的層次,可以劃分為根CA和從屬CA。
CA的核心功能就是發放和管理數字證書,包括:證書的頒發、證書的更新、證書的撤銷、證書的查詢、證書的歸檔、證書廢除列表CRL(Certificate Revocation List)的發布等。
有關CA的特性:
- 僅僅只有一個受信任的介紹者(證書頒發機構)
- CA簽署每一個人的公鑰
- 每個人都有CA的公鑰
CA頒發證書流程:
- 每個實體都要獲取CA的公鑰(認證CA的過程)
- 每個實體都要提交自己的公鑰給CA(注冊到PKI)
- 這個初始步驟,必須手動認證或者通過一個可信任的傳輸網絡來執行。
- CA使用自己的私鑰為提交的公鑰做數字簽名。
- 被數字簽了名的公鑰(身份證書)再返回給實體。
- 實體現在虧可以通過非信任的網絡來彼此交換被CA簽了名的公鑰了。
- 收到的公鑰都是被CA的公鑰所確認的,CA的公鑰在每個實體本地必須是有效的。
PKI的組成:
一個PKI體系由終端實體、證書認證機構、證書注冊機構和證書/CRL存儲庫四部分共同組成。
- 證書頒發機構(CA)
- 證書注冊機構(RA)
- 證書庫
- 密鑰備份及恢復系統
- 證書廢除處理系統
- 應用系統接口
- 數字證書
PKI框架的三個重要角色:
- 終端實體(EE, End Entity): 證書的最終使用者,例如總部和分支的網關。
- 證書頒發機構(CA, Certificate Authority):是一個權威的、可信的第三方機構,負載證書頒發、查詢以及更新等工作。
- 證書注冊機構(RA)
數字證書的驗證過程:
第一步:驗證前的主備:
A證書內容:【A公鑰 + CA私鑰簽名[Hash(A的公鑰 + 個人信息)]】
B證書內容:【B公鑰 + CA私鑰簽名[Hash(B的公鑰 + 個人信息)]】
CA證書內容:【CA公鑰 + CA私鑰簽名[Hash(CA的公鑰 + 個人信息)]】
交換證書:
? 實體A有了B證書,實體B有了A證書。
第二步:驗證證書是否合法
舉例:A驗證B證書是否合法:
B證書:B公【CA私HASH(B公】
CA證書:CA公【CA私HASH(CA公】
-
用CA公解密B證書——得到HASH值12345。
-
使用B證書提供的個人信息,公鑰,簽名算法也做HASH值得到12345 。
-
如果兩次hash值相同,即驗證了B證書的合法。
第三步:驗證證書的持有者
A舉例:用A的私鑰加密HASH值得到簽名。用B的公鑰解密,得到HASH值。
第四步:使用公鑰加密實現私密性
證書申請步驟
證書申請過程:
前提條件:正確部署CA服務器
-
同步時間:時間是PIK系統的重中之重,必須先確保參加PKI系統的設備和主機的時間同步。才能開始PKI的部署。
當設備的時間慢與證書有效期的開始時間或者設備時間大于證書有效期的結束時間那么證書都是無效的。
忌諱:設備時間比證書服務器的時間慢。
-
部署證書服務器。證書服務器是整個PKI系統的核心。可以選擇微軟的證書服務器。
-
客戶端產生密鑰對。每一個實體在申請證書之前,需要預先產生RSA的秘鑰對。
-
驗證證書服務器的合法性。每一個實體需要獲取證書服務器的根證書,里面包含證書服務器的公鑰。獲取了根證書后,可以通過fingerprint離先驗證證書服務器。
-
申請個人證書。每一個實體發送自己的個人信息和公鑰到證書服務器。(在線和離線方式)
-
CA審核并簽名證書。管理員對每一個證書請求進行審核,并對個人信息和公鑰內容進行數字簽名,簽名后的文件即為數字證書。
-
CA頒發數字證書給設備。證書服務器把簽名的證書頒發給實體。
-
設備相互交換證書。
證書申請方式
證書主要有以下申請方式:
- SCEP(Simple Certificate Enrollment Protocol)for VPN devices。
- File-based(PKCS#10)
- Web-based(browser-to-CA)
SECP介紹:
- 主要用于在線申請。
- 主要由Cisco設計的技術。
- VPN設備PKI證書申請的工業標準。
- HTTP傳輸協議。
- 被絕大多數VPN和CA廠商支持。
- 為VPN設備(VPN最終用戶)提供了簡單而功能強大的證書申請方式。
RKCS#10介紹:
- 主要用于離線證書申請。
- 定義了證書請求的數據格式。
- 證書請求包括:
- DN(Distinguished name)個人信息
- Public key公鑰
- Opentional set of attributes其他屬性。
Web-based證書申請:
證書吊銷方式:
-
CRL(證書吊銷列表):周期性查詢,有CRL吊銷
類似于通緝布告
time-stamped(有效期)
CA-signed(服務器簽名)
客戶周期性輪詢CRL存儲位(http、ldap、ftp)獲取當前CRL。
管理員一旦吊銷證書,新的CRL就會被頒布,但是新的CRL并不會立即被客戶獲取,必須等老的CRL超期,才能獲取新的CRL
-
OCSP(Online Cerificate Status Protocol):在線吊銷
在線式證書吊銷狀態查詢協議,IOS CA暫不支持。
證書的應用:
-
通過HTTPS登錄web界面的應用
管理員可以通過HTTPS方式安全地登錄HTTPS服務器的Web界面,并通過Web界面對設備進行管理。為了提高雙方建立SSL連接時的安全性,在設備上為HTTPS客戶端指定由Web瀏覽器信任的CA頒發的本地證書。這樣,Web瀏覽器可以驗證本地證書的合法性,避免了可能存在的主動攻擊,保證了管理員的安全登錄。
在SSL連接建立的過程中,HTTPS客戶端和HTTPS服務器之間的主要交互流程如下:
- HTTPS服務器向PKI認證中心申請本地證書。
- PKI認證中心向HTTPS服務器頒發本地證書。
- HTTPS服務器將攜帶自己公鑰信息的數字證書發送給HTTPS客戶端。
- HTTPS客戶端驗證HTTPS服務器的本地證書合法后,利用證書中的公鑰加密HTTPS客戶端隨機生成的密鑰,并發送給HTTPS服務器。
- HTTPS客戶端和HTTPS服務器通過協商,最終確定所使用的密鑰和加密套件。后續傳輸的數據,雙方都會使用該密鑰和加密套件進行加密處理。
-
在IPSec VPN中應用
采用基于PKI的證書進行身份認證后,IPSec在進行IKE協商過程中交換密鑰時,會對通信雙方進行身份認證,保證了密鑰交換的安全。而且,證書可以為IPSec提供集中的密鑰管理機制,并增強整個IPSec網絡的可擴展性。同時,在采用證書認證的IPSec網絡中,每臺設備都擁有PKI認證中心頒發的本地證書。有新設備加入時,只需要為新增加的設備申請一個證書,新設備就可以與其它設備進行安全通訊,而不需要對其他設備的配置進行修改,這大大減少了配置工作量。
-
在SSL VPN中應用
在SSL VPN應用中,SSL VPN客戶端可以通過證書驗證SSL VPN網關的身份;SSL VPN網關也可以通過證書來驗證客戶端的身份。
-
在IPv6 Send中應用:在IPv6 Send場景中,為了防止設備被攻擊者冒充,可以在設備上配置SEND(Secure Neighbor Discovery)路由器授權功能,路由器授權功能可以用于對設備的身份進行認證。