一种发现并收集i2p网络中节点的方法及系统的制作方法

文档序号:7774534阅读:2351来源:国知局
一种发现并收集i2p网络中节点的方法及系统的制作方法
【专利摘要】本发明涉及一种发现并收集I2P网络中节点的方法,包括以下步骤:步骤1:获取多个FloodFill节点作为种子节点;步骤2:启动至少一个I2P路由器;步骤3:构造节点查询消息并发送至种子节点,迭代查询在I2P网络的ID键空间中所有FloodFill节点,并收集到FloodFill节点集;步骤4:发送一个非FloodFill节点查询消息到FloodFill节点集中的一个FloodFill节点上,收集所述FloodFill节点周围的所有非FloodFill节点;步骤5:判断FloodFill节点集中是否存在未收到非FloodFill节点查询消息的节点,如果是,进行步骤4;否则,继续;步骤6:完成非FloodFill节点的收集。本发明可评估、改善匿名通信系统I2P的安全性。
【专利说明】—种发现并收集I2P网络中节点的方法及系统
【技术领域】
[0001]本发明涉及一种发现并收集I2P网络中节点的方法及系统,属于匿名通信领域。【背景技术】
[0002]近年来,Internet逐渐成为人们日常生活和娱乐的重要工具。与此同时,随着Internet的发展,以及人们对于网上行为隐私保护的需求,匿名通信系统得到了越来越多的关注和发展。
[0003]Tor是现今最流行的匿名通信系统之一,它采用洋葱路由的方式(一般是三跳)对用户的通信过程进行加密,从而使得每一个中间节点只能知道它的前一节点和后继节点,而无法同时知道整个通信过程的双方。Tor采用集中式的统一目录服务器来管理整个Tor网络中的所有节点,每一个Tor用户都需要从目录服务器获取节点信息,并根据节点信息中的标志选取合适的节点建立通信链路。
[0004]I2P (The Invisible Internet Project)匿名通信系统也是现今最流行的匿名通信系统之一,同样基于洋葱路由的加密方式,然而与Tor采用统一的目录服务器不同,I2P采用基于DHT的结构化P2P网络架构,这使得I2P能够更好的防范针对关键节点的DDOS攻击,并使得I2P网络拥有良好的稳定性和扩展性。I2P网络中的DHT称为NetDB,构成NetDB的节点称为FloodFill节点,NetDB中存储两类元数据:RouterInfo和LeaseSet,其中RouterInfo中存储到一个节点的连接方式和秘钥,而LeaseSet中存储到一个I2P服务的连接方式。每一个I2P节点在发现本地节点数目不足或者节点过期时,都会发送一个查询消息到距离自己最近(根据ID的XOR距离)的FloodFill节点进行查询,FloodFill节点会根据查询消息中的标识位来决定返回FloodFill节点或者非FloodFill节点。
[0005]最新研究1表明,I2P网络的P2P架构以及所采用的查询/响应机制,使得攻击者可以进行阻止服务访问的Eclipse攻击,进而破坏用户的匿名性。

【发明内容】

[0006]本发明所要解决的技术问题是,针对现有技术的不足,提供一种便于评价基于网络构架进行的攻击对整个I2P网络造成的影响,并能提出针对此类攻击的改进建议的发现并收集I2P网络中节点的方法。
[0007]本发明解决上述技术问题的技术方案如下:一种发现并收集I2P网络中节点的方法,具体包括以下步骤:
[0008]步骤1:获取多个FloodFill节点作为种子节点;
[0009]步骤2:在一个I2P网络中启动至少一个I2P路由器;
[0010]步骤3:构造节点查询消息,将所述节点查询信息发送至种子节点,通过节点查询信息查询与种子节点相邻的多个FloodFill节点,迭代查询在I2P网络的ID键空间中所有FloodFill节点,并将所有FloodFill节点收集到FloodFill节点集;
[0011]步骤4:发送一个非FloodFill节点查询消息到FloodFill节点集中的一个FloodFill节点上,收集所述FloodFill节点周围的所有非FloodFill节点;
[0012]步骤5:判断FloodFill节点集中是否存在未收到非FloodFill节点查询消息的节点,如果是,进行步骤4 ;否则,继续下一步;
[0013]步骤6:完成非FloodFill节点的收集,将所有非FloodFill节点收集到非FloodFill节点集中;
[0014]步骤7 =FloodFill节点集和非FloodFill节点集实现网络中节点的收集。
[0015]本发明的有益效果是:本发明所述的方法能够有效发现并收集到I2P网络中的FloodFill节点和非FloodFill节点,了解I2P网络的整体状况,便于评估基于网络架构进行的攻击对整个I2P网络造成的影响,并在此基础之上为防范此类攻击给出改进建议。
[0016]在上述技术方案的基础上,本发明还可以做如下改进。
[0017]进一步,所述步骤3具体包括以下步骤:
[0018]步骤3.1:构造节点查询消息,将所述节点查询信息发送至所有种子节点;
[0019]步骤3.2:查询到种子节点相邻的所有FloodFill节点并收集到FloodFill节点集中;
[0020]步骤3.3:判断I2P网络的ID键空间中是否存在未收集的FloodFill节点集,如果是,将查询到的FloodFill节点作为种子节点,返回步骤3.2 ;否则,继续下一步;
[0021]步骤3.4:将查询到的所有FloodFill节点收集到FloodFill节点集。
[0022]进一步,所述查询消息包括一个查询键和一个标志位,FloodFill节点接收到查询消息后会根据查询键返回与FloodFill节点异或距离最小的三个节点,再根据标志位确定查询到的节点是否是FloodFill节点。
[0023]进一步,所述异或距离的计算公式,在假设所有节点均匀分布的情况下,采用以下公式(I):
[0024]D=1g2 (2n/m) (I)
[0025]以上公式(I)中D表示两个节点之间的异或距离,m表示整个I2P网络中节点个数,η表示每个Ι2Ρ节点ID的长度(单位是bits)。
[0026]本发明所要解决的另一个技术问题是,针对现有技术的不足,提供一种便于评价基于网络构架进行的攻击对整个I2P网络造成的影响,并能提出针对此类攻击的改进建议的发现并收集I2P网络中节点的系统。
[0027]本发明解决上述技术问题的技术方案如下:一种发现并收集I2P网络中节点的系统,包括:获取模块、启动模块、FloodFill节点查询模块、非FloodFill节点查询模块和判断丰吴块;
[0028]所述获取模块用于获取多个FloodFill节点作为种子节点;
[0029]所述启动模块用于在一个I2P网站中启动至少一个I2P路由器;
[0030]所述FloodFill节点查询模块用于构造节点查询消息,将所述节点查询信息发送至种子节点,通过节点查询信息查询与种子节点相邻的多个FloodFill节点,迭代查询在I2P网络的ID键空间中所有FloodFill节点,并将所有FloodFill节点收集到FloodFill节点集;
[0031]所述非FloodFill节点查询模块用于发送一个非FloodFill节点查询消息到FloodFill节点集中的一个FloodFill节点上,收集所述FloodFill节点周围的所有非FloodFill节点到非FloodFill节点集中;
[0032]所述判断模块用于判断I2P网络的ID键空间中所有FloodFill节点是否接收全部接收到非FloodFill节点查询消息,如果是,完成非FloodFill节点的收集;否则,返回所述非FloodFill节点查询模块。
[0033]本发明的有益效果是:本发明所述的方法能够有效发现并收集到I2P网络中的FloodFill节点和非FloodFill节点,了解I2P网络的整体状况,便于评估基于网络架构进行的攻击对整个I2P网络造成的影响,并在此基础之上为防范此类攻击给出改进建议。
[0034]在上述技术方案的基础上,本发明还可以做如下改进。
[0035]进一步,所述FloodFill节点查询模块包括:构造模块、子查询模块和节点判断模块;
[0036]所述构造模块用于构造节点查询消息,将所述节点查询信息发送至所有种子节
占.[0037]所述子查询模块用于查询到种子节点相邻的所有FloodFill节点并收集到FloodFill节点集中;
[0038]所述节点判断模块用于判断12P网络的ID键空间中是否存在未收集的FloodFi 11节点集,如果是,将查询到的FloodFill节点作为种子节点,并将所述种子节点发送到子查询模块;否则,将查询到的所有FloodFill节点收集到FloodFill节点集。
[0039]进一步,所述查询消息包括一个查询键和一个标志位,FloodFill节点接收到查询消息后会根据查询键返回与FloodFill节点异或距离最小的三个节点,再根据标志位确定查询到的节点是否是FloodFill节点。
[0040]进一步,所述异或距离的计算公式,在假设所有节点均匀分布的情况下,采用以下公式(I):
[0041]D=1g2 (2n/m) (I)
[0042]以上公式(I)中D表示两个节点之间的异或距离,m表示整个I2P网络中节点个数,η表示每个Ι2Ρ节点ID的长度(单位是bits)。
[0043]根据I2P的结构特征和查询/响应机制,本发明提出使用自构造查询信息,并向指定FloodFill节点发送查询信息的思路来收集I2P节点。节点的收集分为两个层次,首先是在整个I2P网络中的ID键空间(KeySpace)中采用迭代的方式收集FloodFill节点,其次,对收集到的每一个FloodFill节点进行遍历查询,收集其上存储的非FloodFill节点。
[0044]本发明拥有以下的
【发明内容】
:
[0045]I)构造指定的查询消息。针对一个要查询的节点ID和一个查询目标FloodFill节点,本发明可以构造特定的查询消息[见算法3],并发送给相应的FloodFill节点,进而可以收集返回结果。
[0046]2)收集FloodFill节点。根据I2P统计网站声明,目前整个I2P网络中大概有400个FloodFill节点,又因为每个I2P节点ID的长度是256bits,所以在假设FloodFill节点均匀分布的情况下,每两个FloodFill节点的异或距离为:
【权利要求】
1.一种发现并收集I2P网络中节点的方法,其特征在于,具体包括以下步骤: 步骤1:获取多个FloodFill节点作为种子节点; 步骤2:在一个I2P网络中启动至少一个I2P路由器; 步骤3:构造节点查询消息,将所述节点查询信息发送至种子节点,通过节点查询信息查询与种子节点相邻的多个FloodFill节点,迭代查询在I2P网络的ID键空间中所有FloodFill节点,并将所有FloodFill节点收集到FloodFill节点集; 步骤4:发送一个非FloodFill节点查询消息到FloodFill节点集中的一个FloodFill节点上,收集所述FloodFill节点周围的所有非FloodFill节点; 步骤5:判断FloodFill节点集中是否存在未收到非FloodFill节点查询消息的节点,如果是,进行步骤4 ;否则,继续下一步; 步骤6:完成非FloodFill节点的收集,将所有非FloodFill节点收集到非FloodFill节点集中; 步骤7 =FloodFill节点集和非FloodFill节点集实现网络中节点的收集。
2.根据权利要求1 所述的一种发现并收集I2P网络中节点的方法,其特征在于,所述步骤3具体包括以下步骤: 步骤3.1:构造节点查询消息,将所述节点查询信息发送至所有种子节点; 步骤3.2:查询到种子节点相邻的所有FloodFill节点并收集到FloodFill节点集中;步骤3.3:判断I2P网络的ID键空间中是否存在未收集的FloodFill节点集,如果是,将查询到的FloodFill节点作为种子节点,返回步骤3.2 ;否则,继续下一步; 步骤3.4:将查询到的所有FloodFill节点收集到FloodFill节点集。
3.根据权利要求1或2所述的一种发现并收集I2P网络中节点的方法,其特征在于,所述查询消息包括一个查询键和一个标志位,FloodFill节点接收到查询消息后会根据查询键返回与FloodFill节点异或距离最小的三个节点,再根据标志位确定查询到的节点是否是 FloodFill 节点。
4.根据权利要求3所述的一种发现并收集I2P网络中节点的方法,其特征在于,所述异或距离的计算公式,在假设所有节点均匀分布的情况下,采用以下公式(I): D=1g2 (2n/m) (I) 以上公式(I)中D表示两个节点之间的异或距离,m表示整个I2P网络中节点个数,η表示每个Ι2Ρ节点ID的长度(单位是bits)。
5.一种发现并收集I2P网络中节点的系统,其特征在于,包括:获取模块、启动模块、FloodFill节点查询模块、非FloodFill节点查询模块和判断模块; 所述获取模块用于获取多个FloodFill节点作为种子节点; 所述启动模块用于在一个I2P网站中启动至少一个I2P路由器; 所述FloodFill节点查询模块用于构造节点查询消息,将所述节点查询信息发送至种子节点,通过节点查询信息查询与种子节点相邻的多个FloodFill节点,迭代查询在I2P网络的ID键空间中所有FloodFill节点,并将所有FloodFill节点收集到FloodFill节点集; 所述非FloodFi 11节点查询模块用于发送一个非FloodFi 11节点查询消息到FloodFill节点集中的一个FloodFill节点上,收集所述FloodFill节点周围的所有非FloodFill节点到非FloodFill节点集中; 所述判断模块用于判断I2P网络的ID键空间中所有FloodFill节点是否接收全部接收到非FloodFill节点查询消息,如果是,完成非FloodFill节点的收集;否则,返回所述非FloodFill节点查询模块。
6.根据权利要求5所述的一种发现并收集I2P网络中节点的系统,其特征在于,所述FloodFill节点查询模块包括:构造模块、子查询模块和节点判断模块; 所述构造模块用于构造节点查询消息,将所述节点查询信息发送至所有种子节点; 所述子查询模块用于查询到种子节点相邻的所有FloodFill节点并收集到FloodFill节点集中; 所述节点判断模块用于判断I2P网络的ID键空间中是否存在未收集的FloodFill节点集,如果是,将查询到的FloodFill节点作为种子节点,并将所述种子节点发送到子查询模块;否则,将查询到的所有FloodFill节点收集到FloodFill节点集。
7.根据权利要求5或6所述的一种发现并收集I2P网络中节点的系统,其特征在于,所述查询消息包括一个查询键和一个标志位,FloodFill节点接收到查询消息后会根据查询键返回与FloodFill节点异或距离最小的三个节点,再根据标志位确定查询到的节点是否是 FloodFill 节点。
8.根据权利要求7所述的一种发现并收集I2P网络中节点的系统,其特征在于,所述异或距离的计算公式,在假设所有节点均匀分布的情况下,采用以下公式(I): D=1g2 (2n/m) (I) 以上公式(I)中D表示两个节点之间的异或距离,m表示整个I2P网络中节点个数,η表示每个Ι2Ρ节点ID的长度(单位是bits)。
【文档编号】H04L29/06GK103532791SQ201310512125
【公开日】2014年1月22日 申请日期:2013年10月25日 优先权日:2013年10月25日
【发明者】时金桥, 谭庆丰, 刘培朋, 王啸, 张文涛 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1