在DNSSEC系列的首篇文章中,我揭示了DNS系统的安全漏洞,第二篇则介绍了DNSSEC解决方案。本篇将深入分析DNSSEC的实际防护能力:它能全面保护用户吗?还是存在防御死角?
以下是首篇提到的、DNSSEC可防护的攻击类型:
- 传统方式的DNS缓存投毒攻击
- “Kaminsky式"DNS缓存投毒
- 用于广告/监控的ISP劫持
- 强制门户(Captive Portal)攻击
- 渗透测试者通过中间人攻击劫持DNS
- 恶意攻击者通过主动MITM劫持DNS
而以下攻击类型DNSSEC无法防护:
- 恶意软件设置的流氓DNS服务器
- 通过DNS管理面板直接篡改IP记录
细心的读者可能会困惑:“我到底受没受保护?“这取决于具体场景——当攻击者位于用户与DNS服务器之间时,可伪装成DNS服务器并降级为非DNSSEC服务,返回未签名的响应。
全面防护方案包括:
- 在本地部署DNSSEC解析服务器(教程可实现)
- 杜绝恶意软件运行
- DNS管理面板启用双因素认证
- 启用注册局锁定机制(详见第一部分)
- 使用支持DNSSEC的操作系统
- 仅访问DNSSEC保护的网站
- 需要开发强制DNSSEC校验的API,阻断未签名响应
DNSSEC冷知识:
- 瑞典.SE域于2005年9月成为全球首个部署DNSSEC的顶级域
- 根域DNSSEC于2010年7月15日完成部署
- 荷兰.NL域成为首个超百万DNSSEC签名的TLD
- 匈牙利正处于DNSSEC测试阶段(链接为匈牙利语)
- 可使用DNSSEC验证工具测试效果
- 替代方案如DNSCrypt也存在
- 未来或通过DNSSEC强制实施HSTS
- 未来或实现基于DNSSEC的证书钉扎
(附:作者意外删除原文后通过ChromeCacheView工具恢复的轶事)