关于数字证书链的一点认知
顧名思義,證書鏈是由一串數字證書鏈接而成,為了弄清楚這個概念,先看看什么是數字證書。
一、數字證書的基礎知識
數字證書是用來認證公鑰持有者身份合法性的電子文檔,以防止第三方冒充行為。數字證書由 CA(Certifacate Authority) 負責簽發,關鍵內容包括 頒發s者、證書有效期、使用者組織、使用者公鑰 等信息。數字證書涉及到一個名為 PKI(Public Key Infrastructure) 的規范體系,包含了數字證書格式定義、密鑰生命周期管理、數字簽名及驗證等多項技術說明,不在這篇筆記中詳細展開。
我們借助下面的流程,看看 CA 是如何簽發一張證書,使用者又是如何驗證這樣證書的。這又涉及到了數字簽名技術,數字簽名技術又是基于公鑰密碼技術。
現實世界中,簽名是針對承諾的一種表現形式,手手段可以通過手寫簽字或蓋扣印章;而在數字世界中,簽名仍然是為了表示承諾,只是手段變成了二進制。
好,我們來看看 CA 數字簽名包括兩個過程:簽發證書(Signing) 和 驗證證書(Verification)
簽發證書的過程
驗證證書的過程
上述是對數字證書的簽名和驗證過程,對普通數據的數字簽名和驗證也是利用了同樣的方法。
我們再來總結一下“簽發證書”與“驗證證書”兩個過程,Issuer(CA)使用 Issuer 的私鑰 對簽發的證書進行數字簽名,證書使用者使用 Issuser 的公鑰 對證書進行校驗,如果校驗通過,說明該證書可信。
由此看出,校驗的關鍵是 Issuer 的公鑰,使用者獲取不到 Issuer 的私鑰,只能獲取到 Issuer 的公鑰,如果 Issuer 是一個壞家伙,誰來證明 Issuer 的身份 是可信的?
這就涉及到一個信任鏈條了,也是這篇筆記本身要講述的事情,證書鏈。
二、證書鏈是什么
還是以百度為例,在瀏覽器上訪問 “www.baidu.com” 域名,地址連左側有一個小鎖的標志,點擊就能查看百度的數字證書,如下圖所示(使用的是Edge瀏覽器)
在圖片的頂部,我們看到這樣一個層次關系:
GlobalSign Root CA -> GlobalSign Organization Validation CA -> baidu.com
這個層次可以抽象為三個級別:
這其實代表了一個信任鏈條,最終的目的就是為了保證 end-user 證書是可信的,該證書的公鑰也就是可信的。
結合實際的使用場景對證書鏈進行一個歸納:
說到無條件信任,也不用奇怪,尤瓦爾赫拉里在《人類簡史》中已經闡述過,基于虛構故事所建立的信任,最終將人類待到了今天。
還有一個小問題,Root 根證書從何而來呢?除了自行下載安裝之外,瀏覽器、操作系統等都會內置一些 Root 根證書,稱之為 Rrusted Root Certificates。比如 Apple MacOS 官網就記錄了操作系統中內置的可信任根證書列表。
macOS High Sierra 中可用的受信任根證書列表
證書鏈的基本原理就是這些,有一篇E文專門講述證書鏈可供學習參考,鏈接如下:What is the SSL Certificate Chain?
數字證書是一種普遍使用的身份認證方式,而另外一種認證方式,基于身份標識,也就是和PKI競爭的IBC(Identity-Based Cryptography)體系正在興起,學習了解中,敬請期待。
持續學習,青春永駐!
總結
以上是生活随笔為你收集整理的关于数字证书链的一点认知的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 看usb 存储设备,找到哪个
- 下一篇: 实验部分小结:数据集处理部分