NS 記錄不伴隨 A 記錄時的 DNSSEC 解析
一直在尋找合適的地方問這個問題。希望這就是這個地方!
我特別想了解 DNS 和 DNSSEC 背後的一些微妙之處。DNSSEC 使用信任鏈從受信任的根 DNS 伺服器到目標主機。根據http://dnsviz.net/d/ietf.org/dnssec/,主機 ietf.org 受 DNSSEC 保護。執行以下 Unix 命令,我們得到一個範例跟踪:
$ dig ietf.org +dnssec +trace +multi ; <<>> DiG 9.9.5 <<>> ietf.org +dnssec +trace +multi ;; global options: +cmd . 24638 IN NS a.root-servers.net. . 24638 IN NS b.root-servers.net. . 24638 IN NS c.root-servers.net. . 24638 IN NS d.root-servers.net. . 24638 IN NS e.root-servers.net. . 24638 IN NS f.root-servers.net. . 24638 IN NS g.root-servers.net. . 24638 IN NS h.root-servers.net. . 24638 IN NS i.root-servers.net. . 24638 IN NS j.root-servers.net. . 24638 IN NS k.root-servers.net. . 24638 IN NS l.root-servers.net. . 24638 IN NS m.root-servers.net. . 24638 IN RRSIG NS 8 0 518400 ( 20180223050000 20180210040000 41824 . e8itIEYiVRvPxv5mkNzkBZTltFgDUIFLB/KxV7RFpXzj X8Rqre85GiIFlAM01rIi0YGTkb6k6U+TGdDxXabQmr4q wHIBTEd2MjrHb+0XsY4dIlZJ3qvLPdnDPHSlIBx17K3A +AqMZdINCCA7QlxnUd3+agMpc9jkJrsNBO2x1CVBP8R2 w4a2kHcpxILr9T/heamOJOpHjd3r3l6/mhGkY0ut2I+Y 4vbzplayG0f6Br461y4qtX4h6JUJk8BBDvzcqzovpUSk VSqLeM9YXVC5XzrWNb8081u7ct37J5g+5vJLHAMcac7L 8qQ4rtmQqzHn1reS6wOogYxsUVlOxdxP2Q== ) ;; Received 525 bytes from 10.211.254.254#53(10.211.254.254) in 109 ms org. 172800 IN NS a0.org.afilias-nst.info. org. 172800 IN NS a2.org.afilias-nst.info. org. 172800 IN NS b0.org.afilias-nst.org. org. 172800 IN NS b2.org.afilias-nst.org. org. 172800 IN NS c0.org.afilias-nst.info. org. 172800 IN NS d0.org.afilias-nst.org. org. 86400 IN DS 9795 7 1 ( 364DFAB3DAF254CAB477B5675B10766DDAA24982 ) org. 86400 IN DS 9795 7 2 ( 3922B31B6F3A4EA92B19EB7B52120F031FD8E05FF0B0 3BAFCF9F891BFE7FF8E5 ) org. 86400 IN RRSIG DS 8 1 86400 ( 20180223050000 20180210040000 41824 . Weag50NNvW6pqxODjMj3F0LrcFizxaK76PhdGtVv0iDg tgZw4DzcDU8WrD6q/pm7kzKwLpXryhfMo3ASKgP+Usyr V1uW0WyCh0cwZs6yfMKfZNtF1X47PulkiHgrc7AI/+nO oQGv6FlUAROyh+aak7QN6/IEVO5CE6nzpsyzDqewnGmt xYNgeWJr0RJR81VqBN6/Y4t/NthxsPEyLoXl1ijju99h Tf9UP2+1GFLqaf6uINsSD/EsHryQB7W6ZUz6pdmE5C3W jbqZ+7heu7xK9Tzz7Fv3tS2nei0xk0puNh5vCHjGzjG5 +lIfY6dJxxvxh/ywqS6Fm8yhIRjLgscpQw== ) ;; Received 810 bytes from 199.7.83.42#53(l.root-servers.net) in 100 ms ietf.org. 86400 IN NS ns1.yyz1.afilias-nst.info. ietf.org. 86400 IN NS ns0.amsl.com. ietf.org. 86400 IN NS ns1.sea1.afilias-nst.info. ietf.org. 86400 IN NS ns1.ams1.afilias-nst.info. ietf.org. 86400 IN NS ns1.mia1.afilias-nst.info. ietf.org. 86400 IN NS ns1.hkg1.afilias-nst.info. ietf.org. 86400 IN DS 45586 5 1 ( D0FDF996D1AF2CCDBDC942B02CB02D379629E20B ) ietf.org. 86400 IN DS 45586 5 2 ( 67FCD7E0B9E0366309F3B6F7476DFF931D5226EDC534 8CD80FD82A081DFCF6EE ) ietf.org. 86400 IN RRSIG DS 7 2 86400 ( 20180302153210 20180209143210 1862 org. K1JT67FsQ9Dl4W8V7pYp6MlbbNSe2IKfmgXiqXPlPLsy 5mZYhnUilXE40icI9Eea6KZY5eEZIdvEDzfMXaAshLXh 6gLAtPTviTa9aFUid2dd/McNUdSrWQjZKicpW//XJ6fw 9v5coQTrnP9HA9oCwb5TXWAKY7Ju+j5hkrBPy7M= ) ;; Received 441 bytes from 199.19.54.1#53(b0.org.afilias-nst.org) in 134 ms ietf.org. 1800 IN A 4.31.198.44 ietf.org. 1800 IN RRSIG A 5 2 1800 ( 20190109135858 20180109130036 40452 ietf.org. O8fJkB4ISG/SzpRd0EBvh49pLzR21cXJEH7ZWUSfpFjX fv7pqIEX9FUMEjP+VHdsP7iCQ3Gkd3PQul7PNFqbdMnk 4O5NomCyg71J73G4rLlaBYZYTCTVW+8CdgviqrNoIFSz gPcN7kxDdg25YKi5ywjbMqCU9BWhnGw+4kS7TrXtd92c /YUqViYDN0OCTMn5b05+a6FJd0Fu4iKbYpFQJ1/dDh5F /RAhIGFbOd2/zGK6xCE3IU8ICzRhIJL0ZiNMRtbZOc1u POeHd3SQ66ZrNRbl0pxwQlzizRkaeFchCZ9+w71AmrGG 0K4BWNNsW1PwkgJwb/trlWSTroA4X/6oUg== ) ietf.org. 1800 IN NS ns1.yyz1.afilias-nst.info. ietf.org. 1800 IN NS ns1.hkg1.afilias-nst.info. ietf.org. 1800 IN NS ns1.ams1.afilias-nst.info. ietf.org. 1800 IN NS ns0.amsl.com. ietf.org. 1800 IN NS ns1.sea1.afilias-nst.info. ietf.org. 1800 IN NS ns1.mia1.afilias-nst.info. ietf.org. 1800 IN RRSIG NS 5 2 1800 ( 20190109135847 20180109130036 40452 ietf.org. nfZKxJsrSozyiyPvWcn0fJCAz4qVE5xiwLOTGkOAh/Mh SH9xv6sNqWEJtul4rRYLJQ7S1AyFHT4PwhjyypG0KMnW SAEMTpXhMqO2Mlf2/LoVPoPGsFfs3LqhgyAYxjgbOxix zG1grS/AXHzUzudrLjWUfgQB+N4jb0VmvVBtp4XS6soa C+ZHdyLr4pnT8PwE2Qbge405lhEIAHfx+RLWkrkQUJEU JKTjyXsQcRp/2MRniHXf4udSWSvjcwNuFKEng6eHzWg7 tQwBHmluZVHhN7U/xcplREvKRg/5YV4K3OjRcXAXK0XW kauSoZWiLHvRTgPnZJdhNDv5uqHvHVGNbw== ) ;; Received 994 bytes from 65.22.8.1#53(ns1.sea1.afilias-nst.info) in 100 ms
但是,如果我們執行
$ dig ietf.org +dnssec ; <<>> DiG 9.9.5 <<>> ie tf.org +dnssec ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35753 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 8192 ;; QUESTION SECTION: ;ietf.org. IN A ;; ANSWER SECTION: ietf.org. 1800 IN A 4.31.198.44 ietf.org. 1800 IN RRSIG A 5 2 1800 20190109135858 20180109130036 40452 ietf.org. O8fJkB4ISG/SzpRd0EBvh49pLzR21cXJEH7ZWUSfpFjXfv7pqIEX9FUM EjP+VHdsP7iCQ3Gkd3PQul7PNFqbdMnk4O5NomCyg71J73G4rLlaBYZY TCTVW+8CdgviqrNoIFSzgPcN7kxDdg25YKi5ywjbMqCU9BWhnGw+4kS7 TrXtd92c/YUqViYDN0OCTMn5b05+a6FJd0Fu4iKbYpFQJ1/dDh5F/RAh IGFbOd2/zGK6xCE3IU8ICzRhIJL0ZiNMRtbZOc1uPOeHd3SQ66ZrNRbl 0pxwQlzizRkaeFchCZ9+w71AmrGG0K4BWNNsW1PwkgJwb/trlWSTroA4 X/6oUg== ;; Query time: 101 msec ;; SERVER: 10.211.254.254#53(10.211.254.254) ;; WHEN: Sat Feb 10 07:00:56 EST 2018 ;; MSG SIZE rcvd: 349
然後觀察 Dig 沒有設置“廣告”標誌,這讓我相信目標主機 (ietf.org) 可能不是 DNSSEC 安全的。
假設它是安全的,我試圖理解信任鏈。我沒有得到的部分是在 DNS 解析期間,如果您查詢
$ dig @199.19.54.1 ietf.org +dnssec +multi ; <<>> DiG 9.9.5 <<>> @199.19.54.1 ietf.org +dnssec +multi ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30334 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 9, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;ietf.org. IN A ;; AUTHORITY SECTION: ietf.org. 86400 IN NS ns1.ams1.afilias-nst.info. ietf.org. 86400 IN NS ns0.amsl.com. ietf.org. 86400 IN NS ns1.hkg1.afilias-nst.info. ietf.org. 86400 IN NS ns1.mia1.afilias-nst.info. ietf.org. 86400 IN NS ns1.sea1.afilias-nst.info. ietf.org. 86400 IN NS ns1.yyz1.afilias-nst.info. ietf.org. 86400 IN DS 45586 5 1 ( D0FDF996D1AF2CCDBDC942B02CB02D379629E20B ) ietf.org. 86400 IN DS 45586 5 2 ( 67FCD7E0B9E0366309F3B6F7476DFF931D5226EDC534 8CD80FD82A081DFCF6EE ) ietf.org. 86400 IN RRSIG DS 7 2 86400 ( 20180302153210 20180209143210 1862 org. K1JT67FsQ9Dl4W8V7pYp6MlbbNSe2IKfmgXiqXPlPLsy 5mZYhnUilXE40icI9Eea6KZY5eEZIdvEDzfMXaAshLXh 6gLAtPTviTa9aFUid2dd/McNUdSrWQjZKicpW//XJ6fw 9v5coQTrnP9HA9oCwb5TXWAKY7Ju+j5hkrBPy7M= ) ;; Query time: 143 msec ;; SERVER: 199.19.54.1#53(199.19.54.1) ;; WHEN: Sat Feb 10 06:55:30 EST 2018 ;; MSG SIZE rcvd: 441
那麼這些名稱伺服器中的任何一個都沒有 A 記錄。所以除非我完全錯了,否則 DNS 必須做一些額外的解析來獲取這些名稱伺服器的 IP 地址(例如 ns0.amsl.com.),以便依次查詢它們以獲取最終的 A 記錄目標主機 (ietf.org)。唯一的問題是,根據 Dig 和http://dnsviz.net/d/ns1.sea1.afilias-nst.info/dnssec的說法,這些名稱伺服器(例如 ns0.amsl.com.)都不是 DNSSEC 安全的/!
那麼,DNSSEC 如何建立安全性以及在這個額外的地址解析步驟中如何保持信任?也許我沒有正確理解 DNS 或 DNSSEC,感謝所有幫助!
您的問題中有多個要點:
dig +dnssec
只是請求 dig 向您發送 DNSSEC 相關記錄,即帶有您的結果的 RRSIG,它不會驗證任何內容。該
+ad
標誌(但它是預設值)請求 DNSSEC 驗證…但僅當您查詢 DNSSEC 驗證解析器時才有效。相反+cd
,禁用任何類型的 DNSSEC 驗證。看:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @9.9.9.9 +ad ietf.org ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31296 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ietf.org. IN A ;; ANSWER SECTION: ietf.org. 1800 IN A 4.31.198.44 ;; Query time: 228 msec
2)關於
dig @199.19.54.1 ietf.org +dnssec +multi
你沒有得到A記錄是正常的。199.19.54.1
akab0.org.afilias-nst.org.
不具有權威性ietf.org
,僅具有權威性org
。因此,如果您查詢它在其區域中擁有的域,它只會提供推薦,即 NS 記錄。一些域名伺服器也可能在附加部分提供 A/AAAA 記錄來幫助解析器,但它們更習慣於不信任它們。但請注意,在回復中您有 DS
ietf.org
和相關的 RRSIG。所以解析器的下一步是使用 NS 記錄,查詢他們的 A/AAAA 記錄,然後聯繫他們以獲取
ietf.org
. 如果他們需要進行 DNSSEC 驗證,他們將查詢 DNSKEY 並驗證 DNSKEY 是否與org
區域中的 DS 相對應,並且A
記錄ietf.org
是否具有使用 DNSKEY 簽名的相應 RRSIG(我在簡化,大多數時候您擁有 KSK 和ZSK,這只是創建了一個額外的簽名級別,但在概念上並沒有改變上面的內容)。域名伺服器域名本身可能未啟用 DNSSEC,這不會影響
ietf.org
. 然而,它具有實際的安全後果,因為這意味著它們的域名可能被劫持,因此從理論上講,您可以將流量轉移到會給出其他回复的流氓域名伺服器,並可能導致 DNS 或 DNSSEC 驗證失敗。這些流氓名稱伺服器最多只能將 SERVFAIL 錯誤強制發送給所有驗證解析器,因為它們將無法提供由與父區域中的 DS 記錄匹配的密鑰簽名的簽名。所以這裡的 DNSSEC,即使域名伺服器域本身不使用 DNSSEC,仍然允許確保不能插入其他/錯誤記錄。當然,在一個完美的世界中,一切都可以或應該啟用 DNSSEC,但這仍然是雞與蛋的問題:根區域
.
使用root-servers.net
域中的名稱伺服器,因此您無法同時保護這兩個部分。事實上,root-servers.net
直到今天還沒有啟用 DNSSEC……這對所有域的解析或 DNSSEC 驗證幾乎沒有影響。簡而言之,DNSSEC 不起作用,因為權威域名伺服器會直接提供“子”域名伺服器的 IP 地址,這部分就像之前的 DNSSEC 一樣工作。DNSSEC 之所以有效,是因為從廣義上講,每個區域都發布用於在區域中的每條記錄上生成簽名的密鑰,並且在父區域中發布密鑰的散列以創建直到根信任錨的信任鏈。