Domain-Name-System

DNSSEC 有用嗎?

  • August 16, 2021

DNSSEC 驗證和驗證區域數據的目的是確保無論 DNS 結果如何,這些都是真實的。

  1. 即使 DNS 解析器驗證權威名稱伺服器已發送正確的未篡改數據,我們如何防止 DNS 解析器向 DNS 客戶端發送篡改的 DNS 響應?
  2. 如果 DNS 解析器不支持 DNSSEC,它是否仍可以將 DNS 查詢發送到為其區域啟用了 DNSSEC 的權威名稱伺服器?

謝謝

DNSSEC 有用嗎?

在您開始針對您想要捍衛的內容進行描述之前,這是無法回答的(對於您在該句子中使用的任何詞而不是“DNSSEC”)。

當您擁有想要保護自己的風險/漏洞/威脅列表時,您可以找出存在哪些解決方案,並確定每個解決方案的有用與否。

DNSSEC對某些 DNS 問題很有用,但並非對所有問題都有用。它給自己帶來了新問題(簽名和密鑰的持續維護)以及新功能(NXDOMAIN如果 DNSSEC 正確驗證,則對 a 以下的所有內容進行積極記憶體)。

即使 DNS 解析器驗證權威名稱伺服器已發送正確的未篡改數據 - 我們如何防止 DNS 解析器向 DNS 客戶端發送篡改的 DNS 響應?

這與今天沒有什麼不同:如果您使用任何公共 DNS 解析器(僅舉幾例),您當然完全有可能向您發送垃圾數據8.8.8.8。這是一個權衡。DoH/DoT 在這裡不會解決任何問題,因為它只會保護您與此解析器之間的內容傳輸,而不是內容本身。只要您正在查詢的域名受 DNSSEC 保護,哪些內容受 DNSSEC “保護”(這是您在問題中忘記的一部分,實際上使 DNSSEC 變得困難:域名所有者必須啟用它DNS解析器必須使用新簽名並進行驗證;如果這 2 個變數方程的一部分不存在,DNSSEC 就沒有用,因為它無法工​​作)1.1.1.1``9.9.9.9

所以問題更多地圍繞著:使用哪個遞歸名稱伺服器,以及它應該在哪裡執行。當然,為了最大限度地控制,您希望解析器在您的機器上執行。它仍然可以在那裡使用外部資源和 DNS 解析器,但最終的 DNSSEC 驗證應該發生在您的名稱伺服器上,而不是其他伺服器上。當然,這不僅僅是依靠任何其他資源為您“免費”完成所有 DNSSEC 工作。

如果 DNS 解析器不支持 DNSSEC,它是否仍然可以將 DNS 查詢發送到為其區域設置了 DNSSEC 的權威名稱伺服器?

是的。想要獲得 DNSSEC 數據的解析器必須在其請求中切換“DO”標誌。

dig文件:

       +[no]dnssec
        This option requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in the OPT record in the additional section of the query.

你可以這樣看:

$ dig +dnssec example.com

; <<>> DiG 9.16.18 <<>> +dnssec example.com
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40492
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
                          ^^

或者來自 RFC 4035 的§3.2.1:

3.2.1。DO位

安全感知遞歸名稱伺服器的解析器端必須在發送請求時設置 DO 位,無論名稱伺服器端接收到的發起請求中 DO 位的狀態如何。如果初始查詢中的 DO 位未設置,名稱伺服器端必須從響應中去除任何認證 DNSSEC RR,但不得去除初始查詢明確請求的任何 DNSSEC RR 類型。

如果 DNS 客戶端(遞歸解析器)這樣做,並且如果被查詢的權威名稱伺服器啟用了 DNSSEC(因此RRSIG//區域NSECNSEC3的記錄類型),那麼解析器將獲取這些記錄,然後可以進行 DNSSEC 驗證。

當您(不是解析器的 DNS 存根/客戶端)查詢遞歸解析器時,您可以選擇使用CD標誌,定義如下:

       +[no]cdflag
       This option sets [or does not set] the CD (checking disabled) bit in the query. This requests the server to not perform DNSSEC validation of responses.

(注意可能的雙重否定)。

如果客戶端不使用CD,則 DNSSEC 驗證未被禁用,因此它被啟用,並且刪除伺服器將提供最終答案(如果為記錄啟用 DNSSEC 並且驗證成功),或者NXDOMAIN如果 DNSSEC將回复驗證失敗。該標誌AD將設置為表示所有記錄均已驗證為安全,如果是這種情況(如果查詢來自遞歸名稱伺服器,則該標誌不能來自權威的,因為您需要來自 IANA 根的完整 DNSSEC 鏈驗證任何給定的記錄)

引用自:https://serverfault.com/questions/1074377