2018-01-10 09:08:46
無處不在的劫持
利用餓了么2塊錢的補差價就能劃走用戶支付寶的2000元、利用訂購的機票信息,就能獲取到用戶信任,騙取財產(chǎn)、總是被跳轉(zhuǎn)到一些自己不想訪問的頁面上、為什么總有那么多自己跳出來的廣告?為什么一個正常的鏈接點進去之后會出現(xiàn)下載界面?我們的數(shù)據(jù)信息怎么就這么不安全?
對于普通用戶來說,你的請求數(shù)據(jù)發(fā)出去以后,會經(jīng)過哪里,終去到哪里,怎么處理響應,這后面的一切都是黑洞。而對于想利用你的信息做壞事的人來說,每一個環(huán)節(jié)都是他們的機會。
先不說壞人通過爬蟲、撞庫等手段獲取用戶信息。直接的我們數(shù)據(jù)接入的運營商都可能會對我們的數(shù)據(jù)分析監(jiān)控。比如敏感信息信息的監(jiān)控、涉黃涉恐信息的過濾,而我們能夠感受到影響的可能就是網(wǎng)絡劫持了。那么運營商為什么要做網(wǎng)絡劫持,通過什么手段來做劫持,網(wǎng)絡劫持的利弊在哪呢?
劫持的產(chǎn)生
近年來隨著網(wǎng)上購物、直播、物聯(lián)網(wǎng)、共享經(jīng)濟、人工智能等不斷深入我們的生活,互聯(lián)網(wǎng)行業(yè)取得飛速的發(fā)展。根據(jù)新的第40期《中國互聯(lián)網(wǎng)發(fā)展統(tǒng)計報告》顯示,截止2017年6月,中國互聯(lián)網(wǎng)用戶已經(jīng)達到7.51億,占全球網(wǎng)民的1/5。隨之而來的是網(wǎng)絡流量的不斷增加,目前中國的國際網(wǎng)絡出口的帶寬已經(jīng)高達8T,而國內(nèi)用戶產(chǎn)生的網(wǎng)絡流量要遠遠大于這個數(shù)字。與之相對應的是中國復雜的網(wǎng)絡環(huán)境。除了電信、聯(lián)通、移動是比較大的網(wǎng)絡接入廠商,此外包含長城寬帶、鵬博士、教育網(wǎng)、科技網(wǎng)、廣電等等不少于20多家的小運營商。而且各個省市是相互獨立運營。這就會導致網(wǎng)絡出現(xiàn)跨網(wǎng)、跨運營商的情況會特別多,基本上很難避免。而各個運營商之間的出口帶寬不盡相同,這很能是成為網(wǎng)絡高峰的瓶頸。同時這種大量跨網(wǎng)訪問的流量,在運營商之間會產(chǎn)生一筆很大的結(jié)算費用。也就是說運營商之間的互通是需要收費的。
作為運營商,面對這么大的帶寬流量。該如何保障用戶體驗,減小自身成本呢。于是,他們找到了網(wǎng)絡劫持的方案。
劫持的原理
運營商劫持大致分為兩種方式:
DNS強制解析的方式
訪問請求的302跳轉(zhuǎn)。
DNS強制解析是通過修改運營商的本地DNS記錄,來引導用戶流量到緩存服務器。工作的方式如下:
用戶通過域名發(fā)起訪問請求;
請求通過本地DNS進行解析;
運營商DNS設置強制解析策略;即所有該域名的請求都解析到事先寫好的服務器上;
終端用戶到劫持服務器交互訪問;
劫持服務器如果有需要的訪問內(nèi)容,則直接返回響應給用戶;如果沒有,則去源站同步內(nèi)容。
302跳轉(zhuǎn)的方式和DNS強制解析的方式主要在引流的方式上有所區(qū)別。內(nèi)容緩存是通過監(jiān)控網(wǎng)絡出口的流量,分析判斷哪些內(nèi)容是可以進行劫持處理的。再對劫持的內(nèi)存發(fā)起302跳轉(zhuǎn)的回復,引導用戶獲取內(nèi)容。其需要對上行的請求流量進行端口鏡像或者分光處理。可以理解成復制一份上行的流量信息 。工作的方式如下:
終端用戶發(fā)起訪問請求;
流量通過網(wǎng)絡出口對外發(fā)起訪問;
訪問流量被鏡像一份給劫持系統(tǒng)的DPI設備;
4.DPI對流量進行分析判斷,比如http get、80端口等數(shù)據(jù)
緩存系統(tǒng)判斷是否熱點資源,比如連續(xù)請求5次的相同內(nèi)容;
給用戶發(fā)送響應請求,告訴客戶本地即是客戶需要訪問的內(nèi)容;
由于本地的緩存系統(tǒng)離客戶更近,所以客戶更早收到緩存系統(tǒng)的響應;
用戶和本地的緩存系統(tǒng)建立網(wǎng)絡交互,源站的響應回來的晚,會自動斷開;
如果本地有緩存內(nèi)容,則給用戶響應內(nèi)容,如果本地沒有,會計算訪問次數(shù)。當達到響應的內(nèi)容時。
劫持的影響
從兩種運營商緩存的特點來看,二者都是通過獲取用戶的數(shù)據(jù)流量,引導用戶訪問內(nèi)容緩存的服務器。區(qū)別在于引導用戶的方式,DNS強制解析是通過修改域名解析記錄,強制將域名下的所有請求引導到劫持服務器上。這種方式簡單粗暴,也容易造成很多問題。比如域名下有動態(tài)內(nèi)容,也會被緩存下來。這樣會造成登錄的串號的問題。緩存的內(nèi)容更新不及時,訪問的都是老內(nèi)容。這也是很多用戶所不能接受的地方。一些冷門資源的緩存,會造成存儲的浪費。流量劫持的方式需要鏡像用戶流量,進行分析判斷。緩存一些系統(tǒng)判斷是可以緩存的熱點內(nèi)容。DNS強制解析主要針對圖片,302跳轉(zhuǎn)主要針對下載文件,音視頻等大文件。
運營商應用劫持系統(tǒng)可以帶來的好處是:
減少跨網(wǎng)傳輸?shù)脑L問,減少運營商之間的網(wǎng)間費用結(jié)算。國內(nèi)各個地區(qū)、運營商都是獨立運營的,日?;ヂ?lián)產(chǎn)生的流量是需要進行費用結(jié)算的。而這筆費用其實是一筆龐大的開銷,而且需要持續(xù)結(jié)算。
大多數(shù)運營商之間的網(wǎng)絡出口都在幾十至幾百G不等,內(nèi)容緩存系統(tǒng)可以有效減小網(wǎng)絡高峰時出口帶寬的壓力,這樣既可減少對互通網(wǎng)絡的擴容。減少網(wǎng)絡建設的費用。
由于緩存系統(tǒng)可以支持本地化服務,在一定程度上也可以達到加快網(wǎng)絡訪問的目的,提升用戶體驗。
由于運維系統(tǒng)的人員不可能及時獲取到劫持內(nèi)容的更新,或者對劫持的內(nèi)容做其他的,壞處是:
經(jīng)常訪問到過期的內(nèi)容,文件更新緩慢。導致獲取不到自己想要的信息。
跳轉(zhuǎn)到其他網(wǎng)站頁面,或者被插入牛皮癬廣告。
為了減少運營商緩存和劫持帶來的影響,目前很多企業(yè)開始使用HTTPS的方式。包括蘋果公司之前要求所有的域名必須是HTTPS的,那么HTTPS能從根本上解決這類的問題嗎?通過上面的分析,很顯然并不能有效的得到解決。https因為使用了加解密的手段,保證內(nèi)容被篡改的可能性被降低,但是從運營商劫持的原理上來說,并不能有效的降低被劫持的可能性。