2017-12-03 208 views
0

我正在完成SSL上的任務,我感覺我理解證書如何與非對稱和對稱加密一起使用的基礎知識。但是我很難理解信任層次結構如何工作的一些細節。在SSL信任層次結構中,用於簽署中間證書的內容以及它與根證書有什麼關係?

具體而言,什麼用於簽署的中間證書?我所看過的所有指南都指出,CA根證書用於簽署中間證書。但是,「簽名」究竟意味着什麼呢?換句話說,服務器如何證明其中間證書是由CA根證書進行身份驗證的?

我的猜測是,生成的中間簽名時證書的,但我不知道這是否是準確的根證書的公鑰或簽名中使用。

我會很感激的任何信息,以提高我的理解。

回答

2

如果恰好有一箇中間,這通常是但並非總是如此,中間證書由根中完全相同的方式簽署的終端實體證書(對於SSL/TLS大多一個服務器證書)是有符號的由中間人。在這兩種情況下,這都是簡寫; 簽名實際上是使用非對稱密鑰對的私鑰完成的,並且證書包含用於驗證使用私鑰生成簽名的相同密鑰對的公鑰。由於私鑰是私密的,我們所有使用CA的人都只能看到他們的公鑰,所以我們專注於此。因此:

  • 服務器證書使用屬於中間CA的私鑰進行簽名;中間證書包含匹配的公鑰。作爲驗證服務器證書的一部分,relier(例如瀏覽器)使用服務器證書中的Isssuer名稱查找或確認中間證書,並使用中間證書中的公鑰驗證服務器證書上的簽名;這確保服務器證書實際上由中間CA發佈並且沒有被篡改。

    根據SSL/TLS標準,服務器應始終根據握手中的服務器證書發送中間證書(或證書,按順序),但如果未這樣做,某些客戶端可能會使用證書中的AIA或其他啓發式方法來獲得證書,或者可能已經緩存或甚至配置了它。

  • 中間證書使用屬於根CA私鑰簽署;根證書包含匹配的公鑰。作爲驗證中間證書的一部分,relier使用中間證書中的頒發者名稱找到根證書,並使用根證書中的公鑰來驗證中間證書上的簽名;這確保了中間證書實際上是由根CA頒發的,並沒有被篡改。

    根證書通常必須(就)是在relier的地方「信任庫」和服務器不需要發送;通常,信任商店由瀏覽器開發人員(Firefox)或OS /平臺開發人員(IE/Edge,Chrome,Safari)提供。

注意這兩個語句用的relier如何找到父證書的(顯着)異常之間的緊密平行。另請注意,驗證SSL/TLS連接的服務器證書鏈不僅僅是驗證簽名,儘管驗證簽名是一個關鍵部分,如果沒有驗證,其他驗證標準將無法得到保證。

一箇中級CA和中級證書通常會被大量(數千到數百萬)的服務器證書和服務器使用。服務器不負責'證明'有關中間證書的任何事情,只將它傳遞給客戶端,驗證整個鏈。

跨棧也見 https://security.stackexchange.com/questions/56389/ssl-certificate-framework-101-how-does-the-browser-actually-verify-the-validity 它有一個很好的關係圖。

+0

非常有幫助和簡潔。我現在終於明白了。謝謝 :) –

相關問題