【问题标题】:How do name servers ensure that the server claiming to host a domain is actually operated by that domain?名称服务器如何确保声称托管域的服务器实际上是由该域操作的?
【发布时间】:2014-12-07 11:58:12
【问题描述】:

我最近开始使用 linode 来托管我的网站。 在使用 linode 之前,我通常使用我的域名注册商提供的托管服务。在这些情况下,我认为我理解了 DNS 的工作原理,因为注册商会自动更新您的 DNS 记录以指向托管该站点的服务器。

按照 linodes 指南,建立网站:https://www.linode.com/docs/websites/hosting-a-website

他们的说明告诉您将 DNS 服务器设置为:

ns1.linode.com ns2.linode.com ns3.linode.com ...

但我想说的是,任何人都可以在 linode 上开设一个帐户,并填写相同的 DNS 设置!因此,现在任何试图访问您网站的人都可能被定向到想冒充您网站的其他人!

我理解 DNS 的工作原理是否正确?我知道确保(从访问者的角度)访问的站点实际上是预期的域的唯一方法是安装证书(https)等。但是根据上述说明,假装是某人似乎几乎是微不足道的否则,如果他们也使用 linode。

【问题讨论】:

    标签: dns linode


    【解决方案1】:

    我不是 DNS 方面的专家,所以我的回答可能有误,但我也有同样的问题,所以调查了一下。

    我认为您的理解是正确的,这似乎是一个问题,但显然它在实践中很少发生,因此托管服务提供商(包括 Linode)没有对此采取任何措施。

    Here 是来自 DigitalOcean(另一家有此问题的托管公司)的 Ryan Quinn 回答了类似的问题:

    一个域只能存在于一个帐户上,因此任何试图添加它的用户都无法添加。域已经存在或被劫持的情况极为罕见(我在 2 年多的时间里见过 3 起案例,在每种情况下,它都是该域的前所有者,但仍有记录)。在这些极少数情况下,用户可以打开支持票证,我们将根据他们的账单详细信息验证域 whois 信息以验证所有权。

    Here 是 Information Security Stack Exchange 上的一个问题,它提出了同样的问题。

    在 DigitalOcean 的案例中,我发现一个 post (HackerNews discussion) 的人描述了他们如何接管了大约 20,000 个指向 DigitalOcean 域名服务器的非活动域名。我没有发现任何与 Linode 类似的东西,尽管我认为基本上相同的攻击是可能的(2020 年更新:这实际上发生在我认识的人身上,他们的网站在没有更改 Linode 的情况下被垃圾邮件发送者接管了) DNS 设置停止指向 Linode)。

    Amazon Route 53 似乎使用随机生成的名称服务器(而不是 Linode/DigitalOcean 的常量 ns1.linode.com 等)来使这种攻击极不可能成功。

    Apparently 一些其他服务(Google Apps?)“通过要求域所有者使用特殊代码将 TXT 记录添加到其域来验证域所有权。”

    【讨论】:

      【解决方案2】:

      那又怎样?有人可能使用相同的 DNS 服务器。但是他们不能注册同一个域。一旦您注册了example.org,您就拥有该域,其他任何人都无法注册它。


      您已注册example.org 并在 Linode 使用以下 DNS 配置:

      Domain             | Nameserver
      -------------------+---------------------
      example.org        | ns1.linode.com
      example.org        | ns2.linode.com
      ...                | ...
      

      一个“邪恶的黑客”可能已经注册了evil-hacker.com并使用了这个配置:

      Domain             | Nameserver
      -------------------+----------------------
      evil-hacker.com    | ns1.linode.com
      evil-hacker.com    | ns2.linode.com
      ...                | ...
      example.org        | ns1.linode.com  << Those are the lines that bug you, right?
      example.org        | ns2.linode.com
      

      为简单起见,假设您网站的 IP 是 1.1.1.1,而邪恶黑客网站的 IP 是 2.2.2.2。您担心因为“黑客”使用相同的 DNS 配置,您的网站 example.org 可能会解析为 2.2.2.2,对吧?

      当我尝试解析example.org时会发生这种情况:

      1. 我连接到 DNS 根服务器以找出哪个名称服务器负责 org 顶级域。
      2. 我连接到org顶级域的域名服务器,并要求它提供example.org的IP地址。 org 域名服务器由您的域名注册商管理。它会查找输入的信息,并告诉我查看其中一个 linode 名称服务器。
      3. 我连接到ns1.linode.com 并要求它提供example.org 的IP 地址。 Linode 知道您的网站拥有哪个 IP,并回复我 1.1.1.1

      在上面的过程中,我永远不会看到evil-hacker.com2.2.2.2。由于我们的邪恶黑客(希望)无法控制 DNS 根服务器、org 顶级域的名称服务器或 Linode 名称服务器,因此您网站的所有 DNS 请求都将由“受信任的”名称服务器响应。

      但是,黑客可能会拦截来自 我的 特定机器的 DNS 流量。他可能会安装总是将example.org 解析为他的IP 地址2.2.2.2(例如/etc/hosts)的恶意软件,或者危及我的网络路由器。因此,为您的网站使用 SSL 证书仍然是一个好主意:)。

      【讨论】:

      • 为什么你认为 ns1.linode.com 会回答 1.1.1.1 而不是 2.2.2.2 ? Linode 甚至不会检查您是否是注册该域的同一个人,也无法知道您是黑客还是所有者。你的例子说明了我的问题! :)
      • @John 因为 Linode 知道 example.org1.1.1.1 之下。至少它应该....回顾the hosting tutorial,您似乎还必须向 Linode 注册您的域(添加 DNS 记录部分中的第一张图片)。我(并希望)他们不会接受example.org 的第二次注册,因此可以将example.org 映射到他们知道地址为@的您的帐户987654350@.
      • 那是不正确的——你没有向 linode 注册域。我认为您没有仔细阅读教程,该图像与注册域无关。 :) 我的问题的重点是,他们不验证声称托管服务器的人是否实际上是该域的注册所有者!我想这就是 DNS 的样子,防止欺骗的唯一方法是使用证书。它相当可悲。 XD 尝试创建两个 linode 帐户,并欺骗其中一个域。
      猜你喜欢
      • 2018-08-09
      • 2013-07-12
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 2020-10-27
      • 2019-04-09
      • 2019-01-18
      相关资源
      最近更新 更多