Informativa: Siamo una pubblicazione indipendente. Guadagniamo commissioni se acquisti una VPN tramite certi link sul nostro sito.

Come funziona una VPN? Spiegazione della crittografia e del tunneling delle VPN

JP Jones - CTO di Top10VPN

JP Jones è il nostro CTO. Ha oltre 25 anni di esperienza nei campi di progettazione software e networking e supervisiona tutti gli aspetti tecnici del nostro processo di test delle VPN.

Verificato da Simon Migliano

Il nostro verdetto

Una VPN funziona creando una connessione crittografata tra il dispositivo e un server VPN privato che si trova nella posizione prescelta. In questo modo crittografa il traffico Web, nasconde l’indirizzo IP e impedisce al fornitore di servizi Internet e ad altre terze parti di spiare le attività dell’utente.

Come funziona una rete privata virtuale (VPN)

Il software della VPN instrada il traffico Web dell’utente verso un server remoto tramite un tunnel crittografato.

Una rete privata virtuale (VPN) è uno strumento prezioso per proteggere la privacy, la sicurezza e la libertà online degli utenti.

In questa guida viene illustrato il funzionamento del software VPN per nascondere l’indirizzo IP pubblico e crittografare la connessione Internet.

Se si è più interessati a ciò che è possibile fare con una VPN, leggere invece la nostra guida sui motivi per cui utilizzare una VPN.

Breve riassunto: come funzionano le VPN

Una VPN funziona crittografando la connessione e reinstradandola attraverso un server VPN remoto.

Ecco cosa accade al traffico Web quando si utilizza una VPN:

  1. L’utente scarica, installa e attiva l’app VPN sul computer, sullo smartphone o sulla TV.
  2. Nel browser, digita l’indirizzo del sito Web a cui desidera accedere (ad esempio, example.com).
  3. Il software VPN sul dispositivo crittografa la richiesta di connessione, il che rende la posizione e il contenuto della richiesta dell’utente indecifrabili per chiunque osservi.
  4. I dati di connessione vengono inviati al server VPN selezionato, dove vengono decrittografati.
  5. Il server VPN si connette al sito Web per conto dell’utente e il sito Web invia le informazioni richieste al server VPN.
  6. Queste informazioni vengono crittografate dal server VPN e inoltrate al dispositivo.
  7. L’app VPN decrittografa le informazioni e il sito Web richiesto viene visualizzato nel browser.

Seguendo la procedura descritta sopra, una VPN consente di mascherare e nascondere l’indirizzo IP ai siti Web visitati.

Inoltre, il software VPN consente di nascondere l’attività online all’ISP, all’amministratore della Wi-Fi, alle autorità o a chiunque altro stia monitorando la connessione.

Sebbene tutti i software VPN siano in qualche modo simili, questo processo si applica in modo specifico alle VPN personali o “per consumatori”.

Per informazioni sul funzionamento delle VPN ad accesso remoto e da sito a sito, consulta la nostra guida sui tipi di VPN.

Cos’è il tunnel della VPN?

Il termine “tunnel della VPN” è un modo comune di descrivere cosa accade quando si imposta una connessione VPN. In altre parole, si tratta della comunicazione crittografata tra il dispositivo e il server VPN.

Questa comunicazione viene definita tunnel poiché il traffico originale viene crittografato e racchiuso in un livello di traffico non crittografato.

È come prendere una busta contenente una lettera scritta e metterla all’interno di una seconda busta con un nuovo indirizzo: il messaggio reale diventa completamente nascosto al mondo esterno, come se fosse all’interno di un tunnel.

Questo processo è noto come incapsulamento ed è eseguito da protocolli di Tunneling dedicati.

Ulteriori informazioni sui protocolli di Tunneling sono disponibili nella sezione dedicata alla crittografia delle VPN riportata di seguito o nella nostra guida ai protocolli VPN.

Come fa la VPN a nascondere l’indirizzo IP degli utenti?

Quando si naviga sul Web senza una VPN, la connessione passa direttamente dal dispositivo al server che ospita il sito Web o il servizio desiderato.

Per inviare il contenuto pertinente all’utente, questo server Web deve conoscere il suo indirizzo IP.

L’indirizzo IP è essenzialmente il passaporto dell’utente su Internet. Si tratta di un identificativo univoco che indica agli altri computer dove inviare le informazioni in modo che tu le riceva.

Utilizza il nostro IP Checker “Qual è il mio IP” per trovare il tuo indirizzo IP pubblico.

All’indirizzo IP sono associate molte informazioni personali. Rivela la posizione geografica dell’utente e può essere utilizzato per creare un quadro generale della sua attività online.

Per questi motivi, molte persone scelgono di nascondere il proprio indirizzo IP utilizzando una VPN.

Quando si naviga sul Web con una VPN attivata, la connessione viene sempre trasferita a un server VPN remoto prima di passare al server Web che ospita il sito Web o il servizio desiderato.

Quando invia le informazioni all’utente, il server Web in realtà le invia al server VPN che a sua volta le inoltra all’utente. Questo significa che i siti Web visitati non vengono mai in contatto con il reale indirizzo IP dell’utente.

diagramma che mostra come fa la VPN a nascondere l’indirizzo IP dell’utente al sito Web visitato

I siti Web visitati vedono solo una richiesta di connessione proveniente da un server VPN e quindi inviano le informazioni a quel server VPN.

RIEPILOGO: le VPN agiscono da intermediarie tra il dispositivo e Internet. Quando si naviga su Internet senza una VPN, i siti Web visitati vedono l’indirizzo IP del server VPN a cui si è connessi, invece dell’indirizzo IP pubblico originale.

CONSIGLIO DEGLI ESPERTI: le VPN più valide dispongono di server in molte posizioni diverse. È possibile indurre i siti Web a pensare che un utente si trovi in un paese grazie alla connessione a un server VPN di quel paese. È così che si utilizzano le VPN per sbloccare i contenuti “nascosti” sui servizi di streaming come Netflix.

Come fanno le VPN a crittografare e proteggere i dati degli utenti?

La crittografia è il processo di modifica dei normali dati in formato testo non crittografato in un codice segreto che può essere comprensibile solo da chi sa decrittografarlo.

Lo scopo della crittografia è impedire la lettura dei messaggi da parte di persone non autorizzate.

Le VPN utilizzano la crittografia per nascondere i dati dell’attività di navigazione durante il trasferimento tra il dispositivo e il server VPN.

L’utilizzo di una VPN impedisce a ISP, enti governativi, amministratori delle reti Wi-Fi, hacker e terze parti di spiare la connessione dell’utente.

Ma come funziona in realtà una VPN? In che modo una VPN crittografa e protegge i dati?

Nel resto di questa sezione, esamineremo più da vicino i diversi componenti e processi che compongono la crittografia delle VPN, a partire dagli algoritmi di crittografia.

Algoritmi di crittografia

L’app di Private Internet Access mostra come è possibile personalizzare le impostazioni di crittografia della VPN.

Per convertire l’attività online in un codice incomprensibile, le VPN devono utilizzare un algoritmo di crittografia.

Un algoritmo è un insieme di regole che crittografano e decrittografano i dati.

ESEMPI: un algoritmo molto semplice potrebbe crittografare i dati utilizzando la regola “sostituisci ogni lettera nel messaggio con la lettera che la precede nell’alfabeto”. Quindi, la parola privacy diventerebbe oqhuzbx.

Gli algoritmi sono solitamente associati a una specifica lunghezza delle chiavi. In genere, maggiore è la lunghezza della chiave, maggiore è la protezione della crittografia. Ad esempio, AES-256 è considerato più sicuro di AES-128.

Gli algoritmi di crittografia più comunemente utilizzati nelle VPN sono:

1Advanced Encryption Standard (AES)

Advanced Encryption Standard (AES) è uno degli algoritmi di crittografia più sicuri disponibili. Rappresenta lo standard ideale per i protocolli di crittografia online ed è ampiamente utilizzato nel settore delle VPN.

AES è stato istituito dal National Institute of Standards and Technology (NIST) degli Stati Uniti nel 2001, ed è anche noto come algoritmo di Rijndael. È progettato per gestire file più grandi rispetto ad altri algoritmi, come Blowfish, a causa delle dimensioni maggiori del blocco.

AES è solitamente disponibile in chiavi con lunghezza a 128 bit e a 256 bit. Sebbene AES-128 sia ancora considerato sicuro, sappiamo che organizzazioni come l’NSA cercano sempre di violare gli standard di crittografia. Di conseguenza, si preferisce AES-256 in quanto è più probabile che offra una protezione molto maggiore.

Quando si legge che una crittografia è di livello “militare”o “bancario” sul sito Web di una VPN, in genere questo si riferisce all’uso di AES-256. Il governo degli Stati Uniti utilizza la crittografia AES-256 per proteggere i suoi dati sensibili, e questa è la crittografia che cerchiamo quando testiamo e recensiamo le VPN.

2Blowfish

Blowfish è un algoritmo progettato dal crittografo americano Bruce Schneier nel 1993. In passato era l’algoritmo predefinito utilizzato nella maggior parte delle connessioni VPN, ma ora è stato ampiamente sostituito da AES-256.

In genere, Blowfish viene utilizzato con una chiave a 128 bit, anche se può variare da 32 bit a 448 bit.

Blowfish presenta dei punti deboli. Il più noto è la sua vulnerabilità a un attacco crittografico noto come “Birthday Attack” (attacco del compleanno). Per questo motivo, Blowfish deve essere utilizzato solo come ripiego rispetto a AES-256.

3ChaCha20

Pubblicato nel 2008 da Daniel Bernstein, ChaCha20 è un algoritmo di crittografia VPN abbastanza nuovo. Nonostante questo, sta diventando sempre più popolare in quanto è l’unico algoritmo compatibile con l’emergente protocollo WireGuard.

Come AES, ChaCha20 utilizza una chiave a 256 bit, che è considerata molto sicura. Anche i report dimostrano che ChaCha20 è fino a tre volte più veloce di AES.

Al momento non esistono vulnerabilità note in ChaCha20, che offre una valida alternativa ad AES, mentre le tecnologie di crittografia si apprestano ad affrontare la sfida dei computer quantistici in un futuro non troppo lontano.

4Camellia

Camellia è un algoritmo di crittografia molto simile ad AES in termini di sicurezza e velocità. Anche se usa l’opzione delle chiavi a lunghezza inferiore (128 bit), data la tecnologia attuale, è ritenuto impossibile da violare con attacchi Brute Force. Non ci sono stati attacchi di successo in grado di indebolire in modo efficace la crittografia Camellia.

La differenza principale tra Camellia e AES è che non è certificata dal NIST, l’organizzazione statunitense che ha creato AES.

Se da un lato esiste certamente un’argomentazione a favore dell’utilizzo di una crittografia che non è associata al governo degli Stati Uniti, dall’altro Camellia è raramente disponibile nei software VPN, e non è stata testata in modo così approfondito come AES.

RIEPILOGO: per crittografare i dati, una rete VPN non deve utilizzare un algoritmo inferiore a quello della crittografia AES-256. ChaCha20 e Camellia sono alternative sicure, ma la VPN dovrebbe almeno offrire la scelta di AES.

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.

In altre parole, il protocollo VPN determina come viene formato il tunnel della VPN, mentre l’algoritmo di crittografia viene utilizzato per crittografare i dati che passano attraverso il tunnel.

A seconda del protocollo utilizzato, la VPN avrà velocità, funzionalità e vulnerabilità diverse. La maggior parte dei servizi consente di scegliere il protocollo che si desidera utilizzare all’interno delle impostazioni dell’applicazione.

Sono disponibili diversi protocolli VPN, ma non tutti sono sicuri da utilizzare. Di seguito è riportata una rapida panoramica dei più comuni:

  • OpenVPN: open source, estremamente sicuro e compatibile con quasi tutti i dispositivi su cui è possibile eseguire una VPN.
  • WireGuard: velocissimo e molto efficiente, ma deve ancora guadagnarsi la fiducia generale dell’intero settore delle VPN a causa del rilascio relativamente recente.
  • IKEv2/IPsec: protocollo closed source, eccellente per gli utenti di VPN mobili, ma sospettato di essere stato violato dall’NSA.
  • SoftEther: non supportato da molte VPN, ma è veloce, sicuro e ottimo per aggirare la censura.
  • L2TP/IPsec: un protocollo più lento, anch’esso sospettato di essere stato violato dall’NSA.
  • SSTP: gestisce bene i Firewall, ma è closed-source e potenzialmente vulnerabile ad attacchi man-in-the-middle.
  • PPTP: obsoleto, non sicuro, da evitare a tutti i costi.

ULTERIORI INFORMAZIONI: per un’analisi più approfondita dei diversi tipi di protocollo VPN e per scoprire quale sia il migliore, consulta la nostra guida completa ai protocolli delle VPN.

Handshake della VPN

Oltre ai protocolli e agli algoritmi di crittografia, le VPN utilizzano anche processi noti come Handshake e autenticazione Hash per proteggere e autenticare ulteriormente la connessione.

Un Handshake si riferisce alla connessione iniziale tra due computer. Si tratta di un “messaggio di saluto” in cui entrambe le parti si autenticano reciprocamente e vengono stabilite le regole per la comunicazione.

Durante un Handshake, il client VPN (ossia il dispositivo utilizzato) stabilisce una connessione iniziale con il server VPN.

Questa connessione viene quindi utilizzata per condividere in modo sicuro una chiave di crittografia tra client e server. La chiave viene utilizzata per crittografare e decrittografare i dati a entrambe le estremità del tunnel VPN per l’intera sessione del browser.

diagramma che mostra il processo step-by-step di un Handshake tra il client VPN e il server VPN

Gli Handshake delle VPN tendono a utilizzare l’algoritmo RSA (Rivest-Shamir-Adleman) che è stato la base per la sicurezza di Internet negli ultimi vent’anni.

Sebbene non vi siano ancora prove evidenti della violazione di RSA-1024, in genere il suo uso viene considerato un rischio per la sicurezza, data la potenza di elaborazione attualmente disponibile.

RSA-2048 è un’alternativa molto più sicura e provoca un rallentamento di calcolo relativamente ridotto. Pertanto, la maggior parte delle VPN ha smesso di utilizzare RSA-1024.

Si consiglia di considerare attendibili solo le VPN che utilizzano RSA-2048 o RSA-4096.

Anche se il processo di Handshake funziona correttamente e genera una crittografia sicura, ogni sessione generata può essere decrittografata con la chiave privata utilizzata per l’Handshake RSA. In questo senso, è come una “chiave master”.

Se la chiave master dovesse essere compromessa, potrebbe essere utilizzata per decrittografare ogni sessione protetta sul server VPN, passata o presente. Un hacker potrebbe accedere forzatamente al server VPN e ottenere l’accesso a tutti i dati che passano attraverso il tunnel della VPN.

Per evitare che ciò accada, si consiglia di utilizzare VPN configurati con Perfect Forward Secrecy.

Perfect Forward Secrecy

immagine di un client VPN e di un server VPN in stanze separate. Generano entrambi la stessa chiave temporanea per crittografare la sessione

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.

Invece, sia il server VPN che il client VPN generano autonomamente la chiave utilizzando l’algoritmo DH o ECDH.

Si tratta di un processo matematicamente complesso, ma Perfect Forward Secrecy rimuove essenzialmente la minaccia di una singola chiave privata che, se compromessa, esporrebbe qualsiasi sessione protetta mai ospitata sul server.

Invece, le chiavi sono temporanee. Ciò significa che possono rivelare solo una sessione specifica, e niente di più.

Va notato che RSA da sola non può fornire la funzione Perfect Forward Secrecy. Gli algoritmi DH o ECDH devono essere inclusi nella suite di crittografia di RSA per essere implementati.

Anziché RSA, si può usare ECDH da solo per generare un Handshake della VPN sicuro con Perfect Forward Secrecy. Tuttavia, è opportuno fare attenzione alle VPN che utilizzano solo DH, poiché è vulnerabile e può essere violato. Non si tratta però di un problema se utilizzato con RSA.

I tre principali protocolli VPN consigliati, OpenVPN, WireGuard e IKEv2, supportano tutti la funzione Perfect Forward Secrecy.

Autenticazione Hash

Gli algoritmi Secure Hash Algorithms (SHA) vengono utilizzati per autenticare l’integrità dei dati trasmessi e delle connessioni client-to-server. Garantiscono che le informazioni non siano state alterate durante il transito tra l’origine e la destinazione.

Gli algoritmi SHA funzionano modificando i dati di origine utilizzando quella che è nota come funzione Hash. Il messaggio originale viene passato attraverso un algoritmo e il risultato è una stringa di caratteri di lunghezza fissa che non assomiglia per niente all’originale, nota come “valore Hash”.

Si tratta di una funzione unidirezionale: non è possibile eseguire un processo di De-hash per determinare il messaggio originale dal valore Hash.

L’Hashing è utile perché la modifica di un solo carattere dei dati di origine modificherà completamente il valore Hash che viene generato dalla funzione Hash.

Il client VPN eseguirà i dati ricevuti dal server insieme alla chiave segreta, tramite una funzione Hash concordata durante l’Handshake della VPN.

Se il valore Hash generato dal client differisce dal valore Hash del messaggio, i dati verranno eliminati non appena il messaggio viene manomesso.

L’autenticazione Hash dell’algoritmo SHA impedisce attacchi man-in-the-middle poiché è in grado di rilevare eventuali manomissioni di un certificato valido.

Senza di esso, un hacker potrebbe fingersi un server VPN legittimo e ingannare l’utente per farlo connettere a un server non sicuro, dove la sua attività potrebbe essere monitorata.

Per garantire la massima sicurezza, consigliamo di utilizzare VPN che utilizzano SHA-2 o versioni successive. SHA-1 presenta punti deboli comprovati che possono compromettere la sicurezza.