DNSSEC – viết tắt của Domain Name System Security Extensions – là công nghệ an toàn mở rộng cho hệ thống DNS của tên miền. Về cơ bản, DNSSEC hoạt động bằng cách ký điện tử các bản ghi DNS tại máy chủ DNS có thẩm quyền bằng mật mã khóa công khai. Một số bản ghi tài nguyên mới đã được giới thiệu cho mục đích này: Khóa công khai DNS (RRSIG) Khóa công khai DNS (DNSKEY).
Tên miền khi sử dụng DNSSEC sẽ tránh được nguy cơ bị tấn công giả mạo DNS so với tên miền không sử dụng vì DNSSEC cung cấp một cơ chế xác thực đảm bảo giữa các máy chủ DNS với nhau.
Tiện ích mở rộng bảo mật DNS (DNSSEC)
Các kỹ sư trong Lực lượng đặc nhiệm kỹ thuật Internet (IETF), tổ chức chịu trách nhiệm về các tiêu chuẩn giao thức DNS, từ lâu đã nhận ra việc thiếu xác thực mạnh hơn trong DNS là một vấn đề. Làm việc trên một giải pháp bắt đầu từ những năm 1990 và kết quả là Phần mở rộng bảo mật DNSSEC (DNSSEC).
DNSSEC tăng cường xác thực trong DNS bằng chữ ký số dựa trên mật mã khóa công khai. Với DNSSEC, không phải chính các truy vấn và phản hồi DNS được ký bằng mật mã mà là chính dữ liệu DNS được ký bởi chủ sở hữu dữ liệu.
Mỗi vùng DNS có một cặp khóa công khai / riêng. Chủ sở hữu vùng sử dụng khóa riêng của vùng để ký dữ liệu DNS trong vùng và tạo chữ ký điện tử trên dữ liệu đó. Như tên “khóa riêng” ngụ ý, tài liệu chính này được giữ bí mật bởi chủ sở hữu khu vực. Tuy nhiên, khóa công khai của khu vực được công bố trong chính khu vực cho bất kỳ ai lấy. Bất kỳ trình phân giải đệ quy nào tìm kiếm dữ liệu trong vùng cũng sẽ truy xuất khóa chung của vùng mà nó sử dụng để xác thực tính xác thực của dữ liệu DNS. Bộ giải quyết xác nhận rằng chữ ký số trên dữ liệu DNS mà nó truy xuất là hợp lệ. Nếu vậy, dữ liệu DNS là hợp pháp và được trả lại cho người dùng. Nếu chữ ký không xác thực, trình phân giải giả định một cuộc tấn công, loại bỏ dữ liệu và trả về lỗi cho người dùng.
DNSSEC thêm hai tính năng quan trọng vào giao thức DNS:
- Xác thực nguồn gốc dữ liệu cho phép người phân giải xác minh bằng mật mã rằng dữ liệu mà họ nhận được thực sự đến từ khu vực nơi họ tin rằng dữ liệu có nguồn gốc.
- Bảo vệ tính toàn vẹn dữ liệu cho phép người giải quyết biết rằng dữ liệu chưa được sửa đổi trong quá trình do dữ liệu ban đầu được ký bởi chủ sở hữu khu vực với khóa riêng của khu vực.
Tin cậy khóa DNSSEC
Mỗi vùng xuất bản khóa công khai của nó, một trình phân giải đệ quy lấy ra để xác thực dữ liệu trong vùng. Nhưng làm thế nào một trình giải quyết có thể đảm bảo rằng chính khóa công khai của một vùng là xác thực? Khóa công khai của vùng được ký, giống như các dữ liệu khác trong vùng. Tuy nhiên, khóa chung không được ký bởi khóa riêng của vùng, mà bằng khóa riêng của vùng cha. Ví dụ: khóa chung của vùng icann.org được ký bởi vùng org. Giống như cha mẹ của vùng DNS chịu trách nhiệm xuất bản danh sách các máy chủ tên có thẩm quyền của vùng con, cha mẹ của vùng cũng chịu trách nhiệm chứng minh tính xác thực của khóa công khai của vùng con. Khóa công khai của mọi khu vực được ký bởi khu vực mẹ của nó, ngoại trừ khu vực gốc: nó không có cha mẹ để ký khóa.
Do đó, khóa công khai của vùng gốc là điểm khởi đầu quan trọng để xác thực dữ liệu DNS. Nếu trình phân giải tin cậy khóa chung của vùng gốc, nó có thể tin cậy các khóa chung của các vùng cấp cao nhất được ký bởi khóa riêng của gốc, chẳng hạn như khóa chung cho vùng org. Và bởi vì trình phân giải có thể tin cậy khóa chung cho vùng org, nên nó có thể tin cậy các khóa công khai đã được ký bởi khóa riêng tương ứng của họ, chẳng hạn như khóa chung cho icann.org. (Trong thực tế, vùng cha mẹ không ký trực tiếp khóa của vùng con – cơ chế thực tế phức tạp hơn – nhưng hiệu quả tương tự như khi cha mẹ đã ký khóa con.)
Chuỗi các khóa mật mã ký các khóa mật mã khác được gọi là chuỗi tin cậy. Khóa công khai ở đầu chuỗi tin cậy được gọi là neo tin cậy. Trình phân giải có một danh sách các neo tin cậy, là các khóa chung cho các vùng khác nhau mà trình phân giải tin tưởng hoàn toàn. Hầu hết các bộ phân giải được cấu hình chỉ với một neo tin cậy: khóa chung cho vùng gốc. Bằng cách tin tưởng khóa này ở đầu phân cấp DNS, một giải pháp có thể xây dựng chuỗi tin cậy cho bất kỳ vị trí nào trong không gian tên DNS, miễn là mọi vùng trong đường dẫn được ký.
Xác thực và ký kết với DNSSEC
Để Internet có được bảo mật rộng rãi, DNSSEC cần được triển khai rộng rãi. DNSSEC không tự động: ngay bây giờ, nó cần được các nhà khai thác mạng kích hoạt cụ thể tại các bộ giải quyết đệ quy của họ và cả các chủ sở hữu tên miền tại các máy chủ có thẩm quyền của khu vực của họ. Các nhà khai thác máy phân giải và máy chủ có thẩm quyền có các ưu đãi khác nhau để bật DNSSEC cho hệ thống của họ, nhưng khi họ làm như vậy, nhiều người dùng yên tâm hơn khi nhận được câu trả lời xác thực cho các truy vấn DNS của họ. Rất đơn giản, một người dùng có thể đảm bảo rằng họ sẽ kết thúc tại điểm đến trực tuyến mong muốn của họ.
Kích hoạt xác nhận DNSSEC trong các trình phân giải đệ quy rất dễ dàng. Trong thực tế, nó đã được hỗ trợ bởi gần như tất cả các bộ giải quyết phổ biến trong nhiều năm. Bật nó lên chỉ cần thay đổi một vài dòng trong tệp cấu hình của trình phân giải. Từ thời điểm đó trở đi, khi người dùng hỏi bộ giải quyết thông tin DNS xuất phát từ các vùng được ký và dữ liệu đó đã bị giả mạo, người dùng sẽ (không cố ý) không lấy lại được dữ liệu. DNSSEC bảo vệ người dùng khỏi nhận dữ liệu xấu từ vùng đã ký bằng cách phát hiện cuộc tấn công và ngăn người dùng nhận dữ liệu giả mạo.
Việc ký các vùng với DNSSEC mất một vài bước, nhưng có hàng triệu vùng ký thông tin DNS của họ để người dùng xác thực các trình phân giải có thể yên tâm nhận được dữ liệu tốt. Hầu như tất cả các phần mềm máy chủ tên phổ biến đều hỗ trợ các vùng ký và nhiều nhà cung cấp dịch vụ lưu trữ DNS của bên thứ ba cũng hỗ trợ DNSSEC. Thông thường, việc kích hoạt DNSSEC cho một vùng với nhà cung cấp dịch vụ lưu trữ khá dễ dàng: thường thì nó đòi hỏi ít hơn là nhấp vào hộp kiểm.
Để chủ sở hữu khu vực triển khai DNSSEC bằng cách ký dữ liệu của khu vực của họ, cha mẹ của khu vực đó và cha mẹ của khu vực đó, tất cả các cách đến khu vực gốc, cũng cần phải được ký để DNSSEC có hiệu quả nhất có thể. Một chuỗi các vùng được ký liên tục bắt đầu từ vùng gốc cho phép người giải quyết xây dựng chuỗi tin cậy từ vùng gốc để xác thực dữ liệu. Ví dụ: để triển khai hiệu quả DNSSEC trong vùng icann.org, vùng org cần được ký cũng như vùng gốc. May mắn thay, vùng gốc DNS đã được ký từ năm 2010 và tất cả các gTLD và nhiều ccTLD cũng được ký kết.
Có thêm một bước nữa để hoàn thành triển khai DNSSEC trong một khu vực: tài liệu khóa công khai của khu vực mới ký cần phải được gửi đến phụ huynh của khu vực. Như được mô tả trước đó, vùng cha mẹ ký khóa công khai của vùng con và cho phép xây dựng chuỗi tin cậy từ cha mẹ sang con cái.
Ngày nay, chủ sở hữu khu vực thường cần truyền đạt tài liệu khóa công khai của khu vực cho phụ huynh theo cách thủ công. Trong hầu hết các trường hợp, giao tiếp đó xảy ra thông qua nhà đăng ký của chủ sở hữu khu vực. Giống như chủ sở hữu khu vực tương tác với công ty đăng ký để thực hiện các thay đổi khác đối với khu vực, chẳng hạn như danh sách máy chủ tên có thẩm quyền của khu vực, chủ sở hữu khu vực cũng tương tác với nhà đăng ký để cập nhật tài liệu khóa công khai của khu vực. Mặc dù quá trình này hiện đang là thủ công, các giao thức được phát triển gần đây dự kiến sẽ cho phép quá trình này được tự động hóa trong tương lai.
Các bước tiếp theo cho DNSSEC
Khi triển khai DNSSEC phát triển, DNS có thể trở thành nền tảng cho các giao thức khác yêu cầu cách lưu trữ dữ liệu một cách an toàn. Các giao thức mới đã được phát triển dựa trên DNSSEC và do đó chỉ hoạt động trong các khu vực được ký kết. Ví dụ: Xác thực dựa trên DNS của các thực thể được đặt tên (DANE – viết tắt của DNS-based Authentication of Named Entities) cho phép xuất bản các khóa Bảo mật lớp vận chuyển (TLS) trong các vùng cho các ứng dụng như vận chuyển thư. DANE cung cấp một cách thức để xác minh tính xác thực của các khóa công khai không phụ thuộc vào các tổ chức chứng nhận. Những cách mới để thêm quyền riêng tư vào các truy vấn DNS cũng sẽ có thể sử dụng DANE trong tương lai.
Năm 2018, ICANN đã thay đổi neo tin cậy cho gốc DNS lần đầu tiên. Nhiều bài học đã được học về DNSSEC trong quá trình đó. Hơn nữa, nhiều nhà khai thác trình phân giải đã nhận thức rõ hơn về DNSSEC và bật xác nhận, và thế giới đã thấy rõ hơn cách toàn bộ hệ thống DNSSEC hoạt động. Trong những năm tới, ICANN hy vọng sẽ thấy việc áp dụng DNSSEC nhiều hơn, cả bởi các nhà khai thác phân giải và chủ sở hữu khu vực. Điều này có nghĩa là nhiều người dùng ở khắp mọi nơi có thể được hưởng lợi từ sự đảm bảo mật mã mạnh mẽ của DNSSEC rằng họ đang nhận được câu trả lời DNS xác thực cho các truy vấn của họ.