一些典型P2P文件分享应用及其安全问题综述

2016-12-19 02:45杨克俭杨天郁冯晓娟
河北建筑工程学院学报 2016年3期
关键词:数据包客户端加密

杨克俭 杨天郁 冯晓娟

(1.河北建筑工程学院信息工程学院,河北 张家口 075000;2.张家口市卫生监督所,河北 张家口 075000;



一些典型P2P文件分享应用及其安全问题综述

杨克俭1杨天郁2冯晓娟3

(1.河北建筑工程学院信息工程学院,河北 张家口 075000;2.张家口市卫生监督所,河北 张家口 075000;

3.张家口市桥东区住房保障和房产管理局,河北 张家口 075000)

P2P架构被广泛应用于文件分享系统中.有别于传统的服务器-客户端架构,P2P架构是去中心化的,这使得P2P文件分享系统具有成本低、可扩展、匿名性好、容错性强等特点.但与此同时,P2P网络也有很多新的安全问题.从几个大规模流行的P2P文件分享应用入手,介绍了P2P网络的历史、一些安全性问题以及简单的防范手段.

P2P架构;安全性问题;防范手段

1 介 绍

在传统的计算机网络中,服务器-客户端(server-client)架构是最常用的信息传输架构之一,参与信息交换的节点机器可以从功能角度被分为两类:数量较少的高性能服务器(server)响应数量较多的低性能客户端(client)的请求.在这种架构中,服务器和客户端是“严格分离”的,即一个节点要么是服务器,要么是客户端.相对的,在分布式P2P(Peer-to-peer)架构中,一个节点既可以是发送请求的客户端,也可以作为服务器来响应请求[1].具体来讲,一个P2P网络可以用来分享各种服务,网络中的节点可以直接连接其他节点获取相应服务而不需要通过任何中间节点进行中转.这样的P2P网络一般被称为“纯P2P网络”,即网络中的节点都是等价的,移除网络中的任意节点都不会对网络本身提供的服务造成任何影响.除此之外,还有一种“混杂型P2P网络”,这种网络中存在一些中心节点用来提供额外的服务.

如果用网络的观点考察人类社会,每个人既是资源的提供者也同时是消耗者,也可以视为一个分布式的网络,因此对于P2P网络的研究是非常有意义的.缺少了中心服务器的控制,一个P2P网络通常会模拟甚至放大人类社会中的社交行为,例如在知识网络(Knowledgenetwork)中出现的信息完整性问题也出现在P2P网络中[2,3].本文对历史上几个典型的P2P应用及其安全性做了一个回顾.

2 三个典型的P2P文件分享应用

2.1 Napster

图1 Napster的P2P架构

作为第一个大规模流行的P2P应用,Napster是典型的“混杂型P2P架构”的音乐分享软件.Napster允许用户通过P2P的方式分享MP3音乐文件,同时提供了一个中心搜索服务器[4].在后面的分析中可以看到,任何中心节点都会让整个P2P网络易于受到攻击,这也是“混杂型P2P网络”的最大隐患.

Napster的流行始于1999年,高峰时有超过800万用户,在2001年时由于法律问题而关闭.其使用了“混杂型P2P架构”:一个中心服务器被用于文件搜索和用户配对.具体来讲,用户向中心服务器发出下载MP3文件的请求,服务器寻找拥有此文件的用户并将其和请求者配对,之后MP3文件在两个用户间进行传输.网络拓扑结构如图1所示.Napster的P2P特性体现在其中心服务器只用来进行文件索引和用户配对,并不会储存任何具体的MP3文件,也不会在用户下载文件时进行中转.

作为一个较原始的P2P应用,Napster在安全性上有很多不足之处.首先,作为一个音乐分享软件,其P2P协议理论上只允许用户分享MP3文件,但Napster服务器并没有足够的能力检测被分享文件的真实内容.一些工具可以将任意文件“包装”成MP3文件来绕过Napster服务器的检测.

其次,当用户在Napster中心服务器搜索文件时,用户状态是完全暴露给中心服务器的,这违背了P2P网络匿名性的特点.另外,用户之间通过TCP协议分享文件,而TCP协议本身是不考虑安全传输的,这使得流量监测和嗅探攻击成为可能[5].

最后,Napster的架构本身就是脆弱的.如上所述,Napster使用了一个中心服务器进行文件索引和用户配对.显而易见,一旦中心服务器被攻击,无论是物理攻击还是分布式DoS攻击,整个P2P网络都会瘫痪.

作为第一个成功的P2P应用,Napster引领了使用这种架构的风潮,很多应用改进了Napster的“混杂型P2P”架构,试图让应用变得更高效、更安全.

2.2 Gnutella

Gnutella最初是作为America Online的一个附属产品在2000年前后开发,虽然官方的开发很快就停止了,但一些用户对软件进行了逆向工程,之后这个应用就逐渐流行起来.

Gnutella也是一个文件分享应用,但与Napster不同,Gnutella并没有使用中心服务器来处理用户查询,而是采用了“点对点拓扑结构[5]”.这是一种“纯P2P”架构,系统中的每个节点既是服务器,又是客户端;每个节点都和其他节点相连接,且都可以处理或转发其他节点的查询请求(图2).和Napster相比,Gnutella的架构对攻击具有更高的耐受性,系统中的任意节点下线或停止工作都不会对整个网络有特别大的影响.

图2 Gnutella的分布式P2P架构

当一个用户想要下载某文件时,他首先会向其邻居节点发出查询请求,如果邻居节点没有相应文件,查询请求会被转发给其各自的邻居节点.在每次转发时,一个TTL(Time-to-live)计数器的值都会被减小,当计数器减小到0时仍未找到文件,查询就会停止.如果文件被成功找到,请求发起者会直接从文件所有者处下载.下载过程与Napster几乎相同:Gnutella不使用任何中转或缓存,文件直接在用户之间传输.

由于Gnutella使用了“纯P2P”的架构,不设有中心服务器,网络中的每个节点只能“看到”网络的一小部分,同时也不知道网络结构是否变化.因此,为了保持与Gnutella网络的连接,每个节点都必须定时与其邻居节点通信,以确认对方是否仍然在线,并更新网络结构.当一个节点收到其邻居的通信请求时,会回复一个包含自身基本信息的报文,如端口、IP地址、分享文件总数等.根据分析显示,这种周期性的通信占到网络总流量的一半[5]左右,可见这种设计是非常低效的.

Gnutella网络的另一个问题在于低速节点对于整个网络的连通性有巨大影响.当某节点响应速度很低时,其收到请求的数量会远大于能够响应的请求数量,因此一段时间后节点就会进入“假死”状态:即此节点仍在网络内,但对网络完全没有贡献.一般情况下,网络内会存在多个假死节点,这导致整个网络被隔断成一些子网,子网内的节点都是正常节点,而子网间的通讯被假死节点阻塞.

此外,Gnutella的用户对于是否分享文件有完全的自主权,根据[6]的统计显示,70%的用户不分享文件,这导致了25%的用户承载了99%的网络流量.由于Gnutella的架构并不能强制用户分享文件,因此“自私的用户”永远会存在,这使整个网络变得非常低效.

2.3 BitTorrent

在Napster和Gnutella中,用户采用一对一的方式下载文件,当需要下载的文件很大时,这种方式就变得非常没有效率:文件提供者很可能并不能总保持在线.为了改进文件分享效率,Bram Cohen在2001年开发了BitTorrent.在BitTorrent中,一个分享的文件需要被分割成很多“片(pieces)”和“块(blocks)”,一般情况下,一个文件片大小为512 kB,一个文件块大小为16 kB.下载文件时,BitTorrent允许一个用户从多个邻居节点以并行方式下载文件片.这给下载速度和稳定性带来巨大的提升.

为了分享文件,用户首先需要制作一个种子文件,并将种子文件上传到一个tracker服务器.种子文件中包含了被分享的文件片的数量、tracker服务器的IP和端口、文件片的SHA1哈希表(用于验证文件片的完整性[7]).当其他用户想要下载此文件时,首先需要从tracker服务器中下载种子文件,获取拥有此文件的用户IP地址,根据种子文件内容和相应地址开始下载.

为了解决Gnutella中“自私的用户”的问题,BitTorrent协议会定期检查用户的分享率,当某用户的分享率过低时,根据协议,这个用户的下载速度就会被强制减小,甚至停止[7].但需要注意的是,BitTorrent本质上是一个P2P网络,具体的文件下载操作只存在于节点之间,因此分享率是易于伪造的,甚至能够被直接绕过.

3 安全问题

上述介绍的P2P文件分享应用有一些共同的安全性问题,而这主要来源于P2P网络分布式和匿名性的特点[8].根据[9],P2P网络的主要安全性问题有:自私的用户、社交攻击、流量监测、分布式拒绝服务攻击、内容校验以及恶意软件.

如上所述,“自私的用户”指的是只下载而不分享的用户.这种用户会让整个P2P网络变得不平衡,即网络中的大部分上传流量由很少一部分用户所贡献.这种不平衡性会让网络总传输速度大大低于一个平衡网络所能达到的理论最大值.

社交攻击指的是一些缺乏经验的用户可能会无意识地将敏感信息暴露给其他用户[9].这些信息可被用来获取用户的密码甚至整个硬盘的数据.

某些用户会永远保持对P2P网络的连接,并监视用户间的通信.当这些用户也参与P2P网络内的文件分享时,这种“超级节点”对整个网络是有益的.但更多情况下,一些实体(如ISP)只监视网络而并不做出任何贡献.无论是哪种情况,这些节点的行为客观上相当于对其他用户的监听,并可以通过收集到的数据分析出其他用户的习惯和身份(对于ISP,甚至可以强制关闭P2P流量),这些都违背了P2P网络匿名性的特点.

作为服务器-客户端架构网络中的一种臭名昭著的攻击方式,分布式拒绝服务攻击也存在于P2P网络中,其目的在于使一个用户或整个网络瘫痪.攻击者会持续向被攻击者发送无意义的数据包[9],从而耗尽被攻击者的资源,使其无法提供正常服务.与服务器-客户端架构相比,P2P网络对分布式拒绝服务攻击的耐受性更高.由于P2P网络的去中心化特性,没有任何一个用户负责响应所有的请求.因此即便一个甚至一些用户被攻击至瘫痪,整个P2P网络也不会受到太大的影响.当然,理论上如果有足够多的攻击资源,可以使网络中超过一半的用户瘫痪,则整个P2P网络就会受到致命的影响.

在所有的攻击手段中,最难以防范和应对的就是内容校验.在上文介绍的各种P2P文件分享应用中,即使存在中心服务器,其也不承担任何文件验证与传输功能,因此P2P网络并没有任何强制性措施保证用户所发送的真实内容与其声称的内容相符.这是恶意软件在P2P网络中更容易传播的最大原因.防范这种攻击的最好方法不是判断文件的真实性而是判断用户是否可信.一些P2P应用[10,11]允许用户对其他用户打分,并以此给用户评级或过滤掉恶意用户.但需要注意的是,由于P2P网络的去中心化特性,这并不能从根本上解决内容校验的问题,甚至连评分本身也是不可信的.

4 P2P中的加密技术

在P2P网络中,有两种加密技术被广泛应用以解决上面提到的部分安全问题.第一种是通过加密以实现流量混淆以避免ISP或其他实体对网络的监视[12].第二种是每个用户把传给其他用户的文件内容加密,直到这些用户将文件再上传给其他人时才可以解密[13].这种加密被用来对抗“自私的用户”.

为了混淆流量,用户间传输的数据会使用Diffie-Helman算法加密.这种方法可以有效防范深度包检测技术(Deep packet inspection).深度包检查技术会检查数据包的具体内容,通过对内容的加密,显然可以有效避免这种检测.但互联网上的每个应用都有特定的数据流量,包括数据包来源、目的地、大小、通信时间等,上述特性都可以帮助检测者判断数据类型.这种方法叫做统计协议检测(Statistical Protocol Identification),即通过数据包的统计特性判断其所属的协议或具体应用,如视频流、P2P或VoIP.因此,简单的加密是不够的,想要成功对抗流量监测,需要使用更多数据伪装技术.

[12]解释了如何通过修改BitTorrent客户端来实现数据加密和流量混淆.首先,两个用户之间会分享一个随机密钥以加密数据包内容从而完全避免深度包检测.其次,为了降低数据流量与原始BitTorrent流量的相似度,一种叫做填充信息的数据包会随机在用户间传输.这种新的数据包增加了数据流量的不确定性,从而能一定程度避免统计协议检测.由于数据包的发送频率没有改变,因此[12]的方法不能做到完美的流量混淆,但这个方法已经可以抵御很多通用协议检测技术.

[11]基于BitTorrent介绍了一种“先兵后礼”的方法来对抗“自私的用户”.做种者首先将所有文件片加密,再将其传输给各个邻居用户,每个文件片附带一个子密钥.当用户A将自己收到的文件片传输给用户B时,可以同时收到用户B的子密钥,当用户A收集到所有子密钥时,才能解密出完整的文件.这种方法强制使网络中的每个用户都对文件分享有所贡献,从而减少了一部分“自私的用户”.

5 结 论

本文讨论了历史上几个重要的P2P文件分享软件、其各自的安全性隐患以及P2P网络中一些常用的加密技术.从Napster到BitTorrent,P2P网络获得了巨大的成功.但这种成功也伴随着巨大的风险:低效的网络,难以保证的匿名性、数据完整性,不断传播的恶意文件等.本文着重从架构角度阐释了部分风险的产生原因,以及可能的防范手段.之后着重介绍了P2P文件分享系统中常用的两种加密技术.虽然现在P2P文件分享软件已经非常流行,但对于其协议的设计及安全性的分析仍然是一个开放的问题.

[1]Schollmeier,R.A definition of peer-to-peer networking for the classification of peer-to-peer architectures and applications.in Peer-to-Peer Computing,2001.Proceedings.First International Conference on.2001.IEEE

[2]Kak,S.,The nature of physical reality.1986:Lang

[3]Kak,S.,The architecture of knowledge.CSC,New Delhi,2004

[4]Kim,J.-T.,H.-K.Park,and E.-H.Paik.Security issues in peer-to-peer systems.in The 7th International Conference on Advanced Communication Technology,2005,ICACT 2005.2005.IEEE

[5]Ding,C.H.,S.Nutanong,and R.Buyya,P2P Networks for Content Sharing.arXiv preprint cs/0402018,2004

[6]Chambers,C.,J.Dolske,and J.Iyer,TCP/IP Security.LinuxSecurity.com,http://www.linuxsecurity.com/resource_files/documentation/tcpipsecurity.html,1998

[7]Erman,D.,D.Ilie,and A.Popescu.BitTorrent traffic characteristics.in 2006 International Multi-Conference on Computing in the Global Information Technology-(ICCGI'06).2006.IEEE

[8]Hamra,A.A.,A.Legout,and C.Barakat,Understanding the properties of the bittorrent overlay.arXiv preprint arXiv:0707.1820,2007

[9]Balfe,S.,A.D.Lakhani,and K.G.Paterson.Trusted computing:Providing security for peer-to-peer networks.in Fifth IEEE International Conference on Peer-to-Peer Computing(P2P'05).2005.IEEE

[10]Sch fer,J.and K.Malinka.Security in peer-to-peer networks:Empiric model of file diffusion in bittorrent.in Internet Monitoring and Protection,2009.ICIMP'09.Fourth International Conference on.2009.IEEE

[11]Kun,H.and W.Lu.Research of trust model based on peer-to-peer network security.in Information Technology and Applications(ITA),2013 International Conference on.2013.IEEE

[12]Rice,D.O.A Proposal for the Security of Peer-to-Peer(P2P)Networks:a pricing model inspired by the theory of complex networks.in 2007 41st Annual Conference on Information Sciences and Systems.2007.IEEE

[13]Zink,T.and M.Waldvogel.Bittorrent traffic obfuscation:a chase towards semantic traffic identification.in 2012 IEEE 12th International Conference on Peer-to-Peer Computing(P2P).2012.IEEE

Review on the Sharing and Applications of Some Typical P2P File and Their Security Issues

YANGKe-jian1,YANGTian-yu2,FENGXiao-juan3

(1.Hebei University of Architecture,Zhangjiakou 075000,China;2.Health Surpervision Institute of Zhangjiakou,Zhangjiakou 075000,China;3.Zhangjiakou City Qiaodong District Housing Security and Housing Authority,Zhangjiakou 075000,China)

P2P architecture is widely used in file sharing systems.Different from the traditional server-client architecture,P2P architecture is decentralized,which provides a scalable,low-cost,anonymous,and fault-tolerance mechanism to the P2P file sharing system.In this paper,starting from the sharing and applications of some popular P2P files,the history,some security issues and simple protection methods of P2P network are introduced.

P2P architecture;security issues;protection methods

2016-05-20

杨克俭(1962-),男,副教授,从事计算机应用研究.

TP 3

A

猜你喜欢
数据包客户端加密
二维隐蔽时间信道构建的研究*
一种新型离散忆阻混沌系统及其图像加密应用
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
如何看待传统媒体新闻客户端的“断舍离”?
一种基于熵的混沌加密小波变换水印算法
SmartSniff
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
加密与解密