我可能完全错了,但看起来将域名指向网站的标准方式非常不安全。
假设您的域名已注册A公司并且您的网站托管于B公司。
设置步骤通常如下:
- 登录公司 A,并将 my-domain.com 的 DNS 记录设置为指向 ns1.company-b.com 和 ns2.company-b.com
- 登录 B 公司并将 my-domain.com 添加到您的帐户并设置 A 记录。
但是 B 公司如何知道您有权设置 A 记录?仅仅因为该域名正在使用他们的 DNS 服务器?B 公司的其他客户是否可能是该域名的真正所有者,并且他们将域名指向 B 公司的 DNS 服务器?由于您也是 B 公司的客户,因此您可以劫持该域名?
这也许是不可能的,如果是这样,那么是什么阻止了这样的事情发生呢?
答案1
理论上,您是对的。实际上,这并不是真正的安全问题,因为您可以控制域用作权威名称服务器的内容。因此,假设我在公司 B 为您的域设置了记录。您去设置记录,但他们的界面不允许您这样做(因为 DNS 服务器不能为同一个域激活多个区域文件),或者您注意到记录已经设置好了。您立即再次前往公司 A,将您的权威名称服务器设置为指向其他地方,然后与公司 B 交谈。公司 B 知道您是拥有该域的人,而不是其他客户,因为 A) 您的信息位于与该域关联的 WHOIS 数据库中,并且 B) 您可以通过设置权威名称服务器来证明对域的控制。很可能,他们随后会因其他客户的邪恶行为而暂停其会员资格。
你没必要花很多时间担心这件事。
答案2
您应该按其他顺序执行这些步骤。在 B 公司进行设置,并确认您已将域名添加到您的帐户前您将名称服务器指向别处。这样,攻击窗口就为零。但即使您不这样做,它仍然是一个非常狭窄的窗口,只需致电 B 公司(或只是将名称服务器指向别处)即可轻松解决。
答案3
简单的。 只有权威服务器才重要。
我可以在家里的服务器上为 google.com 设置 DNS,并使其看起来像 google,然后整天摆弄它,重定向和捕获来自我孩子的流量等等,但只要客户端实际上向根服务器请求区域的权限,我设置什么都无关紧要……因为权威服务器会确定这一点,并将正确的地址记录返回给客户端。
是的,你可以创建有毒的 DNS 条目等等,但这些条目的 TTL 迟早都会过期,除非你能直接控制客户端的解析器地址,否则客户端将用尽根服务器,根服务器将把它们指向正确的服务器(权威服务器),然后一切就都结束了。即使您使用其他 DNS 服务,该服务迟早也会缓存正确的条目。
对于您示例中的公司 B,您可以随意设置记录。除非客户查询该服务器,否则这无关紧要。如果他们直接查询,那就是另一回事了,但即使这样也不会永远持续下去,当 TTL 到期时,DNS 舞蹈将再次发生……将它们引导到正确的服务器。
这里的关键是向根注册的 DNS 服务器。无论根认为对您的域具有权威性的服务器的 IP 地址是什么,人们都会去那里寻求答案。如果您担心有人在“传输”过程中劫持域名,那么最好的解决方法是使用 DNS 服务提供的工具将域名转移过来。他们会为您处理所有这些问题。当他们这样做时,他们会使用根服务器将他们的服务设置为您区域的权威。
如果您担心有人试图注册域名再次,那么 DNS 就会从根本上崩溃,互联网就会崩溃(不是损坏,而是崩溃)。事情不会这样发生。
答案4
您必须先获得 B 公司名称服务器的授权,才能在 B 公司的名称服务器上创建任何记录。在将您的名称服务器更改为指向 B 公司服务器之前,您应确保您拥有该权限。一旦 B 公司托管您的名称服务器,您就需要依赖他们的安全性来确保未经授权的人员无法更改您的 DNS 记录。
您的网站托管在公司 B 的服务器上,因此您无需将 DNS 托管给他们。您可以轻松地在公司 A 的服务器上设置必要的 A 记录。小型网站通常会将所有 DNS 记录托管在其域名注册商处。(当您首次设置域名时,注册商将是您的示例中的公司 A。)注册商将始终是查找权威名称服务器记录的来源。
第三方公司托管名称服务器也很常见。在这种情况下,您可以依赖他们的安全性来防止他人更改您的 DNS 记录。
只要您有权向域名注册商更新您的记录,您就可以随时将您的名称服务器移至其他公司,以防您的 DNS 记录被劫持。由于 DNS 缓存,可能需要一些时间才能将您的 DNS A 记录重定向到正确的位置。
PTR 记录则不同。这些记录始终由提供 IP 地址的组织之一控制。他们可以通过 CNAMES 委托对特定地址的控制。
现在可以使用 DNSSEC 来提高域记录的安全性。这允许您对 DNS 记录进行签名。并非所有客户端都会检查签名,因此它无法保护所有客户端的域记录。
本地 DNS 欺骗始终是可能的。有些人使用本地欺骗来阻止来自广告网站的流量。有许多可用于此目的的网站列表。