Documente Academic
Documente Profesional
Documente Cultură
1 Avantajele sistemelor cu parole 2.1.1.2 Dezavantaje 2.1.1.3 Reguli pentru creterea securitii asigurate de sistemele cu parole 2.1.2 Protecia prin criptare 2.1.2.1 Autentificarea bazat pe chei cifrate 2.1.2.2 Autentificarea bazat pe ceva ce utilizatorul este 2.1.2.2.1 Sisteme de autentificare biometrice 2.1.2.2.1.1 Utilizarea amprentelor n autentificare
2.1.2.2.1.1.1 Dispozitive de scanare cu deplasare 2.1.2.2.1.1.2. Dispozitive de scanare cu arii de senzori 2.1.2.2.1.1.3 Dispozitive de scanare capacitive 2.1.2.2.1.1.4 Dispozitive de scanare a amprentelor funcionnd n radio-frecven 2.1.2.2.1.1.5 Dispozitive de scanare a amprentelor funcionnd termic 2.1.2.2.1.1.6 Dispozitive de scanare piezoelectric a amprentelor 2.1.2.2.1.1.7 Dispozitive de scanare Micro-Electro-Mecanic a amprentelor 2.1.2.2.1.1.8 Potrivirea amprentelor 2.1.2.2.1.1.8.1. Parametrii imaginilor de amprente 1
3 3 3 4 4 5 5 6 7 7 7 7 8 9 9 10 10 10 10 12 15 16 17 19
20 21 23 23 24 25 26 27 27 27 27 28 28 29 29 29
3.1.3 Necesiti de securitate n reele 3.2 Securitatea LAN-urilor 4. Bazele matematice ale criptrii 4.1 Aritmetica pe clase de resturi modulo specificat 4.2 Numere prime 4.3 Mica teorem a lui Fermat 4.4 Cmpuri Galois 4.5 Matrici MDS 4.6 Transformri pseudo-Hadamard 4.7 Funcii hash 4.7.1 Descrierea algoritmului MD5 5. Criptografia i securitatea reelelor 5.1 Civa termeni utilizai n criptografie 5.2 Algoritmi criptografici cu cheie secret 5.2.1 Algoritmul DES 5.2.1.1 Variante de DES 5.2.2 Algoritmul IDEA 5.2.3 Algoritmul BLOWFISH 5.2.4 Algoritmul TWOFISH 5.2.5 Algoritmul RC6 5.2.6 Standardul AES, Advanced Encryption Standard (Rijndael) 5.3 Algoritmi de criptare cu cheie public 5.3.1 Algoritmul Diffie-Hellman 5.3.2 Algoritmul RSA 5.3.3 Algoritmul El Gamal 5.4 Standardul de criptare cu cheie public PKCS#1 5.5 Algoritmi de semntur digital 5.5.1 Algoritmi de semntur digital bazai pe metoda Diffie-Hellman 5.5.2 Semnturi digitale El-Gamal 5.5.3 Standardul de semntur digital DSS 5.6 Atacuri mpotriva sistemelor de criptare 6. Securitatea servicilor INTERNET 6.1 Protocoale TCP/IP 6.1.1 Protocoale de nivel transport 6.1.2 Analiza de protocoale 6.1.3 Concluzii 6.2 Securitatea la nivel IP 6.3 Arhitectura securitii n INTERNET 6.3.1 Servicii de securitate 6.3.2 Mecanisme de securitate specifice 6.3.2.1 Arhitectura securitii ISO 6.3.2.2 Securitatea servicilor TCP/IP 6.3.2.2.1 Arhitectura securitii pentru protocolul IP 6.3.2.2.1.1 Mecanisme de securitate la nivel IP 6.3.2.2.1.2 Managementul cheilor 6.3.2.2.3 Securitatea protocolului TCP 6.3.2.2.3.1 O slbiciune a protocolului TCP 6.3.3 Funcionarea servicilor INTERNET 6.4 Servicii de autentificare 6.5 Pachetul de programe PGP, Pretty Good Privacy
30 30 33 33 33 36 36 41 42 42 42 47 47 47 49 56 57 59 61 64 66 70 73 74 78 78 83 83 84 85 89 92 92 107 115 117 119 121 122 123 124 127 127 129 131 136 138 138 146 161
6.6 Sisteme de tip firewall 6.6.1. Produse de tip firewall 6.6.2. Prinicipii de baz n proiectarea unui dispozitiv de tip firewall 6.6.3. Filtrarea pachetelor 6.6.4. Studiu de caz
Introducere
Odat cu dezvoltarea tehnologic nregistrat n tiina calculatoarelor i n telecomunicaii, calculatoarele sunt utilizate tot mai mult, crescnd riscurile ca informaia pe care o stocheaz s fie accesat fraudulos. Uneori acest tip de furt de informaie poate fi foarte duntor, din punct de vedere economic, proprietarului acelui calculator. Obiectul securitii calculatoarelor este scderea acestor riscuri.
- Estimarea "inamicului"; se face pe baza rspunsului la ntrebarea: Care este cauza pierderii resursei de informaie ? - Estimarea slbiciunilor sistemului de calcul; se face pe baza rspunsului la ntrebarea: Care sunt subsistemele cele mai vulnerabile ? - Principiul celei mai uoare penetrri; Atacatorul va exploata orice vulnerabilitate disponibil, el va ataca "cea mai slab za a lanului"; - Recomandarea controlului; -Realizarea controlului adecvat pentru a reduce: a) vulnerabilitile periculoase; b) resursele critice; c) ameninrile semnificative; - Tipuri de ameninri: ntrerupere, Interceptare, Modificare. - Confidenialitate; Poate fi realizat prin: Criptare (Cifrare), Controlul accesului la citire. - Integritate; Poate fi realizat prin: Controlul accesului la scriere, Controlul consistenei. - Disponibilitate; Poate fi realizat prin: Controlul accesului, Redundan, Toleran la defeciuni, Monitorizare, Folosirea mecanismelor de prioritate, Autentificare, Secrete (de exemplu parole), Folosirea semnturilor digitale. - Nerepudiere; Poate fi realizat prin: utilizarea semnturilor digitale, Contactul cu tere persoane de ncredere, Folosirea mecanismelor de control, Controlul accesului, - Criptografie; Criptare (Cifrare), Semnturi digitale, Protocoale criptografice, Monitorizare, - Detectoare de anomalii, - Control soft: - Controlul programelor interne (de obicei identificare i autentificare), - Controlul sistemelor de operare (Identificare i autentificare, Izolarea proceselor, Protecia fiierelor), - Controlul dezvoltrii, Standarde de calitate (ISO 9000), Revizii, Testare, Separarea sarcinilor, - Politici, Stabilirea politicii, Antrenament, Monitorizare, - Protecie fizic: Ui, Lacte, Scuturi, Surse neinteruptibile, Controlul climatic, - Protecie hard: instruciuni protejate, protecie la scriere, - Protecie soft (bazat pe sistemul de operare): Identificare i autentificare, grupuri de lucru n reea; - Protecia la nivelul aplicaiei: prin parole, prin criptare - Eficiena controalelor -Politic; -Disponibilitate; -Securitatea resurselor; -Costuri operaionale Suprapunerea controalelor; - Revizii periodice.
Pentru a putea s-i acceseze cutia potal, utilizatorul trebuie s-i specifice identificatorul i parola.
Accesul la diferite subsisteme ale calculatorului precum i la diferite pagini web se face pe baz de parol. Managerul de parole, le nregistreaz i le ofer spre utilizare atunci cnd sunt necesare. Utilizatorul le poate modifica cu ajutorul acestui manager.
2.1.1.2. Dezavantaje
Eficiena unui sistem cu parole depinde de capacitatea de a menine parola secret. Aceast capacitate este afectat de urmtoarele aciuni: - Ghicitul sau dedusul parolei; Deoarece utilizatorii trebuie s-i aminteasc parolele ei au tendina s le aleag n aa fel nct s fie uor de reamintit. De aceea ele sunt i uor de ghicit. Numele copiilor operatorilor sau al echipelor sportive preferate ale acestora constituie parole uor de ghicit. Cnd un utilizator i alege parole mai complicate, sau are de inut minte mai multe parole, el are de obicei tendina s le scrie undeva. Astfel aceste parole pot fi gsite. De asemenea utilizatorul poate fi observat, n timp ce i tasteaz parola i aceasta poate fi reinut (shoulder surfing); - Divulgatul parolei; Se poate ntmpla ca utilizatorul s folosesc n comun anumite date i s comunice n acest scop parola unor colaboratori. Oamenii pot fi pclii si divulge parolele (social engineering);
- Folosirea forei brute; Exist atacuri bazate pe ghicitul parolei prin ncercri
repetate. Acestea recurg la utilizarea unor dicionare de parole online sau pe epuizarea tuturor combinaiilor posibile. - Monitorizarea electronic; Poate fi fcut atunci cnd parolele sunt transmise calculatorului de ctre utilizatori; - Accesarea fiierului de parole; Este vorba despre fiierul de parole al unui server; - Evitarea sistemului cu parole; Exist posibilitatea ncrcrii sistemului de operare, folosind dischete sistem. n acest mod se evit utilizarea fiierelor CONFIG.SYS i AUTOEXEC.BAT i deci i a sistemului cu parole.
Prin criptarea fiierelor de date se asigur prevenirea accesului neautorizat la aceste fiiere. Aceast operaie este ns antagonic cu un alt deziderat i anume prevenirea pierderii datelor. Prima operaie presupune existena unui numr minim de copii ale fiierului de date n timp ce cea de a doua necesit existena unui numr ct mai mare de copii ale aceluiai fiier. Criptarea poate rezolva aceast contradicie simplu i eficient. E necesar doar cifrarea tuturor copiilor fiierului considerat. 2.1.2.1. Autentificarea bazat pe chei criptate Pentru nceput se prezint metode de autentificare bazate pe o combinaie ntre ceva ce utilizatorul posed i ceva ce utilizatorul tie. Obiectele pe care utilizatorul le posed i care sunt folosite pentru autentificarea sa se numesc tokens. Exist dou categorii de astfel de obiecte: memory tokens i smart tokens.
Memory tokens
Sunt obiecte care stocheaz informaia fr ns a o prelucra. Exist dispozitive speciale de citire-scriere care transfer informaie dinspre i nspre memory tokens. Cel mai cunoscut tip de memory token este cartela magnetic. Cartela magnetic de tip ATM este cel mai folosit dispozitiv de tip memory token pentru autentificare ntr-un sistem de calcul. Un exemplu este prezentat n figura urmtoare.
Aceast cartel reprezint o combinaie ntre ceva ce utilizatorul posed (cartela propriuzis) i ceva ce utilizatorul tie (codul PIN). Avantajele acestor sisteme Sunt mult mai sigure dect parolele.
Dezavantaje Problema securitii PIN-ului este de tipul securitatea parolei. Necesit cititoare speciale, n care trebuie incluse procesoare de verificare a PIN-ului. Pot fi pierdute, furate sau falsificate.
Smart tokens
Diversific funcionarea unui memory token adugnd cteva circuite integrate care realizeaz funciile unui calculator. Aceste dispozitive pot fi clasificate dup trei criterii: carateristici fizice, tipul de interfa folosit i protocolul folosit. 2.1.2.2 Autentificarea bazat pe ceva ce utilizatorul este Tehnologiile de autentificare biometric folosesc trsturi unice ale utilizatorului ca de exemplu: amprentele, geometria minii, caracteristici ale retinei, caracteristici ale vocii sau caracteristici ale semnturii. Ele se folosesc pentru aplicaiile de login. Ele funcioneaz astfel: -Utilizatorul este "achiziionat", nregistrndu-i-se caracteristicile i asocind acestora identitatea sa; -La cererea de autentificare caractersiticile utilizatorului sunt msurate; -Se compar rezultatele obinute prin msurare cu cele nregistrate anterior i se realizeaz sau nu autentificarea utilizatorului. n continuare se face o trecere n revist a principalelor sisteme de auenitificare biometric folosite n prezent.
Amprentele utilizatorului sunt "achiziionate" prin scanare. Se prezint principalele rezultate ale studiului: Solid state fingerprint scanners elaborat de Philip D. Wasserman de la NIST n decembrie 2005. Un dispozitiv hard de scanare a amprentei msoara anumite caracteristici fizice ale acesteia i le transform ntr-o imagine. Mai multe tehnologii se pot aplica n acest scop: capacitiv (UPEK), de radiofrecven (Authentec), termic (Atmel), piezorezistiv (Fidelica), ultrasonic (Ultrascan), piezoelectric (Franhaufer), MEMS. Exist mai multe tipuri de dispozitive hard de scanare a amprentelor : - cu deplasare ; utilizatorul i deplaseaz degetul de-a lungul dispozitivului de scanare (care este format dintr-o linie de senzori). - cu arii de senzori ; conin o arie de senzori care acoper amprenta utilizatorului. Sunt mai scumpe dect dispozitivele de scanare cu deplasare.
2.1.2.2.1.1.1 Dispozitive de scanare cu deplasare Sunt formate dintr-o singur linie (sau din doar cteva linii) de senzori. Sunt ieftine, au dimensiuni mici i consum puin energie electric. Se folosesc la telefoane celulare, la PDA-uri i la laptop-uri.
Utilizatorul i deplaseaz degetul transversal peste linia de senzori, imaginea amprentei construindu-se pe baza mai multor nregistrri fcute de linia de senzori. Viteza i direcia deplasrii degetului sunt limitate. Un exemplu de astfel de senzor este prezentat n figura urmtoare.
Figura 1.2.1.2.2.1.1.1. Exemplu de utilizare a unui senzor de scanare a amprentelor. Prin scanare se obine o imagine intermediar care este ulterior transformat software n imaginea amprentei.
Procesul software de sintez a imaginii poate produce distorsiuni, neacceptabile n cazul utilizrii n criminalistic. O imagine detaliat a senzorului de mai sus este prezentat n figura urmtoare.
Figura 2.2.1.2.2.1.1.1. Circuit integrat de scanare hard a amprentei cu deplasare de tipul Fujitsu Microelectronics MBF 320.
2.1.2.2.1.1.2 Dispozitive de scanare cu arii de senzori Captureaz una sau mai multe amprente printr-o singur expunere. Dimensiunea imaginii trebuie sa fie suficient de mare. Dup cum s-a menionat deja, procesul de scanare are ca rezultat o imagine a amprentei care este supus unui proces de recunoatere. Acesta poate avea succes doar dac dimensiunile imaginii obinute n urma scanrii sunt suficient de mari. Recent a fost publicat de ctre NIST un studiu dedicat identificrii dimensiunii minime a imaginii care permite o rat satisfctoare de recunoatere, Effect of Image Size and Compression on One-to-One Fingerprint Matching . Concluzia acestui studiu este: Prin decuparea imaginii performanele dispozitivului de recunoatere a amprentei se degradeaz rapid. Imagini cu dimensiuni mai mici de 320320 pixeli nu trebuie s fie folosite. nc nu s-a realizat nici un circuit integrat pentru scanarea
amprentei unui singur deget care s satisfac aceste condiii. Procesul de scanare poate fi implementat cu diferite tehnologii. n continuare se prezint cteva dintre acestea. 2.1.2.2.1.1.3 Dispozitive de scanare capacitive n brevetul SUA nr. 5973623 este descris un dispozitiv de scanare a amprentelor capacitiv cu deplasare. Principiul su de funcionare este prezentat n figura urmtoare.
Figura 1.2.1.2.2.1.1.3. Schema electric echivalent a a unei celulule a dispozitivului de scanare capacitiv.
Fiecare senzor, corespunztor unui pixel din imaginea amprentei, conine un integrator a crui capacitate este determinat de prezena degetului n apropierea suprafeei circuitului. Senzorii funcioneaz n 2 faze: Prima este de reset-are scurtcircuitarea condensatorului integratorului. Faza 2 integratorul primete cantitatea de sarcin Q, care produce tensiunea de ieire E= Q/C, unde C reprezint capacitatea dintre plcile de metal, determinat de proximitatea pielii (muchii i vi).
Un exemplu de astfel de sistem de scanare a amprentelor este circuitul MBF 320, amintit deja mai sus. O arie de 256 x 8 electrozi metalici de pe suprafaa circuitului captureaz imaginea
unei amprente folosind detecia de capacitate. Suprafaa degetului joac rolul unei armturi a condensatorului iar fiecare electrod al ariei acioneaz ca i cealalt armtur. Suprafaa circuitului e protejat de un nveli foarte dur, rezistent chimic, care are rolul de dielectric. Un ghidaj axeaz degetul pe centrul ariei de senzori. Cnd un utilzator i deplaseaz degetul de-a lungul suprafeei circuitului, muchiile i vile epidermei degetului produc variaii de capacitate. Circuitul msoar modificrile de tensiune corespunztoare prin intermediul unui CAN pe 8 bii. Rezultatul este o imagine de rezoluie mare. Pachetul de programe oferit de Fujitsu captureaz cadrele de imagine de 256 x 8 pixeli produse la o scanare complet i construiete o imagine complet a amprentei. 2.1.2.2.1.1.4 Dispozitive de scanare a amprentelor funcionnd n radio-frecven Principiul lor de funcionare este prezentat n figura urmtoare. ntr-un cmp de radio-frecven generat local muchiile i vile epidermei degetului moduleaz n amplitudine semnalul de radiofrecven. Condensatoarele formate ntre punctele de pe suprafaa degetului i electrozii circuitului de scanare acioneaz ca nite antene care recepioneaz semnalul modulat n amplitudine. Amplificatoarele din structura circuitului rspund la semnalele de radio-frecven cuplate prin condensatoarele formate ntre deget i electrozii circuitului. n urma demodulrii acestor semnale se obine imaginea amprentei care poate fi memorat n vederea unei recunoateri ulterioare.
Figura 1.2.1.2.2.1.1.4. Schema de principiu a unui dispozitiv de scanare a amprentelor care lucreaz n radio-frecven.
2.1.2.2.1.1.5 Dispozitive de scanare a amprentelor funcionnd termic (Atmel) Msoar diferena de temperatur dintre muchiile i vile epidermei degetului. Aceasta este tranzitorie (dureaz aproximativ 100 ms). Constau dintr-o plcu de siliciu presrat cu pixeli de material piroelectric, sensibili la diferenele de temperatur. Aceste diferene de temperatur sunt transformate n sarcini electrice, care sunt amplificate i msurate. Se obin doar 16 nivele de gri. 2.1.2.2.1.1.6 Dispozitive de scanare piezoelectric a amprentelor (Fraunhofer) Acest tip de dispozitive este descris n cteva brevete din SUA : Nr. 6720712 Scott .a., 13 Aprilie 2004, Nr. 6812621 Scott, 2 Noiembrie 2004, Nr. 6844660 Scott, 18 Ianuarie 2005. 2.1.2.2.1.1.7 Dispozitive de scanare Micro-Electro-Mecanic a amprentelor Sunt dispozitive mecanice integrate n circuite semiconductoare. Au pre potenial sczut. Odat obinut, n urma procesului de scanare, imaginea amprentei poate fi utilizat pentru autentificare. n continuare se prezint cteva tehnici de autentificare bazate pe utilizarea imaginilor de amprente. n general autentificarea se face prin compararea noii imagini achiziionate cu imaginile dintr-o baz de date. n cazul n care exist o imagine n baza de date care se potrivete cu noua imagine, posesorul acesteia este identificat cu posesorul imaginii din baza de date. n acest mod persoana testat este autentificat. 2.1.2.2.1.1.8 Potrivirea amprentelor Cea mai important aplicaie a potrivirii amprentelor este rezolvarea crimelor. De mai bine de 35 de ani FBI dezvolt sisteme de potrivire a amprentelor precum i tehnici de apreciere a calitii acestora. n figura urmtoare se prezint un exemplu de funcionare al unui sistem de potrivire a amprentelor. Imaginea de amprent care se testeaz este reprezentat folosind culoarea maro. Sunt prezentate i ase imagini de amprente din baza de date (reprezentate folosind culoarea gri). Imaginea care se testeaz este suprapus pe rnd peste fiecare din imaginile din
10
baza de date. n cazul n care parametri specifici ai celor 2 imagini coincid ntr-un numr suficient de mare de puncte se face autentificarea. n caz contrar se trece la imaginea urmtoare.
Procesul de achiziie al imaginii testate se bazeaz pe scanarea amprentei i este prezentat n figura urmtoare.
FBI-ul are mai mult de 450 de milioane de amprente n baza sa principal de date care conine dosare criminale. Dup o arestare ofierii de poliie expediaz fiiere electronice coninnd amprentele suspecilor la FBI. Acestea pot fi folosite pentru verificarea adevratei identiti a suspecilor sau pentru cutarea de legturi cu crime anterioare. Uneori detectivii gsesc doar urme de amprente la locul crimei. O astfel de urm de amprent este prezentat n figura urmtoare.
11
Folosindu-se un sistem la a crui dezvoltare a ajutat i NIST, detectivii pot transmite aceste urme de amprente la un sistem automat de la sediul FBI, care caut potrivirile cu toate amprentele din baza de date amintit deja. Acest proces este ilustrat n figura urmtoare.
Figura 4.2.1.2.2.1.1.8. Urma de amprent transmis de ctre detectivii din teritoriu (reprezentat n figura anterioar) este comparat cu imaginile de amprent din baza de date FBI pn la gsirea unei potriviri (Imaginea din baza de date este reprezentat cu maro).
Dup cum s-a amintit deja pentru a decide dac dou amprente se potrivesc se verific ci dintre parametrii celor dou imagini aferente coincid. n cazul n care acest numr este suficient de mare se decide c are loc o potrivire. 2.1.2.2.1.1.8.1 Parametrii imaginilor de amprente Amprentele constau din muchii i vi ale epidermei degetelor. Pe o imagine de amprent muchiile apar ca i curbe ntunecate iar vile ca i spaii luminoase ntre muchii. Succesul autentificrii bazate pe folosirea amprentelor const ntr-o proprietate remarcabil a acestora, unicitatea lor. Nu exist dou persoane cu amprente identice. Compararea direct a dou imagini de amprent nu conduce la o soluie fiabil de autentificare deoarece procesul de scanare nu poate fi controlat riguros. Cele dou imagini pot avea orientri diferite i scri de reprezentare diferite. De aceea se prefer compararea tiparelor celor dou imagini de amprente. Programul de potrivire a amprentelor de la FBI asociaz un tipar global fiecrei amprente. Exist doar cteva tipuri de astfel de tipare. Imaginile de amprent conin doar trei feluri de regiuni. Acestea sunt prezentate n figura urmtoare.
12
Figura 1.2.1.2.2.1.1.8.1. De la stnga spre dreapta: regiuni de tip bucl, contur nchis i arc.
Prin identificarea acestor tipuri de regiuni se pot detecta detaliile amprentei. Exist doar patru tipuri de detalii, care sunt exemplificate n figura urmtoare.
Figura 2.2.1.2.2.1.1.8.1. De la stnga spre dreapta: detalii de tip bifurcare, miez, terminare de muchie i delt.
Identificnd aceste tipuri de detalii pe imaginea de amprent se construiete o hart a detaliilor, care se mai numete i tipar. Un exemplu este prezentat n figura urmtoare.
Figura 3.2.2.1.2.2.1.1.8.1. Prototipul amprentei din figur este marcat prin detalii reprezentate cu galben.
13
Harta arat locurile n care se termin muchiile sau n care acestea se bifurc. Apoi, programul compar harta detaliilor din urma de amprent care trebuie identificat cu tiparele din fiierele din baza de date. Un exemplu pentru aceast comparaie este prezentat n figura de mai jos.
Figura 4.2.2.1.2.2.1.1.8.1. Imaginile amprentei din baza de date (stnga) i a urmei de amprent primit pentru identificare (dreapta). Prototipurile celor dou amprente sunt identice, dar cel al urmei de amprent este rotit cu 180 n sens orar.
Cele mai multe amprente din baza de date a FBI (peste 30 de milioane) sunt imprimate pe hrtie cu cerneal. Copii ale acestora sunt distribuite prin fax utilizatorilor legali, dar calitatea digitizrii este adesea insuficient. Utilizatorii legali experimenteaz stocarea digital a acestor nregistrri. Principala dificulate care apare n acest demers este incompatibilitatea formatelor. De aceea n 1993 a fost publicat un nou standard de digitizare i compresie a amprentelor propus de FBI n comparaie cu NIST. Prin acest standard s-a stabilit s utilizeze o rezoluie de 500 de pixel-i pe inch, cu 256 de nivele de gri/pixel. n acest mod o singur amprent ajunge s aib aproximativ 700000 de pixel-i necesitnd 0,6 Mbytes pentru stocare. n consecin pentru stocarea amprentelor de la o pereche de mini este necesar o capacitate de memorare de 6 Mbytes. De aceea pentru cele 30 de milioane de amprente din baza de date a FBI ar fi necesar o capacitate de memorare de 200 Tbytes care ar costa peste 200 de milioane de dolari. De aici rezult necesitatea compresiei de date. De aceea FBI a colaborat cu omul de tiin Mladen Viktor Wickerhauser la elaborarea unui standard de compresie a imaginilor de amprente digitale. Acesta a fost omologat i se folosete de civa ani. n figura urmtoare este prezentat o imagine a unei amprente digitizate folosind acest standard. n stnga este prezentat imaginea original iar n dreapta este prezentat imaginea comprimat i reconstruit n urma aplicrii metodei specificate de standard care asigur un factor de compresie de 26:1.
Figura 5.2.2.1.2.2.1.1.8.1. Un exemplu de aplicare a tehnicii de compresie a imaginilor de amprente bazat pe utilizarea funciilor wavelet.
14
Aceast valoare consistent a factorului de compresie reduce de 26 de ori costul amintit mai sus. Metoda de compresie se bazeaz pe folosirea funciilor wavelet i este descris de grupul Amara Graps n raportul su An Introduction to Wavelets. 2.1.2.2.1.2 Utilizarea irisului n autentificare Recunoaterea automat sigur a persoanelor este de mult timp o provocare. Ca n toate problemele de recunoatere a formelor principala dificultate rezid n relaia dintre variabilitile inter-clase i intra-clas: obiectele pot fi clasificate corect numai dac variabilitatea elementelor fiecrei clase este inferioar variabilitii dintre diferite clase. De exemplu n recunoaterea feei, dificultile apar din faptul c faa este un organ social care se modific, oglindind o varietate de expresii, la fel ca i din caracterul su de obiect 3D activ, a crui imagine variaz n funcie de unghiul sub care este privit, de iluminare sau de vrst. S-a demonstrat c pentru imagini ale feei luate la interval de 1 an, chiar i cei mai buni algoritmi de recunoatere au rate de eroare cuprinse ntre 43% i 50%. mpotriva unei astfel de variabiliti intra-clas variabilitatea inter-clase este limitat deoarece fee diferite posed acelai set de parametri de baz n aceeai geometrie canonic. Irisul devine interesant pentru recunoaterea vizual sigur a persoanelor cnd imaginea poate fi achiziionat de la distan mai mic de 1 m i n special atunci cnd exist o nevoie de cutare n baze de date foarte mari, care s nu produc erori de identificare n ciuda numrului imens de posibiliti. Dei mic (11 mm), irisul are marele avantaj matematic c variabilitatea formei sale de la persoan la persoan este enorm. Ca i organ intern (dei vizibil din exterior) al ochiului, irisul este bine protejat fa de mediul nconjurtor i stabil n timp. Ca i obiect planar imaginea sa este relativ insensibil la unghiul iluminrii i modificri n unghiul de vedere cauzeaz doar transformri afine ale imaginii, chiar i distorsiunea de form ne-afin cauzat de dilatarea pupilei este reversibil. Uurina localizrii ochilor n cadrul feei i forma inelar distinctiv a irisului faciliteaz izolarea precis i repetabil a acestuia i crearea unor reprezentri invariante la dimensiune. 2.1.2.2.1.2.1 Captura imaginii irisului Sistemul de captur a imaginii irisului folosit n laboratorul de calculatoare al Universitii Cambridge din Anglia este prezentat n figura urmtoare.
15
- sistem de lentile Pentax ; - iluminare cu LED-uri n infrarou; - program de achiziie National Instrument Vision Assistant. Informaii suplimentare pot fi gsite la adresa : http://www.smartsensors.co.uk/ Odat achiziionat imaginea ochiului persoanei care trebuie autentificat are loc separarea irisului, apoi codarea acestuia i apoi compararea codului obinut cu codurile din baza de date. Pe baza acestei comparaii se decide dac persoana testat poate fi autentificat sau nu. Aceste operaii sunt sugerate n imaginea urmtoare, reprodus din articolul How Iris Recognition Works scris de John Daugman, profesor la universitatea amintit mai sus.
Figura 2.2.1.2.1.2.1. Pe imaginea ochiului care a fost achiziionat folosind sistemul din figura anterioar se detecteaz conturul pupilei, conturul care separ irisul de cornee i contururile care separ irisul sau corneea de gene. Apoi se codeaz irisul separat astfel obinndu-se codul reprezentat n colul din stnga sus al figurii.
Procedura de autentificare are deci dou etape, prima constnd n operaii de prelucrarea imaginilor i a doua, cea de codare i decizie const n operaii de teoria informaiei. 2.1.2.2.1.2.1 Extragerea imaginii irisului din imaginea ochiului Aceast operaie este prezentat n figura urmtoare. n scopul separrii regiunii ocupate de iris se utilizeaz un operator integro-diferenial. Imaginea ochiului este notat cu I(x,y). Coordonatele centrului pupilei sunt ( x0 , y0 ) . Domeniul de integrare este delimitat de un cerc cu centrul n ( x0 , y0 ) de raz variabil r. Pe acest cerc se consider elementul de arc ds, care definete sectorul de cerc marcat n figur. Se claculeaz integrala curbilinie :
I ( x, y ) Dens(r ) = x , y , r ds 0 0 2r
16
Figura 1.2.1.2.2.1.2.1. Separarea imaginii irisului din imaginea achiziionat a ntregului ochi.
Aceast integral este o msur a gradului de texturare a regiunii din interiorul cercului de raz r. Considernd c r se modific de la 0 la o valoare maxim, viteza de variaie a valorii integralei Dens(r) se modific brusc atunci cnd valoarea lui r depete valoarea razei cercului pupilei. Cea de a doua modificare brusc a vitezei de variaie a valorii integralei Dens(r) apare cnd r depete valoarea razei cercului exterior al irisului. n consecin supraveghind viteza de variaie a integralei Dens(r) pot fi detectate graniele regiunii irisului cu regiunile pupilei i corneii. Aceast vitez de variaie poate fi calculat cu relaia : vit var(r ) = Dens(r ) r n scopul netezirii acestei estimri viteza de variaie se convoluioneaz cu o funcie Gaussian de deviaie standard , notat cu G (r ) . Rezultatul convoluiei va avea valori extreme la acele valori ale lui r unde viteza de variaie ia valori extreme. Operatorul integro-diferenial utilizat pentru separarea irisului devine : I ( x, y ) max (r,x0 , y0 ) G (r ) vit - var(r ) = max (r,x0 , y0 ) G (r ) (r , x , y ) ds 0 0 2r r Acelai operator integro-diferenial poate fi folosit i pentru detecia muchiilor curbilinii care separ ochiul de pleoape, dar de aceast dat nu se mai integreaz pe contururi circulare ci pe unele arcuite. 2.1.2.2.1.2.2 Codarea imaginii irisului
Aceast operaie este descris n figura urmtoare. Este vorba despre o codare de faz.
Figura 1.2.1.2.2.1.2.2. Exemplu de codare a imaginii irisului. Cu galben sunt delimitate dou regiuni distincte care particip la codare. n partea din stnga sus a figurii este prezentat codul obinut.
17
Un numr de 1024 de regiuni locale disjuncte ale imaginii irisului (ca i cele dou demarcate cu galben n figura de mai sus) sunt filtrate cu filtre Gabor, genernd coeficieni compleci ale cror pri reale i imaginare specific coordonatele unor fazori n planul complex. Interesul pentru semnale complexe apare n legtur cu posibilitatea pe care o ofer acestea de a face o codare n faz. Exist cercettori n domeniul prelucrrii imaginilor care consider c cel mai mare coninut de informaie poate fi gsit n imaginile de faz. Rspunsul la impuls al unui filtru Gabor este dat de produsul dintre un nucleu, care descrie comportarea sa n domeniul spaial i o exponenial complex, care i descrie comportamentul n domeniul frecven, . Expresia nucleului este: / / unde reprezint raza vectoare a pixelului considerat n raport cu h ( , ) = e e centrul pupilei iar reprezint unghiul pe care l face aceast raz vectoare cu axa orizontal. Acest nucleu are doi parametri: i care caracterizeaz direcia preferenial a filtrului. La ieirea unui filtru Gabor se obine semnalul complex: 2 2 2 2 comp( , r , ) = I (, ) e i(0 ) e (r0 ) / e (0 ) / dd ,
2 2 2 2
0 0
dat de convoluia bidimensional a rspunsului la impuls al filtrului Gabor cu imaginea din regiunea local curent. Parametrii 0 i r0 reprezint coordonatele polare ale centrului regiunii locale curente. Aceste semnale complexe au prile real: 2 2 2 2 re( , r , ) = I (, ) cos(( )) e (r0 ) / e (0 ) / dd
0 0
i imaginar:
2 2 2 2 im(0 , r0 , ) = I (, ) sin ((0 )) e (r0 ) / e (0 ) / dd .
Prin gruparea acestor pri real i imaginar se obin fazori. Unghiul fiecrui fazor (element al imaginii de faz creat prin utilizarea filtrelor Gabor) este cunatizat pe 2 bii, fiind alocat ntr-unul din cele patru cadrane ale planului complex, aa dup cum se vede n figura urmtoare.
Figura 2. 2.1.2.2.1.2.2. Alocarea celor doi bii de cod corespunztori celor patru cadrane fiecrui fazor obinut n urma unei filtrri Gabor.
Acest proces este repetat pe toat suprafaa irisului obinndu-se un cod de 2048 de bii.
18
2.1.2.2.1.2.3 Detecia
n scopul auentificrii, codul generat pe baza imaginii achiziionate se compar cu codurile din baza de date. n cazul n care n baza de date este gsit un cod identic cu cel al imaginii achiziionate persoana testat este autentificat. Cheia recunoaterii irisului este cderea la un test de independen statistic, care implic attea grade de libertate nct este practic garantat trecerea lui cnd se compar codurile corespunztoare la dou irisuri diferite i unica lui cdere atunci cnd se compar codurile obinute n dou scanri ale aceluiai iris. Acest test const n compararea valorii unei metrici asociate fiecrei perechi formate din codul persoanei testate i un cod din baza de date cu un prag. Valoarea pragului se alege n aa fel nct testul s fie czut (irii ne-independeni statistic) doar dac cele dou coduri corespund aceluiai iris. Testul de independen statistic este implementat simplu cu ajutorul operatorului Boolean SAUEXCLUSIV, aplicat celor doi vectori de 2048 de bii care codeaz cei doi irii care se compar. Acest operator detecteaz neconcordana ntre oricare pereche de bii corespunztori. Pentru eliminarea eventualelor distorsiuni datorate celor dou achiziii se utilizeaz i vectorii masc corespunztori acestora (vectori care specific poziiile pixel-ilor celor doi irii care se compar). n acest scop se utilizeaz operatorul Boolean I. Apoi se calculeaz o distan Hamming (HD) fracionar, ca msur a ne-asemnrii celor doi irii: ( codeA codeB ) maskA maskB . HD= maskA maskB
Aceast distan reprezint metrica testului de independen. Numitorul msoar numrul total de bii de faz care conteaz n comparaia iriilor dup ce distorsiunile (datorate de exemplu reflexiilor sau genelor) au fost nlturate. De aceea HD este o msur fracionar a ne-asemnrii. Dac HD = 0, potrivirea este perfect. n scopul determinrii valorii optime a pragului cu care se compar metrica n laboratorul de calculatoare al Universitii Cambridge s-a creat o baz de date coninnd un numr foarte mare de imagini de iris. n urma codrii acestora s-a obinut o baz de date echivalent de coduri. n figura urmtoare se prezint distribuia statistic a distanelor Hamming fracionare obinute pentru cele 9,1 milioane de comparaii posibile ntre perechile de irii din baza de date.
Figura 1. 2.1.2.2.1.2.3 Histograma distanelor Hamming fracionare ntre codurile asociate imaginilor de iris din baza de date de la Cambridge.
19
Aceast histogram corespunde unei distribuii statistice descrise de o lege binomial. Expresia analitic a densitii de probabilitate corespunztoare legii binomiale este:
f ( x) =
N! N m p m (1 p ) m!( N m )!
Parametrii legii binomiale sunt: p (valaorea sa medie), N (numrul su de grade de libertate) i m. Doi dintre aceti parametri pot fi identificai pe baza histogramei din figur: p=0,5, N=249. Analiznd figura se constat c valoarea distanei Hamming fracionar care apare cel mai frecvent este de 0,5 i c valori mai mici de 0,3 sau mai mari de 0,7 apar foarte rar. De aceea s-a ales pentru pragul cu care se compar distana Hamming fracionar n testul de independen statistic valoarea de 0,5. Se poate afirma c este extrem de improbabil ca doi irii diferii s se deosebeasc n mai puin de o treime din informaia lor de faz. Exprimnd dispersia distribuiei binomiale ca i o entropie de discriminare i folosind diametre pentru pupil i iris de 5 mm i 11 mm, coninutul de variabilitate statistic ntre diferite forme de iris corespunde la o densitate de informaie de aproximativ 3,2 bii/mm2/iris. Calculnd integrala densitii de probabilitate corespunztoare legii binomiale (din ultima relaie) cu parametrii identificai pe baza histogramei din figura 1.2.1.2.6 ntre 0 i 0,333 se obine probabilitatea ca distana Hamming fracionar s fie egal cu 0,333. Valoarea acestei probabiliti este foarte mic fiind egal cu 1/16000000. Deci chiar n cazul n care se observ un grad mare de asemnare ntre codurile celor doi irii (de exemplu un grad de asemnare de 70% corespunde la HD=0,3) totui testul de independen statistic este czut foarte convingtor (probabilitatea ca HD s fie egal cu 0,3 este de 1/10000000000).
Raadioga, Rabbit (First), Radiosys, Rage, Rainbow (Ginger), Ramen, Ramen.A (Ramen), Ramen.B (Ramen), Rape, Rape-10 (Rape), Rape-11 (Rape), Rape-2.2 (Rape), Rapi, Rasek, Raubkopie, Ravage (Dodgy), Ravage (MMIR), Ray (Joke Program), Razer, RC5, RC5 Client (RC5), RD Euthanasia (Hare), Readiosys (Radiosys), Reboot, Reboot Patcher (Lomza), Red Diavolyata, Red Diavolyata-662 (Red Diavolyata), Red Spider (Reverse),
20
Red worm (Adore), Red-Zar (Torn), Redspide (Reverse), Redstar (Karin), RedTeam, RedX (Ambulance), Reggie (Secshift), Reiz, Reizfaktor (Reiz), Reklama, Relzfu, RemExp, Remote_Explorer (RemExp), Rendra, Rendra.A (Rendra), REQ! (W-13), Requires, Rescue, Reset (Omega), Resume, Resume.A@mm (Resume), Resume.A (Resume), ResumeWorm (Resume), Resurrect (Siskin), Reveal, Revenge, Reverse, Reverse.B (Reverse), Rex, Rhubarb (RP), Richard Keil, RICHS (RemExp), Rich (RemExp), Riihi, Ring0 (RingZero), RingZero, Ripper, RITT.6917, RM, RMAHammerhead, RMA-hh (RMA-Hammerhead), RNA2, Roach.b (Nymph), Roach (Nymph), Robocop, Robocop.A (Robocop), Robocop.B (Robocop), Rock Steady (Diamond), Rogue, Roma, Romeo-and-Juliet (BleBla), Romeo (BleBla), Romer_Juliet, Rosen (Pixel), RP, RPS, RPS.A (RPS), RPS.B (RPS), RPS.C (RPS), RPVS (TUQ), RraA, rrAa (RRaA), RSY, Russian Mirror, Russian Mutant, Russian New Year, Russian Tiny, Russian Virus 666, Russian_Flag, Russ (Joke.Win32.Russ), Rust, Rut, Rut.A (Rut), RV, RV.A (RV), Ryazan, Rybka (Vacsina).
O poriune dintr-o list mai recent poate fi vzut n figura urmtoare. Comparnd lista i poriunea sa prezentat n figur se poate constata evoluia produs n generarea de virui.
Figura 1.2.2. O list de virui printre care se gsete i unul produs n ara noastr.
De obicei un virus de calculator are pe lng funcia de reproducere nc o funcie distinct, cea de distrugere.
2.2.1. Clasificri
O clasificare posibil a viruilor se bazeaz pe tipurile de fiiere pe care le pot infecta. Conform acestei clasificri exist virui care infecteaz fiiere ordinare de tipul .com sau .exe i virui care infecteaz fiierele sistem. Dintre fierele sistem cel mai des atacate sunt cele de boot (de pornire a sistemului). Viruii care produc astfel de atacuri se numesc virui de boot. Exist i virui capabili s infecteze ambele categorii de fiiere (ca de exemplu virusul Tequila). Viruii
21
care afecteaz fiierele ordinare pot fi cu aciune direct (ca de exemplu virusul Viena) sau rezideni (ca de exemplu virusul Jerusalim). Viruii rezideni, la prima execuie a unui program pe care l-au contaminat deja, l prsesc, se ascund n memorie i se declaneaz doar atunci cnd sunt ndeplinite anumite condiii. O alt clasificare posibil a viruilor se bazeaz pe modul n care acetia se ataeaz la programele pe care le infecteaz. Conform acestei clasificri exist virui de tip "shell", virui de tip "add-on" i virui de tip "intrusiv". Viruii de tip "shell" Formeaz un nveli ("shell") n jurul programului "gazd". Virusul devine program principal iar programul "gazd" devine o subrutin a virusului. Prima dat se execut virusul i apoi programul "gazd". Majoritatea viruilor de "boot" sunt de tip "shell". Viruii de tip "add-on" Se adaug la nceputul sau la sfritul codului programului "gazd". Apoi este alterat informaia de start a programului "gazd" i se ruleaz pe rnd virusul i apoi programul "gazd". Programul gazd este lsat aproape neatins. Acest tip de virui poate fi uor detectat dac se compar dimensiunile fiierului corespunztor programului gazd, nainte i dup o rulare a acestuia. Viruii de tip "intrusiv" Distrug o parte a codului asociat programului "gazd" i nscriu n acea zon codul propriu. Ulterior programul "gazd" nu mai poate funciona.
Virui polimorfi
Produc copii neidentice (dar operante) ale variantei iniiale n sperana c programul anti-virus nu le va putea detecta pe toate. O modalitate de realizare a diferitelor copii este autocriptarea cu cheie variabil a variantei iniiale. Un exemplu este virusul Whale. O alt modalitate de realizare a copiilor multiple se bazeaz pe modificarea secvenei de instrucii, pentru fiecare copie, prin includerea unor instrucii care funcioneaz ca i zgomot (de exemplu instrucia No operation sau instrucii de ncrcare a unor regitrii nefolosii cu valori arbitrare). Un exemplu este virusul V2P6.
Virui rapizi
Un virus obinuit se autocopiaz n memorie cnd un program "gazd" se executi apoi infecteaz alte programe cnd se declaneaz execuia acestora. Un virus rapid nu infecteaz, atunci cnd este activ n memorie, doar programele care se excut ci i pe cele care sunt doar deschise. n acest mod se infecteaz mai multe programe deodat. Exemple de astfel de virui sunt Dark Avenger i Frodo.
22
Virui leni
Sunt virui care n faza n care sunt activi n memorie infecteaz fiierele doar n momentul n care li se aduc modificri sau atunci cnd sunt create. Un exemplu de astfel de virus este cel numit Darth Vader.
Virui mprtiai
Infecteaz doar ocazional, de exemplu tot al 10-lea program executat sau doar fiierele care au o lungime bine precizat. n acest mod se ncearc ngreunarea detectrii lor.
Virui nsoitori
n loc s modifice un fiier existent creaz un nou program a crui execuie este declanat de ctre interpretorul liniei de comand i nu de programul apelat. La sfrit se ruleaz i programul apelat n aa fel nct funcionarea calculatorului s par normal utilizatorului.
23
b) Orice hard-disk poate fi mprit n mai multe regiuni, numite partiii, C,D,E,. Dimensiunea fiecrei partiii, obinute astfel, este memorat n tabela partiiilor. n aceast tabel existi un program, de 446 de octei, care specific pe care partiie se afl blocul de boot. Acest program poate fi infectat de un virus. Acesta poate, de exemplu (este cazul virusului New Zealand), s mute tabela partiiilor la o nou locaie de pe harddisk i s controleze ntreg sectorul din care face parte acea locaie. c) Programul din tabela partiiilor localizeaz blocul de boot. Acesta conine blocul parametrilor BIOS-ului. (BPB), care conine informaii detailate despre organizarea sistemului de operare precum i un program, de mai puin de 460 de octei, de localizare a fiierului IO.SYS. Acest fiier conine stadiul urmtor din secvena de boot-are. Evident i acest program poate fi atacat, aa cum se ntmpl n prezea virusului Alameda. Principalul atu al acestor virui de boot este faptul c ei ajung s controleze ntregul sistem de calcul nainte ca orice program de protecie (anti-virus) s poat fi activat. d) Blocul de boot declaneaz ncrcarea fiierului IO.SYS, care produce iniializarea sistemului, dup care se ncarc DOS-ul, coninut n fiierul MSDOS.SYS. i aceste dou fiiere pot fi infectate de virui. e) Programul MSDOS.SYS declaneaz apoi execuia interpretorului de comenzi COMMAND.COM. Acest program furnizeaz interfaa cu utilizatorul, fcnd posibil execuia comenzilor primite de la tastatur. E clar ci acest program poate fi infectat aa cum se ntmpl n prezena virusului Lehigh. f) Programul COMMAND.COM execut o list de comenzi memorate n fiierul AUTOEXEC.BAT Acesta este un simplu fiier text ce conine comenzi ce vor fi executate de interpretor. La execuia acestui fiier un virus poate fi inclus n structura sa.
24
cu dificultate de un utilizator obinuit. O indicaie referitoare la memoria sistemului poate fi obinut folosind utilitarul CHKDSK. Nu este necesar cunoaterea semnificaiei fiecrei cifre afiate de ctre acest utilitar ca i rezultat al rulrii sale, e suficient s se verifice dac aceste valori s-au modificat substanial de la boot-are la boot-are. Printre aceste cifre exist una care reprezint capacitatea memoriei disponobile pe calculatorul respectiv. Dac aceasta s-a modificat cu mai mult de 2 kilo-octei atunci este foarte posibil ca pe acel calculator s se fi instalat un virus de boot. Oricum cel mai bine este ca pe fiecare calculator s fie instalat un program anti-virus. Din nefericire aceste programe nu recunosc dect viruii deja cunoscui de ctre productorii lor. De aceea ele trebuie schimbate frecvent, cutndu-se n permanen variantele cele mai noi. Trebuie inut seama i de faptul c productori diferii de programe antivirus folosesc denumiri diferite pentru acelai virus. Fred Cohen a demonstrat urmtoarea propoziie: Orice detector de virui se poate nela, furniznd alarme false (atunci cnd clasific un fiier sntos ca fiind infectat) sau nedectnd unii virui sau fcnd ambele tipuri de erori. n consecin exist situaii n care utilizarea unui astfel de sistem nu poate conduce la luarea unei decizii corecte. De aceea este recomandabil ca nainte de a lua o decizie s se utilizeze dou sau mai multe programe anti-virus. n acest caz ns exist riscul ca modificrile fcute asupra fiierelor de ctre unul dintre ele s fie interpretate de ctre cellalt ca i posibili virui. Un alt pericol este ca nsui programul anti-virus s fie infectat. De aceea este bine ca aceste programe s fie procurate din surse verificate i ca rezultatele lor s fie considerate doar dac ele au fost rulate de pe sisteme neinfectate. Exist ns din pcate i posibilitatea ca s apar rapoarte conform crora programul anti-virus este el nsui infectat dei n realitate el nu este.
3) Programe de verificare a integritii sau de detectare a modificrilor. Acestea calculeaz o mic sum de control sau valoare de funcie hash (de obicei pe baz de criptare) pentru fiecare fiier, presupus neinfectat. Ulterior compar valorile nou calculate ale acestor mrimi cu valorile iniiale pentru a vedea dac aceste fiiere au fost modificate. n acest mod pot fi detectai virui noi sau vechi, efectundu-se o
detecie"generic". Dar modificrile pot aprea i din alte motive dect activitatea viruilor. De
25
obicei este sarcina utilizatorului s decid dac o anumit modificare a aprut ca urmare a unei operaii normale sau ca urmare a unei activiti virale. Exist ns programe anti-virus care pot sl ajute pe utilizator s ia aceast decizie. La fel ca i n cazul programelor de scanare i programelor de verificare a sumelor de control li se poate cere s verifice ntregul hard-disk sau doar anumite fiiere sau ele pot fi rezidente verificnd fiecare program care urmeaz s fie executat. De exemplu Fred Cohen ASP Integrity Toolkit, Integrity Master sau VDS sunt programe anti-virus de acest tip. 3a) Antivirusul GENERIC DISINFECTION face parte dintr-o categorie puin mai aparte. El face ca s fie salvat suficient informaie pentru fiecare fiier, astfel nct acesta s poat fi reconstruit n forma sa original n cazul n care a fost detectat activitate viral, pentru un numr foarte mare de virui. Acest program anti-virus face parte din nucleul de securitate V-Analyst 3, realizat de firma izraelian BRM Technologies.
26
Capitolul 3 Protecia reelelor de calculatoare Orice reea este realizat conectnd mai multe calculatoare. Pentru a proteja reeaua trebuie s protejm fiecare calculator. Fa de mijloacele de protecie amintite n primul capitol care se refer la protecia calculatoarelor izolate (neconectate n reea) n cazul reelelor trebuie luate msuri suplimentare datorate comunicrii dintre calculatoare. De aceast dat operaiile de identificare i autentificare sunt mai complexe innd seama de faptul c acum numrul persoanelor care pot avea acces la datele comune poate fi mult mai mare. De asemenea lupta mpotriva viruilor este mai grea, deoarece oricare dintre calculatoarele reelei poate fi atacat pentru a fi infectat. n plus exist noi tipuri de atac specific pentru reele. Deoarece scopul reelelor este de a asigura comunicarea ntre calculatoare, tocmai aceast funciune poate fi periclitat prin atacuri din exterior. Astfel de atacuri pot s introduc un program ntr-unul dintre calculatoarele reelei, care s se autoreproduc i s se autotransfere pe celelalte calculatoare att de mult nct s satureze traficul prin reea. Chiar mai mult un astfel de program poate doar s simuleze creterea i mobilitatea sa, "infectnd" doar dispozitivele responsabile cu controlul traficului prin reea. n acest mod transferul de informaie dintre calculatoarele reelei este mpiedicat fr ca s existe motive reale pentru asta. 3.1. Categorii de atacuri asupra reelelor 3.1.1. Atacuri pasive Intrusul n reea doar observ traficul de informaie prin reea, fr a nelege sau modifica aceast informaie. El face deci doar analiza traficului, prin citirea identitii prilor care comunic i prin nvarea lungimii i frecvenei mesajelor vehiculate pe un anumit canal logic, chiar dac coninutul acestora este neinteligibil. Caracteristicile atacurilor pasive sunt: - Nu cauzeaz pagube, - Pot fi realizate pritr-o varietate de metode, cum ar fi supravegherea legturilor telefonice sau radio, exploatarea radiailor electromagnetice emise, dirijarea datelor prin noduri adiionale mai puin protejate. 3.1.2. Atacuri active Intrusul fur mesaje sau le modific sau emite mesaje false. El poate terge sau ntrzia mesaje, poate schimba ordinea mesajelor. Exist urmtoarele tipuri de atacuri pasive:
- Mascarada : o entitate pretinde c este o alta. De obicei mascarada este nsoit de nlocuirea sau modificarea mesajelor; - Reluarea: Un mesaj sau o parte a sa sunt repetate. De exemplu este posibil reutilizarea informaiei de autentificare a unui mesaj anterior.
- Modificarea mesajelor: alterarea datelor prin nlocuire, inserare sau tergere. - Refuzul serviciului: O entitate nu reuete s-i ndeplineasc propria funcie sau efectueaz aciuni care mpiedic o alt entitate s-i efectueze propria funcie. - Repudierea serviciului: O entitate refuz s recunoasc serviciul pe care l-a executat. - Viruii, Caii Troieni, "Bombele" informatice, "Bacteriile" informatice i mai ales "Viermii" informatici. - Trapele: reprezint perturbarea acceselor speciale la sistem cum ar fi procedurile de ncrcare la distan sau procedurile de ntreinere. Ele eludeaz procedurile de identificare uzuale.
27
3.1.2.1. Viermii informatici Denumirea de vierme a fost preluat din nuvela SF: The Shockwave Rider, publicat n 1975 de John Brunner. Cercettorii John F. Shoch i John A. Huppode la Xerox PARC au propus aceast denumire ntr-un articol publicat in 1982: The Worm Programs, Comm ACM, 25(3):172-180, 1982, i a fost unanim adoptat. Ei au implementat primul vierme n 1978, n scopul detectrii procesoarelor mai puin ncrcate dintr-o reea i alocrii de sarcini suplimentare pentru o mai bun mprire a muncii n reea i pentru mbuntirea eficienei acesteia. Principala limitare a programului lor a fost rspndirea prea lent. Primul vierme care s-a propagat la nivel mondial (de fapt un cal troian) a fost Christmas Tree Worm, care a afectat att reeaua IBM ct i reeaua BITNET n decembrie 1987. Un alt vierme care a afectat funcionarea Internet-ului a fost Morris worm. Peter Denning l-a numit 'The Internet Worm' ntr-un articol aprut n American Scientist (martie-aprilie, 1988), n care el fcea distincia ntre un virus i un vierme. Definiia lui era mai restrictiv dect cele date de ali cercettori contemporani: (McAfee and Haynes, Computer Viruses, Worms, Data Diddlers, ..., St Martin's Press, 1989). Acest vierme a fost creat de ctre Robert Tappan Morris, care n acea perioad era student la Cornell University, i a fost activat n 2 noiembrie 1988, cu ajutorul calculatorului unui prieten, student la Harvard University. El a infectat rapid un numr foarte mare de calculatoare, conectate la Internet i a produs pagube importante. Motivul pentru care el nu s-a mprtiat i mai departe i nu a produs mai multe necazuri a fost prezena unor erori n implementarea sa. El s-a propagat datorit ctorva bugs-uri ale BSD Unix i ale programelor asociate acestui sistem de operare, printre care i cteva variante ale protocolului 'sendmail'. Morris a fost identificat, acuzat i mai trziu condamnat. 3.1.2.1.1. Tipuri de viermi informatici De e-mail se rspndesc cu ajutorul mesajelor e-mail. Mesajul propriuzis sau fiierul ataat conin codul viermelui, dar el poate fi de asemenea declanat de un cod situat pe un site web extern. Majoritatea sistemelor de pot electronic cer explicit utilizatorului s deschid fiierul ataat pentru a activa viermele dar i tehnica numit "social engineering" poate fi adesea utilizat pentru a ncuraja aceast aciune, aa cum a dovedit-o autorul viermelui "Anna Kournikova". Odat activat viermele va emite singur, folosind fie sisteme locale de e-mail (de exemplu servicii MS Outlook, funcii Windows MAPI), sau direct, folsind protocolul SMTP. Adresele la care expediaz el mesaje sunt mprumutate adesea de la sistemul de e-mail al calculatoarelor pe care le-a infectat. ncepand cu viermele Klez.E lansat n 2002, viermii care folsesc protocolul SMTP falsific adresa expeditorului, aa c destinatarii mesajelor e-mail coninnd viermi trebuie s presupun c acestea nu sunt trimise de ctre persoana al crei nume apare n cmpul 'From' al mesajului. De messenger mprtierea se face prin aplicaii de mesagerie instantanee (IRC, YahooMessenger) prin transmiterea unor legturi la site-uri web infectate fiecrui membru al unei liste de contact. Singura diferen ntre aceti viermi i viermii de e-mail este calea aleas pentru transmiterea legturii la site-ul infectat. De aceast dat se utilizeaz canalele de chat IRC dar aceiai metod de infectare/mprtiere, deja prezentat, se folosete i n acest caz. Transmiterea de fiiere infectate este mai puin eficient n acest caz, deoarece destinatarul trebuie s confirme recepia acestuia, s salveze fiierul infectat i s-l deschid, pentru ca s se produc infectarea.
28
De sharing n reele Viermii se autocopiaz ntr-un fiier vizibil de ntreaga reea, de obicei localizat pe calculatorul infectat, sub un nume inofensiv. n acest mod viermele este gata sa fie ncrcat (download) prin reea i mprtierea infeciei continu. De Internet Cei care intesc direct porturile TCP/IP, fr s mai apeleze la alte protocoale de nivel mai nalt (de exemplu aplicaie, cum ar fi cel de e-mail sau cel de IRC). Un exemplu clasic este viermele "Blaster" , care a exploatat o vulnerabilitate a protocolului Microsoft RPC. Un calculator infectat scaneaz agresiv n mod aleator reeaua sa local precum i Internet-ul, ncercnd s obin acces la portul 135. Dac obine acest acces, mprtierea viermelui continu. 3.1.2.1.2. Viermi distrugtori Muli viermi au fost creai doar pentru a se mprtia. Ei nu distrug sistemele prin care se propag. Totui, aa cum s-a vzut, viermii Morris i Mydoom afecteaz traficul prin reea i produc i alte efecte neintenionate, care pot produce disfuncionaliti majore. Un program de tip payload este conceput s fac mai mult dect mprtierea viermelui - el poate terge fiiere de pe un calculator, poate cripta fiiere, n cadrul unui atac de tipul cryptoviral extortion, sau poate s expedieze documente prin e-mail. O aciune uzual efectuat de ctre un program de tip payload este instalarea unui program de tipul backdoor pe calculatorul infectat, care favorizeaz crearea unui "zombie", controlat de ctre autorul viermelui. Exemple de viermi care creaz zombies sunt Sobig i Mydoom. Reelele din care fac parte calculatoarele infectate cu astfel de viermi sunt numite botnets i se utilizeaz cu predilecie de ctre expeditorii de spam. Un program backdoor, odat instalat, poate fi exploatat i de ali viermi. De exemplu, programul de tip backdoor instalat de viermele Mydoom este folosit pentru mprtierea viermelui Doomjuice. 3.1.2.1.3. Viermi cu intenii bune Totui, viermii pot fi utilizai n lupta anti-tero, n cooperare cu tehnici bazate pe tiina calculatoarelor i pe inteligen artificial, ncepnd cu prima cercetare efectuat la Xerox. Familia de viermi Nachi ncearc s transfere (download) i apoi s instaleze programele de corecie (patches) de pe site-ul Microsoft pentru a corecta diferite vulnerabiliti ale calculatorului gazd aceleai vulnerabiliti pe care le exploata viermele Nachi. Aceast aciune ar putea s fac sistemul afectat mai sigur, dar genereaz trafic suplimentar considerabil. 3.1.2.1.4. Protecia mpotriva viermilor Viermii se rspndesc exploatnd vulnerabilitile sistemului de operare sau nelnd operatorul (determinndu-l s-i ajute). Toi furnizorii ofer actualizri (updates) de securitate frecvente ("Patch Tuesday"), i dac acestea sunt instalate pe un calculator atunci majoritatea viermilor este mpiedicat s se mprtie. Utilizatorii nu trebuie s deschid mesaje e-mail neateptate i mai ales nu trebuie s ruleze fiierele sau programele ataate i nu trebuie s viziteze site-urile web la care i conecteaz astfel de programe. Totui, aa cum au dovedit-o viermii ILOVEYOU i phishing oricnd exist un procent de utilizatori care sunt nelai. Programele anti-virus i anti-spyware sunt folositoare, dar este necesar reactualizarea lor aproape zilnic.
29
3.1.3. Necesiti de securitate n reele Organizaia internaional de standardizare (ISO) definete n modelul OSI (Open System Interconnect) 7 nivele de comunicaii i interfeele dintre ele. Funcionarea la fiecare nivel depinde de serviciile efectuate la nivelul imediat inferior. n ultimii 20 de ani au fost concepute i puse n funciune mai multe tipuri de reele de calculatoare. Reele separate se integreaz n reele globale. Protocolul CLNP (Connectionless Network Protocol) al ISO, cunoscut i sub numele ISO IP, definete o cale de interconectare virtual a tuturor reelelor i o cale de acces la fiecare nod al acesteia (Network Service Access Point), NSAP din oricare alt NSAP. n prezent familia de protocoale TCP/IP, a Departamentului Aprrii din SUA, DoD, prezint cea mai natural cale de evoluie spre adevratele sisteme deschise. Protocolul IP al DoD, ofer prima cale utilizabil de interconectare a reelelor heterogene i de dirijare a traficului ntre acestea. Succesorul firesc al protocolului IP va fi protocolul CLNP, care va oferi aceiai funcionalitate dar ntr-o form standardizat internaional i cu un spaiu de adresare mai mare i mai bine structurat. n viitor reelele de intreprindere sau reelele cu valoare adugat (VAN), nu vor mai fi separate fizic ci vor fi reele virtuale, adic colecii de NSAP formnd o reea logic. Un anumit NSAP poate aparine simultan unui numr orict de mare de astfel de reele logice. Calculatoare individuale i staii de lucru sunt conectate la reele locale (LAN) rapide. LAN-urile ofer conectivitate complet (posibilitatea de comunicare direct ntre oricare dou staii din aceeai reea). LAN-urile dintr-o cldire, dintr-un complex de cldiri sau dintr-un cartier pot fi interconectate obinndu-se comunicaii cu viteze comparabile cu cele din cadrul LAN-urilor componente. Reele oreneti, MAN ( Metropolitan Area Networks ) se construiesc tot mai frecvent. La acestea pot fi conectate alte LAN-uri sau reele private PBX (Private Branch Exchanges). Cele mai cuprinztoare reele sunt WAN-urile (Wide Area Network). Reele i mai cuprinztoare pot fi construite folosind sisteme ATM de tipul BISDN. n ierarhia reelelor prezentat majoritatea traficului este local (n cadrul unui aceluiai LAN). Pe msur ce se urc n ierarhie mrimea traficului scade i costurile de transmitere a informaiei cresc dar calitatea i viteza serviciilor rmn ridicate. Aceste dezvoltri au deschis perspective complet noi pentru proiectanii de servicii informatice. De exemplu un calculator oarecare, conectat la o reea local, poate comunica cu oricare alt calculator (din lumea ntreag) folosind o band larg i cu o ntrziere relativ mic. E clar c acest gen de conectivitate conduce la creterea riscurilor de securitate care trebuie considerate. 3.2. Securitatea LAN-urilor Dei reelele locale au multe proprieti utile, cum ar fi banda larg, ntrzierile mici, i costuri independente de traficul de informaie, ele posed i o ameninare de securitate important. ntr-o reea local toate calculatoarele componente "ascult" n permanen mediul de comunicare, culegnd toate mesajele transmise i le recunosc pe cele care le sunt destinate pe baza adreselor destinatarilor. Asta nseamn c oricare calculator poate supraveghea, fr a fi detectat, ntregul trafic din reea. De asemenea orice staie i poate asuma o identitate fals i s transmit cu o adres de surs fals, i anume cea a unei alte staii. Unul dintre atacurile cele mai uor de realizat este nregistrarea i retransmiterea secvenelor de autentificare. Exist n prezent posibiliti (hard i soft) pentru oricine care are acces ntr-o reea local s monitorizeze traficul, s caute secvene de tipul "Username:" sau "Password:" s nregistreze rspunsurile la aceste secvene i mai trziu s acceseze un serviciu cu o identitate fals. Este uor s se imagineze i atacuri mai ingenioase ntr-o reea local. Trebuie remarcat c orice tronson al unei reele locale poate fi securizat rezonabil folosind o pereche de dispozitive de criptare de ncredere, dar i c pe
30
msur ce capacitatea unei reele crete i riscurile de securitate cresc. n continuare se consider exemplul unei reele locale, deservit de un server. Se prezint o colecie util de msuri de securitate ce se pot lua n cazul unei astfel de reele. Nu se iau n considerare sistemul de operare al serverului sau al celorlalte calculatoare. Se presupune c reeaua poate fi ameninat de urmtoarele aciuni: De for major: - pierderea personalului; inundaie; incendiu; praf; Deficiene de organizare: - folosirea neautorizat a drepturilor de utilizare ; band de frecvene aleas neadecvat; Greeli umane: - Distrugerea din neglijen a unor echipamente sau a unor date; Nerespecatrea msurilor de securitate; Defectarea cablurilor; Defeciuni aleatoare datorate personalului de ntreinere a cldirii sau datorate unui personal extern; Administrarea necorespunztoare a sistemului de securitate; Organizarea nestructurat a datelor; Defeciuni tehnice: - ntreruperea unor surse de alimentare; Variaii ale tensiunii reelei de alimentare cu energie electric; Defectarea unor sisteme de nregistrare a datelor; Descoperirea unor slbiciuni ale programelor folosite; Posibiliti de acces la sistemul de securitate prea greoaie; Acte deliberate: -Manipularea sau distrugerea echipamentului de protecie al reelei sau a accesoriilor sale; Manipularea datelor sau a programelor; Furt; Interceptarea liniilor de legtur dintre calculatoarele reelei; Manipularea liniilor de legtur; Folosirea neautorizat a sistemului de protecie al reelei; ncercarea sistematic de ghicire a parolelor; Abuzarea de drepturile de utilizator; Distrugerea drepturilor administratorului; Cai Troieni; Virui de calculator; Rspunsuri la mesaje; Substituirea unor utilizatori cu drept de acces n reea de ctre persoane fr aceste drepturi; Analiza traficului de mesaje; Repudierea unor mesaje; Negarea serviciilor. Contramsuri recomandate: O bun alegere a modulelor de protecie. Aceast alegere se face secvenial, pe baza urmtoarelor criterii: Pasul 1: Regulile specifice instituiei respective pentru Managementul Securitii, Regulamentul de organizare al instituiei, Politica de realizare a back-up-urilor i Conceptele de protecie antivirus; Pasul 2: Criterii arhitecturale i structurale, care iau n considerare arhitectura cldirii instituiei respective; Pasul 3: Criterii constructive ale echipamentelor care constituie reeaua; Pasul 4: Criterii de interconectare a echipamentelor din reea; de exemplu dac exist sau nu echipamente de tip firewall ; Pasul 5: Criterii de comunicare ntre echipamentele reelei, cum ar fi programele de pot electronic folosite sau bazele de date folosite.
31
Utiliznd pe rnd toate aceste criterii rezult modelul de securitate al reelei considerate. Un astfel de model poate fi prezentat sub forma unui tabel cu urmtoarele coloane: Numrul i numele modulului de protecie; Obiectul int sau grupul de obiecte int. De exemplu acesta poate fi numrul de identificare al unei componente sau grup de componente din reea sau numele unei cldiri sau al unei uniti organizatorice din cadrul instituiei; Persoana de contact. Persoana de contact nu este nominalizat n faza de modelare ci doar dup ce s-a ales o anumit arhitectur de sistem de securitate; Ultima coloan este destinat observaiilor. Pe baza unei astfel de analize se poate ajunge, pentru server-ul considerat n acest paragraf, la urmtoarea list de msuri de securitate: Surs de alimentare neinteruptibil (opional); Controlul mediilor de pstrare a datelor; Revizii periodice; Interzicerea utilizrii unor programe neautorizate; Supravegherea pstrrii programelor; Corecta dispunere a resurselor care necesit protecie; mprosptarea periodic a parolelor; Existena documentaiei de configurare a reelei; Desemnarea unui administrator de reea i a unui adjunct al su; Existena unei documentaii asupra utilizatorilor autorizai i asupra drepturilor fiecruia; Existena unei documentaii asupra schimbrilor efectuate n sistemul de securitate; Permanenta cutare a informaiilor despre slbiciunile sistemului de protecie; Stocarea structurat a datelor; Antrenarea personalului nainte de utilizarea unui anumit program; Educarea personalului n legtur cu msurile de securitate utilizate; Selecia unor angajai de ncredere pentru posturile de administrator de reea i de adjunct al acestuia; Antrenarea personalului tehnic i a personalului de ntreinere; Protecie prin parole; Rularea periodic a unui program anti-virus; Asigurarea unei operaii de login sigure; Impunerea unor restricii la accesul la conturi i sau la terminale; Blocarea sau tergerea terminalelor, conturilor care nu sunt necesare; Asigurarea unui management de sistem consistent; Verificarea datelor noi care sosesc n reea mpotriva viruilor; Managementul reelei; Verificri periodice ale securitii reelei; Folosirea corect a echipamentelor la noi cuplri n reea; Stocarea corespunztoare a copiilor (back-up) ale fiierelor de date; Existena de copii back-up pentru fiecare program folosit; Verificarea periodic a copiilor back-up. n prezent se urmrete integrarea dispozitivelor de securitate izolate ((specifice fiecrui nivel de comunicaie ISO), de tipul "modulelor" amintite mai sus) n sisteme de securitate complexe, specifice fiecrui tip de reea.
32
Capitolul 4. Bazele matematice ale criptrii n acest paragraf se prezint principalele cunotiine de matematic care sunt utilizate n realizarea algoritmilor de criptare. 4.1. Aritmetica pe clase de resturi modulo specificat Se prezint pentru nceput tabelele pentru operaiile de adunare, nmulire i ridicare la putere pe mulimea claselor de resturi modulo 7.
+|0123456 0|0123456 1|1234560 2|2345601 3|3456012 4|4560123 5|5601234 6|6012345 *|0123456 ^|0123456 0|0000000 1|0123456 2|0246135 3|0362514 4|0415263 5|0531642 6|0654321 1|1111111 2|1241241 3|1326451 4|1421421 5|1546231 6|1616161
Analiznd tabelul din stnga se constat c 1 i 6, 2 i 5 i 3 i 4 sunt inverse n raport cu adunarea. S lum prima pereche i s considerm c se dorete transmiterea mesajului 3. n loc de 3 se va emite 4 (trei plus unu). La recepia se va aduna modulo 7 inversul lui 1, adic 6 i se va obine 10 modulo 7, adic 3, adic mesajul care trebuia transmis. Poate c metoda descris anterior este cea mai simpl schem de criptare bazat pe aritmetica claselor de resturi. Dac se ndeprteaz din tabelul de nmulire linia i coloana care conin doar elemente nule atunci cele ase numere care rmn n fiecare linie i n fiecare coloan sunt diferite ntre ele. Se constat c n fiecare linie respectiv coloan pe o anumit poziie exist un 1. De aceea se poate afirma c pentru fiecare numr cuprins ntre 1 i 6 exist un alt numr cuprins ntre 1 i 6 astfel nct produsul acestor dou numere, modulo 7, s fie egal cu 1. Cu alte cuvinte, dac se elimin elementul 0, pe clasa de resturi modulo 7 (fr 0) operaia de nmulire este inversabil. De exemplu inversul lui 2, n raport cu nmulirea modulo 7 este 4. Aceast proprietate nu este adevrat pentru orice valoare a modulului. Ea este adevrat n cazul exemplului nostru deoarece modulul utilizat, 7, este un numr prim. 4.2. Numere prime Se numete funcie indicator, totient, a lui Euler i se noteaz cu funcia care asociaz lui N numrul de numere ntregi i pozitive mai mici dect N, relativ prime cu N. E clar c dac N este prim atunci (N)=N-1. n cazul din exemplul anterior (7)=6. Deci dac modulul N este numr prim, atunci numrul de elemente inversabile la nmulirea modulo N este (N). Mai interesant este tabelul de ridicare la putere prezentat n paragraful anterior. Analiznd acest tabel se constat c orice numr cuprins ntre 1 i 6, ridicat la puterea 6 este egal cu 1. Mai mult, pe baza tabelului de ridicare la putere se constat c aceast operaie este periodic. Valorile obinute prin ridicarea la puterea 0 sunt identice cu valorile obinute prin ridicarea la puterea a 6-a. n consecin doar pentru 6 valori distincte ale exponenilor (1, 2, 3, 4, 5 i 6) se obin valori diferite prin ridicarea la putere modulo 7. innd seama de definiia anterioar a funciei totient a lui Euler, se poate afirma, pe baza acestui exemplu, c numrul de exponeni pentru care se obin valori distincte
33
prin ridicarea la putere modulo N este egal cu (N). Cu alte cuvinte perioada de repetiie ntr-un tabel de ridicare la putere modulo N este egal cu (N). Din acest punct de vedere se poate afirma c la ridicarea la putere modulo 7, (N), exponentul poate fi privit ca fiind un element al clasei de resturi modulo 6 (modulo (N)). Aceast proprietate este valabil, n general, pentru orice clas de returi modulo un numr prim. n continuare se analizeaz cazul n care baza nu este numr prim. Dac se cunoate restul mpririi unui anumit numr cu 5 i apoi cu 7, se poate determina (deoarece 5 i 7 sunt numere prime ntre ele (nu au factori comuni)) restul mpririi acelui numr la 35. De fapt cele dou resturi sunt egale. De aceea se poate spune c proprietile aritmeticii modulo 35 sunt o combinaie a proprietilor aritmeticilor modulo 5 i modulo 7. De aceea, referindu-ne acum la operaia de ridicare la putere i innd seama de proprietatea amintit anterior, nu este nevoie ca pentru ridicarea la putere modulo 35 (care conform proprietii anterioare ar pretinde exponeni modulo 34) s se foloseasc exponeni modulo 34, fiind suficient s se utilizeze exponeni modulo 24 (pentru ridicarea la puterea a 5-a sunt suficieni, conform proprietii anterioare, coeficieni modulo 4, iar pentru ridicarea la puterea a aptea, exponeni modulo 6 i produsul dintre 4 i 6 este 24). Raionamentul fcut explic rolul numrului (p-1)(q1) folosit n metoda de criptare cu cheie public RSA. Aceast metod presupune criptarea unui mesaj M, prin ridicarea sa la o putere e modulo N. Perechea (N,e) reprezint cheia de criptare. Se obine textul criptat C. Decriptarea se realizeaz prin ridicarea lui C la o putere d, inversa lui e n raport cu operaia de nmulire modulo N. Cheia de decriptare este perechea (N,d). Pentru a aplica aceast metod de criptare trebuie calculat puterea d. n continuare se prezint tabelul corespunztor operaiei de ridicare la putere modulo 55. Factorii lui 55 sunt 5 i 11, numere prime ntre ele i prime n general. Conform observaiei anterioare ar trebui s fie folosii coeficieni modulo 40, deoarece tabelul ar trebui s se repete cu perioada 40. Observaia anterioar este justificat de urmtoarea propoziie:
1 ).
Dac p i q sunt dou numere relativ prime i dac N =p q atunci (N)=(p 1)(q
ntr-adevr, n exemplul prezentat mai sus, valoarea lui N este 55, valoarea lui p este 5 iar valoarea lui q este 11. Numerele relativ prime cu 55, mai mici dect 55 sunt: 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 14, 16, 17, 18, 19, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 39, 41, 42, 43, 46, 47, 48, 49, 51, 52, 53, 54. De aceea (55)=40. Pe baza analizei acestui tabel se pot face cteva observaii. Dei coloana a 20-a nu conine doar elemente egale cu 1, coloana a 21-a este identic cu coloana 1-a, ambele coninnd n ordine numerele cuprinse ntre 1 i 45. Asta nseamn c tabelul se repet cu perioada 20 n loc de 40. Evident c i 40 este o valoare bun pentru perioad (orice multiplu al perioadei prinicpale reprezint o perioad). Aceast comportare are loc ntotdeauna cnd cel mai mare divizor comun al numerelor p-1 i q-1 este 2. Cu alte cuvinte perioada de repetiie n tabelul de ridicare la putere modulo N (dat de produsul dintre p i q) este egal cu (p1)(q-1)/2, dac factorii p i q sunt numere prime. De aceea exponenii de la ridicarea la putere modulo N, trebuie privii ca i elemente ale clasei de resturi modulo (p-1)(q-1)/2. De aceea se lucreaz cu acest modul n metoda RSA pentru determinarea puterii d. Deoarece 55 nu este numr prim e logic ca prin nmulirea repetat a numerelor divizibile cu 5 i cu 11 s nu se poat obine numere nedivizibile cu 5 sau cu 11 cum ar fi de exemplu 1. Doar dac valoarea produsului este 1 se poate vorbi despre inversare. De aceea numai numere prime cu (p-1)(q-1) pot fi utilizate ca i exponeni pentru cifrarea respectiv descifrarea bazate pe metoda de criptare RSA. De aceea pentru cazul analizat trebuiesc excluse toate numerele divizibile cu 2 i 5.
34
1 1 1 1 1 1 1 1 1 1 1 1 1 8 16 32 9 18 36 17 34 13 26 52 49 43 27 26 23 14 42 16 48 34 47 31 38 4 12 9 36 34 26 49 31 14 1 4 16 9 36 34 15 20 45 5 25 15 20 45 5 25 15 20 45 51 31 21 16 41 26 46 1 6 36 51 31 21 13 36 32 4 28 31 52 34 18 16 2 14 43 17 26 43 14 2 16 18 34 52 31 28 4 32 14 16 34 31 4 36 49 1 9 26 14 16 34 10 45 10 45 10 45 10 45 10 45 10 45 10 11 11 11 11 11 11 11 11 11 11 11 11 11 23 1 12 34 23 1 12 34 23 1 12 34 23 52 16 43 9 7 36 28 34 2 26 8 49 32 49 26 34 36 9 16 4 1 14 31 49 26 34 20 25 45 15 5 20 25 45 15 5 20 25 45 26 31 1 16 36 26 31 1 16 36 26 31 1 18 31 32 49 8 26 2 34 28 36 7 9 43 2 36 43 4 17 31 8 34 7 16 13 14 32 39 26 54 36 24 16 29 1 19 31 39 26 54 25 5 45 20 15 25 5 45 20 15 25 5 45 21 1 21 1 21 1 21 1 21 1 21 1 21 33 11 22 44 33 11 22 44 33 11 22 44 33 12 1 23 34 12 1 23 34 12 1 23 34 12 19 16 54 31 29 36 39 1 24 26 19 16 54 5 15 45 25 20 5 15 45 25 20 5 15 45 31 36 1 26 16 31 36 1 26 16 31 36 1 48 31 12 49 3 26 42 34 38 36 37 9 23 7 31 43 49 52 26 13 34 17 36 18 9 32 24 36 54 26 39 31 19 1 29 16 24 36 54 50 15 10 25 35 5 40 45 30 20 50 15 10 36 16 1 31 26 36 16 1 31 26 36 16 1 43 1 32 34 43 1 32 34 43 1 32 34 43 22 11 33 44 22 11 33 44 22 11 33 44 22 34 1 34 1 34 1 34 1 34 1 34 1 34 30 5 10 20 40 25 50 45 35 15 30 5 10 16 26 1 36 31 16 26 1 36 31 16 26 1 53 36 12 4 38 31 47 34 48 16 42 14 23 37 31 23 49 47 26 53 34 27 36 48 9 12 29 31 54 16 19 26 24 1 39 36 29 31 54 35 25 10 15 50 20 30 45 40 5 35 25 10 6 26 21 36 46 16 51 1 41 31 6 26 21 3 16 12 9 48 36 27 34 53 26 47 49 23 32 1 43 34 32 1 43 34 32 1 43 34 32 44 11 44 11 44 11 44 11 44 11 44 11 44 45 45 45 45 45 45 45 45 45 45 45 45 45 41 16 21 31 51 36 6 1 46 26 41 16 21 38 26 12 14 53 16 37 34 3 31 27 4 23 42 36 23 4 27 31 3 34 37 16 53 14 12 4 31 34 16 14 26 9 1 49 36 4 31 34 40 20 10 5 30 15 35 45 50 25 40 20 10 46 36 21 26 6 31 41 1 51 16 46 36 21 28 26 32 14 13 16 7 34 8 31 17 4 43 47 16 23 9 37 36 38 34 42 26 3 49 12 54 1 54 1 54 1 54 1 54 1 54 1 54
35
4.3. Mica teorem a lui Fermat Fiind dat numrul ntreg a i numrul prim p, care nu este divizor al lui a, are loc relaia: a = 1 (mod p). Demonstraie: Not istoric Ca de obicei, Fermat nu a dat o demonstraie nici pentru aceast teorem (mrginindu-se s afirme "i-a fi trimis i demonstraia dac nu m-a fi temut c este prea lung"). Primul care a publicat o demonstraie a acestei teoreme a fost Euler n anul 1736. A fost gsit ns aceeai demonstraie ntr-un manuscris al lui Leibniz, redactat nainte de 1683, rmas nepublicat. Pentru nceput se scriu primii p-1 multipli pozitivi ai lui a: a, 2a, 3a, ... (p -1)a Dac ra i sa sunt egali modulo p, atunci:
p-1
4.4. Cmpuri Galois Un cmp Galois este un cmp finit cu p elemente, unde p este un numr prim. Mulimea elementelor nenule ale cmpului Galois este un grup ciclic n raport cu operaia de nmulire. Un element generator al acestui grup ciclic este numit element primitiv al cmpului. Cmpul Galois p poate fi generat ca o mulime de polinoame cu coeficieni n Z modulo un polinom ireductibil de gradul n. Valorile unui octet se reprezint n algoritmii de criptare prin concatenarea biilor individuali: {b7, b6, b5, b4, b3, b2, b1, b0}. Aceti octei sunt interpretai ca i elemente ale cmpului finit GF(2 ) cu ajutorul unei reprezentri polinomiale:
8 n
36
b7 x + b6 x + b5 x + b4 x +b3 x + b2 x + b1x + b0 = b k x k
k =0
5
De exemplu octetul {01100011} se identific cu polinomul: x + x + x+1. Elementele cmpurilor finite pot fi adunate sau nmulite. Exemplul 1: GF(2) GF(2) const din elementele 0 i 1 (p=2 i n=1) i reprezint cel mai mic cmp finit. Este generat de polinoame peste Z modulo polinomul x. Polinoamele corespunztoare elementelor din GF(2) sunt: 0 i 1, deoarece x mod x=0 i x+1 mod x=1. Tabelele sale de adunare i nmulire sunt:
2
+ 0 1 0 0 1 1 1 0
* 0 0 0 1 0
1 0 1
Se constat c operaia de adunare este identic cu operaia logic sau-exclusiv i c nmulirea este identic cu operaia logic i. Cmpul GF(2) este utilizat frecvent la construcia de coduri deoarece el este uor reprezentat n calculatoare, fiind necesar un singur bit. Adunarea nsumarea a dou elemente ntr-un cmp finit Galois al lui 2 la o anumit putere este realizat prin "adunarea" coeficienilor corespunztori aceleiai puteri din polinoamele corespunztoare celor dou elemente. "Adunarea" este efectuat modulo 2 (adic este vorba despre funcia logic sau exclusiv). n consecin scderea polinoamelor este identic cu adunarea 8 lor. Alternativ adunarea a doi octei n GF(2 ), {a7a6a5a4a3a2a1a0} i {b7b6b5b4b3b2b1b0}, se face prin adunarea modulo 2 a biilor lor corespunztori. Se obine octetul {c7c6c5c4c3c2c1c0}, unde: ci
(x
+ x4 + x 2 + x + 1 + x7 + x + 1 = x7 + x6 + x4 + x2
) (
{10000011} = {83} =
{11010100} {d4}
37
(x
6 6
+ x 4 + x 2 + x + 1 x 7 + x + 1 = x13 + x11 + x 9 + x8 + x 7 + x 5 + x 3 + x 2 + x
4 2
) (
+x + x + x + x +1
sau innd seama de modul n care a fost definit adunarea:
(x
+ x 4 + x 2 + 1 x 7 + x + 1 = x13 + x11 + x9 + x8 + x 6 + x5 + x 4 + x3 + 1
) (
Dar:
P ( x)
m( x)
R ( x)
deoarece restul mpririi lui P(x) la m(x) este x x +1, care este egal cu R(x), deoarece coeficienii acestor polinoame trebuie considerai din mulimea claselor de resturi modulo 2 (aa cum s-a artat deja cnd s-a vorbit despre adunare). Dar octetul corespunztor lui R(x) este{0,1,1,0,0,0,0,0,1}sau n notaie hexazecimal {c1}. nmulirea definit astfel este asociativ, iar elementul su neutru este {01}. Pentru orice polinom binar neidentic nul, de grad inferior lui 8, b(x), exist un element invers n raport cu aceast nmulire, notat b 1 ( x ) . Acesta poate fi calculat utiliznd algoritmul lui Euclid, i determinnd polinoamele a(x) i c(x), care au proprietatea:
b ( x) a ( x) + m( x) c ( x) = 1
adic:
b ( x ) a ( x ) mod {m ( x )} = 1
ceea ce nseamn c:
b 1 ( x ) = a ( x ) mod {m ( x )}
Mai mult, se poate demonstra c nmulirea este distributiv n raport cu adunarea pe GF(2 ), adic:
a ( x ) (b ( x ) + c ( x )) = a ( x ) b ( x ) + a ( x ) c ( x )
8
Exemplul 2: GF(3) GF(3) este constituit din elementele 0, 1, i -1. El este generat de polinoame peste Z modulo polinomul x. Tabelele sale de adunare i nmulire sunt:
3
+ 0 1 -1
0 0 1 -1
1 1 -1 0
-1 -1 0 1
* 0 1 -1
0 0 0 0
1 0 1 -1
-1 0 -1 1
38
Este utilizat la construcia codurilor ternare. Exemplul 3: GF(4) Acest cmp Galois este generat de polinoamele peste Z modulo polinomul x + x + 1. Elementele sale sunt (0,1,A,B). Tabelele sale de adunare i nmulire sunt:
2 2
+ 0 1 A B
0 0 1 A B
1 1 0 B A
A A B 0 1
B B A 1 0
* 0 1 A B
0 0 0 0 0
1 0 1 A B
A 0 A B 1
B 0 B 1 A
Datorit tabelului de nmulire A se identific de obicei cu rdcina cubic a unitii 1 / 2 + i 3 / 2 . A i B sunt elemente primitive ale lui GF(4). nmulirea cu monoame pe GF(2 )
ntr-un paragraf anterior s-a introdus nmulirea pe acest cmp Galois, dar nu s-a indicat o metod numeric simpl pentru efectuarea acestei nmuliri. nmulirea cu monoame este un caz particular important (orice nmulire de polinoame se bazeaz pe cteva nmuliri cu monoame) pentru care exist metode numerice simple de implementare. nmulirea polinomului binar b7 x +b6 x +b5 x +b4 x +b3 x +b2 x +b1x +b0 , notat cu b(x), cu x conduce la polinomul b7 x +b6 x +b5 x +b4 x +b3 x +b2 x +b1x +b0 x
8 7 6 5 4 3 2 7 6 5 4 3 2
8
Rezultatul nmulirii x b(x ) se obine reducnd modulo m(x) rezultatul obinut anterior. Dac bitul b are valoarea 0 atunci rezultatul este deja n form redus. Dac acest bit are valoarea 1 reducerea este realizat prin scderea (adic prin operaia logic sau-exclusiv) polinomului m(x). n consecin nmulirea pe GF(2 ) cu x, (adic {00000010}n form binar, respectiv {02}, n form hexazecimal) poate fi implementat la nivel de octet printr-o deplasare la stnga urmat sau nu (n funcie de valoarea bitului b ) de calculul funciei sau-exclusiv dintre rezultatul (obinut n urma rotirii) i {1b}. Aceast operaie, la nivel de octet, este notat prin xtime(). nmulirea cu puteri mai mari ale lui x poate fi implementat prin aplicarea repetat a operaiei xtime(). Prin adunarea unor astfel de rezultate intermediare poate fi implementat nmulirea cu orice polinom. De exemplu:
7 8 7
{57} {13} = {fe} deoarece: {57} {02} = xtime({57}) = {ae} {57} {04} = xtime({ae}) = {47} {57} {08} = xtime({47}) = {8e} {57} {10} = xtime({8e}) = {07} i: {57} {13} = {57} ({01} {02} {10}) = {57} {ae} {07} = {fe}
39
a( x ) = a3 x3 + a2 x 2 + a1x + a0
i se reprezint ca i cuvinte de forma [a0 , a1 , a2 , a3]. De data aceasta ns coeficienii nu mai sunt bii ci octei. De aceea i polinomul de reducere va fi diferit, aa cum se va arta n continuare. Pentru a ilustra operaiile de adunare i de nmulire pentru polinoame cu patru termeni cu coeficieni octei fie cel de al doilea termen (sau factor) al operaiei:
b(x)=b3 x +b2 x +b1x +b0. Adunarea este realizat prin adunarea, n cmpul finit al
coeficienilor, a coeficienilor corespunztori aceleiai puteri a lui x. Adunarea n cmpul finit al coeficienilor este efectuat prin intermediul operaiei de sau-exclusiv ntre octeii corespunztori (de aceast dat este vorba despre sau-exclusiv ntre octeii complei i nu ntre biii din componena lor). n consecin:
unde:
c0 = a0 b0 c1 = a1 b0 a0 b1 c2 = a2 b0 a1 b1 a0 b2 c3 = a3 b2 a2 b1 a1 b2 a0 b3 c4 = a3 b1 a2 b2 a1 b3 c5 = a3 b2 a2 b3 c6 = a3 b3
Acest rezultat, c(x), nu este ns un polinom cu patru termeni. Cel de al doilea pas presupune reducerea lui c(x) modulo un polinom de gradul 4, obinndu-se un polinom de grad mai mic
dect patru. De exemplu n cazul algoritmului de criptare simetric Rijndael, polinomul 4 de reducere este x +1, astfel nct:
xi mod x 4 + 1 = xi mod4
40
Produsul modular al polinoamelor a(x) i b(x), notat a(x ) b(x ) , este dat de polinomul cu patru termeni d(x), definit dup cum urmeaz:
d ( x ) = d3 x 3 + d 2 x 2 + d1x + d 0
cu:
d 0 = (a0 b0 ) (a3 b1 ) (a2 b2 ) (a1 b3 ) d1 = (a1 b0 ) (a0 b1 ) (a3 b2 ) (a2 b3 ) d 2 = (a2 b0 ) (a1 b1 ) (a0 b2 ) (a3 b3 )
d3 = (a3 b0 ) (a2 b1 ) (a1 b2 ) (a0 b3 ) Dac a(x) este un polinom fixat, operaiile descrise mai sus pot fi exprimate i matricial:
d 0 a0 d a 1 = 1 d 2 a2 d3 a3 a3 a0 a1 a2 a2 a3 a0 a1 a1 b0 a2 b1 a3 b2 a0 b3
De aceea se poate afirma c nmulirea modular se reduce la o nmulire matricial. Deoarece x +1 nu este un polinom ireductibil pe GF(2 ), nmulirea modular a polinoamelor cu patru termeni cu coeficieni octei, definit mai sus, nu este neaprat o operaie inversabil. n algoritmul Rijndael este totui utilizat un polinom cu patru termeni cu coeficieni octei, care trebuie s aib invers n raport cu aceast operaie de nmulire:
4
8
Inversul su este:
Un alt polinom utilizat n programul de criptare cu cheie secret Rijndael este polinomul x . Efectul nmulirii modulare cu acest polinom este rotirea octetului cu o poziie spre stnga. Asta nseamn c [b0, b1, b2, b3] se transform n [b1, b2, b3, b0].
41
puterea a 8-a.
at = a + b
mod(232 )
bt = a + 2b mod(232 ) O astfel de transformare este utilizat n algoritmul Twofish, putnd fi execut n dou operaii de microprocesor.
Se consider c mesajul de intrare (elementul cruia i se aplic funcia hash) are o lungime de b bii. Rezultatul aplicrii funciei hash va fi rezumatul mesajului considerat.
42
poziii a lui X. - complementul lui X obinut prin complementarea fiecrui bit al su. - rezultatul aplicrii funciei sau cuvintelor X i Y obinut prin aplicarea
not(X) XvY
funciei sau fiecrei perechi de bii (de aceeai semnificaie) din cele dou cuvinte. X xor Y - rezultatul aplicrii funciei sau-exclusiv cuvintelor X i Y obinut prin
aplicarea funciei sau-exclusiv fiecrei perechi de bii (de aceeai semnificaie) din cele dou cuvinte. XY - rezultatul aplicrii funciei i cuvintelor X i Y obinut prin aplicarea funciei
i fiecrei perechi de bii (de aceeai semnificaie) din cele dou cuvinte. Pentru determinarea rezumatului mesajului se fac urmtorii 5 pai. Pasul 1. Adugare de bii pentru egalizarea lungimii mesajului Mesajul este extins astfel nct lungimea sa s devin egal cu 448 modulo 512. Extinderea se face ntotdeauna, chiar dac lungimea mesajului iniial este egal cu 448 modulo 512. Extinderea se face dup cum urmeaz: se adaug un singur bit cu valoarea 1 i apoi se aduag bii de valoare 0 pn cnd lungimea mesajului ajunge s fie de valoarea dorit. Numrul de bii adugai poate varia ntre 1 i 512. Pasul 2. Adugarea lungimii mesajului O reprezentare pe 64 de bii a lungimii iniiale a mesajului, b, este adugat la rezultatul obinut n urma efecturii pasului anterior. n ipoteza, puin probabil, c valoarea lui b este mai mare dect 2 la puterea 64, se utilizeaz doar cei mai puin semnificativi 64 de bii ai reprezentrii binare a valorii b. Acest cuvnt de 64 de bii se adauag prin concatenarea a dou cuvinte de 32 de bii, primul fiind cel care conine biii mai puin semnificativi. n acest punct al algoritmului noul mesaj obinut are o lungime egal cu un multiplu de 512. Deci acest mesaj conine un numr ntreg de cuvinte de 16, respectiv 32 de bii. Fie M[0 ... N-1] reprezentarea unui cuvnt al mesajului rezultat, unde N este un multiplu de 16. Pasul 3. Iniializarea registrului MD
43
Un registru de patru cuvinte (A,B,C,D) se folosete pentru calculul rezumatului mesajului. De fapt cu A, B, C, D, au fost notate patru registre de cte 32 de bii. Aceste registre sunt ncrcate iniial cu urmtoarele valori, exprimate n hexazecimal (cu biii cei mai puin semnificativi la nceput):
A B C D 01 89 fe 76 23 ab dc 54 45 cd ba 32 67 ef 98 10
Pasul 4. Prelucrarea mesajului folosind blocuri de cte 16 cuvinte Pentru nceput se definesc 4 funcii auxiliare fiecare aplicndu-se la cte 3 cuvinte de cte 32 de bii i avnd ca valoare cte un cuvnt de 32 de bii. F(X,Y,Z) = XY v not(X) Z ; G(X,Y,Z) = XZ v Y not(Z) ; H(X,Y,Z) = X xor Y xor Z; I(X,Y,Z) = Y xor (X v not(Z)). n fiecare poziie de bit funcia F acioneaz ca i o condiionare: dac X atunci Y, altfel Z. Funcia F ar fi putut fi definit i folosind operaia + n loc de v deoarece subfunciileXY i not(X)Z nu vor avea niciodat un 1 n aceeai poziie. Este interesant s se observe faptul c dac biii operanzilor X, Y, i Z (privii ca i variabile aleatoare) sunt independeni i nepolarizai, atunci fiecare bit al lui F(X,Y,Z) va fi independent i nepolarizat. Funciile G, H, i I sunt similare cu funcia F, n sensul c i ele acioneaz la nivel de bit n mod paralel astfel nct dac X, Y, i Z au biii independeni i nepolarizai atunci biii rezultatelor G(X,Y,Z), H(X,Y,Z) i I(X,Y,Z) vor fi independeni i nepolarizai. Se observ c folosind funcia H poate fi fcut controlul paritii variabilelor sale. Acest pas folosete un tabel cu 64 de elemente T[1 ... 64] construit cu ajutorul valorilor funciei sinus. Fie T[i] cel de al i-ilea element al tabelului, care este egal cu partea ntreag a produsului dintre 4294967296 i valoarea absolut a lui sin(i), unde i este exprimat n radiani. Pentru ncheierea acestui pas se efectueaz urmtoarele operaii: /* Se prelucreaz fiecare bloc de cte 16 cuvinte. */ For i = 0 to N/16-1 do /* Se copiaz cel de al i-ilea bloc n X. */ For j = 0 to 15 do Set X[j] to M[i*16+j]. end /* al buclei dup j */ /* Salveaz A ca i AA, B ca i BB, C ca i CC, i D ca i DD. */ AA = A BB = B CC = C DD = D
44
/* Iteraia 1. */ /* Se noteaz cu [abcd k s i] operaia: a = b + ((a + F(b,c,d) +X[k] + T[i]) <<< s). */ /* Se fac urmtoarele 16 operaii. */ [ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16] /* Iteraia 2. */ /* Se noteaz cu [abcd k s i] operaia: a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ /* Se fac urmtoarele 16 operaii. */ [ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32] /* Iteraia 3. */ /* Se noteaz cu [abcd k s t] operaia: a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ /* Se fac urmtoarele 16 operaii. */ [ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40] [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44] [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48] /* Iteraia 4. */ /* Se noteaz cu [abcd k s t] operaia: a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ /* Se fac urmtoarele 16 operaii. */ [ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56] [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60] [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64] /* Apoi se realizeaz urmtoarele adunri. (Acestea incrementeaz fiecare dintre cele patru registre cu valorile pe care le-a avut naintea nceperii acestui bloc.) */ A = A + AA ; B = B + BB; C = C + CC ; D = D + DD end /* al buclei dup i */ Pasul 5. Livrarea MD Rezumatul mesajului produs cu algoritmul MD5 este obinut prin concatenarea coninuturilor registrelor A, B, C i D obinute la sfritul pasului anterior. La nceput se vor gsi biii cei mai puin semnificativi ai registrului A iar la sfrit biii cei mai
45
semnificativi ai registrului D. O alt funcie hash utilizat frecvent este SHA (prescurtarea de la Secure Hash Algorithm), publicat de Guvernul American n anul 1995. Aceasta transform un fiier, mai scurt sau mai lung de 160 de bii, ntr-o secven de 160 de bii. i aceast funcie se utilizeaz la construcia semnturilor digitale, fiind utilizat n standardul DSS, n algoritmul DSA. i aceast funcie este prezentat n [3] i n documentul publicat de NIST intitulat FIPS 180-1.
46
n acest capitol se prezint principalii algoritmi de criptare utilizai n prezent n securitatea reelelor de calculatoare.
5.1. Civa termeni utilizai n criptografie Text clar - mesajul original; Mesaj cifrat, criptogram - rezultatul operaiei de criptare efectuate asupra textului clar; Cifrare, criptare - operaia de secretizare a textului clar al crei rezultat este mesajul cifrat; Descifrare, decriptare - operaia invers operaiei de criptare.
Chei criptografice - secvene de caractere care controleaz operaiile de criptare i de decriptare. Criptoanaliza - Studiul metodelor de decriptare ilegale (fr cunoaterea cheilor criptografice). Un sistem criptografic este compus din: - M, text clar; - C, text cifrat; - 2 funcii inverse E i D; - un algoritm care produce cheile Ke i Kd astfel nct:
C = EKe ( M ) i M = DKd ( C )
Exist dou tipuri de sisteme criptografice: - simetrice (cu cheie secret) care folosesc aceeai cheie att la cifrarea ct i la descifrarea mesajelor; - asimetrice (cu chei publice) care folosesc dou chei, una public i una privat.
47
un mesaj de pe un calculator. Aceast turnur a evenimentelor a condus guvernele din multe ri s priveasc aceast tehnologie ca pe o grav ameninare a ordinii sociale i s ncerce controlul rspndirii sale. Regimurilor represive le poate fi team c grupuri dizidente folosesc criptarea pentru a promova ideile lor subversive. i guvernele democratice se pot teme c criptografia este utilizat de cartelele de droguri i de ali inamici ai statului respectiv. Astfel guvernul S.U.A. a caracterizat odat criptarea ca pe o "muniie controlat" la fel de periculoas ca i armele atomice i pn n zilele noastre a controlat exportul celor mai avansate produse criptografice. Aceast atitudine a guvernelor a strnit proteste ale avocailor dreptului la intimitate, a experilor n criptografie, i a companiilor interesate financiar n promovarea criptografiei. Aceast btlie, cauzat de criptografie, are loc pe mai multe fronturi: tehnic, legal, etic i social. Uneori dezbaterile se bazeaz pe atitudini la fel de rigide sau polarizate ca i unele dezbateri religioase. n continuare se d un exemplu de probleme pe care le ridic utilizarea (respectiv neutilizarea) criptrii. Acum civa ani, la televiziunea german a fost prezentat cazul unui surfer de Web al crui calculator a fost scanat n timp ce era conectat la un anumit site. Operatorii acestui site au constatat, n urma scanrii c surfer-ul folosea un anumit program de tranzacii bancare i au modificat de la distan un fiier al acestui program astfel nct la urmtoarea utilizare a acestui program de ctre surfer s se declaneze o plat ctre site-ul lor. Vulnerabilitatea datelor din calculatoare afecteaz pe oricine. Chiar i datele pe care utilizatorul le considera terse sau suprascrise pot fi refcute. Cea mai bun metod de protecie a datelor este criptarea. Scopul criptrii este s transforme un document ntr-o form de necitit pentru toat lumea, cu excepia celor autorizai s-l citeasc. Textul clar este modificat folosind un algoritm i o variabil (cheie). Cheia este un ir de caractere alese aleator. n general cu ct numrul acestor caractere este mai mare cu att securitatea textului cifrat obinut este mai mare. Multe scheme de criptare utilizate astzi sunt simetrice (se bazeaz pe o singur cheie, secret), aa cum o arat standardul american DES. n continuare se prezint cteva dintre cele mai populare astfel de metode. Standardul de criptare a datelor (DES) a fost dezvoltat n anii 70 i nc se utilizeaz pe scar larg, urmnd s fie nlocuit de Standardul avansat de criptare a datelor Advanced Encryption Standard (AES), care a fost omologat n anul 2000. Triplu DES. Criptnd un mesaj deja criptat cu algoritmul DES cu ajutorul unei noi chei crete securitatea acestuia dar aceasta poate fi crescut i mai mult dac se mai efectueaz nc o criptare DES. Algoritmul obinut astfel este mai lent dar mai sigur. Majoritatea implementrilor noului algoritm utilizeaz doar dou chei, cheia 1 este folosit la prima i la cea de a treia criptare iar cheia 2 la cea de a doua criptare. Algoritmul internaional de criptare de date (IDEA) folosete o cheie de 128 de bii, conceput la ETH Zurich. IDEA se folosete n programele PGP (de pot electronic criptat) i Speak Freely (un program care realizeaz criptarea semnalului vocal digitizat care se transmite pe Internet). Blowfish este un cod bloc de 64 de bii care folosete chei de lungimi cuprinse ntre 32 i 448 de bii. A fost conceput de ctre Bruce Schneier de la Counterpane Internet Security Inc., San Jose, California i este utilizat n peste 100 de produse. Twofish, de asemenea conceput de Schneier, este un program de criptare foarte bun i este unul dintre cei cinci candidai considerai pentru standardul AES. RC4 este un program de cifrare a irurilor de date proiectat de ctre Ronald Rivest de la RSA Security Inc., Bedford, Massachusetts. El adun bit cu bit ieirea unui generator de numere pseudoaleatoare cu irul de bii ai unui text clar. Algoritmul DES este nc popular mai ales n "industria bancar". El este un sistem de cifrare pe blocuri, codnd textul n blocuri de lungime fix, folosind o cheie tot de lungime fix. Exist i
48
sisteme de cifrare a irurilor care nu fac segmentarea n blocuri. n anul 2002, Institutul Naional de Standardizare i Tehnologii al S.U.A., United States' National Institute of Standards and Technology (NIST), din Gaithersburg, a declanat o competiie pentru conceperea unui nou standard de criptare simetric numit Standardul de Criptare Avansat, Advanced Encryption Standard (AES), care va nlocui standardul DES. Motivul principal este c exist suspiciunea c Guvernul S.U.A. ar avea o "u din dos" pentru a controla fiierele criptate folosind algoritmul DES. Cei cinci finaliti ai acestei competiii au fost: programul Mars, creat de IBM; programul RC6, realizat de RSA Laboratories i Ronald Rivest de la Massachusetts Institute of Technology; programul Rijndael, creat de doi belgieni, Joan Daemen i Vincent Rijmen; programul Serpent, creat de Ross Anderson, Eli Biham i Lars Knudsen, din Marea Britanie, Israel i Norvegia, i progamul Twofish, creat de Bruce Schneier, de la Counterpane Internet Security, Inc. Ctigtorul acestui concurs a fost programul Rijndael. Pentru anumii algoritmi de criptare un text clar care se repet conduce la un text cifrat care se repet. E clar c o astfel de comportare nu este dorit deoarece n acest caz ieirea sistemului de criptare trdeaz informaii importante despre textul clar. O soluie posibil pentru evitarea unui astfel de comportament este s se cripteze textul cifrat i s se adune, bit cu bit, rezultatul obinut cu textul clar. O alt problem care apare atunci cnd se utilizeaz criptarea simetric este c aceast necesit ca expeditorul i destinatarul unui mesaj s aib o posibilitate sigur pentru a-i comunica cheia de criptare. Asta este dificil n special atunci cnd cei doi utilizatori se afl departe. Aceast problem revine ori de cte ori cheile trebuiesc mprosptate. Utilizarea repetat a aceleiai chei slbete securitatea acesteia. n continuare se prezint algoritmul care st la baza standardului DES. 5.2.1. Algoritmul DES Horst Feistel de la IBM a propus n anul 1973 o structur care a fost aleas pentru algoritmul DES. Aceasta este o structur iterativ, care are un numr fixat de iteraii. La prima iteraie se utilizeaz textul clar iar rezultatul ultimei iteraii este textul cifrat. Cheia de criptare K este utilizat pentru a genera cte o cheie k_i la fiecare iteraie, i. n fiecare iteraie, textul obinut la sfritul iteraiei anterioare este mprit n 2 jumti L_i i R_i. Se folosesc formulele de recuren: L _{i+1} = R_i i R_{i+1} = f(R_i,k_i) + L_i, (2 Feistel) unde cu + s-a notat operaia de sau-exclusiv i cu f() s-a notat o funcie care este dificil de inversat i care depinde R_i i k_i. O astfel de coresponden se numete funcie hash. O trstur util a acestei structuri este c n fiecare iteraie se utilizeaz o alt funcie dac cheia specific a iteraiei este diferit de cheile folosite n iteraiile anterioare i c se poate utiliza orice numr de iteraii. Frumuseea acestei structuri este c, dei f este dificil de inversat, aceast inversare nu este necesar pentru a descifra L_{i+1} putndu-se utiliza tot funcia f, folosind cheia k_i i apoi aplica funcia sau-exclusiv ntre rezultatul obinut i R_{i+1}: L_i = f(R_i,k_i) + R_{i+1} = f(L_{i+1},k_i) + R_{i+1} (3 Feistel) iar: (1 Feistel)
49
R_i = L_{i+1}
(4 Feistel)
ntr-adevr, calculnd sau-exclusiv ntre f(R_i,k_i) i R_{i+1}, conform relaiei (2 Feistel), se obine L_i, datorit faptului c rezultatul aplicrii funciei sau-exclusiv la dou iruri de date identice (f(R_i,k_i)) este irul identic nul.
Structura lui Feistel conduce deci la folosirea aceleiai structuri hard sau soft att pentru criptare ct i pentru decriptare. Algoritmul DES genereaz blocuri de date de cte 64 de bii, folosete chei de cte 56 de bii i face 16 iteraii ale structurii Feistel. Ordinograma sa este prezentat n figura 1 cprt. Cheile de iteraie sunt generate din cheia original de 56 de bii prin mprirea acesteia n jumtate, prin rotirea fiecrei jumti cu unul sau doi
bii i prin alegerea a cte 24 de bii din fiecare jumtate rotit. Decriptarea utilizeaz aceleai chei n ordine invers i cu jumtile stng i dreapt ale blocului de 64 de bii inversate. Cei 64 de bii ai unui bloc de text clar care urmeaz s fie criptat sufer o permutare iniial IP: 58 50 42 34 26 18 10 60 52 44 36 28 20 12 62 54 46 38 30 22 14 64 56 48 40 32 24 16 57 49 41 33 25 17 9 59 51 43 35 27 19 11 61 53 45 37 29 21 13 63 55 47 39 31 23 15 2 4 6 8 1 3 5 7
Primul bit al irului obinut dup permutarea iniial este cel de-al 58-lea bit al blocului de text clar, cel de al doilea bit al irului obinut dup permutarea iniial este cel de al 50-lea bit al blocului de text clar .a.m.d, iar ultimul bit al irului obinut dup permutarea iniial este cel de al 7-lea bit al blocului de text clar. irul de bii obinut n urma permutrii iniiale este prelucrat apoi de o schem de calcul dependent de chei, descris n continuare. Prima etap, Expandarea (E): n fiecare iteraie, partea dreapt este la nceput expandat de la 32 la 48 de bii, prin considerarea sa ca o grupare de 8 nybbles (cantitate de 4 bii) i prin copierea celor 8 nybbles n centrele (de cte 4 bii) ale celor 8 grupri de cte 6 bii (existente n cadrul irului destinaie de 48 de bii). Biii extremi, din stnga i din dreapta ai gruprilor de 6 bii (destinaie) sunt obinui prin copierea biilor extremi ai nybble-ului corespunztor din irul original de 32 de bii. De exemplu prima grupare de 6 bii const din biii: 31, 0, 1, 2, 3 i 4 iar cea de a doua const din biii 3,4,5,6,7 i 8. A doua etap, Sau-exclusiv (+): ntre aceste 8 grupri de 6 de bii i cheia iteraiei se efectueaz sau-exclusiv, rezultatul fiind salvat n una din cele 8 "cutii" de tip S (S-boxe). A treia etap, Salvarea (S): n fiecare cutie de tip S ajunge cte o grupare de 6 bii creia folosind un "selector" (construit cu cei doi bii de la capete) i se aplic una dintre cele 4 substituii ale celor 4 bii centrali. Din cele 8 grupri de cte 4 bii centrali se obine un ir de 32 de bii.
50
A patra etap, Permutarea (P): Acestui ir i se aplic o nou permutare (se zice c irul este pus ntr-o cutie de tip P) i apoi se calculeaz sau-exclusiv ntre rezultat i partea stng a structurii Feistel. Rezultatul acestei scheme de calcul, numit pre-ieire, este subiectul unei noi permutri, prezentat n continuare, inversa permutrii iniiale:
-1 IP
40 39 38 37 36 35 34 33
8 7 6 5 4 3 2 1
48 47 46 45 44 43 42 41
16 15 14 13 12 11 10 9
56 55 54 53 52 51 50 49
24 23 22 21 20 19 18 17
64 63 62 61 60 59 58 57
32 31 30 29 28 27 26 25
Deci primul bit al irului de bii obinut prin aplicarea algoritmului DES este bitul al 40lea al pre-ieirii, cel de-al doileea bit al irului rezultat este cel de-al 8-lea bit al pre-ieirii .a.m.d. n descrierea de mai sus prezentarea funciei f a fost implicit. n figura 2 crpt este prezentat ordinograma de construcie a acestei funcii.
51
n figur se remarc cele 4 etape: expandare, sau-exclusiv, salvare i permutare, descrise mai sus. Operaia de expandare poate fi descris i cu ajutorul unui tabel de selecie a biilor. Funcia E transform irul de 32 de bii ntr-un bloc de 48 de bii. Blocul de 48 de bii rezultat este reprezentat ca i o mulime de 8 blocuri de cte 6 bii fiecare i se obine prin alegerea biilor din irul de intrare (de 32 de bii) n concordan cu tabelul urmtor: 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1
Deci primii trei bii ai irului E(R) sunt biii din poziile 32, 1 i 2 ale irului R n timp ce ultimii 2 bii ai irului E(R) sunt biii din poziiile 32 i 1 ale irului R. i operaia de salvare S poate fi descris cu ajutorul unor tabele de selecie a biilor. Fiecare dintre funciile de selecie S1,S2,...,S8, transform un bloc de intrare de 6 bii ntr-un bloc de ieire de 4 bii. n acest scop se poate folosi cte un tabel de ordonare a biilor. Tabelul de selecie pentru S1 are forma urmtoare: Numr coloan Linie 0 0 1 2 3 14 0 4 15 1 4 15 1 12 2 13 7 14 8 3 1 4 8 2 4 2 14 13 4 5 15 2 6 9 6 11 13 2 1 7 8 1 11 7 8 3 10 15 5 9 10 6 12 11 10 6 12 9 3 11 12 11 7 14 12 5 9 3 10 13 9 5 10 0 14 0 3 5 6 15 7 8 0 13
52
Dac B este un bloc de 6 bii, atunci S1(B) se determin dup cum urmeaz: Primul i ultimul bit al lui B reprezint n baza 2 un numr cuprins ntre 0 i 3. Fie acest numr k. Cei 4 bii din mijlocul lui B reprezint n baza 2 un numr cuprins ntre 0 i 15. Fie acest numr l. Se alege din tabel numrul din linia k i din coloana l. Acesta este un numr cuprins ntre 0 i 15 i deci este reprezentat pe 4 bii. Acest bloc de 4 bii reprezint irul S1(B) al lui S1 pentru intrarea B. De exemplu, pentru intrarea 011011 se obine linia 01, adic 1 i coloana 1101, adic 13. n linia 1 i coloana 13 se gsete 5 i deci rezultatul este 0101. Tabelele de selecie pentru cutiile S2,...,S8 sunt:
S2 15 1 8 14 6 11 3 4 9 3 13 4 7 15 2 8 14 12 0 14 7 11 10 4 13 1 5 13 8 10 1 3 15 4 2 11 S4 7 13 14 13 8 11 10 6 9 3 15 0 S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S8 13 2 8 1 15 13 7 11 4 2 1 14 4 6 15 11 1 10 9 3 14 5 0 12 7 8 10 3 7 4 12 5 6 11 0 14 9 2 1 9 12 14 2 0 6 10 13 15 3 5 8 7 4 10 8 13 15 12 9 0 3 5 6 11 3 0 6 9 10 1 5 6 15 0 3 4 0 12 11 7 13 15 6 10 1 13 8 9 7 2 13 12 0 5 10 0 1 10 6 9 11 5 8 12 6 9 3 2 15 6 7 12 0 5 14 9 S3 10 0 9 14 13 7 0 9 13 6 4 9 1 10 13 0 S5 6 3 15 5 1 13 12 7 11 4 2 8 3 4 6 10 2 8 5 14 12 11 15 1 8 15 3 0 11 1 2 12 5 10 14 7 6 9 8 7 4 15 14 3 11 5 2 12
2 7 1 4
8 5 11 12 4 15 2 12 1 10 14 9 3 14 5 2 8 4 5 11 12 7 2 14
2 12 4 1 7 10 11 14 11 2 12 4 7 13 4 2 1 11 10 13 7 11 8 12 7 1 14 2 S7
6 8 5 3 1 5 0 15 8 15 9 12 13 6 15 0
15 13 0 14 9 10 3 9 8 6 5 6 3 0 14 9 10 4 5 3
4 11 2 14 15 0 8 13 3 12 13 0 11 7 4 9 1 10 14 3 1 4 11 13 12 3 7 14 10 15 6 11 13 8 1 4 10 7 9 5
9 7 5 10 6 1 5 12 2 15 8 6 6 8 0 5 9 2 0 15 14 2 3 12
Valoarea P(L) a funciei P definit de acest tabel este obinut pe baza irului de bii L considernd c cel de al 16-lea bit al lui L este primul bit al lui P(L), c cel de al 7-lea bit al lui L este cel de al doilea bit al lui P(L), .a.m.d.
53
n continuare se explic modul de generare a cheilor, folosite n cadrul algoritmului DES. Cheia K_i (vezi relaia (2)), pentru 1 i 6 , este un bloc de 48 de bii. Calculul acestui bloc este prezentat n figura 3 crpt. Analiznd aceast figur se constat c pentru generarea cheilor de criptare se fac dou tipuri de operaii: permutri i deplasri la stnga. n continuare se prezint aceste dou tipuri de operaii. Cte un bit din fiecare octet al unei chei poate fi utilizat pentru detecia de erori n generara cheilor, distribuirea cheilor i stocarea cheilor. Biii 8, 16,..., 64 dintr-o cheie se folosesc pentru a asigura imparitatea fiecrui octet. De aceea s-a afirmat c numrul de bii ai cheii algoritmului DES este 56 dei n figura 3 crpt blocul iniial are doar 48 de bii. Varianta 1 de permutare este realizat cu ajutorul urmtorului tabel: PC-1
57 49 1 58 10 2 19 11 63 55 7 62 14 6 21 13
41 33 25 17 9 50 42 34 26 18 59 51 43 35 27 3 60 52 44 36 47 39 31 23 15 54 46 38 30 22 61 53 45 37 29 5 28 20 12 4
Tabelul este mprit n dou pri, cu cea de sus efectundu-se alegerea biilor din irul C() iar cu cea de jos alegerea biilor din irul D(). Numerotnd biii CHEII de la 1 la 64, irul C() este format cu ajutorul celui de al 57-lea bit al CHEII, urmat de cel de al 49-lea bit al CHEII, urmat de cel de al 41lea bit al CHEII,...,urmat de cel de al 44-lea bit al CHEII i de cel de al 36-lea bit al CHEII. irul de bii D() este format din biii CHEII cu numerele de ordine 63, 55, 47,..., 12 i 4. Cu irurile C() i D() definite astfel se pot calcula blocurile Cn i Dn pe baza blocurilor Cn-1 i Dn-1, pentru n = 1, 2,..., 16. Aceast sarcin este ndeplinit cu ajutorul operaiilor de deplasare la stnga ale blocurilor individuale. Numrul de deplasri la stnga cerut n fiecare iteraie este specificat n tabelul urmtor:
54
Deci primul bit al cheii Kn este cel de al 14-lea bit al secvenei obinut prin concatenarea irurilor Cn Dn, cel de al doilea bit al cheii celei de a n-a iteraie este cel de al 17-lea al secvenei concatenate .a.m.d.
55
DES cu cutii S alternative. Este o variant n care construcia cutiilor S este diferit de cea descris mai sus. n unele cazuri dimensiunile acestor cutii sunt variabile. Dac construcia acestor cutii depinde de cheie atunci se obine varianta de DES numit DES cu cutii S dependente de cheie. Avantajul acestei variante este c poate fi implementat 56
16
16
16
57
Decriptarea
Cum se poate inversa o iteraie a algoritmului IDEA, cnd toate cele 4 blocuri se modific n acelai timp ? Rspunsul se bazeaz pe o proprietate a sumei modulo 2. Suma modulo 2 a dou variabile A i C nu se modific atunci cnd cele dou variabile sunt nsumate modulo 2 cu o aceeai variabil, X. D:
An = Av + X ; Cn = Cv + X ; An + Cn = Av + Cv + X + X = Av + Cv
Se observ c variabila X a disprut. Aceeai proprietate este valabil i pentru variabilele B i D. ntruct variabilele folosite n iteraiile algoritmului IDEA sunt funcii de A + C i B + D rezult c cele 4 variabile pot fi recuperate. Inversarea operaiei de adunare modulo 2 se face prin calculul complementului fa de 2. Pentru prima iteraie a algoritmului de decriptare se utilizeaz urmtoarele chei: KD(1) = 1/K(49) KD(2) = -K(50) KD(3) = -K(51) KD(4) = 1/K(52) Pentru cheile din urmtoarele iteraii procedura urmtoare se repet de 8 ori, adunnd 6 la fiecare indice al unei chei de decriptare i scznd 6 din fiecare indice al unei chei de criptare: KD(5) = K(47) KD(6) = K(48)
16
KD(7) = 1/K(43) KD(8) = -K(45) KD(9) = -K(44) KD(10) = 1/K(46) Generarea sub-cheilor
Primele 8 sub-chei se obin prin segmentarea cheii originale a algoritmului IDEA n
58
segmente de 16 bii. Apoi se efectueaz o deplasare circular la stnga a cheii originale cu 25 de poziii i o nou segmentare obinndu-se urmtoarele 8 chei. Aceast procedur de deplasare la stnga i segmentare este repetat pn cnd se obin toate cele 52 de chei de criptare necesare.
Descriere
Spre deosebire de DES, Blowfish aplic funcia f jumtii din stnga a blocului de text clar rezultatul fiind nsumat modulo 2 cu jumtatea din dreapta a blocului. Se fac 16 iteraii. La nceputul fiecrei iteraii se calculeaz suma modulo 2 dintre blocul din stnga i sub-cheia corespunztoare acelei iteraii. Apoi se aplic funcia f blocului din stnga i rezultatul se adun modulo 2 cu blocul din dreapta. La sfritul ultimei iteraii se substituie una celeilalte cele dou jumti de bloc obinute. n fiecare iteraie se folosete o singur sub-cheie, funcia f nu folosete nici o sub-cheie, dar folosete cutii S care depind de sub-cheie. Dup ultima iteraie se calculeaz suma modulo 2 a jumtii din dreapta a blocului de bii cu sub-cheia 17 i se calculeaz suma modulo 2 a jumtii din stnga a blocului de bii cu sub-cheia 18.
Funcia f
Blowfish folosete 4 cutii de tip S. Fiecare are 256 de intrri la care se aduc blocuri de cte 32 de bii. Calculul funciei f se bazeaz pe urmtoarea succesiune de operaii: Se folosete primul octet al blocului de 32 de bii de intrare pentru a gsi o intrare n prima cutie de tip S, cel de al doilea octet pentru a gsi o intrare n cea de a doua cutie de tip S, .a.m.d. Valoarea funciei f este :
((S1(B1) + S2(B2)) + S3(B3)) + S4(B4)) unde se folosete adunarea modulo 2 , notat cu + .
32
Decriptarea
Decriptarea se realizeaz la fel ca i criptarea, folosind cele 18 sub-chei de iteraie n ordine invers. Se poate face aa deoarece se folosete proprietatea sumei modulo 2 demonstrat la prezentarea decriptrii algoritmului IDEA. ntr-adevr exist dou operaii de adunare modulo 2 dup ultima utilizare a funciei f i numai una singur naintea primei utilizri a funciei f.
Generarea sub-cheilor
Acest proces convertete o cheie iniial de cel mult 448 de bii n cteva zone de subchei care ocup un spaiu de 4168 de octei. Blowfish folosete un numr mare de sub-chei. Acestea trebuiesc generate naintea oricrei operaii de criptare sau de decriptare. n continuare se prezint zonele de sub-chei. Zona 1. Este numiti zona P i const din 18 sub-chei de 32 de bii: P1, P2,..., P18.
59
Zona 2. Este zona cutiilor de tip S. Exist 4 cutii de tip S de 32 de bii, fiecare cu 256 de intrri:
S1,0, S2,0, S3,0, S4,0, S1,1,..., S2,1,..,, S3,1,..., S4,1,..,, S1,255; S2,255; S3,255; S4,255.
Generarea sub-cheilor se face folosind algoritmul Blowfish. Etapele de generare a cheilor sunt: 1. Iniializarea zonelor 1 i apoi 2, n ordine, cu un ir fixat. Acest ir const din partea fracionar a numrului pi exprimat n form hexa-zecimal. De exemplu:
P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344
2. Se calculeaz suma modulo 2 ntre P1 i primii 32 de bii ai cheii iniiale, se calculeaz suma modulo 2 ntre P2 i urmtorii 32 de bii ai cheii iniiale, .a.m.d. (e posibil s se depeas P18). Acest ciclu se repet pn cnd ntreaga zon 1 a fost nsumat modulo 2 cu bii ai cheii iniiale a algoritmului Blowfish. Pentru orice cheie iniial scurt exist cel puin o cheie echivalent mai lung; de exemplu dac A este o cheie de 64 de bii atunci AA, AAA, etc. sunt chei echivalente. 3. Se cripteaz texte n clar formate numai din bii nuli cu algoritmul Blowfish folosind sub-cheile descrise n paii (1) i (2). 4. Se nlocuiesc cheile P1 i P2 cu rezultatul obinut la pasul (3). 5. Se cripteaz rezultatul obinut la pasul (3) folosind algoritmul Blowfish cu cheile obinute la pasul (4). 6. Se nlocuiesc cheile P3 i P4 cu rezultatul obinut la pasul (5). 7. Se continu procesul, nlocuind toate elementele zonelor 1 i 2 cu rezultatele aplicrii algoritmului Blowfish. Pentru generarea tuturor sub-cheilor de care este nevoie sunt necesare 521 de rulri ale algoritmului Blowfish. O particularitate a algoritmului Blowfish este utilizarea cutiilor de tip S dependente de chei. Aceast construcie are cteva avantaje: -Se realizeaz o bun protecie mpotriva atacurilor prin criptanaliz liniar sau diferenial; -Implementarea cutiilor variabile este mai simpl dect cea a unor cutii fixe; -Reducerea necesitii stocrii unor structuri de date mari. Exist cteva modaliti de simplificare a algoritmului Blowfish care pot conduce la reducerea volumului de memorie ocupat precum i la creterea vitezei. Acestea sunt prezentate n continuare: -Utilizarea unui numr mai mic de cutii de tip S, de dimensiuni mai mici ; -Reducerea numrului de iteraii (de exemplu de la 16 la 8). Numrul de iteraii necesar pentru asigurarea unui anumit nivel de securitate depinde de lungimea sub-cheilor folosite. - Utilizarea unei metode neiterative de calcul al sub-cheilor. n acest mod s-ar putea obine chei independente una de cealalt.
60
peste cmpul Galois al lui 2 . Fiind vorba despre octei este vorba despre o nmulire modular de polinoame cu coeficienii din GF(2 ) modulo x + x + x + x +1. Acest gen de nmulire este definit n paragraful de prezentare a bazelor matematice ale algoritmilor de criptare. Rezultatul acestei nmuliri este un ir de 16 bii. Acesta este redus la un ir de 8 bii folosind urmtoarea metod: Polinomul modul, considerat ca i irul binar 101101001, este rotit la stnga pn cnd primul su bit coincide cu primul bit de 1 al rezultatului. Apoi se calculeaz suma modulo 2 dintre polinomul modul rotit i rezultat. Acceast sum reprezint noul rezultat. Apoi se rotete polinomul modul spre dreapta pn cnd primul su bit coincide cu primul bit de 1 din noul rezultat. Apoi se calculeaz suma modulo 2 dintre rezultat i polinomul modul rotit. Astfel se obine noul rezultat. Aceast procedur se repet pn cnd lungimea rezultatului devine egal sau mai mic dect 8. n acest fel la ieirile celor 4 cutii de tip S se obin 4 iruri de 8 bii (adic 32 de bii pentru Q0 i 32 de bii pentru Q1). Aceste dou iruri de 32 de bii sunt amestecate cu ajutorul unei transformri Pseudo-Hadamard (PHT). Aceast transformare este descris n paragraful referitor la bazele matematice ale criptrii. Apoi prima sub-cheie pentru iteraie este adunat la cea format din Q0 i se calculeaz suma modulo 2 ntre rezultatul obinut i Q2. Cea de a doua sub-cheie pentru iteraie este adunat la cheia format din Q1 i se calculeaz suma modulo 2 ntre rezultatul obinut i Q3. La sfrit, Q2 se rotete cu o poziie la dreapta i cele dou jumti ale blocului i
8
8 6 5 3
61
schimb poziia (Q0 se schimb cu Q2 iar Q1 se schimb cu Q3). La fel ca i la algoritmul DES cele dou jumti nu se schimb ntre ele dup ultima iteraie.
Generarea cheilor
Procesul de generare a cheilor ncepe prin construcia vectorilor pentru 3 chei, fiecare avnd o lungime egal cu jumtate din lungimea cheii iniiale. Primii 2 vectori se construiesc prin mprirea cheii iniiale n blocuri de 32 de bii. Numerotnd aceste pri ncepnd cu zero, cele cu indici pari devin M(e), iar cele cu indici impari devin M(o). Cel de al treilea vector se formeaz mprind cheia iniial n blocuri de 64 de bii i construind o parte de 32 de bii a vectorului cheie prin nmulirea fiecrui bloc de 64 de bii cu matricea RS:
01 A4 A4 56 02 A1 A4 55 55 87 5A 58 DB 9E 82 F3 1E C6 68 E5 FC C1 47 AE 3D 19 87 5A 58 DB 9E 03
8
Aceast nmulire matricial corespunde unei nmuliri peste cmpul Galois al lui 2 cu polinomul modul x + x + x + x +1. Cuvintele rezultante cu lungimea de 32 de bii sunt apoi plasate n ordine invers n vectorul cheie notat S. Fiecare dintre cutiile de tip S fixe, cu intrri i ieiri de 8 bii, notate q(0) i q(1) este construit pornind de la 4 cutii de tip S cu intrri i ieiri de 4 bii. Pentru q(0), cutiile de tip S sunt: Intrare 0 1 2 3 T0 8 1 7 13 T1 14 12 11 8 T2 11 10 5 14 T3 13 7 15 4 4 5 6 15 1 2 6 13 1 2 6 7 3 2 3 5 9 0 6 14 8 9 10 11 12 13 14 0 11 5 9 14 12 10 15 4 10 6 7 0 9 12 8 15 3 2 4 7 9 11 3 0 8 5 12 15 4 13 1 10
8 6 3 2
Fiecare cutie de tip S se construiete dup cum urmeaz: Octetul de intrare este mprit n prile sale mai semnificativ i mai puin semnificativ, A i B. Noua valoare a lui A este suma modulo 2 a vechilor valori ale lui A i B. Noua valoare a lui B este suma modulo 2 a vechilor valori ale lui A i B rotite la dreapta
62
cu o poziie sau cu opt poziii dac vechea valoare a lui A a fost impar. Noile valori ale lui A i B substituie vechile valori A i B la intrrile T0 i T1 ale cutiilor S pe 16 bii. Noua valoare a lui A este suma modulo 2 a vechilor valori ale lui A i B. Noua valoare a lui B este suma modulo 2 a vechilor valori ale lui A i B rotite la dreapta cu o poziie sau cu opt poziii dac vechea valoare a lui A a fost impar. Noile valori ale lui A i B substituie vechile valori A i B la intrrile T2 i T3 ale cutiilor S pe 16 bii. A i B sunt combinate apoi n ordine invers pentru a forma octetul rezultat. Cele 4 cutii de tip S dependente de chei se formeaz din elementele de 32 de bii ale vectorului cheie S dup cum urmeaz: Dac cheia iniial are o lungime de 256 de bii atunci vectorul cheie S are 4 elemente de 32 de bii, S(0), S(1), S(2), i S(3). n acest caz utilizarea celor 4 cutii de tip S dependente de cheie este echivalent cu efectuarea urmtoarelor operaii: output = q(0)(S(0,0) xor q(1)(S(1,0) xor q(1)(S(2,0) xor q(0)(S(3,0) xor q(1)(input)))) output = q(1)(S(0,1) xor q(1)(S(1,1) xor q(0)(S(2,1) xor q(0)(S(3,1) xor q(0)(input)))) output = q(0)(S(0,2) xor q(0)(S(1,2) xor q(1)(S(2,2) xor q(1)(S(3,2) xor q(0)(input)))) output = q(1)(S(0,3) xor q(0)(S(1,3) xor q(0)(S(2,3) xor q(1)(S(3,3) xor q(1)(input)))) unde S(2,1) reprezint octetul 1 al cuvntului 2 din vectorul cheie S. Dac cheia iniial are o lungime de 192 de bii definirea cutiilor S se simplific la: output = q(0)(S(0,0) xor q(1)(S(1,0) xor q(1)(S(2,0) xor q(0)(input))) output = q(1)(S(0,1) xor q(1)(S(1,1) xor q(0)(S(2,1) xor q(0)(input))) output = q(0)(S(0,2) xor q(0)(S(1,2) xor q(1)(S(2,2) xor q(1)(input))) output = q(1)(S(0,3) xor q(0)(S(1,3) xor q(0)(S(2,3) xor q(1)(input))) i dac cheia iniial are o lungime de doar 128 definirea cutiilor S se simplific i mai mult: output = q(0)(S(0,0) xor q(1)(S(1,0) xor q(1)(input)) output = q(1)(S(0,1) xor q(1)(S(1,1) xor q(0)(input)) output = q(0)(S(0,2) xor q(0)(S(1,2) xor q(1)(input)) output = q(1)(S(0,3) xor q(0)(S(1,3) xor q(0)(input)) Sub-cheile care se adun la ieirile funciilor nainte de a se calcula suma lor modulo 2 cu un alt sfert de bloc sunt generate de un proces asemntor cu o iteraie a algoritmului Twofish, dar cu cutii de tip S dependente de chei derivate din vectorii M(e) i M(o) i nu din vectorul S. Intrrile n toi cei patru octei ai unui cuvnt reprezint numrul obinut prin nmulirea numrului iteraiei cu 2 i adunarea lui 1 iar paii de rotire la stnga au loc fie nainte de calculul funciei f, fie dup: o rotire la stnga cu 8 poziii se efectueaz nainte de PHT iar o rotire cu 9 poziii la stnga se efectueaz dup. Operaiile descrise pot fi observate n schema de funcionare a algoritmului Twofish, prezentat n figura urmtoare.
63
64
Se efectueaz o deplasare circular spre stnga a blocului C. Numrul de poziii cu care se face aceast deplasare este specificat de cei mai semnificativi 5 bii ai irului obinut prin aplicarea funciei f blocului B i rotirea la stnga cu 5 poziii. Se efectueaz o deplasare circular spre stnga a blocului A. Numrul de poziii cu care este efectuat aceast deplasare este specificat de cei mai semnificativi 5 bii ai irului obinut prin aplicarea funciei f blocului D i rotirea rezultatului cu 5 bii spre stnga. Apoi se calculeaz suma modulo 2 ntre prima sub-cheie a iteraiei i blocul A i suma modulo 2 ntre cea de a doua sub-cheie a iteraiei i blocul C. Apoi cele 4 sferturi ale blocului sunt rotite dup cum urmeaz: Valoarea lui A este plasat n D, valoarea lui B este plasat n A, valoarea lui C este plasat n B i valoarea (original) a lui D este plasat n C. n figura urmtoare se prezint ordinograma unei iteraii a algoritmului RC6.
Figura 7 crpt. O iteraie a algoritmului RC6. Dup ncheierea celei de a douzecea iteraii are loc un pas suplimentar de albire: se calculeaz suma modulo 2 ntre A i S42, respectiv ntre C i S43. Generarea cheilor n cadrul algoritmului RC6 se realizeaz cu metoda descris n urmtorul program. Input: User-supplied b byte key preloaded into the c-v = 3_ maxfc; 2r + 4g word array L[0;; c - 1] for s = 1 to v do Number r of rounds {Output: w-bit round keys S[0; ;2r + 3] A = S[i] =(S[i] +A + B)<<<3 Procedure: S[0] = Pw B = L[j] =(L[j] +A + B)<<<(A + B) for i = 1 to 2r + 3 do i = (i + 1) mod (2r + 4) S[i] =S[i -1] + Qw j = (j + 1) mod c A=B=i=j=0}
65
la
1 5 9 13 6 10 14 2 11 15 3 7 16 4 8 12
Cel de al treilea pas al algoritmului de criptare Rijndael este numit amestecarea coloanelor, the Mix Column step. Acest pas se realizeaz prin nmulire matricial: fiecare coloan, n aranjamentul pe care l-am observat, este nmulit cu matricea:
2311 1231 1123 3112
8 4 3
Aceast nmulire matricial corepunde unei nmuiri specific cmpului Galois al lui 2 , definit de polinomul modul x + x + x + x +1. Aceast nmulire (folosind acelai polinom modul) a fost prezentati exemplificat n paragraful destinat bazelor matematice ale criptrii. Octeii care trebuie nmulii sunt privii ca i polinoame i nu ca i numere. De exemplu prin nmulirea unui octet cu 3 se obine rezultatul operaiei sau-exclusiv dintre acel octet i i varianta sa obinut prin rotirea acelui octet cu o poziie la stnga. Dac rezultatul acestei nmuliri are mai mult de 8 bii,
66
99 124 48 1 202 130 173 212 183 253 52 165 4 199 7 18 9 131 82 59 83 209 106 203 208 239 69 249 81 163 188 182 205 12 196 167 96 129 70 238 224 50 194 211 231 200 108 86 186 120 232 221 112 62 97 53 225 248 155 30 140 161 65 153
119 123 242 107 111 197 103 43 254 215 171 118 201 125 250 89 71 240 162 175 156 164 114 192 147 38 54 63 247 204 229 241 113 216 49 21 35 195 24 150 5 154 128 226 235 39 178 117 44 26 27 110 90 160 214 179 41 227 47 132 0 237 32 252 1 77 91 190 57 74 76 88 207 170 251 67 77 51 133 2 127 80 60 159 168 64 143 146 157 56 245 218 33 16 255 243 210 19 236 95 151 68 23 126 61 100 93 25 115 79 220 34 42 44 136 184 20 222 94 11 219 58 10 73 6 36 92 172 98 145 149 228 121 55 109 141 213 78 169 244 234 101 122 174 8 37 46 28 166 180 198 116 31 75 189 139 138 181 102 72 3 246 14 87 185 134 193 29 158 152 17 105 217 42 148 135 233 206 85 40 223 137 13 191 230 66 104 45 15 176 84 187 22
biii suplimentari nu sunt pur i simplu ignorai. Pentru eliminarea lor se calculeaz sau-exclusiv ntre rezultatul obinut (n urma "nmulirii" deja efectuate) (deplasat la stnga dac este necesar) i irul binar cu lungimea de 9 bii; 100011011 (care corespunde polinomului modul). Cel de al patrulea pas al algoritmului Rijndael este cel de adugare a sub-cheii, the Add Round Key step. Acesta presupune doar calculul unui sau-exclusiv cu sub-cheia specific iteraiei curente. O iteraie uzual a acestui algoritm are aspectul din figura urmtoare (care este o variant a figurii 8 crpt).
67
Din ultima iteraie este omis pasul de amestecare a coloanelor. Decriptarea Pentru a decripta mesajul fabricat de algoritmul Rijndael este necesar ca operaiile descrise s fie nlocuite cu operaiile lor inverse i ca acestea s fie aplicate n ordine invers (prima operaie din algoritmul de decriptare trebuie s fie inversa ultimei operaii din algoritmul de criptare). Succesiunea pailor n algoritmul Rijndael este: ARK BS SR MC ARK BS SR MC ARK ... BS SR MC ARK BS SR ARK Dei aceast secven nu este simetric, ordinea unor operaii poate fi modificat fr ca procesul de criptare s fie afectat. De exemplu pasul de substituire a octeilor BS (notat cu B n continuare), poate fi la fel de bine fcut i dup pasul de deplasare a liniilor SR (notat cu S n continuare). Aceast observaie este util pentru procesul de decriptare. Fcnd aceast inversare secvena algoritmului, de forma: A BSMA BSMA ... BSMA BSA se transform ntr-o secven de forma: A SBMA SBMA ... SBMA SBA (1R) Pentru fiecare pas s-a folosit notaia bazat pe prima liter a denumirii engleze a pasului.
68
Dac se inverseaz secvena care descrie algoritmul se obine: ASB AMSB ... AMSB AMSB A (2R) Comparnd secvenele (1R) i (2R) se constat c pe lng diferita poziionare a spaiilor (acestea marcheaz nceputul unei noi iteraii a algoritmului de criptare) singura diferen care mai apare este c grupurile "MA" din (1R) sunt nlocuite cu grupuri "AM" n (2R). E clar c nu este suficient inversarea ordinii pailor folosii la criptare pentru a se face decriptarea ci trebuie inversate i operaiile care compun aceti pai. Pentru inversarea pasului ARK trebuie inversat funcia sau-exclusiv. Dar aceast inversare se realizeaz tot cu funcia sauexclusiv. De aceea pasul ARK nu trebuie inversat la decriptare. Nu acelai lucru se poate spune despre ceilali pai. Este de exemplu cazul pasului de amestecare a coloanelor, MC, (notat cu M n relaiile (1R) i (2R)) pentru inversarea cruia, n procesul de decriptare este necesar inversarea matricii cu care se nmulete fiecare vector. La fel trebuie procedat i cu matricea cutiei de tip S din pasul de substituie a octeilor, BS (notat cu B n relaiile (1R) i (2R)). Revenind la relaiile (1R) i (2R) este legitim ntrebarea: Trebuie inversat ordinea secvenei pailor "MA" i "AM" pentru decriptare ? Rspunsul este: Nu, deoarece operaia de nmulire a matricilor este distributiv n raport cu operaia de adunare pe cmpul Galois al lui 2 . Operaia de sau-exclusiv din cadrul pasului MC (M) este de fapt identic cu operaia de adunare 8 definit pe cmpul Galois al lui 2 . De aceea cheile de iteraie, implicate n procesul de inversare al pasului de amestecare a coloanelor, trebuiesc nmulite cu inversa matricii de amestecare a coloanelor i apoi se pot calcula funciile sau-exclusiv, la fel ca la criptare (bineneles cheile de iteraie trebuiesc luate n ordine invers n raport cu ordinea folosit la criptare). Matricea pentru inversarea pasului de amestec al coloanelor este: 14 11 13 9 9 14 11 13 13 9 14 11 11 13 9 14 iar forma sa binar, folosit n algoritmul de decodare este: 1110 1011 1001 1110 1101 1001 1011 1101 1101 1001 1011 1101 1110 1011 1001 1110 01 00 00 00 00 00 01 00 00 01 00 00 00 01 10 10 10 00 00 00 01
8
111 101 110 100 110 100 111 101 1100 1000 1110 1010 1011 1101 1000 1110 0 0 1 0 Generarea cheilor
01 01 00 00 00 00 01 01 01 01
00 01 10 10 11
Pentru cazul n care se folosete o cheie iniial cu lungimea de 128 bii sau de 192 de bii, toate subcheile necesare pentru toate iteraiile, se obin din cheia iniial (prima subcheie fiind chiar cheia iniial) sau din variante ale cheii iniiale i au aceeai lungime cu aceasta. Subcheile sunt alctuite din cuvinte de 4 octei. Fiecare cuvnt se obine calculnd sau-exclusiv ntre cuvntul anterior de 4 octei i cuvntul corespunztor dintr-o variant anterioar sau rezultatul aplicrii unei funcii acestui cuvnt (din varianta precedent). Pentru stabilirea primului cuvnt dintr-o anumit variant, cuvntul iniial (cel curent pentru iteraia respectiv) este pentru
69
nceput rotit cu opt poziii spre stnga, apoi octeii si sunt modificai folosind cutia de tip S din pasul de substituie a biilor BS (B) corespunztor, iar apoi se calculeaz sau-exclusiv ntre primul octet al rezultatului obinut anterior i o constant dependent de iteraie. Constantele dependente de iteraie sunt:
1 2 4 27 54 108 94 188 99 179 125 250 228 211 189 8 16 32 216 171 77 198 151 53 239 197 145 97... 64 128 154 47 106 212 57 114
sau n binar:
00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000 00011011 00110110 01101100 11011000 10101011 01001101 10011010 00101111 01011110 10111100 01100011 11000110 10010111 00110101 01101010 11010100 10110011 01111101 11111010 11101111 11000101 10010001 00111001 01110010 11100100 11010011 10111101 01100001...
70
persoana care pare s fie (pe baza mesajului) expeditorul. S presupunem c Bob trimite tuturor utilizatorilor reelei un mesaj, dup ce l-a criptat cu cheia sa secret. Oricare dintre utilizatori poate folosi cheia public a lui Bob pentru a decripta acest mesaj, adeverind c acesta este un mesaj care ar putea veni numai de la Bob. Autentificarea mesajului, reprezint operaia de validare a faptului c mesajul recepionat este o copie neatins a mesajului trimis. i aceast operaie poate fi realizat folosind criptarea cu cheie public. S presupunem c nainte de a expedia un mesaj, Bob efectueaz o operaie criptografic asupra acestuia, de exemplu l transform cu ajutorul unei funcii, ale crei valori sunt dificil de calculat cu metode numerice. Denumirea englez a acestor funcii este hash functions. Cel mai simplu exemplu de astfel de funcie este cea care asociaz o sum de control textului clar. Este foarte dificil s se modifice textul clar fr a modifica valoarea obinut prin aplicarea funciei amintit mai sus, figura 11 crpt. Criptarea cu cheie public este utilizat de civa ani la construcia oricrui cuttor pe INTERNET, Web browser. Aceast metod de criptare se utilizeaz de asemenea atunci cnd se transmit informaii referitoare la cartea de credit, la un vnztor on-line sau cnd se transmite un email folosind protocolul standard S/MIME, sau cnd se obine un certificat de securitate, de la un vnztor on-line sau creat local folosind soft specializat. Un dezavantaj al criptrii cu cheie public este c solicit un volum de calcul mai important dect criptarea simetric. Pentru a diminua acest dezavantaj majoritatea programelor de securitate folosesc criptarea simetric pentru a cripta textul clar i criptarea cu cheie public pentru a cripta cheia secret, folosit n criptarea simetric a textului clar. Apoi fiierele criptate, coninnd mesajul i cheia secret, sunt transmise destinatarului. Dac ne referim la atacuri bazate pe for brut (se face cutarea exhaustiv a cheii ncercnd toate posibilitile) atunci se poate afirma c un algoritm de criptare simetric care folosete o cheie secret (este vorba despre cheia iniial) de 128 de bii este la fel de rezistent ca i un algoritm de criptare cu cheie public a aceluiai text clar care folosete chei de 2304 bii. De fapt cheia public ar trebui s aib o lungime i mai mare deoarece aceeai pereche de chei public i secret este folosit pentru a proteja toate mesajele la acelai destinatar. Altfel spus, n timp ce "spargerea" unei chei secrete pentru un algoritm de criptare simetric compromite un singur mesaj, "spargerea" unei perechi de chei pentru un algoritm de criptare cu cheie public compromite toate mesajele primite de un anumit destinatar. Algoritmii de criptare cu cheie public pot fi atacai i datorit faptului c cei doi corespondeni nu au la dispoziie un canal sigur prin care s-i poat confirma identitatea unul celuilalt. Este situaia prezentat n partea de jos a figurii 10crpt. nc nu se cunoate nici o metod de aprare mpotriva unui astfel de atac. Unul dintre algoritmii de criptare cu cheie public cel mai des folosit este algoritmul RSA, care o vechime de 22 de ani. Denumirea i vine de la numele creatorilor si: Ronald Rivest, Adi Shamir, i Leonard Adleman de la MI, Massachusetts Institute of Technology, Cambridge. Proprietile sale de securitate provin din dificulatea de a factoriza numere prime de valorimari. n prezent o cheie cu lungime mai mare sau egal dect 1024 de bii este, n general, suficient de sigur. Totui algoritmul RSA poate fi vulnerabil la "atacuri cu textul clar ales". Acestea sunt atacuri pentru care criptanalistul posed un fiier de text clar i textul cifrat corespunztor obinut prin criptarea cu algoritmul de cifrare investigat. Algoritmul de criptare cu cheie public Diffie-Hellman este folosit mai ales pentru schimbul de chei. Proprietile sale de securitate se bazeaz pe dificultatea de a discretiza valorile unei funcii logaritmice ntr-un cmp finit generat de un numr prim de valoare mare. Se consider c aceast operaie este chiar mai dificil dect operaia de factorizare a unor numere foarte mari. Acest algoritm se consider sigur dac se utilizeaz chei suficient de lungi i generatoare de chei performante.
71
Figura 10crpt. n criptarea cu cheie public (sus), Alice cripteaz un mesaj folosind cheia public a lui Bob i Bob l decripteaz folosindu-i cheia privat. Aceast schem permite ca fiiere criptate s fie expediate n absena unui canal sigur de transmitere a cheilor secrete, un mare avantaj fa de criptarea simetric. Este totui posibil ca Alice s primeasc o cheie public (sau cheie convenional simetric) care s par c vine de la Bob, dar care n fapt s aparin unei a treia pri, care susine c este Bob. Este vorba de atacul numit om-la-mijloc (jos).
Figura 11crpt. Criptarea cu cheie public i d lui Alice posibilitatea s verifice c un mesaj care vine de la Bob este ntr-adevr de la el i c acesta este identic cu mesajul original. Aici se vede cum: Bob cripteaz valoarea funciei hash cu cheia sa secret, cripteaz textul clar cu cheia public a lui Alice i i transmite ei ambele fiiere. Apoi Alice decripteaz textul cifrat recepionat folosind cheia sa secret; decripteaz valoarea funciei hash folosind cheia public a lui Bob, confirmnd astfel autenticitatea expeditorului i compar valoarea decriptat a funciei hash cu una pe care ea o calculeaz local pe baza textului decriptat, confirmnd n acest fel integritatea mesajului.
72
De departe cea mai popular metod de criptare cu cheie este PGP, pretty good privacy . Acest algoritm a fost creat n anul 1991 de un programator, pe nume Philip Zimmermann ca un mijloc de protejare al e-mail-urilor. Dup ce unul dintre colegii si a publicat pe Internet algoritmul PGP, Departamentul justiiei din Guvernul S.U.A. a nceput s-l investigheze pe Zimmermann, pentru posibila violare a legilor S.U.A. privind exportul produselor de criptare. Acuzaiile mpotriva sa au fost anulate n anul 1996. Apoi Zimmermann a fondat o intreprindere pentru comercializarea PGPului.
Figura 12 crpt. Un exemplu practic de aplicare a algoritmului Diffie-Hellman n scopul schimbului de chei de criptare.
Notnd cu x numrul ales de expeditor i cu y numrul ales de destinatar, primul va transmite A la puterea x modulo P, iar cel de al doilea A la puterea y modulo P. Fiecare parte poate calcula apoi A la puterea x ori y modulo P (expeditorul ridic la puterea x numrul primit
73
de la destinatar iar destinatarul ridic la puterea y numrul primit de la expeditor). Orice alt utilizator al aceleiai reele poate avea acces la numerele A la puterea x modulo P, respectiv A la puterea y modulo P, dar nu poate, pe baza lor, s-l determine pe A la puterea x ori y modulo P. Pentru o funcionare sigur a metodei Diffie-Hellman trebuie alese cu grij constantele A i P. Un exemplu de funcionare a metodei Diffie-Hellman este prezentat n figura 12 crpt.
E ( X ) = X e mod ( p q )
unde p i q sunt dou numere prime foarte mari cu produsul egal cu N, iar cmmdc(e, (N))=1. Cu ajutorul lui N i e rezult cheia public. - decriptarea mesajului X; Se calculeaz d, care reprezint inversa lui e n raport cu operaia de nmulire modulo (N) (o explicaie pentru utilizarea acestui modul este prezentat n paragraful referitor la bazele matematice ale criptrii, cu care ncepe capitolul despre criptare),
D(X ) = E ( X ) mod ( p q ) .
d
Cheia secret rezult cu ajutorul lui N i d. Dac se dorete semnarea unui mesaj X atunci semntura poate fi generat cu formula:
S(X ) = Xd
V ( S ( X ) ) = ( S ( X ) ) mod N = ... = X
e
i se compar cu X. n figura urmtoare se prezint un exemplu de utilizare al algoritmului RSA. Bineneles pentru a putea folosi algoritmul RSA nu este suficient doar descrierea sumar fcut pn acum. E necesar s se gseasc rspunsuri la cteva ntrebri: - Cum se pot alege 2 numere prime foarte mari ? - Cum se poate calcula o valoare invers modulo (p-1)(q-1) ? - Cum se face o ridicare la putere modulo pq ?
74
Inversarea lui e
Dup cum s-a artat d este inversa lui e modulo (p-1)(q-1), fiind respectat condiia: cmmdc(e, (p-1)(q-1))=1 (1 RSA)
Deoarece p i q sunt dou numere prime foarte mari ele trebuie s fie numere impare. De aceea numerele p-1 i q-1 vor fi pare. n consecin aceste numere au pe 2 ca i factor comun. De aceea o soluie pentru d va fi i inversa lui e modulo (p-1)(q-1)/2 (aa cum s-a artat n paragraful referitor la bazele matematice ale criptrii). Condiia (1 RSA) devine: cmmdc(e, (p-1)(q-1)/2)=1 (2 RSA)
De obicei e se alege dintre urmtoarele numere: 3, 5, 17, 257, sau 65537, pentru a obine o criptare (prin ridicarea la puterea e modulo pq) convenabil i rapid. Verificarea condiiei (2 RSA) poate fi realizat folosind algoritmul lui Euclid, cu ajutorul cruia se poate gsi cel mai mare divizor comun a dou numere. E clar c folosirea algoritmului lui Euclid permite i obinerea rspunsului la ntrebarea legat de gsirea a dou numere prime de valori foarte mari. Dac cel mai mare divizor comun al acestor numere este 1 atunci ele sunt prime. Fie b cel mai mare dintre aceste dou numere i s cel mai mic dintre ele. Pentru cazul algoritmului RSA valoarea iniial a lui b este (p-1)(q-1)/2 iar valoarea iniial a lui s este e. n continuare se prezint paii algoritmului lui Euclid. - Se mparte b la s i restul obinut se noteaz cu r. Noua valoare a lui b va fi vechea valoare a lui s i noua valoare a lui s va fi r. - Se repet pasul anterior pn cnd r devine zero. Valoarea lui r din pasul anterior reprezint cel mai mare divizor comun. Dac r devine 1 atunci algoritmul se poate opri mai devreme, putndu-se afirma c valoarea celui mai mare divizor comun este 1. ntr-adevr mprind orice numr la 1 se obine
75
restul zero. n acest caz cele dou numere sunt prime ntre ele. Dac s-a demonstrat c 2 numere sunt prime ntre ele atunci inversul lui s modulo b poate fi determinat pe baza valorilor intermediare obinute prin aplicarea algoritmului lui Euclid. Se dorete gsirea unei ecuaii de forma: 1=s(0)*d- b(0)*n unde s(0)=e, b(0)=(p-1)(q-1)/2 i n este un numr ntreg arbitrar. ntr-adevr, d, soluia acestei ecuaii, reprezint inversa modulo b(0) a lui s(0) deorece: b(0)*n=0 modulo b(0) Dac n pasul i al algoritmului lui Euclid se obine restul 1 (asta nseamn c s-a ajuns la penultima iteraie a algoritmului) atunci nseamn c are loc relaia: b(i)-s(i)*q(i)=1 (4 RSA) (3 RSA)
unde q(i) este ctul mpririi efectuate la pasul i. Aceasta este de forma ecuaiei (3 RSA). Deci cnd se folosete algoritmul lui Euclid pentru determinarea unei valori inverse nu este suficient memorarea valorilor b i s la fiecare pas al algoritmului ci este necesar i memorarea ctului mpririi la fiecare pas al algoritmului. Memorarea valorilor ctului trebuie fcut ntr-o memorie de tip stiv. Din prezentarea anterioar a algoritmului lui Euclid rezult c acesta este descris de urmtoarele relaii: s(i-1)=b(i); r(i-1)=s(i); i: b(i-1)-s(i-1)*q(i-1)=r(i-1). De aceea relaia (3 RSA) se mai poate scrie: s(i-1)-r(i-1)*q(i)=1
sau: s(i-1)-(b(i-1)-s(i-1)*q(i-1))*q(i)=1
adic: -q(i)*b(i-1)+(1-q(i)*q(i-1))*s(i-1)=1 Se remarc faptul c i aceasta este de tipul relaiei (3 RSA). Folosind relaiile: s(i-2)=b(i-1), r(i-2)=s(i-1) i b(i-2)=s(i-2)*q(i-2)=r(i-2) se poate substitui din nou ( de data asta n relaia (5 RSA)) pentru a-l exprima pe 1 ca i o sum de multiplii de b(i-2) i s(i-2). Acest proces se poate repeta mergnd napoi (fa de sensul n care s-a iterat algoritmul lui Euclid) spre b(0) i s(0) pentru a gsi inversa dorit, d, pe baza unei relaii de tipul (3RSA). (5 RSA)
76
Factorizare
Deoarece d poate fi obinut din e de ndat ce este cunoscut (p-1)(q-1), descompunerea lui N n factorii si primi p i q poate fi o cale de decriptare ilegal, cracking, a unui text criptat cu algoritmul RSA. Factorizarea numerelor mari este o operaie dificil. Calea cea mai simpl este s se mpart numrul cu fiecare numr prim mai mic dect el. Dac restul mpririi este zero atunci numrul testat care a condus la acest rest este un factor al lui N. O mbuntire a acestei metode se bazeaz pe faptul c este suficient dac se ncearc numerele prime mai mici dect radicalul numrului testat. ntr-adevr dac primul factor identificat ar fi mai mare dect radical din N atunci i al doilea factor care ar putea fi identificat ar trebui s fie mai mare dect radical din N. Dar n acest caz produsul acestor factori ar fi mai mare dect N, ceea ce este absurd. Exist i alte mbuntiri posibile ale metodei de factorizare. Un algoritm de factorizare mbuntit, relativ uor de neles, este algoritmul lui Fermat. Acesta se bazeaz pe formula produsului sumei prin diferen.
(a + b ) (a b ) = a 2 b 2
(1 Fermat)
Astfel, deoarece numrul care trebuie factorizat este produsul a dou numere impare diferena acestora va fi un numr par, iar cei doi factori vor fi exprimai n forma a+b i a-b, unde a i b sunt doi ntregi pozitivi. n continuare se prezint algoritmul lui Fermat pentru factorizarea numrului 319 (care este produsul dintre numerele prime 11 i 29). Acesta se bazeaz pe ncercri repetate de verificare a relaiei (1 Fermat) pentru valori consecutive ale lui a. Rdcina ptrat a lui 319 (care reprezint membrul stng al relaiei (1 Fermat)) este 17,86057.... Dac i se d lui a valoarea 18 atunci a la ptrat este egal cu 324 i conform relaiei (1 Fermat) valoarea lui b la ptrat este 5. Dar 5 nu este un ptrat perfect. De aceea i se d lui a valoarea urmtoare, adic 19. Valoarea lui a la ptrat devine 361. n acest caz valoarea lui b la ptrat devine 42. Dar nici aceast valoare nu reprezint un ptrat perfect. De aceea i se d lui a valoarea 20. Valoarea lui 20 la ptrat este de 400. Diferena dintre 400 i 319 este de 81. Acesta este n sfrit un ptrat perfect. Deoarece b la ptrat ia valoarea 81 rezult c valoarea lui b este 9. n consecin factorii a+b i ab sunt de valori 29 i 11. Se constat c s-a realizat factorizarea dorit.
77
Algoritmul de factorizare al lui Fermat este rapid doar dac cei doi factori au valori apropiate. Dac este necesar factorizarea numrului 321, de exemplu (care este produsul dintre numerele prime 3 i 107) atunci deoarece iniializarea algoritmului lui Fermat se realizeaz cu valoarea 18 (partea ntreag a rdcinii ptrate a numrului 321 este 17), pentru a ajunge la factorul 107 sunt necesare 89 de iteraii. n consecin dac N este suficient de mare i dac p i q sunt alei aleator atunci este foarte dificil factorizarea lui N. Rivest, Shamir i Adelman au sugerat utilizarea unor numere p i q de cte 100 de cifre, cea ce face ca N s aib 200 de cifre. Pentru factorizare ar putea fi necesar un numr mare de ani de calcul.
Un alt atac mpotriva metodei de criptare cu cheie public RSA este aa numitul atac cu text n clar limitat, limited plain text attack. Dac exist un numr mic de mesaje care trebuiesc transmise, un atacator ar putea s le cripteze pe toate, cu diferite chei publice, folosind algoritmul RSA i s-l identifice pe cel transmis la un moment dat comparndu-l cu toate textele cifrate pe care le-a obinut.
78
PKCS #6: Standardul de sintax a certificatelor (de autentificare) extinse. PKCS #7: Standardul de sintax al mesajelor criptografice. PKCS #8:Standardul de sintax al cheilor secrete. PKCS #9:Tipuri de atribute selectate. PKCS #10:Standardul de sintax de cerere a unui certificat. PKCS #11:Standardul de interfa criptografic de tip token. PKCS #12:Standardul de sintax de schimb de informaie personal. PKCS #13: Standardul de criptografie cu curbe eliptice. PKCS #15: Standardul de format al informaiei criptografice de tip token. Scopul standardului PKCS#1 este s permit cifrarea datelor folosind metoda de criptare cu cheie public RSA. Se intenioneaz ca acest standard s se utilizeze n construcia semnturilor digitale i a "plicurilor" digitale, digital envelopes, aa cu este prezentat n standardul PKCS #7. Pentru semnturi digitale coninutul care trebuie semnat este prima dat redus la un rezumat, cu ajutorul unui algoritm de rezumare (ca de exemplu MD5) i apoi un ir de octei, coninnd rezumatul mesajului este criptat cu cheia secret RSA a semnatarului coninutului. Coninutul precum i rezumatul mesajului criptat sunt reprezentate mpreun, conform regulilor de sintax prezentate n standardul PKCS #7, formnd o semntur digital. Aceast aplicaie este compatibil cu metodele de protejare a potei electronice de tipul PEM, Privacy-Enhanced Mail . Pentru "plicuri" digitale, coninutul care trebuie introdus n plic este prima dat criptat cu o metod de criptare simetric (care folosete o cheie secret) folosind un algoritm corespunztor (de exemplu DES) i apoi cheia secret este criptat folosind cheia public RSA a destinatarului coninutului. Coninutul criptat precum i cheia secret criptat sunt reprezentate mpreun, conform sintaxei prezentate n standardul PKCS#7, pentru a crea un plic digital. i aceast metod este compatibil cu metodele PEM. Standardul mai descrie i sintaxa pentru cheile publice i secrete RSA. Sintaxa cheilor publice se folosete la elaborarea certificatelor iar sintaxa cheilor secrete se folosete la elaborarea informaiilor referitoare la cheile secrete prezentate n standardul PKCS#8. Standardul definete i trei algoritmi de semnare a certificatelor pentru PEM i a listelor de revocare a certificatelor, a certificatelor extinse, descrise n standardul PKCS#6 i a altor obiecte care folosesc semnturi digitale. Sintaxa cheilor n cazul cheilor publice este vorba despre o secven care are pe prima poziie valorea modulului N, iar pe a doua poziie, valoarea cheii publice a expeditorului e. n cazul cheilor secrete este vorba despre o secven care are, n ordine, urmtoarele elemente: versiunea, modulul N, cheia public a expeditorului, e, cheia secret a destinatarului, d, numrul prim p, numrul prim q, valoarea exponentului d modulo (p-1), valoarea exponentului d modulo (q-1), valoarea inversului lui q modulo p i versiunea. Semnificaia acestor elemente este urmtoarea: -versiunea: este un numr care indic apartenena la standard i care are rolul de a face posibil compatibilitatea cu standarde viitoare. Are valoarea 0 pentru acest standard. - N, e, d, p au semnificaiile din prezentarea metodei RSA, de mai sus. Lungimea modulului N, n octei, este numrul ntreg k care satisface condiia: 8(k1) 8k
2 N2
79
Observaii 1 Pentru o cheie secret RSA sunt suficiente valorile lui N i d. Prezena valorilor p, q, d mod (p-1), d mod (q-1) i q-1 mod p este justificat de eficiena sporit obinut prin utilizarea lor. 2 Prezena exponentului cheii publice e, n structura cheii secrete este justificat de crearea posibilitii de a transforma cheia secret ntr-o cheie public. Procesul de criptare Acest proces are 4 pai: - formatarea blocului de criptat, - conversia irului de octei n valori ntregi, - calculul specific metodei RSA, - conversia valorilor ntregi obinute ntr-un ir de octei. Datele iniiale pentru procesul de criptare sunt: - irul de octei D, care reprezint datele de transmis, - Valoarea modulului N, - Valoarea unui exponent c. Pentru o operaie care necesit chei publice exponentul c trebuie s fie identic cu exponentul cheii publice a unui utilizator, e, iar pentru o operaie care necesit chei secrete el trebuie s fie identic cu exponentul cheii secrete a unui utilizator, d. Datele obinute n urma procesului de criptare reprezint un ir de octei ED.
Observaii 1 n aplicaiile tipice ale acestui standard pentru a genera chei secrete dependente de coninutul mesajului sau rezumate de mesaj este necesar ca lungimea irului de octei D s fie de 30. De aceea este necesar ca lungimea modulului N, folosit n metoda RSA s fie de cel puin 41 de octei. 2 Procesul de criptare nu presupune i realizarea unui control de integritate explicit care s uureze detecia erorilor care provin din coruperea datelor criptate pe durata transmisiei lor. Totui structura blocului de date folosit garanteaz c probabilitatea de ne-detectare a erorilor este mai mic dect 2 la puterea -16. 3 Aplicarea operaiilor cu cheie public aa cum este definit n acest standard la alte tipuri de date dect irurile de octei care conin un rezumat al mesajului nu este recomandat i reprezint obiectul unor studii viitoare. Formatarea blocului de criptat Blocul de criptat, EB, encryption block, este un ir de octei i este format din 3 elemente : tipul blocului BT, irul de egalizare, PS, padding string i irul de date D. Acestea sunt concatenate conform formulei : EB = 00 ||BT ||PS ||00 ||D (1 PKCS#1) Tipul blocului, BT, trebuie s fie un singur octet i indic structura blocului de criptare. Pentru aceast versiune a standardului el poate avea una dintre valorile: 00, 01, sau 02. Pentru o operaie cu cheie secret se folosesc valorile 00 sau 01. Pentru o operaie cu cheie public valoarea sa este 02. irul de egalizare, PS, trebuie s aib k-3-ll D ll octei, unde cu ll D ll s-a notat lungimea
80
irului de date D. Pentru BT de valoare 00, toi octeii din PS vor avea valoarea 00. Pentru BT de valoare 01, toi octeii din PS vor avea valoarea FF iar pentru BT de valoare 02, octeii din PS vor fi generai pseudoaleator i de valoare diferit de 00. n acest fel lungimea blocului de criptat va fi egal cu k. De aceea PS se numete ir de egalizare. Observaii 1 Cei doi octei 00 din formula (1 PKS#1) au fost inclui pentru a se asigura condiia ca blocul criptat, convertit ntr-o valoare ntreag s fie de valoare mai mic dect a modulului. 2 Dac BT are valoarea 00, irul de date D trebuie s nceap cu un octet nenul sau s aib o lungime cunoscut pentru ca blocul criptat s poat fi interpretat corect (neambiguu). Pentru BT de valori 01 sau 02 blocul criptat poate fi interpretat corect, deoarece irul egalizator PS nu conine octei de valoare 00 i este separat de irul de date D printr-un octet de valoare 00. 3 Valoarea 01 a BT este recomandat pentru operaii cu chei secrete. Aceast valoare conduce la o valoare mare a blocului EB, dup ce acesta a fost convertit ntr-o valoare ntreag, ceea ce previne anumite atacuri 4 Valorile 01 i 02 pentru BT asigur compatibilitatea blocului criptat cu criptarea RSA bazat pe coninut al cheilor i al rezumatelor de mesaje, folosit la protecia potei electronice, PEM. 5 Pentru valoarea 02 a BT se recomand ca generarea pseudoaleatoare a octeilor s se fac independent pentru fiecare proces de criptare, n special dac este necesar criptarea repetat a aceluiai mesaj. 6 Pentru valoarea 02 a BT, irul de egalizare, PS, trebuie s aib o lungime minim de 8 octei. Aceasta este o condiie de securitate pentru operaii cu chei publice, care previne ca un atacator s poat reconstrui irul de date prin ncercarea tuturor blocurilor criptate posibile. Aceai lungime minim se recomandli dac se utilizeaz valoarea 01 pentru BT. 7 Acest standard va fi extins n viitor pentru a include i alte valori posibile pentru
BT.
Conversia irului de octei ntr-un ntreg Blocul criptat, EB, se convertete ntr-un ntreg, x, folosind relaia :
k
x = 2 (
i =1
8 k i )
EBi
(2PKCS#1)
unde EB1, EB2,..., EBk reprezint octeii lui EB de la primul la ultimul. Cu alte cuvinte primul octet al lui EB are cea mai mare semnificaie n ntregul x iar ultimul octet al lui EB este cel mai puin semnificativ pentru ntregul x. Observaie ntregul x obinut prin conversia blocului EB satisface condiia:
8(k1)
0 x< N
(3PKCS#1)
N.
81
ntregul x, obinut n pasul anterior este ridicat la puterea c modulo N, obinndu-se ntregul y care reprezint rezultatul criptrii n form de numr ntreg, mai mic dect N. Conversia ntreg-ir de octei ntregul y, obinut n urma criptrii este convertit ntr-un ir de octei, ED, de lungime k, care reprezint mesajul criptat. irul ED trebuie s satisfac relaia:
y = 2 (
i =1
8 k i )
EDi
(4 PKCS#1)
unde ED1, ED2,..., EDk sunt octeii irului ED, de la primul la ultimul. Procesul de decriptare Acest proces const din 4 pai: conversia irului de octei ntr-un ntreg, decriptarea RSA, conversia ntregului ntr-un ir de octei i formatarerea blocului decriptat. Pentru efectuarea procesului de decriptare sunt necesare: irul de octei ED, datele criptate, modulul N i exponentul c. Pentru o operaie cu chei publice exponentul c trebuie s reprezinte exponentul public al unui utilizator, e, iar pentru o operaie cu chei secrete coeficientul c trebuie s reprezinte exponentul secret al unui utilizator, d. n urma procesului de decriptare se obine un ir de octei, D, care reprezint datele transmise. Dac lungimea acestui ir de octei nu este egal cu k atunci nseamn c s-a comis o eroare. Conversia irului de octei ntr-un ntreg
irul de date criptate, ED, este convertit ntr-un ntreg y, conform relaiei (4PKCS#1). Dac ntregul obinut nu satisface condiia : 0 y < N, nseamn c s-a comis o eroare de
transmisie. Decriptarea RSA ntregul y, obinut la pasul anterior este ridicat la puterea c modulo N, obinndu-se un nou ntreg, x, inferior lui N. Conversia ntregului ntr-un ir de octei ntregul x, obinut la pasul anterior, este convertit ntr-un ir de octei, EB, de lungime k, conform relaiei (2PKCS#1). Formatarea blocului decriptat Blocul decriptat este formatat prin includerea ntr-o structur format dintr-un octet BT care specific tipul blocului, un ir de egalizare, PS, i un ir de octei de date, conform relaiei (1PKCS#1). Dac este satisfcut una dintre condiiile urmtoare nseamn c s-a produs o eroare n procesul de transmisie: Blocul decriptat nu poate fi formatat neambiguu.
82
irul de egalizare, PS, este constituit din mai puin de 8 octei, sau nu este n accord cu BT. Procesul de decriptare este o operaie cu cheie public iar BT nu are valorile 00 sau 01, sau procesul de decriptare este o operaie cu cheie secret i BT nu are valoarea 02.
Aceasta arat de ce este att de important ca pentru fiecare semntur s se aleag o alt valoare a lui y. Mrimile a, b i c sunt toate informaii publice. De aceea dac exist dou seturi de mrimi a, b i c (de exemplu de la 2 utilizatori) atunci exist 2 ecuaii de tipul (1. SD) i deci un sistem de
83
2 ecuaii cu 2 necunoscute. Prin rezolvarea acestuia pot fi obinute cheile secrete x i y. Fiind date s, m, A la puterea x modulo P i A la puterea y modulo P, relaia dintre a, b i c poate fi verificat folosind ecuaia:
( Ax mod P )
a A y mod P
= Ac mod P
(2. SD)
Legturile dintre cele 3 numere a, b i c i mrimile s, Y i m pot fi: a= m , b=Y, c=s a=Y, b=m, c=s a=s, b=Y, c=m, a=Y, b=s, c=m, a=m, b=s, c=Y, a=s, b=m, c=Y
T = g mod P
Pentru un anumit mesaj m, semnatarul i alege un nou numr secret, S i calculeaz:
T = g mod P
Pe baza lui m concatenat cu T , se calculeaz un rezumat: d = H(m|T ). Apoi se calculeaz o semntur X:
X =S+(d S )mod(P 1)
Apoi se transmite mesajul m mpreun cu X i cu T . Pentru verificarea semnturii destinatarul calculeaz d cunoscnd funcia H, mesajul m i pe T , apoi verific c:
g =TT mod P 84
deoarece :
g X mod P = g = T ' ( g )
) mod P = (( g )
S'
mod P ( g )
S mod ( P 1)
)(
d S mod ( P 1)
mod P =
d mod ( P 1)
Ultima egalitate este corect deoarece S este mai mic dect P-1 (i de aceea S mod (P-1)=S). Toate mrimile necesare pentru verificare sunt disponibile deoarece destinatarul cunoate g, T, T, m, X i H i poate calcula d i celelalte valori necesare pe baza acestora.
85
care trebuiesc transmise (a se vedea figura 17 crpt). Acestui rezumat i se aplic algoritmul DSA pentru a se genera semntura digital. Semntura digital mpreun cu mesajul semnat sunt transmise celui care trebuie s verifice semntura digital. Acesta verific semntura digital cu ajutorul cheii publice a expeditorului. Aceeai funcie hash trebuie folosit i n procesul de verificare. Proceduri similare trebuie folosite i pentru generarea i verificarea semnturilor digitale pentru date stocate ( nu transmise).
Algoritmul DSA se folosete pentru pot electronic, pentru transferul electronic de fonduri, schimbul electronic de date, distribuire de soft, stocare de date i alte aplicaii care necesit verificarea integritii datelor transmise i autentificarea expeditorului. Algoritmul DSA poate fi implementat n variante hard, soft sau mixte. NIST dezvolt un program de validare a acordului dintre aceste implementri i standardul DSS.
L1
g=h
x
p 1 q
mod p.
y = g mod p .
86
ntregii p, q, i g pot fi publici i pot fi comuni unui grup de utilizatori. Numrul x reprezint cheia secret a unui utilizator iar y cheia sa public. n mod normal aceste valori rmn fixe pentru o perioad de timp. Parametrii x i k se folosesc doar pentru generarea semnturii i trebuie pstrai secrei. Parametrul k trebuie regenerat pentru fiecare semntur digital.
Generarea semnturii
Semntura unui mesaj M, este perechea de numere r i s calculate conform urmtoarelor ecuaii:
r = ( g k mod p ) mod q
s = k 1 ( SHA ( M ) + x r ) mod q
Cu k la puterea -1 s-a notat inversa lui k pentru nmulirea modulo q. E necesar verificarea egalitii cu zero a lui r sau s. Dac una dintre aceste mrimi este 0 atunci o nou valoare a lui k trebuie aleas i semntura trebuie recalculat. Semntura mpreun cu mesajul sunt transmise celui care trebuie s verifice semntura digital.
Verificarea semnturii
naintea verificrii semnturii unui mesaj parametrii p, q i g precum i cheia public i identitatea expeditorului a sunt puse la dispoziia celui care trebuie s verifice semntura digital ntr-o form autentificat. Fie M', r' i s' versiunile recepionate ale parametrilor M, r, i s i fie y cheia public a semnatrului mesajului. Prima operaie de verificare se refer la irul de inegaliti 0 < r' < s' < q. Dac una dintre aceste condiii nu este respectat atunci semntura este respins. Dac aceste condiii sunt satisfcute atunci se continu verificarea. Se calculeaz:
w = ( s ') u1 =
mod q mod q
u2 = ( ( r ' ) w ) mod q v=
(( SHA ( M ') w)
u1
((( g )
( y) 2
u
) mod p ) mod q
Dac v = r', atunci rezultatul verificrii semnturii digitale este pozitiv i se poate afirma c mesajul a fost trimis de ctre posesorul cheii secrete x corespunztoare lui y. Dac v nu este egal cu r' atunci se poate ca mesajul s fi fost modificat sau s nu fi fost corect semnat de ctre semnatar sau ca mesajul s fi fost semnat de ctre un impostor. Oricum mesajul nu trebuie validat. n continuare se demonstreaz criteriul de verificare. Cu alte cuvinte se demonstreaz c dac M' = M, r' = r, i s' = s, atunci v = r' . Demonstraia se bazeaz pe utilizarea urmtoarei leme.
LEM. Fie p i q dou numere prime astfel nct q s fie p - 1 i fie h un ntreg pozitiv mai mic dect p i g dat de relaia:
g=h
Atunci:
p 1 q
mod p
87
g q mod p = 1
i dac m mod q = n mod q, atunci:
(1 L)
g mod p =g mod p
DEMONSTRAIE.
1 pq g mod p = h mod p mod p = h p 1 mod p = 1
q
(2 L)
Ultima egalitate din relaia anterioar este un rezultat direct al Teoremei mici a lui Fermat (care este demonstrat n paragraful destinat bazelor matematice ale criptrii). Egalitatea: m mod q = n mod q, este identic cu relaia: m = n + kq pentru un anumit ntreg k. De aceea se poate scrie:
(( g
)
mod p ) ( g q mod p )
) mod p
g m mod p =
(( g
1
Deci i relaia (2. L) a fost demonstrat. n consecin lema a fost demonstrat. n continuare se demonstreaz propoziia. Se poate scrie:
w = ( s ') = ( s )
1
mod q
u1 =
x
v= =
(( g )
(( g
u1
y u2 mod p mod q =
) mod p ) mod q =
mod p mod q
(1 D)
Dar:
s = k 1 ( SHA ( M ) + x r )
i:
) mod q
88
w = (s)
adic:
mod q
w = k ( SHA ( M ) + x r )
de unde:
) mod q
mod p) mod q
r = ( g k mod p ) mod q
Presupunnd c valoarea lui k este inferioar valorii lui q, k mod q este egal cu k i conform ultimelor dou relaii rezult c v i r sunt egale. Propoziia a fost demonstrat. n standardul DSS, n anexe, sunt prezentate i metode de generare a numerelor prime, necesare n algoritmul DSA, precum i metode de generare a numerelor aleatoare sau pseudoaleatoare, de asemenea necesare n algoritmul DSA.
Criptanaliza diferenial
Dac persoana neautorizat are la dispoziie cantiti suficiente de text clar i text criptat corespunztor textului clar pe baza criptanalizei difereniale, inventat de Eli Biham i Adi Shamir, aceasta ar putea obine unele indicaii despre anumii bii ai cheii secrete folosite n procesul de criptare, putnd n acest fel scurta timpul cerut de cutarea cheii printr-o tehnic exhaustiv (bazat pe for brut). De exemplu dup 2 iteraii ale algoritmului DES, dac se cunosc att datele de intrare ct i cele de ieire ale acestor iteraii, este uor s se gseasc cele dou subchei folosite (deoarece se
89
cunosc rezultatele aplicrii ambelor funcii f /specifice celor dou iteraii). Pentru fiecare ieire cunoscut de cutie de tip S exist doar patru intrri posibile. Deoarece fiecare subcheie are o lungime de 48 de bii iar cheia secret are o lungime de doar 56 de bii, gsirea intrrii adevrate, dintre cele patru posibile identificate anterior este realtiv uor de nfptuit. ns de ndat ce numrul de iteraii crete la 4 problema descoperirii cheii secrete devine mult mai dificil. Cu toate acestea este nc adevrat c ieirea unei iteraii depinde de intrarea sa i de cheie. Pentru un numr limitat de iteraii este inevitabil ca un bit sau o combinaie de bii din cuvntul de la ieirea iteraiei s fie corelat (ntr-un anumit fel) cu rezultatul unei combinaii simple a unor bii ai cuvntului de intrare n prima iteraie cu unii bii ai cheii secrete. Pe baza identificrii acestei corelaii este mai probabil s se determine biii cheii secrete, deoarece aceasta este unic, dect biii cuvntului de intrare n prima iteraie, deoarece pentru acetia exist mai multe combinaii posibile. Pe msur ce numrul de iteraii crete, modul de corelare al biilor cuvntului de intrare n prima iteraie cu cheia secret se rafineaz, identificarea acestei iteraii fiind mult mai dificil. n loc s se spun "dac acest bit este de valoare 1 n cuvntul de intrare atunci el va fi de valoare 0 (sau 1) n cuvntul de ieire" se va spune "schimbnd acest bit n cuvntul de intrare se va schimba (sau nu se va schimba) acel bit n cuvntul de ieire". De fapt realizarea unei imagini complete a mecanismului prin care modificarea biilor din cuvntul de intrare afecteaz sau nu biii din cuvntul de ieire este scopul criptanalizei difereniale. Principiul de baz al criptanalizei difereniale, n forma sa clasic, este urmtorul. Sistemul de criptare, care se dorete a fi atacat, are o anumit "caracteristic", dac: - exist o anumit constant X astfel nct cunoscnd multe perechi de text clar, A i B, cu proprietatea: B = A xor X - i o anumit propoziie, referitoare la cheia secret, k, este adevrat, - i dac urmtoarea relaie: E(B,k) = E(A,k) xor Y (unde cu E s-a notat rezultatul criptrii), este adevrat, pentru o anumit constant Y, cu aceeai probabilitate cu care ar fi adevrat dac valoarea lui Y ar fi aleas aleator.
Criptanaliz liniar
Criptanaliza linar, inventat de ctre Mitsuru Matsui, este o tehnic nrudit dar diferit. n loc s se analizeze puncte izolate, n care un anumit sistem de criptare se comport ca i un altul mai simplu, aceast metod de criptanaliz ncearc s creeze o aproximare simpl a ntregului sistem de criptare. Pe baza unei perechi text clar-text cifrat, constituit din elemente de lungime mare, se determin cheia secret care ar fi produs aceast pereche, folosind sistemul de criptare simplificat, precum i biii cheii care au tendina s aib aceeai valoare i n cazul cheii folosite de sistemul de criptare real. Principiul care st la baza criptanalizei liniare este asemntor celui care st la baza tomografiei asistate de calculator: compunerea mai multor scan-ri unidimensionale ale unui obiect n scopul realizrii unei imagini bidimensionale a unei buci a acestuia.
90
Difereniale trunchiate
Este bineneles posibil ca probabilitatea ca unii dintre biii lui E(A,k) xor E(B,k) s se potriveasc cu biii lui Y s fie mai mare dect probabilitatea ca ali bii ai lui E(A,k) xor E(B,k) s se potriveasc cu biii corespunztori lor din structura lui Y. Dac cineva poate, n plus, s ignore anumii bii ai textelor A i B, (i anume pe aceia care fac potrivirea de care s-a vorbit mai nainte mai puin probabil) acela are o diferenial trunchiat pentru sistemul de criptare atacat i aceast tehnic, inventat de Lars R. Knudsen, s-a dovedit a fi foarte puternic. Fiind capabil s ignore anumii bii ai textelor A i B, atacatorul poate utiliza dou sau trei difereniale simultan ceea ce sporete mult ansele atacului su.
Similar, o derivat de ordinul 3, poate fi dedus pe baza diferenei a dou derivate de ordinul 2, efectuat pentru o alt diferen de constante i aa mai departe.
91
92
procesului de comunicaie. Conceptual este util s se reprezinte familia de protocoale TCP/IP ca i o stiv. n implementri, programatorii ascund de obicei nivelele modelului OSI pentru a crete performanele programelor. Primul, nivelul legtur, este responsabil pentru comunicarea cu hard-ul reelei. Acesta este locul unde sunt situate "driver-ele" pentru dispozitivele diferitelor interfee. Cel de al doilea, nivelul reea, este responsabil pentru stabilirea modului n care sunt livrate datele la destinaie. Fr a oferi garanii despre modul n care un anumit ir de date va ajunge la destinaia sa, acest nivel al modelului de referin OSI decide unde trebuie transmise datele.
Cel de al treilea, nivelul transport, face posibil transferul datelor spre nivelul aplicaie. Acesta este nivelul la care trebuie date garanii de fiabilitate. Cel de al patrulea, nivelul aplicaie, este locul unde, de obicei, utilizatorii interacioneaz cu reeaua. Acesta este nivelul n care rezid protocoalele: telnet, ftp, email, IRC, etc. Protocoalele sunt astfel proiectate nct nivelul N al destinaiei s primeasc (fr modificri) obiectul transmis de nivelul N al sursei. Pentru a fi posibil respectarea acestui principiu, prin proiectarea oricrui protocol trebuie specificate: - formatul unitilor de date manipulate, - aciunile posibile ale entitilor de protocol care concur la realizarea serviciilor specifice protocolului. Accesul la protocoalele IP i TCP este asigurat de diferite subrutine care au denumirea generic de Sokets. n modelul unei inter-reele apar sistemele ce gzduiesc aplicaiile, numite i sisteme terminale, subreelele la care aceste sisteme sunt conectate i sistemele intermediare, ruterele, ce conecteaz ntre ele subreelele. De obicei un sistem terminal are o singur interfa cu reeaua la care este conectat, n timp ce un sistem intermediar are mai multe interfee, cte una pentru fiecare subreea la care este conectat. Rolul unui sistem intermediar este de a retransmite pachetele pe care le primete de la o subreea, spre o alt subreea, situat pe calea aflat spre sistemul terminal destinatar. Sistemul intermediar este legat la ambele subreele.
Pachetele reprezint unitatea de baz a unei transmisii pe INTERNET. Ele conin att date ct i informaii de tip antet (prefix). Informaiile de tip antet constau din anumite combinaii de sume de control, identificatoare de protocol, adrese de destinaie i de surs i informaii de stare. Fiecare nivel al modelului OSI trebuie s adauge la irul de date antetul su propriu, astfel nct s se poat interpreta informaia de ctre toate nivelele, ncepnd cu cel mai de jos. n figura 2 internet este dat un exemplu de cadru Ethernet. Acest cadru este rezultatul unui pachet care a plecat de la nivelul aplicaie pe toate cile posibile spre nivelul legtur. Fiecare nivel ia pachetul de la nivelul anterior, putndu-l vedea aproape n ntregime ca pe un ir de date i i adaug propriul antet.
93
Nivelul legtur Acesta este nivelul cel mai uor de neles. Compus din hard-ul reelei i din driver-ele dispozitivelor, el este cel mai de jos nivel din stiva de protocoale. Cnd recepioneaz date din reea, el culege datele de pe cablul reelei, le adaug un antet specific i transmite pachetele astfel construite spre nivelul reea. Cnd transmite date spre reea preia pachetele de la nivelul reea, le adaug un antet specific i le transmite pe cablul reelei. Avantajul separrii de hard este c soft-itii care implementeaz protocoalele trebuie s programeze legtura cu hard-ul o singur dat. Apoi ei concep o interfa comun cu reeaua, programnd diferitele driver-e de dispozitive pentru fiecare tip particular de reea. Nivelul reea Acesta este nivelul unde rezid, printre alte protocoale, i protocoalele IP i ICMP, Internet Control Message Protocol. Protocolul ICMP este folosit att pentru a furniza informaii despre funcionarea corect a reelei ct i pentru a asigura unele utiliti ca de exemplu ping sau traceroute. Protocolul IP este folosit pentru aproape toate comunicaiile n INTERNET. Cnd se trimit pachete, el gsete modul n care acestea sunt transmise spre destinaie. Cnd se primesc pachete el afl de unde sosesc aceste pachete. Dac un pachet sosete fr probleme (de exemplu necorupt) protocolul IP l transmite. Corectitudinea recepiei pachetelor este sarcina unor nivele superioare. Pentru prelucrarea pachetului curent nu este relevant existena unor pachete anterioare sau ulterioare. Protocolul IP nu este capabil s sesizeze nici mcar decuplarea, pentru un anumit interval de timp, a cablului de legtur cu reeaua. Protocolul IP este capabil s conduc pachetele la destinaia dorit deoarece fiecare interfa de reea din INTERNET are o adres numeric unic. Aceste numere se numesc adrese IP. Fiecare interfa are propria sa adres. Dac un calculator are mai multe interfee (ca de exemplu n cazul unui ruter) fiecare dintre aceste interfee are propria sa adres IP. Deoarece este dificil s te referi la calculatoare folosind iruri de numere, proiectanii protocoalelor TCP/IP, au fcut posibil ca administratorii de reea s asocieze nume cu adresele IP. La nceput fiecare calculator gazd, conectat la INTERNET, meninea o copie complet a bazei de date cu toate numerele IP (pe calculatoarele care operau cu sistemul UNIX aceasta se gsea n /etc/hosts). Datorit expansiunii reelei INTERNET acest lucru nu a mai fost posibil avnd n vedere att dimensiunile uriae ale unei astfel de baze de date ct i comarul la care ar fi fost supui administratorii de reea pentru continua aducere la zi a acestei baze de date. Atfel s-a nscut sistemul numelui de domeniu, DNS, domain name system. Acesta reprezint o baz de date distribuit, coninnd adrese IP i numele acestora n limbaj natural, numite nume de gazd, host names.
94
De fapt la o anumit adres INTERNET pot fi asociate mai multe nume de gazd. Cnd un administrator de reea adaug un nou calculator la reeaua pe care o administreaz, el trebuie s reactualizeze tabelul de nume de organizaie de pe server-ul acelei reele. Aceast modificare se propag rapid. Orice comunicaie cu un calculator este realizat prin intermediul adreselor IP numerice, de aceea numele de gazd pentru un calculator este folosit doar la nceputul unei conexiuni. Paii pe care i face protocolul IP pentru a trimite un pachet sunt: - pe baza adresei sale IP acesta gsete modul n care pachetul poate ajunge la destinaie; - trimite pachetul pe calea indicat. Din fericire, nu trebuie cunoscute toate modalitile prin care un pachet poate ajunge, s spunem, n Alaska, fiind suficient s se afle care este ruterul responsabil pentru transmiterea pachetelor spre Alaska. Un ruter este diferit de o gazd obinuit din reea prin aceea c el are cel puin dou interfee, care i permit s se conecteze la dou sau mai multe reele. Pentru o organizaie mic, tipic exist o reea local (de exemplu de tipul Ethernet) i apoi o linie nchiriat spre INTERNET. Ruterul acelei organizaii este conectat att la reeaua local ct i la legtura INTERNET. Toate pachetele care trebuie transmise n INTERNET sunt transmise la ruter, care le retransmite pe linia nchiriat, trimindu-le spre ruterul urmtor. De aceea fiecare ruter trebuie s cunoasc doar urmtoarele rutere cu care este conectat. Acestea la rndul lor vor cunoate ruterele la care sunt ele conectate. Dac un ruter este conectat la mai multe alte rutere urmtoare (pe un anumit drum) atunci el trebuie s decid la care dintre ele trebuie s transmit pachetul curent. La ntrebarea "Cum trebuie s aleag un anumit ruter ruterul urmtor ?" nu exist un rspuns unic. Traficul poate fi dirijat pe baza algoritmului "n sensul acelor de ceasornic" sau ruterele urmtoare aflate pe acelai drum (adic care pot conduce la aceeai destinaie) pot fi alternate. Exist i algoritmi de dirijare mai complicai care in seama de ncrcarea drumurilor posibile i care trimit datele pe linia cea mai puin ocupat. Un ruter local ar putea "spune": "Toate pachetele din reeaua local West merg la MIT, de aceea eu le trimit acolo i las ruterul de la MIT s afle ce trebuie fcut mai departe". Ruterul de la MIT le poate transmite la Cleveland, de acolo pachetele se pot duce la Chicago, San Francisco sau Seattle i apoi n Alaska, unde au fost trimise de fapt de primul ruter (cel al reelei locale). Ruterul din fiecare nod al reelei INTERNET este interesat doar de ruterul urmtor la care trebuie s trimit pachetele. El nu trebuie s ncerce s determine ntregul traseu pe care l vor urma aceste pachete. Pentru a determina urmtorul ruter la care trebuie s ajung un pachet, ruterele din INTERNET utilizeaz tabele de dirijare. Acestea au trei pri constitutive: -adrese de rutere, -adrese pe care le pot manipula, -interfeele destinaie, la care sunt conectate ruterele respective. n cazul unui calculator dintr-o reea local (ca de exemplu cool.cs.umass.edu), e suficient dac un astfel de tabel are trei rubrici: una pentru interfaa cu bucla (care i permite unui calculator gazd s se conecteze la el nsui), una pentru reeaua local i una pentru legtura spre exterior iniial. Rubrica pentru reeaua local permite protocolului IP s tie c gazda sa este conectat direct la cteva calculatoare i s cunoasc adresele IP ale acestora. n loc s ncerce s dirijeze aceste pachete, protocolul IP gsete adresa dispozitivului hard cu numrul IP de interfa Ethernet corespunztor i trimite pachetul acolo. Adresele pe care le poate manipula ruterul sunt toate adresele IP din reeaua local. Interfaa destinaie este o plac Ethernet din reeaua local. Toate celelalte adrese identificate din pachetul de transmis, diferite de cele amintite mai sus trebuie s conduc la legtura iniial spre exterior. n loc s ncerce s livreze un pachet cu destinaia cool.alaska.edu unui calculator din reeaua local, un anumit calculator din reea trimite acel pachet spre interfaa ruterului, spunnd "Ia, eu nu tiu unde trebuie s mearg pachetul sta, d-i tu seama". Atunci ruterul se uit n tabelul su de dirijare, constat c nu are o legtur direct cu domeniul cool i de aceea l trimite la legtura sa iniial spre exterior, MIT. i astfel continu procesul. Chiar dac o linie telefonic dintr-o anumit reea se defecteaz, traficul nu se ntrerupe, datele putnd ajunge la destinaie pe un alt drum (care exclude legtura ntrerupt). Dup pierderea legturii ntre New York i Chicago datele pot fi trimise de la New York la Atalanta apoi la Los Angeles i apoi la Chicago. n acest fel se poate asigura un serviciu continuu dar cu performane degradate. Acest tip
95
de recuperare a datelor este primul parametru de proiectare al protocolului IP. Defectarea liniei telefonice este imediat sesizat de ruterele din New York i Chicago, dar ntr-un anumit mod aceast informaie trebuie transmis i celorlalte noduri. Altfel, ruterul din Los Angeles ar continua s transmit mesaje spre New York prin Chicago unde ele ar sosi la un "capt mort". De aceea n fiecare reea este adoptat un anumit protocol de dirijare care remprospteaz periodic tabelele de dirijare pentru ntreaga reea pe baza unor informaii despre schimbrile suferite de strile de dirijare. Cnd se recepioneaz date, protocolul IP preia pachetul de pe nivelul legtur, verific dac acesta a fost corupt sau nu i livreaz pachetul procesului corespunztor din nivelul transport. n aceast descriere succint au fost ignorate cteva funciuni cum ar fi: fragmentarea pachetelor, manevrarea erorilor de transmisie, sau interaciunea dintre nivelele reea i transport. Nivelul transport La acest nivel se uitlizeaz dou protocoale: TCP i UDP. n timp ce protocolul TCP asigur o comunicaie sigur ntre capete, protocolul UDP nu asigur aceast condiie. UDP nu este la fel de sigur ca TCP dar permite programatorilor s scrie soft la nivel de utilizator, care s creeze formate particulare de pachete, ceea ce este foarte util cnd se dorete conceperea unor noi protocoale, fr a avea la dispoziie programele surs pentru nucleele acestora i nu se dorete supraveghere din partea protocolului TCP. Protocolul TCP creaz un circuit virtual ntre dou procese. El asigur recepia pachetelor n ordinea n care au fost trimise i retransmiterea pachetelor pierdute. Programe interactive ca de exemplu ftp sau telnet folosesc acest protocol. Cnd sosesc date la un ruter congestionat (care este deja ocupat n proporie de 100%) nu exist nici un loc unde s fie trimise datele n exces. Este resposabilitatea expeditorului s ncerce retransmiterea datelor puin mai trziu i s insisite pn cnd reuete. Acest tip de reconstrucie a irului de date este realizat de protocolul TCP. Acest protocol a fost proiectat s reconstruiasc irul de date i n cazul n care apar defeciuni la un nod al reelei sau la o legtur dintre dou noduri. Cnd se propag informaia despre o astfel de defeciune, tabelele de dirijare ale unor rutere trebuie s se modifice. Deoarece aceast modificare cere un anumit timp, se poate afirma c protocolul TCP este lent n cazul n care trebuie refcut irul de date dup o astfel de defeciune. Deci protocolul TCP nu este dedicat optimizrii manipulrii pachetelor n cazul congestiei traficului. De fapt strategia tradiional de rezolvare a problemei congestiei traficului n INTERNET a fost creterea vitezei liniilor de comunicaie i a echipamentelor pentru a exista o rezerv consisitent n raport cu creterea cererii de servicii. Protocolul TCP trateaz fluxul de date ca pe un ir de octei. El asociaz un numr de secven fiecrui octet. Pachetul TCP are un prefix care "spune" de exemplu: "Acest pachet ncepe cu octetul 379642 i conine 200 de octei de date". Destinatarul poate detecta absena unor pachete sau incorecta indexare a altora. Protocolul TCP valideaz datele care au fost recepionate i retransmite datele care au fost pierdute. Acest protocol asigur mijloace pentru ca datele s fie reconstruite ntre capete, adic ntre calculatoarele expeditorului i destinatarului. Nu exist standarde pentru rezolvarea problemelor care apar n mijlocul unei subreele care este traversat de un anumit mesaj deoarece n fiecare subreea sunt adoptate n mod ad-hoc anumite "soluii". Pn aici s-a discutat adresarea la nivel de calculator gazd - cum se identific un anumit calculator. Dar odat aceast identificare fcut, este necesar o metod pentru identificarea unui anumit serviciu (pe care s-l efectueze calculatorul gazd identificat), de exemplu serviciul de pot electronic. Aceasta este sarcina porturilor - identificarea numerelor incluse n fiecare pachet TCP sau UDP. Porturile TCP/IP nu sunt de natur hard. Ele sunt doar o modalitate de a etichetare a pachetelor. Fiecare proces care poate fi efectuat pe un anumit calculator corespunde unui anumit port TCP/IP. Cnd nivelul transport primete un pachet el verific numrul de port din acel pachet i trimite datele procesului corespunztor. Cnd un anumit proces pornete, se nregistreaz un anumit numr de port cu ajutorul stivei TCP/IP. Un singur proces de protocol poate corespunde unui port dat. Astfel dac un proces aparine protocolului UDP i un alt proces protocolului TCP ele pot corespunde unui acelai port, de exemplu 111, nu acelai lucru se poate afirma despre dou procese care aparin aceluiai
96
protocol, de exemplu TCP. Un numr de porturi sunt rezervate pentru servicii standard. De exemplu protocolul de pot electronic, SMTP, corespunde ntotdeauna portului 25 iar protocolul telnetd portului 23. O list a porturilor rezervate pe un sistem UNIX se gsete n fiierul /etc/services. Pn aici s-a prezentat modul n care lucreaz porturile la captul la care este conectat server-ul - se rezerv porturi specifice pentru sarcini specifice. La cellalt capt are loc o distribuire dinamic a porturilor. Cnd un client telnet ncepe s utilizeze acest protocol el d un nou numr de port (de exemplu 1066). Acesta este portul surs pe care protocolul TCP al utilizatorului l include n fiecare pachet. Astfel va putea protocolul telnet daemon, telnetd, de pe server s rspund corect la procesul telnet iniiat de utilizator. Combinaia dintre adresele IP ale sursei i ale destinaiei i porturi creaz un identificator unic de conversaie. Fiecare conversaie este numit curgere. UDP-ul se bazeaz pe protocolul IP i pe numere de porturi. El d acces utilizatorului la pachetele de tip IP. Sistemul de fiiere al reelei, network file system, NFS i talk sunt dou exemple de protocoale bazate pe UDP. Prezentarea protocoalelor TCP i UDP, fcut pn aici, a fost extrem de sumar. Ea ofer doar o nelegere aproximativ a modului n care interacioneaz ntr-o reea nivelele reea (al crui protocol specific este IP) i transport (ale crui protocoale specifice sunt TCP sau UDP).
Nivelul aplicaie
Reprezint locul n care utilizatorul interacioneaz cu reeaua. Toate programele de comunicaie n reea ca de exemplu: telnet, ftp, mail, news, i WWW clients acioneaz la acest nivel. Ele folosesc TCP sau UDP pentru a comunica cu alte calculatoare. n continuare se detaliaz puin programul telnet. Acesta este utilizat pentru utilizarea unui calculator de la distan, remote login. El nltur necesitatea de a folosi terminale conectate hard. Un utilizator care tasteaz, dup ce a declanat acest program, ``telnet cool.alaska.edu'' este conectat rapid la calculatorul cool.alaska.edu, care i cere s-l acceseze. Apoi utilizatorul poate lucra pe calculatorul cool.alaska.edu. Acest proces se bazeaz pe urmtoarele etape: 1 Numele folosit ca i adres este convertit numeric, obinndu-se (137.229.18.103), prin intermediul unui server de nume de domeniu. 2 Programul telnet transmite nivelului de transport c dorete s nceap o legtur TCP cu 137.229.18.103, la portul 23. 3 Protocolul TCP iniiaz o conversaie cu calculatorul numit cool. Se folosete protocolul IP pentru a dirija pachete. Programul telnet, rulat pe calculatorul pe care lucreaz utilizatorul care dorete serviciul la distan, d un numr de port, de exemplu, 1096. Protocolul TCP plaseaz numerele de port al sursei i destinaiei n prefixul pe care l adaug el pachetului, iar protocolul IP adaug, n prefixul pe care l adaug el pachetului, adresa IP. 4 Pachetele sunt apoi dirijate la nivelul IP, care le trimite la nivelul legtur. Ele trec de pe calculatorul utilizatorului pe ruterul organizaiei sale i apoi ies n INTERNET. Ele i urmeaz drumul spre calculatorul numit cool, trecnd rnd pe rnd prin toate ruterele situate pe acest drum. 5 Nivelul TCP al calculatorului numit cool rspunde ntr-un mod similar. 6 Protocolul telnet daemon de pe calculatorul numit cool i protocolul telnet de pe calculatorul care a solicitat serviciul la distan schimb informaii de terminal i ali parametri necesari unei sesiuni de lucru interactiv. Se transmit mesaje de control de tipul: ecou, stare, tip de terminal, vitez de terminal, controlul traficului sau variabile de mediu. 7 Utilizatorul vede pe monitorul calculatorului su prompter-ul de login. Dup ce se efectueaz operaia de login ncepe transferul de date ntre calculatorul utilizatorului i calculatorul accesat la distan. De ndat ce sarcina a fost mprit n mai muli pai se poate constata c ea este relativ simpl. Deoarece nivelul transport realizeaz o interfaare standard, nu este necesar ca aplicaiile de reea s fie rescrise i nici mcar recompilate dac se schimb programul corespunztor nivelului transport. Pentru o bun funcionare a seriei de protocoale TCP/IP este necesar ca elementele acesteia s posede anumite cunotiine. Exist trei nivele de cunotiine TCP/IP.
97
Cei care administreaz o reea regional sau naional trebuie s proiecteze un sistem format din linii telefonice care s permit comunicaii la foarte mare distan, din dispozitive de dirijare dedicate i din fiiere de configurare foarte mari. Ei trebuie s cunoasc numerele IP i locaiile fizice a mii de reele de abonai. De asemenea ei trebuie s aib o strategie de monitorizare a reelei pentru a detecta problemele care apar i a le rezolva rapid. Fiecare companie mare sau universitate, conectat la INTERNET, trebuie s aib un nivel intermediar de organizare a reelei. Un numr de ase rutere ar putea fi suficient pentru a conecta cteva duzini de reele locale de departament, situate n cteva cldiri. ntregul trafic din afara organizaiei va fi dirijat la o singur conexiune spre un prestator de servicii de reea regional. Utilizatorul final (situat la unul dintre capetele reelei) poate instala seria de protocoale TCP/IP pe un calculator personal fr a avea vreo cunotiin despre reeaua regional sau despre reeaua companiei. Totui el are nevoie de trei tipuri de informaie: 1 Adresa IP asociat calculatorului su, 2 Partea din adresa IP (masca subreelei) care permite s se fac distincia ntre diferite calculatoare din aceeai reea local (pot fi trimise direct mesaje la aceste calculatoare de la alte calculatoare din aceeai reea sau de altundeva din lume (acestea fiind n prealabil transmise ruterului reelei locale)). 3 Adresa IP a ruterului care conecteaz acea reea local la restul lumii. De exemplu un server de reea local poate fi configurat cu urmtoarele valori: Adresa sa IP: 130.132.59.234 Masca subreelei: 255.255.255.0 Adresa ruterului iniial de conexiune spre exterior: 130.132.59.1 Masca subreelei specific serverului c orice alt calculator cu o adres IP care ncepe cu 130.132.59.* se afl n aceeai reea local departamental, n consecin mesajul putndu-i-se transmite direct. Orice adres IP care ncepe cu o valoare diferit este accesat indirect transmindu-i-se mesajul prin ruterul cu adresa 130.132.59.1 . Au fost trecute n revist cele patru nivele ale modelului OSI care gzduiesc protocoale din seria TCP/IP i s-a prezentat modul n care interacioneaz elementele acestei serii de protocoale. Multe detalii nu au fost dezvluite. Acestea pot fi gsite n documente publicate pe INTERNET de tip RFC, Request for Comments. Aceste documente sunt elaborate de ctre asociaia de standardizare a INTERNET-ului, Internet Engineering Task Force, IETF i se gsesc la adresa: http://www.rfc-editor.org/ n continuare se reia prezentarea protocoalelor din familia TCP/IP, puin mai n detaliu.
Protocolul PPP
Point to Point Protocol este unul dintre protocoalele cel mai des utilizate pentru accesul la INTERNET. Dup cum i arat i numele acest protocol a fost proiectat pentru a fi utilizat pentru legturile punct la punct. De fapt el reprezint modalitatea de ncapsulare IP pentru sistemele de acces dedicate INTERNETULUI sau bazate pe adresare numeric (ca i n cazul telefoniei). Una dintre funciile de baz ale acestui protocol este negocierea, nainte de conectarea iniial, a unei serii de aspecte cum ar fi: parole, adrese IP, scheme de compresie, sau scheme de criptare. n plus, PPP ajut utilizarea mai multor protocoale pentru o singur legtur. Acest atribut al protocolului PPP este foarte util n aplicaii n care utilizatorii de adresare numeric pot folosi att IP ct i un alt protocol de nivel reea. Acest protocol poate fi utilizat i de reelele cu integrare de servicii, ISDN, deoarece suport operaii specifice pentru acest tip de reele, cum ar fi multiplexarea invers sau alocarea dinamic a
98
benzilor de frecven prin intermediul variantei sale Multilink-PPP , ML-PPP, descris n RFC 1990 i n RFC 2125. n figura urmtoare se prezint formatul unui cadru pentru protocolul PP.
Semnificaia cmpurilor din acest cadru este urmtoarea: Flag (stegule indicator): Octetul "01111110" este folosit pentru a delimita nceputul i sfritul transmisiei. Address (adres): Pentru PPP, se folosete octetul de adres, "11111111". Frame Check Sequence, FCS (secven de verificare a cadrului): este un octet care reprezint restul obinut n urma efecturii unei operaii de verificare a corectitudinii transmisiei, cyclic redundancy check , CRC, utilizat pentru detecia erorilor de transmisie. Protocol: este o valoare exprimat pe 8 sau pe 16 bii care indic tipul de pachet despre care este vorba n cmpul Information din acelai cadru. Acest cmp poate indica utilizarea unui protocol de nivel reea (cum ar fi IP, IPX, sau DDP), un protocol de control al reelei, a Network Control Protocol , NCP, n asociere cu un protocol de nivel reea, sau un protocol de control al nivelului legtur de tip PPP, a PPP Link-layer Control Protocol, LCP. Information (informaie): Conine pachetele pentru protocolul specificat n cmpul Protocol. Acesta cmp poate conine ntre 0 i 1500 de octei (o valoare diferit poate fi negociat). Padding (egalizare): Lungimea cmpului Information poate fi egalizat. Aceast egalizare poate fi cerut n unele implementri ale acestui protocol pentru a asigura o anumit lungime minim a cadrului i/sau pentru a asigura o anumit aliniere a marginilor cuvintelor folosite de calculatorul pe care funcioneaz acest protocol. Modul de operare al protocolului PPP este urmtorul: 1 Dup stabilirea fizic a legturii, fiecare calculator gazd trimite pachete LCP pentru a configura i testa legtura de date respectiv. n aceast etap se negociaz lungimea maxim a cadrelor, protocolul de autentificare folosit (se poate alege ntre protocolul de autentificare a parolelor, Password Authentication Protocol, PAP, sau protocolul de autentificare Challenge-Handshake Authentication Protocol, CHAP), protocolul de calitate a legturii folosit, protocolul de compresie folosit. De asemenea se negociaz i ali parametri de configurare. Dac se utilizeaz autentificarea, aceasta se va face dup ce legtura de date a fost stabilit. 2 Dup ce legtura de date a fost stabilit, se configureaz una sau mai multe conexiuni de protocol de nivel reea folosind protocolul de control al reelei, NCP, corespunztor. Dac se utilizeaz ca i protocol de nivel reea protocolul IP, conexiunea corespunztoare acestuia va fi configurat folosind protocolul de control, specific pentru PPP i IP, numit IP Control Protocol, IPCP. Dup ce fiecare protocol de nivel reea a fost configurat, pachete corepunztoare acestor protocoale pot fi trimise prin aceast legtur. Pot fi utilizate protocoale de control pentru protocoalele de nivel reea: IP, IPX (NetWare), DDP (AppleTalk), DECnet, .a.m.d. 3 Legtura va rmne configurat pentru comunicaii pn cnd pachete specifice pentru protocoalele LCP i/sau NCP o vor desface.
99
Nivelul INTERNET
Protocolul INTERNET (descris n RFC 791), ofer servicii echivalente cu cele prevzute n modelul de referin OSI la nivelul reea. Protocolul IP ofer un serviciu de transport al pachetelor de-a lungul ntregii reele. Despre acest serviciu se afirm uneori c nu ar fi de ncredere deoarece reeaua nu trebuie s garanteze livrarea corect i nici nu trebuie s informeze calculatorul gazd destinatar al pachetelor de date despre pierderea unor pachete datorit unor erori de transmisie sau datorit congestionrii reelei. Pachetele IP conin un mesaj sau un fragment de mesaj, care poate fi de o lungime mai mare de 65.535 octei. Protocolul IP nu trebuie s prevad un mecanism de control al curgerii datelor. Formatul antetului pachetului IP este prezentat n figura urmtoare.
Biii antetului acestui protocol sunt numerotai de la stnga la dreapta pornind de la 0. Pe fiecare linie este situat un cuvnt de 32 de bii. Trebuie remarcat c fiecare antet IP va avea o lungime de cel puin cinci cuvinte (adic 20 de octei). Cmpurile coninute n acest antet i funciile lor sunt: - Version (versiune): Specific versiunea IP a pachetului. Deoarece versiunea curent de IP este 4 acest cmp va conine valoarea n binar 0100. - Internet Header Length (lungimea antetului INTERNET), IHL: indic lungimea antetului pachetului n cuvinte cu lungimea de 4 octei. O lungime minim de antet este de 20 de octei. De aceea n acest cmp de obicei este nscris o valoare mai mare sau egal cu 5 (0101). Deoarece valoarea maxim care se poate nscrie n acest cmp este de 15, antetul IP al unui pachet nu poate fi mai lung de 60 de octei. - Type of Service (tipul de serviciu), TOS: Permite ca un calculator gazd care transmite pachete s
100
solicite diferite tipuri de servicii pentru pachetele pe care le emite. Dei aceast facilitate nc nu este asigurat de toate protocoalele Internet, n cazul protocolului IPv4, cmpul TOS poate fi setat de ctre calculatorul gazd expeditor conform specificaiilor fcute la nivelul interfeei dintre nivelul transport i nivelul servicii al reelei INTERNET i poate specifica o prioritate a serviciului (0-7) sau poate cere ca dirijarea pachetelor s fie optimizat dup criterile: cost, ntrziere, sau fiabilitate. - Total Length (lungime total): indic lungimea n octei a ntregului pachet, incluznd att antetul ct i datele. Lungimea total maxim a unui pachet IP este de 65.535 de octei. n practic dimensiunile pachetelor sunt limitate la unitatea maxim de transmisie, the maximum transmission unit , MTU. - Identification (identificare): Folosit cnd un pachet este fragmentat n buci mai mici pentru a traversa INTERNET-ul, acest identificator este specificat de ctre ruterul curent, astfel nct diferitele fragmente care sosesc la destinaie, s poat fi reasamblate. - Flags (stegulee): i acest cmp se utilizeaz pentru fragmentare i reasamblare. Primul bit al acestui cmp este numit bit de continuare a fragmentrii, the More Fragments bit , MF i este folosit pentru a indica ultimul fragment al unui pachet, astfel nct calculatorul care recepioneaz pachetul s tie c acest pachet poate fi reasamblat. Urmtorul bit al acestui cmp este numit bit de ncetare a fragmentrii, Don't Fragment bit, DF i indic faptul c fragmentarea trebuie suprimat. Cel de al treilea bit al acestui cmp nu este folosit, fiind setat n permanen pe zero. - Fragment Offset (poziionarea fragmentului): indic poziia fragmentului curent n cadrul pachetului original. Pentru primul fragment dintr-un ir de fragmente, valoarea nscris n acest cmp va fi zero; pentru fragmentele urmtoare acest cmp va indica poziia prin valori obinute prin incrementarea valorii anterioare cu cte 8 octei. - Time-to-Live (timpul de via), TTL: n acest cmp se nscrie o valoare cuprins ntre 0 i 255, indicnd numrul de rutere prin care acest pachet va trece nainte de a fi distrus. Fiecare ruter prin care trece acest pachet va decrementa valoarea nscris n acest cmp. Dac valoarea curent ajunge s fie zero pachetul va fi distrus. - Protocol: indic protocolul corespunztor celui mai nalt nivel din modelul de referin OSI cu care sunt prelucrate datele din pachetul curent. Sunt posibile urmtoarele opiuni: ICMP (1), TCP (6), UDP (17), sau OSPF (89). O list de implementare a acestor protocoale poate fi gsit n fiierul de protocoale de pe fiecare calculator, numit /etc, pentru calculatoarele care folosesc sistemul de operare Linux/Unix, c:\windows pentru calculatoarele care utilizeaz sistemul de operare Windows 9x, sau c:\winnt\system32\drivers\etc , pentru calculatoarele care utilizeaz sistemele de operare Windows NT, sau Windows 2000. - Header Checksum (suma de control a antetului): n acest cmp sunt nscrise informaii care s asigure c antetul IP al pachetului recepionat nu este afectat de erori. Acest control se refer doar la antet, nu i la partea de date coninut n acel pachet. - Source Address (adresa susrsei): Adresa IP a calculatorului care a trimis pachetul. - Destination Address (adresa destinaiei): Adresa IP a calculatorului cruia i se transmite pachetul. - Options (opiuni): O mulime de opiuni care pot fi fcute n legtur cu orice pachet, cum ar fi tipul de dirijare specificat de un anumit expeditor, sau tipul de securitate specificat de ctre acesta. Cmpul coninnd lista de opiuni poate avea o lungime maxim de 40 de octei (care corespunde la un numr de 10 cuvinte).
Adrese IP
Lungimea adreselor Ipv4 este de 32 de bii. Ele reprezint o secven de 4 numere, exprimate n zecimal, fiecare reprezentnd valorea zecimal a unui octet de adres. Deoarece aceste valori sunt separate prin puncte, notaia utilizat pentru scrierea lor este numit zecimal punctat. Un exemplu de adres IP este urmtorul: 208.162.106.17. Adresele IP sunt ierarhizate pentru a face posibil dirijarea pachetelor de date i sunt compuse din dou subcmpuri. Subcmpul de identificare a reelei, The Network Identifier, NET_ID identific subreeaua TCP/IP conectat la INTERNET. Acest identificator este utilizat pentru dirijarea la nivel nalt ntre subreele, la fel cum se folosesc prefixurile de ar, de ora sau de cartier, n reeaua
101
telefonic. Cel de al doilea subcmp, identificatorul calculatorului gazd, The Host Identifier, HOST_ID indic un anumit calculator gazd, din cadrul subreelei (deja identificat). Pentru a putea funciona n reele de dimensiuni diferite, pentru protocolul IP exist cteva clase de adrese. Clasele A, B i C se folosesc pentru identificarea calculatoarelor gazd i singura diferen ntre clase este lungimea subcmpului NET_ID. O adres de clas A are un subcmp NET_ID cu o lungime de 7 bii i un cmp HOST_ID cu o lungime de 24 de bii. Clasa A de adrese este construit pentru reele foarte mari i poate adresa un numr de pn la 16.777.216 (2 ) calculatoare gazd pentru fiecare reea. Primul octet al unei adrese de clas A va fi un numr cuprins ntre 1 i 126. O adres de clas B are un subcmp de tipul NET_ID cu o lungime de 14 bii i un subcmp de tipul HOST_ID cu o lungime de 16 bii. Adresele din aceast clas au fost construite pentru reele de mrime medie i pot fi folosite pentru identificarea unui numr de pn la 65.536 (2 ) calculatoare ntr-o singur reea.
16 24
Primul octet al unei adrese de clas B este un numr cu valoarea cuprins ntre 128 i 191. O adres de clas C are un sub-cmp de tipul NET_ID cu o lungime de 21 de bii i un subcmp de tipul HOST_ID cu o lungime de 8 bii. Acest tip de adrese au fost concepute pentru reelele de dimensiuni mici i pot adresa doar un numr de pn la 254 de calculatoare ntr-o reea. Primul octet al unei adrese de clas C va fi un numr cuprins ntre 192 i 223. Majoritatea adreselor folosite n ziua de azi sunt de clas C. Ultimele dou clase de adrese rmase se utilizeaz doar pentru funcii speciale i nu sunt alocate unor calculatoare gazd individuale. Adresele de clas D pot ncepe cu un octet cu valoarea cuprins ntre 224 i 239 i sunt utilizate pentru comunicaii multipunct (trimiterea unui pachet de date la mai muli utilizatori). Primul octet al adreselor de clas E are valoarea cuprins ntre 240 i 255. Aceste adrese sunt utilizate n scop experimental. Cteva adrese sunt rezervate i/sau au un neles special. Cnd ne referim la o ntreag subreea putem folosi un HOST_ID de valoare 0. Adresa 208.162.106.0 este una de tip C cu un NET_ID de valoare 208.162.106 . Dac un sub-cmp de tipul HOST_ID este completat doar cu cifre de valoare 1 (asta se scrie de obicei 255 sau -1) atunci adresa corespunztoare se refer la
102
toate calculatoarele gazd dintr-o reea. Valoarea 127 pentru NET_ID este folosit pentru testarea n bucl nchis iar adresa 127.0.0.1 reprezint o adres de calculator gazd local. Cteva valori ale subcmpului NET_ID au fost rezervate prin RFC 1918 pentru reele private i pachetele de date nu vor fi dirijate prin INTERNET spre aceste reele. Printre acestea se gsesc adresele: 10.0.0.0, de clas A, cele 16 adrese de clas B, 172.16.0.0172.31.0.0, i cele 256 de adrese de clas C, 192.168.0.0192.168.255.0. O unealt suplimentar de adresare este masca de subreea. Aceste mti se folosesc pentru a specifica poriunea din adres care specific reeaua sau subreeaua, pentru scopuri de dirijare. i masca de subreea este scris n zecimal punctat i numrul de 1-uri indic biii semnificativi ai subcmpului NET_ID. Pentru adresele IP din clasele specificate, mtile de subreea i numrul de bii semnificativi de subcmp NET_ID sunt prezentai n tabelul urmtor. Clasa A B C Masca de subreea 255.0.0.0 255.255.0.0 255.255.255.0 Numrul de bii semnificativi 8 16 24
Mtile de subreea pot fi scrise n form zecimal punctat sau doar ca un numr care reprezint numrul de bii semnificativi ai subcmpului NET_ID al adresei IP. De exemplu adresele, 208.162.106.17 255.255.255.0 i 208.162.106.17/24 , se refer amndou la un subcmp de tipul NET_ID al unei adrese de clas C cu HOST_ID de valoare 208.162.106. Cineva ar putea citi valoarea acestui subcmp NET_ID chiar i n forma "slash-24." Mtile de subreea mai pot fi utilizate i pentru divizarea unui spaiu de adrese de lungime mare n spaii pentru subreele sau pentru a combina mai multe spaii de adres de lungime mic. n primul caz o reea i poate diviza spaiul de adrese pentru a defini mai multe subreele prin segmentarea subcmpului su HOST_ID ntr-un identificator de subreea, Subnetwork Identifier, SUBNET_ID i un cmp HOST_ID de lungime mai mic. De exemplu spaiul de adres al unei adrese de clas B, definit de utilizator 172.16.0.0, poate fi segmentat ntr-un cmp NET_ID cu o lungime de 16 bii, un cmp SUBNET_ID cu o lungime de 4 bii, i un cmp HOST_ID cu o lungime de 12 bii. n acest caz masca de subreea, folosit pentru dirijarea n INTERNET, va fi 255.255.0.0 (adic "/16"), n timp ce masca de subreea folosit pentru dirijarea n reele individuale, coninut n spaiul mai larg al adresei de clas B va fi 255.255.240.0 (adic "/20"). n continuare se prezint modul de lucru al mtii de subreea. Pentru a determina poriunea corespunztoare subreelei a adresei, se calculeaz funcia i logic ntre biii mtii i biii adresei IP. Se consider urmtorul exemplu: se consider c exist un claculator gazd cu adresa IP 172.20.134.164 i o masc de subreea 255.255.0.0 . Se convertesc cele dou valori n zecimal i n binar: 172.020.134.164 10101100.00010100.10000110.10100100 AND 255.255.000.000 172.020.000.000 11111111.11111111.00000000.00000000 10101100.00010100.00000000.00000000
Se poate determina astfel uor valoarea de NET_ID, 172.20.0.0 . Majoritatea interfeelor legturilor cu clientul dintr-o reea WAN folosesc adresa /30. Ruterul din reeaua clientului va avea dou adrese IP; una pe interfaa cu reeaua LAN, luat din spaiul de adrese IP publice ale clientului i una pe interfaa cu reeaua WAN care conduce napoi la calculatoarele gazd din reeaua considerat.
Conservarea adreselor IP
Utilizarea claselor de adrese IP ntmpin cteva obstacole. De exemplu s considerm c o organizaie are nevoie de 1000 de adrese IP. Nu se pot utiliza adrese de clas C, deoarece numrul
103
acestora este mai mic dect 1000. De aceea acea organizaie va trebui s foloseasc adrese de clas B. Dar aceast clas ofer mai mult de 64000 de adrese, n consecin 63.000 de adrese rmn nefolosite. O procedur alternativ este s i se aloce acestei organizaii un bloc de 4 adrese de clas C, ca de exemplu 192.168.128.0, 192.168.129.0, 192.168.130.0 i 192.168.131.0. Prin folosirea unei mti de subreea cu lungimea de 22 de bii, ca de exemplu 255.255.252.0 (adic /22) pentru dirjarea spre acest bloc, subcmpul de tipul NET_ID alocat acestei organizaii este 192.168.128.0. Aceast folosire a unei mti de subreea de lungime variabil se numete dirijare interdomeniu fr clas, Classless Interdomain Routing , CIDR i este descris n RFC 1518 i RFC 1519. Pentru exemplul prezentat informaia de dirijare esenial poate fi specificat ntr-o singur rubric a unui tabel de dirijare. Acest concept, pe baza cruia o adres dintr-o clas superioar poate fi nlocuit cu un bloc de adrese de clas inferioar, folosind n acest scop mti de subreea de lungime variabil, poate fi generalizat. CIDR este o contribuie important la INTERNET deoarece a permis limitarea dimensiunilor tabelelor de dirijare. n prezent, adresele IP nu sunt alocate strict pe baza principiului "Primul venit primul servit" ci ele au fost prealocate diferitelor autoriti de adresare existente n lume.
104
NetBIOS al unui calculator (de exemplu \\ALTAMONT) cu o adres IP. O baz de date local WINS poate fi creat n fiierul LMHOSTS.
Rezolvarea adreselor
Implementrile mai vechi ale protocolului IP rulau pe calculatoare gazd care erau de obicei n reele locale de tip Ethernet. Fiecare transmisie printr-o astfel de reea local coninea o adres pentru controlul accesului, medium acces control, MAC, a nodurilor surs i destinaie. Lungimea adreselor MAC este de 48 de bii. Aceste adrese nu sunt ierarhizate. De aceea nu poate fi fcut dirijarea pachetelor folosind aceste adrese. Adresele MAC nu sunt niciodat identice cu adresele IP. Cnd un calculator gazd trebuie s transmit un pachet la un alt calculator gazd din aceeai reea, protocolul de transmisie trebuie s cunoasc att adresa IP ct i adresa MAC ale destinatarului deoarece adresa IP de destinaie este plasat n pachetul IP iar adresa de destinaie MAC este plasat n cadrul de protocol LANMAC. Dac calculatorul gazd destinaie este situat ntr-o alt reea, expeditorul va trebui s caute adresa MAC a ruterului de ieire iniial al reelei. Din nefericire, protocolul IP care ruleaz pe calculatorul gazd al expeditorului poate s nu cunoasc adresa MAC a destinatarului, dac acesta este conectat la aceeai reea local. Protocolul de rezolvare a adresei, The Address Resolution Protocol , ARP, descris n RFC 826, implementeaz un mecanism prin care un anumit calculator gazd poate nva adresa MAC a unui destinatar, dac cunoate adresa IP a acestuia. Acest mecanism este relativ simplu: - expeditorul transmite o cerere ARP ntr-un cadru care conine adresa de difuzare MAC; - cererea ARP dezvluie adresa IP de destinaie i solicit adresa MAC corespunztoare; - staia din reeaua local care i recunoate propria adres IP va transmite un rspuns ARP
cu propria sa adres MAC. Au fost concepute i alte proceduri de rezolvare a adreselor. Se amintesc: Reverse ARP (RARP), care permite unui calculator fr harddisk s-i afle propria adres IP pe baza cunoaterii propriei adrese MAC. Inverse ARP (InARP), care realizeaz o coresponden ntre o adres IP i un identificator de circuit virtual, a frame relay virtual circuit identifier, ATMARP i ATMInARP, care realizeaz o coresponden ntre o adres IP i un identificator de cale/canal ATM, ATM virtual path/channel identifiers, LAN Emulation ARP (LEARP), care realizeaz o coresponden ntre o adres ATM de destinatar i adresa sa de emulare n reeaua local, LAN Emulation (LE) address (care ia forma unei adrese MAC de tipul IEEE 802).
Dirijarea IP: OSPF, RIP i BGP La fel ca i un protocol de nivel reea, specific pentru modelul OSI, protocolul IP are responsabilitatea de a dirija pachetele de date. El realizeaz aceast funcie cutnd ntr-un tabel de dirijare valoarea din subcmpul IP NET_ID din structura adresei IP a pachetului curent. Dar completarea tabelelor de dirijare nu este sarcina protocolului IP ci a protocoalelor de dirijare. Exist trei protocoale de dirijare asociate de obicei cu protocolul IP i cu INTERNET-ul: RIP, OSPF i BGP. Protocoalele de dirijare OSPF i RIP au fost utilizate la nceput pentru dirijare n cadrul unui anumit domeniu, ca de exemplu ntr-o reea de intreprindere. Cea de a doua versiune a protocolului numit de "Dirijare a informaiilor", The Routing Information Protocol version 2 (RIP-2),este descris n RFC 2453 i prezint modul n care ruterele fac schimb de informaii de dirijare folosind un algoritm bazat pe vectori de distan. Cnd se utilizeaz protocolul RIP, ruterele vecine, schimb ntre ele periodic, tabelele lor de dirijare, complete. Ca o msur a costului unei legturi, protocolul RIP folosete numrul de rutere care trebuiesc traversate pentru realizarea acelei legturi. Cea mai scump legtur poate fi fcut prin intermediul a 16 rutere intermediare. Datorit creterii rapide a reelei INTERNET acest protocol a devenit ineficient. Protocoalele de dirijare n reele locale care se folosesc n prezent se bazeaz pe protocolul RIP dar se asociazi cu alte programe. Aceste protocoale sunt: NetWare, AppleTalk, VINES i DECnet. Protocolul numit "Cea mai scurt legtur mai nti", The Open Shortest Path First, OSPF, este un
105
algoritm de dirijare bazat pe analiza strilor legturilor i este mai robust dect protocolul RIP, algoritmul care st la baza sa converge mai rapid, necesit o band de frecven a reelei mai ngust, i este mai potrivit pentru implementarea n reele de mari dimensiuni. Dac un ruter utilizeaz acest protocol el trebuie s difuzeze informaii referitoare doar la schimbarea strilor legturilor pe care le guverneaz, i nu ntregul su tabel de dirijare. Versiunea a doua a protocolului OSPF este descris n RFC 1583 i a nlocuit protocolul RIP pentru comunicaiile din reeaua INTERNET. Cea de a patra versiune a protocolului numit "Poart la frontier", The Border Gateway Protocol version 4 , BGP-4, este un protocol de comunicaii externe, fiind folosit s realizeze schimbul de informaii ntre domeniile de dirijare INTERNET. La fel ca i RIP, protocolul BGP se bazeaz pe un algoritm de msurare a unui vector de distan, dar spre deosebire de alte protocoale care se bazeaz pe algoritmi similari, n tabelele de dirijare BGP sunt nscrise informaii despre drumul care trebuie parcurs spre reeaua de destinaie. Protocolul BGP-4 permite i dirijarea pe baze politice. Acest tip de dirijare permite unui administrator de reea s creeze politici de dirijare bazate pe aspecte politice, de securitate, legale, sau economice, pe lng cele tehnice. Protocolul BGP-4 permite i utilizarea dirijrii CIDR. Acest protocol este descris n RFC 1771 n timp ce RFC 1268 descrie utilizarea protocolului BGP n INTERNET. Ca o alternativ la folosirea unui protocol de dirijare, un tabel de dirijare poate fi ntreinut i folosind "dirijarea static". Un exemplu de dirijare static este configurarea unui ruter de ieire iniial al unei reele locale. Dac un calculator gazd dintr-o reea local trebuie s transmit un pachet n exteriorul acelei reele, el transmite "orbete" acel pachet la ruterul de ieire iniial al acelei reele. Toate calculatoarele gazd care utilizeaz protocolul IP i toate ruterele care utilizeaz acest protocol, ntrein cte un tabel n care sunt nregistrate cele mai proaspete informaii de dirijare pe care le cunoate calculatorul respectiv. n cazul calculatoarelor care utilizeaz sistemul de operare WINDOWS, acest tabel de dirijare poate fi examinat cu ajutorul unei comenzi de listare a dirijrii iar n cazul calculatoarelor care utilizeaz sistemul de operare UNIX, n acelai scop se poate utiliza comanda netstat-r.
106
- Comunicaia se face cu ajutorul prestatorilor de servicii. Un exemplu de adres IP , Unicast, este 010, regionID, providerID, subscriberID, subnetID, intefaceID. - O mai bun implementare a tipurilor de trafic care au diferite obiective de calitate a servicilor, - Posibilitatea securizrii comuncaiilor prin implementarea unor mecanisme de autentificare, control al integritii datelor i control al respectrii confidenialitii datelor. Arhitectura i structura adreselor pentru IPv6 sunt descrise n RFC 2373. Formatul pachetelor Ipv6 este prezentat n figura urmtoare. 0 4 8 1 2 3
Porturi
Aplicaiile de nivel nalt sunt semnalizate n mesajele TCP/UDP printr-un identificator de port. Identificatorul de port i adresa IP formeaz mpreun un socket, iar comunicaia capt la capt ntre dou calculatoare gazd este identificat n mod unic n INTERNET prin mulimea de patru identificatori (portul sursei, adresa sursei, portul destinaiei i adresa destinaiei). Numerele de porturi se exprim pe 16 bii. Numerele de port cuprinse ntre 0 i 1023 corespund unor porturi numite, porturi
107
foarte bine cunoscute, Well Known Ports. Aceste numere sunt alocate n general server-elor aplicaiilor i pot fi utilizate doar de procese privilegiate, cum este de exemplu root sau administrator. Numerele de port din domeniul 1024-49151 corespund unor porturi numite porturi nregistrate, Registered Ports i aceste numere au fost definite n mod public prin acordul ntregii comuniti INTERNET, pentru a evita conflictul ntre diferii vnztori. Numerele de port din aceast categorie pot fi folosite att de aplicaii de client ct i de aplicaii de server. Numerele de port rmase, din domeniul 49152-65535, corespund unor porturi numite dinamice i/sau private, Dynamic and/or Private Ports i pot fi folosite liber de orice client sau orice server. Printre numerele de porturi sunt: Numrul portului 7 80 9 110 13 111 19 119 20 123 21 137 23 138 25 139 37 143 43 161 53 162 67 179 68 443 69 520 70 1080 79 33434 Protocolul comun TCP TCP TCP TCP TCP TCP TCP TCP TCP UDP TCP UDP TCP UDP TCP TCP UDP TCP TCP UDP TCP/UDP UDP UDP TCP UDP TCP UDP UDP TCP TCP TCP UDP Serviciu Ecou http Eliminare Pop 3 Data daytime Sunrpc Chargen nntp ftp-control Ntp ftp-data netbios-ns telnet netbios-dgm Smtp Imap Time Imap Whois Snmp Dns snmp-trap Bootps Bgp Bootpc https (http/ssl) Tftp Rip Gopher Socks Finger Traceroute
Protocolul TCP
Acest protocol este descris n RFC 793 i realizeaz un serviciu de comunicaii prin circuit virtual (orientat pe conexiune) de-a lungul reelei. TCP include nfiinarea i desfinarea de circuite virtuale, reguli pentru formatarea mesajelor, reguli de segmentare, reguli de controlul traficului i reguli de corecie a erorilor. Majoritatea aplicaiilor din irul de protocoale TCP/IP funcioneaz pe baza serviciului de transport implementat de protocolul TCP. Unitatea de date pentru protocolul TCP este numit segment. Aceast denumire este justificat de faptul c protocolul TCP nu recunoate mesaje, ci transmite blocuri de octei din structura irului de date care trebuie schimbat ntre expeditor i
108
destinatar. Cmpurile unui astfel de segment sunt prezentate n figura urmtoare i au semnificaia descris n continuare.
Porturile surs i destinaie, Source Port i Destination Port: identific porturile surs i destinaie pentru a identifica legtura capt la capt i aplicaiile de nivel nalt. Numrul de secven, Sequence Number: conine numrul primului octet de date al segmentului curent, din cadrul ntregului ir de octei. Deoarece numrul de secven se refer la o numrtoare de octei i nu la o numrtoare de segmente numerele de secven pentru segmente succesive nu apar n succesiune. Numrul de validare, Acknowledgment Number: Este folosit de expeditor pentru a valida recepia datelor. Acest cmp indic numrul de secven al urmtorului octet ateptat de la destinatar. Alunecarea datelor, Data Offset: Trimite la primul octet de date din segmentul curent. Acest cmp indic i lungimea antetului segmentului. Stegulee de control, Control Flags: O mulime de stegulee de control care controleaz unele aspecte ale conexiunilor virtuale TCP. Steguleele includ: Stegule de urgen maxim, Urgent Pointer Field Significant, URG : Cnd este setat indic faptul c segmentul curent conine date de mare prioritate i c valoarea din cmpul Urgent Pointer este valid. Stegule de validare, Acknowledgment Field Significant, ACK: Cnd este setat, indic faptul c valoarea cuprins n cmpul Acknowledgment Number field este valid. De obicei acest bit este setat, cu excepia perioadei de stabilire a conexiunii pentru primul mesaj. Stegule de forare, Push Function, PSH: Este folosit cnd aplicaia de transmisie vrea s foreze protocolul TCP s transmit imediat datele care sunt n registre, la acel moment, fr a atepta ca
109
aceste registre s se umple. Acest stegule este util pentru transmiterea unor uniti mici de date. Stegule de reset-are a conexiunii, Reset Connection, RST: Cnd este setat ntrerupe imediat conexiunea TCP ntre capete. Stegule de sincronizare cu numrul de secven, Synchronize Sequence Numbers, SYN: setat n segmentele iniiale folosite pentru stabilirea unei conexiuni, indic faptul c segmentul curent conine numrul de secven iniial. Stegule de sfrit, Finish, FIN: Setat cere terminarea normal a conexiunii TCP n direcia n care segmentul curent traverseaz reeaua. nchiderea complet a conexiunii cere s se transmit cte un segment cu steguleul FIN setat n fiecare direcie. Stegule fereastr, Window: este utilizat pentru controlul traficului, conine valoarea dimensiunii ferestrei de recepie adic numrul octeilor transmii pe care expeditorul segmentului curent este dispus s-i accepte de la destinatar. Stegule de sum de control, Checksum: Permite o detecie rudimentar de eroare de bit pentru segment, att pentru antet ct i pentru date. Stegule de urgen, Urgent Pointer: Datele "urgente" reprezint acele date care au fost marcate ca prioritare de ctre o aplicaie de nivel nalt. Aceste date ocolesc de obicei sistemul uzual de registre TCP i sunt plasate ntr-un segment ntre antet i datele normale. Pointer-ul de urgen, care este validat cnd steguleul URG este setat, indic poziia primului octet de date nc neexpediat din segment. Steguleul opiuni, Options: este folosit la stabilirea conexiunii pentru a permite negocierea unor opiuni. Opiunea cel mai des utilizat este dimensiunea maxim a segmentului, maximum segment size, MSS. Dac aceasta nu este specificat atunci se alege valoarea iniial de lungime maxim a segmentului de 536. O alt opiune este cea de validare selectiv, Selective Acknowledgement (SACK), care permite ca segmente din exteriorul secvenei de segmente s fie acceptate de ctre un receptor. Protocolul UDP Protocolul UDP, descris n RFC 768, ofer un serviciu de transfer de pachete ntre capete fr conexiune. Unele aplicaii, cum ar fi cele care implic o cerere simpl i un rspuns sunt mai potrivite pentru protocolul UDP deoarece nu se mai pierde timp cu construcia i distrugerea circuitului virtual.
Cea mai important funcie a protocolului UDP este s adauge un numr de port la adresa IP pentru a se obine un socket pentru aplicaia avut n vedere. Cmpurile unui pachet UDP sunt prezentate n figura urmtoare iar semnificaia lor este prezentat n continuare. Portul surs, Source Port: Identific portul UDP folosit de ctre expeditorul pachetului. Utilizarea acestui cmp este opional n protocolul UDP i poate fi setat pe 0. Portul destinaie, Destination Port: Identific portul folosit de ctre receptorul pachetului. Lungimea, Length: Indic lungimea total a pachetului UDP.
110
Sum de control, Checksum: Realizeaz o detecie rudimentar pentru pachet, incluznd antetul i datele.
Protocolul ICMP
Protocolul de control al mesajelor pe INTERNET, descris n RFC 792, este un protocol ajuttor pentru IP, care informeaz expeditorul pachetelor IP despre evenimente anormale. Acest protocol colateral are o importan particular n aplicaiile IP. ICMP nu este un protocol clasic capt la capt ca TCP sau UDP. El este capt-la capt n sensul c un dispozitiv (de exemplu un ruter sau un calculator) trimite un mesaj la un alt dispozitiv (de exemplu un alt calculator sau ruter). Cele mai frecvent utilizate tipuri de mesaje folosite de ICMP sunt: Mesajul Destinaie de neatins, Destination Unreachable: Indic faptul c un pachet nu poate fi livrat deoarece calculatorul destinaie nu poate fi atins. Motivul pentru care destinatarul nu poate fi atins este c acel calculator este necunoscut, dei era cerut fragmentarea, aceasta nu a fost realizat (steguleul DF este setat), reeaua sau calculatorul destinaie nu poate fi atins de acest tip de serviciu. Mesajul Ecou i rspuns la ecou: Echo and Echo Reply, Aceste dou mesaje se folosesc pentru a verifica dac un anumit calculator gazd poate fi atins sau nu ntr-o anumit reea. Un calculator gazd trimite un mesaj ecou unui alt calculator gazd, care poate conine nite date i calculatorul care recepioneaz acest mesaj rspunde cu mesajul de rspuns la ecou, care conine aceleai date. Aceste mesaje stau la baza comenzii Ping. Mesajul Probleme, Parameter Problem: Indic faptul c un ruter sau un calculator gazd ntmpin o anumit problem referitoare la antetul pachetului curent. Mesajul Redirectare, Redirect: Este folosit de un calculator gazd sau de un ruter pentru a informa expeditorul c pachetele trebuie transmise la o alt adres. Din motive de securitate mesajele de redirectare trebuiesc blocate de ctre dispozitivele de tip firewall. Mesajul de congestie, Source Quench: Este transmis de un ruter pentru a indica faptul c este congestionat, datorit umplerii tuturor registrelor sale de date i c distruge pachete. Mesajul de depire de timp, TTL Exceeded: Indic faptul c un pachet a fost distrus pentru c n cmpul su TTL a fost nscris un 0 sau pentru c nu a fost recepionat ntregul pachet nainte de expirarea timpului de fragmentare. Mesajul de tampil temporal i mesajul de rspuns la tampila temporal: Aceste mesaje sunt asemntoare mesajelor de ecou, dar plaseaz o tampil temporal (cu o granularitate de ordinul milisecundelor) n cadrul mesajului, crend o msur a timpului pierdut de sistemele acionate la distan pentru ncrcarea n registre i prelucrarea pachetelor de date i un mecanism care s permit calculatoarelor gazd s-i sincronozeze ceasurile. Mesajele ICMP sunt transportate de ctre pachetele IP.
111
cmpul numrului de acceptare este valid iar valoarea 801 pentru ACK este modalitatea n care server-ul indic ISN-ul clientului. Partea final a acestei etape iniiale de stabilire a conexiunii presupune trimiterea de ctre client a unui segment n care i bitul de acceptare este setat. Trebuie notat c n cmpul de numr de acceptare treebuie s se gseasc o valoare mai mare dect ISN-ul server-ului. Aceast faz de stabilire a conexiunii se mai numete i schimbare de bii de sincronizare i acceptare, exchange of "syn, syn/ack, and ack" segments. CLIENT SERVER syn, SEQ=800 1 -----------------------------------------------> 1 src_port=1967, dst_port=110 1 1 syn, ack, SEQ=1567, ACK=801 1 CONNECTION <----------------------------------------------------1 src_port=110, dst_port=1967 1 ESTABLISHMENT 1 ack, SEQ=801, ACK=1568 1 ---------------------------------------------------->1 src_port=1967, dst_port=110 1 ack, SEQ=1568, ACK=801 2 <-----------------------------------------------------2 src_port=110, dst_port=1967 2 DataLen=18 (POP3 Server V1.12\n) 2 2 ack, SEQ=801, ACK=1586 2 ----------------------------------------------------->2 src_port=1967, dst_port=110 2 DataLen=5 (quit\n) 2 DATA 2 EXCHANGE ack, SEQ=1586, ACK=806 2 <------------------------------------------------------2 src_port=110, dst_port=1967 2 DataLen=9 (Sayonara\n) 2 2 ack, SEQ=806, ACK=1595 2 ------------------------------------------------------->2 src_port=1967, dst_port=110 2 fin, ack, SEQ=806, ACK=1595 3 -------------------------------------------------------> 3 src_port=1967, dst_port=110 3 3 ack, SEQ=1595, ACK=807 3 <-------------------------------------------------------3 src_port=110, dst_port=1967 3 CONNECTION 3 fin, ack, SEQ=1595, ACK=807 3 TERMINATION <-------------------------------------------------------3 src_port=110, dst_port=1967 3 3 ack, SEQ=807, ACK=1596 3 -----------------------------------------------------> 3 src_port=1967, dst_port=110 3
Figura 9 Internet. Fazele conectrii TCP.
112
Ea este foarte important din mai multe motive. Persoanelor care examineaz urmele pachetelor, recunoaterea fazei de iniializare le permite gsirea nceperii conexiunii. Pentru dispozitivele de tip firewalls, proxy server, intrusion detector, aceast faz de stabilire a conexiunii este o cale de cunoatere a programrii direciei conexiunii TCP, ceea ce este important deoarece regulile de conectare pot diferi pentru conexiuni din interiorul respectiv cu exteriorul unei reele. Urmtoarea faz a legturii TCP este schimbul de date. Prezentarea care urmeaz este destinat doar exemplificrii, referindu-se la un POP server, care transmite un mesaj de uz general sitemului client, acesta transmite comanda de terminare, the "quit" command, i server-ul semnalizeaz terminarea, sign off. Cu "\n" s-a notat sfritul de linie. Aceste segmente ilustreaz modificrile i relaiile dintre numerele de secven ale clientului i server-ului i numerele de acceptare ale acestora. Faza final a legturii TCP este terminarea conexiunii. Dei legturile TCP sunt duplex (chiar dac o aplicaie dat nu asigur comunicarea simultan bidirecional), protocolul TCP vede conexiunea ca i o pereche de legturi simplex. De aceea terminarea conexiunii necesit patru segmente, sau mai precis dou perechi de segmente. n acest caz clientul trimite server-ului un segment cu biii de terminare, finbits i cu biii de acceptare, ack-bits, setai, server-ul rspunde cu un segment n care doar bitul de acceptare este setat iar numrul de validare, the Acknowledgment Number este incrementat. Apoi server-ul transmite un segment de acceptare a finalizrii, a fin/ack segment, clientului. Descrierea deja fcut se refer la un "scenariu" normal pentru realizarea unei legturi TCP ntre un client i un server. Dou calculatoare gazd UDP comunic ntr-un mod asemntor; unul dintre ele trimite un pachet UDP celuilalt, care se presupune c "ascult" la portul indicat pachetul curent. n continuare se explic ce se ntmpl atunci cnd cellalt calculator nu "ascult" la portul pe care legtura l estimeaz sau atunci cnd cellalt calculator nu exist. Cellalt calculator gazd nu "ascult" la portul TCP: Dac calculatorul A ncearc s contacteze calculatorul B la un port TCP la care calculatorul B nu "ascult", calculatorul B rspunde cu un segment TCP cu steguleele de reset, RST i de acceptare, acknowledge, ACK, setate. Cellalt calculator nu ascult la portul UDP: Dac calculatorul A ncearc s contacteze calculatorul B la un port UDP la care calculatorul B nu "ascult", calculatorul B trimite un mesaj de tip ICMP de imposibilitate a atingerii portului, calculatorului A. Cellalt calculator nu exist: Dac calculatorul A ncearc s contacteze calculatorul B i acesta nu "ascult" (de exemplu adresa IP a calculatorului B nu exist sau nu este disponibil), ruterul de subreea al calculatorului B va transmite un mesaj de tip ICMP de imposilibitate a atingerii calculatorului B, calculatorului A. Nivelul de aplicaie TCP/IP Protocoalele TCP/IP de nivel aplicaie ajut la implementarea tuturor aplicaiilor (utilitilor) pe care le ofer INTERNET-ul. n continuare se va prezenta o list a acestor aplicaii. Aplicaii TCP i UDP n continuare se prezint protocoalele de acest tip cel mai frecvent utilizate. Archie: Un utilitar care permite unui utilizator s caute n toate site-urile unde exist acces anonymous-ftp toate fiierele aprinnd unei anumite tematici. Acest protocol este actual depit moral fiind nlocuit de protocolul World Wide Web. BGP-4, The Border Gateway Protocol version 4: este un protocol de dirijare bazat pe utilizarea unui vector de distan n nodurile care sunt conectate prin mai multe legturi. DNS, The Domain Name System : este un protocol care definete structura numelor pe INTERNET i modul lor de asociere cu adrese IP precum i asocierea potei electronice i a serverelor de nume cu diferite domenii. Finger: este un protocol folosit pentru determinarea strii altor calculatoare gazd i/sau utilizatori (RFC 1288).
113
FTP, The File Transfer Protocol: este un protocol care permite unui utilizator s transfere fiiere spre respectiv dinspre calulatoare gazd aflate la distan, (RFC 959). Gopher: este un utilitar care permite utilizatorilor s caute date memorate pe alte calculatoare gazd folosind o interfa ierarhizat, comandat printr-un meniu. Acest protocol este deja depit moral, fiind nlocuit de protocolul World Wide Web, WWW (RFC 1436). HTTP, The Hypertext Transfer Protocol : este protocolul de baz pentru schimbul de informaii prin World Wide Web. n prezent sunt utilizate n INTERNET diferite versiuni de HTTP, dar cea folosit cel mai frecvent este versiunea 1.0 (RFC1945). Paginile WWW sunt de obicei concepute cu ajutorul limbajului Hypertext Markup Language (HTML), care se baeaz pe codul ASCII i este un limbaj independent de platforma pe care ruleaz aplicaiile sale, (RFC 1866). IMAP, The Internet Mail Access Protocol : este un protocol care reprezint o alternativ la protocolul POP, fiind o interfa ntre un utilizator al unui serviciu de pot electronic i server-ul de pot electronic corespunztor. Acest protocol este folosit pentru a tansfera mesaje de pot electronic de la server la client. El asigur o mare flexibilitate n gestionarea cutiei potale, mailbox, a utilizatorului. OSPFv2, The Open Shortest Path First version 2 : este un protocol de dirijare a strilor legturilor ntr-o reea de organizaie. Este protocolul preferat de dirijare interioar. Ping, The Packet Internet Groper: este un utilitar care permite unui utilizator s determine starea altor calculatoare gazd i ntrzierea cu care este livrat un anumit mesaj acelui calculator gazd. Folosete mesaje de ecou ICMP. POP, The Post Office Protocol : definete o interfa simpl ntre un soft de utilizator de tip client de pot electronic (ca de exemplu Eudora, Outlook sau programul de e-mail al cuttorului pe INTERNET) i un server de pot electronic folosit pentru transferul mesajelor de pot electronic de la un server la un client i permite utilizatorului s-i administreze cutia potal. Versiunea folosit curent este POP3, (RFC 1460). RADIUS, The Remote Authentication Dial-In User Service, este un protocol de acces la distan. RIP, The Routing Information Protocol, este un protocol de dirijare bazat pe msurare de distane ntr-o reea de organizaie. SSH, The Secure Shell, este un protocol care permite conectarea la un calculator gazd sau la un terminal virtual aflat la distan prin intermediul INTERNET-ului. Acest protocol seamn mult cu protocolul Telnet. Spre deosebire de acesta, protocolul SSH presupune criptarea parolelor i a datelor transmise. Acest protocol permite comunicaia criptat ntre claculatoare gazd care nu sunt considerate de ncredere printr-o reea considerat nesigur. Utilizarea sa presupune c pot exista persoane externe care s "asculte" comunicaia respectiv. Acest protocol implementeaz i unele metode de autentificare. Funcionarea sa se bazeaz pe criptarea datelor care sunt schimbate n cadrul acelei comunicaii. Acest protocol a fost conceput ca s nlocuiasc alte protocoale considerate nesigure cum ar fi de exemplu rlogin sau rsh. Pot fi realizate i transferuri sigure de fiiere folosind acest protocol. Este un protocol foarte popular i utilizat frecvent, dar nu invulnerabil. Acest protocol suport trei tipuri de autentificare: - de tip rhosts: numele utilizatorului sau al sistemului sunt disponibile n directoarele ~/.rhosts, sau ~/.shosts. Acest mod de autentificare este vulnerabil la atacuri asupra IP/DNS i cere un mod specific de compilare. - bazat pe calculatoarele gazd: folosete sistemul de criptare RSA pentru a verifica cheile calculatoarelor gazd i folosete fiierul ~/.rhosts pentru autentificarea utilizatorului. - bazat att pe calculatoarele gazd ct i pe utilizator: realizeaz att verificarea cheilor calculatoarelor gazd ct i ale utilizatorilor folosind sistemul de criptare RSA. - dac procedura de autentificare d gre se cere parola clientului. O variant a acestui protocol SSH1, permite schimbul de chei de criptare. Aceast variant este descris pe scurt n continuare. Server-ul are o pereche de chei, una public i una privat. Clientul cunoate dinainte cheia public a server-ului. Aceasta trebuie s i fi fost trimis printr-un canal sigur. Server-ul trimite cheia public i o cheie aleatoare clientului. Clientul verific cheia public. Clientul trimite cheia sesiunii (care este aleatoare) criptat folosind cheia clientului i cheia server-ului. Restul datelor este criptat cu cheia sesiunii.
114
Pentru schimbul de chei poate fi utilizat i o alt variant de protocol SSH, numit SSH2. Aceasta este descris pe scurt n continuare. De aceast dat este utilizat algoritmul de schimb de chei publice Diffie-Hellman. Identitile server-ului i clientului pot fi verificate folosind semnturi digitale. La sfritul schimbului de chei, o cheie secret este mprit de ctre cei doi utilizatori aflai n comunicaie, pentru schimbul de date care urmeaz. Aceste date sunt criptate cu unul dintre algoritmii de cifrare cu cheie secret: IDEA (algoritmul cu care protocolul este iniializat), Blowfish, DES, DES triplu, etc. Aceast variant de algoritm SSH folosete i verificri de sume de control de tip MD5, pentru stabilirea integritii datelor. SMTP, The Simple Mail Transfer Protocol: este un protocol standard pentru pota electronic pe INTERNET, (RFC 821). SMTP este folosit ntre server-e de e-mail, pe INTERNET, sau ca s permit unui client al unui serviciu de pot electronic s transmit un mesaj spre un server. Formatul mesajului este descris n RFC 822. Extensiile MIME (Multipurpose Internet Mail Extensions), (care se pot aduga la mesaj) sunt descrise n RFC 1521 i n RFC 1522. SNMP, The Simple Network Management Protocol: definete proceduri i baze de date coninnd informaii de management pentru administrarea dispozitivelor de reea care folosesc protocoalele TCP/IP. Protocolul SNMP, descris n RFC 1157 este utilizat frecvent n reele LAN i WAN. Protocolul SNMP Version 2 este descris n RFC 1441 i adaug mecanisme de securitate la protocolul SNMP. Este un protocol foarte complex a crui utilizare se rspndete rapid n prezent. SSL, The Secure Sockets Layer : este proiectat de Netscape i implementeaz un mecanism de comunicare sigur pe INTERNET bazat pe criptografie cu chei publice i certificate. Cea mai cunoscut aplicaie a SSL este HTTP cu SSL, https. Cea mai nou versiune de SSL este numit TLS, Transport Layer Security i este descris n RFC 2246. Totui aceast versiune nu are un specific HTTP; protocoale ca IMAP4 (imaps), FTP (ftps), Telnet (telnets), i POP3 (pop3s) au posibilitatea s opereze n cooperare cu SSL. TACACS+, The Terminal Access Controller Access Control System plus: este un protocol de acces la distan. Telnet, (prescurtare de la Telecommunication Network): este un protocol de terminal virtual care permite unui utilizator care este deja conectat la un calculator gazd aflat la distan s acceseze i alte calculatoare gazd aflate la distan, sau alte reele. Acest protocol este descris n RFC 854. TFTP, The Trivial File Transfer Protocol, este un protocol specializat pentru unele aplicaii simple de transfer de fiiere. Time/NTP, Time and the Network Time Protocol: sunt protocoale utilizate pentru sincronizarea calculatoarelor gazd cu server-e INTERNET bine cunoscute. Traceroute: este un utilitar care afieaz drumul pe care l iau pachetele prin INTERNET ntre un calculator local i un calculator gazd aflat la distan. Aceast comand este disponibil pe calculatoare nzestrate cu sistemul de operareLinux/Unix. i calculatoarele nzestrate cu sistemul de operare Windows, ncepnd cu Windows 95 au un utilitar tracert. Whois/NICNAME: sunt utilitare de cutare n baze de date. Ele caut informaii despre domeniile INTERNET i despre conectarea la acestea. Aceste utilitare sunt descrise n RFC 954.
115
116
Partea de sus prezint un rezumat al cadrelor care au fost capturate n registrul analizorului de protocoale. n exemplul considerat este vorba despre cadrele cu numerele de ordine cuprinse ntre 77 i 80. Aceste numere de ordine sunt afiate pe coloana 1. Pe colana a doua sunt afiate lungimile cadrelor de pe coloana 1 (n octei). Este folosit formatul de cadru Ethernet II, (specificat pe coloana a 3-a). Urmtoarele dou coloane prezint adresele de surs i de destinaie; n acest exemplu sunt dou staii care comunic ntre ele, numite INSTRUCTOR (server-ul) i WINPHAROAH (clientul). La dreapta antetului de informaii Ethernet este antetul de pachet IP. Pachetul din exemplul considerat utilizeaz protocolul IP varianta 4, are o lungime de 53 de octei i transport un segment TCP. Mai trebuie notat c acest pachet a fost trimis de la client spre server. Dup informaia IP urmeaz informaia TCP. Numrul portului destinaie este 110, adic portul asociat cu un server POP3. Deoarece portul de destinaie este POP3 nseamn c pachetul acesta conine o comand POP pentru server din partea clientului (pe care o puteam ti i consultnd rezumatul cadrul vecin, cu numrul 80). n sfrit se vede nsi comanda POP3. Cnd un client POP3 se conecteaz la server, primul lucru pe care el trebuie s-l fac este s trimit numele de utilizator folosind comanda POP3 USER. Dac numele de utilizator este valid, server-ul cere o parol, care este transmis de utilizator cu ajutorul unei comnezi POP3 PASS (care este de asemenea prezentat n figur). Trebuie observat c aceast parol este tranmis n form necriptat. Cele prezentate mai sus au rolul de a deschide doar apetitul cititorului pentru unul dintre cele mai utile echipamente care pot fi utilizate n comunicaiile de date, analizorul de protocoale. Acest tip de echipament este foarte util i pentru managerii de reele respectiv pentru administratorii de securitate. Exist n prezent un numr destul de mare de pachete de programe de analiz de protocoale gratuite sau la preuri rezonabil de mici att pentru sistemul de operare Linux ct i pentru Windows. Unul dintre cele mai populare este: tcpdump (care poate fi achiziionat de la adresa http://www.tcpdump.org). Analizorul de protocoale cel mai utilizat n prezent este WireShark : http://download.kappa.ro/action__file/id__5157
6.1.3. Concluzii
Cum s-a artat mai sus, TCP/IP nu reprezint o pereche de protocoale de comunicaie ci o familie de protocoale, aplicaii i utilitare. Din ce n ce mai des, aceste protocoale sunt numite stiv de protocoale INTERNET dar vechiul nume va mai fi folosit nc mult vreme. n figura urmtoare se prezint relaiile dintre diferitele niveluri de protocoale TCP/IP.
117
Aplicaiile i utilitarele se grupeaz n calculatoarele gazd sau n sistemele de comunicaie de capt. TCP realizeaz o legtur prin circuit virtual de ncredere, ntre cele dou calculatoare gazd. IP realizeaz un serviciu de transport al pachetelor prin orice subreea aflat pe drum (indiferent dac este de tipul LAN sau WAN. Pentru dispozitivul de interconectare a celor dou reele se folosete termenul gateway. Acesta este de obicei un ruter n cazul LAN-urilor sau un sistem intermediar n cazul n care este vorba despre o legtur de tip OSI. n terminologie OSI un dispozitiv de tip gateway este folosit pentru a realiza conversia de protocol ntre dou subreele i/sau aplicaii.
Prescurtri folosite
ARP-Address Resolution Protocol ARIN-American Registry for Internet Numbers ARPANET-Advanced Research Projects Agency Network ASCII-American Standard Code for Information Interchange ATM-Asynchronous Transfer Mode BGP- Border Gateway Protocol BSD-Berkeley Software Development CCITT-International Telegraph and Telephone Consultative Committee CIX-Commercial Internet Exchange CDPD-Cellular Digital Packet Data protocol CSLIP-Compressed Serial Line Internet Protocol DARPA-Defense Advanced Research Projects Agency DDP-Datagram Delivery Protocol DDS-Digital data service DNS-Domain Name System DOCSIS-Data Over Cable System Interface Specification DoD-U.S. Department of Defense DWDM-Dense Wave Division Multiplexing FAQ-Frequently Asked Questions lists FDDI-Fiber Distributed Data Interface FTP-File Transfer Protocol FYI-For Your Information series of RFCs GOSIP-U.S. Government Open Systems Interconnection Profile
118
HDLC-High-level Data Link Control HTML-Hypertext Markup Language HTTP-Hypetext Transfer Protocol IAB-Internet Activities Board IANA-Internet Assigned Numbers Authority ICANN-Internet Corporation for Assigned Names and Numbers ICMP-Internet Control Message Protocol IESG-Internet Engineering Steering Group IETF-Internet Engineering Task Force IMAP-Internet Message Access Protocol InterNIC-Internet Network Information Center IP-Internet Protocol IPX-Internetwork Packet Exchange ISDN-Integrated Services Digital Network ISO-International Organization for Standardization ISOC-Internet Society ITU-T - International Telecommunication Union Telecommunication Standardization Sector MAC-Medium (or media) access control Mbps-Megabits (millions of bits) per second NICNAME-Network Information Center name service NSF-National Science Foundation NSFNET-National Science Foundation Network NTP-Network Time Protocol OSI-Open Systems Interconnection OSPF-Open Shortest Path First PING-Packet Internet Groper POP3-Post Office Protocol v3 PPP-Point-to-Point Protocol RADIUS-Remote Authentication Dial-In User Service RARP-Reverse Address Resolution Protocol RIP-Routing Information Protocol RFC-Request For Comments SDH-Synchronous Digital Hierarchy SLIP-Serial Line Internet Protocol SMDS-Switched Multimegabit Data Service SMTP-Simple Mail Transfer Protocol SNAP-Subnetwork Access Protocol SNMP-Simple Network Management Protocol SONET-Synchronous Optical Network SSL-Secure Sockets Layer STD-Internet Standards series of RFCs TACACS+ - Terminal Access Controller Access Control System plus TCP-Transmission Control Protocol TFTP-Trivial File Transfer Protocol TLD-Top-level domain UDP-User Datagram Protocol WAP-Wireless Application Protocol XDSL-Digital Subscriber Line family of technologies
atacuri individuale dintre cele mai diverse. Soluiile sugerate mpotriva acestor pericole constau ntr-o bun alegere a parolelor, inerea confidenial a conturilor i folosirea lor doar de ctre
proprietar, precum i eliminarea unor "guri" de securitate, detectate la programe de tipul sendmail sau login. Mai trziu, n anii 90, INTERNET-ul a continuat s fie atacat, cu mijloace i metode mai elaborate: - Captatorii de parole intercepteaz parole sau alte informaii sensibile care trec prin reea; - Atacurile cu nregistrri IP vechi au fost utilizate pentru a se asigura penetrarea ilegal a unor calculatoare gazd, - Furtul conexiunilor a fost folosit pentru a obine controlul asupra unor sesiuni deschise, - Inserarea de date vechi sau false a fost folosit de atacatori pentru a compromite integritatea unor fiiere sau programe. Nici protocoalele IP nu sunt suficient de bine protejate mpotriva unor astfel de atacuri. Dei au fost concepute s lucreze n medii ostile, fcnd fa unor cderi de calculatoare pe anumite rute, protocoalele IP sunt vulnerabile la atacuri extinse, provenind din partea unor calculatoare legitime. De asemenea, n structura lor original nu au fost prevzute soluii de securitate cum ar fi autentificarea, secretizarea, etc. Astfel de soluii sunt pe cale de a fi introduse n noile variante de protocoale IP. Protocoalele IP au fost concepute pentru a permite transferul de pachete ntre dou calculatoare ale reelei. Ele nu sesizeaz i nici nu mpiedic ca alte calculatoare ale aceleiai reele s intercepteze i s citeasc aceste pachete n timp real. Acest tip de atac se numete ascultarea liniei, eavesdropping, sau captarea pachetelor, packet sniffing. n continuare se prezint cteva dintre vulnerabilitile specifice diferitelor medii de transmisie a pachetelor ntre calculatoare: Ethernet. Posibilitatea interceptrii este ridicat, aceste reele fiind de tip broadcast (orice calculator din reea poate transmite un mesaj tuturor celorlalte calculatoare din reea), ceea ce asigur accesul tuturor calculatoarelor la cadrele (secvene de pachete) transmise. Cele mai frecvente atacuri de acest tip sunt fcute de programe care se execut pe aceeai reea local cu router-ul, interceptnd pachetele transmise acestuia. Linii telefonice. Posibilitatea interceptrii este medie, deoarece cere o cooperare cu compania de telefoane sau un acces fizic la liniile de telefon. La modemurile de mare vitez interceptarea devine mai dificil datorit folosirii mai multor frecvene. Cablul TV. Posibilitatea interceptrii este ridicat datorit posibilitii de acces la cablul TV, pe care se tansmit att semnale de televiziune ct i date. Canalul radio (microunde) Posibilitatea interceptrii radio este ridicat, datorit faptului c este vorba de un canal pe care se fac frecvent transmisii broadcast. Singura cale de protecie mpotriva interceptrii este criptarea. Aceasta poate fi nglobat la diferite nivele arhitecturale. Cifrarea la nivel legtur de date. Pachetele sunt cifrate automat atunci cnd sunt transmise ntre dou noduri, ceea ce pune atacatorul n situaia de a nu putea nelege traficul. Aceast metod se folosete n cazul reelelor radio. Exist sisteme dedicate de criptare pentru modemuri i linii nchiriate. Nu se folosete n reele Ethernet. Cifrarea capt la capt. Calculatorul expeditor cifreaz datele (nu i antetul). La calculatorul destinatar datele sunt automat decriptate. Multe organizaii apeleaz la aceast soluie, folosind, pentru conectarea reelelor la INTERNET, rutere cu criptare. Acestea cripteaz ntregul trafic al calculatoarelor aceleiai organizaii, singurele care au mijloacele de decriptare necesare. Traficul cu calculatoare din alte organizaii rmne necriptat. Cifrarea la nivelul aplicaiei. Criptarea este fcut la nivelul programelor de comunicaii care reprezint aplicaii INTERNET. De exemplu versiunea Kerberos a programului telnet cripteaz datele transmise n ambele direcii. Un alt protocol care poate crea probleme de securitate este DNS. Riscul major l constitutie faptul c nu exist mijloace de verificare a corectitudinii informaiilor returnate ca urmare a unei cereri DNS de rezolvare a unei adrese. De exemplu, dac DNS spune c un anumit calculator gazd are o anumit adres IP, aceasta este laut drept bun i se transmite informaie, uneori sensibil, ctre acest calculator, care poate fi unul de interceptare. Din pcate adresele IP i numele de calculatoare gazd sunt folosite frecvent n INTERNET n scop de autentificare. De exemplu comenzile rsh i rlogin folosesc numele calculatorului gazd drept element de autentificare. Ele analizeaz adresa IP de pe
120
conexiunea TCP, fac operaia invers de determinare a numelui asociat de calculatorul gazd i l compar cu valoarea tastat pentru autentificare. Iat cteva posibiliti de atac la acest nivel: - Deoarece protocolul DNS folosete pachete UDP, un atacator poate cu uurin "inunda" calculatorul gazd, construind, pentru o cerere de nume de calculator gazd, nenumrate rspunsuri invalide. Ele pot fi astfel construite nct s par c vin de la un server DNS. Clientul DNS va accepta rspunsul ca venind de la un server DNS. - Multe sever-e DNS memoreaz orice rspuns pe care l primesc, pentru a putea rspunde mai rapid la eventuale cereri similare care vor veni. Se poate ncrca cu uurin un astfel de server cu rspunsuri cu adrese IP incorecte. - Exist posibilitatea ca un atacator s creeze un server DNS fals, pe propriul calculator. El poate apoi infecta i servere DNS reale.
121
Dup ce s-a stabilit politica de securitate se vor selecta serviciile de securitate. Acestea sunt funcii individuale, care contribuie la creterea sistemului. Fiecare serviciu de securitate poate fi implementat prin metode variate, numite mecanisme de securitate. Pentru a implementa eficient serviciile de securitate sunt necesare o serie de activiti denumite generic gestiunea securitii, care cuprind controlul i distribuia informaiilor folosite de serviciile i mecanismele de securitate pentru semnalarea unor evenimente relevante privind securitatea sistemului. Arhitectura securitii i are originea la Departamentul Aprrii al S.U.A., DoD i are la baz protocoalele TCP/IP.
Autentificarea
a) entitilor perechi, peer entity authentication, asigur, n momentul cnexiunii, c o entitate este ntr-adevr ceea ce pretinde a fi i c dialogul nu reprezint o reluare a unei nregistrri vechi; b) originii datelor, data origin authentication, asigur faptul c sursa datelor este autentic, fr ns a asigura nsi protecia mpotriva duplicrilor sau a modificrii irurilor de date.
Controlul accesului
Asigur protecia datelor mpotriva accesului neautorizat la resursele OSI sau non-OSI prin intermediul OSI. Se aplic la tipuri variate de acces (citire, scriere, execuie).
Confidenialitatea datelor
Asigur protecia datelor la dezvluiri neautorizate prin: a) confidenialitatea legturii, connection confidentiality, este vorba despre o linie orientat pe conexiune; b) confidenialitatea neorientat conexiune, connectionless confidentiality, este vorba despre confidenialitatea pachetelor de date; c) confidenialitatea selectiv a cmpurilor, selective field confidentiality, este vorba despre anumite cmpuri ale unui pachet de date; d) confidenialitatea traficului, traffic flow confidentiality, este vorba despre informaia ce provine din analiza traficului de mesaje.
Integritatea datelor
Acest serviciu combate ameninrile active (nlocuire, inserare, tergere), fiind deseori combinat cu serviciile de autentificare a unitilor perechi. El asigur c datele nu au fost modificate de-a lungul transmisiei. Exist mai multe servicii derivate: a) integritatea conexiunii cu recuperare, connection integrity with recovery; b) integritatea conexiunii fr recuperare, connection integrity without recovery; c) integritatea conexiunii cu cmpuri selectate, selective field connection integrity;
122
d) integritatea neorientat pe conexiune cu cmpuri selectate, selective field connectionless integrity. Ne-repudierea a) ne-repudierea cu probarea originii, non-repudiation with proof of origin, permite receptorului s dovedeasc faptul c datele au fost furnizate, mpiedicndu-se astfel orice ncercare a unui emitor de a nega c datele au fost trimise sau c mesajul nu avea coninutul respectiv; b) ne-repudierea cu probarea livrrii, non-repudiation with proof of delivery, permite emitorului s poat demonstra c mesajele trimise de el au fost recepionate, mpiedicndu-se astfel orice ncercare a unui receptor c a recepionat datele sau c mesajul avea coninutul respectiv. 6.3.2. Mecanisme de securitate specifice OSI a introdus 8 mecanisme de securitate de baz. Acestea se folosesc fie individual fie combinat pentru a construi mecanisme de securitate. De exemplu serviciul de ne-repudiere cu probarea livrrii poate fi combinat cu servicii de integritate a datelor, obinndu-se mecanismul de semntur digital. Un mecanism poate folosi un alt mecanism. De exemplu mecanismul de autentificare a schimbului poate folosi mecanismul de criptare i uneori mecanismul de notariat (care presupune existena unei a treia pri, creia i se acord ncredere). A. Criptarea Obiectivul acestui mecanism este de a transforma datele n aa fel nct ele s fie inteligibile doar pentru entitile autorizate (care au la dispoziie o cheie secret pentru decriptare). Criptarea este folosit pentru a furniza confidenialitate sau alte servicii de securitate. B. Mecanismul de semntur digital Scopul semnturii digitale este de a confirma c datele respective au fost generate de ctre semnatar. Acest mecanism este utilizat de ctre sistemele de apreciere a integritii datelor respectiv de ctre sistemele de autentificare a originii datelor. Pentru acest mecanism sunt definite dou proceduri: - cea de semnare, - cea de verificare a semnturii. Folosindu-se sistemele de criptare cu cheie public, semntura poate fi generat prin calcularea unei funcii de datele care trebuiesc semnate, care apoi se cripteaz din nou, folosind cheia secret a semnatarului. Se recomand ca aceast valoare s depind de momentul emisiei, pentru a preveni falsificarea prin retransmisie a datelor respective. Semntura trebuie generat folosind doar chei secrete, n timp ce procedura de verificare a semnturii trebuie s fie public. C. Mecanismul de control al accesului Acest mecanism controleaz accesul entitilor la resurse, presupunnd cunoscut identitatea entitii care solicit accesul. Mecanismul se declaneaz atunci cnd se ncearc un acces neautorizat, fie prin declanarea unei alarme, fie prin simpla nregistrare a incidentului. Politica de control a accesului poate fi bazat pe unul sau mai multe dintre urmtoarele elemente: - lista/matricea drepturilor de acces, - parole, - durata accesului, - timpul de ncercare al accesului, - ruta (calea de ncercare a accesului). D. Mecanismul de integritate a datelor Asigur integritatea pachetelor de date (ntreg pachetul sau numai un anumit cmp al acestuia) i presupune c datele nu pot fi modificate, terse sau amestecate n timpul transmisiei. Acest
123
mecanism implic dou proceduri: - la expediere: expeditorul adaug la unitatea de date o informaie adiional ce depinde numai de datele transmise ("checkvalue"-aceasta poate fi criptat sau nu); - la recepie: partea receptoare genereaz aceeai "checkvalue" i o compar cu cea primit. Mecanismul de tampile de timp, time stamping, poate fi folosit pentru transmisiile neorientate conexiune n scopul asigurrii actualitii datelor. E. Mecanismul de autentificare a schimbului Este folosit pentru a dovedi identitatea entitilor. Pot fi folosite parole sau tehnici criptografice (parole cifrate, cartele magnetice sau inteligente, caracteristici biometrice, biochimice). Cnd sunt folosite tehnicile criptografice de obicei acestea sunt combinate cu protocoale "handshaking", n intenia de protejare mpotriva nlocuirii respectiv relurii datelor. Principiul este urmtorul: entitatea A trimite identitatea sa (criptat sau nu) entitii B, care genereaz o valoare aleatoare i o trimite (criptat sau nu) lui A. A trebuie s cripteze valoarea aleatoare cu cheia sa secret i s o trimit la B, care va verifica corectitudinea acesteia. F. Mecanismul de umplere a traficului Este folosit pentru a asigura diferite nivele de protecie mpotriva analizei de trafic i implic utilizarea uneia dintre urmtoarele metode: - generarea unui trafic fals, - umplerea pachetelor de date transmise cu date redundante, - transmiterea de pachete de date i spre alte destinaii dect cea dorit. G. Mecanismul de control al dirijrii ntr-o reea unele drumuri pot fi considerate mai sigure dect altele. Acest mecanism permite alegerea n mod static sau dinamic a drumurilor celor mai convenabile, n concordan cu criterile de securitate (importana datelor i confidenialitatea legturii). Acest mecanism trebuie folosit ca suport i pentru serviciile de integritate cu recuperarea datelor (de exemplu, pentru a pemite selecia unor rute alternative n vederea protejrii n cazul unor atacuri ce ar perturba comunicaia). H. Mecanismul de notarizare, notarization mechanism Acest mecanism implic existena unei a treia pri-numit notar-n care au ncredere toate entitile, pentru a asigura garanii de integritate a originii datelor sau a destinaiei datelor. Atunci cnd acest mecanism este folosit datele sunt comunicate prin intermediul notarului. 6.3.2.1. Arhitectura securitii ISO n tabelul urmtor se prezint legtura ntre servicile de securitate i mecanismele de securitate definite de ISO. Pe linii sunt marcate servicile iar pe coloane mecanismele. Prezena unui x ntr-una dintre rubricile tabelului semnific faptul c mecanismul respectiv poate fi folosit pentru implementarea serviciului corespunztor. Mecanism Serviciu Autentificarea entitilor perechi Autentificarea originii datelor Controlul accesului Confidenialitatea conexiunii Confidenialitatea neorientat conexiune Confidenialitatea selectiv a cmpurilor Integritatea conexiunii cu recuperare Integritatea conexiunii fr recuperare Integritatea conexiunii cu cmpuri selectate Integritatea neorientat conexiune Integritatea cu cmpuri selectate neorientat conexiune Ne-repudiere, emisie Ne-repudiere, recepie A x x x x x x x x x x B x x x x x x x x x x x x x x x x C D E x F G H
x x x x
124
Servicii i nivele arhitecturale n tabelul urmtor sunt prezentate legturile ntre nivelele modelului de referin OSI i servicile de securitate care se recomand s fie utilizate pe aceste nivele. Nivele arhitecturale Servicii de securitate Autentificarea entitilor perechi Autentificarea originii datelor Controlul accesului Confidenialitatea conexiunii Confidenialitatea neorientat conexiune Confidenialitatea selectiv a cmpurilor Integritatea conexiunii cu recuperare Integritatea conexiunii fr recuperare Integriatatea conexiunii cu cmpuri selectate Integritatea neorientat conexiune Integritatea cu cmpuri selectate neorientat conexiune Ne-repudiere, emisie Ne-repudiere, recepie Confidenialitatea traficului 1 2 x x x x x 3 x x x x x x x 4 5 6 x x x x x x x x x x x x x x 7
x x
x x x
ISO las posibilitatea de a asigura servicii de securitate la diferite niveluri ale modelului OSI. Acestea pot fi asigurate la nivel sczut - nivelurile 2, 3 (legtur, reea), intermediar - nivelul 4 (transport)-sau la nivelul aplicaie (7). Este posibil, n aceast arhitectur s se furnizeze toate servicile la nivelul aplicaie.
125
sunt confidenialitatea circuitelor orientate pe conexiune precum i confidenialitatea circuitelor neorientate pe conexiune. Deoarece majoritatea protocoalelor de la acest nivel au faciliti de detecie a erorilor i de secveniere pentru asigurarea retransmisiilor, ele dau impresia c se poate asigura integritatea datelor cu posibilitatea refacerii acestora. Totui calitatea unui astfel de serviciu nu ar putea fi prea bun. Realizarea criptrii la acest nivel presupune oferirea unei cantiti mai mari de informaie, unui adversar ce intercepteaz pachete, deoarece cmpurile de control sunt n text clar, lucru ce permite atacuri cum ar fi re-rularea datelor (deoarece cmpurile surs i destinaie sunt citibile). Nivelul 2 nu este recomnadat de OSI pentru implementarea criptrii. Principalul dezavantaj al criptrii la acest nivel este acela c datele sunt memorate n clar n toate nodurile intermediare. Acest aspect poate fi acceptat numai n reele private, unde este asigurat securitatea fizic i utilizatorii sunt de ncredere.
126
127
implementeaz acest mecanism, precum i ntre un calculator gazd sau ruter, care implementeaz acest mecanism i/sau o mulime de calculatoare gazd sau de rutere. Criptarea de la ruter la ruter este mai valoroas pentru construcia reelelor virtuale private ntr-o structur n care nu se poate avea ncredere, aa cum este INTERNET-ul. Acest deziderat este ndeplinit prin excluderea calculatoarelor externe. Cu toate acestea criptarea de la ruter la ruter nu poate substitui ntotdeauna criptarea de la calculator gazd la calculator gazd, cele dou tipuri de criptare putnd i adesea trebuind s fie folosite mpreun. Dac n cadrul legturii respective nu exist rutere de securitate, cele dou sisteme aflate n comunicaie, care trebuie s implementeze mecanismul ESP pot s-l utilizeze pentru a cripta doar datele de utilizator (de exemplu de tip TCP sau UDP) care se transmit ntre cele dou sisteme. Mecanismul ESP este proiectat n aa fel nct s asigure flexibilitate maxim, adic s permit utilizatorilor s aleag i s foloseasc doar acele servicii de securitate pe care le doresc i de care au nevoie. Antetele de dirijare pentru care integritatea nu a fost asigurat, prin criptare, trebuie ignorate de ctre receptor. Dac aceast regul nu este respectat cu strictee atunci sistemul va fi vulnerabil la diferite tipuri de atac, inclusiv la atacuri de redirijare a sursei. Dei acest document nu se ocup n mod explicit de difuzare, n cadrul protocolului Ipv6, mecanismele de securitate discutate pot fi folosite i pentru astfel de comunicaii. Operaiile de distribuire a cheilor i de management al asociaiilor de securitate sunt complicate pentru cazul acestui tip de comunicaie. Dac se folosesc algoritmi de criptare cu cheie secret atunci valoarea folosirii criptrii, pentru pachete care trebuiesc difuzate, este limitat deoarece receptorul poate s tie doar c pachetul recepionat vine de la unul sau mai multe sisteme doar dac tie cheia secret corespunztoare. Asociaii de securitate Conceptul de asociaie de securitate este fundamental att pentru mecanismul de securitate IP de tip ESP ct i pentru mecanismul de securitate AH. O anumit asociaie de securitate este identificat univoc pe baza unui index de parametrii de securitate , Security Parameter Index, SPI i a unei adrese de destinaie. Orice implementare a mecanismelor de securitate AH sau ESP se bazeaz pe conceptul de asociaie de securitate, precum i pe unii parametri ai si. De obicei o asociaie de securitate are urmtorii parametri: - Algoritm de autentificare i modul su de utilizare, folosit de mecanismul AH; - Chei, folosite de ctre algoritmul de autentificare ales; - Algoritm de criptare i transformare, folosite de mecanismul de securitate ESP; - Chei, folosite de algoritmul de criptare corespunztor mecanismului ESP;
- Prezena/absena i dimensiunea unui vector de sincronizare sau iniailizare pentru algoritmul de criptare corespunztor mecanismului de securitate ESP;
- Algoritm de autentificare i modul su de utilizare folosit pentru transformarea corespunztoare mecanismului de securitate ESP;
- Chei de autentificare, folosite pentru algoritmul de autentificare corespunztor mecanismului ESP, - Timpul de via al cheilor (reprezint intervalul de timp dup care cheile trebuie schimbate);
- Timpul de via al asociaiei de securitate; - Adresa sau adresele asociaiei de securitate; - Nivelul de sensibilitate al datelor protejate (de exemplu secret sau neclasificat); Calculatorul gazd expeditor folosete identificatorul utilizatorului i adresa de destinaie pentru a alege o asociaie de securitate corespunztoare (i deci valoarea SPI). Calculatorul gazd receptor folosete combinaia dintre valoarea SPI i adresa de destinaie pentru a determina asociaia corect de securitate. De aceea, o implementare a mecanismului AH, va fi ntotdeauna capabil s foloseasc SPI n combinaie cu adresa de destinaie pentru a determina asociaia de securitate i configuraia de securitate asociat pentru toate pachetele de date valide care sosesc. Cnd o asociaie de securitate devine invalid, sistemul destinaie nu trebuie imediat s ignore valoarea corespunztoare acelei
128
asociaii de securitate, ci trebuie s atepte pn cnd sarcinile sale au fost preluate de alte asociaii de securitate. De obicei o asociaie de securitate este unidirecional. O sesiune de comunicri cu autentificare ntre dou calculatoare gazd are doi indici de parametri de securitate, SPI, cte unul n fiecare direcie. Combinaia dintre un anumit indice de securitate i o anumit adres de destinaie, determin n mod unic o anumit asociaie de securitate. Adresa de destinaie poate fi o adres corespunztoare unei comunicaii punct la punct respectiv o adres de grup (specific unei comunicaii multipunct). Atributul de orientare spre recepie a unei asociaii de securitate implic pentru traficul punct la punct selectarea valorii SPI de ctre sistemul destinatar. n acest mod se evit posibilitatea unui conflict ntre asociaile de securitate configurate manual i asociaile de securitate configurate automat (de exemplu printr-un protocol de management al cheilor). Pentru traficul multipunct, exist mai multe sisteme destinaie dar un singur grup de sisteme destinaie. De aceea un anumit sistem sau o anumit persoan vor trebui s aleag indicii SPI pentru acest grup de sisteme destinaie i apoi s comunice informaia tuturor membrilor legitimi ai acestui grup de sisteme de destinaie prin mecanisme care nu sunt specificate n acest document. Expeditori multipli spre un grup de sisteme destinaie pot utiliza o singur asociaie de securitate (i deci un singur indice SPI) pentru ntreg traficul cu acest grup. n acest caz un anumit receptor tie doar c mesajul vine de la un sistem care tie parametrii asociaiei de securitate corespunztoare pentru acel grup de sisteme destinaie. Receptorul nu poate autentifica care dintre sisteme a generat traficul multipunct dac se folosesc algoritmi de criptare cu cheie secret (de exemplu DES sau IDEA). Traficul multipunct se poate baza i pe folosirea cte unei asociaii de securitate separate (i implicit al cte unui indice SPI separat) pentru fiecare component punct la punct a traficului cu acel grup. Dac fiecare expeditor are propria sa asociaie de securitate i se folosesc algoritmi de criptare cu cheie public atunci este posibil i efectuarea serviciului de autentificare a sursei datelor. Obiective de proiectare n continuare se descriu cteva obiective de proiectare pentru aceast arhitectur de securitate i pentru mecanismele de securitate corespunztoare. Primul obiectiv al acestui document este s asigure c IPv6 vor avea mecanisme de securitate, bazate pe criptare, solide, disponibile pentru utilizatorii care doresc securitate. Aceste mecanisme sunt concepute pentru a mpiedica impactul cu adversari, utilizatori de INTERNET, care nu folosesc aceste mecanisme de securitate pentru traficul lor. Se intenioneaz ca aceste mecanisme s fie independente de algoritm, astfel nct algoritmii de criptare s poat fi alterai fr a fi afectate alte pri ale implementrii. Aceste mecanisme de securitate trebuie s fie utile pentru ntrirea unor politici de securitate. Algoritmi de securitate ca de exemplu MD5 sau DES au fost standardizai pentru a se asigura interoperabilitatea n reeaua INTERNET. Algoritmii recomandai pentru protocolul IP sunt aceeai cu algoritmi recomandai pentru protocolul SNMPv2.
Mecanismul de securitate AH
Antetul de autentificare IP pstreaz informaia de autentificare pentru pachetul de date IP. El realizeaz aceast funcie calculnd o funcie de autentificare criptografic pentru pachetul de date IP. n calcul se utilizeaz o cheie secret de autentificare. Expeditorul calculeaz datele de autentificare nainte de a trimite pachetul IP autentificat. Poate aprea fragmentarea datelor dup prelucrarea antetului la pachetele care ias i nainte de prelucrarea antetului la pachetele care intr. Receptorul verific corectitudinea datelor de autentificare dup recepie. Unele cmpuri care trebuie s
129
se schimbe n tranzit, ca de exemplu cmpul "TTL" din cazul protocolului IPv4 sau cmpul "Hop Limit" din cazul protocolului IPv6, sunt omise cnd se face calculul de autentificare. Serviciul de nerepudiere poate fi realizat cu ajutorul unor algoritmi de autentificare (de exemplu algoritmi cu cheie public, situaie n care se folosesc n calculul de autentificare att cheia secret a expeditorului ct i cheia secret a destinatarului) care folosesc i antetul AH dar nu este neaprat implementat de toi algoritmii de autentificare care se folosesc de antetul AH. Algoritmul de autentificare recomandat este algoritmul MD5 cu cheie, care la fel ca toi algoritmii cu cheie secret nu poate implementa de unul singur serviciul de ne-repudiere. Utilizarea antetului AH va crete costurile de prelucrare ale protocolului IP i ntrzierea de comunicare. Aceast cretere a ntrzierii este explicat de necesitatea calculului datelor de autentificare de ctre expeditor i de necesitatea de calcul i de comparare a datelor de autentificare de ctre fiecare receptor, pentru fiecare pachet de date IP care conine antetul de autentificare AH. Folosirea antetului AH asigur o securitate mult mai puternic dect cea care exist n majoritatea protocoalelor INTERNET i nu trebuie s afecteze posibilitatea de export sau s conduc la creterea excesiv a costurilor de implementare. n timp ce mecanismul de securitate bazat pe antetul AH trebuie implementat de un ruter de securitate n beneficiul calculatoarelor gazd dintr-o reea de ncredere situat n spatele acestui ruter de securitate, acest mod de operare nu este ncurajat pentru calculatoarele situate n faa acestui ruter de securitate. Toate calculatoarele gazd care au implementat protocolul IPv6 trebuie s implementeze mecanismul de securitate bazat pe antetul AH folosind cel puin algoritmul MD5 cu o cheie cu lungimea de 128 de bii. O implementare particular poate utiliza i ali algoritmi de autentificare diferii de algoritmul MD5 cu cheie.
130
reele. Utilizarea acestui mecanism de securitate, bazat pe criptare, crete ntrzierea n transmiterea unui mesaj. Costul exact al serviciului de securitate ESP se va modifica n funcie de implementarea aleas, incluznd algoritmul de criptare, dimensiunea cheilor i ali factori. Algoritmii de criptare pot fi implementai i hard. De obicei, algoritmul de criptare folosit este DES.
131
cheilor, astfel nct datele dirijate s poat fi protejate i s se reduc riscul de ptrundere al unei persoane neavizate ntr-un ruter. Un alt caz este cel al unei organizaii care folosete un dispozitiv de tip firewall, ntre reeaua intern i INTERNET n fiecare dintre sediile sale. n acest caz dispozitivul firewall trebuie s cripteze selectiv traficul cu alte sedii ale acelei organizaii folosind un sistem manual de configurare a cheilor i s nu cripteze traficul pentru alte destinaii. Acest sistem de management al cheilor mai este potrivit i pentru cazul n care doar anumite comunicaii selectate trebuie securizate.
132
133
mare credibilitate c datele folosite pentru decizii de control al accesului sunt autentice. Organizaii care au dou sau mai multe site-uri care sunt interconectate folosind servicii IP comerciale ar putea dori s foloseasc un dispozitiv de tip firewall cu criptare selectiv. Dac cte un dispozitiv de tip firewall este plasat ntre fiecare dinte site-urile companiei respective i furnizorul de servicii comerciale IP, atunci sistemul de criptare de tip firewall, creat astfel, ar putea fi privit ca i un tunel ntre toate site-urile companiei. Acest sistem ar putea cripta de asemenea traficul dintre companie i furnizorii si sau clienii si. Traficul cu Centrul de informare al reelei cu arhivele INTERNET publice sau cu alte organizaii nu trebuie criptat datorit faptului c nu exist un protocol standardizat de management al cheilor sau deoarece renunarea la criptare este o alegere deliberat pentru a se facilita o mai bun comunicare, sau performane mbuntite ale reelei i o conectivitate crescut. O astfel de abordare ar putea cu uurin s protejeze traficul sensibil al companiei de atacuri sau de modificri. Unele organizaii ( de exemplu cele guvernamentale) ar putea dori s utilizeze un dispozitiv de tip firewall, complet criptat, pentru a oferi o reea virtual protejat, bazat pe servicii IP comerciale. Utilizarea la transmisii multipunct n ultimii ani transmisile multipunct s-au dezvoltat rapid. Numeroase conferine electronice se desfoar acum multipunct folsind comunicaii audio i video n timp real. Se folosesc aplicaii de tip teleconferin bazate pe protocolul IP multipunct n INTERNET sau n reele interne private. n alte cazuri se folosesc comunicaiile bazate pe protocolul IP multipunct pentru a face posibile simulrile distribuite sau alte aplicaii. De aceea este important ca serviciile de securitate IP s funcioneze i n cazul comunicaiilor multipunct. Indicii parametrilor de securitate, SPI, folosii n mecanismele de securitate IP sunt orientai spre receptor i de aceea sunt potrivii pentru aplicaii IP la comunicaii multipunct. Din nefericire majoritatea mecanismelor de management al cheilor n comuncaii multipunct nu se potrivesc prea bine cu mecanismele de securitate ale protocolului IP. Totui exist cercetri n acest domeniu. Ca i un pas intermediar, un grup conectat printr-o comunicaie multipunct ar putea utiliza repetitiv un protocol de distribuire a cheilor pentru comunicaii punct la punct pentru a distribui cheia tuturor membrilor grupului sau grupul ar putea folosi distribuirea manual a cheilor. Utilizarea pentru protecia calitii servicilor Protecia calitii serviciilor este o zon de interes semnificativ. Cele dou mecanisme de securitate IP, prezentate mai sus, au fost concepute pentru a asigura un suport important pentru servicile n timp real ca i pentru comunicaiile multipunct. n continuare se descrie o abordare posibil pentru a furniza o astfel de protecie. Mecanismul de protecie IP, bazat pe folosirea antetului AH, trebuie folosit, cu un management al cheilor potrivit, pentru a face posibil autentificarea pachetelor. Aceast autentificare are un potenial important pentru clasificarea pachetelor ntre rutere. Identificatorul de trafic, Flow Identifier, FI, din cadrul protocolului IPv6, trebuie s acioneze ca i un identificator de nivel cobort, Low-Level Identifier, LLID. Folosind mpreun acest identificator i serviciul de securitate IP bazat pe antetul AH, clasificarea pachetelor ntre rutere devine realizabil dac ruterele sunt nzestrate cu cheile potrivite. Din motive de performan ruterele autentific doar tot al N-lea pachet de date (i nu fiecare pachet de date), dar i aa se nregistreaz o mbuntire semnificativ pentru starea curent a INTERNET-ului. Calitatea servicilor poate fi protejat i dac se folosete FI mpreun cu un protocol de rezervare a resurselor, ca de exemplu RSVP. Deci, clasificarea pachetelor autentificate poate fi folosit pentru a ajuta la asigurarea manipulrii corecte a fiecrui pachet n interiorul ruterelor. Utilizarea n reele compartimentate sau multinivel O reea multinivel sigur, multi-level secure network, MLS, este o reea n care se comunic date la diferite nivele de sensibilitate, (de exemplu neclasificat i secret). Multe guverne au un interes semnificativ n reele MLS. Acestea cer folosirea controlul accesului mandatat, Mandatory Access
134
Control, MAC, pe care utilizatorii ordinari sunt incapabili s-l implementeze sau s-l violeze. Mecanismul de securitate IP, bazat pe folosirea antetului AH, poate fi folosit pentru a realiza o bun autentificare a calculatoarelor gazd n reele cu un singur nivel. Acest mecanism de securitate poate fi folosit i pentru a oferi asigurri puternice att pentru luarea deciziilor referitoare la controlul accesului mandatat n reele multinivel ct i pentru luarea decizilor referitoare la controlul accesului discreional n toate tipurile de reele. Dac se utilizeaz tabele IP explicite de sensibilitate, ca de exemplu IPSO i se consider c nu este necesar confidenialitatea n mediul operaional considerat, se utilizeaz mecanismul de securitate bazat pe antetul AH pentru a realiza autentificarea ntregului pachet, inclusiv criptarea nivelului de sensibilitate coninut n antetul IP i n datele de utilizator. Aceasta este o mbuntire semnificativ fa de funcionarea reelelor bazat pe varianta IPv4 etichetat unde trebuie s se aib ncredere n etichet chair dac aceasta nu este de ncredere deoarece nu exist posibilitatea criptrii sale. Varianta IPv6 folosete etichete cu sensibilitate implicit care sunt parte a asociaiei de securitate dar nu se transmit cu fiecare pachet. Orice etichet IP cu sensibilitate explicit trebuie autentificat folosind mecanismul de securitate bazat pe antetul AH, sau mecanismul de securitate bazat pe antetul ESP, sau amndou mecanismele. Mecanismul de securitate bazat pe antetul ESP poate fi combinat cu politici potrivite de management al cheilor pentru a fi create reele multinivel sigure. n acest caz fiecare cheie trebuie folosit numai la un singur nivel de sensibilitate i ntr-un singur compartiment. De exemplu cheia A trebuie folosit doar pentru pachete sensibile neclasificate, n timp ce cheia B este folosit doar pentru pachete clasificate ca secrete dar neaparinnd nici unui compartiment iar cheia C este folosit doar pentru pachete clasificate drept secrete dar care nu se transmit n exterirorul reelei. Nivelul de sensibilitate al traficului protejat nu trebuie s domine nivelul de sensibilitate al asociaiei de securitate folosit pentru acel trafic. Nivelul de sensibilitate al asociaiei de securitate nu trebuie s domine nivelul de sensibilitate al cheii care aparine acelei asociaii de securitate. Nivelul de sensibilitate al cheii trebuie s fie identic cu nivelul de securitate al asociaiei de securitate. i mecanismul de securitate bazat pe antetul de autentificare, AH, poate avea chei diferite din aceleai motive, cu alegerea cheii depinznd n parte de nivelul de sensibilitate al pachetului de date. Criptarea este foarte util i de dorit chair atunci cnd toate calculatoarele gazd se gsesc ntr-un mediu protejat. Algoritmul de criptare pentru INTERENT standard ar putea fi folosit, n acord cu un management al cheilor potrivit, pentru a asigura controale de acces direcional, DAC, mpreun fie cu etichete de sensibilitate implicite fie cu etichete de sensibilitate explicite (cum ar fi IPSO, folosite n IPv4). n anumite mprejurri algoritmul de criptare standard pentru INTERNET ar putea fi suficient de puternic pentru a asigura controale de acces mandatat, MAC. Criptarea complet trebuie folosit pentru toate comunicaiile multinivel ntre calculatoare sau staii de lucru care funcioneaz compartimentat chiar dac mediul de transmisiuni respectiv este considerat ca fiind protejat. Consideraii de securitate ntregul document care reprezint subiectul ultimului paragraf discut o structur de securitate pentru protocolul IP. Nu exist o arhitectur general de securitate pentru INTERNET, dar mecanismele de securitate trebuie concentrate la nivelul IP. Transformrile de criptare pentru mecanismul de securitate bazat pe antetul ESP care folosesc un algoritm de schimbare a blocurilor i produc o integritate puternic sunt vulnerabile la atacuri de tip taie i lipete, cut and paste i trebuiesc evitate. Dac mai muli utilizatori folosesc o asociaie de securitate n comun cu o destinaie, atunci sistemul de recepie poate autentifica doar faptul c pachetul a fost trimis de unul dintre aceti utilizatori dar nu poate specifica care dintre acetia l-a trimis. Similar, dac receptorul nu verific c asociaia de securitate folosit pentru un pachet este valabil pentru adresa surs identificat de pachet atunci receptorul nu poate autentifica care dintre adresele surs identificate de pachet este valabil. De exemplu, dac expeditorii A i B au fiecare o unic asociaie de securitate mpreun cu destinaia D i dac B i folosete asociaia sa de securitate valid cu D dar indic, n mod fraudulos, adresa surs a lui A, atunci D va fi pclit fiind fcut s cread c pachetul vine de la A. El poate s nu se lase pclit doar dac verific c adresa de surs identificat n pachetul de date face parte din asociaia de securitate care a fost folosit. Utilizatorii trebuie s neleag c indicele de calitate al securitii oferite de mecanismele bazate pe antetele
135
AH i ESP depinde de puterea algortmului de criptare implementat, de puterea cheilor folosite de corecta implementare a algoritmilor de criptare, de sigurana mecanismului de management al cheilor i de corecta implementare a algoritmului IP precum i de cteva mecanisme de securitate situate n sistemele participante. Securitatea implementrii este n parte n legtur cu securitatea sistemului de operare care implemeteaz mecanismele de securitate. De exemplu, dac sistemul de operare nu pstreaz cheile de criptare secrete, atunci traficul criptat cu aceste chei nu va fi sigur. Deoarece diferii utilizatori ai aceluiai sistem pot s nu aib ncredere unul n cellalt, fiecare utilizator sau fiecare sesiune trebuiesc criptate folosind chei separate. i asta va tinde s creasc volumul de munc cerut pentru a criptanaliza acel trafic deoarece nu ntreg traficul va folosi aceeai cheie. Anumite proprieti de securitate (de exemplu protecia mpotriva analizei traficului) nu sunt realizate de nici unul dintre mecanismele expuse. O posibil abordare a proteciei mpotriva analizei traficului este utilizarea corect a criptrii liniei de comunicaii. Utilizatorii trebuie s considere cu grij care proprietate de securitate o cer i s ia msuri active pentru a se asigura c nevoile lor sunt satisfcute de aceste msuri de securitate. Anumite aplicaii (de exemplu pota electronic) au nevoie probabil de mecanisme de securitate specifice. Informaii conexe materialului prezentat pot fi gsite n: RFC 1826, RFC 1827, RFC 1636, RFC 1446, RFC 1704, RFC 1422, RFC 1510, RFC 1828 i RFC 1829.
136
793 se specific faptul c numrtorul de 32 de bii folosit trebuie s fie decrementat cu 1 din patru n patru microsecunde. O alt posibilitate este ca acest numrtor s fie incrementat la fiecare secund cu o anumit constant i cu o alt constant la fiecare nou conectare. Deci dac se deschide o comunicaie cu un anumit calculator se va ti cu mare precizie ce numr de secven va folosi acest calculator la urmtoarea sa conectare. Pe cunoatere acestei informaii se bazeaz atacul amintit mai sus. Atacatorul X deschide pentru nceput o conexiune real cu inta sa B, de exemplu cu portul de pot electronic sau cu TCP echo port. Aa se obine ISNb. Apoi atacatorul se substituie calculatorului A i trimite: Ax->B: SYN, ISNx unde "Ax" reprezint un pachet trimis de ctre X care se pretinde a fi A. Calculatorul B i transmite calculatorului A numrul su de sincronizare SYN, adic: B->A: SYN, ISNb', ACK(ISNx) Dei calculatorul X nu vede niciodat acest mesaj el totui poate transmite: Ax->B: ACK(ISNb') folosind pentru ISNb' valoarea pe care a ghicit-o. Dac a ghicit corect serverul rsh al lui B crede c are o conexiune legitim cu A, cnd de fapt X este cel care trimite pachetele. X nu poate vedea ieirea din aceast sesiune dar el poate executa comenzi la fel ca orice utilizator. Aici apare o dificultate minor. Dac A vede mesajele lui B el i va da seama c B a validat un mesaj pe care el nu l-a trimis niciodat i va transmite un pachet RST pentru a ntrerupe conexiunea. Exist mai multe ci de a preveni asta; cea mai uoar este ateptarea ca A s fie deconectat (tot ca urmare a unui atac). Remediul Alegerea numerelor iniiale de secven pentru o conexiune nu este aleatoare. Aceste numere trebuie alese n aa fel nct s se minimizeze probabilitatea apariiei unor pachete mai vechi care sunt acceptate de noi activri ale aceleiai conexiuni. Unele implementri ale protocolului TCP conin subprograme speciale care se ocup cu astfel de reactivri cnd serverul conexiunii originale este nc n starea TIMEWAIT. n consecin simpla generare aleatoare a numrului iniial de secven nu este o soluie convenabil. Dar nu exist nici o legtur sintactic sau semnatic ntre numerele de secven a dou conexiuni diferite. Atacurile bazate pe ghicirea numrului iniial de secven pot fi parate prin alocarea cte unui spaiu separat de numr de secven fiecrei conexiuni, adic fiecrui quadruplet de forma (gazd local, port local, gazd la distan, port la distan). n fiecare dintre aceste spaii numrul iniial de secven este incrementat. Nu exist o relaie evident ntre numerele din spaii diferite. Calea evident de a face asta este memorarea strilor conexiunilor deja desfcute, dead connections, i cea mai simpl modalitate de a face asta este modificarea diagramei TCP de tranziie a strilor astfel nct la ambele capete ale tuturor conexiunilor s se treac n starea TIMEWAIT. Aceasta este o soluie care funcioneaz dar care este ne-elegant i consum spaiu de stocare. ntradevr ar trebui folosit temporizatorul curent de 4 microsecunde, M, i ar trebui fcut setarea: ISN = M + F(localhost, localport, remotehost, remoteport). Este vital ca funcia F s nu poat fi calculat din exterior, altfel un atacator ar putea ghici un numr de secven, pe baza numrului iniial de secven folosit pentru o alt conexiune. De aceea se sugereaz ca F s fie o funcie hash, al crui calcul s se bazeze pe numrul de identificare al conexiunii i pe anumite date secrete. O bun alegere este funcia hash de tipul MD5, deoarece programe de implementare a acesteia sunt uor de gsit. Datele secrete pot fi fie un numr aleator fie o combinaie dintre unele date secrete specifice calculatorului gazd i timpul de boot-are al acestuia. Timpul de
137
boot-are este inclus pentru a asigura c secretul se modific ocazional. i alte date, ca de exemplu adresa IP a calculatorului gazd sau numele su, pot fi incluse n calculul funciei hash, pentru a uura administrarea, permind componentelor unei reele de staii de lucru s mpart aceleai date secrete i n acelai timp s aib spaii diferite pentru numerele de secven. De fapt se recomand ca s se foloseasc toate aceste trei tipuri de date: un numr att de aleator ct poate hard-ul s genereze, o parol instalat de administratorul de reea i adresa IP a calculatorului. Trebuie remarcat c secretul nu poate fi schimbat cu uurin pe un anumit calculator. O astfel de modificare ar afecta valorile numerelor iniiale de secven folosite pentru conexiunile reactivate; pentru a asigura securitatea ar trebui fie s se memoreze strile conexiunilor deja desfcute fie s fie observat un anumit timp de linite, corespunztor la dou segmente cu lungime maxim de "timp de via".
Consideraii de securitate
Alegerea unor numere de secven potrivite nu reprezint o nlocuire a autentificrii bazate pe criptografie. Este n cel mai bun caz o msur paleativ. Un atacator care poate observa mesajele iniiale pentru o anumit conexiune, poate determina starea numerelor de secven ale acesteia i poate fi capabil s lanseze atacuri bazate pe ghicirea numerelor de secven, "pclind" aceast conexiune. Conectarea unui calculator la INTERNET presupune folosirea sistemului de operare UNIX i a suitei de protocoale TCP/IP. Pentru ca un utilizator s poat lua msurile de securitate adecvate, la coneectarea n reea, el trebuie s neleag modul n care sistemul de operare UNIX lucreaz cu INTERNET-ul.
138
important, este folosit att de server-e ct i de clieni. Iat un exemplu de coninut parial pentru un astfel de fiier: #/etc/services # telnet 23 /tcp smtp 25 /tcp mail Server-ele determin din acest fiier numrul propriu de port cu care lucreaz, folosind un apel sistem special: getservicebyname(). Porturile au alocate numere; cele cuprinse n domeniul 0-1023 se consider porturi sigure. Ele sunt restricionate la folosire, fiind accesibile doar superuser-ului. Ca urmare, programele care folosesc aceste porturi trebuie executate ca root. Acest lucru mpiedic programele obinuite s obin informaii sensibile de la aceste porturi. Astfel, ar fi posibil pentru un utilizator s creeze, de exemplu, un program care s se prezinte drept telnet, s asculte portul 23 i s intercepteze parolele altor utilizatori. Exist dou tipuri distincte de server-e: -Cele care se execut continuu. Ele sunt pornite automat la lansarea sistemului de operare, * pe baza infrmailor din /etc/rc . Aceste server-e trebuie s rspund rapid la cererile care sosesc din reea, cum ar fi nfsd (Network Filesystem Daemon ) i sendmail; -Cele care sunt lansate doar atunci cnd este nevoie de ele. Ele sunt de obicei pornite de daemon-ul inetd, care poate asculta zeci de porturi i care lanseaz n execuie daemon-ul necesar. n aceast categorie intr servicii ca fingerd (Finger Daemon) i popper (Post Office Protocol Daemon). De exemplu lansarea n execuie a serviciului SMTP-sendmail se face, n /etc/rc, prin urmtoarea secven: if [-f /usr/lib/sendmail -a -f /etc/sendmail/sendmail.cf ]; then /usr/lib/sendmail -bd -qlh && (echo /n 'sendmail') >/dev/console fi Ea face verificarea existenei programului sendmail i a fiierului su de configurare, sendmail.cf, lanseaz n execuie programul i afieaz la consol mesajul "sendmail". Dup lansare, sendmail se va conecta la port-ul 25 i va rmne n ascultarea unor cereri. O dat sosit o astfel de cerere, programul va folosi apelul sistem fork() pentru a se crea un nou proces care va gestiona conexiunea. Programul sendmail original va rmne n ateptare pentru alte eventuale cereri de conexiune. Lansarea n execuie a server-elor care nu sunt permanent rezidente se face cu ajutorul unui program daemon numit inetd. Cu ajutorul fiierului /etc/inetd.conf , acesta determin servicile reea care le gestioneaz. Apoi folosete apelurile sistem bind(), pentru a se conecta la mai multe porturi i select(), pentru a obine controlul atunci cnd se face o cerere de conectare la un anumit port. Iat spre exemplificare, cteva linii din fiierul /etc/inetd.conf: # /etc/inetd.conf # ftp stream tcp nowait root /usr/etc/ftpd ftpd telnet stream tcp nowait root /usr/etc/telnetd telnetd finger stream tcp nowait nobody /usr/etc/fingerd fingerd Fiecare linie conine numele serviciului, tipul soket-ului, tipul protocolului, dac se ateapt sau nu cereri n continuare, dup servirea celei care a activat server-ul, numele utilizatorului proprietar al server-ului i numele comenzii executate la activarea serviciului. O problem deosebit de important din punctul de vedere al securitii este aceea a controlului la server-e. Doar o mic parte din programele server au incorporate faciliti de limitare a accesului, bazate pe controlul corelaiei dintre adresele IP i numele de calculator gazd al celui care face cererea. De exemplu, NFS, permite specificarea calculatoarelor gazd care au dreptul de a monta anumite sisteme de fiiere, de asemenea, nntp permite precizarea calculatoarelor gazd care pot citi fiiere. Exist nsi alte modaliti, exterioare programelor, prin care se poate controla accesul la server-e: -Programul tcpwrapper, este un utilitar care poate mbrca un server INTERNET. El permite restricionarea accesului unor calculatoare gazd la server-e;
139
-Se poate folosi un program firewall, plasat ntre server i exterior. Acesta poate proteja ntreaga reea, spre deosebire de tcpwrapper, care protejeaz doar servicile de pe o anumit main. Se recomand folosirea comun a unor programe de tip wrapper i firewalls, de exemplu primul pentru fiecare calculator i al doilea pentru ntreaga reea.
Serviciu echo discard daytime chargen time domain tftp sunrpc ntp semp
Funcie Returneaz datele utilizatorului n alt pachet de date Test retur caractere Returneaz ora Generator de caractere Returneaz ora Server DNS Trivial File Transfer Protocol RPC la SUN Network Time Protocol Simple Network Management Protocol
140
Alert de e-mail sosit Returneaz cine este conectat n sistem Cerere de discuie Routing Information Protocol Scriere pe terminal utilizator Sistem de fiiere NFS
Serviciul FTP
Este implementat n UNIX prin programele client ftp i prin server-ul /etc/ftpd i permite utilizatorilor s se conecteze la distan i s fac transfer de fiiere. Porturile folosite sunt 21, pentru trimiterea de comenzi i 20 sau unul peste 1024, negociat de client i server, pentru transferuri de date. Versiunile mai vechi ale acestui serviciu (de dinainte de 1988) nu au un grad de securitate prea ridicat. Fie c este vorba despre un transfer de date sau de listarea coninutului unui director, transmisia se face pe un canal de date. Cele mai obinuite implementri creaz o nou legtur pentru fiecare fiier. Clientul ascult un numr de port aleator i informeaz server-ul sistem despre acesta, prin comanda PORT. La napoiere, server-ul face un apel la portul dat. Fierele sunt transferate n mod ASCII. La apelul serviciului ftp, utilizatorul trebuie s furnizeze numele i parola. Acestea sunt memorate la maina server n fiierul /usr/adm/wmtp. Transmiterea n clar a acestor informaii ntre calculatoare reprezint un element de mare vulnerabilitate, fiind cunoscute numeroase cazuri de interceptare. De aceea pe calculatoarele importante acest serviciu trebuie dezactivat sau nlocuit cu variante care implementeaz protocoale criptografice de autentificare. Exist trei variante de server-e ftp: - ftpd standard; - wuftpd; - aftp. Toate aceste server-e sunt pornite de ctre daemon-ul inetd, pe baza intrrilor n fiierul /etc/inetd.conf. Se pot lua unele msuri de restricionare a accesului la serviciul ftp standard. Fiierul /etc/ftpusers conine o list a tuturor conturilor care nu pot folosi acest serviciu. Dac, de exemplu, se blocheaz prin acest fiier conturi ca root, uucp, news, bin, se previne, pe de o parte, posibilitatea ca, odat sparte aceste conturi, s se fac transferuri de fiiere importante, iar pe de alt parte se mpiedic folosirea serviciului ftp de ctre conturile privilegiate, ceea ce ar face ca s se transfere prin reea conturile acestora. Una dintre cele mai utilizate modaliti de conectare ftp este "anonymous". Aceasta permite unui utilizator, care nu are cont pe o anumit main, un acces restrns, pentru a transfera fiiere dintrun director specificat. De obicei la un apel de ftp anonim se cere furnizarea numelui solicitatorului iar la parol, adresa e-mail a acestuia. Serviciul de ftp anonim a devenit un adevrat standard n INTERNET pentru difuzare de software, documente, imagini. Trebuie ns acordat toat atenia administrrii lui. Prima i cea mai important regul este ca nici un fiier sau director din aria lui ftp anonim s nu fie cu acces la scriere i s nu fie controlat de ftp; deoarece ftp anonim se execut cu acest nume. Dac directorul ftp nu permite acces la scriere, dar este controlat de ftp, pot exista nc modaliti de atac periculoase: anumite server-e permit utilizatorului de la distan s schimbe permisiunile fiierului. Existena comenzilor de schimbare a drepturilor de acces (permisiunilor) n server-ul anonymous este un mare neajuns. Se recomand eliminarea acestor posibiliti. Urmtoarea regul este de a se evita existena unui fiier /etc/passwd real n aria lui ftp anonim. Exist controverse privind crearea unui director cu acces public la scriere, pentru fiierele sosite. Maina care a creat aceast facilitate ar putea deveni o gazd permanent sau temporar a unui software pirat. Pentru a nu se ntmpla aa ceva trebuie respectate urmtoarele reguli: - Se creaz directorul cu acces la scriere dar nu i la citire. Cel mai simplu mijloc este s se pun directorul n proprietatea lui root i s se primeasc modul 1733. Astfel fiierele pot fi
141
depozitate aici de utilizatori anonimi dar nu pot fi listate de ali utilizatori anonimi; - Se limiteaz numrul de octei ce se admit a fi transferai de ctre utilizatorul ftp; - Se creaz un script care s mute automat fiecare fiier depozitat n aceste directoare, la anumite intervale de timp. Se plaseaz acest scipt n fiierul /usr/lib/crontab, pentru a fi lansat periodic.
Serviciul TFTP
Se utilizeaz de obicei pentru a permite calculatoarelor gazd, fr disc, s boot-eze prin reea. TFTP este o variant mai veche de FTP i nu are mecanisme de autentificare. Conexiunea folosete portul 69 i protocolul UDP.
Serviciul telnet
Asigur accesul de la distan la un calculator. Versiunea pentru client se numete telnet iar cea pentru server telnetd. Server-ul folosete port-ul TCP 23. Daemon-ii telnet apeleaz serviciul login pentru autentificarea i iniializarea sesiunii. Apelantul furnizeaz un numr de cont i, de obicei, o parol de conectare. O sesiune telnet poate avea loc i ntre dou calculatoare de ncredere. n acest caz poate fi utilizat un telnet sigur, care face criptarea ntregii sesiuni, protejnd coninutul parolei i al sesiunii. Cele mai multe sesiuni telnet sunt ns declanate de calculatoare situate la distan, n care nu se poate avea ncredere. Parolele tradiionale nu sunt sigure, deoarece orice poriune a legturii poate fi ascultat. De aceea se recomand utilizarea parolelor de unic folosin. Se recomand ca serviciul telnet s nu apeleze serviciul log-in pentru a valida sesiunea. O soluie recomandat este folosirea server-elor de autentificare. n acest mod poate fi asigurat conectarea sigur, dar nu poate fi protejat restul sesiunii. De exemplu o a treia parte a comunicrii (neautorizat), care ascult conexiunea, poate s o rein dup ce unul dintre actorii autorizai ai acelei conexiuni crede c s-a deconectat. Acest tip de atac se numete session hijacking. mpotriva unor atacuri de acest tip se poate lupta prin criptarea ntregii sesiuni telnet. Este capital ca s se poat avea ncredere n calculatoarele de la capetele conexiunii.
142
Serviciul SMPT
Serviciul Simple Mail Transfer Protocol, SMTP, este un standard INTERNET pentru transferul de pot electronic. El folosete port-ul TCP 25. Programul /usr/lib/sendmail implementeaz att clientul ct i server-ul. Alte variante ale acestui program sunt: smail, MMDF sau PMDF. Programul sendmail permite potei electronice s fie: - livrat utilizatorilor individuali; - distribuit unor liste de utilizatori, - retransmis unor alte maini, - adugat la un fiier. O adres legitim de e-mail poate fi un nume de utilizator sau un alias. Acestea din urm sunt prezente ntr-un fiier aliases, n directoarele /usr/lib,/etc, /etc/mail sau /etc/sendmail. Programul sendmail permite utilizatorilor individuali s seteze un alias pentru contul lor, prin plasarea n directorul home a unui fiier cu numele .forward. Un alt fiier, sendmail.cf , controleaz configurarea lui sendmail. Programul sendmail este foarte complex. El are numeroase probleme de securitate: - accept o parol special (wizard's password), situat n fiierul de configurare care poate fi obinut pentru obinerea unui saiu pe maina distant pe care s se ruleze un anumit program, de exemplu Shell, fr conectare la aceasta; - se pot declara utilizatori de ncredere, care pot falsifica pota sosit pe maina local; - programul poate fi compilat cu opiunea debug, lucru care a permis acces nelimitat din partea unor utilizatori externi la maina pe care se execut sendmail; - poate impune ca recepia potei electronice s se fac cu un anumit program, ceea ce permite lansarea la destinaie a unui anumit program, de exemplu Shell. Pentru a afla versiunea de sendmail cu care este echipat calculatorul dumneavoastr, conectai-v cu telnet la port-ul 25, lucru care va antrena afiarea versiunii programului. Pentru a obine cea mai nou variant de sendmail, putei apela prin ftp urmtoarea adres: ftp.cs.berkely.edu/ucb/sendmail info.cert.org/tools/sendmail/ Protocolul SMTP ar putea fi inta unor atacuri de refuzare a servicilor. Pentru asigurarea securitii potei electronice a fost conceput standardul PEM, Privacy Enhanced Mail.
Serviciul POP
Post Office Protocol, POP, reprezint un protocol care, folosind porturile 109 i 110, permite unor utilizatori de maini client s obin propria pot electronic, fr s fie nevoii s foloseasc NFS pentru accesul la un director special de pot. Exist o variant mai sigur de POP, numit POP3. n general se cere o autentificare prealabil a utilizatorilor, nainte ca acetia s acceseze pota. Acest lucru se realizeaz n mai multe feluri: - Se pot folosi parole, prin care clienii POP se autentific la server-ele POP. Din pcate ns mai muli clieni folosesc aceeai parol, ceea ce sporete vulnerabilitatea acestei metode. Fiind transmise frecvent i spre acelai port, parolele pot face obiectul unor interceptri prin ascultarea pachetelor corespunztoare. De exemplu atunci cnd un client se conecteaz la un server POP3, server-ul trimite un ir care conine o marc de timp, iar programul client i trimite numele i parola; - Se poate folosi opiunea APOP care realizeaz o autentificare de tipul ntrebare/rspuns. Este cazul protocolului POP3. Programul client nu mai trimite comenzile user i pass. n schimb se trimite comanda APOP care conine un ir hexa de 128 de bii, care reprezint prelucrarea cu funcia MD5 a adresei i a unei fraze cunoscute att de clientul autentic ct i de server; - Se poate folosi o versiune POP modificat, capabil s lucreze cu sistemul complex de autentificare Kerberos. Este de exemplu cazul programului de pot electronic EUDORA.
143
Serviciul DNS
Domain Name Server, DNS, este un serviciu format dintr-o baz de date distribuit, cu ajutorul creia se determin relaia existent ntre adresa IP i numele de gazd precum i locul n care trebuie livrat pota electronic n interiorul organizaiilor. Acest serviciu utilizeaz portul TCP i UDP 53. Procesul folosit pentru rezolvarea acestor probleme se numete resolver. Atunci cnd DNS ncearc s localizeze un nume de gazd, calculatorul apeleaz mai multe server-e de nume. Unul sau mai multe dintre acestea vor rspunde dac vor gsi corespondena nume-adres IP. n DNS se transmit mai multe tipuri de nregistrri care desemneaz: - adrese IP sau numele canonic pentru un alias, de pe un calculator gazd, - diferite calculatoare care pot primi pota pentru un anumit calculator gazd; - fac legtura invers, de la adresa IP la nume; n afara rezolvrii cererilor prezentate anterior, DNS mai furnizeaz posibilitatea transmiterii unor copii ntregi ale bazelor de date ale server-elor de nume. Este vorba despre aa numitul transfer de zon, care se utilizeaz pentru ca server-ele secundare s obin copii ale bazelor de date localizate pe server-ele principale. DNS folosete protocolul UDP pentru rezolvarea unor cereri individuale i protocolul TCP pentru transferurile de zone. n ceea ce privete securitatea, serviciul DNS are 2 probleme mari: - Riscurile pe care le implic transferurile de zone. Acestea indic modul n care este structurat o anumit reea. Transferul ilegal de zone poate fi blocat prin folosirea unui ruter care s interzic accesul la port-ul 53. - Atacurile la server-ele de nume, prin care se obine fie controlul asupra acestora fie modificarea coninutului bazei de date. Exist dou ci prin care un server de nume s fie fcut s furnizeze informaii incorecte: a) informaia greit poate fi ncrcat n memoria cache a acestuia, de la distan, prin rspunsuri false la ntrebri privind adresele; b) prin schimbarea fiierelor de configurare a server-ului, pe calculatorul unde se execut acesta. Se impune respectarea urmtoarelor recomandri privind server-ele de nume: - s se instaleze server-ul de nume pe un calculator separat, care s nu aib declarate conturi; - dac este necesar executarea server-ului de nume pe un calculator folosit i de ali utilizatori, atunci este necesar ca toate fiierele i directoarele server-ului s fie n posesia lui root i au setate drepturile de acces la 444 sau 400, pentru fiiere i 755 sau 700 pentru directoare.
Serviciul finger
Este conectat la portul TCP 79 i este folosit n dou scopuri: - Dac este apelat fr argumente el afieaz toi utilizatorii conectai n acel moment la calculator: numele, ora de conectare, numrul de telefon, etc; - Dac este apelat cu un nume drept argument, programul caut n fiierul /etc/passwd i afieaz toate informaiile legate de acel utilizator. n mod normal programul ruleaz pe calculatorul local. El poate fi lansat i pe o main distant. Acest program reprezint o cale foarte simpl de a face publice anumite date personale sau date de interes pentru alte persoane. n acest scop se folosesc dou fiiere al cror coninut, dac exist, este afiat de finger; acestea sunt .plan i .project. Existena acestor fiiere n directorul home al utilizatorului vizat prin finger, va antrena afiarea coninutului lor. Dat fiind lipsa de securitate a programului finger, anumite date referitoare la utilizatori pot fi deconspirate prin utilizarea acestui program. De aceea unii administratori de reea prefer s dezactiveze acest serviciu.
Serviciul HTTP
Programul HyperText Transfer Protocol, HTTP, este folosit pentru cererea i recepionarea
144
unor documente de la server-ele WWW. El folosete port-ul TCP 80. Clientul contacteaz un server WWW i apoi cere un fiier. Server-ul rspunde cu un document multimedia, MIME, n format ASCII sau HTML, HyperText Markup Language. Apoi documentul este afiat. Documentele HTML au trimiteri ctre imagini i pot face legturi de tip hipertext la alte documente.
Serviciul portmapper
Protocoalele RPC, Remote Procedure Call, de la SUN stau la baza multora din noile servicii. Ele folosesc portul 111, cu protocol TCP sau UDP. Persoana care creaz un serviciu de reea utilizeaz un limbaj special pentru specificarea punctelor de intrare i a parametrilor lor. Un precompilator convertete aceste specificaii n ceea ce se cheam "cioturi", stub, de fapt nite rutine pentru modulele server i client. Cu ajutorul acestor rutine, clientul poate face apeluri de subrutine ale unui server aflat la distan. Portmapper-ul este programul care implementeaz aceste RPC-uri. El este oarecum similar daemon-ului inetd, n sensul c mediaz comunicaii ntre clieni i server-e. RPC poate face autentificare criptografic utiliznd DES. Acesta este numit Secure RPC. Toate apelurile sunt autentificate utiliznd o cheie de sesiune. Aceste chei sunt distribuite folosind metoda Diffie-Hellman. Din pcate RPC-ul autentificat cu DES nu este bine integrat n multe sisteme. Protocolul standard care l utlizeaz este NFS.
Serviciul NNTP
tirile prin INTERNET sunt cel mai adesea transferate cu NNTP-Network News Transfer Protocol. El folosete portul TCP 119. Dialogul este similar celui utilizat pentru SMPT. NNTP poate fi configurrat cu o list de control al accesului, ACL, care determin ce calculatoare pot folosi acest serviciu. ACL este bazat pe nume de gazde; ca urmare aceste liste pot fi ocolite prin asculatarea pachetelor IP sau prin atacuri la DNS.
Serviciul NTP
Programul Network Time Protocol, NTP, este un ajutor important al mainilor conectate la INTERNET. Este utilizat pentru sincronizarea ceasurilor mainilor cu lumea de afar. Este un protocol sofisticat care folosete portul UDP 123. Fiecare main discut cu unul sau mai muli vecini i mainile se organizeaz ntr-un graf, funcie de distana lor pn la o surs autorizat de timp. Comparaiile ntre multiplele surse de informaie de timp permit server-elor NTP s desopere intrrile eronate.
Serviciul X-Window
Este un sistem de ferestre care utilizeaz reeaua pentru comunicaii ntre aplicaii i dispozitive I/O (ecran, mouse), ceea ce permite aplicaiilor s lucreze pe diferite maini. Acest serviciu permite folosirea n comun, de ctre mai multe programe a aceluiai display. Acest serviciu este foarte vulnerabil.
Serviciul systat
Acest program, conectat la port-ul TCP 11, furnizeaz informaii despre calculatorul gazd. De obicei se configureaz /etc/inetd.conf astfel nct conectarea la acest port s fie urmat de execuia comenzilor who sau w. Deoarece acest serviciu poate da informaii utile atacatorilor despre utilizatorii autorizai, este recomandabil ca el s fie invalidat pe calculatoarele importante.
145
- Clientul C, care tebuie autentificat, pentru a i se acorda acces la un seviciu furnizat de serverul S,
- Serverul S, la care se cere acces din partea clientului C. Procesul de autentificare se desfoar dup cum urmeaz: Un client, C, transmite o cerere server-ului de autentificare, AS, cernd acreditri pentru un anumit server, S. AS rspunde cu aceste acreditri, criptate, n cheia clientului C. Aceste acreditri constau n: 1) un "tichet" pentru server; 2) o cheie de criptare temporar (de obicei numit cheie de sesiune). Clientul transmite "tichetul" (care conine identitatea clientului i o copie a cheii sesiunii, ambele criptate n cheia serverului) serverului. Cheia sesiunii (acum mprit de client i de server) este folosit pentru autentificarea clientului i poate fi opional utilizat pentru autentificarea serverului. Ea poate fi folosit i pentru a cripta n continuare comunicaia ntre cele dou pri sau pentru a permite schimbul unei chei separate de sub-sesiune care s fie folosit pentru criptarea comunicaiei ulterioare. Implementarea Kerberos-ului const din unul sau mai multe servere de autentificare care ruleaz pe calculatoare gazd sigure. Serverele de autentificare ntrein o baz de date de utilizatori principali (utilizatori sau servere) i cheile lor secrete. Exist biblioteci de programe pentru realizarea criptrii i implementarea protocolului Kerberos. Din dorina de a aduga posibilitatea autentificrii unor tranzacii, o aplicaie de reea tipic adaug una sau dou apeluri la biblioteca Kerberos, pentru a se transmite mesajele necesare pentru realizarea autentificrii. Protocolul Kerberos const din cteva sub-protocoale (sau schimburi). Exit dou metode prin care un client poate cere acreditri unui server Kerberos. n cazul primeia, clientul trimite la AS un text n clar, cerut pentru generarea unui "tichet" pentru serverul dorit. Rspunsul este trimis criptat n cheia secret a clientului. De obicei se cere un ticket-granting ticket, (TGT), care poate fi folosit mai trziu mpreun cu the ticket-granting server (TGS). n cea de a doua metod, clientul trimite o cerere la TGS. Clientul trimite TGT la TGS n acelai fel n care el ar fi contactat orice alt server de aplicaie care necesit solicitarea de acreditri Kerberos. Rspunsul este criptat n cheia sesiunii. Odat obinute, acreditrile trebuie folosite pentru verificarea identitii utilizatorilor principali care intervin ntr-o anumit tranzacie, pentru a se asigura integritatea mesajelor schimbate ntre ei, sau pentru a asigura securitatea mesajelor. n aplicaia curent poate fi ales nivelul de protecie necesar. Pentru a se verifica identitile utilizatorilor principali dintr-o tranzacie, clientul trimite "tichetul" serverului. Deoarece "tichetul" poate fi interceptat i modificat de ctre un atacator, se transmite informaie adiional pentru a se demonstra c mesajul a fost transmis de ctre utilizatorul principal cruia i-a fost atribuit "tichetul". Aceast informaie (numit autentificare) este criptat n cheia sesiunii i include o tampil temporal. Aceasta dovedete c mesajul a fost generat recent i c nu
146
este un rspuns. Criptarea autentificatorului n cheia sesiunii demostreaz c aceasta a fost generat de ctre cineva care posed aceast cheie. Deoarece nimeni n afar de utilizatorul principal, care face solicitarea i server nu cunoate cheia sesiunii (aceasta nu este nici odat transmis n clar n reea) se obine garania identitii clientului. Integritatea mesajelor schimbate ntre utilizatorii principali mai poate fi garantat i folosind cheia sesiunii (trecut n "tichet" i coninut n acreditri). Aceast abordare asigur att detectarea atacurilor de tip rspuns ct i a atacurilor bazate pe modificarea irului de date al mesajului. Ea se bazeaz pe generarea i transmiterea valorii unei funcii hash de mesajul clientului, criptat cu cheia sesiunii. Confidenialitatea i integritatea mesajelor schimbate ntre principalii utilizatori pot fi realizate prin criptarea datelor de transmis folosind cheia sesiunii trecut n "tichet" i coninut n acreditri. Schimburile de autentificare, menionate mai sus, solicit doar accesul la citire n baza de date Kerberos. Uneori, totui, intrrile n baza de date trebuie modificate, ca de exemplu atunci cnd se adaug noi utilizatori principali sau cnd se schimb cheia unuia dintre utilizatorii principali. Asta se poate face cu ajutorul unui protocol ntre un anumit client i un al treilea server Kerberos, serverul de administrare Kerberos, the Kerberos Administration Server (KADM). Serviciul de autentificare Kerberos este descris n RFC 1510.
2. Formatul "tichetelor"
Fiecare "tichet" Kerberos conine mai multe cmpuri care sunt folosite pentru a indica diferite atribute ale acestuia. La obinerea "tichetului" clientul este interesat de semnificaia majoritii acestor cmpuri, cteva dintre ele sunt fixate n mod automat de ctre serverul care furnizeaz "tichetul". n continuare se prezint semnificaia acestor cmpuri.
147
clientul s dea un timp lung de acces la cheia sa secret i conduce la riscuri i mai mari. "Tichetele" care pot fi renoite au dou termene de expirare, primul este unul local, cnd expir "tichetul" de aceast dat iar cel de al doilea este unul global reprezentnd ultima valoare individual de timp permis pentru un termen de expirare. Clientul unei aplicaii trebuie s prezinte periodic (nainte de expirare) un "tichet" renoibil serverului Kerberos, cu opiunea de renoire, din cadrul cererii pentru acest server, setat. Serverul Kerberos va genera un nou tichet cu o nou cheie de sesiune i un moment ulterior de expirare. Toate celelalte cmpuri ale "tichetului" sunt lsate nemodificate de ctre procesul de renoire. Cnd se atinge ultimul termen de expirare permis, acel "tichet" expir permanent. La fiecare renoire, serverul Kerberos trebuie s consulte o list actualizat de "tichete" raportate furate, pentru a determina dac "tichetul" n cauz a fost raportat furat n intervalul de timp parcurs de la ultima sa renoire. n acest caz se va refuza renoirea acelui "tichet". Aa poate fi redus timpul efectiv de via al unui "tichet" furat. Cmpul de renoire al unui "tichet" este interpretat n mod normal doar de ctre serviciul tiketgranting. El poate fi ignorat de serverele de aplicaii. Totui unele servere de aplicaii mai prevztoare pot dori s nu accepte "tichete" renoibile. Dac un tichet renoibil nu este trimis la renoire, nainte de termenul su local de expirare, serverul Kerberos nu l va renoi dup expirarea acestui termen. Cmpul de renoire este resetat iniial, dar un client poate cere ca el s fie setat prin setarea opiunii de renoire n mesajul KRB_AS_REQ. Dac el este setat atunci cmpul renew-till din "tichet" conine termenul dup care "tichetul" nu va mai fi renoit.
148
nou, care poate fi generat, va avea o nou adres de reea bazat pe "tichetul" curent. Cmpul PROXIABLE permite unui client s aloce o etichet proxy unui server pentru a satisface acestuia o cerere de serviciu la distan. De exemplu un serviciu de listare, al unui client, poate eticheta ca proxy serverul de listare, permindu-i acestuia accesul la fiierele clientului, de pe un anumit server de fiiere, pentru a fi satisfcut o anumit cerere de listare. n scopul complicrii utilizrii acreditrilor furate, "tichetele" Kerberos sunt de obicei valide doar pentru acele adrese de reea incluse n mod explicit n "tichet". Din acest motiv, un client care dorete s acorde o etichet proxy trebuie s cear un nou "tichet" valid pentru adresa de reea a serviciului care va fi etichetat ca proxy. Cmpul PROXY este setat ntr-un "tichet" de ctre TGS cnd acesta genereaz un "tichet" proxy. Serverele de aplicaie trebuie s verifice acest cmp i s cear o autentificare suplimentar de la agentul care prezint "tichetul" proxy.
3 Schimburi de mesaje
n continuare se descriu interaciunile ntre clienii reelei i servere i mesajele implicate n aceste schimburi.
149
parol (cheia secret a utilizatorului). Altfel, ar fi posibil pentru cineva s schimbe parola unui utilizator). Acest schimb de mesaje, nu trebuie, prin sine nsui, s produc vreo asigurare asupra identitii utilizatorului. (Pentru a autentifica conectarea local a unui utilizator acreditrile obinute n cadrul schimbului de mesaje cu serverul de autentificare, AS, trebuie mai nti folosite ntr-un schimb de mesaje cu serviciul TGS pentru a obine acreditri pentru un server local. Aceste acreditri trebuie apoi verificate de ctre serverul local prin ncheierea schimbului de mesaje Client/Server). Schimburile de mesaje ntre client i serverul de autentificare Kerberos se bazeaz pe dou tipuri de mesaje: KRB_AS_REQ care se transmite de la client la serverul Kerberos i KRB_AS_REP sau KRB ERROR cu care se rspunde. n cerere clientul trimite, ca i text clar, propria identitate i identitatea serverului pentru care cere acreditarea. Rspunsul, KRB_AS_REP, conine un "tichet" pe care clientul s-l prezinte serverului i o cheie de sesiune care va fi "mprit" (shared) de ctre client i de ctre server. Cheia sesiunii i alte informaii adiionale sunt criptate n cheia secret a clientului. Mesajul KRB_AS_REP conine informaie care poate fi folosit pentru a se detecta rspunsuri i pentru a le asocia cu mesajele crora le rspunde. Pot aprea diferite tipuri de eroare. Acestea sunt indicate printr-un rspuns de eroare, KRB_ERROR, care se transmite n loc de KRB_AS-REP. Mesajul de eroare nu este criptat. El conine informaii care pot fi folosite pentru a-l asocia cu mesajul cruia i rspunde. Lipsa criptrii n mesajele KRB_ERROR favorizeaz abilitatea de a detecta rspunsuri sau fabricarea unor astfel de mesaje. n mod normal serverul de autentificare nu trebuie s tie care dintre clieni este utilizatorul principal numit n cerere. El trimite simplu un rspuns. Acesta este acceptabil deoarece nimeni, cu excepia utilizatorului principal a crui identitate e dat n cerere, nu va fi capabil s foloseasc acest rspuns. Informaia critic din acest rspuns este criptat n cheia acelui utilizator principal. Cererea iniial conine un cmp opional care poate fi folosit pentru a transmite informaie suplimentar care poate fi necesar pentru schimbul iniial de mesaje. Acest cmp poate fi folosit pentru preautentificare, dar mecanismul de preautentificare nu este specificat.
150
momentul de nceput. Termenul de expirare al "tichetului" va fi fixat la valoarea minim dintre urmtoarele valori: - termenul de expirare cerut n mesajul KRB_AS-REQ, - suma dintre momentul de nceput al "tichetului" i timpul de via maxim obtenabil de ctre clientul utilizator principal (baza de date a serverului de autentificare include un cmp de timp maxim de via al "tichetului" n fiecare nregistrare a acelui utilizator principal), - suma dintre momentul de nceput al "tichetului" i timpul de via maxim obtenabil asociat cu utilizatorul principal de tip server, - suma dintre momentul de nceput al "tichetului" i timpul de via maxim fixat de politica severului reelei locale. Dac diferena dintre termneul de expirare cerut i momentul de nceput este inferioar unui timp de via minim determinat de site, atunci se returneaz un mesaj de eroare de tipul KDC_ERR_NEVER_VALID. Dac termenul de expirare al "tichetului" depete ceea ce s-a determinat anterior i dac opiunea RENEWABLE-OK a fost specificat atunci cmpul RENEWABLE este setat n noul "tichet" i valoarea renew-till este setat ca i cum ar fi fost specificat opiunea RENEWABLE. Dac a fost specificat opiunea RENEWABLE sau opiunea RENEWABLE-OK i se genereaz un "tichet" renoibil atunci cmpul renew-till este setat la valoarea minim dintre valorile: - valoarea cerut pentru el, - suma dintre momentul de nceput al "tichetului" i valoarea minim dintre cele dou valori maxime de timpi de via renoibili asociate cu intrrile n baza de date a utilizatorului principal. - suma dintre momentul de nceput al "tichetului" i maximul timpului de via renoibil fixat de politica serverului reelei locale. Cmpurile noului "tichet" vor avea urmtoarele opiuni setate dac ele au fost solicitate i dac se aplic politica serverului reelei locale: FORWARDABLE, MAY-POSTDATE, POSTDATED, PROXIABLE, RENEWABLE. Dac noul "tichet" este postdatat (momentul de nceput este n viitor) i cmpul su INVALID va fi setat. Dac toate aciunile descrise mai sus s-au ndeplinit atunci serverul Kerberos genereaz un mesaj de tipul KRB_AS_REP, copiind adresele din cerere n cmpul caddr al rspunsului, plasnd orice date de preautentificare cerute n cmpul padata al rspunsului i criptnd un text n cheia clientului, folosind metoda de criptare solicitat, pe care-l trimite clientului.
151
pot fi verificate folosind o cheie secret memorat sigur. Dac aceste acreditri pot fi verificate atunci identitatea utilizatorului poate fi asigurat.
152
indic serverului c "tichetul" i nu cheia secret a clientului este criptat n cheia sesiunii. Deoarece este posibil ca serverul de aplicaie considerat s fie nregistrat pe mai multe servere de subreea, cu diferite chei, cmpul srealm, din poriunea necriptat a "tichetului", din cadrul mesajului KRB_AP_REQ, este folosit pentru a specifica care cheie secret trebuie folosit pentru decriptare. Mesajul de eroare KRB_AP_ERR_NOKEY este returnat dac serverul nu are cheia corespunztoare pentru decriptarea "tichetului". "Tichetul" este decriptat folosind versiunea cheii serverului specificat n cadrul su. Dac rutinele de decriptare detecteaz o modificare a "tichetului" (fiecare sistem de criptare trebuie s aib posibilitatea de a verifica dac a fost modificat textul criptat) atunci se returneaz mesajul de eroare KRB_AP_ERR_BAD_INTEGRITY. Autentificatorul este decriptat folosind cheia de sesiune extras din "tichetul" decriptat. Dac aceast decriptare dovedete c autentificatorul a fost modificat se returneaz mesajul de eroare de tip KRB_AP_ERR_BAD_INTEGRITY. Numele i cmpul realm ale clientului din cadrul "tichetului" sunt comparate cu cmpurile corespunztoare din autentificator. Dac ele nu se potrivesc se returneaz mesajul de eroare KRB_AP_ERR_BADAMTCH (ele pot s nu se potriveasc dac de exemplu nu s-a folosit cheia de sesiune corect pentru criptarea autentificatorului). Apoi se caut adresele din "tichet" (dac exist vreuna) i se compar cu adresa clientului, gsit de ctre sistemul de operare. Dac nu se gsete nici o potrivire sau dac serverul insisit asupra adreselor din "tichet" dar acesta nu conine nici o adres se returneaz mesajul KRB_AP_ERR_BADADDR. Dac timpul serverului local i timpul clientului difer cu mai mult dect un decalaj maxim acceptat (de exemplu 5 minute) atunci se returneaz mesajul de eroare KRB_AP_ERR_SKEW. Dac n autentificator este coninut un numr de secven, serverul l salveaz, pentru a-l folosi ulterior n prelucrarea mesajelor de tipul KRB_SAFE i/sau KRB_PRIV. Dac o subcheie este prezent, serverul o salveaz pentru o utilizare ulterioar sau o folosete n scopul generrii propriei sale alegeri pentru o subcheie care s fie returnat n mesajul KRB_AP_REP. Serverul calculeaz vrsta "tichetului" fcnd diferena dintre timpul serverului local i momentul de nceput al "tichetului", indicat n acesta. Dac momentul de nceput este ulterior momentului actual cu un interval de timp mai mare dect timpul de decalaj maxim acceptat sau dac este setat cmpul INVALID din cadrul "tichetului" atunci se returneaz mesajul de eroare KRB_AP_ERR_TKT_NYV. Altfel, dac momentul curent este ulterior momentului de expirare a "tichetului" cu mai mult dect timpul de decalaj maxim acceptat se returneaz mesajul de eroare KRB_AP_ERR_TKT_EXPIRED. Dac toate controalele descrise nu detecteaz erori atunci serverul este asigurat c clientul posed acreditrile utilizatorului principal numit n "tichet" i deci acest client este autentificat de server.
153
154
155
156
atunci serverul KDC va verifica c momentul de ncepere a trecut i c este setat cmpul INVALID. Dac este specificat opiunea PROXY atunci serverul KDC va verifica dac este setat cmpul PROXIABLE din cadrul "tichetului". Dac toate aceste verificri conduc la rezultate corecte atunci serverul KDC va genera noul tichet corespunztor. Ori de cte ori se transmite o cerere serverului Ticket-Granting, "tichetul" prezentat este verificat fiind comparat cu cele de pe o list de "tichete" anulate. Aceast list este alctuit prin memorarea unor date de generare ale "tichetelor" suspecte. Dac data de generare a "tichetului" prezentat este cuprins n intervalul de timp memorat atunci acesta va fi respins. n acest mod un "tichet" de tipul TGT sau de tipul renoibil, furat, nu poate fi folosit pentru obinerea de noi "tichete" (renoite sau de alt tip) de ndat ce furtul a fost raportat. Orice "tichet" obinut nainte de a se fi raportat c este furat va fi considerat valid (pentru c n cazul su nu va aprea interaciunea cu serverul KDC), dar numai pn la momentul su normal de expirare. Partea criptat a rspunsului din mesajul KRB_TGS_REP este cifrat cu cheia sub-sesiunii din autentificator, dac aceasta exist, sau cu cheia sesiunii din "tichetul" de tip TGT. Nu se folosete pentru criptare cheia secret a clientului.
157
i parte a informaiei de control, clientul trebuie s aleag fie utilizarea unei tampile de timp fie utilizarea unui numr de secven (fie amndou). Dup ce datele de utilizator i informaia de control au fost criptate, clientul transmite textul cifrat i informaie de tip "plic".
158
eroare este generat un cod de eroare care se folosete de ctre aplicaie. Mesajul este verificat controlnd dac versiunea de protocol i tipurile de cmp se potrivesc cu versiunea curent i respectiv cu tipul de mesaj, KRB_CRED. O nepotrivire genereaz returnarea unui mesaj de eroare de tipul KRB_AP_ERR_BADVERSION sau de tipul KRB_AP_ERR_MSG_TYPE. Apoi aplicaia decripteaz textul cifrat i prelucreaz textul n clar rezultat. Dac la decriptare se constat c datele au fost modificate, se genereaz un mesaj de eroare de tipul KRB_AP_ERR_BAD_INTEGRITY. Dac sunt prezente sau dac se cere, destinatarul verific dac raportul sistemului su de operare referitor la adresa expeditorului se potrivete cu adresa expeditorului coninut n mesaj i dac una dintre adresele destinatarului se potrivete cu adresa destinatarului din mesaj. Dac la unul dintre aceste controale se sesizeaz vreo nepotrivire atunci se genereaz un mesaj de eroare de tipul KRB_AP_ERR_BADADDR. Cmpurile tampil temporal i usec (i cmpul nonce dac se cere) sunt apoi verificate. Dac primele dou cmpuri nu sunt prezente, sau ele sunt prezente dar nu sunt setate, atunci se genereaz un mesaj de eroare de tipul KRB_AP_EPR_SKEW. Dac toate controalele descrise au condus la rezultate satisfctoare, aplicaia stocheaz fiecare dintre noile "tichete" mpreun cu cheia sesiunii i alte informaii din secvena krbCredInfo corespunztoare din partea criptat a mesajului KRB_CRED.
Cmpul de nume conine un cod pentru identificatorul principalului utilizator. Cmpul cheie conine o cheie de criptare. Aceasta este cheia secret a utilizatorului principal. Ea poate fi criptat nainte de memorare cu ajutorul unei chei de criptate a serviciului Kerberos, numit master key, pentru a o proteja, n cazul n care baza de date este compromis, dar nu i cheia master. n acest caz trebuie adugat un cmp suplimentar, pentru a indica versiunea folosit de master key. Cmpul p-kvno conine numrul versiunii de cheie secret a utilizatorului principal. Cmpul max_life conine timpul de via maxim obtenabil (diferena dintre momentul de terminare i momentul de ncepere) pentru orice "tichet" generat de acest utilizator principal. Cmpul max_renewable_life conine timpul de via total maxim obtenabil pentru orice "tichet" renoibil generat de acest utilizator principal. Un server poate oferi servicii KDC pentru mai multe domenii de securitate, att timp ct reprezentarea n baza de date ofer un mecanism de difereniere ntre nregistrrile utilizatorului principal cu identificatori care difer doar la numele domeniului de securitate. Cnd se schimb o cheie a unui server de aplicaie, dac este o schimbare de rutin (i nu rezultatul atacului asupra vechii chei), vechea cheie trebuie reinut de ctre server, pn cnd toate "tichetele" care au fost generate folsind vechea cheie au expirat. Din aceast cauz, este posibil pentru
159
unele chei s fie active pentru un singur utilizator principal. Cnd mai multe chei sunt active pentru un anumit utilizator principal, acesta va avea mai multe nregistrri n baza de date Kerberos. Cheile i versiunile de cheie vor diferi ntre nregistrri (restul cmpurilor pot s fie identice). Ori de cte ori Kerberos genereaz un "tichet" sau rspunde la o cerere iniial de autentificare, cea mai recent cheie (cunoscut de serverul Kerberos) va fi folsit pentru criptare. Aceasta este cheia cu cel mai mare numr de versiune.
160
Semnturi digitale
Se folosesc pentru autentificarea sursei mesajului i pentru verificarea integritii acestuia. Ele asigur i nerepudierea mesajului. n figura urmtoare este exemplificat modul de generare a unei semnturi digitale.
161
n loc s se cripteze informaia cu cheia public a cuiva se folosete cheia secret a utilizatorului. Dac acea informaie poate fi decriptat cu cheia public a utilizatorului atunci nseamn c a fost generat de ctre acesta. PGP folosete funcia hash MD-5 pentru a obine un rezumat (message digest) al textului n clar pe care trebuie s-l semneze utilizatorul. Cu ajutorul acestui rezumat i al cheii secrete a utilizatorului, acesta creaz semntura. PGP transmite mpreun semntura i mesajul n clar. Dup recepie destinatarul folosete PGP pentru a recompune rezumatul, verificnd n acest fel semntura. Mesajul n clar poate fi criptat sau nu. Semnarea unui text n clar este util dac unii dintre destinatari nu sunt interesai sau nu sunt capabili s verifice semntura. Att timp ct se utilizeaz o funcie hash sigur, nu exist nici o posibilitate s se copieze semntura cuiva dintr-un mesaj i s se ataeze ntr-un altul sau se altereze un mesaj semnat. Cea mai mic modificare a unui document semnat va cauza insuccesul procesului de verificare a semnturii. Semnturile digitale joac un rol important n autentificarea i validarea cheilor unor noi utilizatori PGP. n figura urmtoare se prezint procesul de generare i inserare a unei semnturi digitale.
Certificate digitale
Dup cum s-a artat la prezentarea algoritmului Diffie-Hellman, o problem major a sistemelor de criptare cu cheie public este vulnerabilitatea acestora la atacul de tip man-in-themidle. De aceea n cazul acestor sisteme de criptare este vital ca utilizatorul s fie sigur c folosete o cheie public, pentru criptarea datelor, care aparine ntr-adevr destinatarului mesajului i nu este o cheie falsificat. Aa cum s-a artat la prezentarea sistemului Kerberos, n scopul eliminrii cheilor falsificate, pot fi folosite certificatele digitale. Acestea permit autentificarea pe baza colaborrii cu o a treia entitate de ncredere. Un certificat digital este compus din trei elemente:
162
- o cheie public, - informaie proprie (de identificare a utilizatorului), - una sau mai multe semnturi digitale. Scopul utilizrii semnturilor digitale ntr-un certificat este ca acesta s ateste c informaia proprie a fost verificat i confirmat de o a treia entitate de ncredere. Deci un certificat digital este o cheie public la care se ataeaz una sau dou forme de identificare i o aprobare de la o a treia entitate de ncredere.
Distribuirea certificatelor
n cazul grupurilor mici se utilizeaz distribuirea manual a certificatelor digitale. n cazul grupurilor mai mari trebuie s se foloseasc server-e de certificare sau alte sisteme mai complexe, de tipul celor prezentate n capitolul destinat standardelor PKCS, ale firmei RSA. Structura unui certificat digital este prezentat n figura urmtoare.
PGP recunoate dou formate diferite de certificat: - certificate PGP, - certificate X.509.
163
mpreun cu algoritmul folosit mpreun cu aceast cheie: RSA, Diffie-Hellman, algortim de semntur digital, - partea de informaie a certificatului. Este vorba despre informaia de identificare a utilizatorului, cum ar fi numele su, fotografia sa, etc, - semntura digital a distribuitorului de certificate. Se mai numete i autosemntur i se construiete folosind cheia secret corespunztoare cheii publice amintit mai sus, - perioada de valabilitate a certificatului. Se specific data de generare a certificatului precum i data expirrii sale, - algoritmul de criptare simetric preferat pentru criptarea cheii. Se indic care algoritm de criptare, dintre CAST, IDEA sau DES-triplu, este preferat de ctre autoritatea care elibereaz certificatul.
Valabilitate i ncredere
Orice utilizator poate confunda un certificat real cu unul fals. Valabilitatea exprim gradul de ncredere cu care trebuie considerat c un certificat a fost elaborat de o anumit autoritate. Cnd un utilizator s-a convins c un anumit certificat este valabil el poate semna copia acestuia cu una dintre cheile de pe inelul su de chei, pentru a-i confirma autenticitatea. Dup cum s-a artat n paragraful n care a fost prezentat sitemul PEM, exist autoriti de autentificare a certificatelor, CA.
Revocarea certificatelor
Certificatele digitale sunt folositoare doar atta vreme ct sunt valabile. Cnd ele expir nu mai sunt valabile. Exist i cazuri cnd este necesar revocarea unui certificat digital nainte de data expirrii sale. Orice entitate care a semnat un certificat, poate s-i revoce propria semntur de pe acesta, de ndat ce are impresia c informaia proprie i cheia public nu mai sunt n corespondena corect sau c a fost atacat cheia public. n cazul certificatelor PGP poate fi revocat i ntregul certificat (nu numai propria semntur) de ctre una dintre entitile care l-a semnat. Un certificat PGP pot fi revocat doar de ctre autoritatea care l-a eliberat sau de ctre o entitate care a fost mputernicit de ctre aceasta s revoce certificate.
164
mprtirea cheilor
Se spune c un secret nu mai este secret dac este cunoscut de dou persoane. La fel este i n cazul unei chei secrete. Dei nu este recomandabil, uneori este necesar s se utilizeze n comun chei secrete. n aceste situaii este recomandabil ca poriuni ale cheii secrete s fie fcute cunoscute cte unei persoane, astfel nct acea cheie s poat fi folosit doar cu participarea tuturor acelor persoane.
165
n general dispozitivele de tip firewall sunt configurate pentru a proteja mpotriva accesului neautentificat din lumea extern. Dispozitive de tip firewall mai elaborate blocheaz traficul dinspre exterior spre interior dar permit utilizatorilor din interior s comunice liber cu exteriorul. Dispozitivele de tip firewall sunt importante i deoarece ele pot fi privite ca noduri n care poate fi impus securitatea. De exemplu atacurile prin modem-uri pot fi respinse, dispozitivul de tip firewall comportndu-se ca i un nregistrator de convorbiri telefonice. El nregistreaz mesajul transmis prin modem, verific securitatea acestuia i doar dac mesajul este sigur l transmite mai departe. Dispozitivele de tip firewall pot oferi administratorilor de reea i diferite informaii referitoare la traficul care le-a strbtut ntr-un anumit interval de timp (tipul de trafic, numrul de ncercri ilegale de a fora accesul, etc). Dispozitivele de tip firewall nu pot proteja mpotriva atacurilor care nu trec prin ele. Date pot fi furate dintr-o anumit reea i prin acces direct (de exemplu pe o band magnetic) sau prin intermediul modemurilor. Pentru ca s poat funciona corect, un dispozitiv de tip firewall trebuie s reprezinte o parte a unei arhitecturi de securitate bazat pe o politic coerent. Dac una dintre celelalte pri ale acestei arhitecturi de securitate nu funcioneaz corect atunci arhitectura respectiv nu este sigur. Politica de securitate a unui dispozitiv de tip firewall trebuie s fie realist i s reflecte nivelul de securitate din ntreaga reea. De exemplu un calculator gazd care deine informaii clasificate ca secrete nu necesit un dispozitiv de tip firewall, pur i simplu acesta nu trebuie conectat n reea. De asemenea dispozitivele de tip firewall nu pot proteja mpotriva atacurilor pornite din interiorul reelei. Nici mpotriva viruilor nu poate fi asigurat o protecie eficient. mpotriva acestui tip de atacuri trebuie creat o politic special a ntregii reele. Majoritatea viruilor sunt inoculai prin folosirea dischetelor i nu prin reea. n continuare se prezint cteva adrese utile pentru informare n domeniul dispozitivelor de tip firewall:
166
Dispozitivele firewall care acioneaz la nivele inferioare (reea) sunt mai rapide dar asigur un nivel de securitate mai sczut.
Figura 6.6.1. Utilizarea unui dipozitiv de tip firewall care acioneaz la nivelul reea.
Dup cum se vede n figur accesul la i de la un singur calculator gazd este controlat cu ajutorul unui router care opereaz la nivelul reea. Singurul calculator gazd, amintit mai sus este un calculator gazd de tip Bastion, adic un calculator puternic aprat care realizeaz un nod cu securitate de nivel nalt pentru a rezista atacurilor. Dispozitivul de tip firewall din figura 6.6.1 este numit screened host firewall. n figura 6.6.2 se prezint un alt exemplu de dispozitiv de tip firewall care acioneaz la nivelul reea. Dispozitivul din figura 6.6.2 se numete screened subnet firewall. n cazul utilizrii unui astfel de sistem este controlat accesul spre i dinspre o ntreag reea cu ajutorul unui router care opereaz la nivel reea. Sistemul din figura 6.6.2 este similar cu un dispozitiv de tipul screened host, doar c nu este vorba despre un singur dispozitiv ci despre o reea de dispozitive de tipul screened host.
167
Viitorul dispozitivelor de tip firewall se va gsi undeva ntre categoria care acioneaz la nivelul reea i categoria care acioneaz la nivelul aplicaie. Vor fi dispozitive care vor asigura un nivel de securitate mai mare dect dispozitivele care acioneaz la nivelul reea i o transparen mai mare dect dispozitivele care acioneaz la nivelul aplicaie. Din ce n ce mai des dispozitivele de tip firewall apeleaz la metode de criptare pentru protejarea datelor care le strbat. Dispozitivele de tip firewall cu criptare capt la capt pot fi folosite de organizaii care au mai multe puncte de
168
conectare la INTERNET, n acest fel administratorii de reea ai acestor oraganizaii, netrebuind s-i mai fac griji pentru protecia datelor sau parolelor calculatoarelor organizaiilor lor.
Server-e proxy
Un server proxy este o aplicaie care mediaz traficul ntre o reea protejat i INTERNET. De obicei astfel de server-e se utilizeaz n locul controloarelor de trafic baazte pe router-e, pentru a preveni traficul direct ntre reele diferite. Multe server-e proxy conin programe pentru autentificarea utilizatorului. O categorie popular de sever-e proxy este TIS, Internet Firewall Toolkit, care include server-e proxy pentru protocoalele: Telenet, rlogin, FTP, X-window, HTTP/Web i NNTP/Usenet. Un alt sistem de server-e proxy este numit SOCKS. Acesta poate fi compilat ntr-o aplicaie de tip client pentru a fi fcut s lucreze printr-un dispozitiv de tip firewall.
169
foarte simpl, constructorii de dispozitive de tip firewall nu trebuie s accepte ca acest tip de dirijare s fie folosit. La construcia unui dispozitiv de tip firewall trebuie blocat ntr-un anumit punct dirijarea traficului de ctre surs.
Redirecionare ICMP
O redirecionare ICMP informeaz un anumit router c trebuie s modifice ceva n tabelul su de dirijare. n acest fel pot fi evitate de exemplu drumurile blocate (din cauz c, de exemplu, un router de pe acele drumuri s-a defectat, sau este congestionat). E clar c prin falsificarea mesajelor de redirecionare ICMP poate fi atacat un anumit router i traficul prin acesta blocat. Redirecionarea ICMP poate fi folosit i pentru realizarea unor atacuri de tip negarea serviciului, service denial. De aceea multe dispozitive de tip firewall nu iau n considerare mesajele de redirecionare ICMP.
Negarea serviciului
Este imposibil, n INTERNET, s se pareze un atac de tipul negarea serviciului, datorit naturii distribuite a acestei reele. Un dispozitiv de tip firewall poate avea control doar asupra ctorva elemente locale, atacul de tip negarea serviciului putndu-se oricnd declana de la distan mai mare.
170
Firewall-1 Gauntlet GFX-94 Internet Firewall HSC GateKeeper Interceptor Interlock IRX Router KarlBridge NetGate NetLOCK(tm) NetRanger NetSeer Netra Server NetSP Private Internet Exchange PORTUS SEAL Secureconnect Sidewinder Site Patrol SmartWall SunScreen SPF-100 Turnstyle Firewall System Tiny Personal Firewall
CheckPoint Software Technologies TIS Global Technology Associates Herve Schauer Consultants Technologic ANS Livingston Enterprises KarlNet Smallworks Hughes WheelGroup enterWorks.com Sun IBM Network Translation LSLI Digital Morning Star Secure Computing Corporation BBN Planet Corp V-ONE Sun Internet Commerce Group Atlantic Systems Group TINY Software
171
Figura 6.6.4. Dispozitiv de tip firewall care funcioneaz prin filtrarea pachetelor.
Dup cum se constat analiznd figura 6.6.5, modulul IPTABLES conine 3 tabele: Mangle, Filter i NAT. Fiecare dintre aceste tabele conine anumite lanuri (chains) de dirijare: PREROUTING, INPUT, FORWARD, OUTPUT i POSTROUTING.
172
Un lan este o list de verificare cu reguli. Fiecare regul spune "dac antetul pachetului arat aa, atunci iat ce s faci cu pachetul". Dac regula nu se potrivete cu pachetul, atunci urmtoarea regul din lan este examinat. n final, dac nu mai exista reguli de examinat, nucleul (kernel) Linux se uit la politica acelui lan pentru a decide soarta pachetului. Fiecare regul sau set de reguli are o int. Dac o regul se potrivete, inta ei specific ce se va ntmpla cu acel pachet. Exist dou inte foarte simple incluse: ACCEPT i DROP. Exist i specificaii de tipul salt (jump). Aceast instruciune se folosete cnd inta unui pachet este un alt lan. Sintaxa unei reguli este de forma: Iptables [-t tabel] comand lan [identificatori] [int/salt].
Figura 6.6.6. Protecia unei reele de intreprindere format dintr-o reea local (LAN) i o zon demilitarizat (DMZ) cu un dispozitiv de tip firewall montat ntre gateway-ul reelei i Internet.
Reeaua de intreprindere este compus dintr-o reea local (LAN) i o zon demilitarizat (DMZ) cu o structur de reea privat (Virtual Private Network - VPN). Aceasta din urm este compus dintr-un server web , un server de rezerv (subversion - SVN), un sistem pe care ruleaz protocolul LDAP (Lightweight Directory Access Protocol), o baz de date de tip Oracle i un server de aplicaii (AS). Dirijarea n reeaua de intreprindere este realizat cu ajutorul unui sistem de tip gateway, care este protejat de ctre dispozitivul de tip firewall. De fapt, aa dup cum se vede n figura urmtoare deoarece dispozitivul de tip gateway are mai multe interfee de reea (cel puin dou) se poate considera c se folosete un sistem firewall de tipul dual-homed gateway.
173
Figura 6.6.8. Configurarea reelei de intreprindere prin alocare de adrese IP n vederea protejrii sale.
174
Implementarea dispozitivului de tip firewall se face prin filtrare de pachete prin programarea modului IPTABLES al dispozitivului de tip gateway. Se definesc urmtoarele lanuri de rutare: Vpn-cust i Vpn-stuff. Pentru testarea firewall - ului obinut astfel se simuleaz cteva atacuri i se msoar traficul produs n prezena acestora. Pentru msurarea traficului se utilizeaz dou tipuri de analizoare de protocoale: Ethereal (Wireshark) i Network Mapper (Nmap). Ethereal este un software folosit pentru analiza traficului. Acesta este un analizor de reea care permite vizualizarea tuturor pachetelor atunci cand se face trafic. Se pot: - face capturi de pachete, - defini filtre pentru pachete prin expresii logice, n funcie de protocol, timp etc. n figura urmtoare se prezint un exemplu de aplicare a acestui analizor de protocoale.
Figura 6.6.8. Un exemplu de aplicare al analizorului de protocoale Ethereal. Se observ succesiunea mai multor cereri i rspunsuri de ping, efectuate cu ajutorul protocolului ICMP.
Pe baza acestor capturi se genereaz grafice cu evoluia n timp a pachetelor. De exemplu pe baza datelor prezentate parial n figura anterioar se construiete graficul de mai jos.
175
Datele pot fi capturate n timp real din reele de tipul: Ethernet, FDDI (Fiber Distributed Data Interface), PPP, Token-Ring, IEEE 802.11 (standardul pentru LAN Wireless) i interfee loopback. Ethereal suport peste 700 de protocoale. Nmap este un utilitar open-source folosit pentru explorarea reelei i audit de securitate. Design-ul su permite scanarea rapid chiar i a reelelor de mari dimensiuni, dar funcioneaz foarte bine i pentru un singur calculator gazd. Nmap utilizeaz pachete IP brute pentru a determina ce hosturi sunt disponibile ntr-o reea, ce servicii (nume de aplicaii i versiuni) ofer aceste host-uri, ce sisteme de operare ruleaz, ce tipuri de filtre de pachete sunt n uz i multe alte caracteristici. n figura urmtoare se prezint un exemplu de raport obinut la sfritul unei rulri a analizorului de protocoale Nmap.
[root@krishna ~]# nmap -sS 86.125.29.227 Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-05-20 20:20 EEST Interesting ports on 86-125-29-227.oradea.rdsnet.ro (86.125.29.227): Not shown: 1676 closed ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain 80/tcp open http 199/tcp open smux Nmap finished: 1 IP address (1 host up) scanned in 0.615 seconds
Figura 6.6.10. Exemplu de raport furnizat de analizorul de protocoale Nmap.
Nmap este foarte util pentru operaiuni ca: inventarierea reelei, monitorizarea host-urilor i determinarea timpului de funcionare a serviciilor (uptime). Ieirea este o list de inte scanate, cu diferite informaii suplimentare, n funcie de opiunile utilizate. n tabel vor fi listate numrul portului, protocolul, numele serviciului i starea. Starea poate fi: deschis (open), filtrat (filtered), nchis (closed) sau nefiltrat (unfiltered). Deschis nseamn c o aplicaie de pe maina int ascult pe un port. Filtrat nseamn c un firewall, filtru sau alt obstacol blocheaz portul. Porturile nchise nu au aplicaii care s le asculte. Dispozitivului de tip firewall implementat i s-au aplicat urmtoarele teste: - Ping flood, - Syn flood, - Scanare de porturi de pe maina pe care e instalat firewall-ul, - Scanare de porturi de pe o main aflat n exteriorul reelei, - Scanare UDP. Ping flood este ncercarea de inundare cu pachete ICMP echo-request. n firewall exist o regul prin care se limiteaz rata de rspuns echo-reply, la pachetele de tip request. n figurile urmtoare se prezint cteva rezultate obinute analiznd reeaua studiat cu ajutorul analizorului de protocoale Ethereal n cazul unui astfel de atac. n figura 6.6.11 este prezentat ecranul analizorului Ethereal n prezena unui atac de tipul ping-flood n cazul n care nu se folosete firewall.
176
Figura 6.6.11. Ecranul analizorului de protocoale Ethereal n cazul unui atac de tip ping flood, n absena unui firewall.
Regula din firewall prin care se limiteaz rata de rspuns este: Iptables -A INPUT -p icmp -m limit --limit-burst 10 --limit 1/sec -j ACCEPT. n urma aplicrii acestei reguli, n prezena atacului de mai sus comportarea reelei studiate conduce la captura Ethereal al crei grafic asociat este prezentat cu rou n figura urmtoare.
Figura 6.6.13. Limitare pachete echo-reply - cu rou. Cu verde este reprezentat situaia nregistrat n absena firewall ului.
177
Atacul Syn Flood decurge n felul urmtor: Atacatorul (simbolizat prin omul gri n figura de mai jos) trimite mai multe pachete SYN, dar nu trimite server-ului napoi mesajul ACK. Conexiunea este deci semi-deschis, consumnd resursele server-ului. Un utilizator oarecare, legitim, (simbolizat prin femeia n rou) ncearc s se conecteze, ns server - ul refuz s deschid conexiunea, rezultnd astfel denial-of-service.
Dac n firewall se introduce o regul de limitare a rspunsului, la o rat de 5 mesaje pe secund, aceast situaie va fi evitat. De ce ? Filtrul token bucket (TBF) va conine attea jetoane cte s-au impus prin parametrul burst, 10 n acest caz. Adic primele 10 pachete care sosesc vor primi jetoane, avnd dreptul s mearg mai departe. Apoi fiecare pachet care sosete, va primi un jeton tot la 5 secunde, deci indiferent dac exist cereri de conexiune, sistemul nu poate s rspund dect la acest interval, limitndu-se astfel inundarea cu pachete SYN. n continuare se analizeaz modul n care rspunde reeaua studiat n prezena respectiv absena firewall ului la un atac de tip syn flood. n acest scop se folosete din nou analizorul de protocoale Ethereal. n figura 6.6.15 se prezint graficul asociat capturii efectuate de analizorul de protocoale n cazul n care reeaua este atacat prin syn-flood i nu este protejat de firewall.
Figura 6.6.15. Atac Denial-of-Service. Cu rou sunt reprezentate mesajele SYN iar cu negru mesajele SYNACK.
178
Regula din firewall prin care se mpiedic acest atac este: Iptables -p TCP -syn -m limit --limitburst 10 --limit 5/sec -j ACCEPT. n urma conectrii firewall-ului astfel configurat i a efecturii unei noi capture se obine graficul asociat prezentat n figura urmtoare.
Figura 6.6.16. Respingerea unui atac de tip Denial-of-Service. Mesajele SYN-ACK nregistrate n absena firewall ului sunt reprezentate cu negru iar cele nregistrate n prezena acestui dispozitiv de protecie sunt reprezentate cu rou.
n continuare se prezint un test de scanare de porturi a unei maini care aparine reelei de intreprindere care trebuie protejat efectuat de pe maina pe care e instalat firewall-ul. De aceast dat fiind vorba despre o scanare se folosete analizorul de protocoale Nmap. Din consola de Linux, cu privilegii de root, se d urmtoarea comand Nmap: [root@krishna ~]# nmap -sS 86.125.29.227 Raportul pe care l d analizorul de protocoale este: Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-05-20 20:20 EEST Interesting ports on 86-125-29-227.oradea.rdsnet.ro (86.125.29.227): Not shown: 1676 closed ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain 80/tcp open http 199/tcp open smux Nmap finished: 1 IP address (1 host up) scanned in 0.615 seconds Se observ c pe maina scanat exist 4 porturi deschise: ssh, DNS, HTTP i SMUX (protocol SNMP de multiplexare). Dac aceeai main este scanat de ctre o alt main care nu aparine reelei de intreprindere pe care o protejm, dnd din consola de Linux, cu privilegii de root aceeai comand ca i mai nainte raportul Nmap devine: Initiating SYN Stealth Scan against 86.125.29.227 [1663 ports] at 13:47 Discovered open port 22/tcp on 86.125.29.227 SYN Stealth Scan Timing: About 3.52% done; ETC: 14:01 (0:14:01 remaining) SYN Stealth Scan Timing: About 62.93% done; ETC: 14:10 (0:08:35 remaining) The SYN Stealth Scan took 1377.45s to scan 1663 total ports. Host 86.125.29.227 appears to be up ... good. Interesting ports on 86.125.29.227: (The 1661 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE 1723/tcp closed pptp Nmap finished: 1 IP address (1 host up) scanned in 1377.487 seconds
179
Portul SSH este deschis, deoarece conexiunea la main s-a fcut de ctre un utilizator autentificat (user/parola). Restul porturilor sunt nchise, aa cum i trebuie ele s apar pentru un utilizator care este n exterior. Dei cele mai multe servicii n Internet folosesc protocolul TCP, serviciile UDP sunt de asemenea foarte utilizate. DNS (Domain Name System), SNMP (Simple Network Management) i DHCP (Dynamic Host Configuration Protocol) sunt cele mai cunoscute. Acest tip de scanare este mult mai lent dect cea TCP, dar este foarte util deoarece un atacator sigur nu va ignora acest protocol. Scanarea funcioneaz n felul urmtor: se trimite un antet UDP la portul int. Dac se returneaz o eroare ICMP unreachable (tip 3, cod 3), portul este nchis. Alte erori ICMP (tip 3, cod 1,2,9,10 sau 13) marcheaz portul ca fiind filtrat. Dac nu se primete nici un rspuns, portul este clasificat ca fiind deschis/filtrat. Acest lucru nseamn c portul poate fi deschis sau c un filtru de pachete blocheaz comunicaia. n continuare se prezint rezultatele scanrii UDP a porturilor unei maini din reeaua de intreprindere pe care o studiem efectuat de pe dou maini, una din interiorul i cea de a doua din exteriorul acestei reele. n cazul scanrii UDP din interiorul reelei, cu privilegii de root se ruleaz urmtoarea comand cu Nmap: [root@krishna tmp]# nmap -sU gw Rezultatul scanrii este: Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-05-20 22:30 EEST Interesting ports on 10.0.0.1: Not shown: 1479 closed ports PORT STATE SERVICE 53/udp open|filtered domain 67/udp open|filtered dhcps 68/udp open|filtered dhcpc 123/udp open|filtered ntp 137/udp open|filtered netbios-ns 138/udp open|filtered netbios-dgm 161/udp open|filtered snmp 32768/udp open|filtered omad Nmap finished: 1 IP address (1 host up) scanned in 1.808 seconds Interpretarea scanrii: Se observ c porturile 53 (DNS), 67 (DHCPS), 68 (DHCPC), 123 (NTPNetwork Time Protocol), 137 (NetBios-NS), 138 (NetBios-DGM) i 161 (SNMP) sunt n starea open|filtered, ceea ce nseamn c exist un mecanism de filtrare (firewall-ul). Deci regulile de filtrare din firewall funcioneaz corect. n cazul scanrii din exteriorul reelei comanda Nmap este urmatoarea: [root@localhost ~]# nmap -vv -sU -F 86.125.29.227 -P0 Aceasta este o scanare rapid (specificat prin parametrul -F), iar prin parametrul -PO se specific comanda "No Ping" (pentru a trece peste testul de "descoperire host"). Rezultatul scanrii: Initiating SYN Stealth Scan against 86.125.29.227 [1663 ports] at 13:47 Discovered open port 22/tcp on 86.125.29.227 SYN Stealth Scan Timing: About 3.52% done; ETC: 14:01 (0:14:01 remaining) SYN Stealth Scan Timing: About 62.93% done; ETC: 14:10 (0:08:35 remaining) The SYN Stealth Scan took 1377.45s to scan 1663 total ports. Host 86.125.29.227 appears to be up ... good. Interesting ports on 86.125.29.227: (The 1661 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE 22/tcp open ssh 1723/tcp closed pptp
180
Nmap finished: 1 IP address (1 host up) scanned in 1377.487 sec Raw packets sent: 3509 (140KB) | Rcvd: 3392 (156KB) Interpretare: Singurul port care apare deschis este SSH, dar acest lucru este normal deoarece conexiunea s-a fcut prin SSH, ns n mod autorizat (user/parola), pentru a putea efectua testul de la distan (nu din reeaua local). n cazul n care un atacator ar incerca o astfel de scanare, nu ar reui, deoarece mai nti trebuie s se conecteze la main i nu poate face acest lucru dect dac obine (n mod fraudulos) un user i o parol. n urma testelor efectuate se constat c soluia de dispozitiv firewall propus n acest studiu de caz este eficient.
181