我想知道 DNSSEC 的目的,它真正试图解决什么问题?我认为通过将非 DNSSEC DNS 服务器插入为区域的非 DNSSEC 副本提供服务的网络,很容易欺骗 DNSSEC。但也许这不是 DNSSEC 试图解决的问题?
使用 DNSSEC,DNS 服务器使用公钥加密来签署和检查彼此的区域。例如,这可能有助于防止 DNS 缓存中毒。只有在检查了 DNS 响应的签名后,数据才会添加到缓存中。
好的。
但是客户端如何验证他们正在使用受 DNSSEC 保护的 DNS?如果您尝试防止 DNS 缓存中毒但不防止 DNS 服务器插入,那么 DNSSEC 是否值得麻烦?
根据https://dnssec-analyzer.verisignlabs.com/ ,我有一个受 DNSSEC 完全保护的域。在我公司的 DNS(或餐厅 wifi)中,我将此域(或“区域”)的副本添加到网络 DNS 服务器。此本地 DNS 区域未使用DNSSEC。公司 DHCP 服务器指示公司网络(或餐厅 wifi)中的客户端使用公司 DNS。现在,如果我更改公司 DNS 上复制区域中的记录,客户只需遵循这些更改而不会发出警告或投诉。最终用户可能认为他们是安全的,因为他们在文档中阅读了我的区域受 DNSSEC 保护,但实际上他们在我的公司网络(或餐厅 wifi)上使用了欺骗区域并且根本没有受到保护?
DNSSEC 允许您确保您收到的 DNS 数据与域所有者发布的数据相比没有变化(对于签名区域)。可以在查询路径的任何阶段完成此验证。
从客户端的角度来看,为了实现这一点,您最好在本地进行验证(今天并不常见,但远非闻所未闻),或者拥有一个安全的网络路径,可以弥合与受信任的验证解析器之间的差距。
这种安全的网络路径可能意味着 DNS-over-TLS、DNS-over-HTTPS、DNSCrypt 或在某种程度上还意味着您至少可以在一定程度上信任的本地网络(较弱,但对于一部分攻击场景仍然有用)。