Sicurezza e VPN
La sicurezza è un aspetto intrinseco e fondamentale per una VPN:
A - nel tunnel passano dati sensibili, traffico "interno" e potenzialmente riservato
B - ad uno o entrambi i lati del tunnel esiste un apparato che, generalmente, ha una interfaccia pubblica, raggiungibile da Internet e una interna sulla LAN locale
Questo comporta problemi di sicurezza a 2 livelli:
A1 - Il traffico deve essere confidenziale e integro
B1 - Gli applicativi che gestiscono il tunnel e devono avere porte aperte su Internet e non devono essere vulnerabili
B2 - Se non si usano particolari sistemi di autenticazione (chiavi hardware, certificati digitali, smart key tipo RSA SecureID) basta sapere login e password per entrare in VPN e quindi accedere ad aree interne riservate.
Spesso ci si concentra solo sul punto A1 e alcune soluzioni di VPN sono considerate poco sicure perchè utilizzano metodi potenzialmente craccabili per lo scambio iniziale di chiavi e la successiva criptazione dei dati.
Ipsec è considerato generalmente il protocollo più sicuro.
PPTP, CIPE, VTUN e, in parte, TINC sono considerati genericamente meno sicuri, in particolare per quanto riguarda la confidenzialità (e quindi i metodi di crittazione) dei dati..
Celebre il tal senso l'analisi di Peter Gutmann nel post (href="http://diswww.mit.edu/bloom-picayune/crypto/14238) Linux's answer to MS-PPTP.
Per il punto B1 la sicurezza è data da chi sviluppa i singoli applicativi e da quanto questi sono soggetti a vulnerabilità serie. Come qualsiasi server di rete, un VPN server deve esporre delle porte sulle quali negoziare il tunnel e, quando si è in modalità road-warrior, è necessario lasciare queste porte accessibili a tutta Internet.
Avere porte pubbliche aperte su un apparato che ha anche interfacce interne sulla LAN è una pessima idea, ma in questi casi anche una necessità.
Tutto quanto descritto per i punti A1 e B1 diventa irrilevante se le password degli utenti sono deboli, se vengono usate le stesse password usate per altre applicazioni (per esempio la posta, magari controllata in chiaro via pop3 o imap) ecc.
Esistono metodi per avere VPN server accessibili da tutta Internet e, allo stesso tempo, non esposti costantemente a tutti gli indirizzi:
- Port knocking - Sul VPN server, senza porte accessibili dall'esterno, o su un firewall a monte è in esecuzione un servizio che monitora il traffico sull'interfaccia esterna ed esegue comandi (apre l'accesso a dati IP) quando riceve pattern di traffico predefinito. Controindicazione: spesso è necessario avere un client per inviare il pattern di traffico richiesto dal server.
Maggiori informazioni: http://www.portknocking.org/
- Remote Firewall Opening - Metodo per applicare una regola dinamica ad un firewall per permettere di accedere al VPN server, autenticandosi e visitando specifiche pagine web su un server separato e indipendente. Introduce un livello di autenticazione ulteriore su un server separato.
Maggiori informazioni: Chiedere di RIP a [email protected]