PKI/CA工作原理及架構
相關概念
- PKI:Public Key Infrastructure,公鑰基礎設施。
- CA:Certificate Of Authority,認證中心。
- 數字證書:提供了一種釋出公鑰的簡便途徑;
一個數字證書包括:擁有者身份資訊、公鑰、CA數字簽名、有效期等其他資訊。 - 數字簽名:用來確認資訊傳送者的身份,保證資訊的完整性和抗否認性。
數字簽名
圖1 數字簽名
- 數字簽名的生成:對於要傳輸的訊息原文使用訊息摘要演算法(MD5、SHA)生成訊息摘要,傳送方使用自己的私鑰對摘要進行加密,生成數字簽名。
- 數字簽名的驗證:數字簽名同訊息一通傳輸給接收方,接收方對簽名使用傳送方的公鑰解密還原摘要,並對得到的原文進行hash計算出訊息摘要,比對兩份訊息摘要是否相同,可以保證訊息的完整性和抗否認性。
用傳送發私鑰生成數字簽名、用傳送方公鑰解密,可以證明訊息確實是由公鑰擁有者發出的。
兩份摘要的比對結果,可以證明訊息在傳輸的過程中是否被改動。
數字證書
數字簽名要發揮作用,首先需要接收方獲取傳送方的公鑰。如何證明獲取的公鑰確實是傳送方的公鑰而不是假冒的呢?數字證書提供了一種釋出公鑰的簡便方法。
圖2 證書的申請、釋出、使用
圖3 數字證書的生成與驗證
簡單地來說,把上面的原文換成公鑰、身份資訊、有效期等其他資訊,就是數字證書的生成和驗證過程。
- 數字證書的生成:CA收到數字證書申請並認證申請者的真實身份後,把申請者的公鑰、身份資訊、數字證書的有效期等資訊作為訊息原文,進行hash生成摘要,並用CA的私鑰加密進行簽名;數字簽名與證書擁有者的公鑰、身份資訊、證書有效期等其他資訊共同組成數字證書。
- 數字證書的驗證:數字證書生成後,經歷圖2中3、4、5的傳輸過程,來到接收方。接收方收到訊息證書後,使用CA公鑰對數字簽名解密生成訊息摘要,對證書內容進行hash生成摘要,兩份摘要進行比對可證明證書內容的完整性與真實性。
使用CA私鑰進行簽名和解密,可以證明證書確實是由CA釋出的;
兩份摘要的對比結果,可以證明證書內容是否在傳輸過程中被改動;
如果訊息原文中的公鑰和身份資訊是CA的,則是CA自簽名的過程。
通訊過程
數字證書提供了一種釋出公鑰的簡便途徑,大家通過向CA申請認證釋出自己的公鑰,通過向CA驗證來確認自己獲得了別人的公鑰。下圖展示了通訊雙方互相獲得公鑰以後的通訊過程。
圖4 通訊過程
- 傳送方對要傳輸訊息原文進行hash,生成訊息摘要,用傳送方的私鑰生成數字簽名;
- 隨機生成對稱祕鑰,對原文加密,生成密文;
- 用接收方公鑰加密對稱祕鑰;
- 將加密後的對稱祕鑰、數字簽名與密文一通傳送;
- 接收方收到後,用自己的私鑰解密對稱祕鑰;
- 用對稱祕鑰解密密文,得到原文;
- 對原文hash得到摘要,用傳送方的公鑰解密簽名得到摘要,對方兩份摘要。
非對稱加密安全性高,但計算量大效率低,因此使用對稱祕鑰對通訊的主要內容進行加密;對稱祕鑰每次使用隨機生成,用完即丟棄,降低風險;
用接收方公鑰加密對稱祕鑰,保證了只有接收方才能對密文進行解密;
用傳送發私鑰進行簽名,使得接收方可以驗證訊息的傳送方和訊息是否被修改過,保證了資訊的完整性和抗否認性。
PKI/CA架構
完整的PKI/CA系統如下部分:
- 安全伺服器:安全伺服器面向普通使用者,用於提供證書申請、瀏覽、證書撤銷列表、證書下載等安全服務;使用者需要首先得到安全伺服器的證書(該證書由CA頒發);
- 註冊機構RA:在CA體系結構中起承上啟下的作用,一方面向CA轉發安全伺服器傳輸過來的證書申請請求,另一方面向LDAP伺服器和安全伺服器轉發CA頒發的數字證書和證書撤銷列表(CRL)。
- LDAP伺服器:Lightweight Directory Access Protocol(輕量目錄訪問協議),提供目錄瀏覽服務,負責將註冊機構伺服器RA傳輸過來的使用者資訊以及數字證書加入到伺服器上。使用者通過訪問LDAP伺服器就能夠得到其他使用者的數字證書。
- CA伺服器:整個證書機構的核心,負責證書的簽發。CA首先 產生自身的私鑰和公鑰,然後生成數字證書,並且將數字正常傳輸給安全伺服器。CA還負責為安全伺服器、RA伺服器生成數字證書。
- 資料庫伺服器:CA中的核心部分,用於CA中資料(如金鑰和使用者資訊等)、日誌、統計資訊的儲存和管理。
圖5 PKI系統
證書申請過程
- 使用者申請:使用者獲取CA的數字證書(根證書),與安全伺服器建立連線;生成自己的公鑰和私鑰,將公鑰和自己的身份資訊提交給安全伺服器,安全伺服器將使用者的申請資訊傳送給RA伺服器。
- RA稽核:RA收到使用者的申請,使用者向RA證明自己的身份,RA進行核對。如果RA同意使用者申請證書的請求,則對證書申請資訊做數字簽名;否則拒絕使用者的申請。
- CA發行證書:RA將使用者申請和RA簽名傳輸給CA,CA對RA數字簽名做認證,如果驗證通過,則同意使用者請求,頒發證書,然後將證書輸出。如果驗證不通過,則拒絕證書申請。
- RA轉發證書:RA從CA得到新的證書,首先將證書輸出到LDAP伺服器以提供目錄瀏覽,再通知使用者證書發行成功,告知證書序列號,到指定的網址去下載證書。
- 使用者證書獲取:使用者使用證書序列號去指定網址下載自己的數字證書,只有持有與申請時提交的公鑰配對的私鑰才能下載成功。
證書撤銷過程
- 使用者申請:使用者向RA傳送一封簽名加密郵件,申請撤銷證書。
- RA稽核:註冊機構同意證書撤銷,並對申請簽名。
- CA更新CRL:CA驗證證書撤銷請求的RA簽名,如果正確,則同意申請,並更新CRL,並輸出。
- RA轉發CRL:註冊中心收到CRL,以多種方式將CRL公佈(包括LDAP伺服器)。
- 使用者告知:使用者訪問LDAP伺服器,下載或瀏覽CRL。
證書的管理
認證中心CA負責維護和釋出證書廢除列表CRL(certificate revocation lists,又稱為證書黑名單)。
當一個證書,特別是其中的公鑰因為其他原因無效時(不是因為到期),CRL提供了一種通知使用者和其他應用的中心管理方式。CA系統生成CRL以後,放到LDAP伺服器中或Web伺服器的合適位置,供使用者查詢或下載。
作者:ZYJ2016
連結:https://www.jianshu.com/p/c65fa3af1c01
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。