摘要:相对于众所周知的因特网,暗网由于其匿名性、复杂性,空间更加广阔。I2P作为暗网的主流访问工具之一,了解I2P的规模与使用情况,对探索整个暗网空间资源具有重要意义。在介绍I2P的基本原理之上,分析I2P域名的收集难点,并提出四种收集方式。经过7天的测试,结果显示:相对于Tor、Freenet等其他暗网访问工具,I2P的使用量较小,且访问群体较小,域名可用性较低。
正文内容:
0 引 言
当今社会,随着互联网的飞速发展,网络空间安全成为越来越重要的话题。网络空间中鲜为人知的暗网空间,因为其强大的匿名性,给网络空间安全带了巨大威胁。据外媒报道,大量Gmail(谷歌邮箱)、雅虎账号和PlayStation网络账号密码,在暗网被一位名为“suntzu”的供应商公开售卖[1]。在国内,这种出售个人隐私的黑色产业也存在,如名为“DoubleFlag”的知名暗网供应商出售窃取自多家中国互联网公司的用户数据[2]。此外,暗网也是暴力的“滋生地”、恐怖主义的“避风港”。暗网中存在大量枪支弹药、毒品、雇凶杀人的非法交易,为恐怖主义袭击提供物质基础。年巴黎恐怖袭击案后,有证据显示伊斯兰国恐怖分子的宣传机器Al-HayatMediaCenter被快速转移到了暗网中[3]。在如此严峻的背景下,为了维护网络空间的安全、保护用户的资产、打击违法犯罪和恐怖主义,阻止以美国为首的西方国家利用网络空间作为跳板对我国进行渗透和颠覆[4],需要全面了解暗网,对其包含的国家各类基础数据、企事业单位的内部数据、重点人物的隐秘信息、涉恐组织的情报信息培养快速的反应能力。
I2P是暗网空间中最常用的三大站点之一。I2P(InvisibleInternetProject)是一种基于对等网络的匿名通信系统。通过该系统可实现多种匿名功能,包括匿名网页浏览、匿名网站、匿名博客、匿名电子邮件等。与其他匿名程序不同的是,I2P将中间节点与目标节点严格区分出来,即某个用户在使用I2P并不是一个秘密,秘密的是用户通过I2P发送的消息和通信双方的身份。
Conrad等人在文献[5]中对暗网的两种访问工具Tor和I2P进行了介绍和分析对比,结果显示Tor拥有大量的用户和更快的速度,I2P则拥有更强的匿名性,Tor的经济效益要优于I2P。
JensMuller在文献[6]中对I2P的信息收集和攻击防护做了测试和评价,结果显示I2P自身有很强的防护能力,对外部攻击有很多内置的处理措施,即I2P的匿名安全性很强。
Zincir-Heywood等人在文献[7]中对I2P的共享带宽与匿名性之间的关系作了深入研究,采用机器学习方式对应用程序和用户之间的数据流进行分析,结果显示共享带宽越多,I2P用户的匿名性越强。
当前,针对I2P的研究工作主要集中于I2P的原理、安全性、匿名性等方面,而对I2P在当今网络空间中的规模、使用情况、存在价值与意义等仍然缺乏分析。本文针对暗网空间中的I2P资源进行初步探索,主要贡献有:
(1)简单介绍了暗网访问工具I2P的原理;
(2)分析I2P域名收集的难点,提出I2P域名收集的四个方向;
(3)针对I2P域名收集的四个方向进行域名收集的初步探索,并对结果进行测试分析,估计I2P的大致使用规模。
1 I2P介绍
I2P(InvisibleInternetProject)是一种基于对等网络的匿名通信系统。通过该系统可实现多种匿名功能,包括匿名网页浏览、匿名网站、匿名博客、匿名电子邮件等。匿名发送消息时,本地I2P客户端通过选择I2P网络中的路由器节点组成一些单向传输信息的节点队列,分别称之为输入隧道(InboundTunnel)、输出隧道(OutboundTunnel)。发送端将消息通过输出隧道发送给接收端的输入隧道,最终到达消息的终点,即接收端。同样,接收端的返回消息也是通过隧道传输。整个通讯的过程需要进行四层加密,消息经过隧道节点的多级转发且隧道节点是从高性能节点中随机抽取组成的,从而提升了匿名性。I2P的具体通信过程如图1所示。
用户Alice想要与Bob通信,首先Bob将自己的路由信息(RouterInfo)和租约信息(LeaseSets)发送给分布式的网络数据库(NetworkDatabase);Alice向NetworkDatabase请求与Bob的通信信息,NetworkDatabase根据Alice的请求查询Bob的LeaseSets并返回给Alice;Alice解析Bob的LeaseSets,将要发送的消息用Bob的公钥、隧道节点的密钥依序对消息进行层层加密,并通过OutboundTunnel发送给Bob的InboundTunnel,最后转发到Bob;Bob收到消息并解密,得到Alice发送的消息。Bob如需要给Alice发送回复消息,二者角色互换,Bob成为发送方,Alice成为接收方,依据同样的流程通信即可。
I2P系统由本地客户端、网络中的参与节点、网络数据库(NetDb)三个部分组成。为了更好理解I2P是如何运作的,下面介绍几个I2P的关键概念:隧道、网络数据库以及I2P的命名系统。
1.1 I2P隧道
隧道这一概念借用了Tor的“洋葱路由”理念。客户端通过选择一系列节点构建一条单向数据传输通道,根据节点的顺序对消息进行层层加密,每一层解密后得到下一条路由的IP,并依次解密到隧道的终点。由于隧道是单向传输的,每个用户至少需要一条输出隧道来发送消息和至少需要一条输入隧道来接受消息。
I2P使用两种隧道来发送和接受消息。输出隧道(OutboundTunnel)用来发送消息,输入隧道(InboundTunnel)用来接收消息,如图2所示。图1中,发送者Alice建立了一条输出隧道,接收者Bob建立了一条输入隧道。Alice输出隧道的终点(OutboundEndpoint)将收到的消息发送给Bob输入隧道的网关(InboundGateway),输入隧道的网关可以接受任何用户的消息并发送给隧道的终点Bob。
1.2 网络数据库
I2P的网络数据库NetworkDatabase(又称“netDb”)用来共享网络元数据,包括路由信息(RouterInfo)和租约集(LeaseSets)。路由信息包含了与路由节点通信的必要信息(公钥、传输地址等等),租约集包含了一系列租约信息。每个租约信息说明了到达一个目标终点的网关信息,如输入隧道网关地址、隧道到期时间、用于隧道传输的公钥等。路由器节点自行将自己的路由信息直接发送给netDb,租约集则需要通过输出隧道来传输,以此保证匿名性。
路由信息定义了一个路由器在网络中能被见的所有信息。路由信息包含以下信息:路由器的身份、联系地址、发布时间、数字签名。
租约集包含了到达目的地隧道入口的要点,内容包含:目的地身份、租约信息(多个lease)、隧道网关路由器、隧道ID、隧道到期时间、额外的加密公钥、租约集信息的签名。由于隧道有效时间只有10min,所以租约集中租约信息有效时间也是10min,这从某种程度上提高了I2P的匿名性与安全性。
1.3 命名系统
I2P的命名服务提供类似于DNS的功能,用户可以通过该服务实现域名到路由地址的映射[8]。I2P的命名格式为:xxx.i2p={destination},所有destination都是一个Bytes(或者更长)的密钥。它由一个Bytes的公钥加上一个Bytes的签名密钥组成,经base64编码后长度是Bytes。
I2P命名系统主要包含以下几个部分:
(1)本地命名服务(在本地查询域名,也支持base32);
(2)HTTP代理(向路由器提出域名查询请求,若查询失败则引导用户到跳转服务);
(3)域名添加服务(允许用户向本地hosts.txt添加新的域名);
(4)跳转服务(提供其他节点的域名查询服务)
(5)地址簿(存储域名和路由地址,通过HTTP加外部域名和本地域名列表合并);
(6)SusiDNS(一个web界面用来管理整个命名系统)。
1.4 匿名性与访问速度
在I2P内部,消息的加密和路由增加了大量带宽的开销,且I2P本身有流量限制,导致I2P的访问速度较慢。
I2P匿名性与传输的隧道长度有关,或者说与隧道中参与转发的节点个数有关。隧道中参与转发的节点越多,I2P的匿名性越高,但耗费的时间就越多,也会影响访问速度。I2P的客户端隧道长度允许用户自行设置,可以在牺牲部分匿名性的情况下提升访问速度,设置较短的隧道长度。如图3所示,设置了3条1跳的输入隧道和输出隧道,I2P提示隧道节点较少,I2P匿名性较低。
此外,I2P的研发人员在I2P的北京中科癜风医院好嘛白癜风有哪些治疗方法