https詳解

http存在的隱患

HTTP是屬于應(yīng)用層的協(xié)議省店,它是基于TCP/IP的,所以它只是規(guī)定一些要傳輸?shù)膬?nèi)容宙拉,以及頭部信息宾尚,然后通過TCP協(xié)議進(jìn)行傳輸,依靠IP協(xié)議進(jìn)行尋址,通過一幅最簡單的圖來描述:

image.png

客戶端發(fā)出請求煌贴,服務(wù)端進(jìn)行響應(yīng)御板,就是這么簡單。在整個(gè)過程中牛郑,沒有任何加密的東西怠肋,所以它是不安全的,中間人可以進(jìn)行攔截淹朋,獲取傳輸和響應(yīng)的數(shù)據(jù)笙各,造成數(shù)據(jù)泄露。

對稱加密

對于這種情況础芍,我們想到的最直接的辦法就是對數(shù)據(jù)加密


數(shù)據(jù)加密.png

這種加密方式叫做:對稱加密杈抢。 加密和解密用同一個(gè)秘鑰的加密方式叫做對稱加密。但是對稱加密卻解決不了任何問題仑性,比如
多個(gè)客戶端怎么辦惶楼?


多個(gè)客戶端.png

為所有的客戶端都應(yīng)用同一個(gè)秘鑰A,這種方式很顯然是不合理的诊杆,破解了一個(gè)用戶歼捐,所有的用戶信息都會(huì)被盜取。
但是如果每個(gè)客戶端 都準(zhǔn)備一個(gè)密鑰也不是很現(xiàn)實(shí)晨汹,服務(wù)端需要維護(hù)的太多豹储。

另外對稱加密還存在一個(gè)問題就是對稱加密的秘鑰也需要傳輸,如果在傳輸秘鑰的過程中被攔截淘这,秘鑰也會(huì)被獲取剥扣,也是非常不安全的

非對稱加密

在對稱加密的路上走不通了,我們換個(gè)思路慨灭,還有一種加密方式叫非對稱加密朦乏,比如RSA球及。 非對稱加密會(huì)有一對秘鑰:公鑰和私鑰氧骤。 公鑰加密的內(nèi)容,只有私鑰可以解開吃引,私鑰加密的內(nèi)容筹陵,所有的公鑰都可以解開(當(dāng)然是指和秘鑰是一對的公鑰)。

非對稱加密.png

私鑰只保存在服務(wù)器端镊尺,公鑰可以發(fā)送給所有的客戶端朦佩。

在傳輸公鑰的過程中,肯定也會(huì)有被中間人獲取的風(fēng)險(xiǎn)庐氮,但在目前的情況下语稠,至少可以保證客戶端通過公鑰加密的內(nèi)容,中間人是無法破解的,因?yàn)樗借€只保存在服務(wù)器端仙畦,只有私鑰可以破解公鑰加密的內(nèi)容输涕。

現(xiàn)在我們還存在一個(gè)問題,如果公鑰被中間人拿到篡改呢:

MITM:Man-in-the-MiddleAttack

image.png

客戶端拿到的公鑰是假的慨畸,如何解決這個(gè)問題莱坎?

第三方認(rèn)證

公鑰被掉包,是因?yàn)榭蛻舳藷o法分辨?zhèn)骰毓€的到底是中間人寸士,還是服務(wù)器檐什,這也是密碼學(xué)中的身份驗(yàn)證問題。
在HTTPS中弱卡,使用 證書 + 數(shù)字簽名 來解決這個(gè)問題乃正。


image.png

這里假設(shè)加密方式是MD5,將網(wǎng)站的信息加密后通過第三方機(jī)構(gòu)的私鑰再次進(jìn)行加密婶博,生成數(shù)字簽名烫葬。

數(shù)字證書 = 網(wǎng)站信息 + 數(shù)字簽名

假如中間人攔截后把服務(wù)器的公鑰替換為自己的公鑰,因?yàn)閿?shù)字簽名的存在凡蜻,會(huì)導(dǎo)致客戶端驗(yàn)證簽名不匹配搭综,這樣就防止了中間人替換公鑰的問題。

image.png

瀏覽器安裝后會(huì)內(nèi)置一些權(quán)威第三方認(rèn)證機(jī)構(gòu)的公鑰划栓,比如VeriSign兑巾、Symantec以及GlobalSign等等,驗(yàn)證簽名的時(shí)候直接就從本地拿到相應(yīng)第三方機(jī)構(gòu)的公鑰忠荞,對私鑰加密后的數(shù)字簽名進(jìn)行解密得到真正的簽名蒋歌,然后客戶端利用簽名生成規(guī)則進(jìn)行簽名生成,看兩個(gè)簽名是否匹配委煤,如果匹配認(rèn)證通過堂油,不匹配則獲取證書失敗。

為什么要有簽名碧绞?

大家可以想一下府框,為什么要有數(shù)字簽名這個(gè)東西呢?

第三方認(rèn)證機(jī)構(gòu)是一個(gè)開放的平臺(tái)讥邻,我們可以去申請迫靖,中間人也可以去申請呀:


image.png

如果沒有簽名,只對網(wǎng)站信息進(jìn)行第三方機(jī)構(gòu)私鑰加密的話兴使,會(huì)存在下面的問題:

image.png

因?yàn)闆]有認(rèn)證系宜,所以中間人也向第三方認(rèn)證機(jī)構(gòu)進(jìn)行申請,然后攔截后把所有的信息都替換成自己的发魄,客戶端仍然可以解密盹牧,并且無法判斷這是服務(wù)器的還是中間人的,最后造成數(shù)據(jù)泄露。

對稱加密

在安全的拿到服務(wù)器的公鑰之后汰寓,客戶端會(huì)隨機(jī)生成一個(gè)對稱秘鑰吆寨,使用服務(wù)器公鑰加密,傳輸給服務(wù)端踩寇,此后啄清,相關(guān)的 Application Data 就通過這個(gè)隨機(jī)生成的對稱秘鑰進(jìn)行加密/解密,服務(wù)器也通過該對稱秘鑰進(jìn)行解密/加密:


image.png

整體流程圖

HTTPS = HTTP + TLS/SSL

image.png

HTTPS中具體的內(nèi)容還有很多俺孙,可以通過下圖做一個(gè)參考:

image.png

總結(jié)

HTTPS就是使用SSL/TLS協(xié)議進(jìn)行加密傳輸辣卒,讓客戶端拿到服務(wù)器的公鑰,然后客戶端隨機(jī)生成一個(gè)對稱加密的秘鑰睛榄,使用公鑰加密荣茫,傳輸給服務(wù)端,后續(xù)的所有信息都通過該對稱秘鑰進(jìn)行加密解密场靴,完成整個(gè)HTTPS的流程啡莉。

<article class="_2rhmJa" style="box-sizing: border-box; display: block; font-weight: 400; line-height: 1.8; margin-bottom: 20px; word-break: break-word; color: rgb(64, 64, 64); font-family: Georgia, "Times New Roman", Times, "Songti SC", serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">

關(guān)注公眾號(hào) 程序員小飯(programmer_grow), 更多技術(shù)干貨 面試經(jīng)驗(yàn) 等你來拿

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市旨剥,隨后出現(xiàn)的幾起案子咧欣,更是在濱河造成了極大的恐慌,老刑警劉巖轨帜,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魄咕,死亡現(xiàn)場離奇詭異,居然都是意外死亡蚌父,警方通過查閱死者的電腦和手機(jī)哮兰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苟弛,“玉大人喝滞,你說我怎么就攤上這事「囡” “怎么了右遭?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荔睹。 經(jīng)常有香客問我狸演,道長言蛇,這世上最難降的妖魔是什么僻他? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮腊尚,結(jié)果婚禮上吨拗,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好劝篷,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布哨鸭。 她就那樣靜靜地躺著,像睡著了一般娇妓。 火紅的嫁衣襯著肌膚如雪像鸡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天哈恰,我揣著相機(jī)與錄音只估,去河邊找鬼。 笑死着绷,一個(gè)胖子當(dāng)著我的面吹牛蛔钙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荠医,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼吁脱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彬向?” 一聲冷哼從身側(cè)響起兼贡,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娃胆,沒想到半個(gè)月后紧显,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缕棵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年孵班,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片招驴。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篙程,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出别厘,到底是詐尸還是另有隱情虱饿,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布触趴,位于F島的核電站氮发,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冗懦。R本人自食惡果不足惜爽冕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望披蕉。 院中可真熱鬧颈畸,春花似錦乌奇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至徙缴,卻和暖如春试伙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背于样。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工迁霎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人百宇。 一個(gè)月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓考廉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親携御。 傳聞我的和親對象是個(gè)殘疾皇子昌粤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344