一種應(yīng)用下載中防止dns劫持的方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種應(yīng)用下載中防止DNS劫持的方法、裝置和系統(tǒng),其中,方法包括:發(fā)送應(yīng)用下載請求;接收第一服務(wù)器返回的與應(yīng)用下載請求對應(yīng)的響應(yīng)消息;根據(jù)響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將第一特征信息與預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的下載應(yīng)用的第二特征信息進行匹配,判斷應(yīng)用下載過程是否受到劫持;若應(yīng)用下載過程受到劫持,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從第二服務(wù)器獲取下載應(yīng)用。根據(jù)該方案,解決現(xiàn)有技術(shù)中存在的由于運營商的網(wǎng)絡(luò)劫持導(dǎo)致的下載失敗、無法安裝或數(shù)據(jù)包替換、產(chǎn)品更新失敗等問題,節(jié)省了用戶的時間以及流量、費用。
【專利說明】一種應(yīng)用下載中防止DNS劫持的方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,具體涉及一種應(yīng)用下載中防止DNS劫持的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]用戶通過手機應(yīng)用分發(fā)平臺或者是游戲網(wǎng)站下載應(yīng)用時,在下載過程中會經(jīng)過運營商的提供的網(wǎng)絡(luò)服務(wù)進行下載。某些運營商出于節(jié)省流量,節(jié)省帶寬的目的,比如,對某個小區(qū)進行流量緩存,有可能劫持用戶的下載請求,通過DNS劫持,修改域名解析的結(jié)果,將下載應(yīng)用的域名解析為運營商的服務(wù)器的IP地址。下載應(yīng)用下載應(yīng)用下載應(yīng)用下載應(yīng)用上述情況并不僅僅是從哪個服務(wù)器上下載應(yīng)用的問題,而是由可能會出現(xiàn)一些用戶下載無效或者失敗的情況,例如,一種情況是,某些運營商的服務(wù)器穩(wěn)定性較差,當運營商的服務(wù)器出現(xiàn)運行故障,腳本維護不及時,或出現(xiàn)配置錯誤時,可能導(dǎo)致下載失敗或中斷或者下載超時;或者,下載完的文件中存在錯誤,用戶無法安裝或使用;運營商還可能與其他服務(wù)商合作,出于產(chǎn)品推廣目的,可能會將用戶要下載的程序數(shù)據(jù)包調(diào)換,例如,將用戶下載的某安全瀏覽器的數(shù)據(jù)包調(diào)換為其它公司的高速瀏覽器數(shù)據(jù)包,這種數(shù)據(jù)包的內(nèi)容被調(diào)換后可能并不是用戶希望下載的;此外,運營商服務(wù)器上的下載應(yīng)用可能更新不及時,導(dǎo)致用戶下載的程序等落后于新版本,病毒庫無法升級等眾多問題。
【發(fā)明內(nèi)容】
[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的應(yīng)用下載中防止DNS劫持的方法、裝置和服務(wù)器。
[0004]根據(jù)本發(fā)明的一個方面,提供了一種應(yīng)用下載中防止DNS劫持的方法,其包括:發(fā)送應(yīng)用下載請求;接收第一服務(wù)器返回的與應(yīng)用下載請求對應(yīng)的響應(yīng)消息;根據(jù)響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持,其中,下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的;若應(yīng)用下載過程受到劫持,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從第二服務(wù)器獲取下載應(yīng)用。
[0005]根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用下載中防止DNS劫持的裝置,其包括:發(fā)送模塊,適于發(fā)送應(yīng)用下載請求;接收模塊,適于接收第一服務(wù)器返回的與應(yīng)用下載請求對應(yīng)的響應(yīng)消息;判斷模塊,適于根據(jù)響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持;下載模塊,適于在應(yīng)用下載過程受到劫持時,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從第二服務(wù)器獲取所述下載應(yīng)用。
[0006]根據(jù)本發(fā)明的另一個方面,提供了一種應(yīng)用下載中防止DNS劫持的系統(tǒng),其包括上述的應(yīng)用下載裝置,還包括:第二服務(wù)器,適于提供下載應(yīng)用;
[0007]代理服務(wù)器,適于接收應(yīng)用下載裝置發(fā)送的HTTP請求,HTTP請求的HTTP頭信息中添加有下載應(yīng)用的目標URL ;
[0008]從HTTP請求中解析出下載應(yīng)用的URL,并根據(jù)URL從第二服務(wù)器獲取下載應(yīng)用;
[0009]域名解析服務(wù)器,適于接收應(yīng)用下載裝置發(fā)送的下載應(yīng)用的域名,根據(jù)下載應(yīng)用的域名得到提供下載應(yīng)用的第二服務(wù)器的IP地址。
[0010]根據(jù)本發(fā)明的應(yīng)用下載中防止DNS劫持的方法、裝置和系統(tǒng),根據(jù)下載應(yīng)用的特征信息判斷應(yīng)用下載過程是否受到劫持,在受到劫持時,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析從下載服務(wù)器重新獲取下載應(yīng)用。根據(jù)該方案,避免了由于運營商的網(wǎng)絡(luò)劫持導(dǎo)致的下載失敗、下載的文件無法安裝、或下載應(yīng)用的數(shù)據(jù)包被惡意替換、產(chǎn)品更新失敗等問題,節(jié)省了用戶的時間以及流量、費用。
[0011]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0012]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0013]圖1示出了根據(jù)本發(fā)明一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖;
[0014]圖2示出了根據(jù)本發(fā)明另一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖;
[0015]圖3示出了根據(jù)本發(fā)明另一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖;
[0016]圖4示出了根據(jù)本發(fā)明另一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖;
[0017]圖5示出了根據(jù)本發(fā)明一個實施例的應(yīng)用下載中防止DNS劫持的裝置的結(jié)構(gòu)框圖;
[0018]圖6示出了根據(jù)本發(fā)明另一個實施例的應(yīng)用下載中防止DNS劫持的系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0019]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0020]圖1示出了根據(jù)本發(fā)明一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖,如圖1所示,方法包括如下步驟:
[0021 ] 步驟S110,發(fā)送應(yīng)用下載請求。
[0022]下載應(yīng)用可以是計算機安裝文件,手機apk文件,壓縮文件,以及音樂、視頻文件等。以安卓平臺上的apk文件下載為例,常見的下載方式是用戶通過瀏覽器頁面,或手機app獲取下載地址,例如,手機瀏覽器,手機助手等,用戶點擊app上提供的下載按鈕,app根據(jù)為該下載應(yīng)用預(yù)設(shè)的下載URL,向該URL對應(yīng)下載服務(wù)器發(fā)送請求,獲取下載應(yīng)用。
[0023]本實施例中,發(fā)送下載請求的可以是終端通過例如360手機助手等應(yīng)用分發(fā)平臺,也可以通過一些其他的應(yīng)用下載渠道。可以理解為包括運營360手機助手的應(yīng)用服務(wù)器、推送(push)服務(wù)器和文件服務(wù)器,所述終端例如包括用戶臺式電腦或筆記本電腦等計算設(shè)備,或者包括用戶手機等移動設(shè)備。
[0024]步驟S120,接收第一服務(wù)器返回的與應(yīng)用下載請求對應(yīng)的響應(yīng)消息。
[0025]本發(fā)明中,第一服務(wù)器是指接收了應(yīng)用下載請求并向客戶端返回與應(yīng)用下載請求對應(yīng)的響應(yīng)消息的服務(wù)器。
[0026]正常狀況下,若應(yīng)用下載請求未受到DNS劫持,應(yīng)用下載請求未受到攔截,而被發(fā)送到預(yù)先指定的下載服務(wù)器中,這時,第一服務(wù)器即為app,或網(wǎng)頁中預(yù)設(shè)URL對應(yīng)的下載服務(wù)器。
[0027]若應(yīng)用下載請求受到DNS劫持,例如,域名解析結(jié)果被網(wǎng)絡(luò)運營商篡改,將下載應(yīng)用的域名解析為運營商服務(wù)器的IP地址。這時,向發(fā)起應(yīng)用下載請求的客戶端返回響應(yīng)消息的是運營商服務(wù)器,則第一服務(wù)器為運營商的服務(wù)器。
[0028]步驟S130,根據(jù)響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否收到劫持。
[0029]下載應(yīng)用的第一特征信息是第一服務(wù)器返回的響應(yīng)消息中的信息,例如,可以是應(yīng)用下載請求發(fā)送后,第一服務(wù)器返回的響應(yīng)消息中的內(nèi)容長度信息,如HTTP header消息中的content-length字段,或者,下載應(yīng)用從第一服務(wù)器下載的文件的MD5值等。
[0030]下載應(yīng)用的第二特征信息來自第二服務(wù)器。本發(fā)明中的第二服務(wù)器即是手機下載app或瀏覽器頁面提供的預(yù)設(shè)的下載URL對應(yīng)的下載服務(wù)器。具體地,手機下載app的提供者在收集、準備下載應(yīng)用時,預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的內(nèi)容長度信息,MD5值或其他與第一特征信息對應(yīng)的信息。也就是說,第二特征信息是下載應(yīng)用的實際特征信息。
[0031]若應(yīng)用下載請求未受劫持,第一特征信息和第二特征信息是一致的,響應(yīng)消息都由指定的下載服務(wù)器,即第二服務(wù)器返回的。
[0032]當?shù)谝环?wù)器返回的第一特征信息與第二特征信息,即下載應(yīng)用的實際特征信息不一致時,認為應(yīng)用下載過程受到劫持。
[0033]本發(fā)明的目的是避免DNS劫持而導(dǎo)致的下載應(yīng)用錯誤,無法安裝等問題。而在該步驟中,一種可能的情況是,應(yīng)用下載請求受到了運營商的劫持,但運營商的服務(wù)器響應(yīng)于該應(yīng)用下載請求,提供了正確的下載應(yīng)用,由于下載應(yīng)用正常,不會導(dǎo)致上述問題。本發(fā)明將這種情況判斷為未受劫持,也就是說,本發(fā)明只在運營商服務(wù)器返回的文件有誤時才執(zhí)行后續(xù)的步驟。這在一些情況下是有利的,因為從運營商的服務(wù)器進行下載,可能會達到較高的下載速度,節(jié)省用戶時間。
[0034]步驟S140,若應(yīng)用下載過程受到劫持,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從第二服務(wù)器獲取下載應(yīng)用。
[0035]當?shù)谝惶卣餍畔⒑偷诙卣餍畔⒉灰恢聲r,下載文件有誤,認為下載過程受到劫持。根據(jù)運營商的劫持方式,采用代理服務(wù)器避免劫持,間接獲取下載應(yīng)用,或重新進行域名解析,獲取第二服務(wù)器的IP等方式,從第二服務(wù)器獲取下載應(yīng)用。
[0036]根據(jù)本發(fā)明上述實施例提供的方法,根據(jù)下載應(yīng)用的特征信息判斷應(yīng)用下載過程是否受到劫持,在判斷受到劫持時,通過代理服務(wù)器從第二服務(wù)器間接獲取下載應(yīng)用,或采用另外的域名解析服務(wù)器準確獲取第二服務(wù)器的IP等方式,重新從第二服務(wù)器下載。
[0037]根據(jù)該方案,避免了由于運營商的網(wǎng)絡(luò)劫持導(dǎo)致的應(yīng)用下載失敗、下載完成的文件無法安裝、或下載應(yīng)用的數(shù)據(jù)包被替換、產(chǎn)品更新失敗等問題,節(jié)省了用戶的流量、費用。同時本發(fā)明的方法只在下載文件有誤時執(zhí)行重新下載的步驟,這有利于節(jié)省用戶時間,提高下載速度。
[0038]圖2示出了根據(jù)本發(fā)明另一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖,該實施例以HTTP方式下載和運營商劫持為例,說明了本發(fā)明的下載方法的一種方式,如圖2所示,方法包括如下步驟:
[0039]步驟S210,發(fā)送應(yīng)用下載請求。
[0040]例如,用戶在app界面點擊按鈕,想要下載手機助手,該app預(yù)先收集了手機助手的預(yù)設(shè)下載URL,該預(yù)設(shè)的下載URL對應(yīng)于第二服務(wù)器。例如,該URL具體為:http://gdown.360.com/data/360shoujizhushou.apk,接收點擊后,通過運營商提供的網(wǎng)絡(luò)服務(wù)向下載服務(wù)器發(fā)送應(yīng)用下載請求。
[0041]步驟S220,接收第一服務(wù)器返回的與應(yīng)用下載請求對應(yīng)的響應(yīng)消息。
[0042]詳見上一實施例步驟S120,此處不再贅述。
[0043]步驟S230,從應(yīng)用下載請求對應(yīng)的響應(yīng)消息的HTTP頭信息中提取內(nèi)容長度信息。
[0044]本實施例中以第一服務(wù)器返回的響應(yīng)消息中的內(nèi)容長度信息為下載應(yīng)用的第一特征信息。
[0045]用戶在手機,電腦上通過瀏覽器或應(yīng)用程序下載,其中一種常用的下載方式為HTTP下載,客戶端和服務(wù)器之間通過HTTP協(xié)議進行文件的傳送。
[0046]HTTP協(xié)議采用了請求/響應(yīng)模型,瀏覽器或其他客戶端程序向服務(wù)器發(fā)出請求,服務(wù)器返回一個包含HTTP header信息的消息作為響應(yīng)消息。HTTPheader中包含content-length字段,該字段的值可作為一種內(nèi)容長度信息,表示服務(wù)器響應(yīng)于本次HTTP請求,將要向客戶端返回的HTTP消息實體的傳輸長度。
[0047]步驟S240,將響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息進行比對,若響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息不一致,則執(zhí)行步驟S250;若響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息一致,則執(zhí)行步驟S280。
[0048]在未發(fā)生劫持的情況下,應(yīng)用下載的請求發(fā)送到提供該下載應(yīng)用的第二服務(wù)器上。由該第二服務(wù)器返回HTTP header信息,則HTTP header信息中的content-length的值即為實際的content-length值。
[0049]如果發(fā)生了運營商DNS劫持,并且劫持行為導(dǎo)致下載應(yīng)用被換包,或字節(jié)錯誤,下載文件不完整等問題,則content-length值也發(fā)生變化,content-length值作為特征信息能夠在實體消息傳輸之前判斷應(yīng)用下載過程是否受到劫持。
[0050]實際的content-length值作為第二特征信息,預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取。例如,下載app上提供有多個下載應(yīng)用的鏈接,每個下載應(yīng)用的實際的content-length值由提供該下載應(yīng)用的第二服務(wù)器預(yù)先計算出。app在提供下載鏈接時,已從第二服務(wù)器獲取相應(yīng)的content-length值,并存儲在本地或云端等,可由app讀取該實際的 content-length 值。
[0051]將響應(yīng)消息中的content-length值與實際的content-length值比對,若兩者不一致,判斷應(yīng)用下載過程受到劫持。
[0052]具體地,應(yīng)用下載請求被運營商劫持時,應(yīng)用下載請求被轉(zhuǎn)到運營商的服務(wù)器。運營商服務(wù)器作為第一服務(wù)器,對應(yīng)用下載請求返回包含HTTP header信息的消息,HTTPheader中的content-length表示運營商服務(wù)器將要返回的HTTP消息實體的傳輸長度,如果該傳輸長度與實際的下載應(yīng)用的傳輸長度不一致,則說明運營商服務(wù)器可能做了換包,或是運營商提供的下載應(yīng)用存在字節(jié)錯誤,文件缺失等,下載完成后的文件不是用戶實際需求的文件或無法安裝或無法正常使用。這時,下載過程不必繼續(xù)進行,執(zhí)行步驟S250。
[0053]步驟S250,中斷應(yīng)用下載過程。
[0054]具體地,中斷從第一服務(wù)器,即運營商服務(wù)器獲取下載應(yīng)用的過程。
[0055]步驟S260,向代理服務(wù)器發(fā)送HTTP請求。
[0056]運營商的劫持方式一般是,預(yù)先從第二服務(wù)器處獲取下載應(yīng)用,存儲在自身的服務(wù)器上,根據(jù)HTTP應(yīng)用下載請求的URL判斷是否能夠提供對應(yīng)的下載應(yīng)用,如果能,則阻止用戶從第二服務(wù)器進行下載,通過修改域名解析結(jié)果等方式將應(yīng)用下載請求的URL解析為自身服務(wù)期的IP,以達到節(jié)省帶寬費用的目的。
[0057]運營商劫持應(yīng)用下載請求一般針對具有明顯的下載特征的URL,例如,http://gdown.360.com/data/360shoujizhushou.apk 等以 apk 結(jié)尾的 URL,或 exe, mkv 等結(jié)尾的URL。
[0058]在本發(fā)明實施例中,在應(yīng)用下載請求受到劫持時,通過代理服務(wù)器進行下載。將下載應(yīng)用的預(yù)設(shè)URL提供給代理服務(wù)器,代理服務(wù)器根據(jù)預(yù)設(shè)URL從第二服務(wù)器獲取下載應(yīng)用。然后,再從代理服務(wù)器獲取下載應(yīng)用。
[0059]具體地,判斷應(yīng)用下載請求受到劫持時,向代理服務(wù)器發(fā)送HTTP請求,通過訪問代理服務(wù)器的URL發(fā)送請求,該代理服務(wù)器的URL不具有下載特征,可以是以html為結(jié)尾的網(wǎng)頁的 URL,如 http://gdown.360.com/redownload, html。這樣,運營商不會劫持該 HTTP請求。將預(yù)設(shè) URL,例如,http://gdown.360.com/data/360shoujizhushou.apk 添加在該HTTP請求的request header中。代理服務(wù)器接收該HTTP請求后,從request header中解析出下載應(yīng)用的目標URL,根據(jù)該目標URL從第二服務(wù)器上獲取下載應(yīng)用。代理服務(wù)器與第二服務(wù)器以服務(wù)器間的通信方式進行下載應(yīng)用的傳輸,不會受到運營商的劫持。
[0060]步驟S270,從代理服務(wù)器獲取下載應(yīng)用。
[0061]具體地,可以通過代理服務(wù)器獲取下載應(yīng)用后向客戶端推送,或app從代理服務(wù)器主動拉取等方式獲取下載應(yīng)用。
[0062]步驟S280,繼續(xù)應(yīng)用下載過程。
[0063]如果比對結(jié)果一致,就認為從第一服務(wù)器獲取的下載應(yīng)用是正確的,繼續(xù)從第一服務(wù)器上的下載過程。如同上一實施例步驟S130中所述的,這有利于節(jié)省下載時間。
[0064]根據(jù)本發(fā)明上述實施例提供的方法,根據(jù)服務(wù)器響應(yīng)消息中的內(nèi)容長度信息與實際內(nèi)容長度信息比較的方式,在應(yīng)用下載實體消息傳輸前就能夠判斷劫持,根據(jù)內(nèi)容長度信息的比較結(jié)果選擇中斷或繼續(xù)從第一服務(wù)器的下載過程。
[0065]由于本實施例中的方法在實體消息傳輸前作出判斷,判斷更加及時,幾乎能夠完全避免用戶浪費流量。
[0066]圖3示出了根據(jù)本發(fā)明另一個實施例的應(yīng)用下載中防止DNS劫持的方法的流程圖,如圖3所示,方法包括如下步驟:
[0067]步驟S310,計算應(yīng)用下載請求對應(yīng)文件的MD5值。
[0068]MD5用于確保信息傳輸完整一致,通過其特定算法為每個文件產(chǎn)生唯一的MD5信息摘要。
[0069]下載完成后,計算本次應(yīng)用下載請求下載獲取的文件的MD5值。
[0070]當然,也可以選用其他的文件校驗算法,例如SHA-1等。
[0071]步驟S320,將應(yīng)用下載請求對應(yīng)文件的MD5值與下載應(yīng)用對應(yīng)文件的實際MD5值進行比對,若比對結(jié)果不一致,執(zhí)行步驟S330 ;若比對結(jié)果一致,則流程結(jié)束。
[0072]本實施例中,計算第一服務(wù)器返回的下載應(yīng)用對應(yīng)文件的MD5值作為第一特征信息,以從第二服務(wù)器預(yù)先獲取的下載應(yīng)用對應(yīng)文件的實際MD5值作為第二特征信息。
[0073]若應(yīng)用下載未受劫持,下載結(jié)束后的文件來自第二服務(wù)器,MD5值與實際MD5值一致;若兩者不一致,表明文件不完整或被換包,認為應(yīng)用下載受到劫持。
[0074]步驟S330,向代理服務(wù)器發(fā)送HTTP請求。
[0075]步驟S340,從代理服務(wù)器獲取下載應(yīng)用。
[0076]步驟S330-S340的具體實現(xiàn)方式參見上一實施例,此處不再贅述。
[0077]與上一實施例相比,劫持者可以對不同文件進行修改而使內(nèi)容長度信息與實際值一致,在本實施例中,由于MD5值與文件唯一對應(yīng),因此,根據(jù)MD5值等文件校驗值的劫持判斷方式更加準確。
[0078]圖4示出了根據(jù)本發(fā)明另一個實施例提供的應(yīng)用下載中防止DNS劫持的方法的流程圖,如圖4所示,方法包括如下步驟:
[0079]步驟S410,從第一服務(wù)器返回的應(yīng)用下載請求的響應(yīng)消息中提取內(nèi)容長度信息。
[0080]步驟S420,將響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息進行比對,若響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息不一致,執(zhí)行步驟S430 ;若響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息一致,則執(zhí)行步驟S440。
[0081]步驟S430,中斷應(yīng)用下載過程,執(zhí)行步驟S460。
[0082]步驟S410-S430的具體描述詳見上文實施例,此處不再贅述。
[0083]步驟S440,計算下載應(yīng)用對應(yīng)文件的MD5值。
[0084]content-length等內(nèi)容長度信息的劫持判斷方式較為快捷,在文件傳輸前能夠判斷出絕大多數(shù)的劫持,然而內(nèi)容長度信息并不與下載應(yīng)用唯一對應(yīng)。因此,這種方式并不總是準確。在本實施例中,結(jié)合了內(nèi)容長度信息和MD5值,對于大部分的劫持,通過步驟S410-S430作出判斷,若內(nèi)容長度信息一致,再通過MD5值進行判斷。
[0085]步驟S450,將下載應(yīng)用對應(yīng)文件的MD5值與下載應(yīng)用對應(yīng)文件的實際MD5值進行比對,若比對結(jié)果不一致,執(zhí)行步驟S460 ;若比對結(jié)果一致,則流程結(jié)束。
[0086]本實施例中,第一特征信息和第二特征信息的匹配涉及了內(nèi)容長度信息和下載文件MD5值兩種信息,判斷結(jié)果更加準確。
[0087]步驟S460,通過域名解析服務(wù)器提供的接口向域名解析服務(wù)器發(fā)送下載應(yīng)用的域名。
[0088]DNS劫持的常見方式是修改域名解析的結(jié)果,將下載應(yīng)用的域名訪問結(jié)果由第二服務(wù)器的IP轉(zhuǎn)到修改后的IP。
[0089]在本發(fā)明實施例中,通過DNS劫持范圍外的域名解析服務(wù)器重新獲取域名解析結(jié)果,避免劫持的發(fā)生。對于app等應(yīng)用程序提供的下載鏈接,域名解析服務(wù)器在一個數(shù)據(jù)庫中保存每個下載鏈接的第二服務(wù)器域名和IP的對應(yīng)關(guān)系。域名解析服務(wù)器還為app等應(yīng)用程序提供接口,當判斷劫持發(fā)生時,app通過該接口向域名解析服務(wù)器發(fā)送下載應(yīng)用的域名,域名解析服務(wù)器查詢數(shù)據(jù)庫,找到該域名對應(yīng)的IP向app返回。
[0090]步驟S470,根據(jù)域名解析服務(wù)器返回的IP地址從第二服務(wù)器下載應(yīng)用。
[0091]直接通過IP地址訪問第二服務(wù)器,避免了運營商的劫持。
[0092]根據(jù)本發(fā)明上述實施例提供的方法,先根據(jù)內(nèi)容長度信息判斷劫持,當內(nèi)容長度信息一致時,繼續(xù)下載過程,再計算下載文件的MD5值,進行準確判斷。對大部分劫持來講,通過內(nèi)容長度信息在實體消息傳輸前即可做出快速判斷,完全避免流量的浪費。同時也能夠克服運營商對文件的修改使內(nèi)容長度信息一致而無法檢測的問題。
[0093]然后,通過運營商以外,或DNS劫持范圍外的域名解析服務(wù)器獲取下載應(yīng)用域名對應(yīng)的IP地址,該域名解析服務(wù)器中的IP地址和域名的關(guān)聯(lián)是預(yù)先設(shè)定的,這樣客戶端的app可以直接通過IP地址訪問,避免域名修改。避免了由于運營商的網(wǎng)絡(luò)劫持導(dǎo)致的應(yīng)用下載失敗、下載完成的文件無法安裝、或下載應(yīng)用的數(shù)據(jù)包被替換、產(chǎn)品更新失敗等問題,節(jié)省了用戶的流量、費用。
[0094]圖5示出了根據(jù)本發(fā)明一個實施例的應(yīng)用下載中防止DNS劫持的裝置的結(jié)構(gòu)框圖,如圖5所示,裝置包括:
[0095]發(fā)送模塊510,適于發(fā)送應(yīng)用下載請求。
[0096]本實施例中,發(fā)送下載請求的可以是終端通過例如360手機助手等應(yīng)用分發(fā)平臺,也可以通過一些其他的應(yīng)用下載渠道??梢岳斫鉃榘ㄟ\營360手機助手的應(yīng)用服務(wù)器、推送(push)服務(wù)器和文件服務(wù)器,所述終端例如包括用戶臺式電腦或筆記本電腦等計算設(shè)備,或者包括用戶手機等移動設(shè)備。
[0097]下載應(yīng)用可以是計算機安裝文件,手機apk文件,壓縮文件,以及音樂、視頻文件等。以安卓平臺上的apk文件下載為例,常見的下載方式是用戶通過瀏覽器頁面,或手機app獲取下載地址,例如,手機瀏覽器,手機助手等,用戶點擊app上提供的下載按鈕,app根據(jù)該下載應(yīng)用預(yù)設(shè)的URL,向該URL對應(yīng)下載服務(wù)器發(fā)送請求,獲取下載應(yīng)用。
[0098]接收模塊520,適于接收第一服務(wù)器返回的與應(yīng)用下載請求對應(yīng)的響應(yīng)消息。
[0099]本發(fā)明中,第一服務(wù)器是指接收了應(yīng)用下載請求并向客戶端返回與應(yīng)用下載請求對應(yīng)的響應(yīng)消息的服務(wù)器。
[0100]正常狀況下,若應(yīng)用下載請求未受到DNS劫持,應(yīng)用下載請求未受到攔截,而被發(fā)送到預(yù)先指定的下載服務(wù)器中,這時,第一服務(wù)器即為app,或網(wǎng)頁中預(yù)設(shè)URL對應(yīng)的下載服務(wù)器。
[0101]若應(yīng)用下載請求受到DNS劫持,例如,域名解析結(jié)果被網(wǎng)絡(luò)運營商篡改,將下載應(yīng)用的域名解析為運營商服務(wù)器的IP地址。這時,向發(fā)起應(yīng)用下載請求的客戶端返回響應(yīng)消息的是運營商服務(wù)器,則第一服務(wù)器為運營商的服務(wù)器。
[0102]判斷模塊530,適于根據(jù)響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持。
[0103]可選地,下載應(yīng)用的第一特征信息包括應(yīng)用下載請求對應(yīng)的響應(yīng)消息中的內(nèi)容長度信息;下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的下載應(yīng)用的實際內(nèi)容長度信息。
[0104]判斷模塊530進一步包括:
[0105]提取單元5301,適于從接收模塊接收的響應(yīng)消息的HTTP頭信息中提取內(nèi)容長度信息;
[0106]第一比對單元5302,適于將響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息進行比對;
[0107]判斷單元5303,適于在響應(yīng)消息中的內(nèi)容長度信息與下載應(yīng)用的實際內(nèi)容長度信息不一致時,判斷應(yīng)用下載過程受到劫持。
[0108]可選地,下載應(yīng)用的第一特征信息還包括應(yīng)用下載請求對應(yīng)文件的MD5值;下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的下載應(yīng)用對應(yīng)文件的實際MD5值。
[0109]判斷模塊530進一步包括:
[0110]計算單元5304,適于根據(jù)響應(yīng)消息,計算應(yīng)用下載請求對應(yīng)文件的MD5值;
[0111]第二比對單元5305,適于將應(yīng)用下載請求對應(yīng)文件的MD5值與下載應(yīng)用對應(yīng)文件的實際MD5值進行比對;其中,下載應(yīng)用對應(yīng)文件的實際MD5值預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取。
[0112]判斷單元5303進一步適于:在應(yīng)用下載請求對應(yīng)文件的MD5值與下載應(yīng)用對應(yīng)文件的實際MD5值不一致時,判斷應(yīng)用下載過程受到劫持。
[0113]下載模塊540,適于在應(yīng)用下載過程受到劫持時,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從第二服務(wù)器獲取所述下載應(yīng)用。
[0114]可選地,下載模塊540進一步包括:
[0115]代理服務(wù)器接口 5401,適于將下載應(yīng)用的URL提供給代理服務(wù)器,以供代理服務(wù)器根據(jù)URL從第二服務(wù)器獲取下載應(yīng)用。
[0116]可選地,代理服務(wù)器接口 5201進一步適于:當判斷模塊510判斷應(yīng)用下載請求受到劫持時,代理服務(wù)器接口 5201向代理服務(wù)器發(fā)送HTTP請求,HTTP請求中的URL即為代理服務(wù)器的URL,該URL不具有下載特征,可以是以html為結(jié)尾的網(wǎng)頁的URLjn http://gdown.360.com/redownload, html。這樣,運營商不會劫持該HTTP請求。將目標URL,例如,http://gdown.360.com/data/360shoujizhushou_16783385.apk 添加在該 HTTP 請求的request header中。代理服務(wù)器接收該HTTP請求后,從request header中解析出下載應(yīng)用的目標URL,根據(jù)該目標URL從第二服務(wù)器上獲取下載應(yīng)用。
[0117]第一下載單元5402,適于從代理服務(wù)器獲取下載應(yīng)用。
[0118]可選地,下載模塊520進一步包括:
[0119]域名解析服務(wù)器接口 5403,適于向域名解析服務(wù)器發(fā)送下載應(yīng)用的域名,以供域名解析服務(wù)器根據(jù)下載應(yīng)用的域名得到提供下載應(yīng)用的第二服務(wù)器的IP地址;
[0120]第二下載單元5404,適于根據(jù)域名解析服務(wù)器返回的IP地址從第二服務(wù)器下載應(yīng)用。
[0121]圖6示出了根據(jù)本發(fā)明一個實施例的應(yīng)用下載中防止DNS劫持的系統(tǒng)的結(jié)構(gòu)框圖,如圖6所示,系統(tǒng)包括:上一實施例中的應(yīng)用下載裝置600,還包括:
[0122]第二服務(wù)器610,適于提供下載應(yīng)用;
[0123]代理服務(wù)器620,適于接收應(yīng)用下載裝置600發(fā)送的HTTP請求,HTTP請求的HTTP頭信息中添加有下載應(yīng)用的URL ;從HTTP請求中解析出下載應(yīng)用的URL,并根據(jù)URL獲取下載應(yīng)用;
[0124]域名解析服務(wù)器630,適于接收應(yīng)用下載裝置600發(fā)送的下載應(yīng)用的域名,根據(jù)下載應(yīng)用的域名得到提供下載應(yīng)用的第二服務(wù)器610的IP地址。
[0125]根據(jù)本發(fā)明上述實施例提供的應(yīng)用下載中防止DNS劫持的裝置和系統(tǒng),判斷模塊根據(jù)下載應(yīng)用content-length值,或文件MD5值等特征信息判斷應(yīng)用下載過程是否受到劫持,在受到劫持時,通過使用代理服務(wù)器,或者獲取第二服務(wù)器IP,根據(jù)IP直接訪問等方式獲取來自第二服務(wù)器的下載應(yīng)用。根據(jù)該方案,避免了由于運營商的網(wǎng)絡(luò)劫持導(dǎo)致的下載失敗、無法安裝、或數(shù)據(jù)包替換、產(chǎn)品更新失敗等問題,節(jié)省了用戶的時間以及流量、費用。
[0126]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0127]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0128]類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0129]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0130]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0131 ] 本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的應(yīng)用下載裝置和系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0132]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0133]本發(fā)明公開了:
[0134]Al、一種應(yīng)用下載中防止DNS劫持的方法,其包括:
[0135]發(fā)送應(yīng)用下載請求;
[0136]接收第一服務(wù)器返回的與所述應(yīng)用下載請求對應(yīng)的響應(yīng)消息;
[0137]根據(jù)所述響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持,其中,所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的;
[0138]若所述應(yīng)用下載過程受到劫持,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從所述第二服務(wù)器獲取所述下載應(yīng)用。
[0139]A2、根據(jù)Al所述的方法,其中,所述下載應(yīng)用的第一特征信息包括應(yīng)用下載請求對應(yīng)的響應(yīng)消息中的內(nèi)容長度信息;
[0140]所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用的實際內(nèi)容長度信息;
[0141]所述通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持進一步包括:
[0142]從所述響應(yīng)消息的HTTP頭信息中提取內(nèi)容長度信息;
[0143]將所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息進行比對;
[0144]若所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致,判斷所述應(yīng)用下載過程受到劫持。
[0145]A3、根據(jù)A2所述的方法,其中,所述方法還包括:若所述響應(yīng)消息的HTTP頭信息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致,則中斷所述應(yīng)用下載過程。
[0146]A4、根據(jù)Al或A2所述的方法,其中,所述下載應(yīng)用的第一特征信息還包括所述應(yīng)用下載請求對應(yīng)文件的MD5值;
[0147]所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用對應(yīng)文件的實際MD5值;
[0148]所述通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持進一步包括:
[0149]根據(jù)所述響應(yīng)消息,計算所述應(yīng)用下載請求對應(yīng)文件的MD5值;
[0150]將應(yīng)用下載請求對應(yīng)文件的MD5值與所述下載應(yīng)用對應(yīng)文件的實際MD5值進行比對;若所述應(yīng)用下載請求對應(yīng)文件的MD5值與所述下載應(yīng)用對應(yīng)文件的實際MD5值不一致,判斷所述應(yīng)用下載過程受到劫持。
[0151]A5、根據(jù)A1-A4任一項所述的方法,其中,所述通過將下載應(yīng)用的URL提供給代理服務(wù)器,從所述第二服務(wù)器獲取所述下載應(yīng)用進一步包括:
[0152]將下載應(yīng)用的URL提供給代理服務(wù)器,以供所述代理服務(wù)器根據(jù)所述URL從所述第二服務(wù)器獲取所述下載應(yīng)用;
[0153]從所述代理服務(wù)器獲取所述下載應(yīng)用。
[0154]A6、根據(jù)A5所述的方法,其中,所述將下載應(yīng)用的URL提供給代理服務(wù)器,以供所述代理服務(wù)器根據(jù)所述URL從所述第二服務(wù)器獲取所述下載應(yīng)用進一步包括:
[0155]向所述代理服務(wù)器發(fā)送HTTP請求,所述HTTP請求的HTTP頭信息中添加有所述下載應(yīng)用的URL ;以供所述代理服務(wù)器從所述HTTP請求中解析出所述下載應(yīng)用的URL,并根據(jù)所述URL獲取所述下載應(yīng)用。
[0156]A7、根據(jù)A1-A4任一項所述的方法,其中,所述通過域名解析服務(wù)器進行域名解析,從所述第二服務(wù)器獲取所述下載應(yīng)用進一步包括:
[0157]通過域名解析服務(wù)器提供的接口向所述域名解析服務(wù)器發(fā)送所述下載應(yīng)用的域名,以供所述域名解析服務(wù)器根據(jù)所述下載應(yīng)用的域名得到提供所述下載應(yīng)用的第二服務(wù)器的IP地址;
[0158]根據(jù)所述域名解析服務(wù)器返回的IP地址從所述第二服務(wù)器下載應(yīng)用。
[0159]B8、一種應(yīng)用下載裝置,其包括:
[0160]發(fā)送模塊,適于發(fā)送應(yīng)用下載請求;
[0161]接收模塊,適于接收第一服務(wù)器返回的與所述應(yīng)用下載請求對應(yīng)的響應(yīng)消息;
[0162]判斷模塊,適于根據(jù)所述響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持;
[0163]下載模塊,適于在所述應(yīng)用下載過程受到劫持時,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從所述第二服務(wù)器獲取所述下載應(yīng)用。
[0164]B9、根據(jù)B8所述的裝置,其中,所述下載應(yīng)用的第一特征信息包括應(yīng)用下載請求對應(yīng)的響應(yīng)消息中的內(nèi)容長度信息;
[0165]所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用的實際內(nèi)容長度信息;
[0166]所述判斷模塊進一步包括:
[0167]提取單元,適于從所述接收模塊接收的響應(yīng)消息的HTTP頭信息中提取內(nèi)容長度信息;
[0168]第一比對單元,適于將所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息進行比對;
[0169]判斷單元,適于在所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致時,判斷所述應(yīng)用下載過程受到劫持。
[0170]B10、根據(jù)B9所述的裝置,其中,所述裝置還包括:中斷模塊,適于在所述響應(yīng)消息的HTTP頭信息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致時,中斷所述應(yīng)用下載過程。
[0171]BI 1、根據(jù)B8或B9所述的裝置,其中,所述下載應(yīng)用的第一特征信息還包括所述應(yīng)用下載請求對應(yīng)文件的MD5值;
[0172]所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用對應(yīng)文件的實際MD5值;
[0173]所述判斷模塊進一步包括:
[0174]計算單元,適于根據(jù)所述響應(yīng)消息,計算所述應(yīng)用下載請求對應(yīng)文件的MD5值;
[0175]第二比對單元,適于將所述應(yīng)用下載請求對應(yīng)文件的MD5值與所述下載應(yīng)用對應(yīng)文件的實際MD5值進行比對;
[0176]所述判斷單元進一步適于:在所述應(yīng)用下載請求對應(yīng)文件的MD5值與所述下載應(yīng)用對應(yīng)文件的實際MD5值不一致時,判斷所述應(yīng)用下載過程受到劫持。
[0177]B12、根據(jù)B8-B11任一項所述的裝置,其中,所述下載模塊進一步包括:
[0178]代理服務(wù)器接口,適于將下載應(yīng)用的URL提供給代理服務(wù)器,以供所述代理服務(wù)器根據(jù)所述URL從所述第二服務(wù)器獲取所述下載應(yīng)用;
[0179]第一下載單元,適于從所述代理服務(wù)器獲取所述下載應(yīng)用。
[0180]B13、根據(jù)B12所述的裝置,其中,所述代理服務(wù)器接口進一步適于:
[0181]向所述代理服務(wù)器發(fā)送HTTP請求,所述HTTP請求的HTTP頭信息中添加有所述下載應(yīng)用的目標URL ;以供所述代理服務(wù)器從所述HTTP請求中解析出所述下載應(yīng)用的目標URL并根據(jù)所述目標URL獲取所述下載應(yīng)用。
[0182]B14、根據(jù)B8-B11任一項所述的裝置,其中,所述下載模塊進一步包括:
[0183]域名解析服務(wù)器接口,適于向所述域名解析服務(wù)器發(fā)送所述下載應(yīng)用的域名,以供所述域名解析服務(wù)器根據(jù)所述下載應(yīng)用的域名得到提供所述下載應(yīng)用的第二服務(wù)器的IP地址;
[0184]第二下載單元,適于根據(jù)所述域名解析服務(wù)器返回的IP地址從所述第二服務(wù)器下載應(yīng)用。
[0185]C15、一種應(yīng)用下載系統(tǒng),包括權(quán)利要求B8-B14任一項所述的應(yīng)用下載裝置,還包括:
[0186]第二服務(wù)器,適于提供所述下載應(yīng)用;
[0187]代理服務(wù)器,適于接收所述應(yīng)用下載裝置發(fā)送的HTTP請求,所述HTTP請求的HTTP頭信息中添加有所述下載應(yīng)用的目標URL ;
[0188]從所述HTTP請求中解析出所述下載應(yīng)用的URL,并根據(jù)所述URL從第二服務(wù)器獲取所述下載應(yīng)用;
[0189]域名解析服務(wù)器,適于接收所述應(yīng)用下載裝置發(fā)送的下載應(yīng)用的域名,根據(jù)下載應(yīng)用的域名得到提供所述下載應(yīng)用的第二服務(wù)器的IP地址。
【權(quán)利要求】
1.一種應(yīng)用下載中防止DNS劫持的方法,其包括: 發(fā)送應(yīng)用下載請求; 接收第一服務(wù)器返回的與所述應(yīng)用下載請求對應(yīng)的響應(yīng)消息; 根據(jù)所述響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持,其中,所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的; 若所述應(yīng)用下載過程受到劫持,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從所述第二服務(wù)器獲取所述下載應(yīng)用。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述下載應(yīng)用的第一特征信息包括應(yīng)用下載請求對應(yīng)的響應(yīng)消息中的內(nèi)容長度信息; 所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用的實際內(nèi)容長度信息; 所述通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持進一步包括: 從所述響應(yīng) 消息的HTTP頭信息中提取內(nèi)容長度信息; 將所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息進行比對; 若所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致,判斷所述應(yīng)用下載過程受到劫持。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述方法還包括:若所述響應(yīng)消息的HTTP頭信息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致,則中斷所述應(yīng)用下載過程。
4.根據(jù)權(quán)利要求1或2所述的方法,其中,所述下載應(yīng)用的第一特征信息還包括所述應(yīng)用下載請求對應(yīng)文件的MD5值; 所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用對應(yīng)文件的實際MD5值; 所述通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持進一步包括: 根據(jù)所述響應(yīng)消息,計算所述應(yīng)用下載請求對應(yīng)文件的MD5值; 將應(yīng)用下載請求對應(yīng)文件的MD5值與所述下載應(yīng)用對應(yīng)文件的實際MD5值進行比對;若所述應(yīng)用下載請求對應(yīng)文件的MD5值與所述下載應(yīng)用對應(yīng)文件的實際MD5值不一致,判斷所述應(yīng)用下載過程受到劫持。
5.根據(jù)權(quán)利要求1-4任一項所述的方法,其中,所述通過將下載應(yīng)用的URL提供給代理服務(wù)器,從所述第二服務(wù)器獲取所述下載應(yīng)用進一步包括: 將下載應(yīng)用的URL提供給代理服務(wù)器,以供所述代理服務(wù)器根據(jù)所述URL從所述第二服務(wù)器獲取所述下載應(yīng)用; 從所述代理服務(wù)器獲取所述下載應(yīng)用。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述將下載應(yīng)用的URL提供給代理服務(wù)器,以供所述代理服務(wù)器根據(jù)所述URL從所述第二服務(wù)器獲取所述下載應(yīng)用進一步包括: 向所述代理服務(wù)器發(fā)送HTTP請求,所述HTTP請求的HTTP頭信息中添加有所述下載應(yīng)用的URL ;以供所述代理服務(wù)器從所述HTTP請求中解析出所述下載應(yīng)用的URL,并根據(jù)所述URL獲取所述下載應(yīng)用。
7.根據(jù)權(quán)利要求1-4任一項所述的方法,其中,所述通過域名解析服務(wù)器進行域名解析,從所述第二服務(wù)器獲取所述下載應(yīng)用進一步包括: 通過域名解析服務(wù)器提供的接口向所述域名解析服務(wù)器發(fā)送所述下載應(yīng)用的域名,以供所述域名解析服務(wù)器根據(jù)所述下載應(yīng)用的域名得到提供所述下載應(yīng)用的第二服務(wù)器的IP地址; 根據(jù)所述域名解析服務(wù)器返回的IP地址從所述第二服務(wù)器下載應(yīng)用。
8.一種應(yīng)用下載裝置,其包括: 發(fā)送模塊,適于發(fā)送應(yīng)用下載請求; 接收模塊,適于接收第一服務(wù)器返回的與所述應(yīng)用下載請求對應(yīng)的響應(yīng)消息; 判斷模塊,適于根據(jù)所述響應(yīng)消息得到下載應(yīng)用的第一特征信息,通過將所述下載應(yīng)用的第一特征信息與下載應(yīng)用的第二特征信息進行匹配判斷應(yīng)用下載過程是否受到劫持; 下載模塊,適于在所述應(yīng)用下載過程受到劫持時,通過將下載應(yīng)用的URL提供給代理服務(wù)器或利用域名解析服務(wù)器進行域名解析,從所述第二服務(wù)器獲取所述下載應(yīng)用。
9.根據(jù)權(quán)利要求8所述的裝置,其中,所述下載應(yīng)用的第一特征信息包括應(yīng)用下載請求對應(yīng)的響應(yīng)消息中的內(nèi)容長度信息; 所述下載應(yīng)用的第二特征信息是預(yù)先從提供下載應(yīng)用的第二服務(wù)器處獲取的所述下載應(yīng)用的實際內(nèi)容長度信息; 所述判斷模塊進一步包括: 提取單元,適于從所述接收模塊接收的響應(yīng)消息的HTTP頭信息中提取內(nèi)容長度信息; 第一比對單元,適于將所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息進行比對; 判斷單元,適于在所述響應(yīng)消息中的內(nèi)容長度信息與所述下載應(yīng)用的實際內(nèi)容長度信息不一致時,判斷所述應(yīng)用下載過程受到劫持。
10.一種應(yīng)用下載系統(tǒng),包括權(quán)利要求8-9任一項所述的應(yīng)用下載裝置,還包括: 第二服務(wù)器,適于提供所述下載應(yīng)用; 代理服務(wù)器,適于接收所述應(yīng)用下載裝置發(fā)送的HTTP請求,所述HTTP請求的HTTP頭信息中添加有所述下載應(yīng)用的目標URL ; 從所述HTTP請求中解析出所述下載應(yīng)用的URL,并根據(jù)所述URL從第二服務(wù)器獲取所述下載應(yīng)用; 域名解析服務(wù)器,適于接收所述應(yīng)用下載裝置發(fā)送的下載應(yīng)用的域名,根據(jù)下載應(yīng)用的域名得到提供所述下載應(yīng)用的第二服務(wù)器的IP地址。
【文檔編號】H04L29/08GK104079673SQ201410369830
【公開日】2014年10月1日 申請日期:2014年7月30日 優(yōu)先權(quán)日:2014年7月30日
【發(fā)明者】李小慶, 魯小鎖, 彭國州 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司