Dịch vụ Onion so với dịch vụ VPN: các mô hình truy cập khác nhau
Địa chỉ Onion gắn với khóa của dịch vụ và được truy cập bên trong Tor; VPN cấp một tuyến đến cổng. Hãy so sánh đối tượng, khả năng phát hiện và xác thực ứng dụng.
Người ta mô tả dịch vụ Onion và dịch vụ chỉ truy cập được qua VPN như hai biến thể của cùng một ý tưởng: giấu cổng và chia sẻ địa chỉ bí mật. Chúng khác nhau ở chỗ địa chỉ gắn với cái gì, ai có thể tiếp cận và điều gì phải xảy ra trước khi yêu cầu đến. Một bên là điểm gặp bên trong Tor, bên kia là tuyến trong mạng riêng. Coi chúng thay thế được cho nhau sẽ tạo ra thiết kế vừa không riêng tư vừa không duy trì nổi.
Lầm tưởng: cả hai thiết kế chỉ là một cánh cửa ẩn
Thuộc tính chung là thật nhưng mỏng: không thiết kế nào đặt giao diện quản trị trên một cổng công khai truy cập trực tiếp. Mọi thứ còn lại đều khác. Địa chỉ Onion bắt nguồn từ chính khóa của dịch vụ, nên tên gắn với danh tính; địa chỉ VPN chỉ là một địa chỉ trong mạng mà bạn được cho vào. Một bên giấu dịch vụ trong một lớp phủ, bên kia đưa bạn vào một cấu trúc mạng riêng. Xem cái thứ hai là từ đồng nghĩa của cái thứ nhất chính là chỗ bắt đầu nhầm lẫn.
Không thuộc tính nào trong hai thuộc tính này là biện pháp kiểm soát an ninh cho chính ứng dụng. Một nơi ẩn không vá phần mềm phía sau nó, và một tuyến riêng không thêm xác thực vào trang đăng nhập. Cả hai thiết kế vẫn cần quyền của chính ứng dụng, và cả hai vẫn cần người chịu trách nhiệm về cập nhật và phục hồi.
Địa chỉ Onion thực sự trỏ đến đâu
Một địa chỉ Onion phiên bản v3 mã hóa khóa công khai của dịch vụ, vì thế không ai có thể chọn địa chỉ cho một dịch vụ mà mình không kiểm soát. Máy khách kết nối qua Tor đến điểm gặp, và dịch vụ đến cùng điểm đó từ phía nó; không nút ra thông thường nào mang kết nối ấy đến dịch vụ. Tên là danh tính, không phải bản ghi DNS.
dig +short example.onion
curl --socks5-hostname 127.0.0.1:9050 http://example.onion/
systemctl status tor
Vì thế thêm một tuyến hay một mục hosts cho tên onion không mang lại gì. Tra cứu không phải cơ chế; máy khách Tor và các mạch của nó mới là cơ chế. Nếu dịch vụ dành cho một nhóm nhỏ người, việc ủy quyền máy khách onion có thể yêu cầu khóa trước khi kết nối được chấp nhận, nhưng đó vẫn chưa phải đăng nhập ứng dụng. Công bố địa chỉ cũng là hành động có chủ đích, vì bất kỳ ai biết được đều có thể thử kết nối trừ khi bạn đã giới hạn.
Hãy dừng nếu lý do duy nhất của thiết kế onion là tránh phải thiết lập xác thực. Lớp phủ không cung cấp điều đó, và bạn vẫn sẽ xây nó về sau.
Tuyến VPN thực sự cấp gì
VPN đưa một thiết bị vào mạng và cấp cho nó tuyến đến cổng hoặc mạng con. Dịch vụ phía sau cổng đó thấy địa chỉ từ bể đường hầm và áp dụng quyền mà nó có. Tuyến không nói gì về việc người dùng là ai; nó nói gói tin được đi đâu.
ip route get 10.20.30.40
wg show
curl -sv https://files.internal.example/ -o /dev/null
Mô hình đó phù hợp với một nhóm quen biết có thiết bị được quản lý, vì cổng có thể áp đặt trạng thái thiết bị và mạng có thể được kiểm toán. Nó không phù hợp với khách ẩn danh hoặc bất chợt, những người phải được ghi danh trước. Đăng nhập của chính ứng dụng vẫn quyết định người dùng đã kết nối được đọc gì. Nhầm lẫn giữa khả năng tiếp cận và quyền hạn chính là cách VPN cuối cùng cấp cả mạng con cho mọi người có thể kết nối.
Hãy dừng nếu đối tượng không rõ hoặc thay đổi liên tục. Ghi danh người lạ vào một mạng riêng để hiển thị một trang là cam kết lớn so với việc công bố một dịch vụ.
Chọn giữa hai bên, và điều gì giữ nguyên
Chọn mô hình onion khi đối tượng là kỹ thuật, dịch vụ không được có địa chỉ công khai nào và bạn chấp nhận được yêu cầu của máy khách Tor. Chọn mô hình VPN khi đối tượng là một nhóm xác định mà bạn quản lý thiết bị và muốn ghi lại truy cập ở mức mạng. Không lựa chọn nào loại bỏ nhu cầu xác thực ứng dụng, bản vá hay con đường phục hồi. Không bên nào tự động riêng tư hơn theo nghĩa quan trọng với người dùng của bạn.
Trong cả hai thiết kế, hãy ghi ai có thể tiếp cận dịch vụ, họ được nhận diện thế nào và điều gì xảy ra khi mất một thông tin xác thực. Câu trả lời cho dịch vụ onion gồm các khóa ủy quyền máy khách và chính địa chỉ; câu trả lời cho VPN gồm tài khoản, thiết bị và chính sách cổng. Đây là những bản kê khác nhau, và chỉ một trong số đó sẽ rõ ràng với người quản trị kế tiếp.
So sánh kết thúc ở nơi ứng dụng bắt đầu. Một địa chỉ ẩn và một tuyến riêng là lựa chọn vận chuyển, và ứng dụng vẫn phải quyết định yêu cầu được phép làm gì. Hãy giữ những quyết định đó trong tài liệu riêng, và không thiết kế nào sẽ âm thầm tiếp nhận công việc của bên kia.