Che cos’è un kill switch VPN?
Un kill switch VPN è una funzione che blocca il traffico di rete se il tunnel VPN si disconnette inaspettatamente. Questo articolo spiega cosa fa davvero un kill switch, come viene implementato a livello di sistema operativo e come verificare che la funzione stia operando correttamente.
Definizione
Un kill switch è un controllo a livello di rete che impedisce al traffico di lasciare il dispositivo attraverso un’interfaccia non protetta mentre la VPN è nominalmente attiva. Se il tunnel VPN si disconnette — che sia per cambiamenti di rete, guasto del server o qualsiasi altro motivo — il kill switch garantisce che il traffico non ricada silenziosamente sull’interfaccia di rete predefinita.
La funzione viene talvolta chiamata anche “blocco di rete,” “protezione sempre attiva” o “kill switch di internet.” Il comportamento è lo stesso a prescindere dal nome.
Perché esistono i kill switch
I tunnel VPN non sono sempre perfettamente stabili. I cambiamenti di rete — il passaggio dal Wi-Fi alla rete cellulare, lo spostamento tra punti di accesso, l’attraversamento di gallerie — possono interrompere brevemente la connessione. Anche la manutenzione dei server, problemi di peering intermittenti o rari errori di protocollo possono causare disconnessioni.
Senza un kill switch, il sistema operativo instrada il traffico attraverso qualunque interfaccia resti disponibile. Dal punto di vista dell’utente, il dispositivo sembra continuare a funzionare normalmente — le pagine web si caricano, le applicazioni si connettono — ma ora il traffico attraversa la rete locale e il provider invece della VPN.
Per chi si affida alla VPN per la privacy o per accedere a servizi legati a una specifica posizione, questa ricaduta silenziosa vanifica lo scopo di usare una VPN. Il kill switch garantisce che la connettività venga sospesa anziché reindirizzata silenziosamente.
Come viene implementato
Le implementazioni del kill switch variano a seconda della piattaforma. Esistono due approcci generali.
Implementazione a livello di sistema
Sulle piattaforme con supporto VPN integrato, il kill switch viene imposto dal sistema operativo. Su iOS, il framework Network Extension offre un’opzione “includeAllNetworks” che, combinata con regole di instradamento adeguate, impedisce al traffico di lasciare il dispositivo attraverso qualsiasi interfaccia diversa dal tunnel. Questo viene imposto a livello di kernel e si applica a tutte le applicazioni, comprese quelle in esecuzione in background.
Su Linux, i kill switch vengono solitamente implementati tramite regole di firewall — iptables o nftables — che bloccano tutto il traffico tranne i pacchetti destinati all’indirizzo del server VPN. Le regole vengono aggiunte quando il tunnel viene stabilito e rimosse quando viene disconnesso intenzionalmente.
Implementazione a livello di applicazione
Alcune applicazioni VPN implementano il kill switch all’interno dell’applicazione stessa, monitorando il tunnel e modificando le regole di instradamento o di firewall in risposta a una disconnessione. Le implementazioni a livello di applicazione sono più flessibili ma dipendono dal fatto che l’applicazione resti attiva per imporre la policy.
L’applicazione a livello di sistema è generalmente più affidabile perché continua a operare anche se l’applicazione VPN si blocca o viene terminata.
Tipi di kill switch
I kill switch possono essere configurati in diverse modalità che differiscono per quanto siano aggressive nel bloccare il traffico.
- Kill switch permanente. Il traffico viene bloccato ogni volta che la VPN non è attivamente connessa, anche quando l’applicazione non è stata avviata. Offre la garanzia più forte ma richiede un’azione esplicita per essere disattivato.
- Kill switch di sessione. Il traffico viene bloccato solo durante una sessione VPN attiva. Se l’utente si disconnette manualmente, il kill switch si disattiva e il traffico normale riprende.
- Kill switch specifico per applicazione. Disponibile su alcune piattaforme desktop, questa modalità blocca specifiche applicazioni quando la VPN è inattiva permettendo alle altre di continuare normalmente. La configurazione è utile per gli strumenti che gestiscono dati sensibili, ma la granularità aggiunge complessità.
Quando si attiva il kill switch
Il kill switch è progettato per gestire condizioni che il sistema operativo normalmente non tratterebbe come guasti. Le cause di attivazione comuni includono:
- Il server VPN diventa irraggiungibile a causa di interruzioni di rete o manutenzione lato server.
- L’interfaccia di rete del dispositivo cambia — per esempio, passando dal Wi-Fi alla rete cellulare — e il tunnel non si ristabilisce rapidamente.
- Un errore a livello di protocollo causa la terminazione del tunnel.
- La rete locale perde i pacchetti diretti al server VPN o provenienti da esso, anche in alcuni scenari di captive portal.
Durante ciascuna di queste condizioni, il kill switch sospende il traffico finché il tunnel non viene ristabilito oppure l’utente non disattiva esplicitamente il kill switch.
Limiti
Un kill switch è una funzione difensiva, non una soluzione completa. Vale la pena segnalare due limiti.
La transizione non è sempre istantanea. Tra il momento in cui il tunnel cade e il momento in cui il kill switch si attiva completamente, può esistere una piccola finestra durante la quale il traffico potrebbe teoricamente fuoriuscire. Sui sistemi ben progettati questa finestra è abbastanza breve da essere praticamente trascurabile — in genere pochi millisecondi — ma non è sempre nulla. Le implementazioni a livello di sistema chiudono questa finestra in modo più affidabile rispetto a quelle a livello di applicazione.
Le fughe DNS sono una questione a parte. Un kill switch impedisce al traffico IP di uscire attraverso interfacce non protette, ma le richieste DNS possono talvolta aggirare il tunnel passando dalle impostazioni predefinite del sistema. Una configurazione completa usa sia un kill switch sia l’instradamento del DNS attraverso il tunnel. Snap VPN configura entrambi in modo predefinito.
Verifica
Un kill switch può essere verificato simulando un guasto del tunnel e confermando che il traffico venga bloccato.
- Connetti la VPN e verifica che un servizio che riporta l’IP mostri l’indirizzo del server.
- Senza disconnetterti dall’applicazione, disabilita l’interfaccia di rete che la VPN sta usando — per esempio, spegnendo il Wi-Fi mentre il tunnel è attivo.
- Prova a caricare una pagina web. Con un kill switch funzionante, la pagina non dovrebbe caricarsi finché il tunnel non viene ristabilito o il kill switch non viene disattivato intenzionalmente.
Su iOS, il kill switch viene imposto a livello di sistema quando il profilo VPN è configurato con le opzioni appropriate. Snap VPN attiva il kill switch in modo predefinito e non lo espone come un’impostazione opzionale — la funzione fa parte della configurazione standard anziché essere un’impostazione che può essere disattivata inavvertitamente.
Per saperne di più sulla configurazione della VPN e su cosa ci si può aspettare da una VPN, leggi la nostra introduzione alle VPN e la guida alla configurazione su iPhone.