Een groep onderzoekers van de Universiteit van Michigan heeft de resultaten gepubliceerd van een onderzoek naar de mogelijkheid van identificatie (VPN Fingerprinting) van verbindingen met servers op basis van OpenVPN bij het monitoren van transitverkeer. Er werden drie methoden ontdekt om het OpenVPN-protocol te identificeren tussen andere netwerkpakketten, die kunnen worden gebruikt in systemen voor het inspecteren van verkeer om virtuele netwerken op basis van OpenVPN te blokkeren.
Tests van de voorgestelde methoden op het netwerk van de internetprovider Merit, met meer dan een miljoen gebruikers, toonden de mogelijkheid aan om 85% van de OpenVPN-sessies te identificeren met een lage mate van vals-positieven. Voor de verificatie werd een toolbox voorbereid, die aanvankelijk in passieve modus het OpenVPN-verkeer in realtime identificeerde en vervolgens de juistheid van het resultaat bevestigde via actieve servercontrole. Het door de onderzoekers gemaakte analysetool werd gespiegeld aan een verkeersstroom met een intensiteit van ongeveer 20 Gbps.

Tijdens het experiment slaagde de analysetool erin om 1718 van de 2000 test OpenVPN-verbindingen, opgezet door een gemanipuleerd cliƫnt, succesvol te identificeren, waarbij 40 verschillende standaardconfiguraties van OpenVPN werden gebruikt (de methode werkte succesvol voor 39 van de 40 configuraties). Bovendien werden er in acht dagen van experimenten 3638 OpenVPN-sessies in het transitverkeer gedetecteerd, waarvan 3245 sessies werden bevestigd. Het wordt opgemerkt dat de bovengrens van vals-positieven in de voorgestelde methode drie ordes van grootte lager is dan in eerder voorgestelde methoden die zijn gebaseerd op machine learning.
De effectiviteit van de methoden ter bescherming tegen het volgen van OpenVPN-verkeer in commerciële diensten werd afzonderlijk geëvalueerd - uit 41 geteste VPN-diensten die methoden voor het verbergen van OpenVPN-verkeer gebruikten, werd het verkeer in 34 gevallen geïdentificeerd. Diensten die niet konden worden gedetecteerd, gebruikten naast OpenVPN extra lagen voor het verbergen van verkeer (bijvoorbeeld door OpenVPN-verkeer door een extra versleutelde tunnel te leiden). In de meeste succesvol gedetecteerde diensten werd verkeer vervormd met een XOR-bewerking, extra lagen obscuratie zonder adequate willekeurige aanvulling van verkeer, of onverbloemde OpenVPN-diensten op dezelfde. de server.
De gebruikte identificatiemethoden zijn gebaseerd op specifieke OpenVPN-sjablonen in ongecodeerde pakketkoppen, de grootte van ACK-pakketten en serverantwoorden. In het eerste geval kan een koppeling aan het veld "opcode" in de pakketkop als identificatie-object worden gebruikt tijdens de handshakestadium. Dit veld heeft een vaste reeks waarden en verandert op bepaalde manieren afhankelijk van de fase van de verbinding. Identificatie betreft het detecteren van een specifieke sequentie van opcode-wijzigingen in de eerste N-pakketten van de stroom.
De tweede methode is gebaseerd op het feit dat ACK-pakketten in OpenVPN alleen worden gebruikt tijdens de handshakestadium en een specifieke grootte hebben. Identificatie is gebaseerd op het feit dat ACK-pakketten van een bepaalde grootte alleen op specifieke momenten in de sessie voorkomen (bijvoorbeeld, bij gebruik van OpenVPN is het eerste ACK-pakket meestal het derde pakket met gegevens die in de sessie zijn verzonden).

De derde methode is een actieve controle en hangt samen met het feit dat als reactie op een resetverzoek de OpenVPN-server een bepaald RST-pakket verzendt (de controle werkt niet in de "tls-auth"-modus, omdat de OpenVPN-server in dat geval verzoeken van cliƫnten die niet via TLS zijn geauthenticeerd, negeert).

Bron: opennet.ru
