理解 HTTPS 協議

2021-09-06 23:40:49 字數 2086 閱讀 7989

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

如果你訪問 google,檢視一下位址列,你會看到如下資訊

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

https 是 http 協議的乙個版本,在瀏覽器和伺服器之間提供安全的資料傳輸。 

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

所以當瀏覽器和伺服器通訊的物理網路被侵入時,入侵者會得到網頁瀏覽器和伺服器之間傳輸的資訊。

http 的應用場景是我們不需要使用高安全級別的方法加密資料。但銀行這樣的應用會傳送像信用卡詳細資訊類的敏感資料,這會產生安全威脅。如果入侵者監視通訊通道,他可以輕易獲取到底層使用者的敏感資料。

https 保證安全可靠通訊

為了避免這樣的安全威脅,https 應運而生。https 是乙個確保資料在 web 瀏覽器與 web 伺服器之間傳輸安全的協議。

https 是由 http 協議+ssl 協議構成。ssl 協議通過對資訊進行加密,為網路通訊提供安全保障。它運用了非對稱金鑰機制,這種機制是將公鑰自由對外分發,而私鑰只有資訊接收者才有。

https 對比標準的http協議的兩大優勢:

所以在 https 中,ssl 起到了確保了資料在客戶端和 web 服務端傳輸安全。

https 工作流程

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

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

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

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

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

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

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

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

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

在握手流程中,瀏覽器和伺服器會針對資料的加密演算法進行協商並答成一致。過程如下:

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

3. 瀏覽器產生對稱的金鑰並通過伺服器公鑰將其加密,隨後將加密後的金鑰傳送到伺服器。這個對稱的金鑰用於在整個會話中進行加密和解密。

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

x.509是乙個定義數字證書格式的標準,它規定了證書中需要包含哪些資訊,例如下面:

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

理解 HTTPS 協議

最近我們看到很多站點使用 https 協議提供網頁服務。通常情況下我們都是在一些包含機密資訊的站點像銀行看到 https 協議。如果你訪問 google,檢視一下位址列,你會看到如下資訊 我們可以看到 https 是綠色高亮顯示,並且前面有乙個鎖標,表明網頁請求是通過 https 協議。https ...

TCP協議 HTTPS協議的理解

tcp tcp是一種可靠的傳輸協議,為什麼說它可靠呢,因為它有 三次握手 為什麼握三次手就可靠了,握兩次或者一次會怎樣?hi,我可以跟你拉小手手嗎?ok啊,那你現在方便跟我牽嗎?伸出手 好的,我已經抓住你的手了 https是加了安全驗證的http協議。可以這麼說,當你跟某個遠端的小夥伴通過網路傳輸資...

深入理解HTTPS協議

最好對http協議有所了解,不需要太透徹,但是基本概念要知道。如果能懂一些tcp ip 方面的東西就更好了。還不知道tcp三次握手的同學,可以先自行搜尋一下相關知識。這裡為什麼要複習tcp三次握手,因為http鏈結是在這之上的,任何乙個http鏈結,都需要tcp的三次握手的過程,https下面的加密...