HTTP 公钥固定(HPKP) 是一种标准,它允许 HTTPS 网站指定其信任的证书,并指示浏览器不允许与受任何其他证书保护的该站点进行任何连接。
这可以用来促进对网站的持续拒绝服务攻击吗?假设攻击者破坏了像 cnn.com 这样的网站(比如说)。看起来攻击者可以配置网络服务器以启用HSTS和 HPKP,具有指定攻击者控制的证书的固定策略。攻击可能会被发现,合法管理员重新获得控制权,但在此期间访问 cnn.com 的每个人都会收到 HSTS 和 HPKP 策略,并且他们的浏览器会缓存它。结果,他们的浏览器将不允许与 cnn.com 的任何 HTTP 连接(由于 HSTS 策略),并且仅在服务器使用固定证书和公钥时才允许 HTTPS 连接。但由于攻击者指定了固定证书,它可能使用了由攻击者控制的私钥,cnn.com 不知道。因此,在攻击者被踢出后,cnn.com 无法使用攻击者选择的私钥终止 SSL 会话。因此,从这些浏览器到 cnn.com 的所有未来连接都将失败。
HPKP 标准确实建议浏览器应为这些策略设置最长期限,但它也建议将最长期限设置为 60 天。所以,如果我理解正确的话,这意味着如果攻击者暂时破坏了一个网站,那么攻击者可以确保在接下来的 60 天内,所有在短时间内访问该网站的用户都绝对无法访问该网站。该网站已被入侵。基本上,在攻击者控制的时间访问该网站的任何用户都会在接下来的 60 天内“中毒”,并且该网站看起来根本无法访问。
由于网站违规并非闻所未闻,这似乎是一个相当严重的结果。这是一种相当不寻常的拒绝服务攻击:它允许对网站进行不可逆转的破坏,除了等待之外,网站管理员无能为力。看起来这种攻击可能会被用于攻击任何网站,甚至是当前未使用 HPKP、HSTS 甚至 HTTPS 的网站。
我是否正确理解了这一点?网站是否可以采取任何缓解措施来防止自己以这种方式受到 DoS 攻击?是否有人认为 HPKP 不会引入任何比 HPKP 之前已经存在的风险更严重的新 DoS 风险?这种持续的 DoS 攻击是否曾在野外观察到过?
我已经阅读了描述 HPKP 的标准 RFC 7469,它似乎没有任何缓解措施。看来我描述的攻击可以作为'hostile pinning'的一个实例,但该标准似乎没有提到任何有用的敌对 pinning 缓解措施(除了 max-age)。