Skip to content
BigDargon edited this page May 4, 2024 · 1 revision

Định nghĩa:

  • EDNS (Extension Mechanisms for DNS - phần mở rộng của DNS): do DNS trước đây khi truyền ở giao thức UDP chỉ với 512 byte, để truyền nhận thông điệp hỏi và trả lời từ máy chủ DNS. Và gói dữ liệu quá nhỏ nên chứa rất ít thông tin, từ đó EDNS phát triển để các phần quan trọng nhất của DNS là DNSSEC được truyền nhận nhiều thông tin và tăng cường bảo mật hơn.

  • EDNS0 và EDNS(0): là 2 phiên bản được IETF phát triển và cập nhật bổ sung cho EDNS. Trong đó, EDNS0 được phát triển năm 1999 trong RFC 2671 và EDNS(0) được cập nhật năm 2013 trong RFC 6891.

  • DNSSEC: là phần bảo mật DNS giúp xác thực các bản ghi DNS nhằm tránh hacker giả mạo bản ghi DNS khi truyền nhận giữa các máy chủ DNS với nhau. DNSSEC là 1 phần trong EDNS(0).

  • ECS (EDNS Client Subnet): được đề cập trong RFC 7871 là phần mở rộng nhưng đảm nhiệm việc gửi địa chỉ IP đến các máy chủ DNS quản lý tên miền, để các máy chủ DNS quản lý tên miền gửi chính xác các máy chủ ở gần với địa chỉ IP được hỏi.

ECS hoạt động ra sao?

Nguồn: Adguard

  • Ví dụ, bạn đang sống ở Việt Nam, trang web example.org có 2 máy chủ 1 ở Việt Nam và 1 ở Singapore, máy chủ dịch vụ DNS đặt tại Singapore. Khi truy vấn DNS:

    • Có ECS: khi gửi lệnh truy vấn DNS, máy chủ cung cấp dịch vụ DNS sẽ gửi kèm thêm thông tin subnet với địa chỉ IP của bạn ở Việt Nam. Dựa vào thông tin nhận được, máy chủ DNS quản lý sẽ xác định vị trí địa lý, định tuyến thông qua địa chỉ IP, từ đó trả về kết quả IP máy chủ example.org ở Việt Nam.

    • Không ECS: khi gửi lệnh truy vấn DNS, máy chủ DNS quản lý sẽ chỉ lấy địa chỉ IP của máy chủ cung cấp dịch vụ DNS. Từ đó trả về kết quả IP máy chủ example ở Singapore.

  • Để bảo đảm tính riêng tư, máy chủ dịch vụ DNS sẽ không gửi đầy đủ địa chỉ IP (VD: 1.2.3.4) mà chỉ gửi dãy IP đại diện. Với IPv4 là /24 và IPv6 là /56 (VD: 1.2.3.0/24).

DNSSEC là gì?

DNSSEC hay DNS Security Extensions là tiện ích bảo mật mở rộng dùng để bảo vệ hệ thống DNS chống lại các nguy cơ làm sai lệch dữ liệu. Theo đó, DNSSEC cung cấp một cơ chế xác thực giữa các máy chủ với nhau và cho từng vùng dữ liệu bằng cách thêm chữ ký số được mã hóa PKI (Public/Private Key) vào câu trả lời truy vấn DNS. Đây là cách DNSSEC thiết lập kết nối an toàn và đáng tin cậy cho người sử dụng.

Lý do DNS cần sử dụng DNSSEC?

DNSSEC bảo vệ hệ thống DNS trước nguy cơ bị mạo danh, làm thay đổi, sai lệch dữ liệu.

Giao thức DNS thông thường là dạng văn bản thô sẽ không có công cụ giúp xác thực nguồn dữ liệu. Điều này dẫn đến nguy cơ lớn trong bảo mật DNS: dữ liệu có thể bị chỉnh sửa hoặc giả mạo trong quá trình tương tác của máy chủ với các resolver (máy chủ phân giải) hoặc forwarder (máy chủ chuyển tiếp).

Ngoài ra, DNSSEC cũng chuyển đổi hệ thống DNS từ mô hình mở (open) sang mô hình đáng tin cậy (trusting) và xác thực (verifiable).

Các bản ghi của DNSSEC là gì?

Theo đó, DNSSEC cung cấp 4 loại bản ghi mới là:

  • Bản ghi chữ ký tài nguyên (RRSIG – Resource Record Signature): Bản ghi chữ ký tài nguyên được dùng để xác thực cho các tài nguyên có trong vùng dữ liệu.

  • Bản ghi khóa công cộng DNS (DNSKEY – DNS Public Key): Bản ghi khóa công cộng DNS được dùng để xác thực vùng dữ liệu.

  • Bản ghi ký ủy quyền (DS – Delegation Signer): Bản ghi ký ủy quyền được dùng để tạo ra các xác thực giữa những vùng dữ liệu khác nhau. DS có nhiệm vụ ký xác thực khi chuyển giao DNS.

  • Bản ghi bảo mật kế tiếp (NSEC – Next Secure): Bản ghi bảo mật kế tiếp được dùng để chứng thực các bản ghi cùng sở hữu chung tài nguyên hoặc bản ghi CNAME. NSEC có thể kết hợp với RRSIG để chứng thực cho vùng dữ liệu.

Như vậy, bằng cách tạo ra thêm nhiều bản ghi và giao thức mới đã được điều chỉnh. DNSSEC giúp DNS mở rộng thêm các tính năng bảo mật và tăng cường mức độ tin cậy, khắc phục được những lỗ hổng của hệ thống ban đầu.

Tham khảo

Clone this wiki locally