Come funziona VpnHood
L'app VpnHood incanala il traffico del dispositivo in un tunnel crittografato fino al tuo server, che lo inoltra a Internet. Ecco come viaggiano i tuoi dati da un capo all'altro.
Sul dispositivo
L'app acquisisce il traffico tramite la scheda di rete virtuale fornita dal sistema operativo per le VPN. Gestisce tre tipi di traffico: TCP, UDP e ping. Qualsiasi altro pacchetto viene ignorato.
Anche lo split tunneling viene gestito sul dispositivo: il traffico escluso per app, paese, dominio o IP va direttamente su Internet senza passare dal tuo server. Scopri di più sulla pagina dello Split tunneling.
L'app imposta anche il DNS del dispositivo: puoi usare i server scelti nelle impostazioni o quelli predefiniti del tuo server (Google DNS di default). Le query DNS restano sempre protette nel tunnel, anche per i siti esclusi dallo split tunneling.
Il tunnel
Per impostazione predefinita, l'app si connette alla porta TCP del server, 443 (modificabile a piacere), tramite TLS, la stessa crittografia usata da HTTPS. Comunica proprio come un'applicazione web, tramite messaggi WebSocket: ogni singolo byte all'interno del tunnel è completamente crittografato tramite TLS.
Prima di trasmettere qualsiasi dato, l'app verifica il certificato del server. Accetta un certificato rilasciato da una CA attendibile per il nome indicato nella chiave di accesso, oppure solo il certificato corrispondente all'impronta digitale inclusa nella chiave. Ecco perché un server può iniziare subito con un certificato autofirmato e le chiavi restano valide anche dopo il rinnovo di un certificato affidabile.
Nelle impostazioni del protocollo, puoi scegliere UDP o QUIC al posto di TCP. Con UDP, i pacchetti del dispositivo vengono inviati alla porta UDP del server tramite datagrammi protetti da crittografia AES-GCM. QUIC trasmette gli stessi messaggi di TCP, ma integra direttamente il proprio livello TLS. Il server comunica a ciascuna app quali opzioni supporta; se la scelta desiderata non è disponibile (come dietro a un reverse proxy), l'app userà TCP. Ricorda: se una rete blocca la porta UDP, l'app configurata su UDP non potrà trasmettere traffico finché non viene reimpostata su TCP.
Qualsiasi richiesta al server che non provenga da un'app VpnHood riceve un semplice errore HTTP, esattamente come accade visitando un sito web protetto da autenticazione.
TCP: a pacchetti o una richiesta per connessione
Per impostazione predefinita, l'app invia il traffico TCP sotto forma di pacchetti attraverso il tunnel. Il server li inoltra tramite la propria scheda di rete, esattamente come farebbe un router: la modalità più veloce e che consuma meno batteria.
In Cloak Mode, l'app gestisce ogni connessione direttamente sul dispositivo e richiede al server di aprirla con una richiesta dedicata. Il server si connette autonomamente al sito web e scambia i dati in entrambe le direzioni. Agli occhi della rete, il traffico non sembra più un unico tunnel persistente, ma un insieme di normali richieste provenienti da un browser. Questa modalità richiede una minima frazione di velocità e batteria in più, e riutilizza in modo efficiente ogni connessione per le richieste successive.
L'app opera in questa modalità anche senza Cloak Mode: quando il server non dispone di una scheda di rete dedicata (come negli ambienti Docker) e durante l'uso dello split tunneling per dominio.
UDP e ping
Il traffico UDP viaggia a pacchetti attraverso il tunnel, a prescindere dal protocollo scelto nell'app. Lo stesso vale per i comandi ping (vengono gestite le richieste echo e scartati gli altri pacchetti ICMP). Il server li inoltra attraverso la propria scheda di rete oppure, se non disponibile, tramite socket dedicati, effettuando il ping per conto del dispositivo.
Sul server
Installato su Linux, VpnHood! SERVER sfrutta una scheda di rete dedicata e inoltra i pacchetti verso Internet tramite NAT, come un vero router. Nei container Docker, dove questa interfaccia non è presente, il server funziona come un proxy: le app inviano TCP con una richiesta per connessione, mentre il server gestisce autonomamente ogni connessione, socket UDP e ping. Il passaggio avviene in modo del tutto automatico.
In entrambe le modalità, il server blocca qualsiasi inoltro verso i propri indirizzi o verso le reti locali a cui è collegato.
Richiede la porta TCP aperta e la porta UDP assegnata al primo avvio per le app configurate su UDP. Il protocollo QUIC è disattivato per impostazione predefinita. Consulta Configurare gli indirizzi IP del server per individuare la porta UDP.
Un server gestito contatta VpnHood! MANAGER via HTTPS all'indirizzo access.vpnhood.com per convalidare le chiavi a ogni connessione e monitorare i consumi. MANAGER non si connette mai direttamente al server e le app non comunicano mai con esso. MANAGER può anche reindirizzare un'app verso un altro server del gruppo. Un server autonomo (standalone) verifica invece le chiavi direttamente dai propri file locali.
Cosa contiene una chiave di accesso
Una chiave di accesso include tutto il necessario affinché l'app riconosca e consideri sicuro il tuo server: nome di dominio, indirizzi IP, porta, nome o fingerprint del certificato e il segreto della chiave. I dati sono codificati, non crittografati: chiunque possieda una chiave può visualizzare gli indirizzi del server e connettersi. Condividi le chiavi solo con utenti fidati e scopri come proteggere l'indirizzo IP del tuo server dal blocco per comprendere i rischi legati all'esposizione degli indirizzi.