OpenVPN vs IKEv2 vs PPTP vs L2TP / IPSec vs SSTP – Guida definitiva alla crittografia VPN

Una rete privata virtuale (VPN) crittografa tutti i dati mentre viaggiano tra il tuo computer e un server VPN. In questa guida completa alla crittografia VPN, esaminiamo in dettaglio cos'è la crittografia e come viene utilizzata nelle connessioni VPN.


Forse soprattutto, spiegheremo la gamma di termini di crittografia utilizzati dai servizi VPN. La nostra speranza è che, dopo aver letto questo documento, avrete una maggiore comprensione di questo argomento complesso e che sarete in grado di valutare meglio le dichiarazioni di sicurezza fatte dai provider VPN.

Preliminari

Se non sei sicuro di cosa sia una VPN e cosa si possa fare per te, dai un'occhiata alla nostra VPN per la guida per principianti.

Il nostro obiettivo è presentare le funzionalità chiave della crittografia VPN nel modo più semplice possibile. Anche se non c'è modo di scappare, dal fatto che la crittografia è un argomento complesso.

Se anche il termine crittografia fa sì che i tuoi occhi inizino a vetrare, ma vuoi comunque sapere cosa cercare in un buon servizio VPN, puoi saltare direttamente ai riepiloghi.

Che cos'è la crittografia?

Inizia dall'inizio," disse il re, molto gravemente, "e vai avanti fino alla fine: poi fermati. "

Lewis Carroll, Alice nel paese delle meraviglie

L'analogia più semplice è che la crittografia è un blocco. Se hai la chiave corretta, la serratura è facile da aprire. Se qualcuno non ha la chiave corretta ma desidera accedere al contenuto di una cassaforte (ovvero i tuoi dati) protetta da quel blocco, può provare a rompere il blocco.

Allo stesso modo in cui il lucchetto che fissa un caveau di una banca è più forte di quello che protegge una valigia, un po 'di crittografia è più forte di un altro.

Le basi

Quando eri un bambino, hai giocato al gioco in cui hai creato un "messaggio segreto" sostituendo una lettera del messaggio con un'altra? La sostituzione è stata effettuata secondo una formula scelta da te.

Ad esempio, potresti aver sostituito ogni lettera del messaggio originale con una tre lettere dietro l'alfabeto. Se qualcun altro sapesse quale fosse questa formula, o fosse in grado di elaborarla, sarebbe in grado di leggere il tuo "messaggio segreto".

Nel gergo della crittografia, quello che stavi facendo era "crittografare" il messaggio (dati) secondo un algoritmo matematico molto semplice. I crittografi si riferiscono a questo algoritmo come a un "codice". Per decrittografarlo, è necessaria la chiave. Questo è un parametro variabile che determina l'output finale della cifra. Senza questo parametro, è impossibile decrittografare la cifra.

Se qualcuno vuole leggere un messaggio crittografato ma non ha la chiave, allora deve provare a "decifrare" la cifra. Quando la crittografia utilizza una semplice cifra di sostituzione delle lettere, decifrarla è semplice. La crittografia può essere resa più sicura, tuttavia, rendendo l'algoritmo matematico (la cifra) più complesso.

Ad esempio, è possibile sostituire ogni terza lettera del messaggio con un numero corrispondente alla lettera.

Lunghezza della chiave di crittografia

I codici informatici moderni sono algoritmi molto complessi. Anche con l'aiuto dei supercomputer, questi sono molto difficili da decifrare, se non impossibili per tutti gli scopi pratici. Il modo più grossolano per misurare la forza di un codice è la complessità dell'algoritmo utilizzato per crearlo.

Più complesso è l'algoritmo, più difficile è la cifra da decifrare usando un attacco di forza bruta. Questo attacco di forma molto primitivo è anche noto come una ricerca chiave esaustiva. Fondamentalmente implica provare ogni combinazione di numeri possibile fino a quando non viene trovata la chiave corretta.

I computer eseguono tutti i calcoli utilizzando numeri binari: zero e uno. La complessità di un codice dipende dalla sua dimensione della chiave in bit - il numero grezzo di uno e zero necessari per esprimere il suo algoritmo, dove ogni zero o uno è rappresentato da un singolo bit.

Questa è nota come lunghezza della chiave e rappresenta anche la fattibilità pratica di eseguire con successo un attacco di forza bruta su un dato codice.

Il numero di combinazioni possibili (e quindi la difficoltà a forzarle brutalmente) aumenta esponenzialmente con la dimensione della chiave. Utilizzando il codice AES (vedi più avanti):

Dimensioni chiave

Per metterlo in prospettiva:

  • Nel 2011 il supercomputer più veloce del mondo era il Fujitsu K. Questo era in grado di raggiungere una velocità di picco Rmax di 10,51 petaflop. Sulla base di questa cifra, Fujitsu K impiegherebbe 1,02 x 10 ^ 18 - circa un miliardo di miliardi (un quintilione) - anni per forzare una chiave AES (Advanced Encryption Standard) a 128 bit con la forza. Questo è più vecchio dell'età dell'universo (13,75 miliardi di anni).
  • Il supercomputer più potente al mondo ora (2017) è il Sunway TaihuLight in Cina. Questa bestia è in grado di raggiungere una velocità di picco di 93,02 petaflop. Ciò significa che il computer più potente del mondo impiegherebbe ancora circa 885 quadrilioni di anni per forzare una chiave AES a 128 bit.
  • Il numero di operazioni richieste per forzare una cifra a 256 bit è di 3,31 x 10 ^ 56. Questo è all'incirca uguale al numero di atomi nell'universo!

Computer Cipher

Mentre la lunghezza della chiave di crittografia si riferisce alla quantità di numeri grezzi coinvolti, le cifre sono la matematica - le formule o gli algoritmi effettivi - utilizzata per eseguire la crittografia. Come abbiamo appena visto, forzare brutalmente i moderni codici informatici è estremamente impraticabile.

Sono i punti deboli (a volte intenzionali) in questi algoritmi di cifratura che possono portare alla rottura della crittografia. Questo perché l'output del codice (progettato in modo errato) può ancora rivelare una struttura dalle informazioni originali prima della crittografia. Questo crea una serie ridotta di possibili combinazioni da provare, che in effetti riduce la lunghezza effettiva della chiave.

Il codice Blowfish, ad esempio, è vulnerabile a un attacco che sfrutta la matematica alla base del problema del compleanno nella teoria della probabilità. Lo studio delle debolezze negli algoritmi crittografici è noto come crittoanalisi.

Le lunghezze chiave più lunghe compensano tali punti deboli, poiché aumentano notevolmente il numero di possibili risultati.

Invece di attaccare la cifra stessa, un avversario può attaccare la chiave stessa. Ciò può influire su un determinato sito o un determinato prodotto software. Ma la sicurezza dell'algoritmo di cifratura è ancora intatta e altri sistemi che utilizzano lo stesso algoritmo ma hanno una generazione sicura di chiavi non sono interessati dall'interruzione.

Lunghezza chiave cifrata

La forza di una cifra dipende sia dalla matematica della cifra stessa, sia dalla lunghezza della chiave espressa in bit. Per questo motivo, le cifre sono di solito descritte insieme alla lunghezza della chiave utilizzata.

Quindi AES-256 (la cifra AES con una lunghezza della chiave di 256 bit) è generalmente considerata più forte di AES-128. Nota che di solito dico perché qui abbiamo a che fare con una matematica molto complessa (vedi le mie note su AES più avanti).

Nota Icona2 01 150X150

È importante notare che la lunghezza della chiave da sola non è un buon indicatore della forza di un codice. È la combinazione di lunghezza chiave e cifra che conta. I cifrari utilizzati per la crittografia asimmetrica, ad esempio, utilizzano dimensioni di chiave molto più lunghe rispetto a quelle utilizzate per la crittografia simmetrica per fornire la protezione equivalente.

Confronto dimensioni chiave

Questa tabella è un po 'obsoleta, in quanto non tiene conto degli attacchi più recenti scoperti su RSA. Vale anche la pena notare che la curva ellittica e le varianti Diffie-Hellman di RSA sono molto più forti di quelle tradizionali. Ma spero che tu abbia l'idea.

Nota Icona2 01 150X150

Una cosa da notare è che maggiore è la lunghezza della chiave, maggiore è il calcolo, quindi maggiore è la potenza di elaborazione necessaria. Ciò influisce sulla velocità con cui i dati possono essere crittografati e decrittografati. I provider VPN e simili devono, quindi, decidere il modo migliore per bilanciare sicurezza e usabilità pratica nella scelta degli schemi di crittografia.

Discuteremo le cifre principali utilizzate dai vari protocolli VPN un po 'più tardi, ma le cifre più comuni che probabilmente incontrerai sono Blowfish e AES. Inoltre, RSA viene utilizzato per crittografare e decrittografare le chiavi di un codice e SHA-1 o SHA-2 viene utilizzato come funzione hash per autenticare i dati.

Crittografia asimmetricaCrittografia asimmetrica

Segretezza diretta in avanti

Perfect Forward Secrecy (PFS) è anche indicato come l'utilizzo di chiavi di crittografia effimere, o semplicemente Forward Secrecy (FS) da parte di coloro che non si sentono a proprio agio con l'uso della parola "perfetto".

La più moderna comunicazione sicura online si basa su SSL / TLS. È utilizzato dai siti Web HTTPS e dal protocollo OpenVPN. TLS (Transport Layer Security) è un protocollo di crittografia asimmetrico. L'uso di una cifra asimmetrica significa che i dati sono protetti usando una chiave pubblica, che è resa disponibile a tutti. Può essere decrittografato, tuttavia, solo da un destinatario previsto che detiene la chiave privata corretta.

Questa chiave privata deve essere mantenuta segreta. Se viene rubato o incrinato da un avversario, quell'avversario può facilmente intercettare e leggere qualsiasi comunicazione protetta da esso.

Sfortunatamente, è comune per i server o anche intere aziende utilizzare solo una chiave di crittografia privata per proteggere tutte le comunicazioni. Perché? Perché è facile. Tuttavia, se tale chiave viene compromessa, un utente malintenzionato può accedere a tutte le comunicazioni crittografate con essa.

Questa chiave di crittografia privata, pertanto, diventa una "chiave master" che può essere utilizzata per sbloccare tutte le comunicazioni con un server o un'azienda. È noto che l'NSA ha sfruttato questa debolezza per raccogliere ampie risme di dati apparentemente sicuri.

La soluzione è Perfect Forward Secrecy. Questo è un sistema in base al quale viene generata una nuova e unica chiave di crittografia privata per ogni sessione. È un'idea semplice, anche se la matematica di scambio Diffie-Hellman è complessa. Significa che ogni sessione TLS ha il proprio set di chiavi. Da qui il termine "chiavi effimere": vengono usate una volta e poi scompaiono.

Pertanto, non esiste una "chiave master" che può essere sfruttata. Anche se una sessione è compromessa, è solo quella sessione a essere compromessa - non tutte le altre sessioni che qualcuno ha con quel server o società!

Sebbene non comune, è anche possibile aggiornare le chiavi PFS all'interno di una sessione (ad esempio, ogni ora). Ciò limita ulteriormente la quantità di dati che possono essere intercettati da un avversario, anche se una chiave privata è compromessa.

Quando ho scritto questo articolo sull'argomento qualche anno fa, l'uso di Perfect Forward Secrecy sia per i siti Web HTTPS che per le connessioni OpenVPN era tristemente raro. Fortunatamente, questa situazione è leggermente cambiata. Sebbene non sia affatto universale, l'uso di chiavi effimere è notevolmente aumentato negli ultimi tempi.

Protocolli di crittografia VPN

Un protocollo VPN è l'insieme di istruzioni (meccanismo) utilizzato per negoziare una connessione crittografata sicura tra due computer. Alcuni di questi protocolli VPN sono comunemente supportati dai servizi VPN commerciali. I più importanti di questi sono PPTP, L2TP / IPSec, OpenVPN, SSTP e IKEv2.

Guardo ciascuno di questi sotto, ma OpenVPN è ora il protocollo VPN standard del settore utilizzato dai servizi VPN commerciali - per una buona ragione. È molto sicuro e può essere utilizzato su quasi tutti i dispositivi compatibili con VPN. Spenderò quindi ulteriore inchiostro digitale a discutere di OpenVPN in dettaglio.

PPTP

PROFESSIONISTI

  • Client integrato in quasi tutte le piattaforme
  • Molto facile da configurare

CONS

  • Molto insicuro
  • Decisamente compromesso dalla NSA
  • Facilmente bloccato

Cos'è il PPTP?

È solo un protocollo VPN e si basa su vari metodi di autenticazione per fornire sicurezza. Tra i provider VPN commerciali, questo è quasi invariabilmente MS-CHAP v2. Il protocollo di crittografia (simile a un codice standard) utilizzato da PPTP è Microsoft Point-to-Point Encryption (MPPE).

Il protocollo PPTP (Point-to-Point Tunneling Protocol) è stato sviluppato da un consorzio fondato da Microsoft per la creazione di VPN su reti dial-up. Come tale, PPTP è stato a lungo il protocollo standard per le reti VPN aziendali.

PPTP è disponibile di serie su quasi tutte le piattaforme e tutti i dispositivi VPN. È facile da configurare, senza la necessità di installare software aggiuntivo. Ciò garantisce che PPTP rimanga una scelta popolare sia per le VPN aziendali che per i servizi VPN commerciali.

Ha anche il vantaggio di richiedere un sovraccarico computazionale basso da implementare ... quindi è veloce!

Sfortunatamente, PPTP non è sicuro. Affatto. Sebbene ora di solito venga rilevato solo utilizzando le chiavi di crittografia a 128 bit, negli anni trascorsi da quando è stato fornito in bundle con Windows 95 OSR2 nel 1999, sono emerse diverse vulnerabilità della sicurezza.

Il più grave di questi è la possibilità di autenticazione MS-CHAP v2 non incapsulata. Utilizzando questo exploit, PPTP è stato decifrato entro due giorni. Microsoft ha corretto il difetto, ma ha emesso una raccomandazione per utilizzare L2TP / IPsec o SSTP.

Non dovrebbe sorprendere che l'NSA decodifichi quasi certamente le comunicazioni crittografate PPTP di serie. Ancora più preoccupante è che la NSA ha raccolto enormi quantità di dati più vecchi che sono stati crittografati quando PPTP era considerato sicuro. Quasi sicuramente può anche decrittografare questi dati legacy.

PPTP richiede sia la porta TCP 1723 sia il protocollo GRE. È facile firewall GRE, il che rende facile bloccare le connessioni PPTP.

L2TP / IPsec

  • Di solito considerato sicuro (ma vedi Contro)
  • Facile da configurare
  • Disponibile su tutte le piattaforme moderne
  • Più veloce di OpenVPN (forse)
  • Può essere compromesso dall'NSA (non provato)
  • Probabilmente indebolito deliberatamente dall'NSA (non dimostrato)
  • Può lottare con firewall restrittivi
  • Spesso implementato male

Cosa sono L2TP e IPsec?

Il protocollo L2TP (Layer 2 Tunneling Protocol) è integrato in quasi tutti i sistemi operativi e dispositivi VPN moderni. È quindi facile e veloce da configurare come PPTP.

Di per sé, L2TP non fornisce alcuna crittografia o riservatezza al traffico che lo attraversa, quindi di solito viene implementato con la suite di autenticazione IPsec (L2TP / IPsec). Anche se un provider si riferisce solo a L2TP o IPsec (come alcuni fanno), quasi sicuramente significa L2TP / IPSec.

L2TP / IPsec può utilizzare le cifre 3DES o AES. 3DES è vulnerabile agli attacchi di collisione Meet-in-the-middle e Sweet32, quindi in pratica è improbabile che tu li incontri in questi giorni.

Possono sorgere problemi perché il protocollo L2TP / IPSec utilizza solo un numero limitato di porte. Ciò può causare complicazioni se utilizzato dietro i firewall NAT. Questa dipendenza da porte fisse rende anche il protocollo abbastanza facile da bloccare.

L2TP / IPsec incapsula i dati due volte, il che rallenta le cose. Ciò è compensato dal fatto che la crittografia / decrittografia si verifica nel kernel e L2TP / IPsec consente il multi-threading. OpenVPN no. Il risultato è che L2TP / IPsec è teoricamente più veloce di OpenVPN.

L2TP / IPsec che utilizza il codice AES non presenta importanti vulnerabilità note e, se implementate correttamente, possono comunque essere sicure. Tuttavia, le rivelazioni di Edward Snowden hanno fortemente suggerito che lo standard è stato compromesso dalla NSA.

John Gilmore è uno specialista della sicurezza e membro fondatore della Electronic Frontier Foundation. Spiega, è probabile che IPSec sia stato deliberatamente indebolito durante la sua fase di progettazione.

Un problema probabilmente molto più grande è che molti servizi VPN implementano male L2TP / IPsec. In particolare, usano chiavi pre-condivise (PSK) che possono essere scaricate liberamente dai loro siti Web.

Questi PSK vengono utilizzati solo per autenticare la connessione, quindi anche se compromessi, i dati rimangono crittografati in modo sicuro tramite AES. Un utente malintenzionato può tuttavia utilizzare la chiave precondivisa per rappresentare un server VPN. Potrebbe quindi intercettare il traffico crittografato o persino iniettare dati dannosi nella connessione.

Nota Icona2 01 150X150

Sommario

Nonostante alcuni problemi in gran parte teorici, L2TP / IPsec è generalmente considerato sicuro se non vengono utilizzate chiavi pre-condivise pubblicamente pubblicate. La sua compatibilità integrata con molti dispositivi può renderla un'ottima scelta.

PROFESSIONISTI

  • Molto sicuro
  • Completamente integrato in Windows
  • Supporto Microsoft
  • Può bypassare la maggior parte dei firewall

CONS

  • Standard proprietario di proprietà di Microsoft

Cos'è SSTP?

SSTP è un tipo di crittografia che utilizza SSL 3.0 e offre vantaggi simili a OpenVPN. Ciò include la possibilità di utilizzare la porta TCP 443 per eludere la censura. La stretta integrazione con Windows può renderlo più facile da usare e più stabile di OpenVPN su quella piattaforma.

A differenza di OpenVPN, tuttavia, SSTP è uno standard proprietario di proprietà di Microsoft. Ciò significa che il codice non è aperto al controllo pubblico. La storia di Microsoft nella collaborazione con l'NSA e le speculazioni su possibili backdoor integrate nel sistema operativo Windows non ispirano fiducia nello standard.

Il protocollo SSTP (Secure Socket Tunneling Protocol) è stato introdotto da Microsoft in Windows Vista SP1. Sebbene sia ora disponibile per Linux e persino per Mac OS X, è ancora principalmente una piattaforma solo per Windows.

Un altro problema è che SSL v3.0 è vulnerabile a ciò che è noto come l'attacco POODLE, e ora quindi non è raccomandato. Non è chiaro se questo problema riguardi anche SSTP, ma ancora una volta non ispira fiducia.

Nota Icona2 01 150X150

Sommario

Sulla carta, SSTP offre molti dei vantaggi di OpenVPN. Essere uno standard Microsoft proprietario, tuttavia, compromette gravemente la sua credibilità.

IKEv2

PROFESSIONISTI

  • Veloce
  • Stabile, soprattutto quando si cambia rete o si riconnette dopo una connessione Internet persa
  • Sicuro (se si utilizza AES)
  • Facile da configurare (almeno a livello di utente!)
  • Il protocollo è supportato sui dispositivi Blackberry

CONS

  • Non supportato su molte piattaforme
  • L'implementazione di IKEv2 sul lato server è complicata, il che potrebbe potenzialmente comportare lo sviluppo di problemi
  • Fidati solo delle implementazioni open source

Cos'è IKEv2?

Internet Key Exchange versione 2 (IKEv2) è stato sviluppato congiuntamente da Microsoft e Cisco. È supportato nativamente da dispositivi Windows 7+, Blackberry e iOS. Questo è il motivo per cui molti servizi VPN iOS utilizzano IKEv2 invece di OpenVPN.

Sono state sviluppate versioni compatibili sviluppate indipendentemente di IKEv2 per Linux e altri sistemi operativi. Molte di queste iterazioni sono open source. Come sempre, suggerisco di diffidare di qualsiasi cosa sviluppata da Microsoft. Le versioni open source di IKEv2, tuttavia, non dovrebbero avere problemi.

IKEv2 fa parte della suite di protocolli IPsec. Garantisce che il traffico sia protetto consegnando l'attributo SA (Security Association) all'interno di IPsec e migliora su IKEv1 in molti modi. IKEv2 viene quindi talvolta definito IKEv2 / IPsec. IKEv1, d'altra parte, viene spesso definito semplicemente IPsec.

Soprannominato VPN Connect da Microsoft, IKEv2 è particolarmente bravo a ristabilire automaticamente una connessione VPN quando gli utenti perdono temporaneamente le loro connessioni Internet. Ad esempio, quando si entra o esce da un tunnel del treno.

Grazie al suo supporto per il protocollo Mobility e Multihoming (MOBIKE), IKEv2 è anche altamente resistente ai cambiamenti delle reti. Ciò rende IKEv2 un'ottima scelta per gli utenti di telefoni cellulari che passano regolarmente tra connessioni WiFi domestiche e connessioni mobili o che si spostano regolarmente tra gli hotspot.

IKEv2 non è così comune come L2TP / IPSec in quanto è supportato su molte meno piattaforme (sebbene questa situazione stia cambiando rapidamente). Tuttavia, è considerato almeno buono quanto, se non superiore a, L2TP / IPsec in termini di sicurezza, prestazioni (velocità), stabilità e capacità di stabilire (e ristabilire) una connessione.

OpenVPN

PROFESSIONISTI

  • Molto sicuro (se si utilizza PFS)
  • Altamente configurabile
  • Open-source
  • Può bypassare i firewall
  • Richiede software di terze parti

Cos'è OpenVPN?

OpenVPN è una tecnologia open source che utilizza la libreria OpenSSL e i protocolli TLS, insieme a un insieme di altre tecnologie, per fornire una soluzione VPN forte e affidabile. Ora è il protocollo VPN standard del settore utilizzato dai servizi VPN commerciali - per una buona ragione.

Uno dei principali punti di forza di OpenVPN è che è altamente configurabile. È supportato nativamente da nessuna piattaforma, ma è disponibile sulla maggior parte delle piattaforme tramite software di terze parti. I client e le app OpenVPN personalizzati sono spesso disponibili dai singoli provider VPN, ma il codice open source principale è sviluppato dal progetto OpenVPN.

Molti sviluppatori e collaboratori del progetto OpenVPN lavorano anche per OpenVPN Technologies Inc., che supervisiona il progetto.

OpenVPN funziona meglio su una porta UDP, ma può essere impostato per funzionare su qualsiasi porta (vedi note più avanti). Ciò include la porta TCP 443, utilizzata dal normale traffico HTTPS. L'esecuzione di OpenVPN sulla porta TCP 443 rende difficile distinguere le connessioni VPN dal tipo di connessioni sicure utilizzate da banche, servizi di posta elettronica e rivenditori online. Questo rende OpenVPN molto difficile da bloccare.

Un altro vantaggio di OpenVPN è che la libreria OpenSSL utilizzata per fornire la crittografia supporta un numero di cifre. In pratica, tuttavia, solo Blowfish e AES sono comunemente utilizzati dai servizi VPN commerciali. Ne discuto di seguito.

Alla luce delle informazioni ottenute da Edward Snowden, sembra che fino a quando si utilizza Perfect Forward Secrecy, OpenVPN non sia stato compromesso o indebolito dalla NSA.

Un recente audit crowdsourcing di OpenVPN è ora completo, così come un altro finanziato da Private Internet Access. Non sono state scoperte gravi vulnerabilità che incidono sulla privacy degli utenti. Sono state scoperte un paio di vulnerabilità che hanno reso i server OpenVPN potenzialmente aperti a un attacco Denial of Service (DoS), ma questi sono stati corretti in OpenVPN 2.4.2.

OpenVPN è generalmente considerato il protocollo VPN più sicuro disponibile ed è ampiamente supportato nel settore VPN. Discuterò quindi di seguito la crittografia OpenVPN in dettaglio.

Crittografia OpenVPN

La crittografia OpenVPN comprende due parti: crittografia del canale dati e crittografia del canale di controllo. La crittografia del canale dati viene utilizzata per proteggere i tuoi dati. La crittografia del canale di controllo protegge la connessione tra il computer e il server VPN.

Ogni difesa è forte tanto quanto il suo punto più debole, quindi è un peccato che alcuni provider VPN utilizzino una crittografia molto più forte su un canale rispetto all'altro (di solito più forte sul canale di controllo).

Non è insolito, ad esempio, vedere un servizio VPN pubblicizzato come utilizzando un codice AES-256 con crittografia handshake RSA-4096 e autenticazione hash SHA-512. Sembra impressionante fino a quando non ti rendi conto che si riferisce solo alla crittografia del canale di controllo e non al canale di dati, che è crittografato con Blowfish-128 con autenticazione hash SHA1. Questo viene fatto solo per motivi di marketing.

Se viene utilizzata una crittografia diversa sui canali dati e di controllo, la vera forza della connessione OpenVPN viene misurata dalla suite di crittografia più debole utilizzata.

Per la massima sicurezza, la crittografia dei dati e dei canali di controllo dovrebbe essere il più efficace possibile. Tuttavia, più forte è la crittografia utilizzata, più lenta sarà la connessione, motivo per cui alcuni provider si scontrano sulla crittografia del canale dati.

La crittografia del canale di controllo è anche chiamata crittografia TLS perché TLS è la tecnologia utilizzata per negoziare in modo sicuro la connessione tra il computer e il server VPN. Questa è la stessa tecnologia utilizzata dal browser per negoziare in modo sicuro una connessione a un sito Web crittografato HTTPS.

  • La crittografia del canale di controllo consiste in una crittografia, una crittografia stretta di mano e un'autenticazione hash.
  • La crittografia del canale dati consiste in una crittografia e un'autenticazione hash.

I provider VPN utilizzano spesso lo stesso livello di crittografia sia per i canali di controllo che per i dati. Nelle nostre recensioni e tabelle "semaforo", li elenchiamo separatamente solo se per ciascun canale vengono utilizzati valori diversi.

Se affermiamo che un provider utilizza un codice AES-256, ciò significa che viene utilizzato un codice AES-256 sia per il controllo che per i canali di dati. *

(* Questo dovrebbe essere il caso, almeno. Alcune revisioni legacy non soddisfano le nostre attuali linee guida, ma queste dovrebbero essere gradualmente eliminate).

Ciphers

OpenVPN può utilizzare una serie di cifre a chiave simmetrica per proteggere i dati su entrambi i canali di controllo e dei dati. In pratica, gli unici utilizzati dai provider VPN commerciali sono Blowfish, AES e (molto raramente) Camellia.

Blowfish

Blowfish-128 è la cifra predefinita utilizzata da OpenVPN. Le dimensioni delle chiavi possono in teoria variare da 32 bit a 448 bit, ma Blowfish-128 è l'unica versione che probabilmente incontrerai in natura.

Blowfish è spesso considerato abbastanza sicuro per scopi casuali, ma ha conosciuto debolezze. È stato creato dal famoso crittografo Bruce Schneier, che nel 2007 ha dichiarato: "A questo punto, però, sono sorpreso che sia ancora in uso".

A nostro avviso, l'uso di Blowfish-128 è accettabile come seconda linea di difesa sul canale dati OpenVPN. Tuttavia, non dovrebbe essere considerato sicuro se utilizzato sul canale di controllo.

AES

AES è diventato la cifra chiave simmetrica "gold standard" in tutto il settore VPN. AES è certificato NIST ed è quasi universalmente considerato molto sicuro. AES-256 è utilizzato dal governo degli Stati Uniti per proteggere i dati "sicuri".

Il fatto che abbia una dimensione di blocco di 128 bit anziché la dimensione di blocco di 64 bit di Blowfish significa anche che è in grado di gestire file più grandi (oltre 4 GB) meglio di Blowfish. Inoltre, le istruzioni AES beneficiano dell'accelerazione hardware integrata sulla maggior parte delle piattaforme.

AES è in genere disponibile nelle dimensioni di chiave a 128 e 256 bit (esiste anche AES a 192 bit). AES-128 rimane sicuro per quanto ne sappia chiunque. Dato ciò che ora sappiamo sull'entità dell'assalto dell'NSA agli standard di crittografia, tuttavia, la maggior parte degli esperti concorda sul fatto che AES-256 offre un margine di sicurezza più elevato.

Solo per garantire che nessuno trovi mai questo argomento troppo facile, tuttavia, c'è qualche dibattito su questo tema. AES-128 ha un programma chiave più forte di AES-256, il che porta alcuni eminenti esperti a sostenere che AES-128 è in realtà più forte di AES-256.

Il consenso generale, tuttavia, è che AES-256 è più forte.

Camelia

La camelia è un codice sicuro moderno ed è sicuro e veloce almeno quanto AES. È disponibile nelle dimensioni chiave di 128, 192 e 256 bit. Grazie alla certificazione NIST e al suo utilizzo da parte del governo degli Stati Uniti, tuttavia, AES viene quasi sempre utilizzato al posto della Camelia.

Ma come discuterò di seguito, ci sono ragioni per non fidarsi delle cifre certificate NIST. Il fatto che Camellia sia un codice non NIST è il motivo principale per sceglierlo su AES. Questa opzione è tuttavia disponibile solo raramente.

Vale anche la pena notare che la camelia non è così ben testata per la debolezza di AES.

Crittografia della stretta di mano

Per negoziare in modo sicuro una connessione tra il dispositivo e un server VPN, OpenVPN utilizza un handshake TLS. Ciò consente al client OpenVPN e al server VPN di stabilire le chiavi segrete con cui comunicano.

Per proteggere questa stretta di mano, TLS di solito utilizza il cryptosystem a chiave pubblica RSA. Si tratta di un algoritmo di crittografia e firma digitale utilizzato per identificare i certificati TLS / SSL. Tuttavia, può anche utilizzare uno scambio di chiavi Diffie-Hellman o ECDH.

RSA

RSA è un sistema di crittografia asimmetrico: una chiave pubblica viene utilizzata per crittografare i dati, ma una chiave privata diversa viene utilizzata per decrittografarli. È stata la base per la sicurezza su Internet negli ultimi 20 anni circa.

È ormai noto che RSA con una lunghezza della chiave di 1024 bit (RSA-1024) o inferiore non è sicuro ed è quasi certamente stato violato dall'NSA. Di conseguenza c'è stata una mossa concordata tra le società Internet per migrare da RSA-1024.

Sfortunatamente, continuiamo a ritenere che alcuni servizi VPN continuino a utilizzare RSA-1024 per proteggere le strette di mano. Questo non è un bene.

RSA-2048 e successivi sono ancora considerati sicuri. Di per sé, RSA non fornisce Perfect Forward Secrecy (PFS). Ciò può tuttavia essere implementato includendo uno scambio di chiavi Diffie-Hellman (DH) o curva ellittica Diffie-Hellman (ECDH) nella sua suite di cifratura.

In questo caso, la forza della chiave DH o ECDH non ha importanza in quanto viene utilizzata solo per fornire il segreto perfetto in avanti. La connessione è protetta tramite RSA.

Poiché può causare confusione, noterò anche che il sistema crittografico RSA non ha nulla a che fare con la disonesta società tecnologica statunitense RSA Security LLC. Questa società ha indebolito deliberatamente i suoi prodotti di punta per la crittografia BSAFE dopo essere stata corrotta da $ 10 milioni dalla NSA.

Diffie-Hellman ed ECDH

Una crittografia alternativa (rivale) della stretta di mano che viene talvolta utilizzata da OpenVPN è lo scambio di chiavi crittografiche Diffie-Hellman (DH). Questo di solito ha una lunghezza della chiave di 2048 bit o 4096 bit. Si noti che qualsiasi cosa inferiore a DH-2048 dovrebbe essere evitata a causa della suscettibilità all'attacco logjam.

Il vantaggio principale di una stretta di mano Diffie-Hellman rispetto a RSA è che fornisce in modo nativo Perfect Forward Secrecy. Come già notato, tuttavia, semplicemente aggiungendo uno scambio di chiavi DH a una stretta di mano RSA si ottiene un risultato simile.

Diffie-Hellman ha causato enormi polemiche sul suo riutilizzo di un numero limitato di numeri primi. Questo lo rende vulnerabile al crack di un potente avversario, come l'NSA. Diffie-Hellman da solo, quindi, non garantisce la crittografia sicura dell'handshake. Va bene, tuttavia, se utilizzato come parte di una suite di crittografia RSA.

La curva ellittica Diffie-Hellman (ECDH) è una nuova forma di crittografia che non è vulnerabile a questo attacco. Questo perché utilizza le proprietà di un particolare tipo di curva algebrica anziché numeri primi di grandi dimensioni per crittografare le connessioni.

ECDH può essere utilizzato come parte di una stretta di mano RSA per fornire Perfect Forward Secrecy o può crittografare in modo sicuro una stretta di mano da sola (con una firma ECDSA). Questo fornisce anche PFS.

La lunghezza della chiave ECDH inizia a 384 bit. Questo è considerato sicuro, ma se usato da solo per proteggere una stretta di mano TLS, più lungo è, meglio è (in termini di sicurezza, comunque).

Autenticazione Hash SHA

Questo è anche indicato come autenticazione dei dati o codice di autenticazione dei messaggi hash (HMAC).

Secure Hash Algorithm (SHA) è una funzione hash crittografica utilizzata (tra le altre cose) per autenticare i dati e le connessioni SSL / TLS. Ciò include le connessioni OpenVPN.

Crea un'impronta digitale univoca di un certificato TLS valido, che può essere convalidato da qualsiasi client OpenVPN. Anche il più piccolo cambiamento è rilevabile. Se il certificato viene manomesso, questo verrà immediatamente rilevato e la connessione verrà rifiutata.

Questo è importante per prevenire un attacco Man-in-the-middle (MitM), in cui un avversario tenta di deviare la tua connessione OpenVPN su uno dei suoi server anziché sul tuo provider VPN. Potrebbe farlo, ad esempio, hackerando il router.

Se un avversario può rompere l'hash del certificato TLS originale del tuo provider, può invertire l'hash per creare un certificato contraffatto. Il tuo software Open VPN autenticherebbe quindi la connessione come autentica.

SHA è sicuro?

Se utilizzato per proteggere i siti Web HTTPS, SHA-1 è danneggiato. Questo è noto da tempo. I siti web SHA-1 possono ancora essere trovati, ma vengono gradualmente eliminati. La maggior parte dei browser ora emetterà un avviso quando si tenta di connettersi a un sito Web protetto con SHA-1.

Le funzioni hash SHA-2 e SHA-3 sono ora consigliate invece e sono sicure. SHA-2 include SHA-256, SHA-384 e SHA-512. Tuttavia…

OpenVPN utilizza solo SHA per HMAC. Non penso che sia utile entrare in troppi dettagli qui, ma l'autenticazione hash SHA fa parte dell'algoritmo HMAC. Attaccare HMAC incorporato con SHA-1 è molto più difficile che attaccare semplicemente la funzione hash SHA-1 stessa.

In altre parole, HMAC SHA-1 utilizzato da OpenVPN è considerato sicuro e ne esistono prove matematiche. Naturalmente, HMAC SHA-2 e HMAC SHA-3 sono ancora più sicuri! In effetti, il recente audit OpenVPN riconosce che HMAC SHA-1 è sicuro, ma raccomanda invece di passare a HMAC SHA-2 o HMAC SHA-3.

Appunti

NIST

AES, RSA, SHA-1 e SHA-2 sono stati tutti sviluppati e / o certificati dal National Institute of Standards and Technology (NIST) degli Stati Uniti. Questo è un organo che per sua stessa ammissione lavora a stretto contatto con l'NSA nello sviluppo delle sue cifre.

Dato ciò che ora sappiamo degli sforzi sistematici dell'NSA per indebolire o integrare backdoor negli standard internazionali di crittografia, ci sono tutte le ragioni per mettere in dubbio l'integrità degli algoritmi NIST.

Il NIST, ovviamente, respinge fortemente tali accuse:

"Il NIST non indebolirebbe deliberatamente uno standard crittografico."

Ha anche invitato la partecipazione del pubblico a una serie di imminenti standard di crittografia proposti, in una mossa progettata per rafforzare la fiducia del pubblico.

Il New York Times, tuttavia, ha accusato la NSA di eludere gli standard di crittografia approvati dal NIST introducendo backdoor non rilevabili o sovvertendo il processo di sviluppo pubblico per indebolire gli algoritmi.

Questa sfiducia è stata ulteriormente rafforzata quando RSA Security (una divisione di EMC) ha detto privatamente ai clienti di smettere di usare un algoritmo di crittografia che secondo come riferito contiene un difetto progettato dalla NSA. Anche questo algoritmo è stato approvato dal NIST.

Inoltre, Dual_EC_DRBG (generatore di bit casuale deterministico a doppia curva ellittica) è uno standard di crittografia progettato da NIST. È stato conosciuto per essere insicuro per anni.

Nel 2006 l'Università della tecnologia di Eindhoven nei Paesi Bassi ha notato che un attacco contro di essa era abbastanza facile da lanciare su "un normale PC". Gli ingegneri Microsoft hanno anche segnalato un sospetto backdoor nell'algoritmo.

Nonostante queste preoccupazioni, dove conduce il NIST, l'industria segue. Microsoft, Cisco, Symantec e RSA includono tutti l'algoritmo nelle librerie crittografiche dei loro prodotti. Ciò è in gran parte perché la conformità agli standard NIST è un prerequisito per ottenere contratti con il governo degli Stati Uniti.

Gli standard crittografici certificati NIST sono praticamente onnipresenti in tutto il mondo, in tutti i settori dell'industria e delle imprese che fanno affidamento sulla privacy. Questo rende l'intera situazione piuttosto agghiacciante.

Forse proprio perché si basano così tanto su questi standard, gli esperti di crittografia non sono stati disposti ad affrontare il problema.

AES-CBC vs AES-GCM

Fino a poco tempo fa l'unica cifra AES che probabilmente avresti incontrato nel mondo VPN era AES-CBC (Cipher Block Chaining). Questo si riferisce alla modalità di cifratura a blocchi, un argomento complesso che non vale davvero la pena approfondire qui. Sebbene CBC possa teoricamente presentare alcune vulnerabilità, il consenso generale è che CBC è sicuro. CBC è, infatti, raccomandato nel manuale OpenVPN.

OpenVPN ora supporta anche AES-GCM (Galios / Counter Mode).

  • GCM fornisce l'autenticazione, eliminando la necessità di una funzione di hashing HMAC SHA.
  • È anche leggermente più veloce di CBC perché utilizza l'accelerazione hardware (eseguendo il threading su più core del processore).

AES-CBC rimane la modalità più comune in uso generale, ma ora stiamo iniziando a incontrare AES-GCM "nella natura selvaggia." Dati i vantaggi di GCM, è probabile che questa tendenza continui. Dal punto di vista crittografico, tuttavia, sia AES-CBC che AES-GCM sono molto sicuri.

OpenVPN UDP vs. OpenVPN TCP

OpenVPN può funzionare su TCP (Transmission Control Protocol) o UDP (User Datagram Protocol).

  • TCP = affidabile. Ogni volta che un computer invia un pacchetto di rete tramite TCP, attende la conferma dell'arrivo del pacchetto prima di inviare il pacchetto successivo. Se non viene ricevuta alcuna conferma, verrà reinviato il pacchetto. Questo è noto come correzione degli errori. Esiste una "consegna garantita" di tutti i dati, ma può essere piuttosto lenta.
  • UDP = veloce. Utilizzando UDP, non viene eseguita tale correzione degli errori. I pacchetti vengono semplicemente inviati e ricevuti senza riconoscimenti o tentativi. Questo rende UDP molto più veloce di TCP, ma meno affidabile.

Se viene data la scelta, suggerisco di utilizzare il protocollo UDP più veloce a meno che non si verifichino problemi di connessione. Questa è la strategia predefinita adottata dalla maggior parte dei provider VPN.

Sconfiggi censura con OpenVPN sulla porta TCP 443

Uno dei grandi vantaggi di OpenVPN è che può essere eseguito su qualsiasi porta, inclusa la porta TCP 443. Questa è la porta utilizzata da HTTPS, il protocollo crittografato che protegge tutti i siti Web sicuri.

Senza HTTPS, nessuna forma di commercio online, come lo shopping o il settore bancario, sarebbe possibile. È quindi molto raro che questa porta sia bloccata.

Come bonus, il traffico VPN sulla porta TCP 443 può essere instradato all'interno della crittografia TLS allo stesso modo utilizzato da HTTPS. Ciò rende molto più difficile individuare le tecniche avanzate di ispezione dei pacchetti profondi. La porta TCP 443 è, quindi, la porta preferita per eludere i blocchi VPN.

Molti provider VPN offrono la possibilità di modificare il numero di porta utilizzato da OpenVPN utilizzando il proprio software personalizzato.

Anche se il tuo non lo è, molti provider VPN supportano effettivamente OpenVPN utilizzando la porta TCP 443 a livello di server. È possibile passare ad esso con una semplice modifica al file di configurazione OpenVPN (.ovpn). Vale quindi la pena chiedere al tuo provider VPN di farlo.

Vale la pena notare che agli ingegneri di rete non piace questa tattica poiché TCP su TCP è molto inefficiente. Quando si tratta di sconfiggere la censura, tuttavia, spesso funziona.

SSTP utilizza la porta TCP 443 per impostazione predefinita.

Sintesi

Protocolli VPN

  • PPTP è molto insicuro e dovrebbe essere evitato. Mentre la sua facilità di installazione e compatibilità multipiattaforma sono interessanti, L2TP / IPsec ha gli stessi vantaggi ed è molto più sicuro.
  • L2TP / IPsec è una buona soluzione VPN per uso non critico. Ciò è particolarmente vero sui dispositivi legacy che non supportano OpenVPN. Tuttavia, è stato gravemente compromesso dalla NSA.
  • SSTP offre la maggior parte dei vantaggi di OpenVPN, ma è principalmente solo un protocollo Windows. Ciò significa che è meglio integrato nel sistema operativo, ma è scarsamente supportato dai provider VPN grazie a questa limitazione. Inoltre, la sua natura proprietaria e il fatto che è stato creato da Microsoft significano che, per uno, non mi fido di esso.
  • IKEv2 è un protocollo molto buono (sicuro e veloce). Gli utenti di dispositivi mobili, in particolare, possono persino preferirlo a OpenVPN a causa della sua migliore capacità di riconnettersi quando viene interrotta una connessione a Internet. Per gli utenti di Blackberry, è praticamente l'unica opzione disponibile. Utilizzare versioni open source ove possibile.
  • OpenVPN è il protocollo VPN consigliato nella maggior parte dei casi. È veloce, affidabile, sicuro e open source. Di per sé non ha veri svantaggi, ma per essere veramente sicuri è importante che sia implementato bene. Ciò significa crittografia avanzata con Perfect Forward Secrecy.

Crittografia OpenVPN

Quando si tratta di crittografia, il diavolo è nei dettagli. È comune vedere i provider di VPN affermare di utilizzare la crittografia AES OpenVPN "ultra-forte a 256 bit", ma in realtà questo non ci dice molto. AES-256 è davvero un codice sicuro, ma se altri aspetti della suite di crittografia utilizzata sono deboli, i tuoi dati non saranno sicuri.

  • Cifra - questo protegge i tuoi dati reali. AES-256 è ora lo standard del settore ed è raccomandato.
  • Stretta di mano - questo protegge la tua connessione al server VPN. RSA-2048 + o ECDH-384 + sono sicuri. È importante sottolineare che le strette di mano di RSA-1024 e Diffie-Hellman lo sono non.
  • Autenticazione hash - crea un'impronta digitale univoca, che viene utilizzata per convalidare i dati e i certificati TLS (ovvero, per verificare che il server a cui ci si sta connettendo sia realmente quello a cui si pensa di connettersi). HMAC SHA-1 è assolutamente perfetto, ma HMAC SHA-2 (SHA-256, SHA-384 e SHA-512) e HMAC SHA-3 sono ancora più sicuri! Si noti che l'autenticazione hash non è richiesta se si utilizza la crittografia AES-GCM.
  • Segretezza diretta in avanti (PFS): questo assicura che vengano create nuove chiavi di crittografia per ogni sessione. OpenVPN non deve essere considerato sicuro a meno che non sia implementato PFS. Questo può essere fatto includendo uno scambio di chiavi Diffie-Hellman o ECDH in una stretta di mano RSA o una stretta di mano DH o ECDH.
  • La crittografia è sicura tanto quanto il suo punto più debole. Ciò significa che le impostazioni di crittografia dovrebbero essere efficaci sia sui dati che sui canali di controllo.
  • L'uso di lunghezze di bit più elevate per cifre e chiavi è quasi sempre più sicuro, ma questo ha un costo in termini di velocità.

OpenVPN negozierà le cifre tra client e server a piacimento. A meno che non vengano definiti parametri molto specifici, OpenVPN potrebbe avere impostazioni predefinite deboli. Come minimo, OpenVPN imposterà automaticamente la cifra Blowfish-128, l'handshake RSA-1024 senza PFS e l'autenticazione hash HMAC SHA-1.

Conclusione

Spero che tu abbia una migliore comprensione di ciò che rende una connessione VPN sicura. Quando si tratta di configurare correttamente una VPN, tuttavia, la crittografia è solo metà della storia. L'altra metà garantisce che nessun traffico entri o esca dal computer al di fuori della connessione VPN.

Per saperne di più, consulta la nostra guida completa alle perdite IP.

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me