DNSSEC

安全和威胁
对DNS的扩展,为DNS数据添加密码签名,帮助防止欺骗和缓存中毒攻击。
← 返回词汇表

什么是 DNSSEC?

DNSSEC(域名系统安全扩展)是一组针对 DNS 的加密扩展,通过为记录添加数字签名来验证 DNS 响应,防止攻击者伪造或篡改 DNS 数据。

DNSSEC 如何工作

Chain of Trust:

Root Zone (.)

├── Signs: .com zone key

│ └── KSK (Key Signing Key)

│ └── ZSK (Zone Signing Key)

TLD Zone (.com)

├── Signs: example.com zone key

│ └── DS Record points to child KSK

Domain Zone (example.com)

├── Signs: All DNS records

│ └── RRSIG (Record Signature)

│ └── DNSKEY (Public keys)

Resolver validates entire chain from root

DNSSEC 记录类型

记录用途说明
RRSIG签名每组记录的加密签名
DNSKEY公钥区域的公共签名密钥(KSK 和 ZSK)
DS委派签名者父区域中子区域 KSK 的哈希值
NSEC/NSEC3经验证的否定证明证明某条记录不存在

密钥类型

密钥用途轮换频率
KSK(密钥签名密钥)签署 DNSKEY 记录每年一次或更少
ZSK(区域签名密钥)签署其他所有记录每月到每季度

DNSSEC 验证流程

1. 客户端向 DNS 解析器查询 example.com 的 A 记录

2. 解析器获取 A 记录和 RRSIG 签名

3. 解析器获取 DNSKEY 以验证 RRSIG

4. 解析器根据 DNSKEY 验证 DS 记录

5. 链条继续向上到根区域,逐级完成验证

6. 如果所有签名都有效,响应即通过身份验证

DNSSEC 可防范的威胁

攻击说明DNSSEC 防护
缓存投毒向缓存注入虚假记录签名可以检测篡改
中间人攻击拦截并修改响应加密验证会失败
DNS 欺骗返回伪造的 IP 地址伪造记录没有有效签名

实施注意事项

最佳实践

1. 使用算法 13 或 14:ECDSA 的签名比 RSA 更小

2. 自动轮换密钥:使用 OpenDNSSEC 等工具管理密钥生命周期

3. 监控过期时间:RRSIG 签名具有有效期

4. 部署前测试:使用 dnsviz.net 等工具验证区域

5. 准备应急方案:记录密钥轮换流程

DNSSEC 为 DNS 完整性提供重要保护,确保用户访问合法目标,而不是攻击者控制的服务器。

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。