DNS本身是一个不安全的系统,因为信息以简单、未加密的文本传输。众所周知,DNS请求通过包含不同服务器的分层系统:“递归解析器”、“根名称服务器”、"TLD名称服务器“和”权威名称服务器“。但随着DNS over TLS和DNS over HTTPS的出现,整个体系结构(体系结构本身)是否发生了重大变化?我这么说是因为我不知道DNS服务器此时是否能够处理加密的请求。另一方面,文档rfc8484 (它处理DNS-over-HTTPS)提到支持此协议的服务器称为"DoH服务器“,但目前是否有”根服务器“、"TLD服务器”或“权威服务器”准备处理DNS-over-HTTPS请求?例如,我知道CloudFlare确实有这种类型的服务器,它们充当“递归解析器”。
发布于 2019-08-19 20:28:36
DoT和DoH并没有从根本上改变系统*,至少没有改变这些新(Ish)协议变体最初形式的使用方式。
此时,它们用于在客户端和递归解析器之间设置DNS通信隧道,以便为通信的特定部分提供隐私。超过这一点,它仍然是常规的旧DNS。
至于总体安全性,除了隐私之外,您还拥有DNSSEC,它允许端到端数据身份验证(用于签名区域)。
因此,要最大限度地提高安全性,您真正需要的是同时完成以下两项工作:
- Doesn't make any attempt at providing privacy.*嗯,DoH确实允许一些新的功能,比如push,但这并不是您想要的。
发布于 2019-08-21 04:07:10
哈坎·林德奎斯特已经就核心问题作了答复,但我想谈一谈这一缺失部分:
支持此协议的服务器称为"DoH服务器“,但目前是否有"root服务器”、"TLD服务器“或”权威服务器“准备处理DNS over HTTPS请求。
如果您后退一步,DNS作为一个系统会因为名称服务器而运行。名称服务器是运行DNS服务器软件的任何给定服务器。例如,最古老的一个是bind。
为了工作,DNS需要两种名称服务器,两种不同的特性:权威名称服务器和递归名称服务器。
权威的名称服务器是名称服务器,为某些区域配置了一些给定的区域文件,并为这些区域的查询提供此数据的答复。DNS是分层的,因此权威名称服务器将其区域的一部分委托给其他名称服务器,等等,从一个经典的“根”点(实际上是在顶部)。
递归名称服务器是应用程序使用的名称服务器:它们通过对多个权威名称服务器进行迭代查询来完成提供答案的所有艰苦工作。
这两个特性使用相同的协议(DNS),具有相同的消息、返回代码等。像bind这样的软件甚至可以在同一台服务器上同时提供这两种功能,但不再推荐。其他较新的名称服务器软件要么是权威的(例如:nsd、powerdns、yadifa、KnotDNS),要么是递归的(例如:unbound、Knot Resolver、dnsmasq)。
根区域的权威名称服务器(拥有所有TLD的列表)被称为根名称服务器作为快捷方式。但他们和其他人一样都是权威的同名者。在下面的级别上,您为每个TLD设置了一组名称服务器(因为每个TLD可以由不同的实体管理),因此这些名称服务器被称为"TLD服务器“。
直到最近,他们都只知道经典的DNS公开端口53,无论是UDP还是TCP (都是规范规定的)。如果软件允许,它们中的任何一个都可以通过HTTPS上的DNS或TLS上的DNS以完全相同的方式工作(权威的或递归的)。
目前,这些新协议满足了与递归名称服务器的连接。递归和权威名称服务器之间的连接仍然是一个开放的问题,这主要是关于对服务器进行身份验证的问题(为了合理地使用TLS,这是一个强制步骤)。
您可以在https://doh.defaultroutes.de/implementations.html上找到DOH/DOT实现的列表。有些可能只是“代理”,处理HTTPS/TLS传输,但不执行任何真正的DNS操作,因为这些操作只是转发到真正的(通过端口53)递归名称服务器。实际上,您将注意到以前的标准递归名称服务器(unbound,Knot Resolver)比DOH更适合DOT。
作为一个结论,虽然每个人都关注这一点,但实际上还有其他方面确实改变了DNS的行为方式,比如QNAME最小化。
https://serverfault.com/questions/979878
复制相似问题