VPN, Virtual Private Network. Il primo termine da analizzare : network(rete) indica un insieme di due o pi computer ( indicati anche con il termine host) collegati tramite un mezzo fisico condiviso (ovvero accessibile e a disposizione dell'insieme dei PC) , ad esempio una rete LAN o un ponte radio Wireless,il quale permette di far comunicare e scambiare informazioni a i due o pi PC del nostro insieme
firewall software.
Ora prima di analizzarei termini virtual e private, consideriamo un primoscenario di collegamento tra PC.Immaginiamo un pc di un utente remoto che si connette alla propria rete aziendale da casa. In questo caso la rete condivisa (network) e' rappresentata da Internet (con tutto il suo insieme di modem, router ADSL, ATM, line telefoniche, Server degli ISP ecc. ecc.), il protocollo di trasporto e' il TCP.
network security Una VPN consiste nel creare un canale di comunicazione privato (private) tra due PC, ad esempio un host client ed un host server, attraverso una rete pubblica mediante un protocollo apposito. I pc cosi collegati formano una virtual network, si appoggiano per comunicare ad un mezzo fisico (la rete) e creano virtualmente a livello logico una propria rete.
Il canale privato, indicato con il termine tunnel, si pu pensare come ad un tubo aperto agli estremi che rappresento la sorgente e la destinazione delle informazioni da trasmettere che lo attraversano, ma non possono uscirne.
Riassumendo si pu definire VPN la creazione di una connessione e la comunicazione logica tra due computer o tra due reti, come se fossero collegate direttamente, ma che in realt sfruttano una rete fisica condivisa da pi elaboratori.
Va sottolineato che il termine VPN un acronimo che non indica ne una specificatecnologia ne tanto meno un marchio. Scenari di una Virtual Private Network.
Il vantaggio di creare una VPN quello di sfruttare una rete (un mezzo di comunicazione) disponibile a tutti e di facile accesso ( e poco costoso ) e comunicare in tutta sicurezza.
Si pensi ad esempio ad una rete wireless, con un Access Point in un aeroporto con possibilit di connessione ad internet praticamente a disposizione di tutti e il doversi collegare alla propria rete aziendale per lavoro, saremo in balia degli hacker con una facilit estrema, l'utilizzo di una VPN gi una buona base di partenza per rendere sicure le nostre attivit.
La diffusione delle VPN dovuta al fatto che possibile sfruttare una rete come quella di Internet per far comunicare un utente remoto con una rete aziendale, senza dover occuparsi di allestire collegamenti diretti tramite modem telefonici o ISDN, in questo caso si parla di VPN Remote Access, VPN client-to-Lan.
L'utilizzo delle VPN da parte delle aziende ha permesso di eliminare o quanto meno minimizzare le connessioni tramite linee dedicate dirette e quindi tutte le parti hardware e i costi aggiuntivi di gestione. Un esempio di utilizzo e' il collegamento tra pi sedi di una stessa azienda o pi uffici appartenenti alla stessa azienda remoti tra loro sfruttando un'infrastruttura di network gestita da terze parti, vedi la rete internet, ove i costi di accesso attraverso gli ISP sono abbastanza contenuti. Un impiego di una VPN per collegare siti di una stessa azienda geograficamente remoti indicato con il termine: VPN Site-to-site ( Lan-to-Lan o Gateway-toGateway).
Uno degli aspetti che vanno considerati sull'utilizzo di una rete pubblica sicuramente la sicurezza delle informazioni che vi transitano. La differenza, infatti, che esiste tra un vecchio collegamento dedicato utilizzato dalle aziende per connettere sedi o utenti remoti tra loro e l'utilizzo di una tecnologia come le VPN che queste ultime sfruttano appunto una rete di tutti e dove hanno accesso tutti.
Per implementare una connessione VPN abbiamo bisogno di:
Due entit che si vogliono scambiare informazioni (due PC o due reti Lan).
Un'infrastruttura di rete fisica per la connessione e il trasposto delle informazioni.
Un protocollo di tunneling.
Un protocollo/meccanismo di tunneling deve offrire le seguenti funzionalit di:
Autenticazione e Autorizzazione (Authentication - Authorization) Possibilit di autenticare il mittentedella comunicazione. Il destinatario deve poter controllare il mittente ( la sorgente ) delle informazioni.
Integrit. (Integrity). Il destinatario deve avere dei meccanismi per comprendere se le informazioni arrivate a destinazione sono realmente quelle spedite dal mittente.
Riservatezza (Confidentiality). Il mittente non pu inviare un'informazione sulla rete in chiaro, ha necessit di cifrarla affinch se fosse intercettata non sia interpretabile da un soggetto esterno al destinatario.
Per instaurare una connessione VPN, ad esempio tra un client VPN e un server (VPN clien-to-Lan), i passi che sono richiesti possono essere riassunti in linea generale con i seguenti:
Il client VPN contatta il Server.
Il Server se presente notifica la sua presenza.
Il client si presenta e richiede di essere autenticato (ovvero il client richiede al server di identificarlo).
Il server esegue la procedura di autenticazione e autorizzazione (ovvero il server verifica che il tentativo di connessione tra client e server sia permesso dopo il processo di autenticazione sia riuscito).
Il server risponde alla richiesta di autenticazione.
Il Client pu comunicare con la rete ( o il singolo client ) se autorizzato.
Inizia la comunicazione tra le due entit.
Con il termine tunneling si intende tutto il processo che parte dalla creazione della connessione tra gli host, l'incapsulamento dei dati da trasmettere tra sorgente e destinane ovverodel pacchetto origine in un nuovo pacchetto, l'instradamento e il decapsulamento all'arrivo, tutto il processo supportato da una serie di protocolli utilizzati singolarmente o in coppia e che possono utilizzare o no la cifratura dei dati. I dati che viaggiano nel tunnel non sono comprensibili ( o almeno dovrebbero) a soggetti esterni alla rete privata crata.
Lo scenario mostrato in figura precedente ( Figura 6 ) mostra un esempio di quattro utenti (Cristina, Giorgio,Leonardo e Stefano) connessi a internet due dei quali (Leonardo e Cristina)effettuano una connessione VPNche realizza un Tunneling e i dati scambiati viaggiano sulla rete condivisa in maniera cifrata.
I meccanismi con i quali andiamo a creare una VPN dipendono da una serie di fattori:
La rete che abbiamo a disposizione per effettuare il tunneling.
I requisiti di sicurezza (in base anche ad eventuali vincoli di sistema e/o software preesistenti) che si vogliono raggiungere in base alle richieste dell'utente.
La tipologia dei dati da trasferire e come trasferirli, ovvero se dobbiamo rendere sicura una transazione web, piuttosto che l'invio di un file multimediale. Se dobbiamo oppure no effettuare traffico IP, nel caso affermativo se e' di tipo unicast o multicast. Ovvero se uno stesso pacchetto deve essere spedito a uno o pi host.
Osservando il modello OSI (e affiancandola l'architettura TCP, l'architettura di Internet) abbiamo a disposizioni protocolli VPN praticamente a ogni livello, si pu operare sia a livello data-link, network, transport e application.
no trasferite all'interno della rete da un computer generico A ad un computer B sono confezionati in pacchetti . Percorrendo i livelli dall'alto verso il basso, ogni livello aggiunger delle informazioni e il pacchetto inviato sar l'incapsulamento di tutte le informazioni dei vari livelli. I pacchetti che transitano tra un livello ed un altro della pila OSI/ISO sono composti con una testata (header) e un payload, il payload indica una stringa generica, composta di pi sottocampi, di dati scambiati tra livelli di pari entit in sostanza le informazioni da passare al livello sottostante.
Il termine crittografia o cifratura deriva dal greco kryptos ovvero nascondere. L'obiettivo della cifratura o crittografia quello di celare, occultare, una determinata informazione, l'inverso cio la decifrazione o decrittazione il processo che rende nuovamente comprensibile una informazione.
Il processo di cifratura e decifratura si basa sull'utilizzo di una cifra o chiave (generalmente un valore numerico) utilizzato insieme al testo in chiaro e ad una serie di operazioni matematiche per rendere il testo cifrato.
La crittografia a chiave simmetrica la pi antica e si basa sull'utilizzo di un'unica chiave segreta che deve necessariamente essere a conoscenza sia del mittente che del destinatario e la chiave impiegata sia per la codifica che per il processo inverso.
La crittografia a chiave asimmetrica decisamente pi recente come tecnica ed implica l'utilizzo di ben due (o pi) chiavi. La prima detta anche pubblica utilizzata per la cifratura la seconda, derivante da quella pubblica e chiamata segreta o privata utilizzata per la decodifica.
La differenza tra un algoritmo a chiave simmetrica e uno a chiave asimmetrica che la potenza di quelli simmetrici sta nell'utilizzo di un'unica chiave e cicli di operazioni matematiche per la cifratura quelli asimmetrici si basa sull'uso di chiavi particolarmente estese per compiere operazioni inverse. Non possibile dire a priori quali dei due metodi migliore come sempre si hanno pregi e difetti in entrambi, velocit semplicit e sicurezza sono i parametri da valutare nella scelta.
Reti Trusted. Sono reti dove l'utilizzatore del servizio, ovvero colui il quale andr a creare ed ad utilizzare una VPN, pu usufruire di particolari requisiti concordati con il provider (il fornitore del servizio).
L'utilizzatore potrebbe essere il solo ad avere accesso alla rete fisica, intesa come il circuito composto da gli apparati di trasmissione e i cavi di collegamento.
I dati si muovano sucon caratteristiche di sicurezza precedentemente stabilite tra fruitore e fornitore, questo non significa obbligatoriamente che il fruitore del servizio debba necessariamente sapere quali siano i percorsi ma solo che i percorsi rispondano a particolari requisiti.
Reti secure. Sono reti dove il tunneling eseguito su rete pubblica e quindi i singoli pacchetti che viaggiano devono essere necessariamente crittografati affinch anche se fossero intercettati il carpire informazioni dal malintenzionato sarebbe un'impresa ardua, ma non impossibile.
Il traffico dati sempre tutto autenticato e cifrato questo perch, differentemente dalle reti trusted, non si hanno percorsi e reti conrequisiti di sicurezza prestabiliti a priori, i pacchetti possono viaggiare attraverso percorsi e reti fisiche differenti con specifiche di sicurezza differenti.
Deriva dal protocollo PPP ( Point to PointProtocol) , che permette d'instaurare collegamenti punto a punto su reti IP, mette a disposizione un collegamento full-duplex e i pacchetti ricevuti dal peer (host = pc)destinazione arrivano nella stessa sequenza di quelli inviati dal peer sorgente.
Per il trasporto utilizza il TCP, attraverso la porta 1723 per il controllo, in pratica il PPTP sfrutta una connessione IP esistente per creare un tunneling, dopo un processo di identificazione che il client esegue verso server, i metodi di autenticazione pi usati sono CHAP, MS-CHAP, MS-CHAP v2, EAP/TLS, RADIUS,PEAP.
Per quanto riguarda i sistemi Microsoft i dati da trasportare (a livello PPP)sono crittografati tramite l'algoritmo Microsoft Point-to-Point EncryptionMPE con tre possibili livelli di crittografia uno minimo con chiave crittografica a 40 bit una media con chiave a 56 bit e una massima con chiave a 128 bit ( Il livello di crittografia a 128 bit pu non essere supportato da tutti i sistemi).
Un singolo pacchetto prima di essere trasmesso crittografato e successivamente inviato a destinazione, dove una volta ricevuto compie il processo inverso (tunneling). Esempio di utilizzo PPTP su una rete Windows.
Nella figura seguente abbiamo una rete (aziendale o anche internet) composta di pi PC e abbiamo la necessit di creare un tunnel per far comunicare due PC dotati di sistema operativo Microsoft in modo diretto . Un metodo potrebbe essere quello di eseguire uncollegamento PPTP tra idue PC, supponiamo che i due PC abbiano ad esempio un Windows XP Professional e un Windows Vista Home Premium.
In questo caso dovremmo configurare il PC con WindowsXP Professional come Server del nostro collegamento PPPT e il PC con Windows Vista Home Premium come Client. Windows Vista nell'edizione Home Premium non ha la possibilit di creare collegamenti in ingresso (ovvero non pu funzionare da server PPTP) cosi come ad esempio Windows XP Home, sono funzionalit riservate alle versioni pi complete dei rispettivi S.O.
In Autorizzazione utenti selezionare l'utente con il quale il client si connetter al server (l'utente dovr essere creato precedentemente o psi pu utilizzare uno di quelli gi presenti, ovviamente per motivi di sicurezza si sconsiglia di utilizzare un utente con le credenziali di amministratore della macchina), nell'esempio selezionare l'utente leonardo1 virtuali e premere Avanti.
In Software di reteselezionare Protocollo Internet e (TCP/IP) epremere Propriet nella finestra che si aprir sar possibile specificare il range degli indirizzi ip utilizzati dal server e dal client per creare il tunnel.
Selezionare Usa connessione Internet esistente (VPN) , in realt noi non useremo in questo esempio una connessione Internetma una connessione su una lan, premere Avanti.
Ora specifichiamo l'indirizzo IPdel nostro server PPTP e scriviamo in Indirizzo Internet 192.168.61.1e specifichiamo un nome per la nostra connessione in Nome destinazione: VPN premere Avanti.
Digitiamo ora il Nome utente e la Password con il quale accedere mo al server e che ci autenticher (L'utente quello selezionato durante la configurazione del Servere PPTP sul PC con Windows XP Professional). Premiamo Crea.
Ora nella finestra Connessione a una rete selezioniamo Connessione ad una rete. Selezioniamo la nostra connessione appena creata VPN e con il tasto destro selezioniamo propriet.
Selezioniamo Protezione e successivamente Avanzatee Impostazioni qui possiamo andare a personalizzare il tipo di Crittografia, scegliere se utilizzare una SamrtCard o un certificato per la cifrata e/o l'autenticazione. Scegliere ad esempio il protocollo di accesso, come default impostato inambiente Windows il protocollo MS-CHAPV2. Premiamo Annulla
Selezioniamo ora Rete e osserviamo in Tipo VPN quali tipi di connessione VPN il nostro client supporta PPTP VPN ( che quella che noi abbiamo configurato sul PC-Server)o L2TP IPSEC, lasciamo automatico e premiamo Annulla.
Ora sul PC Server apriamo Connessioni di rete e verifichiamoche siano presenti le seguenti voci: Connessioni in Ingresso 1 Client Connesso, e nella riga successiva l'utente connesso.
Ora apriamo una finestra cmd ed eseguiamo il comando ipconfig verifichiamo che esista una connessione VPN, Scheda PPP interfaccia server RAS (Remote Access Server) con indirizzo IP (192.168.100.10).
Eseguiamo ora sempre da finestra cmd il comando netstat -a -p tcp -n verifichiamo cosi che esiste una connessione TCP/IP tra il server 192.168.61.1 sulla porta 1723 (servizio pptp) e il client 192.168.61.2
E' uno degli standard aperti pi utilizzati per le comunicazioni protette su reti IP. Essendo uno standard -aperto- supportato sia da sistemi operativi Microsoft Windows, sia da sistemi like-Unix ( FreeBSD, Solaris) sia da router e firewall fisici ad esempio della CISCO.
Le funzioni implementate da IPSEC che pi che un protocollo pu essere considerato un'architettura di sicurezza a livello network, sono implementate attraverso l'uso di pi protocolli e algoritmi di crittografia.
Le funzioni di integrit e riservatezza sono invece ottenute tramite il protocollo ESP (Encapsulated Security Payload ) che sfrutta invece la forza degli algoritmi DES (Data Encryption Standard)o AESAdvanced Encrypton Standard)che sta diventando ormai lo standard. L'utilizzo dei protocolli sopraccitati implica lo scambio di chiavi di cifratura, meccanismoimplementato dal protocollo IKE (Internet Key Exchange).
Ipsec e' in grado di proteggere (crittografare) sia solamente il payload derivante dal livello transporte in questo caso parliamo di IPSec in transport mode sia di reincapsulare il pacchetto IP in un nuovo pacchetto tutto criptato in questo caso si parla di ipsec tunnel mode.
L'utilizzo di IPsec per le VPN una delle scelte pi utilizzate perch garantisce un ottimo livello di sicurezza, ma non pu essere utilizzato per effettuare traffico tra indirizzi multicast, ma solo unicast. L2TP (Layer Two Tunneling Protocol) (RFC-2661-2341).
Si basa un protocollo della CISCO ( L2F) e incapsula come il PPTP pacchetti PPP. Per il trasporto il protocollo UDP tramite la porta 1701 dopo un processo di identificazione che il client esegue verso server, i metodi di autenticazione pi usati sono i medesimi del PPTP. In sostanza nasce dalla fusione di L2F di Cisco e di PPTP di Microsoft.
Una delle differenze sostanziali che esistono tra L2TP e il PPPT in fatto che L2TP non vincolato a creare un tunneling con end-point su medesimi dispositivi ( esempio: due PC) ma in grado di creare tunnel tra dispositivi differenti.
Molto spesso L2TP utilizzato in coppia con IPSEC, questo perch IPSEC garantisce ottimi meccanismi per crtiptare i dati e L2TP mette a disposizione ottimi meccanismi di collegamento a livello 2.
L'SSL un protocollo che nasce per rendere sicura una comunicazione tra Server-Web e browser. E' stato realizzato dalla Netscape Communications realizzatrice del omonimo browserNetscape nel momento in cui Internet richiedeva ai propri utilizzatori l'invio sulla rete di informazioni strettamente personali, come ad esempio; i dati relativi ad una carta di credito, era impensabile che tali informazioni viaggiassero in chiaro.Il TSL la naturale evoluzione ed in entrambi abbiamo le medesime caratteristiche di modularit e le medesime funzioni di base.
Come si detto SSL-TSL nasce per comunicazioni cifrate suinternet, quindi si pu pensare subito che venga usato per cifrare informazioni derivanti da protocolli quali HTTPe SMTP,ma pensare ci limitativo in quanto SSL un protocollo che lavora a livello Transport e quindi possibile utilizzarlo per cifrare le informazioni di qualunque protocollo presente a tale livello esempio FTP, Telnet ,DNS ecc. ecc.
Un primo step l'autenticazione della connessione tra Server e Client attraverso un algoritmo di crittografia asimmetrica a chiave pubblica (RSA, DSS) seguito da uno scambio in accordo( handshake) dove definita una chiave segreta utilizzata per lo step successivo. Dopo che client e server si sono presentati, cominciano il loro scambio di dati cifrati attraverso un algoritmo a chiave simmetrica (AES, DES, RC4-) il tutto seguito da un bel controllo sull'integrit del messaggio appena cifrato creato attraverso il calcolo di un checksum o MAC ( message Authentication Code) calcolato attraverso un algoritmo come MD5. Il calcolo finale di un MAC necessario per effettuare un controllo che il pacchetto inviato non stato alterato durante la trasmissione.
SSH un protocollo o un programma (ci sono diverse teorie di pensiero, la definizione di programma deriva dal fatto che lavora a livello Application) personalmente preferisco dire che SSH un protocollo implementato da un programma, esistono numerose versioni esempio: OpenSSH, F-Secure,SSH Securshell, ma tutte possono (devono) poter parlare tra loro senza problemi.
SSH nato persostituire alcuni comandi Unix che remotizzano una shell di comando come ad esempio Telnet, FTP, rlogin, tutti comandi che trasferiscono comandi in chiaro sulla rete e quindi facilmente intercettati e modificati. SSH ha la capacit, ad esempio di trasferire file, attraverso una sessione autenticata e criptata, altro non fa che creare una sessione a linea di comando verso un host remoto dove i comandi impartiti sono cifrati prima di essere trasferiti.
La connessione avviene come il solito, tra un client (che fornisce la shell di comandi) e un server che mette a disposizione un servizio dove vengono eseguiti i comandi inviati dal client, il demone (servizio) avviato su sistema operativo like-Unix apre una porta server la 22 e rimane in ascolto.
In linea di massima il funzionamento simile a SSL, si hanno dei meccanismi: per autenticare il client e il server, di scambio chiavi pubbliche per la connessione iniziale e di chiavi simmetriche per la cifratura della comunicazione durante la sessione.
Spesso SSH e' utilizzato per eseguire il -port forwarding- (-inoltro della porta-) ovvero e' in grado di trasferire una sessione TCP qualunque all'interno di un tunneling cifrato per proteggere protocolli non sicuri, sono protette le macchine server dei servizi dietro a un Server SSH.
Supponiamo di avere una situazione come quella rappresentata nella figura sottostante e di aver necessit di far collegare un client Windows fuori dalla nostra rete aziendale al servizio Desktop Sharing di un computer con sistema operativo Linux.
In questo esempio si vedr come utilizzare ssh per eseguire un port-forwarding di una porta e il relativo servizio associato (in questo caso DesktopSharing), non si utilizzeranno particolari configurazioni per l'accesso o la cifratura in automatico ma si eseguiranno tutta una serie di passaggi manuali a scopo didattico. L'esempio facilmente ripetibile in quanto sono stati usati tutti componenti reperibili su Internet per simulare i tre PC possibile anche utilizzare WMware o un VirtualPC.
Client Windows Xp con SSH Secure Shell e Real VNC installati, che serviranno rispettivamente da client ssh e per visualizzare il desktop remoto Linux, indirizzo ip 10.100.10.1.
Server LinuxUbuntu-7.04, con due schede di rete e indirizzi ip 10.100.10.3 per la rete pubblica e 192.168.61.3 per la privata (la rete aziendale), il demone server sshinstallato e avviato correttamente.
Ora sul computer client apriamo una finestra cmd ed eseguiamo il seguente comando: ssh2 -l root 10.100.10.3 -L 10000:192.168.61.10:5900 che tradotto significa: connettiti in ssh al PC 10.100.10.3 (server ssh) esegui il login con l'utente root ( -l root verr poi richiesta la password vedi figura) e crea un tunnel verso il PC 192.168.61.10 e fai si che i servizi disponibili su la porta 5900 siano disponibili in locale sulla porta 10000.
Dopo aver eseguito il login avr a disposizione una sessione aperta sul server sshLinux, ma aprendo un'altra finestra cmd e eseguendo ilcomando netstat -a -n -p tcp potr verificare che esiste una connessione tra il pc client e il server Linux (vedi figura) e una porta server (10000) in ascolto sul pc locale.
Eseguendo di ilcomando netstat -a -n -p tcpsi potr verificare ch non esiste una connessione TCP/IP diretta verso il PC Desktop Linux ma solo verso il PC server Linux.
Posizioniamo ora nella finestra dove abbiamo la sessione ssh aperta ed eseguiamo il comando netstat -a -n (siamo sul server linux) e osserviamo le connessioni tra il client Windows e il Desktop Linux.
Current Mood:
lethargic