P2P与匿名通信技术介绍
成都创新互联公司2013年成立,先为勉县等服务建站,勉县等地企业,进行企业商务咨询服务。为勉县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
P2P与匿名通信技术似乎密不可分,但是两者到底是什么关系,相信很多人都似是而非。本文分别对P2P、匿名通信技术进行了阐述和分类介绍,对两者之间的关系进行了澄清;梳理了当前在用的一些P2P网络和匿名通信产品。
一、P2P技术
(一)P2P介绍
P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。P2P打破了传统的Client/Server (C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。P2P与C/S模式的对比如下图所示:
图1 C/S模式
图2 P2P模式
(二)P2P网络结构
P2P系统一般要构造一个非集中式的拓扑结构,在构造过程中需要解决系统中所包含的大量结点如何命名、组织以及确定结点的加入/离开方式、出错恢复等问题。
根据拓扑结构的关系可以将P2P研究分为4种形式:中心化拓扑(Centralized Topology);全分布式非结构化拓扑(Decentralized Unstructured Topology);全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络)和半分布式拓扑(Partially Decentralized Topology)。
1. 中心化拓扑
中心化拓扑最大的优点是维护简单发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和法律等相关问题,这是第一代P2P网络采用的结构模式,经典案例就是著名的MP3共享软件Napster。
Napster是最早出现的P2P系统之一,并在短期内迅速成长起来。Napster实质上并非是纯粹的P2P系统,它通过一个中央服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。当某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器进行检索,并由服务器返回存有该文件的用户信息;再由请求者直接连到文件的所有者传输文件。
2. 全分布非结构化
全分布非结构化网络在重叠网络(overlay)采用了随机图的组织方式,结点度数服从"Power-law"规律,从而能够较快发现目的结点,面对网络的动态变化体现了较好的容错能力,因此具有较好的可用性。同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等,最典型的案例是Gnutella。Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutella是纯粹的P2P系统,没有索引服务器,它采用了基于完全随机图的洪泛(Flooding)发现和随机转发(Random Walker)机制。为了控制搜索消息的传输,通过TTL (Time To Live)的减值来实现。
3. 全分布式结构化拓扑
在DHT技术中,网络结点按照一定的方式分配一个唯一结点标识符(Node ID) ,资源对象通过散列运算产生一个唯一的资源标识符(Object ID) ,且该资源将存储在结点ID与之相等或者相近的结点上。需要查找该资源时,采用同样的方法可定位到存储该资源的结点。因此,Chord的主要贡献是提出了一个分布式查找协议,该协议可将指定的关键字(Key) 映射到对应的结点(Node) 。从算法来看,Chord是相容散列算法的变体。MIT的GRID和RON项目则提出了在分布式广域网中实施查找资源的系统框架。
DHT类结构最大的问题是DHT的维护机制较为复杂,尤其是结点频繁加入退出造成的网络波动(Churn)会极大增加DHT的维护代价。DHT所面临的另外一个问题是DHT仅支持精确关键词匹配查询,无法支持内容/语义等复杂查询。
4. 半分布式结构
(有的文献称作 Hybrid Structure)吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的结点作为超级点(英文文献中多称作:SuperNodes, Hubs),在各个超级点上存储了系统中其他部分结点的信息,发现算法仅在超级点之间转发,超级点再将查询请求转发给适当的叶子结点。半分布式结构也是一个层次式结构,超级点之间构成一个高速转发层,超级点和所负责的普通结点构成若干层次。最典型的案例就是KaZaa。
(三)P2P与匿名性
P2P的核心思想是所有参与用户之间直接共享资源。平常大家所说的P2P网络没有服务器,指的是没有资源服务器(也可以说所有节点都是服务器),但是用于管理的服务器还是有的,像上述的中心化拓扑和半分布式都有典型的管理服务器。此外,P2P使两个点之间直接通信,链路上的监听者是可以知道通信双方的身份的,发送方和接收方也知道彼此的身份,因此P2P网络本身并不具备匿名性,如Tox、RetroShare、Scayl等。
二、匿名通信技术
(一)匿名通信介绍
匿名通信技术是指通过一定的方法将数据流中的通信关系加以隐藏,使窃听者无从直接获知或推知双方的通信关系和通信的一方。根据所要隐藏的信息不同,可将匿名保护形式主要分成三种类型:发起者匿名,保护通信发起者的身份信息;接受者匿名,保护通信中接受者的身份信息;发起者/接受者的不可连接性则是通过某种技术使通信中的信息间接地到达对方,使发送者和接受者无法被关联起来。当通信具有发送者匿名或接受者匿名情况下,肯定有发送者/接受者的不可连续性,但具有发送者/接受者的不可连接性并不一定有发送者匿名或接收者匿名,比如有些情况下发送者和接收者相互知道对方身份,但他们之间的通信关系并不一定被其他成员知道,即有发送者/接收者不可连接。
(二)基于广播/多播的匿名通信
基于广播/多播的匿名通信的核心思想是:在系统运行的每个周期,每个参与者包括发送者都向系统中每个成员广播一个报文。通过在接收到的所有报文上施以运算,每个参与成员能够计算出所要广播的消息内容,而无法推断出发送者的身份。 通过这种广播方式,也可以很容易实现发送者匿名。如果发送者只希望将消息发送给某个特定成员,并且对其他成员屏蔽接收者的身份,即实现接收者匿名,可以通过非对称加密的方式,用该成员的公钥对报文进行加密。
但是上述方式存在严重缺陷:一是广播引起信道冲突;二是报文数量过多。每次报文发送中都需要每个成员的参与,将导致效率和健壮性方面的问题。因此,纯粹基于广播/多播的匿名通信得应用并不多,DC-Nets为其典型应用,其他的如K-AMT(K-ANoNymous Message TraNsmissionN)则在DC-Net基础上进行了优化;Herbivore则将DC-Nets与Mix技术进行了结合。
(三)基于单代理技术的匿名通信
代理服务器技术在普通网络中有着大量的应用,同样可用于解决匿名中的实际问题。例如在客户机和服务器之间加入一个代理,客户机与服务器之间的全部通信经过代理转发,则服务器所能观察到的将是代理而非客户机。对服务器而言,客户机达到了发送者匿名。Anon.penet.fi(也称Penet)是第一个严格意义上提供匿名服务的实用系统,用于在电子邮件传输中提供发送者一名服务;ANoNymizer提供匿名的Web访问服务;LPWA(LuceNt PersoNalized Web Assistant)是LuceNt推出的个性化Web助手,可提供发送者匿名。
虽然但代理技术简单易用,但是信任、信息过于集中,一旦代理被攻陷,系统中所有信息都将暴露。
(四)基于Mix的匿名通信
Chaum Mix的基本思想是通过使用中间节点来变换和混杂来自多个用户的消息,使窃听者无法确定输入消息和输出消息的对应关系,从而无法跟踪某条消息的传输路径,发现“谁跟谁通讯”的事实。一个MIX节点是指对消息进行存储转发的一台计算机,如图1所示。它接收来自不同源的定长消息,并对消息进行加密变换,然后转发。如果消息通过网络中由多个节点构成的MIX路径进行传输,则只要其中一个MIX是可信的,就可以提供足够的匿名保护。用户在发送消息之前必须确定一条MIX路径,并获得该路径上所有MIX节点的RSA公钥,随后构造如下消息:
M0=K0(R0,M)
M1=K1(R1,M0,A0)
M2=K2(R2,M1,A1)
....
Mn=Kn(Rn,Mn-1,An-1)
用户最终构造出消息Mn,Mn发送至第一个节点N,N节点用自己的私钥解密得到Mn-1,然后发送给节点N-1,N-1节点用自己的私钥解密数据得到Mn-2,以此类推,最后的节点M0得到用户发送的消息M。可以看出,在没有掌握MIX节点密钥的情况下,是无法跟踪通信路径的。同时,为了隐蔽输入输出消息的时序对应关系,节点还维护了一个消息缓冲池,并仅在缓冲池满时乱序输出消息。
除了发送者可以匿名地向接受者发送消息之外,Chaum还提出了一个方案可以使接受者可以匿名地应答。发送者首先选择一条回路,然后采用前面的方法构造一个匿名应答地址消息,该消息的消息体部分是空的。然后把该消息放入其他消息的消息体中传给接收者。接收者解密该消息后,按照消息体中的回路信息进行应答。
基于Mix的匿名,容易受到出口节点漏洞***,因为出口节点解密后将得到原始消息;此外,要满足用户的匿名需求,网络需大量专用于提供匿名的主机,而且只有在大量用户加入到匿名系统中的情况下用户才能获得隐私保护,这不仅增加了配置的话费,而且也不实用。因此,从发布至今,几乎每个商业隐私保护项目,如Freedom、SafeWeb都以失败告终。
(五)基于P2P的匿名通信
在匿名通信中引入P2P技术,可以解决单代理系统信任、流量过于集中,Mix系统服务方投入过大、管理复杂的问题。其基本思想是:将信任和资源分布,而非集中,由于没有任何集中的目标,能更好地防止审计。基于P2P的匿名通信大多融合了Mix的思想,以达到匿名的目的,如Crowds、Hordes、JAP、Tarzan、MorphMix等;少数则采用了广播/多播技术,如P5(Peer-to-Peer Personal Privacy Protocal)通过一个树状结构,形成一个匿名广播信道,每个参与者可以根据匿名和实时通信需求确定加入点。
三、匿名性消息服务
目前,网络上常见的用于通信的消息服务如表1所示。其中Bitmessage、TorChat均提供了发送者和接收者匿名,两者的匿名性均采用了Mix的思想,至于哪个匿名性更好,尚无定论。此外,Bitmessage要求进行工作量证明,速度相对较慢。
表1 常见消息服务对比
不可靠 | P2P | 开源 | 工作量证明 | 发送者匿名 | 接收者匿名 | 移动版本 | 应用程序或者Web | 附件支持 | 分布式 | 离线消息 | |
Bitmessage | Yes | Yes | MIT | Yes | Yes | Yes | Beta, requires server | Application | 220KB | Yes | Up to 28 days |
Standard Email | No | No | Depends | No | No | No | Yes | Both | Yes | No | Yes |
Email + GPG | Yes | No | Depends | No | No | No | Yes | Both | Yes | No | Yes |
XMPP + OTR | Yes | No | GPL V2.1 | No | No | No | Yes | Application | No OTR, not trustless | No | Yes |
TorChat | Yes | Yes | GPL | No | Yes | Yes | No | Application | Yes | No | Queued |
Skype | No | No | No | No | No | No | Yes | Application | Yes | No | Yes |
Tox | Yes | Yes | GPL | No | No | No | Yes | Application | Yes | Yes | Queued |
Scayl | No | Yes | No | No | No | No | Alpha | Application | Yes | ||
I2P Bote | Yes | Yes | GPL V3 | No | Yes | Yes | Yes | Application | Yes | Yes | Up to 100 days |
CryptoCat | No | No | GPL | No | No | No | Yes | Both | No | No | No |
IRC | No | No | Yes | No | No | No | Yes | Both | No | Yes | Depends |
SMS | No | No | No | No | No | No | Yes | Application | Yes | No | Yes |
RetroShare | No | Yes | No | No | No | Yes | |||||
Freenet + Frost | Yes | Yes | GPL | No | Yes | Yes | No | Application | Yes | Yes | |
Freenet + FMS | No | Yes | No | No | Yes | No | Application | No | Yes | ||
Freenet + Freemail 0.2 | No | Yes | GPL | No | No | No | No | Application | Yes | Yes | |
Freenet + FLIP | Yes | Yes | No | No | No | No | Application | No | Yes | ||
EMP | Yes | Yes | BSD | No | Yes | No | Yes | Application | No | Yes | Up to 30 days |
四、小结
P2P和匿名通信技术具有很多应用场景,其中,P2P技术本身没有匿名性的特性,而匿名通信技术需要P2P技术进行去中心化,实现信任和风险的分散,进而提升匿名性。目前,Bitmessage和TorChat都是P2P和匿名通信技术融合的产物,能够实现发送方、接收方的匿名。