-
-
Notifications
You must be signed in to change notification settings - Fork 136
DNS Encryption
Bài viết dưới đây giải thích mã hóa DNS là gì, tại sao phải mã hóa DNS khi truy vấn và các vấn đề liên quan đến mã hóa DNS. Bài viết có tham khảo, sử dụng nguồn từ các bài viết trên internet. Nếu thấy bài viết hữu ích, hãy ủng hộ dự án bằng cách <ở đây>. Cám ơn!
Với trình độ tiếng Anh ít ỏi và kiến thức hạn hẹp nên bài viết sẽ không thể tránh khỏi nhiều thiếu sót. Nếu có vấn đề gì sai sót trong quá trình viết bài, vui lòng cho mình biết để chỉnh sửa.
DNS được ví như cuốn danh bạ của Internet. Trình phân giải DNS dịch các tên miền mà chúng ta hiểu và gõ sang địa chỉ IP máy tính hiểu. Mặc định, DNS được truy vấn và phản hồi dưới dạng văn bản thô, điều này có nghĩa chúng có thể được đọc bởi bất kỳ ai trong mạng (kể cả nội bộ và internet) hay nhà mạng.
Như vậy, DNS sẽ không còn riêng tư nếu mọi người đều có thể theo dõi truy vấn và phản hồi của bạn và nguy hiểm hơn là chúng bị những kẻ tấn công cố ý thay đổi phản hồi truy vấn trước khi nhận được.
DNS qua TLS và DNS qua HTTPS là hai tiêu chuẩn được phát triển để mã hóa lưu lượng DNS nhằm ngăn bên thứ ba có thể diễn giải dữ liệu.
- DNS-over-53 (gọi tắt là Do53) là DNS không mã hóa được truyền trên cổng 53 dưới dạng văn bản thô.
- DNS-over-HTTPS (DoH) là DNS mã hóa được truyền trên cổng 443, với giao thức TCP. (Xem thêm RFC 8484)
- DNS-over-HTTP/3 (DoH3) là DNS mã hóa được truyền trên cổng 443, với giao thức UDP.
- DNS-over-TLS (DoT) là DNS mã hóa được truyền trên cổng 853, với giao thức TCP. (Xem thêm RFC 8310)
- DNS-over-QUIC (DoQ) là DNS mã hóa được truyền trên cổng 853, với giao thức UDP.
Do53 | DoH | DoH3 | DoT | DoQ | |
---|---|---|---|---|---|
Cổng | 53 | 443 | 443 | 853 | 853 |
Giao thức | UDP | TCP | UDP | TCP | UDP |
Tầng | Ứng dụng | Ứng dụng | Ứng dụng | Giao vận | Giao vận |
Mã hóa | Không | Có | Có | Có | Có |
Nghe lén | Có | Không | Không | Không | Không |
Hầu hết, các thiết bị/trình duyệt hiện nay đều đã hỗ trợ DNS mã hóa (native DNS) như:
- iOS 14 trở về sau đã hỗ trợ DoH và DoT.
- Android 9 trở lên đã hỗ trợ DoT.
- Windows 11 đã hỗ trợ DoH.
- Các trình duyệt Firefox/Edge/Chrome/Chromium đã hỗ trợ DoH.
Xét về tốc độ và hiệu năng, DoT và DoQ cho kết quả tốt nhất. Do DoT và DoQ trao đổi dữ liệu ở tầng giao vận (Transport layer) là tầng thứ 4 trong 7 tầng mạng, trong khi đó DoH và DoH3 trao đổi dữ liệu ở tầng ứng dụng (Application layer) nằm ở tầng thứ 7 (tầng cuối cùng).
Ở vài quốc gia hay mạng nội bộ chặn cổng 853, DoH và DoH3 cho kết quả tốt hơn. Do DoT và DoQ truyền dữ liệu trên cổng 853, nhà mạng hay IT trong mạng dễ dàng chặn chúng, trong khi DoH và DoH3 truyền dữ liệu trên cổng 443 (trùng với cổng HTTPS) nên hầu như khó chặn hơn.
Vì vậy, ưu tiên sử dụng DNS mã hóa theo thứ tự sau:
- Luôn sử dụng DNS mã hóa DoH có sẵn trong trình duyệt trên máy tính.
- Nếu đang sử dụng mạng không bị chặn cổng 853 và thiết bị đang sử dụng có hỗ trợ DNS mã hóa, hãy sử dụng DoT (tích hợp trên iOS, Android và Linux).
- Nếu mạng đang sử dụng có thể chặn cổng 853, hãy sử dụng DoH (tích hợp trên iOS, Android, Windows và Linux).
Q: Mã hóa DNS có ẩn được truy vấn và phản hồi DNS không?
A: Có. Quá trình truy vấn và phản hồi DNS sẽ không có bên thứ 3 đọc/chỉnh sửa.
Q: Vậy nhà mạng biết được tên miền ta truy vấn không?
A: Có thể hoặc không. Khi phân giải được địa chỉ IP để kết nối, nhà mạng dùng bản ghi PTR
để suy ngược tên máy chủ đó nhưng hầu hết tên máy chủ
và tên miền
truy vấn không giống nhau. VD: Khi phân giải tên miền www.facebook.com
thiết bị kết nối đến địa chỉ 31.13.88.35
, nhà mạng sẽ truy vấn ngược từ địa chỉ IP 35.88.13.31.in-addr.arpa
với kết quả edge-star-mini-shv-02-atl3.facebook.com
. Như vậy, tên miền
truy vấn ban đầu và tên máy chủ
mà nhà mạng truy vấn được không giống nhau.
Q: Nhà mạng biết được đỉa chỉ IP mà chúng ta kết nối. Vậy nhà mạng có theo dõi được không?
A: Có. Nhà mạng hiện nay sử dụng kỹ thuật Deep packet inspection (DPI) để chặn và theo dõi người dùng. Khi thiết bị bắt đầu quá trình bắt tay SSL sẽ gửi tên miền truy cập trong header, từ đó nhà mạng vẫn thấy tên miền và theo dõi được. Tuy nhiên, hiện tại giao thức mới đang phát triển là ECH (Encrypted Client Hello) - một phiên bản mới của ESNI (Encrypted SNI) trước đây - sẽ giúp mã hóa phần header khi bắt tay, khiến nhà mạng sẽ không thấy được quá trình bắt tay, từ đó không thấy được tên miền mà ta truy cập. Xem thêm https://blog.cloudflare.com/encrypted-client-hello/
Q: Vậy tại sao chúng ta phải mã hóa DNS?
A: Ít nhất trong mạng nội bộ và rộng hơn là trong mạng internet, mã hóa DNS sẽ ngăn bên thứ 3 đọc được tất cả truy vấn DNS. Đối với hacker có thể chỉnh sửa bản ghi DNS, từ đó dẫn thiết bị truy cập đến máy chủ lạ mà chúng ta không hề hay biết.
Copyright © BigDargon.
- Home
- Privacy
- Extensions
- Opt out
-
DNS
- EDNS
- DNS Encryption
- DNS Benchmark
- Software
- Bind
- Cloudflared
- DNSCrypt-proxy
- Stubby
- Unbound
- NextDNS
- Donate