Metodologia

Jak działają testy MyLeaks

MyLeaks raportuje obserwacje wykonane podczas bieżącego załadowania strony i powiązanych z nim połączeń sieciowych.

Zakres i interpretacja

Wyniki mogą być zależne od zachowania przeglądarki, kontroli prywatności, VPN-ów, proxy, NAT, zapor sieciowych i innych programów sieciowych. Przeczytaj każdy wynik wraz z jego określonymi ograniczeniami.

1. IP i geolokalizacja

Co mierzymy

Źródłowy adres IP połączenia HTTPS, jego wersja IPv4 lub IPv6, wynegocjowana wersja i szyfr TLS, User-Agent, Accept-Language oraz Client Hints o niskiej entropii (Sec-CH-UA, Sec-CH-UA-Mobile oraz Sec-CH-UA-Platform). Wynik może również zawierać kraj, jednostkę podziału administracyjnego, miasto, przybliżoną szerokość/długość geograficzną, promień dokładności, strefę czasową, ASN i organizację AS, jeśli te dane są dostępne.

Jak to mierzymy

MyLeaks odczytuje adres źródłowy oraz szczegóły połączenia zaobserwowane podczas obecnej wizyty. Przybliżone pola lokalizacji i sieci są wyszukiwane na podstawie danych referencyjnych IP.

Co oznacza wynik

Publiczny adres IP to adres zaobserwowany dla żądania HTTPS docierającego do MyLeaks. Pola geograficzne i sieciowe są estymacjami z bazy danych powiązanymi z tym adresem IP, a nie lokalizacją zgłoszoną przez urządzenie.

Ograniczenia

VPN, forward proxy, NAT klasy operatorskiej, bramy firmowe i inne mechanizmy routingu mogą zmieniać zaobserwowany adres. Bazy IP mogą mieć braki, być nieaktualne lub niedokładne geograficznie. Ten test nie prosi o uprawnienia do GPS ani innej lokalizacji urządzenia.

2. Wykrywanie proxy/VPN

Co mierzymy

Wskaźniki klasyfikacji dotyczące obserwowanego publicznego IP, w tym proxy, VPN, Tor, hosting/datacenter, proxy-residential, typ sieci, operator, zaufanie i pola ryzyka, jeśli są dostępne.

Jak to mierzymy

MyLeaks sprawdza aktualny publiczny adres IP względem danych klasyfikacji sieci i prezentuje dostępne wskaźniki w spójnym formacie.

Co oznacza wynik

Wykryte oznacza, że znaleziono wskaźnik dla aktualnego IP. Brak wykrycia oznacza, że w tej kontroli nie znaleziono żadnego wskaźnika. Nieznane oznacza, że wymagane informacje były niedostępne lub niewystarczające.

Ograniczenia

Dane klasyfikacyjne mogą być niekompletne, opóźnione lub przestarzałe. Kategorie sieci nakładają się i mogą kolidować, zwłaszcza w przypadku współdzielonego hostingu, przekaźników i nowszych usług.

3. WebRTC

Co mierzymy

Typ kandydata ICE, adres, port, protokół, powiązany adres/port, typ TCP oraz informacja, czy adres jest numerycznym adresem publicznym, numerycznym adresem prywatnym/lokalnym, zaciemnioną przez mDNS nazwą .local lub inną nazwą hosta. Liczby są podawane dla kandydatów typu host, server-reflexive (srflx), relay, peer-reflexive i nieznanych.

Jak to mierzymy

Strona tworzy połączenie WebRTC, otwiera kanał danych i zbiera kandydatów do ICE aż do zakończenia przeglądarki lub wygaśnięcia testu. Nie wymaga dostępu do kamery ani mikrofonu. Preferowane są ustrukturyzowane pola kandydatów, a surowe parsowanie kandydatów jest rozwiązaniem awaryjnym.

Kandydat na hosta reprezentuje adres interfejsu lub jego mDNS zastępstwo. Kandydat odruchowy serwera to adres mapowany wyuczony podczas nawiązywania połączenia. Kandydat na przekaźnik przechodzi przez TURN i jest wyświetlany, ale wykluczony z bezpośredniego porównania publiczno-IP. Kandydaci z sektora prywatnego/lokalnego oraz mDNS gospodarza są zgłaszani oddzielnie.

Co oznacza wynik

MyLeaks porównuje numeryczne publiczne adresy kandydatów host lub server-reflexive z publicznym adresem HTTP. Różnica oznacza, że przeglądarka ujawniła inny publiczny adres. Dopasowanie oznacza jedynie, że ten test nie znalazł innego publicznego adresu.

Ograniczenia

Polityka przeglądarki, rozszerzenia, kontrole korporacyjne, routing VPN, zapory sieciowe oraz wersje przeglądarek mogą zmieniać ekspozycję kandydatów. Kandydaci na przekaźniki są wykluczeni z bezpośredniego porównania publicznego z IP. Niedostępny wynik oznacza, że test nie uzyskał użytecznego porównania. To nie jest dedykowany test łączności IPv6.

4. DNS

Co mierzymy

Adresy IP resolvera-egress, które zapytują unikalne nazwy testów, wersję IP, typy i liczbę zapytań, liczbę obserwowanych sond oraz informacje o kraju/ASN, jeśli są dostępne.

Jak to mierzymy

Przeglądarka rozwiązuje kilka unikalnych nazw i przez krótki czas czeka na obserwacje. Jeśli pierwsza metoda nie przyniesie rezultatu, przed upływem czasu testu próbuje się uruchomić drugą metodę rozstrzygania obsługiwaną przez przeglądarkę.

Co oznacza wynik

Zaobserwowany adres jest adresem rekursywnego resolvera lub jego węzła wyjściowego, który wysłał zapytanie do autorytatywnej infrastruktury DNS MyLeaks. Wynik pokazuje relacje między siecią tego resolvera a siecią HTTP.

Ograniczenia

Wynik może nie być dokładnie tym samym serwerem DNS skonfigurowanym na urządzeniu i nie wskazuje ustawień DoH/DoT przeglądarki. Udostępnione, przekierowujące, anycastowe i publiczne resolvery są powszechne. Zachowanie przeglądarki lub sieci może tłumić żądania testowe.

5. TLS JA3/JA4

Co mierzymy

Obserwowane TLS ClientHello: wersje dziedziczone i wspierane TLS, kolejność pakietu szyfrów, kolejność rozszerzeń, kolejność grup wspieranych, formaty punktów EC, algorytmy podpisów, wartości ALPN oraz SNI obecność. MyLeaks czerpie JA3 i JA4 TLS wartości klienta.

Jak to mierzymy

MyLeaks analizuje ClientHello obserwowane dla połączenia testowego i wyprowadza oba odciski palców z tych samych uporządkowanych pól protokołu.

Co oznacza wynik

JA3 i JA4 podsumowują cechy ClientHello, które dotarło do MyLeaks. Mogą pomóc porównać TLS implementacje lub ścieżki, a wielu klientów podziela te same wartości.

Ograniczenia

TLS przechwyty, proxy, oprogramowanie pośredniczące, aktualizacje przeglądarek oraz konfigurowalne biblioteki TLS mogą zmieniać obserwację. Wielu klientów dzieli się odciskami palców.

Zaawansowane szczegóły: normalizacja JA3 i JA4

JA3 używa legacy_version,ciphers,extensions,supported_groups,ec_point_formats. GREASE jest usuwany z szyfrów, rozszerzeń i grup; kolejność pozostałych elementów zostaje zachowana. Wartości są dziesiętne i w każdym polu rozdzielone łącznikami. Identyfikator to MD5 tego ciągu kanonicznego zapisany małymi literami, zgodnie z formatem JA3.

JA4 używa najwyższej oferowanej obsługiwanej wersji innej niż GREASE, a w razie jej braku wersji legacy; znacznika transportu TCP; stanu obecności/braku SNI; ograniczonych do dwóch cyfr liczników szyfrów i rozszerzeń innych niż GREASE; oraz kodu z pierwszego wpisu ALPN. Ten kod ALPN używa pierwszego i ostatniego bajtu, gdy oba są alfanumerycznymi znakami ASCII; w przeciwnym razie używa pierwszego i ostatniego znaku szesnastkowego. Identyfikatory szyfrów są sortowane numerycznie i hashowane przez SHA-256 do 12-znakowego prefiksu szesnastkowego. Z listy rozszerzeń usuwa się SNI (0x0000) i ALPN (0x0010), a pozostałe rozszerzenia są następnie sortowane numerycznie. Uporządkowane algorytmy podpisu inne niż GREASE są dołączane bez sortowania przed drugim 12-znakowym prefiksem SHA-256 w zapisie szesnastkowym. Dla pustych danych wejściowych hasha używa się dwunastu zer. MyLeaks implementuje JA4 TLS Client, a nie inne metody JA4+.

6. HTTP/2

Co mierzymy

Preface klienta i ALPN h2, pierwsze wpisy SETTINGS bez ACK, ograniczoną początkową sekwencję ramek bez ACK, przyrosty WINDOW_UPDATE połączenia i ich pozycje w sekwencji, kolejność pseudonagłówków oraz kolejność nazw zwykłych nagłówków. Aktualizacje okna strumienia, dane priorytetu i flagi bloku nagłówków są wyświetlane jako szczegóły.

Jak to mierzymy

Przeglądarka otwiera HTTP/2 połączenie. MyLeaks analizuje początkowe ramki i blok nagłówka oraz zwraca obserwację dla tego połączenia.

Co oznacza wynik

myleaks-h2-v1 jest specyficznym dla MyLeaks, wersjonowanym podsumowaniem zaobserwowanego zachowania podczas inicjalizacji HTTP/2. Nie jest to JA4H, fingerprinting Akamai ani uniwersalny standard.

Ograniczenia

Niektóre proxy, sieci korporacyjne, zapory sieciowe i bramki ograniczające mogą blokować połączenie testowe. Pośrednicy mogą zmieniać zachowania, a wielu klientów może mieć ten sam rezultat.

Zaawansowane szczegóły: myleaks-h2-v1
myleaks-h2-v1|SETTINGS=<id:value,id:value,...>|WINDOW=<increment@sequence-position,...|none>|FRAMES=<non-ACK-frame-name,...>|PSEUDO=<pseudo-header-name,...>|HEADERS=<regular-header-name,...>

Wpisy SETTINGS, nazwy ramek, nazwy pseudonagłówków i nazwy zwykłych nagłówków zachowują zaobserwowaną kolejność na łączu lub po dekodowaniu; duplikaty i nieznane identyfikatory ustawień pozostają. Nieznane ramki używają UNKNOWN_0xNN. Fingerprint to SHA-256 dokładnego ciągu kanonicznego UTF-8 zapisany małymi literami. Wartości nagłówków, adres/port źródłowy, informacje czasowe, fingerprinty TLS i hashe lokalne dla przeglądarki są wykluczone.

7. QUIC/HTTP/3

Co mierzymy

Publiczny adres IPv4 bezpośredniego połączenia QUIC, wersja QUIC, ujawnione stabilne wartości parametrów transportowych, początkowe długości identyfikatorów połączenia źródłowego/docelowego, wartości HTTP/3 SETTINGS, obecność zastrzeżonych ustawień, kolejność nazw nagłówków żądania oraz informacja, czy 0-RTT zostało zaakceptowane.

Jak to mierzymy

Przeglądarka próbuje HTTP/3 połączenia przez QUIC. Tylko udane QUIC i HTTP/3 obserwacja są pokazywane jako odcisk palca.

Co oznacza wynik

myleaks-quic-v1 i myleaks-h3-v1 są zdefiniowanymi przez MyLeaks podsumowaniami ujawnionych cech połączenia. Różne adresy IP HTTPS i QUIC oznaczają, że oba połączenia dotarły do MyLeaks różnymi publicznymi ścieżkami; nie wskazuje to, który adres jest „prawdziwy”.

Ograniczenia

QUIC lub HTTP/3 mogą być zablokowane lub wyłączone przez przeglądarkę lub sieć. Niektóre szczegóły transportu i kolejność przelewów są niedostępne, więc MyLeaks pomija je zamiast wywnioskować. Wielu klientów może mieć ten sam rezultat.

Zaawansowane szczegóły: kanonizacja QUIC i H3 w MyLeaks

myleaks-quic-v1 — kanoniczne dane wejściowe:

VER=<escaped-version>|TP=<numeric-id:value sorted by id>|GREASE=NE

Lista dozwolonych parametrów transportowych używa identyfikatorów 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 i 14 oraz identyfikatora 32, gdy max_datagram_frame_size jest obecny. W tekście wersji escapowane są znaki % | , :. Kolejność parametrów, adres/port źródłowy, surowe bajty CID/tokenu, informacje czasowe oraz dynamiczne dane połączenia są wykluczone. NE oznacza, że obserwacja GREASE nie jest ujawniana.

myleaks-h3-v1 — kanoniczne dane wejściowe:

SETTINGS=<known numeric-id:value sorted by id>|GREASE=<0|1>

Lista dozwolonych V1 obejmuje identyfikatory SETTINGS 1, 6, 7, 8 i 51. Nieznane, niezastrzeżone ustawienia są wyświetlane, ale wykluczone. Zastrzeżone identyfikatory odpowiadające 0x1f*N+0x21 wnoszą tylko stabilny bit obecności GREASE; ich losowe identyfikatory i wartości nie są hashowane. Oba fingerprinty to SHA-256 ich dokładnych kanonicznych danych wejściowych UTF-8 zapisany małymi literami. 0-RTT jest wyłączone i wykluczone.

8. TCP

Co mierzymy

Surowe okno TCP, pierwsze prawidłowe wartości MSS i skalowania okna, obecność opcji SACK-permitted, timestamp i TCP Fast Open, stan ECE/CWR, bit IPv4 Don’t Fragment oraz kolejność opcji TCP na łączu. Zaobserwowany TTL oraz szacowany początkowy TTL/liczba przeskoków są wyświetlane oddzielnie.

Jak to mierzymy

MyLeaks odczytuje wybrane cechy początkowego IPv4 TCP SYN i tworzy wersjonowane podsumowanie z pola stabilnych.

Co oznacza wynik

myleaks-tcp-v1 podsumowuje początkowe cechy SYN otrzymane przez MyLeaks. Jest to odrębny format od JA4T.

Ograniczenia

NAT, VPN, proxy, zapory sieciowe, normalizacja pakietów i inne urządzenia sieciowe mogą zmieniać te pola. Wiele systemów daje ten sam efekt.

Zaawansowane szczegóły: myleaks-tcp-v1
WIN=<raw>|MSS=<value|->|WS=<value|->|SACK=<0|1>|TS=<0|1>|TFO=<0|1>|ECN=<NONE|ECE|CWR|ECE+CWR>|DF=<0|1>|OPTS=<comma-separated option tokens|->

Znane zduplikowane opcje zachowują swoją kolejność; używana jest pierwsza prawidłowa wartość MSS/skalowania okna. NOP i EOL pozostają. Nieznane opcje używają OPT<kind>L<length>, bez danych opcji. Nieprawidłowe długości powodują odrzucenie SYN. Fingerprint to SHA-256 dokładnego ciągu kanonicznego zapisany małymi literami.

Hash wyklucza adresy/porty przepływu, numery sekwencyjne i potwierdzeń, identyfikator IP, szacunki TTL/liczby przeskoków, wartości znaczników czasu TCP, bajty cookie TFO, sumy kontrolne i czas przechwycenia. Zaobserwowany TTL jest porównywany z najmniejszą typową wartością początkową spośród 32, 64, 128 i 255; wynikowe wartości TTL i liczby przeskoków są tylko szacunkami.

9. Fingerprint przeglądarki

Co mierzymy

Siedem oddzielnych powierzchni ujawnianych przez przeglądarkę: Canvas, WebGL, WebGPU, Audio, Fonts, ClientRects i Canvas TextMetrics. Nie istnieje jeden złożony fingerprint przeglądarki. Każda powierzchnia jest mierzona dwukrotnie w celu sprawdzenia stabilności w obrębie tego samego załadowania strony.

Jak to mierzymy

Strona korzysta z funkcji przeglądarki i haszowania SHA-256. Klucze obiektowe są sortowane rekurencyjnie przed serializacją JSON; tablice zachowują swój zdefiniowany porządek.

Co oznacza wynik

Powierzchnia oznaczona jako stabilna wygenerowała ten sam skrót w dwóch uruchomieniach podczas ładowania tej strony. Status ten opisuje powtarzalność podczas bieżącego obciążenia.

Ograniczenia

Dostępność i wartości zależą od przeglądarki, systemu operacyjnego, implementacji grafiki i dźwięku, czcionek, mechanizmów ochrony prywatności, rozszerzeń oraz stanu środowiska wykonawczego. Ograniczone lub niestabilne wyniki same w sobie nie potwierdzają prywatności, spoofingu ani autentyczności.

Zaawansowane szczegóły: dokładne dane wejściowe każdego hasha przeglądarki
  • Canvas: surowe bajty RGBA z deterministycznej sceny Canvas 2D o wymiarach 320 × 160, zawierającej stałe wypełnienia, compositing, geometrię, gradienty i tekst. SHA-256 jest stosowany bezpośrednio do bajtów pikseli.
  • WebGL: surowe bajty RGBA odczytane ze stałego renderowania trójkąta 96 × 96 w WebGL 2, WebGL 1 lub eksperymentalnym WebGL. Wyświetlane dane o możliwościach — kontekst/wersja, język shaderów, producent/renderer, opcjonalne wartości bez maskowania, wybrane limity, antialiasing i posortowana lista rozszerzeń — nie są częścią tego hasha renderowania.
  • WebGPU: kanoniczny JSON zawierający informacje o adapterze (vendor, architecture, device, description lub „Nieujawnione”), leksykograficznie posortowane nazwy funkcji oraz stałą, uporządkowaną listę skończonych wartości liczbowych limitów WebGPU. Klucze obiektów są sortowane podczas serializacji kanonicznej.
  • Audio: 8 192 próbki (ramki 1024–9215) z jednokanałowego renderowania offline z częstotliwością 44 100 Hz oscylatora trójkątnego 997 Hz przepuszczonego przez kompresor o stałych parametrach. Każda wartość Float32 jest kodowana w kolejności little-endian przed obliczeniem SHA-256; nie jest generowany słyszalny dźwięk ani wymagane żadne uprawnienie.
  • Fonts: kanoniczny JSON ze stałą liczbą elementów listy kandydatów i leksykograficznie posortowanymi nazwami wykrytych czcionek. Czcionka jest wykrywana, gdy szerokość lub wysokość stałego tekstu sondy różni się od co najmniej dwóch bazowych wartości zastępczych serif, sans-serif i monospace.
  • ClientRects: kanoniczny JSON dla stałego układu 320 px poza ekranem: prostokąty bounding/client elementu głównego, box i inline oraz prostokąty tekstowego Range. Współrzędne są względne wobec kontenera i ustalone do sześciu miejsc po przecinku; kolejność tablicy zostaje zachowana.
  • TextMetrics: kanoniczny JSON z precyzją 6 i trzema stałymi przypadkami czcionki/tekstu. Dla każdego przypadku obsługiwane skończone wartości width, actual bounding-box left/right/ascent/descent oraz font bounding-box ascent/descent są uwzględniane w stałej kolejności właściwości i zapisywane do sześciu miejsc po przecinku.

10. Kontrole spójności

Co mierzymy

Reguły porównują: IP HTTP z publicznymi kandydatami WebRTC; strefę czasową przeglądarki ze strefą czasową oszacowaną na podstawie IP; ASN/kraj resolvera z ASN/krajem HTTP; relacje logiczne w danych analizy IP; rodzinę/wersję User-Agent z Client Hints; User-Agent, Client Hints i navigator.platform; wskaźniki mobilne; stabilność fingerprintu dla poszczególnych powierzchni; navigator.webdriver; oraz IP HTTPS z IP QUIC.

Jak to mierzymy

Reguły spójności porównują wyniki już wygenerowane przez stronę, bez powtarzania testów. Alisy platformy i kompatybilne reprezentacje rodziny przeglądarek są normalizowane w sposób zachowawczy; Przesunięcia stref czasowych używają jednego źródła Instant i przeglądarki Intl w przeglądarce.

Co oznacza wynik

Statusy takie jak spójny, zgodny, niezgodny, ostrzegawczy, informacyjny i nieznany opisują konkretną relację faktyczną między porównywanymi wartościami.

Ograniczenia

Otwórz niedopasowanie, aby zobaczyć, które wartości się różnią. Brakujące wejścia dają nieznane rezultaty, a niezależnie obserwowane sygnały mogą się różnić ze względu na zachowanie sieci lub przeglądarki.