一种匿名通讯中面向地域多样性的节点选择方法与流程

文档序号:18471324发布日期:2019-08-20 20:19阅读:249来源:国知局
一种匿名通讯中面向地域多样性的节点选择方法与流程

本发明属于计算机网络技术领域,具体涉及一种匿名通讯中面向地域多样性的节点选择方法。



背景技术:

互联网应用已经渗透到人们生活的各个方面,但是随之带来的隐私保护问题也日益明显。作为保护个人隐私信息的重要方法,匿名通讯技术得到了越来越多的关注。i2p作为目前非常流行的匿名通讯系统之一,通过其复杂的加密与通信过程,提供了很好的匿名性。

i2p匿名通讯系统的重路由路径称为隧道(tunnel),隧道节点选择算法采用源路由的方式,也就是由通信发起者选择隧道节点并创建隧道。i2p系统内的路由节点主观地记录其他路由节点的性能数据,以此来评估其他节点的带宽、隧道创建成功率、负载情况以及连通性。i2p的节点评估主要考虑两个因素:容量(capacity)和速度(speed)。i2p根据节点的容量和速度评分将节点进行分组,首先将所有节点加入not-failing组中,然后计算组中节点的容量评分,将容量评分高于平均值的节点加入high-capacity组中,再计算high-capacity组中节点的速度评分,将速度评分高于平均值的节点加入fast组中,而最终参与隧道的路由节点将从fast组中随机选择得到。但是,目前的i2p节点选择算法未考虑到用户的需求偏好,没有提供针对性的节点选择算法,安全性和匿名性不够高,难以满足特定用户的需求。



技术实现要素:

有鉴于此,本发明提供了一种匿名通讯中面向地域多样性的节点选择方法,通过对路由节点进行评估,筛选出高性能的路由节点,再从中根据路由节点所在的地域选择位于不同地域的路由节点构成通信隧道,进一步提高了路由的安全性和匿名性。

本发明提供的一种匿名通讯中面向地域多样性的节点选择方法,具体包括以下步骤:

针对每一路由节点,将所有与该节点存在连通性的节点组成连通组,从所述连通组中选择可靠性高的节点组成高可靠组,并进一步从所述高可靠组中选择性能高的节点组成高性能组;

从所述高性能组中,选择不同地域的路由节点组成隧道。

进一步地,所述可靠性由节点的在线时长评分和容量评分确定。

进一步地,所述性能由节点的带宽评分确定。

进一步地,采用如下公式计算所述带宽评分:

b=4*b(min)+3*b(10min)+2*b(1h)+b(3h)

其中,b为带宽评分,b(t)为最近t时间内的3个最大带宽的平均值。

进一步地,采用如下公式计算所述在线时长评分:

t=ot/rt

其中,t为在线时长评分,ot为节点持续在线时长,rt为系统持续运行时长。

进一步地,针对每一个路由节点,采用基础节点选择算法实现路由节点分组,得到其对应的高性能组,具体包括以下步骤:

步骤1.1、输入所有已知路由节点集合an;

步骤1.2、测试an中所有路由节点的连通性,将可连通节点放入可连通组,同时,采用如下公式计算可连通组中的每个路由节点的可靠性评分:

rely=r+k*t

其中,rely表示可靠性评分,r表示路由节点的容量评分,k是常数系数,k∈[0,10];根据可连通组中每个路由节点的可靠性评分,计算平均可靠性评分averely;

步骤1.3、选择可连通组中可靠性评分不低于averely的路由节点放入高可靠组中;使用minrely和maxrely分别表示高可靠组节点数量的下界和上界,若高可靠组的路由节点个数小于minrely,则从可连通组中除高可靠组中以外的节点中选择可靠性评分较高的路由节点填充高可靠组;若高可靠组的路由节点个数大于maxrely,选择评分最高的maxrely个路由节点放入高可靠组;

步骤1.4、根据高可靠组中每个路由节点的带宽评分,得到平均带宽评分aveperformance,选择高可靠组中带宽评分不低于aveperformance的路由节点放入高性能组;使用minperf和maxperf分别表示高性能组中节点数量的下界和上界,若高性能组中路由节点个数小于minperf,从集合高可靠组中除高性能组以外的节点中选择带宽评分较高的路由节点填充高性能组;若高性能组的路由节点个数大于maxperf,选择评分最高的maxperf个路由节点放入高性能组;

步骤1.5、输出高性能组。

进一步地,采用面向地域多样性的节点选择算法计算隧道,具体包括以下步骤:

步骤2.1、初始化路由节点队列tn为空队列,将高性能组中的路由节点根据地域划分为n组,将n组随机排列,得到地域队列aq,aq=<a1,a2,…ai,…,an>,其中,ai为相同地域的路由节点组,1≤i≤n;

步骤2.2、进行l-1次路由节点选择,l为隧道长度,在第k次选择中,先从当前路由节点对应的aq中获取队首元素ai,若ai非空,则从ai中随机选择1个路由节点nk加入tn队尾,再将nk从ai中移除,将ai移动至aq队尾,此时aq=<ai+1,…,an,a1,…,ai>,tn=<n1,n2,…,nk>,其中1≤k≤l-1,i=k%n,若ai+1非空,则再从ai+1中随机选择1个路由节点nk+1加入tn队尾,再将nk+1从ai+1中移除,此时aq=<ai+2,…,an,a1,…,ai+1>,tn=<n1,n2,…,nk>,依此迭代,直至最终生成由l-1个路由节点组成的隧道节点队列tn,tn=<n1,n2,…,nl-1>。

有益效果:

本发明通过对路由节点进行评估,并在评估的基础上对路由节点进行分组,从而有效地提高了对消极恶意节点的抵御能力,此外,通过选择不同地域的路由节点组成隧道,增加了攻击者的攻击成本,从而提高了系统的匿名性,以及对共谋攻击的抵御能力。

附图说明

图1为本发明提供的一种匿名通讯中面向地域多样性的节点选择方法的路由节点分组流程。

图2为本发明提供的一种匿名通讯中面向地域多样性的节点选择方法的针对不同类型恶意节点的测试比较结果。

图3为随机选择与本发明提供的一种匿名通讯中面向地域多样性的节点选择方法的匿名安全性比较结果。

图4为恶意节点不同分布下本发明提供的一种匿名通讯中面向地域多样性的节点选择方法的匿名安全性比较结果。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供的一种匿名通讯中面向地域多样性的节点选择方法,是在i2p匿名通讯系统的节点评估基础上进行改进,引入新的评估因子并记录相关的统计信息,提出了基础节点选择算法,并在此基础上提出了针对匿名性需求的面向地域多样性的节点选择算法。其基本思想:采用包括了带宽、在线时长及连通性的节点评估因子,对每一路由节点进行评估,将所有与该节点存在连通性的节点组成连通组,从所述连通组中选择可靠性高的节点组成高可靠组,并进一步从所述高可靠组中选择性能高的节点组成高性能组,最终,以高性能组为基础,选择不同地域的路由节点组成隧道。

本发明提供的一种匿名通讯中面向地域多样性的节点选择方法,具体包括以下几个方面:

一、节点评估因子

本发明提出的节点评估因子包括带宽(bandwidth)评分计算结果、在线时长(onlinetime)评分和连通性(reachability)。

1、带宽评分计算结果

带宽是对原先的评估因子速度(speed)的改进,i2p系统的速度因子只参考过去1分钟的节点的收发数据量,而新的带宽因子将综合考虑过去3小时的收发数据量:

b=4*b(min)+3*b(10min)+2*b(1h)+b(3h)

其中,b表示加权后的带宽评分计算结果,b(t)表示最近t时间内的3个最大带宽的平均值。

2、在线时长评分

在线时间指节点持续在线的时间,若某次测试中节点离线,则在线时长重置为0。持续在线时间越长的节点继续在线的可能性越大,评分也越高。计算公式为:

t=ot/rt

其中,t为在线时长的评分,ot表示节点持续在线时长,rt表示系统持续运行时长。

3、连通性

每10分钟检测节点的连通性,判断哪些节点在线。连通性作为节点选择的基础属性,只有可连通的路由节点才具有被选择的资格。

二、基础节点选择算法(bnsa)

根据节点评估的结果,基础节点选择过程将路由节点分为三个组,分别为可连通组(reachablegroup,rg)、高可靠组(high-reliablegroup,hrg)以及高性能组(high-performancegroup,hpg)。三个分组属于包含关系,高性能组是高可靠组的子集,高可靠组是可连通组的子集。每个周期,所有的路由节点根据连通性、容量、在线时长以及带宽等评估因子依次被划分进入不同的组中,如图1所示,首先将三个分组中的路由节点清空,测试路由节点的连通性,将连通节点放入可联通组中,然后根据可联通组内的路由节点的容量和在线时长计算可靠性评分,将可靠性评分不低于平均评分的节点放入高可靠组中,最后根据高可靠组内的路由节点的带宽计算性能评分,将性能评分不低于平均评分的节点放入高性能组中。最终筛选出的高性能组将作为面向地域多样性的节点选择过程的基础。

基础节点选择算法,输入为所有已知路由节点集合an,输出为高性能组(hpg),具体包括以下步骤:

步骤2.1、测试an中所有路由节点的连通性,将可连通节点放入rg,同时,计算rg中的每个路由节点的可靠性评分,可靠性评分是容量和在线时长的综合评分,计算公式为:

rely=r+k*t

其中,rely表示可靠性评分;r表示路由节点的容量评分,可根据现有技术中容量评分的方法计算获得;t表示路由节点在线时长评分,k是常数系数,满足k∈[0,10],表示在线时长的修正比例,默认情况下,k=1。可靠性评分以容量评分为主要参考,以在线时长评分为修正参考,由于t∈[0,1],因此在线时长的修正值最多为10。根据rg中每个路由节点的可靠性评分,计算平均可靠性评分averely,选择rg中可靠性评分不低于averely的路由节点放入hrg。使用minrely和maxrely分别表示hrg节点数量的下界和上界,若hrg的路由节点个数小于minrely,从rg中除hrg中以外的节点中选择可靠性评分较高的路由节点填充hrg;若hrg的路由节点个数大于maxrely,选择评分最高的maxrely个路由节点放入hrg。

步骤2.2、计算hrg中每个路由节点的性能评分,即带宽评分,得到平均性能评分aveperformance,选择hrg中性能评分不低于aveperformance的路由节点放入hpg。使用minperf和maxperf分别表示hpg节点数量的下界和上界,若hpg的路由节点个数小于minperf,从集合hrg中除hpg中以外的节点中选择性能评分较高的路由节点填充hpg;若hpg的路由节点个数大于maxperf,选择评分最高的maxperf个路由节点放入hrg。

步骤2.3、输出高性能组。

三、面向地域多样性的节点选择算法(gdnsa)

由于目前internet的节点分布不均衡,欧美等发达国家拥有大量的路由节点,如果采用传统的节点选择算法,很可能造成隧道中的多个节点位于同一地域,攻击者只需要在几个地域部署高性能的路由节点,就会有极大的概率破解通信匿名性,因此,通过选择不同地域的路由节点组成隧道,增加攻击者的攻击成本,从而提高系统的匿名性。

面向地域多样性的节点选择算法是以基础节点选择为基础的优化节点选择过程,输入为高性能组(hpg)和隧道长度l,输出为由l-1个路由节点组成的参与隧道创建的路由节点队列tn。具体包括以下步骤:

步骤3.1、初始化tn为空队列,将hpg中的路由节点根据地域划分为n组,将n组随机排列,得到地域队列aq,aq=<a1,a2,…ai,…,an>,其中,ai为相同地域的路由节点组,1≤i≤n;

步骤3.2、进行l-1次路由节点选择,l为隧道长度,在第k次选择中,先从当前路由节点对应的aq中获取队首元素ai,若ai非空,则从ai中随机选择1个路由节点nk加入tn队尾,再将nk从ai中移除,将ai移动至aq队尾,此时aq=<ai+1,…,an,a1,…,ai>,tn=<n1,n2,…,nk>,其中1≤k≤l-1,i=k%n,若ai+1非空,则再从ai+1中随机选择1个路由节点nk+1加入tn队尾,再将nk+1从ai+1中移除,此时aq=<ai+2,…,an,a1,…,ai+1>,tn=<n1,n2,…,nk>,依此迭代,直至最终生成由l-1个路由节点组成的隧道节点队列tn,tn=<n1,n2,…,nl-1>。

实施例一:

当系统中的匿名用户节点总数为1000,其中恶意节点总数为200,高可靠组(hrg)的节点数量上界与下界分别为300,200,高性能组(hpg)的节点数量上界与下界分别为200,100时,测试基础节点选择算法(bnsa)生成的高性能组中恶意节点所占比例。

正常节点在收到隧道创建请求时有50%的概率拒绝隧道请求,但不会丢弃隧道创建请求和传输数据。恶意节点分为4类,a类恶意节点直接丢弃隧道创建请求;b类恶意节点同意前50次隧道请求,但是丢弃后50次隧道请求;c类恶意节点同意全部隧道请求,但是前50次正常服务,后50次丢弃发送者传输的数据;d类恶意节点表现的行为与正常节点一致。恶意节点的带宽性能是正常节点的2倍,隧道创建者在hpg中随机选择节点创建隧道。分别对4类恶意节点进行测试,比较结果如图2所示:

对于a类恶意节点,由于其一直拒绝隧道创建请求,因此其容量评分较低,在hpg内的占比逐渐下降。

对于b类恶意节点,由于在前50次创建隧道过程中以100%的概率同意隧道请求且带宽性能较高,所以在hpg的占比逐渐攀升,但是由于其后50次拒绝参与隧道,因此容量评分逐渐下降,逐渐难以加入hpg,在hpg内的占比逐渐下降。

对于c类恶意节点,与b类恶意节点类似,在前50次隧道创建过程中,hpg内的占比逐渐升高,但是后50次隧道创建过程中,hpg内的占比逐渐下降,并且由于隧道测试失败的惩罚高于拒绝隧道请求,c类恶意节点在hpg内的占比下降速度明显快于b类恶意节点。

对于d类恶意节点,由于其表现与正常节点相同且带宽性能高于正常节点,因此随着隧道创建次数的增加,d类恶意节点在hpg内的占比逐渐升高。

可以看出bnsa对于消极的恶意节点具有较好的抵御能力,但是无法应对伪装成正常节点的d类恶意节点,d类恶意节点能够通过相互合作实现共谋攻击破解隧道匿名性。针对这一情况,gdnsa通过使隧道节点分布于尽可能多的地域,提供了较好的共谋攻击抵御能力,下面将通过数学分析的方式证明这一点。

假设高性能组(hpg)包含的路由节点总数为n,其中恶意节点总数为m,地域数量为g,隧道长度为l,满足m<n,g<n,l≥2。假设n个路由节点在g个地域平均分布,即每个地域包含n/g个路由节点。ai表示匿名性被攻破地概率。其中a0表示不进行地域划分时,通过随机节点选择算法构建的隧道匿名性被破解的概率;a1表示m个恶意节点平均分布在g个地域时,通过gdnsa选择节点构建的隧道匿名性被破解的概率;ai表示m个恶意节点平均分布在g/i个地域时,通过gdnsa选择节点构建的隧道匿名性被破解的概率。

设hpg的节点总数n=10000,地域数量g=20,恶意节点数量m分别为2000,4000,6000,8000,隧道长度l分别为3,5,7时,匿名性被破解的概率ai计算结果如表1所示。

图3展示了不划分地域和恶意节点均匀分布于g/2个地域时,分别使用随机选择算法和gdnsa构建的不同长度隧道的匿名安全性比较。从图中可以看出:

恶意节点占的比重越高,匿名性破解的概率越高,匿名安全性越差。

隧道的长度越长,匿名性破解的概率越低,匿名安全性越高。

对于相同长度的隧道,gdnsa构建的隧道比随机选择节点构建的隧道匿名安全性更高,并且隧道的长度越长,gdnsa的匿名安全性提升越显著。

表1匿名性破解概率

图4展示了恶意节点不同分布状况下,使用gdnsa构建的长度为7的隧道匿名安全性比较。可以看出恶意节点的分布越集中,匿名性破解的概率越小,匿名安全性越高。由于攻击者很难同时在多个地域部署恶意节点,因此gdnsa增加了攻击者进行共谋攻击的难度,提高了系统的匿名安全性。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1