2012-05-15 12 views
4

我想知道瀏覽器打開HTTPS頁面時要執行的步驟,以便深入理解雙方(服務器和客戶端)需要完成的每個操作。 我知道它的基本步驟,但我想更多地瞭解細節。我發現Google中的鏈接描述的是一般信息,而不是詳細信息。打開HTTPS頁面時的瀏覽器步驟

有沒有我可以閱讀相關信息的任何資源。

我一直在考慮尋找Mozilla Firefox的來源,但決定在這裏問之前。

謝謝。

+0

您找到了哪些鏈接(以便我們知道什麼不夠詳細)? – Bruno

回答

5

HTTPS定義在RFC 2818。簡而言之,瀏覽器首先建立到服務器的SSL/TLS連接,然後在此連接內發送HTTP請求/響應。

要建立SSL/TLS通道,客戶端會發起握手,在此期間服務器將發送其X.509證書。除了SSL/TLS握手機制之外,瀏覽器根據它擁有的信任錨(可信證書)列表以及它試圖訪問的名稱(URL中的主機名必須與證書相匹配)來驗證證書,如RFC 2818 Section 3.1 )。其中大部分通常是在SSL/TLS堆棧中實現的,但是一些瀏覽器可以通過添加異常(有時是永久性異常)來避免這種情況,所以瀏覽器還有一個回退機制,以防SSL/TLS堆棧無法接受證書成功。

的SSL/TLS協議(及其握手)在所述SSLv3TLS 1.01.11.2定義。

在服務器證書中使用服務器公鑰,客戶端和服務器能夠執行經過身份驗證的密鑰交換,之後它們具有共同的預主密鑰。主密鑰,然後是用於加密應用程序數據的共享對稱密鑰是從此主密鑰導出的。

用於此認證密鑰交換的機制depend on the cipher suiteTLS specification itself中有更多詳細信息。

如果您想通過示例學習,那麼值得看看Wireshark示例數據(如this answer所示)。

The First Few Milliseconds of an HTTPS Connection」也應該是有意義的。

+0

謝謝布魯諾!你發佈的這些鏈接是無價的! Wireshark的例子絕對是我一直在尋找的!再次感謝您的幫助 – nomail

相關問題