FACULTATEA DE ELECTRONIC, TELECOMUNICAII I TEHNOLOGIA INFORMAIEI LUCRARE DE LICEN Coordonator tiinific: S.l. dr. ing. ADRIAN FLORIN PUN Absolvent: CONSTANTIN MANEA Bucureti 2013 2 UNIVERSITATEA POLITEHNIC BUCURETI FACULTATEA DE ELECTRONIC, TELECOMUNICAII I TEHNOLOGIA INFORMAIEI SECURITATEA IN RETELELE TCP/IP Coordonator tiinific: S.l. dr. ing. ADRIAN FLORIN PUN Absolvent: CONSTANTIN MANEA Bucureti 2013 3 4 CUPRINS: 1. Introducere....pag.00 1.1 Tipuri de atacuri informatice.......pag.00 1.2 Consideraii generale privind securitatea n reelele IP...pag.00 1.2.1 Servicii de securitate.....pag.00 1.2.2 Mecanisme de securitate specifice....pag.00 1.2.3 Tehnici de securitate..pag.00 1.2.3.1 Securitate prin firewal....pag.00 1.2.3.2 Criptografia....pag.00 1.2.3.3 Reea Virtual Privat....pag.00 1.2.3.4 Securitatea la nivelul aplicaie...pag.00 2. Algoritmi de criptare.pag.00 2.1 Introducere in criptografie...pag.00 2.2 Algoritmi criptografici cu chei simerice..pag.00 2.2.1 DES...pag.00 2.2.2 Triplu DES....pag.00 2.2.3 AES...pag.00 2.2.4 IDEA.pag.00 2.3 Algoritmi criptografici cu chei asimetrice..pag.00 2.3.1 Algoritmul RSApag.00 2.3.2 Algoritmul Diffie-Hellman ..pag.00 2.3.3 Semnaturi digitale.pag.00 2.4 Concluzii.pag.00 3. Securizarea comunicatiilor digitale prin intermediul VPN (Virtual Private Network) ..pag.00 3.1 Tipuri de retele VPN....pag.00 3.1.1 Remote VPN.pag.00 3.1.2 Intranet VPN.pag.00 3.1.3 Extranet VPN....pag.00 3.2 Protocoale de tunelare..pag.00 3.2.1 Protocoale de nivel 2 OSI.pag.00 3.2.2 Protocoale de nivel 3 OSI.pag.00 3.3 Standardizarea retelelor VPN protocoalele ISAKMP si IPsec.pag.00 3.3.1 Protocolul AH...pag.00 3.3.2 Protocolul ESP..pag.00 3.3.3 Protocolul IKE si IKEv2...pag.00 3.4 Principalele avantaje ale reelelor virtuale private...pag.00 3.5 Best practices in retelele private virtuale..pag.00 4. Metode de control al accesului la servicii prin schimb de chei de acces..pag.00 4.1 SSL i TLS...pag.00 4.2 Arhitectura TLS ...pag.00 4.2.1 Protocolul de Handshake TLS...pag.00 4.3 Arhitectura SSL....pag.00 4.3.1 Criptri folosite de SSL.....pag.00 4.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.00 4.3.2.2 Autentificarea clientului.pag.00 4.4 Atacuri rezolvate n SSL v3.pag.00 4.5 Diferene ntre SSLi TLS ..pag.00 4.6 Protocolul de login la distan Secure Shell (SSH) .pag.00 4.6.1 Arhitectura SSH....pag.00 4.6.2 Protocolul SSH la nivel transport..pag.00 4.6.3 Strategia SSH....pag.00 5. Aplicatie: simularea unei retele VPN (remote VPN, Intranet VPN si Extranet VPN) .pag.00 Concluzii..pag.00 Bibliografie..pag.00 6 LISTA ACRONIME: AAA= Authentication, Authorization and Accounting AES =Advanced Encryption Standard AH =Authentification Header ASDL =Abstract-Type and Scheme-Definition Language ATM =Asynchronous Transfer Mode DES =Data Encryption Standard DSA =Digital Signature Algoritm DSS =Digital Signature Standard ESP = Encapsulating Security Payload Protocol ESP =Encapsulated Security Payload FTP =File Transfer Protocol GNS3 =Graphical Network Simulator GRE =Generic Route Encapsulation HMAC =Hash-Based Message Authentication Code IDEA =International Data Encryption Algorithm IETF =Internet Engineering Task Force IKE =Internet Key Exchange IP =Internet Protocol IPsec =Internet Protocol Security IPX =Internetwork Packet Exchange ISAKMP =Internet Security Association and Key Management Protocol ISDN =Integrated Services Digital Network L2F =Layer 2 Forwarding L2TP =Layer 2 Tunneling Protocol MD5 =Message Digest Algorithm 5 NAS =Network-attached Storage NAT =Network Address Translation NetBEUI =NetBIOS Enhanced User Interface PGP =Pretty Good Privacy PKCS = Public-Key Cryptography Standards PPP =Point-to-Point Protocol PPTP =Point-to-Point Tunneling Protocol RSA = Rivest Shamir Adleman S/MIME =Secure/Multipurpose Internet Mail Extensions SHA =Secure Hash Algorithm SHA =Secure Hash Algorithm SONET =Synchronous Optical Networking SSL =Secure Sockets Layer TCP/IP =Transmission Control Protocol/Internet Protocol UDP =User Datagram Protocol VLSI = Very Large Scale Integration VPN =Virtual Private Network WAN =Wide Area Network 7 1. INTRODUCERE In primii ani ale existenei lor, reelele de calculatoare au fost folosite de catre cercettorii din universiti pentru trimiterea potei electronice (serviciul de e-mail) sau pentru a permite conexiuni multiple la un server i de ctre funcionarii corporaiilor pentru a partaja imprimantele. n aceste condiii, problema securitii nu atrgea prea mult atenia. 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 Consideraii generale privind securitatea n reelele IP Domeniul care se ocup de studiul mecanismelor de protecie a informaiei n scopul asigurrii unui nivel de ncredere n aceasta se numeste securitatea informatiei. Putem afirma c nivelul de ncredere n informaie depinde de nivelul mecanismelor de securitate care i garanteaz protecia i de riscurile care apar asupra securitii ei. Securitatea informaiei este un concept mai larg care se refer la asigurarea integritii, confidenialitii i disponibilitii informaiei. [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 rndul lor pot fi compuse din cteva mecanisme. Primul obiectiv este confidenialitatea informatiei, sau asigurarea faptului c informaia rmne accesibil doar prilor autorizate n acest sens. Acesta este cel mai vechi obiectiv al criptologiei. n rndul necunosctorilor este nc larg rspndit opinia c noiunea de criptografie este sinonim cu confidenialitatea, 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 legtura cu pstrarea secret a informaiei. Integritatea face referire la asigurarea faptului c informaia nu a fost alterat pe parcursul transmisiei sau de ctre un posibil adversar. Autentificarea avand dou coordonate distincte: autentificarea entitilor i autentificarea informaiei. Autentificarea entitilor se refer la existena unei garanii cu privire la identitatea unei anume entiti. Autentificarea informaiei se refer la garantarea sursei de provenien a informaiei n mod implicit aceasta garanteaz i integritatea informaiei (este evident c asigurarea autenticitii informaiei implic i asigurarea integritii acesteia). Autentificarea este n general strns legat de un factor temporal, este evident c o informaie 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 garanie cu privire la momentul de timp la care entitatea de care este legat a depozitat-o (deoarece n acest caz informaia putea fi replicat i depus de orice alt entitate). Ultimul obiectiv este non-repudierea previne o entitate n a nega o aciune ntreprins (aciune materializat desigur n transmisia unei informaii). Aceasta nseamn c dac la un moment dat o entitate neag ca ar fi emis o anume informaie, entitatea care a primit informaia respectiv poate demonstra unei pri neutre c informaia provine ntr-adevr 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 livrrii poate fi realizat utiliznd o combinatie potrivit a mecanismelor de integritate a datelor, semntura 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 pri, creia i se acord ncredere). Mecanismul de criptare are ca scop transformarea datelor astfel nct ele s devin inteligibile numai de ctre entitatea autorizat (care, n general, pstreaz o cheie secret pentru a le descifra) sau de a transforma datele ntr-o manier unic, ce poate aparine numai expeditorului. Numai entitatea autorizat, care deine o cheie secret, le poate decripta i citi. Acest mecanism este folosit pentru a furniza confidenialitate, dar el poate fi utilizat i pentru asigurarea altor ctorva servicii de securitate. ISO accept n criptare att algoritmi simetrici ct si algoritmi nesimetrici (cu chei publice). Mecanismul de semntur digital trebuie s garanteze c datele au fost produse chiar de ctre 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 entitti de date; procedura pentru verificarea semnturii. Folosinduse criptografia asimetric, semntura poate fi generat prin calcularea unei funcii de dispersie pentru datele ce trebuie semnate, iar apoi, criptnd valoarea rezultat folosindu-se componenta privat a cheii asimetrice a semnatarului. Aceast valoare depinde de momentul 12 emiterii semnturii, pentru a preveni falsificarea prin retransmitere a datelor respective, precum i de coninutul mesajului. Semntura trebuie produs numai pe baza informaiilor personale ale semnatarului (cheia sa privat a algoritmului de cifrare, de exemplu), n timp ce procedura de verificare este fcut public. Mecanismul de control al accesului controleaz accesul entitilor la resurse, presupunnd cunoscut identitatea entitii ce solicit accesul. Aciunile se produc atunci cnd 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 urmtoarele soluii: lista drepturilor de acces (entitate, resurs); parole; capabiliti; 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 unitilor de date (n ntregime sau partial numai un cmp), mpiedicnd modificarea, tergerea sau amestecarea datelor pe durata transmisiei. Acest mecanism presupune dou proceduri: una pentru emisie. Expeditorul adaug la unitatea de date o informaie adiional 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 asigurrii actualitii datelor. Mecanismul de autentificare mutual este folosit pentru a dovedi, reciproc, identitatea entitilor. Se pot folosi pentru acestea parole sau tehnici criptografice (parole cifrate, cartele magnetice sau inteligente, caracteristici biometrice, biochimice). Cnd sunt folosite tehnicile criptografice, acestea sunt deseori combinate cu protocoale cu interblocare, "hand-shaking", pentru protectia mpotriva nlocuirii (relurii) datelor. Principiul este urmtorul: entitatea A trimite identitatea sa (cifrat sau nu) entittii 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 protecie mpotriva analizei de trafic si implic una din urmtoarele 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 destinaii n afara celei dorite; Mecanismul de control al rutrii se bazeaz pe faptul c ntr-o reea, 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 legturii). Acest mecanism trebuie folosit si ca suport pentru serviciile de integritate cu recuperarea datelor (de exemplu, pentru a permite selecia unor rute alternative n vederea protejrii n cazul unor atacuri ce ar perturba comunicaia). Mecanismul de notarizare. Acest mecanism presupune stabilirea unei a treia pri (notar) n care au ncredere toate entitile, care au rolul de a asigura garanii n privina integritii, originii sau destinatiei datelor. Atunci cnd se foloseste acest mecanism, datele sunt transferate ntre entiti prin intermediul notarului. [3] 1.2.3 Tehnici de securitate Dupa momentul in care tehnicile de securitate au fost implementate intr-o retea, informaiile nu vor mai putea fi accesate sau interceptate de persoane neautorizate i se va impiedica falsificarea informaiilor transmise sau utilizarea clandestin a anumitor servicii destinate unor categorii aparte de utilizatori ai reelelor. Tehnici specifice utilizate pentru implementarea securitatii unei retele: protecia fizic a dispozitivelor de reea i a liniilor de transmisie la nivelul fizic; proceduri de blocare a accesului la nivelul reele; 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 intruct nu ar corespunde strategiei si obiectivelor pentru care a fost proiectat reeaua. 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 reele 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 msuri de securitate; n funcie de importana 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 reele. Acesta reprezint implementarea politicii de securitate n termeni de configurare a reelei. Un firewall este un sistem plasat la grania dintre dou reele i posed urmtoarele proprieti [5] : tot traficul dintre cele dou reele trebuie s treac prin acesta; este permis trecerea numai a traficului autorizat prin politica local de securitate; sistemul nsui este imun la ncercrile de penetrare a securitii acestuia. Cel care controleaz accesul ntre Internet i o reea privat este firewall-ul; fr el, fiecare staie din reeaua privat este expus atacurilor de penetrare iniiate din afara reelei. Folosirea unui firewall pentru asigurarea securitii reelelor furnizeaz numeroase avantaje, ajutnd i la creterea nivelului de securitate al calculatoarelor componente dintre care vor fi enumerate doar cele mai importante: Concentrarea securitii. Pentru a asigura securitatea unei reele, un firewall poate fi o soluie mai puin costisitoare din punctul de vedere al administrrii n sensul c programele care trebuie modificate i software-ul adiional care trebuie instalat pot fi localizate (n totalitate sau n cea mai mare parte) n sistemul firewall, spre deosebire de situaia n care acestea ar fi fost distribuit pe toate calculatoarele din reea. Firewall-urile tind s fie mai uor de implementat i administrat, software-ul specializat executndu-se numai pe acestea. 15 Instituirea unei politici de acces n reea. Un firewall furnizeaz mijloacele de control al accesului ntr-o reea privat. Unele calculatoare gazd pot fi fi accesibile din exterior, n timp ce altele pot fi protejate efectiv fa de accesul nedorit Protecia serviciilor vulnerabile. Dac ntregul trafic spre/dinspre Internet trece printr-un firewall, atunci exist posibilitatea monitorizrii acestuia i furnizrii de statistici cu privire la folosirea reelei. Colectarea de date privitoare la ncercrile de atac asupra reelei permite verificarea rezistenei firewall-ului la asemenea ncercri, iar realizarea de statistici este folositoare pentru analizarea riscurilor i pentru studiile de dezvoltare a reelei. n afara avantajelor folosirii unui firewall exist, de asemenea, o serie de dezavantaje i un numr de probleme de securitate, care nu pot fi rezolvate prin intermediul acestuia. Printre dezavantajele utilizrii unui firewall se pot enumera: Restricionarea accesului la unele servicii. Un firewall impune, de cele mai multe ori, restricionarea sau blocarea accesului la unele servicii considerate vulnerabile, servicii care sunt ns solicitate intens de utilizatori (de exemplu TELNET, FTP etc.) Protecia sczut fa de atacurile provenite din interior. n general, un firewall nu asigur o protecie fa de ameninrile interne. Un firewall nu poate opri o persoan din interiorul reelei de a copia informaii i de a le furniza apoi celor interesai. Un firewall nu poate asigura protectie mpotriva unor ui secrete existente ntr-o reea, cum ar fi, de exemplu, permiterea nerestricionat a accesului prin modem la unele dintre calculatoarele interne. Este total nerecomandat investirea de resurse importante ntr-un firewall, dac celelalte modaliti posibile pentru furtul datelor sau pentru atac mpotriva sistemului sunt neglijate. Protecia sczut fa de virui. Firewall-urile nu pot asigura protecie mpotriva utilizatorilor care aduc local, din arhivele Internet, programe infectate de virui. Din cauz c aceste programe pot fi codificate sau comprimate n mai multe moduri, un firewall nu le poate scana n scopul identificrii semnturilor virale. Aceast problem a programelor infectate rmne i va trebui rezolvat prin alte metode, din care cea mai recomandat ar fi instalarea unui software antivirus pe fiecare staie din reea. Viteza de comunicaie cu exteriorul. Un firewall reprezint o potenial limitare pentru traficul dintre reeaua intern i exterior. Totui, aceast limitare nu constituie o problem n reelele legate cu exteriorul prin linii de mare vitez. Fiabilitatea proteciei firewall. O reea protejat prin firewall i concentreaz securitatea ntr-un singur loc, spre deosebire de varianta distribuirii securitii ntre mai multe sisteme. O compromitere a firewall-ului poate fi dezastruoas pentru celelalte sisteme (mai puin protejate) din reea. Un contra-argument la acest dezavantaj const n faptul c 16 incidentele de securitate apar, mai degrab, pe msur ce numrul de sisteme din reea crete, iar distribuirea securitii ntre acestea face s creasc modalitile n care reeaua poate fi atacat. n ciuda tuturor acestor probleme i dezavantaje, se recomand ca protejarea resurselor unei reele s se fac att prin intermediul firewall-urilor, ct i al altor mijloace i tehnici de securitate. [6] 1.2.3.2 Criptografia Criptografia nseamn comunicare n prezena adversarilor. Ronald Rivest Multe servicii i mecanisme de securitate folosite n Internet au la baza criptografia, securizarea informaiei precum i autentificarea i restricionarea accesului ntr-un sistem informatic folosind metode matematice pentru transformarea datelor n intenia de a ascunde coninutul lor sau de a le proteja mpotriva modificrii. Criptografia, folosit intr-un protocol de securitate, vrea s asigure dezideratele mentionate mai sus, fundamentale pentru securitatea informatiei: confidenialitate, integritatea datelor, autenticitatea si ne-repudierea. Criptarea este o metod de protejare a informaiilor sensibile stocate n sistemele de calcul, dar i a celor care sunt transmise pe liniile de comunicaie. Informaiile care sunt criptate ramn sigure chiar dac sunt transmise printr-o reea care nu ofer o securitate puternic. Cea mai popular metod de protecie, att pentru comunicaii, ct i pentru datele cu caracter secret a devenit criptarea. Reeaua Internet, spre exemplu, ofer servicii de criptare utilizatorilor si. Cu cat se avanseaza si se constientizeaza beneficiile aduse de utilizarea criptrii, a dezavantajelor lipsei de protecie 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 reea sau date obinuite stocate n sistemul de calcul. Este impresionant numarul mare de folosire a noiunii de criptare-decriptare cnd este vorba de securitatea datelor. [6] Tehnologia de criptare asigur c mesajele nu sunt interceptate sau citite de altcineva dect 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 dect 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 garanii de securitate. Atunci cnd obiectul manipulat este informaia singura garanie poate fi oferit de ctre criptografie, deci rolul acesteia este de a oferi garanii n faa riscurilor de securitate. 1.2.3.3 Reea Virtual Privat O tehnologie de comunicaii computerizata sigur, dar bazat pe o reea public poarta numele de reea privat virtual, din cauza acestui fapt nu este foarte sigur. Tehnologia VPN este conceput tocmai pentru a crea ntr-o reea public o subreea de confidenialitate aproape la fel de nalt ca ntr-o reea privat adevrat la care sunt legai numai utilizatori autorizai. n mod intenionat aceast subreea, denumit totui "reea VPN", nu poate comunica cu celelalte sisteme sau utilizatori ai reelei publice de baz. Utilizatorii unei reele VPN pot cpta astfel impresia c sunt conectai la o reea privat dedicat, independent, cu toate avantajele pentru securitate, reea care n realitate este doar virtual, ea de fapt fiind o subreea nglobat fizic n reeaua de baz. [7] Tehnologia VPN folosete o combinaie 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 ctre utilizatori prin retea. Tehnologiile VPN ofer o cale de a folosi infrastructurile reelelor publice cum ar fi Internetul pentru a asigura acces securizat i privat la aplicaii i resurse ale companiei. 1.2.3.4 Securitatea la nivelul aplicaie 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 asigurrii securitii la acest nivel este independena de sistemele de operare i de protocoalele utilizate pe nivelele inferioare. Dar obligatoriu, trebuie menionat faptul c la acest nivel securitatea este dependent de aplicaie, adica trebuie implementat individual pentru fiecare aplicaie. 18 2. ALGORITMI DE CRIPTARE Criptologia este considerat ca fiind cu adevrat o tiin de foarte puin timp. Aceasta cuprinde att criptografia - scrierea secretizat - ct i criptanaliza. De asemenea, criptologia reprezint nu numai o art veche, ci i o tiina nou: veche pentru c este utilizata de pe timpul lui Iulius Cezar, dar nou pentru c a devenit o tem de cercetare academico-tiinific abia ncepnd cu anii 1970. Aceast disciplin este legat de multe altele, de exemplu de teoria numerelor, algebr, teoria complexitii, informatic. Criptografia este definit ca fiind studiul tehnicilor matematice referitoare la aspecte de securitatea informaiei precum confidenialitate, integritate, autentificarea entitilor, autentificarea provenienei datelor. [9] 2.1 Introducere in criptografie Atunci cnd trimit o scrisoare prin pot, majoritatea oamenilor obinuiesc s sigileze plicul. Dac i-am ntreba de ce fac asta, probabil c mare parte dintre ei ar spune fie c acioneaz din reflex sau c fac la fel ca toat lumea, fie c lipirea plicului mpiedic scrisoarea s se rtceasc. Chiar dac plicurile nu conin informaii personale sau strict secrete, muli sper ca scrierile lor s nu fie citite dect de destinatar, motiv pentru care ei aleg s sigileze plicurile. Cu toate acestea, dac cineva i dorete cu adevrat s citeasc coninutul unei scrisori care nu i aparine, ar putea s o fac foarte uor, rupnd plicul. La fel se ntmpl i n cazul email-urilor, care ar putea fi citite cu uurin de unii programatori iscusii. Pentru a evita astfel de neplceri, am putea opta pentru criptografie, metoda de codare care ne asigur c scrisoare va rmne inteligibil pentru intrui, mcar o perioad de timp, pn cnd acetia reuesc s gseasc cheia. Criptografia reprezint o ramur a matematicii care se ocup cu securizarea informaiei precum i cu autentificarea i restricionarea accesului ntr-un sistem informatic. n realizarea acestora se utilizeaz att metode matematice (profitnd, de exemplu, de dificultatea factorizrii numerelor foarte mari), ct i metode de criptare cuantic. Termenul criptografie este compus din cuvintele de origine greac ascuns i a scrie. Prin sistem criptografic, sau simplu criptosistem, nelegem 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 criptrii, prin care mesajul cifrat este tranformat in mesajul initial, original, utiliznd o funie 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 reelelor de calculatoare, al cror stimulent extraordinar s-a manifestat att prin presiunea exercitat de tot mai muli utilizatori ct i prin potenarea gamei de instrumente folosite efectiv n execuia algoritmilor de cifrare. Utilizarea calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se astfel rezistena la atacuri criptoanalitice. Cnd cheia secret are o dimensiune convenabil i este suficient de frecvent schimbat, devine practic imposibil spargerea cifrului, chiar dac se cunoate algoritmul de cifrare. al doilea moment important n evoluia criptografiei moderne l-a constituit adoptarea unui principiu diferit de acela al cifrrii 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 fcut public fiind pus la ndemna oricui dorete s transmit un mesaj cifrat. Doar destinatarul, care deine 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 informaiei precum i autentificarea i restricionarea accesului ntr-un sistem informatic folosind metode matematice pentru transformarea datelor n intenia de a ascunde coninutul lor sau de a le proteja mpotriva modificrii. 2.2 Algoritmi criptografici cu chei simerice Criptografia cu chei simetrice se refer la metode de criptare n care att trimitorul ct i receptorul folosesc aceeai cheie (sau, mai rar, n care cheile sunt diferite, dar ntr-o relaie ce la face uor calculabile una din cealalt). Acest tip de criptare a fost singurul cunoscut publicului larg pn n 1976. Pentru asigurarea confidenialitii datelor memorate in calculatoare sau transmise prin retele se folosesc preponderent algoritmi criptografici cu cheie secret (simetrici). Ei se caracterizeaz prin aceea c att pentru criptare ct i pentru decriptare este utilizat aceeai cheie secret. Cheia de criptare este necesar de pstrat in secret fa de utilizatorii neautorizati, pentru ca cel ce are acces la acesta cheie poate avea acces si la informaia secret. Algoritmii criptografici simetrici se caracterizeaz printr-o viteza de cifrare foarte mare, in comparaie cu algoritmii criptografici asimetrici i sunt comozi la cifrarea blocurilor mari de informaie. Securitatea acestui tip de algoritm depinde in mare masur de lungimea cheii si posibilitatea de a o pstra secreta. Algoritmii criptografici cu chei simetrice se utilizeaz n special n cazul transferului unei cantiti mari de date. n cadrul acestui tip de algoritmi se pot folosi cifruri secveniale sau cifruri bloc [10]. Mesajul este criptat la nivel de octect de catre cifrurile secveniale, pe rnd, unul cte unul. Se utilizeaz un generator de numere pseudoaleatoare care este iniializat cu o cheie i genereaz ca rezultat o secven de bii denumit cheie secvenial. Cifrarea se poate face si cu sincronizare (n cazul n care cheia secvenial depinde de textul n clar), respectiv fr sincronizare. Cele mai utilizate sunt cifrurile fr sincronizare. Pentru fiecare octet al textului n clar i cheia secvenial se aplic operaia XOR (sau exclusiv). Fiind un algoritm simetric, la decriptare se utilizeaz operaia XOR ntre biii textului cifrat i cheia secvenial, astfel obinndu-se textul n clar. Cifrurile bloc cripteaz mesajul n blocuri de 64 21 sau 128 de bii. Se aplic o funcie matematic ntre un bloc de bii ai mesajului n clar i cheie (care poate varia ca mrime), rezultnd acelai numr de bii pentru mesajul criptat. Funcia de criptare este realizat astfel nct s ndeplineasc urmtoarele cerine: tiind un bloc de bii ai textului n clar i cheia de criptare, sistemul s poat genera rapid un bloc al textului criptat; tiind un bloc de bii 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 dect utilizarea cifrurilor secveniale, deoarece fiecare bloc este procesat n parte. Dezavantajeste faptul ca algoritmii care folosesc cifruri bloc sunt mai leni dect algoritmii care folosesc cifruri secveniale. 2.2.1 Algoritmul DES Standardul de Criptare a Datelor (n englez Data Encryption Standard, DES) este un cifru (o metod de criptare a informaiei), selectat ca standard federal de procesare a informaiilor n Statele Unite n 1976, i care s-a bucurat ulterior de o larg utilizare pe plan internaional. Algoritmul a fost controversat iniial, avnd elemente secrete, lungimea cheii scurt i fiind bnuit c ascunde de fapt o porti pentru NSA. DES a fost analizat intens de ctre profesionaliti n domeniu i a motivat nelegerea cifrurilor bloc i criptanaliza lor. DES este astzi considerat nesigur pentru multe aplicaii. Acest lucru se datoreaz n principiu cheii de 64 de bii (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 puin de 24 de ore. De asemenea, exist unele rezultate analitice care demonstreaz slbiciunile teoretice ale cifrului, dei nu este fezabil aplicarea lor. Se crede c algoritmul este practic sigur n forma Triplu DES, dei exist atacuri teoretice i asupra acestuia. DES este alctuit din 16 pasi identici de procesare, numiti runde, care produc textul cifrat. n urma studiilor s-a concluzionat c numrul de runde este exponential proportional cu 22 timpul necesar aflrii cheii secret folosind atacul de tip for brut. Pe msur ce crete numrul de runde, securitatea algoritmului creste exponential. Paii de procesare sunt prezentati in figura 2.2: 1. Textul n clar este mprit n blocuri de 64 bii. 2. Din cheia de 56 bii se genereaz 16 chei de 48 bii. Cheia de 56 bii 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 mprit n blocuri, este supus unui proces de permutare bazat pe un table care specific modul n care biii sunt permutai: bitul unul este mutat pe poziia bitului 40, bitul 2 pe poziia 23 etc. 4. Dup realizarea permutrii, biii sunt trecui prin cele 16 runde, folosind cte una din cele 16 sub-chei generate. 5. Cei 64 bii creai la pasul 3 sunt pasai unei runde, unde sunt mprii n 2 blocuri de cte 32 bii i procesai cu cheia corespunztoare rundei respective. 6. Pasul 4 este repetat de 16 ori. Rezultatul unei runde este livrat urmtoarei runde. 7. Dup terminarea celei de-a 16-a runde, cele 2 jumti de cte 32 bii sunt lipite, rezultnd un bloc de 64 bii. 8. Blocul de 64 bii este din nou permutat, folosind funcia 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 operaiilor elementare pe care le folosete algoritmul; singura observaie este c, datorit modulului de lucru (cu secvene 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, existnd multiple variante de maini 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 bii folosite de DES nu sunt suficiente pentru a proteja datele mpotriva atacurilor de tip for brut, 3DES a fost soluia pentru mrirea spaiului cheilor fr a schimba algoritmul. Figura 2.3. Algorimul Triplu DES Triple DES, cu 3 chei diferite de 56 bii are o lungime a cheii de 168 bii. Datorit atacurilor meet-in-the-middle (un atac generic, aplicabil mai multor sisteme criptografice), securitatea efectiv este doar de 112 bii. 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 astzi pe scar larg n aplicaii i adoptat ca standard de organizaia 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 selecie 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 bii, 192 de bii, sau 256 de bii. Specificaia AES standardizeaz toate cele trei dimensiuni posibile pentru lungimea cheii, dar restricioneaz lungimea blocului la 128 de bii. Astfel, intrarea i ieirea algoritmilor de criptare i decriptare este un bloc de 128 de bii. n publicaia FIPS numrul 197, operaiile AES sunt definite sub form de operaii pe matrice, unde att cheia, ct i blocul sunt scrise sub form de matrice. La nceputul rulrii cifrului, blocul este copiat ntr-un tablou denumit stare (n englez state), primii patru octei pe prima coloan, apoi urmtorii patru pe a doua coloan, i tot aa pn la completarea tabloului. Algoritmul modific la fiecare pas acest tablou de numere denumit stare, i l furnizeaz apoi ca ieire. Pasii sunt urmatorii: 1) Pasul SubBytes Figura 2.4 Pasul SubBytes Pasul SubBytes este un cifru cu substituie, figura 2.4., fr 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 b i este bitul corespunztor poziiei i din cadrul octetului, iar c i este bitul corespunztor poziiei i din octetul ce reprezint valoarea hexazecimal 63, sau, pe bii, 01100011. Maparea octeilor se poate reine ntr-un tabel, explicitat n FIPS PUB 197, n care este specificat rezultatul operaiei 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 rnd al matricii de stare state. Pasul const n simpla deplasare ciclic a octeilor de pe rnduri, astfel: primul rnd nu se deplaseaz; al doilea rnd se deplaseaz la stnga cu o poziie; al treilea rnd se deplaseaz la stnga cu dou poziii; al patrulea se deplaseaz la stnga cu trei poziii. Rezultatul acestui pas este c fiecare coloan din tabloul state rezultat este compus din octei de pe fiecare coloan a strii iniiale. Acesta este un aspect important, din cauz c tabloul state este populat iniial pe coloane, iar paii ulteriori, inclusiv AddRoundKey n care este folosit cheia de criptare, operaiile 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 nmulit, modulo cu polinomul . Operaia se poate scrie ca nmulire de matrice astfel: unde sunt elementele de pe un vector coloan rezultate n urma nmulirii, iar sunt elementele de pe acelai vector naintea aplicrii pasului. Rezultatul are proprietatea c fiecare element al su depinde de toate elementele de pe coloana strii dinaintea efecturii pasului. Combinat cu pasul ShiftRows, acest pas asigur c dup cteva iteraii, fiecare octet din stare depinde de fiecare octet din starea iniial (tabloul populat cu octeii mesajului n clar). Aceti doi pai, mpreun, sunt principala surs de difuzie n algoritmul Rijndael. Coeficienii polinomului a(x) sunt toi 1, 2 i 3, din motive de performan, criptarea fiind mai eficient atunci cnd coeficienii sunt mici. La decriptare, coeficienii pasului corespunztor acestuia sunt mai mari i deci decriptarea este mai lent dect criptarea. S-a luat aceast decizie pentru c unele din aplicaiile n care urma s fie folosit algoritmul implic numai criptri, i nu i decriptri, 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 operaie de sau exclusiv pe bii ntre octeii strii i cei ai cheii de rund. Pasul AddRoundKey este pasul n care este implicat cheia. El const ntr-o simpl operaie de sau exclusiv pe bii ntre stare i cheia de rund (o cheie care este unic pentru fiecare iteraie, cheie calculat pe baza cheii secrete). Operaia de combinare cu cheia secret este una extrem de simpl i rapid, dar algoritmul rmne complex, din cauza complexitii calculului cheilor de rund (Key Schedule), precum i a celorlali pai 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 Elveia n anul 1990. El este patentat n Europa i n Statele Unite, dar poate fi utilizat gratuit n aplicaii necomerciale. IDEA este unul dintre algoritmii care a fost propus pentru a nlocui DES. Acesta este unul dintre cei mai reuii algoritmi din cei propui (pn n prezent nu a fost raportat nici un atac pentru decriptare reuit). De exemplu IDEA este inclus n PGP (Pretty Good Privacy) care a contribuit la rspndirea acestuia. IDEA este un cod bloc care folosete o cheie de 128 bii pentru a cripta blocuri de date de 64 de bii. 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 implementrii algoritmului de criptare crete exponenial cu lungimea blocului. Folosirea unui bloc de 64 bii este n general destul de puternic. Lungimea cheii: Lungimea cheii trebuie s fie destul de mare pentru a preveni cutarea exhaustiv. Confuzia: Legtura dintre mesajul original i cheie n mesajul criptat trebuie s fie ct mai complicat. Obiectivul este de a complica ct mai mult determinarea unor statistici din mesajul criptat care au legtur cu mesajul original. n acest scop IDEA folosete trei operaii 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 influeneze toi biii mesajului criptat i orice schimbare din cheie s influeneze 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 obinut prin trei operaii diferite. Fiecare dintre aceste operaii este aplicat pe dou segmente de intrare de 16 bii, producnd o singur ieire pe 16 bii. Aceste operaii sunt: XOR (sau-exclusiv) pe bii. Adunarea de ntregi modulo 216 (modulo 65 536) cu intrri i ieiri tratate ca ntregi pe 16 bii fr semn. Multiplicarea de ntregi modulo 216+1 (modulo 65 537) cu intrri i ieiri tratate ca ntregi pe 16 bii fr semn. IDEA este relative usor de implementat att software ct i hardware. Implementarea hardware (de obicei n VLSI) este proiectat pentru a obine o vitez foarte mare, n schimb cea software este mult mai flexibil i mai ieftin. Principii de proiectare a implementrii software: Se folosesc subblocuri: algoritmul poate opera cu subblocuri de 8, 16, 32 bii. Dimensiunea tipic este de 16 bii. Se folosesc operaii simple: implementarea celor trei operaii ce intervin n algoritmul IDEA se face pe baza operaiilor primitive la nivel de bit (adunare, deplasare, etc.). Principii de proiectare a implementrii hardware: Criptarea i decriptarea sunt similare. Ele difer doar prin ordinea folosirii subcheilor astfel nct acelai dispozitiv poate fi folosit att pentru criptare, ct 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 intrri: mesajul original i cheia de criptare. n acest caz, primul are lungimea de 64 bii, iar cheia este de 128 bii. Urmrind partea stng a figurii, se observ c algoritmul const din 8 ture (runde) urmate de o transformare final. Cei 64 bii de la intrare sunt divizai n 4 subblocuri de cte 16 bii. Fiecare tur are ca intrare 4 subblocuri de 16 bii producnd la ieire tot 4 subblocuri de 16 bii. Aceeai regul este valabil i pentru transformarea final, diferena fiind doar la ieire unde cele 4 subblocuri sunt concatenate pentru a forma mesajul criptat. De asemenea fiecare tur folosete ase subchei de 16 bii, 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 bii. 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 deine o astfel de pereche i public cheia public astfel ncat oricine dorete s o poata folosi pentru a i transmite un mesaj criptat. Numai deintorul cheii secrete (private) este cel care poate decripta mesajul astfel criptat. Matematic, cele dou chei sunt legate, ns cheia privat nu poate fi obinut 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 potale. Oricine poate pune n cutia potal a cuiva un plic, dar la plic nu are acces dect posesorul cheii de la cutia potal. Cripografia asimetric se mai numete criptografie cu chei publice. Metodele criptografice n care se folosete aceeai 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, att pentru criptare ct i pentru decriptare. Pentru a putea folosi aceast metod att receptorul ct i emitorul 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 corespunztoare. Metoda este folosit pentru a asigura confidenialitatea. 2.Semnturi digitale un mesaj semnat cu cheia privata a emitorului poate fi verificat de catre oricine, prin acces la cheia publica corespunzatoare, astfel asigurandu-se autenticitatea mesajului. O analogie pentru semnturile 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 ru 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 factorizrii 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 ntlnit n servere i browsere de web, n clieni i servere de e-mail, reprezentnd practic coloana vertebral a sistemului de pli electronice prin card- uri de credit. [8] Algoritmul funcioneaz dup cum urmeaz: [11] Se genereaz dou numere prime p i q, de lungime biti. Deoarece mulimea numerelor prime este suficient de dens, numerele prime pot fi generate alegnd aleator numere ntregi de n/2 bii i testndu-le cu ajutorul unui test probabilistic. Apoi, fie de lungime n bii. Numrul e trebuie ales astfel nct s ndeplineasc urmtoarele condiii: 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 nct acesta s fie multiplul invers al lui e sau altfel spus 33 s fie divizibil cu n practic, d se poate obine foarte simplu cutnd rezolvarea astfel nct d i x s fie numere ntregi. Valorile d i e sunt numite exponentul privat, respectiv exponentul public al algoritmului. Funcia de criptare/semnare arat astfel: unde M reprezint mesajul de criptat (un ntreg pozitiv mai mic dect N). Funcia 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). Numrul d mai este cunoscut i sub numele de trap door, deoarece cunoaterea sa permite inversarea rapid a funciei RSA. Viteza algoritmului RSA depinde n mare msur de lungimea cheilor utilizate, de tipul de implementare, de procesorul pe care se ruleaz aplicaia, dar i de protocolul ce trebuie implementat. Deseori, pentru a obine o vitez sporit n aplicaiile practice, sunt utilizai exponeni publici mici, acest fapt implicnd ns i riscuri corespunztoare. Exist chiar grupuri ntregi de utilizatori care folosesc acelai 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 nct sigurana algoritmului s nu fie periclitat. Utiliznd, cum spuneam, exponeni publici mici, se obine o vitez mai mare de criptare i verificare n comparaie cu procesele inverse de decriptare i semnare a datelor. 34 Utiliznd algoritmii generali de calcul ai exponenialului, operaiile cu cheie public consum un timp proporional cu O(n) iar operaiile cu cheie privat necesit aproximativ O(n) , unde n reprezint numrul de bii ai lui N. Tehnicile de multiplicare rapid, necesit de obicei mai puini pai, sunt ns destul de rar folosite datorit complexitii lor, i a faptului c pentru lungimi tipice de chei, ele sunt totui mai lente. Dac comparm viteza algoritmului RSA cu cea a unui algoritm cu cheie simetric (DES de exemplu), putem observa c n funcie de implementare (HW sau SW) cel din urm este cu pn la aproximativ 1000 de ori mai rapid dect RSA. Cu toate acestea, utilizarea RSA n algoritmi de distribuire de chei (simetrice) sau n alte aplicaii, n care viteza este mai puin important, prezint avantaje de netgduit. Securitatea sistemelor RSA se bazeaz pe presupunerea c funcia: este unidirecional, fiind computaional dificil de a se gsi mesajul iniial M n absena exponentului de decriptare d. Exist ns posibilitatea, cel puin teoretic, de a ncerca factorizarea lui N prin metoda forei brute sau prin alte metode, fapt ce ar duce la aflarea numerelor p i q. Apoi utiliznd 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 mulime de cercettori, fiind supus la nenumrate teste. Cu toate c de-a lungul celor mai bine de 25 de ani de utilizare au rezultat diverse vulnerabiliti, algoritmul s-a dovedit suficient de rezistent (pn n prezent) pentru a putea oferi un grad ridicat de securitate. Metodele de atac rezultate nu fac dect s ilustreze nc o dat pericolul utilizrii RSA n condiii necorespunztoare, 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 creia i este destinat mesajul i se trimite destinatarului mpreun cu mesajul criptat (acestea dou formeaz un plic digital RSA). Destinatarul va decripta mai nti cheia DES cu ajutorul cheii sale private, apoi mesajul, cu ajutorul cheii simetrice, obinut din prima decriptare. Cheia DES poate fi n continuare utilizat i ca o cheie de sesiune. Pentru semnarea unui mesaj, mai nti se creeaz o amprent digital (message digest) a acestuia cu ajutorul unei funcii hash. Aceasta se cripteaz cu ajutorul cheii private, rezultatul urmnd a fi trimis destinatarului. Pentru verificarea semnturii, se decripteaz mesajul cu ajutorul cheii publice a semnatarului, obinnd astfel 35 amprenta digital, care va fi comparat cu cea obinut aplicnd din nou funcia hash asupra mesajului. Dac cele dou amprente sunt identice, rezult faptul c semntura digital este autentic. n momentul de fa, RSA este utilizat ntr-o varietate de produse, platforme i standarde. El poate fi ntlnit n sisteme de operare, precum: Microsoft, Apple, Sun sau Novell, n componente hardware, precum: sisteme telefonice, card-uri de reea sau smartcard- uri, n protocoale de comunicaie, precum: S/MIME, SSL, IPSec, PKCS. El este n mod sigur cel mai rspndit algoritm cu cheie public utilizat la ora actual. n ultimul timp a devenit clar c sistemele cu chei publice sunt un mecanism indispensabil att pentru managementul cheilor ct i pentru comunicaiile sigure. Ceea ce este mai puin clar este modalitatea de a alege cel mai bun sistem ntr-o anumit situaie. Unul dintre criteriile cele mai des folosite pentru a alege l constituie tehnica utilizat de algoritm. Fr o cunoatere profund a acesteia, a vulnerabilitilor, dar mai ales a metodelor de atac, cu greu mai putem concepe astzi 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 gsite (pn n prezent) metode astfel nct algoritmul s fie compromis. Se poate deci presupune c implementrile 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 cte o cheie privat. n pasul urmtor, fiecare calculeaz cte o cheie public, aceasta fiind o funcie matematic a cheilor private respective. Urmeaz schimbul de chei publice. n final, fiecare dintre cele dou persoane calculeaz o funcie a propriei chei private i a cheii publice a celeilalte persoane. Matematica este cea care va face s se ajung la aceeai valoare, care este derivat din cheile lor private. 36 Securitatea acestui algoritm consta n dificultatea calculrii logaritmilor discrei. Calculul acestor logaritmi pentru numere prime mari este considerat imposibil. n primul rnd de definete a - rdcina primitiv a unui numr prim p, ca fiind un numr a crui puteri genereaz toi ntregii de la 1 la p-1 prin aplicarea operatiei (mod p). Adic dac a este rdcina primitiv a unui numr 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 rdcin primitiv a a unui numr p se poate gsi un unic exponent astfel nct: 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 cteva protocoale de securitate a retelelor, i la Pretty Good Privacy pentru criptarea e-mail-urilor i a unor fiiere. 2.3.3 Semnaturi digitale Standardul pentru semnturi digitale (DSS Digital Signature Standard) a fost adoptat n 1991, fiind revizionat n 1993. El folosete Secure Hash Algorithm (SHA) i prezint o tehnic nou pentru semnturi digitale prin Digital Signature Algoritm (DSA). Spre deosebire de RSA acest algoritm este proiectat doar pentru furnizarea semnturilor digitale nu i pentru funcii de criptare i decriptare, dar totui este o metod care folosete chei publice. Figura 2.9 evidentiaza diferenta dintre modul de generare a semnturilor digitale folosite de DSS i algoritmul RSA, creandu-se astfel o paralela intre cele 2. n RSA, partea de mesaj care se dorete a reprezenta n final semntura, este trecut printr-o funcie de amestecare (hash function) producnd un cod amestecat (hash code) de lungime fix, acesta fiind mai apoi criptat cu cheia privat a expeditorului formnd semntura digital. Att mesajul propriu-zis ct i semntura digital sunt transmise destinatarului. Destinatarul produce pe baza mesajului (fr partea care include semntura) codul amestecat. De asemenea destinatarul decripteaz semntura folosind cheia public a sursei. Dac codul amestecat rezultat i semntura obinut prin decriptare coincid, atunci semntura este validat. 37 Deoarece numai sursa cunoate cheia sa privat rezult c numai ea poate produce o semntur valid. Figura 2.9 Cele dou abordri a semnturilor digitale Funcii de amestecare sunt folosite de asemenea si de Algoritmul DSS. Codul amestecat produs este folosit ca intrare ntr-o funcie-semntur mpreun cu un numr k generat aleator. Funcia-semntur mai depinde i de cheia privat a sursei KRa precum i de un set de parametri cunoscui participanilor. Se consider c acest set de parametrii constituie o cheie global KUG. Rezultatul este o semntur care const din dou componente notate s i r. La destinaie un cod amestecat este generat pe baza mesajului recepionat. Acesta i semntura servesc ca intrare funciei de verificare. Aceasta depinde de asemenea de cheia public a sursei KUa i de cheia public global. Dac ieirea produs de funcia de verificare coincide cu r (o parte din semntur) atunci semntura 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 aceeai cheie att pentru criptare, ct i pentru decriptare, securitatea acestei criptri este redus, depinznd n mod evident de mpiedicarea obinerii cheii secrete de ctre 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 ecuaii matematice complexe care opereaz cu numere foarte mari, ceea ce implic o relativ ncetineal a procesului. Algoritmii simetrici sunt de obicei mult mai rapizi, avnd ns problema partajrii cheii de criptare. Un astfel de algoritm este cu att mai sigur, cu ct lungimea cheii este mai mare (numrul cheilor care ar putea fi testate de o persoan neautorizat crete). n practic se prefer combinarea celor dou forme de criptografie, pentru optimizarea performanelor. In tabelele de mai jos (Tabel 1 si Tabel 2) sunt evidentiate in paralel avantajele si dezavantajele celor doua chei: Tabel 1 Avantaje Dezavantaje Chei simetrice Cheile folosite pentru algoritmii simetrici sunt relativ scurte ntr-o comunicaie cheia trebuie sa ramana permament secreta n (cel putn) doua locuri distincte Algoritmii folosii permit gestionarea unor volume mari de date, cu vitez reletiv bun. Exista implementari hard care pentru unele sisteme de criptare pot asigura rate de criptare de sute de mega-octeti pe secunda Cu cat lungimea unui mesaj criptat este mai mare, cu atat el este mai usor de spart Prin compunere pot conduce la sistme de criptare puternice Necesita un canal sigur de comunicare, cel putin pentru transmiterea cheii. Acest lucru devine dificil mai ales pentru sistemele care necesita schimbari frecvente ale cheilor de criptare/decriptare Pot fi folosite ca baza de constructie a diverselor mecanisme de criptare, cum ar fi generatori de numere pseudo- aleatoare, generatori de functii de dispersie, scheme de semnatura In retele mari, o gestionare a cheilor devine extrem de dificila 39 Tabel 2 Avantaje Dezavantaje Cheie publica Conduc la aplicatii de mare ntindere: semnaturi electronice, algoritmi de autentifi- care, componente de comert electronic Sunt necesare chei de lungimi mult mai mari In functie de modul de utilizare, o pereche de chei (publica,privata) poate fi pastrata o perioada mai lunga de timp Nu se poate garanta securitatea absoluta a nici unei scheme de criptare cu cheie publica Sistemele cu cheie publica sunt simplu de definit si elegante matematic Implementarea trebuie realizata cu foarte mare grija. Sisteme cu grad ridicat teoretic de securitate pot fi sparte usor printr-o implementare neglijenta Sistemul este ideal pentru transmiterea informatiei prin canale nesigure Viteza algoritmilor cu chei publice este de cteva ori mai mic decat a celor cu chei simetrice Doar cheia de decriptare trebuie tinuta secreta, la un singur punct (destinatar) 40 3. SECURIZAREA COMUNICATIILOR DIGITALE PRIN INTERMEDIUL VPN (VIRTUAL PRIVATE NETWORK) O tehnologie de comunicaii cumputerizat sigur, dar bazat pe o reea public este o reea privat virtual,i de aceea nu foarte sigur. Tehnologia VPN este conceput tocmai pentru a crea ntr-o reea public o subreea de confidenialitate aproape la fel de nalt ca ntr- o reea privat adevrat la care sunt legai numai utilizatori autorizai. Tehnologia VPN este conceput tocmai pentru a crea ntr-o reea public o subreea de confidenialitate aproape la fel de nalt ca ntr-o reea privat adevrat la care sunt legai numai utilizatori autorizai. n mod intenionat aceast subreea, denumit totui "reea VPN", nu poate comunica cu celelalte sisteme sau utilizatori ai reelei publice de baz. Utilizatorii unei reele VPN pot cpta astfel impresia c sunt conectai la o reea privat dedicat, independent, cu toate avantajele pentru securitate, reea care n realitate este doar virtual, ea de fapt fiind o subreea nglobat fizic n reeaua de baz. O reea privat virtual este o reea partajat n care datele private sunt segmentate de restul traficului, astfel nct numai destinatarul real are acces la ele, un exemplu general este ilustrat n figura urmtoare. Figura 3.1. prezint o reea VPN n care ntreprinderile A i B nu se "vd" i nu se deranjeaz reciproc, dei ambele folosesc aceeai reea fizic public. Figura 3.1 Reele private virtuale 41 Reelele VPN ofer multe aventaje: extinde aria geografic de conectivitate, sporete securitatea, reduce costurile operaionale, crete productivitatea, simplific topologia reelei, ofer oportuniti de lucru ntr-o reea global, permite confidenialitatea datelor schimbate ntre punctele de lucru aflate la distan i altele. n plus, VPN -urile securizate sunt mai ieftine dect liniile nchiriate dedicate. Un aspect important, vital al securitii datelor este faptul c datele, n cursul lor spre destinatar, sunt protejate prin tehnologii de criptare. Un punct slab este ca reelelor private le lipsete securitatea datelor, permind astfel intrarea n reea i citirea datelor. n schimb, reelele private virtuale bazate pe IP Sec utilizeaz criptarea pentru a secretiza date, crescnd astfel rezistena reelei 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 reea public. - VPN-urile intranet (Intranet VPN) permit extinderea reelelor private prin Internet sau alt serviciu de reea 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 clieni, n general n scopul realizrii comerului electronic. VPN-urile extranet sunt o extensie a VPN-urilor intranet la care se adaug firewall-uri pentru protecia reelei interne. 42 Figura 3.2 Tipuri de reele VPN 3.1.1 Remote VPN VPN-urile de tip acces de la distan (remote access), numite i reele virtuale private cu dial-up, este un tip de conexiune utilizator-ctre-LAN (figura 3.3) folosit cel mai adesea de companii ce au angajai cu necesiti de conectare la resursele reelei companiei din diverse locatii. Figura 3.3 Remote VPN 43 De regul n momentul cnd se dorete accesul mai multor utilizatori la reeaua local, se apeleaza la o companie de out-sourcing ce folosete un server de acces n reea 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 acelai ISP pentru toate locaiile. 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 locaii (sucursale) fixe pe o reea public cum ar fi Internetul. 3.1.2 Intranet VPN Reeaua virtual privat ntre sediile i departamentele aceleiai firme. Intranet-ul este definit ca o legtura semi-permanent peste o reea 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 securitii pentru ca firmele au ncredere n filialele lor. n astfel de cazuri compania are control asupra reelei/nodurilor destinaie ct i asupra celei surs. Administratorii de sistem trebuie s decid dac aceasta situaie este ntlnit i n propria firm. Cantiti mari de date sunt schimbate frecvent ntre LAN-uri ntr-o reea 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 rspndite n reeaua firmei ar trebui s fie considerate ca fcnd parte din aceeai reea. Motivul principal pentru care majoritatea organizaiilor se orienteaz ctre tehnologia VPN este costul redus al acestei implementari. Figura 3.4 Intranet VPN 44 3.1.3 Extranet VPN Reeaua virtual privat care este relativ izolat fa de intranet. Extranetul este destinat comunicrii cu partenerii, clienii, furnizorii i cu angajaii la distan. Securizarea unei reele de dimensiuni mari necesit ndrumri i instrumente adecvate. Un extranet VPN trebuie s ofere o ierarhie a securitii i accesarea datelor confideniale 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 fr a exista riscul de a expune resursele protejate unor eventuale ameninri, aa ca firmele ar trebui s ia n considerare cele mai avansate soluii de VPN. Figura 3.5 Extranet VPN Un Extranet VPN, figura 3.5. sigur, n care o companie mparte informaii cu clienii, partenerii, furnizorii i angajaii aflai la distan prin intermediul reelei publice stabilind legturi unidirecionale de la un capt la altul printr-un server VPN. Acest tip de sistem permite unui administrator de reea s defineasc drepturi specifice, cum ar fi cele ce ar permite unui membru din conducerea unei firme partenere s acceseze diferite/anumite rapoarte de vnzri de pe un server protejat. Acest tip de acces nu este posibil cu orice tip de soluie VPN. ntr-o situaie real de interconectare ntre parteneri de afaceri, administratorii trebuie s caute o soluie de VPN care s filtreze accesul la resurse n funcie de ct mai multe parametrii posibili, inclusiv sursa, destinaia, utilizarea aplicaiei, tipul de criptare i 45 autentificare folosit, i identitile 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 aplicaie obinuit de birou, dar nu sunt la fel de sigure precum token-urile sau smart card-urile. Reelele private virtuale folosesc Internetul pentru a conecta mai multe reele LAN ntre ele, printr-o conexiune sigur. Conexiunile VPN realizeaz acest lucru cu dou procese importante: crearea de tunele i securizarea. Mai nti, o reea VPN creeaz un circuit ,,virtual" ntre cele dou puncte conectate, prin intermediul Internetului. Apoi, folosete metoda crerii de tunele pentru a nfura datele n protocolul (limbajul) Internetului - TCP/IP - astfel nct s poat fi transportate cu uurin. Prin securizare se nele criptarea i ncapsularea pachetelor trimise, astfel nct numai destinatarul creia i se adreseaz s le poat decodifica i citi. 3.2 Protocoale de tunelare Pentru a se face posibila implementarea reelei VPN este necesar crearea unui tunel printr-o reea public pentru transferul datelor. Tunelarea este definita ca fiind o metod de folosire a infrastructurii unei inter-reele pentru transferul datelor dintr-o reea peste o alt reea. 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 adiional. Acesta conine informaii de rutare astfel nct ncrctura ncapsulat poate traversa inter-reeaua intermediar. Pachetele ncapsulate sunt apoi rutate ntre capetele tunelului prin inter-reea. Calea logic pe care pachetele ncapsulate o urmeaz n inter-reea se numete tunel. Odat ce cadrele ncapsulate ajung la destinaie prin inter- reea, cadrul este decapsulat i trimis la destinaia 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 reea. Protocolul pachetului rezultat n urma tunelrii este recunocut de ctre reea i de ctre ambele noduri surs i destinaie, la nivelul interfeelor de tunelare, prin care pachetele intr i ies din reea. 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 legtur de date, i folosesc cadre ca unitate de schimb. Ele ncapsuleaz ncrctura ntr-un cadru PPP pentru a fi transmis peste inter- reea. Pentru tehnologiile de nivel 2, cum ar fi PPTP sau L2TP, un tunel este asemntor 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 folosete un protocol de meninere a tunelului. Pentru protocoalele de nivel 2, un tunel trebuie creat, meninut 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. Dei aceast soluie faciliteaz conectivitatea pe linii de acces n reele cu comutaie de circuite, informaia 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 participanii la sesiuni de comunicaii. Este cea mai cunoscut dintre opiunile pentru securitatea transferului de date n reeaua 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- reea IP de corporaie sau public (Internet). PPTP suport criptare pe 128 de bii i 40 de bii i poate folosi orice schem de autentificare suportat de PPP. Ca i L2F, PPTP permite tunneling-ul unor cadre PPP de la clientul ndeprtat ntre un NAS i un VPN gateway/concentrator. Layer 2 Tunneling Protocol, este o combinaie 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, incluznd IP, IPX i AppleTalk, acest L2TP poate fi rulat pe orice tip de reea WAN, inclusiv ATM, X.25 sau SONET. Cea mai important trstur 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 funcie de tunneling, iar Microsoft furnizeaz i o schem de criptare denumit Point-to-Point Encryption. n afara capacitii de creare a unei VPN, protocolul L2TP poate realiza mai multe tunele simultan, pornind de la acelai client. Urmtorul tabel (tabel 3.1) ne ofer o comparaie 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 opional Criptare Microsoft PPP (MPPE/ECP); IPsec opional Autentificare Autentificare PPP (utilzator) Autentificare PPP (utilzator); IPsec opional (pachet) Autentificare PPP (utilzator); IPsec opional (pachet) Tabel 3.1 Comparaie intre protocoale de tunelare cu acces la distanta 3.2.2 Protocoale de nivel 3 OSI Protocoalele de nivel 3 corespund nivelului reea, folosesc pachete IP i sunt exemple de protocoale care ncapsuleaz pachete IP ntr-un antet IP adiional nainte de a le transmite peste o inter-reea 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 meninere a tunelului. Tunelul odat stabilit, datele tunelate pot fi trimise. Clientul sau serverul de tunel folosete un protocol de transfer de date de tunel pentru a pregti datele pentru transfer. De exemplu, cnd clientul de tunel trimite informaia util ctre serverul de tunel, clientul de tunel adaug un antet de protocol de transfer de date de tunel la informaia util. Apoi clientul trimite informaia ncapsulat rezultat prin inter-reea, care o dirijeaz ctre serverul de tunel. Serverul de tunel accept pachetul, elimin antetul de protocol de transfer de date i transmite informaia util la reeaua int. Informaia 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 reea n interiorul tunelelor IP, crend o legtur virtual punct la punct, ntre routere aflate la distan, peste o reea IP. Pentru rutarea cu adrese private, se ncapsuleaz pachetele IP transmise n Internet cu antete suplimentare prin aa-numitul mecanism GRE, descris n RFC 1701. Pachetului iniial 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 reea (delivery header). n antetul GRE se specific ruta pe care se va trimite forat pachetul la destinaie, fr a se lua alte decizii de rutare n routerele intermediare. GRE asigur transparena adreselor intermediare i securitatea transmisiei, prin realizarea unui aanumit "tunel de transmisie" (tunnelling) . Uzual este cazul ncapsulrii 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 nct cadrul s fie interpretat ca fiind ncapsulat GRE i routerele 'de la distan s extrag adresa de destinaie privat din pachetul original. Tunelarea are implicaii 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 reeaua 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 uurin prin Internet. Dei 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 reele virtuale private prin Internet. Orice persoana care folosete VPN este preocupata de securizarea datelor cnd traverseaz o reea public. Totodat, dezvoltarea VPN-urilor pe baza reelei publice Internet poate nsemna reducerea costurilor semnificativ de mult comparativ cu liniile nchiriate. Serviciile IPSec permit autentificare, integritate, controlul accesului i confidenialitare. Cu IPSec, schimbul de informaii ntre locaiile la distan poate fi criptat i verificat. Cu IPsec pot fi dezvoltate soluii att la distan, ct i site-to-site. IPSec este poate cel mai autorizat protocol pentru pstrarea confidenialitii i autenticitii pachetelor trimise prin IP. Protocolul funcioneaz cu o larg varietate de scheme de criptare standard i negocieri ale proceselor, ca i pentru diverse sisteme de securitate, incluznd semnturi digitale, certificate digitale, chei publice sau autorizaii. ncapsulnd pachetul original de date ntr- destinaie. Deoarece nu exist modaliti de autentificare sau criptare liceniate, IPSec se detaeaz 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 criptrii n timp ce o reea virtual 50 de tip L2TP primete un pachet, iniiaz tunelul i trimite pachetul ncapsulat ctre cellalt terminal VPN. IPSec folosete un algoritm pentru schimbarea cheilor ntre pri, 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 pri. IKE se poate folosi n conjuncie cu Kerberos, certificate X.509v3 sau chei preshared. Pentru a securiza comunicaia n reea cu IPSec ntre calculatoarele Windows se foloseste o colecie de reguli, politici i filtre pentru a permite n mod selectiv doar comunicaia 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 soluii VPN de comunicaie reliefeaz unele probleme specifice, probleme ce apar din cauza absenei 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 definete structura pachetelor IP i considerentele legate de securitatea n cazul soluiilor VPN. In ultimi ani in cadrul IETF, grupul de lucru IPSec a nregistrat mari progrese n adugarea de tehnici de securitate criptografice la standardele pentru infrastructura Internet. Arhitectura de securitate specificat pentru IP ofera servicii de securitate ce suport combinaii de autentificare, integritate, controlul accesului i confidenialitate. Tunele GRE cu protecie IPSec. GRE este un protocol de tunelare dezvoltat de Cisco care poate nmagazina o multitudine de tipuri de pachete ale protocoalelor de reea n interiorul tunelelor IP, crend o legtur virtual punct la punct, ntre routere aflate la distan, peste o reea IP. Tunelele GRE sunt create s fie complete, fr o stare persistent, astfel fiecare capt de tunel nu ncapsuleaza nicio informaie despre starea i disponibilitatea captului de tunel de la distan. O urmare a faptului acesta este c ruter-ul din captul de tunel nu are abilitatea de a marca protocolul liniei interfeei tunelului GRE ca fiind inaccesibil dac ruter-ul de la distan, din cellalt capt, nu este funcional. Posibilitatea de a exprima c interfaa este nefuncional ctre cellalt capt este eficient pentru retragerea rutelor care o folosesc ca i interfa de ieire, din tabela de rutare (n special rutele statice). 51 De cele mai multe ori, o interfa de tunel GRE este funcional din momentul n care este configurat i rmne aa ct timp este o adres surs a tunelului valid. Adresa IP destinaie a tunelului trebuie s fie mereu rutabil. Acest lucru este adevrat chiar dac cellalt capt al tunelului nu a fost configurat. Astfel, o rut static a pachetelor via interfaa tunelului GRE rmne n vigoare chiar dac pachetele tunelului GRE nu gsesc cellalt capt de tunel. Construirea unei reele virtuale private folosind IPSec pentru conectivitatea dintre capete are cteva limitri: -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 proteciei IPSec pe acest tunel. Este n esen c GRE incadreaz orice informaie util dintr-un pachet unicast destinat unui capt GRE. In momentul cand se utilizeaz GRE mbinat cu IPSec se poate folosi att modul tunel ct i cel transport (modul tunel va aduga un antet IP pachetelor GRE, n timp ce modul transport va folosi antetul original GRE). Teoretic, modul transport se recomanda in momentul cnd se utilizeaz combinarea dintre IPSec i GRE pentru c deja protocolul de ncapsulare GRE adaug un antet IP nou pachetului util. Totui, aceast situaie presupune existena unor adrese IP surs i destinaie care sunt accesibile prin calea IP dintre noduri. Utilizarea protocolului GRE mpreun cu IPSec face configurarea echipamentelor VPN mai simpl. n situaia tradiional IPSec era nevoie de o politic anume care s specifice subreelele protejate pentru ca traficul dintre acestea s fie criptat/decriptat i de fiecare dat cnd o subreea era adugat trebuia s fie rennoit structura la ambele capete. n cazul utilizrii GRE, regulile trebuie s corespund doar traficului dintre adresele de capt 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 locaii pentru a anuna subreelele protejate. Rutarea dinamic ajut implicit i n situaii de eec a transferului, in acest fel se pot detecta interfeele care nu mai funcioneaz 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 definete procedurile i formatele de pachete pentru a stabili, negocia, modifica i terge asocierile de securitate (SAs). Acestea conin toate informaiile necesare pentru executarea diferitelor servicii de securitate de reea, cum ar fi serviciile de la nivelul IP (cum ar fi autentificarea antetului i ncapsulare incarcaturii), nivelul transport sau servicii de la nivelul aplicaie, sau auto-protecia traficului de negociere. ISAKMP definete 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 proprieti 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 servete ca acest cadru comun. Separarea funcionalitatii n trei pri adaug complexitate analizei securitatii unei implementari ISAKMP complete. Cu toate acestea, separarea este esenial pentru interoperabilitate ntre sisteme cu cerinele de securitate diferite i ar trebui s simplifice, de asemenea, analiza evoluiei ulterioare a unui server ISAKMP. ISAKMP este destinat s sprijine negocierile asocierilor pentru protocoale de securitate la toate nivelurile stivei de reea (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 aprut n cadrul efortului de standardizare pentru IPv6 i reprezint singura soluie 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 informaiei, ntre dou sisteme 53 firewall, de exemplu. n modul transport, informaia este ncapsulat altfel nct ea poate fi securizat ntre punctele terminale ale conexiunii, deci "ambalajul" nu ascunde informaia de rutare cap-la-cap. Modul tunel este cea mai sigur metod de securizare, ns crete gradul de ncrcare a sesiunii de comunicaie, prin mrirea dimensiunilor pachetelor. Controlul securitii se poate face la oricare dintre cele patru nivele ale stivei TCP/IP; datele sunt pregtite pentru transport i sunt tranzitate de la cel mai nalt la cel mai jos nivel, adugndu-se treptat noi informaii. Astfel, nivelele de mai sus nu pot asigura protecie total pentru nivelele de jos pentru c acestea adaug informaii dup ce s-au aplicat msurile de securitate mai sus. Controlul la nivel reea a devenit foarte utilizat n reelele de date pentru c propune o soluie 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 ataate la un pachet IP pentru realizarea securitii: 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, fr 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 ctre utilizator. n autentificarea ESP, sumarul de mesaj este inserat la sfritul pachetului (n timp ce n AH, sumarul se afl n interiorul cmpului de autentificare). Standardul IPSec stabilete 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 conine toate informaiile necesare pentru execuia diferitelor servicii de securitate pe reea, cum sunt serviciile corespunztoare nivelului IP (autentificarea antetului i ncapsularea datelor), serviciile nivelurilor de transport sau aplicaie, precum i autoprotecia 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 main i de o asociere de securitate negociat ntre emitor i receptor. Politica const ntr-un set de filtre i un set de profile de securitate asociate. Dac un pachet are adresa, protocolul i numrul de port corespunztoare unui filtru, atunci pachetul este tratat conform profilului de securitate asociat. n afara protocoalelor de securitate prezentate anterior, IPSec mai conine i protocolul Internet Key Exchange (IKE). IPSec folosete IKE pentru a negocia setrile de conexiune 54 IPsec, pentru a autentifica vecinii unul cu cellalt, pentru a defini parametrii IPSec pentru conexiuni private, pentru a negocia cheile secrete i pentru a administra, mbunti i terge canalele de comunicaie IPSec. 3.3.1 Protocolul AH Authentification Header (unul dintre protocalele de securitate IPSec) ofera siguranta integritatii datelor i autentificarii utilizatorilor. In mod pional se poate oferi protecia accesului i mpotriva atacurilor de replicare, iar aceasta nu poate cripta nicio poriune din pachet. n versiunea iniial IPSec, AH i ESP erau des utilizai mpreun (ESP nu asigura autentificarea), dar n cea de-a doua versiune, AH devine mai puin semnificativ, pn la stadiul m care unele sisteme nu mai suport AH. Totui, acest protocol este valoros pentru c poate autentifica poriuni 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 destinaia adevrat a pachetelor trebuie s fie modificate pentru a fi adresa IP a porii. Modul transport este utilizat n general n arhitecturile staie-la-staie, 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, incluznd cmpurile invariante ale antetului (adresele IP surs i destinaie), printr- un sumar de mesaj pentru a produce un hash cifrat. Receptorul va folosi acest hash pentru a autentifica pachetul, deci dac orice cmp din pachetul IP original este modificat, autentificarea va eua i pachetul va fi aruncat. Procesul de protejare a integritii 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 informaii, astfel nct aceste date vor produce de fiecare dat aceeai valoare. Dac un singur bit se schimb, atunci i amprenta va fi diferit. Aceti algoritmi sunt utilizai pentru a asigura integritatea prin faptul c ne asigur c datele nu au fost modificate n tranzit. Verificarea se face prin adugarea hash-ului datelor trimise iar la destinaie se ruleaz acelai algoritm asupra datelor, obinndu-se acelai hash (dac datele 55 nu au fost modificate). Cei mai importani algoritmi hash sunt MD5 i SHA-1. Ambele preiau la intrare date de lungime arbitrar i produc la ieire o amprent de 128 bii, respectiv 160. SHA-1 conine msuri adiionale 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 numete Cod de autentificare a mesajului (MAC). Atunci cnd MAC-urile se utilizeaz cu algoritmii de tip hash, va purta numele de HMAC. IPSec folosete algoritmi de autenticitate HMAC, care execut dou hash-uri acordate. Ca i exemplu, cei mai utilizai 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. ncepnd cu a doua variant IPSec, protocolul poate performa autentificarea, pentru protejarea integritii, dei 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 afieaz limitele de tunel ESP, dar arata atat sursa cat i destinaia pachetului. n situaie de fata se poate realiza criptarea i protejarea integritii att a datelor ct i a antetului original IP al fiecrui pachet. Dac se utilizeaz i autentificarea, fiecare pachet va avea o seciune de autentificare ESP la sfrit. 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 informaiei 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 integritii. Pe de alt parte, autentificarea ESP va eua dac NAT actualizeaz suma de verificare TCP iar dac NAT nu face actualizarea (de exemplu, dac informaia util este criptat), va eua verificarea TCP. n modul tunel, ESP i NAT pot funciona mpreun pentru 56 c adresa original IP i informaia de transport sunt incluse n informaia 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, pari ale header-ului IP i extensiile header-ului IPv6. Autentific ntregul pachet original IP plus, selectiv, pari 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 aceeai 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 poriunii de informaie a fiecrui pachet. Fiecare antet ESP conine dou cmpuri: SPI - fiecare capt a fiecrei conexiuni IPsec are o valoare SPI arbitrar aleas, care se comport ca un identificator unic. Destinatarul folosete aceast valoare, adresa IP destinaie i (opional) tipul protocolului IPSec (n cazul de fa, ESP), pentru a determina ce SA este folosit. Numrul de secven - fiecrui pachet i este asignat un numr secvenial i doar pachete dintr-o anumit fereastr sunt acceptate. 57 Informaia util reprezinta urmtoarea parte a pachetului, format din Date (criptate) i Vectorul de Iniializare, acesta fiind necriptat. Valoadea acestui vector este diferita n fiecare pachet, deci dac dou pachete au acelai coninut, vectorul de initializare va cauza criptarea diferit a acestora. Partea a treia a unui pachet o constituie informaia suplimentar de la sfrit, care conine cel puin dou cmpuri (opional mai poate conine 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 proteciile aplicate unei conexiuni; acestea pot fi create i manual, folosind valori decise n avans de cele dou pri, dar nu pot fi rennoite. 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 conine informaii despre securitatea negociat ntre dou pri 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 participani i de obicei are mai puin trafic i o durat de via mai mare dect IPSec SA. IPSec SA - sunt folosite pentru a negocia algoritmii de criptare pentru traficul IP, bazndu-se pe definirea regulilor de stabilire a traficului ce va fi protejat. Pentru c sunt unidirecionale, cel puin 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 ieire. Prima problem se refara la faptul c unele echipamente ar putea depinde de negocierea IKE fcut 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 ateptat deci negocierea nu va ncepe. Alt eveniment neplcut apare cnd IKE include adresele IP ca 58 parte a procesului de autentificare, care depinde de modul IKE folosit. Dac autentificarea se bazeaz pe adresa IP, schimbrile fcute de NAT vor cauza euarea procesului IKE. Principala funcie a protocolului IKE consta in faptul ca ambele tipuri de SA sunt stabilite ntre participanii IPSec folosind protocolul IKE. Acest protovol opereaz n dou faze pentru a stabili aceste asociaii 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 comunicaiile IKE dintre iniiator i cel care rspunde sunt protejate cu criptare i cu o verificare a integritii prin autentificare. Exist o diferen ntre ISAKMP i IKE care trebuie prezizata: ISAKMP definete cum capetele IPSec comunic, cum realizeaz schimbul de mesaje i starea tranziiilor prin care trec pentru a stabili conexiunea (mai exact arat scopul autentificrii i schimbului de informaii pentru interschimbul de cheie) iar IKE definete 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 bidirecional 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 capt recomanda parametrii folosii de SA. Patru parametrii dintre acetia sunt obligatorii i alctuiesc aa numita suit de protecie: Algoritmul de criptare - specific algoritmul care cripteaz datele: DES, 3DES, AES. Algoritmul de protecie a integritii -indic ce algoritmi de tip hash de pot folosi: HMAC-MD5 sau HMAC-SHA-1 Metoda de autentificare - sunt 3 posibiliti de autentificare a utilizatorilor (chei prestabilite, semnturi digitale, criptare cu cheie public) DH Group - este folosit pentru generarea unui secret comun ntr-o manier sigur, astfel nct 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 negociai la primul pas. Coninutul acestei perechi de mesaje variaz n funcie de metoda de autentificare. n cea de-a treia pereche de mesaje, fiecare capt 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 posibiliti 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 staie trimite trei informatii: toi parametrii suitei de protecie , poriunea sa de schimb de cheie DH care este un numr folosit o singur dat (nonce) i identitatea sa. n al doilea mesaj, cealalt staie trimite patru informatii: parametrii suitei sale de protecie, proiunea sa de DH, care este un numrul folosit o singur dat (nonce), identitatea sa i informaia util de autentificare. Al treilea mesaj este utilizat pentru ca prima staie s trimit propria sa informaie de autentificare. Figura 3.4 Mecanismul de criptarea a datelor IPSec utiliznd chei publice i chei private. A doua faza se refera la schimbul n etapa a doua care furnizeaz negocierea i stabilirea asociaiilor 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 unidirecionale. Aceste perechi sunt create prin intermediul unui singur mod, modul rapid, care folosete trei mesaje pentru a stabili SA. Comunicaiile din acest mod sunt criptate prin metoda spacificat n IKE SA-ul stabilit n faza 1. n primul mesaj, prima staie trimite trei informatii: cheile, numerele unice i sugestiile de parametri IPSec SA. Numerele unice se folosesc ca si msur mpotriva atacurilor de replicare. n al doilea mesaj, cealalt staie trimite cheile, numerele i seleciile parametrilor IPSec SA i n plus procedurile hash de autentificare. Al treilea mesaj este folosit doar pentru ca prima staie s trimit procedura hash pentru autentificare. Dup ce a doua staie valideaz al treilea mesaj, se poate spune c s-a stabilit o asocieere de securitate IPSec, cele active fiind reinute ntr-o baz de date (SADB). IKE SA i IPSec SA au o limit de via, care nu poate fi mrit dup ce SA a fost creat. Dac o SA este aproape de sfritul duratei de via, capetele ar trebui s creeze una nou, printr-un proces de restabilire a cheii. Durata de via a unei SA spune ct de des ar trebui fiecare SA s fie restabilit, bazndu-se fie pe un anumit timp scurs fie pe cantitatea de trafic din reea. In mod asemanator cu modelu TCP/IP, IPSec are o multitudine de componente implicate i caracterizeaz un set complet de interaciuni de-a lungul acestora. Structura protocolului asigur avantajul modularizrii: cnd are loc o schimbare a unei componente, celelalte nu se schimb implicit. Dezavantajul modularizrii este c greu de explicat fr 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 semnturii; de asemenea este responsabil pentru coordonarea efortului altor componente IPSec pentru a asigura c poate ndeplini sarcinile. Agentul de politic (IPSec Policy Agent) - este funcia cognitiv a protocolului i examineaz setrile IPSec ale sistemului specificnd ce trafic ar trebui protejat; nu protejeaj datele ci doar avertizeat ca un anumit trafic ar trebui protejat. ISAKMP - este negociatorul setrilor de securitate ale Internetului; atunci cnd dou staii vor s comunice, ISAKMP negociaz grupul desetri folosite pentru criptare i autentificare. 61 IKE (Internet Key Exchange) - pentru c IPSecul folosete chei secrete mprite, trebuie s fie un mecanism care s conecteze echipamentele i s se pun de acord asupra unei chei; acesta depinde de setrile furnizate de ISAKMP. In figura 3.4 este prezentata Interaciunea componentelor: Figura 3.4 Interaciunea IPSec In momentul pornirii unui echipament se aplic politica local sau de grup, dar se poate aplica periodic n timp ce activeaz n reea. Orice politic IPSec este preluat de angentul de politic IPSec. Atunci cnd exist mai multe reguli stabilite, agentul monitorizeaz comuniaia cu protocolul TCP/IP din toate aplicaiile, caut traficul care se potrivete acestora, adic acela care trebuie protejat. Agentul de politic i va comunica dispozitivului IPSec tipul de protecie de care este nevoie in momentul in care traficul de reea (care necesit protecie) 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, funcia 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 ctre IPSec driver, care va proteja traficul. Astfel, traficul protejat va fi returnat ctre 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 numr din ce in ce mai de utilizatori i furnizori de servicii coopereaz pentru a furniza o gam complet de soluii IPSec. Folosind capacitatea de tunelare a IPSec, se pot implementa reele 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 iniial de patru mesaj n timp ce IKE furniza opt mecanisme distincte de schimb initiale, fiecare dintre care avand avantaje i dezavantaje. Mecanisme criptografice mai puine: IKEv2 utilizeaz mecanisme criptografice pentru a proteja pachetele sale, care sunt foarte asemntoare 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 msuri de fiabilitate, n situatia n care ambele pri se ateptau ca cealalt s iniieze o aciune . Rezistena la atacul de tip DoS (Denial of Service Refuzul Serviciului) : IKEv2 nu efectueaz procesarea pn cnd nu determin dac exist de fapt un solicitant. Aceasta tactica a rezolvat problemele cu atacurile DoS suferite de IKE care efectua o mulime de prelucrari criptografice din locaii fantoma 3.4 Principalele avantaje ale reelelor virtuale private Reducerea costurilor - furnizorii de VPN pot nira o mulime de beneficii pe care le aduce tehnologia, multe aprnd odat cu dezvoltarea ei. Poate cel mai puternic argument folosit este reducerea costurilor. Reelele virtuale private sunt mult mai ieftine dect reelele private proprietare ale companiilor; se reduc costurile de operare a reelei (linii nchiriate, echipamente, administratori reea). Dac folosii Internetul pentru a distribui servicii de reea la mare distan, atunci putei evita achiziia de linii nchiriate, extrem de scumpe, ntre reprezentane i firm, dar i costurile convorbirilor interurbane pe modemuri dial-up sau ISDN. Reprezentana va trebui s se conecteze numai local, la un provider Internet, pentru a ajunge n reeaua firmei mam. Economii se fac i relativ la lipsa necesitii investiiilor n 63 echipament WAN adiional, singura achiziie fiind legat de mbuntirea capacitilor de conectare la Internet a serverului. Integrare, simplitate, uor de implementat - reeaua virtual privat poate fi imediat realizat peste conexiunea deja existent la Internet, nefiind necesar o infrastructur separat. Se simplific topologia reelei companiei private. De asemenea, prin aceeai conexiune se pot integra mai multe aplicaii: transfer de date, Voice over IP, Videoconferine. Uurina administrrii - in cazul unei interconectri complete a sucursalelor unei firme, liniile private pot deveni un comar. Trebuie instalate i administrate linii ntre fiecare dou sucursale. Folosind Internetul, nu trebuie dect 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 corporaie 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, organizaia va putea profita de ele fr a face investiii n echipamente. ISP suport majoritatea costurilor schimbrii tehnologiilor. Mobilitate - angajaii mobili precum i partenerii de afaceri (distribuitori sau furnizori) se pot conecta la reeaua companiei ntr-un mod sigur, indiferent de locul n care se afl. Scalabilitate - afacerea companiei crete, deci apare o nevoie permanent de angajai mobili i conexiuni securizate cu partenerii strategici si distribuitorii. Pe msur ce cererea de acces la distan crete, organizaia nu va avea nevoie s cumpere i s instaleze echipamente de comunicaie noi. E nevoie doar de comandarea unui nou cont de acces la un ISP. Securitate - Reeaua virtual privat asigur un nivel ridicat de securitate a informaiilor transmise prin utilizarea unor protocoale avansate de autentificare i criptare. Informaiile care circul prin VPN sunt protejate prin diferite tehnologii de securitate (criptare, autentificare, IPSec). Nu trebuie s v temei c datele traficate prin VPN pot fi compromise. Conectivitate global pe msur ce economia continu s se globalizeze, reelele de firm trebuie s creasc n afara granielor 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 internaional. Protocolul Internetului (IP) poate rula pe orice infrastructur de comunicaie. [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 rmn ntotdeauna la curent cu actualizrile critice i definiiile antivirus. i toti utilizatorii ar trebui s fie educai n ceea ce priveste activitile 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 SSLi TLS Protocoale criptografice care asigur posibilitatea realizrii de comunicaii sigure prin Internet pentru web, e-mail, Internet fax i pentru alte transferuri de date sunt Transport Layer Security (TLS) i predecesorul su, Secure Sockets Layer (SSL). Intre SSL 3.0 i TLS 1.0 exist anumite deosebiri, dar n esen protocolul rmane acelai. Protocolul a fost creat iniial de Netscape Communications Corporation ca parte integrant a browserului su web (pe partea de client) i a web server-ului. Ulterior a fost acceptat i de Microsoft i ali dezvoltatori de aplicai 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 protecia tranzaciilor online este prezentat n lucrarea. Protocolul TLS permite aplicaiilor client/sever s comunice, dar fiind mpiedicat ascultarea liniilor, modificarea datelor i falsificarea mesajelor. TLS ofer autentificare la capetele unei comunicaii i confidenialitatea comunicaiilor prin Internet. De cele mai multe ori, doar serverul se autentific - clientul rmanand neautentificat; astfel utilizatorul final (o persoan sau o aplicaie cum ar fi un web browser) poate fi sigur c la captul cellalt al liniei de comunicaie este cine trebuie. In cazul autentificrii la ambele capete (autentificare mutual) ambele entiti implicate n procesul de comunicare primesc asigurri n legtura cu entitatea cu care comunic. Pentru a se face posibila autentificarea cii mutuale trebuie implementata o infrastructura cu chei publice (PKI) la clieni. TLS lucreaza sub nivelurile protcoalelor de aplicaie cum este HTTP, FTP, SMTP i NNTP si deasupra protocoalelor de transport TCP i UDP. Poate fi folosit cu orice protocol care folosete 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 aplicaii cum ar fi cele de comer electronic. TLS este folosit de asemenea i n SMTP aa cum este specificat n RFC 3207. Aceste aplicaii folosesc certificate pentru chei publice pentru a verifica identitatea entitilor implicate n comunicaie. 66 TLS implic trei faze importante: Criptarea traficului cu metode simetrice. Negociere ntre entiti pentru funcionarea 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 comunicaie 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 uor, opional poate comprima datele, aplic o funcie MAC (de ex. HMAC) pentru integritatea datelor, cripteaz datele folosind un algoritm simetric (pentru confidenialitate) i transmite rezultatul la destinaie. Cand se ajunge la destinaie, datele sunt decriptate, se verific MAC-ul, opional se face decompresia, se reasambleaz blocurile de date i sunt transmise la procesele de aplicaie de la nivelul superior. Pentru criptarea simetric i pentru HMAC, cheile sunt generate n mod unic pentru fiecare sesiune i sunt bazate pe o informaie 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 folosii, stabilete cheile criptografice i n final stabilete o conexiune sigur pentru protocolul TLS Record care realizeaz serviciile de comunicaie sigur pentru protocoalele de aplicaie de la nivelul superior. 67 4.2.1 Protocolul de Handshake TLS Protocolul de autentificare n TLS poarta denumirea de Protocolul Handshake. Aceste dou entiti implicate executata operaiile 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 informaie 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 aceeai parametri de securitate pentru a confirma faptul c handshake-ul s-a ncheiat fr s fi intervenit un atacator. Canalul sigur stabilit este transmis protocolului TLS Record pentru a procesa comunicaiile de la nivelul de aplicaie. Aceste operaii 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 folosete 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, stabilete o conexiune encriptat intre cele doua maini. Aceste capabiliti reuesc s resolve probleme fundamentale ale comunicaiilor Internet i al altor reele TCP/IP : Autentificarea serverului SSL: permite unui utilizator s confirme identitatea serverului. Programulul de verificare al clientului foloeste 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 aceleai tehnici ca i cele pentru autentificarea serverului, programulul de verificare al serverului verific daca certificatul i numrul 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 transmitor i decriptate de programul receptor, aceasta oferind un mare grad de confidenialitate. Confidenialitatea este important pentru amandou parile intr-o tranzacie 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 definete 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 Opional autentific clientul la server Folosete tehnici de criptare prin chei publice pentru a proteja secretele Stabilete o conexiune SSL criptat. 4.3.1 Criptri folosite de SSL Protocolul SSL poate suporta o o gama larga de algoritmi de criptare sau cifruri, folosite in operaii cum ar fi : autentificarea serverului la client si vice-versa, transmiterea certificatelor, stabilirea cheilor pentru sesiuni. Clienii i serverele pot avea suite de cifruri sau seturi de cifruri. Aceasta depinznd 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 muli 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 informaiipe durata protocolului handshake, se remarca de ambele parile 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 ct 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 ingrijorai 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 instituii 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 aa 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 bii 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 bii si cu mesaj de autentificare MD4. Sunt ca si RC4, dar sunt mai lente putin. DES pe 46 de bii si cu mesaj de autentificare SHA 1. Este mai puternic decat criptarea pe 40 de bii 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 bii i mesaj de autentificare MD4. RC4 pe 40 de bii permite aproximativ 1.1 * 1012 chei posibile. RC4 sunt cele mai rapide cifruri dintre cele suportate. RC2 pe 40 de bii i mesaj de autentificare MD4. RC2 permite la fel de multe chei ca i RC4, dar este mai puin 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 precaui n a folosi aceste cifruri pentru ca datele nu sunt criptate i pt fi accesate de hackeri. Fr 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 combinaie 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 dect 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 paii derularii unui protocol "handshake" : 1. Clientul trimite serverului numarul versiunii de SSL, setrile cifrului, date generate aleator i alte informaii pe care serverul le folosete pentru a comunica cu clientul folosind SSL. 2. Serverul trimite clientului numrul versiunii de SSL, setrile cifrului, date generate aleator i alte informaii pe care clientul le folosete pentru a comunica cu serverul folosind SSL. Deasemenea serverul ii trimite certificatul i dac clientul cere serverului o resurs care are nevoie de autentificarea clientului, atunci cere i certificatul clientului. 3. Clientul folosete unele informaii 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" pn acum, clientul (cu cooperarea serverului, depinznd de cifrul folosit) creeaz ceea ce este numit "premaster secret" pentru sesiune, il cripteaz cu cheia public a serverului (obinuta 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 ii 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 ii folosete cheia privat pentru decriptarea "premaster secret"-ului, apoi dupa o serie de pai (pe care clientul i parcurge deasemenea, pornind de la acelai "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 schimbri 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 poriunii 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 poriunii de "handshake" a serverului. 10. Protocolul "handshake" este acum complet si sesiune SSL a inceput. Clientul i serverul folosesc aceleai "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 opiune 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 pari 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 avnd sigurana 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 autentificrii 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 identitii serverului. Pentru a autentifica identitatea acelui pe care certificatul afirma ca il reprezint, clientul folosete certificatul de la Pasul 3. Legatura dintre o cheie public i serverul identificat de certificatul care conine cheia public se poate autentifica in moemntul in care un client SSL primeste un raspuns de "da" la urmatoarele 4 intrebri, prezentate in figura 4.1. Chiar daca cele 4 intrebri nu sunt parte tehnica a protocolului SSL, este de datoria clientului s poat s realizeze aceti pai, care pot asigura de identitatea serverului i pot ajuta impotriva atacurilor cunoscute. Figura 4.1 Autentificarea legaturturii dintre o cheie publica i server 74 Un client SSL trece prin urmatorii pai 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 oprete aici. Dac data este bun clientul merge la Pasul 2. 2. Este CA-ul iniiat 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 iniiat se potrivete 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 "inrudete" cu unul de lista de incredere. 3. Cheia public initiata valideaz semnatura digitala a initiatorului? Clientul folosete cheia public de pe certificatul de autentificare CA (aflat la pasul 2) pentru a valida semnatura digital a CA-ului. Daca informaia de pe certificatul serverului a fost schimbat de cnd 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 recunoate certificatul clientului ca o valid "scrisoare de introducere" de la acel CA i trece la paii urmtori. 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 aceeai adres specificat de numele domeniului din certificatul lui. Chiar daca Pasul 4 nu este o parte tehnic a protocolului SSL, este singura protecie 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 potrivete. 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 dorete autentificare clientlui, serverul va initia "Autentificarea clientului". Dup acesti pai, serverul poate sa ii 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 asigurri adiionale 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 folosete 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 conine cheia public, un program server SSL trebuie sa primeasc "da" la primele 4 intrebri 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 legturii dintre cheia public i persoana care conine cheia public. Un server SSL trece prin urmatorii pai 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 stabilete c acea cheie public este detinut de acel John Doe (necunoscut) se potrivete cu cheia privat folosit pentru crearea semnturii 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 inele 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 astzi 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 iniiat un CA de incredere? Fiecare program server SSL deine o list de certificate CA de "incredere". Aceast list determin care certificate le va accepta serverul. Dac DN al CA-ului iniiat se potrivete 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 initiaorului? Serverul folosete cheia public de pe certificatul CA pentru a valida semnatura digital a CA-ului. Daca informaia 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 pornete mai departe. Din acest punct protocolul SSL permite serverului s considere clientul autentificat i sa treac la Pasul 6. Serverele Netscape pot fi configurate opional s treac prin Pasul 4 inaintea Pasului 6. 77 4. Este certificatul utilizatorului present n intrarea LDAP a utilizatorului? Acest pas opional 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 stabilete 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 iniial 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 criptri mai slabe ntre partile ce comunic. n versiunea 3 atacul a fost ameliorat prin adaugarea unui mesaj de final la sfritul 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 aplicaia s-i dea seama c aceasta a fost nchis anormal. 4.5 Diferene 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 aceluiai scop si anume comunicarea securizat prin reea. Modificrile aduse de TLS nu sunt substaniale si mult lume l privete mai degrab ca 78 o actualizare minor a SSL. Diferenele ntre cele dou protocoale sunt rezumate n cele ce urmeaza: Numrul de versiune: pentru TLS, numarul de versiune este 1.3, fata de 3.0 pentru SSL, ceea ce ntarete convingerea unora ca TLS este doar o actualizare minor a SSL. MAC: TLS folosete ultima versiune de HMAC, iar acesta acoper i cmpul de versiune. Mesajul CERTIFICATE_VERIFY: Funcia de dispersie este calculat doar dup mesajele de handshake Coduri de avertizare: TLS definete mai multe coduri de avertizare dect 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 main client printr-o reea nesigur, pentru a executa n siguran comenzi pe maina de la distana i pentru a muta fiiere de la o main 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 maina client descarc o cheie public de pe un server de la distan i stabilete un canal de comunicaie sigur ntre el (clientul) i server folosind cheia public descrcat i anumite informaii criptografice ale utilizatorului. Parola poate fi criptat folosind cheia public a serverului i transmis la server doar in momentul in care informaiile criptografice reprezint o parol 79 4.6.1 Arhitectura SSH Protocolul SSH lucreaza ntre dou calculatoare, calculatoare intre care nu exist nicio relaie de ncredere printr-o reea de comunicaie nesigur. Unul este serverul (host-ul) de la distan iar cellalt 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 primete la intrare la partea de server o pereche de chei (privat/public). La ieire protocolul va realiza un canal sigur (n ceea ce privete confidenialitatea 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 autentificrii entitilor de la client la server. Pentru ca aceast direcie de autentificare s fie posibil, serverul de la distan trebuie s aib informaii apriori despre informaiile criptografice ale utilizatorului, adic utilizatorul trebuie s fie cunoscut de server. Aceste protocoale pot fi bazate pe chei publice sau pe parole. Rezultatul execuiei 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 operaii de comunicaie. 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 folosete schimbul de chei Diffie-Hellman i prin semnarea de ctre 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 muli algoritmi un server poate avea mai multe perechi de astfel de chei. Dac un server are astfel de chei, atunci trebuie s aib cel puin cte o pereche de chei pentru fiecare algoritm asimetric precizat de standardul Internet (DSS sau RSA n funcie de versiune). In timpul fazei de schimb de chei se pot folosi cheile (public i privat) serverului: serverul folosete cheia privat pentru a semna mesajele ce in de schimbul de chei; clientul folosete 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 informaii apriori n legtur 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 fcut asocierea ntre fiecare server i cheia public corespunztoare. 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 autoritii 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 nelege integritatea datelor). Pe de alt parte fiecare cheie public a serverelor trebuie s fie certificat n mod corespunztor 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 soluiile mai vechi (de ex. comenzile UNIX rlogin, rsh, rftp etc.). Metoda cea mai buna de obinere a unei chei publice este autentificate a unui server este ca utilizatorul s aduc o copie a cheii publice i s o pun n maina 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 maina client este pus ntr-un fiier cu numele $HOME/.ssh/known host. Utilizatorul trebuie s securizeze din punct de vedere fizic cheia public a serverului n 81 ceea ce privete integritatea datelor. Pe sistemele Windows cheia public a serverului exist doar n memoria sistemului i este descrcat n timp real de la server (printr-o legtur nesigur!). O alt modalitatea de seama de obinere a cheii publice autentice a serverului este folosirea autentificrii prin voce ntr-o legtur telefonic. Cheia public a serverului este descrcat de utilizator pe maina client printr-o legtur nesigur. O \amprent" hexazecimal a cheii publice este prezentat utilizatorului. Aceast "amprent" este: amprenta(cheie) = H(cheie) unde, H este o funcie hash criptografic, de ex. SHA-1. n cazul SHA-1, ntreaga amprent are 160 de bii 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 ateptand conexiuni. O serie de clieni se pot conecta la acelai server. Pentru a obine cheia de sesiune protocolul SSH folosete protocolul pentru schimb de chei Diffie- Hellman. 4.6.3 Strategia SSH Una dintre caracteristicile cele mia importante ale protocolului SSH este de a mbunti securitatea prin Internet ntr-o manier progresiv. Posibilitatea clientului de a folosi orice metod doreste pentru verificarea autenticitii 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 mbuntit 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 soluii simple. Cheia serverului prin mediul nesigur exist doar sub forma de cheie public, aa 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 reea ce permite simularea unei reele complexe, este o unealt complementar pentru laboratoarele reale de reelistic pentru ingineri de reea, 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 adevrat utile n simularea de reea, cu ar fi: - Crearea unor topologi de reea complexe 83 - Emularea platformelor IOS Cisco - Conectarea reelei 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 reelele reale, acesta emuleaz pe deplin tot ceea ce este necesar pentru a simula i testa in mod corespunztor o reea. Este util in testarea configuraiilor, 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 familiarizai si cu alte simulatoare de reea 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 spaiul de lucru n GNS3. Acesta este divizat in patru panouri, cel din stnga prezint tipurile de noduri disponibile. Utilizatorul poate vedea simbolul ruterelor pentru diferite platforme, PIX Firewall, Ethernet swtich, etc. Panoul din dreapta prezint sumarul topologiei. Seciunea din mijloc contine dou panouri. Cel superior reprezinta spaiul 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, bazndu-se pe configuraia care a fost aleasa pentru ruter. 84 nainte de a ncepe simularea exista cteva setari ce trebuie realizate in GNS3. n primul rnd imaginile IOS trebuiesc ncrcate. Fiecare model de ruter are imaginea sa, depinde de utilizator ce model dorete 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 cnd ruleaz simularea. Dupa aceasta ruterele sunt adugate n spaiul 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 coninutul pachetelor (packet browser); - Citire i scriere n diferite formate open-source i proprietare de fiiere: 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, BSD etc.); Datele capturate pot fi studiate printr-o interfa grafic sau n linie de comand; - Multiple posibiliti de filtrare a datelor capturate; - Interfaa 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 reea, Wireshark trebuie s ruleze cu drepturi de administrator. Acest lucru prezint, evident, probleme de securitate pentru sistemul de pe care este rulat aplicaia. O soluie a acestei probleme este aceea de a rula doar utilitarul tcpdump sau componenta dumpcap a aplicaiei la un nivel privilegiat pentru a putea captura traficul iar analiza acestuia urmnd a se efectua ulterior cu Wireshark rulnd la un nivel restricionat. 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 invee tehnici noi si tehnologii folosite in reelistic 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 MiB o Model interfata retea: e1000 o Initrd: asa842-initrd.gz o Kernel: asa842-vmlinuz - Router Cisco c3640 o RAM: 128 MiB o IOS: c3640-is-mz_120-7_t.image o 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 Ethernet 1 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; interfata Ethernet 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 se conecteaza la HQ-R; - HQ-R: interfata Fastethernet 0/0 se conecteaza la HQ-ASA; interfata Fastethernet 1/0 se conecteaza la Host1; - ISP1: interfata Fastethernet 0/0 se conecteaza la HQ-ASA; interfata Fastethernet 1/0 se conecteaza la ISP2; interfata Fastethernet 2/0 se conecteaza la ISP3; - ISP2: interfata Fastethernet 0/0 se conecteaza la Branch2-ASA; interfata Fastethernet 1/0 se conecteaza la ISP3; interfata Fastethernet 2/0 se conecteaza la ISP1; - ISP3: interfata Fastethernet 0/0 se conecteaza la Branch1-ASA; interfata Fastethernet 1/0 se conecteaza la ISP1; interfata Fastethernet 2/0 se conecteaza la ISP2. 88 Branch1- ASA Asignarea adreselor IP Configurare OSPF interface GigabitEthernet0 nameif WAN security-level 0 ip address 22.22.22.2 255.255.255.252 no shutdown interface GigabitEthernet1 nameif LAN security-level 100 ip address 192.168.2.1 255.255.255.252 no shutdown router ospf 1 network 22.22.22.0 255.255.255.252 area 0 network 192.168.2.0 255.255.255.252 area 0 log-adj-changes Branch1-R Asignarea adreselor IP Configurare OSPF interface FastEthernet0/0 ip address 192.168.2.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet1/0 ip address 10.10.2.1 255.255.255.0 no ip directed-broadcast duplex auto speed auto no shutdown router ospf 1 passive-interface FastEthernet1/0 network 10.10.2.0 0.0.0.255 area 0 network 172.28.3.0 0.0.0.3 area 0 network 192.168.2.0 0.0.0.3 area 0 Branch2- ASA Asignarea adreselor IP Configurare OSPF interface GigabitEthernet0 nameif WAN security-level 0 ip address 33.33.33.2 255.255.255.252 no shutdown interface GigabitEthernet1 nameif LAN security-level 100 ip address 192.168.3.1 255.255.255.252 no shutdown router ospf 1 network 33.33.33.0 255.255.255.252 area 0 network 192.168.3.0 255.255.255.252 area 0 log-adj-changes Branch2-R Asignarea adreselor IP interface FastEthernet0/0 ip address 192.168.3.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet1/0 89 Configurare OSPF ip address 10.10.3.1 255.255.255.0 no ip directed-broadcast duplex auto speed auto no shutdown router ospf 1 passive-interface FastEthernet1/0 network 10.10.3.0 0.0.0.255 area 0 network 172.28.2.0 0.0.0.3 area 0 network 172.28.3.0 0.0.0.3 area 0 network 192.168.3.0 0.0.0.3 area 0 HQ-ASA Asignarea adreselor IP Configurare OSPF interface GigabitEthernet0 nameif WAN security-level 0 ip address 11.11.11.2 255.255.255.252 no shutdown interface GigabitEthernet1 nameif LAN security-level 100 ip address 192.168.1.1 255.255.255.252 no shutdown router ospf 1 network 11.11.11.0 255.255.255.252 area 0 network 192.168.1.0 255.255.255.252 area 0 log-adj-changes HQ-R Asignarea adreselor IP Configurare OSPF interface FastEthernet0/0 ip address 192.168.1.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet1/0 ip address 10.10.1.1 255.255.255.0 no ip directed-broadcast duplex auto speed auto no shutdown router ospf 1 passive-interface FastEthernet1/0 network 10.10.1.0 0.0.0.255 area 0 network 172.28.2.0 0.0.0.3 area 0 network 192.168.1.0 0.0.0.3 area 0 ISP1 Asignarea adreselor IP interface FastEthernet0/0 ip address 11.11.11.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet1/0 ip address 77.77.77.1 255.255.255.252 90 Configurare OSPF no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet2/0 ip address 88.88.88.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown router ospf 1 network 11.11.11.0 0.0.0.3 area 0 network 77.77.77.0 0.0.0.3 area 0 network 88.88.88.0 0.0.0.3 area 0 ISP2 Asignarea adreselor IP Configurare OSPF interface FastEthernet0/0 ip address 33.33.33.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet1/0 ip address 99.99.99.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet2/0 ip address 77.77.77.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown router ospf 1 network 33.33.33.0 0.0.0.3 area 0 network 77.77.77.0 0.0.0.3 area 0 network 99.99.99.0 0.0.0.3 area 0 ISP3 Asignarea adreselor IP interface FastEthernet0/0 ip address 22.22.22.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet1/0 ip address 88.88.88.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto no shutdown interface FastEthernet2/0 ip 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-broadcast duplex auto speed auto no shutdown router ospf 1 network 22.22.22.0 0.0.0.3 area 0 network 88.88.88.0 0.0.0.3 area 0 network 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 acesteia Sursa reala a tunelului Destinatia reala a tunelului interface Tunnel2 ip address 172.28.3.1 255.255.255.252 tunnel source 192.168.2.2 tunnel destination 192.168.3.2 Branch2-R Numele interfetei tunel (virtuala) Adresa IP a acesteia Sursa reala a tunelului Destinatia reala a tunelului interface Tunnel2 ip address 172.28.3.2 255.255.255.252 tunnel source 192.168.3.2 tunnel 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 esantion de la Host1 catre Host2. Dupa cum se poate observa in figura 5.8 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 este criptat. De asemenea se poate observa ca acum dimensiunea totala a mesajului a ajuns la 166 octeti. In figura 5.8 se poate observa doar mesajul 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 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 33.33.33.2 type ipsec-l2l Se intra in modul de configurare al atributelor tunelului HQ-ASA(config)# tunnel-group 33.33.33.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-Br2 esp-aes-256 esp-sha-hmac Se 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 din Branch 2). HQ-ASA(config)#access-list HQ-Br2-Map extended permit ip object HQ-LAN -GRE object Branch2-LAN -GRE Construim un crypto map pentru a ingloba toate blocurile construite: Se vor selecta adresele IP catre Branch2 HQ-ASA(config)#crypto map HQ-Map 2 match address HQ-Br2-Map Se seteaza celalalt capat al tunelului HQ-ASA(config)#crypto map HQ-Map 2 set peer 33.33.33.3 HQ-R Numele interfetei tunel (virtuala) Adresa IP a acesteia Sursa reala a tunelului Destinatia reala a tunelului interface Tunnel2 ip address 172.28.2.1 255.255.255.252 tunnel source 192.168.1.2 tunnel destination 192.168.3.2 Branch2-R Numele interfetei tunel (virtuala) Adresa IP a acesteia Sursa reala a tunelului Destinatia reala a tunelului interface Tunnel1 ip address 172.28.2.2 255.255.255.252 tunnel source 192.168.3.2 tunnel 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 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> 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 pri 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 on SSLProtocol TLSv1 SSLCipherSuite HIGH:!aNULL:!MD5 SSLCertificateFile /etc/pki/tls/http/apachecert.pem SSLCertificateKeyFile /etc/pki/tls/http/apachekey.pem DocumentRoot "/var/www/html/https-tls" <Directory /var/www/html/https-tls> Order allow,deny Allow 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 pri 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 folosete ultima versiune de HMAC, iar acesta acoper i cmpul de versiune. - Mesajul CERTIFICATE_VERIFY: Funcia de dispersie este calculat doar dup mesajele de handshake - Coduri de avertizare: TLS definete mai multe coduri de avertizare dect 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 1 Configuratia completa a echipamentelor de retea 1 Configuratie Branch1-ASA Branch1-ASA# sh run : Saved : ASA Version 8.4(2) ! hostname Branch1-ASA enable password 8Ry2YjIyt7RRXU24 encrypted passwd 2KFQnbNIdI.2KYOU encrypted names ! interface GigabitEthernet0 nameif WAN security-level 0 ip address 22.22.22.2 255.255.255.252 ! interface GigabitEthernet1 nameif LAN security-level 100 ip address 192.168.2.1 255.255.255.252 ! ftp mode passive same-security-traffic permit inter-interface object network HQ-LAN subnet 10.10.1.0 255.255.255.0 object network Branch1-LAN-GRE host 192.168.2.2 object network Branch2-LAN-GRE host 192.168.3.2 object network Branch1-WAN host 22.22.22.2 object network Branch1-LAN subnet 10.10.2.0 255.255.255.0 access-list WAN-IN extended permit ip object HQ-LAN object Branch1-LAN access-list WAN-IN extended permit ip object Branch2-LAN-GRE object Branch1-LAN- GRE access-list WAN-IN extended deny ip any any access-list HQ-Br1-Map extended permit ip object Branch1-LAN object HQ-LAN pager lines 24 mtu WAN 1500 mtu LAN 1500 no failover icmp unreachable rate-limit 1 burst-size 1 no asdm history enable arp timeout 14400 nat (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 static Branch1-LAN-GRE Branch1-LAN-GRE nat (LAN,WAN) source static Branch1-LAN Branch1-LAN destination static HQ-LAN HQ- LAN nat (LAN,WAN) source static Branch1-LAN-GRE Branch1-LAN-GRE destination static Branch2-LAN-GRE Branch2-LAN-GRE access-group WAN-IN in interface WAN ! router ospf 1 network 22.22.22.0 255.255.255.252 area 0 network 192.168.2.0 255.255.255.252 area 0 log-adj-changes ! timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute timeout tcp-proxy-reassembly 0:01:00 timeout floating-conn 0:00:00 dynamic-access-policy-record DfltAccessPolicy user-identity default-domain LOCAL no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart crypto ipsec ikev1 transform-set HQ-Br1 esp-aes-256 esp-sha-hmac crypto map HQ-Br1 1 match address HQ-Br1-Map crypto map HQ-Br1 1 set peer 11.11.11.2 crypto map HQ-Br1 1 set ikev1 transform-set HQ-Br1 crypto map HQ-Br1 interface WAN crypto isakmp identity address crypto ikev1 enable WAN crypto ikev1 policy 1 authentication pre-share encryption aes-256 hash sha group 2 lifetime 3600 telnet timeout 5 ssh timeout 5 console timeout 0 threat-detection basic-threat threat-detection statistics access-list no threat-detection statistics tcp-intercept tunnel-group 11.11.11.2 type ipsec-l2l tunnel-group 11.11.11.2 ipsec-attributes ikev1 pre-shared-key ***** ! ! prompt hostname context 116 no call-home reporting anonymous call-home profile CiscoTAC-1 no active destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService destination address email callhome@cisco.com destination transport-method http subscribe-to-alert-group diagnostic subscribe-to-alert-group environment subscribe-to-alert-group inventory periodic monthly subscribe-to-alert-group configuration periodic monthly subscribe-to-alert-group telemetry periodic daily crashinfo save disable Cryptochecksum:c279e6a4eae895911a15b94872d12856 : end 2. Configuratia Branch1-R Branch1-R#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname Branch1-R ! ip subnet-zero ip tcp synwait-time 5 ! interface Tunnel2 ip address 172.28.3.1 255.255.255.252 no ip directed-broadcast ip mtu 1400 tunnel source 192.168.2.2 tunnel destination 192.168.3.2 ! interface FastEthernet0/0 ip address 192.168.2.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet1/0 ip address 10.10.2.1 255.255.255.0 no ip directed-broadcast duplex auto 117 speed auto ! router ospf 1 passive-interface FastEthernet1/0 network 10.10.2.0 0.0.0.255 area 0 network 172.28.3.0 0.0.0.3 area 0 network 192.168.2.0 0.0.0.3 area 0 ! ip classless ip route 10.10.3.0 255.255.255.0 172.28.3.2 no ip http server line con 0 exec-timeout 0 0 privilege level 15 logging synchronous transport input none line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login ! end 3. Configuratia Branch2-ASA Branch2-ASA# sh run : Saved : ASA Version 8.4(2) ! hostname Branch2-ASA enable password 8Ry2YjIyt7RRXU24 encrypted passwd 2KFQnbNIdI.2KYOU encrypted names ! interface GigabitEthernet0 nameif WAN security-level 0 ip address 33.33.33.2 255.255.255.252 ! interface GigabitEthernet1 nameif LAN security-level 100 ip address 192.168.3.1 255.255.255.252 ! ftp mode passive same-security-traffic permit inter-interface object network HQ-LAN-GRE host 192.168.1.2 118 object network Branch1-LAN-GRE host 192.168.2.2 object network Branch2-LAN-GRE host 192.168.3.2 object network Branch2-WAN host 33.33.33.2 access-list WAN-IN extended permit ip object HQ-LAN-GRE object Branch2-LAN-GRE access-list WAN-IN extended permit ip object Branch1-LAN-GRE object Branch2-LAN- GRE access-list WAN-IN extended deny ip any any access-list HQ-Br2-Map extended permit ip object Branch2-LAN-GRE object HQ-LAN-GRE pager lines 24 mtu WAN 1500 mtu LAN 1500 no failover icmp unreachable rate-limit 1 burst-size 1 no asdm history enable arp timeout 14400 nat (WAN,LAN) source static HQ-LAN-GRE HQ-LAN-GRE destination static Branch2- LAN-GRE Branch2-LAN-GRE nat (WAN,LAN) source static Branch1-LAN-GRE Branch1-LAN-GRE destination static Branch2-LAN-GRE Branch2-LAN-GRE nat (LAN,WAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination static HQ- LAN-GRE HQ-LAN-GRE nat (LAN,WAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination static Branch1-LAN-GRE Branch1-LAN-GRE access-group WAN-IN in interface WAN ! router ospf 1 network 33.33.33.0 255.255.255.252 area 0 network 192.168.3.0 255.255.255.252 area 0 log-adj-changes ! timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute timeout tcp-proxy-reassembly 0:01:00 timeout floating-conn 0:00:00 dynamic-access-policy-record DfltAccessPolicy user-identity default-domain LOCAL no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart crypto ipsec ikev1 transform-set HQ-Br2 esp-aes-256 esp-sha-hmac crypto map HQ-Map 1 match address HQ-Br2-Map crypto map HQ-Map 1 set peer 11.11.11.2 crypto map HQ-Map 1 set ikev1 transform-set HQ-Br2 crypto map HQ-Map interface WAN 119 crypto isakmp identity address crypto ikev1 enable WAN crypto ikev1 policy 1 authentication pre-share encryption aes-256 hash sha group 2 lifetime 3600 telnet timeout 5 ssh timeout 5 console timeout 0 threat-detection basic-threat threat-detection statistics access-list no threat-detection statistics tcp-intercept tunnel-group 11.11.11.2 type ipsec-l2l tunnel-group 11.11.11.2 ipsec-attributes ikev1 pre-shared-key ***** ! ! prompt hostname context no call-home reporting anonymous call-home profile CiscoTAC-1 no active destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService destination address email callhome@cisco.com destination transport-method http subscribe-to-alert-group diagnostic subscribe-to-alert-group environment subscribe-to-alert-group inventory periodic monthly subscribe-to-alert-group configuration periodic monthly subscribe-to-alert-group telemetry periodic daily crashinfo save disable Cryptochecksum:0b182dc58f7c0ef80c98f462550342c3 : end 4. Configuratia Branch2-R Branch2-R#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname Branch2-R ! ip subnet-zero 120 ip tcp synwait-time 5 ! interface Tunnel1 ip address 172.28.2.2 255.255.255.252 no ip directed-broadcast ip mtu 1400 tunnel source 192.168.3.2 tunnel destination 192.168.1.2 ! interface Tunnel2 ip address 172.28.3.2 255.255.255.252 no ip directed-broadcast ip mtu 1400 tunnel source 192.168.3.2 tunnel destination 192.168.2.2 ! interface FastEthernet0/0 ip address 192.168.3.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet1/0 ip address 10.10.3.1 255.255.255.0 no ip directed-broadcast duplex auto speed auto ! router ospf 1 passive-interface FastEthernet1/0 network 10.10.3.0 0.0.0.255 area 0 network 172.28.2.0 0.0.0.3 area 0 network 172.28.3.0 0.0.0.3 area 0 network 192.168.3.0 0.0.0.3 area 0 ! ip classless ip route 10.10.1.0 255.255.255.0 172.28.2.1 ip route 10.10.2.0 255.255.255.0 172.28.3.1 no ip http server ! ! line con 0 exec-timeout 0 0 privilege level 15 logging synchronous transport input none line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous 121 line vty 0 4 login ! end 5. Configuratia HQ-ASA HQ-ASA(config)# sh run : Saved : ASA Version 8.4(2) ! hostname HQ-ASA enable password 8Ry2YjIyt7RRXU24 encrypted passwd 2KFQnbNIdI.2KYOU encrypted names ! interface GigabitEthernet0 nameif WAN security-level 0 ip address 11.11.11.2 255.255.255.252 ! interface GigabitEthernet1 nameif LAN security-level 100 ip address 192.168.1.1 255.255.255.252 ! ftp mode passive same-security-traffic permit inter-interface object network HQ-LAN-GRE host 192.168.1.2 object network HQ-WAN host 11.11.11.2 object network Branch1-LAN subnet 10.10.2.0 255.255.255.0 object network Branch2-LAN-GRE host 192.168.3.2 object network HQ-LAN subnet 10.10.1.0 255.255.255.0 object network RemoteUsers subnet 10.20.1.0 255.255.255.0 object network Host1 host 10.10.1.100 access-list WAN-IN extended permit ip object Branch1-LAN object HQ-LAN access-list WAN-IN extended permit ip object Branch2-LAN-GRE object HQ-LAN-GRE access-list WAN-IN extended permit ip object RemoteUsers any access-list WAN-IN extended deny ip any any access-list HQ-Br1-Map extended permit ip object HQ-LAN object Branch1-LAN access-list HQ-Br2-Map extended permit ip object HQ-LAN-GRE object Branch2-LAN-GRE pager lines 24 mtu WAN 1500 122 mtu LAN 1500 ip local pool RemotePool 10.20.1.1-10.20.1.254 no failover icmp unreachable rate-limit 1 burst-size 1 no asdm history enable arp timeout 14400 nat (WAN,LAN) source static HQ-LAN HQ-LAN destination static Branch1-LAN Branch1- LAN nat (LAN,WAN) source static Branch1-LAN Branch1-LAN destination static HQ-LAN HQ- LAN nat (WAN,LAN) source static HQ-LAN-GRE HQ-LAN-GRE destination static Branch2- LAN-GRE Branch2-LAN-GRE nat (LAN,WAN) source static Branch2-LAN-GRE Branch2-LAN-GRE destination static HQ- LAN-GRE HQ-LAN-GRE nat (WAN,LAN) source static RemoteUsers RemoteUsers destination static Host1 Host1 access-group WAN-IN in interface WAN ! router ospf 1 network 11.11.11.0 255.255.255.252 area 0 network 192.168.1.0 255.255.255.252 area 0 log-adj-changes ! timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute timeout tcp-proxy-reassembly 0:01:00 timeout floating-conn 0:00:00 dynamic-access-policy-record DfltAccessPolicy user-identity default-domain LOCAL no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart crypto ipsec ikev1 transform-set HQ-Br1 esp-aes-256 esp-sha-hmac crypto ipsec ikev1 transform-set HQ-Br2 esp-aes-256 esp-sha-hmac crypto ipsec ikev1 transform-set RemoteSet esp-aes-256 esp-sha-hmac crypto dynamic-map HQ-Map-dynamic 1 set ikev1 transform-set RemoteSet crypto dynamic-map HQ-Map-dynamic 1 set reverse-route crypto map HQ-Map 1 match address HQ-Br1-Map crypto map HQ-Map 1 set peer 22.22.22.2 crypto map HQ-Map 1 set ikev1 transform-set HQ-Br1 crypto map HQ-Map 2 match address HQ-Br2-Map crypto map HQ-Map 2 set peer 33.33.33.2 crypto map HQ-Map 2 set ikev1 transform-set HQ-Br2 crypto map HQ-Map 3 ipsec-isakmp dynamic HQ-Map-dynamic crypto map HQ-Map interface WAN crypto isakmp identity address crypto ikev1 enable WAN crypto ikev1 policy 1 123 authentication pre-share encryption aes-256 hash sha group 2 lifetime 3600 telnet timeout 5 ssh timeout 5 console timeout 0 threat-detection basic-threat threat-detection statistics access-list no threat-detection statistics tcp-intercept username remoteuser password CxAh5EQ/8f4FVvNi encrypted privilege 15 tunnel-group 22.22.22.2 type ipsec-l2l tunnel-group 22.22.22.2 ipsec-attributes ikev1 pre-shared-key ***** tunnel-group 33.33.33.2 type ipsec-l2l tunnel-group 33.33.33.2 ipsec-attributes ikev1 pre-shared-key ***** tunnel-group RemoteGroup type remote-access tunnel-group RemoteGroup general-attributes address-pool RemotePool tunnel-group RemoteGroup ipsec-attributes ikev1 pre-shared-key ***** ! ! prompt hostname context no call-home reporting anonymous call-home profile CiscoTAC-1 no active destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService destination address email callhome@cisco.com destination transport-method http subscribe-to-alert-group diagnostic subscribe-to-alert-group environment subscribe-to-alert-group inventory periodic monthly subscribe-to-alert-group configuration periodic monthly subscribe-to-alert-group telemetry periodic daily crashinfo save disable Cryptochecksum:0f7dfcfe2d1c21004a349760d3638c70 : end 6. Configuratia HQ-R HQ-R#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime 124 service timestamps log uptime no service password-encryption ! hostname HQ-R ! ip subnet-zero ip tcp synwait-time 5 ! interface Tunnel2 ip address 172.28.2.1 255.255.255.252 no ip directed-broadcast ip mtu 1400 tunnel source 192.168.1.2 tunnel destination 192.168.3.2 ! interface FastEthernet0/0 ip address 192.168.1.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet1/0 ip address 10.10.1.1 255.255.255.0 no ip directed-broadcast duplex auto speed auto ! router ospf 1 passive-interface FastEthernet1/0 network 10.10.1.0 0.0.0.255 area 0 network 172.28.2.0 0.0.0.3 area 0 network 192.168.1.0 0.0.0.3 area 0 ! ip classless ip route 10.10.3.0 255.255.255.0 172.28.2.2 no ip http server ! ! line con 0 exec-timeout 0 0 privilege level 15 logging synchronous transport input none line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login ! 125 end 7. Configuratia ISP1 ISP1#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname ISP1 ! ip subnet-zero ip tcp synwait-time 5 ! interface FastEthernet0/0 ip address 11.11.11.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet1/0 ip address 77.77.77.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet2/0 ip address 88.88.88.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet3/0 no ip address no ip directed-broadcast shutdown duplex auto speed auto ! router ospf 1 network 11.11.11.0 0.0.0.3 area 0 network 77.77.77.0 0.0.0.3 area 0 network 88.88.88.0 0.0.0.3 area 0 ! ip classless no ip http server 126 ! ! line con 0 exec-timeout 0 0 privilege level 15 logging synchronous transport input none line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login ! end 8. Configuratia ISP2 ISP2#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname ISP2 ! ip subnet-zero ip tcp synwait-time 5 ! interface FastEthernet0/0 ip address 33.33.33.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet1/0 ip address 99.99.99.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet2/0 ip address 77.77.77.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! 127 interface FastEthernet3/0 no ip address no ip directed-broadcast shutdown duplex auto speed auto ! router ospf 1 network 33.33.33.0 0.0.0.3 area 0 network 77.77.77.0 0.0.0.3 area 0 network 99.99.99.0 0.0.0.3 area 0 ! ip classless no ip http server ! ! line con 0 exec-timeout 0 0 privilege level 15 logging synchronous transport input none line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login ! end 9. Configuratia ISP3 ISP3#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname ISP3 ! ip subnet-zero ip tcp synwait-time 5 ! interface FastEthernet0/0 ip address 22.22.22.1 255.255.255.252 no ip directed-broadcast 128 duplex auto speed auto ! interface FastEthernet1/0 ip address 88.88.88.1 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! interface FastEthernet2/0 ip address 99.99.99.2 255.255.255.252 no ip directed-broadcast duplex auto speed auto ! router ospf 1 network 22.22.22.0 0.0.0.3 area 0 network 88.88.88.0 0.0.0.3 area 0 network 99.99.99.0 0.0.0.3 area 0 ! ip classless no ip http server ! ! line con 0 exec-timeout 0 0 privilege level 15 logging synchronous transport input none line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login ! end 129 ANEXA 2 Echo-reply in tunel GRE 130 ANEXA 3 Echo-reply in tunel IPSec 131 ANEXA 4 Echo-reply in tunel GRE over IPSec 132 ANEXA 5 Site-ul SSL <HEAD> <TITLE> LUCRARE DE LICENTA - CONSTANTIN MANEA (HTTPS - SSL) </TITLE> <CENTER> <H1> UNIVERSITATEA POLITEHNICA BUCURESTI </H1> <H2> FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMATIEI </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 6 Site-ul TLS <HEAD> <TITLE> LUCRARE DE LICENTA - CONSTANTIN MANEA (HTTPS - TLS) </TITLE> <CENTER> <H1> UNIVERSITATEA POLITEHNICA BUCURESTI </H1> <H2> FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMATIEI </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 7 Fisierul 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 443 Listen 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 256 SSLRandomSeed 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_log TransferLog logs/ssl_access_log LogLevel 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 on SSLProtocol TLSv1 SSLCipherSuite HIGH:!aNULL:!MD5 SSLCertificateFile /etc/pki/tls/http/apachecert.pem SSLCertificateKeyFile /etc/pki/tls/http/apachekey.pem DocumentRoot "/var/www/html/https-tls" <Directory /var/www/html/https-tls> Order allow,deny 139 Allow from all </Directory> </VirtualHost> <VirtualHost *:80> SSLEngine off DocumentRoot "/var/www/html/http" <Directory /var/www/html/http> Order allow,deny Allow from all </Directory> </VirtualHost>