Vì sao dnscrypt không an toàn

Proxy DNSCrypt là một ứng dụng mã nguồn mở nhằm mục đích mã hóa lưu lượng DNS của kết nối của chúng tôi để điều hướng với bảo mật cao hơn. Chương trình mã hóa các yêu cầu DNS cục bộ và những yêu cầu này sau đó được giải mã bởi nhà cung cấp DNS, vì vậy bất kỳ ai cố gắng chặn chúng trong quá trình này (ví dụ: để thực hiện tấn công người đàn ông đứng giữa) sẽ rất khó khăn để có được nó.

Hiện tại có một số Các nhà cung cấp DNS được hỗ trợ bởi Proxy DNSCrypt, và vì nó là phần mềm miễn phí nên bất kỳ ai có đủ kiến ​​thức đều có thể thiết lập máy chủ DNS của riêng mình và cấu hình nó với chương trình. Tuy nhiên, theo mặc định, nó đã được cấu hình sẵn để sử dụng với OpenDNS.

Trong bài đăng này, tôi sẽ chỉ cho bạn cách cài đặt đơn giản và cơ bản nhất trong trường hợp Ubuntu và các dẫn xuất. Những ai muốn có cấu hình cao cấp hơn có thể tham khảo trang dự án y kho lưu trữ của bạn trên GitHub.

Cài đặt

Chúng tôi bắt đầu bằng cách cài đặt gói Proxy DNSCrypt từ Kho lưu trữ PPA do Sergey «Shnatsel» Davidoff duy trì:

sudo add-apt-repository ppa:shnatsel/dnscrypt sudo apt-get update

sudo apt-get install dnscrypt-proxy

Với việc nó đã được cài đặt và chạy, bây giờ chúng ta chỉ có thể yêu cầu hệ thống sử dụng nó. Để thực hiện việc này, chúng tôi có hai phương pháp, phương pháp thứ nhất bằng bảng điều khiển và phương pháp thứ hai ở chế độ đồ họa, hãy chọn phương pháp mà bạn thích nhất:

Chúng tôi hủy kích hoạt DNS hiện đang được sử dụng:

sudo unlink /etc/resolv.conf

Chúng tôi tạo tệp /etc/resolv.conf mới bằng trình chỉnh sửa văn bản:

sudo gedit /etc/resolv.conf

Và chúng tôi dán dòng này để chuyển lưu lượng DNS qua DNSCrypt:

nameserver 127.0.0.1

Bây giờ chúng tôi bảo vệ tệp để ngăn chặn Quản lý mạng sửa đổi nó:

sudo chattr +i /etc/resolv.conf

Để sửa đổi lại nó sau này, trước tiên bạn phải loại bỏ bảo vệ bằng lệnh này:

sudo chattr -i /etc/resolv.conf

Sau đó, họ có thể quay lại bảo vệ nó hoặc không tùy thuộc vào những gì họ muốn làm.

Chúng tôi lưu các thay đổi và đóng trình chỉnh sửa.

Phương pháp 2

Chúng tôi nhấp vào biểu tượng mạng trong bảng điều khiển của chúng tôi và nhấn Chỉnh sửa các kết nối. Bây giờ chúng tôi chọn kết nối mà chúng tôi đã kích hoạt và nhấp vào Chỉnh sửa. Trong cửa sổ mở ra, chúng tôi chuyển đến tab Cài đặt IPv4 và chúng ta sẽ thấy một cái gì đó như thế này:

Chúng tôi định cấu hình các tùy chọn như đã thấy ở đó, chọn trong Phương pháp "Chỉ địa chỉ tự động (DHCP)" và trong Máy chủ DNS đặt 127.0.0.1

Kích hoạt

Cho dù bạn đã sử dụng Metodo 1 như Phương pháp 2, bước tiếp theo là khởi động lại Quản lý mạng:

sudo service network-manager restart

Chúng ta sẽ thấy rằng kết nối bị cắt và khởi động lại. Nếu mọi thứ diễn ra tốt đẹp, nó sẽ hoạt động Proxy DNSCrypt. Để kiểm tra nó, chúng tôi sẽ trang nàyvà nếu kết quả là khả quan, bạn sẽ hoan nghênh chúng tôi OpenDNS:

Nếu không, chúng tôi sẽ nhận được thông báo lỗi "Rất tiếc" hoặc nó sẽ không tải bất kỳ trang nào. Để giải quyết nó, chúng tôi chỉ cần thay đổi máy chủ 127.0.0.1 thành 127.0.0.2 (hoặc một số khác) và khởi động lại Quản lý mạng.

Chỉ dành cho Ubuntu 14.04

Người duy trì PPA cảnh báo rằng có một lỗi trong Ubuntu 14.04 ngăn việc tắt thiết bị khi Proxy DNSCrypt đang làm việc. Nó chỉ ra rằng bạn đang làm việc trên một bản vá để giải quyết nó, nhưng trong thời gian chờ đợi nó có thể được khắc phục bằng cách chạy các lệnh sau:

sudo apt-get install apparmor-utils
sudo aa-complain /etc/apparmor.d/usr.sbin.dnscrypt-proxy

Gỡ cài đặt

Nếu sau này chúng tôi muốn ngừng sử dụng Proxy DNSCryptTrước hết, bạn sẽ phải khôi phục các tùy chọn kết nối như lúc ban đầu.

Nếu bạn sử dụng Phương pháp 1 sẽ là xóa bảo vệ khỏi tệp và sau đó kích hoạt lại DNS cũ bằng lệnh sau:

sudo rm /etc/resolv.conf && sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Nếu bạn sử dụng Phương pháp 2, nó sẽ là mở lại menu cấu hình mạng và trong Phương pháp chọn "Tự động (DHCP)".

Trong cả hai trường hợp, bạn sẽ phải khởi động lại sau Quản lý mạng bằng lệnh nói trên và cuối cùng gỡ cài đặt Proxy DNSCrypt do đó:

sudo apt-get autoremove --purge dnscrypt-proxy

Cũng đừng quên xóa PPA bằng cách đi tới Trung tâm phần mềm> Chỉnh sửa> Phần mềm khác.

Khi số lượng người có Internet tiếp tục tăng, điều quan trọng hơn bao giờ hết là bạn phải bảo vệ hoạt động trực tuyến của mình.

Sử dụng VPN và truy cập độc quyền vào các trang web có mã hóa HTTPS là hai phương pháp bảo vệ như vậy. Tuy nhiên, các lỗ hổng khác có thể vẫn còn. Các yêu cầu DNS không được mã hóa được gửi từ máy tính của bạn khiến bạn bị theo dõi và thậm chí là các cuộc tấn công bằng phần mềm độc hại.

Điều này có thể hơi khó khăn, nhưng thực sự không có gì phải sợ cả. Trong bài viết sau, chúng tôi sẽ phân tích DNS từng bước: từ nó là gì đến cách nó có thể khiến bạn dễ bị tấn công và cuối cùng là cách giải quyết mối nguy hiểm thường bị bỏ qua của lưu lượng DNS không được mã hóa.

Yêu cầu DNS là gì?

Hệ thống tên miền (DNS) là một thư mục liên kết một trang web với địa chỉ IP của nó. Bất cứ khi nào bạn nhập tên của một trang web vào trình duyệt của mình, trình duyệt của bạn sẽ gửi tên đó, được gọi là Bộ định vị tài nguyên chung (URL), tới DNS. Đây được gọi là yêu cầu DNS.

Đáp lại yêu cầu DNS, trình duyệt của bạn nhận được địa chỉ IP của trang web đó - đó là vị trí chính xác như được chỉ định bởi một loạt các số. Khi máy tính của bạn biết địa chỉ IP, nó có thể gửi dữ liệu đến trang web tương ứng của nó.

Tại sao các yêu cầu DNS nên được mã hóa

Hầu hết mọi hành động trên Internet đều bắt đầu bằng một yêu cầu DNS. Tuy nhiên, phần lớn người dùng vẫn chưa mã hóa được các yêu cầu DNS. Mặc dù dữ liệu trong DNS là công khai, nhưng các yêu cầu cụ thể mà bạn thực hiện và dữ liệu chứa chúng phải được mã hóa.

Yêu cầu DNS không chỉ tiết lộ các trang web bạn truy cập mà còn tiết lộ siêu dữ liệu khác liên quan đến các dịch vụ liên quan - như miền của địa chỉ liên hệ email hoặc nền tảng nhắn tin. Bởi vì các yêu cầu DNS được gửi ở dạng văn bản rõ ràng và dễ đọc, hoạt động trực tuyến của bạn có thể được quan sát một cách tương đối dễ dàng.

Hầu hết các thiết bị của bạn được định cấu hình để tự động liên hệ với máy chủ DNS do Nhà cung cấp dịch vụ Internet (ISP) đang sử dụng. Bằng cách khai thác sự sắp xếp này, ISP có thể bí mật thu thập và chia sẻ thông tin của bạn với các bên thứ ba.

Việc hiển thị các yêu cầu DNS của bạn với ISP cũng cho phép ISP phân tích các truy vấn đó bằng các phương pháp nâng cao có thể đe dọa thêm quyền riêng tư của bạn. Khoảng thời gian mà siêu dữ liệu của bạn hiển thị với ISP càng lâu, thì thói quen trực tuyến của bạn càng thể hiện rõ hơn.

Mối đe dọa không chỉ đến từ ISP của bạn. Một số phần mềm độc hại cũng khai thác lưu lượng DNS không được mã hóa của bạn để có được quyền truy cập vào dữ liệu cá nhân của bạn. Nhiều phần mềm độc hại thậm chí còn được cài đặt trên các bộ định tuyến bị tấn công với hy vọng chuyển hướng bạn đến các máy chủ DNS có nguy cơ cao.

Ngoài ra, các cơ quan an ninh nổi tiếng với việc sử dụng các công cụ để bí mật theo dõi, khảo sát và chiếm đoạt lưu lượng DNS. Nếu việc bảo vệ dữ liệu cá nhân và danh tính của bạn là quan trọng đối với bạn, thì mã hóa DNS nên nằm trong số các ưu tiên hàng đầu của bạn.

HTTPS có bảo vệ bạn không?

Mặc dù HTTPS, cùng với các công cụ khác, giúp bảo vệ quyền riêng tư và dữ liệu của bạn, nhưng nó không mã hóa các yêu cầu DNS của bạn. Khi HTTPS được sử dụng, tất cả dữ liệu HTTP được Bảo mật lớp truyền tải (TLS) bao bọc thành các gói bảo mật trước khi gửi và sau khi nhận.

Khi bạn tương tác với một trang web bằng TLS, dữ liệu nhạy cảm của bạn sẽ được bảo vệ an toàn và tội phạm mạng không thể đọc hoặc sửa đổi. Trong khi dữ liệu được truyền giữa thiết bị của bạn và trang web đã được mã hóa, yêu cầu DNS - và siêu dữ liệu mà nó chứa - vẫn chưa được mã hóa.

Trên thực tế, vì các kết nối HTTPS yêu cầu Chỉ báo Tên Máy chủ (SNI) cho mục đích TLS, các miền bạn yêu cầu bị rò rỉ dưới dạng văn bản thuần túy. Tuy nhiên, HTTPS vẫn là một tính năng bảo mật khả thi được khuyến nghị sử dụng mọi lúc để đảm bảo bảo vệ dữ liệu cá nhân của bạn.

DNSCrypt là một giao thức phổ biến bảo vệ các yêu cầu DNS của bạn khỏi bị nghe trộm và các cuộc tấn công trung gian. DNSCrypt sẽ xác minh rằng tất cả giao tiếp giữa thiết bị của bạn và trình phân giải DNS - máy chủ DNS đầu tiên được liên hệ - không bị giả mạo.

DNSCrypt.org đã được đưa vào ngoại tuyến vào năm 2017. Tuy nhiên, DNSCrypt-Proxy được duy trì qua GitHub để sử dụng với giao thức DNSCrypt phiên bản 2. Mặc dù hỗ trợ cho phiên bản hai của giao thức DNSCrypt có sẵn tại DNSCrypt.info, nhưng tương lai lâu dài của giao thức này không được đảm bảo.

Mặc dù DNSCrypt phiên bản 2 vẫn là một tùy chọn đáng chú ý, nhưng có những phương pháp thay thế để mã hóa lưu lượng DNS của bạn. Dưới đây là bốn lựa chọn thay thế được đề xuất để giúp bạn bảo vệ lưu lượng DNS của mình.

Sử dụng VPN có bảo vệ rò rỉ DNS

VPN là giải pháp thay thế đơn giản nhất cho DNSCrypt và cũng cung cấp bảo mật hoàn chỉnh nhất. Tuy nhiên, không phải tất cả các VPN đều được tạo ra như nhau. Điều rất quan trọng là bạn phải sử dụng VPN cung cấp tính năng bảo vệ chống rò rỉ DNS.

Khi sử dụng VPN, một đường hầm được mã hóa sẽ được thiết lập giữa máy tính của bạn và máy chủ VPN. Tùy thuộc vào VPN và cấu hình của nó, một số hoặc tất cả lưu lượng của bạn được chuyển qua đường hầm được mã hóa này đến máy chủ VPN.

Các VPN cung cấp tính năng bảo vệ chống rò rỉ DNS định cấu hình kết nối của bạn để tất cả các truy vấn DNS của bạn đi qua đường hầm VPN đến máy chủ DNS của riêng chúng. Các VPN này đồng thời chặn lưu lượng truy cập đến các máy chủ DNS do ISP, cơ quan chính phủ hoặc tội phạm mạng của bạn cung cấp.

Mã hóa DNS bảo vệ yêu cầu của bạn khỏi các tác nhân độc hại và ngăn ISP đọc nội dung và thông tin miền trực tiếp từ chính yêu cầu DNS. Tuy nhiên, có những phương pháp khác mà ISP có thể giám sát hoạt động trực tuyến của bạn.

Bất kể bạn chọn giải pháp mã hóa DNS nào, bạn nên sử dụng kiểm tra rò rỉ để xác minh rằng lưu lượng DNS của bạn được bảo mật đúng cách.

Sử dụng DNS-Over-TLS

TLS, như đã đề cập trước đây, là một giao thức bảo mật được sử dụng trên Internet để đảm bảo việc truyền dữ liệu. TLS thường được sử dụng cùng với giao thức HTTP. Tuy nhiên, một số dịch vụ DNS hiện đã tương thích với các yêu cầu DNS được truyền qua TLS.

Mặc dù DNS-over-TLS (DoT) là một giải pháp thay thế tuyệt vời cho DNSCrypt, hỗ trợ khách hàng của nó vẫn đang phát triển và không có quá nhiều tùy chọn sẵn có. Giải pháp dễ nhất của bạn trong danh mục này là Tenta, một dự án mã nguồn mở bao gồm DNS-over-TLS.

Việc định cấu hình thiết bị của bạn để sử dụng DNS-over-TLS của Tenta thật dễ dàng nhờ các hướng dẫn thiết lập chi tiết của họ - có sẵn cho Android, Mac và Windows. Tenta thậm chí còn cung cấp một VPN tích hợp miễn phí trong khi duyệt qua trình duyệt Android của họ.

Stubby là một giải pháp thay thế DNS-over-TLS tuyệt vời khác giúp mã hóa tất cả các yêu cầu DNS được gửi từ thiết bị của bạn. Quyền riêng tư mặc định của Stubby sử dụng một tập hợp con của các máy chủ DNS Privacy có sẵn. Các máy chủ bổ sung (ví dụ: Cloudflare) có sẵn để kích hoạt cho những người dùng quan tâm đến việc tùy chỉnh.

Khi ngày càng có nhiều người hiểu nhu cầu ngày càng tăng về bảo mật lưu lượng DNS, thì quá trình phát triển DNS-over-TLS sẽ tiếp tục diễn ra và sẽ có nhiều tùy chọn hơn.

DNS-over-TLS đã là một phương pháp tuyệt vời để bảo vệ các yêu cầu DNS của bạn nếu bạn không có VPN. Tuy nhiên, chúng tôi khuyên bạn nên luôn sử dụng VPN để bảo vệ và quyền riêng tư tối đa.

Sử dụng DNSCrypt Phiên bản 2

Mặc dù không phải là một giải pháp thay thế chính xác, nhưng DNSCrypt phiên bản 2 vẫn chọn đúng nơi người tiền nhiệm của nó đã bỏ đi. Đó là một lựa chọn quan trọng và hiệu quả phần lớn nhờ vào dnscrypt.info. Có một số triển khai ứng dụng khách của DNSCrypt v2, với DNSCrypt-Proxy là một trong những lựa chọn tốt nhất và được duy trì tích cực nhất hiện có.

Nếu bạn chọn sử dụng DNSCrypt phiên bản 2, hãy đảm bảo rằng, như mọi khi, kiểm tra lưu lượng DNS của bạn thường xuyên để tìm bất kỳ rò rỉ tiềm năng nào.

Sử dụng DNSCurve

DNSCurve thực sự là bản thiết kế cho DNSCrypt ban đầu. Mặc dù việc áp dụng DNSCurve ít phổ biến hơn một chút, nhưng trên thực tế, DNSCurve là một giải pháp thay thế đáng giá. DNSCurve sử dụng mật mã đường cong elip, tốc độ cao để đảm bảo tính bảo mật, tính toàn vẹn và tính xác thực của các truy vấn DNS.

Mặc dù có mức độ bảo mật rất cao, nhưng DNSCurve tương đối dễ cài đặt. Thậm chí còn có một cộng đồng DNSCurve để hướng dẫn bạn trong suốt quá trình thực hiện.

Mặc dù nó có thể yêu cầu nhiều bí quyết hơn một chút so với các lựa chọn thay thế trước đó, nhưng DNSCurve cung cấp cho bạn mức độ bảo mật DNS cực kỳ cao và chắc chắn đáng để thử. Chỉ cần nhớ chạy kiểm tra rò rỉ sau khi cài đặt.

Sử dụng DNS-Over-HTTPS

DNS-over-HTTPS (DoH) là một giao thức tương đối mới so với các tùy chọn khác được liệt kê ở đây. Tuy nhiên, nó đã bắt đầu nhận được sự ủng hộ rộng rãi và được một số người tin là tương lai của DNS Privacy.

Vì DoH sử dụng cùng một cổng tiêu chuẩn với lưu lượng HTTPS - Cổng 443 - nên đây là một giao thức khó chặn và theo dõi. Việc kiểm tra lưu lượng truy cập của bạn khó khăn hơn vì các yêu cầu DNS có thể ẩn trong phần còn lại của lưu lượng được mã hóa của bạn. Chặn các yêu cầu DNS của bạn cũng yêu cầu chặn tất cả lưu lượng HTTPS.

DoH cài đặt khá đơn giản. Các nhà cung cấp lớn như Firefox thậm chí đã bắt đầu đưa nó vào các sản phẩm của họ vào năm 2018. 1.1.1.1 của CloudFlare là một lựa chọn tuyệt vời, vì nó không theo dõi các yêu cầu của bạn và cung cấp một đảm bảo quyền riêng tư tốt. Thậm chí còn có một ứng dụng 1.1.1.1 cho cả thiết bị Apple và Android.

Bất kể bạn chọn tùy chọn nào, hãy nhớ kiểm tra các rò rỉ DNS tiềm ẩn sớm và thường xuyên.

Cách tốt nhất để mã hóa các yêu cầu DNS của bạn

VPN cung cấp cho bạn khả năng bảo vệ rò rỉ DNS là cách đơn giản và toàn diện nhất để bảo vệ lưu lượng DNS của bạn. Mặc dù các giải pháp thay thế sẽ bảo vệ các yêu cầu DNS của bạn khỏi bị giả mạo, nhưng chỉ VPN có tính năng bảo vệ rò rỉ DNS mới có thể bảo vệ hoàn toàn quyền riêng tư của bạn.

Ngay cả khi bạn quyết định không sử dụng VPN, việc bảo vệ lưu lượng DNS của bạn là điều cần thiết nếu bạn lo lắng về bảo mật và quyền riêng tư trực tuyến của mình. Bây giờ là thời điểm tốt hơn bao giờ hết để kiểm soát và ngăn chặn lưu lượng DNS của bạn rơi vào tay kẻ xấu.