摘要 对P2P网络存在的问题进行了分析,阐述了建立P2P网络信任模型的需求。在对现有P2P网络中的信任模型进行总结归纳后,指出了以后研究的方向。
1、引言
随着Internet的广泛普及,端用户系统资源的丰富,以及网络带宽的快速增加,传统的Client/Server网络应用模式中服务器的性能瓶颈以及单点失效的问题不仅限制了端系统资源的充分利用,同时也越来越无法满足新的分布式应用的需求。而P2P网络在协同工作、分布式信息共享、大规模并行计算等方面显示出的独特优势,使其成为新的发展热点。
P2P网络是基于节点愿意共享资源这一基本假设的,即每个节点共享自己的资源,并从其他节点那里获取自己需要的资源。然而,这种个人为公众提供资源,且节点行为无约束的工作模式导致P2P网络存在三个问题。
(1)搭便车(Free-Riding)问题
Free-Rriding指节点只消费其他节点贡献的资源,而不共享自己的资源。以Gnutella P2P文件共享系统为例,70%的节点是Free-Rider。最新的监测也表明在eDonkey文件共享网络中,大约有80%的节点是Free-Rider。
(2)“公共物品的悲哀”(the Tragedy of the Commons)问题
“公共物品的悲哀”指网络资源作为一种非排他的公共资源,被大多数P2P节点无节制地使用,据统计,P2P数据流量占因特网总流量达60%,并且在用户总数没有显著增长的情况下,P2P数据流量仍然在快速持续增长。事实上,P2P网络理性用户的根本目的是最大化自己效用,而并不考虑网络的整体效用。
(3)不可靠服务和欺诈问题
P2P网络中存在着大量不可靠的服务质量以及欺诈行为。以众多的文件共享应用为例,25%的文件是伪造文件(Faked Files)。而在类似于eBay这样的电子商务中,这种不可靠服务和欺诈行为给用户带来的影响则更为严重。
因此,必须设计有效的机制来规范P2P网络中节点的行为来解决上述三个问题,从而提高P2P服务的可用性,促使节点进行有效的协作并合理使用网络资源。
2、为什么是信任模型
在节点具有自主权利,自组织的P2P网络中,如何来规范节点的行为呢?事实上,P2P网络提供了真实世界中人类交流的网络环境,是以人为中心的网络,与社会网络具有同构性。而信任作为社会存在的一个整体部分,是社会网络中人与人之间的核心关系。人类社会通过基于信誉的信任关系与激励机制来约束人们的日常生活行为。基于信任的P2P网络与人类社会网络的相似性体现在P2P网络中个体之间的彼此交互会为彼此留下零星的“信用”信息;个体对交互对象具有充分的选择权利;个体往往不看重绝对的可靠性或服务质量,即个体可以忍受少量错误的选择带来的损失,比如文件共享应用;个体有义务为网络中的其它个体提供推荐信息。因此,可以利用信任关系刻画P2P网络中节点之间的关系,并采取基于信任的激励机制解决上述问题。
(1)基于信任值提供区分服务
在文件共享P2P网络中,可以根据节点对网络资源的贡献程度,提供区分服务。例如,Kazaa将节点提供的资源与消耗资源的比值作为节点参与到系统中的等级,并将其作为节点享受服务的优先级。BitTorrent中节点根据对方上传的速率决定自己上传的速率。在eDonkey网络中节点根据本地信任值来设定请求节点在下载队列中的优先级。
对恶意使用网络资源的节点进行惩罚。例如R.T.B.Ma提出的激励机制关注于类Gnutella网络中文件传输时的带宽分配问题,根据节点对网络的贡献为其分配带宽资源。当节点共享数据时,贡献值增加从而激励节点共享。当节点从过载节点下载文件时,贡献值减小,从而抑制节点对公共资源的消耗。
基于区分服务的激励机制可促使节点之间合作并合理使用网络资源,从而解决搭便车和“公共物品的悲哀”问题。
(2)根据节点的信任值选择服务提供者
节点可以基于信任值来选择与之进行交易的对方。例如,在eBay网络中,购买信任值较高的商家的产品,从而激励商家保持良好的销售行为并提高可靠的产品。从而有效抑制P2P网络中的不可靠服务和欺诈问题。
2.1 信任的概念
信任是一个多学科的概念,描述了在特定的情境下,一个个体在可能带来不利后果的情况下,愿意相信另一个个体具有某种能力或能够完成某项任务的主观信念。与信任紧密联系的概念是信誉,信誉来自个体的社会网络中,是基于观察到的个体过去行为或过去行为的信息而对个体行为的期望。信誉和信任之间的差别可以用我信任你因为你有好的信誉或我信任你尽管你的信誉不好来说明。由此可见,信誉强调的是一个群体对某一个体或群体的共同的可信赖度,而信任更多强调的是信任个体对被信任方的主观信赖。在本文中所提及的信任指的是信任方对被信任方的主观信任,即信任方根据自己的经验或同时参考被信任方的信誉而得出的被信任方的可信赖程度。在资源共享的P2P网络中,体现节点可信赖程度的不仅包括节点的诸如计算、存储、网络带宽等方面的客观能力,同时与节点参与到P2P网络中的行为特征相关,例如节点的在线时长、友好程度等。在电子商务类的P2P网络中,卖家的可信赖程度与商品说明、与买家的沟通、运送时间、运送及手续费等相关。在实际的应用系统中,将所有影响节点可信度的信任因素进行量化并综合得出节点的可信度并不可行。因此,一般情况下,在P2P网络的信任模型中,根据节点彼此之间对交易的满意程度来确定可信度。
2.2 信誉、信任与互惠的关系
如图1所示,如果节点A对其他节点有互惠行为,那么A就会有好的信誉,从而节点A会被其他节点信任,并在交易中得到其他节点的互惠行为。该图涉及到了信任网络中的互惠原则,或者也可以称之为激励机制问题。正如社会领域,只有当过去的行为对未来有影响时(社会学称之为“未来阴影(Shadow of Future)”现象),人们才有动机去建立彼此间的信任关系。因此,信任模型与激励机制之间具有良好的互动关系,可以有效促进P2P网络中节点之间的合作。
图1 信誉、信任与互惠简单关系模型
3、信任模型分类
在P2P网络中,存在着各种各样的攻击模型,包括:欺诈、假冒、诋毁、联合欺诈、具有前端节点(前端节点一般提供可靠的服务,对合作节点给予公正的评价。但这些前端节点试图通过给予集团内部恶意节点高的正面评价来掩饰恶意节点的行为)的联合欺诈、节点改变ID重新进入网络以及节点间歇性地提供不可信信息和服务,或是累积信誉到了一定高度时,利用其较高的信任值,进行诈骗、诋毁或联合欺诈等攻击行为。目前的信任模型大多集中于解决某几类攻击问题,根据建立信任关系的方法,大致可分为基于可信第三方的信任模型和基于反馈/评价的信任模型两类。
3.1 基于可信第三方的信任模型
这类信任模型采用传统安全体系中的PKI技术,通过网络中的少数领袖节点来监督整个网络的运行情况,并定期通告违规节点或对其进行处罚。这些领袖节点的合法性通过CA颁发的证书加以保证。
这类系统往往依赖于少量中心节点,因此存在单点失效、以及可扩展性的问题。
3.2 基于反馈/评价的信任模型
P2P网络中的信任模型大都属于此类,根据被信任客体的不同,存在为资源建立可信度和为交易节点建立可信度两大类。前者关注于P2P网络中可获取信息的可信度,与信息提供者的可信度并不建立直接联系。在这类信任模型中,节点对信息的可靠性进行判定,并给出正面或负面的反馈评价,并进一步计算其信任值。例如,在文件共享应用Kazaa中,只考虑正面的反馈,采取数据签名的方式来建立可信度,即如果用户认可信息的真实性,则进行签名,信息获得的签名越多,其真实性越高。这种为资源建立可信度的信任模型局限于信息共享的应用,不具有广泛的适用性。下文针对为交易节点建立可信度的信任模型进行说明。
(1)全局信任模型
这类信任模型对网络中所有交易反馈进行分析并为每个节点建立惟一的可信度。
全球最大的拍卖网站eBay通过交易结束后,交易双方分别给出正面、负面或中立的反馈评价,并利用正面评价数减去负面评价数得出某个体的信誉。该方法简单易理解,但无法处理交易者给出的不公正的反馈。S.Kamvar提出的全局信任模型EigenTrust根据节点的交易历史,计算本地的信任度,并考虑节点的推荐信任信息,通过节点间信任度的迭代来实现信任的传播,从而为每个节点计算全局可信度。W.Dou提出了与EigenTrust相似的全局信任模型,解决了EigenTrust在求解全局可信度时解的存在性问题。A.Yamamoto提出的P2P网络分布式信任模型把节点之间的信任关系建模为Web页面的链接,利用Pagerank算法采用分布式的方式来计算节点的信任值。但这种建模方式忽略了节点与不同节点信任关系之间的差别,其合理性值得商榷。L.Xiong提出的PeerTrust为了更有效的评估节点的可信度以及描述P2P社区中各种恶意行为,不仅将对交易满意程度的反馈作为评估信任的参数,同时考虑了交易的总数目,反馈的可信程度,交易的上下文因子、社区上下文因子。仿真结果表明,该信任模型能够有效抑制恶意节点的攻击。L.Mekouar提出了部分分布式P2P网络(例如KaZaa)中的信誉管理机制RMS_PDN。在RMS_PDN中超级节点传递节点之间的信任评价,使每个超级节点能够记录其叶节点对系统的有效贡献并作为叶节点的可信度。但RMS_PDN直接利用所有节点的反馈信息,容易受到恶意节点的联合欺诈攻击。
全局信任模型忽略了信任的私人化特征,对于某个特定的节点,其他节点对他的信任值都是相同的。简单的全局信任模型容易受到恶意节点联合欺诈的攻击。而复杂的全局信任模型需要节点之间合作处理信任信息,计算和通信开销都较大。此外,在大规模的P2P网络中为每个节点计算全局信任值的必要性和可行性仍有待进一步研究。
(2)局部信任模型
已有关于P2P网络的信任模型大多关注于提供机制使得节点可以根据共享信息为给定节点计算局部信任值。Y.Wang提出了P2P环境下基于贝叶斯网络的信任模型。该信任模型主要关注于描述信任的不同方面,使得节点可以根据不同的场景来按需获取节点不同方面的性能。该信任模型能够适应于规模较小的Gnutella网络,或节点交互集中的Gnutella网络。S.Lee提出了一种全分布式的方式来存储用户的信誉信息。与其他信任系统不同的是,在NICE系统中,节点i存储的信任信息是其他节点对i所提供服务的满意反馈,因此节点有动机存储信任信息。L-Xiong提出的PeerTrust机制允许节点根据提供反馈信息的节点与其自身的个体相似性选择反馈信息,计算对给定节点的主观可信度,利用该方法可防止节点的联合欺诈攻击,但在大规模P2P网络中由于交易的稀疏性,并不一定存在足够的具有个体相似性的节点。
在基于共享信息的局部信任模型中,共享信息的获取有两种途径:一是通过向其他节点洪泛信任请求获得,该方法可扩展性差;另一种是通过采用DHT机制的P2P存储系统如Chord等获得,这种方法不适合于节点频繁加入和离开系统的P2P系统。此外,这类基于共享信息的局部信任模型也不适合于节点之间不能进行管理信息直接交互的部分分布式P2P网络。
4、结束语
在没有有效管理机制的P2P网络中,建立能够抑制所有攻击模式的信任模型是非常困难的,除了要能够抑制节点的攻击外,在建立信任模型的时候,要充分考虑信任模型是否具有规模可扩展性,在信任计算以及信任信息存储方面的可扩展性,以及信任信息传播过程中的带宽开销问题。此外,在节点动态进出网络频繁的情况下,信任模型的容错性或健壮性也是需要特别强调的。
事实上,在P2P网络信任模型的研究方面,应充分借鉴真实社会的信誉管理体制,针对交易发生的不同场景为节点建立可信度,并将节点纳入到特定的群体来约束和规范节点的行为。因此,基于群组的信誉机制是以后研究的方向,已有研究工作在该方面进行了有益的探索,但仍不成熟。此外,在研究基于信任模型的激励机制时,不仅要考虑P2P网络内部节点之间的合作,也应考虑P2P应用与网络中其他应用之间的合作。例如,在文件共享P2P应用中,当网络带宽利用率达到某一阈值时,对仍然掠夺性使用网络资源的节点进行惩罚。P2P应用与网络中其他应用的和谐共存,才是P2P应用发展的长久之道。