En grupp forskare från University of Michigan publicerade resultaten av en studie om möjligheten att identifiera (VPN Fingerprinting) anslutningar till OpenVPN-baserade servrar vid övervakning av transittrafik. Som ett resultat identifierades tre metoder för att identifiera OpenVPN-protokollet bland andra nätverkspaket som kan användas i trafikinspektionssystem för att blockera OpenVPN-baserade virtuella nätverk.
Testning av de föreslagna metoderna på nätverket av internetleverantören Merit, som har mer än en miljon användare, visade förmågan att identifiera 85% av OpenVPN-sessioner med en låg nivå av falska positiva. För testning förbereddes en verktygslåda som först upptäckte OpenVPN-trafik i farten i ett passivt läge, och sedan verifierade resultatets korrekthet genom en aktiv serverkontroll. Ett trafikflöde med en intensitet på cirka 20 Gbps speglades på analysatorn som skapats av forskarna.

Under experimentet kunde analysatorn framgångsrikt identifiera 1718 2000 av 40 39 test OpenVPN-anslutningar som upprättats av en oseriös klient, som använde 40 olika typiska OpenVPN-konfigurationer (metoden fungerade framgångsrikt för 3638 av 3245 konfigurationer). Dessutom, under de åtta dagar som experimentet pågick, identifierades XNUMX OpenVPN-sessioner i transittrafik, varav XNUMX sessioner bekräftades. Det noteras att den övre gränsen för falskt positiva i den föreslagna metoden är tre storleksordningar lägre än i tidigare föreslagna metoder baserade på användning av maskininlärning.
Prestandan hos OpenVPN-trafikövervakningsmetoder i kommersiella tjänster utvärderades separat – av 41 testade VPNAv de tjänster som använde OpenVPN-trafikförvrängningsmetoder identifierades trafik i 34 fall. De tjänster som inte upptäcktes använde ytterligare lager av trafikförvrängning utöver OpenVPN (till exempel att dirigera OpenVPN-trafik genom en ytterligare krypterad tunnel). De flesta av de framgångsrikt identifierade tjänsterna använde trafikförvrängning med hjälp av XOR-operationen, ytterligare lager av förvrängning utan korrekt randomisering av trafiken, eller närvaron av icke-förvrängda OpenVPN-tjänster på samma nätverk. server.
De involverade identifieringsmetoderna är baserade på bindning till OpenVPN-specifika mönster i okrypterade pakethuvuden, ACK-paketstorlekar och serversvar. I det första fallet kan en bindning till "opcode"-fältet i pakethuvudet användas som ett objekt för identifiering vid anslutningsförhandlingsstadiet, som tar ett fast värdeintervall och ändras på ett visst sätt beroende på anslutningen installationsstadiet. Identifiering handlar om att identifiera en viss sekvens av opkodändringar i de första N-paketen i flödet.
Den andra metoden är baserad på det faktum att ACK-paket används i OpenVPN endast vid anslutningsförhandlingsstadiet och samtidigt har en specifik storlek. Identifieringen baseras på det faktum att ACK-paket av en given storlek endast förekommer i vissa delar av sessionen (till exempel när man använder OpenVPN är det första ACK-paketet vanligtvis det tredje datapaketet som skickas i sessionen).

Den tredje metoden är en aktiv kontroll och beror på det faktum att OpenVPN-servern som svar på en begäran om återställning av anslutning skickar ett specifikt RST-paket (kontrollen fungerar inte när du använder läget "tls-auth", eftersom OpenVPN-servern ignorerar förfrågningar från klienter som inte är autentiserade via TLS).

Källa: opennet.ru
