HTTP 協議知識點總結(二)HTTPS

Snorlax發表於2018-05-28

https.jpg

上回說到了 HTTP 與 TCP/IP、常見的 HTTP 方法、HTTP 狀態碼與HTTP 報文首部欄位。這回主要講講 HTTP 與 HTTPS

HTTP 存在的缺點

在安全方面,HTTP 存在以下幾種缺點。

  1. **竊聽風險:**由於通訊使用明文傳輸,內容可能會洩露。
  2. **篡改風險:**第三方對傳輸的資料進行篡改,影響與服務端之間的正確通訊。
  3. **冒充風險:**可能會出現中間人攻擊,第三方冒充伺服器。

其實上面三種問題可以總結為通訊未加密,而 HTTPS 的出現則很好的解決了以上問題。

什麼是 HTTPS

與 HTTP 協議的明文傳輸相比,HTTPS 是將這些內容加密,確保資訊傳輸安全。最後一個字母 S 指的是 SSL(Secure Socket Layer,安全套接層)/TLS(Transport Layer Security,安全傳輸層協議) 協議,它位於 HTTP 協議與 TCP/IP 協議之間。

HTTPS 使用了非對稱加密
私鑰只存在於伺服器上,伺服器下發的內容不可能被偽造,因為別人都沒有私鑰,所以無法加密。 所有人都有公鑰,但私鑰只有伺服器有,所以伺服器才能看到被加密的內容。

HTTPS 的工作過程

針對上面的三個缺點,說一下 HTTPS 是如何應對的。

  1. HTTPS 使用非對稱加密傳輸密碼,使用這個密碼加密資料,避免第三方獲取內容。
  2. 傳送方將資訊的雜湊值一起傳送過去,接收方會把解密後的資料與雜湊值進行對比,避免被篡改。
  3. HTTPS 由權威機構頒佈 CA(Certificate Authority,電子商務認證授權機構) 證書,使用證書校驗機制防止第三方的偽裝。

什麼是雜湊值?

雜湊值是通過雜湊演算法壓縮後得到的資料值,理論上來說不管多複雜的資料都可以通過雜湊演算法求得雜湊值。比如我們下載的 Android SDK 就會提供一個 SHA-256 校驗和,這個就屬於雜湊演算法的一種。

SHA-256

如何使用 HTTPS

現在有很多網站都已經廣泛使用 HTTPS,比如 www.baidu.com

HTTP 協議知識點總結(二)HTTPS

而且現在 iOS 提交至 App Store 的應用都必須使用 HTTPS 進行網路請求。所以瞭解如何使用 HTTPS 還是很有必要的。

申請方式很簡單了,拿阿里雲舉例,開啟官網選擇安全 -> CA 證書服務,填寫資訊購買即可。

阿里雲

為什麼不一直使用 HTTPS

在上一會我們講過 HTTP 有三次握手,在加入 HTTPS 之後就變成了四次握手,所以效率會降低一些,不過還是能接受的。

由於 HTTPS 會降低一定的速度,還有一些額外的成本。所以對於一些不太需要加密的資訊,還是有很多企業傾向於選擇 HTTP。

最後

這個第二篇和第一篇的間隔有點長,自己最近還是有點懶,各位多多包涵。

寫部落格這種東西,感覺對自己還是有不少幫助的,雖然自己水平不高,但是本來一些比較模糊的知識點,經過查資料、寫部落格慢慢也有一些進步了。所以呢,這裡還是推薦大家嘗試一下通過寫部落格進行知識總結和學習,有的時候只是看還是容易忘的?。

相關文章