Gdy strona testowa WebRTC wypisze 172.20.4.15, dowiedziała się, że w tej sieci istnieje lokalny interfejs. To prawdziwe ujawnienie i nie jest to ten sam wniosek co „media wyszły przez wyjście VPN”. Wykrywanie kandydatów i trasowanie pakietów to osobne mechanizmy, a większość raportów o wyciekach scala je w jeden wyrok. Który z nich widzisz, decyduje o naprawie.

Zbieranie odbywa się, zanim cokolwiek zostanie wysłane

Przeglądarka wylicza lokalne interfejsy, wysyła żądanie powiązania do serwera STUN i prosi serwer TURN o przydział, a następnie zapisuje wyniki w opisie sesji jako wiersze kandydatów. Wszystko to kończy się bez połączenia, bez mediów i bez drugiej strony. Lista kandydatów jest więc zapisem wykrywania, a nie transmisji.

Nowoczesne przeglądarki mogą zastąpić dosłowny adres kandydata hosta nazwą mDNS .local, więc strona nie może odczytać prywatnego IP. Sieć lokalna nadal widzi zapytania multicastowe, które rozwiązują tę nazwę, czyli adres jest ukrywany przed aplikacją, a nie usuwany z sieci.

Kolejność też ma znaczenie: nowe wczytanie strony zbiera nowy zestaw, z innym przydziałem TURN i być może innym mapowaniem refleksyjnym. Dwa różne przebiegi nie muszą oznaczać dwóch różnych konfiguracji.

Trzy typy kandydatów, trzy rodzaje dowodów

Każdy wiersz pochodzi z innego obserwacji. Każdy typ odpowiada na inne pytanie, a tabela rozdziela je według tego, co mogą i czego nie mogą ustalić.

CandidateDerived fromWhat it establishesWhat it cannot establish
HostAn interface on the deviceA local address exists in that networkThat the peer can reach it
Server-reflexiveA STUN binding responseHow a NAT mapped this sourceWhich exit the media will use
Peer-reflexiveA connectivity check that arrivedAn address seen by the far sideThat it was ever advertised
RelayA TURN allocationThe relay server accepted the sessionThat the relay carries the call

Kandydat przekaźnika bywa mylony z adresem internetowym użytkownika. Należy do serwera TURN, a jego obecność pokazuje, że przekaźnik był dostępny, a nie że przeglądarka go wybrała. To samo pomylenie działa w drugą stronę przy kandydatach hosta, gdzie nazwa mDNS ukrywa adres przed stroną, podczas gdy sieć nadal przenosi zapytania. Przeczytaj typ, zanim przeczytasz wartość.

Wybrana para odpowiada na pytanie o trasowanie

ICE łączy każdego kandydata lokalnego z każdym zdalnym, wykonuje testy łączności na każdej parze i nominuje zwycięzcę. Ta nominowana para, widoczna w diagnostyce samej przeglądarki, przenosi media. Wszystko inne na liście to możliwość, która przegrała.

Zwycięzca mówi ci o kształcie ścieżki. Przekaźnik do przekaźnika idzie przez serwer TURN, para hostów zostaje w sieci lokalnej, a para refleksyjna serwera idzie prosto przez NAT. To fakt, którego potrzebuje kontrola VPN, i jest to inny fakt niż lista adresów. Dwa połączenia z identycznymi listami kandydatów mogą wybrać różne pary.

Niewybrani kandydaci zostali mimo to zebrani, a zbieranie to ruch sieciowy opuszczający maszynę. Połączenie, które ostatecznie użyło przekaźnika, nie oznacza, że nic nie ujawniono podczas budowania listy.

Kontrole odpowiadają celom, a nie ocenie wycieku

Specyfikacja WebRTC dotycząca obsługi IP opisuje kilka polityk: używanie tylko interfejsu przenoszącego trasę domyślną, używanie wszystkich interfejsów oraz wyłączanie UDP bez pośrednika, tak aby ruch musiał przechodzić przez przekaźnik lub pośrednika. Każda wymienia łączność i opóźnienie na inny rodzaj ekspozycji. Którą przeglądarka implementuje i pod jaką nazwą, zależy od platformy i wersji.

Wybierz politykę według celu. Ukrywanie adresów lokalnych przed stroną to jeden cel; zapobieganie bezpośredniemu ruchowi równorzędnemu to drugi; trzymanie każdego pakietu w tunelu to trzeci. Pierwszy dotyczy głównie tego, czego dowiaduje się aplikacja, drugi tego, która ścieżka jest dozwolona, a trzeci musi być egzekwowany także na granicy platformy lub VPN.

Niezależnie od wybranej kontroli sprawdź obie połowy: uruchom test zbierania i zapisz typy kandydatów, a następnie zbadaj wybraną parę podczas prawdziwej sesji. Czysta lista adresów z bezpośrednią ścieżką mediów to nadal ścieżka, której nie chciałeś.

Powiązane artykuły