17 December 2007 2
VPN - DefinitieVPN – Virtual Private Network - retele private care folosesc o infrastructura existanta pentru a realiza o conexiune point-to-point
Conexiune securizata (criptare)Folosita pentru a conecta sub-retele apartinind aceleiasiorganizatii
17 December 2007 3
VPN - SecuritatePentru asigurarea securitatii comunicatiei
Conexini prin protocoale criptate (SSL, IPSec)Autentificare (certificate digitale)Verificari a integritatii mesajelor
Asigura protectie impotriva atacurilorPasive
o Interceptari ale mesajelor fara modificarea lor– Criptare
Activeo Modificari ale mesajelor, atacuri de tip “Man in the middle”
– Autentificarea pachetelor prin semnatura digitala
17 December 2007 4
Criptografie (1)Un sistem criptografic contine:
Textul ce trebuie transmisAlgoritmul de criptareCheia de criptareMesajul criptat
Doua categorii principale de algoritimi de criptareCheie privata – AES, IDEACheie publica - RSA
17 December 2007 5
Criptografie (2)Distributia cheilor de criptare – cel mai vulnerabilprocessPentru algoritimi cu chei publice nu exista o metodainfailibila de distributie a cheilor de criptare
Centru de distibutie a cheilorGenereaza chie de sesiune pt fiecare pereche de intrlocutoriEste necesara existenta unei chei private folosite pentrucomunicareCentru de chie – cea mai importanta/vulnerabilacomponenta
Algoritmi de criptare cu cheie privataSimetriciRezistenti pe atacuri
17 December 2007 6
Criptare cu cheie publicaPermite comunicarea securizata a mesajelor intre doua entitatifara necesitatea existentei unei chie secrete sau a unui mediusecurizat pentru distributia chei secreteSistemul permite distributia unei chei secrete pentru fiecaresesiune folosind un algoritm de criptare asimetric
2 chei: publica si privataCheia publica poate fi accesata de orice si este folosita pentrucodificare mesajelorCheia privata este mentinuta local si este folosita numai pentrudecodificare mesajelorMesajul criptat cu cheia publica poate fi decriptat numai cu cheiasecreta
17 December 2007 7
Transmiterea criptata a mesajelorO sesiune de transmitere criptata a mesajelor contain urmatorii pasi
Entitatea A cere cheia publica a entitatii BEntitatea A genereaza aleator o chie privata de sesiune cu care cripteaza mesajeleCheia privata este criptata cu cheia publica a entatii BEntitatea B decripteaza cheia de sesiune folosind cheia luiprovataEntitatea B decripteaza mesajul folosind cheia de sesiune
Modalitatea de functionare a servicilor de tip PGP sau SSL
17 December 2007 8
AutentificareaSemnatura digitala
Modalitate de autentificare a unei entitatiSe aplica fiecarui mesaj transmis
Algoritmul de generare a semnaturii digitaleBazat pe algoritum RSA de criptare cu cheie publicaSe calculeaza hash-ul fiecarui mesaj transmis
o Un sir de biti care identifica unic un mesaj (MD5, SHA)Se cripteaza hash-ul mesajului cu cheia secreta a transmitatoruluiReceptorul solicita si cheia publica a transmitatoruluiSe aplica algoritmul de decriptare folosind cheia publicapentru decriptareSe obtine un mesajul hash decodatSe calculeaza pentru mesajul primit hash-ulDaca sint identice, mesajul este autentic
17 December 2007 9
Certificate digitale (1)Certificatele digitale reprezinta o modalitate de autentificare a unei entitati
Contine datele de identificare e entitatii (adresa IP, hostname, numele organizatiei, tara)Copia cheii publice a entitatiiSemnatura digitala a unei entitati care a verificat sigaranteaza validitatea datelor de autentificare
Certificate Authority (CA) este organizatia care verifica si semneaza digitatal certificatele
Detine o cheie (super)secreta folosita pentru semnaturadigitalaPrimeste cereri de autentificare a unor certificate siinvestgheaza validitatea emitatorului si a datelor de identificareExemple deastfel de organizatii : Verisin, Thawte
17 December 2007 10
Certificate digitale (2)Orice transmisiune de date incepe prin verificareacertificatului digital
Se obtine cheia publica a organizatiei autentificatoare (de obicei aceste chie sint deja incapsulate in aplicatii)Se verifica semnatura digitala a ceritficatuluiDupa autentificare se continua sesiunea
Autentificarile pe baza de certificare reprezintamodilitate principala de stabilire a unor conexiuni web securizate (e-commerce)
17 December 2007 11
Protocoale securizateProtocoale securizare pentru conexiuni point-to-point
IPSec – primul effort major de dezvoltate a unui standard pentru securizarea retelelor (’95)
o Necesita modificarea kernelului – timp de dezvoltare mareo Administrare complexa, curba de invatare lenta
SSL folosit intensiv de catre aplicatiile webo Produs matur, usorde invatao Ruleaza ca si aplicatea a user-ului, nu in kernel
17 December 2007 13
TUN/TAP interfaceTUN - adaptor de retea virtual care se comporta ca o conexiune fizica de tip punct-la-punct (conexiuneDSL)TAP – adaptor de retea virtual care se comportacaun mediu fizic cu difuzare (conexiune Eternet)Interfetele TUN/TAP
Transmit date dispre kernel catre aplicatiile user-uluiOrice aplicatie le poate folosi pentru a prelua/transmitepachete IP
17 December 2007 14
Transmitere prin VPN (1)O solutie VPN presupune transmiterea traficului generat de toate aplicatii user-ului prin retea
Incapsularea protocoalelorIP
Protocol neorientat spre conexiunePachetele de tip IP pot fi corupte sau pierdute
TCPProtocol orientat spre conexiuneAsigura rezolvarea tuturor problemelor ale conexiunilor realizatefolosind protocolul IPRetransmisii ale pachetelor pierdute sau ne-confirmate
UDPProtocol ne-orienat spre conexiunieFoarte simplue de procesatLasa in seama aplicatiei gestiunea conexiunii
17 December 2007 15
Transmitere prin VPN (2)Incapsularea unui trafic TCP intr-o conexiune TCP
Redundanta mare (effcienta mica)Pentru retele congestionate pot aparea probleme de transmisiuneFolosirea protocolului UDP
Potrivire d.p.d.v al caracteristicilor intre protocolul IP si UDP
Ne-orietate spre conexiunePresupun posibila intrerupere a conexiunilor
17 December 2007 16
VPN si UDPCrearea unor aplicatii de tip VPN care ruleaza in spatiul user-ului si sint portabile
Folosirea pachetelor IPExtragerea lor din fluxul de date de intrare prin intermediulinterfetelor virtuale tun/tapProcesarea pachetelor (criptare/decriptare si autentificare) Incapsularea lor in pachete UDP si transmiterea prin internetLa receptie se extrag pachetele IP din stream-ul UDP, se autentiufica/decripteaza si se transmit catreinterfetle virtualetun/tapPrin intermediul interfetelor virtuale tun/tap se VPN-ul estetransparent pentru aplicatiile care il folosesc
o Modificare a traficului de pachete la nivel transport
17 December 2007 17
OpenVPNFoloseste protocoale criptate detip SSL incapsulatein pachete UDP care ruleaza in spatiul utilizatorului
SSL folosit pentru schimbarea cheilor secrete de sesiuneprin intermediul algoritmului RSAFoloseste biblipotecile SSL pentru simplificarea aplicatieiAplicatie portabila pe diferite sisteme de operareSuporta NAT pentru Intranet-uri
17 December 2007 18
Tehnici pentru VPN (1)Doua tehnici pentru stabilirea unui VPN
Bridgingo Crearea unei retele LAN de dimensiuni mari care foloseste o
singura subreteaRouting
o Foloseste mai multe retele de dimensiuni mici cu routere intreele
Prin folosirea bridge-urilor:Utilizarea protocoalelor care se bazeaza pe broadcast (NetBIOS file sharing, network neighborhood)Usor de implementat (nu se configureaza rute)Nu este un model scalabil
17 December 2007 19
Tehnici pentru VPN (2)Prin folosirea router-elor:
Solutie mai eficienta (modificarea parametrilor pachetelor) siscalabilaUtilizarea protocoalelor care se bazeaza pe broadcast (NetBIOS file sharing, network neighborhood) necesitaservere specializate detip WINSTrebuie configurate rute de transfer a datelorRuleaza garantat numai cu IPV4Solutie preferata in cazul Intraneturilor raspindite in diferitezone geografice
17 December 2007 20
Configurare OpenVPNUtilitare OpenSourceStabilirea unei infrasturcturi de chei publice si privateConfigurarea serverului OpenVPNConfigurarea firewall-uluiConfigurarea clientului
17 December 2007 21
PKI – Public Key InfrastructurePrimul pas in stabilirea modalitatii de autentificareintru-un VPNPKI contine:
Perechea (cheie publica, cheie privata) pentru serverPerechea (cheie publica, cheie privata) pentru fircare clientUn certificat master (CA – Certificate Authority) folosit pentrua semna fiecare certificat al clientiilor
Se foloseste certificare bidirectionala inainte stabiliriiconexiunii
Clientul/Serverul verifica daca certificatul celeilalte entitati a fost semnat de certificatul master (CA)
Intreaga structura se salveaza in /etc/openvpn
17 December 2007 22
Certificate de autentificareFolosire certificatelor o solutie simpla si eficienta:
Serverul mentine doar propriul certificatSint acceptate conexiuni care furnizeaza certificate semnatecu un certificat master (CA)Verificara semnaturii se face numai cu cheina publica a CA deci cheia privata poate sa fie pastrata pe alt hostServerul poate restrictiona accesul pe baza unor cimpuri din certificat.
17 December 2007 23
Generarea certificatului master (CA)Folosirea unor utilitare distribuite impreuna cu OpenVPN – easy_rsa directorySe recomanda copierea in alta locatie - /etc/openvpnIntroducerea datelor de identificare (fisierul vars)
Locatia (tara, localitate)Organizatia si departamentulAdresa de mailApelare utilitarului build_ca
17 December 2007 24
Generarea certificatelorGenerate certificat pentru server
Se foloseste utilitarul: build-key-serverbuild-key-server <name_server>
Generate certificate pt clientiSe foloseste utilitarul: build-key / build-key-passbuild-key / build-key-pass <name_client>
Este necesar introducerea unui cimp “Common Name”
Folosit pentru eventualele restrictionariTrebuie sa identifice in mod unic utilizatorul certificatului
Generare parametrii Diffie-HellmanProtocol folosit pentru transmiterea unor ckie private folosindcanale nesigure
17 December 2007 25
Configurarea serveruluiConfigurare pe baza de fisier de configurare
Distributia vine cu exemple de fisiere configurare/etc/openvpn/server.confSpecificarea interfetei virtuale tun sau tapSpecificarea sub-retelei folosite pentru tunelul VPNSpecificarea cailor catre structura PKISpecificarea rutelor folosite pentru dirijarea traficului de catreclienti
o push route <addresa subretea> <masca subretea>
17 December 2007 26
Configurarea firewall-uluiPentru Intranet-uri trebuie asigurat si NAT-uliptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-
source 172.16.17.130
Se deschide doar portul folosit pentru VPN (1194)iptabels –A INPUT –p udp ––dport 1194 –j ACCEPT
Se permit fluxurile dinspre interfetle virtuale tuniptabels –A INPUT –i tun+ –j ACCEPTiptabels –A FORWARD –i tun+ –j ACCEPT
Se permit conexiunile dinspre Intranetiptabels –A INPUT –i eth1 –j ACCEPTiptabels –A FORWARD –i eth1 –j ACCEPT
Se permit conexiunile deja stabiliteiptabels –A INPUT –m state –-state ESTABLISHED,
RELATED –j ACCEPTiptables –A FORWARD –m state --state ESTABLISHED,
RELATED –j ACCEPT
17 December 2007 27
Configurarea clientilorClientul de VPN are nevoie de
Fisier deconfigurareCertificatul digital master (ca.crt)Certificatul si cheia utilizatorului
Fisierul de configurareSe bazeaza pe exemple existente in distributieSpecifica calea catre certificate si cheiSpecifica aceeasi interfata virtuala ca si serverulSpecifica aceeasi metoda de compresie a datelor ca siserverul