CN102082820B - 面向eMule文件共享系统的综合污染方法 - Google Patents
面向eMule文件共享系统的综合污染方法 Download PDFInfo
- Publication number
- CN102082820B CN102082820B CN 201010590707 CN201010590707A CN102082820B CN 102082820 B CN102082820 B CN 102082820B CN 201010590707 CN201010590707 CN 201010590707 CN 201010590707 A CN201010590707 A CN 201010590707A CN 102082820 B CN102082820 B CN 102082820B
- Authority
- CN
- China
- Prior art keywords
- node
- file
- client
- emule
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种面向eMule文件享系统的综合污染方法,用于解决现有的数据污染方法不能对eMule文件下载行为进行综合控制的技术问题。技术方案是将KAD关键词污染对应的资源查询过程、KAD索引污染对应的资源定位过程、数据块污染对应的数据传输过程连接起来并形成一个相互作用的闭环,在用户使用KAD网络查询时将用户的查询请求定位到虚假的资源索引和虚假的数据提供节点,并由虚假数据提供节点向用户提供虚假的数据,达到了对eMule文件共享系统的结构化和非结构化网络的数据传播进行综合控制目的。
Description
技术领域
本发明涉及一种数据污染方法,特别是一种面向eMule文件共享系统的综合污染方法。
背景技术
P2P污染是一种用于控制特定文件在P2P文件共享系统中传播的文件下载控制技术。2005年,Liang等人在其论文中“J.Liang,R.Kumar,Y.Xi,K.W.Ross,Pollution inP2P file sharing systems[C],INFOCOM 2005,pp.1174-1185vol.2”首先对当时已发现的P2P污染技术描述如下:污染者首先修改受到版权保护的文件内容,使其不可用。然后将修改过的文件在P2P网络中大量发布,这个过程被称之为“污染”。下载者在通过P2P文件共享网络下载时无法区分下载文件的真实性,若下载的是受到污染的文件,在下载完成后才能知道该文件并非其所期望的盗版文件。一方面消耗了下载者的下载时间,另一方面也降低了下载者直接获取盗版文件的概率,从而延缓了盗版文件在P2P网络中的传播。接下来几年中,在此基础上派生出了多种不同的P2P污染攻击方法。
文献2“J.Liang,N.Naoumov,K.W.Ross,The Index Poisoning Attack in P2P FileSharing Systems[C],INFOCOM 2006,pp.1-12”公开了一种索引污染的P2P污染方法,该方法向P2P文件共享系统中的节点索引列表中注入大量的虚假节点信息,降低了下载者查询索引列表后得到正常节点的概率,从而延长了下载者的下载时间。相对于其他的污染攻击方法,该方法简单易行,对攻击的硬件要求也不高。
文献3“P.Dhungel,D.Wu,B.Schonhorst,K.W.Ross,A measurement study of attackson BitTorrent leechers[C],IPTPS 2008,The 7th International workshop on Peer-To-Peersystems,2008.”公开了一种数据块污染P2P污染方法,该方法将客户端伪装成资源提供者与其他正常P2P下载节点建立连接,并提供虚假的数据块,使正常下载节点收到的数据块因无法通过完整性校验而丢弃重传,起到浪费下载者网络带宽,延缓其下载速度的目的。上述现有技术存在以下缺点:
首先,现有方法是针对BitTorrent、FastTrack、Overnet等系统,由于这些系统的实现原理和细节与eMule系统有较大的差异,因此相关污染方法不能直接照搬在eMule系统上。其次,索引污染与数据块污染都有着自身的缺陷,索引污染只是降低正常节点通过P2P文件共享系统找到正确的资源提供者的概率,随着时间的推移,节点通过不断尝试连接,最终还是能够找到正确的资源提供者,此时索引污染将失去作用;数据块污染是针对结构化P2P网络设计的,没有考虑非结构化P2P网络的污染问题。近年来,基于Kademlia的非结构化P2P网络发展迅速,许多P2P文件共享系统都引入了非结构化P2P网络,以增强其节点定位与查询能力,eMule的KAD网络就是其中的典型代表。
综上所述,现有的P2P污染方法并不适用于eMule系统。因此,需要一种专门针对eMule系统的污染方法,能够对eMule系统中的结构化和非结构化网络进行污染,达到对eMule文件下载行为进行有效综合控制的目的。
发明内容
为了克服现有的数据污染方法不能对eMule文件下载行为进行综合控制的不足,本发明提供一种面向eMule文件共享系统的综合污染方法。通过将KAD关键词污染对应的资源查询过程、KAD索引污染对应的资源定位过程、数据块污染对应的数据传输过程连接起来并形成一个相互作用的闭环,在用户使用KAD网络查询时将用户的查询请求定位到虚假的资源索引和虚假的数据提供节点,并由虚假数据提供节点向用户提供虚假的数据,以实现对eMule文件共享系统的结构化和非结构化网络的数据传播进行综合控制目的。
本发明解决其技术问题所采用的技术方案:一种面向eMule文件共享系统的综合污染方法,其特点是包括下述步骤:
步骤S101、综合污染攻击客户端的关键词污染模块在进行KAD关键词污染时,首先对要污染的文件名进行分词,得到对应的关键词,并计算出关键词的SHA1Hash校验值;
步骤S102、以这些SHA1Hash校验值为目标节点ID,关键词污染模块从自己的k-桶中筛选出若干距离目标ID最近的节点,向这些节点发送KADEMLIA REQ消息,经过在KAD网络中不断迭代查询,获得目标节点的IP地址与端口号;随后,关键词污染模块根据获得的IP地址与端口号,使用KADEMLIA_PUBLISH_REQ消息向目标节点发布虚假的关键词文件信息,即发布的文件名,文件长度,文件的SHA1校验值,三元组中文件的SHA1Hash校验值是虚假的;当正常节点通过KAD网络查询被污染文件对应的关键词时,通过多次迭代定位到之前被攻击节点发布过虚假关键词文件信息的目标节点,随后正常节点使用KADEMLIA_REQ FINDVALUE KEYWORD消息查询得到文件名、文件长度、文件的SHA1Hash校验值信息;由于文件的SHA1Hash校验值是虚假的,正常节点在后续查询文件索引字典时无法根据文件的SHA1Hash校验值定位到正确的资源提供节点上,导致查询出错,得到的资源列表包括虚假的资源信息;
步骤S103、若用户选中虚假资源信息,则进入步骤S104;
步骤S104、用户节点无法连接到资源提供节点,完成关键词污染;若用户选中的是真实的资源信息,则根据KAD网络的二级查询机制,进入文件索引字典查询阶段,即步骤S106,由索引污染模块进行污染;
步骤S105、首先根据文件的SHA1Hash校验值为目标节点ID,查找网络中的相关的目标存储节点;目标存储节点的查询过程与关键词污染中目标存储节点的查询过程相同;找到目标存储节点后,索引污染模块向这些目标存储节点发送KADEMLIA_PUBLISH_REQ消息,将虚假的拥有者IP地址,端口号,拥有者节点ID号三元组作为value值发布到目标存储节点上,其中的IP地址与端口号是部署在eMule系统内所有的综合污染客户端的IP地址与端口号;目标结点接收到该消息后,若能成功的把这条信息添加到它的文件源列表中,并发送一个KADEMLIA_PUBLISH_RES<sourceID:load>消息,其中load=1,针对该目标存储节点的文件索引污染完成;
步骤S106、用户所在的普通节点通过KAD网络查询时,首先通过关键词查询阶段获得的SHA1Hash校验值或是直接根据文件的SHA1Hash校验值找到存储文件索引信息的目标节点,随后向目标节点发送KADEMLIA_REQ FINDVALUEFINDSOURCE信息,获得资源提供节点的IP地址,端口号信息,随后按照eMule协议向这些资源提供节点发起连接;由于文件索引字典已被污染,用户得到的资源拥有者的IP地址和端口号指向eMule系统内部署着综合污染客户端的计算机;这些污染客户端会被用户当做资源提供节点,用户的eMule客户端向污染客户端发起数据传输请求,进入数据块传输阶段,由数据块污染模块进行污染,即步骤S109;
步骤S107、综合污染客户端的数据块污染模块在启动针对某一个eMule文件共享任务的数据块污染时,首先按照eMule协议的规定,使用TCP尝试并行地连接到几个服务器,在与第一个服务器经过TCP的三次握手建立起连接后,放弃对其他服务器的TCP连接;
连接建立后,服务器给综合污染客户端发送一个TCP消息,内容是分配给客户端的4字节的ID号,用以在与服务器其余的会话中标识该污染客户端;在eMule中,客户端ID号分为低ID号和高ID号;允许其它客户端自由地连接到其本机的客户端会被分配一个高ID号;高ID号的客户端在使用eMule网络不受连接限制;当一个客户端不能接收服务器的输入连接时,eMule服务器分配给该客户端一个低ID号;污染攻击客户端被配置到拥有公网IP地址的节点上,在eMule系统拥有高ID号;
随后,数据块污染模块向eMule服务器发送eMule协议中的offer files消息,将共享文件列表提交到eMule服务器进行注册,对于综合污染攻击客户端来说,共享文件列表即数据块污染模块将要污染文件的列表,数据块污染模块向服务器宣称综合污染客户端拥有这些文件,吸引其他正常节点前来下载;
步骤S108、正常下载节点通过文件共享任务的eD2k连接启动任务,使用TCP连接到eMule服务器,随后服务器分配给正常下载节点一个高ID号或低ID号,下载节点向服务器发送offer files消息,上传其共享节点列表;下载节点向服务器发送getsources消息以发出资源请求查询;eMule服务器在收到查询请求后,通过server status消息和found suorces消息向下载节点返回当前服务器中记录的拥有该资源的节点的列表,随后正常下载节点根据节点列表中的资源的IP地址和端口号向这些资源提供节点发起连接请求;由于综合污染攻击客户端也作为资源提供节点注册到eMule服务器上,因此正常下载节点也会向综合污染客户端发起连接请求,即步骤S109,数据块污染模块接受连接请求并开始数据传输;另一种是通过KAD网络建立连接,即步骤S106,用户通过KAD网络查询文件的关键词,由于KAD网络的文件索引字典受到索引污染模块的污染,导致用户通过KAD网络查询到的资源提供节点指向综合污染客户端;根据获得的综合污染客户端的IP地址与端口号,正常下载节点向综合污染客户端发起连接请求并开始数据传输,进入步骤S109;
步骤S109、正常下载节点向污染客户端发出TCP连接请求,随后发送hello消息,污染客户端收到hello消息后,向正常下载节点返回hello answer消息;握手是对称的,双方都相互发送相同的信息给对方,信息内容包括身份认证、版本和容量;随后正常下载节点向污染客户端依次发出消息file request、requested file ID、sources request以请求文件,在收到污染客户端与之相对应的应答消息file request answer、file status、sources answers之后,双方开始数据传输;
在eMule系统中,文件被分割成块以TCP方式进行传输,每个文件被分为若干个大小为9.28MB的文件块;使用MD4算法对每个文件块进行Hash计算,得到的128位Hash值被称为每个文件块的块Hash;在数据传输时,每个9.28MB的文件块又被分成53个片,每个片的大小为180KB;上传节点在提供数据上传时,还提供下载者当前正在下载的数据片对应的文件块的块Hash;当下载者将该文件块内所有的53个数据片全部得到后,使用MD4算法重新计算该文件块的Hash值并与从上传者处得到的块Hash相比较,若一致则认为数据下载正确,否则说明数据传输过程中出现错误;
步骤S110、由于资源提供者是数据块污染模块,向正常下载节点发送的数据全部是虚假的,数据内容随机选择全部置为1或0,导致下载者获得的数据无法通过Hash值验证,从而迫使下载者丢弃错误数据块。
本发明的有益效果是:由于将KAD关键词污染对应的资源查询过程、KAD索引污染对应的资源定位过程、数据块污染对应的数据传输过程连接起来并形成一个相互作用的闭环,在用户使用KAD网络查询时将用户的查询请求定位到虚假的资源索引和虚假的数据提供节点,并由虚假数据提供节点向用户提供虚假的数据,达到了对eMule文件共享系统的结构化和非结构化网络的数据传播进行综合控制目的。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
附图是本发明面向eMule文件共享系统的综合污染方法的流程图。
具体实施方式
本发明所涉及的基本概念解释如下:
1.eD2k网络。
eD2k网络的全称叫eDonkey2000 network,是一种分布式的、非结构化的、基于服务器的P2P文件共享网络。它通常用于共享电影视频文件、音乐专辑和计算机程序软件等。和大多数文件共享网络一样,它是分布式的,文件不存储在任何中枢服务器之上,而是通过用户之间进行相互交换。服务器的作用只是帮助下载节点查找到能够提供资源的其他节点。
2.KAD网络。
KAD是Kademlia的简称,是一种分布式的P2P通信协议,Kademlia网络节点之间使用UDP进行通讯。参与通信的所有节点形成一个结构化的虚拟网。这些节点通过节点ID号进行身份标识和值定位,值通常是文件的Hash值或者关键词。节点ID号与文件Hash值直接对应,它所表示的那个节点存储着能够获取文件和资源的相关位置信息。当用户在网络中搜索某些值,即搜索存储文件Hash值或关键词的节点的时候,Kademlia分步在网络中开始搜索。每一步都会找到一些节点,这些节点的ID号与值逐步接近,当有节点直接返回搜索的值或者再也找不到与值更为接近的节点ID时,搜素过程便会停止。KAD网络是根据Kademlia协议组建起来的网络。KAD网络可以使用户不需要连接服务器即可寻找到资源提供者,其查询效率高于非结构化P2P网络。
3.eD2k链接。
eD2k链接是一种超链接,用于指示在eD2k网络上存储的文件。eMule客户端通过加载eD2k链接来启动某一文件共享任务。
典型的eD2k文件链接只包含必要的三种信息:文件名、文件大小、文件的eD2k
Hash,其格式如下:
eD2k://|file|<文件名>|<文件大小>|<文件Hash>|/
以下是大小为2868871字节的官方eMule v0.49c zip压缩文件包的eD2k链接例子:
ed2k://|file|eMule0.49c.zip|2868871|0F88EEFA9D8AD3F43DABAC9982D2450C|/eD2k链接也可以包含一个或多个来源的IP地址与端口,其格式如下:ed2k://|file|<文件名>|<文件大小>|<文件Hash>|/|sources,<IP地址:端口>|/
在eMule中,eD2k链接也可以包含根Hash。根Hash是一种可靠的Hash值,用于高级智能损坏处理(AICH),在传输的文件有损坏或错误时进行纠正恢复。包含根根Hash的eD2k链接格式如下:
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|h=<根Hash>|/
完整的Hash set可以确保文件的正确,包含Hash set的eD2k链接格式如下:
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|p=<Hash Set>|/
4.eD2k Hash。
eD2k Hash算法是一种MD4算法的变体。文件数据被分成若干个9500KB,即9.28MB的数据块,文件的最后一个数据块小于等于9.28MB。每个数据块都要计算128-bit的MD4Hash值。将这些数据块的MD4Hash值按顺序联合起来,并使用MD4计算其Hash值,可得到eD2k Hash。通过eD2k Hash来校验整个文件的正确性。
5.污染客户端。
污染客户端是实施污染的主体。在eMule系统中,污染客户端遵循eMule系统的协议格式,将自己伪装成正常节点加入eD2k或KAD网络,并参与文件共享任务,通过向其他正常下载节点或KAD网络发送虚假数据,实现对文件下载的控制。
本发明的核心技术方案为:将数据块污染、KAD索引污染、KAD关键词污染结合起来,形成一个统一的综合污染系统,使之不仅能够同时适用于对eMule系统中eD2k网络和KAD网络进行污染,而且还可将两种网络的污染效果联系到一起,以提高综合污染的效果。
为了实现上述发明目的,本发明的主要内容包括:
A.面向eMule系统中eD2k网络的数据块污染。
污染客户端在获得某一文件共享任务的eD2k链接后,与eMule服务器建立连接,将自己注册到服务器中。随后根据eD2k连接的内容,向服务器宣称自己提供eD2k连接对应的文件。当正常的下载节点在服务器上注册并下载eD2k连接对应文件的源列表时,污染客户端会作为源被返回给下载节点。随后,下载节点将建立一个到污染客户端的TCP连接来数据传输。在数据传输过程中,污染客户端提供给下载节点的全部是虚假数据,导致下载节点下载到的数据无法通过完整性验证,从而起到浪费下载节点网络带宽的作用。此外,经过试验发现,污染客户端以高速向下载节点发送虚假数据时,下载节点的错误检测会出现漏检现象,错误的数据被下载节点保存下来,从而影响到下载完成后所得到文件的正确性。
B.面向eMule系统中KAD网络的关键词污染。
在eMule系统中,用户在查询资源时可以通过对KAD网络进行关键词搜索,获得与关键词对应的文件的eD2k链接,进而启动文件共享任务。关键词污染针对资源查询过程,污染整个KAD网络中的关键词字典,使用户搜索关键词得到的文件列表中包含大量的虚假文件信息,用户在选择文件副本进行下载时,受到虚假文件信息的干扰,难以定位到正确的资源提供者。通过降低用户定位到正确资源的概率,实现对用户通过KAD网络查询可用资源进行干扰的目的。
C.面向eMule系统中KAD网络的索引污染。
关键词污染可以使用户在选择文件副本时受到虚假文件信息的迷惑,但用户依然有可能选择到正确的文件副本。在这种情况下,关键词污染便失去作用。在KAD网络中对资源提供节点的查询分两步进行,首先查询关键词字典获得关键词与文件的对应关系,再查询文件索引字典获得文件与资源提供节点的对应关系。针对文件索引字典的查询,KAD索引污染通过在目标存储节点中存储大量虚假的文件索引信息,对KAD网络中的文件索引字典进行污染,使得用户在下载文件的过程中连接到大量的虚假资源提供节点,从而使用户难以同真实的资源提供节点建立有效连接。目标存储节点中存储的虚假文件索引信息比例越高,干扰用户建立有效连接的效果就越好。
D.数据块污染、索引污染与关键词污染相结合的综合污染。
由于当前大多数eMule客户端都同时支持eD2k和KAD网络,无论面向eD2k网络的数据块污染,还是面向KAD网络的关键词污染和索引污染,都只是针对其中的一种网络进行污染。本发明将面向eD2k网络和面向KAD网络的污染方法结合起来,实现对eMule文件共享系统的综合污染。由于KAD网络只负责查询资源提供者的节点信息,在找到资源提供者后,依旧需要按照eMule协议规定的数据传输方式进行通信。综合污染根据这个特征,使污染客户端进行KAD关键词污染时,在关键词字典中加入污染客户端正在进行的数据块污染任务的关键词信息;污染客户端在进行KAD索引污染时,向文件索引字典中加入指向污染客户端的地址信息。用户在通过KAD网络查询欲下载文件的资源提供节点时,受到关键词污染和索引污染的影响,加入正在进行中的数据块污染任务中,与污染客户端建立起连接,受到数据块污染,从而达到综合利用关键词污染、索引污染和数据块污染的目的,提高了对eMule系统的污染效果。
综合污染同时作用与eD2k和KAD网络,综合污染攻击器由关键词污染模块,索引污染模块和数据块污染模块组成。
A.对KAD网络的综合污染。
在KAD网络中,所有信息均以<key,value>的Hash表条目形式分散地存储在各个节点上,只要知道了信息索引的key,便可通过Kademlia协议来查询其所对应的value信息。在eMule系统中,KAD主要充当文件信息检索协议的角色。eMule的KAD网络在任意时刻存储并维护着两个分布式Hash表,一个被称为为关键词字典,另一个被称为文件索引字典。关键词字典用于根据给出的关键词查询其所对应的文件名称及相关文件信息,其中key的值等于所给出的关键词字符串的160比特SHA1Hash值,而其对应的value为一个列表,该列表给出了文件名称中拥有对应关键词的文件信息,这些信息用一个3元组条目表示:(文件名,文件长度,文件的SHA1Hash校验值),例如对于一个文件“frozen_throne.iso”,对其进行分词得到“frozen”、“throne”这两个关键词并通过KAD网络进行查询,KAD将有可能分别返回若干个不同的文件列表,这若干个列表的共同之处则在于它们均包含着一个文件名为“frozen_throne.iso”的信息条目,通过该条目,用户可以获得对应iso文件的名称、长度及其160比特的SHA1Hash校验值。文件索引字典用于根据给出的文件信息来查询文件的拥有者,其中key的值等于所需下载文件的SHA1Hash校验值;对应的value值给出了当前所有拥有该文件的节点的网络信息,其中的列表条目也用一个3元组表示:(拥有者IP地址,端口号,拥有者节点ID号),根据这些信息,eMule客户端即可定位到提供资源的提供者。KAD网络实际上所起的作用就相当于上述两个字典,首先通过查询关键词字典获得关键词对应的文件SHA1Hash校验值,然后再根据获得的SHA1Hash校验值查询文件索引字典,得到资源拥有者的IP地址和端口号等信息,这种查询方式被称为“二级查询机制”。
关键词字典的key、文件索引字典的key、节点ID都是160bit,因此在KAD网络中,存储某一个<key,value>条目只需要简单地存放在节点ID值恰好等于条目中key值的那个节点处,查找<key,value>条目相当于查找ID等于Key值的节点。由于在实际的KAD网络当中,并不能保证在任一时刻目标节点N均一定存在或者在线,因此任一<key,value>条目,依据其key的具体取值,该条目将被复制并存放在节点ID距离key值最近的k个节点当中。在KAD网络中,每一个节点均维护了160个list,其中的每个list均被称之为一个k-桶。在第i个list中,记录了当前节点已知的与自身距离为2^i~2^(i+1)的节点的网络信息,包括拥有者IP地址、下载侦听端口、拥有者节点ID号,每一个k-桶中最多存放k个节点信息。
已知某节点ID,查找获得当前KAD网络中与之距离最短的k个节点所对应的网络信息的过程,即为KAD网络中的一次节点查询过程。查询过程以迭代的方式进行,通过不断逼近得到距离最短的节点。具体查询过程可参阅文献(P.Maymounkov,Kademlia:A Peer-to-peer Information System Based on the XOR Metric[C],IPTPS 2002)。
综合污染攻击客户端的关键词污染模块在进行KAD关键词污染时,在步骤S101,首先对要污染的文件名进行分词,得到对应的关键词,并计算出关键词的SHA1Hash校验值。随后,在步骤S102,以这些SHA1Hash校验值为目标节点ID,关键词污染模块从自己的k-桶中筛选出若干距离目标ID最近的节点,向这些节点发送KADEMLIA_REQ消息,经过在KAD网络中不断迭代查询,获得目标节点的IP地址与端口号。随后,关键词污染模块根据获得的IP地址与端口号,使用KADEMLIA_PUBLISH_REQ消息向目标节点发布虚假的关键词文件信息,即发布的(文件名,文件长度,文件的SHA1校验值)三元组中文件的SHA1Hash校验值是虚假的。于是当正常节点通过KAD网络查询被污染文件对应的关键词时,通过多次迭代定位到之前被攻击节点发布过虚假关键词文件信息的目标节点,随后正常节点使用KADEMLIA_REQ FINDVALUE KEYWORD消息查询得到文件名、文件长度、文件的SHA1Hash校验值等信息。由于文件的SHA1Hash校验值是虚假的,正常节点在后续查询文件索引字典时无法根据文件的SHA1Hash校验值定位到正确的资源提供节点上,导致查询出错。因此,用户在KAD网络中通过搜索特定关键词寻找可用的资源列表时,得到的资源列表会包括虚假的资源信息。在步骤S103,若用户选中虚假资源信息,则进入步骤S104,用户节点无法连接到资源提供节点,完成关键词污染。若用户选中的是真实的资源信息,则根据KAD网络的二级查询机制,进入文件索引字典查询阶段,即步骤S106,该阶段由索引污染模块进行污染。
综合污染攻击客户端的索引污染模块在进行KAD文件索引污染时,在步骤S105,首先根据文件的SHA1Hash校验值为目标节点ID,查找网络中的相关的目标存储节点。目标存储节点的查询过程与关键词污染中目标存储节点的查询过程相同。找到目标存储节点后,索引污染模块向这些目标存储节点发送KADEMLIA_PUBLISH_REQ消息,将虚假的(拥有者IP地址,端口号,拥有者节点ID号)三元组作为value值发布到目标存储节点上,其中的IP地址与端口号是部署在eMule系统内所有的综合污染客户端的IP地址与端口号。目标结点接收到该消息后,若能成功的把这条信息添加到它的文件源列表中,并发送一个KADEMLIA_PUBLISH_RES<sourceID:load>消息,其中load=1,针对该目标存储节点的文件索引污染完成。在步骤S106,用户所在的普通节点通过KAD网络查询时,首先通过关键词查询阶段获得的SHA1Hash校验值或是直接根据文件的SHA1Hash校验值找到存储文件索引信息的目标节点,随后向目标节点发送KADEMLIA_REQ FINDVALUE FINDSOURCE信息,获得资源提供节点的IP地址,端口号等信息,随后按照eMule协议向这些资源提供节点发起连接。由于文件索引字典已被污染,用户得到的资源拥有者的IP地址和端口号指向eMule系统内部署着综合污染客户端的计算机。这些污染客户端会被用户当做资源提供节点,用户的eMule客户端向污染客户端发起数据传输请求,进入数据块传输阶段,该阶段由数据块污染模块进行污染,即步骤S109。
B.对eD2k网络的综合污染。
综合污染客户端的数据块污染模块在启动针对某一个eMule文件共享任务的数据块污染时,在步骤S107,首先按照eMule协议的规定,使用TCP尝试并行地连接到几个服务器,在与第一个服务器经过TCP的三次握手建立起连接后,放弃对其他服务器的TCP连接。
连接建立后,服务器给综合污染客户端发送一个TCP消息,内容是分配给客户端的4字节的ID号,用以在与服务器其余的会话中标识该污染客户端。在eMule中,客户端ID号分为低ID号和高ID号。允许其它客户端自由地连接到其本机的客户端会被分配一个高ID号。高ID号的客户端在使用eMule网络不受连接限制。当一个客户端不能接收服务器的输入连接时,eMule服务器分配给该客户端一个低ID号,例如位于内网中的eMule客户端的ID号都是低ID号。由于低ID号客户端与其他客户端之间建立连接需要考虑NAT转换,为了加强攻击客户端与其他节点的连通性,污染攻击客户端被配置到拥有公网IP地址的节点上,在eMule系统拥有高ID号。
随后,数据块污染模块向eMule服务器发送eMule协议中的offer files消息,将共享文件列表提交到eMule服务器进行注册,对于综合污染攻击客户端来说,共享文件列表即数据块污染模块将要污染文件的列表,数据块污染模块向服务器宣称综合污染客户端拥有这些文件,吸引其他正常节点前来下载。
正常下载节点同数据块污染模块建立连接的方式有两种。一种是通过eD2k网络建立连接,即步骤S108,正常下载节点通过文件共享任务的eD2k连接启动任务,使用TCP连接到eMule服务器,随后服务器分配给正常下载节点一个高ID号或低ID号,下载节点向服务器发送offer files消息,上传其共享节点列表。下载节点向服务器发送get sources消息以发出资源请求查询。eMule服务器在收到查询请求后,通过serverstatus消息和found suorces消息向下载节点返回当前服务器中记录的拥有该资源的节点的列表,随后正常下载节点根据节点列表中的资源的IP地址和端口号向这些资源提供节点发起连接请求。由于综合污染攻击客户端也作为资源提供节点注册到eMule服务器上,因此正常下载节点也会向综合污染客户端发起连接请求,即步骤S109,数据块污染模块接受连接请求并开始数据传输。另一种是通过KAD网络建立连接,即步骤S106,用户通过KAD网络查询文件的关键词,由于KAD网络的文件索引字典受到索引污染模块的污染,导致用户通过KAD网络查询到的资源提供节点指向综合污染客户端。根据获得的综合污染客户端的IP地址与端口号,正常下载节点向综合污染客户端发起连接请求并开始数据传输,进入步骤S109。
在步骤S109,正常下载节点向污染客户端发出TCP连接请求,随后发送hello消息,污染客户端收到hello消息后,向正常下载节点返回hello answer消息。握手是对称的,双方都相互发送相同的信息给对方,信息内容包括身份认证、版本和容量等。随后正常下载节点向污染客户端依次发出消息file request、requested file ID、sourcesrequest以请求文件,在收到污染客户端与之相对应的应答消息file request answer、filestatus、sources answers之后,双方开始数据传输。
在eMule系统中,文件被分割成块以TCP方式进行传输,每个文件被分为若干个大小为9.28MB的文件块。为了检测文件传输的正确性,使用MD4算法对每个文件块进行Hash计算,得到的128位Hash值被称为每个文件块的块Hash。在数据传输时,每个9.28MB的文件块又被分成53个片,每个片的大小为180KB。这些片是文件传输的最小单位。上传节点在提供数据上传时,还提供下载者当前正在下载的数据片对应的文件块的块Hash。当下载者将该文件块内所有的53个数据片全部得到后,使用MD4算法重新计算该文件块的Hash值并与从上传者处得到的块Hash相比较,若一致则认为数据下载正确,否则说明数据传输过程中出现错误。在步骤S110,由于资源提供者是数据块污染模块,向正常下载节点发送的数据全部是虚假的,数据内容可以随机选择也可全部置为1或0,导致下载者获得的数据无法通过Hash值验证,从而迫使下载者丢弃错误数据块,以达到浪费下载者下载带宽、延缓正常下载节点的下载速度甚至破坏文件鲁棒性使文件共享任务停止的目的。在eMule中,用于传输文件块的数据包的大小可以是5000Bit到15000Bit之间,因此从理论上讲,最少只需要发送5000Bit的虚假数据即可造成9.28MB的文件块被丢弃,从而起到浪费下载者带宽,延长其下载时间的作用。此外,从0.44a版开始,eMule引入了一种被称为高级智能损坏处理(AICH,Advanced Intelligent Corruption Handling)的错误处理机制,可以在发现错误时只是重传出错的文件片,而不用重传整个9.28MB的文件块。但是经测试发现,当数据块污染模块向普通下载节点发送虚假数据时,该机制存在一定的漏检现象,无法处理所有的虚假数据块,导致错误数据被下载者保存,在下载完成后下载的文件无法通过整个文件的正确性校验,或是由于关键部分的数据错误导致文件无法使用。
由于综合污染客户端也是eMule系统中的节点,KAD网络和eD2k网络都是由综合污染客户端与正常eMule节点构成的。为了不受到内网穿透问题的影响,综合污染客户端需要部署在具有公网IP地址的计算机上,使其在eMule网络中拥有高ID。
Claims (1)
1.一种面向eMule盗版文件的文件共享系统的综合污染方法,其特征在于包括下述步骤:
步骤S101、综合污染攻击客户端的关键词污染模块在进行KAD关键词污染时,首先对要污染的文件名进行分词,得到对应的关键词,并计算出关键词的SHA1Hash校验值;
步骤S102、以这些SHA1Hash校验值为目标节点ID,关键词污染模块从自己的k-桶中筛选出若干距离目标节点ID最近的节点,向这些节点发送KADEMLIA_REQ消息,经过在KAD网络中不断迭代查询,获得目标节点的IP地址与端口号;随后,关键词污染模块根据获得的IP地址与端口号,使用KADEMLIA_PUBLISH_REQ消息向目标节点发布虚假的关键词文件信息,即发布的文件名,文件长度,文件的SHA1Hash校验值的三元组中文件的SHA1Hash校验值是虚假的;当正常节点通过KAD网络查询被污染文件对应的关键词时,通过多次迭代定位到之前被攻击节点发布过虚假关键词文件信息的目标节点,随后正常节点使用KADEMLIA_REQ FINDVALUEKEYWORD消息查询得到文件名、文件长度、文件的SHA1Hash校验值信息;由于文件的SHA1Hash校验值是虚假的,正常节点在后续查询文件索引字典时无法根据文件的SHA1Hash校验值定位到正确的资源提供节点上,导致查询出错,得到的资源列表包括虚假的资源信息;
步骤S103、若用户选中虚假资源信息,则进入步骤S104;若用户选中的是真实的资源信息,则根据KAD网络的二级查询机制,进入文件索引字典查询阶段,即步骤S105,由索引污染模块进行污染;
步骤S104、用户节点无法连接到资源提供节点,完成关键词污染;
步骤S105、综合污染攻击客户端的索引污染模块首先以文件的SHA1Hash校验值为目标节点ID,查找网络中的相关的目标存储节点;目标存储节点的查询过程与关键词污染中目标节点的查询过程相同;找到目标存储节点后,索引污染模块向这些目标存储节点发送KADEMLIA_PUBLISH_REQ消息,将虚假的拥有者IP地址,端口号,拥有者节点ID号三元组作为value值发布到目标存储节点上,其中的IP地址与端口号是部署在eMule系统内所有的综合污染客户端的IP地址与端口号;目标存储节点接收到该消息后,若能成功的把这条信息添加到它的文件源列表中,并发送一个KADEMLIA_PUBLISH_RES<sourceID:load>消息,其中load=1,则针对该目标存储节点的文件索引污染完成;
步骤S106、用户所在的普通节点通过KAD网络查询时,首先通过关键词查询阶段获得的SHAl Hash校验值或是直接根据文件的SHAl Hash校验值找到存储文件索引信息的目标存储节点,随后向目标存储节点发送KADEMLIA_REQ FINDVALUEFINDSOURCE信息,获得资源提供节点的IP地址,端口号信息,随后按照eMule协议向这些资源提供节点发起连接;由于文件索引字典已被污染,用户得到的资源拥有者的IP地址和端口号指向eMule系统内部署着综合污染客户端的计算机;这些污染客户端会被用户当做资源提供节点,用户的eMule客户端向污染客户端发起数据传输请求,进入数据块传输阶段,由数据块污染模块进行污染,即步骤S107;
步骤S107、综合污染客户端的数据块污染模块在启动针对某一个eMule文件共享任务的数据块污染时,首先按照eMule协议的规定,使用TCP尝试并行地连接到几个服务器,在与第一个服务器经过TCP的三次握手建立起连接后,放弃对其他服务器的TCP连接;
连接建立后,服务器给综合污染客户端发送一个TCP消息,内容是分配给客户端的4字节的ID号,用以在与服务器其余的会话中标识该综合污染客户端;在eMule中,客户端ID号分为低ID号和高ID号;允许其它客户端自由地连接到其本机的客户端会被分配一个高ID号;高ID号的客户端在使用eMule网络不受连接限制;当一个客户端不能接收服务器的输入连接时,eMule服务器分配给该客户端一个低ID号;综合污染客户端被配置到拥有公网IP地址的节点上,在eMule系统拥有高ID号;
随后,数据块污染模块向服务器发送eMule协议中的offer files消息,将共享文件列表提交到服务器进行注册,对于综合污染客户端来说,共享文件列表即数据块污染模块将要污染文件的列表,数据块污染模块向服务器宣称综合污染客户端拥有这些文件,吸引其他正常节点前来下载;
步骤S108、正常下载节点通过文件共享任务的eD2k连接启动任务,使用TCP连接到服务器,随后服务器分配给正常下载节点一个高ID号或低ID号,下载节点向服务器发送offer files消息,上传其共享节点列表;下载节点向服务器发送get sources消息以发出资源请求查询;服务器在收到查询请求后,通过server status消息和foundsuorces消息向正常下载节点返回当前服务器中记录的拥有该资源的节点的列表,随后正常下载节点根据节点列表中的资源的IP地址和端口号向这些资源提供节点发起连接请求;由于综合污染客户端也作为资源提供节点注册到eMule服务器上,因此正常下载节点也会向综合污染客户端发起连接请求,数据块污染模块接受连接请求并开始数据传输,进入步骤S109;
步骤S109、正常下载节点同数据块污染模块建立连接的方式有两种:一种是通过eD2k网络查询服务器获得资源提供者的地址信息来建立连接,即步骤S108;另一种是通过KAD网络的二级查询机制获得资源提供者的地址信息来建立连接,即步骤S106;连接建立后进入数据传输阶段,正常下载节点向污染客户端发出TCP连接请求,随后发送hello消息,综合污染客户端收到hello消息后,向正常下载节点返回helloanswer消息;握手是对称的,双方都相互发送相同的信息给对方,信息内容包括身份认证、版本和容量;随后正常下载节点向综合污染客户端依次发出消息file request、requested file ID、sources request以请求文件,在收到综合污染客户端与之相对应的应答消息file request answer、file status、sources answers之后,双方开始数据传输;
在eMule系统中,文件被分割成块以TCP方式进行传输,每个文件被分为若干个大小为9.28MB的文件块;使用MD4算法对每个文件块进行Hash计算,得到的128位Hash值被称为每个文件块的块Hash;在数据传输时,每个9.28MB的文件块又被分成53个片,每个片的大小为180KB;上传节点在提供数据上传时,还提供下载者当前正在下载的数据片对应的文件块的块Hash;当下载者将该文件块内所有的53个数据片全部得到后,使用MD4算法重新计算该文件块的Hash值并与从上传者处得到的块Hash相比较,若一致则认为数据下载正确,否则说明数据传输过程中出现错误;
步骤S110、由于资源提供者是数据块污染模块,向正常下载节点发送的数据全部是虚假的,数据内容随机选择全部置为1或0,导致下载者获得的数据无法通过Hash值验证,从而迫使下载者丢弃错误数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010590707 CN102082820B (zh) | 2010-12-14 | 2010-12-14 | 面向eMule文件共享系统的综合污染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010590707 CN102082820B (zh) | 2010-12-14 | 2010-12-14 | 面向eMule文件共享系统的综合污染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102082820A CN102082820A (zh) | 2011-06-01 |
CN102082820B true CN102082820B (zh) | 2013-08-14 |
Family
ID=44088570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010590707 Expired - Fee Related CN102082820B (zh) | 2010-12-14 | 2010-12-14 | 面向eMule文件共享系统的综合污染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102082820B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164341B (zh) * | 2012-07-04 | 2016-08-03 | 北京安天电子设备有限公司 | 快速擦除大容量存储设备中文件的方法及系统 |
CN103167029B (zh) * | 2013-03-06 | 2016-08-03 | 中国科学院计算技术研究所 | 一种eMule网络上特定资源的发现方法和装置 |
CN103258052B (zh) * | 2013-05-28 | 2016-03-30 | 中国科学院计算技术研究所 | 一种eMule网络上关联资源的发现方法 |
CN103428276B (zh) * | 2013-07-30 | 2016-09-14 | 中国联合网络通信集团有限公司 | 下载方法及装置 |
CN103605708B (zh) * | 2013-11-11 | 2017-12-08 | 中国科学院计算技术研究所 | Kad网络中由关键词哈希值推测关键词的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101577626A (zh) * | 2009-06-05 | 2009-11-11 | 西北工业大学 | 基于eMule的主动式特定信息传播监测方法 |
CN101753572A (zh) * | 2009-12-23 | 2010-06-23 | 西北工业大学 | 基于抗黑名单机制的BitTorrent文件污染方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172824A1 (en) * | 2007-12-28 | 2009-07-02 | Marcovision Corporation | Corruption of swarm downloads in a decentralized network employing advanced intelligent corruption handling |
-
2010
- 2010-12-14 CN CN 201010590707 patent/CN102082820B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101577626A (zh) * | 2009-06-05 | 2009-11-11 | 西北工业大学 | 基于eMule的主动式特定信息传播监测方法 |
CN101753572A (zh) * | 2009-12-23 | 2010-06-23 | 西北工业大学 | 基于抗黑名单机制的BitTorrent文件污染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102082820A (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dabek et al. | Towards a common API for structured peer-to-peer overlays | |
Pucha et al. | Exploiting Similarity for Multi-Source Downloads Using File Handprints. | |
CN101409706B (zh) | 一种边缘网络中的数据分发方法、数据分发系统及相关设备 | |
CN102082820B (zh) | 面向eMule文件共享系统的综合污染方法 | |
Yang et al. | Performance of full text search in structured and unstructured peer-to-peer systems | |
Sung et al. | A survey of data management in peer-to-peer systems | |
Cuenca-Acuna et al. | Planetp: Using gossiping and random replication to support reliable peer-to-peer content search and retrieval | |
Czirkos et al. | Solution for the broadcasting in the Kademlia peer-to-peer overlay | |
Steiner et al. | Evaluating and improving the content access in KAD | |
Bieri | An overview into the InterPlanetary File System (IPFS): use cases, advantages, and drawbacks | |
Chander et al. | NEVRLATE: scalable resource discovery | |
Blanco et al. | A survey of data management in peer-to-peer systems | |
Henderson | Observations on game server discovery mechanisms | |
Fraigniaud et al. | Combining the use of clustering and scale-free nature of user exchanges into a simple and efficient p2p system | |
Berkes | Decentralized peer-to-peer network architecture: Gnutella and freenet | |
Awerbuch et al. | Robust distributed name service | |
Johnsen et al. | Peer-to-peer networking with BitTorrent | |
Furness et al. | Considering complex search techniques in DHTs under churn | |
CN101741844A (zh) | 一种基于中心索引的p2p文件共享网络的对等节点发现方法 | |
Lee et al. | Advanced node insertion attack with availability falsification in Kademlia-based P2P networks | |
DeFigueiredo et al. | Analysis of peer-to-peer network security using gnutella | |
Zeinalipour-Yazti | Information retrieval in peer-to-peer systems | |
Schäffner | Data Management in Distributed Systems | |
Vithoft et al. | SP2MS: a MANET-based P2P service | |
Seo et al. | The algorithm of sharing incomplete data in decentralized p2p |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130814 Termination date: 20141214 |
|
EXPY | Termination of patent right or utility model |