Phantom: 去中心化的匿名网络

By Jake Edge
June 8, 2011
Phantom: Decentralized anonymous networking

翻译:曾怀东/朱翊然

互联网上的匿名是一个值得关注的问题,为此,几种不同的解决方案已经实施(如Tor,Freenet)。创建这样的网络是一个蛮有意思的尝试,这种网络也在避免各种互联网活动监控方面大显身手。而在相对自由的国家的人可能会发现它很有用,可以用来避免他们的ISP和政府的监督,在更专制政权下生活的社会活动家可能会发现能利用它获得更多,在某些情况下,甚至是生存或死亡的区别。幻影( Phantom )是另一个具有很多有趣熟悉的提供互联网匿名性的机制。

Phantom 协议是由 Magnus Bråding 在 2008 年的 DEFCON16 引入的(幻灯片[PPT]),旨在提供去中心化的匿名性。其思想是不存在会由于关闭或攻击导致Phantom无法使用的中心薄弱点。不像Tor和其他协议,Phantom要求端到端的加密,所以不存在“exit node”的问题。该问题会导致泄密或恶意参与者窃听通讯。另外,Phantom是为了高性能设计的,所以可以支持大数据量的网络传输。

Phantom最有趣的特性之一是它不需要改变现存的internet应用。对于网络浏览器还是其他应用,似乎使用的还是一个标准的 IP 地址和外界通信。事实上,这些地址是由Phantom软件处理的匿名协议(AP)地址。 Phantom做出的假设之一是IP地址能够映射到真实生活身份(这是一个非常有意义的假设),所以它的最主要成果之一就是保证这些信息不会被泄漏。

Internet被用来承载所有的Phantom流量,这些流量是internet的一部分。提供匿名访问服务(例如web server)的服务提供商必须在Phantom网络内部注册。很明显,从去中心化的角度来看,注册是一个问题,但是Phantom使用了分布式哈希表(DHT)来保存信息。现在已经有很多大规模部署的DHT,例如eMule的Kademlia。

DHT被当作“网络数据库”并且包含了两个独立的表。一个表是当前已经连接入 Phantom 的节点的 IP 地址,端口和其它属性,另一个表包含连接入 Phantom 和注册入的节点 AP 地址和属性。显然,为了保证匿名性,这两个表没有直接关联。想要获得一份DHT的拷贝,一个新节点只需要同一个已经存在的节点连接并加入这个分布式数据库就可以。初始可用的IP地址列表可能源于各种途径:网址,邮箱,甚至是纸片。只要列表中有一个的节点存活,新的节点就能够加入。

希望在网络上通信的客户端必须建立自己的退出节点(exit node)。它通过选择网络中一定数量的其他节点建立路由路径,最后一个节点即为退出节点。不像Tor,Phantom中没有已有的退出节点集合,因为在Phantom中任何一个在网络中的系统都可以作为退出节点。还有一点与Tor的区别是,endpoint选择自己的路由路径,而不是由网络来做这些决策。Phantom design white paper [PDF]对产生路由路径的协议进行了详细的说明。路径的每一步都用SSL进行了加密,该文章还描述了生成退出节点的复杂过程的细节。

同样,网络上的任何服务需要为每一个“入口节点”创建一条路由路径。在某些情况下,服务本身并不需要匿名,只是为匿名用户提供访问,这时候入口节点可能是该服务本身。在任何情况下,服务都要利用入口节点的IP地址在DHT注册他们的AP-to-IP的地址映射。对那些希望保持匿名的服务,他们会隐藏在其入口节点的整条路径的后面。

建立exit node和entry node后,节点就依路径创建路由隧道。这些隧道在端点的控制下,而不是网络或者任何的中间节点(包括入口/出口节点)。建立一个连接包括把这两条路由隧道连接在一起,以及连接客户的出口节点和服务的入口节点。隧道连接是双向的,使用了防备中间人窃听的加密技术

该系统的重要特征之一是,节点不知道他们对话的对象是端点或者仅仅是路由路径上另外一个节点。路由路径可以是无限长,甚至可以根据需要再次链接起来去提供进一步的隔离。

虽然整个计划看起来恶魔般的复杂,它已经作为Johannes Schlumberger的一部分硕士学位的工作实现了。也许令人惊讶,性能被描绘为还不错的:“在多跳路的Phantom路由隧道上最大达到100Mb/s的数据传输速度,因此加密的开销似乎并不太重要”。该代码可以在Hacktiyismo 增强源软件许可协议(HESSLA)下使用,这似乎是带有一些额外“政治”目标的GPL-inspired 许可证。根据自述,用一个tun的虚拟网络设备实施,而且可能需要相当复杂的设置。

总体而言,Phantom看起来很有趣。像Tor以及其他的技术,为了真正的使用,需要相当多数量的节点参与进来。Tor的一个最大的障碍在于出口节点因为它们发出的通信习惯获得指责。这些通信不能进一步的追踪回出口节点(至少希望如此),任何犯罪的或者恶意的通信是同任何跑在Tor节点上的用户隔离开的。由于在Phantom上的服务支持匿名访问,这样问题可能比较少。这也可能导致采用Phantom的可能性较小。

虽然电子前沿基金会最近一直在推动Tor的使用,广泛的使用Phantom(或者任何其他的匿名网络协议)还是有点困难的。有些方案显然是必要的,但是目前为止,后勤和法律的障碍似乎是许多人无法克服的。不幸的是,匿名网络可能会陷入“直到太晚的时候才开始成立”的困境。但是,很高兴看到人们仍在思考并且一直在为这个问题工作。

Topic: sohulinux