一种寄生于对等网络的匿名通信方法

文档序号:8003301阅读:247来源:国知局
一种寄生于对等网络的匿名通信方法
【专利摘要】本发明公开了一种寄生于对等网络的匿名通信方法,包括步骤:S1、通信节点寄生到通信节点寄生于对等(P2P)文件共享网络;S2、通信节点参与P2P文件共享网络中的文件下载;S3、通信节点连接寄生在同一网络中的部分其他通信节点,并启动虚拟文件共享;S4、相邻通信节点之间加密密钥;S5、通信节点将通信数据混合垃圾数据通过加密编码后嵌入文件块中进行传输。具有不仅使通信路径上的不同链路的流量特征相互独立,可有效抵抗流量关联分析;而且由于观察者难以从为数众多的P2P文件共享网络节点中界定寄生的通信节点,可有效提高少数通信节点情况下的匿名性等优点。
【专利说明】一种寄生于对等网络的匿名通信方法
【技术领域】
[0001]本发明涉及一种信息安全与匿名通信技术,特别涉及一种寄生于对等网络的匿名通信方法。
【背景技术】
[0002]目前,现有的匿名通信技术通过引入中间节点及多跳加密的方式,使得第三方观察者难以直接关联通信发起者和接收者,从而达到匿名通信的目的。同时,为了防止观察者通过流量特征分析的方法关联通信路径上的各个链路,通常采用网络流变形方法模糊通信链路上的流量特征,提高观察者根据流量特征辨别通信路径的难度。传统的网络流变形方法包括:流填充、掩饰流、主动丢包、流混合、重调度等方法。
[0003]然而,近年来提出的基于时域或频域特征的流量关联分析方法依然能够有效的推断通信链路的流量相关性,从而破坏匿名通信系统的匿名性保护。其主要的原理是,在通信路径上相邻链路的流量具有较强的时间相关性。例如,在通信路径A->B->C中,通信数据从A经过B传递到C,那么B->C中传输的网络包的发送时间取决于A->B中网络包的到达时间以及数量,所以B->C的流量特征和A->B的流量特征存在时间相关性,第三方观察者可以据此关联通信路径上的不同链路。已有的大多数网络流变形方法难以彻底的并高效率的去除这种时间相关性,从而抵抗流量关联分析。
[0004]此外,已有的匿名通信技术通过混淆匿名通信节点的通信流来达到匿名保护的目的,系统的匿名性和同时在线的通信节点数量之间有直接关联。当参与匿名通信的节点数量较少时,匿名性会相对比较低下,较易被追踪和发现。已有系统难以在少数通信节点情况下提供高强度的匿名性保护。

【发明内容】

[0005]本发明的目的在于克服现有技术的缺点与不足,提供一种寄生于对等网络的匿名通信方法,该方法解决了在少数通信节点情况下匿名性较为低下的技术问题,通过将通信节点寄生在对等文件共享网络中来实现匿名通信,不仅可以有效抵抗流量关联分析,而且可以大大提高少数通信节点情况下的匿名性。
[0006]本发明的目的通过下述技术方案实现:一种寄生于对等网络的匿名通信方法,通过将通信节点寄生到对等(Peer-to-Peer,以下简称P2P)文件共享网络中,来实现匿名通信。每个参与匿名通信的节点加入到P2P文件共享网络中,参与文件共享,同时将通信数据混合垃圾数据通过加密编码后嵌入到传输的文件分块中进行相互传递。
[0007]具体而言,如图1所示,本发明包含以下五个具体的步骤:
[0008]S1、通信节点寄生到P2P文件共享网络;
[0009]S2、通信节点参与P2P文件共享网络中的文件下载;
[0010]S3、通信节点连接寄生在同一网络中的部分其他通信节点,并启动虚拟文件共[0011]S4、相邻通信节点之间通过Diffe-Hellman密钥交换,协商通信数据加密密钥;
[0012]S5、通信节点将通信数据混合垃圾数据通过加密编码后嵌入文件块中进行传输。
[0013]步骤SI具体为:通信节点采取和P2P文件共享网络协议相一致的通信行为,加入到P2P文件共享网络中,和部分其他P2P网络节点建立连接。
[0014]步骤S2具体为:通信节点随机选择I到3个P2P文件共享网络中共享的文件,请求下载这些文件。通过这种方式,加入到由其他P2P网络节点创建的Swarm中(Swarm的定义:在P2P文件共享网络中,所有共享或下载同一个文件的节点彼此连接,形成的网络拓扑结构称为Swarm)。
[0015]步骤S3具体为:一部分通信节点在P2P网络中担任引导节点,负责引导新加入的节点加入到由通信节点创建的Swarm中,并和Swarm中的其他通信节点建立连接。通信节点创建的Swarm中共享的是嵌入通信数据的虚拟文件,用于传递通信数据。通信节点创建的Swarm (简称为通信swarm)和其他普通P2P文件共享网络节点创建的Swarm(简称为文件swarm)交织在一起,形成相互交叠的覆盖网络(如图2所示)。对于网络中任意两个通信节点Vi和Vj,只要网络中存在一条连接这两个节点的路径(Vi, Vkl, vk2,..., Vkn, Vj),且路径上任意两个相邻的节点属于同一个通信Swarm,那么Vi和Vj就能够建立通信的信道。
[0016]步骤S4具体为:对于网络中两个相邻的通信节点Pi和Pk,按以下步骤协商密钥:
[0017]步骤S41、Pi向Pk发送文件块请求;
[0018]步骤S42、Pk向Pi发送文件块请求;
[0019]步骤S43、Pi收到Pk的文件块请求后,构建虚拟文件块发送给Pk,文件块内容为{gx, pad},其中gx是Diffe-Hellman密钥交换协议的前半交换数据,pad是随机构建的填充数据,用于确保虚拟文件块的大小和宿主P2P文件共享网络协议规定的文件块大小匹配;
[0020]步骤S44、Pk收到Pi的文件块请求后,构建虚拟文件块发送给Pi,文件块内容为{gy, pad},其中gy是Diffe-Hellman密钥交换协议的另一半交换数据,pad是随机构建的填充数据,用于确保虚拟文件块的大小和宿主P2P文件共享网络协议规定的文件块大小匹配;
[0021]步骤S45、Pi和Pk达成了密钥协商共识,Pi和Pk之间后续传递的通信数据将使用gxy作为加解密密钥。
[0022]步骤S5具体为:通信节点遵守宿主P2P文件共享网络协议,按文件分块请求驱动的方式调度网络包的传输,具体调度算法分为三个主要步骤“发送文件块请求”、“接收文件块”和“接收文件块请求并发送文件块”,对应三个和P2P文件共享网络协议完全兼容的网络行为:
[0023]步骤S51、发送文件块请求:通信节点周期性的向同属一个swarm的其他节点请求自己还没有的文件块;
[0024]步骤S52、接收文件块:当通信节点收到返回的文件块时,如果该文件块来自另一个通信节点,则从该文件块中解码出通信数据。如果该通信数据需要转发到另一个邻居通信节点,则将该数据块放入到对应的发送队列中,等待发送时机的到来;
[0025]步骤S53、接收文件块请求并发送文件块:当通信节点收到来自另一个通信节点的文件块请求时,则到对应的发送队列中取出一个待发送的数据块,加密编码后进行发送;如果对应的发送队列为空,则构造一个垃圾填充数据块,加密编码后进行发送。[0026]本发明的工作原理:每个参与匿名通信的节点加入到P2P文件共享网络中,参与文件共享,同时将通信数据混合垃圾数据通过加密编码后嵌入到传输的文件分块中进行相互传递。每条通信链路上的流量受文件块请求驱动,而和通信数据的到达时间及数量没有关联。由于P2P文件共享网络中每个节点发送文件块请求的时机是相互独立的,因此每条通信链路上的流量也将是相互独立的,从而可以有效抵抗流量关联分析。另一方面,由于每个匿名通信节点的行为完全兼容其所加入的P2P文件共享网络,其流量的统计特征与一般的P2P文件共享网络节点无异,从而使得观察者难以通过统计分析的方法,区分匿名通信节点和P2P文件共享网络节点,从而难以实施针对通信节点的追踪和发现。
[0027]本发明相对于现有技术具有如下的优点及效果:
[0028]1、通过将匿名通信节点寄生于P2P文件共享网络中,使得每条通信链路上的流量受文件块请求驱动,并和通信数据的到达时间及数量没有关联,从而实现通信链路上的流量相互统计独立,有效抵抗流量关联分析。
[0029]2、匿名通信节点的通信行为完全兼容宿主P2P文件共享网络协议,观察者难以从数以千万计的P2P文件共享网络节点中通过统计分析的方法界定寄生的通信节点,极大程度提高少数通信节点情况下的匿名性。
[0030]3、该匿名通信系统的体系结构中不涉及集中服务器,可采用完全分布式的架构进行部署,具有较好的可扩展性。
【专利附图】

【附图说明】
[0031]图1是本发明的方法流程图。
[0032]图2是通信swarm和文件swarm示意图,.表示寄生通信节点,Φ.表示P2P文件共享网络节点。
[0033]图3是新加入网络的通信节点连接网络中其他通信节点的流程图。Pi是新加入网络的通信节点。
[0034]图4是通信节点协商通信密钥流程图。Pi和Pk是网络中两个相邻的通信节点。
[0035]图5是通信节点网络包调度流程图。
【具体实施方式】
[0036]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0037]实施例
[0038]如图1所示,一种寄生于对等网络的匿名通信方法,主要包括以下步骤:
[0039]S1、通信节点寄生到P2P文件共享网络;
[0040]S2、通信节点参与P2P文件共享网络中的文件下载;
[0041]S3、通信节点连接寄生在同一网络中的部分其他通信节点,并启动虚拟文件共
[0042]S4、相邻通信节点之间通过Diffe-Hellman密钥交换,协商通信数据加密密钥;
[0043]S5、通信节点将通信数据混合垃圾数据通过加密编码后嵌入文件块中进行传输。
[0044]前述步骤SI的具体的实施方法是:通信节点采用和P2P文件共享网络协议相一致的通信行为,加入到P2P文件共享网络中,和部分其他P2P网络节点建立连接。
[0045]前述步骤S2的具体的实施方法是:通信节点随机选择I到3个P2P文件共享网络中共享的文件,请求下载这些文件。通过这种方式,加入到由其他P2P网络节点创建的Swarm中(Swarm的定义:在P2P文件共享网络中,所有共享或下载同一个文件的节点彼此连接,形成的网络拓扑结构称为Swarm)。
[0046]前述步骤S3的具体的实施方法是:一部分通信节点在P2P网络中担任引导节点,负责引导新加入的节点加入到由通信节点创建的Swarm中,并和Swarm中的其他通信节点建立连接。通信节点创建的Swarm中共享的是嵌入通信数据的虚拟文件,用于传递通信数据。通信节点创建的Swarm (简称为通信swarm)和其他普通P2P文件共享网络节点创建的Swarm(简称为文件swarm)交织在一起,形成相互交叠的覆盖网络(如图2所示)。对于网络中任意两个通信节点Vi和Vj,只要网络中存在一条连接这两个节点的路径(Vi, Vkl, vk2,..., Vkn, Vj),且路径上任意两个相邻的节点属于同一个通信Swarm,那么Vi和Vj就能够建立通信的信道。通信节点按如图3所示的流程,加入到由其他通信节点创建的通信Swarm中,该Swarm用于彼此间共享嵌入通信数据的虚拟文件,达到通信的目的。图3所示的流程包括以下主要步骤:
[0047]步骤S31、Pi在P2P文件共享网络中查找下载某个特殊文件Fh的通信节点,这些特殊的通信节点称为引导节点,负责引导新到来的通信节点加入到特定的通信Swarm中,每个引导节点通过共享文件Fh来向其他通信节点宣称自己的引导节点角色;
[0048]步骤S32、Pi选择一个没有联系过的引导节点Pb,并向Pb发起入网请求;
[0049]步骤S33、如果Pb不属于任何通信Swarm,则Pb在P2P文件共享网络中共享一个新的虚拟文件,从而创建一个新的通信Swarm,并邀请Pi加入该Swarm,转步骤S37 ;
[0050]步骤S34、如果Pb属于某个通信Swarm且该Swarm中节点的个数不超过常数阈值α ,那么Pb邀请Pi加入该Swarm,转步骤S37 ;
[0051]步骤S35、如果所有包含Pb的通信Swarm的节点个数均超过常数阈值α,且包含Pb的通信Swarm的总数不超过常数阈值β,则Pb在P2P文件共享网络中共享一个新的虚拟文件,从而创建一个新的通信Swarm,并邀请Pi加入该Swarm,转步骤S37 ;
[0052]步骤S36、如果所有包含Pb的通信Swarm的节点个数均超过常数阈值α,且包含Pb的通信Swarm的总数大于常数阈值β,则Pb将失败信息发送给Pi,同时Pb不再担任引导节点角色,转步骤S31 ;
[0053]步骤S37、Pi加入对应的通信Swarm,和该通信Swarm中的所有通信节点建立连接;
[0054]步骤S38、如果当前在线的引导节点数量小于常数阈值Θ,则Pi通过在P2P文件共享网络中共享文件Fh,宣称其为引导节点,流程结束。
[0055]前述步骤S4的具体实施方法是:如图4所示,对于网络中两个相邻的通信节点Pi和pk,按以下步骤协商密钥:
[0056]步骤S41、Pi向Pk发送文件块请求;
[0057]步骤S42、Pk向Pi发送文件块请求;
[0058]步骤S43、Pi收到Pk的文件块请求后,构建虚拟文件块发送给Pk,文件块内容为{gx, pad},其中gx是Diffe-Hellman密钥交换协议的前半交换数据,pad是随机构建的填充数据,用于确保虚拟文件块的大小和宿主P2P文件共享网络协议规定的文件块大小匹配;[0059]步骤S44、Pk收到Pi的文件块请求后,构建虚拟文件块发送给Pi,文件块内容为{gy, pad},其中gy是Diffe-Hellman密钥交换协议的另一半交换数据,pad是随机构建的填充数据,用于确保虚拟文件块的大小和宿主P2P文件共享网络协议规定的文件块大小匹配;
[0060]步骤S45、Pi和Pk达成了密钥协商共识,后续的传输数据将使用gxy作为加解密密钥。
[0061]前述步骤S5的具体实施方法是:通信节点遵守宿主P2P文件共享网络协议,按文件分块请求驱动的方式调度传输的网络包。具体调度算法流程如图5所示,主要按以下步骤进行:
[0062]步骤S501、当前通信节点周期性向同属一个swarm的其他节点请求自己还没有的文件块;
[0063]步骤S502、如果当前通信节点接收到来自另一个通信节点的文件块,则对该文件块进行解密,获得通信数据,密钥是前述步骤S45中协商获得的密钥;
[0064]步骤S503、如果在上述步骤S502中接收到的通信数据需要转发到另一个邻居通信节点,则将该数据块放入到对应的发送队列中,等待发送时机的到来;
[0065]步骤S504、如果当前通信节点需要发送通信数据到另一个通信节点,则将该数据块放入到对应的发送队列中,等待发送时机的到来;
[0066]步骤S505、如果当前通信节点接收到来自另一个通信节点的文件块请求,并且对应的发送队列不为空,则从对应的发送队列中取出一个待发送的数据块,加密编码后进行发送,密钥是前述步骤S45中协商获得的密钥,转步骤S501 ;
[0067]步骤S506、如果当前通信节点接收到来自另一个通信节点的文件块请求,并且对应的发送队列为空,则构造一个垃圾填充数据块,加密编码后进行发送,密钥是前述步骤S45中协商获得的密钥。转步骤S501。
[0068]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【权利要求】
1.一种寄生于对等网络的匿名通信方法,其特征在于,包含以下步骤: 步骤S1、通信节点寄生到P2P文件共享网络; 步骤S2、通信节点参与P2P文件共享网络中的文件下载; 步骤S3、通信节点连接寄生在同一网络中的部分其他通信节点,并启动虚拟文件共 步骤S4、相邻通信节点之间通过Diffe-Hellman密钥交换,协商通信数据加密密钥; 步骤S5、通信节点将通信数据混合垃圾数据通过加密编码后嵌入文件块中进行传输。
2.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S3中,一部分通信节点担任引导节点,每个新加入的通信节点向其中在线的引导节点发起入网请求。
3.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S3中,引导节点在收到其他通信节点的入网请求后,引导该通信节点加入到由通信节点创建的Swarm中,并和Swarm中的其他通信节点建立连接。
4.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S4中,相邻的通信节点在建立连接后相互向对方发送文件块请求。
5.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S4中,当通信节点和相邻的通信节点建立连接并收到对方发来的文件块请求后,构建虚拟文件块发送给对方,文件块内容为{gx,pad},其中gx是Diffe-HelIman密钥交换协议的交换数据,pad是随机构建的填充数据,用于确保虚拟文件块的大小和宿主P2P文件共享网络协议规定的文件块大小匹配。
6.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S5中,每个通信节点周期性向同属一个swarm的其他节点请求自己还没有的文件块。
7.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S5中,如果当前通信节点接收到来自另一个通信节点的文件块,则对该文件块进行解密,获得通信数据。
8.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S5中,如果当前通信节点接收到的通信数据需要转发到另一个邻居通信节点,则将该数据块放入到对应的发送队列中,等待发送时机的到来。
9.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S5中,如果当前通信节点需要发送通信数据到另一个通信节点,则将该数据块放入到对应的发送队列中,等待发送时机的到来。
10.根据权利要求1所述的寄生于对等网络的匿名通信方法,其特征在于,在步骤S5中,如果当前通信节点接收到来自另一个通信节点的文件块请求,并且对应的发送队列不为空,则从对应的发送队列中取出一个待发送的数据块,加密编码后进行发送。
【文档编号】H04L29/06GK103812920SQ201310328952
【公开日】2014年5月21日 申请日期:2013年7月31日 优先权日:2013年7月31日
【发明者】吕建明, 杨灿 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1