关于 DNS over HTTPS 的动画介绍

针对用户隐私和安全的威胁正在不断增加。在 Mozilla,我们密切关注这些威胁。我们认为,我们有责任尽一切努力保护 Firefox 用户及其数据。

我们正在对抗那些试图秘密收集和出售用户数据的公司和组织。这就是我们添加 跟踪保护 并创建 Facebook 容器扩展 的原因。在未来几个月,您将看到我们采取更多措施来保护我们的用户。

Icons for security projects that we’ve introduced

我们将添加到此列表中的另外两种保护措施是

  • DNS over HTTPS,这是我们大力倡导的一项新的 IETF 标准工作
  • Trusted Recursive Resolver,一种与 Cloudflare 合作提供的全新安全解析 DNS 的方式

通过这两项举措,我们正在关闭自域名系统创建 35 年以来一直存在的的数据泄露漏洞。我们希望您能帮助我们测试这些漏洞。让我们来看看 DNS over HTTPS 和 Trusted Recursive Resolver 如何保护我们的用户。

但首先,让我们看看网页如何在互联网上移动。

如果您已经了解 DNS 和 HTTPS 的工作原理,可以直接跳到 DNS over HTTPS 如何提供帮助

HTTP 课程

当人们解释浏览器如何下载网页时,他们通常会这样解释

  1. 您的浏览器向服务器发出 GET 请求。
  2. 服务器发送响应,该响应是一个包含 HTML 的文件。

browser GET request + response

此系统称为 HTTP。

但此图有点过于简化。您的浏览器不会直接与服务器通信。这是因为它们可能并不靠近彼此。

相反,服务器可能在数千英里之外。而且您的计算机与服务器之间可能没有直接连接。

image of client and server on opposite ends of the network

因此,此请求需要从浏览器传送到该服务器,并且它将在到达那里之前经过多个环节。从服务器传回的响应也是如此。

我认为这就像孩子们在课堂上互相传递纸条。纸条的外部会写明它应该传递给谁。写纸条的孩子会把它传给他的邻居。然后,下一个孩子把它传递给他们的邻居之一——可能不是最终的接收者,但可能是朝着那个方向的人。

kids passing notes

问题在于,路径上的任何人都有可能打开纸条并阅读它。而且无法预先知道纸条将走哪条路径,所以无法知道哪些人会访问它。

它最终可能会落入会做坏事的人手中……

例如,与所有人分享纸条的内容。

kid saying “Ooo, hey everybody… Danny loves Sandy!”

或者更改响应。

kid saying “Do you like me? Y/N… Heh, I’m going to prank him and put no here”

为了解决这些问题,创建了 HTTP 的一个新的安全版本。这被称为 HTTPS。在 HTTPS 中,这有点像每个消息都带有锁。

open envelope next to locked envelope

浏览器和服务器都知道锁的密码,但中间没有人知道。

这样,即使消息经过中间的多个路由器,只有您和网站才能实际读取内容。

这解决了许多安全问题。但仍然有一些在浏览器和服务器之间传递的消息没有加密。这意味着沿途的人仍然可以窥探您正在做什么。

数据仍然暴露的一个地方是在建立与服务器的连接时。当您向服务器发送初始消息时,您还会发送服务器名称(在名为“服务器名称指示”的字段中)。这使服务器运营商能够在同一台机器上运行多个站点,同时仍然知道您试图与谁通信。此初始请求是设置加密的一部分,但初始请求本身未加密。

数据暴露的另一个地方是 DNS。但什么是 DNS 呢?

DNS:域名系统

在上面的传递纸条的比喻中,我说接收者的姓名必须写在纸条的外部。这对于 HTTP 请求也是如此……它们需要说明它们要传递给谁。

但是您不能使用他们的姓名。中间的路由器都不会知道你在说什么。相反,您必须使用 IP 地址。这就是中间的路由器如何知道您要将请求发送到哪个服务器。

network with IP addresses

这会导致一个问题。您不希望用户记住您的网站的 IP 地址。相反,您希望能够为您的网站提供一个朗朗上口的名称……用户可以记住的东西。

这就是我们拥有域名系统 (DNS) 的原因。您的浏览器使用 DNS 将站点名称转换为 IP 地址。此过程——将域名转换为 IP 地址——称为域名解析。

domain and address equivalence

浏览器如何知道如何执行此操作?

一种选择是在浏览器中提供一个大列表,就像电话簿一样。但是随着新网站上线或网站迁移到新服务器,保持该列表的最新状态将非常困难。

因此,与其有一个跟踪所有域名的大列表,不如说有很多可以相互链接的小列表。这使它们能够独立管理。

one list, vs lots of smaller lists

为了获取与域名相对应的 IP 地址,您必须找到包含该域名的列表。这样做有点像寻宝。

对于像英文版维基百科这样的网站来说,en.wikipedia.org,这种寻宝活动会是什么样的?

我们可以将此域名分解成几个部分。

domain split into top level, second level, and subdomain.

有了这些部分,我们就可以寻找包含网站 IP 地址的列表。不过,我们需要在探索中获得一些帮助。我们将用于执行此探索并找到 IP 地址的工具称为解析器。

首先,解析器会与名为根 DNS 的服务器通信。它知道几个不同的根 DNS 服务器,因此它会将请求发送到其中一个。解析器会询问根 DNS 在哪里可以找到有关.org 顶级域中的地址的更多信息。

根 DNS 会向解析器提供一个知道有关.org 地址的服务器的地址。

resolver talking to Root DNS

此下一个服务器称为顶级域 (TLD) 域名服务器。TLD 服务器知道所有以.org 结尾的二级域名。

不过,它不了解wikipedia.org 下的子域名,因此它不知道en.wikipedia.org 的 IP 地址。

TLD 域名服务器会告诉解析器询问维基百科的域名服务器。

resolver talking to TLD DNS

解析器现在几乎完成了。维基百科的域名服务器被称为权威服务器。它了解wikipedia.org 下的所有域名。因此,此服务器了解en.wikipedia.org 以及其他子域名,例如德语版本de.wikipedia.org。权威服务器会告诉解析器哪个 IP 地址包含网站的 HTML 文件。

resolver talking to authoritative DNS

解析器会将en.wikipedia.org 的 IP 地址返回给操作系统。

此过程称为递归解析,因为您必须来回询问不同的服务器基本上相同的问题。

我说我们需要一个解析器来帮助我们探索。但浏览器如何找到此解析器?通常,它会要求计算机的操作系统为它设置一个可以提供帮助的解析器。

browser asking OS for resolver

操作系统如何知道要使用哪个解析器?有两种可能的方式。

您可以配置您的计算机以使用您信任的解析器。但很少有人这样做。

相反,大多数人只是使用默认设置。默认情况下,操作系统只会使用网络告诉它的任何解析器。当计算机连接到网络并获取其 IP 地址时,网络会推荐一个要使用的解析器。

operating system getting a recommendation from the network

这意味着您使用的解析器可能每天更改多次。如果您在下午去咖啡馆工作,您可能使用的解析器与您早上使用的解析器不同。即使您已经配置了自己的解析器,情况也是如此,因为 DNS 协议中没有安全性。

如何利用 DNS?

那么,此系统如何使用户容易受到攻击呢?

通常,解析器会告诉每个 DNS 服务器您要查找的域名。此请求有时会包含您的完整 IP 地址。或者如果没有您的完整 IP 地址,越来越多的情况下,请求会包含您的大部分 IP 地址,这很容易与其他信息结合起来,以找出您的身份。

DNS request

这意味着您请求帮助进行域名解析的每个服务器都能看到您要访问的网站。但不仅如此,这也意味着那些服务器路径上的任何人也能看到您的请求。

这种系统存在几种方式会使用户数据面临风险。两种主要的风险是跟踪和欺骗。

跟踪

正如我上面所说,很容易利用完整或部分 IP 地址信息找出谁正在请求该网站。这意味着 DNS 服务器以及通往该 DNS 服务器路径上的任何人都可以创建您的个人资料。他们可以记录他们所见过的您所查询的所有网站。

这些数据是有价值的。许多人和公司会花很多钱来查看您正在浏览的内容。

a router offering to sell data

即使您不必担心可能是恶意 DNS 服务器或路径上的路由器,您仍然有风险将您的数据被收集并出售。这是因为解析器本身(网络为您提供的那个)可能是不可信的。

即使您信任网络推荐的解析器,您可能也只在家里使用该解析器。正如我之前提到的,无论您去咖啡馆、酒店,还是使用任何其他网络,您可能都在使用不同的解析器。谁知道它的数据收集政策是什么呢?

除了在您不知情或未经您同意的情况下收集您的数据并将其出售外,系统还存在更多危险的方式被利用。

欺骗

在欺骗中,DNS 服务器和您之间的路径上的某人会更改响应。欺骗者不会告诉您真实的 IP 地址,而是会为您提供错误的网站 IP 地址。这样,他们就可以阻止您访问真实的网站,或者将您引导到欺诈网站。

spoofer sending user to wrong site

同样,这是一种解析器本身可能表现出恶意行为的情况。

例如,假设您正在 Megastore 购物。您想进行价格检查,看看是否可以在竞争对手的在线商店 big-box.com 上以更低的价格买到它。

但是,如果您在 Megastore 的 Wi-Fi 网络上,您可能正在使用他们的解析器。该解析器可能会劫持对 big-box.com 的请求并欺骗您,说该网站不可用。

我们如何通过信任递归解析器 (TRR) 和 DNS over HTTPS (DoH) 来解决这个问题?

在 Mozilla,我们强烈认为我们有责任保护我们的用户及其数据。我们一直在努力修复这些漏洞。

我们正在引入两个新功能来解决这个问题——信任递归解析器 (TRR) 和 DNS over HTTPS (DoH)。因为实际上,这里存在三个威胁

  1. 您最终可能会使用不可信的解析器,该解析器会跟踪您的请求,或篡改来自 DNS 服务器的响应。
  2. 路径上的路由器可以以相同的方式跟踪或篡改。
  3. DNS 服务器可以跟踪您的 DNS 请求。

the three threats—resolvers, on-path routers, and DNS servers

那么我们如何解决这些问题呢?

  1. 通过使用信任递归解析器来避免不可信的解析器。
  2. 通过使用 DNS over HTTPS 来防止路径上的窃听和篡改。
  3. 尽可能少地传输数据,以保护用户免遭匿名化。

通过使用信任递归解析器来避免不可信的解析器

网络可以逃脱提供窃取您的数据或欺骗 DNS 的不可信解析器,因为很少有用户了解风险或如何保护自己。

即使是了解风险的用户,对于个人用户来说,也很难与他们的 ISP 或其他实体协商,以确保他们的 DNS 数据得到负责任的处理。

但是,我们花时间研究了这些风险... 并且我们拥有谈判能力。我们努力寻找一家公司与我们合作,以保护用户的 DNS 数据。我们找到了一个:Cloudflare.

Cloudflare 提供了一个递归解析服务,并采用有利于用户隐私的政策。他们承诺在 24 小时后丢弃所有个人身份信息,并且永远不会将这些数据传递给第三方。并且将定期进行审计,以确保数据按预期被清除。

有了它,我们拥有一个可以信任的解析器来保护用户的隐私。这意味着 Firefox 可以忽略网络提供的解析器,直接访问 Cloudflare。有了这个可信的解析器,我们就不必担心恶意解析器出售我们用户的 data 或用欺骗 DNS 欺骗我们的用户。

为什么我们要选择一个解析器?Cloudflare 和我们一样热衷于构建一个以隐私为中心的 DNS 服务。他们与我们合作构建了一个 DoH 解析服务,可以以透明的方式为我们的用户提供良好的服务。他们非常愿意为该服务添加用户保护措施,因此我们很高兴能够与他们合作。

但这并不意味着您必须使用 Cloudflare。用户可以配置 Firefox 使用他们想要的任何支持 DoH 的递归解析器。随着更多产品出现,我们计划让用户更容易发现和切换到它们。

通过使用 DNS over HTTPS 来防止路径上的窃听和篡改

不过,解析器并不是唯一的威胁。路径上的路由器可以跟踪和欺骗 DNS,因为它们可以看到 DNS 请求和响应的内容。但是互联网已经拥有确保路径上的路由器无法以这种方式窃听的技术。这就是我之前提到的加密。

通过使用 HTTPS 交换 DNS 数据包,我们确保没有人可以窥视我们用户发出的 DNS 请求。

尽可能少地传输数据,以保护用户免遭匿名化

除了提供使用 DoH 协议进行通信的可信解析器之外,Cloudflare 还与我们合作,使它更加安全。

通常,解析器会将整个域名发送到每个服务器——根 DNS、顶级域名服务器、二级域名服务器等。但 Cloudflare 将做一些不同的事情。它只会发送与当前正在与之通信的 DNS 服务器相关的部分。这被称为 QNAME 最小化.

image showing resolver only asking the relevant question

解析器通常还会在请求中包含您的 IP 地址的前 24 位。这有助于 DNS 服务器了解您的位置并选择靠近您的 CDN。但这些信息可以被 DNS 服务器用来将不同的请求链接在一起。

Cloudflare 不会这样做,而是会从其用户附近的一个自己的 IP 地址发出请求。这提供了地理位置信息,但不会将其与特定用户绑定。除此之外,我们正在研究如何以隐私敏感的方式实现更好的、更细粒度的负载均衡。

这样做——删除域名的无关部分并且不包含您的 IP 地址——意味着 DNS 服务器可以收集到的有关您的数据要少得多。

DNS request with client subnet and first part of domain cross out

TRR 与 DoH 未能解决的问题是什么?

通过这些修复,我们减少了可以看到您访问哪些网站的人数。但这并不能完全消除数据泄露。

在您进行 DNS 查找以找到 IP 地址之后,您仍然需要连接到该地址上的 Web 服务器。要做到这一点,您需要发送一个初始请求。此请求包含一个服务器名称指示,它指示您要连接到服务器上的哪个站点。并且此请求未加密。

这意味着您的 ISP 仍然可以找出您访问了哪些网站,因为该信息就在服务器名称指示中。此外,将该初始请求从您的浏览器传递到 Web 服务器的路由器也可以看到这些信息。

但是,一旦您建立了与 Web 服务器的连接,那么一切都将被加密。有趣的是,这种加密连接可以用于托管在该服务器上的任何站点,而不仅仅是您最初请求的那个站点。

这有时被称为 HTTP/2 连接合并,或者简称为连接重用。当您打开与支持它的服务器的连接时,该服务器会告诉您它托管的其他网站。然后,您可以使用现有的加密连接访问这些其他网站。

为什么这有帮助?您无需启动新的连接来访问这些其他网站。这意味着您无需发送包含服务器名称指示的未加密的初始请求,该指示表明您要访问哪个网站。这意味着您可以访问同一服务器上的任何其他网站,而无需向您的 ISP 和路径上的路由器透露您正在查看哪些网站。

随着 CDN 的兴起,越来越多的独立网站由单个服务器提供服务。由于您可以打开多个合并的连接,因此您可以同时连接到多个共享服务器或 CDN,访问不同服务器上的所有网站,而不会泄露数据。这意味着这将越来越有效地作为隐私盾牌。

状态如何?

您现在就可以在 Firefox 中启用 DNS over HTTPS,我们 鼓励您这样做.

我们希望将其设置为所有用户的默认设置。我们认为,我们每个用户都应享有这种隐私和安全,无论他们是否了解 DNS 泄露。

但这是一个重大的改变,我们需要先对其进行测试。因此我们正在进行一项研究。我们要求我们一半的 Firefox Nightly 用户帮助我们收集有关性能的数据。

我们将使用与现在相同的默认解析器,但我们还会将请求发送到 Cloudflare 的 DoH 解析器。然后,我们将比较两者,以确保一切按预期运行。

对于参与研究的参与者,Cloudflare DNS 响应尚未使用。我们只是在检查一切是否正常,然后丢弃 Cloudflare 响应。

diagram showing a person timing both and then throwing away Cloudflare response

我们感谢 Nightly 用户的支持——他们每天帮助我们测试 Firefox——我们希望您也帮助我们测试这一点。

关于 Lin Clark

Lin 在 Mozilla 的高级开发部门工作,专注于 Rust 和 WebAssembly。

Lin Clark 的更多文章...


62 条评论

  1. Gabriel Gonzalez

    哇,太棒了,谢谢你的解释,Lin!

    2018 年 5 月 31 日 下午 08:26

  2. Valentin C.

    > 在您执行 DNS 查找以获取 IP 地址后,您仍然需要连接到该地址的 Web 服务器。为此,您需要发送一个初始请求。此请求包含一个服务器名称指示,它指示您要连接到服务器上的哪个站点。并且此请求是未加密的。

    除了 DNS,当您使用 HTTPS 时,仍然会有一个初始的未加密请求吗?我不知道这一点...

    2018 年 5 月 31 日 08:47

    1. sapphirepaw

      技术上讲,HTTP 请求是受保护的,但加密的设置(TLS 握手)实际上并不完全受保护。

      虚拟主机存在一个问题:在 TLS 握手完成之前,HTTP 主机名不可用,但 TLS 握手需要为该特定主机名提供证书。如今,浏览器会两次提供主机名,第一次是明文,以便服务器可以选择正确的证书。这被称为服务器名称指示 (SNI)。

      在 SNI 之前,我们必须为每个 HTTPS 主机使用一个 IP,并发送基于 IP 地址的证书。随着 IPv4 空间变得稀缺,并且 SNI 支持变得广泛,基于 IP 的方法变得不常见。

      2018 年 5 月 31 日 11:42

      1. Jamal

        是的,没有 SNI,人们不得不为他们在单个服务器/VPS 上安装 SSL 证书的每个站点购买额外的 IP 地址。

        2018 年 6 月 4 日 11:37

  3. Michaël Polla

    感谢您这些写得很好、图示清晰的解释,Lin!

    我想帮助测试 Firefox Nighty 上的 DNS over HTTPS(我以前从未使用过)。
    你说:“我们要求我们一半的 Firefox Nightly 用户帮助我们收集数据”:是否有相应的加入系统,或者用户是随机选择的?

    2018 年 5 月 31 日 08:59

    1. Lin Clark

      这将在明天的一篇文章中详细介绍,但现在

      在地址栏中输入 about:config
      搜索 network.trr
      将 network.trr.mode 更改为 2 以启用 DoH。
      将 network.trr.uri 设置为您的 DoH 服务器。Cloudflare 的地址是 https://mozilla.cloudflare-dns.com/dns-query

      about:networking 页面上的 DNS 选项卡指示哪些名称是通过 DoH 使用可信递归解析器解析的。

      2018 年 5 月 31 日 10:01

      1. 匿名

        你能解释一下为什么 network.trr.uri 使用域名吗?我希望它是一个 IP 地址。

        2018 年 6 月 1 日 11:35

      2. Gustaff Weldon

        也许我遗漏了什么,但如果 Firefox 要先从例如“mozilla.cloudflare-dns.com”解析到 IP 地址(可能使用操作系统解析器),那么 Firefox 如何避免获得 TRR 的伪造 IP 地址呢?

        您是否将使用某种证书/密钥来验证您正在与之通信的解析器确实是您想要连接的那个?这将如何处理?

        2018 年 6 月 4 日 09:23

  4. Barry

    > 您现在可以在 Firefox 中启用 DNS over HTTPS,我们鼓励您这样做。

    太棒了。您能确认这 _在哪里_ 完成(在 FF 60.0.1 中) - 是通过 about:config 吗?

    2018 年 5 月 31 日 09:02

    1. Lin Clark

      您需要使用 62 版本才能使用此功能,该版本目前是 Nightly 版本,将于 9 月初发布。

      2018 年 5 月 31 日 10:09

    2. ExE Boss

      从 Firefox 60 版本开始,启用此功能的 about:config 设置就存在了,gHacks 有一篇文章解释了这些设置:https://www.ghacks.net/2018/04/02/configure-dns-over-https-in-firefox/

      2018 年 5 月 31 日 19:28

      1. Lin Clark

        早期版本并不稳定。我们建议使用 Firefox 62 版本才能使用此功能。

        2018 年 6 月 1 日 07:22

  5. ᏒᏊᏀᏋᏒ ᏕξᏐ

    很棒的计划,而且很容易理解 :)

    2018 年 5 月 31 日 09:26

  6. Deepak sharma

    超级棒的解释。太棒了...感谢您以超简单的方式帮助我理解互联网的工作原理。

    2018 年 5 月 31 日 09:35

  7. Wellington Torrejais da Silva

    不错!期待在所有浏览器上默认启用此功能。谢谢。

    2018 年 5 月 31 日 09:44

  8. axew3

    解释事物的方式太棒了,清晰简洁。很棒!

    2018 年 5 月 31 日 09:45

  9. Reuben

    嗨,Lin Clark,

    我真的很喜欢您以易于理解的方式展示所有这些信息的方式。这些图示也极其有用。

    很棒的文章!

    2018 年 5 月 31 日 09:51

  10. Zach

    这篇文章令人印象深刻!我甚至能够将它发送给我的一些不熟悉电脑的朋友,他们都能完全理解它!

    2018 年 5 月 31 日 09:59

  11. Don Almeida

    很棒的图示...我会在教我的 CS 学生时使用它!!!

    2018 年 5 月 31 日 10:18

  12. Susie H.

    很棒的解释。容易理解,而且很有趣!谢谢。

    2018 年 5 月 31 日 10:21

  13. Lee Herman

    如何在 Firefox 开发者版中开启 DNS over HTTPS?

    2018 年 5 月 31 日 11:00

    1. Lin Clark

      它在 Firefox 62 版本中,这是当前的 Nightly 版本。它将在 6 月下旬/7 月初加入开发者版。明天将发布一篇博客文章,详细介绍如何启用。

      2018 年 5 月 31 日 12:51

  14. Sósthenes Neto

    精彩的帖子!很棒的图示,而且非常容易理解。

    2018 年 5 月 31 日 11:03

  15. Kyle

    当 TLS SNI 意味着服务器的主机名作为 TLS 握手的一部分发送时,这如何帮助跟踪?

    2018 年 5 月 31 日 12:32

    1. R

      这在标题为“TRR 与 DoH 没有修复什么?”的部分中直接得到了解决。

      部分答案:HTTP/2 连接合并非常有用,它在最大程度上隐藏了您正在与谁通信,前提是 IP 地址仍然可见,并且您没有使用 Tor。

      事实上,除了避免被动攻击(跟踪)之外,合并听起来像是绕过主动攻击(审查)的合乎逻辑的热门新替代方案,自从亚马逊和谷歌突然都让“域名欺骗”变得不可能以来。

      2018 年 6 月 1 日 00:51

  16. Hussain

    @Lin,出色的文章,必读!

    2018 年 5 月 31 日 12:37

  17. Brett Glass

    因此,Mozilla 试图入侵用户的 DNS,将他们的查询从他们的 ISP(它们值得信赖,并且用户与他们有业务关系)重定向到一个不可信的 VPN 供应商 - Cloudflare。这些用户不是 Cloudflare 的客户,因此 Cloudflare 唯一可以将此服务货币化的方式就是监视用户并出售其个人信息。简而言之,Mozilla 正在支持、帮助和教唆侵犯隐私 - 可能是在从 Cloudflare 获得资金的交换下。这不仅不道德,而且可能受到 FTC 的起诉。

    2018 年 5 月 31 日 12:43

    1. Lin Clark

      这是一项可选功能。用户可以选择是否使用 TRR,他们也可以选择自己的 TRR 提供商。

      2018 年 5 月 31 日 12:59

      1. Sara Dickinson

        但您确实明确指出“我们希望将其设置为所有用户的默认设置”。在那时,我假设默认的“TRR”将是 Cloudflare?如果是这样,那么实际上,大多数用户(那些不会阅读或不理解此更改细节的非技术用户)的 Firefox DNS 查询将发送到 Cloudflare - 正确吗?

        2018 年 6 月 1 日 02:34

        1. Lin Clark

          我们正处于 TRR 和 DoH 测试的早期阶段,并正在从用户那里收集反馈,因此尚不清楚这是否会默认开启,或者如果我们这样做,推出方式会是什么样子。但我相信我们可以找到一种方法向非技术用户传达选择方式。

          2018 年 6 月 1 日 08:26

    2. qgustavor

      我认为 Cloudflare 比公共 WiFi 提供商更可靠。更好的选择是让用户选择他们想要使用的可信解析器:不信任 Cloudflare?没问题,选择其他解析器。
      或者更好(如果可能,我不知道)运行您自己的解析器代理您可信的 ISP DNS,然后当您不在您的网络中时,您只需连接到您自己的解析器,避免使用不安全的公共 WiFi 解析器。
      顺便说一句,一个特殊情况:我相信 Cloudflare 比我的 ISP 更可靠,因为他们劫持 DNS 请求以显示广告和其他不需要的内容。

      2018 年 5 月 31 日 13:43

      1. Lin Clark

        更好的选择是让用户选择他们想要使用的可信解析器:不信任 Cloudflare?没问题,选择其他解析器。

        是的,同意,这就是为什么我们允许用户使用 network.trr.uri 选择自己的解析器。

        2018 年 6 月 1 日 07:19

  18. Mohamed Hussain

    感谢 Lin...我了解了 DNS 的工作原理
    以及网页如何从服务器获取
    以及涉及的威胁以及如何克服
    以及什么是解析器,以及 Cloudflare 的 1.1.1.1 解析器是如何发挥作用的

    2018 年 5 月 31 日 13:28

  19. Adam Logghe

    我们什么时候会在 Firefox 移动版 Beta(61.0b9)上看到它,在那里它最需要?

    我们大多数人在需要或想要时对我们的桌面和笔记本电脑 DNS 有更好的控制,但移动操作系统在这方面对用户来说更不友好。

    2018 年 5 月 31 日 13:42

  20. RobertasR

    解释非常简单,也很详细!
    这听起来都很好,但如果您的本地 DNS 服务器使用私有 TLD 负责内部系统和内部 IP 地址,这将如何工作?DoH 然后将如何工作?本地和公共 DNS 查询将如何分离?Firefox 可以以这种分离模式工作吗?还是要么开启要么关闭?
    我愿意在工作中测试它,只是不想最终无法访问本地资源。
    感谢您的信息!

    2018 年 5 月 31 日 15:19

  21. Joe G

    >我们使用默认解析器,就像我们现在所做的那样,但我们也会将请求发送到 Cloudflare 的 DoH 解析器。然后我们会比较两者,以确保一切都在按预期工作。

    我对此有一些担忧

    1) 默认情况下将所有 DNS 请求泄露给第三方是一个哲学上的隐私问题

    2) 当 Cloudlare 的 HTTPS DNS 成为 firefox 使用的“主要”DNS 提供商时,它将破坏分隔范围 DNS 的用例,例如组织或学校具有仅在内部解析的站点。也可能破坏酒店/机场 WiFi 的登录功能。

    2018 年 5 月 31 日 15:40

  22. Wajdi Dhifi

    感谢您这篇文章,它解释了一些我以前不了解的新概念。
    但我还有 2 个问题
    1- DNS over HTTPS 与 DNS over TLS 是同一个东西吗?
    2 - 由于 DoH 是一项相对较新的技术(如果我错了请纠正我),我认为并非所有权威域名服务器(顶级域名服务器 + 域名使用的域名服务器)都将支持此功能,因为这需要在 DNS 服务器上部署有效的 TLS 证书并在到期前由服务器管理员对其进行续订。因此,Cloudflare 解析器将无法与所有域名服务器建立安全连接,并且由于用户认为他的/她的 DNS 请求在整个过程中都被加密了,那么在这种情况下 1.1.1.1 会怎么做?它是否使用常规 DNS,然后路径上的路由器能够读取数据包?
    谢谢

    2018 年 5 月 31 日 下午 4:11

  23. Jabber Yahya

    很棒的文章,谢谢!

    2018 年 5 月 31 日 下午 4:54

  24. Dhiman, Abhimanyu

    阅读这篇文章很有趣,尤其是将数字变成卡通!

    2018 年 5 月 31 日 下午 10:40

  25. Vladimir Pavlychev

    感谢您以视觉方式展示了 DNS 的工作原理,以及安全问题和 HTTPS 协议。

    2018 年 5 月 31 日 下午 11:38

  26. Jimbo

    希望看到一个可以做到这一点的 DNS 代理 ;)

    2018 年 6 月 1 日 上午 12:06

  27. anonymouse

    如果 DNS over HTTP 可以提供 SSL 证书,那就太酷了。
    那么 Cloudflare 可以下载证书(如果它还没有写入 DNS 记录中)。客户端可以使用它来进行更快的初始握手,更重要的是避免泄露 SNI。

    2018 年 6 月 1 日 上午 1:14

  28. Robert Lu

    为什么不是 DNS over TLS?
    它由 RFC 涵盖。并且在 HTTPS 上有额外的 HTTP 层。

    DNS over TLS 的延迟时间更短。

    2018 年 6 月 1 日 上午 1:59

    1. Lin Clark

      这里有一篇很棒的文章,解释了这样做的理由:https://bitsup.blogspot.com/2018/05/the-benefits-of-https-for-dns.html

      2018 年 6 月 1 日 上午 7:23

  29. Curious

    我还想知道更多关于数字证书基础设施中的任何弱点。

    我不是专家,所以以下内容要带着些许保留:我不禁想知道数字证书可以 a) 被伪造或 b) 被复制,这让我想知道,使用证书来启用您与其他计算机/服务器之间的“盲目信任”的整个系统是否会被国家力量(或其他人)滥用,他们可能拥有数字证书的副本,使他们能够随机地、随意地、持续地、奇怪地或按需地加入某些人的浏览会话,以进行监控或篡改/操纵。

    问:我关于数字证书系统盲目信任问题的担忧是否是对使用计算机之间加密的 TLS/HTTPS 连接的真正威胁?或者我对数字证书的使用方式存在误解,假设国家行为者拥有任何其他流量经过的服务器的副本/伪造证书。

    2018 年 6 月 1 日 上午 2:19

  30. Me

    等一下,Cloudflare 总部位于美国。因此,它受美国法律管辖,因此任何美国以外的人都不应该信任它在隐私方面的保障。

    如果您考虑将 Cloudfare 提供给美国以外的用户,请对此进行明确说明,不要将其设为默认选项。

    除此之外,我真的不认为这种集中式方法是个好主意。为什么不扩展 DNSSEC?为什么不完全消除外部解析器?

    2018 年 6 月 1 日 上午 4:02

  31. thamaraiselvam

    谢谢,深入了解 DNS 解析器。简洁明了的解释。那么您这里是在讨论新的 DNS 解析器 1.1.1.1 吗?如果我在电脑上将 1.1.1.1 设为默认 DNS 解析器,它会以同样的方式工作吗?

    2018 年 6 月 1 日 上午 5:31

  32. Anon Coward

    您忽略了在建立 TLS 之前以明文形式返回的服务器名称和 SAN 数据。坦率地说,SNI 和 SAN 都是以明文形式出现在 TLS 中,这是一个重大尴尬。很明显,应该对它们进行加密,并且在建立加密之前没有人需要进行名称检查,因此这是一个完全不必要的错误,不应该被允许。

    SAN 也是另一个需要修复的重大信息泄露来源。保护用户隐私固然很好,但我们也应该保护网站隐私。例如,请查看您自己的网站在每次连接时向全世界泄露的所有私人信息

    DNS 名称 = blog.mozilla.org
    DNS 名称 = blog.nightly.mozilla.org
    DNS 名称 = brendaneich.com
    DNS 名称 = research.mozilla.org
    DNS 名称 = openstandard.mozilla.org
    DNS 名称 = observatory-test.mozilla.org
    DNS 名称 = hacks.mozilla.org
    DNS 名称 = connected.mozilla.org
    DNS 名称 = mozilla.berlin
    DNS 名称 = blog.mozilla.com
    DNS 名称 = blog.seamonkeyproject.org
    DNS 名称 = blog.getfirebug.com
    DNS 名称 = www.brendaneich.com
    DNS 名称 = www.openstandard.org
    DNS 名称 = thewhiteroomnyc.org
    DNS 名称 = openstandard.org
    DNS 名称 = blog.seamonkey-project.org
    DNS 名称 = theglassroomnyc.org
    DNS 名称 = theglassroom.org
    DNS 名称 = www.theglassroomnyc.org
    DNS 名称 = www.theglassroom.org
    DNS 名称 = www.mozilla.berlin
    DNS 名称 = blog.lizardwrangler.com
    DNS 名称 = quality.mozilla.org

    2018 年 6 月 1 日 上午 6:46

    1. NiKiZe

      您知道如果没有在加密之前进行 SNI,服务器就无法知道使用哪个证书,因此“在建立加密之前没有人需要进行名称检查”的说法没有道理。
      如果没有 SNI,我们每个证书都需要一个 IP 地址——这在当今可用的 IPv4 地址不足的情况下是不可能的。
      在 SNI 之前加密可能并非不可能,但这将在已经很大的往返延迟混乱中增加几次往返。在这种情况下,http/2 如何处理?

      2018 年 6 月 2 日 上午 1:53

    2. Lennie

      如果我没有弄错,在 TLS/1.3 中,证书以及 SAN(服务器的主机名)现在都已加密。

      他们仍在努力弄清楚如何为 SNI(客户端请求的名称)做到这一点。

      2018 年 6 月 4 日 上午 12:05

  33. Anup Mahindre

    您好。这听起来很棒。这是 Firefox 隐私增强功能的又一补充。但我还有另一个疑问:通常使用 UDP 发送 DNS 请求。UDP 是无连接的,这意味着不需要建立连接,因此 DNS 请求速度更快。但是 DNS over HTTPS 听起来像是需要 TCP 的东西?这是否会导致每个 DNS 请求变慢,从而影响整体性能?(我不确定我是否正确,如果我错了请纠正我,我是一名刚学习计算机网络的 CS 本科生 ;-) )

    2018 年 6 月 1 日 上午 7:03

  34. Ofek Shilon

    如果我理解正确,对于每次导航,都会进行几次 TLS 握手,而以前没有(到层次结构中的每个 DNS)。导航时间的影响是什么?您是否有任何基准测试?

    2018 年 6 月 1 日 上午 8:48

  35. Alejandro Ortiz

    这真是一个非凡的解释,读起来很愉快。谢谢!!!

    2018 年 6 月 1 日 上午 9:05

  36. NiKiZe

    这听起来不错——对于互联网上的使用来说。
    但我的内部 DNS 应该始终首先检查?
    它可能是一个 .internal,用于处理几个本地事物。
    它可能是我官方的 DNS 名称,但只能从我的网络内部访问。
    或者它可能根据谁调用它提供不同的视图……如果我从内部机器访问 http://www.mydomain,那么我希望它返回服务器的内部 IP 地址,而不是外部 IP 地址。Mozilla 打算如何在 Firefox 中处理这个问题?

    2018 年 6 月 2 日 上午 1:59

  37. giuix

    清晰易懂的解释!希望用户能对此多加关注。

    2018 年 6 月 2 日 上午 3:18

  38. Ayush Jain

    很棒的卡通文章。个人很喜欢它,想深入了解所有这些技术细节,并想帮助测试。
    -:)-:)

    2018 年 6 月 2 日 上午 6:59

  39. Daniel Adamu

    谢谢。

    2018 年 6 月 2 日 上午 8:25

  40. Douglas Russell

    我一直都在研究使用 VPN,就是为了摆脱那些跟踪我们的人。这项受欢迎的创新与 VPN 的需求有何关系或如何克服 VPN 的需求?它是否是对 VPN 努力的补充,还是与 VPN 冲突?

    2018 年 6 月 2 日 下午 5:17

  41. AMD

    与使用 VPN 相比,这些改进如何保护用户?Firefox 是否计划像 Quora 一样提供浏览器内 VPN 功能?

    2018 年 6 月 2 日 下午 6:50

  42. Andre

    易于理解,谢谢 Lin!!!

    2018 年 6 月 3 日 上午 11:43

  43. Ken M

    内部网络资源(如内联网站点)怎么办?我在工作和家里都使用了很多本地托管页面。

    2018 年 6 月 4 日 上午 6:22

  44. Majid

    写得真美妙,真有趣

    2018 年 6 月 5 日 上午 1:54

本文的评论已关闭。