爲何用上了HTTPS,仍是被流量劫持?

廣告再臨

「老周,有人找你」算法

一大早,361殺毒公司的老周就被吵醒。瀏覽器

今天的陽光很明媚,老周伸了伸懶腰,這才踱步走向工做室。 緩存

「是誰一大早的就來吵吵,壞了個人瞌睡」,聽得出來,老周有點不過高興。安全

「咚咚~」,老周微微擡頭一瞥,只見一甜美女子出如今工做室的門前。 服務器

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

二人坐罷,老周扶了下鏡框,又整理了一下格子襯衣,一副文質彬彬的做態,輕聲問到:「不知美女到訪,所爲什麼事?」網絡

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

老周聽得有些很差意思,連連揮手,「原來是小雪姑娘,哪里哪里,勇鬥病毒木馬,消滅流氓軟件本就是我361公司的份內之事,在下也只是盡一些綿薄之力罷了」。加密

「周老師別謙虛了,您以前揪出IE公司的木馬入侵的事蹟已經傳遍整個Windows帝國了,你們都知道您的厲害。這一次廣告的問題,就拜託了」,小雪看着老周,似乎眼裏閃着星星。spa

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

誰動了HTTPS流量

此刻,負責網絡數據過濾的大白正在忙碌着,忽然一隻手搭在了他的肩膀上,大白回頭一看,正是老周。

「老周,什麼風把你吹到這裏來了,你不在安全實驗室分析惡意代碼,跑咱們網絡部門來幹嗎?」

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

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

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

「HTTPS協議?爲何用這個就無法插入廣告?」,老周問到。

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

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

大白彷佛是感受本身的話說的有些重了,也借坡下坎,「老周啊,剛纔我跟你開玩笑的,你可別往內心去啊」。

「沒事沒事,你快給我說說這HTTPS協議,幫助我早點破案吧」

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

什麼是HTTPS

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

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

「唉,問到點子上了。在正式傳輸數據以前,雙方會有一個協商過程,爲後面所選擇的加密算法,以及要使用的密鑰達成一致。」

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

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

「so?怎麼保護這個密鑰呢?你卻是說啊」,老周有點着急了。

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

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

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

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

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

「等等,客戶端的公鑰是哪裏來的?」

「最開始的時候,客戶端發來請求,服務端在響應中,會把公鑰告訴客戶端。好了,我畫完了,整個過程就是這樣的」,大白放下畫筆,一副完整的HTTPS協議握手過程圖浮現了出來:

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

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

老周點了點頭,一下子低頭思考,一下子又擡頭看着流程圖。

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

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

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

「那如何判斷一個證書是可信任的呢?」「帝國早已把受信任的證書安裝好了,屆時只需調用API查一下便可」

老周思來想去,總以爲哪裏有問題,卻又說不上來。

真相只有一個

一連過了幾天,老周依舊毫無頭緒,這事兒就這樣擱置了。 福無雙至,禍不單行。這案子還沒弄明白,firefox公司又出事了。原來,361殺毒公司檢測到firefox祕密啓動了有木馬特徵的進程,老周再一次帶隊前往勘查,firefox公司的小狐負責對接此事。

老周來到了firefox磁盤存儲目錄,打算先排查一下木馬文件是什麼來頭。

「這是一堆什麼數據?」,老周指着一堆文件問到。

「周老師,這是網頁緩存數據」,一旁的小狐回答。

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

老周環顧四周,指着另外一堆文件問到:「這又是一堆什麼數據?」

「周老師,這是一堆證書信息,HTTPS握手時認證服務器所用的,跟此次攻擊事件應該不要緊的」,小狐繼續解釋到。

「認證用?帝國不是存儲了受信認的證書嗎,大家還保存證書信息作什麼?」,老周有些不解。

「帝國存儲的受信任證書咱們可不認,誰知道那裏面都是些什麼證書,太不可靠了,咱們firefox瀏覽器公司本身作認證,不用那一套」,小狐言語之間流露着些許得意。

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

小狐接過證書,仔細察看,片刻以後一口咬定的說:「這證書有問題!」老周眼前閃過一道亮光,追問到:「哪裏有問題?」

「這證書頒發機構叫ABSafe,不在咱們受信任的列表中!再說了,我這裏有緩存千度網的證書,根本不是這樣的,這確定是假的,你看」

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

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

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

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

這天夜裏,兩個黑影出如今了帝國受信任根證書倉庫。

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

瘦的黑影捂住了胖子的嘴巴,「噓,你給我把着點風,我去從新裝上」

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

「別動!安全檢查!」,忽然一束光線射了過來,原來老周帶着隊伍在此潛伏多時了。

「居然是大家,禁廣大師!千度網和淘貝網的廣告也是大家加的是吧?」,老周大聲質問。

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

未完待續·······

彩蛋

「老齊,firefox公司的案子有什麼發現嗎」 「老周,你仍是再來一趟吧,狀況有點複雜」

欲知後事如何,請關注後續精彩......

往期熱門回顧

Python一鍵轉Jar包,Java調用Python新姿式!

一個Java對象的回憶錄:垃圾回收

內核地址空間大冒險3:權限管理

誰動了你的HTTPS流量?

路由器裏的廣告祕密

內核地址空間大冒險2:中斷與異常

DDoS攻擊:無限戰爭

一條SQL注入引出的驚天大案

內核地址空間大冒險:系統調用

一個HTTP數據包的奇幻之旅

一個DNS數據包的驚險之旅

我是一個流氓軟件線程

掃碼關注,更多精彩


相關文章
相關標籤/搜索