HTTP和HTTPS

Jsp發表於2018-05-27

資料通訊,長連線+短連線:

長連線:TCP、UDP、WebSocket

短連線:HTTP、HTTPS

http協議執行在TCP之上,明文傳輸,客戶端和服務端都無法驗證對方的身份;Https是身披SSL(Secure Socket Layer)外殼的http,執行於TCP之上,是新增了加密和認證機制的HTTP。

一句話概括:HTTP+加密+認證+完整性保護=HTTPS

超文字傳輸協議HTTP被用於在web瀏覽器客戶端和網站伺服器之間傳遞資訊,HTTP協議以明文方式傳送內容,不提供任何方式的資料加密。

安全套接字層超文字傳輸協議HTTPS,為了資料傳輸的安全,HTTPS在HTTP的基礎上加入了SSL層,SSL依靠證書來驗證伺服器的身份,併為瀏覽器和伺服器之間的通訊加密。加密需要一個密匙交換演算法(DH密匙交換演算法),雙方通過交換後的密匙加解密。

一:HTTPS協議的主要作用:

1.建立一個資訊保安通道,來保證資料傳輸的安全;2.確認網站的真實性。


HTTP和HTTPS

二:HTTPS和HTTP的主要區別:

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是TCP/80,後者是443。

3、http的連線很簡單,是無狀態的,資訊是明文傳輸;https是HTTP執行在SSL/TLS之上,SSL/TLS執行在TCP之上,可進行加密傳輸、身份認證的網路協議,比http協議安全。

4、HTTPS協議握手階段比較費時,會使頁面的載入時間延長近50%,增加10%到20%的耗電。HTTP使用TCP三次握手建立連線,客戶端和伺服器需要交換3個包,HTTPS除了TCP的三個包,還要加上ssl握手需要的9個包,一共是12個包。

三: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:

將網站從http切換到https,需要將頁面中所有的連結,例如js、css、圖片等連結都由http改為https。

在切換時可以做http和https的相容:去掉頁面連結中的http頭部,這樣可以匹配http頭和https頭。例如:將http://www.baidu.com改為//www.baidu.com。

五:https是如何保證安全的

參考文章:HTTPS 是如何保證安全的?

                如果這樣來理解HTTPS,一篇就夠了

1、HTTPS要使客戶端與伺服器端的通訊過程得到安全保證,必須使用的對稱加密演算法

2、但是協商對稱加密演算法的過程,需要使用非對稱加密演算法來保證安全。

     這種加密指的是可以生成一對金鑰 (k1, k2)。凡是 k1 加密的資料,k1 自身不能解密,而需要 k2 才能解密;凡是 k2 加密的資料,k2 不能解密,需要 k1 才能解密。這種演算法事實上有很多,常用的是 RSA。

       特點是私鑰加密後的密文,只要是公鑰,都可以解密,但是公鑰加密後的密文,只有私鑰可以解密。私鑰只有一個人有,而公鑰可以發給所有的人。

å³æ¶é讯å®å…¨ç¯ï¼ä¸ï¼ï¼å¦æè¿æ ·æ¥ç解HTTPSï¼ä¸ç¯å°±å¤äº_7.jpg

3、然而直接使用非對稱加密的過程本身也不安全,會有中間人篡改公鑰的可能性,所以客戶端與伺服器不直接使用公鑰,而是使用數字證書籤發機構頒發的證書來保證非對稱加密過程本身的安全。

4、這樣通過這些機制協商出一個對稱加密演算法,就此雙方使用該演算法進行加密解密。從而解決了客戶端與伺服器端之間的通訊安全問題。

相關文章