在I2P网络中缓解路径创建攻击的方法、计算机可读存储介质和I2P网络与流程

文档序号:21778961发布日期:2020-08-07 19:52阅读:219来源:国知局
在I2P网络中缓解路径创建攻击的方法、计算机可读存储介质和I2P网络与流程

本发明涉及i2p网络领域,更具体地说,涉及一种在i2p网络中缓解路径创建攻击的方法、计算机可读存储介质和i2p网络。



背景技术:

匿名通信技术提供了消息数据加密,消息数据反追踪等实用的隐私功能,被广泛的使用在不可信任的网络环境当中。匿名通信网络当中最具有标志性并且也是最广泛被使用的就是tor网络和i2p网络。tor网络早期被使用在美国海军当中用于在不可信任的网络环境下进行数据的加密和反追踪,而如今随着世界上政治上也交流的愈加频繁,窃听政治商业机密的丑闻不断传出,企业或者政府等组织建立属于自己的匿名通信网络显得尤为必要。

tor网络和i2p网络因为其很好的解决了数据的加密和反追踪问题,并且有开源实现和配套的通信工具而被很多企业选择来搭建自己的匿名通信网络。在tor网络中,用户会先从tor网络的目录服务器获取一些列的中继服务器的列表,然后从这些中继服务器当中随机若干个(至少3个)作为数据的跳点(hop),然后首先跟第一个hop协商会话密钥k1,再通过k1加密协商会话密钥的数据,要求hop1转发被k1加密过后的协商会话密钥请求到hop2,hop2生成会话密钥k2,并返回会话密钥协商结果给hop1,hop1再通过k1加密会话密钥结果给起点。依次类推建立好n个hop之后,数据的起点依次通过kn,kn-1,....k1来层层加密数据并通过各个跳点依次拆包转发数据到终点。i2p网络是对tor网络的一种优化,i2p网络使用dht解决了tor目录服务器中心化的问题,同时将数据的上行路径和下行路径分开,让数据的追踪变得更加困难。

现有的i2p网络很好的解决了数据的加密和反追踪问题,但是缺没法解决女巫攻击的问题,一旦i2p网络当中的部分节点ip被发现确认,攻击者可以伪造大量的虚假消息来对节点进行攻击,从而导致网络当中的节点延迟大幅提高,而被攻击的节点依旧会被告知给用户,导致了最终的匿名网络使用体验不佳。

女巫攻击i2p网络最常见的攻击方式就是在路径创建时以及进行消息转发时攻击,通过伪造大量虚假的身份,攻击者可以跟i2p网络当中的多个节点建立连接,并且在每个节点上创建长时间空闲的路径,从而导致每个节点的产生大量的无效连接,并转发大量的无效消息。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种在i2p网络中缓解路径创建攻击的方法、计算机可读存储介质和i2p网络,其通过工作量证明的机制来避免路径创建攻击,从而避免i2p网络当中被攻击者创建大量无效链接的问题,进而提高i2p网络的网络性能和健壮性。

本发明解决其技术问题所采用的技术方案是:构造一种在i2p网络中缓解路径创建攻击的方法,包括:

s1、针对一个ip地址的节点,设置其与跳点之间的最大连接个数;

s2、为每一个跳点配置最低工作量证明,并基于所述最低工作量证明为所述ip地址创建路径。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,所述步骤s1进一步包括:

s11、针对一个ip地址的节点,设置其与直接连接的跳点之间的最大连接个数;

s12、针对一个ip地址的节点,设置其与间接连接的跳点之间的最大连接个数。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,所述步骤s2进一步包括:

s21、获取发现节点并测试所述发现节点以获取路径创建参数并选择对端节点,所述路径创建参数包括最低工作量证明;

s22、选择路径顺序并基于所述路径创建参数和所述路径顺序计算各个跳点的最低路径创建难度,并基于所述最低路径创建难度顺序生成各个路径创建消息,并在跳点之间传递加密传送所述路径创建消息;

s23、接收到加密传送的所述路径消息的跳点解密并验证所述最低工作量证明,并基于验证结果将其转发到下一跳点。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,所述步骤s21进一步包括:

s211、新增节点连入i2p网络之后,先连接种子节点,并要求所述种子节点给出距离自己最近的节点;

s212、根据所述最近节点递归询问所述最近节点的最近节点,进而获取足够多的发现节点;

s213、测试所述发现节点以获取所述发现节点的路径创建参数,并基于自身通信要求和所述路径创建参数选择对端节点,其中所述路径创建参数包括最低工作量证明dp;会话时长增量dsi;会话增量单位ti;和数据包难度dd。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,所述步骤s22进一步包括:

s221、依序选择第一跳点hop1、第二跳点hop2、第三跳点hop3,并基于所述第一跳点hop1、第二跳点hop2、第三跳点hop3的公钥生成第一、第二和第三nonce值nonce1,nonce2,nonce3,并生成第一、第二和第三会话密钥ss1,ss2,ss3,并创建上行路径path1,所述上行路径path1的路径保持时间为ts;

s222、根据所述第三跳点hop3的最低工作量证明dp3和会话时长增量dsi3计算所述第三跳点hop3的最低路径创建难度

s223、生成最内层路径创建消息m3,所述最内层路径创建消息m3包括:消息哈希值,nonce值,随机值和消息内容,其中所述随机值不停的随机生成直至基于所述随机值计算的所述nonce值的前导0个数符合所述最低工作量证明dp3的要求,所述消息内容包括下一节点的ip和端口;

s224、采用第三会话密钥ss3加密所述最内层路径创建消息m3以生成第一加密消息ms3;

s225、根据所述第二跳点hop2的最低工作量证明dp2和会话时长增量dsi2计算所述第二跳点hop2的最低路径创建难度:

s226、创建第二路径创建消息m2,所述第二路径创建消息m2包括消息哈希值,nonce值,随机值和消息内容,其中所述消息内容包括所述第一加密消息ms3,所述随机值不停的随机生成直至基于所述随机值计算的所述nonce值的前导0个数符合所述最低工作量证明dp2的要求;

s227、采用第二会话密钥ss2加密所述第二路径创建消息m2以生成第二加密消息ms2;

s228、根据所述第一跳点hop1的最低工作量证明dp1和会话时长增量dsi1计算所述第一跳点hop1的最低路径创建难度:

s229、创建第三路径创建消息m1,第三路径创建消息m1包括消息哈希值,nonce值,随机值和消息内容,其中所述消息内容包括所述第二加密消息ms2,所述随机值不停的随机生成直至基于所述随机值计算的所述nonce值的前导0个数符合所述最低工作量证明dp1的要求;

s230、采用第一会话密钥ss1加密第三路径创建消息m1生成第一加密消息ms1。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,所述步骤s23进一步包括:

s231、所述第一跳点hop1接收并采用所述第一会话密钥解密获得所述第三路径创建消息m1,并计算所述第三路径创建消息m1的实际nonce值,并校验所述实际nonce值是否符合所述最低工作量证明dp1的要求;如果是执行步骤s232,否则不进行转发;

s232、将所述消息转发到所述第二跳点hop2,所述第二跳点hop2采用所述第二会话密钥解密以获得第二路径创建消息m2,并计算第二路径创建消息m2的实际nonce值,并校验所述实际nonce值是否符合所述最低工作量证明dp2的要求;如果是执行步骤s233,否则不进行转发;

s233、将所述消息转发到所述第三跳点hop3,所述第三跳点hop3采用所述第三会话密钥解密以获得第三路径创建消息m3,并计算第三路径创建消息m3的实际nonce值,并校验所述实际nonce值是否符合所述最低工作量证明dp3的要求;如果是则将消息发送到最终目的地址,否则不进行转发。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,在所述步骤s23中,采用公式black2b(随机值+哈希)计算所述实际nonce值。

在本发明所述的在i2p网络中缓解路径创建攻击的方法中,进一步包括:

s3、周期性发送心跳信息给路径上的跳点,基于跳点要求进行每个心跳信息的实际nonce值计算,并校验所述实际nonce值是否满足各个跳点的最低工作量证明,如果满足继续保持路径连接,否则切断路径连接。

本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的在i2p网络中缓解路径创建攻击的方法。

本发明解决其技术问题采用的再一技术方案是,构造一种i2p网络,包括多个i2p节点,所述i2p节点上存储有计算机程序,所述程序被处理器执行时实现所述的在i2p网络中缓解路径创建攻击的方法。

实施本发明的在i2p网络中缓解路径创建攻击的方法、计算机可读存储介质和i2p网络,通过限制链接数量以及通过工作量证明的机制来避免路径创建攻击,从而避免i2p网络当中被攻击者创建大量无效链接的问题,进而提高i2p网络的网络性能和健壮性。进一步地,除了路径创建之外,还在路径维持过程中进行工作量证明,进而更加有效地提高了i2p网络的网络性能和健壮性。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的在i2p网络中缓解路径创建攻击的方法的第一优选实施例的流程示意图;

图2是本发明的在i2p网络中缓解路径创建攻击的方法的第二优选实施例的流程示意图;

图3是本发明的优选的握手消息的结构示意图;

图4是本发明的优选的握手回复消息的结构示意图;

图5是本发明的优选的路径创建消息、心跳消息和数据包消息的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明涉及一种在i2p网络中缓解路径创建攻击的方法,包括针对一个ip地址的节点,设置其与跳点之间的最大连接个数;为每一个跳点配置最低工作量证明,并基于所述最低工作量证明为所述ip地址创建路径。实施本发明的在i2p网络中缓解路径创建攻击的方法,通过限制链接数量以及通过工作量证明的机制来避免路径创建攻击,从而避免i2p网络当中被攻击者创建大量无效链接的问题,进而提高i2p网络的网络性能和健壮性。

图1是本发明的在i2p网络中缓解路径创建攻击的方法的第一优选实施例的流程示意图。如图1所示,在步骤s1中,针对一个ip地址的节点,设置其与跳点之间的最大连接个数。例如针对一个ip地址的节点,设置其与直接连接的跳点之间的最大连接个数;并且针对一个ip地址的节点,设置其与间接连接的跳点之间的最大连接个数。在本发明的一个优选实施例中,针对同一个ip地址,可以规定无论其使用多少个公钥,跟一个i2p跳点只能建立有限个数nmax个连接。并且进一步规定,针对同一个ip地址,无论其使用多少个公钥,其如果链接是从i2p跳点hop1到ip2跳点hop2,其总共能够建立的有限个数mmax个连接。其中nmax和mmax可以根据实际情况设置,可以相同,也可以不同。

在步骤s2中,为每一个跳点配置最低工作量证明,并基于所述最低工作量证明为所述ip地址创建路径。每个跳点均可以配置最低工作量证明,也就是说,如果一个ip地址想从i2p跳点建立路径,那么必须提供一定的工作量证明在路径创建消息里面,通常,要求跳点保持路径的时间越长,要提供的工作量证明就越大;节点在同一个跳点创建的路径越多,要求的工作量证明也会随之增加。其具体设置可由本领域技术人员根据实际情况进行设置。

在本发明的优选实施例中,可以先获取发现节点并测试所述发现节点以获取路径创建参数并选择对端节点,所述路径创建参数包括最低工作量证明;然后选择路径顺序并基于所述路径创建参数和所述路径顺序计算各个跳点的最低路径创建难度,并基于所述最低路径创建难度顺序生成各个路径创建消息,并在跳点之间传递加密传送所述路径创建消息;最后接收到加密传送的所述路径消息的跳点解密并验证所述最低工作量证明,并基于验证结果将其转发到下一跳点。

实施本发明的在i2p网络中缓解路径创建攻击的方法,通过限制链接数量以及通过工作量证明的机制来避免路径创建攻击,从而避免i2p网络当中被攻击者创建大量无效链接的问题,进而提高i2p网络的网络性能和健壮性。

图2是本发明的在i2p网络中缓解路径创建攻击的方法的第二优选实施例的流程示意图。图3-5分别使出了本发明的优选的握手消息、握手回复消息、路径创建消息、心跳消息和数据包消息的结构示意图。下面结合图2-5对本发明的优选实施例说明如下。

在步骤s1中,针对一个ip地址的节点,设置其与跳点之间的最大连接个数。例如针对一个ip地址的节点,设置其与直接连接的跳点之间的最大连接个数;并且针对一个ip地址的节点,设置其与间接连接的跳点之间的最大连接个数。在本发明的一个优选实施例中,针对同一个ip地址,可以规定无论其使用多少个公钥,跟一个i2p跳点只能建立有限个数nmax个连接。并且进一步规定,针对同一个ip地址,无论其使用多少个公钥,其如果链接是从i2p跳点hop1到ip2跳点hop2,其总共能够建立的有限个数mmax个连接。其中nmax和mmax可以根据实际情况设置,可以相同,也可以不同。

在步骤s2中,为每一个跳点配置最低工作量证明,并基于所述最低工作量证明为所述ip地址创建路径。

首先,在本步骤中,参照图3-5定义如下消息类型。

如图3所示,握手消息的消息类型为0,作用主要为:用于身份互相验证,即验证对端节点是否跟自己在同一个i2p网络,公钥是否属实;以及获取对端节点的路径创建参数包括最低工作量证明dp;会话时长增量dsi;会话增量单位ti;和数据包难度dd。所述握手消息包括:哈希,其为消息message的blake2b哈希值,以及签名,其为对哈希的ecdsa签名。

如图4所示,握手回复消息的消息类型为1,包含如下内容:哈希,其为消息message的blake2b哈希值,最低工作量证明dp;会话时长增量dsi;会话增量单位ti;心跳包难度dh;数据包难度dd,当不需要对消息进行工作量证明时,该字段为0;心跳发送间隔th;以及签名,其为对哈希的ecdsa签名。优选地,在不需要执行心跳验证的优选实施例中,可以不包含心跳包难度dh和心跳发送间隔th。

上行路径创建消息的消息类型为2,下行路径的创建消息类型为3。路径创建消息主要是为了在多个i2p节点当中选择数据跳点,同时转发数据到最终目的地。如图5所示,路径创建消息包括哈希,即消息的blake2b哈希值;签名,其为对哈希的ecdsa签名;随机值,其不停的重新生成,nonce值,其通过不停的重新生成random值,来计算blake2b(random+hash)来生成前导0个数符合最低工作量证明dp,直到前导0个数符合最低工作量证明dp为止,才会将nonce和random才会写入路径创建消息;转发ip;转发端口和消息内容。

心跳消息的消息类型为4,心跳消息的创建过程跟路径创建消息类似,其结构也与路径创建消息类似,只是消息内容为空。

数据包消息类型为5,数据包消息的工作量证明在本发明当中是可选项,当路径创建难度较高,或者心跳包难度要求较高时,数据包可以选择不进行工作量证明。当路径创建难度较低,或者心跳包要求难度较低时,可以对数据包要求工作量证明。数据包的消息内容跟路径创建消息内容一样,只是nonce值和random可以为空。

在本优选实施例中,步骤s2首先进入节点发现阶段。新增节点连入i2p网络之后,先连接种子节点,并要求所述种子节点给出距离自己最近的节点。节点间的距离可以根据经典的dht距离算法算出。收到种子节点给出的最近节点之后,继续向最近节点询问最近节点,多次递归询问直到获取足够的多的发现节点为止,这里建议最大发现节点个数为1024个。测试所述发现节点以获取所述发现节点的路径创建参数,并基于自身通信要求和所述路径创建参数选择对端节点。在这里,测试发现节点的目的是为了获取发现节点的难度要求,方便根据自身要求来进行连接。使用握手消息来进行节点的测试,测试节点完成之后,即可断开跟节点的连接。其中所述路径创建参数包括最低工作量证明dp;会话时长增量dsi;会话增量单位(秒)ti;数据包难度dd,以及响应握手节点的ecdsa签名。

然后,步骤s2进行路径创建阶段,节点发现完成之后,通常来说,对带宽要求较高,会话保持时间长,则会优先筛选工作量要求较大的节点,例如:实时视频通话;而对带宽要求较低,会话时间保持较短,则会优先筛选出工作量要求较小的节点,例如:邮件,聊天消息等。

然后依序选择第一跳点hop1、第二跳点hop2、第三跳点hop3,并基于所述第一跳点hop1、第二跳点hop2、第三跳点hop3的公钥生成第一、第二和第三nonce值nonce1,nonce2,nonce3,并生成第一、第二和第三会话密钥ss1,ss2,ss3。

按照第一跳点hop1、第二跳点hop2、第三跳点hop3的顺序创建上行路径path1,所述上行路径path1的路径保持时间为ts。

根据所述第三跳点hop3的最低工作量证明dp3和会话时长增量dsi3计算所述第三跳点hop3的最低路径创建难度

生成最内层路径创建消息m3,所述最内层路径创建消息m3包括:消息哈希值,nonce值,随机值、消息内容和签名。

其中消息哈希值为最内层路径创建消息的哈希值,其哈希算法为blake2b。所述随机值不停的随机生成直至基于所述随机值计算的所述nonce值的前导0个数符合所述最低工作量证明dp3的要求,这是才将随机值和nonce值填入所述最内层路径创建消息m3。所述消息内容包含消息类型,转发到下一个节点的ip和端口,消息数据。由于最内层路径创建消息m3是最终i2p的出口消息,所以m3里面填的转发ip和转发端口为最终目的ip和端口。消息数据为最终要传达的消息数据内容。最内层路径创建消息m3还可以包括对hash生成的ecdsa签名。然后采用第三会话密钥ss3加密所述最内层路径创建消息m3以生成第一加密消息ms3。

根据所述第二跳点hop2的最低工作量证明dp2和会话时长增量dsi2计算所述第二跳点hop2的最低路径创建难度:

创建第二路径创建消息m2,所述第二路径创建消息m2包括消息哈希值,nonce值,随机值、消息内容和签名,其中所述消息内容包括所述第一加密消息ms3,所述随机值不停的随机生成直至基于所述随机值计算的所述nonce值的前导0个数符合所述最低工作量证明dp2的要求,然后将才将随机值和nonce值填入所述第二路径创建消息m2。将第三跳点hop3的ip和端口写入第二路径创建消息m2的消息内容,并计算第二路径创建消息m2的哈希值以写入消息哈希值。对消息哈希值做ecdsa签名,并写入签名。

采用第二会话密钥ss2加密所述第二路径创建消息m2以生成第二加密消息ms2。

根据所述第一跳点hop1的最低工作量证明dp1和会话时长增量dsi1计算所述第一跳点hopl的最低路径创建难度:

创建第三路径创建消息m1,第三路径创建消息m1包括消息哈希值,nonce值,随机值、消息内容和签名。所述消息内容包括所述第二加密消息ms2,所述随机值不停的随机生成直至基于所述随机值计算的所述nonce值的前导0个数符合所述最低工作量证明dp1的要求,然后将才将随机值和nonce值填入所述第三路径创建消息m1。将第二跳点hop2的ip和端口写入第三路径创建消息m1的消息内容,并计算第三路径创建消息m1的哈希值以写入消息哈希值。对消息哈希值做ecdsa签名,并写入签名。

采用第一会话密钥ss1加密第三路径创建消息m1生成第一加密消息ms1。

所述第一跳点hop1接收并采用所述第一会话密钥解密获得所述第三路径创建消息m1,并计算所述第三路径创建消息m1的实际nonce值,并校验所述实际nonce值是否符合所述最低工作量证明dp1的要求;如果是将所述消息转发到所述第二跳点hop2,否则不进行转发。同样的,所述第二跳点hop2采用所述第二会话密钥解密以获得第二路径创建消息m2,并计算第二路径创建消息m2的实际nonce值,并校验所述实际nonce值是否符合所述最低工作量证明dp2的要求;如果是将所述消息转发到所述第三跳点hop3,否则不进行转发。也是同样的所述第三跳点hop3采用所述第三会话密钥解密以获得第三路径创建消息m3,并计算第三路径创建消息m3的实际nonce值,并校验所述实际nonce值是否符合所述最低工作量证明dp3的要求;如果是则将消息发送到最终目的地址,否则不进行转发。

在本实施中,在路径维持阶段,还执行心跳信息验证。即在步骤s3中周期性发送心跳信息给路径上的跳点,基于跳点要求进行每个心跳信息的实际nonce值计算。在本实施例中,路径维持阶段需要在周期性的发送心跳消息给路径上的节点,假设路径上三个跳点的心跳间隔分别为则路径的创建节点需要将作为实际发送心跳包的间隔。心跳包的构建过程跟路径创建包类似,只不过心跳包的消息内容为空,并且心跳包的最低工作量证明参照跳点的最低工作量证明即可,无需继续计算。路径维持阶段发送的数据包根据跳点的要求决定是否进行nonce值的计算,如果节点要求则计算并携带nonce值,如果节点不要求,则不携带。

在步骤s4中,校验所述实际nonce值是否满足各个跳点的最低工作量证明,如果满足执行步骤s5继续保持路径连接,否则执行步骤s6切断路径连接。

实施本发明的在i2p网络中缓解路径创建攻击的方法,通过限制链接数量以及通过工作量证明的机制来避免路径创建攻击,从而避免i2p网络当中被攻击者创建大量无效链接的问题,进而提高i2p网络的网络性能和健壮性。进一步地,除了路径创建之外,还在路径维持过程中进行工作量证明,进而更加有效地提高了i2p网络的网络性能和健壮性。

本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的在i2p网络中缓解路径创建攻击的方法。

本发明还涉及一种i2p网络,包括多个i2p节点,所述i2p节点上存储有计算机程序,所述程序被处理器执行时实现所述的在i2p网络中缓解路径创建攻击的方法。

实施本发明的在i2p网络中缓解路径创建攻击的方法、计算机可读存储介质和i2p网络,通过限制链接数量以及通过工作量证明的机制来避免路径创建攻击,从而避免i2p网络当中被攻击者创建大量无效链接的问题,进而提高i2p网络的网络性能和健壮性。进一步地,除了路径创建之外,还在路径维持过程中进行工作量证明,进而更加有效地提高了i2p网络的网络性能和健壮性。

因此,本发明可以通过硬件、软件或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现本发明方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行程序控制计算机系统,使其按本发明方法运行。

本发明还可以通过计算机程序产品进行实施,程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。

虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

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

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