DNS 科普·DNS 安全

上回我们说到 DNS 的基本知识以及 DNS 劫持的科普,那么 DNS 安全上又有哪些措施呢?

加密通信

如同 HTTP 通信一样,默认的 DNS 查询同样也是明文的,那么必然也可能遭受到攻击,比如下图中表示了一次中间人攻击(图源 cloudflare): 那么同样的,我们也可以通过加密流量的方式来保证数据的可靠性。对于 DNS 来说,主要有 DoT 和 DoH 两种。

DoT (DNS over TLS) 意味着信道会基于 TLS(SSL) 进行加密传输,而 DoH(DNS over HTTPS)则是基于 HTTPS / HTTP2 进行数据加密传输的。当然,除了这些以外,还新推出了一个叫做 DoQ 的(DNS over QUIC)

从 DoT 到 DoH 到 DoQ,为什么会产生不同的设计和演进呢?

DoQ 的产生相对的比较好理解,毕竟我们可能已经读过太多关于 HTTP2 究竟还有哪些待解决的问题,而 DoQ 又改善了其中的哪些点这类的文章:比如「减少 TCP 三次握手及 TLS 握手时间」、「改进拥塞控制」等等,关于 QUIC 暂不在本文的讨论范围中,因此不做过多赘述。

而从 DoT 到 DoH 的演进和选择则更让人迷惑:加密一下不就够了,为什么还需要基于 HTTP 协议呢,HTTP 协议设计的更为复杂,不够轻量,仿佛会增加通信的成本,增加数据包的大小(比如存在一些不必要的 HTTP Headers)。

他们同时产生并且不被淘汰的原因更多的是安全隐私之间的取舍,TLS 使用 853 端口,而 HTTPS 使用 443 端口,试想一下,当我们需要进行针对性的流量审计时,如果我们有一个明确的端口号特征,是不是更容易受到管控和监听?

而如果使用 443 流量,DNS 查询的流量就被混在了万千普通 HTTPS 连接中,对于用户来说,隐私加密性更高。

加密了通道,我们就可以避免在 DNS 查询期间被偷天换日了。

HTTPDNS

但是很明显,上面所有的防御手段并不能防止所谓的 DNS 劫持------如果作妖的不是中间商,而是服务器本身呢?

而 HTTPDNS 选择绕过 DNS 本身,直击灵魂深处:使用 HTTP + IP Port 请求 HTTPDNS 服务器,由它直接返回内容,减少中间商赚差价的情况。

回忆一下我们原来的链路设计,假设完全没用缓存,需要经过 10 步,用户才能最终拿到 IP。(请见上一篇文章:DNS 科普·从 DNS 到 DNS 劫持

而在 HTTPDNS 中,假设我们的 HTTPDNS 服务器 IP 为 6.6.6.6,只要告诉他需要查询的域名(codesky.me),HTTP Response 中就会告诉你对应的 IP。

当然,这本身并不是 DNS 协议的一部分,而是为了避免劫持污染问题应运而生的一项「应用服务」。因此在实际使用 HTTPDNS 时,往往会同时提供一些注入:「SDK」、「软件」等工具,来保证「先请求 HTTPDNS 服务器,再带着 IP 直达业务链接」。 如果我们用 curl 来模拟请求,相当于用户从原来的一次:

shell 复制代码
curl https://codesky.me/search

变成了:

shell 复制代码
curl https://6.6.6.6?domain=codesky.me # 返回 1.2.3.4
curl https://1.2.3.4/search -H "Host: codesky.me" # 直接用 IP-Port 访问

总结

说完了这一部分,DNS 的科普之旅暂时告一段落,由于近期工作比较忙,跑医院也比较多,MySQL 笔记只整理了 40%,正在努力。

如果有其他前后端方面希望我讨论(科普)的话题,欢迎留言。

参考资料

相关推荐
小强库计算机毕业设计几秒前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
小狼1835 分钟前
实践6|SDD 实战:AI 写的规格被推翻了四次
后端·claude
篮框坏了7 分钟前
"DeepSeek Harness 实测:一毛钱干三活,但默认配置是个坑"
后端·ai编程
jobBridge2118 分钟前
大模型到底是怎么"想"的?我把 Transformer 拆开,发现它其实是个"接词狂魔"
人工智能·后端·编程语言
唐青枫1 小时前
看懂内存地址之后,才算真正入门 Zig:指针、切片与实战
后端
朋克洛德的码农1 小时前
Go并发-sync包四剑客:Mutex、RWMutex、WaitGroup、Once-从入门到原理
开发语言·后端·golang
fulton1 小时前
为什么不用现成的开源工具?NovelOps与6大AI写作工具横向对比
后端
fulton1 小时前
3个月踩坑实录:从想法到270章规划,AI写长篇到底要花多少成本?
后端
fulton1 小时前
为什么AI写到20章就开始"复制粘贴"自己?创意扰动机制详解
后端
艺艺生辉1 小时前
从if-else到策略模式
后端·设计模式