随着互联网技术的不断发展,P2P技术在日常网络应用中不可或缺[1]。P2P网络与传统C/S模式网络相比具有对等性、开放性等特点[2],为各个领域的应用发展带来了极大的便利。但相对的开放和对等使得P2P网络面临着一些前所未有的安全问题,例如节点恶意攻击、共谋团体欺骗、恶意病毒的传播以及知识产权保护等问题[3]。
近几年来,国内外许多学者对建模P2P网络环境中的信任模型展开了广泛的研究,并在一定程度上取得了显著的成果。目前,用于构建P2P网络的信任模型主要分为4类:基于局部历史信息的信任模型、基于全局历史信息的信任模型、基于信任证据链传递的信任模和基于历史信息相关性的信任模型。
基于局部历史信息的信任模型是通过网络中一个节点与另一个节点的历史通讯信息计算该节点对其他节点的信任。该模型依赖于其他节点的一些历史数据信息,无法避免恶意节点或恶意团体对信任值计算的影响,虽然模型中存在检测恶意团体的方法,但从整体看,这种方法存在着较大的局限性,很难避免一些恶意行为[4-5]。
基于全局历史信息的信任模型使用全网络的通讯历史信息来计算节点的信任值。虽然信任值计算可靠但对全网的通信带宽有较高要求且算法的效率也较低[6]。
基于信任证据链传递的信任模型[7-8],每个节点都维护着一个与自身有交互的其他节点的评价信息,算法在节点之间找到所有的路径,并添加权重来进行信任值计算。这种方法在直接信任和间接信任不明确时无法满足建模要求,并且方法在计算权重时通信开销和查询效率也存在一定的不足[9]。
基于历史信息相关性的信任模型是利用节点之间的相关程度与全局模型进行结合,对节点团队恶意行为有一定的抵制能力,其相关性因子只考虑了通讯成功、失败参数,并没有其他优先级别、延时级别、可靠性级别、峰值吞吐量级别、平均吞吐量级别等参数[10]。
针对上述模型中的不足,文中提出了基于平衡理论的P2P信任模型。模型由3部分构成:信任结构的构建、恶意节点检测和信任推测。此信任模型不仅使P2P网络抵御恶意节点和恶意团体的共谋等行为的攻击,而且可以在新节点加入网络时进行信任推测,已禁止不信任节点的加入,提高了信任网络的准确性和健壮性。
1 基于信任结构的P2P网络建模 1.1 信任结构的构建过程在信任结构的构建过程中,需要根据平衡理论提取出网络中的节点,并根据节点之间原有的关系对它们进行组合,最终形成一个信任网络。根据海德平衡理论,将P2P网络中的节点作为构造三角形的顶点,每个节点与其他2个相邻节点之间有“信任”或“不信任”的关系,节点之间的“信任”关系用“+1”表示,而“不信任”关系使用“-1”表示,这样可以构成3个节点的三角形结构。
根据所构造的三角形是否处于平衡状态,来判断3个节点之间是否可信。由平衡关系的判断方法,可以得出T1和T32种平衡状态的三角结构,如图 1所示。
|
图 1 处于平衡状态的三角形结构 |
提取图 1中16种情况的三角结构节点,将其组合进而形成信任网络。下面对基于T3平衡状态构建信任结构的过程进行说明,基于T1平衡状态构建信任结构的方法以此类推。
将图 1(b)中的三角形结构进行进一步地整合,可以得到如图 2所示的分类结果。
|
图 2 T3三角形结构整合结果 |
网络中节点与节点之间的关系利用邻接矩阵E表示,E中记录了数据集中符号为“+”的链接集合。矩阵E中的元素用ex, y表示,其中x和y表示元素所在的行和列。若2个节点x、y之间存在符号为“+”的链接,则该ex, y的值为1,否则值为0。
为了在P2P网络中找到满足T3.a或T3.b结构的节点,定义满足T3结构的三角形集合S3。
1) 在邻接矩阵E中挑选2个位于同一行或列,且ex, y值为1的元素,进而得到2个节点分别记为(x, y1)、(x, y2)或(x1, y)、(x2, y)。
2) 在矩阵E中确认ey1, y2、ey2, y1或ex2, x1、ex1, x2的值是否为1,若为1则将节点(x, y1)和(x, y2)或(x1, y)和(x2, y)以及它们之间的链接信息加入到S3中,S3的集合为
| $ {S_3} = \left\{ \begin{array}{l} \;\;\;\left\{ {{\mathit{\boldsymbol{E}}_{{x_1}{y_1}}}, {\mathit{\boldsymbol{E}}_{{x_2}{y_2}}}, {\mathit{E}_{{x_3}{y_3}}}} \right\}\\ \;\;\;\;\;\;\;\;\;\;\;\; \vdots \\ \left\{ {{\mathit{\boldsymbol{E}}_{{x_{n - 1}}{y_{n - 1}}}}, {\mathit{\boldsymbol{E}}_{{x_n}{y_n}}}, {\mathit{\boldsymbol{E}}_{{x_{n + 1}}{y_{n + 1}}}}} \right\} \end{array} \right\}, $ | (1) |
重复上述2个步骤,使每一行或列中所有可能的取值一一验证,最终得到满足T3.a或T3.b平衡结构的节点集合S3。
而对于T3.c和T3.d 2种结构,从矩阵的第x行选取值为1的一个元素ex, y1,第x列选取值为1的一个元素ex1, x,其下标记为(x, y1)和(x1, x)。然后根据E中的数据检验元素ex1, y1或ey1, x1的值是否为1,若为1则将节点x, x1, y1之间的链接信息加入到集合S3中。
重复上述步骤,直到每一行及每一列所对应的可取元素全被检验后,就得到了包含完整节点链接信息的集合S3。
以此类推得到集合S1。最后将集合S1和S3进行合并。将数据信息以网络的形式展现出来,即得到了一张信任网络。
1.2 基于信任结构的恶意节点检测 1.2.1 单个恶意节点检测在P2P网络中,恶意节点最常见的攻击是针对目标节点发布伪造的评价信息,进而提高或降低目标节点的信任值。因此,如果仅使用节点的局部信任值来计算目标节点的信任值,就会使目标节点的信任值受到较大的影响[11]。
针对恶意节点攻击的特点,文中提出了一种基于平衡理论的恶意节点检测方法,首先利用平衡理论定义节点的平衡因子,进而通过恶意行为对网络平衡性的影响来检测节点,具体的检测方法如下所述。
1) 获得待检测的目标网络T,针对网络中有直接链接的2节点i和j,检测节点j对节点i的评价行为的异常情况。
2) 对于网络中的节点i,收集信任网络T中节点i所处的三角形结构的信息,根据式(2) 计算节点i的平衡因子βi,该平衡因子反映了该节点i在网络T中的全局性的平衡情况。
| $ {\beta _i} = \left\{ \begin{array}{l} \frac{{\Delta {T_{i{\rm{balance}}}}}}{{\Delta {T_{i{\rm{total}}}}}}\;\;\;\Delta {T_{i{\rm{balance}}}} > 0, \\ \;\;\;\;\;0\;\;\;\;\;\;\;\;\Delta {T_{i{\rm{balance}}}} = 0, \end{array} \right. $ | (2) |
式中:ΔTitotal为包含节点i的三角形结构的总个数;ΔTibalance为三角形结构中处于平衡状态的三角形的个数。
3) 针对节点j到节点i的链接,收集该链接Eji所处的三角形结构,并利用式(3) 计算该链接Eji的平衡因子βji,βji反映了链接βji在整个信任网络T中的全局性平衡度。
| $ {\beta _{ji}} = \left\{ \begin{array}{l} \frac{{\Delta {T_{ji{\rm{balance}}}}}}{{\Delta {T_{ji{\rm{total}}}}}}\;\;\;\Delta {T_{ji{\rm{balance}}}} > 0, \\ \;\;\;\;\;0\;\;\;\;\;\;\;\;\Delta {T_{ji{\rm{balance}}}} = 0, \end{array} \right. $ | (3) |
式中:ΔTjibalance表示三角形结构中处于平衡状态的三角形的个数;ΔTjitotal节点j到节点i的链接所处的三角形结构的总个数。
4) 利用节点i的平衡因子βi与链接Eji的平衡因子βji,节点j的评价行为为
| $ \omega = \left| {\frac{{{\beta _{ji - {\beta _i}}}}}{{{\beta _i}}}} \right|。$ | (4) |
如果ω的值大于或等于选定的阈值,则认为节点j对节点i的评价属于恶意评价。因此,认为节点j属于恶意节点;否则属于正常的评价行为。
1.2.2 共谋团体检测共谋团体被认为是一些具有相似恶意行为的恶意节点的组合,团体的恶意行为会对整个网络造成极大的危害,这不仅降低了网络的可信性,还对P2P网络的发展造成极大的阻碍[12]。图 3为共谋团体的恶意行为的示意图。
|
图 3 共谋团体的恶意行为 |
当网络中存在恶意共谋团体时,单个恶意节点的检测方法不再实用。所以文中在单个恶意节点检测的基础上,进一步提出了检测恶意共谋团体的方法。
要检测与节点i相关的恶意团体,首先在网络中找到与节点i存在历史评价信息的节点集合Li,并定义集合Si为对节点i有恶意行为的节点集合。
1) 检测集合Li中与节点i有恶意行为的信息,若有这样的节点,将其加入到Si中。重复上面的过程,直到集合Li中的所有节点均检测完毕后,即可得到对节点i有恶意行为的节点集合Si。
2) 在集合Si中任取2个节点x、y,得到其共同历史通信节点集合Nxy,这2个节点间的相关性sim(x, y)
| $ {\rm{sim(}}{x}{\rm{, }}{y}{\rm{) = }}\frac{{\sum\limits_{u \in {U_{xy}}} {({\beta _{xu}} - {{\bar \beta }_x})({\beta _{yu}} - {{\bar \beta }_y})} }}{{\sqrt {\sum\limits_{u \in {U_{xy}}} {{{({\beta _{xu}} - {{\bar \beta }_x})}^2}\sum\limits_{u \in {U_{xy}}} {{{({\beta _{yu}} - {{\bar \beta }_y})}^2}} } } }}, $ | (5) |
式中:βx与βy分别表示节点x、y的平衡因子均值;βxu与βyu则表示节点x、y与节点u之间链接的平衡因子值;集合Uxy表示节点x、y共同具有历史通信的节点的集合。
3) 若sim(x, y)>0.8,则将2节点加入共谋团体集合Ci中。待集合Si中所有两两节点组合的相关性值经过计算后,得到了针对节点i的恶意共谋团体Ci。
1.3 基于信任结构的信任推测算法一个节点认为有价值的评论对另一个节点有一定有参考。例如所有与该节点有直接关系的节点都认为此节点信任可靠,那么此前与此节点毫无关系的新节点也有理由相信此节点信任可靠。
由图 4(a)所示,与节点B有直接信任关系的节点均与节点A有信任关系,可以推测出节点B对节点A也具有信任关系。在这种情况下,通过一个全局的评价得出了信任推测的结果,从而一个新的节点就可以通过这种信任推测方式计算。
在实际的网络环境下,一个目标节点收到的评价既有“信任”也有“不信任”。如图 4(b)所示,与节点B具有直接信任关系的节点,对节点A既有信任关系也有不信任关系,那么在此情况下,一个新节点继续已经不能通过传统推测方式推测目标节点的可信性[13]。
|
图 4 基于全局信息的信任推测 |
为了解决上述问题,文中在P2P信任网络的架构中利用一种基于平衡理论的信任推测算法来推测信任节点。该算法不再依赖用户的全局历史评价,同时对用户的历史通讯也没有了限制。算法的核心思想是对原有信任网络的平衡因子β值与加入新节点后所得到的新网络的β值进行比较,得出该新节点是否为可加入信任网络以及与其他节点之间关系。将原始信任网络中源节点的平衡因子记为β,加入新链接后的网络针对源节点的平衡因子记为β′。根据式(2) 计算β与β′的值,根据比较结果判断新节点是否满足信任推测条件。
使用基于平衡理论的信任推测算法对网络中节点x进行信任预测,首先需要进行一系列的初始化操作:初始化与源节点x有符号为“+”的链接集合Lpx,符号为“-”的链接的集合Lhx,以及与节点x没有直接链接的节点集合Sx,根据现有原始网络T的信息,按照公式(2) 计算出初始网络中源节点x的平衡因子,进而初始化β。选取集合Sx中选取节点y,将其加入到信任网络T中,得到新的信任网络T′,根据T′的信息通过公式(2) 计算出更新后的网络中源节点的平衡因子β′。若β′≥β,说明加入节点y的链接后,网络T′的平衡情况较原始网络好,因此认为较原始信任网络T相比,新的网络T′也是可信的,节点y的链接满足平衡条件,可以加入;否则若β′ < β,则说明加入节点y的链接后,网络的平衡情况收到了影响,因此y节点的链接不可信不可加入。重复该过程,直到集合Sx中的所有节点的每种链接情况全部判断完毕。
2 实验结果与分析 2.1 恶意节点检测结果分析研究采用Epinions数据集对算法的可靠性和健壮性进行验证。在数据集中含有130 000个节点,节点之间有840 000条链接,其中包含T3与T12种平衡三角形结构的具体数量统计信息如表 1所示。
| 表 1 T3与T1三角形结构数量统计表 |
为了直观地展示信任建模后信任网络的状况,实验随机抽取5 000多个节点组成信任网络。图 5是在信任建模结果中随机抽取的5 000多个节点所组成的信任网络。
|
图 5 5 000节点的信任网络图 |
实验从基于平衡理论建模算法所得到的信任网络中提取出链接数量最多的100个节点,并从该100个节点中随机取出一部分节点,将该部分节点作为目标节点,针对其他节点对这些目标节点的评价进行检测[14]。
实验抽取不同的节点对目标节点行为进行恶意性检测,从而获得了去除恶意节点前后,目标节点在信任网络中平衡情况的均值。实验统计了22个节点在去除恶意节点前后所在网络平衡性的变化,网络中平衡因子的变化情况如图 6所示。
|
图 6 删除恶意节点前、后节点的平衡性对比 |
图中菱形间隔曲线代表 1~22个节点在原始网络中平衡因子值的变化,正方形间隔曲线为统计去除恶意节点后节点平衡因子值的均值。从图中可以看到,目标节点的原始平衡因子在0.49~0.96之间,删除恶意链接后对网络的平衡性有一定的影响,但删除恶意节点后节点平衡因子曲线与原始曲线相比有所提高[15]。这说明恶意节点的检测并删除一定程度上增加了网络的可信任性。
2.2 信任推测算法验证为了验证信任模型中信任推测算法的有效性,在上述实验的基础上,从结果中取出与其他节点链接数最多的100个节点,并在该100个节点中选取23个节点,每一个节点要求与其余22个节点之间的链接数>5。在23个节点所组成的信任网络上进行信任推测实验。图 7为所选节点组成的信任网络。以图中节点20为例进行信任推测算法验证,首先初始化节点20的初始平衡因子值β20,经过计算得到节点20的初始平衡因子β20=0.876 8。
|
图 7 包含23个节点的信任网络图 |
从图 7中可以看出与节点20没有直接链接的节点集合NS20={167, 321, 655, 2 292}。然后向信任网络中分别添加链接L20, 167={20, 167, 1/-1}、L20, 321={20, 321, 1/-1}、L20, 655={20, 655, 1/-1}和L20, 2292={20, 2 292, 1/-1},进而计算添加链接后新网络中节点20的平衡因子β′20。β20与β′20的对比信息如表 2所示。
| 表 2 节点20的信任推测结果 |
从表 2数据比较可以看出:只有添加链接E20, 167和E20, 321时,所得的节点20的新平衡因子值β′20>β20,说明在添加新的符号为“+”的链接后,节点20在网络中的平衡性有所提高,从而推出该链接满足信任推测条件。实验结果表明信任模型中信任推测算法有效可行。
3 结论文中提出了一种基于平衡理论的P2P信任模型。根据平衡理论构建信任网络模型,对所构建的信任网络进行恶意节点和共谋团体的检测,从而使信任模型能够抵御恶意节点与恶意团体的攻击,并利用信任推测算法来推测信任节点,以防止网络加入不信任的节点,进一步增强信任网络的安全性。文中创新性地将平衡理论应用到P2P信任网络的建模中,并利用Epinions数据集对模型的3部分进行数据测试。实验结果表明所提出的信任模型安全可靠。
| [1] | Lua E K, Crowcroft J, Pias M. A survey and comparison of peer-to-peer overlay network schemes[J]. IEEE Communications Survey and Tutorials, 2005(2): 72–93. |
| [2] | Jiang J Z, Fu L, Zhang X P, et al. Collaborative work model based on peer-to-peer network[J]. Journal of Chongging University:English Edition, 2007, 6(2): 130–131. |
| [3] |
陈姝, 方滨兴, 周勇林.
P2P技术的研究与应用[J]. 计算机工程与应用, 2002, 38(12): 20–23.
CHEN Shu, FANG Binxing, ZHOU Yonglin. The research and application of P2P technology[J]. Computer Engineering and Applications, 2002, 38(12): 20–23. (in Chinese) |
| [4] | Audun J, Touhid B.Optimal trust network analysis with subjective logic[C]//Procceedings of the 2nd International Conference on Emerging Security Information, System and Technologies, August 25-31, 2008, Cap, Esterel.Piscataway:IEEE Press, 2008:179-184. |
| [5] |
陈爱国, 徐国爱, 杨义先.
评价离散度敏感的P2P交易系统信任模型[J]. 电子科技大学学报, 2010, 39(3): 425–426.
CHEN Aiguo, XU Guoai, YANG Youxian. A rating dispersion sensitive trust model for P2P transactions[J]. Journal of University of Electronic Science and Technology of China, 2010, 39(3): 425–426. (in Chinese) |
| [6] |
孙知信, 唐益慰.
基于全局信任度的多层分组P2P信任模型[J]. 通信学报, 2007, 28(9): 134–140.
SUN Zhixin, TANG Yiwei. Multilayer and grouping P2P trust model based on global reputation[J]. Journal on Communications, 2007, 28(9): 134–140. (in Chinese) |
| [7] |
李静, 陈蜀宇, 文俊浩.
基于信任网络的网格资源发现机制[J]. 重庆大学学报:自然科学版, 2007, 30(1): 86–87.
LI Jing, CHEN Shuyu, WEN Junhao. Mechanism of resource discovery based on trust network[J]. Journal of Chongqing University:Natural Science Edition, 2007, 30(1): 86–87. (in Chinese) |
| [8] |
彭淑芬, 何泾沙, 高枫.
可信的网络交互模式设计与实现[J]. 重庆大学学报, 2010, 33(10): 123–125.
PENG Shufen, HE Jingsha, GAO Feng. Design and implementation of trusted network interaction pattern[J]. Journal of Chongqing University, 2010, 33(10): 123–125. DOI:10.11835/j.issn.1000-582X.2010.10.021 (in Chinese) |
| [9] |
秦志光, 杨毅, 杨磊, 等.
P2P网络中利用推拉模式实现的信誉系统[J]. 计算机工程与应用, 2013, 49(5): 88–90.
QIN Zhiguang, YANG Yi, YANG Lei, et al. Using push-pull mode to achieve reputation system in P2P networks[J]. Computer Engineering and Applications, 2013, 49(5): 88–90. (in Chinese) |
| [10] |
谭振华, 王兴伟, 程维, 等.
基于多维历史向量的P2P分布式信任评价模型[J]. 计算机学报, 2010, 33(9): 1726–1727.
TAN Zhenhua, WANG Xingwei, CHENG Wei, et al. A distributed trust model for Peer-to-Peer networks based on multi-dimension-history vector[J]. Chinese Journal of Computers, 2010, 33(9): 1726–1727. (in Chinese) |
| [11] |
汪胡青, 孙知信.
P2P网络中恶意节点控制算法的研究[J]. 计算机工程, 2012, 38(17): 142–143.
WANG Huqing, SUN Zhixin. Research on malicious nodes control algorithm in P2P Network[J]. Computer Engineering, 2012, 38(17): 142–143. (in Chinese) |
| [12] |
苗光胜, 冯登国.
P2P信任模型中基于行为相似度的共谋团体识别模型[J]. 通信学报, 2009, 30(8): 9–11.
MIAO Guangsheng, FENG Dengguo. Colluding clique detector based on activity similarity in P2P trust model[J]. Journal on Communications, 2009, 30(8): 9–11. (in Chinese) |
| [13] |
胡建理, 周斌, 吴泉源.
P2P网络中具有激励机制的信任管理研究[J]. 通信学报, 2011, 32(5): 24–26.
HU Jianli, ZHOU Bin, WU Quanyuan. Research on incentive mechanism integrated trust management for P2P networks[J]. Journal on Communications, 2011, 32(5): 24–26. (in Chinese) |
| [14] |
谭振华, 王贺, 程维, 等.
基于通信历史相关性的P2P网络分布式信任模型[J]. 东北大学学报:自然科学版, 2009, 30(9): 1243–1248.
TANG Zhenhua, WANG He, Cheng Wei, et al. A distributed trust model for P2P overlay networks based on correlativity of communication history[J]. Journal of Northeastern University:Natural Science, 2009, 30(9): 1243–1248. (in Chinese) |
| [15] |
姜守旭, 李建中.
一种P2P电子商务系统中基于声誉的信任机制[J]. 软件学报, 2007, 34(10): 56–57.
JIANG Shouxu, LI Jianzhong. A reputation-based trust mechanism for P2P e-Commerce systems[J]. Journal of Software, 2007, 34(10): 56–57. (in Chinese) |
2014, Vol. 37

