溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

用故事說透https

發(fā)布時間:2020-08-16 10:15:13 來源:ITPUB博客 閱讀:114 作者:避涼閑庭 欄目:建站服務(wù)器

本文來自素燕公眾號,原文地址: 用故事說透https
故事中的主演:
用故事說透https
小華今年上大一,這是她第一次離開父母,獨自一人到北京上學(xué)。今天媽媽的生日,想了想要給媽媽一個祝福,便給媽媽發(fā)了條消息:
用故事說透https
媽媽收到這條消息非常開心,女兒這么忙還能記得自己的生日,兩個人便開始聊了起來。媽媽知道女兒一直省吃儉用,決定給女兒打點錢過去。
用故事說透https
小黑是個 *,專搞一些“偷雞摸狗”的事情,他已經(jīng)監(jiān)聽了這對母女的對話。一直看著她們嘮家常,都快睡著了。
用故事說透https
直到看到母女提到錢的事情,立馬打起精神,決定搞一筆。然后他截獲了小華的消息,替換成自己精心準(zhǔn)備的內(nèi)容給小華的媽媽發(fā)過去了。
用故事說透https
小華的媽媽隨后就把錢打給了小華,未曾想到母女二人的聊天內(nèi)容盡在小黑的掌控之中。小黑拿到錢后就逃之夭夭了。

HTTP 協(xié)議是建立在 TCP 之上的,TCP 是否安全決定了 HTTP 是否安全。HTTP的報文內(nèi)容并未加密,容易被監(jiān)聽和篡改。小黑就監(jiān)聽了母女二人的聊天內(nèi)容,并對內(nèi)容進(jìn)行了篡改,偽裝成女兒進(jìn)行聊天。所以 HTTP 有以下 3 個問題:
1.內(nèi)容未加密,容易被監(jiān)聽,都是明文傳輸;
2.無法驗證內(nèi)容的完整性,容易被篡改,也就是說不知道消息是不是被修改過;
3.無法驗證對方的身份,我現(xiàn)在聊天的人是誰,可靠嗎?

小華被騙后,心里很難過,把這件事告訴了她的計算機(jī)老師王大強(qiáng)。王老師聽到被騙的經(jīng)歷,感到非常驚訝,消息為什么會被篡改呢!立馬查看了她們使用的聊天軟件,原來這個軟件直接使用的是 TCP 協(xié)議,沒有做安全措施。

研究完軟件后,大強(qiáng)對小華說:“這款軟件有問題,以后別用了,要用具有安全措施的軟件,比如使用 TLS/SSL 協(xié)議的軟件”。

小華說:“什么是 TLS/SSL 呢?”。大強(qiáng)看到小華誠懇的表情,決定把 HTTPS 的原理告訴她,但是想到她可能理解不了,然后決定剖析一下她和媽媽被騙的場景。

既然小華和她媽媽的聊天內(nèi)容是明文傳輸?shù)?,那直接把?nèi)容加密不就完事了嗎。小華和她媽媽就約定了一個密碼,所有的內(nèi)容都通過這個密碼進(jìn)行加密和解密。
用故事說透https
這種加密方式稱為對稱加密,加密解密都是通過同一個密碼來操作,所以需要保證密碼的安全,一旦泄露,后果很嚴(yán)重

小華立馬覺察到事情的不妙,密碼如何才能傳給她媽媽呢。只能雙方見面后來約定一個密碼。但是她想到遠(yuǎn)在美國的爸爸,如果向他要錢的話,需要飛往美國把密碼告訴他。這太麻煩了。

王大強(qiáng)老師說:“別急,還有更好的方法”。那就使用兩個密鑰,一個用來加密(稱為公鑰),另一個用來解密(稱為私鑰),使用公鑰加密過的內(nèi)容,只能通過私鑰進(jìn)行解密。私鑰只有自己有,公鑰可以丟給別人。
用故事說透https
小華和媽媽,只把公鑰交給對方就行。小華給媽媽發(fā)消息的時候,用媽媽的公鑰進(jìn)行加密,私鑰只有媽媽有,也就是說只有媽媽能解密。

這種加密方式稱為非對稱加密,會有二個鑰匙,一個鑰匙加密過的內(nèi)容只能通過另一個鑰匙進(jìn)行解密。至于為啥要說 公鑰加密私鑰解密,雖然兩個鑰匙都可以進(jìn)行加密解密, 但是公鑰加密私鑰解密這種說法不是更好理解嗎? 公鑰被人都知道,私鑰只有自己知道

小華想了想覺得還是有點不安全,假如她和媽媽進(jìn)行交換公鑰的時候,被小黑監(jiān)聽了。

小華把自己的公鑰 xiaohua_pub 發(fā)給媽媽,中途被小黑掉包了,小黑把自己的公鑰 xiaohei_pub 發(fā)給了小華的媽媽。這樣小華媽媽發(fā)消息的時候就使用了小黑的公鑰進(jìn)行了加密,小黑獲取到消息表可以用自己的私鑰進(jìn)行解密。
用故事說透https
媽媽發(fā)送自己的公鑰給小華的時候也被小黑掉包了,這時小黑就有了雙方的公鑰。
用故事說透https
小黑監(jiān)聽到小華要求媽媽打錢的消息,對消息進(jìn)行了篡改。
用故事說透https
王大強(qiáng)老師聽完小華的疑慮,豎起了大拇指,說道:“別急,聽我慢慢解釋”。

現(xiàn)在的問題是出在交換公鑰的時候被小黑調(diào)包了,那接下來就需要解決這個問題。如何才能把公鑰安全地送到對方手上。

這似乎是永遠(yuǎn)解不了的問題,畢竟公鑰始終是要經(jīng)過傳輸?shù)?。這似乎是一個雞生蛋蛋生雞的問題。后來小華想了想他平時網(wǎng)上購物的時候,以前總是擔(dān)心怕付款了,商家跑路不給發(fā)貨,自從有了淘寶這個第三方機(jī)構(gòu),畢竟阿里家大業(yè)大,值得信賴,即使商家跑路了可以找淘寶。

后來就出現(xiàn)了關(guān)于公鑰的認(rèn)證機(jī)構(gòu),這些認(rèn)證機(jī)構(gòu)很少,但非常權(quán)威,它會和電腦、瀏覽器等廠商達(dá)成信任關(guān)系,提前把認(rèn)證機(jī)構(gòu)的公鑰安裝到系統(tǒng)中,這樣就不會涉及到傳輸?shù)膯栴}了。
用故事說透https
在聊天的過程中,小華發(fā)現(xiàn)消息發(fā)送和接收的時候很慢,后來發(fā)現(xiàn)因為是加密算法耗費比較長的時間。小華想了想,使用對稱加密的時候,唯一的缺點是交換秘鑰比較麻煩,但是速度非???。那么可以通過非對稱加密來傳輸對稱加密的密鑰,密鑰傳輸成功后,使用對稱加密來加密消息。
用故事說透https
HTTP 屬于應(yīng)用層協(xié)議,HTTPS 并不是一個新的協(xié)議,它只是比 HTTP 協(xié)議多了一層(TLS/SSL)來保證數(shù)據(jù)傳輸安全。TLS/SSL也屬于協(xié)議,它的主要作用是保證數(shù)據(jù)傳輸安全。大多數(shù)使用的是 OpenSSL 來實現(xiàn),比如 Node 中的 TLS 就是基于 OpenSSL 實現(xiàn)的
用故事說透https

本文以故事的形式介紹了 HTTP 的不安全,保證 HTTPS 安全性的背后支持,包含數(shù)字證書、數(shù)字簽名、對稱加密、非對稱加密的概念,當(dāng)然光有理論還不行,需要實踐才能更好地理解。大家加油。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI