一种域名解析方法和装置、服务器及存储介质与流程

文档序号:17006457发布日期:2019-03-02 02:03阅读:160来源:国知局
一种域名解析方法和装置、服务器及存储介质与流程

本申请涉及网络通信技术领域,特别涉及一种域名解析方法和装置、服务器及存储介质。



背景技术:

网域名称系统(domainnamesystem,dns)是互联网的一项服务,作为将域名和ip地址相互映射的一个分布式数据库,能够使上网者方便地访问互联网,而不用去记忆枯燥繁琐的ip地址数串,为众多网络应用提供基本的支撑。

随着对安全和隐私的日益重视,许多站点逐渐使用安全套接字层超文本传输协议(https,hypertexttransferprotocoloversecuresocketlayer)协议代替原有的超文本传输协议(http,hypertexttransferprotocol)协议。但无论使用https还是http协议,在网络请求过程中均需要经历域名解析过程。如图1所示,客户端20与解析服务器21使用https协议进行通信,解析服务器21与权威服务器22之间通过网域名称系统安全扩展(dnssec,domainnamesystemsecurityextensions)协议或dns协议进行通信。在进行域名解析过程中,客户端20与解析服务器21之间存在许多的安全和隐私方面的问题,如被窃听、被阻断、被篡改,且用户无法阻止,也无法校验域名解析响应数据的结果。

如何保证客户端在域名解析过程中发送和接收数据的安全性和隐私性,是目前需要解决的技术问题。



技术实现要素:

有鉴于此,本申请实施例提供了一种域名解析方法和装置、服务器及存储介质,以解决现有技术中存在的技术缺陷。

根据本申请的一个方面,公开了一种域名解析方法,包括:

接收客户端发送的快速用户数据包协议网络连接(quickuserdatagramprotocolinternetconnections,quic)流,其中,每个quic流携带有一个第一域名解析请求消息;

获取与该第一域名解析请求消息对应的域名解析响应数据;

根据所述域名解析响应数据构造域名解析响应消息;

将所述域名解析响应消息添加至所述quic流并发送至客户端。

可选地,获取与该第一域名解析请求消息对应的域名解析响应数据包括:

解析所述quic流并得到其对应的第一域名解析请求消息;

若本地缓存有与该第一域名解析请求消息对应的域名解析响应数据,则执行根据所述域名解析响应数据构造域名解析响应消息的步骤;

若本地未缓存与该第一域名解析请求消息对应的域名解析响应数据,则构造并发送第二域名解析请求至权威服务器,并在收到所述权威服务器发送的域名解析响应数据后,执行根据所述域名解析响应数据构造域名解析响应消息的步骤。

可选地,所述第一域名解析请求消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名请求字段。

可选地,所述域名解析响应消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名响应字段。

可选地,在接收客户端发送的quic流之前,还包括:与客户端之间建立quic,并接收客户端定时发送的冗余数据,以维持quic有效。

根据本申请的一个方面,本申请实施例还提供了一种域名解析装置,包括:

流接收模块,接收客户端发送的快速用户数据包协议网络连接(quickuserdatagramprotocolinternetconnections,quic)流,其中,每个quic流携带有一个第一域名解析请求消息;

响应数据获取模块,获取与该第一域名解析请求消息对应的域名解析响应数据;

响应消息构造模块,根据所述域名解析响应数据构造域名解析响应消息;

响应消息发送模块,将所述域名解析响应消息添加至所述quic流并发送至客户端。

可选地,所述响应数据获取模块包括:

流解析模块,解析所述quic流并得到其对应的第一域名解析请求消息;

缓存查看模块,若本地缓存有与该第一域名解析请求消息对应的域名解析响应数据,则通知响应消息构造模块动作;若本地未缓存与该第一域名解析请求消息对应的域名解析响应数据,则通知响应数据请求模块动作;

响应数据请求模块,构造并发送第二域名解析请求至权威服务器,并在收到所述权威服务器发送的域名解析响应数据后,通知响应消息构造模块动作。

可选地,所述第一域名解析请求消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名请求字段。

可选地,所述域名解析响应消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名响应字段。

可选地,在所述流接收模块之前,还包括:

连接建立模块,与客户端之间建立quic,并接收客户端定时发送的冗余数据,以维持quic有效。

本申请实施例还提供了一种服务器,包括处理器、以及存储器,所述存储器中存储有计算机指令;

在所述应用程序启动时,所述处理器读取所述计算机指令并实现如上所述的域名解析方法。

本申请实施例还提供了一种存储介质,存储有计算机指令,所述计算机指令被执行时实现如上所述的域名解析方法。

本申请提供的域名解析方法和装置、服务器及存储介质,通过将客户端的域名解析请求消息携带于quic流中,将域名解析响应数据构造域名解析响应消息并添加至quic流中发送至客户端,从而利用了quic协议中数据传输的保密性,保证客户端在域名解析过程中发送和接收数据的安全性和隐私性。

附图说明

根据下述参照附图进行的详细描述,本申请的上述和其他目的、特征和优点将变得更加显而易见。

在附图中:

图1是现有技术中的客户端进行域名解析及响应的示意图;

图2是本申请一实施例的客户端进行域名解析及响应的示意图;

图3是本申请一实施例的域名解析方法的流程示意图;

图4是本申请一实施例的域名解析方法的步骤a2的流程示意图;

图5a是本申请一实施例的域名解析帧的格式示意图;

图5b是本申请一实施例中的域名解析字段的结构示意图;

图6是本申请又一实施例的域名解析方法的详细示意图;

图7是本申请一实施例的域名解析装置的结构示意图;

图8是本申请一实施例中的响应数据获取模块的具体结构图;

图9是本申请又一实施例的域名解析装置的结构示意图。

在所有附图中相同的标号指示相似或相应的特征或功能。

具体实施方式

下面结合附图对本申请的具体实施方式进行描述。应该明白的是,本文的教导可以以多种形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本实施例的教导,本领域技术人员应该明白的是,本实施例所公开的一个方面可以独立于任何其他方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文中所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其他结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。

为了克服在https协议下域名解析过程中的发送和接收数据时存在的安全隐患,本申请实施例公开了一种域名解析方法,以保证客户端在域名解析过程中发送和接收数据的安全性和隐私性。

为了实现上述目的,本申请通过在客户端与解析服务器之间通过quic协议通信,以替代现有技术中的https协议通信。

在详细介绍本实施例的域名解析方法之前,首先对quic协议进行介绍。

quic协议是谷歌制定的一种基于用户数据包协议(udp,userdatagramprotocol)的低时延的互联网传输层协议。我们知道,tcp/ip协议族是互联网的基础。其中传输层协议包括tcp和udp协议。与tcp协议相比,udp协议更为轻量,但是错误校验也要少得多。这意味着udp协议往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上tcp协议。通常游戏、流媒体以及voip等应用均采用udp协议,而网页、邮件、远程登录等大部分的应用均采用tcp协议。

quic协议很好地解决了当今传输层和应用层面临的各种需求,包括处理更多的连接、安全性、和低延迟。quic协议融合了包括tcp、http/2等协议的特性,但基于udp协议传输。quic协议的一个主要目标就是减少连接延迟,当客户端第一次连接服务器时,quic协议只需要1个来回通信延迟时间(rtt,round-triptime)的延迟就可以建立可靠安全的连接,相对于tcp+tls的1-3次rtt要更加快捷。之后客户端可以在本地缓存加密的认证信息,在再次与服务器建立连接时可以实现0个rtt的连接建立延迟。quic协议同时复用了http/2协议的多路复用功能(multiplexing),但由于quic协议基于udp协议,所以避免了http/2的线头阻塞(head-of-lineblocking)问题。因为quic协议基于udp协议,运行在用户域而不是系统内核,使得quic协议可以快速地更新和部署,从而很好地解决了tcp协议部署及更新的困难。

而现有技术中,客户端和解析服务器之间建立https连接时,客户端需要建立安全套接层(securesocketslayer,ssl)连接,在发起域名解析服务前,需额外消耗2个rtt。在较好的网络中,1个rtt大约为60ms,在网络环境较差时,1个rtt会多达数秒,性能成为其主要瓶颈。

所以,quic协议相比于https协议,优势如下:

1)quic协议基于udp协议,因此客户端与解析服务器之间无需建立tcp连接,只需要在客户端与服务器首次通信时耗费1个rtt,其余情况可直接发送请求数据,无需等待连接建立;而https协议下的域名解析方案则需要等待2个rtt用于建立连接。

2)quic协议可包含传输加密层,保证传输数据的保密性,避免了被窃听、篡改等中间人攻击。

3)quic协议可以减轻服务器占用系统资源压力,有更优的流量控制和拥塞控制机制。

下面以将本实施例的域名解析方法应用于解析服务器中为例,对本申请实施例的域名解析方法进行详细的说明。如图2所示,客户端20与解析服务器21之间通过quic协议通信,解析服务器21与权威服务器22之间通过dnssec/dns协议通信。

具体地,本申请实施例的域名解析方法参见图3,包括以下步骤a1~a4:

a1、接收客户端发送的quic流,其中,每个quic流携带有一个第一域名解析请求消息。

其中需要说明的是,quic流,为一个连接中传递数据的潜在的许多数据传输信道中的一个。一个流是双向的。在流中的数据自动被分解为帧,然后在接收端重新组装。

本申请中,一个quic流对应着一次域名解析请求和响应。

a2、获取与该第一域名解析请求消息对应的域名解析响应数据。

具体地,参见图4,步骤a2包括:

a21、解析所述quic流并得到其对应的第一域名解析请求消息;

a22、查看本地是否缓存有与该第一域名解析请求消息对应的域名解析响应数据,若是,执行步骤a3;若否,执行步骤a23。

a23、构造并发送第二域名解析请求至权威服务器,并在收到所述权威服务器发送的域名解析响应数据后,执行步骤a3。

本实施例中,与权威服务器之间的通信可以沿用现有的网域名称系统(dns,domainnamesystem)协议或网域名称系统安全扩展(dnssec,domainnamesystemsecurityextensions)协议,第二域名解析请求的格式符合dns协议或dnssec协议的定义。

需要说明的是,在本实施例中,“第一”、“第二”的描述仅用于彼此的区分,而非表示重要程度及顺序、以及互为存在的前提等。

a3、根据所述域名解析响应数据构造域名解析响应消息。其目的是在得到域名解析响应数据后,按照quic协议加密数据而得到构造域名解析响应消息,以保证数据传输的保密性。

a4、将所述域名解析响应消息添加至所述quic流并发送至客户端。

步骤a4通过将域名解析响应消息添加至quic流,从而保证一次域名解析的请求和响应均与一个quic流相关联。在处理下一次域名解析请求时,需要另一个quic流。

上述步骤a1~a4为对本实施例的域名解析方法的说明。本申请提供的域名解析方法,通过将客户端的域名解析请求消息携带于quic流中,将域名解析响应数据构造域名解析响应消息并添加至quic流中发送至客户端,从而利用了quic协议中数据传输的保密性,保证客户端在域名解析过程中发送和接收数据的安全性和隐私性。

具体地,为了实现域名解析的请求和响应在quic协议下的有效传输,在quic协议的基础上扩展了域名解析帧,上述第一域名解析请求消息以及域名解析响应消息均遵循域名解析帧的格式。

域名解析帧的格式如图5a所示。

其中,type为类型字段;

streamid为流标识字段;

paddinglength为内边距属性长度字段;

padding为内边距属性字段;

dnsmessage为域名解析消息字段,可以实现域名解析的请求和响应。dnsmessage的字段格式沿用现有的dns查询及应答协议,参见图5b。

dnsmessage主要包括五个部分:

头部,包括标识、标志、问题数、资源记录数、授权资源记录数、额外资源记录数;

域名请求,用于承载域名请求字段;

域名响应,用于承载域名响应字段;

授权;

额外信息。

具体地,第一域名解析请求消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名请求字段;

域名解析响应消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名响应字段。

实际使用时,解析服务器约定quic协议下扩展的域名解析帧使用udp协议下的端口953,以区别于现有技术的udp协议下对于普通dns帧的约定端口53。解析服务器根据接口来判断其是普通dns帧还是本实施例中的quic协议下扩展的域名解析帧。

在本申请的一个实施例中,参见图6,除去公开了上述步骤a1~a4,为了维持与客户端之间的quic有效,在步骤a1之前,还包括步骤:

a0、与客户端之间建立quic,并接收客户端定时发送的冗余数据,以维持quic有效。

其中,客户端定时发送冗余数据可以通过设置定时器的方式。定时器的时间可以为任意,以能保证quic有效,例如设置为4秒。

由上可见,本申请提供的域名解析方法,在保证客户端在域名解析过程中发送和接收数据的安全性和隐私性的同时,也提升了通信的性能,降低了服务器的运营成本。

本申请实施例还公开了一种域名解析装置10,如图7所示,包括:

流接收模块101,接收客户端发送的快速用户数据包协议网络连接(quickuserdatagramprotocolinternetconnections,quic)流,其中,每个quic流携带有一个第一域名解析请求消息;

响应数据获取模块102,获取与该第一域名解析请求消息对应的域名解析响应数据;

响应消息构造模块103,根据所述域名解析响应数据构造域名解析响应消息;

响应消息发送模块104,将所述域名解析响应消息添加至所述quic流并发送至客户端。

本申请实施例的域名解析装置10,通过将客户端的域名解析请求消息携带于quic流中,将域名解析响应数据构造域名解析响应消息并添加至quic流中发送至客户端,从而利用了quic协议中数据传输的保密性,保证客户端在域名解析过程中发送和接收数据的安全性和隐私性。

可选地,参见图8,响应数据获取模块102包括:

流解析模块1021,解析所述quic流并得到其对应的第一域名解析请求消息;

缓存查看模块1022,若本地缓存有与该第一域名解析请求消息对应的域名解析响应数据,则通知响应消息构造模块103动作;若本地未缓存与该第一域名解析请求消息对应的域名解析响应数据,则通知响应数据请求模块1023动作;

响应数据请求模块1023,构造并发送第二域名解析请求至权威服务器,并在收到所述权威服务器发送的域名解析响应数据后,通知响应消息构造模块103动作。

可选地,第一域名解析请求消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名请求字段。

可选地,域名解析响应消息包括:类型字段,流标识字段,内边距属性长度字段,内边距属性字段,以及域名响应字段。

在本申请的一个实施例中,参见图9,本申请的域名解析装置10除去包括上述模块101~104以外,在流接收模块101之前,还包括:连接建立模块100,用于与客户端之间建立quic,并接收客户端定时发送的冗余数据,以维持quic有效。

需要说明的是,该域名解析装置与上述的域名解析的方法的技术方案属于同一构思。域名解析装置的技术方案未详细描述的细节内容,均可以参见上述域名解析方法的技术方案的描述。

本发明实施例还公开了一种服务器,包括处理器、以及存储器,所述存储器中存储有计算机指令;在所述应用程序启动时,所述处理器读取所述计算机指令并实现如上所述的域名解析方法。

需要说明的是,所述终端可以为桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解的是,终端为用于接收数据并进行处理后输出结构的设备。上述举例并非是对终端的限定,为在某些场合,终端还可以包括输入输出设备、网络接入设备、总线等。

所述处理器可以为中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端的控制中心,利用各种接口和线路连接整个终端的各个部分。

所述存储器主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本发明实施例还公开了一种存储介质,存储有计算机指令,所述计算机指令被执行时实现如上所述的域名解析方法。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

上面结合附图对本申请优选的具体实施方式和实施例作了详细说明,但是本申请并不限于上述实施方式和实施例,在本领域技术人员所具备的知识范围内,还可以在不脱离本申请构思的前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1