【轉】HTTP 和 HTTPS 的區別和各自的優缺點

一,HTTP 的缺點
HTTP 主要有這些不足,例舉如下:
1)通信使用明文(不加密),內容可能會被竊聽
2)不驗證通信方的身份,因此有可能遭遇僞裝
3)無法證明報文的完整性,所以有可能已遭篡改
這些問題不僅在 HTTP 上出現,其他未加密的協議中也會存在這類問題。除此之外,HTTP 本身還有很多缺點。而且,還有像某些特定的 Web服務器和特定Web瀏覽器在實際應用中存在的不足(也可以說成是脆弱性或安全漏洞),另外Java 和 PHP 等編程語言開發的Web 應用也可能存在安全漏洞。

二,通訊使用明文可能會被竊聽
由於 HTTP 本身不具備加密的功能,所以也無法做到對通信整體(使用 HTTP 協議通信的請求和響應的內容)進行加密。即,HTTP 報文使用明文(指未經過加密的報文)方式發送。

1)TCP/IP時可能被竊聽的網絡

如果要問爲什麼通信時不加密是一個缺點,這是因爲,按TCP/IP 協議族的工作機制,通信內容在所有的通信線路上都有可能遭到窺視。所謂互聯網,是由能連通到全世界的網絡組成的。無論世界哪個角落的服務器在和客戶端通信時,在此通信線路上的某些網絡設備、光纜、計算機等都不可能是個人的私有物,所以不排除某個環節中會遭到惡意窺視行爲。

即使已經過加密處理的通信,也會被窺視到通信內容,這點和未加密的通信是相同的。只是說如果通信經過加密,就有可能讓人無法破解報文信息的含義,但加密處理後的報文信息本身還是會被看到的。
這裏寫圖片描述
竊聽相同段上的通信並非難事。只需要收集在互聯網上流動的數據包(幀)就行了。對於收集來的數據包的解析工作,可交給那些抓包(Packet Capture)或嗅探器(Sniffer)工具。

2)加密處理防止被竊聽

在目前大家正在研究的如何防止竊聽保護信息的幾種對策中,最爲普及的就是加密技術。加密的對象可以有這麼幾個。

通信的加密
一種方式就是將通信加密。HTTP 協議中沒有加密機制,但可以通過和 SSL(Secure Socket Layer,安全套接層)或TLS(Transport Layer Security,安全層傳輸協議)的組合使用,
加密 HTTP 的通信內容。用 SSL 建立安全通信線路之後,就可以在這條線路上進行 HTTP通信了。與 SSL 組合使用的 HTTP 被稱爲 HTTPS(HTTPSecure,超文本傳輸安全協議)或 HTTP over SSL。 這裏寫圖片描述
內容的加密
還有一種將參與通信的內容本身加密的方式。由於 HTTP 協議中沒有加密機制,那麼就對 HTTP 協議傳輸的內容本身加密。即把HTTP 報文裏所含的內容進行加密處理。在這種情況下,客戶端需要對 HTTP 報文進行加密處理後再發送請求。
這裏寫圖片描述
誠然,爲了做到有效的內容加密,前提是要求客戶端和服務器同時具備加密和解密機制。主要應用在 Web 服務中。有一點必須引起注意,由於該方式不同於 SSL 或 TLS 將整個通信線路加密處理,所以內容仍有被篡改的風險。稍後我們會加以說明。

3)不驗證通信方的身份就可能遭遇僞裝

HTTP 協議中的請求和響應不會對通信方進行確認。也就是說存在“服務器是否就是發送請求中 URI 真正指定的主機,返回的響應是否真的返回到實際提出請求的客戶端”等類似問題。

任何人都可發起請求
在 HTTP 協議通信時,由於不存在確認通信方的處理步驟,任何人都可以發起請求。另外,服務器只要接收到請求,不管對方是誰都會返回一個響應(但也僅限於發送端的 IP 地址和端口號沒有被 Web 服務器設定限制訪問的前提下)。
這裏寫圖片描述
HTTP 協議的實現本身非常簡單,不論是誰發送過來的請求都會返回響應,因此不確認通信方,會存在以下各種隱患。

無法確定請求發送至目標的 Web 服務器是否是按真實意圖返回響應的那臺服務器。有可能是已僞裝的 Web 服務器。
無法確定響應返回到的客戶端是否是按真實意圖接收響應的那個客戶端。有可能是已僞裝的客戶端。
無法確定正在通信的對方是否具備訪問權限。因爲某些Web 服務器上保存着重要的信息,只想發給特定用戶通信的權限
無法判定請求是來自何方、出自誰手。
即使是無意義的請求也會照單全收。無法阻止海量請求下的 DoS 攻擊(Denial of Service,拒絕服務攻擊)。

查明對手的證書

雖然使用 HTTP 協議無法確定通信方,但如果使用 SSL 則可以。SSL 不僅提供加密處理,而且還使用了一種被稱爲證書的手段,可用於確定方。

證書由值得信任的第三方機構頒發,用以證明服務器和客戶端是實際存在的。另外,僞造證書從技術角度來說是異常困難的一件事。所以只要能夠確認通信方(服務器或客戶端)持有的證書,即可判斷通信方的真實意圖。這裏寫圖片描述
通過使用證書,以證明通信方就是意料中的服務器。這對使用者個人來講,也減少了個人信息泄露的危險性。另外,客戶端持有證書即可完成個人身份的確認,也可用於對Web 網站的認證環節。

·無法證明報文完整性,可能已遭篡改

所謂完整性是指信息的準確度。若無法證明其完整性,通常也就意味着無法判斷信息是否準確。

接收到的內容可能有誤
由於 HTTP 協議無法證明通信的報文完整性,因此,在請求或響應送出之後直到對方接收之前的這段時間內,即使請求或響應的內容遭到篡改,也沒有辦法獲悉。換句話說,沒有任何辦法確認,發出的請求 / 響應和接收到的請求 / 響應是前後相同的。 這裏寫圖片描述
比如,從某個 Web 網站上下載內容,是無法確定客戶端下載的文件和服務器上存放的文件是否前後一致的。文件內容在傳輸途中可能已經被篡改爲其他的內容。即使內容真的已改變,作爲接收方的客戶端也是覺察不到的。像這樣,請求或響應在傳輸途中,遭攻擊者攔截並篡改內容的攻擊稱爲中間人攻擊(Man-in-the-Middle attack,MITM)。 這裏寫圖片描述

三,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協議。
  這裏寫圖片描述
客戶端在使用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有很大的優勢,但其相對來說,還是存在不足之處的:

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

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

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

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

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

原文鏈接1:https://blog.csdn.net/wangxp423/article/details/80033225
原文鏈接2:https://www.cnblogs.com/wqhwe/p/5407468.html

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