P2P(PeertoPeer)技术即对等技术是提高网络通信效率和网络资源利用率的有效途径,被美国的《财富》杂志称为未来影响Internet的四项新技术之一[1]。
但P2P所定义的分布式的计算环境、连接的脆弱性、用户交互的动态本质以及管理机构的缺乏使其在安全上面临各种挑战。
目前,P2P安全研究工作整体比较薄弱[2],缺少系统的分析;相关的文献往往只对P2P的安全问题一一列举[1-3],或只是对具体安全问题进行阐述[4-5]。
本文以P2P文件共享应用为例,从Peer用户安全、系统行为安全、共享文件的安全三个方面进行分析,为P2P的安全技术研究提供一个比较全面、整体的认识。
1P2P及其文件共享技术P2P系统是具有相同兴趣的用户为直接共享彼此的资源而建立起来的一种分布式的虚拟组织。
用户既是系统资源的提供者,又是资源的消费者。
用户之间直接交互,无需第三方的干预。
文件共享是目前P2P技术最广泛的应用,它利用基于P2P网络协议的客户端软件摆脱了文件交换过程对服务器的依赖,使用户可以直接从其他用户的机器上获取感兴趣的文件,所有的上传、下载行为直接在用户之间进行,而不通过中央服务器,或者中央服务器只起辅助作用。
根据应用中有无中央服务器,可以将P2P文件共享应用分为如下三类[6-7]:(1)集中式。
系统仍保留一个中心实体提供索引以及部分必要的网络服务等,例如Napster。
(2)全分布式。
系统不存在中心实体或服务器,所有用户平等,例如Gnutella。
(3)半分布式。
在上述基础上,引进超级节点,综合了(1)、(2)的优势,例如KaZaA。
这三类结构中,(1)、(3)类结构安全管理比较方便,第(2)类需在分布式环境下建立用户身份标识、认证和授权等,问题较多[4]。
本文的分析将以第(2)类即全分布式的应用为例。
2P2P文件共享应用的安全问题分析全分布式P2P文件共享强调用户对整个系统的贡献和从系统中获取共享文件的自由,以自由交换和共享资源为目的[7]。
系统主体是一系列平等的用户,称为Peer;系统的行为就是Peer的行为,所有的行为都以共享文件为对象,针对共享文件进行。
以下将从Peer用户安全、Peer行为和共享文件三个方面对P2P文件共享应用的安全问题进行分析。
2.1Peer的安全问题分析Peer的安全问题可分为信任问题、身份认证和授权问题以及匿名问题。
2.1.1信任问题P2P系统往往假定成员之间存在着某种信任关系,实际上Peer个体更多的表现是贪婪、自私甚至欺诈的行为。
据统计,在众多的P2P文件共享应用里,25%的文件是伪造文件。
为维护P2P文件共享系统的可靠性,需要对各Peer的可信度进行量化管理,在多个Peer可选P2P文件共享应用安全问题分析杨岳湘,方素华,唐川,王锐(国防科学技术大学计算机学院,湖南长沙410073)摘要:介绍以P2P文件共享应用为例,分别从Peer用户安全、Peer的行为及共享文件三个方面讨论其安全问题,为P2P的安全技术研究工作提供比较全面的认识。
关键词:P2P应用文件共享安全分析SecurityanalysisonP2Pfile-sharingYANGYueXiang,FANGSuHua,TANGChuan,WANGRui(NationalUniversityofDefenseTechnology,ComputerSchool,Changsha,410073,China)Abstract:Inthetext,file-sharingistakenasanapplicationexampletodiscussthesecurityproblemsfromanglesofthePeer,theactionandthesharedfilerespectively,whichisexpectedtoprovideasystematicunderstandingforfurtherresearchinP2P.Keywords:P2P;application;file-sharing;security;analysis的情况下,优先选择信任值较高的对象[8-9]。
目前基于P2P环境的Peer信任模型主要有如下三类:(1)基于PKI的信任模型:由少数超级Peer监督整个系统,定期通告各Peer的信任值。
这种方法易于管理,但不易扩展且存在超级Peer单点失效问题。
例如eDonkey的服务器。
(2)基于局部推荐:Peer通过询问有限个其他Peer来获取某个Peer的信任值,通常利用局部广播实现。
这种方法效率高、易扩展,但只能获取局部片面的信任值。
(3)全局可信度模型:通过邻居Peer相互满意度的多次迭代最终获得全局可信度,如参考文献[5]提出的Trust模型。
这类模型获得的可信度比较高,但效率不高,存在迭代收敛问题。
大规模环境下的P2P应用可以选择扩展性较好的(2)、(3)类模型。
第(3)类模型适用于安全性要求较高的应用,一般的应用第(2)类模型就可以满足。
小规模的P2P应用,特别是动态环境下的应用,可选择第(1)类信任模型。
2.1.2身份认证和授权P2P环境允许Peer自由加入或退出系统,当某个Peer试图加入时,系统很难知道它是否是恶意节点、是否受攻击者控制。
为维护系统安全,对抗假冒身份的攻击,有必要为系统成员建立身份标识和认证机制,以确保登陆系统的Peer与其声称的身份相符合。
传统的分布式环境一般利用单个CA中心为系统成员颁发证书进行集中管理。
但CA中心的单点失效对P2P系统的安全性将会造成致命的影响,况且P2P的目标是尽量避免中心节点的存在,所以集中式CA中心不适用于P2P。
使用多个CA分布式协作有望解决该问题。
为此提出了一种基于椭圆曲线数字签名和密钥分离的分布式认证模型。
但目前分布式CA的研究还存在较多困难,整体进展缓慢。
Sun公司的JXTA平台采取折衷手段,利用平台本身作为内建的证书颁发机构自签发一个根证书,再向Peer发布基于根证书的证书。
这种方式可以为用户获得一定程度的身份保证,但可能受到中间人攻击。
应该在JXTA证书机制的基础上,引入数字签名和加密算法等安全手段,以确保Peer身份的可靠性。
授权是对已认证的Peer授予访问、使用某些资源的权力,通常是紧接着认证进行的。
不同Peer有不同的兴趣取向,因此,P2P应用通常是将成员分组管理并利用组成员资格服务授权其可访问的资源。
另外,授权机制也有助于对共享文件的合法访问。
2.1.3匿名问题匿名是P2P的目标之一,包括保护Peer的敏感信息、隐藏Peer与其所参与的通信之间的关系。
常用技术有MIX、Crowd、FreeNet等匿名协议。
传统的匿名保护往往利用中继转发实现,P2P系统中所有Peer均可参与中继转发,因而更有利于将要保护的Peer隐藏于众多Peer实体之中。
此外,由于P2P系统信息的传输分散于Peer之间进行而无需经过集中的环节,Peer的隐私信息泄漏或被窃听的可能性也大大减小。
P2P系统中用户可能经常加入或退出系统,每个Peer需要拥有系统内部其他成员的信息,以便在加入系统时为其他Peer形成匿名路径,退出时由系统为该Peer原先所在的匿名路径生成新的路径。
然而,P2P成员的动态性使系统匿名集经常变化,Peer很难获得可靠的系统成员信息。
2.2Peer行为的安全问题分析P2P文件共享系统中,Peer的行为主要包括对共享文件的上传、请求、下载和通信传输。
2.2.1上传行为的安全问题P2P以端到端的方式实现文件共享,允许每个Peer直接访问系统内其他成员的硬盘。
其安全隐患是:当一个Peer在向系统开放可共享的资源时,也可能将其他重要的本地信息暴露给其他的Peer。
所以在开放共享之前,每个Peer需要确认被开放的资源,以保护本地系统信息和非共享资源的安全,以免触及本地安全,甚至造成非法用户的远程攻击。
2.2.2请求行为的安全问题P2P网络中与Peer请求行为相关的安全挑战是DDoS攻击,攻击者通过多级、多个傀儡Peer对目标Peer连续发出貌似合理但实际无法满足的请求,并通过传输放大,消耗网络的计算资源和带宽,使局部网络的效率下降直至瘫痪。
其特点是隐蔽性和放大性。
典型的DDoS攻击有Syn-Flood、Smurf等。
解决DDoS攻击应以早期预防和防御手段为主,目标是尽早发现攻击。
系统在发现攻击后,应能够根据攻击的强弱,自适应调整防御策略,阻断DDoS的扩散,使损失最小;尽可能保持服务效率,用负载均衡技术弱化DDoS攻击;利用灾难性恢复机制恢复受攻击的系统。
2.2.3文件下载的安全问题“FreeRider”是当前P2P文件共享应用中普遍存在的一种Peer行为,即存在P2P用户希望以极少的付出或零付出来获得系统的大量资源或服务。
据Gnutella官方统计,仅1%的用户提供了系统的绝大多数共享资源,约30%的用户仍愿意提供资源,但69%的用户却只下载不分享,即所谓“FreeRider”。
“FreeRider”的大量存在会严重降低系统性能,使系统更加脆弱。
通常利用激励机制解决该问题,如北大的Maze信息共享系统就使用了激励机制。
另外,还可以结合2.1.1节所述的Peer之间的信任模型对“FreeRider”通告惩戒。
2.2.4通信传输的安全问题保护通信传输的安全,即保护传输信息的机密性和完整性。
机密性是指保护信息不为非授权用户窃取;完(下转第134页)据显示与处理的分离。
在设计这样一个大型系统的体系结构的时候,需要着重考虑的是如何最大限度地降低开发工作量,提高开发效率,增强系统的扩充性和可维护性。
而对象持久化技术、动态生成控件的技术以及XML技术都是将各种业务需求对象化,并且尽可能地抽取这些对象的特性部分,这是将Web的数据表现和处理最大限度地分离的关键所在。
采用这三种技术来实现办公自动化平台不仅使程序员开发速度显著提高,也使得系统交付用户使用后,后期维护代价大大减小,取得了很好的效果。
参考文献[1]LARMANC.UML和模式应用———面向对象分析与设计导论[M].姚淑珍译.北京:机械工业出版社,2002.[2]AMBLERSW.Buildingobjectapplicationsthatwork:yourstep-by-stephandbookfordevelopingrobustsystemswithobjecttechnology.NewYork:SIGSBooks/CambridgeUniver-sityPress.1998.[3]AMBLERSW.Processpatterns:buildinglargescalesystemsusingobjecttechnology.NewYork:SIGSBooks/CambridgeUniversityPress.[4]AMBLERSW.Designofapersistencelayerseriessoftwaredevelopment.AmbySoftInc.WhitePaper,1998.[5]李靖,韦俊银.实现动态数据结构持久化的渐进式方法[J].计算机工程与应用,2000,(9).[6]张峰,丁香乾,胡瑞,等.异构数据集成交换方案及其在ASP平台中的应用[J].计算机工程与设计,2006,(10).[7]AMBLERSW.Thedesignofarobustpersistencelayerforrelationaldatabases.AmbySoftInc.WhitePaper,2000.[8]RationalSoftwareCorporation.Mappingobjecttodatamod-elswiththeUML.RationalSoftwareWhitePaper,2000.(收稿日期:2007-04-20)应用奇葩(上接第129页)整性则是确保信息完整地从源Peer到达目的Peer,中途无丢失、也没有被非法篡改。