LUCRARE DE LICENŢĂ -...
Transcript of LUCRARE DE LICENŢĂ -...
1
UNIVERSITATEA POLITEHNICĂ BUCUREŞTIFACULTATEA DE ELECTRONICĂ, TELECOMUNICAŢII ŞI
TEHNOLOGIA INFORMAŢIEI
LUCRARE DE LICENŢĂ
Coordonator ştiinţific:S.l. dr. ing. ADRIAN FLORIN PĂUN
Absolvent:CONSTANTIN
MANEA
Bucureşti2013
2
UNIVERSITATEA POLITEHNICĂ BUCUREŞTIFACULTATEA DE ELECTRONICĂ, TELECOMUNICAŢII ŞI
TEHNOLOGIA INFORMAŢIEI
SECURITATEA IN RETELELETCP/IP
Coordonator ştiinţific:S.l. dr. ing. ADRIAN FLORIN PĂUN
Absolvent:CONSTANTIN
MANEA
Bucureşti2013
4
CUPRINS:
1. Introducere……………………………………………………………………....pag.001.1 Tipuri de atacuri informatice………………………………………...……....pag.001.2 Consideraţii generale privind securitatea în reţelele IP…………………...…pag.00
1.2.1 Servicii de securitate.………………………………...…………….pag.001.2.2 Mecanisme de securitate specifice……………………………...….pag.001.2.3 Tehnici de securitate………………………………………….…….pag.00
1.2.3.1 Securitate prin firewal…………………………………....pag.001.2.3.2 Criptografia…………………………………………...….pag.001.2.3.3 Rețea Virtuală Privată……………………...…………….pag.001.2.3.4 Securitatea la nivelul aplicație………………………..….pag.00
2. Algoritmi de criptare…………………………………………………………….pag.002.1 Introducere in criptografie………………………………………………..….pag.002.2 Algoritmi criptografici cu chei simerice……………………….…………….pag.00
2.2.1 DES…………………………………………………………..…….pag.002.2.2 Triplu DES…………………………………………...…………….pag.002.2.3 AES………………………………………………………..……….pag.002.2.4 IDEA……………………………………………………………….pag.00
2.3 Algoritmi criptografici cu chei asimetrice………………………….……….pag.002.3.1 Algoritmul RSA……………………………………………………pag.002.3.2 Algoritmul Diffie-Hellman …………………………….………….pag.002.3.3 Semnaturi digitale………………………………………………….pag.00
2.4 Concluzii…………………………………………………………………….pag.003. Securizarea comunicatiilor digitale prin intermediul VPN (Virtual Private
Network) …………………………………………………………………………….….pag.003.1 Tipuri de retele VPN……………………………………………………...….pag.00
3.1.1 Remote VPN……………………………………………………….pag.003.1.2 Intranet VPN……………………………………………………….pag.003.1.3 Extranet VPN…………………………………………………...….pag.00
3.2 Protocoale de tunelare………………………………………………….…….pag.003.2.1 Protocoale de nivel 2 OSI………………………………………….pag.003.2.2 Protocoale de nivel 3 OSI………………………………………….pag.00
3.3 Standardizarea retelelor VPN – protocoalele ISAKMP si IPsec…………….pag.003.3.1 Protocolul AH…………………………………………………..….pag.003.3.2 Protocolul ESP………………………………………………….….pag.003.3.3 Protocolul IKE si IKEv2…..……………………………………….pag.00
3.4 Principalele avantaje ale reţelelor virtuale private……………..…………….pag.003.5 “Best practices” in retelele private virtuale…………………………………..pag.00
4. Metode de control al accesului la servicii prin schimb de chei de acces….….pag.004.1 SSL și TLS………………………………………………………………..….pag.004.2 Arhitectura TLS ……………………………………………………….……..pag.00
4.2.1 Protocolul de Handshake TLS…………………………….………..pag.004.3 Arhitectura SSL……………………………………………………………....pag.00
4.3.1 Criptări folosite de SSL………………………………...……….….pag.004.3.1.1 Suite de cifruri cu chei RSA…………………………..….pag.00
4.3.2 Protocolul SSL de handshake ……………………………..….…..pag.00
5
4.3.2.1 Autentificarea serverului………………………….….…..pag.004.3.2.2 Autentificarea clientului………………………………….pag.00
4.4 Atacuri rezolvate în SSL v3………………………………………………….pag.004.5 Diferențe între SSL și TLS …………………………………………….…….pag.004.6 Protocolul de login la distanță Secure Shell (SSH) ………………………….pag.00
4.6.1 Arhitectura SSH………………………………………………...….pag.004.6.2 Protocolul SSH la nivel transport………………………….……….pag.004.6.3 Strategia SSH……………………………………………………....pag.00
5. Aplicatie: simularea unei retele VPN (remote VPN, Intranet VPN si ExtranetVPN) …………………………………………………………………………………….pag.00
Concluzii……………………………………………………………………….…….pag.00Bibliografie………………………………………………………………….……….pag.00
6
LISTA ACRONIME:
AAA= Authentication, Authorization and AccountingAES =Advanced Encryption StandardAH =Authentification HeaderASDL =Abstract-Type and Scheme-Definition LanguageATM =Asynchronous Transfer ModeDES =Data Encryption StandardDSA =Digital Signature AlgoritmDSS =Digital Signature StandardESP = Encapsulating Security Payload ProtocolESP =Encapsulated Security PayloadFTP =File Transfer ProtocolGNS3 =Graphical Network SimulatorGRE =Generic Route EncapsulationHMAC =Hash-Based Message Authentication CodeIDEA =International Data Encryption AlgorithmIETF =Internet Engineering Task ForceIKE =Internet Key ExchangeIP =Internet ProtocolIPsec =Internet Protocol SecurityIPX =Internetwork Packet ExchangeISAKMP =Internet Security Association and Key Management ProtocolISDN =Integrated Services Digital NetworkL2F =Layer 2 ForwardingL2TP =Layer 2 Tunneling ProtocolMD5 =Message Digest Algorithm 5NAS =Network-attached StorageNAT =Network Address TranslationNetBEUI =NetBIOS Enhanced User InterfacePGP =Pretty Good PrivacyPKCS = Public-Key Cryptography StandardsPPP =Point-to-Point ProtocolPPTP =Point-to-Point Tunneling ProtocolRSA = Rivest Shamir AdlemanS/MIME =Secure/Multipurpose Internet Mail ExtensionsSHA =Secure Hash AlgorithmSHA =Secure Hash AlgorithmSONET =Synchronous Optical NetworkingSSL =Secure Sockets LayerTCP/IP =Transmission Control Protocol/Internet ProtocolUDP =User Datagram ProtocolVLSI = Very Large Scale IntegrationVPN =Virtual Private NetworkWAN =Wide Area Network
7
1. INTRODUCERE
In primii ani ale existenţei lor, reţelele de calculatoare au fost folosite de catre
cercetătorii din universităţi pentru trimiterea poştei electronice (serviciul de e-mail) sau pentru
a permite conexiuni multiple la un server şi de către funcţionarii corporaţiilor pentru a partaja
imprimantele. În aceste condiţii, problema securităţii nu atrăgea prea mult atenţia. De aceea
majoritatea protocoalelor de atunci nu aveau posibilitatea de a cripta datele (ex. Telnet, RIP,
etc.).
Cu timpul, oamenii cu vazut potentialul extraordinar al retelelor de calculatoare si
multiplele beneficii pe care le pot aduce: oamenii pot impartasi cunostinte, pot trimite poze,
pot tine legatura cu persoanele dragi, putand chiar sa isi plateasca facturile sau sa plaseze
comenzi de produse on-line, doar stand in fata computerului personal. Insa aceste beneficii
aduc si o serie de consecinte negative. Potrivit buletinului de securitate Kaspersky numarul
atacurilor informatice bazate pe browser (browser-based attacks) – cum ar fi phising, Java
exploits, cross-site scripting, etc. a crescut in 2012 de la 946,393,693 la 1 595 587 670.
Atunci cand oamenii folosesc Internet-ul aproape non-stop pentru a plati facturi,
pentru a achizitiona diferite produse, pentru a posta poze personale sau pentru a trimite mesaje
celor dragi si, in plus, folosesc parole simple si usor de ghicit la conturile pe care le detin,
securitatea retelelor devine o mare problema potentiala.
Securitatea este un subiect vast si asigura o gama de imperfectiuni. In forma sa cea
mai simpla ea asigura ca un raufacator nu va poate citi sau chiar modifica mesajele. De
asemenea ea va poate garanta faptul ca atunci cand ati primit un mesaj de la persoana X, acel
mesaj este intr-adevar de la acea persoana si nu de la un rauvoitor. Securitatea informatica
este o arta. Trebuie asigurat un echilibru intre nevoia de comunicatii si conectivitate si, pe de
alta parte, necesitatea asigurarii confidentialitatii, integritatii si autenticitatii informatiilor.
Asa cum medicina incearca sa previna noi afectiuni in timp ce le trateaza pe cele
actuale, securitatea informatica incearca sa previna potentiale atacuri in timp ce minimizeaza
efectele atacurilor actuale.
8
1.1 Tipuri de atacuri informatice
Odata cu cresterea numarului de persoane care au avut acces la reteaua Internet a
crescut si numarul atacurilor. Primele atacuri au fost neintentionate, din pura curiozitate. De
exemplu viermele Morris (creat de un student al universitatii Cornell pe nume Robert Tappan
Morris in 1988) este considerat primul vierme distribuit pe Internet si totodata a atras prima
condamnare la inchisoare din istoria SUA. Viermele Morris a fost scris (potrivit creatorului
sau) pentru a masura Internetul, pentru a vedea cate calculatoare sunt conectate, si nu pentru a
cauza distrugeri. Insa Morris nu a prevazut fiecare aspect al codului iar acest lucru a permis
viermelui sau sa infesteze de mai multe ori un calculator ceea ce inseamna mai multe procese
deschise ceea ce cauzeaza incetinirea substantiala a calculatorului pana la imposibilitatea de
functionare. Dupa aceea au urmat Melissa Email Virus in 1999, in 2000 Mafiaboy DoS
Attack, Love Bug Worm si a fost creat programul L0phtCrack, in 2001 Code Red DOS
Attack a afectat 350.000 calculatoare si in 2004 o retea de botnets a lovit sistemele armatei
SUA.
Astazi, sistemele informatice sunt amenintate atat din interior cat si din exterior, acest
lucru fiind posibil deoarece, cu trecerea timpului, amenintarile devin din ce in ce mai
sofisticate iar nivelul cunostintelor tehnice necesare pentru a le implementa scade. Pot fi
persoane bine intentionate care fac diferite erori de operare sau persoane rau intentionate, care
sacrifica timp si bani pentru penetrarea sistemelor informatice.
Dintre factorii tehnici care permit brese de securitate pot fi anumite erori ale software-
ului de prelucrare sau de comunicare sau anumite defecte ale echipamentelor de calcul sau de
comunicatie. De asemenea, lipsa unei pregatiri adecvate a administratorului, operatorilor si
utilizatorilor de sisteme amplifica probabilitatea unor brese de securitate.
Un studiu din 2012 arata ca 70% dintre atacurile asupra unei retele sunt din interior.
Ceea ce inseamna ca in aproape trei sferturi din cazuri atacurile asupra unei retele sunt
accidentale ori s-au folosit de neglijenta angajatilor. Aceste tipuri de pericole pot fi inlaturate
prin implementarea politicilor de securitate, asigurarea ca angajatii au inteles cum trebuiesc
folosite resursele companiei si ca inteleg importanta parolelor de acces pe care le detin.
Restul de 30%, adica atacurile ce isi au originea in exterior, pot fi catalogate dupa cum
urmeaza:
- Virusi: constau in secvente de cod ce se ataseaza de programe sau fisiere
executabile, de obicei la inceputul codului si cand este activat (atunci cand fisierul este
executat sau la o anumita data si ora predefinita) verifica hard-disk-ul in cautarea altor
9
fisiere executable neinfestate inca. Pot avea efecte nedaunatoare, cum ar fi afisarea pe
ecran a unei poze, sau efecte daunatoare cum ar fi stergerea datelor de pe hard-disk.
De asemenea pot fi programati sa isi modifice codul pentru a nu fi detectati.
- Viermi: sunt programe de sine statatoare ce ataca un sistem prin exploatarea unei
vulnerabilitati cunoscute, apoi scaneaza reteaua in cautarea unor noi sisteme pe care le
ploate exploata si infesta iar in cele din urma executa codul daunator care de obicei
consta in instalarea de “backdoors” pe sistem (modalitati prin care persoana care a
creat sau folosit viermele poate avea acces la sistemul infestat ocolind sistemele de
securitate.
- Cai troieni: sunt programe de sine statatoare ce desi par a indeplini o anumita
functie legitima (un joc, un anumit program) executa in background secvente de cod
ce exploateaza privilegiile utilizatorului ce l-a rulat. Desi programul legitim este inchis
de utilizator, el ramane deschis si poate oferi creatorului sau acces pe calculatorul
infestat, poate fura si trimite date sensibile (parole, conturi, etc), sterge sau corupe
fisiere, opri programele antivirus/firewall sau incetini sau chiar opri activitatea retelei.
- Atac de recunoastere: descoperirea si cartografierea neautorizata a sistemelor,
serviciilor si vulnerabilitatilor unui sistem, ceea ce precede deseori alte tipuri de
atacuri.
- Atac de tip acces: exploateaza vulnerabilitati cunoscute ale serviciilor de
autentificare, FTP, servicii web, etc. pentru a capata acces la conturi web, baze de date
sau alte informatii sensibile. De obicei implica un atac de tip dictionar (dictionary
attack) sau de tip forta bruta (brute force) pentru a ghici parola de acces.
- Negarea serviciului: este poate cel mai des intalnit tip de atac si cel mai usor de
realizat (de obicei cu ajutorul unor scripturi sau programe) si consta in trimiterea unui
numar extrem de mare de cereri unui server/calculator pana cand acesta nu mai poate
raspunde cererilor legitime.
10
1.2 Consideraţii generale privind securitatea în reţelele IP
Domeniul care se ocupă de studiul mecanismelor de protecţie a informaţiei în scopul
asigurării unui nivel de încredere în aceasta se numeste securitatea informatiei. Putem afirma
că nivelul de încredere în informaţie depinde de nivelul mecanismelor de securitate care îi
garantează protecţia şi de riscurile care apar asupra securităţii ei. Securitatea informaţiei este
un concept mai larg care se referă la asigurarea integrităţii, confidenţialităţii şi disponibilităţii
informaţiei. [1]
1.2.1 Servicii de securitate
Din punctul de vedere al obiectivelor de securitate, se disting patru obiective majore
care sunt recunoscute de orice autor in domeniu. Fiecare din aceste servicii poate fi
implementat la diverse nivele arhitecturale ale modelului OSI. Pentru a asigura securitatea
unui nivel pot fi combinate unul sau mai multe servicii care la rândul lor pot fi compuse din
câteva mecanisme.
Primul obiectiv este confidenţialitatea informatiei, sau asigurarea faptului că
informaţia rămâne accesibilă doar părţilor autorizate în acest sens. Acesta este cel mai vechi
obiectiv al criptologiei. În rândul necunoscătorilor este încă larg răspândită opinia că noţiunea
de criptografie este sinonimă cu confidenţialitatea, sigur opinia este eronată pentru că
criptografia se ocupă şi de asigurarea multor alte obiective, ce vor fi enumerate în continuare,
şi care nu au nici o legătura cu păstrarea secretă a informaţiei.
Integritatea face referire la asigurarea faptului că informaţia nu a fost alterată pe
parcursul transmisiei sau de către un posibil adversar.
Autentificarea avand două coordonate distincte: autentificarea entităţilor şi
autentificarea informaţiei. Autentificarea entităţilor se referă la existenţa unei garanţii cu
privire la identitatea unei anume entităţi. Autentificarea informaţiei se referă la garantarea
sursei de provenienţă a informaţiei – în mod implicit aceasta garantează şi integritatea
informaţiei (este evident că asigurarea autenticităţii informaţiei implică şi asigurarea
integrităţii acesteia). Autentificarea este în general strâns legată de un factor temporal, este
evident că o informaţie stocată poate fi suspusă unui test de integritate pentru a se constata
dacă a fost sau nu alterată dar nu poate fi supusă unui test de autenticitate dacă nu există o
11
garanţie cu privire la momentul de timp la care entitatea de care este legată a depozitat-o
(deoarece în acest caz informaţia putea fi replicată şi depusă de orice altă entitate).
Ultimul obiectiv este non-repudierea previne o entitate în a nega o acţiune întreprinsă
(acţiune materializată desigur în transmisia unei informaţii). Aceasta înseamnă că dacă la un
moment dat o entitate neagă ca ar fi emis o anume informaţie, entitatea care a primit
informaţia respectivă poate demonstra unei părţi neutre că informaţia provine într-adevăr de la
entitatea în cauză. [2]
1.2.2 Mecanisme de securitate specifice
OSI introduce opt mecanisme de securitate de bază, folosite individual sau combinat
pentru a construi servicii de securitate. Un exemplu bun ar fi, serviciul de nerepudiere cu
probarea livrării poate fi realizat utilizând o combinatie potrivită a mecanismelor de
integritate a datelor, semnătura digitală si notariat digital. În plus, un mecanism se poate baza
pe un alt mecanism. De exemplu, mecanismul de autentificare a schimbului poate folosi
mecanismul de criptare si, uneori, mecanismul de notariat (care presupune existenta unei a
treia părți, căreia i se acordă încredere).
Mecanismul de criptare are ca scop transformarea datelor astfel încât ele să devină
inteligibile numai de către entitatea autorizată (care, în general, păstrează o cheie secretă
pentru a le descifra) sau de a transforma datele într-o manieră unică, ce poate aparține numai
expeditorului. Numai entitatea autorizată, care deține o cheie secretă, le poate decripta și citi.
Acest mecanism este folosit pentru a furniza confidențialitate, dar el poate fi utilizat și pentru
asigurarea altor câtorva servicii de securitate. ISO acceptă în criptare atât algoritmi simetrici
cât si algoritmi nesimetrici (cu chei publice).
Mecanismul de semnătură digitală trebuie să garanteze că datele au fost produse
chiar de către semnatar. Acest mecanism este deseori folosit de serviciile de integritate si
autentificare a originii datelor. Sunt definite două proceduri pentru acest mecanism:
• procedura de semnare a unei entităti de date;
• procedura pentru verificarea semnăturii.
Folosinduse criptografia asimetrică, semnătura poate fi generată prin calcularea unei funcții
de dispersie pentru datele ce trebuie semnate, iar apoi, criptând valoarea rezultată folosindu-se
componenta privată a cheii asimetrice a semnatarului. Această valoare depinde de momentul
12
emiterii semnăturii, pentru a preveni falsificarea prin retransmitere a datelor respective,
precum și de conținutul mesajului. Semnătura trebuie produsă numai pe baza informațiilor
personale ale semnatarului (cheia sa privată a algoritmului de cifrare, de exemplu), în timp ce
procedura de verificare este făcută publică.
Mecanismul de control al accesului controlează accesul entităților la resurse,
presupunând cunoscută identitatea entității ce solicită accesul. Acțiunile se produc atunci când
este încercat un acces neautorizat, fie prin generarea unei alarme, fie prin simpla înregistrare a
incidentului. Politica de control al accesului poate fi bazată pe unul sau mai multe din
următoarele soluții:
• lista drepturilor de acces (entitate, resursă);
• parole;
• capabilități;
• etichete de securitate;
• durata accesului;
• timpul de încercare a accesului;
• ruta (calea de încercare a accesului).
Mecanismul de integritate a datelor are rolul de a asigura integritatea unităților de
date (în întregime sau partial – numai un câmp), împiedicând modificarea, ștergerea sau
amestecarea datelor pe durata transmisiei. Acest mecanism presupune două proceduri:
• una pentru emisie. Expeditorul adaugă la unitatea de date o informație adițională care
depinde numai de datele transmise (“checkvalue” - o sumă de control criptată sau nu).
• una pentru receptie: partea receptoare generează aceeasi sumă de control care se compară cu
cea primită.
Mecanismul de stampile de timp (time stamping) poate fi folosit pentru transmisiile
neorientate pe conexiune în scopul asigurării actualității datelor.
Mecanismul de autentificare mutuală este folosit pentru a dovedi, reciproc,
identitatea entităților. Se pot folosi pentru acestea parole sau tehnici criptografice (parole
cifrate, cartele magnetice sau inteligente, caracteristici biometrice, biochimice). Când sunt
folosite tehnicile criptografice, acestea sunt deseori combinate cu protocoale cu interblocare,
"hand-shaking", pentru protectia împotriva înlocuirii (reluării) datelor. Principiul este
următorul: entitatea A trimite identitatea sa (cifrată sau nu) entitătii B, care generează o
valoare aleatoare si o trimite (cifrat sau nu) lui A. A trebuie să cifreze valoarea aleatoare cu
cheia sa privată si să o trimită lui B, care va verifica corectitudinea acesteia.
13
Mecanismul de "umplere" a traficului este folosit pentru a asigura diferite nivele de
protecție împotriva analizei de trafic si implică una din următoarele metode:
• generarea unui trafic fals (rareori întrebuintată datorită costurilor pe care le implică);
• umplerea pachetelor de date transmise cu date redundante;
• transmiterea de pachete și spre alte destinații în afara celei dorite;
Mecanismul de control al rutării se bazează pe faptul că într-o rețea, anumite rute
pot fi considerate mai sigure față de altele; de aceea, acest mecanism permite a se alege, fie
într-un mod dinamic, fie într-un mod prestabilit, cele mai convenabile rute, în concordanță cu
criteriile de securitate (importanta datelor si confidentialitatea legăturii). Acest mecanism
trebuie folosit si ca suport pentru serviciile de integritate cu recuperarea datelor (de exemplu,
pentru a permite selecția unor rute alternative în vederea protejării în cazul unor atacuri ce ar
perturba comunicația).
Mecanismul de notarizare. Acest mecanism presupune stabilirea unei a treia părți
(notar) în care au încredere toate entitățile, care au rolul de a asigura garanții în privința
integrității, originii sau destinatiei datelor. Atunci când se foloseste acest mecanism, datele
sunt transferate între entități prin intermediul notarului. [3]
1.2.3 Tehnici de securitate
Dupa momentul in care tehnicile de securitate au fost implementate intr-o retea,
informațiile nu vor mai putea fi accesate sau interceptate de persoane neautorizate și se va
impiedica falsificarea informațiilor transmise sau utilizarea clandestină a anumitor servicii
destinate unor categorii aparte de utilizatori ai rețelelor.
Tehnici specifice utilizate pentru implementarea securitatii unei retele:
• protecția fizică a dispozitivelor de rețea și a liniilor de transmisie la nivelul fizic;
• proceduri de blocare a accesului la nivelul rețele;
• transport securizat al datelor in spatiul public prin tunele de securizare sau VPN-uri;
• aplicarea unor tehnici de criptare a datelor.
Lipsa unei politici de securitate riguroasă poate duce ca diversele mecanisme de
securitate sa poata fi aproape ineficiente intrucât nu ar corespunde strategiei si obiectivelor
pentru care a fost proiectată rețeaua. O politică corectă de securitate, include urmatoarele
nivele de securitate:
14
i) Primul nivel de securitate îl constituie un firewall pentru asigurarea unei
conexiuni sigure la Internet.
ii) Se poate folosi, de asemenea, transmisia datelor criptate printr-un tunnel de
securitate pe Internet prin crearea de rețele private virtuale. Criptarea datelor
conferă un al doilea nivel de securitate. Mai mult, se pot folosi asa numitele certificate
digitale pentru a se asigura comunicarea sigura cu partenerul dorit.
iii) Al treilea nivel de securitate este securitatea la nivelul aplicatie.
Desigur că uneori nu este nevoie de toate aceste măsuri de securitate; în funcție de
importanța datelor vehiculate se poate opta fie pentru un nivel sau altul de securitate, fie
pentru toate trei la un loc. [4]
1.2.3.1 Securitate prin firewal
Firewall-ul este un sistem care impune o politică de control a accesului între două
reţele. Acesta reprezintă implementarea politicii de securitate în termeni de configurare a
reţelei. Un firewall este un sistem plasat la graniţa dintre două reţele şi posedă următoarele
proprietăţi [5] :
• tot traficul dintre cele două reţele trebuie să treacă prin acesta;
• este permisă trecerea numai a traficului autorizat prin politica locală de securitate;
• sistemul însuşi este imun la încercările de penetrare a securităţii acestuia.
Cel care controlează accesul între Internet şi o reţea privată este firewall-ul; fără el,
fiecare staţie din reţeaua privată este expusă atacurilor de penetrare iniţiate din afara reţelei.
Folosirea unui firewall pentru asigurarea securităţii reţelelor furnizează numeroase avantaje,
ajutând şi la creşterea nivelului de securitate al calculatoarelor componente dintre care vor fi
enumerate doar cele mai importante: Concentrarea securităţii. Pentru a asigura securitatea
unei reţele, un firewall poate fi o soluţie mai puţin costisitoare din punctul de vedere al
administrării în sensul că programele care trebuie modificate şi software-ul adiţional care
trebuie instalat pot fi localizate (în totalitate sau în cea mai mare parte) în sistemul firewall,
spre deosebire de situaţia în care acestea ar fi fost distribuit pe toate calculatoarele din reţea.
Firewall-urile tind să fie mai uşor de implementat şi administrat, software-ul specializat
executându-se numai pe acestea.
15
Instituirea unei politici de acces în reţea. Un firewall furnizează mijloacele de
control al accesului într-o reţea privată. Unele calculatoare gazdă pot fi fi accesibile din
exterior, în timp ce altele pot fi protejate efectiv faţă de accesul nedorit
Protecţia serviciilor vulnerabile. Dacă întregul trafic spre/dinspre Internet trece
printr-un firewall, atunci există posibilitatea monitorizării acestuia şi furnizării de statistici cu
privire la folosirea reţelei. Colectarea de date privitoare la încercările de atac asupra reţelei
permite verificarea rezistenţei firewall-ului la asemenea încercări, iar realizarea de statistici
este folositoare pentru analizarea riscurilor şi pentru studiile de dezvoltare a reţelei. În afara
avantajelor folosirii unui firewall există, de asemenea, o serie de dezavantaje şi un număr de
probleme de securitate, care nu pot fi rezolvate prin intermediul acestuia. Printre
dezavantajele utilizării unui firewall se pot enumera: Restricţionarea accesului la unele
servicii. Un firewall impune, de cele mai multe ori, restricţionarea sau blocarea accesului la
unele servicii considerate vulnerabile, servicii care sunt însă solicitate intens de utilizatori (de
exemplu TELNET, FTP etc.)
Protecţia scăzută faţă de atacurile provenite din interior. În general, un firewall
nu asigură o protecţie faţă de ameninţările interne. Un firewall nu poate opri o persoană din
interiorul reţelei de a copia informaţii şi de a le furniza apoi celor interesaţi. Un firewall nu
poate asigura protectie împotriva unor uşi secrete existente într-o reţea, cum ar fi, de exemplu,
permiterea nerestricţionată a accesului prin modem la unele dintre calculatoarele interne. Este
total nerecomandată investirea de resurse importante într-un firewall, dacă celelalte modalităţi
posibile pentru furtul datelor sau pentru atac împotriva sistemului sunt neglijate.
Protecţia scăzută faţă de viruşi. Firewall-urile nu pot asigura protecţie împotriva
utilizatorilor care aduc local, din arhivele Internet, programe infectate de viruşi. Din cauză că
aceste programe pot fi codificate sau comprimate în mai multe moduri, un firewall nu le poate
scana în scopul identificării semnăturilor virale. Această problemă a programelor infectate
rămâne şi va trebui rezolvată prin alte metode, din care cea mai recomandată ar fi instalarea
unui software antivirus pe fiecare staţie din reţea.
Viteza de comunicaţie cu exteriorul. Un firewall reprezintă o potenţială limitare
pentru traficul dintre reţeaua internă şi exterior. Totuşi, această limitare nu constituie o
problemă în reţelele legate cu exteriorul prin linii de mare viteză.
Fiabilitatea protecţiei firewall. O reţea protejată prin firewall îşi concentrează
securitatea într-un singur loc, spre deosebire de varianta distribuirii securităţii între mai multe
sisteme. O compromitere a firewall-ului poate fi dezastruoasă pentru celelalte sisteme (mai
puţin protejate) din reţea. Un contra-argument la acest dezavantaj constă în faptul că
16
incidentele de securitate apar, mai degrabă, pe măsură ce numărul de sisteme din reţea creşte,
iar distribuirea securităţii între acestea face să crească modalităţile în care reţeaua poate fi
atacată. În ciuda tuturor acestor probleme şi dezavantaje, se recomandă ca protejarea
resurselor unei reţele să se facă atât prin intermediul firewall-urilor, cât şi al altor mijloace şi
tehnici de securitate. [6]
1.2.3.2 Criptografia
“Criptografia înseamnă comunicare în prezenţa adversarilor”. Ronald Rivest
Multe servicii şi mecanisme de securitate folosite în Internet au la baza criptografia,
securizarea informaţiei precum şi autentificarea şi restricţionarea accesului într-un sistem
informatic folosind metode matematice pentru transformarea datelor în intenţia de a ascunde
conţinutul lor sau de a le proteja împotriva modificării.
Criptografia, folosită intr-un protocol de securitate, vrea să asigure dezideratele
mentionate mai sus, fundamentale pentru securitatea informatiei: confidențialitate, integritatea
datelor, autenticitatea si ne-repudierea. Criptarea este o metodă de protejare a informaţiilor
sensibile stocate în sistemele de calcul, dar şi a celor care sunt transmise pe liniile de
comunicaţie. Informațiile care sunt criptate ramân sigure chiar dacă sunt transmise printr-o
rețea care nu oferă o securitate puternică. Cea mai populară metodă de protecţie, atât pentru
comunicații, cât şi pentru datele cu caracter secret a devenit criptarea. Reţeaua Internet, spre
exemplu, oferă servicii de criptare utilizatorilor săi. Cu cat se avanseaza si se constientizeaza
beneficiile aduse de utilizarea criptării, a dezavantajelor lipsei de protecţie a informatiilor şi a
faptului că tehnologia de criptare a devenit mai accesibilă, criptarea devine o metoda atractivă
de protejare a datelor, indiferent că este vorba de date secrete transmise prin reţea sau date
obişnuite stocate în sistemul de calcul. Este impresionant numarul mare de folosire a noţiunii
de criptare-decriptare când este vorba de securitatea datelor. [6] Tehnologia de criptare
asigurã cã mesajele nu sunt interceptate sau citite de altcineva decât destinatarul autorizat.
Criptarea este folositã pentru a proteja date care sunt transportate printr-o retea publicã, si
foloseste algoritmi matematici avansati pentru a cifra mesajele si documentele atasate. Existã
mai multe tipuri de algoritmi de criptare, dar unii sunt mai siguri decât altii. În cei mai multi
algoritmi, datele originale sunt criptate folosind o anumitã cheie de criptare, iar computerul
17
destinatar sau utilizatorul pot descifra mesajul folosind o cheie de decriptare specificã.[1]
Riscurile de securitate, ca orice alte riscuri de altfel, trebuie acoperite cu garanţii de securitate.
Atunci când obiectul manipulat este informaţia singura garanţie poate fi oferită de către
criptografie, deci rolul acesteia este de a oferi garanţii în faţa riscurilor de securitate.
1.2.3.3 Rețea Virtuală Privată
O tehnologie de comunicaţii computerizata sigură, dar bazată pe o reţea publică poarta
numele de reţea privată virtuală, din cauza acestui fapt nu este foarte sigură. Tehnologia VPN
este concepută tocmai pentru a crea într-o reţea publică o subreţea de confidenţialitate aproape
la fel de înaltă ca într-o reţea privată adevărată la care sunt legaţi numai utilizatori autorizaţi.
În mod intenţionat această subreţea, denumită totuşi "reţea VPN", nu poate comunica cu
celelalte sisteme sau utilizatori ai reţelei publice de bază. Utilizatorii unei reţele VPN pot
căpăta astfel impresia că sunt conectaţi la o reţea privată dedicată, independentă, cu toate
avantajele pentru securitate, reţea care în realitate este doar virtuală, ea de fapt fiind o subreţea
înglobată fizic în reţeaua de bază. [7] Tehnologia VPN foloseşte o combinaţie de tunneling,
criptare, autentificare şi mecanisme şi servicii de control al accesului, folosite pentru a
transporta traficul pe Internet. Retelele private virtuale au fost create din dorinta de a avea o
mai bună securitate asupra informatiilor transmise de către utilizatori prin retea. Tehnologiile
VPN oferă o cale de a folosi infrastructurile reţelelor publice cum ar fi Internetul pentru a
asigura acces securizat şi privat la aplicaţii şi resurse ale companiei.
1.2.3.4 Securitatea la nivelul aplicație
Se asigură implementarea tuturor serviciilor de securitate datorita nivlului aplicatiei,
chiar mai mult, unele, de exemplu, nerepudierea mesajelor poate fi realizată numai la acest
nivel. Un avantajul major al asigurării securităţii la acest nivel este independenţa de sistemele
de operare şi de protocoalele utilizate pe nivelele inferioare. Dar obligatoriu, trebuie
menţionat faptul că la acest nivel securitatea este dependentă de aplicaţie, adica trebuie
implementată individual pentru fiecare aplicaţie.
18
2. ALGORITMI DE CRIPTARE
Criptologia este considerată ca fiind cu adevărat o știință de foarte puțin timp. Aceasta
cuprinde atât criptografia - scrierea secretizată - cât și criptanaliza. De asemenea, criptologia
reprezintă nu numai o artă veche, ci și o știința nouă: veche pentru că este utilizata de pe
timpul lui Iulius Cezar, dar nouă pentru că a devenit o temă de cercetare academico-științifică
abia începând cu anii 1970. Această disciplină este legată de multe altele, de exemplu de
teoria numerelor, algebră, teoria complexității, informatică.
Criptografia este definită ca fiind studiul tehnicilor matematice referitoare la aspecte de
securitatea informaţiei precum confidenţialitate, integritate, autentificarea entităţilor,
autentificarea provenienţei datelor. [9]
2.1 Introducere in criptografie
Atunci când trimit o scrisoare prin poştă, majoritatea oamenilor obişnuiesc să sigileze
plicul. Dacă i-am întreba de ce fac asta, probabil că mare parte dintre ei ar spune fie că
acţionează din reflex sau că fac la fel ca toată lumea, fie că lipirea plicului împiedică
scrisoarea să se rătăcească. Chiar dacă plicurile nu conţin informaţii personale sau strict
secrete, mulţi speră ca scrierile lor să nu fie citite decât de destinatar, motiv pentru care ei aleg
să sigileze plicurile. Cu toate acestea, dacă cineva îşi doreşte cu adevărat să citească
conţinutul unei scrisori care nu îi aparţine, ar putea să o facă foarte uşor, rupând plicul. La fel
se întâmplă şi în cazul email-urilor, care ar putea fi citite cu uşurinţă de unii programatori
iscusiţi.
Pentru a evita astfel de neplăceri, am putea opta pentru criptografie, metoda de codare
care ne asigură că scrisoare va rămâne inteligibilă pentru intruşi, măcar o perioadă de timp,
până când aceştia reuşesc să găsească cheia.
Criptografia reprezintă o ramură a matematicii care se ocupă cu securizarea
informației precum și cu autentificarea și restricționarea accesului într-un sistem informatic.
În realizarea acestora se utilizează atât metode matematice (profitând, de exemplu, de
dificultatea factorizării numerelor foarte mari), cât și metode de criptare cuantică. Termenul
criptografie este compus din cuvintele de origine greacă „ascuns” și „a scrie”.
Prin sistem criptografic, sau simplu criptosistem, înţelegem un ansamblu format din
trei algoritmi, lucru sugerat in figura 2.1:
• un algoritm de generare a cheilor (cheie de criptare şi cheie de decriptare)
19
• un algoritm de criptare – procesul prin care mesajul este transformat in mesaj cifrat,
utilizand un algoritm de criptare si o cheie de criptare specifică
• un algoritm de decriptare – proces invers criptării, prin care mesajul cifrat este tranformat in
mesajul initial, original, utilizând o funție de decriptare si o cheie de decriptare.
Figura 2.1. Sistem Criptografic
Elementele care au marcat cotitura semnificativă în dezvoltarea metodelor
criptografice :
• primul este legat de dezvoltarea reţelelor de calculatoare, al căror stimulent
extraordinar s-a manifestat atât prin presiunea exercitată de tot mai mulţi utilizatori cât şi prin
potenţarea gamei de instrumente folosite efectiv în execuţia algoritmilor de cifrare. Utilizarea
calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se
astfel rezistenţa la atacuri criptoanalitice. Când cheia secretă are o dimensiune convenabilă şi
este suficient de frecvent schimbată, devine practic imposibilă spargerea cifrului, chiar dacă
se cunoaşte algoritmul de cifrare.
• al doilea moment important în evoluţia criptografiei moderne l-a constituit adoptarea
unui principiu diferit de acela al cifrării simetrice. Whitfield Diffie şi Martin Hellman au pus
bazele criptografiei asimetrice cu chei publice. În locul unei singure chei secrete, criptografia
asimetrică foloseste două chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este
imposibilă deducerea unei chei din cealaltă, una din chei este făcută publică fiind pusă la
îndemâna oricui doreşte să transmită un mesaj cifrat. Doar destinatarul, care deţine cea de-a
20
doua cheie, poate descifra şi utiliza mesajul. Tehnica cheilor publice poate fi folosită şi pentru
autentificarea mesajelor, fapt care i-a sporit popularitatea.
Criptografia stă la baza multor servicii şi mecanisme de securitate folosite în Internet,
securizarea informaţiei precum şi autentificarea şi restricţionarea accesului într-un sistem
informatic folosind metode matematice pentru transformarea datelor în intenţia de a ascunde
conţinutul lor sau de a le proteja împotriva modificării.
2.2 Algoritmi criptografici cu chei simerice
Criptografia cu chei simetrice se referă la metode de criptare în care atât trimițătorul
cât și receptorul folosesc aceeași cheie (sau, mai rar, în care cheile sunt diferite, dar într-o
relație ce la face ușor calculabile una din cealaltă). Acest tip de criptare a fost singurul
cunoscut publicului larg până în 1976.
Pentru asigurarea confidențialității datelor memorate in calculatoare sau transmise prin
retele se folosesc preponderent algoritmi criptografici cu cheie secretă (simetrici). Ei se
caracterizează prin aceea că atât pentru criptare cât și pentru decriptare este utilizată aceeași
cheie secretă. Cheia de criptare este necesar de păstrat in secret față de utilizatorii
neautorizati, pentru ca cel ce are acces la acesta cheie poate avea acces si la informația
secretă. Algoritmii criptografici simetrici se caracterizează printr-o viteza de cifrare foarte
mare, in comparație cu algoritmii criptografici asimetrici și sunt comozi la cifrarea blocurilor
mari de informație. Securitatea acestui tip de algoritm depinde in mare masură de lungimea
cheii si posibilitatea de a o păstra secreta.
Algoritmii criptografici cu chei simetrice se utilizează în special în cazul transferului
unei cantităţi mari de date. În cadrul acestui tip de algoritmi se pot folosi cifruri secvenţiale
sau cifruri bloc [10]. Mesajul este criptat la nivel de octect de catre cifrurile secvenţiale, pe
rând, unul câte unul. Se utilizează un generator de numere pseudoaleatoare care este iniţializat
cu o cheie şi generează ca rezultat o secvenţă de biţi denumită cheie secvenţială. Cifrarea se
poate face si cu sincronizare (în cazul în care cheia secvenţială depinde de textul în clar),
respectiv fără sincronizare. Cele mai utilizate sunt cifrurile fără sincronizare. Pentru fiecare
octet al textului în clar şi cheia secvenţială se aplică operaţia XOR (sau exclusiv). Fiind un
algoritm simetric, la decriptare se utilizează operaţia XOR între biţii textului cifrat şi cheia
secvenţială, astfel obţinându-se textul în clar. Cifrurile bloc criptează mesajul în blocuri de 64
21
sau 128 de biţi. Se aplică o funcţie matematică între un bloc de biţi ai mesajului în clar şi
cheie (care poate varia ca mărime), rezultând acelaşi număr de biţi pentru mesajul criptat.
Funcţia de criptare este realizată astfel încât să îndeplinească următoarele cerinţe:
• ştiind un bloc de biţi ai textului în clar şi cheia de criptare, sistemul să poată genera
rapid un bloc al textului criptat;
• ştiind un bloc de biţi ai textului criptat şi cheia de criptare/decriptare, sistemul să
poată genera rapid un bloc al textului în clar;
• ştiind blocurile textului în clar şi ale textului criptat, sistemului să-i fie dificil să
genereze cheia.
Avantajul consta in faptul ca utilizarea cifrurilor în bloc este mai sigură decât
utilizarea cifrurilor secvenţiale, deoarece fiecare bloc este procesat în parte.
Dezavantajeste faptul ca algoritmii care folosesc cifruri bloc sunt mai lenţi decât
algoritmii care folosesc cifruri secvenţiale.
2.2.1 Algoritmul DES
Standardul de Criptare a Datelor (în engleză Data Encryption Standard, DES) este un
cifru (o metodă de criptare a informației), selectat ca standard federal de procesare a
informațiilor în Statele Unite în 1976, și care s-a bucurat ulterior de o largă utilizare pe plan
internațional. Algoritmul a fost controversat inițial, având elemente secrete, lungimea cheii
scurtă și fiind bănuit că ascunde de fapt o portiță pentru NSA.
DES a fost analizat intens de către profesionaliști în domeniu și a motivat înțelegerea
cifrurilor bloc și criptanaliza lor.
DES este astăzi considerat nesigur pentru multe aplicații. Acest lucru se datorează în
principiu cheii de 64 de biți (dintre care doar 56 de biti sunt folositi propriu-zis de algoritm,
restul de 8 fiind folositi ca biti de paritate), considerată prea scurtă; cheile DES au fost sparte
în mai puțin de 24 de ore.
De asemenea, există unele rezultate analitice care demonstrează slăbiciunile teoretice
ale cifrului, deși nu este fezabilă aplicarea lor. Se crede că algoritmul este practic sigur în
forma Triplu DES, deși există atacuri teoretice și asupra acestuia.
DES este alcătuit din 16 pasi identici de procesare, numiti runde, care produc textul
cifrat. În urma studiilor s-a concluzionat că numărul de runde este exponential proportional cu
22
timpul necesar aflării cheii secret folosind atacul de tip forță brută. Pe măsură ce creşte
numărul de runde, securitatea algoritmului creste exponential.
Paşii de procesare sunt prezentati in figura 2.2:
1. Textul în clar este împărţit în blocuri de 64 biţi.
2. Din cheia de 56 biţi se generează 16 chei de 48 biţi. Cheia de 56 biţi folosită pentru
criptare este în realitate folosită doar la generarea primei sub-chei şi nu este folosită în mod
direct pentru criptarea datelor.
3. Textul în clar, o dată împărţit în blocuri, este supus unui proces de permutare bazat
pe un table care specifică modul în care biţii sunt permutaţi: bitul unul este mutat pe poziţia
bitului 40, bitul 2 pe poziţia 23 etc.
4. După realizarea permutării, biţii sunt trecuţi prin cele 16 runde, folosind câte una
din cele 16 sub-chei generate.
5. Cei 64 biţi creaţi la pasul 3 sunt pasaţi unei runde, unde sunt împărţiţi în 2 blocuri
de câte 32 biţi şi procesaţi cu cheia corespunzătoare rundei respective.
6. Pasul 4 este repetat de 16 ori. Rezultatul unei runde este livrat următoarei runde.
7. După terminarea celei de-a 16-a runde, cele 2 jumătăţi de câte 32 biţi sunt lipite,
rezultând un bloc de 64 biţi.
8. Blocul de 64 biţi este din nou permutat, folosind funcţia inversă celei de la pasul 3.
Faptul ca nu se ridică probleme deosebite într-o implementare software, este datorită
ca lungimii cheii de lucru şi a operaţiilor elementare pe care le foloseşte algoritmul; singura
observaţie este că, datorită modulului de lucru (cu secvenţe de date, cu tabele) practic
algoritmul este lent într-o implementare software. Modul de concepere îl face însă perfect
implementabil hard (într-un cip) ceea ce s-a şi realizat, existând multiple variante de maşini
hard de codificare.
24
2.2.2 Triplu DES
3DES, numit și Triple DES, este un cifru bloc care aplică de 3 ori DES, asa cum se
poate observa in figura 2.3. In momentul cand s-a observat că aceste chei de 56 biți folosite de
DES nu sunt suficiente pentru a proteja datele împotriva atacurilor de tip forță brută, 3DES a
fost soluția pentru mărirea spațiului cheilor fără a schimba algoritmul.
Figura 2.3. Algorimul Triplu DES
Triple DES, cu 3 chei diferite de 56 biți are o lungime a cheii de 168 biți. Datorită
atacurilor “meet-in-the-middle” (un atac generic, aplicabil mai multor sisteme criptografice),
securitatea efectivă este doar de 112 biți.
2.2.3 Algoritmul AES
AES (de la Advanced Encryption Standard - în limba engleză, Standard Avansat de
Criptare), cunoscut și sub numele de Rijndael, este un algoritm standardizat pentru criptarea
simetrică, pe blocuri, folosit astăzi pe scară largă în aplicații și adoptat ca standard de
organizația guvernamentală americană NIST (National Institute of Standards and Technology
– Institutul National pentru Standarde si Tehnologie). Standardul oficializează algoritmul
dezvoltat de doi criptografi belgieni, Joan Daemen și Vincent Rijmen și trimis la NIST pentru
selecție sub numele Rijndael.
25
În propunerea avansată NIST, cei doi autori ai algoritmului Rijndael au definit un
algoritm de criptare pe blocuri în care lungimea blocului și a cheii puteau fi independente, de
128 de biți, 192 de biți, sau 256 de biți. Specificația AES standardizează toate cele trei
dimensiuni posibile pentru lungimea cheii, dar restricționează lungimea blocului la 128 de
biți. Astfel, intrarea și ieșirea algoritmilor de criptare și decriptare este un bloc de 128 de biți.
În publicația FIPS numărul 197, operațiile AES sunt definite sub formă de operații pe matrice,
unde atât cheia, cât și blocul sunt scrise sub formă de matrice. La începutul rulării cifrului,
blocul este copiat într-un tablou denumit stare (în engleză state), primii patru octeți pe prima
coloană, apoi următorii patru pe a doua coloană, și tot așa până la completarea tabloului.
Algoritmul modifică la fiecare pas acest tablou de numere denumit stare, și îl
furnizează apoi ca ieșire.
Pasii sunt urmatorii:
1) Pasul SubBytes
Figura 2.4 Pasul SubBytes
Pasul SubBytes este un cifru cu substituție, figura 2.4., fără punct fix, denumit
Rijndael S-box, care rulează independent pe fiecare octet din state. Această transformare este
neliniară și face astfel întreg cifrul să fie neliniar, ceea ce îi conferă un nivel sporit de
securitate.
Fiecare octet este calculat astfel:
unde bi este bitul corespunzător poziției i din cadrul octetului, iar ci este bitul corespunzător
poziției i din octetul ce reprezintă valoarea hexazecimală 63, sau, pe biți, 01100011.
Maparea octeților se poate reține într-un tabel, explicitat în FIPS PUB 197, în care este
specificat rezultatul operației de mai sus efectuată pe fiecare din cele 256 de valori posibile
reprezentabile pe un octet.
26
2) Pasul ShiftRows
Figura 2.5 Pasul ShiftRows
Pasul ShiftRows, figura 2.5., operează la nivel de rând al matricii de stare state. Pasul
constă în simpla deplasare ciclică a octeților de pe rânduri, astfel: primul rând nu se
deplasează; al doilea rând se deplasează la stânga cu o poziție; al treilea rând se deplasează la
stânga cu două poziții; al patrulea se deplasează la stânga cu trei poziții. Rezultatul acestui pas
este că fiecare coloană din tabloul state rezultat este compusă din octeți de pe fiecare coloană
a stării inițiale. Acesta este un aspect important, din cauză că tabloul state este populat inițial
pe coloane, iar pașii ulteriori, inclusiv AddRoundKey în care este folosită cheia de criptare,
operațiile se efectuează pe coloane.
3) Pasul MixColumns
Figura 2.6 Pasul MixColumns
În acest pas, figura 2.6., fiecare coloană a tabloului de stare este considerată un
polinom de gradul 4 peste corpul Galois . Fiecare coloană, tratată ca polinom, este
27
înmulțită, modulo cu polinomul . Operația se poate
scrie ca înmulțire de matrice astfel:
unde sunt elementele de pe un vector coloană rezultate în urma înmulțirii, iar sunt
elementele de pe același vector înaintea aplicării pasului.
Rezultatul are proprietatea că fiecare element al său depinde de toate elementele de pe
coloana stării dinaintea efectuării pasului. Combinat cu pasul ShiftRows, acest pas asigură că
după câteva iterații, fiecare octet din stare depinde de fiecare octet din starea inițială (tabloul
populat cu octeții mesajului în clar). Acești doi pași, împreună, sunt principala sursă de
difuzie în algoritmul Rijndael. Coeficienții polinomului a(x) sunt toți 1, 2 și 3, din motive de
performanță, criptarea fiind mai eficientă atunci când coeficienții sunt mici. La decriptare,
coeficienții pasului corespunzător acestuia sunt mai mari și deci decriptarea este mai lentă
decât criptarea. S-a luat această decizie pentru că unele din aplicațiile în care urma să fie
folosit algoritmul implică numai criptări, și nu și decriptări, deci criptarea este folosită mai
des.
4) Pasul AddRoundKey și planificarea cheilor
Figura 2.7 Pasul AddRoundKey
28
În pasul AddRoundKey, figura 2.7., se efectuează o operaţie de sau exclusiv pe biţi
între octeţii stării şi cei ai cheii de rundă.
Pasul AddRoundKey este pasul în care este implicată cheia. El constă într-o simplă
operație de „sau” exclusiv pe biți între stare și cheia de rundă (o cheie care este unică pentru
fiecare iterație, cheie calculată pe baza cheii secrete). Operația de combinare cu cheia secretă
este una extrem de simplă și rapidă, dar algoritmul rămâne complex, din cauza complexității
calculului cheilor de rundă (Key Schedule), precum și a celorlalți pași ai algoritmului.
2.2.4 IDEA
International Data Encryption Algorithm (Algoritmul IDEA) este un cod bloc simetric
dezvoltat de Xuejia Lai şi James Massey de la Institutul Federal al Tehnologiei din Elveţia în
anul 1990. El este patentat în Europa şi în Statele Unite, dar poate fi utilizat gratuit în aplicaţii
necomerciale. IDEA este unul dintre algoritmii care a fost propus pentru a înlocui DES.
Acesta este unul dintre cei mai reuşiţi algoritmi din cei propuşi (până în prezent nu a fost
raportat nici un atac pentru decriptare reuşit). De exemplu IDEA este inclus în PGP (Pretty
Good Privacy) care a contribuit la răspândirea acestuia. IDEA este un cod bloc care foloseşte
o cheie de 128 biţi pentru a cripta blocuri de date de 64 de biţi. Detaliile de proiectare a
acestui algoritm sunt prezentate în cele ce urmează: Lungimea blocului: Lungimea blocului
trebuie să fie destul de mare pentru a împiedica analiza statistică. In alta ordine de ider
complexitatea implementării algoritmului de criptare creşte exponenţial cu lungimea blocului.
Folosirea unui bloc de 64 biţi este în general destul de puternică. Lungimea cheii: Lungimea
cheii trebuie să fie destul de mare pentru a preveni căutarea exhaustivă. Confuzia: Legătura
dintre mesajul original şi cheie în mesajul criptat trebuie să fie cât mai complicată. Obiectivul
este de a complica cât mai mult determinarea unor statistici din mesajul criptat care au
legătură cu mesajul original. În acest scop IDEA foloseşte trei operaţii diferite spre deosebire
de DES care se bazează pe operatorul XOR şi pe cutiile S (S-boxes). Difuzia: Fiecare bit din
mesajul original trebuie să influenţeze toţi biţii mesajului criptat şi orice schimbare din cheie
să influenţeze orice bit din mesajul criptat. Această tehnică ascunde structura statistică a
mesajului original. Din acest punct de vedere, IDEA este foarte eficace.
29
Revenind la ultimele două puncte, confuzia este obţinută prin trei operaţii diferite.
Fiecare dintre aceste operaţii este aplicată pe două segmente de intrare de 16 biţi, producând o
singură ieşire pe 16 biţi. Aceste operaţii sunt:
• XOR (sau-exclusiv) pe biţi.
• Adunarea de întregi modulo 216 (modulo 65 536) cu intrări şi ieşiri tratate ca întregi
pe 16 biţi fără semn.
• Multiplicarea de întregi modulo 216+1 (modulo 65 537) cu intrări şi ieşiri tratate ca
întregi pe 16 biţi fără semn.
IDEA este relative usor de implementat atât software cât şi hardware. Implementarea
hardware (de obicei în VLSI) este proiectată pentru a obţine o viteză foarte mare, în schimb
cea software este mult mai flexibilă şi mai ieftină. Principii de proiectare a implementării
software:
• Se folosesc subblocuri: algoritmul poate opera cu subblocuri de 8, 16, 32 biţi.
Dimensiunea tipică este de 16 biţi.
• Se folosesc operaţii simple: implementarea celor trei operaţii ce intervin în
algoritmul IDEA se face pe baza operaţiilor primitive la nivel de bit (adunare, deplasare, etc.).
Principii de proiectare a implementării hardware:
• Criptarea şi decriptarea sunt similare. Ele diferă doar prin ordinea folosirii subcheilor
astfel încât acelaşi dispozitiv poate fi folosit atât pentru criptare, cât şi pentru decriptare.
• Structură modulară: algoritmul trebuie să aibă o structură modulară care să faciliteze
implementarea VLSI. IDEA este construit din două blocuri modulare de bază repetate de mai
multe ori.
Schema bloc pentru criptarea IDEA este ilustrată în figura 2.8. Ca şi în orice schemă
de criptare, există două intrări: mesajul original şi cheia de criptare. În acest caz, primul are
lungimea de 64 biţi, iar cheia este de 128 biţi.
Urmărind partea stângă a figurii, se observă că algoritmul constă din 8 ture (runde)
urmate de o transformare finală. Cei 64 biţi de la intrare sunt divizaţi în 4 subblocuri de câte
16 biţi. Fiecare tură are ca intrare 4 subblocuri de 16 biţi producând la ieşire tot 4 subblocuri
de 16 biţi. Aceeaşi regulă este valabilă şi pentru transformarea finală, diferenţa fiind doar la
ieşire unde cele 4 subblocuri sunt concatenate pentru a forma mesajul criptat. De asemenea
fiecare tură foloseşte şase subchei de 16 biţi, iar transformarea finală doar 4 subchei, în total
fiind folosite 52 subchei. În partea dreaptă a figurii se observă că toate aceste subchei sunt
generate din cheia originală de 128 biţi.
31
2.3 Algoritmi criptografici cu chei asimetrice
Criptografia asimetrică este un tip de criptografie care utilizeaza o pereche de chei: o
cheie publică și o cheie privată. Un utilizator care deține o astfel de pereche își publică cheia
publică astfel încat oricine dorește să o poata folosi pentru a îi transmite un mesaj criptat.
Numai deținătorul cheii secrete (private) este cel care poate decripta mesajul astfel criptat.
Matematic, cele două chei sunt legate, însă cheia privată nu poate fi obținută din cheia
publică. In caz contrar, orcine ar putea decripta mesajele destinate unui alt utilizator, fiindcă
oricine are acces la cheia publică a acestuia.
O analogie foarte potrivită pentru proces este folosirea cutiei poștale. Oricine poate
pune în cutia poștală a cuiva un plic, dar la plic nu are acces decât posesorul cheii de la cutia
poștală.
Cripografia asimetrică se mai numește criptografie cu chei publice.
Metodele criptografice în care se folosește aceeași cheie pentru criptare și decriptare
sunt metode de criptografie simetrică sau criptografie cu chei secrete. Sistemele de criptare cu
chei simetrice folosesc o singură cheie, atât pentru criptare cât și pentru decriptare. Pentru a
putea folosi această metodă atât receptorul cât și emițătorul ar trebui sa cunoască cheia
secretă. Aceasta trebuie sa fie unica pentru o pereche de utilizatori, fapt care conduce la
probleme din cauza gestionarii unui numar foarte mare de chei. Sistemele de criptare
asimetrice inlatura acest neajuns. De asemenea, se elimina necesitatea punerii de acord asupra
unei chei comune, greu de transmis in conditii de securitate sporita intre cei 2 interlocutori.
Cele două mari ramuri ale criptografiei asimetrice sunt:
1.Criptarea cu cheie publică – un mesaj criptat cu o cheie publică nu poate fi
decodificat decat folosind cheia privată corespunzătoare. Metoda este folosită pentru a asigura
confidențialitatea.
2.Semnături digitale – un mesaj semnat cu cheia privata a emițătorului poate fi
verificat de catre oricine, prin acces la cheia publica corespunzatoare, astfel asigurandu-se
autenticitatea mesajului.
O analogie pentru semnăturile digitale ar fi sigilarea unui plic folosind un sigiliu
personal. Plicul poate fi deschis de oricine, dar sigiliul personal este cel care verifică
autenticitatea plicului.
O problema majoră în folosirea acestui tip de criptare este increderea (dovada) că
cheia publica este corectă, autentică și nu a fost interceptată sau înlocuită de o a treia parte rău
voitoare. În mod normal problema este rezolvată folosind infrastructura cu cheie publică
32
(PKI) în care una sau mai multe persoane asigură autenticitatea cheilor pereche. O altă
abordare folosită de PGP (Pretty Good Privacy) este cea a conceptului web of trust .
2.3.1 Algoritmul RSA
Algoritmul RSA a fost publicat pentru prima oară în 1977 de R. Rivest, A. Shamir şi
L. Adleman în revista “Scientific American” Sistemele de tipul RSA fac parte din categoria
sistemelor criptografice cu cheie publică. Securitatea algoritmului se bazează pe problema
factorizării numerelor foarte mari. Algoritmul poate fi utilizat pentru operatii de:
criptare/decriptare, semnare/verificare semnatura, asigurarea integritatii datelor (prin
semnare), schimb de chei. El este întâlnit în servere şi browsere de web, în clienţi şi servere
de e-mail, reprezentând practic coloana vertebrală a sistemului de plăţi electronice prin card-
uri de credit. [8] Algoritmul funcţionează după cum urmează: [11]
• Se generează două numere prime p şi q, de lungime biti. Deoarece mulţimea numerelor
prime este suficient de densă, numerele prime pot fi generate alegând aleator numere întregi
de n/2 biţi şi testându-le cu ajutorul unui test probabilistic. Apoi, fie
de lungime n biţi.
• Numărul e trebuie ales astfel încât să îndeplinească următoarele condiţii:
iar e şi
să fie relativ prime, sau altfel spus, să nu aibă factori primi în comun.
• Se calculează d cu ajutorul algoritmului euclidian extins, astfel încât acesta să fie multiplul
invers al lui e sau altfel spus
33
să fie divizibil cu
În practică, d se poate obţine foarte simplu căutând rezolvarea
astfel încât d şi x să fie numere întregi. Valorile d şi e sunt numite exponentul privat, respectiv
exponentul public al algoritmului.
• Funcţia de criptare/semnare arată astfel:
unde M reprezintă mesajul de criptat (un întreg pozitiv mai mic decât N). • Funcţia de
decriptare/verificare arată astfel:
unde C reprezintă textul criptat. Cheia publică este reprezentată de perechea (N, e), iar cheia
privată de perechea (N, d). Numărul d mai este cunoscut şi sub numele de “trap door”,
deoarece cunoaşterea sa permite inversarea rapidă a funcţiei RSA. Viteza algoritmului RSA
depinde în mare măsură de lungimea cheilor utilizate, de tipul de implementare, de procesorul
pe care se rulează aplicaţia, dar şi de protocolul ce trebuie implementat. Deseori, pentru a
obţine o viteză sporită în aplicaţiile practice, sunt utilizaţi exponenţi publici mici, acest fapt
implicând însă şi riscuri corespunzătoare. Există chiar grupuri întregi de utilizatori care
folosesc acelaşi exponent public, doar modulul N fiind diferit. În acest caz există însă reguli
stricte ce trebuiesc respectate pentru cele două numere prime p şi q, astfel încât siguranţa
algoritmului să nu fie periclitată.
Utilizând, cum spuneam, exponenţi publici mici, se obţine o viteză mai mare de
criptare şi verificare în comparaţie cu procesele inverse de decriptare şi semnare a datelor.
34
Utilizând algoritmii generali de calcul ai exponenţialului, operaţiile cu cheie publică consumă
un timp proporţional cu O(n²) iar operaţiile cu cheie privată necesită aproximativ O(n³) , unde
n reprezintă numărul de biţi ai lui N. Tehnicile de multiplicare rapidă, necesită de obicei mai
puţini paşi, sunt însă destul de rar folosite datorită complexităţii lor, şi a faptului că pentru
lungimi tipice de chei, ele sunt totuşi mai lente.
Dacă comparăm viteza algoritmului RSA cu cea a unui algoritm cu cheie simetrică
(DES de exemplu), putem observa că în funcţie de implementare (HW sau SW) cel din urmă
este cu până la aproximativ 1000 de ori mai rapid decât RSA. Cu toate acestea, utilizarea RSA
în algoritmi de distribuire de chei (simetrice) sau în alte aplicaţii, în care viteza este mai puţin
importantă, prezintă avantaje de netăgăduit. Securitatea sistemelor RSA se bazează pe
presupunerea că funcţia:
este unidirecţională, fiind computaţional dificil de a se găsi mesajul iniţial M în absenţa
exponentului de decriptare d. Există însă posibilitatea, cel puţin teoretică, de a încerca
factorizarea lui N prin metoda forţei brute sau prin alte metode, fapt ce ar duce la aflarea
numerelor p şi q. Apoi utilizând algoritmul euclidian extins se poate calcula exponentul de
decriptare d, ceea ce ar duce la compromiterea cheii private şi la descifrarea textului criptat.
Încă de la publicarea sa, algoritmul RSA a fost studiat de o mulţime de cercetători,
fiind supus la nenumărate teste. Cu toate că de-a lungul celor mai bine de 25 de ani de
utilizare au rezultat diverse vulnerabilităţi, algoritmul s-a dovedit suficient de rezistent (până
în prezent) pentru a putea oferi un grad ridicat de securitate. Metodele de atac rezultate nu fac
decât să ilustreze încă o dată pericolul utilizării RSA în condiţii necorespunzătoare,
programarea unei versiuni sigure de RSA nefiind deloc o problemă simplă.
În practică, RSA este foarte des utilizat împreună cu algoritmi cu cheie simetrică (de
exemplu DES). Se generează o cheie DES, cu care se criptează mesajul. Apoi, cheia simetrică
se criptează cu ajutorul cheii publice a persoanei căreia îi este destinat mesajul şi se trimite
destinatarului împreună cu mesajul criptat (acestea două formează un “plic digital” RSA).
Destinatarul va decripta mai întâi cheia DES cu ajutorul cheii sale private, apoi mesajul, cu
ajutorul cheii simetrice, obţinută din prima decriptare. Cheia DES poate fi în continuare
utilizată şi ca o cheie de sesiune. Pentru semnarea unui mesaj, mai întâi se creează o amprentă
digitală (“message digest”) a acestuia cu ajutorul unei funcţii hash. Aceasta se criptează cu
ajutorul cheii private, rezultatul urmând a fi trimis destinatarului. Pentru verificarea
semnăturii, se decriptează mesajul cu ajutorul cheii publice a semnatarului, obţinând astfel
35
amprenta digitală, care va fi comparată cu cea obţinută aplicând din nou funcţia hash asupra
mesajului. Dacă cele două amprente sunt identice, rezultă faptul că semnătura digitală este
autentică.
În momentul de faţă, RSA este utilizat într-o varietate de produse, platforme şi
standarde. El poate fi întâlnit în sisteme de operare, precum: Microsoft, Apple, Sun sau
Novell, în componente hardware, precum: sisteme telefonice, card-uri de reţea sau smartcard-
uri, în protocoale de comunicaţie, precum: S/MIME, SSL, IPSec, PKCS. El este în mod sigur
cel mai răspândit algoritm cu cheie publică utilizat la ora actuală.
În ultimul timp a devenit clar că sistemele cu chei publice sunt un mecanism
indispensabil atât pentru managementul cheilor cât şi pentru comunicaţiile sigure. Ceea ce
este mai puţin clar este modalitatea de a alege cel mai bun sistem într-o anumită situaţie. Unul
dintre criteriile cele mai des folosite pentru a alege îl constituie tehnica utilizată de algoritm.
Fără o cunoaştere profundă a acesteia, a vulnerabilităţilor, dar mai ales a metodelor de atac, cu
greu mai putem concepe astăzi programarea unui versiuni robuste şi sigure a unui algoritm
criptografic.
Mai mult de două decenii de atacuri împotriva RSA au produs o serie de atacuri
interesante, dar nu au fost găsite (până în prezent) metode astfel încât algoritmul să fie
compromis. Se poate deci presupune că implementările RSA, ce respectă un set de reguli bine
stabilit, pot furniza un grad ridicat de securitate.
2.3.2 Algoritmul Diffie-Hellman
Whitfield Diffie si Martin Hellman au propus acest algoritm care este utilizat exclusiv
pentru operatiile de schimbare de chei. Fiecare parte utilizeaza cheia sa privata si cheia
publica a corespondentului pentru a crea o cheie simetrica pe care nici un alt utilizator nu o
poate calcula. Protocolul începe cu fiecare parte care generează independent câte o cheie
privată. În pasul următor, fiecare calculează câte o cheie publică, aceasta fiind o funcţie
matematică a cheilor private respective. Urmează schimbul de chei publice. În final, fiecare
dintre cele două persoane calculează o funcţie a propriei chei private şi a cheii publice a
celeilalte persoane. Matematica este cea care va face să se ajungă la aceeaşi valoare, care este
derivată din cheile lor private.
36
Securitatea acestui algoritm consta în dificultatea calculării logaritmilor discreţi.
Calculul acestor logaritmi pentru numere prime mari este considerat imposibil. În primul rând
de defineşte a - rădăcina primitivă a unui număr prim p, ca fiind un număr a cărui puteri
generează toţi întregii de la 1 la p-1 prin aplicarea operatiei (mod p). Adică dacă a este
rădăcina primitivă a unui număr p atunci numerele:
sunt distincte şi constau din întregii de la 1 la p-1 într-o anumită permutare.
Pentru un întreg b şi o rădăcină primitivă a a unui număr p se poate găsi un unic
exponent astfel încât:
Exponentul i se calculează prin logaritm discret (prezentat în literatura de specialitate
ca fiind deosebit de dificil de determinat).
Metoda Diffie-Hellamn, precum şi variantele ei sunt utilizate în câteva protocoale de
securitate a retelelor, şi la Pretty Good Privacy pentru criptarea e-mail-urilor şi a unor fişiere.
2.3.3 Semnaturi digitale
Standardul pentru semnături digitale (DSS – Digital Signature Standard) a fost adoptat
în 1991, fiind revizionat în 1993. El foloseşte Secure Hash Algorithm (SHA) şi prezintă o
tehnică nouă pentru semnături digitale prin Digital Signature Algoritm (DSA). Spre deosebire
de RSA acest algoritm este proiectat doar pentru furnizarea semnăturilor digitale nu şi pentru
funcţii de criptare şi decriptare, dar totuşi este o metodă care foloseşte chei publice.
Figura 2.9 evidentiaza diferenta dintre modul de generare a semnăturilor digitale
folosite de DSS şi algoritmul RSA, creandu-se astfel o paralela intre cele 2. În RSA, partea de
mesaj care se doreşte a reprezenta în final semnătura, este trecută printr-o funcţie de
amestecare (hash function) producând un cod amestecat (hash code) de lungime fixă, acesta
fiind mai apoi criptat cu cheia privată a expeditorului formând semnătura digitală. Atât
mesajul propriu-zis cât şi semnătura digitală sunt transmise destinatarului. Destinatarul
produce pe baza mesajului (fără partea care include semnătura) codul amestecat. De asemenea
destinatarul decriptează semnătura folosind cheia publică a sursei. Dacă codul amestecat
rezultat şi semnătura obţinută prin decriptare coincid, atunci semnătura este validată.
37
Deoarece numai sursa cunoaşte cheia sa privată rezultă că numai ea poate produce o
semnătură validă.
Figura 2.9 Cele două abordări a semnăturilor digitale
Funcţii de amestecare sunt folosite de asemenea si de Algoritmul DSS. Codul
amestecat produs este folosit ca intrare într-o “funcţie-semnătură” împreună cu un număr k
generat aleator. “Funcţia-semnătură” mai depinde şi de cheia privată a sursei KRa precum şi
de un set de parametri cunoscuţi participanţilor. Se consideră că acest set de parametrii
constituie o cheie globală KUG. Rezultatul este o semnătură care constă din două componente
notate s şi r. La destinaţie un cod amestecat este generat pe baza mesajului recepţionat. Acesta
şi semnătura servesc ca intrare funcţiei de verificare. Aceasta depinde de asemenea de cheia
publică a sursei KUa şi de cheia publică globală. Dacă ieşirea produsă de funcţia de verificare
coincide cu r (o parte din semnătură) atunci semnătura este validă.
38
2.4 Concluzii
Criptografia cu chei simetrice şi cea cu chei publice prezintă atat avantaje şi
dezavantaje. Deoarece în cadrul criptografiei simetrice este utilizată aceeaşi cheie atât pentru
criptare, cât şi pentru decriptare, securitatea acestei criptări este redusă, depinzând în mod
evident de împiedicarea obţinerii cheii secrete de către o terţă parte. De cele mai multe ori este
necesară securizarea schimbului de chei înainte de începerea propriu-zisă a interschimbului de
date criptate. În cazul algoritmilor asimetrici securitatea este asigurată prin folosirea cheii
private şi utilizarea certificatelor digitale. Algoritmii asimetrici sunt ecuaţii matematice
complexe care operează cu numere foarte mari, ceea ce implică o relativă încetineală a
procesului. Algoritmii simetrici sunt de obicei mult mai rapizi, având însă problema partajării
cheii de criptare. Un astfel de algoritm este cu atât mai sigur, cu cât lungimea cheii este mai
mare (numărul cheilor care ar putea fi testate de o persoană neautorizată creşte). În practică se
preferă combinarea celor două forme de criptografie, pentru optimizarea performanţelor. In
tabelele de mai jos (Tabel 1 si Tabel 2) sunt evidentiate in paralel avantajele si dezavantajele
celor doua chei:
Tabel 1Avantaje Dezavantaje
Cheisimetrice
Cheile folosite pentru algoritmiisimetrici sunt relativ scurte
Într-o comunicaţie cheia trebuie saramana permament secreta în (cel putın)doua locuri distincte
Algoritmii folosiţi permitgestionarea unor volume mari dedate, cu viteză reletiv bună.Exista implementari hard carepentru unele sisteme de criptarepot asigura rate de criptare desute de mega-octeti pe secunda
Cu cat lungimea unui mesaj criptat estemai mare, cu atat el este mai usor despart
Prin compunere pot conduce lasistme de criptare puternice
Necesita un canal sigur de comunicare,cel putin pentru transmiterea cheii. Acestlucru devine dificil mai ales pentrusistemele care necesita schimbarifrecvente ale cheilor decriptare/decriptare
Pot fi folosite ca baza deconstructie a diverselormecanisme de criptare, cum ar figeneratori de numere pseudo-aleatoare, generatori de functii dedispersie, scheme de semnatura
In retele mari, o gestionare a cheilordevine extrem de dificila
39
Tabel 2Avantaje Dezavantaje
Cheiepublica
Conduc la aplicatii de mare ıntindere:semnaturi electronice, algoritmi deautentifi- care, componente de comertelectronic
Sunt necesare chei de lungimi mult maimari
In functie de modul de utilizare, opereche de chei (publica,privata) poatefi pastrata o perioada mai lunga de timp
Nu se poate garanta securitatea absoluta anici unei scheme de criptare cu cheiepublica
Sistemele cu cheie publica sunt simplude definit si elegante matematic
Implementarea trebuie realizata cu foartemare grija. Sisteme cu grad ridicat teoreticde securitate pot fi sparte usor printr-oimplementare neglijenta
Sistemul este ideal pentru transmitereainformatiei prin canale nesigure
Viteza algoritmilor cu chei publice este decâteva ori mai mică decat a celor cu cheisimetrice
Doar cheia de decriptare trebuie tinutasecreta, la un singur punct (destinatar)
40
3. SECURIZAREA COMUNICATIILOR DIGITALE PRIN
INTERMEDIUL VPN (VIRTUAL PRIVATE NETWORK)
O tehnologie de comunicaţii cumputerizată sigură, dar bazată pe o reţea publică este o
reţea privată virtuală,şi de aceea nu foarte sigură. Tehnologia VPN este concepută tocmai
pentru a crea într-o reţea publică o subreţea de confidenţialitate aproape la fel de înaltă ca într-
o reţea privată adevărată la care sunt legaţi numai utilizatori autorizaţi. Tehnologia VPN este
concepută tocmai pentru a crea într-o reţea publică o subreţea de confidenţialitate aproape la
fel de înaltă ca într-o reţea privată adevărată la care sunt legaţi numai utilizatori autorizaţi. În
mod intenţionat această subreţea, denumită totuşi "reţea VPN", nu poate comunica cu
celelalte sisteme sau utilizatori ai reţelei publice de bază. Utilizatorii unei reţele VPN pot
căpăta astfel impresia că sunt conectaţi la o reţea privată dedicată, independentă, cu toate
avantajele pentru securitate, reţea care în realitate este doar virtuală, ea de fapt fiind o subreţea
înglobată fizic în reţeaua de bază.
O reţea privată virtuală este o reţea partajată în care datele private sunt segmentate de
restul traficului, astfel încât numai destinatarul real are acces la ele, un exemplu general este
ilustrat în figura următoare. Figura 3.1. prezintă o reţea VPN în care întreprinderile A şi B nu
se "văd" şi nu se deranjează reciproc, deşi ambele folosesc aceeaşi reţea fizică publică.
Figura 3.1 Reţele private virtuale
41
Reţelele VPN oferă multe aventaje: extinde aria geografică de conectivitate, sporeşte
securitatea, reduce costurile operaţionale, creşte productivitatea, simplifică topologia reţelei,
oferă oportunităţi de lucru într-o reţea globală, permite confidenţialitatea datelor schimbate
între punctele de lucru aflate la distanţă şi altele. În plus, VPN -urile securizate sunt mai
ieftine decât liniile închiriate dedicate.
Un aspect important, vital al securităţii datelor este faptul că datele, în cursul lor spre
destinatar, sunt protejate prin tehnologii de criptare. Un punct slab este ca reţelelor private le
lipseşte securitatea datelor, permiţând astfel intrarea în reţea şi citirea datelor. În schimb,
reţelele private virtuale bazate pe IP Sec utilizează criptarea pentru a secretiza date, crescând
astfel rezistenţa reţelei din punct de vedere al furtului datelor.
3.1 Tipuri de retele VPN
Sunt trei tipuri principale de retele VPN, figura 3.2.:
- VPN-urile cu acces de la distanţă (Remote Access VPN) permit utilizatorilor dial-up
să se conecteze securizat la un site central printr-o reţea publică.
- VPN-urile intranet (Intranet VPN) permit extinderea reţelelor private prin Internet
sau alt serviciu de reţea publică într-o manieră securizată. Acestea sunt denumite şi VPN-uri
„site-to-site” sau „LAN-to-LAN”.
- VPN-urile extranet (Extranet VPN) permit conexiuni securizate între partenerii de
afaceri, furnizori şi clienţi, în general în scopul realizării comerţului electronic. VPN-urile
extranet sunt o extensie a VPN-urilor intranet la care se adaugă firewall-uri pentru protecţia
reţelei interne.
42
Figura 3.2 Tipuri de reţele VPN
3.1.1 Remote VPN
VPN-urile de tip acces de la distanţă (remote access), numite şi reţele virtuale private
cu dial-up, este un tip de conexiune utilizator-către-LAN (figura 3.3) folosită cel mai adesea
de companii ce au angajaţi cu necesităţi de conectare la resursele reţelei companiei din diverse
locatii.
Figura 3.3 Remote VPN
43
De regulă în momentul când se doreşte accesul mai multor utilizatori la reţeaua locală,
se apeleaza la o companie de out-sourcing ce foloseşte un server de acces în reţea pentru a
acorda drepturi utilizatorilor şi calculatoarelor acestora.
In general, în cazul implementarii unei tehnologii VPN între sediile companiei, este de
preferat să se apeleze la acelaşi ISP pentru toate locaţiile. Apropierea geografică de regulă nu
are nici o legatura cu “apropierea pe Internet”.
Prin utilizarea de echipamente dedicate şi criptare pe scară largă, o companie poate conecta
multe locaţii (sucursale) fixe pe o reţea publică cum ar fi Internetul.
3.1.2 Intranet VPN
Reţeaua virtuală privată între sediile şi departamentele aceleiaşi firme. Intranet-ul
este definit ca o legătura semi-permanentă peste o reţea publică între un WAN şi o filială a
companiei. Aceste tipuri de conexiuni LAN-LAN (Fig. 3.4) se presupune că au cel mai mic
risc din punct de vedere al securităţii pentru ca firmele au încredere în filialele lor. În astfel de
cazuri compania are control asupra reţelei/nodurilor destinaţie cât şi asupra celei sursă.
Administratorii de sistem trebuie să decidă dacă aceasta situaţie este întâlnită şi în propria
firmă.
Cantităţi mari de date sunt schimbate frecvent între LAN-uri într-o reţea privată, deci
importantă este viteza de transmisie şi interoperabilitatea. LAN-urile care sunt conectate prin
intermediul unor baze de date centralizate sau prin alte resurse de calcul răspândite în reţeaua
firmei ar trebui să fie considerate ca făcând parte din aceeaşi reţea. Motivul principal pentru
care majoritatea organizaţiilor se orientează către tehnologia VPN este costul redus al acestei
implementari.
Figura 3.4 Intranet VPN
44
3.1.3 Extranet VPN
Reţeaua virtuală privată care este relativ izolată faţă de intranet. Extranetul este
destinat comunicării cu partenerii, clienţii, furnizorii şi cu angajaţii la distanţă. Securizarea
unei reţele de dimensiuni mari necesită îndrumări şi instrumente adecvate. Un extranet VPN
trebuie să ofere o ierarhie a securităţii şi accesarea datelor confidenţiale să se facă sub cel mai
strict control. Principalul obiectiv al unui Extranet sau al VPN-ului între companii este să se
asigure ca datele secrete ajung intacte şi exact cui îi sunt adresate fără a exista riscul de a
expune resursele protejate unor eventuale ameninţări, aşa ca firmele ar trebui să ia în
considerare cele mai avansate soluţii de VPN.
Figura 3.5 Extranet VPN
Un Extranet VPN, figura 3.5. sigur, în care o companie împarte informaţii cu clienţii,
partenerii, furnizorii şi angajaţii aflaţi la distanţă prin intermediul reţelei publice stabilind
legături unidirecţionale de la un capăt la altul printr-un server VPN. Acest tip de sistem
permite unui administrator de reţea să definească drepturi specifice, cum ar fi cele ce ar
permite unui membru din conducerea unei firme partenere să acceseze diferite/anumite
rapoarte de vânzări de pe un server protejat. Acest tip de acces nu este posibil cu orice tip de
soluţie VPN.
Într-o situaţie reală de interconectare între parteneri de afaceri, administratorii trebuie să
caute o soluţie de VPN care să filtreze accesul la resurse în funcţie de cât mai multe
parametrii posibili, inclusiv sursa, destinaţia, utilizarea aplicaţiei, tipul de criptare şi
45
autentificare folosit, şi identităţile individuale şi de grup. Managerii de sistem trebuie să
identifice utilizatorii individual, nu numai adresele IP, fie prin parole, token card, smart card,
sau orice alta metode de autentificare. Parolele sunt de obicei suficiente pentru o aplicaţie
obişnuită de birou, dar nu sunt la fel de sigure precum token-urile sau smart card-urile.
Reţelele private virtuale folosesc Internetul pentru a conecta mai multe reţele LAN între
ele, printr-o conexiune sigură. Conexiunile VPN realizează acest lucru cu două procese
importante: crearea de tunele şi securizarea. Mai întâi, o reţea VPN creează un circuit
,,virtual" între cele două puncte conectate, prin intermediul Internetului. Apoi, foloseşte
metoda creării de tunele pentru a înfăşura datele în protocolul (limbajul) Internetului - TCP/IP
- astfel încât să poată fi transportate cu uşurinţă. Prin securizare se înţele criptarea şi
încapsularea pachetelor trimise, astfel încât numai destinatarul căreia i se adresează să le
poată decodifica şi citi.
3.2 Protocoale de tunelare
Pentru a se face posibila implementarea reţelei VPN este necesară crearea unui tunel
printr-o reţea publică pentru transferul datelor. Tunelarea este definita ca fiind o metodă de
folosire a infrastructurii unei inter-reţele pentru transferul datelor dintr-o reţea peste o altă
reţea. Datele de transferat pot fi cadrele (sau pachetele) altui protocol. În loc de a transmite
cadrul în forma în care a fost produs de nodul sursă, protocolul de tunelare încapsulează
cadrul într-un antet adiţional. Acesta conţine informaţii de rutare astfel încât încărcătura
încapsulată poate traversa inter-reţeaua intermediară. Pachetele încapsulate sunt apoi rutate
între capetele tunelului prin inter-reţea. Calea logică pe care pachetele încapsulate o urmează
în inter-reţea se numeşte tunel. Odată ce cadrele încapsulate ajung la destinaţie prin inter-
reţea, cadrul este decapsulat şi trimis la destinaţia sa finală. De notat că tunelarea include
întregul proces: încapsulare, transmitere şi decapsulare a pachetelor.
46
Figura 3.3 Protocoale folosite pentru VPN
În esenţă, tunelarea este procesul prin care se introduce întreg pachetul IP în interiorul
unui alt pachet, cu antete distincte, acesta fiind trimis ulterior prin reţea. Protocolul pachetului
rezultat în urma tunelării este recunocut de către reţea şi de către ambele noduri sursă şi
destinaţie, la nivelul interfeţelor de tunelare, prin care pachetele intră şi ies din reţea.
Tehnologia de tunelare poate fi bazată pe un protocol de tunelare pe nivel 2 sau 3.
Aceste nivele corespund modelului de referinţă OSI (figura 3.3.).
3.2.1 Protocoale de nivel 2 OSI
Protocoalele de tunelare de nivel 2 corespund nivelului legătură de date, şi folosesc
cadre ca unitate de schimb. Ele încapsulează încărcătura într-un cadru PPP pentru a fi
transmis peste inter- reţea. Pentru tehnologiile de nivel 2, cum ar fi PPTP sau L2TP, un tunel
este asemănător cu o sesiune; ambele capete ale tunelului trebuie să cadă de acord asupra
tunelului şi să negocieze variabilele de configurare, cum ar fi atribuirea adreselor, criptarea,
comprimarea. În cele mai multe cazuri, datele transferate prin tunel sunt trimise folosind un
protocol bazat pe datagrame. Pentru gestionarea tunelului se foloseşte un protocol de
menţinere a tunelului. Pentru protocoalele de nivel 2, un tunel trebuie creat, menţinut şi
distrus. [12]
47
Layer 2 forwarding este un protocol de tip forwarding, folosit pentru tunelarea
protocoalelor de nivel înalt într-un protocol de nivel 2. Un exemplu este folosirea ca
protocoale L2: HDLC, HDLC asincron sau cadre SLIP. 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ă. Acest protocol a fost creat de Cisco. Combinat cu PPTP, constituie componentă
a L2TP.
Point to point tunneling protocol, reprezintă o extensie a Point-to-Point Protocol
(PPP), care încapsulează datele, IPX sau NetBEUT în pachetele IP. Acest protocol este folosit
în mod fundamental de echipamentele ISP, deoarece duce la un numitor comun participanţii
la sesiuni de comunicaţii. Este cea mai cunoscută dintre opţiunile pentru securitatea
transferului de date în reţeaua VPN. Dezvoltat de Microsoft şi inclus în Windows NT v 4.0
pentru a fi folosit cu serviciul de rutare şi acces de la distanţă. Acesta permite traficului IP,
IPX şi NetBEUI să fie criptat şi încapsulat într-un antet IP pentru a fi transmis peste o inter-
reţea IP de corporaţie sau publică (Internet).
PPTP suportă criptare pe 128 de biţi şi 40 de biţi şi poate folosi orice schemă de
autentificare suportată de PPP. Ca şi L2F, PPTP permite tunneling-ul unor cadre PPP de la
clientul îndepărtat între un NAS şi un VPN gateway/concentrator.
Layer 2 Tunneling Protocol, este o combinaţie dintre un protocol al firmei Cisco
Systems (L2F) şi cel al firmei Microsoft denumit Point-to-Point Tunneling Protocol (PPTP).
Un tunel L2TP este creat incapsuland un cadru L2TP in interiorul unui pachet UDP, cel din
urma fiind incapsulat in interiorul unui pachet IP a carui adrese sursa si destinatie definesc
capetele tunelului.
Fiind conceput pentru a suporta orice alt protocol de rutare, incluzând IP, IPX şi
AppleTalk, acest L2TP poate fi rulat pe orice tip de reţea WAN, inclusiv ATM, X.25 sau
SONET. Cea mai importantă trăsătură a L2TP este folosirea protocolului Point-to-Point,
inclus de Microsoft ca o componentă a sistemelor de operare Windows 95, Windows 98 şi
Windows NT. Astfel că orice client PC care rulează Windows este echipat implicit cu o
funcţie de tunneling, iar Microsoft furnizează şi o schemă de criptare denumită Point-to-Point
Encryption. În afara capacităţii de creare a unei VPN, protocolul L2TP poate realiza mai
multe tunele simultan, pornind de la acelaşi client.
Următorul tabel (tabel 3.1) ne oferă o comparație intre cele mai predominante
protocoale de tunelare cu acces la distanță (remote acces), L2TP, PPTP și L2F:
48
PPTP L2F L2TP
Transport IP/GRE IP/UDP, FR, ATM IP/UDP, FR, ATM
Criptare Criptare Microsoft
PPP (MPPE)
Criptare Microsoft
PPP (MPPE); IPsec
opțional
Criptare Microsoft
PPP (MPPE/ECP);
IPsec opțional
Autentificare Autentificare PPP
(utilzator)
Autentificare PPP
(utilzator); IPsec
opțional (pachet)
Autentificare PPP
(utilzator); IPsec
opțional (pachet)
Tabel 3.1 Comparație intre protocoale de tunelare cu acces la distanta
3.2.2 Protocoale de nivel 3 OSI
Protocoalele de nivel 3 corespund nivelului reţea, folosesc pachete IP şi sunt exemple
de protocoale care încapsulează pachete IP într-un antet IP adiţional înainte de a le transmite
peste o inter-reţea IP. Tehnologiile de tunelare pe nivel 3 pleacă de la premiza că toate
chestiunile de configurare au fost efectuate, de multe ori manual. Pentru aceste protocoale,
poate să nu existe faza de menţinere a tunelului. Tunelul odată stabilit, datele tunelate pot fi
trimise. Clientul sau serverul de tunel foloseşte un protocol de transfer de date de tunel pentru
a pregăti datele pentru transfer. De exemplu, când clientul de tunel trimite informația utilă
către serverul de tunel, clientul de tunel adaugă un antet de protocol de transfer de date de
tunel la informaţia utilă. Apoi clientul trimite informaţia încapsulată rezultată prin inter-reţea,
care o dirijează către serverul de tunel. Serverul de tunel acceptă pachetul, elimină antetul de
protocol de transfer de date şi transmite informaţia utilă la reţeaua ţintă. Informaţia trimisă
între serverul de tunel şi client se comportă similar.
Generic Routing Encapsulation este un protocol de tunelare dezvoltat de Cisco care
poate încapsula o mare varietate de tipuri de pachete ale protocoalelor de reţea în interiorul
tunelelor IP, creând o legătură virtuală punct la punct, între routere aflate la distanţă, peste o
reţea IP.
Pentru rutarea cu adrese private, se încapsulează pachetele IP transmise în Internet cu
antete suplimentare prin aşa-numitul mecanism GRE, descris în RFC 1701. Pachetului iniţial
49
(payload packet /original packet) i se adaugă un antet GRE (GRE Header) şi un antet de
expediere privind modul de transfer specificat conform protocolului de reţea (delivery
header).
În antetul GRE se specifică ruta pe care se va trimite forţat pachetul la destinaţie, fără
a se lua alte decizii de rutare în routerele intermediare.
GRE asigură transparenţa adreselor intermediare şi securitatea transmisiei, prin
realizarea unui aşanumit "tunel de transmisie" (tunnelling) .
Uzual este cazul încapsulării pachetelor IP pentru transmisii cu IP (IP over IP)
conform RFC 1702, standard definit pentru GRE. Adresele IP private pot fi utilizate în
încapsularea GRE astfel încât cadrul să fie interpretat ca fiind încapsulat GRE şi routerele 'de
la distanţă' să extragă adresa de destinaţie privată din pachetul original.
Tunelarea are implicaţii importante pentru VPN-uri. Astfel se pot transmite pachete
care utilizează adrese IP private în interiorul unui pachet care utilizează adrese IP reale, în
acest fel se poate extinde reţeaua privată prin Internet. Dar se poate transmite şi un pachet care
nu este suportat de protocolul Internet (precum NetBeui) în interiorul unui pachet IP iar acesta
poate fi apoi transmis cu uşurinţă prin Internet.
Deşi VPN-urile construite peste Internet folosind GRE sunt posibile, sunt foart rar
folosite de companii datorită riscurilor şi lipsei de mecanisme de securitate.
Internet Protocol Security sau IPSec, este o suită de protocoale care asigură
securitatea unei reţele virtuale private prin Internet.
Orice persoana care foloseşte VPN este preocupata de securizarea datelor când
traversează o reţea publică. Totodată, dezvoltarea VPN-urilor pe baza reţelei publice Internet
poate însemna reducerea costurilor semnificativ de mult comparativ cu liniile închiriate.
Serviciile IPSec permit autentificare, integritate, controlul accesului şi confidenţialitare. Cu
IPSec, schimbul de informaţii între locaţiile la distanţă poate fi criptat şi verificat. Cu IPsec
pot fi dezvoltate soluţii atât la distanţă, cât şi site-to-site.
IPSec este poate cel mai autorizat protocol pentru păstrarea confidenţialităţii şi
autenticităţii pachetelor trimise prin IP. Protocolul funcţionează cu o largă varietate de scheme
de criptare standard şi negocieri ale proceselor, ca şi pentru diverse sisteme de securitate,
incluzând semnături digitale, certificate digitale, chei publice sau autorizaţii. Încapsulând
pachetul original de date într- destinaţie. Deoarece nu există modalităţi de autentificare sau
criptare licenţiate, IPSec se detaşează de celelalte protocoale prin interoperabilitate. El va
lucra cu majoritatea sistemelor şi standardelor, chiar şi în paralel cu alte protocoale VPN. De
exemplu, IPSec poate realiza negocierea şi autentificarea criptării în timp ce o reţea virtuală
50
de tip L2TP primeşte un pachet, iniţiază tunelul şi trimite pachetul încapsulat către celălalt
terminal VPN.
IPSec foloseşte un algoritm pentru schimbarea cheilor între părţi, numit Internet Key
Exchange (IKE), care permite calculatoarelor să aleaga o cheie de sesiune în mod securizat,
folosind protocoalele ISAKMP pentru crearea de Security Associations şi OAKLEY bazat pe
algoritmul Diffie-Hellman pentru schimbarea cheilor între cele două părţi. IKE se poate folosi
în conjuncţie cu Kerberos, certificate X.509v3 sau chei preshared.
Pentru a securiza comunicaţia în reţea cu IPSec între calculatoarele Windows se
foloseste o colecţie de reguli, politici şi filtre pentru a permite în mod selectiv doar
comunicaţia pentru anumite protocoale.
Politicile de IPSec pot fi create şi aplicate cu Group Policy pentru calculatoarele din
domeniu. Pentru calculatoare care nu sunt în domeniu, de exemplu serverele bastion, politicile
pot fi aplicate cu script-uri linie de comandă.
Implementarea unei soluţii VPN de comunicaţie reliefează unele probleme specifice,
probleme ce apar din cauza absenţei standardelor. Internet Engineering Task Force (IETF) a
stabilit un grup de lucru dedicat definirii standardelor şi protocoalelor legate de securitatea
Internetului. Unul dintre cele mai importante scopuri ale acestui grup de lucru este finalizarea
standardului IPSec, care defineşte structura pachetelor IP şi considerentele legate de
securitatea în cazul soluţiilor VPN.
In ultimi ani in cadrul IETF, grupul de lucru IPSec a înregistrat mari progrese în
adăugarea de tehnici de securitate criptografice la standardele pentru infrastructura Internet.
Arhitectura de securitate specificată pentru IP ofera servicii de securitate ce suportă
combinaţii de autentificare, integritate, controlul accesului şi confidenţialitate.
Tunele GRE cu protecţie IPSec. GRE este un protocol de tunelare dezvoltat de Cisco
care poate înmagazina o multitudine de tipuri de pachete ale protocoalelor de reţea în
interiorul tunelelor IP, creând o legătură virtuală punct la punct, între routere aflate la distanţă,
peste o reţea IP.
Tunelele GRE sunt create să fie complete, fără o stare persistentă, astfel fiecare capăt
de tunel nu încapsuleaza nicio informaţie despre starea şi disponibilitatea capătului de tunel de
la distanţă. O urmare a faptului acesta este că ruter-ul din capătul de tunel nu are abilitatea de
a marca protocolul liniei interfeţei tunelului GRE ca fiind inaccesibil dacă ruter-ul de la
distanţă, din celălalt capăt, nu este funcţional. Posibilitatea de a exprima că interfaţa este
nefuncţională către celălalt capăt este eficientă pentru retragerea rutelor care o folosesc ca şi
interfaţă de ieşire, din tabela de rutare (în special rutele statice).
51
De cele mai multe ori, o interfaţă de tunel GRE este funcţională din momentul în care
este configurată şi rămâne aşa cât timp este o adresă sursă a tunelului validă. Adresa IP
destinaţie a tunelului trebuie să fie mereu rutabilă. Acest lucru este adevărat chiar dacă celălalt
capăt al tunelului nu a fost configurat. Astfel, o rută statică a pachetelor via interfaţa tunelului
GRE rămâne în vigoare chiar dacă pachetele tunelului GRE nu găsesc celălalt capăt de tunel.
Construirea unei reţele virtuale private folosind IPSec pentru conectivitatea dintre
capete are câteva limitări:
-IPSec poate cripta/decripta doar traficul IP
-traficul IP destinat unei adrese de difuzare nu poate fi procesat de IPSec, ceea ce
înseamnă că nu poate traversa tunelul.
-de asemenea, rutarea dinamică folosind procoale ca EIGRP, OSPF, RIPv2 nu pot fi
configurate între două capete IPSec.
Aceste probleme se pot rezolva prin configurarea unui tunel GRE între cele două
noduri şi aplicarea ulterioară a protecţiei IPSec pe acest tunel. Este în esenţă că GRE
incadrează orice informaţie utilă dintr-un pachet unicast destinat unui capăt GRE.
In momentul cand se utilizează GRE îmbinat cu IPSec se poate folosi atât modul tunel
cât şi cel transport (modul tunel va adăuga un antet IP pachetelor GRE, în timp ce modul
transport va folosi antetul original GRE).
Teoretic, modul transport se recomanda in momentul când se utilizează combinarea
dintre IPSec şi GRE pentru că deja protocolul de încapsulare GRE adaugă un antet IP nou
pachetului util. Totuşi, această situaţie presupune existenţa unor adrese IP sursă şi destinaţie
care sunt accesibile prin calea IP dintre noduri.
Utilizarea protocolului GRE împreună cu IPSec face configurarea echipamentelor
VPN mai simplă. În situaţia tradiţională IPSec era nevoie de o politică anume care să
specifice subreţelele protejate pentru ca traficul dintre acestea să fie criptat/decriptat şi de
fiecare dată când o subreţea era adăugată trebuia să fie reînnoită structura la ambele capete. În
cazul utilizării GRE, regulile trebuie să corespundă doar traficului dintre adresele de capăt
GRE (tot ce trece prin tunelul GRE este criptat).
Unul din multiplele motive pentru care este bine sa folosesti GRE combinat cu IPSec
este faptul ca exista astfel posibilitatea de a rula protocoale dinamice între locaţii pentru a
anunţa subreţelele protejate. Rutarea dinamică ajută implicit şi în situaţii de eşec a
transferului, in acest fel se pot detecta interfeţele care nu mai funcţionează şi nu mai participă
în VPN.
52
3.3 Standardizarea retelelor VPN – protocoalele ISAKMP si IPsec
ISAKMP (Internet Security Association and Key Management Protocol – Protocolul
pentru Managementul Cheilor si Asociatia Securitatii Internetului) , un protocol cheie în
arhitectura IPsec, combina conceptele de securitate ale autentificarii, gestionarea cheilor și
asocieri de securitate pentru a stabili nivelul de securitate necesar pentru guverne, comunicatii
comerciale și private de pe Internet .
ISAKMP definește procedurile și formatele de pachete pentru a stabili, negocia,
modifica și șterge asocierile de securitate (SAs). Acestea conțin toate informațiile necesare
pentru executarea diferitelor servicii de securitate de rețea, cum ar fi serviciile de la nivelul IP
(cum ar fi autentificarea antetului și încapsulare incarcaturii) , nivelul transport sau servicii de
la nivelul aplicație, sau auto-protecția traficului de negociere. ISAKMP definește incarcaturi
pentru schimbul de generare a cheii și datele de autentificare. Aceste formate oferă un cadru
coerent pentru transferul cheilor și autentificarea datelor independente de tehnica de generare
a cheilor, algoritmul de criptare și mecanism de autentificare.
ISAKMP este diferit de protocoale de schimb de chei, în scopul de a separa detaliile
de management ale asocierilor de securitate (și de gestionare a cheilor) de detaliile de schimb
de chei. Pot exista mai multe protocoale diferite de schimb de chei, fiecare cu proprietăți
diferite de securitate. Cu toate acestea, este necesar un cadru comun de acord cu formatul
atributelor asocierilor de securitate și pentru negocierea, modificarea și ștergerea asocierilor.
ISAKMP servește ca acest cadru comun.
Separarea funcționalitatii în trei părți adaugă complexitate analizei securitatii unei
implementari ISAKMP complete. Cu toate acestea, separarea este esențială pentru
interoperabilitate între sisteme cu cerințele de securitate diferite și ar trebui să simplifice, de
asemenea, analiza evoluției ulterioare a unui server ISAKMP.
ISAKMP este destinat să sprijine negocierile asocierilor pentru protocoale de
securitate la toate nivelurile stivei de rețea (de exemplu, IPSEC, TLS, TLSP, OSPF, etc). Prin
centralizarea managementului asocierilor de securitate, ISAKMP reduce cantitatea de
functionalitate duplicat în fiecare protocol de securitate.
IPSec a apărut în cadrul efortului de standardizare pentru IPv6 şi reprezintă singura
soluţie deschisă pentru securizarea conexiunilor pe Internet. IPSec poate fi configurat pentru
două moduri distincte: modul tunel şi modul transport. În modul tunel, IPSec încapsulează
pachetele IPv4 în cadre IP securizate, pentru transferul informaţiei, între două sisteme
53
firewall, de exemplu. În modul transport, informaţia este încapsulată altfel încât ea poate fi
securizată între punctele terminale ale conexiunii, deci "ambalajul" nu ascunde informaţia de
rutare cap-la-cap. Modul tunel este cea mai sigură metodă de securizare, însă creşte gradul de
încărcare a sesiunii de comunicaţie, prin mărirea dimensiunilor pachetelor.
Controlul securităţii se poate face la oricare dintre cele patru nivele ale stivei TCP/IP;
datele sunt pregătite pentru transport şi sunt tranzitate de la cel mai înalt la cel mai jos nivel,
adăugându-se treptat noi informaţii. Astfel, nivelele de mai sus nu pot asigura protecţie totală
pentru nivelele de jos pentru că acestea adaugă informaţii după ce s-au aplicat măsurile de
securitate mai sus. Controlul la nivel reţea a devenit foarte utilizat în reţelele de date pentru că
propune o soluţie mai balansată şi are marele avantaj de a priva utilizatorul de implicarea în
configurarea echipamentelor.
La ora actuală există două tipuri de antete ce pot fi ataşate la un pachet IP pentru
realizarea securităţii: Authentification Header şi Encapsulated Security Payload, definite după
cum urmează:
• Authentification Header este folosit pentru a furniza integritatea şi autentificarea
originii pentru orice datagramă IP, fără ca aceste atribute să fie orientate pe conexiune.
Această proprietate este denumită generic "autentificare".
• Encapsulated Security Payload furnizează autentificarea şi criptarea datagramelor IP
folosind algoritmul de criptare stabilit de către utilizator. În autentificarea ESP, sumarul de
mesaj este inserat la sfîrşitul pachetului (în timp ce în AH, sumarul se află în interiorul
cîmpului de autentificare).
Standardul IPSec stabileşte că înainte de orice transfer de date trebuie negociată o
asociere de securitate (Security Association - SA) între cele două noduri VPN (de tip gateway
sau client), care să conţine toate informaţiile necesare pentru execuţia diferitelor servicii de
securitate pe reţea, cum sunt serviciile corespunzătoare nivelului IP (autentificarea antetului şi
încapsularea datelor), serviciile nivelurilor de transport sau aplicaţie, precum şi autoprotecţia
traficului de date din negociere.
IPSec poate fi privit ca un nivel intermediar sub stiva TCP/IP. Acest nivel este
controlat de o politică de securitate pe fiecare maşină şi de o asociere de securitate negociată
între emiţător şi receptor. Politica constă într-un set de filtre şi un set de profile de securitate
asociate. Dacă un pachet are adresa, protocolul şi numărul de port corespunzătoare unui filtru,
atunci pachetul este tratat conform profilului de securitate asociat.
În afara protocoalelor de securitate prezentate anterior, IPSec mai conţine şi protocolul
Internet Key Exchange (IKE). IPSec foloseşte IKE pentru a negocia setările de conexiune
54
IPsec, pentru a autentifica vecinii unul cu celălalt, pentru a defini parametrii IPSec pentru
conexiuni private, pentru a negocia cheile secrete şi pentru a administra, îmbunătăţi şi şterge
canalele de comunicaţie IPSec.
3.3.1 Protocolul AH
Authentification Header (unul dintre protocalele de securitate IPSec) ofera siguranta
integritatii datelor şi autentificarii utilizatorilor. In mod pţional se poate oferi protecţia
accesului şi împotriva atacurilor de replicare, iar aceasta nu poate cripta nicio porţiune din
pachet. În versiunea iniţială IPSec, AH şi ESP erau des utilizaţi împreună (ESP nu asigura
autentificarea), dar în cea de-a doua versiune, AH devine mai puţin semnificativ, până la
stadiul îm care unele sisteme nu mai suportă AH. Totuşi, acest protocol este valoros pentru că
poate autentifica porţiuni de pachet pe care ESP nu poate.
AH se prezinta sub forma a două moduri: transport şi tunel. În modul tunel, AH crează
un nou antet IP pentru fiecare pachet iar în modul transport nu. În arhitecturile IPSec care
utilizează o poartă(gateway), sursa şi destinaţia adevărată a pachetelor trebuie să fie
modificate pentru a fi adresa IP a porţii. Modul transport este utilizat în general în
arhitecturile staţie-la-staţie, deoarece aceasta nu poate modifica antetul original IP sau să
creeze un alt antet.
Procesul NAT impreună cu protocolul AH nu poate avea loc. AH protejează întregul
pachet IP, incluzând câmpurile invariante ale antetului (adresele IP sursă şi destinaţie), printr-
un sumar de mesaj pentru a produce un hash cifrat. Receptorul va folosi acest hash pentru a
autentifica pachetul, deci dacă orice câmp din pachetul IP original este modificat,
autentificarea va eşua şi pachetul va fi aruncat.
Procesul de protejare a integrităţii are ca si prim pas este crearea unui hash folosindu-
se de un algoritm de control cifrat, care mai poarta si denumirea de algoritm MAC (cod de
autentificare a mesajului). De cele mai multe ori hash-urile sunt confundate cu cu criptarea.
Algoritmii hash produc o „amprentă” a unei informaţii, astfel încât aceste date vor produce de
fiecare dată aceeaşi valoare. Dacă un singur bit se schimbă, atunci şi amprenta va fi diferită.
Aceşti algoritmi sunt utilizaţi pentru a asigura integritatea prin faptul că ne asigură că datele
nu au fost modificate în tranzit. Verificarea se face prin adăugarea hash-ului datelor trimise iar
la destinaţie se rulează acelaşi algoritm asupra datelor, obţinându-se acelaşi hash (dacă datele
55
nu au fost modificate). Cei mai importanţi algoritmi hash sunt MD5 şi SHA-1. Ambele preiau
la intrare date de lungime arbitrară şi produc la ieşire o amprentă de 128 biţi, respectiv 160.
SHA-1 conţine măsuri adiţionale de securitate, cum ar fi o rundă în plus pentru calularea
valorii.
Pentru a preveni un atac de interceptare a transmisiei se introduce în algoritm şi o
cheie secretă, cunoscută de capetele de tunel. Astfel, valoarea aleatoare procesată (cheia) va
furniza autentificarea mesajului, mecanismul care dă o astfel de integritate se numeşte Cod de
autentificare a mesajului (MAC). Atunci când MAC-urile se utilizează cu algoritmii de tip
hash, va purta numele de HMAC. IPSec foloseşte algoritmi de autenticitate HMAC, care
execută două hash-uri acordate. Ca şi exemplu, cei mai utilizaţi algoritmi sunt HMAC-MD5 şi
HMAC-SHA-1. Un alt algoritm cunoscut MAC este AES Cipher Block Chaining MAC
(AES-XBC-MC-96).
3.3.2 Protocolul ESP
Al doilea protocol de securitate folosit de IPSec este ESP. Începând cu a doua variantă
IPSec, protocolul poate performa autentificarea, pentru protejarea integrităţii, deşi nu şi pentru
antetul IP extrem (cel mai din afară). ESP-ul mai are si o alta optiune si anume aceea de a
oferi posibilitatea de a dezactiva criptarea prin algoritmul Null ESP.
Protocolul ESP se gaseste sub forma a două moduri: tunel şi transport. În primul mod,
ESP realizeaza un antet IP nou pentru fiecare pachet care afişează limitele de tunel ESP, dar
arata atat sursa cat şi destinaţia pachetului. În situaţie de fata se poate realiza criptarea şi
protejarea integrităţii atât a datelor cât şi a antetului original IP al fiecărui pachet. Dacă se
utilizează şi autentificarea, fiecare pachet va avea o secţiune de autentificare ESP la sfârşit. În
modul transport, ESP utilizează antetul original IP, în loc să creeze unul nou. În acest caz,
ESP poate doar să cripteze şi să asigure integritatea doar a anumitor componente ESP şi a
informaţiei utile din pachet, nu şi a antetelor IP.Acest mod este incompatibil cu NAT, pentru
că NAT modifică pachetul TCP şi trebuie să recalculeze suma de verificare pentru verificarea
integrităţii. Pe de altă parte, autentificarea ESP va eşua dacă NAT actualizează suma de
verificare TCP iar dacă NAT nu face actualizarea (de exemplu, dacă informaţia utilă este
criptată), va eşua verificarea TCP. În modul tunel, ESP şi NAT pot funcţiona împreună pentru
56
că adresa originală IP şi informaţia de transport sunt incluse în informaţia utilă. Astfel, NAT
poate avea loc dacă maparea este de tip unu-la-unu.
Tabelul (tabel 3.2) de mai jos prezintă principalele caracteristici ale celor două
moduri:
Mod transport Mod tunel
AH Autentifică unitatea de date IP
și, selectiv, parți ale header-ului
IP și extensiile header-ului
IPv6.
Autentifică întregul pachet
original IP plus, selectiv, parți ale
noului header și extensiile noului
header IPv6.
ESP Criptează unitatea de date IP si
toate extensiile header-ului IPv6
care urmează după header-ul
ESP.
Criptează pachetul IP original
ESP cu autentificare Criptează unitatea de date IP si
toate extensiile header-ului IPv6
care urmează după header-ul
ESP; autentifică unitatea de
date IP.
Criptează pachetul IP original;
autentifică pachetul IP original.
Tabel 3.2 Moduri de utilizare a IP Security
In cazul protocolului ESP se utilizează criptografia simetrică. Totusi, amandoua capete
ale conexiunii IPsec, protejată de ESP, trebuie sa utilizeze aceeaşi cheie pentru criptare şi
decriptare a pachetelor. Algoritmii de criptare recomandati de ESP sunt: AES, DES şi 3DES.
ESP adaugă un antet şi un subsol porţiunii de informaţie a fiecărui pachet. Fiecare
antet ESP conţine două câmpuri:
•SPI - fiecare capăt a fiecărei conexiuni IPsec are o valoare SPI arbitrar aleasă, care
se comportă ca un identificator unic. Destinatarul foloseşte această valoare, adresa IP
destinaţie şi (opţional) tipul protocolului IPSec (în cazul de faţă, ESP), pentru a determina ce
SA este folosită.
• Numărul de secvenţă - fiecărui pachet îi este asignat un număr secvenţial şi doar
pachete dintr-o anumită fereastră sunt acceptate.
57
Informaţia utilă reprezinta următoarea parte a pachetului, formată din Date (criptate)
şi Vectorul de Iniţializare, acesta fiind necriptat. Valoadea acestui vector este diferita în
fiecare pachet, deci dacă două pachete au acelaşi conţinut, vectorul de initializare va cauza
criptarea diferită a acestora.
Partea a treia a unui pachet o constituie informaţia suplimentară de la sfârşit, care
conţine cel puţin două câmpuri (opţional mai poate conţine încă unul).
3.3.3 Protocolul IKEv1 si IKEv2
1) IKEv1
Protocolul IKE are trei obiective principale: să negocieze, să creeze şi să administreze
Asocierile de Securitate (SA). SA face referire la un termen generic pentru un grup de
valori care definesc caracteristicile IPSec şi protecţiile aplicate unei conexiuni; acestea
pot fi create şi manual, folosind valori decise în avans de cele două părţi, dar nu pot fi
reînnoite. O asociere de securitate, mai comun referită ca SA, este un bloc de bază
pentru IPSec. Aceasta reprezintă o intrare în baza de date SA (SABD), care conţine
informaţii despre securitatea negociată între două părţi pentru IKE sau IPSec. Sunt
două tipuri de SA:
• IKE sau ISAKMP SA -sunt folosite pentru traficul de control, cum ar fi negocierea
algoritmilor pentru criptarea traficului IKE şi autentificarea utilizatorilor. Este o singură IKE
SA între participanţi şi de obicei are mai puţin trafic şi o durată de viaţă mai mare decât IPSec
SA.
• IPSec SA - sunt folosite pentru a negocia algoritmii de criptare pentru traficul IP,
bazându-se pe definirea regulilor de stabilire a traficului ce va fi protejat. Pentru că sunt
unidirecţionale, cel puţin două sunt necesare (traficul de intrare şi de ielire)
O problema pe care o ridica IKE este problema cu dispotitivele NAT, care modifică
transparent pachetele de ieşire. Prima problemă se refara la faptul că unele echipamente ar
putea depinde de negocierea IKE făcută de pachetele de intrare trimise de pe portul 500 UDP.
Dacă se introduce un proces NAT, portul pachetului final nu va fi, cu siguranţă, cel aşteptat
deci negocierea nu va începe. Alt eveniment neplăcut apare când IKE include adresele IP ca
58
parte a procesului de autentificare, care depinde de modul IKE folosit. Dacă autentificarea se
bazează pe adresa IP, schimbările făcute de NAT vor cauza eşuarea procesului IKE.
Principala funcţie a protocolului IKE consta in faptul ca ambele tipuri de SA sunt
stabilite între participanţii IPSec folosind protocolul IKE. Acest protovol operează în două
faze pentru a stabili aceste asociaţii de securitate:
Prima faza este schimbul în prima etapă, faza in care se stabilesc chei pentru
sesiunea respectivă si asigurarea autentificarii reciproce a celor două capete IKE. Această
fază creează o ISAKMP SA (asociere de securitate pentru IKE) care odată ce a fost stabilită,
toate comunicaţiile IKE dintre iniţiator şi cel care răspunde sunt protejate cu criptare şi cu o
verificare a integrităţii prin autentificare. Există o diferenţă între ISAKMP şi IKE care trebuie
prezizata: ISAKMP defineşte cum capetele IPSec comunică, cum realizează schimbul de
mesaje şi starea tranziţiilor prin care trec pentru a stabili conexiunea (mai exact arată scopul
autentificării şi schimbului de informaţii pentru interschimbul de cheie) iar IKE defineşte cum
se realizează schimbul de cheie.
Etapa unu (cunoscută şi ca IKE SA) reprezintă momentul în care cele două capete
IPSec negociază cu succes un canal sigur prin care pot fi stabilite şi transmise apoi SA-urile
IPSec. Astfel, se garantează criptarea bidirecţională şi autentificarea pentru alte schimburi
IKE. Această fază poate fi realizată în două moduri: principal şi agresiv.
Modul principal trateaza stabilirea unei IKE SA prin trei perechi de mesaje. În prima
pereche de mesaje, fiecare capăt recomanda parametrii folosiţi de SA. Patru parametrii dintre
aceştia sunt obligatorii şi alcătuiesc aşa numita suită de protecţie:
• Algoritmul de criptare - specifică algoritmul care criptează datele: DES, 3DES,
AES.
• Algoritmul de protecţie a integrităţii -indică ce algoritmi de tip hash de pot folosi:
HMAC-MD5 sau HMAC-SHA-1
• Metoda de autentificare - sunt 3 posibilităţi de autentificare a utilizatorilor (chei
prestabilite, semnături digitale, criptare cu cheie publică)
• DH Group - este folosit pentru generarea unui secret comun într-o manieră sigură,
astfel încât un observator a etapei 1 IKE să nu îl poată determina.
A doua pereche de mesaje execută un schimb de cheie prin DH, folosind parametrii
negociaţi la primul pas. Conţinutul acestei perechi de mesaje variază în funcţie de metoda de
autentificare. În cea de-a treia pereche de mesaje, fiecare capăt este autentificat (şi aici
contează metoda de autentificare folosită). În cazul cheilor prestabilite (figura 3.4),
59
rezumatele de autentificare se schimbă acum iar în cazul celorlalte două posibilităţi acesta
sunt folosite (au fost schimbate în timpul perechii de mesaje anterioare).
Metoda mai rapidă a modului principal este oferită de modul agresiv. Se negociază
stabilirea IKE SA prin trei mesaje în locul celor trei perechi din modul principal. Primele
două mesaje negociază parametrii IKE SA şi realizează un schimb de cheie; al doilea şi al
treilea mesaj autentifică utilizatorii.
În primul mesaj prima staţie trimite trei informatii: toţi parametrii suitei de protecţie ,
porţiunea sa de schimb de cheie DH care este un număr folosit o singură dată (nonce) şi
identitatea sa. În al doilea mesaj, cealaltă staţie trimite patru informatii: parametrii suitei sale
de protecţie, proţiunea sa de DH, care este un numărul folosit o singură dată (nonce),
identitatea sa şi informaţia utilă de autentificare. Al treilea mesaj este utilizat pentru ca prima
staţie să trimită propria sa informaţie de autentificare.
Figura 3.4 Mecanismul de criptarea a datelor IPSec utilizând chei publice şi chei private.
A doua faza se refera la schimbul în etapa a doua care furnizează negocierea şi
stabilirea asociaţiilor de securitate IPSec (IPSec SA) folosing ESP sau AH pentru protejarea
traficului IP. Scopul celei de-a doua etape este stabilirea asocierilor de securitate pentru o
60
conexiune IPsec actuală (IPSec SA). O conexiune IPSec între două sisteme necesită două
IPSec SA, pentru că acestea sunt unidirecţionale. Aceste perechi sunt create prin intermediul
unui singur mod, modul rapid, care foloseşte trei mesaje pentru a stabili SA. Comunicaţiile
din acest mod sunt criptate prin metoda spacificată în IKE SA-ul stabilit în faza 1.
În primul mesaj, prima staţie trimite trei informatii: cheile, numerele unice şi
sugestiile de parametri IPSec SA. Numerele unice se folosesc ca si măsură împotriva
atacurilor de replicare.
În al doilea mesaj, cealaltă staţie trimite cheile, numerele şi selecţiile parametrilor
IPSec SA şi în plus procedurile hash de autentificare.
Al treilea mesaj este folosit doar pentru ca prima staţie să trimită procedura hash
pentru autentificare. După ce a doua staţie validează al treilea mesaj, se poate spune că s-a
stabilit o asocieere de securitate IPSec, cele active fiind reţinute într-o bază de date (SADB).
IKE SA şi IPSec SA au o limită de viaţă, care nu poate fi mărită după ce SA a fost
creată. Dacă o SA este aproape de sfârşitul duratei de viaţă, capetele ar trebui să creeze una
nouă, printr-un proces de restabilire a cheii. Durata de viaţă a unei SA spune cât de des ar
trebui fiecare SA să fie restabilită, bazându-se fie pe un anumit timp scurs fie pe cantitatea de
trafic din reţea.
In mod asemanator cu modelu TCP/IP, IPSec are o multitudine de componente
implicate şi caracterizează un set complet de interacţiuni de-a lungul acestora. Structura
protocolului asigură avantajul modularizării: când are loc o schimbare a unei componente,
celelalte nu se schimbă implicit. Dezavantajul modularizării este că greu de explicat fără
scheme, pur şi simplu pentru că multe componente trebuie să lucreze împreună pentru ca
protocolul să opereze.
Arhitectura IPSec presupune:
Nucleul (IPSec driver or core engine) - această componentă realizează criptarea,
decriptarea, autentificarea şi verificarea semnăturii; de asemenea este responsabil pentru
coordonarea efortului altor componente IPSec pentru a asigura că poate îndeplini sarcinile.
Agentul de politică (IPSec Policy Agent) - este funcşia cognitivă a protocolului şi
examinează setările IPSec ale sistemului specificând ce trafic ar trebui protejat; nu protejeajă
datele ci doar avertizeată ca un anumit trafic ar trebui protejat.
ISAKMP - este negociatorul setărilor de securitate ale Internetului; atunci când două
staţii vor să comunice, ISAKMP negociază grupul desetări folosite pentru criptare şi
autentificare.
61
IKE (Internet Key Exchange) - pentru că IPSecul foloseşte chei secrete împărţite,
trebuie să fie un mecanism care să conecteze echipamentele şi să se pună de acord asupra unei
chei; acesta depinde de setările furnizate de ISAKMP. In figura 3.4 este prezentata
Interacţiunea componentelor:
Figura 3.4 Interacţiunea IPSec
In momentul pornirii unui echipament se aplică politica locală sau de grup, dar se
poate aplica periodic în timp ce activează în reţea. Orice politică IPSec este preluată de
angentul de politică IPSec. Atunci când există mai multe reguli stabilite, agentul
monitorizează comuniaţia cu protocolul TCP/IP din toate aplicaţiile, caută traficul care se
potriveşte acestora, adică acela care trebuie protejat.
Agentul de politică îi va comunica dispozitivului IPSec tipul de protecţie de care este
nevoie in momentul in care traficul de reţea (care necesită protecţie) este identificat. Apoi,
urmand ca echipamentul IPSec sa determine dacă există o Asociere de Securitate care poate fi
folosită pentru a proteja traficul; dacă nicio SA nu există, funcţia IKE va fi contactată; aceasta
va folosi ISAKMP pentru a negocia autentificarea reciprocă şi pentru a stabilit cheia. Apoi,
IKE va furniza o SA activă către IPSec driver, care va proteja traficul. Astfel, traficul protejat
va fi returnat către protocolul TCP/IP pentru procesare.
Cea mai importanta caracteristica referitoare la IPSec este faptul ca acesta este un
standard Internet acceptat şi că în momentul actual un număr din ce in ce mai de utilizatori şi
furnizori de servicii cooperează pentru a furniza o gamă completă de soluţii IPSec. Folosind
capacitatea de tunelare a IPSec, se pot implementa reţele virtuale private.
62
2) IKEv2
IKEv2 (descris in Anexa A din RFC 4306) vine cu urmatoarele imbunatatiri:
• NAT traversal: încapsulare lui IKE și ESP în portul UDP 4500 permite acestor
protocoale să treacă printr-un dispozitiv sau firewall ce efectueaza NAT.
• Schimbul de mesaj simplu: IKEv2 are un mecanism de schimb inițial de patru mesaj
în timp ce IKE furniza opt mecanisme distincte de schimb initiale, fiecare dintre care avand
avantaje și dezavantaje.
• Mecanisme criptografice mai puține: IKEv2 utilizează mecanisme criptografice
pentru a proteja pachetele sale, care sunt foarte asemănătoare cu ceea folosite de IPsec pentru
încapsularea incarcaturii de securitate (ESP) pentru a proteja pachetele IPsec. Acest lucru a
dus la implementari simple si certificari de criterii comune, care necesită fiecare implementare
criptografică a fi validate separat.
• Fiabilitate și managementul starii: IKEv2 utilizează numere de secvență și confirmari
pentru a oferi fiabilitate și pentru a mandata unele erori la procesare. IKE ar putea ajunge într-
o stare moarta din cauza lipsei de măsuri de fiabilitate, în situatia în care ambele părți se
așteptau ca cealaltă să inițieze o acțiune .
• Rezistența la atacul de tip DoS (Denial of Service – Refuzul Serviciului) : IKEv2 nu
efectuează procesarea până când nu determină dacă există de fapt un solicitant. Aceasta
tactica a rezolvat problemele cu atacurile DoS suferite de IKE care efectua o mulțime de
prelucrari criptografice din locații fantoma
3.4 Principalele avantaje ale reţelelor virtuale private
Reducerea costurilor - furnizorii de VPN pot înşira o mulţime de beneficii pe care le
aduce tehnologia, multe apărând odată cu dezvoltarea ei. Poate cel mai puternic argument
folosit este reducerea costurilor. Reţelele virtuale private sunt mult mai ieftine decât reţelele
private proprietare ale companiilor; se reduc costurile de operare a reţelei (linii închiriate,
echipamente, administratori reţea). Dacă folosiţi Internetul pentru a distribui servicii de reţea
la mare distanţă, atunci puteţi evita achiziţia de linii închiriate, extrem de scumpe, între
reprezentanţe şi firmă, dar şi costurile convorbirilor interurbane pe modemuri dial-up sau
ISDN. Reprezentanţa va trebui să se conecteze numai local, la un provider Internet, pentru a
ajunge în reţeaua firmei mamă. Economii se fac şi relativ la lipsa necesităţii investiţiilor în
63
echipament WAN adiţional, singura achiziţie fiind legată de îmbunătăţirea capacităţilor de
conectare la Internet a serverului.
Integrare, simplitate, uşor de implementat - reţeaua virtuală privată poate fi imediat
realizată peste conexiunea deja existentă la Internet, nefiind necesară o infrastructură separată.
Se simplifică topologia reţelei companiei private. De asemenea, prin aceeaşi conexiune se pot
integra mai multe aplicaţii: transfer de date, Voice over IP, Videoconferinţe.
Uşurinţa administrării - in cazul unei interconectări complete a sucursalelor unei
firme, liniile private pot deveni un coşmar. Trebuie instalate şi administrate linii între fiecare
două sucursale. Folosind Internetul, nu trebuie decât să asiguri fiecarei sucursale acces la
Internet. În cazul accesului utilizatorilor de la distanţă, problemele de administrare sunt
transferate complet ISP.
Ignorarea învechirii morale a tehnologiei – riscul învechirii morale a tehnologiei se
transferă de la corporaţie la ISP. Accesul la distanţă prin Internet permite utilizatorilor să
folosească tehnologii de acces variate, inclusiv ISDN şi modemuri. Cum apar tehnologii de
acces de viteză mare, cum ar fi ASDL, ATM, organizaţia va putea profita de ele fără a face
investiţii în echipamente. ISP suportă majoritatea costurilor schimbării tehnologiilor.
Mobilitate - angajaţii mobili precum şi partenerii de afaceri (distribuitori sau
furnizori) se pot conecta la reţeaua companiei într-un mod sigur, indiferent de locul în care se
află.
Scalabilitate - afacerea companiei creşte, deci apare o nevoie permanentă de angajaţi
mobili şi conexiuni securizate cu partenerii strategici si distribuitorii. Pe măsură ce cererea de
acces la distanţă creşte, organizaţia nu va avea nevoie să cumpere şi să instaleze echipamente
de comunicaţie noi. E nevoie doar de comandarea unui nou cont de acces la un ISP.
Securitate - Reţeaua virtuală privată asigură un nivel ridicat de securitate a
informaţiilor transmise prin utilizarea unor protocoale avansate de autentificare şi criptare.
Informaţiile care circulă prin VPN sunt protejate prin diferite tehnologii de securitate
(criptare, autentificare, IPSec). Nu trebuie să vă temeţi că datele traficate prin VPN pot fi
compromise.
Conectivitate globală – pe măsură ce economia continuă să se globalizeze, reţelele de
firmă trebuie să crească în afara graniţelor statale. Infrastructura cu fibră optică pentru linii
private de calitate nu este disponibilă în multe ţări. Internetul, pe de altă parte, este ideal
pentru conectivitate internaţională. Protocolul Internetului (IP) poate rula pe orice
infrastructură de comunicaţie. [13]
64
3.5 “Best practices” in retelele private virtuale
Securitatea VPN se bazează foarte mult pe autentificare și criptare. Aceasta este
considerata cele mai bune practici pentru a utiliza întotdeauna cea mai bună autentificare
posibila, în cele mai multe cazuri aceasta fiind L2TP peste IPSec cu utilizarea de carduri
inteligente. Din nou, dacă solutia cardurilor inteligente nu sunt fezabile, atunci ar trebui să fie
utilizate certificatele de autentificare.
Adresele IP ar trebui să fie întotdeauna atribuite de catre serverul VPN, dacă este
posibil.
Trafic trebuie să fie întotdeauna monitorizat în timp real. Toate computerele care
utilizează VPN ar trebui să rămână întotdeauna la curent cu actualizările critice și definițiile
antivirus.
Și toti utilizatorii ar trebui să fie educați în ceea ce priveste activitățile ce sunt permise
a fi realizate pe computerele client, inclusiv ceea ce programe pot fi instalate.
65
4. METODE DE CONTROL AL ACCESULUI LA SERVICII
PRIN SCHIMB DE CHEI DE ACCES
4.1 SSL și TLS
Protocoale criptografice care asigură posibilitatea realizării de comunicații sigure prin
Internet pentru web, e-mail, Internet fax și pentru alte transferuri de date sunt Transport Layer
Security (TLS) și predecesorul său, Secure Sockets Layer (SSL). Intre SSL 3.0 și TLS 1.0
există anumite deosebiri, dar în esență protocolul rămane același. Protocolul a fost creat inițial
de Netscape Communications Corporation ca parte integrantă a browserului său web (pe
partea de client) și a web server-ului. Ulterior a fost acceptat și de Microsoft și alți
dezvoltatori de aplicați client/server pentru Internet. A devenit un standard de facto pentru
Internet iar mai apoi prin crearea TLS a devenit un standard Internet pentru securitatea web
dezvoltat de IETF (Internet Engineering Task Force). Modul în care poate fi folosit protocol
SSL/TLS ca și tehnologie de securitate de bază pentru protecția tranzacțiilor online este
prezentat în lucrarea.
Protocolul TLS permite aplicațiilor client/sever să comunice, dar fiind împiedicată
ascultarea liniilor, modificarea datelor și falsificarea mesajelor. TLS oferă autentificare la
capetele unei comunicații și confidențialitatea comunicațiilor prin Internet. De cele mai multe
ori, doar serverul se autentifică - clientul rămanand neautentificat; astfel utilizatorul final (o
persoană sau o aplicație cum ar fi un web browser) poate fi sigur că la capătul celălalt al liniei
de comunicație este cine trebuie. In cazul autentificării la ambele capete (autentificare
mutuală) ambele entități implicate în procesul de comunicare primesc asigurări în legătura cu
entitatea cu care comunică. Pentru a se face posibila autentificarea căii mutuale trebuie
implementata o infrastructura cu chei publice (PKI) la clienți.
TLS lucreaza sub nivelurile protcoalelor de aplicație cum este HTTP, FTP, SMTP și
NNTP si deasupra protocoalelor de transport TCP și UDP. Poate fi folosit cu orice protocol
care folosește conexiuni sigure (cum este TCP), dar cel mai des este folosit împreună cu
HTTP pentru a forma HTTPS. HTTPS este folosit pentru a securiza paginile World Wide
Web din aplicații cum ar fi cele de comerț electronic. TLS este folosit de asemenea și în
SMTP așa cum este specificat în RFC 3207. Aceste aplicații folosesc certificate pentru chei
publice pentru a verifica identitatea entităților implicate în comunicație.
66
TLS implică trei faze importante:
• Criptarea traficului cu metode simetrice.
•Negociere între entități pentru funcționarea algoritmului;
• Schimbul de chei bazat pe criptare cu chei publice și autentificare pe bază de
certificat;
4.2 Arhitectura TLS
Protocolul TLS Handshake și protocolul TLS Record formeaza TLS, aceste doua
protocoale sunt suprapuse, primul fiind deasupra ultimului.
Protocolul TLS Record furnizează încapsularea sigură a canalului de comunicație
pentru a fi folosit de protocoalele de le nivelurile superioare. Acest protocol realizează o
conexiune sigură și rulează deasupra nivelurilor TCP și IP. Protocolul ia mesajele ce trebuie
transmise, fragmentează datele în blocuri ce pot fi gestionate ușor, opțional poate comprima
datele, aplică o funcție MAC (de ex. HMAC) pentru integritatea datelor, criptează datele
folosind un algoritm simetric (pentru confidențialitate) și transmite rezultatul la destinație.
Cand se ajunge la destinație, datele sunt decriptate, se verifică MAC-ul, opțional se face
decompresia, se reasamblează blocurile de date și sunt transmise la procesele de aplicație de
la nivelul superior.
Pentru criptarea simetrică și pentru HMAC , cheile sunt generate în mod unic pentru
fiecare sesiune și sunt bazate pe o informație secretă negociată de protocolul TLS Handshake.
Referitor la protocolul TLS Handshake, acesta permite serverului și clientului să se
autentifice unul față de altul, negociază algoritmii criptografici ce vor fi folosiți, stabilește
cheile criptografice și în final stabilește o conexiune sigură pentru protocolul TLS Record care
realizează serviciile de comunicație sigură pentru protocoalele de aplicație de la nivelul
superior.
67
4.2.1 Protocolul de Handshake TLS
Protocolul de autentificare în TLS poarta denumirea de Protocolul Handshake. Aceste
două entități implicate executata operațiile urmatoare:
•Schimbul de mesaje hello pentru stabilirea algoritmilor, schimbul de valori aleatoare,
verificarea faptului că nu este vorba de reluarea unei sesiuni anterioare.
• Schimbul parametrilor criptografici necesari pentru a permite clientului și serverului
să stabilească un secret (numit "secret master").
• Schimbul de certificate și informație criptografică pentru a permite clientului și
serverului să se autentifice unul față de altul.
• Generarea secretelor de sesiune din secretul master prin schimbul de valori aleatoare.
• Verificarea faptului că cealaltă entitate a calculat aceeași parametri de securitate
pentru a confirma faptul că handshake-ul s-a încheiat fără să fi intervenit un atacator.
• Canalul sigur stabilit este transmis protocolului TLS Record pentru a procesa
comunicațiile de la nivelul de aplicație. Aceste operații sunt realizate prin schimbul a patru
mesaje descrise mai jos.
4.3 Arhitectura SSL
Protocolul SSL rulează deasupra protocolului TCP/IP și sub protocoalele de nivel înalt
ca și HTTP si IMAP. El folosește TCP/IP pentru protocoalele de nivel înalt și după ce permite
autentificarea unui server de SSL la un client de SSL si autentificarea clientului la server,
stabilește o conexiune encriptată intre cele doua mașini. Aceste capabilități reușesc să resolve
probleme fundamentale ale comunicațiilor Internet și al altor rețele TCP/IP :
Autentificarea serverului SSL: permite unui utilizator să confirme identitatea
serverului. Programulul de verificare al clientului foloșeste tehnici standard de criptografiere
prin chei publice, prin care poate verifica dacă certificatul serverul și numarul de identificare
public sunt valide. Aceste autentificari sunt importante daca de exemplu clientul trimite un
numar de card serverului și vrea să verifice identitatea serverului primită ca raspuns.
Autentificarea clientului SSL : permite unui server să confirme identitatea clientului.
Folosind aceleași tehnici ca și cele pentru autentificarea serverului, programulul de verificare
al serverului verifică daca certificatul și numărul de identificare public al clientului sunt
valide.
68
Conexiune encriptata SSL : trebuie ca totalitatea informatiile trimise între client si
server să fie criptate de programul transmițător și decriptate de programul receptor, aceasta
oferind un mare grad de confidențialitate. Confidențialitatea este importantă pentru amandouă
parțile intr-o tranzacție privată. Chiar mai mult, toate datele trimise in timpul unei conexiuni
SSL sunt protejate cu un mecanism de detectare a coruperilor de date care sunt automat
determinate dacă pachetele au fost modificate pe parcursul transportului.
Protocolul SSL contine două subprotocoale : protocolul SSL de înregistrare și
protocolul SSL de handshake. Protocolul de înregistrare definește formatul folosit pentru
transmiterea datelor. Protocolul de handshake implică folosirea protocolului de ănregistrare
pentru a schimba o serie de mesaje intre serverul SSL și clientul SSL prima data cand
stabilesc o conexiune SSL. Acest schimb de mesaje este planuit pentru a facilita urmatoarele
actiuni :
• Autentifică serverul pentru client
• Permite clientului și serverului sa selecteze algoritmii de criptare, de cifrare,
amandouă metodele fiind disponibile
• Opțional autentifică clientul la server
• Folosește tehnici de criptare prin chei publice pentru a proteja secretele
• Stabilește o conexiune SSL criptată.
4.3.1 Criptări folosite de SSL
Protocolul SSL poate suporta o o gama larga de algoritmi de criptare sau cifruri,
folosite in operații cum ar fi : autentificarea serverului la client si vice-versa, transmiterea
certificatelor, stabilirea cheilor pentru sesiuni. Clienții și serverele pot avea suite de cifruri sau
seturi de cifruri. Aceasta depinzând de factori cum ar fi versiunea de SSL suportată, politicile
companiilor privind criptarea și restrictiile guvernamentale asupra programelor de criptare
folosite de SSL. Una din importantele functii este faptul ca protocolul de handshake
determină felul in care serverul și clientul stabilesc suita de cifruri pe care le vor folosi pentru
autentificare, pentru transmiterea certificatelor. Mai jos se observa mai mulți algoritmi de
criptare:
• DES - un algoritm de criptare folosit de guvernul SUA.
• DSA - parte din autentificarea digitală standard folosita de guvernul SUA.
• KEA - un algoritm folosit pentru interschimbarea.
69
• MD4 - algoritm dezvoltat de Rivest.
• RC2 si RC4 - cifru de criptare Rivest dezvoltate pentru "RSA Data Security".
• RSA - algoritm de chei publice folosit pentru criptare și autentificare dezvoltatat de
Rivest, Shamir si Adleman.
• RSA key exchange - algoritm de interschimbare de chei pentru SSL bazat pe
algoritmul RSA.
• SHA-1 - functie de hashing folosită de guvernul SUA
• Triple DES - DES aplicat de 3 ori.
In algoritmii ca KEA si RSA, interschimbarea de chei guvernează calea prin care
serverul și clientul determină cheile simetrice pe care le vor folosi dealungul unei sesiuni SSL.
Cele mai folosite suite de cifruri SSL folosesc RSA. Protocoalele SSL 2.0 si 3.0 suportă seturi
de suite de cifruri. Administratorii pot determina care din suitele de cifruri se folosesc și care
nu pentru client și server. In momentul in care un server și client fac schimb de informațiipe
durata protocolului handshake, se remarca de ambele parțile cea mai bună suită de cifruri pe
care o au in comun și o vor folosi pentru sesiune SSL. Deciziile privind care din suita de
cifruri depind de sensibilitatea datelor implicate, de viteza cifrului și de aplicabilitatea
regulilor de export. Dupa legile guvernului SUA, se restrictionează criptarea pe mai mult de
40 biti daca se comunica cu cineva din afara SUA (daca serverul implicat are un ID special
atunci se inlatura restrictia). Pentru a servi o cat mai mare arie de utilizatori, administratorii ar
putea să folosească cât mai multe suite de cifruri. Cand un client sau server din SUA vrea să
negocieze cu un client sau server tot din SUA vor folosi cel mai bun cifru, iar cand un
client/server din SUA va negocia cu un client/server din afara SUA vor folosi acele cifruri
care sunt permise de legile SUA. Pentru ca cifrurile pe 40 de biti pot fi sparte relativ usor,
administratorii care sunt ingrijorați de spargeri si cei care sunt dintr-o tara care permite
folosirea legală de cifruri puternice nu vor folosi cifrurile pe 40 de biti.
4.3.1.1 Suite de cifruri cu chei RSA
In tabelul de mai jos (Tabelul 4.1) sunt evidentiate suitele de cifruri suportate de SSL
si cele care utilizeaza algoritmul RSA. Tabelul contine cifruri care sunt suportate de SSL 2.0
si SSL 3.0, aceasta doar daca nu sunt indicatii privind contrariul. Cifrurile sunt aranjate in
ordine descrescatoare, de la cele mai tari la cele mai slabe.
70
Puterea cifrului si recomandarile sale Suite de cifruri
Cele mai tari cifruri : premise doar in SUA.
Este folosit de banci si instituții care folosesc
date importante.
Triple DES, care sunt criptate pe 168 biti, cu
mesaje de autentificare SHA 1. Este cel mai
puternic cifru suportat de SSL, dar nu este asa
de rapid ca RC4. Triple DES foloseste de 3
ori mai mult timp decat un simplu DES.
Pentru ca are o marime așa de mare (168
biti), sunt aproximativ 3.7 * 1040.
Cifruri puternice : premise doar pe teritoriul
SUA. Aceste cifruri suportă criptare destul de
bună pentru majoritatea afacerilor și nevoilor
guvernamentale.
RC4 pe 128 de biți si mesaj de autentificare
MD4. Sunt dupa Triple DES cele mai
puternice criptari. Permit aproximativ 3.4 *
1038 Sunt foarte dificil de spart. RC4 sunt
cele mai rapide dintre cifrurile suportate de
SSL.
RC2 pe 128 de biți si cu mesaj de
autentificare MD4. Sunt ca si RC4, dar sunt
mai lente putin.
DES pe 46 de biți si cu mesaj de autentificare
SHA 1. Este mai puternic decat criptarea pe
40 de biți dar nu asa de puternic ca cel pe 128
de biti. Datorita celor 46 de biti, DES are
aproximativ 7.2 * 1016 SSL 2.0 foloseste
MD4 in loc de SHA 1 pentru autentificarea
mesajelor.
Suitele de cifruri exportabile : aceste cifruri
nu sunt asa de bune ca cele de mai sus, dar
pot fi exportate in majoritatea țărilor (a se
nota ca Franta le permite pentru SSL, dar nu
și pentru S/MIME).
RC4 pe 40 de biți și mesaj de autentificare
MD4. RC4 pe 40 de biți permite aproximativ
1.1 * 1012 chei posibile. RC4 sunt cele mai
rapide cifruri dintre cele suportate.
RC2 pe 40 de biți și mesaj de autentificare
MD4. RC2 permite la fel de multe chei ca și
RC4, dar este mai puțin rapid.
Cele mai slabe cifruri. Aceste suite de cifruri
71
prevad autentificare si detectie de coruperi de
date, dar nu au criptare. Administratorii de
servere trebuie sa fie precauți în a folosi
aceste cifruri pentru ca datele nu sunt criptate
și pt fi accesate de hackeri.
Fără criptare si cu mesaj de autentificare
MD4. Aceste cifruri folosesc MD4 pentru a
detecta coruperea datelor. Se foloseste cand
serverul și clientul nu au nici un cifru comun.
Tabelul 4.1 Suitele de cifruri suportate de SSL
4.3.2 Protocolul SSL de handshake
O combinație de criptare cu chei publice și chei simetrice se foloseste pentru
Protocolul SSL . fiecare dintre cele doua criptari are avantaje si dezavantaje, astefel criptarea
cu chei publice are tehnici mai bune de autentificare, iar criptarea cu chei simetrice este mai
rapidă decât criptarea cu chei publice. Sesiune SSL mereu porneste cu un schimb de mesaje
numit SSL "handshake". Protocolul "handshake" permite serverului să se autentifice clientului
folosind tehnici cu chei publice, apoi permite clientului și serverului sa coopereze la creearea
unor chei simetrice folosite la criptare rapidă, decriptare și detectie de erori in timpul sesiunii
care urmeaza. In mod optional, protocolul de "handshake" ii lasa optiunea clientului să se
autentifice la server. Mai jos se pot observa pașii derularii unui protocol "handshake" :
1. Clientul trimite serverului numarul versiunii de SSL, setările cifrului, date generate
aleator și alte informații pe care serverul le folosește pentru a comunica cu clientul folosind
SSL.
2. Serverul trimite clientului numărul versiunii de SSL, setările cifrului, date generate
aleator și alte informații pe care clientul le folosește pentru a comunica cu serverul folosind
SSL. Deasemenea serverul iși trimite certificatul și dacă clientul cere serverului o resursă care
are nevoie de autentificarea clientului, atunci cere și certificatul clientului.
3. Clientul folosește unele informații trimise de server pentru autentificarea serverului
(vezi mai jos "Autentificarea serverului"). Daca serverul nu poate fi autentificat, utilizatorul
este avertizat de problema și informat că o conexiune criptată și autentificată nu poate fi
stabilită. Dacă serverul poate fi autentificat cu success atunci se trece la pasul
4. Folosind toate datele generate in protocolul "handshake" până acum, clientul (cu
cooperarea serverului, depinzând de cifrul folosit) creează ceea ce este numit "premaster
secret" pentru sesiune, il criptează cu cheia publică a serverului (obținuta de pe certificatul
serverului, trimis la pasul 2), și trimite "premaster secret" spre server .
72
5. Dacă serverul a cerut autentificarea clientului (pas optional in "handshake"), clientul
deasemenea iși pune semnatura pe o data, care este unică in acest "handshake" și este știută și
de server. In acest caz clientul trimite data semnata si certificatul sau spre server impreuna cu
"premaster secret"-ul criptat.
6. Dacă serverul a cerut autentificarea clientului, serverul incearcă să autentifice
clientul (vezi "Autentificarea Clientului" mai jos). Dacă clentul nu poate fi autentificat,
sesiunea se termină. Dacă clientul poate fi autentificat cu success, serverul iși folosește cheia
privată pentru decriptarea "premaster secret"-ului, apoi dupa o serie de pași (pe care clientul îi
parcurge deasemenea, pornind de la același "premaster secret") generează "master secret"-ul.
7. Clientul și serverul folosesc "master secret"-ul pentru a genera "session keys", care
sunt chei simetrice folosite la criptarea si decriptarea informatiilor schimbate in timpul
sesiunii SSL și pentru a verifica integritatea acestora, care inseamnă a detecta orice schimbări
in date provenite in timpul transmiterii acestora.
8. Clientul trimite un mesaj serverului informandu-l ca in viitor mesajele primite vor fi
criptate cu cheia sesiunii (session key). Apoi trimite separat, un mesaj criptat care indica
terminarea porțiunii de "handshake" a clientului.
9. Serverul trimite un mesaj clientului informandu-l ca in viitor mesajele primite vor fi
criptate cu cheia sesiunii (session key). Apoi trimite separat, un mesaj criptat care indică
terminarea porțiunii de "handshake" a serverului.
10. Protocolul "handshake" este acum complet si sesiune SSL a inceput. Clientul și
serverul folosesc aceleași "session keys" pentru a cripta și decripta datele ce și le vor trimite
unul altuia si pentru a verifica integritatea lor.
Dacă doresti sa verifici dacă certificatul clientului este prezent in directorul LDAP la
locul rezervat lui, o poti realiza inainte de a continua cu sesiunea, configurand serverele
Netscape. Aceasta opțiune de configurare lasa o cale de a te asigura că certificatul clientlui nu
a fost revocat. Este important faptul că autentificarea clientului și serverului implică criptarea
unor parți din date cu o cheie dintr-o pereche de chei private și decriptarea folosind cealalta
cheie.
In cazul autentificarii serverului, clientul criptează "premaster secret"-ul cu cheia
publică a serverului. Doar cheia privată corespunzatoare poate decripta corect secretul, prin
aceasta clientul având siguranța ca identitatea asociată cu cheia publică este defapt serverul cu
care clientul este conectat. Altfel, serverul nu poate decripta "premaster secret"-ul si nu poate
genera chei simetrice necesare pentru sesiune, și sesiunea se va termina.
73
In cazul autentificării clientului, clientul cripteaza date aleatoare cu cheia privată si
crează semnatura digitala. Cheia publica din certificatul clientului poate valida corect
semnatura digitala doar daca cheia private corespunzatoare a fost folosită. Altfel, serverul nu
poate valida semnatura digitală si sesiunea se termină.
4.3.2.1Autentificarea serverului
Programul client SSL are nevoie mereu de autentificarea serverului, sau validarea
criptografica realizataa de catre client asupre identității serverului. Pentru a autentifica
identitatea acelui pe care certificatul afirma ca il reprezintă, clientul folosește certificatul de la
Pasul 3. Legatura dintre o cheie publică și serverul identificat de certificatul care conține cheia
publică se poate autentifica in moemntul in care un client SSL primeste un raspuns de "da" la
urmatoarele 4 intrebări, prezentate in figura 4.1. Chiar daca cele 4 intrebări nu sunt parte
tehnica a protocolului SSL, este de datoria clientului să poată să realizeze acești pași, care pot
asigura de identitatea serverului și pot ajuta impotriva atacurilor cunoscute.
Figura 4.1 Autentificarea legaturăturii dintre o cheie publica și server
74
Un client SSL trece prin urmatorii pași pentru a autentifica identitatea serverului :
1. Este data de astazi in perioada de valabilitate? Clientul verifică perioada de
valabilitate a certificatului serverului. Dacă data curentă este in afara perioadei de valabilitate
procesul de autentificare se oprește aici. Dacă data este bună clientul merge la Pasul 2.
2. Este CA-ul inițiat un CA valid? Fiecare program client SSL contine o listă de CA-
uri de incredere. Lista determină ce certificate de server vor fi acceptate. Daca DN (numele
distins - denumire acceptată) al CA-ului inițiat se potrivește cu DN-ul unui CA de pe CA de
incredere, atunic raspunsul este "da" și se trece la Pasul 3. Daca CA-ul nu este pe listă atunci
serverul nu va fi acceptat doar daca clientul poate verifica un certificate care se "inrudește" cu
unul de lista de incredere.
3. Cheia publică initiata validează semnatura digitala a initiatorului? Clientul folosește
cheia publică de pe certificatul de autentificare CA (aflat la pasul 2) pentru a valida semnatura
digitală a CA-ului. Daca informația de pe certificatul serverului a fost schimbată de când a
fost semnată de CA sau daca cheia publică de pe certificate nu corespunde cu cheia private
folosită de CA să semneze certificatul serverului, clientul nu va autentifica identitatea
serverului. Dacă semnatura digitală CA poate fi validată, serverul recunoaște certificatul
clientului ca o validă "scrisoare de introducere" de la acel CA și trece la pașii următori. Din
acest punct,clientul a determinat ca certificatul serverului este valid. Este de responsabilitatea
cientului să treacă la Pasul 4 înaintea Pasului 5.
4. Coicide numele domeniului specificat in certificat cu numele domeniului real al
serverului? Acest pas confirmă ca serverul este cu adevarat localizat la aceeași adresă
specificată de numele domeniului din certificatul lui. Chiar daca Pasul 4 nu este o parte
tehnică a protocolului SSL, este singura protecție impotriva atacului de securitate "man in the
middle attack". Clientul trebuie să refuze să autentifice serverul sau să stabilească o conexiune
dacă domeniul serverului nu se potrivește. Daca numele actual al domeniului se identifică cu
numele din certificate atunci se trece la Pasul 5.
5. Serverul este autentificat. Clientul a terminat SSL "handshake"-ul. Dacă clientul nu
ajunge la pasul 4 pentru un motiv oarecare, identitatea serverului nu poate fi autentificata, și
utilizatorul va fi anuntat de problemă si informat ca nu se poate stabili o conexiune
autentificata. Dacă serverul dorește autentificare clientlui, serverul va initia "Autentificarea
clientului".
După acesti pași, serverul poate sa iși folosescă cu success cheia privată sa decripteze
"premaster secret"-ul trimis de client la Paul 4 al "handshake". Altfel sesiunea SSL se termină.
75
Aceasta aduce asigurări adiționale ca identitatea asociată cu cheia publica a serverului este a
serverului cu care clientul este conectat.
4.3.2.2 Autentificarea clientului
Configurarea Programuluil server SSL se poate face fie sa ceară autentificarea
clientului, fie sa valideze criptografic identitatea clientului. In momentul in care un server
configurat in acest fel, cere autentificarea clientului, clientul trimite serverului certificatul și o
data semnată digital pentru a se autentifica. Serverul folosește data semnată digital pentru a
valida cheia publică de pe certificat și să autentifice identitatea pe care certificatul posesor
spune că o reprezintă. Protocolul SSL cere clientului să creeze o semnatură digitală creand o
mixtura din data generată aleator in timpul "handshake"-ului știută doar de client și server.
Mixtura de date este criptată cu cheia privată care corespunde cheii publice din certificatul
prezentat serverului. Pentru a autentifica legatura dintre cheia publica și persoana sau entitatea
identificată de certificate care conține cheia publică, un program server SSL trebuie sa
primească "da" la primele 4 intrebări din figura 4.2. Cea dea 4-a intrebare nu este o parte din
protocol, dar serverele Netscape pot fi configurate să suporte și această verificare.
76
Figura 4.2 Autentificarea legăturii dintre cheia publică și persoana care conține cheia
publică.
Un server SSL trece prin urmatorii pași pentru a autentifica un client :
1. Cheia publică a utilizatotului validează semnatura digitală a acestuia? Serverul
verifică dacă semnatura digitală a utilizatotului poate fi validată cu cheia publică din
certificate. Dacă da, serverul stabilește că acea cheie publică este detinută de acel John Doe
(necunoscut) se potrivește cu cheia privată folosită pentru crearea semnăturii digitale și că
data nu a fost coruptă deoarece a fost semnată. In acest punct, legatura dintre cheia publică si
DN-ul specificat nu a fost incă stabilită. Certificatul poate fi creat de altcineva incercand să
inșele sa pară acel user. Pentru a valida legatura dintre cheia publica si DN, serverul trebuie sa
treacă de pasul 3 si 4.
2. Este data de astăzi in perioada de valabilitate? Serverul peioada de valabiliate a
certificatul clientului. Daca este bună se trece la Pasul 3. Dacă este expirat atunci se termină
autentificarea cu "nu".
3. Este CA-ul inițiat un CA de incredere? Fiecare program server SSL deține o listă
de certificate CA de "incredere". Această listă determină care certificate le va accepta
serverul. Dacă DN al CA-ului inițiat se potrivește cu DN al CA-ului unui CA din lista celor de
incredere atunci raspunsul este "da" și se trece la Pasul 4. Dacă CA-ul nu este pe lista atunci
clientul nu va fi acceptat doar daca serverul poate verifică un certificate care se "inrudeste" cu
unul de lista de incredere. Administratorii pot controla care certificate sunt de incredere și
care nu.
4. Initiind cheia publică CA se validează semnatura digitală a initiațorului? Serverul
folosește cheia publică de pe certificatul CA pentru a valida semnatura digitală a CA-ului.
Daca informația de pe certificate a fost schimbată de cand a fost semnată de CA sau cheia
publică de pe certificatul CA nu corespunde cu cheia privată folosită de CA sa semneze
certificatul, serverul nu va autentifica identitatea clientului. Dacă semnatura digitala a CA-ului
poate fi validată, serverul tratează certificatul userului ca fiind o scrisoare de introducere
validă de la CA si pornește mai departe. Din acest punct protocolul SSL permite serverului să
considere clientul autentificat și sa treacă la Pasul 6. Serverele Netscape pot fi configurate
opțional să treacă prin Pasul 4 inaintea Pasului 6.
77
4. Este certificatul utilizatorului present în intrarea LDAP a utilizatorului? Acest pas
opțional permite o modalitate de a refuza un certificat de utilizator chiar dacă trece de
celelalte teste. Serverul Netscape de certificare poate șterge automat un certificat revocat din
intrarea LDAP a utilizatotului. Toate serverele care sunt setate sa treacă prin acest pas vor
refuza autentificarea certificatului sau să stabileasca o conexiune. Daca certificatul
utilizatorului din director este identic cu certificatul utilizatorului present in "handshake" se
trece la Pasul 5.
5. Este clientul autentificat autorizat să acceseze resursa dorită? Serverul verifică ce
resurse sunt permise clientului să acceseze in conformitate cu lista controlului de accese a
serverului (ACLs) și stabilește o conexiune cu acces adecvat. Daca serverul nu ajunge la Pasul
5 din orice motiv, utilizatorul nu poate fi autentificat si nu i se permite să acceseze resuresele
serverului care necesită autentificare.
4.4 Atacuri rezolvate în SSL v3
Handshake-ul inițial nu este protejat in versiunea 2 a SSL, astfel un atacator activ
poate elimina din cererea initiala cifrurile cu criptare puternică, ceea ce cauzează alegerea
unei criptări mai slabe între partile ce comunică. În versiunea 3 atacul a fost ameliorat prin
adaugarea unui mesaj de final la sfârșitul handshake-ului în care fiecare parte trimite un
rezumat al mesajelor din handshake.
Versiunea 3 a SSL a fost imbunatatita, astfel adaugandu-se un mesaj de terminare care
să indice că nu mai există date de transferat. Versiunea 2 fiind bazata pe închiderea conexiunii
de catre protocolul TCP, acesta nu este protejat criptografic si un atacator ar putea trimite un
mesaj fals care să cauzeze închiderea conexiunii, fară ca aplicația să-și dea seama că aceasta a
fost închisă anormal.
4.5 Diferențe între SSL și TLS
Dupa cum se poate observa , TLS a fost creat de catre IETF ca raspuns la multitudinea
de protocoale incompatibile care serveau aceluiași scop si anume comunicarea securizată prin
rețea. Modificările aduse de TLS nu sunt substanțiale si multă lume îl privește mai degrabă ca
78
o actualizare minoră a SSL. Diferențele între cele două protocoale sunt rezumate în cele ce
urmeaza:
• Numărul de versiune: pentru TLS, numarul de versiune este 1.3, fata de 3.0 pentru
SSL, ceea ce întarește convingerea unora ca TLS este doar o actualizare minoră a SSL.
• MAC: TLS folosește ultima versiune de HMAC, iar acesta acoperă și câmpul de
versiune.
• Mesajul CERTIFICATE_VERIFY: Funcția de dispersie este calculată doar după
mesajele de handshake
• Coduri de avertizare: TLS definește mai multe coduri de avertizare decât SSL.
•Cifruri: TLS nu are suport pentru schimbul de chei Fortezza si pentru criptarea
Fortezza.
• Padding: TLS permite padding cu un numar variabil de octeti (maxim 244)
4.6 Protocolul de login la distanță Secure Shell (SSH)
Protocolul Secure Shell (SSH) este o suită de protocoloale de autentificare, bazat pe
criptografia cu chei publice, care lasa permisiunea unui utilizator să se conecteze la un server
la distanță de pe o mașină client printr-o rețea nesigură, pentru a executa în siguranță comenzi
pe mașina de la distanța și pentru a muta fișiere de la o mașină la alta. Protocolul este un
standard industrial de facto și este folosit pe scară largă în sistemele UNIX sau Linux. Partea
de client a protocolului poate rula și pe alte platforme cu alte sisteme de operare. Motivul
pentru care protocolul rulează în principal pe sisteme UNIX/Linux este arhitectura deschisă a
acestor sisteme de operare care oferă sesiuni de comenzi interactive pentru utilizatori la
distanță.
Ideea principala a protocolului SSH este că un utilizator pe o mașina client descarcă o
cheie publică de pe un server de la distanță și stabilește un canal de comunicație sigur între el
(clientul) și server folosind cheia publică descărcată și anumite informații criptografice ale
utilizatorului. Parola poate fi criptată folosind cheia publică a serverului și transmisă la server
doar in momentul in care informațiile criptografice reprezintă o parolă
79
4.6.1 Arhitectura SSH
Protocolul SSH lucreaza între două calculatoare, calculatoare intre care nu există nicio
relație de încredere printr-o rețea de comunicație nesigură. Unul este serverul (host-ul) de la
distanță iar celălalt este clientul de la care utilizatorul se conectează la server folosind
protocolul SSH. Suita de protocoale SSH este formată din trei componente majore:
• Protocolul SSH la nivel transport care oferă clientului serviciul de autentificare al
serverului. Acest protocol se bazează pe chei publice. Acest protocol primește la intrare la
partea de server o pereche de chei (privată/publică). La ieșire protocolul va realiza un canal
sigur (în ceea ce privește confidențialitatea și integritatea datelor) autentificat unilateral de la
server la client. Acest protocol va rula peste o conexiune TCP (Transmission Control
Protocol) și IP (Internet Protocol), dar poate rula și peste alte fuxuri de date sigure.
• Protocolul SSH de autentificare al utilizatorului rulează peste canalul autentificat
unilateral stabilit de componenta precedentă. Acesta suportă numeroase protocoale de
autentificare unilaterală pentru realizarea autentificării entităților de la client la server. Pentru
ca această direcție de autentificare să fie posibilă, serverul de la distanță trebuie să aibă
informații apriori despre informațiile criptografice ale utilizatorului, adică utilizatorul trebuie
să fie cunoscut de server. Aceste protocoale pot fi bazate pe chei publice sau pe parole.
Rezultatul execuției unui protocol din această suită, împreună cu rezultatul protocolului SSH
de la nivel transport, este un canal sigur autentificat mutual între server și un anumit utilizator
pe partea de client.
• Protocolul de conexiune SSH rulează peste canalul sigur autentificat mutual stabilit
de cele două componente precedente. Acest protocol este cel care realizează o serie de canale
logice sigure ce pot fi folosite pentru o serie de operații de comunicație.
In prezenta lucrare este evidentiat doar protocolul SSH la nivel transport, acesta
fiind protocolul de autentificare.
4.6.2 Protocolul SSH la nivel transport
Protocolul SSH la nivel transport folosește schimbul de chei Diffie-Hellman și prin
semnarea de către server a cheilor transmise se realizează autentificare unilaterală a serverului
față de client.
80
Fiecare server (host) are o pereche de chei - publică și privată. Pentru a putea folosi
mai mulți algoritmi un server poate avea mai multe perechi de astfel de chei. Dacă un server
are astfel de chei, atunci trebuie să aibă cel puțin câte o pereche de chei pentru fiecare
algoritm asimetric precizat de standardul Internet (DSS sau RSA în funcție de versiune).
In timpul fazei de schimb de chei se pot folosi cheile (publică și privată) serverului:
serverul folosește cheia privată pentru a semna mesajele ce țin de schimbul de chei; clientul
folosește cheia publică a serverului pentru a verifica faptul că schimbă mesaje cu serverul
corect. Pentru ca acest lucru să fie posibil, clientul trebuie să aibă informații apriori în legătură
cu cheia publică a serverului.
SSH contine două moduri diferite de realizarea a încrederii asupra cheii publice a
serverului:
• Clientul are o bază de date locală în care este făcută asocierea între fiecare server și
cheia publică corespunzătoare. Această metodă nu necesită o infrastructură gestionată în mod
centralizat și prin urmare nu necesită un terț de încredere care să fie responsabil de
coordonarea infrastructurii. Unul dintre dezavantajele majore ale acestui acestui mod este că
baza de date poate deveni foarte mare și greu de gestionat.
• Asocierea între numele serverului și cheia publică este certificată de o autoritate de
certificare (CA). Clientul trebuie să știe doar cheia publică a autorității de certificare și poate
verifica valabilitatea tuturor cheilor publice certificate de CA.
A doua modalitate simplifică problema gestiunii cheilor, din moment ce trebuie stocat
în siguranță doar o singură cheie publică (aici prin securitate se înțelege integritatea datelor).
Pe de altă parte fiecare cheie publică a serverelor trebuie să fie certificată în mod
corespunzător de catre CA înainte ca autentificarea să fie posibilă. De asemenea, există o
mare încredere în infrastructura centralizată.
Momentan pe Internet nu există încă o infrastructură de chei publice implementată pe
scară largă, primul model de încredere face protocolul mult mai utilizabil, pană la
implementarea unei infrastructuri de chei publice (PKI), oferind un nivel de securitate mult
mai bun decat cel oferit de soluțiile mai vechi (de ex. comenzile UNIX rlogin, rsh, rftp etc.).
Metoda cea mai buna de obținere a unei chei publice este autentificate a unui server
este ca utilizatorul să aducă o copie a cheii publice și să o pună în mașina client înainte de
rularea protocolului de schimb de chei. Un bun exemplu ar fi urmatorul, utilizatorul poate
salva pe un disc cheia publică a serverului. Pe sistemele UNIX și Linux, cheia publică a
serverului folosită de mașina client este pusă într-un fișier cu numele $HOME/.ssh/known
host. Utilizatorul trebuie să securizeze din punct de vedere fizic cheia publică a serverului în
81
ceea ce privește integritatea datelor. Pe sistemele Windows cheia publică a serverului există
doar în memoria sistemului și este descărcată în timp real de la server (printr-o legătură
nesigură!).
O altă modalitatea de seama de obținere a cheii publice autentice a serverului este
folosirea autentificării prin voce într-o legătură telefonică. Cheia publică a serverului este
descărcată de utilizator pe mașina client printr-o legătură nesigură. O \amprentă"
hexazecimală a cheii publice este prezentată utilizatorului. Această "amprentă" este:
amprenta(cheie) = H(cheie)
unde, H este o funcție hash criptografică, de ex. SHA-1. În cazul SHA-1, întreaga amprentă
are 160 de biți și prin urmare poate fi spusă la telefon sub forma a 40 de caractere. Astfel,
utilizatorul poate da un telefon administratorului serverului care îi poate confirma
corectitudinea amprentei. Aici autentificarea se realizează prin voce și se pleacă de la premisa
că utilizatorul și administartorul își cunosc unul altuia vocile.
Clientul initiaza intotdeauna protocolul pentru schimbul de chei. Serverul ascultă pe
un anumit port așteptand conexiuni. O serie de clienți se pot conecta la același server. Pentru a
obține cheia de sesiune protocolul SSH folosește protocolul pentru schimb de chei Diffie-
Hellman.
4.6.3 Strategia SSH
Una dintre caracteristicile cele mia importante ale protocolului SSH este de a
îmbunătăți securitatea prin Internet într-o manieră progresivă. Posibilitatea clientului de a
folosi orice metodă doreste pentru verificarea autenticității cheii publice a serverului
demonstrează strategia SSH de implementare rapidă și suportul pentru compatibilitate cu
versiuni anterioare.
Pana in momentul aparitie unei infrastructuri de chei publice pe Internet,
securitatea îmbunătățită a SSH nu trebuia să fie atat de puternică. Motivul pentru care SSH
este folosit pe serverele UNIX și Linux și implementat pe scară largă il reprezinta faptul ca
este simplu de folosit si usor de implementat, aceast fiind si cel mai important atuu al SSH.
Astefel putem observa că criptografia cu chei publice permite realizarea unor soluții simple.
Cheia serverului prin mediul nesigur există doar sub forma de cheie publică, așa că gestiunea
acestei componente devine mult mai simplă. Problema devine mult mai complicată dacă
protocolul se bazează pe tehnici criptografice simetrice.
82
5. SIMULAREA UNEI RETELE CARE IMPLEMENTEAZA
SECURITATEA TRANSMISIILOR OFERITA DE VPN
Utilizarea unei retele compusa din echipamente reale este foarte scumpa drept urmare
acest proiect va folosi un simulator ce lucreaza cu sisteme de operare reale ale echipamentelor
de retea folosite. Ne vom concentra pe modul de configurare, analiza performantei retelei si
influenta politicilor de securitate asupra acesteia. Rezultatul obtinut va oferi o mai buna
intelegere a procesului de configurare a echipamentelor si in special a celor produse de Cisco.
Simularile software sunt des utilizate in toate domeniile. Multe produse, atat hardware
dar si software, sunt pretestate in aplicatii software. Avantajele utilizarii simulatoarelor
software sunt evidente:
- Mai putin timp pentru dezvoltarea produselor hardware si software;
- Abilitatea de a testa diferite scenarii pentru prototipurile hardware si
software fara dezavantajul costului sau al timpului pierdutl
- Prezicerea potentialelor probleme inainte de productia in masa.
Topologia de retea va fi dezvoltata si simulata folosind aplicatia de simulare GNS3
(impreuna cu Wireshark). Programul de simulare GNS3 ofera posibilitatea modificarii
configuratiei unui echipament si observarea imediata a efectelor. Aceste simulari ofera
mijloacele de testare pentru diverse schimbari ce ar putea avea loc inainte de
implementarea reala, analiza fiabilitatii componentelor si efectelor defectarii uneia,
planificarea scalabilitatii si multe altele.
Scopul studiului meu este acela de a crea trei tunele diferite: GRE, IPSec si
GRE over IPSec folosind GNS3. In cele din urma vom compara avantajele si
dezavantajele fiecarui tip de tunel.
5.1 Utilitare pentru simulare si analiza rezultatelor
GNS3 (Graphical Network Simulator) este un simulator grafic de reţea ce permite
simularea unei reţele complexe, este o unealtă complementară pentru laboratoarele reale de
reţelistică pentru ingineri de reţea, administratori, etc. GNS3 este o aplicatie grafica care
permite utilizatorului sa creeze vizual o topologie de retea bazata pe rutere Cisco .
GNS3 are unele caracteristici cu adevărat utile în simularea de reţea, cu ar fi:
- Crearea unor topologi de reţea complexe
83
- Emularea platformelor IOS Cisco
- Conectarea reţelei simulate cu lumea reală
- Captura pacheteleor cu ajutorul Wireshark
GNS3 este o interfata pentru Dynamips, ce comunica cu acesta prin intermediul unui
hipervizor. Dynamips este o aplicatie gratuita open-source care emuleaza un sistem de operare
Cisco care poate rula in Windows, Linux sau MacOS. Poate emula platformele: 1700, 2600,
3600, si 7200 si ruleaza imagini IOS standard. Dynamips permite utilizatorilor sai sa creeze
rutere virtuale care ruleaza cu un sistem de operare Cisco utilizand resursele calculatorului
gazda. Avantajul de a folosi Dynamips este ca acesta nu e un simulator, ci un emulator care
ruleaza direct codul Sistemului de Operare Cisco. Pe langa comportamentul real al unui
echipament Cisco acesta ne permite sa cream si o diversitate de topologii.
In ciuda faptului ca throughput-ul sau este de numai 1kbps si nu poate fi folosit in
reţelele reale, acesta emulează pe deplin tot ceea ce este necesar pentru a simula şi testa in
mod corespunzător o reţea.
Este util in testarea configuraţiilor, deasemenea este posibila captarea pachetelor din
legaturile ruterelor virtuale. Cu Dynamips ruterele virtuale pot interactiona cu rutere reale
ceea ce permite testarea unei topologii de dimensiuni mai mari. Un alt aspect important pentru
utilizatori este captura traficului de retea cu ajutorul analizorului de pachete Wireshark.
Crearea unei topologii in GNS3 este simplă, in special pentru utilizatorii care sunt
familiarizaţi si cu alte simulatoare de reţea cum ar fi Opnet sau Packet Tracer. Înainte de a
folosi programul, utilizatorii au nevoie de imaginile IOS pentru a putea utiliza echipamentele.
Figura 5.1 prezintă spaţiul de lucru în GNS3. Acesta este divizat in patru panouri, cel
din stânga prezintă tipurile de noduri disponibile. Utilizatorul poate vedea simbolul ruterelor
pentru diferite platforme, PIX Firewall, Ethernet swtich, etc. Panoul din dreapta prezintă
sumarul topologiei. Secţiunea din mijloc contine două panouri. Cel superior reprezinta spaţiul
de lucru, este locul unde utilizatorul construieste topologia. Cel inferior este consola de
gestionare pentru Dynagen.
GNS3 este intuitiv, dispozitivele fiind pur si simplu trase in spatiul de lucru pentru a
putea fi folosite in topologie. Pentru inceput sunt configurate tipul de conexiune, folosing
Ethernet, serial sau alte tipuri. Fiecare tip de ruter are propriul tip de conexiunie, de exemplu:
ruterul Cisco 3640 suportă conexiunea Ethernet-switch (poate fi utilizat ca şi comutator).
Pentru a conecta fiecare ruter, acest program ne ofera butonul “add a link” (reprezentat cu
simbolul unui conector Ethernet). Utilizatorul trebuie să aleagă conexiunea potrivită,
bazându-se pe configuraţia care a fost aleasa pentru ruter.
84
Înainte de a începe simularea exista câteva setari ce trebuie realizate in GNS3. În
primul rând imaginile IOS trebuiesc încărcate. Fiecare model de ruter are imaginea sa,
depinde de utilizator ce model doreşte să ruleze in simulare. După aceasta, este necesar să fie
definită valoarea ”Idle PC” cu scopul de a reduce consumul de resurse al calculatorului atunci
când rulează simularea.
Dupa aceasta ruterele sunt adăugate în spaţiul de lucru. Pentru început trebuie
configurate sloturile adaptor pentru a defini tipul de conexiune care va fi necesar in topologie.
Apoi este necesară configurarea echipamentelor.
Fig. 5.1 – Interfata GNS3.
Wireshark este un program de tip open source, un analizor de pachete gratuit folosit
atat pentru analiza traficului dintr-o retea, identificarea si depanarea eventualelor probleme cat
si in scopuri educative. Este scris in limbajul de programare C iar la baza are cunoscuta
aplicatie tcpdump. Wireshark permite unui utilizator sa analizeze tot traficul dintr-o retea
(Fig. 5.2) prin configurarea interfetei de retea in modul promiscuu. In acest mod, interfata
primeste si proceseaza tot traficul, nu doar pe cel care ii este destinat.
Aplicatia cuprinde un set bogat de capabilitati cum ar fi:
- Inspectarea a sute de protocoale;
85
- Interfaţă pentru navigarea prin conţinutul pachetelor (packet browser);
- Citire şi scriere în diferite formate open-source şi proprietare de fişiere:
tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog,
- Analiză offline şi captura pachetelor live
- Portabilitate (există versiuni pentru Linux, Windows, OS X, Solaris, BSDetc.); Datele capturate pot fi studiate printr-o interfaţă grafică sau în linie decomandă;
- Multiple posibilităţi de filtrare a datelor capturate;- Interfaţa poate fi personalizată, folosind reguli de colorare asupra listei de
pachete pentru o analiză rapidă şi intuitivă;- Exportul datelor în format XML, PostScript, CSV sau text simplu.
Fig. 5.2 – Analizorul de trafic Wireshark
86
Wireshark utilizeaza API-ul (Application Programming Interface) pcap pentru captura
pachetelor drept urmare, aplicatia functioneaza doar pentru retelele suportate de acest API. Un
alt dezavantaj constă în faptul că, pentru a putea captura pachetele în format neprelucrat de la
o interfaţă de reţea, Wireshark trebuie să ruleze cu drepturi de administrator. Acest lucru
prezintă, evident, probleme de securitate pentru sistemul de pe care este rulată aplicaţia. O
soluţie a acestei probleme este aceea de a rula doar utilitarul tcpdump sau componenta
dumpcap a aplicaţiei la un nivel privilegiat pentru a putea captura traficul iar analiza acestuia
urmând a se efectua ulterior cu Wireshark rulând la un nivel restricţionat. De asemenea
rularea aplicatiei Wireshark intr-o retea de dimensiuni mari cu o activitate incarcata poate
produce fisiere de captura de dimensiuni foarte mari si poate consuma partial sau chiar total
resursele sistemului, ceea ce ar putea duce la o incetinire a sistemului sau chiar la blocarea
acestuia.
Dynagen este o interfata pentru Dynamips, ce comunica cu acesta printr-un hipervizor.
O problema majora in folosirea Dynagen este aceea ca procesorul este utilizat 100%
indiferent daca ruterul este in uz sau in stare de repaus.
În scopul de a creea topologii multiple ce premit utilizatorilor să configureze diverse
scenarii si să inveţe tehnici noi si tehnologii folosite in reţelistică un emulator este solutia
potrivită.
5.2 Topologia retelei
Figura 5.3 – Topologia creata
87
In topologia de mai sus au fost create 3 tunele:
- GRE over IPSec intre HQ si Branch 2;
- IPSec intre HQ si Branch 1;
- GRE intre Branch 1 si Branch 2.
5.3 Configurarea echipamentelor de retea
In topologie sunt folosite:
- Cisco ASA 5520:o RAM: 512 MiBo Model interfata retea: e1000o Initrd: asa842-initrd.gzo Kernel: asa842-vmlinuz
- Router Cisco c3640o RAM: 128 MiBo IOS: c3640-is-mz_120-7_t.imageo Model interfata retea: NM-1FE-TX
Configuratia completa a echipamentelor de retea se gaseste in Anexa 1.
Descrierea conexiunilor in reteaua simulata:
- Branch1-ASA: interfata Ethernet0 se conecteaza la ISP3; interfata Ethernet1 se conecteaza la Branch1-R;
- Branch1-R: interfata Fastethernet 0/0 se conecteaza la Branch1-ASA;interfata Fastethernet 1/0 se conecteaza la Host2;
- Branch2-ASA: interfata Ethernet 0 se conecteaza la ISP2; interfataEthernet 1 se conecteaza la Branch2-R;
- Branch2-R: interfata Fastethernet 0/0 se conecteaza la Branch2-ASA;interfata Fastethernet 1/0 se conecteaza la Host3;
- HQ-ASA: interfata Ethernet 0 se conecteaza la ISP1; interfata Ethernet 1 seconecteaza la HQ-R;
- HQ-R: interfata Fastethernet 0/0 se conecteaza la HQ-ASA; interfataFastethernet 1/0 se conecteaza la Host1;
- ISP1: interfata Fastethernet 0/0 se conecteaza la HQ-ASA; interfataFastethernet 1/0 se conecteaza la ISP2; interfata Fastethernet 2/0 seconecteaza la ISP3;
- ISP2: interfata Fastethernet 0/0 se conecteaza la Branch2-ASA; interfataFastethernet 1/0 se conecteaza la ISP3; interfata Fastethernet 2/0 seconecteaza la ISP1;
- ISP3: interfata Fastethernet 0/0 se conecteaza la Branch1-ASA; interfataFastethernet 1/0 se conecteaza la ISP1; interfata Fastethernet 2/0 seconecteaza la ISP2.
88
Branch1-ASA
Asignarea adreselorIP
Configurare OSPF
interface GigabitEthernet0nameif WANsecurity-level 0ip address 22.22.22.2 255.255.255.252no shutdowninterface GigabitEthernet1nameif LANsecurity-level 100ip address 192.168.2.1 255.255.255.252no shutdownrouter ospf 1network 22.22.22.0 255.255.255.252 area 0network 192.168.2.0 255.255.255.252 area 0log-adj-changes
Branch1-R Asignarea adreselorIP
Configurare OSPF
interface FastEthernet0/0ip address 192.168.2.2 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet1/0ip address 10.10.2.1 255.255.255.0no ip directed-broadcastduplex autospeed autono shutdownrouter ospf 1passive-interface FastEthernet1/0network 10.10.2.0 0.0.0.255 area 0network 172.28.3.0 0.0.0.3 area 0network 192.168.2.0 0.0.0.3 area 0
Branch2-ASA
Asignarea adreselorIP
Configurare OSPF
interface GigabitEthernet0nameif WANsecurity-level 0ip address 33.33.33.2 255.255.255.252no shutdowninterface GigabitEthernet1nameif LANsecurity-level 100ip address 192.168.3.1 255.255.255.252no shutdownrouter ospf 1network 33.33.33.0 255.255.255.252 area 0network 192.168.3.0 255.255.255.252 area 0log-adj-changes
Branch2-R Asignarea adreselorIP
interface FastEthernet0/0ip address 192.168.3.2 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet1/0
89
Configurare OSPF
ip address 10.10.3.1 255.255.255.0no ip directed-broadcastduplex autospeed autono shutdownrouter ospf 1passive-interface FastEthernet1/0network 10.10.3.0 0.0.0.255 area 0network 172.28.2.0 0.0.0.3 area 0network 172.28.3.0 0.0.0.3 area 0network 192.168.3.0 0.0.0.3 area 0
HQ-ASA Asignarea adreselorIP
Configurare OSPF
interface GigabitEthernet0nameif WANsecurity-level 0ip address 11.11.11.2 255.255.255.252no shutdowninterface GigabitEthernet1nameif LANsecurity-level 100ip address 192.168.1.1 255.255.255.252no shutdownrouter ospf 1network 11.11.11.0 255.255.255.252 area 0network 192.168.1.0 255.255.255.252 area 0log-adj-changes
HQ-R Asignarea adreselorIP
Configurare OSPF
interface FastEthernet0/0ip address 192.168.1.2 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet1/0ip address 10.10.1.1 255.255.255.0no ip directed-broadcastduplex autospeed autono shutdownrouter ospf 1passive-interface FastEthernet1/0network 10.10.1.0 0.0.0.255 area 0network 172.28.2.0 0.0.0.3 area 0network 192.168.1.0 0.0.0.3 area 0
ISP1 Asignarea adreselorIP
interface FastEthernet0/0ip address 11.11.11.1 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet1/0ip address 77.77.77.1 255.255.255.252
90
Configurare OSPF
no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet2/0ip address 88.88.88.2 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdownrouter ospf 1network 11.11.11.0 0.0.0.3 area 0network 77.77.77.0 0.0.0.3 area 0network 88.88.88.0 0.0.0.3 area 0
ISP2 Asignarea adreselorIP
Configurare OSPF
interface FastEthernet0/0ip address 33.33.33.1 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet1/0ip address 99.99.99.1 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet2/0ip address 77.77.77.2 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdownrouter ospf 1network 33.33.33.0 0.0.0.3 area 0network 77.77.77.0 0.0.0.3 area 0network 99.99.99.0 0.0.0.3 area 0
ISP3 Asignarea adreselorIP
interface FastEthernet0/0ip address 22.22.22.1 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet1/0ip address 88.88.88.1 255.255.255.252no ip directed-broadcastduplex autospeed autono shutdowninterface FastEthernet2/0ip address 99.99.99.2 255.255.255.252
91
Tabel 5.1 Adresarea interfetelor si configuratia OSPF
In continuare se va analiza dimensiunea unui pachet de date “esantion” (ping)
circuland atat in text clar (netunelat) cat si prin cele trei tipuri de tuneluri.
Scenariul 1: Ping-ul nu trece prin niciun tunel. Nu este incapsulat si nici criptat. Din
analiza pachetului se pot determina atat IP-urile sursa si destinatie cat si detaliile pachetului
ICMP. Captarea s-a realizat pe interfata Fastethernet a ruterului ISP1. De asemenea se poate
observa ca dimensiunea totala a pachetului este de 106 octeti.
Figura 5.4 – Ping Host1 – Host2 text clar
Configurare OSPF
no ip directed-broadcastduplex autospeed autono shutdownrouter ospf 1network 22.22.22.0 0.0.0.3 area 0network 88.88.88.0 0.0.0.3 area 0network 99.99.99.0 0.0.0.3 area 0
92
Scenariul 2: Tunel GRE intre Branch 1 si Branch 2.
Dupa configurarea tunelului GRE putem vizualiza pachetul “esantion” (echo-request)
circuland in retea incapsulat insa necriptat. Captarea s-a realizat pe interfata Fastethernet 0/0 a
ruterului ISP3.
Figura 5.5 – Ping Host2 – Host3 tunel GRE
Branch1-R Numele interfetei tunel(virtuala)Adresa IP a acesteiaSursa reala a tuneluluiDestinatia reala a tunelului
interface Tunnel2
ip address 172.28.3.1 255.255.255.252tunnel source 192.168.2.2tunnel destination 192.168.3.2
Branch2-R Numele interfetei tunel(virtuala)Adresa IP a acesteiaSursa reala a tuneluluiDestinatia reala a tunelului
interface Tunnel2
ip address 172.28.3.2 255.255.255.252tunnel source 192.168.3.2tunnel destination 192.168.2.2
93
Din captura se poate observa atat dimensiunea totala a pachetului crescuta de la 106
octeti la 130 octeti cat si incapsularea pachetului de nivel 3 OSI (Nivelul Retea) intr-un altul
ce are ca adrese IP sursa si destinatie capetele tunelului GRE. In figura 5.5 se poate observa
doar mesajul Echo-request deoarece diferenta dintre acesta si Echo-reply consta numai in
tipul mesajului ICMP (Echo-request continand in campul “Type” al header-ului codul 8 iar
Echo-reply codul 0). Captura pachetului Echo-reply se gaseste in Anexa 2.
Scenariul 3: Tunel IPSec intre HQ si Branch 1.
Vom configura politica ISAKMP cu urmatorii parametri:
Vom folosi o politica ikev1 cu prioritatea 1 (cea mai mare)
HQ-ASA(config)# crypto ikev1 policy 1
Vom folosi autentificare cu chei simetrice
HQ-ASA(config-isakmp)#authentication pre-share
Ca algoritm de criptare se va folosi algoritmul AES cu chei de 256 biti.
HQ-ASA(config-isakmp)#encryption aes-256
Algoritmul pentru hash folosit va fi SHA
HQ-ASA(config-isakmp)#hash sha
Grupul Diffie-Hellman va fi 2
HQ-ASA(config-isakmp)#group 2
Durata de viata a unei asocieri va fi de 3600 secunde
HQ-ASA(config-isakmp)#lifetime 3600
Se configureaza tipul tunelului (Land to land)
HQ-ASA(config )#tunnel-group 22.22.22.2 type ipsec-l2l
Se intra in modul de configurare al atributelor tunelului
HQ-ASA(config)# tunnel-group 22.22.22.2 ipsec-attributes
Se configureaza cheia simetrica de autentificare
HQ-ASA(config-tunnel-ipsec)#ikev1 pre-shared-key licenta
Se configureaza transfor-set-ul ce contine algoritmii de criptare si hash pe care ii va folosi
tunelul.
HQ-ASA(config)#crypto ipsec ikev1 transform-set HQ-Br1 esp-aes-256 esp-sha-hmac
Se creeaza lista de acces “HQ-Br1-Map” ce identifica traficul dintre HQ si Branch 1.
Branch1-LAN este un obiect ce contine subnet-ul 10.10.2.0 cu masca de retea 255.255.255.0
(toate adresele din Branch 1.
94
HQ-ASA(config)#access-list HQ-Br1-Map extended permit ip object HQ-LAN object
Branch1-LAN
Construim un crypto map pentru a ingloba toate blocurile construite:
Se vor selecta adresele IP catre Branch1
HQ-ASA(config)#crypto map HQ-Map 1 match address HQ-Br1-Map
Se seteaza celalalt capat al tunelului
HQ-ASA(config)#crypto map HQ-Map 1 set peer 22.22.22.2
Se configureaza algoritmii de criptare si hash folositi.
HQ-ASA(config)#crypto map HQ-Map 1 set ikev1 transform-set HQ-Br1
In final se aplica harta nou creata pe interfata externa a firewall-ului:
HQ-ASA(config)#crypto map HQ-Map interface WAN
Analog se va configura si Branch1-ASA. Odata tunelul configurat se poate testa
conexiunea. Vom trimite un mesaj ICMP Echo-request de la Host1 catre Host2.
Figura 5.6 – stabilirea tunelului IPSec
95
Figura 5.7 – Stabilirea asocierii IPSec intre cele doua echipamente.
Dupa stabilirea asocierii de securitate tunelul este functional. Putem trimite pachetul esantionde la Host1 catre Host2.
Dupa cum se poate observa in figura 5.8 IPSec cripteaza datele de la nivelul 3 OSI insus. In captura se pot observa adresele de nivel 2 (MAC) insa cele de nivel 3 (IP) suntadresele capetelor tunelului. Restul mesajului este criptat. De asemenea se poate observa caacum dimensiunea totala a mesajului a ajuns la 166 octeti. In figura 5.8 se poate observa doarmesajul Echo-request. Captura pachetului Echo-reply se gaseste in Anexa 3.
97
Scenariul 4: tunel GRE over IPSec intre HQ si Branch2
Mai intai se configureaza protocolul GRE pe ruterele din cele doua sedii:
Apoi, asemanator Scenariului 3, se configureaza IPSec intre cele doua firewall-uri:
Vom configura politica ISAKMP cu urmatorii parametri:Vom folosi o politica ikev1 cu prioritatea 1 (cea mai mare)HQ-ASA(config)# crypto ikev1 policy 1Vom folosi autentificare cu chei simetriceHQ-ASA(config-isakmp)#authentication pre-shareCa algoritm de criptare se va folosi algoritmul AES cu chei de 256 biti.HQ-ASA(config-isakmp)#encryption aes-256Algoritmul pentru hash folosit va fi SHAHQ-ASA(config-isakmp)#hash shaGrupul Diffie-Hellman va fi 2HQ-ASA(config-isakmp)#group 2Durata de viata a unei asocieri va fi de 3600 secundeHQ-ASA(config-isakmp)#lifetime 3600
Se configureaza tipul tunelului (Land to land)HQ-ASA(config )#tunnel-group 33.33.33.2 type ipsec-l2lSe intra in modul de configurare al atributelor tuneluluiHQ-ASA(config)# tunnel-group 33.33.33.2 ipsec-attributesSe configureaza cheia simetrica de autentificareHQ-ASA(config-tunnel-ipsec)#ikev1 pre-shared-key licenta
Se configureaza transfor-set-ul ce contine algoritmii de criptare si hash pe care ii va folositunelul.HQ-ASA(config)#crypto ipsec ikev1 transform-set HQ-Br2 esp-aes-256 esp-sha-hmacSe creeaza lista de acces “HQ-Br2-Map” ce identifica traficul dintre HQ si Branch 2.Branch2-LAN-GRE este un obiect ce contine adresa 192.168.3.2 (capatul tunelului GRE dinBranch 2).HQ-ASA(config)#access-list HQ-Br2-Map extended permit ip object HQ-LAN -GRE objectBranch2-LAN -GREConstruim un crypto map pentru a ingloba toate blocurile construite:Se vor selecta adresele IP catre Branch2HQ-ASA(config)#crypto map HQ-Map 2 match address HQ-Br2-MapSe seteaza celalalt capat al tuneluluiHQ-ASA(config)#crypto map HQ-Map 2 set peer 33.33.33.3
HQ-R Numele interfetei tunel(virtuala)Adresa IP a acesteiaSursa reala a tuneluluiDestinatia reala a tunelului
interface Tunnel2
ip address 172.28.2.1 255.255.255.252tunnel source 192.168.1.2tunnel destination 192.168.3.2
Branch2-R Numele interfetei tunel(virtuala)Adresa IP a acesteiaSursa reala a tuneluluiDestinatia reala a tunelului
interface Tunnel1
ip address 172.28.2.2 255.255.255.252tunnel source 192.168.3.2tunnel destination 192.168.1.2
98
Se configureaza algoritmii de criptare si hash folositi.HQ-ASA(config)#crypto map HQ-Map 2 set ikev1 transform-set HQ-Br2
In final se aplica harta nou creata pe interfata externa a firewall-ului:HQ-ASA(config)#crypto map HQ-Map interface WAN
Analog se va configura si Branch2-ASA. Dupa stabilirea asocierii de securitate tunelul
este functional. Putem trimite pachetul esantion de la Host1 catre Host3.
Figura 5.9 Stabilirea asocierii IPSec intre cele doua echipamente
99
Figura 5.10 – Cele doua tunele (HQ catre Branch1 si catre Branch2) sunt active.
Dupa cum se poate observa in figura 5.11 IPSec cripteaza datele de la nivelul 3 OSI in
sus. In captura se pot observa adresele de nivel 2 (MAC) insa cele de nivel 3 (IP) sunt
adresele capetelor tunelului. Restul mesajului (inclusiv protocolul GRE) este criptat. De
asemenea se poate observa ca acum dimensiunea totala a mesajului a ajuns la 198 octeti. In
figura 5.11 se poate observa doar mesajul Echo-request. Captura pachetului Echo-reply se
gaseste in Anexa 4.
Figura 5.11 Host1 – Host3 tunel GRE over IPSec.
100
In continuare se va analiza schimbul de mesaje in cazul vizualizarii unui site atat
folosind protocolul SSLv3 cat si TLSv1.
Scenariul 5: Se creaza o pagina web de dimensiuni reduse (196 KO - Figura 5.12) si se
gazduieste pe un server Apache2. Acesta este configurat pentru a suporta numai protocolul
SSLv3.
Figura 5.12 – Dimensiunea site-ului web.
Configurarea serverului (VirtualHost-ului) este urmatoarea:<VirtualHost *:443>
SSLEngine onSSLProtocol SSLv3SSLCipherSuite HIGH:!aNULL:!MD5SSLCertificateFile /etc/pki/tls/http/apachecert.pemSSLCertificateKeyFile /etc/pki/tls/http/apachekey.pemDocumentRoot "/var/www/html/https-ssl"
<Directory /var/www/html/https-ssl>Order allow,denyAllow from all
</Directory></VirtualHost>
Aceasta configuratie obliga orice client sa foloseasca protocolul SSLv3 (serverul nu
accepta alte protocoale). Port-ul utilizat este 443 (portul standard pentru HTTPS). Site-ul creat
se afla la adresa “/var/www/html/https-ssl” si se poate gasi in Anexa 5. De asemenea
configuratia completa a serverului Apache (fisierul ssl.conf) se gaseste in Anexa 6.
101
In continuare se vor analiza pasii handshake-ului SSLv3:Figura 5.13 – Mesajul “Client Hello”
Clientul initiaza conexiunea trimitand un mesaj serverului ce contine: protocolul
preferat de client (si versiunea acestuia); un numar format din data si ora clientului plus un
numar de 28 octeti generat aleator ce va fi folosit ulterior impreuna cu numarul aleator al
serverului pentru obtinerea cheilor de criptare; suita de cifruri (lista de cifruri disponibile
clientului) si algoritmul de compresie suportat de catre client.
103
Serverul raspunde mesajului Hello de la client cu urmatoarele: protocolul suportat de
server; numarul sau aleator, care impreuna cu cel al clientului vor forma cheile de criptare;
suita de cifruri (lista de cifruri disponibile serverului) si algoritmul de compresie suportat de
catre server.
Tot in acest mesaj serverul introduce datele certificatului de securitate si anume: cheia
publica a serverului si detaliile certificatului (destinatarul emiterii certificatului si perioada de
validitate a acestuia).
Figura 5.15 – Mesajul “Server hello done”
Serverul trimite un mesaj de tipul “Server Hello Done” ce indica faptul ca serverul a
terminat schimbul de mesaje si asteapta clientul.
104
Figura 5.16 – Mesajul “Client key exchange”
Clientul trimite un mesaj „Schimb de chei client” după calcularea secret-ului
premaster folosind ambele valori aleatoare (al serverului si al sau). Secretul premaster este
criptat cu cheia publică din certificatul serverului înainte de a fi transmis la server. Ambele
părți vor calcula secretul master la nivel local și vor extrage cheia de sesiune din el.
În cazul în care serverul poate decripta aceste date clientul este asigurat că serverul are
cheia privată corecta. Acest pas este crucial pentru a dovedi autenticitatea serverului. Numai
serverul cu cheia privată care corespunde cheii publice din certificat poate decripta aceste date
și poate continua negocierea protocolului.
Figura 5.17 – Mesajul “Change Chiper Spec”
105
Acest mesaj notifică serverul care toate mesajele care urmează dupa mesajul „Client
Finished” vor fi criptate folosind cheile și algoritmii negociati. Mesajul „Client Finished” este
un hash al intregii conversatii si ofera autentificare clientului.
Scenariul 6: Aceeasi pagina web de dimensiuni reduse folosita in Scenariul 5 si se gazduieste
pe un server Apache2 configurat pentru a suporta numai protocolul TLSv1.
Figura 5.18 – Dimensiunea site-ului web.
Configurarea serverului (VirtualHost-ului) este urmatoarea:<VirtualHost *:443>
SSLEngine onSSLProtocol TLSv1SSLCipherSuite HIGH:!aNULL:!MD5SSLCertificateFile /etc/pki/tls/http/apachecert.pemSSLCertificateKeyFile /etc/pki/tls/http/apachekey.pemDocumentRoot "/var/www/html/https-tls"
<Directory /var/www/html/https-tls>Order allow,denyAllow from all
</Directory></VirtualHost>
Aceasta configuratie obliga orice client sa foloseasca protocolul TLSv1 (serverul nu
accepta alte protocoale). Port-ul utilizat este 443 (portul standard pentru HTTPS). Site-ul creat
se afla la adresa “/var/www/html/https-tls” si se poate gasi in Anexa 7.
106
In continuare se vor analiza pasii handshake-ului TLSv1:
Figura 5.19 – Mesajul “Client Hello”
Clientul initiaza conexiunea trimitand un mesaj serverului ce contine: protocolul
preferat de client (si versiunea acestuia); un numar format din data si ora clientului plus un
numar de 28 octeti generat aleator ce va fi folosit ulterior impreuna cu numarul aleator al
serverului pentru obtinerea cheilor de criptare; suita de cifruri (lista de cifruri disponibile
clientului) si algoritmul de compresie suportat de catre client.
107
Figura 5.20 – Mesajul “Server Hello”
Serverul raspunde mesajului Hello de la client cu urmatoarele: protocolul suportat de
server; numarul sau aleator, care impreuna cu cel al clientului vor forma cheile de criptare;
suita de cifruri (lista de cifruri disponibile serverului) si algoritmul de compresie suportat de
catre server.
Tot in acest mesaj serverul introduce datele certificatului de securitate si anume: cheia
publica a serverului si detaliile certificatului (destinatarul emiterii certificatului si perioada de
validitate a acestuia).
108
Figura 5.21 – Mesajul “Server hello done”
Serverul trimite un mesaj de tipul “Server Hello Done” ce indica faptul ca serverul a
terminat schimbul de mesaje si asteapta clientul.
Figura 5.22 – Mesajul “Client key exchange”
Clientul trimite un mesaj „Schimb de chei client” după calcularea secret-ului
premaster folosind ambele valori aleatoare (al serverului si al sau). Secretul premaster este
109
criptat cu cheia publică din certificatul serverului înainte de a fi transmis la server. Ambele
părți vor calcula secretul master la nivel local și vor extrage cheia de sesiune din el.
În cazul în care serverul poate decripta aceste date clientul este asigurat că serverul are
cheia privată corecta. Acest pas este crucial pentru a dovedi autenticitatea serverului. Numai
serverul cu cheia privată care corespunde cheii publice din certificat poate decripta aceste date
și poate continua negocierea protocolului.
Figura 5.23 – Mesajul “Change Chiper Spec”
Acest mesaj notifică serverul care toate mesajele care urmează dupa mesajul „Client
Finished” vor fi criptate folosind cheile și algoritmii negociati. Mesajul „Client Finished” este
un hash al intregii conversatii si ofera autentificare clientului.
110
CONCLUZII
In mai putin de o generatie, revolutia informatiei si introducerea calculatoarelor in
virtual, fiecare dimensiune a societatii a schimbat lumea. Predictiile unor importanti oameni
in domeniul ingineriei se adeveresc si lumea se transforma astfel intr-un “sat global” unde nu
mai exista granite pentru afaceri, comunicatii sau comert.
Informatia reprezinta moneda economiei Internet; tehnologiile de securitate a
informatiei au un imens impact asupra modului in care organizatiile conduc afaceri
electronice si, implicit, isi ating obiectivele strategice. Prezenta lucrare discuta importanta
tehnologiilor de securitatea informatiei in societatea informatiei, si explicarea avantajelor
adoptarii tehnologiilor de securitatea informatiilor.
Retelele private virtuale (VPN) au fost concepute din dorinta de a avea o mai buna
securitate a informatiilor transmise de catre utilizatori prin intermediul unei retea de
calculatoare.
Scopul propus de aceasta lucrare a fost implementarea cu ajutorul simulatorului GNS3
unei retele care utilizeaza diferitele protocoale de tunelare.
Din scenariul 1 am vazut ca un pachet cum arata un pachet de date (ping) ce este
transmis in text clar – necriptat si netunelat. Am putut observa cum un analizor de trafic poate
extrage toate informatiile din acel pachet (sursa, destinatie si tipul pachetului). De asemenea
s-a putut observa ca dimensiunea totala a pachetului este de 106 octeti.
Din scenariul 2 am vazut ca tunelele GRE, desi ofera eficienta retelei si sunt usor de
implementat au un mare dezavantaj in faptul ca nu cripteaza datele transmise prin asa numitul
“tunel de transmisie”. De asemenea am observat ca, in acest caz, dimensiunea totala a
pachetului a crescut la 130 octeti. Diferenta de 24 octeti este data de header-ul IP adaugat de
catre protocolul GRE.
In scenariul 3 si 4 am implementat un tunel IPSec si un tunel GRE cu protectie IPSec.
Desi sunt mai greu de configurat, necesitand cunostinte avansate de retelistica, retelele
virtuale private bazate pe IPSec utilizeaza criptarea pentru a secretiza datele pe care le
transmit, astfel crescand rezistenta retelei din punctul de vedere al furtului de date. De
asemenea se poate observa ca dimensiunea pachetului a crescut la 166 octeti, respectiv 198
octeti datorita datelor adaugate de protocolul IPSec.
111
In scenariul 5 si 6 am vazut cum arata schimbul de mesaje de la inceputul unei
sesiune HTTPS atat pentru cazul configurarii cu protocolul SSLv3 cat si pentru TLSv1.
Diferentele intre aceste protocoale sunt minime:
- Cifruri: TLS nu are suport pentru schimbul de chei Fortezza si pentru
criptarea Fortezza.
- Padding: TLS permite padding cu un numar variabil de octeti (maxim
244)
- MAC: TLS folosește ultima versiune de HMAC, iar acesta acoperă și
câmpul de versiune.
- Mesajul CERTIFICATE_VERIFY: Funcția de dispersie este calculată
doar după mesajele de handshake
- Coduri de avertizare: TLS definește mai multe coduri de avertizare decât
SSL.
In aceasta lucrare am incercat sa evidentiez clar procesul de configurare a diferitelor
tipuri de tuneluri de securitate, dar si importanta deosebita care trebuie acordata problemei
securitatii. Desi Internetul se confrunta cu amenintari de securitate din ce in ce mai avansate
acest lucru nu a impiedicat raspandirea sa la scara globala. Fiind imposibilia inlaturarea in
totalitate a unui atac tot ce ne ramane de facut este sa ingreunam incercarile atacatorilor de a
obtine acces la informatii.
112
BIBLIOGRAFIE
1) Cisco Network Security Internet Technical Solution (e-Seminar)
2) Bogdan Groza, “Introducere in Sisteme Criptografice cu Cheie Publica”, Curs
3) Alexandru Isar, “Curs securitatea transmiterii informatiei prin internet”, Curs
4) Asist. Razvan ZOTA, “Solutii de securitate pentru Internet”, in Revista Informatica
Economica, nr.12/1999 69
5) Luminita S. , Ion B. , “Securitatea Retelelor de Comunicatii”, Casa de editura
“Venus” Iasi 2008
6) http://www.securitatea-informatica.ro/securitatea-informatica/securitatea-si-
confidentialitatea-datelor-in-retelele-publice/
7) http://ro.wikipedia.org/wiki/Re%C8%9Bea_privat%C4%83_virtual%C4%83
8) Revista 52 Informatica Economică nr. 2(30)/2004 An Overview of the Attack
Methods Directed Against the RSA Algorithm
9) Bogdan Groza, „Introducere în SistemeleCriptografice cu Cheie Publică”,
http://www.aut.upt.ro/~bgroza/iccp.pdf accesat la data 18.06.2012
10) Asist. Simona Ionescu, “Considerations on data encryption and decruption”, in Revista
Informatica Economica, nr.2(30)/2004
11) Revista 52 Informatica Economică nr. 2(30)/2004 An Overview of the Attack
Methods Directed Against the RSA Algorithm
12) Martin W. Murhammer, "A Comprehensive Guide to Virtual Private Networks",
International Technical Support Organization 1999
13) http://www.netaccess.ro/retele_virtuale_private.html accesat la data 15.03.2012
http://ro.wikipedia.org/wiki/Vpn
http://en.wikipedia.org/wiki/Secure_Sockets_Layer
114
ANEXA 1Configuratia completa a echipamentelor de retea
1 – Configuratie Branch1-ASABranch1-ASA# sh run: Saved:ASA Version 8.4(2)!hostname Branch1-ASAenable password 8Ry2YjIyt7RRXU24 encryptedpasswd 2KFQnbNIdI.2KYOU encryptednames!interface GigabitEthernet0nameif WANsecurity-level 0ip address 22.22.22.2 255.255.255.252!interface GigabitEthernet1nameif LANsecurity-level 100ip address 192.168.2.1 255.255.255.252!ftp mode passivesame-security-traffic permit inter-interfaceobject network HQ-LANsubnet 10.10.1.0 255.255.255.0object network Branch1-LAN-GREhost 192.168.2.2object network Branch2-LAN-GREhost 192.168.3.2object network Branch1-WANhost 22.22.22.2object network Branch1-LANsubnet 10.10.2.0 255.255.255.0access-list WAN-IN extended permit ip object HQ-LAN object Branch1-LANaccess-list WAN-IN extended permit ip object Branch2-LAN-GRE object Branch1-LAN-GREaccess-list WAN-IN extended deny ip any anyaccess-list HQ-Br1-Map extended permit ip object Branch1-LAN object HQ-LANpager lines 24mtu WAN 1500mtu LAN 1500no failovericmp unreachable rate-limit 1 burst-size 1no asdm history enablearp timeout 14400nat (WAN,LAN) source static HQ-LAN HQ-LAN destination static Branch1-LAN Branch1-LAN
115
nat (WAN,LAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination staticBranch1-LAN-GRE Branch1-LAN-GREnat (LAN,WAN) source static Branch1-LAN Branch1-LAN destination static HQ-LAN HQ-LANnat (LAN,WAN) source static Branch1-LAN-GRE Branch1-LAN-GRE destination staticBranch2-LAN-GRE Branch2-LAN-GREaccess-group WAN-IN in interface WAN!router ospf 1network 22.22.22.0 255.255.255.252 area 0network 192.168.2.0 255.255.255.252 area 0log-adj-changes!timeout xlate 3:00:00timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolutetimeout tcp-proxy-reassembly 0:01:00timeout floating-conn 0:00:00dynamic-access-policy-record DfltAccessPolicyuser-identity default-domain LOCALno snmp-server locationno snmp-server contactsnmp-server enable traps snmp authentication linkup linkdown coldstart warmstartcrypto ipsec ikev1 transform-set HQ-Br1 esp-aes-256 esp-sha-hmaccrypto map HQ-Br1 1 match address HQ-Br1-Mapcrypto map HQ-Br1 1 set peer 11.11.11.2crypto map HQ-Br1 1 set ikev1 transform-set HQ-Br1crypto map HQ-Br1 interface WANcrypto isakmp identity addresscrypto ikev1 enable WANcrypto ikev1 policy 1authentication pre-shareencryption aes-256hash shagroup 2lifetime 3600telnet timeout 5ssh timeout 5console timeout 0threat-detection basic-threatthreat-detection statistics access-listno threat-detection statistics tcp-intercepttunnel-group 11.11.11.2 type ipsec-l2ltunnel-group 11.11.11.2 ipsec-attributesikev1 pre-shared-key *****!!prompt hostname context
116
no call-home reporting anonymouscall-homeprofile CiscoTAC-1no activedestination address http https://tools.cisco.com/its/service/oddce/services/DDCEServicedestination address email [email protected] transport-method httpsubscribe-to-alert-group diagnosticsubscribe-to-alert-group environmentsubscribe-to-alert-group inventory periodic monthlysubscribe-to-alert-group configuration periodic monthlysubscribe-to-alert-group telemetry periodic daily
crashinfo save disableCryptochecksum:c279e6a4eae895911a15b94872d12856: end
2. Configuratia Branch1-RBranch1-R#sh runBuilding configuration...
Current configuration:!version 12.0service timestamps debug uptimeservice timestamps log uptimeno service password-encryption!hostname Branch1-R!
ip subnet-zeroip tcp synwait-time 5!interface Tunnel2ip address 172.28.3.1 255.255.255.252no ip directed-broadcastip mtu 1400tunnel source 192.168.2.2tunnel destination 192.168.3.2!interface FastEthernet0/0ip address 192.168.2.2 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet1/0ip address 10.10.2.1 255.255.255.0no ip directed-broadcastduplex auto
117
speed auto!router ospf 1passive-interface FastEthernet1/0network 10.10.2.0 0.0.0.255 area 0network 172.28.3.0 0.0.0.3 area 0network 192.168.2.0 0.0.0.3 area 0!ip classlessip route 10.10.3.0 255.255.255.0 172.28.3.2no ip http serverline con 0exec-timeout 0 0privilege level 15logging synchronoustransport input noneline aux 0exec-timeout 0 0privilege level 15logging synchronousline vty 0 4login!end
3. Configuratia Branch2-ASABranch2-ASA# sh run: Saved:ASA Version 8.4(2)!hostname Branch2-ASAenable password 8Ry2YjIyt7RRXU24 encryptedpasswd 2KFQnbNIdI.2KYOU encryptednames!interface GigabitEthernet0nameif WANsecurity-level 0ip address 33.33.33.2 255.255.255.252!interface GigabitEthernet1nameif LANsecurity-level 100ip address 192.168.3.1 255.255.255.252!ftp mode passivesame-security-traffic permit inter-interfaceobject network HQ-LAN-GREhost 192.168.1.2
118
object network Branch1-LAN-GREhost 192.168.2.2object network Branch2-LAN-GREhost 192.168.3.2object network Branch2-WANhost 33.33.33.2access-list WAN-IN extended permit ip object HQ-LAN-GRE object Branch2-LAN-GREaccess-list WAN-IN extended permit ip object Branch1-LAN-GRE object Branch2-LAN-GREaccess-list WAN-IN extended deny ip any anyaccess-list HQ-Br2-Map extended permit ip object Branch2-LAN-GRE object HQ-LAN-GREpager lines 24mtu WAN 1500mtu LAN 1500no failovericmp unreachable rate-limit 1 burst-size 1no asdm history enablearp timeout 14400nat (WAN,LAN) source static HQ-LAN-GRE HQ-LAN-GRE destination static Branch2-LAN-GRE Branch2-LAN-GREnat (WAN,LAN) source static Branch1-LAN-GRE Branch1-LAN-GRE destination staticBranch2-LAN-GRE Branch2-LAN-GREnat (LAN,WAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination static HQ-LAN-GRE HQ-LAN-GREnat (LAN,WAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination staticBranch1-LAN-GRE Branch1-LAN-GREaccess-group WAN-IN in interface WAN!router ospf 1network 33.33.33.0 255.255.255.252 area 0network 192.168.3.0 255.255.255.252 area 0log-adj-changes!timeout xlate 3:00:00timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolutetimeout tcp-proxy-reassembly 0:01:00timeout floating-conn 0:00:00dynamic-access-policy-record DfltAccessPolicyuser-identity default-domain LOCALno snmp-server locationno snmp-server contactsnmp-server enable traps snmp authentication linkup linkdown coldstart warmstartcrypto ipsec ikev1 transform-set HQ-Br2 esp-aes-256 esp-sha-hmaccrypto map HQ-Map 1 match address HQ-Br2-Mapcrypto map HQ-Map 1 set peer 11.11.11.2crypto map HQ-Map 1 set ikev1 transform-set HQ-Br2crypto map HQ-Map interface WAN
119
crypto isakmp identity addresscrypto ikev1 enable WANcrypto ikev1 policy 1authentication pre-shareencryption aes-256hash shagroup 2lifetime 3600telnet timeout 5ssh timeout 5console timeout 0threat-detection basic-threatthreat-detection statistics access-listno threat-detection statistics tcp-intercepttunnel-group 11.11.11.2 type ipsec-l2ltunnel-group 11.11.11.2 ipsec-attributesikev1 pre-shared-key *****!!prompt hostname contextno call-home reporting anonymouscall-homeprofile CiscoTAC-1no activedestination address http https://tools.cisco.com/its/service/oddce/services/DDCEServicedestination address email [email protected] transport-method httpsubscribe-to-alert-group diagnosticsubscribe-to-alert-group environmentsubscribe-to-alert-group inventory periodic monthlysubscribe-to-alert-group configuration periodic monthlysubscribe-to-alert-group telemetry periodic daily
crashinfo save disableCryptochecksum:0b182dc58f7c0ef80c98f462550342c3: end
4. Configuratia Branch2-RBranch2-R#sh runBuilding configuration...
Current configuration:!version 12.0service timestamps debug uptimeservice timestamps log uptimeno service password-encryption!hostname Branch2-R!ip subnet-zero
120
ip tcp synwait-time 5!interface Tunnel1ip address 172.28.2.2 255.255.255.252no ip directed-broadcastip mtu 1400tunnel source 192.168.3.2tunnel destination 192.168.1.2!interface Tunnel2ip address 172.28.3.2 255.255.255.252no ip directed-broadcastip mtu 1400tunnel source 192.168.3.2tunnel destination 192.168.2.2!interface FastEthernet0/0ip address 192.168.3.2 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet1/0ip address 10.10.3.1 255.255.255.0no ip directed-broadcastduplex autospeed auto!router ospf 1passive-interface FastEthernet1/0network 10.10.3.0 0.0.0.255 area 0network 172.28.2.0 0.0.0.3 area 0network 172.28.3.0 0.0.0.3 area 0network 192.168.3.0 0.0.0.3 area 0!ip classlessip route 10.10.1.0 255.255.255.0 172.28.2.1ip route 10.10.2.0 255.255.255.0 172.28.3.1no ip http server!!line con 0exec-timeout 0 0privilege level 15logging synchronoustransport input noneline aux 0exec-timeout 0 0privilege level 15logging synchronous
121
line vty 0 4login!end
5. Configuratia HQ-ASAHQ-ASA(config)# sh run: Saved:ASA Version 8.4(2)!hostname HQ-ASAenable password 8Ry2YjIyt7RRXU24 encryptedpasswd 2KFQnbNIdI.2KYOU encryptednames!interface GigabitEthernet0nameif WANsecurity-level 0ip address 11.11.11.2 255.255.255.252!interface GigabitEthernet1nameif LANsecurity-level 100ip address 192.168.1.1 255.255.255.252!ftp mode passivesame-security-traffic permit inter-interfaceobject network HQ-LAN-GREhost 192.168.1.2object network HQ-WANhost 11.11.11.2object network Branch1-LANsubnet 10.10.2.0 255.255.255.0object network Branch2-LAN-GREhost 192.168.3.2object network HQ-LANsubnet 10.10.1.0 255.255.255.0object network RemoteUserssubnet 10.20.1.0 255.255.255.0object network Host1host 10.10.1.100access-list WAN-IN extended permit ip object Branch1-LAN object HQ-LANaccess-list WAN-IN extended permit ip object Branch2-LAN-GRE object HQ-LAN-GREaccess-list WAN-IN extended permit ip object RemoteUsers anyaccess-list WAN-IN extended deny ip any anyaccess-list HQ-Br1-Map extended permit ip object HQ-LAN object Branch1-LANaccess-list HQ-Br2-Map extended permit ip object HQ-LAN-GRE object Branch2-LAN-GREpager lines 24mtu WAN 1500
122
mtu LAN 1500ip local pool RemotePool 10.20.1.1-10.20.1.254no failovericmp unreachable rate-limit 1 burst-size 1no asdm history enablearp timeout 14400nat (WAN,LAN) source static HQ-LAN HQ-LAN destination static Branch1-LAN Branch1-LANnat (LAN,WAN) source static Branch1-LAN Branch1-LAN destination static HQ-LAN HQ-LANnat (WAN,LAN) source static HQ-LAN-GRE HQ-LAN-GRE destination static Branch2-LAN-GRE Branch2-LAN-GREnat (LAN,WAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination static HQ-LAN-GRE HQ-LAN-GREnat (WAN,LAN) source static RemoteUsers RemoteUsers destination static Host1 Host1access-group WAN-IN in interface WAN!router ospf 1network 11.11.11.0 255.255.255.252 area 0network 192.168.1.0 255.255.255.252 area 0log-adj-changes!timeout xlate 3:00:00timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolutetimeout tcp-proxy-reassembly 0:01:00timeout floating-conn 0:00:00dynamic-access-policy-record DfltAccessPolicyuser-identity default-domain LOCALno snmp-server locationno snmp-server contactsnmp-server enable traps snmp authentication linkup linkdown coldstart warmstartcrypto ipsec ikev1 transform-set HQ-Br1 esp-aes-256 esp-sha-hmaccrypto ipsec ikev1 transform-set HQ-Br2 esp-aes-256 esp-sha-hmaccrypto ipsec ikev1 transform-set RemoteSet esp-aes-256 esp-sha-hmaccrypto dynamic-map HQ-Map-dynamic 1 set ikev1 transform-set RemoteSetcrypto dynamic-map HQ-Map-dynamic 1 set reverse-routecrypto map HQ-Map 1 match address HQ-Br1-Mapcrypto map HQ-Map 1 set peer 22.22.22.2crypto map HQ-Map 1 set ikev1 transform-set HQ-Br1crypto map HQ-Map 2 match address HQ-Br2-Mapcrypto map HQ-Map 2 set peer 33.33.33.2crypto map HQ-Map 2 set ikev1 transform-set HQ-Br2crypto map HQ-Map 3 ipsec-isakmp dynamic HQ-Map-dynamiccrypto map HQ-Map interface WANcrypto isakmp identity addresscrypto ikev1 enable WANcrypto ikev1 policy 1
123
authentication pre-shareencryption aes-256hash shagroup 2lifetime 3600telnet timeout 5ssh timeout 5console timeout 0threat-detection basic-threatthreat-detection statistics access-listno threat-detection statistics tcp-interceptusername remoteuser password CxAh5EQ/8f4FVvNi encrypted privilege 15tunnel-group 22.22.22.2 type ipsec-l2ltunnel-group 22.22.22.2 ipsec-attributesikev1 pre-shared-key *****tunnel-group 33.33.33.2 type ipsec-l2ltunnel-group 33.33.33.2 ipsec-attributesikev1 pre-shared-key *****tunnel-group RemoteGroup type remote-accesstunnel-group RemoteGroup general-attributesaddress-pool RemotePooltunnel-group RemoteGroup ipsec-attributesikev1 pre-shared-key *****!!prompt hostname contextno call-home reporting anonymouscall-homeprofile CiscoTAC-1no activedestination address http https://tools.cisco.com/its/service/oddce/services/DDCEServicedestination address email [email protected] transport-method httpsubscribe-to-alert-group diagnosticsubscribe-to-alert-group environmentsubscribe-to-alert-group inventory periodic monthlysubscribe-to-alert-group configuration periodic monthlysubscribe-to-alert-group telemetry periodic daily
crashinfo save disableCryptochecksum:0f7dfcfe2d1c21004a349760d3638c70: end
6. Configuratia HQ-RHQ-R#sh runBuilding configuration...
Current configuration:!version 12.0service timestamps debug uptime
124
service timestamps log uptimeno service password-encryption!hostname HQ-R!ip subnet-zeroip tcp synwait-time 5!interface Tunnel2ip address 172.28.2.1 255.255.255.252no ip directed-broadcastip mtu 1400tunnel source 192.168.1.2tunnel destination 192.168.3.2!interface FastEthernet0/0ip address 192.168.1.2 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet1/0ip address 10.10.1.1 255.255.255.0no ip directed-broadcastduplex autospeed auto!router ospf 1passive-interface FastEthernet1/0network 10.10.1.0 0.0.0.255 area 0network 172.28.2.0 0.0.0.3 area 0network 192.168.1.0 0.0.0.3 area 0!ip classlessip route 10.10.3.0 255.255.255.0 172.28.2.2no ip http server!!line con 0exec-timeout 0 0privilege level 15logging synchronoustransport input noneline aux 0exec-timeout 0 0privilege level 15logging synchronousline vty 0 4login!
125
end
7. Configuratia ISP1ISP1#sh runBuilding configuration...
Current configuration:!version 12.0service timestamps debug uptimeservice timestamps log uptimeno service password-encryption!hostname ISP1!ip subnet-zeroip tcp synwait-time 5!interface FastEthernet0/0ip address 11.11.11.1 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet1/0ip address 77.77.77.1 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet2/0ip address 88.88.88.2 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet3/0no ip addressno ip directed-broadcastshutdownduplex autospeed auto!router ospf 1network 11.11.11.0 0.0.0.3 area 0network 77.77.77.0 0.0.0.3 area 0network 88.88.88.0 0.0.0.3 area 0!ip classlessno ip http server
126
!!line con 0exec-timeout 0 0privilege level 15logging synchronoustransport input noneline aux 0exec-timeout 0 0privilege level 15logging synchronousline vty 0 4login!end
8. Configuratia ISP2ISP2#sh runBuilding configuration...
Current configuration:!version 12.0service timestamps debug uptimeservice timestamps log uptimeno service password-encryption!hostname ISP2!ip subnet-zeroip tcp synwait-time 5!interface FastEthernet0/0ip address 33.33.33.1 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet1/0ip address 99.99.99.1 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet2/0ip address 77.77.77.2 255.255.255.252no ip directed-broadcastduplex autospeed auto!
127
interface FastEthernet3/0no ip addressno ip directed-broadcastshutdownduplex autospeed auto!router ospf 1network 33.33.33.0 0.0.0.3 area 0network 77.77.77.0 0.0.0.3 area 0network 99.99.99.0 0.0.0.3 area 0!ip classlessno ip http server!!line con 0exec-timeout 0 0privilege level 15logging synchronoustransport input noneline aux 0exec-timeout 0 0privilege level 15logging synchronousline vty 0 4login!end
9. Configuratia ISP3ISP3#sh runBuilding configuration...
Current configuration:!version 12.0service timestamps debug uptimeservice timestamps log uptimeno service password-encryption!hostname ISP3!ip subnet-zeroip tcp synwait-time 5!interface FastEthernet0/0ip address 22.22.22.1 255.255.255.252no ip directed-broadcast
128
duplex autospeed auto!interface FastEthernet1/0ip address 88.88.88.1 255.255.255.252no ip directed-broadcastduplex autospeed auto!interface FastEthernet2/0ip address 99.99.99.2 255.255.255.252no ip directed-broadcastduplex autospeed auto!router ospf 1network 22.22.22.0 0.0.0.3 area 0network 88.88.88.0 0.0.0.3 area 0network 99.99.99.0 0.0.0.3 area 0!ip classlessno ip http server!!line con 0exec-timeout 0 0privilege level 15logging synchronoustransport input noneline aux 0exec-timeout 0 0privilege level 15logging synchronousline vty 0 4login!end
132
ANEXA 5Site-ul SSL
<HEAD><TITLE>LUCRARE DE LICENTA - CONSTANTIN MANEA (HTTPS - SSL)</TITLE><CENTER><H1> UNIVERSITATEA POLITEHNICA BUCURESTI </H1><H2> FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIAINFORMATIEI </H2><IMG SRC=./UPB.jpg><H3><P align=left> Profesor Coordonator: </P><P align=left> Sl.dr.ing. ADRIAN FLORIN PAUN </P><P align=right> Absolvent: </P><P align=right> CONSTANTIN MANEA </P></H3></HEAD>
Figura 1. UPB.jpg
133
ANEXA 6Site-ul TLS
<HEAD><TITLE>LUCRARE DE LICENTA - CONSTANTIN MANEA (HTTPS - TLS)</TITLE><CENTER><H1> UNIVERSITATEA POLITEHNICA BUCURESTI </H1><H2> FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIAINFORMATIEI </H2><IMG SRC=./UPB.jpg><H3><P align=left> Profesor Coordonator: </P><P align=left> Sl.dr.ing. ADRIAN FLORIN PAUN </P><P align=right> Absolvent: </P><P align=right> CONSTANTIN MANEA </P></H3></HEAD>
Figura 2. UPB.jpg
134
ANEXA 7Fisierul ssl.conf
[root@CentOS-1 https-ssl]# cat /etc/httpd/conf.d/ssl.conf## This is the Apache server configuration file providing SSL support.# It contains the configuration directives to instruct the server how to# serve pages over an https connection. For detailing information about these# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>## Do NOT simply read the instructions in here without understanding# what they do. They're here only as hints or reminders. If you are unsure# consult the online docs. You have been warned.#
LoadModule ssl_module modules/mod_ssl.so
## When we also provide SSL we have to listen to the# the HTTPS port in addition.#Listen 443Listen 1443
#### SSL Global Context#### All SSL configuration in this context applies both to## the main server and all SSL-enabled virtual hosts.##
# Pass Phrase Dialog:# Configure the pass phrase gathering process.# The filtering dialog program (`builtin' is a internal# terminal dialog) has to provide the pass phrase on stdout.SSLPassPhraseDialog builtin
# Inter-Process Session Cache:# Configure the SSL Session Cache: First the mechanism# to use and second the expiring timeout (in seconds).SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)SSLSessionCacheTimeout 300
# Semaphore:# Configure the path to the mutual exclusion semaphore the# SSL engine uses internally for inter-process synchronization.SSLMutex default
# Pseudo Random Number Generator (PRNG):
135
# Configure one or more sources to seed the PRNG of the# SSL library. The seed data should be of good random quality.# WARNING! On some platforms /dev/random blocks if not enough entropy# is available. This means you then cannot use the /dev/random device# because it would lead to very long connection times (as long as# it requires to make more entropy available). But usually those# platforms additionally provide a /dev/urandom device which doesn't# block. So, if available, use this one instead. Read the mod_ssl User# Manual for more details.SSLRandomSeed startup file:/dev/urandom 256SSLRandomSeed connect builtin#SSLRandomSeed startup file:/dev/random 512#SSLRandomSeed connect file:/dev/random 512#SSLRandomSeed connect file:/dev/urandom 512
## Use "SSLCryptoDevice" to enable any supported hardware# accelerators. Use "openssl engine -v" to list supported# engine names. NOTE: If you enable an accelerator and the# server does not start, consult the error logs and ensure# your accelerator is functioning properly.#SSLCryptoDevice builtin#SSLCryptoDevice ubsec
#### SSL Virtual Host Context##
#<VirtualHost _default_:443>
# General setup for the virtual host, inherited from global configuration#DocumentRoot "/var/www/html"#ServerName www.example.com:443
# Use separate log files for the SSL virtual host; note that LogLevel# is not inherited from httpd.conf.ErrorLog logs/ssl_error_logTransferLog logs/ssl_access_logLogLevel warn
# SSL Engine Switch:# Enable/Disable SSL for this virtual host.SSLEngine on
# SSL Protocol support:# List the enable protocol levels with which clients will be able to# connect. Disable SSLv2 access by default:#SSLProtocol all
136
# SSL Cipher Suite:# List the ciphers that the client is permitted to negotiate.# See the mod_ssl documentation for a complete list.#SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
# Server Certificate:# Point SSLCertificateFile at a PEM encoded certificate. If# the certificate is encrypted, then you will be prompted for a# pass phrase. Note that a kill -HUP will prompt again. A new# certificate can be generated using the genkey(1) command.SSLCertificateFile /etc/pki/tls/http/apachecert.pem
# Server Private Key:# If the key is not combined with the certificate, use this# directive to point at the key file. Keep in mind that if# you've both a RSA and a DSA private key you can configure# both in parallel (to also allow the use of DSA ciphers, etc.)SSLCertificateKeyFile /etc/pki/tls/http/apachekey.pem
# Server Certificate Chain:# Point SSLCertificateChainFile at a file containing the# concatenation of PEM encoded CA certificates which form the# certificate chain for the server certificate. Alternatively# the referenced file can be the same as SSLCertificateFile# when the CA certificates are directly appended to the server# certificate for convinience.#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
# Certificate Authority (CA):# Set the CA certificate verification path where to find CA# certificates for client authentication or alternatively one# huge file containing all of them (file must be PEM encoded)#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
# Client Authentication (Type):# Client certificate verification type and depth. Types are# none, optional, require and optional_no_ca. Depth is a# number which specifies how deeply to verify the certificate# issuer chain before deciding the certificate is not valid.#SSLVerifyClient require#SSLVerifyDepth 10
# Access Control:# With SSLRequire you can do per-directory access control based# on arbitrary complex boolean expressions containing server# variable checks and other lookup directives. The syntax is a# mixture between C and Perl. See the mod_ssl documentation# for more details.#<Location />#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
137
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/#</Location>
# SSL Engine Options:# Set various options for the SSL engine.# o FakeBasicAuth:# Translate the client X.509 into a Basic Authorisation. This means that# the standard Auth/DBMAuth methods can be used for access control. The# user name is the `one line' version of the client's X.509 certificate.# Note that no password is obtained from the user. Every entry in the user# file needs this password: `xxj31ZMTZzkVA'.# o ExportCertData:# This exports two additional environment variables: SSL_CLIENT_CERT and# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the# server (always existing) and the client (only existing when client# authentication is used). This can be used to import the certificates# into CGI scripts.# o StdEnvVars:# This exports the standard SSL/TLS related `SSL_*' environment variables.# Per default this exportation is switched off for performance reasons,# because the extraction step is an expensive operation and is usually# useless for serving static content. So one usually enables the# exportation for CGI and SSI requests only.# o StrictRequire:# This denies access when "SSLRequireSSL" or "SSLRequire" applied even# under a "Satisfy any" situation, i.e. when it applies access is denied# and no other module can change it.# o OptRenegotiate:# This enables optimized SSL connection renegotiation handling when SSL# directives are used in per-directory context.#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars</Files><Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars</Directory>
# SSL Protocol Adjustments:# The safe and default but still SSL/TLS standard compliant shutdown# approach is that mod_ssl sends the close notify alert but doesn't wait for# the close notify alert from client. When you need a different shutdown# approach you can use one of the following variables:# o ssl-unclean-shutdown:# This forces an unclean shutdown when the connection is closed, i.e. no# SSL close notify alert is send or allowed to received. This violates
138
# the SSL/TLS standard but is needed for some brain-dead browsers. Use# this when you receive I/O errors because of the standard approach where# mod_ssl sends the close notify alert.# o ssl-accurate-shutdown:# This forces an accurate shutdown when the connection is closed, i.e. a# SSL close notify alert is send and mod_ssl waits for the close notify# alert of the client. This is 100% SSL/TLS standard compliant, but in# practice often causes hanging connections with brain-dead browsers. Use# this only for browsers where you know that their SSL implementation# works correctly.# Notice: Most problems of broken clients are also related to the HTTP# keep-alive facility, so you usually additionally want to disable# keep-alive for those clients, too. Use variable "nokeepalive" for this.# Similarly, one has to force some clients to use HTTP/1.0 to workaround# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and# "force-response-1.0" for this.SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \downgrade-1.0 force-response-1.0
# Per-Server Logging:# The home of a custom SSL log file. Use this when you want a# compact non-error SSL logfile on a virtual host basis.CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
#</VirtualHost>
#<VirtualHost *:443># SSLEngine on# SSLProtocol SSLv3# SSLCipherSuite HIGH:!aNULL:!MD5# SSLCertificateFile /etc/pki/tls/http/apachecert.pem# SSLCertificateKeyFile /etc/pki/tls/http/apachekey.pem# DocumentRoot "/var/www/html/https-ssl"
#<Directory /var/www/html/https-ssl># Order allow,deny# Allow from all#</Directory>#</VirtualHost><VirtualHost *:443>
SSLEngine onSSLProtocol TLSv1SSLCipherSuite HIGH:!aNULL:!MD5SSLCertificateFile /etc/pki/tls/http/apachecert.pemSSLCertificateKeyFile /etc/pki/tls/http/apachekey.pemDocumentRoot "/var/www/html/https-tls"
<Directory /var/www/html/https-tls>Order allow,deny