当谈到使用 dnscrypt-proxy 加密 DNS 查询时,人们也倾向于在 Linux 机器上使用 dnsmasq。过去此设置的主要目标是为 DNS 查询提供缓存,但现在 DNS 缓存是在 dnscrypt-proxy 本身中实现的。所以看起来 dnscrypt-proxy 就是现在人们所需要的。但我注意到人们通常将以下行(或类似的内容)添加到 dnsmasq 配置中:
server=/pool.ntp.org/1.1.1.1
此行的目的是将时间服务器域的 DNS 查询直接发送到 DNS 服务器,从而跳过整个加密过程(这只是常规的 DNS 查询)。有些人曾经告诉我,这些查询应该尽可能快地进行,以提供更好的时间同步。那么,这种方法有意义吗?
答案1
从安全角度来看,我认为这种方法并不可取。 DNS over HTTPS 和/或 DNSCrypt 的目的不仅是提供保密性,即隐藏查询,而且也许最重要的是提供真实性。特别是,以明文方式(未加密)对 NTP 服务器执行 DNS 查询将使网络容易遭受使用虚假 NTP 数据包的 MITM 攻击,从而击败或绕过 HSTS。由于 HSTS 依赖于其max-age
参数,因此可以通过欺骗 NTP 服务器并更改机器的时钟来击败它。