Questa pagina fornisce linee guida per gli operatori di rete per garantire che le app di rete privata virtuale (VPN) per consumatori e aziende aziendali offrano una buona esperienza all'utente finale nelle loro reti. Android fornisce la classe
VpnManager
per consentire agli sviluppatori di creare soluzioni VPN, utilizzate da privati e imprese per criptare le comunicazioni o indirizzarle a reti diverse.
Consigliamo agli operatori di rete di seguire queste linee guida:
- Supporta i pacchetti del protocollo IPv6 Encapsulating Security Payload (ESP) (Next Header 50) sulla tua rete, assicurando che questo traffico abbia un rendimento simile alle connessioni del protocollo User Datagram Protocol (UDP) o Transmission Control Protocol (TCP). Le sessioni ESP devono essere consentite in entrata ai dispositivi o impostate su timeout molto elevati e inoltrate alla velocità della linea.
- Imposta timeout per la Network Address Translation (NAT) e per il firewall stateful di almeno 600 secondi per le connessioni UDP sulla porta 4500 per garantire che le soluzioni VPN possano mantenere una connettività affidabile senza costi eccessivi per l'energia.
Supporta pacchetti del protocollo ESP IPv6 (Next Header 50)
ESP (Encapsulating Security Payload) è il formato del pacchetto definito nell'ambito dell'insieme di protocolli IPSec (Internet Protocol Security) per criptare e autenticare i pacchetti in una soluzione VPN. Il sistema operativo Android implementa questo protocollo di sicurezza standard nella sua soluzione VPN integrata.
Nelle reti compatibili con IPv6, i pacchetti ESP vengono trasportati direttamente nei pacchetti IPv6 con un campo Intestazione successiva pari a 50. Se una rete non supporta correttamente questi tipi di pacchetti, può causare una mancanza di connettività per le soluzioni VPN che mirano a utilizzare questo protocollo senza ulteriore incapsulamento dei pacchetti. La rete potrebbe eliminare questi pacchetti a causa della configurazione del firewall. Oppure i pacchetti ESP potrebbero incontrare percorsi lenti sulla rete, con prestazioni di velocità effettiva gravemente ridotte rispetto alle connessioni TCP o UDP.
L'Internet Engineering Task Force (IETF) consiglia di consentire IPsec tramite i firewall utilizzati dai servizi di accesso a internet per i consumatori. Ad esempio, consulta la sezione 3.2.4 del documento RFC 6092. I pacchetti ESP possono essere consentiti in sicurezza attraverso i firewall in entrambe le direzioni perché, se un dispositivo riceve un pacchetto ESP che non fa parte di un'associazione di sicurezza esistente, il dispositivo lo ignora. Di conseguenza, il dispositivo non deve inviare pacchetti keepalive per mantenere la connettività VPN, il che consente di risparmiare sulla durata della batteria. Consigliamo alle reti di consentire i pacchetti ESP ai dispositivi in qualsiasi momento o di impostare il timeout delle sessioni ESP solo dopo lunghi periodi di inattività (ad esempio 30 minuti).
Consigliamo agli operatori di rete di supportare i pacchetti del protocollo ESP (pacchetti IPv6 con un'intestazione successiva pari a 50) sulle loro reti e di inoltrarli in hardware alla velocità della linea. In questo modo, le soluzioni VPN non riscontrano problemi di connettività e offrono prestazioni paragonabili a quelle delle connessioni UDP o TCP.
Imposta timeout sufficienti per NAT e firewall stateful
Per mantenere l'affidabilità della connessione, una soluzione VPN deve mantenere una connessione di lunga durata al server VPN che fornisca connettività in uscita e in entrata (ad esempio per ricevere notifiche push in arrivo, messaggi di chat e chiamate audio o videochiamate). La maggior parte delle app VPN IPsec utilizza ESP incapsulato in pacchetti UDP IPv4 con porta di destinazione 4500, come descritto nel documento RFC 3948.
Per mantenere questa connessione, il dispositivo deve inviare periodicamente pacchetti al server. Questi pacchetti devono essere inviati con una frequenza superiore ai timeout di NAT e firewall imposti dall'operatore di rete. I keepalive frequenti richiedono molto potenza lato client e hanno un impatto significativo sulla durata della batteria. Inoltre, generano un traffico di indicatori considerevole sulla rete, anche se il dispositivo è altrimenti inattivo.
Consigliamo agli operatori di aumentare i timeout di NAT e del firewall stateful in modo sufficiente per evitare un impatto sulla batteria. Il timeout consigliato per l'incapsulamento IPsec UDP (porta 4500) è di almeno 600 secondi.
Nelle reti mobili, i timeout NAT UDP vengono spesso mantenuti bassi perché la scarsità di indirizzi IPv4 impone fattori di riutilizzo delle porte elevati. Tuttavia, quando viene stabilita una VPN, la rete del dispositivo non deve supportare connessioni TCP di lunga durata, come quelle utilizzate per inviare notifiche in entrata. Pertanto, il numero di connessioni di lunga durata che la rete deve supportare è uguale o inferiore quando è in esecuzione una VPN rispetto a quando non è in esecuzione una VPN.