一种保证安全和隐私的dns端到端解析方法

文档序号:9600856阅读:323来源:国知局
一种保证安全和隐私的dns端到端解析方法
【技术领域】
[0001]本发明属于DNS安全防范技术领域,尤其涉及一种保证安全和隐私的DNS端到端解析方法。
【背景技术】
[0002]DNS为互联网提供重要的服务,其本质是建立了人的名字世界和底层的二进制协议地址世界之间的桥梁。DNS解析框架是一个使用UDP协议并通过地理分布的具有缓存功能的递归解析器来实现。其基本流程如图1所示:用户发出一个域名的DNS请求到本地ISP的递归解析器(Recursive Resolver) 0如果本地的递归服务器缓存了这个DNS请求条目,则递归服务器直接向用户返回DNS相应消息。如果本地的递归服务器没有缓存这个DNS请求消息,则本地的递归服务器从根服务器开始,根据所返回的信息,一级一级地递归查询所请求的域名。最终查找到所要查询的DNS信息。递归服务器将返回的DNS查询结果存储到自己的缓存中,同时将结果返回给用户。这样一个完整的DNS查询过程就完成了。
[0003]但是在这个过程中存在着许多的安全和隐私方面的问题。首先从用户到递归服务器这一段。由于DNS查询中包含着用户的地址和期望查询的内容。窃听者就很容易地窃听到这些信息。其次,存在一些网络设备基于经济上的原因,蓄意地阻断、捕获或修改DNS的流量,如一些旅馆的WiFi系统、用户的ISP等。由于DNS通过UDP传输的无状态特性,用户无法辨别这些信息的真伪。在递归解析器到名字服务器这一段中,由于DNS请求是通过递归服务器发送的,所以监听者无法获知DNS请求真正来源于哪一个用户,所以就不存在隐私泄露问题。但是注入攻击(如Kaminsky攻击)会向递归服务器缓存中注入虚假的域名信息,使得用户从递归服务器缓存中获得的DNS数据不是他真正需要的,用户可能访问攻击者的地址。
[0004]针对DNS的隐私问题提出了许多解决方案,如DNS over TCP和DNS over HTTP⑶,但这些方案的缺点是客户端和解析侧之间需要建立TCP连接,TCP连接的建立需要较长的时延和维护状态信息的开销。特别是从递归解析侧到权威名字服务器这一侧,由于较长的RTT值,带来的时延更显著。DNSSEC协议通过加密机制能够保证用户得到的数据的真实性和完整性,避免注入攻击带来的安全问题。但是DNSSEC消息需要更强的计算能力来处理开销,这对普通的终端设备,特别是如一些智能手机设备是接受不了的。

【发明内容】

[0005]为了解决传统的DNS协议通过UDP传输DNS消息时所存在的安全和隐私泄露的问题,本发明提出了一种保证安全和隐私的DNS端到端解析方法,包括:
[0006]步骤1、首先在客户端操作系统的配置文件中配置递归服务器的地址;
[0007]步骤2、当客户端发送DNS查询消息后,DNS消息将首先被发送到本机的127.X.X.X的地址上,客户端代理进程接收到DNS查询消息;
[0008]步骤3、客户端代理负责同递归服务器的代理建立HTTP或HTTPS连接;
[0009]步骤4、如果递归服务器的代理不支持安全机制,则使用递归服务器的80端口建立TCP连接;如果服务器支持HTTP或HTTPS,则使用服务器的443端口建立TCP连接;
[0010]步骤5、客户端采用POST的交互方式向递归服务器发送数据,DNS消息以二进制内容通过HTTP或HTTPS发送到递归服务器代理;
[0011]步骤6、当递归服务器代理接收到DNS消息后,会将DNS消息转交给递归服务器的53 端口;
[0012]步骤7、当从递归服务器获取DNS的响应消息后,采用跟DNS请求消息相反的过程将DNS响应消息发送到客户端;
[0013]步骤8、当递归服务器的缓存中不存在DNS查询的信息时,递归服务器向权威服务器发送DNS请求;递归服务器在DNS查询中设置“D0”标记位,表示支持DNSSEC协议。
[0014]所述递归服务器代理通过Ngnix或Apache配置HTTP或HTTPS服务器。
[0015]所述递归服务器通过BIND或PowerDNS或Unbound的开源DNS软件搭建。
[0016]所述递归服务器与客户端之间设置UDP或TCP的DNS请求机制,用于HTTP或HTTPS的客户端代理或递归服务器代理因处理能力或各种故障导致不工作时的备用保障机制。
[0017]本发明的有益效果在于:能够提供完整的端到端的DNS查询方案,在解析过程中有针对性的解决的DNS查询的安全和隐私保护问题。在客户端和递归服务器之间为避免隐私泄露和DNS劫持等问题,采用HTTP (S)传输DNS消息,TLS (Transport Layer Security)能够进一步保护DNS消息的隐私性。且可以利用HTTP(S)已有的优化方案来改善TCP的性能和传输性能。在递归服务器和权威服务器中引入DNSSEC机制能够有效避免DNS消息的注入攻击,保证了 DNS信息的完整性和真实性。不同于之前的方案(如基于JS0N编码的方案),本发明提出通过传输二进制码的形式直接传输DNS消息。同其它的方案相比,本发明的效率更高,实现起来更加简单。
【附图说明】
[0018]图1为DNS解析流程图;
[0019]图2为本发明的端到端的DNS解析结构图;
[0020]图3为本发明的基于HTTP或HTTPS的DNS实现机制示意图。
【具体实施方式】
[0021]下面结合附图,对实施例作详细说明。
[0022]如图2所示,本发明提出在用户到递归服务器通过HTTP(S)协议来保证安全和隐私;在从递归服务器到权威名字服务器通过DNSSEC来保证数据的安全。以一个域名www.example, com的A类型查询为例,说明DNS端到端的解析方案的工作流程。
[0023]客户端向127.X.X.X的地址上发送域名为www.example, com的A类型的查询请求。本地的客户代理接收到DNS消息后,同递归服务器的代理建立HTTP或HTTPS的连接。连接建立好后,可以通过HTTP (S)的PUSH方式将DNS消息以二进制码的形式发送到递归服务器代理。如果通过HTTP协议发送,则权威服务器代理的端口是80 ;如果是通过HTTPS协议发送,则权威服务器代理的端口是443。递归服务器代理接收到DNS消息后,将DNS消息内容转交给递归服务器的53端口。
[0024]递归服务器接受到DNS消息,按照正常的递归服务器流程处理该DNS消息。首先它查询递归服务的本地缓存,如果本地缓存中存在客户请求的DNS内容,则不必再查询权威名字服务器。当本地缓存中不存在用户请求的DNS内容时,递归服务器设置“D0”位,并向权威服务器发送DNS递归请求。权威名字服务器的响应消息中包含权威的DNS资源记录和DNSSEC相关的资源记录。当这些资源记录信息发送到递归服务器后,递归服务器负责基于DNSSEC的消息验证机制。如果通过DNSSEC验证,则证明得到的数据满足真实性和完整性。然后递归服务器负责将数据传输到HTTP (S)递归服务器代理,再通过HTTP (S)将数据传送到客户端。
[0025]此实施例仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【主权项】
1.一种保证安全和隐私的DNS端到端解析方法,其特征在于,包括: 步骤1、首先在客户端操作系统的配置文件中配置递归服务器的地址; 步骤2、当客户端发送DNS查询消息后,DNS消息将首先被发送到本机的127.X.X.X的地址上,客户端代理进程接收到DNS查询消息; 步骤3、客户端代理负责同递归服务器的代理建立HTTP或HTTPS连接; 步骤4、如果递归服务器的代理不支持安全机制,则使用递归服务器的80端口建立TCP连接;如果服务器支持HTTP或HTTPS,则使用服务器的443端口建立TCP连接; 步骤5、客户端采用POST的交互方式向递归服务器发送数据,DNS消息以二进制内容通过HTTP或HTTPS发送到递归服务器代理; 步骤6、当递归服务器代理接收到DNS消息后,会将DNS消息转交给递归服务器的53端P ; 步骤7、当从递归服务器获取DNS的响应消息后,采用跟DNS请求消息相反的过程将DNS响应消息发送到客户端; 步骤8、当递归服务器的缓存中不存在DNS查询的信息时,递归服务器向权威服务器发送DNS请求;递归服务器在DNS查询中设置“DO”标记位,表示支持DNSSEC协议。2.根据权利要求1所述方法,其特征在于,所述递归服务器代理通过Ngnix或Apache配置HTTP或HTTPS服务器。3.根据权利要求1所述方法,其特征在于,所述递归服务器通过BIND或PowerDNS或Unbound的开源DNS软件搭建。4.根据权利要求1所述方法,其特征在于,所述递归服务器与客户端之间设置UDP或TCP的DNS请求机制,用于HTTP或HTTPS的客户端代理或递归服务器代理因处理能力或各种故障导致不工作时的备用保障机制。
【专利摘要】本发明属于DNS安全防范技术领域,尤其涉及一种保证安全和隐私的DNS端到端解析方法,包括:客户端操作系统的配置文件中配置递归服务器的地址;客户端发送DNS查询消息到本机的127.X.X.X的地址上,客户端代理进程接收并同递归服务器的代理建立HTTP或HTTPS连接;客户端采用POST的交互方式向递归服务器发送数据,DNS消息以二进制内容通过HTTP或HTTPS发送到递归服务器代理;当从递归服务器获取DNS的响应消息后,采用跟DNS请求消息相反的过程将DNS响应消息发送到客户端;当递归服务器的缓存中不存在DNS查询的信息时,递归服务器通过DNSSEC向权威服务器发送DNS请求。
【IPC分类】H04L29/06
【公开号】CN105357212
【申请号】CN201510819260
【发明人】宋林健, 刘 东, 万润夏, 李震, 宋松, 余冬, 王爱民, 潘居臣, 龚道彪
【申请人】北京天地互连信息技术有限公司, 中国石油天然气股份有限公司华北油田分公司
【公开日】2016年2月24日
【申请日】2015年11月23日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1