DNSSEC 有用嗎?
DNSSEC 驗證和驗證區域數據的目的是確保無論 DNS 結果如何,這些都是真實的。
- 即使 DNS 解析器驗證權威名稱伺服器已發送正確的未篡改數據,我們如何防止 DNS 解析器向 DNS 客戶端發送篡改的 DNS 響應?
- 如果 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
//區域NSEC
中NSEC3
的記錄類型),那麼解析器將獲取這些記錄,然後可以進行 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 鏈驗證任何給定的記錄)