一次看懂Https證書認證

1572769582415

TLS

傳輸層安全性協定 TLS(Transport Layer Security),及其前身安全套接層 SSL(Secure Sockets Layer)是一種安全協議,目的是爲網際網路通訊,提供安全及數據完整性保障。

image-20191022202706325

如圖,TLS 在創建鏈接時是須要html

  1. 客戶端發送 ClientHello(包含支持的協議版本、加密算法和 隨機數A (Client random))到服務端
  2. 服務端返回 ServerHello、公鑰、證書、隨機數B (Server random) 到客戶端
  3. 客戶端使用CA證書驗證返回證書無誤後。生成 隨機數C (Premaster secret),用公鑰對其加密,發送到服務端
  4. 服務端用 私鑰 解密獲得 隨機數C (Premaster secret),隨後根據已經獲得的 隨機數ABC生成對稱密鑰(hello的時候肯定的加密算法),並對須要發送的數據進行對稱加密發送
  5. 客戶端使用對稱密鑰(客戶端也用隨機數ABC生成對稱密鑰)對數據進行解密。
  6. 雙方手持對稱密鑰 使用對稱加密算法通信

而這一流程 服務端的證書 是相當重要的。git

證書

證書用來證實公鑰擁有者身份的憑證

首先咱們須要知道 證書是怎麼來的。算法

數字證書通常由數字證書認證機構簽發,須要安全

  • 申請者經過非對稱加密算法(RSA) 生成一對公鑰密鑰,而後把須要的申請信息(國家,域名等)連同公鑰發送給 證書認證機構(CA)
  • CA構確認無誤後經過消息摘要算法(MD5,SHA) 生成整個申請信息的摘要簽名M, 而後 把 簽名M和使用的摘要算法CA本身的私鑰 進行加密

證書包含了服務器

  • 公鑰
  • 證書擁有者身份信息
  • 數字證書認證機構(發行者)信息
  • 發行者對這份文件的數字簽名及使用的算法
  • 有效期

證書的格式和驗證方法廣泛遵循 X.509 國際標準。微信

image

證書認證機構(CA)

數字證書認證機構(英語:Certificate Authority,縮寫爲CA),也稱爲電子商務認證中心、電子商務認證受權機構,是負責發放和管理數字證書的權威機構,並做爲電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。

其實任何個體/組織均可以成爲CA(自簽證書),可是你發發布的證書客戶端是不信任的,也是就前文說起的須要權威。好比 Symantec、Comodo、Godaddy、Digicerthexo

客戶端信任這些CA,就會在其本地保持這些CA的 根證書root certificate),根證書是CA本身的證書,是證書驗證鏈的開頭。
根證書沒有機構(已是權威了)再爲其作數字簽名,因此都是自簽證書。dom

CA會經過 中介證書(intermediate-certificate) 替代根證書的去作服務器端的證書籤名,確保根證書密鑰絕對不可訪問。加密

Godaddy 給出瞭解釋spa

What is an intermediate certificate?

證書信任鏈

前文提到,在向CA 申請證書時是須要 CA的私鑰 去對整個證書的簽名摘要作非對稱加密的,也就是證書是能夠經過 CA的公鑰 去解密獲得證書的簽名摘要的。
當咱們再次用 相同的摘要算法(證書裏面有保存所使用的算法)對整個證書作簽名,若是獲得的簽名和證書上的簽名是一致的,說明這個證書是可信任的。

同理,中介證書 也是能夠被這樣的方式證實其可信任。這樣的一整個流程稱爲 信任鏈(Chain of trust)。

就是我絕對相信你(A>B);你絕對相信他(B>C);等於我絕對相信他(A>C)

如下是整個流程:

信任鏈.gif

  1. 客戶端獲得服務端返回的證書,經過讀取獲得 服務端證書的發佈機構(Issuer)
  2. 客戶端去操做系統查找這個發佈機構的的證書,若是是否是根證書就繼續遞歸下去 直到拿到根證書
  3. 根證書的公鑰解密驗證 上一層證書的合法性,再拿上一層證書的公鑰去驗證更上層證書的合法性;遞歸回溯。
  4. 最後驗證服務器端的證書是 可信任 的。

Reference

https://www.wikiwand.com/zh/根證書
https://www.wikiwand.com/zh-hans/信任鏈
https://www.wikiwand.com/zh-hans/證書頒發機構
http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

更多

更多優秀內容,請 關注微信公衆號【極客收藏夾】 獲取,加羣還能夠與小夥伴們交流討論哦!

相關文章
相關標籤/搜索