我正在搜索有關如何執行 SSL 驗證程序的演算法,但幾乎在任何地方,他們將證書驗證步驟解釋為“客戶端檢查證書”或類似的東西,但我想知道這背后的場景是什么。
我所知道的是:
當客戶端收到屬于您要嘗試握手的網站/服務器的證書副本時,有一些指標顯示了網路服務器的公共資訊(我認為這是為了匹配您快取的證書條目中的條目,您的瀏覽器已安裝。)
一旦客戶端將快取的證書與網路服務器的證書匹配,它就會開始驗證它。它使用快取證書的公鑰來解密網路服務器的簽名。(?[不確定,因為公鑰用于“加密”資料,而不是解密。這一步也可能完全錯誤。])
一旦解密,它就會比較快取的簽名和網路服務器的簽名。如果相同,則證書有效。
我也聽說過鏈條。我真的很想知道一個鏈是如何知道的,以及如何確定網路服務器的證書是否只屬于一個鏈。(?)
客戶端如何檢查 SSL 證書?我需要逐步和澄清的答案。謝謝 :)
編輯:
我認為這里的公鑰用于“解密”而不是“加密”。所以公鑰不負責每次加密,它也可以解密而不加密一些資料。這里的神奇之處在于,由于公鑰在這里解密,如果您想偽造證書,您應該擁有該 CA 的私鑰來應用加密的更改(因為只有私鑰才能加密資料)。但是現在,另一個問題來了......如果我們使用網路服務器的公鑰解密它,然后更改簽名中的條目,然后使用我們自己的再次加密它會怎樣私鑰(我們手動生成它,它不屬于服務器。),這實際上使我們表現得像一個 CA;最后覆寫證書以保存我們自己的公鑰,該公鑰能夠解密用我們自己的私鑰加密的資料?
uj5u.com熱心網友回復:
Encryption和Signature之間存在差異。
客戶端使用公鑰來加密只有服務器才能用服務器的私鑰解密的資料。
客戶端使用公鑰來驗證服務器發送的資料的簽名,該資料只能由服務器的私鑰簽名。
當客戶端想要訪問服務器時,服務器會向您發送一個包含公鑰的證書。客戶端通常 Web 瀏覽器會檢查他的集成 CA 的串列證書,如果它包含它。
- 如果它包含它,客戶端繼續并獲得授權此證書的 CA(證書頒發機構)。
- 如果未找到但簽名驗證通過,客戶端將收到警告,提示該證書可能是自簽名證書,可能是惡意的。
- 如果客戶端無法驗證簽名,則表示證書無效。
對于信任鏈,您可以查看維基百科:https : //en.wikipedia.org/wiki/Chain_of_trust
您需要在此信任鏈中才能在 CA 的 Web 瀏覽器集成“資料庫”中注冊。
希望它能回答你的問題,最好的問候,
米
uj5u.com熱心網友回復:
簡單說一下:
私鑰 -> 解密和簽名
公鑰 -> 加密和驗證
認證中心
是簽署和保證認證真實性的權威機構。如果您信任 CA,那么您也信任它的證書。朋友也是一樣:如果你有一個你信任的朋友,這告訴你“我有一個我信任的朋友”,那么你也信任你朋友的朋友。
證書頒發機構鏈。
您可以擁有多個中間 CA,例如,您可以擁有
- 根證書頒發機構
由根證書頒發機構簽署的 WebServer 中間證書頒發機構
- 由 WebServer 的中間證書頒發機構簽署的 Web 服務器證書
用于簽署代碼的中間證書頒發機構,由根證書頒發機構簽署
- 等等
為什么?
因為萬一中間機構之一受到威脅,您只能撤銷其子證書。
在企業層面,每個CA都有不同的安全級別,例如,Root Certification Authority可以存放在一個保險箱內,只有在有兩個或更多管理員時才能使用。
相反,對于中級,也許只有一個管理員可以管理它。
參考
SSL 的
作業原理HTTPS 的作業
原理 Wht 數字證書
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/349839.html
上一篇:資料庫更新時更新串列視圖
