Configurarea Unui Vpn Utilizand Openvpn

CUPRINS

INTRODUCERE…….………………..……………………..…………..……..…

CAPITOLUL I

SECURITATEA ÎN REȚELELE DE CALCULATOARE ……..……

1.1 Importanța securității informaționale ………..……………………………

1.2 Vulnerabilități ale rețelelor de calculatoare ……………………………….

1.3 Tipuri de atacuri …………….…………………………………

CAPITOLUL II

REȚELE VIRTUALE PRIVATE ………………….….…………………..

2.1 Generalități privind rețelele virtuale private (VPN) …………………………

2.2 Arhitecturi ale rețelelor VPN…………………………………………….

2.2.1 Remote Acces VPN ….…………..………………….…………….

2.2.2 Intranet VPN…………….……….….………………………………

2.2.3 Extranet VPN…………….……….…….……………………………

2.2.4. Comparație între tipurile de rețele VPN …………………………..

2.3 Realizarea rețelelor VPN …………………………………………………

2.3.1 Soluții VPN bazate pe rutere ……………………………………………

2.3.2. Soluții VPN bazate pe echipamente hardware dedicate ………………

2.3.3 Soluții VPN bazate pe firewall ……………………………………….

2.3.4 Soluții VPN bazate pe aplicații software dedicate …………………..

2.4. Protocoale utilizate pentru realizarea rețelelor VPN ………………………..

2.4.1 Protocoalele IPsec …………………………………………………

2.4.2 Protocolul PPTP …………………………………………………….

2.4.3 Protocolul L2F …………………………………………………………

2.4.4 Protocolul L2TP ………………………………………………………

2.4.5 Protocolul SSL/TSL ……………………………………………………

2.5 Comparație a protocoalelor utilizate pentru crearea rețelelor VPN ………..

CAPITOLUL III

SECURITATEA ÎN VPN

3.1. Tehnici de securitate …………………………………………………

3.3.1. Tehnici AAA ……………………………………………………

3.2 Tehnici pentru integritatea mesajelor ………………………………….

3.2.1 Algoritmi cu chei simetrice ……………………………………..

3.2.1 Algoritmi cu chei asimetrice ……………………………………..

3.3 Utilizarea tehnicilor de criptare pentru realizarea rețelelor VPN ………

3.4 Comparație a tehnicilor de criptare utilizate pentru realizarea rețelelor VPN ..

CAPITOLUL IV

CONFIGURARA UNUI VPN UTILIZÂND OPENVPN …………….

CONCLUZII …………………………………………………………………

BIBLIOGRAFIE …………………………………………………………….

ANEXE ………………………………………………………………………

Anexa nr. 1 – Abrevieri ……………………………………………………….

Anexa nr. 2 – Fișiere de configurare pentru aplicația OpenVPN ……………

INTRODUCERE

Scopul acestei lucrări este acela de a prezenta noțiunile teoretice care stau la baza realizări rețelelor virtuale private, punând accent pe mecanismele de securitate care guvernează aceste conexiuni precum și posibilitățile de implementare practică a acestora. În lucrare sunt prezentate, atât soluții care necesită cunoștințe avansate cât și soluții VPN pentru începători, care sunt la îndemâna oricui.

În partea practică a lucrării am prezentat modul de realizarea a unui tunel, între două computere, cu ajutorul programului OpenVPN și cum pot fi accesate/schimbate date între acestea utilizând conexiunea securizată. Am ales acest program deoarece este gratuit și open source, are multe opțiuni ce pot fi exploatate, permite realizarea unei tunelări robuste și flexibile și utilizează toate caracteristicile de autentificare și certificare a criptării oferite de bibliotecile OpenSSL pentru a securiza rețele IP.

Am optat pentru tema „Politici de securitate în VPN” deoarece cunoștințele dobândite pe timpul celor doi ani de studiu, îndeosebi cele din domeniul criptării informațiilor, m-au determinat să mă gândesc la posibilitatea realizării unei rețele VPN, la locul meu de muncă, unde securizarea transmiterii informațiilor este esențială. În acest context cred că lucrarea de față poate fi un bun început pentru realizarea unei rețele VPN și renunțarea la serviciile costisitoare oferite de actualul furnizor.

CAPITOLUL I

SECURITATEA ÎN REȚELELE DE CALCULATOARE

1.1 Importanța securității informaționale

Securitatea este un subiect vast și acoperă o multitudine de imperfecțiuni. Cea mai simplă formă de asigurare a securității constă în asigurarea că persoane curioase nu pot citi sau, și mai rău, modifica mesajele adresate altor destinatari. De asemenea, securitatea se ocupă de cei care încearcă să acceseze servicii pe care nu sunt autorizați să le folosească. Securitatea implică și verificarea dacă un mesaj, ce pretinde că vine de la o anumită persoană, provine cu adevărat de la aceasta și este exact în forma în care a fost trimis. Securitatea acoperă și aspectele legate de interceptarea și falsificarea mesajelor și de cei care încearcă să nege faptul că au trimis anumite mesaje.

Majoritatea problemelor de securitate sunt cauzate intenționat, de persoane răuvoitoare care încearcă să obțină anumite beneficii sau să provoace rău. Așa cum preciza Tanenbaum câțiva dintre cei care încearcă, în mod obișnuit să comită astfel de fapte, sunt menționați în Tabelul nr.1.

Tabelul nr. 1 – Posibili atentatori la adresa rețelelor informatice

Securitatea infrastructurii IT este un subiect complicat, care de multe ori se adresează personalului experimentat și specializat în acest domeniu. Cu toate acestea, odată cu dezvoltarea exponențială a organizațiilor, un număr tot mai mare de persoane trebuie să înțeleagă aspectele fundamentale ale teoriei securității informaționale.

Chiar și cele mai bune tehnologii și proceduri pot fi ușor anulate dacă nu se cunosc metodele și instrumentele întrebuințate de atacatori. De aceea, este important să putem identifica instrumentele meseriei de hacker, modul în care funcționează acestea și tipurile de protecție împotriva acestor atacuri.

Aspectele referitoare la securitatea se pot împărți în următoarele domenii:

confidențialitate;

autentificare;

non-repudiere

controlul integrității.

Confidențialitatea acoperă aspectele referitoare la păstrarea informației departe de utilizatorii neautorizați și este cel mai uzul aspect la care se gândesc oamenii atunci când vorbim despre securitatea rețelei.

Autentificarea reprezintă stabilirea identității persoanei cu care se comunică, înainte de a dezvălui informații importante.

Non-repudierea se referă la prevenirea negării evenimentelor, altfel spus la determinarea emitentului să-și recunoască propriile mesaje.

În cele din urmă controlul integrității ne asigură că un mesaj pe care l-am primit este cel care a fost trimis și nu unul modificat de o persoană rău intenționată sau în timpul procesului de transmite.

Având în vedere aceste aspecte cred că este important să precizăm care sunt vulnerabilitățile rețelelor de calculatoare.

1.2 Vulnerabilități ale rețelelor de calculatoare

Metodele prin care se încearcă pătrunderea neautorizată într-o rețea sunt diverse. În trecut majoritatea politicilor de securitate se îndreptau împotriva atacurilor venite din exteriorul rețelei. Astăzi se consideră că neprotejarea sistemului inclusiv împotriva atacurilor venite din interiorul organizației este o mare eroare.

Cele mai des întâlnite vulnerabilități rețelelor de comunicații sunt: pierderea caracterului privat al rețelei, impostura, pierderea integrității datelor și refuzul serviciului.

Pentru a înțelege cât mai bine care sunt vulnerabilitățile rețelelor de calculatoare cred că este important, mai întâi, să înțelegem cum se desfășoară o acțiune de accesare neautorizată. În conformitate cu cele prezentate de Tom Thomas, indiferent de tipul de sistem pe care îl țintește atacatorul, în general, sunt utilizate următoarele etape:

recunoașterea și urmărirea – pe parcursul acestei faze a unui atac metodele întrebuințate nu sâcâie, sunt discrete și nu permit detectarea eforturilor făcute de atacator. Acesta dorește să determine tipul de rețea cu care are de-a face și personalul care asigură administrarea și securitatea rețelei. Intenția este să alcătuiască o hartă a rețelei, să descopere dispozitivele de routare și sistemele firewall și apoi să identifice sistemele cheie precum serverele de e-mail, serverele numelor de domenii, serverele de fișiere etc. Atacatorul mai dorește să știe de unde obține ținta accesul la Internet, pentru situația în care vrea să încerce să acceseze ținta prin furnizorul său de servicii (ISP);

scanarea – în acest moment atacatorul are o imagine bună despre echipamentele de rețea, sistemele lor de operare, cine sunt administratorii de rețea, ceva discuții transmise prin grupurile de știri, localizarea utilizatorilor și care este sistemul pentru prevenirea intruziunilor. Atacatorul este gata să treacă la identificarea serviciilor de ascultare și a porturilor deschise și mai știe că, de aici înainte, tot ceea ce face ar putea fi înregistrat. Atacatorul va determina, de asemenea, riscul acceptabil. Scanarea indică atacatorului ce porturi sunt deschise și ce servicii rulează;

elaborarea listelor – este o extragere a informațiilor de cont și a resurselor exportate valide. Diferența esențială față de tehnicile de scanare și urmărire anterioare este că elaborarea listelor implică conexiuni active la anumite sisteme cât și cereri directe de conectare la aceste sisteme;

obținerea accesului – atacatorul trebuie să obțină accesul la un sistem printr-o latură a acelui sistem. De obicei, există patru tipuri principale de exploatare, care reflectă diferite laturi ale unui sistem devenit țintă:

atacuri asupra sistemului de operare;

atacuri asupra aplicațiilor;

atacuri prin configurări eronate;

atacuri prin scripturi;

extinderea – în acest moment al intruziunii atacatorul are deja acces în sistem. Probabil că atacatorul a aflat/ghicit/sustras parola unui utilizator. Un utilizator obișnuit este foarte probabil să nu aibă privilegiile de care are nevoie atacatorul pentru scopul său așa că trebuie să înceapă să extindă nivelul său de privilegiu. Probabil va încerca una din următoarele metode:

poate rula codul de exploatare a vulnerabilităților împotriva sistemului, pentru a căpăta mai multe privilegii;

încearcă să identifice parolele folosind numeroasele instrumente disponibile gratuit pentru “spargerea” parolelor;

caută parole care nu sunt criptate;

evaluează încrederea care există între sistemul atacat și alte sisteme din rețea;

verifică dacă permisiunile fișierelor sau partajărilor sunt configurate corect.

După ce un atacator a obținut accesul de tip administrator el finalizează obiectivele atacului, începe să-și mascheze activitățile și, probabil, va lăsa o cale de a reveni în sistem.

acoperirea urmelor – după ce atacatorul a obținut un acces de titular la sistemul țintă el trebuie să ascundă acest lucru față de administratorul sistemului. Dacă atacatorul dorește să mențină accesul la sistem după ce a obținut accesul inițial el creează intrări secrete pentru un acces ulterior. Metodologia, instrumentele și tehnicile depind de sistem, dar intenția este de a crea conturi, de a programa activități de tip batch, de a infecta fișierele de pornire, de a permite servicii/software de control de la distanță sau de a înlocui aplicații și servicii legitime cu cai troieni. Există situații când atacatorul nu dorește să aibă o intrare secretă plasată în sistemul țintă. Într-o astfel de situație atacatorul știe ce dorește și nu este interesat de obținerea ulterioară a accesului la sistem, scopul său principal fiind să-și acopere urmele, astfel încât nimeni să nu știe vreodată ce s-a întâmplat.

O evaluare a securității este un excelent pas pentru o organizație preocupată de dezvoltarea securității în rețeaua sa și de eficiența măsurilor de securitate aplicate.

Există mai multe tipuri de evaluări ale securității:

evaluarea internă a vulnerabilității și a posibilităților de penetrare – această activitate acoperă aspecte legate de configurările incorecte ale dispozitivelor de rețea, lipsa procedurilor eficiente de securitate și utilizarea aplicațiilor sotfware depășite sau neactualizate;

evaluarea externă a vulnerabilității și a posibilităților de penetrare – având în vedere că rețelele de calculatoare se întind pe arii din ce în ce mai mari, riscul atacurilor externe crește. Aceste riscuri sunt amplificate de configurarea necorespunzătoare a routerelor și sistemelor firewall și de aplicațiile Web neprotejate, depășite sau incorect configurate;

evaluarea securității fizice – această evaluare poate fi preventivă sau detectivă, având ca scop limitarea expunerii organizației la pericole fizice. Împiedicarea accesului fizic la echipamente, monitorizarea activităților suspecte, protejarea resurselor valoroase ale organizației împotriva falsificării, compromiterii sau distrugerii sunt numai câteva aspecte care intră în sfera de acoperire a acestui domeniu.

În prezent există o multitudine de aplicații care execută scanări ale sistemului de securitate și evaluări ale vulnerabilităților. Valoarea acestor aplicații este dată de faptul că ele spun ce este vulnerabil și nu cum sunt detectate acele vulnerabilități.

Când hackerii doresc să pătrundă în rețelele de calculatoare caută, de obicei, procese și erori de programare bine cunoscute pentru a ataca. Un atac adevărat, care are ca scop penetrarea și controlul sistemului țintă pornește de la o imagine cât mai exactă și completă a securității organizației, obținută de atacator. Pe măsură ce evaluează rețeaua atacatorul exploatează vulnerabilitățile acesteia pentru a determina modul exact în care poate obține controlul resurselor.

În cele ce urmează voi prezenta câteva aspecte legate de atacurile desfășurate asupra rețelelor de calculatoare.

1.3 Tipuri de atacuri

Eficiența tehnologiilor de vârf, a politicilor și procedurilor poate fi rapid anulată dacă aceia care răspund de securitatea rețelei nu înțeleg metodologia și instrumentele care vor fi folosite împotriva rețelei.

Pentru accesarea neautorizată a rețelelor de calculatoare printre cele mai utilizate atacuri pot fi enumerate:

falsificarea adreselor IP / fraudarea sesiunilor;

atacuri de tip Denial of Service (DoS);

atacul de tip Man in the Middle;

Hijacking;

atacul de tip backdoors;

Falsificarea adreselor IP/fraudarea sesiunilor sau scanarea (scanning) este un tip de atac în care atacatorul creează un pachet cu o adresă IP diferită pentru a obține intrarea într-un sistem. Acest atac exploatează relațiile de încredere permițând atacatorului să-și asume identitatea unei gazde de încredere. Pentru ca atacul să reușească atacatorul trebuie să determine “modelele de încredere” ale gazdei țintite (ex.: gama de adrese IP în care are încredere gazda). După ce atacatorul determină modelul de încredere el poate să treacă la etapa următoare a atacului fie prin compromiterea gazdei, fie prin dezactivarea acesteia sub o formă sau alta. Aceste tipuri de atac sunt deseori utilizate ca primă etapă într-o strategie generală de atac.

În acest tip de atac accesul neautorizat într-o rețea se obține, de obicei pe două căi: prin intermediul unui nume de utilizator și o parolă valide sau prin folosirea abuzivă a privilegiilor utilizatorilor. Analiza parolelor sau folosirea unor programe pentru spargerea parolelor poate da rezultate satisfăcătoare pentru atacator în cazul acestui gen de atac.

Cunoscute și sub numele de Distributed Denial of Service (DDoS), Packetstorming, Tribal Flooding șialte metode de atac distribuit pentru blocarea serviciilor, folosite pentru supraîncărcarea rețelelor prin lansarea unui număr atât de mare de solicitări încât traficul normal să fie încetinit sau complet întrerupt, aceste atacuri au existat de mai mult timp atât în teorie cât și în practică. Un atac Denial of Service (blocarea unei resurse de sistem) nu implică pătrunderea în sistemul țintă. Scopul atacatorului este doar să supraîncarce ținta (router sau server Web) cu atât de mult trafic fals, încât acesta să nu facă față.

Când ținta nu este capabilă să facă față utilizatorii adevărați nu se pot conecta și, în consecință, sunt în situația de “denied service” (serviciu respins). Un atac Distributed Denial of Service (DDoS) generează trafic fals de la mai multe gazde.

Atacurile de blocare a serviciilor sunt ușor de implementat și pot duce la pagube serioase, prin întreruperea funcționării unui server sau a unei rețele și prin deconectarea efectivă a acestora de al Internet.

Principalele atacuri de tip Dos sunt următoarele:

atacul ICMP/Ping sau Buffer Overflow – generează către o rețea un trafic mai mare decât poate duce buffer-ul programului receptor. Un atac de tip Ping folosește caracteristicile protocolului ICMP în avantajul atacatorului. Gazdele compromise sunt obligate să atace ținta specificată, printr-un flux continuu de pachete ping. Se creează astfel un număr extrem de mare de cereri ping ce vin dinspre mii de gazde compromise pentru a iniția atacul asupra gazdei;

atacul SYN Flood (SYN Attack) – are loc atunci când clientul nu răspunde al mesajul SYN-ACK (parte a protocolului TCP/IP) al serviciului, ținând astfel serviciul ocupat până când expiră timpul de așteptare. În acest tip de atac clientul nu răspunde niciodată pentru că adresa sursă a clientului este falsificată. Scopul atacatorului este să trimită pachete SYN către serviciul respectiv înainte de expirarea timpului de așteptare în care serviciul așteaptă răspunsul SYNK-ACK al clientului. Astfel, serviciul devine atât de ocupat trimițând pachete de confirmare și așteptând răspunsul clientului, încât nu mai poate răspunde cererilor de la utilizatorii legitimi, în consecință respingând acordarea serviciului către aceștia;

atacul Teardrop – se bazează pe modul în care are loc reasamblarea pachetelor IP la destinație. Pentru a putea fi reasamblat la destinație un pachet care a fost fragmentat conține în headerul IP informații referitoare la id-ul fragmentului, poziția în cadrul pachetului original (offset), lungimea datelor transportate și dacă după el mai există fragmente. Un astfel de atac implică modificare valorii câmpului offset din cel de-al doilea fragment (sau din următoarele) astfel încât sistemul destinatarului să nu poată reasambla fragmentele;

atacul Smurf – presupune trimiterea unei cereri ping de pe mașina țintă către adresa de broadcast a rețelei din care face parte. Stațiile din rețeaua victimei vor genera pachetul de răspuns către stația acesteia, inundând rețeaua cu pachete ICMP.

În cazul atacului Man in the Middle atacatorul se plasează în mijlocul unei comunicații care se desfășoară între două gazde (de obicei un server și un client) și după aceea interceptează mesajele transmise între cele două gazde. Atacatorul poate căuta diverse lucruri, cum ar fi, să vadă câți bani sunt într-un cont, să afle parola de pe un anumit site Web sau să blocheze conexiunea. Cel mai îngrijorător fapt este acela că, uneori, atacatorul nu modifică nimic și nu știm că pachetele sunt interceptate de către un atacator intrus.

Hijacking este o altă variantă a atacului Man in the Middle care presupune substituirea identității pentru a avea acces la informații. Este un atac activ care necesită un efort mare din partea atacatorului și o înțelegere exactă a modului de funcționare a sesiunilor TCP sau UDP. Pătrunderea în rețea se face prin intermediul unui utilizator autorizat. Atacul efectiv poate să înceapă prin bombardarea cu pachete a unei stații autorizate, eliminarea sa din rețea și configurarea propriei stații cu setările stației atacate.

Atacul de tip backdoors (atacul pe ușile din spate, intrare secretă) presupune o cale de acces secretă la un anumit program, la BIOS sau la serviciile de rețea. Atacul apelează o subrutină insuficient documentată din anumite aplicații sau prin intermediul unei parole dezvăluite de utilizator. În general, acest tip de atac, rămâne nedescoperit.

În literatura de specialitate sunt documentate o multitudine de atacuri asupra rețelelor de calculatoare, de mai mare sau mai mică amploare, unele dintre acestea fiind cel puțin neobișnuite (atacuri pe uscat, atacul pomului de Crăciun, atacul picăturilor, atacul Ping-Pong, atacul ping fatal, evitarea sistemului firewall) dar care dovedesc că rețelele de calculatoare nu sunt infailibile.

Bineînțeles că pentru toate aceste atacuri au fost dezvoltate mecanisme de protecție, dintre care amintesc: firewall (fizic sau logic), translatarea adresei IP (NAT – Network Address Translation), protocoale de securitate (IPSec, SSH, SSL – prezentate detaliat în capitolele următoare) sau realizarea unor legături dedicate, criptate, numite și tunele sau rețele VPN (Virtual Private Netwoks).

În capitolul următor al lucrării voi detalia aspectele referitoare la rețelele VPN.

CAPITOLUL II

REȚELE VIRTUALE PRIVATE

2.1 Generalități privind rețelele virtuale private (VPN)

O rețea, din punct de vedere IT, constă din două sau mai multe dispozitive care pot comunica electronic între ele, prin intermediul diferitelor medii de transmitere (cabluri, radio, wireless, etc.). O rețea VPN (Virtual Private Network) reprezintă un grup de două sau mai multe sisteme de calculatoare conectate într-o arhitectură privată de comunicații, cu acces restrictiv și desfășurată prin intermediul unei rețele publice. Caracterul privat al unei rețele VPN (termenul privat subliniază accesul restrictiv la un set definit de entități, o terță parte nu are acces la conținutul privat al comunicației) depinde în principal de riscul pe care și-l asumă organizația respectivă: cerințele de secretizare și de securizare pot fi minime sau extrem de ridicate. Generarea informației private prin aceste rețele nu diferă prea mult de trimiterea unei corespondențe interne prin intermediul poștei sau de expedierea unui fax prin rețeaua publică.

Chiar dacă fizic nu există, un VPN trebuie să fie perceput ca o extensie a infrastructurii unei rețele, care aparține unei entități. Acest lucru înseamnă că trebuie să fie disponibil rețelei existente sau la un grup restrâns de utilizatori din acea rețea.

O rețea virtuală privată (VPN) este o conexiune securizată care utilizează un tunel sigur, realizat prin intermediul unei alte rețele (de obicei de tip WAN) sau prin Internet. Într-o rețea VPN conexiunile către utilizatorii distanți și liniile închiriate sunt înlocuite de conexiunile realizate cu punctul de prezență a unui furnizor de servicii Internet .

O rețea VPN permite utilizarea elementelor constructive și a resurselor unei rețele private în scopul extinderii acesteia utilizând resursele unnei rețele publice. Cu alte cuvinte, o rețea VPN este o rețea privată a unei organizații dezvoltată pe o infrastructură comună, utilizând aceleași politici de securitate, management și performanță care sunt aplicate, de obicei, într-o rețea publică. Practic, tehnologia VPN permite unei organizații să-și extindă prin intermediul Internetului, în condiții de deplină securitate, serviciile de rețea oferite distant utilizatorilor, reprezentanțelor sau organizațiilor partenere. Crearea unei legături de comunicații rapidă, sigură și ieftină este un avantaj evident al rețelelor VPN.

2.2 Arhitecturi ale rețelelor VPN

Un VPN permite unei rețele private să fie extinsă în siguranță, prin diferite metode de securizare, în Internet sau în alte rețele, permițând schimbul de informații în mod securizat, inclusiv cu angajați mobili, partenerii de afaceri, furnizorii sau clienții. Există 3 arhitecturi principale de VPN-uri:

VPN-urile pentru acces de la distanță (Remote Access VPN) – sunt legături de tip dial-up care permit utilizatorilor conectarea securizată printr-o rețea publică;

VPN-urile locație-la-locație (Intranet VPN) – sunt acele legături, de tip punct la punct, care permit conectarea prin intermediul Internetului sau a unei alte rețele publice, în mod securizat. Aceste VPN-uri se mai numesc și „site-to-site”;

VPN-urile extranet (Extranet VPN) – sunt acele legături dedicate conectării, prin intermediul Internetului, securizat, între diferit organizații. Acestea sunt o extensie VPN-urilor intranet la care se adaugă dispozitive de tip firewall pentru protecția rețelei interne.

Toate aceste arhitecturi ale rețelelor VPN au rolul de a asigura fiabilitatea, securitatea și performanța mediilor WAN tradiționale, pe baza unor conexiuni flexibile cu ISP (Internet Service Provider). Tehnologia VPN poate fi utilizată și în intranet pentru a oferi securitate și controlul accesului la informații sau resurse.

2.2.1 Remote Access VPN

Rețelele VPN pentru acces de la distanță (Remote Access VPN) permit fiecărui utilizator dial-up să se conecteze în mod protejat la sediul organizației prin Internet sau prin alt serviciu public de rețea.

Pentru realizarea unui Remote Access VPN organizația implementează un port VPN pe rețeaua lor, fiecare utilizator de acces de la distanță stabilind apoi o conexiune VPN între computerul local (gazdă) și gateway-ul VPN, acesta putând fi un dispozitiv dedicat sau o parte a unui alt dispozitiv de rețea.

Acest tip de rețea VPN este, de obicei, o conexiune utilizator-LAN care facilitează angajaților conectarea distantă la rețeaua LAN a organizației. Angajatul folosește o aplicație software client specială, care permite o legătură sigură între dispozitivul utilizat de acesta și rețeaua LAN.

Rețelele VPN pentru acces de la distanță sunt denumite uneori și software VPN (rețele bazate pe o aplicație software) sau rețele dial-up VPN.

2.2.2 Intranet VPN

Intranetul VPN permite conectarea diferitelor sedii ale unei organizații utilizând legături dedicate. Acest tip de conexiune este folosit, de obicei, pentru nevoi speciale, precum acele activități desfășurate de administratorii de sistem pentru managementul de la distanță a unui singur server. Conexiunea Intranet VPN permite crearea unor medii client-server performante prin utilizarea conexiunilor dedicate, care ating rate de transfer foarte bune. În acest caz, în comparație cu Remote Access VPN, sunt utilizate legături dedicate, cu rată de transfer garantată, ceea ce permite, pe lângă asigurarea securității și o calitate excelentă a transmisiei furnizată de banda de comunicații mai largă avută la dispoziție.

Această arhitectură utilizează două routere, dispuse la capetele conexiunii, tunelul criptat fiind realizat între acestea. În această situație nu mai este necesară utilizarea unui client de VPN dedicat ci se folosește protocolul IPSec.

IPSec utilizează protocolul IKE (Internet Key Exchange) care utilizează chei de autentificare la ambele capete ale conexiunii, pe baza acestora putându-se realiza conexiunea între utilizatori. În subcapitolul dedicat protocoalelor de tunelare voi prezenta mai multe aspecte referitoare la protocolul IPSec.

Aceste tipuri de rețele VPN sunt considerate conectate activ în permanență. Rețelele Intranet VPN sunt uneori denumite rețele VPN hard (bazate pe hardware), intranet sau rețele VPN LAN-to-LAN.

2.2.3 Extranet VPN

Extranet VPN – este adesea folosit pentru a oferi comunicații de rețea, securizate, între două rețele, sau pentru conectarea utilizatorilor la sediul central al organizației, utilizând linii dedicate sau conexiuni partajate sigure.

Rețeaua se realizează, de obicei, prin implementarea unui gateway VPN pe fiecare rețea și stabilirea unei conexiuni VPN între cele două gateway-uri. Gateway-ul VPN poate fi un dispozitiv dedicat care efectuează numai funcții VPN sau poate fi parte a unui alt dispozitiv de rețea, cum ar fi un firewall sau router.

Acest tip de VPN extinde limitele intranetului permițând logarea la sediul organizației a unor parteneri sau clienți care nu fac parte din structura acesteia. Pentru a fi posibil acest lucru se utilizează certificate digitale care permit realizarea unor tunele criptate. Acestea sunt furnizate de către o autoritate care este autorizată pentru furnizarea unui astfel de serviciu.

Rețelele extranet VPN sunt o prelungire a rețelelor intranet VPN, realizate prin adăugarea unor sisteme firewall destinate protejării rețelei interne.

2.2.4 Comparație între tipurile de rețele VPN

În Tabelul nr. 2 este prezentată o scurtă comparație a celor 3 tipuri de rețele VPN prezentate anterior.

Tabelul nr. 2 – Comparație între tipurile de rețele VPN

2.3 Realizarea rețelelor VPN

Principala, singura și unica metodă de realizare a rețelelor VPN constă în tunelare. Tunelarea oferă conectivitate completă ca și legătura fizică. Construcția constă în realizarea unei conexiuni între două echipamente de rețea (routere) cu adrese publice din două rețele diferite. Conexiunea dintre rutere este un „cablu virtual” ce preia rolul conexiunii fizice. Tunelarea este o metodă de a utiliza infrastructura Internet pentru a transfera datele dintr-o altă rețea.

Astfel, prin tunelare, rețelele VPN rezolvă cea mai stringentă problemă a Internetului: asigurarea confidențialității datelor prin criptarea și încapsularea acestora în timpul transmiterii. Datele sunt comprimate și apoi încapsulate pentru a ascunde adresa fiecărui pachet. Datele încapsulate sunt transmise printr-un tunel sigur care este inițializat la fiecare sesiune de transmisie de date. Acest tunel se folosește pentru a transmite numai date din interiorul VPN. După inițializarea tunelului utilizatorul care dorește să comunice este autentificat pe baza informațiilor introduse în baza de date a mecanismului central al VPN. Odată autentificat utilizatorul are drept de acces la acele resurse din rețea la care a fost autorizat de către administratorul rețelei. La celălalt capăt al tunelului datele sunt autentificate, reasamblate și rutate către calculatorul din rețea căruia îi sunt destinate. Datele din tunel sunt inaccesibile altor utilizatori din Internet, eliminându-se posibilitatea de interceptare a pachetelor de date.

Tunelarea este procesul de preluare a unui întreg pachet de date, încapsularea acestuia în alt pachet și transmiterea prin rețea. În cazul tunelării rețeaua trebuie să înțeleagă protocolul pachetului exterior, pentru ca acesta să poată intra și ieși din rețea. Pachetele încapsulate se dirijează apoi între capetele tunelului prin inter-rețea. Calea logică după care se deplasează pachetele încapsulate prin inter-rețea se numește tunel. Odată ce pachetele încapsulate ajung la destinație în inter-rețea, acestea sunt decapsulate și transmise la destinația finală. Tunelarea include tot acest proces (încapsularea, transmisia și decapsularea pachetelor).

Pentru crearea unui tunel este necesară funcționarea următoarelor protocoale:

protocolul pasagerului (passenger protocol) – este destinat pachetului de date inițiale, de obicei de tip IP (dar pot fi și alte protocoale, precum IPX sau NetBEUI), care trebuie criptat în rețeaua VPN;

protocolul de încapsulare (encapsulating protocol) – acesta (IPSec, MPLS, L2F, PPTP, L2TP) înglobează datele inițiale. Protocolul permite întregului pachet de date care călătorește prin rețea să fie criptat și protejat. Pentru funcționarea corectă este necesar ca protocolul să fie acceptat de ambele interfețe ale tunelului;

protocolul purtătoarei (carrier protocol) – este folosit de rețeaua prin care informația este transmisă. Pachetul inițial este încapsulat în cadrul protocolului de încapsulare și introdus apoi în antetul protocolului purtătoarei, pentru a fi transmis prin rețeaua publică.

Tehnologia de tunelare se poate baza pe un protocol de tunelare de nivel 2 sau 3. Nivelele corespund modelului de referință OSI. Protocoalele de nivel 2 corespund nivelului legătură de date și folosesc cadre ca unitate de schimb. Protocoalele de nivel 3 corespund nivelului rețea, utilizează pachete IP și sunt protocoale care încapsulează pachete IP într-un antet IP adițional înainte de a le transmite.

Transmiterea prin tunel funcționează bine în rețelele VPN, putând fi utilizate protocoale care în Internet nu sunt acceptate în cadrul unui pachet IP, acesta putând fi transmis în siguranță în acest fel. La începutul unei transmisii VPN prin tunel, un pachet de date de la o sursă primește un nou antet, de la protocolul de încapsulare, în acest fel rețelele intermediare putând să-l recunoască și să-l livreze. După ce transmisia este încheiată antetul adăugat de protocolului de încapsulare este îndepărtat și pachetul original este trimis în rețeaua de destinație, pentru a fi livrat utilizatorului final.

Traficul VPN poate fi transmis pe infrastructura publică (Internet), utilizând protocoale standard (deseori nesigure) sau prin rețeaua unui furnizor de servicii de telecomunicații care asigură servicii VPN bine definite de SLA (Service Level Agreement) între utilizatorul VPN și furnizorul de servicii VPN.

Cu toate că tunelarea permite datelor să fie transmise prin intermediul rețelelor ale unor terțe părți, acest lucru nu este suficient pentru asigurarea protecției datelor. Pentru a avea siguranța că informațiile transmisie prin tunel sunt protejate împotriva interceptării sau sustragerii, este necesar ca întreg traficul realizat prin rețelele VPN să fie criptat.

Strategiile de implementare a rețelelor VPN sunt variate deoarece majoritatea furnizorilor dispun de “o soluție VPN dedicată pentru dumneavoastră”. Unele soluții sunt ceea ce pretind că sunt însă altele ridică semne mari de întrebare în ceea ce privește securitatea asigurată. Având în vedere că nu există un standard larg acceptat de realizare a rețelelor VPN, multe companii sau organizații au dezvoltat propriile soluții, așa numite “la cheie”.

Pentru realizarea unei soluții VPN complete este necesară îmbinarea a trei componente tehnologice principale: securitatea, controlul traficului și administrarea.

Componenta de securitate asigură:

controlul accesului, în scopul garantării securității conexiunilor rețelei;

criptarea, în scopul asigurării confidențialității datelor;

autentificarea, pentru verificarea identității utilizatorilor și asigurarea integrității datelor.

Controlul traficului este realizat în scopul garantării fiabilității și calității serviciilor precum și pentru asigurarea unor performanțe optime în ceea ce privește ratele de transfer. Internetul, ca mediu de transmitere, poate prezenta uneori zone de congestie, care pot determina funcționarea defectuoasă a unor aplicații critice ale utilizatorilor. O alternativă poate fi stabilirea priorităților de rutare, astfel încât transferul de date să se realizeze cu fiabilitate maximă.

Administrarea asigură integrarea completă a rețelei VPN în politica de securitate globală, gestionarea centralizată a resurselor și scalabiltatea soluției alese.

În general, soluțiile VPN bazate pe utilizarea Internet-ui sunt construite din patru mari părți principale: mediul de transmitere, porțile de securitate (gateways), politicile de securitate și autoritățile de certificare.

Din punct de vedere tehnice, pentru realizarea unei rețele VPN, sunt necesare câteva componente, care pot fi utilizate în totalitate sau numai parțial, astfel:

hardware dedicat – routere sau echipamente special destinate;

software client pentru fiecare utilizator;

sistem firewall;

centru de administrare a politicilor din rețeaua VPN.

Mediul de transmitere este furnizat de Internet. Între rețeaua publică și rețeaua privată sunt dispuse porțile de securitate, care împiedică accesul neautorizat în rețeaua privată. De asemenea, acestea asigură tunelarea și criptarea datelor înainte de a fi trimise către rețeaua publică.

2.3.1 Soluții VPN bazate pe rutere

Tehnic vorbind, routerul este un calculator care selectează cel mai bun traseu și gestionează comutarea pachetelor între două rețele diferite. Având în vedere că router-ele examinează și procesează toate pachetele de date care părăsesc rețeaua, este normal ca din construcție acestea să dispună și de funcția de criptare a pachetelor. Furnizorii de routere dedicate soluțiilor VPN (ex.: CISCO) oferă, de obicei, două tipuri de produse: cu suport software pentru criptare sau cu un modul adițional, echipat cu un procesor dedicat, care are ca sarcină criptarea datelor. Modelul echipat cu dispozitiv hardware dedicat criptării datelor furnizează o soluție bună în cazul fluxurilor mari de date.

Soluția bazată pe routere este ideală, din punct de vedere al performanțelor, dar aceasta presupune un consum ridicat de resurse (echipamente suplimentare, care necesită costuri suplimentare precum și specialiștii necesari pentru instalarea, configurarea și asigurarea funcționării acestora). Astfel de soluții sunt potrivite pentru organizațiile mari, care au nevoie de un grad sporit de securitate și de un volum mare de trafic.

2.3.2 Soluții VPN bazate pe echipamente hardware dedicate

O altă posibilă soluție de realizare a unei rețele VPN o reprezintă utilizarea de echipamente hardware dedicate, special proiectate să îndeplinească sarcinile de criptare a datelor, autentificare a utilizatorilor și tunelare. Astfel de echipamente operează ca niște dispozitive de criptare care sunt amplasate între routerul de LAN și routerul de WAN al rețelei.

Integrarea diverselor funcții în cadrul aceluiași echipament poate fi destul de atrăgătoare pentru o organizație care nu dispune de resursele necesare pentru instalarea și întreținerea mai multor echipamente de rețea diferite. Simpla pornire a unui asemenea gen de echipament este mult mai facilă decât instalarea unui firewall, a unui server sau a unei aplicații software sau configurarea unui router.

Cu toate că multe din aceste echipamente hardware dedicate par să oferă cele mai bune soluții pentru realizarea unei soluții VPN, tot este necesar ca utilizatorul să hotărască câte funcții să fie îndeplinite de un singur echipament. Organizațiile mici, care nu dispun de personal specializat în administrarea și securitatea rețelelor pot beneficia de aceste gen de produse, care asigură toate funcțiile unui VPN. Unele dintre aceste produse sunt destul de fiabile și au caracteristici deosebite, asigurând o bună funcționare, dar în situația defectării unui astfel de echipament întreaga funcționalitate a soluției VPN este pierdută.

Performanța acestor echipamente, în ceea ce privește posibilitatea de a susținere a unui volum ridicat de trafic și un număr mare de tuneluri simultane este greu de depășit, lucru esențial pentru organizațiile mari.

2.3.3 Soluții VPN bazate pe firewall

Furnizorii de soluții firewall includ în produsele lor posibilitatea de tunelare. Asemenea echipamentelor de routare, soluțiile firewall trebuie să proceseze întreg traficul IP, fapt ce face ca acestea să nu reprezinte o soluție optimă pentru tunelare, îndeosebi pentru rețelele mari și cu trafic foarte mare.

Această combinație – tunelare, criptare, firewall – probabil este soluția cea mai bună pentru organizațiile mici, cu un necesar scăzut de trafic. Ca și în cazul soluțiilor prezentate anterior, dacă firewall-ul „pică”, întreg VPN-ul devine nefuncțional.

Soluția oferită de un firewall cu VPN integrat prezintă avantajul unei securități crescute (poarta de securitate a VPN-ului este protejată de filtrele aplicate de firewall) și este ușor de întreținut deoarece managementul este asigurat pentru ambele componentele simultan.

2.3.4 Soluții VPN bazate pe aplicații software dedicate

Aplicațiile software dedicate realizării soluțiilor VPN sunt disponibile atât pentru crearea și întreținerea de tuneluri între porți diferite de securitate cât și pentru asigurarea tunelării între un client și o poartă de securitate. Aceste soluții sunt agreate îndeosebi de organizațiile mici, care nu au nevoie să proceseze mari cantități de date, datorită costurilor reduse. Astfel de soluții pot rula pe echipamentele existente (PC, server), împărțind resursele cu acestea și reprezintă o soluție potrivită pentru conexiunile de tipul client-to-LAN.

Pentru o astfel de soluție se instalează o aplicație software pe calculatorul utilizatorului, aceasta stabilind conexiunea cu serverul VPN. Există mulți producători de astfel de aplicații. De exemplu, Microsoft a integrat astfel de soluții software în sistemele de operare Windows. Cisco VPN Client este o aplicație software, compatibilă cu IPSec, care poate realiza tuneluri de tip end-to-end, criptate, configurarea acestora necesitând o intervenție redusă a utilizatorului. Practic se poate implementa o soluție VPN fără a mai utiliza alte echipamente hardware sau instala alte aplicații software, fiind necesară doar configurarea celor existente.

2.4 Protocoale utilizate pentru crearea rețelelor VPN

Pentru stabilirea unui tunel atât clientul cât și serverul de tunel trebuie să folosească același protocol de tunelare. Atunci când abordăm subiectul tunelării cea mai simplă și la îndemână soluție este utilizarea protocolului IPsec (IP security), care poate fi utilizat cu IPv4 și este o parte obligatorie a IPv6. IPsec este elementul central al nivelului rețea din cadrul protocolului TCP/IP.

Cu toate că IPsec este o soluție destul de flexibilă și acoperă majoritatea cerințelor utilizatorilor, cu siguranță există și cazuri în care alte protocoale se pot dovedi a fi o alternativă mai fiabilă.

Astfel, privite din perspectiva stivei de protocoale TPC/IP putem enumera:

la nivelul legătură de date:

PPTP (Point-to-Point Tunneling Protocol) – protocol dezvoltat de firmele Ascend Communications, Microsoft Corporation, 3Com/Primary Access, ECI Telematics și U.S. Robotics;

L2F (Layer 2 Forwarding) – protocol dezvoltat de Cisco;

L2TP (Layer 2 Tunneling Protocol) – protocol dezvoltat ca o alternativă la Layer 2 Forwarding a lui Cisco și Point-to-Point Tunneling Protocol (PPTP) a lui Microsoft.

la nivelul transport este utilizat protocolul SSL/TLS folosite pentru tunelare și pentru securizarea proxy-urilor web;

la nivelul aplicație sunt utilizate diferite soluții software, dezvoltate pentru a furniza soluții de securitate pentru o singură aplicație (ex.: e-mail) sau sunt soluții complexe, cum ar fi:

Multi-Protocol Label Switching (MPLS) – este o soluție care integreazã atât controlul rutãrii IP cât și comutarea de la nivelul legãturii de date;

OpenVPN – este o variantă de VPN bazată pe SSL capabilă să ruleze pe UDP.

2.4.1 Protocoalele IPsec

IPsec este o colecție de protocoale care ajută la protejarea comunicațiilor realizate pe rețele IP. Suita de protocoalele IPsec lucrează împreună, în diverse combinații, pentru a oferi protecție comunicațiilor.

Componentele principale ale protocoalelor IPsec sunt:

antetul de autentificare – protocolul Authentication Header (AH);

segmentul de date cu protecție prin încapsulare – protocolul Encapsulating Security Payload (ESP);

schimbul cheilor în Internet – protocolul Internet Key Exchange (IKE).

Suit de protocoalele IPSec au fost dezvoltate pe baza arhitecturii descrisă în RFC 2401.

Authentication Header (AH), unul dintre protocoalele de securitate IPsec, oferă protecție atât pentru antete cât și pentru pachetele de date, precum și autentificarea utilizatorului. AH nu poate cripta orice parte a pachetelor. În versiunea inițială a IPsec protocolul ESP oferea doar criptare, nu și autentificare, așa că AH și ESP au fost deseori folosite împreună pentru a oferi atât confidențialitate cât și integritate comunicațiilor. Deoarece capacitățile de autentificare au fost adăugate la ESP în versiunea a doua a IPsec, AH a devenit mai puțin important. De fapt, unele software-uri IPsec nu mai acceptă AH. Cu toate acestea AH este încă utilizat pentru că AH poate autentifica porțiuni de pachete care ESP nu le poate autentifica.

AH are două moduri de utilizare: transport și tunel. În modul tunel, AH creează un nou antet IP pentru fiecare pachet, în timp ce în modul de transport AH nu creează un nou antet IP. În modul tunel datagrama IP e toată încapsulată de o nouă datagramă IP folosind protocolul IPsec. În modul transport doar încărcătura utilă (payload-ul) datagramei IP e condus de protocolul IPsec inserând header-ul IPsec între header-ul IP și header-ul protocolului superior.

Encapsulated Security Payload (ESP) este al doilea protocol de securitate de bază din cadrul IPsec. În versiunea inițială a IPsec, ESP furniza criptare numai pentru pachetele de date. Dacă era necesar protecție integrității era asigurată de protocolul AH. În a doua versiune a IPsec, ESP a devenit mai flexibil, putând efectua autentificarea pentru a oferi protecția integrității, dar nu și pentru antetul exterior al IP-ului. De asemenea, criptare ESP poate fi dezactivată prin intermediul algoritmului Null ESP Encryption Algorithm. Prin urmare ESP poate fi utilizat pentru a oferi doar criptare, protecția integrității și criptare sau doar protecția integrității.

ESP are două moduri de utilizare: transport și tunel. În modul tunel ESP creează un nou antet IP pentru fiecare pachet. Noul antet IP afișează punctele finale al tunelului ESP (ca două gateway-uri IPsec), fiind specificate sursa și destinația pachetelor. Datorită acestui mod ESP poate fi folosit pentru orice tip de arhitectură VPN. Modul tunel poate cripta și/sau proteja integritatea atât a datelor cât și a antetelor IP originale pentru fiecare pachet. Criptarea datelor asigură protecția împotriva accesării sau modificării acestora de către persoane neautorizate. Criptarea antetului original al pachetului IP ascunde natura comunicărilor, precum sursa reală sau destinația pachetului.

Modul tunel ESP este mult mai utilizat decât modul transport ESP. În modul transport ESP se utilizează antetul IP original în locul creării unuia nou. În acest mod ESP poate cripta și/sau proteja numai integritatea datelor și pachetelor dar nu și a antetelor originale. Ca și protocolul AH, modul ESP transport este utilizat, în general, numai pentru în cadrul intranet VPN-urilor. De asemenea, modul transport ESP este incompatibil cu NAT (Network Address Translator). De exemplu, în fiecare pachet TCP suma de control este calculată pentru fiecare câmp TCP și IP, incluzând adresele sursei și destinației pachetelor în antetul IP. Dacă s-ar utiliza NAT una sau ambele adrese IP ar fi alterate iar NAT trebuie să recalculeze suma de control TCP. Dacă ESP criptează pachetele antetul TCP este criptat și în acest fel NAT nu poate recalcula suma de control.

În modul tunel utilizarea NAT nu este o problemă deoarece întregul pachet TCP este ascuns iar NAT nu va încerca să recalculeze suma de control TCP.

Internet Key Exchange (IKE) este protocolul destinat pentru negocierea, crearea și managementul asocierilor de securitate (Security Association – SA). SA este un termen generic pentru un set de valori care definesc caracteristicile IPsec și protecțiile aplicate unei conexiuni. Asocierile de securitate pot fi, de asemenea, create manual, folosind valori convenite în prealabil de ambele părți, dar aceste SA nu pot fi actualizate.

IKE utilizează cinci tipuri diferite de schimburi pentru a crea asocieri de securitate, pentru a transfera informații referitoare la starea pachetelor și a erorilor asociate acestora precum și pentru a defini noi grupuri Diffie-Hellman. În IPsec, IKE este folosit pentru a furniza un mecanism sigur pentru stabilirea de conexiuni protejate IPsec. IKE utilizează 5 tipuri de schimburi: modul principal, modul agresiv, modul rapid, modul informațional și modul de grup.

2.4.2 Protocolul PPTP

Protocolul PPTP (Point-to-Point Tunneling Protocol) este un set de reguli care permite organizațiilor să-și extindă propria rețea LAN prin “tuneluri” private dintr-o rețea WAN sau din Internet.

Protocoalele PPTP au fost dezvoltate pe baza arhitecturii descrisă în RFC 2637.

PPTP împachetează datele în pachete PPP iar apoi acestea sunt împachetate în pachete IP (datagrame) pentru transmiterea lor printr-un tunel VPN. PPTP acceptă criptarea datelor și comprimarea acestor pachete. PPTP folosește o formă de încapsulare cu direcționare generică (GRE – Generic Routing Encapsulation) pentru a transfera datele către și dinspre destinația finală.

Când sunt stabilite tunele PPTP se desfășoară un proces în două etape:

utilizatorul se conectează la furnizorul de Internet (printr-o linie telefonică sau printr-o conexiune dedicată);

clientul PPTP este lansat în execuție și acesta creează o conexiune de control prin TCP între client și server, stabilind astfel tunelul.

După stabilirea tunelului PPTP prin acesta circulă două tipuri de pachete de informații: mesaje de control, care gestionează tunelul PPTP și pachetele de date. PPTP se ocupă direct de menținerea tunelului VPN și transmite datele prin tunel.

PPTP este o soluție destul de utilizată pentru rețelele VPN datorită firmei Microsoft. Clienții PPTP sun disponibili gratuit în versiunile de Microsoft Windows. De asemenea, serverele Windows și dispozitivele Cisco pot funcționa ca servere VPN bazate pe PPTP pentru a încheia conexiunile de client PPTP.

Totuși, în conformitate cu Bruce Schneier de la Counterpaane Internet Security și Mudge de la firma L0pht Heavy Industries PPTP „… este slab și vulnerabil în fața unui atac pe baza dicționarului; cele mai multe parole pot fi dezvăluite în câteva ore. Am găsit criptarea ca fiind la fel de slabă … și am descoperit o serie de decizii greșite de proiectare, care fac posibile și alte atacuri împotriva criptării. Putem deschide o conexiune trecând de sistemul firewall, abuzând de negocierile PPTP și putem construi mai multe atacuri serioase de tip blocare a unui serviciu (DoS) asupra oricui folosește PPTP ”.

2.4.3 Protocolul L2F

Layer 2 forwarding (L2F) este un protocol de tip forwarding, folosit pentru tunelarea protocoalelor de nivel înalt într-un protocol de nivel 2 (legătură de date).

Protocolul L2F a fost dezvoltat pe baza arhitecturii descrisă în RFC 2341.

Deși această soluție facilitează conectivitatea pe linii de acces în rețele cu comutație de circuite, informația din fluxul L2F nu este criptată. Combinat cu PPTP, constituie componentă a L2TP.

Activitățile desfășurate pentru crearea unei conexiuni de tip L2F sunt oarecum identice cu cele desfășurate pentru o conexiune PPTP. Utilizatorul stabilește o conexiune neprotejată între calculatorul său și furnizorul de Internet. Furnizorul recunoaște acest utilizator și “știe” că traficul primit de la acesta trebuie să fie tunelat către o anumită organizație așa că desfășoară activitățile de autentificare ale utilizatorului cu organizația, furnizând trafic securizat între sediul său (al furnizorului de Internet) și organizație. Astfel, utilizarea protocolului L2F presupune suportul și participarea furnizorului de Internet și, implicit, o mare încredere în acesta, având în vedere că traficul între client și sediul furnizorului nu este securizat.

2.4.4 Protocolul L2TP

Firmele Cisco și Microsoft au convenit să-și unifice protocoalele, adoptând astfel cele mai bune caracteristici ale celor două protocoale pentru tunele prin Internet prezentate anterior: PPTP de la Microsoft și L2F de la Cisco Systems.

Protocolul L2TP a fost dezvoltat pe baza arhitecturii descrisă în RFC 2661.

Cele două component principale care alcătuiesc protocolul L2TP sunt L2TP Access Concentrator (LAC), dispozitivul care încheie fizic un apel și L2TP Network Server (LNS), dispozitivul care încheie și poate autentifica fluxul PPP. LAC este inițiatorul tunelului, în timp ce LNS este serverul care așteaptă tunelurile noi. Odată ce s-a stabilit tunelul, traficul între puncte este bidirecțional. O sesiune poate fi inițiată de LAC sau LNS. L2TP izolează traficul pentru fiecare sesiune, deci este posibilă stabilirea mai multor rețele virtuale prin același tunel.

L2TP nu asigură de unul singur confidențialitate sau autenticitate puternică. Cea mai mare forță a securității asigurate de L2TP constă în utilizarea protocolului IPSec, care asigură confidențialitatea conexiunilor, autentificarea fiecărui pachet și protecția împotriva atacurilor prin reluare pentru pachetele de control și de date. Combinația acestor protocoale se mai numește și L2TP/Ipsec.

L2TPv3 este o versiune a L2TP propus ca alternativă la protocolul MPLS, pentru încapsularea traficului de comunicații multiprotocol de nivelul 2. La fel ca L2TP, L2TPv3 asigură un serviciu de „pseudo-fir”, dar adaptat la cerințele purtătorului.

2.4.5. Protocolul SSL/TSL

SSL (Secure Sockets Layer) este un protocol dedicat securizării conexiunilor, creat de firma Netscape în vederea criptării comunicației între clientul și serverul HTTP. Protocolul este destul de flexibil pentru a permite oricărei aplicații ce comunică prin conexiuni să-l folosească. TLS (Transport Layer Security) este derivat din SSL versiunea 3, dar dezvoltat de IETF (Internet Engineering Task Force).

Protocolul TLS a fost dezvoltat pe baza arhitecturii descrisă în RFC 4346.

Protocolul SSL/TLS presupune existența unei legături nesecurizate între un client și un server, care în mod obișnuit este o conexiune TCP. Protocolul SSL/TLS oferă un serviciu de tip conexiune care asigură confidențialitatea și autenticitatea datelor utile transportate, acestea putând aparține oricărui protocol. Protocolul ale cărui date sunt transportate ca date utile de către SSL/TLS este numit tunelat prin SSL/TLS.

În cadrul inițierii unei conexiuni SSL/TLS se realizează stabilirea unei chei de sesiune care este utilizată în continuare pentru securizarea transportului datelor utile. Autentificarea stabilirii cheii poate fi unilaterală, doar clientul autentificând serverul cu care a realizat negocierea cheii de sesiune, sau bilaterală. În cazul autentificării unilaterale, se poate utiliza o autentificare a clientului față de server în cadrul protocolului tunelat. În acest caz, deoarece serverul este deja autentificat, autentificarea clientului poate fi făcută prin parolă, fără riscul ca aceasta să fie transmisă unui adversar.

Autentificarea stabilirii cheii de sesiune se face printr-un mecanism de semnătură digitală. Pentru distribuirea sigură a cheilor publice, utilizate în cadrul autentificării, se utilizează certificate.

Serverul trebuie să aibă o pereche de chei pentru semnătură digitală și un certificat, semnat de o autoritate în care clientul are încredere, pentru cheia publică. La inițierea conexiunii SSL/TLS, serverul transmite clientului certificatul sau clientul verifică faptul că numele din certificat coincide cu numele serverului la care dorea conectarea, că semnătura autorității de certificare asupra certificatului este validă, că autoritatea de certificare este de încredere și, în cele din urmă, utilizează cheia publică din certificatul clientului pentru a autentifica stabilirea cheii de sesiune. Dacă se dorește și autentificarea clientului față de server tot prin SSL/TLS, atunci clientul trebuie să aibă, la rândul său, o pereche de chei și un certificat.

În vederea verificării semnăturii din certificat și a faptului că semnatarul (autoritatea de certificare) este de încredere, fiecare dintre parteneri trebuie să aibă o listă cu cheile autorităților de certificare de încredere. Cheia unei autorități de certificare este, în mod obișnuit, plasată tot într-un certificat.

Certificatul unei autorități de certificare poate fi semnat de către o altă autoritate de certificare sau chiar de către autoritatea posesoare a certificatului. În acest din urmă caz, certificatul se numește certificat autosemnat.

2.5 Comparație a protocoalelor utilizate pentru realizarea rețelelor VPN

Bineînțeles că nici unul din protocoalele de tunelare prezentate anterior nu este “infailibil”. În Tabelul nr. 3 prezint o serie de avantaje și dezavantaje ale fiecărui protocol de tunelare în parte.

Tabelul nr. 3 – Comparație a protocoalelor de tunelare

CAPITOLUL III

SECURITATEA ÎN VPN

3.1 Tehnici de securitate

Prin restrângerea accesului la informații și acordarea de drepturi numai către utilizatorii autorizați se poate realiza o protecție suficientă în multe cazuri. Asignarea drepturilor de acces este o capabilitate a oricărui sistem de operare, acesta controlând cine și ce informație accesează. Prin utilizarea unui sistem centralizat de autentificare (gen Active Directory – folosit de Microsoft Windows) și a grupurilor de utilizatori autorizați, se poate controla cu precizie cine poate utiliza o anumită informație.

Controlul accesului este un termen folosit pentru a defini un set de tehnologii de securitate care sunt proiectate pentru restricționarea accesului. Aceasta presupune că numai persoanele care au permisiunea vor putea folosi calculatorul și vor avea acces la datele stocate. Termenul de control al accesului (acces control) definește un set de mecanisme de control implementate în sistemele de operare de către producători pentru restricționarea accesului.

Controlul accesului este o măsura puternică, flexibilă și ușor de implementat, însă are și un mare dezavantaj: nu protejează decât informația existentă în interiorul perimetrului; odată informația extrasă și copiată în afara perimetrului protejat, aceasta devine disponibilă oricui. Astfel, dacă un angajat copiază un document secret pe un memory stick, sau îl trimite prin e-mail, accesul la documentul respectiv nu mai poate fi controlat.

De aceea, următorul pas în protecția informațiilor îl constituie instituirea de filtre de perimetru în punctele care conectează sistemul informatic cu lumea exterioară. Astfel, un firewall poate șterge atașamentele trimise pe e-mail, iar extensiile la sistemul de management cu Active Directory pot interzice unui utilizator să copieze documente pe un memory stick care nu a fost autorizat în prealabil, toate aceste măsuri fiind instituite sub forma de „politici de securitate” și implementate administrativ. Odată ce a fost verificată identitatea persoanei, profilul de utilizator va determina exact care resurse și servicii pot fi accesate în rețea, fără a compromite securitatea rețelei.

Procedurile de autentificare pot fi implementate atât la nivelul aplicațiilor cât și la nivelul punctului de acces la rețeaua VPN. Prin aceste proceduri de autentificare se stabilește identitatea utilizatorului care folosește “portul VPN”" și se reduce posibilitatea unui acces neautorizat în rețea.

Cele mai cunoscute scheme de autentificare a utilizatorilor sunt:

utilizarea unei identități (username) și a unei parole (password);

utilizarea unei aplicații de tip S/Key password (de unică folosință);

utilizarea unui aplicații bazată pe token;

utilizarea tehnicii AAA.

Una dintre cele mai bune și viabile scheme de autentificare a utilizatorilor, disponibilă în prezent pe piață, este schema de autentificare cu doi factori (two-factor), care necesită două elemente pentru verificarea identității unui utilizator: un element fizic aflat în posesia acestuia (un token/jeton electronic) și un cod care este memorat (un PIN – Personal Identification Number). Există și soluții avansate care utilizează mecanisme de identificare biometrice, cum ar fi amprentele digitale, vocale sau ale retinei.

3.3.1 Tehnici AAA

Pentru o cât mai bună păstrare a confidențialității datelor orice utilizator ale serviciilor unei rețele trebuie să îndeplinească trei cerințe:

autentificare (authentication);

autorizare (authorization);

evidența utilizatorilor (accounting).

Aceste componente sunt denumite împreună AAA, termen provenit din limba engleză.

Autentificarea verifică dacă utilizatorul rețelei este cine pretinde că este, deoarece nu se dorește ca acea persoană să aibă acces la rețea dacă nu este cine se presupune că este. De obicei, autentificarea se face printr-un secret partajat sau de către o aplicație software sigură, produsă de o terță parte.

Autentificarea permite administratorilor de rețea să identifice persoanele care se pot conecta la un echipament al rețelei sau la Internet prin includerea numelui de utilizator și a parolei. Cu ajutorul autentificării AAA, ori de câte ori un utilizator deschide o sesiune de lucru, trebuie să introducă o pereche de informații alcătuită dintr-un nume de utilizator și o parolă (cele alocate de administratorul de sistem).

Autorizarea este legată de autentificare și intră în acțiune după ce se termină autentificarea. După ce este autentificat utilizatorul trebuie să existe o cale prin care să se verifice dacă acesta este autorizat să facă ceea ce solicită.

Autorizarea permite administratorilor să controleze nivelul de acces pe care îl au utilizatorii după ce au obținut accesul la un echipament. Autorizarea poate, de asemenea, să dicteze tipurile de activitate pe care o poate efectua un utilizator, cum ar fi permisiunea ca acesta să aibă acces la aplicațiile de trafic FTP, Telnet sau http.

Evidența utilizatorilor dare loc după ce s-au încheiat etapele de autentificare și autorizare. Evidența utilizatorilor permite administratorilor să adune informații despre cei ce folosesc echipamentele și despre acțiunile pe care le întreprind când se conectează la acestea. Administratorii pot urmări astfel ce utilizator a deschis o sesiune de lucru, pe ce echipament, ce comenzi a dat și care a fost traficul efectuat.

Tehnicile AAA pot fi implementate prin intermediul serverelor externe de securitate, care rulează protocoale de securitate, cum ar fi RADIUS sau TACACS.

3.2 Tehnici pentru integritatea mesajelor

Mesajele electronice sunt probabil cele mai răspândite forme de transmitere a informației, prin care putem stoca pe termen lung cunoștințe, diagrame, schițe sau alte forme de reprezentare a informațiilor. Printre utilizatorii mesajelor electronice se regăsesc atât persoane individuale, cât și companii comerciale sau organisme guvernamentale, fiecare dintre aceste categorii având cerințe specifice privind protejarea, stocarea si utilizarea informației.

Principala măsură de protecție a informației conținute într-un mesaj o reprezintă criptarea, prin care conținutul acestuia nu poate fi accesat decât în prezența unei parole. Protecția prin criptare se poate implementa în două moduri: prin criptarea substratului care conține informația sau prin criptarea conteiner-ului care conține informația.

Prima și cea mai simplă metodă de protecție a unui mesaj o reprezintă criptarea substratului purtător al informației. Atunci când stocăm un document pe hard disk (fie pe discul local, fie în rețea), avem posibilitatea să criptăm fișierul respectiv, asigurându-ne în acest fel că nimeni altcineva nu are acces la acea informație.

Prin criptarea conteiner-ului informațional, efectiv se intervine asupra mesajului în totalitatea lui. Această metodă protejează mai bine informația, deoarece face diferențierea clară între fișierul care conține medajul și informația conținută în acesta (și pe care ne dorim de fapt să o protejăm); astfel, dacă un fișier ce reprezintă un document Office protejat prin parolă este pierdut sau sustras, acesta nu va putea fi utilizat în lipsa unei parole adecvate.

Dar, pentru o mai bună înțelegere a aspectelor legate de criptarea informației, cred că este necesar să clarificăm câteva aspecte legate de atacurile criptografice.

O categorie aparte de atac asupra informațiilor stocate sau transmise o reprezintă atacurile criptografice, prin care se încearcă extragerea informațiilor din mesajele criptate.

Atacurile criptografice se aplică direct mesajelor cifrate în vederea obținerii informației originale în clar și/sau a cheilor de criptare și de decriptare. Știința care se ocupă cu studiul metodelor de obținere a înțelesului informațiilor criptate, fără a avea acces la informația secretă necesară în mod normal pentru aceasta estre criptanaliza iar criptanalistul este persoana care se ocupă cu criptanaliza mesajelor cu caracter secret. Scopul metodelor de criptanaliză este descoperirea mesajelor în clar (M) și/sau a cheii (K) din mesajul criptat (C).

Atacurile criptografice pot fi de mai multe tipuri:

brut (brute force), prin încercarea tuturor combinațiilor posibile fie de chei de criptare, fie de simboluri din text pentru deducerea textului în clar. Atacul devine ineficient atunci când lungimea cheii este suficient de mare, astfel numărul de încercări fiind foarte mare, depășindu-se capacitatea de procesare a celor mai performante sisteme de calcul ori durata de procesare criptanalitică fiind mai mare decât perioada de valabilitate a informațiilor transmise;

asupra textului criptat (cipher text attack) interceptat, prin analiza căruia se încearcă găsirea textului original sau a cheii de criptare;

asupra unui text în clar cunoscut (known plain-text attack), pentru care s-a aflat criptograma și pe baza căruia se face o extrapolare pentru deducerea altor porțiuni din mesaj;

asupra unor texte criptate alese (chosen cipher-text attack), pentru care se obțin criptogramele asociate unor texte folosind algoritmi de criptare cu chei publice și se urmărește aflarea cheilor de decriptare.

Ca principale metode de criptanaliză putem aminti metoda diferențială (are la bază perechi de texte criptate, obținute prin criptarea unei perechi de texte în clar și analiza diferențelor dintre acestea), metoda liniară (folosește texte în clar cunoscute și textele criptate asociate, încercând pe baza lor aproximarea liniară a cheii de criptare) și metoda combinată (aplică ambele procedee menționate anterior pentru spargerea cifrurilor).

Pentru protejarea împotriva atacurilor criptografice s-au creat algoritmi din ce în ce mai complecși, ca regulă generală, un algoritm fiind considerat sigur dacă cea mai puțin costisitoare metodă prin care poate fi atacat (ca timp de procesare, spațiu de memorie, preț) este atacul brut. La crearea acestor algoritmi se au în vedere următoarele:

asigurarea confidențialității, care are drept obiectiv împiedicarea înțelegerii mesajului criptat interceptat de către adversar;

asigurarea autenticității, care are ca obiectiv detectarea, de către receptor a mesajelor create sau modificate de un adversar activ;

asigurarea non-repudiabilității mesajelor, adică emitentul să nu poată nega faptul că a transmis un anumit mesaj, iar receptorul să nu poată crea mesaje care să pară autentice;

verificarea prospețimii are ca obiectiv detectarea, de către receptor, a eventualelor copii ale unui mesaj (autentic) mai vechi. Este posibil ca un adversar să intercepteze, de exemplu, un ordin de transfer de bani în favoarea sa și apoi să transmită băncii multiple copii ale ordinului respectiv iar fără a verifica prospețimea, banca va efectua de mai multe ori transferul de bani. Doar verificarea autenticității mesajelor nu ar rezolva problema deoarece fiecare copie este identică cu originalul, deci este autentică.

autentificarea entităților, care are drept obiectiv verificarea, de către o entitate, a identității entității cu care comunică.

stabilirea cheii are ca obiectiv obținerea, de către partenerii de comunicație legitimi, a unui șir de biți, numit cheie, ce urmează a fi utilizată la asigurarea confidențialității și la verificarea autenticității mesajelor. Cheia obținută trebuie să fie cunoscută doar de către partenerii care doresc să comunice. Autentificarea nu are sens decât dacă se realizează și verificarea integrității mesajului.

Când se transmite un mesaj, pentru asigurarea confidențialității, acesta este criptat cu ajutorul unui algoritm, generându-se text cifrat (engl. ciphertext). Receptorul autorizat trebuie să poată recupera textul clar aplicând un algoritm asupra textului cifrat. Adversarul, care dispune de textul cifrat dar nu cunoaște anumite detalii ale algoritmului aplicat de emițător, trebuie să nu fie capabil să reconstituie textul clar. Operația prin care emițătorul transformă textul clar în text cifrat se numește criptare sau, uneori, cifrare (engl. encryption). Operația prin care receptorul obține textul clar din textul cifrat se numește decriptare sau descifrare (engl. decryption).

Criptarea este o metodă de codare a informațiilor prin intermediul unei forme algoritmice într-o formă indescifrabilă înainte de transmiterea acestora de către stația de lucru sursă și decodate ulterior la destinație prin aplicarea algoritmului de criptare în sens invers.

Fără ca să existe un mecanism de criptare a datelor, acestea ar circula în clar pe canalele de comunicație publice ale Internetului. Aceste date ar putea fi citite și interceptate prin tehnici banale (analizor de protocol, instrumente de diagnoză în rețea, adeseori incluse în sistemele de operare în rețea).

Există mai multe criterii după care se pot clasifica algoritmii de criptare. Cel mai important criteriu este după felul în care se folosește cheia la criptarea, respectiv decriptarea mesajului. Algoritmii se împart în două mari clase: cu chei simetrice (sau chei private) și cu chei asimetrice (sau chei publice).

3.2.1 Algoritmi cu chei simetrice

Algoritmii de criptare cu chei simetrice (private) au proprietatea că folosesc aceeași cheie atât pentru criptarea textului clar, cât și pentru decriptare textului codificat. Din acest motiv este folosit termenul de simetric. Cheile pot fi identice, sau una din ele să poată fi obținută din cealaltă folosind transformări simple. Cheile reprezintă de fapt un secret care este partajat doar de părțile implicate și care permite schimbul ulterior de mesaje în mod secret între acestea.

Dintre algoritmii simetrici cei mai cunoscuți și utilizați în practică amintes:

Data Encryption Standard (DES) – se bazează pe un algoritm simetric care lucrează cu blocuri de lungime 64 de biți iar lungimea cheii este de 56 biți. A fost utilizat pe scară destul de largă, fiind susținut ca standard de către guvernul Statelor Unite ale Americii. În prezent este nesigur datorită lungimii mici a cheii (a fost deja spart prin forță brută). În ianuarie 1999, distributed.net și Electronic Frontier Foundation au colaborat pentru a sparge public o cheie DES în 22 de ore și 15 minute. Există, de asemenea, unele rezultate analitice care demonstrează slăbiciunile teoretice ale cifrului, deși ele sunt imposibil de montat în practică;

Triple DES (3DES) – constă în aplicarea de 3 ori succesiv a cifrului DES, cu 2 sau 3 chei distincte. A fost proiectat pentru a oferi o metodă relativ simplă de a crește dimensiunea cheii pentru DES, fără proiectarea unui sistem complet nou. Lucrează cu blocuri de lungime 64 de biți iar lungimea cheii este de 112 sau 168 biți. Este imposibilă spargerea acestuia prin forță brută;

Advanced Encryption Standard (AES) – se bazează pe un algoritm simetric care lucrează cu blocuri de 128 biți iar lungimea cheii este de 128, 192 sau 256 biți. A fost proiectat de doi belgieni, Joan Daemen și Vincent Rijmen și publicat sub numele Rijndael. În urma unui concurs, a fost desemnat ca nou standard utilizat de guvernul american;

CAST 128 – Creat de Carlisle Adams și Stafiord Tavares în 1996, lucrează cu blocuri de 64 biți iar lungimea cheii este cuprinsă între 40 și 128 biți;

Blowfish – se bazează pe un algoritm simetric care lucrează cu blocuri de 64 biți iar lungimea cheii este de până la 448 biți. Creat de Bruce Schneier în 1993, a fost conceput ca un algoritm de uz general, ca o alternativă la DES. Algoritmul este public și poate fi utilizat în mod liber de oricine;

Twofish – se bazează pe un algoritm simetric care lucrează cu blocuri de 128 biți iar lungimea cheii este de până la 256 biți. Creat de Bruce Schneier, Kelsey John, Doug Whiting, David Wagner, Chris Hall, și Niels Ferguson, a fost unul dintre cei cinci finalisti ai concursului Advanced Encryption Standard, dar nu a fost selectat pentru standardizare. Pe majoritatea platformelor software Twofish este ușor mai lent decât Rijndael (algoritmul ales pentru Advanced Encryption Standard) pentru chei de 128 biți, dar oarecum mai rapid pentru 256 de biți;

Serpent – lucrează cu blocuri de 128 biți iar lungimea cheii este de 128, 192 sau 256 biți. A fost creat de Ross Anderson, Eli Biham și Lars Knudsen și a candidat pentru AES;

RC6 – se bazează pe un algoritm simetric care lucrează cu blocuri de 128 biți iar lungimea cheii este de 128, 192 sau 256 biți. A fost proiectat de Ron Rivest, Robshaw Matt, Sidney Ray și Yiqun Yin Lisa și a candidat pentru AES, fiind unul dintre cei cinci finaliști. A fost patentat de RSA Security;

RC4 – este cel mai utilizat cifru flux. Este utilizat în protocoalele populare, cum ar fi Secure Sockets Layer (SSL) (pentru a proteja traficul Internet) și WEP (pentru a asigura rețelele wireless). Cheia are lungimea de până la 256 biți. A fost creat de Ronald Rivest în 1987. Este foarte rapid dar are câteva slăbiciuni, care pot fi contracarate prin artificii legate de modul de utilizare;

IDEA – (Internațional Data Encryption Algorithm) folosește o cheie de 128 de biți și din acest motiv este mai rezistent la atacuri directe care încearcă să descifreze textul prin testarea fiecărei chei posibile;

Slipjack – algoritm nou, clasificat ca secret, a fost dezvoltat de Agenția Națională pentru Securitate a Statelor Unite și folosește o cheie de 80 de biți.

Algoritmii utilizați în prezent de producătorii VPN sunt RC-4 (RSA), DES, IDEA, triple-DES sau tehnologia de criptare Skipjack, propusă de guvernul Statelor Unite și implementată în cipul Clipper. Fiecare dintre acești algoritmi diferă prin lungimea cheii, care adesea este asimilată cu "puterea" de criptare a algoritmului. Această putere determină efortul de calcul necesar pentru descoperirea cheii. Cu cât o cheie este mai lungă cu atât algoritmul de criptare este mai "puternic".

Cu toate acestea, utilizarea doar a unui sistem cu cheie privată prezintă câteva dezavantaje. Din moment ce "cheia secretă" este folosită atât pentru criptare, cât și pentru decriptare, oricine deține această cheie poate intercepta datele care au fost sau nu criptate, punând sub semnul riscului comunicațiile desfășurate sub această cheie. Din această cauză, cheile trebuie livrate într-o manieră intrinsec protejată, cum ar fi transferul direct între persoane.

Confidențialitatea comunicațiilor se bazează pe integritatea cheii secrete, de aceea cheia trebuie înlocuită periodic. Printr-o înlocuire foarte frecventă, un anumit stil de criptare este expus publicului pentru o fereastră de timp cât mai mică. Această metodă de transmisie și înlocuire a cheilor este acceptabilă în cazul unui număr mic de chei. Odată cu creșterea numărului de chei, procesul devine mult mai complicat. De exemplu, pentru 100 de utilizatori în VPN, într-un criptosistem simetric, trebuie administrate 4950 de chei. În acest scenariu, componenta de setare și distribuție a cheilor pe perechi de parteneri de comunicații, luând în considerare și înlocuirea lor periodică, devine extraordinar de dificilă și consumatoare de timp.

Criptografia cu chei simetrice prezintă diverse avantaje și dezavantaje:

Avantaje ale criptografiei cu chei simetrice:

permit gestionarea unor volume mari de date, cu viteză relativ bună, în special atunci când este vorba de implementări hard;

cheile folosite sunt relativ scurte;

pot fi folosiți ca primitive pentru a construi soluții criptografice incluzând generatoarele de numere pseudo-aleatoare și funcțiile hash;

se pot compune pentru a produce algoritmi mai puternici.

Dezavantajele criptografiei cu chei simetrice

într-o comunicație cheia trebuie să rămână secretă în ambele capete;

într-o rețea cu mulți utilizatori numărul cheilor care trebuie gestionate devine o problemă majoră;

pentru o comunicație între două părți, practica criptografică impune schimbul cheilor frecvent, uneori chiar la fiecare sesiune, ceea ce în condițiile unui canal nesigur de comunicație este o altă problemă.

3.2.2 Algoritmii cu chei asimetrice

Algoritmii de criptare cu chei asimetrice (publice), sau cu chei publice, folosesc două chei diferite pentru criptare și decriptare, una din ele fiind secretă (privată) iar cealaltă publică. Deși cheile sunt diferite, există o legătură între ele din punct de vedere matematic. Una din chei este folosită pentru criptarea mesajului clar, iar cealaltă pentru decriptarea mesajului codat. Niciuna dintre aceste chei nu poate fi folosită doar ea atât pentru criptare cât și pentru decriptare. Cheia publică poate fi publicată fără nici un risc în a compromite securitatea, în timp ce cheia privată nu trebuie să o știe decât cei care au acces la informație. Algoritmii folosiți în criptarea asimetrică au la bază probleme matematice care nu au soluții eficiente (factorizarea numerelor întregi foarte mari, problema logaritmului discret, etc.).

În cazul cheilor publice crearea și distribuția acestora se realizată mult mai simplu decât de cazul unui sistemelor de criptare cu cheie privată.

Cel mai des, în practică, în cazul unor rețele VPN, se utilizează doi algoritmi cu chei asimetrice: Diffie-Hellman (DH) și Rivest Shamir Adlemen (RSA).

3.2.2.1 Algoritmul Diffie-Hellman

Unul dintre modurile prin care două sisteme care comunică pot cădea de acord asupra unei valori pentru cheia de criptare este sistemul cu cheie publică Diffie-Hellman. În acest algoritm, combinația dintre cheia privată a utilizatorului A și cheia publică a utilizatorului B va genera același rezultat ca și combinația dintre cheia privată a utilizatorului B și cheia publică a utilizatorului A. Proprietatea poate fi extinsă la orice combinație de două chei, astfel încât cheia publică a oricărui partener de comunicații poate fi distribuită liber, fără a pune în pericol securitatea sistemului. Cele două părți, care schimbă cheile publice proprii sunt singurele care vor genera ceea ce se numește secretul comun. Sistemul devine extrem de sigur, fără ca o altă parte să poată crea sau cunoaște secretul comun.

Un criptosistem cu cheie publică poate fi folosit pentru sporirea securității unui sistem cu cheie privată prin distribuirea unei chei secrete, comună celor două părți care doresc să stabilească o sesiune de comunicații privată. Primul pas este obținerea de către utilizatorul A a cheii publice a utilizatorului B și obținerea de către utilizatorul B a cheii publice a utilizatorului A. În continuare, utilizatorul A și utilizatorul B calculează cheia secretului comun. În cele din urmă ei pot utiliza secretul comun pentru criptarea și decriptarea tuturor transmisiilor de date dintre ei. Din acest punct de vedere, criptosisternul cu cheie publică Diffîe-Hellman este cunoscut și sub numele de sistem cu distribuție de chei publice Diffie-Hellman.

Există însă o componentă a mecanismului de distribuție a cheii ce trebuie utilizat pentru a asigura proveniența cheilor. Dacă cei doi corespondenți își obțin cheile publice reciproce printr-un canal de comunicație nesigur, cum ar fi Internetul, ei trebuie să fie siguri de proveniența cheilor. Ei nu își pot cere pur și simplu cheile publice, din cauza pericolului ca altcineva să supravegheze tocmai această sesiune de comunicații. O altă persoană poate să intercepteze cererea utilizatorului A de a primii cheia publică a utilizatorului B și să-și trimită propria cheie publică către ambii corespondenți. Dacă se întâmplă acest lucru corespondenții vor avea un secret comun cu aceea persoană, care va devenii un virtual corespondent pentru fiecare dintre cei doi. Această situație este cunoscută sub numele de amenințarea “omului din mijloc” (Man in the Middle). O metodă de protecție împotriva acestei amenințări, ca și a altora, este utilizarea unei combinații între un criptosistem cu cheie publică cu RSA și un sistem de semnături digitale, astfel încât distribuția cheilor să fie realizată sigur și protejat.

3.2.2.2 Algoritmul Rivest Shamir Adleman (RSA)

Cel mai popular algoritm cu chei publice în ziua de azi este RSA. Numele algoritmului provine de la inițialele inventatorilor Ron Rivest Adi Shamir și Leonard Adleman, și a rezistat la mai mult de 20 de ani de criptanaliză intensivă. Securitatea algoritmului se bazează pe dificultatea factorizării numerelor mari. Cheile private și publice sunt funcția a două numere mari prime

Algoritmul RSA este aproape singura metodă “adevărată” de criptare cu cheie publică și se bazează pe următoarele fapte matematice: dacă se ridică un număr la o putere (d), modulo un număr N, numărul original poate fi recuperat prin ridicarea rezultatului la o altă putere (e) modulo același număr. Cunoscând numărul N utilizat ca și modul precum și prima putere folosită se poate determina cu ușurință care a fost cea de a doua putere folosită.

Algoritmul RSA constă în trei pași: generarea cheilor, criptarea și decriptarea. Pentru generarea cheilor se creează mai întîi o pereche de numere prime pentru care se calculează produsul lor. Acest produs, împreună cu un alt număr (exponentul de criptare) va reprezenta cheia publică. Cheia privată constă din același produs și un alt număr (exponentul de decriptare). Cele două numere prime nu vor mai fi folosite, dar ele trebuie păstrate secrete în continuare, deoarece pe baza lor se poate calcula exponentul de decriptare. Algoritmul este unul de criptare pe blocuri, fiecare bloc fiind criptat rând pe rând.

Cheile pentru algoritmul RSA se generează după cum urmează:

se aleg două numere prime p și q; din motive de securitate aceste numere trebuie să fie cât mai mari, să fie alese aleatoriu și să aibă aproximativ aceeași lungime;

se calculează produsul n al celor două numere prime, acest număr va fi ulterior componenta ambelor chei:

n = p x q;

se calculează indicatorul Euler (n) al lui n:

(n) = (p-1) x (q-1);

se alege un număr e, exponentul de criptare astfel încât:

1 < e < (n) și cmmdc(e, (n)) = 1 (adică e și (n) sunt coprime);

se calculează numărul d, exponentul de decriptare astfel încât:

e x d 1 mod (n)

echivalent cu:

d = e-11 mod (n)

cheia publică va fi perechea (n, e), cheia privată va fi perechea (n, d) iar numerele prime p, q vor fi păstrate secrete.

Rolul numerelor e și d, ca parte din cheia publică sau cea privată, poate fi interschimbat, ele fiind echivalente din punct de vedere matematic și este la alegere. În practică se folosesc valori mici pentru numărul e pentru ca viteza de criptare să fie sporită.

Pentru realizarea criptării mesajul este împărțit în blocuri, iar fiecare bloc este convertit într-un număr întreg m, unde m<n, folosind un algoritm reversibil cunoscut. Textul criptat c corespunzător fiecărui bloc va fi calculat astfel, folosind cheia de criptare – perechea (n, e):

c = me mod n.

pentru aflarea mesajului clar m din mesajul criptat c, se folosește cheia de decriptare – perechea (n, d):

m = cd mod n.

Criptosisternul cu cheie publică RSA poate fi folosit pentru două scopuri: criptare și semnături digitale. Orice informație criptată cu cheia privată RSA poate fi decriptată numai cu cheia publică RSA corespunzătoare. Dacă utilizatorul A își folosește cheia privată RSA pentru criptarea unui mesaj, oricine deține cheia sa publică poate decripta acel mesaj. În această manieră schema RSA poate fi aplicată pentru atingerea unor scopuri diferite, inclusiv transportul cheilor sau a materialului criptat.

Criptografia cu chei asimetrice prezintă, de asemenea, avantaje și dezavantaj:

Avantajele criptografiei cu chei asimetrice:

dintre cele două chei folosite doar una trebuie ținută secret;

administrarea cheilor într-o rețea poate fi făcută cu un singur administrator “de încredere”;

în general perechile de chei publice/secrete pot fi folosite pe o perioada lungă de timp fără a fi schimbate;

într-o rețea de dimensiuni mari numărul de chei necesare este considerabil mai mic decât în cazul criptografiei simetrice.

Dezavantajele criptografiei cu chei asimetrice:

viteza algoritmilor (chiar și a celor mai performanți) este de câteva ori mai mică decât a celor cu chei simetrice;

dimensiunea cheilor folosite este mai mare (1024 pentru RSA în comparație cu 64 sau 128 în cazul algoritmilor de tip bloc);

nici un algoritm nu s-a demonstrat a fi “sigur”; securitatea lor se bazează pe prezumția de dificultate a unui set de probleme de teoria numerelor;

istoria criptografiei cu chei publice este relativ scurtă (din 1970) .

3.3 Utilizarea tehnicilor de criptare pentru realizarea rețelelor VPN

Pentru realizarea unei conexiuni VPN cât mai fiabile este importantă considerarea unei soluții care să prezinte atât mecanisme de autentificare a datelor (procesul de semnătură digitală sau de integritate a datelor) cât și de autentificare a utilizatorilor (procesul de verificare a identității utilizatorilor VPN).

Pentru stabilirea unei rețele VPN securizată, care asigură confidențialitatea, autentificarea și integritatea informațiilor se poate utiliza o combinație între sistemul de criptare cu chei simetrice, schema de semnături digitale RSA și sistemul de distribuție a cheilor Diffie-Hellman.

Securitatea unei rețele VPN este asigurată în egală măsură atât de algoritmii și cheile de natură matematică cât și de mecanismul de generare, distribuție și administrare a cheilor. În situația în care cheile sunt compromise, atunci întreaga rețea poate fi compromisă. Administratorul responsabil de generarea cheilor publice și private destinate fiecărui utilizator, precum și mecanismele de distribuire a acestora, trebuie să prezinte cel mai mare nivel de încredere. Asocierea utilizatorilor cu perechile de chei determină siguranța întregului sistem.

IPsec este un standard bine cunoscut și aplicat în industria rețelelor pentru crearea rețelelor VPN. Având în vedere că standardul IPsec a fost definit de Internet Engineering Task Force (IETF) în cadrul unui documente RFC, interoperabilitatea dintre furnizori face din IPsec o bună opțiune pentru realizarea rețelelor VPN.

IPsec furnizează un mijloc eficiente pentru realizarea autentificării și oferă servicii de criptate participanților la comunicație. În cazul tehnologiei IPsec, pentru protejarea împotriva atacurilor de interceptare sau de sustragere, se pot realiza rețele VPN prin Internet având o bună protecție bazată pe criptare.

După cum am prezentat anterior, în paragraful 2.4.1, IPsec utilizează trei protocoale complementare: protocolul Authentication Header (AH), protocolul Encapsulating Security Payload (ESP) și protocolul Internet Key Exchange (IKE)

Principala sarcină a protocoalelor IPsec este să faciliteze schimbul de informații, securizat, printr-o rețea neprotejată, stabilind conexiunea și furnizând cheile într-un mod protejat. Cu toate acestea, pentru a utiliza eficient criptarea, ambii parteneri trebuie să împartă o cheie secretă folosită și la criptare cât și la decriptarea informațiilor când acestea intră sau părăsesc tunelul VPN. În acest scop IPsec utilizează protocolul IKE pentru a realiza o legătura sigură, care creează rețeaua VPN și conexiunile de date.

Pașii necesari pentru realizarea unei tranzacții IPsec sunt următorii:

unul dintre utilizatorii IPsec generează să recepționează trafic (de interes) pe o interfață anterior configurată să realizeze un tunel IPsec pentru acest trafic;

utilizând unul dintre cele 2 moduri în care lucrează (principal sau agresiv) IKE creează o asociere de securitate (SA) între cei doi utilizatori IPsec;

print intermediul IKE, care funcționează în modul de negociere rapid, se creează două asocieri de securitate IPsec între doi utilizatori;

utilizând protocoalele de încapsulare ESP și AH datele sunt transferate prin tunel în mod criptat.

Pentru schimbarea unei chei secrete partajate, în mod confidențial, IPsec lucrează în două etape.

În prima etapă (Figura nr. 1) IKE negociază parametrii de securitate necesari pentru crearea unei conexiuni protejate între doi utilizatori IPsec. În etapa 1 IKE stabilește suita de protecție pentru mesaje. În această etapă, care constă în crearea asocierii de securitate, utilizatorii negociază și stabilesc parametrii pentru următoarea asociere IPsec. În situația în care utilizatorii IPsec nu pot realiza schimbul IKE se realiza o configurare manuală (utilizând chei dinainte partajate). Etapa 1 se încheie cu stabilirea unui canal sigur între utilizatorii IPsec.

Figura nr. 1 – Funcționarea Etapei 1 IKE

Etapa a doua (Figura nr. 2) IKE asigură securitatea canalului, utilizând tunelul realizat în prima etapă și realizează schimbarea unor parametrii suplimentari, utilizați pentru efectuarea propriu-zisă a schimbului de date. În această etapă IKE negociază asocierile de securitate, furnizând interfața pentru IPsec.

Figura nr. 2 – Funcționarea Etapei 2 IKE

Tunelurile utilizate în ambele etape ale protocolului IPsec au la bază asocierile de securitate (SA) folosite la fiecare capăt al conexiunii IPsec. Aceste asocieri de securitate descriu tipul de autentificare și de criptare, convenite a fi folosite de ambii utilizatori.

Algoritmul Diffie-Halman funcționează așa cum a fost descris în paragraful 3.2.2.1 din prezenta lucrare.

Modul de funcționare a conexiunii VPN realizată cu IPsec și principalele mesaje schimbate, în ambele etape ale IKE, sunt prezentate schematic în figura nr. 3.

Figura nr. 3 – Stabilirea conexiunii VPN

OpenVPN este o aplicație gratuită, open source, oferită sub licență pentru utilizări non-comerciale, destinată creării tunelelor criptate punct-la-punct între calculatoare gazdă. Programul a fost dezvoltat de Francis Dinha și James Yonan, co-fondatori ai companiei OpenVPN Technologies, Inc..

OpenVPN permite utilizatorilor să se autentifice folosind chei secrete cunoscute sau modul de autentificare nume utilizator/parolă. Programul utilizează librăria de criptare OpenSSL și protocolul SSLv3/TLSv1. Acesta este disponibil pentru platformele Windows, MAC, Linux, Android, și iOS și conține multe soluții de securitate și control.

Pachetul conține aplicațiile necesare pentru conexiunile client și server, un fișier de conexiune opțional și mai multe fișiere-cheie, ce pot fi utilizate funcție de metoda de autentificare aleasă.

OpenVPN utilizează biblioteca OpenSSL în scopul criptării canalelor de comunicație și control. Pachetul lasă în sarcina OpenSSL-ului criptarea și autentificarea, permițând astfel OpenVPN-ului să utilizeze toate cifrele disponibile în pachetul OpenSSL. Open VPN poate utiliza funcția de autentificare a pachetului HMAC, pentru a adăuga un nivel suplimentar de securitate conexiunii, și de asemenea, poate folosi și accelerarea hardware pentru îmbunătățirea performanțelor criptării.

OpenVPN are mai multe posibilități de autentificarea a utilizatorilor. Varianta în care se utilizează chei de autentificare este mai ușoară, fiind bazată pe certificate de autentificare, fapt ce asigură o multitudine de funcții și robustețe aplicației. Varianta în care se utilizează nume de utilizator și parolă este o funcție introdusă începând cu versiune 2.0 a aplicației și poate fi utilizată cu sau fără certificare de client (totuși serverul are nevoie de certificat de autentificare).

În capitolul următor al lucrării voi prezenta detaliat modul de lucru al aplicației VPN, modul în care se realizează criptarea canalului de comunicație și configurările necesare pentru configurarea unui VPN securizat.

3.4 Comparație a tehnicilor de criptare utilizate pentru realizarea rețelelor VPN

În Tabelul nr. 4 prezint o comparație a unor tehnici (protocoale) de criptare, descrise pe parcursul lucrării, care sunt utilizate pentru realizarea rețelelor VPN securizate. Comparația este făcută, în principal, prin prisma posibilităților de asigurare a securității informațiilor

Tabelul nr. 4 – Comparația tehnicilor utilizate pentru crearea rețelelor VPN

În concluzie, pot spune că, cu toate că OpenVPN nu este așa de ușor de configurat ca și celelalte aplicații analizate acesta rămâne cel mai sigur protocol și oferă și o bună viteză de transfer a datelor. Pe de altă parte PPTP este ușor de configurat dar nu este sigur. L2TP/IPsec oferă o bună compatibilitate, este sigur, dar recentele aspecte referitoare la vulnerabilitățile de securitate ale acestuia, prezentate de Agenția de Securitate a SUA (NSA), pot fi o problemă. Cu toate acestea este o opțiune convenabilă în cazul sistemelor de operare mobile, având în vedere că suportul oferit de OpenVPN pentru acestea nu este încă așa de bun.

CAPITOLUL IV

CONFIGURAREA UNUI VPN UTILILIZÂND OPENVPN

După ce am finalizat de studiat (și înțeles) aspectele teoretice referitoare la problematica VPN, la modul de implementare a problematicii referitoare la securitatea acestor tipuri de rețele și posibilitățile teoretice de realizare a rețelelor VPN am trecut la realizarea practică a unei astfel de conexiuni.

Ținând cont de cunoștințele mele medii, spre minime, referitoare la problematica referitoare la configurarea rețelelor de calculatoarea, am considerat ca fiind o bună idee configurarea unei rețele VPN utilizând aplicația OpenVPN.

Având în vedere caracterul open source al aplicației, multitudinea tutorialelor disponibile pe Internet referitoare la aceasta și faptul că în literatura de specialitate este creditată ca o aplicație ușor de instalat și utilizat, am trecut la activitățile practice de instalare și configurare.

Instalarea aplicației se face foarte ușor, fiind un fișier executabil care odată accesat execută activitățile, urmând căile implicite, fără să solicite opțiuni sau autorizări suplimentare din partea utilizatorului.

Având în vedere că aplicația lucrează în modul client-server am efectuat instalarea astfel:

pentru server am folosit un calculator PC care rulează Windows 7 și are o conexiune Internet (PPOE) de la furnizorul RCS-RDS (conexiune de 200 Mb/s);

pentru client am folosit un laptop pe care rulează Windows 8.1 (varianta pe 64 biti) și are o conexiune mobilă la Internet de la furnizorul Vodafone (posibilitate 3G, viteză maxim garantată până la atingerea pragului de trafic de 19 Gb).

Ambele sisteme dispun de aplicația antivirus Kaspersky.

Configurările necesare pentru funcționarea aplicației și generarea certificatelor de securitate și de autentificare le-am efectuat pe sistemul server.

Aplicația s-a instalat corect, atât pe sistemul server cât și pe client, fără mesaje de eroare. Configurarea aplicației este destul de facilă și constă în crearea și modificarea fișierelor de inițializare și în generarea certificatelor de autentificare și cheilor de securitate (pentru server și client). Configurarea fișierelor de inițializare se poate face în linie de comandă Command Prompt sau prin modificarea, cu o aplicație de editare, a fișierelor. Generarea cheilor de autentificare, a cheilor de securitate și a algoritmului de schimbare a certificatelor (Diffie-Hellman) se execută în linie de comandă Command Prompt.

Pentru funcționarea aplicației client este necesar transferul certificatului de autentificare și cheii clientului de pe sistemul server pe sistemul client. În acest scop am utilizat un memory-stick.

Modul de configurare a fișierelor pentru server și client sunt prezentate în Anexa nr. 1.

După ce am finalizat instalarea și configurarea aplicației, atât pe sistemul server cât și client, am pornit ambele aplicații și …. surpriză – conexiunea nu a fost realizată. În ciuda faptului că pe sistemul server acesta arăta că funcționează, deschizând o conexiune pe adresa 10.8.0.1 (exact așa cum trebuia să funcționeze), pe sistemul client, după parcurgerea pașilor de inițializare a aplicației aceasta returna mesajul “TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)”. În conformitate cu documentația aplicației această eroare apare în cazul în care clientul nu poate stabili o conexiune cu serverul.

După ce am verificat funcționarea Internetului pe ambele sisteme (acesta era funcțional) am suspectat o instalare defectuoasă a aplicației. Am reinstalat aplicația pe ambele sisteme dar aceasta tot nu a funcționat.

Aplicația fiind instalată în modul implicit (funcționare pe portul UDP 1194) am presupus că firewall-ul sistemului blochează funcționarea acesteia și l-am închis, fără nici un rezultat. Oricum, chiar daca aplicația firewall a sistemului Windows nu asigură o securitate prea mare, absența acesteia nu mi-a părut o opțiune prea bună. În urma verificărilor efectua am constatat că portul UDP 1194 era deschis indiferent dacă firewall-ul era pornit sau oprit.

În continuare am citit din nou documentația aplicației și diferitele forumuri disponibile pe Internet referitoare la această aplicație. Astfel am aflat că, pentru ca aplicația să funcționeze corect este necesar ca dispozitivele de rețea alocate fiecărui sistem trebuie să se afle în același LAN, care este de preferat să aibă alocate adrese dintr-o clasă privată.

Aflând acest lucru am instalat pe laptop două mașini virtuale și pe fiecare dintre acestea am instalat aplicația OpenVPN. Am făcut configurările necesare și am “forțat” plăcile de rețea alocate celor două mașini virtuale să lucreze pe adrese din clasa 192.168.x.x.

În aceste condiții aplicația a funcționat foarte bine, alocând adrese IP pentru echipamentele de rețea, după cum se poate vedea în imaginea alăturată.

De asemenea, tunelul realizat este confirmat de existența conexiunii între cele două echipamente, prezentată în imaginea următoare:

Tunelul realizat are la bază fișierele de configurare, certificatele de autentificare și cheile create în etapa de configurare a aplicației, aspect prezentat în următoarea imagine

Faptul că acest tunel este realizat peste Internet este confirmat de imaginea următoare, în care se poate observa că în momentul întreruperii conexiunii la Internet și tunelul VPN încetează să funcționeze.

În această configurație am reușit crearea tunelului VPN, maparea unui folder numit DISERTATIE pe sistemul server și accesarea acestuia de pe sistemul client.

Având în vedere aceste aspecte consider că un utilizator cu cunoștințe de bază referitoare la rețelele de calculatoare (categorie în care mă regăsesc) va avea întotdeauna dificultăți în implementarea acestui tip de legătură, mai ales în situația în care va dori să utilizeze acest tip de conexiune pe un dispozitiv mobil.

Instalarea și configurarea aplicației nu sunt dificil de realizat dar configurările ulterioare, necesare funcționării aplicației (firewall, antivirus, plăci de rețea) pot crea dificultăți utilizatorilor neexperimentați.

Un aspect pe care am uitat să-l menționez anterior este acela referitor la faptul că pe cele două mașini virtuale am instalat sistemul de operare Windows XP. Chiar dacă pagina producătorului aplicației precizează că aceasta funcționează, în actuala variantă, pe toate versiunile de Windows, începând cu XP și următoarele, totuși nu pot să nu mă întreb de ce pe sistemele XP funcționarea acesteia a fost destul de facilă.

Ținând cont de acest aspect apreciez că aplicația încă necesită dezvoltări pentru a rula optim pe ultimele sisteme de operare Windows. De asemenea, cred că un meniu mai dezvoltat al aplicației de instalare, care să ofere mai multe opțiuni, funcție de modul în care se dorește rularea aplicației (utilizând protocolul UDP sau TCP) poate fi o îmbunătățire substanțială acesteia, îndeosebi pentru persoanele pasionate de jocurile în rețea, care au nevoie de canale de comunicații directe.

Cu toate că eu nu am reușit să implementez, în totalitate, facilitățile oferite de această aplicație, apreciez că aceasta este un instrument puternic, bine realizat, destinat realizării conexiunilor VPN. Conexiunea realizată a fost stabilă și a răspuns bine cerințelor (limitate la transmiterea și accesarea unor fișiere). Lipsindu-mi cunoștințele necesare (de hacker) nu am avut posibilitatea să verific cât de puternice sunt măsurile de securitate implementate. Dar, ținând cont de faptul că acestea se bazează pe algoritmul AES 256 tind să cred că sunt destul de puternice.

Similar Posts