域名系統安全擴展

域名系統安全擴展（Domain Name System Security Extensions，縮寫為DNSSEC）是Internet工程任務組 （IETF）的對確保由域名系統 （DNS）中提供的關於網際網路協議（IP）網路使用特定類型的資訊規格套件。它是對DNS提供給DNS客戶端（解析器）的DNS數據來源進行認證，並驗證不存在性和校驗數據完整性驗證，但不提供機密性和可用性。

## 概述

域名系統（DNS）的原始設計不包含任何安全細節；相反的，它被設計成一個可擴增的分散式系統(Distributed system)。域名系統安全擴展（DNSSEC）嘗試在其中添加安全性，同時仍保持向後兼容性。RFC 3833記錄了DNS的一些已知威脅以及DNSSEC如何應對這些威脅。

DNSSEC旨在保護應用程式（以及服務這些應用程式的緩存解析器）免受偽造或不當操縱的DNS數據所造成的影響（例如域名伺服器緩存污染的數據）。來自DNSSEC保護區的所有答案都經過數位簽章。通過檢驗數位簽章，DNS解析器可以核查資訊是否與區域所有者發布的資訊相同（未修改和完整），並確係實際負責的DNS伺服器所提供。雖然保護IP位址的正確性是許多用戶關注DNSSEC的直接課題，DNSSEC還可以保護DNS中發布的其他任何數據：包括文本記錄（TXT）和郵件交換記錄（MX），並可用於引導發布參照存儲在DNS中的加密證書的其他安全系統：例如證書記錄（CERT記錄，RFC 4398），SSH指紋（SSHFP，RFC 4255），IPSec公鑰（IPSECKEY，RFC 4025）和TLS信任錨（TLSA，RFC 6698）。

### DNSSEC 新增的資源記錄

DNSSEC新增的記錄如下

#### RRSIG

即資源記錄簽名（Resource Record Signature），資源記錄除了A和AAAA之外，也包括DNSKEY、DS、NSEC等記錄，RRSIG用於存放各個資源記錄的簽名，包括

- 演算法類型
- 標籤 (泛解析中原先 RRSIG 記錄的名稱)
- 原 TTL 大小
- 簽名失效時間
- 簽名簽署時間
- Key 標籤 (用來迅速判斷應該用那個 DNSKEY 記錄來驗證的一個數值)
- 簽名名稱 (用於驗證該簽名的 DNSKEY 名稱)
- 簽名

#### DNSKEY

該記錄用於存放用於檢查 RRSIG 的公鑰。其包括

- 標識符 (Zone Key (DNSSEC密鑰集) 以及 Secure Entry Point (KSK和簡單密鑰集))
- 協議 (固定值3 向下兼容)
- 演算法類型
- 公鑰內容

#### DS

即委派簽名者（Deligated Signer），該記錄用於存放 DNSKEY 中公鑰的散列值，包括

- Key 標籤：用來判斷應該用哪個 DNSKEY 記錄進行驗證的一個數值
- 演算法類型：常見的有RSASHA1、RSASHA256、ECDSAP256SHA256，具體可參考附錄「演算法類型列表」
- 摘要類型：創建摘要值的加密散列演算法，主要使用SHA256，具體可參考附錄「摘要類型列表」
- 摘要內容: 一串散列數據，由DNSKEY經由摘要類型演算法得出

#### NSEC和NSEC3

即下一個安全（Next Secure）記錄，用於明確表示特定域名的記錄不存在。

#### CDNSKEY和CDS

用於請求對父區域中的 DS 記錄進行更新的子區域。

## 部署

2010年7月18日，根域名伺服器（root-servers.net）已經完成DNSSEC簽名。

目前已部署在.com、.net、.org、.int、.edu、.mil和.gov等頂級域(gTLD)，以及部分國家和地區頂級域（ccTLD）。

## 外部連結

### 組織和網站

- DNSSEC - DNSSEC information site: DNSSEC.net
- DNSEXT DNS Extensions IETF Working Group
- CircleID - News and Opinions on all DNSSEC related issues
- DNSSEC-Tools Project
- DNSSEC Deployment Coordination Initiative
- DNSSEC Deployment Team
- ICANN DNS Operations Team

### 標準文檔

- RFC 2535 Domain Name System Security Extensions
- RFC 3833 A Threat Analysis of the Domain Name System
- RFC 4033 DNS Security Introduction and Requirements (DNSSEC-bis)
- RFC 4034 Resource Records for the DNS Security Extensions (DNSSEC-bis)
- RFC 4035 Protocol Modifications for the DNS Security Extensions (DNSSEC-bis)
- RFC 4398 Storing Certificates in the Domain Name System (DNS)
- RFC 4470 Minimally Covering NSEC Records and DNSSEC On-line Signing
- RFC 4509 Use of SHA-256 in DNSSEC Delegation Signer (DS) Resource Records (RRs)
- RFC 5155 DNSSEC Hashed Authenticated Denial of Existence
- RFC 6781 DNSSEC Operational Practices, Version 2

### 其他文檔

- A Fundamental Look at DNSSEC, Deployment, and DNS Security Extensions by Geoff Huston
- A short timeline of DNSSEC by Miek Gieben
- Enabling secure name resolution using DNSSEC for various applications
- DNSSEC Howto by Olaf Kolkman (RIPE NCC/NLnet Labs)
- Howto secure your (reverse) Zone by Holger Zuleger
- Easier Email Security is on the Way?
- "DNSSEC and the Zone Enumeration" by Marcos Sanz
- DNSSEC BRIEFING and Root Zone Signing (Part I) , ccTLD paper on DNSSEC by ccNSO, February 2008
- DNSSEC in 6 Minutes by Alan Clegg, Internet Systems Consortium (PDF-Datei; 315 kB)
- Implementing DNSSEC Cisco Internet Protocol Journal
- ICANN's TLD DNSSEC Report (generated daily)
- DNSSEC is unnecessary - Against DNSSEC
- DNSSEC is necessary - For DNSSEC