亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于隧道技術的反域名劫持方法和系統(tǒng)的制作方法

文檔序號:7982890閱讀:261來源:國知局
一種基于隧道技術的反域名劫持方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種基于隧道技術的反域名劫持方法和系統(tǒng):在用戶主機上設置客戶端,在ISP網絡外的互聯網上設置服務器端;客戶端接收本地應用的DNS請求,將其中的關鍵字段封裝成承載請求數據包后發(fā)送至服務器端;服務器端從承載請求數據包中拆分出DNS請求的關鍵字段,將其組裝成DNS請求后發(fā)送至遞歸服務器;服務器端從遞歸服務器接收應答信息,將其封裝成承載應答數據包后發(fā)送至客戶端;客戶端從承載應答數據包中拆分出DNS應答信息,發(fā)送至本地DNS應用。本發(fā)明通過隧道技術把DNS數據隱藏到網絡中使用廣泛的協議數據包中,秘密地完成DNS的請求解析工作。
【專利說明】一種基于隧道技術的反域名劫持方法和系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于信息【技術領域】,涉及一種反域名劫持的方法和系統(tǒng),具體涉及一種基于隧道技術的反域名劫持方法和系統(tǒng)。
【背景技術】
[0002]域名系統(tǒng)(Domain Name System, DNS)是一種用于TCP/IP應用程序的分布式數據庫,是整個互聯網的基礎設施,其主要功能是實現域名和IP地址之間的轉換。DNS系統(tǒng)的正常運行是Web服務、電子郵件服務等眾多網絡服務正常運行的基礎。域名是Internet上某一臺計算機或計算機組的名稱,用于在數據傳輸時標識計算機的電子方位(有時也指地理位置)。域名是由一串用點分隔的名字組成的,通常包含組織名,而且始終包括兩到三個字母的后綴,以指明組織的類型或該域所在的國家或地區(qū)?;ヂ摼W用戶在主機端登陸網站時,首先是通過向域名系統(tǒng)發(fā)送域名查詢報文,獲得所登錄域名的IP地址,然后去訪問此IP地址上的Web服務器。
[0003]DNS系統(tǒng)是目前全球最大最復雜的分布式層次數據庫。由于其開放、龐雜、復雜的特性以及設計之初對于安全性的考慮不足,使得DNS系統(tǒng)的安全性問題比較突出。DNS請求由一個來自客戶端的UDP請求和一個來自服務器端的UDP應答組成。當客戶端主動要求或者應答包的大小超過512B時,還有其它的一些特殊任務,比如區(qū)傳送,DNS請求會使用TCP協議來傳送。但DNS協議主要使用的還是UDP協議的53號端口。UDP協議是面向無連接的、不可靠的,而且DNS協議在DNS報文中只使用一個序列號來進行有效性鑒別,并未提供其它的認證和保護手段,導致DNS協議本身很容易遭受到攻擊。
[0004]在這些攻擊中,比較常見的一種攻擊是域名劫持?,F在域名劫持的定義在業(yè)界還不統(tǒng)一,有很多不同的版本,本專利采納的定義:域名劫持是互聯網攻擊的一種方式,通過攻擊域名解析服務器,或偽造域名解析結果的方法,把目標網站域名解析到錯誤的地址而達到無法訪問目標網站的目的。在域名劫持中,一個普遍的表現是網絡服務提供商(Internet ServiceProvider, ISP)劫持使用其網絡服務的用戶的DNS請求。網絡服務提供商給用戶提供網絡服務的同時,一般會提供免費的DNS服務,其中一些ISP篡改了 DNS應答數據,對其用戶進行網址嫁接(Pharming);即使用戶選擇不使用ISP的DNS,ISP為了自己的目的,如發(fā)廣告或收集統(tǒng)計數據等,也有技術和方法劫持用戶的DNS請求到廣告網頁、刷流量的網頁。如圖1所示,Hostl和Host2的用戶如果設置的DNS是ISP網絡外面的第三方DNS,那么他們發(fā)出的DNS請求如果被ISP網絡的網關Router探測到,Router網關會把DNS請求復制給自己的DNS服務器RDNS。由于RDNS比第三方更及時的獲得和應答DNS請求,所以Hostl和Host2首先收到的DNS請求是RDNS發(fā)來的,后面發(fā)來的第三方的應答就被兩用戶主機操作系統(tǒng)忽略掉了,從而RDNS成功的對其網內用戶完成了類似“中間人攻擊”的域名劫持。有時候ISP可能把DNS請求阻斷而引流給RDNS并實現域名劫持,道理也是相同的,只是少了第三方DNS的任何的應答可能性。
[0005]現有的反域名劫持方案如下:[0006]I)正在全球部署的 DNSSEC (Domain Name System Security Extensions,域名系統(tǒng)安全擴展)將會在反饋給互聯網用戶的DNS請求響應中插入數字簽名,確保返回的域名地址是未經篡改的。但是DNSSEC在全球的部署尚需時日,而且很多ISP網絡并不支持DNSSEC0還有,用戶在使用ISP的網絡服務時,由于處在被動的位置上,擺脫DNS的過濾行為是困難的。因此DNSSEC方案只能在一定程度上解決域名劫持問題。
[0007]2)在用戶所在網絡的路由器里或用戶操作系統(tǒng)的路由表中做設置。如在用戶網絡的路由器里建立DNS緩沖服務器,并對其做一些相關設置以丟棄ISP偽造的DNS應答包,從而達到對名字錯誤(Name Error, NXDOMAI N)的劫持行為起到抵制作用。這要求用戶有一定的計算機知識,還要不斷地做維護工作,而且只能針對NXD0MAIN的劫持。
[0008]因此,需要在DNS的基礎上設計新的自動化的方法來反制ISP的域名劫持。

【發(fā)明內容】

[0009]本發(fā)明的目的在于針對上述問題,提供一種基于隧道技術的反域名劫持方法和裝置。通過隧道技術,即通過一定的方法把DNS數據隱藏到網絡中使用廣泛的協議數據包中,如果位于ISP網內的用戶主機上安裝了本發(fā)明的反域名劫持系統(tǒng)的客戶端,那么客戶端就可以訪問位于ISP網外的服務器端,秘密地完成DNS的請求解析工作。
[0010]隧道技術(Tunneling)是一種通過使用互聯網的基礎設施在網絡之間傳遞數據的方式。使用隧道傳遞的數據(或負載)可以是不同協議的數據幀或包。隧道協議將一種協議的數據幀或包重新封裝到其它協議中,然后通過隧道發(fā)送。隧道包括隧道入口和隧道出口(隧道終點)。在隧道入口,以一種協議的形式來對另外一種協議的數據進行封裝并發(fā)送;在隧道出口,對接收到的協議數據解封裝,并做相應的處理。本發(fā)明即利用了隧道技術的原理。
[0011]具體來說,本發(fā)明采用如下技術方案:
[0012]一種基于隧道技術的反域名劫持方法,其步驟包括:
[0013]I)在用戶主機上設置客戶端,在ISP網絡外的互聯網上設置服務器端;
[0014]2)客戶端接收本地應用的DNS請求,將其中的關鍵字段封裝成承載請求數據包后發(fā)送至服務器端;
[0015]3)服務器端從承載請求數據包中拆分出DNS請求的關鍵字段,將其組裝成DNS請求后發(fā)送至遞歸服務器;
[0016]4)服務器端從遞歸服務器接收應答信息,將其封裝成承載應答數據包后發(fā)送至客戶端;
[0017]5)客戶端從承載應答數據包中拆分出DNS應答信息,發(fā)送至本地DNS應用。
[0018]進一步地,上述方法還包括如下步驟:在所述客戶端建立反劫持域名列表,該列表包含遭受ISP劫持的域名集合;所述客戶端接收本地DNS請求后,如果目標域名在所述反劫持域名列表中,則繼續(xù)執(zhí)行所述步驟2);否則,將DNS請求直接發(fā)送至ISP的遞歸服務器。
[0019]進一步地,由用戶對所述反域名劫持列表進行維護和更新,包括添加域名、刪除域
石寸ο
[0020]進一步地,通過在所述客戶端設置一探測模塊來對所述反域名劫持列表進行維護和更新,方法為:a)所述服務器端從其用戶使用系統(tǒng)記錄中提取域名;b)所述探測模塊接收所述域名,分別向本地ISP的遞歸服務器和所述服務器端發(fā)送DNS解析請求,并對獲得的解析結果進行比對分析,如果確認ISP網絡對此域名做了域名劫持,則將其加入所述反劫持域名列表。
[0021]進一步地,所述DNS請求的關鍵字段包括序列號、域名、類型和類別等。
[0022]進一步地,所述承載請求數據包和所述承載應答數據包采用下列協議中的一種:HTTP協議、FTP協議、POP3協議、SMTP協議、SNMP協議、SSH協議、IMAP4協議、IRC協議、NNTP協議、XMPP協議、SIP協議、TFTP協議、RIP協議、TELNET協議、HTTPS協議。
[0023]一種基于隧道技術的反域名劫持系統(tǒng),包括客戶端和服務器端;所述客戶端安裝于用戶主機上,包括轉發(fā)模塊和隧道通信模塊;所述服務器端設于ISP網絡外的互聯網上;
[0024]所述轉發(fā)模塊負責接收本地應用的DNS請求并轉發(fā)給所述隧道通信模塊,以及負責從所述隧道通信模塊接收DNS應答信息并轉發(fā)給所述本地應用;
[0025]所述隧道通信模塊連接所述轉發(fā)模塊,負責接收所述DNS請求,將其中的關鍵字段封裝成一承載請求數據包后傳送至所述服務器端;以及負責從所述服務器端接收承載應答數據包,將其中的關鍵字段組成DNS應答信息后發(fā)送至所述轉發(fā)模塊;
[0026]所述服務器端負責接收所述承載請求數據包,從中拆分出關鍵字段并組成DNS請求后發(fā)送至一遞歸服務器;以及負責從所述遞歸服務器接收DNS應答信息并封裝至一承載應答數據包,然后發(fā)送至所述隧道通信模塊。
[0027]進一步地,所述客戶端還包括一界面模塊,用于建立一反劫持域名列表;所述轉發(fā)模塊接收本地應用的DNS請求后,根據目標域名查找所述反劫持域名列表:如果目標域名在反域名劫持列表中,則將所述DNS請求轉發(fā)至所述隧道通信模塊,否則將所述DNS請求直接發(fā)送至ISP的遞歸服務器。
[0028]進一步地,所述客戶端還包括一探測模塊,用于對所述反劫持域名列表進行維護和更新,方法為:a)所述服務器端從其用戶使用系統(tǒng)記錄中提取域名;b)所述探測模塊接收所述域名,分別向本地ISP的遞歸服務器和所述服務器端發(fā)送DNS解析請求,并對獲得的解析結果進行比對分析,如果確認ISP網絡對此域名做了域名劫持,則將其加入所述反劫持域名列表。
[0029]進一步地,所述轉發(fā)模塊設有緩存,用于存放從服務器端獲得的資源記錄,其生存時間遵循DNS協議標準。
[0030]本發(fā)明的優(yōu)點和積極效果如下:
[0031]I)客戶端和服務器端通過隧道技術秘密地完成傳送DNS數據,從而完成DNS的請求解析工作,進而免遭ISP對DNS數據的劫持過濾,使用戶獲得的DNS應答數據避免遭受篡改。
[0032]2)進一步建立了反劫持域名列表,可由用戶和探測模塊共同維護,及時對遭受劫持的域名進行記錄和區(qū)分,并分別進行處理,增強了反域名劫持的針對性,提高了反域名劫持的能力和效果。
【專利附圖】

【附圖說明】
[0033]圖1為DNS系統(tǒng)的域名劫持攻擊示意圖。
[0034]圖2為本發(fā)明實施例的基于隧道技術的反域名劫持系統(tǒng)的架構示意圖。[0035]圖3為圖2中客戶端的結構示意圖。
[0036]圖4為本發(fā)明實施例的將DNS信息封裝成數據包的示意圖。
[0037]圖5本發(fā)明實施例的基于隧道技術的反域名劫持方法的步驟流程圖。
[0038]圖6為為本發(fā)明實施例的模擬仿真測試環(huán)境示意圖。
【具體實施方式】
[0039]下面通過具體實施例并配合附圖,對本發(fā)明做詳細的說明。
[0040]本發(fā)明是把DNS數據隱藏到網絡中使用廣泛的承載數據包中,即采用隧道技術,秘密地完成DNS的請求解析工作。承載數據包使用任何ISP沒有劫持的協議,如HTTP協議、FTP協議、POP3協議、SMTP協議、SNMP協議、SSH協議、IMAP4協議、IRC協議、NNTP協議、XMPP協議、SIP協議、TFTP協議、RIP協議、TELNET協議、HTTPS協議等等。用戶可以根據自己的判斷設置承載數據包的協議,系統(tǒng)也可以幫助用戶探測其ISP尚未劫持的協議。下面說明如何應用本發(fā)明傳送DNS信息。
[0041]圖2為本實施例的基于隧道技術的反域名劫持系統(tǒng)的架構示意圖。本系統(tǒng)分為兩個大部分:客戶端和服務器端??蛻舳藶榘惭b在用戶主機上的客戶端軟件,與本地應用程序連接并接收DNS應用請求;并轉發(fā)DNS請求給ISP提供的遞歸域名服務器或者本系統(tǒng)的服務器端。本系統(tǒng)的服務器端接收客戶端發(fā)來的DNS請求并發(fā)給遞歸服務器,同時把從遞歸服務器收到的DNS應答信息發(fā)給客戶端??蛻舳私邮盏缴鲜鰞烧咧幸徽叩膽饠祿?,再給DNS應用發(fā)送應答。下面分別予以說明。
[0042]1.客戶端
[0043]圖3為客戶端的組成結構示意圖。如該圖所示,客戶端分為界面模塊與后臺部分,后臺部分包括轉發(fā)模塊、隧道通信模塊和探測模塊。其中,探測模塊是可選擇使用的模塊,當用戶通過界面模塊啟動探測模塊時,探測模塊才啟動。
[0044]界面模塊提供給用戶的一個維護“反劫持域名列表”的接口。用戶可以維護和更新“反劫持域名列表”,如增刪其中的域名等。“反劫持域名列表”是一個包含遭受ISP劫持的域名集合。后臺程序可以參考這個列表轉發(fā)DNS請求,并完成DNS數據的封裝和解封工作。它根據請求解析域名是否存在于該列表中,來決定域名轉發(fā)的路徑。如果在列表中,就把DNS請求的關鍵字段封裝到承載數據包中,再發(fā)送給本系統(tǒng)的服務器端;否則直接發(fā)往本地的DNS服務器。
[0045]轉發(fā)模塊是后臺部分的“前端”,負責接收本地應用的DNS請求,并把這些請求包交給隧道通信模塊去處理。最后,把從隧道通信模塊返回來的DNS應答包轉發(fā)給本地應用。另外,轉發(fā)模塊還可以設有一個緩存,用于存放從服務器端獲得的應答數據,應答數據中資源記錄的生存時間(Time To Live, TTL)遵循DNS協議標準。這樣,后臺程序一定程度上相當于一個DNS緩存服務器,可以大幅減少對外DNS查詢的數量而減少因特網流量,同時減輕了客戶端和服務器的負擔。還有,轉發(fā)模塊可以根據目標請求域名是否在“反劫持域名列表”中,來決定是把DNS請求包轉發(fā)給ISP指定的遞歸服務器,還是發(fā)送給隧道通信模塊。如果目標請求域名在“反劫持域名列表”中,就把這些請求交給隧道通信模塊去處理;否則轉發(fā)給ISP指定的遞歸服務器。最后,把從隧道通信模塊返回來或者ISP的DNS返回來的DNS應答包轉發(fā)給本地應用。這樣,可以把一些ISP沒有劫持的域名交給ISP指定的遞歸服務器解析,而這些服務器一般跟客戶端的網絡延時相對較小,所以這樣做可以一定程度上降低這些域名的解析延遲,也可以減小對本系統(tǒng)服務器端的壓力。
[0046]隧道通信模塊接收轉發(fā)模塊轉發(fā)來的本地DNS請求包,再把包中的關鍵字段(如請求的序列號、域名、類型和類等)抽取出來,并以一定的方式組合(下文會給出一種組合方式)將它們封裝到承載數據包中,稱為“承載請求數據包”。接著通過隧道把該承載請求數據包傳送給服務器端;它從隧道接收到服務器端返回來的承載應答數據包,并從包中抽取出DNS應答的關鍵字段,再把這些字段組成一個完整的、與DNS請求相對應的DNS應答包,然后把這個包發(fā)給轉發(fā)模塊。總之,隧道通信模塊和服務器端完成兩者之間隧道的搭建,并通過此隧道完成DNS請求和DNS應答數據的交換。
[0047]下面以通過HTTP協議做隧道為例給出一種客戶端封裝DNS請求包的重要信息的方式:隧道通信模塊把本地收到的DNS信息的各個字段,比如序列號(ID)、域名(QNAME)、類型(QTYPE)和類(QCLASS)等信息,跟本系統(tǒng)服務器端的域名(例如www.theserver.com)拼接成一個完整的統(tǒng)一資源定位符(Uniform Resource Locator, URL)(見圖4),再把此URL作為GET方法的參數向服務器“文件對象”的申請。實際上這個“文件對象”在服務器上并不存在,而是客戶端和服務器端之間的一個約定,通過這種約定,客戶端順利告知了服務器端DNS請求的有關信息。
[0048]服務器端保存了用戶的查詢請求記錄。從這些記錄可以獲得被各個ISP劫持的域名,如何劫持的,以及其他劫持情況。探測模塊定期從服務器端接收一些域名,這些域名是服務器端從其用戶使用系統(tǒng)記錄中提取的、訪問量靠前的域名。域名訪問量大意味著這些域名被劫持的幾率比較大。探測模塊把域名分別向本地ISP的遞歸服務器和本系統(tǒng)的服務器端發(fā)送DNS解析請求,并分別獲得解析結果,再對兩個結果進行比對分析,如果發(fā)現本地ISP發(fā)來的結果與本系統(tǒng)服務器端發(fā)來的結果不一致,客戶端把域名和兩個結果等數據提交給服務器端。服務器端接收到提交的數據,對不一致情況是否發(fā)生劫持進行判斷。判斷是否劫持的方法很多,例如,在保存的劫持情況中搜尋,如果搜尋的結果表明劫持的可能性較大,就可以認為此客戶端遭到其ISP網絡的域名劫持,則將其加入“反劫持域名列表”里;否則不加入。這個認定對客戶端的上網安全構不成危險。
[0049]系統(tǒng)允許用戶或探測模塊維護“反劫持域名列表”提高了系統(tǒng)的性能和準確性。因為一個特定用戶往往集中訪問少量的網站而對這些網站相對熟悉,因此其對特定域名是否被ISP域名劫持的判定是比較真實可靠的。本系統(tǒng)服務器端收集了其所有用戶訪問的網站的集合,這個集合要比單個用戶的域名集合大很多,這樣相對于某一特定用戶的主觀判定來說,探測模塊的維護工作具有前瞻性,從而增強了反域名劫持的能力和效果。當然,在其它的實施例中,客戶端也可以不設置探測模塊,即僅由用戶來維護和更新“反劫持域名列表”,或者用戶在客戶端進行設置,自行選擇這個列表的維護方式,包括:由用戶和探測模塊共同維護、僅由用戶維護和僅由探測模塊維護。
[0050]2.服務器端
[0051]服務器端架設在ISP網絡外面的互聯網上的服務器上。如圖2所示,服務器端負責接收客戶端發(fā)來的承載請求數據包,并從中拆分出DNS請求信息的關鍵字段,再把這些字段組成一個DNS請求包,接著發(fā)給后面的遞歸服務器;同時還把從遞歸服務器收到的DNS應答信息封裝到承載數據包中,即“承載應答數據包”,并轉發(fā)給客戶端。[0052]遞歸服務器是互聯網的基礎設施,在應用本發(fā)明的系統(tǒng)時,將遞歸服務器與上述服務器端連接,該遞歸服務器負責向相關權威服務器做遞歸請求并獲得最終的DNS應答,接著把DNS應答數據包返回來給服務器端。遞歸服務器提供的應答數據要求是沒有被篡改過的,即遞歸服務器返回的每個域名的應答數據都是從權威服務器獲得的、未經修改的DNS數據。
[0053]本實施例的基于隧道技術的反域名劫持方法的步驟流程如圖5所示。首先,在用戶主機上設置客戶端,在ISP網絡外的互聯網上設置服務器端;然后客戶端接收本地應用的DNS請求,將其中的關鍵字段封裝成承載請求數據包后發(fā)送至服務器端;然后服務器端從承載請求數據包中拆分出DNS請求的關鍵字段,將其組裝成DNS請求后發(fā)送至遞歸服務器;然后服務器端從遞歸服務器接收應答信息,將其封裝成承載應答數據包后發(fā)送至客戶端;最后客戶端從承載應答數據包中拆分出DNS應答信息,發(fā)送至本地DNS應用。具體描述如下:
[0054]I)用戶安裝并啟動客戶端,上網過程中如果發(fā)現某個域名被ISP劫持了,可以把這個域名加入到“反劫持域名列表”。
[0055]2)客戶端的轉發(fā)模塊接收到DNS應用發(fā)來的DNS請求后,首先要分析出請求的域名、類型等信息字段。如果發(fā)現目標請求域名在“反劫持域名列表”里,就把這些字段傳給隧道通信模塊,隧道通信模塊把這些字段按一定格式和次序封裝到承載請求數據包中,并把這個包傳送給服務器;如果發(fā)現不在“反劫持域名列表”中,那么將認為ISP暫時沒有劫持這個域名,沒有必要把這個解析任務發(fā)給本系統(tǒng)的服務器端來處理,而是發(fā)給ISP所提供的DNS。一般來說,由于ISP的DNS和用戶處在同一小的局域網絡或兩者相距較近。從而可以節(jié)省出口外網的數據流量和請求時間,也可以減小本系統(tǒng)的服務器端的解析壓力。
[0056]3)服務器端收到請求承載數據包,就從中抽取出有關DNS請求的詳細信息,并把這些信息組裝成DNS請求包,發(fā)給后臺的遞歸服務器。服務器端接收到遞歸服務器返回來的DNS應答包,就從包中抽取出關鍵字段,并將其封裝到一個承載應答數據包,然后把該包返回給客戶端。
[0057]與上面所說的客戶端以HTTP協議封裝方式相對應,服務器收到此種封裝包,DNS交互模塊接收到http請求數據包之后,按照DNS請求信息在URL中的封裝順序和封裝方式,把這些信息從中解封出來。如果收到如圖4所示的URL的請求承載包,就知道DNS請求的域名是“WWW.cnnic.cn”,請求類型是A類(對應數字I),請求類是Class (對應數字I)。當收到DNS應答包時,把DNS應答包作為一個字符串封裝到一個http數據包的數據部分。
[0058]4)最后客戶端收到服務器端返回來的承載應答數據包,或者ISP的DNS服務器返回來的DNS應答數據包。如果客戶端收到的是承載應答數據包,則客戶端的隧道通信模塊接收到這個包,從中抽取出DNS應答數據的關鍵字段,并將其封裝到一個DNS應答數據中,再將該包返回給轉發(fā)模塊。轉發(fā)模塊把隧道通信模塊或ISP的遞歸服務器返回來的DNS應答包做一些小的處理,如安全性檢查和ID替換等。最后把這個DNS應答包返回給本地DNS應用。
[0059]為了證明本系統(tǒng)的反域名劫持的效果和實際的服務能力,搭建如圖6所示的模擬仿真測試環(huán)境,對其具體說明如下:
[0060]在沒有安裝本發(fā)明的基于隧道技術的反域名劫持系統(tǒng)時,ISP網絡在網關上劫持了 DNS流量到自己的RDNS(192.168.111.229),每當主機Α(192.168.111.41)向網外的RDNS發(fā)送DNS請求時,ISP自己的RDNS最終比第三方遞歸DNS服務器早一步返回給主機A應答數據。ISP在RDNS中設置“www.baidu.com”指向“www.51idc.com”的Web月艮務器IP (114.80.110.2)后(其它域名沒有做劫持設置),當用戶在主機A上訪問“www.baidu.com”時,返回www.51idc.com的頁面,說明網關成功地劫持了域名www.baidu.com。
[0061]在主機A上裝了本發(fā)明的基于隧道技術的反域名劫持系統(tǒng)的客戶端,并在網外服務器(IP是X.X.X.X的)上裝了服務器端后,客戶端需要修改系統(tǒng)的DNS地址設置,將第一條設置為“127.0.0.1”(這個IP地址是本機地址,即操作系統(tǒng)看到這個地址時,就認為是本機器),第二條設置為ISP提供的DNS。當主機A訪問WWW.baidu.com時就可以正確地返回百度的頁面,訪問其它域名也能正確的返回想要的頁面。從主機A的客戶端查詢記錄和網外的服務器端上看出,只有查詢WWW.baidu.com的記錄,說明系統(tǒng)的客戶端能夠把用戶的請求合理的分配給反域名劫持系統(tǒng)的服務器端和RDNS。
[0062]以上實施例僅用以說明本發(fā)明的技術方案而非對其進行限制,本領域的普通技術人員可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護范圍應以權利要求所述為準。
【權利要求】
1.一種基于隧道技術的反域名劫持方法,其步驟包括: 1)在用戶主機上設置客戶端,在ISP網絡外的互聯網上設置服務器端; 2)所述客戶端接收本地應用的DNS請求,將其中的關鍵字段封裝成一承載請求數據包后發(fā)送至所述服務器端; 3)所述服務器端從所述承載請求數據包中拆分出DNS請求的關鍵字段,將其組裝成DNS請求后發(fā)送至一遞歸服務器; 4)所述服務器端從所述遞歸服務器接收應答數據,將其封裝成承載應答數據包后發(fā)送至所述客戶端; 5)所述客戶端從所述承載應答數據包中拆分出DNS應答信息,發(fā)送至本地DNS應用。
2.如權利要求1所述的方法,其特征在于,還包括如下步驟: 在所述客戶端建立反劫持域名列表,該列表包含遭受ISP劫持的域名集合;所述客戶端接收本地DNS請求后,如果目標域名在所述反劫持域名列表中,則繼續(xù)執(zhí)行所述步驟2);否則,將DNS請求直接發(fā)送至ISP的遞歸服務器。
3.如權利要求2所述的方法,其特征在于:由用戶對所述反域名劫持列表進行維護和更新,包括添加域名、刪除域名。
4.如權利要求2所述的方法,其特征在于:通過在所述客戶端設置一探測模塊來對所述反域名劫持列表進行維護和更新,方法為: a)所述服務器端從其用戶使用系統(tǒng)記錄中提取域名; b)所述探測模塊接收所述域名,分別向本地ISP的遞歸服務器和所述服務器端發(fā)送DNS解析請求,并對獲得的解析結果進行比對分析,如果確認ISP網絡對此域名做了域名劫持,則將其加入所述反劫持域名列表。
5.如權利要求1或2所述的方法,其特征在于,所述DNS請求的關鍵字段包括序列號、域名、類型和類別。
6.如權利要求1或2所述的方法,其特征在于,所述承載請求數據包和所述承載應答數據包采用下列協議中的一種=HTTP協議、FTP協議、POP3協議、SMTP協議、SNMP協議、SSH協議、IMAP4協議、IRC協議、NNTP協議、XMPP協議、SIP協議、TFTP協議、RIP協議、TELNET協議、HTTPS協議。
7.一種基于隧道技術的反域名劫持系統(tǒng),其特征在于,包括客戶端和服務器端;所述客戶端安裝于用戶主機上,包括轉發(fā)模塊和隧道通信模塊;所述服務器端設于ISP網絡外的互聯網上; 所述轉發(fā)模塊負責接收本地應用的DNS請求并轉發(fā)給所述隧道通信模塊,以及負責從所述隧道通信模塊接收DNS應答信息并轉發(fā)給所述本地應用; 所述隧道通信模塊連接所述轉發(fā)模塊,負責接收所述DNS請求,將其中的關鍵字段封裝成一承載請求數據包后傳送至所述服務器端;以及負責從所述服務器端接收承載應答數據包,將其中的關鍵字段組成DNS應答信息后發(fā)送至所述轉發(fā)模塊; 所述服務器端負責接收所述承載請求數據包,從中拆分出關鍵字段并組成DNS請求后發(fā)送至一遞歸服務器;以及負責從所述遞歸服務器收DNS應答信息并封裝至一承載應答數據包,然后發(fā)送至所述隧道通信模塊。
8.如權利要求7所述的系統(tǒng),其特征在于:所述客戶端還包括一界面模塊,用于建立一反劫持域名列表;所述轉發(fā)模塊接收本地應用的DNS請求后,根據目標域名查找所述反劫持域名列表:如果目標域名在反域名劫持列表中,則將所述DNS請求轉發(fā)至所述隧道通信模塊,否則將所述DNS請求直接發(fā)送至ISP的遞歸服務器。
9.如權利要求8所述的系統(tǒng),其特征在于,所述客戶端還包括一探測模塊,用于對所述反劫持域名列表進行維護和更新,其方法為: a)所述服務器端從其用戶使用系統(tǒng)記錄中提取域名; b)所述探測模塊接收所述域名,分別向本地ISP的遞歸服務器和所述服務器端發(fā)送DNS解析請求,并對獲得的解析結果進行比對分析,如果確認ISP網絡對此域名做了域名劫持,則將其加入所述反劫持域名列表。
10.如權利要求7至9任一項所述的系統(tǒng),其特征在于:所述轉發(fā)模塊設有緩存,用于存放從服務器端獲得的資源記錄,其生存時間遵循DNS協議標準。
【文檔編號】H04L29/06GK103685584SQ201210328269
【公開日】2014年3月26日 申請日期:2012年9月7日 優(yōu)先權日:2012年9月7日
【發(fā)明者】劉明星, 李曉東 申請人:中國科學院計算機網絡信息中心
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1