
概念
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)))

- 加密密鑰也稱為
公鑰(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 加密連接,如果沒有,那么請不要輸入任何敏感信息如信用卡號。
