有效防御 Kaminsky 攻击。存在过度简化的风险,Kaminsky 攻击可用于攻击不使用源端口随机化的 DNS 客户端。对 Kaminsky 攻击的直接防御是打开源端口随机化。如今,大多数现代 DNS 软件确实执行源端口随机化。
(如果您有一段时间没有这样做,我强烈建议您更新客户端和服务器上的 DNS 软件,以获得这种防御的好处。)
当前状态。幸运的是,大多数 Internet 已经将其 DNS 软件升级到了包含针对 Kaminsky 攻击的防御的更新版本。这些防御使卡明斯基的攻击变得相当困难。(它们并非 100% 不可能,但它们需要大量资源:数十亿个数据包。)因此,今天的大多数站点都可能受到相当好的保护,免受 Kaminsky 攻击。例如,您的 ISP 和您的银行受到保护的可能性非常大。
如果有任何落后者没有将他们的 DNS 软件更新到包含针对 Kaminsky 攻击的防御(例如源端口随机化)的最新版本,那么他们很可能非常容易受到攻击。Kaminsky 攻击很容易安装并且非常有效,如果服务器不包含针对它的防御。
DNSSEC 呢? DNSSEC 是一项单独的交易。它旨在提供安全性,即使在您的 DNS 服务器受到威胁或中间人攻击您的网络流量的情况下也是如此。因此,理论上,DNSSEC 将提供一种可接受的替代防御方式来抵御 Kaminsky 攻击。
然而,在实践中,依靠 DNSSEC 来保护您免受 Kaminsky 攻击将是一个糟糕的想法。有两个问题:
首先,DNSSEC 目前并未广泛部署。今天,很少有域使用 DNSSEC 签名。这使得部署具有严格验证的 DNSSEC 成为不可能。相反,在当前的 DNSSEC 实施中,如果接收到对未签名域的响应,则在不执行任何加密检查的情况下接受响应。这意味着易受 Kaminsky 攻击的客户端仍然可能受到攻击,即使它使用 DNSSEC。
其次,源端口随机化部署起来非常容易,而 DNSSEC 部署起来更具挑战性(运营和后勤)。继续使用易受攻击的旧版本 DNS 软件,您必须发疯。部署源端口随机化很容易(在大多数情况下,只需升级到最新版本的 DNS 软件),如果不利用源端口随机化防御,那就太疯狂了。
DNSSEC 仍然是一个非常好的主意,Kaminsky 攻击凸显了广泛部署 DNSSEC 的重要性。所以,不要误解我的意思。我鼓励你在你的机器上启用 DNSSEC。只是不要将其视为源端口随机化的替代品。
综上所述。每个人都应该使用源端口随机化。这很简单,也是目前针对 Kaminsky 攻击最有效的防御措施。幸运的是,我的印象是源端口随机化已经被非常广泛地使用,因此大多数互联网应该可以很好地防御 Kaminsky 攻击。
从长远来看,DNSSEC 很重要,因为它提供了强大的保护,可以防止针对 DNS 的一大类可能的攻击——即使是我们没有想到或不知道的攻击,但将来可能会发现。这是我们拥有的最好的预防措施,可以主动防止未来发生卡明斯基袭击等事件。因此,网络运营商和其他人最好尽其所能以所有审慎的速度部署 DNSSEC。