一种用于P2P文件共享网络的匿名通信方案

2016-01-24 07:41张信媛陆天波
软件 2015年12期

张信媛++陆天波

摘要:匿名通信主要解决的问题是隐藏通信双方的通信关系,使窃听者无法判断通信双方的身份和通信关系,从而提供人们隐私保护。P2P文件共享网络大多不提供匿名服务,本文提出一种匿名通信方案,用于P2P文件共享网络,该方案采用Crowds匿名通信技术的基本思想,即“把个人隐藏在群体中”,通过概率转发的方式,来决定消息是被直接发送给服务器还是“群体”中的其他成员。除此以外,该方案还提供可调节的匿名度,因为匿名性的获取往往是以性能的牺牲为前提而实现的。因此,可调节的匿名度可以保证不同用户对匿名度和性能的不同需求。

关键词:匿名通信;P2P网络;Crowds协议;文件共享

中图分类号:TP393

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.12.002

本文著录格式:张信媛,陆天波一种用于P2P文件共享网络的匿名通信方案[J].软件,2015,36(12):05-08

0 引言

传统的加密于段,更多地关注于消息内容的机密性,却忽略了对于通信双方身份信息的保护。对于大多数加密技术来说,虽然攻击者要想获取通信的内容非常闲难,但却可以轻而易举的发现通信双方的身份信息,这是因为TCP/IP协议是将消息的发送者与接收者暴露在外的。匿名通信技术,就是用于解决上述问题的。最早的匿名通信技术,可以追溯到1981年,Chaum提出的Mix可以说是匿名通信技术领域至关重要的成果,之后许多研究人员提出的匿名通信技术,都借鉴了Chaum的Mix思想。

互联网的飞速发展在给人们带来便利的同时,也使得更多的个人信息暴露在大众之下。因此,越来越多的领域需要匿名通信技术,以保护用户的隐私。P2P文件共享就是其中的一个例子。P2P毫无疑问是时下最流行的文件共享方式,然而,流行的P2P文件传输协议并不提供用户匿名通信服务。很多人选择借助现有的匿名通信工具,如tor等,来实现P2P文件传输的匿名通信。但是,tor丰要是为web浏览或即时消息等低延迟的应用提供匿名通信服务的工具,大量的P2P文件共享流量将严重威胁tor提供匿名通信服务的能力。因此,对于专门用于P2P文件匿名共享的匿名通信服务系统的需求就变得非常迫切。

本文提出一种基于Crowds的匿名通信方案,该方案可用于为P2P文件共享网络提供可调节匿名度的匿名服务。

1 Crowds

1.1 Crowds原理

Crowds是一种匿名通信方案,它用来提供匿名的web服务。它是一个封闭的系统,参与其中的节点被称为jondos。另外,Crowds通过一个中心服务器Blender来管理所有的jondos。当有新的节点加入到系统中时,Blender会将系统中的节点信息通知给这个新加入的节点,同时也将这个新加入的节点通知给系统中的其他节点。当Crowds中的节点要向某个web服务器发送请求时,它有可能直接将请求发送给web服务器,也有可能将请求发送给系统中的任何jondos,其概率分别是pf和l-pf。当系统中任何一个节点接受到来自其他jondos转发的请求时,它也按照上述的方式来处理该请求。图1表示在一个Corwds中,请求被发送出去的几种路径,分别是1→5→server:2→6→2→号server:3→1→6→server:4→4→server:5→4→6→server:and6→3→server。

1.2 匿名度

匿名通信系统都要具有一定的匿名性,而匿名度,则是衡量匿名性的指标。Crowds的作者Reiter和Rubin在提出Crowds的同时,也第一次将匿名度划分为六个等级。

如图2所示,从左到右分布着六个匿名度,其匿名性依次减弱。对于各个匿名度的解释如下:(这里为了简单起见,对此等级划分的描述是相对于发送者匿名的,但它完全可以延伸到接收者匿名):

Absolute privacy:意为绝对的隐私,表示最强的匿名性。此时,攻击者完全无法判断消息的发起者是谁。

Beyond suspicion:攻击者可能会获取到一些信息,但是却无法凭借这些信息判断消息的发起者是谁。

Probable innocence:此时,攻击者根据已经获取的信息,可以判断,某个节点是发送者的概率大于系统中其他潜在的发送者,但是攻击者并不能判断出该发送者是否是消息的发起者,其匿名度要弱于BeyondSuspicion。

Possible innocence:攻击者根据已经获取的信息,可以有一定的概率去判断消息的发起者另有其人。

Exposed:攻击者已经可以根据获取到的信息,并有很大概率的正确性去判断消息的真正发起者是谁。

Provably exposed:不具备匿名性,攻击者可以判断消息的真正发起者是谁。

若按照上述匿名度的划分来看,一个系统若要称为可以提供匿名服务,则其至少要达到Possibleinnocence的匿名度。

2 用于P2P文件共享的匿名通信方案

P2P文件共享网络通常都不能提供用户匿名下载的功能,瓦相下载文件的两个客户端可以看到对方的地址。本文提出一种新的匿名通信方案,专门用于P2P文件共享网络,为其添加一个匿名层,提供可调节的匿名性。

2.1 匿名机制的实现

本文意在为P2P文件共享网络提供一个匿名层,从而使其拥有一定的匿名性。它汲取Crowds匿名通信方案的丰要思想,同时兼顾效率和匿名性,为用户提供灵活的匿名度选择,满足不同人对匿名性的不同需求。

众所周知,通过P2P下载文件时,服务器会返回一个列表,其中包含该文件的发布者和其他下载者的地址。随后,下载者会通过这个列表,联系到其他的下载者,从而瓦相交换文件块。这种方式大大的减轻了服务器的负担,而且越多的人下载,下载的速度越快。但与此同时,文件的下载者身份却被暴露,从而泄露了下载者的隐私。

同Crowds系统一样,本方案也采用概率转发的方式提供匿名性。我们引入一种冗余节点,该节点不参与文件的下载,仅仅转发其他下载者的请求‘5]。实际上,并不需要某些专门的设备作为冗余节点,P2P系统中的某些下载者,如果它并不参与本次文件的下载过程,那么它就可以作为冗余节点。用n表示参与一次匿名文件下载的结点数,nk表示冗余节点的数量。

建立匿名通信烦的过程如下:下载者向服务器请求他要下载的文件的其他下载者列表,服务器接到请求后,并不是直接把该列表回复给下载者,而是将其发送给Blender,并向Blender请求一系列的冗余节点。Blender接到请求后,将会获取一些冗余节点返回给服务器,服务器再将这些冗余节点连同原列表混合成一个新的列表发送给下载者。这样当下载者通过列表上的节点下载文件时,当他向一个真实的节点请求文件块时,该真实节点相应的返回给他文件块。当他向冗余节点请求文件块时,冗余节点只是简单地转发他的请求给其他的节点,因此当一个节点接收到请求信息时,它并不能判断文件的真实请求者是谁。图3表示匿名的文件下载过程。

由于攻击者并不能判断某次通信请求是否是真实的请求者发起的,因此本文提出的方案具有的匿名度是Probable innocence。由此,可以看出,本方案已经使用户拥有了一定的匿名性。

2.2 可调节的匿名性

匿名度和性能是一对矛盾体,追求匿名性必然会带来性能上的损失。有时,用户希望系统能提供一个高的匿名性,但有时,用户又可能会希望系统能提供一个好的性能,而对于匿名性的要求,则没那么高。因此,本方案将提供一个在匿名性和性能之间可以调节的机制。

当下载者向服务器请求列表时,他向服务器发送他期望的匿名度lk,服务器将lk连带着文件下载者列表一同发送给Blender。Blender根据lk,得出转发概率Pk,和nk个冗余节点。Blender将转发概率pk,和nk个冗余节点返回给服务器,服务器将冗余节点列表及原列表重新生成一个新的列表以连同转发概率pk返回给下载者。

匿名度为lk对应的转发概率为pk,冗余节点的数量为nk。当下载者选择较高的匿名度时,则本次匿名通信中的冗余节点的数量和转发概率也越大,从而提供一个更好的匿名度。当其选择较低的匿名度时,则本次匿名通信中的冗余节点的数量和转发概率就小,从而提供一个较低的匿名度和一个较高的性能。

3 匿名性分析

本文通过信息熵来衡量匿名度的大小。X作为概率分布函数的离散随机输入,则对于每一个发送者来说,它是路径发起者的概率为:

从而可以得到如图4所示的仿真结果。可以看出,匿名度随着转发概率的增加而变大,随着攻击者个数的增加而变小。而增加冗余节点的个数,是一种有效的减少路径中攻击者的方式。但是也可以看出过高的转发概率和大量的冗余节点虽然大大提高了匿名度,但是必然会影响系统的效率。因此,用户可以根据具体的需求,选择其所需要的匿名度。

4 结论

本文基于Crowds的基本思想,提出了一种用于P2P文件下载网络的匿名通信方案。此方案不仅能提供匿名度为Probable innocence的匿名服务,还可以调节匿名度,以满足不同用户对匿名性和性能的不同要求。仿真结果验证了方案的匿名性,并展示了不同的转发概率以及攻击者数目对匿名性的影响。另外,本方案并不改变原有的P2P文件下载网络的工作方式,只是在原有网络的基础上,增加了一个匿名层,因此方案实施的成本很低。