掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链技术的匿名通信系统路由选择方法

文献发布时间:2023-06-19 09:32:16


一种基于区块链技术的匿名通信系统路由选择方法

技术领域

本发明属于区块链网络技术领域,具体涉及一种基于区块链技术的匿名通信系统路由选择方法。

背景技术

匿名通信指采取一定的措施隐蔽通信流中的通信关系,使窃听者难以获取或推知通信双方的关系及内容,匿名通信的目的就是隐蔽通信双方的身份或通信关系,保护网络用户的个人通信隐私。

匿名通信的基本框架可以从三个方面加以阐述:匿名属性(anonymityproperty)、对手能力(adversary capability)和网络类型(network type),其中,匿名通信系统的网络类型由以下三个因素确定,分别为:路径拓扑(pathto pology)、路由机制(route scheme)和路径类型(path type)。匿名通信系统的路径拓扑有两种,分别为瀑布型(cascade)和自由型(free);在瀑布型的网络中,发送者从匿名通信网络中选择固定的通信路径进行消息的传输;在自由型的网络中,发送者可以选择任意长度的通信路径进行消息的传输。一般意义上,自由型的网络拓扑比瀑布型的网络拓扑具有更强的匿名。匿名通信系统的路由机制分为单播(unicast)、组播(multicast)、广播(broadcast)和任意播(anycast),目前基于系统效率和系统部署等实际问题的考虑,大多数实际部署的匿名通信系统的路由机制都是单播的机制;而匿名通信系统的路径类型分为简单(simple)和复杂(complex),简单的路径类型不允许出现路径的循环,中继的节点在整个路径中只能出现一次;复杂的路径类型可以出现路径的循环,中继的节点在整个路径中可以出现多次。

Tor是目前被广泛使用的低延迟匿名通信系统。用户往往只需要安装一个Tor浏览器,就能进行匿名上网,并且在延迟上也相对于其他匿名系统表现较好。如今,全球有数百万的用户正在使用Tor进行匿名通信,这对于用户的隐私保护起到了极大的作用。

用户通过目录服务器下载可用代理节点信息,然后通过路由选择算法,选择3个代理节点作为链路上的中继节点,分别为入口节点、中间节点和出口节点。每个节点都会与客户机生成临时会话密钥以进行数据传输时的加密操作,数据会经过层层加密后,发送到入口节点。每到达一个路由节点后,节点会使用其私钥进行解密,然后发送到下一路由节点,最终到达出口节点后,数据已经变成明文,然后出口节点将数据就直接发送给接收端。

Tor传统使用的路由选择算法是基于选择代理节点中高带宽和在线时间长的节点作为中继节点,基于这个路由选择算法,攻击者可以提升带宽,保持长时间在线,以此让自己的节点加入到Tor网络中,这样用户在节点选择时就很可能选到这些危险的节点,从而有很大概率获取用户的数据转发,并窃取用户隐私。

发明内容

本发明针对上述时间同步需求,提供了一种基于区块链技术,改进路由选择算法,让智能合约来为客户端选择代理节点,然后生成临时密钥以保证数据在传输过程中的加密、解密的匿名通信系统路由选择方法。

本发明所公开的一种基于区块链技术的匿名通信系统路由选择方法,其特征在于,包括以下步骤:

步骤1,定义区块链智能合约的非对称密钥生成算法和路由选择算法,然后通过所述区块链智能合约筛选出由目录服务器提交的数据中的出入口节点、中间节点、出口节点信息,并生成一对包括公钥Pk和私钥Sk的非对称密钥,将私钥Sk发送给目录服务器、公钥Pk广播发送给各代理节点;

步骤2,区块链智能合约根据用户发起的代理请求,获取目录服务器所有节点的地址信息;

步骤3,通过区块链智能合约的路由选择算法,从目录服务器所有节点的地址信息中随机筛选n个地址,并对随机筛选的n个地址进行交易量统计,剔除交易量最高的X和最低的各Y个地址;

步骤4,从步骤3中剩余的n-X-Y个地址中,选取最终交易量最为接近的三个作为最终的入口节点、中间节点、出口节点,并通过区块链智能合约获取对应的地址信息,然后使用所述公钥Sk对地址信息加密后发送给用户;

步骤5,用户将加密地址信息发送给目录服务器,目录服务器返回对应节点的公网IP地址和端口号,为了更好保护用户不受到攻击,所以用户选择其中一个节点作为入口节点R1进行打洞穿透,区块链智能合约将用户IP地址和端口号也发送给对应代理节点,让代理节点成功连接、打洞穿透成功,然后生成一对临时非对称密钥,用于加密数据的转发完成路由选择。

具体的,所述步骤1中,由目录服务器提交的数据包含所有代理节点的区块链地址和当前代理节点完成代理的交易量信息。

所述步骤1中,定义区块链智能合约的非对称密钥生成算法为RSA算法。

所述步骤3中,区块链智能合约的路由选择算法是根据区块链智能合约获取到的所有节点信息来进行筛选的,具体的,包括两级筛选:

第一级筛选是采用随机选择算法从出入口节点、中间节点、出口节点信息中随机选出n个节点信息;

第二级筛选是对第一级筛选获取到的n个节点信息再次筛选,先通过对n个节点信息的交易量排序,然后剔除前30%的高交易量节点以及后40%的低交易量节点。

进一步的,所述步骤3中,区块链智能合约的路由选择算法从目录服务器所有节点的地址信息中随机筛选n个地址后,会对对这n个地址对应的节点进行交易奖励。对于用户来说,如果想使用代理,则需要支付一定的代币,该代币可以使用各种区块链流通的代币,比如以太币,为了维护一个好的代理节点环境,使得有更多新节点能加入,对于路由选择算法可以引入奖励机制,筛选出的节点进行交易奖励,从用户支付的代币中划出一部分作为奖励。

因为路由选择算法是通过交易量来进行筛选的,为了防止低交易量节点不被“饿死”,对于一级筛选出的节点,给予代币奖励,以此来增加该代理节点的交易量,而对于二级筛选出的节点,再次通过代币奖励,以增加交易量,没有将全部奖励只分给二级筛选的节点是因为这样很容易造成大部分节点交易量增长缓慢,没有用户可连接的情况,从而退出代理方,这是为了防止低交易量节点不被饿死,最终正常代理节点的交易量会趋于平稳。

优选地,所述步骤3中,区块链智能合约的路由选择算法从目录服务器所有节点的地址信息中随机筛选n个地址后,还会对筛选出的n个地址所对应的节点进行恶意节点识别,具体的,若在设定时间段内某个节点的交易量高于先验阈值,则判定该节点为恶意节点,区块链智能合约将该节点信息发送给目录服务器,目录服务器将此节点剔除;恶意节点主要是为了获取用户数据信息而存在于代理地址池中的一些节点,由于代理池中的代理节点信息一直在更新,所以并不能明显地判断出该节点是否是恶意节点,路由选择算法主要通过该节点在区块链中的交易量来选择,所以恶意节点可以通过不断交易的方式刷交易量来达到高交易量,如果路由选择算法是基于高交易量的方式来进行选择的,这样就会对用户造成很大的危害。

所述步骤5中,所述打洞穿透,用户选择入口节点R1后,通过具有NAT技术的设备(路由器)将入口节点R1的地址转换内网IP,为了更好保护用户不受到攻击,所以采用打洞穿透的方式进行IP隐藏。打洞前提:用户并未使用公网IP地址,而是通过具有NAT技术的设备(路由器)进行地址转换,转换为内网IP然后再进行进行打洞穿透。

具体的,用户发送任何消息给入口节点R1,若入口节点R1中并未将该公网IP和端口加入其NAT映射,则入口节点R1不会收到该消息,用户即通过区块链智能合约将用户端的公网IP和对应端口号发送给入口节点R1,入口节点R1将该公网IP和端口加入其NAT映射打洞穿透完成。

所述步骤5中,用户与选择的入口节点R1成功连接后,将剩下两个节点对应的地址和端口信息使用临时公钥加密后发送给入口节点R1,入口节点R1收到剩下两个节点对应的地址和端口信息后使用临时公钥解密并进行连接,即当成功获取到三个代理地址并选择了节点路径后,后续的连接使用传统代理方式即可连接,比如SOCK5或者是HTTPS,连接建立后数据传输的加密解密,根据传统代理使用的加密解密即可。

与现有技术相比,本发明所达到的有益效果如下:

1、通过智能合约改进路由选择算法,降低传统路由选择算法选择高风险节点的风险,并且通过区块链技术也会对代理节点有一定的货币奖励,能更好维护整个代理节点网络。并且本方法中,剔除高交易量节点是为了避免有恶意节点通过刷交易量的方式提升被选为代理节点的概率而威胁到用户信息;剔除低交易量节点是因为低交易量节点可能是新加入节点,很少被使用,并不能保证其安全性。

2、通过打洞穿透技术隐藏代理节点真实IP地址,能有效防止恶意节点对于固定IP地址的攻击。通过区块链技术,改进路由选择算法,让智能合约来为客户端选择代理节点,然后生成临时密钥以保证数据在传输过程中的加密、解密。这样能更好抵御恶意节点的攻击,并且通过打洞穿透技术隐藏代理节点地址,能降低代理节点受到攻击的风险。

附图说明

本发明的前述和下文具体描述在结合以下附图阅读时变得更清楚,附图中:

图1是本发明技术方案一种优选地流程示意图;

图2是本发明具体实施例中NAT技术的设备连接关系示意图。

具体实施方式

下面通过具体的实施例来进一步说明实现本发明目的技术方案,需要说明的是,本发明要求保护的技术方案包括但不限于以下实施例。

实施例1

作为本发明一种基本实施方案,如图1,本实施例公开了一种基于区块链技术的匿名通信系统路由选择方法,包括以下步骤:

步骤1,定义区块链智能合约的非对称密钥生成算法和路由选择算法,然后通过所述区块链智能合约筛选出由目录服务器提交的数据中的出入口节点、中间节点、出口节点信息,并生成一对包括公钥Pk和私钥Sk的非对称密钥,将私钥Sk发送给目录服务器、公钥Pk广播发送给各代理节点;

步骤2,区块链智能合约根据用户发起的代理请求,获取目录服务器所有节点的地址信息;

步骤3,通过区块链智能合约的路由选择算法,从目录服务器所有节点的地址信息中随机筛选n个地址,并对这n个地址进行交易量统计,剔除交易量最高的X和最低的各Y个地址;

步骤4,从步骤3中剩余的n-X-Y个地址中,选取最终交易量最为接近的三个作为最终的入口节点、中间节点、出口节点,并通过区块链智能合约获取对应的地址信息,然后使用所述公钥Sk对地址信息加密后发送给用户;

步骤5,用户将加密地址信息发送给目录服务器,目录服务器返回对应节点的公网IP地址和端口号,为了更好保护用户不受到攻击,所以用户选择其中一个节点作为入口节点R1进行打洞穿透,区块链智能合约将用户IP地址和端口号也发送给对应代理节点,让代理节点成功连接、打洞穿透成功,然后生成一对临时非对称密钥,用于加密数据的转发完成路由选择。

实施例2

作为本发明一种优选的实施方案,如图1,本实施例公开了一种基于区块链技术的匿名通信系统路由选择方法,包括以下步骤:

步骤1,定义区块链智能合约的非对称密钥生成算法和路由选择算法,定义区块链智能合约的非对称密钥生成算法为RSA算法,由目录服务器提交的数据包含所有代理节点的区块链地址和当前代理节点完成代理的交易量信息,如[[prx0,tx0],[prx1,tx1]…],通过所述区块链智能合约筛选出由目录服务器提交的数据中的出入口节点、中间节点、出口节点信息,并生成一对包括公钥Pk和私钥Sk的非对称密钥,将私钥Sk发送给目录服务器、公钥Pk广播发送给各代理节点。

步骤2,区块链智能合约根据用户发起的代理请求,获取目录服务器所有节点的地址信息。

步骤3,通过区块链智能合约的路由选择算法,从目录服务器所有节点的地址信息中随机筛选n个地址;具体的,包括两级筛选:

第一级筛选是采用随机选择算法从出入口节点、中间节点、出口节点信息中随机选出n个节点信息;

第二级筛选是对第一级筛选获取到的n个节点信息再次筛选,先通过对n个节点信息的交易量排序,然后剔除前30%的高交易量节点以及后40%的低交易量节点。

进一步的,区块链智能合约的路由选择算法从目录服务器所有节点的地址信息中随机筛选n个地址后,会对对这n个地址对应的节点进行交易奖励。对于用户来说,如果想使用代理,则需要支付一定的代币,该代币可以使用各种区块链流通的代币,比如以太币,为了维护一个好的代理节点环境,使得有更多新节点能加入,对于路由选择算法可以引入奖励机制,筛选出的节点进行交易奖励,从用户支付的代币中划出一部分作为奖励。

因为路由选择算法是通过交易量来进行筛选的,为了防止低交易量节点不被“饿死”,对于一级筛选出的节点,给予代币奖励,以此来增加该代理节点的交易量,而对于二级筛选出的节点,再次通过代币奖励,以增加交易量,没有将全部奖励只分给二级筛选的节点是因为这样很容易造成大部分节点交易量增长缓慢,没有用户可连接的情况,从而退出代理方,这是为了防止低交易量节点不被饿死,最终正常代理节点的交易量会趋于平稳。

优选地,区块链智能合约的路由选择算法从目录服务器所有节点的地址信息中随机筛选n个地址后,还会对筛选出的n个地址所对应的节点进行恶意节点识别,具体的,若在设定时间段内某个节点的交易量高于先验阈值,则判定该节点为恶意节点,区块链智能合约将该节点信息发送给目录服务器,目录服务器将此节点剔除;恶意节点主要是为了获取用户数据信息而存在于代理地址池中的一些节点,由于代理池中的代理节点信息一直在更新,所以并不能明显地判断出该节点是否是恶意节点,路由选择算法主要通过该节点在区块链中的交易量来选择,所以恶意节点可以通过不断交易的方式刷交易量来达到高交易量,如果路由选择算法是基于高交易量的方式来进行选择的,这样就会对用户造成很大的危害。

步骤4,从步骤3中剩余的n*30%个地址中,选取最终交易量最为接近的三个作为最终的入口节点、中间节点、出口节点,并通过区块链智能合约获取对应的地址信息,然后使用所述公钥Sk对地址信息加密后发送给用户。

步骤5,用户将加密地址信息发送给目录服务器,目录服务器返回对应节点的公网IP地址和端口号,为了更好保护用户不受到攻击,所以用户选择其中一个节点作为入口节点R1进行打洞穿透,区块链智能合约将用户IP地址和端口号也发送给对应代理节点,让代理节点成功连接、打洞穿透成功,然后生成一对临时非对称密钥,用于加密数据的转发完成路由选择。所述打洞穿透,如图2,用户选择入口节点R1后,通过具有NAT技术的设备(路由器)将入口节点R1的地址转换内网IP,为了更好保护用户不受到攻击,所以采用打洞穿透的方式进行IP隐藏。打洞前提:用户并未使用公网IP地址,而是通过具有NAT技术的设备(路由器)进行地址转换,转换为内网IP然后再进行进行打洞穿透。

具体的,用户发送任何消息给入口节点R1,若入口节点R1中并未将该公网IP和端口加入其NAT映射,则入口节点R1不会收到该消息,用户即通过区块链智能合约将用户端的公网IP和对应端口号发送给入口节点R1,入口节点R1将该公网IP和端口加入其NAT映射打洞穿透完成。

进一步的,用户与选择的入口节点R1成功连接后,将剩下两个节点对应的地址和端口信息使用临时公钥加密后发送给入口节点R1,入口节点R1收到剩下两个节点对应的地址和端口信息后使用临时公钥解密并进行连接,即当成功获取到三个代理地址并选择了节点路径后,后续的连接使用传统代理方式即可连接,比如SOCK5或者是HTTPS,连接建立后数据传输的加密解密,根据传统代理使用的加密解密即可。

技术分类

06120112203078