Ludzie opisują usługę Onion i usługę dostępną wyłącznie przez VPN jako dwa warianty tej samej idei: ukryj port, udostępnij tajny adres. Różnią się tym, do czego przypisany jest adres, kto może do niego dotrzeć i co musi się stać, zanim dotrze żądanie. Jedna jest miejscem spotkania wewnątrz Tora, druga trasą w sieci prywatnej. Traktowanie ich jako wymiennych daje projekty, które nie są ani prywatne, ani utrzymywalne.

Mit: oba projekty to tylko ukryte drzwi

Wspólna cecha jest realna, ale cienka: żaden projekt nie stawia interfejsu administracyjnego na bezpośrednio dostępnym publicznym porcie. Wszystko dalej się rozchodzi. Adres Onion jest wyprowadzany z własnego klucza usługi, więc nazwa jest powiązana z tożsamością; adres VPN to tylko adres w sieci, do której cię wpuszczono. Jeden ukrywa usługę w warstwie nakładki, drugi wpuszcza cię do prywatnej topologii. Traktowanie drugiego jako synonimu pierwszego to początek zamieszania.

Żadna z tych cech nie jest kontrolą bezpieczeństwa dla samej aplikacji. Ukryte miejsce nie łata oprogramowania za nim, a prywatna trasa nie dodaje uwierzytelniania do strony logowania. Oba projekty nadal potrzebują własnych uprawnień aplikacji i nadal potrzebują kogoś odpowiedzialnego za aktualizacje i odtwarzanie.

Na co faktycznie wskazuje adres Onion

Adres Onion w wersji v3 koduje klucz publiczny usługi, dlatego nikt nie może wybrać adresu dla usługi, której nie kontroluje. Klient łączy się przez Tora z miejscem spotkania, a usługa dociera do tego samego punktu ze swojej strony; żaden zwykły węzeł wyjściowy nie niesie tego połączenia do usługi. Nazwa jest tożsamością, a nie rekordem DNS.

dig +short example.onion
curl --socks5-hostname 127.0.0.1:9050 http://example.onion/
systemctl status tor

Dlatego dodanie trasy lub wpisu hosts dla nazwy onion nic nie daje. Rozwiązywanie nie jest mechanizmem; mechanizmem jest klient Tora i jego obwody. Jeśli usługa jest przeznaczona dla małej grupy ludzi, autoryzacja klienta onion może wymagać klucza, zanim połączenie zostanie przyjęte, ale to nadal nie jest logowanie do aplikacji. Publikowanie adresu też jest świadomym działaniem, bo każdy, kto go pozna, może spróbować połączenia, o ile go nie ograniczono.

Zatrzymaj się, jeśli jedynym powodem projektu onion jest uniknięcie konfiguracji uwierzytelniania. Warstwa nakładki tego nie zapewnia, a i tak zbudujesz ją później.

Co faktycznie daje trasa VPN

VPN wpuszcza urządzenie do sieci i daje mu trasę do bramy lub podsieci. Usługa za tą bramą widzi adres z puli tunelu i stosuje autoryzację, którą ma. Trasa nie mówi nic o tym, kim jest użytkownik; mówi, dokąd mogą iść pakiety.

ip route get 10.20.30.40
wg show
curl -sv https://files.internal.example/ -o /dev/null

Ten model pasuje do znanej grupy z zarządzanymi urządzeniami, bo brama może wymusić stan urządzenia, a sieć można audytować. Słabo pasuje do anonimowych lub doraźnych gości, których najpierw trzeba by zapisać. Logowanie samej aplikacji nadal decyduje, co może czytać połączony użytkownik. Mylenie osiągalności z uprawnieniem to sposób, w jaki VPN w końcu daje całą podsieć każdemu, kto może się połączyć.

Zatrzymaj się, jeśli odbiorcy są nieznani lub stale się zmieniają. Zapisanie obcych do sieci prywatnej, aby pokazać im jedną stronę, to duże zobowiązanie w porównaniu z opublikowaniem usługi.

Wybór między nimi a to, co pozostaje takie samo

Wybierz model onion, gdy odbiorcy są techniczni, usługa nie może mieć żadnego publicznego adresu i możesz zaakceptować wymagania klienta Tora. Wybierz model VPN, gdy odbiorcy to określona grupa, której urządzeniami zarządzasz i której dostęp chcesz rejestrować na poziomie sieci. Żaden wybór nie usuwa potrzeby uwierzytelniania aplikacji, poprawek ani ścieżki odtwarzania. Żaden nie jest automatycznie bardziej prywatny w sensie, który liczy się dla twoich użytkowników.

W obu projektach zapisz, kto może dotrzeć do usługi, jak jest identyfikowany i co się dzieje, gdy dane logowania zostaną utracone. Odpowiedź dla usługi onion obejmuje jej klucze autoryzacji klienta i sam adres; odpowiedź dla VPN obejmuje konto, urządzenie i politykę bramy. To różne spisy, i tylko jeden z nich będzie oczywisty dla następnego administratora.

Porównanie kończy się tam, gdzie zaczyna się aplikacja. Ukryty adres i prywatna trasa to wybory transportu, a aplikacja nadal musi zdecydować, co wolno zrobić żądaniu. Trzymaj te decyzje w osobnych dokumentach, a żaden projekt po cichu nie przejmie pracy drugiego.

Powiązane artykuły