DNS 最初的設計並未包含任何安全機制,因此存在被攻擊者利用的漏洞,如偽造 DNS 記錄並將用戶導向詐騙網站。因此,DNSSEC 被設計用以保護 DNS 回應的真實性與完整性。
DNSSEC 透過在現有 DNS 記錄上增加加密簽章,確保 DNS 資料在傳輸途中未被竄改。這些簽章存放於 DNS 名稱伺服器內,解析器可透過檢查簽章來驗證資料真實性。
DNSSEC 透過以下記錄進行簽章驗證:
RRSIG:資源記錄集合(RRSet)的數位簽章。
DNSKEY:存放公開金鑰,供解析器驗證簽章。
DS:存放 DNSKEY 記錄的雜湊值,建立信任鏈。
NSEC/NSEC3:用於證明域名不存在,防止攻擊者偽造 NXDOMAIN 回應。
CDNSKEY/CDS:傳遞子區域的 DS 狀態至父區域,要求父區域更新 DS 記錄。
部署 DNSSEC 能有效防止 DNS 快取投毒及偽造回應,避免使用者被導向惡意網站。此外,即使網站本身具備防火牆防護,若DNS 架構未透過 DNSSEC 保護,用戶的數據與安全仍可能面臨風險。
一張含有 文字, 螢幕擷取畫面, 字型, 圖表 的圖片 AI 產生的內容可能不正確。
DNSSEC 將同一名稱與類型的 DNS 記錄組合成資源記錄集合(RRSet),並對此集合進行簽署。每個 DNS 區域(zone)透過區域簽章金鑰(ZSK)進行簽署,生成 RRSIG 記錄以供驗證。
RRSIG 記錄包含以下欄位:
ZSK 負責簽署區域內資料,並對外公告公鑰以供驗證。ZSK 定期輪替,以降低金鑰外洩風險。
KSK 負責簽署 DNSKEY 記錄(包含 ZSK),提高安全層級。KSK 輪替頻率較低,因此安全性較高。
DS記錄透過在父區域內建立公鑰指紋,形成從根區域到子區域的信任鏈。解析器驗證時,會確認 DS 記錄與子區域的 DNSKEY 是否一致。
NSEC 用於驗證域名不存在,防止偽造不存在的記錄。
NSEC3 則進一步將記錄加密(哈希)處理,避免區域資料被完整枚舉。
DNSSEC 提供三種主要運作模式:
- DDoS 攻擊風險
根區域簽署儀式是 DNSSEC 中最高安全等級的程序,用以簽署根區域的公開金鑰,建立整個DNSSEC 的信任根基。
妥善部署 DNSSEC,能大幅提高 DNS 安全性,避免使用者資料與企業數位資產遭受威脅。
歡迎關注Akamai,通過定期更新的文章瞭解更多與Web、安全、雲計算、邊緣計算有關的資訊和見解。