域名解析方法、装置、计算机设备和存储介质与流程

文档序号:22622608发布日期:2020-10-23 19:29阅读:77来源:国知局
域名解析方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种域名解析方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,互联网的出现给现代生活带来了极大的便利,越来越多的用户可以通过使用移动终端设备在线对不同的网页信息进行浏览。传统的网页浏览方式中,主要是通过域名解析的方式,打开用户所请求的网页。域名系统(domainnamesystem缩写dns,domainname被译为域名)是因特网的一项核心服务,它作为可以将域名和ip地址(internetprotocoladdress)即互联网协议地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串。

传统的域名解析方式中,域名解析数据是明文传输的,域名解析报文在传输过程中可能随时受到攻击,被第三方截获篡改,使得客户端无法打开所请求的网页,或者打开错误的网页,这种域名解析方式的弊端在于安全性较差,无法有效保证域名解析的安全性。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高域名解析的安全性的域名解析方法、装置、计算机设备和存储介质。

一种域名解析方法,所述方法包括:

获取域名解析请求,根据所述域名解析请求获取本地储存的协商好的对称密钥;

获取历史成功请求次数;

根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

利用所述更新后的对称密钥对所述域名解析请求进行加密,并将所述加密后的域名解析请求发送至域名服务器;

接收到所述域名服务器返回的响应后,利用所述更新后的对称密钥对所述响应进行解密,得到对应的域名地址信息。

在其中一个实施例中,所述获取域名解析请求之后,所述方法还包括:

检测本地是否存在所述域名服务器的证书;

若是,则判断所述证书是否有效;

当所述证书无效时,向所述域名服务器发送证书获取请求;

接收所述域名服务器返回的证书,判断所述证书是否有效;

若有效,则根据预设算法生成对称密钥信息,并发送至所述域名服务器;

接收所述域名服务器返回的密钥确认消息,得到协商好的对称密钥,断开当前与所述域名服务器的通信链路;

将所述域名服务器的证书和所述协商好的对称密钥储存在本地,并清零历史成功请求次数。

在其中一个实施例中,所述若有效,则根据预设算法生成对称密钥信息,并发送至所述域名服务器包括:

若有效,则提取所述域名服务器返回消息中的公钥;

根据预设算法生成对称密钥信息,利用所述公钥对所述对称密钥信息进行加密后发送至所述域名服务器。

在其中一个实施例中,所述得到对应的域名地址解析结果之后,所述方法还包括:

获取预设频率信息,根据所述预设频率信息,生成对应的虚拟域名解析请求;

对所述虚拟域名解析请求加密后发送至所述域名服务器;

接收到所述域名服务器返回的对所述虚拟域名解析请求的响应后,断开当前与所述域名服务器的通信链路。

一种域名解析装置,所述装置包括:

获取模块,用于获取域名解析请求,根据所述域名解析请求获取本地储存的协商好的对称密钥;获取历史成功请求次数;

生成模块,用于根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

发送模块,用于利用所述更新后的对称密钥对所述域名解析请求进行加密,并将所述加密后的域名解析请求发送至域名服务器;

解密模块,用于接收到所述域名服务器返回的响应后,利用所述更新后的对称密钥对所述响应进行解密,得到对应的域名地址信息。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取域名解析请求,根据所述域名解析请求获取本地储存的协商好的对称密钥;

获取历史成功请求次数;

根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

利用所述更新后的对称密钥对所述域名解析请求进行加密,并将所述加密后的域名解析请求发送至域名服务器;

接收到所述域名服务器返回的响应后,利用所述更新后的对称密钥对所述响应进行解密,得到对应的域名地址信息。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取域名解析请求,根据所述域名解析请求获取本地储存的协商好的对称密钥;

获取历史成功请求次数;

根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

利用所述更新后的对称密钥对所述域名解析请求进行加密,并将所述加密后的域名解析请求发送至域名服务器;

接收到所述域名服务器返回的响应后,利用所述更新后的对称密钥对所述响应进行解密,得到对应的域名地址信息。

一种域名解析方法,所述方法包括:

接收客户端发送的域名解析请求,查找与所述客户端协商好的对称密钥和历史成功请求次数;

根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

利用所述更新后的对称密钥对所述域名解析请求进行解密,查找与所述域名解析请求对应的域名地址信息;

利用所述更新后的对称密钥对所述域名地址信息进行加密,并将所述加密后的域名地址信息发送至所述客户端。

在其中一个实施例中,所述接收客户端发送的域名解析请求之前,所述方法还包括:

对预设端口进行监听;所述预设端口包括第一预设端口和第二预设端口;

当监测到所述客户端发送的与第一预设端口的连接请求时,则与所述第一预设端口建立连接,接收所述客户端发送的证书获取请求;

当监测到所述客户端发送的与第二预设端口的连接请求时,则与所述第二预设端口建立连接,接收所述客户端发送的域名解析请求。

一种域名解析装置,所述装置包括:

查找模块,用于接收客户端发送的域名解析请求,查找与所述客户端协商好的对称密钥和历史成功请求次数;

生成模块,用于根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

查找模块还用于利用所述更新后的对称密钥对所述域名解析请求进行解密,查找与所述域名解析请求对应的域名地址信息;

发送模块,用于利用所述更新后的对称密钥对所述域名地址信息进行加密,并将所述加密后的域名地址信息发送至所述客户端。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

查找模块,用于接收客户端发送的域名解析请求,查找与所述客户端协商好的对称密钥和历史成功请求次数;

生成模块,用于根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

查找模块还用于利用所述更新后的对称密钥对所述域名解析请求进行解密,查找与所述域名解析请求对应的域名地址信息;

发送模块,用于利用所述更新后的对称密钥对所述域名地址信息进行加密,并将所述加密后的域名地址信息发送至所述客户端。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

查找模块,用于接收客户端发送的域名解析请求,查找与所述客户端协商好的对称密钥和历史成功请求次数;

生成模块,用于根据所述对称密钥和所述历史成功请求次数,生成更新后的对称密钥;

查找模块还用于利用所述更新后的对称密钥对所述域名解析请求进行解密,查找与所述域名解析请求对应的域名地址信息;

发送模块,用于利用所述更新后的对称密钥对所述域名地址信息进行加密,并将所述加密后的域名地址信息发送至所述客户端。

上述域名解析方法、装置、计算机设备和存储介质,当用户想要打开特定的网页时,终端可以获取用户通过触发操作发起的域名解析请求,并根据域名解析请求获取本地中预先与域名服务器协商好的对称密钥以及本地中记录的历史成功请求次数,相对于传统的域名解析方式,通过获取历史成功请求次数,并根据对称密钥和历史成功请求次数,生成更新后的对称密钥,能够将密钥协商过程和域名加密传输过程进行时空分离,即可实现在不同时间不同链路分别进行密钥协商和域名加密传输。当终端向域名服务器发送加密的域名解析请求时,终端可以根据获取到的对称密钥和历史成功请求次数,不断更新对应的对称密钥,能够保证每次请求时使用的对称密钥不同,同时采用对称加密方法,加密效率也更高。当终端接收到域名服务器返回的响应后,利用更新后的对称密钥对响应进行解密,即可得到对应的域名地址信息,由此增加了密钥破解难度,从而有效提高了域名解析的安全性。

附图说明

图1为一个实施例中域名解析方法的应用环境图;

图2为一个实施例中域名解析方法的流程示意图;

图3为一个实施例中与域名服务器协商对称密钥步骤的流程示意图;

图4为一个实施例中发送虚拟域名解析请求步骤的流程示意图;

图5为另一个实施例中域名解析方法的流程示意图;

图6为一个实施例中对预设端口进行监听步骤的流程示意图;

图7为一个实施例中域名解析装置的结构框图;

图8为另一个实施例中域名解析装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的域名解析方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与域名服务器104通过网络进行通信。终端102可以通过向域名服务器104发送域名解析请求,从域名服务器104获取对应的域名地址信息。终端102获取域名解析请求,终端102根据域名解析请求获取本地储存的协商好的对称密钥。终端102获取历史成功请求次数,终端102根据对称密钥和历史成功请求次数,生成更新后的对称密钥。终端102利用更新后的对称密钥对域名解析请求进行加密,并将加密后的域名解析请求发送至域名服务器104。终端102接收到域名服务器104返回的响应后,终端102利用更新后的对称密钥对响应进行解密,得到对应的域名地址信息。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种域名解析方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤202,获取域名解析请求,根据域名解析请求获取本地储存的协商好的对称密钥。

域名系统(domainnamesystem缩写dns,domainname被译为域名)是因特网的一项核心服务,它作为可以将域名和ip地址(internetprotocoladdress)相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串。域名系统(服务)协议(dns)是一种分布式网络目录服务,主要用于域名与ip地址的相互转换,是一个可以将域名转换成ip地址的系统。dns解析可以使用多种类型协议进行数据传输,例如tcp协议即传输控制协议(tcp,transmissioncontrolprotocol)、udp协议即用户数据报协议(udp,userdatagramprotocol)和超文本传输协议(http协议)等。dns客户端向dns服务器发起dns请求,dns服务器响应客户端请求,返回所请求域名对应的ip地址。dns客户端可以理解为不知道某个域名对应的ip地址,需要获取域名对应的ip地址的网络个体,而dns服务器则可理解为拥有所有域名与ip地址对应关系的网络个体。网络个体可以是计算机硬件设备,也可以是软件系统,也可以是一种抽象个体。针对与同一个dns服务器,只有在首次dns请求时需要进行“密钥协商”过程,之后正常情况下无需再进行“密钥协商”的步骤。

具体的,dns客户端可以获取域名解析请求,并根据域名解析请求获取本地储存的协商好的对称密钥。其中,域名解析请求即dns请求,是指向dns服务器发送域名解析请求,将域名解析成对应的ip地址(internetprotocoladdress),ip地址是指互联网协议地址,又译为网际协议地址。域名是internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥根据密码算法所使用的加密密钥和解密密钥是否相同、能否由加密过程推导出解密过程(或者由解密过程推导出加密过程),可将密码体制分为对称密码体制和非对称密码体制,即密钥可分为对称密钥与非对称密钥。对称密钥是指对称密钥加密,又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。非对称密钥即非对称密钥加密系统,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。例如,当用户在浏览器中输入某个特定的网址时,则客户端可以获取该用户触发的dns请求,客户端可以检查本地缓存中是否存在所请求域名对应的ip地址,若没有,则客户端可以向客户端本机配置的本地区dns域名服务器发起请求。进一步的,客户端可以检查客户端本地是否已经存在dns服务器的证书,且检查证书是否过期可信。如果dns服务器的证书过期或者不可信,则客户端需要与dns服务器重新进行“密钥协商”过程,否则客户端可以直接开始进行“dns请求”。客户端与dns服务器重新进行“密钥协商”之后,客户端将与dns服务器协商好的对称密钥储存在本地中,并清零本地中已储存的成功请求次数。

步骤204,获取历史成功请求次数。

客户端获取域名解析请求,并根据域名解析请求获取本地储存的协商好的对称密钥之后,客户端可以获取历史成功请求次数。其中,历史成功请求次数是指客户端本地记录的已完成的“dns请求”的历史成功请求次数,即dns客户端向dns服务器发起dns请求,dns服务器响应客户端请求,成功返回所请求域名对应的ip地址,客户端本地累加一次“dns请求”成功请求次数。

步骤206,根据对称密钥和历史成功请求次数,生成更新后的对称密钥。

客户端获取历史成功请求次数之后,客户端可以根据获取到的对称密钥和历史成功请求次数,生成更新后的对称密钥。其中,可以在客户端本地的配置文件中预习设置对应的预设算法,如随机算法。具体的,客户端可以根据获取到的对称密钥和历史成功请求次数,利用预设算法对获取到的对称密钥和历史成功请求次数进行计算,生成新的对称密钥,即得到更新后的对称密钥。

步骤208,利用更新后的对称密钥对域名解析请求进行加密,并将加密后的域名解析请求发送至域名服务器。

客户端根据对称密钥和历史成功请求次数,生成更新后的对称密钥之后,客户端可以利用更新后的对称密钥对域名解析请求进行加密,并将加密后的域名解析请求发送至域名服务器。其中,域名服务器即dns(domainnameserver,域名服务器)是进行域名(domainname)和与之相对应的ip地址(ipaddress)转换的服务器。域名服务器中保存了一张域名(domainname)和与之相对应的ip地址(ipaddress)的表,以解析消息的域名。

步骤210,接收到域名服务器返回的响应后,利用更新后的对称密钥对响应进行解密,得到对应的域名地址信息。

客户端利用更新后的对称密钥对域名解析请求进行加密,并将加密后的域名解析请求发送至域名服务器之后,客户端可以接收到域名服务器返回的响应后,客户端利用更新后的对称密钥对响应进行解密,得到对应的域名地址信息。其中,域名服务器接收到客户端的dns请求后,域名服务器同样查询储存在本地的与该客户端协商好的对称密钥,并获取对应的历史成功请求次数。域名服务器根据查找到的对称密钥和历史成功请求次数,生成新的对称密钥。域名服务器使用新的对称密钥对该域名解析请求进行解密,并使用新的对称密钥对dns响应进行加密后发送至对应的客户端。例如,当一个用户在浏览器地址框中输入某一个域名时,客户端向该用户的上网接入商发送域名解析请求,接入商的dns服务器根据客户端发送的域名解析请求,从域名数据库中查询该域名对应的dns服务器,再从与该域名对应的dns服务器中抓取dns记录,即抓取与该域名对应的ip地址,接入商的dns服务器可以从该ip地址所对应的服务器上抓取对应的网页内容,并将网页内容传输至发起请求的客户端,在客户端对应的浏览器页面中加载对应的网页内容。

本实施例中,当用户想要打开特定的网页时,终端可以获取用户通过触发操作发起的域名解析请求,并根据域名解析请求获取本地中预先与域名服务器协商好的对称密钥以及本地中记录的历史成功请求次数,相对于传统的域名解析方式,通过获取历史成功请求次数,并根据对称密钥和历史成功请求次数,生成更新后的对称密钥,能够将密钥协商过程和域名加密传输过程进行时空分离,即可实现在不同时间不同链路分别进行密钥协商和域名加密传输。当终端向域名服务器发送加密的域名解析请求时,终端可以根据获取到的对称密钥和历史成功请求次数,不断更新对应的对称密钥,能够保证每次请求时使用的对称密钥不同,同时采用对称加密方法,加密效率也更高。当终端接收到域名服务器返回的响应后,利用更新后的对称密钥对响应进行解密,即可得到对应的域名地址信息,由此增加了密钥破解难度,从而有效提高了域名解析的安全性。

在一个实施例中,如图3所示,获取域名解析请求之后,该方法还包括与域名服务器协商对称密钥的步骤,具体包括:

步骤302,检测本地是否存在域名服务器的证书。

步骤304,若是,则判断证书是否有效。

步骤306,当证书无效时,向域名服务器发送证书获取请求。

步骤308,接收域名服务器返回的证书,判断证书是否有效。

步骤310,若有效,则根据预设算法生成对称密钥信息,并发送至域名服务器。

步骤312,接收域名服务器返回的密钥确认消息,得到协商好的对称密钥,断开当前与域名服务器的通信链路。

步骤314,将域名服务器的证书和协商好的对称密钥储存在本地,并清零历史成功请求次数。

当客户端获取用户触发的域名解析请求之后,客户端可以检测本地是否存在域名服务器的证书。若存在,则客户端进一步判断证书是否有效。当客户端判断域名服务器的证书无效时,则客户端向域名服务器发送证书获取请求。客户端接收域名服务器返回的证书,并判断证书是否有效,若有效,则客户端根据预设算法生成对称密钥信息,并发送至对应的域名服务器。客户端接收域名服务器返回的密钥确认消息,得到协商好的对称密钥,断开当前与域名服务器的通信链路,客户端将域名服务器的证书和协商好的对称密钥储存在本地,并清零历史成功请求次数。其中,服务器证书(servercertificates)是ssl(securesocketslayer安全套接字协议)数字证书的一种形式,是指通过提交数字证书来证明身份或表明是否有权访问在线服务,通过使用服务器证书可为不同站点提供身份鉴定并保证该站点拥有高强度加密安全。具体的,当一个用户在浏览器地址框中输入某一个域名时,客户端获取该用户触发的域名解析请求之后,客户端首先检测本地是否存在与本机对应的域名服务器的证书。若存在,则客户端进一步判断该证书是否有效。服务器证书是否有效在于用户是否信任证书中信息的有效性。因此,证书通常是通过一个互相信任的第三方组织来建立的,它被称为certificateauthority(ca)。ca的主要职责是确认该组织注册到了一个证书,因而确保证书中的标识信息的有效性。其中,可能存在多种原因导致服务器证书无效,例如,客户端本机日期和时间错误、浏览器设置问题或服务器证书不受信任等。当客户端判断域名服务器的证书无效时,则客户端需要重新向域名服务器发送证书获取请求。客户端接收域名服务器返回的证书,客户端判断证书是否有效,若有效,则客户端可以根据预设算法,如客户端根据随机算法生成对称密钥信息,并发送至对应的域名服务器。客户端接收域名服务器返回的密钥确认消息,得到协商好的对称密钥,断开当前与域名服务器的通信链路,客户端将域名服务器的证书和协商好的对称密钥储存在本地,并清零历史成功请求次数。其中,清零历史成功请求次数是指清零本地中记录的已完成的“dns请求”的历史成功请求次数,本次“密钥协商”过程并不属于已完成的“dns请求”的历史成功请求次数。此外,针对同一个dns服务器,只需要在首次dns请求时进行“密钥协商”过程,之后无需再进行“密钥协商”,且“dns请求”过程使用的是对称加密方法,因而加密效率更高,能够极大的降低加密dns请求的耗时,从而有效提高域名解析的安全性。

在其中一个实施例中,若有效,则根据预设算法生成对称密钥信息,并发送至域名服务器的步骤包括:

若有效,则提取域名服务器返回消息中的公钥。

根据预设算法生成对称密钥信息,利用公钥对对称密钥信息进行加密后发送至域名服务器。

其中,公钥加密,也叫非对称(密钥)加密(publickeyencryption),属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。在公钥加密体制中,私钥是指没有公开的密钥,公钥是指公开的密钥。具体的,客户端接收域名服务器返回的证书之后,当客户端判断域名服务器返回的证书有效时,则客户端可以提取该域名服务器返回消息中所携带的公钥。进一步的,客户端可以根据随机算法生成对称密钥信息,并利用提取到的公钥对该对称密钥信息进行加密后发送至对应的域名服务器。本实施例中,“密钥协商"过程使用的是非对称加密方法,且“密钥协商"过程仅需要在首次dns请求时进行,而“dns请求”过程使用的是对称加密方法,对称密钥由客户端生成后,通过公钥加密,只有通过服务器的私钥才能解密,由此能够极大的降低服务器的负载,简化dns请求过程,同时增加了第三方破解密钥的难度,从而有效提高了域名解析的安全性。

在一个实施例中,如图4所示,得到对应的域名地址解析结果之后,该方法还包括发送虚拟域名解析请求的步骤,具体包括:

步骤402,获取预设频率信息,根据预设频率信息,生成对应的虚拟域名解析请求。

步骤404,对虚拟域名解析请求加密后发送至域名服务器。

步骤406,接收到域名服务器返回的对虚拟域名解析请求的响应后,断开当前与域名服务器的通信链路。

客户端接收到域名服务器返回的响应,利用更新后的对称密钥对该响应进行解密,得到对应的域名地址信息之后,客户端还可以获取预设频率信息,并根据预设频率信息,生成对应的虚拟域名解析请求。客户端利用更新后的对称密钥对该虚拟域名解析请求加密后发送至域名服务器。客户端接收到域名服务器返回的对虚拟域名解析请求的响应后,断开当前与域名服务器的通信链路。其中,预设频率信息是指用户预先设置的单位时间内发送虚拟域名解析请求的次数。例如,预设频率可以为1次/h,即每小时自动发送一次虚拟的“dns请求”。虚拟域名解析请求是指客户端按照预设频率自动生成一个虚拟的“dns请求”,即该虚拟“dns请求”中没有任何域名信息,数据为空,域名服务器接收到客户端发送的虚拟“dns请求”后,域名服务器也会对该虚拟“dns请求”进行响应,并返回至对应的客户端,当客户端接收到域名服务器返回的对虚拟域名解析请求的响应后,则断开当前与域名服务器的通信链路。本次虚拟“dns请求”并没有返回任何有效信息,因而虚拟“dns请求”并不属于已完成的“dns请求”的历史成功请求。本实施例中,通过按照预设频率发送虚假的“dns请求”,由此使得第三方不能知道实际的dns成功请求次数,增加了系统被破解的难度,从而有效提高了域名解析的安全性。

在一个实施例中,如图5所示,提供了一种域名解析方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤502,接收客户端发送的域名解析请求,查找与客户端协商好的对称密钥和历史成功请求次数。

步骤504,根据对称密钥和历史成功请求次数,生成更新后的对称密钥。

步骤506,利用更新后的对称密钥对域名解析请求进行解密,查找与域名解析请求对应的域名地址信息。

步骤508,利用更新后的对称密钥对域名地址信息进行加密,并将加密后的域名地址信息发送至客户端。

域名服务器可以对预设端口进行监听,等待客户端发送连接请求。当域名服务器通过连接预设端口,接收到客户端发送的域名解析请求时,域名服务器可以在本地查找与该客户端协商好的对称密钥和历史成功请求次数。域名服务器根据查找到的对称密钥和历史成功请求次数,生成更新后的对称密钥。域名服务器利用更新后的对称密钥对该客户端发送的域名解析请求进行解密,并从域名数据库中查找与该域名解析请求对应的域名地址信息。域名服务器利用更新后的对称密钥对查找到的域名地址信息进行加密,并将加密后的域名地址信息发送至对应的客户端。此外,当域名服务器通过连接预设端口,接收到客户端发送的证书请求时,域名服务器可以利用公钥对证书加密后返回至对应的客户端。域名服务器接收到客户端发送的对称密钥之后,域名服务器利用私钥对该对称密钥进行解密,并将密钥确认信息返回至对应的客户端,得到协商好的对称密钥,断开当前与该客户端的通信链路,域名服务器将该客户端发送的对称密钥存储在本地,并清零历史成功请求次数。

本实施例中,当域名服务器接收多个客户端发送的域名解析请求时,域名服务器可以在本地查找与每个客户端协商好的对称密钥和历史成功请求次数。域名服务器根据查找到的对称密钥和历史成功请求次数,生成更新后的对称密钥。域名服务器利用更新后的对称密钥对每个客户端发送的域名解析请求进行解密,并从数据库中查找与该域名解析请求对应的域名地址信息。域名服务器利用更新后的对称密钥对查找到的域名地址信息进行加密,并将加密后的域名地址信息发送至对应的客户端,由此通过利用“累加dns成功请求次数”的方法不断更新对称密钥,使得客户端本地储存的首次协商好的对称密钥、dns成功请求次数与服务器本地储存的数据是保持一致的,因而能够保证所生成的新的对称密钥的一致性,实现了每次dns请求时使用的对称密钥不同,增加了密钥被破解的难度,从而有效提高域名解析的安全性。

在一个实施例中,如图6所示,接收客户端发送的域名解析请求之前,该方法还包括对预设端口进行监听的步骤,具体包括:

步骤602,对预设端口进行监听,预设端口包括第一预设端口和第二预设端口。

步骤604,当监测到客户端发送的与第一预设端口的连接请求时,则与第一预设端口建立连接,接收客户端发送的证书获取请求。

步骤606,当监测到客户端发送的与第二预设端口的连接请求时,则与第二预设端口建立连接,接收客户端发送的域名解析请求。

域名服务器接收客户端发送的域名解析请求之前,域名服务器可以对预设端口进行监听,等待客户端发送连接请求。其中,预设端口可以包括第一预设端口和第二预设端口。例如,第一预设端口为54端口和第二预设端口为55端口。当域名服务器监测到客户端发送的与第一预设端口即54端口的连接请求时,则域名服务器连接到54端口,接收客户端发送的证书获取请求,与客户端进行“密钥协商”过程。当域名服务器监测到客户端发送的与第二预设端口即55端口的连接请求时,则域名服务器连接到55端口,接收客户端发送的域名解析请求,与客户端进行“dns请求”过程。由此使得能够将“密钥协商”过程和dns加密过程时空分离,能够实现在不同时间不同链路进行密钥协商和dns加密,使得dns加密传输的效率更高,更安全。

应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图7所示,提供了一种域名解析装置,包括:获取模块702、生成模块704、发送模块706和解密模块708,其中:

获取模块702,用于获取域名解析请求,根据域名解析请求获取本地储存的协商好的对称密钥;获取历史成功请求次数。

生成模块704,用于根据对称密钥和历史成功请求次数,生成更新后的对称密钥。

发送模块706,用于利用更新后的对称密钥对域名解析请求进行加密,并将加密后的域名解析请求发送至域名服务器。

解密模块708,用于接收到域名服务器返回的响应后,利用更新后的对称密钥对响应进行解密,得到对应的域名地址信息。

在一个实施例中,该装置还包括:判断模块和储存模块。

判断模块用于检测本地是否存在域名服务器的证书,若是,则判断证书是否有效。发送模块还用于当证书无效时,向域名服务器发送证书获取请求。判断模块还用于接收域名服务器返回的证书,判断证书是否有效。若有效,则根据预设算法生成对称密钥信息,并发送至域名服务器。储存模块用于接收域名服务器返回的密钥确认消息,得到协商好的对称密钥,断开当前与域名服务器的通信链路,将域名服务器的证书和协商好的对称密钥储存在本地,并清零历史成功请求次数。

在一个实施例中,该装置还包括:提取模块。

提取模块用于若有效,则提取域名服务器返回消息中的公钥。发送模块还用于根据预设算法生成对称密钥信息,利用公钥对对称密钥信息进行加密后发送至域名服务器。

在一个实施例中,该装置还包括:接收模块。

生成模块还用于获取预设频率信息,根据预设频率信息,生成对应的虚拟域名解析请求。发送模块还用于对虚拟域名解析请求加密后发送至域名服务器。接收模块用于接收到域名服务器返回的对虚拟域名解析请求的响应后,断开当前与域名服务器的通信链路。

在一个实施例中,如图8所示,提供了一种域名解析装置,包括:查找模块802、生成模块804和发送模块806,其中:

查找模块802,用于接收客户端发送的域名解析请求,查找与客户端协商好的对称密钥和历史成功请求次数。

生成模块804,用于根据对称密钥和历史成功请求次数,生成更新后的对称密钥。

查找模块802还用于利用更新后的对称密钥对域名解析请求进行解密,查找与域名解析请求对应的域名地址信息。

发送模块806,用于利用更新后的对称密钥对域名地址信息进行加密,并将加密后的域名地址信息发送至客户端。

在一个实施例中,该装置还包括:监听模块和接收模块。

监听模块用于对预设端口进行监听,预设端口包括第一预设端口和第二预设端口。接收模块用于当监测到客户端发送的与第一预设端口的连接请求时,则与第一预设端口建立连接,接收客户端发送的证书获取请求;当监测到客户端发送的与第二预设端口的连接请求时,则与第二预设端口建立连接,接收客户端发送的域名解析请求。

关于域名解析装置的具体限定可以参见上文中对于域名解析方法的限定,在此不再赘述。上述域名解析装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种域名解析方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各个方法实施例的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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