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

Im Laufe des Experiments konnte der Analyzer erfolgreich 1718 von 2000 getesteten OpenVPN-Verbindungen identifizieren, die von einem Schein-Client hergestellt wurden, bei dem 40 verschiedene Standardkonfigurationen von OpenVPN verwendet wurden (die Methode funktionierte erfolgreich für 39 von 40 Konfigurationen). Darüber hinaus wurden während der acht Tage des Experiments 3638 OpenVPN-Sitzungen im Transitverkehr identifiziert, von denen 3245 Sitzungen 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.
Separat wurde die Leistung der Methoden zum Schutz vor der Verfolgung des OpenVPN-Verkehrs in kommerziellen Diensten bewertet — von 41 getesteten VPN-Diensten, die Methoden zur Verschleierung des OpenVPN-Verkehrs verwendeten, konnte der Verkehr in 34 Fällen identifiziert werden. Dienste, die nicht erkannt werden konnten, verwendeten zusätzlich zu OpenVPN weitere Schichten zur Verschleierung des Verkehrs (zum Beispiel das Durchleiten des OpenVPN-Verkehrs durch einen zusätzlichen verschlüsselten Tunnel). In den meisten erfolgreich identifizierten Diensten wurde eine Verzerrung des Verkehrs durch eine XOR-Operation verwendet, zusätzliche Schichten der Obfuskation ohne angemessene zufällige Ergänzung des Verkehrs oder die Anwesenheit nicht obfuskierter OpenVPN-Dienste auf demselben Server.
Die verwendeten Identifikationsmethoden basieren auf der Bindung an spezifische OpenVPN-Templates in den unverschlüsselten Paket-Headern, der Größe der ACK-Pakete und den Antworten des Servers. Im ersten Fall kann bei der Aushandlung der Verbindung das Feld "opcode" im Paket-Header als Identifikationsobjekt verwendet werden, das einen festen Wertebereich annimmt und sich entsprechend der Phase des Verbindungsaufbaus verändert. Die Identifizierung besteht darin, eine bestimmte Sequenz der Änderung des opcode in den ersten N-Paketen des Datenstroms zu ermitteln.
Die zweite Methode basiert darauf, dass ACK-Pakete in OpenVPN nur in der Aushandlungsphase der Verbindung verwendet werden und dabei eine spezifische Größe haben. Die Identifizierung erfolgt auf Basis der Tatsache, dass ACK-Pakete mit einer bestimmten Größe nur an bestimmten Stellen der Sitzung auftreten (zum Beispiel ist das erste ACK-Paket in einer OpenVPN-Sitzung üblicherweise das dritte Paket mit Daten, das in der Sitzung übertragen wird).

Die dritte Methode ist eine aktive Überprüfung und hängt damit zusammen, dass der OpenVPN-Server als Antwort auf eine Verbindungsabbauanfrage ein bestimmtes RST-Paket sendet (die Überprüfung funktioniert nicht im "tls-auth"-Modus, da der OpenVPN-Server in diesem Fall Anfragen von nicht über TLS authentifizierten Clients ignoriert).

Quelle: opennet.ru
