淺談HTTP和HTTPS

概念

HTTP

HTTP(HyperText Transfer Protocol:超文本傳輸協(xié)議)是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。
簡單來說就是一種發(fā)布和接收 HTML 頁面的方法,被用于在 Web 瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure:超文本傳輸安全協(xié)議或HTT Pover SSL)是一種透過計算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議。

區(qū)別

HTTP

  • HTTP 默認(rèn)工作在 TCP 協(xié)議 80 端口
  • 用戶訪問網(wǎng)站 以http://打頭
  • HTTP 協(xié)議以明文方式發(fā)送內(nèi)容,不安全

注:HTTP 協(xié)議不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協(xié)議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。

HTTPS

  • HTTPS 默認(rèn)工作在 TCP 協(xié)議443端口
  • 用戶訪問網(wǎng)站 以https://打頭
  • HTTPS 經(jīng)由 HTTP 進(jìn)行通信,但利用 SSL(Secure Socket Layer,安全套接字層)/TLS(Transport Layer Security,運(yùn)輸層安全) 來加密數(shù)據(jù)包。安全

注:HTTPS 開發(fā)的主要目的,是提供對網(wǎng)站服務(wù)器的身份認(rèn)證,保護(hù)交換數(shù)據(jù)的隱私與完整性。

  • 你也可以說:HTTPS = HTTP + SSL

  • HTTPS 在 HTTP 應(yīng)用層的基礎(chǔ)上使用安全套接字層作為子層。


在講HTTPS原理之前,先介紹下兩類密碼體制

當(dāng)你需要在一個購物網(wǎng)站輸入賬號以及密碼時時,含有你的賬號與密碼信息的數(shù)據(jù)會被發(fā)送到服務(wù)器,在發(fā)送的過程中,數(shù)據(jù)會有兩種加密形式——共享密鑰加密和公開密鑰加密。
共享密鑰加密可以這樣理解,服務(wù)器為了使數(shù)據(jù)傳輸更安全,送給你一把鑰匙,這把鑰匙可以將數(shù)據(jù)鎖在一個盒子里,當(dāng)然也可以打開已經(jīng)鎖上的盒子。當(dāng)數(shù)據(jù)送至服務(wù)器時,服務(wù)器會用同樣的鑰匙打開盒子。這種方法的壞處是,一旦賊人得到鑰匙,便可以打開已經(jīng)鎖上的盒子。而公開密鑰則避免了這種情況。
公開密鑰加密會使用兩把鑰匙,服務(wù)器會發(fā)送給你一把只能鎖上盒子卻不能打開盒子的鑰匙,而服務(wù)器自己會留一把可以打開盒子的鑰匙,這樣就避免了鑰匙在中途被其他人搶走風(fēng)險。當(dāng)服務(wù)器發(fā)回響應(yīng)時會用同樣的方式,只不過留有可以打開盒子鑰匙的人變成了你。

密碼體制1——對稱密鑰密碼體制

又稱為共享秘鑰加密,(加密密鑰與解密密鑰使用相同的密碼

  • 客戶端與服務(wù)器使用相同的密碼對內(nèi)容進(jìn)行加密與解密
  • 但這樣也必須將密鑰也發(fā)給對方,造成了另一個問題(怎樣將密鑰安全的發(fā)給對方?
  • 任何人只要獲取了密鑰便可解密密文
  • 一旦第三方攻擊者獲得了密鑰,加密也就毫無意義

密碼體制2——公鑰密碼體制

又稱為公開秘鑰加密,(加密密鑰與解密密鑰使用不同的密碼(但有關(guān)聯(lián))

image
  • 加密密鑰也稱為公鑰(public key),是向公眾公開
  • 解密密鑰也稱為私鑰秘鑰(secret key),是需要保密

過程

HTTP

瀏覽器打開一個 TCP 連接
瀏覽器發(fā)送 HTTP 請求到服務(wù)器端
服務(wù)器發(fā)送 HTTP 回應(yīng)信息到瀏覽器
TCP 連接關(guān)閉

SSL

驗證服務(wù)器端
允許客戶端和服務(wù)器端選擇加密算法和密碼,確保雙方都支持
驗證客戶端(可選)
使用公鑰加密技術(shù)來生成共享加密數(shù)據(jù)
創(chuàng)建一個加密的 SSL 連接
基于該 SSL 連接傳遞 HTTP 請求

HTTPS

使用 HTTPS 連接時,服務(wù)器要求有公鑰和簽名的證書。
當(dāng)使用 https 連接,服務(wù)器響應(yīng)初始連接,并提供它所支持的加密方法。
作為回應(yīng),客戶端選擇一個連接方法,并且客戶端和服務(wù)器端交換證書驗證彼此身份。
完成之后,在確保使用相同密鑰的情況下傳輸加密信息,然后關(guān)閉連接。
為了提供 https 連接支持,服務(wù)器必須有一個公鑰證書,該證書包含經(jīng)過證書機(jī)構(gòu)認(rèn)證的密鑰信息,大部分證書都是通過第三方機(jī)構(gòu)授權(quán)的,以保證證書是安全的。


如果某個網(wǎng)站要求你填寫信用卡信息,首先你要檢查該網(wǎng)頁是否使用 https 加密連接,如果沒有,那么請不要輸入任何敏感信息如信用卡號

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文鏈接:https://www.cnblogs.com/zhangbLearn/p/9534002.html 這...
    編程的小螞蟻閱讀 956評論 0 8
  • HTTP通信存在什么問題? HTTP協(xié)議并不是一種很安全的協(xié)議。 通信使用明文(不加密),內(nèi)容可能被竊聽、篡改;不...
    nucky_lee閱讀 546評論 0 1
  • HTTP HTTP 是應(yīng)用層協(xié)議,用于web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息,該協(xié)議是明文發(fā)送不提供加密,所以如果攻...
    寶寶家的隔壁老王閱讀 368評論 0 4
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,692評論 0 13
  • 在軍訓(xùn)的第二天里我們班的寢室因為空床上的被子疊的不夠整齊而被扣了0.2,這就意味著內(nèi)務(wù)先進(jìn)集體和綜合先進(jìn)集體這兩項...
    七月未央1閱讀 340評論 0 6

友情鏈接更多精彩內(nèi)容