HTTP (超文本傳輸協議)和 HTTPS(超文本傳輸安全協議)的區別

HTTP (超文本傳輸協議)和 HTTPS(超文本傳輸安全協議)的區別

首先解釋一下,什麼是HTTP 和 HTTPS,再討論它們的區別。

HTTP協議是客戶端和服務器端請求和應答的標準,是一種應用層協議,默認端口爲 80,HTTP假定其下層協議提供可靠的傳輸。因此其在TCP/IP協議族使用 TCP 作爲其傳輸層。

HTTP協議的缺點:HTTP 以明文傳輸(即不加密),內容可能會被竊聽;HTTP 不驗證通信方身份,可能遭到僞裝;HTTP 無法證明報文完整性,數據有可能已遭篡改;因此,HTTP協議不適合傳輸一些敏感信息。

HTTPS協議,是在HTTP的基礎上加入了 SSL (Secure Sockets Layer 安全套接層) 或其繼任者 傳輸層安全(Transport Layer Security,TLS)協議,爲網絡通信提供安全及數據完整性。

SSL協議位於TCP/IP協議與各種應用層協議之間,即應用層之下,運輸層之上:安全協議向運行HTTP的進程提供一個類似於TCP的套接字,供進程向其中注入報文,安全協議將報文加密並注入運輸層套接字;或是從運輸層獲取加密報文,解密後交給對應的進程。

SSL協議使用密鑰加密通信數據,依靠證書來驗證用戶和服務器的身份,確保數據發送到正確的客戶機和服務器,共享的MAC密鑰來生成報文的鑑別碼驗證報文完整性。

SSL協議可分爲兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,爲高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL 握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。

因此,兩者有如下幾個區別:

  1. HTTPURL由“http://”起始且默認使用端口80不同,HTTPS的URL由“https://”起始且默認使用端口443。
  2. HTTP + 加密 + 認證 + 完整性保護 = HTTPS,即 HTTP 明文傳輸,HTTPS 加密傳輸;HTTPS 提供 HTTP 沒有的身份認證 和 數據完整性驗證;因此 HTTPS 比 HTTP 更安全(但也不是絕地的安全 選擇密文攻擊)。
  3. 資源消耗和速度方面:HTTPS 通信會由於加密解密處理消耗更多的CPU和內存資源;由於 HTTPS 中 SSL 進行握手協議需要網絡通信,再加上加密解密、驗證身份和完整性等處理,因此速度上會比 HTTP 慢。
  4. 只有少量證書是免費的,使用 HTTPS 很可能意味着比 HTTP 多需要一筆認證開銷。
加密方法
一、對稱加密

對稱密鑰加密(英語:Symmetric-key algorithm)又稱爲對稱加密、私鑰加密、共享密鑰加密,這類算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。

  • 優點:對稱加密的速度比公鑰加密快很多
  • 缺點:對稱密鑰加密牽涉到密鑰管理的問題,尤其是密鑰交換,需要雙方在通信之前先透過另一個安全的渠道交換共享的密鑰,纔可以安全地把密文透過不安全的渠道發送;對稱密鑰一旦被竊,其所作的加密將即時失效;而在互聯網,對稱加密事先所需要的“安全渠道”變得不可行,無法安全地將密鑰傳輸給通信方。
二、非對稱加密

公開密鑰加密(英語:Public-key cryptography),也稱爲非對稱加密(英語:asymmetric cryptography),它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰;

一個用作加密的時候,另一個則用作解密。使用其中一個密鑰把明文加密後所得的密文,只能用相對應的另一個密鑰才能解密得到原本的明文;甚至連最初用來加密的密鑰也不能用作解密。由於加密和解密需要兩個不同的密鑰,故被稱爲非對稱加密;不同於加密和解密都使用同一個密鑰的對稱加密。

雖然兩個密鑰在數學上相關,但如果知道了其中一個,並不能憑此計算出另外一個;因此其中一個可以公開,稱爲公鑰,任意向外發布;不公開的密鑰爲私鑰,必須由用戶自行嚴格祕密保管,絕不透過任何途徑向任何人提供,也不會透露給要通信的另一方,即使他被信任。

(非對稱加密往往需要 密碼學安全僞隨機數生成器 的協助來產生一對密鑰,其中一個可以隨便公開,稱爲公鑰;另一個不公開,稱爲私鑰,必須由用戶自行嚴格祕密保管,絕不透過任何途徑向任何人提供。)

img

非對此加密方式的優缺點基本上與對稱加密相反。

主要參考:維基百科 / 百度百科 / cyc 大佬的總結

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