Pensiamo sia utile fare un po di luce sugli aspetti relativi a vantaggi e svantaggi di WireGuard, dopo aver accennato alle caratteristiche principali di Wireguard in un nostro precedente articolo. L’obbiettivo di questo post punta infatti ad approfondire Pro e Contro di questo eccellente strumento per le VPN, per una comunicazione in rete che sia sicura ed in grado di mantenere i nostri dati privati al riparo da occhi indiscreti.
Con questo articolo vogliamo fornire alcune informazioni cruciali su WireGuard in modo che il lettore ancora indeciso possa apprezzare pregi e difetti di questo software. Mettere cioè a confronto alcune caratteristiche primarie del protocollo e del software è sicuramente la cosa migliore per ottenere un quadro complessivo.
Caratteristiche primarie del protocollo e del software di WireGuard quindi; giacché quando ci riferisce a questo strumento, in realtà si intende sia il software che il protocollo di comunicazione VPN. Questo potrebbe generare una qualche confusione, ma di fatto è più o meno ciò che accade anche con OpenVPN, IPSec ed altri noti prodotti per VPN.
WireGuard VPN è un tipo di implementazione di VPN che non pochi si sarebbero aspettati di veder diventare così popolare in così poco tempo. Incluso inizialmente nel Kernel 5.6 di Linux da Linus Torvald nel 2020 ha subito iniziato a crescere in popolarità tra gli sviluppatori, e non solo.
Rimanendo però saldamente ancorati all’argomento specifico di questo post, affrontiamo in dettaglio il tema relativo a vantaggi e svantaggi di WireGuard nell’utilizzo di questo prodotto.
Vantaggi di WireGuard VPN
Entriamo subito, senza por tempo in mezzo, ad analizzare i molti vantaggi che WireGuard può vantare rispetto alla concorrenza.
I vantaggi di velocità e throughput eccellenti
Uno degli aspetti chiave di un buon protocollo VPN è sicuramente quello collegato la velocità ed al throughput. WireGuard è senza ombra di dubbio in cima alla classifica di questo tipo di prestazioni.
Ad essere del tutto onesti, non è poi così semplice come può sembrare eseguire test di questo tipo, poiché i risultati dei benchmark di velocità e throughput dipendono molto dal provider VPN al quale si è connessi.
Tuttavia, alcuni test condotti da Vlad Talks Tech nel 2021 mostrano che WireGuard è almeno il 15% più veloce di OpenVPN, quando anche quest’ultimo utilizza il protocollo UDP. Il test in questione mostra anche come sia il 14% più veloce di IPSec quando utilizza la crittografia AES-GCM ed un throughput del 75% migliore di OpenVPN a parità di crittografia.
Inoltre, con WireGuard si è ottenuto un responso al comando ping
inferiore del 77,5% rispetto a IPsec e una latenza inferiore del 74% rispetto a OpenVPN.
I vantaggi di una Cifratura moderna e potente
Non dobbiamo lasciarci ingannare dal fatto che questo protocollo non utilizza i più noti e collaudatissimo AES
o SHA
, i quali devono parte della loro fama e solidità ai lunghi anni di servizio. Il codice utilizzato per la crittografia simmetrica, ChaCha20
, è altrettanto potente e più veloce, in termini di prestazioni, come descritto in questo articolo (in inglese).
Esso si basa sul protocollo Elliptic Curve Diffie-Hellman (ECDHE) per la negoziazione e combinato con Poly1305 per lo scambio di dati. Ad esempio, a partire dal 2015, il miglior attacco è riuscito a violare solo 8 dei 20 cicli (round) di crittografia di ChaCha20 che i dati sono costretti ad attraversare per essere definitivamente criptati. Ciò rende WireGuard una delle VPN più sicure.
Un ulteriore strato di sicurezza può essere introdotto utilizzando una PresharedKey
nel file di configurazione tra il client ed il server. che rende partecipa alla cifratura dei dati, insieme alla PubliKey
ed alla PrivateKey
.
Facile da implementare e da utilizzare
Con WireGuard non è più necessario scaricare e modificare manualmente i file di configurazione VPN. Anche quando l’indirizzo IP scade o cambia il punto di accesso del dispositivo client. Dopo aver installato l’App WireGuard ed eseguito l’accesso, il software dispone già di tutti i dati necessari del EndPoint
del server.
Il tunnel VPN viene stabilito quando il dispositivo client ed il server eseguono il primo handshake e si scambiano le chiavi. Da quel momento in poi, entrambi si riconoscono a vicenda automaticamente e la configurazione VPN viene aggiornata al volo (on-the-fly). Ciò è possibile in virtù del Roaming IP. Ossia il server non ha alcuna necessità di conoscere l’indirizzo IP del client, che quindi può cambiare in caso di Roaming di quest’ultimo da una rete all’altra.
WireGuard è un software Open Source
Quando ci si mette alla ricerca di un qualsiasi software, sappiamo bene che le soluzioni proprietarie spesso appaiono più appetibili e ricche di funzionalità . Ci si rende però presto conto che è più il reparto marketing del produttore ad aver fatto un buon lavoro, piuttosto che il reparto sviluppo.
Il software di WireGuard è Open Source fin dalle sue primissime versioni, con tutti i vantaggi che da questo ne possono derivare. Per coloro che sono in grado di farlo, è quindi possibile ispezionare il codice ed eventualmente proporre modifiche, implementazioni, curare bug e verificarne costantemente la sicurezza. Oltre ovviamente per mero scopo di studio, per chi è interessato ad aspetti più accademici.
Per quanto riguarda il protocollo, esso è sorprendentemente elegante, dal punto di vista della programmazione, ma anche dal punto di vista implementativo e di funzionamento.
Da notare che, laddove ad esempio OpenVPN richiede circa 400.000 righe di codice, WireGuard ha meno di 4.000 righe di codice sorgente. Ciò lo rende indubbiamente più leggero e più facile da implementare, riducendo notevolmente il rischio di difetti, bug incoerenze e vulnerabilità . Meno righe di codice si traduce in un sorgente molto più facile da controllare e correggere. Ciò che i guru della sicurezza traducono in minore superficie di attacco.
I vantaggi di un codice compatto e minori risorse di sistema
Come già citato, il codice sorgente di WireGuard è di gran lunga più snello di quello di altri software. Questa caratteristica ha un notevole impatto anche sul versante dei consumi energetici e di conseguenza sulla durata delle batterie dei dispositivi mobili.
Un codice così compatto ed efficiente significa utilizzo più contenuto delle risorse computazionali. CPU meno impegnate si traduce in un conseguente minor consumo di batteria, oltre a requisiti di sistema meno importanti. I dispositivi mobili non possono che giovare di tutto questo.
Inoltre, il continuo progresso del hardware dei dispositivi, porterà ben presto questi a supportare i moderni algoritmi di cifratura ChaCha20 e Poly1305 impiegati da WireGuard. Algoritmi che al momento sono ancora realizzati in maniera discreta direttamente nel codice.
WireGuard è un software gratuito
Oltre ad essere Open Source, WireGuard è anche completamente gratuito. Sia il software che il codice sorgente, può essere cioè scaricato gratuitamente.
Le aziende sanno bene quanto sia determinante il fattore costo nell’approvvigionamento di prodotti tecnologici all’avanguardia ed in ultima analisi del ROI (Return Of Investment).
Lo sanno bene anche gli sviluppatori, i testers ed i consulenti informatici che necessitano di sperimentare sempre nuove soluzioni di sicurezza da implementare nel mondo reale. Per questi ultimi il fattore costo di un’applicazione per la sperimentazione e la progettazione è un elemento cruciale.
Connessioni rapide
Un ulteriore grande vantaggio di WireGuard rispetto ai protocolli concorrenti è la rapidità con la quale avviene la connessione tra client e server. Talmente rapida, tanto da apparire quasi istantanea.
D’altro canto, altri protocolli VPN richiedono da qualche secondo fino a circa 20 secondi, in funzione del tipo di configurazione adottata.
Questo si traduce in enorme vantaggio nei casi in cui sia necessario collegarsi con più di un dispositivo, anche contemporaneamente, anche più volte al giorno.
Per non parlare delle interruzioni causate dell’azione dei Kill Switch introdotti da firewall e router lungo tutto il percorso della rete fino al End Point. La riconnessione, in caso di interruzioni, è pressoché immediata, al punto da apparire trasparente alle applicazione ed all’utente.
Questo punto è fondamentale non solo nei casi di interruzione da Kill Switch, ma anche e soprattutto nei casi di Roaming del client da una rete all’altra.
Dati invisibili e ben protetti
Il protocollo WireGuard non è espressamente pensato per l’offuscamento, bensì comunica esclusivamente con gli indirizzi IP predefiniti. Il ché è un efficace modo per rimanere nascosto senza rivelare la propria presenza in caso di pacchetti non autorizzati.
Per meglio chiarire questa peculiare e cruciale caratteristica, un esempio è meglio di molte spiegazioni. Se si tenta di collegarsi ad esempio ad un server ssh
con il comando telnet <indirizzo_ip> 22
, esso risponderà con una stringa che indica chiaramente che è stato raggiunto un server Ssh; ad esempio: SSH-2.0-OpenSSH_8.5
. Il che rappresenta una manna per qualche hacker, in quanto può esplorare quale protocollo si trova dietro una determinata porta TCP
o UDP
.
Al contrario, WireGuard rimane silenzioso fintanto che non avviene lo scambio delle chiavi di cifratura e comunque dopo che sia stata verificata la corretta corrispondenza ed autenticità di tali chiavi. Inclusa l’eventuale presenza della PresharedKey
.
In aggiunta a quanto appena menzionato, WireGuard non riutilizza i numeri casuali impiegati per la crittografia; inoltre il contatore a 64 bit della numerazione dei pacchetti non è mai decrementato. Viene invece utilizzata una Sliding Windows che tiene traccia del massimo contatore di pacchetti ricevuti. Ciò rende il protocollo particolarmente resistente agli attacchi DoS (Denial of Service) ed agli Attacchi Replay, nonché alle ispezioni di rete.
Piattaforme supportate
Inizialmente rilasciato per il kernel Linux, WireGuard è ormai da tempo un software multi-piattaforma e multi-environment ampiamente distribuibile.
Ad oggi, il software WireGuard è disponibile per Linux, Windows, macOS, BSD, iOS e Android; insomma, quasi per il 100% dei sistemi operativi attualmente disponibili sul mercato.
Svantaggi di WireGuard
Continuando la nostra analisi riguardo ai vantaggi e svantaggi di WireGuard, Per quanto esso sia ormai quasi unanimemente accettato dalla comunità Open Source e non solo, non possiamo non tener presente che anch’esso soffre di qualche aspetto negativo da tenere ben presente.
Nessun offuscamento per impostazione predefinita
Poiché il suo obiettivo è fornire il tunneling VPN nel modo più semplice ed efficiente possibile, WireGuard non si cura di offuscare sé stessa. Il ché significa che quando si analizza il traffico in entrata ed in uscita, si può facilmente determinare che si tratta di traffico VPN criptato. I dati sono al sicuro, ma risulta subito palese che si tratta di un tunnel VPN.
Da ciò ne deriva che i Firewall dei provider che eseguono il Deep Packet Inspection (DPI) possono decidere di bloccare il traffico di WireGuard. Mi riferisco ai filtri applicati su alcuni servizi di streaming, oppure alle restrizioni al traffico internet imposto dalle autorità nazionali di paesi nei quali internet non è del tutto libera.
Potenziale perdita di pacchetti
In realtà questo è un tipo di problematica che può non può essere attribuita espressamente a WireGuard, quanto piuttosto al sottostante protocollo UDP (User Datagram Protocol). Infatti, sebbene il software sia particolarmente efficiente, esso non controlla l’effettiva consegna dei pacchetti dati a destinazione. Cionondimeno i progettisti hanno preferito impiegare il protocollo UDP per il trasporto dei pacchetti dati criptati, a causa delle orribili prestazioni di un tunnel TCP-over-TCP.
Intendiamoci: non c’è alcuna effettiva perdita di dati. Il protocollo è in grado di mantenere la corretta sequenza dei pacchetti di dati attraverso l’uso di una propria Sliding Window che tiene traccia degli ultimo 2000 frammenti inviati e ricevuti.
Alcuni problemi di privacy, ma risolvibili
Quanto abbiamo detto fin qui in merito agli svantaggi di WireGuard, essi li ritroviamo per lo più solo alla versione inalterata del protocollo e senza adottare particolari accorgimenti a contorno. Tuttavia ogni provider VPN adotta la sua soluzione personalizzata. Esattamente ciò che lo sviluppatore WireGuard aveva previsto.
Ad esempio, NordVPN utilizza un doppio sistema NAT nel proprio protocollo VPN interno NordLynx basato su WireGuard. Fornisce cioè lo stesso indirizzo IP a ogni utente, ma non appena viene il tunnel viene istanziato, ogni tunnel ottiene un indirizzo IP univoco.
In questo modo NordVPN non è costretto a memorizzare registri, delegare dinamicamente gli indirizzi IP, implementare il tunneling TCP se necessario e supportare PFC (Perfect Forward Secrecy).
WireGuard non può allocare indirizzi IP dinamici
Effettivamente questo potrebbe rappresentare un certo livello di rischio; anche se limitato. Quando infatti si ottiene sempre il medesimo indirizzo IP, nelle ripetute connessioni VPN ci si espone al rischio della predicibilità dell’indirizzo IP. Tuttavia questo può rappresentare un problema solo per gli indirizzi IP privati, utilizzati all’interno della VPN stessa.
Va comunque sottolineato che I maggiori fornitori di terze parti che impiegano WireGuard, adottano configurazioni personalizzate del protocollo, adottando metodologie che permette loro di allocare gli indirizzi IP in modo dinamico.
Registra il mio vero indirizzo IP
Per impostazione predefinita, WireGuard non elimina gli indirizzi IP reali registrati. Questo può rappresentare un problema solo se i provider VPN vogliono impedire la registrazione degli indirizzi IP reali. D’altra parte, non c’è nulla che impedisce ai provider VPN esterni di eliminare tali indirizzi IP dalle registrazioni. Questa difatti è una delle pratiche più o meno standard adottate nelle politiche sulla privacy di provider VPN più affidabili. Ovvero, quei providers che considerano il rispetto della privacy degli utenti in cima alle loro priorità .
WireGuard non cambia le chiavi
Il protocollo WireGuard supporta la segretezza, cosiddetta segretezza in avanti (Forward Secrecy); tuttavia, le chiavi rimangono statiche durante gli handshake e per l’intera durata della sessione. Ciò avviene a differenza di PFC (Perfect Forward Secrecy) in cui i software VPN tipicamente generano una nuova chiave di crittografia per ogni sessione.
Va detto che tale debolezza potrebbe rappresentare un problema nel caso-limite di violazione del server. Nel caso in cui si verifichi una violazione di questo tipo, l’attaccante avrà ovviamente l’accesso a tutte le informazioni necessarie per decriptare tutto il traffico in transito all’interno della VPN.
Credo sia del tutto superfluo rimarcare che la sicurezza dei server è un aspetto fondamentale e che tutti i server devono essere sempre protetti in modo adeguato contro gli attacchi informatici più devastanti.
Conclusioni su vantaggi e svantaggi di WireGuard
Tra gli utilizzatori di Virtual Private Networks è cresciuto rapidamente l’interesse intorno a questo software. Ciò ha avuto come conseguenza, un incremento della domanda verso i provider di servizi VPN per poter utilizzare WireGuard. Al punto che ad oggi moltissimi provider, come ad esempio NordVPN e molti altri, hanno incluso WireGuard tra i prodotti offerti alla propria clientela.
Avendo percorso i principali vantaggi e svantaggi di WireGuard, non possiamo non menzionare che molti di questi sono direttamente riconducibili alla tipologia di VPN che si intende realizzare. L’utilizzo di un provider VPN esterno per accedere a contenuti in streaming è certamente diverso da una VPN interamente privata per accedere a documenti e file della propria azienda.
Quindi, per semplificare, per l’accesso ad alcuni servizi di rete potrei senza ombra di dubbio scegliere un provider VPN come NordVPN. D’altro canto per i servizi di accesso alla mia rete privata dell’ufficio, sceglierei quasi sicuramente di implementare un server PiVPN, oppure una soluzione più robusta basata su un UTM Firewall OPNSense.
In definitiva, molti vantaggi e svantaggi di WireGuard dipendono dall’utilizzo cui è destinata la nostra VPN e dagli obbiettivi che si desidera raggiungere. Dovrebbe sempre essere tenuto conto il raggiungimento di un buon equilibrio tra complessità , efficienza e robustezza.
CondividiDisclaimer
Questa pagina potrebbe contenere link di affiliazione. Gli acquisti o gli ordini che effettuerai tramite tali link possono generare commissioni che ci aiutano a sostenere questo sito web.