簡體   English   中英

SSL證書和身份驗證

[英]SSL Certificate and identity verification

我一直在尋找有關SSL證書和加密協議的信息。 我得到了很好的答案,尤其是在此網站上。

我只有一件事。 如果我理解正確,則使用非對稱密碼學進行身份驗證(即服務器身份驗證,而不是證書身份驗證)。

這意味着步驟將是(如果我錯了就阻止我):

  • 客戶端使用經過驗證的公共密鑰來加密隨機質詢字符串並將其發送到服務器。
  • 服務器使用其私鑰對其解密,然后將其發送回客戶端。
  • 客戶端檢查來自服務器的響應是否匹配它剛發送的隨機質詢字符串。

是什么阻止偽造的服務器使用真實的證書(例如www.example.com)卻沒有私鑰來做到這一點呢?

  • 客戶端使用經過驗證的公共密鑰來加密隨機質詢字符串並將其發送到服務器。
  • 假服務器將加密的隨機質詢字符串發送到www.example.com,作為要檢查其身份的客戶端。
  • www.example.com將解密的隨機質詢字符串發送回假服務器。
  • 假服務器將其發送回客戶端。
  • 身份已確認?

客戶端使用經過驗證的公共密鑰來加密隨機質詢字符串並將其發送到服務器。

客戶端使用服務器的公共密鑰加密某些內容的密鑰交換模式是RSA密鑰交換模式。 TLS規范的F.1.1.2節對此有完整描述。

本質上,客戶端生成主密碼,使用服務器的公鑰(在服務器已發送的服務器證書中找到)對其進行加密,然后將其發送到服務器(在客戶端密鑰交換消息中)。 而已。 只有具有匹配私鑰的服務器才能解密它。 服務器不會將任何解密后的版本發送回客戶端,因此無法要求第三方進行您似乎想對它進行的任何操作。

這只是一個稻草人的論點。 您列出的步驟完全是虛構的。 實際步驟為:

  1. 服務器將其證書作為TLS握手的一部分發送。
  2. 服務器通過其證書發送數字簽名,並通過其私鑰簽名其他握手消息。
  3. 客戶端使用證書中的公鑰來驗證數字簽名。

只有具有與證書中的公鑰相對應的私鑰的服務器才能成功。

我建議您閱讀一些內容,而不是在互聯網上隨意閱讀:嘗試使用標准參考: RFC 2246

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM