Sunteți pe pagina 1din 159

Securitatea transmiterii informaiei prin INTERNET

CURS Alexandru Isar

Facultatea de Electronic i Telecomunicaii 2002

Cuprins
Introducere Capitolul 2. Protecia calculatoarelor neconectate n reea 2.1.Autentificarea utilizatorului 2.1.1. Sisteme cu parole 2.1.1.1. Avantajele sistemelor cu parole 2.1.1.2. Dezavantaje 2.1.1.3. Reguli pentru creterea securitii asigurate de sistemele cu parole 2.2. Viruii calculatoarelor 2.2.1. Clasificri 2.2.2. Moduri de funcionare a viruilor 2.2.2.1. Activarea viruilor n cazul calculatoarelor IBM-PC 2.2.3. Modaliti de detectare a viruilor 2.2.4. Programe anti-virus 2.2.5. Elaborarea unei politici de protecie anti-virus Capitolul 3. Protecia reelelor de calculatoare 3.1.Categorii de atacuri asupra reelelor 3.1.1. Atacuri pasive 3.1.2. Atacuri active 3.1.3. Necesiti de securitate n reele 3.2.Securitatea LAN-urilor 3.2.1. Standardizarea securitii n sisteme deschise 3.2.1.1. Standarde de evaluare a ncrederii Capitolul 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 Capitolul 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.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 Capitolul 6. Securitatea servicilor INTERNET 6.1. Protocoale TCP/IP 6.1.1. Protocoale de nivel transport 6.1.2. Analiza de protocoale 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 1 3 3 3 3 3 4 5 6 7 8 9 10 10 12 12 12 12 13 13 16 16 17 17 17 19 20 24 24 25 25 29 29 29 31 38 41 42 46 47 52 54 55 60 60 64 64 65 66 71 74 74 90 98 103 104 105 106

6.3.2.1. Arhitectura securitii ISO 6.3.2.2. Securitatea servicilor TCP/IP 6.3.2.2.1. Arhitectura securitii pentru nivelul IP 6.3.2.2.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. Securitatea potei electronice 6.5.1. Pachetul de programe PGP, Pretty Good Privacy 6.6. Sisteme de tip firewall 6.6.1. Produse de tip firewall

108 111 111 115 121 122 123 131 147 148 153 157

Introducere Scopurile securitii calculatoarelor i reelelor de calculatoare


S asigure cofidenialitatea; Doar persoanele autorizate s poat avea acces la informaie; S asigure integritatea informaiei; Aceasta este o sarcin mai dificil; Atributele integritii sunt: precizia, acurateea, consistena, informaia s fie modificat doar n moduri permise de persoane autorizate. Exist 3 aspecte mai importante ale integritii informaiei: - S nu se efectueze dect aciuni autorizate, - S se separe i s se protejeze resursele, - S se detecteze i s se corecteze erorile. S se asigure disponibilitatea datelor i servicilor; i aceasta este o sarcin mai dificil; Principalul atribut al disponibilitii este utilizabilitatea (capacitatea de a satisface nevoi). Se urmrete aceesul ct mai rapid la rezultate i corectitudinea; S se asigure autenticitatea; s se cunoasc originea diferitelor obiecte informaionale i modificrile pe care le-au suferit acestea; S se asigure nerepudierea; autorii unei informaii s nu se poat dezice de aceasta.

Civa dintre termenii utilizai frecvent n securitatea calculatoarelor i reelelor sunt: Sistem de calcul, hard, soft, date; Expunere; o form de pierdere de informaie; Vulnerabilitatea; slbiciune care poate fi exploatat pentru pierderea de informaie; Atac; ncercarea de a exploata vulnerabilitatea; Control; msur de reducere a vulnerabilitii; - Costul controlului; se msoar n ; - Bani; - Timp; - Cheltuit; - Operaional; - de calculator; ntrziere n reea; - disponibilitate; se msoar n; - cicluri de unitate central de microprocesor; - spaiu; fizic; - de memorie; - de disc; - Principiul eficienei: Un control este eficient numai dac este utilizat corespunztor. "Folosete-l sau pierde-l". Analiza de risc i planificarea securitii; - Asumarea riscului; - Estimarea valorii; Care este importana funcional a misiunii ?; Este capabil organizaia s funcioneze fr acea resurs ?; - Estimarea "inamicului"; Care este cauza pierderii resursei de informaie ? Estimarea slbiciunilor sistemului de calcul; 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.

Capitolul 2 Protecia calculatoarelor neconectate n reea


Modelul de securitate pentru un calculator seamn cu o ceap, bazndu-se pe mai multe nivele de securitate: 1) Nivelul fizic: interzicerea accesului fizic al persoanelor neautorizate la calculator (ncuiere n spaii protejate) 2) Nivelul logic: - Controlul accesului la resursele i serviciile sistemului de calcul; Securitatatea accesului: controleaz dac i cnd calculatorul este accesibil altor utilizatori, dac un utilizator care solicit o conectare este ndreptit la aceasta i ce drepturi are el (sistem de parole), - Securitatea serviciilor: controleaz accesul la diferitele servicii ale sistemului; cozi de ateptare, Intrri-Ieiri la hard-disk sau gestiunea server-ului.

2.1. Autentificarea utilizatorului


Autentificarea utilizatorului poate fi realizat pe baza a ceva ce utilizatorul posed, a ceva ce utilizatorul tie sau a ceva ce utilizatorul este. De exemplu utilizatorul tie parola sa.

2.1.1. Sisteme cu parole


Sunt programe care ruleaz cnd se face ncrcarea sistemului de operare, cer o parol i nu permit continuarea ncrcrii sistemului de operare pn cnd nu se introduce parola corect. O metod obinuit de a activa programul corespunztor este folosirea unei linii de tipul: DEVICE=PASSWORD.SYS n fiierul CONFIG.SYS. Prin utilizarea unei parole se face identificarea i autentificarea unui anumit utilizator, program sau operator.

2.1.1.1. Avantajele sistemelor cu parole


Aceste sisteme sunt integrate n majoritatea sistemelor de operare care se utilizeaz n prezent i utilizatorii i administratorii de reele sunt obinuii cu utilizarea lor.

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 s-i 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.

2.1.1.3. Reguli pentru creterea securitii asigurate de sistemele cu parole


n loc s se aleag euristic parola, se poate face apel la generatoarele automate de parole. Pentru evitarea atacurilor bazate pe utilizarea forei brute sistemul de operare poate fi configurat s accepte doar un numr limitat de ncercri de introducere a parolei. Dac dup consumarea acestui numr limitat de ncercri nu s-a introdus parola corect atunci calculatorul se decupleaz automat. Dac parola se alege euristic atunci aceasta trebuie s fie de lungime maxim, s conin toate categoriile de caractere disponibile i s nu aparin unui dicionar de parole online existent. Este bine ca parola s fie schimbat periodic. Se recomand controlul accesului i criptarea fiierului de parole de pe server. Alte reguli utile pentru alegerea parolelor sunt prezentate la adresa: http://www.stack.nl/~galactus/remailers/passphrase-faq.html Protecia prin cifrare Presupune autentificarea bazat pe criptare respectiv cifrarea fiierelor de date. Prin cifrarea 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. Cifrarea poate rezolva aceast contradicie simplu i eficient. E necesar doar cifrarea tuturor copiilor fiierului considerat. Autentificarea bazat pe chei cifrate 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 cunoscut dispozitiv de tip memory token folosit pentru autentificare ntr-un sistem de calcul. 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.
4

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. 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.

Documentele din d\isar\securitate\virusi+3 pag.500

2.2. Viruii calculatoarelor


Termenul de virus de calculator a fost introdus, n anul 1972, de ctre Fred Cohen, pe baza analogiei cu termenul de virus biologic. Virus este termenul latin pentru otrav. Un virus de calculator este un program (cu lungimea cuprins ntre 200 i 4000 de octei) care i copiaz propriul cod n unul sau mai multe programe "gazd" mai mari, atunci cnd este activat. Atunci cnd se execut aceste programe, se execut i virusul, continundu-se rspndirea sa. Dup cum s-a artat viruii fac parte dintr-o categorie de programe care ncearc s ascund funcia pe care o au de ndeplinit (malicious programs). Din aceast categorie mai fac parte i programe de tipul Trojan horses (care sub pretextul realizrii unei alte funcii reuesc s ajung n memoria calculatorului, de exemplu un astfel de program poate realiza "infiltrarea" unui virus n memoria unui calculator), programe de tip "vierme" care au capacitatea de a trece de pe un sistem de calcul pe un altul i se execut independent de excuia altor programe ("gazd"), programe de tip "bacterie", care se reproduc pn absorb ntreaga capacitate de memorie a sistemului pe care au fost instalate i programe de tipul "bomb" care se decleaneaz doar atunci cnd se ndeplinesc anumite condiii (de exemplu se ajunge ntr-o zi de vineri la data de 13). n prezent se cunoate un numr foarte mare de virui de calculator. De exemplu o list a acestora poate fi obinut de la adresa http://www.f-secure.com/vdescs/ La aceast adres lista este ordonat alfabetic. De exemplu la litera R pot fi gsii urmtorii virui: 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), 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,
5

RITT.6917, RM, RMA-Hammerhead, 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 obinut utiliznd un produs al aceleiai firme, 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. 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 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. Alte categorii de virui Virui de tip STEALTH Modific fiierele n funcie de rezultatul monitorizrii funciilor sistemului folosite de programe pentru a citi fiiere sau blocuri fizice de pe mediile de nregistrare, pentru a falsifica rezultatele acestor funcii astfel nct programele care ncearc s citeasc aceste zone s vad formele iniiale neafectate de virus n locul formelor reale, actuale, infectate. n acest fel modificrile efectuate de virus rmn neafectate de programele anti-virus. 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 execut i 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. 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.

2.2.2. Moduri de funcionare a viruilor


Funcionarea viruilor, dup ce acetia au ajuns n memoria calculatorului, se bazeaz pe alterarea ntreruperilor standard utilizate de sistemul de operare i de BIOS (Basic Input/Output

System). Aceste modificri se realizeaz astfel nct virusul s fie apelat de alte aplicaii cnd acestea sunt activate. PC-urile uilizeaz numeroase ntreruperi (att hard ct i soft) pentru a coopera cu evenimente asincrone. Toate serviciile DOS-ului i BIOS-ului sunt apelate de utilizator prin parametrii stocai n regitrii, cauznd ntreruperi soft. Cnd se solicit o ntrerupere, sistemul de operare apeleaz rutina a crei adres o gsete n tabelul de ntreruperi. n mod normal acest tabel conine pointeri spre regiuni din ROM sau spre regiuni rezidente n memorie din DOS. Un virus poate modifica tabelul de ntreruperi astfel nct execuia unei ntreruperi s genereze rularea sa. Un virus tipic intercepteaz ntreruperea specific DOS-ului i permite rularea sa nainte de rularea serviciului DOS cerut curent. Dup ce un virus a infectat un anumit program el ncearc s se mprtie i n alte programme sau eventual n alte sisteme. Majoritatea viruilor ateapt ndeplinirea unor condiii favorabile i apoi i continu activiatatea.

2.2.2.1. Activarea viruilor n cazul calculatoarelor IBM-PC


1. Infectarea secvenei de ncrcare (boot) a sistemului de operare Aceast secven are 6 componente: a) Rutinele ROM BIOS; b) Executarea codului din tabela partiiilor; c) Executarea codului din sectorul de boot; d) Executarea codului IO.SYS i MSDOS.SYS; e) Executarea comenzilor Shell din COMMAND.COM; f) Executarea fiierului batch AUTOEXEC.BAT a) La boot-are calculatorul execut un set de instrucii din ROM. Acestea iniializeaz hard-ul calculatorului i furnizeaz un set de rutine de intrare-ieire de baz, BIOS-ul. Rutinele din ROM nu pot fi infectate (deoarece n aceast memorie nu se poate scrie). 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 exist i 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 hard-disk 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 c i 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.

2. Infectarea unui program utilizator Acestea sunt programe de tipul .COM sau .EXE. Programele de tipul .COM conin la nceput o instruciune de tipul jump la o anumit adres. Viruii pot nlocui aceast adres cu adresa lor. Dup execuia virusului se efectueaz jump-ul la adresa specificat la nceputul programului .COM infectat i se ruleaz i acest program. 3. Modaliti de reziden n memoria sistemului Cei mai periculoi virui folosesc o varietate de tehnici de rmnere n memorie, dup ce au fost executai prima oar i dup ce s-a executat pentru prima oar, primul program "gazd". Toi viruii de boot cunoscui sunt astfel de virui. Dintre acetia pot fi menionai viruii Israeli, Cascade sau Traceback. Aceast proprietate a viruilor rezideni n memorie este datorat faptului c ei afecteaz ntreruperile standard folosite de programele DOS i BIOS. De aceea aceti virui sunt apelai, involuntar, de ctre orice aplicaie care solicit servicii de la sistemul de operare. De fapt, aa cum s-a artat deja, n paragraful "Moduri de acionare a viruilor", viruii modific tabela de ntreruperi, astfel nct la fiecare ntrerupere s fie executat i programul virus. Deturnnd ntreruperea de tastatur, un virus poate intercepta comanda de reboot-are soft CTRL-ALT-DELETE, poate modifica semnificaia tastelor apsate sau poate face s fie invocat la fiecare apsare de tast. La fel pot fi deturnate i ntreruperile de BIOS sau de DOS.

2.2.3. Modaliti de detectare a viruilor


Cele mai importante manifestri ale unui calculator care indic prezena unui virus sunt: modificrile n dimensiunile fiierelor sau n coninutul acestora, modificarea vectorilor de ntrerupere, sau realocarea altor resurse ale sistemului. Din pcate aceste manifestri sunt sesizate 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 bootare 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 kilooctei 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.

2.2.4. Programe anti-virus


Nu exist o cea mai bun strategie mpotriva viruilor. Nici un program antivirus nu poate asigura o protecie total mpotriva viruilor. Se pot ns stabili strategii anti-virus bazate pe mai multe nivele de aprare. Exist trei tipuri principale de programe anti-virus, precum i alte mijloace de protecie (ca de exemplu metodele hard de protecie la scriere). Cele trei tipuri principale de programe anti-virus sunt: 1) Programele de monitorizare. Acestea ncearc s previn activitatea viruilor. De exemplu programele: SECURE sau FluShot+. 2) Programele de scanare. Caut iruri de date specifice pentru fiecare dintre viruii cunoscui dar care s nu poat aprea n programele sntoase. Unele dintre aceste programe anti-virus folosesc tehnici euristice pentru a recunoate viruii. Un program de scanare poate fi conceput pentru a verifica suporturi de informaie specificate (hard-disk, dischet, CD-ROM) sau poate fi rezident, examinnd fiecare program care urmeaz s fie executat. Majoritatea programelor de scanare conin i subrutine de ndeprtare a unui virus dup ce acesta a fost detectat. Cteva exemple de astfel de programe sunt: FindViru, din cadrul programului Dr Solomon's Anti-Virus Toolkit, programul FPROT al firmei FRISK sau programul VIRUSCAN conceput la firma McAfee. Dintre programele de scanare rezidente pot fi amintite programele V-Shield sau VIRUSTOP realizate la firma McAfee. Dintre programele de scanare euristic poate fi menionat programul F-PROT. 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 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 s-l 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.

2.2.5. Elaborarea unei politici de securitate anti-virus


Este bine ca metodele de aprare mpotriva viruilor s fie utilizate pe rnd pentru a se crete securitatea sistemului de calcul folosit. Un calculator PC ar trebui s includ un sistem de protecie al tabelei de partiie a hard-diskului, pentru a fi protejat de infectarea la boot-are. Acesta ar trebui s fie de tip hard sau de tip soft dar localizat n BIOS. i siteme soft de tipul DiskSecure sau PanSoft Imunise sunt destul de bune. Acest sistem de protecie ar trebui s fie urmat de detectoare de virui rezidente care s fie ncrcate ca i pri ale programelor de pornire ale calculatorului, CONFIG.SYS sau AUTOEXEC.BAT, cum sunt de exemplu programele FluShot+ i/sau VirStop mpreun cu ScanBoot. Un program de scanare cum ar fi F-Prot sau McAfee's SCAN poate fi pus n AUTOEXEC.BAT pentru a verifica prezena viruilor la pornirea calculatorului. Noile fiiere ar trebui

10

scanate pe msur ce ele sosesc n calculator. Este indicat s se foloseasc comanda PASSWORD din DRDOS pentru a se proteja la scriere toate executabilele de sistem precum i utilitarele. Pe lng metodele de protecie anti-virus deja amintite mai pot fi folosite i urmtoarele: (a) Crearea unei liste de partiii a hard-disk-ului special astfel nct acesta s fie inaccesibil cnd se boot-eaz de pe o dischet. Aceast msur este util deoarece la boot-area de pe dischet sunt evitate proteciile hard-disk-ului din CONFIG.SYS i din AUTOEXEC.BAT. O astfel de list poate fi realizat de programul GUARD. (b) Utilizarea intligenei Artificiale pentru a nva despre virui noi, i pentru a extrage noi caracteristici utile pentru scanare. Astfel de demersuri sunt fcute n cadrul programului V-Care (CSA Interprint Israel; distribuit n S.U.A. de ctre Sela Consultants Corp.). (c) Cifrarea fiierelor (cu descifrare nainte de execuie).

11

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.

12

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 protocolul TCP/IP, al 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 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:

13

- 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 anti-virus; 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 ;

14

Pasul 5: Criterii de comunicare ntre echipamentele reelei, cum ar fi programele de pot electronic folosite sau bazele de date folosite. 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 al 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 sosec 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 [Arto Karila 1991, d/isar/securitate/retele/dissert. pdf].

15

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 ------------------0|0000000 1|0123456 2|0246135 3|0362514 4|0415263 5|0531642 6|0654321 ^|0123456 ------------------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.

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 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
17

4.2. Numere prime

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)(q-1) 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.
^ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 --------------------------------------------------------------------------------------------------1| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 | 2 4 8 16 32 9 18 36 17 34 13 26 52 49 43 31 7 14 28 1 2 3 | 3 9 27 26 23 14 42 16 48 34 47 31 38 4 12 36 53 49 37 1 3 4 | 4 16 9 36 34 26 49 31 14 1 4 16 9 36 34 26 49 31 14 1 4 5 | 5 25 15 20 45 5 25 15 20 45 5 25 15 20 45 5 25 15 20 45 5 6 | 6 36 51 31 21 16 41 26 46 1 6 36 51 31 21 16 41 26 46 1 6 7 | 7 49 13 36 32 4 28 31 52 34 18 16 2 14 43 26 17 9 8 1 7 8 | 8 9 17 26 43 14 2 16 18 34 52 31 28 4 32 36 13 49 7 1 8 9 | 9 26 14 16 34 31 4 36 49 1 9 26 14 16 34 31 4 36 49 1 9 10 | 10 45 10 45 10 45 10 45 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 11 11 11 11 11 11 11 11 11 12 | 12 34 23 1 12 34 23 1 12 34 23 1 12 34 23 1 12 34 23 1 12 13 | 13 4 52 16 43 9 7 36 28 34 2 26 8 49 32 31 18 14 17 1 13 14 | 14 31 49 26 34 36 9 16 4 1 14 31 49 26 34 36 9 16 4 1 14 15 | 15 5 20 25 45 15 5 20 25 45 15 5 20 25 45 15 5 20 25 45 15 16 | 16 36 26 31 1 16 36 26 31 1 16 36 26 31 1 16 36 26 31 1 16 17 | 17 14 18 31 32 49 8 26 2 34 28 36 7 9 43 16 52 4 13 1 17 18 | 18 49 2 36 43 4 17 31 8 34 7 16 13 14 32 26 28 9 52 1 18 19 | 19 31 39 26 54 36 24 16 29 1 19 31 39 26 54 36 24 16 29 1 19 20 | 20 15 25 5 45 20 15 25 5 45 20 15 25 5 45 20 15 25 5 45 20 21 | 21 1 21 1 21 1 21 1 21 1 21 1 21 1 21 1 21 1 21 1 21 22 | 22 44 33 11 22 44 33 11 22 44 33 11 22 44 33 11 22 44 33 11 22 23 | 23 34 12 1 23 34 12 1 23 34 12 1 23 34 12 1 23 3412 1 23 24 | 24 26 19 16 54 31 29 36 39 1 24 26 19 16 54 31 29 3639 1 24 25 | 25 20 5 15 45 25 20 5 15 45 25 20 5 15 45 25 20 5 15 45 25 26 | 26 16 31 36 1 26 16 31 36 1 26 16 31 36 1 26 16 3136 1 26 27 | 27 14 48 31 12 49 3 26 42 34 38 36 37 9 23 16 47 4 53 1 27 28 | 28 14 7 31 43 49 52 26 13 34 17 36 18 9 32 16 8 4 2 1 28 29 | 29 16 24 36 54 26 39 31 19 1 29 16 24 36 54 26 39 3119 1 29 30 | 30 20 50 15 10 25 35 5 40 45 30 20 50 15 10 25 35 5 40 45 30 31 | 31 26 36 16 1 31 26 36 16 1 31 26 36 16 1 31 26 3616 1 31 32 | 32 34 43 1 32 34 43 1 32 34 43 1 32 34 43 1 32 3443 1 32 33 | 33 44 22 11 33 44 22 11 33 44 22 11 33 44 22 11 33 4422 11 33 34 | 34 1 34 1 34 1 34 1 34 1 34 1 34 1 34 1 34 1 34 1 34 35 | 35 15 30 5 10 20 40 25 50 45 35 15 30 5 10 20 40 25 50 45 35 36 | 36 31 16 26 1 36 31 16 26 1 36 31 16 26 1 36 31 16 26 1 36 37 | 37 49 53 36 12 4 38 31 47 34 48 16 42 14 23 26 27 9 3 1 37 38 | 38 14 37 31 23 49 47 26 53 34 27 36 48 9 12 16 3 4 42 1 38 39 | 39 36 29 31 54 16 19 26 24 1 39 36 29 31 54 16 19 26 24 1 39 40 | 40 5 35 25 10 15 50 20 30 45 40 5 35 25 10 15 50 20 30 45 40 41 | 41 31 6 26 21 36 46 16 51 1 41 31 6 26 21 36 46 16 51 1 41 42 | 42 4 3 16 12 9 48 36 27 34 53 26 47 49 23 31 37 14 38 1 42 43 | 43 34 32 1 43 34 32 1 43 34 32 1 43 34 32 1 43 34 32 1 43 44 | 44 11 44 11 44 11 44 11 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 45 45 45 45 45 45 45 45 45 46 | 46 26 41 16 21 31 51 36 6 1 46 26 41 16 21 31 51 36 6 1 46 47 | 47 9 38 26 12 14 53 16 37 34 3 31 27 4 23 36 42 49 48 1 47 48 | 48 49 42 36 23 4 27 31 3 34 37 16 53 14 12 26 38 9 47 1 48 49 | 49 36 4 31 34 16 14 26 9 1 49 36 4 31 34 16 14 26 9 1 49 50 | 50 25 40 20 10 5 30 15 35 45 50 25 40 20 10 5 30 15 35 45 50 51 | 51 16 46 36 21 26 6 31 41 1 51 16 46 36 21 26 6 31 41 1 51 52 | 52 9 28 26 32 14 13 16 7 34 8 31 17 4 43 36 2 49 18 1 52 53 | 53 4 47 16 23 9 37 36 38 34 42 26 3 49 12 31 48 14 27 1 53 54 | 54 1 54 1 54 1 54 1 54 1 54 1 54 1 54 1 54 1 54 1 54

18

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: Dac p i q sunt dou numere relativ prime i dac N = p q atunci

( N ) = ( p 1)(q 1) .

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 (p-1)(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.

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: ap-1 = 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 multiplii pozitivi ai lui a: a, 2a, 3a, ... (p -1)a Dac ra i sa sunt egali modulo p, atunci:

r (mod p ) a(mod p ) = s(mod p ) a(mod p )


deoarece p este numr prim i nu-l divide pe a. Adic: r = s (mod p) Dar numerele r i s sunt distincte i mai mici dect p. De aceea ultima egalitate nu poate avea loc. n consecin ipoteza fcut este absurd. De aceea se poate afirma c cei p-1 multiplii ai lui a introdui mai sus sunt distinci i nenuli. n consecin (fiind vorba de p-1 valori) ei trebuie s fie egali modulo p

19

cu numerele 1, 2, 3, ..., p-1 ntr-o anumit ordine. Prin nmulirea membrilor stngi respectiv drepi ai tuturor acestor egaliti se obine egalitatea urmtoare: a.2a.3a.....(p-1)a =1.2.3.....(p-1) (mod p) adic: a(p-1)(p-1)! = (p-1)! (mod p) mprind n ambii membri cu (p-1)! mod(p) se obine tocmai relaia din enun.

4.4. Cmpuri Galois


Un cmp Galois este un cmp finit cu pn 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 poate fi generat ca o mulime de polinoame cu coeficieni n Zp 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(28) cu ajutorul unei reprezentri polinomiale:

b7 x 7 + b6 x 6 + b5 x 5 + b4 x 4 + b3 x 3 + b2 x 2 + b1 x + b0 = bk x k
k =0

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 Z2 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: +|01 --+---0|01 1|10 *|01 --+---0|00 1|01

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 sauexclusiv). n consecin scderea polinoamelor este identic cu adunarea lor. Alternativ adunarea a doi octei n GF(28), {a7a6a5a4a3a2a1a0} i {b7b6b5b4b3b2b1b0}, se face prin adunarea modulo 2 a biilor lor corespunztori. Se obine octetul {c7c6c5c4c3c2c1c0}, unde: ci = ai bi , De exemplu urmtoarele expresii sunt echivalente:

i = 1,7.

(x 6 + x 4 + x 2 + x + 1)+ (x 7 + x + 1) = x 7 + x 6 + x 4 + x 2

(notaie polinomial)

20

{01010111} {57}

{10000011} =
{83} =

{11010100} {d4}

(notaie binar) (notaie hexazecimal)

nmulirea n reprezentare polinomial, nmulirea n cmpul lui Galois al lui 28, GF(28), notat cu , corespunde nmulirii polinoamelor corespunztoare modulo un polinom ireductibil de gradul 8. Un astfel de polinom ireductibil este:

x8 + x 4 + x3 + x + 1 sau {1b} n notaie hexazecimal.


De exemplu: {57} {83} = {c1} deoarece innd seama de reprezentrile polinomiale ale lui {57} i {83}:

(x

+ x 4 + x 2 + x + 1 x 7 + x + 1 = x13 + x11 + x 9 + x 8 + x 7 + x 7 + x 5 + x 3 + x 2 + x +

)(

+ x6 + x4 + x2 + x + 1
sau innd seama de modul n care a fost definit adunarea:

(x
Dar:

+ x 4 + x 2 + 1 x 7 + x + 1 = x13 + x11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1 mod x 8 + x 4 + x 3 + x + 1 = x 7 + x 6 + 1


m(x) R(x)

)(

x13 + x11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1
P(x)

nmulire, notat b 1 ( x ) . Acesta poate fi calculat utiliznd algoritmul lui Euclid, i determinnd polinoamele a(x) i c(x), care au proprietatea:

deoarece restul mpririi lui P(x) la m(x) este x 7 x 6 + 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

b ( x ) a ( x ) + m( x ) c ( x ) = 1 mod{m( x )} = 1 mod{m( x )}

adic: ceea ce nseamn c:

b( x ) a ( x ) b 1 (x ) = a( x )

Mai mult se poate demonstra c nmulirea este distributiv n raport cu adunarea pe GF(28), adic:

a ( x ) (b(x ) + c( x )) = a ( x ) b(x ) + a( x ) c( x )
Exemplul 2: GF(3) GF(3) este constituit din elementele 0, 1, i -1. El este generat de polinoame peste Z3 modulo polinomul x. Tabelele sale de adunare i nmulire sunt: + | 0 1 -1 --+-------0 | 0 1 -1 * | 0 1 -1 --+-------0|0 0 0

21

1 | 1 -1 0 -1 | -1 0 1 -1 | 0 -1 1 Este utilizat la construcia codurilor ternare. Exemplul 3: GF(4)

1 | 0 1 -1

Acest cmp Galois este generat de polinoamele peste Z2 modulo polinomul x2 + x + 1. Elementele sale sunt (0,1,A,B). Tabelele sale de adunare i nmulire sunt: +|01AB --+-------0|01AB 1|10BA A|AB01 B|BA10 *|01AB --+-------0|0000 1|01AB A|0AB1 B|0B1A

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(28) 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 7 + b6 x 6 + b5 x 5 + b4 x 4 + b3 x 3 + b2 x 2 + b1 x + b0 , notat cu b(x), cu x conduce la polinomul b7 x 8 + b6 x 7 + b5 x 6 + b4 x 5 + b3 x 4 + b2 x 3 + b1 x 2 + b0 x Rezultatul nmulirii x b( x ) se obine reducnd modulo m(x) rezultatul obinut anterior. Dac bitul b7 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(28) 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 b7) 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: {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} Polinoame cu coeficieni n GF(28) Pn acum coeficienii polinoamelor erau de valoare unu sau zero, fiind deci vorba despre polinoame binare. n continuare se analizeaz cazul polinoamelor cu coeficieni octei. Polinoamele cu patru termeni, cu coeficieni n cmpul specificat, sunt de forma:
22

a ( x ) = a3 x 3 + a 2 x 2 + a1 x + a 0
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 3 + b2 x 2 + b1 x + 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:

a( x ) + b( x ) = (a3 b3 )x 3 + (a 2 b2 )x + (a1 b1 )x + (a 0 b0 )

nmulirea celor dou polinoame, numit nmulire modular, se efectueaz n doi pai. Primul pas presupune dezvoltarea algebric a produsului celor dou polinoame, c( x ) = a (x ) b( x ) i identificarea coeficienilor fiecrei puteri:

c( x ) = c6 x 6 + c5 x 5 + c 4 x 4 + c3 x 3 + c 2 x 2 + c1 x + c0
unde:

c0 = a 0 b0 c1 = a1 b0 + a 0 b1 c 2 = a 2 b0 a1 b1 a 0 b2 c3 = a3 b0 a 2 b1 a1 b2 a0 b3

c 4 = a3 b1 a 2 b2 a1 b3 c5 = a3 b2 a 2 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 de reducere este x 4 + 1 , astfel nct:

x i mod x 4 + 1 = x i mod 4
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 ) = d 3 x 3 + d 2 x 2 + d1 x + d 0

cu:

d0 d1 d2 d3

= (a 0 b0 ) (a3 b1 ) (a 2 b2 ) (a1 b3 ) = (a1 b0 ) (a 0 b1 ) (a3 b2 ) (a 2 b3 ) = (a 2 b0 ) (a1 b1 ) (a 0 b2 ) (a3 b3 ) = (a3 b0 ) (a 2 b1 ) (a1 b2 ) (a0 b3 )

Dac a(x) este un polinom fixat, operaiile descrise mai sus pot fi exprimate i matricial:

23

d 0 a0 d a 1 = 1 d 2 a 2 d 3 a3

a3 a0 a1 a2

a2 a3 a0 a1

a1 b0 a 2 b1 a3 b2 a0 b3

De aceea se poate afirma c nmulirea modular se reduce la o nmulire matricial. Deoarece x 4 + 1 nu este un polinom ireductibil pe GF(28), 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:

a ( x ) = {03}x 3 + {01}x 2 + {01}x + {02}

Inversul su este:

a 1 ( x ) = {0b}x 3 + {0d }x 2 + {09}x + {0e}

Un alt polinom utilizat n programul de criptare cu cheie secret Rijndael este polinomul x 3 . 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].

4.5. Matrici MDS


Un cod separat la distana maxim, maximum distance separable code (MDS), definit peste un cmp finit, este o coresponden ntre a elemente ale acelui cmp finit i b elemente ale unui alt cmp finit, care produce un vector compus de a+b elemente, cu proprietatea c numrul minim de elemente nenule din orice vector nenul este de cel puin b + 1. Altfel spus distana dintre oricare doi vectori produi de corespondena MDS (adic numrul de elemente care difer ntre cei doi vectori) este de cel puin b + 1. Poate fi demonstrat c nu exist o alt coresponden care s aib o distan minim, ntre oricare 2 vectori produi, mai mare. De aceea se folosete denumirea de separare la distan maxim. O coresponden MDS poate fi reprezentat cu ajutorul unei matrici MDS care are axb elemente. Transformarea MDS corespunztoare, a unui anumit octet, se realizeaz prin nmulirea acelui octet, privit ca i vector, cu matricea MDS. De exemplu codurile corectoare de erori ReedSolomon sunt coduri de tip MDS. O condiie necesar i suficient ca o matrice s fie MDS este ca toate submatricele sale ptrate s fie nesingulare. Algoritmul de criptare simetric Twofish utilizeaz o matrice MDS peste cmpul Galois a lui 2 la puterea a 8-a.

4.6. Transformri Pseudo-Hadamard


O transformare Pseudo-Hadamard este o simpl operaie de mixare care poate fi implementat numeric rapid. Fiind date 2 intrri a i b, transformarea Pseudo-Hadamard pe 32 de bii este definit prin:

at = a + b b t = a + 2b

mod 2 32

( ) mod(2 )
32

O astfel de transformare este utilizat n algoritmul Twofish, putnd fi execut n dou operaii de microprocesor.

24

4.7. Funcii hash


O funcie hash , notat cu H este o funcie definit pe o mulime A, care ia valori ntr-o mulime B, format cu elemente a cror exprimare n binar se face cu acelai numr de bii, n. De obicei mulimea A reprezint mulimea mesajelor. Mulimea B are 2n elemente. Dac n nu este suficient de mare atunci funcia nu este injectiv i deci nu este inversabil. Caracteristicile funciilor hash sunt: - Fiind dat mesajul M, din A, este simplu de calculat h=H(M). - Fiind dat h este dificil de calculat M. - Fiind dat M este dificil s se gseasc un alt mesaj M' diferit astfel nct H(M)=H(M'). - Este greu s se gseasc dou mesaje aleatoare astfel nct H(M)=H(M'). Aceast proprietate este numit rezisten la coliziune. - Prin modificarea unui singur bit din M se modific muli bii din h. O funcie hash de tipul one-way este o funcie hash care este dificil de inversat. Asta nseamn c dac H(a)=b i dac se cunoate b atunci este foarte dificil s se afle a. Uneori nu exist nici o metod mai rapid de a-l afla pe a dect cea bazat pe fora brut (care cere s fie ncercate toate elementele din A). Rezult c funciile hash de tipul one-way sunt rezistente la atacuri de tip collision. Funciile hash de tipul one-way au numeroase aplicaii: - autentificare; - controlul integritii mesajelor, MIC, message integrity check; - controlul autenticitii mesajelor, MAC, message authentication check; - generarea irurilor de chei (astfel de exemple vor fi date cnd se vor prezenta funciile f, din structurile Feistel folosite de diferiii algoritmi de criptare simetric); - securitatea parolelor. Cel mai des folosit funcie hash se numete MD5 (Message Digest) i a fost introdus de Rivest n 1991. Ea transform un fiier de lungime arbitrar ntr-o valoare exprimat pe 128 de bii. Aceast funcie hash se utilizeaz la generarea semnturilor digitale, caz n care rezultatul aplicrii sale unui mesaj se numete rezumatul mesajului, MD. Aceast funcie este prezentat n [3].

4.7.1. Descrierea algoritmului MD5


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. Forma mesajului iniial este: m_0 m_1 ... m_{b-1} Terminologie i notaii ^ + X <<< s s poziii a lui X. not(X) ridicare la putere, x^i nseamn x la puterea i. adunarea modulo 2^32 a cuvintelor. o valoare exprimat pe 32 de bii obinut prin rotirea circular spre stnga cu complementul lui X obinut prin complementarea fiecrui bit al su.

XvY rezultatul aplicrii funciei sau cuvintelor X i Y obinut prin aplicarea 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

25

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 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.

26

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 /* 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

27

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 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.

28

Capitolul 5 Criptografia i securitatea reelelor


Criptografia este tiina scrierilor secrete. Ea st la baza multor servicii i mecanisme de securitate folosite n reele i mai ales n INTERNET, folosind metode matematice pentru transformarea datelor, n intenia de a ascunde coninutul lor sau de a le proteja mpotriva modificrii. Dei are o istorie ndelungat (vezi -1- sau -2-) criptografia s-a dezvoltat n ultimii ani mai ales datorit dezvoltrii reelelor de calculatoare. De aceea n anul 1975 a fost adoptat primul standard de criptare a datelor propus de IBM i numit DES (Data Encryption Standard). Acesta descrie un algoritm de criptare simetric. Criptarea se realizeaz prin intermediul unei chei care este cunoscut doar de ctre destinatarul mesajului. Pentru toi ceilali utilizatori ai reelei cheia este secret. Witfield Diffie i Martin Hellman, cercettori la uiversitatea Stanford au pus, n anul 1976, bazele criptografiei asimetrice cu chei publice. De aceast dat se utilizeaz dou chei, una secret (cunoscu t doar de destinatarul mesajului) i una public care poate fi cunoscut de orice utilizator al reelei. Pe baza cheii publice se poate face identificare sursei de unde sosete un anumit mesaj. Cu alte cuvinte folosind acest algoritm se poate face i autentificarea mesajului. De aceea Guvernul S.U.A a decis elaborarea unui standard de semntur digital bazat pe utilizarea cheilor publice i secrete. Standardul DSS (Digital Signature Standard) a fost publicat n 1991.

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 K e i K d astfel nct: C = E K e (M ) i M = D K d (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.

5.2. Algoritmi criptografici cu cheie secret


Dezvoltarea aa numitei economii informatice, nscut prin proliferarea calculatoarelor, a telecomunicaiilor i a INTERNET-ului, a transformat radical modul de a face afaceri, de a guverna, de a se distra i de a conversa cu prietenii i cu familia. Documente private, care nainte erau realizate pe hrtie, livrate n mn i inute sub lact sunt acum create, trimise i pstrate electronic. Dar majoritatea mijloacelor care asigur aceast vitez sporit i aceast uurin de comunicare au contribuit i la scderea, n mare msur, a confidenialitii acestor mesaje. ntr-o epoc electronic, o persoan interpus poate mai uor intercepta i altera mesaje dect atunci cnd comunicrile fa n fa constituiau baza schimbului de mesaje. ngrijorarea creat de noile ameninri ale securitii au condus la larga adoptare a criptografiei. n ultimii 20 de ani indivizi i organizaii au adoptat aceast tehnologie folosind-o la aproape orice, de la
29

trimiterea de e-mail-uri sau stocarea de date medicale sau legale la conducerea de la distan a tranzaciilor. Cele mai populare browser-e de WWW folosesc algoritmi criptografici care pot fi inclui i n majoritatea programelor de e-mail. Dar aa cum pot indivizii obinuii s cripteze mesaje ntr-o form de neatacat aa pot i criminalii, teroritii sau ali rufctori. Pe vremuri, poliia putea s recupereze orice document (n cel mai ru caz fornd un seif). Fora brut nu este ns util pentru a decripta 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.

30

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 sisteme de cifrare a irurilor care nu fac segmentarea n blocuri. n prezent, 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 sunt: 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) (1 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 and 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} iar: R_i = L_{i+1}
31

(3 Feistel) (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 aceleaiai 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 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 2 12 4 14 6 16 8 9 1 11 3 13 5 15 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. 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.

32

Rezultatul acestei scheme de calcul, numit pre-ieire, este subiectul unei noi permutri, prezentat n continuare, inversa permutrii iniiale: IP-1 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 56 15 55 14 54 13 53 12 52 11 51 10 50 9 49 24 64 23 63 22 62 21 61 20 60 19 59 18 58 17 57 32 31 30 29 28 27 26 25

Deci primul bit al irului de bii obinut prin aplicarea algoritmului DES este bitul al 40-lea 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.

Figura 1cript. Ordinograma algoritmului DES

33

Figura 2 cprt. Construcia funciei f din algoritmul DES.

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 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 8 0 13 14 4 13 1 0 15 7 4 4 1 14 8 15 12 8 2 2 15 11 8 3 10 6 12 5 9 0 14 2 13 1 10 6 12 11 9 5 3 13 6 2 11 15 12 9 7 3 10 5 4 9 1 7 5 11 3 14 10 0 6

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

34

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 O S6 12 1 10 15 9 2 6 8 O 10 15 4 2 7 12 9 5 6 9 14 15 5 2 8 12 3 7 4 3 2 12 9 5 15 10 11 S8 13 2 8 1 15 13 7 11 4 2 1 14 4 6 15 11 1 10 8 10 3 7 4 12 1 9 12 14 2 0 7 4 10 8 13 15 9 3 14 5 0 12 7 5 6 11 0 14 9 2 6 10 13 15 3 5 8 12 9 0 3 5 6 11 13 3 4 14 7 5 11 1 13 14 O 11 3 8 0 4 10 1 13 11 6 14 1 7 6 0 8 13 3 0 6 9 10 1 2 8 5 11 12 4 15 5 6 15 O 3 4 7 2 12 1 10 14 9 0 12 11 7 13 15 1 3 14 5 2 8 4 6 10 1 13 8 9 4 5 11 12 7 2 14 S7 4 11 2 14 15 13 0 11 7 4 1 4 11 13 12 6 11 13 8 1 0 8 13 3 12 9 7 5 10 6 1 9 1 10 14 3 5 12 2 15 8 6 3 7 14 10 15 6 8 0 5 9 2 4 10 7 9 5 0 15 14 2 3 12 7 2 13 12 0 1 10 6 8 12 6 9 6 7 12 0 O 5 10 9 11 5 3 2 15 5 14 9 S5 2 12 4 1 7 10 11 6 8 14 11 2 12 4 7 13 1 5 4 2 1 11 10 13 7 8 15 11 8 12 7 1 14 2 13 6 5 3 15 13 O 14 9 0 15 10 3 9 8 6 9 12 5 6 3 O 14 15 O 9 10 4 5 3 S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 O 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

Permutarea P poate fi descris cu ajutorul urmtorului tabel:


16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

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. n continuare se explic modul de generare a cheilor, folosite n cadrul algoritmului DES. Cheia K_i (vezi relaia (2)), pentru 1<= i <= 16, 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 detrecia 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

35

57 1 10 19 63 7 14 21

49 41 33 25 58 50 42 34 2 59 51 43 11 3 60 52 55 62 6 13 47 54 61 5 39 46 53 28 31 38 45 20

17 26 35 44

9 18 27 36

23 15 30 22 37 29 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: Numrul iteraiei Numrul de deplasri la stnga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
36

Figura 3 crpt. Generarea cheilor de criptare n cadrul algoritmului DES.

Cea de a doua variant de permutare este descris de tabelul: PC-2


14 3 23 16 41 30 44 46 17 28 19 7 52 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32

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.

37

Moduri de aplicare ale algoritmului DES


ECB - Electronic Code Book - Textul clar al mesajului, M, este mprit n blocuri de 64 de bii i fiecare dintre aceste blocuri este criptat folosind cheia K. Acest mod de aplicare este sensibil la atacuri de tipul cut&paste. CBC - Cipher Block Chaining -M este din nou segmentat n blocuri de 64 de bii. Acestea sunt cifrate ca la ECB. Se calculeaz funcia sau-exclusiv ntre blocul curent de text clar i blocul anterior cifrat. Rezultatul se cripteaz cu cheia K. La nceput se calculeaz sau-exclusiv ntre primul bloc de text clar i un vector de iniializare (IV). n scopul decriptrii, fiecare bloc este prima dat descifrat folosind cheia K i apoi se calculeaz funcia sau-exclusiv ntre rezultat i anteriorul bloc de text cifrat sau IV. Erorile de transmisie vor afecta dou blocuri. Anumii bii dintr-un bloc de text clar vor fi schimbai dac blocul precedent a fost atacat. OFB - Output Feedback -Un vector de iniializare este criptat folosind cheia K i apoi cei mai din stnga k bii ai rezultatului se utilizeaz ca i un ir cheie. Apoi se consider urmtorii (spre dreapta) k bii din vectorul de iniializare i acest nou ir este criptat pentru a se obine noul ir cheie. Pentru a se produce textul cifrat se calculeaz sau-exclusiv ntre blocurile textului clar i irurile cheie. Decriptarea este foarte simpl. Se genereaz aceleai iruri cheie i se calculeaz sau-exclusiv ntre blocurile textului cifrat i aceste iruri cheie.

Variante de DES
DES triplu - Aceast variant a fost deja menionat. DES cu sub-chei independente- La fiecare iteraie se utilizeaz o cheie independent. Aceste chei nu se mai genereaz cu metoda descris n figura 3 cprt, ci se extrag direct din cheia principal. Aceast cheie are un numr total de 768 de bii (16 iteraii x 48 de bii). n acest mod atacurile bazate pe fora brut devin impracticabile. DESX- Este o variant dezvoltat la RSA Data Security Inc. bazat pe o tehnic numit de transparen. Pe lng cheia obinuit de 56 de bii se mai genereaz i o cheie de 64 de bii, numit cheie transparent. Aceti 64 de bii sunt nsumai cu fiecare bloc de text clar nainte de aplicarea algoritmului DES clasic. Dup ultima iteraie a algoritmului DES se face suma modulo 2 ntre rezultat i cheia transparent. Aceast variant mrete securitatea la atacurile prin criptanaliz diferenial i liniar. DES generalizat (GDES). Aceast variant a fost proiectat pentru a mri viteza algoritmului. Se lucreaz cu blocuri de text clar de dimensiune mai mare, dar numrul de operaii de calcul rmne constant. Blocurile de text clar, de dimensiune variabil, sunt mprite n q sub-blocuri de 32 de bii. La fiecare iteraie se construiete funcia f pentru cel mai din dreapta sub-bloc. Rezultatul este nsumat modulo 2 cu toate celelalte sub-blocuri de text clar care sunt apoi rotite spre dreapta. Numrul de iteraii este variabil. Dac se alege un numr de 16 iteraii i valoarea 2 pentru q se obine algoritmul DES clasic. Din pcate pentru orice alegere a parametrilor, q i numr de iteraii, securitatea asigurat de GDES este mai slab dect securitatea asigurat de DES. 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 hard.

5.2.2 Algoritmul IDEA


A fost conceput n Elveia de ctre Xuejia Lai i James Massey n anul 1992. Patentul su se gsete la firma Ascom. Principala sa aplicaie este programul de criptare PGP. Este unul dintre sistemele de criptare cele mai rapide i mai sigure disponibile la ora actual. Folosete o cheie de 128 de bii. Pe baza acesteia se construiesc 52 de sub-chei cu lungimea de 16 bii fiecare. Cte dou dintre

38

acestea se utilizeaz la fiecare dintre cele 8 iteraii ale algoritmului, i cte 4 se utilizeaz naintea fiecrei iteraii i dup ultima iteraie. Nu folosete nici un tabel de alocare de bii i nici o cutie de tip S. Cifrarea i descifrarea se fac pe blocuri de cte 64 de bii. Se bazeaz pe utilizarea unor operaii algebrice utile n operaiile de criptare cum ar fi suma modulo 2, suma modulo 216 , produsul modulo 216 +1. n continuare se dau cteva explicaii referitoare la aceste nmuliri. Operaia de nmulire cu zero are ca rezultat zero i nu este o operaie inversabil. Dar nmulirea folosit n acest algoritm trebuie s fie o operaie inversabil. Numrul 216 +1 are valoarea 65537 i este prim. Pe baza tabelului de nmulire specific mulimii claselor de resturi modulo 216 +1 se constat c aceast operaie este inversabil dac se evit nmulirea cu zero (se elimin din tabel prima linie i prima coloan). Toate aceste operaii se efectueaz asupra unor sub-blocuri de 16 bii. S-a dovedit c IDEA este mai sigur dect DES la atacuri de criptanaliz diferenial.

Descrierea algoritmului IDEA


Fie cele patru sferturi ale textului clar care trebuie criptat notate cu A, B, C i D, i cele 52 de sub-chei notate cu K(1) K(52). nainte sau n cursul primei iteraii se efectueaz urmtoarele operaii: Se nmulete A cu K(1). Rezultatul va reprezenta noua valoare a lui A. Se adun modulo 216 K(2) la B. Rezultatul va reprezenta noua valoare a lui B. Se adun modulo 216 K(3) la C. Rezultatul va reprezenta noua valoare a lui C. Se nmulete D cu K(4). Rezultatul va reprezenta noua valoare a lui D. Prima iteraie propriuzis const din executarea urmtoarelor operaii: Se calculeaz suma modulo 2 dintre A i C (rezultatul se noteaz cu E). Se calculeaz suma modulo 2 dintre B i D (i se noteaz cu F). Se nmulete E cu K(5). Rezultatul reprezint noua valoare a lui E. Se adun modulo 216 noua valoare a lui E la F. Rezultatul va reprezenta noua valoare a lui F. Se nmulete noua valoare a lui F cu K(6). Se adun rezultatul, care reprezint noua valoare a lui F, la E. Se modific valorile lui A i C nsumnd modulo 2 aceste valori cu valoarea curent a lui E. Noile valori pentru A i C se substituie una celeilalte obinndu-se astfel dou dintre cele 4 blocuri iniiale ale celei de a doua iteraii i anume A i C. Se modific valorile lui B i D, nsumnd modulo 2 aceste valori cu valoarea curent a lui F. Noile valori pentru B i D se substituie una celeilalte obinndu-se astfel celelalte dou dintre cele 4 blocuri iniiale ale celei de a doua iteraii i anume B i D. Prima iteraie este prezentat n figura 4 crpt. Celelalte 7 iteraii sunt identice, doar c se folosesc celelalte sub-chei: de la K(7) la K(12) pentru cea de a doua iteraie i de la K(43) la K(48) pentru cea de a 8-a iteraie. La ultima iteraie nu se mai face substituia final dintre A i C respectiv B i D. Ultimele operaii sunt: Se nmulete A cu K(49). Se adun modulo 216 K(50) la B. Se adun modulo 216 K(51) la C. Se nmulete D cu K(52). Cele 8 iteraii ale IDEA sunt prezentate n figura 5 crpt.

Figura 4 crpt. Prima iteraie.

Figura 5 crpt. Structura algoritmului IDEA.

39

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 ;

C n = Cv + X ;

An + C n = Av + C v + X + X = Av + C v

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 216 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) 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 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.

40

5.2.3. Algoritmul BLOWFISH


Acest algoritm a fost conceput de Bruce Schneier. Este un algoritm de criptare bazat pe o structur Feistel. A fost aleas o funcie f mai simpl dect n cazul algoritmului DES obinndu-se aceeai securitate dar o eficien i cu o vitez de calcul sporite. Cea mai impotant particularitate a algoritmului Blowfish este metoda de generare a cheilor. Cheile iteraiilor precum i ntregul coninut al cutiilor de tip S sunt create prin iteraii multiple ale sistemului de criptare de bloc. n acest mod crete securitatea sistemului de criptare mpotriva atacurilor bazate pe metode exhaustive de cutare a cheilor, chiar i pentru chei scurte.

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 32 , notat cu + .

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 sub-chei 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 numit i zona P i const din 18 sub-chei de 32 de bii: P1, P2,..., P18. 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:

41

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.

5.2.4. Algoritmul TWOFISH


Twofish este un algoritm de criptare a blocurilor de 128 de bii care lucreaz cu o cheie variabil de lungime maxim de 256 de bii. Sunt folosite 40 de sub-chei de 32 de bii. La nceputul algoritmului se calculeaz suma modulo 2 ntre 4 chei i blocul de text clar, iar la sfritul su se calculeaz suma modulo 2 ntre alte 4 chei i ntregul text rezultat. Face 16 iteraii ale unei structuri Feistel folosind o funcie f bijectiv construit cu ajutorul a 4 cutii de tip S dependente de chei, cu ajutorul unei matrici fixe de dimensiune 4x4, cu ajutorul unei transformri pseudo-Hadamard, cu ajutorul unor rotaii de bii i cu ajutorul unei scheme de generare a cheilor. n fiecare iteraie sunt folosite 2 sub-chei. Acest algoritm poate fi implementat i hard folosind un numr de 14000 de pori. Liberatea de proiectare a funciei de iteraie i a sub-cheilor permite o mare variabilitate a raportului dintre viteza de calcul i lungimea programului.

O iteraie a algoritmului Twofish


Blocul de text clar este mprit n patru sferturi: Q0 ...Q3 .

42

Q3 este rotit cu o poziie spre stnga. Q0 i Q1 sunt rotite spre stnga cu 8 poziii i sunt trimise la cele 4 cutii de tip S dependente de subcheie care au intrri i ieiri de 8 bii. Apoi octeii din fiecare cutie de tip S sunt "combinai" prin nmulire matricial cu urmtoarea matrice (numit matrice MDS (Maximum Distance Separation)):
01 EF 5B 5B 5B EF EF 01 EF 5B 01 EF EF 01 EF 5B

peste cmpul Galois al lui 28. Fiind vorba despre octei este vorba despre o nmulire modular de polinoame cu coeficienii din GF(28) modulo x 8 + x 6 + x 5 + x 3 + 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 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

43

Aceast nmulire matricial corespunde unei nmuliri peste cmpul Galois al lui 28 cu polinomul modul x 8 + x 6 + x 3 + x 2 + 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 4 5 6 7 8 9 10 11 12 13 14 -----------------------------------------------T0 8 1 7 13 6 15 3 2 0 11 5 9 14 12 10 T1 14 12 11 8 1 2 3 5 15 4 10 6 7 0 9 T2 11 10 5 14 6 13 9 0 12 8 15 3 2 4 7 T3 13 7 15 4 1 2 6 14 9 11 3 0 8 5 12 15 4 13 1 10

Pentru q(1), cutiile de tip S sunt:


Intrare 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -----------------------------------------------T0 2 8 11 13 15 7 6 14 3 1 9 4 0 10 12 5 T1 1 14 2 11 4 12 3 7 6 13 10 5 15 9 0 8 T2 4 12 7 5 1 6 9 10 0 14 13 8 2 11 3 15 T3 11 9 5 1 12 3 13 14 6 4 7 15 2 0 8 10

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 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:

44

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.

Figura 6 crpt. Ordinograma algoritmului Twofish.


45

5.2.5. Algoritmul RC6


Proiectat de Ronald C. Rivest, n anul 1998 , RC6 se bazeaz pe iteraii de structuri Feistel. Acestea nu opereaz ns asupra celor dou jumti ale blocului de date, ci asupra unor perechi de sferturi ale blocului de date. ntre aceste iteraii au loc transferuri de date. Particularitatea cea mai important a acestui algoritm este utilizarea unor deplasri circulare cu numere de poziii dependente de datele de cifrat. Un alt element neliniar utilizat n construcia funciei f, specific unei structuri Feistel, utilizat n algoritmul RC6 este o funcie ptratic. Algoritmul este conceput n aa fel nct s poat lucra cu blocuri de lungime variabil, cu o cheie iniial de lungime variabil i s efectueze un numr variabil de iteraii. n continuare se prezint varianta propus pentru competiia destinat construciei standardului AES. Descrierea original este disponibil la adresa http://theory.lcs.mit.edu/~rivest . RC6 folosete 44 de sub-chei, notate S0 S43, fiecare avnd lungimea de 32 de bii. Textul n clar este segmentat n blocuri de 128 de bii. Fiecare bloc obinut astfel este mprit n 4 sferturi, de lungimi egale notate A, B, C, i D. Primii 4 octei criptai formeaz noul A, primul octet codat reprezentnd cel mai puin semnificativ octet al noului A. RC6 ncepe cu un pas iniial de albire; se calculeaz suma modulo 2 ntre B i S0, respectiv ntre D i S1. Fiecare iteraie a algoritmului RC6 folosete 2 sub-chei; pentru construcia primeia se utilizeaz S2 i S3, iteraii succesive utiliznd chei succesive. O iteraie a algoritmului RC6 se desfoar du cum urmeaz: Rezultatul aplicrii funciei f blocului B (f(x) = x(2x+1)), este rotit la stnga cu 5 poziii, ntre noul rezultat i blocul A calculndu-se suma modulo 2. Rezultatul aplicrii funciei f blocului D este rotit cu 5 poziii spre stnga i apoi se calculeaz suma modulo 2 ntre noul ir obinut i blocul C. 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 valaorea (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.


46

Dup ncheierea celei de a douzecea iteraii are loc un pas suplimentar de albire: se claculeaz 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 cword array L[0;; c - 1] Number r of rounds Output: w-bit round keys S[0; ;2r + 3] Procedure: S[0] = Pw for i = 1 to 2r + 3 do S[i] =S[i -1] + Qw A=B=i=j=0 v = 3_ maxfc; 2r + 4g for s = 1 to v do { A = S[i] =(S[i] +A + B)<<<3 B = L[j] =(L[j] +A + B)<<<(A + B) i = (i + 1) mod (2r + 4) j = (j + 1) mod c }

5.2.6. Standardul AES, Advanced Encryption Standard (Rijndael)


Algoritmul care a ctigat competiia pentru standardul AES este numit Rijndeal. Acesta realizeaz doar operaii pe octei ntregi. El este foarte flexibil deoarece dimensiunea blocurilor cu care se lucreaz poate fi aleas de valoare 128, 192 sau 256 de bii. Descrierea original a algoritmului Rijndael se gsete la adresa: http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ . n continuare se prezint varianta care lucreaz cu blocuri de 128 de bii. Rijndael are un numr variabil de iteraii. Acesta poate fi (fr a calcula ultima iteraie care nu este complet): 9 dac att blocurile ct i cheia iniial au o lungime de 128 de bii; 11 dac fie blocurile fie cheia iniial au lungimea de 192 de bii i nici una dintre ele nu are o lungime superioar acestei valori; 13 dac att blocurile ct i cheia au o lungime de 256 de bii. Pentru a cripta un bloc de date cu algoritmul Rijndael, primul pas presupune calculul unui sauexclusiv ntre blocul de text clar i o sub-cheie. Paii urmtori sunt iteraiile care se vor prezenta n continuare. Ultimul pas este constituit de ultima iteraie care este incomplet, neconinnd operaia de amestecare a coloanelor, the Mix Column step.

Iteraiile algoritmului Fiecare iteraie obinuit se efectueaz n 4 pai. Primul pas este cel de substituire al octeilor, the Byte Sub step. n acest pas fiecare octet al textului clar este substituit cu un octet extras dintr-o cutie de tip S. Cutia de tip S este descris de matricea:

47

99 48 202 173 183 52 4 7 9 82 83 106 208 69 81 188 205 196 96 70 224 194 231 108 186 232 112 97 225 155 140 65

124 1 130 212 253 165 199 18 131 59 209 203 239 249 163 182 12 167 129 238 50 211 200 86 120 221 62 53 248 30 161 153

119 103 201 162 147 229 35 128 44 214 0 190 170 2 64 218 19 126 79 184 58 172 55 244 37 116 181 87 152 135 137 45

123 242 107 43 254 215 125 250 89 175 156 164 38 54 63 241 113 216 195 24 150 226 235 39 26 27 110 179 41 227 237 32 252 57 74 76 251 67 77 127 80 60 143 146 157 33 16 255 236 95 151 61 100 93 220 34 42 20 222 94 10 73 6 98 145 149 109 141 213 234 101 122 46 28 166 31 75 189 102 72 3 185 134 193 17 105 217 233 206 85 13 191 230 15 176 84

111 197 171 118 71 240 114 192 247 204 49 21 5 154 178 117 90 160 47 132 177 91 88 207 51 133 159 168 56 245 243 210 68 23 25 115 44 136 11 219 36 92 228 121 78 169 174 8 180 198 139 138 246 14 29 158 42 148 40 223 66 104 187 22

F i g u r a 8 c r pt. O iteraie a algoritmului Rijndael.

Cel de al doilea pas al unei iteraii uzuale se numete deplasarea liniilor, the Shift Row step.

48

Considernd c blocul care trebuie construit este alctuit cu octeii numerotai de la 1 la 16, aceti octei se aranjeaz ntr-un dreptunghi i se deplaseaz dup cum urmeaz: De la
1 2 3 4 5 9 13 6 10 14 7 11 15 8 12 16

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

Aceast nmulire matricial corepunde unei nmuiri specific cmpului Galois al lui 28, definit de polinomul modul x 8 + x 4 + x 3 + x + 1 . Aceast nmulire (folosind acelai polinom modul) a fost prezentat i 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, 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).

Figura 9 crpt. O alt reprezentatre grafic a unei iteraii a algoritmului Rijndael.

49

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. 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 sau-exclusiv. 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 28 . Operaia de sau-exclusiv din cadrul pasului MC (M) este de fapt identic cu operaia de adunare definit pe cmpul Galois al lui 28 . 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

50

iar forma sa binar, folosit n algoritmul de decodare este: 1110 1011 1101 1001 1001 1110 1011 1101 1101 1001 1110 1011 1011 1101 1001 1110 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01

111 101 110 100 01 01 00 00 110 100 111 101 00 00 01 01 1100 1000 1110 1010 00 00 10 10 1011 1101 1000 1110 01 01 10 10 0 0 1 0 01 01 10 11 Generarea cheilor 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 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 27 94 179 228 2 4 54 108 188 99 125 250 211 189 8 16 32 64 128 216 171 77 154 47 198 151 53 106 212 239 197 145 57 114 97...

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...

puterile lui 2 succesive n reprezentarea din cmpul Galois al lui 28 folosit.

51

5.3. Algoritmi de criptare cu cheie public


Algoritmii criptografici prezentai pn acum erau simetrici: cei doi corespondeni, expeditorul i destinatarul cunoteau amndoi o cheie (secret pentru orice alt utilizator al reelei), care se folosea att pentru criptare ct i pentru decriptare. De aceea prima problem de securitate a acestor algoritmi este distribuia acestei chei secrete. Algoritmii de criptare cu cheie public pot rezolva aceast problem asigurnd canale de securitate secrete pentru distribuirea acestei chei. Aceti algoritmi mai ofer i o alt funcie de securitate important. Ei ofer o cale pentru ca expeditorul s semneze mesajul pe care dorete s-l expedieze, semntura putnd fi verificat de oricare dintre ceilali utilizatori ai reelei fr ca acetia s fie capabili s semneze un alt mesaj i s pretind c acesta vine din partea expeditorului considerat. O schem ingenioas care evit multe dintre problemele criptrii simetrice a fost propus n anul 1976 de profesorul Martin Hellman, de la universitatea Stanford i de fostul su student Whitfield Diffie. Schema lor de criptare cu cheie public a fost prima dat prezentat ntr-un articol din revista IEEE Transactions on Information Theory, permite destinatarului s verifice i dac expeditorul este el cel declarat n cadrul mesajului i dac mesajul a fost cumva falsificat de ctre un alt utilizator. Funcionarea acestei metode de criptare este descris n continuare. Bob i Alice au cte o copie a soft-ului, distribuit liber, de criptare cu cheie public. Fiecare folosete copia proprie pentru a crea o perche de chei. Un mesaj criptat cu una dintre cheile din aceast pereche de chei poate fi decriptat doar cu cealalt cheie din aceeai perche. Cea de a doua cheie nu poate fi generat matematic folosind doar prima cheie. Bob face cunoscut una dintre cheile din perechea sa, aceasta devenind cheia sa public. Alice face acelai lucru. Fiecare pstreaz secret cealalt cheie din pereche, care devine cheia sa privat. Dac Bob vrea s cripteze un mesaj, pe care s-l poat citi doar Alice, atunci el folosete cheia public a lui Alice (care este disponibil tuturor); dar acest mesaj va putea fi decodat doar cu ajutorul cheii secrete a lui Alice, aa cum se vede n partea de sus a figurii 10 crpt. Procesul invers; trimiterea unui mesaj criptat de la Alice la Bob este acum clarificat. De fapt, Bob i Alice pot acum schimba ntre ei fiiere criptate, fr a avea vreun canal sigur pentru transmiterea cheilor, acesta fiind un avantaj major asupra comunicaiilor bazate pe criptarea simetric. Autentificarea expeditorului este operaia de verificare a identitii dintre expeditor i 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
52

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.

Figura 10crpt. n criptarea cu cheie public (sus), Alice criptraz un mesaj folosind cheia public a lui Bob i Bob l decripteaz folosindu-i cheia privat. Aceast schem permite ca filiere 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).

53

Proprietile sale de securitate provin din dificulatea de a factoriza numere prime de valori mari. 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.

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.

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.

5.3.1. Algoritmul Diffie-Hellman


De fapt inventatorul acestui algoritm este englezul Malcolm Williamson iar anul primei sale menionri este 1974. Dei nu este util la criptarea direct a vreunui mesaj, acest algoritm este folositor pentru trimiterea de measaje secrete. De fapt cu ajutorul su poate fi generat o cheie secret pe baza unor chei publice. Funcionarea sa este urmtoarea. Cele dou pri, expeditorul i destinatarul, care cunosc aceeai cheie public, i aleg fiecare cte un numr. Fiecare aplic o anumit funcie hash numrului pe care l-a ales, folosind cheia public i transmit rezultatul celeilalte pri. Aceste rezultate sunt utile deoarece acum fiecare parte posed rezultatul aplicrii funciei hash numrului ales de ea precum i rezultatul aplicrii funciei hash numrului ales de cealalt parte iar produsul acestor rezultate este acelai. De aceea acest produs poate fi utilizat ca i o cheie public de criptare iar produsul celor dou numere orignale, alese de cele dou pri, poate fi utilzat ca i o cheie secret de criptare. Funcia hash utilizat n metoda Diffie-Hellman este A la puterea x modulo P. Aceasta nu este o funcie inversabil pe mulimea numerelor ntregi.

54

Figura 12 crpt. Un exemplu de utilizare a metodei Diffie-Hellman pentru schimbul de chei.

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 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 urmtoare.

5.3.2. Algoritmul RSA (Rivest-Shamir-Adleman)


Metoda RSA este aproape singura metod "adevrat" de criptare cu cheie public. Ea a fost publicat n anul 1977. S-a demonstrat ns recent c de fapt aceast metod a fost inventat n anul 1973 de ctre Clifford Cocks. Algoritmul RSA se bazeaz pe urmtoarele fapte matematice: Dac se ridic un numr la o putere (d), modulo un numr N, numrul original poate fi recuperat prin ridicarea rezultatului la o alt putere (e) modulo acelai numr. Cunoscnd numrul N utilizat ca i modul precum i prima putere folosit se poate determina cu uurin care a fost cea de a doua putere folosit. Algoritmul RSA are urmtoarele etape: - criptarea mesajului X;

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 )d mod( p q ) .

Cheia secret rezult cu ajutorul lui n i d.

55

Dac se dorete semnarea unui mesaj X atunci semntura poate fi generat cu formula:

S (X ) = X d

Pentru a verifica o semntur se calculeaz:

V (S ( X )) = (S ( X ))e mod( N ) = ... = X

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 ?

Figura 13 crpt. Un exemplu de aplicare a algoritmului RSA.

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.

56

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 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) (3 RSA)

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)

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:

57

-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)

(5 RSA)

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).

Ridicarea la putere a numerelor mari


Algoritmul folosit pentru ridicarea la putere a unor numere mari modulo un numr specificat se bazeaz pe o metod de nmulire numit Russian Peasant Multiplication i presupune nmuliri repetate. Algoritmul are urmtoarele etape: - Fie rezultatul egal cu 1; - Se convertete puterea dorit n binar i se noteaz cu n lungimea obinut. Se memoreaz rezultatul conversiei. Bitul cel mai puin semnificativ va fi a(1) iar bitul cel mai semnificativ va fi a(n). - Numrul care se va ridica la putere se numete baz. Pentru ridicare la ptrat rezultat=rezultat * baz - Se repet pasul anterior pn cnd se ajunge la puterea dorit. O alt metod de nmulire este metoda Schnhage-Strassen. Aceast metod merit s fie utilizat doar pentru numere foarte mari (mai mari dect numerele folosite n metoda de criptare RSA). Ea poate fi utilizat de exemplu pentru calculul puterii un million a numrului pi. Aceast metod de nmulire are la baz transformarea Fourier rapid.

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. 2 2 (a+b)*(a-b) = a -b (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.

58

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 a-b sunt de valori 29 i 11. Se constat c s-a realizat factorizarea dorit. 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.

59

5.3.3. Algoritmul El Gamal


Algoritmul de schimb de chei Diffie-Hellman a fost descris pe baza urmtoarelor operaii: - expeditorul alege numrul x i transmite A la puterea x modulo P, - destinatarul alege numrul y i transmite A la puterea y modulo P, - apoi ambele pri comunic folosind ca i cheie public A la puterea xy modulo P. Dup cum se vede nimic nu mpiedic destinatarul s declare ca i cheie public A la puterea y modulo P, permind oricrui alt utilizator al reelei s transmit un mesaj pe care expeditorul s-l citeasc, dup ce l-a ales pe x i s-l retransmit criptat cu cheia A la puterea xy modulo P, adugndui la nceput A la puterea x. Algoritmul El Gamal poate fi considerat ca i un caz particular al acestei metode. n algoritmul El Gamal pentru a transmite un mesaj unui corespondent a crui cheie public este A la puterea y modulo P, i se transmite propria cheie public, A la x modulo P i apoi mesajul, care este criptat prin nmulirea sa, modulo P, cu A la puterea xy modulo P. Algoritmul El Gamal poate fi utilizat i pentru generare i autentificare de semnturi.

5.4. Standardul de criptare cu cheie public PKCS#1


Standardele de criptare cu cheie public, PKCS, Public-Key Criptography Standards, sunt specificaii produse de ctre laboratoarele RSA, din S.U.A cu scopul de a accelera dezvoltarea criptografiei cu chei publice. Primul a fost publicat n 1991. S-a ajuns n prezent ca n multe lucrri de specialitate s se fac referiri la aceste standarde i ca ele s fie frecvent implementate. Numeroase contribuii prezentate n aceste standarde au ajuns s fie pri ale unor standarde elaborate de institute speciale de standardizare, cum ar fi documentele X9 ale ANSI sau PKIX, SET, S/MIME i SSL. Aceste standarde sunt publicate la adresa: http://www.rsasecurity.com/rsalabs/pkcs/index.html La aceast adres se gsesc urmtoarele documente: PKCS #1:Standardul criptografic RSA, care d titlul acestui paragraf. PKCS #2: O not explicativ referitoare la standardul PKCS#1. PKCS #3:Convenia de schimbare de chei Diffie-Hellman. PKCS #4: O not explicativ referitoare la standardul PKCS#3. PKCS #5: Standard de criptografie bazat pe parole. 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

60

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 vlaorea modulului N, iar pe a doua poziie, vloarea 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, prezentat mai sus. Lungimea modulului N, n octei, este numrul ntreg k care satisface condiia:

28(k 1) N 2 8k

Pentru acest standard valoare minim a lui k este 12. 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.

61

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 PKCS#1) (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 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 a cheilor i a 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 recomand i dac se utilizeaz valoarea 01 pentru BT. 7. Acest standard va fi extins n viitor pentru a include i alte valori posibile pentru BT.

62

Conversia irului de octei ntr-un ntreg Blocul criptat, EB, se convertete ntr-un ntreg, x, folosind relaia:

x = 2 8(k i ) EBi
i =1

(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(k 1)

0 x< N N.

(3PKCS#1)

deoarece EB1 = 00 i 2 Criptarea RSA

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 8(k i ) EDi
i =1

(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.
63

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. 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 oeraie cu cheie secret i BT nu are valoarea 02.

5.5. Algoritmi de semntur digital


n paragraful n care s-a prezentat metoda de criptare cu cheie public RSA s-a explicat i cum poate fi folosit aceasta la generarea i verificarea semnturilor digitale. n standardul PKCS#1 sunt prezentate i trei metode de semnare digital, bazate pe utilizarea algoritmului RSA. Cei doi exponeni d i e sunt inveri modulo N.

5.5.1. Algoritmi de semntur digital bazai pe metoda Diffie-Hellman


Pentru a semna ceva folosind algoritmul Diffie-Hellman este necesar o abordare puin diferit. Baza algoritmilor de semntur digital de acest tip este urmtoarea: Persoana care l cunoate pe x creaz dou sau trei numere diferite, care au o anumit legtur ntr ele, legtur care nu poate fi ndeplinit dect dac se cunoate x, dar a crei prezen poate fi verificat i de ctre utilizatorii care l cunosc doar pe A la puterea x. n continuare se prezint o implementare ipotetic a acestei metode. Pentru mesajul m se calculeaz produsul dintre x i m modulo Q. Acest produs se noteaz cu s. Modulul Q se alege n aa fel nct s fie satisfcut relaia P-1 = 2Q, unde P este un numr prim. Atunci un utilizator care cunoate doar valoarea lui A la puterea x poate constata c A la puterea s se obine prin ridicarea lui A la puterea x la puterea m, deoarece un document semnat const din semntura s i mesajul m i orice utilizator al reelei poate avea acces la mesajul semnat. Din pcate o astfel de procedur nu este sigur deoarece, Q fiind o valoare public, utilizatorul care l cunoate pe A la puterea x i este n posesia perechii (s,m) l poate deduce pe x, mprindu-l pe s la m modulo Q. Metodele de semntur digital utilizate n prezent necesit parametrii suplimentari, astfel nct pe baza semnturii s s nu se poat afla valoarea x. Aceste metode lucreaz aa cum este descris n continuare. Se presupune pentru nceput c sunt satisfcute relaiile: P-1=2*Q

64

unde Q este prim i n plus: Q-1=2*R unde i R este prim. Asta nseamn c nu numai P este potrivit pentru valoarea modulului folosit n algoritmul DiffieHellman ci i Q, care este mai mic. Pentru semnarea unui mesaj, m, expeditorul are cheia sa secret, x, i se construiete cheia public, A la puterea x modulo Q (n loc de A la puterea x modulo P). n plus se mai construiete o cheie secret, y, i cheia ei public corespunztoare, A la puterea y modulo P. Baza A este aleas astfel nct A la puterea Q modulo P s fie egal cu 1. De asemenea se calculeaz Y, care este egal cu ((A la puterea y modulo P) modulo Q). Att mesajul ct i semntura sunt numere modulo Q. Semntura se calculeaz ca i funcie de x i de m. Exist diferite scheme de generare a semnturii, dar toate au n comun trei numere a, b i c care sunt definite cu ajutorul mrimilor s, Y i m. Cele trei numere a, b i c satisfac ecuaia: ax + by = c modulo Q (1.SD)

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 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:

(A

mod P

a A y mod P

)b

= A c 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

5.5.2. Semnturi digitale El-Gamal


Aa dup cum s-a afirmat deja n paragraful destinat pezentrii metodei de criptare cu cheie public El-Gamal, aceasta poate fi utilizat i pentru generarea i verificarea semnturilor digitale. Fiecare utilizator al reelei este n posesia unei perechi de chei (<g,P,T>,S), format dintr-o cheie public <g,P,T> i o cheie secret S. Legtura dintre acestea este satabilit cu ajutorul algoritmului Diffie-Hellman:

T = g S mod P
Pentru un anumit mesaj m, semnatarul i alege un nou numr secret, S' i calculeaz:

T ' = g S ' mod P

65

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 X = T 'T d mod P
deoarece:

g X mod P = g S '+ d S mod (P 1) mod P = g S ' mod P ( g )d S mod (P 1) mod P = d mod ( P 1) mod P = T 'T d mod P = T ' ( g )S 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.

5.5.3. Standardul de semntur digital DSS


n anul 1994, Institutul naional de standarde i tehnologie din S.U.A. , NIST, National Institute of Standards and Technology a publicat standardul de semntur digital, Digital Signature Standard (DSS). Acest standard prezint un algoritm de semntur digital, Digital Signature Algorithm (DSA) folositor n aplicaiile n care este mai potrivit utilizarea unei semnturi digitale n locul unei semnturi scrise. Semntura numeric DSA este o pereche de numere foarte mari reprezentate ca i iruri de octei. Semntura digital este calculat folosind o mulime de reguli i o mulime de parametrii astfel nct identitatea semnatarului i integritatea datelor transmise s poat fi verificate. DSA asigur posibilitatea de a genera i de a verifica semnturi digitale. Generarea semnturilor se bazeaz pe utilizarea unei chei secrete. Verificarea semnturii se bazeaz pe folosirea unei chei publice care corespunde cheii secrete. Fiecare utilizator posed o perche de chei format din cheia sa public i cheia sa secret. Cheile publice pot fi cunoscute de ctre orice utilizator al reelei. Oricine poate verifica semntura unui utilizator folosind cheia sa public. Generarea semnturii unui utilizator poate fi realizat numai de ctre acesta deoarece n procesul de generare se folosete cheia sa secret. n procesul de generare a semnturii se utilizeaz o funcie hash, pentru a obine o variant condensat (rezumat al mesajului) a datelor 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).

66

Figura 17 crpt. Generarea i verificarea semnturii folosind standardul DSS. Algoritmul DSA se folosete pentru post 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.

Parametrii algoritmului DSA


Acest algoritm utilizeaz urmtorii parametri: 1. p, un numr prim folosit ca i modul, cu proprietatea:

2 L 1 p < 2 L

pentru

512 L 1024

multiplu

de

64

2. q, un numr prim, divizor al lui p - 1.


p 1 q

3.

g=h

mod p .

4. x, un numr generat aleator sau pseudoaleator. 5. y = g x mod p 5. k, un ntreg generat aleator sau pseudoaleator. 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

67

Semntura unui mesaj M, este perechea de numere r i s calculate conform urmtoarelor ecuaii:

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.

r = g k mod p mod q

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 ')1 mod q u1 = ((SHA(M ') w) mod q ) u 2 = ((r ') w) mod q v=

(((g )

u1

( y )u 2 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

g q mod p = 1
i dac m mod q = n mod q, atunci:

(1 L)

g m mod p = g n mod p

(2 L)

68

DEMONSTRAIE.

p 1 g mod p = h q mod p mod p = h p 1 mod p = 1


q

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 paote scrie:
k g m mod p = g n + kq mod p = g n g kq mod p = g n mod p g q mod p mod p

)(

sau aplicnd relaia (1. L):

g m mod p = g n mod p 1 mod p = g n mod p


Deci i relaia (2. L) a fost demonstrat. n consecin lema a fost demonstrat. n continuare se demonstreaz propoziia. Se poate scrie:

((

) )

w = (s ')1 = (s )1 mod q u1 = (SHA(M ') w) mod q = (SHA(M ) w) mod q u 2 = ((r ') w) mod q = r w mod q
Deoarece y = g x mod p , pe baza lemei enunate anterior se poate scrie:

v = ( g u1 y u2 mod p) modq = ( ( g )(SHA(M )w) modq ( y)(rw) modq mod p) modq = = ( g )(SHA(M )w) modq g x

( )

(rw) modq

= (g )(SHA(M )w+ xrw


Dar:

)modq mod p modq = ((g )((SHA(M )+xr )w) modq mod p)modq

mod p modq =

(1. D)

s = k 1 (SHA(M ) + x r ) mod q
i: adic: de unde:

w = (s )1 mod q w = k (SHA(M ) + x r )1 mod q

(SHA(M ) + x r ) w mod q = k mod q

relaie care nlocuit n (1. D) conduce la:

69

v = ( g k mod q mod p ) mod q


Dar:

r = g k mod p mod q
Presupunnd c valoarea lui k este inferioar valorii lui q, kmodq 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.

70

5.6. Atacuri mpotriva sistemelor de criptare


Sistemele de criptare simetric, ca de exemplu DES au fost construite cu intenia de a fi foarte greu de atacat (decriptat de ctre o persoan neautorizat) i au reuit pe deplin s satisfac aceast necesitate. Chiar avnd la dispoziie cantiti impresionante de text n clar i text cifrat crespunztor o a treia persoan (neautorizat) nu ar trebui s poat (aceasta este intenia constructorilor sistemelor de cifrare) s deduc cheia de criptare folosit, dect folosind atacurile bazate pe cutare cu for brut (adic generarea tuturor cheilor posibile avnd un numr fixat de caractere i ncercarea lor pe un text clar al crui text cifrat corespunztor se afl de asemenea n posesia acelei persoane, pn la identificarea cheii utilizate de expeditor). Multe sisteme de criptare par s satisfac aceast condiie. Totui exist dou tipuri de atac care ar putea s descopere mai repede o cheie secret dect metoda de cutare a acesteia bazat pe fora brut. Acestea sunt atacul bazat pe criptanaliz linar i cel bazat pe criptanaliz diferenial.

Metode de criptanaliz a sistemelor de criptare moderne


Exist i alte tipuri de atacuri bazate pe tehnici de tip hill-climbing sau pe algoritmi genetici.

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 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

71

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 adeevrat, 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.

Extinderi ale criptanalizei difereniale


Pornind de la criptanaliza diferenial clasic au fost concepute cteva metode puternice de criptanaliz. Utiliznd aceste metode a devenit posibil atacarea unor sisteme de criptare simetric care au fost concepute s fie rezistenete la atacurile prin criptanaliz diferenial clasic.

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.

Difereniale de ordin superior


O alt extindere important a criptoanalizei difereniale este dat de utilizarea difernialelor de ordin superior. Aceast idee a aprut pentru prima dat ntr-o lucrare a lui Xuejia Lai. O caracteristic diferenial de tipul descris deja, unde pentru un numr mare de valori diferite A, B este egal cu A xor X i variantele criptate cu o anumit cheie secret k, ale lui A i B satisfac relaia E(A,k) = E(B,k) xor Y, dac o anumit propoziie referitoare la cheia k este adevrat, poate fi considerat analoag cu o derivat (a unei anumite funcii) i este numit derivata cifrului E n punctul X. La fel poate fi definit i derivata de ordinul 2. Aceast definiie necesit existena unei a doua cantiti, W, astfel nct irul de egaliti: B=A xor X, C=A xor W i D=B xor W s implice ca relaia:

72

E(A,k) xor E(B,k) = E(C,k) xorE(D,k) xor Z s fie adevrat pentru o anumit constant Z, cu o probabilitate mai mare dect cea corespunztoare alegerii aleatoare a lui Z. n acest caz Z reprezint derivata a doua a cifrului E n punctul (X,W). Formulele prezentate mai sus sunt valabile pe un cmp finit de tip Galois, modulo o putere ntreag a lui 2 (unde operaia sauexclusiv (xor) este identic cu operaiile de adunare respectiv de scdere). Pe un cmp finit mai general ar fi trebuit s se foloseasc relaiile: Y=E(A+X,k)-E(A,k) i: Z=(E(A+X+W,k)-E(A+W,k))-(E(A+X,k)-E(A,k)) Aceast relaie este important deoarece o derivat a doua ar putea exista ntr-un punct pentru a crui prim coordonat s nu existe o derivat a ntia sau aceasta s nu fie suficient. 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.

73

6. Securitatea serviciilor INTERNET


INTERNET este cea mai mare reea de reele din lume. Cnd se dorete accesarea resurselor oferite de INTERNET, nu se face n realitate o conectare la INTERNET, ci se face conectarea la o reea care este ea nsi conectat la Internet backbone, care este o reea foarte rapid i incredibil de ncrcat.

6.1 Protocoale TCP/IP


Ierarhia protocoalelor INTERNET
Serviciile INTERNET au la baz schimbul de mesaje ntre o surs i un destinatar. Principiul comunicrii este inspirat de serviciul potal. Dac A dorete s-i transmit ceva lui B, A mpacheteaz obiectul, scrie pe pachet adresa destinatarului i a expeditorului i depune pachetul la cel mai apropiat oficiu potal. Similar, dac A dorete s-i transmit un mesaj electronic lui B atunci mesajul trebuie "mpachetat", adic ncadrat de anumite informaii de control. Unitatea de date astfel obinut se numete "pachet", prin analogie cu sistemul potal obinuit. Informaia de control include adresa expeditorului i a destinatarului, specificate n form numeric (numr IP): patru numere naturale mai mici dect 256, desprite ntre ele prin puncte. n sistemul potal obinuit, n funcie de localizarea destinatarului, pachetul poate fi transmis prin intermediul mai multor oficii potale intermediare. Ultimul oficiu potal livreaz pachetul destinatarului. Asemntor, ntr-o reea de calculatoare, pachetul este dat unui comutator de pachete, numit i "ruter", router, care are un rol similar oficiului potal i care-l trimite spre destinatar. Eventual pachetul traverseaz mai multe rutere intermediare. Ultimul comutator livreaz mesajul destinatarului. Dirijarea pachetelor este efectuat automat de ctre reea i respect un set de reguli i convenii numit "protocol". Pentru reeaua INTERNET acest protocol se numete IP, Internet Protocol. Acest protocol asigur livrarea pachetelor numai dac n reelele pe care acesta le traverseaz nu apar erori. Dac un mesaj este prea lung, IP cere fragmentarea lui n mai multe pachete. Transmiterea pachetelor IP se face ntre calculatoarele gazd i nu direct ntre programele de aplicaie. Din acest motiv protocolul IP trebuie completat cu un altul numit protocol de transmisie,TCP, Transmission Control Protocol. Protocolul TCP face fragmentarea mesajului n pachete i asigur transmiterea corect a mesajelor ntre utilizatori. n reelele intermediare, pe care le traverseaz un mesaj, o parte din datele acestuia s-ar putea pierde. De aceea protocolul TCP ajut la detectarea erorilor de transmisie i la detectarea datelor pierdute precum i declaneaz retransmisii ale mesajului pn cnd acesta este recepionat corect i complet. Pachetele unui mesaj sunt numerotate, putndu-se verifica primirea lor n forma n care au fost trimise i reconstruirea mesajelor lungi, formate din mai multe pachete. TCP este un protocol complicat. n unele cazuri, cnd se transmite un singur mesaj, suficient de scurt pentru a fi coninut ntr-un singur pachet, se poate folosi un protocol mai simplu, numit UDP, User Datagram Protocol. La rndul lor, operaiile de la nivel aplicaie se deruleaz i ele pe baza unor protocoale. De exemplu protocolul de pot electronic prin INTERNET se numete SMTP, Simple Mail Transfer Protocol. Funcionarea acestui protocol se bazeaz pe serviciile oferite de protocoalele IP i TCP. Funcionarea protocoalelor IP i TCP se bazeaz pe existena unei comunicri directe ntre noduri (rutere) adiacente din reea. Aceast comunicare este realizat conform unor tehnologii diverse i se supune unor protocoale specifice, bine precizate. Ca urmare protocoalele TCP i IP se bazeaz la rndul lor pe protocoale, care depind unele de altele, dar care au ca i punct central, protocoalele TCP/IP. Termenul TCP/IP se refer la o ntreag familie de protocoale, protocoalele IP i TCP fiind doar doi membri ai acestei familii. n figura 1 Internet se prezint pachetul standard de protocoale TCP/IP. n loc de a construi protocoale monolitice (protocoalele ftp, telnet sau gopher au fiecare cte o implementare complet, care include copii separate ale codului nucleu pentru dispozitivele folosite) proiectanii seriei de protocoale TCP/IP au preferat s segmenteze munca unui ntreg ir de protocoale de reea ntr-un numr de sarcini. Fiecare nivel al modelului OSI corespunde la o faet diferit a

74

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 "driverele" 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.

Figura 1 Internet. Nivelele irului de protocoale TCP/IP.

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.

75

Figura 2 Internet. Un exemplu de cadru Ethernet.

Nivelul legtur
Acesta este nivelul cel mai uor de neles. Compus din hard-ul reelei i din drivere-le 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. De fapt

76

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

77

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 de ja 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
78

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 serverul--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 (137.229.18.103), prin intermediul unui server de nume de domeniu. numeric, obinndu-se

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.
79

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. 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 server-ului 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-ise 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: ftp.internic.net:/rfc. n continuare se reia prezentarea protocoalelor din familia TCP/IP, puin mai n detaliu.

Nivelul de interfa cu reeaua


Dou protocoale de interfa cu reeaua sunt relevante pentru seria TCP/IP. Acestea sunt: Protocolul de legtur serial, The Serial Line Internet Protocol , SLIP(descris n RFC 1055) i Protocolul punct la punct, Point-to-Point Protocol , PPP(descris n RFC 1661). Aceste protocoale funcioneaz la nivelul legtur de date. i unele pachete de programe TCP/IP, destiante calculatoarelor de tip PC, includ aceste dou protocoale. Cu ajutorul protocoalelor SLIP sau PPP, un calculator aflat la distan se poate conecta la un server gazd, i prin intermediul acestuia la INTERNET folosind protocolul IP, n loc de a fi limitat s foloseasc o conectare asincron.

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
80

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 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. +------------+------------+-----------+---------------+----------+--------+-------------+ | Flag | Address | Protocol | Information | Padding | FCS | Flag * | * |

| 01111110 | 11111111 | 8/16 bits |

| 8 bits | 01111110 |

+------------+------------+-----------+---------------+----------+--------+-------------+
Figura 3 Internet. Formatul de cadru PPP.

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 paote 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.

81

3. Legtura va rmne configurat pentru comunicaii pn cnd pachete specifice pentru protocoalele LCP i/sau NCP o vor desface.

Nivelul INTERNET
Protocolul INTERNET (descris n RFC 791), ofer servicii echhivalente cu cele prevzute n modelul de referin OSI la nivelul reea. Protocolul IP ofer un serviciu de transport al pachetelor dea 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. 11 11 11 1 11 12 2 22 22 222233 0123 4 56 78 9 01 23 45 6 78 90 1 23 45 678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL | TOS | Total Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TTL | Protocol | Header Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options.... (Padding) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data...

+-+-+-+-+-+-+-+-+-+-+-+-+Figura 4 Internet. Formatul antetului pachetului IP.

82

Biii 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 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.

83

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 IP este de 32 de bii. Formatul unei astfel de adres este prezentat n figura 5 Internet. Ele reprezint o secven de 4 numere, exprimate n zecimal, fircare 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 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 (224) 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.
1111111111222222222233 01234567890123456789012345678901 --+------------------+-----------------------------------------------Class A |0| NET_ID | HOST_ID |

|-+-+------------+-------------+-------------------------------| Class B |1|0| NET_ID | HOST_ID |

|-+-+-+-------------------------+---------------+---------------| Class C |1|1|0| NET_ID | HOST_ID |

|-+-+-+-+---------------------------------------+---------------| Class D |1|1|1|0| MULTICAST_ID |

|-+-+-+-+--------------------------------------------------------| Class E |1|1|1|1| EXPERIMENTAL_ID |

--+-+-+-+-------------------------------------------------------Figura 5 Internet. Formatul adreselor IP.

84

. 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 (216) calculatoare ntr-o singur reea. 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 subcmp 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 subcmp 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 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.0-192.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 defeni 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:
85

172.020.134.164 AND 255.255.000.000 ------------------172.020.000.000

10101100.00010100.10000110.10100100 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 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.

Sistemul numelor de domeniu


Deoarece lungimea adreselor IP este de 32 de bii, majoritatea utilizatorilor nu memoreaz adresa calculatorului gazd pe care lucreaz n form numeric, oamenii se simt mai bine dac lucreaz cu nume de domeniu. De aceea majoritatea calculatoarelor gazd care utilizeaz protocolul IP au att o adres numeric IP ct i un nume. Dei asta este convenabil pentru operatori, totui, numele trebuie reconvertit ntr-o adres numeric pentru a fi posibil dirijarea. Pentru a face posibil nregistrarea numelor noi care apar ca urmare a dezvoltrii rapide a INTERNET-ului a fost creat sistemul numelor de domeniu, the Domain Name System , DNS. Acesta este o baz de date distribuit care conine nume de calculatoare gazd i informaii despre adrese IP pentru toate domeniile din INTERNET. Pentru fiecare domeniu exist un singur server de nume autorizat. Acesta conine toate informaiile referitoare la DNS din acel domeniu. Fiecare domeniu mai are cel puin nc un server de nume, numit secundar, care conine copii ale tuturor informaiilor coninute i pe server-ul autorizat. Treisprezece server-e de dirijare, n toat lumea, menin cte o list cu aceste server-e de nume autorizate. Cnd un calculator gazd din INTERNET are nevoie de o adres IP a unui alt calculator gazd i cunoate doar numele acelui calculator gazd, este lansat o cerere DNS de ctre primul calculator gazd ctre un server de nume local. Acesta poate fi capabil s rspund la aceast cerere fie cu informaie configurat fie cu informaie ascuns; dac informaia necesar nu este disponibil, serverul local de nume transmite cererea la unul dintre server-ele de dirijare (ruter). Server-ul de dirijare va gsi un server de nume potrivit, pentru calculatorul gazd int i cererea DNS va fi trimis acestuia. Fiierele de date ale server-elor de nume conin urmtoarele tipuri de nregistrri:

86

nregistrare de tip A, A-record: O nregistrare de adres care face corespondena ntre un nume de calculator gazd i o adres IP. - nregistrare de pointer, PTR-record: face corespondena ntre o adres IP i un nume de calculator gazd. nregistrare de server de nume: este o list a server-elor de nume autorizate pentru un anumit domeniu. - nregistrare de coresponden prin pot electronic, MX-record: este o list a server-elor de e-mail pentru un anumit domeniu. De exemplu, se consider adresa de e-mail kumquat@sover.net. Poriunea din adres "sover.net" este un nume de domeniu nu un nume de calculator gazd, iar mesajul trebuie transmis unui calculator gazd specific. nregistrarea MX din baza de date de nume sover.net specific faptul c mail.sover.net este server-ul de pot electronic pentru acest domeniu. - nregistrare de nume canonic, Canonical name records, CNAME-record: asigur funcionarea unui mecanism de alocare a unor nume fictive, aliases, numelor de calculator gazd, astfel nct un anumit calculator gazd, care are o singur adres IP, s poat fi cunoscut cu mai multe nume. Conceptele, structura i drepturile sistemului DNS sunt descrise n RFC 1034 i n RFC 1591. Pentru aplicaii de tipul Microsoft NetBIOS, echivalentul sistemului DNS este serviciul WINDOWS de nume INTERNET, the Windows Internet Name Service, WINS, folosit pentru a pune de acord numele 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 hard-disk 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.

87

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 asociaz i 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 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, si 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 paote 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.

Versiunea a 6-a a protocolului IP


La sfritul anului 1995 a fost standardizat aceast versiune a protocolului IP, IPv6.

88

O prim descriere a acestei versiuni este fcut n RFC 1883. Aceast versiune a fost conceput ca s nlocuiasc i s dezvolte versiunea anterioar IPv4. Modificrile se refer la: - Creterea lungimii adresei IP la 128 de bii, - Alocarea adreselor nu se mai face cu ajutorul claselor, - diferitele utilizri sunt specificate prin prefixe, - se pot utiliza prefixe pentru a pune n coresponden spaii de adrese de tip v4 cu spaii de adrese de tip v6 i reciproc, - Reprezentarea standard este fcut prin 8 valori de lungime 16 bii separate prin coloane. Un exemplu de adres IP conform acestei variante este 47CD:1234:3200:0000:0000:4325:B792:0428. Dac adresa conine un numr mare de zerouri, acestea pot fi omise. De exemplu adresa anterioar se mai poate scrie n forma 47CD:1234:3200::4325:B792:0428. - Alocarea adreselor n cazul comunicrilor ntre doi utilizatori, Unicast, se face la fel ca i la protocolul CIDR, - Se au n vedere considerente geografice, - 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 Version 4 Priority Payload Next 8 1 Flow Hop 2 3

SourceAddr (4 words)

DestinationAddr (4 words)

Options (variable number) Data

Figura 5' Internet. Protocolul IP v 6.

89

6.1.1. Protocoale de nivel transport


irul de protocoale TCP/IP conine dou protocoale care corespund nivelelor de transport i de sesiune din modelul de referin OSI. Acestea se numesc Protocolul de control al transmisiei, the Transmission Control Protocol, i Protocolul pachetelor de utilizator, the User Datagram Protocol, UDP.

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, potturi 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

90

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 destinatar. Cmpurile unui astfel de segment sunt prezentate n figura urmtoare i au semnificaia descris n continuare.
1111111111222222222233 01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgement Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Offset |(reserved) | Flags | Window |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options.... (Padding) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data...

+-+-+-+-+-+-+-+-+-+-+-+-+Figura 6 Internet. Formatul de segment TCP.

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.

91

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 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.

92

1111111111222222222233 01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data...

+-+-+-+-+-+-+-+-+-+-+-+-+Figura 7 Internet. Formatul de pachet UDP.

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. 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.

93

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 ncarcarea 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.

Stabilirea conexiunii TCP i colaborarea cu ICMP


Pentru a putea folosi protocolul TCP este foarte important s se nealeag cum se realizeaz conexiunea n cadrul acestui protocol. Legturile TCP au trei pri importante: stabilirea legturii, schimbul de date i terminarea legturii. n continuare se prezint un exemplu n care un server POP3 (care ascult folosind portul TCP 110) este contactat de un client (care folosete portul TCP 1067). Fazele realizrii acestei conexiuni sunt prezentate n figura urmtoare. Faza stabilirii conexiunii ncepe prin schimbare numrului iniial de secven, ISN, ntre client i server i valideaz numrului iniial de secven al unui al treilea calculator gazd. n acest exemplu clientul ncepe prin a trimite server-ului un segment TCP coninnd biii de sincronizare i un numr de secven de 800. Biii de sincronizare i spun receptorului (sever-ului) c expeditorul (clientul) este n modul de iniializare ISN i c ISN-ul nu a fost nc confirmat. Numrul de validare al segmentului nu este artat deoarece valoarea sa, la acest moment nu este nc fixat. Server-ul rspunde cu un segment cu biii de sincronizare, syn-bits i cu biii de acceptare, ack-bits, setai, cu un numr de secven de 1567 i cu un numr de acceptare, Acknowledge Number de 801. Biii de sincronizare i ISN-ul lui 1567 au aceeai semnificaie ca i mai sus. Bitul de acceptare indic faptul c valoarea din 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. Ea este foarte important din mai multe motive. Pentru persoanele 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, fin-bits 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

94

segment, clientului. Descrierea deja fcut se refer la un "scenariu" normal pentru realizarea unei legturi TCP ntre un client i un server.

CLIENT

SERVER 1 1 1 1 1 1 1 1 1 1 1

syn, SEQ=800 --------------------------------------------------------> src_port=1967, dst_port=110 syn, ack, SEQ=1567, ACK=801 <-------------------------------------------------------src_port=110, dst_port=1967 ack, SEQ=801, ACK=1568 --------------------------------------------------- ----> src_port=1967, dst_port=110 ack, SEQ=1568, ACK=801 <-------------------------------------------------------src_port=110, dst_port=1967 DataLen=18 (POP3 Server V1.12\n) ack, SEQ=801, ACK=1586 -------------------------------------------------------> src_port=1967, dst_port=110 DataLen=5 (quit\n) ack, SEQ=1586, ACK=806 <-----------------------------------------------------src_port=110, dst_port=1967 DataLen=9 (Sayonara\n) ack, SEQ=806, ACK=1595 -------------------------------------------------------> src_port=1967, dst_port=110 fin, ack, SEQ=806, ACK=1595 -------------------------------------------------------> src_port=1967, dst_port=110 ack, SEQ=1595, ACK=807 <------------------------------------------------------src_port=110, dst_port=1967 fin, ack, SEQ=1595, ACK=807 <------------------------------------------------------src_port=110, dst_port=1967 ack, SEQ=807, ACK=1596 -------------------------------------------------------> src_port=1967, dst_port=110
Figura 8 Internet. Fazele conectrii TCP.

CONNECTION ESTABLISHMENT

2 2 2 2 2 2 2 2 2 DATA 2 EXCHANGE 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 CONNECTION 3 3 TERMINATION 3 3 3 3 3 3

95

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 toate n toate site-urile unde exist acces anonymous-ftp fiiere 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). 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, (RFC 1436). HTTP, The Hypertext Transfer Protocol : este protocolul de baz pentru schimbul de informaii prin World Wide Web (WWW). 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.

96

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 transfere 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 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. 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

97

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 claculator 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.

6.1.2. Analiza de protocoale


n prezent se utilizeaz tot mai frecvent analizoarele de protocoale. Acestea sunt echipamente soft care funcioneaz pe calculatoare de uz general sau reprezint echipamente de sine stttoare. Indiferent de construcie aceste echipamente folosesc o interfa cu reeaua, the device's network interface card (NIC). Aceasta captureaz orice pachet care este transmis pe linia la care este conectat. Majoritatea analizoarelor de protocol realizeaz i o afiare a interpretrii (mcar pariale) acestor pachete. n figura urmtoare se prezint o astfel de afiare. Este vorba despre o comand POP3 i despre rspunsurile obinute. Pot fi distinse pe vertical 3 regiuni. n regiunea din mijloc se prezint pachetul decodat. n regiunea de jos este prezentat ntregul cadru n forma hexazecimal, aa cum este transmis pe linie. Acesta este irul de bii. Cea mai interesant este regiunea din mijloc. Aici este interpretat coninutul pachetului. Aici se prezint detaliile protocoalelor IP, TCP, i POP3 ale cadrului 80.

98

Figura 9 Internet. Un exemplu de utilizare al unui analizor de protocoale.

99

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).

6.1.3. Concluzii
Cum s-a artat mai sus, TCP/IP nu reprezint o pereche de protocoale de comunicaie ci un ir de protocoale, aplicaii i utilitare. Din ce n ce mai des aceste protocoale sunt numite ir de protocoale INTERNET dar vechiul nume va mai fi folosit nc mult vreme. n figura urmtoare se prezint relaiile dintre diferitele nivele de protocoale TCP/IP.
---------------| Application |-------------- | | TCP ---------------|<------ end-to-end connection ------>| Application | |--------------| |<--------- virtual circuit ------------->| TCP --------------------------|<-- DG -->| IP |--------------| IP | |

|-------------- | | IP

|<-- DG ----->|

|------------- |

|-------+------- |

|---------------|

|Subnetwork 1|<--->|Subnet1|Subnet2| ----------->|Subnetwork 2 | ---------------HOST --------+-------GATEWAY ---------------HOST

Figura 10 Internet. Arhitectura irului de protocoale TCP/IP.

100

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.

Alte surse de informare


Exist numeroase surse de informare despre irul de protocoale TCP/IP i despre INTERNET. Specificaii, rapoarte, umor, lucrri de sintez sunt distribuite ca i documente RFC, Request for Comments. Acest tip de documente pot fi obinute gratuit, prin INTERNET, n format de text ASCII. O categorie de astfel de documente este destinat standardelor, acestea pot fi identificate prin particula "STD". De exemplu RFC 2026 descrie procesul de standardizare al INTERNET-ului iar documentul STD 1 conine lista oficial de standarde de INTERNET. O alt categorie de documente de tip RFC este cea notat FYI, For Your Information. Aceste documente furnizeaz informaii de baz pentru comunitatea INTERNET. Aceast categorie de documente este descris n RFC 1150. O alt categorie de documente utile pentru studiul INTERNET-ului este cea prescurtat cu FAQ, Frequently Asked Question. Pot fi gsite astfel de documente despre diferite subiecte de la ISDN i criptografie la INTERNET i Gopher. Dou astfel de documente sunt foarte interesante pentru utilizatorii de INTERNET: "FYI on Questions and Answers - Answers to Commonly asked 'New Internet User' Questions" (RFC 1594) i "FYI on Questions and Answers: Answers to Commonly Asked 'Experienced Internet User' Questions" (RFC 1207). Toate documentele descrise mai sus fac trimiteri i ctre alte surse de documentare.

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 HDLC-High-level Data Link Control
101

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

102

6.2. Securitatea la nivel IP


Dup anul 1980, calculatoarele conectate la INTERNET au constituit obiectul unor 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 ruterul, 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
103

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 ede 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 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.

6.3. Arhitectura securitii n INTENET


Abordarea securitii n sistemele distribuite pleac de la modelul OSI, al crui obiectiv l constituie interconectarea unor sisteme eterogene, n aa fel nct s se poat realiza comunicaii sigure (fiabile) ntre procese (aplicaii) situate la distan. Din punct de vedere al securitii acest lucru nseamn: integritatea i protecia resurselor (prin controale adecvate) i implementarea unor servicii i protocoale de securitate. Serviciile de securitate, controalele i protocoalele au ca scop protejarea resurselor i informaiilor schimbate ntre procese. Ele trebuie s fac n aa fel nct costul obinerii ilegale a unor date sau al modificrii ilegale a acestora s fie superior costului de obinere legal a acelor date iar timpul necesar pentru efectuarea operaiilor ilegale s fie att de lung nct datele obinute s devin caduce. Msurile de securitate pot fi: - procedurale (selectarea personalului, schimbarea periodic a parolelor), - logice (controlul accesului, criptografia), - fizice (camere speciale, ui blocate). Termenul de securitate este folosit n sensul minimizrii vulnerabilitii informaiilor i resurrselor. El se refer la un complex de msuri procedurale, logice i fizice estinate s previn, s detecteze i s corecteze pierderile de informaii din sistem. Principalele probleme de securitate ce apar ntr-un sistem deschis distribuit sunt: - Schimbarea identitii, care apare atunci cnd entitile (utilizatori sau programe), reuesc s ptrund n reea sub o alt identitate; - Asocieri ilegale, care permit s se realizeze legturi logice (asociaii) ntre utilizatorii reelei prin eludarea politicii de autorizare i autentificare; - Accese neautorizate, care permit unui utilizator sau proces neautorizat s accead la obiecte la care nu are dreptul, eludnd serviciile de control al accesului; - Refuzul de servicii, apare atunci cnd utilizatorii legali sunt mpiedicai s execute anumite funcii; - Repudierea, apare atunci cnd utilizatori ai reelei refuz s participe la asociaii; - Analiza traficului, apare atunci cnd entitile intruse observ protocoalele, lungimea, frecvena, suma i destinaiamesajelor transmise; - Modificarea sau distrugerea datelor; - Modificarea secvenei mesajelor, const din tergerea, inserarea, relauarea sau reordonarea ilegal a secvenei de mesaje transmise; - Modificarea ilegal a programelor, este realizat de virui, "cai Troieni", "viermi", etc.

104

Politica de securitate const n a decide : - ce ameninri se vor elimina i ce ameninri vor rmne; - ce resurse vor fi protejate i la ce nivel; - cu ce mijloace vor fi implementate cerinele de securitate; - cu ce costuri vor fi implementate cerinele de securitate. 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 denumit generic gestiunea securitii, care cuprind controlul i distribuia informaiilor folosite de serviciile i mecanismele de securitate pentru semnalalrea unor evenimente relevante privind securitatea sistemului. Arhitectura OSI i are originea la Departamentul Aprrii al S.U.A. , DoD i are la baz protocoalele TCP/IP.

6.3.1. Servicii de securitate


ISO definete cinci servicii principale de securitate: autentificare, confidenialitate, controlul accesului, integritate i nerepudiere. n plus se definete i monitorizarea sau auditing-ul - nregistrarea elementelor relevante de securitate. Fiecare dintre serviciile amintite poate fi implementat la oricare dintre nivelele modelului OSI.Pentru asigurarea securitii unui nivel OSI pot fi combinate unul sau mai multe servicii care, la rndul lor, pot fi compuse din cteva subservicii i mecanisme.

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 ns i 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 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.

105

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; d) integritatea neorientat 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.

106

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 al 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 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 al 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 servicile 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).

107

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 a 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 serviciile 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

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 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

x x

108

ISO las posibilitatea de a asigura servicii de securitate la diferite nivele ale modelului OSI. Acestea pot fi asigurate la nivel sczut-nivelele 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. A) Nivelul fizic (nivelul 1) Serviciile de securitate oferite de nivelul fizic asigur o protecie punct la punct. Ele pot fi aplicate: - ntre un terminal i un calculator host, - ntre un calculator host i un calculator intermediar, nod, - ntre dou noduri. Un avantaj major al sistemelor de securitate oferite de acest nivel este c protecia este independent de protocoalele implementate la nivelele superioare. Totui, mecanismele i dispozitivele de asigurare a securitii ce opereaz la acest nivel sunt dependente de o anumit tehnologie. De cele mai multe ori, dispozitivele de securitate, specifice nivelului fizic, au o interfa ncorporat, realizat ntr-o anumit tehnologie, pentru a face dispozitivul transparent i uor de integrat n sistem. Utilitatea serviciilor la acest nivel este oarecum limitat pentru cazul INTERNET-ului. Servicile oferite de acest nivel sunt confidenialitatea circuitelor orientate pe conexiune i confidenialitatea traficului. n efortul de a asigura transparena i compatibilitatea cu alte componente, dispozitivele de asigurare a securitii la acest nivel nu pot fi adresabile ntr-o reea. Integritatea i autentificarea nu sunt posibile la acest nivel, ns folosind nite tehnici de criptare adecvate, aceste servicii pot fi asigurate de ctre nivelele superioare. B) Nivelul legturii de date (nivelul 2) Serviciile de securitate la nivelul legturii de date sunt asigurate tot punct la punct. Un avantaj al servicilor oferite de acest nivel l constituie independena de protocoalele nivelelor superioare, ceea ce face posibil folosirea la acest nivel a dispozitivelor de securitate pentru o diversitate de protocoale. Conformndu-se cu ISO 7498-2, servicile de securitate oferite de nivelul legturii de date 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. C) Nivelul reea (nivelul 3) Servicile de securitate asigurate de acest nivel sunt: - confidenialitatea circuitelor neorientate pe conexiune, - confidenialitatea circuitelor orientate pe conexiune, - integritatea datelor, - autentificarea, - controlul accesului.

109

Securitatea nivelului reea poate fi asigurat att ntre sistemele terminale ct i ntre un sistem terminal i un sistem intermediar (de exemplu ruter). Dac securitatea nivelului reea este asigurat n funcie de tehnologia de realizare a reelei respective, atunci servicile de securitate oferite pot fi independente de protocoalele de nivel superior. Istoric vorbind, servicile de securitate de la nivelele fizic i legtur de date au fost implementate n hard extern. Este mult mai eficient s se implementeze securitatea nivelului reea intern. n sistemele terminale sau intermediare. O implementare intern evit problemele nivelelor inferioare ce au fost menionate mai nainte. La acest nivel este permis securizarea anumitor rute; tot traficul de pe aceste rute este criptat, chiar dac nu este necesar. Este criptat ns numai cmpul de date al pachetului i ca urmare, datele care trec prin nodurile intermediare sunt criptate, pe cnd altele nu. Acest aspect face s nu fie asigurat confidenialitatea traficului ci numai integritatea i confidenialitatea datelor transmise. D) Nivelul transport (nivelul 4) Pentru nivelul transport, ISO 7498-2 identific cteva servicii de securitate: confidenialitatea (orientat sau nu pe conexiune), integritatea (complet sau pentru cmpuri selectate), autentificara originii datelor, autentificarea entitilor perechi i controlul accesului. Exist o singur diferen semnificativ ntre servicile de securitate asigurate de nivelul transport i cele oferite de nivelul reea. Aceasta se refer la capacitatea de asigurare unei protecii i n sistemele intermediare, atunci cnd se folosesc mecanismele prii superioare a nivelului reea. Servicile de securitate ale nivelului transport orientate conexiune pot asigura, n principiu, o protecie sporit, comparativ cu protecia asigurat de partea superioar a nivelului reea, ns n practic, aceste diferene sunt minime. E) Nivelul sesiune (nivelul 5) ISO 7498-2 nu prevede ca nivelul sesiune s ofere servicii de securitate. F) Nivelul prezentare (nivelul 6) Acest nivel este citat adesea ca fiind nivelul ideal de asigurare a proteciei, ntruct servicile securitate sunt vzute ca transformri de date asemenea funciilor nivelului prezentare. Facilitile confidenialitate oferite aici se pot baza pe legturi orientate/ neorientate pe conexiune sau variantele de cmp selectat. Deoarece acest nivel este folosit pentru transformarea datelor exist avantaj pentru cifrarea datelor la acest nivel mai curnd dect la nivelul aplicaie. G) Nivelul aplicaie (nivelul 7) ISO 7498-2 afirm c toate servicile de securitate pot fi asigurate de acest nivel iar ne-repudierea mesajelor poate fi oferit numai de acest nivel. Totui, servicile de secuirtate oferite de nivelul aplicaie pun unele probleme, datorit conflictului cu funcionalitatea nivelului prezentare. Pentru muli, unul dintre motivele cele mai importante pentru asigurarea servicilor de securitate la acest nivel l constituie posibilitatea de implementare a acestor servicii n afara sistemelor de operare. Astfel, cei ce dezvolt aplicaii pot implementa mecanismele de securitate pe care le doresc n interiorul aplicailor. Aspectul neplcut al servicilor de securitate localizate n aplicaii este c fiecare implementare trebuie s serveasc doar unei anumite aplicaii. Tinnd cont de faptul c proectarea i implementarea unui mecanism de securitate este un proces complex exist riscul ca facilitile de securitate ale aplicaiei respective s fie slabe. de de pe un

110

6.3.2.2. Securitatea servicilor TCP/IP


Aceste protocoale au propriile lor probleme de securitate, amintite deja mai devreme. Majoritatea acestor probleme sunt datorate faptului c protocoalele nu conin mecanisme proprii de securitate.

6.3.2.2.1. Arhitectura securitii pentru protocolul IP


Aceast arhitectur este prezentat n documentul RFC 1827, elaborat n anul 1995 i este valabil att pentru varianta 4 ct i pentru varianta 6 a protocolului IP. Introducere Exist dou antete specifice pentru servicile de securitate la nivelul protocolului IPv4, respectiv IPv6. Acestea sunt antetul de autentificare IP, AH i antetul de ncapsulare a sarcinii de securitate, ESP. Mecanismele de securitate, implicate de aceste antete (la fiecare antet corespunde un mecanism de securitate) pot fi folosite n mai multe feluri. Mecanismul corespunztor antetului AH este destinat asigurrii integritii i autentificrii pachetelor de date, fr ns a le asigura confidenialitatea. Absena confidenialitii asigur disponibilitatea fr restricii pe INTERNET a descrierii mecanismului de la nivelul IP de asigurare a integritii i a autenticitii. Acest mecanism asigur securitatea unei comunicaii ntre dou calculatoare terminale, ntre un calculator terminal i un ruter sau ntre dou rutere. Un ruter de securitate este unul care face comunicaii ntre calculatoare exterioare (considerate ca nefiind de ncredere) i calculatoare interioare (unei subreele) considerate de ncredere. O subreea este considerat de ncredere dac conine calculatoare gazd i rutere care au ncredere unele n cellalte, nu se angajeaz n atacuri active sau pasive i cred c au la dispoziie un canal de comunicaii de ncredere (care nu este atacat). n cazul n care un ruter de securitate efectueaz servicii n beneficiul unui sau mai multor calculatoare gazd dintr-o reea de ncredere acest ruter de securitate este responsabil pentru asigurarea securitii acelei subreele precum i conectarea sa sigur spre exterior. n acest caz doar ruterul de securitate trebuie s implementeze serviciul AH, toate calculatoarele din subreeaua de ncredere beneficind de acest serviciu, pentru comunicarea spre exterior. Un ruter de securitate care primete un pachet de date coninnd o etichet sensibil, de exemplu eticheta IPSO (IP Security Option) de la un calculator de ncredere trebuie s o ia n considerare cnd creaz sau selecteaz o "asociaie de securitate" pentru folosire mpreun cu AH la stabilirea legturii ntre acel calculator de ncredere i destinaie. ntr-o astfel de situaie un ruter de securitate care primete un pachet IP coninnd antetul ESP trebuie s adauge autentificarea potrivit incluznd eticheta implicit (coninut n asociaia de securitate folosit) sau eticheta explicit ( de exemplu eticheta IPSO) pentru pachetul de date decriptat care este trimis spre calculatorul gazd de ncredere, cruia i este adresat. Antetul AH trebuie utilizat ntotdeauna cnd este vorba despre pachete care conin etichete sensibile explicite pentru a asigura integritatea comunicaiei capt la capt. Antetul ESP este conceput pentru a asigura integritatea, autenticitatea i confidenialitatea pachetelor de date IP. Mecanismul ESP asigur comunicaia sigur ntre dou sau mai multe calculatoare gazd care implementeaz acest mecanism, ntre dou sau mai multe rutere care 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

111

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 IPv4, 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 mecanismeul 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 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

112

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 IPv4 i 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.

6.3.2.2.1.1. Mecanisme de securitate la nivel IP


Dup cum s-a artat deja exist dou mecanisme de securitate la nivelul IP, AH i ESP. Aceste mecanisme nu asigur securitate mpotriva unui numr de atacuri prin analiz de trafic. Totui exist cteva tehnici n afara scopului acestui document care pot fi folosite pentru a realiza protecia mpotriva analizei de trafic.

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 se schimbe n tranzit, ca de exemplu cmpul "TTL" din cazul protocolului IPv4 sau cmpul "Hop Limit" din cazul protocolului IPv6, sunt omise c-nd 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

113

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 algoritm 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.

Mecanismul de securitate ESP


Acest mecanism de securitate este proiectat s asigure integritatea, autenticitatea i confidenialitatea pachetelor de date IP. El ndeplinete aceste funcii ncapsulnd fie un ntreg pachet de date IP fie doar protocolul de nivel superior (de exemplu TCP sau UDP sau ICMP), n interiorul capsulei ESP. ncapsularea se realizeaz prin criptarea celei mai mari pri a ESP i apoi prin adugarea unui nou antet IP n clar capsulei ESP, care este la acest moment criptat. Noul antet, care reprezint un text clar, este folosit pentru a transporta datele protejate prin interreea. Descrierea modurilor ESP Exist dou astfel de moduri. Primul, numit mod tunel, ncapsuleaz un pachet ntreg IP sup anztetul ESP. Cel de al doilea mod, numit mod transport, ncapsuleaz doar un protocol de nivel mai nalt (de exemplu UDP sau TCP) sub antetul ESP i apoi necesit adugarea unui nou antet IP cu text clar. Utilizarea mecanismului de securitate ESP Acest mecanism poate fi folosit la comunicaia ntre dou calculatoare gazd, ntre un calculator gazd i un ruter de securitate sau ntre dou rutere de securitate. Acest ajutor pentru ruterele de securitate permite reelelor de ncredere situate n spatele unui ruter de securitate s omit criptarea i deci s nlture pierderile de performan i creterea de costuri datorate criptrii, cu pstrarea confidenialitii traficului care strbate segmente nesigure ale reelei. Cnd ambele calculatoare gazd aflate n comunicaie folosesc mecanismul de securitate EPS i nu se folosete nici un ruter de securitate atunci cele dou calculatoare trebuie s foloseasc modul transport. Acest reduce att banda de frecvene consumat ct i costurile de prelucrare ale protocolului pentru utilizatori care nu trebuie s pstreze confidenial ntregul pachet de date. Mecanismul ESP funcioneaz att pentru trafic punct la punct ct i pentru trafic multipunct. Performanele mecanismului de securitate ESP Metoda de securitate bazat pe antetul ESP poate afecta semnificativ performanele unei 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.

Combinarea celor dou mecanisme de securitate


Exist cazuri cnd mecanismul de securitate bazat pe antetul AH poate fi combinat cu mecanismul de securitate bazat pe antetul ESP pentru a obine proprietile de securitate dorite.
114

Mecanismul bazat pe antetul AH asigur integritate i autenticitate i poate asigura i nerepudiere dac se bazeaz pe anumii algoritmi de autentificare prin criptare (ca de exemplu algoritmul RSA). Mecanismul de securitate bazat pe antetul ESP, asigur ntotdeauna autenticitate i confidenialitate i poate asigura i autentificare dac este folosit mpreun cu anumii algoritmi de criptare. Adugarea antetului AH la un pachet de date IP nainte de ncapsularea acestuia cu ajutorul mecanismului ESP poate fi de dorit pentru acei utilizatori care doresc o integritate puternic, autenticitate, confidenialitate i poate i pentru utilizatori care cer un serviciu puternic de nerepudiere. Cnd se combin cele dou mecanisme poziia antetului AH specific partea din irul de date care este autentificat.

Alte mecanisme de securitate


Protecia mpotriva analizei traficului nu este asigurat de nici unul dintre mecanismele descrise mai sus. Nu este clar cum pot fi realizate economic la nivelul INTERNET mecanisme de protecie mpotriva analizei traficului i se pare c exist puini utilizatori de INTERNET interesai de anliza de trafic. O metod tradiional de protecie mpotriva analizei de trafic este criptarea liniilor. O alt metod este de a genera trafic fals n scopul creterii zgomotului n datele obinute prin anliza de trafic.

6.3.2.2.1.2. Managementul cheilor


Protocolul de management al cheilor care se folosete cu mecanismele de securitate ale protocolului IP nu este specificat n acest document. Totui, deoarece protocolul de management al cheilor este cuplat cu mecanismele de securitate AH i ESP numai prin inermediul indicelui SPI, pot fi definite aceste mecanisme de securitate fr a specifica complet cum se realizeaz managementul cheilor. Se prevede c pot fi utilizate cteva mecanisme de management al cheilor mpreun cu mecanismele de securitate descrise, printre care i configurarea manual a cheilor. Se lucreaz la specificarea unui standard INTERNET pentru un protocol de management al cheilor. Mecanismele de securitate prezentate n acest document au fost concepute n ipoteza c folosesc metode de management al cheilor unde datele de management al cheilor sunt purtate de un protocol de nivel superior, cum ar fi UDP sau TCP, spre un numr de port specific sau spre punctul n care datele de management al cheilor vor fi distribuite manual. Aceast modalitate de proiectare permite o delimitare clar a mecanismelor de management al cheilor de alte mecanisme de securitate i deci permite includerea unor mecanisme de securitate noi i mbuntite fr a fi necesar modificarea implementrii celorlalte mecanisme de securitate. n continuare se face o scurt prezentare a alternativelor de management al cheilor.

Distribuirea manual a cheilor


Cea mai simpl form de management al cheilor este cea manual, n care o persoan configureaz fiecare sistem cu propria sa cheie precum i cu cheile celorlalte sisteme aflate n comunicaie. Aceast metod de distribuie este practicat n mprejurri statice la reele de dimensiune mic. Nu este o metod bun pentru abordrile pe termen mediu sau lung dar poate fi aplicat n cazul abordrilor pe termen scurt. De exemplu n cazul unei reele locale de dimensiuni mici este frecvent configurarea manual a cheilor pentru fiecare calculator component. n cadrul unui singur domeniu de administrare se practic de asemenea, pentru fiecare ruter, configurarea manual a 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.

115

Cteva tehnici de management al cheilor existente


Exist un numr de algoritmi de management al cheilor care au fost deja descrii n literatur. Un exemplu este cel al algoritmului folosit n cadrul sistemului de autentificare Kerberos, realizat la M.I.T n cadrul proiectului Athena. Un alt algoritm de management al cheilor a fost dezvoltat de Diffie i Hellman. Distribuirea automat a cheilor Dezvoltarea accelerat i folosirea pe scar larg a securitii IP va necesita un protocol de management al cheilor pentru INTERNET standardizat. Ideal ar fi ca un astfel de protocol de management al cheilor s suporte mai multe protocoale de securitate pentru protocoalele din seria TCP/IP i nu numai protocolul de securitate corespunztor protocolului IP. De exemplu n prezent se lucreaz la adugarea de chei de calculatoare gazd semnate la protocolul DNS. Cheile DNS permit expeditorilor s autentifice mesaje de management al cheilor ntre dou pri nsrcinate cu managementul cheilor folosind un algoritm de criptare cu cheie public. Cele dou pri ar avea atunci un canal de comunicaii autentificabil care ar putea fi folosit pentru a crea o cheie de sesiune (acceptat de ambele pri) folosind metoda Diffie-Hellman sau alte metode.

Abordri ale sistemului de management al cheilor pentru protocolul IP


Exist dou astfel de abordri pentru protocolul IP. Prima se numete orientat pe gazd i presupune ca toi utilizatorii gazdei 1 s mpart aceeai cheie pentru a o folosi n traficul destinat tuturor utilizatorilor gazdei 2. Cea de a doua abordare, numit orientat pe utilizator, permite utilizatorului A de la gazda 1 s aib una sau mai multe sesiuni unice pentru traficul su destinat gazdei 2; cheile acestor sesiuni nu sunt mprite cu ali utilizatori ai gazdei 1. De exemplu sesiunea ftp a utilizatorului A trebuie s foloseasc o alt cheie dect sesiunea telnet a aceluiai utilizator. n sistemele care sunt destinate securitii multi-nivel, utilizatorul A va avea de obicei cel puin cte o cheie pe nivel de sensibilitate (de exemplu o cheie pentru traficul neclasificat, o a doua cheie pentru traficul secret i o atreia cheie pentru traficul foarte secret). Similar n cazul sistemelor de management al cheilor, orientate pe utilizator, trebuie folosite chei separate pentru informaiile transmise unui grup printr-o comunicaie multipunct i pentru mesajele de control trimise aceluiai grup. n multe cazuri un singur sistem de calcul va avea cel puin doi utilizatori A i B care nu au ncredere unul n cellalt. Cnd se folosete un sistem de management al cheilor orientat pe gazd i exist astfel de utilizatori (care nu au ncredere unul n cellalt) e posibil ca utilizatorul A s determine cheia orientat pe gazd prin metode bine cunoscute cum ar fi atacul cu text n clar selectat. Odat ce utilizatorul A a obinut fraudulos cheia folosit, el poate citi traficul criptat al utilizatorului B sau s falsifice traficul utilizatorului B. Cnd se utilizeaz sisteme de management al cheilor orientate pe utilizator, anumite tipuri de atac ale traficului unui utilizator de ctre un alt utilizator nu sunt posibile. Securitatea protocolului IP a fost conceput ca s asigure autenticitate, integritate i confidenialitate pentru aplicaiile care opereaz cu sisteme conectate capt la capt cnd se utilizeaz algoritmi potrivii. Integritatea i confidenialitatea pot fi realizate cu sisteme de management al cheilor orientat pe gazd cnd se folosesc algoritmi corespunztori. Totui autentificarea n principalele aplicaii pentru sistemele capt la capt necesit folosirea asociailor de securitate. Astfel aplicaiile pot folosi facilitile de distribuire a cheilor care realizeaz autentificarea. De aceea sitemele de management al cheilor trebuie s fie prezente n toate implementrile algoritmului IP.

Distribuirea cheilor n sistemele de comunicaii multipunct


Pentru grupurile de utilizatori ai comunicaiilor multipunct care au un numr mic de membri, distribuirea manual a cheilor sau folosirea multipl a sitemelor de distribuire a cheilor pentru sistemele de comunicaii punct la punct bazat pe algoritmi cunoscui ( ca de exemplu o variant modificat a algoritmului Diffie-Hellman) par soluii acceptabile. Pentru grupuri cu un numr mare de membri vor fi ns necesare noi tehnici de management al cheilor.
116

Necesiti de management ale cheilor pentru protocolul IP


Acest paragraf definete necesiti de management al cheilor pentru toate implementrile protocolului IPv6 i pentru cele ale protocolului IPv4 care implementeaz serviciul de securitate bazat pe antetul AH, serviciul de securitate bazat pe antetul ESP sau ambele servicii de securitate amintite mai sus. Toate implementrile de acest fel trebuie s permit configurarea manual a asociailor de securitate. Toate implementrile de acest fel ar trebui s suporte un protocol de stabilire a asociailor de securitate de ndat ce s-ar publica un astfel de standard pentru INTERNET, chiar i n forma de RFC. Aceste implementri ar trebui s suporte de asemenea i alte metode de configurare a asociailor de securitate. Fiind date dou capete trebuie s existe mai mult de o singur asociaie de securitate pentru comunicaia ntre acestea. Toate aceste implementri trebuie s permit configurarea sistemelor de management al cheilor orientate pe gazd. Un dispozitiv care cripteaz sau autentific pachete IP provenind de la alte sisteme, de exemplu un sistem de criptare dedicat sau un ruter de criptare nu poate, n general s realizeze o distribuire a cheilor orientat pe utilizator pentru traficul generat de ctre un alt sistem. Astfel de sisteme trebuie s implementeze n plus support pentru managementul cheilor orientat pe utilizator, pentru traficul generat de pe alte sisteme. Metoda prin care cheile sunt configurate pe un sistem particular este definit prin implementare. Geenerarea unui fiier coninnd identificatori ai asociailor de securitate i parametri de securitate, inclusiv cheile este un exemplu pentru o metod posibil pentru distribuirea manual a cheilor. Un sistem IP trebuie s ia msuri rezonabile pentru a proteja cheile i alte informaii referitoare la asociaiile de securitate de examinarea neautorizat sau de modificri pentru c toat securitatea este depozitat n chei. Utilizare Acest paragraf descrie utilizarea posibil a mecanismelor de securitate oferite de protocolul IP, n mprejurri diferite i n aplicaii diferite din dorina de a da celui care implementeaz i utilizatorului o idee mai clar despre modul n care aceste mecanisme pot fi folosite pentru a reduce riscurile de securitate. Utilizarea mpreun cu dispozitive de tip firewall Aceste dispozitive se folosesc tot mai frecvent n INTERNET. Dei muli utilizatori nu apreciaz folosirea acestor dispozitive, doearece este restricionat conectivitatea calculatoarelor din reea, nu este probabil ca utilizarea lor s nceteze n viitorul apropiat. Ambele mecanisme de securitate IP, amintite mai sus, pot fi folosite pentru a crete securitatea asigurat de dispozitivele de tip firewall. Asociaiile dintre dispozitive de tip firewal i mecanismele de securitate IP de obicei trebuie s fie capabile s identifice antetele i opiunile din pachetele de date pentru a determina tipul protocolului de transport folosit (de exemplu UDP sau TCP) precum i numrul de port al acelui protocol. Dispozitivele de tip firewall pot fi utilizate n asociaie cu mecanismul de securitate IP bazat pe antetul AH, n funcie de modul n care sunt cuplate cu asociaia de securitate potrivit. Un dispozitiv de tip firewall care nu este parte a asociaiei de securitate considerat nu va fi capabil n mod normal s decripteze un protocol de nivel superior criptat pentru a-l analiza i a extrage numrul de port necesar pentru efectuarea filtrrii pachetelor sau pentru a verifica datele (de exemplu sursa, destinaia, protocolul de transport, numrul de port) folosite pentru verificarea autenticitii sau corectitudinii decizilor de control al accesului. Deci autentificarea trebuie realizat nu numai ntr-o organizaie sau ntr-un cartier ci i pentru legturile capt la capt dintre dou calculatoare gazd, care traverseaz INTERNET-ul. Utilizarea mecanismului de securitate IP bazat pe antetul AH ofer o mai mare credibilitate c datele folosite pentru decizii de contro 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.
117

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 support 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 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 discreionar 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,

118

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, Discretionary Access Controls, 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 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

119

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.

120

6.3.2.2.3. Securitatea protocolului TCP


n 1985, Morris a descris o form de atac bazat pe ghicirea secvenei de numere TCP care va fi folosit pentru conexiuni viitoare ale unui anumit calculator gazd. Atacatorul pune sub urmrire un calculator gazd n care inta sa are ncredere, modific adresa IP a acestui calculator gazd, cnd acesta comunic cu inta i se conecteaz la int pe baza ghicirii urmtorului numr iniial de secven care va fi folosit de ctre protocolul TCP. Pentru a obine informaii referitoare la starea numrului iniial de secven se folosete o conectare ordinar la calculatorul int. Soluia recomandat mpotriva unui astfel de atac este autentificarea criptografic a expeditorului. Din pcate aceast soluie nc nu se folosete. De aceea ar fi necesar pentru multe site-uri s se restrng folosirea protocoalelor care folosesc autentificarea bazat pe adrese, cum sunt de exemplu rlogin sau rsh. Din nefericire i utilizarea protocolului TELNET este pereclitat de un astfel de atac. Deci INTERNET-ul nu are un mecanism sigur pentru accesarea unui calculator de la distan. n continuare se prezint documentul RFC 1948, care propune o modificare simpl a protocolului TCP care va bloca majoritatea atacurilor bazate pe ghicirea numrului de secven. Mai precis, astfel de atacuri vor rmne posibile dac i numai dac atacatorul este capabil s lanseze i atacuri mai devastatoare. Detalii ale atacului Din dorina de a nelege cazul particular al ghicirii numrului de secven, trebuie analizat modul de realizare a unei conexiuni realizat cu ajutorul protocolului TCP. S presupunem c utilizatorul A dorete s se conecteze la serverul rsh B. Calculatorul A transmite mesajul urmtor: A->B: SYN, ISNa El transmite un pachet coninnd mulimea de bii SYN, synchronize sequence number i numrul iniial de secven, ISNa. Calculatorul B rspunde cu: B->A: SYN, ISNb, ACK(ISNa) Pe lng trimiterea propriului numr iniail de secven, el valideaz numrul iniial de secven al calculatorului A. Trebuie remarcat c valoarea ISNa trebuie s apar n mesaj. Calculatorul A confirm cererea de comunicaie trimind mesajul: A->B: ACK(ISNb) Numerele iniiale de secven se construiesc ntr-o manier aleatoare. Mai precis, n documentul RFC 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)
121

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 programme 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 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 sapii 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".

6.3.2.2.3.1. O slbiciune a protocolului TCP


Cum s-a menionat deja, atacatorii care ghicesc numrul de secven trebuie, n primul rnd, s "pcleasc", calculatorul de ncredere, notat cu A. Dei pentru acest scop sunt posibile mai multe
122

strategii, majoritatea atacurilor detectate pn n prezent se bazeaz pe o slbiciune a protocolului TCP. Cnd se recepioneaz pachetele SYN pentru o anumit conexiune, sistemul receptor creaz un nou TCB, transfer control block, n starea SYN-RCVD. Pentru a evita irosirea resurselor majoritatea sistemelor permit un numr limitat de TCB n aceast stare, pentru o conexiune. Odat ce aceast limit a fost atins, urmtoarele pachete SYN pentru noile conexiuni sunt neglijate, se presupune c ele vor fi retransmise dac va fi nevoie. La recepia unui pachet, primul lucru care trebuie fcut este o cutare a TCB-ului pentru conexiunea respectiv. Dac nu se gsete nici unul atunci nucleul TCP caut o "wildcard" TCB folosit de servere pentru a accepta conexiuni de la toi clienii. Din nefericire n multe nuclee TCP acest cod este cerut pentru orice pachet recepionat, nu numai pentru pachetele SYN iniiale. Dac coada SYN-RCVD este plin la sosirea "wildcard" TCB, orice nou pachet care specific doar gazda i numrul de port va fi neglijat, chair dac nu este vorba despre un pachet SYN. De aceea pentru a pcli un calculator gazd, atacatorul trimite cteva zeci de pachete SYN portului rlogin de la diferite numere de port ale unor calculatoare inexistente. n acest fel se umple coada SYNRCVD. Astfel atacul mpotriva calculatorului int pare a veni de la portul rlogin al calulatorului considerat de ncredere. Rspunsurile din partea intei, coninnd secvenele SYN+ACK, vor fi percepute ca aparinnd unei cozi pline i vor fi neglijate. Aceast comportare poate fi evitat dac codul cozii pline este verificat pentru bitul ACK, care nu poate fi pus pe 1 n mod legal pentru cereri de deschidere. Dac se constat c acest bit este pe 1 atunci trebuie s se rspund cu RST.

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.

6.3.3. Funcionarea servicilor INTERNET


Cele mai multe servicii sunt furnizate de programe numite server-e. Pentru ca un astfel de program s funcioneze, el trebuie s foloseasc un protocol (TCP sau UDP), s aib alocat un port i s fie lansat n execuie - de obicei, la ncrcarea sistemului de operare. n UNIX exist un fiier cu rol esenial n execuia servicilor: /etc/services. El conine, n fiecare linie, numele unui serviciu, numrul port-ului, numele protocolului i o list de alias-uri. Acest fiier, a crui securitate este foarte 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 smtp 25

/tcp /tcp

mail

Server-ele determin din acest fiier numrul propriu de port cu care lucreaz, folosind un appel sistem special: getservicebyname(). Port-urile au alocate numere; cele cuprinse n domeniul 0-1023 se consider port-uri sigure. Ele sunt restricionate la folosire, fiind accesibile doar superuser-ului. Ca urmare, programele care folosesc aceste port-uri trebuie executate ca root. Acest lucru mpiedic programele obinuite s obin informaii sensibile de la aceste port-uri. 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

123

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 demon-ul inetd, care poate asculta zeci de porturi i care lanseaz n execuie daemonul 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 port-uri 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: # # ftp telnet finger /etc/inetd.conf stream stream stream tcp tcp tcp nowait nowait nowait root root nobody /usr/etc/ftpd /usr/etc/telnetd /usr/etc/fingerd ftpd telnetd 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 ns i 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; - 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.

Servicii standard sub UNIX


Se vor analiza implicaiile fiecrui serviciu asupra securitii sistemului. Ori de cte ori exist suspiciuni asupra funcionrii unui sereviciu, se recomand inactivarea sa temporar prin prefaarea
124

numelui su din /etc/rc sau din /etc/inetd.conf cu caracterul #. Apoi trebuie repornit sistemul de operare, pentru ca schimbrile s-i fac efectul. n tabrlul urmtor sunt prezentate principalele servicii UNIX de reea mpreun cu numrul de port asociat. Port Serviciu Funcie 7 echo Test caractere n ecou 9 discard Test retur caractere 13 daytime Ora 19 chargen Generator de caractere 21 ftp File transfer protocol 23 telnet Conectare la distan 25 smtp E-mail 37 time Ora 42 nameserver Server de nume TCP 43 whois Serviciu Whois 53 domain Server DNS 79 finger Informaii despre utilizatori 80 http WWW 109 pop 2 Post Office Protocol 110 pop 3 Post Office Protocol 111 sunrpc RPC la Sun 113 auth Serviciu de autentificare 119 nntp Usenet 512 exec Execuie de comand pe maina distant 513 login Conectare pe maina UNIX distant 515 printer Tiprire la distan 540 uucp UUCP deasupra lui TCP 2049 NFS NFS deasupra lui TCP 6000+ X X window Port UDP 7 9 13 19 37 53 69 111 123 161 512 513 517 520 533 2049 Serviciul FTP Este implementat n UNIX prin programele clien ftp i prin server-ul /etc/ftpd i permite utilizatorilor s se conecteze la distan i s fac transfer de fiiere. Port-urile folosite sunt 21, pentru Serviciu echo discard daytime chargen time domain tftp sunrpc ntp semp biff who talk route netwall NFS 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 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

125

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 appel la port-ul 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 daemonul 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 appel 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 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 port -ul 69 i protocolul UDP.

126

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. Servicile rlogin i rsh Aceste programme permit un acces de la distan asemntor cu accesul permis de serviciul telnet. Ele folosesc porturile TCP 513 i 514. Exist dou deosebiri importante fa de telnet: - Utilizatorul lui rlogin nu trebuie s furnizeze numele, acesta fiind transmis automat la iniiere conexiunii; - Dac conexiunea se face de la o main de ncredere, utilizatorul nu mai trebuie s tasteze parola. Programele rsh i rshd sunt similare, cu deosebirea c ele dau acces doar de la maini sau utilizatori de ncredere i permit execuia doar unei singure comenzi la distan. Numite generic i comenzi r ele se flosesc pe baza mecanismului de autentificare BSD. Cineva poate da comanda rlogin fr a specifica parola doar dac sunt folosite urmtoarele criterii de autentificare: - Apelul trebuie s provin de la un port privilegiat tcp; - Utilizatorii i mainile care apeleaz trebuie s se gseasc a maina destinaie ntr-o list a partenerilor de ncredere (tipic n /etc/hosts.equiv) sau n fiierul HOME/.rhosts al utilizatorului; - Numele celui care a fcut apelul trebuie s corespund adresei sale IP (implementrile recente verific aceast coresponden). Din punct de vedere al utilizatorului aceast schem lucreaz corect. Un utilizator poate accesa mainile pe care vrea s lucreze, fr a i se cere parola. 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.

127

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. Programulsendmail 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 fierul 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 versiuneade sendmail cu care este echipat calculatorul dumneavoastr, conectaiv 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 urmtoarele adrese: 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, Provacy Enhanced Mail. Serviciul POP Post Office Protocol, POP, reprezint un protocol care, folosind port-urile 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. 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 port-ul 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 ;

128

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 serverele secundare s obin copii ale bazelor de date localizate pe serverele 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 port-ul 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 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

129

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 port-ul 111, cu protocol TCP sau UDP. Persoana care creaz un serviciu de reea utilizeaz un limbaj special pentru specificarea punctelor de intrare extern 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 port-ul 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 acest serviciu s fie invalidat pe calculatoarele importante.

130

6.4. Servicii de autentificare


1. Server-e de autentificare Kerberos
Cel mai puternic i mai folosit serviciu de autentificare din lume este Kerberos Authentication Server. El a fost creat la MIT. Kerberos ofer un mijloc de verificare a identitii principalelor calculatoare (de exemplu staie de lucru sau server de reea) dintr-o reea. Autentificarea se face cu ajutorul unei autoriti de ncredere numit ter de ncredere (trusted third-party). Aceast sarcin (autentificarea) este ndeplinit fr a face apel la autentificarea asigurat de ctre sistemul de operare al calculatorului gazd, fr a avea ncredere n adresa sa, fr a fi necesar prezena unor dispozitive suplimentare de securitate i pe baza ipotezei c pachetele care traverseaz reeaua pot fi citite sau modificate. Totui numeroase funcii ale sistemului Kerberos sunt folosite doar pentru iniierea unei conexiuni i presupun absena oricrui atac de tipul hijacke. O astfel de utilizare are implicit ncredere n adresele calculatoarelor gazd implicate. n aceste condiii Kerberos realizeaz autentificarea, de tipul celei oferite de o a treia parte, de ncredere. Se folosesc n acest scop metode convenionale de criptare, cum ar fi algoritmii simetrici. n schema de autentificare a protocolului Kerberos sunt implicate urmtoarele entiti: - Serverul de autentificare Kerberos, AS, - Serverul de acordare a tichetului, TGS, - 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

131

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 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.

2.1 Cmpul iniial


Indic faptul c acel "tichet" a fost generat folosind protocolul serverului AS i nu pe baza unui ticket-granting ticket.

2.2. Cmpurile PRE-AUTHENT i HW-AUTHENT


Ofer informaie adiional despre autentificarea iniial, referitoare la sursa care a emis tichetul. Dac este vorba despre serverul AS atunci att aceste cmpuri ct i cmpul iniial vor fi setate. Dac tichetul a fost generat pe baza unei proceduri ticket-granting ticket , cmpul iniial va conine valoarea 0, dar cmpurile PRE-AUTHENT i HW-AUTHENT vor avea valori generate de procedura ticket-granting ticket.

2.3 Cmpul INVALID


Indic dac un "tichet" este valid sau nu. Serverele de aplicaii trebuie s invalideze "tichetele" care au acest cmp setat. Este de exemplu cazul unui "tichet" postdatat. "Tichetele" invalidate trebuie revalidate de ctre serverul Kerberos nainte de folosire. n acest scop ele trebuiesc trimise la acest server ntr-o cerere TGS cu opiunea de validare specificat. Acest server va valida astfel de tichete doar dup ce a trecut momentul lor de pornire. Validarea este cerut pentru ca postdatarea "tichetelelor" care au fost furate naintea momentului lor de pornire s poat fi declarate permanent invalide (printr-un mecanism bazat pe o list).

132

2.4 Cmpul de renoire a "tichetului"


Aplicaiile pot dori s pstreze "tichetele" care pot fi valabile perioade lungi de timp. Totui, asta poate expune acreditrile lor la posibilitatea de a fi furate pe perioade de timp la fel de lungi. Aceste acreditri furate vor prea valabile pn la data expirrii "tichetelor" corespunztoare. Utilizarea simpl a "tichetelor" cu via scurt i obinerea frecvent a unor noi "tichete" va obliga 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, serferul 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 uui "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.

2.5 Cmpul MAY-POSTDATE


Aplicaiile pot avea nevoie, ocazional, s obin "tichete" pe care le vor folosi mult mai trziu. Dar este periculos s se pstreze "tichete" valabile ntr-o coad de ateptare, deoarece ele vor fi mai accesibile atacurilor. Post-datarea "tichetelor" este o cale de a obine aceste "tichete" de la serverul Kerberos la momentul cererii unei aplicaii, lsndu-le inactive pn la apariia unei cereri ulterioare de validare din partea serverului Kerberos. Dac ntre timp s-a raportat un furt de "tichete", serverul Kerberos va refuza validarea tichetului i houl nu va fi servit. Cmpul MAY-POSTDATE este interpretat doar de ctre serviciul ticket-granting. El poate fi ignorat de ctre serverele de aplicaie. Acest cmp trebuie setat ntr-un ticket-granting ticket pentru a crea posibilitatea generrii unui "tichet" postdatat pe baza "tichetului" curent. n mod normal acest cmp este resetat, doar poate fi cerut de ctre un client setarea sa. n acest scop clientul trebuie s seteze opiunea ALLOW-POSTDATE n mesajul KRB_AS-REQ. Acest cmp nu va permite unui client s obin un ticket-granting ticket postdatat. Un astfel de "tichet" poate fi obinut doar dac se cere post-datarea n mesajul KRB_AS-REQ. Timpul de via al unui "tichet" postdatat va fi egal cu restul timpului de via al "tichetului" de tip ticket-granting ticket, la momentul cererii, cu excepia cazului cnd opiunea RENEWABLE este de asemenea setat. n acest caz timpul de via al "tichetului" postdatat va fi egal cu ntregul timp de via al "tichetului" de tip ticket-granting ticket. Serverul Kerberos poate limita ct de departe n viitor poate fi postdatat un "tichet". Cmpul POSTDATED indic faptul c un "tichet" a fost postdatat. Anumite servicii pot alege s rejecteze "tichetele" postdatate, sau s le accepte doar ntr-o anumit perioad dup efectuarea autentificrii originale. Cnd serverul Kerberos genereaz un "tichet" postdatat, acesta va fi marcat i ca INVALID, astfel nct clientul trebuie s prezinte din nou "tichetul" serverului Kerberos, pentru a fi validat nainte de utilizare.

133

2.6 Cmpul PROXIABLE


Uneori poate fi necesar ca un utilizator prinicipal s solicite un serviciu pentru sine. Serviciul trebuie s fie capabil s identifice clientul, dar numai pentru un anumit scop. Pentru aceasta serviciul include acel utilizator principal n categoria proxy. Cmpul PROXIABLE dintr-un "tichet" este interpretat doar de ctre serviciul ticket-granting. El poate fi ignorat de ctre serverele de aplicaie. Cnd este setat, acest cmp spune serverului ticketgranting c poate fi generat un nou "tichet", dar nu un "tichet" de tipul ticket-granting ticket. "Tichetul" 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.

2.7 Cmpul FORWARDABLE


Retransmiterea autentificrii, Authentication forwarding , este un caz particular de serviciu proxy, cnd serviciului i se permite completa utilizare a identitii clientului. Un exemplu, n care acest caz trebuie folosit este cnd un utilizator se conecteaz la un sistem la distan, i dorete autentificarea pentru a lucra de pe acel sistem ca i cum l-ar fi accesat local. n mod normal cmpul FORWARDABLE al unui "tichet" este interpretat doar de serviciul ticket-granting. El poate fi ignorat de ctre serverele de aplicaie. Interpretarea cmpului FORWARDABLE este similar celei a cmpului PROXIABLE, cu excepia cazului cnd se utilizeaz "tichete" de tipul ticket-granting ticket. La interpretarea cmpului FORWARDABLE, i "tichetele" de tipul ticket-granting ticket pot fi nzestrate cu diferite adrese de reea. Acest cmp este resetat iniial, dar utilizatorii pot cere ca el s fie setat, setnd opiunea FORWARDABLE n cererea ctre AS, atunci cnd cer "tichetul" lor iniial, de tipul ticket-granting ticket. Acest cmp folosete la retransmiterea autentificrii fr a fi necesar o cerere ctre utilizator de a-i reintroduce parola. Dac acest cmp nu este setat, retransmiterea autentificrii nu este permis, dar la acelai rezultat final se poate totui ajunge dac utilizatorul se angajeaz n schimbul cu serverul AS cu adresele de reea cerute i furnizeaz o parol. Cmpul FORWARDED este setat de ctre TGS cnd un client prezint un "tichet" cu cmpul FORWARDABLE setat i cere setarea cmpului FORWARDED specificnd opiunea FORWARDED KDC i furniznd un set de adrese pentru noul "tichet". El este de asemenea setat n toate "tichetele" generate pe baza "tichetelor" cu cmpul FORWARDED setat. Serverele de aplicaie pot dori s prelucreze "tichete" retransmisibile n mod diferit de modul n care prelucreaz "tichete" neretransmisibile.

3 Schimburi de mesaje
n continuare se descriu interaciunile ntre clienii reelei i servere i mesajele implicate n aceste schimburi.

134

3.1 Schimburile de mesaje n cadrul serviciului de autentificare


Schimburile de mesaje ntre client i serverul de autentificare Kerberos n cadrul serviciului de autentificare, AS, sunt iniiate de obicei de ctre client, cnd acesta dorete s obin acreditri de autentificare pentru un anumit server, pentru c nu are astfel de acreditri. Cheia secret a clientului este folosit pentru criptare i decriptare. Acest schimb de mesaje este de obicei folosit la iniierea unei sesiuni de login, pentru a obine acreditri pentru un server de tipul Ticket-Granting, TS, care va fi folosit apoi pentru a se obine acreditri pentru alte servere, fr a mai fi necesar folosirea cheii secrete a clientului. Acest schimb este de asemenea folosit pentru a se cere acreditri pentru servicii care nu trebuiesc mediate de ctre serviciul Ticket-Granting Service, dar n acest caz este necesar cheia secret a unui utilizator principal aa cum este serviciul de modificare a parolelor, the passwordchanging service. (Cererea de schimbare a parolei poate s nu fie onorat dac cel care solicit nu poate furniza vechea 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 asoica 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.

3.1.1 Generarea mesajului KRB_AS_REQ


Clientul trebuie s specifice un numr de opiuni n cererea iniial. Printre aceste opiuni este modul n care se realizeaz preautentificarea, dac "tichetul" cerut poate fi renoit, dac el trebuie s primeasc eticheta proxy, dac el va putea fi retransmis, cum trebuie el postdatat sau dac poate fi folosit pentru post-datarea altor "tichete" derivate i dac un "tichet" renoibil va fi acceptat n locul unui "tichet" nerenoibil dac termenul de expirare al "tichetului" cerut nu va pautea fi satisfcut de ctre un "tichet" nerenoibil (datorit constrngerilor de configurare) Clientul genereaz mesajul KRB_AS_REQ i l trimite la serverul Kerberos.

3.1.2 Recepia mesajului KRB_AS_REQ


Dac totul merge bine prin prelucrarea mesajului KRB_AS_REQ se va crea un "tichet" pe care clientul s l prezinte serverului. Coninutul "tichetului" se determin dup cum urmeaz.

135

3.1.3 Generarea mesajului KRB_AS_REP


Serverul de autentificare identific utilizatorii principali de tip client i server din baza sa de date, pe baza cheilor lor secrete. Dac se cere, serverul preautentific cererea i dac controlul de preautentificare conduce la un rezultat negativ se returneaz un mesaj de eroare de tipul KDC_ERR_PREAUTH_FAILED. Dac serverul nu poate asigura tipul de criptare cerut se returneaz un mesaj de eroare de tipul KDC_ERR_ETYPE_NOSUPP. n caz contrar se genereaz, aleator, o cheie de sesiune. Dac n mesajul de cerere nu este indicat momentul de ncepere al serviciului, sau dac acest moment a fost depit, atunci momentul de nceput al "tichetului" este fixat la momentul la care serverul de autentificare transmite rspunsul. Dac n cerere este specificat un moment de timp viitor, dar opiunea POSTDATED nu a fost specificat, atunci se rspunde c s-a comis o eroare, cu un mesaj de tipul KDC_ERR_CANNOT_POSTDATE. Altfel, momentul de ncepere al "tichetului" este fixat cum s-a cerut i cmpul INVALID este setat n noul "tichet" (cel postdatat). "Tichetul" postdatat trebuie s fie validat naintea folosirii prin prezentarea sa la serverul Kerberos dup ce s-a atins momentul de nceput. Termenul de expirare al "tichetului" va fi fixat la valoarea minim dintre urmtoarele valori: - termenul de sxpirare 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.

136

3.1.4 Generarea mesajului KRB_ERROR


Cteva erori pot aprea, caz n care sereverul de autentificare rspunde, returnnd clientului un mesaj de eroare, KRB_ERROR, n care cmpurile error-code i e-text sunt setate cu valori corespunztoare

3.1.5 Recepia mesajului KRB_AS_REP


Dac mesajul cu care rspunde serverul KERBEROS este de tipul KRB_AS_REP atunci clientul verific cmpurile cname i crealm din poriunea de text clar a rspunsului se potrivesc cu ceea ce s-a cerut. Dac este prezent vreun cmp de tipul padata, acesta poate fi folosit pentru extragerea cheii corecte pentru decriptarea mesajului. Clientul decripteaz partea criptat a rspunsului folosind cheia sa secret, verific dac zona nonce din partea criptat este identic cu coninutul cmpului nonce din cererea pe care a expediat-o el. El verific de asemenea dac cmpurile sname i srealm din cerere i din rspuns sunt identice i dac cmpul de adres al gazdei este de asemenea corect. Apoi el stocheaz "tichetul", cheia sesiunii, momentele de nceput i de expirare i alte informaii, pentru a le folosi ulterior. Cmpul de expirare a cheii, din partea criptat a rspunsului poate fi verificat pentru a informa utilizatorul despre expirarea eminent a cheii (programul utilizatorului poate atunci sugera remedii, ca de exemplu o schimbare de parol). Decriptarea corect a mesajului KRB_AS_REP nu este suficient pentru verificarea identitii utilizatorului, acesta i un atacator pot coopera pentru a genera un format de meaj KRB_AS_REP care decripteaz corect dar care nu este transmis de serverul Kerberos legal. Dac gazda vrea s verifice identitatea utilizatorului, ea trebuie s-i cear utilizatorului s prezinte acreditri pentru aplicaie, care pot fi verificate folosind o cheie secret memorat sigur. Dac aceste acreditri pot fi verificate atunci identitatea utilizatorului poate fi asigurat.

3.1.6 Recepia mesajului KRB_ERROR


Dac mesajul recepionat de la serverul Kerberos este de tipul KRB_ERROR atunci clientul i d seama c n elaborarea sau n recepia cererii sale de autentificare s-a comis cel puin o eroare i o poate corecta.

3.2 Schimburile de mesaje n cadrul procesului de autentificare Client/Server


Procesul de autentificare client/server, CS, este folosit de aplicaiile de reea pentru a autentifica clientul serverului i invers. Clientul trebuie s fi obinut anterior acreditri pentru server folosind un schimb de mesaje cu serverul AS sau cu serviciul TGS.

3.2.1 Mesajul KRB_AP_REQ


Acest mesaj conine informaie de autentificare care trebuie s fie parte din primul mesaj ntr-o tranzacie autentificat. El conine un "tichet", un autentificator, i informaie adiional. Doar "tichetul" nu este suficient pentru autentificarea unui client, deoarece "tichetele" trec prin reea cu textul n clar ("tichetele" conin att o parte criptat ct i o parte necriptat aa c prin text clar, aici se nelege ntregul mesaj). Autentificatorul este folosit pentru a preveni rspunsul invalid la "tichete" care ar demonstra serverului c se cunoate, de ctre client, cheia secret a sesiunii. Mesajul KRB_AP_REQ se mai numete i authentication header.

3.2.2 Generarea mesajului KRB_AP_REQ


Cnd un client dorete s iniieze procesul de autentificare cu un server, el obine (fie prin intermediul unor acreditri, fie prin itermediul schimbului de mesaje cu serverul AS, fie prin intermediul schimbului de mesaje cu serviciul TGS) un "tichet" i o cheie de sesiune pentru serviciul

137

dorit. Clientul poate refolosi orice "tichet" pe care el l-a pstrat, dac acesta nu este expirat. Clientul construiete un nou autentificator pe baza timpului sistemului, a numelui sistemului i opional pe baza unei aplicaii specifice de sum de control, o secven iniial de numere care se utilizeaz n mesajele de tipul KRB_SAFE sau KRB_PRIV, i/sau o subcheie de sesiune care se folosete la negocieri pentru obinerea unei chei unice pentru sesiunea curent. Autentificatorii nu pot fi refolosii i vor fi respini dac se vor folosi n rspunsul ctre un server . Dac trebuie inclus i o secven iniial de numere, ea trebuie aleas aleator, astfel nct chiar i dup multe mesaje schimbate s nu existe riscul coliziunii cu alte secvene de numere utilizabile. Clientul poate indica o cerere de autentificare mutual sau utilizarea unui "tichet" bazat pe o cheie de sesiune, prin setarea cmpurilor corespunztoare din zona ap-options a mesajului. Autentificatorul este criptat n cheia sesiunii i combinat cu "tichetul" pentru a forma mesajul KRB_AP_REQ care este apoi trimis la serverul destinaie mpreun cu informaie adiional specific pentru aplicaie.

3.2.3 Recepia mesajului KRB_AP_REQ


Autentificarea este bazat pe timpul curent al serverului (ceasurile celor dou sisteme trebuie s fie sincronizate), pe autentificator i pe "tichet". Mai multe tipuri de erori se pot produce. Dac apare o eroare, atunci serverul va rspunde clientului cu un mesaj KRB_ERROR. Acesta mesaj poate fi nglobat n protocolul aplicaiei. Algoritmul pentru verificarea autenticitii informaiei este urmtorul. Dac mesajul nu este de tip KRB_AP_REQ serverul returneaz mesajul de eroare KRB_AP_ERR_MSG_TYPE. Dac versiunea de cheie, indicat n KRB_AP_REQ nu este cea pe care o folosete serverul (de exemplu s-a indicat o versiune de cheie mai veche) atunci se returneaz mesajul de eroare KRB_AP_ERR_BADKEYVER. Dac n zona ap-options este setat cmpul USE-SESSION_KEY i se 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
138

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.

3.2.4 Generarea mesajului KRB_AP_REP


Uzual o cerere de la client va include att informaia de autentificare ct i cererea sa iniial, n acelai mesaj iar serverul nu va trebui s rspund explicit la mesajul KRB_AP_REQ. Totui dac s-a realizat o autentificare mutual (nu numai autentificarea clientului de ctre server ci i reciproc) atunci n zona ap-option a mesajului KRB_AP_REQ va fi setat cmpul MUTUAL-REQUIERED i este necesar un mesaj de rspuns KRB_AP_REP. La fel ca i n cazul mesajelor de eroare acest mesaj poate fi inclus n protocolul de aplicaie. Mesajul KRB_AP_REP este criptat n cheia sesiunii extras din "tichet".

3.2.5 Recepia mesajului KRB_AP_REP


Dac i se returneaz un mesaj KRB_AP_REP, clientul folosete cheia sesiunii din acreditrile obinute pentru server pentru a decripta acest mesaj. Trebuie remarcat c pentru criptarea mesajului KRB_AP_REP nu se utilizeaz cheia sesiunii chiar dac aceasta este prezent n autentificator. Apoi clientul verific dac tampila temporal i cmpurile de microsecunde se potrivesc cu zonele corespunztoare din autentificatorul pe care el l-a trimis serverului. Dac are loc aceast potrivire atunci clientul este asigurat c serverul este sigur. Numrulde secven i cheia (dac exist) sunt reinute pentru utilizare ulterioar.

3.2.6 Utilizarea cheii de criptare


Dup ce s-a declanat schimbul de mesaje KRB_AP_REQ/KRB_AP_REP clientul i serverul mpart (share) o cheie de criptare care poate fi folosit de ctre aplicaie. Adevrata cheie de sesiune care trebuie folosit pentru mesajele KRB_PRIV sau KRB_SAFE sau alte measaje specifice aplicaiilor trebuie aleas de ctre aplicaie pe baza subcheilor din mesajul KRB_AP_REP i a autentificatorului. Implementri ale protocolului aplicaiei pot dori s realizeze rutine de alegere a subcheilor, pornind de la cheile de sesiune i de la numere aleatoare i s genereze o cheie negociat care s fie returnat n cadrul mesajului KRB_AP_REP. n anumite cazuri utilizarea acestei chei de sesiune va fi implicit, n protocol, n alte cazuri metoda de folosit se alege dintre mai multe alternative. Se organizeaz negocieri ale protocolului asupra utilizrii cheii (de exemplu selectarea unui anumit tip de criptare sau a unui anumit tip de sum de control). Protocolul Kerberos nu trebuie s impun constrngeri opiunilor de implementare. Att n cazul schimburilor de mesaje de autentificare ntr-un singur sens ct i n cazul mesajelor de autentificare mutuale, trebuie luate msuri de siguran s nu se transmit informaii sensibile ntre cele dou claculatoare (care schimb mesaje) fr asigurri de securitate corespunztoare. n particular, aplicaiile care necesit confidenialitate sau integritate trebuie s foloseasc rspunsurile KRB_AP_REP sau KRB_ERROR de la server la client. Dac un protocol de aplicaie necesit confidenialitatea mesajelor sale, el poate utiliza mesajul de tip KRB_PRIV. Mesajul de tip KRB_SAFE poate fi folosit pentru a asigura integritate.

3.3 Schimbul de mesaje n cadrul serviciului Ticket-Granting, TGS


Schimbul de mesaje TGS ntre un client i serverul Kerberos Ticket-Granting este iniiat de un client cnd el dorete s obin acreditri de autentificare pentru un anumit server (care poate fi nregistrat ntr-un domeniu de securitate aflat la distan), cnd el dorete s renoiasc sau s valideze un "tichet" existent sau cnd el vrea s obin un "tichet" proxy. n primul caz,clientul trebuie s fi obinut deja un

139

"tichet" pentru serviciul Ticket-Granting, pe baza schimbului de mesaje AS ("tichetul" de tip ticketgranting este de obicei obinut cnd un client este deja autentificat de sistem, aa cum se ntmpl atunci cnd un utilizator face log-in). Formatul mesajului pentru schimbul TGS este aproape identic cu cel al mesajului pentru schimbul AS. Diferena principal este c criptarea i decriptarea din cazul schimbului TGS nu trebuiesc fcute cu ajutorul cheii clientului. n locul acesteia se folosesc cheia sesiunii pentru "tichetul" de tip ticket-granting, sau de tipul "tichet" renoibil, sau o cheie de subsesiune de la un autentificator. La fel ca n cazul schimbului de mesaje cu servere de aplicaie, nu sunt acceptate n cadrul schimbului TGS "tichetele" expirate, aa c odat ce un "tichet" renoibil sau un "tichet" de tipul ticket-granting expir, clientul trebuie s foloseasc un schimb separat de mesaje pentru a obine "tichete" valabile. Schimbul de mesaje TGS se bazeaz pe dou tipuri de mesaje: unul de cerere de la client la serverul Kerberos de tipul Ticket-Granting, KRB_TGS_REQ i unul de rspuns KRB_TGS_REP sau KRB_ERROR. Mesajul de tip KRB_TGS_REQ include informaie autentificnd clientul i o cerere de acreditri. Informaia de autentificare const dintr-un antet de autentificare, KRB_AP_REQ, care include "tichetele" anterior obinute de client, de tipul ticket-granting, renoibil sau invalid. n cazurile n care este vorba despre "tichete" de tipul ticket-granting sau proxy, cererea trebuie s includ i una sau mai multe dintre urmtoarele: o list cu adrese de reea, o colecie de date de autorizare care vor fi folosite pentru autentificare de serverul de aplicaie sau "tichete" adiionale. Mesajul de rspuns TGS, KRB_TGS_REP conine acreditrile cerute, criptate n cheia sesiunii din cadrul "tichetului" de tipul ticket-granting sau renoibil, sau dac este prezent, n cheia subsesiunii din autentificator (o parte a antetului de autentificare). Mesajul de eroare KRB_ERROR conine un cod de eroare i un text n care se explic ce s-a greit. Acest mesaj nu este criptat. Mesajul de tip KRB_TGS_REP conine informaie care poate fi folosit pentru a detecta rspunsuri i pentru a le asocia cu mesajul care le-a generat.

3.3.1 Generarea mesajului KRB_TGS_REQ


nainte de a trimite o cerere serviciului TGS, clientul trebuie s determine n ce domeniu de securitate este nregistrat serverul de aplicaie corespunztor. Dac el nu posed deja un "tichet" de tipul ticket-granting, pentru acel domeniu de securitate atunci trebuie obinut un astfel de "tichet". n acest scop se face pentru nceput o cerere de "tichet" de tipul ticket-granting pentru domeniul de securitate vizat de la serverul Kerberos local (folosind recursiv mesajul KRB_TGS_REQ). Serverul Kerberos poate returna un "tichet" de tip TGT pentru domeniul de securitate dorit, caz n care se poate continua. Dar serverul Kerberos poate returna i un "tichet" de tip TGT pentru un domeniu de securitate care este apropiat de domeniul de securitate, caz n care acest pas trebuie repetat, apelnd la un server Kerberos din domeniul de securitate specificat n "tichetul" de tip TGT returnat. Dac nu se returneaz nici un mesaj, atunci trebuie s se transmit cererea unui server Kerberos pentru un domeniu de securitate superior ierarhic. Dup ce clientul a obinut un "tichet" de tip TGT pentru domeniul de securitate corespunztor, el determin care servere Kerberos, deservesc acest domeniu i contactez unul dintre ele. Lista trebuie obinut printr-un fiier de configurare sau printr-un serviciu de reea; att timp ct cheile secrete schimbate ntre domenii de securitate sunt pstrate secrete, un server Kerberos fals nu poate face altceva dect s nege serviciul. La fel ca n cazul schimbului de mesaje cu serverul de autentificare, AS, clientul trebuie s specifice un numr de opiuni n mesajul KRB_TGS_REQ. Clientul pregtete mesajul KRB_TGS_REQ, completnd un antet de autentificare ca element al zonei padata i incluznd aceleai cmpuri ca i cele folosite n mesajul KRB_AS_REQ precum i cteva cmpuri opionale: cmpul enc-authorization-data pentru utilizarea de ctre serverul de aplicaie i "tichete" adiionale cerute de anumite opiuni. n pregtirea antetului de autentificare, clientul poate selecta o cheie de sub-sesiune cu ajutorul creia va fi criptat rspunsul de la serverul Kerberos. Dac cheia de sub-sesiune nu este specificat atunci se va folosi cheia sesiunii din "tichetul" de tip TGT. Dac data de tipul enc-authorization exist, ea trebuie criptat n cheia sub-sesiunii.
140

Dup ce antetul de autentificare a fost elaborat, mesajul KRB_TGS_REQ este trimis serverului Kerberos pentru domeniul de securitate de destinaie.

3.3.2 Recepia mesajului KRB_TGS_REQ


Mesajul KRB_TGS_REQ este prelucrat asemntor cu modul n care este prelucrat mesajul KRB_AS_REQ, dar exist cteva verificri suplimentare, de efectuat. n primul rnd, serverul Kerberos trebuie s determine de la care server este "tichetul" care acompaniaz mesajul i el trebuie s selecteze cheia potrivit pentru a-l decripta. Pentru un mesaj KRB_TGS_REQ normal "tichetul" va corespunde unui serviciu de tipul TGS i va fi folosit cheia TGS. Dac "tichetul" de tip TGT a fost emis de un alt domeniu de securitate, atunci trebuie folosit cheia potrivit dintre domenii de securitate. Dac "tichetul" care acompaniaz mesajul nu este de tipul TGT pentru domeniul de securitate curent, ci este pentru un server de aplicaie din domeniul de securitate curent, opiunile RENEW, VALIDATE sau PROXY sunt specificate n cerere i serverul pentru care se cere un "tichet" este serverul numit n "tichetul" care acompaniaz mesajul, atunci serverul KDC va decripta "tichetul" n antetul de autentificare, folosind cheia serverului pentru care a fost solicitat. Dac nu poate fi gsit nici un "tichet" n zona padata, atunci se returneaz mesajul de eroare KDC_ERR_PADATA_TYPE_NOSUPP. Dup ce "tichetul" care acompaniaz mesajul KRB_TGS_REQ a fost decriptat trebuie verificat suma de control a utilizatorului din autentificator n acord cu coninutul cererii, i mesajul trebuie rejectat dac aceast sum nu se potirvete. Mesajul de eroare folosit n acest caz este KRB_AP_ERR_MODIFIED. Dac tipul de sum de control nu este suportat atunci se returneaz mesajul KDC_ERR_SUMTYPE_NOSUPP. Dac exist i date de autorizare, acestea sunt decriptate folosind cheia de sub-sesiune din autentificator. Dac oricare dintre procedurile de decriptare indicate dovedete pierderea integritii dup ce se testeaz acest proprietate atunci se returneaz mesajul de eroare KRB_AP_ERR_BAD_INTEGRITY.

3.3.3 Generarea mesajului KRB_TGS_REP


Acest mesaj i mparte (shares) formatul cu mesajele KRB_AS_REP (KRB_KDC_REP), dar cmpul su de tip este setat cu KRB_TGS_REP. Rspunsul va include un "tichet" pentru serverul cerut. Baza de date Kerberos este nsrcinat s gseasc nregistrarea pentru serverul cerut (inclusiv cheia cu care "tichetul va fi criptat). Dac cererea este pentru un tichet de tip TGT pentru un domeniu de securitate aflat la distan i dac nu exist vreo cheie mprit cu domeniul de securitate cerut, atunci serverul Kerberos va selecta domeniul de securitate cel mai apropiat de domeniul de securitate cerut, cu care se mparte o cheie i va folosi acest domeniu. Acesta este singurul caz n care rspunsul de la KDC va fi pentru un server diferit de serverul solicitat de client. Automat, cmpul de adrese, numele clientului i domeniul de securitate, lista domenilor de securitate tranzitate, momentul autentificrii iniiale, momentul expirrii i datele de autorizare ale noului "tichet" generat vor fi copiate din "tichetul" de tip TGT sau renoibil. Dac cererea specific un timp de terminare atunci timpul de terminare al noului "tichet" este setat la minimul dintre: (a) timpul de terminare din "tichetul" de tip TGT, (b) timpul de terminare al "tichetului" de tip TGT, (c) suma dinre timpul de ncepere al "tichetului" de tip TGT i minimul dintre timpul maxim de via pentru serverul de aplicaie i maximul de via pentru domeniul de securitate local. Dac noul tichet este pentru o renoire atunci momentul de terminare de mai sus e nlocuit cu minimul dintre: (a) valoarea cmpului renew-till al "tichetului", (b) suma dintre momentul de pornire al noului "tichet" i timpul de via al vechiului "tichet". Dac s-a specificat opiunea FORWARDED, atunci "tichetul" rezultant va conine adresele specificate de client. Aceast opiune va fi onorat doar dac cmpul FORWARDABLE este setat n
141

cadrul "tichetului" de tip TGT. La fel se procedeaz i cu opiunea PROXY. Aceast opiune nu va fi onorat n cazul cererilor pentru "tichete" de tipul TGT adiionale. Dac momentul de pornire solicitat este absent sau a trecut deja, atunci momentul de ncepere al "tichetului" este fixat pe baza timpului curent al serverului de autentificare. Dac a fost indicat un moment de timp viitor, dar nu a fost specificat opiunea POSTDATED sau cmpul MAYPOSTDATE nu este setat n cadrul "tichetului" de tip TGT, atunci se returneaz mesajul de eroare KDC_ERR_CANNOT_POSTDATE. Altfel, dac "tichetul" de tip TGT are cmpul MAYPOSTDATE setat, atunci "tichetul" rezultat va fi postdatat i momentul de nceput cerut este fixat pe baza politicii domeniului de securitate local. Dac este acceptabil, momentul de pornire al "tichetului" este setat dup cum s-a cerut i c-mpul INVALID este setat. "Tichetul" postdatat trebuie validat naintea folosirii prin prezentarea sa la serverul Kerberos, KDC, dup ce momentul nceperii a fost atins. Totui, n nici un caz nu trebuie ca momentul de ncepere, momentul de terminare, sau timpul de tip renew-till, ale unui nou "tichet" postdatat s depeasc timpul de tipul renew-till al "tichetului" de tip TGT. Dac s-a specificat opiunea ENC-TKT-IN-SKEY i a fost inclus i un "tichet" adiional n cerere, atunci serverul Kerberos, KDC, va decripta "tichetul" adiional folosind cheia pentru serverul pentru care a fost generat "tichetul" adiional i va verifica dac acesta este un "tichet" de tip TGT. Dac numele serverului cerut lipsete din cerere, va fi folosit numele clientului din "tichetul" adiional. Altfel numele serverului cerut va fi comparat cu numele clientului din "tichetul" adiional i dac se vor constata diferene cererea va fi respins. Dac cererea a fost satisfcut, se va utiliza cheia sesiunii din "tichetul" adiional pentru a cripta noul "tichet" care se genereaz, n loc s se foloseasc cheia serverului pentru care se va folosi noul "tichet". n acest mod se favorizeaz implementarea autentificrii de la utilizator la utilizator, care folosete chei de sesiune pentru "tichete" de tip TGT n loc de chei de server n cazurile n care astfel de chei secrete ar putea fi uor compromise. Dac numele serverului din "tichetul" care este prezentat la serverul KDCca o parte a antetului de autentificare nu este cel al serverului Ticket-Granting i serverul este nregistrat n domeniul de securitate al serverului Kerberos, KDC, i dac este specificat opiunea RENEW, atunci serverul KDC va verifica dac este setat cmpul RENEWABLE n cadrul "tichetului" i c momentul renewtill este mc n viitor. Dac este specificat opiunea VALIDATE, 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.

3.3.3.1 Codarea cmpurilor tranzitate


Dac identitatea serverului declarat n "tichetul" de tip TGT care este prezentat serverului KDC ca i parte a antetului de autentificare este cea a serviciului Ticket-Granting dar "tichetul" de tip TGT a fost generat dintr-un alt domeniu de securitate, atunci serverul KDC va folosi cheia interdomenii de securitate, mprit cu acel domeniu de securitate, pentru a decripta "tichetul". Dac "tichetul" este valid atunci serverul KDC va onora cererea, respectnd constrngerile specifice schimbului de mesaje cu serverul de autentificare AS. Partea din identitatea clientului, referitoare la domeniile de securitate, va fi luat din "tichetul" de tip TGT. Numele domeniului de securitate care a
142

generat "tichetul" de tip TGT va fi adugat la cmpul tranzitat, the transited field, al "tichetului" care va fi generat. Asta se realizeaz citind cmpul tranzitat din "tichetul" de tip TGT (care este tratat ca o mulime neordonat de nume de domenii de securitate), adugnd noul domeniu de securitate la mulime, apoi construind i scriind forma sa codat , shorthand, (asta poate implica o rearanjare a codrii existente). Trebuie notat c serviciul Ticket-Grantingnu trebuie s adauge numele propriului su domeniu de securitate. De fapt responsabilitate sa este s adauge numele domeniului de securitate anterior. Asta previne ca un server Kerberos fals s evite declararea propriului su nume (el va putea totui s omit numele altor domenii de securitate). Nici numele domeniului de securitate local i nici cel al domeniului de securitate al utilizatorului principal nu trebuie incluse n cmpul tranzitat. Ele apar altundeva n cadrul "tichetului" i ambele se folosesc n autentificarea utilizatorului principal. Deoarece punctele de capt nu sunt incluse, att autentificarea local ct i autentificarea interdomenii de securitate, cu un domeniu vecin vor corespunde la cmpuri de tranzitare vide. Deoarece numele fiecrui domeniu de securitate tranzitat este adugat la acest cmp, el poate avea o lungime foarte mare. Pentru a descrete lungimea acestui cmp, coninutul su se codeaz. Metoda de codare iniial este optimizat pentru cazul mormal al comunicrii inter-domenii de securitate.

3.5 Schimbul de mesaje KRB_PRIV


Mesajul de tip KRB_PRIV poate fi folosit de clieni care au nevoie de confidenialitate i de abilitatea de a detecta modificri ale mesajelor schimbate. El realizeaz aceste deziderate criptnd mesajele i adugnd informaie de control.

3.5.1 Generarea mesajului KRB_PRIV


Cnd o aplicaie dorete s trimit un mesaj de tip KRB_PRIV, ea colecteaz datele sale i informaia de control corespunztoare i le cripteaz folosind o cheie (de obicei ultima cheie negociat prin intermediul mecanismului bazat pe subchei, sau cheia sesiunii dac nu au avut loc negocieri). Ca 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".

3.5.2 Recepia mesajului KRB_PRIV


Cnd o aplicaie primete un mesaj de tipul KRB_PRIV ea l verific dup cum urmeaz. La nceput se controleaz dac versiunea de protocol i tipurile de cmpuri folosite se potrivesc cu versiunea curent i cu mesajul de tip KRB_PRIV. O nepotrivire genereaz un 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 clar reztultat. Dac decriptarea arat c datele au fost modificate, atunci se genereaz un mesaj de eroare de tip KRB_AP_ERR_BAD_INTEGRITY. Aplicaia care a recepionat mesajul verific, pe baza raportului sistemului su de operare, referitor la adresa expeditorului, dac aceasta este identic cu adresa expeditorului din mesaj i (dac este specificat o adres de destinatar sau dac destinatarul cere o adres) c una dintre adresele destinatarului apare ca adres a destinatarului n cadrul mesajului. O nepotrivire de adres, n unul dintre cele dou cazuri expuse, genereaz un mesaj de eroare de tipul KRB_AP_ERR_BADADDR. Apoi se verific cmpurile: tampil temporal, time stamp, usec i/sau numr de secven, sequence number. Dac se ateapt prezena cmpurilor timestamp i usec i acestea nu sunt prezente, sau ele sunt prezente dar nu sunt setate, atunci se genereaz mesajul de eroare KRB_AP_ERR_SKEW. Dac cele patru cmpuri: numele serverului, numele clientului, timp i microsecond, din cadrul autentificatorului, sunt identice cu o grupare de astfel de cmpuri observat recent, atunci se genereaz mesajul de eroare KRB_AP_ERR_REPEAT.

143

Dac este inclus un numr de secven incorect, sau se ateapt un numr de secven, dar acesta nu este prezent, atunci se genereaz mesajul de eroare KRB_AP_ERR_BADORDER. Dac nu este prezent nici unul dintre cmpurile: tampil de timp, usec, sau numr de secven, atunci se genereaz mesajul de eroare KRB_AP_ERR_MODIFIED. Dac toate controalele descrise mai sus, sunt satisfcute, atunci aplicaia poate considera c mesajul a fost transmis de sursa invocat i c a fost transmis n siguran.

3.6 Schimbul de mesaje KRB_CRED


Mesajul de tip KRB_CRED poate fi folosit de clienii care solicit dreptul de a transmite acreditri Kerberos de la un calculator gazd la altul. Asta se poate face trimind "tichetele" mpreun cu date criptate coninnd cheia sesiunii i alte informaii asociate cu "tichetele".

3.6.1 Generarea mesajului KRB_CRED


Cnd o aplicaie dorete s transmit un mesaj de tipul KRB_CRED ea obine n primul rnd (folosind schimbul de mesaje KRB_TGS) acreditrile care trebuie trimise la calculatorul gazd de la distan. Apoi ea construiete un mesaj de tipul KRB_CRED folosind "tichetul" sau "tichetele" obinute astfel, plasnd cheia de sesiune, care trebuie folosit de ctre fiecare "tichet" n cmpul de cheie al secvenei KrbCredInfo corespunztoare a prii criptate a mesajului KRB_CRED. Alte informaii asociate cu fiecare "tichet" i obinute pe durata schimbului de mesaje KRB_TGS sunt de asemenea plasate n secvena KrbCredInfo corespunztoare din partea criptat a mesajului KRB_CRED. Timpul curent i, dac este explicit cerut de ctre aplicaie, cmpurile: nonce, s-address, i raddress, sunt plasate n partea criptat a mesajului KRB_CRED, care este apoi criptat folosind o cheie de criptare, care a fost transmis n cadrul schimbului de mesaje KRB_AP (de obicei ultima cheie negociat prin mecanismul subcheilor, sau cheia sesiunii dac nu au avut loc negocieri).

3.6.2 Recepia mesajului KRB_CRED


Cnd o aplicaie primete un mesaj de tipul KRB_CRED, ea l verific. Dac a aprut vreo 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 referitpr 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.

4 Baza de date Kerberos


Serverul Kerberos trebuie s aib acces la o baz de date care s conin identificatorii i cheile secrete ale utilizatorilor principali care trebuie autentificai. Implementarea serverului nu necesit s se combine baza de date i serverul propriuzis pe acelai calculator; principala baz de date poate fi stocat ntr-un nume de serviciu de reea, de exemplu, dar datele, din aceast baz, trebuie s

144

fie protejate mpotriva modificrilor sau a schimbrii structurii, efectuate de ctre pri neautorizate. Totui astfel de strategii nu sunt recomandate, deoarece ele conduc la un management de sistem i la o analiz a vulnerabilitii complicate. it is feasible to store the principal database in, say, a network name service, as long as the entries stored therein are protected from disclosure to and modification by unauthorized parties. However, we recommend against such strategies, as they can make system management and threat analysis quite complex.).

4.1 Coninutul bazei de date


O intrare n baza de date trebuie s conin cel puin urmtoarele cmpuri: Cmp nume cheie p_kvno max_life max_renewable_life Valoare Identificatorul utilizatorului principal Cheia secret a utilizatorului principal Versiunea de cheie a utilizatorului principal Timpul de via maxim al "tichetelor" Timpul total maxim de via pentru "tichete" renoibile

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 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.

5. Specificaii referitoare la criptare i la sumele de control


Protocoalele Kerberos sunt destinate utilizrii unor sisteme de criptare secveniale, care pot fi simulate folosind siteme de criptare pe blocuri, care se pot procura mai uor, cum ar fi sitemul de criptare DES. Aceste sisteme de criptare sunt utilizate mpreun cu metode de nlnuire a blocurilor i cu metode bazate pe sumele de control. Criptarea este folosit pentru a demonstra identitatea entitilor din reea, care particip la schimburile de mesaje. Centrul de distribuire a cheilor, al fiecrui domeniu de securitate, este considerat de ncredere de ctre toi utilizatorii principali, nregistrai n acel domeniu de securitate i este folosit pentru memorarea cte unei chei secrete. Cunoaterea acestei chei secrete este folosit pentru verificarea autenticitii utilizatorilor principali. Serverul KDC folosete cheia utilizatorului principal (n schimbul de mesaje AS) sau o cheie de sesiune mprit (n schimbulde mesaje TGS) pentru a cripta rspunsurile la cererile de "tichete";
145

abilitatea de a obine cheia secret sau cheia sesiunii implic cunoaterea cheilor corespunztoare i a identitii serverului KDC. Abilitatea utilizatorului principal de a decripta rspunsul de la serverul KDC i de a prezenta un "tichet" i un autentificator, de form corespunztoare, (generat cu ajutorul cheii sesiunii din rspunsul KDC), unui serviciu de verificare a identitii utilizatorului principal; la fel ca i abilitatea serviciului de a extrage cheia sesiunii din "tichet" i de a demonstra cunoaterea sa ntr-un rspuns, sunt utilizate pentru a verifica identitatea acelui serviciu. Protocoalele Kerberos presupun n general c metoda de criptare folosit este sigur; totui, n anumite cazuri, ordinea cmpurilor din poriunile criptate ale mesajelor sunt aranjate pentru a minimiza efectele unor alegeri necorespunztoare ale cheilor. Este totui important s se aleag chei bune. Dac cheile sunt derivate din parole de tip utilizator, aceste parole trebuie s fie bine utilizate, pentru a combate atacurile bazate pe fora brut. Nealegerea corespunztoare a cheilor face sarcina atacatorilor mai uoar. Pentru metodele de criptare, este de obicei de dorit s se plaseze informaie aleatoare la nceputul mesajului. Anumite sisteme de criptare folosesc o metod de nlnuire a blocurilor pentru a mbunti caracteristicile de securitate ale textului cifrat. Totui, aceste metode de nlnuire, nu asigur, de obicei, controlul integritii dup decriptare. Sistemele de criptare, cum ar fi de exemplu, DES, trebuie nzestrate cu un mecanism de verificare a sumelor de control, pentru textul n clar obinut dup decriptare, care s fie folosit pentru verificarea integritii mesajului. Un astfel de mecanism trebuie s fie bun la detectarea erorilor de tip burst. Dac se detecteaz vreo eroare, rutina de decriptare trebuie s returneze un mesaj de eroare, indicnd faptul c testul de integritate nu a fost satisfcut. Fiecrei metode de criptare i se asociaz un anumit tip de sum de control. Prin specificarea metodei de criptare se precizeaz i parametrii metodei de verificare a sumei de control aferente. n sfrit, cnd trebuie extras o cheie din parola unui utilizator, se folosete un algoritm pentru conversie. Este de preferat ca funcia hash folosit pentru transformarea parolei n cheie s fie de tipul one-way i s se foloseasc funcii hash diferite pentru diferite domenii de securitate. Asta este important deoarece utilizatori care sunt nregistrai n mai multe domenii de securitate, vor utiliza aceai parol n fiecare dintre aceste domenii i este de dorit ca un atacator care a reuit s compromit serverul Kerberos dintr-un domeniu de securitate s nu poat obine cheia utilizatorului ntr-un alt astfel de domeniu.

146

6.5.1. Pachetul de programe PGP, Pretty Good Privacy


Acest pachet de programe reprezint o exemplificare a conceptului PEM. El a fost conceput de Phil Zimmermann. Deoarece acesta a fost suspectat c ar fi nclcat interdicia impus de guvernul american asupra exportului de produse criptografice, el a fost urmrit n justiie timp de mai muli ani. n prezent este patronul unei companii de software care comercializeaz acest pachet de programe.

Funcionarea PGP
PGP combin civa dintre cei mai buni parametri ai criptografiei simetrice i asimetrice. El este un sistem de criptare hibrid. Cnd un utilizator cripteaz un text n clar cu PGP, acesta comprim prima dat textul n clar. Compresia crete rezistena la atacuri de criptanaliz. Apoi PGP creaz o cheie de sesiune care este folosit o singur dat. Aceast cheie este un numr aleator. Ea lucreaz n acord cu un algoritm de criptare foarte sigur i rapid pentru a cripta varianta comprimat a textului n clar. Rezultatul este textul criptat. De ndat ce datele au fost criptate, este criptat i cheia sesiunii., folosindu-se cheia public a destinatarului. Varianta criptat a cheii sesiunii este transmis mpreun cu textul criptat. Pentru decriptare se aplic operaiile dscrise n ordine invers. Destinatarul recepioneaz mesajul PGP, i folosete cheia secret pentru a reconstrui cheia sesiunii, pe care apoi programele PGP o folosesc pentru a decripta textul criptat.

Chei
PGP memorez cheile n dou fiiere de pe hard disk-ul calculatorului gazd. Unul dintre ele este folosit pentru cheile secrete iar cellalt pentru cheile publice. Acestea se numesc inele de chei keyrings. Dac un utilizator i pierde cheia secret, el nu va mai putea s decripteze nici un mesaj PGP pe care l primete.

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.

Figura 1. Inserarea unei semnturi digitale

148

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.

Figura 2. Generarea i inserarea 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-the-midle. 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: - 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 atesteze c informaia proprie a fost verificat i confirmat de o a treia entitate de ncredere.

149

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.

Figura 3. Anatomia unui certificat digital.

PGP recunoate dou formate diferite de certificat: - certificate PGP, - certificate X.509.

Formatul de certificat PGP


Un certificat PGP include (dar nu este limitat la) urmtoarea informaie: - numrul de versiune PGP. Acesta identific ce versiune de PGP a fost folosit la generarea cheii asociate la certificatul curent, - cheia public a certificatului. Partea public a perechii de chei a utilizatorului, 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,

150

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.

Nivele de ncredere n PGP


Cel mai nalt nivel de ncredere ntr-o cheie, ncredere implicit, este cel corespunztor perechii proprii de chei. PGP presupune c dac un utilizator posed o cheie secret, el trebuie s aib ncredere n aciunile efectuate pe baza cheii publice corespunztoare. Orice cheie semnat cu ajutorul acestei chei publice este de ncredere pentru acel utilizator. Exist trei nivele de ncredere care se poate acorda unei chei publice a unui alt utilizator: - ncredere complet, - ncredere marginal, - nencredere. n consecin exist i trei nivele de validitate: - total, - marginal, - nul. Pentru a considera o cheie valid PGP pretinde fie o semntur cu ncredere complet fie dou semnturi cu ncredere marginal.

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 revocate doar de ctre autoritatea care l-a eliberat sau de ctre o entitate care a fost mputernicit de ctre aceasta s revoce certificate.

Comunicarea revocrii unui certificat


La revocarea unui certificat digital este important ca toi potenialii si beneficiari s fie informai. Pentru aceasta, n cadrul sistemului PGP se afieaz certificatul revocat pe un server de certificare. n acest mod toi cei care doresc s comunice cu utilizatorul a crui cheie public este coninut n acel certificat s poat s fie avertizai c acea cheie public nu mai este valid. Pentru aceasta se folosesc liste de certificate revocate, Certificate Revocation List, CRL, publicate de ctre CA. Certificatele revocate rmn pe o astfel de list doar pn la data expirrii lor. CA distribuie CRL, la utilizatori, periodic.

151

Ce este o parol de tip fraz ?


O parol de tip fraz este o variant mai lung de parol care este folosit de ctre un utilizator n scop de identificare. Aceasta este mai sigur mpotriva atacurilor bazate pe fora brut. PGP folosete o parol de tip fraz pentru criptarea cheii unui utilizator pe propriul calculator. Nu este permis ca utilizatorul s-i uite parola de tip fraz.

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.

152

6.6. Sisteme de tip firewall


Un firewall este un sistem sau un grup de sisteme care impune o politic de control al accesului ntre dou reele. Metodele de implementare sunt variate dar n principiu dispozitivul de tip firewall poate fi privit ca i o pereche de dou mecanisme: unul de blocare a traficului de date i cellalt de deblocare a acestui trafic. Denumirea de firewall a fost folosit pentru prima dat la sfritul anului 1980, pentru un dispozitiv de limitare a pagubelor. Pentru prima oar termenul firewall a fost folosit pentru a denumi un dispozitiv de securitate n anul 1987. O prim descriere a unui dispozitiv de acest tip a fost fcut n anul 1990. Cel mai important atribut al unui astfel de dispozitiv este politica de control pe care o implementeaz. n absena unei astfel de politici utilizarea unui dispozitiv de tip firewall nu are sens. Este de asemenea de remarcat c dispozitivul de tip firewall impune politica sa, tuturor dispozitivelor din vecintate. De aceea responsabilitatea administratorilor de reea care programeaz dispozitivele de tip firewall este important pentru funcionarea reelelor pe care le conecteaz aceste dispozitive. Dispozitivul de tip firewall al unei companii poate fi folosit i pentru a obine informaii despre acea companie. Prin intermediul acestui dispozitiv pot fi publicate cataloage de produse, informaii de uz general,, dobndirea acestora putndu-se face fr a accesa vreun server din reeaua companiei considerate. Unele dispozitive de tip firewall permit doar traficul prin pot electronic, protejnd reeaua de orice atac cu excepia celor specifice pentru pota electronic. Alte dispozitive de tip firewall realizeaz o protecie mai puin strict, blocnd doar serviciile despre care se crede c nu sunt suficient de sigure. 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: http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html ftp://ftp.tis.com/pub/firewalls/ http://www.ranum.com/pubs/

153

ftp://ftp.research.att.com/dist/internet_security/ http://www.net.tamu.edu/ftp/security/TAMU/ http://www.cs.purdue.edu/coast/firewalls

Implementare
Eist cteva decizii, pe care trebuie s le ia un administrator de reea n legtur cu instalarea unui dispozitiv de tip firewall. n primul rnd trebuie cunoscut modul n care se dorete s se opereze sistemul. E necesar ca administratorul de reea s tie dac dispozitivul de tip firewall trebuie s blocheze toate servicile care nu sunt absolut necesare pentru conectarea reelei respective la INTERNET sau dac este suficient ca dispozitivul de tip firewall s ofere o cale obiectiv de dirijare a accesului. n al doilea rnd administratorul de reea trebuie s tie care este nivelul de monitorizare, redundan i control necesare pentru reeaua considerat. Cel de al treilea este aspectul financiar.

Tipuri de dispozitive firewall


Dispozitivele de tip firewall pot fi clasificate dup nivelul din modelul de referin OSI, la care acioneaz, n dou categorii: - dispozitive care acioneaz la nivelul reea, - dispozitive care acioneaz la nivelul aplicaie. Dispozitivele firewall care acioneaz la nivele inferioare (reea) sunt mai rapide dar asigur un nivel de securitate mai sczut.

Dispozitive firewall care acioneaz la nivel reea


Aceste dispozitive iau decizii pe baza adreselor sursei i destinaiei precum i pe baza porturilor specificate, n adresele IP individuale. Un router obinuit poate fi privit ca dispozitiv de tip firewall din aceast categorie. Dispozitivele firewall care acioneaz la nivel reea moderne sunt din ce n ce mai complicate, n prezent acestea menin informaii interne despre starea conexiunilor care trec prin ele precum i despre coninutul anumitor iruri de date. Utilizarea unui astfel de dispozitiv este prezentat n figura 1.

Figura 1. Utilizarea unui dipozitiv de tip firewall care acioneaz la nivelul reea.

154

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 1 este numit screened host firewall. n figura 2 se prezint un alt exemplu de dispozitiv de tip firewall care acioneaz la nivelul reea. Dispozitivul din figura 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 nvel reea. Sistemul din figura 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.

Figura 2. Utilizarea unui dispozitiv de tipul screened subnet.

Dispozitive firewall care acioneaz la nivel aplicaie


Pot fi folosite ca i translatoare de adrese de reea deoarece traficul este dirijat ntr-o singur direcie, la un anumit moment de timp, dup ce a trecut printr-o aplicaie care a mascat originea conexiunii iniiate. Avnd o aplicaie ntr-un anumit sens, la un moment dat, n anumite cazuri pot fi afectate performanele reelei iar dispozitivul de tip firewall poate deveni mai puin transparent. Dispozitivele de tip firewall mai moderne, cu aciune la nivelul aplicaie, cum sunt cele construite folosind sistemul de generare a dispozitivelor firewall (toolkit) TIS, nu sunt absolut transparente la nivelul utilizatorilor de la capete i pot necesita o perioad de antrenament. Cele mai moderne dispozitive de tip firewall sunt perfect transparente. Dispozitivele de tip firewall care acioneaz la nivel aplicaie tind s asigure un nivel de securitate mai ridicat dect cele care acioneaz la nivel reea. Un exemplu de dispozitiv de tip firewall din aceast categorie este prezentat n figura 3. El este numit dual horn gateway. Este vorba despre un calculator gazd cu un nivel de securitate sporit care ruleaz software de tip proxy. Are dou interfee cu reeaua i blocheaz complet traficul care l strbate.

155

Figura 3. Utilizarea unui dispozitiv de tip Dual-Homed Gateway.

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 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. Pentru mai multe informaii poate fi consultat materialul disponibil la adresa http://www.socks.com/.

Resurse critice ntr-un dispozitiv de tip firewall


Resursele critice ale unui dispozitiv de tip firewall tind s varieze de la site la site n funcie de trafic. Oricum una dintre cele mai importante resurse este capacitatea de memorare a unui astfel de dispozitiv, mai ales atunci cnd debitul traficului este ridicat. n tabelul urmtor se prezint cteva dintre resursele critice pentru servicile de tip firewall n funcie de principala aplicaie a acestora. Serviciu Resursa critic Pot electronic Dispozitive I/O pentru hard-disck Reviste electronice Netnews Dispozitive I/O pentru hard-disck Navigaie Web Performanele socket-ului sistemului de operare al calculatorului gazd Dirijare IP Performanele socket-ului sistemului de operare al calculatorului gazd Performanele socket-ului sistemului de operare al Web Cache calculatorului gazd, Dispozitive I/O pentru harddisck

156

Diferite tipuri de atac


n continuare se prezint cteva tipuri de atac mpotriva unei reele i modurile n care dispozitivele de tip firewall se pot opune acestor atacuri.

Traficul dirijat de surs


n mod normal drumul pe care l parcurge un pachet de date ntre sursa i destinaia sa este fixat de ctre router-ele pe care le ntlnete n cale. Pachetul conine doar adresa destinaiei. Exist ns o opiune pentru expeditorul de pachete de a include informaii n pachet care s specifice drumul pe care trebuie s mearg pachetul respectiv. n acest mod se realizeaz dirijarea traficului de ctre surs. Aceast metod de dirijare nu este agreat de ctre dispozitivele de tip firewall, deoarece un atacator poate genera trafic declarnd c acesta a fost creat de ctre un sistem din interiorul dispozitivului de tip firewall. Un astfel de trafic nu poate fi dirijat corect de ctre dispozitivul de tip firewall deoarece toate router-ele situate ntre calculatorul atacatorului i int vor returna traficul pe calea invers a drumului "indicat" de ctre surs (deci tot acest trafic fals va fi ndreptat spre dispozitivul de tip firewall). Deoarece implementarea unui astfel de atac este 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.

Saturarea server-ului SMTP


Un atacator poate trimite numeroase copii ale unui aceluiai mesaj la o list de adrese e-mail. Aceast list transmite mesajele unui server SMTP pentru a le livra destinatarilor. n acest mod acel server poate fi saturat.

Exploatarea greelilor din softul de aplicaie


Majoritatea programelor de aplicaie folosite pentru reeaua INTERNET conin mici greeli, bugs. Acestea pot fi utilizate pentru atacarea servicilor implementate de aplicaiile respective. Expunerea la acest risc poate fi redus prin limitarea la folosirea doar a servicilor strict necesare i utilizarea acelor programe de implementare a acestor servicii care s-au dovedit n timp cele mai fiabile i sigure. Aceleai considerente sunt valabile i pentru sistemele de operare.

6.6.1. Produse de tip firewall


n continuare se prezint o list de produse de acest tip indicndu-se i productorii.

157

Produs Black Hole BorderWare Brimstone CENTRISecure Internet Gateway CiscoWorks Cyberguard Data Privacy Facility Eagle 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

Productor Milkyway Border Network Technologies SOS Corp Cohesive Systems Cisco Systems Harris Computer Systems Network Systems Corporation Raptor Systems 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

158