HTTP與HTTPS介紹

雜文論 發佈 2022-10-11T12:54:38.007593+00:00

超文本傳輸協議HTTP協議被用於在Web瀏覽器和網站伺服器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站伺服器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付

超文本傳輸協議HTTP協議被用於在Web瀏覽器和網站伺服器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站伺服器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。

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

HTTPS協議是由SSL/TLS+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全

HTTPS協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。

HTTPS和HTTP的主要區別

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

2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl/tls加密傳輸協議。

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

4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL/TLS+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

HTTPS的主幹層次介紹

這部分內容作為前提點綴,如果你是初次了解HTTPS,看不懂這裡不要緊,只要把文章後面看完,再回過頭來看這裡的內容,就能恍然大悟了。

第一層:HTTPS本質上是為了實現加密通信,理論上,加密通信就是雙方都持有一個對稱加密的秘鑰,然後就可以安全通信了

但是,無論這個最初的秘鑰是由客戶端傳給服務端,還是服務端傳給客戶端,都是明文傳輸,中間人都可以知道。那就讓這個過程變成密文就好了唄,而且還得是中間人解不開的密文。

第二層:使用非對稱加密 加密客戶端與服務端協商生成對稱秘鑰之前各種鹽值、種子。

但是,在使用非對稱加密秘鑰之前,比如由服務端生成非對稱秘鑰,它需要將生成的公鑰給到客戶端,這個時候公鑰就會在網絡中明文傳輸,任何人都可以更改,會有中間人攻擊的問題。因此,只能引入公信機構CA,使我們傳輸自己的公鑰時可以保證不會被篡改!

第三層:服務端把自己的公鑰給 CA,讓 CA 用 CA 的私鑰加密,然後返回加密結果(可以用CA的公鑰解密,如果要篡改結果,必須再次用 CA 的私鑰加密,由於中間人沒法獲取私鑰,所以無法篡改)。

關鍵字: