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