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

Lịch sử Tor: từ onion routing đến hôm nay

Tor bắt đầu từ nghiên cứu onion routing tại phòng thí nghiệm Hải quân Hoa Kỳ năm 1995. Xem các mốc theo ngày và câu trả lời rõ ràng về bên tài trợ mạng.

Lược sử Tor

Lịch sử Tor bắt đầu vào năm 1995 tại U.S. Naval Research Laboratory, một phòng thí nghiệm nghiên cứu của Hải quân Hoa Kỳ. David Goldschlag, Michael G. Reed và Paul Syverson đã xây dựng các nguyên mẫu onion routing đầu tiên tại đây. Dòng thời gian của Tor Project cho biết câu hỏi họ đặt ra là liệu “có cách nào tạo ra các kết nối Internet mà không tiết lộ ai đang liên lạc với ai” hay không. Mạng lưới được sử dụng ngày nay được triển khai vào tháng 10 năm 2002, với mã nguồn được phát hành theo giấy phép phần mềm tự do và open source. Tor Project, Inc. được thành lập dưới dạng tổ chức phi lợi nhuận vào năm 2006.

Mọi ngày tháng dưới đây đều lấy từ dòng thời gian do Tor Project công bố, release notes hoặc các trang hỗ trợ của chính dự án. Khi có thông tin còn gây tranh luận, chẳng hạn như bên nào tài trợ cho dự án, phần đó sẽ nêu rõ bằng chứng hiện có và nơi bạn có thể tự kiểm tra.

Định tuyến onion thực sự làm gì

Định tuyến onion tách hai thông tin mà Internet thường giữ cùng nhau: bạn là ai và bạn yêu cầu gì. Tor client chọn ba relay rồi thiết lập một circuit đi qua chúng. Nó bọc traffic của bạn trong ba lớp mã hóa, mỗi relay một lớp. Mỗi relay bóc một lớp, chỉ biết địa chỉ của hop tiếp theo rồi chuyển packet đi. Cách phân lớp này là nguồn gốc của tên gọi.

Relay đầu tiên, gọi là guard, thấy địa chỉ IP của bạn nhưng không thấy đích đến. Relay cuối cùng, gọi là exit, thấy đích đến nhưng không thấy địa chỉ IP của bạn. Relay ở giữa không thấy thông tin nào trong hai thông tin đó. Không relay nào nắm được cả hai phía, và đó là toàn bộ lập luận bảo mật. Đây cũng là lý do các relay phải do những người không liên quan vận hành. Nếu một tổ chức vận hành cả guard và exit của bạn, sự tách biệt biến mất và việc mã hóa không còn giúp được gì.

Điểm yếu đã biết là traffic correlation. Một bên quan sát có thể theo dõi đồng thời cả hai đầu của circuit sẽ đối chiếu thời điểm và kích thước của các packet đi vào với các packet đi ra. Tor không bảo vệ trước attacker có khả năng theo dõi toàn bộ Internet cùng lúc. Bài báo thiết kế năm 2004 của Roger Dingledine, Nick Mathewson và Paul Syverson, "Tor: The Second-Generation Onion Router", đã nêu rõ điều này trong threat model.

Vì sao một mạng riêng sẽ không có tác dụng

Đây là phần thường bị các bản tóm tắt ngắn lược bỏ, nhưng nó giải thích mọi nội dung còn lại trên trang này.

Một tổ chức quân sự hoặc tình báo không thể có được tính ẩn danh từ một mạng chỉ truyền lưu lượng của chính tổ chức đó. Tính ẩn danh là thuộc tính của một đám đông, không phải thuộc tính của một cipher. Nếu mọi connection rời khỏi mạng đều thuộc về một văn phòng, thì observer nhìn thấy một connection rời đi đã biết ngay câu trả lời. Encryption vẫn hoạt động hoàn toàn bình thường. Tính ẩn danh không tồn tại vì không có ai khác để bị nhầm lẫn với.

Vì vậy, thiết kế phải là public và traffic phải được trộn với traffic của người khác. Code được phát hành theo một free software licence vào tháng 10 năm 2002, và bất kỳ ai cũng có thể chạy một relay. Journalists, activists, researchers và những người bình thường muốn tránh advertising network đều trở thành đám đông bảo vệ tất cả những người khác bên trong mạng. Dingledine và Mathewson trình bày lập luận này vào năm 2006 trong một paper có tên "Anonymity Loves Company: Usability and the Network Effect", được trình bày tại Workshop on the Economics of Information Security. Kết luận là quy mô và mức độ đa dạng của user base là một thuộc tính bảo mật của hệ thống. Đây không phải là một con số marketing.

Từ mã alpha đến tổ chức phi lợi nhuận

Dòng thời gian của Tor Project và các bài viết được công bố ghi lại những bước sau:

  • October 2002: mạng Tor được triển khai với mã nguồn “theo giấy phép phần mềm tự do và nguồn mở”.
  • Cuối năm 2003: mạng chạy trên “khoảng một chục node tình nguyện, chủ yếu ở Mỹ, cùng với một node ở Đức”.
  • 2004: Dingledine, Mathewson và Syverson công bố bài viết thiết kế “Tor: Bộ định tuyến onion thế hệ thứ hai”.
  • 2004: Electronic Frontier Foundation (EFF) bắt đầu tài trợ cho công việc phát triển Tor.
  • 2006: The Tor Project, Inc. được thành lập dưới dạng tổ chức phi lợi nhuận 501(c)(3) để duy trì hoạt động phát triển.
  • 2007: bắt đầu phát triển bridge vì các firewall cấp quốc gia đã bắt đầu chặn danh sách relay công khai.
  • 2008: bắt đầu phát triển Tor Browser.

Hai mốc thời gian sau đó có ý nghĩa đối với cách mạng được sử dụng hiện nay. Dòng thời gian của Tor Project ghi nhận việc sử dụng Tor trong Mùa xuân Arab vào cuối năm 2010 để bảo vệ danh tính và truy cập các website bị chặn. Dòng thời gian này cũng ghi nhận các tài liệu Snowden năm 2013 là thời điểm vai trò của Tor được hiểu rộng rãi, đồng thời cho biết các tài liệu đó cho thấy Tor chưa bị phá vỡ vào thời điểm ấy. Không sự kiện nào làm thay đổi protocol. Cả hai sự kiện đều làm thay đổi nhóm người cài đặt Tor.

Ai chi trả cho Tor và cách kiểm tra điều đó

Tor Project trả lời câu hỏi này trên các trang hỗ trợ của mình: "Tor Project được tài trợ từ nhiều nguồn, gồm các khoản tài trợ của chính phủ, các quỹ tư nhân và các nhà tài trợ cá nhân." Tiền chính phủ là một phần trong số đó, và đã như vậy ngay từ đầu. Trang các tổ chức và cá nhân hỗ trợ nêu tên Bộ Ngoại giao Hoa Kỳ cùng Ford Foundation, Open Technology Fund, Craig Newmark Philanthropies và các công ty như Brave, DuckDuckGo, Mullvad VPN và Fastly. Báo cáo tài chính đã kiểm toán được công bố dưới dạng bài đăng trên blog, gần đây nhất là báo cáo cho năm tài chính 2023 đến 2024, công bố vào tháng 12 năm 2025. Quan điểm được dự án nêu rõ là "trao đổi cởi mở về các nhà tài trợ và mô hình tài trợ là cách tốt nhất để duy trì niềm tin với cộng đồng".

Câu hỏi hữu ích không phải là ai đã trả tiền. Câu hỏi là tiền có thể mua được gì. Tor không phải là một service để bạn đăng nhập. Tor là một đặc tả protocol, một client có source code để bạn đọc và một network relay do những người không quen biết vận hành. Nếu ai đó muốn cài backdoor, họ phải đưa nó vào một trong ba vị trí, và bạn có thể kiểm tra từng vị trí.

  • Trong source code. Client là open source và protocol được đặc tả công khai. Các nhà nghiên cứu học thuật thường xuyên công bố các cuộc tấn công vào Tor, và họ có đầy đủ động lực nghề nghiệp để tìm ra lỗ hổng trước tiên.
  • Trong binary. Các bản build của Tor Browser đã deterministic từ tháng 8 năm 2013, nên một builder độc lập có thể build lại một release rồi so sánh từng byte với bản download được công bố. Nếu binary không khớp với source code, bạn có thể phát hiện điều đó mà không cần tin người đã phát hành nó.
  • Trong các relay. Tor Project không vận hành network. "Tor network dựa vào các tình nguyện viên để đóng góp bandwidth", còn guard, middle relay, exit và bridge thuộc về hàng nghìn operator không liên quan với nhau. Việc xâm nhập một bên tài trợ không làm xâm nhập được các relay đó.

Phát biểu của chính dự án rất ngắn gọn: "Tor không có backdoor. Software là open source, code có thể được audit độc lập và mọi release đều được ký để bảo vệ khỏi việc bị can thiệp." Câu này chỉ có giá trị vì mỗi mệnh đề đều nêu ra một thứ bạn có thể tự kiểm tra.

Có một điểm cần lưu ý, và nó liên quan đến thứ tự ưu tiên chứ không phải tính toàn vẹn. Tiền tài trợ quyết định công việc nào được thực hiện trước, nên việc vượt kiểm duyệt được tài trợ ổn định hơn, chẳng hạn, hiệu năng network. Đây là một phê bình hợp lý đối với dự án. Nó khác với nhận định "code đã bị xâm phạm", và cách trả lời là đọc các báo cáo tài chính thay vì tin vào lời đảm bảo của bất kỳ ai.

Dịch vụ ẩn trở thành onion service

Onion service là một máy chủ không bao giờ tiết lộ địa chỉ IP của nó. Client và server mỗi bên tự tạo một circuit đến một điểm gặp bên trong network, nên không bên nào biết địa chỉ của bên kia. Địa chỉ này không phải là một tên do registry cấp cho một cá nhân hay tổ chức. Nó được tạo từ public key của server, vì vậy địa chỉ .onion trông giống một chuỗi ký tự ngẫu nhiên.

Timeline của onion service ghi lại các bản phát hành:

  • 8 April 2004: hidden service được triển khai lần đầu trong Tor 0.0.6pre1.
  • 21 September 2007: hidden service version 2 được phát hành trong Tor 0.2.0.7-alpha.
  • 19 December 2016: quá trình phát triển version 3 bắt đầu trong Tor 0.3.0.1-alpha.
  • 9 January 2018: version 3 được phát hành trong Tor 0.3.2.9.

Việc đổi tên từ "hidden service" thành "onion service" diễn ra dần dần, không phải vào một ngày cụ thể, và tài liệu của Tor Project vẫn dùng cả hai thuật ngữ. Tên cũ mô tả không đúng đối tượng. Nhiều onion site là public, được index và quảng bá; thứ bị ẩn là vị trí của server, không phải site. Tên cũ vẫn còn trong file cấu hình, giống như một dấu tích lịch sử hữu ích. Đây vẫn là cách khai báo một service trong torrc:

HiddenServiceDir /var/lib/tor/my_service/
HiddenServicePort 80 127.0.0.1:8080

Thư mục này chứa các key của service và file hostname chứa địa chỉ. Dòng port ánh xạ một port trên onion address đến một địa chỉ local trên cùng máy, nên web server có thể tiếp tục bind vào 127.0.0.1 và hoàn toàn không listen trên interface public. Version 3 là mặc định, vì vậy service được tạo bằng hai dòng này hôm nay sẽ có địa chỉ v3.

Onion address cũng không phải là domain name. RFC 7686, được công bố vào October 2015, dành riêng .onion làm domain name special-use để các resolver thông thường không tiếp tục làm lộ những truy vấn này lên public DNS (domain name system). Quy tắc mà RFC này đặt ra rất rõ ràng: "Authoritative server MUST respond to queries for .onion with NXDOMAIN." Đặt điều đó cạnh cách một domain name thông thường được phân giải thì sẽ thấy ngay điểm khác biệt. DNS name được registry cấp cho bạn và được tra cứu thông qua các server mà bạn không kiểm soát. Onion address là một public key, nên nó tự xác thực và không cần tra cứu.

Vì sao địa chỉ .onion cũ ngừng hoạt động

Hai định dạng địa chỉ này không tương thích với nhau, và định dạng cũ đã bị tắt vĩnh viễn.

ChartOnion service addresses, v2 against v3
The data behind this chart
[
  {
    "version": "v2 (retired 2021)",
    "address_length_chars": 16,
    "service_key": "RSA-1024",
    "address_hash": "SHA-1, truncated to 80 bits"
  },
  {
    "version": "v3 (current)",
    "address_length_chars": 56,
    "service_key": "Ed25519",
    "address_hash": "SHA3-256"
  }
]

Địa chỉ v2 dài 16 ký tự vì nó chỉ chứa 80 bit đầu tiên của hash SHA-1 từ public key RSA-1024. Địa chỉ v3 dài 56 ký tự vì nó chứa đầy đủ public key Ed25519, cùng với checksum và một byte phiên bản. Địa chỉ v3 dài hơn vì không còn cắt ngắn giá trị nữa. Vì vậy, bản thân địa chỉ hiện là identity đầy đủ của service.

Lịch ngừng hỗ trợ được công bố theo lịch cụ thể:

  • 15 September 2020, Tor 0.4.4.x: Tor bắt đầu cảnh báo operator và client rằng v2 đã deprecated.
  • 15 July 2021, Tor 0.4.6.x: Hỗ trợ v2 bị xóa khỏi code base.
  • 15 October 2021: Các bản phát hành client stable mới cho mọi series được hỗ trợ sẽ tắt v2.

Lý do được nêu là vấn đề cryptographic. “Khi hiểu biết của con người về toán học và cryptography phát triển, nền tảng của version 2 trở nên không còn đủ an toàn và tại thời điểm đó đã không an toàn.” Hash SHA-1 bị cắt còn 80 bit và RSA key 1024 bit đều thấp hơn mức hợp lý vào năm 2021. Định dạng địa chỉ cũng không có chỗ để thay thế một trong hai thành phần này.

Hệ quả đối với người dùng rất đơn giản và cần được nói rõ. Mọi link .onion dài 16 ký tự được công bố trước năm 2021 đều đã chết vĩnh viễn và không có redirect. Không thể nâng cấp địa chỉ v2 vì địa chỉ đó chính là key cũ. Operator phải tạo service mới và công bố địa chỉ mới qua một kênh mà người dùng đã tin cậy.

Bridge và pluggable transport: kiểm duyệt liên tục thay đổi

Danh sách relay công khai được công bố có chủ đích, để client có thể tự chọn đường đi thay vì tin một server chọn thay mình. Chính danh sách đã công bố đó cũng là blocklist có sẵn cho bất kỳ quốc gia nào muốn chặn Tor. Công việc phát triển bridge bắt đầu vào năm 2007. Bridge là relay không có trong danh sách công khai. Bạn yêu cầu một số lượng nhỏ bridge qua web hoặc email, nhờ đó censor không thể chặn những địa chỉ mà họ không thể liệt kê.

Sau đó, việc chặn chuyển từ địa chỉ sang dạng lưu lượng. Deep packet inspection có thể nhận diện protocol Tor trên đường truyền, bất kể nó kết nối đến địa chỉ IP nào. Giải pháp là pluggable transport: một lớp wrapper thay đổi hình dạng của lưu lượng Tor nhưng không thay đổi chức năng của nó. Trong Tor Browser hiện tại, các transport này được đóng gói trong một binary có tên lyrebird, là sản phẩm kế nhiệm obfs4proxy, và cấu hình phía client gồm ba dòng torrc:

UseBridges 1
ClientTransportPlugin meek_lite,obfs4,snowflake,webtunnel exec [PATH]/lyrebird
Bridge obfs4 <IP ADDRESS>:<PORT> <FINGERPRINT> cert=<CERTIFICATE> iat-mode=0

Thay [PATH] bằng thư mục chứa binary lyrebird, rồi lấy toàn bộ dòng Bridge từ trang bridge của Tor Project thay vì tự nhập. Mỗi transport xử lý một phương thức chặn khác nhau:

  • obfs4 làm cho lưu lượng trông như không có dạng gì có thể nhận diện, không có protocol header để filter đối chiếu. Tor khuyên nên thử transport này trước, vì đây là transport ngẫu nhiên hóa và hoạt động với hầu hết người dùng.
  • snowflake chuyển bạn qua các proxy tồn tại trong thời gian ngắn do tình nguyện viên chạy trong các web browser thông thường, nên địa chỉ bạn kết nối đến liên tục thay đổi. Transport này được đưa vào Tor Browser stable ở version 10.5 ngày 6 July 2021.
  • meek định tuyến kết nối qua một cloud provider lớn, khiến lưu lượng trông như đang đi đến provider đó; muốn chặn nó thì cũng phải chặn provider đó.
  • webtunnel dùng cách ngược với obfs4. Thay vì trông như không có dạng gì, nó trông như một kết nối HTTPS thông thường đến web server, bằng cách "bọc kết nối payload trong một kết nối HTTPS giống WebSocket". Tor Project đưa transport này vào Tor Browser stable ngày 12 March 2024, dành cho các network chỉ cho phép một danh sách protocol ngắn.

Chuỗi thay đổi này phản ánh đúng diễn biến của hai mươi năm qua. Mỗi transport mới tồn tại vì một kỹ thuật chặn cụ thể đã bắt đầu có hiệu quả, và ngày phát hành của các transport đó ghi lại những gì censor đã thực hiện trong năm tương ứng.

Tor không phải VPN và VPS cũng vậy

Nhiều người tìm hiểu Tor sau khi đọc về VPN, nên cần phân biệt chính xác. VPN (virtual private network) chuyển lưu lượng của bạn đến một server do một công ty vận hành. Công ty đó thấy địa chỉ thật và đích đến của bạn cùng lúc. Tor chuyển lưu lượng qua ba relay do những người khác nhau vận hành, nên không relay nào nắm được cả hai thông tin. Đây là hai mô hình tin cậy khác nhau, với các kiểu lỗi khác nhau. Sự khác nhau giữa VPS và VPN giải thích vị trí phù hợp của từng loại.

Nếu bạn muốn một tunnel riêng giữa các máy do bạn kiểm soát, thay vì ẩn danh trong một nhóm người dùng, bạn cần tự vận hành một VPN. Bạn có thể tự host một WireGuard VPN trên VPS với khoảng 40 dòng cấu hình. Cách này bảo vệ lưu lượng của bạn khỏi mạng cục bộ và nhà cung cấp Internet. Nó không giúp bạn ẩn danh trước công ty host server, vì bạn thuê server đó bằng thông tin thanh toán của chính mình. Câu hỏi riêng về mức độ an toàn của việc host VPS lại liên quan đến một mối đe dọa khác: ai khác có thể truy cập máy của bạn.

Vận hành một relay là hướng ngược lại, và mạng lưới phụ thuộc vào những operator này. Bridge, guard, middle relay và exit đều cần operator. Hướng dẫn relay của Tor Project nêu rõ rằng “vận hành một relay đòi hỏi kỹ năng kỹ thuật và sự cam kết”. Exit có rủi ro pháp lý, vì lưu lượng của người khác rời Internet dưới địa chỉ IP của bạn và nhà cung cấp hosting sẽ nhận được khiếu nại. Hãy đọc hướng dẫn đó trước khi khởi chạy exit, không phải sau đó.

FAQ

Tor có phải do chính phủ Hoa Kỳ xây dựng không?

Định tuyến củ hành bắt đầu tại Phòng thí nghiệm Nghiên cứu Hải quân Hoa Kỳ vào năm 1995. Tại đó, David Goldschlag, Michael G. Reed và Paul Syverson đã xây dựng những nguyên mẫu đầu tiên. Bản thân Tor là thiết kế thế hệ tiếp theo, được Roger Dingledine, Nick Mathewson và Paul Syverson bắt đầu phát triển khoảng năm 2001 và 2002. Mạng được triển khai vào tháng 10 năm 2002 theo giấy phép phần mềm tự do. Tor Project, Inc. là tổ chức phi lợi nhuận 501(c)(3) độc lập từ năm 2006. Nguồn gốc từ chính phủ là có thật. Đây cũng là lý do mạng phải được mở cho tất cả mọi người: một mạng chỉ chuyển lưu lượng của một tổ chức sẽ không thể cung cấp anonymity cho tổ chức đó, vì mọi kết nối đi ra đều xác định người gửi qua chính việc sử dụng mạng.

Việc được chính phủ tài trợ có nghĩa là Tor có backdoor không?

Câu trả lời của Tor Project là: “Tor không có backdoor. Phần mềm là open source, code có thể được audit độc lập, và mọi bản release đều được ký để chống can thiệp.” Điều khiến tuyên bố này có thể kiểm chứng thay vì chỉ là một lời hứa nằm ở cấu trúc hỗ trợ xung quanh. Protocol được đặc tả công khai. Bản build của Tor Browser có tính deterministic, nên một bên độc lập có thể build lại bản release và so sánh với binary đã công bố. Các relay do tình nguyện viên vận hành, không phải do bất kỳ nhà tài trợ nào vận hành. Nguồn tài trợ có ảnh hưởng đến việc nào được thực hiện trước. Các báo cáo tài chính đã được audit trên blog của Tor cho biết tiền đến từ đâu. Đây là vấn đề về thứ tự ưu tiên, không phải về code.

Tại sao địa chỉ .onion cũ của tôi không còn hoạt động?

Đó là địa chỉ version 2, và onion service v2 đã bị ngừng vào năm 2021. Tor bắt đầu cảnh báo về việc này vào ngày 15 tháng 9 năm 2020, xóa v2 khỏi code base trong Tor 0.4.6.x vào ngày 15 tháng 7 năm 2021, rồi vô hiệu hóa v2 trong các bản release stable vào ngày 15 tháng 10 năm 2021. Địa chỉ v2 có 16 ký tự trước .onion, còn địa chỉ v3 có 56 ký tự. Không có redirect và cũng không có đường dẫn upgrade, vì địa chỉ được tạo từ key cũ. Do đó, operator phải tạo service mới và công bố địa chỉ mới.

Tor có giống VPN không?

Không. VPN gửi traffic của bạn đến một server duy nhất do một công ty vận hành. Công ty đó có thể thấy đồng thời địa chỉ IP thật và đích đến của bạn. Tor gửi traffic qua 3 relay do những người khác nhau vận hành. Relay đầu tiên thấy địa chỉ của bạn nhưng không thấy đích đến. Relay cuối cùng thấy đích đến nhưng không thấy địa chỉ của bạn. Tor chậm hơn và được thiết kế để cung cấp anonymity trước một bên quan sát không theo dõi toàn bộ Internet. VPN nhanh hơn và được thiết kế để bảo vệ privacy trước mạng cục bộ và nhà cung cấp Internet của bạn.

Pluggable transport là gì, và tôi có cần dùng một pluggable transport không?

Pluggable transport là một wrapper thay đổi hình dạng của traffic Tor trên đường truyền nhưng không thay đổi cách Tor hoạt động. Nhờ đó, filter nhận diện protocol Tor không thể khớp trực tiếp với traffic này. Bạn chỉ cần dùng pluggable transport nếu Tor thông thường không thể kết nối. Điều này thường có nghĩa là mạng hoặc quốc gia của bạn đang chặn Tor. Tor Browser tích hợp obfs4, snowflake, meek và webtunnel trong một binary duy nhất có tên là lyrebird. Hãy bắt đầu với obfs4 vì đây là transport có khả năng ngẫu nhiên hóa và hoạt động với hầu hết người dùng. Nếu kết nối không bao giờ hoàn tất, hãy thử webtunnel hoặc snowflake.