CN110113364A - 域名劫持防御方法及装置、计算机装置及存储介质 - Google Patents
域名劫持防御方法及装置、计算机装置及存储介质 Download PDFInfo
- Publication number
- CN110113364A CN110113364A CN201910459481.5A CN201910459481A CN110113364A CN 110113364 A CN110113364 A CN 110113364A CN 201910459481 A CN201910459481 A CN 201910459481A CN 110113364 A CN110113364 A CN 110113364A
- Authority
- CN
- China
- Prior art keywords
- dns
- encryption
- response
- request
- standard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/045—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种域名劫持防御方法,包括:向标准DNS服务器发送DNS检测请求;根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。本发明还提供一种域名劫持防御装置、计算机装置及计算机可读存储介质。本发明可以防御域名劫持,提升网络安全性。
Description
技术领域
本发明涉及计算机网络技术领域,具体涉及一种域名劫持防御方法及装置、计算机装置和计算机可读存储介质。
背景技术
域名系统(Domain Name System,DNS)用于将域名映射为IP(Internet Protocol,互联网协议)地址,使用户能够方便地访问网络。DNS的安全性对网络安全起着举足轻重的作用,因此成为网络攻击的热点目标,其中一种常见的网络攻击的方式为DNS劫持。DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析请求,分析请求的域名,并把预设域名列表以外的请求放行;若分析请求的域名在预设域名列表内,则根据域名返回假的IP地址,或者什么都不做从而使请求失去响应,其效果就是使特定的网络不能反应或使用户访问假网址。在DNS劫持中,伪造DNS服务器是一个主要攻击手段。例如,攻击者伪造DNS服务器,利用伪造的DNS服务器劫持计算机装置发往DNS服务器的域名解析请求,并把钓鱼网站的IP地址返回给计算机装置进行欺骗。
为了提高DNS安全性,需要对DNS劫持进行防御。现有DNS劫持的防御方法为被动防御方法,采用该方法,当检测到一个域名解析请求被劫持时,计算机装置往往已经收到了钓鱼网站的IP地址,且已经打开了该钓鱼网站的主页,导致网络安全受到威胁。
发明内容
鉴于以上内容,有必要提出一种域名劫持防御方法、域名劫持防御装置、计算机装置、计算机可读存储介质和计算机程序产品,其可以防御域名劫持,提升网络的安全性。
本申请的第一方面提供一种域名劫持防御方法,所述方法包括:
向标准DNS服务器发送DNS检测请求;
根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
另一种可能的实现方式中,所述向标准DNS服务器发送DNS检测请求包括:
根据预设域名构建所述DNS检测请求。
另一种可能的实现方式中,所述根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持包括:
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可信任IP地址列表中,则未发生DNS劫持;
若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可疑IP地址列表中,则发生DNS劫持。
另一种可能的实现方式中,所述将标准DNS查询请求加密,得到加密DNS查询请求包括:
验证所述加密DNS服务器的身份是否合法;
若所述加密DNS服务器的身份合法,则生成随机密钥;
以所述随机密钥作为加密密钥,采用预设对称密码算法对所述标准DNS查询请求进行加密,得到所述加密DNS查询请求。
另一种可能的实现方式中,所述验证所述加密DNS服务器的身份是否合法包括:
向所述加密DNS服务器发送身份验证请求;
接收所述加密DNS服务器响应于所述身份验证请求返回的数字证书,所述数字证书包括所述加密DNS服务器的公钥;
判断所述数字证书是否合法,若所述数字证书合法,则生成随机字符串,将生成的随机字符串发送给所述加密DNS服务器;
接收所述加密DNS服务器返回的加密后的随机字符串,所述加密DNS服务器以所述加密DNS服务器的公钥对应的私钥作为加密密钥对接收的随机字符串进行非对称加密,得到所述加密后的随机字符串;
以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串;
若所述生成的随机字符串与所述解密后的随机字符串一致,则所述加密DNS服务器的身份合法。
另一种可能的实现方式中,若所述加密DNS服务器的身份合法,所述方法还包括:
以所述加密DNS服务器的公钥作为加密密钥,对所述随机密钥和所述预设对称密码算法进行加密,将加密后的所述随机密钥和所述预设对称密码算法发送给所述加密DNS服务器,所述加密DNS服务器使用所述随机密钥和所述预设对称密码算法加密所述DNS查询应答,得到所述加密DNS查询应答。
另一种可能的实现方式中,所述方法还包括:
若没有发生DNS劫持,则将所述标准DNS查询请求发送给所述标准DNS服务器。
本申请的第二方面提供一种计算机装置,所述计算机装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述域名劫持防御方法。
本申请的第三方面提供一种域名劫持防御装置,所述装置包括:
第一发送单元,用于向标准DNS服务器发送DNS检测请求;
判断单元,用于根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
第二发送单元,用于若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
转换单元,用于将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
另一种可能的实现方式中,所述第一发送单元向标准DNS服务器发送DNS检测请求包括:
根据预设域名构建所述DNS检测请求。
另一种可能的实现方式中,所述判断单元据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持包括:
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可信任IP地址列表中,则未发生DNS劫持;
若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可疑IP地址列表中,则发生DNS劫持。
另一种可能的实现方式中,所述第二发送单元将标准DNS查询请求加密,得到加密DNS查询请求包括:
验证所述加密DNS服务器的身份是否合法;
若所述加密DNS服务器的身份合法,则生成随机密钥;
以所述随机密钥作为加密密钥,采用预设对称密码算法对所述标准DNS查询请求进行加密,得到所述加密DNS查询请求。
另一种可能的实现方式中,所述验证所述加密DNS服务器的身份是否合法包括:
向所述加密DNS服务器发送身份验证请求;
接收所述加密DNS服务器响应于所述身份验证请求返回的数字证书,所述数字证书包括所述加密DNS服务器的公钥;
判断所述数字证书是否合法,若所述数字证书合法,则生成随机字符串,将生成的随机字符串发送给所述加密DNS服务器;
接收所述加密DNS服务器返回的加密后的随机字符串,所述加密DNS服务器以所述加密DNS服务器的公钥对应的私钥作为加密密钥对接收的随机字符串进行非对称加密,得到所述加密后的随机字符串;
以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串;
若所述生成的随机字符串与所述解密后的随机字符串一致,则所述加密DNS服务器的身份合法。
另一种可能的实现方式中,若所述加密DNS服务器的身份合法,所述方法还包括:
以所述加密DNS服务器的公钥作为加密密钥,对所述随机密钥和所述预设对称密码算法进行加密,将加密后的所述随机密钥和所述预设对称密码算法发送给所述加密DNS服务器,所述加密DNS服务器使用所述随机密钥和所述预设对称密码算法加密所述DNS查询应答,得到所述加密DNS查询应答。
另一种可能的实现方式中,所述方法还包括:
若没有发生DNS劫持,则将所述标准DNS查询请求发送给所述标准DNS服务器。
本申请的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述域名劫持防御方法。
本申请的第五方面提供一种计算机程序产品,包括计算机指令,当其在计算机装置上运行时,使得计算机装置执行所述域名劫持防御方法。
本发明向标准DNS服务器发送DNS检测请求;根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。本发明可以防御域名劫持,提升网络的安全性。特别地,当发生DNS劫持时,本发明域名劫持防御方法可以用加密DNS查询请求向加密DNS服务器请求预设域名对应的IP地址。
附图说明
图1是本发明实施例提供的域名劫持防御方法较佳实施例的流程图。
图2是本发明实施例提供的域名劫持防御装置较佳实施例的流程图。
图3是本发明实施例提供的计算机装置较佳实施例的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
优选地,本发明的域名劫持防御方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述计算机装置可以是组成CDN(Content Delivery Network,内容分发网络)网络或者区块链网络的节点。
实施例一
图1是本发明实施例提供的域名劫持防御方法的流程图。所述域名劫持防御方法应用于计算机装置中,用于防御域名劫持,提升网络的安全性。
参阅1所示,所述域名劫持防御方法具体包括以下步骤:
S101,向标准DNS(Domain Name System,域名系统)服务器发送DNS检测请求。
可以通过所述计算机装置中的标准DNS客户端向标准DNS服务器发送DNS检测请求。所述标准DNS客户端内置于所述计算机装置的操作系统中。所述标准DNS客户端基于标准DNS协议(RFC1035)为所述计算机装置提供标准的DNS服务。
所述计算机装置中可以存储有DNS服务器列表,所述DNS服务器列表可以包括一个或多个DNS服务器。可以读取所述DNS服务器列表,选择所述DNS服务器列表中的一个(例如第一个)DNS服务器作为所述标准DNS服务器。例如,选择DNS服务器列表中IP地址为114.114.114.114的DNS服务器为标准DNS服务器。
可以根据预设域名构建所述DNS检测请求。例如,从预设IP地址-域名关系信息对列表中随机获取一个或多个IP地址-域名关系信息对,得到所述一个或多个预设IP地址-域名关系信息对中的域名;生成DNS检测请求号,所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答中携带有所述DNS检测请求号,以识别所述DNS检测请求对应的所述DNS检测应答;将所述一个或多个预设IP地址-域名关系信息对中的域名和所述DNS检测请求号按照标准DNS协议(RFC1035)进行组合成,得到所述DNS检测请求。例如,DNS检测请求可以是{Response In:1526;Transaction ID:0xb80d;Queries Name:www.baidu.com},其中Response In、Transaction ID为DNS检测请求标识,Queries Name为预设域名。
所述DNS检测请求构建完成后,向所述标准DNS服务器发送所述DNS检测请求。例如,向IP地址为114.114.114.114的标准DNS服务器的发送DNS检测请求{Response In:1526;Transaction ID:0xb80d;Queries Name:www.baidu.com}。
在一具体实施例中,可以周期性地向所述标准DNS服务器发送DNS检测请求。例如每60秒向标准DNS服务器发送DNS检测请求。
S102,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持。
在一具体实施例中,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持可以包括:
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可信任IP地址列表中,则未发生DNS劫持。
例如,若DNS检测应答中的IP地址-域名关系信息对(120.25.73.148-www.saibeiip.com)在预设IP地址-域名关系信息对列表中,则未发生DNS劫持,其中,预设IP地址-域名关系信息对列表中的每个IP地址-域名关系信息对的对应关系正确(即IP地址-域名关系信息对中的IP地址是域名对应的正确的公网IP地址)。再如,DNS检测应答中的IP地址(120.25.73.148)在可信任IP地址列表中,则未发生DNS劫持。
否则,若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可疑IP地址列表中,则发生DNS劫持。
例如,若DNS检测应答中的IP地址-域名关系信息对(11.11.11.11-www.saibeiip.com)不在预设IP地址-域名关系信息对列表中,则发生DNS劫持,其中,IP地址11.11.11.11是私有IP地址或特殊钓鱼地址。再如,DNS检测应答中的IP地址(11.11.11.11)不在可信任IP地址列表中,则发生DNS劫持。
在另一具体实施例中,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持可以包括:
判断所述DNS检测应答中的IP地址-域名关系信息对是否在预设IP地址-域名关系信息对列表中;
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中,则未发生DNS劫持;
否则,若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中,则判断所述DNS检测应答中的IP地址-域名关系信息对是否在云端IP地址-域名关系信息对列表中;
若所述的DNS检测应答中的IP地址-域名关系信息对在云端IP地址-域名关系信息对列表中,则未发生DNS劫持,将所述DNS检测应答中的IP地址-域名关系信息对存储至预设IP地址-域名关系信息对列表;
否则,若所述DNS检测应答中的IP地址-域名关系信息对不在云端IP地址-域名关系信息对列表中,则发生DNS劫持。
S103,若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器。
所述加密DNS服务器为所述计算机装置提供加密的DNS服务。
所述将标准DNS查询请求加密,得到加密DNS查询请求包括:
验证所述加密DNS服务器的身份是否合法。
若所述加密DNS服务器的身份合法,则生成随机密钥。
以所述随机密钥作为加密密钥,采用预设对称密码算法对所述标准DNS查询请求进行加密,得到所述加密DNS查询请求。例如,所述随机密钥可以是8字节的随机字符串或随机数字,所述预设对称密码算法可以是DES(Data Encryption Standard)算法。可以使用所述加密密钥对待加密对象进行对称加密,得到所述待加密对象的密文;也可以使用所述加密密钥对所述密文进行解密,得到所述待加密对象的明文。
其中,所述验证所述加密DNS服务器的身份是否合法包括:
第一步,向所述加密DNS服务器发送身份验证请求;
第二步,接收所述加密DNS服务器响应于所述身份验证请求返回的数字证书,所述数字证书包括所述加密DNS服务器的公钥;
第三步,判断所述数字证书是否合法,若所述数字证书合法,则生成随机字符串,将生成的随机字符串发送给所述加密DNS服务器;
其中,判断所述数字证书是否合法可以包括:所述数字证书包括发布机构、持有者(即所述加密DNS服务器)、持有者的公钥(即所述加密DNS服务器的公钥)、签名算法,所述加密DNS服务器响应于所述身份验证请求还返回由所述发布机构加密的指纹和由所述发布机构加密的指纹算法;在计算机装置中获取所述发布机构的公钥和所述发布机构的签名算法,用所述发布机构的公钥和所述发布机构的签名算法解密所述发布机构加密的指纹和由所述发布机构加密的指纹算法,得到明文形式的指纹和明文形式的指纹算法;用所述指纹算法计算所述数字证书得到指纹(也称数字签名);若所述明文形式的指纹和计算所述数字证书得到的指纹一致,则所述数字证书合法。
第四步,接收所述加密DNS服务器返回的加密后的随机字符串,所述加密DNS服务器以所述加密DNS服务器的公钥对应的私钥作为加密密钥对接收的随机字符串进行非对称加密,得到所述加密后的随机字符串;
第五步,以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串;
例如,可以采用非对称密码算法(RSA算法)以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串。非对称密码算法又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。例如,计算机装置A发送信息,服务器B接收信息,计算机装置A想确保信息只有服务器B看到,需要服务器B生成一对公私钥,并拿到服务器B的公钥;计算机装置A用这个公钥加密信息,服务器B收到密文后用与公钥匹配的私钥解密。反过来也可以用私钥加密、公钥解密。对于给定的公钥有且只有与之匹配的私钥可以解密,对于给定的私钥,有且只有与之匹配的公钥可以解密。
第六步,若所述生成的随机字符串与所述解密后的随机字符串一致,则所述加密DNS服务器的身份合法。
进一步地,若所述加密DNS服务器的身份合法,所述方法还包括:
以所述加密DNS服务器的公钥作为加密密钥,对所述随机密钥和所述预设对称密码算法进行加密,将加密后的所述随机密钥和所述预设对称密码算法发送给所述加密DNS服务器。所述加密DNS服务器使用所述随机密钥和所述预设对称密码算法加密所述DNS查询应答,得到所述加密DNS查询应答。
在一具体实施例中,若发生DNS劫持,启用所述计算机装置中的加密DNS代理缓存端,所述加密DNS代理缓存端接管所述标准DNS客户端的DNS服务,将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给所述加密DNS服务器。
所述启用所述计算机装置中的加密DNS代理缓存端,用所述加密DNS代理缓存端接管所述标准DNS客户端的标准DNS服务包括:
创建监听服务,用以监听所述计算机装置的预设端口。例如,所述监听服务可以为UDP socket server(User Datagram Protocol socket server,用户数据报协议接口服务),所述计算机装置的预设端口可以是计算机装置地址为127.0.0.1的53端口。所述计算机装置的预设端口用于将所述标准DNS查询请求发送给所述标准DNS服务器。
将所述加密DNS代理缓存端写入所述DNS服务器列表的第一行。所述加密DNS代理缓存端可以是nameserver127.0.0.1,所述加密DNS代理缓存端的地址可以是127.0.0.1,所述DNS服务器列表可以从所述计算机装置的DNS服务器配置文件resolv.conf中获取。
通过启用所述计算机装置中的加密DNS代理缓存端,用所述加密DNS代理缓存端接管所述标准DNS客户端的标准DNS服务,将所述标准DNS客户端基于所述标准DNS协议发送至标准DNS服务器的标准DNS查询请求转至所述计算机装置的所述加密DNS缓存模块,在基于HTTPS协议(Hyper Text Transfer Protocol over Secure Socket Layer或HypertextTransfer Protocol Secure,超文本传输安全协议)将标准DNS查询请求加密得到加密DNS查询请求后,所述加密DNS缓存模块基于HTTPS协议将所述加密DNS查询请求发送给所述加密DNS服务器。
S104,将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
接收所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答,以所述随机密钥作为加密密钥,采用预设对称密码算法对所述加密DNS查询应答进行解密,得到所述标准DNS查询应答。若所述预设对称密码算法中的参数Mode为0,所述预设对称密码算法可以结合所述加密密钥对待加密对象进行加密,得到所述待加密对象的密文形式;若所述预设对称密码算法中的参数Mode为1,所述预设对称密码算法可以结合所述加密密钥对已加密的待加密对象进行解密,得到所述待加密对象的明文形式。例如,此时所述预设对称密码算法中的参数Mode为1,用所述预设对称密码算法结合所述加密密钥对所述加密DNS查询应答进行解密,得到所述标准DNS查询应答。
在一具体实施例中,所述加密DNS代理缓存端接收所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答,以所述随机密钥作为加密密钥,采用预设对称密码算法对所述加密DNS查询应答进行解密,得到所述标准DNS查询应答,并将所述标准DNS查询应答返回给所述标准DNS客户端。
所述域名劫持防御方法可以在向所述标准DNS服务器发送DNS查询请求之前向标准DNS服务器发送DNS检测请求;根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。从而避免了当检测到一个域名解析请求被劫持时,计算机装置已经收到了钓鱼网站的IP地址,且已经打开了该钓鱼网站的主页,网络安全受到威胁;当发生DNS劫持时,实施例一的域名劫持防御方法可以用加密DNS查询请求向加密DNS服务器请求预设域名对应的IP地址,以提升网络的安全性。
实施例一的域名劫持防御方法向标准DNS服务器发送DNS检测请求;根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。实施例一防御域名劫持,提升网络的安全性。特别地,当发生DNS劫持时,实施例一的域名劫持防御方法可以用加密DNS查询请求向加密DNS服务器请求预设域名对应的IP地址。
在另一实施例中,所述域名劫持防御方法还可以包括:若没有发生DNS劫持,则将所述标准DNS查询请求发送给所述标准DNS服务器。在将所述标准DNS查询请求发送给所述标准DNS服务器之前,可以判断加密DNS代理缓存端是否处于启用状态,若所述加密DNS代理缓存端处于启用状态,则禁用所述加密DNS代理缓存端。禁用所述加密DNS代理缓存端可以包括:在所述DNS服务器配置文件resolv.conf中将所述加密DNS代理缓存端的地址127.0.0.1删除;关闭所述监听服务UDP socket server,停止接收所述标准DNS查询请求。
实施例二
图2为本发明实施例提供的域名劫持防御装置较佳实施例的结构图。所述域名劫持防御装置10应用于计算机装置中,用于防御域名劫持,提升网络的安全性。
如图2所示,所述域名劫持防御装置10可以包括:第一发送单元201、判断单元202、第二发送单元203、转换单元204。
第一发送单元201,用于向标准DNS服务器发送DNS检测请求。
可以通过所述计算机装置中的标准DNS客户端向标准DNS服务器发送DNS检测请求。所述标准DNS客户端内置于所述计算机装置的操作系统中。所述标准DNS客户端基于标准DNS协议(RFC1035)为所述计算机装置提供标准的DNS服务。
所述计算机装置中可以存储有DNS服务器列表,所述DNS服务器列表可以包括一个或多个DNS服务器。可以读取所述DNS服务器列表,选择所述DNS服务器列表中的一个(例如第一个)DNS服务器作为所述标准DNS服务器。例如,选择DNS服务器列表中IP地址为114.114.114.114的DNS服务器为标准DNS服务器。
可以根据预设域名构建所述DNS检测请求。例如,从预设IP地址-域名关系信息对列表中随机获取一个或多个IP地址-域名关系信息对,得到所述一个或多个预设IP地址-域名关系信息对中的域名;生成DNS检测请求号,所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答中携带有所述DNS检测请求号,以识别所述DNS检测请求对应的所述DNS检测应答;将所述一个或多个预设IP地址-域名关系信息对中的域名和所述DNS检测请求号按照标准DNS协议(RFC1035)进行组合成,得到所述DNS检测请求。例如,DNS检测请求可以是{Response In:1526;Transaction ID:0xb80d;Queries Name:www.baidu.com},其中Response In、Transaction ID为DNS检测请求标识,Queries Name为预设域名。
所述DNS检测请求构建完成后,向所述标准DNS服务器发送所述DNS检测请求。例如,向IP地址为114.114.114.114的标准DNS服务器的发送DNS检测请求{Response In:1526;Transaction ID:0xb80d;Queries Name:www.baidu.com}。
在一具体实施例中,可以周期性地向所述标准DNS服务器发送DNS检测请求。例如每60秒向标准DNS服务器发送DNS检测请求。
判断单元202,用于根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持。
在一具体实施例中,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持可以包括:
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可信任IP地址列表中,则未发生DNS劫持。
例如,若DNS检测应答中的IP地址-域名关系信息对(120.25.73.148-www.saibeiip.com)在预设IP地址-域名关系信息对列表中,则未发生DNS劫持,其中,预设IP地址-域名关系信息对列表中的每个IP地址-域名关系信息对的对应关系正确(即IP地址-域名关系信息对中的IP地址是域名对应的正确的公网IP地址)。再如,DNS检测应答中的IP地址(120.25.73.148)在可信任IP地址列表中,则未发生DNS劫持。
否则,若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可疑IP地址列表中,则发生DNS劫持。
例如,若DNS检测应答中的IP地址-域名关系信息对(11.11.11.11-www.saibeiip.com)不在预设IP地址-域名关系信息对列表中,则发生DNS劫持,其中,IP地址11.11.11.11是私有IP地址或特殊钓鱼地址。再如,DNS检测应答中的IP地址(11.11.11.11)不在可信任IP地址列表中,则发生DNS劫持。
在另一具体实施例中,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持可以包括:
判断所述DNS检测应答中的IP地址-域名关系信息对是否在预设IP地址-域名关系信息对列表中;
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中,则未发生DNS劫持;
否则,若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中,则判断所述DNS检测应答中的IP地址-域名关系信息对是否在云端IP地址-域名关系信息对列表中;
若所述的DNS检测应答中的IP地址-域名关系信息对在云端IP地址-域名关系信息对列表中,则未发生DNS劫持,将所述DNS检测应答中的IP地址-域名关系信息对存储至预设IP地址-域名关系信息对列表;
否则,若所述DNS检测应答中的IP地址-域名关系信息对不在云端IP地址-域名关系信息对列表中,则发生DNS劫持。
第二发送单元203,用于若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器。
所述加密DNS服务器为所述计算机装置提供加密的DNS服务。
所述将标准DNS查询请求加密,得到加密DNS查询请求包括:
验证所述加密DNS服务器的身份是否合法。
若所述加密DNS服务器的身份合法,则生成随机密钥。
以所述随机密钥作为加密密钥,采用预设对称密码算法对所述标准DNS查询请求进行加密,得到所述加密DNS查询请求。例如,所述随机密钥可以是8字节的随机字符串或随机数字,所述预设对称密码算法可以是DES(Data Encryption Standard)算法。可以使用所述加密密钥对待加密对象进行对称加密,得到所述待加密对象的密文;也可以使用所述加密密钥对所述密文进行解密,得到所述待加密对象的明文。
其中,所述验证所述加密DNS服务器的身份是否合法包括:
第一步,向所述加密DNS服务器发送身份验证请求;
第二步,接收所述加密DNS服务器响应于所述身份验证请求返回的数字证书,所述数字证书包括所述加密DNS服务器的公钥;
第三步,判断所述数字证书是否合法,若所述数字证书合法,则生成随机字符串,将生成的随机字符串发送给所述加密DNS服务器;
其中,判断所述数字证书是否合法可以包括:所述数字证书包括发布机构、持有者(即所述加密DNS服务器)、持有者的公钥(即所述加密DNS服务器的公钥)、签名算法,所述加密DNS服务器响应于所述身份验证请求还返回由所述发布机构加密的指纹和由所述发布机构加密的指纹算法;在计算机装置中获取所述发布机构的公钥和所述发布机构的签名算法,用所述发布机构的公钥和所述发布机构的签名算法解密所述发布机构加密的指纹和由所述发布机构加密的指纹算法,得到明文形式的指纹和明文形式的指纹算法;用所述指纹算法计算所述数字证书得到指纹(也称数字签名);若所述明文形式的指纹和计算所述数字证书得到的指纹一致,则所述数字证书合法。
第四步,接收所述加密DNS服务器返回的加密后的随机字符串,所述加密DNS服务器以所述加密DNS服务器的公钥对应的私钥作为加密密钥对接收的随机字符串进行非对称加密,得到所述加密后的随机字符串;
第五步,以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串;
例如,可以采用非对称密码算法(RSA算法)以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串。非对称密码算法又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。例如,计算机装置A发送信息,服务器B接收信息,计算机装置A想确保信息只有服务器B看到,需要服务器B生成一对公私钥,并拿到服务器B的公钥;计算机装置A用这个公钥加密信息,服务器B收到密文后用与公钥匹配的私钥解密。反过来也可以用私钥加密、公钥解密。对于给定的公钥有且只有与之匹配的私钥可以解密,对于给定的私钥,有且只有与之匹配的公钥可以解密。
第六步,若所述生成的随机字符串与所述解密后的随机字符串一致,则所述加密DNS服务器的身份合法。
进一步地,若所述加密DNS服务器的身份合法,所述方法还包括:
以所述加密DNS服务器的公钥作为加密密钥,对所述随机密钥和所述预设对称密码算法进行加密,将加密后的所述随机密钥和所述预设对称密码算法发送给所述加密DNS服务器。所述加密DNS服务器使用所述随机密钥和所述预设对称密码算法加密所述DNS查询应答,得到所述加密DNS查询应答。
在一具体实施例中,若发生DNS劫持,启用所述计算机装置中的加密DNS代理缓存端,用所述加密DNS代理缓存端接管所述标准DNS客户端的标准DNS服务,将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给所述加密DNS服务器。
所述启用所述计算机装置中的加密DNS代理缓存端,用所述加密DNS代理缓存端接管所述标准DNS客户端的标准DNS服务包括:
创建监听服务,用以监听所述计算机装置的预设端口。例如,所述监听服务可以为UDP socket server(User Datagram Protocol socket server,用户数据报协议接口服务),所述计算机装置的预设端口可以是计算机装置地址为127.0.0.1的53端口。所述计算机装置的预设端口用于将所述标准DNS查询请求发送给所述标准DNS服务器。
将所述加密DNS代理缓存端写入所述DNS服务器列表的第一行。所述加密DNS代理缓存端可以是nameserver127.0.0.1,所述加密DNS代理缓存端的地址可以是127.0.0.1,所述DNS服务器列表可以从所述计算机装置的DNS服务器配置文件resolv.conf中获取。
通过启用所述计算机装置中的加密DNS代理缓存端,用所述加密DNS代理缓存端接管所述标准DNS客户端的标准DNS服务,将所述标准DNS客户端基于所述标准DNS协议发送至标准DNS服务器的标准DNS查询请求转至所述计算机装置的所述加密DNS缓存模块,在基于HTTPS协议(Hyper Text Transfer Protocol over Secure Socket Layer或HypertextTransfer Protocol Secure,超文本传输安全协议)将标准DNS查询请求加密得到加密DNS查询请求后,所述加密DNS缓存模块基于HTTPS协议将所述加密DNS查询请求发送给所述加密DNS服务器。
转换单元204,用于将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
接收所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答,以所述随机密钥作为加密密钥,采用预设对称密码算法对所述加密DNS查询应答进行解密,得到所述标准DNS查询应答。若所述预设对称密码算法中的参数Mode为0,所述预设对称密码算法可以结合所述加密密钥对待加密对象进行加密,得到所述待加密对象的密文形式;若所述预设对称密码算法中的参数Mode为1,所述预设对称密码算法可以结合所述加密密钥对已加密的待加密对象进行解密,得到所述待加密对象的明文形式。例如,此时所述预设对称密码算法中的参数Mode为1,用所述预设对称密码算法结合所述加密密钥对所述加密DNS查询应答进行解密,得到所述标准DNS查询应答。
在一具体实施例中,所述加密DNS代理缓存端接收所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答,以所述随机密钥作为加密密钥,采用预设对称密码算法对所述加密DNS查询应答进行解密,得到所述标准DNS查询应答,并将所述标准DNS查询应答返回给所述标准DNS客户端。
本实施例可以在向所述标准DNS服务器发送DNS查询请求之前向标准DNS服务器发送DNS检测请求;根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。从而避免了当检测到一个域名解析请求被劫持时,计算机装置已经收到了钓鱼网站的IP地址,且已经打开了该钓鱼网站的主页,网络安全受到威胁;当发生DNS劫持时,实施例二的域名劫持防御方法可以用加密DNS查询请求向加密DNS服务器请求预设域名对应的IP地址,以提升网络的安全性。
实施例二的域名劫持防御装置10向标准DNS服务器发送DNS检测请求;根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。实施例二防御域名劫持,提升网络的安全性。特别地,当发生DNS劫持时,实施例二的域名劫持防御装置10可以用加密DNS查询请求向加密DNS服务器请求预设域名对应的IP地址。
在另一实施例中,所述域名劫持防御装置还包括第三发送单元,用于若没有发生DNS劫持,则将所述标准DNS查询请求发送给所述标准DNS服务器。在将所述标准DNS查询请求发送给所述标准DNS服务器之前,可以判断加密DNS代理缓存端是否处于启用状态,若所述加密DNS代理缓存端处于启用状态,则所述加密DNS代理缓存端。所述关闭所述加密DNS代理缓存端可以包括:在所述DNS服务器配置文件resolv.conf中将所述加密DNS代理缓存端的地址127.0.0.1删除;关闭所述监听服务UDP socket server,停止接收所述标准DNS查询请求。
实施例三
本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述域名劫持防御方法实施例中的步骤,例如图1所示的S101-S104:
S101,向标准DNS服务器发送DNS检测请求;
S102,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
S103,若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
S104,将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-204:
第一发送单元201,用于向标准DNS服务器发送DNS检测请求;
判断单元202,用于根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
第二发送单元203,用于若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
转换单元204,用于将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
实施例四
图3为本发明实施例提供的计算机装置的示意图。所述计算机装置1包括存储器20、处理器30、总线50以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如shell执行权限获取程序。所述处理器30执行所述计算机程序40时实现上述域名劫持防御方法实施例中的步骤,例如图1所示的S101-S104:
S101,向标准DNS服务器发送DNS检测请求;
S102,根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
S103,若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
S104,将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-204:
第一发送单元201,用于向标准DNS服务器发送DNS检测请求;
判断单元202,用于根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
第二发送单元203,用于若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
转换单元204,用于将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图2中的第一发送单元201、判断单元202、第二发送单元203、转换单元204,各单元具体功能参见实施例二。
所述计算机装置1可以是PC(PersonalComputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备等终端设备。在本实施例,所述计算机装置1可以是边缘服务器。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。
所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述总线50以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线50可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,计算机装置1还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机装置1与其他电子设备之间建立通信连接。
可选地,该计算机装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机装置1中处理的信息以及用于显示可视化的用户界面。
本领域技术人员可以理解,所述示意图3仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机装置上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机装置可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种域名劫持防御方法,其特征在于,所述方法包括:
向标准DNS服务器发送DNS检测请求;
根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
2.如权利要求1所述的方法,其特征在于,所述向标准DNS服务器发送DNS检测请求包括:
根据预设域名构建所述DNS检测请求。
3.如权利要求1所述的方法,其特征在于,所述根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持包括:
若所述DNS检测应答中的IP地址-域名关系信息对在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可信任IP地址列表中,则未发生DNS劫持;
若所述DNS检测应答中的IP地址-域名关系信息对不在预设IP地址-域名关系信息对列表中或所述DNS检测应答中的IP地址在可疑IP地址列表中,则发生DNS劫持。
4.如权利要求1所述的方法,其特征在于,所述将标准DNS查询请求加密,得到加密DNS查询请求包括:
验证所述加密DNS服务器的身份是否合法;
若所述加密DNS服务器的身份合法,则生成随机密钥;
以所述随机密钥作为加密密钥,采用预设对称密码算法对所述标准DNS查询请求进行加密,得到所述加密DNS查询请求。
5.如权利要求4所述的方法,其特征在于,所述验证所述加密DNS服务器的身份是否合法包括:
向所述加密DNS服务器发送身份验证请求;
接收所述加密DNS服务器响应于所述身份验证请求返回的数字证书,所述数字证书包括所述加密DNS服务器的公钥;
判断所述数字证书是否合法,若所述数字证书合法,则生成随机字符串,将生成的随机字符串发送给所述加密DNS服务器;
接收所述加密DNS服务器返回的加密后的随机字符串,所述加密DNS服务器以所述加密DNS服务器的公钥对应的私钥作为加密密钥对接收的随机字符串进行非对称加密,得到所述加密后的随机字符串;
以所述加密DNS服务器的公钥作为解密密钥,对所述加密后的随机字符串进行解密,得到解密后的随机字符串;
若所述生成的随机字符串与所述解密后的随机字符串一致,则所述加密DNS服务器的身份合法。
6.如权利要求5所述的方法,其特征在于,若所述加密DNS服务器的身份合法,所述方法还包括:
以所述加密DNS服务器的公钥作为加密密钥,对所述随机密钥和所述预设对称密码算法进行加密,将加密后的所述随机密钥和所述预设对称密码算法发送给所述加密DNS服务器,所述加密DNS服务器使用所述随机密钥和所述预设对称密码算法加密所述DNS查询应答,得到所述加密DNS查询应答。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
若没有发生DNS劫持,则将所述标准DNS查询请求发送给所述标准DNS服务器。
8.一种计算机装置,其特征在于,所述计算机装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述域名劫持防御方法。
9.一种域名劫持防御装置,其特征在于,所述装置包括:
第一发送单元,用于向标准DNS服务器发送DNS检测请求;
判断单元,用于根据所述标准DNS服务器响应于所述DNS检测请求返回的DNS检测应答判断是否发生DNS劫持;
第二发送单元,用于若发生DNS劫持,则将标准DNS查询请求加密,得到加密DNS查询请求,将所述加密DNS查询请求发送给加密DNS服务器;
转换单元,用于将所述加密DNS服务器响应于所述加密DNS查询请求返回的加密DNS查询应答转换为标准DNS查询应答。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述域名劫持防御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910459481.5A CN110113364B (zh) | 2019-05-29 | 2019-05-29 | 域名劫持防御方法及装置、计算机装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910459481.5A CN110113364B (zh) | 2019-05-29 | 2019-05-29 | 域名劫持防御方法及装置、计算机装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110113364A true CN110113364A (zh) | 2019-08-09 |
CN110113364B CN110113364B (zh) | 2022-02-25 |
Family
ID=67492871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910459481.5A Active CN110113364B (zh) | 2019-05-29 | 2019-05-29 | 域名劫持防御方法及装置、计算机装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110113364B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111372205A (zh) * | 2020-02-28 | 2020-07-03 | 维沃移动通信有限公司 | 信息提示方法及电子设备 |
CN111818196A (zh) * | 2020-07-22 | 2020-10-23 | 深圳市有方科技股份有限公司 | 域名解析方法、装置、计算机设备和存储介质 |
CN112600796A (zh) * | 2020-11-27 | 2021-04-02 | 互联网域名系统北京市工程研究中心有限公司 | 防劫持的DNS over HTTP方法和系统 |
CN113452645A (zh) * | 2020-03-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 中间人攻击检测方法、装置、计算机设备和存储介质 |
FR3118377A1 (fr) * | 2020-12-23 | 2022-06-24 | Orange | Procédés pour la redirection de trafic, terminal, contrôleur, serveur d’autorisation, serveurs de résolution de noms, et programme d’ordinateur correspondants. |
CN116633701A (zh) * | 2023-07-25 | 2023-08-22 | 中国电信股份有限公司 | 信息传输方法、装置、计算机设备和存储介质 |
CN117201454A (zh) * | 2023-11-01 | 2023-12-08 | 紫光同芯微电子有限公司 | 用于dns查询的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141612A (zh) * | 2015-09-01 | 2015-12-09 | 中国互联网络信息中心 | 一种dns数据包隐私保护方法 |
US20180007088A1 (en) * | 2016-06-29 | 2018-01-04 | AVAST Software s.r.o. | Detection of domain name system hijacking |
CN108282495A (zh) * | 2018-03-14 | 2018-07-13 | 北京奇艺世纪科技有限公司 | 一种dns劫持防御方法和装置 |
CN109495445A (zh) * | 2018-09-30 | 2019-03-19 | 青岛海尔科技有限公司 | 基于物联网的身份认证方法、装置、终端、服务器及介质 |
CN109729058A (zh) * | 2017-10-31 | 2019-05-07 | 贵州白山云科技股份有限公司 | 一种流量劫持分析方法和装置 |
-
2019
- 2019-05-29 CN CN201910459481.5A patent/CN110113364B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141612A (zh) * | 2015-09-01 | 2015-12-09 | 中国互联网络信息中心 | 一种dns数据包隐私保护方法 |
US20180007088A1 (en) * | 2016-06-29 | 2018-01-04 | AVAST Software s.r.o. | Detection of domain name system hijacking |
CN109729058A (zh) * | 2017-10-31 | 2019-05-07 | 贵州白山云科技股份有限公司 | 一种流量劫持分析方法和装置 |
CN108282495A (zh) * | 2018-03-14 | 2018-07-13 | 北京奇艺世纪科技有限公司 | 一种dns劫持防御方法和装置 |
CN109495445A (zh) * | 2018-09-30 | 2019-03-19 | 青岛海尔科技有限公司 | 基于物联网的身份认证方法、装置、终端、服务器及介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111372205A (zh) * | 2020-02-28 | 2020-07-03 | 维沃移动通信有限公司 | 信息提示方法及电子设备 |
CN113452645A (zh) * | 2020-03-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 中间人攻击检测方法、装置、计算机设备和存储介质 |
CN111818196A (zh) * | 2020-07-22 | 2020-10-23 | 深圳市有方科技股份有限公司 | 域名解析方法、装置、计算机设备和存储介质 |
CN112600796A (zh) * | 2020-11-27 | 2021-04-02 | 互联网域名系统北京市工程研究中心有限公司 | 防劫持的DNS over HTTP方法和系统 |
CN112600796B (zh) * | 2020-11-27 | 2023-01-10 | 互联网域名系统北京市工程研究中心有限公司 | 防劫持的DNS over HTTP方法和系统 |
FR3118377A1 (fr) * | 2020-12-23 | 2022-06-24 | Orange | Procédés pour la redirection de trafic, terminal, contrôleur, serveur d’autorisation, serveurs de résolution de noms, et programme d’ordinateur correspondants. |
WO2022136796A1 (fr) * | 2020-12-23 | 2022-06-30 | Orange | Procedes pour la redirection de trafic, terminal, controleur, serveur d'autorisation, serveurs de resolution de noms, et programme d'ordinateur correspondants |
CN116633701A (zh) * | 2023-07-25 | 2023-08-22 | 中国电信股份有限公司 | 信息传输方法、装置、计算机设备和存储介质 |
CN116633701B (zh) * | 2023-07-25 | 2023-10-27 | 中国电信股份有限公司 | 信息传输方法、装置、计算机设备和存储介质 |
CN117201454A (zh) * | 2023-11-01 | 2023-12-08 | 紫光同芯微电子有限公司 | 用于dns查询的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110113364B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113364A (zh) | 域名劫持防御方法及装置、计算机装置及存储介质 | |
US11032279B2 (en) | Establishing trust between two devices | |
Thomas et al. | Protecting accounts from credential stuffing with password breach alerting | |
Eskandarian et al. | Express: Lowering the cost of metadata-hiding communication with cryptographic privacy | |
CN101488950B (zh) | 用于因特网的对称密钥分发的方法、设备和系统 | |
CN109361704A (zh) | 云存储数据加密传输方法、系统、设备及存储介质 | |
TWI734854B (zh) | 資訊安全的驗證方法、裝置和系統 | |
US20160192194A1 (en) | Secure way to build internet credit system and protect private information | |
JP2018525947A (ja) | 確認情報更新方法及び装置 | |
TW201939922A (zh) | 可信伺服器的策略部署方法、裝置、系統及計算系統 | |
CN110599342B (zh) | 基于区块链的身份信息的授权方法及装置 | |
CN109819068A (zh) | 用户终端及其区块链域名解析方法 | |
CN109635581A (zh) | 一种数据处理方法、设备、系统及存储介质 | |
KR20090063734A (ko) | 원 타임 패스워드를 사용하는 관리 서버 예약 접속 방법,클라이언트 및 시스템 | |
Carullo et al. | Feeltrust: providing trustworthy communications in ubiquitous mobile environment | |
CN112311769B (zh) | 安全认证的方法、系统、电子设备及介质 | |
Mbarek et al. | Trust-based authentication for smart home systems | |
CN113315624A (zh) | 一种基于多点协作机制的数据安全管理方法及系统 | |
CN111181831B (zh) | 通信数据处理方法和装置、存储介质及电子装置 | |
CN110808974A (zh) | 数据获取方法及装置、计算机装置及存储介质 | |
EP3381166A1 (en) | Systems and methods for cross-channel device binding | |
CN110233839A (zh) | 一种数据处理系统及方法 | |
US11934568B2 (en) | Cable security | |
CN111245600B (zh) | 基于区块链技术的鉴权认证方法和系统 | |
Sharma et al. | Preserving privacy in Internet of Things (IoT)-based devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |