用了HTTPS,没想到还是被监控了!
上周,微信里有個(gè)小伙伴兒給我發(fā)來(lái)了消息:
隨后,我讓他截了一個(gè)完整的圖,我一瞅,是HTTPS啊!沒(méi)用HTTP!再一瞅,是www.baidu.com啊,不是什么山寨網(wǎng)站!
我瞬間明白了些什么,讓他點(diǎn)擊了一下瀏覽器地址欄中那個(gè)表示安全的小鎖標(biāo)志,查看了一下網(wǎng)站使用的HTTPS證書(shū)。
果然不出我之所料,證書(shū)不是官方的,官方的證書(shū)長(zhǎng)這樣:
而那個(gè)假的證書(shū)是他們公司簽發(fā)的,看來(lái),他們公司開(kāi)始對(duì)HTTPS流量做解析了,這家伙瞬間瑟瑟發(fā)抖···
今天就來(lái)跟大家聊一下:HTTPS真的安全嗎?
現(xiàn)如今大家每天上網(wǎng)基本上看到的都是使用了HTTPS的網(wǎng)站,有時(shí)候特意想找一個(gè)HTTP的網(wǎng)站來(lái)讓新同學(xué)練習(xí)抓包分析都不好找。
但在幾年前,差不多我剛剛開(kāi)始畢業(yè)工作(2014年)的時(shí)候,情況卻不是這樣的,網(wǎng)絡(luò)上還有大量使用HTTP的網(wǎng)站。
大家知道,HTTP是超文本傳輸協(xié)議,數(shù)據(jù)內(nèi)容在網(wǎng)絡(luò)中都是明文傳輸?shù)?#xff0c;非常不安全。同在一個(gè)宿舍里的同學(xué),隨便搞一個(gè)中間人劫持就能監(jiān)聽(tīng)到你瀏覽了什么視頻學(xué)習(xí)網(wǎng)站。
不僅如此,上網(wǎng)鏈路中包括寢室路由器在內(nèi)的各級(jí)網(wǎng)絡(luò)設(shè)備都可以探知你的數(shù)據(jù),甚至給你插入小廣告(其實(shí)這種現(xiàn)象現(xiàn)在依然存在,尤其是很多醫(yī)院、學(xué)校的網(wǎng)站,還是很多都是用HTTP,特別容易粘上小廣告),一不小心就跳到了廣告頁(yè)面,真是防不勝防。
不久,網(wǎng)站HTTPS化的浪潮很快打來(lái),通過(guò)加密這一最簡(jiǎn)單直接的辦法,將瀏覽器上網(wǎng)過(guò)程中傳輸?shù)臄?shù)據(jù)進(jìn)行加密保護(hù),上網(wǎng)內(nèi)容的安全性得到了極大的提升。
咱們通過(guò)下面的快問(wèn)快答環(huán)節(jié)來(lái)簡(jiǎn)單總結(jié)一下。
HTTPS為什么安全呢?
因?yàn)閿?shù)據(jù)加密了啊~
那數(shù)據(jù)加密的秘鑰怎么來(lái)的?
是雙方通過(guò)相同的隨機(jī)數(shù)計(jì)算出來(lái)的。
那隨機(jī)數(shù)怎么傳輸?shù)?#xff1f;
使用非對(duì)稱(chēng)加密傳輸?shù)?#xff0c;瀏覽器使用服務(wù)器提供的公鑰加密,只有服務(wù)器使用自己的私鑰才能解開(kāi),別人解不開(kāi)。
你怎么知道那是服務(wù)器的公鑰,萬(wàn)一是別人的,中間人攻擊呢?
有證書(shū)來(lái)證明服務(wù)器身份
證書(shū)萬(wàn)一是假的呢?
不可能,假的證書(shū)不是受信任的機(jī)構(gòu)簽發(fā)的,瀏覽器會(huì)驗(yàn)證通不過(guò)。
那瀏覽器怎么知道證書(shū)的簽發(fā)機(jī)構(gòu)是不是受信任的?
因?yàn)槭苄湃螜C(jī)構(gòu)的根證書(shū)安裝到了系統(tǒng)中,你總得相信微軟吧!
要是假的根證書(shū)被安裝進(jìn)了系統(tǒng)咋辦?
看到了吧,HTTPS能夠安全的基石是非對(duì)稱(chēng)加密,非對(duì)稱(chēng)加密建立的前提是對(duì)方真的是對(duì)方,如果這一個(gè)前提不成立,后面的一切都是假的!
網(wǎng)站服務(wù)器使用HTTPS進(jìn)行通信時(shí),會(huì)提供一個(gè)用于證明身份的證書(shū),這個(gè)證書(shū),將會(huì)由某個(gè)受信任的機(jī)構(gòu)簽發(fā)。
瀏覽器拿到這個(gè)證書(shū)后,會(huì)校驗(yàn)證書(shū)的合法性,去檢查證書(shū)的簽發(fā)機(jī)構(gòu)是不是受信任的。
那如何去檢查簽發(fā)機(jī)構(gòu)是不是受信任的呢?
答案是繼續(xù)檢查簽發(fā)機(jī)構(gòu)的證書(shū),看看是誰(shuí)給他簽發(fā)的,一直這樣追溯,直到找到最終的簽發(fā)者,看看最終的簽發(fā)者的證書(shū)是不是安裝在操作系統(tǒng)的受信任的根證書(shū)列表中。
是不是已經(jīng)暈了?沒(méi)關(guān)系,我們來(lái)用百度的那個(gè)證書(shū)為例,看一下這個(gè)過(guò)程,你就知道什么意思了。
你可以通過(guò)點(diǎn)擊證書(shū)路徑tab頁(yè)面查看證書(shū)的簽發(fā)鏈條:
通過(guò)這個(gè)樹(shù)形結(jié)構(gòu)圖,可以清晰地看到:
baidu.com這個(gè)域名使用的證書(shū),是由名為GlobalSign Organization Validation CA - SHA256 - G2的頒發(fā)者簽發(fā)的。
而這個(gè)頒發(fā)者的證書(shū),又是由GlobalSign Root CA - R1簽發(fā)的。
瀏覽器拿到這個(gè)最頂層的簽發(fā)證書(shū)后,去操作系統(tǒng)安裝的受信任的根證書(shū)列表中一找,嘿,還真讓它找著了!
于是,瀏覽器信任了這個(gè)證書(shū),繼續(xù)接下來(lái)的通信過(guò)程。
如果找不到,瀏覽器就會(huì)彈出不受信任的消息,提醒用戶(hù)要當(dāng)心了!
而如果,有人在你的電腦中安裝了一個(gè)自己的根證書(shū)進(jìn)去,騙過(guò)瀏覽器,這一切安全的根基也就傾覆了。
而文章開(kāi)頭那個(gè)小伙伴兒之所以彈出了那個(gè)窗口,多半是根證書(shū)還沒(méi)安裝進(jìn)去,就開(kāi)始了HTTPS劫持。因?yàn)橹貑⒅?#xff0c;便再也沒(méi)有這些提示信息,一切如往常一樣風(fēng)平浪靜,只不過(guò)上網(wǎng)的流量已經(jīng)被公司悉數(shù)掌握。
看到這里,還不趕緊點(diǎn)開(kāi)瀏覽器地址欄的那把鎖,看看證書(shū)的簽發(fā)機(jī)構(gòu)是不是你們公司?
如果是,那恭喜你了~
最后,給大家留一個(gè)思考題:微信會(huì)受到這種HTTPS劫持的影響嗎? 歡迎在評(píng)論區(qū)發(fā)表你的看法!
有道無(wú)術(shù),術(shù)可成;有術(shù)無(wú)道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號(hào)
好文章,我在看??
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的用了HTTPS,没想到还是被监控了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php版本个版本区别,PHP版本不一样有
- 下一篇: 神经网络训练3次就准确率不变_1组高效徒