HTTP協(xié)議和HTTPS協(xié)議的那些事

文章目錄

  • HTTPS VS HTTP

  • HTTPS=HTTP+加密+證書+完整性保護(hù)

  • 加密

  • 對(duì)稱加密

  • 非對(duì)稱加密

  • 混合加密

  • 證書

  • 完整性保護(hù)

  • HTTPS并不能取代HTTP

  • SSL是把雙刃劍

  • HTTPS的遺憾之處


HTTPS VS HTTP

計(jì)算機(jī)網(wǎng)絡(luò) (二) 應(yīng)用層 :HTTP協(xié)議詳解
在之前的文章中介紹了HTTP協(xié)議,雖然從中了解了他優(yōu)秀的一面,但是也能看到他許多的不足。
由于其本身通信使用明文,沒有進(jìn)行加密,也沒有確認(rèn)通信方的一種機(jī)制,所以在互聯(lián)網(wǎng)上近似于裸奔,很容易就會(huì)受到中間人攻擊,導(dǎo)致安全存在問題。

通信時(shí)數(shù)據(jù)并沒有進(jìn)行加密,而是使用明文,很容易就會(huì)被竊聽


在這里插入圖片描述

沒有驗(yàn)證通信對(duì)象的機(jī)制,導(dǎo)致了可能會(huì)有人假扮客戶端進(jìn)行通信


無法驗(yàn)證報(bào)文的完整性,中途可能被人篡改,自己又無法確認(rèn)


HTTP的主要缺點(diǎn)如下

  • 通信使用明文,內(nèi)容可能會(huì)被竊聽
  • 不驗(yàn)證通信方的身份,因此有可能遭遇偽裝
  • 無法驗(yàn)證報(bào)文的完整性,有可能遭到篡改

為了彌補(bǔ)上述缺點(diǎn),HTTPS就誕生了,HTTPS并不是一個(gè)新的協(xié)議,而是身披SSL外殼的HTTP,通過引入加密,證書,完整性保護(hù)來保證了他的安全。


HTTPS=HTTP+加密+證書+完整性保護(hù)

加密

對(duì)稱加密

對(duì)稱密鑰加密也叫做共享密鑰加密,其實(shí)就是加密和解密采用了同一個(gè)密鑰

雙方在進(jìn)行通信時(shí),發(fā)送方會(huì)利用密鑰進(jìn)行加密,再將密鑰一同發(fā)送給接收方,讓其使用這個(gè)密鑰進(jìn)行解密。
這種方法看起來不錯(cuò),但是也存在問題,如果在發(fā)送的時(shí)候被攔截下來,密鑰就會(huì)泄露給中間人,此時(shí)中間人就可以通過密鑰來對(duì)之后的數(shù)據(jù)進(jìn)行解密,此時(shí)也就失去了加密的意義


這時(shí),就引入了非對(duì)稱加密


非對(duì)稱加密

非對(duì)稱加密又叫做公開密鑰加密,他使用一對(duì)非對(duì)稱的密鑰,一把叫做私有密鑰,一把叫做公有密鑰。故名思意,共有密鑰是公開的,任何人都可以獲得,而私有密鑰則不能讓任何人知道

當(dāng)進(jìn)行通信時(shí),發(fā)送方使用對(duì)方的公有密鑰進(jìn)行加密,而接收方接收時(shí)則使用自己的私有密鑰進(jìn)行解密,這樣一來,用于解密的私鑰就完全掌握在接收者自己手里,中間人也無法從中竊取密鑰,安全也一定程度的得到了保障。



混合加密

但是,從上面的描述也可以看出來,由于非對(duì)稱加密的處理比起對(duì)稱加密來說較為復(fù)雜,所以如果在通信時(shí)一直使用非對(duì)稱加密,就會(huì)導(dǎo)致通信的效率大大的降低,所以HTTPS采用對(duì)稱加密和非對(duì)稱加密并用的混合加密機(jī)制

具體怎么做呢?

  1. 使用非對(duì)稱加密的方式來交換之后用來進(jìn)行加密解密的對(duì)稱加密密鑰
    (因?yàn)閷?duì)稱加密的主要問題就是無法確保密鑰是否安全,而此時(shí)采用非對(duì)稱加密來傳輸密鑰,就能很好的規(guī)避這個(gè)問題)
  2. 在確保之前交換安全的情況下,使用對(duì)稱加密密鑰來進(jìn)行通信
    (而非對(duì)稱加密的最大問題就在于其復(fù)雜的處理機(jī)制導(dǎo)致效率降低,所以在安全的情況下使用對(duì)稱加密就可以大大提高效率)



證書

雖然數(shù)據(jù)得到了加密,不至于明文裸奔,但是這時(shí)以及安全了嗎?
答案是否定的,我們還需要考慮到HTTP的第二個(gè)缺點(diǎn),沒有驗(yàn)證對(duì)象。

假設(shè)這樣一個(gè)情景,小明和小張進(jìn)行通信,中間人在雙方第一次通信時(shí)就截獲了小明的公鑰,即使無法使用私鑰解密,但是他仍然想出了一個(gè)壞點(diǎn)子——偷天換日,此時(shí)他冒充小明,將自己生成的公鑰發(fā)送給小張。
此時(shí)小張誤以為他就是小明,所以使用中間人的公鑰進(jìn)行加密,將對(duì)稱加密的密鑰發(fā)送了過去。
此時(shí)中間人就可以通過自己的私鑰來進(jìn)行解密,于是就獲取了對(duì)稱加密的密鑰。之后他接著使壞——此時(shí)再偽裝成小張,將密鑰再一次加密后發(fā)送給小明,此時(shí)小明也認(rèn)為他就是小張。

通過這種手法,中間人就能在雙方都不知情的情況下,掌握了雙方的對(duì)稱加密密鑰,輕松的截取了雙方的通信內(nèi)容。

為了解決這個(gè)問題,HTTPS引入了數(shù)字證書這一機(jī)制。


服務(wù)器的運(yùn)營人員會(huì)向數(shù)字證書認(rèn)證機(jī)構(gòu)來進(jìn)行認(rèn)證,在機(jī)構(gòu)對(duì)其驗(yàn)明身份之后,就會(huì)對(duì)服務(wù)器的公鑰做一個(gè)數(shù)字簽名,并且將公鑰放入公鑰證書后綁定在一起。

此時(shí)當(dāng)客戶端接收到服務(wù)器發(fā)送的公鑰證書的時(shí)候,就會(huì)向證書認(rèn)證機(jī)構(gòu)來驗(yàn)證數(shù)字簽名是否正確,來判斷該公鑰是否遭到替換,確保了公鑰的真實(shí)性。

此時(shí)即使中間人想仿造公鑰證書,但也因?yàn)闊o法通過機(jī)構(gòu)的驗(yàn)證而被識(shí)破。
此時(shí),中間人就沒有使壞的空間了。


這就是HTTPS使用加密以及證書來確保安全的整個(gè)流程


完整性保護(hù)

在這里插入圖片描述
)

在上面的流程中,應(yīng)用層發(fā)送數(shù)據(jù)的時(shí)候會(huì)附加MAC報(bào)文摘要,MAC能夠查知報(bào)文是否遭受到篡改,從而讓保護(hù)報(bào)文的完整性。


HTTPS并不能取代HTTP

SSL是把雙刃劍

HTTPS也叫做披著SSL外殼的HTTP,在通信接口部分他使用了SSL和TLS來進(jìn)行代替。

對(duì)于HTTP協(xié)議來說,他直接和TCP進(jìn)行通信。
而HTTPS為了保證安全,使用了SSL來提供保障,通信時(shí)首先與SSL進(jìn)行通信,再由SSL來與TCP進(jìn)行通信,正是因?yàn)橛蒘SL的存在,才使得HTTP具備了HTTPS的加密、證書、安全性保障這些功能。

但是成也蕭何,敗也蕭何,SSL為HTTPS保障安全的同時(shí),也降低了他的效率

SSL主要慢在兩個(gè)方面

  1. 和HTTP相比,網(wǎng)絡(luò)負(fù)載可能會(huì)變慢2到100倍。由于HTTPS還需要額外進(jìn)行SSL通信,整體上處理通信量不可避免的增加了。
  2. SSL為了確保安全,在客戶端和服務(wù)端都需要進(jìn)行大量的加密和解密的運(yùn)算處理,導(dǎo)致其比起HTTP來說會(huì)更多的消耗服務(wù)器和客戶端的硬件資源,導(dǎo)致負(fù)載增強(qiáng)。

HTTPS的遺憾之處

  1. SSL的高度安全帶來的低效率以及高負(fù)載使得HTTPS并不會(huì)一直使用(或者干脆不用)
    (對(duì)于高訪問量的Web網(wǎng)站來說,進(jìn)行大量的加密解密出來帶來的負(fù)載十分龐大,并且對(duì)于非敏感信息(可公開信息)也沒有加密的必要,所以大多數(shù)網(wǎng)站并不會(huì)一直使用HTTPS,而是只在進(jìn)行私密內(nèi)容傳輸?shù)臅r(shí)候才會(huì)使用,來確保資源的節(jié)約。)
  2. 數(shù)字證書的高昂成本使得個(gè)人網(wǎng)站及非盈利網(wǎng)站望而卻步
    (要進(jìn)行HTTPS通信,數(shù)字證書是必不可少的,但是對(duì)于一些非盈利的網(wǎng)站以及個(gè)人網(wǎng)站來說,每年用來購買數(shù)字證書帶來的花銷并不是一個(gè)小數(shù)目,所以大多還是繼續(xù)使用HTTP
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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