DNS 與命名

DNSSEC(網域名稱系統安全擴充)

/ DNS-sec /

普通 DNS 有個可怕的弱點:當解析器收到一個答案,它無法分辨那到底是真的來自正當擁有者,還是來自偽造它的攻擊者。由於傳統 DNS 答案未經認證,中間人或被毒化的快取可能餵給你錯誤的銀行位址,而你毫不知情。DNSSEC(DNS 安全擴充)藉由加上密碼學簽章來補上這個缺口,讓解析器能驗證一個答案是否為真、是否未被竄改。

具體來說,區域擁有者用私鑰簽署他們的記錄,附上簽章記錄(RRSIG),解析器可用該區域的公鑰(公布在 DNSKEY 記錄中)來檢查。訣竅在於信任:你怎麼信任那個區域的金鑰?每一層為它下一層背書。父區域公布其子區域金鑰的一小段指紋(DS 記錄),於是 .com 為 example.com 背書、根為 .com 背書,而你從單一、廣為人知的根金鑰出發。這條從父到子、不間斷的簽署路徑稱為信任鏈(chain of trust),一個會驗證的解析器從根往下沿著它確認答案。

為什麼重要:DNSSEC 保護 DNS 資料的完整性與真實性——它讓你能偵測出被偽造或被竄改的答案並予以拒絕。但要誠實面對它「不做」什麼。DNSSEC 簽署記錄;它不加密記錄,所以不提供隱私——旁觀者仍能看到你查了哪些名稱(那是 DNS over HTTPS、DNS over TLS 處理的事)。它也只保護 DNS 資料本身,不保護你之後連往網站的連線,而且它在網際網路上的部署至今仍只是部分。

一個會驗證的解析器以 DNSSEC 查詢 bank.example:它用 example 的 DNSKEY 檢查答案上的 RRSIG,透過 .com 裡的 DS 記錄確認 example 的金鑰,再透過根確認 .com,到這時才信任那個位址。偽造的回應會通不過簽章檢查而被拒絕。

一條從根往下的簽章鏈,證明一個答案是真的。

DNSSEC 提供真實性與完整性,不提供機密性。它不隱藏你查了哪些名稱——那是 DNS over HTTPS/DNS over TLS 的工作。兩者解決不同問題,且常被合併使用。

又稱
DNS Security Extensions網域名稱系統安全擴充DNS 安全擴充