博客 DomainTools研究

SVCB和HTTPS DNS记录类型的用例和好处

执行概要

SVCB(服务绑定)和HTTPS(超文本传输安全协议)DNS资源记录类型已经在生产中使用,但还没有最终确定的标准,它们为服务发现、隐私和性能问题提供了解决方案。乐动体育网址这篇博客文章进一步明确了这些新记录类型的用例和好处。

简介:什么是服务绑定?

DNS记录类似于地址簿中的条目,并存储有关如何联系特定联系人或计算机网络中的系统的信息。虽然个人地址簿通常是混乱和自由的形式,但DNS记录具有定义良好的条目类型。例如,记录类型“A”包含特定计算机的internet地址(因此,“A”表示“地址”),类型“CNAME”(或规范名称)表示系统以不同的名称所知,等等。

记录类型列表将继续发展,2018年底,“服务绑定”类型被提议“方便查找连接原始资源所需的信息”.这个新记录类型提供了为名称指定可选端点的选项,并以两种模式之一操作:

  1. AliasMode,其中它的行为类似于CNAME记录
  2. ServiceMode,它允许为服务发现发布许多不同的参数。

该提议还引入了HTTPS资源记录类型,这是一种针对HTTPS的服务绑定变体。第二种记录类型的目标是减少特定用例的DNS查询数量,这是整个建议中反复出现的主题。

AliasMode, CNAME和Aliasing

采用SVCB的第一个优点是它解决了CNAME记录的缺点。如前所述,CNAME在两个名称之间创建别名。下面是一个示例记录,说明查询www.example []要查找www.example。com而不是:

www.example[]。3600 IN CNAME www.example[.]com

这种别名在很多情况下都很有用,但是CNAME记录不能用于所谓的带顶或者是根域(例子。com名字的一部分)。这是CNAME类型最初提出和实现方式的历史限制,目前还不能修改。这种限制导致了一些不同的变通方法,每种方法都有自己的缺点。SVCB提案通过其AliasMode提供了一个新的解决方案,允许我们创建一个带顶记录并指定一个目标(或一个目标)选择端点),将进一步解析A、AAAA或SVCB记录。

继续前面的示例,下面的SVCB记录为例子。净(一个区域顶点):

例子。净。3600 IN SVCB 0 www.example[.]com

“0”值告诉我们这个SVCB记录是在AliasMode中,在这个特定的情况下,替代端点是我们要重定向到的名称。

服务模式、隐私和性能

可以说,ServiceMode是该提案的主要部分,它为互联网上服务发现工作方式所固有的隐私和性能问题提供了解决方案。乐动体育网址

最重要的是能够直接从DNS查询的结果指示服务支持HTTPS。目前,web客户端必须首先对服务的互联网地址执行DNS查找,并通过HTTP“明确地”访问它,希望被重定向到该服务的HTTPS端点。服务绑定记录允许我们指定名为应用层协议协商,或简称ALPN,并提供该服务支持的协议列表。让我们来看一个例子:

www.example[.]com 3600 IN SVCBalpn = h2

SVCB的记录告诉我们www.example。com支持HTTP/2协议。注意,在本例中我们没有指定替代端点,ALPN参数前的句点告诉我们它适用于记录所有者。也可以指定不同的目标,例如:

www.example。com。3600 IN HTTPS 1 svc.example[.]com。alpn = h2

两者都通知客户端对HTTP/2的支持。第二个示例将查询重定向到svc.example[.]com。这允许我们直接连接到HTTPS端点,减少了对多个请求的需求,并通过减少未加密消息的数量来提高隐私性。

同样的机制可以用来表示对HTTP/3的支持,它比以前的版本提供了一些非常有趣的性能优势。该建议包括一个可选的“port”参数,可用于指示指定的服务可以在哪个网络端口上到达。

加密客户端Hello(或决定自)参数,是新规范的另一部分,有助缩小在如何建立安全连接方面的重要私隐差距。使用传输层安全性(Transport Layer Security, TLS),客户端和服务器必须在握手过程中交换一些重要信息,包括用户试图连接的服务。不幸的是,即使是最新的TLS标准也没有提供完全的加密,而且对话的某些部分仍然可能被拦截。

虽然决定自在服务绑定提出之前就已经在使用了,所以它需要一个单独的TXT记录。通过将其与服务绑定注册中心中的其他参数捆绑在一起,可以降低额外查询及其处理的成本。在前面的例子中,我们有:

www.example。com。3600 IN HTTPS 1 svc.example[.]]com alpn=h2 ech=abcdefgh

除了ALPN和ECH, SVCB还提出了ipv4hint而且ipv6hint参数。类似于对决定自它们的目的似乎是将所有信息捆绑在一起,以加快单个DNS记录的访问速度,并避免多次查询。此处提供的地址五月用于到达给定的服务,如果目标的A或AAAA记录在本地可用,客户机应该忽略这些提示。

我们在这篇文章中提到的所有参数都是服务绑定参数注册中心,其中还包含强制性的和一个no-default-alpn参数,一个私人使用的范围,并允许使用keyNNNNN =值格式。不幸的是,该提案并没有提供关于如何或将如何使用私人靶场的任何额外信息。

结论

服务绑定建议提供了一种方法,通过将所有必要的信息压缩到一条记录中,简化DNS数据的检索。它还缩小了在服务发现过程中可能侵犯隐私的差距。通过其替代端点重定向请求的额外灵活性是受欢迎的,对于多托管场景应该是有价值的。

多个DNS提供商和web客户端已经部署了对SVCB和HTTPS记录的支持,从谷歌和Cloudflare到iOS、Chrome和Firefox。在提案达到标准阶段之前推动采用在网络世界中并不罕见,在大公司的支持下,SVCB和HTTPS正在迅速成为一个事实上的标准。

作者:拉斐尔Vanoni