Các vấn đề DNSSEC ảnh hưởng đến phân giải DNS

  • Thursday 21/05/2020

Bảo mật DNS DNSSEC . Bài viết này thảo luận về cách phát hiện các vấn đề DNSSEC ảnh hưởng đến việc phân giải DNS. 

Kiểm tra DNSSEC với dig

Dig là một công cụ dòng lệnh để truy vấn máy chủ DNS cho các bản ghi DNS. Chẳng hạn, dig truy vấn máy chủ  DNS resolver cho địa chỉ IP của www.pavietnam.com  (Tùy chọn +short chỉ  xuất kết quả ngắn gọn) :

dig www.pavietnam.com.vn +short
112.213.89.139

Sử dụng dig để xác minh bản ghi DNSSEC. Trong ví dụ dưới đây, kết quả cuối cùng là bản ghi RRSIG.  RRSIG là chữ ký DNSSEC được đính kèm trong bản ghi (record) DNS. Với RRSIG , hệ thống phân giải DNS (DNS resolver) xác định xem phản hồi DNS có đáng tin cậy hay không

dig www.pavietnam.com.vn +dnssec +short @8.8.8.8
112.213.89.139
A 13 4 3600 20250516070119 20200516015519 2623 pavietnam.com.vn. yW7zcOUAfJ7JLCshp3gthCPyECKYw35BmDZNyrTP7nUXriYCHMcj1MlX nrlG0CTMs+1T4uj9RuWTGQiNl26CGA==

Truy vấn bản ghi DNSKEY (khóa công khai) của tên miền

 

dig DNSKEY pavietnam.com.vn +short
256 3 13 mvC7X2+6G+hF2GYkmoH9/Ur7b6ZZSQjy20wC983Fi7ts16Owdd7Raf7P wFBMX5yvo3qqCIwB0FRdpoz0OPq9sQ==
257 3 13 6QhM7tcPqxRILEEbAT5Q+UFApBlz8/3HRsuZV6r+/pKdNnlkHmgdzq9+ /rTyNiAaqf8pk/GzbAovvZS0JVDW1g==

Kết quả phản hồi DNS bao gồm hai bản ghi:

  • Bản ghi DNSKEY 256 là khóa công khai (public key) được gọi là Zone-signing-key, được sử dụng để xác minh chữ ký bản ghi DNS cho  A, MX, CNAME, SRV , v.v.
  • Bản ghi DNSKEY 257 được gọi là Key-Signing Key, được sử dụng để xác minh chữ ký của các bản ghi DNSKEY, CDS và CDNSKEY .

Chi tiết về cách xác minh chữ ký bằng khóa công khai (public key) nằm ngoài phạm vi của bài viết này.

Khi không sử dụng  tùy chọn +short với dig, phản hồi DNS được xác thực DNSSEC nếu cờ ad xuất hiện trong tiêu đề phản hồi:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22717
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;pavietnam.com.vn. IN A

;; ANSWER SECTION:
pavietnam.com.vn. 3599 IN A 112.213.89.139

Xem DNSSEC Chain of Trust với lệnh dig

Xác minh đầy đủ chữ ký tên miền (ví dụ: pavietnam.com ) liên quan đến việc xác minh key-signing key ở tên miền cấp cao nhất (Top Level Domain) (ví dụ: .com ). Xác minh tương tự  sau đó được thực hiện bằng cách kiểm tra  key-signing key của .com  ở cấp máy chủ DNS Root. DNSSEC root keys được phân phối cho các máy chủ DNS (clients) để hoàn thành chuỗi tin cậy.

Khi DNSSEC được kích hoạt, bản ghi DS được yêu cầu cấu hình tại DNS của nhà đăng ký registrar. Bản ghi DS chứa hàm băm của khóa ký khóa công khai public key-signing key cũng như metadata key

Sử dụng dig để xem bản ghi DS :

dig ds pavietnam.com.vn +short
32178 13 2 AA0DCFB5F4924F7078B9AA2D0A5515CC56A1FE6B0A79A6B9092D673C 9ABAB837
32178 13 1 DEDAEEE46222C05CCD6C3C761FBB225DA40952B6

Khi sử dụng tùy chọn +trace,  dig xác nhận xem câu trả lời được  trả về bởi máy chủ tên cho pavietnam.com hay máy chủ tên cho .com.vn . Trong ví dụ này, bản ghi DS cho pavietnam.com.vn được trả về bởi f.dns-servers.vn:

pavietnam.com.vn. 43200 IN DS 32178 13 1 DEDAEEE46222C05CCD6C3C761FBB225DA40952B6
pavietnam.com.vn. 43200 IN DS 32178 13 2 AA0DCFB5F4924F7078B9AA2D0A5515CC56A1FE6B0A79A6B9092D673C 9ABAB837
pavietnam.com.vn. 43200 IN RRSIG DS 8 3 43200 20200615022513 20200516012513 11694 com.vn. cYSx4Ia0VjX1TIkaaH9RGxwctXjRE8XvUsoycj5vfe0rSMoluHA1cFz1 AlW3Z5CW6uafOh/unhTFwzu6ptiSfZT2oqCUK4Pr12zQBKAZiP8YZVew vND9WZONMQgZ1xevoYbxo59Fwm+PhW9xmU/+fYtfYTrSkMMajwwp4tTz GIs=
;; Received 295 bytes from 203.119.68.105#53(f.dns-servers.vn) in 3 ms

Một cách khác dễ dàng hơn các bước trên là sử dụng trực tuyến là

https://dnssec-analyzer.verisignlabs.com/

https://dnsviz.net/

Tham khảo chi tiết tại đây

Xác minh sự cố DNSSEC bằng lệnh dig

Sự cố xảy ra nếu nhà cung cấp DNS ủy quyền thay đổi mà không cập nhật hoặc xóa DNSSEC cũ tại nhà đăng ký:

dig A brokendnssec.net @1.0.0.1

dig A brokendnssec.net @1.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 28520
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

Kết quả phản hồi  SERVFAIL có liên quan đến DNSSEC hay không bằng cách chạy  dig  với  tùy chọn +cd . Với tùy chọn +cd thì trả về kết quả DNS mà không cần bất kỳ xác nhận DNSSEC.  

$ dig A brokendnssec.net @1.0.0.1 +dnssec +cd +short
104.20.49.61
104.20.48.61

Trong ví dụ trên, DNSSEC bị cấu hình sai nhưng vẫn trả về kết quả phân giải với tùy chọn +cd  còn các truy vấn sử dụng DNSSEC trả về  phản hồi SERVFAIL. Vấn đề này thường xảy ra khi thay đổi máy chủ DNS chuyển giao quản lý tên miền nhưng bản ghi DS  không được cập nhật. Vấn đề cũng có thể xảy ra nếu kẻ tấn công cố gắng giả mạo phản hồi cho truy vấn. 

Khắc phục sự cố

Nếu sự cố được phát hiện khi triển khai DNSSEC, bạn hãy liên hệ với công ty đăng ký của tên miền và xác nhận bản ghi DS khớp với những gì DNS của tên miền đang sử dụng.