Ruch maskujący w VPN: przed którym obserwatorem się ukrywasz
Dopełnianie zmienia wzorzec ruchu, ale dla tego obserwatora, dla którego je zaprojektowano. Przejdź, gdzie kończy się wypełnienie, ile to kosztuje i czego nie może ukryć.
Wyobraź sobie, że dzielisz sieć w kawiarni z kimś, kto używa VPN, a widzisz tylko rozmiary pakietów i czasy. Ruch maskujący ma rozmyć ten obraz. Prześledź wypełnienie od laptopa do bramy i okaże się, że rozmycie jest lokalne: kończy się tam, gdzie kończy się brama. Wszystko po tym punkcie to nowy problem obserwacji na tym samym rzeczywistym ruchu.
Pierwsze pytanie nigdy nie brzmi więc, ile wypełnienia wysłać. Brzmi: przed którym obserwatorem się ukrywasz i gdzie ten obserwator siedzi.
Zacznij od laptopa
Na łączu lokalnym obserwator widzi wychodzące i przychodzące zaszyfrowane pakiety. Bez wypełnienia duży upload to seria pakietów pełnego rozmiaru, rozmowa to równy strumień pakietów średniego rozmiaru, a bezczynny klient wysyła keepalive. Te kształty korelują z tym, co robi użytkownik, nawet gdy treść jest nieczytelna. Wypełnienie może wygładzić kształt, ale za cenę bajtów, o które nikt nie prosił.
Zapisz, co ten obserwator zauważyłby inaczej: wybuch na początku transferu, przerwę, gdy rozmowa się kończy, rytm okresów bezczynności. Jeśli nie potrafisz nazwać tej cechy, nie możesz twierdzić, że wypełnienie ją ukrywa.
Podążaj za wypełnieniem do bramy
Laptop wysyła dopełnienie do współpracującej bramy, która je odrzuca i przekazuje dalej rzeczywisty ruch. Ta współpraca jest mechanizmem: bez punktu końcowego, który usuwa wypełnienie, dodałeś obciążenie do cudzej ścieżki, zamiast stworzyć osłonę. Specyfikacja dopełniania Tor czyni ten sam podział jawnym: dopełnianie łącza między sąsiednimi relayami i dopełnianie obwodu powiązane ze stanem protokołu.
Teraz zastanów się, co widzi brama. Widzi rzeczywisty ruch plus wypełnienie, co oznacza, że dowiaduje się więcej, a nie mniej, chyba że jest stroną, której ufasz. Ruch maskujący przenosi zaufanie; nie usuwa potrzeby jego istnienia.
Potem obserwuj drugi segment
Za bramą dalsze połączenia do rzeczywistych celów to zwykły ruch o zwykłych kształtach. Obserwator tam, czy to dostawca hostingu, czy sieć docelowa, widzi te same wybuchy, które dopełnienie miało ukryć. Jeśli tym obserwatorem był ten, na którym ci zależało, dopełnienie nic dla ciebie nie zrobiło. Ta granica to cały sens przechodzenia ścieżki.
Ruch maskujący jest ograniczony do segmentu, a rozszerzenie zakresu oznacza rozszerzenie współpracy.
Kierunek i kształt
Dopełnienie wysyłane tylko na zewnątrz ukrywa czas tego, co wysyłasz. Nic nie mówi o czasie tego, co wraca, bo odpowiedzi przychodzą według własnego harmonogramu. Asymetryczne ukrywanie jest normalne i warto powiedzieć to głośno: sesja z dużym pobieraniem nadal pokazuje swój kształt po stronie przychodzącej.
Długość pakietu, struktura wybuchów, czasy rozpoczęcia i zatrzymania oraz odstępy między przyjściami niosą informację. Licznik bajtów, który pozostaje płaski, może współistnieć z bardzo rozpoznawalnym rozkładem rozmiarów pakietów. Płaskie sumy nie są płaskim zachowaniem.
Co kupuje budżet
Wypełnienie zużywa przepustowość, za którą ktoś płaci: dane rozliczane, rywalizację o uplink, opóźnienie w kolejce dla innych użytkowników tego samego połączenia. Podążanie za maksymalną dostępną szybkością też jest przeciwko sobie, bo to maksimum przesuwa się wraz z łączem, a wypełnienie przesuwa się wtedy razem z nim. Ogłoszony budżet, z ogłoszonym zachowaniem po jego wyczerpaniu, to różnica między mechanizmem a wypadkiem.
Oceń wynik względem obserwacji, którą nazwałeś na początku. Test pokazujący zmniejszone rozpoznawanie przy zdefiniowanym obserwatorze jest wynikiem; obietnica, że więcej ruchu znaczy mniej informacji, nie jest.
Decyzja, czy w ogóle to robić
Dla większości ludzi odpowiedź brzmi nie, a uczciwy powód jest taki, że strumień tła z pełną prędkością jest słabym zamiennikiem oprogramowania, które dokumentuje, czego broni. Dopełnianie to legalna inżynieria i należy do projektów, które nazywają swojego obserwatora, swoje współpracujące punkty końcowe, swój koszt i swoje granice. To nie jest pole wyboru, które zamienia VPN w system anonimowości.
Jeśli to zaimplementujesz, najpierw zapisz model obserwatora. Każda późniejsza decyzja, od rozmiarów pakietów po zachowanie przy wyłączaniu, wynika z tego jednego akapitu.