Http請求和Https請求的區別


HTTP(Hypertext Transfer Protocol Vertion )超文本傳輸協議,被用於在web瀏覽器和網站服務器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截獲了傳輸報文,就可以讀取內容,所以不建議傳輸一些敏感信息。

為了解決這一缺陷,需要使用另一種協議,安全套接字超文本傳輸協議(HTTPS),為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL 協議,SSL依靠證書來檢驗服務器的身份,並且還為客戶端與服務器之間的通信加密。

每次開網頁時為什么要出現“http://”呢? 其實這個道理非常簡單,因為你要獲得網絡上超文本信息,那么你肯定要遵循其超文本傳輸的規范。

基本概念:

       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方式與web服務器通信時有以下幾個步驟:

(1)客戶端使用HTTPS的URL訪問web服務器,要求與web服務器建立SSL連接

(2)web服務器收到客戶端請求后,會將網站的證書信息(包含公鑰)傳送給客戶端

(3)客戶端與服務器之開始協商SSL連接的安全等級,也就是信息加密的等級

(4)客戶端根據雙方同意的安全等級,建立會話密鑰,然后利用公鑰對會話密鑰加密,並傳送給服務器

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

(6)服務器利用會話密鑰與客戶端進行通信

HTTPS的優缺點:

優點:是加密傳輸、身份認證的網絡協議,比HTTP安全,防止數據在傳輸過程中被竊取、改變,確保完整性。增加攻擊成本。

缺點:不是絕對安全,加密范圍有限、握手階段比較費時、增加耗電、不如HTTP高效、需要花錢、通常需要綁定ip

 

 

 HTTPS解決的問題:

 

      1 . 信任主機的問題. 采用https 的server 必須從CA 申請一個用於證明服務器用途類型的證書(CA證書:這里的證書類似於解密的一個簽名). 改證書只有用於對應的server 的時候,客戶度才信任次主機。所以目前所有的銀行系統網站,關鍵部分應用都是https 的,客戶通過信任該證書,從而信任了該主機,其實這樣做效率很低,但是銀行更側重安全。這一點對我們沒有任何意義,我們的server 采用的證書不管自己issue 還是從公眾的地方issue,客戶端都是自己人,所以我們也就肯定信任該server。
 
      2 . 通訊過程中的數據的泄密和被竄改

 

      1)一般意義上的https, 就是 server 有一個證書.

 

      a) 主要目的是保證server 就是他聲稱的server. 這個跟第一點一樣.

 

      b) 服務端和客戶端之間的所有通訊,都是加密的.

 

      i. 具體講,是客戶端產生一個對稱的密鑰,通過server 的證書來交換密鑰,一般意義上的握手過程。
 
      ii. 加下來所有的信息往來就都是加密的,第三方即使截獲,也沒有任何意義,因為他沒有密鑰,當然竄改也就沒有什么意義了。
 
      2)少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書。
 
      a) 這里客戶端證書,其實就類似表示個人信息的時候,除了用戶名/密碼, 還有一個CA 認證過的身份,個人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認自己的身份。
 
      b) 目前少數個人銀行的專業版是這種做法,具體證書可能是拿U盤作為一個備份的載體。

 

 

 

密鑰交換算法:

 

      使用對稱加密算法時,密鑰交換是個大難題,所以Diffie和Hellman提出了著名的Diffie-Hellman密鑰交換算法。

 

     Diffie-Hellman密鑰交換算法原理:

 1 (1)Alice與Bob確定兩個大素數n和g,這兩個數不用保密  2 
 3 (2)Alice選擇另一個大隨機數x,並計算A如下:A=g^x mod n  4 
 5 (3)Alice將A發給Bob  6 
 7 (4)Bob  選擇另一個大隨機數y,並計算B如下:B=g^y mod n  8 
 9 (5)Bob將B發給Alice 10 
11 (6)計算秘密密鑰K1如下:K1=B^x mod n 12 
13 (7)計算秘密密鑰K2如下:K2=A^y mod n 14 
15   K1=K2,因此Alice和Bob可以用其進行加解密

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM