简介

洋葱路由(英语:Onion routing)为一种在电脑网络上匿名沟通的技术。在洋葱路由的网络中,消息一层一层的加密包装成像洋葱一样的数据包,并经由一系列被称作洋葱路由器的网络节点发送,每经过一个洋葱路由器会将数据包的最外层解密,直至目的地时将最后一层解密,目的地因而能获得原始消息。而因为透过这一系列的加密包装,每一个网络节点(包含目的地)都只能知道上一个节点的位置,但无法知道整个发送路径以及原发送者的地址。

原理

  1. 用户都希望能隐藏自己的真实 ip 地址,让对方无法精准定位找到自己。此时可以找个代理服务器转发流量。最常见的方式就是代理,图示如下:

    但是正常情况下,server 是有日志的,记录了 proxy 的 ip 地址(如果 server 在国内,运营商也有相应的记录);同时国内的运营商也有 client 的访问记录。所以用这样的方式来隐藏真实 IP 是不可行的。
  2. 增加到两个 proxy 节点

  1. 既然两个 proxy 已经不好追查了,那么继续增加 proxy 节点到 3 个,如实现了匿名通信的自由软件 tor
    简单的核心原理:

缺点

大蒜路由I2P

tor是匿名通信的鼻祖,但还是有比较明显的缺陷:
(1)上面提到的目录服务器。一旦被防火墙ban,tor浏览器分分钟失效
(2)一旦建立通信连接,双方用这条线路互相传数据;使用时间稍微长一点的话,有一定的概率被猜到;
为了解决这些痛点,大蒜路由孕育而生!
I2P使用 Kad 算法(用过电驴或电骡的网友应该听说过)来获取网络节点的信息,将传输的原始数据拆散为加密数据包通过多条隧道交叉疏散传递,其优势如下:

参考:

  1. 洋葱路由-WikiPedia
  2. 匿名网络通信-博客园