DNSSEC 域名系统安全扩展深度解析:从信任链构建到工程部署
概述
域名系统(Domain Name System, DNS)是互联网的核心基础设施,负责将人类可读的域名(如 www.example.com)转换为机器可路由的 IP 地址(如 192.0.43.7)。然而,DNS 协议设计于上世纪 80 年代,当时互联网规模有限,安全性并非首要考量。原始 DNS 协议(RFC 1034/1035)缺乏数据来源验证和完整性保护机制,使得 DNS 缓存投毒(Cache Poisoning)、中间人攻击(MitM)和响应伪造等威胁长期存在。
DNSSEC(DNS Security Extensions,域名系统安全扩展)是一组 IETF 标准(核心规范为 RFC 4033/4034/4035),通过公钥密码学手段为 DNS 数据提供数据来源认证(Data Origin Authentication)和数据完整性保护(Data Integrity Protection)。需要特别强调的是:DNSSEC 并不对 DNS 查询和响应进行加密,它保护的是数据不被篡改,而非隐藏数据内容。
DNSSEC 的核心设计思想可以概括为:
┌─────────────────────────────────────────────────────────────┐
│ DNSSEC 安全模型 │
│ │
│ 1. 每个 DNS 区域拥有独立的公钥/私钥对 │
│ 2. 区域私钥对 DNS 资源记录集进行数字签名 → 生成 RRSIG │
│ 3. 父区域对子区域公钥的哈希值进行签名 → 生成 DS 记录 │
│ 4. 从根区到叶区域形成一条完整的信任链 │
│ 5. 递归解析器从信任锚(根区公钥)出发逐级验证签名 │
│ │
│ 安全属性: │
│ ✅ 数据来源认证 — 确认数据确实来自权威区域 │
│ ✅ 完整性保护 — 确认数据在传输过程中未被篡改 │
│ ❌ 机密性 — DNSSEC 不提供加密,查询和响应仍为明文 │
│ ❌ 可用性 — DNSSEC 不能防御 DDoS 攻击 │
└─────────────────────────────────────────────────────────────┘设计动机:DNS 协议的安全缺陷
原始 DNS 的脆弱性
DNS 协议最初设计时,互联网仅连接了数百台主机,网络参与者之间存在天然的信任。随着互联网规模爆炸式增长,这一信任假设早已不成立。原始 DNS 协议存在以下关键安全缺陷:
1. 无数据来源验证
递归解析器向权威服务器发送查询时,仅通过源 IP 地址判断响应是否来自目标服务器。然而,DNS 响应数据包的源 IP 地址极易伪造(IP Spoofing),攻击者可以向解析器发送伪造的权威响应。
2. 无完整性保护
DNS 报文在传输过程中不经过任何加密或认证,中间节点可以任意修改响应内容。
3. 事务 ID 熵值不足
早期 DNS 实现中,事务 ID(Transaction ID)仅 16 位(65536 种可能),且部分实现使用可预测的随机数生成器。攻击者可以在响应窗口期内暴力猜测 TXID,注入伪造响应。
缓存投毒攻击的威胁模型
DNS 缓存投毒(Cache Poisoning)是 DNS 安全最经典的攻击场景:
攻击者目标:让递归解析器缓存一条伪造的 DNS 记录
(将 www.bank.com 指向攻击者控制的 IP)
攻击步骤:
1. 受害者向递归解析器查询 www.bank.com
2. 递归解析器向权威服务器转发查询
3. 攻击者在权威响应到达前,向解析器发送大量伪造响应
每个猜测不同的 TXID(16 位 → 最多 65536 次猜测)
4. 如果某个伪造响应的 TXID 和源端口匹配,解析器接受并缓存
5. 此后所有查询 www.bank.com 的用户都被重定向到攻击者 IP
防御演进:
- Source Port Randomization:将源端口从固定 53 改为随机高端口
攻击者需同时猜测 TXID(16 位)+ 源端口(16 位)= 32 位熵
- 0x20 Encoding:利用域名大小写混合增加额外熵值
- DNSSEC:从根本上解决——密码学签名使伪造响应无法通过验证为什么需要 DNSSEC 而非仅依赖传输层加密
DNS over HTTPS(DoH)和 DNS over TLS(DoT)可以保护 DNS 查询的机密性,防止窃听,但它们不能保证 DNS 响应内容的真实性。如果权威服务器本身被入侵,或者递归解析器到权威服务器之间的链路被篡改,DoH/DoT 无法检测到伪造的响应。DNSSEC 在数据源头进行签名,即使经过不受信的中间环节,解析器也能验证数据的真实性。
密码学基础与信任链模型
密钥体系:KSK 与 ZSK
DNSSEC 采用双密钥架构,将密钥签名功能与区域签名功能分离:
| 密钥类型 | 英文全称 | 用途 | 安全要求 |
|---|---|---|---|
| KSK | Key Signing Key | 仅用于对 ZSK 公钥进行签名,生成 DS 记录链 | 最高:离线保护,长期有效(1-2 年) |
| ZSK | Zone Signing Key | 用于对区域内的资源记录集(RRset)进行签名 | 中等:在线签名,可更频繁轮换(30-90 天) |
- 安全性:KSK 可以离线存储(如 HSM 硬件安全模块),大幅降低私钥泄露风险
- 灵活性:ZSK 频繁轮换不需要更新父区域的 DS 记录,避免链式更新的复杂性
- 性能:ZSK 使用更快的算法(如 ECDSA P-256),加速区域签名和验证
信任链的数学构造
DNSSEC 的信任链是一个层次化的签名链,从根区域(Root Zone)向下延伸到各个叶区域:
信任链结构(以 www.example.com 为例):
根区(.)
│
├── DNSKEY: KSK_root(根区密钥签名密钥)
│ └── 自签名 RRSIG(DNSKEY) ← 信任锚
│
└── DS: Hash(KSK_com) ← 根区对 com. 公钥的哈希背书
│
com. 区域
│
├── DNSKEY: KSK_com, ZSK_com
│ └── RRSIG(DNSKEY) 由 KSK_com 签名
│
└── DS: Hash(KSK_example) ← com. 对 example.com. 公钥的哈希背书
│
example.com. 区域
│
├── DNSKEY: KSK_example, ZSK_example
│ └── RRSIG(DNSKEY) 由 KSK_example 签名
│
├── A: www.example.com → 93.184.216.34
│ └── RRSIG(A) 由 ZSK_example 签名
│
└── NSEC3: 证明 "mail.example.com" 不存在
└── RRSIG(NSEC3) 由 ZSK_example 签名验证过程的数学描述
递归解析器验证 DNSSEC 签名的过程可以形式化描述如下:
定义:
- $K_{pub}^{zone}$:区域的公钥
- $K_{priv}^{zone}$:区域的私钥
- $RRset$:待签名的资源记录集
- $H(x)$:哈希函数(如 SHA-256)
- $Sign(K_{priv}, data)$:数字签名函数
- $Verify(K_{pub}, data, \sigma)$:签名验证函数
$$RRset_{signed} = RRset \cup \{RRSIG(RRset, alg, labels, origTTL, exp, inception, keyTag, signer, \sigma)\}$$
其中签名值 $\sigma$ 计算为:
$$\sigma = Sign(K_{priv}^{ZSK}, RRset \| metadata)$$
签名验证(递归解析器执行):
$$valid = Verify(K_{pub}^{ZSK}, RRset \| metadata, \sigma)$$
验证通过后,解析器还需验证 ZSK 本身的可信性:
$$valid_{chain} = Verify(K_{pub}^{KSK}, DNSKEY_{RRset} \| metadata, \sigma_{KSK})$$
最终,通过 DS 记录链将信任传递到父区域:
$$DS_{parent}(child) = Hash(K_{pub}^{KSK,child})$$
$$valid_{parent} = Verify(K_{pub}^{ZSK,parent}, DS_{RRset} \| metadata, \sigma_{parent})$$
核心协议规范
资源记录类型
DNSSEC 引入了多种新的资源记录(Resource Record)类型,每种承担不同的密码学功能:
| 记录类型 | RFC | 功能 | 生成者 |
|---|---|---|---|
| DNSKEY | RFC 4034 | 存储区域公钥(KSK 或 ZSK) | 区域管理员 |
| RRSIG | RFC 4034 | 对 RRset 的数字签名 | 区域签名软件 |
| DS | RFC 4034 | 父区域对子区域 KSK 公钥的哈希 | 父区域(通过注册商提交) |
| NSEC | RFC 4034 | 证明某域名不存在(明文链表) | 区域签名软件 |
| NSEC3 | RFC 5155 | 证明某域名不存在(哈希链,防区域遍历) | 区域签名软件 |
| NSEC3PARAM | RFC 5155 | NSEC3 的参数(算法、迭代次数、salt) | 区域管理员 |
DNSKEY 记录格式
DNSKEY 记录的 RDATA 结构:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
| Flags (16 bits) |Protocol| Alg |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
| |
+ Public Key (变长) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
关键字段:
- Flags: 0x0100 = KSK (Bit 7 置位), 0x0000 = ZSK
- Protocol: 固定为 3 (DNSSEC)
- Algorithm: 签名算法编号
- 5 = RSA/SHA-1 (已废弃)
- 8 = RSA/SHA-256
- 10 = RSA/SHA-512
- 13 = ECDSA P-256/SHA-256
- 14 = ECDSA P-384/SHA-384
- 15 = Ed25519
- 16 = Ed448RRSIG 记录格式
RRSIG 记录的 RDATA 结构:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
| Type Covered | Alg | Labels | Original TTL |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
| Signature Expiration |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Signature Inception |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Tag | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
/ Signer's Name (变长) /
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
/ Signature (变长) /
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
关键字段:
- Type Covered: 被签名的 RRset 类型(如 A、AAAA、MX)
- Signature Expiration/Inception: 签名有效期(Unix 时间戳)
- Key Tag: 公钥的短标识,用于快速匹配 DNSKEYDS 记录:信任链的关键环节
DS(Delegation Signer)记录是父区域对子区域 KSK 公钥的哈希背书,是信任链的核心环节:
DS 记录的 RDATA 结构:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
| Key Tag | Algorithm | Digest Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
/ Digest (变长,取决于 Digest Type) /
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Digest Type:
- 1 = SHA-1 (已废弃)
- 2 = SHA-256
- 4 = SHA-384
DS 记录内容 = Hash(DNSKEY 记录的 RDATA 前 3 字段 + 公钥数据)NSEC3:安全的不存在证明
原始 NSEC 记录使用明文链表证明域名不存在,但会导致区域遍历(Zone Walking)攻击——攻击者可以通过遍历 NSEC 链获取区域内所有域名。NSEC3(RFC 5155)通过哈希函数解决此问题:
NSEC3 工作原理:
原始域名 → 哈希 → NSEC3 名称
example.com → SHA-1(salt + "example.com") → 1A2B3C...example.com
mail.example.com → SHA-1(salt + "mail.example.com") → 4D5E6F...example.com
NSEC3 记录存储的是哈希后的名称,按哈希值排序形成链。
攻击者无法从哈希值反推原始域名,防止区域遍历。
NSEC3 参数(NSEC3PARAM 记录):
- Hash Algorithm: 1 = SHA-1
- Flags: 0x01 = Opt-Out(对不签名子区域不生成 NSEC3,减少区域大小)
- Iterations: 哈希迭代次数(推荐 0-15,增加计算成本以抵抗暴力破解)
- Salt: 随机盐值(1-128 字符十六进制),防止跨区域的彩虹表攻击部署实践与密钥管理
KSK 轮转仪式
KSK(Key Signing Key)的轮转是 DNSSEC 部署中最关键、最复杂的操作。根区 KSK 轮转尤其具有全球影响力,因为全球所有支持 DNSSEC 的递归解析器都必须信任新的根区 KSK。
根区 KSK 轮转流程(以 2018 年第一次轮转为例):
阶段 1:生成新 KSK(提前 2 年)
├── 在 HSM 中生成新的 KSK 密钥对
├── 新 KSK 公钥加入根区 DNSKEY RRset
├── 旧 KSK 继续有效,新旧共存
└── 等待全球解析器缓存新 DNSKEY RRset(TTL 过期)
阶段 2:新 KSK 签名(轮转启动)
├── 使用新 KSK 对 ZSK 进行签名
├── 旧 KSK 签名的 ZSK 记录保留
├── 生成新 DS 记录并提交给 IANA
└── 等待父区(根区无父区,自签名)更新
阶段 3:旧 KSK 退役(轮转完成后 30 天)
├── 从 DNSKEY RRset 中移除旧 KSK
├── 移除旧 KSK 签名的 RRSIG
└── 旧 KSK 安全归档(HSM 中保留)2018 年根区 KSK 轮转的关键数据:
| 参数 | 值 |
|---|---|
| 旧 KSK Key Tag | 19036 |
| 新 KSK Key Tag | 20326 |
| 轮转开始时间 | 2018 年 7 月 11 日 |
| 旧 KSK 退役时间 | 2018 年 10 月 11 日 |
| 全球解析器影响 | 约 1% 的解析器因未更新信任锚而暂时无法验证 |
| 仪式地点 | ICANN 在德克萨斯州和弗吉尼亚州的两处安全设施同步进行 |
ZSK 管理最佳实践
ZSK(Zone Signing Key)的轮转频率远高于 KSK,通常每 30-90 天轮换一次:
ZSK 轮转策略:
1. 预发布(Pre-Publish)策略(推荐)
├── 新 ZSK 提前加入 DNSKEY RRset(但不用于签名)
├── 等待 TTL 过期,全球解析器缓存新 DNSKEY
├── 切换:新 ZSK 开始签名,旧 ZSK 保留在 DNSKEY 中
└── 旧 ZSK 签名的 RRSIG 过期后,从 DNSKEY 中移除
2. 双签名(Double-Signature)策略
├── 新旧 ZSK 同时对区域进行签名
├── 每个 RRset 有 2 个 RRSIG(新旧各一)
├── 解析器可以用任一 ZSK 验证
└── 旧 ZSK 退役后,移除其 RRSIG
关键参数:
- ZSK 有效期:30-90 天
- RRSIG 有效期:14-30 天(必须 < ZSK 有效期)
- 签名提前量:在 RRSIG 过期前 7-10 天重新签名
- DNSKEY TTL:通常 1-24 小时DS 记录链式更新
当区域更换 KSK 时,必须更新父区域的 DS 记录。这一过程涉及注册商、注册管理机构和父区域管理员,是 DNSSEC 部署中故障率最高的环节:
DS 记录更新流程:
区域管理员 注册商 注册管理机构(TLD)
│ │ │
│ 1. 生成新 KSK │ │
│ 2. 计算 DS 记录 │ │
│──────────────────────────→│ │
│ 提交 DS 记录 │ 3. 验证 DS 记录格式 │
│ │ 4. 更新 WHOIS/注册数据库 │
│ │─────────────────────────→│
│ │ │ 5. 更新区域文件
│ │ │ 添加新 DS 记录
│ │ │ 6. 签名并发布
│ │ │
│ 7. 等待 DS TTL 过期 │ │
│ 8. 新 KSK 开始签名 ZSK │ │
│ 9. 旧 DS 过期后移除 │ │
│──────────────────────────→│ │
│ │ 10. 更新注册数据库 │
│ │─────────────────────────→│
│ │ │ 11. 移除旧 DS 记录
常见错误:
- 注册商未及时提交 DS 记录 → 新 KSK 无法验证 → 区域不可达
- 旧 DS 过早移除 → 使用旧 KSK 签名的 ZSK 无法验证
- DS 记录格式错误 → 注册商系统拒绝接受安全分析
防护能力
DNSSEC 可以有效防御以下攻击:
| 攻击类型 | 防护机制 | 防护效果 |
|---|---|---|
| DNS 缓存投毒 | RRSIG 签名验证 | ✅ 完全防御:伪造响应无法通过签名验证 |
| 中间人篡改 | 完整性保护 | ✅ 完全防御:任何篡改都会导致签名验证失败 |
| 权威服务器冒充 | 信任链验证 | ✅ 完全防御:没有正确签名的区域无法通过验证 |
| 否定响应伪造 | NSEC/NSEC3 | ✅ 完全防御:域名不存在的证明也经过签名 |
| 区域遍历(NSEC) | NSEC3 哈希 | ✅ 完全防御:哈希后无法反推原始域名 |
局限性与已知挑战
1. 不提供机密性
DNSSEC 签名的是明文 DNS 记录,任何人都可以看到查询和响应内容。DNSSEC 不能防止流量分析或隐私泄露。
2. 放大攻击风险
DNSSEC 签名显著增大了 DNS 响应包体积(通常增大 3-10 倍),可能被用于反射放大攻击(DNS Amplification Attack)。攻击者向开放解析器发送伪造源 IP 的小查询,解析器返回包含多个 RRSIG 的大响应,对受害者形成 DDoS。
3. 部署复杂性
DNSSEC 部署涉及密钥生成、签名、DS 提交、轮转等多个环节,操作门槛高。根据 ICANN 公开统计数据(2023 年前后),全球 gTLD 的 DNSSEC 部署率约 20%,ccTLD 约 25%,二级域更低。近年部署率持续上升,具体数字请参考 ICANN 最新 OCTO 报告。
4. 与中间件冲突
部分 NAT 设备、防火墙或 CDN 服务会修改 DNS 流量(如重写 IP 地址、截断大 UDP 包),破坏 DNSSEC 签名完整性,导致验证失败。
5. 算法敏捷性不足
DNSSEC 算法升级缓慢。尽管 RFC 8624 已推荐 ECDSA P-256/Ed25519 作为首选算法,但大量区域仍在使用 RSA/SHA-256,向新算法迁移需要协调全球解析器支持。
与 DoH/DoT 的协同
DNSSEC 与 DoH/DoT 在功能上互补,共同构成端到端 DNS 安全架构:
┌─────────────┐ DoH/DoT ┌─────────────┐ DNSSEC ┌─────────────┐
│ 客户端 │ ←────────────────→ │ 递归解析器 │ ←──────────────→ │ 权威服务器 │
│ Stub Resolver│ 加密传输通道 │ Resolver │ 数据源认证 │ Authoritative│
└─────────────┘ └─────────────┘ └─────────────┘
│
│ 验证 DNSSEC 签名
│ 检查 AD 标志位
▼
┌─────────────┐
│ 信任锚存储 │
│ (根区 KSK) │
└─────────────┘
安全目标分工:
- DoH/DoT:保护客户端到递归解析器的通信机密性
- DNSSEC:保护权威服务器到递归解析器的数据真实性
- 两者结合:端到端安全(客户端需自行验证或信任递归解析器的验证)国密对照与本土化思考
国密算法在 DNSSEC 中的适用性
DNSSEC 的签名算法通过 IANA 注册表管理(DNSKEY 记录中的 Security Algorithm 字段)。截至 2026 年,IANA 注册的算法包括:
| 算法编号 | 算法 | 状态 | 国密对应 |
|---|---|---|---|
| 8 | RSA/SHA-256 | 推荐 | — |
| 13 | ECDSA P-256/SHA-256 | 推荐 | SM2 可替代(需 IANA 注册) |
| 14 | ECDSA P-384/SHA-384 | 推荐 | — |
| 15 | Ed25519 | 推荐 | — |
| 16 | Ed448 | 推荐 | — |
| 参数 | ECDSA P-256 (NIST) | SM2 (国密) |
|---|---|---|
| 曲线名称 | secp256r1 | sm2p256v1 |
| 素数域 | $p = 2^{256} - 2^{224} + 2^{192} + 2^{96} - 1$ | $p = 2^{256} - 2^{224} + 2^{192} + 2^{96} - 1$(相同) |
| 曲线方程 | $y^2 = x^3 - 3x + b$ | $y^2 = x^3 + ax + b$(参数不同) |
| 基点 G | NIST 定义 | OSCCA 定义 |
| 签名哈希 | SHA-256 | SM3 |
| 签名流程 | 标准 ECDSA | SM2 签名(含 ZA 预处理) |
| IANA 注册 | ✅ 算法 13 | ❌ 未注册 |
- 向 IANA 提交算法编号申请
- 更新 BIND、Unbound、Knot 等主流 DNS 软件以支持 SM2
- 全球递归解析器升级以识别新算法
- 根区或 TLD 率先部署 SM2 签名
中国 DNSSEC 部署现状
中国 DNSSEC 部署面临以下挑战:
1. 根区 KSK 信任锚管理
中国境内的递归解析器(如运营商 DNS、公共 DNS)需要配置根区 KSK 作为信任锚。2018 年根区 KSK 轮转期间,部分中国解析器因未及时更新信任锚而暂时无法验证 DNSSEC。
2. 中文域名(IDN)与 DNSSEC
中文域名(如 中国互联网络信息中心.中国)通过 Punycode 编码(如 xn--fiqs8s.xn--fiqz9s)转换为 ASCII 形式后参与 DNSSEC 签名。编码后的域名长度增加,导致 NSEC3 哈希计算和 RRSIG 验证的开销略有上升。
3. 国家顶级域 .中国 的 DNSSEC 部署
.中国 作为 ccTLD,其 DNSSEC 部署状态直接影响中文域名的安全性。根据 CNNIC 公开数据,.中国 区域已支持 DNSSEC 签名,但二级域的签名覆盖率仍然较低。
4. 合规要求与密码法
《密码法》和 GB/T 39786-2021 对关键信息基础设施的密码应用提出了要求。DNSSEC 作为 DNS 层面的密码技术应用,在关基单位的网络安全防护中可以发挥重要作用,但需要与国密改造方案协调。
总结
DNSSEC 是互联网上唯一广泛部署的、基于公钥密码学的 DNS 数据认证机制。其核心创新在于:
- 层次化信任链:从根区公钥(信任锚)出发,通过 DS 记录链逐级验证,构建覆盖整个 DNS 域名空间的信任体系
- 双密钥架构:KSK/ZSK 分离设计兼顾安全性和灵活性
- 密码学签名:RRSIG 记录为 DNS 数据提供不可否认的来源认证和完整性保护
从更宏观的视角看,DNSSEC 代表了"在现有互联网基础设施上叠加安全层"的典型范式——它不改变 DNS 协议的基本架构,而是通过新增资源记录类型和验证流程,为 DNS 注入密码学安全属性。这一思路对国密改造具有重要参考价值:在不颠覆现有系统的前提下,通过最小化改造实现安全能力的跨越式提升。
参考来源
- RFC 4033: DNS Security Introduction and Requirements
- RFC 4034: Resource Records for the DNS Security Extensions
- RFC 4035: Protocol Modifications for the DNS Security Extensions
- RFC 5155: DNS Security (DNSSEC) Hashed Authenticated Denial of Existence
- RFC 6781: DNSSEC Operational Practices, Version 2
- RFC 8624: Algorithm Implementation Requirements and Usage Guidance for DNSSEC
- ICANN DNSSEC 概览(英文)
- ICANN OCTO-029: ccTLD 的 DNSSEC 部署指导手册
- ICANN OCTO-033: 2022 年 DNSSEC 算法使用
- 互联网域名产业报告(2024 年)
- DNS 信道传输加密技术:现状、趋势和挑战
- GM/T 0003.1-2012 SM2 椭圆曲线公钥密码算法 第 1 部分:总则
- GM/T 0004-2012 SM3 密码杂凑算法