首頁 >運維 >安全 >為什麼用了HTTPS,仍然被流量劫持?

為什麼用了HTTPS,仍然被流量劫持?

angryTom
angryTom轉載
2020-02-22 16:01:503368瀏覽

為什麼用了HTTPS,仍然被流量劫持?

為什麼用了HTTPS,還是被流量劫持?

您好,我是Chrome 瀏覽器公司的小雪,最近我們訪問千度網、淘貝網的網頁中時常出現不少奇怪的廣告,一直被投訴,聽領導說361防毒公司的周老師是這方面的專家,想請您幫忙診斷一下,到底這些廣告是怎麼來的

老周,有人找你,一大早,361 殺毒公司的老周就被吵醒。今天的陽光很明媚,老周伸了個懶腰,這才踱步走向工作室。

圖片來自Pexels

#1、廣告再臨

“是誰一大早的就來吵吵,壞了我的瞌睡”,聽得出來,老周有點不太高興。

“咚咚~”,老周微微抬頭一瞥,只見一甜美女子出現在工作室的門前。

推薦:《web伺服器安全教學

#老週一下從座椅上彈了起來,三步並作兩步,走到女子麵前,做出歡迎的手勢:「美女請進」。

兩人坐罷,老周扶了下鏡框,又整理了一下格子襯衣,一副溫文爾雅的作態,輕聲問到:「不知美女到訪,所為何事?」

女子倒是一副焦急的樣子,「您好,我是Chrome 瀏覽器公司的小雪,最近我們訪問千度網、淘貝網的網頁中時常出現不少奇怪的廣告,一直被投訴,聽領導說 361 防毒公司的周老師是這方面的專家,想請您幫忙診斷一下,到底這些廣告是怎麼來的」!

老週聽得有些不好意思,連連揮手,「原來是小雪姑娘,哪裡哪裡,勇鬥病毒木馬,消滅流氓軟體本就是我361  公司的分內之事,在下也只是盡一些綿薄之力罷了」。

“週老師別謙虛了,您之前揪出IE 公司的木馬入侵的事蹟已經傳遍整個Windows  帝國了,大家都知道您的厲害。這次廣告的問題,就拜託了”,小雪看著老周,彷彿眼裡閃著星星。

“別客氣,這事兒包在我身上了”,小雪起身,連說了幾句謝謝就離開了。

2、誰動了HTTPS 流量

此刻,負責網路資料過濾的大白正在忙碌著,突然一隻​​手搭在了他的肩膀上,大白回頭一看,正是老周。

「老周,什麼風把你吹到這裡來了,你不在安全實驗室分析惡意程式碼,跑我們網路部門來幹嘛?」

老週拍了下大白的肩膀,說到:「大白啊,有點事想請你幫忙,你幫我瞅瞅,Chrome 瀏覽器的流量中是不是被插入廣告了?」

「就這事啊,前段時間發現路由器老給插入廣告,我就給做了特徵屏蔽,原以為它們消停了,這才沒幾天又捲土重來了?”,大白說完調出了Chrome  公司的流量,準備一看究竟。

大白越看眉頭鎖的越緊,「應該沒有吧,我看訪問千度網和淘貝網都是用的HTTPS 協議,按理說路由器沒有可能插入廣告了啊!」

“HTTPS 協議?為什麼用這個就沒辦法插入廣告?”,老周問到。

“這都不知道啊,你這 361 公司安全實驗室領導怎麼當上去的啊”,大白一臉無語的表情。

老週有點難為情,「唉,老弟你也別取笑我了,這個術業有專攻嘛,我擅長病毒木馬代碼的分析,對網絡協議這塊確實知之甚少,勞煩大白老弟給說道」。

大白似乎是感覺自己的話說的有些重了,也藉坡下坎,「老周啊,剛才我跟你開玩笑的,你可別往心裡去啊」。

“沒事沒事,你快給我說說這HTTPS 協議,幫我早點破案吧!”

“好嘞,你稍等啊”,說完,大白開始在白板上畫了起來。

3、什麼是HTTPS

#「HTTPS=HTTP SSL/TLS,這門技術,說簡單也簡單,說複雜也複雜。簡單來說,就是為了網絡數據的安全性,通過加密傳輸的方式來對傳統上網的 HTTP 流量進行保護”,大白一邊畫著圖一邊給老周講述。

“明白,那麼問題來了,用什麼加解密演算法呢?對方如何知道用什麼演算法以及用什麼金鑰解密呢?”,老週一下抓到了關鍵點。

「唉,問到點子上了。在正式傳輸資料之前,雙方會有一個協商過程,為後面所選的加密演算法,以及要使用的金鑰達成協議。」

“那麼問題又來了,這個協商的內容要是被別人知道了,他不就可以按圖索驥,解密傳輸的內容了嗎?”,老周的反應很快。

「老周果然是老周!加密演算法被知道是無所謂了,畢竟演算法都是公開的,關鍵在於這個用於後續加密的金鑰,這個才是需要保護的關鍵,這個不能讓別人知道”,說罷,大白又繼續畫起來。

“so?怎麼保護這個金鑰呢?你倒是說啊”,老周有點著急了。

「注意哦,高能來了,雙方使用一個叫非對稱加密的方式來傳輸...」

"等一下",老周打斷了大白,「非對稱加密,這是個什麼意思?」

大白默默嘆了一口氣,「常見的加密方式叫對稱加密演算法,所謂對稱,就是加密和解密使用同一個金鑰。那與此相對的,非對稱加密,就是說加密和解密使用的是不同的密鑰,明白了吧”!

#老周略微思索,點了點頭,“我知道了,你繼續剛才說的,怎麼用這個非對稱加密演算法來傳輸後面需要的密鑰呢!」

大白繼續說到:「客戶端產生一個隨機數,使用公鑰加密,發給服務端,服務端使用私鑰解密取得這個隨機數,再根據這個隨機數和其他資訊計算出一個 key,就作為後續加密內容使用的金鑰了!」

「等等,客戶端的公鑰是哪裡來的?”

「最開始的時候,客戶端發來請求,服務端在回應中,會把公鑰告訴客戶端。好了,我畫完了,整個過程就是這樣的。」

大白放下畫筆,一副完整的HTTPS 協議握手過程圖浮現了出來:

老周反覆端詳,許久總算開口:「過程我倒是看懂了,不過我總覺得這不多此一舉嗎,直接使用非對稱加密演算法不就得了,這麼折騰!」

大白連連揮手,「你想的倒是簡單,非對稱加解密演算法執行起來麻煩的多,耗費的時間會多很多倍,如果全程使用非對稱加密演算法,那將會嚴重影響上網體驗。演算法是個好演算法,但用的代價也很大,所以權衡之下,好鋼用在刀刃上,就只用來傳輸密鑰,後面的正式數據傳輸,還是用常規的對稱加密演算法,來的經濟划算。」

老週點了點頭,一會兒低頭思考,一會兒又抬頭看著流程圖。

又過了許久,老周指著流程圖,再次提問:「我說大白,如果我在客戶端和服務端之間插入一個角色,對客戶端冒充服務端,對服務端又冒充客戶端,就能從中作梗,修改資料包,插入廣告了是吧?」

正在喝水的大白聽後嗆得連連咳嗽,「你說的就是中間人攻擊嘛!你當HTTPS  是玩具嘛,這麼容易就被劫持,笑話!注意看圖,那裡有個認證環節,不是誰能冒充的!”

老周又看了看圖,「怎麼認證法,我倒是聽聽!」

「在服務端的回應中,我前面說的公鑰是在一個叫做憑證的東西裡面,這個憑證就是用來標識服務端的身分的,是由權威機構頒發的,客戶端收到憑證後,會檢查是否是可信任的,如果不受信任就會及時中止後面的流程。」

「那如何判斷一個憑證是可信任的呢?」

「帝國早已把受信任的憑證安裝好了,屆時只要呼叫API 查一下即可!」

#老周思來想去,總覺得哪裡有問題,卻又說不上來。

4、真相只有一個

一連過了幾天,老周依舊毫無頭緒,這事兒就這樣擱置了。

福無雙至,禍不單行。這案子還沒搞清楚,Firefox 公司又出事了。

原來,361 防毒公司偵測到 Firefox 秘密啟動了有木馬特徵的進程,老周再一次帶隊前往勘查,Firefox 公司的小狐負責對接此事。

老週來到了 Firefox 磁碟儲存目錄,打算先排查木馬檔案是什麼來頭。

“這是一堆什麼資料?”,老周指著一堆檔案問到。

“週老師,這是網頁快取資料”,一旁的小狐狸回答。

「打開看看,能否找到一些攻擊痕跡?」

老週環顧四周,指著另一堆文件問到:「這又是一堆什麼資料?」

“週老師,這是一堆證書信息,HTTPS 握手時認證伺服器所用的,跟這次攻擊事件應該沒關係的”,小狐繼續解釋到。

“認證用?帝國不是儲存了受信認的證書嗎,你們還保存證書資訊做什麼?”,老周有些不解。

“帝國儲存的受信任證書我們可不認,誰知道那裡面都是些什麼證書,太不可靠了,我們Firefox  瀏覽器公司自己做認證,不用那一套”,小狐言語之間流露著些許得意。

聽完小狐的回答,老周突然愣住了,短暫的幾 ms 之後反應了過來,掏出了從 Chrome 公司拿來的千度網證書,打算請小狐看一下。

小狐狸接過證書,仔細察看,片刻之後一口咬定的說:「這證書有問題!」

老周眼前閃過一道亮光,追問:「哪裡有問題?”

「這證書頒發機構叫ABSafe,不在我們受信任的清單中!再說了,我這裡有快取千度網的證書,根本不是這樣的,這肯定是假的,你看!」

老週拿著兩個證書反覆查看,不時點點頭,之前困擾多時的問題終於有了答案。

「我明白了,真相只有一個!一定是有人把這個ABSafe 頒發機構安裝到了帝國受信任列表,以此騙過了Chrome 公司!進行了HTTPS  中間人劫持!YES!”,老周說完用力揮了揮拳頭。

“週老師,您在說什麼啊,我怎麼聽不懂?”,看著老周自言自語,小狐滿臉的問號。

老周叮嚀同行的老齊繼續勘察,匆忙拜別小狐狸就離開了。

這天夜裡,兩個黑影出現在了帝國受信任根憑證倉庫。

“原來是有人把我們安裝的根證書給刪掉了,難怪剛才 Chrome 瀏覽器訪問千度網報了警告”,其中一個胖的黑影說到。

瘦弱的黑影摀住了胖子的嘴巴,「噓,你給我把著點風,我去重新裝上!」

瘦的黑影躡手躡腳走了過去,從懷裡掏出了一個東西。

“別動!安全檢查!”,突然一束光線射了過來,原來老周帶著隊伍在此潛伏多時了。

“竟然是你們,禁廣大師!千度網和淘貝網的廣告也是你們加的是吧?”,老周大聲質問。

胖瘦黑影面面相覷,老實交代了一切。

彩蛋:“老齊,Firefox 公司的案子有什麼發現嗎”,“老周,你還是再來一趟吧,情況有點複雜”。欲知後事如何,請關注後續精彩...

更多安全、程式入門知識,請關注PHP中文網!

本文轉載自:https://netsecurity.51cto.com/art/202002/610987.htm

以上是為什麼用了HTTPS,仍然被流量劫持?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除