DNS qua TLS

Giới thiệu

Các truy vấn và phản hồi DNS truyền thống được gửi qua UDP hoặc TCP mà không cần mã hoá. Điều này dễ bị nghe trộm và giả mạo (bao gồm cả việc lọc Internet dựa trên DNS). Phản hồi từ trình phân giải đệ quy tới ứng dụng dễ bị những thay đổi không mong muốn hoặc độc hại xảy ra, trong khi hoạt động giao tiếp giữa trình phân giải đệ quy và máy chủ định danh đáng tin cậy thường kết hợp chế độ bảo vệ bổ sung.

Để giải quyết những vấn đề này, DNS Google Public cung cấp quá trình phân giải DNS qua các kết nối TCP đã mã hoá bằng TLS theo chỉ định của RFC 7858. DNS qua TLS cải thiện quyền riêng tư và tính bảo mật giữa ứng dụng và trình phân giải. Thao tác này sẽ bổ sung cho DNSSEC và bảo vệ các kết quả đã được xác thực DNSSEC không bị sửa đổi hoặc giả mạo trên đường gửi đến ứng dụng.

Cách hoạt động

Một hệ thống ứng dụng có thể sử dụng DNS qua TLS với một trong hai cấu hình: quyền riêng tư nghiêm ngặt hoặc cơ hội. Với hồ sơ quyền riêng tư nghiêm ngặt, người dùng định cấu hình tên máy chủ DNS (tên miền xác thực trong RFC 8310) cho dịch vụ DNS-over-TLS và ứng dụng phải có khả năng tạo kết nối TLS bảo mật trên cổng 853 tới máy chủ DNS. Việc không thiết lập kết nối bảo mật là một lỗi nghiêm trọng và sẽ không dẫn đến dịch vụ DNS cho ứng dụng.

Với hồ sơ quyền riêng tư theo cơ hội, địa chỉ IP của máy chủ DNS có thể được người dùng định cấu hình trực tiếp hoặc lấy từ mạng cục bộ (sử dụng DHCP hoặc một số phương thức khác). Trình phân giải ứng dụng cố gắng thiết lập kết nối an toàn trên cổng 853 tới máy chủ DNS được chỉ định. Nếu một kết nối an toàn được thiết lập, điều này sẽ mang lại quyền riêng tư cho các truy vấn của người dùng từ các đối tượng tiếp nhận dữ liệu thụ động trên đường dẫn. Vì ứng dụng không xác minh tính xác thực của máy chủ nên ứng dụng không được bảo vệ khỏi những kẻ tấn công đang hoạt động. Nếu không thể thiết lập kết nối an toàn trên cổng 853, ứng dụng sẽ quay lại giao tiếp với máy chủ DNS trên cổng DNS tiêu chuẩn 53 qua UDP hoặc TCP mà không có bất kỳ tính bảo mật hay quyền riêng tư nào. Việc sử dụng Chính sách quyền riêng tư theo cơ hội nhằm hỗ trợ việc triển khai dần mức độ bảo vệ quyền riêng tư cao hơn nhằm áp dụng rộng rãi hồ sơ quyền riêng tư nghiêm ngặt.

Khi sử dụng một hồ sơ quyền riêng tư nghiêm ngặt, trình phân giải mã giả lập sẽ thiết lập kết nối DNS qua TLS bằng các bước sau.

  1. Trình phân giải mã giả lập được định cấu hình bằng tên trình phân giải DNS qua TLS dns.google.
  2. Trình phân giải mã giả lập lấy(các) địa chỉ IP cho dns.google bằng cách sử dụng trình phân giải DNS cục bộ.
  3. Trình phân giải mã giả lập kết nối TCP với cổng 853 tại địa chỉ IP đó.
  4. Trình phân giải mã giả lập sẽ bắt đầu quá trình bắt tay TLS với trình phân giải DNS của Google Public.
  5. Máy chủ DNS Google Public sẽ trả về chứng chỉ TLS cùng với một chuỗi đầy đủ chứng chỉ TLS cho đến chứng chỉ gốc đáng tin cậy.
  6. Trình phân giải mã giả lập xác minh danh tính của máy chủ dựa trên các chứng chỉ được trình bày.
    • Nếu không thể xác thực danh tính, thì quá trình phân giải tên DNS sẽ không thành công và trình phân giải mã giả lập sẽ trả về một lỗi.
  7. Sau khi thiết lập kết nối TLS, trình phân giải mã giả lập sẽ có một đường dẫn liên lạc bảo mật giữa tới một máy chủ DNS của Google Public.
  8. Giờ đây, trình phân giải mã giả lập có thể gửi các truy vấn DNS và nhận phản hồi qua kết nối.

Khi sử dụng hồ sơ quyền riêng tư cơ hội, trước tiên, máy khách sẽ cố gắng tạo một kết nối TLS bảo mật với máy chủ. Quá trình này được thực hiện tương tự như trên với một điểm khác biệt quan trọng – ứng dụng không xác thực chứng chỉ. Điều này có nghĩa là thông tin nhận dạng của máy chủ không thể đáng tin cậy. Nếu không thể thiết lập kết nối TLS trên cổng 853 với máy chủ, trình phân giải mã giả lập sẽ quay lại giao tiếp với máy chủ DNS trên cổng 53.

Quyền riêng tư

Chính sách quyền riêng tư của chúng tôi áp dụng cho dịch vụ DNS qua TLS.

Vào ngày 27/6/2019, chúng tôi đã bật lại mạng con máy khách EDNS (ECS) cho dịch vụ DNS qua TLS. ECS đã bị tắt khi bắt đầu triển khai dịch vụ.

Dịch vụ hỗ trợ tiêu chuẩn

DNS của Google Public triển khai DNS qua TLS dựa trên RFC 7858. Ngoài ra, chúng tôi hỗ trợ các đề xuất sau đây để cung cấp dịch vụ DNS chất lượng cao và có độ trễ thấp.

Bắt đầu sử dụng

Hãy xem instructions để định cấu hình chính sách này trên thiết bị chạy Android 9 (Pie) trở lên.

DNS qua TLS cũng được hỗ trợ cho dịch vụ Google Public DNS64 chỉ dành cho IPv6. Xin lưu ý rằng bạn không nên định cấu hình DNS64 cho một thiết bị di động sẽ đính kèm nhiều mạng, vì DNS64 chỉ hoạt động khi có IPv6.