Eine Gruppe von Forschern der Universität Michigan hat die Ergebnisse einer Untersuchung zur Möglichkeit der Identifizierung von OpenVPN-Verbindungen (VPN Fingerprinting) bei der Überwachung des Transitverkehrs veröffentlicht. Dabei wurden drei Methoden zur Identifizierung des OpenVPN-Protokolls unter anderen Netzwerkpaketen entdeckt, die in Systemen zur Verkehrsinspizierung verwendet werden können, um virtuelle Netzwerke auf Basis von OpenVPN zu blockieren.
Die Tests der vorgeschlagenen Methoden im Netzwerk des Internetanbieters Merit, der mehr als eine Million Benutzer zählt, zeigten die Möglichkeit zur Identifizierung von 85 % der OpenVPN-Sitzungen bei nur geringen Fehlalarmen. Zur Überprüfung wurde ein Werkzeug vorbereitet, das zunächst im passiven Modus den OpenVPN-Verkehr in Echtzeit identifizierte und dann die Richtigkeit des Ergebnisses durch aktive Serverüberprüfung bestätigte. Der von den Forschern entwickelte Analysator wurde von einem Verkehrsfluss mit einer Intensität von etwa 20 Gbps gespiegelt.

Im Rahmen des Experiments konnte der Analyzer erfolgreich 1718 von 2000 getesteten OpenVPN-Verbindungen identifizieren, die von einem gefälschten Client eingerichtet wurden, wobei 40 verschiedene Standardkonfigurationen von OpenVPN verwendet wurden (die Methode funktionierte erfolgreich bei 39 von 40 Konfigurationen). Darüber hinaus wurden während der acht Tage des Experiments im Transitverkehr 3638 OpenVPN-Sitzungen festgestellt, von denen 3245 bestätigt wurden. Es wird festgestellt, dass die obere Grenze der Fehlalarme in der vorgeschlagenen Methode um drei Größenordnungen niedriger ist als bei zuvor vorgeschlagenen Methoden, die auf maschinellem Lernen basieren.
Die Leistung der Methoden zum Schutz vor Traffic-Tracking von OpenVPN in kommerziellen Diensten wurde separat bewertet – von 41 getesteten VPN-dienste, die OpenVPN-Traffic-Hiding-Methoden verwenden, konnte der Traffic in 34 Fällen identifiziert werden. Dienste, die nicht entdeckt werden konnten, verwendeten neben OpenVPN zusätzliche Schichten zur Verschleierung des Traffics (zum Beispiel das Weiterleiten von OpenVPN-Traffic durch einen zusätzlichen verschlüsselten Tunnel). Bei den meisten erfolgreich identifizierten Diensten wurde eine Verzerrung des Traffics durch die XOR-Operation, zusätzliche Verschleierungsschichten ohne hinreichende zufällige Ergänzung des Traffics oder die Präsenz nicht verschleierter OpenVPN-Dienste auf derselben verwendet. Server.
Die verwendeten Identifikationsmethoden basieren auf der Bindung an spezifische OpenVPN-Muster in unverschlüsselten Paketkopfdaten, der Größe der ACK-Pakete und den Antworten des Servers. Im ersten Fall kann als Objekt zur Identifizierung in der Phase des Verbindungsaufbaus die Bindung an das Feld „opcode“ im Paketkopf verwendet werden, das einen festen Wertebereich annimmt und sich auf bestimmte Weise je nach Installationsphase der Verbindung ändert. Die Identifizierung besteht darin, eine bestimmte Sequenz von Änderungen des Opcodes in den ersten N-Paketen des Streams zu erkennen.
Die zweite Methode basiert darauf, dass ACK-Pakete in OpenVPN nur während der Aushandlungsphase der Verbindung verwendet werden und dabei eine spezifische Größe haben. Die Identifikation beruht darauf, dass ACK-Pakete dieser Größe nur in bestimmten Teilen der Sitzung vorkommen (zum Beispiel ist im OpenVPN der erste ACK-Paket normalerweise das dritte Paket mit Daten, das in der Sitzung übertragen wird).

Die dritte Methode ist eine aktive Überprüfung und beruht darauf, dass der OpenVPN-Server als Antwort auf eine Anforderung zum Zurücksetzen der Verbindung ein bestimmtes RST-Paket sendet (die Überprüfung funktioniert nicht im Modus „tls-auth“, da der OpenVPN-Server in diesem Fall Anfragen von nicht über TLS authentifizierten Clients ignoriert).

Quelle: opennet.ru
