https證書原理

下面以一次ssl連接進行說明。
比如客戶端要認證服務器,服務器怎麼證明自己是真實的服務器,而不是釣魚網站呢?這需要服務器有個證書。證書包含以下信息:
    使用者的公鑰值。
    使用者標識信息(如名稱和電子郵件地址)。
    證書的有效時間。
    頒發者CA標識信息。
    頒發者CA的數字簽名。
你可以在IE中Internet選項》內容》證書 中看看證書長什麼樣。

有效的證書需要由權威機構CA簽名,CA會用自己的私鑰來生成數字簽名。這個權威機構CA客戶端是可以完全信任的,客戶端瀏覽器會安裝CA的根證書,由CA簽名的證書是被CA所信任的,這就構成了信任鏈,所以客戶端可以信任該服務器的證書。 
客戶端與服務器建立ssl連接時,服務器將自身的證書傳輸給客戶端,客戶端在驗證證書的時候,先看CA的根證書是否在自己的信任根證書列表中。再用CA的根證書提供的公鑰來驗證服務器證書中的數字簽名,如果公鑰可以解開簽名,證明該證書確實被CA所信任。再看證書是否過期,訪問的網站域名與證書綁定的域名是否一致。這些都通過,說明證書可以信任。

接下來使用服務器證書裏面的公鑰進行服務器身份的驗證。 客戶端生成一個隨機數給到服務器。 服務器對隨機數進行簽名(加密),並回傳給到客戶端。 客戶端用服務器證書的公鑰對隨機數的簽名進行驗證若驗證通過,則說明對應的服務器確實擁有對應服務器證書的私鑰,因此判斷服務器的身份正常。否則,則任務服務器身份被僞造。這些都沒問題才說明服務器是可信的。

接下來客戶端會生成會話密鑰,使用服務器公鑰加密。服務器用自己的私鑰解密後,用會話密鑰加密數據進行傳輸。ssl連接就建立了。


PKI(Public Key Infrastructure,公共密鑰基礎設施)是通過使用公鑰密碼技術和數字證書來確保系統信息安全並負責驗證數字證書持有者身份的一種體系 

PKI基本服務:
用戶提交個人信息和公鑰,申請證書;
覈准用戶信息,簽發用戶公鑰證書;
查詢給定的證書的狀態(過期、撤銷、掛起、正常等);
PKI系統基本組件:
RA:註冊機構,接受來自用戶的證書請求,驗證用戶信息
CA:認證機構,使用自己的私鑰簽發用戶公鑰證書
CRL發佈者:證書撤銷列表,被撤銷的證書的列表
CRL是一種離線證書狀態列表,如果有條件可以使用OCSP組件,在線查詢證書狀態
資料庫:存儲已經簽發過的證書及用戶信息的服務器
訂戶:證書的持有實體
依賴方:依賴PKI提供服務的實體

PKI構成示意圖

 

訂戶公鑰證書由CA簽發,CA即“權威機構”
CA使用自己的私鑰對證書籤名,以證明訂戶身份與公鑰的綁定
依賴方使用CA的公鑰驗證證書上的CA簽名,即可確認綁定關係
問題1:我又怎麼知道CA的公鑰是不是真的是這個CA的?
解決方案:找另一個“權威機構”,簽發CA的證書,以證明CA公鑰與CA身份的綁定關係
問題2:那麼“另一個權威機構”的公鑰又由誰證明? 
另另一個“權威機構”
總有一個最頂層的權威機構,是你不得不無條件信任的
無條件信任的CA,叫做信任錨,即信任的起點
由於信任“信任錨”,進而信任所有由它簽發的其它CA證書


參考 https://www.trustasia.com/ssl-work-principle


SSL握手

        證書主要作用是在SSL握手中,我們來看一下SSL的握手過程

        1. 客戶端提交https請求

        2. 服務器響應客戶,並把證書公鑰發給客戶端

        3. 客戶端驗證證書公鑰的有效性

        4. 有效後,會生成一個會話密鑰

        5. 用證書公鑰加密這個會話密鑰後,發送給服務器

        6. 服務器收到公鑰加密的會話密鑰後,用私鑰解密,回去會話密鑰

        7. 客戶端與服務器雙方利用這個會話密鑰加密要傳輸的數據進行通信

    見下圖:   

          image.png

      SSL證書作用

              https 起到了以下幾個作用

              1. 幫助客戶端對服務器身份進行驗證

              2. 讓需要傳輸的數據加密化

              3. 驗證傳輸的數據是否完整


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章