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

Una rete privata virtuale (VPN) crittografa tutti i dati che viaggiano tra il computer e un server VPN. In questa guida completa alla crittografia VPN, diamo uno sguardo dettagliato a cosa è la crittografia e come viene utilizzata nelle connessioni VPN.

Forse la cosa più importante, spiegheremo la serie di termini di crittografia utilizzati dai servizi VPN. La nostra speranza è che, dopo aver letto questa guida, si avrà una maggiore comprensione di questo argomento complesso e che si sarà meglio in grado di valutare le richieste di sicurezza fatte dai fornitori di VPN.

Preliminari

Se non sei sicuro di cosa sia una VPN e di cosa si possa fare per te, consulta le nostre VPN per la Guida per principianti.

Il nostro obiettivo è quello di presentare le caratteristiche chiave della crittografia VPN nel modo più semplice possibile. Anche se non c’è via di fuga, dal fatto che la crittografia è un argomento complesso.

Se anche il termine crittografia fa sì che i tuoi occhi inizino a smaltare, ma vuoi comunque sapere cosa cercare in un buon servizio VPN, puoi passare direttamente ai riassunti utilizzando il Sommario.

Che cos’è la crittografia?

“Cominciate dall’inizio-disse il Re, molto gravemente-e andate avanti fino alla fine; poi fermatevi.”

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 vuole accedere al contenuto di una cassaforte (cioè i tuoi dati) protetta da quel blocco, allora può provare a rompere il blocco.

Allo stesso modo in cui la serratura che protegge un caveau bancario è più forte di quella che protegge una valigia, una crittografia è più forte di un’altra crittografia.

Se si desidera una VPN con la crittografia più forte, controllare la nostra lista VPN più sicuro per ulteriori informazioni.

Le basi

Quando eri un bambino, hai mai giocato al gioco in cui hai creato un “messaggio segreto” sostituendo una lettera del messaggio con un’altra? La sostituzione è stata fatta secondo una formula scelta da te.

Potresti, ad esempio, aver sostituito ogni lettera del messaggio originale con una tre lettere dietro di essa nell’alfabeto. Se qualcun altro sapesse cosa fosse questa formula, o fosse in grado di risolverla, allora sarebbe in grado di leggere il tuo “messaggio segreto.”

In gergo crittografico, quello che stavi facendo era “crittografare” il messaggio (dati) secondo un algoritmo matematico molto semplice. I crittografi si riferiscono a questa formula come ” cifrario.”Per decifrarlo, hai bisogno della chiave. Questo è un parametro variabile che determina l’output finale del codice. Senza questo parametro, è impossibile decifrare il codice.

Se qualcuno vuole leggere un messaggio crittografato ma non ha la chiave, deve provare a “decifrare” il codice. Quando la crittografia utilizza una semplice lettera di sostituzione cifratura, cracking è facile. La crittografia può essere resa più sicura, tuttavia, rendendo l’algoritmo matematico (il cifrario) più complesso.

È possibile, ad esempio, sostituire ogni terza lettera del messaggio con un numero corrispondente alla lettera.

Lunghezza della chiave di crittografia

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

Più complesso è l’algoritmo, più difficile è il cifrario da decifrare usando quello che chiamiamo un attacco di forza bruta.

Un attacco di forza bruta se una forma molto primitiva di attacco è (noto anche come una ricerca chiave esaustiva), che implica fondamentalmente provare ogni combinazione di numeri possibili fino a quando non viene trovata la chiave corretta.

I computer eseguono tutti i calcoli utilizzando numeri binari: zeri e uno. La complessità di un codice dipende dalla sua dimensione 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.

Questo è noto come la lunghezza della chiave e rappresenta anche la fattibilità pratica di eseguire con successo un attacco di forza bruta su un dato cifrario.

Il numero di combinazioni possibili (e quindi la difficoltà di forzarle) aumenta esponenzialmente con la dimensione della chiave. Utilizzo del codice AES (vedere più avanti):

Cominations dimensione chiave

Per mettere questo in prospettiva:

  • Nel 2011, il supercomputer più veloce della parola era il Fujitsu K. Questo era capace di una velocità di picco Rmax di 10,51 petaflop. Sulla base di questa cifra, ci vorrebbe Fujitsu K 1.02 x 10^18 – circa un miliardo di miliardi (un quintilio) – anni per decifrare 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 del mondo ora (2017) è il Sunway TaihuLight in Cina. Questa bestia è capace di una velocità di picco di 93,02 petaflops. Ciò significa che il computer più potente del mondo impiegherebbe ancora circa 885 quadrilioni di anni per forzare bruta una chiave AES a 128 bit.
  • Il numero di operazioni necessarie per forzare bruta un cifrario a 256 bit è 3,31 x 10^56. Questo è approssimativamente uguale al numero di atomi nell’universo!

Cifrari per computer

Mentre la lunghezza della chiave di crittografia si riferisce alla quantità di numeri grezzi coinvolti, i cifrari sono la matematica – le formule o gli algoritmi effettivi – utilizzati per eseguire la crittografia. Come abbiamo appena visto, la forzatura bruta dei moderni cifrari per computer è selvaggiamente impraticabile.

Sono le debolezze (a volte intenzionali) in questi algoritmi di crittografia che possono portare alla rottura della crittografia. Questo perché l’output del cifrario (mal progettato) potrebbe 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 cifrario Blowfish, ad esempio, è vulnerabile a un attacco che sfrutta la matematica dietro il problema del compleanno nella teoria della probabilità. Lo studio delle debolezze negli algoritmi crittografici è noto come criptoanalisi.

Lunghezze chiave più lunghe compensano tali debolezze, in quanto aumentano notevolmente il numero di possibili risultati.

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

Lunghezza chiave cifratura

Quanto è forte un cifrario dipende sia dalla matematica del cifrario stesso, più la sua lunghezza chiave espressa in bit. Per questo motivo, i cifrari sono solitamente descritti insieme alla lunghezza della chiave utilizzata.

Quindi AES-256 (il codice AES con una lunghezza della chiave a 256 bit) è solitamente considerato più forte di AES-128. Nota che dico di solito perché abbiamo a che fare con una matematica molto complessa qui (vedi le mie note su AES più tardi).

Nota Icon2 01 150X150

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

Confronto dimensioni chiave

Questa tabella è un po ‘ obsoleta, in quanto non prende in considerazione i nuovi attacchi che sono stati 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 si spera, si ottiene l’idea.

Nota Icon2 01 150X150

Una cosa da notare è che maggiore è la lunghezza della chiave, maggiore è il calcolo coinvolto, quindi maggiore è la potenza di elaborazione necessaria. Ciò influisce sulla velocità con cui i dati possono essere crittografati e decrittografati. I fornitori di VPN e simili devono, quindi, decidere il modo migliore per bilanciare sicurezza e usabilità pratica quando si scelgono schemi di crittografia. Ci sono alcuni fornitori di VPN che sono riusciti a trovare questo equilibrio bene. Per ulteriori informazioni, consulta la nostra guida VPN veloce.

Discuteremo i principali cifrari utilizzati dai vari protocolli VPN un po ‘ più tardi, ma i cifrari più comuni che probabilmente incontrerai sono Blowfish e AES. In aggiunta a questo, RSA viene utilizzato per crittografare e decifrare le chiavi di un cifrario, e SHA-1 o SHA-2 viene utilizzato come funzione hash per autenticare i dati.

Crittografia asimmetrica Crittografia asimmetrica

Perfect Forward Secrecy

Perfect Forward Secrecy (PFS) viene anche definito come l’uso di chiavi di crittografia effimere, o semplicemente Forward Secrecy (FS) da coloro che non sono a loro agio nell’usare la parola “perfetto.”

La maggior parte delle moderne comunicazioni online sicure si basa su SSL / TLS. Viene utilizzato dai siti Web HTTPS e dal protocollo OpenVPN. TLS (Transport Layer Security) è un protocollo di crittografia asimmetrica. L’utilizzo di un codice asimmetrico significa che i dati sono protetti utilizzando una chiave pubblica, che è resa disponibile a tutti. Può essere decifrato solo, tuttavia, da un destinatario previsto che detiene la chiave privata corretta.

Questa chiave privata deve essere tenuta segreta. Se viene rubato o rotto da un avversario, allora quell’avversario può facilmente intercettare e leggere qualsiasi comunicazione protetta da esso.

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

Questa chiave di crittografia privata, quindi, diventa una “chiave master” che può essere utilizzata per sbloccare tutte le comunicazioni con un server o un’azienda. La NSA è noto per aver sfruttato questa debolezza al fine di raccogliere vaste risme di dati presumibilmente sicuri.

La soluzione è perfetta Forward Secrecy. Questo è un sistema in cui viene generata una nuova chiave di crittografia privata unica 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 utilizzate una volta e poi scompaiono.

Non esiste, quindi, alcuna “chiave master” che possa essere sfruttata. Anche se una sessione è compromessa, è solo quella sessione che è compromessa-non tutte le altre sessioni che qualcuno ha con quel server o azienda!

Anche se 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 alcuni anni fa, l’uso di Perfect Forward Secrecy per entrambi i siti Web HTTPS e le connessioni OpenVPN erano tristemente rari. 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. Un certo numero di tali protocolli VPN sono comunemente supportati da servizi VPN commerciali. I più notevoli 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. E ‘ molto sicuro e può essere utilizzato su quasi tutti i dispositivi VPN-capable. Io, quindi, spendere inchiostro digitale aggiuntivo discutere OpenVPN in dettaglio.

PPTP

PRO

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

CONTRO

  • Molto insicuro
  • Definitivamente compromesso dalla NSA
  • Facilmente bloccato

che Cosa è PPTP?

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

Point-to-Point Tunneling Protocol (PPTP) è 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 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 basso sovraccarico computazionale da implementare so quindi è veloce!

Sfortunatamente, PPTP non è sicuro. Affatto. Anche se ora di solito trovato solo utilizzando chiavi di crittografia a 128 bit, negli anni da quando è stato prima in bundle con Windows 95 OSR2 nel 1999, una serie di vulnerabilità di sicurezza sono venuti alla luce.

La più grave di queste è la possibilità di autenticazione MS-CHAP v2 non incapsulata. Utilizzando questo exploit, PPTP è stato incrinato entro due giorni. Microsoft ha patchato il difetto, ma si è emesso una raccomandazione per utilizzare L2TP/IPSec o SSTP invece.

Non dovrebbe sorprendere che la NSA decifri quasi certamente le comunicazioni crittografate PPTP come standard. Ancora più preoccupante è che la NSA ha raccolto grandi quantità di dati più vecchi che sono stati crittografati indietro quando PPTP era considerato sicuro. Può quasi certamente decifrare anche questi dati legacy.

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

L2TP/IPsec

PRO

  • di Solito considerato sicuro
  • Facile da configurare
  • Disponibile su tutte le piattaforme moderne
  • più Veloce di OpenVPN (forse)

CONTRO

  • Può essere compromesso dalla NSA (non provato)
  • Probabilmente volutamente indebolito dalla NSA (non provata)
  • Possono lottare con restrittiva firewall
  • Spesso implementato male

che Cosa è L2TP e IPsec?

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

Da solo, L2TP non fornisce alcuna crittografia o riservatezza al traffico che lo attraversa, quindi di solito è implementato con la suite di autenticazione IPSec (L2TP/IPSec). Anche se un provider si riferisce solo a L2TP o IPSec (come alcuni fanno), quasi certamente significa L2TP/IPSec.

L2TP / IPSec può utilizzare i cifrari 3DES o AES. 3DES è vulnerabile agli attacchi di collisione Meet-in-the-middle e Sweet32, quindi in pratica è improbabile incontrarlo in questi giorni.

Possono sorgere problemi perché il protocollo L2TP/IPSec utilizza solo un numero limitato di porte. Ciò può causare complicazioni quando viene 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. Questo è compensato dal fatto che la crittografia/decrittografia avviene nel kernel e L2TP/IPSec consente il multi-threading. OpenVPN no. Il risultato è che L2TP / IPSec è teoricamente più veloce di OpenVPN.

L2TP / IPSec utilizzando il codice AES non ha grandi vulnerabilità note, e se correttamente implementato può ancora essere sicuro. Tuttavia, le rivelazioni di Edward Snowden hanno fortemente accennato allo standard compromesso dalla NSA.

John Gilmore è uno specialista della sicurezza e membro fondatore della Electronic Frontier Foundation. Egli spiega, è probabile che IPSec è 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 liberamente scaricate dai loro siti web.

Questi PSK vengono utilizzati solo per autenticare la connessione, quindi anche se compromessi, i dati rimangono crittografati in modo sicuro utilizzando AES. Un utente malintenzionato potrebbe, tuttavia, utilizzare la chiave pre-condivisa per impersonare un server VPN. Potrebbe quindi intercettare il traffico crittografato o persino iniettare dati dannosi nella connessione.

Nota Icon2 01 150X150

Sommario

Nonostante alcuni problemi in gran parte teorici, L2TP/IPSec è generalmente considerato sicuro se non vengono utilizzate chiavi pre-condivise pubblicate apertamente. La sua compatibilità integrata con un gran numero di dispositivi può renderlo una scelta molto buona.

SSTP

PRO

  • Molto sicuro
  • Completamente integrato in Windows
  • supporto Microsoft
  • Può ignorare la maggior parte dei firewall

CONTRO

  • Proprietarie standard di proprietà di Microsoft

che Cosa è 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. Una stretta integrazione con Windows può rendere 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 di collaborare con la NSA, e le speculazioni su possibili backdoor integrate nel sistema operativo Windows, non ispirano fiducia nello standard.

Secure Socket Tunneling Protocol (SSTP) è stato introdotto da Microsoft in Windows Vista SP1. Anche se è ora disponibile per le VPN Linux, e anche Mac OS X, è ancora principalmente una piattaforma solo per Windows.

Un altro problema è che SSL v3.0 è vulnerabile a quello che è noto come attacco BARBONCINO, e ora quindi non raccomandato. Se questo problema riguarda anche SSTP non è chiaro, ma ancora una volta, difficilmente ispira fiducia.

Nota Icon2 01 150X150

Sommario

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

IKEv2

PRO

  • Veloce
  • Stabile – soprattutto quando si cambia rete o si riconnette dopo una connessione Internet persa
  • Sicuro (se si utilizza AES)
  • Facile da configurare (almeno alla fine utente!)
  • Protocollo è supportato sui dispositivi Blackberry

CONTRO

  • Non è supportato su molte piattaforme
  • l’Implementazione di IKEv2 al server-end è difficile, che è qualcosa che potrebbe potenzialmente causare problemi di sviluppo
  • Solo la fiducia implementazioni open source

che Cosa è 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.

Versioni compatibili sviluppate in modo indipendente di IKEv2 sono state sviluppate 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. Assicura che il traffico sia sicuro consegnando l’attributo SA (Security Association) all’interno di IPSec e migliora IKEv1 in molti modi. IKEv2 è quindi a volte indicato come IKEv2 / IPSec. IKEv1, d’altra parte, è spesso indicato semplicemente come 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 si esce da un tunnel ferroviario.

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

IKEv2 non è comune come L2TP / IPSec in quanto è supportato su molte meno piattaforme (anche se questa situazione sta cambiando velocemente). È, tuttavia, considerato almeno buono come, se non superiore a, L2TP / IPSec in termini di sicurezza, prestazioni (velocità), stabilità e capacità di stabilire (e ristabilire) una connessione.

OpenVPN

PRO

  • Molto sicuro (se viene utilizzato PFS)
  • Altamente configurabile
  • Open-source
  • Può bypassare i firewall
  • Ha bisogno di software di terze parti

Che cos’è OpenVPN?

OpenVPN è una tecnologia open-source che utilizza la libreria OpenSSL e protocolli TLS, insieme ad un amalgama 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 da singoli provider VPN, ma il codice open source principale è sviluppato dal progetto OpenVPN.

Molti sviluppatori e contributori al 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, che viene 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 certo numero di cifrari. In pratica, tuttavia, solo Blowfish e AES sono comunemente utilizzati dai servizi VPN commerciali. Discuto questi qui sotto.

Alla luce delle informazioni ottenute da Edward Snowden, sembra che fino a quando viene utilizzato Perfect Forward Secrecy, allora OpenVPN non è stato compromesso o indebolito dalla NSA.

Un recente audit crowdsourcing di OpenVPN è ora completo, così come un altro finanziato dall’accesso privato a Internet. Non sono state scoperte vulnerabilità gravi che influiscono 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 patchati in OpenVPN 2.4.2.

OpenVPN è generalmente considerato il protocollo VPN più sicuro disponibile ed è ampiamente supportato in tutto il settore VPN. Io, quindi, discutere la crittografia OpenVPN in dettaglio di seguito.

OpenVPN Encryption

OpenVPN encryption comprende due parti: data channel encryption e control channel encryption. La crittografia dei canali dati viene utilizzata per proteggere i dati. Control channel encryption assicura la connessione tra il computer e il server VPN.

Qualsiasi difesa è forte solo 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 è raro, ad esempio, vedere un servizio VPN pubblicizzato come utilizzo di un codice AES-256 con crittografia handshake RSA-4096 e autenticazione hash SHA-512. Questo suona molto impressionante fino a quando non ti rendi conto che si riferisce solo alla crittografia del canale di controllo e non al canale dati, che è crittografato con semplice Blowfish-128 con autenticazione hash SHA1. Questo viene fatto solo per motivi di marketing.

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

Per la massima sicurezza, sia i dati che la crittografia dei canali di controllo dovrebbero essere il più resistenti possibile. Tuttavia, più forte è la crittografia utilizzata, più lenta sarà la connessione, motivo per cui alcuni provider si limitano alla crittografia dei canali 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 un cifrario, crittografia handshake e autenticazione hash.
  • La crittografia dei canali dati consiste in un cifrario e un’autenticazione hash.

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

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

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

Cifrari

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

Blowfish

Blowfish-128 è il codice predefinito utilizzato da OpenVPN. Le dimensioni delle chiavi possono in teoria variare da 32 bit a 448 bit, ma Blowfish-128 è l’unica versione che è probabile incontrare in natura.

Blowfish è spesso considerato abbastanza sicuro per scopi casuali, ma ha punti deboli noti. È stato creato dal famoso crittografo Bruce Schneier, che nel 2007 ha dichiarato: “a questo punto, però, sono stupito 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 deve essere considerato sicuro se utilizzato sul canale di controllo.

AES

AES è diventato il cifrario a chiave simmetrica “gold standard” VPN a livello di settore. 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 del blocco a 128 bit piuttosto che la dimensione del blocco a 64 bit di Blowfish significa anche che può gestire file più grandi (oltre 4 GB) meglio di Blowfish. Oltre a questo, il set di istruzioni AES beneficia dell’accelerazione hardware integrata sulla maggior parte delle piattaforme.

AES è solitamente disponibile nelle dimensioni delle chiavi a 128 bit e 256 bit (esiste anche AES a 192 bit). AES-128 rimane sicuro per quanto qualcuno è a conoscenza. Dato quello che ora sappiamo circa l’entità dell’assalto della NSA sugli standard di crittografia, tuttavia, la maggior parte degli esperti concordano sul fatto che AES-256 fornisce 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 esperti molto eminenti a sostenere che AES-128 è in realtà più forte di AES-256.

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

Camellia

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

Ma come discuto di seguito, ci sono motivi per non fidarsi dei cifrari certificati NIST. Il fatto che la Camelia sia una cifra non NIST è la ragione principale per sceglierla su AES. Questa opzione è solo raramente disponibile, tuttavia.

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

Handshake Encryption

Al fine di 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 questo handshake, TLS di solito utilizza il crittosistema a chiave pubblica RSA. Si tratta di un algoritmo di crittografia e firma digitale utilizzato per identificare i certificati TLS/SSL. Può, tuttavia, utilizzare anche uno scambio di chiavi Diffie-Hellman o ECDH.

RSA

RSA è un sistema di crittografia asimmetrica: viene utilizzata una chiave pubblica per crittografare i dati, ma viene utilizzata una chiave privata diversa per decrittografarli. È stata la base per la sicurezza su Internet per gli ultimi 20 anni o giù di lì.

È ormai consolidato che RSA con una lunghezza della chiave di 1024 bit (RSA-1024) o meno non è sicuro, ed è quasi certamente stato incrinato dalla NSA. Di conseguenza, c’è stata una mossa concertata tra le società Internet per migrare lontano da RSA-1024.

Purtroppo, abbiamo ancora che trovare alcuni servizi VPN continuano a utilizzare RSA-1024 per proteggere le strette di mano. Questo non va bene.

RSA-2048 e superiori è ancora considerato sicuro. Di per sé, RSA non fornisce Perfect Forward Secrecy (PFS). Questo può, tuttavia, essere implementato includendo uno scambio di chiavi Diffie-Hellman (DH) o una 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 una perfetta segretezza in avanti. La connessione è protetta utilizzando RSA.

Poiché può causare confusione, noterò anche che il cryptosystem RSA non ha nulla a che fare con la società tecnologica statunitense RSA Security LLC. Questa società ha deliberatamente indebolito i suoi prodotti di crittografia BSAFE di punta dopo essere stato corrotto million 10 milioni dalla NSA.

Diffie-Hellman e 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 qualcosa di meno di DH-2048 dovrebbe essere evitato a causa della suscettibilità all’attacco logjam.

Il vantaggio principale di una stretta di mano Diffie-Hellman su RSA è che fornisce nativamente una perfetta segretezza in avanti. Come già notato, tuttavia, la semplice aggiunta di uno scambio di chiavi DH a una stretta di mano RSA raggiunge un fine simile.

Diffie-Hellman ha causato enormi controversie sul suo riutilizzo di un insieme limitato di numeri primi. Questo lo rende vulnerabile ad essere incrinato da un avversario potente, come la NSA. Diffie-Hellman da solo, quindi, non fa per la crittografia stretta di mano sicura. Va bene, tuttavia, quando viene utilizzato come parte di una suite di crittografia RSA.

Elliptic curve 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 invece di grandi numeri primi per crittografare le connessioni.

ECDH può essere utilizzato come parte di una stretta di mano RSA per fornire una perfetta segretezza in avanti 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 un handshake TLS, più a lungo è meglio (in termini di sicurezza, comunque).

SHA Hash Authentication

Questo è anche indicato come data authentication o hash message authentication code (HMAC).

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

Crea un’impronta digitale unica 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 rifiutata.

Questo è importante per prevenire un attacco Man-in-the-Middle (MitM), in cui un avversario tenta di deviare la connessione OpenVPN a uno dei propri server invece del provider VPN. Potrebbe farlo, ad esempio, hackerando il tuo router.

Se un avversario può decifrare l’hash del certificato TLS autentico del tuo provider, può invertire l’hash per creare un certificato falsificato. Il tuo software Open VPN autenticherà quindi la connessione come autentica.

SHA è sicuro?

Quando viene utilizzato per proteggere i siti Web HTTPS, SHA-1 è rotto. Questo è stato conosciuto per qualche 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 raccomandate e sono sicure. SHA-2 include SHA-256, SHA-384 e SHA-512. Tuttavia Open

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

In altre parole, HMAC SHA-1 come usato da OpenVPN è considerato sicuro e non vi è la prova matematica di questo. 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 consiglia invece di passare a HMAC SHA-2 o HMAC SHA-3.

Note

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 organismo che per sua stessa ammissione lavora a stretto contatto con la NSA nello sviluppo dei suoi cifrari.

Dato quello che ora sappiamo degli sforzi sistematici della NSA per indebolire o costruire backdoor in standard di crittografia internazionali, ci sono tutte le ragioni per mettere in discussione l’integrità degli algoritmi NIST.

Il NIST, ovviamente, confuta fortemente tali accuse:

“Il NIST non indebolirebbe deliberatamente uno standard crittografico.”

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

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

Questa diffidenza è stata ulteriormente rafforzata quando RSA Security (una divisione di EMC) ha detto privatamente ai clienti di smettere di usare un algoritmo di crittografia che contiene un difetto progettato dalla NSA. Questo algoritmo era stato anche approvato dal NIST.

Inoltre, Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator) è uno standard di crittografia progettato da NIST. E ” stato conosciuto per essere insicuro per anni.

Nel 2006 l’Università di Tecnologia di Eindhoven nei Paesi Bassi ha notato che un attacco contro di esso era abbastanza facile da lanciare su “un normale PC.”Gli ingegneri Microsoft hanno anche segnalato una sospetta backdoor nell’algoritmo.

Nonostante queste preoccupazioni, dove il NIST guida, l’industria segue. Microsoft, Cisco, Symantec e RSA includono tutti l’algoritmo nelle librerie crittografiche del loro prodotto. Questo è in gran parte perché il rispetto degli standard NIST è un prerequisito per ottenere contratti governativi degli Stati Uniti.

Gli standard crittografici certificati NIST sono praticamente onnipresenti in tutto il mondo, in tutte le aree dell’industria e del business che si basano sulla privacy. Questo rende l’intera situazione piuttosto agghiacciante.

Forse proprio perché tanto si basa 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’unico cifrario AES che si poteva incontrare nel mondo VPN era AES-CBC (cifratura a blocchi). Questo si riferisce alla modalità di cifratura a blocchi, un argomento complesso che non vale davvero la pena di entrare qui. Anche se CBC può teoricamente avere alcune vulnerabilità, il consenso generale è che CBC è sicuro. CBC è, infatti, raccomandato nel manuale OpenVPN.

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

  • 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 (tramite threading su più core del processore).

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

OpenVPN UDP vs. OpenVPN TCP

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

  • TCP = affidabile. Ogni volta che un computer invia un pacchetto di rete utilizzando TCP, attende la conferma che il pacchetto è arrivato prima di inviare il pacchetto successivo. Se non viene ricevuta alcuna conferma, invierà nuovamente 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 alcuna correzione di errore. I pacchetti vengono semplicemente inviati e ricevuti senza conferme o tentativi. Ciò 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 la 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 banking, sarebbe possibile. È quindi molto raro che questa porta venga bloccata.

Come bonus, il traffico VPN sulla porta TCP 443 può essere instradato all’interno della crittografia TLS nello stesso modo utilizzato da HTTPS. Ciò rende molto più difficile individuare utilizzando tecniche avanzate di ispezione profonda dei pacchetti. 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 loro software personalizzato.

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

Vale la pena notare che gli ingegneri di rete non amano 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.

Sommari

Protocolli VPN

  • PPTP è molto insicuro e dovrebbe essere evitato. Mentre la sua facilità di installazione e la 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. Oltre a questo, la sua natura proprietaria e il fatto che è stato creato da Microsoft significa che io, per esempio, non mi fido.
  • IKEv2 è un ottimo protocollo (sicuro e veloce). Gli utenti mobili, in particolare, potrebbero persino preferirlo a OpenVPN grazie alla sua migliore capacità di riconnettersi quando una connessione Internet viene interrotta. Per gli utenti Blackberry, è praticamente l’unica opzione disponibile. Utilizzare le versioni open-source dove possibile.
  • OpenVPN è il protocollo VPN consigliato nella maggior parte dei casi. È veloce, affidabile, sicuro e open source. Non ha aspetti negativi reali, di per sé., ma per essere veramente sicuro importante che sia implementato bene. Ciò significa crittografia forte con perfetta segretezza in avanti.

OpenVPN Encryption

Quando si tratta di crittografia, il diavolo è nei dettagli. È comune vedere i fornitori di VPN dire che usano” ultra-forte 256-bit ” crittografia AES OpenVPN, ma questo non, in realtà, ci dice molto. AES-256 è davvero un cifrario forte, ma se altri aspetti della suite di crittografia utilizzata sono deboli, allora i dati non saranno sicuri.

  • Cipher – questo protegge i dati effettivi. AES-256 è ora lo standard del settore ed è raccomandato.
  • Handshake-questo protegge la connessione al server VPN. RSA – 2048 + o ECDH-384 + sono sicuri. È importante sottolineare che le strette di mano RSA-1024 e Diffie-Hellman non lo sono.
  • 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 ti stai connettendo sia davvero quello a cui pensi di connetterti). HMAC SHA-1 va assolutamente bene, 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 è necessaria se viene utilizzato il codice AES-GCM.
  • Perfect Forward Secrecy (PFS) – questo assicura che vengano create nuove chiavi di crittografia per ogni sessione. OpenVPN non dovrebbe essere considerato sicuro a meno che PFS non sia implementato. 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 solo quanto il suo punto più debole. Ciò significa che le impostazioni di crittografia dovrebbero essere forti sia sui dati che sui canali di controllo.
  • Usare lunghezze di bit più elevate per cifrari e chiavi è quasi sempre più sicuro, ma questo ha un costo in velocità.

OpenVPN negozierà i cifrari tra client e server a piacimento. A meno che non siano definiti parametri molto specifici, OpenVPN potrebbe impostare di default impostazioni deboli. Come minimo, OpenVPN eseguirà di default il cifrario Blowfish-128, l’handshake RSA-1024 senza PFS e l’autenticazione hash HMAC SHA-1.

Conclusione

Si spera, ora avete una migliore comprensione di ciò che rende per una connessione VPN sicura. Quando si tratta di configurare correttamente una VPN, tuttavia, la crittografia è solo metà della storia. L’altra metà è garantire che nessun traffico entra o lascia il computer al di fuori della connessione VPN.

Per saperne di più su questo, si prega di consultare la nostra Guida completa alle perdite IP.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.