基于隐私保护技术的DNS通信协议

发布者:上海IT外包来源:http://www.lanmon.net点击数:1674

域名系统(DNS)是一种基于Internet的服务,是Internet访问的重要切入点。域名隐私保护是DNS安全的研究热点。本文提出了一种基于用户数据报协议的DNS传输中用户隐私保护的加密方法:DNSDEA。该方法采用PKI加密系统和DNS协议,既解决了域名隐私保护的问题,又兼容传统的DNS系统,保持了DNS系统简单高效的技术特性。
域名系统(DNS)是Internet的重要基础服务之一。它主要通过基于Internet的资源(如域名和Internet协议地址(IP))之间的映射和转换来识别和定位Internet上的服务器和服务。 DNS是一种相对成熟的全球分布式数据库,可为Internet提供高效,稳定的Internet身份解析服务。
1983年,Mockapetris提出了一种DNS架构,然后不断发展和优化。在设计之初,域名系统没有考虑域名协议中的完整安全机制。 1999年,提出了域名系统安全扩展(DNSSEC),可以有效降低中间人攻击的风险,保证DNS传输数据的完整性,从而提高DNS系统的安全服务能力。 2010年,互联网域名的根服务开始部署DNSSEC服务,标志着域名服务开始向安全服务方向发展。 DNS也从简单的名称转换服务演变为复杂且可信赖的解析服务。传输层安全协议DANE(基于DNS的命名实体的身份验证)是基于DNSSEC协议通过DNS服务释放数字证书,以确保证书来自特定的证书颁发机构。
随着互联网普及率的不断提高以及生产和生活的不断渗透,人们越来越依赖互联网。当前的互联网不仅是获取和共享信息的一种方式,而且已成为最传统的方式。行业业务系统的基本载体,因此隐私问题已成为互联网亟待解决的重要问题。 DNS主要使用用户数据报协议(UDP)协议进行明文传输以进行地址转换。尽管DNSSEC协议提高了数据篡改的难度,但它仍然以明文形式提供解析服务。作为基于Internet的服务,DNS仍然容易受到用户隐私保护。目前,DNS安全命题确实解决得较少,隐私问题已成为业界关注的焦点,并逐渐受到关注。一方面,业界使用查询最小化方法来降低隐私盗窃的风险,并使用数据最小化原则来减少DNS权威服务以收集个人隐私信息;另一方面,DNS解析服务过程中的隐私泄漏。问题在于,互联网工程任务组(IETF)于2014年建立了DNS私有交换(DPRIVE)工作组,以讨论和开发DNS隐私保护协议,希望通过数据加密传输实现DNS隐私保护。基于此背景,本文提出了一种基于UDP的DNS传输中用户隐私保护的加密方法。研究现状
目前,大多数DNS服务和终端之间的数据交换(主要包括请求和反馈)是以明文和非加密方式进行的,这将导致用户隐私暴露于互联网通信,其隐私漏洞将被使用例如,黑客可以收集用户访问(查询时间,访问内容,用户IP地址等)等信息以及其他信息来分析用户习惯。针对此问题,目前有两种主要方法可以在DNS查询期间保护用户隐私。
DNS数据包加密
Dempsky提出了DNSCurve方法,该方法基于现有的DNS架构,并使用Curve25519交换密钥,并在客户端和服务器端提供身份验证和数据加密。服务器的公钥存储在“NS”记录中并发送给客户端。因此,使用DNSCurve加密DNS消息不会带来额外的查询延迟。 DNSCrypt是众所周知的DNSCurve实现,已广泛部署在OpenDNS服务上,以解决最终用户的隐私保护问题。类似的ConfidentialDNS还使用DNS扩展机制为DNS协议添加加密。它提出了一种新的资源记录类型“ENCRYPT”,用于将DNS服务器的公钥传输到客户端。然后,客户端使用服务器公钥来加密DNS查询请求和用于加密DNS响应的客户端公钥,从而加密DNS请求和反馈数据。虽然这两种方案可以有效地解决DNS明文传输引起的漏洞问题,但有必要在DNS通信的两端部署插件(或升级解析软件),以实现DNS通信的目标。明文到密文。大,所以目前使用并不广泛。
DNS通信链路加密
TLS(传输层安全性)是一种安全协议,为网络通信提供数据隐私和完整性。它加密传输层的网络连接。当今TLS最常见的应用之一是HTTPS协议,它使用公钥加密来验证网站并使用对称加密对数据传输进行加密。 TLS要求TCP协议以确保信道的可靠传输。它不能直接用于加密和保护UDP协议的数据。如果DNS想要使用TLS加密来保护数据,则必须使用TCP协议。但是,目前的情况是大多数DNS查询都使用UDP协议。切换到TCP协议是一个长期过程,成本很高。因此,在此阶段,DNS-over-TLS不是可行的隐私保护解决方案。DTLS(数据报传输层安全性)分组传输层安全协议是TLS架构中提出的支持UDP协议的扩展。 DTLS可以直接加密UDP协议的DNS查询消息。 IETF草案提出的DNS-over-DTLS详细描述了如何使用DTLS技术加密DNS消息。
DNS-over-TLS和DNS-over-DTLS使用Internet标准协议TLS和DTLS进行DNS密文通信。这两种方法都使用TLS协议进行DNS改进,但这种方法需要在通信之前建立一系列复杂的网络通信,如握手和认证,对于访问量大且开销相对较小的DNS服务来说,它更高。网络开销和性能要求。
上述两种方法都对延迟敏感,高吞吐量的基于因特网的服务DNS构成了巨大挑战。
DNS密文通信方法
提出了一种新的DNS加密通信方法(DNSDEA)。该方法在现有的DNS架构和分组格式中使用非对称加密算法的密文通信。客户端的公钥通过DNS查询传输,以减少基于TLS等建立链路的开销,并减少查询延迟。同时,使用其无状态功能来提高服务器的并发性。
消息结构
1)加密的标记位。要标记DNS数据包是否为加密数据包,请将DNS数据包标头后的第一个字节定位为加密标志。对于正常的未加密DNS消息,此字节表示查询域名的第一个段的长度。根据Internet协议(请求注释,RFC),长度应小于64.字节扩展到加密标志。如果字节小于64,则DNS数据包是非加密数据包。如果它大于64,则该数据包是加密数据包。
2)密钥格式。 DNSDEA使用非对称加密在DNS终端和DNS服务器上生成通信密钥对(包括公钥和私钥)。 DNS服务器的公钥通过现有的证书颁发机构基础结构进行通告,使用DNS服务器的客户端需要手动配置公钥。 DNS客户端使用的密钥在查询过冲中临时生成。 DNS客户端密钥可以在一段时间内重用,同时考虑查询效率等因素。客户端的公钥由客户端以EDNS0格式添加到DNS数据包的附加部分中,并通过DNS查询发送到DNS服务器。具体格式如图1所示。
基于隐私保护技术的DNS通信协议
图1 EDNS0格式传输PKI公钥
密钥的具体内容存储在上述选项数据中,前两个字节是算法标记位,用于标识密钥使用的加密算法,后两个字节是保留标识符位,最后一个是特定的。公钥数据。具体格式如图2所示。
基于隐私保护技术的DNS通信协议
图2密钥格式
3)秘密消息格式。加密的DNS数据包的标头与普通的DNS数据包相同。标头之后的第一个字节是加密标志。标记位后面的两个字节是加密数据的长度,最后一部分是加密数据。具体格式如图3所示。
基于隐私保护技术的DNS通信协议
图3加密的DNS数据包格式
加密查询方法
使用DNSDEA方法时,DNS终端需要手动配置DNS服务器的公钥。 PKI系统可以验证服务器的公钥。当DNS终端向DNS服务器发送查询请求时,DNS服务器的公钥用于加密请求资源记录(RRset),DNS终端的公钥被制成RRset,公钥为DNS服务器用于加密DNS记录以生成DNS。分组格式数据被发送到DNS服务器。
DNS终端将根据DNS协议的要求将生成的DNS查询消息发送给DNS服务器。 DNS服务器使用自己的私钥解密和恢复待查询的域名记录和DNS终端的公钥信息,并根据DNS查询逻辑查找查询。结果,恢复的DNS终端公钥用于加密查询结果并将其发送到DNS终端。
在接收到响应消息之后,DNS终端使用其私钥信息解密响应消息的响应资源记录(RRset),并根据DNS协议对其进行处理。
具体过程如图4所示。以www.example.com查询为例,加密查询方法主要分为以下几个步骤:(1)服务器通过PKI发布公钥,手动发送客户端配置服务器公钥; (2)客户端生成密钥对; (3)客户端构造www.example.com的查询包,将客户端的公钥添加到查询包的附加段,并使用服务器公钥对查询包进行加密,然后将查询包发送给服务器; (4)服务器接收到加密的查询包,使用服务器私钥解密,获取DNS查询内容和客户端公钥; (5)服务器构造www.example.com的响应包,并在用客户端的公钥加密后,将响应包发送给客户端; (6)客户端接收加密的响应数据包,使用客户端私钥对其进行解密,并获取www.example.com的响应内容。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部