一种dns数据包隐私保护方法

文档序号:9420337阅读:777来源:国知局
一种dns数据包隐私保护方法
【技术领域】
[0001]本发明属于网络技术、信息安全技术领域,具体涉及一种DNS数据包隐私保护方法。
【背景技术】
[0002]在互联网蓬勃发展的今天,互联网用户迅猛增加,各种上层应用层出不穷。域名服务系统(Domain Name System,DNS)作为解析互联网资源名字及互联网资源地址的基础服务,其重要性愈发突出。而作为DNS解析入口的根服务体系,其安全稳定是整个域名解析业务正常高效运作的先决条件。
[0003]DNS是一种将域名映射为某些预定义类型资源记录(如IP地址)的分布式互联网服务系统。作为一种互联网应用层的资源寻址服务,域名服务是其它互联网络应用服务的基础,常见的互联网络应用服务(如Web服务、电子邮件服务、FTP服务等)都以域名服务为基础来实现资源的寻址和定位。
[0004]DNS的原始协议是一种轻量级协议,它不能对服务数据内容提供安全保证;而且DNS数据在互联网上以明文方式进行传输,数据在传输过程中很容易遭到劫持或篡改。由于DNS协议本身不提供数据内容的完整性保护机制,因此接收方无法判别接收到的消息是否遭到篡改及来源是否正确;此外,DNS协议的实现通常以UDP协议为基础,缺乏通信的可靠性保证,这进一步加重了消息被篡改或被伪造的可能性。正是由于DNS协议所暴露出来的以上安全缺陷,促使了 DNSSEC的产生和发展。
[0005]DNSSEC协议是一个针对DNS协议的安全扩展,它通过给DNS的应答消息添加基于非对称加密算法的数字签名,来保证数据未经篡改且来源正确;再通过域名体系自下而上逐级向父域提交自己的公共密钥,来实现整个域名体系的逐级安全认证。具体而言,DNSSEC为DNS数据提供了三方面的安全保障:(I)来源验证:保证DNS应答消息来自被授权的权威服务器;(2)完整性验证:保证DNS应答消息在传输途中未经篡改;(3)否定存在验证:当用户请求一个不存在的域名时,DNS服务器也能够给出包含数字签名的否定应答消息,以保证这个否定应答的可靠性。
[0006]DNSSEC本质上是在域名系统树形授权体系的基础上,再建立一套基于密码学手段的签名/验证体系,也就是信任链体系,通过信任链上的逐级安全验证,来确保DNS查询结果的真实可靠(数据完整性和非否认性)。
[0007]然而,通过互联网进行通信的应用程序也面临信息被偷听、篡改或伪造的威胁,为应对上述威胁,当前互联网数据的传输一般采用传输层安全(Transport Layer Security,TLS)协议,对信道进行加密,来确保数据的完整性、机密性。传输层安全协议使用了数据加密与签名技术,其安全程度的高低取决于其使用的密钥,若私钥被泄漏或公钥被伪造,则所传输数据的安全性将严重削弱甚至完全丧失。
[0008]传输层安全协议利用密钥算法在互联网上提供端点身份认证与通信保密,其基础是数字认证机构(Certificat1n Authority, CA),即通过数字证书来绑定公钥与相关信息(包括所有者的名字、CA名称、公钥的有效期、CA的数字签名等)。数字认证机构会妥善保管其私钥,为TLS服务器签发数字证书,并将其公钥提供给TLS客户端。TLS客户端将数字认证机构的公钥视为“信任锚点”,并以此来验证TLS服务器证书的有效性。验证通过后,TLS服务器与客户端之间就可以进行安全通信了。
[0009]上述公共CA模式虽应用广泛,但仍存在不尽如人意的地方,给信息的安全传输带来隐患。如CA模式允许任何CA为TLS服务器签发数字证书,这会使系统变得脆弱,一旦某个CA违背安全承诺,不管是因为主观原因还是客观原因(如私钥发生泄漏),必将造成该CA签发的所有数字证书失去安全功能。
[0010]基于DNSSEC协议,IETF DANE工作组设计了一种新的DNS资源记录TLSA(TLSA仅是一种资源记录的名称,无其它含义),以使用DNSSEC基础设施来保存TLS协议中用到的数字证书或公钥。DANE协议的核心是:依托DNSSEC基础设施来限制TLS服务器可用的CA范围,从而使区操作员可以声明可供TLS客户端使用的数字签名的范围。假设客户端为Charlie,在其访问example, cn时,可以收到上述TLSA资源记录,并使用上述内容来验证其收到的、来自example, cn的TLS数字证书。若该证书由Bob签发,则有效;否则无效。
[0011 ] DANE协议使用DNSSEC基础设施来保存TLS协议中用到的数字证书或公钥,这使得DANE协议继承了 DNSSEC协议的各种优点。虽然原理与CA模型类似,但它在以下三个方面对传统的CA模型做了改进:
[0012](I)密钥是与DNS中的域名相绑定,而不是与任意的标识符相绑定,以便各类互联网协议使用;
[0013](2)签名后的公钥可以通过DNS系统来获取,客户端只需发送一个普通的DNS请求就可查询到所需的公钥,公钥的分发非常简单;
[0014](3) 一个区(zone)的密钥只能由其父区的密钥来签名,例如,区“example, com”的密钥只能由区com”来签名,而区com”的密钥只能由根密钥来签名。
[0015]虽然DNSSEC提供了对DNS数据进行完成性和来源的验证,且DANE基于DNSSEC提供了一种互联网命名实体的证书管理和验证机制。但DNS仍然是一种明文传输协议,在客户端和递归服务器及递归服务器和权威服务器之间缺乏对传输数据包的加密保护,以最大限度地保障DNS数据的隐私性。

【发明内容】

[0016]本发明针对上述问题,提出一种DNS数据包隐私保护方法,能够保证DNS数据传输的隐私性。
[0017]本发明的一种DNS数据包隐私保护方法,其步骤包括:
[0018]I)客户端、递归服务器和权威服务器生成并维护各自的非对称密钥对;
[0019]2)客户端在发起DNS请求时,将其公钥信息包含在DNS请求数据包中;同理,递归服务器发起DNS请求时,将其公钥信息包含在DNS请求数据包中;
[0020]3) DNS请求发起方将DNS请求数据包用对端服务器公钥进行加密,然后发给对端服务器;
[0021]4)对端服务器用自己的私钥解密接收到的包含DNS请求发起方公钥信息的DNS请求数据包,并对返回的响应数据包以DNS请求数据包包含的公钥进行加密,然后发送给DNS请求发起方;
[0022]5)DNS请求发起方用自己的私钥解密接收到的响应数据包,得到最终查询结果。
[0023]进一步地,所述递归服务器在反向区中维护包含其公钥信息的TLSA资源记录,所述权威服务器在正向区中维护包含其公钥信息的TLSA资源记录。
[0024]进一步地,步骤2)对DNS请求数据包的包头格式进行扩展,以在DNS请求数据包中携带DNS请求发起方的公钥信息,所述扩展包括两个部分:
[0025]a)在保留的字段中增加一个字节的标志位PP,表明这个DNS请求者希望应答者对数据包进行加密,且在Additoanl字段中携带请求者公钥信息;
[0026]b) ARC0UNT置为1,表明在请求数据包中包含一个Addit1nal字段,用于存储请求者公钥信息。
[0027]进一步地,所述请求者公钥信息基于EDNSO格式,携带在请求消息的Addit1nal字段中,所述Addit1nal字段包括:
[0028]OPT1N-CODE:表明存储用户公钥信息的EDNSO选项编号;
[0029]OPT10N-LENGTH:选项长度;
[0030]TYPE:密钥生成算法;
[0031 ] KEY-DATA:公钥数据。
[0032]本发明基于DNS的成熟和标准化协议,提出了一种DNS扩展协议,用于加密客户端与递归服务器、递归服务器与权威服务器之间交互的DNS数据包,能够保证DNS数据传输的隐私性。
【附图说明】
[0033]图1是实施例中扩展的DNS包头示意图。
[0034]图2是携带请求消息的Addit1nal字段中RDATA格式示意图。
[0035]图3是客户端和递归服务器数据包加密流程图。
[0036]图4是递归服务器和权威服务器数据包加密流程图。
【具体实施方式】
[0037]为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
[0038]本发明提出的DNS数据包隐私保护方法,用于加密客户端与递归服务器、递归服务器与权威服务器之间交互的DNS数据包,具体改进之处包括:1.提出基于DANE协议维护DNS服务器(包含递归服务器与权威服务器)的公钥信息;2.客户端自己生成并维护非对称密钥对,在发起DNS请求时,将其公钥信息包含在DNS请求数据包中;同理,递归服务器发起DNS请求时,将其公钥信息包含在DNS请求数据包中;扩展DNS信令消息,使其包含数据包发起方的公钥信息;3.DNS请求数据包用对端服务器公钥进行加密;4.接收到包含公钥信息的DNS请求数据包后,服务器首先用自己的私钥进行解密,并对返回的响应数据包以DNS请求数据包包含的公钥进行加密。
[0039]I) DNS服务器公钥信息维护
[0040]对于递归服务器来说,一般只有IP地址信息;但是对于权威服务器来说,一般具有NS资源记录,标明该服务器的名字。因此,本发明中所用的DNS服务器公钥信息维护可能存在两种情况:在正向区中(如.cn,.com等);在反向区中(如ip6.arpa和in-addr.arpa)。如果服务器有名字,即在正向区中维护包含其公钥信息的TLSA资源记录,如果服务器仅有IP地址,即在反向区中维护包含其公钥信息的TLSA资源记录。
[0041]举例如下:
[0042]A)递归服务器公钥信息维护
[0043]假设某递归服务器的IP地址为1.2.4.8,那么该服务器生成公钥信息后,在in-addr.arpa区中维护如下资源记录:
[0044]_53._udp.8.4.2.1.1n-addr.arpa Lifetime IN TLSA Pub_key-Server
[0045]其中各字段含义如下:
[0046]._53._udp.8.4.2.1.1n-addr.arpa标识这个递归服务器的TLSA记录对应名字,表示地址为1.2.4.8的服务器基于UDP在53端口提供DNS解析服务;
[0047].Lifetime标识这个TLSA记录的有效时间,服务器应该在该记录过期之间及时更新资源记录,本发明不限定该Lifetime的具体时长。此外,对于服务器采用何种方式进行密钥轮转也不予限定;
[0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1