VPN-detektering beror på varifrån du tittar
En nätverksobservatör ser tunneln; webbplatsen ser webbläsarens TLS-session. Bevis från en observationspunkt överförs inte till den andra.
Två detektorer kan observera samma användare och vara oense, båda med rätt. En observatör vid åtkomstlänken ser VPN:ns yttre samtal; webbplatsen ser applikationsanslutningen som kommer från utgången. Det är olika anslutningar med olika fingeravtryck, och bevis från den ena överförs inte till den andra. Att namnge observationspunkten innan man diskuterar något TLS- eller TCP-test är det som gör påståendet meningsfullt.
En detektor utan angiven observationspunkt beskriver en åsikt snarare än en mätning.
Två observationspunkter, två olika anslutningar
Det yttre samtalet tillhör tunnelprotokollet: egna meddelandeformat, egen tillståndsmaskin, egen timing. Den inre anslutningen är webbläsaren som öppnar TLS mot webbplatsen, buren genom tunneln och sedan vidarebefordrad från utgången. Båda finns i samma ögonblick och de är inte samma flöde. Den ena är vad ett åtkomstnät kan se, den andra är vad destinationen kan se, och en mellanliggande box som avslutar endera ändrar båda bilderna.
Den skillnaden förklarar det mesta av förvirringen i diskussioner om detektering. Ett test som rapporterar en sak om ett flöde svarar ofta på en fråga om ett annat lager än det operatören hade i tankarna.
Vad observatören på åtkomstvägen ser
Vid åtkomstlänken är det synliga materialet själva tunnelprotokollet: kontroll- och datapakettyper för OpenVPN, WireGuards fasta handskaknings- och datamönster, eller vilket hölje som helst som distributionen lägger till. Om en klassificerare kan identifiera dem beror på vad som är synligt, vilken transport som bär dem och om det finns extra slöjning. Ett igenkännbart mönster är bevis om ett flöde, och inte bevis om identiteten eller avsikten hos personen bakom det.
Port 443 är en konvention för att nå en tjänst. Det gör inte varje tunneltransport till HTTPS.
Vad webbplatsen faktiskt ser
Med en routad tunnel kör webbläsaren fortfarande sin egen TLS-session med webbplatsen. Översättning vid utgången gör inte VPN-gatewayen till webbläsarens TLS-slutpunkt, så det ClientHello som webbplatsen tar emot beskriver webbläsaren eller dess TLS-bibliotek. Ett fingeravtryck i JA3-stil kännetecknar därför applikationsanslutningen, inte den VPN-programvara som bär den. Bara en proxy som avsiktligt avslutar ändrar detta arrangemang, och den måste identifieras separat.
TCP-observationer kräver samma omsorg. Vidarebefordran, översättning och en proxy som öppnar en ny anslutning är tre olika konstruktioner, och bara en av dem skriver om transportstacken. En enda ovanlig egenskap innebär inte entydigt en tunnel.
Håll påståendet inom bevisen
Nätverksklassificering, protokollobservation, applikationsfingeravtryck och kontosignaler är indata till ett riskbeslut, var och en med falska positiva, falska negativa och saknade bevis. En adress i ett hostingintervall bevisar ingenting om en kommersiell VPN, och ett vanligt webbläsarfingeravtryck bevisar ingenting om en direkt. När du utvärderar en detektor, använd en auktoriserad datauppsättning med kända vägar och registrera vilken observation som gav varje resultat.
Håll protokollklassificering skild från ett åtkomstbeslut med konsekvenser. Ett skräddarsytt svar eller ett trick med felformade paket validerar inte slutsatsen bakom det; det lägger bara press på en gissning.
En användbar rapport namnger observationen, observationspunkten och säkerheten. En naken rad «VPN upptäckt» döljer just den del som skulle låta någon kontrollera det.