LUCRARE DE LICENŢĂ -...

139
1 UNIVERSITATEA POLITEHNICĂ BUCUREŞTI FACULTATEA 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şti 2013

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

3

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.

23

Figura 2.2. Algorimul DES

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.

30

Figura 2.8. Schema bloc a algoritmului IDEA

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.

96

Figura 5.8 – Ping Host1 – Host2 prin tunel IPSec

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.

102

Figura 5.14 – Mesajul “Server Hello”

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

113

ANEXE

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

129

ANEXA 2Echo-reply in tunel GRE

130

ANEXA 3Echo-reply in tunel IPSec

131

ANEXA 4Echo-reply in tunel GRE over IPSec

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

139

Allow from all</Directory></VirtualHost><VirtualHost *:80>

SSLEngine offDocumentRoot "/var/www/html/http"

<Directory /var/www/html/http>Order allow,denyAllow from all

</Directory></VirtualHost>