DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Tìm hiểu về DNS over HTTPS (DoH)
Hôm trước trên group Whitehat, có thành viên hỏi làm thế nào để ngăn chặn nhà cung cấp Internet biết được các địa chỉ trang web mà người dùng đang truy cập?
Thì câu trả lời đó là sử dụng DoH. Sẵn tiện mình đang tìm hiểu về DNS over HTTPS (DoH), trong bài viết này mình sẽ chia sẻ với các bạn về DoH.
Các công ty như Microsoft, Google và Mozilla đang quảng bá cơ chế DNS over HTTPS (DoH). Công nghệ này sẽ mã hóa các truy vấn DNS, cải thiện quyền riêng tư và bảo mật trực tuyến. Chúng ta hãy xem xét kỹ hơn công nghệ DNS Over HTTPS, tìm hiểu nó dùng để làm gì và cách kích hoạt nó. Có thể bạn đang sử dụng DNS over HTTPS mà không hề hay biết!
DNS over HTTPS (DoH) là gì?
Internet cố gắng mã hóa mọi nơi theo mặc định. Hiện tại, hầu hết các trang web bạn truy cập có thể đang sử dụng mã hóa HTTPS. Các trình duyệt web hiện đại như Chrome hiện gắn cờ bất kỳ trang web nào sử dụng giao thức HTTP là "không an toàn". HTTP/3, một phiên bản mới của giao thức HTTP, có mã hóa tích hợp.
Mã hóa này đảm bảo rằng không ai có thể giả mạo trang web khi bạn đang truy cập hoặc theo dõi những gì bạn đang làm trên Internet. Ví dụ: nếu bạn kết nối với trang Wikipedia.org, nhà điều hành mạng - có thể là điểm phát sóng Wi-Fi công cộng của công ty hoặc ISP của bạn - chỉ có thể biết rằng bạn đã kết nối với wikipedia.org. Họ không thể nhìn thấy bài viết nào bạn đang đọc và họ không thể sửa đổi bài viết trên Wikipedia khi nó được chuyển đến máy tính của bạn.
Nhưng trong việc theo đuổi mã hóa, DNS bị bỏ lại phía sau. Hệ thống tên miền giúp chúng ta có thể kết nối với các trang web thông qua tên miền của chúng thay vì sử dụng địa chỉ IP dạng số. Bạn nhập một tên miền như google.com và hệ thống của bạn sẽ liên hệ với máy chủ DNS được chỉ định trong cài đặt hệ thống để lấy địa chỉ IP liên kết với google.com. Sau đó máy tính hoặc điện thoại của bạn sẽ kết nối với địa chỉ IP đó.
Cho đến nay, các truy vấn DNS này vẫn chưa được mã hóa. Khi bạn kết nối với một trang web, hệ thống của bạn sẽ gửi yêu cầu rằng bạn đang tìm kiếm địa chỉ IP được liên kết với một tên miền cụ thể. Trong trường hợp này, nhà cung cấp dịch vụ mạng (ISP), hoặc những thiết bị kết nối tới cùng mạng này, có thể biết bạn đang truy vấn tới tên miền nào. Do đó, các cuộc tấn công và thu thập thông tin sử dụng kỹ thuật DNS giả mạo là có thể xảy ra.
DNS over HTTPS khiến việc giám sát này không thể thực hiện được. Khi sử dụng DNS over HTTPS, hệ thống của bạn sẽ thiết lập một kết nối an toàn, được mã hóa với máy chủ DNS của bạn và truyền yêu cầu và phản hồi qua kết nối đó. Bất kỳ ai ở giữa sẽ không thể thấy những tên miền bạn đang truy vấn hoặc can thiệp vào phản hồi được gửi.
Hầu hết mọi người ngày nay sử dụng máy chủ DNS do ISP của họ cung cấp. Tuy nhiên, có nhiều máy chủ DNS của bên thứ ba như Google Public DNS, Cloudflare và OpenDNS. Các nhà cung cấp bên thứ ba này là một trong những nhà cung cấp đầu tiên hỗ trợ DNS over HTTPS ở phía máy chủ. Để sử dụng DNS over HTTPS, bạn cần cả máy chủ DNS và máy khách (chẳng hạn như trình duyệt web hoặc hệ điều hành) hỗ trợ nó.
So sánh giữa DNS over HTTPS, DNSSEC, DNSCrypt, DNS over TLS
Một số giao thức có sẵn để mã hóa các truy vấn DNS. DNS over HTTPS (DoH) hiện được hỗ trợ tốt nhất trên phần mềm máy khách như trình duyệt mà mình sẽ đề cập ở phần sau . Dưới đây là một số khái niệm bạn có thể gặp khi tìm hiểu về mã hóa DNS.
Bạn có thể kích hoạt các truy vấn DNS được mã hóa theo hai cách - ở cấp trình duyệt web và ở cấp hệ điều hành.
Kích hoạt DNS bảo mật ở cấp trình duyệt web rất đơn giản, chỉ cần đánh dấu vào tùy chọn Enable DoH trong phần cài đặt. Hơn nữa, trong Google Chrome, cài đặt này đã được bật theo mặc định. Nhược điểm của phương pháp này là tất cả các ứng dụng khác sử dụng kết nối Internet sẽ không thể sử dụng DNS over HTTPS. Các ứng dụng như vậy có thể là các chương trình tải xuống tệp, tin nhắn tức thời, dịch vụ cập nhật phần mềm và hệ điều hành, v.v.
Việc bật DoH ở cấp hệ thống giúp tất cả các chương trình sẽ thực hiện các truy vấn DNS trên một kênh được mã hóa. Lựa chọn nào là hoàn toàn do bạn quyết định. Bài viết này sẽ bao gồm cả hai phương pháp và bạn sẽ thấy nó đơn giản như thế nào khi chọn bất kỳ phương pháp yêu cầu mã hóa DNS nào.
Máy chủ định danh công cộng có hỗ trợ DNS over HTTPS
Để sử dụng DNS over HTTPS, máy chủ định danh phải hỗ trợ công nghệ này. Hiện tại, các máy chủ DNS công cộng phổ biến nhất đều hỗ trợ nó. Địa chỉ của chúng giống nhau đối với các truy vấn DoH hoặc DNS thông thường.
Cách bật DNS over HTTPS (DoH) trong trình duyệt web
Google Chrome trên Windows đã bật DNS qua HTTPS theo mặc định. Bạn có thể kiểm tra bằng cách vào "Settings" → "Privacy and Security" → "Security" → "Advanced" → "Use secure DNS"
Trong trình duyệt Firefox, bạn truy cập tùy chọn “Settings → General → Network Settings”
Trong trình duyệt Microsoft Edge, bạn kích hoạt tính năng DoH trong flag: edge://flags/#dns-over-https
Bật tính năng DoH ở cấp độ hệ điều hành
Hiện tại tính năng DoH chỉ có thể được kích hoạt bằng cách thủ công trên phiên bản Windows 10 Build 19628 hoặc mới hơn. Thật đáng tiếc là phiên bản Build này nằm trong chương trình thử nghiệm Windows Insder của Microsoft và chưa được đẩy lên phiên bản Windows 10 chính thức.
Nếu bạn đang sử dụng phiên bản Windows 10 Insider, bạn có thể bật tính năng DoH theo các bước dưới đây:
1. Mở Registry Editor với quyền quản trị
2. Truy cập tới khóa: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
3. Kích chuột phải vào thư mục Parameters chọn tạo Dword (32-bit) Value. Đặt tên tệp này là EnableAutoDOH và đặt giá trị của nó là “2”
4. Tắt Registry Editor và khởi động lại máy tính.
5. Chọn card mạng bạn đang sử dụng Settings > Network & Internet > Status.
6. Chọn Properties and thiết lập địa chỉ Ip và DNS server như hình dưới On Ethernet (wired) connections, open Settings > Network & Internet > Status.
Tham khảo: Microsoft
Thì câu trả lời đó là sử dụng DoH. Sẵn tiện mình đang tìm hiểu về DNS over HTTPS (DoH), trong bài viết này mình sẽ chia sẻ với các bạn về DoH.
Các công ty như Microsoft, Google và Mozilla đang quảng bá cơ chế DNS over HTTPS (DoH). Công nghệ này sẽ mã hóa các truy vấn DNS, cải thiện quyền riêng tư và bảo mật trực tuyến. Chúng ta hãy xem xét kỹ hơn công nghệ DNS Over HTTPS, tìm hiểu nó dùng để làm gì và cách kích hoạt nó. Có thể bạn đang sử dụng DNS over HTTPS mà không hề hay biết!
DNS over HTTPS (DoH) là gì?
Internet cố gắng mã hóa mọi nơi theo mặc định. Hiện tại, hầu hết các trang web bạn truy cập có thể đang sử dụng mã hóa HTTPS. Các trình duyệt web hiện đại như Chrome hiện gắn cờ bất kỳ trang web nào sử dụng giao thức HTTP là "không an toàn". HTTP/3, một phiên bản mới của giao thức HTTP, có mã hóa tích hợp.
Mã hóa này đảm bảo rằng không ai có thể giả mạo trang web khi bạn đang truy cập hoặc theo dõi những gì bạn đang làm trên Internet. Ví dụ: nếu bạn kết nối với trang Wikipedia.org, nhà điều hành mạng - có thể là điểm phát sóng Wi-Fi công cộng của công ty hoặc ISP của bạn - chỉ có thể biết rằng bạn đã kết nối với wikipedia.org. Họ không thể nhìn thấy bài viết nào bạn đang đọc và họ không thể sửa đổi bài viết trên Wikipedia khi nó được chuyển đến máy tính của bạn.
Nhưng trong việc theo đuổi mã hóa, DNS bị bỏ lại phía sau. Hệ thống tên miền giúp chúng ta có thể kết nối với các trang web thông qua tên miền của chúng thay vì sử dụng địa chỉ IP dạng số. Bạn nhập một tên miền như google.com và hệ thống của bạn sẽ liên hệ với máy chủ DNS được chỉ định trong cài đặt hệ thống để lấy địa chỉ IP liên kết với google.com. Sau đó máy tính hoặc điện thoại của bạn sẽ kết nối với địa chỉ IP đó.
Cho đến nay, các truy vấn DNS này vẫn chưa được mã hóa. Khi bạn kết nối với một trang web, hệ thống của bạn sẽ gửi yêu cầu rằng bạn đang tìm kiếm địa chỉ IP được liên kết với một tên miền cụ thể. Trong trường hợp này, nhà cung cấp dịch vụ mạng (ISP), hoặc những thiết bị kết nối tới cùng mạng này, có thể biết bạn đang truy vấn tới tên miền nào. Do đó, các cuộc tấn công và thu thập thông tin sử dụng kỹ thuật DNS giả mạo là có thể xảy ra.
DNS over HTTPS khiến việc giám sát này không thể thực hiện được. Khi sử dụng DNS over HTTPS, hệ thống của bạn sẽ thiết lập một kết nối an toàn, được mã hóa với máy chủ DNS của bạn và truyền yêu cầu và phản hồi qua kết nối đó. Bất kỳ ai ở giữa sẽ không thể thấy những tên miền bạn đang truy vấn hoặc can thiệp vào phản hồi được gửi.
Hầu hết mọi người ngày nay sử dụng máy chủ DNS do ISP của họ cung cấp. Tuy nhiên, có nhiều máy chủ DNS của bên thứ ba như Google Public DNS, Cloudflare và OpenDNS. Các nhà cung cấp bên thứ ba này là một trong những nhà cung cấp đầu tiên hỗ trợ DNS over HTTPS ở phía máy chủ. Để sử dụng DNS over HTTPS, bạn cần cả máy chủ DNS và máy khách (chẳng hạn như trình duyệt web hoặc hệ điều hành) hỗ trợ nó.
So sánh giữa DNS over HTTPS, DNSSEC, DNSCrypt, DNS over TLS
Một số giao thức có sẵn để mã hóa các truy vấn DNS. DNS over HTTPS (DoH) hiện được hỗ trợ tốt nhất trên phần mềm máy khách như trình duyệt mà mình sẽ đề cập ở phần sau . Dưới đây là một số khái niệm bạn có thể gặp khi tìm hiểu về mã hóa DNS.
- DNS over HTTPS (DoH) là một giao thức để thực hiện phân giải DNS qua HTTPS. Mục tiêu của kỹ thuật này là cải thiện quyền riêng tư và bảo mật của người dùng bằng cách ngăn chặn việc đánh chặn và thao túng dữ liệu DNS thông qua một cuộc tấn công trung gian (MiTM).
- DNS over TLS (DoT) là một giao thức tiêu chuẩn được đề xuất để thực hiện phân giải DNS từ xa bằng TLS. Mục tiêu của kỹ thuật này là cải thiện quyền riêng tư và bảo mật của người dùng bằng cách ngăn chặn việc đánh chặn và thao túng dữ liệu DNS thông qua một cuộc tấn công trung gian (MiTM).
- DNSSEC (Domain Name System Security Extensions) là một tập hợp các phần mở rộng cho giao thức IETF DNS giúp giảm thiểu các cuộc tấn công liên quan đến giả mạo DNS khi phân giải tên miền. Nó nhằm mục đích cung cấp cho các máy khách DNS các phản hồi xác thực đối với các yêu cầu DNS và đảm bảo tính toàn vẹn của chúng. Mã hóa sử dụng trong DNSSEC sử dụng mật mã khóa công khai.
- DNSCrypt là một giao thức mạng xác thực và mã hóa lưu lượng truy cập hệ thống tên miền (DNS) giữa máy tính của người dùng và máy chủ định danh đệ quy. Ban đầu nó được phát triển bởi Frank Denis và Yecheng Fu.
- DNSCrypt bao bọc lưu lượng DNS chưa được sửa đổi giữa máy khách và trình phân giải DNS trong một cấu trúc mật mã để phát hiện giả mạo. Mặc dù nó không cung cấp bảo mật đầu cuối, nhưng nó bảo vệ mạng cục bộ khỏi các cuộc tấn công trung gian (MiTM). Nó cũng giảm thiểu các cuộc tấn công khuếch đại dựa trên UDP. Do đó, DNSCrypt giúp ngăn chặn các cuộc tấn công khuếch đại DNS.
- DNSCurve là một giao thức hệ thống tên miền bảo mật (DNS) được đề xuất bởi Daniel J. Bernstein.
Bạn có thể kích hoạt các truy vấn DNS được mã hóa theo hai cách - ở cấp trình duyệt web và ở cấp hệ điều hành.
Kích hoạt DNS bảo mật ở cấp trình duyệt web rất đơn giản, chỉ cần đánh dấu vào tùy chọn Enable DoH trong phần cài đặt. Hơn nữa, trong Google Chrome, cài đặt này đã được bật theo mặc định. Nhược điểm của phương pháp này là tất cả các ứng dụng khác sử dụng kết nối Internet sẽ không thể sử dụng DNS over HTTPS. Các ứng dụng như vậy có thể là các chương trình tải xuống tệp, tin nhắn tức thời, dịch vụ cập nhật phần mềm và hệ điều hành, v.v.
Việc bật DoH ở cấp hệ thống giúp tất cả các chương trình sẽ thực hiện các truy vấn DNS trên một kênh được mã hóa. Lựa chọn nào là hoàn toàn do bạn quyết định. Bài viết này sẽ bao gồm cả hai phương pháp và bạn sẽ thấy nó đơn giản như thế nào khi chọn bất kỳ phương pháp yêu cầu mã hóa DNS nào.
Máy chủ định danh công cộng có hỗ trợ DNS over HTTPS
Để sử dụng DNS over HTTPS, máy chủ định danh phải hỗ trợ công nghệ này. Hiện tại, các máy chủ DNS công cộng phổ biến nhất đều hỗ trợ nó. Địa chỉ của chúng giống nhau đối với các truy vấn DoH hoặc DNS thông thường.
Cách bật DNS over HTTPS (DoH) trong trình duyệt web
Google Chrome trên Windows đã bật DNS qua HTTPS theo mặc định. Bạn có thể kiểm tra bằng cách vào "Settings" → "Privacy and Security" → "Security" → "Advanced" → "Use secure DNS"
Trong trình duyệt Firefox, bạn truy cập tùy chọn “Settings → General → Network Settings”
Trong trình duyệt Microsoft Edge, bạn kích hoạt tính năng DoH trong flag: edge://flags/#dns-over-https
Bật tính năng DoH ở cấp độ hệ điều hành
Hiện tại tính năng DoH chỉ có thể được kích hoạt bằng cách thủ công trên phiên bản Windows 10 Build 19628 hoặc mới hơn. Thật đáng tiếc là phiên bản Build này nằm trong chương trình thử nghiệm Windows Insder của Microsoft và chưa được đẩy lên phiên bản Windows 10 chính thức.
Nếu bạn đang sử dụng phiên bản Windows 10 Insider, bạn có thể bật tính năng DoH theo các bước dưới đây:
1. Mở Registry Editor với quyền quản trị
2. Truy cập tới khóa: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
3. Kích chuột phải vào thư mục Parameters chọn tạo Dword (32-bit) Value. Đặt tên tệp này là EnableAutoDOH và đặt giá trị của nó là “2”
4. Tắt Registry Editor và khởi động lại máy tính.
5. Chọn card mạng bạn đang sử dụng Settings > Network & Internet > Status.
6. Chọn Properties and thiết lập địa chỉ Ip và DNS server như hình dưới On Ethernet (wired) connections, open Settings > Network & Internet > Status.
Tham khảo: Microsoft