Un gruppo di ricercatori dell'Università del Michigan ha pubblicato i risultati di uno studio sulla possibilità di identificare le connessioni ai server basati su OpenVPN mediante VPN Fingerprinting durante il monitoraggio del traffico di transito. Sono stati identificati tre metodi per riconoscere il protocollo OpenVPN tra altri pacchetti di rete, utilizzabili in sistemi di ispezione del traffico per bloccare le reti virtuali basate su OpenVPN.
I test dei metodi proposti nella rete del provider di servizi Internet Merit, che conta oltre un milione di utenti, hanno mostrato la possibilità di identificare l'85% delle sessioni OpenVPN con un basso livello di falsi positivi. Per la verifica è stato sviluppato un tool che inizialmente ha rilevato il traffico OpenVPN in modo passivo e successivamente ha confermato la correttezza dei risultati tramite una verifica attiva del server. Il flusso di traffico è stato riflesso sullo strumento analizzatore creato dai ricercatori, con un'intensità di circa 20 Gbps.

Durante l'esperimento, l'analizzatore è riuscito a identificare con successo 1718 di 2000 connessioni OpenVPN di test impostate da un cliente fittizio, utilizzando 40 diverse configurazioni standard di OpenVPN (il metodo ha funzionato con successo per 39 su 40 configurazioni). Inoltre, nei sette giorni dell'esperimento, sono stati rilevati 3638 sessioni OpenVPN nel traffico di transito, di cui 3245 sono state confermate. Si nota che il limite superiore dei falsi positivi nel metodo proposto è tre ordini di grandezza inferiore rispetto ai metodi precedentemente suggeriti, basati su tecniche di apprendimento automatico.
È stata valutata separatamente l'efficacia dei metodi di protezione contro il tracciamento del traffico OpenVPN nei servizi commerciali: su 41 testati VPN-servizio che utilizza metodi di occultamento del traffico OpenVPN, il traffico è stato identificato in 34 casi. I servizi che non sono stati rilevati, oltre a OpenVPN, utilizzavano strati aggiuntivi per mascherare il traffico (ad esempio, instradando il traffico OpenVPN attraverso un ulteriore tunnel crittografato). Nella maggior parte dei servizi identificati con successo veniva utilizzata la distorsione del traffico mediante operazioni XOR, strati di offuscamento aggiuntivi senza un adeguato riempimento casuale del traffico o la presenza di servizi OpenVPN non offuscati sulla stessa server.
I metodi di identificazione utilizzati si basano sul collegamento a schemi specifici di OpenVPN negli header dei pacchetti non crittografati, sulla dimensione dei pacchetti ACK e sulle risposte del server. Nel primo caso, come oggetto per l'identificazione nella fase di negoziazione della connessione, può essere utilizzato il collegamento al campo 'opcode' nell'header dei pacchetti, che assume un intervallo fisso di valori e cambia in modo specifico a seconda della fase di creazione della connessione. L'identificazione si riduce all'individuazione di una particolare sequenza di variazione dell'opcode nei primi N pacchetti del flusso.
Il secondo metodo si basa sul fatto che i pacchetti ACK vengono utilizzati in OpenVPN solo nella fase di negoziazione della connessione e hanno una dimensione specifica. L'identificazione si basa sul fatto che i pacchetti ACK di dimensioni specifiche si trovano solo in determinate parti della sessione (ad esempio, in OpenVPN, il primo pacchetto ACK è di solito il terzo pacchetto con i dati trasmessi nella sessione).

Il terzo metodo è una verifica attiva e si basa sul fatto che in risposta a una richiesta di ripristino della connessione il server OpenVPN invia un pacchetto RST specifico (il controllo non funziona quando si utilizza la modalità «tls-auth» poiché il server OpenVPN ignora le richieste dai client non autenticati tramite TLS).

Fonte: opennet.ru
