流量劫持是什么?
流量劫持,就是利用各種惡意軟件修改瀏覽器、鎖定主頁或不停彈出新窗口,強(qiáng)制用戶訪問某些網(wǎng)站,從而造成用戶流量損失的情形。流量劫持是一種古老的攻擊方式,比如早已見慣的廣告彈窗(如下圖)等,很多人已經(jīng)對(duì)此麻木,并認(rèn)為流量劫持不會(huì)造成什么損失。而事實(shí)上,流量劫持可以通過多種你無法覺察的方式竊取信息
HTTP協(xié)議缺陷,使流量劫持得以實(shí)現(xiàn)
流量劫持的方式有很多種,常見的主要有DNS劫持、CDN入侵、網(wǎng)關(guān)劫持、ARP攻擊、Hub嗅探等等。不同的劫持方式,獲得的流量有所差異。DNS 劫持,可以截獲通過域名發(fā)起的流量,直接使用 IP 地址的通信則不受影響;CDN 入侵,只有瀏覽網(wǎng)頁或下載時(shí)才有風(fēng)險(xiǎn),其他場(chǎng)合則毫無問題;而網(wǎng)關(guān)被劫持,用戶所有流量都難逃魔掌。
目前互聯(lián)網(wǎng)上發(fā)生的流量劫持基本是兩種手段來實(shí)現(xiàn)的:
域名劫持:通過劫持掉域名的DNS解析結(jié)果,將HTTP請(qǐng)求劫持到特定IP上,使得客戶端和攻擊者的服務(wù)器建立TCP連接,而不是和目標(biāo)服務(wù)器直接連接,這樣攻擊者就可以對(duì)內(nèi)容進(jìn)行竊取或篡改。在極端的情況下甚至攻擊者可能偽造目標(biāo)網(wǎng)站頁面進(jìn)行釣魚攻擊。
直接流量修改:在數(shù)據(jù)通路上對(duì)頁面進(jìn)行固定的內(nèi)容插入,比如廣告彈窗等。在這種情況下,雖然客戶端和服務(wù)器是直接建立的連接,但是數(shù)據(jù)內(nèi)容依然可能遭到野蠻破壞。
能夠?qū)嵤┝髁拷俪值母驹颍荋TTP協(xié)議沒有辦法對(duì)通信對(duì)方的身份進(jìn)行校驗(yàn)以及對(duì)數(shù)據(jù)完整性進(jìn)行校驗(yàn)。如果能解決這個(gè)問題,則流量劫持將無法輕易發(fā)生。
HTTPS加密如何防止流量劫持
HTTPS,是HTTP over SSL的意思,就是在HTTP基礎(chǔ)上,增加一層SSL加密通道。SSL協(xié)議是用于解決傳輸層安全問題的網(wǎng)絡(luò)協(xié)議,其核心是基于公鑰密碼學(xué)理論實(shí)現(xiàn)了對(duì)服務(wù)器身份認(rèn)證、對(duì)數(shù)據(jù)的加密保護(hù)以及對(duì)數(shù)據(jù)完整性的校驗(yàn)等功能,確保傳輸數(shù)據(jù)的機(jī)密性和完整性,以及服務(wù)器身份的真實(shí)性。
因?yàn)镾SL協(xié)議提供了對(duì)服務(wù)器的身份認(rèn)證,所以DNS劫持導(dǎo)致連接錯(cuò)誤服務(wù)器的情況將會(huì)被發(fā)現(xiàn)進(jìn)而被終止,最終導(dǎo)致DNS挾持攻擊無法實(shí)現(xiàn);而SSL協(xié)議提供的數(shù)據(jù)加密和完整性校驗(yàn),也解決了關(guān)鍵信息被嗅探以及數(shù)據(jù)內(nèi)容被修改的問題。