1. 程式人生 > >深入理解HTTPS(梳理總結版)

深入理解HTTPS(梳理總結版)

HTTP與HTTPS

  • HTTP:全球資訊網中客戶端與服務端嚴格遵守的超文字傳輸協議,被用於在Web瀏覽器和網站伺服器之間傳遞資訊。
  • HTTPS:安全套接字層超文字傳輸協議HTTPS,為了資料傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證伺服器的身份,併為瀏覽器和伺服器之間的通訊加密。

HTTP 向 HTTPS 演化的過程

HTTP請求過程中,客戶端與伺服器之間沒有任何身份確認的過程,資料全部明文傳輸,“裸奔”在網際網路上,所以很容易遭到黑客的攻擊,客戶端發出的請求很容易被黑客截獲,如果此時黑客冒充伺服器,則其可返回任意資訊給客戶端,而不被客戶端察覺。

而且HTTP協議以明文方式傳送內容,不提供任何方式的資料加密,如果攻擊者截取了Web瀏覽器和網站伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此,HTTP協議不適合傳輸一些敏感資訊,比如:信用卡號、密碼等支付資訊。

為了解決HTTP協議的這一缺陷,使用加密演算法進行了很長時間的演化,個人認為大致可分為三個過程。

  1. 初期是採用對稱加密技術,雙方擁有相同的金鑰,但維護成本太高。
  2. 逐漸改為非對稱加密技術,客戶端用公鑰對請求內容加密,伺服器使用私鑰對內容解密,但公鑰是公開的,黑客截獲請求後可以用公鑰進行解密,獲取其中的內容,仍然很不安全。
  3. 後來採用傳送SSL證書,既解決了公鑰獲取問題,又解決了黑客冒充問題,HTTPS協議(HyperText Transfer Protocol over Secure Socket Layer)也就此形成。

HTTPS初衷是為了保證資料安全,簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全。

HTTPS和HTTP的區別

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。   2、http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。   3、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。   4、http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

HTTPS工作原理

HTTPS工作原理 HTTPS能夠加密資訊,以免敏感資訊被第三方獲取。當客戶端在使用HTTPS方式與Web伺服器通訊時有以下幾個步驟,如圖所示。

  1. 客戶使用HTTPS的URL訪問Web伺服器,要求與Web伺服器建立SSL連線。
  2. Web伺服器收到客戶端請求後,會將網站的證書資訊(證書中包含公鑰)傳送一份給客戶端。
  3. 客戶端的瀏覽器與Web伺服器開始協商SSL連線的安全等級,也就是資訊加密的等級。
  4. 客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用網站的公鑰將會話金鑰加密,並傳送給網站。
  5. Web伺服器利用自己的私鑰解密出會話金鑰。
  6. Web伺服器利用會話金鑰加密與客戶端之間的通訊。

HTTPS的優點

儘管HTTPS並非絕對安全,掌握根證書的機構、掌握加密演算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現行架構下最安全的解決方案,主要有以下幾個好處:   (1)使用HTTPS協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;   (2)HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。   (3)HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。   (4)谷歌曾在2014年8月份調整搜尋引擎演算法,並稱“比起同等HTTP網站,採用HTTPS加密的網站在搜尋結果中的排名將會更高”。

HTTPS的缺點

雖然說HTTPS有很大的優勢,但其相對來說,還是存在不足之處的:

  • HTTPS協議握手階段比較費時,會使頁面的載入時間延長近50%,增加10%到20%的耗電;
  • HTTPS連線快取不如HTTP高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響;
  • SSL證書需要錢,功能越強大的證書費用越高,個人網站、小網站沒有必要一般不會用。
  • SSL證書通常需要繫結IP,不能在同一IP上繫結多個域名,IPv4資源不可能支撐這個消耗。
  • HTTPS協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用。最關鍵的,SSL證書的信用鏈體系並不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。

總結

本文主要是結合很多參考資料做了一個總結梳理,深入理解了HTTPS協議。 相比 HTTP 協議,HTTPS 協議增加了很多握手、加密解密等流程,雖然過程很複雜,但其可以保證資料傳輸的安全。所以在這個網際網路膨脹的時代,其中隱藏著各種看不見的危機,為了保證資料的安全,維護網路穩定,還是要多多使用HTTPS協議。 希望能對大家有所幫助~ 有問題歡迎留言交流,不足之處還請多多指正。