P2P网络下基于协议字段冗余的隐蔽数据传输同步方法与流程

文档序号:15497784发布日期:2018-09-21 22:02阅读:314来源:国知局
本发明属于计算机网络与信息安全技术,具体涉及一种p2p网络下基于协议字段冗余的隐蔽数据传输同步方法。
背景技术
:随着计算机网络通信技术的迅速发展,信息传输的安全问题日益严峻。传统的加密技术是将秘密信息扰乱,变成杂乱无章的密文,但是却直接暴露了保密通信的存在,容易引起攻击者的关注。信息隐藏技术则是将秘密信息藏于近似正常的数据流之中,从而隐藏了秘密信息传输通道的存在,相较于传统的加密技术,多了一层迷惑攻击者的手段,安全性更高。p2p网络是一种分布式对等网络环境,非常便于广大网络用户使用网络共享服务,而且近年来涌现了诸多的p2p文件共享应用,如bittorrent、emule、bitcomet、vuze,深受网络用户的青睐,因此,p2p网络的信息安全性问题越来越受重视。现有的网络信息隐藏技术的研究主要集中于使用tcp/ip协议的internet网络,对于使用bt协议的p2p网络的研究相对较少,因此,以p2p网络数据流作为载体的信息隐藏技术值得我们进一步地深入研究。基于bt协议的p2p网络数据流大体可分为三部分:bt种子文件、bt服务器文件和bt消息文件。基于bt种子文件的网络信息隐藏方法主要是利用大小写不敏感变换和结构冗余复用技术,将秘密信息嵌入到bt种子文件各种关键字的冗余空间中(李自帅,孙兴明,王宝威等人.一种对等网中的隐写方案[c].智能信息隐藏与多媒体信号处理国际会议.2008:20-24.)。bt服务器,又称之为tacker服务器,用于保存bt种子文件以及记录当前下载者的网络信息,基于tacker服务器的网络信息隐藏方法主要分为两种:一是利用httpget请求消息中关键字peer_id的冗余空间为载体嵌入秘密信息(j.desimone,d.johnson,b.yuan.covertchannelinthebittorrenttrackerprotocol[eb/ol].accessedfromhttp://scholarworks.rit.edu/other/300,2012.)(j.desimone,d.johnson,b.yuan.基于bittorrenttracker协议的隐信道[eb/ol].访问地址http://scholarworks.rit.edu/other/300,2012.),二是通过http消息将秘密信息直接写入tacker服务器(m.cunche,m.kaafar,r.boreli.asynchronouscovertcommunicationusingbittorrenttrackers[c].proceedingsof2014ieee11thinternationalconferenceonembeddedsoftwareandsystem,2014:827-830.)(m.cunche,m.kaafar,r.boreli.基于bittorrenttracker服务器的异步隐蔽通信[c].2014年第11届嵌入式软件与系统的ieee国际会议,2014:827-830.)。基于bt消息的网络信息隐藏方法较少,尽管存在各种不同功能的bt消息,但是大多数都由于缺少足够的冗余空间而被忽视,也有个别例外,例如李子帅等人提出的基于bitfield消息的信息隐藏算法和基于piece消息的信息隐藏算法,则是将秘密信息嵌入到bitfield消息以及piece消息的冗余空间中(李子帅.基于bittorrent网络的信息隐藏技术研究[d].湖南:湖南大学,硕士学位论文,2009.)。但以上现有技术的隐藏容量较少,也没有对于数据发送的确认机制。传统设计的隐蔽通信传输系统,由于缺乏一套有效的通信协议,往往设计的通信系统存在一定的问题,比如缺乏数据的有效加密、收发确认机制以及差错处理机制等。技术实现要素:发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种p2p网络下基于协议字段冗余的隐蔽数据传输同步方法,本发明以p2p网络中的handshake握手消息为基础,通过修改handshake握手消息中peer_id字段的冗余部分,实现节点身份信息的确认、密钥的协商、数据的收发确认以及信道灭活。技术方案:本发明一种p2p网络下基于协议字段冗余的隐蔽数据传输同步方法,依次包括以下步骤:(1)隐蔽信道建立与密钥协商:接收端通过提取p2p网络的handshake握手消息中的peer_id字段来确认发送端的身份信息,建立隐蔽通信连接;然后通过基于rsa的公开密钥系统来交换对数据加密的密钥;(2)数据发送与确认:发送端对发送的每块数据进行编号以及计算其hash值,接收端在校验这些数据正确后,将协商好的字符代码(可任意设置)嵌入到handshake的peer_id字段中,发送端提取再次握手消息中字符代码比对来确认信息发送是否成功;(3)信道灭活:通过提取handshake的peer_id字段上特定位置的代码值与预先规定的代码值比对,来判断本次隐蔽信息是否传输结束,如果结束则注销隐蔽信道。进一步的,所述步骤(1)中,若提取的handshake握手消息中的peer_id字段相应代码与协定好的代码一致,则建立隐蔽通信连接,即可以向接收方发送隐蔽数据。如果不一致,则建立正常的通信连接。进一步的,所述步骤(1)中隐蔽信道建立后,在进行密钥协商时,发送端与接收端分别通过rsa公开密钥系统生成各自的公钥,发送端使用接收端的公钥加密本次通信的密钥,并将加密后的密钥发送给接收端,从而实现密钥协商,增加了数据传输的安全性。进一步的,所述步骤(2)中接收端校验和确认详细过程为:(2.1)接收端通过协商后的密钥解密发送端所发送的数据包,读取数据包头,提取数据编号,判断是否已经接收过此块数据;(2.2)计算数据的hash值,比对是否与数据包中提取的hash值一致;(2.3)如果经过以上两步的判断数据是正确的,此时对handshake的peer_id字段嵌入预先规定代表数据发送成功的字符,然后发起一次新的handshake握手,发送端在接收握手消息后,提取其中的peer_id字段,比对提取的字段与规定发送成功代表的字段是否一致,一致则表明数据发送成功,不一致则表明数据发送失败。有益效果:本发明通过修改handshake握手消息的peer_id字段的冗余来实现对于通信过程的控制,保证了数据传输的正确性,而且方法简单高效,实现代价小,系统的安全性高。附图说明图1为本发明的总体流程图;图2为通信双方隐蔽信道建立流程图;图3为通信双方数据发送与确认流程图;图4为通信双方释放隐蔽信道连接的流程图。具体实施方式下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。如图1所示,本发明的一种p2p网络下基于协议字段冗余的隐蔽数据传输同步方法,依次包括以下步骤:(1)隐蔽信道建立与密钥协商:通过提取p2p网络的handshake握手消息中的peer_id字段来确认发送方的身份信息,建立隐蔽通信连接;然后通过基于rsa的公开密钥系统来交换对数据加密的密钥;,若提取的handshake握手消息中的peer_id字段相应代码与协定好的代码一致,则建立隐蔽通信连接,如果不一致,则建立正常的通信连接;隐蔽信道建立后,在进行密钥协商时,接收端通过隐蔽信道发送自己的公钥,发送端使用接收端的公钥加密本次通信的密钥,并将加密后的密钥发送给接收端,从而实现密钥协商,增加了数据传输的安全性。(2)数据发送与确认:通过对每块数据进行编号以及计算其hash值,保证数据的完整性,接收端在校验数据正确后,将协商好的字符代码嵌入到handshake的peer_id字段中,实现发送端确认信息发送成功;接收端校验和确认详细过程为:(2.1)接收端通过协商后的密钥解密发送端所发送的数据包,读取数据包头,提取数据编号,判断是否已经接收过此块数据;(2.2)计算数据的hash值,比对是否与数据包中提取的hash值一致;(2.3)如果经过以上两步的判断数据是正确的,此时对handshake的peer_id字段嵌入相应的字符,然后发起一次新的handshake握手,发送端在接收握手消息后,提取其中的peer_id字段,做出相应的判断;(3)信道灭活:通过handshake的peer_id字段来判断本次隐蔽信息是否传输结束,如果结束则注销隐蔽信道。实施例:本实施例基于p2p网络中的handshake消息为基础来实现隐蔽信息传输协议,具体包含以下三个过程:通信双方隐蔽信道建立与密钥协商、数据发送与确认、以及隐蔽信道连接释放。此处,本实施例定义协议过程中的控制信息及其相应的代码值,它们的定义见表1,主要用于隐蔽客户端的身份认证、隐蔽传输时的应答以及释放连接,包括data_ack、err、fin、fin_ack、cc。表1定义的控制信息及其代码代码值符号具体描述1data_ack已正确接收秘密数据确认2exist数据已存在3err出现错误4fin释放连接请求5fin_ack确认释放6cc隐蔽客户端如图2所示,通信双方隐蔽信道建立与密钥协商具体包含如下步骤:步骤1:首先,发送端与接收端通过“三次握手”建立tcp连接。之后,发送端发起handshake握手。步骤2:发送端在获取到接收端发送来的handshake握手消息后,提取其中的peer_id字段,根据协定好的规则校验特定的某一字节是否为标记隐蔽客服端的相应代码,如“cc”。步骤3:如果该字节代码表示的是“cc”,则该发送客户端为隐蔽客户端,建立隐蔽信息传输通道。如果该字节代码不是“cc”,该发送客户端即为正常客户端,则建立正常信息传输通道。步骤4:在隐蔽信道建立后,接收端通过隐蔽信道来传输自己的公钥,并在本次数据传输的头部,嵌入特定字符标记pk。步骤5:发送端在获取数据后,根据标记字符pk,提取接收端的公钥。并用接收端的公钥来加密发送本次对于数据加密的密钥。步骤6:接收端获取数据包后用自己的私钥解密数据包,获得用于本次数据加密的密钥。如图3所示,所述数据发送与确认过程包含如下步骤:步骤1:发送端对要发送的数据进行编号,并运用hash算法计算其hash值。将编号以及hash值封装在该数据包的头部。步骤2:通过之前协商好的密钥,对数据包进行加密发送。步骤3:接收端在接收到加密数据包后,通过密钥解密数据包。然后,提取数据包头部的编号,与本地保存的已经收到数据包编号进行比对,判断是否已经收到过该数据包。如果该数据包已经存在,则将表示data_e符号的代码写入标识码peer_id中。然后转步骤5.步骤4:对提取出的数据进行hash运算,与从数据包中提取出的hash值对比是否一致,如果一致,将表示data_ack符号的代码写入peer_id中。如果不一致,则将表示data_l符号的代码写入peer_id中。步骤5:接收端发起一次新的handshake握手,发送端从接收到的handshake握手消息中的peer_id字段提取其中协定好的位置的字节,如果该字节代表的是data_e或者data_ack,则表明此数据包发送成功或接收方已获得该数据,从而继续发送下一数据包。如果代表的是data_l,则表明数据包发送出现错误,需要重新发送本次数据包。如图4所示,所述通信双方释放隐蔽信道连接包括如下步骤:步骤1:当秘密数据发送完毕后,发送端向接收端发出释放连接的请求信息;步骤2:接收端接收到释放连接请求信息后,向发送端发送确认信息;步骤3:发送端收到确认后,再次向对方返回确认信息,并释放连接;步骤4:接收端收到确认后,关闭接收端,释放连接,结束隐蔽通信。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1