SOMMARIO: Le VPN utilizzano cifrari e protocolli di connessione per convertire il tuo traffico web in un codice incomprensibile, proteggendo la tua attività di navigazione dalla sorveglianza di terze parti. Una VPN sicura non dovrebbe utilizzare nulla di più debole del cifrario AES-256 o ChaCha20 per crittografare i tuoi dati.
Un tunnel VPN è semplicemente un canale sicuro stabilito tra il tuo dispositivo e il server VPN, creando un percorso sicuro e privato attraverso la rete Internet pubblica.
Viene chiamato tunnel perché il tuo traffico originale è crittografato e avvolto in uno strato di traffico non crittografato.
Immagina di mettere una busta sigillata dentro un’altra busta con un indirizzo diverso, nascondendo il tuo messaggio originale e rendendolo illeggibile a chiunque possa intercettarlo.
Questo processo, chiamato incapsulamento, viene eseguito dai protocolli di tunneling.
Algoritmi di crittografia
La crittografia trasforma i dati in chiaro in un codice segreto, rendendoli illeggibili a chiunque non abbia la chiave necessaria per decifrarli.
Le VPN utilizzano la crittografia per nascondere la tua attività di navigazione tra il tuo dispositivo e il server VPN, proteggendoti da varie forme di sorveglianza.
Le VPN utilizzano cifrari di crittografia per convertire la tua attività online in codice illeggibile. Un cifrario è un algoritmo matematico (ovvero un insieme di regole) che crittografa e decifra i dati, spesso abbinato a una lunghezza di chiave specifica.
La chiave è una stringa di caratteri utilizzata per modificare i dati crittografati. Solo chi è in possesso della stessa chiave è in grado di decrittografare i dati.
Chiavi più lunghe offrono generalmente maggiore sicurezza. Ad esempio, AES-256 è considerato più sicuro di AES-128.
Alcuni protocolli VPN utilizzano chiavi statiche, progettate per un uso a lungo termine, mentre altri utilizzano chiavi effimere che scadono dopo una singola sessione o transazione.
Ecco come funzionano i cifrari di crittografia:
- Il cifrario utilizza una chiave per crittografare i dati prima di inviarli.
- La stessa chiave o una chiave correlata viene utilizzata per decrittografare i dati all’estremità ricevente.
- Solo chi ha la chiave corretta può decrittografare e leggere le informazioni.
Il cifrario utilizzato da una VPN è spesso determinato dal grado in cui i suoi sviluppatori hanno dato priorità alla sicurezza rispetto alle prestazioni, poiché i cifrari più potenti tendono a richiedere una maggiore potenza di elaborazione.
Nel tempo emergono anche nuovi cifrari e vengono incorporati da servizi di qualità superiore.
I cifrari più comunemente usati dalle VPN sono:
- Advanced Encryption Standard (AES)
- Standard di riferimento per la crittografia online
- Disponibile con lunghezze di chiave a 128 bit e 256 bit
AES-256 preferito per una protezione più forte
- Considerato Quantum-resistente
- Blowfish
- Progettato nel 1993, ampiamente sostituito da AES-256
- Lunghezza della chiave a 128 bit (possibili da 32 a 448 bit)
- Presenta debolezze note
- Utilizzato come ripiego per AES-256
- ChaCha20
- Nuova crittografia che sta guadagnando popolarità
- Lunghezza della chiave a 256 bit
- Sicurezza paragonabile ad AES-256
- Prestazioni più rapide, soprattutto sui dispositivi mobili
- Camellia
- Sviluppato nel 2000
- Sicurezza e velocità paragonabili ad AES
- Non certificato dal NIST
- Disponibilità limitata nelle VPN
Le modalità di crittografia determinano il modo in cui i cifrari come AES crittografano i dati. Sono fondamentali per la sicurezza VPN, influendo sia sulla privacy che sulle prestazioni. Ecco le modalità più comuni utilizzate nelle VPN:
- CBC (Cipher Block Chaining)
- Modalità tradizionale
- Crea una catena di blocchi dipendenti
- Può essere più lenta delle modalità più recenti
- Richiede misure di sicurezza aggiuntive
- GCM (Galois/Counter Mode)
- Fornisce crittografia e autenticazione
- Più veloce di CBC
- Considerata molto sicura
- Ampiamente utilizzata nelle VPN moderne
- CTR (Counter)
- Trasforma il cifrario a blocchi in cifrario a flusso
- Veloce e consente l’elaborazione parallela
- Non fornisce solo l’autenticazione
- Utilizzata da ChaCha20
- OCB (Offset Codebook Mode)
- Fornisce crittografia autenticata in un singolo passaggio
- Molto efficiente
- Adozione limitata a causa di problemi di brevetti
È meglio evitare altre modalità nelle VPN. In particolare, ECB (Electronic Codebook) è troppo semplice per essere sicura, mentre CFB (Cipher Feedback) e OFB sono entrambe soggette a configurazione errata a causa della loro complessità e sono considerate obsolete. Anche qualsiasi modalità senza controlli di integrità dovrebbe essere evitata, a meno che non sia abbinata a un meccanismo di autenticazione separato.
La maggior parte delle VPN di alto livello ora utilizza la modalità GCM con AES o la combinazione ChaCha20-Poly1305, poiché queste forniscono un buon equilibrio tra sicurezza e prestazioni. Quando esaminiamo le VPN, cerchiamo queste moderne modalità di crittografia autenticate.
Protocolli delle VPN
I protocolli VPN sono le regole e i processi che il dispositivo segue per stabilire una connessione sicura con il server VPN.
Determinano come viene formato il tunnel della VPN, mentre l’algoritmo di crittografia viene utilizzato per crittografare i dati che passano attraverso il tunnel.
Ogni protocollo offre un equilibrio unico di velocità, sicurezza e compatibilità. La maggior parte delle VPN utilizzerà di default un protocollo particolare, ma ti consentirà di modificarlo nelle impostazioni dell’app.
Protocolli VPN comuni:
- OpenVPN: open source, altamente sicuro, ampiamente compatibile e altamente configurabile.
- WireGuard: molto veloce ed efficiente. Relativamente nuovo ma sta riscuotendo una rapida adozione.
- IKEv2/IPsec: buono per i dispositivi mobili grazie alla rapida riconnessione, ma closed source e potenzialmente compromesso.
- SoftEther: veloce, sicuro, aggira la censura, ma non ben supportato.
- L2TP/IPsec: più lento, anche potenzialmente compromesso.
- SSTP: gestisce bene i Firewall, ma closed source e potenzialmente vulnerabile.
- PPTP: obsoleto e non sicuro, da evitare.
Per un’analisi più approfondita dei diversi tipi di protocollo VPN, consulta la nostra guida ai protocolli delle VPN.
Handshake della VPN
Gli handshake VPN sono fondamentali per avviare connessioni sicure. Questo processo prevede:
- Autenticazione: verifica dell’identità sia del client VPN che del server.
- Scambio di chiavi: condivisione sicura delle chiavi di crittografia per la sessione.
- Negoziazione dei parametri: accordo sulle regole di comunicazione e sulle suite di crittografia.
Durante un handshake VPN, il dispositivo e il server VPN si scambiano informazioni per stabilire un canale sicuro. Questo scambio si traduce in una chiave segreta condivisa utilizzata per crittografare e decrittografare i dati durante la sessione VPN.
Gli Handshake delle VPN tendono a utilizzare l’algoritmo RSA (Rivest-Shamir-Adleman). RSA è stata la base per la sicurezza di Internet negli ultimi due decenni. Tuttavia, la lunghezza della chiave è fondamentale.
Per una sicurezza adeguata, utilizzare VPN che implementano RSA-2048 o RSA-4096. RSA-1024 non è più considerato sicuro a causa dei progressi nella potenza di calcolo.
Sebbene ampiamente sicuro, il processo di handshake genera una “chiave principale” che potrebbe potenzialmente decriptare tutte le sessioni su quel server se compromessa.
In tale scenario, un aggressore potrebbe hackerare il server VPN e ottenere l’accesso a tutti i dati che fluiscono attraverso il tunnel VPN.
Per mitigare questo rischio, consigliamo di utilizzare VPN con Perfect Forward Secrecy.
Perfect Forward Secrecy
Perfect Forward Secrecy è una funzione di protocollo che utilizza gli algoritmi di scambio chiavi Diffie-Hellman (DH) o Elliptic Curve Diffie-Hellman (ECDH) per generare chiavi di sessione temporanee.
La funzione Perfect Forward Secrecy garantisce che la chiave di crittografia non venga mai scambiata attraverso la connessione.
I principali vantaggi di PFS includono:
- Generazione di chiavi indipendente: sia il server VPN che il client derivano in modo indipendente la stessa chiave di crittografia senza scambiarla.
- Isolamento della sessione: ogni connessione utilizza una chiave univoca, limitando il potenziale danno da una singola sessione compromessa.
- Sicurezza temporale: le chiavi sono temporanee e scartate dopo l’uso, impedendo la futura decrittazione di eventuali dati acquisiti.
Sebbene RSA sia fondamentale per l’autenticazione, non può fornire PFS da solo. L’implementazione di PFS richiede l’inclusione di DH o ECDH nella suite di crittografia. ECDH offre una sicurezza solida per gli handshake, mentre DH dovrebbe essere utilizzato solo insieme ad altre misure a causa di potenziali vulnerabilità altrimenti.
OpenVPN e WireGuard, i nostri protocolli VPN consigliati, supportano entrambi Perfect Forward Secrecy.
Autenticazione Hash
I Secure Hash Algorithms (SHA) svolgono un ruolo fondamentale nella sicurezza VPN:
- Verificano l’integrità dei dati durante la trasmissione
- Autenticano le connessioni client-server
- Impediscono la manipolazione non autorizzata dei dati
Gli SHA utilizzano una funzione hash per convertire i dati di origine in una stringa di caratteri di lunghezza fissa, nota come “valore hash”. Si tratta di un processo unidirezionale e non può essere invertito; la modifica di un solo carattere nell’input altera drasticamente l’output.
Ecco come funziona nelle comunicazioni VPN:
- Il mittente applica una funzione hash concordata ai dati.
- Il destinatario genera un hash dai dati ricevuti utilizzando la stessa funzione.
- Se l’hash generato corrisponde all’hash trasmesso, l’integrità dei dati viene confermata.
- Gli hash non corrispondenti indicano una potenziale manomissione e i dati vengono scartati.
L’autenticazione hash SHA impedisce gli attacchi man-in-the-middle rilevando la manomissione del certificato, il che impedisce agli hacker di impersonare server VPN legittimi.
Per la massima sicurezza, consigliamo VPN che utilizzano SHA-2 o superiore. SHA-1 ha debolezze note che possono compromettere la sicurezza.