Tor và VPN: nên chọn cái nào cho nhu cầu bảo mật?
Tor và VPN giải quyết các bài toán ẩn danh khác nhau. Bài viết phân tích chi tiết luồng dữ liệu tại mỗi hop và lý do tại sao thuê VPS cá nhân không đảm bảo tính ẩn danh.
Tor và VPN: bạn thực sự cần cái nào
Tor và VPN đều chuyển lưu lượng của bạn qua các máy chủ không phải của bạn, và chúng giải quyết các vấn đề khác nhau. VPN (mạng riêng ảo) chuyển sự tin tưởng của bạn từ nhà cung cấp internet sang một công ty duy nhất; công ty này sẽ thấy địa chỉ thực và mọi đích đến mà bạn truy cập. Tor phân tán sự tin tưởng đó qua ba relay do những người khác nhau vận hành, vì vậy không một relay nào biết được cả danh tính của bạn lẫn nơi bạn đang đi. Hãy chọn dựa trên việc bạn đang muốn ẩn danh trước đối tượng nào.
Nếu đối tượng đó là mạng mà bạn đang kết nối, VPN là công cụ phù hợp. Nếu đối tượng đó là chính trang web, hoặc bất kỳ ai có thể yêu cầu hồ sơ từ một công ty, Tor là công cụ phù hợp. Phần còn lại của hướng dẫn này là chi tiết đằng sau hai câu đó.
Theo dõi một yêu cầu qua cả hai thiết kế
Hãy lấy một yêu cầu thông thường: trình duyệt của bạn mở https://news.example.com. TLS (transport layer security) bảo vệ nội dung trang trong cả hai trường hợp, vì vậy không ai ở giữa có thể đọc được bài viết. Phần thú vị nằm ở metadata: ai biết địa chỉ IP của bạn, ai biết đích đến, và ai có thể kết hợp hai dữ liệu đó lại với nhau. Một công cụ bảo mật là cỗ máy dùng để tách rời cặp dữ liệu này. VPN chuyển cặp dữ liệu đó sang một đơn vị nắm giữ khác. Tor thì chia nhỏ chúng ra.
Những gì mỗi bên nhìn thấy khi bạn dùng VPN
Client của bạn mã hóa mọi packet và gửi đến một endpoint. Từ endpoint đó trở đi, nó lại trở thành lưu lượng thông thường.
- ISP (nhà cung cấp dịch vụ internet) của bạn nhìn thấy các packet đã mã hóa giữa đường truyền của bạn và một địa chỉ máy chủ VPN. Họ thấy dung lượng và thời gian. Họ không thấy hostname đích, miễn là các truy vấn DNS (domain name system) cũng đi qua tunnel.
- Nhà vận hành VPN nhìn thấy địa chỉ IP thật của bạn ở một đầu và mọi địa chỉ đích ở đầu kia, cùng với thời gian và kích thước. Cả hai nửa của cặp này đều nằm trên cùng một máy.
- Đích đến nhìn thấy địa chỉ exit của VPN, cộng với mọi chi tiết định danh mà trình duyệt của bạn gửi đi.
Do đó, VPN không tạo ra sự ẩn danh. Nó di chuyển vị trí của người quan sát, từ ISP sang nhà cung cấp VPN của bạn. Đây là một lợi ích thực sự khi mạng nội bộ là vấn đề, hoặc khi ISP của bạn lọc hay bán lại dữ liệu họ thấy. Nó hoàn toàn không có lợi ích gì đối với trang web bạn đang truy cập, vì lưu lượng của bạn vẫn đến dưới dạng một luồng từ một công ty biết chính xác bạn là ai và nắm giữ hồ sơ thanh toán của bạn.
Cam kết "no logs" là toàn bộ sản phẩm, và đó là phần duy nhất bạn không thể kiểm tra từ phía mình. Bạn có thể xác minh tunnel đang hoạt động. Bạn có thể xác minh DNS không bị leak. Bạn không thể xác minh những gì nhà vận hành ghi vào đĩa. Đó là sự đánh đổi bạn chấp nhận: một công ty, do bạn chọn, nắm giữ bức tranh toàn cảnh.
Kiểm tra lỗi leak âm thầm phá hỏng tunnel:
resolvectl status
curl -s https://ifconfig.me; echoĐịa chỉ được in bởi ifconfig.me phải là địa chỉ exit của VPN. Các máy chủ DNS được liệt kê cho liên kết mang route mặc định của bạn phải là trình phân giải của tunnel. Nếu chúng vẫn liệt kê router nội bộ của bạn tại 192.168.1.1, các truy vấn tên miền của bạn đang thoát ra ngoài qua liên kết nội bộ dưới dạng cleartext, vì route đến router đó là on-link và cụ thể hơn route mặc định của tunnel. Lưu lượng của bạn là riêng tư nhưng danh sách các trang web bạn truy cập thì không. Các truy vấn DNS thoát khỏi tunnel WireGuard sẽ hướng dẫn bạn cách khắc phục.
Những gì mỗi bên nhìn thấy khi bạn sử dụng Tor
Tor xây dựng một circuit gồm ba relay được chọn từ một danh sách đã ký, gọi là consensus, do một nhóm nhỏ các directory authority công bố. Client của bạn bọc dữ liệu thành nhiều lớp, mỗi lớp cho một relay. Mỗi relay gỡ bỏ một lớp, chỉ biết được hop tiếp theo và chuyển phần còn lại đi. Các lớp này là lý do tại sao không ai trong đường truyền nắm giữ được cả hai thông tin cùng lúc.
- ISP của bạn thấy lưu lượng đã mã hóa gửi đến một guard relay. Địa chỉ của các relay là công khai, nên ISP có thể biết bạn đang dùng Tor. Họ không thể biết bạn đang truy cập trang nào.
- Guard relay thấy địa chỉ IP thực của bạn. Nó không thể thấy đích đến, vì phần thông tin chỉ định trang web vẫn đang được mã hóa cho các relay phía sau nó.
- Middle relay thấy một guard ở một đầu và một exit ở đầu kia. Nó không thấy bạn cũng không thấy đích đến. Nó tồn tại để guard và exit không bao giờ giao tiếp trực tiếp với nhau.
- Exit relay thấy đích đến và lưu lượng khi nó rời khỏi mạng. Nó thấy địa chỉ của middle relay, không phải của bạn. Với HTTPS, nó biết hostname và metadata của kết nối, không phải nội dung trang.
- Đích đến thấy địa chỉ của exit relay, vốn xuất hiện trên các danh sách exit công khai, cộng với bất kỳ thông tin nào trình duyệt của bạn cung cấp.
Việc liên kết bạn với trang web đòi hỏi phải có cả guard và exit cùng lúc. Đó là thiết kế của Tor trong một câu. Đây cũng là lý do tại sao client của bạn giữ nguyên một guard trong nhiều tháng thay vì chọn mới mỗi khi khởi động: việc xoay vòng entry liên tục sẽ tạo cơ hội cho một relay độc hại có nhiều lần thử để trở thành guard của bạn.
Các circuit không tồn tại vĩnh viễn. Các kết nối mới sẽ chuyển sang một circuit mới sau khoảng mười phút, trong khi một stream đang mở vẫn giữ nguyên circuit mà nó bắt đầu. Một file tải xuống dài và một tab bạn mở sau đó mười lăm phút thường sẽ đi ra từ các exit khác nhau.
Cách ba hop được xây dựng mà không relay nào biết về các relay khác
Client không gửi danh sách relay cho guard. Nó thương lượng key với guard trước, sau đó gửi yêu cầu thông qua guard để yêu cầu mở rộng circuit đến middle relay, rồi gửi tiếp yêu cầu qua hop đó để mở rộng đến exit. Mỗi relay chỉ được thông báo về người hàng xóm mà nó phải giao tiếp tiếp theo, và mỗi hop có key riêng mà các hop khác không bao giờ thấy. Đây là lý do tại sao middle relay không thể biết vai trò của exit thông qua kiểm tra, và tại sao một relay dù log lại mọi thứ nó xử lý thì cũng chỉ log được một mảnh dữ liệu.
Cài đặt nó và kiểm tra đường truyền:
sudo apt update && sudo apt install -y tor
systemctl status tor@default
journalctl -u tor@default -n 20
curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ipLog sẽ đạt đến Bootstrapped 100% (done): Done. curl sẽ in ra {"IsTor":true,"IP":"..."} kèm theo một địa chỉ mà bạn không nhận ra, đó chính là exit hiện tại của bạn. Nếu IsTor là false, yêu cầu chưa bao giờ đi qua proxy. Tor trong gói cài đặt của Ubuntu có thể chậm hơn bản release hiện tại; Tor Project có xuất bản apt repository riêng nếu bạn cần theo sát bản upstream.
Có một cái bẫy nằm trong lệnh đó. --socks5 khiến curl tự phân giải hostname rồi mới gửi địa chỉ thu được qua proxy, vì vậy trình phân giải DNS thông thường của bạn sẽ biết mọi tên miền bạn truy cập. --socks5-hostname gửi tên miền đó đến Tor và để exit phân giải nó. Cùng một tunnel, nhưng mức độ rò rỉ hoàn toàn khác nhau. Tor Browser và torsocks xử lý đúng việc này. Các công cụ cấu hình thủ công thường không làm được.
Tor chỉ truyền tải các TCP stream. Nó không thể truyền tải UDP, vì vậy ping 1.1.1.1 không bao giờ đi qua nó, và một giao thức VPN dựa trên UDP không thể chạy bên trong Tor. Bất kỳ chương trình nào bỏ qua thiết lập proxy sẽ chỉ sử dụng route thông thường với địa chỉ IP thông thường của bạn, và không có cảnh báo nào cho bạn cả. Đó là lý do tại sao việc triển khai Tor toàn hệ thống được thực hiện bằng transparent proxy trên một máy riêng thay vì dùng biến môi trường.
Nơi đặt niềm tin thực sự
VPN tập trung niềm tin vào một chỗ. Một công ty nắm giữ danh tính, hồ sơ thanh toán và toàn bộ mô hình lưu lượng truy cập của bạn. Sự bảo vệ của bạn phụ thuộc vào lời hứa không lưu log của họ. Khi lời hứa đó còn hiệu lực, thiết kế này rất gọn, nhanh và dễ hiểu. Khi nó thất bại, do lệnh triệu tập, bị breach hoặc do lừa dối, nó sẽ thất bại hoàn toàn và ảnh hưởng đến toàn bộ lưu lượng truy cập của bạn cùng lúc.
Tor phân tán niềm tin. Ba bên, những người hầu như không biết nhau, mỗi bên giữ một mảnh dữ liệu, và một mảnh đơn lẻ thì không có nhiều giá trị. Không ai cần phải trung thực để thiết kế này hoạt động. Chỉ cần đủ số lượng trong số họ độc lập với nhau là được. Bạn phải đánh đổi điều đó bằng tốc độ, chỉ hỗ trợ TCP và một mạng lưới nơi một số relay chắc chắn được vận hành bởi những kẻ muốn theo dõi bạn. Câu trả lời của Tor đối với một relay thù địch là một relay đơn lẻ không bao giờ là đủ.
Khi nào VPN là công cụ phù hợp
- Bạn không tin tưởng mạng nội bộ: khách sạn, sân bay, hội trường, hoặc router của chủ nhà. Người vận hành chỉ thấy một đường hầm mã hóa và không gì khác.
- Bạn muốn truy cập vào các máy chủ của riêng mình, hoặc kết nối từ một địa chỉ IP cố định mà bạn kiểm soát.
- Bạn cần tốc độ và giao thức UDP: cuộc gọi video, trò chơi, truyền tải dữ liệu lớn, sao lưu.
- Bạn muốn một địa chỉ ổn định mà các trang web không gây khó dễ. Các exit node của Tor thường bị chặn hoặc bắt giải CAPTCHA trên phần lớn web.
Danh sách trên là lý do để tự chạy VPN trên VPS thay vì mua gói đăng ký, và một server WireGuard do chính bạn thiết lập cung cấp cho bạn một đường hầm mà chính sách ghi log nằm trong file cấu hình do bạn sở hữu. Nếu bạn muốn đường hầm tương tự với tính năng quản lý khóa giữa các thiết bị, sự khác biệt giữa WireGuard thuần và Tailscale là nội dung bạn cần đọc. Khi đã ở trong tailnet, việc truy cập các dịch vụ của chính mình và việc công khai một trong số đó ra Internet là hai quyết định riêng biệt, và serve giữ cho dịch vụ ở chế độ riêng tư trong tailnet trong khi funnel lại công khai nó. Mỗi công cụ này đều thực hiện xuất sắc các công việc trong danh sách trên. Không công cụ nào trong số đó thực hiện được các công việc trong danh sách tiếp theo.
Khi nào Tor là công cụ phù hợp
- Đối thủ của bạn bao gồm trang web đích, hoặc bất kỳ ai có khả năng yêu cầu hồ sơ từ một công ty duy nhất.
- Bạn đang đọc hoặc xuất bản nội dung có thể gây hại cho bạn nếu nó bị truy vết ngược lại đường truyền của bạn.
- Bạn muốn sử dụng onion service: lưu lượng không bao giờ rời khỏi mạng, không liên quan đến exit relay, và địa chỉ máy chủ được ẩn danh.
- Bạn chấp nhận được tốc độ tải trang chậm, CAPTCHA và đôi khi gặp
403 Forbidden.
Nếu phía máy chủ của gạch đầu dòng thứ ba khiến bạn quan tâm, chạy một v3 onion service trên VPS sẽ hướng dẫn cách một trang web được truy cập mà không cần exit relay trên đường truyền, và những rò rỉ thông thường nào vẫn có thể liên kết máy chủ với địa chỉ công khai của nó.
Hãy sử dụng Tor Browser, đừng dùng trình duyệt hàng ngày của bạn trỏ vào cổng 9050. Trình duyệt chiếm một nửa khả năng bảo vệ, và phần sau phần tiếp theo sẽ giải thích lý do tại sao.
Tại sao VPS bạn thuê lại kém hơn VPN thương mại về tính ẩn danh
Đây là vấn đề mà nhiều người thường hiểu ngược lại. Một VPS bạn thuê là một hợp đồng có ghi tên bạn. Email đăng ký, thẻ thanh toán, hóa đơn và các ticket hỗ trợ đều nằm trong cơ sở dữ liệu của một công ty, gắn liền với địa chỉ IP đó. Không ai cần phải hack bất cứ thứ gì để liên kết địa chỉ đó với bạn. Thông tin đã được ghi lại, lưu trữ vì mục đích kế toán thông thường và sẵn sàng cung cấp cho bất kỳ ai có quyền yêu cầu nhà cung cấp với cơ sở pháp lý.
Vấn đề thứ hai là đám đông. Địa chỉ exit node của một VPN thương mại được chia sẻ bởi nhiều khách hàng cùng lúc, vì vậy bản thân địa chỉ đó không chỉ đích danh một cá nhân nào. Địa chỉ VPS của bạn là của riêng bạn. Mọi yêu cầu xuất phát từ đó đều là của bạn, hôm nay và cả tháng sau, và địa chỉ này không thay đổi. Do đó, một đích đến có thể xây dựng hồ sơ theo dõi bạn qua nhiều tháng mà không cần dùng đến cookie.
Điều này không có nghĩa là tự host VPN là một việc làm sai. Nó rất hiệu quả trong việc mã hóa lưu lượng của bạn trên một mạng mà bạn không kiểm soát, và giúp truy cập các dịch vụ của riêng bạn từ bất cứ đâu. Nó chỉ đơn giản không phải là một công cụ ẩn danh, và việc sử dụng nó với mục đích đó là một sai lầm. Để có cái nhìn rõ ràng về những gì nhà cung cấp có thể và không thể thấy trên chính máy chủ của bạn, hãy đọc độ an toàn thực sự của VPS hosting.
Những vấn đề mà cả Tor và VPN đều không giải quyết được
- Browser fingerprinting. User agent, kích thước màn hình, múi giờ, font chữ đã cài, ngôn ngữ và cách render canvas của bạn kết hợp lại thành một giá trị thường là duy nhất, và nó theo chân bạn qua mọi địa chỉ IP mà bạn sử dụng. Tor Browser chống lại điều này bằng cách làm cho người dùng trông giống hệt nhau và thay đổi kích thước cửa sổ theo các bước cố định. Trình duyệt thông thường của bạn khi chạy sau SOCKS proxy vẫn giữ nguyên fingerprint và cookie.
- Đăng nhập. Ngay thời điểm bạn đăng nhập vào một tài khoản biết tên bạn, lớp mạng không còn quan trọng nữa. Một lần đăng nhập từ nhà và một lần qua Tor vào cùng một tài khoản sẽ liên kết cả hai phiên làm việc lại với nhau.
- Bất cứ thứ gì mà điểm cuối ghi lại: những gì bạn đã gõ, những gì bạn đã mua, những gì bạn đã tìm kiếm.
- Tương quan đầu cuối (End-to-end correlation). Một kẻ theo dõi đường truyền của bạn và điểm exit cùng lúc có thể khớp thời gian và lưu lượng gói tin để nối hai đầu lại với nhau. Tor tuyên bố rõ ràng rằng họ không bảo vệ chống lại đối thủ có khả năng quan sát cả hai phía.
Bạn có thể dùng Tor và VPN cùng lúc không?
Tor over VPN nghĩa là VPN kết nối trước và Tor chạy bên trong đó. ISP của bạn khi đó chỉ thấy kết nối VPN, và guard relay thấy địa chỉ của VPN thay vì địa chỉ thực của bạn. Bạn cũng đã đặt một công ty nắm giữ tên và thẻ tín dụng của bạn vào trước một hệ thống được thiết kế để tránh chính xác điều đó. Việc này chỉ đáng làm trong một tình huống: khi việc sử dụng Tor trên đường truyền của bạn là nguy hiểm và bạn không có lựa chọn nào tốt hơn.
VPN over Tor, nơi lưu lượng rời khỏi mạng Tor rồi mới đi vào tài khoản VPN, khó thiết lập hơn và thường tệ hơn. Tài khoản đó có đính kèm hồ sơ thanh toán của bạn, vì vậy bạn đã gắn một danh tính cố định vào lưu lượng vốn đã ẩn danh ngay trước đó.
Nếu mục tiêu chỉ là ẩn việc sử dụng Tor khỏi ISP, câu trả lời được hỗ trợ là dùng bridge: một điểm truy cập không nằm trong danh sách công khai, kết hợp với pluggable transport như obfs4 hoặc Snowflake để làm cho lưu lượng khó bị phân loại. Tor Browser đã tích hợp sẵn cả hai, và không có công ty thứ ba nào cần biết tên của bạn.
FAQ
Tor có phải chỉ là một VPN miễn phí không?
Không. VPN gửi lưu lượng của bạn qua một máy chủ do một công ty vận hành; công ty này thấy địa chỉ thật và mọi đích đến của bạn, vì vậy nó chỉ thay thế ISP bằng một nhà cung cấp mà bạn chọn. Tor gửi lưu lượng qua ba relay do những người khác nhau vận hành, trong đó guard relay thấy bạn nhưng không thấy trang web, còn exit relay thấy trang web nhưng không thấy bạn. Tor cũng chỉ hỗ trợ TCP, chậm hơn đáng kể và bị nhiều trang web chặn hoặc yêu cầu xác thực, vì vậy nó không phải là giải pháp thay thế hoàn hảo cho các nhu cầu sử dụng VPN hàng ngày.
ISP có biết tôi đang dùng Tor không?
Mặc định là có. Địa chỉ của các relay được công bố trong danh sách công khai, nên nhà cung cấp của bạn có thể thấy bạn đang kết nối tới một guard relay đã biết. Họ không thể thấy bạn truy cập trang web nào. Để ẩn việc sử dụng Tor, Tor Browser cung cấp các bridge với pluggable transport như obfs4 hoặc Snowflake, cho phép kết nối qua một điểm truy cập không nằm trong danh sách công khai. Một VPN đặt trước Tor cũng giúp ẩn việc này khỏi ISP, nhưng đồng thời chuyển thông tin đó cho nhà vận hành VPN.
Chạy VPN trên VPS cá nhân có giúp tôi ẩn danh không?
Không. Máy chủ được thuê dưới tên bạn bằng thẻ của bạn, vì vậy hồ sơ thanh toán của nhà cung cấp đã liên kết địa chỉ đó với bạn, và chỉ cần một yêu cầu từ cơ quan chức năng là họ sẽ cung cấp thông tin này. Địa chỉ đó cũng chỉ mình bạn sử dụng, nên mọi lưu lượng từ đó đều thuộc về một người và có thể bị truy vết chừng nào bạn còn giữ máy chủ. VPN tự host là công cụ bảo mật mạnh mẽ trước mạng nội bộ, nhưng là công cụ ẩn danh yếu trước bất kỳ ai có quyền yêu cầu dữ liệu từ nhà cung cấp của bạn.
Tại sao các trang web chặn tôi hoặc bắt giải CAPTCHA khi tôi dùng Tor?
Vì địa chỉ của các exit relay là công khai và được rất nhiều người dùng chung, nên hành vi lạm dụng từ bất kỳ người dùng nào cũng sẽ ảnh hưởng đến địa chỉ mà bạn đang mượn. Các mạng phân phối nội dung (CDN) đánh giá thấp những địa chỉ này và phản hồi bằng một thử thách, một 403 Forbidden, hoặc một biểu mẫu đăng ký từ chối gửi. Không có cách nào từ phía bạn để loại bỏ điều này. Một circuit mới sẽ cung cấp cho bạn một exit relay khác, đôi khi có uy tín tốt hơn.
Nếu tôi dùng VPN, tôi có còn bị lộ truy vấn DNS không?
Có thể, và đây là lỗi phổ biến. Với một full tunnel mà không thiết lập trình phân giải (resolver) cho giao diện tunnel, client của bạn vẫn giữ trình phân giải nhận được từ mạng nội bộ, và đường dẫn đến trình phân giải đó là on-link, nên nó sẽ ưu tiên hơn so với default route của tunnel. Các truy vấn của bạn sau đó sẽ được gửi dưới dạng văn bản thuần (cleartext) trong khi mọi thứ khác đều được mã hóa. Hãy chạy resolvectl status và xác nhận rằng máy chủ DNS được liệt kê cho kết nối mang default route của bạn chính là trình phân giải của tunnel, chứ không phải router nội bộ của bạn.