PKI/CA的概念
- PKI定義:它是利用公開密鑰技術所構建的,解決網絡安全問題的,普遍適用的一種基礎設施。能夠為所有網絡應用提供密碼服務所需要的證書管理。廣義:PKI為全面解決安全問題的基礎結構。
- PKI( Public Key Infrastructure )指的是公鑰基礎設施。 CA ( Certificate Authority )指的是認證中心。PKI從技術上解決了網絡通信安全的種種障礙。 CA 從運營、管理、規范、法律、人員等多個角度來解決了網絡信任問題。由此,人們統稱為“ PKI/CA ”。從總體構架來看, PKI/CA 主要由最終用戶、認證中心和注冊機構來組成。
數字證書、目錄服務和信任模型
數字證書
什么是數字證書
- 數字證書(Digital ID),又叫“數字身份證”、“網絡身份證”,是由認證中心發放並經認證中心數字簽名的,包含公開密鑰擁有者以及公開密鑰相關信息的一種電子文件,可以用來zhengm數字證書持有者的真實身份。
- 數字證書采用公鑰體制。
- 數字證書的格式一般采用X.509國際標准
X.509數字證書
X.509是X.500標准系列的一部分,在PKI的發展中,X.509起到了無可比擬的作用。
X.509定義並標准化了一個通用的、靈活的證書格式。
X.509的實用性來源於它為X.509 v3和X.509 v2 CRL定義的強有力的擴展機制。
證書驗證
- 當證書持有者A想與證書持有者B通信時,他首先查找數據庫並得到一個從證書持有者A到證書持有者B的證書路徑和證書持有者B的公鑰。這時證書持有者A可使用單向或雙向驗證證書。
- 單向驗證是從證書持有者A到證書持有者B的單向通信。
- 雙向驗證與單向驗證類似,但它增加了來自證書持有者B的應答。
- 證書鏈的驗證示例
- 證書有效性或可用性驗證
數字證書生命周期
- 初始化階段:終端實體注冊、密鑰對產生、證書創建和證書分發、證書備份
- 頒發階段:證書檢索、證書驗證、證書恢復、證書更新
- 撤銷階段:證書過期、證書恢復、證書撤銷、證書檔案
數字證書的使用
- 每一個用戶有一個各不相同的名稱,一個可信的認證中心CA給每個用戶分配一個唯一的名稱並簽發一個包含用戶名稱和公鑰的證書。
- 證書可以存儲在數據庫中。用戶可以利用網絡彼此交換證書。當證書撤銷后,它將從證書目錄中刪除,然而簽發此證書的CA仍保留此證書的副本,以備日后解決可能引起的糾紛。
數字證書的存儲
- 數字證書可以存放在計算機硬盤、軟盤、IC卡或CPU卡中。
- 數字證書在計算機硬盤中存放時,使用方便,但存放證書的計算機必須受到安全保護。
- 軟盤保存證書,被竊取的可能性有所降低,但軟盤容易損壞,易於導致用戶數字證書的不可用。
- 使用IC卡存放證書成本較低,且本身不易被損壞,安全強度較高,成為目前較為廣泛的一種數字證書存儲方式。
- 使用CPU卡存放證書時,安全級別最高,但相對來說,成本較高。
數字證書的撤銷
- 證書撤銷原因:當證書還沒過期時卻無效的時候,需要撤銷證書。
- 證書撤銷列表(CRL):所有被撤銷的但還沒過期的證書序列號列表。
- CRL由CA整理並簽發。
- CRL需周期性更新。必須在公布的目錄中是可用的,以備用戶使用。
- 增量CRL:為了防止頻繁地更新CRL的一種機制。增量CRL包含了CRL的更新部分,從最近的前一版本CRL或者增量CRL算起撤銷的那部分。例如,CRL可能一個月頒發一次,而增量CRL是24小時頒布一次。
目錄服務
- 目錄是網絡系統中各種資源的清單,保存了網絡中用戶、服務器、客戶機、交換機、打印機等資源的詳細信息,同時還收集了這些資源之間各種復雜的相互關聯關系。
- 證書和證書吊銷列表(CRL)的存儲(主要針對X.509格式來說) 是X.500和目錄服務標准的主題。
X.500目錄服務
- X.500目錄服務是一個高度復雜的信息存儲機制,包括客戶機-目錄服務器訪問協議、服務器-服務器通信協議、完全或部分的目錄數據復制、服務器鏈對查詢的響應、復雜搜尋的過濾功能等。
LDAP目錄服務
- LDAP是X.500的簡化實現
- LDAP目錄的條目(entry)由屬性(attribute)的一個集合組成,並由一個唯一性的名字引用,即專有名稱(distinguished name,DN)。
信任模型
- 通常證書並不由一個CA直接簽發,而是從被信任的CA到一個給定的證書有一個證書路徑。例如:
根CA的證書\(C_0\)(由根CA簽發):根CA是被信任的
\(A_1\)的證書\(C_1\)(由根CA簽發)
\(A_2\)的證書\(C_2\)(由\(A_1\)簽發)
…
\(A_{n-1}\)的證書\(C_{n-1}\)(由\(A_{n-2}\)簽發)
\(A_n\)的證書\(C_n\)(由\(A_{n-1}\)簽發) - 通過依此驗證證書\(C_1,C_2,…,C_n\)來驗證\(C_n\)是可信的,即證書鏈。
- 信任模型規定了證書鏈應該如何構造的規則。
- 信任模型類型:嚴格層次模型、網絡化模型、用戶為中心的模型(即PGP信任模型)
嚴格層次模型
- 在嚴格層次模型中,根CA有個自簽名的,自頒發的證書。根CA被稱為信任錨。
- 根CA可給下級CA頒發證書,而任何CA可以給終端用戶頒發證書。
- 證書鏈:從根CA開始,到需驗證的用戶證書,這條路徑上的所有證書依次構成證書鏈。
- 根CA的作用:
– 發布本PKI信任域的認證策略;
– 發布自身證書;
– 簽發和管理下層CA證書;
– 對下層CA進行身份認證和鑒別;
– 廢除所簽發的證書;
– 為所簽發的證書產生CRL;
– 發布所簽發的證書和CRL;
– 保存證書、CRL以及審計信息;
– 密鑰安全生成及管理;
– 實現交叉認證。 - 下層CA的作用:
– 發布本地CA對根CA政策的增補部分;
– 對下屬機構進行認證和鑒別;
– 產生和管理下屬機構的證書;
– 發布自身證書;
– 證實RA的證書申請請求;
– 向RA返回證書制作的確認信息或已制定好的證書;
– 接收和認證對它所簽發的證書的作廢申請請求;
– 為它所簽發的證書產生CRL;
– 保存證書、CRL、審計信息和它所簽發的政策;
– 發布它所簽發的證書和CRL;
– 密鑰安全生成及管理;
– 實現交叉認證。
網絡化模型
- 網絡化模型用來連接兩個不同的PKI域的根CA,這樣屬於不同PKI域的用戶證書可以相互認證。
- 網絡化模型中不同PKI域的信任模型不一定相同。
- 交叉認證:不同域的CA相互頒發證書
- 不同PKI域的CA交叉認證方法:網狀認證、“橋-代理”認證
- 如何構造證書路徑:Alice為了驗證Bob的證書,那么Alice需要找到從Alice的信任錨到Bob的信任路徑。
用戶為中心的模型
- 每個用戶自己決定信任其他哪些用戶。
- 用戶的最初信任對象包括用戶的朋友/家人/同事,但是否真正信任某證書則被許多因素所左右。
- PGP的一個用戶通過擔當CA(簽發其他實體的公鑰)來發布其他實體的公鑰來建立信任網(Web of Trust)。
PKI/CA的體系結構
PKI及其組成
- PKI是生成、管理、存儲、分發和撤銷基於公鑰密碼學的公鑰證書所需要的硬件、軟件、人員、策略和規程的總和。
- PKI的構建、PKI的安全策略
認證中心CA
- CA的網絡結構
- CA是可信的第三方
主要功能
- 證書申請,接收並驗證最終用戶數字證書的申請;
- 證書審批,確定是否接受最終用戶數字證書的申請;
- 證書簽發,向申請者頒發、拒絕頒發數字證書;
- 證書更新,接收、處理最終用戶的數字證書更新請求
- 接收最終用戶數字證書的查詢、撤銷;
- 產生和發布證書廢止列表(CRL),驗證證書狀態;
- 提供OCSP在線證書查詢服務,驗證證書狀態;
- 提供目錄服務,可以查詢用戶證書的相關信息;
- 下級認證機構證書及帳戶管理;
注冊機構RA
- 自身密鑰的管理,包括密鑰的更新、保存、使用、銷毀等;
- 審核用戶信息;
- 登記黑名單;
- 業務受理點LRA的全面管理;
- 接收並處理來自受理點的各種請求。
業務受理點LRA
- 受理用戶的證書申請及廢除請求;
- 錄入用戶的證書申請及廢除請求;
- 審核用戶的證書申請及廢除請求資料;
- 對用戶的證書申請及廢除請求進行批准或否決;
- 提供證書制作。
CP與CPS
- CP(Certificate Policy):定義了一個用戶對其它用戶數字證書信任的程度
- CPS(Certification Practice Statement):人們與組織根據CA的CPS來確定他們對該CA的信任程度
PKI/CA的自建模型和托管模型
構建PKI的兩種模式:
- 典型的自建系統
- 典型的托管系統
PKI/CA的典型應用
Web安全服務(SSL/TLS)
- SSL:由Netscape公司研究制定,該協議向基於TCP/IP的客戶及服務器應用程序提供了客戶端和服務器的鑒別、信息機密性及完整性等安全措施。
- SSL主要提供三方面的服務:
– 認證用戶和服務器
– 加密數據以隱藏被傳送的數據
– 維護數據的完整性 - SSL/TLS在源和目的實體間建立了一條安全通道(在傳輸層之上),提供基於證書的認證、信息完整性和數據保密性
- SSL體系結構:SSL協議棧
其實就是比較常見的HTTPS。
安全電子郵件(S/MIME)
在安全的電子郵件系統中,收發雙方都有雙方的數字證書。發送方是在電子郵件的附件中增加發信者的數字簽字,同時也可將郵件內容用對方的公鑰加密。用戶在收到電子郵件后,電子郵件系統對加密的郵件會自動解密,同時自動驗證該郵件的數字簽字並將結果通知用戶,從而大大地提高了電子郵件的保密性和可信性。
安全電子交易(SET)
- SET是開放的、設計用來保護Internet上信用卡交易的加密和安全規范
- 從本質上,SET提供了三種服務:
– 在交易涉及的各方之間提供安全的通信信道
– 通過使用X.509 v3數字證書來提供信任。
– 保證機密性,因為信息只是在必要的時候、必要的地方才對交易各方可用 - 交易過程:購買請求、支付認可和支付獲取
SET的主要特征
- 信息的機密性
– 對持卡人的帳戶信息和訂購信息進行加密,通常用DES加密 - 數據的完整性
– 采用SHA-1哈希編碼及RSA數字簽名
– 采用SHA-1的HMAC保護 - 持卡人的帳戶認證
– 采用RSA數字簽名的X.509v3證書 - 商家認證
– 采用RSA數字簽名的X.509v3證書
VPN
- VPN是一種架構在公用通信基礎設施上的專用數據通信網絡,利用IPSec等網絡層安全協議和建立在PKI上的加密與簽名技術來獲得私有性。
實現VPN的關鍵技術
- 隧道化協議
隧道技術是將分組封裝(Capsule)的技術,它是VPN實現以內部網地址通信與多協議通信的重要功能,PPTP、L2TP、IPSec、GRE和GTP被廣泛采用。 - 認證協議
在遠程訪問VPN中,使用了用戶名及口令,它們被用來判斷用戶名是否有權訪問。PPP采用了PAP(Password Authentication Protocol)及CHAP(Challenge Handshake Authentication Protocol)等規程進行認證。PPTP及L2TP等隧道協議采用這種PPP的認證協議。 - 加密技術
IPSec ESP(Encapsulating Secutity Payload:封裝安全有效負載)。
IPSec
- IP層的安全包括了3個功能域:鑒別、機密性和密鑰管理
- IPSec的重要概念:鑒別報頭(AH), 封裝安全有效負載(ESP), 傳輸模式, 隧道模式, 安全關聯(SA), 安全關聯組(SA Bundle), ISAKMP