隐私加密系列|详解匿名网络协议-I2P

  • 时间:
  • 浏览:53
  • 来源:区块链技术网

简 介

I2P,Tor和虚拟专用网(VPN)是众所周知的匿名网络。它们都是以不同的方式和特定的用途设计的,尽管大多数人使用它们是为了私下浏览互联网。这些网络功能具有非常相似的特性,但在如何匿名化和保护用户的互联网流量方面也有重要的区别。

在本文中,我们将研究Tor和I2P网络是什么,它们如何工作,安全基础架构以及在区块链领域的潜在或已知用例的范式。

I2P网络

什么是I2P?

I2P(称为Invisible Internet Project成立于2003年)是一种低延迟网络层,在全球的分布式计算机网络上运行。它主要内置于应用程序中,例如电子邮件,Internet中继聊天(IRC)和文件共享。I2P的工作原理是自动将网络中的每个客户机都设为一个节点,通过该节点路由数据和流量。这些节点负责提供与网络中其他计算机之间的加密单向连接。

I2P是如何工作的?

I2P是一个封闭的网络,运行在互联网基础设施中(在这个范例中称为clearnet)。与vpn和Tor不同,它们本质上是“outproxy”网络,设计用于与Internet进行匿名和私有通信,I2P被设计为对等网络。这意味着它与互联网几乎没有通信。它还意味着I2P中的每个节点都没有用Internet协议(IP)地址标识,而是用加密标识符标识。I2P网络中的节点可以是托管暗网服务的服务器(类似于Internet上的网站),也可以是访问由其他节点托管的服务器和服务的客户端。另一方面,Tor通过使用一组志愿者操作的中继服务器/节点来工作,这些服务器/节点允许人们私密安全地访问Internet。这意味着人们可以选择自愿作为网络中的中继节点,从而捐赠带宽。与Tor相比,I2P中的每个客户端/服务器自动成为一个中继节点。是否通过特定节点路由数据通常取决于带宽。

由于I2P中没有Internet,因此网络由其自己的匿名站点和隐藏站点(称为eepsites)组成。这些仅存在于网络中,并且只有使用I2P的人员才能访问。使用标准Web服务器的服务(例如I2PTunnel)可用于创建此类网站。

I2P基础架构

路由基础结构和匿名性

I2P通过在客户端设备中安装I2P路由服务来工作。此路由器与其他设备上的I2P路由器创建临时、加密的单向连接。连接被称为单向连接,因为它们由出站隧道和入站隧道组成。在任何通信过程中,数据通过出站隧道离开客户端设备,并通过其入站隧道在其他设备上接收。这个数据库由一个自定义的Kademlia风格的分布式哈希表(DHT)组成,其中包含路由器信息和目标信息。对于每个应用程序或客户机,I2P路由器都保留一个隧道对池。与网络数据库进行交互的探索性隧道在路由器的所有用户之间共享。如果池中的隧道即将到期或该隧道不再可用,则路由器会创建一个新隧道并将其添加到池中。重要的是要记住,隧道每隔10分钟定期到期,因此需要经常刷新。这是I2P的安全措施之一,旨在防止长期存在的隧道成为匿名威胁。

分布式网络数据库

网络数据库(NetDB)被实现为DHT,并使用Kademlia协议通过称为泛洪路由器的节点传播。NetDB是使I2P分散化的特征之一。要开始参与网络,路由器将安装NetDB的一部分。获得部分NetDB称为引导,是通过“重新播种”路由器进行的。默认情况下,路由器将通过查询一些自举域名来重新设置种子。当路由器成功建立与这些域之一的连接时,将建立传输层安全性(TLS)连接,路由器通过该连接下载NetDB的已签名部分副本。一旦路由器可以到达网络中的至少一个其他参与者,则路由器将查询自己没有的NetDB的其他部分。

NetDB存储两种类型的数据:

1. RouterInfo。当消息离开一个路由器时,它需要知道有关另一路由器的一些关键数据(称为RouterInfo)。目标RouterInfo以路由器的身份作为密钥存储在NetDB中。为了请求资源(或RouterInfo),客户端从被认为最接近密钥的节点请求所需的密钥。如果数据位于节点上,则将其返回给客户端。否则,该节点将使用其对参与节点的本地知识,并返回其认为最接近键的节点。NetDB中的RouterInfo由组成:

路由器的标识-加密密钥、签名密钥和证书。可以到达的联系人地址-协议、IP和端口。创建或发布时。选项-一组任意文本选项,例如路由器的带宽。上面的签名,由身份的签名密钥生成。

2. LeaseSet指定要到达端点的隧道入口点。它指定可以直接联系所需目的地的路由器。它包含以下数据:

隧道网关路由器-通过指定其身份给定。隧道ID-用于发送消息的隧道。隧道到期-隧道到期的时间。目标本身-与路由器身份类似。签名-用于验证LeaseSet。

Floodfill Routers(称为泛洪路由器)

专用路由器(称为泛洪路由器)负责存储NetDB。可自动或手动参与溢流池。当泛洪路由器的数量下降到某个阈值以下时,即当前网络中所有节点的6%,就会发生自动参与。发生这种情况时,将根据正常运行时间和带宽等条件选择一个节点作为泛洪路由器。应该注意的是,大约95%的泛洪路由器是自动的。NetDB以DHT格式存储在泛洪路由器中。向泛洪路由器请求一个资源,该资源被认为与该密钥最接近。为了获得更高的查找成功率,客户端可以迭代查找密钥。这意味着,如果初始查找请求失败,则从下一个最近的对等方继续查找。

Garlic Routing(大蒜路由器)

大蒜路由是一种构建路径或隧道的方式,I2P网络中的消息将通过该路径或隧道传播。当消息离开应用程序或客户端时,它将被加密为收件人的公共密钥。然后使用指定下一跳的指令对加密的消息进行加密。邮件以这种方式遍历每一跳,直到到达收件人为止。在邮件传输过程中,它与其他邮件捆绑在一起。这意味着在网络中传播的任何消息都可能包含许多捆绑在一起的其他消息。本质上,蒜头路由有两件事:

提供分层加密。将多条消息捆绑在一起。

图2展示了端到端消息捆绑:

2P威胁、安全和脆弱性

I2P项目没有特定的威胁模型,而是谈论常见的攻击和现有防御。总体而言,I2P的设计是由类似于Tor处理的威胁所致:攻击者可以在本地观察流量,但不能观察到通过网络的所有流量。并且假定所有密码原语的完整性。此外,仅允许攻击者控制网络中有限数量的对等方(该网站谈论参与NetDB的节点不超过20%,受恶意实体控制的节点总数不超过该百分比)。在本节中,我们将研究影响网络的不同威胁模型。

女巫攻击

如图3所示,Sybil攻击是一种众所周知的匿名系统攻击,其中,恶意用户创建了多个身份,以增强对网络的控制。通过I2P网络进行这种攻击非常困难。这是因为网络中的参与者/客户在选择要与之交互的对等方时会评估对等方的性能,而不是使用随机样本。由于在同一主机上运行多个身份会影响这些实例中每个实例的性能,因此并行运行的其他身份的数量受到有效的限制,因为它们需要为每个实例提供足够的资源以被视为对等实体。这意味着恶意用户将需要大量资源来创建多个身份。

Eclipse Attacks(日蚀攻击)

在eclipse攻击中,一组恶意节点和合谋节点安排一个好的节点只能与恶意节点通信。因此,恶意节点的联合欺骗好节点将其地址写入相邻的好节点列表。在Sybil攻击中,单个恶意节点在网络中拥有大量的身份信息,以控制网络的某些部分。如果攻击者想将Sybil攻击继续升级为eclipse攻击,则攻击者将尝试将恶意节点放置在战略路由路径中,以便所有流量都通过攻击者的节点。

暴力攻击

通过主动观察网络在所有节点之间传递的消息并尝试关联消息及其路由,可以对I2P网络进行蛮力攻击。由于网络中的所有对等节点都经常发送消息,因此这种攻击是微不足道的。攻击者可以发出大量数据(超过2GB),观察所有节点并缩小路由消息的节点的范围。因为路由器间的通信是经过加密和流式传输的,所以必须传输大量数据,即1,024字节数据与2,048字节数据是无法区分的。但是发动这种攻击非常困难,为了观察大量网络,必须是Internet服务提供商(ISP)或政府实体。

Interp Attacks(交叉攻击)

交叉攻击涉及随时间观察网络和节点流失。为了缩小特定目标的范围,当通过网络传输消息时,将联机的对等点相交。从理论上讲,如果网络较小,则发动这种攻击是可能的,但对于较大的网络则不可行。

拒绝服务攻击

拒绝服务攻击包括以下内容:

1. 贪婪用户攻击:当用户消耗的资源远远超过他们愿意贡献的资源时,就会发生贪婪的用户攻击。I2P对这些攻击有很强的防御能力,因为默认情况下,网络中的用户是路由器,因此通过设计为网络做出贡献。

2. 饥饿攻击:用户/节点可能会试图通过创建大量不向网络提供任何资源或服务的坏节点来发起饥饿攻击,从而导致现有对等点通过更大的网络数据库进行搜索,或请求超出所需数量的隧道。试图找到有用的节点可能很困难,因为它们与失败或加载的节点没有区别。然而I2P在设计上维护了所有对等点的配置文件,并试图识别和忽略性能不佳的节点,这使得这种攻击变得困难。

泛洪攻击

在泛洪攻击中,恶意用户将大量消息发送到目标的入站隧道或整个网络。

但是目标用户可以:

通过消息的内容检测到这一点,并且因为隧道的测试失败。识别无响应的隧道,忽略它们并建立新的隧道。选择限制通道可以接收的消息数量。尽管I2P没有针对网络泛洪攻击的防御措施,但泛洪网络却异常困难。

猜你喜欢

详解区块链的分层协议体系结构-互操作性

本开始阅读本文是,我们先了解什么是抽象性:在计算机科学中,抽象化(英语:Abstraction)是将数据与程序,以它的语义来呈现出它的外观,但是隐藏起它的实现细节.抽象化是用来

2021-11-29

区块链研究实验室|sparkswap原子跨链交换技术详解

以下是对sparkswap即时结算技术的深入研究,这是一种交易加密货币而不在交易所存放资产的新方式。这是一篇技术文章,建议读者熟悉闪电网络和原子跨链交换技术原理。无信任的原子跨

2021-11-29

区块链研究实验室|以太坊分片跨链间信息系统详解

这篇文章通过提出对块有效性和分叉选择规则的更改,概述了协议内跨分片消息传递系统。这是CBCCasper分片提案的一部分,但可以轻松应用于Eth2.0的后续阶段。对此的描述可以在

2021-11-29

区块链研究实验室|详解Libra的Move IR编译器漏洞

我们在MoveIR编译器中发现了一个漏洞,其内联注释可以伪装成可执行代码。这是因为move-IR解析器无法识别内联注释末尾的一些unicode换行符。特别是代码在解析公共的\r

2021-11-29

区块链研究实验室|详解证券Token2.0协议:债务Token

证券Token可能会成为第一种弥合机构投资者与加密界之间差距的加密资产。证券Token的神奇之处之一是,至少在概念上,可以将它们视为现有金融产品的可编程性和可全球交易的表示形式

2021-11-29