一种dns系统及方法_2

文档序号:8475222阅读:来源:国知局
S服务端与所述DNS客户端预设的秘钥,每个DNS客户端都有一个属于自己的预设秘钥,DNS服务端能够获取所连接的DNS客户端的秘钥作为与所述DNS客户端连接的预设秘钥。所述预设算法包括将所述ID与所述预设秘钥进行异或运算得到第二中间值,对所述第二中间值进行MD5加密得到所述第二运算结果。
[0045]域名请求模块124用于当所述客户端ID认证成功时,向DNS服务端11发送待解析的域名。具体地,当所述客户端ID认证成功时,表明所述DNS服务端11是安全的,此时,DNS客户端12将向DNS服务端11发送待解析的域名。
[0046]IP地址获取模块125用于获取DNS服务端11发送的IP地址。IP地址获取模块125接收DNS服务端11发送的将所述域名解析得到的IP地址,并获取所述IP地址。
[0047]在一个实施例中,所述DNS客户端12还包括连接关闭模块,用于关闭与DNS服务端建立的TCP连接。TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-wayhandshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close O操作即可产生挥手操作。
[0048]本发明还提供一种DNS系统。在一个实施例中,如图1所示,所述DNS系统I包括如上所述的DNS服务端11与如上所述的DNS客户端12。
[0049]本发明提供一种DNS方法,应用于包括DNS服务端与DNS客户端的网络。在一个实施例中,如图2所示,所述DNS方法包括:
[0050]步骤SI,建立DNS服务端与DNS客户端的TCP连接。具体地,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务端(服务器)总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小信息。在socket编程中,客户端执行connect O时,将触发三次握手。
[0051]步骤S2,DNS客户端随机生成一个客户端ID,并发送所述客户端ID给DNS服务端。在一个实施例中,所述客户端ID可以调用随机函数生成。
[0052]步骤S3,DNS服务端接收所述客户端ID,并对所述客户端ID与所述DNS客户端的预设秘钥根据预设算法进行运算得到第一运算结果,将所述第一运算结果发送给DNS客户端。具体地,所述预设秘钥包括所述DNS服务端与所述DNS客户端预设的秘钥,每个DNS客户端都有一个属于自己的秘钥,DNS服务端能够获取所连接的DNS客户端的秘钥作为与所述DNS客户端连接的预设秘钥。在一个实施例中,所述预设算法包括将所述ID与所述预设秘钥进行异或运算得到第一中间值,对所述第一中间值进行MD5加密得到所述第一运算结果O
[0053]步骤S4,DNS客户端接收所述第一运算结果,并对所述客户端ID与所述预设秘钥根据所述预设算法进行运算得到第二运算结果。具体地,所述预设秘钥与所述预设算法均与步骤S3中的预设秘钥与预设算法相同。
[0054]步骤S5,当所述第一运算结果与所述第二运算结果相等时,所述客户端ID认证成功,DNS客户端向DNS服务端发送待解析的域名。具体地,当所述客户端ID认证成功时,表明所述DNS服务端是安全的,此时,DNS客户端将向DNS服务端发送待解析的域名。
[0055]步骤S6,DNS服务端接收DNS客户端发送的域名,并对所述域名进行解析,将解析得到的IP地址发送给DNS客户端。
[0056]步骤S7,DNS客户端获取DNS服务端发送的IP地址。DNS客户端接收DNS服务端发送的将所述域名解析得到的IP地址,并获取所述IP地址。
[0057]在一个实施例中,所述DNS方法还包括:当所述第一运算结果与所述第二运算结果不相等时,关闭所述TCP连接。所述DNS方法还包括:DNS客户端获取DNS服务端发送的IP地址后,关闭所述TCP连接。TCP的连接的关闭(或拆除)需要发送四个包,因此称为四次挥手(four-way handshake) ο客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行closeO操作即可产生挥手操作。
[0058]在一个实施例中,所述DNS方法中,所述DNS服务端与所述DNS客户端的交互过程如图3所示。包括:1,DNS服务端与DNS客户端通过三次握手建立连接。2,DNS客户端发起认证请求,生成一个随机数作为交互ID ;DNS客户端将交换ID (即客户端ID)发送给DNS服务端。3,DNS服务端接收到DNS客户端发送的ID号后,将ID与秘钥进行异或运算,然后将结果进行MD5加密,即MD5 (ID XOR KEY)。由于每次交互的ID号不一样,因此,每次加密后的结果也不一样。每个DNS客户端都有属于自己的秘钥,DNS服务器必须知道DNS客户端的秘钥才能进行相关运算。4,DNS客户端接收到DNS服务端发来的结果后,验证该结果是否正确,若正确则将域名发送给DNS服务端,请求域名解析。5,DNS服务端解析域名得到IP地址,然后将结果传递给DNS客户端。6,业务交互完成后,双方关闭套接字。即进行四次握手(或称为四次挥手),结束交互。
[0059]综上所述,本发明的一种DNS系统及方法采用TCP协议,并增加安全认证机制,每个客户端都有属于自己的秘钥,DNS服务端必须知道客户端的秘钥才能通过客户端的认证,获得客户端需要解析的域名,并将解析地址发送给客户端。从而提高DNS服务的安全性,有效防范了 DNS攻击。本发明的技术方案采用TCP进行交互,提高了安全性;客户端向服务端发送解析域名请求之前,会向服务端请求认证,确保了 DNS服务端的身份合法性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0060]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1.一种DNS系统,包括DNS服务端与DNS客户端,其特征在于,所述DNS服务端包括: 建立连接模块,用于与DNS客户端建立TCP连接; 客户端ID处理模块,用于接收DNS客户端发送的客户端ID,并对所述客户端ID与预设秘钥根据预设算法进行运算得到第一运算结果,将所述第一运算结果发送给DNS客户端;域名解析模块,用于接收DNS客户端发送的域名,并对所述域名进行解析,将解析得到的IP地址发送给DNS客户端。
2.根据权利要求1所述的DNS系统,其特征在于:所述预设算法包括将所述ID与所述秘钥进行异或运算得到第一中间值,对所述第一中间值进行MD5加密得到所述第一运算结果O
3.一种DNS系统,包括DNS服务端与DNS客户端,其特征在于:所述DNS客户端包括: 连接请求模块,用于与DNS服务端建立TCP连接;客户端ID发送模块,用于随机生成一个客户端ID,并将所述客户端ID发送给所述DNS服务端; 客户端ID认证模块,用于接收DNS服务端发送的第一运算结果,并对所述客户端ID与预设秘钥根据预设算法进行运算得到第二运算结果,当所述第一运算结果与所述第二运算结果相等时,所述客户端ID认证成功,当所述第一运算结果与所述第二运算结果不相等时,所述客户端ID认证不成功; 域名请求模块,用于当所述客户端ID认证成功时,向DNS服务端发送待解析的域名;IP地址获取模块,用于获取DNS服务端发送的IP地址。
4.根据权利要求1所述的DNS系统,其特征在于:所述预设算法包括将所述ID与所述预设秘钥进行异或运算得到第二中间值,对所述第二中间值进行MD5加密得到所述第二运算结果。
5.一种DNS系统,其特征在于:所述DNS系统包括如权利要求1或2所述的DNS服务端与如权利要求3或4所述的DNS客户端。
6.一种DNS方法,应用于包括DNS服务端与DNS客户端的网络,其特征在于:所述DNS方法包括: 建立DNS服务端与DNS客户端的TCP连接; DNS客户端随机生成一个客户端ID,并发送所述客户端ID给DNS服务端; DNS服务端接收所述客户端ID,并对所述客户端ID与预设秘钥根据预设算法进行运算得到第一运算结果,将所述第一运算结果发送给DNS客户端; DNS客户端接收所述第一运算结果,并对所述客户端ID与所述预设秘钥根据所述预设算法进行运算得到第二运算结果; 当所述第一运算结果与所述第二运算结果相等时,所述客户端ID认证成功,DNS客户端向DNS服务端发送待解析的域名; DNS服务端接收DNS客户端发送的域名,并对所述域名进行解析,将解析得到的IP地址发送给DNS客户端; DNS客户端获取DNS服务端发送的IP地址。
7.根据权利要求6所述的DNS方法,其特征在于:所述预设算法包括将所述ID与所述预设秘钥进行异或运算得到中间值,对所述中间值进行MD5加密得到运算结果。
8.根据权利要求6所述的DNS方法,其特征在于:所述DNS方法还包括:当所述第一运算结果与所述第二运算结果不相等时,关闭所述TCP连接。
9.根据权利要求6所述的DNS方法,其特征在于:所述DNS方法还包括:DNS客户端获取DNS服务端发送的IP地址后,关闭所述TCP连接。
【专利摘要】本发明提供一种DNS系统及方法。其中,所述DNS系统包括DNS服务端与DNS客户端,所述DNS服务端包括:建立连接模块,用于与DNS客户端建立TCP连接;客户端ID处理模块,用于接收DNS客户端发送的客户端ID,并对所述客户端ID与预设秘钥根据预设算法进行运算得到第一运算结果,将所述第一运算结果发送给DNS客户端;域名解析模块,用于接收DNS客户端发送的域名,并对所述域名进行解析,将解析得到的IP地址发送给DNS客户端。本发明的技术方案采用TCP进行交互,同时客户端向服务端发送解析域名请求之前,会向服务端请求认证,以确保了DNS服务端的身份合法性,大大提高了安全性。
【IPC分类】H04L9-32, H04L29-06, H04L29-12
【公开号】CN104796502
【申请号】CN201510232696
【发明人】张伟
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年7月22日
【申请日】2015年5月8日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1