![什么是 DNS 劫持?](https://linux22.com/image/1333932/%E4%BB%80%E4%B9%88%E6%98%AF%20DNS%20%E5%8A%AB%E6%8C%81%EF%BC%9F.png)
我的 ISP 伪造了 DNS IP(例如 8.8.8.8)。因此,当我请求某些名称(例如 google.com)时,它会向我发送一些错误的 IP 地址。情况如下:
nslookup youtube.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: youtube.com
Address: 10.10.34.34
当我加密我的 DNS 查询时,一切都很好。这叫“DNS 劫持”还是 DNS 缓存中毒?
答案1
这可能是缓存中毒——有人向服务器发送大量 DNS 响应,希望其中一个被接受,而不是来自上游服务器的有效响应。然后一段时间内,DNS 服务器将从其自己的缓存中提供该欺骗性响应。
请阅读此处以了解更多信息:http://en.wikipedia.org/wiki/DNS_spoofing
答案2
实际上,在这种情况下,这是 DNS 劫持,而不是 DNS 缓存中毒。
DNS 劫持和 DNS 中毒之间的区别在于 DNS 请求的响应者是谁。
在 DNS 劫持的情况下,您的计算机会向上游 DNS 提供商发出请求,询问“www.google.com 在哪里”,而它回应“www.google.com 在 2.3.4.5”,而不会费心去找出它的实际位置。这与正常的 DNS 请求相反,在正常的 DNS 请求中,DNS 服务器会从其缓存或上游提供商查询真实地址,然后告诉您需要连接到谁才能访问 www.google.com。
DNS 缓存中毒是指别人的机器向上游提供商发送请求,询问“www.google.com 在哪里”。当那机器请求www.google.com来自它是上游提供商,攻击者随后会尝试“竞争”DNS响应。因此,投毒者会有效地询问“www.google.com 在哪里”,然后向您的上游DNS提供商抛出大量“www.google.com 位于 2.3.4.5”。如果其中一个“成功”,您的上游DNS将认为www.google.com位于 2.3.4.5,并缓存响应。
现在,当您向上游 DNS 提供商发出请求时,它不再询问其上游提供商,而是“知道”(即已缓存)www.google.com 位于 2.3.4.5 - 即攻击者拥有的域。
但就您的具体情况而言,您并没有受到攻击。您的 ISP 故意错误报告 www.google.com 的位置,以便将您重定向到互联网网关门户,而不是窃取您的私人信息或劫持您的 cookie。或者(因为我们谈论的是 YouTube),您的 ISP 可能与 Google 达成协议,在地理位置上更靠近您的地方托管一些内容,以减少 ISP 的负载,这可能需要您的 ISP 将 YouTube “欺骗”到 ISP 网络内的虚假地址。
总而言之,您的 DNS 被劫持了,但几乎肯定不是恶意的。