專利名稱:基于BitTorrent的主動式特定信息傳播監測方法
技術領域:
本發明涉及一種信息傳播監測方法,特別是基于BitTorrent的主動式特定信息傳播監 測方法。
背景技術:
P2P文件共享系統模型總體上可分成4種
(1) 采用中心拓撲的集中目錄式P2P模型,資源發現依賴于中心目錄服務器,典型的代 表是Napster系統;
(2) 采用全分布非結構化拓撲的純粹P2P模型,節點間的文件查詢和共享都是直接通過 相鄰節點的廣播方式傳遞,典型的代表是Gnutella系統;
(3) 采用半分布式結構拓撲的混合式P2P模型,在純粹P2P的基礎上,引入了超級節 點的概念,綜合了集中目錄式P2P的査找快速和純粹P2P非中心化的優勢,典型的代表是 Kazaa系統等;
(4) 采用全分布結構化拓撲的結構化P2P模型,利用分布式消息傳遞機制和分布式哈希 表(Distributed Hash Table, DHT)技術實現信息定位與文件共享。目前,在互聯網上流行的P2P 軟件是以混合式P2P模型和結構化P2P模型為主,典型的是BitTorrent、 eMule/eDonkey等。
P2P網絡監測模型主要有2種 (1 )基于流量特征的監測模型,根據各種P2P軟件通信過程所呈現出的流量特征進行識 別和監測,主要用于網絡運營商對P2P流量的管理;
(2)基于流量內容的監測模型,根據P2P軟件所傳輸的流量內容進行識別和監測,但對 加密的P2P流量內容則無法識別。
文獻1 "Sen, O Spatscheckj D Wang. Accurate scalable in-network identification of P2P traffic using application signatures [C]. WWW2004, May 17-22, 2004, New York, USA. ACM.512-521"公 開了一種基于應用簽名的P2P流量識別方法,該方法基于深層數據包識別技術(Deep Packet Inspection),通過讀取數據載荷并進行模式匹配來發現協議簽名,該方法可實現已知P2P協議數 據流的精確識別,但無法識別未知P2P協議的數據流。總的來看,基于流量特征的監測模型主 要用于網絡運營商對P2P流量限制和管理,并不適合P2P特定信息傳播監控和取證。
文獻2 "Ho Gyun Lee, Taek yong Nam, Jong Soo Jang. The Method of P2P Traffic Detecting for P2P Harmful Contents Prevention [C]. ICACT2005. Feb 21-23, 2005, Phoenix Park, Korea"公 開了一種基于內容恢復的P2P文件共享系統特定內容監控方法,該方法首先對P2P數據流進行識別,將P2P數據流按傳輸內容的類型分為文本、圖像和視頻數據。對于文本類型數據內 容采用字典比較的方法,將文本中攜帶的關鍵字與事先建立好的不良信息字典庫進行比較, 以實現對不良內容的監測。對于圖像內容,文中只提及對色情內容的監測,通過圖像處理的 方法檢測文件中"皮膚區域"所占整個圖像的比例,超過一定的閾值則認為該圖像攜帶色情內 容。對于視頻文件,采用兩種監測方法 一是從視頻文件中獲取關鍵幀,對關鍵幀的內容進 行判斷;二是恢復視頻文件的某一片段,根據該片段的內容判斷視頻文件是否存在非法內容。 該方案的缺點在于系統架構過于復雜,缺乏統一的檢測機制;數據報文內容恢復技術難度大, 無法恢復加密的數據內容;圖像和視頻的檢測方法只能采取事后分析,需要使用復雜的圖像 處理技術,計算量大,實時性差,檢測準確率較低。由于基于流量內容的監測模型需要對P2P 軟件所傳輸的流量內容進行恢復性識別,卻無法恢復和監控被加密的P2P信息內容。
國內外現有P2P網絡監測技術主要用于網絡運營商對P2P流量的識別與管理,無法實現 對P2P特定信息傳播及其受眾進行有效的監測和分析,不能滿足網絡安全監管的應用需求。
發明內容
為了克服現有技術方法對BitTorrent特定信息傳播及其受眾進行監測和分析效果差的不 足,本發明提供一種基于BitTorrent的主動式特定信息傳播監測方法,通過模擬BitTorrent客 戶端向BitTorrent網絡發送仿真數據包,并對返回的數據包進行分析,可以有效的對BitTorrent 網絡特定信息傳播進行監測和分析。
本發明解決其技術問題所采用的技術方案 一種基于BitTorrent的主動式特定信息傳播
監測方法,其特點是包括下述歩驟
(a) 通過"元信息"收集器,從系統中讀取"元信息"在網頁中的匹配關鍵字,再從系統設置 信息中讀取搜索起始地址,將該地址所指定的網頁信息讀取到本地并使用文本方式打開,對文 本中的內容根據已讀取的"元信息"匹配關鍵字進行單詞匹配,將該匹配位置的后續信息作為元 信息的鏈接地址進行下載,同時進行5 20的線程數配置,即先將線程數配置信息設為5,開 始獲取"元信息",判斷計算機系統的CPU占用率是否達到80%,如果沒有達到,則將線程數 配置信息加1,直到計算機系統的CPU占用率達到80%或者線程數配置信息達到20為止;
系統對當前網頁信息進行匹配搜索,發現有鏈接標簽<a></a>,將鏈接標簽中的鏈接地 址作為后續需要處理的地址信息存放到未處理隊列中,當前網頁信息處理完成后,從未處理 隊列中讀取出該隊列的第一個地址重復上述的匹配處理操作,直到未處理隊列中的鏈接地址 為空為止;
(b) 對"元信息"收集器獲取的"元信息"進行分析,根據BitTorrent協議中的規范內容, 使用BitTorrent協議中的報文關鍵字對"元信息"中的信息進行匹配,獲取文件名、文件大小、文件Hash值、DHT網絡入口地址和端口號信息;
(c) 采用偽客戶端方法來連接DHT網絡,獲取共享特定文件的Peers節點列表信息, 當BT偽客戶端啟動時,選中已有的"元信息"進行訪問過程模擬,先讀取"元信息"中的DHT 網絡入口節點列表信息,再根據BitTorrent協議,按照真實的網絡鏈接請求信息向DHT網絡 入口節點發起連接請求,入口節點接收到當前連接請求后,根據DHT網絡協議在DHT網絡 中查詢可提供下載"元信息"對應文件的節點信息,節點列表信息使用UDP數據包返回給偽客 戶端;采用分布式系統結構,通過部署多個偽客戶端,每個偽客戶端向DHT網絡提交多次查 詢請求,獲得參與文件傳輸的所有節點信息;
(d) BitTorrent偽客戶端獲取到DHT網絡的返回信息后,根據BitTorrent協議對返回數據 包進行分析,得到當前"元信息"對應文件下載的Peer節點列表信息,這些節點列表信息在數 據包中按協議規范進行組織;當仿真客戶端收到DHT網絡返回信息數據包后,將數據包按照 協議規范進行分解,得到節點列表信息,并對分解后可用的節點信息進行鏈接,獲取該節點 的狀態信息;當偽客戶端獲得節點列表后,根據BitTorrent協議規范,對于每個節點,使用該 節點的IP地址和端口號生成仿真握手數據包,并向該節點發出握手請求,以建立用于數據傳 輸的TCP鏈接;與節點之間建立鏈接,偽客戶端模擬BitTorrent協議中的數據請求數據包,并 向該節點發送,同時接收該節點的返回數據包,通過固定時間段的發送與接收,對接收到的 數據量進行統計、取時間平均值,得出該TCP鏈接的傳輸速率和節點狀態信息,對于收集的"元 信息"和受眾信息數據中冗余和重復信息進行過濾重復的數據只保留一條,以標準的數據格 式存入受眾數據庫。
本發明的有益效果是由于采用了偽客戶端主動發送模擬數據包來獲取受眾信息,能夠 盡可能多的獲得受眾信息,與現有技術只能被動的對網絡上的流量進行監測、分析,而得到 少部分受眾信息,本發明有效地解決了 BitTorrent特定信息傳播及其受眾的監測問題,通過實 驗驗證和實際測試表明,本發明能夠高效地搜索和獲取互聯網中BitTorrent "元信息",偽客戶 端能夠準確地獲取到參與特定信息傳播的受眾信息,形成特定信息傳播受眾數據庫,為網絡 安全監管部門提供了受眾信息監測與取證手段,同時為網絡安全態勢宏觀分析和預警預報提 供了基礎數據和決策依據。
下面結合附圖和實施例對本發明作詳細說明。
圖1是實現本發明方法所需系統組成圖。 圖2是本發明方法的流程圖。
具體實施例方式
5參照圖1 2,本發明所涉及的基本概念解釋如下
元信息是指啟動一個P2P特定文件傳播任務所需的基本信息,包括文件名、文件大小、 文件Hash值、DHT網絡入口節點地址、端口號信息。例如,BitTorrent中的Torrent種子文 件、eMule中的Ed2K鏈接等。
"元信息"收集器是指從互聯網上自動獲取"元信息"的方法,通過這種方法可以自動從 萬維網上下載"元信息",是"元信息"獲取的主要來源,"元信息"收集器專門用于搜索并獲取 以網頁形式發布的"元信息",采用深度優先搜索策略,首先根據已知鏈接地址獲取網頁內容
并處理網頁中的鏈接信息使用預先設置的"匹配關鍵字"査找元信息鏈接,對于找到的元信 息鏈接,直接獲取元信息;對于網頁鏈接,將其放入等待抓取的URL隊列;然后按照深度優 先搜索策略,從URL隊列中選擇下一步要抓取的URL。重復上述過程,直至達到系統設定 的搜索停止條件。
偽客戶端是根據已有的"元信息",通過模擬BitTorrent通信過程來獲取"元信息"和受眾信息。
本發明采用分模塊的體系結構,分模塊可使各功能模塊的實現分離,模塊與模塊之間通 過接口進行通訊。第一級為界面部分,包括用戶界面管理。它是系統與用戶交互的主要接 口,主要實現用戶與軟件的交互功能以及其它模塊的調用功能;第二級為實現部分,包括元 信息收集模塊、元信息分析處理模塊、DHT網絡訪問過程模擬、Peers節點列表提取與處理、 系統參數設置與讀取模塊和操作幫助。以下為各個實現模塊的說明 元信息收集模塊通過"元信息"收集器收集需要的"元信息"; 元信息分析處理模塊對收集的"元信息"進行分析與處理; DHT網絡訪問過程模擬模擬節點與DHT網絡的訪問過程,獲取受眾信息; Peers節點列表提取與處理對DHT網絡的返回信息進行處理,獲取DHT網絡返回的 Peers節點列表信息,并通過與Peer進行連接,獲取Peer節點的狀態信息;
系統參數設置與讀取模塊對系統的運行參數進行設置,并且可以根據需要讀取指定的 參數;
操作幫助對系統可進行的操作進行說明的模塊。
本發明方法采用以下步驟實現
u)獲取"元信息"。
利用"元信息"收集器技術,首先從系統中讀取"元信息"在網頁中的匹配關鍵字,以進行后 續的比較,再從系統設置信息中讀取搜索起始地址,將該地址所指定的網頁信息讀取到本地并 使用文本方式打開,對文本中的內容從前到后根據己讀取的"元信息"匹配關鍵字進行單詞匹
6配, 一旦發現有匹配位置,則將該匹配位置的后續信息作為元信息的鏈接地址進行下載。為了 加快"元信息"獲取速度,這個步驟需要采用多線程方式進行工作,所以在下載"元信息"的同時 可以繼續進行后續內容的匹配、下載操作。為了達到效率最大化,可同時進行的線程數需要可 以在系統中進行配置,考慮到獲取"元信息"的效率和計算機的負載情況,線程數的配置范圍為 5 20。配置時由操作人員根據計算機的配置情況,首先將線程數配置信息設為5,開始獲取"元 信息",判斷計算機系統的CPU占用率是否達到80%,如果沒有達到,則將線程數配置信息加 1,重新開始獲取"元信息",并判斷計算機系統的CPU占用率是否達到了80%,重復上述歩驟, 直到計算機系統的CPU占用率達到80%或者線程數配置信息達到20為止。
在系統對當前網頁信息進行匹配搜索時, 一旦發現有鏈接標簽<a></a〉,則將鏈接標簽 中的鏈接地址作為后續需要處理的地址信息存放到未處理隊列中,當前網頁信息處理完成后, 從未處理隊列中讀取出該隊列的第一個地址重復上述的匹配處理操作,直到未處理隊列中的 鏈接地址為空為止。
在用戶界面上點擊"元信息"收集按鈕,系統自動調用"元信息"收集模塊,該模塊首先從 系統參數中讀取"元信息"在網頁中的匹配關鍵字為""orrent",再從系統參數中讀取搜索起始 地址為http://btl.btchina.net/coolky/,自動執行"元信息"收集工作,最后收集的"元信息"數量 為18756個。
(2)"元信息"的分析處理。
對于通過"元信息"收集器獲取的"元信息",需要對其進行分析,得到"元信息"中所包含 的有效信息,包括文件名、文件大小、文件Hash值、DHT網絡入口節點地址、端口號。 將這些信息存儲到數據庫中,在通過偽客戶端進行"受眾信息"獲取時,根據指定的查詢條件 快速査找相關的"元信息"。
分析時由系統自動地將元信息以文本文件的方式打開,根據BitTorrent協議中的規范內 容,使用BitTorrent協議中的報文關鍵字對元信息中的信息進行匹配,獲取文件名、文件大小、 文件Hash值、DHT網絡入口地址和端口號信息。當元信息中包含單個文件信息時,文件名 信息來自于Info字段的Name信息,文件大小來自于Info字段的Length信息;當元信息中包 含多個文件信息時,文件名信息來自于Info字段的Name信息,文件大小來自于Info字段的 Files目錄下每個文件的Length總和。文件Hash值來自于Info字段的摘要信息。DHT網絡入 口節點的地址和端口號信息來自于nodes字段,這個字段被設置為離生成torrent的節點路由 表中最近的幾個節點或者已知的好節點,節點的信息包括節點IP地址和節點端口號。
在用戶界面上點擊"元信息"分析處理按鈕,系統自動調用"元信息"分析處理模塊,該模 塊對于已經獲取的"元信息"進行分析、處理,得到"元信息"中所包含的有效信息,這些有效信息包括文件名、文件大小、文件Hash值、DHT網絡入口節點地址、端口號信息,并將 這些信息存儲到數據庫中。成功處理的"元信息"數量為18756個,文件個數為25636個,成 功存儲這些數據后的數據庫大小為267M。 (3 ) DHT網絡訪問過程模擬。
對于BitTorrent,利用"元信息"查詢并獲取特定文件共享的Peers節點列表,即受眾信息。 由于BitTorrent軟件都采用特定協議實現Peers節點之間通信,因此需要采用偽客戶端方法來 連接DHT網絡,以獲取共享特定文件的Peers節點列表信息。
當BT偽客戶端啟動時,并不直接連接DHT網絡。當選中已有的"元信息"進行訪問過 程模擬時,首先讀取"元信息"中的DHT網絡入口節點列表信息,其次根據BitTorrent協議, 仿造真實的網絡鏈接請求信息向DHT網絡入口節點發起連接請求,入口節點接收到當前連接 請求后,根據DHT網絡協議在DHT網絡屮査詢可提供下載"元信息"對應文件的節點信息, 節點列表信息使用UDP數據包返回給偽客戶端。
由于DHT網絡每次只隨機選擇一部分節點信息返回給偽客戶端,偽客戶端不能通過一次 查詢獲取DHT網絡上參與文件傳輸的所有節點信息。因此,本歩驟在實施時可采用分布式系 統結構,通過部署多個偽客戶端,每個偽客戶端向DHT網絡提交多次査詢請求,進而可以獲 得參與文件傳輸的所有節點信息。
在用戶界面上點擊"DHT網絡訪問過程模擬"按鈕,系統自動調用"DHT網絡訪問過程模 擬"模塊,該模塊對數據庫中已處理過的"元信息"進行操作,總共獲取到18756個返回數據包。 (4) Peers節點列表提取與處理。
BitTorrent偽客戶端獲取到DHT網絡的返回信息后,根據BitTorrent協議對返回數據包進 行分析,得到可進行當前"元信息"對應文件下載的Peer節點列表信息,每個Peer節點信息包 含IP地址和端口號,這些節點列表信息在數據包中按協議規范進行組織。當仿真客戶端收到 DHT網絡返回信息數據包后,將數據包按照協議規范進行分解,得到節點列表信息,并對分 解后可用的節點信息進行鏈接,獲取該節點的狀態信息,包括是否可用、傳輸速率和對資 源的擁有情況。DHT網絡返回信息數據包的協議規范是BitTo1Tent協議將所有節點列表信 息存儲為6個字節的16位制信息,前四位代表IP地址,后兩位代表端口號。
當偽客戶端獲得節點列表后,根據BitTorrent協議規范,對于每個節點,使用該節點的 IP地址和端口號生成仿真握手數據包,并向該節點發出握手請求,以建立用于數據傳輸的TCP 鏈接。與節點之間的鏈接建立起來后,偽客戶端模擬BitTorrent協議中的數據請求數據包,并 向該節點發送,同時接收該節點的返回數據包,通過固定時間段的發送與接收,對接收到的 數據量進行統計、取時間平均值,可得出該TCP鏈接的傳輸速率和節點狀態信息。固定時間段的具體數值可從配置文件中讀取"數據請求時間"參數信息。
對于收集的"元信息"和受眾信息,形成了完整的受眾監控信息,但是由于在收集信息的 過程中沒有進行過濾,所以在所收集數據中包含冗余和重復信息,需要對已收集的數據進行 過濾對于重復的數據只保留一條,以標準的數據格式存入受眾數據庫,保證受眾數據庫中 數據的惟一性、 一致性和完整性。
在用戶界面上點擊"Peers節點列表提取與處理"按鈕,系統自動調用"Peers節點列表提取 與處理,,模塊,該模塊通過對己獲取的數據包進行處理,總計獲得157863個節點,實際可用 節點為67357個,其余節點為不可連接節點。在有條件的環境下,可以采用分布式部署結構, 可以獲得更多的節點信息。
權利要求
1、一種基于BitTorrent的主動式特定信息傳播監測方法,其特征在于包括下述步驟(a)通過“元信息”收集器,從系統中讀取“元信息”在網頁中的匹配關鍵字,再從系統設置信息中讀取搜索起始地址,將該地址所指定的網頁信息讀取到本地并使用文本方式打開,對文本中的內容根據已讀取的“元信息”匹配關鍵字進行單詞匹配,將該匹配位置的后續信息作為元信息的鏈接地址進行下載,同時進行5~20的線程數配置,即先將線程數配置信息設為5,開始獲取“元信息”,判斷計算機系統的CPU占用率是否達到80%,如果沒有達到,則將線程數配置信息加1,直到計算機系統的CPU占用率達到80%或者線程數配置信息達到20為止;系統對當前網頁信息進行匹配搜索,發現有鏈接標簽<a></a>,將鏈接標簽中的鏈接地址作為后續需要處理的地址信息存放到未處理隊列中,當前網頁信息處理完成后,從未處理隊列中讀取出該隊列的第一個地址重復上述的匹配處理操作,直到未處理隊列中的鏈接地址為空為止;(b)對“元信息”收集器獲取的“元信息”進行分析,根據BitTorrent協議中的規范內容,使用BitTorrent協議中的報文關鍵字對“元信息”中的信息進行匹配,獲取文件名、文件大小、文件Hash值、DHT網絡入口地址和端口號信息;(c)采用偽客戶端方法來連接DHT網絡,獲取共享特定文件的Peers節點列表信息,當BT偽客戶端啟動時,選中已有的“元信息”進行訪問過程模擬,先讀取“元信息”中的DHT網絡入口節點列表信息,再根據BitTorrent協議,按照真實的網絡鏈接請求信息向DHT網絡入口節點發起連接請求,入口節點接收到當前連接請求后,根據DHT網絡協議在DHT網絡中查詢可提供下載“元信息”對應文件的節點信息,節點列表信息使用UDP數據包返回給偽客戶端;采用分布式系統結構,通過部署多個偽客戶端,每個偽客戶端向DHT網絡提交多次查詢請求,獲得參與文件傳輸的所有節點信息;(d)BitTorrent偽客戶端獲取到DHT網絡的返回信息后,根據BitTorrent協議對返回數據包進行分析,得到當前“元信息”對應文件下載的Peer節點列表信息,這些節點列表信息在數據包中按協議規范進行組織;當仿真客戶端收到DHT網絡返回信息數據包后,將數據包按照協議規范進行分解,得到節點列表信息,并對分解后可用的節點信息進行鏈接,獲取該節點的狀態信息;當偽客戶端獲得節點列表后,根據BitTorrent協議規范,對于每個節點,使用該節點的IP地址和端口號生成仿真握手數據包,并向該節點發出握手請求,以建立用于數據傳輸的TCP鏈接;與節點之間建立鏈接,偽客戶端模擬BitTorrent協議中的數據請求數據包,并向該節點發送,同時接收該節點的返回數據包,通過固定時間段的發送與接收,對接收到的數據量進行統計、取時間平均值,得出該TCP鏈接的傳輸速率和節點狀態信息,對于收集的“元信息”和受眾信息數據中冗余和重復信息進行過濾重復的數據只保留一條,以標準的數據格式存入受眾數據庫。
全文摘要
本發明公開了一種基于BitTorrent的主動式特定信息傳播監測方法,通過“元信息”收集器,從系統中讀取“元信息”,對“元信息”收集器獲取的“元信息”進行分析,通過向偽客戶端主動發送模擬數據包來獲取受眾信息,通過DHT網絡訪問過程模擬,提取Peers節點列表并進行處理。由于采用了偽客戶端主動發送模擬數據包來獲取受眾信息,能夠盡可能多的獲得受眾信息,與現有技術相比較,本發明通過搜索和獲取互聯網中BitTorrent“元信息”,偽客戶端獲取到參與特定信息傳播的受眾信息,形成特定信息傳播受眾數據庫,為網絡安全監管部門提供了受眾信息監測與取證手段,同時為網絡安全態勢宏觀分析和預警預報提供了基礎數據和決策依據。
文檔編號H04L12/58GK101567811SQ20091002272
公開日2009年10月28日 申請日期2009年5月26日 優先權日2009年5月26日
發明者丁軍平, 蔣元成, 蔡皖東 申請人:西北工業大學