域名解析代理方法和装置\n技术领域\n[0001] 本发明涉及网络安全领域,具体而言,涉及一种域名解析代理方法和装置。\n背景技术\n[0002] 域名解析广泛应用于网络通信中。目前通常采用的域名解析方法如下:1)客户端向DNS(Domain Name System,域名管理系统)服务器发送域名解析请求;2)DNS服务器对域名进行解析;3)DNS服务器将解析结果发回到客户端;以及4)客户端从该结果中选择一个IP地址进行访问。\n[0003] DNS基础协议在域名解析过程中采用UDP(User DatagramProtocol,用户数据报协议)来传输客户端发出的域名解析请求和DNS服务器对该域名解析请求的响应。\n[0004] 在实现本发明的过程中,发明人发现,由于UDP协议不对传输的信息进行加密,所以在客户端向DNS服务器发送域名查询请求的过程中以及DNS服务器将解析结果发回客户端的过程中信息容易被篡改,从而使得域名被劫持指向非目标地址。\n发明内容\n[0005] 本发明提供了一种域名解析代理方法和装置,能够解决相关技术中域名被劫持指向非目标地址的技术问题。\n[0006] 根据本发明的一个方面,提供了一种域名解析代理方法,包括:接收客户端的域名解析请求并将该请求转发到可解析该域名的多个服务器;从多个服务器分别接收解析结果,并判断该多个解析结果是否有交集;以及当多个解析结果没有交集时,向客户端发送提示信息。\n[0007] 优选地,当多个解析结果有交集时,将该交集作为域名解析结果返回客户端。\n[0008] 优选地,将该交集作为域名解析结果返回客户端具体包括:对该交集进行预处理以选择离客户端路由最近的IP地址;以及将最近的IP地址作为域名解析结果返回客户端。\n[0009] 优选地,接收客户端的域名解析请求并将请求转发到可解析该域名的多个服务器具体包括:接收客户端的域名解析请求;将该请求转发到根名字服务器;从根名字服务器接收可解析该域名的服务器列表;以及将该请求转发到服务器列表中的多个服务器。\n[0010] 优选地,在接收客户端的域名解析请求并将该请求转发到可解析该域名的多个服务器之前还包括:设置该多个服务器的个数;以及分别设置每个服务器的地址。\n[0011] 优选地,向客户端发送提示信息具体包括:提示域名可能被劫持;以及询问客户端是否继续访问该域名,其中,当客户端选择不继续访问该域名时,浏览器跳转到空白页面或客户端的默认主页面。\n[0012] 优选地,当客户端选择继续访问该域名时,将多个解析结果返回客户端。\n[0013] 优选地,将多个解析结果返回客户端具体包括:对多个解析结果进行预处理以选择离客户端路由最近的IP地址;以及将最近的IP地址作为域名解析结果返回客户端。\n[0014] 根据本发明的另一方面,还提供了一种域名解析代理装置,包括:接收和转发模块,用于接收客户端的域名解析请求并将该请求转发到可解析该域名的多个服务器;判断模块,用于从该多个服务器分别接收解析结果,并判断该多个解析结果是否有交集;以及发送模块,用于在该多个解析结果没有交集时向客户端发送提示信息,或者在多个解析结果有交集时,将该交集作为域名解析结果发送到客户端。\n[0015] 优选地,接收和转发模块包括:接收单元,用于接收客户端的域名解析请求;第一转发单元,用于将该请求转发到根名字服务器;接收单元,用于从该根名字服务器接收可解析该域名的服务器列表;以及第二转发单元,用于将该请求转发到服务器列表中的多个服务器。\n[0016] 在本发明实施例中,通过向多个DNS服务器查询域名,并对该多个查询结果进行比较,从而可以发现在传输过程中信息是否被篡改,所以克服了相关技术中域名解析过程中被劫持访问非目标地址的问题,进而达到提高安全性能的技术效果。\n附图说明\n[0017] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:\n[0018] 图1示出了根据本发明实施例的域名解析代理方法的流程图;\n[0019] 图2示出了根据本发明另一实施例的域名解析代理装置的方框图;以及[0020] 图3示出了利用图2所示的域名解析代理装置进行域名解析的示意图。\n具体实施方式\n[0021] 下面将参考附图并结合实施例,来详细说明本发明。\n[0022] 图1示出了根据本发明实施例的域名解析代理方法的流程图。\n[0023] 参照图1,根据本发明实施例的域名解析代理方法包括:\n[0024] 步骤S102,接收客户端的域名解析请求并将该请求转发到可解析该域名的多个服务器;\n[0025] 步骤S104,从多个服务器分别接收解析结果,并判断该多个解析结果是否有交集;\n以及\n[0026] 步骤S106,当多个解析结果没有交集时,向客户端发送提示信息。\n[0027] 根据本实施例的域名解析代理方法在接收到客户端发来的DNS解析请求时,将该DNS解析请求分别发送到多个不同的DNS服务器以进行解析,并对该多个DNS服务器的解析结果进行比较,如果比较结果是该多个DNS服务器的解析结果没有交集,则对客户端发起该域名可能被劫持的提醒。例如,假如在客户端的DNS解析过程中黑客篡改了某一路DNS解析信息,则返回的该路DNS解析结果必然与另外几路DNS解析信息没有交集,此时根据本发明的域名解析代理方法将对客户端发送该域名可能被劫持的提醒,从而达到避免域名被劫持指向非目标地址的目的。\n[0028] 另外,在网络通信中也存在黑客利用DNS服务器的漏洞直接修改DNS服务器的区域文件中的信息以导致在客户端查询此DNS服务器时获取到错误的地址信息,即,DNS缓冲区污染的可能。例如,假如在客户端的DNS解析过程中黑客攻击了某一个DNS服务器并修改了该DNS服务器中的地址信息,则经该DNS服务器解析并返回的DNS解析结果必然与另外几个DNS服务器返回的DNS解析信息没有交集,此时根据本发明的域名解析代理方法将对客户端发送该域名可能被劫持的提醒,从而达到避免域名被劫持指向非目标地址的目的。\n[0029] 另外,由于域名劫持和DNS缓冲区污染对客户端和DNS服务器来说均符合域名解析协议,所以仅通过协议分析是无法发现的,因此,根据本实施例的域名解析代理方法还克服了协议分析所存在的无法查觉域名劫持和DNS缓冲区污染的局限。\n[0030] 因此,根据本实施例的域名解析方法可以实现避免客户端在不知情的情况下被劫持以访问非目标地址的技术效果。\n[0031] 优选地,当多个解析结果有交集时,将该交集作为域名解析结果返回客户端。\n[0032] 当该多个DNS服务器返回的多个解析结果有交集时,除非黑客同时成功地劫持了发给每个DNS的解析请求或每个DNS返回的解析信息,或者是攻击了所选定的所有DNS服务器,否则该交集均应该对应客户端的正确目标访问地址。可选地,也可以将该多个DNS服务器的多个解析结果全部返回给客户端。\n[0033] 优选地,将该交集作为域名解析结果返回客户端具体包括:对该交集进行预处理以选择离客户端路由最近的IP地址;以及将最近的IP地址作为域名解析结果返回客户端。\n[0034] 由于该交集可能是多个IP地址,所以可以根据客户端的源IP地址来从该多个IP地址中查找出距离客户端路由最近的服务器地址来返回给客户端,以使客户端在访问该域名时速度最快,以实现更好的用户体验。\n[0035] 优选地,接收客户端的域名解析请求并将请求转发到可解析该域名的多个服务器具体包括:接收客户端的域名解析请求;将该请求转发到根名字服务器;从根名字服务器接收可解析该域名的服务器列表;以及将该请求转发到服务器列表中的多个服务器。\n[0036] 由于并非每个DNS服务器均能解析所有的域名,所以可以设置根名称服务器来列出能够解析该域名的服务器以供选择,然后从该服务器列表中随机选择出需要的个数的服务器来对该域名进行解析。通过这种方式,还可以动态地改变进行域名解析的DNS服务器,从而进一步降低被劫持的风险。当然,在将该请求转发到根名字服务器的同时,也可以直接将该请求转发到可解析该请求的多个DNS服务器。\n[0037] 优选地,在接收客户端的域名解析请求并将该请求转发到可解析该域名的多个服务器之前还包括:设置该多个服务器的个数;以及分别设置每个服务器的地址。\n[0038] 从理论上来说,在根据本实施例的域名解析代理方法中使用较多的DNS服务器来进行域名解析将越能够减少在域名解析过程中被劫持的风险。但在实际的网络通信中,增加查询的DNS服务器的数量一方面将增加客户端等待的时间,另一方面将增大网络的负载,所以通常将该多个DNS服务器的个数设置为两个或三个以达到各方面要求的平衡。另外,设置服务器地址时可设置多个配置严密、及时升级服务器补丁,安全级别较高的服务器,以防止被黑客攻破。\n[0039] 可选地,在该两个或三个DNS服务器中,包括目前公认的安全级别较高的OpenDNS服务器。\n[0040] 优选地,向客户端发送提示信息具体包括:提示域名可能被劫持;以及询问客户端是否继续访问该域名,其中,当客户端选择不继续访问该域名时,浏览器跳转到空白页面或客户端的默认主页面,以及当客户端选择继续访问该域名时,将多个解析结果返回客户端。\n[0041] 当客户端的判断结果与根据本实施例的域名解析代理方法的判断结果不一致时,客户端可以再次发出对该域名的域名解析请求以继续访问该域名,以达到使用户能够更自由灵活地进行选择的效果。可选地,显示该提示信息的方式可以是修改域名解析结果以使浏览器指向预定的错误提示页面,也可以是诸如弹出对话框的其它形式。\n[0042] 优选地,将多个解析结果返回客户端具体包括:对多个解析结果进行预处理以选择离客户端路由最近的IP地址;以及将最近的IP地址作为域名解析结果返回客户端。\n[0043] 由于该多个解析结果的数量可能较多,所以可以根据客户端的源IP地址来从该多个IP地址中查找出距离客户端路由最近的服务器地址来返回给客户端,以使客户端在访问该域名时速度最快,以达到更好的用户体验的效果。\n[0044] 优选地,根据本实施例的域名解析代理方法可以选择性地配置需要进行域名解析代理的几个域名以有针对性的进行域名保护,通常选择对安全性要求较高的网站域名来进行域名保护,例如,银行网站,这样能够避免在客户端访问每个域名时均进行多个DNS服务器查询造成的延迟和网络拥塞又能够尽可能的保证用户的利益。\n[0045] 另外,如果选择性地配置了需要进行域名解析代理的域名,则可以在客户端启动时,自动将选择进行域名解析代理的域名的解析请求发送到配置的多个DNS服务器,并根据该多个DNS服务器返回的解析结果来判断该域名是否被劫持,然后保存该判断结果。当客户端访问该域名时,根据该判断结果将不同的结果返回给客户端。应当注意,也可以设置为对选择的域名每隔固定时间(例如,1小时、2小时)自动执行该自动域名解析代理步骤以更新该判断结果,从而减少域名解析代理的时间以给用户最好的体验效果。\n[0046] 在本实施例中,通过向多个DNS服务器查询域名,并对该多个查询结果进行比较,从而可以发现在传输过程中信息是否被篡改,所以克服了相关技术中客户端在域名解析过程中被迫访问非目标地址的问题,进而达到提高安全性能的技术效果。\n[0047] 图2示出了根据本发明另一实施例的域名解析代理装置200的方框图。\n[0048] 根据本发明的域名解析代理装置200可以安装于网关或客户端的防火墙中。\n[0049] 参照图2,根据本发明另一实施例的域名解析代理装置200包括:接收和转发模块\n202,用于接收客户端的域名解析请求并将该请求转发到可解析该域名的多个服务器;判断模块204,用于从该多个服务器分别接收解析结果,并判断该多个解析结果是否有交集;以及发送模块206,用于在该多个解析结果没有交集时向客户端发送提示信息,或者在多个解析结果有交集时,将该交集作为域名解析结果发送到客户端。\n[0050] 根据本实施例的域名解析代理装置200在接收到客户端发来的DNS解析请求时,将该DNS解析请求分别发送到多个不同的DNS服务器以进行解析,并对该多个DNS服务器的解析结果进行比较,然后根据比较结果来判断该域名是否被篡改并对客户端发起提醒。\n当该多个DNS服务器返回的多个解析结果有交集时,除非黑客同时成功地劫持了发给每个DNS的解析请求或每个DNS返回的解析信息,或者是攻击了所选定的所有DNS服务器,否则该交集均应该对应客户端的目标访问地址,所以返回该交集作为DNS解析结果返回给客户端。假如在客户端的DNS解析过程中黑客篡改了某一路DNS解析信息,则返回的该路DNS解析结果必然与另外几路DNS解析信息没有交集,此时根据本发明的域名解析代理装置将对客户端发送该域名可能被劫持的提醒,从而达到避免域名被劫持指向非目标地址的目的。\n[0051] 另外,在网络通信中也存在黑客利用DNS服务器的漏洞直接修改DNS服务器的区域文件中的信息以导致在客户端查询此DNS服务器时获取到错误的IP地址信息,即,DNS缓冲区污染的可能。例如,假如在客户端的DNS解析过程中黑客攻击了某一个DNS服务器并修改了该DNS服务器中的地址信息,则经该DNS服务器解析并返回的DNS解析结果必然与另外几个DNS服务器返回的DNS解析信息没有交集,此时根据本发明的域名解析代理装置将对客户端发送该域名可能被劫持的提醒,从而达到避免域名被劫持指向非目标地址的目的。\n[0052] 因此,根据本实施例的域名解析装置可以实现避免客户端在不知情的情况下被劫持以访问非目标地址的技术效果。\n[0053] 优选地,接收和转发模块202包括:接收单元,用于接收客户端的域名解析请求;\n第一转发单元,用于将该请求转发到根名字服务器;接收单元,用于从该根名字服务器接收可解析该域名的服务器列表;以及第二转发单元,用于将该请求转发到服务器列表中的多个服务器。\n[0054] 由于并非每个DNS服务器均能解析所有的域名,所以可以设置根名称服务器来列出能够解析该域名的服务器以供选择,然后从该服务器列表中随机选择出需要的个数的服务器来对该域名进行解析。通过这种方式,还可以动态地改变进行域名解析的DNS服务器,从而进一步降低被劫持的风险。\n[0055] 可选地,该域名解析代理装置还可以包括:设置模块,用于设置该多个服务器的个数以及分别设置每个服务器的地址。\n[0056] 从理论上来说,在根据本实施例的域名解析代理方法中使用较多的DNS服务器来进行域名解析将越能够减少在域名解析过程中被劫持的风险。但在实际的网络通信中,增加查询的DNS服务器的数量一方面将增加客户端等待的时间,另一方面将增大网络的负载,所以通常将该多个DNS服务器的个数设置为两个或三个以达到各方面要求的平衡。另外,设置服务器地址时可设置多个配置严密、及时升级服务器补丁,安全级别较高的服务器,以防止被黑客攻破。\n[0057] 另外,可选地,在该两个或三个DNS服务器中,包括目前公认安全级别较高的OpenDNS服务器。\n[0058] 例如,当某小区网络中心需要对指定的银行网站和重要的政府网站增加一道防火墙以防止域名劫持或DNS缓冲区污染导致小区宽带用户被诱骗到非法网站时,采用根据本实施例的域名解析代理装置,小区网络中心仅需要配置需要保护的网络域名和DNS要服务器地址(可配置多个)就能够实现保护。当发生域名劫持或DNS缓冲区污染时,小区宽带用户访问被保护的域名时,将得到域名劫持或DNS缓冲区污染的提醒。此时用户可以选择继续访问该域名或离开。\n[0059] 根据本实施例的域名解析代理装置通过向多个DNS服务器查询域名,并对该多个查询结果进行比较,从而可以发现在传输过程中信息是否被篡改,所以克服了相关技术中客户端在域名解析过程中被迫访问非目标地址的问题,进而达到提高安全性能的技术效果。\n[0060] 图3示出了利用图2所示的域名解析代理装置进行域名解析的示意图。\n[0061] 如图3所示,利用图2所示的域名解析代理装置200进行域名解析的过程如下:\n[0062] 步骤S302,当客户端想要访问某一网站(www.XXXX.com.cn)时,首先发送对www.XXXX.com.cn的DNS查询请求;\n[0063] 步骤S304,域名解析装置200同时向根名字服务器和OpenDNS服务器发送查询请求;\n[0064] 步骤S306,根名字服务器返回可以解析www.XXXX.com.cn的服务器列表;\n[0065] 步骤S308,域名解析代理装置200选择列表中的两个服务器1和服务器2同时发送DNS查询请求;\n[0066] 步骤S310,域名解析代理装置200接收来自服务器1、服务器2、以及OpenDNS服务器的查询响应X1、X2、X3;以及\n[0067] 步骤S312,域名解析代理装置200比较X1、X2、X3三者是否有交集,如果有交集,则认为响应正常,否则修改响应结果,使其指向一个预先定义好的错误提醒页面。\n[0068] 在本实施例中,通过向三个DNS服务器查询域名,并对该多个查询结果进行比较,从而可以发现在传输过程中信息是否被篡改,进而达到提高安全性能的技术效果。\n[0069] 从以上的描述中,可以看出,本发明上述的实施例实现了如下技术效果:通过向多个DNS服务器查询域名,并对该多个查询结果进行比较,从而可以发现在域名解析过程中是否有域名劫持或是DNS缓冲区污染的现象,所以克服了相关技术中域名被劫持以访问非目标地址的问题,进而达到提高安全性能的技术效果。\n[0070] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。\n[0071] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2022-01-25
专利权的转移
登记生效日: 2022.01.12
专利权人由山石网科通信技术股份有限公司变更为山石网科通信技术股份有限公司
地址由215163 江苏省苏州市高新区景润路181号变更为215163 江苏省苏州市高新区景润路181号
专利权人变更为精壹致远(武汉)信息技术有限公司
- 2019-04-19
专利权人的姓名或者名称、地址的变更
专利权人由山石网科通信技术有限公司变更为山石网科通信技术股份有限公司
地址由215163 江苏省苏州市苏州高新技术产业开发区科灵路78号苏高新软件园7号楼3层变更为215163 江苏省苏州市高新区景润路181号
- 2014-01-15
专利权的转移
登记生效日: 2013.12.19
专利权人由山石网科通信技术(北京)有限公司变更为山石网科通信技术有限公司
地址由100085 北京市海淀区上地七街1号汇众大厦3层变更为215163 江苏省苏州市苏州高新技术产业开发区科灵路78号苏高新软件园7号楼3层
- 2012-07-18
- 2012-05-23
专利实施许可合同备案的生效
IPC(主分类): H04L 29/06
合同备案号: 2012990000129
专利申请号: 200910081569.4
申请日: 2009.04.13
让与人: 山石网科通信技术(北京)有限公司
受让人: 苏州山石网络有限公司
发明名称: 域名解析代理方法和装置
申请公布日: 2010.02.03
许可种类: 独占许可
备案日期: 2012.03.26
- 2010-03-24
- 2010-02-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-11-23
|
2004-05-21
| | |
2
| |
2007-04-18
|
2005-10-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |