天天看點

HTTP與HTTPS差別HTTP與HTTPS差別

HTTP與HTTPS差別

​ 超文本傳輸協定HTTP協定被用于在Web浏覽器和網站伺服器之間傳遞資訊,HTTP協定以明文方式發送内容,不提供任何方式的資料加密,如果攻擊者截取了Web浏覽器和網站伺服器之間的傳輸封包,就可以直接讀懂其中的資訊,是以,HTTP協定不适合傳輸一些敏感資訊,比如:信用卡号、密碼等支付資訊。

​ 為了解決HTTP協定的這一缺陷,需要使用另一種協定:安全套接字層超文本傳輸協定HTTPS,為了資料傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協定,SSL依靠證書來驗證伺服器的身份,并為浏覽器和伺服器之間的通信加密。

一、HTTP和HTTPS的基本概念

​ HTTP:是網際網路上應用最為廣泛的一種網絡協定,是一個用戶端和伺服器端請求和應答的标準(TCP),用于從WWW伺服器傳輸超文本到本地浏覽器的傳輸協定,它可以使浏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全為目标的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,是以加密的詳細内容就需要SSL。

HTTPS協定的主要作用可以分為兩種:一種是建立一個資訊安全通道,來保證資料傳輸的安全;另一種就是确認網站的真實性。

二、HTTP與HTTPS有什麼差別?

​ HTTP協定傳輸的資料都是未加密的,也就是明文的,是以使用HTTP協定傳輸隐私資訊非常不安全,為了保證這些隐私資料能加密傳輸,于是網景公司設計了SSL(Secure Sockets Layer)協定用于對HTTP協定傳輸的資料進行加密,進而就誕生了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協定。

HTTP與HTTPS差別HTTP與HTTPS差別

​ 用戶端在使用HTTPS方式與Web伺服器通信時有以下幾個步驟,如圖所示。

(1)客戶使用https的URL通路Web伺服器,要求與Web伺服器建立SSL連接配接。

(2)Web伺服器收到用戶端請求後,會将網站的證書資訊(證書中包含公鑰)傳送一份給用戶端。

(3)用戶端的浏覽器與Web伺服器開始協商SSL連接配接的安全等級,也就是資訊加密的等級。

(4)用戶端的浏覽器根據雙方同意的安全等級,建立會話密鑰,然後利用網站的公鑰将會話密鑰加密,并傳送給網站。

(5)Web伺服器利用自己的私鑰解密出會話密鑰。

(6)Web伺服器利用會話密鑰加密與用戶端之間的通信。

HTTP與HTTPS差別HTTP與HTTPS差別

四、HTTPS的優點

​ 盡管HTTPS并非絕對安全,掌握根證書的機構、掌握加密算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現行架構下最安全的解決方案,主要有以下幾個好處:

(1)使用HTTPS協定可認證使用者和伺服器,確定資料發送到正确的客戶機和伺服器;

(2)HTTPS協定是由SSL+HTTP協定建構的可進行加密傳輸、身份認證的網絡協定,要比http協定安全,可防止資料在傳輸過程中不被竊取、改變,確定資料的完整性。

(3)HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

(4)谷歌曾在2014年8月份調整搜尋引擎算法,并稱“比起同等HTTP網站,采用HTTPS加密的網站在搜尋結果中的排名将會更高”。

五、HTTPS的缺點

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

(1)HTTPS協定握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電;

(2)HTTPS連接配接緩存不如HTTP高效,會增加資料開銷和功耗,甚至已有的安全措施也會是以而受到影響;

(3)SSL證書需要錢,功能越強大的證書費用越高,個人網站、小網站沒有必要一般不會用。

(4)SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。

(5)HTTPS協定的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用。最關鍵的,SSL證書的信用鍊體系并不安全,特别是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。

六、http切換到HTTPS

​ 如果需要将網站從http切換到https到底該如何實作呢?

這裡需要将頁面中所有的連結,例如js,css,圖檔等等連結都由http改為https。例如:http://www.baidu.com改為https://www.baidu.com

BTW,這裡雖然将http切換為了https,還是建議保留http。是以我們在切換的時候可以做http和https的相容,具體實作方式是,去掉頁面連結中的http頭部,這樣可以自動比對http頭和https頭。例如:将http://www.baidu.com改為//www.baidu.com。然後當使用者從http的入口進入通路頁面時,頁面就是http,如果使用者是從https的入口進入通路頁面,頁面即使https的。