1P2P网络的安全问题分析摘要本文介绍了P2P的基本概念以及特点,P2P网络通过直接交换方式在大量分散的计算机之间实现资源及服务共享,其具有分布式结构以及能够充分利用网络资源的特性,使得它在文件共享,流媒体,即时通信,匿名通信等应用中发挥了巨大作用。分析了在P2P网络及其应用中的一些安全问题,并针对不同的情况提出了相应的解决方案。关键词P2P,安全性,文件共享,流媒体,即时通信,匿名通信一、P2P概述P2P即Peer-to-Peer,称为对等计算或对等网络。P2P技术主要指由硬件形成连接后的信息控制技术,其主要代表形式是基于网络协议的客户端软件。P2P起源于最初的互联网通信方式,如通过局域网互联同一建筑物内的PC。因此从基础技术角度看,P2P不是新技术,而是新的应用技术模式[1]。学术界、工业界对于P2P没有一个统一的定义,Intel将P2P定义为“通过系统间的直接交换所达成的计算机资源与信息的共享”,这些资源与服务包括信息交换、处理器时钟、缓存和磁盘空间等。而IBM将P2P定义如下,P2P系统由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体[2]。虽然各种定义略有不同,但共同点都是P2P打破了传统的C/S模式[3]:(1)网络中的不同节点之间无需经过中继设备直接交换数据或服务,每个节点的地位都是对等的,拥有对等的权利和义务,既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。(2)网络服务从“中心化”转向“边缘化”,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个2网络的负载均衡。(3)P2P技术可以使非互联网络用户很容易加入到系统中,理论上其可扩展性几乎可以认为是无限的。(4)P2P技术使所有参与者都可以提供中继转发的功能,因而大大提高了匿名通信的灵活性和可靠性,能够为用户提供更好的隐私保护。(5)P2P是基于内容的寻址方式,内容包括信息、空闲机时、存储空间等,用户直接索取信息的内容而不是地址。P2P技术的优点体现在以下几个方面[4]:(1)非中心化:网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。(2)可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能比较容易地满足用户的需要,理论上其可扩展性几乎可以认为是无限的。例如:在传统的通过FTP的文件下载方式中,当下载用户增加后,下载速度会变得越来越慢,然而P2P网络正好相反,加入的用户越多,P2P网络中提供的资源就越多,下载的速度反而越快。(3)健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。(4)高性价比:性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。目前,P2P在这方面的应用多在学术研究方面,一旦技术成熟,能够在工业领域推广,则可以为许多企业节省购买大型服务器的成本。(5)隐私保护:在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。(6)负载均衡:P2P网络环境下由于每个节点既是服务器又是客户机,减少了3对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。二、P2P网络面临的安全威胁及目前的安全机制安全问题是一直伴随着互联网发展的重要课题,在P2P网络中更是如此[5]。由于各对等点可以随时地加入和退出网络,因此给网络带来极大的随机性和不确定性,造成网络带宽和信息的不稳定性,病毒也可以在共享的对等网络空间中自由复制和感染文档。另外,网络和节点的负载平衡也是应考虑的问题,洪水般的恶意请求引发的拒绝服务攻击可能导致系统的崩溃,这些都是在P2P网络中系统安全面临着巨大的挑战[6]。2.1安全威胁2.1.1路由攻击在P2P网络中,每个节点都是通过和其他节点进行交互来构造自己的路由表,故而攻击者可以通过向其他节点发送不正确的路由信息来破坏其他节点的路由表,这将会导致其他节点将查询请求转发到不正确或不存在的节点上。在这种情况下,即使是进行重传,查找消息也还是一样会被发送到不正确的节点上。由于在这种攻击中,攻击者是按照正常的方式和系统其他节点交互,因而在表现上和普通节点是相同的,也就不可能把它从路由表中删除。2.1.2存取攻击攻击者对于查找协议正确执行,但对于自身节点上保存的数据拒绝提供,使得其他节点无法得到数据。这种情况的出现,会导致P2P网络中的搭车者(Freerider)增多,破坏系统网络建立起来的信任机制以及已有的激励机制。这种自私的行为最后会极大的损害网络的整体利益。2.1.3行为不一致攻击攻击者对网络中距离比较远的节点进行攻击,而对自己邻近的节点却表现出一切正常的假象。远方节点能发现这是一个攻击者,但邻近节点却认为这是一个正常的节点。2.1.4目标节点过载攻击4这是一种DoS(拒绝服务类型)类型的攻击,攻击者可以向某些特定目标节点发送大量的垃圾分组消息,从而耗尽目标节点的处理能力。在一段时间后,系统会认为目标节点已经失效退出,从而将目标节点从系统中删除。另外还可以利用DHT(分布式哈希表)的不完善性,通过构造恶意输入,使哈希表出现“最坏情况”的时间复杂度,从而使系统性能退化,达到拒绝服务攻击的目的。2.1.5系统攻击P2P网络是一个动态变化的网络,影响网络稳定的因素非常多。当出现多个节点同时并发加入系统时,或者当时间足够长、错误不断累加到一定程度时,都有可能使网络不稳定,如果没有很好的容错性方案,攻击者就可以利用这些漏洞来发动攻击。比如通过控制大量节点不断的加入和退出来扰乱系统,引起大量不必要的数据传输,从而破坏P2P网络的稳定性等。2.1.6分隔攻击现在的P2P系统大多采用bootstrap机制,新节点的初始路由信息是在加入系统时和系统中现有节点进行通信而获得的。如果一组攻击者节点(其中某些节点可以是现实网络中的真实节点)已经构成了一个虚假网络,使用和真实网络相同的协议,这时若有新节点把这个虚假网络中的某个节点作为初始化节点,那么将会落入到这个虚假网络中去,与真实网络分隔开来。2.1.7防火墙漏洞攻击由于P2P网络节点既可以位于公网,也可以处在内部局域网。P2P软件经过特殊设计,能够突破防火墙使内外网用户建立连接,这就像是在防火墙上开放了一个秘密通道,使得内网直接暴露在不安全的外部网络环境下,攻击者就有可能利用它来绕过防火墙,达到攻击内网用户的目的。2.1.8P2P带来的新型网络病毒传播问题P2P网络提供了方便的共享和快速的选路机制,为某些网络病毒提供了更好的入侵机会。而且由于参与P2P网络的节点数量非常大,因此通过P2P系统传播的病毒,波及范围大,覆盖面广,从而造成的损失会很大。在P2P网络中,每个节点防御病毒的能力是不同的。只要有一个节点感染病毒,就可以通过内部共享和通信机制将病毒扩散到附近的邻居节点。在短时间内可以造成网络拥塞甚至瘫痪,甚至通过网络病毒可以完全控制整个网络。52.2一些针对性解决方案为了防止路由攻击,首先,关键字只能分配给已经认证了的可靠节点,让其他节点可以识别路由的更新消息的真伪,例如采用公钥机制认证的节点。其次,在节点转发时,检测查找是否向着更接近目标节点的方向进行。如果不是,就可以断定路由存在错误,应停止查找,返回到上一个正确节点从新进行发送。为了能够进行这种检测,需要每个节点具有跟踪查询的能力,同时路由的每一步都必须对查询者是可见的。存取攻击可以采用在系统存储层实现数据复制来解决。但在数据复制过程必须保证不能出现单个节点控制全部复制数据的情况。对于行为不一致攻击,我们可以采取远方节点给攻击者的邻居节点发送一个消息,告诉它攻击者的信息,不过该方法需要公钥和数字签名机制的支持。应对网络病毒可采用现有的防毒体系,针对个人节点和超级节点建立防护。这也对P2P系统安全性和健壮性提出了更高的要求,需要建立一套完整、高效、安全的防毒体系。至于目标节点过载攻击,目前还没有一个较好的解决办法,但可以通过数据复制在一定程度上减轻这种攻击对整个系统的危害程度[7]。对于系统攻击,为了保证系统的稳定性,P2P系统必须具有较好的容错机制,就算某些节点失效,仍可以保证路由查找高效进行。除此之外,系统还必须具有一些维护机制,通过对系统进行实时维护来保证所构建的虚拟网络的全局连通性以及查找算法的高效性。基于安全性令牌的安全模型来应对分隔攻击。在该模型中,令牌包含一组由签发者用密码的方式签署的相关声明。请求节点可以通过安全性令牌服务节点来获得声明,中间节点也可以通过获得认证来向目标节点转发消息。如果进来的消息没有必需的声明,则系统可以忽略或拒绝改消息,从而解决该问题。2.3P2P安全通信技术P2P安全通信主要涉及P2P内容安全、P2P网络安全、P2P自身节点安全和P2P中对等节点之间的通信安全。目前采用的技术主要有[8]:(1)对等诚信P2P网络技术能否发挥更大的作用,取决于它能否在网络节点之间建立信任关系。考虑到集中式的节点信任管理既复杂又不一定可靠,P2P网络中应该考虑对等诚信模型。实际上,对等诚信由于具有灵活性、针对性,并且不需要复杂的集中管理,可能是未来各种网络加强信任管理的必然选择,而不仅仅局限于对等6网络。(2)数字版权保护网络社会与自然社会一样,其自身具有一种自发地在无序和有序之间寻找平衡的趋势。P2P技术为网络信息共享带来了革命性的改进,而这种改进如果想要持续长期地为广大用户带来好处,必须以不损害内容提供商的基本利益为前提,这就要求在不影响现有P2P共享软件性能的前提下,一定程度上实现知识产权保护机制。这种保护机制依赖数字版权管理,这种管理采用信息安全技术手段在内的系统解决方法,在保护合法的具有权限的用户对数字媒体的使用,也保护数字媒体创作者和拥有者权利,促进数字媒体市场化的发展。(3)P2P网络安全与节点自身安全P2P网络属于分布式网络体系结构,可以采用诸如防火墙、VPN等传统的网络安全技术,保证P2P网络的安全。对P2P网络中各节点,用户可以采用个人防火墙和防毒软件保护自身的安全。(4)P2P对等节点之间的通信安全P2P对等节点之间的通信安全问题比较复杂,主要包括节点之间的双向认证、节点之间认证后的访问权限、认证的节点之间建立安全隧道和信息的安全传输等问题。目前主要采用安全隧道(网络层、传输层和应用层安全隧道),结合数据加密、身份认证、数字签名等技术,解决节点通信中信息的机密性、真实性、完整性等问题[9]。三、P2P应用中面临的安全问题及目前的安全机制3.1P2P文件共享应用的安全问题分析3.1.1安全问题P2P文件共享强调用户对整个系统的贡献和从系统中获取共享文件的自由,以自由交换和共享资源为目的。系统