CN104010003B - 用于快速提升Sybil节点重要性的渗透方法 - Google Patents

用于快速提升Sybil节点重要性的渗透方法 Download PDF

Info

Publication number
CN104010003B
CN104010003B CN201410271658.6A CN201410271658A CN104010003B CN 104010003 B CN104010003 B CN 104010003B CN 201410271658 A CN201410271658 A CN 201410271658A CN 104010003 B CN104010003 B CN 104010003B
Authority
CN
China
Prior art keywords
node
nodeid
activenodes
sybil
live
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.)
Active
Application number
CN201410271658.6A
Other languages
English (en)
Other versions
CN104010003A (zh
Inventor
刘波
王怀民
王天佐
鲁强
肖哲锋
马晓龙
张天
于洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201410271658.6A priority Critical patent/CN104010003B/zh
Publication of CN104010003A publication Critical patent/CN104010003A/zh
Application granted granted Critical
Publication of CN104010003B publication Critical patent/CN104010003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种用于快速提升Sybil节点重要性的渗透方法,目的是提供一种快速提升Sybil节点在Kademlia网络中的入度和Sybil节点重要性的方法。技术方案是根据距离远近将被渗透节点分为多个编组,根据活跃程度对编组内节点进行排序,实现活跃节点优先和远距离节点优先;成为高活跃度节点的邻居,Sybil节点借助该高活跃度节点让更多其它节点访问到它,从而获得提高入度的更多机会;成为远距离节点的邻居,Sybil节点更频繁地被该远距离节点推荐给其它节点,从而获得提高入度的更多机会。整个渗透方法每隔一个渗透周期重新实施一次。采用本发明可以大大提升Sybil节点的入度,快速提高Sybil节点的重要性,且有效克服Kademlia网络动态性对Sybil节点重要性的影响。

Description

用于快速提升Sybil节点重要性的渗透方法
技术领域
本发明涉及Sybil节点的一种渗透方法,是一种快速提升Sybil节点在Kademlia网络中重要性的方法。
背景技术
Sybil节点原指具有多重身份的单个实体节点,目前通常将网络中的虚假节点都称为Sybil节点。对于Kademlia网络中的Sybil节点,其重要性主要体现为能够成为多少节点的邻居节点,即该Sybil节点的入度大小。快速提高Sybil节点的重要性,有助于利用Sybil节点更多、更高效地获知网络中大量节点的活动情况,从而为快速发现和遏制网络中的恶意活动提供技术支撑。
Kademlia协议是一种典型的DHT(Distributed Hash Table,分布哈希表)协议,广泛用于构建大规模、纯分布式P2P(Peer to Peer)网络,如电驴、BitTorrent等。Kademlia给每个结点分配一个唯一、随机的标识,即nodeID,为每个对象分配一个类似的标识,即objectID(又称为key)。这些ID通常使用SHA-1这种单项散列函数来生成,ID之间的距离采用异或运算来度量。
在Kademlia网络中,每个对象都存储在nodeID最接近其objectID的K个节点上。K一般取值为20。
每个Kademlia节点的路由表由L(L等于节点标识的比特位数)个链表组成,每个链表称为一个“K-bucket”,用于记录网络中到自己的异或距离在区间[2i,2i+1)(i为K-bucket的序号,0≤i<L)内的邻居节点的信息,每条信息以三元组<IP地址,UDP端口号,nodeID>形式表示和存储。Kademlia协议规定,K-bucket长度以K为上限。每当Kademlia节点收到来自其他节点的消息,它就根据该消息发送节点到自己的异或距离以及消息中的<IP地址,UDP端口号,nodeID>信息来更新K-bucket中的记录,这称为捎带确认(piggybacking)。L个K-bucket组成一个Kademlia节点的路由表,因此路由表也称“K-buckets”。一个路由表中的L个K-bucket通过连续的序号i区分。
Kademlia协议由四个RPC(Remote Process Call,远程过程调用,是一种命令)组成,其名称分别是PING,STORE,FIND_NODE,FIND_VALUE,它们的工作如下所示:
PING:用来探测一个结点是否在线;
STORE:指示一个结点存储一个<key,value>对,以便于将来的数据获取。key为对象散列值,即objectID,value为真正的数据对象(或其索引);
FIND_NODE:以ID为参数,FIND_NODE RPC的接收者以<IP地址,UDP端口号,nodeID>的形式返回他所知的离目标ID最近的K个节点;
FIND_VALUE:以key为参数,寻找key对应的value。
P2P网络爬虫是指用于获取P2P网络中各个节点信息及其拓扑结构的软件***。这种软件***通过迭代地向P2P网络中的已知节点发送特定消息,获得新的节点;再重复向新的节点发送特定消息,就可以获得整个网络的拓扑结构和各个节点信息。P2P网络爬虫能够用于获取Kademlia网络的节点信息和拓扑结构。
目前尚未发现有针对P2P网络、旨在提高Sybil节点重要性的Sybil节点渗透方法的其他公开研究成果。
发明内容
本发明要解决的技术问题在于:针对目前Sybil节点难以快速、充分地渗透到Kademlia网络中、尽可能多地进入其他节点路由表,进而产生较大重要性的问题,提出一种使Sybil节点高效渗透进入Kademlia网络的方法。该方法能够快速提升Sybil节点在Kademlia网络中的入度,从而快速提升Sybil节点的重要性。
为解决上述技术问题,本发明的技术方案如下:
为了使Sybil节点能够在提升重要性的过程中克服Kademlia动态性带来的影响,整个渗透方法每隔若干小时(如6小时)重新实施一次。每次实施称为一个渗透周期,并用T记录当前为第几个渗透周期。为了快速高效地提升重要性,本方法还根据距离远近将被渗透节点分为多个编组(用G表示组号),并根据活跃程度对编组内节点进行排序,实现活跃节点优先和远距离节点优先。成为高活跃度节点的邻居,Sybil节点就可以借助该高活跃度节点让更多其它节点访问到它,从而获得提高入度的更多机会。成为远距离节点的邻居,Sybil节点就能够更频繁地被该远距离节点推荐给其它节点,从而获得提高入度的更多机会。
具体技术方案为:
第一步,设置渗透周期计数值T=1,分组编号G=L,L为Kademlia网络节点标识(即nodeID)的比特位数,初始时刻的活跃节点列表ActiveNodes(0)为空(NULL),ActiveNodes(T)是第T个渗透周期时的活跃节点列表,列表中的元素为活跃节点信息,项数为第T个渗透周期中的活跃节点数nT,每个表项包括IP、UDPport、nodeID、active四个域,IP表示活跃节点的IP地址,UDPport指活跃节点的UDP端口号,nodeID是活跃节点的节点标识,active表示活跃节点的活跃程度值,会被动态更新。
第二步,利用P2P网络爬虫(如开源的Emule客户端程序、Nutch、Crawler4j等)获取Kademlia网络第T个渗透周期活跃节点列表ActiveNodes(T)的IP、UDPport、nodeID信息。
第三步,依次计算ActiveNodes(T)中各个活跃节点的active值,假设ActiveNodes(T)中的任一表项q(0≤q≤nT-1)对应的IP、UDPport、nodeID信息为IPq、UDPportq、nodeIDq,则具体计算方法如下:
3.1)令q=0;
3.2)对于ActiveNodes(T)中的表项q,若ActiveNodes(T-1)中含有表项<IPq,UDPportq,nodeIDq,active_old>,则ActiveNodes(T)中的表项q为<IPq,UDPportq,nodeIDq,active_old+1>;若ActiveNodes(T-1)中不含有这种表项,即节点标识为nodeIDq的活跃节点是第一次出现在活跃节点列表中,则ActiveNodes(T)中的表项q为<IPq,UDPportq,nodeIDq,1>;
3.3)q=q+1;
3.4)判断q是否等于nT,如果等于,则转第四步,否则,转3.2)。
第四步,将ActiveNodes(T)中nT个节点的nodeID值依次与Sybil节点的nodeID值进行异或,得到nT个异或距离,并根据得到的异或距离值对ActiveNodes(T)中的nT个表项进行编组,将异或距离在[2j,2j+1)范围内的节点编为第j(0≤j≤L-1)组,则编组的数目为L(因为编组规则与Kademlia节点路由表的K-bucket区分方法类似,所以编组的数目等于K-bucket的数目L),通过对编组的遍历得出每组的节点数记为σT(0≤σT≤nT)。
第五步,对L个编组,按照active值降序重排每个组的σT个表项,得到L个降序重排后的编组。
第六步,G=G-1。
第七步,从第G组的首节点开始,Sybil节点依次向该组所有节点发送PING探测命令。根据Kademlia网络的捎带更新策略,被渗透节点收到PING命令后,将Sybil节点的nodeID值与自身的nodeID值进行异或,并根据该异或值确定Sybil节点的K-bucket,如果该K-bucket中有空位,就将Sybil节点作为邻居节点保存在该K-bucket中,从而提高Sybil节点的入度。
第八步,如果G=0,执行第九步;否则,转第六步。
第九步,设置计时器为m小时。这是为了间歇m小时,m一般取6;
第十步,间歇5秒。
第十一步,判断是否收到退出指令:是,转第十四步;否则转第十二步。
第十二步,判断是否计时器结束:是,转第十三步;否,转第十步。
第十三步,T=T+1,转第二步。
第十四步,结束。
采用本发明可以达到以下技术效果:
通过第四、五和七步中的设置,优先对远距离节点和高活跃度节点进行渗透,可以大大提高Sybil节点经由这些节点进入更多其它节点路由表的机会,从而可以快速提升其入度。通过第九、十、十三步中的设置,周期性地进行渗透,能够有效克服Kademlia网络动态性对Sybil节点重要性的影响,保证Sybil节点始终能够有较高的入度。快速提高Sybil节点的重要性,有助于利用Sybil节点更多、更高效地获知网络中大量节点的活动情况,从而为快速发现和遏制网络中的恶意活动提供技术支撑。
附图说明
图1为本发明的总流程图。
具体实施方式
图1是本发明的总流程图:
第一步,设置渗透周期计数值T=1,分组编号G=L,初始时刻的活跃节点列表ActiveNodes(0)为Null。
第二步,利用P2P网络爬虫获取Kademlia网络第T个渗透周期活跃节点列表ActiveNodes(T)的IP、UDPport、nodeID信息。
第三步,依次计算ActiveNodes(T)中nT个活跃节点的active值,假设ActiveNodes(T)中的任一表项q(0≤q≤nT-1)对应的IP、UDPport、nodeID信息为IPq、UDPportq、nodeIDq
第四步,将ActiveNodes(T)中nT个节点的nodeID值依次与Sybil节点的nodeID值进行异或,并根据得到的异或距离值对ActiveNodes(T)中的nT个表项进行编组,将异或距离在[2j,2j+1)范围内的节点编为第j(0≤j≤L-1)组,则编组的数目为L,通过对编组的遍历得出每组的节点数记为σT(0≤σT≤nT)。
第五步,对L个编组,按照active值降序重排每个组的σT个表项。
第六步,G=G-1。
第七步,从第G组的首节点开始,Sybil节点依次向该组所有节点发送PING探测命令。根据Kademlia网络的捎带更新策略,在被渗透节点收到PING命令后,如果根据它的nodeID值Sybil节点的nodeID值进行异或得到的距离确定的被渗透节点的K-bucket中有空位,就将Sybil节点作为邻居节点保存在该K-bucket中,从而提高Sybil节点的入度。
第八步,如果G=0,执行第九步;否则,转第六步。
第九步,设置计时器为m小时。这是为了间歇m小时,m一般取6;
第十步,间歇5秒。
第十一步,判断是否收到退出指令:是,转第十四步;否则转第十二步。
第十二步,判断是否计时器结束:是,转第十三步;否,转第十步。
第十三步,T=T+1,转第二步。
第十四步,结束。

Claims (2)

1.一种用于快速提升Sybil节点重要性的渗透方法,其特征在于包括以下步骤:
第一步,设置渗透周期计数值T=1,分组编号G=L,L为Kademlia网络节点标识nodeID的比特位数,初始时刻的活跃节点列表ActiveNodes(0)为空,ActiveNodes(T)是第T个渗透周期时的活跃节点列表,列表中的元素为活跃节点信息,项数为第T个渗透周期中的活跃节点数nT,每个表项包括IP、UDP port、nodeID、active四个域,IP表示活跃节点的IP地址,UDPport指活跃节点的UDP端口号,nodeID是活跃节点的节点标识,active表示活跃节点的活跃程度值;
第二步,利用P2P网络爬虫获取Kademlia网络第T个渗透周期活跃节点列表ActiveNodes(T)的IP、UDP port、nodeID信息;
第三步,依次计算ActiveNodes(T)中各个活跃节点的active值,具体计算方法如下:
3.1)令q=0;
3.2)对于ActiveNodes(T)中的表项q,若ActiveNodes(T-1)中含有表项<IPq,UDPportq,nodeIDq,active_old>,IPq、UDP portq、nodeIDq分别为ActiveNodes(T)中的表项q对应的IP、UDP port、nodeID信息,则ActiveNodes(T)中的表项为<IPq,UDP portq,nodeIDq,active_old+1>;若ActiveNodes(T-1)中不含有这种表项,即节点标识为nodeIDq的活跃节点是第一次出现在活跃节点列表中,则ActiveNodes(T)中的表项q为<IPq,UDPportq,nodeIDq,1>;
3.3)q=q+1;
3.4)判断q是否等于nT,如果等于,则转第四步,否则,转3.2);
第四步,将ActiveNodes(T)中nT个节点的nodeID值依次与Sybil节点的nodeID值进行异或,得到nT个异或距离,并根据得到的异或距离值对ActiveNodes(T)中的nT个表项进行编组,将异或距离在[2j,2j+1)范围内的节点编为第j组,则编组的数目为L,通过对编组的遍历得出每组的节点数记为σT,0≤j≤L-1,0≤σT≤nT
第五步,对L个编组,按照active值降序重排每个组的σT个表项,得到L个降序重排后的编组;
第六步,G=G-1;
第七步,从第G组的首节点开始,Sybil节点依次向该组所有节点发送PING探测命令;根据Kademlia网络的捎带更新策略,被渗透节点收到PING命令后,将Sybil节点的nodeID值与自身的nodeID值进行异或,并根据该异或值确定Sybil节点的K-bucket,如果该K-bucket中有空位,则将Sybil节点作为邻居节点保存在该K-bucket中;每个Kademlia节点的路由表由L个链表组成,每个链表称为一个“K-bucket”,用于记录网络中到自己的异或距离在区间[2i,2i+1)内的邻居节点的信息,每条信息以三元组<IP地址,UDP端口号,nodeID>形式表示和存储,i为K-bucket的序号,0≤i<L;
第八步,如果G=0,执行第九步;否则,转第六步;
第九步,设置计时器为m小时;
第十步,间歇5秒;
第十一步,判断是否收到退出指令:是,转第十四步;否则转第十二步;
第十二步,判断是否计时器结束:是,转第十三步;否,转第十步;
第十三步,T=T+1,转第二步;
第十四步,结束。
2.如权利要求1所述的一种用于快速提升Sybil节点重要性的渗透方法,其特征在于所述m取6。
CN201410271658.6A 2014-06-18 2014-06-18 用于快速提升Sybil节点重要性的渗透方法 Active CN104010003B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410271658.6A CN104010003B (zh) 2014-06-18 2014-06-18 用于快速提升Sybil节点重要性的渗透方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410271658.6A CN104010003B (zh) 2014-06-18 2014-06-18 用于快速提升Sybil节点重要性的渗透方法

Publications (2)

Publication Number Publication Date
CN104010003A CN104010003A (zh) 2014-08-27
CN104010003B true CN104010003B (zh) 2017-02-01

Family

ID=51370497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410271658.6A Active CN104010003B (zh) 2014-06-18 2014-06-18 用于快速提升Sybil节点重要性的渗透方法

Country Status (1)

Country Link
CN (1) CN104010003B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104378426B (zh) * 2014-11-14 2018-06-12 中国电子科技集团公司第二十九研究所 一种用于实时信息分发***的负载均衡方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145929A (zh) * 2007-08-09 2008-03-19 复旦大学 一种面向ipv6环境的p2p流媒体点播***
CN103067521A (zh) * 2013-01-08 2013-04-24 中国科学院声学研究所 一种分布式爬虫集群中的节点和***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145929A (zh) * 2007-08-09 2008-03-19 复旦大学 一种面向ipv6环境的p2p流媒体点播***
CN103067521A (zh) * 2013-01-08 2013-04-24 中国科学院声学研究所 一种分布式爬虫集群中的节点和***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《一种针对P2P网络优化的Kademlia路由算法》;杨丞,张刚林,刘光灿,王路露;《微电子学与计算机》;20090930;第26卷(第9期);全文 *
基于kademlia协议的高生存性P2P僵尸网络;朱俊虎,李鹤帅,王清贤,邱菡;《计算机应用》;20130501;第33卷(第5期);全文 *

Also Published As

Publication number Publication date
CN104010003A (zh) 2014-08-27

Similar Documents

Publication Publication Date Title
US20060029007A1 (en) Ad hoc network topology discovery
JP2008011448A (ja) アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム
Cancela et al. Polynomial-time topological reductions that preserve the diameter constrained reliability of a communication network
CN104010003B (zh) 用于快速提升Sybil节点重要性的渗透方法
CN103813372B (zh) 一种基于IPv6的无线传感器网络管理方法
Drees et al. Churn-and dos-resistant overlay networks based on network reconfiguration
CN104038547B (zh) P2P网络中有效消解多Sybil节点渗透冲突的方法
CN101741867B (zh) 一种捕获BitTorrent网络中节点信息的方法
CN108833609B (zh) 一种基于历史拓扑测量数据的局部网络目的ip地址选择方法
CN104579805A (zh) 一种新的网络流量识别方法
WO2016072838A1 (en) A system and method for next hop selection in a wireless sensor network
RU2016124953A (ru) Способ маскирования структуры сети связи
Zhou et al. An efficient and scalable pairwise key pre-distribution scheme for sensor networks using deployment knowledge
Jabbar et al. Modeling the message alternative routes in a large scale wireless sensor network
JP5857791B2 (ja) 通信装置
CN106332214B (zh) 一种数据定向传输方法和***
Kurhinen et al. Modelling mobile encounter networks
Al-Nabhan et al. Distributed algorithm for connected dominating set construction in sensor networks
Din et al. Energy source saving approach using multi-tier network design technique
Wang et al. On the characteristics of the worm infection family tree
Patra et al. Modified rumor routing for wireless sensor networks
Emimajuliet et al. Defending Collaborative Attacks in MANETs Using Modified Cooperative Bait Detection Scheme
Wilkosz Utilization of multi-agent system for power system topology verification
Mamun et al. A partial key distribution protocol for WSNs in distributed IoT applications
Liu et al. Wireless Sensor Network Traffic Modeling and Anomaly Simulation based on OPNET.

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