Tls

如何在 HTTPS 連接後面驗證給定的伺服器證書?

  • March 8, 2017

我或多或少地了解 TLS 原則上的工作原理。

但是我怎麼能確定伺服器網站背後的證書(例如我銀行的電話銀行)已發給我的銀行而不是其他人。

假設有一個偽造的電話銀行門戶,我不小心連接到了該門戶。如果他們獲得了 CA 頒發的證書,那麼一切正常,我的數據就會被傳輸到假網站。

所以我每次使用門戶網站時都必須檢查證書。但是怎麼做?我的銀行說:

Bank XXX 登錄頁面已加密,因此以“https://”開頭。始終檢查安全證書的所有者,該證書必須是“XXX Bank XXX”,在登錄您的網​​上銀行之前,網際網路地址以綠色突出顯示。

現在,幾乎每個人都可以從 CA 獲得帶有 owner=“UniCredit Bank Austria” 的簽名證書。CA-1 是否知道任何其他 CA-2 頒發的其他證書?我無法想像會是這樣。但是我怎麼能確定我要依賴的證書不是假的呢?

好的,讓我們一步一步來,但首先:

CA 有一個*存在的理由,那就是*證明域、公鑰和可選的實體之間的聯繫。**

作為概述,這組資訊的 CA 驗證可以如下所示:

  • 您在 CA 註冊,因此他們可以將特定帳戶的操作歸因於您。

  • 您請求驗證您的帳戶是否代表給定實體(這可以是自然人或銀行等法人)。請注意,只有經過驗證的資訊才會放在證書中。

    • 如果您想以個人身份進行驗證,這可能包括官方文件(護照、駕照、政府身份證)的副本。
    • 這可能包括公司首席執行官的證明信。
    • 如果您真的感興趣,請閱讀CA-Baseline 要求(第 3.2 節)和EV-Guidelines(第 11 節)。
  • 您請求驗證您控制某個資產(通常是域)。

    • 這意味著您必須證明對資產的控制權,這可以通過將文件放在網路伺服器上或點擊發送到與域所有者密切相關的電子郵件的連結來證明(例如 WHOIS 數據庫中的主機管理員條目)
  • 您向 CA 發送您的公鑰,他們會給您一個證書。

    • 這通常使用 PKCS#10 證書籤名請求 ( CSR )。請注意,CA 會跟踪他們為哪些域頒發了哪些證書。

那麼,如果 CA 不能正常工作怎麼辦?好吧,如果它違反了 CA-Baseline 要求或 EV 證書的 EV 指南,它將不受瀏覽器和作業系統的信任,因此不能再頒發預設受信任的證書,即它已經停業了。從歷史上看,這確實發生過,例如Diginotar以及StartSSL 和 WoSign。他們都未能遵守基線要求,因此在不同程度上被標記為“不受信任”。


另請注意,瀏覽器將自動驗證證書的域名、公鑰和簽名鏈,如果此過程的任何步驟失敗,都會向您顯示錯誤消息。因此,您可以相信瀏覽器為您提供的證書是您所在域的正確證書。

引用自:https://crypto.stackexchange.com/questions/44552