我如何确保获得所请求 IP 地址的真实响应?

我如何确保获得所请求 IP 地址的真实响应?

通常情况下,您会使用给定的用户凭据登录到您的 ISP。然后,您会获得一个 IP 地址,并可以访问其内部名称服务器,这样您就可以请求某个域名并获取 IP 地址作为响应。

但是我如何确保我检索到的是我正在请求的实际站点?我如何确保我的 ISP 没有伪造 IP 地址,或者他们没有将我重定向到“伪造的内部服务器”(无论是否具有相同的 IP 地址)?例如:如果我请求 example.com,获取其 IP,他们会向我显示该网站的简单克隆。

如何确保 IP 仅存在一次?可以将 localhost 的 IP 更改为其他 IP,那么如何确保网址不会发生这种情况?

当然:如果 ISP 伪造目的地,其他用户请求相同的结果也会受到影响。但即使在这种情况下:是否可以通过 ISP 凭证过滤用户并劫持他们?

我的理解方式可能存在某种误解。但我不明白我所忽略的内容。

答案1

是的,DNS 不安全。如果您真的想知道您正在与您想要的服务器通信,您必须对服务器进行身份验证。这就是我们所做的。我们不相信 DNS 是安全的,我们在其他地方实现我们需要的安全性,例如 TLS(传输层安全性)。

TLS(HTTPS 的现代安全层)通过强制服务器向客户端发送一份表明服务器名称和公钥的证书来实现这一点。此证书由可信的第三方(称为证书颁发机构 (CA))加密签名。CA 签名保证证书显示的是指定服务器的正确公钥。

为了证明服务器是证书的合​​法所有者(而不是盗用有效证书的冒名顶替者),TLS 握手会证明它知道秘密私钥,该私钥与证书中的公钥形成匹配集。当然,这是在不泄露私钥本身的情况下完成的。

有一项保护 DNS 的提案,称为 DNSsec,但它已经讨论了很多年,似乎没有任何进展。它可能永远不会被广泛部署。现在有一项“DNS over HTTP”(DoH,发音为“D'oh!”)提案,可以通过 HTTPS 来保护 DNS。

答案2

有很多问题。我会尽力解答其中几个。

但是我如何确保我检索到的是我正在请求的实际站点?我如何确保我的 ISP 没有伪造 IP 地址,或者他们没有将我重定向到“伪造的内部服务器”(无论是否具有相同的 IP 地址)?例如:如果我请求 example.com,获取其 IP,他们会向我显示该网站的简单克隆。

因此,这被称为中间人攻击(https://en.wikipedia.org/wiki/Man-in-the-middle_attack)。坏消息是,它们相当常见(至少在酒店和其他有开放 wifi 的地方,尽管也很难证明,-https://www.theregister.co.uk/2016/06/01/teamviewer_mass_breach_report/)。但防范此问题的一种方法是不要使用酒店的(或您的 ISP 的)DNS 服务器。有几个不错的选择:https://www.howtogeek.com/122845/htg-explains-what-is-dns/

如果一个信誉良好的 ISP 这样做(并且被抓住),我会感到惊讶,但当您不在家庭网络上时,使用您自己的 DNS(再次说明您仍然信任某人)和/或 VPN 是个好主意。

相关内容