天天看點

了解 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)表示釋出該證書的機構。隻有從釋出者那裡才能獲得證書。證書中通常會有釋出者的簽名用以保證有效性。

繼續閱讀