Cơ chế bảo mật của DNSSEC

Một phần của tài liệu Tìm hiểu về DNS (Trang 25 - 33)

a. Quá trình kí vùng bằng khóa Zone-Signing Key

Mỗi vùng trong DNSSEC có một cặp khóa ký vùng (ZSK): phần riêng của khóa ký điện tử từng RRset trong vùng, trong khi phần công khai xác minh chữ ký. Để kích hoạt DNSSEC, một nhà khai thác vùng tạo chữ ký số cho từng RRset bằng ZSK riêng và lưu trữ chúng trong máy chủ định danh của họ dưới dạng bản ghi RRSIG

Tuy nhiên, các bản ghi RRSIG này là vô dụng trừ khi trình phân giải DNS có cách xác minh chữ ký. Nhà điều hành vùng cũng cần cung cấp ZSK công khai của họ bằng cách thêm nó vào máy chủ định danh của họ trong bản ghi DNSKEY.

b. Quá trình kí khóa bằng Key-Signing Key

Ngoài khóa ký vùng, máy chủ định danh DNSSEC cũng có khóa ký khóa (KSK). KSK xác thực bản ghi DNSKEY theo cách giống hệt như cách ZSK của chúng tôi đã bảo đảm phần còn lại của các RRsets của chúng tôi trong phần trước: Nó ký ZSK công khai (được lưu trữ trong bản ghi DNSKEY), tạo RRSIG cho DNSKEY.

Hình 6: Key-Signing Key

Cũng giống như ZSK công khai, máy chủ định danh xuất bản KSK công khai trong một bản ghi DNSKEY khác, cung cấp cho chúng ta DNSKEY RRset được hiển thị ở trên. Cả KSK công khai và KSK công khai đều do KSK tư nhân ký. Người phân giải sau đó có thể sử dụng KSK công khai để xác thực ZSK công khai.

c. Quá trình xác thực các bản ghi Quá trình xác thực khóa

 Máy chủ Resolver yêu cầu các RRset, name server trả về bản ghi RRSIG tương ứng.

 Resolver yêu cầu các bản ghi DNSKEY chứa ZSK công khai và KSK công khai, các bản ghi này cũng trả về RRSIG cho DNSKEY RRset.  Xác minh RRSIG của RRset được yêu cầu với ZSK công khai.  Xác minh RRSIG của DNSKEY RRset bằng KSK công khai.

Hình 7: Key-Signing Key Identified

Tất nhiên, DNSKEY RRset và các bản ghi RRSIG tương ứng có thể được lưu vào bộ nhớ đệm, vì vậy các máy chủ định danh DNS không liên tục bị tấn công bởi các yêu cầu không cần thiết.

Quá trình xác thực zone

Khi trình phân giải DNSSEC yêu cầu một loại bản ghi cụ thể (ví dụ: AAAA), máy chủ định danh cũng trả về RRSIG tương ứng. Sau đó,

trình phân giải có thể lấy bản ghi DNSKEY chứa ZSK công khai từ máy chủ định danh. Cùng với nhau, RRset, RRSIG và ZSK công khai dùng để xác nhận các bản ghi

Hình 8: Zone Identify

Tại sao chúng ta sử dụng khóa ký vùng riêng biệt và khóa ký chính? Vì rất khó để hoán đổi một KSK cũ hoặc bị xâm phạm. Mặt khác, thay đổi ZSK dễ dàng hơn nhiều. Điều này cho phép chúng ta sử dụng ZSK nhỏ hơn mà không ảnh hưởng đến bảo mật của máy chủ, giảm thiểu lượng dữ liệu mà máy chủ phải gửi với mỗi phản hồi.

d. Bản ghi DS và thiết lập chuỗi tin cậy (Trust of chain)

DNSSEC cung cấp bản ghi ký ủy quyền (DS) để cho phép chuyển sự tin cậy từ vùng mẹ sang vùng con. Nhà điều hành vùng băm bản ghi DNSKEY chứa KSK công khai và đưa nó cho vùng mẹ để xuất bản dưới dạng bản ghi DS.

Hình 9: DS Record

Mỗi khi một trình phân giải được tham chiếu đến một vùng con, vùng cha cũng cung cấp một bản ghi DS. Bản ghi DS này là cách trình phân giải biết rằng vùng con được kích hoạt DNSSEC. Để kiểm tra tính hợp lệ của KSK công khai của vùng con, trình phân giải sẽ băm nó và so sánh với bản ghi DS từ vùng con. Nếu chúng khớp, trình phân giải có thể cho rằng KSK công khai chưa bị giả mạo, có nghĩa là nó có thể tin cậy tất cả các bản ghi trong vùng con. Đây là cách một chuỗi tin cậy được thiết lập trong DNSSEC.

Lưu ý rằng bất kỳ thay đổi nào trong KSK cũng yêu cầu thay đổi trong hồ sơ DS của vùng mẹ. Thay đổi bản ghi DS là một quá trình gồm nhiều bước có thể dẫn đến việc phá vỡ khu vực nếu nó được thực hiện không chính xác. Đầu tiên, phụ huynh cần thêm bản ghi DS mới, sau đó họ cần đợi cho đến khi TTL cho bản ghi DS gốc hết hạn trước khi xóa nó. Đây là lý do tại sao việc hoán đổi các khóa ký vùng dễ dàng hơn nhiều so với các khóa ký quỹ.

Chúng ta có một cách để thiết lập sự tin cậy trong một vùng và kết nối nó với vùng cha của nó, nhưng làm thế nào để chúng ta tin tưởng vào bản ghi DS? Bản ghi DS được ký giống như bất kỳ RRset nào khác, có nghĩa là nó có một RRSIG tương ứng trong vùng cha. Toàn bộ quy trình xác thực lặp lại cho đến khi chúng ta nhận được KSK công khai của vùng cha. Để xác minh điều đó, chúng tôi cần truy cập hồ sơ DS của vùng cha đó và chúng tôi tiếp tục lập chuỗi tin cậy.

Tuy nhiên, cuối cùng khi chúng tôi vào vùng DNS gốc, chúng tôi gặp sự cố: không có bản ghi DS gốc nào để xác thực. Đây là nơi chúng ta có thể thấy một khía cạnh rất con người của Internet toàn cầu.

Trong Lễ ký xác nhận gốc, một số cá nhân được chọn từ khắp nơi trên thế giới đã cùng nhau ký tên vào DNSKEY RRset gốc theo cách rất công khai và được kiểm tra cao. Buổi lễ tạo ra một bản ghi RRSIG có thể được sử dụng để xác minh KSK và ZSK công khai của máy chủ định danh gốc. Thay vì tin tưởng KSK công khai vì hồ sơ DS của cha mẹ, nó hợp lệ vì chúng tôi tin tưởng các quy trình bảo mật xung quanh việc truy cập KSK riêng tư.

Khả năng thiết lập sự tin cậy giữa các vùng cha và con là một phần không thể thiếu của DNSSEC. Nếu bất kỳ phần nào của chuỗi bị hỏng, chúng tôi không thể tin tưởng vào các bản ghi mà chúng tôi đang yêu cầu vì người trung gian có thể thay đổi các bản ghi và hướng chúng tôi đến bất kỳ địa chỉ IP nào họ muốn.

Một phần của tài liệu Tìm hiểu về DNS (Trang 25 - 33)

Tải bản đầy đủ (PDF)

(58 trang)