论文部分内容阅读
1、引言
P2P(Peer-to-Peer)又称对等网络,是一种不依赖服务器的分布式网络模型。P2P突破了传统的Client/Server模式,网络中所有的节点都是对等的,每个节点既是服务器也是客户机,它使Internet上的计算机互相平等的连接,在进行信息交换时可以不通过任何服务器,直接在两台客户机之间交换。
由于P2P网络中节点的行为具有Ad-Hoc性质,决定了P2P网络具有高度的动态性、自治性和异构性,即:每个用户参与网络是随机的,自愿的,并且不同用户有不同的能力和可靠性。P2P环境中,节点资源共享是用户的资源行为,用户可以随意终止服务,甚至可能存在欺诈行为,因此服务质量无法保证。为了保护服务质量,建立P2P网络的信任机制是十分必要的。
本文提出一种P2P网络的安全信任模型,将各个实体的信誉度[1]量化,从而帮助P2P实体做出信任选择。模型以此来保证网络中各个实体间的信任关系,这种信任关系主要是根据以往的交易经验和其他实体的评估来建立的[2]。
2、P2P网络安全模型的建立
2.1 P2P系统模型结构
现有的以Napster为代表的集中式P2P系统查询效率高,但是中央索引节点容易受到打击,因此对中央索引节点的要求比较高,其最大的缺点就是索引服务器的单点失效问题。以Gnutella为代表的完全分布式系统虽然克服了C/S模式服务器单点失效和瓶颈等问题,但一个节点的搜索请求要经过整个网络或者至少是一个很大的范围才能得到结果,将占用很多带宽,而且可能需要花费很长时间才能有结果。本模型采用基于超级节点的P2P网络拓扑结构.
在这个模型中,所有的网络节点根据构建规则的不同(内容或物理区域的不同)分为若干组,每一组中由性能最好的节点担任超级节点。超级节点负责连接本组中所有普通节点,并在超级节点之间组成P2P网络。超级节点本身在P2P网络中并不担任网络交易中服务器或客户机的角色,它只存储相关普通节点的信息。每个普通节点加入P2P网络都要通过相应超级节点。这种拓扑结构可以有效减少搜索时间和所需带宽,在一定程度上能克服系统瓶颈。
2.2 信任模型
信任值是对一个实体(节点)过去行为的评价。这种评价可以是一个实体过去所有交易行为综合的量化值。在P2P这样的分布式系统中,一般系统中的信誉机制很难实施。而分布式系统与社会人际网络有很大相似性。例如,一个个体的信任度取决于它的信誉,一个信誉好的个体能得到更多其他个体的认可,而好的信誉来自于它以前良好的行为积累。
基于以上相似点,我们认为基于信任的P2P系统有以下特性[3]:①网络中的个体在与其他个体的交互中会留下某些“信用”信息。②个体对于交互的对象具有选择权。③个体有义务为网络中其他个体提供“推荐”信息。
因此在基于信誉的信任模型中,根据网络中相关节点的意见来建立一个节点的信誉度,即把一个节点关于另一个节点的信誉度作为衡量个体全局信任度的关键[4]。
2.2.1 信誉度的定义
定义1.节点i对节点j的局部信誉度定义为:
其中Sij为节点i与节点j在最近某个固定的时间δ内(δ随系统具体情况而定),在节点i看来交易成功的次数,反之,Fij为在节点i看来交易失败的次数。
由此,我们可以得到任何一个节点i对另一个节点j的推荐度,如果网络中有n个节点,则我们可以得到网络的信任关系矩阵X=|Xij|n。
任意节点的全局信誉度由与之发生过交易的其他节点对它的局部看法以及这些节点本身的全局信誉度来决定。在这个信誉机制中,不能仅仅考虑其他节点对该节点在交易中的看法,也要取决于评价节点本身的可信度。
定义2.网络中任意节点i的全局信誉度
其中,k为与i发生过交易的节点。这样可以根据具体交易过程中节点之间的评价关系动态地得到某一个节点的信誉度。
2.2.2 引入信誉度之后的P2P网络模型
如前所述,本模型采用基于超级节点的P2P网络拓扑结构。在引入信誉度这一概念以后,系统模型也要相应地发生变化。
在该模型中,每个超级节点维护一个与之相关的普通节点的全局信誉度表,记录普通节点当前的信誉度值。在网络交易的过程中,交易时时进行,各节点的全局信誉度也不断的发生变化。
每个普通节点维护一个该节点对其他节点的局部信誉度表,记录该节点与其他节点在以往交易过程中得到的“信用”信息。
这样,当任意节点i对其他节点j有交易要求的时候,可以随时根据全局信誉度公式得到j的全局信誉度,从而决定是否要与节点j进行交易。
2.3 模型的实现过程
2.3.1 新节点的加入
任何一个新节点的加入都要通过超级节点。新节点i首先找到与之构建规则相同的超级节点,然后将自身存储的信息提供给超级节点,并获得一定的信誉值,即为初始全局信誉值。该信誉值将记录到由超级节点维护的全局信誉度表中。新节点i获得超级节点返回的信息以后,通过超级节点被加入到P2P网络中。
在这个阶段,初始信誉度值的设置是关键问题。初始信誉度值既不能太小,也不能太大。若设定值太小,则节点有可能因为信誉值太小而无法获得任何的交易机会,导致节点饿死。若设定值太大,则节点间发生欺骗的机会也随之提高。
2.3.2 节点的退出
在P2P系统中,任何节点的加入和退出都是自愿的,任意节点离开网络,P2P模型将要做相应的维护。假设某个节点i离开网络,将在与i相连的超级节点上删除i的相关信息,而i自身维护的信息也随着i退出网络而消除了。其他节点将不再能查询到节点i的相关信息,与节点i正进行的交易也随之结束。
若节点i因为网络交易中的欺骗行为而使得信誉度值被降低到一定程度以后,该节点同样将被退出该系统,其信息被记录到黑名单,并不得再加入进来。加入一定的惩罚机制,能避免节点的作弊行为。
2.3.3 全局信誉度的求解过程
对于网络中的普通节点,每次该节点在接受其他节点提供的服务以后,要将对其他节点的评价信息记录下来。
对于网络中的超级节点,它保存了相关普通节点的全局信誉度。每次交易结束,会重新计算参与交易的普通节点的全局信誉度值,并保存起来,以便提供给其他节点使用。
(Ⅰ)普通节点信用信息的求解过程:
假设节点i与节点j进行交易,节点j为节点i提供服务,J为与节点j相关的超级节点。
1)如果节点i对节点j提供的服务满意,那么在i看来这次交易是成功的,则Sij←Sij+1;
否则执行2);
2)Fij←Fij-1;
3)将以上评价信息写入节点i;
(Ⅱ)网络中某一节点全局信誉度求解过程:
1)对于所有其他节点k(k≠j)取出其全局信誉度;
2)计算节点k对节点j的局部信誉度
计算后写入节点k;
3)计算节点j的全局可信度,并将其写入相关超级节点J。
2.3.4 一次完整的交易过程
假设节点i有交易需要。首先由节点i提交交易请求,对应超级节点I查询存储信息看是否存在这类资源,如果有,则通过排序将信誉度高的节点j信息返回给节点i;如果没有,则提交给其他超级节点K进行查询。收到信息以后,节点i开始与节点j交易。交易结束以后,节点i重新计算对节点j的局部信誉度,超级节点及时计算并更新节点j的全局信譽度值,从而完成一次交互。如果始终没有满足交易条件的节点j存在,则此次交易失败。
3、性能分析
采用基于超级节点的网络拓扑结构,全局信誉值存储到超级节点,使得普通节点无法篡改、伪造或删除全局信誉度值,在一定程度上保证了节点信誉度的真实性。
每次交易以后,超级节点实时更新全局信誉度值,避免因消息的滞后而导致欺骗的发生。
根据全局信誉度的计算公式 ,我们发现单个节点提交的信息仅仅能在小范围内影响其他全局信誉度,同时提交信用信息的节点本身的全局信誉度也在计算之内。这就在一定程度上避免了两个节点之间彼此造假的现象发生,确保了信誉度的可靠性。
4、小结
本文提出了一种基于信用的P2P网络模型来评估网络中实体的信任关系。系统将实体信誉度量化,以此来衡量实体的合法性。这个模型在一定程度上解决了P2P环境的安全信任问题,可以很大程度地保障P2P网络的有效运行。■
P2P(Peer-to-Peer)又称对等网络,是一种不依赖服务器的分布式网络模型。P2P突破了传统的Client/Server模式,网络中所有的节点都是对等的,每个节点既是服务器也是客户机,它使Internet上的计算机互相平等的连接,在进行信息交换时可以不通过任何服务器,直接在两台客户机之间交换。
由于P2P网络中节点的行为具有Ad-Hoc性质,决定了P2P网络具有高度的动态性、自治性和异构性,即:每个用户参与网络是随机的,自愿的,并且不同用户有不同的能力和可靠性。P2P环境中,节点资源共享是用户的资源行为,用户可以随意终止服务,甚至可能存在欺诈行为,因此服务质量无法保证。为了保护服务质量,建立P2P网络的信任机制是十分必要的。
本文提出一种P2P网络的安全信任模型,将各个实体的信誉度[1]量化,从而帮助P2P实体做出信任选择。模型以此来保证网络中各个实体间的信任关系,这种信任关系主要是根据以往的交易经验和其他实体的评估来建立的[2]。
2、P2P网络安全模型的建立
2.1 P2P系统模型结构
现有的以Napster为代表的集中式P2P系统查询效率高,但是中央索引节点容易受到打击,因此对中央索引节点的要求比较高,其最大的缺点就是索引服务器的单点失效问题。以Gnutella为代表的完全分布式系统虽然克服了C/S模式服务器单点失效和瓶颈等问题,但一个节点的搜索请求要经过整个网络或者至少是一个很大的范围才能得到结果,将占用很多带宽,而且可能需要花费很长时间才能有结果。本模型采用基于超级节点的P2P网络拓扑结构.
在这个模型中,所有的网络节点根据构建规则的不同(内容或物理区域的不同)分为若干组,每一组中由性能最好的节点担任超级节点。超级节点负责连接本组中所有普通节点,并在超级节点之间组成P2P网络。超级节点本身在P2P网络中并不担任网络交易中服务器或客户机的角色,它只存储相关普通节点的信息。每个普通节点加入P2P网络都要通过相应超级节点。这种拓扑结构可以有效减少搜索时间和所需带宽,在一定程度上能克服系统瓶颈。
2.2 信任模型
信任值是对一个实体(节点)过去行为的评价。这种评价可以是一个实体过去所有交易行为综合的量化值。在P2P这样的分布式系统中,一般系统中的信誉机制很难实施。而分布式系统与社会人际网络有很大相似性。例如,一个个体的信任度取决于它的信誉,一个信誉好的个体能得到更多其他个体的认可,而好的信誉来自于它以前良好的行为积累。
基于以上相似点,我们认为基于信任的P2P系统有以下特性[3]:①网络中的个体在与其他个体的交互中会留下某些“信用”信息。②个体对于交互的对象具有选择权。③个体有义务为网络中其他个体提供“推荐”信息。
因此在基于信誉的信任模型中,根据网络中相关节点的意见来建立一个节点的信誉度,即把一个节点关于另一个节点的信誉度作为衡量个体全局信任度的关键[4]。
2.2.1 信誉度的定义
定义1.节点i对节点j的局部信誉度定义为:
其中Sij为节点i与节点j在最近某个固定的时间δ内(δ随系统具体情况而定),在节点i看来交易成功的次数,反之,Fij为在节点i看来交易失败的次数。
由此,我们可以得到任何一个节点i对另一个节点j的推荐度,如果网络中有n个节点,则我们可以得到网络的信任关系矩阵X=|Xij|n。
任意节点的全局信誉度由与之发生过交易的其他节点对它的局部看法以及这些节点本身的全局信誉度来决定。在这个信誉机制中,不能仅仅考虑其他节点对该节点在交易中的看法,也要取决于评价节点本身的可信度。
定义2.网络中任意节点i的全局信誉度
其中,k为与i发生过交易的节点。这样可以根据具体交易过程中节点之间的评价关系动态地得到某一个节点的信誉度。
2.2.2 引入信誉度之后的P2P网络模型
如前所述,本模型采用基于超级节点的P2P网络拓扑结构。在引入信誉度这一概念以后,系统模型也要相应地发生变化。
在该模型中,每个超级节点维护一个与之相关的普通节点的全局信誉度表,记录普通节点当前的信誉度值。在网络交易的过程中,交易时时进行,各节点的全局信誉度也不断的发生变化。
每个普通节点维护一个该节点对其他节点的局部信誉度表,记录该节点与其他节点在以往交易过程中得到的“信用”信息。
这样,当任意节点i对其他节点j有交易要求的时候,可以随时根据全局信誉度公式得到j的全局信誉度,从而决定是否要与节点j进行交易。
2.3 模型的实现过程
2.3.1 新节点的加入
任何一个新节点的加入都要通过超级节点。新节点i首先找到与之构建规则相同的超级节点,然后将自身存储的信息提供给超级节点,并获得一定的信誉值,即为初始全局信誉值。该信誉值将记录到由超级节点维护的全局信誉度表中。新节点i获得超级节点返回的信息以后,通过超级节点被加入到P2P网络中。
在这个阶段,初始信誉度值的设置是关键问题。初始信誉度值既不能太小,也不能太大。若设定值太小,则节点有可能因为信誉值太小而无法获得任何的交易机会,导致节点饿死。若设定值太大,则节点间发生欺骗的机会也随之提高。
2.3.2 节点的退出
在P2P系统中,任何节点的加入和退出都是自愿的,任意节点离开网络,P2P模型将要做相应的维护。假设某个节点i离开网络,将在与i相连的超级节点上删除i的相关信息,而i自身维护的信息也随着i退出网络而消除了。其他节点将不再能查询到节点i的相关信息,与节点i正进行的交易也随之结束。
若节点i因为网络交易中的欺骗行为而使得信誉度值被降低到一定程度以后,该节点同样将被退出该系统,其信息被记录到黑名单,并不得再加入进来。加入一定的惩罚机制,能避免节点的作弊行为。
2.3.3 全局信誉度的求解过程
对于网络中的普通节点,每次该节点在接受其他节点提供的服务以后,要将对其他节点的评价信息记录下来。
对于网络中的超级节点,它保存了相关普通节点的全局信誉度。每次交易结束,会重新计算参与交易的普通节点的全局信誉度值,并保存起来,以便提供给其他节点使用。
(Ⅰ)普通节点信用信息的求解过程:
假设节点i与节点j进行交易,节点j为节点i提供服务,J为与节点j相关的超级节点。
1)如果节点i对节点j提供的服务满意,那么在i看来这次交易是成功的,则Sij←Sij+1;
否则执行2);
2)Fij←Fij-1;
3)将以上评价信息写入节点i;
(Ⅱ)网络中某一节点全局信誉度求解过程:
1)对于所有其他节点k(k≠j)取出其全局信誉度;
2)计算节点k对节点j的局部信誉度
计算后写入节点k;
3)计算节点j的全局可信度,并将其写入相关超级节点J。
2.3.4 一次完整的交易过程
假设节点i有交易需要。首先由节点i提交交易请求,对应超级节点I查询存储信息看是否存在这类资源,如果有,则通过排序将信誉度高的节点j信息返回给节点i;如果没有,则提交给其他超级节点K进行查询。收到信息以后,节点i开始与节点j交易。交易结束以后,节点i重新计算对节点j的局部信誉度,超级节点及时计算并更新节点j的全局信譽度值,从而完成一次交互。如果始终没有满足交易条件的节点j存在,则此次交易失败。
3、性能分析
采用基于超级节点的网络拓扑结构,全局信誉值存储到超级节点,使得普通节点无法篡改、伪造或删除全局信誉度值,在一定程度上保证了节点信誉度的真实性。
每次交易以后,超级节点实时更新全局信誉度值,避免因消息的滞后而导致欺骗的发生。
根据全局信誉度的计算公式 ,我们发现单个节点提交的信息仅仅能在小范围内影响其他全局信誉度,同时提交信用信息的节点本身的全局信誉度也在计算之内。这就在一定程度上避免了两个节点之间彼此造假的现象发生,确保了信誉度的可靠性。
4、小结
本文提出了一种基于信用的P2P网络模型来评估网络中实体的信任关系。系统将实体信誉度量化,以此来衡量实体的合法性。这个模型在一定程度上解决了P2P环境的安全信任问题,可以很大程度地保障P2P网络的有效运行。■