基于域名系统的隐蔽通信方法

文档序号:7769460阅读:388来源:国知局
基于域名系统的隐蔽通信方法
【专利摘要】本发明公开了一种基于域名系统的隐蔽通信方法,包括以下步骤:客户端经隐蔽通信渠道,从Internet下载动态链接库,与服务器方约定DNS信道的具体设计;客户端根据所述预先约定的DNS信道的具体设计通过报文生成模块生成DNS报文,通过所述DNS信道请求服务器获取信息;服务器根据所述预先约定的DNS信道的具体设计,处理请求,发送信息;客户端经所述DNS信道接收信息;客户端根据所述DNS信道的具体设计,对信息进行解析。通过本发明的方法,能够提高了通信的隐蔽性和安全性。
【专利说明】基于域名系统的隐蔽通信方法
【技术领域】
[0001]本发明涉及安全通信领域,特别涉及信息隐藏,尤其涉及一种基于域名系统的隐蔽通信技术。
【背景技术】
[0002]隐蔽通信技术分为密码技术和信息隐藏技术。两者各有优势,密码技术将信息进行加密处理,将明文变成不可识别密文,使加密后的信息变得难以理解。但这样做却带来了另一个问题,加密技术将明文加密成一堆乱码,容易激发非授权者破解机密信息的欲望。而信息隐藏技术则是将特定的机密信息隐藏在某种公开信息中,由于对外表现的是载体信号的内容和特征,用公开信息作掩护,因此非授权者不会感觉到机密信息的存在。非授权者如果面对的是密文,会使其感到是重要的机密信息,想加以破解,如果面对的是明文,则会放松警惕。因此,从解密的角度上看,用信息隐藏技术隐蔽的机密信息被非授权者侦查和恢复的难度更大,从而降低被非法截收者攻击的概率。由此可见,信息隐藏技术是一种安全有效的隐蔽通信方式。
[0003]密码技术和信息隐藏技术都是可以实现隐蔽通信的技术。密码技术包括RSA、DES等加密技术和公私钥的加密思想。信息隐藏技术是将特定的机密信息隐藏在某种公开信息中,这里的公开信息可以是任何一种数字媒体信息,如图像、声音、视频、文字等。信息隐藏可以采用无密钥信息隐藏和有密钥信息隐藏两种技术,通过嵌入算法或密钥和嵌入算法将秘密信息隐藏于公开信息中,而隐蔽载体(隐藏有秘密信息的公开信息)则通过公开信道传递,接收方利用密钥和信息提取算法从隐蔽载体中恢复出机密信息。信息隐藏不但隐藏了信息的内容,还隐藏了信息的存在,非授权者从感觉上难以从公开信息中判断出机密信息是否存在,即使判断出有机密信息存在,在不知道密钥和信息提取算法的情况下也解不出机密信息,从而极大提高了信息的安全性。本发明是一种基于域名系统DNS的信息隐藏技术。
[0004]域名系统(Domain Name System,DNS)是因特网最关键的基础服务之一,为众多网络应用提供根本性支撑,它将域名与IP地址相互映射,使人们能够方便地访问互联网,而不必记忆复杂的IP地址。DNS域名解析为众多网络应用提供支撑,因此,网络管理策略通常对客户端主机使用DNS服务不作限制,避免了机密信息通过网络管理策略而泄露。

【发明内容】

[0005]为实现上述目的,本发明的技术方案如下:一种基于域名系统的隐蔽通信方法,具体步骤如下:
[0006]步骤I客户端经隐蔽通信渠道,从Internet下载动态链接库,与服务器方约定DNS信道的具体设计;
[0007]步骤2客户端根据所述预先约定的DNS信道的具体设计通过报文生成模块生成DNS报文,通过所述DNS信道请求服务器获取信息;[0008]步骤3服务器根据所述预先约定的DNS信道的具体设计,处理请求,发送信息;
[0009]步骤4客户端经所述DNS信道接收信息;
[0010]步骤5客户端根据所述DNS信道的具体设计,对信息进行解析。
[0011]进一步地,所述步骤I中Internet下载动态链接库步骤如下:
[0012]步骤1-1从Internet下载编码后的二进制文件;
[0013]步骤1-2对所述二进制文件进行解码,形成动态链接库。
[0014]进一步地,所述步骤2中DNS报文的报头由信息类型TYPE,文件FID,偏移量OFFSET 组成。
[0015]进一步地,所述步骤2中所述报文生成模块由报头生成模块、域名生成模块、数据加密模块组成,DNS报文的生成步骤如下:
[0016]步骤2-1由报头生成模块生成报头;
[0017]步骤2-2将待发送彳目息用xml格式表不;
[0018]步骤2-3将步骤2-1和2-2的结果连接起来,并进行加密;
[0019]步骤2-4通过域名生成模块利用域名生成算法生成域名;
[0020]步骤2-5将步骤2-3和步骤2-4的结果连接起来;
[0021]步骤2-6根据DNS报文格式,在上述数据前添加“标识位”、“标志位”、“问题数”、“资源记录数”、“授权资源记录数”和“额外资源记录数”,生成DNS报文。
[0022]进一步地,所述通信方式为命令控制,所述命令控制通信流程如下:
[0023](I)客户端接收到命令控制请求,计算版本号后向服务器端发送“命令控制请求”;
[0024](2)服务器端收到“命令控制请求”后,识别出版本号,如果版本号是最新版本,则向客户端发送“命令控制应答”,否则添加上GET标记后向客户端发送“命令控制应答”;
[0025](3)客户端接受到数据后判断数据是否有GET标记,如果没有GET标记,则通信完成,否则继续向服务器端发送“下载请求”。
[0026]进一步地,所述通信方式为下载,所述下载通信流程如下:
[0027](I)客户端计算所述offset后向服务器端发送“下载请求”;
[0028](2)服务器端收到“下载请求”后,识别出所述offset,如果offset是文件结尾,则向客户端发送所述offset段,否则发送所述offset下一段;
[0029](3)客户端接受到数据后判断数据是否是控制段,如果是控制段,则下载完成,否则继续向服务器端发送“下载请求”。
[0030]进一步地,所述通信方式为上传,所述上传通信流程如下:
[0031](I)客户端计算所述offset后向服务器端发送“上传请求”;
[0032](2)服务器端收到“上传请求”后,识别出所述offset,如果所述offset是文件结尾,则向客户端发送所述offset段,否则发送所述offset下一段;
[0033](3)客户端接受到数据后判断数据是否是控制段,如果是控制段,则上传完成,否则继续向服务器端发送“上传请求”。
[0034]本发明提供的基于域名系统的隐蔽通信方法通过服务器端PHP读取和显示简化了这种隐蔽通信方法的使用。报头生成模块的添加,为每个数据包的数据得到编号和分组,使得该方法不仅可以进行一次性的简单指令的通信,同时也可通过多次不连续地通信进行文件的传输。能进行文件的传输使得客户端能及时更新自身模块的版本,及时和服务器端更新通信协议,提高了通信的隐蔽性和安全性。
【专利附图】

【附图说明】
[0035]图1是基于域名系统的隐蔽通信方法的流程图
[0036]图2是DNS信道设计图;
[0037]图3是下载文件的工作流程图;
[0038]图4是命令控制通信的工作流程图。
【具体实施方式】
[0039]下面结合附图对本发明的优选实施例作详细说明。
[0040]基于域名系统的隐蔽通信方法具体步骤如图1所示,为:(I)客户端经DNS请求和应答,从Internet下载编码后的二进制文件,解码后形成动态链接库,从而与服务器方约定DNS信道的具体设计;(2)客户端根据预先约定的DNS信道的具体设计通过DNS报文生成模块生成DNS报文,通过DNS信道请求服务器获取信息;(3)服务器根据预先约定的DNS信道的具体设计,处理请求,发送信息;(4)客户端经DNS信道接收信息;(5)客户端根据DNS信道的具体设计,对信息进行解析。
[0041]DNS信道的具体设计如图2所示,该设计明确了报文的格式,规定报文各组成成分的位置和占位长度等通信所必要参数。同时,明确了报头的组成成分:信息类型TYPE,文件FID,偏移量OFFSET ;规定每个组成部分的意义、位置和占位长度。其中,信息类型TYPE表示通信信息的类型,如“上传”或“下载”或“更新”等,保证该信道能进行多种类型的通信;文件FID表示所处理(“上传”、“下载”、“更新”)的文件编号,指定了待处理的某一个特定的文件;偏移量OFFSET表示该DNS包所包含的数据所属的数据组,使得较大的数据可以经分组、多次传输而实现,避免生成易被检测出的长度异常大的数据包。
[0042]根据DNS信道的具体设计,在经过报头生成模块、域名生成模块、数据加密模块的处理后,报文生成模块生成了最终会被发送出去的数据包。通过DNS信道的传输,实现隐蔽通信。
[0043]通信主要分为3类:“上传”、“下载”和“命令控制”通信。“命令控制”通信主要实现一次性的指令性通信,同时负责版本更新。“命令控制”通信的流程如图4,客户端计算版本号后向服务器端发送“命令控制请求”,服务器端收到“命令控制请求”后,识别出版本号,如果版本号是最新版本,则向客户端发送“命令控制应答”,否则添加上GET标记后向客户端发送“命令控制应答”,客户端接受到数据后判断数据是否有GET标记,如果没有GET标记,则通信完成,否则继续向服务器端发送“下载请求”。“下载”的流程如图3,客户端计算offset后向服务器端发送“下载请求”,服务器端收到“下载请求”后,识别出offset,如果offset是文件结尾,则向客户端发送offset段,否则发送offset下一段,客户端接受到数据后判断数据是否是控制段,如果是控制段,则下载完成,否则继续向服务器端发送“下载请求”。“上传”的流程图类似于“下载”流程图。每类通信对于客户端和发送端分别有一个不同的编号,分别为命令控制请求(TYPEl)、命令控制应答(TYPE2)、下载请求(TYPE3)、下载应答(TYPE4)、上传请求(TYPE5)、上传应答(TYPE6)。对于命令控制请求,客户端在命令控制请求时附加上自己各个模块的版本号;对于命令控制应答,服务器端读取客户端请求中的版本信息,若有新版本,则提示客户端GET ;对于下载请求,客户端根据当前已下载的文件片计算当前请求的OFFSET,在下载成功后下载下一片,若返回的报文只有控制段,则表示下载已完成;对于下载应答,服务器尽可能利用报文发送最大量的数据,当已请求的OFFSET是文件结尾时,则只发送控制段;上传请求、上传应答分别和下载请求、下载应答类似。[0044]下面,将以上传客户机系统的基本信息为例,结合图2 “DNS信道设计图”,以6个步骤,具体说明DNS报文的生成过程:
[0045](I)生成 40 比特长的报头:0101000000000001000000000000000000000000。其中信息类型TYPE值为0101 (二进制),表示通信类型为5,是“上传请求”类型;文件FID值为000000000001 (二进制),表示当前传输的数据所属的文件的编号为I ;偏移量OFFSET值为
000000000000000000000000(二进制),表示当前传输的数据是所属文件的第一片数据。将该40比特长的报头转成十六进制结果为:50010000
[0046](2)将待发送的信息用xml格式表示如下:
[0047]<?xml version = ^ 1.0encoding = 〃utf-8〃?>〈main>〈system>win7〈/system><version>6.1.7601</versionXip>59.32.78.77〈/ip>〈username>jack〈/usernameX/ main>
[0048](3)将步骤(I)、步骤(2)的结果连接起来,经base64加密,得到结果如下:
[0049]NTAwMTAwMDAlM0MlM0Z4bffwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJldGYt0CUyMiUzRiUzRSUzQ21haW41M0UlM0NzeXN0ZW01M0V3aW43JTNDL3N5c3RlbSUzRSUzQ3ZlcnNpb241M0U2LjEuNzYwMSUzQy92ZXJzaff9uJTNFJTNDaXAlM0U10S4zMi430C43NyUzQy9pcCUzRSUzQ3VzZXJuYWllJTNFamFjayUzQy91c2VybmFtZSUzRSUzQy9tYWluJTNF
[0050](4)通过域名生成算法生成域名,这里假定生成的域名为:asdf.example, com
[0051](5)将(3) (4)的结果连接起来,得到结果如下:
[0052]NTAwMTAwMDAlM0MlM0Z4bffwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclMOQlMjJldGYt0CUyMiUzRiUzRSUzQ21haW41M0UlM0NzeXN0ZW01M0V3aW43JTNDL3N5c3RlbSUzRSUzQ3ZlcnNpb241M0U2LjEuNzYwMSUzQy92ZXJzaff9uJTNFJTNDaXAlM0U10S4zMi430C43NyUzQy9pcCUzRSUzQ3VzZXJuYffllJTNFamFjayUzQy91c2VybmFtZSUzRSUzQy9tYffluJTNFasdf.example, com
[0053](6)根据DNS报文格式,在上述数据前添加“标识位”、“标志位”、“问题数”、“资源记录数”、“授权资源记录数”和“额外资源记录数”,生成DNS报文。这里假定添加16进制的“标识位”为b8a8,“标志位”为0100,“问题数”为0001,“资源记录数”为0000,“授权资源记录数”为0000,“额外资源记录数”为0000。最后生成的DNS报文如下:
[0054]b8a80100000100000000000NTAwMTAwMDAlM0MlM0Z4bffwlMjB2ZXJzaff9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJldGYt0CUyMiUzRiUzRSUzQ21haff41M0UlM0NzeXN0ZW01M0V3aff43JTNDL3N5c3RlbSUzRSUzQ3ZlcnNpb241M0U2LjEuNzYwMSUzQy92ZXJzaff9uJTNFJTNDaXAlM0U10S4zMi430C43NyUzQy9pcCUzRSUzQ3VzZXJuYWllJTNFamFjayUzQy91c2VybmFtZSUzRSUzQy9tYffIuJTNFasdf.example, com
[0055]以上通过具体实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
【权利要求】
1.一种基于域名系统的隐蔽通信方法,其特征在于,所述方法包括如下步骤: 步骤I客户端经隐蔽通信渠道,从Internet下载动态链接库,与服务器方约定DNS信道的具体设计; 步骤2客户端根据所述预先约定的DNS信道的具体设计通过报文生成模块生成DNS报文,通过所述DNS信道请求服务器获取信息; 步骤3服务器根据所述预先约定的DNS信道的具体设计,处理请求,发送信息; 步骤4客户端经所述DNS信道接收信息; 步骤5客户端根据所述DNS信道的具体设计,对信息进行解析。
2.如权利要求1所述的所述的隐蔽通信方法,其中,所述步骤I中Internet下载动态链接库步骤如下: 步骤1-1从Internet下载编码后的二进制文件; 步骤1-2对所述二进制文件进行解码,形成动态链接库。
3.如权利要求1所述的隐蔽通信方法,其中,所述步骤2中DNS报文的报头由信息类型TYPE,文件FID,偏移量OFFSET组成。
4.如权利要求1所述的隐蔽通信方法,其中,所述步骤2中所述报文生成模块由报头生成模块、域名生成模块、数据加密模块组成,所述DNS报文的生成步骤如下: 步骤2-1由报头生成模块生成报头; 步骤2-2将待发送信息用xml格式表示; 步骤2-3将步骤2-1和2-2的结果连接起来,并进行加密; 步骤2-4通过域名生成模块利用域名生成算法生成域名; 步骤2-5将步骤2-3和步骤2-4的结果连接起来; 步骤2-6根据DNS报文格式,在上述数据前添加“标识位”、“标志位”、“问题数”、“资源记录数”、“授权资源记录数”和“额外资源记录数”,生成DNS报文。
5.如权利要求1至4任一所述的隐蔽通信方法,其中,所述通信方式为命令控制,所述命令控制通信流程如下: (1)客户端接收到命令控制请求,计算版本号后向服务器端发送“命令控制请求”; (2)服务器端收到“命令控制请求”后,识别出版本号,如果版本号是最新版本,则向客户端发送“命令控制应答”,否则添加上GET标记后向客户端发送“命令控制应答”; (3)客户端接受到数据后判断数据是否有GET标记,如果没有GET标记,则通信完成,否则继续向服务器端发送“下载请求”。
6.如权利要求1至4任一所述的隐蔽通信方法,其中,所述通信方式为下载,所述下载通信流程如下: (1)客户端计算所述offset后向服务器端发送“下载请求”; (2)服务器端收到“下载请求”后,识别出所述offset,如果offset是文件结尾,则向客户端发送所述offset段,否则发送所述offset下一段; (3)客户端接受到数据后判断数据是否是控制段,如果是控制段,则下载完成,否则继续向服务器端发送“下载请求”。
7.如权利要求1至4任一所述的隐蔽通信方法,其中,所述通信方式为上传,所述上传通信流程如下:(O客户端计算所述Offset后向服务器端发送“上传请求”; (2)服务器端收到“上传请求”后,识别出所述offset,如果所述offset是文件结尾,则向客户端发送所述offset段,否则发送所述offset下一段; (3)客户端接受到数据后判断数据是否是控制段,如果是控制段,则上传完成,否则继续向服务器端发送“上传.请求”。
【文档编号】H04L29/12GK103475652SQ201310400983
【公开日】2013年12月25日 申请日期:2013年9月5日 优先权日:2013年9月5日
【发明者】邹福泰, 李海波, 王莉淋, 易平 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1