SSD Nodes Learn 🎉 VPS từ $5.50/tháng
Hướng dẫn Matt ConnorBởi Matt Connor

Tor hay VPN: Bạn cần cái nào?

Tor và VPN giải quyết hai nhu cầu khác nhau. Xem từng hop biết gì, ai thấy đích đến, và vì sao VPS thuê bằng tên bạn không giúp ẩn danh.

Tor và VPN: thực tế bạn cần cái nào

Tor và VPN đều chuyển lưu lượng của bạn qua những máy không thuộc quyền quản lý của bạn, nhưng chúng giải quyết các nhu cầu khác nhau. VPN (virtual private network) chuyển mức độ tin cậy từ nhà cung cấp Internet của bạn sang một công ty. Công ty đó sẽ thấy địa chỉ thực của bạn và mọi đích đến mà bạn truy cập. Tor phân tán mức độ tin cậy đó qua 3 relay do những người khác nhau vận hành. Vì vậy, không relay nào biết đồng thời bạn là ai và bạn đang truy cập đâu. Hãy chọn công cụ dựa trên việc xác định bên mà bạn muốn che giấu hoạt động của mình.

Nếu bên đó là mạng mà bạn đang kết nối, VPN là công cụ phù hợp. Nếu bên đó là chính website, hoặc bất kỳ ai có thể yêu cầu một công ty cung cấp các bản ghi, Tor là công cụ phù hợp. Phần còn lại của hướng dẫn này giải thích chi tiết cho hai câu trên.

Theo dõi một request qua cả hai thiết kế

Xét một request thông thường: trình duyệt của bạn mở https://news.example.com. TLS (bảo mật tầng truyền tải) bảo vệ nội dung trang theo cả hai cách, nên không ai ở giữa đọc được bài viết. Phần đáng chú ý là metadata: ai biết địa chỉ IP của bạn, ai biết đích đến, và ai có thể liên kết hai thông tin đó với nhau. Công cụ bảo vệ quyền riêng tư dùng để tách hai thông tin này ra. VPN chuyển quyền nắm giữ cặp thông tin đó sang một bên khác. Tor tách 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 rồi gửi chúng đến một endpoint. Từ endpoint đó trở đi, chúng lại là traffic thông thường.

  • ISP (nhà cung cấp dịch vụ Internet) của bạn thấy các packet đã mã hóa giữa đường truyền của bạn và một địa chỉ VPN server. ISP thấy lưu lượng và thời điểm truyền. ISP 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 thấy IP thực của bạn ở một phía và mọi địa chỉ đích ở phía còn lại, cùng thời điểm và kích thước. Cả hai nửa của cặp kết nối đều đi qua cùng một máy.
  • Máy chủ đích thấy địa chỉ thoát của VPN, cùng mọi chi tiết nhận diện mà trình duyệt của bạn gửi.

Vì vậy, VPN không tạo ra tính ẩn danh. Nó chuyển điểm quan sát từ ISP của bạn sang nhà cung cấp VPN. Đây là lợi ích thực tế khi mạng cục bộ là vấn đề, hoặc khi ISP lọc hay bán lại dữ liệu họ nhìn thấy. Nhưng VPN không giúp gì trước website bạn truy cập, vì traffic của bạn vẫn đến từ một luồng duy nhất của một công ty biết chính xác bạn là ai và lưu thông tin thanh toán của bạn.

Tuyên bố “không lưu log” chính là toàn bộ sản phẩm, và đây 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 nhận tunnel đang hoạt động. Bạn có thể xác nhận DNS không bị rò rỉ. Bạn không thể xác nhận nhà vận hành ghi gì vào disk. Đó là đánh đổi bạn chấp nhận: một công ty do bạn chọn nắm toàn bộ bức tranh.

Hãy kiểm tra lỗi rò rỉ âm thầm vô hiệu hóa tunnel:

resolvectl status
curl -s https://ifconfig.me; echo

Địa chỉ được in bởi ifconfig.me phải là địa chỉ thoát của VPN. Các DNS server được liệt kê cho link đang mang default route phải là resolver của tunnel. Nếu chúng vẫn liệt kê router cục bộ tại 192.168.1.1, các truy vấn phân giải tên của bạn đang đi ra qua link cục bộ ở dạng cleartext, vì route đến router đó là on-link và cụ thể hơn default route của tunnel. Traffic của bạn là riêng tư, nhưng danh sách website bạn truy cập thì không. Các truy vấn DNS thoát khỏi tunnel WireGuard trình bày cách khắc phục.

Những gì mỗi bên nhìn thấy khi bạn dùng Tor

Tor tạo một circuit gồm 3 relay được chọn từ danh sách đã ký, gọi là consensus, do một nhóm nhỏ directory authority công bố. Client của bạn bọc dữ liệu trong nhiều lớp, mỗi relay một lớp. Mỗi relay gỡ một lớp, chỉ biết hop tiếp theo rồi chuyển phần còn lại đi. Các lớp này khiến không bên nào trên đường truyền đồng thời biết cả hai thông tin đó.

  • ISP của bạn thấy traffic đã mã hóa đến một guard relay. Địa chỉ của relay là công khai, nên ISP có thể biết bạn đang dùng Tor. ISP không thể biết bạn truy cập đâu.
  • Guard relay thấy địa chỉ IP thật của bạn. Nó không thấy đích đến, vì phần thông điệp chứa tên site vẫn được mã hóa cho các relay phía sau.
  • Middle relay thấy một guard ở một phía và một exit ở phía còn lại. 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ờ trao đổi trực tiếp.
  • Exit relay thấy đích đến và traffic khi traffic rời khỏi network. Nó thấy địa chỉ của middle relay, không thấy địa chỉ của bạn. Với HTTPS, nó biết hostname và metadata của connection, không biết nội dung trang.
  • Đích đến thấy địa chỉ của exit relay. Địa chỉ này xuất hiện trong các danh sách exit công khai, cùng với mọi thông tin mà browser của bạn gửi đi.

Để liên kết bạn với site, phải đồng thời kiểm soát guard và exit. Đó là thiết kế này trong một câu. Đây cũng là lý do client giữ cùng một guard trong nhiều tháng thay vì chọn guard mới mỗi lần khởi động: việc liên tục thay đổi entry sẽ cho relay độc hại nhiều cơ hội trở thành guard của bạn.

Circuit không tồn tại vĩnh viễn. Connection mới chuyển sang circuit mới khoảng 10 phút một lần, còn stream đã mở thì tiếp tục dùng circuit mà nó bắt đầu trên đó. Một lượt download dài và một tab bạn mở 15 phút sau thường sẽ đi ra từ các exit khác nhau.

Cách tạo 3 hop mà không relay nào biết các relay khác

Client không gửi danh sách relay cho guard. Trước tiên, client thương lượng key với guard, rồi gửi một request thông qua guard để yêu cầu guard mở rộng circuit đến middle relay. Sau đó, client gửi tiếp một request qua hop đó để mở rộng circuit đến exit. Mỗi relay chỉ được cho biết neighbour tiếp theo mà nó phải kết nối, và mỗi hop có một key riêng mà các hop khác không bao giờ thấy. Vì vậy, middle relay không thể suy ra vai trò của exit chỉ bằng cách kiểm tra traffic, còn một relay ghi log mọi thứ nó xử lý vẫn chỉ ghi được một mảnh.

Cài đặt và kiểm tra đường đi:

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/ip

Log phải đến Bootstrapped 100% (done): Done. curl phải in ra {"IsTor":true,"IP":"..."} cùng một địa chỉ mà bạn không nhận ra; đó là exit hiện tại của bạn. Nếu IsTorfalse, request chưa từng đi qua proxy. Gói Tor trong Ubuntu có thể chậm hơn bản release hiện tại; Tor Project có apt repository riêng nếu bạn cần bám theo upstream.

Trong command đó có một điểm dễ mắc lỗi. --socks5 khiến curl tự resolve hostname rồi gửi địa chỉ kết quả qua proxy, nên resolver thông thường của bạn biết mọi tên mà bạn truy cập. --socks5-hostname gửi tên đó cho Tor và để exit resolve tên. Cùng một tunnel nhưng leak hoàn toàn khác nhau. Tor Browser và torsocks xử lý đúng trường hợp này. Các tool được cấu hình thủ công thường không.

Tor chỉ truyền TCP stream. Nó không thể truyền UDP, nên ping 1.1.1.1 không bao giờ đi qua Tor, 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 cấu hình proxy sẽ dùng route thông thường với địa chỉ thông thường của bạn, mà không có cảnh báo nào. Vì vậy, Tor ở cấp hệ thống thường được triển khai bằng transparent proxy trên một máy riêng thay vì dùng biến môi trường.

Nơi niềm tin thực sự được đặt

VPN tập trung niềm tin. Một công ty nắm danh tính, thông tin thanh toán và toàn bộ mẫu lưu lượng của bạn. Sự bảo vệ của bạn phụ thuộc vào cam kết không lưu log của công ty đó. Khi cam kết này được giữ, thiết kế sẽ gọn, nhanh và dễ phân tích. Khi cam kết thất bại do subpoena, một vụ breach hoặc lời nói dối, toàn bộ thiết kế thất bại hoàn toàn và ảnh hưởng đến toàn bộ lưu lượng của bạn cùng lúc.

Tor phân tán niềm tin. Ba bên hầu như không biết nhau, mỗi bên chỉ nắm một phần thông tin. Một phần riêng lẻ có rất ít giá trị. Không bên nào cần trung thực tuyệt đối để thiết kế hoạt động. Điều cần thiết là đủ độc lập giữa các bên. Đổi lại, bạn phải chấp nhận tốc độ thấp hơn, chỉ dùng TCP và một network trong đó chắc chắn có một số relay do những người muốn monitor bạn vận hành. Cách Tor xử lý relay độc hại là không bao giờ để một relay duy nhất là đủ.

Khi nào VPN là công cụ phù hợp

  • Bạn không tin tưởng mạng cục bộ: Wi-Fi khách sạn, sân bay, hội trường hội nghị hoặc router của chủ nhà. Nhà vận hành chỉ thấy một tunnel được mã hóa và không thấy gì khác.
  • Bạn muốn truy cập các máy của mình hoặc kết nối Internet từ một địa chỉ cố định do bạn kiểm soát.
  • Bạn cần tốc độ và UDP: cuộc gọi video, game, truyền file lớn hoặc backup.
  • Bạn muốn một địa chỉ ổn định để các website không yêu cầu xác minh. Tor exit bị chặn hoặc bị yêu cầu CAPTCHA trên phần lớn web.

Danh sách này giải thích vì sao nên tự chạy VPN trên VPS thay vì mua gói thuê bao, còn WireGuard server do bạn tự thiết lập cung cấp một tunnel có chính sách ghi log nằm trong file cấu hình do bạn kiểm soát. Nếu muốn dùng cùng tunnel đó nhưng bổ sung quản lý key giữa các thiết bị, hãy đọc phần so sánh khác biệt giữa WireGuard thuần và Tailscale. Mỗi công cụ trong số này đều phù hợp với các nhu cầu nêu trên. Không công cụ nào giải quyết được nhu cầu trong phần tiếp theo.

Khi Tor là công cụ phù hợp

  • Đối tượng có thể tấn công bạn bao gồm cả website đích hoặc bất kỳ bên nào có thể yêu cầu một công ty cung cấp log.
  • Bạn đang đọc hoặc đăng nội dung có thể gây hại cho bạn nếu bị truy ngược về đường truyền của mình.
  • Bạn muốn dùng onion service: lưu lượng không bao giờ rời khỏi network, không có exit relay tham gia và địa chỉ của server được ẩn.
  • Bạn chấp nhận trang tải chậm, CAPTCHA và thỉnh thoảng gặp 403 Forbidden.

Hãy dùng Tor Browser, không dùng browser hằng ngày rồi trỏ tới port 9050. Browser là một nửa của cơ chế bảo vệ. Phần sau phần tiếp theo sẽ giải thích lý do.

Vì sao VPS bạn thuê kém hơn VPN thương mại về khả năng ẩn danh

Đây là điểm nhiều người thường hiểu ngược. VPS bạn thuê là một hợp đồng thuê đứng tên bạn. Email đăng ký, thẻ thanh toán, hóa đơn và ticket hỗ trợ đều nằm trong cơ sở dữ liệu của một công ty, cùng với địa chỉ IP đó. Không cần phải xâm nhập hệ thống nào để liên kết địa chỉ này với bạn. Thông tin đó đã được ghi lại, được lưu giữ vì lý do kế toán thông thường và có thể được cung cấp cho bất kỳ ai gửi yêu cầu hợp pháp đến nhà cung cấp.

Vấn đề thứ hai là số lượng người dùng. Địa chỉ thoát của VPN thương mại được nhiều khách hàng dùng chung tại cùng một thời điểm, nên chỉ riêng địa chỉ đó không xác định được một người. Địa chỉ VPS là của riêng bạn. Mọi request đi ra từ đó đều là của bạn, hôm nay cũng như tháng sau. Địa chỉ này không thay đổi, nên một đích đến có thể lập profile hoạt động của bạn trong nhiều tháng mà không cần cookie nào.

Điều đó không có nghĩa VPN tự host là vô ích. Nó mã hóa rất tốt traffic của bạn trên một network mà bạn không kiểm soát và cho phép bạn truy cập các service của mình từ bất kỳ đâu. Nhưng nó không phải là công cụ ẩn danh, và dùng nó như vậy mới là sai lầm. Để xem giải thích đơn giản về những gì nhà cung cấp có thể và không thể nhìn thấy ngay trên máy, hãy đọc mức độ an toàn thực sự của VPS hosting.

Điều mà cả Tor lẫn VPN đều không khắc phục được

  • Fingerprinting của trình duyệt. User agent, kích thước màn hình, múi giờ, các font đã cài đặt, ngôn ngữ và cách canvas được render kết hợp thành một giá trị thường là duy nhất. Giá trị này theo dõi bạn qua mọi địa chỉ IP bạn sử dụng. Tor Browser chống việc này bằng cách khiến người dùng trông giống hệt nhau và thay đổi kích thước cửa sổ theo các mức cố định. Trình duyệt thông thường của bạn khi đi qua SOCKS proxy vẫn giữ fingerprint và cookie.
  • Đăng nhập. Ngay khi bạn đăng nhập vào một tài khoản biết tên của bạn, lớp mạng không còn quan trọng. Một lần đăng nhập từ nhà và một lần đăng nhập qua Tor vào cùng tài khoản sẽ liên kết hai phiên này với nhau.
  • Mọi dữ liệu mà endpoint vẫn ghi nhận: nội dung bạn đã nhập, thứ bạn đã mua và nội dung bạn đã tìm kiếm.
  • Correlation từ đầu đến cuối. Kẻ nào đồng thời theo dõi đường truyền của bạn và exit node có thể đối chiếu thời điểm, dung lượng packet để khớp hai đầu. Tor nói rõ rằng Tor không bảo vệ trước đối tượng có thể quan sát cả hai phía.

Bạn có thể dùng Tor và VPN cùng nhau không?

Tor over VPN nghĩa là VPN kết nối trước, rồi Tor chạy bên trong VPN. ISP của bạn khi đó chỉ thấy VPN, còn guard relay thấy địa chỉ của VPN thay vì địa chỉ của bạn. Bạn cũng đã đặt một công ty lưu tên và thông tin thẻ của mình ở trước một hệ thống được thiết kế để tránh chính việc đó. Cách này chỉ đáng dùng trong một trường hợp: khi việc 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 tốt hơn.

VPN over Tor, trong đó traffic rời mạng Tor rồi đi vào một tài khoản VPN, khó thiết lập hơn và thường kém hơn. Tài khoản đó gắn với lịch sử thanh toán của bạn, nên bạn đã gắn một danh tính ổn định vào traffic vừa mới ẩn danh trước đó.

Nếu mục tiêu chỉ là ẩn việc sử dụng Tor khỏi ISP, lựa chọn được hỗ trợ là bridge: một điểm vào không có trong public consensus, kết hợp với pluggable transport như obfs4 hoặc Snowflake để khiến traffic khó bị phân loại. Tor Browser tích hợp cả hai, và không cần một công ty thứ ba nào 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 chuyển traffic của bạn qua một server do một công ty vận hành. Công ty đó thấy địa chỉ thật và mọi đích đến của bạn. Vì vậy, VPN thay ISP bằng nhà cung cấp mà bạn chọn. Tor chuyển traffic qua 3 relay do những người khác nhau vận hành. Guard thấy bạn nhưng không thấy website. Exit thấy website 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 website chặn hoặc yêu cầu kiểm tra bổ sung. Vì vậy, Tor không thể thay thế trực tiếp VPN cho các mục đích sử dụng hằng ngày.

ISP có biết tôi đang dùng Tor không?

Theo mặc định là có. Địa chỉ của các relay được công bố trong public consensus. Vì vậy, ISP có thể thấy bạn đang kết nối đến một guard relay đã biết. ISP không thể thấy bạn truy cập website nào. Để ẩn việc sử dụng Tor, Tor Browser cung cấp bridge với pluggable transport như obfs4 hoặc Snowflake. Các bridge này kết nối qua một entry point không có trong danh sách công khai. Dùng VPN trước Tor cũng ẩn Tor khỏi ISP, nhưng VPN operator sẽ biết việc đó thay cho ISP.

Chạy VPN trên VPS của chính tôi có giúp tôi ẩn danh không?

Không. Bạn thuê server bằng tên và thẻ của mình. Vì vậy, hồ sơ thanh toán của nhà cung cấp đã liên kết địa chỉ đó với bạn. Nhà cung cấp chỉ cần nhận được một yêu cầu hợp lệ là có thể cung cấp các hồ sơ này. Địa chỉ đó cũng chỉ do bạn sử dụng. Vì vậy, mọi thứ rời khỏi địa chỉ này đều thuộc về một người và vẫn có thể liên kết với bạn trong suốt thời gian bạn duy trì server. VPN tự host là công cụ bảo mật mạnh trước mạng cục bộ, nhưng là công cụ ẩn danh yếu trước bất kỳ bên nào có thể yêu cầu nhà cung cấp cung cấp thông tin.

Vì sao website chặn tôi hoặc hiển thị CAPTCHA khi tôi dùng Tor?

Vì địa chỉ của exit relay được công khai và được rất nhiều người dùng chung. Do đó, abuse từ bất kỳ người dùng nào cũng gắn với địa chỉ mà bạn đang mượn. Content delivery network đánh giá các địa chỉ này có độ tin cậy thấp và trả về một challenge, một 403 Forbidden hoặc một form đăng ký không cho gửi. Không có thiết lập nào ở phía bạn loại bỏ được vấn đề này. Circuit mới sẽ cung cấp một exit khác. Đôi khi exit đó có reputation tốt hơn.

Nếu dùng VPN, tôi vẫn có thể làm lộ các truy vấn DNS không?

Có, và việc này khá phổ biến. Với full tunnel nhưng không đặt resolver cho tunnel interface, client tiếp tục dùng resolver nhận được từ mạng cục bộ. Route đến resolver đó nằm trên link cục bộ nên được ưu tiên hơn default route của tunnel. Khi đó, các truy vấn DNS rời khỏi máy dưới dạng plaintext trong khi mọi traffic khác được mã hóa. Chạy resolvectl status và xác nhận DNS server được liệt kê cho link đang mang default route là resolver của tunnel, không phải router cục bộ.