乍一看 DoT 与 DoH 好像挺相似,毕竟 HTTPS 就是应用了 SSL/TLS 加密协议的 HTTP 传输协议,但是这两者区别明显。DoT 使用基本 TCP 连接而 DoH 使用 HTTP 与 HTTP/2 连接;DoT 使用自己 853 端口连接而 DoH 使用标准 443 端口连接。这样 DoH 可以伪装成一般的 HTTP 流量,加密后他人也无从知晓里面究竟是什么。而 DoT 使用唯一 853 端口,至少中间人可以知道这是 DNS 请求,尽管他们也无法获得请求内容,所以也不敢随便封禁。
关于「DoT or DoH」的问题一直争论不休。DNS 架构师 Paul Vixie 曾在社交媒体上表态:
“RFC 8484 会给互联网安全带来隐患。抱歉向您泼了冷水。就像一群鸭子一样,囚犯们找到了庇护所。”
“DoH 是企业和其他私有网络的过顶旁路。但是DNS是控制平面的一部分,网络运营商必须能够监视和过滤它。使用 DoT,永远不要使用 DoH。”
然而这场辩论双方都有正当理由,只是取舍不同。DoT 更有利于网络安全,而 DoH 则比较倾向「人权保护」。事实上共识还是存在的,没有人认为 DNS 请求不应被加密,只不过对如何做得更好有不同意见。
在上一篇文章简单围绕 DNS 解析行为与 CDN 实现,在评论区里好伙伴 木子 提醒我关注 DNS 劫持、污染等非常规行为 。这些不良手段还是有必要了解下细节,以及该如何避免。非正常行为 DNS 劫持如果通过某些手段获取 DNS 服务器的控制权,便可人为操纵查询结果。将结果指向修改过的 IP 地址,以实现访问导向假网址或者直接导致无法访问。这种行为最常出现在 ISP 提供的免费 DNS 服务器上。有些 ISP 会对 DNS 投毒引导至自己的服务器上,降低外网压力,甚至植入广告获利。有些 ISP 会积极响应号召,将某些「不合适」的网站返回错误的解析结果。还有 ISP 调高 TTL 使 DNS 请……