理解 HTTPS 協議

jopen 10年前發布 | 13K 次閱讀 HTTPS

最近我們看到很多站點使用 HTTPS 協議提供網頁服務。通常情況下我們都是在一些包含機密信息的站點像銀行看到 HTTPS 協議。

如果你訪問 google,查看一下地址欄,你會看到如下信息

理解 HTTPS 協議

我們可以看到“https" 是綠色高亮顯示,并且前面有一個鎖標,表明網頁請求是通過 https 協議。

HTTPS 是 HTTP 協議的一個版本,在瀏覽器和服務器之間提供安全的數據傳輸。 

瀏覽器和服務器是通過 http 協議進行通信,在使用 HTTP 協議時,客戶端向服務端提交表單數據時使用的是非加密方式。

所以當瀏覽器和服務器通信的物理網絡被侵入時,入侵者會得到網頁瀏覽器和服務器之間傳輸的信息。

理解 HTTPS 協議
HTTP 的應用場景是我們不需要使用高安全級別的方法加密數據。但銀行這樣的應用會發送像信用卡詳細信息類的敏感數據,這會產生安全威脅。如果入侵者監視通信信道,他可以輕易獲取到底層用戶的敏感數據。


HTTPS 保證安全可靠通信

為了避免這樣的安全威脅,HTTPS 應運而生。HTTPS 是一個確保數據在 web 瀏覽器與 web 服務器之間傳輸安全的協議。

HTTPS 是由 HTTP 協議+SSL 協議構成。SSL 協議通過對信息進行加密,為網絡通信提供安全保障。它運用了非對稱密鑰機制,這種機制是將公鑰自由對外分發,而私鑰只有信息接收者才有。

HTTPS 對比標準的HTTP協議的兩大優勢:

  • 它確保了用戶訪問的是正確的網站,這個網站是他原本打算訪問的而不是一些假冒網站。

  • 它確保了web瀏覽器與web服務器之間通信的內容是加密的,因此入侵者不能得到原始的通信內容。

所以在 HTTPS 中,SSL 起到了確保了數據在客戶端和 web 服務端傳輸安全。

HTTPS 工作流程

為了弄清 HTPPS 協議是怎么工作的,我們首先應該明白加密、解密處理過程是怎么工作的。

加密就是把文本內容轉換成其他某種格式,這樣他人就無法解析原始內容。

解密就是將之前我們轉換的密文再轉換回原始內容。

加密和解密過程也可以用密鑰去加密和解密信息。因此,如果信息是用某個密鑰加密的,那么使用同一個密鑰就能解密。這種方式稱為對稱密鑰機制,因為使用的是同一個密鑰進行加密和解密。

假如我們用一個密鑰加密字符串,另一個密鑰來解密字符串,我們就把這個密鑰稱為非對稱密鑰。我們把用來加密字符串的密鑰稱為公鑰,而用來解密字符串的密鑰稱為私鑰。

理解 HTTPS 協議

那么現在我們明白了 HTTPS 是用來安全傳輸 web 服務端與 web 瀏覽器之間的信息。這就是一個非常好的處理在傳輸信息的時候使用 HTTPS 協議。

當瀏覽器用 HTTPS 協議請求一個頁面時,下面的過程也會發生:

1.瀏覽器向 server 發出 https 請求,server 監聽 443 端口,這個端口是 web server 用來監聽使用了 HTTPS 協議的請求。

2.一旦 web 瀏覽器與 web 服務器之間成功建立連接,SSL 握手流程就開始了。

在握手流程中,瀏覽器和服務器會針對數據的加密算法進行協商并答成一致。過程如下:

  • 1. 瀏覽器向服務器發送一些自身的信息(例如其支持的SSL版本);

  • 2. 服務器響應類似信息,例如通信過程中將要使用的SSL版本;

  • 3. 服務器會向瀏覽器發送證書,證書中包含了加密數據的公鑰,發布者信息,有效期以及服務端唯一標識;

  • 4. 瀏覽器核實該證書,并發送信息通知服務器證書已驗證完成;

  • 5. 瀏覽器向服務器發送“Change cipher spec”指令:瀏覽器將對數據進行加密;

  • 6. 服務器向瀏覽器發送“Change cipher spec”指令,服務端將要對待發送的數據進行加密。

理解 HTTPS 協議

當我們單擊chrome中小鎖標志,我們就可以看到服務端發送過來的數字證書。

理解 HTTPS 協議

3. 瀏覽器產生對稱的密鑰并通過服務器公鑰將其加密,隨后將加密后的密鑰發送到服務器。這個對稱的密鑰用于在整個會話中進行加密和解密。

我們知道數字證書是用來提供公鑰的。有兩個關鍵的術語用來理解數字證書。

X.509 是一個定義數字證書格式的標準,它規定了證書中需要包含哪些信息,例如下面:

  • 版本 指定 X.509 的版本

  • 序列號 唯一的一串數字用以區分證書

  • 證書發布者名稱 CA

  • 公鑰

CA(Certification authority表示發布該證書的機構。只有從發布者那里才能獲得證書。證書中通常會有發布者的簽名用以保證有效性。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!