I2P匿名网络介绍

I2P是一种基于P2P的匿名通信系统,其上运行着多种的安全匿名程序,支持的应用包括匿名的Web浏览、博客、电子邮件、在线聊天、文件分享等。与其他匿名访问工具不同的是,I2P通过不同的隧道将中间节点和目标节点分隔出来,即某个节点运行了I2P并不是一个秘密,秘密的是节点用户通过I2P匿名网络发送了什么消息,消息发送给了谁。

I2P匿名的核心是大蒜路由(一种洋葱路由的变体),通过将多个消息层层加密、打包,经过传输隧道层层解密后到达目标节点。

I2P系统由本地客户端,I2P节点、网络数据库三个部分组成。

(1)I2P的加密过程

如图所示,I2P在通信的过程中对通信信息进行了三层加密:

①“大蒜”加密(ElGamal/SessionTag+AES):加密用户Alice到用户Bob的消息,如a到h的消息;
②隧道加密(private key AES):加密隧道入口节点到隧道出口节点的消息,如a到d、e到h的消息;
③传输加密(DH/STS+AES):加密通信隧道节点之间的消息,如a到b、b到c的消息。

在这里插入图片描述
在这里插入图片描述
(2)I2P的拓扑结构

I2P中存在Floodfill和Nonfloodfill两种节点类型。Nonfloodfill为节点的默认初始身份,当节点的性能达到一定要求之后会自适应地成为Floodfill节点,也可以手动配置成为Floodfill节点,I2P中Floodfill节点的个数占整体6%左右。Floodfill节点保存RouterInfo 和LeaseSet 两类数据信息,其中RouterInfo包括节点的ID、通信协议及端口、公钥、签名、更新时间等信息,LeaseSet包括隐藏服务哈希值、多个隧道入口节点哈希值信息、起止有效时间、签名等信息。并根据Kademlia算法来组织所有的Floodfil节点,形成I2P的网络数据库(network database,netDB)以提供对所有RouterInfo 和LeaseSet信息的保存、查询等功能。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45859485/article/details/129335485