Securitatea transmiterii informaţiei prin INTERNET

CURS Alexandru Isar

Facultatea de Electronică şi Telecomunicaţii 2002

Cuprins
Introducere Capitolul 2. Protecţia calculatoarelor neconectate în reţea 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 creşterea securităţii asigurate de sistemele cu parole 2.2. Viruşii calculatoarelor 2.2.1. Clasificări 2.2.2. Moduri de funcţionare a viruşilor 2.2.2.1. Activarea viruşilor în cazul calculatoarelor IBM-PC 2.2.3. Modalităţi de detectare a viruşilor 2.2.4. Programe anti-virus 2.2.5. Elaborarea unei politici de protecţie anti-virus Capitolul 3. Protecţia reţelelor de calculatoare 3.1.Categorii de atacuri asupra reţelelor 3.1.1. Atacuri pasive 3.1.2. Atacuri active 3.1.3. Necesităţi de securitate în reţele 3.2.Securitatea LAN-urilor 3.2.1. Standardizarea securităţii în sisteme deschise 3.2.1.1. Standarde de evaluare a încrederii Capitolul 4. Bazele matematice ale criptării 4.1. Aritmetica pe clase de resturi modulo specificat 4.2. Numere prime 4.3. Mica teoremă a lui Fermat 4.4. Câmpuri Galois 4.5. Matrici MDS 4.6. Transformări Pseudo-Hadamard 4.7. Funcţii hash 4.7.1. Descrierea algoritmului MD5 Capitolul 5. Criptografia şi securitatea reţelelor 5.1. Câţiva termeni utilizaţi î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 semnătură digitală 5.5.1. Algoritmi de semnătură digitală bazaţi pe metoda Diffie-Hellman 5.5.2. Semnături digitale El-Gamal 5.5.3. Standardul de semnătură 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 securităţii î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 securităţii ISO 6.3.2.2. Securitatea servicilor TCP/IP 6.3.2.2.1. Arhitectura securităţii 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 slăbiciune a protocolului TCP 6.3.3. Funcţionarea servicilor INTERNET 6.4. Servicii de autentificare 6.5. Securitatea poştei 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

. .de disc. Analiza de risc şi planificarea securităţii. Expunere.de calculator.Asumarea riscului. Să se asigure nerepudierea. Doar persoanele autorizate să poată avea acces la informaţie.Estimarea valorii. .Cheltuit. consistenţa. Să asigure integritatea informaţiei.Introducere Scopurile securităţii calculatoarelor şi reţelelor de calculatoare Să asigure cofidenţialitatea. .Principiul eficienţei: Un control este eficient numai dacă este utilizat corespunzător. o formă de pierdere de informaţie. Este capabilă organizaţia să funcţioneze fără acea resursă ?. - Câţiva dintre termenii utilizaţi frecvent în securitatea calculatoarelor şi reţelelor sunt: Sistem de calcul.Costul controlului. . . . se măsoară în . Principalul atribut al disponibilităţii este utilizabilitatea (capacitatea de a satisface nevoi). Atributele integrităţii sunt: precizia.Să se detecteze şi să se corecteze erorile. Care sunt subsistemele cele mai vulnerabile ? . Aceasta este o sarcină mai dificilă. Recomandarea controlului. Atac. . . încercarea de a exploata vulnerabilitatea. informaţia să fie modificată doar în moduri permise de persoane autorizate. el va ataca "cea mai slabă za a lanţului". Atacatorul va exploata orice vulnerabilitate disponibilă. Se urmăreşte aceesul cât mai rapid la rezultate şi corectitudinea.Estimarea "inamicului".Principiul celei mai uşoare penetrări. date. .Operaţional. Şi aceasta este o sarcină mai dificilă. soft. Să se asigure autenticitatea.Timp. . întârziere în reţea. acurateţea. Care este importanţa funcţională a misiunii ?.Să se separe şi să se protejeze resursele.disponibilitate. fizic. să se cunoască originea diferitelor obiecte informaţionale şi modificările pe care le-au suferit acestea. slăbiciune care poate fi exploatată pentru pierderea de informaţie.Bani.Realizarea controlului adecvat pentru a reduce: a) vulnerabilităţile periculoase. Vulnerabilitatea. Să se asigure disponibilitatea datelor şi servicilor. măsură de reducere a vulnerabilităţii. - - - 1 .spaţiu. Există 3 aspecte mai importante ale integrităţii informaţiei: .cicluri de unitate centrală de microprocesor. . autorii unei informaţii să nu se poată dezice de aceasta. . Care este cauza pierderii resursei de informaţie ? Estimarea slăbiciunilor sistemului de calcul.Să nu se efectueze decât acţiuni autorizate. . Control. .de memorie. hard. . . "Foloseşte-l sau pierde-l". . se măsoară în.

Confidenţialitate.Nerepudiere. Protecţie fizică: Uşi. 2 . .Criptografie. . Control soft. Protecţie soft (bazată pe sistemul de operare): Identificare şi autentificare. Lacăte. Controlul sistemelor de operare (Identificare şi autentificare. . Controlul consistenţei. .Integritate. .Suprapunerea controalelor. . Controlul accesului la citire.… Protecţie hard: instrucţiuni protejate. Protecţia la nivelul aplicaţiei: prin parole.Tipuri de ameninţări: Întrerupere.b) resursele critice. Revizii. Detectoare de anomalii. Folosirea mecanismelor de prioritate. Separarea sarcinilor.Disponibilitate. Toleranţă la defecţiuni. Controlul accesului. Revizii periodice. Redundanţă. Autentificare.Eficienţa controalelor . prin criptare . Monitorizare. Controlul dezvoltării. . Politici. Monitorizare. Folosirea semnăturilor digitale. Contactul cu terţe persoane de încredere.Securitatea resurselor. Testare. . grupuri de lucru în reţea. c) ameninţările semnificative. Poate fi realizată prin: Controlul accesului la scriere. Monitorizare. Poate fi realizată prin: utilizarea semnăturilor digitale. Protocoale criptografice. Secrete (de exemplu parole). protecţie la scriere. Interceptare. Folosirea mecanismelor de control. Poate fi realizată prin: Criptare (Cifrare).Disponibilitate. Antrenament. Surse neinteruptibile. Modificare.Politică. Criptare (Cifrare). Controlul climatic. Protecţia fişierelor). Controlul programelor interne (de obicei identificare şi autentificare). Semnături digitale. . Izolarea proceselor. Poate fi realizată prin: Controlul accesului.Costuri operaţionale . Standarde de calitate (ISO 9000). Scuturi. Stabilirea politicii.

1.Controlul accesului la resursele şi serviciile sistemului de calcul. Se poate întâmpla ca utilizatorul să folosescă în comun anumite date şi să comunice în acest scop parola unor colaboratori. 3 . dacă un utilizator care solicită o conectare este îndreptăţit la aceasta şi ce drepturi are el (sistem de parole).SYS în fişierul CONFIG.Folosirea forţei brute.Divulgatul parolei.2.1. De aceea ele sunt şi uşor de ghicit.1.SYS. Intrări-Ieşiri la hard-disk sau gestiunea server-ului. cer o parolă şi nu permit continuarea încărcării sistemului de operare până când nu se introduce parola corectă. 2.1. cozi de aşteptare. Astfel aceste parole pot fi găsite. bazându-se pe mai multe nivele de securitate: 1) Nivelul fizic: interzicerea accesului fizic al persoanelor neautorizate la calculator (încuiere în spaţii protejate) 2) Nivelul logic: . el are de obicei tendinţa să le scrie undeva. sau are de ţinut minte mai multe parole.Securitatea serviciilor: controlează accesul la diferitele servicii ale sistemului.1.Capitolul 2 Protecţia calculatoarelor neconectate în reţea Modelul de securitate pentru un calculator seamănă cu o ceapă.Ghicitul sau dedusul parolei. . Oamenii pot fi păcăliţi să-şi divulge parolele (social engineering). program sau operator. Dezavantaje Eficienţa unui sistem cu parole depinde de capacitatea de a menţine parola secretă. Acestea recurg la utilizarea unor dicţionare de parole online sau pe epuizarea tuturor combinaţiilor posibile. Această capacitate este afectată de următoarele acţiuni: . De exemplu utilizatorul ştie parola sa. Avantajele sistemelor cu parole Aceste sisteme sunt integrate în majoritatea sistemelor de operare care se utilizează în prezent şi utilizatorii şi administratorii de reţele sunt obişnuiţi cu utilizarea lor. Deoarece utilizatorii trebuie să-şi amintească parolele ei au tendinţa să le aleagă în aşa fel încât să fie uşor de reamintit. Există atacuri bazate pe ghicitul parolei prin încercări repetate.1. Numele copiilor operatorilor sau al echipelor sportive preferate ale acestora constituie parole uşor de ghicit.1. 2. Sisteme cu parole Sunt programe care rulează când se face încărcarea sistemului de operare. 2. O metodă obişnuită de a activa programul corespunzător este folosirea unei linii de tipul: DEVICE=PASSWORD.1. Autentificarea utilizatorului Autentificarea utilizatorului poate fi realizată pe baza a ceva ce utilizatorul posedă. De asemenea utilizatorul poate fi observat. Securitatatea accesului: controlează dacă şi când calculatorul este accesibil altor utilizatori. în timp ce îşi tastează parola şi aceasta poate fi reţinută (shoulder surfing). a ceva ce utilizatorul ştie sau a ceva ce utilizatorul este. 2. Prin utilizarea unei parole se face identificarea şi autentificarea unui anumit utilizator. . Când un utilizator îşi alege parole mai complicate. .

stack. Se recomandă controlul accesului şi criptarea fişierului de parole de pe server. Evitarea sistemului cu parole. Cartela magnetică de tip ATM este cel mai cunoscut dispozitiv de tip memory token folosit pentru autentificare într-un sistem de calcul.SYS şi AUTOEXEC.1. Dacă după consumarea acestui număr limitat de încercări nu s-a introdus parola corectă atunci calculatorul se decuplează automat.3.nl/~galactus/remailers/passphrase-faq. Această operaţie este însă antagonică cu un alt deziderat şi anume prevenirea pierderii datelor. să conţină toate categoriile de caractere disponibile şi să nu aparţină unui dicţionar de parole online existent. Prin cifrarea fişierelor de date se asigură prevenirea accesului neautorizat la aceste fişiere. 2. Dacă parola se alege euristic atunci aceasta trebuie să fie de lungime maximă. Cel mai cunoscut tip de memory token este cartela magnetică. Cifrarea poate rezolva această contradicţie simplu şi eficient.- Monitorizarea electronică.html Protecţia prin cifrare Presupune autentificarea bazată pe criptare respectiv cifrarea fişierelor de date. Această cartelă reprezintă o combinaţie între ceva ce utilizatorul posedă (cartela propriuzisă) şi ceva ce utilizatorul ştie (codul PIN). în care trebuie incluse procesoare de verificare a PIN-ului.BAT şi deci şi a sistemului cu parole. Reguli pentru creşterea securităţii asigurate de sistemele cu parole În loc să se aleagă euristic parola. Este vorba despre fişierul de parole al unui server. Accesarea fişierului de parole. se poate face apel la generatoarele automate de parole. Există posibilitatea încărcării sistemului de operare. Autentificarea bazată pe chei cifrate Pentru început se prezintă metode de autentificare bazate pe o combinaţie între ceva ce utilizatorul posedă şi ceva ce utilizatorul ştie. Există dispozitive speciale de citire-scriere care transferă informaţie dinspre şi înspre memory tokens. Obiectele pe care utilizatorul le posedă şi care sunt folosite pentru autentificarea sa se numesc tokens. Dezavantaje Problema securităţii PIN-ului este de tipul securitatea parolei. Alte reguli utile pentru alegerea parolelor sunt prezentate la adresa: http://www.1. E necesară doar cifrarea tuturor copiilor fişierului considerat. Există două categorii de astfel de obiecte: memory tokens şi smart tokens. 4 . În acest mod se evită utilizarea fişierelor CONFIG. Este bine ca parola să fie schimbată periodic. Avantajele acestor sisteme Sunt mult mai sigure decât parolele. Memory tokens Sunt obiecte care stochează informaţia fără însă a o prelucra. Poate fi făcută atunci când parolele sunt transmise calculatorului de către utilizatori. Necesită cititoare speciale. Prima operaţie presupune existenţa unui număr minim de copii ale fişierului de date în timp ce cea de a doua necesită existenţa unui număr cât mai mare de copii ale aceluiaşi fişier. folosind dischete sistem. Pentru evitarea atacurilor bazate pe utilizarea forţei brute sistemul de operare poate fi configurat să accepte doar un număr limitat de încercări de introducere a parolei.

Rage. se execută şi virusul.A (Rendra). Resume. continuându-se răspândirea sa. înregistrându-i-se caracteristicile şi asociând acestora identitatea sa. Rapi. Ramen.La cererea de autentificare caractersiticile utilizatorului sunt măsurate. Reboot Patcher (Lomza). RD Euthanasia (Hare). Radiosys. Rape-11 (Rape). RingZero. Red Diavolyata. Resurrect (Siskin). de către Fred Cohen. Riihi. Aceste dispozitive pot fi clasificate după trei criterii: carateristici fizice. RedX (Ambulance). Resume. Viruşii calculatoarelor Termenul de virus de calculator a fost introdus. Redstar (Karin). RC5. caracteristici ale vocii sau caracteristici ale semnăturii. geometria mâinii. atunci când este activat. Documentele din d\isar\securitate\virusi+3 pag. programe de tip "vierme" care au capacitatea de a trece de pe un sistem de calcul pe un altul şi se execută independent de excuţia altor programe ("gazdă"). REQ! (W-13). Relzfu. Rape-10 (Rape). în anul 1972. Readiosys (Radiosys). de exemplu un astfel de program poate realiza "infiltrarea" unui virus în memoria unui calculator). Reverse. Rape-2. Reboot. programe de tip "bacterie". Ravage (Dodgy). Reset (Omega). Red Diavolyata-662 (Red Diavolyata).A@mm (Resume). Ring0 (RingZero). .Reggie (Secshift). Rainbow (Ginger). Virus este termenul latin pentru otravă.Pot fi pierdute.com/vdescs/ La această adresă lista este ordonată alfabetic. Ray (Joke Program). Red Spider (Reverse). tipul de interfaţă folosit şi protocolul folosit. În prezent se cunoaşte un număr foarte mare de viruşi de calculator. caracteristici ale retinei. Rendra. Un virus de calculator este un program (cu lungimea cuprinsă între 200 şi 4000 de octeţi) care îşi copiază propriul cod în unul sau mai multe programe "gazdă" mai mari. Ele funcţionează astfel: . Raubkopie.Se compară rezultatele obţinute prin măsurare cu cele înregistrate anterior şi se realizează sau nu autentificarea utilizatorului. Requires. .2 (Rape). Rendra. Rasek. Reklama. care se reproduc până absorb întreaga capacitate de memorie a sistemului pe care au fost instalate şi programe de tipul "bombă" care se decleanşează doar atunci când se îndeplinesc anumite condiţii (de exemplu se ajunge într-o zi de vineri la data de 13). Reverse. 5 . Reveal. Autentificarea bazată pe ceva ce utilizatorul este Tehnologiile de autentificare biometrică folosesc trăsături unice ale utilizatorului ca de exemplu: amprentele. Smart tokens Diversifică funcţionarea unui memory token adăugând câteva circuite integrate care realizează funcţiile unui calculator.f-secure.500 2. pe baza analogiei cu termenul de virus biologic. Din această categorie mai fac parte şi programe de tipul Trojan horses (care sub pretextul realizării unei alte funcţii reuşesc să ajungă în memoria calculatorului. Rich (RemExp). Reizfaktor (Reiz). Ele se folosesc pentru aplicaţiile de login. RICHS (RemExp). Ripper. Red worm (Adore). Richard Keil. Rescue. Ramen.2. De exemplu o listă a acestora poate fi obţinută de la adresa http://www. Rape. Reiz. Revenge.B (Ramen). Red-Zar (Torn). Rhubarb (RP). După cum s-a arătat viruşii fac parte dintr-o categorie de programe care încearcă să ascundă funcţia pe care o au de îndeplinit (malicious programs).B (Reverse). Remote_Explorer (RemExp). RemExp. Rabbit (First). Resume. De exemplu la litera R pot fi găsiţi următorii viruşi: Raadioga. Ravage (MMIR). Redspide (Reverse).Utilizatorul este "achiziţionat". Rex. Atunci când se execută aceste programe. Razer. furate sau falsificate. RedTeam. Ramen. ResumeWorm (Resume).A (Ramen). RC5 Client (RC5).A (Resume).

Conform acestei clasificări există viruşi care infectează fişiere ordinare de tipul .B (RPS). RraA. Viruşii care afectează fişierele ordinare pot fi cu acţiune directă (ca de exemplu virusul Viena) sau rezidenţi (ca de exemplu virusul Jerusalim). îl părăsesc. Viruşii care produc astfel de atacuri se numesc viruşi de boot. Programul gazdă este lăsat aproape neatins.exe şi viruşi care infectează fişierele sistem. Russ (Joke. Apoi este alterată informaţia de start a programului "gazdă" şi se rulează pe rând virusul şi apoi programul "gazdă".B (Robocop).RITT. la prima execuţie a unui program pe care l-au contaminat deja. De obicei un virus de calculator are pe lângă funcţia de reproducere încă o funcţie distinctă. RM. Prima dată se execută virusul şi apoi programul "gazdă". Rut. Russian Tiny. RV. Conform acestei clasificări există viruşi de tip "shell". Russian Virus 666.Clasificări O clasificare posibilă a viruşilor se bazează pe tipurile de fişiere pe care le pot infecta. RSY. RPS. Roach (Nymph). RP. Russian Mirror. Robocop. O listă de viruşi printre care se găseşte şi unul produs în ţara noastră. RMA-hh (RMA-Hammerhead). rrAa (RRaA). Rogue. Robocop. Rust. Rock Steady (Diamond). Robocop. se ascund în memorie şi se declanşează doar atunci când sunt îndeplinite anumite condiţii. RPS. Dintre fişerele sistem cel mai des atacate sunt cele de boot (de pornire a sistemului).6917. Romer_Juliet.C (RPS). Virusul devine program principal iar programul "gazdă" devine o subrutină a virusului. Majoritatea viruşilor de "boot" sunt de tip "shell".A (Rut).2. Russian_Flag. Romeo (BleBla). Viruşii de tip "shell" Formează un înveliş ("shell") în jurul programului "gazdă".A (RPS). Comparând lista şi porţiunea sa prezentată în figură se poate constata evoluţia produsă în generarea de viruşi.Russ). RMA-Hammerhead. 6 . Viruşii rezidenţi. RNA2.com sau . RPS. RV. RPVS (TUQ).A (RV). Rosen (Pixel). înainte şi după o rulare a acestuia.1. Romeo-and-Juliet (BleBla). Ryazan. Rybka (Vacsina). 2.Win32. Acest tip de viruşi poate fi uşor detectat dacă se compară dimensiunile fişierului corespunzător programului gazdă. Roach. Există şi viruşi capabili să infecteze ambele categorii de fişiere (ca de exemplu virusul Tequila). Roma. Rut.A (Robocop). Russian Mutant. Russian New Year.b (Nymph). O altă clasificare posibilă a viruşilor se bazează pe modul în care aceştia se ataşează la programele pe care le infectează. O porţiune dintr-o listă mai recentă obţinută utilizând un produs al aceleiaşi firme. RPS. cea de distrugere. Viruşii de tip "add-on" Se adaugă la începutul sau la sfârşitul codului programului "gazdă". Figura 1. viruşi de tip "add-on" şi viruşi de tip "intrusiv". poate fi văzută în figura următoare.

2. Viruşi polimorfi Produc copii neidentice (dar operante) ale variantei iniţiale în speranţa că programul anti-virus nu le va putea detecta pe toate. după ce aceştia au ajuns în memoria calculatorului. Alte categorii de viruşi Viruşi de tip STEALTH Modifică fişierele în funcţie de rezultatul monitorizării funcţiilor sistemului folosite de programe pentru a citi fişiere sau blocuri fizice de pe mediile de înregistrare. Viruşi împrăştiaţi Infectează doar ocazional. Un exemplu de astfel de virus este cel numit Darth Vader. infectate. pentru a falsifica rezultatele acestor funcţii astfel încât programele care încearcă să citească aceste zone să vadă formele iniţiale neafectate de virus în locul formelor reale.Viruşii de tip "intrusiv" Distrug o parte a codului asociat programului "gazdă" şi înscriu în acea zonă codul propriu. Un exemplu este virusul V2P6. 2. Viruşi însoţitori În loc să modifice un fişier existent crează un nou program a cărui execuţie este declanşată de către interpretorul liniei de comandă şi nu de programul apelat. de exemplu tot al 10-lea program executat sau doar fişierele care au o lungime bine precizată. pentru fiecare copie. Un exemplu este virusul Whale.2. Viruşi lenţi Sunt viruşi care în faza în care sunt activi în memorie infectează fişierele doar în momentul în care li se aduc modificări sau atunci când sunt create. Moduri de funcţionare a viruşilor Funcţionarea viruşilor. prin includerea unor instrucţii care funcţionează ca şi zgomot (de exemplu instrucţia No operation sau instrucţii de încărcare a unor regiştrii nefolosiţi cu valori arbitrare). În acest mod se încearcă îngreunarea detectării lor. La sfârşit se rulează şi programul apelat în aşa fel încât funcţionarea calculatorului să pară normală utilizatorului. atunci când este activ în memorie. Ulterior programul "gazdă" nu mai poate funcţiona. actuale. În acest mod se infectează mai multe programe deodată. Un virus rapid nu infectează. O altă modalitate de realizare a copiilor multiple se bazează pe modificarea secvenţei de instrucţii. În acest fel modificările efectuate de virus rămân neafectate de programele anti-virus. Exemple de astfel de viruşi sunt Dark Avenger şi Frodo. Viruşi rapizi Un virus obişnuit se autocopiază în memorie când un program "gazdă" se execută şi apoi infectează alte programe când se declanşează execuţia acestora. doar programele care se excută ci şi pe cele care sunt doar deschise. se bazează pe alterarea întreruperilor standard utilizate de sistemul de operare şi de BIOS (Basic Input/Output 7 . O modalitate de realizare a diferitelor copii este autocriptarea cu cheie variabilă a variantei iniţiale.

Infectarea secvenţei de încărcare (boot) a sistemului de operare Această secvenţă are 6 componente: a) Rutinele ROM BIOS. În această tabelă există şi un program. PC-urile uilizează numeroase întreruperi (atât hard cât şi soft) pentru a coopera cu evenimente asincrone. Acestea iniţializează hard-ul calculatorului şi furnizează un set de rutine de intrare-ieşire de bază. e) Executarea comenzilor Shell din COMMAND. conţinut în fişierul MSDOS. numite partiţii. Aceste modificări se realizează astfel încât virusul să fie apelat de alte aplicaţii când acestea sunt activate. aşa cum se întâmplă în prezeţa virusului Alameda. În mod normal acest tabel conţine pointeri spre regiuni din ROM sau spre regiuni rezidente în memorie din DOS. de exemplu (este cazul virusului New Zealand). după care se încarcă DOS-ul. După ce un virus a infectat un anumit program el încearcă să se împrăştie şi în alte programme sau eventual în alte sisteme. c) Programul din tabela partiţiilor localizează blocul de boot. sistemul de operare apelează rutina a cărei adresă o găseşte în tabelul de întreruperi.2. 8 . d) Blocul de boot declanşează încărcarea fişierului IO. C.System). e) Programul MSDOS. b) Orice hard-disk poate fi împărţit în mai multe regiuni. obţinute astfel.BAT a) La boot-are calculatorul execută un set de instrucţii din ROM. Dimensiunea fiecărei partiţii.COM execută o listă de comenzi memorate în fişierul AUTOEXEC.COM. b) Executarea codului din tabela partiţiilor. (BPB).SYS. cauzând întreruperi soft. de mai puţin de 460 de octeţi. La execuţia acestui fişier un virus poate fi inclus în structura sa. Toate serviciile DOS-ului şi BIOS-ului sunt apelate de utilizator prin parametrii stocaţi în regiştrii. Un virus tipic interceptează întreruperea specifică DOS-ului şi permite rularea sa înainte de rularea serviciului DOS cerut curent. Rutinele din ROM nu pot fi infectate (deoarece în această memorie nu se poate scrie). f) Executarea fişierului batch AUTOEXEC. Acesta conţine blocul parametrilor BIOS-ului. făcând posibilă execuţia comenzilor primite de la tastatură. Când se solicită o întrerupere.COM. Acest program furnizează interfaţa cu utilizatorul. Un virus poate modifica tabelul de întreruperi astfel încât execuţia unei întreruperi să genereze rularea sa. este memorată în tabela partiţiilor.SYS şi MSDOS. Acesta poate. f) Programul COMMAND.E.SYS declanşează apoi execuţia interpretorului de comenzi COMMAND. care specifică pe care partiţie se află blocul de boot. Principalul atu al acestor viruşi de boot este faptul că ei ajung să controleze întregul sistem de calcul înainte ca orice program de protecţie (anti-virus) să poată fi activat. de localizare a fişierului IO.SYS.1. de 446 de octeţi. care conţine informaţii detailate despre organizarea sistemului de operare precum şi un program. să mute tabela partiţiilor la o nouă locaţie de pe hard-disk şi să controleze întreg sectorul din care face parte acea locaţie.BAT Acesta este un simplu fişier text ce conţine comenzi ce vor fi executate de interpretor. Activarea viruşilor în cazul calculatoarelor IBM-PC 1. BIOS-ul. E clar că şi acest program poate fi infectat aşa cum se întâmplă în prezenţa virusului Lehigh. Şi aceste două fişiere pot fi infectate de viruşi.2. Evident şi acest program poate fi atacat.…. c) Executarea codului din sectorul de boot. 2. d) Executarea codului IO.D.SYS. Acest fişier conţine stadiul următor din secvenţa de boot-are. care produce iniţializarea sistemului. Acest program poate fi infectat de un virus.SYS. Majoritatea viruşilor aşteaptă îndeplinirea unor condiţii favorabile şi apoi îşi continuă activiatatea.

Cascade sau Traceback. e suficient să se verifice dacă aceste valori s-au modificat substanţial de la bootare la boot-are. De aceea este recomandabil ca înainte de a lua o decizie să se utilizeze două sau mai multe programe anti-virus. astfel încât la fiecare întrerupere să fie executat şi programul virus.COM conţin la început o instrucţiune de tipul jump la o anumită adresă. de către orice aplicaţie care solicită servicii de la sistemul de operare. modificarea vectorilor de întrerupere. căutându-se în permanenţă variantele cele mai noi. 2. viruşii modifică tabela de întreruperi. aşa cum s-a arătat deja. Dacă aceasta s-a modificat cu mai mult de 2 kiloocteţi atunci este foarte posibil ca pe acel calculator să se fi instalat un virus de boot. 9 .3. Toţi viruşii de boot cunoscuţi sunt astfel de viruşi. Dintre aceştia pot fi menţionaţi viruşii Israeli. furnizând alarme false (atunci când clasifică un fişier sănătos ca fiind infectat) sau nedectând unii viruşi sau făcând ambele tipuri de erori. Modalităţi de rezidenţă în memoria sistemului Cei mai periculoşi viruşi folosesc o varietate de tehnici de rămânere în memorie. un virus poate intercepta comanda de reboot-are soft CTRL-ALT-DELETE. Există însă din păcate şi posibilitatea ca să apară rapoarte conform cărora programul anti-virus este el însuşi infectat deşi în realitate el nu este.COM infectat şi se rulează şi acest program. În consecinţă există situaţii în care utilizarea unui astfel de sistem nu poate conduce la luarea unei decizii corecte. Din nefericire aceste programe nu recunosc decât viruşii deja cunoscuţi de către producătorii lor. 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. Un alt pericol este ca însuşi programul anti-virus să fie infectat. După execuţia virusului se efectuează jump-ul la adresa specificată la începutul programului . după ce au fost executaţi prima oară şi după ce s-a executat pentru prima oară. De fapt. Printre aceste cifre există una care reprezintă capacitatea memoriei disponobile pe calculatorul respectiv. La fel pot fi deturnate şi întreruperile de BIOS sau de DOS. poate modifica semnificaţia tastelor apăsate sau poate face să fie invocat la fiecare apăsare de tastă.2. În acest caz însă există riscul ca modificările făcute asupra fişierelor de către unul dintre ele să fie interpretate de către celălalt ca şi posibili viruşi. De aceea ele trebuie schimbate frecvent.COM sau . O indicaţie referitoare la memoria sistemului poate fi obţinută folosind utilitarul CHKDSK. Nu este necesară cunoaşterea semnificaţiei fiecărei cifre afişate de către acest utilitar ca şi rezultat al rulării sale. în paragraful "Moduri de acţionare a viruşilor". sau realocarea altor resurse ale sistemului. 3. Programele de tipul . De aceea aceşti viruşi sunt apelaţi.2. Această proprietate a viruşilor rezidenţi în memorie este datorată faptului că ei afectează întreruperile standard folosite de programele DOS şi BIOS. Fred Cohen a demonstrat următoarea propoziţie: Orice detector de viruşi se poate înşela.EXE. Oricum cel mai bine este ca pe fiecare calculator să fie instalat un program anti-virus. Din păcate aceste manifestări sunt sesizate cu dificultate de un utilizator obişnuit. Deturnând întreruperea de tastatură. primul program "gazdă". Modalităţi de detectare a viruşilor Cele mai importante manifestări ale unui calculator care indică prezenţa unui virus sunt: modificările în dimensiunile fişierelor sau în conţinutul acestora. involuntar. Viruşii pot înlocui această adresă cu adresa lor. Trebuie ţinut seama şi de faptul că producători diferiţi de programe antivirus folosesc denumiri diferite pentru acelaşi virus. Infectarea unui program utilizator Acestea sunt programe de tipul .

2. De exemplu programele: SECURE sau FluShot+. efectuându-se o detecţie "generică". Dintre programele de scanare euristică poate fi menţionat programul F-PROT. CD-ROM) sau poate fi rezident. Există trei tipuri principale de programe anti-virus. De obicei este sarcina utilizatorului să decidă dacă o anumită modificare a apărut ca urmare a unei operaţii normale sau ca urmare a unei activităţi virale. El face ca să fie salvată suficientă informaţie pentru fiecare fişier. Câteva exemple de astfel de programe sunt: FindViru. Dintre programele de scanare rezidente pot fi amintite programele V-Shield sau VIRUSTOP realizate la firma McAfee. Integrity Master sau VDS sunt programe anti-virus de acest tip. Noile fişiere ar trebui 10 . Elaborarea unei politici de securitate anti-virus Este bine ca metodele de apărare împotriva viruşilor să fie utilizate pe rând pentru a se creşte securitatea sistemului de calcul folosit. din cadrul programului Dr Solomon's Anti-Virus Toolkit. Acesta ar trebui să fie de tip hard sau de tip soft dar localizat în BIOS. examinând fiecare program care urmează să fie executat. Acestea încearcă să prevină activitatea viruşilor. Acestea calculează o mică sumă de control sau valoare de funcţie hash (de obicei pe bază de criptare) pentru fiecare fişier. presupus neinfectat.4. Majoritatea programelor de scanare conţin şi subrutine de îndepărtare a unui virus după ce acesta a fost detectat. dischetă.2. Există însă programe anti-virus care pot să-l ajute pe utilizator să ia această decizie. astfel încât acesta să poată fi reconstruit în forma sa originală în cazul în care a fost detectată activitate virală. realizat de firma izraeliană BRM Technologies. 3) Programe de verificare a integrităţii sau de detectare a modificărilor. precum şi alte mijloace de protecţie (ca de exemplu metodele hard de protecţie la scriere). Ulterior compară valorile nou calculate ale acestor mărimi cu valorile iniţiale pentru a vedea dacă aceste fişiere au fost modificate. Şi siteme soft de tipul DiskSecure sau PanSoft Imunise sunt destul de bune. 2. 3a) Antivirusul GENERIC DISINFECTION face parte dintr-o categorie puţin mai aparte. pentru a fi protejat de infectarea la boot-are. În acest mod pot fi detectaţi viruşi noi sau vechi.SYS sau AUTOEXEC. Caută şiruri de date specifice pentru fiecare dintre viruşii cunoscuţi dar care să nu poată apărea în programele sănătoase.BAT.5.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 fişiere sau ele pot fi rezidente verificând fiecare program care urmează să fie executat. De exemplu Fred Cohen ASP Integrity Toolkit. Se pot însă stabili strategii anti-virus bazate pe mai multe nivele de apărare. Cele trei tipuri principale de programe anti-virus sunt: 1) Programele de monitorizare. Acest program anti-virus face parte din nucleul de securitate V-Analyst 3. Nici un program antivirus nu poate asigura o protecţie totală împotriva viruşilor. programul FPROT al firmei FRISK sau programul VIRUSCAN conceput la firma McAfee. pentru un număr foarte mare de viruşi. Un program de scanare cum ar fi F-Prot sau McAfee's SCAN poate fi pus în AUTOEXEC. 2) Programele de scanare. Dar modificările pot apărea şi din alte motive decât activitatea viruşilor. Programe anti-virus Nu există o cea mai bună strategie împotriva viruşilor. Un program de scanare poate fi conceput pentru a verifica suporturi de informaţie specificate (hard-disk. cum sunt de exemplu programele FluShot+ şi/sau VirStop împreună cu ScanBoot.BAT pentru a verifica prezenţa viruşilor la pornirea calculatorului.2. Unele dintre aceste programe anti-virus folosesc tehnici euristice pentru a recunoaşte viruşii. Un calculator PC ar trebui să includă un sistem de protecţie al tabelei de partiţie a hard-diskului. Acest sistem de protecţie ar trebui să fie urmat de detectoare de viruşi rezidente care să fie încărcate ca şi părţi ale programelor de pornire ale calculatorului. CONFIG.

Pe lângă metodele de protecţie anti-virus deja amintite mai pot fi folosite şi următoarele: (a) Crearea unei liste de partiţii a hard-disk-ului specială astfel încât acesta să fie inaccesibil când se boot-ează de pe o dischetă. şi pentru a extrage noi caracteristici utile pentru scanare.BAT.U. de către Sela Consultants Corp.).A. O astfel de listă poate fi realizată de programul GUARD. (b) Utilizarea intligenţei Artificiale pentru a învăţa despre viruşi noi.scanate pe măsură ce ele sosesc în calculator. distribuit în S. Este indicat să se folosească comanda PASSWORD din DRDOS pentru a se proteja la scriere toate executabilele de sistem precum şi utilitarele. Această măsură este utilă deoarece la boot-area de pe dischetă sunt evitate protecţiile hard-disk-ului din CONFIG. (c) Cifrarea fişierelor (cu descifrare înainte de execuţie). 11 . Astfel de demersuri sunt făcute în cadrul programului V-Care (CSA Interprint Israel.SYS şi din AUTOEXEC.

Capitolul 3 Protecţia reţelelor de calculatoare
Orice reţea este realizată conectând mai multe calculatoare. Pentru a proteja reţeaua trebuie să protejăm fiecare calculator. Faţă de mijloacele de protecţie amintite în primul capitol care se referă la protecţia calculatoarelor izolate (neconectate în reţea) în cazul reţelelor trebuie luate măsuri suplimentare datorate comunicării dintre calculatoare. De această dată operaţiile de identificare şi autentificare sunt mai complexe ţinând seama de faptul că acum numărul persoanelor care pot avea acces la datele comune poate fi mult mai mare. De asemenea lupta împotriva viruşilor este mai grea, deoarece oricare dintre calculatoarele reţelei poate fi atacat pentru a fi infectat. În plus există noi tipuri de atac specific pentru reţele. Deoarece scopul reţelelor este de a asigura comunicarea între calculatoare, tocmai această funcţiune poate fi periclitată prin atacuri din exterior. Astfel de atacuri pot să introducă un program într-unul dintre calculatoarele reţelei, care să se autoreproducă şi să se autotransfere pe celelalte calculatoare atât de mult încât să satureze traficul prin reţea. Chiar mai mult un astfel de program poate doar să simuleze creşterea şi mobilitatea sa, "infectând" doar dispozitivele responsabile cu controlul traficului prin reţea. În acest mod transferul de informaţie dintre calculatoarele reţelei este împiedicat fără ca să existe motive reale pentru asta.

3.1. Categorii de atacuri asupra reţelelor 3.1.1. Atacuri pasive
Intrusul în reţea doar observă traficul de informaţie prin reţea, fără a înţelege sau modifica această informaţie. El face deci doar analiza traficului, prin citirea identităţii părţilor care comunică şi prin învăţarea lungimii şi frecvenţei mesajelor vehiculate pe un anumit canal logic, chiar dacă conţinutul acestora este neinteligibil. Caracteristicile atacurilor pasive sunt: - Nu cauzează pagube, - Pot fi realizate pritr-o varietate de metode, cum ar fi supravegherea legăturilor telefonice sau radio, exploatarea radiaţilor electromagnetice emise, dirijarea datelor prin noduri adiţionale mai puţin protejate.

3.1.2. Atacuri active
Intrusul fură mesaje sau le modifică sau emite mesaje false. El poate şterge sau întârzia mesaje, poate schimba ordinea mesajelor. Există următoarele tipuri de atacuri pasive: - Mascarada : o entitate pretinde că este o alta. De obicei mascarada este însoţită de înlocuirea sau modificarea mesajelor; - Reluarea: Un mesaj sau o parte a sa sunt repetate. De exemplu este posibilă reutilizarea informaţiei de autentificare a unui mesaj anterior. - Modificarea mesajelor: alterarea datelor prin înlocuire, inserare sau ştergere. - Refuzul serviciului: O entitate nu reuşeşte să-şi îndeplinească propria funcţie sau efectuează acţiuni care împiedică o altă entitate să-şi efectueze propria funcţie. - Repudierea serviciului: O entitate refuză să recunoască serviciul pe care l-a executat. - Viruşii, Caii Troieni, "Bombele" informatice, "Bacteriile" informatice şi mai ales "Viermii" informatici. - Trapele: reprezintă perturbarea acceselor speciale la sistem cum ar fi procedurile de încărcare la distanţă sau procedurile de întreţinere. Ele eludează procedurile de identificare uzuale.

12

3.1.3. Necesităţi de securitate în reţele
Organizaţia internaţională de standardizare (ISO) defineşte în modelul OSI (Open System Interconnect) 7 nivele de comunicaţii şi interfeţele dintre ele. Funcţionarea la fiecare nivel depinde de serviciile efectuate la nivelul imediat inferior. În ultimii 20 de ani au fost concepute şi puse în funcţiune mai multe tipuri de reţele de calculatoare. Reţele separate se integrează în reţele globale. Protocolul CLNP (Connectionless Network Protocol) al ISO, cunoscut şi sub numele ISO IP, defineşte o cale de interconectare virtuală a tuturor reţelelor ş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 Apărării din SUA, DoD, prezintă cea mai naturală cale de evoluţie spre adevăratele sisteme deschise. Protocolul IP al DoD, oferă prima cale utilizabilă de interconectare a reţelelor heterogene şi de dirijare a traficului între acestea. Succesorul firesc al protocolului IP va fi protocolul CLNP, care va oferi aceiaşi funcţionalitate dar într-o formă standardizată internaţional şi cu un spaţiu de adresare mai mare şi mai bine structurat. În viitor reţelele de intreprindere sau reţelele cu valoare adăugată (VAN), nu vor mai fi separate fizic ci vor fi reţele virtuale, adică colecţii de NSAP formând o reţea logică. Un anumit NSAP poate aparţine simultan unui număr oricât de mare de astfel de reţele logice. Calculatoare individuale şi staţii de lucru sunt conectate la reţele locale (LAN) rapide. Lan-urile oferă conectivitate completă (posibilitatea de comunicare directă între oricare două staţii din aceeaşi reţea). Lan-urile dintr-o clădire, dintr-un complex de clădiri sau dintr-un cartier pot fi interconectate obţinându-se comunicaţii cu viteze comparabile cu cele din cadrul LAN-urilor componente. Reţele orăşeneşti, MAN ( Metropolitan Area Networks ) se construiesc tot mai frecvent. La acestea pot fi conectate alte LAN-uri sau reţele private PBX (Private Branch Exchanges). Cele mai cuprinzătoare reţele sunt WAN-urile (Wide Area Network). Reţele şi mai cuprinzătoare pot fi construite folosind sisteme ATM de tipul BISDN. În ierarhia reţelelor prezentată majoritatea traficului este local (în cadrul unui aceluiaşi LAN). Pe măsură ce se urcă în ierarhie mărimea traficului scade şi costurile de transmitere a informaţiei cresc dar calitatea şi viteza serviciilor rămân ridicate. Aceste dezvoltări au deschis perspective complet noi pentru proiectanţii de servicii informatice. De exemplu un calculator oarecare, conectat la o reţea locală, poate comunica cu oricare alt calculator (din lumea întreagă) folosind o bandă largă şi cu o întârziere relativ mică. E clar că acest gen de conectivitate conduce la creşterea riscurilor de securitate care trebuie considerate.

3.2. Securitatea LAN-urilor
Deşi reţelele locale au multe proprietăţi utile, cum ar fi banda largă, întârzierile mici, şi costuri independente de traficul de informaţie, ele posedă şi o ameninţare de securitate importantă. Într-o reţea locală toate calculatoarele componente "ascultă" în permanenţă mediul de comunicare, culegând toate mesajele transmise şi le recunosc pe cele care le sunt destinate pe baza adreselor destinatarilor. Asta înseamnă că oricare calculator poate supraveghea, fără a fi detectat, întregul trafic din reţea. De asemenea orice staţie îşi poate asuma o identitate falsă şi să transmită cu o adresă de sursă falsă, şi anume cea a unei alte staţii. Unul dintre atacurile cele mai uşor de realizat este înregistrarea şi retransmiterea secvenţelor de autentificare. Există în prezent posibilităţi (hard şi soft) pentru oricine care are acces într-o reţea locală să monitorizeze traficul, să caute secvenţe de tipul "Username:" sau "Password:" să înregistreze răspunsurile la aceste secvenţe şi mai târziu să acceseze un serviciu cu o identitate falsă. Este uşor să se imagineze şi atacuri mai ingenioase într-o reţea locală. Trebuie remarcat că orice tronson al unei reţele locale poate fi securizat rezonabil folosind o pereche de dispozitive de criptare de încredere, dar şi că pe măsură ce capacitatea unei reţele creşte şi riscurile de securitate cresc. În continuare se consideră exemplul unei reţele locale, deservită de un server. Se prezintă o colecţie utilă de măsuri de securitate ce se pot lua în cazul unei astfel de reţele. Nu se iau în considerare sistemul de operare al serverului sau al celorlalte calculatoare. Se presupune că reţeaua poate fi ameninţată de următoarele acţiuni: De forţă majoră:

13

- pierderea personalului; - inundaţie; - incendiu; - praf; Deficienţe de organizare: - folosirea neautorizată a drepturilor de utilizare; - bandă de frecvenţe aleasă neadecvat; Greşeli umane: - Distrugerea din neglijenţă a unor echipamente sau a unor date; - Nerespecatrea măsurilor de securitate; - Defectarea cablurilor; - Defecţiuni aleatoare datorate personalului de întreţinere a clădirii sau datorate unui personal extern; - Administrarea necorespunzătoare a sistemului de securitate; - Organizarea nestructurată a datelor; Defecţiuni tehnice: - Întreruperea unor surse de alimentare; - Variaţii ale tensiunii reţelei de alimentare cu energie electrică; - Defectarea unor sisteme de înregistrare a datelor; - Descoperirea unor slăbiciuni ale programelor folosite; - Posibilităţi de acces la sistemul de securitate prea greoaie; Acte deliberate: Manipularea sau distrugerea echipamentului de protecţie al reţelei sau a accesoriilor sale; - Manipularea datelor sau a programelor; - Furt; - Interceptarea liniilor de legătură dintre calculatoarele reţelei; - Manipularea liniilor de legătură; - Folosirea neautorizată a sistemului de protecţie al reţelei; - Încercarea sistematică de ghicire a parolelor; - Abuzarea de drepturile de utilizator; - Distrugerea drepturilor administratorului; - Cai Troieni; - Viruşi de calculator; - Răspunsuri la mesaje; - Substituirea unor utilizatori cu drept de acces în reţea de către persoane fără aceste drepturi; - Analiza traficului de mesaje; - Repudierea unor mesaje; - Negarea serviciilor. Contramăsuri recomandate: O bună alegere a modulelor de protecţie. Această alegere se face secvenţial, pe baza următoarelor criterii: Pasul 1: Regulile specifice instituţiei respective pentru Managementul Securităţii, Regulamentul de organizare al instituţiei, Politica de realizare a back-up-urilor şi Conceptele de protecţie anti-virus; Pasul 2: Criterii arhitecturale şi structurale, care iau în considerare arhitectura clădirii instituţiei respective; Pasul 3: Criterii constructive ale echipamentelor care constituie reţeaua; Pasul 4: Criterii de interconectare a echipamentelor din reţea; de exemplu dacă există sau nu echipamente de tip firewall ;

14

• Supravegherea păstrării programelor. • Împrospătarea periodică a parolelor. pdf]. la următoarea listă de măsuri de securitate: • Sursă de alimentare neinteruptibilă (opţional). • Protecţie prin parole. • Interzicerea utilizării unor programe neautorizate. • Verificări periodice ale securităţii reţelei. • Impunerea unor restricţii la accesul la conturi şi sau la terminale. De exemplu acesta poate fi numărul de identificare al unei componente sau grup de componente din reţea sau numele unei clădiri sau al unei unităţi organizatorice din cadrul instituţiei. • Blocarea sau ştergerea terminalelor. • Existenţa documentaţiei de configurare a reţelei. Pe baza unei astfel de analize. • Verificarea periodică a copiilor back-up. se poate ajunge. • 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. • Existenţa unei documentaţii asupra utilizatorilor autorizaţi şi asupra drepturilor fiecăruia. de tipul "modulelor" amintite mai sus) în sisteme de securitate complexe. • Asigurarea unei operaţii de login sigure. • Ultima coloană este destinată observaţiilor. Un astfel de model poate fi prezentat sub forma unui tabel cu următoarele coloane: Numărul şi numele modulului de protecţie. pentru server-ul considerat în acest paragraf. • Stocarea corespunzătoare a copiilor (back-up) ale fişierelor de date. • Antrenarea personalului tehnic şi al personalului de întreţinere. • Verificarea datelor noi care sosec în reţea împotriva viruşilor. • Controlul mediilor de păstrare a datelor. • Asigurarea unui management de sistem consistent. • Existenţa unei documentaţii asupra schimbărilor efectuate în sistemul de securitate. • Desemnarea unui administrator de reţea şi a unui adjunct al său. conturilor care nu sunt necesare. • Corecta dispunere a resurselor care necesită protecţie. • Stocarea structurată a datelor. cum ar fi programele de poştă electronică folosite sau bazele de date folosite. • Educarea personalului în legătură cu măsurile de securitate utilizate. • • 15 . • Permanenta căutare a informaţiilor despre slăbiciunile sistemului de protecţie. • Managementul reţelei. • Rularea periodică a unui program anti-virus. d/isar/securitate/retele/dissert. Obiectul ţintă sau grupul de obiecte ţintă. Utilizând pe rând toate aceste criterii rezultă modelul de securitate al reţelei considerate. • Existenţa de copii back-up pentru fiecare program folosit. În prezent se urmăreşte integrarea dispozitivelor de securitate izolate ((specifice fiecărui nivel de comunicaţie ISO). • Selecţia unor angajaţi de încredere pentru posturile de administrator de reţea şi de adjunct al acestuia. • Folosirea corectă a echipamentelor la noi cuplări în reţea.Pasul 5: Criterii de comunicare între echipamentele reţelei. specifice fiecărui tip de reţea [Arto Karila 1991. • Antrenarea personalului înainte de utilizarea unui anumit program. • Revizii periodice.

5 şi 6) se obţin valori diferite prin ridicarea la putere modulo 7. Dacă se cunoaşte restul împărţirii unui anumit număr cu 5 şi apoi cu 7.2. În continuare se analizează cazul în care baza nu este număr prim. este un număr prim. să fie egal cu 1.1. în raport cu înmulţirea modulo 7 este 4. Ea este adevărată în cazul exemplului nostru deoarece modulul utilizat. dacă se elimină elementul 0. 4. 4. pe clasa de resturi modulo 7 (fără 0) operaţia de înmulţire este inversabilă. se poate determina (deoarece 5 şi 7 sunt numere prime între ele (nu au factori comuni) ) restul împărţirii acelui număr la 35. Dacă se îndepărtează din tabelul de înmulţire linia şi coloana care conţin doar elemente nule atunci cele şase numere care rămân în fiecare linie şi în fiecare coloană sunt diferite între ele. Se numeşte funcţie indicator. adică 3. Poate că metoda descrisă anterior este cea mai simplă schemă de criptare bazată pe aritmetica claselor de resturi. În consecinţă doar pentru 6 valori distincte ale exponenţilor (1. pentru orice clasă de returi modulo un număr prim. atunci numărul de elemente inversabile la înmulţirea modulo N este ϕ(N). ridicat la puterea 6 este egal cu 1. 3. În loc de 3 se va emite 4 (trei plus unu). În cazul din exemplul anterior ϕ(7)=6. înmulţire şi ridicare la putere pe mulţimea claselor de resturi modulo 7. Cu alte cuvinte. E clar că dacă N este prim atunci ϕ(N)=N-1. Valorile obţinute prin ridicarea la puterea 0 sunt identice cu valorile obţinute prin ridicarea la puterea a 6-a. 7. Deci dacă modulul N este număr prim. se poate afirma. De aceea se poate spune că 17 4. Această proprietate este valabilă. modulo 7. De exemplu inversul lui 2. pe baza acestui exemplu. a lui Euler şi se notează cu ϕ funcţia care asociază lui N numărul de numere întregi şi pozitive mai mici decât N. Aritmetica pe clase de resturi modulo specificat Se prezintă pentru început tabelele pentru operaţiile de adunare. Analizând acest tabel se constată că orice număr cuprins între 1 şi 6. relativ prime cu N. exponentul poate fi privit ca fiind un element al clasei de resturi modulo 6 (modulo ϕ(N)). Cu alte cuvinte perioada de repetiţie într-un tabel de ridicare la putere modulo N este egală cu ϕ(N). Această proprietate nu este adevărată pentru orice valoare a modulului. Se constată că în fiecare linie respectiv coloană pe o anumită poziţie există un 1. că numărul de exponenţi pentru care se obţin valori distincte prin ridicarea la putere modulo N este egal cu ϕ(N). Mai interesant este tabelul de ridicare la putere prezentat în paragraful anterior. De fapt cele două resturi sunt egale. Numere prime . 2. 2 şi 5 şi 3 şi 4 sunt inverse în raport cu adunarea. Ţinând seama de definiţia anterioară a funcţiei totient a lui Euler. La recepţia se va aduna modulo 7 inversul lui 1. Mai mult pe baza tabelului de ridicare la putere se constată că această operaţie este periodică. De aceea se poate afirma că pentru fiecare număr cuprins între 1 şi 6 există un alt număr cuprins între 1 şi 6 astfel încât produsul acestor două numere. adică mesajul care trebuia transmis. Din acest punct de vedere se poate afirma că la ridicarea la putere modulo 7. Să luăm prima pereche şi să considerăm că se doreşte transmiterea mesajului 3. în general. +|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 Analizând tabelul din stânga se constată că 1 şi 6.Capitolul 4 Bazele matematice ale criptării În acest paragraf se prezintă principalele cunoştiinţe de matematică care sunt utilizate în realizarea algoritmilor de criptare. (N). totient. adică 6 şi se va obţine 10 modulo 7.

d). coeficienţi modulo 4. În continuare se prezintă tabelul corespunzător operaţiei de ridicare la putere modulo 55. iar pentru ridicarea la puterea a şaptea. exponenţi modulo 6 şi produsul dintre 4 şi 6 este 24). Raţionamentul făcut explică rolul numărului (p-1)(q-1) folosit în metoda de criptare cu cheie publică RSA. Se obţine textul criptat C. Perechea (N. Această metodă presupune criptarea unui mesaj M. De aceea. nu este nevoie ca pentru ridicarea la putere modulo 35 (care conform proprietăţii anterioare ar pretinde exponenţi modulo 34) să se folosească exponenţi modulo 34. fiind suficient să se utilizeze exponenţi modulo 24 (pentru ridicarea la puterea a 5-a sunt suficienţi. referindu-ne acum la operaţia de ridicare la putere şi ţinând seama de proprietatea amintită anterior. prin ridicarea sa la o putere e modulo N. ^ | 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 . Pentru a aplica această metodă de criptare trebuie calculată puterea d. Cheia de decriptare este perechea (N. inversa lui e în raport cu operaţia de înmulţire modulo N.proprietăţile aritmeticii modulo 35 sunt o combinaţie a proprietăţilor aritmeticilor modulo 5 şi modulo 7.e) reprezintă cheia de criptare. Decriptarea se realizează prin ridicarea lui C la o putere d. conform proprietăţii anterioare.

3. 53. valoarea lui N este 55. Primul care a publicat o demonstraţie a acestei teoreme a fost Euler în anul 1736. Adică: r = s (mod p) Dar numerele r şi s sunt distincte şi mai mici decât p. 39. trebuie priviţi ca şi elemente ale clasei de resturi modulo (p-1)(q-1)/2. 52. 49. 19. redactat înainte de 1683. 27. numere prime între ele şi prime în general. În consecinţă ipoteza făcută este absurdă. 6. . 24. 43.. 4. 41. Deşi coloana a 20-a nu conţine doar elemente egale cu 1. 46. 54. De aceea se lucrează cu acest modul în metoda RSA pentru determinarea puterii d. ambele conţinînd în ordine numerele cuprinse între 1 şi 45. 8. Într-adevăr. Cu alte cuvinte perioada de repetiţie în tabelul de ridicare la putere modulo N (dat de produsul dintre p şi q) este egală cu (p-1)(q-1)/2. 42. De aceea ultima egalitate nu poate avea loc. coloana a 21-a este identică cu coloana 1-a. 3. Fermat nu a dat o demonstraţie nici pentru această teoremă (mărginindu-se să afirme "Ţi-aş fi trimis şi demonstraţia dacă nu m-aş fi temut că este prea lungă"). 23. A fost găsită însă aceeaşi demonstraţie într-un manuscris al lui Leibniz. (p -1)a Dacă ra şi sa sunt egali modulo p. 37. rămas nepublicat. Această comportare are loc întotdeauna când cel mai mare divizor comun al numerelor p-1 şi q-1 este 2. 12. 36. 31. 2a. care nu este divizor al lui a. De aceea pentru cazul analizat trebuiesc excluse toate numerele divizibile cu 2 şi 5. 13. mai mici decât 55 sunt: 1. Pe baza analizei acestui tabel se pot face câteva observaţii. 38. De aceea se poate afirma că cei p-1 multiplii ai lui a introduşi mai sus sunt distincţi şi nenuli. În consecinţă (fiind vorba de p-1 valori) ei trebuie să fie egali modulo p 19 . De aceea ϕ(55)=40. 7. De aceea numai numere prime cu (p-1)(q-1) pot fi utilizate ca şi exponenţi pentru cifrarea respectiv descifrarea bazate pe metoda de criptare RSA. 34. 51. valoarea lui p este 5 iar valoarea lui q este 11. atunci: r (mod p ) ⋅ a(mod p ) = s(mod p ) ⋅ a(mod p ) deoarece p este număr prim şi nu-l divide pe a. 32.Factorii lui 55 sunt 5 şi 11. 14. Numerele relativ prime cu 55. 26. Observaţia anterioară este justificată de următoarea propoziţie: Dacă p şi q sunt două numere relativ prime şi dacă N = p ⋅ q atunci ϕ ( N ) = ( p − 1)(q − 1) . Demonstraţie: Notă istorică Ca de obicei. Asta înseamnă că tabelul se repetă cu perioada 20 în loc de 40. 16. 28. are loc relaţia: ap-1 = 1 (mod p). 29. deoarece tabelul ar trebui să se repete cu perioada 40. Conform observaţiei anterioare ar trebui să fie folosiţi coeficienţi modulo 40. Evident că şi 40 este o valoare bună pentru perioadă (orice multiplu al perioadei prinicpale reprezintă o perioadă). dacă factorii p şi q sunt numere prime. Deoarece 55 nu este număr prim e logic ca prin înmulţirea repetată a numerelor divizibile cu 5 şi cu 11 să nu se poată obţine numere nedivizibile cu 5 sau cu 11 cum ar fi de exemplu 1. Mica teoremă a lui Fermat Fiind dat numărul întreg a şi numărul prim p .. în exemplul prezentat mai sus. Pentru început se scriu primii p-1 multiplii pozitivi ai lui a: a. 4. 48. 17. 3a. De aceea exponenţii de la ridicarea la putere modulo N. Doar dacă valoarea produsului este 1 se poate vorbi despre inversare. 9. 47. 21. 18. 2.

p-1 într-o anumită ordine. În consecinţă scăderea polinoamelor este identică cu adunarea lor. b0}. Este generat de polinoame peste Z2 modulo polinomul x. Un element generator al acestui grup ciclic este numit element primitiv al câmpului.. Alternativ adunarea a doi octeţi în GF(28).. 4. De exemplu următoarele expresii sunt echivalente: i = 1.3a. Câmpuri Galois Un câmp Galois este un câmp finit cu pn elemente. Elementele câmpurilor finite pot fi adunate sau înmulţite. Polinoamele corespunzătoare elementelor din GF(2) sunt: 0 şi 1.3.. b5.. 3. Mulţimea elementelor nenule ale câmpului Galois este un grup ciclic în raport cu operaţia de înmulţire. b6. unde p este un număr prim. unde: ci = ai ⊕ bi . Aceşti octeţi sunt interpretaţi ca şi elemente ale câmpului finit GF(28) cu ajutorul unei reprezentări 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 7 De exemplu octetul {01100011} se identifică cu polinomul: x + x + x + 1 .. Valorile unui octet se reprezintă în algoritmii de criptare prin concatenarea biţilor individuali: {b7. Câmpul GF(2) este utilizat frecvent la construcţia de coduri deoarece el este uşor reprezentat în calculatoare... Câmpul Galois poate fi generat ca o mulţime de polinoame cu coeficienţi în Zp modulo un polinom ireductibil de gradul n. Exemplul 1: GF(2) GF(2) constă din elementele 0 şi 1 (p=2 şi n=1) şi reprezintă cel mai mic câmp finit. {a7a6a5a4a3a2a1a0} şi {b7b6b5b4b3b2b1b0}..4. Se obţine octetul {c7c6c5c4c3c2c1c0}. b2. fiind necesar un singur bit.(p-1) (mod p) adică: a(p-1)(p-1)! = (p-1)! (mod p) Împărţind în ambii membri cu (p-1)! mod(p) se obţine tocmai relaţia din enunţ. b3...(p-1)a =1. Tabelele sale de adunare şi înmulţire sunt: +|01 --+---0|01 1|10 *|01 --+---0|00 1|01 6 5 Se constată că operaţia de adunare este identică cu operaţia logică sau-exclusiv şi că înmulţirea este identică cu operaţia logică şi.cu numerele 1. b1. (x 6 + x 4 + x 2 + x + 1)+ (x 7 + x + 1) = x 7 + x 6 + x 4 + x 2 (notaţie polinomială) 20 .2. Adunarea Însumarea a două elemente într-un câmp finit Galois al lui 2 la o anumită putere este realizată prin "adunarea" coeficienţilor corespunzători aceleiaşi puteri din polinoamele corespunzătoare celor două elemente. .. 2. se face prin adunarea modulo 2 a biţilor lor corespunzători.7. deoarece x mod x=0 şi x+1 mod x=1.2a. b4. "Adunarea" este efectuată modulo 2 (adică este vorba despre funcţia logică sauexclusiv). Prin înmulţirea membrilor stângi respectiv drepţi ai tuturor acestor egalităţi se obţine egalitatea următoare: a.

iar elementul său neutru este {01}.0. şi determinând polinoamele a(x) şi c(x). GF(28). 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ă înmulţirea • este distributivă în raport cu adunarea pe GF(28). înmulţirea în câmpul lui Galois al lui 28.0. 1. El este generat de polinoame peste Z3 modulo polinomul x. notată cu •. corespunde înmulţirii polinoamelor corespunzătoare modulo un polinom ireductibil de gradul 8. Un astfel de polinom ireductibil este: x8 + x 4 + x3 + x + 1 sau {1b} în notaţie hexazecimală. b(x).{01010111} {57} ⊕ ⊕ {10000011} = {83} = {11010100} {d4} (notaţie binară) (notaţie hexazecimală) Înmulţirea În reprezentare polinomială.0. Înmulţirea definită astfel este asociativă. de grad inferior lui 8. Tabelele sale de adunare şi înmulţire sunt: + | 0 1 -1 --+-------0 | 0 1 -1 * | 0 1 -1 --+-------0|0 0 0 21 .1.1.0. Dar octetul corespunzător lui R(x) este {0. Acesta poate fi calculat utilizând algoritmul lui Euclid. care au proprietatea: deoarece restul împărţirii lui P(x) la m(x) este − x 7 − x 6 + 1 . 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. De exemplu: {57} • {83} = {c1} deoarece ţinând seama de reprezentările polinomiale ale lui {57} şi {83}: (x 6 + 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 ţinând seama de modul în care a fost definită adunarea: (x Dar: 6 + 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) ( ) înmulţire. şi -1.1}sau în notaţie hexazecimală {c1}.0. deoarece coeficienţii acestor polinoame trebuie consideraţi din mulţimea claselor de resturi modulo 2 (aşa cum s-a arătat deja când s-a vorbit despre adunare). care este egal cu R(x). Pentru orice polinom binar neidentic nul. notat b −1 ( 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 înmulţirii x • b( x ) se obţine reducând modulo m(x) rezultatul obţinut anterior. la nivel de octet. Exemplul 3: GF(4) 1 | 0 1 -1 Acest câmp Galois este generat de polinoamele peste Z2 modulo polinomul x2 + x + 1. Această operaţie. Înmulţirea cu puteri mai mari ale lui x poate fi implementată prin aplicarea repetată a operaţiei xtime(). notat cu b(x). Dacă bitul b7 are valoarea 0 atunci rezultatul este deja în formă redusă.A. A şi B sunt elemente primitive ale lui GF(4). dar nu s-a indicat o metodă numerică simplă pentru efectuarea acestei înmulţiri.1 | 1 -1 0 -1 | -1 0 1 -1 | 0 -1 1 Este utilizat la construcţia codurilor ternare. Înmulţirea polinomului binar b7 x 7 + b6 x 6 + b5 x 5 + b4 x 4 + b3 x 3 + b2 x 2 + b1 x + b0 . În continuare se analizează cazul polinoamelor cu coeficienţi octeţi. (adică {00000010}în formă binară. în formă hexazecimală) poate fi implementată la nivel de octet printr-o deplasare la stânga urmată sau nu (în funcţie de valoarea bitului b7) de calculul funcţiei sau-exclusiv dintre rezultatul (obţinut în urma rotirii) şi {1b}. Dacă acest bit are valoarea 1 reducerea este realizată prin scăderea (adică prin operaţia logică sau-exclusiv) polinomului m(x). respectiv {02}.B). Înmulţirea cu monoame pe GF(28) Într-un paragraf anterior s-a introdus înmulţirea pe acest câmp Galois. cu coeficienţi în câmpul specificat. Prin adunarea unor astfel de rezultate intermediare poate fi implementată înmulţirea cu orice polinom. Elementele sale sunt (0. fiind deci vorba despre polinoame binare. Înmulţirea cu monoame este un caz particular important (orice înmulţire de polinoame se bazează pe câteva înmulţiri cu monoame) pentru care există metode numerice simple de implementare. Polinoamele cu patru termeni. 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 coeficienţi în GF(28) Până acum coeficienţii polinoamelor erau de valoare unu sau zero. Tabelele sale de adunare şi înmulţire sunt: +|01AB --+-------0|01AB 1|10BA A|AB01 B|BA10 *|01AB --+-------0|0000 1|01AB A|0AB1 B|0B1A Datorită tabelului de înmulţire A se identifică de obicei cu rădăcina cubică a unităţii − 1 / 2 + i 3 / 2 . sunt de forma: 22 . este notată prin xtime(). În consecinţă înmulţirea pe GF(28) cu x.1.

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. se efectuează în doi paşi. Cel de al doilea pas presupune reducerea lui c(x) modulo un polinom de gradul 4. Pentru a ilustra operaţiile de adunare şi de înmulţire pentru polinoame cu patru termeni cu coeficienţi octeţi fie cel de al doilea termen (sau factor) al operaţiei: b(x ) = b3 x 3 + b2 x 2 + b1 x + b0 Adunarea este realizată prin adunarea. astfel încât: x i mod x 4 + 1 = x i mod 4 Produsul modular al polinoamelor a(x) şi b(x). operaţiile descrise mai sus pot fi exprimate şi matricial: 23 . notat a ( x ) ⊗ b( x ) . numită înmulţire modulară. Adunarea în câmpul finit al coeficienţilor este efectuată prin intermediul operaţiei de sau-exclusiv între octeţii corespunzători (de această dată este vorba despre sau-exclusiv între octeţii compleţi şi nu între biţii din componenţa lor). aşa cum se va arăta în continuare. a coeficienţilor corespunzători aceleiaşi puteri a lui x. Primul pas presupune dezvoltarea algebrică a produsului celor două polinoame. c(x). în câmpul finit al coeficienţilor. a1 . a2 . De aceea şi polinomul de reducere va fi diferit. În consecinţă: a( x ) + b( x ) = (a3 ⊕ b3 )x 3 + (a 2 ⊕ b2 )x + (a1 ⊕ b1 )x + (a 0 ⊕ b0 ) Înmulţirea celor două polinoame. obţinându-se un polinom de grad mai mic decât patru. a3 ]. De exemplu în cazul algoritmului de criptare simetrică Rijndael polinomul de reducere este x 4 + 1 . De data aceasta însă coeficienţii nu mai sunt biţi ci octeţi. este dat de polinomul cu patru termeni d(x). nu este însă un polinom cu patru termeni.a ( x ) = a3 x 3 + a 2 x 2 + a1 x + a 0 şi se reprezintă ca şi cuvinte de forma [a0 . c( x ) = a (x ) • b( x ) şi identificarea coeficienţilor fiecărei 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.

Efectul înmulţirii modulare cu acest polinom este rotirea octetului cu o poziţie spre stânga. care trebuie să aibă invers în raport cu această operaţie de înmulţire: a ( x ) = {03}x 3 + {01}x 2 + {01}x + {02} Inversul său 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 . b1. 4. nu este neapărat o operaţie inversabilă. se realizează prin înmulţirea acelui octet. b3. b2. definită mai sus. transformarea Pseudo-Hadamard pe 32 de biţi 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. 4. maximum distance separable code (MDS).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ă înmulţirea modulară se reduce la o înmulţire matricială. a unui anumit octet. b0]. este o corespondenţă între a elemente ale acelui câmp finit şi b elemente ale unui alt câmp finit. Fiind date 2 intrări a şi b. Deoarece x 4 + 1 nu este un polinom ireductibil pe GF(28). între oricare 2 vectori produşi. Transformări Pseudo-Hadamard O transformare Pseudo-Hadamard este o simplă operaţie de mixare care poate fi implementată numeric rapid. Matrici MDS Un cod separat la distanţa maximă. mai mare. În algoritmul Rijndael este totuşi utilizat un polinom cu patru termeni cu coeficienţi octeţi. Poate fi demonstrat că nu există o altă corespondenţă care să aibă o distanţă minimă. b3] se transformă în [b1. Altfel spus distanţa dintre oricare doi vectori produşi de corespondenţa MDS (adică numărul de elemente care diferă între cei doi vectori) este de cel puţin b + 1. De aceea se foloseşte denumirea de separare la distanţă maximă.5. înmulţirea modulară a polinoamelor cu patru termeni cu coeficienţi octeţi. putând fi execută în două operaţii de microprocesor. O condiţie necesară şi suficientă ca o matrice să fie MDS este ca toate submatricele sale pătrate să fie nesingulare. care produce un vector compus de a+b elemente. privit ca şi vector. b2. Asta înseamnă că [b0. Algoritmul de criptare simetrică Twofish utilizează o matrice MDS peste câmpul Galois a lui 2 la puterea a 8-a. cu proprietatea că numărul minim de elemente nenule din orice vector nenul este de cel puţin b + 1.6. cu matricea MDS. definit peste un câmp finit. O corespondenţă MDS poate fi reprezentată cu ajutorul unei matrici MDS care are axb elemente. De exemplu codurile corectoare de erori ReedSolomon sunt coduri de tip MDS. Transformarea MDS corespunzătoare. 24 .

autentificare. din A.Fiind dat M este dificil să se găsească un alt mesaj M' diferit astfel încât H(M)=H(M').4. Această funcţie hash se utilizează la generarea semnăturilor digitale. Funcţiile hash de tipul one-way au numeroase aplicaţii: .Este greu să se găsească două mesaje aleatoare astfel încât H(M)=H(M'). este simplu de calculat h=H(M). Caracteristicile funcţiilor hash sunt: . formată cu elemente a căror exprimare în binar se face cu acelaşi număr de biţi. Funcţii hash O funcţie hash . O funcţie hash de tipul one-way este o funcţie hash care este dificil de inversat. Această proprietate este numită rezistenţă la coliziune. De obicei mulţimea A reprezintă mulţimea mesajelor. o valoare exprimată pe 32 de biţi obţinută prin rotirea circulară spre stânga cu complementul lui X obţinut prin complementarea fiecărui bit al său.securitatea parolelor.controlul integrităţii mesajelor. m_{b-1} Terminologie şi notaţii ^ + X <<< s s poziţii a lui X. message integrity check. Ea transformă un fişier de lungime arbitrară într-o valoare exprimată pe 128 de biţi. . . care ia valori într-o mulţime B. Asta înseamnă că dacă H(a)=b şi dacă se cunoaşte b atunci este foarte dificil să se afle a. Forma mesajului iniţial este: m_0 m_1 .. . Mulţimea B are 2n elemente.Fiind dat h este dificil de calculat M. XvY rezultatul aplicării funcţiei sau cuvintelor X şi Y obţinut prin aplicarea funcţiei sau fiecărei perechi de biţi (de aceeaşi semnificaţie) din cele două cuvinte X xor Y rezultatul aplicării funcţiei sau-exclusiv cuvintelor X şi Y obţinut prin aplicarea funcţiei sau-exclusiv fiecărei perechi de biţi (de aceeaşi semnificaţie) din cele două cuvinte 25 . n. Rezultatul aplicării funcţiei hash va fi rezumatul mesajului considerat. MIC. . MD. notată cu H este o funcţie definită pe o mulţime A. Descrierea algoritmului MD5 Se consideră că mesajul de intrare (elementul căruia i se aplică funcţia hash) are o lungime de b biţi. adunarea modulo 2^32 a cuvintelor. . x^i înseamnă x la puterea i.controlul autenticităţii mesajelor. din structurile Feistel folosite de diferiţii algoritmi de criptare simetrică). .7. Uneori nu există nici o metodă mai rapidă de a-l afla pe a decât cea bazată pe forţa brută (care cere să fie încercate toate elementele din A).Prin modificarea unui singur bit din M se modifică mulţi biţi din h. Dacă n nu este suficient de mare atunci funcţia nu este injectivă şi deci nu este inversabilă. MAC. . Cel mai des folosită funcţie hash se numeşte MD5 (Message Digest) şi a fost introdusă de Rivest în 1991. caz în care rezultatul aplicării sale unui mesaj se numeşte rezumatul mesajului.1. Rezultă că funcţiile hash de tipul one-way sunt rezistente la atacuri de tip collision. 4. Această funcţie este prezentată în [3].. .generarea şirurilor de chei (astfel de exemple vor fi date când se vor prezenta funcţiile f.Fiind dat mesajul M. message authentication check.7. not(X) ridicare la putere.

Deci acest mesaj conţine un număr întreg de cuvinte de 16. Pasul 2. F(X. B. Acest cuvânt de 64 de biţi se adauagă prin concatenarea a două cuvinte de 32 de biţi.Y. Iniţializarea registrului MD Un registru de patru cuvinte (A.Y. Funcţiile G. Extinderea se face întotdeauna. H(X. chiar dacă lungimea mesajului iniţial este egală cu 448 modulo 512.Z) = XZ v Y not(Z) H(X.Z) vor fi independenţi şi nepolarizaţi. În acest punct al algoritmului noul mesaj obţinut are o lungime egală cu un multiplu de 512.D) se foloseşte pentru calculul rezumatului mesajului. şi I sunt similare cu funcţia F. Aceste registre sunt încărcate iniţial cu următoarele valori. Adăugarea lungimii mesajului O reprezentare pe 64 de biţi a lungimii iniţiale a mesajului. în sensul că şi ele acţionează la nivel de bit în mod paralel astfel încât dacă X.Z) şi I(X. Prelucrarea mesajului folosind blocuri de câte 16 cuvinte Pentru început se definesc 4 funcţii auxiliare fiecare aplicându-se la cîte 3 cuvinte de câte 32 de biţi şi avînd ca valoare câte un cuvânt de 32 de biţi. Y. că valoarea lui b este mai mare decât 2 la puterea 64.C. Este interesant să se observe faptul că dacă biţii operanzilor X. Funcţia F ar fi putut fi definită şi folosind operaţia + în loc de v deoarece subfuncţiileXY şi not(X)Z nu vor avea niciodată un 1 în aceeaşi poziţie. exprimate în hexazecimal (cu biţii cei mai puţin 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. 26 . Extinderea se face după cum urmează: se adaugă un singur bit cu valoarea 1 şi apoi se aduagă biţi de valoare 0 până când lungimea mesajului ajunge să fie de valoarea dorită.Y..Z) va fi independent şi nepolarizat. Pentru determinarea rezumatului mesajului se fac următorii 5 paşi.Z) = X xor Y xor Z I(X. Y. b. N-1] reprezentarea unui cuvânt al mesajului rezultat. se utilizează doar cei mai puţin semnificativi 64 de biţi ai reprezentării binare a valorii b. C. Adăugare de biţi pentru egalizarea lungimii mesajului Mesajul este extins astfel încât lungimea sa să devină egală cu 448 modulo 512. respectiv 32 de biţi. D. Fie M[0 . au fost notate patru registre de câte 32 de biţi.Y. şi Z (priviţi ca şi variabile aleatoare) sunt independenţi şi nepolarizaţi.Z).Y. este adăugată la rezultatul obţinut în urma efectuării pasului anterior. Se observă că folosind funcţia H poate fi făcut controlul parităţii variabilelor sale.Y.Y. unde N este un multiplu de 16.XY rezultatul aplicării funcţiei şi cuvintelor X şi Y obţinut prin aplicarea funcţiei şi fiecărei perechi de biţi (de aceeaşi semnificaţie) din cele două cuvinte. De fapt cu A.Z) = XY v not(X) Z G(X. În ipoteza. altfel Z. Pasul 3.. atunci fiecare bit al lui F(X.Z) = Y xor (X v not(Z)) În fiecare poziţie de bit funcţia F acţionează ca şi o condiţionare: dacă X atunci Y.Y. Numărul de biţi adăugaţi poate varia între 1 şi 512. puţin probabilă. primul fiind cel care conţine biţii mai puţin semnificativi. H. şi Z au biţii independenţi şi nepolarizaţi atunci biţii rezultatelor G(X.B. Pasul 1.

d) + X[k] + T[i]) <<< s). */ For i = 0 to N/16-1 do /* Se copiază cel de al i-ilea bloc în X. B ca şi BB. Pentru încheierea acestui pas se efectuează următoarele operaţii: /* Se prelucrează fiecare bloc de căte 16 cuvinte. (Acestea incrementează fiecare dintre cele patru registre cu valorile pe care le-a avut înaintea începerii acestui bloc. */ /* Se fac următoarele 16 operaţii.. */ [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] /* Iteraţia 2. */ /* Se notează cu [abcd k s t] operaţia: a = b + ((a + H(b.. */ /* Se fac următoarele 16 operaţii. */ /* Se fac următoarele 16 operaţii. care este egal cu partea întreagă a produsului dintre 4294967296 şi valoarea absolută a lui sin(i).Acest pas foloseşte un tabel cu 64 de elemente T[1 . Fie T[i] cel de al i-ilea element al tabelului. */ /* Se fac următoarele 16 operaţii. */ /* Se notează cu [abcd k s i]operaţia: a = b + ((a + F(b. şi D ca şi DD.d) + X[k] + T[i]) <<< s). */ For j = 0 to 15 do Set X[j] to M[i*16+j]. */ [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] /* Iteraţia 3.d) + X[k] + T[i]) <<< s). */ [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ă următoarele adunări.c. */ /* Se notează cu [abcd k s i] operaţia: a = b + ((a + G(b. 64] construit cu ajutorul valorilor funcţiei sinus. end /* al buclei după j */ /* Salvează A ca şi AA.c.) */ A = A + AA 27 .c. C ca şi CC.d) + X[k] + T[i]) <<< s).c. */ [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] /* Iteraţia 4. unde i este exprimat în radiani. */ AA = A BB = B CC = C DD = D /* Iteraţia 1. */ /* Se notează cu [abcd k s t] operaţia: a = b + ((a + I(b.

La început se vor găsi biţii cei mai puţin semnificativi ai registrului A iar la sfîrşit biţii cei mai semnificativi ai registrului D. în algoritmul DSA. într-o secvenţă de 160 de biţi. C şi D obţinute la sfârşitul pasului anterior.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 obţinut prin concatenarea conţinuturilor registrelor A. fiind utilizată în standardul DSS. O altă funcţie hash utilizată frecvent este SHA (prescurtarea de la Secure Hash Algorithm). publicată de Guvernul American în anul 1995. Şi această funcţie se utilizează la construcţia semnăturilor digitale. 28 . Şi această funcţie este prezentată în [3] şi în documentul publicat de NIST intitulat FIPS 180-1. Aceasta transformă un fişier. mai scurt sau mai lung de 160 de biţi. B.

asimetrice (cu chei publice) care folosesc două chei.M. . născută prin proliferarea calculatoarelor. Descifrare.C.U. Ea stă la baza multor servicii şi mecanisme de securitate folosite în reţele şi mai ales în INTERNET. a confidenţialităţii acestor mesaje. Documente private.simetrice (cu cheie secretă) care folosesc aceeaşi cheie atât la cifrarea cât şi la descifrarea mesajelor. o persoană interpusă poate mai uşor intercepta şi altera mesaje decât atunci când comunicările faţă în faţă constituiau baza schimbului de mesaje. Algoritmi criptografici cu cheie secretă Dezvoltarea aşa numitei economii informatice.operaţia inversă operaţiei de criptare.1. cercetători la uiversitatea Stanford au pus. decriptare . Standardul DSS (Digital Signature Standard) a fost publicat în 1991. De această dată se utilizează două chei. Cifrare. . de a guverna. Un sistem criptografic este compus din: . În ultimii 20 de ani indivizi şi organizaţii au adoptat această tehnologie folosind-o la aproape orice. în mare măsură. de a se distra şi de a conversa cu prietenii şi cu familia. De aceea în anul 1975 a fost adoptat primul standard de criptare a datelor propus de IBM şi numit DES (Data Encryption Standard).un algoritm care produce cheile K e şi K d astfel încât: C = E K e (M ) şi M = D K d (C ) Există două tipuri de sisteme criptografice: . Chei criptografice . una publică şi una privată. . De aceea Guvernul S. Pentru toţi ceilalţi utilizatori ai reţelei cheia este secretă.2. a transformat radical modul de a face afaceri. Acesta descrie un algoritm de criptare simetrică. una secretă (cunoscu tă doar de destinatarul mesajului) şi una publică care poate fi cunoscută de orice utilizator al reţelei.mesajul original: Mesaj cifrat. a telecomunicaţiilor şi a INTERNET-ului.operaţia de secretizare a textului clar al cărei rezultat este mesajul cifrat. bazele criptografiei asimetrice cu chei publice. în intenţia de a ascunde conţinutul lor sau de a le proteja împotriva modificării. criptare . Dar majoritatea mijloacelor care asigură această viteză sporită şi această uşurinţă de comunicare au contribuit şi la scăderea.sau -2-) criptografia s-a dezvoltat în ultimii ani mai ales datorită dezvoltării reţelelor de calculatoare. livrate în mână şi ţinute sub lacăt sunt acum create. . Deşi are o istorie îndelungată (vezi -1. text cifrat.rezultatul operaţiei de criptare efectuate asupra textului clar.secvenţe de caractere care controlează operaţiile de criptare şi de decriptare. folosind metode matematice pentru transformarea datelor. Pe baza cheii publice se poate face identificare sursei de unde soseşte un anumit mesaj. Îngrijorarea creată de noile ameninţări ale securităţii au condus la larga adoptare a criptografiei. de la 29 . care înainte erau realizate pe hârtie. Câţiva termeni utilizaţi în criptografie Text clar . Criptarea se realizează prin intermediul unei chei care este cunoscută doar de către destinatarul mesajului. text clar. trimise şi păstrate electronic. criptogramă . 5. 5.A a decis elaborarea unui standard de semnătură digitală bazat pe utilizarea cheilor publice şi secrete. Criptoanaliza .Studiul metodelor de decriptare ilegale (fără cunoaşterea cheilor criptografice). în anul 1976. Cu alte cuvinte folosind acest algoritm se poate face şi autentificarea mesajului.2 funcţii inverse E şi D.Capitolul 5 Criptografia şi securitatea reţelelor Criptografia este ştiinţa scrierilor secrete. Witfield Diffie şi Martin Hellman. Într-o epocă electronică.

de asemenea conceput de Schneier. Cea mai bună metodă de protecţie a datelor este criptarea. urmând să fie înlocuit de Standardul avansat de criptare a datelor Advanced Encryption Standard (AES). a experţilor în criptografie.. Chiar şi datele pe care utilizatorul le considera şterse sau suprascrise pot fi refăcute. Dar aşa cum pot indivizii obişnuiţi să cripteze mesaje într-o formă de neatacat aşa pot şi criminalii. teroriştii sau alţi răufăcători. Textul clar este modificat folosind un algoritm şi o variabilă (cheie). Cele mai populare browser-e de WWW folosesc algoritmi criptografici care pot fi incluşi şi în majoritatea programelor de e-mail. San Jose. a caracterizat odată criptarea ca pe o "muniţie controlată" la fel de periculoasă ca şi armele atomice şi până în zilele noastre a controlat exportul celor mai avansate produse criptografice. Multe scheme de criptare utilizate astăzi sunt simetrice (se bazează pe o singură cheie. În general cu cât numărul acestor caractere este mai mare cu atât securitatea textului cifrat obţinut este mai mare. 30 . Cheia este un şir de caractere alese aleator. El adună bit cu bit ieşirea unui generator de numere pseudoaleatoare cu şirul de biţi ai unui text clar. Bedford. Standardul de criptare a datelor (DES) a fost dezvoltat în anii 70 şi încă se utilizează pe scară largă. Triplu DES. Blowfish este un cod bloc de 64 de biţi care foloseşte chei de lungimi cuprinse între 32 şi 448 de biţi. Algoritmul obţinut astfel este mai lent dar mai sigur. Această bătălie. California şi este utilizat în peste 100 de produse. Vulnerabilitatea datelor din calculatoare afectează pe oricine. Twofish. legal.. Această turnură a evenimentelor a condus guvernele din multe ţări să privească această tehnologie ca pe o gravă ameninţare a ordinii sociale şi să încerce controlul răspândirii sale. Pe vremuri. Acum câţiva ani. Şi guvernele democratice se pot teme că criptografia este utilizată de cartelele de droguri şi de alţi inamici ai statului respectiv.U. Operatorii acestui site au constatat. aşa cum o arată standardul american DES. Regimurilor represive le poate fi teamă că grupuri dizidente folosesc criptarea pentru a promova ideile lor subversive.A. În continuare se dă un exemplu de probleme pe care le ridică utilizarea (respectiv neutilizarea) criptării. Scopul criptării este să transforme un document într-o formă de necitit pentru toată lumea. la televiziunea germană a fost prezentat cazul unui surfer de Web al cărui calculator a fost scanat în timp ce era conectat la un anumit site. secretă). poliţia putea să recupereze orice document (în cel mai rău caz forţând un seif). cheia 1 este folosită la prima şi la cea de a treia criptare iar cheia 2 la cea de a doua criptare. Majoritatea implementărilor noului algoritm utilizează doar două chei. Această atitudine a guvernelor a stârnit proteste ale avocaţilor dreptului la intimitate.trimiterea de e-mail-uri sau stocarea de date medicale sau legale la conducerea de la distanţă a tranzacţiilor. RC4 este un program de cifrare a şirurilor de date proiectat de către Ronald Rivest de la RSA Security Inc. În continuare se prezintă câteva dintre cele mai populare astfel de metode. Algoritmul internaţional de criptare de date (IDEA) foloseşte o cheie de 128 de biţi. Forţa brută nu este însă utilă pentru a decripta un mesaj de pe un calculator. şi a companiilor interesate financiar în promovarea criptografiei. în urma scanării că surfer-ul folosea un anumit program de tranzacţii bancare şi au modificat de la distanţă un fişier al acestui program astfel încât la următoarea utilizare a acestui program de către surfer să se declanşeze o plată către site-ul lor. are loc pe mai multe fronturi: tehnic. care a fost omologat în anul 2000. Criptând un mesaj deja criptat cu algoritmul DES cu ajutorul unei noi chei creşte securitatea acestuia dar aceasta poate fi crescută şi mai mult dacă se mai efectuează încă o criptare DES. etic şi social. Astfel guvernul S. Massachusetts. A fost conceput de către Bruce Schneier de la Counterpane Internet Security Inc. este un program de criptare foarte bun şi este unul dintre cei cinci candidaţi consideraţi pentru standardul AES. IDEA se foloseşte în programele PGP (de poştă electronică criptată) şi Speak Freely (un program care realizează criptarea semnalului vocal digitizat care se transmite pe Internet). concepută la ETH Zurich. cauzată de criptografie. Uneori dezbaterile se bazează pe atitudini la fel de rigide sau polarizate ca şi unele dezbateri religioase. cu excepţia celor autorizaţi să-l citească.

programul Rijndael. (2 Feistel) (1 Feistel) unde cu + s-a notat operaţia de sau-exclusiv şi cu f() s-a notat o funcţie care este dificil de inversat şi care depinde R_i and k_i. programul RC6. creat de IBM. Cheia de criptare K este utilizată pentru a genera câte o cheie k_i la fiecare iteraţie. Pentru anumiţi algoritmi de criptare un text clar care se repetă conduce la un text cifrat care se repetă. În prezent. Asta este dificil în special atunci când cei doi utilizatori se află departe. Utilizarea repetată a aceleiaşi chei slăbeşte securitatea acesteia. Cei cinci finalişti ai acestei competiţii sunt: programul Mars. În continuare se prezintă algoritmul care stă la baza standardului DES. Se folosesc formulele de recurenţă: L _{i+1} = R_i şi R_{i+1} = f(R_i. La prima iteraţie se utilizează textul clar iar rezultatul ultimei iteraţii este textul cifrat. această inversare nu este necesară pentru a descifra L_{i+1} putându-se utiliza tot funcţia f.U. Eli Biham şi Lars Knudsen.k_i) + R_{i+1} = f(L_{i+1}. Joan Daemen şi Vincent Rijmen. O altă problemă care apare atunci când 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. folosind o cheie tot de lungime fixă. din Gaithersburg. creat de Bruce Schneier. Câştigătorul acestui concurs a fost programul Rijndael. United States' National Institute of Standards and Technology (NIST). bit cu bit. ar avea o "uşă din dos" pentru a controla fişierele criptate folosind algoritmul DES. 5. În fiecare iteraţie. şi progamul Twofish.1. Inc. folosind cheia k_i şi apoi aplica funcţia sau-exclusiv între rezultatul obţinut şi R_{i+1}: L_i = f(R_i. El este un sistem de cifrare pe blocuri. programul Serpent.A. Există şi sisteme de cifrare a şirurilor care nu fac segmentarea în blocuri. O astfel de corespondenţă se numeşte funcţie hash. i. din Marea Britanie. realizat de RSA Laboratories şi Ronald Rivest de la Massachusetts Institute of Technology. deşi f este dificil de inversat. O trăsătură utilă a acestei structuri este că în fiecare iteraţie se utilizează o altă funcţie dacă cheia specifică a iteraţiei este diferită de cheile folosite în iteraţiile anterioare şi că se poate utiliza orice număr de iteraţii.U. codând textul în blocuri de lungime fixă. E clar că o astfel de comportare nu este dorită deoarece în acest caz ieşirea sistemului de criptare trădează informaţii importante despre textul clar.. rezultatul obţinut cu textul clar. creat de doi belgieni. Frumuseţea acestei structuri este că.k_i) + R_{i+1} iar: R_i = L_{i+1} 31 (3 Feistel) (4 Feistel) . care va înlocui standardul DES. Advanced Encryption Standard (AES).2. Institutul Naţional de Standardizare şi Tehnologii al S. a declanşat o competiţie pentru conceperea unui nou standard de criptare simetrică numit Standardul de Criptare Avansat.k_i) + L_i. creat de Ross Anderson. Israel şi Norvegia. Algoritmul DES Horst Feistel de la IBM a propus în anul 1973 o structură care a fost aleasă pentru algoritmul DES.Algoritmul DES este încă popular mai ales în "industria bancară". textul obţinut la sfârşitul iteraţiei anterioare este împărţit în 2 jumătăţi L_i şi R_i. care are un număr fixat de iteraţii. O soluţie posibilă pentru evitarea unui astfel de comportament este să se cripteze textul cifrat şi să se adune. Motivul principal este că există suspiciunea că Guvernul S. Această problemă revine ori de câte ori cheile trebuiesc împrospătate. Aceasta este o structură iterativă. de la Counterpane Internet Security.A.

5. calculând sau-exclusiv între f(R_i. A treia etapă.k_i) şi R_{i+1}.a. Biţii extremi.6. A patra etapă. 2.d. 1. Prima etapă.4. descrisă în continuare. din stânga şi din dreapta ai grupărilor de 6 biţi (destinaţie) sunt obţinuţi prin copierea biţilor extremi ai nybble-ului corespunzător din şirul original de 32 de biţi.m. A doua etapă. conform relaţiei (2 Feistel). 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 stângă a structurii Feistel. cel de al doilea bit al şirului obţinut după permutarea iniţială este cel de al 50-lea bit al blocului de text clar ş. se obţine L_i. 3 şi 4 iar cea de a doua constă din biţii 3. prin rotirea fiecărei jumătăţi cu unul sau doi biţi şi prin alegerea a câte 24 de biţi din fiecare jumătate rotită.7 şi 8. Şirul de biţi obţinut în urma permutării iniţiale este prelucrat apoi de o schemă de calcul dependentă de chei. foloseşte chei de câte 56 de biţi şi face 16 iteraţii ale structurii Feistel. datorită faptului că rezultatul aplicării funcţiei sau-exclusiv la două şiruri de date identice (f(R_i. 32 . iar ultimul bit al şirului obţinut după permutarea iniţială este cel de al 7-lea bit al blocului de text clar.Într-adevăr . Cheile de iteraţie sunt generate din cheia originală de 56 de biţi prin împărţirea acesteia în jumătate. rezultatul fiind salvat în una din cele 8 "cutii" de tip S (S-boxe). Salvarea (S): În fiecare cutie de tip S ajunge câte o grupare de 6 biţi căreia folosind un "selector" (construit cu cei doi biţi de la capete) i se aplică una dintre cele 4 substituţii ale celor 4 biţi centrali. Structura lui Feistel conduce deci la folosirea aceleiaşi structuri hard sau soft atât pentru criptare cât şi pentru decriptare. 0. partea dreaptă este la început expandată de la 32 la 48 de biţi. Sau-exclusiv (+): Între aceste 8 grupări de 6 de biţi şi cheia iteraţiei se efectuează sau-exclusiv. Din cele 8 grupări de câte 4 biţi centrali se obţine un şir de 32 de biţi. Algoritmul DES generează blocuri de date de câte 64 de biţi . Cei 64 de biţi ai unui bloc de text clar care urmează să fie criptat suferă o permutare iniţială 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 obţinut după permutarea iniţială este cel de-al 58-lea bit al blocului de text clar. prin considerarea sa ca o grupare de 8 nybbles (cantitate de 4 biţi) şi prin copierea celor 8 nybbles în centrele (de câte 4 biţi) ale celor 8 grupări de câte 6 biţi (existente în cadrul şirului destinaţie de 48 de biţi). De exemplu prima grupare de 6 biţi constă din biţii: 31. Ordinograma sa este prezentată în figura 1 cprt.k_i)) este şirul identic nul. Expandarea (E): În fiecare iteraţie. Decriptarea utilizează aceleaiaşi chei în ordine inversă şi cu jumătăţile stângă şi dreaptă ale blocului de 64 de biţi inversate.

prezentată în continuare. inversa permutării iniţiale: 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 biţi obţinut prin aplicarea algoritmului DES este bitul al 40-lea al pre-ieşirii. numit pre-ieşire.d. cel de-al doileea bit al şirului rezultat este cel de-al 8-lea bit al pre-ieşirii ş.Rezultatul acestei scheme de calcul. În figura 2 crpt este prezentată ordinograma de construcţie a acestei funcţii.a. este subiectul unei noi permutări. În descrierea de mai sus prezentarea funcţiei f a fost implicită. Figura 1cript. Ordinograma algoritmului DES 33 .m.

sau-exclusiv. 1 şi 2 ale şirului R în timp ce ultimii 2 biţi ai şirului E(R) sunt biţii din poziţiile 32 şi 1 ale şirului R. În acest scop se poate folosi câte un tabel de ordonare a biţilor. atunci S1(B) se determină după cum urmează: Primul şi ultimul bit al lui B reprezintă în baza 2 un număr cuprins între 0 şi 3. Şi operaţia de salvare S poate fi descrisă cu ajutorul unor tabele de selecţie a biţilor. Fiecare dintre funcţiile de selecţie S1.. Tabelul de selecţie pentru S1 are forma următoare: Număr 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 biţi.. Fie acest număr l. transformă un bloc de intrare de 6 biţi într-un bloc de ieşire de 4 biţi. Fie acest număr k. Se alege din tabel numărul 34 . Construcţia funcţiei f din algoritmul DES.S2.S8... Blocul de 48 de biţi rezultat este reprezentat ca şi o mulţime de 8 blocuri de câte 6 biţi fiecare şi se obţine prin alegerea biţilor din şirul de intrare (de 32 de biţi) în concordanţă cu tabelul următor: 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 biţi ai şirului E(R) sunt biţii din poziţile 32. În figură se remarcă cele 4 etape: expandare. Cei 4 biţi din mijlocul lui B reprezintă în baza 2 un număr cuprins între 0 şi 15.. Operaţia de expandare poate fi descrisă şi cu ajutorul unui tabel de selecţie a biţilor. Funcţia E transformă şirul de 32 de biţi într-un bloc de 48 de biţi. Figura 2 cprt. salvare şi permutare descrise mai sus.

Varianta 1 de permutare este realizată cu ajutorul următorului tabel: PC-1 35 . Calculul acestui bloc este prezentat în figura 3 crpt. Biţii 8.. 64 dintr-o cheie se folosesc pentru a asigura imparitatea fiecărui octet.. În linia 1 şi coloana 13 se găseşte 5 şi deci rezultatul este 0101. De aceea s-a afirmat că numărul de biţi ai cheii algoritmului DES este 56 deşi în figura 3 crpt blocul iniţial are doar 48 de biţi. Tabelele de selecţie pentru cutiile S2. De exemplu. adică 13. distribuirea cheilor şi stocarea cheilor.. În continuare se prezintă aceste două tipuri de operaţii... Câte un bit din fiecare octet al unei chei poate fi utilizat pentru detrecţia de erori în generara cheilor. Analizând această figură se constată că pentru generarea cheilor de criptare se fac două tipuri de operaţii: permutări şi deplasări la stânga. pentru 1<= i <= 16.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 următorului 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 funcţiei P definită de acest tabel este obţinută pe baza şirului de biţi L considerând că cel de al 16-lea bit al lui L este primul bit al lui P(L).. este un bloc de 48 de biţi. că cel de al 7-lea bit al lui L este cel de al doilea bit al lui P(L). Acesta este un număr cuprins între 0 şi 15 şi deci este reprezentat pe 4 biţi. ş.a.m. folosite în cadrul algoritmului DES.d.din linia k şi din coloana l. pentru intrarea 011011 se obţine linia 01... 16. Cheia K_i (vezi relaţia (2)). Acest bloc de 4 biţi reprezintă şirul S1(B) al lui S1 pentru intrarea B. adică 1 şi coloana 1101. În continuare se explică modul de generare a cheilor.

55.. Şirul de biţi D() este format din biţii CHEII cu numerele de ordine 63. urmat de cel de al 41lea bit al CHEII. 16.. 2..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 împărţit în două părţi... Numărul de deplasări la stânga cerut în fiecare iteraţie este specificat în tabelul următor: Numărul iteraţiei Numărul de deplasări la stânga 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 .. urmat de cel de al 49-lea bit al CHEII.urmat de cel de al 44-lea bit al CHEII şi de cel de al 36-lea bit al CHEII... Numerotând biţii CHEII de la 1 la 64. pentru n = 1. 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... 47.. Această sarcină este îndeplinită cu ajutorul operaţiilor de deplasare la stânga ale blocurilor individuale. şirul C() este format cu ajutorul celui de al 57-lea bit al CHEII.. cu cea de sus efectuându-se alegerea biţilor din şirul C() iar cu cea de jos alegerea biţilor din şirul D() .

37 . cel de al doilea bit al cheii celei de a n-a iteraţie este cel de al 17-lea al secvenţei concatenate ş. 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 secvenţei obţinută prin concatenarea şirurilor Cn Dn.m.d. Generarea cheilor de criptare în cadrul algoritmului DES.Figura 3 crpt.a.

Aceste chei nu se mai generează cu metoda descrisă în figura 3 cprt. Numărul de iteraţii este variabil. Această cheie are un număr total de 768 de biţi (16 iteraţii x 48 de biţi). Decriptarea este foarte simplă. Câte două dintre 38 . Se generează aceleaşi şiruri cheie şi se calculează sau-exclusiv între blocurile textului cifrat şi aceste şiruri cheie. dar numărul de operaţii de calcul rămâne constant. Aceşti 64 de biţi sunt însumaţi cu fiecare bloc de text clar înainte de aplicarea algoritmului DES clasic.2.La fiecare iteraţie se utilizează o cheie independentă. OFB . După ultima iteraţie a algoritmului DES se face suma modulo 2 între rezultat şi cheia transparentă. sunt împărţite în q sub-blocuri de 32 de biţi. Variante de DES DES triplu . Anumiţi biţi dintr-un bloc de text clar vor fi schimbaţi dacă blocul precedent a fost atacat. Apoi se consideră următorii (spre dreapta) k biţi din vectorul de iniţializare şi acest nou şir este criptat pentru a se obţine noul şir cheie. Patentul său se găseşte la firma Ascom. Principala sa aplicaţie este programul de criptare PGP. Rezultatul se criptează cu cheia K. Este unul dintre sistemele de criptare cele mai rapide şi mai sigure disponibile la ora actuală.Electronic Code Book . DESX. CBC . Din păcate pentru orice alegere a parametrilor. Pe lângă cheia obişnuită de 56 de biţi se mai generează şi o cheie de 64 de biţi. Acest mod de aplicare este sensibil la atacuri de tipul cut&paste.Textul clar al mesajului. Pentru a se produce textul cifrat se calculează sau-exclusiv între blocurile textului clar şi şirurile cheie. Dacă se alege un număr de 16 iteraţii şi valoarea 2 pentru q se obţine algoritmul DES clasic. de dimensiune variabilă. securitatea asigurată de GDES este mai slabă decât securitatea asigurată de DES.Cipher Block Chaining -M este din nou segmentat în blocuri de 64 de biţi. 5. În scopul decriptării. În acest mod atacurile bazate pe forţa brută devin impracticabile. Avantajul acestei variante este că poate fi implementată hard. În unele cazuri dimensiunile acestor cutii sunt variabile.2 Algoritmul IDEA A fost conceput în Elveţia de către Xuejia Lai şi James Massey în anul 1992. Se calculează funcţia sau-exclusiv între blocul curent de text clar şi blocul anterior cifrat. Această variantă a fost proiectată pentru a mări viteza algoritmului. este împărţit în blocuri de 64 de biţi şi fiecare dintre aceste blocuri este criptat folosind cheia K. Se lucrează cu blocuri de text clar de dimensiune mai mare. ci se extrag direct din cheia principală. La fiecare iteraţie se construieşte funcţia f pentru cel mai din dreapta sub-bloc. Blocurile de text clar. bazată pe o tehnică numită de transparenţă. La început se calculează sau-exclusiv între primul bloc de text clar şi un vector de iniţializare (IV). q şi număr de iteraţii. Foloseşte o cheie de 128 de biţi.Este o variantă dezvoltată la RSA Data Security Inc. DES cu sub-chei independente. fiecare bloc este prima dată descifrat folosind cheia K şi apoi se calculează funcţia sau-exclusiv între rezultat şi anteriorul bloc de text cifrat sau IV. Acestea sunt cifrate ca la ECB.Această variantă a fost deja menţionată. Este o variantă în care construcţia cutiilor S este diferită de cea descrisă mai sus. DES cu cutii S alternative.Output Feedback -Un vector de iniţializare este criptat folosind cheia K şi apoi cei mai din stânga k biţi ai rezultatului se utilizează ca şi un şir cheie. Dacă construcţia acestor cutii depinde de cheie atunci se obţine varianta de DES numită DES cu cutii S dependente de cheie. Rezultatul este însumat modulo 2 cu toate celelalte sub-blocuri de text clar care sunt apoi rotite spre dreapta. Această variantă măreşte securitatea la atacurile prin criptanaliză diferenţială şi liniară. Pe baza acesteia se construiesc 52 de sub-chei cu lungimea de 16 biţi fiecare.Moduri de aplicare ale algoritmului DES ECB . Erorile de transmisie vor afecta două blocuri. M. DES generalizat (GDES). numită cheie transparentă.

acestea se utilizează la fiecare dintre cele 8 iteraţii ale algoritmului. Structura algoritmului IDEA. C şi D. Se înmulţeşte D cu K(52). Prima iteraţie este prezentată în figura 4 crpt. Înainte sau în cursul primei iteraţii se efectuează următoarele operaţii: Se înmulţeşte A cu K(1). însumând modulo 2 aceste valori cu valoarea curentă a lui F. Rezultatul va reprezenta noua valoare a lui A. şi câte 4 se utilizează înaintea fiecărei iteraţii şi după ultima iteraţie. produsul modulo 216 +1. Prima iteraţie. Noile valori pentru A şi C se substituie una celeilalte obţinându-se astfel două dintre cele 4 blocuri iniţiale ale celei de a doua iteraţii şi anume A şi C. Descrierea algoritmului IDEA Fie cele patru sferturi ale textului clar care trebuie criptat notate cu A. 39 . suma modulo 216 . Se înmulţeşte D cu K(4). Se adună modulo 216 K(3) la C. Ultimele operaţii sunt: Se înmulţeşte A cu K(49). Se bazează pe utilizarea unor operaţii algebrice utile în operaţiile de criptare cum ar fi suma modulo 2. Se adună modulo 216 K(50) la B. Se adună modulo 216 K(51) la C. Se adună modulo 216 K(2) la B. Noile valori pentru B şi D se substituie una celeilalte obţinându-se astfel celelalte două dintre cele 4 blocuri iniţiale ale celei de a doua iteraţii şi anume B şi D. Prima iteraţie propriuzisă constă din executarea următoarelor operaţii: Se calculează suma modulo 2 dintre A şi C (rezultatul se notează cu E). Dar înmulţirea folosită în acest algoritm trebuie să fie o operaţie inversabilă. Celelalte 7 iteraţii sunt identice. doar că se folosesc celelalte sub-chei: de la K(7) la K(12) pentru cea de a doua iteraţie şi de la K(43) la K(48) pentru cea de a 8-a iteraţie. Se calculează suma modulo 2 dintre B şi D (şi se notează cu F). care reprezintă noua valoare a lui F. La ultima iteraţie nu se mai face substituţia finală dintre A şi C respectiv B şi D. Se adună modulo 216 noua valoare a lui E la F. Se înmulţeşte noua valoare a lui F cu K(6). Figura 4 crpt. S-a dovedit că IDEA este mai sigur decât DES la atacuri de criptanaliză diferenţială. Cifrarea şi descifrarea se fac pe blocuri de câte 64 de biţi. Toate aceste operaţii se efectuează asupra unor sub-blocuri de 16 biţi. Se modifică valorile lui A şi C însumând modulo 2 aceste valori cu valoarea curentă a lui E. Figura 5 crpt. şi cele 52 de sub-chei notate cu K(1) … K(52). Rezultatul reprezintă noua valoare a lui E. Rezultatul va reprezenta noua valoare a lui D. Rezultatul va reprezenta noua valoare a lui B. Operaţia de înmulţire cu zero are ca rezultat zero şi nu este o operaţie inversabilă. Cele 8 iteraţii ale IDEA sunt prezentate în figura 5 crpt. Rezultatul va reprezenta noua valoare a lui F. Rezultatul va reprezenta noua valoare a lui C. Se adună rezultatul. Numărul 216 +1 are valoarea 65537 şi este prim. Se modifică valorile lui B şi D. Nu foloseşte nici un tabel de alocare de biţi şi nici o cutie de tip S. la E. Se înmulţeşte E cu K(5). Pe baza tabelului de înmulţire specific mulţimii claselor de resturi modulo 216 +1 se constată că această operaţie este inversabilă dacă se evită înmulţirea cu zero (se elimină din tabel prima linie şi prima coloană). În continuare se dau câteva explicaţii referitoare la aceste înmulţiri. B.

Inversarea operaţiei de adunare modulo 216 se face prin calculul complementului faţă de 2.Decriptarea Cum se poate inversa o iteraţie a algoritmului IDEA. X. Întrucât variabilele folosite în iteraţiile algoritmului IDEA sunt funcţii de A + C şi B + D rezultă că cele 4 variabile pot fi recuperate. Aceeaşi proprietate este valabilă şi pentru variabilele B şi D. Apoi se efectuează o deplasare circulară la stânga a cheii originale cu 25 de poziţii şi o nouă segmentare obţinându-se următoarele 8 chei. D: An = Av + X . adunând 6 la fiecare indice al unei chei de decriptare şi scăzând 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 obţin prin segmentarea cheii originale a algoritmului IDEA în segmente de 16 biţi. Pentru prima iteraţie a algoritmului de decriptare se utilizează următoarele chei: KD(1) = 1/K(49) KD(2) = -K(50) KD(3) = -K(51) KD(4) = 1/K(52) Pentru cheile din următoarele iteraţii procedura următoare se repetă de 8 ori. când toate cele 4 blocuri se modifică în acelaşi timp ? Răspunsul se bazează pe o proprietate a sumei modulo 2. Suma modulo 2 a două variabile A şi C nu se modifică atunci când cele două variabile sunt însumate modulo 2 cu o aceeaşi variabilă. C n = Cv + X . 40 . Această procedură de deplasare la stânga şi segmentare este repetată până când se obţin toate cele 52 de chei de criptare necesare. ⇒ An + C n = Av + C v + X + X = Av + C v Se observă că variabila X a dispărut.

S2. De exemplu: 41 . S2. Cea mai impotantă particularitate a algoritmului Blowfish este metoda de generare a cheilor. Zona 2. Zona 1..0. După ultima iteraţie se calculează suma modulo 2 a jumătăţii din dreapta a blocului de biţi cu sub-cheia 17 şi se calculează suma modulo 2 a jumătăţii din stânga a blocului de biţi cu sub-cheia 18. Acestea trebuiesc generate înaintea oricărei operaţii de criptare sau de decriptare. S3. Este un algoritm de criptare bazat pe o structură Feistel. Generarea sub-cheilor se face folosind algoritmul Blowfish. Este numită şi zona P şi constă din 18 sub-chei de 32 de biţi: P1. folosind cele 18 sub-chei de iteraţie în ordine inversă..0.255. În continuare se prezintă zonele de sub-chei.2.... S4.d. Într-adevăr există două operaţii de adunare modulo 2 după ultima utilizare a funcţiei f şi numai una singură înaintea primei utilizări a funcţiei f.a.255. Se fac 16 iteraţii.255. Generarea sub-cheilor Acest proces converteşte o cheie iniţială de cel mult 448 de biţi în câteva zone de sub-chei care ocupă un spaţiu de 4168 de octeţi. Fiecare are 256 de intrări la care se aduc blocuri de câte 32 de biţi. chiar şi pentru chei scurte. Valoarea funcţiei f este ((S1(B1) + S2(B2)) + S3(B3)) + S4(B4)) unde se foloseşte adunarea modulo 2 32 . Există 4 cutii de tip S de 32 de biţi.0. Iniţializarea zonelor 1 şi apoi 2. notată cu + .1. fiecare cu 256 de intrări: S1. Blowfish foloseşte un număr mare de sub-chei.. S1.3.. S2. Este zona cutiilor de tip S. funcţia f nu foloseşte nici o sub-cheie.. Etapele de generare a cheilor sunt: 1.... Se poate face aşa deoarece se foloseşte proprietatea sumei modulo 2 demonstrată la prezentarea decriptării algoritmului IDEA. S1.. S3. Blowfish aplică funcţia f jumătăţii din stânga a blocului de text clar rezultatul fiind însumat modulo 2 cu jumătatea din dreapta a blocului. în ordine.1. P2. cu un şir fixat.. Funcţia f Blowfish foloseşte 4 cutii de tip S. Acest şir constă din partea fracţionară a numărului pi exprimată în formă hexa-zecimală. Calculul funcţiei f se bazează pe următoarea succesiune de operaţii: Se foloseşte primul octet al blocului de 32 de biţi de intrare pentru a găsi o intrare în prima cutie de tip S.1. Descriere Spre deosebire de DES. P18. S3. Apoi se aplică funcţia f blocului din stânga şi rezultatul se adună modulo 2 cu blocul din dreapta.255. La începutul fiecărei iteraţii se calculează suma modulo 2 dintre blocul din stânga şi sub-cheia corespunzătoare acelei iteraţii.. dar foloseşte cutii S care depind de sub-cheie. cel de al doilea octet pentru a găsi o intrare în cea de a doua cutie de tip S.5. În acest mod creşte securitatea sistemului de criptare împotriva atacurilor bazate pe metode exhaustive de căutare a cheilor. S4.. S4. În fiecare iteraţie se foloseşte o singură sub-cheie. La sfârşitul ultimei iteraţii se substituie una celeilalte cele două jumătăţi de bloc obţinute. Cheile iteraţiilor precum şi întregul conţinut al cutiilor de tip S sunt create prin iteraţii multiple ale sistemului de criptare de bloc. ş... Decriptarea Decriptarea se realizează la fel ca şi criptarea. A fost aleasă o funcţie f mai simplă decât în cazul algoritmului DES obţinându-se aceeaşi securitate dar o eficienţă şi cu o viteză de calcul sporite. Algoritmul BLOWFISH Acest algoritm a fost conceput de Bruce Schneier...1.0.m..

Reducerea necesităţii stocării unor structuri de date mari. etc.2. Sunt folosite 40 de sub-chei de 32 de biţi. . . Face 16 iteraţii ale unei structuri Feistel folosind o funcţie f bijectivă construită cu ajutorul a 4 cutii de tip S dependente de chei. Algoritmul TWOFISH Twofish este un algoritm de criptare a blocurilor de 128 de biţi care lucrează cu o cheie variabilă de lungime maximă de 256 de biţi. Se calculează suma modulo 2 între P1 şi primii 32 de biţi ai cheii iniţiale. 7. de exemplu dacă A este o cheie de 64 de biţi atunci AA.Implementarea cutiilor variabile este mai simplă decât cea a unor cutii fixe. Acestea sunt prezentate în continuare: . La începutul algoritmului se calculează suma modulo 2 între 4 chei şi blocul de text clar. cu ajutorul unei matrici fixe de dimensiune 4x4.Reducerea numărului de iteraţii (de exemplu de la 16 la 8). O iteraţie a algoritmului Twofish Blocul de text clar este împărţit în patru sferturi: Q0 .P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344 2.a. . 42 .Q3 . Pentru orice cheie iniţială scurtă există cel puţin o cheie echivalentă mai lungă. Această construcţie are câteva avantaje: .Se realizează o bună protecţie împotriva atacurilor prin criptanaliză liniară sau diferenţială. 4.m. 6.. Pentru generarea tuturor sub-cheilor de care este nevoie sunt necesare 521 de rulări ale algoritmului Blowfish. Se continuă procesul. Acest ciclu se repetă până când întreaga zonă 1 a fost însumată modulo 2 cu biţi ai cheii iniţiale a algoritmului Blowfish.. Există câteva modalităţi de simplificare a algoritmului Blowfish care pot conduce la reducerea volumului de memorie ocupat precum şi la creşterea vitezei. se calculează suma modulo 2 între P2 şi următorii 32 de biţi ai cheii iniţiale. cu ajutorul unor rotaţii de biţi şi cu ajutorul unei scheme de generare a cheilor.Utilizarea unui număr mai mic de cutii de tip S. înlocuind toate elementele zonelor 1 şi 2 cu rezultatele aplicării algoritmului Blowfish. O particularitate a algoritmului Blowfish este utilizarea cutiilor de tip S dependente de chei.Utilizarea unei metode neiterative de calcul al sub-cheilor. AAA. Acest algoritm poate fi implementat şi hard folosind un număr de 14000 de porţi. . sunt chei echivalente. În fiecare iteraţie sunt folosite 2 sub-chei. Liberatea de proiectare a funcţiei de iteraţie şi a sub-cheilor permite o mare variabilitate a raportului dintre viteza de calcul şi lungimea programului. Se criptează texte în clar formate numai din biţi nuli cu algoritmul Blowfish folosind sub-cheile descrise în paşii (1) şi (2). cu ajutorul unei transformări pseudo-Hadamard. Se înlocuiesc cheile P1 şi P2 cu rezultatul obţinut la pasul (3). iar la sfârşitul său se calculează suma modulo 2 între alte 4 chei şi întregul text rezultat. ş. 5.4. Se înlocuiesc cheile P3 şi P4 cu rezultatul obţinut la pasul (5). 5.d. 3. Se criptează rezultatul obţinut la pasul (3) folosind algoritmul Blowfish cu cheile obţinute la pasul (4). de dimensiuni mai mici . În acest mod s-ar putea obţine chei independente una de cealaltă. Numărul de iteraţii necesar pentru asigurarea unui anumit nivel de securitate depinde de lungimea sub-cheilor folosite. (e posibil să se depăşeasă P18).

Această procedură se repetă până când lungimea rezultatului devine egală sau mai mică decât 8. Numerotând aceste părţi începând cu zero. Cea de a doua sub-cheie pentru iteraţie este adunată la cheia formată din Q1 şi se calculează suma modulo 2 între rezultatul obţinut şi Q3. Q0 şi Q1 sunt rotite spre stânga cu 8 poziţii şi sunt trimise la cele 4 cutii de tip S dependente de subcheie care au intrări şi ieşiri de 8 biţi. Apoi se calculează suma modulo 2 dintre polinomul modul rotit şi rezultat. Acest gen de înmulţire este definit în paragraful de prezentare a bazelor matematice ale algoritmilor de criptare. Apoi se calculează suma modulo 2 dintre rezultat şi polinomul modul rotit. Apoi octeţii din fiecare cutie de tip S sunt "combinaţi" prin înmulţire matricială cu următoarea matrice (numită matrice MDS (Maximum Distance Separation)): 01 EF 5B 5B 5B EF EF 01 EF 5B 01 EF EF 01 EF 5B peste câmpul Galois al lui 28. Acesta este redus la un şir de 8 biţi folosind următoarea metodă: Polinomul modul. Fiind vorba despre octeţi este vorba despre o înmulţire modulară de polinoame cu coeficienţii din GF(28) modulo x 8 + x 6 + x 5 + x 3 + 1 . La fel ca şi la algoritmul DES cele două jumătăţi nu se schimbă între ele după ultima iteraţie. În acest fel la ieşirile celor 4 cutii de tip S se obţin 4 şiruri de 8 biţi (adică 32 de biţi pentru Q0 şi 32 de biţi pentru Q1). Cel de al treilea vector se formează împărţind cheia iniţială în blocuri de 64 de biţi şi construind o parte de 32 de biţi a vectorului cheie prin înmulţirea fiecărui bloc de 64 de biţi 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 .Q3 este rotit cu o poziţie spre stânga. iar cele cu indici impari devin M(o). Această transformare este descrisă în paragraful referitor la bazele matematice ale criptării. Apoi prima sub-cheie pentru iteraţie este adunată la cea formată din Q0 şi se calculează suma modulo 2 între rezultatul obţinut şi Q2. Rezultatul acestei înmulţiri este un şir de 16 biţi. Aceste două şiruri de 32 de biţi sunt amestecate cu ajutorul unei transformări Pseudo-Hadamard (PHT). Astfel se obţine noul rezultat. Q2 se roteşte cu o poziţie la dreapta şi cele două jumătăţi ale blocului îşi schimbă poziţia (Q0 se schimbă cu Q2 iar Q1 se schimbă cu Q3). cele cu indici pari devin M(e). Apoi se roteşte polinomul modul spre dreapta până când primul său bit coincide cu primul bit de 1 din noul rezultat. este rotit la stânga până când primul său bit coincide cu primul bit de 1 al rezultatului. Generarea cheilor Procesul de generare a cheilor începe prin construcţia vectorilor pentru 3 chei fiecare având o lungime egală cu jumătate din lungimea cheii iniţiale. La sfârşit. considerat ca şi şirul binar 101101001. Acceastă sumă reprezintă noul rezultat. Primii 2 vectori se construiesc prin împărţirea cheii iniţiale în blocuri de 32 de biţi.

Fiecare dintre cutiile de tip S fixe. Pentru q(0). şi S(3). Noua valoare a lui B este suma modulo 2 a vechilor valori ale lui A şi B rotite la dreapta cu o poziţie sau cu opt poziţii dacă vechea valoare a lui A a fost impară. 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 construieşte după cum urmează: • • • • • • • • Octetul de intrare este împărţit în părţile sale mai semnificativă şi mai puţin semnificativă. S(1). În acest caz utilizarea celor 4 cutii de tip S dependente de cheie este echivalentă cu efectuarea următoarelor operaţii: 44 .Această înmulţire matricială corespunde unei înmulţiri peste câmpul Galois al lui 28 cu polinomul modul x 8 + x 6 + x 3 + x 2 + 1 . Noile valori ale lui A şi B substituie vechile valori A şi B la intrările T2 şi T3 ale cutiilor S pe 16 biţi. cu intrări şi ieşiri de 8 biţi. S(0). Noua valoare a lui B este suma modulo 2 a vechilor valori ale lui A şi B rotite la dreapta cu o poziţie sau cu opt poziţii dacă vechea valoare a lui A a fost impară. Cuvintele rezultante cu lungimea de 32 de biţi sunt apoi plasate în ordine inversă în vectorul cheie notat S. S(2). A şi B sunt combinate apoi în ordine inversă pentru a forma octetul rezultat. 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). Noile valori ale lui A şi B substituie vechile valori A şi B la intrările T0 şi T1 ale cutiilor S pe 16 biţi. Cele 4 cutii de tip S dependente de chei se formează din elementele de 32 de biţi ale vectorului cheie S după cum urmează: Dacă cheia iniţială are o lungime de 256 de biţi atunci vectorul cheie S are 4 elemente de 32 de biţi. notate q(0) şi q(1) este construită pornind de la 4 cutii de tip S cu intrări şi ieşiri de 4 biţi. Noua valoare a lui A este suma modulo 2 a vechilor valori ale lui A şi B. A şi B. Noua valoare a lui A este suma modulo 2 a vechilor valori ale lui A şi B.

1) xor q(0)(S(2.3) xor q(0)(S(2.2) xor q(0)(S(1.0) xor q(0)(input))) output = q(1)(S(0.3) xor q(1)(input))) şi dacă cheia iniţială are o lungime de doar 128 definirea cutiilor S se simplifică şi mai mult: output = q(0)(S(0.0) xor q(1)(S(2. fie după: o rotire la stânga cu 8 poziţii se efectuează înainte de PHT iar o rotire cu 9 poziţii la stânga se efectuează după.3) xor q(1)(S(3.3) xor q(1)(input)))) unde S(2.2) xor q(1)(S(2.1) xor q(1)(S(1.output = q(0)(S(0.2) xor q(0)(input)))) output = q(1)(S(0. 45 . Dacă cheia iniţială are o lungime de 192 de biţi definirea cutiilor S se simplifică la: output = q(0)(S(0. Intrările în toţi cei patru octeţi ai unui cuvânt reprezintă numărul obţinut prin înmulţirea numărului iteraţiei cu 2 şi adunarea lui 1 iar paşii de rotire la stânga au loc fie înainte de calculul funcţiei f.2) xor q(1)(S(3.1) xor q(0)(input))) output = q(0)(S(0. prezentată în figura următoare.1) xor q(1)(S(1.3) xor q(0)(S(1.1) xor q(0)(S(2.0) xor q(0)(S(3.1) xor q(0)(S(3.0) xor q(1)(input)))) output = q(1)(S(0.3) xor q(0)(S(1. dar cu cutii de tip S dependente de chei derivate din vectorii M(e) şi M(o) şi nu din vectorul S.1) xor q(0)(input)) output = q(0)(S(0. Ordinograma algoritmului Twofish.2) xor q(0)(S(1.0) xor q(1)(S(1.1) xor q(0)(input)))) output = q(0)(S(0.0) xor q(1)(S(1. Figura 6 crpt.2) xor q(1)(input)) output = q(1)(S(0.2) xor q(1)(S(2.0) xor q(1)(S(1.2) xor q(1)(input))) output = q(1)(S(0.0) xor q(1)(S(2. Operaţiile descrise pot fi observate în schema de funcţionare a algoritmului Twofish.2) xor q(0)(S(1.1) reprezintă octetul 1 al cuvântului 2 din vectorul cheie S.3) xor q(0)(S(2.0) xor q(1)(input)) output = q(1)(S(0.3) xor q(0)(S(1.1) xor q(1)(S(1.3) xor q(0)(input)) Sub-cheile care se adună la ieşirile funcţiilor înainte de a se calcula suma lor modulo 2 cu un alt sfert de bloc sunt generate de un proces asemănător cu o iteraţie a algoritmului Twofish.

Apoi se calculează suma modulo 2 între prima sub-cheie a iteraţiei şi blocul A şi suma modulo 2 între cea de a doua sub-cheie a iteraţiei şi blocul C. RC6 se bazează pe iteraţii de structuri Feistel. se calculează suma modulo 2 între B şi S0. Un alt element neliniar utilizat în construcţia funcţiei f. valoarea lui C este plasată în B şi valaorea (originală) a lui D este plasată în C. Rezultatul aplicării funcţiei f blocului D este rotit cu 5 poziţii spre stânga şi apoi se calculează suma modulo 2 între noul şir obţinut şi blocul C. şi D.5. Fiecare bloc obţinut astfel este împărţit în 4 sferturi. notate S0 … S43. În figura următoare se prezintă ordinograma unei iteraţii a algoritmului RC6.lcs. Acestea nu operează însă asupra celor două jumătăţi ale blocului de date.edu/~rivest . Descrierea originală este disponibilă la adresa http://theory. de lungimi egale notate A. cu o cheie iniţială de lungime variabilă şi să efectueze un număr variabil de iteraţii. B. Particularitatea cea mai importantă a acestui algoritm este utilizarea unor deplasări circulare cu numere de poziţii dependente de datele de cifrat. Primii 4 octeţi criptaţi formează noul A. Algoritmul RC6 Proiectat de Ronald C. Numărul de poziţii cu care este efectuată această deplasare este specificat de cei mai semnificativi 5 biţi ai şirului obţinut prin aplicarea funcţiei f blocului D şi rotirea rezultatului cu 5 biţi spre stânga. iteraţii succesive utilizând chei succesive. Se efectuează o deplasare circulară spre stânga a blocului A.mit. Rivest. între noul rezultat şi blocul A calculându-se suma modulo 2. fiecare având lungimea de 32 de biţi.2. O iteraţie a algoritmului RC6. Între aceste iteraţii au loc transferuri de date. în anul 1998 . RC6 foloseşte 44 de sub-chei. ci asupra unor perechi de sferturi ale blocului de date. respectiv între D şi S1. O iteraţie a algoritmului RC6 se desfăşoară duă cum urmează: Rezultatul aplicării funcţiei f blocului B (f(x) = x(2x+1)). utilizat în algoritmul RC6 este o funcţie pătratică. 46 . Algoritmul este conceput în aşa fel încât să poată lucra cu blocuri de lungime variabilă. Apoi cele 4 sferturi ale blocului sunt rotite după cum urmează: Valoarea lui A este plasată în D. specifică unei structuri Feistel. Figura 7 crpt. C. Se efectuează o deplasare circulară spre stânga a blocului C. este rotit la stânga cu 5 poziţii. primul octet codat reprezentând cel mai puţin semnificativ octet al noului A. valoarea lui B este plasată în A. pentru construcţia primeia se utilizează S2 şi S3. Textul în clar este segmentat în blocuri de 128 de biţi. Numărul de poziţii cu care se face această deplasare este specificat de cei mai semnificativi 5 biţi ai şirului obţinut prin aplicarea funcţiei f blocului B şi rotirea la stânga cu 5 poziţii. RC6 începe cu un pas iniţial de albire. Fiecare iteraţie a algoritmului RC6 foloseşte 2 sub-chei.5. În continuare se prezintă varianta propusă pentru competiţia destinată construcţiei standardului AES.

c . Cutia de tip S este descrisă de matricea: 47 . Ultimul pas este constituit de ultima iteraţie care este incompletă. 13 dacă atât blocurile cât şi cheia au o lungime de 256 de biţi. Pentru a cripta un bloc de date cu algoritmul Rijndael.După încheierea celei de a douăzecea iteraţii are loc un pas suplimentar de albire: se claculează suma modulo 2 între A şi S42. 192 sau 256 de biţi. Iteraţiile algoritmului Fiecare iteraţie obişnuită se efectuează în 4 paşi. Paşii următori sunt iteraţiile care se vor prezenta în continuare.2. Descrierea originală a algoritmului Rijndael se găseşte la adresa: http://www. Rijndael are un număr variabil de iteraţii. Standardul AES.6. 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.kuleuven.esat. 11 dacă fie blocurile fie cheia iniţială au lungimea de 192 de biţi şi nici una dintre ele nu are o lungime superioară acestei valori. ….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. neconţinând operaţia de amestecare a coloanelor. Generarea cheilor în cadrul algoritmului RC6 se realizează cu metoda descrisă în următorul program. the Byte Sub step.…. În continuare se prezintă varianta care lucrează cu blocuri de 128 de biţi.1] Number r of rounds Output: w-bit round keys S[0. respectiv între C şi S43.be/~rijmen/rijndael/ .ac. the Mix Column step. Acesta realizează doar operaţii pe octeţi întregi. În acest pas fiecare octet al textului clar este substituit cu un octet extras dintr-o cutie de tip S. Acesta poate fi (fără a calcula ultima iteraţie care nu este completă): • • • • 9 dacă atât blocurile cât şi cheia iniţială au o lungime de 128 de biţi. Primul pas este cel de substituire al octeţilor. primul pas presupune calculul unui sauexclusiv între blocul de text clar şi o sub-cheie. Input: User-supplied b byte key preloaded into the cword array L[0. Advanced Encryption Standard (Rijndael) Algoritmul care a câştigat competiţia pentru standardul AES este numit Rijndeal. El este foarte flexibil deoarece dimensiunea blocurilor cu care se lucrează poate fi aleasă de valoare 128.

O iteraţie a algoritmului Rijndael. Cel de al doilea pas al unei iteraţii uzuale se numeşte deplasarea liniilor. the Shift Row step.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. 48 .

Cel de al patrulea pas al algoritmului Rijndael este cel de adăugare a sub-cheii. Această înmulţire (folosind acelaşi polinom modul) a fost prezentată şi exemplificată în paragraful destinat bazelor matematice ale criptării. 49 . Acesta presupune doar calculul unui sau-exclusiv cu sub-cheia specifică iteraţiei curente.Considerând că blocul care trebuie construit este alcătuit cu octeţii numerotaţi de la 1 la 16. Octeţii care trebuie înmulţiţi sunt priviţi ca şi polinoame şi nu ca şi numere. O iteraţie uzuală a acestui algoritm are aspectul din figura următoare (care este o variantă a figurii 8 crpt). este înmulţită cu matricea: 2311 1231 1123 3112 Această înmulţire matricială corepunde unei înmuţiri specifică câmpului Galois al lui 28. Dacă rezultatul acestei înmulţiri are mai mult de 8 biţi. the Add Round Key step. definită de polinomul modul x 8 + x 4 + x 3 + x + 1 . De exemplu prin înmulţirea unui octet cu 3 se obţine rezultatul operaţiei sau-exclusiv dintre acel octet şi şi varianta sa obţinută prin rotirea acelui octet cu o poziţie la stânga. Figura 9 crpt. aceşti octeţi 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. O altă reprezentatre grafică a unei iteraţii a algoritmului Rijndael. Pentru eliminarea lor se calculează sau-exclusiv între rezultatul obţinut (în urma "înmulţirii" deja efectuate) (deplasat la stânga dacă este necesar) şi şirul binar cu lungimea de 9 biţi. 100011011 (care corespunde polinomului modul). Acest pas se realizează prin înmulţire matricială: fiecare coloană. biţii suplimentari nu sunt pur şi simplu ignoraţi. în aranjamentul pe care l-am observat.

Operaţia de sau-exclusiv din cadrul pasului MC (M) este de fapt identică cu operaţia de adunare definită pe câmpul Galois al lui 28 ... E clar că nu este suficientă inversarea ordinii paşilor folosiţi la criptare pentru a se face decriptarea ci trebuie inversate şi operaţiile care compun aceşti paşi. BS SR MC ARK BS SR ARK Deşi această secvenţă nu este simetrică.. în procesul de decriptare este necesară inversarea matricii cu care se înmulţeşte fiecare vector. 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 . deoarece operaţia de înmulţire a matricilor este distributivă în raport cu operaţia de adunare pe câmpul Galois al lui 28 .. BS (notat cu B în relaţiile (1R) şi (2R)). Nu acelaşi lucru se poate spune despre ceilalţi paşi. ordinea unor operaţii poate fi modificată fără ca procesul de criptare să fie afectat.Din ultima iteraţie este omis pasul de amestecare a coloanelor. Pentru inversarea pasului ARK trebuie inversată funcţia sau-exclusiv. Această observaţie este utilă pentru procesul de decriptare. Dar această inversare se realizează tot cu funcţia sau-exclusiv.. Este de exemplu cazul pasului de amestecare a coloanelor. Decriptarea Pentru a decripta mesajul fabricat de algoritmul Rijndael este necesar ca operaţiile descrise să fie înlocuite cu operaţiile lor inverse şi ca acestea să fie aplicate în ordine inversă (prima operaţie din algoritmul de decriptare trebuie să fie inversa ultimei operaţii din algoritmul de criptare). Revenind la relaţiile (1R) şi (2R) este legitimă întrebarea: Trebuie inversată ordinea secvenţei paşilor "MA" şi "AM" pentru decriptare ? Răspunsul este Nu. la fel ca la criptare (bineînţeles cheile de iteraţie trebuiesc luate în ordine inversă în raport cu ordinea folosită la criptare). La fel trebuie procedat şi cu matricea cutiei de tip S din pasul de substituţie a octeţilor.. AMSB AMSB A (2R) Comparând secvenţele (1R) şi (2R) se constată că pe lângă diferita poziţionare a spaţiilor (acestea marchează începutul unei noi iteraţii a algoritmului de criptare) singura diferenţă care mai apare este că grupurile "MA" din (1R) sunt înlocuite cu grupuri "AM" în (2R)... de forma: A BSMA BSMA . trebuiesc înmulţite cu inversa matricii de amestecare a coloanelor şi apoi se pot calcula funcţiile sau-exclusiv. SBMA SBA (1R) Pentru fiecare pas s-a folosit notaţia bazată pe prima literă a denumirii engleze a pasului. De aceea pasul ARK nu trebuie inversat la decriptare. Făcând această inversare secvenţa algoritmului. Dacă se inversează secvenţa care descrie algoritmul se obţine: ASB AMSB . poate fi la fel de bine făcut şi după pasul de deplasare a liniilor SR (notat cu S în continuare). implicate în procesul de inversare al pasului de amestecare a coloanelor. BSMA BSA se transformă într-o secvenţă de forma: A SBMA SBMA . De exemplu pasul de substituire a octeţilor BS (notat cu B în continuare). De aceea cheile de iteraţie. Succesiunea paşilor în algoritmul Rijndael este: ARK BS SR MC ARK BS SR MC ARK . (notat cu M în relaţiile (1R) şi (2R)) pentru inversarea căruia. MC.

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. cuvântul iniţial (cel curent pentru iteraţia respectivă) este pentru început rotit cu opt poziţii spre stânga. Pentru stabilirea primului cuvânt dintr-o anumită variantă. iar apoi se calculează sau-exclusiv între primul octet al rezultatului obţinut anterior şi o constantă dependentă de iteraţie. 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 foloseşte o cheie iniţială cu lungimea de 128 biţi sau de 192 de biţi. 51 . se obţin din cheia iniţială (prima subcheie fiind chiar cheia iniţială) sau din variante ale cheii iniţiale şi au aceeaşi lungime cu aceasta. Fiecare cuvânt se obţine calculând sau-exclusiv între cuvântul anterior de 4 octeţi şi cuvântul corespunzător dintr-o variantă anterioară sau rezultatul aplicării unei funcţii acestui cuvânt (din varianta precedentă). puterile lui 2 succesive în reprezentarea din câmpul Galois al lui 28 folosit. Subcheile sunt alcătuite din cuvinte de 4 octeţi. apoi octeţii săi sunt modificaţi folosind cutia de tip S din pasul de substituţie a biţilor BS (B) corespunzător.. Constantele dependente de iteraţie 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.... toate subcheile necesare pentru toate iteraţiile.iar forma sa binară.

sunt transmise destinatarului. pe care să-l poată citi doar Alice. Ei oferă o cale pentru ca expeditorul să semneze mesajul pe care doreşte să-l expedieze. Alice face acelaşi lucru. Bob şi Alice pot acum schimba între ei fişiere criptate. aşa cum se vede în partea de sus a figurii 10 crpt. 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ă. distribuit liber. care se folosea atât pentru criptare cât şi pentru decriptare. Cel mai simplu exemplu de astfel de funcţie este cea care asociază o sumă de control textului clar. Un mesaj criptat cu una dintre cheile din această pereche de chei poate fi decriptat doar cu cealaltă cheie din aceeaşi perche. de exemplu îl transformă cu ajutorul unei funcţii. Bob şi Alice au câte o copie a soft-ului. folosită în criptarea simetrică a textului clar. semnătura putând fi verificată de oricare dintre ceilalţi utilizatori ai reţelei fără ca aceştia să fie capabili să semneze un alt mesaj şi să pretindă că acesta vine din partea expeditorului considerat. De fapt. de la universitatea Stanford şi de fostul său student Whitfield Diffie. Algoritmi de criptare cu cheie publică Algoritmii criptografici prezentaţi până acum erau simetrici: cei doi corespondenţi. conţinând mesajul şi cheia secretă. de criptare cu cheie publică.5. Este foarte dificil să se modifice textul clar fără a modifica valoarea obţinută prin aplicarea funcţiei amintită mai sus. Apoi fişierele criptate. trimiterea unui mesaj criptat de la Alice la Bob este acum clarificat.3. Funcţionarea acestei metode de criptare este descrisă în continuare. Aceşti algoritmi mai oferă şi o altă funcţie de securitate importantă. Denumirea engleză a acestor funcţii este hash functions. figura 11 crpt. O schemă ingenioasă care evită multe dintre problemele criptării simetrice a fost propusă în anul 1976 de profesorul Martin Hellman. Autentificarea mesajului. Dacă Bob vrea să cripteze un mesaj. Cea de a doua cheie nu poate fi generată matematic folosind doar prima cheie. aceasta devenind cheia sa publică. Fiecare foloseşte copia proprie pentru a crea o perche de chei. Web browser. sau când se obţine un certificat de securitate. Schema lor de criptare cu cheie publică a fost prima dată prezentată într-un articol din revista IEEE Transactions on Information Theory. dar acest mesaj va putea fi decodat doar cu ajutorul cheii secrete a lui Alice. după ce l-a criptat cu cheia sa secretă. expeditorul şi destinatarul cunoşteau amândoi o cheie (secretă pentru orice alt utilizator al reţelei). Un dezavantaj al criptării cu cheie publică este că solicită un volum de calcul mai important decât criptarea simetrică. permite destinatarului să verifice şi dacă expeditorul este el cel declarat în cadrul mesajului şi dacă mesajul a fost cumva falsificat de către un alt utilizator. De aceea prima problemă de securitate a acestor algoritmi este distribuţia acestei chei secrete. ale cărei valori sunt dificil de calculat cu metode numerice. Autentificarea expeditorului este operaţia de verificare a identităţii dintre expeditor şi persoana care pare să fie (pe baza mesajului) expeditorul. Algoritmii de criptare cu cheie publică pot rezolva această problemă asigurând canale de securitate secrete pentru distribuirea acestei chei. de la un vânzător on-line sau creat local folosind soft specializat. Dacă ne referim la atacuri bazate pe forţă brută (se face căutarea exhaustivă a cheii încercând toate posibilităţile) atunci se poate afirma că un algoritm de criptare simetrică care foloseşte o cheie 52 . Criptarea cu cheie publică este utilizată de câţiva ani la construcţia oricărui căutător pe INTERNET. Să presupunem că Bob trimite tuturor utilizatorilor reţelei un mesaj. Oricare dintre utilizatori poate folosi cheia publică a lui Bob pentru a decripta acest mesaj. Bob face cunoscută una dintre cheile din perechea sa. care devine cheia sa privată. Şi această operaţie poate fi realizată folosind criptarea cu cheie publică. acesta fiind un avantaj major asupra comunicaţiilor bazate pe criptarea simetrică. reprezintă operaţia de validare a faptului că mesajul recepţionat este o copie neatinsă a mesajului trimis. Această metodă de criptare se utilizează de asemenea atunci când se transmit informaţii referitoare la cartea de credit. Procesul invers. adeverind că acesta este un mesaj care ar putea veni numai de la Bob. Fiecare păstrează secretă cealaltă cheie din pereche. Să presupunem că înainte de a expedia un mesaj. atunci el foloseşte cheia publică a lui Alice (care este disponibilă tuturor). la un vânzător on-line sau când se transmite un email folosind protocolul standard S/MIME. fără a avea vreun canal sigur pentru transmiterea cheilor. Bob efectuează o operaţie criptografică asupra acestuia.

Algoritmii de criptare cu cheie publică pot fi atacaţi şi datorită faptului că cei doi corespondenţi nu au la dispoziţie un canal sigur prin care să-şi poată confirma identitatea unul celuilalt. dar care în fapt să aparţină unei a treia părţi. Massachusetts Institute of Technology. care o vechime de 22 de ani. şi Leonard Adleman de la MI. Această schemă permite ca filiere criptate să fie expediate în absenţa unui canal sigur de transmitere a cheilor secrete.secretă (este vorba despre cheia iniţială) de 128 de biţi este la fel de rezistent ca şi un algoritm de criptare cu cheie publică a aceluiaşi text clar care foloseşte chei de 2304 biţi. Altfel spus. Figura 10crpt. în timp ce "spargerea" unei chei secrete pentru un algoritm de criptare simetrică compromite un singur mesaj. În criptarea cu cheie publică (sus). Cambridge. Este vorba de atacul numit om-la-mijloc (jos). De fapt cheia publică ar trebui să aibă o lungime şi mai mare deoarece aceeaşi pereche de chei publică şi secretă este folosită pentru a proteja toate mesajele la acelaşi destinatar. 53 . Denumirea îi vine de la numele creatorilor săi: Ronald Rivest. Încă nu se cunoaşte nici o metodă de apărare împotriva unui astfel de atac. "spargerea" unei perechi de chei pentru un algoritm de criptare cu cheie publică compromite toate mesajele primite de un anumit destinatar. Este situaţia prezentată în partea de jos a figurii 10crpt. Alice criptrază un mesaj folosind cheia publică a lui Bob şi Bob îl decriptează folosindu-şi cheia privată.Unul dintre algoritmii de criptare cu cheie publică cel mai des folosit este algoritmul RSA. Este totuşi posibil ca Alice să primească o cheie publică (sau cheie convenţională simetrică) care să pară că vine de la Bob. un mare avantaj faţă de criptarea simetrică. Adi Shamir. care susţine că este Bob.

De fapt cu ajutorul său poate fi generată o cheie secretă pe baza unor chei publice. confirmând în acest fel integritatea mesajului. Fiecare aplică o anumită funcţie hash numărului pe care l-a ales. Proprietăţile sale de securitate se bazează pe dificultatea de a discretiza valorile unei funcţii logaritmice într-un câmp finit generat de un număr prim de valoare mare. Funcţionarea sa este următoarea. Criptarea cu cheie publică îi dă lui Alice posibilitatea să verifice că un mesaj care vine de la Bob este într-adevăr de la el şi că acesta este identic cu mesajul original. criptează textul clar cu cheia publică a lui Alice şi îi transmite ei ambele fişiere.3. După ce unul dintre colegii săi a publicat pe Internet algoritmul PGP. În prezent o cheie cu lungime mai mare sau egală decât 1024 de biţi este. suficient de sigură. Acest algoritm se consideră sigur dacă se utilizează chei suficient de lungi şi generatoare de chei performante. Departamentul justiţiei din Guvernul S. De departe cea mai populară metodă de criptare cu cheie este PGP. Algoritmul Diffie-Hellman De fapt inventatorul acestui algoritm este englezul Malcolm Williamson iar anul primei sale menţionări este 1974.A. Apoi Alice decriptează textul cifrat recepţionat folosind cheia sa secretă. îşi aleg fiecare câte un număr. pentru posibila violare a legilor S. privind exportul produselor de criptare.A.U. decriptează valoarea funcţiei hash folosind cheia publică a lui Bob. Algoritmul de criptare cu cheie publică Diffie-Hellman este folosit mai ales pentru schimbul de chei.U. confirmând astfel autenticitatea expeditorului şi compară valoarea decriptată a funcţiei hash cu una pe care ea o calculează local pe baza textului decriptat. Apoi Zimmermann a fondat o intreprindere pentru comercializarea PGPului. a început să-l investigheze pe Zimmermann.Proprietăţile sale de securitate provin din dificulatea de a factoriza numere prime de valori mari. Totuşi algoritmul RSA poate fi vulnerabil la "atacuri cu textul clar ales". poate fi utilzat ca şi o cheie secretă de criptare. Acest algoritm a fost creat în anul 1991 de un programator. în general. Acestea sunt atacuri pentru care criptanalistul posedă un fişier de text clar şi textul cifrat corespunzător obţinut prin criptarea cu algoritmul de cifrare investigat. 5. care cunosc aceeaşi cheie publică. Figura 11crpt. De aceea acest produs poate fi utilizat ca şi o cheie publică de criptare iar produsul celor două numere orignale. Cele două părţi. Aici se vede cum: Bob criptează valoarea funcţiei hash cu cheia sa secretă. expeditorul şi destinatarul. Funcţia hash utilizată în metoda Diffie-Hellman este A la puterea x modulo P. pe nume Philip Zimmermann ca un mijloc de protejare al e-mail-urilor. Deşi nu este util la criptarea directă a vreunui mesaj. alese de cele două părţi. Se consideră că această operaţie este chiar mai dificilă decât operaţia de factorizare a unor numere foarte mari. acest algoritm este folositor pentru trimiterea de measaje secrete. folosind cheia publică şi transmit rezultatul celeilalte părţi. Aceste rezultate sunt utile deoarece acum fiecare parte posedă rezultatul aplicării funcţiei hash numărului ales de ea precum şi rezultatul aplicării funcţiei hash numărului ales de cealaltă parte iar produsul acestor rezultate este acelaşi. pretty good privacy . Acuzaţiile împotriva sa au fost anulate în anul 1996. 54 .1. Aceasta nu este o funcţie inversabilă pe mulţimea numerelor întregi.

să-l determine pe A la puterea x ori y modulo P.3. Fiecare parte poate calcula apoi A la puterea x ori y modulo P (expeditorul ridică la puterea x numărul primit de la destinatar iar destinatarul ridică la puterea y numărul primit de la expeditor). Se calculează d. modulo un număr N. Cunoscând numărul N utilizat ca şi modul precum şi prima putere folosită se poate determina cu uşurinţă care a fost cea de a doua putere folosită. Algoritmul RSA (Rivest-Shamir-Adleman) Metoda RSA este aproape singura metodă "adevărată" de criptare cu cheie publică.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. Ea a fost publicată în anul 1977. Cheia secretă rezultă cu ajutorul lui n şi d. numărul original poate fi recuperat prin ridicarea rezultatului la o altă putere (e) modulo acelaşi număr. Orice alt utilizator al aceleiaşi reţele poate avea acces la numerele A la puterea x modulo P. cu care începe capitolul despre criptare). Pentru o funcţionare sigură a metodei Diffie-Hellman trebuie alese cu grijă constantele A şi P. Notând cu x numărul ales de expeditor şi cu y numărul ales de destinatar. iar cel de al doilea A la puterea y modulo P. S-a demonstrat însă recent că de fapt această metodă a fost inventată în anul 1973 de către Clifford Cocks. D( X ) = E ( X )d mod( p ⋅ q ) . Algoritmul RSA se bazează pe următoarele fapte matematice: Dacă se ridică un număr la o putere (d). respectiv A la puterea y modulo P. ϕ(N))=1. 5. Un exemplu de utilizare a metodei Diffie-Hellman pentru schimbul de chei. dar nu poate. primul va transmite A la puterea x modulo P. 55 . pe baza lor. Cu ajutorul lui N şi e rezultă cheia publică. .decriptarea mesajului X. Un exemplu de funcţionare a metodei Diffie-Hellman este prezentat în figura următoare. Algoritmul RSA are următoarele etape: . care reprezintă inversa lui e în raport cu operaţia de înmulţire modulo ϕ(N) (o explicaţie pentru utilizarea acestui modul este prezentată în paragraful referitor la bazele matematice ale criptării. iar cmmdc(e.2.Figura 12 crpt.

De aceea o soluţie pentru d va fi şi inversa lui e modulo (p-1)(q-1)/2 (aşa cum s-a arătat în paragraful referitor la bazele matematice ale criptării). 5. pentru a obţine o criptare (prin ridicarea la puterea e modulo pq) convenabilă şi rapidă. 257. În figura următoare se prezintă un exemplu de utilizare al algoritmului RSA. Bineînţeles pentru a putea folosi algoritmul RSA nu este suficientă doar descrierea sumară făcută până acum. Un exemplu de aplicare a algoritmului RSA. (p-1)(q-1)/2)=1 (2 RSA) De obicei e se alege dintre următoarele numere: 3. 56 .Cum se poate calcula o valoare inversă modulo (p-1)(q-1) ? .Cum se pot alege 2 numere prime foarte mari ? . Condiţia (1 RSA) devine: cmmdc(e. sau 65537. În consecinţă aceste numere au pe 2 ca şi factor comun. De aceea numerele p-1 şi q-1 vor fi pare.Cum se face o ridicare la putere modulo pq ? Figura 13 crpt... = X şi se compară cu X. 17. (p-1)(q-1))=1 (1 RSA) Deoarece p şi q sunt două numere prime foarte mari ele trebuie să fie numere impare. E necesar să se găsească răspunsuri la cîteva întrebări: . Inversarea lui e După cum s-a arătat d este inversa lui e modulo (p-1)(q-1).Dacă se doreşte semnarea unui mesaj X atunci semnătura poate fi generată cu formula: S (X ) = X d Pentru a verifica o semnătură se calculează: V (S ( X )) = (S ( X ))e mod( N ) = . fiind respectată condiţia: cmmdc(e.

soluţia acestei ecuaţii. putându-se afirma că valoarea celui mai mare divizor comun este 1. Dacă s-a demonstrat că 2 numere sunt prime între ele atunci inversul lui s modulo b poate fi determinat pe baza valorilor intermediare obţinute prin aplicarea algoritmului lui Euclid. Dacă r devine 1 atunci algoritmul se poate opri mai devreme.Se repetă pasul anterior până când r devine zero. . În continuare se prezintă paşii algoritmului lui Euclid. Noua valoare a lui b va fi vechea valoare a lui s şi noua valoare a lui s va fi r. În acest caz cele două numere sunt prime între ele. Într-adevăr. d. cu ajutorul căruia se poate găsi cel mai mare divizor comun a două numere.Verificarea condiţiei (2 RSA) poate fi realizată folosind algoritmul lui Euclid. Dacă cel mai mare divizor comun al acestor numere este 1 atunci ele sunt prime. Memorarea valorilor câtului trebuie făcută într-o memorie de tip stivă. E clar că folosirea algoritmului lui Euclid permite şi obţinerea răspunsului la întrebarea legată de găsirea a două numere prime de valori foarte mari. 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 obţine restul 1 (asta înseamnă că s-a ajuns la penultima iteraţie a algoritmului) atunci înseamnă că are loc relaţia: b(i)-s(i)*q(i)=1 (4 RSA) unde q(i) este câtul împărţirii efectuate la pasul i. şi: b(i-1)-s(i-1)*q(i-1)=r(i-1). Se doreşte găsirea unei ecuaţii de forma: 1=s(0)*d-b(0)*n unde s(0)=e. Într-adevăr împărţind orice număr la 1 se obţine restul zero. Pentru cazul algoritmului RSA valoarea iniţială a lui b este (p-1)(q-1)/2 iar valoarea iniţială a lui s este e. Valoarea lui r din pasul anterior reprezintă cel mai mare divizor comun. De aceea relaţia (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 . r(i-1)=s(i).Se împarte b la s şi restul obţinut se notează cu r. b(0)=(p-1)(q-1)/2 şi n este un număr întreg arbitrar. Aceasta este de forma ecuaţiei (3 RSA). Fie b cel mai mare dintre aceste două numere şi s cel mai mic dintre ele. Din prezentarea anterioară a algoritmului lui Euclid rezultă că acesta este descris de următoarele relaţii: s(i-1)=b(i). Deci când se foloseşte 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 câtului împărţirii la fiecare pas al algoritmului. .

d. Acest proces se poate repeta mergând înapoi (faţă de sensul în care s-a iterat algoritmul lui Euclid) spre b(0) şi s(0) pentru a găsi inversa dorită. Folosind relaţiile: s(i-2)=b(i-1). . Factorizarea numerelor mari este o operaţie dificilă. deoarece numărul care trebuie factorizat este produsul a două numere impare diferenţa acestora va fi un număr par. iar cei doi factori vor fi exprimaţi în forma a+b şi a-b. a unui text criptat cu algoritmul RSA. este algoritmul lui Fermat. . Un algoritm de factorizare îmbunătăţit. Se memorează rezultatul conversiei. Într-adevăr dacă primul factor identificat ar fi mai mare decât radical din N atunci şi al doilea factor care ar putea fi identificat ar trebui să fie mai mare decât radical din N. Bitul cel mai puţin semnificativ va fi a(1) iar bitul cel mai semnificativ va fi a(n). O îmbunătăţire a acestei metode se bazează pe faptul că este suficient dacă se încearcă numerele prime mai mici decât radicalul numărului testat. Acesta se bazează pe formula produsului sumei prin diferenţă. În continuare se prezintă algoritmul lui Fermat pentru factorizarea numărului 319 (care este produsul dintre numerele prime 11 şi 29). Calea cea mai simplă este să se împartă numărul cu fiecare număr prim mai mic decât el. O altă metodă de înmulţire este metoda Schönhage-Strassen. descompunerea lui N în factorii săi primi p şi q poate fi o cale de decriptare ilegală. Această metodă de înmulţire are la bază transformarea Fourier rapidă. Algoritmul are următoarele etape: .Fie rezultatul egal cu 1. 2 2 (a+b)*(a-b) = a -b (1 Fermat) Astfel. relativ uşor de înţeles. cracking.Se converteşte puterea dorită în binar şi se notează cu n lungimea obţinută. 58 . pe baza unei relaţii de tipul (3RSA). ceea ce este absurd. Acesta se bazează pe încercări repetate de verificare a relaţiei (1 Fermat) pentru valori consecutive ale lui a.-q(i)*b(i-1)+(1-q(i)*q(i-1))*s(i-1)=1 Se remarcă faptul că şi aceasta este de tipul relaţiei (3 RSA). Pentru ridicare la pătrat rezultat=rezultat * bază . Dar în acest caz produsul acestor factori ar fi mai mare decât N. Dacă restul împărţirii este zero atunci numărul testat care a condus la acest rest este un factor al lui N.Se repetă pasul anterior până când se ajunge la puterea dorită. Această metodă merită să fie utilizată doar pentru numere foarte mari (mai mari decât numerele folosite în metoda de criptare RSA). 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 relaţia (5 RSA)) pentru a-l exprima pe 1 ca şi o sumă de multiplii de b(i-2) şi s(i-2).Numărul care se va ridica la putere se numeşte bază. Există şi alte îmbunătăţiri posibile ale metodei de factorizare. Ea poate fi utilizată de exemplu pentru calculul puterii un million a numărului pi. Ridicarea la putere a numerelor mari Algoritmul folosit pentru ridicarea la putere a unor numere mari modulo un număr specificat se bazează pe o metodă de înmulţire numită Russian Peasant Multiplication şi presupune înmulţiri repetate. unde a şi b sunt doi întregi pozitivi. Factorizare Deoarece d poate fi obţinut din e de îndată ce este cunoscut (p-1)(q-1).

În consecinţă dacă N este suficient de mare şi dacă p şi q sunt aleşi aleator atunci este foarte dificilă factorizarea lui N. Valoarea lui a la pătrat devine 361.Rădăcina pătrată a lui 319 (care reprezintă membrul stâng al relaţiei (1 Fermat)) este 17. Dacă este necesară factorizarea numărului 321. 59 . cu diferite chei publice.. Algoritmul de factorizare al lui Fermat este rapid doar dacă cei doi factori au valori apropiate. Shamir şi Adelman au sugerat utilizarea unor numere p şi q de câte 100 de cifre. Rivest. Acesta este în sfârşit un pătrat perfect. limited plain text attack. Dar 5 nu este un pătrat perfect. Un alt atac împotriva metodei de criptare cu cheie publică RSA este aşa numitul atac cu text în clar limitat.86057. adică 19. Dacă i se dă lui a valoarea 18 atunci a la pătrat este egal cu 324 şi conform relaţiei (1 Fermat) valoarea lui b la pătrat este 5. Dar nici această valoare nu reprezintă un pătrat perfect. Se constată că s-a realizat factorizarea dorită.. De aceea i se dă lui a valoarea următoare. folosind algoritmul RSA şi să-l identifice pe cel transmis la un moment dat comparându-l cu toate textele cifrate pe care le-a obţinut. un atacator ar putea să le cripteze pe toate. Valoarea lui 20 la pătrat este de 400. În consecinţă factorii a+b şi a-b sunt de valori 29 şi 11.. În acest caz valoarea lui b la pătrat devine 42. de exemplu (care este produsul dintre numerele prime 3 şi 107) atunci deoarece iniţializarea algoritmului lui Fermat se realizează cu valoarea 18 (partea întreagă a rădăcinii pătrate a numărului 321 este 17). Pentru factorizare ar putea fi necesar un număr mare de ani de calcul. Diferenţa dintre 400 şi 319 este de 81. pentru a ajunge la factorul 107 sunt necesare 89 de iteraţii. De aceea i se dă lui a valoarea 20. Dacă există un număr mic de mesaje care trebuiesc transmise. cea ce face ca N să aibă 200 de cifre. Deoarece b la pătrat ia valoarea 81 rezultă că valoarea lui b este 9.

modulo P. . PKCS #12:Standardul de sintaxă de schimb de informaţie personală. sunt specificaţii produse de către laboratoarele RSA.5.U. cu ajutorul unui algoritm de rezumare (ca de exemplu MD5) şi apoi un şir de octeţi.expeditorul alege numărul x şi transmite A la puterea x modulo P. conform regulilor de sintaxă prezentate în standardul PKCS #7. digital envelopes. PKCS #7:Standardul de sintaxă al mesajelor criptografice PKCS #8:Standardul de sintaxă al cheilor secrete. cu A la puterea xy modulo P. 5. Algoritmul El Gamal Algoritmul de schimb de chei Diffie-Hellman a fost descris pe baza următoarelor operaţii: .rsasecurity. Se intenţionează ca acest standard să se utilizeze în construcţia semnăturilor digitale şi a "plicurilor" digitale. PKCS #4: O notă explicativă referitoare la standardul PKCS#3. PKCS #9:Tipuri de atribute selectate. PKCS #11:Standardul de interfaţă criptografică de tip token. Primul a fost publicat în 1991. PKCS #13: Standardul de criptografie cu curbe eliptice. PKCS #3:Convenţia de schimbare de chei Diffie-Hellman.com/rsalabs/pkcs/index. Scopul standardului PKCS#1 este să permită cifrarea datelor folosind metoda de criptare cu cheie publică RSA. După cum se vede nimic nu împiedică destinatarul să declare ca şi cheie publică A la puterea y modulo P. i se transmite propria cheie publică. PKCS #15: Standardul de format al informaţiei criptografice de tip token. adăugândui la început A la puterea x. permiţând oricărui alt utilizator al reţelei să transmită un mesaj pe care expeditorul să-l citească. SET.3. care dă titlul acestui paragraf. S/MIME şi SSL. PKCS #5: Standard de criptografie bazată pe parole. Conţinutul precum şi rezumatul mesajului criptat sunt reprezentate împreună. A la x modulo P şi apoi mesajul. după ce l-a ales pe x şi să-l retransmită criptat cu cheia A la puterea xy modulo P. Algoritmul El Gamal poate fi considerat ca şi un caz particular al acestei metode. Public-Key Criptography Standards. aşa cu este prezentat în standardul PKCS #7. Numeroase contribuţii prezentate în aceste standarde au ajuns să fie părţi ale unor standarde elaborate de institute speciale de standardizare. Această aplicaţie este compatibilă cu metodele de protejare a poştei electronice de tipul PEM. • Pentru semnături digitale conţinutul care trebuie semnat este prima dată redus la un rezumat. conţinutul care trebuie introdus în plic este prima dată criptat cu o metodă de criptare simetrică (care foloseşte o cheie secretă) folosind un algoritm corespunzător (de exemplu 60 . Aceste standarde sunt publicate la adresa: http://www. În algoritmul El Gamal pentru a transmite un mesaj unui corespondent a cărui cheie publică este A la puterea y modulo P. PKCS #6:Standardul de sintaxă a certificatelor (de autentificare) extinse. cum ar fi documentele X9 ale ANSI sau PKIX. Standardul de criptare cu cheie publică PKCS#1 Standardele de criptare cu cheie publică. PKCS #2: O notă explicativă referitoare la standardul PKCS#1. PKCS #10:Standardul de sintaxă de cerere a unui certificat.destinatarul alege numărul y şi transmite A la puterea y modulo P. conţinând rezumatul mesajului este criptat cu cheia secretă RSA a semnatarului conţinutului.3.html La această adresă se găsesc următoarele documente: PKCS #1:Standardul criptografic RSA. Privacy-Enhanced Mail • Pentru "plicuri" digitale. S-a ajuns în prezent ca în multe lucrări de specialitate să se facă referiri la aceste standarde şi ca ele să fie frecvent implementate.apoi ambele părţi comunică folosind ca şi cheie publică A la puterea xy modulo P. . din S. formând o semnătură digitală.A cu scopul de a accelera dezvoltarea criptografiei cu chei publice.4. Algoritmul El Gamal poate fi utilizat şi pentru generare şi autentificare de semnături. PKCS. care este criptat prin înmulţirea sa.

cheia secretă a destinatarului. . cheia publică a expeditorului. Standardul defineşte şi trei algoritmi de semnare a certificatelor pentru PEM şi a listelor de revocare a certificatelor. e. următoarele elemente: versiunea.DES) şi apoi cheia secretă este criptată folosind cheia publică RSA a destinatarului conţinutului. Pentru o operaţie care necesită chei publice exponentul c trebuie să fie identic cu exponentul cheii publice a unui utilizator.Valoarea unui exponent c. e. d.Valoarea modulului N. Şi această metodă este compatibilă cu metodele PEM. pentru a crea un plic digital. Sintaxa cheilor publice se foloseşte la elaborarea certificatelor iar sintaxa cheilor secrete se foloseşte la elaborarea informaţiilor referitoare la cheile secrete prezentate în standardul PKCS#8.conversia valorilor întregi obţinute într-un şir de octeţi. Datele obţinute în urma procesului de criptare reprezintă un şir de octeţi ED. Standardul mai descrie şi sintaxa pentru cheile publice şi secrete RSA. valoarea exponentului d modulo (p-1). valoarea exponentului d modulo (q-1). d. Conţinutul criptat precum şi cheia secretă criptată sunt reprezentate împreună. . conform sintaxei prezentate în standardul PKCS#7. d mod (p-1).versiunea: este un număr care indică apartenenţa la standard şi care are rolul de a face posibilă compatibilitatea cu standarde viitoare. este numărul întreg k care satisface condiţia: 28(k −1) ≤ N ≤ 2 8k Pentru acest standard valoare minimă a lui k este 12. . Sintaxa cheilor În cazul cheilor publice este vorba despre o secvenţă care are pe prima poziţie vlaorea modulului N. descrise în standardul PKCS#6 şi a altor obiecte care folosesc semnături digitale. în structura cheii secrete este justificată de crearea posibilităţii de a transforma cheia secretă într-o cheie publică. modulul N. prezentată mai sus. numărul prim q. Are valoarea 0 pentru acest standard. vloarea cheii publice a expeditorului e. numărul prim p.şirul de octeţi D. 61 . în octeţi. care reprezintă datele de transmis. Semnificaţia acestor elemente este următoarea: . Procesul de criptare Acest proces are 4 paşi: . Prezenţa exponentului cheii publice e. valoarea inversului lui q modulo p şi versiunea. e. iar pentru o operaţie care necesită chei secrete el trebuie să fie identic cu exponentul cheii secrete a unui utilizator. iar pe a doua poziţie. Lungimea modulului N. . . d mod (q-1) şi q-1 mod p este justificată de eficienţa sporită obţinută prin utilizarea lor. Pentru o cheie secretă RSA sunt suficiente valorile lui N şi d.N. în ordine.conversia şirului de octeţi în valori întregi. În cazul cheilor secrete este vorba despre o secvenţă care are. Observaţii 1. q.calculul specific metodei RSA. . Prezenţa valorilor p. 2. Datele iniţiale pentru procesul de criptare sunt: . d.formatarea blocului de criptat. a certificatelor extinse. p au semnificaţiile din prezentarea metodei RSA.

Pentru BT de valoare 01. Dacă BT are valoarea 00. este un şir de octeţi şi este format din 3 elemente: tipul blocului BT. Aplicarea operaţiilor cu cheie publică aşa cum este definită în acest standard la alte tipuri de date decât şirurile de octeţi care conţin un rezumat al mesajului nu este recomandată şi reprezintă obiectul unor studii viitoare. În aplicaţiile tipice ale acestui standard pentru a genera chei secrete dependente de conţinutul mesajului sau rezumate de mesaj este necesar ca lungimea şirului de octeţi D să fie de 30. trebuie să fie un singur octet şi indică structura blocului de criptare. care previne ca un atacator să poată reconstrui şirul de date prin încercarea tuturor blocurilor criptate posibile. Pentru această versiune a standardului el poate avea una dintre valorile: 00. 2. Pentru BT de valori 01 sau 02 blocul criptat poate fi interpretat corect. De aceea PS se numeşte şir de egalizare. PS. Acestea sunt concatenate conform formulei: EB = 00 ||BT ||PS ||00 ||D PKCS#1) (1 Tipul blocului. Şirul de egalizare. PEM. Pentru o operaţie cu cheie publică valoarea sa este 02. Pentru o operaţie cu cheie secretă se folosesc valorile 00 sau 01. Observaţii 1. convertit într-o valoare întreagă să fie de valoare mai mică decât a modulului. folosită la protecţia poştei electronice. toţi octeţii din PS vor avea valoarea FF iar pentru BT de valoare 02. Formatarea blocului de criptat Blocul de criptat. folosit în metoda RSA să fie de cel puţin 41 de octeţi. 01. 3. unde cu ll D ll s-a notat lungimea şirului de date D. toţi octeţii din PS vor avea valoarea 00. În acest fel lungimea blocului de criptat va fi egală cu k. 3. trebuie să aibă k-3-ll D ll octeţi. 2. Valorile 01 şi 02 pentru BT asigură compatibilitatea blocului criptat cu criptarea RSA bazată pe conţinut a cheilor şi a rezumatelor de mesaje. EB. Valoarea 01 a BT este recomandată pentru operaţii cu chei secrete. 62 . 5.Observaţii 1. De aceea este necesar ca lungimea modulului N. ş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). octeţii din PS vor fi generaţi pseudoaleator şi de valoare diferită de 00. Pentru valoarea 02 a BT. PS. şirul de egalizare. Această valoare conduce la o valoare mare a blocului EB. după ce acesta a fost convertit într-o valoare întreagă. Acest standard va fi extins în viitor pentru a include şi alte valori posibile pentru BT. Totuşi structura blocului de date folosit garantează că probabilitatea de ne-detectare a erorilor este mai mică decât 2 la puterea -16. 7. 6. Pentru BT de valoare 00. trebuie să aibă o lungime minimă de 8 octeţi. Cei doi octeţi 00 din formula (1 PKS#1) au fost incluşi pentru a se asigura condiţia ca blocul criptat. PS. Aceaşi lungime minimă se recomandă şi dacă se utilizează valoarea 01 pentru BT. ceea ce previne anumite atacuri 4. şirul de egalizare. Aceasta este o condiţie de securitate pentru operaţii cu chei publice. în special dacă este necesară criptarea repetată a aceluiaşi mesaj. Pentru valoarea 02 a BT se recomandă ca generarea pseudoaleatoare a octeţilor să se facă independent pentru fiecare proces de criptare. deoarece şirul egalizator PS nu conţine octeţi de valoare 00 şi este separat de şirul de date D printr-un octet de valoare 00. encryption block. sau 02. BT. Procesul de criptare nu presupune şi realizarea unui control de integritate explicit care să uşureze detecţia erorilor care provin din coruperea datelor criptate pe durata transmisiei lor. padding string şi şirul de date D.

. Şirul ED trebuie să satisfacă relaţia: y = ∑ 2 8(k −i ) EDi i =1 k (4 PKCS#1) unde ED1 . mai mic decît N. Dacă întregul obţinut nu satisface condiţia: 0≤ y< N înseamnă că s-a comis o eroare de transmisie. Pentru efectuarea procesului de decriptare sunt necesare: şirul de octeţi ED. care reprezintă mesajul criptat.. conform relaţiei (4PKCS#1). obţinut în pasul anterior este ridicat la puterea c modulo N.. d.. Pentru o operaţie cu chei publice exponentul c trebuie să reprezinte exponentul public al unui utilizator. de lungime k. Conversia şirului de octeţi într-un întreg Şirul de date criptate. folosind relaţia: x = ∑ 2 8(k −i ) EBi i =1 k (2PKCS#1) unde EB1 . obţinut în urma criptării este convertit într-un şir de octeţi. modulul N şi exponentul c. iar pentru o operaţie cu chei secrete coeficientul c trebuie să reprezinte exponentul secret al unui utilizator. EB.. ED. conversia întregului într-un şir de octeţi şi formatarerea blocului decriptat. Dacă lungimea acestui şir de octeţi nu este egală cu k atunci înseamnă că s-a comis o eroare. datele criptate. de la primul la ultimul. obţinându-se întregul y care reprezintă rezultatul criptării în formă de număr întreg. Procesul de decriptare Acest proces constă din 4 paşi: conversia şirului de octeţi într-un întreg. EBk reprezintă octeţii lui EB de la primul la ultimul. Observaţie Întregul x obţinut prin conversia blocului EB satisface condiţia: 8(k −1) 0≤ x< N ≤N.. ED2 . (3PKCS#1) deoarece EB1 = 00 şi 2 Criptarea RSA Întregul x. EB2 .. Cu alte cuvinte primul octet al lui EB are cea mai mare semnificaţie în întregul x iar ultimul octet al lui EB este cel mai puţin semnificativ pentru întregul x. decriptarea RSA. care reprezintă datele transmise. Conversia întreg-şir de octeţi Întregul y.Conversia şirului de octeţi într-un întreg Blocul criptat. D. EDk sunt octeţii şirului ED.. e. 63 . În urma procesului de decriptare se obţine un şir de octeţi.. este convertit într-un întreg y. ED. x. se converteşte într-un întreg.

dar a cărei prezenţă poate fi verificată şi de către utilizatorii care îl cunosc doar pe A la puterea x. Algoritmi de semnătură digitală bazaţi pe metoda Diffie-Hellman Pentru a semna ceva folosind algoritmul Diffie-Hellman este necesară o abordare puţin diferită. sau nu este în accord cu BT. deoarece un document semnat constă din semnătura s şi mesajul m şi orice utilizator al reţelei poate avea acces la mesajul semnat.1. legătură care nu poate fi îndeplinită decât dacă se cunoaşte x. Algoritmi de semnătură 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 semnăturilor digitale. care au o anumită legătură într ele. 5. • Şirul de egalizare. Modulul Q se alege în aşa fel încât să fie satisfăcută relaţia P-1 = 2Q. Q fiind o valoare publică.5. PS. Se presupune pentru început că sunt satisfăcute relaţiile: P-1=2*Q 64 . Atunci un utilizator care cunoaşte doar valoarea lui A la puterea x poate constata că A la puterea s se obţine prin ridicarea lui A la puterea x la puterea m. astfel încât pe baza semnăturii s să nu se poată afla valoarea x. În standardul PKCS#1 sunt prezentate şi trei metode de semnare digitală. Dacă este satisfăcută una dintre condiţiile următoare înseamnă că s-a produs o eroare în procesul de transmisie: • Blocul decriptat nu poate fi formatat neambiguu. obţinut la pasul anterior. Aceste metode lucrează aşa cum este descris în continuare. conform relaţiei (1PKCS#1). conform relaţiei (2PKCS#1). inferior lui N. sau procesul de decriptare este o oeraţie cu cheie secretă şi BT nu are valoarea 02. x. de lungime k. EB.5. obţinându-se un nou întreg. Metodele de semnătură digitală utilizate în prezent necesită parametrii suplimentari. un şir de egalizare. bazate pe utilizarea algoritmului RSA. este convertit într-un şir de octeţi. Pentru mesajul m se calculează produsul dintre x şi m modulo Q. 5. În continuare se prezintă o implementare ipotetică a acestei metode.m) îl poate deduce pe x. Cei doi exponenţi d şi e sunt inverşi modulo N. Acest produs se notează cu s. împîrţindu-l pe s la m modulo Q. • Procesul de decriptare este o operaţie cu cheie publică iar BT nu are valorile 00 sau 01. PS. Conversia întregului într-un şir de octeţi Întregul x. unde P este un număr prim. Din păcate o astfel de procedură nu este sigură deoarece. este constituit din mai puţin de 8 octeţi. obţinut la pasul anterior este ridicat la puterea c modulo N. Formatarea blocului decriptat Blocul decriptat este formatat prin includerea într-o structură formată dintr-un octet BT care specifică tipul blocului.Decriptarea RSA Întregul y. utilizatorul care îl cunoaşte pe A la puterea x şi este în posesia perechii (s. şi un şir de octeţi de date. Baza algoritmilor de semnătură digitală de acest tip este următoarea: Persoana care îl cunoaşte pe x crează două sau trei numere diferite.

SD) şi deci un sistem de 2 ecuaţii cu 2 necunoscute. m. Pentru semnarea unui mesaj. c=s a=Y.5. semnatarul îşi alege un nou număr secret. Prin rezolvarea acestuia pot fi obţinute cheile secrete x şi y. b=s. şi cheia ei publică corespunzătoare.S). dar toate au în comun trei numere a.2.T> şi o cheie secretă S. b şi c sunt toate informaţii publice. c=s a=s.P. m. Semnături digitale El-Gamal Aşa după cum s-a afirmat deja în paragraful destinat pezentării metodei de criptare cu cheie publică El-Gamal. b şi c satisfac ecuaţia: ax + by = c modulo Q (1. c=Y a=s.unde Q este prim şi în plus: Q-1=2*R unde şi R este prim. formată dintr-o cheie publică <g. b=Y. aceasta poate fi utilizată şi pentru generarea şi verificarea semnăturilor digitale.P. Baza A este aleasă astfel încât A la puterea Q modulo P să fie egal cu 1. SD) Legăturile dintre cele 3 numere a. şi se construieşte cheia publică. b=s. A la puterea x modulo Q (în loc de A la puterea x modulo P). c=m a=m. Y şi m. S' şi calculează: T ' = g S ' mod P 65 . Y şi m pot fi: a=m. expeditorul are cheia sa secretă. De aceea dacă există două seturi de mărimi a. Semnătura se calculează ca şi funcţie de x şi de m. De asemenea se calculează Y. c=Y 5.T>. b şi c poate fi verificată folosind ecuaţia: (A x mod P ) a⋅ A y mod P ( )b = A c mod P (2. c=m a=Y. care este mai mic. x. b=m. y. b şi c şi mărimile s. Fiind date s. b=Y. Mărimile a. Asta înseamnă că nu numai P este potrivit pentru valoarea modulului folosit în algoritmul DiffieHellman ci şi Q.SD) Aceasta arată de ce este atât de important ca pentru fiecare semnătură să se aleagă o altă valoare a lui y. În plus se mai construieşte o cheie secretă. Există diferite scheme de generare a semnăturii. relaţia dintre a. care este egal cu ((A la puterea y modulo P) modulo Q). A la puterea y modulo P. b şi c care sunt definite cu ajutorul mărimilor s. b şi c (de exemplu de la 2 utilizatori) atunci există 2 ecuaţii de tipul (1. Cele trei numere a. A la puterea x modulo P şi A la puterea y modulo P. Legătura dintre acestea este satabilită cu ajutorul algoritmului Diffie-Hellman: T = g S mod P Pentru un anumit mesaj m. Atât mesajul cât şi semnătura sunt numere modulo Q. Fiecare utilizator al reţelei este în posesia unei perechi de chei (<g. b=m.

5. Semnătura digitală este calculată folosind o mulţime de reguli şi o mulţime de parametrii astfel încât identitatea semnatarului şi integritatea datelor transmise să poată fi verificate. m. T. Semnătura digitală împreună cu mesajul semnat sunt transmise celui care trebuie să verifice semnătura digitală. Acesta verifică semnătura digitală cu ajutorul cheii publice a expeditorului. Digital Signature Standard (DSS). Semnătura numerică DSA este o pereche de numere foarte mari reprezentate ca şi şiruri de octeţi. National Institute of Standards and Technology a publicat standardul de semnătură digitală. Standardul de semnătură digitală DSS În anul 1994. Toate mărimile necesare pentru verificare sunt disponibile deoarece destinatarul cunoaşte g. 66 . Acest standard prezintă un algoritm de semnătură digitală.A. Digital Signature Algorithm (DSA) folositor în aplicaţiile în care este mai potrivită utilizarea unei semnături digitale în locul unei semnături scrise. Apoi se calculează o semnătură X: X = S '+(d ⋅ S ) mod(P − 1) Apoi se transmite mesajul m împreună cu X şi cu T'. Cheile publice pot fi cunoscute de către orice utilizator al reţelei. 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 decât P-1 (şi de aceea S mod (P-1)=S). Fiecare utilizator posedă o perche de chei formată din cheia sa publică şi cheia sa secretă. Institutul naţional de standarde şi tehnologie din S.Pe baza lui m concatenat cu T'. Proceduri similare trebuie folosite şi pentru generarea şi verificarea semnăturilor digitale pentru date stocate ( nu transmise). 5. Verificarea semnăturii se bazează pe folosirea unei chei publice care corespunde cheii secrete. se calculează un rezumat: d = H(m|T'). Oricine poate verifica semnătura unui utilizator folosind cheia sa publică. NIST.3. pentru a obţine o variantă condensată (rezumat al mesajului) a datelor care trebuiesc transmise (a se vedea figura 17 crpt). Aceeaşi funcţie hash trebuie folosită şi în procesul de verificare. Acestui rezumat i se aplică algoritmul DSA pentru a se genera semnătura digitală. T'. X şi H şi poate calcula d şi celelalte valori necesare pe baza acestora. mesajul m şi pe T'. DSA asigură posibilitatea de a genera şi de a verifica semnături digitale. Pentru verificarea semnăturii destinatarul calculează d cunoscând funcţia H. Generarea semnăturii unui utilizator poate fi realizată numai de către acesta deoarece în procesul de generare se foloseşte cheia sa secretă. În procesul de generare a semnăturii se utilizează o funcţie hash. Generarea semnăturilor se bazează pe utilizarea unei chei secrete.U. .

soft sau mixte. Algoritmul DSA se foloseşte pentru postă electronică. Întregii p. divizor al lui p . distribuire de soft. schimbul electronic de date. NIST dezvoltă un program de validare a acordului dintre aceste implementări şi standardul DSS. Parametrii algoritmului DSA Acest algoritm utilizează următorii parametri: 1. Parametrul k trebuie regenerat pentru fiecare semnătură digitală. Parametrii x şi k se folosesc doar pentru generarea semnăturii şi trebuie păstraţi secreţi. un număr generat aleator sau pseudoaleator. g=h mod p .Figura 17 crpt. un număr prim. Generarea semnăturii 67 . q. pentru transferul electronic de fonduri. 4. k. y = g x mod p 5. 5. Numărul x reprezintă cheia secretă a unui utilizator iar y cheia sa publică. Generarea şi verificarea semnăturii folosind standardul DSS. q. şi g pot fi publici şi pot fi comuni unui grup de utilizatori. p −1 q 3. stocare de date şi alte aplicaţii care necesită verificarea integrităţii datelor transmise şi autentificarea expeditorului. x. În mod normal aceste valori rămân fixe pentru o perioadă de timp. Algoritmul DSA poate fi implementat în variante hard. un întreg generat aleator sau pseudoaleator. p. cu proprietatea: 2 L −1 ⋅ p < 2 L pentru 512 ≤ L ≤ 1024 L multiplu de 64 2. un număr prim folosit ca şi modul.1.

r' = r. LEMĂ. q şi g precum şi cheia publică şi identitatea expeditorului a sunt puse la dispoziţia celui care trebuie să verifice semnătura digitală într-o formă autentificată. Semnătura împreună cu mesajul sunt transmise celui care trebuie să verifice semnătura digitală. Fie M'. atunci: (1 L) g m mod p = g n mod p (2 L) 68 . Fie p şi q două numere prime astfel încât q să fie p . În continuare se demonstrează criteriul de verificare. E necesară verificarea egalităţii cu zero a lui r sau s. r' şi s' versiunile recepţionate ale parametrilor M. Dacă una dintre aceste mărimi este 0 atunci o nouă valoare a lui k trebuie aleasă şi semnătura trebuie recalculată. Dacă aceste condiţii sunt satisfăcute atunci se continuă verificarea. r. Cu alte cuvinte se demonstrează că dacă M' = M. Oricum mesajul nu trebuie validat. atunci v = r' . Demonstraţia se bazează pe utilizarea următoarei leme. atunci rezultatul verificării semnăturii digitale este pozitiv şi se poate afirma că mesajul a fost trimis de către posesorul cheii secrete x corespunzătoare lui y. 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'. şi s' = s. Dacă una dintre aceste condiţii nu este respectată atunci semnătura este respinsă. şi s şi fie y cheia publică a semnatrului mesajului.1 şi fie h un întreg pozitiv mai mic decît p şi g dat de relaţia: g=h Atunci: p −1 q mod p g q mod p = 1 şi dacă m mod q = n mod q.Semnătura unui mesaj M. Prima operaţie de verificare se referă la şirul de inegalităţi 0 < r' < s' < q. ( r = g k mod p mod q ( ) ) Verificarea semnăturii Înaintea verificării semnăturii unui mesaj parametrii p. Dacă v nu este egal cu r' atunci se poate ca mesajul să fi fost modificat sau să nu fi fost corect semnat de către semnatar sau ca mesajul să fi fost semnat de către un impostor. este perechea de numere r şi s calculate conform următoarelor ecuaţii: s = k −1 (SHA(M ) + x ⋅ r ) mod q Cu k la puterea -1 s-a notat inversa lui k pentru înmulţirea modulo q.

D) conduce la: 69 . În consecinţă lema a fost demonstrată. 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 aplicând relaţia (1. În continuare se demonstrează propoziţia. este identică cu relaţia: m = n + kq pentru un anumit întreg k. 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 .DEMONSTRAŢIE. 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 relaţie care înlocuită în (1. L): g m mod p = g n mod p ⋅ 1 mod p = g n mod p Deci şi relaţia (2. pe baza lemei enunţate anterior se poate scrie: v = ( g u1 ⋅ y u2 mod p) modq = ( ( g )(SHA(M )⋅w) modq ⋅ ( y)(r⋅w) modq mod p) modq =  =   ( g )(SHA(M )⋅w) modq ⋅ g x   ( ) ( ) ( ) (r⋅w) modq  =  (g )(SHA(M )⋅w+ x⋅r⋅w   Dar: )modq mod p  modq = ((g )((SHA(M )+x⋅r )⋅w) modq mod p)modq     mod p  modq =     (1.  p −1    g mod p =  h q mod p  mod p = h p −1 mod p = 1     q Ultima egalitate din relaţia anterioară este un rezultat direct al Teoremei mici a lui Fermat (care este demonstrată în paragraful destinat bazelor matematice ale criptării). Egalitatea: m mod q = n mod q. L) a fost demonstrată.

necesare în algoritmul DSA. Propoziţia a fost demonstrată. În standardul DSS.v = ( g k mod q mod p ) mod q Dar: r = g k mod p mod q Presupunând că valoarea lui k este inferioară valorii lui q. ( ) 70 . sunt prezentate şi metode de generare a numerelor prime. de asemenea necesare în algoritmul DSA. kmodq este egal cu k şi conform ultimelor două relaţii rezultă că v şi r sunt egale. în anexe. precum şi metode de generare a numerelor aleatoare sau pseudoaleatoare.

dacă: . Pe baza identificării acestei corelaţii este mai probabil să se determine biţii cheii secrete. are o anumită "caracteristică". De fapt realizarea unei imagini complete a mecanismului prin care modificarea biţilor din cuvântul de intrare afectează sau nu biţii din cuvântul de ieşire este scopul criptanalizei diferenţiale. până la identificarea cheii utilizate de expeditor). cu proprietatea: B = A xor X 71 . Totuşi există două tipuri de atac care ar putea să descopere mai repede o cheie secretă decât metoda de căutare a acesteia bazată pe forţa brută. ca de exemplu DES au fost construite cu intenţia de a fi foarte greu de atacat (decriptat de către o persoană neautorizată) şi au reuşit pe deplin să satisfacă această necesitate. Criptanaliza diferenţială Dacă persoana neautorizată are la dispoziţie cantităţi suficiente de text clar şi text criptat corespunzător textului clar pe baza criptanalizei diferenţiale. dintre cele patru posibile identificate anterior este realtiv uşor de înfăptuit. putând în acest fel scurta timpul cerut de căutarea cheii printr-o tehnică exhaustivă (bazată pe forţă brută). Principiul de bază al criptanalizei diferenţiale. Pentru un număr limitat de iteraţii este inevitabil ca un bit sau o combinaţie de biţi din cuvântul de la ieşirea iteraţiei să fie corelată (într-un anumit fel) cu rezultatul unei combinaţii simple a unor biţi ai cuvântului de intrare în prima iteraţie cu unii biţi ai cheii secrete. Deoarece fiecare subcheie are o lungime de 48 de biţi iar cheia secretă are o lungime de doar 56 de biţi. De exemplu după 2 iteraţii ale algoritmului DES.5. este următorul. deoarece aceasta este unică. decât biţii cuvântului de intrare în prima iteraţie. găsirea intrării adevărate. dacă se cunosc atât datele de intrare cât şi cele de ieşire ale acestor iteraţii. în forma sa clasică. 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. care se doreşte a fi atacat.există o anumită constantă X astfel încât cunoscând multe perechi de text clar. Acestea sunt atacul bazat pe criptanaliză linară şi cel bazat pe criptanaliză diferenţială. Pentru fiecare ieşire cunoscută de cutie de tip S există doar patru intrări posibile. este uşor să se găsească cele două subchei folosite (deoarece se cunosc rezultatele aplicării ambelor funcţii f /specifice celor două iteraţii). Atacuri împotriva sistemelor de criptare Sistemele de criptare simetrică. inventată de Eli Biham şi Adi Shamir. modul de corelare al biţilor cuvântului de intrare în prima iteraţie cu cheia secretă se rafinează. Cu toate acestea este încă adevărat că ieşirea unei iteraţii depinde de intrarea sa şi de cheie. Chiar având la dispoziţie cantităţi impresionante de text în clar şi text cifrat crespunzător o a treia persoană (neautorizată) nu ar trebui să poată (aceasta este intenţia constructorilor sistemelor de cifrare) să deducă cheia de criptare folosită. identificarea acestei iteraţii fiind mult mai dificilă. aceasta ar putea obţine unele indicaţii despre anumiţi biţi ai cheii secrete folosite în procesul de criptare. Multe sisteme de criptare par să satisfacă această condiţie.6. Pe măsură ce numărul de iteraţii creşte. decât folosind atacurile bazate pe căutare cu forţă brută (adică generarea tuturor cheilor posibile având un număr fixat de caractere şi încercarea lor pe un text clar al cărui text cifrat corespunzător se află de asemenea în posesia acelei persoane. Sistemul de criptare. Însă de îndată ce numărul de iteraţii creşte la 4 problema descoperirii cheii secrete devine mult mai dificilă. A şi B. În loc să se spună "dacă acest bit este de valoare 1 în cuvântul de intrare atunci el va fi de valoare 0 (sau 1) în cuvântul de ieşire" se va spune "schimbând acest bit în cuvântul de intrare se va schimba (sau nu se va schimba) acel bit în cuvântul de ieşire". deoarece pentru aceştia există mai multe combinaţii posibile.

O caracteristică diferenţială de tipul descris deja. Pe baza unei perechi text clar-text cifrat. în care un anumit sistem de criptare se comportă ca şi un altul mai simplu. este adeevărată. această metodă de criptanaliză încearcă să creeze o aproximare simplă a întregului sistem de criptare. referitoare la cheia secretă. ale lui A şi B satisfac relaţia E(A.k) xor Y. Dacă cineva poate. dacă o anumită propoziţie referitoare la cheia k este adevărată. astfel încât şirul de egalităţi: B=A xor X.k) = E(B. Principiul care stă la baza criptanalizei liniare este asemănător celui care stă la baza tomografiei asistate de calculator: compunerea mai multor scan-ări unidimensionale ale unui obiect în scopul realizării unei imagini bidimensionale a unei bucăţi a acestuia. este o tehnică înrudită dar diferită. Fiind capabil să ignore anumiţi biţi ai textelor A şi B. atacatorul poate utiliza două sau trei diferenţiale simultan ceea ce sporeşte mult şansele atacului său.k) să se potrivească cu biţii corespunzători lor din structura lui Y. Knudsen. Criptanaliză liniară Criptanaliza linară. Această definiţie necesită existenţa unei a doua cantităţi. şi dacă următoarea relaţie: E(B. k. C=A xor W şi D=B xor W să implice ca relaţia: 72 . precum şi biţii cheii care au tendinţa să aibă aceeaşi valoare şi în cazul cheii folosite de sistemul de criptare real.k) xor E(B. La fel poate fi definită şi derivata de ordinul 2. este adevărată.- şi o anumită propoziţie.k) xor Y (unde cu E s-a notat rezultatul criptării). folosind sistemul de criptare simplificat. constituită din elemente de lungime mare. poate fi considerată analoagă cu o derivată (a unei anumite funcţii) şi este numită derivata cifrului E în punctul X. pentru o anumită constantă Y.k) xor E(B. Diferenţiale trunchiate Este bineînţeles posibil ca probabilitatea ca unii dintre biţii lui E(A. B este egal cu A xor X şi variantele criptate cu o anumită cheie secretă k. Diferenţiale de ordin superior O altă extindere importantă a criptoanalizei diferenţiale este dată de utilizarea difernţialelor de ordin superior.k) să se potrivească cu biţii lui Y să fie mai mare decât probabilitatea ca alţi biţi ai lui E(A. În loc să se analizeze puncte izolate. în plus. inventată de către Mitsuru Matsui. Utilizând aceste metode a devenit posibilă atacarea unor sisteme de criptare simetrică care au fost concepute să fie rezistenete la atacurile prin criptanaliză diferenţială clasică. să ignore anumiţi biţi ai textelor A şi B. inventată de Lars R. (şi anume pe aceia care fac potrivirea de care s-a vorbit mai înainte mai puţin probabilă) acela are o diferenţială trunchiată pentru sistemul de criptare atacat şi această tehnică. Această idee a apărut pentru prima dată într-o lucrare a lui Xuejia Lai. s-a dovedit a fi foarte puternică.k) = E(A. unde pentru un număr mare de valori diferite A. cu aceeaşi probabilitate cu care ar fi adevărată dacă valoarea lui Y ar fi aleasă aleator. se determină cheia secretă care ar fi produs această pereche. Extinderi ale criptanalizei diferenţiale Pornind de la criptanaliza diferenţială clasică au fost concepute câteva metode puternice de criptanaliză. W.

Pe un câmp finit mai general ar fi trebuit să se folosească relaţiile: Y=E(A+X.k)-E(A. cu o probabilitate mai mare decât cea corespunzătoare alegerii aleatoare a lui Z.k) xor E(B.k)) Această relaţie este importantă deoarece o derivată a doua ar putea exista într-un punct pentru a cărui primă coordonată să nu existe o derivată a întâia sau aceasta să nu fie suficientă. efectuată pentru o altă diferenţă de constante şi aşa mai departe.W). Similar.k))-(E(A+X.k) xor Z să fie adevărată pentru o anumită constantă Z. modulo o putere întreagă a lui 2 (unde operaţia sauexclusiv (xor) este identică cu operaţiile de adunare respectiv de scădere). o derivată de ordinul 3.E(A. 73 .k) xorE(D. Formulele prezentate mai sus sunt valabile pe un câmp finit de tip Galois.k)-E(A+W.k)-E(A.k) = E(C. poate fi dedusă pe baza diferenţei a două derivate de ordinul 2.k) şi: Z=(E(A+X+W. În acest caz Z reprezintă derivata a doua a cifrului E în punctul (X.

Dacă A doreşte să-i transmită ceva lui B. Eventual pachetul traversează mai multe rutere intermediare. Pachetele unui mesaj sunt numerotate. operaţiile de la nivel aplicaţie se derulează şi ele pe baza unor protocoale. User Datagram Protocol. prin analogie cu sistemul poştal obişnuit. când se transmite un singur mesaj. Informaţia de control include adresa expeditorului şi a destinatarului. protocoalele TCP/IP. De exemplu protocolul de poştă electronică prin INTERNET se numeşte SMTP. bine precizate. pe care le traversează un mesaj. dar care au ca şi punct central. Transmission Control Protocol. se poate folosi un protocol mai simplu. putându-se verifica primirea lor în forma în care au fost trimise şi reconstruirea mesajelor lungi. Dirijarea pachetelor este efectuată automat de către reţea şi respectă un set de reguli şi convenţii numit "protocol". Funcţionarea acestui protocol se bazează pe serviciile oferite de protocoalele IP şi TCP. În reţelele intermediare. dacă A doreşte să-i transmită un mesaj electronic lui B atunci mesajul trebuie "împachetat". 6. Principiul comunicării este inspirat de serviciul poştal. despărţite între ele prin puncte. Termenul TCP/IP se referă la o întreagă familie de protocoale.6. TCP este un protocol complicat. care include copii separate ale codului nucleu pentru dispozitivele folosite) proiectanţii seriei de protocoale TCP/IP au preferat să segmenteze munca unui întreg şir de protocoale de reţea într-un număr de sarcini. numit şi "ruter". Similar. În loc de a construi protocoale monolitice (protocoalele ftp. IP cere fragmentarea lui în mai multe pachete. telnet sau gopher au fiecare câte o implementare completă. numit UDP. formate din mai multe pachete. scrie pe pachet adresa destinatarului şi a expeditorului şi depune pachetul la cel mai apropiat oficiu poştal. La rândul lor. În figura 1 Internet se prezintă pachetul standard de protocoale TCP/IP. Ultimul comutator livrează mesajul destinatarului. în funcţie de localizarea destinatarului. A împachetează obiectul. Dacă un mesaj este prea lung. Pentru reţeaua INTERNET acest protocol se numeşte IP. specificate în formă numerică (număr IP): patru numere naturale mai mici decât 256. Simple Mail Transfer Protocol. Acest protocol asigură livrarea pachetelor numai dacă în reţelele pe care acesta le traversează nu apar erori. Internet Protocol. care are un rol similar oficiului poştal şi care-l trimite spre destinatar. ci se face conectarea la o reţea care este ea însăşi conectată la Internet backbone. Protocolul TCP face fragmentarea mesajului în pachete şi asigură transmiterea corectă a mesajelor între utilizatori. În sistemul poştal obişnuit. care este o reţea foarte rapidă şi incredibil de încărcată. suficient de scurt pentru a fi conţinut într-un singur pachet.1 Protocoale TCP/IP Ierarhia protocoalelor INTERNET Serviciile INTERNET au la bază schimbul de mesaje între o sursă şi un destinatar. o parte din datele acestuia s-ar putea pierde. pachetul este dat unui comutator de pachete. Această comunicare este realizată conform unor tehnologii diverse şi se supune unor protocoale specifice. router. care depind unele de altele. De aceea protocolul TCP ajută la detectarea erorilor de transmisie şi la detectarea datelor pierdute precum şi declanşează retransmisii ale mesajului până când acesta este recepţionat corect şi complet. Transmiterea pachetelor IP se face între calculatoarele gazdă şi nu direct între programele de aplicaţie. Funcţionarea protocoalelor IP şi TCP se bazează pe existenţa unei comunicări directe între noduri (rutere) adiacente din reţea. Din acest motiv protocolul IP trebuie completat cu un altul numit protocol de transmisie.TCP. Când se doreşte accesarea resurselor oferite de INTERNET. Asemănător. În unele cazuri. Unitatea de date astfel obţinută se numeşte "pachet". Ca urmare protocoalele TCP şi IP se bazează la rândul lor pe protocoale. într-o reţea de calculatoare. pachetul poate fi transmis prin intermediul mai multor oficii poştale intermediare. nu se face în realitate o conectare la INTERNET. Fiecare nivel al modelului OSI corespunde la o faţetă diferită a 74 . Securitatea serviciilor INTERNET INTERNET este cea mai mare reţea de reţele din lume. protocoalele IP şi TCP fiind doar doi membri ai acestei familii. Ultimul oficiu poştal livrează pachetul destinatarului. adică încadrat de anumite informaţii de control.

Fiecare nivel ia pachetul de la nivelul anterior. Pentru a fi posibilă respectarea acestui principiu. în timp ce un sistem intermediar are mai multe interfeţe. face posibil transferul datelor spre nivelul aplicaţie. adrese de destinaţie şi de sursă şi informaţii de stare. subreţelele la care aceste sisteme sunt conectate şi sistemele intermediare. nivelul aplicaţie. putându-l vedea aproape în întregime ca pe un şir de date şi îi adaugă propriul antet. În modelul unei inter-reţele apar sistemele ce găzduiesc aplicaţiile. Fiecare nivel al modelului OSI trebuie să adauge la şirul de date antetul său propriu. Pachetele reprezintă unitatea de bază a unei transmisii pe INTERNET. Informaţiile de tip antet constau din anumite combinaţii de sume de control. acest nivel al modelului de referinţă OSI decide unde trebuie transmise datele. În figura 2 internet este dat un exemplu de cadru Ethernet. situată pe calea aflată spre sistemul terminal destinatar. etc. Sistemul intermediar este legat la ambele subreţele. Fără a oferi garanţii despre modul în care un anumit şir de date va ajunge la destinaţia sa. nivelul legătură. Accesul la protocoalele IP şi TCP este asigurat de diferite subrutine care au denumirea generică de Sokets. Acesta este nivelul în care rezidă protocoalele: telnet. În implementări. Cel de al treilea. programatorii ascund de obicei nivelele modelului OSI pentru a creşte performanţele programelor. IRC.procesului de comunicaţie. astfel încât să se poată interpreta informaţia de către toate nivelele. identificatoare de protocol. spre o altă subreţea. nivelul transport. începând cu cel mai de jos. Conceptual este util să se reprezinte familia de protocoale TCP/IP ca şi o stivă. Nivelele şirului de protocoale TCP/IP. Primul.formatul unităţilor de date manipulate. Cel de al patrulea. Ele conţin atât date cât şi informaţii de tip antet (prefix). Cel de al doilea. Acesta este nivelul la care trebuie date garanţii de fiabilitate. Figura 1 Internet. Protocoalele sunt astfel proiectate încât nivelul N al destinaţiei să primească (fără modificări) obiectul transmis de nivelul N al sursei. numite şi sisteme terminale. nivelul reţea. ce conectează între ele subreţelele.acţiunile posibile ale entităţilor de protocol care concură la realizarea serviciilor specifice protocolului. email. este responsabil pentru comunicarea cu hard-ul reţelei. Acest cadru este rezultatul unui pachet care a plecat de la nivelul aplicaţie pe toate căile posibile spre nivelul legătură. câte una pentru fiecare subreţea la care este conectat. . este responsabil pentru stabilirea modului în care sunt livrate datele la destinaţie. prin proiectarea oricărui protocol trebuie specificate: . Acesta este locul unde sunt situate "driverele" pentru dispozitivele diferitelor interfeţe. Rolul unui sistem intermediar este de a retransmite pachetele pe care le primeşte de la o subreţea. ftp. De obicei un sistem terminal are o singură interfaţă cu reţeaua la care este conectat. ruterele. este locul unde de obicei utilizatorii interacţionează cu reţeaua. 75 .

Pentru prelucrarea pachetului curent nu este relevantă existenţa unor pachete anterioare sau ulterioare. Dacă un pachet soseşte fără probleme (de exemplu necorupt) protocolul IP îl transmite.Figura 2 Internet. Acesta reprezintă o bază de date distribuită. Un exemplu de cadru Ethernet. Avantajul separării de hard este că soft-iştii care implementează protocoalele trebuie să programeze legătura cu hard-ul o singură dată. Corectitudinea recepţiei pachetelor este sarcina unor nivele superioare. domain name system. numite nume de gazdă. printre alte protocoale. Nivelul legătură Acesta este nivelul cel mai uşor de înţeles. DNS. le adaugă un antet specific şi le transmite pe cablul reţelei. Internet Control Message Protocol. host names. conectat la INTERNET. Protocolul IP nu este capabil să sesizeze nici măcar decuplarea. au făcut posibil ca administratorii de reţea să asocieze nume cu adresele IP. şi protocoalele IP şi ICMP. Când transmite date spre reţea preia pachetele de la nivelul reţea. menţinea o copie completă a bazei de date cu toate numerele IP (pe calculatoarele care operau cu sistemul UNIX aceasta se găsea în /etc/hosts). Protocolul IP este capabil să conducă pachetele la destinaţia dorită deoarece fiecare interfaţă de reţea din INTERNET are o adresă numerică unică. Protocolul IP este folosit pentru aproape toate comunicaţiile în INTERNET. Deoarece este dificil să te referi la calculatoare folosind şiruri de numere. pentru un anumit interval de timp. Compus din hard-ul reţelei şi din drivere-le dispozitivelor. proiectanţii protocoalelor TCP/IP. Dacă un calculator are mai multe interfeţe (ca de exemplu în cazul unui ruter) fiecare dintre aceste interfeţe are propria sa adresă IP. Când recepţionează date din reţea. le adaugă un antet specific şi transmite pachetele astfel construite spre nivelul reţea. De fapt 76 . Datorită expansiunii reţelei INTERNET acest lucru nu a mai fost posibil având în vedere atât dimensiunile uriaşe ale unei astfel de baze de date cât şi coşmarul la care ar fi fost supuşi administratorii de reţea pentru continua aducere la zi a acestei baze de date. Fiecare interfaţă are propria sa adresă. La început fiecare calculator gazdă. Aceste numere se numesc adrese IP. Protocolul ICMP este folosit atât pentru a furniza informaţii despre funcţionarea corectă a reţelei cât şi pentru a asigura unele utilităţi ca de exemplu ping sau traceroute. Când se primesc pachete el află de unde sosesc aceste pachete. conţinând adrese IP şi numele acestora în limbaj natural. Apoi ei concep o interfaţă comună cu reţeaua. a cablului de legătură cu reţeaua. Când se trimit pachete el găseşte modul în care acestea sunt transmise spre destinaţie. Atfel s-a născut sistemul numelui de domeniu. el culege datele de pe cablul reţelei. programând diferitele driver-e de dispozitive pentru fiecare tip particular de reţea. Nivelul reţea Acesta este nivelul unde rezidă. el este cel mai de jos nivel din stiva de protocoale.

. Ruterul acelei organizaţii este conectat atât la reţeaua locală cât şi la legătura INTERNET. Atunci ruterul se uită în tabelul său de dirijare. La întrebarea "Cum trebuie să aleagă un anumit ruter ruterul următor ?" nu există un răspuns unic. . Acestea la rândul lor vor cunoaşte ruterele la care sunt ele conectate. Orice comunicaţie cu un calculator este realizată prin intermediul adreselor IP numerice. constată că nu are o legătură directă cu domeniul cool şi de aceea îl trimite la legătura sa iniţială spre exterior.umass. Această modificare se propagă rapid. în Alaska. eu nu ştiu unde trebuie să meargă pachetul ăsta. datele putând ajunge la destinaţie pe un alt drum (care exclude legătura întreruptă). nu trebuie cunoscute toate modalităţile prin care un pachet poate ajunge. să spunem. Toate celelalte adrese identificate din pachetul de transmis. protocolul IP găseşte adresa dispozitivului hard cu numărul IP de interfaţă Ethernet corespunzător şi trimite pachetul acolo. Interfaţa destinaţie este o placă Ethernet din reţeaua locală. El nu trebuie să încerce să determine întregul traseu pe care îl vor urma aceste pachete. Dacă un ruter este conectat la mai multe alte rutere următoare (pe un anumit drum) atunci el trebuie să decidă la care dintre ele trebuie să transmită pachetul curent. e suficient dacă un astfel de tabel are trei rubrici: una pentru interfaţa cu bucla (care îi permite unui calculator gazdă să se conecteze la el însuşi). spunând "Ia. În loc să încerce să dirijeze aceste pachete. de aceea eu le trimit acolo şi las ruterul de la MIT să afle ce trebuie făcut mai departe". Ruterul de la MIT le poate transmite la Cleveland. Există şi algoritmi de dirijare mai complicaţi care ţin seama de încărcarea drumurilor posibile şi care trimit datele pe linia cea mai puţin ocupată.edu). Şi astfel continuă procesul. Când un administrator de reţea adaugă un nou calculator la reţeaua pe care o administrează el trebuie să reactualizeze tabelul de nume de organizaţie de pe server-ul acelei reţele. Paşii pe care îi face protocolul IP pentru a trimite un pachet sunt: . În acest fel se poate asigura un serviciu continuu dar cu performanţe degradate. tipic există o reţea locală (de exemplu de tipul Ethernet) şi apoi o linie închiriată spre INTERNET. Acest tip 77 .pe baza adresei sale IP acesta găseşte modul în care pachetul poate ajunge la destinaţie. de acolo pachetele se pot duce la Chicago. Chiar dacă o linie telefonică dintr-o anumită reţea se defectează. Traficul poate fi dirijat pe baza algoritmului "în sensul acelor de ceasornic" sau ruterele următoare aflate pe acelaşi drum (adică care pot conduce la aceeaşi destinaţie) pot fi alternate. unde au fost trimise de fapt de primul ruter (cel al reţelei locale). traficul nu se întrerupe. San Francisco sau Seattle şi apoi în Alaska.edu unui calculator din reţeaua locală. care îi permit să se conecteze la două sau mai multe reţele. Un ruter este diferit de o gazdă obişnuită din reţea prin aceea că el are cel puţin două interfeţe. Toate pachetele care trebuie transmise în INTERNET sunt transmise la ruter. Un ruter local ar putea "spune": "Toate pachetele din reţeaua locală West merg la MIT.adrese de rutere.interfeţele destinaţie. Ruterul din fiecare nod al reţelei INTERNET este interesat doar de ruterul următor la care trebuie să trimită pachetele. una pentru reţeaua locală şi una pentru legătura spre exterior iniţială. Pentru o organizaţie mică. În cazul unui calculator dintr-o reţea locală (ca de exemplu cool. MIT. la care sunt conectate ruterele respective. fiind suficient să se afle care este ruterul responsabil pentru transmiterea pachetelor spre Alaska. Din fericire.adrese pe care le pot manipula. de aceea numele de gazdă pentru un calculator este folosit doar la începutul unei conexiuni. Rubrica pentru reţeaua locală permite protocolului IP să ştie că gazda sa este conectată direct la câteva calculatoare şi să cunoască adresele IP ale acestora. După pierderea legăturii între New York şi Chicago datele pot fi trimise de la New York la Atalanta apoi la Los Angeles şi apoi la Chicago.la o anumită adresă INTERNET pot fi asociate mai multe nume de gazdă. dă-ţi tu seama". un anumit calculator din reţea trimite acel pachet spre interfaţa ruterului. În loc să încerce să livreze un pachet cu destinaţia cool. Acestea au trei părţi constitutive: . trimiţându-le spre ruterul următor.trimite pachetul pe calea indicată.cs. De aceea fiecare ruter trebuie să cunoască doar următoarele rutere cu care este conectat. diferite de cele amintite mai sus trebuie să conducă la legătura iniţială spre exterior. care le retransmite pe linia închiriată. .alaska. ruterele din INTERNET utilizează tabele de dirijare. Adresele pe care le poate manipula ruterul sunt toate adresele IP din reţeaua locală. Pentru a determina următorul ruter la care trebuie să ajungă un pachet.

Nivelul transport La acest nivel se uitlizează două protocoale: TCP şi UDP. protocolul UDP nu asigură această condiţie. ceea ce este foarte util când se doreşte conceperea unor noi protocoale. Nu există standarde pentru rezolvarea problemelor care apar în mijlocul unei subreţele care este traversată de un anumit mesaj deoarece în fiecare subreţea sunt adoptate în mod ad-hoc anumite "soluţii".identificarea numerelor incluse în fiecare pachet TCP sau UDP. Destinatarul poate detecta absenţa unor pachete sau incorecta indexare a altora. El asigură recepţia pachetelor în ordinea în care au fost trimise şi retransmiterea pachetelor pierdute. Când se propagă informaţia despre o astfel de defecţiune tabelele de dirijare ale unor rutere trebuie să se modifice. Acest tip de reconstrucţie a şirului de date este realizat de protocolul TCP. Porturile TCP/IP nu sunt de natură hard. El asociază un număr de secvenţă fiecărui octet. Acest protocol asigură mijloace pentru ca datele să fie reconstruite între capete. se înregistrează un anumit număr de port cu ajutorul stivei TCP/IP. De fapt strategia tradiţională de rezolvare a problemei congestiei traficului în INTERNET a fost creşterea vitezei liniilor de comunicaţie şi a echipamentelor pentru a exista o rezervă consisitentă în raport cu creşterea cererii de servicii. Când sosesc date la un ruter congestionat (care este de ja ocupat în proporţie de 100%) nu există nici un loc unde să fie trimise datele în exces. este necesară o metodă pentru identificarea unui anumit serviciu (pe care să-l efectueze calculatorul gazdă identificat). Protocolul TCP validează datele care au fost recepţionate şi retransmite datele care au fost pierdute. Astfel dacă un proces aparţine protocolului UDP şi un alt proces protocolului TCP ele pot corespunde unui acelaşi port. Dar odată această identificare făcută. Protocolul TCP tratează fluxul de date ca pe un şir de octeţi. nu acelaşi lucru se poate afirma despre două procese care aparţin aceluiaşi 78 . Defectarea liniei telefonice este imediat sesizată de ruterele din New York şi Chicago. fără a avea la dispoziţie programele sursă pentru nucleele acestora şi nu se doreşte supraveghere din partea protocolului TCP. verifică dacă acesta a fost corupt sau nu şi livrează pachetul procesului corespunzător din nivelul transport. Deoarece această modificare cere un anumit timp se poate afirma că protocolul TCP este lent în cazul în care trebuie refăcut şirul de date după o astfel de defecţiune. Când se recepţionează date. sau interacţiunea dintre nivelele reţea şi transport. În această descriere succintă au fost ignorate câteva funcţiuni cum ar fi: fragmentarea pachetelor. din acel pachet şi trimite datele procesului corespunzător. adică între calculatoarele expeditorului şi destinatarului. Altfel. de exemplu serviciul de poştă electronică. Aceasta este sarcina porturilor-. De aceea în fiecare reţea este adoptat un anumit protocol de dirijare care reîmprospătează periodic tabelele de dirijare pentru întreaga reţea pe baza unor informaţii despre schimbările suferite de stările de dirijare. de exemplu 111. Programe interactive ca de exemplu ftp sau telnet folosesc acest protocol. Deci protocolul TCP nu este dedicat optimizării manipulării pachetelor în cazul congestiei traficului. Protocolul TCP crează un circuit virtual între două procese. Ele sunt doar o modalitate de a etichetare a pachetelor.de recuperare a datelor este primul parametru de proiectare al protocolului IP. Acest protocol a fost proiectat să reconstruiască şirul de date şi în cazul în care apar defecţiuni la un nod al reţelei sau la o legătură dintre două noduri. În timp ce protocolul TCP asigură o comunicaţie sigură între capete. Un singur proces de protocol poate corespunde unui port dat. Este resposabilitatea expeditorului să încerce retransmiterea datelor puţin mai târziu şi să insisite până când reuşeşte. Când nivelul transport primeşte un pachet el verifică numărul de port. Pachetul TCP are un prefix care "spune" de exemplu: "Acest pachet începe cu octetul 379642 şi conţine 200 de octeţi de date". Fiecare proces care poate fi efectuat pe un anumit calculator corespunde unui anumit port TCP/IP. protocolul IP preia pachetul de pe nivelul legătură. manevrarea erorilor de transmisie. dar într-un anumit mod această informaţie trebuie transmisă şi celorlalte noduri. Când un anumit proces porneşte. Până aici s-a discutat adresarea la nivel de calculator gazdă--cum se identifică un anumit calculator. care să creeze formate particulare de pachete. ruterul din Los Angeles ar continua să transmită mesaje spre New York prin Chicago unde ele ar sosi la un "capăt mort". UDP nu este la fel de sigur ca TCP dar permite programatorilor să scrie soft la nivel de utilizator.

NFS şi talk sunt două exemple de protocoale bazate pe UDP. în prefixul pe care îl adaugă el pachetului. Nivelul TCP al calculatorului numit cool răspunde într-un mod similar. dă un număr de port. 4. controlul traficului sau variabile de mediu. Combinaţia dintre adresele IP ale sursei şi ale destinaţiei şi porturi crează un identificator unic de conversaţie. Protocolul telnet daemon de pe calculatorul numit cool şi protocolul telnet de pe calculatorul care a solicitat serviciul la distanţă schimbă informaţii de terminal şi alţi parametri necesari unei sesiuni de lucru interactiv.edu. Se transmit mesaje de control de tipul: ecou. Acesta este utilizat pentru utilizarea unui calculator de la distanţă. care le trimite la nivelul legătură. viteză de terminal.edu'' este conectat rapid la calculatorul cool. ftp.alaska. UDP-ul se bazează pe protocolul IP şi pe numere de porturi.18. şi WWW clients acţionează la acest nivel.229. Se foloseşte protocolul IP pentru a dirija pachete. de exemplu TCP. Protocolul TCP iniţiază o conversaţie cu calculatorul numit cool. Nivelul aplicaţie Reprezintă locul în care utilizatorul interacţionează cu reţeaua. numeric. 1096. 3. 6. obţinându-se 2. adresa IP. La celălalt capăt are loc o distribuire dinamică a porturilor. El dă acces utilizatorului la pachetele de tip IP. Programul telnet. Acesta este portul sursă pe care protocolul TCP al utilizatorului îl include în fiecare pachet. Numele folosit ca şi adresă este convertit (137.229. telnetd. Prezentarea protocoalelor TCP şi UDP. El înlătură necesitatea de a folosi terminale conectate hard. trecând rând pe rând prin toate ruterele situate pe acest drum. după ce a declanşat acest program. De exemplu protocolul de poştă electronică.protocol. la portul 23. Ea oferă doar o înţelegere aproximativă a modului în care interacţionează într-o reţea nivelele reţea (al cărui protocol specific este IP) şi transport (ale cărui protocoale specifice sunt TCP sau UDP). În continuare se detaliază puţin programul telnet. Sistemul de fişiere al reţelei. Un număr de porturi sunt rezervate pentru servicii standard. Ele trec de pe calculatorul utilizatorului pe ruterul organizaţiei sale şi apoi ies în INTERNET.103). de pe server să răspundă corect la procesul telnet iniţiat de utilizator. Când un client telnet începe să utilizeze acest protocol el dă un nou număr de port (de exemplu 1066). Astfel va putea protocolul telnet daemon. Pachetele sunt apoi dirijate la nivelul IP. După ce se efectuează operaţia de login începe transferul de date între calculatorul utilizatorului şi calculatorul accesat la distanţă. corespunde întotdeauna portului 25 iar protocolul telnetd portului 23.alaska. rulat pe calculatorul pe care lucrează utilizatorul care doreşte serviciul la distanţă. 7.18. O listă a porturilor rezervate pe un sistem UNIX se găseşte în fişierul /etc/services. a fost extrem de sumară. remote login. făcută până aici. Toate programele de comunicaţie în reţea ca de exemplu: telnet. stare. ``telnet cool.news. Utilizatorul vede pe monitorul calculatorului său prompter-ul de login. Un utilizator care tastează. SMTP.alaska. Acest proces se bazează pe următoarele etape: 1. Programul telnet transmite nivelului de transport că doreşte să înceapă o legătură TCP cu 137. prin intermediul unui server de nume de domeniu. Ele îşi urmează drumul spre calculatorul numit cool. network file system.edu. Până aici s-a prezentat modul în care lucrează porturile la capătul la care este conectat serverul--se rezervă porturi specifice pentru sarcini specifice. Fiecare conversaţie este numită curgere. 5. mail. tip de terminal. Protocolul TCP plasează numerele de port al sursei şi destinaţiei în prefixul pe care îl adaugă el pachetului. care îi cere să-l acceseze. iar protocolul IP adaugă. de exemplu. Ele folosesc TCP sau UDP pentru a comunica cu alte calculatoare. 79 .103. Apoi utilizatorul poate lucra pe calculatorul cool.

Utilizatorul final (situat la unul dintre capetele reţelei) poate instala seria de protocoale TCP/IP pe un calculator personal fără a avea vreo cunoştiinţă despre reţeaua regională sau despre reţeaua companiei. trebuie să aibă un nivel intermediar de organizare a reţelei. De exemplu un server de reţea locală poate fi configurat cu următoarele valori: Adresa sa IP: 130. Adresa IP asociată calculatorului său. conectată la INTERNET. Pentru o bună funcţionare a seriei de protocoale TCP/IP este necesar ca elementele acesteia să posede anumite cunoştiinţe. Adresa IP a ruterului care conectează acea reţea locală la restul lumii. De fapt el reprezintă modalitatea de încapsulare IP pentru sistemele de acces 80 . 3. Există trei nivele de cunoştiinţe TCP/IP. Point-to-Point Protocol .132. Au fost trecute în revistă cele patru nivele ale modelului OSI care găzduiesc protocoale din seria TCP/IP şi s-a prezentat modul în care interacţionează elementele acestei serii de protocoale.132. Aceste protocoale funcţionează la nivelul legătură de date. puţin mai în detaliu. Întregul trafic din afara organizaţiei va fi dirijat la o singură conexiune spre un prestator de servicii de reţea regional.net:/rfc.1 . IETF şi se găsesc la adresa: ftp. Acestea pot fi găsite în documente publicate pe INTERNET de tip RFC Request for Comments.255. nu este necesar ca aplicaţiile de reţea să fie rescrise şi nici măcar recompilate dacă se schimbă programul corespunzător nivelului transport. Multe detalii nu au fost dezvăluite. Internet Engineering Task Force. includ aceste două protocoale. 2. SLIP(descris în RFC 1055) şi Protocolul punct la punct.internic. PPP(descris în RFC 1661). Acestea sunt: Protocolul de legătură serială.59. situate în câteva clădiri. Cu ajutorul protocoalelor SLIP sau PPP. The Serial Line Internet Protocol . un calculator aflat la distanţă se poate conecta la un server gazdă.* se află în aceeaşi reţea locală departamentală. Ei trebuie să cunoască numerele IP şi locaţiile fizice a mii de reţele de abonaţi.132.59.59. Totuşi el are nevoie de trei tipuri de informaţie: 1.De îndată ce sarcina a fost împărţită în mai mulţi paşi se poate constata că ea este relativ simplă. Orice adresă IP care începe cu o valoare diferită este accesată indirect transmiţându-ise mesajul prin ruterul cu adresa 130. în consecinţă mesajul putându-i-se transmite direct. Un număr de şase rutere ar putea fi suficient pentru a conecta câteva duzini de reţele locale de departament. Fiecare companie mare sau universitate. destiante calculatoarelor de tip PC.1 Masca subreţelei specifică server-ului că orice alt calculator cu o adresă IP care începe cu 130. De asemenea ei trebuie să aibă o strategie de monitorizare a reţelei pentru a detecta problemele care apar şi a le rezolva rapid. în loc de a fi limitat să folosească o conectare asincronă.255.132. În continuare se reia prezentarea protocoalelor din familia TCP/IP. din dispozitive de dirijare dedicate şi din fişiere de configurare foarte mari.59. Nivelul de interfaţă cu reţeaua Două protocoale de interfaţă cu reţeaua sunt relevante pentru seria TCP/IP. Şi unele pachete de programe TCP/IP. Aceste documente sunt elaborate de către asociaţia de standardizare a INTERNET-ului.0 Adresa ruterului iniţial de conexiune spre exterior: 130. Deoarece nivelul transport realizează o interfaţare standard. Partea din adresa IP (masca subreţelei) care permite să se facă distincţia între diferite calculatoare din aceeaşi reţea locală (pot fi trimise direct mesaje la aceste calculatoare de la alte calculatoare din aceeaşi reţea sau de altundeva din lume (acestea fiind în prealabil transmise ruterului reţelei locale)). Cei care administrează o reţea regională sau naţională trebuie să proiecteze un sistem format din linii telefonice care să permită comunicaţii la foarte mare distanţă. şi prin intermediul acestuia la INTERNET folosind protocolul IP.234 Masca subreţelei: 255. 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 legăturile punct la punct.

conexiunea corespunzătoare acestuia va fi configurată folosind protocolul de control. Password Authentication Protocol. 81 . Address (adresă): Pentru PPP. PAP. sau un protocol de control al nivelului legătură de tip PPP. se configurează una sau mai multe conexiuni de protocol de nivel reţea folosind protocolul de control al reţelei. un protocol de control al reţelei. IPX (NetWare).CRC. +------------+------------+-----------+---------------+----------+--------+-------------+ | Flag | Address | Protocol | Information | Padding | FCS | Flag * | * | | 01111110 | 11111111 | 8/16 bits | | 8 bits | 01111110 | +------------+------------+-----------+---------------+----------+--------+-------------+ Figura 3 Internet. utilizată pentru detecţia erorilor de transmisie.m. cum ar fi multiplexarea inversă sau alocarea dinamică a benzilor de frecvenţă prin intermediul variantei sale Multilink-PPP . După ce legătura de date a fost stabilită. Dacă se utilizează autentificarea. NCP. sau scheme de criptare. IPX. a Network Control Protocol . ş. Dacă se utilizează ca şi protocol de nivel reţea protocolul IP.dedicate INTERNETULUI sau bazate pe adresare numerică (ca şi în cazul telefoniei). Acesta cîmp poate conţine între 0 şi 1500 de octeţi (o valoare diferită poate fi negociată). Acest câmp poate indica utilizarea unui protocol de nivel reţea (cum ar fi IP. a PPP Link-layer Control Protocol. sau protocolul de autentificare Challenge-Handshake Authentication Protocol. Frame Check Sequence. adrese IP. Modul de operare al protocolului PPP este următorul: 1. protocolul de compresie folosit. DDP (AppleTalk). "11111111". cyclic redundancy check . descrisă în RFC 1990 şi în RFC 2125. corespunzător.a. Padding (egalizare): Lungimea cîmpului Information poate fi egalizată.d. CHAP). NCP. LCP . DECnet. Semnificaţia câmpurilor din acest cadru este următoarea: Flag (steguleţ indicator): Octetul "01111110" este folosit pentru a delimita începutul şi sfârşitul transmisiei. protocolul de calitate a legăturii folosit. IPCP. În această etapă se negociază lungimea maximă a cadrelor. După stabilirea fizică a legăturii. Acest atribut al protocolului PPP este foarte util în aplicaţii în care utilizatorii de adresare numerică pot folosi atât IP cât şi un alt protocol de nivel reţea. specific pentru PPP şi IP. numit IP Control Protocol. a unei serii de aspecte cum ar fi: parole. deoarece suportă operaţii specifice pentru acest tip de reţele. aceasta se va face după ce legătura de date a fost stabilită. Formatul de cadru PPP. 2. Protocol: este o valoare exprimată pe 8 sau pe 16 biţi care indică tipul de pachet despre care este vorba în câmpul Information din acelaşi cadru. se foloseşte octetul de adresă. fiecare calculator gazdă trimite pachete LCP pentru a configura şi testa legătura de date respectivă. Pot fi utilizate protocoale de control pentru protocoalele de nivel reţea: IP. După ce fiecare protocol de nivel reţea a fost configurat. PPP ajută utilizarea mai multor protocoale pentru o singură legătură. ISDN. Această egalizare poate fi cerută în unele implementări 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 funcţionează acest protocol. pachete corepunzătoare acestor protocoale pot fi trimise prin această legătură. Una dintre funcţiile de bază ale acestui protocol este negocierea. FCS (secvenţă de verificare a cadrului): este un octet care reprezintă restul obţinut în urma efectuării unei operaţii de verificare a corectitudinii transmisiei. În figura următoare se prezintă formatul unui cadru pentru protocolul PP. Information (informaţie): Conţine pachetele pentru protocolul specificat în câmpul Protocol. scheme de compresie. sau DDP). protocolul de autentificare folosit (se paote alege între protocolul de autentificare a parolelor. De asemenea se negociază şi alţi parametri de configurare. Acest protocol poate fi utilizat şi de reţelele cu integrare de servicii. ML-PPP. În plus. în asociere cu un protocol de nivel reţea. înainte de conectarea iniţială.

535 octeţi. Nivelul INTERNET Protocolul INTERNET (descris în RFC 791).. +-+-+-+-+-+-+-+-+-+-+-+-+Figura 4 Internet. Legătura va rămâne configurată pentru comunicaţii până când pachete specifice pentru protocoalele LCP şi/sau NCP o vor desface.. 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. oferă servicii echhivalente cu cele prevăzute în modelul de referinţă OSI la nivelul reţea. Protocolul IP oferă un serviciu de transport al pachetelor dea lungul întregii reţele. (Padding) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data. Formatul antetului pachetului IP este prezentat în figura următoare. Formatul antetului pachetului IP. Despre acest serviciu se afirmă uneori că nu ar fi de încredere deoarece reţeaua 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ă congestionării reţelei. Pachetele IP conţin un mesaj sau un fragment de mesaj.. Protocolul IP nu trebuie să prevadă un mecanism de control al curgerii datelor..3. 82 .. care poate fi de o lungime mai mare de 65.

Fiecare ruter prin care trece acest pachet va decrementa valoarea înscrisă în acest cîmp. TTL: În acest câmp se înscrie o valoare cuprinsă între 0 şi 255. câmpul TOS poate fi setat de către calculatorul gazdă expeditor conform specificaţiilor făcute la nivelul interfeţei dintre nivelul transport şi nivelul servicii al reţelei INTERNET şi poate specifica o prioritate a serviciului (0-7) sau poate cere ca dirijarea pachetelor să fie optimizată după criterile: cost.Identification (identificare): Folosit când un pachet este fragmentat în bucăţi mai mici pentru a traversa INTERNET-ul. Dacă valoarea curentă ajunge să fie zero pachetul va fi distrus. 83 . . Fragment Offset (poziţionarea fragmentului): indică poziţia fragmentului curent în cadrul pachetului original. În practică dimensiunile pachetelor sunt limitate la unitatea maximă de transmisie. Cel de al treilea bit al acestui câmp nu este folosit. MF şi este folosit pentru a indica ultimul fragment al unui pachet. DF şi indică faptul că fragmentarea trebuie suprimată. Total Length (lungime totală): indică lungimea în octeţi a întregului pachet. nu şi la partea de date conţinută în acel pachet.Internet Header Length (lungimea antetului INTERNET).Flags (steguleţe): Şi acest câmp se utilizează pentru fragmentare şi reasamblare. . antetul IP al unui pachet nu poate fi mai lung de 60 de octeţi. acest identificator este specificat de către ruterul curent.535 de octeţi. numit /etc . astfel încât calculatorul care recepţionează pachetul să ştie că acest pachet poate fi reasamblat. sau Windows 2000.Source Address (adresa susrsei): Adresa IP a calculatorului care a trimis pachetul. pentru calculatoarele care folosesc sistemul de operare Linux/Unix. TOS: Permite ca un calculator gazdă care transmite pachete să solicite diferite tipuri de servicii pentru pachetele pe care le emite. UDP (17). sau OSPF (89). sau fiabilitate. the More Fragments bit .Protocol: indică protocolul corespunzător celui mai înalt nivel din modelul de referinţă OSI cu care sunt prelucrate datele din pachetul curent. TCP (6).Time-to-Live (timpul de viaţă). . întârziere. . pentru calculatoarele care utilizează sistemele de operare Windows NT. indicând numărul de rutere prin care acest pachet va trece înainte de a fi distrus. Câmpurile conţinute în acest antet şi funcţiile lor sunt: . .Biţii sunt numerotaţi de la stânga la dreapta pornind de la 0. . Primul bit al acestui câmp este numit bit de continuare a fragmentării.Version (versiune): Specifică versiunea IP a pachetului. Deoarece versiunea curentă de IP este 4 acest câmp va conţine valoarea în binar 0100. astfel încât diferitele fragmente care sosesc la destinaţie. IHL: indică lungimea antetului pachetului în cuvinte cu lungimea de 4 octeţi. în cazul protocolului IPv4.Header Checksum (suma de control a antetului): în acest câmp sunt înscrise informaţii care să asigure că antetul IP al pachetului recepţionat nu este afectat de erori. Pentru primul fragment dintr-un şir de fragmente. the maximum transmission unit . O lungime minimă de antet este de 20 de octeţi.Destination Address (adresa destinaţiei): Adresa IP a calculatorului căruia i se transmite pachetul. O listă de implementare a acestor protocoale poate fi găsită în fişierul de protocoale de pe fiecare calculator. fiind setat în permanenţă pe zero. Deoarece valoarea maximă care se poate înscrie în acest câmp este de 15. incluzând atât antetul cât şi datele. Pe fiecare linie este situat un cuvânt de 32 de biţi. . De aceea în acest câmp de obicei este înscrisă o valoare mai mare sau egală cu 5 (0101). Lungimea totală maximă a unui pachet IP este de 65. c:\windows pentru calculatoarele care utilizează sistemul de operare Windows 9x. Deşi această facilitate încă nu este asigurată de toate protocoalele Internet. sau c:\winnt\system32\drivers\etc .Type of Service (tipul de serviciu). pentru fragmentele următoare acest câmp va indica poziţia prin valori obţinute prin incrementarea valorii anterioare cu câte 8 octeţi. valoarea înscrisă în acest câmp va fi zero. . Sunt posibile următoarele opţiuni: ICMP (1). Acest control se referă doar la antet. Don't Fragment bit. . MTU. Următorul bit al acestui câmp este numit bit de încetare a fragmentării. să poată fi reasamblate. Trebuie remarcat că fiecare antet IP va avea o lungime de cel puţin cinci cuvinte (adică 20 de octeţi).

Ele reprezintă o secvenţă de 4 numere. Adresele IP sunt ierarhizate pentru a face posibilă dirijarea pachetelor de date şi sunt compuse din două subcâmpuri. Subcâmpul de identificare a reţelei. Deoarece aceste valori sunt separate prin puncte. Clasele A. în reţeaua telefonică. 84 . la fel cum se folosesc prefixurile de ţară.777. Un exemplu de adresă IP este următorul: 208.17. fircare reprezentând valorea zecimală a unui octet de adresă. identificatorul calculatorului gazdă.216 (224) calculatoare gazdă pentru fiecare reţea. Acest identificator este utilizat pentru dirijarea la nivel înalt între subreţele. HOST_ID indică un anumit calculator gazdă. 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. Adrese IP Lungimea adreselor IP este de 32 de biţi. Clasa A de adrese este construită pentru reţele foarte mari şi poate adresa un număr de până la 16. de oraş sau de cartier. Pentru a putea funcţiona în reţele de dimensiuni diferite. cum ar fi tipul de dirijare specificat de un anumit expeditor. O adresă de clasă B are un subcâmp de tipul NET_ID cu o lungime de 14 biţi şi un subcâmp de tipul HOST_ID cu o lungime de 16 biţi.106. Formatul adreselor IP. Cel de al doilea subcâmp. din cadrul subreţelei (deja identificată). NET_ID identifică subreţeaua TCP/IP conectată la INTERNET. B şi C se folosesc pentru identificarea calculatoarelor gazdă şi singura diferenţă între clase este lungimea subcâmpului NET_ID. O adresă de clasă A are un subcâmp NET_ID cu o lungime de 7 biţi şi un câmp HOST_ID cu o lungime de 24 de biţi. Formatul unei astfel de adresă este prezentat în figura 5 Internet. Câmpul conţinând lista de opţiuni poate avea o lungime maximă de 40 de octeţi (care corespunde la un număr de 10 cuvinte). pentru protocolul IP există câteva clase de adrese.162. exprimate în zecimal.- Options (opţiuni): O mulţime de opţiuni care pot fi făcute în legătură cu orice pachet. The Host Identifier. notaţia utilizată pentru scrierea lor este numită zecimală punctată. sau tipul de securitate specificat de către acesta. Primul octet al unei adrese de clasă A va fi un număr cuprins între 1 şi 126. The Network Identifier.

255. cele 16 adrese de clasă B. poate fi segmentat într-un câmp NET_ID cu o lungime de 16 biţi.0-192. pentru scopuri de dirijare.255.16.0. Clasa A B C Masca de subreţea 255. Valoarea 127 pentru NET_ID este folosită pentru testarea în buclă închisă iar adresa 127. şi un câmp HOST_ID cu o lungime de 12 biţi.164 şi o mască de subreţea 255. O adresă de clasă C are un subcâmp de tipul NET_ID cu o lungime de 21 de biţi şi un subcâmp de tipul HOST_ID cu o lungime de 8 biţi. conţinută în spaţiul mai larg al adresei de clasă B va fi 255. măştile de subreţea şi numărul de biţi semnificativi de subcâmp NET_ID sunt prezentaţi în tabelul următor.0 255.255.31. Cineva ar putea citi valoarea acestui subcâmp NET_ID chiar şi în forma "slash-24.0 (adică "/20"). În primul caz o reţea îşi poate diviza spaţiul de adrese pentru a defeni mai multe subreţele prin segmentarea subcâmpului său HOST_ID într-un identificator de subreţea.0 şi 208.0172.0.240.162. se referă amândouă la un subcâmp de tipul NET_ID al unei adrese de clasă C cu HOST_ID de valoare 208. Ultimele două clase de adrese rămase se utilizează doar pentru funcţii speciale şi nu sunt alocate unor calculatoare gazdă individuale.255.0. va fi 255. Se consideră următorul exemplu: se consideră că există un claculator gazdă cu adresa IP 172.0 . Adresele din această clasă au fost construite pentru reţele de mărime medie şi pot fi folosite pentru identificarea unui număr de până la 65. 192.0 Numărul de biţi semnificativi 8 16 24 Măştile de subreţea pot fi scrise în formă zecimală punctată sau doar ca un număr care reprezintă numărul de biţi semnificativi ai subcâmpului NET_ID al adresei IP.17/24 .16." Măştile de subreţea mai pot fi utilizate şi pentru divizarea unui spaţiu de adrese de lungime mare în spaţii pentru subreţele sau pentru a combina mai multe spaţii de adresă de lungime mică. Subnetwork Identifier.0.0.134. Dacă un subcâmp de tipul HOST_ID este completat doar cu cifre de valoare 1 (asta se scrie de obicei 255 sau -1) atunci adresa corespunzătoare se referă la toate calculatoarele gazdă dintr-o reţea. Aceste adrese sunt utilizate în scop experimental.106.536 (216) calculatoare într-o singură reţea.0. Acest tip de adrese au fost concepute pentru reţelele de dimensiuni mici şi pot adresa doar un număr de până la 254 de calculatoare într-o reţea. Printre acestea se găsesc adresele: 10. Se convertesc cele două valori în zecimal şi în binar: 85 . Şi masca de subreţea este scrisă în zecimal punctat şi numărul de 1-uri indică biţii semnificativi ai subcâmpului NET_ID.168. Adresele de clasă D pot începe cu un octet cu valoarea cuprinsă între 224 şi 239 şi sunt utilizate pentru comunicaţii multipunct (trimiterea unui pachet de date la mai mulţi utilizatori) Primul octet al adreselor de clasă E are valoarea cuprinsă între 240 şi 255. 172.106. Primul octet al unei adrese de clasă C va fi un număr cuprins între 192 şi 223. Aceste măşti se folosesc pentru a specifica porţiunea din adresă care specifică reţeaua sau subreţeaua.162. în timp ce masca de subreţea folosită pentru dirijarea în reţele individuale.168. şi cele 256 de adrese de clasă C.0 este una de tip C cu un NET_ID de valoare 208.255.162. În acest caz masca de subreţea. Majoritatea adreselor folosite în ziua de azi sunt de clasă C. folosită pentru dirijarea în INTERNET. se calculează funcţia şi logic între biţii măştii şi biţii adresei IP.0. definit de utilizator 172. De exemplu spaţiul de adresă al unei adrese de clasă B.255. De exemplu adresele. Când ne referim la o întreagă subreţea putem folosi un HOST_ID de valoare 0. Primul octet al unei adrese de clasă B este un număr cu valoarea cuprinsă între 128 şi 191. O unealtă suplimentară de adresare este masca de subreţea.0 255.17 255. Câteva adrese sunt rezervate şi/sau au un înţeles special.20.106 . 208. În continuare se prezintă modul de lucru al măştii de subreţea.0.0.106.0 (adică "/16").0.1 reprezintă o adresă de calculator gazdă local. Adresa 208.255. de clasă A. Cîteva valori ale subcâmpului NET_ID au fost rezervate prin RFC 1918 pentru reţele private şi pachetele de date nu vor fi dirijate prin INTERNET spre aceste reţele..255.0.162.0. Pentru adresele IP din clasele specificate.106. Pentru a determina porţiunea corespunzătoare subreţelei a adresei.0.0.162. SUBNET_ID şi un câmp HOST_ID de lungime mai mică.0.255.0.0. un câmp SUBNET_ID cu o lungime de 4 biţi.

Pentru fiecare domeniu există un singur server de nume autorizat. De aceea acea organizaţie va trebui să folosească adrese de clasă B. Când un calculator gazdă din INTERNET are nevoie de o adresă IP a unui alt calculator gazdă şi cunoaşte doar numele acelui calculator gazdă. Nu se pot utiliza adrese de clasă C. ca de exemplu 255. Acesta este o bază de date distribuită care conţine nume de calculatoare gazdă şi informaţii despre adrese IP pentru toate domeniile din INTERNET.172. O procedură alternativă este să i se aloce acestei organizaţii un bloc de 4 adrese de clasă C. În prezent.000. Acesta poate fi capabil să răspundă la această cerere fie cu informaţie configurată fie cu informaţie ascunsă.168. Pentru exemplul prezentat informaţia de dirijare esenţială poate fi specificată într-o singură rubrică a unui tabel de dirijare. subcâmpul de tipul NET_ID alocat acestei organizaţii este 192. deoarece numărul acestora este mai mic decât 1000.00000000. Ruterul din reţeaua clientului va avea două adrese IP.168.128.0.252.168. majoritatea utilizatorilor nu memorează adresa calculatorului gazdă pe care lucrează în formă numerică.00000000 ------------------------------------------------10101100.255.00010100. pe baza căruia o adresă dintr-o clasă superioară poate fi înlocuită cu un bloc de adrese de clasă inferioară.10000110. 192. Sistemul numelor de domeniu Deoarece lungimea adreselor IP este de 32 de biţi. Majoritatea interfeţelor legăturilor cu clientul dintr-o reţea WAN folosesc adresa /30 .20. una pe interfaţa cu reţeaua LAN.00000000 Se poate determina astfel uşor valoarea de NET_ID .000 de adrese rămân nefolosite. Deşi asta este convenabil pentru operatori. totuşi.164 AND 255.00000000. Pentru a face posibilă înregistrarea numelor noi care apar ca urmare a dezvoltării rapide a INTERNET-ului a fost creat sistemul numelor de domeniu.255. menţin câte o listă cu aceste server-e de nume autorizate. care conţine copii ale tuturor informaţiilor conţinute şi pe server-ul autorizat.168. numele trebuie reconvertit într-o adresă numerică pentru a fi posibilă dirijarea. numit secundar. Fiecare domeniu mai are cel puţin încă un server de nume. 172. Classless Interdomain Routing . în toată lumea.000 ------------------172. CIDR şi este descrisă în RFC 1518 şi RFC 1519.000.134.0 şi 192. Treisprezece server-e de dirijare. oamenii se simt mai bine dacă lucrează cu nume de domeniu. Acest concept.0.130. De aceea majoritatea calculatoarelor gazdă care utilizează protocolul IP au atât o adresă numerică IP cât şi un nume. este lansată o cerere DNS de către primul calculator gazdă către un server de nume local.131.168. pentru calculatorul gazdă ţintă şi cererea DNS va fi trimisă acestuia. adresele IP nu sunt alocate strict pe baza principiului "Primul venit primul servit" ci ele au fost prealocate diferitelor autorităţi de adresare existente în lume. CIDR este o contribuţie importantă la INTERNET deoarece a permis limitarea dimensiunilor tabelelor de dirijare. the Domain Name System .020.0 .11111111. dacă informaţia necesară nu este disponibilă.129. Prin folosirea unei măşti de subreţea cu lungimea de 22 de biţi. Conservarea adreselor IP Utilizarea claselor de adrese IP întâmpină câteva obstacole. în consecinţă 63. De exemplu să considerăm că o organizaţie are nevoie de 1000 de adrese IP.128.10100100 11111111. ca de exemplu 192. folosind în acest scop măşti de subreţea de lungime variabilă.0. poate fi generalizat. serverul local de nume transmite cererea la unul dintre server-ele de dirijare (ruter).000 10101100.0 (adică /22) pentru dirjarea spre acest bloc. Server-ul de dirijare va găsi un server de nume potrivit. DNS. luată din spaţiul de adrese IP publice ale clientului şi una pe interfaţa cu reţeaua WAN care conduce înapoi la calculatoarele gazdă din reţeaua considerată. Această folosire a unei măşti de subreţea de lungime variabilă se numeşte dirijare interdomeniu fără clasă.0 .0. Dar această clasă oferă mai mult de 64000 de adrese. Fişierele de date ale server-elor de nume conţin următoarele tipuri de înregistrări: 86 . 192.00010100.020. Acesta conţine toate informaţiile referitoare la DNS din acel domeniu.

net este server-ul de poştă electronică pentru acest domeniu.cererea ARP dezvăluie adresa IP de destinaţie şi solicită adresa MAC corespunzătoare. De exemplu. O bază de date locală WINS poate fi creată în fişierul LMHOSTS.net specifică faptul că mail. Înregistrarea MX din baza de date de nume sover. the Windows Internet Name Service. Se amintesc: Reverse ARP (RARP). De aceea nu poate fi făcută dirijarea pachetelor folosind aceste adrese. MX-record: este o listă a server-elor de e-mail pentru un anumit domeniu.sover. implementează un mecanism prin care un anumit calculator gazdă poate învăţa adresa MAC a unui destinatar. . MAC. iar mesajul trebuie transmis unui calculator gazdă specific.Înregistrare de nume canonic. medium acces control. a frame relay virtual circuit identifier. care permite unui calculator fără hard-disk să-şi afle propria adresă IP pe baza cunoaşterii propriei adrese MAC. Protocolul de rezolvare a adresei.net" este un nume de domeniu nu un nume de calculator gazdă. CNAME-record: asigură funcţionarea unui mecanism de alocare a unor nume fictive. aliases. astfel încât un anumit calculator gazdă. Dacă calculatorul gazdă destinaţie este situat într-o altă reţea expeditorul va trebui să caute adresa MAC a ruterului de ieşire iniţial al reţelei. - Rezolvarea adreselor Implementările mai vechi ale protocolului IP rulau pe calculatoare gazdă care erau de obicei în reţele locale de tip Ethernet.expeditorul transmite o cerere ARP într-un cadru care conţine adresa de difuzare MAC. Aceste adrese nu sunt ierarhizate. care realizează o corespondenţă între o adresă IP şi un identificator de circuit virtual.Staţia din reţeaua locală care îşi recunoaşte propria adresă IP va transmite un răspuns ARP cu propria sa adresă MAC. A-record: O înregistrare de adresă care face corespondenţa între un nume de calculator gazdă şi o adresă IP. echivalentul sistemului DNS este serviciul WINDOWS de nume INTERNET. care realizează o corespondenţă între o adresă IP şi un identificator de cale/canal ATM. . ATMARP şi ATMInARP. ARP.Înregistrare de pointer. dacă cunoaşte adresa IP a acestuia. se consideră adresa de e-mail kumquat@sover.Înregistrare de corespondenţă prin poştă electronică. dacă acesta este conectat la aceeaşi reţea locală. The Address Resolution Protocol . PTR-record: face corespondenţa între o adresă IP şi un nume de calculator gazdă. . Conceptele. a nodurilor sursă şi destinaţie. Porţiunea din adresă "sover. Înregistrare de server de nume: este o listă a server-elor de nume autorizate pentru un anumit domeniu. Pentru aplicaţii de tipul Microsoft NetBIOS. ATM virtual path/channel identifiers. Lungimea adreselor MAC este de 48 de biţi. . Fiecare transmisie printr-o astfel de reţea locală conţinea o adresă pentru controlul accesului. numelor de calculator gazdă. WINS. Au fost concepute şi alte proceduri de rezolvare a adreselor. Inverse ARP (InARP). care are o singură adresă IP. protocolul IP care rulează pe calculatorul gazdă al expeditorului poate să nu cunoască adresa MAC a destinatarului. descris în RFC 826.Înregistrare de tip A. Când un calculator gazdă trebuie să transmită un pachet la un alt calculator gazdă din aceeaşi reţea. Acest mecanism este relativ simplu: . folosit pentru a pune de acord numele NetBIOS al unui calculator (de exemplu \ALTAMONT) cu o adresă IP. structura şi drepturile sistemului DNS sunt descrise în RFC 1034 şi în RFC 1591. să poată fi cunoscut cu mai multe nume. . 87 . Adresele MAC nu sunt niciodată identice cu adresele IP. protocolul de transmisie trebuie să cunoască atât adresa IP cît şi adresa MAC ale destinatarului deoarece adresa IP de destinaţie este plasată în pachetul IP iar adresa de destinaţie MAC este plasată în cadrul de protocol LANMAC.net. Canonical name records. Din nefericire.

Toate calculatoarele gazdă care utilizează protocolul IP şi toate ruterele care utilizează acest protocol. legale. Cea mai scumpă legătură poate fi făcută prin intermediul a 16 rutere intermediare. LAN Emulation (LE) address (care ia forma unei adrese MAC de tipul IEEE 802). VINES şi DECnet. The Routing Information Protocol version 2 (RIP-2). Datorită creşterii rapide a reţelei INTERNET acest protocol a devenit ineficient. sau economice. întreţin câte un tabel în care sunt înregistrate cele mai proaspete informaţii de dirijare pe care le cunoaşte calculatorul respectiv. Un exemplu de dirijare statică este configurarea unui ruter de ieşire iniţial al unei reţele locale. În cazul calculatoarelor care utilizează sistemul de operare WINDOWS. Ca o alternativă la folosirea unui protocol de dirijare. necesită o bandă de frecvenţă a reţelei mai îngustă. Versiunea a doua a protocolului OSPF este descrisă în RFC 1583 şi a înlocuit protocolul RIP pentru comunicaţiile din reţeaua INTERNET. complete. OSPF. Protocolul BGP-4 permite şi dirijarea pe baze politice. si nu întregul său tabel de dirijare. care realizează o corespondenţă între o adresă ATM de destinatar şi adresa sa de emulare în reţeaua locală. Există trei protocoale de dirijare asociate de obicei cu protocolul IP şi cu INTERNET-ul: RIP. un tabel de dirijare paote fi întreţinut şi folosind "dirijarea statică".este descrisă în RFC 2453 şi prezintă modul în care ruterele fac schimb de informaţii de dirijare folosind un algoritm bazat pe vectori de distanţă. The Open Shortest Path First. acest tabel de dirijare poate fi examinat cu ajutorul unei comenzi de listare a dirijării iar în cazul calculatoarelor care utilizează sistemul de operare UNIX. în tabelele de dirijare BGP sunt înscrise informaţii despre drumul care trebuie parcurs spre reţeaua de destinaţie. Dar completarea tabelelor de dirijare nu este sarcina protocolului IP ci a protocoalelor de dirijare. Dirijarea IP: OSPF. La fel ca şi RIP protocolul BGP se bazează pe un algoritm de măsurare a unui vector de distanţă. AppleTalk. tabelele lor de dirijare. Protocoalele de dirijare în reţele locale care se folosesc în prezent se bazează pe protocolul RIP dar se asociază şi cu alte programe. algoritmul care stă la baza sa converge mai rapid. Cea de a patra versiune a protocolului numit "Poartă la frontieră". el transmite "orbeşte" acel pachet la ruterul de ieşire iniţial al acelei reţele. şi este mai potrivit pentru implementarea în reţele de mari dimensiuni. protocolul IP are responsabilitatea de a dirija pachetele de date. schimbă între ele periodic. fiind folosit să realizeze schimbul de informaţii între domeniile de dirijare INTERNET. Protocoalele de dirijare OSPF şi RIP au fost utilizate la început pentru dirijare în cadrul unui anumit domeniu. IPv6. El realizează această funcţie căutând într-un tabel de dirijare valoarea din subcâmpul IP NET_ID din structura adresei IP a pachetului curent. RIP şi BGP La fel ca şi un protocol de nivel reţea. The Border Gateway Protocol version 4 . Protocolul numit "Cea mai scurtă legătură mai întâi". este un algoritm de dirijare bazat pe analiza stărilor legăturilor şi este mai robust decât protocolul RIP. în acelaşi scop se poate utiliza comanda netstat-r. Dacă un ruter utilizează acest protocol el trebuie să difuzeze informaţii referitoare doar la schimbarea stărilor legăturilor pe care le guvernează. de securitate. Acest protocol este descris în RFC 1771 în timp ce RFC 1268 descrie utilizarea protocolului BGP în INTERNET. pe lângă cele tehnice. dar spre deosebire de alte protocoale care se bazează pe algoritmi similari. este un protocol de comunicaţii externe. specific pentru modelul OSI.LAN Emulation ARP (LEARP). Versiunea a 6-a a protocolului IP La sfîrşitul anului 1995 a fost standardizată această versiune a protocolului IP. BGP-4. Când se utilizează protocolul RIP. Aceste protocoale sunt: NetWare. 88 . Cea de a doua versiune a protocolului numit de "Dirijare a informaţiilor". ca de exemplu într-o reţea de intreprindere. Acest tip de dirijare permite unui administrator de reţea să creeze politici de dirijare bazate pe aspecte politice. protocolul RIP foloseşte numărul de rutere care trebuiesc traversate pentru realizarea acelei legături. Protocolul BGP-4 permite şi utilizarea dirijării CIDR. ruterele vecine. OSPF şi BGP. Ca o măsură a costului unei legături. Dacă un calculator gazdă dintr-o reţea locală trebuie să transmită un pachet în exteriorul acelei reţele.

Unicast. . .Se au în vedere considerente geografice.regionID. Arhitectura şi structura adreselor pentru IPv6 sunt descrise în RFC 2373. Un exemplu de adresă IP . Unicast. 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.Reprezentarea standard este făcută prin 8 valori de lungime 16 biţi separate prin coloane.Comunicaţia se face cu ajutorul prestatorilor de servicii. .Alocarea adreselor în cazul comunicărilor între doi utilizatori. .subnetID.diferitele utilizări sunt specificate prin prefixe. Modificările se referă la: . 89 . .Posibilitatea securizării comuncaţiilor prin implementarea unor mecanisme de autentificare. Protocolul IP v 6.se pot utiliza prefixe pentru a pune în corespondenţă spaţii de adrese de tip v4 cu spaţii de adrese de tip v6 şi reciproc.providerID. . De exemplu adresa anterioară se mai poate scrie în forma 47CD:1234:3200::4325:B792:0428. este 010. control al integrităţii datelor şi control al respectării confidenţialităţii datelor.O mai bună implementare a tipurilor de trafic care au diferite obiective de calitate a servicilor.intefaceID. Dacă adresa conţine un număr mare de zerouri. Un exemplu de adresă IP conform acestei variante este 47CD:1234:3200:0000:0000:4325:B792:0428. Formatul pachetelor Ipv6 este prezentat în figura următoare. . se face la fel ca şi la protocolul CIDR.O primă descriere a acestei versiuni este făcută în RFC 1883. .subscriberID. acestea pot fi omise.Alocarea adreselor nu se mai face cu ajutorul claselor.Creşterea lungimii adresei IP la 128 de biţi. . Această versiune a fost concepută ca să înlocuiască şi să dezvolte versiunea anterioară IPv4.

Numerele de port cuprinse între 0 şi 1023 corespund unor porturi numite. adresa sursei.1.1. Numerele de port din această categorie pot fi folosite atât de aplicaţii de client cât şi de aplicaţii de server. cum este de exemplu root sau administrator. the Transmission Control Protocol. Printre numerele de porturi sunt: Numărul 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 . Numerele de porturi se exprimă pe 16 biţi. Well Known Ports. potturi foarte bine cunoscute. Protocoale de nivel transport Şirul de protocoale TCP/IP conţine două protocoale care corespund nivelelor de transport şi de sesiune din modelul de referinţă OSI. Registered Ports şi aceste numere au fost definite în mod public prin acordul întregii comunităţi INTERNET. the User Datagram Protocol. Numerele de port din domeniul 1024-49151 corespund unor porturi numite porturi înregistrate. corespund unor porturi numite dinamice şi/sau private. pentru a evita conflictul între diferiţi vânzători. Identificatorul de port şi adresa IP formează împreună un socket. UDP. iar comunicaţia capăt la capăt între două calculatoare gazdă este identificată în mod unic în INTERNET prin mulţimea de patru identificatori (portul sursei. din domeniul 49152-65535.6. Numerele de port rămase. Aceste numere sunt alocate în general server-elor aplicaţiilor şi pot fi utilizate doar de procese privilegiate. Dynamic and/or Private Ports şi pot fi folosite liber de orice client sau orice server. Acestea se numesc Protocolul de control al transmisiei. portul destinaţiei şi adresa destinaţiei). Porturi Aplicaţiile de nivel înalt sunt semnalizate în mesajele TCP/UDP printr-un identificator de port. şi Protocolul pachetelor de utilizator.

Formatul de segment TCP. +-+-+-+-+-+-+-+-+-+-+-+-+Figura 6 Internet. Sequence Number: conţine numărul primului octet de date al segmentului curent. reguli de segmentare. din cadrul întregului şir de octeţi..Protocolul TCP Acest protocol este descris în RFC 793 şi realizează un serviciu de comunicaţii prin circuit virtual (orientat pe conexiune) de-a lungul reţelei. Deoarece numărul de secvenţă se referă la o numărătoare de octeţi şi nu la o numărătoare de segmente numerele de secvenţă pentru segmente succesive nu apar în succesiune. Majoritatea aplicaţiilor din şirul de protocoale TCP/IP funcţionează pe baza serviciului de transport implementat de protocolul TCP. Câmpurile unui astfel de segment sunt prezentate în figura următoare şi au semnificaţia descrisă în continuare.. TCP include înfiinţarea şi desfinţarea de circuite virtuale. Source Port şi Destination Port: Identifică porturile sursă şi destinaţie pentru a identifica legătura capăt la capăt şi aplicaţiile de nivel înalt. 1111111111222222222233 01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgement Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Offset |(reserved) | Flags | Window | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options. Unitatea de date pentru protocolul TCP este numită segment. (Padding) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data. reguli pentru formatarea mesajelor. reguli de controlul traficului şi reguli de corecţie a erorilor.. Numărul de secvenţă. Porturile sursă şi destinaţie. 91 .. ci transmite blocuri de octeţi din structura şirului de date care trebuie schimbat între expeditor şi destinatar.. Această denumire este justificată de faptul că protocolul TCP nu recunoaşte mesaje.

conţine valoarea dimensiunii ferestrei de recepţie adică numărul octeţilor transmişi pe care expeditorul segmentului curent este dispus să-i accepte de la destinatar. Steguleţe de control. URG : Când este setat indică faptul că segmentul curent conţine date de mare prioritate şi că valoarea din câmpul Urgent Pointer este validă. la acel moment. Window: este utilizat pentru controlul traficului. Închiderea completă a conexiunii cere să se transmită câte un segment cu steguleţul FIN setat în fiecare direcţie. Acknowledgment Number: Este folosit de expeditor pentru a valida recepţia datelor. Push Function. Selective Acknowledgement (SACK). Steguleţ de sfârşit. Options: este folosit la stabilirea conexiunii pentru a permite negocierea unor opţiuni. FIN: Setat cere terminarea normală a conexiunii TCP în direcţia în care segmentul curent traversează reţeaua. Steguleţ de sincronizare cu numărul de secvenţă. Protocolul UDP Protocolul UDP. Reset Connection. Steguleţul opţiuni. SYN: setat în segmentele iniţiale folosite pentru stabilirea unei conexiuni. Acest câmp indică numărul de secvenţă al următorului octet aşteptat de la destinatar. Pointer-ul de urgenţă. ACK: Când este setat. Steguleţele includ: Steguleţ de urgenţă maximă. Steguleţ fereastră. Synchronize Sequence Numbers. Control Flags: O mulţime de steguleţe de control care controlează unele aspecte ale conexiunilor virtuale TCP. Opţiunea cel mai des utilizată este dimensiunea maximă a segmentului. Unele aplicaţii. Steguleţ de validare. PSH: Este folosit când aplicaţia de transmisie vrea să forţeze protocolul TCP să transmită imediat datele care sunt în registre. atât pentru antet cât şi pentru date. care este validat când steguleţul URG este setat. cum ar fi cele care implică o cerere simplă şi un răspuns sunt mai potrivite pentru protocolul UDP deoarece nu se mai pierde timp cu construcţia şi distrugerea circuitului virtual. indică poziţia primului octet de date încă neexpediat din segment. Steguleţ de forţare. indică faptul că valoarea cuprinsă în câmpul Acknowledgment Number field este validă. Steguleţ de sumă de control. Urgent Pointer: Datele "urgente" reprezintă acele date care au fost marcate ca prioritare de către o aplicaţie de nivel înalt. descris în RFC 768. maximum segment size. Acknowledgment Field Significant. MSS. De obicei acest bit este setat. Checksum: Permite o detecţie rudimentară de eroare de bit pentru segment. Aceste date ocolesc de obicei sistemul uzual de registre TCP şi sunt plasate într-un segment între antet şi datele normale. Urgent Pointer Field Significant . 92 . Alunecarea datelor. fără a aştepta ca aceste registre să se umple. Steguleţ de reset-are a conexiunii. cu excepţia perioadei de stabilire a conexiunii pentru primul mesaj. RST: Când este setat întrerupe imediat conexiunea TCP între capete. Acest cîmp indică şi lungimea antetului segmentului. Steguleţ de urgenţă.Numărul de validare. oferă un serviciu de transfer de pachete între capete fără conexiune. Finish. care permite ca segmente din exteriorul secvenţei de segmente să fie acceptate de către un receptor. Acest steguleţ este util pentru transmiterea unor unităţi mici de date. Data Offset: Trimite la primul octet de date din segmentul curent. O altă opţiune este cea de validare selectivă. indică faptul că segmentul curent conţine numărul de secvenţă iniţial. Dacă aceasta nu este specificată atunci se alege valoarea iniţială de lungime maximă a segmentului de 536.

Utilizarea acestui câmp este opţională în protocolul UDP şi poate fi setat pe 0. care informează expeditorul pachetelor IP despre evenimente anormale. Mesajul Probleme. Motivul pentru care destinatarul nu poate fi atins este că acel calculator este necunoscut. Length: Indică lungimea totală a pachetului UDP. Acest protocol colateral are o importanţă particulară în aplicaţiile IP. Portul destinaţie. incluzând antetul şi datele. care conţine aceleaşi date. Un calculator gazdă trimite un mesaj ecou unui alt calculator gazdă. Source Port: Identifică portul UDP folosit de către expeditorul pachetului. Redirect: Este folosit de un calculator gazdă sau de un ruter pentru a informa expeditorul că pachetele trebuie transmise la o altă adresă. +-+-+-+-+-+-+-+-+-+-+-+-+Figura 7 Internet. Câmpurile unui pachet UDP sunt prezentate în figura următoare iar semnificaţia lor este prezentată în continuare. Checksum: Realizează o detecţie rudimentară pentru pachet. Portul sursă. Cea mai importantă funcţie a protocolului UDP este să adauge un număr de port la adresa IP pentru a se obţine un socket pentru aplicaţia avută în vedere. este un protocol ajutător pentru IP. Destination Unreachable: Indică faptul că un pachet nu poate fi livrat deoarece calculatorul destinaţie nu poate fi atins. Formatul de pachet UDP. Aceste două mesaje se folosesc pentru a verifica dacă un anumit calculator gazdă poate fi atins sau nu într-o anumită reţea. Lungimea. reţeaua sau calculatorul destinaţie nu poate fi atins de acest tip de serviciu. Cele mai frecvent utilizate tipuri de mesaje folosite de ICMP sunt: Mesajul Destinaţie de neatins... Protocolul ICMP Protocolul de control al mesajelor pe INTERNET.1111111111222222222233 01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data. 93 . ICMP nu este un protocol clasic capăt la capăt ca TCP sau UDP. Parameter Problem: Indică faptul că un ruter sau un calculator gazdă întâmpină o anumită problemă referitoare la antetul pachetului curent. Sumă de control. Destination Port: Identifică portul folosit de către receptorul pachetului. Mesajul Ecou şi răspuns la ecou: Echo and Echo Reply. El este capăt-la capăt î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). Din motive de securitate mesajele de redirectare trebuiesc blocate de către dispozitivele de tip firewall. Aceste mesaje stau la baza comenzii Ping. descris în RFC 792. deşi era cerută fragmentarea aceasta nu a fost realizată (steguleţul DF este setat). Mesajul Redirectare. care poate conţine nişte date şi calculatorul care recepţionează acest mesaj răspunde cu mesajul de răspuns la ecou.

and ack" segments. Prezentarea care urmează este destinată doar exemplificării. ack-bits.Mesajul de congestie. Mesajele ICMP sunt transportate de către pachetele IP. Fazele realizării acestei conexiuni sunt prezentate în figura următoare. a fin/ack 94 . care transmite un mesaj de uz general sitemului client. intrusion detector. această fază de stabilire a conexiunii este o cale de cunoaştere a programării direcţiei conexiunii TCP. Stabilirea conexiunii TCP şi colaborarea cu ICMP Pentru a putea folosi protocolul TCP este foarte important să se înţealeagă cum se realizează conexiunea în cadrul acestui protocol. setaţi. ack-bits. the "quit" command. ceea ce este important deoarece regulile de conectare pot diferi pentru conexiuni din interiorul respectiv cu exteriorul unei reţele. acesta transmite comanda de terminare. referindu-se la un POP server. În continuare se prezintă un exemplu în care un server POP3 (care ascultă folosind portul TCP 110) este contactat de un client (care foloseşte portul TCP 1067). proxy server. Pentru persoanele care examinează urmele pachetelor. creând o măsură a timpului pierdut de sistemele acţionate la distanţă pentru încarcarea în registre şi prelucrarea pachetelor de date şi un mecanism care să permită calculatoarelor gazdă să-ţi sincronozeze ceasurile. Cu "\n" s-a notat sfârşitul de linie. Legăturile TCP au trei părţi importante: stabilirea legăturii. syn-bits şi cu biţii de acceptare. Mesajul de depăşire de timp. De aceea terminarea conexiunii necesită patru segmente. Pentru dispozitivele de tip firewalls. ISN. Biţii de sincronizare îi spun receptorului (sever-ului) că expeditorul (clientul) este în modul de iniţializare ISN şi că ISN-ul nu a fost încă confirmat. schimbul de date şi terminarea legăturii. server-ul răspunde cu un segment în care doar bitul de acceptare este setat iar numărul de validare. TTL Exceeded: Indică faptul că un pachet a fost distrus pentru că în câmpul său TTL a fost înscris un 0 sau pentru că nu a fost recepţionat întregul pachet înainte de expirarea timpului de fragmentare Mesajul de ştampilă temporală şi mesajul de răspuns la ştampila temporală: Aceste mesaje sunt asemănătoare mesajelor de ecou. Ea este foarte importantă din mai multe motive. sau mai precis două perechi de segmente. între client şi server şi validează numărului iniţial de secvenţă al unui al treilea calculator gazdă. Aceste segmente ilustrează modificările şi relaţiile dintre numerele de secvenţă ale clientului şi server-ului şi numerele de acceptare ale acestora. Trebuie notat că în câmpul de număr de acceptare treebuie să se găsească o valoare mai mare decât ISN-ul server-ului. Faza finală a legăturii TCP este terminarea conexiunii. la acest moment nu este încă fixată. Deşi legăturile TCP sunt duplex (chiar dacă o aplicaţie dată nu asigură comunicarea simultană bidirecţională). exchange of "syn. fin-bits şi cu biţii de acceptare. Source Quench: Este transmis de un ruter pentru a indica faptul că este congestionat. Partea finală a acestei etape iniţiale de stabilire a conexiunii presupune trimiterea de către client a unui segment în care şi bitul de acceptare este setat. şi server-ul semnalizează terminarea. dar plasează o ştampilă temporală (cu o granularitate de ordinul milisecundelor) în cadrul mesajului. cu un număr de secvenţă de 1567 şi cu un număr de acceptare. Server-ul răspunde cu un segment cu biţii de sincronizare. syn/ack. Următoarea fază a legăturii TCP este schimbul de date. datorită umplerii tuturor registrelor sale de date şi că distruge pachete. sign off. În acest caz clientul trimite server-ului un segment cu biţii de terminare. Faza stabilirii conexiunii începe prin schimbare numărului iniţial de secvenţă. În acest exemplu clientul începe prin a trimite server-ului un segment TCP conţinând biţii de sincronizare şi un număr de secvenţă de 800. Bitul de acceptare indică faptul că valoarea din câmpul numărului de acceptare este validă iar valoarea 801 pentru ACK este modalitatea în care server-ul indică ISN-ul clientului. Apoi server-ul transmite un segment de acceptare a finalizării. Biţii de sincronizare şi ISN-ul lui 1567 au aceeaşi semnificaţie ca şi mai sus. recunoaşterea fazei de iniţializare le permite găsirea începerii conexiunii. setaţi. Această fază de stabilire a conexiunii se mai numeşte şi schimbare de biţi de sincronizare şi acceptare. protocolul TCP vede conexiunea ca şi o pereche de legături simplex. the Acknowledgment Number este incrementat. Numărul de validare al segmentului nu este arătat deoarece valoarea sa. Acknowledge Number de 801.

ack. ACK=1596 -------------------------------------------------------> src_port=1967. ack. dst_port=110 fin. SEQ=801. SEQ=800 --------------------------------------------------------> src_port=1967. SEQ=807. SEQ=1595. Fazele conectării TCP. clientului.segment. ack.12\n) ack. SEQ=1586. dst_port=1967 ack. SEQ=801. Descrierea deja făcută se referă la un "scenariu" normal pentru realizarea unei legături TCP între un client şi un server. ACK=1595 -------------------------------------------------------> src_port=1967. dst_port=1967 DataLen=18 (POP3 Server V1. ACK=801 <-------------------------------------------------------src_port=110. ACK=807 <------------------------------------------------------src_port=110. ACK=801 <-------------------------------------------------------src_port=110. SEQ=806. SEQ=1568. SEQ=1567. ACK=806 <-----------------------------------------------------src_port=110. 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 . dst_port=110 DataLen=5 (quit\n) ack. dst_port=1967 DataLen=9 (Sayonara\n) ack. ACK=1586 -------------------------------------------------------> src_port=1967. dst_port=1967 fin. dst_port=1967 ack. dst_port=110 Figura 8 Internet. dst_port=110 syn. dst_port=110 ack. SEQ=1595. ACK=1568 --------------------------------------------------. dst_port=110 ack. CLIENT SERVER 1 1 1 1 1 1 1 1 1 1 1 syn. ACK=807 <------------------------------------------------------src_port=110.----> src_port=1967. SEQ=806. ACK=1595 -------------------------------------------------------> src_port=1967.

(RFC 1436). ruterul de subreţea al calculatorului B va transmite un mesaj de tip ICMP de imposilibitate a atingerii calculatorului B. acknowledge. fiind o interfaţă între un utilizator al unui serviciu de poştă electronică şi server-ul de poştă electronică corespunzător.Două calculatoare gazdă UDP comunică într-un mod asemănător. The File Transfer Protocol: este un protocol care permite unui utilizator să transfere fişiere spre respectiv dinspre calulatoare gazdă aflate la distanţă. Archie: Un utilitar care permite unui utilizator să caute toate în toate site-urile unde există acces anonymous-ftp fişiere aprţinând unei anumite tematici. Este protocolul preferat de dirijare interioară. Acest protocol este actual depăşit moral fiind înlocuit de protocolul World Wide Web. În prezent sunt utilizate în INTERNET diferite versiuni de HTTP. calculatorului A. RST şi de acceptare. OSPFv2. Aplicaţii TCP şi UDP În continuare se prezintă protocoalele de acest tip cel mai frecvent utilizate. (RFC 959). Paginile WWW sunt de obicei concepute cu ajutorul limbajului Hypertext Markup Language (HTML). În continuare se explică ce se întâmplă atunci când celălalt calculator nu "ascultă" la portul pe care legătura îl estimează sau atunci când celălalt calculator nu există. dar cea folosită cel mai frecvent este versiunea 1. Acest protocol este folosit pentru a tansfera mesaje de poştă electronică de la server la client. care se baează pe codul ASCII şi este un limbaj independent de platforma pe care rulează aplicaţiile sale. Celălalt 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ă". FTP. El asigură o mare flexibilitate în gestionarea cutiei poştale. a utilizatorului. calculatorul b răspunde cu un segment TCP cu steguleţele de reset. The Open Shortest Path First version 2 : este un protocol de dirijare a stărilor legăturilor într-o reţea de organizaţie. The Internet Mail Access Protocol : este un protocol care reprezintă o alternativă la protocolul POP. Nivelul de aplicaţie TCP/IP Protocoalele TCP/IP de nivel aplicaţie ajută la implementarea tuturor aplicaţiilor (utilităţilor) pe care le oferă INTERNET-ul. The Hypertext Transfer Protocol : este protocolul de bază pentru schimbul de informaţii prin World Wide Web (WWW). (RFC 1866). calculatorului A. 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 legături. În continuare se va prezenta o listă a acestor aplicaţii.0 (RFC1945). care se presupune că "ascultă" la portul indicat pachetul curent. IMAP. ACK. Finger: este un protocol folosit pentru determinarea stării altor calculatoare gazdă şi/sau utilizatori (RFC 1288). setate. Celălalt 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ă). HTTP. BGP-4. Celălalt calculator nu ascultă la portul UDP: Dacă calculatorul A încearcă să contacteze calculatorul B la un port UDP la care calculatorul B nu "ascultă". comandată printr-un meniu. unul dintre ele trimite un pachet UDP celuilalt. 96 . DNS. Acest protocol este deja depăşit moral. fiind înlocuit de protocolul World Wide Web. calculatorul B trimite un mesaj de tip ICMP de imposibilitate a atingerii portului. Gopher: este un utilitar care permite utilizatorilor să caute date memorate pe alte calculatoare gazdă folosind o interfaţă ierarhizată. The Domain Name System : este un protocol care defineşte structura numelor pe INTERNET şi modul lor de asociere cu adrese IP precum şi asocierea poştei electronice şi a serverelor de nume cu diferite domenii. mailbox.

Ping, The Packet Internet Groper: este un utilitar care permite unui utilizator să determine starea altor calculatoare gazdă şi întârzierea cu care este livrat un anumit mesaj acelui calculator gazdă. Foloseşte mesaje de ecou ICMP. POP, The Post Office Protocol : defineşte o interfaţă simplă între un soft de utilizator de tip client de poştă electronică (ca de exemplu Eudora, Outlook sau programul de e-mail al căutătorului pe INTERNET) şi un server de poştă electronică folosit pentru transferul mesajelor de poştă electronică de la un server la un client şi permite utilizatorului să-şi administreze cutia poştală. 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 măsurare de distanţe într-o reţea de organizaţie. 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 seamănă mult cu protocolul Telnet. Spre deosebire de acesta protocolul SSH presupune criptarea parolelor şi a datelor transmise. Acest protocol permite comunicaţia criptată între claculatoare gazdă care nu sunt considerate de încredere printr-o reţea considerată nesigură. Utilizarea sa presupune că pot exista persoane externe care să "asculte" comunicaţia respectivă. Acest protocol implementează şi unele metode de autentificare. Funcţionarea sa se bazează pe criptarea datelor care sunt schimbate în cadrul acelei comunicaţii. 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 fişiere 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ă: foloseşte sistemul de criptare RSA pentru a verifica cheile calculatoarelor gazdă şi foloseşte fişierul ~/.rhosts pentru autentificarea utilizatorului. - bazat atât pe calculatoarele gazdă cât şi utilizator: realizează atât verificarea cheilor calculatoarelor gazdă cât ş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 cunoaşte 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. Identităţile server-ului şi clientului pot fi verificate folosind semnături digitale. La sfârşitul schimbului de chei o cheie secretă este împărţită de către cei doi utilizatori aflaţi în comunicaţie, 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 iniţializat), Blowfish, DES, DES triplu, etc. Această variantă de algoritm SSH foloseşte şi verificări de sume de control de tip MD5, pentru stabilirea integrităţii datelor. SMTP, The Simple Mail Transfer Protocol: este un protocol standard pentru poşta 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 poştă electronică să transmită un mesaj spre un server. Formatul mesajului este descris în RFC 822. Extensiile MIME (Multipurpose Internet Mail Extensions ), (care se pot adăuga la mesaj) sunt descrise în RFC 1521 şi în RFC 1522. SNMP, The Simple Network Management Protocol: defineşte proceduri şi baze de date conţinând informaţii de management pentru administrarea dispozitivelor de reţea care folosesc

97

protocoalele TCP/IP. Protocolul SNMP, descris în RFC 1157 este utilizat frecvent în reţele 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 cărui utilizare se răspândeşte 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ă aplicaţie 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. Totuşi 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 reţele. Acest protocol este descris în RFC 854. TFTP, The Trivial File Transfer Protocol, este un protocol specializat pentru unele aplicaţii simple de transfer de fişiere. 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 afişează 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, începând cu Windows 95 au un utilitar tracert. Whois/NICNAME: sunt utilitare de căutare în baze de date. Ele caută informaţii 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 funcţionează pe calculatoare de uz general sau reprezintă echipamente de sine stătătoare. Indiferent de construcţie aceste echipamente folosesc o interfaţă cu reţeaua, 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 afişare a interpretării (măcar parţiale) acestor pachete. În figura următoare se prezintă o astfel de afişare. Este vorba despre o comandă POP3 şi despre răspunsurile obţinute. 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ă, aşa cum este transmis pe linie. Acesta este şirul de biţi. Cea mai interesantă este regiunea din mijloc. Aici este interpretat conţinutul 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

tcpdump. În exemplul considerat este vorba despre cadrele cu numerele de ordine cuprinse între 77 şi 80. aplicaţii şi utilitare. Este folosit formatul de cadru Ethernet II. Pachetul din exemplul considerat utilizează protocolul IP varianta 4. are o lungime de 53 de octeţi şi transportă un segment TCP. ---------------| Application |-------------. După informaţia IP urmează informaţia TCP.DG ----->| |------------. Numărul portului destinaţie este 110. numite INSTRUCTOR (server-ul) şi WINPHAROAH (clientul). TCP/IP nu reprezintă o pereche de protocoale de comunicaţie ci un şir de protocoale. 6. adică portul asociat cu un server POP3. Când un client POP3 se conectează la server.end-to-end connection ------>| Application | |--------------| |<--------. Cele prezentate mai sus au rolul de a deschide doar apetitul cititorului pentru unul dintre cele mai utile echipamente care pot fi utilizate în comunicaţiile de date.virtual circuit ------------->| TCP --------------------------|<-. cu numărul 80). Există în prezent un număr destul de mare de pachete de programe de analiză de protocoale gratuite sau la preţuri rezonabil de mici atât pentru sistemul de operare Linux cât şi pentru Windows. Unul dintre cele mai populare este: tcpdump (care poate fi achiziţionat de la adresa http://www. Următoarele două coloane prezintă adresele de sursă şi de destinaţie. În sfârşit se vede însăşi comanda POP3. în acest exemplu sunt două staţii care comunică între ele. Aceste numere de ordine sunt afişate pe coloana 1. analizorul de protocoale. Concluzii Cum s-a arătat mai sus. Mai trebuie notat că acest pachet a fost trimis de la client Spre server.| |-------+------. Dacă numele de utilizator este valid.org). care este transmisă de utilizator cu ajutorul unei comnezi POP3 PASS (care este de asemenea prezentată în figură).DG -->| IP |--------------| IP | | |-------------. (specificat pe coloana a 3-a). Acest tip de echipament este foarte util şi pentru managerii de reţele respectiv pentru administratorii de securitate. Deoarece portul de destinaţie este POP3 înseamnă că pachetul acesta conţine o comandă POP pentru server din partea clientului (pe care o puteam şti şi consultând rezumatul cadrul vecin .1.| |---------------| |Subnetwork 1|<--->|Subnet1|Subnet2| ----------->|Subnetwork 2 | ---------------HOST --------+-------GATEWAY ---------------HOST Figura 10 Internet.| | TCP ---------------|<-----. La dreapta antetului de informaţii Ethernet este antetul de pachet IP. server-ul cere o parolă.| | IP |<-. 100 .Partea de sus prezintă un rezumat al cadrelor care au fost capturate în registrul analizorului de protocoale. Din ce în ce mai des aceste protocoale sunt numite şir de protocoale INTERNET dar vechiul nume va mai fi folosit încă multă vreme. Trebuie observat că această parolă este tranmisă în formă necriptată. În figura următoare se prezintă relaţiile dintre diferitele nivele de protocoale TCP/IP.3. Arhitectura şirului de protocoale TCP/IP. primul lucru pe care el trebuie să-l facă este să trimită numele de utilizator folosind comanda POP3 USER. Pe colana a doua sunt afişate lungimile cadrelor de pe coloana 1 (în octeţi).

Acesta este de obicei un ruter în cazul LAN-urilor sau un sistem intermediar în cazul în care este vorba despre o legătură de tip OSI. 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. For Your Information. Frequently Asked Question. Alte surse de informare Există numeroase surse de informare despre şirul de protocoale TCP/IP şi despre INTERNET. De exemplu RFC 2026 descrie procesul de standardizare al INTERNET-ului iar documentul STD 1 conţine lista oficială de standarde de INTERNET.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).S. Pentru dispozitivul de interconectare a celor două reţele se foloseşte termenul gateway. IP realizează un serviciu de transport al pachetelor prin orice subreţea aflată pe drum (indiferent dacă este de tipul LAN sau WAN.Aplicaţiile şi utilitarele se grupează în calculatoarele gazdă sau în sistemele de comunicaţie de capăt. Această categorie de documente este descrisă în RFC 1150. umor. Toate documentele descrise mai sus fac trimiteri şi către alte surse de documentare. O categorie de astfel de documente este destinată standardelor. prin INTERNET. Government Open Systems Interconnection Profile HDLC-High-level Data Link Control 101 . Aceste documente furnizează informaţii de bază pentru comunitatea INTERNET. În terminologie OSI un dispozitiv de tip gateway este folosit pentru a realiza conversia de protocol între două subreţele şi/sau aplicaţii.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. între cele două calculatoare gazdă. lucrări de sinteză sunt distribuite ca şi documente RFC. în format de text ASCII. TCP realizează o legătură prin circuit virtual de încredere. O altă categorie de documente utile pentru studiul INTERNET-ului este cea prescurtată cu FAQ. Specificaţii.S. Pot fi găsite astfel de documente despre diferite subiecte de la ISDN şi criptografie la INTERNET şi Gopher. Prescurtări 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. Acest tip de documente pot fi obţinute gratuit. rapoarte. O altă categorie de documente de tip RFC este cea notată FYI. Două astfel de documente sunt foarte interesante pentru utilizatorii de INTERNET: "FYI on Questions and Answers . Request for Comments. acestea pot fi identificate prin particula "STD".

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

etc. Această metodă se foloseşte în cazul reţelelor radio. Protocoalele IP au fost concepute pentru a permite transferul de pachete între două calculatoare ale reţelei. Mai târziu. Cele mai frecvente atacuri de acest tip sunt făcute de programe care se execută pe aceeaşi reţea locală cu ruterul. packet sniffing.Atacurile cu înregistrări IP vechi au fost utilizate pentru a se asigura penetrarea ilegală a unor calculatoare gazdă. Aceasta poate fi înglobată la diferite nivele arhitecturale. Calculatorul expeditor cifrează datele (nu şi antetul). interceptând pachetele transmise acestuia. Astfel de soluţii sunt pe cale de a fi introduse în noile variante de protocoale IP. Există sisteme dedicate de criptare pentru modemuri şi linii închiriate. precum şi eliminarea unor "găuri" de securitate. pe care se tansmit atât semnale de televiziune cât şi date. în anii 90. ceea ce asigură accesul tuturor calculatoarelor la cadrele (secvenţe de pachete) transmise. Posibilitatea interceptării este ridicată. Deşi au fost concepute să lucreze în medii ostile. . La modemurile de mare viteză interceptarea devine mai dificilă datorită folosirii mai multor frecvenţe. secretizarea. detectate la programe de tipul sendmail sau login. . Securitatea la nivel IP După anul 1980. Cifrarea la nivel legătură de date. Un alt protocol care poate crea probleme de securitate este DNS. Cifrarea la nivelul aplicaţiei. Ele nu sesizează şi nici nu împiedică ca alte calculatoare ale aceleiaşi reţele să intercepteze şi să citească aceste pachete în timp real. Singura cale de protecţie împotriva interceptării este criptarea. Pachetele sunt cifrate automat atunci când sunt transmise între două noduri. Cifrarea capăt la capăt. deoarece cere o cooperare cu compania de telefoane sau un acces fizic la liniile de telefon. Acestea criptează întregul trafic al calculatoarelor aceleiaşi organizaţii. eavesdropping. De asemenea în structura lor originală nu au fost prevăzute soluţii de securitate cum ar fi autentificarea. În continuare se prezintă câteva dintre vulnerabilităţile specifice diferitelor medii de transmisie a pachetelor între calculatoare: Ethernet. . De exemplu versiunea Kerberos a programului telnet criptează datele transmise în ambele direcţii. Riscul major îl constitutie faptul că nu există mijloace de verificare a corectitudinii informaţiilor returnate ca 103 . Traficul cu calculatoare din alte organizaţii rămâne necriptat. Nu se foloseşte în reţele Ethernet.Captatorii de parole interceptează parole sau alte informaţii sensibile care trec prin reţea. Nici protocoalele IP nu sunt suficient de bine protejate împotriva unor astfel de atacuri. Linii telefonice. Multe organizaţii apelează la această soluţie. datorită faptului că este vorba de un canal pe care se fac frecvent transmisii broadcast. provenind din partea unor calculatoare legitime. protocoalele IP sunt vulnerabile la atacuri extinse. Posibilitatea interceptării este medie. La calculatorul destinatar datele sunt automat decriptate. Criptarea este făcută la nivelul programelor de comunicaţii care reprezintă aplicaţii INTERNET. singurele care au mijloacele de decriptare necesare. INTERNET-ul a continuat să fie atacat.Furtul conexiunilor a fost folosit pentru a obţine controlul asupra unor sesiuni deschise. ţinerea confidenţială a conturilor şi folosirea lor doar de către proprietar. Cablul TV. ceea ce pune atacatorul în situaţia de a nu putea înţelege traficul. pentru conectarea reţelelor la INTERNET. Soluţiile sugerate împotriva acestor pericole constau într-o bună alegere a parolelor. calculatoarele conectate la INTERNET au constituit obiectul unor atacuri individuale dintre cele mai diverse. rutere cu criptare. cu mijloace şi metode mai elaborate: . folosind. aceste reţele fiind de tip broadcast (orice calculator din reţea poate transmite un mesaj tuturor celorlalte calculatoare din reţea).6. Acest tip de atac se numeşte ascultarea liniei. Posibilitatea interceptării este ridicată datorită posibilităţii de acces la cablul TV.Inserarea de date vechi sau false a fost folosită de atacatori pentru a compromite integritatea unor fişiere sau programe. sau captarea pachetelor.2. făcând faţă unor căderi de calculatoare pe anumite rute. Canalul radio (microunde) Posibilitatea interceptării radio este ridicată.

Ele pot fi astfel construite încât să pară că vin de la un server DNS.Refuzul de servicii. un atacator poate cu uşurinţă "inunda" calculatorul gazdă. El se referă la un complex de măsuri procedurale. care apare atunci când entităţile (utilizatori sau programe). De exemplu.Există posibilitatea ca un atacator să creeze un server DNS fals. Se poate încărca cu uşurinţă un astfel de server cu răspunsuri cu adrese IP incorecte. în aşa fel încât să se poată realiza comunicaţii sigure (fiabile) între procese (aplicaţii) situate la distanţă. Din punct de vedere al securităţii acest lucru înseamnă: integritatea şi protecţia resurselor (prin controale adecvate) şi implementarea unor servicii şi protocoale de securitate.Repudierea. dacă DNS spune că un anumit calculator gazdă are o anumită adresă IP.Analiza traficului. constă din ştergerea. să detecteze şi să corecteze pierderile de informaţii din sistem. etc.Modificarea secvenţei mesajelor. pentru o cerere de nume de calculator gazdă. "viermi".urmare a unei cereri DNS de rezolvare a unei adrese. . logice şi fizice estinate să prevină. apare atunci când utilizatori ai reţelei refuză să participe la asociaţii. este realizată de viruşi. fac operaţia inversă de determinare a numelui asociat de calculatorul gazdă şi îl compară cu valoarea tastată pentru autentificare. Principalele probleme de securitate ce apar într-un sistem deschis distribuit sunt: . apare atunci când utilizatorii legali sunt împiedicaţi să execute anumite funcţii. relauarea sau reordonarea ilegală a secvenţei de mesaje transmise. . pe propriul calculator. .Deoarece protocolul DNS foloseşte pachete UDP. Măsurile de securitate pot fi: . Termenul de securitate este folosit în sensul minimizării vulnerabilităţii informaţiilor şi resurrselor.Modificarea ilegală a programelor. aceasta este laută drept bună şi se transmite informaţie. Serviciile de securitate. 104 .Asocieri ilegale. Ele analizează adresa IP de pe conexiunea TCP. . Iată câteva posibilităţi de atac la acest nivel: . Clientul DNS va accepta răspunsul ca venind de la un server DNS. reuşesc să pătrundă în reşea sub o altă identitate. "cai Troieni". Ele trebuie să facă în aşa fel încât costul obţinerii ilegale a unor date sau al modificării ilegale a acestora să fie superior costului de obţinere legală a acelor date iar timpăul necesar pentru efectuarea operaţiilor ilegale să fie atât de lung încât datele obţinute să devină caduce. De exemplu comenzile rsh şi rlogin folosesc numele calculatorului gazdă drept element de autentificare. uneori sensibilă. criptografia). . apare atunci când entităţile intruse observă protocoalele.Modificarea sau distrugerea datelor.Accese neautorizate. 6. . către acest calculator.logice (controlul accesului. care permit unui utilizator sau proces neautorizat să acceadă la obiecte la care nu are dreptul. nenumărate răspunsuri invalide. eludând serviciile de control al accesului. suma şi destinaţiamesajelor transmise. Din păcate adresele Ip şi numele ede calculatoare gazdă sunt folosite frecvent în INTERNET în scop de autentificare. Arhitectura securităţii în INTENET Abordarea securităţii în sistemele distribuite pleacă de la modelul OSI. . lungimea. construind. .Schimbarea identităţii.procedurale (selectarea personalului.fizice (camere speciale. . controalele şi protocoalele au ca scop protejarea resurselor şi informaţiilor schimbate între procese. care permit să se realizeze legături logice (asociaţii) între utilizatorii reţelei prin eludarea politicii de autorizare şi autentificare. El poate apoi infecta şi servere DNS reale. care poate fi unul de interceptare. uşi blocate).3. . schimbarea periodică a parolelor). inserarea. frecvenţa. .Multe sever-e DNS memorează orice răspuns pe care îl primesc. al cărui obiectiv îl constituie interconectarea unor sisteme eterogene. pentru a putea răspunde mai rapid la eventuale cereri similare care vor veni. .

După ce s-a stabilit politica de securitate se vor selecta serviciile de securitate. asigură faptul că sursa datelor este autentică.înregistrarea elementelor relevante de securitate.Politica de securitate constă în a decide : . b) confidenţialitatea neorientată conexiune. Controlul accesului Asigură protecţia datelor împotriva accesului neautorizat la resursele OSI sau non-OSI prin intermediul OSI. traffic flow confidentiality. Fiecare dintre serviciile amintite poate fi implementat la oricare dintre nivelele modelului OSI. este vorba despre anumite câmpuri ale unui pachet de date. fără însă a asigura însă şi protecţia împotriva duplicărilor sau a modificării şirurilor de date. confidenţialitate. c) confidenţialitatea selectivă a câmpurilor. este vorba despre informaţia ce provine din analiza traficului de mesaje. este vorba despre o linie orientată conexiune. în momentul cnexiunii. Pentru a implementa eficient serviciile de securitate sunt necesare o serie de activităţi denumit generic gestiunea securităţii. controlul accesului.A. DoD şi are la bază protocoalele TCP/IP. care contribuie la creşterea sistemului. peer entity authentication. . este vorba despre confidenţialitatea pachetelor de date. Autentificarea a) entităţilor perechi. scriere.cu ce costuri vor fi implementate cerinţele de securitate. Acestea sunt funcţii individuale. data origin authentication. care cuprind controlul şi distribuţia informaţiilor folosite de serviciile şi mecanismele de securitate pentru semnalalrea unor evenimente relevante privind securitatea sistemului.1. În plus se defineşte şi monitorizarea sau auditing-ul . Se aplică la tipuri variate de acces (citire. asigură. connection confidentiality. integritate şi nerepudiere. selective field confidentiality.ce ameninţări se vor elimina şi ce ameninţări vor rămâne.Pentru asigurarea securităţii unui nivel OSI pot fi combinate unul sau mai multe servicii care.ce resurse vor fi protejate şi la ce nivel. numite mecanisme de securitate. 6. pot fi compuse din câteva subservicii şi mecanisme. d) confidenţialitatea traficului. execuţie).cu ce mijloace vor fi implementate cerinţele de securitate. . Servicii de securitate ISO defineşte cinci servicii principale de securitate: autentificare. b) originii datelor. . 105 . . Arhitectura OSI îşi are originea la Departamentul Apărării al S. Confidenţialitatea datelor Asigură protecţia datelor la dezvăluiri neautorizate prin: a) confidenţialitatea legăturii. Fiecare serviciu de securitate poate fi implementat prin metode variate. că o entitate este într-adevăr ceea ce pretinde a fi şi că dialogul nu reprezintă o reluare a unei înregistrări vechi.3. la rândul lor. connectionless confidentiality.U.

obţinîndu-se mecanismul de semnătură digitală. în timp ce procedura de verificare a semnăturii trebuie să fie publică. 6. împiedicându-se astfel orice încercare a unui emiţător de a nega că datele au fost trimise sau că mesajul nu avea conţinutul respectiv. inserare. non-repudiation with proof of delivery. . d) integritatea neorientată conexiune cu câmpuri selectate. care apoi se criptează din nou.2.cea de semnare. ştergere). non-repudiation with proof of origin. Există mai multe servicii derivate: a) integritatea conexiunii cu recuperare. pentru a preveni falsificarea prin retransmisie a datelor respective. Criptarea este folosită pentru a furniza confidenţialitate sau alte servicii de securitate. Se recomandă ca această valoare să depindă de momentul emisiei. Pentru acest mecanism sunt definite două proceduri: . De exemplu serviciul de ne-repudiere cu probarea livrării poate fi combinat cu servicii de integritate a datelor. Semnătura trebuie generată folosind doar chei secrete. El asigură că datele nu au fost modificate de-a lungul transmisiei. Acestea se folosesc fie individual fie combinat pentru a construi mecanisme de securitate. căreia i se acordă încredere). permite receptorului să dovedească faptul că datele au fost furnizate. fiind deseori combinat cu serviciile de autentificare a unităţilor perechi. B. semnătura poate fi generată prin calcularea unei funcţii de datele care trebuiesc semnate. permite emiţătorului să poată demonstra că mesajele trimise de el au fost recepţionate. connection integrity with recovery. b) integritatea conexiunii fără recuperare. De exemplu mecanismul de autentificare a schimbului poate folosi mecanismul de criptare şi uneori mecanismul de notariat (care presupune existenţa unei a treia părţi. Un mecanism poate folosi un alt mecanism. A. Ne-repudierea a) ne-repudierea cu probarea originii. folosind cheia secretă a semnatarului. c) integritatea conexiunii cu câmpuri selectate. b) ne-repudierea cu probarea livrării. Criptarea Obiectivul acestui mecanism este de a transforma datele în aşa fel încât ele să fie inteligibile doar pentru entităţile autorizate (care au la dispoziţie o cheie secretă pentru decriptare).Integritatea datelor Acest serviciu combate ameninţările active (înlocuire. selective field connectionless integrity. împiedicându-se astfel orice încercare a unui receptor că a recepţionat datele sau că mesajul avea conţinutul respectiv. selective field connection integrity. Mecanismul de semnătură digitală Scopul semnăturii digitale este de a confirma că datele respective au fost generate de către semnatar. Acest mecanism este utilizat de către sistemele de apreciere a integrităţii datelor respectiv de către sistemele de autentificare a originii datelor.3. Mecanisme de securitate specifice OSI a introdus 8 mecanisme de securitate de bază. connection integrity without recovery. 106 .cea de verificare a semnăturii. Folosindu-se sistemele de criptare cu cheie publică.

Mecanismul de ştampile de timp. . Principiul este următorul: entitatea A trimite identitatea sa (criptată sau nu) entităţii B. caracteristici biometrice. . Mecanismul de umplere al traficului Este folosit pentru a asigura diferite nivele de protecţie împotriva analizei de trafic şi implică utilizarea uneia dintre următoarele metode: .la expediere: expeditorul adaugă la unitatea de date o informaţie adiţională ce depinde numai de datele transmise ("checkvalue"-aceasta poate fi criptată sau nu).ruta (calea de încercare a accesului). Mecanismul de control al dirijării Într-o reţea unele drumuri pot fi considerate mai sigure decât altele. E. fie prin simpla înregistrare a incidentului. în concordanţă cu criterile de securitate (importanţa datelor şi confidenţialitatea legăturii).timpul de încercare al accesului. . Mecanismul se declanşează atunci când se încearcă un acces neautorizat.umplerea pachetelor de date transmise cu date redundante. şterse sau amestecate în timpul transmisiei. biochimice). time stamping. A trebuie să cripteze valoarea aleatoare cu cheia sa secretă şi să o trimită la B. Acest mecanism permite alegerea în mod static sau dinamic a drumurilor celor mai convenabile.transmiterea de pachete de date şi spre alte destinaţii decât cea dorită. care generează o valoare aleatoare şi o trimite (criptat sau nu) lui A.C. G. Mecanismul de autentificare a schimbului Este folosit pentru a dovedi identitatea entităţilor.durata accesului. . presupunând cunoscută identitatea entităţii care solicită accesul. 107 . cartele magnetice sau inteligente. F. . Acest mecanism trebuie folosit ca suport şi pentru servicile de integritate cu recuperarea datelor (de exemplu. Mecanismul de integritate a datelor Asigură integritatea pachetelor de date (întreg pachetul sau numai un anumit câmp al acestuia) şi presupune că datele nu pot fi modificate. Mecanismul de control al accesului Acest mecanism controlează accesul entităţilor la resurse. Când sunt folosite tehnicile criptografice de obicei acestea sunt combinate cu protocoale "handshaking". Politica de control al accesului poate fi bazată pe unul sau mai multe dintre următoarele elemente: . fie prin declanşarea unei alarme.parole.lista/matricea drepturilor de acces.la recepţie: partea receptoare generează aceeaşi "checkvalue" şi o compară cu cea primită. pentru a pemite selecţia unor rute alternative în vederea protejării în cazul unor atacuri ce ar perturba comunicaţia). .generarea unui trafic fals. poate fi folosit pentru transmisiile neorientate conexiune în scopul asigurării actualităţii datelor. . care va verifica corectitudinea acesteia. Acest mecanism implică două proceduri: . D. Pot fi folosite parole sau tehnici criptografice (parole cifrate. în intenţia de protejare împotriva înlocuirii respectiv reluării datelor.

Mecanismul de notarizare. Nivele arhitecturale Servicii de securitate Autentificarea entităţilor perechi Autentificarea originii datelor Controlul accesului Confidenţialitatea conexiunii Confidenţialitatea neorientată conexiune Confidenţialitatea selectivă a câmpurilor Integritatea conexiunii cu recuperare Integritatea conexiunii fără recuperare Integriatatea conexiunii cu câmpuri selectate Integritatea neorientată conexiune Integritatea cu câmpuri selectate neorientată conexiune Ne-repudiere. recepţie Confidenţialitatea 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 . Atunci când acest mecanism este folosit datele sunt comunicate prin intermediul notarului. Mecanism Serviciu Autentificarea entităţilor perechi Autentificarea originii datelor Controlul accesului Confidenţialitatea conexiunii Confidenţialitatea neorientată conexiune Confidenţialitatea selectivă a câmpurilor Integritatea conexiunii cu recuperare Integritatea conexiunii fără recuperare Integritatea conexiunii cu câmpuri selectate Integritatea neorientată conexiune Integritatea cu câmpuri selectate neorientată conexiune Ne-repudiere. Arhitectura securităţii ISO În tabelul următor se prezintă legătura între serviciile de securitate şi mecanismele de securitate definite de ISO. Pe linii sunt marcate servicile iar pe coloane mecanismele.1. Prezenţa unui x într-una dintre rubricile tabelului semnifică faptul că mecanismul respectiv poate fi folosit pentru implementarea serviciului corespunzător. pentru a asigura garanţii de integritate a originii a datelor sau a destinaţiei datelor.H. 6. emisie Ne-repudiere. notarization mechanism Acest mecanism implică existenţa unei a treia părţi-numită notar-în care au încredere toate entităţile. emisie Ne-repudiere.3. recepţie 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 următor sunt prezentate legăturile între nivelele modelului de referinţă OSI şi servicile de securitate care se recomandă să fie utilizate pe aceste nivele.2.

în această arhitectură să se furnizeze toate servicile la nivelul aplicaţie.ISO lasă posibilitatea de a asigura servicii de securitate la diferite nivele ale modelului OSI. aceste servicii pot fi asigurate de către nivelele superioare.confidenţialitatea circuitelor neorientate pe conexiune.controlul accesului. .autentificarea. Este posibil . Un avantaj major al sistemelor de securitate oferite de acest nivel este că protecţia este independentă de protocoalele implementate la nivelele superioare. mecanismele şi dispozitivele de asigurare a securităţii ce operează la acest nivel sunt dependente de o anumită tehnologie. 109 . Realizarea criptării la acest nivel presupune oferirea unei cantităţi mai mari de informaţie.între două noduri. Acestea pot fi asigurate la nivel scăzut-nivelele 2. A) Nivelul fizic (nivelul 1) Serviciile de securitate oferite de nivelul fizic asigură o protecţie punct la punct. însă folosind nişte tehnici de criptare adecvate. lucru ce permite atacuri cum ar fi re-rularea datelor (deoarece câmpurile sursă şi destinaţie sunt citibile). În efortul de a asigura transparenţa şi compatibilitatea cu alte componente. De cele mai multe ori. deoarece câmpurile de control sunt în text clar. Nivelul 2 nu este recomnadat de OSI pentru implementarea criptării.integritatea datelor.între un calculator host şi un calculator intermediar.confidenţialitatea circuitelor orientate pe conexiune. . unde este asigurată securitatea fizică şi utilizatorii sunt de încredere. realizată într-o anumită tehnologie. intermediar. Utilitatea serviciilor la acest nivel este oarecum limitată pentru cazul INTERNET-ului.între un terminal şi un calculator host. Servicile oferite de acest nivel sunt confidenţialitatea circuitelor orientate pe conexiune şi confidenţialitatea traficului. nod. Un avantaj al servicilor oferite de acest nivel îl constituie independenţa de protocoalele nivelelor superioare. servicile de securitate oferite de nivelul legăturii de date sunt confidenţialitatea circuitelor orientate pe conexiune precum şi confidenţialitatea circuitelor neorientate pe conexiune. Integritatea şi autentificarea nu sunt posibile la acest nivel. Ele pot fi aplicate: . C) Nivelul reţea (nivelul 3) Servicile de securitate asigurate de acest nivel sunt: . Deoarece majoritatea protocoalelor de la acest nivel au facilităţi de detecţie a erorilor şi de secvenţiere pentru asigurarea retransmisiilor. dispozitivele de securitate. pentru a face dispozitivul transparent şi uşor de integrat în sistem. Totuşi calitatea unui astfel de serviciu nu ar putea fi prea bună. .nivelul 4 (transport)-sau la nivelul aplicaţie (7). specifice nivelului fizic. Principalul dezavantaj al criptării la acest nivel este acela că datele sunt memorate în clar în toate nodurile intermediare. Conformându-se cu ISO 7498-2. Acest aspect poate fi acceptat numai în reţele private. 3 (legătură. ceea ce face posibilă folosirea la acest nivel a dispozitivelor de securitate pentru o diversitate de protocoale. unui adversar ce interceptează pachete. Totuşi. dispozitivele de asigurare a securităţii la acest nivel nu pot fi adresabile într-o reţea. reţea). . ele dau impresia că se poate asigura integritatea datelor cu posibilitatea refacerii acestora. B) Nivelul legăturii de date (nivelul 2) Serviciile de securitate la nivelul legăturii de date sunt asigurate tot punct la punct. . au o interfaţă încorporată. .

Servicile de securitate ale nivelului transport orientate conexiune pot asigura. pe când altele nu. Dacă securitatea nivelului reţea este asigurată în funcţie de tehnologia de realizare a reţelei respective. servicile de secuirtate oferite de nivelul aplicaţie pun unele probleme. Astfel. autentificarea entităţilor perechi şi controlul accesului. Deoarece acest nivel este folosit pentru transformarea datelor există avantaj pentru cifrarea datelor la acest nivel mai curând decât la nivelul aplicaţie. tot traficul de pe aceste rute este criptat. Pentru mulţi. D) Nivelul transport (nivelul 4) Pentru nivelul transport. cei ce dezvoltă aplicaţii pot implementa mecanismele de securitate pe care le doresc în interiorul aplicaţilor. întrucât servicile securitate sunt văzute ca transformări de date asemenea funcţiilor nivelului prezentare. atunci când se folosesc mecanismele părţii superioare a nivelului reţea.Securitatea nivelului reţea poate fi asigurată atât între sistemele terminale cât şi între un sistem terminal şi un sistem intermediar (de exemplu ruter). servicile de securitate de la nivelele fizic şi legătură de date au fost implementate în hard extern. E) Nivelul sesiune (nivelul 5) ISO 7498-2 nu prevede ca nivelul sesiune să ofere servicii de securitate. datele care trec prin nodurile intermediare sunt criptate. Este mult mai eficient să se implementeze securitatea nivelului reţea intern. La acest nivel este permisă securizarea anumitor rute. de de pe un 110 . Tinând cont de faptul că proectarea şi implementarea unui mecanism de securitate este un proces complex există riscul ca facilităţile de securitate ale aplicaţiei respective să fie slabe. Este criptat însă numai câmpul de date al pachetului şi ca urmare. În sistemele terminale sau intermediare. integritatea (completă sau pentru câmpuri selectate). Totuşi. datorită conflictului cu funcţionalitatea nivelului prezentare. însă în practică. aceste diferenţe sunt minime. 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. comparativ cu protecţia asigurată de partea superioară a nivelului reţea. în principiu. autentificara originii datelor. o protecţie sporită. ISO 7498-2 identifică câteva servicii de securitate: confidenţialitatea (orientată sau nu pe conexiune). Aspectul neplăcut al servicilor de securitate localizate în aplicaţii este că fiecare implementare trebuie să servească doar unei anumite aplicaţii. Aceasta se referă la capacitatea de asigurare unei protecţii şi în sistemele intermediare. atunci servicile de securitate oferite pot fi independente de protocoalele de nivel superior. O implementare internă evită problemele nivelelor inferioare ce au fost menţionate mai înainte. Istoric vorbind. F) Nivelul prezentare (nivelul 6) Acest nivel este citat adesea ca fiind nivelul ideal de asigurare a protecţiei. G) Nivelul aplicaţie (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. chiar dacă nu este necesar. Există o singură diferenţă semnificativă între servicile de securitate asigurate de nivelul transport şi cele oferite de nivelul reţea. Acest aspect face să nu fie asigurată confidenţialitatea traficului ci numai integritatea şi confidenţialitatea datelor transmise. Facilităţile confidenţialitate oferite aici se pot baza pe legături orientate/ neorientate pe conexiune sau variantele de câmp selectat.

între două sau mai multe rutere care implementează acest mecanism. amintite deja mai devreme. Majoritatea acestor probleme sunt datorate faptului că protocoalele nu conţin mecanisme proprii de securitate. Antetul ESP este conceput pentru a asigura integritatea. autenticitatea şi confidenţialitatea pachetelor de date IP. pentru comunicarea spre exterior. Acestea sunt antetul de autentificare IP. cele două sisteme aflate în comunicaţie.2. Mecanismul corespunzător antetului AH este destinat asigurării integrităţii şi autentificării pachetelor de date. Acest mecanism asigură securitatea unei comunicaţii între două calculatoare terminale. În acest caz doar ruterul de securitate trebuie să implementeze serviciul AH. În cazul în care un ruter de securitate efectuează servicii în beneficiul unui sau mai multor calculatoare gazdă dintr-o reţea de încredere acest ruter de securitate este responsabil pentru asigurarea securităţii acelei subreţele precum şi conectarea sa sigură spre exterior. precum şi între un calculator gazdă sau ruter. Cu toate acestea criptarea de la ruter la ruter nu poate substitui întotdeauna criptarea de la calculator gazdă la calculator gazdă. între un calculator terminal şi un ruter sau între două rutere. Securitatea servicilor TCP/IP Aceste protocoale au propriile lor probleme de securitate.2. implicate de aceste antete (la fiecare antet corespunde un mecanism de securitate) pot fi folosite în mai multe feluri.3. nu se angajează în atacuri active sau pasive şi cred că au la dispoziţie un canal de comunicaţii de încredere (care nu este atacat). aşa cum este INTERNET-ul. ESP. AH şi antetul de încapsulare a sarcinii de securitate. care implementează acest mecanism şi/sau o mulţime de calculatoare gazdă sau de rutere. Într-o astfel de situaţie un ruter de securitate care primeşte un pachet IP conţinând antetul ESP trebuie să adauge autentificarea potrivită incluzând eticheta implicită (conţinută în asociaţia de securitate folosită) sau eticheta explicită ( de exemplu eticheta IPSO) pentru pachetul de date decriptat care este trimis spre calculatorul gazdă de încredere. care trebuie să implementeze mecanismul ESP pot să-l utilizeze pentru a cripta doar 111 . O subreţea este considerată de încredere dacă conţine calculatoare gazdă şi rutere care au încredere unele în celălalte. de exemplu eticheta IPSO (IP Security Option) de la un calculator de încredere trebuie să o ia în considerare când crează sau selectează o "asociaţie de securitate" pentru folosire împreună cu AH la stabilirea legăturii între acel calculator de încredere şi destinaţie.3. Arhitectura securităţii pentru protocolul IP Această arhitectură este prezentată în documentul RFC 1827. respectiv IPv6. Criptarea de la ruter la ruter este mai valoroasă pentru construcţia reţelelor virtuale private într-o structură în care nu se poate avea încredere. Absenţa confidenţialităţii asigură disponibilitatea fără restricţii pe INTERNET a descrierii mecanismului de la nivelul IP de asigurare a integrităţii şi a autenticităţii. Dacă în cadrul legăturii respective nu există rutere de securitate.2.2. fără însă a le asigura confidenţialitatea. Mecanismul ESP asigură comunicaţia sigură între două sau mai multe calculatoare gazdă care implementează acest mecanism. Introducere Există două antete specifice pentru servicile de securitate la nivelul protocolului IPv4. 6.1. cele două tipuri de criptare putând şi adesea trebuind să fie folosite împreună. Un ruter de securitate care primeşte un pachet de date conţinând o etichetă sensibilă.6. Un ruter de securitate este unul care face comunicaţii între calculatoare exterioare (considerate ca nefiind de încredere) şi calculatoare interioare (unei subreţele) considerate de încredere. toate calculatoarele din subreţeaua de încredere beneficiînd de acest serviciu. Mecanismele de securitate. elaborat în anul 1995 şi este valabilă atât pentru varianta 4 cât şi pentru varianta 6 a protocolului IP. căruia îi este adresat. Acest deziderat este îndeplinit prin excluderea calculatoarelor externe. Antetul AH trebuie utilizat întotdeauna când este vorba despre pachete care conţin etichete sensibile explicite pentru a asigura integritatea comunicaţiei capăt la capăt.

Deşi acest document nu se ocupă în mod explicit de difuzare. . . o implementare a mecanismului AH. folosite de mecanismeul de securitate ESP.Timpul de viaţă al cheilor (reprezintă intervalul de timp după care cheile trebuie schimbate). . Dacă se folosesc algoritmi de criptare cu cheie secretă atunci valoarea folosirii criptării. prin criptare. Combinaţia dintre un anumit indice de securitate şi o anumită adresă de destinaţie. folosite de algoritmul de criptare corespunzător mecanismului ESP. Calculatorul gazdă receptor foloseşte combinaţia dintre valoarea SPI şi adresa de destinaţie pentru a determina asociaţia corectă de securitate. Antetele de dirijare pentru care integritatea nu a fost asigurată. Când o asociaţie de securitate devine invalidă. SPI şi a unei adrese de destinaţie. Mecanismul ESP este proiectat în aşa fel încât să asigure flexibilitate maximă.Algoritm de autentificare şi modul său de utilizare. trebuie ignorate de către receptor. Security Parameter Index. . Calculatorul gazdă expeditor foloseşte identificatorul utilizatorului şi adresa de destinaţie pentru a alege o asociaţie de securitate corespunzătoare (şi deci valoarea SPI). folosite pentru algoritmul de autentificare corespunzător mecanismului ESP. O anumită asociaţie de securitate este identificată univoc pe baza unui index de parametrii de securitate . sistemul destinaţie nu trebuie imediat să ignore valoarea corespunzătoare acelei asociaţii de securitate. Atributul de orientare spre recepţie a unei asociaţii de securitate implică pentru traficul punct la punct selectarea valorii SPI de către sistemul destinatar. Orice implementare a mecanismelor de securitate AH sau ESP se bazează pe conceptul de asociaţie de securitate. Asociaţii de securitate Conceptul de asociaţie de securitate este fundamental atât pentru mecanismul de securitate IP de tip ESP cât şi pentru mecanismul de securitate AH.Prezenţa/absenţa şi dimensiunea unui vector de sincronizare sau iniţailizare pentru algoritmul de criptare corespunzător mecanismului de securitate ESP. este limitată deoarece receptorul poate să ştie doar că pachetul recepţionat vine de la unul sau mai multe sisteme doar dacă ştie cheia secretă corespunzătoare. De aceea. folosit de mecanismul AH.Chei. SPI. ci trebuie să aştepte până când sarcinile sale au fost preluate de alte asociaţii de securitate. mecanismele de securitate discutate pot fi folosite şi pentru astfel de comunicaţii. inclusiv la atacuri de redirijare a sursei.Nivelul de sensibilitate al datelor protejate ( de exemplu secret sau neclasificat). pentru pachete care trebuiesc difuzate. . Operaţiile de distribuire a cheilor şi de management al asociaţiilor de securitate sunt complicate pentru cazul acestui tip de comunicaţie. . O sesiune de comunicări cu autentificare între două calculatoare gazdă are doi indici de parametri de securitate.Chei de autentificare. folosite de către algoritmul de autentificare ales.Chei.Algoritm de autentificare şi modul său de utilizare folosit pentru transformarea corespunzătoare mecanismului de securitate ESP. Adresa de destinaţie poate fi o adresă corespunzătoare unei comunicaţii punct la punct respectiv o adresă de grup (specifică unei comunicaţii multipunct).Algoritm de criptare şi transformare. câte unul în fiecare direcţie. De obicei o asociaţie de securitate este unidirecţională. De obicei o asociaţie de securitate are următorii parametri: . determină în mod unic o anumită asociaţie de securitate. Dacă această regulă nu este respectată cu stricteţe atunci sistemul va fi vulnerabil la diferite tipuri de atac.datele de utilizator (de exemplu de tip TCP sau UDP) care se transmit între cele două sisteme. În acest mod se evită posibilitatea 112 . va fi întotdeauna capabilă să folosească SPI în combinaţie cu adresa de destinaţie pentru a determina asociaţia de securitate şi configuraţia de securitate asociată pentru toate pachetele de date valide care sosesc. . în cadrul protocolului IPv4. . . precum şi pe unii parametri ai săi.Adresa sau adresele asociaţiei de securitate. adică să permită utilizatorilor să aleagă şi să folosească doar acele servicii de securitate pe care le doresc şi de care au nevoie. Timpul de viaţă al asociaţiei de securitate.

În calcul se utilizează o cheie secretă de autentificare. Aceste mecanisme nu asigură securitate împotriva unui număr de atacuri prin analiză de trafic. Mecanisme de securitate la nivel IP După cum s-a arătat deja există două mecanisme de securitate la nivelul IP.1. Algoritmul de autentificare recomandat este algoritmul MD5 cu cheie. Serviciul de nerepudiere poate fi realizat cu ajutorul unor algoritmi de autentificare (de exemplu algoritmi cu cheie publică. Algoritmi de securitate ca de exemplu MD5 sau DES au fost standardizaţi pentru a se asigura interoperabilitatea în reţeaua INTERNET. există mai multe sisteme destinaţie dar un singur grup de sisteme destinaţie.2.3. care la fel ca toţi algoritmii cu cheie secretă nu poate implementa de unul singur serviciul de ne-repudiere. Obiective de proiectare În continuare se descriu câteva obiective de proiectare pentru această arhitectură de securitate şi pentru mecanismele de securitate corespunzătoare. Aceste mecanisme de securitate trebuie să fie utile pentru întărirea unor politici de securitate. Algoritmii recomandaţi pentru protocolul IP sunt aceeaşi cu algoritmi recomandaţi pentru protocolul SNMPv2. bazate pe criptare. În acest caz un anumit receptor ştie doar că mesajul vine de la un sistem care ştie parametrii asociaţiei de securitate corespunzătoare pentru acel grup de sisteme destinaţie. ca de exemplu câmpul "TTL" din cazul protocolului IPv4 sau câmpul "Hop Limit" din cazul protocolului IPv6. Traficul multipunct se poate baza şi pe folosirea câte unei asociaţii de securitate separate (şi implicit al câte unui indice SPI separat) pentru fiecare componentă punct la punct a traficului cu acel grup. Expeditori multipli spre un grup de sisteme destinaţie pot utiliza o singură asociaţie de securitate (şi deci un singur indice SPI) pentru întreg traficul cu acest grup. Unele câmpuri care trebuie să se schimbe în tranzit. Se intenţionează ca aceste mecanisme să fie independente de algoritm. Pentru traficul multipunct.2. 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). astfel încât algoritmii de criptare să poată fi alteraţi fără a fi afectate alte părţi ale implementării. situaţie în care se folosesc în calculul de autentificare atît cheia secretă a expeditorului cât şi cheia secretă a destinatarului) care folosesc şi antetul AH dar nu este neapărat implementat de toţi algoritmii de autentificare care se folosesc de antetul AH. AH şi ESP. solide. Aceste mecanisme sunt concepute pentru a împiedica impactul cu adversari. Expeditorul calculează datele de autentificare înainte de a trimite pachetul IP autentificat. El realizează această funcţie calculând o funcţie de autentificare criptografică pentru pachetul de date IP. care nu folosesc aceste mecanisme de securitate pentru traficul lor. Utilizarea antetului AH va creşte costurile de prelucrare ale protocolului IP şi întârzierea de 113 . Dacă fiecare expeditor are propria sa asociaţie de securitate şi se folosesc algoritmi de criptare cu cheie publică atunci este posibilă şi efectuarea serviciului de autentificare a sursei datelor. disponibile pentru utilizatorii care doresc securitate. Primul obiectiv al acestui document este să asigure că IPv4 şi IPv6 vor avea mecanisme de securitate.1. Receptorul verifică corectitudinea datelor de autentificare după recepţie. sunt omise c-nd se face calculul de autentificare. utilizatori de INTERNET. 6. De aceea un anumit sistem sau o anumită persoană vor trebui să aleagă indicii SPI pentru acest grup de sisteme destinaţie şi apoi să comunice informaţia tuturor membrilor legitimi ai acestui grup de sisteme de destinaţie prin mecanisme care nu sunt specificate în acest document. Mecanismul de securitate AH Antetul de autentificare IP păstrează informaţia de autentificare pentru pachetul de date IP.unui conflict între asociaţile de securitate configurate manual şi asociaţile de securitate configurate automat (de exemplu printr-un protocol de management al cheilor). Totuşi există câteva tehnici în afara scopului acestui document care pot fi folosite pentru a realiza protecţia împotriva analizei de trafic. Poate apărea fragmentarea datelor după prelucrarea antetului la pachetele care iasă şi înainte de prelucrarea antetului la pachetele care intră.

Utilizarea mecanismului de securitate ESP Acest mecanism poate fi folosit la comunicaţia între două calculatoare gazdă. Toate calculatoarele gazdă care au implementat protocolul IPv6 trebuie să implementeze mecanismul de securitate bazat pe antetul AH folosind cel puţin algoritm MD5 cu o cheie cu lungimea de 128 de biţi. Încapsularea se realizează prin criptarea celei mai mari părţi a ESP şi apoi prin adăugarea unui nou antet IP în clar capsulei ESP. De obicei. Utilizarea acestui mecanism de securitate. Costul exact al serviciului de securitate ESP se va modifica în funcţie de implementarea aleasă. cu păstrarea confidenţialităţii traficului care străbate segmente nesigure ale reţelei. O implementare particulară poate utiliza şi alţi algoritmi de autentificare diferiţi de algoritmul MD5 cu cheie. care este la acest moment criptată. Acest ajutor pentru ruterele de securitate permite reţelelor de încredere situate în spatele unui ruter de securitate să omită criptarea şi deci să înlăture pierderile de performanţă şi creşterea de costuri datorate criptării. Primul. Descrierea modurilor ESP Există două astfel de moduri. Acest reduce atât banda de frecvenţe consumată cât şi costurile de prelucrare ale protocolului pentru utilizatori care nu trebuie să păstreze confidenţial întregul pachet de date. pentru fiecare pachet de date IP care conţine antetul de autentificare AH. numit mod tunel. bazat pe criptare. incluzând algoritmul de criptare. Folosirea antetului AH asigură o securitate mult mai puternică decât cea care există în majoritatea protocoalelor INTERNET şi nu trebuie să afecteze posibilitatea de export sau să conducă la creşterea excesivă a costurilor de implementare. care reprezintă un text clar. încapsulează un pachet întreg IP sup anztetul ESP. Mecanismul ESP funcţionează atât pentru trafic punct la punct cât şi pentru trafic multipunct. Combinarea celor două mecanisme de securitate Există cazuri când mecanismul de securitate bazat pe antetul AH poate fi combinat cu mecanismul de securitate bazat pe antetul ESP pentru a obţine proprietăţile de securitate dorite. El îndeplineşte aceste funcţii încapsulând fie un întreg pachet de date IP fie doar protocolul de nivel superior (de exemplu TCP sau UDP sau ICMP). numit mod transport. în interiorul capsulei ESP. este folosit pentru a transporta datele protejate prin interreţea. Algoritmii de criptare pot fi implementaţi şi hard. În timp ce mecanismul de securitate bazat pe antetul AH trebuie implementat de un ruter de securitate în beneficiul calculatoarelor gazdă dintr-o reţea de încredere situată în spatele acestui ruter de securitate. între un calculator gazdă şi un ruter de securitate sau între două rutere de securitate. încapsulează doar un protocol de nivel mai înalt (de exemplu UDP sau TCP) sub antetul ESP şi apoi necesită adăugarea unui nou antet IP cu text clar. Această creştere a întârzierii este explicată de necesitatea calculului datelor de autentificare de către expeditor şi de necesitatea de calcul şi de comparare a datelor de autentificare de către fiecare receptor. Noul antet. Performanţele mecanismului de securitate ESP Metoda de securitate bazată pe antetul ESP poate afecta semnificativ performanţele unei reţele.comunicare. acest mod de operare nu este încurajat pentru calculatoarele situate în faţa acestui ruter de securitate. dimensiunea cheilor şi alţi factori. Cel de al doilea mod. algoritmul de criptare folosit este DES. creşte întârzierea în transmiterea unui mesaj. 114 . autenticitatea şi confidenţialitatea pachetelor de date IP. Cănd ambele calculatoare gazdă aflate în comunicaţie folosesc mecanismul de securitate EPS şi nu se foloseşte nici un ruter de securitate atunci cele două calculatoare trebuie să folosească modul transport. Mecanismul de securitate ESP Acest mecanism de securitate este proiectat să asigure integritatea.

Se prevede că pot fi utilizate câteva mecanisme de management al cheilor împreună cu mecanismele de securitate descrise. pot fi definite aceste mecanisme de securitate fără a specifica complet cum se realizează managementul cheilor. cum ar fi UDP sau TCP. Managementul cheilor Protocolul de management al cheilor care se foloseşte cu mecanismele de securitate ale protocolului IP nu este specificat în acest document. Această metodă de distribuţie este practicată în împrejurări statice la reţele de dimensiune mică. Distribuirea manuală a cheilor Cea mai simplă formă de management al cheilor este cea manuală. Se lucrează la specificarea unui standard INTERNET pentru un protocol de management al cheilor. Adăugarea 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ă. spre un număr de port specific sau spre punctul în care datele de management al cheilor vor fi distribuite manual. în care o persoană configurează fiecare sistem cu propria sa cheie precum şi cu cheile celorlalte sisteme aflate în comunicaţie. deoarece protocolul de management al cheilor este cuplat cu mecanismele de securitate AH şi ESP numai prin inermediul indicelui SPI. Alte mecanisme de securitate Protecţia împotriva analizei traficului nu este asigurată de nici unul dintre mecanismele descrise mai sus. 6. O altă metodă este de a genera trafic fals în scopul creşterii zgomotului în datele obţinute prin anliza de trafic. autenticitate. între reţeaua internă şi INTERNET în fiecare dintre sediile sale. 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 îmbunătăţite fără a fi necesară modificarea implementării celorlalte mecanisme de securitate. Nu este clar cum pot fi realizate economic la nivelul INTERNET mecanisme de protecţie împotriva analizei traficului şi se pare că există puţini utilizatori de INTERNET interesaţi de anliza de trafic. În acest caz dispozitivul firewall trebuie să cripteze selectiv traficul cu alte sedii ale acelei organizaţii folosind un sistem manual de configurare a cheilor şi să nu cripteze traficul pentru alte destinaţii. Un alt caz este cel al unei organizaţii care foloseşte un dispozitiv de tip firewall. 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. În cadrul unui singur domeniu de administrare se practică de asemenea. configurarea manuală a cheilor. Totuşi. Cînd se combină cele două mecanisme poziţia antetului AH specifică partea din şirul de date care este autentificată.1. În continuare se face o scurtă prezentare a alternativelor de management al cheilor. astfel încât datele dirijate să poată fi protejate şi să se reducă riscul de pătrundere al unei persoane neavizate într-un ruter. De exemplu în cazul unei reţele locale de dimensiuni mici este frecventă configurarea manuală a cheilor pentru fiecare calculator component. O metodă tradiţională de protecţie împotriva analizei de trafic este criptarea liniilor. confidenţialitate şi poate şi pentru utilizatori care cer un serviciu puternic de nerepudiere. Acest sistem de management al cheilor mai este potrivit şi pentru cazul în care doar anumite comunicaţii selectate trebuie securizate.2.Mecanismul bazat pe antetul AH asigură integritate şi autenticitate şi poate asigura şi nerepudiere dacă se bazează pe anumiţi algoritmi de autentificare prin criptare (ca de exemplu algoritmul RSA). asigură întotdeauna autenticitate şi confidenţialitate şi poate asigura şi autentificare dacă este folosit împreună cu anumiţi algoritmi de criptare. Nu este o metodă bună pentru abordările pe termen mediu sau lung dar poate fi aplicată în cazul abordărilor pe termen scurt.2. pentru fiecare ruter. Mecanismul de securitate bazat pe antetul ESP. 115 .2.3. printre care şi configurarea manuală a cheilor.

În multe cazuri un singur sistem de calcul va avea cel puţin doi utilizatori A şi B care nu au încredere unul în celălalt. Integritatea şi confidenţialitatea pot fi realizate cu sisteme de management al cheilor orientată pe gazdă când se folosesc algoritmi corespunzători. numită orientată pe utilizator. Când se utilizează sisteme de management al cheilor orientate pe utilizator. Pentru grupuri cu un număr mare de membri vor fi însă necesare noi tehnici de management al cheilor. De aceea sitemele de management al cheilor trebuie să fie prezente în toate implementările algoritmului IP. el poate citi traficul criptat al utilizatorului B sau să falsifice traficul utilizatorului B. Un exemplu este cel al algoritmului folosit în cadrul sistemului de autentificare Kerberos. cheile acestor sesiuni nu sunt împărţite cu alţi utilizatori ai gazdei 1. 116 . În sistemele care sunt destinate securităţii multi-nivel. realizat la M. anumite tipuri de atac ale traficului unui utilizator de către un alt utilizator nu sunt posibile. Totuşi autentificarea în principalele aplicaţii pentru sistemele capăt la capăt necesită folosirea asociaţilor de securitate. Distribuirea cheilor în sistemele de comunicaţii multipunct Pentru grupurile de utilizatori ai comunicaţiilor multipunct care au un număr mic de membri. Similar în cazul sistemelor de management al cheilor. Abordări ale sistemului de management al cheilor pentru protocolul IP Există două astfel de abordări pentru protocolul IP.Câteva tehnici de management al cheilor existente Există un număr de algoritmi de management al cheilor care au fost deja descrişi în literatură. distribuirea manuală a cheilor sau folosirea multiplă a sitemelor de distribuire a cheilor pentru sistemele de comunicaţii punct la punct bazată pe algoritmi cunoscuţi ( ca de exemplu o variantă modificată a algoritmului Diffie-Hellman) par soluţii acceptabile. Cele două părţi ar avea atunci un canal de comunicaţii autentificabil care ar putea fi folosit pentru a crea o cheie de sesiune (acceptată de ambele părţi) folosind metoda Diffie-Hellman sau alte metode. o a doua cheie pentru traficul secret şi o atreia cheie pentru traficul foarte secret). Cea de a doua abordare. Odată ce utilizatorul A a obţinut fraudulos cheia folosită. Cheile DNS permit expeditorilor să autentifice mesaje de management al cheilor între două părţi însărcinate cu managementul cheilor folosind un algoritm de criptare cu cheie publică. Când se foloseşte un sistem de management al cheilor orientat pe gazdă şi există astfel de utilizatori (care nu au încredere unul în celălalt) e posibil ca utilizatorul A să determine cheia orientată pe gazdă prin metode bine cunoscute cum ar fi atacul cu text în clar selectat. integritate şi confidenţialitate pentru aplicaţiile care operează cu sisteme conectate capăt la capăt când se utilizează algoritmi potriviţi.I. orientate pe utilizator. 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 corespunzător protocolului IP. Astfel aplicaţiile pot folosi facilităţile de distribuire a cheilor care realizează autentificarea. Prima se numeşte orientată pe gazdă şi presupune ca toţi utilizatorii gazdei 1 să împartă aceeaşi cheie pentru a o folosi în traficul destinat tuturor utilizatorilor gazdei 2. De exemplu sesiunea ftp a utilizatorului A trebuie să folosească o altă cheie decât sesiunea telnet a aceluiaşi utilizator.T în cadrul proiectului Athena. permite utilizatorului A de la gazda 1 să aibă una sau mai multe sesiuni unice pentru traficul său destinat gazdei 2. utilizatorul A va avea de obicei cel puţin câte o cheie pe nivel de sensibilitate (de exemplu o cheie pentru traficul neclasificat. Securitatea protocolului IP a fost concepută ca să asigure autenticitate. Un alt algoritm de management al cheilor a fost dezvoltat de Diffie şi Hellman. De exemplu în prezent se lucrează la adăugarea de chei de calculatoare gazdă semnate la protocolul DNS. trebuie folosite chei separate pentru informaţiile transmise unui grup printr-o comunicaţie multipunct şi pentru mesajele de control trimise aceluiaşi grup. Distribuirea automată a cheilor Dezvoltarea accelerată şi folosirea pe scară largă a securităţii IP va necesita un protocol de management al cheilor pentru INTERNET standardizat.

Toate implementările de acest fel ar trebui să suporte un protocol de stabilire a asociaţilor de securitate de îndată ce s-ar publica un astfel de standard pentru INTERNET. Toate aceste implementări trebuie să permită configurarea sistemelor de management al cheilor orientate pe gazdă. Un dispozitiv de tip firewall care nu este parte a asociaţiei 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 numărul de port necesar pentru efectuarea filtrării pachetelor sau pentru a verifica datele (de exemplu sursa. ar putea fi privit ca şi un tunel între toate site-urile companiei. Dacă câte un dispozitiv de tip firewall este plasat între fiecare dinte site-urile companiei respective şi furnizorul de servicii comerciale IP. Ambele mecanisme de securitate IP. Aceste implementări ar trebui să suporte de asemenea şi alte metode de configurare a asociaţilor de securitate. destinaţia. Dispozitivele de tip firewall pot fi utilizate în asociaţie cu mecanismul de securitate IP bazat pe antetul AH. chiar şi în forma de RFC. 117 . serviciul de securitate bazat pe antetul ESP sau ambele servicii de securitate amintite mai sus. Deci autentificarea trebuie realizată nu numai într-o organizaţie sau într-un cartier ci şi pentru legăturile capăt la capăt dintre două calculatoare gazdă. Fiind date două capete trebuie să existe mai mult de o singură asociaţie de securitate pentru comunicaţia între acestea.Necesităţi de management ale cheilor pentru protocolul IP Acest paragraf defineşte necesităţi de management al cheilor pentru toate implementările protocolului IPv6 şi pentru cele ale protocolului IPv4 care implementează serviciul de securitate bazat pe antetul AH. de exemplu un sistem de criptare dedicat sau un ruter de criptare nu poate. Asociaţiile dintre dispozitive de tip firewal şi mecanismele de securitate IP de obicei trebuie să fie capabile să identifice antetele şi opţiunile din pachetele de date pentru a determina tipul protocolului de transport folosit (de exemplu UDP sau TCP) precum şi numărul de port al acelui protocol. 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. în funcţie de modul în care sunt cuplate cu asociaţia de securitate potrivită. pot fi folosite pentru a creşte securitatea asigurată de dispozitivele de tip firewall. Astfel de sisteme trebuie să implementeze în plus support pentru managementul cheilor orientat pe utilizator. Deşi mulţi utilizatori nu apreciază folosirea acestor dispozitive. inclusiv cheile este un exemplu pentru o metodă posibilă pentru distribuirea manuală a cheilor. Utilizare Acest paragraf descrie utilizarea posibilă a mecanismelor de securitate oferite de protocolul IP. Toate implementările de acest fel trebuie să permită configurarea manuală a asociaţilor de securitate. Acest sistem ar putea cripta de asemenea traficul dintre companie şi furnizorii săi sau clienţii săi. amintite mai sus. numărul de port) folosite pentru verificarea autenticităţii sau corectitudinii decizilor de control al accesului. Utilizarea împreună cu dispozitive de tip firewall Aceste dispozitive se folosesc tot mai frecvent în INTERNET. pentru traficul generat de pe alte sisteme. Un sistem IP trebuie să ia măsuri rezonabile pentru a proteja cheile şi alte informaţii referitoare la asociaţiile de securitate de examinarea neautorizată sau de modificări pentru că toată securitatea este depozitată în chei. Metoda prin care cheile sunt configurate pe un sistem particular este definită prin implementare. doearece este restricţionată conectivitatea calculatoarelor din reţea. creat astfel. în împrejurări diferite şi în aplicaţii diferite din dorinţa 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. care traversează INTERNET-ul. Organizaţii 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ă. nu este probabil ca utilizarea lor să înceteze în viitorul apropiat. protocolul de transport. atunci sistemul de criptare de tip firewall. Un dispozitiv care criptează sau autentifică pachete IP provenind de la alte sisteme. în general să realizeze o distribuire a cheilor orientată pe utilizator pentru traficul generat de către un alt sistem. Geenerarea unui fişier conţinând identificatori ai asociaţilor de securitate şi parametri de securitate.

Unele organizaţii ( de exemplu cele guvernamentale) ar putea dori să utilizeze un dispozitiv de tip firewall.Traficul cu Centrul de informare al reţelei cu arhivele INTERNET publice sau cu alte organizaţii nu trebuie criptat datorită faptului că nu există un protocol standardizat de management al cheilor sau deoarece renunţarea la criptare este o alegere deliberată pentru a se facilita o mai bună comunicare. În alte cazuri se folosesc comunicaţiile bazate pe protocolul IP multipunct pentru a face posibile simulările distribuite sau alte aplicaţii. SPI. bazată pe servicii IP comerciale. Utilizarea pentru protecţia calităţii servicilor Protecţia calităţii serviciilor este o zonă de interes semnificativ. din cadrul protocolului IPv6. poate fi folosit pentru a realiza o bună autentificare a calculatoarelor gazdă în reţele cu un singur nivel. MAC. Indicii parametrilor de securitate. pentru a oferi o reţea virtuală protejată. Low-Level Identifier. O astfel de abordare ar putea cu uşurinţă să protejeze traficul sensibil al companiei de atacuri sau de modificări. Calitatea servicilor poate fi protejată şi dacă se foloseşte FI împreună cu un protocol de rezervare a resurselor. dar şi aşa se înregistrează o îmbunătăţire semnificativă pentru starea curentă a INTERNET-ului. Din nefericire majoritatea mecanismelor de management al cheilor în comuncaţii multipunct nu se potrivesc prea bine cu mecanismele de securitate ale protocolului IP. un grup conectat printr-o comunicaţie multipunct ar putea utiliza repetitiv un protocol de distribuire a cheilor pentru comunicaţii punct la punct pentru a distribui cheia tuturor membrilor grupului sau grupul ar putea folosi distribuirea manuală a cheilor. Se folosesc aplicaţii de tip teleconferinţă bazate pe protocolul IP multipunct în INTERNET sau în reţele interne private. Flow Identifier. 118 . trebuie folosit. Identificatorul de trafic. Numeroase conferinţe electronice se desfăşoară acum multipunct folsind comunicaţii audio şi video în timp real. clasificarea pachetelor autentificate poate fi folosită pentru a ajuta la asigurarea manipulării corecte a fiecărui pachet în interiorul ruterelor. Utilizarea în reţele compartimentate sau multinivel O reţea multinivel sigură. ca de exemplu RSVP. (de exemplu neclasificat şi secret). folosiţi în mecanismele de securitate IP sunt orientaţi spre receptor şi de aceea sunt potriviţi pentru aplicaţii IP la comunicaţii multipunct. au fost concepute pentru a asigura un support important pentru servicile în timp real ca şi pentru comunicaţiile multipunct. Multe guverne au un interes semnificativ în reţele MLS. Cele două mecanisme de securitate IP. Dacă se utilizează tabele IP explicite de sensibilitate. clasificarea pachetelor între rutere devine realizabilă dacă ruterele sunt înzestrate cu cheile potrivite. În continuare se descrie o abordare posibilă pentru a furniza o astfel de protecţie. cu un management al cheilor potrivit. pentru a face posibilă autentificarea pachetelor. prezentate mai sus. Această autentificare are un potenţial important pentru clasificarea pachetelor între rutere. ca de exemplu IPSO şi se consideră că nu este necesară confidenţialitatea în mediul operaţional considerat. este o reţea în care se comunică date la diferite nivele de sensibilitate. complet criptat. Totuşi există cercetări în acest domeniu. Acest mecanism de securitate poate fi folosit şi pentru a oferi asigurări puternice atât pentru luarea deciziilor referitoare la controlul accesului mandatat în reţele multinivel cât şi pentru luarea decizilor referitoare la controlul accesului discreţionar în toate tipurile de reţele. pe care utilizatorii ordinari sunt incapabili să-l implementeze sau să-l violeze. Acestea cer folosirea controlul accesului mandatat. bazat pe folosirea antetului AH. multi-level secure network. Mandatory Access Control. Din motive de performanţă ruterele autentifică doar tot al N-lea pachet de date (şi nu fiecare pachet de date). Deci. FI. Utilizarea la transmisii multipunct În ultimii ani transmisile multipunct s-au dezvoltat rapid. Folosind împreună acest identificator şi serviciul de securitate IP bazat pe antetul AH. trebuie să acţioneze ca şi un identificator de nivel coborât. Ca şi un pas intermediar. Mecanismul de securitate IP. bazat pe folosirea antetului AH. MLS. Mecanismul de protecţie IP. De aceea este important ca serviciile de securitate IP să funcţioneze şi în cazul comunicaţiilor multipunct. LLID. sau performanţe îmbunătăţite ale reţelei şi o conectivitate crescută.

Criptarea completă trebuie folosită pentru toate comunicaţiile multinivel între calculatoare sau staţii de lucru care funcţionează compartimentat chiar dacă mediul de transmisiuni respectiv este considerat ca fiind protejat. sau amândouă mecanismele. în timp ce cheia B este folosită doar pentru pachete clasificate ca secrete dar neaparţinând nici unui compartiment iar cheia C este folosită doar pentru pachete clasificate drept secrete dar care nu se transmit în exterirorul reţelei. În acest caz fiecare cheie trebuie folosită numai la un singur nivel de sensibilitate şi într-un singur compartiment. De exemplu. adresa sursă a lui A. cut and paste şi trebuiesc evitate. de siguranţa mecanismului de management al cheilor şi de corecta implementare a algoritmului IP precum şi de câteva mecanisme de securitate situate în sistemele participante. Şi mecanismul de securitate bazat pe antetul de autentificare. Utilizatorii trebuie să înţeleagă că indicele de calitate al securităţii 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. Dacă mai mulţi utilizatori folosesc o asociaţie de securitate în comun cu o destinaţie. Consideraţii de securitate Întregul document care reprezintă subiectul ultimului paragraf discută o structură de securitate pentru protocolul IP. DAC. în mod fraudulos. Deoarece diferiţi utilizatori ai aceluiaşi sistem pot să nu aibă încredere 119 . sau mecanismul de securitate bazat pe antetul ESP. împreună fie cu etichete de sensibilitate implicite fie cu etichete de sensibilitate explicite (cum ar fi IPSO. poate avea chei diferite din aceleaşi motive. atunci sistemul de recepţie poate autentifica doar faptul că pachetul a fost trimis de unul dintre aceşti utilizatori dar nu poate specifica care dintre aceştia l-a trimis. folosite în IPv4). Nivelul de sensibilitate al traficului protejat nu trebuie să domine nivelul de sensibilitate al asociaţiei de securitate folosită pentru acel trafic. Discretionary Access Controls. De exemplu cheia A trebuie folosită doar pentru pachete sensibile neclasificate. Nu există o arhitectură generală de securitate pentru INTERNET. Criptarea este foarte utilă şi de dorit chair atunci când toate calculatoarele gazdă se găsesc într-un mediu protejat. Aceasta este o îmbunătăţire semnificativă faţă de funcţionarea reţelelor bazată pe varianta IPv4 etichetată unde trebuie să se aibă încredere în etichetă chair dacă aceasta nu este de încredere deoarece nu există posibilitatea criptării sale. Securitatea implementării este în parte în legătură cu securitatea sistemului de operare care implemetează mecanismele de securitate. dacă expeditorii A şi B au fiecare o unică asociaţie de securitate împreună cu destinaţia D şi dacă B îşi foloseşte asociaţia sa de securitate validă cu D dar indică. Mecanismul de securitate bazat pe antetul ESP poate fi combinat cu politici potrivite de management al cheilor pentru a fi create reţele multinivel sigure. El poate să nu se lase păcălit doar dacă verifică că adresa de sursă identificată în pachetul de date face parte din asociaţia de securitate care a fost folosită. dacă receptorul nu verifică că asociaţia 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ă. Algoritmul de criptare pentru INTERENT standard ar putea fi folosit. cu alegerea cheii depinzând în parte de nivelul de sensibilitate al pachetului de date. Nivelul de sensibilitate al cheii trebuie să fie identic cu nivelul de securitate al asociaţiei de securitate. dar mecanismele de securitate trebuie concentrate la nivelul IP. în acord cu un management al cheilor potrivit. Varianta IPv6 foloseşte etichete cu sensibilitate implicită care sunt parte a asociaţiei de securitate dar nu se transmit cu fiecare pachet. MAC. Nivelul de sensibilitate al asociaţiei de securitate nu trebuie să domine nivelul de sensibilitate al cheii care aparţine acelei asociaţii de securitate.se utilizează mecanismul de securitate bazat pe antetul AH pentru a realiza autentificarea întregului pachet. atunci D va fi păcălit fiind făcut să creadă că pachetul vine de la A. În anumite împrejurări algoritmul de criptare standard pentru INTERNET ar putea fi suficient de puternic pentru a asigura controale de acces mandatat. Orice etichetă IP cu sensibilitate explicită trebuie autentificată folosind mecanismul de securitate bazat pe antetul AH. dacă sistemul de operare nu păstrează cheile de criptare secrete. AH. De exemplu. Transformările 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 lipeşte. atunci traficul criptat cu aceste chei nu va fi sigur. pentru a asigura controale de acces direcţional. inclusiv criptarea nivelului de sensibilitate conţinut în antetul IP şi în datele de utilizator. Similar.

RFC 1636. Utilizatorii trebuie să considere cu grijă care proprietate de securitate o cer şi să ia măsuri active pentru a se asigura că nevoile lor sunt satisfăcute de aceste măsuri de securitate. RFC 1422. Anumite aplicaţii (de exemplu poşta electronică) au nevoie probabil de mecanisme de securitate specifice. Şi asta va tinde să crească volumul de muncă cerut pentru a criptanaliza acel trafic deoarece nu întreg traficul va folosi aceeaşi cheie. RFC 1827. Anumite proprietăţi de securitate ( de exemplu protecţia împotriva analizei traficului) nu sunt realizate de nici unul dintre mecanismele expuse. RFC 1510. fiecare utilizator sau fiecare sesiune trebuiesc criptate folosind chei separate. Informaţii conexe materialului prezentat pot fi găsite în: RFC 1826. RFC 1446. 120 . RFC 1704.unul în celălalt. RFC 1828 şi RFC 1829. O posibilă abordare a protecţiei împotriva analizei traficului este utilizarea corectă a criptării liniei de comunicaţii.

Deci INTERNET-ul nu are un mecanism sigur pentru accesarea unui calculator de la distanţă. de exemplu cu portul de poştă electronică sau cu TCP echo port. trebuie analizat modul de realizare a unei conexiuni realizat cu ajutorul protocolului TCP. Apoi atacatorul se substituie calculatorului A şi trimite: Ax->B: SYN. Soluţia recomandată împotriva unui astfel de atac este autentificarea criptografică a expeditorului. care propune o modificare simplă a protocolului TCP care va bloca majoritatea atacurilor bazate pe ghicirea numărului de secvenţă. când acesta comunică cu ţinta şi se conectează la ţintă pe baza ghicirii următorului număr iniţial de secvenţă care va fi folosit de către protocolul TCP. modifică adresa IP a acestui calculator gazdă. Din nefericire şi utilizarea protocolului TELNET este pereclitată de un astfel de atac. Deci dacă se deschide o comunicaţie cu un anumit calculator se va şti cu mare precizie ce număr de secvenţă va folosi acest calculator la următoarea sa conectare.3. cum sunt de exemplu rlogin sau rsh. În continuare se prezintă documentul RFC 1948.2. De aceea ar fi necesar pentru multe site-uri să se restrângă folosirea protocoalelor care folosesc autentificarea bazată pe adrese.3. ISNa. Morris a descris o formă de atac bazată pe ghicirea secvenţei de numere TCP care va fi folosită pentru conexiuni viitoare ale unui anumit calculator gazdă. el validează numărul iniţial de secvenţă al calculatorului A. Calculatorul B răspunde cu: B->A: SYN. în documentul RFC 793 se specifică faptul că numărătorul de 32 de biţi folosit trebuie să fie decrementat cu 1 din patru în patru microsecunde. ISNx unde "Ax" reprezintă un pachet trimis de către X care se pretinde a fi A. ISNb'. Calculatorul A confirmă cererea de comunicaţie trimiţând mesajul: A->B: ACK(ISNb) Numerele iniţiale de secvenţă se construiesc într-o manieră aleatoare. Atacatorul X deschide pentru început o conexiune reală cu ţinta sa B.2. ISNb. Mai precis. Detalii ale atacului Din dorinţa de a înţelege cazul particular al ghicirii numărului de secvenţă. Securitatea protocolului TCP În 1985. Din păcate această soluţie încă nu se foloseşte. Să presupunem că utilizatorul A doreşte să se conecteze la serverul rsh B. O altă posibilitate este ca acest numărător să fie incrementat la fiecare secundă cu o anumită constantă şi cu o altă constantă la fiecare nouă conectare. ACK(ISNx) 121 . ACK(ISNa) Pe lângă trimiterea propriului număr iniţail de secvenţă. Pe cunoaştere acestei informaţii se bazează atacul amintit mai sus. synchronize sequence number şi numărul iniţial de secvenţă. Calculatorul A transmite mesajul următor: A->B: SYN. Calculatorul B îi transmite calculatorului A numărul său de sincronizare SYN. Aşa se obţine ISNb. adică: B->A: SYN. astfel de atacuri vor rămâne posibile dacă şi numai dacă atacatorul este capabil să lanseze şi atacuri mai devastatoare. Trebuie remarcat că valoarea ISNa trebuie să apară în mesaj. Mai precis. Atacatorul pune sub urmărire un calculator gazdă în care ţinta sa are încredere.6. ISNa El transmite un pachet conţinând mulţimea de biţi SYN. Pentru a obţine informaţii referitoare la starea numărului iniţial de secvenţă se foloseşte o conectare ordinară la calculatorul ţintă.

De fapt se recomandă ca să se folosească toate aceste trei tipuri de date: un număr atât de aleator cât poate hard-ul să genereze. X nu poate vedea ieşirea din această sesiune dar el poate executa comenzi la fel ca orice utilizator. Timpul de boot-are este inclus pentru a asigura că secretul se modifică ocazional. pot fi incluse în calculul funcţiei hash. O bună alegere este funcţia hash de tipul MD5. Datele secrete pot fi fie un număr aleator fie o combinaţie dintre unele date secrete specifice calculatorului gazdă şi timpul de boot-are al acestuia.3. Dacă a ghicit corect serverul rsh al lui B crede că are o conexiune legitimă cu A. Trebuie remarcat că secretul nu poate fi schimbat cu uşurinţă pe un anumit calculator. dead connections. localport.2. şi ar trebui făcută setarea: ISN = M + F(localhost. atacatorii care ghicesc numărul de secvenţă trebuie. remoteport). O slăbiciune a protocolului TCP Cum s-a menţionat deja. în primul rând. Dar nu există nici o legătură sintactică sau semnatică între numerele de secvenţă a două conexiuni diferite. O astfel de modificare ar afecta valorile numerelor iniţiale de secvenţă folosite pentru conexiunile reactivate.2. gazdă la distanţă. altfel un atacator ar putea ghici un număr de secvenţă. corespunzător la două segmente cu lungime maximă de "timp de viaţă".1.3. permiţând componentelor unei reţele de staţii de lucru să împartă aceleaşi date secrete şi în acelaşi timp să aibă sapţii diferite pentru numerele de secvenţă. Deşi pentru acest scop sunt posibile mai multe 122 . pe baza numărului iniţial de secvenţă folosit pentru o altă conexiune. Există mai multe căi de a preveni asta. port local. şi cea mai simplă modalitate de a face asta este modificarea diagramei TCP de tranziţie a stărilor astfel încât la ambele capete ale tuturor conexiunilor să se treacă în starea TIMEWAIT. Atacurile bazate pe ghicirea numărului iniţial de secvenţă pot fi parate prin alocarea câte unui spaţiu separat de număr de secvenţă fiecărei conexiuni. 6. Şi alte date. pentru a asigura securitatea ar trebui fie să se memoreze stările conexiunilor deja desfăcute fie să fie observat un anumit timp de linişte. calculatorul de încredere. al cărui calcul să se bazeze pe numărul de identificare al conexiunii şi pe anumite date secrete. M. notat cu A. pentru a uşura administrarea. În consecinţă simpla generare aleatoare a numărului iniţial de secvenţă nu este o soluţie convenabilă. Este vital ca funcţia F să nu poată fi calculată din exterior.Deşi calculatorul X nu vede niciodată acest mesaj el totuşi poate transmite: Ax->B: ACK(ISNb') Folosind pentru ISNb' valoarea pe care a ghicit-o. Întradevăr ar trebui folosit temporizatorul curent de 4 microsecunde. Unele implementări ale protocolului TCP conţin subprograme speciale care se ocupă cu astfel de reactivări când serverul conexiunii originale este încă în starea TIMEWAIT. remotehost. cea mai uşoară este aşteptarea ca A să fie deconectat (tot ca urmare a unui atac). o parolă instalată de administratorul de reţea şi adresa IP a calculatorului. 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. adică fiecărui quadruplet de forma (gazdă locală. Remediul Alegerea numerelor iniţiale de secvenţă pentru o conexiune nu este aleatoare. Aici apare o dificultate minoră. să "păcălească". Calea evidentă de a face asta este memorarea stărilor conexiunilor deja desfăcute. când de fapt X este cel care trimite pachetele. În fiecare dintre aceste spaţii numărul iniţial de secvenţă este incrementat. deoarece programme de implementare a acesteia sunt uşor de găsit. port la distanţă). Nu există o relaţie evidentă între numerele din spaţii diferite. ca de exemplu adresa IP a calculatorului gazdă sau numele său. Aceasta este o soluţie care funcţionează dar care este ne-elegantă şi consumă spaţiu de stocare. De aceea se sugerează ca F să fie o funcţie hash. Aceste numere trebuie alese în aşa fel încât să se minimizeze probabilitatea apariţiei unor pachete mai vechi care sunt acceptate de noi activări ale aceleiaşi conexiuni.

Ele sunt restricţionate la folosire. "păcălind" această conexiune. Acest fişier. numele unui serviciu. un program care să se prezinte drept telnet. Iată un exemplu de conţinut parţial pentru un astfel de fişier: #/etc/services # telnet 23 smtp 25 … /tcp /tcp mail Server-ele determină din acest fişier numărul propriu de port cu care lucrează. Dacă coada SYN-RCVD este plină la sosirea "wildcard" TCB. Astfel atacul împotriva calculatorului ţintă pare a veni de la portul rlogin al calulatorului considerat de încredere. cele cuprinse în domeniul 0-1023 se consideră port-uri sigure. ar fi posibil pentru un utilizator să creeze. el trebuie să folosească un protocol (TCP sau UDP). primul lucru care trebuie făcut este o căutare a TCB-ului pentru conexiunea respectivă. Dacă nu se găseşte nici unul atunci nucleul TCP caută o "wildcard" TCB folosită de servere pentru a accepta conexiuni de la toţi clienţii. Odată ce această limită a fost atinsă. de exemplu.strategii. 6. se presupune că ele vor fi retransmise dacă va fi nevoie. nu numai pentru pachetele SYN iniţiale. De aceea pentru a păcăli un calculator gazdă. Este în cel mai bun caz o măsură paleativă. programele care folosesc aceste port-uri trebuie executate ca root. să asculte portul 23 şi să intercepteze parolele 123 . numărul port-ului. folosind un appel sistem special: getservicebyname(). Port-urile au alocate numere.de obicei. Din nefericire în multe nuclee TCP acest cod este cerut pentru orice pachet recepţionat. El trebuie să înţeleagă modul în care sistemul de operare UNIX lucrează cu INTERNET-ul. majoritatea atacurilor detectate până în prezent se bazează pe o slăbiciune a protocolului TCP. Această comportare poate fi evitată dacă codul cozii pline este verificat pentru bitul ACK. fiind accesibile doar superuser-ului. Consideraţii de securitate Alegerea unor numere de secvenţă potrivite nu reprezintă o înlocuire a autentificării bazate pe criptografie. Dacă se constată că acest bit este pe 1 atunci trebuie să se răspundă cu RST. Funcţionarea servicilor INTERNET Cele mai multe servicii sunt furnizate de programe numite server-e. numele protocolului şi o listă de alias-uri. orice nou pachet care specifică doar gazda şi numărul de port va fi neglijat. Astfel. Pentru ca un utilizator să poată lua măsurile de securitate adecvate.3. sistemul receptor crează un nou TCB. Pentru a evita irosirea resurselor majoritatea sistemelor permit un număr limitat de TCB în această stare. El conţine. în fiecare linie.3. vor fi percepute ca aparţinând unei cozi pline şi vor fi neglijate. următoarele pachete SYN pentru noile conexiuni sunt neglijate. Când se recepţionează pachetele SYN pentru o anumită conexiune. chair dacă nu este vorba despre un pachet SYN. transfer control block. pentru o conexiune. Conectarea unui calculator la INTERNET presupune folosirea sistemului de operare UNIX şi a suitei de protocoale TCP/IP. să aibă alocat un port şi să fie lansat în execuţie . atacatorul trimite câteva zeci de pachete SYN portului rlogin de la diferite numere de port ale unor calculatoare inexistente. conţinând secvenţele SYN+ACK. Răspunsurile din partea ţintei. Acest lucru împiedică programele obişnuite să obţină informaţii sensibile de la aceste port-uri. poate determina starea numerelor de secvenţă ale acesteia şi poate fi capabil să lanseze atacuri bazate pe ghicirea numerelor de secvenţă. În acest fel se umple coada SYNRCVD. este folosit atât de server-e cât şi de clienţi. la coneectarea în reţea. Un atacator care poate observa mesajele iniţiale pentru o anumită conexiune. în starea SYN-RCVD. care nu poate fi pus pe 1 în mod legal pentru cereri de deschidere. La recepţia unui pachet. Pentru ca un astfel de program să funcţioneze. la încărcarea sistemului de operare. În UNIX există un fişier cu rol esenţial în execuţia servicilor: /etc/services. Ca urmare. a cărui securitate este foarte importantă.

Ele sunt de obicei pornite de demon-ul inetd. prin care se poate controla accesul la server-e: .altor utilizatori. este un utilitar care poate îmbrăca un server INTERNET. dacă se aşteaptă sau nu cereri în continuare. după servirea celei care a activat server-ul. sendmail. Lansarea în execuţie a server-elor care nu sunt permanent rezidente se face cu ajutorul unui program daemon numit inetd. câteva linii din fişierul /etc/inetd. numele utilizatorului proprietar al server-ului şi numele comenzii executate la activarea serviciului. Programul sendmail original va rămâne în aşteptare pentru alte eventuale cereri de conexiune. care poate asculta zeci de porturi şi care lansează în execuţie daemonul necesar. Cu ajutorul fişierului /etc/inetd.Cele care se execută continuu. spre deosebire de tcpwrapper.conf: # # ftp telnet finger … /etc/inetd. Aceste server-e trebuie să răspundă rapid la cererile care sosesc din reţea. lansează în execuţie programul şi afişează la consolă mesajul "sendmail". Se recomandă folosirea comună a unor programe de tip wrapper şi firewalls. plasat între server şi exterior. în /etc/rc. . Ele sunt pornite automat la lansarea sistemului de operare. După lansare. acesta determină servicile reţea care le gestionează.Se poate folosi un program firewall. programul va folosi apelul sistem fork() pentru a se crea un nou proces care va gestiona conexiunea. pentru a obţine controlul atunci când se face o cerere de conectare la un anumit port.Programul tcpwrapper. bazate pe controlul corelaţiei dintre adresele IP şi numele de calculator gazdă al celui care face cererea. pe baza infrmaţilor din /etc/rc* . de exemplu primul pentru fiecare calculator şi al doilea pentru întreaga reţea. de asemenea. tipul soket-ului. nntp permite precizarea calculatoarelor gazdă care pot citi fişiere. pentru a se conecta la mai multe port-uri şi select(). Servicii standard sub UNIX Se vor analiza implicaţiile fiecărui serviciu asupra securităţii sistemului. Acesta poate proteja întreaga reţea. exterioare programelor.Cele care sunt lansate doar atunci când este nevoie de ele. Există însă şi alte modalităţi. În această categorie intră servicii ca fingerd (Finger Daemon) şi popper (Post Office Protocol Daemon). Există două tipuri distincte de server-e: . tipul protocolului. De exemplu lansarea în execuţie a serviciului SMTP-sendmail se face. permite specificarea calculatoarelor gazdă care au dreptul de a monta anumite sisteme de fişiere. se recomandă inactivarea sa temporară prin prefaţarea 124 . Apoi foloseşte apelurile sistem bind(). care protejează doar servicile de pe o anumită maşină. O problemă deosebit de importantă din punctul de vedere al securităţii este aceea a controlului la server-e. Doar o mică parte din programele server au incorporate facilităţi de limitare a accesului. sendmail se va conecta la port-ul 25 şi va rămâne în ascultarea unor cereri. prin următoarea secvenţă: if [-f /usr/lib/sendmail -a -f /etc/sendmail/sendmail.cf. cum ar fi nfsd (Network Filesystem Daemon ) şi sendmail. .conf .cf ]. Ori de cte ori există suspiciuni asupra funcţionării unui sereviciu. El permite restricţionarea accesului unor calculatoare gazdă la server-e. NFS. then /usr/lib/sendmail -bd -qlh && (echo /n 'sendmail') >/dev/console fi Ea face verificarea existenţei programului sendmail şi a fişierului său de configurare. Iată spre exemplificare. O dată sosită o astfel de cerere .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 conţine numele serviciului. De exemplu.

Apoi trebuie repornit sistemul de operare.numelui său din /etc/rc sau din /etc/inetd. Port-urile folosite sunt 21.conf cu caracterul #. În tabrlul următor sunt prezentate principalele servicii UNIX de reţea împreună cu numărul de port asociat. Port Serviciu Funcţie 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 Informaţii 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 Execuţie de comandă pe maşina distantă 513 login Conectare pe maşina UNIX distantă 515 printer Tipărire 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 fişiere. pentru ca schimbările să-şi facă efectul. pentru Serviciu echo discard daytime chargen time domain tftp sunrpc ntp semp biff who talk route netwall NFS Funcţie 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 discuţie Routing Information Protocol Scriere pe terminal utilizator Sistem de fişiere NFS 125 .

Serviciul TFTP Se utilizează de obicei pentru a permite calculatoarelor gazdă.Se crează un script care să mute automat fiecare fişier depozitat în aceste directoare. La înapoiere. Toate aceste server-e sunt pornite de către daemonul inetd.Se crează directorul cu acces la scriere dar nu şi la citire. Cele mai obişnuite implementări crează o nouă legătură pentru fiecare fişier. pentru transferuri de date. Versiunile mai vechi ale acestui serviciu (de dinainte de 1988) nu au un grad de securitate prea ridicat. uucp. 126 .aftp. să se facă transferuri de fişiere importante. transmisia se face pe un canal de date. Următoarea regulă este de a se evita existenţa unui fişier /etc/passwd real în aria lui ftp anonim. să boot-eze prin reţea. TFTP este o variantă mai veche de FTP şi nu are mecanisme de autentificare. documente. Cel mai simplu mijloc este să se pună directorul ăn proprietatea lui root şi să se primească modul 1733. Astfel fişierele pot fi depozitate aici de utilizatori anonimi dar nu pot fi listate de alţi utilizatori anonimi. Se recomandă eliminarea acestor posibilităţi. pentru a transfera fişiere dintrun director specificat. Se plasează acest scipt în fişierul /usr/lib/crontab. Aceasta permite unui utilizator. Fie că este vorba despre un transfer de date sau de listarea conţinutului unui director.trimiterea de comenzi şi 20 sau unul peste 1024. la anumite intervale de timp. adresa e-mail a acestuia. odată sparte aceste conturi. Acestea sunt memorate la maşina server în fişierul /usr/adm/wmtp. prin comanda PORT. Serviciul de ftp anonim a devenit un adevărat standard în INTERNET pentru difuzare de software. . Prima şi cea mai importantă regulă este ca nici un fişier sau director din aria lui ftp anonim să nu fie cu acces la scriere şi să nu fie controlat de ftp. negociat de client şi server. deoarece ftp anonim se execută cu acest nume. De aceea pe calculatoarele importante acest serviciu trebuie dezactivat sau înlocuit cu variante care implementează protocoale criptografice de autentificare. bin. un acces restrâns. Dacă. . iar pe de altă parte se împiedică folosirea serviciului ftp de către conturile privilegiate. Există controverse privind crearea unui director cu acces public la scriere. pe de o parte. Fişerele sunt transferate în mod ASCII. pe baza intrărilor în fişierul /etc/inetd.ftpd standard. care nu are cont pe o anumită maşină. pentru a fi lansat periodic. Existenţa comenzilor de schimbare a drepturilor de acces (permisiunilor) în server-ul anonymous este un mare neajuns.wuftpd. se previne. De obicei la un appel de ftp anonim se cere furnizarea numelui solicitatorului iar la parolă. dar este controlat de ftp.Se limitează numărul de octeţi ce se admit a fi transferaţi de către utilizatorul ftp. Clientul ascultă un număr de port aleator şi informează server-ul sistem despre acesta. de exemplu. Fişierul /etc/ftpusers conţine o listă a tuturor conturilor care nu pot folosi acest serviciu. La apelul serviciului ftp. imagini. Există trei variante de server-e ftp: . news.conf. posibilitatea ca . Conexiunea foloseşte port -ul 69 şi protocolul UDP. Trebuie însă acordată toată atenţia administrării lui. Se pot lua unele măsuri de restricţionare a accesului la serviciul ftp standard. fiind cunoscute numeroase cazuri de interceptare. pentru fişierele sosite. Pentru a nu se întâmpla aşa ceva trebuie respectate următoarele reguli: . server-ul face un appel la port-ul dat. Dacă directorul ftp nu permite acces la scriere. . . Maşina care a creat această facilitate ar putea deveni o gazdă permanentă sau temporară a unui software pirat. Transmiterea în clar a acestor informaţii între calculatoare reprezintă un element de mare vulnerabilitate. se blochează prin acest fişier conturi ca root. Una dintre cele mai utilizate modalităţi de conectare ftp este "anonymous". utilizatorul trebuie să furnizeze numele şi parola. fără disc. ceea ce ar face ca să se transfere prin reţea conturile acestora. pot exista încă modalităţi de atac periculoase: anumite server-e permit utilizatorului de la distanţă să schimbe permisiunile fişierului.

Se recomandă ca serviciul telnet să nu apeleze serviciul log-in pentru a valida sesiunea.Utilizatorii şi maşinile care apelează trebuie să se găsească şa maşina destinaţie într-o listă a partenerilor de încredere (tipic în /etc/hosts. Daemon-ii telnet apelează serviciul login pentru autentificarea şi iniţializarea sesiunii. . O soluţie recomandată este folosirea server-elor de autentificare. El foloseşte port-ul TCP 25. acesta fiind transmis automat la iniţiere conexiunii. . . protejând conţinutul parolei şi al sesiunii.Numele celui care a făcut apelul trebuie să corespundă adresei sale IP (implementările recente verifică această corespondenţă). deoarece orice porţiune a legăturii poate fi ascultată. care ascultă conexiunea. . SMTP.adăugată la un fişier. Servicile rlogin şi rsh Aceste programme permit un acces de la distanţă asemănător cu accesul permis de serviciul telnet. Server-ul foloseşte port-ul TCP 23. fără a i se cere parola. Există două deosebiri importante faţă de telnet: . Numite generic şi comenzi r ele se flosesc pe baza mecanismului de autentificare BSD. Cele mai multe sesiuni telnet sunt însă declanşate de calculatoare situate la distanţă. Parolele tradiţionale nu sunt sigure. dar nu poate fi protejat restul sesiunii. Programul /usr/lib/sendmail implementează atât clientul cât şi server-ul.Dacă conexiunea se face de la o maşină de încredere. De aceea se recomandă utilizarea parolelor de unică folosinţă.distribuită unor liste de utilizatori.livrată utilizatorilor individuali. 127 . Versiunea pentru client se numeşte telnet iar cea pentru server telnetd. Acest tip de atac se numeşte session hijacking. care face criptarea întregii sesiuni. O sesiune telnet poate avea loc şi între două calculatoare de încredere. Apelantul furnizează un număr de cont şi. cu deosebirea că ele dau acces doar de la maşini sau utilizatori de încredere şi permit execuţia doar unei singure comenzi la distanţă. poate să o reţină după ce unul dintre actorii autorizaţi ai acelei conexiuni crede că s-a deconectat. Alte variante ale acestui program sunt: smail. Împotriva unor atacuri de acest tip se poate lupta prin criptarea întregii sesiuni telnet. În acest caz poate fi utilizat un telnet sigur. o parolă de conectare.rhosts al utilizatorului. utilizatorul nu mai trebuie să tasteze parola.Utilizatorul lui rlogin nu trebuie să furnizeze numele. de obicei. Din punct de vedere al utilizatorului această schemă lucrează corect. Serviciul SMPT Serviciul Simple Mail Transfer Protocol. MMDF sau PMDF. . Este capital ca să se poată avea încredere în calculatoarele de la capetele conexiunii. Programul sendmail permite poştei electronice să fie: . . Un utilizator poate accesa maşinile pe care vrea să lucreze. De exemplu o a treia parte a comunicării (neautorizată). Cineva poate da comanda rlogin fără a specifica parola doar dacă sunt folosite următoarele criterii de autentificare: . În acest mod poate fi asigurată conectarea sigură.Serviciul telnet Asigură accesul de la distanţă la un calculator. este un standard INTERNET pentru transferul de poştă electronică. în care nu se poate avea încredere. Programele rsh şi rshd sunt similare.equiv) sau în fişierul HOME/.Apelul trebuie să provină de la un port privilegiat tcp.retransmisă unor alte maşini. Ele folosesc porturile TCP 513 şi 514.

de pe un calculator gazdă .cert.programul poate fi compilat cu opţiunea debug. Din păcate însă mai mulţi clienţi folosesc aceeaşi parolă. puteţi apela prin ftp următoarele adrese: ftp.cs. Programul client nu mai trimite comenzile user şi pass. . permite unor utilizatori de maşini client să obţină propria poştă electronică. este un serviciu format dintr-o bază de date distribuită. iar programul client îşi trimite numele şi parola. . situată în fişerul de configurare care poate fi obţinută pentru obţinerea unui saţiu pe maşina distantă pe care să se ruleze un anumit program. fără conectare la aceasta. Pentru a afla versiuneade sendmail cu care este echipat calculatorul dumneavoastră. cu ajutorul căreia se determină relaţia existentă între adresa IP şi numele de gazdă precum şi locul în care trebuie livrată poşta electronică în interiorul organizaţiilor. parolele pot face obiectul unor interceptări prin ascultarea pachetelor corespunzătoare.forward. Programul sendmail este foarte complex. de exemplu Shell. .O adresă legitimă de e-mail poate fi un nume de utilizator sau un alias./etc. Atunci când DNS încearcă să localizeze un nume de gazdă. înainte ca aceştia să acceseze poşta.poate impune ca recepţia poştei electronice să se facă cu un anumit program. capabilă să lucreze cu sistemul complex de autentificare Kerberos. În general se cere o autentificare prealabilă a utilizatorilor. . POP.berkely. 128 . În schimb se trimite comanda APOP care conţine un şir hexa de 128 de biţi. Este de exemplu cazul programului de poştă electronică EUDORA. DNS. prin plasarea în directorul home a unui fişier cu numele . Procesul folosit pentru rezolvarea acestor probleme se numeşte resolver. care reprezintă prelucrarea cu funcţia MD5 a adresei şi a unei fraze cunoscute atât de clientul autentic cât şi de server.org/tools/sendmail/ Protocolul SMTP ar putea fi ţinta unor atacuri de refuzare a servicilor. Acestea din urmă sunt prezente într-un fişier aliases. Fiind transmise frecvent ţi spre acelaşi port. . calculatorul apelează mai multe server-e de nume. Serviciul DNS Domain Name Server. Un alt fişier. server-ul trimite un şir care conţine o marcă de timp. folosind port-urile 109 şi 110. fără să fie nevoiţi să folosească NFS pentru accesul la un director special de poştă. de exemplu Shell.se pot declara utilizatori de încredere. /etc/mail sau /etc/sendmail. lucru care a permis acces nelimitat din partea unor utilizatori externi la maşina pe care se execută sendmail.cf . care pot falsifica poşta sosită pe maşina locală. Programulsendmail permite utilizatorilor individuali să seteze un alias pentru contul lor. Acest serviciu utilizează port-ul TCP şi UDP 53. lucru care va antrena afişarea versiunii programului. sendmail. Acest lucru se realizează în mai multe feluri: . În DNS se transmit mai multe tipuri de înregistrări care desemnează: . Serviciul POP Post Office Protocol. în directoarele /usr/lib.Se poate folosi opţiunea APOP care realizează o autentificare de tipul întrebare/răspuns. Unul sau mai multe dintre acestea vor răspunde dacă vor găsi corespondenţa nume-adresă IP. De exemplu atunci când un client se conectează la un server POP3. ceea ce sporeşte vulnerabilitatea acestei metode. controlează configurarea lui sendmail. Este cazul protocolului POP3. reprezintă un protocol care.adrese IP sau numele canonic pentru un alias. Există o variantă mai sigură de POP.edu/ucb/sendmail info. prin care clienţii POP se autentifică la server-ele POP. ceea ce permite lansarea la destinaţie a unui anumit program.acceptă o parolă specială (wizard's password). conectaţivă cu telnet la port-ul 25. Pentru a obţine cea mai nouă variantă de sendmail. Provacy Enhanced Mail.Se poate folosi o versiune POP modificată.Se pot folosi parole. El are numeroase probleme de securitate: . numită POP3. Pentru asigurarea securităţii poştei electronice a fost conceput standardul PEM.

În mod normal programul rulează pe calculatorul local. prin care se obţine fie controlul asupra acestora fie modificarea conţinutului bazei de date. fac legătura inversă. ora. Clientul contactează un server WWW şi apoi cere un fişier. În acest scop se folosesc două fişiere al căror conţinut. . de conectare. Transferul ilegal de zone poate fi blocat prin folosirea unui ruter care să interzică accesul la port-ul 53. Server-ul răspunde cu un document multimedia. DNS mai furnizează posibilitatea transmiterii unor copii întregi ale bazelor de date ale server-elor de nume.- diferite calculatoare care pot primi poşta pentru un anumit calculator gazdă. acestea sunt . Serviciul HTTP Programul HyperText Transfer Protocol. anumite date referitoare la utilizatori pot fi deconspirate prin utilizarea acestui program. Se impune respectarea următoarelor recomandări privind server-ele de nume: . în format ASCII 129 . MIME. Acestea indică modul în care este structurată o anumită reţea. HTTP. prin răspunsuri false la întrebări privind adresele. .Dacă este apelat cu un nume drept argument. de la adresa IP la nume.Atacurile la server-ele de nume.să se instaleze server-ul de nume pe un calculator separat. numărul de telefon. Există două căi prin care un server de nume să fie făcut să furnizeze informaţii incorecte: a) informaţia greşită poate fi încărcată în memoria cache a acestuia. El foloseşte port-ul TCP 80. Acest program reprezintă o cale foarte simplă de a face publice anumite date personale sau date de interes pentru alte persoane. Este vorba despre aşa numitul transfer de zonă. b) prin schimbarea fişierelor de configurare a server-ului. dacă există. care se utilizează pentru ca serverele secundare să obţină copii ale bazelor de date localizate pe serverele principale. care să nu aibă declarate conturi. este afişat de finger. programul caută în fişierul /etc/passwd şi afişează toate informaţiile legate de acel utilizator.plan şi . .Dacă este apelat fără argumente el afişează toţi utilizatorii conectaţi în acel moment la calculator: numele . etc. de la distanţă. pentru fişiere şi 755 sau 700 pentru directoare. Serviciul finger Este conectat la port-ul TCP 79 şi este folosit în două scopuri: .dacă este necesară executarea server-ului de nume pe un calculator folosit şi de alţi utilizatori.project. În afara rezolvării cererilor prezentate anterior. De aceea unii administratori de reţea preferă să dezactiveze acest serviciu. pe calculatorul unde se execută acesta. Existenţa acestor fişiere în directorul home al utilizatorului vizat prin finger. DNS foloseşte protocolul UDP pentru rezolvarea unor cereri individuale şi protocolul TCP pentru transferurile de zone.Riscurile pe care le implică transferurile de zone. El poate fi lansat şi pe o maşină distantă. atunci este necesar ca toate fişierele şi directoarele server-ului să fie în posesia lui root şi au setate drepturile de acces la 444 sau 400. Dată fiind lipsa de securitate a programului finger. este folosit pentru cererea şi recepţionarea unor documente de la server-ele WWW. serviciul DNS are 2 probleme mari: . În ceea ce priveşte securitatea. va antrena afişarea conţinutului lor.

Portmapper-ul este programul care implementează aceste RPC-uri. Persoana care crează un serviciu de reţea utilizează un limbaj special pentru specificarea punctelor de intrare externă şi a parametrilor lor. mouse). HyperText Markup Language. ca urmare aceste liste pot fi ocolite prin asculatarea pachetelor IP sau prin atacuri la DNS. Apoi documentul este afişat. de către mai multe programe a aceluiaşi display. De obicei se configurează /etc/inetd. Serviciul systat Acest program. clientul poate face apeluri de subrutine ale unui server aflat la distanţă. Acest serviciu permite folosirea în comun. Aceste chei sunt distribuite folosind metoda Diffie-Hellman. conectat la port-ul TCP 11. Serviciul X-Window Este un sistem de ferestre care utilizează reţeaua pentru comunicaţii între aplicaţii şi dispozitive I/O (ecran. Fiecare maşină discută cu unul sau mai mulţi vecini şi maşinile se organizează într-un graf. El foloseşte port-ul TCP 119. ceea ce permite aplicaţiilor să lucreze pe diferite maşini. este un ajutor important al maşinilor conectate la INTERNET. de fapt nişte rutine pentru modulele server şi client. funcţie de distanţa lor până la o sursă autorizată de timp. care determină ce calculatoare pot folosi acest serviciu. Din păcate RPC-ul autentificat cu DES nu este bine integrat în multe sisteme. Deoarece acest serviciu poate da informaţii utile atacatorilor despre utilizatorii autorizaţi. furnizează informaţii despre calculatorul gazdă. Ele folosesc port-ul 111. Remote Procedure Call. Comparaţiile între multiplele surse de informaţie de timp permit server-elor NTP să desopere intrările eronate. stub. Acesta este numit Secure RPC. NTP. El este oarecum similar daemon-ului inetd. NNTP poate fi configurrat cu o listă de control al accesului. RPC poate face autentificare criptografică utilizând DES. este recomandabil ca acest serviciu să fie invalidat pe calculatoarele importante. Serviciul NNTP Ştirile prin INTERNET sunt cel mai adesea transferate cu NNTP-Network News Transfer protocol. de la SUN stau la baza multora din noile servicii. Documentele HTML au trimiteri către imagini şi pot face legături de tip hipertext la alte documente. Cu ajutorul acestor rutine. Serviciul portmapper Protocoalele RPC. cu protocol TCP sau UDP. 130 .conf astfel încât conectarea la acest port să fie urmată de execuţia comenzilor who sau w. ACL este bazată pe nume de gazde. ACL. Protocolul standard care îl utlizează este NFS.sau HTML. Dialogul este similar celui utilizat pentru SMPT. Serviciul NTP Programul Network Time Protocol. Este un protocol sofisticat care foloseşte portul UDP 123. în sensul că mediază comunicaţii între clienţi şi server-e. Este utilizat pentru sincronizarea ceasurilor maşinilor cu lumea de afară. Acest serviciu este foarte vulnerabil. Un precompilator converteşte aceste specificaţii în ceea ce se cheamă "cioturi". Toate apelurile sunt autentificate utilizând o cheie de sesiune.

Serverul de acordare a tichetului. la care se cere acces din partea clientului C. Pentru a se verifica identităţile utilizatorilor principali dintr-o tranzacţie. Există biblioteci de programe pentru realizarea criptării şi implementarea protocolului Kerberos.4. ambele criptate în cheia serverului) serverului. Aceste acreditări constau în: 1) un "tichet" pentru server. pentru a se asigura integritatea mesajelor schimbate între ei. S. acreditările trebuie folosite pentru verificarea identităţii utilizatorilor principali care intervin într-o anumită tranzacţie. fără a avea încredere în adresa sa. (TGT). Exită două metode prin care un client poate cere acreditări unui server Kerberos. În aceste condiţii Kerberos realizează autentificarea. o aplicaţie de reţea tipică adaugă una sau două apeluri la biblioteca Kerberos. Ea poate fi folosită şi pentru a cripta în continuare comunicaţia între cele două părţi sau pentru a permite schimbul unei chei separate de sub-sesiune care să fie folosită pentru criptarea comunicaţiei ulterioare. El a fost creat la MIT. clientul trimite "tichetul" serverului. cerând acreditări pentru un anumit server.Clientul C. de tipul celei oferite de o a treia parte. Procesul de autentificare se desfăşoară după cum urmează: Un client. C. de încredere. pentru a i se acorda acces la un seviciu furnizat de serverul S. 2) o cheie de criptare temporară (de obicei numită cheie de sesiune). cum ar fi algoritmii simetrici. AS răspunde cu aceste acreditări. Server-e de autentificare Kerberos Cel mai puternic şi mai folosit serviciu de autentificare din lume este Kerberos Authentication Server. . fără a fi necesară prezenţa unor dispozitive suplimentare de securitate şi pe baza ipotezei că pachetele care traversează reţeaua pot fi citite sau modificate. Din dorinţa de a adăuga posibilitatea autentificării unor tranzacţii. care poate fi folosit mai târziu împreună cu the ticket-granting server (TGS). Totuşi numeroase funcţii ale sistemului Kerberos sunt folosite doar pentru iniţierea unei conexiuni şi presupun absenţa oricărui atac de tipul hijacke. O astfel de utilizare are implicit încredere în adresele calculatoarelor gazdă implicate. Această sarcină (autentificarea) este îndeplinită fără a face apel la autentificarea asigurată de către sistemul de operare al calculatorului gazdă. pentru a se transmite mesajele necesare pentru realizarea autentificării. Clientul trimite TGT la TGS în acelaşi fel în care el ar fi contactat orice alt server de aplicaţie care necesită solicitarea de acreditări Kerberos. în cheia clientului C. TGS.Serverul S. Cheia sesiunii (acum împărţită de client şi de server) este folosită pentru autentificarea clientului şi poate fi opţional utilizată pentru autentificarea serverului. sau pentru a asigura securitatea mesajelor. Kerberos oferă un mijloc de verificare a identităţii principalelor calculatoare (de exemplu staţie de lucru sau server de reţea) dintr-o reţea. Autentificarea se face cu ajutorul unei autorităţi de încredere numită terţ de încredere (trusted third-party). se transmite 131 . În aplicaţia curentă poate fi ales nivelul de protecţie necesar. . clientul trimite la AS un text în clar. Deoarece "tichetul" poate fi interceptat şi modificat de către un atacator. AS. Serverele de autentificare întreţin o bază de date de utilizatori principali (utilizatori sau servere) şi cheile lor secrete. Clientul transmite "tichetul" (care conţine identitatea clientului şi o copie a cheii sesiunii. Implementarea Kerberos-ului constă din unul sau mai multe servere de autentificare care rulează pe calculatoare gazdă sigure. Servicii de autentificare 1. care tebuie autentificat. În cea de a doua metodă. Protocolul Kerberos constă din câteva sub-protocoale (sau schimburi).Serverul de autentificare Kerberos. În schema de autentificare a protocolului Kerberos sunt implicate următoarele entităţi: . . cerut pentru generarea unui "tichet" pentru serverul dorit. Se folosesc în acest scop metode convenţionale de criptare. AS. În cazul primeia.. Odată obţinute. transmite o cerere server-ului de autentificare. criptate.6. De obicei se cere un ticket-granting ticket . Răspunsul este criptat în cheia sesiunii. Răspunsul este trimis criptat în cheia secretă a clientului. clientul trimite o cerere la TGS.

dar câmpurile PRE-AUTHENT şi HW-AUTHENT vor avea valori generate de procedura ticket-granting ticket. intrările în baza de date trebuie modificate. Formatul "tichetelor" Fiecare "tichet" Kerberos conţine mai multe câmpuri care sunt folosite pentru a indica diferite atribute ale acestuia. Acest server va valida astfel de tichete doar după ce a trecut momentul lor de pornire. Serviciul de autentificare Kerberos este descris în RFC 1510. menţionate mai sus. 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ă). Serverele de aplicaţii trebuie să invalideze "tichetele" care au acest câmp setat. Această informaţie (numită autentificare) este criptată în cheia sesiunii şi include o ştampilă temporală. 2. Aceasta dovedeşte că mesajul a fost generat recent şi că nu este un răspuns. Uneori. de către serverul care furnizează "tichetul". câmpul iniţial va conţine valoarea 0. Ea se bazează pe generarea şi transmiterea valorii unei funcţii hash de mesajul clientului. Confidenţialitatea şi integritatea mesajelor schimbate între principalii utilizatori pot fi realizate prin criptarea datelor de transmis folosind cheia sesiunii trecută în "tichet" şi conţinută în acreditări. Integritatea mesajelor schimbate între utilizatorii principali mai poate fi garantată şi folosind cheia sesiunii (trecută în "tichet" şi conţinută în acreditări). "Tichetele" invalidate trebuie revalidate de către serverul Kerberos înainte de folosire. 2. care face solicitarea şi server nu cunoaşte cheia sesiunii (aceasta nu este nici odată transmisă în clar în reţea) se obţine garanţia identităţii clientului. Dacă este vorba despre serverul AS atunci atât aceste câmpuri cât şi câmpul iniţial vor fi setate. Câmpurile PRE-AUTHENT şi HW-AUTHENT Oferă informaţie adiţională despre autentificarea iniţială. ca de exemplu atunci când se adaugă noi utilizatori principali sau când se schimbă cheia unuia dintre utilizatorii principali. referitoare la sursa care a emis tichetul.3 Câmpul INVALID Indică dacă un "tichet" este valid sau nu. 2. La obţinerea "tichetului" clientul este interesat de semnificaţia majorităţii acestor câmpuri. 2. Deoarece nimeni în afară de utilizatorul principal. Dacă tichetul a fost generat pe baza unei proceduri ticket-granting ticket .informaţie adiţională pentru a se demonstra că mesajul a fost transmis de către utilizatorul principal căruia i-a fost atribuit "tichetul".2. În continuare se prezintă semnificaţia acestor câmpuri.. Asta se poate face cu ajutorul unui protocol între un anumit client şi un al treilea server Kerberos. criptată cu cheia sesiunii. Schimburile de autentificare. solicită doar accesul la citire în baza de date Kerberos.1 Câmpul iniţial Indică faptul că acel "tichet" a fost generat folosind protocolul serverului AS şi nu pe baza unui ticket-granting ticket. totuşi. Această abordare asigură atât detectarea atacurilor de tip răspuns cât şi a atacurilor bazate pe modificarea şirului de date al mesajului. Este de exemplu cazul unui "tichet" postdatat. câteva dintre ele sunt fixate. 132 . Criptarea autentificatorului în cheia sesiunii demostrează că aceasta a fost generată de către cineva care posedă această cheie. în mod automat. the Kerberos Administration Server (KADM). În acest scop ele trebuiesc trimise la acest server într-o cerere TGS cu opţiunea de validare specificată. serverul de administrare Kerberos.

Dacă între timp s-a raportat un furt de "tichete". Câmpul de reînoire este resetat iniţial. Acest câmp trebuie setat într-un ticket-granting ticket pentru a crea posibilitatea generării unui "tichet" postdatat pe baza "tichetului" curent. când expiră "tichetul" de această dată iar cel de al doilea este unul global reprezentînd ultima valoare individuală de timp permisă pentru un termen de expirare. În mod normal acest câmp este resetat. primul este unul local. Aşa poate fi redus timpul efectiv de viaţă al unui "tichet" furat.4 Câmpul de reînoire a "tichetului" Aplicaţiile pot dori să păstreze "tichetele" care pot fi valabile perioade lungi de timp. Anumite servicii pot alege să rejecteze "tichetele" postdatate. În acest caz timpul de viaţă al "tichetului" postdatat va fi egal cu întregul timp de viaţă al "tichetului" de tip ticket-granting ticket. În acest scop clientul trebuie să seteze opţiunea ALLOW-POSTDATE în mesajul KRB_AS-REQ. Dacă un tichet reînoibil nu este trimis la reînoire. din cadrul cererii pentru acest server. lăsându-le inactive până la apariţia unei cereri ulterioare de validare din partea serverului Kerberos. setată. Un astfel de "tichet" poate fi obţinut doar dacă se cere post-datarea în mesajul KRB_AS-REQ. acesta va fi marcat şi ca INVALID. Serverul Kerberos poate limita cât de departe în viitor poate fi postdatat un "tichet". În acest caz se va refuza reînoirea acelui "tichet". asta poate expune acreditările lor la posibilitatea de a fi furate pe perioade de timp la fel de lungi. "Tichetele" care pot fi reînoite au două termene de expirare. Totuşi. 2. Clientul unei aplicaţii trebuie să prezinte periodic (înainte de expirare) un "tichet" reînoibil serverului Kerberos. ocazional. înainte de termenul său local de expirare. Utilizarea simplă a "tichetelor" cu viaţă scurtă şi obţinerea 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. Toate celelalte câmpuri ale "tichetului" sunt lăsate nemodificate de către procesul de reînoire. acel "tichet" expiră permanent. Când serverul Kerberos generează un "tichet" postdatat. la momentul cererii. serverul Kerberos va refuza validarea tichetului şi hoţul nu va fi servit. pentru a fi validat înainte de utilizare. Dar este periculos să se păstreze "tichete" valabile într-o coadă de aşteptare. Câmpul MAY-POSTDATE este interpretat doar de către serviciul ticket-granting. să obţină "tichete" pe care le vor folosi mult mai târziu. El poate fi ignorat de serverele de aplicaţii. Aceste acreditări furate vor părea valabile până la data expirării "tichetelor" corespunzătoare.2. El poate fi ignorat de către serverele de aplicaţie. Câmpul POSTDATED indică faptul că un "tichet" a fost postdatat. dar un client poate cere ca el să fie setat prin setarea opţiunii de reînoire în mesajul KRB_AS_REQ. Serverul Kerberos va genera un nou tichet cu o nouă cheie de sesiune şi un moment ulterior de expirare. cu opţiunea de reînoire. cu excepţia cazului când opţiunea RENEWABLE este de asemenea setată. Acest câmp nu va permite unui client să obţină un ticket-granting ticket postdatat. serferul Kerberos trebuie să consulte o listă actualizată de "tichete" raportate furate. Timpul de viaţă al unui "tichet" postdatat va fi egal cu restul timpului de viaţă al "tichetului" de tip ticket-granting ticket. astfel încât clientul trebuie să prezinte din nou "tichetul" serverului Kerberos. Totuşi unele servere de aplicaţii mai prevăzătoare pot dori să nu accepte "tichete" reînoibile. Dacă el este setat atunci cîmpul renew-till din "tichet" conţine termenul după care "tichetul" nu va mai fi reînoit. doar poate fi cerută de către un client setarea sa.5 Câmpul MAY-POSTDATE Aplicaţiile pot avea nevoie. La fiecare reînoire. Când se atinge ultimul termen de expirare permis. Câmpul de reînoire al uui "tichet" este interpretat în mod normal doar de către serviciul tiketgranting. pentru a determina dacă "tichetul" în cauză a fost raportat furat în intervalul de timp parcurs de la ultima sa reînoire. Post-datarea "tichetelor" este o cale de a obţine aceste "tichete" de la serverul Kerberos la momentul cererii unei aplicaţii. sau să le accepte doar într-o anumită perioadă după efectuarea autentificării originale. deoarece ele vor fi mai accesibile atacurilor. 133 . serverul Kerberos nu îl va reînoi după expirarea acestui termen.

2. dar la acelaşi rezultat final se poate totuşi ajunge dacă utilizatorul se angajează în schimbul cu serverul AS cu adresele de reţea cerute şi furnizează o parolă. va avea o nouă adresă de reţea bazată pe "tichetul" curent. dar nu un "tichet" de tipul ticket-granting ticket. Câmpul PROXY este setat într-un "tichet" de către TGS când acesta generează un "tichet" proxy. În mod normal câmpul FORWARDABLE al unui "tichet" este interpretat doar de serviciul ticket-granting. De exemplu un serviciu de listare.2. Authentication forwarding . 134 . care poate fi generat. Când este setat. şi doreşte autentificarea pentru a lucra de pe acel sistem ca şi cum l-ar fi accesat local. dar numai pentru un anumit scop. Acest câmp este resetat iniţial. Serverele de aplicaţie trebuie să verifice acest câmp şi să ceară o autentificare suplimentară de la agentul care prezintă "tichetul" proxy. El poate fi ignorat de către serverele de aplicaţie. retransmiterea autentificării nu este permisă. "Tichetul" nou. La interpretarea câmpului FORWARDABLE. când serviciului i se permite completa utilizare a identităţii clientului. Serverele de aplicaţie pot dori să prelucreze "tichete" retransmisibile în mod diferit de modul în care prelucrează "tichete" neretransmisibile. El este de asemenea setat în toate "tichetele" generate pe baza "tichetelor" cu câmpul FORWARDED setat. de pe un anumit server de fişiere. pentru a fi satisfăcută o anumită cerere de listare. Dacă acest câmp nu este setat. El poate fi ignorat de către serverele de aplicaţie.6 Câmpul PROXIABLE Uneori poate fi necesar ca un utilizator prinicipal să solicite un serviciu pentru sine. Pentru aceasta serviciul include acel utilizator principal în categoria proxy. 3 Schimburi de mesaje În continuare se descriu interacţiunile între clienţii reţelei şi servere şi mesajele implicate în aceste schimburi. dar utilizatorii pot cere ca el să fie setat. Un exemplu. şi "tichetele" de tipul ticket-granting ticket pot fi înzestrate cu diferite adrese de reţea. atunci când cer "tichetul" lor iniţial. poate eticheta ca proxy serverul de listare. acest câmp spune serverului ticketgranting că poate fi generat un nou "tichet". un client care doreşte să acorde o etichetă proxy trebuie să ceară un nou "tichet" valid pentru adresa de reţea a serviciului care va fi etichetat ca proxy. setând opţiunea FORWARDABLE în cererea către AS. "tichetele" Kerberos sunt de obicei valide doar pentru acele adrese de reţea incluse în mod explicit în "tichet". Câmpul PROXIABLE permite unui client să aloce o etichetă proxy unui server pentru a satisface acestuia o cerere de serviciu la distanţă. În scopul complicării utilizării acreditărilor furate. în care acest caz trebuie folosit este când un utilizator se conectează la un sistem la distanţă. de tipul ticket-granting ticket. Serviciul trebuie să fie capabil să identifice clientul. Câmpul PROXIABLE dintr-un "tichet" este interpretat doar de către serviciul ticket-granting. permiţându-i acestuia accesul la fişierele clientului. Din acest motiv.7 Câmpul FORWARDABLE Retransmiterea autentificării. Câmpul FORWARDED este setat de către TGS când un client prezintă un "tichet" cu câmpul FORWARDABLE setat şi cere setarea câmpului FORWARDED specificând opţiunea FORWARDED KDC şi furnizând un set de adrese pentru noul "tichet". este un caz particular de serviciu proxy. cu excepţia cazului când se utilizează "tichete" de tipul ticket-granting ticket. Acest câmp foloseşte la retransmiterea autentificării fără a fi necesară o cerere către utilizator de a-şi reintroduce parola. al unui client. Interpretarea câmpului FORWARDABLE este similară celei a câmpului PROXIABLE.

dacă el va putea fi retransmis. Acest schimb de mesaje este de obicei folosit la iniţierea unei sesiuni de login.1 Schimburile de mesaje în cadrul serviciului de autentificare Schimburile de mesaje între client şi serverul de autentificare Kerberos în cadrul serviciului de autentificare. Printre aceste opţiuni este modul în care se realizează preautentificarea. Cheia sesiunii şi alte informaţii adiţionale sunt criptate în cheia secretă a clientului.3.1 Generarea mesajului KRB_AS_REQ Clientul trebuie să specifice un număr de opţiuni în cererea iniţială. 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 răspunde. dacă "tichetul" cerut poate fi reînoit.1. KRB_AS_REP. cu excepţia utilizatorului principal a cărui identitate e dată în cerere. Mesajul de eroare nu este criptat. El trimite simplu un răspuns. 3. care se transmite în loc de KRB_AS-REP. conţine un "tichet" pe care clientul să-l prezinte serverului şi o cheie de sesiune care va fi "împărţită" (shared) de către client şi de către server. când acesta doreşte să obţină acreditări de autentificare pentru un anumit server. Acest schimb de mesaje. fără a mai fi necesară folosirea cheii secrete a clientului. ca şi text clar. În cerere clientul trimite. the passwordchanging service. nu va fi capabil să folosească acest răspuns. AS. KRB_ERROR.1. Cererea iniţială conţine un câmp opţional care poate fi folosit pentru a transmite informaţie suplimentară care poate fi necesară pentru schimbul iniţial de mesaje.2 Recepţia 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. Conţinutul "tichetului" se determină după cum urmează. cum trebuie el postdatat sau dacă poate fi folosit pentru post-datarea altor "tichete" derivate şi dacă un "tichet" reînoibil va fi acceptat în locul unui "tichet" nereînoibil dacă termenul de expirare al "tichetului" cerut nu va pautea fi satisfăcut de către un "tichet" nereînoibil (datorită constrângerilor de configurare) Clientul generează mesajul KRB_AS_REQ şi îl trimite la serverul Kerberos. prin sine însuşi. dacă el trebuie să primească eticheta proxy. sunt iniţiate de obicei de către client. Aceste acreditări trebuie apoi verificate de către serverul local prin încheierea schimbului de mesaje Client/Server). (Pentru a autentifica conectarea locală a unui utilizator acreditările obţinute în cadrul schimbului de mesaje cu serverul de autentificare. Pot apărea diferite tipuri de eroare. care va fi folosit apoi pentru a se obţine acreditări pentru alte servere. Lipsa criptării în mesajele KRB_ERROR favorizează abilitatea de a detecta răspunsuri sau fabricarea unor astfel de mesaje. Informaţia critică din acest răspuns este criptată în cheia acelui utilizator principal. Mesajul KRB_AS_REP conţine informaţie care poate fi folosită pentru a se detecta răspunsuri şi pentru a le asoica cu mesajele cărora le răspunde. pentru că nu are astfel de acreditări. (Cererea de schimbare a parolei poate să nu fie onorată dacă cel care solicită nu poate furniza vechea parolă (cheia secretă a utilizatorului). Acesta este acceptabil deoarece nimeni. dar în acest caz este necesară cheia secretă a unui utilizator principal aşa cum este serviciul de modificare a parolelor. 135 . pentru a obţine acreditări pentru un server de tipul Ticket-Granting. nu trebuie. TS. Răspunsul. Altfel. Cheia secretă a clientului este folosită pentru criptare şi decriptare. 3. propria identitate şi identitatea serverului pentru care cere acreditarea. Acest câmp poate fi folosit pentru preautentificare. dar mecanismul de preautentificare nu este specificat. În mod normal serverul de autentificare nu trebuie să ştie care dintre clienţi este utilizatorul principal numit în cerere. Acestea sunt indicate printr-un răspuns de eroare. Acest schimb este de asemenea folosit pentru a se cere acreditări pentru servicii care nu trebuiesc mediate de către serviciul Ticket-Granting Service. AS. ar fi posibil pentru cineva să schimbe parola unui utilizator). trebuie mai întâi folosite într-un schimb de mesaje cu serviciul TGS pentru a obţine acreditări pentru un server local. să producă vreo asigurare asupra identităţii utilizatorului. El conţine informaţii care pot fi folosite pentru a-l asocia cu mesajul căruia îi răspunde.

Dacă diferenţa dintre termneul de expirare cerut şi momentul de început este inferioară unui timp de viaţă minim determinat de site. momentul de începere al "tichetului" este fixat cum s-a cerut şi câmpul INVALID este setat în noul "tichet" (cel postdatat).suma dintre momentul de început al "tichetului" şi timpul de viaţă maxim fixat de politica severului reţelei locale.1. . dar opţiunea POSTDATED nu a fost specificată. aleator. În caz contrar se generează. pe care-l trimite clientului. plasând orice date de preautentificare cerute în câmpul padata al răspunsului şi criptând un text în cheia clientului. Dacă serverul nu poate asigura tipul de criptare cerut se returnează un mesaj de eroare de tipul KDC_ERR_ETYPE_NOSUPP. 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. atunci momentul de început al "tichetului" este fixat la momentul la care serverul de autentificare transmite răspunsul. PROXIABLE. "Tichetul" postdatat trebuie să fie validat înaintea folosirii prin prezentarea sa la serverul Kerberos după ce s-a atins momentul de început. o cheie de sesiune.3. folosind metoda de criptare solicitată.suma dintre momentul de început al "tichetului" şi timpul de viaţă maxim obtenabil de către clientul utilizator principal (baza de date a serverului de autentificare include un câmp de timp maxim de viaţă al "tichetului" în fiecare înregistrare a acelui utilizator principal).termenul de sxpirare cerut în mesajul KRB_AS-REQ. atunci se răspunde că s-a comis o eroare. MAY-POSTDATE.suma dintre momentul de început al "tichetului" şi timpul de viaţă maxim obtenabil asociat cu utilizatorul principal de tip server.3 Generarea mesajului KRB_AS_REP Serverul de autentificare identifică utilizatorii principali de tip client şi server din baza sa de date. Termenul de expirare al "tichetului" va fi fixat la valoarea minimă dintre următoarele valori: . 136 . copiind adresele din cerere în câmpul caddr al răspunsului.suma dintre momentul de început al "tichetului" şi maximul timpului de viaţă reînoibil fixat de politica serverului reţelei locale. . Dacă termenul de expirare al "tichetului" depăşeşte ceea ce s-a determinat anterior şi dacă opţiunea RENEWABLE-OK a fost specificată atunci câmpul RENEWABLE este setat în noul "tichet" şi valoarea renew-till este setată ca şi cum ar fi fost specificată opţiunea RENEWABLE. Dacă noul "tichet" este postdatat (momentul de ănceput este în viitor) şi câmpul său INVALID va fi setat. cu un mesaj de tipul KDC_ERR_CANNOT_POSTDATE. POSTDATED. atunci se returnează un mesaj de eroare de tipul KDC_ERR_NEVER_VALID. RENEWABLE. Dacă toate acţiunile descrise mai sus s-au îndeplinit atunci serverul Kerberos generează un mesaj de tipul KRB_AS_REP. . pe baza cheilor lor secrete. Dacă în mesajul de cerere nu este indicat momentul de începere al serviciului. Dacă a fost specificată opţiunea RENEWABLE sau opţiunea RENEWABLE-OK şi se generează un "tichet" reînoibil atunci câmpul renew-till este setat la valoarea minimă dintre valorile: . sau dacă acest moment a fost depăşit. Dacă se cere.valoarea cerută pentru el. Dacă în cerere este specificat un moment de timp viitor. Altfel. Câmpurile noului "tichet" vor avea următoarele opţiuni setate dacă ele au fost solicitate şi dacă se aplică politica serverului reţelei locale: FORWARDABLE. .suma dintre momentul de început al "tichetului" şi valoarea minimă dintre cele două valori maxime de timpi de viaţă reînoibili asociate cu intrările în baza de date a utilizatorului principal. .

Dacă este prezent vreun câmp de tipul padata. aici se înţelege întregul mesaj). de către client. cheia sesiunii. momentele de început şi de expirare şi alte informaţii.4 Generarea mesajului KRB_ERROR Câteva erori pot apărea. El conţine un "tichet". Mesajul KRB_AP_REQ se mai numeşte şi authentication header.2 Schimburile de mesaje în cadrul procesului de autentificare Client/Server Procesul de autentificare client/server. El verifică de asemenea dacă câmpurile sname şi srealm din cerere şi din răspuns sunt identice şi dacă câmpul de adresă al gazdei este de asemenea corect. în care câmpurile error-code şi e-text sunt setate cu valori corespunzătoare 3. şi informaţie adiţională. Autentificatorul este folosit pentru a preveni răspunsul invalid la "tichete" care ar demonstra serverului că se cunoaşte.2. ca de exemplu o schimbare de parolă). Clientul trebuie să fi obţinut anterior acreditări pentru server folosind un schimb de mesaje cu serverul AS sau cu serviciul TGS. care pot fi verificate folosind o cheie secretă memorată sigur.2. 3.1 Mesajul KRB_AP_REQ Acest mesaj conţine informaţie de autentificare care trebuie să fie parte din primul mesaj într-o tranzacţie autentificată. verifică dacă zona nonce din partea criptată este identică cu conţinutul câmpului nonce din cererea pe care a expediat-o el. din partea criptată a răspunsului poate fi verificat pentru a informa utilizatorul despre expirarea eminentă a cheii (programul utilizatorului poate atunci sugera remedii. ea trebuie să-i ceară utilizatorului să prezinte acreditări pentru aplicaţie. fie prin itermediul schimbului de mesaje cu serverul AS. returnând clientului un mesaj de eroare. Dacă gazda vrea să verifice identitatea utilizatorului. 3. KRB_ERROR. acesta poate fi folosit pentru extragerea cheii corecte pentru decriptarea mesajului. el obţine (fie prin intermediul unor acreditări. Doar "tichetul" nu este suficient pentru autentificarea unui client. 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. fie prin intermediul schimbului de mesaje cu serviciul TGS) un "tichet" şi o cheie de sesiune pentru serviciul 137 . un autentificator.6 Recepţia mesajului KRB_ERROR Dacă mesajul recepţionat de la serverul Kerberos este de tipul KRB_ERROR atunci clientul îşi dă seama că în elaborarea sau în recepţia cererii sale de autentificare s-a comis cel puţin o eroare şi o poate corecta. caz în care sereverul de autentificare răspunde.2 Generarea mesajului KRB_AP_REQ Când un client doreşte să iniţieze procesul de autentificare cu un server. cheia secretă a sesiunii.1. 3. Câmpul de expirare a cheii.5 Recepţia mesajului KRB_AS_REP Dacă mesajul cu care răspunde serverul KERBEROS este de tipul KRB_AS_REP atunci clientul verifică câmpurile cname şi crealm din porţiunea de text clar a răspunsului se potrivesc cu ceea ce s-a cerut. pentru a le folosi ulterior.1. CS. deoarece "tichetele" trec prin reţea cu textul în clar ("tichetele" conţin atât o parte criptată cât şi o parte necriptată aşa că prin text clar. 3. Clientul decriptează partea criptată a răspunsului folosind cheia sa secretă. Dacă aceste acreditări pot fi verificate atunci identitatea utilizatorului poate fi asigurată. Decriptarea corectă a mesajului KRB_AS_REP nu este suficientă pentru verificarea identităţii utilizatorului. este folosit de aplicaţiile de reţea pentru a autentifica clientul serverului şi invers.1. Apoi el stochează "tichetul".3.

Dacă o subcheie este prezentă. Dacă trebuie inclusă şi o secvenţă iniţială de numere. 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. 3. prin setarea câmpurilor corespunzătoare din zona ap-options a mesajului. a numelui sistemului şi opţional pe baza unei aplicaţii specifice de sumă de control. câmpul srealm. Dacă timpul serverului local şi timpul clientului diferă cu mai mult decât un decalaj maxim acceptat (de exemplu 5 minute) atunci se returnează mesajul de eroare KRB_AP_ERR_SKEW. Acesta mesaj poate fi înglobat în protocolul aplicaţiei. Dacă momentul de început este ulterior momentului actual cu un interval de timp mai mare decât timpul de decalaj maxim acceptat sau dacă 138 . serverul o salvează pentru o utilizare ulterioară sau o foloseşte în scopul generării propriei sale alegeri pentru o subcheie care să fie returnată în mesajul KRB_AP_REP. ea trebuie aleasă aleator. Mesajul de eroare KRB_AP_ERR_NOKEY este returnat dacă serverul nu are cheia corespunzătoare pentru decriptarea "tichetului". din porţiunea necriptată a "tichetului". "Tichetul" este decriptat folosind versiunea cheii serverului specificată în cadrul său. Dacă apare o eroare. o secvenţă iniţială de numere care se utilizează în mesajele de tipul KRB_SAFE sau KRB_PRIV. Dacă nu se găseşte nici o potrivire sau dacă serverul insisită asupra adreselor din "tichet" dar acesta nu conţine nici o adresă se returnează mesajul KRB_AP_ERR_BADADDR.3 Recepţia mesajului KRB_AP_REQ Autentificarea este bazată pe timpul curent al serverului (ceasurile celor două sisteme trebuie să fie sincronizate). cu diferite chei. este folosit pentru a specifica care cheie secretă trebuie folosită pentru decriptare. Dacă în autentificator este conţinut un număr de secvenţă. găsită de către sistemul de operare. Algoritmul pentru verificarea autenticităţii informaţiei este următorul. Autentificatorii nu pot fi refolosiţi şi vor fi respinşi dacă se vor folosi în răspunsul către un server . Dacă mesajul nu este de tip KRB_AP_REQ serverul returnează mesajul de eroare KRB_AP_ERR_MSG_TYPE. Dacă în zona ap-options este setat câmpul USE-SESSION_KEY i se indică serverului că "tichetul" şi nu cheia secretă a clientului este criptat în cheia sesiunii. indicat în acesta. Dacă această decriptare dovedeşte că autentificatorul a fost modificat se returnează mesajul de eroare de tip KRB_AP_ERR_BAD_INTEGRITY. din cadrul mesajului KRB_AP_REQ . atunci serverul va răspunde clientului cu un mesaj KRB_ERROR. Clientul construieşte un nou autentificator pe baza timpului sistemului. Autentificatorul este criptat în cheia sesiunii şi combinat cu "tichetul" pentru a forma mesajul KRB_AP_REQ care este apoi trimis la serverul destinaţie împreună cu informaţie adiţională specifică pentru aplicaţie. şi/sau o subcheie de sesiune care se foloseşte la negocieri pentru obţinerea unei chei unice pentru sesiunea curentă. astfel încât chiar şi după multe mesaje schimbate să nu existe riscul coliziunii cu alte secvenţe de numere utilizabile. dacă acesta nu este expirat.dorit. Apoi se caută adresele din "tichet" (dacă există vreuna) şi se compară cu adresa clientului. Autentificatorul este decriptat folosind cheia de sesiune extrasă din "tichetul" decriptat. Mai multe tipuri de erori se pot produce. Dacă versiunea de cheie. Numele şi câmpul realm ale clientului din cadrul "tichetului" sunt comparate cu câmpurile corespunzătoare din autentificator. Clientul poate indica o cerere de autentificare mutuală sau utilizarea unui "tichet" bazat pe o cheie de sesiune. Serverul calculează vârsta "tichetului" făcând diferenţa dintre timpul serverului local şi momentul de început al "tichetului". serverul îl salvează.2. indicată în KRB_AP_REQ nu este cea pe care o foloseşte serverul (de exemplu s-a indicat o versiune de cheie mai veche) atunci se returnează mesajul de eroare KRB_AP_ERR_BADKEYVER. pe autentificator şi pe "tichet". pentru a-l folosi ulterior în prelucrarea mesajelor de tipul KRB_SAFE şi/sau KRB_PRIV. 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). Deoarece este posibil ca serverul de aplicaţie considerat să fie înregistrat pe mai multe servere de subreţea. Clientul poate refolosi orice "tichet" pe care el l-a păstrat.

Dacă un protocol de aplicaţie necesită confidenţialitatea mesajelor sale. Adevărata cheie de sesiune care trebuie folosită pentru mesajele KRB_PRIV sau KRB_SAFE sau alte measaje specifice aplicaţiilor trebuie aleasă de către aplicaţie pe baza subcheilor din mesajul KRB_AP_REP şi a autentificatorului. Implementări ale protocolului aplicaţiei pot dori să realizeze rutine de alegere a subcheilor. TGS Schimbul de mesaje TGS între un client şi serverul Kerberos Ticket-Granting este iniţiat de un client când el doreşte să obţină acreditări de autentificare pentru un anumit server (care poate fi înregistrat într-un domeniu de securitate aflat la distanţă). Mesajul KRB_AP_REP este criptat în cheia sesiunii extrasă din "tichet".2.6 Utilizarea cheii de criptare După ce s-a declanşat schimbul de mesaje KRB_AP_REQ/KRB_AP_REP clientul şi serverul împart (share) o cheie de criptare care poate fi folosită de către aplicaţie. 3.4 Generarea mesajului KRB_AP_REP Uzual o cerere de la client va include atât informaţia de autentificare cât şi cererea sa iniţială. Altfel. el poate utiliza mesajul de tip KRB_PRIV.3 Schimbul de mesaje în cadrul serviciului Ticket-Granting. Numărulde secvenţă şi cheia (dacă există) sunt reţinute pentru utilizare ulterioară. La fel ca şi în cazul mesajelor de eroare acest mesaj poate fi inclus în protocolul de aplicaţie. 3. 3. trebuie luate măsuri de siguranţă să nu se transmită informaţii sensibile între cele două claculatoare (care schimbă mesaje) fără asigurări de securitate corespunzătoare. 3. Dacă are loc această potrivire atunci clientul este asigurat că serverul este sigur. Mesajul de tip KRB_SAFE poate fi folosit pentru a asigura integritate. Trebuie remarcat că pentru criptarea mesajului KRB_AP_REP nu se utilizează cheia sesiunii chiar dacă aceasta este prezentă în autentificator. Atât în cazul schimburilor de mesaje de autentificare într-un singur sens cît şi în cazul mesajelor de autentificare mutuale. în alte cazuri metoda de folosit se alege dintre mai multe alternative. când el doreşte să reînoiască sau să valideze un "tichet" existent sau când el vrea să obţină un "tichet" proxy. Se organizează negocieri ale protocolului asupra utilizării cheii (de exemplu selectarea unui anumit tip de criptare sau a unui anumit tip de sumă de control). dacă momentul curent este ulterior momentului de expirare a "tichetului" cu mai mult decât timpul de decalaj maxim acceptat se returnează mesajul de eroare KRB_AP_ERR_TKT_EXPIRED. În particular. în protocol. Apoi clientul verifică dacă ştampila temporală şi câmpurile de microsecunde se potrivesc cu zonele corespunzătoare din autentificatorul pe care el l-a trimis serverului.2.clientul trebuie să fi obţinut deja un 139 .2. Totuşi dacă s-a realizat o autentificare mutuală (nu numai autentificarea clientului de către server ci şi reciproc) atunci în zona ap-option a mesajului KRB_AP_REQ va fi setat câmpul MUTUAL-REQUIERED şi este necesar un mesaj de răspuns KRB_AP_REP. aplicaţiile care necesită confidenţialitate sau integritate trebuie să folosească răspunsurile KRB_AP_REP sau KRB_ERROR de la server la client. Dacă toate controalele descrise nu detectează erori atunci serverul este asigurat că clientul posedă acreditările utilizatorului principal numit în "tichet" şi deci acest client este autentificat de server.5 Recepţia mesajului KRB_AP_REP Dacă i se returnează un mesaj KRB_AP_REP. În anumite cazuri utilizarea acestei chei de sesiune va fi implicită. în acelaşi mesaj iar serverul nu va trebui să răspundă explicit la mesajul KRB_AP_REQ. 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. clientul foloseşte cheia sesiunii din acreditările obţinute pentru server pentru a decripta acest mesaj. În primul caz.este setat câmpul INVALID din cadrul "tichetului" atunci se returnează mesajul de eroare KRB_AP_ERR_TKT_NYV. Protocolul Kerberos nu trebuie să impună constrângeri opţiunilor de implementare.

aşa că odată ce un "tichet" reînoibil sau un "tichet" de tipul ticket-granting expiră. atunci trebuie să se transmită cererea unui server Kerberos pentru un domeniu de securitate superior ierarhic. Mesajul de tip KRB_TGS_REP conţine informaţie care poate fi folosită pentru a detecta răspunsuri şi pentru a le asocia cu mesajul care le-a generat. Clientul pregăteşte mesajul KRB_TGS_REQ. Dacă data de tipul enc-authorization există. Informaţia de autentificare constă dintr-un antet de autentificare. În pregătirea antetului de autentificare. clientul trebuie să specifice un număr de opţiuni în mesajul KRB_TGS_REQ. cererea trebuie să includă şi una sau mai multe dintre următoarele: o listă cu adrese de reţea. Dar serverul Kerberos poate returna şi un "tichet" de tip TGT pentru un domeniu de securitate care este apropiat de domeniul de securitate. KRB_AP_REQ. Mesajul de răspuns TGS.1 Generarea mesajului KRB_TGS_REQ Înainte de a trimite o cerere serviciului TGS."tichet" pentru serviciul Ticket-Granting. sau de tipul "tichet" reînoibil. pe baza schimbului de mesaje AS ("tichetul" de tip ticketgranting este de obicei obţinut când un client este deja autentificat de sistem. Î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). care include "tichetele" anterior obţinute de client.3. deservesc acest domeniu şi contacteză unul dintre ele. clientul trebuie să folosească un schimb separat de mesaje pentru a obţine "tichete" valabile. atât timp cât cheile secrete schimbate între domenii de securitate sunt păstrate secrete. sau dacă este prezentă. clientul trebuie să determine în ce domeniu de securitate este înregistrat serverul de aplicaţie corespunzător. KRB_TGS_REP conţine acreditările cerute. Acest mesaj nu este criptat. În locul acesteia se folosesc cheia sesiunii pentru "tichetul" de tip ticket-granting. completând un antet de autentificare ca element al zonei padata şi incluzând aceleaşi câmpuri ca şi cele folosite în mesajul KRB_AS_REQ precum şi câteva câmpuri opţionale: câmpul enc-authorization-data pentru utilizarea de către serverul de aplicaţie şi "tichete" adiţionale cerute de anumite opţiuni. Dacă nu se returnează nici un mesaj. Mesajul de eroare KRB_ERROR conţine un cod de eroare şi un text în care se explică ce s-a greşit. aşa cum se întâmplă atunci când un utilizator face log-in). AS. de tipul ticket-granting. Mesajul de tip KRB_TGS_REQ include informaţie autentificând clientul şi o cerere de acreditări. Dacă cheia de sub-sesiune nu este specificată atunci se va folosi cheia sesiunii din "tichetul" de tip TGT. Formatul mesajului pentru schimbul TGS este aproape identic cu cel al mesajului pentru schimbul AS. ea trebuie criptată în cheia sub-sesiunii. clientul poate selecta o cheie de sub-sesiune cu ajutorul căreia va fi criptat răspunsul de la serverul Kerberos. KRB_TGS_REQ şi unul de răspuns KRB_TGS_REP sau KRB_ERROR. Lista trebuie obţinută printr-un fişier de configurare sau printr-un serviciu de reţea. un server Kerberos fals nu poate face altceva decât să nege serviciul. În cazurile în care este vorba despre "tichete" de tipul ticket-granting sau proxy. pentru acel domeniu de securitate atunci trebuie obţinut un astfel de "tichet". După ce clientul a obţinut un "tichet" de tip TGT pentru domeniul de securitate corespunzător. Schimbul de mesaje TGS se bazează pe două tipuri de mesaje: unul de cerere de la client la serverul Kerberos de tipul Ticket-Granting. reînoibil sau invalid. el determină care servere Kerberos. Dacă el nu posedă deja un "tichet" de tipul ticket-granting. Serverul Kerberos poate returna un "tichet" de tip TGT pentru domeniul de securitate dorit. La fel ca în cazul schimbului de mesaje cu serverul de autentificare. 3. sau o cheie de subsesiune de la un autentificator. caz în care acest pas trebuie repetat. apelând la un server Kerberos din domeniul de securitate specificat în "tichetul" de tip TGT returnat. o colecţie de date de autorizare care vor fi folosite pentru autentificare de serverul de aplicaţie sau "tichete" adiţionale. caz în care se poate continua. La fel ca în cazul schimbului de mesaje cu servere de aplicaţie. criptate în cheia sesiunii din cadrul "tichetului" de tipul ticket-granting sau reînoibil. 140 . Diferenţa principală este că criptarea şi decriptarea din cazul schimbului TGS nu trebuiesc făcute cu ajutorul cheii clientului. în cheia subsesiunii din autentificator (o parte a antetului de autentificare). nu sunt acceptate în cadrul schimbului TGS "tichetele" expirate.

şi mesajul trebuie rejectat dacă această sumă nu se potirveşte. mesajul KRB_TGS_REQ este trimis serverului Kerberos pentru domeniul de securitate de destinaţie. numele clientului şi domeniul de securitate. dar câmpul său de tip este setat cu KRB_TGS_REP. Dacă "tichetul" care acompaniază mesajul nu este de tipul TGT pentru domeniul de securitate curent. momentul autentificării iniţiale. acestea sunt decriptate folosind cheia de sub-sesiune din autentificator.2 Recepţia mesajului KRB_TGS_REQ Mesajul KRB_TGS_REQ este prelucrat asemănător cu modul în care este prelucrat mesajul KRB_AS_REQ. (b) suma dintre momentul de pornire al noului "tichet" şi timpul de viaţă al vechiului "tichet". Răspunsul va include un "tichet" pentru serverul cerut. Baza de date Kerberos este însărcinată să găsească înregistrarea pentru serverul cerut (inclusiv cheia cu care "tichetul va fi criptat).3 Generarea mesajului KRB_TGS_REP Acest mesaj îşi împarte (shares) formatul cu mesajele KRB_AS_REP (KRB_KDC_REP). Dacă nu poate fi găsit nici un "tichet" în zona padata. Dacă tipul de sumă de control nu este suportat atunci se returnează mesajul KDC_ERR_SUMTYPE_NOSUPP. 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. ci este pentru un server de aplicaţie din domeniul de securitate curent. Automat. 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. 3. 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 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. de efectuat. Dacă noul tichet este pentru o reînoire atunci momentul de terminare de mai sus e înlocuit cu minimul dintre: (a) valoarea câmpului renew-till al "tichetului". opţiunile RENEW. Pentru un mesaj KRB_TGS_REQ normal "tichetul" va corespunde unui serviciu de tipul TGS şi va fi folosită cheia TGS. Dacă cererea este pentru un tichet de tip TGT pentru un domeniu de securitate aflat la distanţă şi dacă nu există vreo cheie împărţită cu domeniul de securitate cerut. lista domenilor de securitate tranzitate. atunci "tichetul" rezultant va conţine adresele specificate de client. folosind cheia serverului pentru care a fost solicitat. atunci se returnează mesajul de eroare KDC_ERR_PADATA_TYPE_NOSUPP. În primul rând. câmpul de adrese. momentul expirării şi datele de autorizare ale noului "tichet" generat vor fi copiate din "tichetul" de tip TGT sau reînoibil.3. Această opţiune va fi onorată doar dacă câmpul FORWARDABLE este setat în 141 .După ce antetul de autentificare a fost elaborat. (b) timpul de terminare al "tichetului" de tip TGT. Dacă există şi date de autorizare. atunci serverul KDC va decripta "tichetul" în antetul de autentificare.3. Mesajul de eroare folosit în acest caz este KRB_AP_ERR_MODIFIED. Acesta este singurul caz în care răspunsul de la KDC va fi pentru un server diferit de serverul solicitat de client. (c) suma dinre timpul de începere al "tichetului" de tip TGT şi minimul dintre timpul maxim de viaţă pentru serverul de aplicaţie şi maximul de viaţă pentru domeniul de securitate local. 3. atunci trebuie folosită cheia potrivită dintre domenii de securitate. Dacă s-a specificat opţiunea FORWARDED. După ce "tichetul" care acompaniază mesajul KRB_TGS_REQ a fost decriptat trebuie verificată suma de control a utilizatorului din autentificator în acord cu conţinutul cererii. Dacă oricare dintre procedurile de decriptare indicate dovedeşte pierderea integrităţii după ce se testează acestă proprietate atunci se returnează mesajul de eroare KRB_AP_ERR_BAD_INTEGRITY. dar există câteva verificări suplimentare. Dacă "tichetul" de tip TGT a fost emis de un alt domeniu de securitate.

cadrul "tichetului" de tip TGT. La fel se procedează şi cu opţiunea PROXY. Această opţiune nu va fi onorată în cazul cererilor pentru "tichete" de tipul TGT adiţionale. 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ă opţiunea POSTDATED sau câmpul 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 câmpul 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. Totuşi, î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ă depăşească timpul de tipul renew-till al "tichetului" de tip TGT. Dacă s-a specificat opţiunea ENC-TKT-IN-SKEY şi a fost inclus şi un "tichet" adiţional în cerere, atunci serverul Kerberos, KDC, va decripta "tichetul" adiţional folosind cheia pentru serverul pentru care a fost generat "tichetul" adiţional şi va verifica dacă acesta este un "tichet" de tip TGT. Dacă numele serverului cerut lipseşte din cerere, va fi folosit numele clientului din "tichetul" adiţional. Altfel numele serverului cerut va fi comparat cu numele clientului din "tichetul" adiţional şi dacă se vor constata diferenţe cererea va fi respinsă. Dacă cererea a fost satisfăcută, se va utiliza cheia sesiunii din "tichetul" adiţional 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 autentificării de la utilizator la utilizator, care foloseşte 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 uşor 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ă opţiunea RENEW, atunci serverul KDC va verifica dacă este setat câmpul RENEWABLE în cadrul "tichetului" şi că momentul renewtill este îmcă în viitor. Dacă este specificată opţiunea VALIDATE, atunci serverul KDC va verifica că momentul de începere a trecut şi că este setat câmpul INVALID. Dacă este specificată opţiunea PROXY atunci serverul KDC va verifica dacă este setat câmpul PROXIABLE din cadrul "tichetului". Dacă toate aceste verificări conduc la rezultate corecte atunci serverul KDC va genera noul tichet corespunzător. Ori de câte 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 alcătuită 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 reînoibil, furat, nu poate fi folosit pentru obţinerea de noi "tichete" (reînoite sau de alt tip) de îndată ce furtul a fost raportat. Orice "tichet" obţinut înainte de a se fi raportat că este furat va fi considerat valid (pentru că în cazul său nu va apărea interacţiunea cu serverul KDC), dar numai până la momentul său normal de expirare. Partea criptată a răspunsului 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 foloseşte pentru criptare cheia secretă a clientului.

3.3.3.1 Codarea câmpurilor 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, împărţită cu acel domeniu de securitate, pentru a decripta "tichetul". Dacă "tichetul" este valid atunci serverul KDC va onora cererea, respectând constrângerile 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 adăugat la câmpul tranzitat, the transited field, al "tichetului" care va fi generat. Asta se realizează citind câmpul tranzitat din "tichetul" de tip TGT (care este tratat ca o mulţime neordonată de nume de domenii de securitate), adăugând noul domeniu de securitate la mulţime, apoi construind şi scriind forma sa codată , shorthand, (asta poate implica o rearanjare a codării existente). Trebuie notat că serviciul Ticket-Grantingnu trebuie să adauge numele propriului său 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 său nume (el va putea totuşi 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 câmpul tranzitat. Ele apar altundeva în cadrul "tichetului" şi ambele se folosesc în autentificarea utilizatorului principal. Deoarece punctele de capăt nu sunt incluse, atât autentificarea locală cât şi autentificarea interdomenii de securitate, cu un domeniu vecin vor corespunde la câmpuri de tranzitare vide. Deoarece numele fiecărui domeniu de securitate tranzitat este adăugat la acest câmp, el poate avea o lungime foarte mare. Pentru a descreşte lungimea acestui câmp, conţinutul său se codează. Metoda de codare iniţială este optimizată pentru cazul mormal al comunicării inter-domenii de securitate.

3.5 Schimbul de mesaje KRB_PRIV
Mesajul de tip KRB_PRIV poate fi folosit de clienţi care au nevoie de confidenţialitate şi de abilitatea de a detecta modificări ale mesajelor schimbate. El realizează aceste deziderate criptând mesajele şi adăugând informaţie de control.

3.5.1 Generarea mesajului KRB_PRIV
Când o aplicaţie doreşte să trimită un mesaj de tip KRB_PRIV, ea colectează datele sale şi informaţia de control corespunzătoare ş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 informaţiei de control, clientul trebuie să aleagă fie utilizarea unei ştampile de timp fie utilizarea unui număr de secvenţă (fie amândouă). După ce datele de utilizator şi informaţia de control au fost criptate, clientul transmite textul cifrat şi informaţie de tip "plic".

3.5.2 Recepţia mesajului KRB_PRIV
Când o aplicaţie primeşte un mesaj de tipul KRB_PRIV ea îl verifică după cum urmează. La început se controlează dacă versiunea de protocol şi tipurile de câmpuri 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 aplicaţia 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. Aplicaţia care a recepţionat mesajul verifică, pe baza raportului sistemului său 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ă câmpurile: ştampilă temporală, time stamp, usec şi/sau număr de secvenţă, sequence number. Dacă se aşteaptă prezenţa câmpurilor 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 câmpuri: numele serverului, numele clientului, timp şi microsecond, din cadrul autentificatorului, sunt identice cu o grupare de astfel de câmpuri observată recent, atunci se generează mesajul de eroare KRB_AP_ERR_REPEAT.

143

Dacă este inclus un număr de secvenţă incorect, sau se aşteaptă un număr de secvenţă, dar acesta nu este prezent, atunci se generează mesajul de eroare KRB_AP_ERR_BADORDER. Dacă nu este prezent nici unul dintre câmpurile: ştampilă de timp, usec, sau număr de secvenţă, atunci se generează mesajul de eroare KRB_AP_ERR_MODIFIED. Dacă toate controalele descrise mai sus, sunt satisfăcute, atunci aplicaţia 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 clienţii care solicită dreptul de a transmite acreditări Kerberos de la un calculator gazdă la altul. Asta se poate face trimiţând "tichetele" împreună cu date criptate conţinând cheia sesiunii şi alte informaţii asociate cu "tichetele".

3.6.1 Generarea mesajului KRB_CRED
Când o aplicaţie doreşte să transmită un mesaj de tipul KRB_CRED ea obţine în primul rând (folosind schimbul de mesaje KRB_TGS) acreditările care trebuie trimise la calculatorul gazdă de la distanţă. Apoi ea construieşte un mesaj de tipul KRB_CRED folosind "tichetul" sau "tichetele" obţinute astfel, plasând cheia de sesiune, care trebuie folosită de către fiecare "tichet" în câmpul de cheie al secvenţei KrbCredInfo corespunzătoare a părţii criptate a mesajului KRB_CRED. Alte informaţii asociate cu fiecare "tichet" şi obţinute pe durata schimbului de mesaje KRB_TGS sunt de asemenea plasate în secvenţa KrbCredInfo corespunzătoare din partea criptată a mesajului KRB_CRED. Timpul curent şi, dacă este explicit cerut de către aplicaţie, câmpurile: 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 Recepţia mesajului KRB_CRED
Când o aplicaţie primeşte un mesaj de tipul KRB_CRED, ea îl verifică. Dacă a apărut vreo eroare este generat un cod de eroare care se foloseşte de către aplicaţie. Mesajul este verificat controlând dacă versiunea de protocol şi tipurile de câmp 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 aplicaţia 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 său de operare referitpr la adresa expeditorului se potriveşte cu adresa expeditorului conţinută în mesaj şi dacă una dintre adresele destinatarului se potriveşte 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. Cîmpurile ştampilă temporală şi usec (şi câmpul nonce dacă se cere) sunt apoi verificate. Dacă primele două câmpuri 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 satisfăcătoare, aplicaţia stochează fiecare dintre noile "tichete" împreună cu cheia sesiunii şi alte informaţii din secvenţa krbCredInfo corespunzătoare 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ă conţină identificatorii şi cheile secrete ale utilizatorilor principali care trebuie autentificaţi. Implementarea serverului nu necesită să se combine baza de date şi serverul propriuzis pe acelaşi calculator; principala bază de date poate fi stocată într-un nume de serviciu de reţea, de exemplu, dar datele, din această bază, trebuie să

144

4. pentru a o proteja. Cunoaşterea acestei chei secrete este folosită pentru verificarea autenticităţii utilizatorilor principali. în cazul în care baza de date este compromisă. Când se schimbă o cheie a unui server de aplicaţie. este posibil pentru unele chei să fie active pentru un singur utilizator principal.). Ori de câte ori Kerberos generează un "tichet" sau răspunde la o cerere iniţială de autentificare. efectuate de către părţi neautorizate.fie protejate împotriva modificărilor sau a schimbării structurii. Aceasta este cheia cu cel mai mare număr de versiune. Un server poate oferi servicii KDC pentru mai multe domenii de securitate. înregistraţi în acel domeniu de securitate şi este folosit pentru memorarea câte unei chei secrete. Ea poate fi criptată înainte de memorare cu ajutorul unei chei de criptate a serviciului Kerberos. numită master key. Criptarea este folosită pentru a demonstra identitatea entităţilor din reţea. Câmpul p-kvno conţine numărul versiunii de cheie secretă a utilizatorului principal. al fiecărui domeniu de securitate. Din această cauză. Cheile şi versiunile de cheie vor diferi între înregistrări (restul câmpurilor pot să fie identice). Aceste sisteme de criptare sunt utilizate împreună cu metode de înlănţuire a blocurilor şi cu metode bazate pe sumele de control. atât timp cât reprezentarea în baza de date oferă un mecanism de diferenţiere între înregistrările utilizatorului principal cu identificatori care diferă doar la numele domeniului de securitate. până când toate "tichetele" care au fost generate folsind vechea cheie au expirat. deoarece ele conduc la un management de sistem şi la o analiză a vulnerabilităţii complicate. However. Câmpul max_renewable_life conţine timpul de viaţă total maxim obtenabil pentru orice "tichet" reînoibil generat de acest utilizator principal. Totuşi astfel de strategii nu sunt recomandate. care pot fi simulate folosind siteme de criptare pe blocuri. a network name service. acesta va avea mai multe înregistrări în baza de date Kerberos. cea mai recentă cheie (cunoscută de serverul Kerberos) va fi folsită pentru criptare. care se pot procura mai uşor. Centrul de distribuire a cheilor. cum ar fi sitemul de criptare DES. 5. as long as the entries stored therein are protected from disclosure to and modification by unauthorized parties. este considerat de încredere de către toţi utilizatorii principali. 145 . Câmpul max_life conţine timpul de viaţă maxim obtenabil (diferenţa dintre momentul de terminare şi momentul de începere) pentru orice "tichet" generat de acest utilizator principal. we recommend against such strategies. as they can make system management and threat analysis quite complex. pentru a indica versiunea folosită de master key. say. dar nu şi cheia master. Câmpul cheie conţine o cheie de criptare. Specificaţii referitoare la criptare şi la sumele de control Protocoalele Kerberos sunt destinate utilizării unor sisteme de criptare secvenţiale. care participă la schimburile de mesaje. Aceasta este cheia secretă a utilizatorului principal. it is feasible to store the principal database in. Când mai multe chei sunt active pentru un anumit utilizator principal.1 Conţinutul bazei de date O intrare în baza de date trebuie să conţină cel puţin următoarele câmpuri: Câmp 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" reînoibile Câmpul de nume conţine un cod pentru identificatorul principalului utilizator. În acest caz trebuie adăugat un câmp suplimentar. dacă este o schimbare de rutină (şi nu rezultatul atacului asupra vechii chei). vechea cheie trebuie reţinută de către server. Serverul KDC foloseşte cheia utilizatorului principal (în schimbul de mesaje AS) sau o cheie de sesiune împărţită (în schimbulde mesaje TGS) pentru a cripta răspunsurile la cererile de "tichete".

pentru a combate atacurile bazate pe forţa brută. rutina de decriptare trebuie să returneze un mesaj de eroare. se foloseşte un algoritm pentru conversie. (generat cu ajutorul cheii sesiunii din răspunsul KDC). DES. totuşi. la fel ca şi abilitatea serviciului de a extrage cheia sesiunii din "tichet" şi de a demonstra cunoaşterea sa într-un răspuns. de obicei. Asta este important deoarece utilizatori care sunt înregistraţi în mai multe domenii de securitate. 146 . Anumite sisteme de criptare folosesc o metodă de înlănţuire a blocurilor pentru a îmbunătăţi caracteristicile de securitate ale textului cifrat. când trebuie extrasă o cheie din parola unui utilizator. cum ar fi de exemplu. aceste metode de înlănţuire. sunt utilizate pentru a verifica identitatea acelui serviciu. care să fie folosit pentru verificarea integrităţii mesajului. Totuşi. Dacă cheile sunt derivate din parole de tip utilizator. Protocoalele Kerberos presupun în general că metoda de criptare folosită este sigură. Fiecărei metode de criptare i se asociază un anumit tip de sumă de control. Pentru metodele de criptare. nu asigură. trebuie înzestrate cu un mecanism de verificare a sumelor de control. ordinea câmpurilor din porţiunile criptate ale mesajelor sunt aranjate pentru a minimiza efectele unor alegeri necorespunzătoare ale cheilor. Este de preferat ca funcţia hash folosită pentru transformarea parolei în cheie să fie de tipul one-way şi să se folosească funcţii hash diferite pentru diferite domenii de securitate. aceste parole trebuie să fie bine utilizate. controlul integrităţii după decriptare. Prin specificarea metodei de criptare se precizează şi parametrii metodei de verificare a sumei de control aferente. Dacă se detectează vreo eroare. de formă corespunzătoare. este de obicei de dorit să se plaseze informaţie aleatoare la începutul mesajului. În sfârşit. în anumite cazuri. vor utiliza aceaşi parolă în fiecare dintre aceste domenii şi este de dorit ca un atacator care a reuşit să compromită serverul Kerberos dintr-un domeniu de securitate să nu poată obţine cheia utilizatorului într-un alt astfel de domeniu. unui serviciu de verificare a identităţii utilizatorului principal. Un astfel de mecanism trebuie să fie bun la detectarea erorilor de tip burst. Nealegerea corespunzătoare a cheilor face sarcina atacatorilor mai uşoară. indicând faptul că testul de integritate nu a fost satisfăcut. Sistemele de criptare. pentru textul în clar obţinut după decriptare. Abilitatea utilizatorului principal de a decripta răspunsul de la serverul KDC şi de a prezenta un "tichet" şi un autentificator. Este totuşi important să se aleagă chei bune.abilitatea de a obţine cheia secretă sau cheia sesiunii implică cunoaşterea cheilor corespunzătoare şi a identităţii serverului KDC.

El este un sistem de criptare hibrid. Funcţionarea PGP PGP combină câţiva dintre cei mai buni parametri ai criptografiei simetrice şi asimetrice. Unul dintre ele este folosit pentru cheile secrete iar celălalt pentru cheile publice. În figura următoare este exemplificat modul de generare a unei semnături digitale. Dacă un utilizator îşi pierde cheia secretă. Pentru decriptare se aplică operaţiile dscrise în ordine inversă.1. Deoarece acesta a fost suspectat că ar fi încălcat interdicţia impusă de guvernul american asupra exportului de produse criptografice. folosindu-se cheia publică a destinatarului. îşi foloseşte cheia secretă pentru a reconstrui cheia sesiunii. este criptată şi cheia sesiunii. el nu va mai putea să decripteze nici un mesaj PGP pe care îl primeşte. Chei PGP memoreză cheile în două fişiere de pe hard disk-ul calculatorului gazdă. Compresia creşte rezistenţa la atacuri de criptanaliză. Semnături digitale Se folosesc pentru autentificarea sursei mesajului şi pentru verificarea integrităţii acestuia. Ea lucrează în acord cu un algoritm de criptare foarte sigur şi rapid pentru a cripta varianta comprimată a textului în clar.5. Pretty Good Privacy Acest pachet de programe reprezintă o exemplificare a conceptului PEM. el a fost urmărit în justiţie timp de mai mulţi ani. Destinatarul recepţionează mesajul PGP. Pachetul de programe PGP. Figura 1. De îndată ce datele au fost criptate. El a fost conceput de Phil Zimmermann.6. Ele asigură şi nerepudierea mesajului. Acestea se numesc inele de chei keyrings. Rezultatul este textul criptat. Această cheie este un număr aleator. Varianta criptată a cheii sesiunii este transmisă împreună cu textul criptat. acesta comprimă prima dată textul în clar. pe care apoi programele PGP o folosesc pentru a decripta textul criptat.. Inserarea unei semnături digitale 148 . Apoi PGP crează o cheie de sesiune care este folosită o singură dată. Când un utilizator criptează un text în clar cu PGP. În prezent este patronul unei companii de software care comercializează acest pachet de programe.

Atât timp cât se utilizează o funcţie hash sigură. Certificate digitale După cum s-a arătat la prezentarea algoritmului Diffie-Hellman. . Semnăturile digitale joacă un rol important în autentificarea şi validarea cheilor unor noi utilizatori PGP.informaţie proprie (de identificare a utilizatorului). pentru criptarea datelor. De aceea în cazul acestor sisteme de criptare este vital ca utilizatorul să fie sigur că foloseşte o cheie publică. o problemă majoră a sistemelor de criptare cu cheie publică este vulnerabilitatea acestora la atacul de tip man-in-the-midle. nu există nici o posibilitate să se copieze semnătura cuiva dintr-un mesaj şi să se ataşeze într-un altul sau se altereze un mesaj semnat. După recepţie destinatarul foloseşte PGP pentru a recompune rezumatul. verificând în acest fel semnătura. acesta crează semnătura. Figura 2. Mesajul în clar poate fi criptat sau nu. . Scopul utilizării semnăturilor digitale într-un certificat este ca acesta să atesteze că informaţia proprie a fost verificată şi confirmată de o a treia entitate de încredere. PGP transmite împreună semnătura şi mesajul în clar. PGP foloseşte funcţia hash MD-5 pentru a obţine un rezumat (message digest) al textului în clar pe care trebuie să-l semneze utilizatorul.una sau mai multe semnături digitale. 149 . Semnarea unui text în clar este utilă dacă unii dintre destinatari nu sunt interesaţi sau nu sunt capabili să verifice semnătura. Dacă acea informaţie poate fi decriptată cu cheia publică a utilizatorului atunci înseamnă că a fost generată de către acesta. Un certificat digital este compus din trei elemente: . Aşa cum s-a arătat la prezentarea sistemului Kerberos. care aparţine într-adevăr destinatarului mesajului şi nu este o cheie falsificată. Generarea şi inserarea unei semnături digitale. Cu ajutorul acestui rezumat şi al cheii secrete a utilizatorului.În loc să se cripteze informaţia cu cheia publică a cuiva se foloseşte cheia secretă a utilizatorului. Acestea permit autentificarea pe baza colaborării cu o a treia entitate de încredere. pot fi folosite certificatele digitale.o cheie publică. În figura următoare se prezintă procesul de generare şi inserare a unei semnături digitale. Cea mai mică modificare a unui document semnat va cauza insuccesul procesului de verificare a semnăturii. în scopul eliminării cheilor falsificate.

împreună cu algoritmul folosit împreună cu această cheie: RSA.numărul de versiune PGP.cheia publică a certificatului.certificate PGP. . Figura 3.certificate X. cum ar fi numele său. În cazul grupurilor mai mari trebuie să se folosească server-e de certificare. Se specifică data de generare a certificatului precum şi data expirării sale. Acesta identifică ce versiune de PGP a fost folosită la generarea cheii asociate la certificatul curent. Diffie-Hellman.partea de informaţie a certificatului. . algortim de semnătură digitală.509. Anatomia unui certificat digital. 150 . etc. PGP recunoaşte două formate diferite de certificat: . de tipul celor prezentate în capitolul destinat standardelor PKCS.Perioada de valabilitate a certificatului.semnătura digitală a distribuitorului de certificate. Partea publică a perechii de chei a utilizatorului. Se mai numeşte şi autosemnătură şi se construieşte folosind cheia secretă corespunzătoare cheii publice amintită mai sus. . .Deci un certificat digital este o cheie publică la care se ataşează una sau două forme de identificare şi o aprobare de la o a treia entitate de încredere. . ale firmei RSA. fotografia sa. Formatul de certificat PGP Un certificat PGP include (dar nu este limitat la) următoarea informaţie: .sau alte sisteme mai complexe. Structura unui certificat digital este prezentată în figura următoare. Este vorba despre informaţia de identificare a utilizatorului. Distribuirea certificatelor În cazul grupurilor mici se utilizează distribuirea manuală a certificatelor digitale.

-

Algoritmul de criptare simetrică preferat pentru criptarea cheii. Se indică care algoritm de criptare, dintre CAST, IDEA sau DES-triplu, este preferat de către 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. Când un utilizator s-a convins că un anumit certificat este valabil el poate semna copia acestuia cu una dintre cheile de pe inelul său de chei, pentru a-i confirma autenticitatea. După cum s-a arătat în paragraful în care a fost prezentat sitemul PEM, există autorităţi de autentificare a certificatelor, CA.

Nivele de încredere în PGP
Cel mai înalt nivel de încredere într-o cheie, încredere implicită, este cel corespunzător perechii proprii de chei. PGP presupune că dacă un utilizator posedă o cheie secretă, el trebuie să aibă încredere în acţiunile efectuate pe baza cheii publice corespunzătoare. 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ă, - neîncredere. În consecinţă există şi trei nivele de validitate: - totală, - marginală, - nulă. Pentru a considera o cheie validă PGP pretinde fie o semnătură cu încredere completă fie două semnături cu încredere marginală.

Revocarea certificatelor
Certificatele digitale sunt folositoare doar atâta vreme cât sunt valabile. Când ele expiră nu mai sunt valabile. Există şi cazuri când este necesară revocarea unui certificat digital înainte de data expirării sale. Orice entitate care a semnat un certificat, poate să-şi revoce propria semnătură de pe acesta, de îndată ce are impresia că informaţia proprie şi cheia publică nu mai sunt în corespondenţa corectă sau că a fost atacată cheia publică. În cazul certificatelor PGP poate fi revocat şi întregul certificat (nu numai propria semnătură) de către una dintre entităţile care l-a semnat. Un certificat PGP pot fi revocate doar de către autoritatea care l-a eliberat sau de către o entitate care a fost împuternicită de către aceasta să revoce certificate.

Comunicarea revocării unui certificat
La revocarea unui certificat digital este important ca toţi potenţialii săi beneficiari să fie informaţi. Pentru aceasta, în cadrul sistemului PGP se afişează certificatul revocat pe un server de certificare. În acest mod toţi cei care doresc să comunice cu utilizatorul a cărui cheie publică este conţinută în acel certificat să poată să fie avertizaţi că acea cheie publică nu mai este validă. Pentru aceasta se folosesc liste de certificate revocate, Certificate Revocation List, CRL, publicate de către CA. Certificatele revocate rămân pe o astfel de listă doar până la data expirării 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 către un utilizator în scop de identificare. Aceasta este mai sigură împotriva atacurilor bazate pe forţa brută. PGP foloseşte 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ă.

Împărtăşirea 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. Deşi nu este recomandabil uneori este necesar să se utilizeze în comun chei secrete. În aceste situaţii este recomandabil ca porţiuni ale cheii secrete să fie făcute cunoscute căte unei persoane, astfel încât 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ă reţele. 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 celălalt de deblocare a acestui trafic. Denumirea de firewall a fost folosită pentru prima dată la sfârşitul 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 făcută în anul 1990. Cel mai important atribut al unui astfel de dispozitiv este politica de control pe care o implementează. În absenţa 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 vecinătate. De aceea responsabilitatea administratorilor de reţea care programează dispozitivele de tip firewall este importantă pentru funcţionarea reţelelor pe care le conectează aceste dispozitive. Dispozitivul de tip firewall al unei companii poate fi folosit şi pentru a obţine informaţii despre acea companie. Prin intermediul acestui dispozitiv pot fi publicate cataloage de produse, informaţii de uz general,…, dobândirea acestora putându-se face fără a accesa vreun server din reţeaua companiei considerate. Unele dispozitive de tip firewall permit doar traficul prin poştă electronică, protejând reţeaua de orice atac cu excepţia celor specifice pentru poşta electronică. Alte dispozitive de tip firewall realizează o protecţie mai puţin strictă, blocând 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 comportându-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 reţea şi diferite informaţii referitoare la traficul care le-a străbătut într-un anumit interval de timp (tipul de trafic, numărul de încercări ilegale de a forţa accesul, etc). Dispozitivele de tip firewall nu pot proteja împotriva atacurilor care nu trec prin ele. Date pot fi furate dintr-o anumită reţea şi prin acces direct (de exemplu pe o bandă magnetică) sau prin intermediul modemurilor. Pentru ca să poată funcţiona 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 părţi ale acestei arhitecturi de securitate nu funcţionează 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 reţea. De exemplu un calculator gazdă care deţine informaţii clasificate ca secrete nu necesită un dispozitiv de tip firewall, pur şi simplu acesta nu trebuie conectat în reţea. De asemenea dispozitivele de tip firewall nu pot proteja împotriva atacurilor pornite din interiorul reţelei. Nici împotriva viruşilor nu poate fi asigurată o protecţie eficientă. Împotriva acestui tip de atacuri trebuie creată o politică specială a întregii reţele. Majoritatea viruşilor sunt inoculaţi prin folosirea dischetelor şi nu prin reţea. În continuare se prezintă câteva 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. la care acţionează. în adresele IP individuale.research.tamu.edu/ftp/security/TAMU/ http://www. pe care trebuie să le ia un administrator de reţea în legătură cu instalarea unui dispozitiv de tip firewall.edu/coast/firewalls Implementare Eistă câteva decizii. În primul rând trebuie cunoscut modul în care se doreşte să se opereze sistemul.att.com/dist/internet_security/ http://www. Dispozitivele firewall care acţionează la nivele inferioare (reţea) sunt mai rapide dar asigură un nivel de securitate mai scăzut. .dispozitive care acţionează la nivelul reţea. 154 . Dispozitivele firewall care acţionează la nivel reţea moderne sunt din ce în ce mai complicate. în prezent acestea menţin informaţii interne despre starea conexiunilor care trec prin ele precum şi despre conţinutul anumitor şiruri de date.net. Cel de al treilea este aspectul financiar.purdue. Un router obişnuit poate fi privit ca dispozitiv de tip firewall din această categorie.dispozitive care acţionează la nivelul aplicaţie. în două categorii: . Tipuri de dispozitive firewall Dispozitivele de tip firewall pot fi clasificate după nivelul din modelul de referinţă OSI. Utilizarea unui astfel de dispozitiv este prezentată în figura 1.cs. Dispozitive firewall care acţionează la nivel reţea Aceste dispozitive iau decizii pe baza adreselor sursei şi destinaţiei precum şi pe baza porturilor specificate. redundanţă şi control necesare pentru reţeaua considerată. E necesar ca administratorul de reţea să ştie dacă dispozitivul de tip firewall trebuie să blocheze toate servicile care nu sunt absolut necesare pentru conectarea reţelei respective la INTERNET sau dacă este suficient ca dispozitivul de tip firewall să ofere o cale obiectivă de dirijare a accesului. În al doilea rând administratorul de reţea trebuie să ştie care este nivelul de monitorizare. Figura 1. Utilizarea unui dipozitiv de tip firewall care acţionează la nivelul reţea.

amintit mai sus este un calculator gazdă de tip Bastion. Dispozitivele de tip firewall care acţionează la nivel aplicaţie tind să asigure un nivel de securitate mai ridicat decât cele care acţionează la nivel reţea. Dispozitivele de tip firewall mai moderne. Figura 2. cu acţiune la nivelul aplicaţie.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 reţea. Cele mai moderne dispozitive de tip firewall sunt perfect transparente. Dispozitivul din figura 2 se numeşte screened subnet firewall. Sistemul din figura 2 este similar cu un dispozitiv de tipul screened host. la un anumit moment de timp. cum sunt cele construite folosind sistemul de generare a dispozitivelor firewall (toolkit) TIS. Dispozitive firewall care acţionează la nivel aplicaţie Pot fi folosite ca şi translatoare de adrese de reţea deoarece traficul este dirijat într-o singură direcţie. Dispozitivul de tip firewall din figura 1 este numit screened host firewall. Un exemplu de dispozitiv de tip firewall din această categorie este prezentat în figura 3. după ce a trecut printr-o aplicaţie care a mascat originea conexiunii iniţiate. doar că nu este vorba despre un singur dispozitiv ci despre o reţea de dispozitive de tipul screened host. Are două interfeţe cu reţeaua şi blochează complet traficul care îl străbate. În cazul utilizării unui astfel de sistem este controlat accesul spre şi dinspre o întreagă reţea cu ajutorul unui router care operează la nvel reţea. El este numit dual horn gateway. nu sunt absolut transparente la nivelul utilizatorilor de la capete şi pot necesita o perioadă de antrenament. 155 . Este vorba despre un calculator gazdă cu un nivel de securitate sporit care rulează software de tip proxy. În figura 2 se prezintă un alt exemplu de dispozitiv de tip firewall care acţionează la nivelul reţea. Având o aplicaţie într-un anumit sens. Singurul calculator gazdă. Utilizarea unui dispozitiv de tipul screened subnet. la un moment dat. adică un calculator puternic apărat care realizează un nod cu securitate de nivel înalt pentru a rezista atacurilor. în anumite cazuri pot fi afectate performanţele reţelei iar dispozitivul de tip firewall poate deveni mai puţin transparent.

Multe server-e proxy conţin programe pentru autentificarea utilizatorului. FTP. Oricum una dintre cele mai importante resurse este capacitatea de memorare a unui astfel de dispozitiv. rlogin. pentru a preveni traficul direct între reţele diferite. O categorie populară de sever-e proxy este TIS. X-window. De obicei astfel de server-e se utilizează în locul controloarelor de trafic baazte pe router-e. care include server-e proxy pentru protocoalele: Telenet. Dispozitivele de tip firewall cu criptare capăt la capăt pot fi folosite de organizaţii care au mai multe puncte de conectare la INTERNET. Un alt sistem de server-e proxy este numit SOCKS. Internet Firewall Toolkit. Server-e proxy Un server proxy este o aplicaţie care mediază traficul între o reţea protejată şi INTERNET. 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 funcţie de trafic. HTTP/Web şi NNTP/Usenet. Serviciu Resursa critică Poştă electronică Dispozitive I/O pentru hard-disck Reviste electronice Netnews Dispozitive I/O pentru hard-disck Navigaţie Web Performanţele socket-ului sistemului de operare al calculatorului gazdă Dirijare IP Performanţele socket-ului sistemului de operare al calculatorului gazdă Performanţele socket-ului sistemului de operare al Web Cache calculatorului gazdă. Viitorul dispozitivelor de tip firewall se va găsi undeva între categoria care acţionează la nivelul reţea şi categoria care acţionează la nivelul aplicaţie. netrebuind să-şi mai facă griji pentru protecţia datelor sau parolelor calculatoarelor organizaţiilor lor. mai ales atunci când debitul traficului este ridicat.socks.com/. Dispozitive I/O pentru harddisck 156 . Acesta poate fi compilat într-o aplicaţie de tip client pentru a fi făcut să lucreze printr-un dispozitiv de tip firewall.Din ce în ce mai des dispozitivele de tip firewall apelează la metode de criptare pentru protejarea datelor care le străbat. în acest fel administratorii de reţea ai acestor oraganizaţii. Utilizarea unui dispozitiv de tip Dual-Homed Gateway. Pentru mai multe informaţii poate fi consultat materialul disponibil la adresa http://www. În tabelul următor se prezintă câteva dintre resursele critice pentru servicile de tip firewall în funcţie de principala aplicaţie a acestora.Figura 3. Vor fi dispozitive care vor asigura un nivel de securitate mai mare decât dispozitivele care acţionează la nivelul reţea şi o transparenţă mai mare decât dispozitivele care acţionează la nivelul aplicaţie.

deoarece un atacator poate genera trafic declarând că acesta a fost creat de către un sistem din interiorul dispozitivului de tip firewall. Redirecţionare ICMP O redirecţionare ICMP informează un anumit router că trebuie să modifice ceva în tabelul său de dirijare. Traficul dirijat de sursă În mod normal drumul pe care îl parcurge un pachet de date între sursa şi destinaţia sa este fixat de către router-ele pe care le întâlneşte în cale. Pachetul conţine doar adresa destinaţiei. în INTERNET. datorită naturii distribuite a acestei reţele. Saturarea server-ului SMTP Un atacator poate trimite numeroase copii ale unui aceluiaşi mesaj la o listă de adrese e-mail. De aceea multe dispozitive de tip firewall nu iau în considerare mesajele de redirecţionare ICMP. Există însă o opţiune pentru expeditorul de pachete de a include informaţii în pachet care să specifice drumul pe care trebuie să meargă pachetul respectiv.1. Redirecţionarea ICMP poate fi folosită şi pentru realizarea unor atacuri de tip negarea serviciului. sau este congestionat). Un astfel de trafic nu poate fi dirijat corect de către dispozitivul de tip firewall deoarece toate router-ele situate între calculatorul atacatorului şi ţintă vor returna traficul pe calea inversă a drumului "indicat" de către sursă (deci tot acest trafic fals va fi îndreptat spre dispozitivul de tip firewall). Acestea pot fi utilizate pentru atacarea servicilor implementate de aplicaţiile respective. bugs. 6.6. service denial. un router de pe acele drumuri s-a defectat. În acest mod acel server poate fi saturat. de exemplu. Exploatarea greşelilor din softul de aplicaţie Majoritatea programelor de aplicaţie folosite pentru reţeaua INTERNET conţin mici greşeli. Un dispozitiv de tip firewall poate avea control doar asupra câtorva elemente locale. constructorii de dispozitive de tip firewall nu trebuie să accepte ca acest tip de dirijare să fie folosit. să se pareze un atac de tipul negarea serviciului. 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. Produse de tip firewall În continuare se prezintă o listă de produse de acest tip indicându-se şi producătorii. Deoarece implementarea unui astfel de atac este foarte simplă. Această listă transmite mesajele unui server SMTP pentru a le livra destinatarilor. Negarea serviciului Este imposibil. E clar că prin falsificarea mesajelor de redirecţionare ICMP poate fi atacat un anumit router şi traficul prin acesta blocat. Aceleaşi considerente sunt valabile şi pentru sistemele de operare. atacul de tip negarea serviciului putându-se oricând declanşa de la distanţă mai mare.Diferite tipuri de atac În continuare se prezintă câteva tipuri de atac împotriva unei reţele şi modurile în care dispozitivele de tip firewall se pot opune acestor atacuri. 157 . Această metodă de dirijare nu este agreată de către dispozitivele de tip firewall. La construcţia unui dispozitiv de tip firewall trebuie blocată într-un anumit punct dirijarea traficului de către sursă. În acest fel pot fi evitate de exemplu drumurile blocate (din cauză că. În acest mod se realizează dirijarea traficului de către sursă.

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 Producător 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 .