Http和HTTPS

Http和HTTPS

Tags: 面試


1. 爲什麼需要Https

1.1 Http協議的缺點

  • 通信使用明文傳輸,內容可能會被竊聽。
  • 不驗證通信方的身份,有可能遭遇跨站請求僞造。
  • 無法證明報文的完整性,有可能發生報文被修改的狀況。

1.2 Https如何解決上述問題。

Https是在Http的基礎之上加入加密處理,認證機制和完整性保護的。即Http+加密+認證+通信保護=Https

  • 通過加密可以防止明文傳輸的時候密碼等關鍵信息被竊取。
  • 通過認證確保通信方的身份,防止出現跨站點的請求僞造攻擊。
  • 通過完整性保護,確保在信息的傳輸過程中沒有遭到信息篡改的狀況。

1.3 實現方案

Https並不是一種新的協議,只是http通信接口部分使用ssl/tls協議代替而已。通常http是直接和tcp進行通信確保在不收到外部干擾的情況下,保證信息的完整性接收。但是Http協議是在httptcp之間加入了ssl/tls。讓http先和ssl/tls進行通信,然後ssl/tls再去和tcp進行通信。在中間的ssl/tls的過程中對傳輸的信息進行加密,認證,保護。 去防止上面講到的Http的缺點。

其實所謂的Https就是在Http和TCP之間加了一個SSL。


2. SSL/TLS是什麼

SSL是(Secure Sockets Layer)的縮寫,中文成爲安全套接層。這個是網景公司(NetScape網景瀏覽器?)設計的。

爲何要發明SSL這個協議?以爲之前的HTTP協議是明文的,存在很多缺點具體的看上面。發明這個協議就是爲了解決上述問題。

SSL/TLS協議的基本思路就是採用公鑰加密,也就是說,客戶端向服務端索要公鑰,然後用公鑰加密信息,服務器收到密文之後,用自己的私鑰解密。但是這裏存在兩個問題:

  1. 如何保證公鑰不被篡改
  2. 公鑰加密,私鑰解密計算量太大,比較耗費時間如何減少耗用的時間。

解決方案

  1. 將公鑰放在數字證書當中,只要證書是可信的,那麼公鑰就一定是可信的。
  2. 每一次對話(Session),客戶端和服務端都生成一次對話祕鑰,又變成了對稱加密,且對稱加密的祕鑰泄露的風險會大大降低。

這種搭配使用可以延伸到GC,Redis鎖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章