Proliferarea Microcalculatoarelor

CUPRINS

INTRODUCERE

CAP.1. REȚELE DE CALCULATOARE, CLASIFICăRI, PRINCIPII ȘI MODELE DE

FUNCTȚONARE

Clasificarea rețelelor de calculatoare după extinderea spațială

1.2 .Topologii ale rețelelor de calculatoare

1.3 Principii și noțiuni fundamentale în transferul de date prin rețele de calculatoare

. 1.4. Modelul de referință ISO/OSI

1.5. Modelul de referință TCP/IP

CAP.2. SECURITATEA REȚELELOR DE CALCULATOARE

2.1.Modelul de securitate în rețele

. 2.2.Obiective de securitate urmarite in realizarea unei rețele

2.3.Categorii de atacuri asupra rețelelor de calculatoare

2.4.Metode de apărare

CAP:3.SECURITATEA PE INTERNET

3.1.Securitatea serviciilor internet

3.2.Funcționarea serviciilor INTERNET

3.3.Securitatea prin firewall

3.4.Securitatea prin criptare

3.4.1.Istoric. Evoluție

3.4.2.Algoritmi criptografici cu cheie secretă

3.4.3.Algoritmi criptografici cu cheie publică

CAP:4. APLICAȚII TIP FIREWALL DE FILTRARE A PACHETELOR.

IPTABLES VS. ZONE ALARM

4.1.Descriere generala de funcționare

4.2.Reguli de filtrare.Opțiuni de filtrare

CONCLUZII

BIBLIOGRAFIE

INTRODUCERE

Apariția și proliferarea microcalculatoarelor, pe de o parte, precum și apariția unor tehnici noi performante de transmitere a informațiilor, pe de altă parte, au condus la interconectarea calculatoarelor prin intermediul unor mijloace de comunicație și dezvoltarea rețelelor de calculatoare. Până la începutul anilor ’80 din secolul trecut sistemele de calcul erau organizate în jurul unui calculator central capabil să rezolve problemele transmise de numeroși utilizatori răspândiți pe arii din ce în ce mai largi. Tendința de trecere de la acest sistem centralizat, la soluția instalării de calculatoare la fiecare utilizator și asigurarea unor legături de comunicație eficientă între ele, rețelele de calculatoare a devenit parte integrantă a societății moderne. Prin cooperarea între calculatoare se poate realiza transferul unui fișier de la un calculator la altul, se poate accesa o bază de date de la distanță, se pot transmite mesaje, se pot utiliza resursele hard și soft ale unui calculator. O rețea de calculatoare este alcătuită dintr-un ansamblu de echipamente informatice și de mijloace de transmisiuni, capabil să realizeze atât transportul informațiilor cât și prelucrarea acestora în scopul utilizării în comun a acestor prin integrarea informatică a unui număr mare de utilizatori. Utilizarea calculatoarelor în rețea este susținută de o serie de avantaje: – accesul la toate resursele (echipamente, programe și date) a oricărui utilizator indiferent de localizarea sa fizică; – creșterea gradului de fiabilitate a sistemului de calcul, prin preluarea sarcinilor componentelor care “cad” de către alte componente disponibile în rețea; – posibilitatea extinderii rețelei prin adăugarea de noi componente hard și soft care să asigure creșterea performanțelor etc. – implementarea diverselor aplicații cu aceleași investiții de către mai mulți utilizatori; – crearea unor puternice medii de comunicație interumane. Societatea modernă informatizată reprezintă deja o realitate, în care se ignoră frontierele și se trece peste orice constrângeri de ordin spațial sau temporal. Economia, politică și societatea se bazează in ziua de astăzi, din ce în ce mai mult, pe această infrastructură informatică. De asemenea, guvernele, firmele din sectoarul public și privat, organismele financiare naționale și internaționale, învățământul, cultura și cercetarea științifică, beneficiază toate de aceste forme eficiente de conducere, informare și comunicare. În aceste circumstanțe, securitatea informatică a devenit una din componentele majore ale internet-ului. Analiștii acestui concept au sesizat o contradicție aparentă între nevoia de comunicații și conectivitate, pe de o parte, și necesitatea asigurării confidențialității, integrității și autenticității informațiilor, pe de altă parte. Domeniul relativ nou al securității informatice caută soluții tehnice pentru rezolvarea acestei contradicții aparente. Viteza și eficiența comunicațiilor "instantanee" de documente și mesaje conferă numeroase atuuri actului decizional într-o societate modernă, bazată pe economie concurențială însă utilizarea serviciilor de poștă electronică, Web, transfer electronic de fonduri etc. se bazează pe un sentiment, adeseori fals, de securitate a comunicațiilor, care poate transforma potențialele câștiguri generate de accesul rapid la informații, în pierderi majore, cauzate de furtul de date sau de inserarea de date false ori denaturate. Sistemele informatice sunt amenințate atât din interior cât și din exterior. Pot fi persoane bine intenționate, care fac diferite erori de operare sau persoane rău intenționate, care sacrifică timp și bani pentru penetrarea sistemelor informatice. Dintre factorii tehnici care permit fisuri de securitate pot fi anumite erori ale software-ului de prelucrare sau de comunicare sau anumite defecte ale echipamentelor de calcul sau de comunicație. Folosirea abuzivă a unor sisteme reprezintă, de asemenea, unul din factorii de risc major privind securitatea sistemelor informatice. Sistemele sunt vulnerabile la penetrări neautorizate, la distrugeri sau modificări accidentale sau voite de date ori programe. Aceste sisteme pot deservi elemente vitale pentru societate cum ar fi: sisteme militare, bănci, spitale, sisteme de transport, burse de valori, oferind în același timp un cadru de comportament antisocial sau de terorism. Tendința actuală privind extinderea conectivității, în special în internet, amplifică aceste vulnerabilități: este din ce în ce mai greu să se localizeze un defect, un punct de acces ilegal în rețea, un utilizator cu comportament inadecvat. Se consideră că internet-ul este unul din cele mai complexe sisteme create de tehnologia umană care, alături de sistemul financiar mondial, nu poate fi controlat în totalitate. Vulnerabilitatea sistemelor informatice actuale poate antrena pierderi imense de ordin financiar, direct sau indirect, cum ar fi scurgerea de informații confidențiale cu caracter personal, militar sau economic. Obiectivele acestei lucrări se pot imparți in 2 mari categorii și anume: obiective principale în care se urmărește pe de o parte înțelegerea topologiei de rețea și realizarea unei rețele de calculatoare securizate și pe de altă parte prezentarea unor produse software de tip firewall care ar putea rezolva o mare parte din problemele de securitate; obiective secundare care sunt desprinse din obiectivele principale și urmăresc intelegerea problemelor de securitate care pot interveni într-o rețea de calculatoare, modul lor de rezolvare precum și modul de utilizare a 2 produse software indispensabile unei rețele care se dorește a fi sigură și stabilă reușind să țina la distanță diferite tipuri de atacuri asupra acesteia. Lucrarea este structurată in 4 mari capitole, fiecare capitol cuprinzand la rândul lui mai multe subcapitole. De asemenea se poate spune că lucrarea este formată din 2 mari părți și anume: prima parte, partea de teorie în care se vorbeste despre structura și topologia și securitatea rețelelor de calculatoare și despre securitatea pe internet; și a 2-a parte, partea aplicativă în care se face o comparație între 2 produse software existente pe piața flosite pentru securizarea sistemelor de calcul si a rețelelor de calculatoare și anume 2 firewall-uri: Iptables utilitar existent și folosit pe platformele UNIX (Linux, Freebsd, Darwin) și ZoneAlarm un produs destul de complex și usor de folosit pe platformele Windows. În primul capitol se face o trecere în revistă a rețelelor de calculatorare în ceea ce privește clasificarea, principii și modele de funcționare explicându-se pe larg cele două modele de referință OSI și TCP-IP. În capitolul al 2-lea se abordează în principal probleme legate de securitatea rețelelor de calculatoare și anume se prezintă modelul de securitate în rețele, obiectivele de securitate avute în vedere în construirea unei rețele de calculatoare.De asemenea vom prezenta și cateva categorii de atacuri asupra rețelelor dar și metodele de apărare care pot fi utilizate. În capitolul 3 se pune accent pe securitatea în internet. Se prezintă noțiuni despre serviciile internet și securitatea acestora, apoi în a 2-a parte a capitolului, securitatea prin firewall, filtrarea datelor și securitatea prin criptare unde vom prezenta 2 algoritmi de criptare, unul cu cheie secretă și altul cu cheie publică. În capitolul 4, care reprezintă partea aplicativă a lucrăriii, se face o comparație între 2 produse de tip firewall utilizate pe 2 platforme diferite: Iptables (Unix-Linux) și ZoneAlarm (Windows).

CAP. 1. REȚELE DE CALCULATOARE. CLASIFICARI, PRINCIPII ȘI MODELE DE FUNCȚIONARE

1.1. Clasificarea rețelelor de calculatoare după extinderea spațială

Există mai multe tipuri de rețele, ele diferențiidu-se prin distanțele pe care le acoperă, debitul utilizat în transmiterea informației, tehnica de comutare folosită etc. Criteriul ariei geografice pe care o acoperă și soluțiile tehnice de implementare folosite, împart rețelele de calculatoare în patru categorii: VLAN, rețele locale (LAN), rețele metropolitane (MAN) și rețele mari (WAN).

Rețele foarte restrânse. VLAN reprezintă gruparea unor echipamente de rețea după criterii logice și nu după topografia fizică, precum în cazul unui LAN obișnuit.

VLAN se reazlizează folosind software proprietar.

Locul în care se realizează delimitarea VLAN este la nivelul switches.

Rețelele locale (LAN – Local Area Network) constituie un mijloc eficient de comunicație între calculatoare personale (și alte echipamente precum imprimantele, serverele de fișiere etc.), fără a apela la un calculator puternic (mainframe) în calitate de concentrator /comutator. Componentele unei astfel de rețele sunt situate la distanțe relativ mici (de la câțiva metrii până la 5 km), amplasate într-o clădire sau un grup de clădiri învecinate. Rețelele locale sunt proiectate să realizeze următoarele lucruri:

să opereze pe o aria geografica limitata la o cladire sau un grup de cladiri;

să permită unui numar de utilizatori sa acceseze media cu lațime de banda mare;

să furnizeze conectivitate permanența la serviciile locale;

să conecteze echipamente de rețea adiacente;

Rețelele metropolitane (MAN –Metropolitan Area Network) sunt rețele care acoperă ca întindere aria unui mare oraș (metropolă) fiind folosite, de asemenea, pentru conectarea LAN–urilor. Distanțele acoperite pot ajunge până la 75 km. În funcție de arhitectura rețelei, viteza de transmisie poate fi mai mare pe distanțe mai mici. Toate calculatoarele legate la o rețea metropolitană au acces la resursele shared la rate de transfer foarte mari, precum și posibilitatea de a transfera date (inclusiv comunicații audio-(video) între ele în condiții de calitate deosebită.

Rețelele largi (WAN – Wide Area Network) sunt rețele care acoperă distanțe foarte mari și asigură utilizarea în comun a resurselor de calcul ale unor sisteme foarte complexe de către utilizatori plasați într-o astfel de arie. Într-o rețea locala, fiecare departament reprezintă un fel de insulă electronică. Se impunea necesitatea ca informația să se poată transporta rapid și eficient în locatii geografice diferite. Soluția o reprezintă apariția WAN. WAN folosesc protocoale și tehnologii diferite decât LAN. Câteva dintre acestea sunt enumerate mai jos:

WAN modems;

ISDN (Integrated Services Digital Network);

DSL (Digital Subscriber Line);

Frame relay ;

ATM (Asynchronous Transfer Mode) ;

Carrier Series T (US) si Carrier Series E (Europe): T1, E1, T3, E3 etc.;

SONET (Synchronous Optical Network)

1.2 Topologii ale rețelelor de calculatoare

Prin topologia rețelelor se intelege modul de conectare al nodurilor ce comunică între ele. Nces la resursele shared la rate de transfer foarte mari, precum și posibilitatea de a transfera date (inclusiv comunicații audio-(video) între ele în condiții de calitate deosebită.

Rețelele largi (WAN – Wide Area Network) sunt rețele care acoperă distanțe foarte mari și asigură utilizarea în comun a resurselor de calcul ale unor sisteme foarte complexe de către utilizatori plasați într-o astfel de arie. Într-o rețea locala, fiecare departament reprezintă un fel de insulă electronică. Se impunea necesitatea ca informația să se poată transporta rapid și eficient în locatii geografice diferite. Soluția o reprezintă apariția WAN. WAN folosesc protocoale și tehnologii diferite decât LAN. Câteva dintre acestea sunt enumerate mai jos:

WAN modems;

ISDN (Integrated Services Digital Network);

DSL (Digital Subscriber Line);

Frame relay ;

ATM (Asynchronous Transfer Mode) ;

Carrier Series T (US) si Carrier Series E (Europe): T1, E1, T3, E3 etc.;

SONET (Synchronous Optical Network)

1.2 Topologii ale rețelelor de calculatoare

Prin topologia rețelelor se intelege modul de conectare al nodurilor ce comunică între ele. Nodurile pot fi calculatoare independente sau structuri LAN – WAN

Topologia MESH

Această topologie presupune existența unei conexiuni între oricare două noduri din rețea. Din acest motiv ea se mai numeste si arhitectura total conectata.

Este o structură ideală pentru cazul rețelelor locale și presupune existența fizică a unei interferențe și conexiuni cu toate nodurile prezente în rețea. Introducerea unui nod nou în rețea se reflectă asupra tuturor nodurilor existente deoarece presupune apariția la fiecare în parte a unei interfețe și a unei conexiuni fizice. Fig.1.1 AVANTAJE

un nod poate transmite oricând, el nefiind condiționat de starea de activități a celorlalte noduri.

Prin urmare structura este caracterizată prin disponibilitate maximă

fiabilitate maximă – nefuncționare uni nod sau a unei conexiuni nu împietează asupra funcționării globale a rețelei.

DEZAVANTAJE

conexiunile nu sunt folosite optim. Rata lor de ocupare este minimă.

consum maxim de resurse fizice (interfețe, conexiuni, …), deci în aceasta situatie vor exista costurilmaxime.

UTILIZARE

În general această topologie este utilizată în rețelele metropolitane unde un nod este reprezentat de o structură LAN – WAN – LAN. In aceasta situatie costurile implicate de constituidea structurii sunt mici in comparatie cu avantajul disponibilitatii canalului de comunicatie intre oriare doua noduri. In încercarea eliminarii dezavantajelor de costuri mari se va evolua în prezentare către următoarea topologie.

Topologia BUS (magistrală)

Fig. 1.2.

Această arhitectură presupune existența unui mediu fizic comun de comunicație, mediu care este partajat de toate nodurile participante. Din acest motiv la un moment dat un singur nod poate transmite prin intermediul mediului partajat.

Caracteristică esențială a topologiei BUS – sunt necesari algoritmi și dispozitive de arbitrare a accesului la mediul fizic comun.

AVANTAJE

resurse utilizate foarte puține – o singură interfață per nod, un singur mediu

fizic de transport.

otilizare optimă a resurselor – grad de ocupare maxim.

DEZAVANTAJE

fiabilitate scăzută – o defecțiune apărută la nivelul mediului fizic duce la căderea întregii rețele.

În incercarea de a minimiza dezavantajul creat de fiabilitatea scazută a topologiei BUS se va evolua către structura de inel (ring) care practic dublează rata de fiabilitate fără ca acest lucru sa fie reflectat sub aceasta formă în costuri.

Topologia RING (inel)

Se dezvoltă din structura BUS, fiind construită tot în jurul unei resurse comune (mediul fizic de comunicație) dar are o fiabilitate mai mare. Ea se construiește prin conectarea tuturor nodurilor participante cu nodurile adiacente (vecinii) până la formarea unei bucle (inchisa). Se remarcă o ușoara creștere a costurilor ca urmare a apariției a câte două interfete per nod. Fiabilitatea crește deoarece la apariția unei defecțiuni la nivelul mediului fizic partajat nu se va invalida întreg sistemul pentru că există totdeauna o rută (cale) alternativă de comunicare. Fig.1.3.

Ambele arhitecturi BUS & RING au în general o rată de transmisie a datelor cuprinsă în întervalul 1÷10 Mbps, relativ mică. Acestea sunt aplicabile la conectarea sistemelor de calcul în structuri mici (birouri) sau în conectarea controllelor inteligente în cadrul unui proces de producție automatizat.

Topologia STAR (stea)

Fig.1.4

Presupune existența unui dispozitiv central prin intermediul căruia se conectează noduril. Vom denumi acest dispozitiv HUB. Fiecare nod are o conexiune proprie deci nu o va partaja cu ceilalți participanți. Fiabilitatea sistemului este dată de fiabilitatea elementului central. Defectarea sa duce la inactivitatea rețelei. Defectarea unui nod sau a conexiunii aferente acestuia nu impietează asupra funcționalității rețelei. HUB – ul mai poate executa și alte funcții. Ele pot fi inteligente sau pasive, pot avea funcții în formarea semnalelor sau în filtrarea zgomotelor…..etc.

Topologia mixtă (HIBRIDĂ) Este cea mai larg întâlnită în structurile reale și presupune interconectarea mai multor structuri cu topologii de bază diferite. Într-o asemenea situație se realizează o pondere a avantajelor și dezavantajelor fiecărei topologii astfel încât să realizăm un optimum pentru o structură dată. Fig.1.5

1.3 Principii și noțiuni fundamentale în transferul de date prin rețele de calculatoare

Pentru ca mai mulți utilizatori să poată transmite simultan informații în rețea, datele trebuie fragmentate în unități mici și ușor de manevrat. Aceste unități sunt numite „pachete” sau „cadre”. Pachetele reprezintp unitatea de bază a comunicațiilor în rețea. Dacă datele sunt fragmentate în pachete, transmisiile individuale vor fi accelerate, astfel încât fiecare calculator din rețea va avea multe ocazii de a transmite si receptiona date.

Structura unui pachet

Pachetele pot conține mai multe tipuri de date printre care:

informații, cum ar fi mesaje sau fișiere.

anumite tipuri de date și comenzi de control pentru calculator, cum ar fi solicitățile de servicii.

codurile de control al sesiunii.

Componentele sunt grupate în trei secțiuni:

Antet care conține :

– un semnal de atentionare, care indică faptul că se transmite un pachet de date;

– adresa sursă;

– adresa destinație;

– informații de ceas pentru sincronizarea transmisiei.

Datele reprezintă informatiile care se transmit. Această componentă poate avea dimensiuni diferite, în funcție de rețea . Datele se fragmentează la dimensiunile unui pachet, deci este nevoie de mai multe pachete de date.

Postambul – depinde de protocului utilizat. De obicei conține o componentă de verificare a erorilor, numită CRC.

Majoritatea pachetelor din rețea sunt adresate unui anumit calculator. Fiecare placp de rețea „vede” toate pachetele transmise pe segmentul său de cablu însă atențoneazp (întrerupe) calculatorul doar în cazul în care adresa pachetului corespunde cu adresa sa.

In afarî de acest tip de adresare, mai poate fi folositî și o adresî de difuzare (broadcast), ceea ce inseamna că pachetele sunt in atenția tuturor calculatoarelor din rețea. În cazul rețelelor mari, care acoperă suprafețe întinse (orașe, tari) și oferă mai multe rute de comunicație, componentele de conectivitate și de comutare ale rețelei (router, switch) folosesc informația de adresă a pachetului pentru a determina cea mai bună cale (rută) pentru transmiterea acesteia. Comunicarea între două calculatoare dintr-o rețea de arie largă se poate realiza prin stabilirea unor legături fizice permanente între nodurile respective (rețea cu comutare de circuite, caz în care capacitatea de transfer este constantă iar costul legăturii este fix, indiferent de rata de transfer a informatiei) sau a unor legături dinamice, prin intermediul altor noduri, în funcție de configurațu retțlei și gradul de ocupare (retea cu comutare de pachete). Acest ultim model este cel mai des utilizat în practică, are un debit mare de transfer pe legăturile dintre noduri și presupune divizarea fișierelor transmise prin retea în componente mai mici, de câteva sute de octeți, numite pachete. Acestea conțin informația utilă transferată și adresa nodului destinație, unde vor fi reunite (multiplexate) cu ajutorul unui soft specializat, pentru a forma fișierul transmis. Astfel, pot exista comunicații simultane între noduri prin partajarea de către calculatoarele care comunică a conexiunilor fizice existente. Nodurile rețelei care au rol în dirijarea (comutarea) pachetelor se numesc routere. Dacă traficul creste foarte mult, este posibil să se satureze reteaua iar calculatoarele să trebuiască să astepte înainte de a putea emite din nou.

Metode de comutare

Latența pachetelor într-un switch depinde în primul rând de modul în care se realizează comutarea acestora. Există trei astfel de metode.

– Store-and-forward reprezintă cea mai cunoscută metodă de switching într-o rețea. Înainte de a fi transmis, cadrul este recepționat în totalitate: se citește adresa sursă și/sau destinație și se aplică anumite filtre, se calculează o cifră de verificare a redundanței. În timpul recepționării cadrului apare și latența. Cu cât cadrul este mai mare cu atât este mai mare și latența indusă ca urmare a timpului necesar citirii sale. Detectarea erorilor mai consumă și ea ceva timp deoarece switchul trebuie să aștepte recepționarea întregului cadru. Dacă există erori, cadrul este distrus. Dacă este prea mic (mai puțin de 64 bytes) sau prea mare (mai mult de 1518 bytes) este de asemenea distrus. Dacă totul este bine, switchul caută adresa MAC destinație și determină portul de ieșire.

– Cut-through (în timp real) este cea de a doua metodă de comutare. Înainte de a aștepta recepționarea întregului cadru, switchul citește adresa destinație și lansează transmiterea sa. De fapt switchul copie doar adresa destinație (primii 6 bytes de după preambul) în memorie și caută această adresă în tabela sa pentru a determina care este portul de ieșire. Această tehnică reduce latența și în plus nici nu detectează erorile așa cum se întâmplă în store-andforward.

Cut-through are două variante:

• Fast-forward switching. Această variantă induce cea mai mică latență deoarece un pachet este transmis imediat ce a fost identificată adresa destinație. Dezavantajul constă în faptul că sunt transmise mai departe și pachetele ce conțin erori. Chiar dacă aceste situații nu apar în mod constant și NIC-urile renunță la cadrele ce conțin eroris. Switchul măsoară latența pornind de la primul bit recepționat și terminând cu primul transmis (FIFO)

• Fragment-free switching. Această variantă presupune filtrarea și transmiterea numai a fragmentelor de pachete ce nu conțin erori. În mod obișnuit, un fragment ce ia naștere în urma unei coliziuni trebuie să fie mai mic de 64 bytes. Orice pachet mai mare decât această valoare este considerat valid și prin urmare este recepționat fără erori. În această situație, switchul așteaptă până când un pachet recepționat este validat și apoi îl transmite către portul destinație. Latența fiecăruia din modurile prezentate depinde de cum se realizează transmisia pachetelor. Cu cât este mai rapid modul de transmitere, cu atât este mai redusă latența. Dar pentru a se ajunge în această situație înseamnă că switchul alocă mai puțin timp pentru verificarea erorilor. Și cu cât verificarea erorilor este mai redusă cu atât mai mult crește numărul retransmisiilor.

Rețele cu difuzare. Un singur canal de comunicație este partajat de toate mașinile din rețea. Comunicația se realizează prin intermediul unor mesaje scurte, numite pachete, care au în structura lor, printre altele, un câmp pentru desemnarea expeditorului și unul pentru desemnarea destinatarului Se pot trimite pachete către toate mașinile din rețea, acest mod de operare numindu-se difuzare .

Controlul erorilor

Orice legătură de comunicație digitală este imperfectă, unii din biții transmiși fiind corupți. De exemplu, unii biți 0 pot fi recepționați ca 1 iar unii biți 1 pot fi recepționați ca 0. Raportul care este egal cu numărul biților corupți datorită legăturii supra totalul biților transmiși formează rata de eroare la transmisie. Această rată (BER – bit error rate) are valori cuprinse între 10(-3), pentru legături cu mult zgomot (în general cele fără fir) și 10(-12), pentru legături de înaltă calitate (fibră optică). La împachetarea biților într-un pachet se adaugă și un câmp de biți prin care să se controleze erorile de transmisie. Sunt folosite două metode :

detecția erorilor

corecția erorilor

Controlul fluxului de date

În rețelele de date se practică controlul fluxului pentru a preveni congestiile. Ideea este cea din semaforizarea drumurilor : mai bine sunt oprite mașini decât să se supraaglomereze traficul. În rețele cu comutare de pachete se folosesc două metode de control al fluxului de date : controlul fluxului cu fereastră și în buclă deschisă. Controlul fluxului cu fereastră limitează numărul pachetelor în tranzit între sursă și destinație. Destinația trimite ACK-uri iar sursa se asigură că nu transmite al n-lea pachet până când nu a recepționat ACK-ul de la al (n-W)-ulea pachet, unde W este mărimea ferestrei. Fie, de exemplu, o rețea cu un număr mare de perechi sursă/destinație, care schimbă pachete între ele. Sursele încearcă să mențină întârzierea între transmisia unui pachet și primirea ACK-ului corespunzător în limita a T secunde. Ori de câte ori o sursă constată că întârzierea este mai mare decît T își reduce fereastra W. Ca efect al acestei reduceri, încărcarea rețelei descrește și există speranța că întârzierea va scădea sub T. În acel moment, sursa începe un proces de creștere fină a lui W. Schema poate să funcționeze bine dacă T este suficient de mare. De fapt, datorită startării și terminării continui de transmisii, există o fluctuație mare în întârzierea pe rețea. Este nevoie de o schemă de control cu fereastră aleasă cu grijă. Este totuși imposibil de garantat că toate perechile sursă-destinație vor funcționa bine. Controlul în buclă deschisă nu ia în considerație vreo informație de feedback. În schimb, transmițătorul are un algoritm bazat pe timp ce regularizează transmisia de pachete. Un astfel de control în buclă deschisă este folosit în rețele ATM și se numește leaky bucket (găleată găurită). Metoda garantează că transmițătorul nu poate trimite mai mult de B+Mt biți în orice interval de t secunde, pentru orice t. M și B sunt doi parametri ai metodei. M este media ratei de transmisie pe termen lung iar B este mărimea maximă a debitului la un moment dat. Dacă t crește, rata medie de transmisie nu poate depăși (B+Mt)/t, care este aprox egal cu M. Dacă t 1, transmițătorul poate trimite B biți. Obiectivul metodei este de a proteja un anumit nod din rețea : dacă un transmițător trimite unui nod ce are o rată de preluare de cel puțin M și este echipat cu un buffer de cel puțin B biți, nodul receptor nu va pierde nici un bit.

1.4. Modelul de referință ISO/OSI

Conceptul de nivel este folosit pentru a ajuta la înțelegerea acțiunilor și proceselor ce apar în timpul transmiterii informațiilor de la un calculator la altul. Într-o rețea, comunicarea are la origine o sursă, apoi informația circulă pînă la o destinație. Informațiile care traversează rețeaua sînt referite ca date, pachete sau pachete de date.

Adresa sursă a unui pachet de date specifică identitatea calculatorului care transmite respectivul pachet. Adresa destinație precizează identitatea calculatorului care va recepționa respectivul pachet. Datele sînt grupate în unități logice de informații. Ele includ utilizatorul respectivelor informații și alte elemente pe baza cărora este posibilă comunicarea. Datele dintr-un calculator sînt reprezentate prin biți. Dacă un calculator ar transmite doar unul sau doi biți, nu ar fi o manieră prea eficientă de comunicare. Prin urmare, are loc o grupare a acestora în kilo, mega sau gigabytes. Am făcut deja referire la un alt element întalnit în rețelele de calculatoare: "mediul". Acesta reprezintă un material prin care sînt transmise datele, și poate fi unul din următoarele elemente:

• cablu telefonic

• cablu categoria 5 UTP

• cablu coaxial (cablu TV)

• fibră optică

• alte tipuri de cabluri bazate pe cupru

Mai există și alte tipuri de media, dar acestea nu le vom lua în calcul în studiul rețelelor. În primul rînd este vorba de atmosfera prin care se propagă undele radio, microundele și lumina. În al doilea rînd este vorba de undele electromagnetice care traversează Cosmosul, unde în mod virtual nu există molecule sau atomi. În aceste cazuri, comunicația este denumită fără fir. Protocolul reprezintă un set de reguli pe baza căruia se determină forma datelor și transmisia acestora. Exemplul lui Andrew Tanenbaum2 (comunicarea între doi filozofi Fig.1.7) este un început bun pentru a înțelege ce presupune comunicarea bazată pe niveluri și protocoale. Fig.1.6. Arhitectura filosof-translator-secretară

Nivelul n al unui calculator poate comunica cu nivelul n al altuia. Prin urmare se spune că regulile folosite în comunicare se numesc protocoale de nivel n. Spuneam că dezvoltările timpurii din zona rețelelor au fost haotice, și că începutul anilor ’80 se caracterizează printr-o expansiune a acestora. Singura modalitate prin care deținătorii de rețele puteau să “vorbească aceeași limbă” a fost agrearea din partea vanzătorilor și producătorilor de echipamente de rețea a unui set comun de standarde. International Organization for Standardization (ISO) este organizația care a cercetat și dezvoltat scheme de rețele precum DECNET, SNA, TCP/IP. Rezultatul cercetărilor s-a concretizat într-un model de rețea care i-a ajutat pe producători să creeze echipamente compatibile între ele. Modelul de referință OSI (Open Systems Interconnect), realizat în 1984, nu este altceva decat o schemă descriptivă care a pus la dispoziția vanzătorilor standardele necesare asigurării compatibilității și interoperabilității între diferitele tehnologii. Și este cel mai bun instrument pentru învățare. Modelul de referință OSI, este primul model pentru standardizarea comunicațiilor în rețele. Există și alte modele, dar majoritatea producătorilor de echipamente respectă aceste standarde. Acest model permite utilizatorilor să vadă funcțiile rețelei pe măsură ce ele apar la fiecare nivel în parte. Chiar dacă pare destul de abstract, este un instrument foarte bun pentru a ilustra modul în care informațiile traversează o rețea: explică, vizual, circulația datelor de la o aplicație, către mediul fizic de transmisie și apoi către o altă aplicație localizată pe un calculator din rețea, chiar dacă expeditorul și destinatarul fac parte din rețele cu topologii diferite. In modelul de referință OSI există 7 niveluri, fiecare dintre acestea ilustrand o funcție particulară a rețelei. Separarea între funcțiile rețelei este denumită nivelare (layering). Modelul OSI este doar un model de arhitectură de rețea, deoarece spune numai ceea ce ar trebui să facă fiecare nivel, și nu specifică serviciile și protocoalele utilizate la fiecare nivel. Fiecare nivel al modelului OSI are un set predeterminat de funcții pe care le realizează pentru a duce la bun sfarșit comunicarea. Fig.1.7. Modelul de referință ISO-OSI

Nivelul 7: Aplicație

Poetic vorbind, este nivelul situat cel mai aproape de inima utilizatorului. Prin ce diferă de celelalte niveluri ale modelului? Oferă servicii pentru aplicațiile utilizatorilor dar nu oferă servicii celorlalte niveluri. Nivelul aplicație identifică și stabilește disponibilitatea partenerului de comunicație,

sincronizează aplicațiile între ele și stabilește procedurile pentru controlul integrității datelor și erorilor. De asemenea identifică dacă există suficiente resurse pentru a sprijini comunicația între parteneri. Pentru a fi mai ușor să vă amintiți despre acest nivel, gandiți-vă la browsere. Cele mai uzuale aplicații definte la acest nivel sunt:

terminale virtuale: Telnet;

transfer de fișiere: FTP (File Transfer Protocol);

poșta electronică;

SMTP, Simple Mail Transfer Protocol;

POP, Post Office Protocol;

Aplicații web (prezentare, baze de date etc.) cu HTTP (Hyper Text Transfer Protocol);

Administrare și monitorizare: SNMP (Simple Network Management Protocol).

Nivelul 6: Prezentare Este nivelul care asigură că informațiile pe care nivelul aplicație al unui sistem le transmite, pot fi citite de către nivelul aplicație al altui sistem. Atunci cînd este necesar, nivelul aplicație face translație între diferitele formate ale datelor folosind un format comun pentru reprezentarea acestora. Trebuie să priviți acest nivel ca cel la care are loc codificarea datelor în format ASCII, de exemplu.

Nivelul 5: Sesiune

După cum spune chiar numele său, acest nivel stabilește, gestionează și finalizează sesiunile de comunicație între aplicații. Prin sesiune se înțelege dialogul între două sau mai multe entități. Nivelul sesiune sincronizează dialogul între nivelurile sesiune ale entităților și gestionează schimbul de date între acestea. În plus, acest nivel oferă garanții în ceea ce privește expedierea datelor, clase de servicii și raportarea erorilor. În cateva cuvinte, acest nivel poate fi asemuit cu dialogul uman. Nivelul sesiune execută următoarele funcții principale:

gestiunea dialogului între aplicații;

sincronizarea între aplicații;

gestiunea și raportarea erorilor.

  În cazul aplicațiilor IP, nivelul sesiune este utilizat și pentru identificarea aplicațiilor instalate pe același echipament de rețea, identificat în cadrul rețelei printr-o adresă IP unică. Pentru identificare, o aplicație utilizează o valoare întreagă, cuprinsă între 1 si 65535, numită

port de comunicație. De exemplu:

Telnet: portul 23;

FTP: portul 21;

HTTP: portul 80 sau 8080;

SNMP: porturile 161 și 162;

SMTP (transmisie email): portul 25 ;

POP (recepție email): portul 110.

Nivelul 4: Transport

Este nivelul la care are loc segmentarea și reasamblarea datelor. El furnizează un serviciu pentru transportul datelor către nivelurile superioare, și în special caută să vadă cât de sigur este transportul prin rețea. Nivelul transport oferă mecanisme prin care stabilește, întreține și ordonă închiderea circuitelor virtuale; detectează “căderea” unui transport și dispune refacerea acestuia; controlează fluxul de date pentru a preveni rescrierea acestora. Gandiți-vă la calitatea servicilor sau la încredere! Sarcina principală a nivelului transport este aceea de refacere a fluxului de date la destinație, deoarece un pachet poate fi segmentat în mesaje mai mici, cu rute diferite prin rețeaua de comunicații.   În cazul utilizării protocolului IP pe nivelul rețea, sunt disponibile două protocoale la nivelul transport:

– TCP, Transmision Control Protocol este un protocol bazat pe conexiune, în care pentru fiecare pachet transmis se așteaptă o confirmare din partea echipamentului de destinație. Transmisia următorului pachet nu se realizează dacă nu se primește confirmarea pentru pachetul transmis anterior.

– UDP, User Datagram Protocol este folosit în situațiile în care eficiența și viteza transmisiei sunt mai importante decât corectitudinea datelor, de exemplu în rețelele multimedia, unde pentru transmiterea către clienți a informațiilor de voce sau imagine este mai importantă viteza (pentru a reduce întreruperile în transmisie) decât calitatea. Este un protocol fără conexiuni, semnalarea erorilor sau reluărilor fiind asigurată de nivelul superior, iar datele transmise nu sunt segmentate.

Nivelul 3: Rețea

Este unul dintre cele mai complexe niveluri; asigură conectivitatea și selecția căilor de comunicație între două sisteme ce pot fi localizate în zone geografice diferite. Gandiți-vă la selectarea căilor de comunicație, switching, adresare și rutare. Funcția principală a acestui nivel constă în dirijarea pachetelor între oricare două noduri de rețea. Cu alte cuvinte, nivelul rețea realizează „rutarea” (direcționarea) pachetelor de date prin infrastructura de comunicații, această operație fiind efectuată la nivelul fiecărui nod de comunicație intermediar. Nivelul rețea asigură interfața între furnizorul de servicii și utilizator, serviciile oferite fiind independente de tehnologia subrețelei de comunicație.   Acest nivel oferă două categorii de servicii de transport:

– orientate pe conexiuni (ATM): înainte de transferul datelor între două echipamente trebuie stabilită o conexiune (circuit virtual), care se închide la terminarea transferului. La stabilirea conexiunii se pot negocia anumiți parametri legați de calitatea serviciului (viteză, întrâziere, cost). Ruta (secvența de noduri intermediare) pe care vor fi trimise pachetele se stabilește în momentul stabilirii circuitului virtual. În acest sens, circuitul virtual va primi un identificator (adresă), fiecare pachet fiind rutat pe baza acestui identificator. Prin utilizarea serviciilor orientate pe conexiuni se realizează un control foarte eficient al fluxului de date, putînd fi definite categorii de servicii (CoS – Class of Services) și criterii de calitate a serviciilor (Qos – Quality of Services). Aceste avantaje implică o complexitate ridicată la nivelul arhitecturii de rețea. În cazul defectării unui nod intermediar, toate circuitele virtuale care îl tranzitează se închid. Latența inițială necesară pentru stabilirea conexiunii este mare.

– fără conexiuni (IP): nu este necesară stabilirea unei conexiuni prin subrețeaua de comunicație în vederea transferului datelor. Ruta este determinată pentru fiecare pachet în parte, iar direcționarea (rutarea) se realizează pe baza adreselor (sursă și destinație) conținute în fiecare pachet. Deoarece nu este necesară memorarea informațiilor de stare cu privire la conexiuni, complexitatea este redusă, fiind posibilă implementarea unor rețele mai rapide. În cazul defectării unui nod intermediar, comunicația poate continua pe căi alternative. Dezavantajul principal al acestor servicii constă în faptul că nu se mai poate efectua un control al congestiei traficului.   Cel mai cunoscut si utilizat protocol la acest nivel este IP (Internet Protocol), utilizat pentru interconectarea rețelelor din Internet. Este un protocol fără conexiune care permite transmiterea unor blocuri de date (datagrame) între surse și destinații identificate prin adrese cu lungime fixă. În cazul datagramelor foarte mari, protocolul IP realizează, dacă este cazul, fragmentarea și reasamblarea în vederea transmiterii prin orice rețea. Nu dispune de mecanisme care să asigure securitatea serviciului sau controlul fluxului de informații. Este apelat de protocoalele superioare pentru transferul prin rețea al datelor, apelînd la rândul lui la protocoalele rețelei locale pentru transportul datelor către un echipament local. Acest echipament local (adiacent) poate fi destinația finala a pachetelor de date sau poate fi un nod intermediar al sistemului de comunicatii (router), care trebuie să redirecționeze datele.   Modul de funcționare a protocolului IP este următorul:

aplicația pregătește datele și le transmite nivelului Internet al software-ului de rețea,

nivelul Internet adaugă acestor date un antet (header), conținînd adresa de destinație,

datagrama rezultată este transmisă interfeței de rețea, care adaugă la rândul ei un antet și transmite întreg cadrul către primul nod intermediar al rețelei de comunicații, care va efectua rutarea pachetului,

la recepție, un nod intermediar va decide după adresa de destinație prezentă în antet care este subrețeaua și, implicit, următorul nod intermediar către care trebuie redirecționat pachetul,

în cadrul destinației finale, antetul este înlăturat și datagrama se transmite nivelului Internet, de unde este transmis nivelului aplicație.

Din acest mod de funcționare se pot deduce următoarele reguli privind mecanismele de rutare:

– fiecare datagramă este direcționată către cel mai apropiat nod intermediar, router sau

gateway;

– operația de rutare constă în determinarea nodului intermediar următor (adiacent) care la rândul lui poate redirecționa datagramele către destinația finală. Acest tip de rutare este numit „hop-by-hop routing” și nu permite determinarea întregii secvențe de noduri intermediare.

– destinația imediat următoare poate fi un alt router sau chiar destinația finală.

– decizia privind destinația imediată este luată pe baza informațiilor existente în cadrul tabelei de rutare. Această tabelă este menținută de fiecare router și conține asocieri de tipul „destinație finală – destinație următoare” (next hop).

– la primirea unei datagrame, router-ul caută în tabela de rutare înregistrarea corespunzătoare destinației finale. Dacă această înregistrare este găsită, datagrama se transmite către următoarea destinație specificată în ruta respectivă.

– tabela de rutare poate fi actualizată în următoarele moduri:prin rute statice, introduse de administratorul rețelei. Orice echipament de rețea (host sau router) conține o așa-numită rută statică implicită (default), utilizată pentru redirecționarea datagramelor atunci când nu este găsită nici o înregistrare care să corespundă cu adresa finală.

– prin rute directe, care sunt create automat de echipamentul de rețea (host sau router) în momentul în care se specifică adresele IP și măștile de subrețea pe interfețele echipamentului. În acest mod se realizează asocierea între destinația imediată și interfața fizică prin care poate fi atins următorul nod de rutare.

– prin rute dinamice, schimbate între router-ele adiacente prin intermediul protocoalelor specializate. Utilizînd mecanismele de rutare dinamică, un router transmite router-elor învecinate întreaga tabelă de rutare, constînd în rute statice, rute directe și rute dinamice „învățate” de la alte router-e. Cele mai cunoscute protocoale de rutare dinamică sunt: RIP (Routing Information Protocol), versiunile 1 și 2, utilizat frecvent în rețele private,  OSPF (Open Short Path Finding), IGRP (Internal Gateway Routing Protocol), BGP (Border Gateway Protocol, utilizat în rețeaua Internet pentru rutarea infomațiilor între furnizorii de servicii).

Nivelul 2: Legătură date

Este nivelul care asigură tranzitarea datelor de la nivelul fizic pe baza adresării fizice, topologiei rețelei, notificării erorilor, ordonarea cadru-urilor și controlul fluxului informațional. Este alcătuit din două subniveluri:

– controlul accesului la mediu (MAC – Medium Access Control): definește echipamentul care poate avea acces la rețea atunci când mai multe stații încearcă să transmită simultan:

– asigură controlul fluxului de date (flow-control) prin stabilirea momentelor de transmisie sau așteptare ;

– efectuează controlul accesului la mediul fizic ;

– în cadrul rețelelor de tip broadcast, prin intermediul legăturii de date se realizează identificarea unui nod destinație, prin utilizarea adreselor MAC.

– controlul legăturii logice (LLC – Logical Link Control): definește modul de transfer al datelor către nivelul fizic și furnizează serviciul de transport către nivelul rețea:

– introduce în fluxul de biți furnizat nivelului fizic delimitatorii necesari pentru separarea cadrelor. La recepție, nivelul legăturii de date recunoaște acești delimitatori și reconstituie cadrele. Scopul acestei încadrări este determinat de necesitatea gestionării fluxului continuu de biți preluați de la nivelul fizic.

– controlul erorilor, realizat în două moduri: FEC (Forward Error Correction, folosește biții de control pentru detectarea și corectarea erorilor), ARQ (Automatic Retransmition Query, utilizat numai pentru detectare, nu și pentru corectarea erorilor, ca mijloc de alertare a sursei că informația nu a fost recepționată corect).

Nivelul 1: Fizic

Definește specificațiile electrice, mecanice, procedurale și funcționale necesare activării, întreținerii și dezactivării legăturii fizice între sisteme. Specificațile vizează nivelul voltajului, ratele de transmisie a datelor, distanța maximă de transmisie, conectorii fizici. Gandiți-vă la semnale și medii de transmisii. În cadrul nivelului fizic se definesc următoarele funcții:

– tipul de transmitere și recepționare a șirurilor de biți pe un canal de comunicații:

– transmisia asincronă: semnalul de ceas al receptorului se sincronizează pe semnalul de strat transmis de emițător. Din această cauză, canalul de comunicație nu este utilizat eficient și nu se pot obține rate de transfer mari, de maxim 115 KBps. Este frecvent utilizată pentru conectarea a două echipamente de rețea prin intermediul cablurilor seriale sau a modem-urilor analogice.

– transmisia sincronă: șirurile de biți se succed fără întrerupere, fiecare echipament avînd nevoie de un semnal de sincronizare propriu. De aceea, receptorul este mai complicat, însă se asigură o utilizare eficientă a canalului de comunicație și se pot obține viteze mari de transfer (2 MBps).

– se definesc topologiile de rețea, în functie de topologie, se stabilește tipul rețelei:

– rețea broadcast (topologii magistrală, stea, inel): la același mediu de transmisiune sunt atașate mai

multe echipamente de rețea, iar un pachet de date transmis de o stație este recepționat de toate celelalte (de exmplu, Ethernet/Fast Ethernet, Token Ring)

– rețele punct-la-punct (topologii stea, plasă): la o conexiune fizică sunt atașate numai două echipamente. Într-o rețea cu mai mult de două noduri, un pachet de date trebuie să tranziteze mai multe noduri intermediare pentru a ajunge la destinație.

– se definesc tipurile de medii de transmisiune : cablu coaxial, cablu UTP, fibră optică, linii închiriate de cupru etc.

– se stabilește modul de transmisie: simplex (un singur echipament poate transmite, iar corespondentul doar recepționează), half-duplex (ambele echipamente pot să transmită și să recepționeze semnale, dar nu în același timp), full-duplex (ambele echipamente pot să transmită și să recepționeze semnale în același timp).

– se definesc standardele mecanice și electrice ale interfețelor, seriale (RS-232, V.35, G.703 ) și LAN (BNC, AUI, RJ45).

– este realizată codificarea și decodificarea șirurilor de biți (repetoare, media-convertoare etc.).

– este realizata modularea și demodularea semnalelor purtătoare (modem-uri).

– unitatea de date utilizată la nivel fizic este bitul.

1.5. Modelul de referință TCP/IP

Să ne îndreptăm acum atenția de la modelul de referință OSI spre modelul de referință utilizat de strămoșul tuturor rețelelor de calculatoare, ARPANET-ul, și de succesorul său, Internet-ul.

ARPANET a fost o rețea de cercetare sponsorizată de către DoD (U.S. Department of Defense, rom: Departamentul de Apărare al Statelor Unite). În cele din urmă, rețeaua a ajuns să conecteze între ele, utilizând linii telefonice închiriate, sute de rețele universitare și guvernamentale. Era nevoie de o nouă arhitectură de referință. De aceea, posibilitatea de a interconecta fără probleme mai multe tipuri de rețele a reprezentat de la bun început un obiectiv de proiectare major. Această arhitectură a devenit cunoscută mai târziu sub denumirea de modelul de referință TCP/IP, dată după numele celor două protocoale fundamentale utilizate. DoD dorea ca, atâta timp cât funcționau mașina sursă și mașina destinație, conexiunile să rămână intacte, chiar dacă o parte din mașini sau din liniile de transmisie erau brusc scoase din funcțiune. Mai mult, era nevoie de o arhitectură flexibilă, deoarece se aveau în vedere aplicații cu cerințe divergente, mergând de la transferul de fișiere până la transmiterea vorbirii în timp real.

Nivelul internet Toate aceste cerințe au condus la alegerea unei rețele cu comutare de pachete bazată pe un nivel inter-rețea fără conexiuni. Acest nivel, numit nivelul internet, este axul pe care se centrează întreaga arhitectură. Rolul său este de a permite gazdelor să emită pachete în orice rețea și a face ca pachetele sa circule independent pana la destinație (tund posibil ca aceasta sa se găsească pe o altă rețea). Pachetele pot chiar să sosească într-o ordine diferită față de cea în care au fost trimise, ;az în care – dacă se dorește livrarea lor ordonată – rearanjarea cade în sarcina nivelurilor superioare. De observat că „internet" este folosit aici într-un sens generic, chiar dacă acest nivel ;ste prezent și în

Internet Aici, analogia este cu sistemul de poștă (clasică). O persoană dintr-o anumită țară poate depune intr-o cutie poștală mai multe scrisori internaționale și, cu puțin noroc, majoritatea scrisorilor vor ajunge la adresa corectă din țara de destinație.

Fig. 1.8. Modelul de referință TCP/IP

Probabil că scrisorile vor trece pe drum prin mai multe oficii de cartare, dar acest lucru se face transparent pentru utilizatori. Mai mult, faptul că fiecare țară (adică fiecare rețea) are propriile timbre, propriile mărimi favorite de plicuri și propriile reguli de livrare este ascuns beneficiarilor. Nivelul internet definește oficial un format de pachet și un protocol numit IP (Internet Protocol, rom: protocol Internet). Sarcina nivelului internet este să livreze pachete IP către destinație. Problemele majore se referă la dirijarea pachetelor și evitarea congestiei. In consecință, ;ste rezonabil să spunem că nivelul internet din TCP/IP funcționează asemănător cu nivelul rețea din OSI. Fig. 1.8 arată această corespondență.

Nivelul transport

Nivelul situat deasupra nivelului internet din modelul TCP/IP este frecvent numit nivelul ransport. Acesta este proiectat astfel, încât să permită conversații între entitățile pereche din gazdele sursă și, respectiv, destinație, la fel ca în nivelul transport OSI. în acest sens au fost definite iouă protocoale capăt-la-capăt. Primul din ele, TCP (Transmission Control Protocol, protocolul de control al transmisiei), este un protocol sigur orientat pe conexiuni care permite ca un lux de octeți trimiși de pe o mașină să ajungă fără erori pe orice altă mașină din inter-rețea. Acest rotocol fragmentează fluxul de octeți în mesaje discrete și pasează fiecare mesaj nivelului internet.la destinație, procesul TCP receptor reasamblează mesajele primite într-un flux de ieșire. TCP ratează totodată controlul fluxului pentru a se asigura că un emițător rapid nu inundă un receptor ent cu mai multe mesaje decât poate acesta să prelucreze. Al doilea protocol din acest nivel, UDP (User Datagram Protocol, protocolul datagramelor itilizator), este un protocol nesigur, fără conexiuni, destinat aplicațiilor care doresc să utilizeze xopria lor secvențiere și control al fluxului, și nu pe cele asigurate de TCP. Protocolul UDP este de asemenea mult folosit pentru interogări rapide întrebare-răspuns, client-scrver și pentru aplicații în care comunicarea promptă este mai importantă decât comunicarea cu acuratețe, așa cum sunt aplicațiile de transmisie a vorbirii și a imaginilor video.

Nivelul aplicație

Modelul TCP/IP nu conține niveluri sesiune sau prezentare. Acestea nu au fost incluse pentru că nu s-a simțit nevoia lor. Experiența modelului OSI a dovedit că această viziune a fost corectă: în majoritatea aplicațiilor, nivelurile respective nu sunt de mare folos.

Deasupra nivelului transport se află nivelul aplicație. Acesta conține toate protocoalele de nivel mai înalt.. Protocolul de transfer de fișiere pune la dispoziție o modalitate de a muta eficient date de pe o mașină pe alta. Poșta electronică a fost la origine doar un tip de transfer de fișiere, dar ulterior a fost dezvoltat un protocol specializat (SMTP – Simple Mail Transfer Protocol, rom: Protocol simplu de transfer al poștei) pentru acest serviciu. Pe parcursul anilor, la aceste protocoale s-au adăugat multe altele, așa cum sunt Serviciul Numelor de Domenii (Domain Name Service – DNS) pentru stabilirea corespondenței dintre numele gazdelor și adresele rețelelor, NNTP, protocolul utilizat pentru a transfera articole de știri USENET, HTTP, folosit pentru aducerea paginilor de pe Web și multe altele.

Nivelul gazdă-rețea

Sub nivelul internet se află necunoscutul. Modelul de referință TCP/IP nu spune mare lucru despre ce se întâmplă acolo, însă menționează că gazda trebuie să se lege la rețea, pentru a putea trimite pachete IP, folosind un anumit protocol. Acest protocol nu este definit și variază de la gazdă la gazdă și de la rețea la rețea. Cărțile și articolele despre TCP/IP rareori discută despre acest protocol.

Protocoale de comunicație în rețele

Protocolul TCP/IP. În perioada 1960 – 1970, Advanced Research Projects Agengy (ARPA) of Department of Defense (DOD) a sponsorizat dezvoltarea și realizarea ARPANET. ARPANET include centre de cercetare, civile, militare și universități, și a fost creată să realizeze proiecte privind cercetarea militară și din domeniul științei calculatoarelor. În prezent ARPA este numită DARPA cu litera D în față care vine de la Defence. În 1984 Dod a divizat ARPANET în două rețele: ARPANET pentru cercetări experimentale și MILNET pentru domeniul militar. În 1980 a fost dezvoltată ca standard pentru ARPANET și rețelele asociate, o nouă familie de protocoale, denumită DARP Internet și în general este referit ca TCP/IP. În 1987 NSF („the Nationa Science Fundation”) a fondat o rețea care conecta șase centre cu calculatoare, rețea care a fost numită NFSNET. Rețeaua fizică în acest caz conectează 13 orașe folosind linii telefonice de mare viteză închiriate. NFSNET a constituit o structură principală la care au fost conectate alte opt noduri importante, în plus această rețea a fondat zeci de rețele regionale care acoperă aproape toate statele. Rețelele regionale sunt legate la rețeaua centrală NSFNET iar aceasta este conectată la DARP Internet. Atât rețeaua centrală NSFNET cât și rețelele regionale, folosesc toată suita de protocoale TCP/IP.

Protocoalele TCP/IP sunt caracterizate prin următoarele:

• Nu sunt specifice furnizorilor de echipamente;

• Au fost implementate pe orice tip de calculatoare începând cu calculatoare personale, minicalculatoare, calculatoare și supercalculatoare.

• Aceste protocoale sunt utilizate de către diverse agenții guvernamentale și comerciale din diverse orașe și nu doar de proiectele de cercetare fondate de DARP. Rețeaua fondată pentru cercetare DARP a condus la conectarea unui număr mare de rețele individuale, rezultând o rețea foarte mare, un Internet.

Este important de specificat faptul că orașele conectate la internet folosesc protocoalele TCP/IP, iar foarte multe organizații (neafiliate guvernamental) au realizat propriul internet utilizând aceleași protocoale TCP/IP și conectează mai mult de 150.000 de calculatoare plasate în USA, Europa și Asia. La cealaltă extremă există rețele care constă din două calculatoare personale plasate în aceiași cameră conectate prin Ethernet și care folosesc tot protocoalele TCP/IP. Din dorința de a cuantifica tot ce se referă la suita de protocoale TCP/IP sau suita DARP Internet, se folosește cuvântul Internet scris cu literă mare, ca de exemplu: adresa Internet sau protocol Internet, toate acestea se referă la TCP/IP pentru a evita confuzia cu interneturile care folosesc alte protocoale diferite de TCP/IP. Un moment important în creșterea numărului celor care utilizează TCP/IP a fost în 1988 când protocoalele TCP/IP au fost incluse în BSD UNIX la sfârșitul anului 1982. Acest element împreună cu folosirea BSD UNIX în stațiile de lucru, a permis multor organizații și departamente din universități să-și realizeze propriile rețele de tip LAN.

TCP „Transmission Control Protocol”, este un protocol orientat pe conectare care oferă procesului de utilizator următoarele: o transmisie riguroasă, canal duplex, șir de byts. Foarte multe programe de aplicații Internet folosesc TCP, deoarece TCP folosește IP. Întreaga suită de protocoale Internet poartă denumirea de familia de protocoale TCP/IP.

UDP „User Datagram Protocol”, este un protocol pentru conexiune redusă folosit de procesul de utilizator. Diferit de TCP, care este un protocol caracterizat de siguranță și rigoare, UDP nu garantează că datagramele ajung la destinația dorită.

ICMP „Internet Control Message Protocol”, reprezintă un protocol care manipulează erorile și informația de control între gateway și stațiile de lucru. În timp ce mesajele ICMP transmise folosesc IP datagrams, aceste mesaje sunt în mod normal generate și procesate de software-ul de rețea TCP/IP însăși, nu de procesele de utilizator.

IP „Internet Protocol”, este un protocol care oferă servicii de livrare a pachetelor pentru TCP, UDP și ICMP. Din figura 3.9 se observă că procesele de utilizator nu necesită în mod normal a fi implicate cu nivelul IP.

ARP „Address Resolution Protocol”, este un protocol care traduce adresa Internet în adresă hardware. Acest protocol și următorul (RARP) nu sunt întâlnite la toate rețelele, ci numai la o parte din ele.

RARP „Reverse Addres Resolution Protocol”, este protocolul care realizează aplicația inversă, traducând adresa hardware în adresă Internet. Trebuie menționat că mai există și alte protocoale în suita de protocoale Internet, cum ar fi: GGP (Gateway-to-Gateway Protocol) și VMTP (Versatile Transaction Protocol) etc. Toate protocoalele Internet sunt definite în RFCs (Request for Comments). RFCs oferă sugestii pentru noii membri ai comunității Internet. De asemenea, descriu modul în care se pot obține informații on-line pentru a deveni un bun utilizator de Internet. Codul sursă pentru implementarea completă a 4.3 BSD și TCP/IP sunt oferite de BSD Networking Software. Rețeaua ARPANET constă din aproximativ 50 de calculatoare special declinate care sunt legate între ele prin linii telefonice închiriate, cu capacitatea de transmisie de 57.6 Kbps. Calculatoarele de tip stație (host) și gatway-le din ARPANET sunt conectate la aceste 15 calculatoare. Cele 13 orașe principale din rețeaua NFST sunt conectate prin linii telefonice T închiriate care operează la 544 Mbps. Multe din sistemele 4.3 BSD folosesc suita de protocoale TCP/IP. Pentru LAN este folosită tehnologia Ethernet. De asemenea este implementat, folosind protocolul serial RS-232 (la viteza de 1200 bps până la 19.2 Kbps) numit Serial Line Internet Protocol (SLIP). Există o varietate de alte conexiuni pentru legătură-date folosite de rețelele TCP/IP, legături prin satelit și pachete radio.

Nivelul rețea IP oferă o conexiune slabă și nesigură în procesul sistemului de livrare. Este o conexiune slabă pentru că o datagramă IP se consideră independentă de celelalte. Fiecare datagramă IP conține adresă sursă și adresa destinație, astfel că ea poate fi rutată și eliberată independent. Nivelul IP este nesigur pentru că el nu garantează faptul că datagramele IP sunt livrate corect. Siguranța procesului de livrare a datagramelor IP trebuie asigurată de nivelele superioare. Nivelul IP calculează și verifică suma de verificare („checksum”) care acoperă câmpul de 20 bytes („heder”) ce conține adresa sursă și destinația. Aceasta permite să verifice câmpurile pe care le necesită examinarea unui proces. În cazul când un IP heder este găsit cu erori, el este ignorat, cu presupunerea că protocolul de la nivelul superior va retransmite pachetul în cauză. Din cele prezentate în analiza privind rolul gateway, rezultă că nivelul IP manipulează procesul de rutare în Internet, și, de asemenea, este responsabil pentru procesul de fragmentare a pachetului. De exemplu, în cazul când gateway primește o datagrama IP care este foarte mare pentru a transmite la rețeaua următoare, modulele IP o divizează în fragmente și transmite fiecare fragment ca pe un pachet IP. Când apare procesul de fragmentare, nivelul IP realizează duplicarea adresei sursă și destinația în fiecare pachet IP, astfel că pachetele IP rezultate pot fi livrate independent unele de altele. Fragmentele sunt reasamblate într-o datagramă IP numai când ele ajung la destinație. Dacă oricare din fragmente este pierdut în cadrul procesului de transmisie, întreaga datagramă este pierdută pentru stația de destinație. Nivelul IP oferă o formă elementară de control a fluxului. În cazul când pachetele IP ajung la stația de destinație cu viteză mai mare decât viteza de livrare, modulul IP emite un ICMP mesaj la sursa originară de informații arătând că datele ajung cu viteză prea mare față de procesul de recepționare. În cazul 4.3 BSD, semnalul sursă ICMP de moderare a transmisiei (la o viteză rezonabilă) este transmis la modulul TCP presupunând că acest mesaj TCP va pondera stația sursă, care va reduce cantitatea de date ce se va transmite pe acea conexiune. Referințe și detalii relativ la IP sunt date în RFC 791.

Cap. 2. SECURITATEA REȚELELOR DE CALCULATOARE

2.1. Modelul de securitate în rețele

Modelul de securitate pentru un calculator seamănă cu o ceapă. Niveluri de securitate înconjoară subiectul ce trebuie protejat. Fiecare nivel izolează subiectul și îl face mai greu de accesat în alt mod decât cel în cel în care a fost planificat.

Securitatea fizică reprezintă nivelul exterior al modelului de securitate și constă, în general, în încuierea echipamentelor informatice într-un birou sau într-o altă incintă. Securitatea fizică merită o considerație specială. Problema cea mai mare o constituie salvările pentru copii de rezervă ale datelor și programelor și siguranța păstrării suporților de salvare. In aceste situații, rețelele locale sunt de mare ajutor: dacă toate fișierele schimbate frecvent rezistă pe un server, aceleași personae (sigure și de încredere), care lansează salvările pentru mainframe-uri, pot face același lucru și la server. Calculatorul, ca orice piesă costisitoare, ar trebui să fie protejat și de pericolul furtului. Păstrarea în afara zonelor publice este una dintre cele mai bune forme de protecție. Simpla încuiere a echipamentelor v-a preveni mutările ascunse precum și furtul. Intr-un sistem în care prelucrarea este distribuită, prima măsură des securitate fizică care trebuie avută în vedere este prevenirea accesului la echipamente. Pentru a învinge orice alte măsuri de securitate, trebuie să se dispună de acces fizic la echipamente. Acest lucru este comun tuturor sistemelor de calcul, distribute sau nu.

Securitatea logică constă din acele metode care asigură controlul accesului la resursele și serviciile sistemului. Ea are, la rândul ei, mai multe niveluri, împărțite în două grupe mari : niveluri de securitate a accesului (SA) și niveluri de securitate a serviciilor (SS).

Securitatea accesului (SA) cuprinde :

accesul la sistem (AS), care este răspunzător de a determina dacă și când rețeaua este accesibilă utilizatorilor. El poate fi, de asemenea, răspunzător pentru decuplarea unei stații, ca și de gestiunea evidenței accesului. AS execută, de asemenea, deconectarea forțată, dictată de supervizor. AS poate, de exemplu, să prevină conectarea în afara orelor deserviciu și să întrerupă toate sesiunile, după un anumit timp,

accesul la cont (AC), care verifică dacă utilizatorul care se conectează cu un anumit nume și cu o parolă există și are un profil utilizator valid,

drepturile de acces (DA), care determină ce privilegii de conectare are utilizatorul (de exemplu, contul poate avea sesiuni care totalizează 4 ore pe zi sau contul poate utiliza doar

stația 27).

Securitatea serviciilor (SS), care se află sub SA, controlează accesul la serviciile sistem, cum ar fi se așteptare, I/O la disc și gestiunea server-ului. Din acest nivel fac parte :

controlul serviciilor (CS), care este responsabil cu funcțiile de avertizare și de raportare a stării serviciilor, de asemenea, el activează și dezactivează diferitele servicii,

drepturile la servicii (DS), care determină exact cum folosește un anumit cont un serviciu dat, de exemplu, un cont poate avea numai dreptul de a adăuga fișiere la spooler-ul unei imprimante, dar are drepturi depline, de a adăuga și șterge fișiere, pentru o altă imprimantă.

Odată stabilită conexiunea, SA validează și definește contul. Operațiile ce trebuie executate sunt controlate de SS, care împiedică cererile ce nu sunt specificate în profilul utilizatorului. Accesul într-un sistem de securitate perfect trebuie să se facă prin aceste niveluri de securitate, de sus în jos. Orice sistem care permite evitarea unuia sau mai multor niveluri ale modelului de securitate implică riscul de a fi nesigur.

2.2. Obiective de securitate urmarite în realizarea unei rețele

Pentru a proiecta și implementa un sistem integrat de securitate al unei rețele, trebuie parcurse următoarele etape:

Este necesar, mai întâi, să se identifice toate amenințările împotriva cărora este cerută protecția. Acest proces este unul de analiză și care constă în 3 sub-etape:

analiza vulnerabilităților, adică identificarea elementelor potențial slabe ale rețelei;

evaluarea amenințărilor, adică determinarea problemelor care pot apărea datorită elementelor slabe ale rețelei;

analiza riscurilor, adică a posibilelor consecințe pe care aceste probleme le pot crea.

Rezultatul acestei faze de analiză îl constituie cerințele de securitate ale rețelei.

Următoarea etapă constă în definirea politicii de securitate, ceea ce înseamnă să se decidă:

care amenințări trebuie eliminate și care se pot tolera;

care resurse trebuie protejate și la ce nivel;

cu ce mijloace poate fi implementată securitatea;

care este prețul măsurilor de securitate care poate fi acceptat.

Odată stabilite obiectivele politicii de securitate, următoarea etapă constă în selecția serviciilor de securitate. Acestea sunt funcții individuale, care sporesc securitatea rețelei. Fiecare serviciu poate fi implementat prin metode variate, numite mecanisme de securitate. Pentru implementarea și utilizarea eficientă a mecanismelor de securitate, este nevoie de o sumă de activități numite funcții de gestiune a securității. Gestiunea securității într-o rețea constă în controlul și distribuția informațiilor către toate sistemele deschise în scopul utilizării serviciilor și mecanismelor de securitate și al raportării către administratorul rețelei a evenimentelor de securitate relevante care pot apărea.

Cele mai importante masuri de siguranta sunt clasificate astfel:

procedurale (ca, de exemplu, selectarea personalului, schimbarea periodică a parolelor etc.);

logice (ca, de exemplu, controlul accesului și criptografia);

fizice (camere speciale, uși blocate etc.).

2.3. Categorii de atacuri asupra rețelelor de calculatoare

Amenințările la adresa securității unei rețele de calculatoare pot avea următoarele origini : dezastre sau calamități naturale, defectări ale echipamentelor, greșeli umane de operare sau manipulare, fraude. Primele trei tipuri de amenințări sunt accidental, în timp ce ultima este intenționată. Câteva studii de securitate a calculatoarelor estimează că jumătate din costurile implicate de incidente sunt datorate acțiunilor voit distructive, un sfert dezastrelor accidentale și un sfert greșelilor umane. Acestea din urmă pot fi evitate sau, în cele din urmă, repetate printr-o mai bună aplicare a regulilor de securitate (salvări regulate de date, discuri oglindite, limitarea drepturilor de acces).

În amenințările datorate acțiunilor voite, se disting două categorii principale de atacuri : pasive și active.

atacuri pasive – sunt acelea în cadrul cărora intrusul observă informația ce trece prin ‘canal’, fără să interfereze cu fluxul sau conținutul mesajelor. Ca urmare, se face doar analiza traficului, prin citirea identității părților care comunică și ‘învățând’ lumgimea și frecvența mesajelor vehiculate pe un anumit canal logic, chiar dacă conținutul acestora este neinteligi-

bil. Atacurile pasive au următoarele caracteristici comune :

nu cauzează pagube (nu se șterg sau se modifică date),

încalcă reguli de confidențialitate,

obiectivul este de a ‘asculta’ datele schimbate prin rețea,

pot fi realizate printr-o varietate de metode, cum ar fi supravegherea legăturilor telefonice sau radio, exploatarea radiațiilor electromagnetice emise, rutarea datelor prin noduri adiționale mai puțin protejate.

atacuri active – sunt acelea în care intrusul se angajează fie în furtul mesajelor, fie în modificarea, reluarea sau inserarea de mesaje false. Aceasta înseamnă că el poate șterge, întârzia sau modifica mesaje, poate să facă inserarea unor mesaje false sau vechi, poate schimba ordinea mesajelor, fie pe o anumită direcție, fie pe ambele direcții ale unui canal logic. Acestea atacuri sunt serioase deoarece modifică starea sistemelor de calcul, a date or sau a sistemelor de comunicații. Există următoarele tipuri de amenințări active:

mascarada – este un tip de atac în care o entitate pretinde a fi o altă entitate. De exemplu, un utilizator îcearcă să se substituie altuia sau un serviciu pretinde a fi alt serviciu, în intenția de a lua date secrete (numărul cărții de credit, parola sau cheia algoritmului de criptare). O ‘mascaradă’ este însoțită, de regulă, de o altă amenințare activă, cum ar fi înlocuirea sau modificarea mesajelor,

reluarea – se produce atunci când un mesaj sau o parte a acestuia este reluată (repetată), în intenția de a produce un efect neautorizat. De exemplu, este posibilă reutilizarea informației de autentificare a unui mesaj anterior. In conturile bancare, reluarea unităților de date implică dublări și/sau alte modificări nereale ale valorii conturilor,

modificarea mesajelor – face ca datele mesajului să fie alterate prin modificare, inserare sau ștergere. Poate fi folosită pentru a se schimba beneficiarul unui credit în transferul electronic de fonduri sau pentru a modifica valoarea acelui credit. O altă utilizare poate fi modificarea câmpului destinatar/expeditor al poștei electronice,

refuzul câmpului – se produce când o entitate nu izbutește să îndeplinească propria funcție sau când face acțiuni care împiedică o altă entitate de la îndeplinirea propriei funcții,

repudierea serviciului – se produce când o entitate refuză să recunoască un serviciu executat. Este evident că în aplicațiile de transfer electronic de fonduri este important să se evite repudierea serviciului atât de către emițător, cât și de destinatar.

In cazul atacurilor active se înscriu și unele program create cu scop distructiv și care afectează, uneori esențial, securitatea calculatoarelor. Există o terminologie care poate fi folosită pentru a prezenta diferitele posibilități de atac asupra unui sistem. Acest vocabular este bine popularizat de ‘poveștile’ despre ‘hackeri’. Atacurile presupun, în general, fie citirea informațiilor neautorizate, fie (în cel mai frecvent caz) distrugerea parțială sau totală a datelor sau chiar a calculatoarelor. Ce este mai grav este posibilitatea potențială de infestare, prin rețea sau copieri de dischete, a unui mare număr de mașini. Dintre aceste programe distructive amintim următoarele :

virușii – reprezintă programe inserate în aplicații, care se multiplică singure în alte programe din spațiul rezident de memorie sau de pe discuri ; apoi, fie saturează complet spațiul de memorie/disc și blochează sistemul, fie, după un număr fixat de multiplicări, devin activi și intră într-o fază distructiva (care este de regulă exponențială),

bomba software – este o procedură sau parte de cod inclusă într-o aplicație ‘normală’, care este activată de un eveniment predefinit. Autorul bombei anunță evenimentul, lăsând-o să ‘explodeze’, adică să facă acțiunile distructive programate,

viermii – au efecte similare cu cele ale bombelor și virușilor. Principala diferență este aceea că nu rezidă la o locație fixă sau nu se duplică singuri. Se mută în permanență, ceea ce îi face deficil de detectat. Cel mai renumit exemplu este viermele Internet-ului, care a scos din funcțiune o parte din Internet în noiembrie 1988,

trapele – reprezintă accese apeciale la sistem, care sunt rezervate în mod normal pentru proceduri de încărcare la distanță, întreținere sau pentru dezvoltatorii unor aplicații. Ele permit însă accesul la sistem, eludănd procedurile de identificare uzuale,

Calul Troian – este o aplicație care are o funcție de utilizare foarte cunoscută și care, într-un mod ascuns, îndeplinește și o altă funcție. Nu crează copii. De exemplu, un hacker poate înlocui codul unui program normal de control ‘login’ prin alt cod, care face același lucru, dar, adițional, copiază într-un fișier numele și parola pe care utilizatorul le tastează în procesul de autentificare. Ulterior, folosind acest fișier, hacker-ul v-a penetra foarte ușor sistemul.

2.4. Metode de apărare

Implementarea unor mecanisme de securitate în retelele de calculatoare de arie largă, în particular – Internet-ul, priveste rezolvarea următoarele aspecte:

bombardarea cu mesaje – asa numitul spam – trimiterea de mesaje nedorite, de obicei cu un continut comercial.Acest fenomen este neplăcut în cazul unui număr mare de mesaje publicitare nedorite si poate avea efecte mai grave în cazul invadării intentionate cu mesaje ("flood"), uzual cu un continut nesemnificativ. Pentru utilizatorii de Internet conectati prin intermediul uni modem, numărul mare de mesaje are ca efect cresterea perioadei necesare pentru "descărcarea" postei electronice si deci un cost de conectare mai ridicat.

Există programe de postă electronică care permit vizualizarea antetelor mesajelor primite înainte ca acestea să fie aduse pe calculatorul local, selectarea explicită a mesajelor care se doresc transferate si stergerea celorlalte. În plus, programele de e-mail pot încorpora facilităti de blocare a mesajelor de tip "spam" prin descrierea de către utilizator a unor actiuni specifice de aplicat asupra mesajelor, în functie de anumite cuvinte cheie sau de adresele (listele de adrese) de provenientă.

rularea unui cod (program) dăunător, adesea de tip virus – acesta poate fi un program Java sau ActiveX, respectiv un script JavaScript, VBScript etc. ;

Asemenea programe sunt în general blocate de navigatoarele moderne dar au ajuns să se răspândească ca fisiere atasate mesajelor de mail.În general marile firme care produc navigatoare testează riguros riscurile impuse de programele dăunătoare rulate de pe site-uri web, uneori create cu intentii distructive, si intervin în general prin versiuni superioare imediat ce un astfel de risc a fost descoperit si corectat. În plus, cea mai mare parte a programelor de navigare permit utilizarea unor filtre specifice pe baza cărora să se decidă dacă un anumit program va fi rulat sau nu, si cu ce restrictii de securitate (decizia se realizează în general pe baza "încrederii" indicate în mod explicit de utilizator).

infectarea cu viruși specifici anumitor aplicații – se previne prin instalarea unor programe antivirus care detectează virusii, devirusează fisierele infectate si pot bloca accesul la fisierele care nu pot fi "dezinfectate". În acest sens, este importantă devirusarea fisierelor transferate de pe retea sau atasate mesajelor de mail, mai ales dacă contin cod sursă sau executabil, înainte de a le deschide / executa.

accesarea prin rețea a calculatorului unui anumit utilizator si "atacul" asupra acestuia.. La nivelul protocoalelor de retea, protejarea accesului la un calculator sau la o retea de calculatoare se realizează prin mecanisme de tip fire-wall, prin comenzi specifice; acestea pot fi utilizate si în sens invers, pentru a bloca accesul unui calculator sau a unei retele de calculatoare la anumite facilităti din Internet.

interceptarea datelor în tranzit și eventual modificarea acestora – snooping. Datele se consideră interceptate atunci când altcineva decât destinatarul lor le primeste. În Internet, datele se transmit dintr-un router în altul fară a fi protejate. Routerele pot fi programate pentru a intercepta, eventual chiar modifica datele în tranzit. Realizarea unei astfel de operatii este destul de dificilă, necesitând cunostinte speciale de programare în retele si Internet, dar există numeroase programe (de tip hacker) care pot fi utilizate în aceste scopuri, ceea ce duce la cresterea riscului de interceptare a datelor.

Transmisia protejată a datelor trebuie să garanteze faptul că doar destinatarul primeste si citeste datele trimise si că acestea nu au fost modificate pe parcurs (datele primite sunt identice cu cele trimise). Modificarea datelor s-ar putea realiza în mod intentionat, de către o persoană care atentează la securitatea retelei sau printr-o transmisie defectuoasă

expedierea de mesaje cu o identitate falsă, expeditorul impersonând pe altcineva (pretinde că mesajul a fost trimis de la o altă adresă de postă electronică)? spoofing. Această problemă se revolvă prin implementarea unor mecanisme de autentificare a expeditorului.

Se poate remarca faptul că problemele ridicate la punctele 3 si 4 sunt riscuri generice, specifice pentru utilizatorii care fac schimb de fisiere si respectiv pentru toti cei care sunt conectati la o retea de calculatoare – locală sau de arie largă. Problemele de interceptare si autentificare, cele mai importante din punctul de vedere al utilizatorilor obisnuiti, sunt rezolvate prin aplicarea unor tehnici de codificare.

Pentru asigurarea securitătii retelei este importantă implementarea unor mecanisme specifice pornind de la nivelul fizic (protectia fizică a liniilor de transmisie ), continuând cu proceduri de blocare a accesului la nivelul retelei (fire-wall), până la aplicarea unor tehnici de codificare a datelor (criptare), metodă specifică pentru protectia comunicării între procesele de tip aplicatie care rulează pe diverse calculatoare din retea.

Împiedicarea interceptării fizice este în general costisitoare si dificilă de aceea, se preferă implementarea unor mecanisme de asigurare a securitătii la nivel logic, prin tehnici de codificare / criptare a datelor transmise care urmăresc transformarea mesajelor astfel încât să fie întelese numai de destinatar; aceste tehnici devin mijlocul principal de protectie a retelelor.

CAP. 3. SECURITATEA PE INTERNET

3.1. Securitatea serviciilor internet

Rețelele de calculatoare locale și de arie largă au schimbat aspectul utilizării calculatoarelor. Astăzi, spre deosebire de trecutul nu prea îndepărtat, în care calculatoarele erau separate și distincte, rețelele permit utilizatorilor să străbată instantaneu camere, țări sau întregul glob pentru a schimba mesaje electronice, pentru a accesa fișiere sau baze de date sau pentru a lucra pe calculatoare situate la mari distanțe. Un aspect crucial al rețelelor de calculatoare, în special al comunicațiilor prin internet, îl constituie securitatea informațiilor, devenită una din componentele majore ale internet-ului.

Serviciile internet au la bază schimbul de mesaje între o sursă și un destinatar. Rețelele din internet folosesc protocolul IP (Internet Protocol). IP asigură livrarea pachetelor numai dacă în funcționarea rețelelor nu apar erori. Dacă un mesaj este prea lung, IP cere fragmentarea lui în mai multe pachete. Transmiterea pachetelor IP se face între calculatoare gazdă și nu direct, între programele de aplicație. Din aceste motive, protocolul IP este completat cu un altul, numit TCP (Transmission Control Protocol), care face fragmentarea și asigură transmiterea corectă a mesajelor între utilizatori. Pachetele unui mesaj sunt numerotate, putându-se verifica primirea lor în forma în care au fost transmise și reconstituirea mesajelor lungi, formate din mai multe pachete.

Există trei căi distincte pentru conectarea a două claculatoare, folosind protocolul IP.

– cele două calculatoare pot fi în aceeași rețea locală. În acest caz, pachetele sunt încapsulate în pachetele folosite de protocoalele LAN;

– cele două calculatoare sunt direct legate printr-o linie serială. Pachetele IP sunt transmise folosind unul din protocoalele SLIP (Serial Line Internet Protocol). CSLIP (Compressed SLIP) sau PPP (Point-to-Point Protocol).

– dacă cele două calculatoare sunt conectate fiecare la câte o rețea locală linia telefonică leagă cele două LAN-uri prin intermediul unor bridge-uri; Pachetele IP pot fi încapsulate în interiorul altor pachete folosite de alte protocoale rețea.

Funcționarea protocoalelor TCP și IP presupune existența unei comunicări directe între noduri (ruter-e sau calculatoare gazdă) adiacente din rețea. Această comunicare este realizată conform unor tehnologii diverse și se supune unor protocoale specifice, bine precizate. Ca urmare, TCP și IP se bazează, la rândul lor pe serviciile oferite de alte protocoale. Se obține, în ansamblu, o suită (ierarhie) de protocoale care depind unele de altele, dar care au ca punct central protocoalele TCP/IP. De aceea, ea este denumită suită TCP/IP sau familia de protocoale TCP/IP.

Uzual, un sistem terminal are o singură interfață cu subrețeaua la care este conectat, în timp ce un sistem intermediar are mai multe interfețe, câte una pentru fiecare subrețea la care este conectat. Rolul unui sistem intermediar este de a retransmite pachetele pe care le primește de la o subrețea, pe o altă subrețea aflată pe calea spre sistemul terminal destinatar. Sistemul intermediar este legat la ambele subretele. Figura 2.1 arată un mesaj care traversează două rețele.

Fig. 3.1. Protocoale utilizate de un mesaj care traversează două rețele

Aplicația sursă din sistemul terminal 1 comunică un mesaj modulului TCP. Acesta construiește un pachet pe care nivelul IP îl pasează ca o datagramă subrețelei a. în sistemul intermediar, datagrama ajunge la modulul IP care îl rutează subrețelei b. În sistemul terminal 2, IP extrage mesajul și îl transmite aplicației receptor prin intermediul modulului TCP. Să observăm că în sistemul intermediar, pentru recepția dirijarea și retransmiterea datagramelor, sunt necesare doar niveiele IP și interfața de rețea.

Cu toate că pot utiliza tehnologii de comunicație diferite, toate subreteieie sunt tratate uniform în internet. O rețea locală, una de arie largă sau o simplă legătură punct-la-punct între două sisteme din internet contează fiecare ca o subretea. Structura internă a internet-ului este ascunsă utilizatorilor Tot ceea ce văd ei este o singură rețea foarte mare, ce leagă între ele sisteme terminale și care le permite astfel accesul la resurse situate oriunde în internet.

3.2. Funcționarea serviciilor INTERNET

Cele mai multe servicii sunt furnizate de programe numite server-e. Pentru ca un server să funcționeze, el trebuie să folosească un protocol (TCP sau UDP), să aibă alocat un port și să fie lansat în execuție – de obicei, la încărcarea sistemului de operare.

În UNIX există un fișier cu rol esențial în execuția serviciilor: /etc/services. El conține, în fiecare linie, numele unui serviciu, numărul port-ului, numele protocolu!ui și o listă de alias-uri. Acest fișier, a cărui securitate este foarte importantă, este folosit atât de către server-e cât și de către clienți.

Server-ele determină din acest fișier numărul propriu de port cu care lucrează, folosind un apel sistem special: getservicebyname().

Port-urile au alocate numere; cele cuprinse în domeniul 0-1.023 se consideră port-uri sigure. Ele sunt restricționate la folosire, fiind accesibile doar superuser-ului. Ca urmare, programele care folosesc aceste port-uri trebuie executate ca root. Acest lucru împiedică programele obișnuite să obțină informații senzitive de la aceste port-uri. Altfel, ar fi posibil pentru un utilizator să creeze, de exemplu, un program care să se prezinte drept telnet, să asculte port-ul 23 și să intercepteze parolele altor utilizatori. Folosind însă calculatoare non-UNIX, IBM-PC cu plăci Ethernet, este posibil să se facă conectări la port-uri de încredere de pe mașini UNIX și să se trimită sau să se intercepteze pachete de date.

Există 2 tipuri distincte de server-e:

• cele care se execută continuu. Ele sunt startate automat la lansarea sistemului de operare, pe baza informațiilor din /etc/rc*. Aceste server-e trebuie să răspundă rapid la cererile care sosesc din rețea, cum ar fi nfsd (Network Filesystem Daemon) și sendmail;

• server-e care sunt lansate doar atunci când este nevoie de ele. Ele sunt, de obicei, startate de demonul inetd, care poate "asculta" zeci de port-uri și care lansează în execuție demonul necesar. în această categorie intră servicii ca fingerd (Finger Daemon) și popper (Post Office Protocol Daemon).

Cum s-a mai arătat, lansarea în execuție a server-elor care nu sunt permanent rezidente se face cu ajutorul unui program demon numit inetd. Cu ajutorul fișierului /etc/inetd.conf, acesta determină serviciile rețea pe care le gestionează. Apoi folosește apelurile sistem bind(), pentru a se conecta la mai multe port-uri, și select(), pentru a obține controlul atunci când se face o cerere de conectare la un anumit port.

Fiecare linie conține numele serviciului, tipul socket-ului, tipul protocolului, dacă se așteaptă sau nu cereri în continuare, după servirea celei care a activat server-ul, numele

utilizatorului proprietar al server-ului și numele comenzii executate la activarea serviciului.

O problemă deosebit de importantă din punctul de vedere al securității este aceea a controlului accesului la server-e. Doar o mică parte din programele server au încorporate facilități de limitare a accesului, bazate pe controlul corelației dintre adresele IP și numele de host ale celui care face cererea. De exemplu, NFS permite specificarea host-urior care au dreptul de a monta anumite sisteme de fișiere; de asemenea nntp permite precizarea host-urilor care pot citi știrile.

Există, însă, și alte modalități, exterioare programelor, prin care se poate controla accesul la sever-e:

• programul tcpwrapper, scris de către Wietse Venema, este un utilitar care poate "îmbrăca" un server INTERNET. El permite restricționarea accesului anumitor host-uri la server-e;

• se poate folosi un program firewall, plasat între server și exterior. Acesta poate proteja întreaga rețea, spre deosebire de tcpwrapper, care protejează doar servicii de pe o anumită mașină.

Se recomandă, în general, folosirea unor wrappers și firewalls în conjuncție;de exemplu, primul pentru fiecare calculator și al doilea pentru protecția întregii rețele.

3.3. Securitatea prin firewall

Un firewall este un sistem care impune o politică de control al accesului între două rețele( Fig. 2.2). Un firewall reprezintă implementarea acestei politici în termeni de configurare a rețelei, unul sau mai multe sisteme gazdă și ruter-e cu funcțiuni speciale, alte măsuri de securitate, cum ar fi autentificarea prin metode criptografice a clienților.

Fig. 2.2. Dispunerea unui firewall

Cu alte cuvinte, un firewall este un mecanism folosit pentru a proteja o rețea sigură din punctul de vedere al securității de una nesigură, în care nu putem avea încredere.

În mod tipic, una din rețele este cea internă unei organizații (sigură, de încredere), în timp ce cealaltă este internet-ul (în care nu există încredere din punctul de vedere al securității). Dat fiind numărul și mai mare de utilizatori mulți dintre aceștia având, din nefericire, statutul de hacker folosirea unui firewall are sens.

Deși cele mai multe firewall-uri sunt, în mod curent, interpuse între rețelele interne și internet, conceptul de firewall nu vizează numai acest aspect, existând suficiente motive pentru folosirea firewall-urilor în oricare internet, inclusiv în rețelele cu arie largă (WAN) ale diferitelor companii. Deoarece un firewall este dispus la intersecția dintre două rețele, acesta poate fi folosit și în alte scopuri decât acela de control al accesului:

pentru a monitoriza comunicațiile dintre o rețea internă și o rețea externă. De exemplu, un firewall poate jurnaliza (monitoriza, înregistra) seviciile folosite și cantitatea de date transferată prin conexiuni TCP/IP între propria organizație și lumea exterioară;

un firewall poate fi folosit pentru interceptarea și înregistrarea tuturor comunicațiilor dintre rețeaua internă și exterior.

dacă o organizație are mai multe rețele, separate din punct de vedere geografic, fiecare având câte un firewall, există posibilitatea programării acestor firewall-uri pentru a cripta automat conținutul pachetelor transmise între ele. în acest fel, pe suportul internet, organizația își poate realiza propria rețea virtuală privată.

Filtrarea de pachete este tipul cel mai simplu și primul tip de firewall.

Tot traficul Internet este transmis în formă de pachete. Un pachet este o cantitate de date de dimensiune limitată pentru a ușura prelucrarea lui. Când sunt transmise cantități mari de date, acestea sunt împărțite în mai multe pachete numerotate care la partea de recepție sunt reasamblate. Tot traficul Internet : fișierele transferate, paginile web, mesajele electronics sunt transmise în pachete.

În principiu un pachet este o serie de numere digitale , ce constă din:

datele în sine de transmis, confirmarea, cererea de la sistemul sursă

adresa IP și portul sursa

adresa IP și portul destinație

informații despre protocolul utilizat (IP,TCP,UDP) prin care este transmis pachetul

informație de verificare a erorii

La filtrarea de pachete numai informația de protocol și adresa este examinată.

Conținutul și contextul pachetului (relația față de alte pachete și aplicația căreia îi este

destinată) sunt ignorate. Firewall-ul ia în considerare aplicația de pe host sau din rețea căreia îi este dstinat pachetul și nu „știe” nimic despre sursa (aplicația) datelor sosite. Filtrarea constă în examiniarea pachetelor sosite și/trimise, și permiterea sau refuzarea transmiterii acestora pe baza regulilor configurabile, numite politici de filtrare.

Regulile filtrelor de pachete pot fi făcute pe următoarele criterii:

permite sau refuză pachetul pe baza adresei sursa

permite sau refuză pachetul pe baza portului destinație

permite sau refuză pachetele pe baza protocolului utilizat

Figura 3.3- Filtrare de pachete pe baza numărului de port

Cum este indicat în Figura 2.3., filtrarea este realizată pe baza porturilor sursă și destinație .

Filtrarea de pachete este foarte eficientă dar nu oferă securitate totală. Poate bloca tot traficul, ceea ce ar însemna securitate absolută. Dar pentru a avea o rețea folositoare , trebuie să permită accesul unor pachete.

Punctele slabe sunt:

informația legată de adresa în cadrul pachetului poate fi falsificată de către transmitator (atacator)

data, cererea din pachetul ce a fost acceptat poate în final fi cauza unor lucruri nedorite , atacatorul putând exploata un bug cunoscut într-o aplicație (de ex, server web) , sau să utilizeze o parolă primită pentru a obține acces pe server.

Avantajul filtrării de pachete este simplitatea relativă și ușurința implementării.

3.4. Securitatea prin criptare

Criptografia este știința scrierilor secrete. Ea stă la baza multor servicii și mecanisme de

securitate folosite în internet, folosind metode matematice pentru transformarea datelor, în intenția de a ascunde conținutul lor sau de a le proteja împotriva modificării. Criptografia are o lungă istorie, confidențialitatea comunicării fiind o cerință a tuturor timpurilor. Dacă ar trebui să alegem un singur exemplu al criptografiei "clasice", acesta ar fi cifrul lui Cezar, nu atât datorită celebrității împăratului roman de care se leagă folosirea lui, ci pentru că principiul său de bază, al substituției, s-a menținut nealterat aproape două milenii.

3.4.1. Istoric. Evoluție

Multă vreme, eforturile criptografilor au fost dirijate spre întărirea cifrurilor prin complicarea algoritmului, combinând substituții și transpoziții asupra unor simboluri sau asupra unor blocuri (grupe de simboluri). Istoria modernă a criptografiei cunoaște numeroase inovații în această privință. Două sunt elementele ce au marcat însă cotitura semnificativă în dezvoltarea metodelor criptografice.

Primul este legat de dezvoltarea rețelelor de calculatoare, al căror stimulent extraordinar s-a manifestat atât prin presiunea exercitată de tot mai mulți utilizatori (a căror dorință obiectivă este păstrarea secretului și a siguranței asupra poștei electronice private, a transferului electronic de fonduri și a altor aplicații) cât și prin potențarea gamei de instrumente folosite efectiv în execuția algoritmilor de cifrare. Utilizarea calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se atfel rezistența la atacuri criptoanalitice. Când cheia secretă are o dimeniune convenabilă și este suficient de frecvent schimbată, devine practic imposibilă spargerea cifrului, chiar dacă se cunoaște algoritmul de cifrare. Pe această idee se bazează și standardul american de cifrare a datelor – DES (Data Encryption Standard) larg utilizat de guvernul SUA și de diverse companii internaționale. Propus într-o formă inițială de IBM în 1975, DES a rezistat evaluării făcute de "spărgătorii de cifruri" de la U.S. National Security Agency (NSA), care au recomandat doar reproiectarea anumitor componente (casete de substituție). DES a fost adoptat ca standard federal în 1977 și a fost folosit intens datorită performanțelor de viteză atinse la cifrare (peste 100 de milioane de biți/secundă). Din păcate, nu se știe cu certitudine dacă cei de la NSA sau de la vreo altă organizație au reușit sau nu să spargă DES. Experiența a arătat însă că orice schemă criptografică are o viață limitată și că avansul tehnologic reduce, mai devreme sau mai târziu, securitatea furnizată de ea.

Al doilea moment important în evoluția criptografiei moderne l-a constituit adoptarea unui principiu diferit de acela al cifrării simetrice. Whitfield Diffie și Martin Hellman, cercetători la Univeritatea Stanford din California, prin articolul "New Directions in Criptography", publicat în 1976 în revista IEEE Tranactions on Information Theory, au pus bazele "criptografiei asimetrice" cu chei publice. în locul unei singure chei secrete, criptografia asimetrică folosește două chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibilă deducerea unei chei din cealaltă, una din chei este făcută publică, fiind pusă la îndemâna oricui dorește să transmită un mesaj cifrat. Doar destinatarul, care deține cea de-a doua cheie, poate descifra și utiliza mesajul. Tehnica cheilor publice poate fi folosită și pentru autentificarea mesajelor, fapt care i-a sporit popularitatea. Nu este, deci, de mirare că guvernul SUA a inițiat adoptarea unui standard de semnătură digitală bazat pe conceptul de cheie publică. Un cifru se definește ca transformarea unui mesaj clar sau text clar în mesaj cifrat ori criptogramă. Procesul de transformare a textului clar în text cifrat se numește cifrare sau criptare, iar transformarea inversă, a criptogramei în text clar, are denumirea de descifrare sau decriptare. Atât cifrarea cât și descifrarea sunt controlate de către una sau mai multe chei criptografice.

Există două tipuri de sisteme criptografice:

simetrice (cu cheie secretă) care folosesc aceeași cheie, atât la cifrarea cât și la descifrarea mesajelor.

asimetrice (cu chei publice) care folosesc chei distincte de cifrare și descifrare (dar legate una de alta). Una din chei este ținută secretă și este cunoscută doar de proprietarul ei. A doua cheie (perechea ei) este făcută publică, de unde și numele de criptografie cu cheie publică.

3.4.2. Algoritmi criptografici cu cheie secretă

Principiile de criptare din algoritmii cu cheie secretă au evoluat odată cu aparitia calculatoarelor; ele continuă însă să se bazeze pe metodele traditionale, cum ar fi transpozitia si substitutia. Algoritmii cu cheie secretă sunt caracterizati de faptul că folosesc aceeasi cheie atât în procesul de criptare, cât si în cel de decriptare . Din acest motiv, acesti algoritmi mai sunt cunoscuti sub numele de algoritmi simetrici; pentru aplicarea lor este necesar ca înaintea codificării / decodificării, atât emitătorul cât si receptorul să posede deja cheia respectivă. În mod evident, cheia care caracterizează acesti algoritmi trebuie să fie secretă(Figura 2.4).

Principalul dezavantaj al algoritmilor simetrici constă în faptul că impun un schimb de

chei private înainte de a se începe transmisia de date. Altfel spus, pentru a putea fi utilizati,

este necesar un canal cu transmisie protejată pentru a putea fi transmise cheile de criptare-

/decriptare.

Figura 3.4- Schema de aplicare a unui algoritm simetric

Securitatea criptării simetrice (cu cheie secretă) depinde de protecția cheii; managementul acestora este un factor vital în securitatea datelor și cuprinde următoarele aspecte:

generarea cheilor. Pentru cheile de sesiune sau de terminal sunt necesare proceduri automate, funcții matematice și diverși parametri (numărul curent al apelurilor sistem, data, ora etc).

distribuția cheilor. Cu privire la transportul cheii secrete, problema este în general rezolvată prin folosirea unei alte chei, numită cheie terminal, pentru a o cripta. Cheile de sesiune – generate numai pentru o comunicație – sunt transportate criptat cu cheile terminal care, de asemenea, pot fi protejate (când sunt memorate) cu altă cheie, numită cheie master.

memorarea cheilor. Utilizarea algoritmilor simetrici, în cazul a N entități care doresc să comunice, implică N(N-1)/2 chei de memorat într-un mod sigur. în realitate, nu toate legăturile bidirecționale se stabilesc la același timp; este motivul pentru care se utilizează cheile de sesiune. Cheile terminal, care criptează numai date foarte scurte (chei de sesiune), sunt foarte dificil de atacat. Întâlnim următoarele tipuri de sisteme de criptare cu algoritmi cu cheie secretă:

cifrul DES

cifrul IDEA;

cifrul FEAL;

cirful LOKI;

cifrul RC6.

Algoritmul IDEA

Un alt cifru renumit este IDEA (International Data Encryption Algorithm), realizat de doi cercetători la Politehnica Federală din Zürich (ETHZ). Algoritmul IDEA este cel mai bun algoritm din punct de vedere al securității și este utilizt mult în INTERNET.

Principiul algoritmului se bazeaza pe amestecul unor operații algebrice în diferite grupuri, foloseste o cheie de 128 de biți.Cifrarea și descifrarea se fac pe blocuri de 64 biți și este ușor de implementat hard și soft:

– XOR

– Adunare modulo 216

– Produs modulo 216+1( operatie vazuta ca o cutie S)

Descrierea formala a algoritmului (Fig. 3.5):

Intrare: M =64 biti reprezentand blocul clar, M=(M1,M2,M3,M4);

K0=64 biti reprezentand cheia initiala;

Iesire : C=64 biti reprezentand blocul cifrat.

Fig. 3.5. Schema generala a algoritmului IDEA

Operații: + = aduna modulo 216 (rezultatul operației este un intreg pe 16 biti)

* = înmulțirea modulo 216 (rezultatul operației este un intreg pe 16 biti)

(+) = XOR

Notații: Mi= 16 biti reprezentand subbloculclar i=1..4;

Ci = 16 biti reprezentând subblocul criptat i=1..4;

Ki = 16 biti reprezentând subblocul cheii i=1..6;

#Ki =16 biti reprezentând inversul numarului Ki față de operația ‘+’ , i=1..4;

@Ki=16 biti reprezentând inversul numarului Ki față de operația ‘*’,i=1..4;

Fig. 3.6. Pseudonimul algoritmului de criptare/decriptare

Crearea subcheilor este simplă (Fig. 3.7). Algoritmul utilizează 52 de subchei ( 6 pentru fiecare iterație și 4 finale). Prima dată cei 128 de biti ai cheii sunt divizati in 8 subchei de 16 biți. Acestea sunt primele sub chei pentru algoritm (6 pentru prima iterație și 2 pt a doua).

Apoi cheia este rotită cu 25 de biți la stânga și divizata iar in 8 subchei. Se procedează similar pâna la obținerea tuturor subcheilor necesare.

PERUTARE1(K)=permutare definita de implementator , K=64 biti

PERUTARE2(K)=permutare definita de implementator , K=64 biti

STANGA(k,i)=deplasare ciclica spre stanga a lui k cu i pozitii, k=32 biti;

Fig. 3.7. Algoritm de generare al cheilor de iterație

3.4.3. Algoritmi criptografici cu cheie publică

În locul unei singure chei secrete, criptografia asimetrică folosește două chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibilă deducerea unei chei din cealaltă, una din chei este făcută publică, fiind pusă la îndemâna oricui dorește să transmită un mesaj cifrat. Doar destinatarul, care deține cea de-a doua cheie, poate descifra și utiliza mesajul. Tehnica cheilor publice poate fi folosită și pentru autentificarea meajelor prin semnătură digitală, fapt care i-a sporit popularitatea.

Fiecare dintre aceste chei poate cripta mesajul, dar un mesaj criptat cu o anumită cheie nu poate fi decriptat decât cu cheia sa pereche.Astfel, în cazul utilizării unui algoritm asimetric în comunicarea dintre un emitător si un receptor (Figura 2.8), fiecare dintre acestia va detine câte o pereche de chei – publică si privată. Emitătorul poate cripta mesajul cu cheia publică a receptorului, astfel încât doar acesta să poată decripta mesajul cu cheia sa privată. În cazul unui răspuns, receptorul va utiliza cheia publică a emitătorului astfel încât decriptarea să se poată face exclusiv de către emitător (cu cheia sa pereche, privată).

Cheile algoritmilor asimetrici sunt obtinute pe baza unei formule matematice din algebra numerelor mari, pentru numere prime între ele, iar din valoarea unei chei nu poate fi dedusă valoarea cheii asociate. Remarcăm faptul că aplicarea în informatică a calculelor modulo numere prime s-a dovedit extrem de benefică pentru multi algoritmi moderni.

Figura 3.8- Schema de aplicare a unui algoritm asimetric

Întâlnim următoarele tipuri de sisteme de criptare cu algoritmi cu cheie publică:

sisteme de cifrare exponențială RSA (Rivert-Shamir-Adleman);

cifrul EL GAMAL (EG);

standardul DSS de semnătură digitală

Algoritmul RSA

Un alt algoritm performant asimetric care a fost descoperit de un grup de cercetători de la MIT – Ronald Rivest, Adi Shamir, Leonard Adelman – și s-a numit cu inițialele creatorilor lui. Acest cifru cu chei publice reprezinta standardul în domeniul semnaturilor digitale și al cofidentialității.El se bucură de o foarte mare apreciere atât ăn mediul guvernamental cât și în cel comercial. RSA este bazat pe cvasi-imposibilitatea actuala de a factoriza numere întregi mari în timp ce a găsi numere prime mari este uțor; funcțiile de criptare/decriptare sunt exponențiale unde exponentul este cheia iar calculele se fac în inelul claselor de resturi modulo n.

Fie p si q doua numere prime foarte mari (de exemplu de 100 cifre zecimale)

– cifrarea mesajului X este E(X)=Xe mod(p*q);

– descifrarea mesajului X este D(X)=Xdmod (p*q);

Întregii e si d reprezintă cheile (una publica,cealalta secreta), p și q sunt secrete iar produsul p*q este făcut public.

Baza teoretică este teorema lui Fermat care stabilește că:

– dacă q este un număr prim și dacă (X=!0 mod p) atunci Xq-1 = 1modp

Teorema are 2 proprietăți asociate:

– dacă r-1=k mod p-1 Xr =X mod p;

– dacă erd-1=k(p-1)(q-1) atunci Xed =Xde=X mod p; Xed =Xde=X mod q

In cadrul acestei metode modulul n este obținut prin produsul (secret) a două numere prime mari :n= p* p astfel încât indicatorul lui Euler , φ(n)=(p-1)*(q-1) devine mult mai greu de determinat; se vor face publice e si n iar d va fi tinut secret.Se recomandă alegerea unui d relativ prim cu φ(n) în intervalul [max(p,q)+1,n-1]. În acest caz e se va calcula astfel:

E=inv(d,φ(n))

Securitatea metodei depinde de dificultatea factorizării lui n în p și q. Este sugerată utilizarea unor numere prime de 100 cifre, adică a unui n de 200 cifre zecimale ceea ce cere pentru factorizare mai multe milioane de ani.

Deoarece cifrarea și descifrarea sunt funcții mutual inverse metoda RSA poate fi utilizată atât la secretizare cât și la autentificare. Fiecare utilizator A obține modulul nA și exponenții eA si dA .Apoi A va înregistra într-un fișier public cheia publică (nA ,eA) în timp ce va ține secretă pe dA .

Un alt utilizator B va putea emite un mesaj secret M utilizând transformarea de cifrare publică a lui A adică ridicarea la putere eA, modulo nA a mesajului :

EA (M)=MeA mod nA

La recepție A va obține mesajul în clar :

DA (EA (M))=MeAdA mod nA =M

Utilizatorul A va putea semna un mesaj M catre B calculând:

DA(M)=MdAmod nA

Iar B va autentifica acest mesaj utilizând cheia publică a lui A:

EA(DA (M))=MdAeA mod nA =M

CAP. 4. APLICAȚII TIP FIREWALL DE FILTRARE A PACHETELOR IPTABLES VS. ZONE ALARM

4.1. Descriere generală de funcționare

Tot traficul dintr-o rețea este transmis sub formă de pachete. De exemplu, descărcând un document (să zicem că are 50ko) s-ar putea ca să se primească 36 de pachete a câte 1460 octeți fiecare.

Un filtru de pachete este o bucațică de software care se uită la header-ul pachetelor pe masură ce ele intra, și decid soarta întregului pachet. Acest filtru poate decide să ignore pachetul (DROP) (respinge pachetul ca ți cum nu l-ar fi primit niciodată), acceptă (ACCEPT) pachetul (lasa pachetul saintre), sau alte decizii mai complicate.

Sub Linux, filtrarea de pachete este construită in kernel (ca modul sau construita in el), si sunt cateva lucruri complicate pe care le putem face cu pachetele, dar principiul general de examinare al header-ului pachetului si decidere asupra sortii pachetului este inca acolo.

Kernelurile Linux au avut filtrare de pachete încă de la versiunile 1.1. Prima generație, bazată pe ipfw de la BSD, a fost portată de către Alan Cox spre sfarșitului anului 1994. Aceasta a fost dezvoltată de către Jos Vos și altii pentru Linux 2.0; comanda pentru utilizatori "ipfwadm" controla regulile de filtrare ale kernelului. La mijlocului anului 1998, pentru Linux

2.2, s-a rescris puternic kernelul cu ajutorul lui Michael Neuling, și s-a introdus comanda pentru utilizatori "ipchains". In sfârșit, a patra generație de comenzi, "iptables", și o nouă rescriere a kernelului s-a intamplat la mijlocul anului 1999 pentru Linux 2.4. Acest HOWTO este centrat pe iptables.

Este nevoie de un kernel care are infrastructura netfilter în el: netfilter este un cadru in interiorul kernelului Linux în care alte lucruri (cum ar fi modulul de iptables) se pot introduce. Asta înseamnă existența unui kernel versiune 2.3.15 sau peste, și răspuns "Y" la CONFIG_NETFILTER în configurarea kernelului.

Comanda iptables comunică kernelului și ii spune ce pachete sa filtreze.

Iptables:

Comanda iptables inserează și șterge reguli din tabela de filtrare a pachetelor din kernel. Setarile firewall-ului curent sunt păstrate în kernel și de aceea vor fi pierdute la repornirea calculatorului. Se pot folosi scripturile iptables-save si iptables-restore pentru a salva sau a restaura setarile firewall-ului dintr-un fisier. O alte cale este sa punem comenzile pentru seta-

rea regulilor într-un script de initializare.

Sunt mai multe lucruri pe care se pot face cu iptables. Pornim la drum cu trei chainuri default care nu pot fi șterse INPUT, OUTPUT si FORWARD. Să privim operațiile care se pot aplica pentru un intreg chain (Fig. 4.1):

1. Creearea unui lanț nou (-N).

2. Ștergerea unui lanț gol (care nu contine reguli) (-X).

3. Schimbarea politicii pentru un lanț standard (-P).

4. Listarea regulilor dintr-un lanț (-L).

5. Ștergerea tuturor regulilor dintr-un lnaț (-F).

6. Resetarea numărătorilor de pachete pentru toate regulile dintr-un lanț (-Z).

Sunt mai multe moduri în care se pot manipula regulile într-un lanț:

1. Adăugarea în coada lanțului a unei noi reguli (-A).

2. Insereaza o regula noua la o anumitî poziție în lanț (-I). Dacă nu este precizată poziția printr-un număr atunci regula este adaugată la începutul lanțului.

3. Înlocuiește o regulă la o anumită poziție în lanț (-R).

4. Șterge o regulă la o anumită poziție în lanț, sau prima care se potrivește (-D).

Fig. 4.1. Mod de utilizare iptables.

ZoneAlarm:

Oferă o protecție fără egal împotriva hackerilor de pe internet. Cu caracteristici precum modul de utilizare "stealth" și un firewall foarte configurabil care poate fi activat cu un click de mouse, ZoneAlarm este un instrument esențial pentru a păstra datele în siguranță si a tine la distanta persoanele care doresc sa acceseze neautorizat sistemul.

ZoneAlarm se poate preconfigura pentru toate domeniile de adrese și subrețele pe care dorim ca acesta să le accepte. De exemplu rețeaua de acasă și cea de la serviciu pot intra în zona de încredere (Trusted). Altfel, firewall-ul poate învăța să se descurce cu rețelele noi și necunoscute prin afișarea unei notificari în momentul în care se încearcă accesarea. În acel moment, ele pot fi accesate, dupa caz, sau pot fi clasificate ca fiind în zonele de incredere (Trusted), zona Internet sau zona fără access (Blocked).

ZoneAlarm este compus din mai multe module (Fig. 4.2) și dintre care cele mai importante ar fi: firewall-ul, controlul programelor și modulul spyware. Celelalte module extrem de folositoare sunt: modulul de monitorizare al antivirus-ului, protecția e-mail-urilor, modulul privacy, protecția datelor personale și modulul de alerta și jurnal al firewall-ului.

Firewall-ul cuprinde 2 submodule principale, primul care detectează automat rețeaua la care suntem conectați și al 2-lea în care se pot construi reguli de blocare sau acceptare a conexiunilor și transferului de pachete dupa adresa IP ca sursă și destinație, port sursa și port destinație, protocolul folosit etc.

Modulul de control al programelor se ocupă cu detectarea tuturor programelor care încearcă să acceseze rețeaua locala sau internet-ul și a tuturor componentelor utilizate de fiecare program și poate lasa sau bloca aceste programe să acceseze internet-ul, să funcționeze ca server sau chiar să trimit e-mail-uri.

Modulul anti-spyware scanează și curată sistemul de aplicașiile tip spion totodată blocând acces-ul la site-urile de pe care s-a produs infectarea.

Dintre celelalte module prezente cele mai interesante ar fi ultimele 2 si anume modulul de protecție a datelor personale, în care se pot adăuga diverse tipuri da date confidențiale precum parole, pin-uri de la credit card, adrese de e-mail, adresa domiciliu, cont bancar etc; o data adăugate în baza de date acestea vor fi detectate atunci cand un program va încerca să le trimita în rețeaua internet (exemplu: logarea pe un cont de e-mail din internet explorer ) și ne va cere permisiunea pentru acest lucru; și modulul de alerta și creare jurnal care realizează un jurnal al regulilor de filtrare din firewall, a controlului programelor, al spyware-ului, cuprinzand o serie de informații precum adresa ip sursa, port sursa, adresa ip destinație, port destinație, direcția pachtelor, protocol, data, rata, acțiune etc.

Fig. 4.2. Prezentare generală ZoneAlarm

Iptables:

O caracteristică puternică pe care iptables o moșteneste de la ipchains este posibilitatea utilizatorului de a crea lanțuri/blocuri (chains) noi, pe langa cele incluse standard (INPUT, OUTPUT si FORWARD). Prin conventie, lanțurile (chains) definite de catre utilizator se scriu cu litera mica pentru a le deosebi.

Când un pachet se potrivește cu o regulă a carei țintă este un lanț (chain) definit de către utilizator, pachetul incepe sa traverseze lanțul definit de catre utilizator. Dacă acel lanț nu decide soarta pachetul de îndata ce pachetul ajunge la sfârșitul lanțului respectiv, pachetul continuă traversarea lanțului initial.

Se consideră două lanțuri: INPUT (Tabelul 4.1) (chain-ul inclus default) și TEST (Tanelul 4.2) (un chain definit de utilizator).

Se consideă un pachet TCP venind de la 192.168.1.1 și ducându-se către 1.2.3.4. Acesta intră în blocul INPUT. Regula1 nu se potrivește cu el, Regula2 se potrivește așa că următoarea regulă care este examinată este prima din blocul test. Regula1 se potriveste dar nu este specificată nici o țintă, așa că următoarea regulă este examinată. Regula2 nu se potrivește asa ca s-a ajuns la sfarsitul chain-ului. Astfel se revine în chain-ul INPUT, unde este examinată Regula2, și urmează examinarea Regula3 care nici aceasta nu se potriveste.

Tabel 4.1- Blocul standard INPUT Tabel 4.2- Blocul creat: TEST

Chain-urile definite de către utilizator pot sări la alte chain-uri definite de către utilizator (dacă se creeaza trasee în cerc, pachetele vor fi ignorate daca se intră în bucla).

Exemplu:

Cei mai mulți utilizatori au o singură conexiune PPP (Point to Point Protocol) spre Internet și nu vor ca cineva să intre înapoi în rețeaua lor. Pentru a rezolva aceasta problemă se vor face urmatoarele setări pentru firewall:

Se creează lanțul (definit de utilizator) care blochează conexiunile noi, cu excepția celor venite din interior: (Fig. 4.4)

Fig. 4.3. Firewall oprit: afișare lanțuri default fara reguli de filtrare.

# iptables -N block

# iptables -A block -m state –state ESTABLISHED,RELATED -j ACCEPT

# iptables -A block -m state –state NEW -i ! ppp0 -j ACCEPT

# iptables -A block -j DROP

Fig. 4.4. Creare bloc nou și adaugarea de noi regului în cadrul blocului.

Se sare la acest lanț din lanțurile INPUT si FORWARD: (Fig. 4.5)

# iptables -A INPUT -j block

# iptables -A FORWARD -j block

Fig. 4.5. Crearea referințelor.

Observatii:

1. Când un pachet vine (sa zicem, prin placa de retea) kernelul se uită intâi la destinația pachetului: aceasta se numește "routing"(rutare).

2. Dacă pachetul este destinat pentru această mașină, pachetul trece pe diagramă în lanțul INPUT. Dacă trece de acest lanț, orice proces care asteaptă acel pachet îl va primi.

3. În caz contrar, dacă kernelul nu are forwarding-ul pus, sau nu știe cum să direcționeze pachetul, acesta este ignorat. Dacă este pus forwarding-ul și pachetul are ca destinație o altă interfață de rețea (dacă mai există înca una), atunci pachetul se duce în diagramă direct către lanțul FORWARD. Dacă este acceptat pachetul, atunci el va fi transmis.

4. In final, un program ce rulează pe sistem poate trimite pachete. Aceste pachete trec direct în chain-ul OUTPUT:, dacă este acceptat pachetul, acesta își continuă drumul fără să conteze interfața spre care este destinat.

În cazul ZoneAlarm-ului modulul firewall cuprinde două submodule, primul care detectează adresa IP a sistemului și rețeaua la care se dorește conectarea, cerând încadrarea rețelei în una din cele 2 zone de încredere (Trusted) sau Internet (Fig. 4.6); și al 2-lea în care se pot adauga reguli de filtrare a traficului.

Fig. 4.6. Adăugarea noii rețele depistată de firewall

4.2. Reguli de filtrare.Opțiuni de filtrare

Operații pentru o singură regulă

Iptables:

Aceasta este baza filtrarii de pachete; manipularea regulilor. În mod obișnuit, se vor folosi comenzile de adăugare (-A) și stergere (-D). Celelalte (-I pentru inserare si -R pentru

înlocuire) sunt doar extensii ale acestor concepte.

Fiecare regula specifică o mulțime de condiții pe care un pachet trebuie să le îndeplinească și ce să facă dacă acestea sunt îndeplinite (o "țintă" (target)). De exemplu, s-ar putea dori ignorarea tuturor pachetelelor de tip ICMP care vin de la adresa 127.0.0.1. Deci, în acest caz condițiile sunt ca protocolul sa fie ICMP și ca adresa sursă să fie 127.0.0.1., "ținta" este DROP. 127.0.0.1 este interfață "loopback", care există chiar fără conexiune reală de rețea. Se poate folosi comanda "ping" pentru a genera acest tip de pachete (pur și simplu trimite pachete ICMP de tip 8 (echo request) la care toate host-urile ar trebui să răspundă cu pachete ICMP de tip 0 (echo replay)). Această cpmandă este foarte folositoare pentru teste.

Se poate observa în Fig. 4.7 ca primul ping reușește ("-c 3" spune să trimită doar 3 pachete): vor fi trimise 3 pachete de tip ICMP și se va aștepta primirea răspunsului pentru fiecare pachet trimis.

Apoi se adaugă în coadă (-A) lanțului "INPUT", o regulă ce spune că pentru pachetele de la 127.0.0.1 ("-s 127.0.0.1") de tip ICMP ("-p icmp") trebuie sărit la "DROP" ("-j DROP"). În final se testează regula, folosind al doilea ping (Fig. 4.8). Va exista o pauză până când programul se „plictisește” să astepte un raspuns care nu va veni niciodată.

Fig. 4.7. Generare pachete ICMP

Fig. 4.8. Stoparea intrării tuturor pachetelor de tip ICMP.

ZoneAlarm:

Ca și în cazul utilitarului iptables, Zone Alarm prezintă un mdul pentru regulile de filtrare a pachetelor. Acesta perminte adăugarea unei noi reguli de filtrare, ștergerea unei reguli, modifcarea precum și activarea/dezactivarea și mutarea unei reguli în lista de reguli creată. (Fig. 5.9)

Fig. 4.9. Adăugare,modificare,stergere reguli.

Opțiuni de filtrare

S-a vazut folosirea optiunii "-p" pentru specificarea protocolul, și a opțiunii "-s" pentru a specifica adresa sursă, dar sunt și alte opțiuni care pot fi folosite pentru a preciza caracteristicile pachetului.

Specificarea IP-ului sursă si destinație:

Iptables: Adresele IP ale sursei ("-s", "–source" sau "–src") și destinației ("-d", "—

destination" sau "–dst") pot fi specificate în patru moduri. Cea mai obișnuită formă este să se folosească numele complet, cum ar fi "localhost" sau "www.securityorg.net". Cea de-a doua cale este specificare adresei IP cum ar fi "127.0.0.1".

Cea de a treia și a patra cale permite specificarea unui grup de adrese IP, cum ar fi "199.95.207.0/24" sau "199.95.207.0/255.255.255.0". Amândouă specifică orice adresă IP de la 199.95.207.0 până la 199.95.207.255 inclusiv; cifrele dupa "/" spun care părți din adresa IP sunt semnificative. "/32" sau "/255.255.255.255" este default (se potrivește cu toata adresa IP).

ZoneAlarm: Adresele sursă și destinație pot fi specificate în mai multe moduri: prin nume, adresa ip, interval de adrese ip, subnet cu specificaea adresei IP și prin gatway cu specificarea adrese MAC.

Specificarea protocolului:

Iptables: Protocolul poate fi specificat prin opțiunea "-p" (sau "–protocol").

Protocolul poate fi un număr (dacă se cunosc valorile numerice de protocol pentru IP) sau un nume pentru cazurile speciale de "TCP", "UDP" sau "ICMP". Nu contează dacă se folosește sau nu CAPS, așa ca "tcp" funcționează la fel ca și "TCP".

Numele protocolului poate fi precedat de "!", pentru a inversa, ca și "-p ! tcp" pentru a specifica pachetele care nu sunt TCP.

ZoneAlarm: Protocoalele disponibile care pot fi specificate sunt: TCP, UDP, TCP & UDP, ICMP și IGMP. O dată cu specificarea protocolului trebuie specificate și porturile (sursa/destinație).

Specificarea unei interfețe:

Iptables: Opțiunea "-i" (sau "–in-interface") și "-o" (sau "–out-interface") specifică numele interfaței cu care să corespundă. O interfață este dispozitivul fizic prin care intra pachetul ("-i") sau prin care iese pachetul ("-o"). Se poate folosi comanda ifconfig pentru a lista interfețele care sunt "sus" (i.e., în stare de funcționare în acel moment).

Pachetele care traversează chain-ul "INPUT" nu au o interfațî de ieșire, așa că orice regulă care folosește "-o" în acest chain nu se va potrivi niciodatî. In mod similar pachetele care travereseazî chain-ul OUTPUT nu au o interfață de intrare, așa ca orice regulă care folosește "-i" în acest chain nu se va potrivi niciodată.

Doar pachetele care traveresează chain-ul FORWARD au o interață de intrare și de iețire. Este perfect valabil specificarea unei interfețe care nu există; regula nu se va potrivi cu nici un pachet pana când interfața nu este activă. Aceast lucrueste extrem de folositor pentru legaturi PPP de dial-up (de obicei interfete ppp0) și asemanătoare.

Ca un caz special, un nume de interfata terminându-se cu "+" se va potrivi cu toate interfețele (fie că există sau nu) care incep cu acel șir de caractere. De exemplu pentru a specifica o regula care să se potrivească tuturor interfețelor PPP, optiunea -i ppp+ ar fi putea fi folosită.

ZoneAlarm: Realizează filtrarea traficului pe interfața principala a sistemului și după adresa IP a acesteia. Nu prezintă opținue de specificare a unei anumite interfete la fel ca utilitarul iptables (eth+, ppp+, loopback)

Opțiuni extinse TCP:

Opțiunile extinse TCP sunt disponibile în mod automat dacă se specifică opțiunea "-p tcp". Aceste opțiuni sunt următoarele (nici una dintre ele nu se va potrivi cu fragmente):

–tcp-flags – poate fi urmat de semnul optional "!", apoi de două șiruri de flag-uri, care permite filtrarea după anumite flag-uri. Primul șir de flag reprezintă mask-ul, flag-urile care se doresc a fi examinate. Al doilea șir reprezintă care dintre acestea ar trebui sa fie prezente.

De exemplu:

# iptables -A INPUT –protocol tcp –tcp-flags ALL SYN,ACK -j DROP

Aceasta comandă spune că toate flag-urile trebuiesc examinate ("ALL" este sinonim cu "SYN,ACK,FIN,RST,URG,PSH"), dar, doar SYN si ACK trebuie sa fie setate. Există de asemnea un argumente "NONE" similar pentru nici unul dintre acestea.

–syn – In mod opțional poate fi precedată de semnul "!", este o prescurtare pentru "–tcp-flags SYN,RST,ACK SYN"

–source-port – poate fi urmat de un optional "!", și fie de un singur port, fie de o șir de porturi. Porturile pot fi specificate fie folosind numere fie folosind nume, așa cum sunt specificate în /etc/services.Sirurile se specifică prin două porturi desparțite de ":", sau (pentru a specifica un șir de porturi mai mare sau egal cu un port dat) un port urmat de ":", sau (pentru a specifica o listă de porturi mai mică sau egală cu un port dat) un port precedat de ":".

–tcp-option – urmat de un opțional "!" și un număr, se potrivește pentru un pachet cu opțiunea TCP egală cu acel număr. Un pachet care nu are un header complet TCP este ignorat automat dacă este facută încercarea de examinare a headerelor TCP.

Opțiuni extinse UDP:

Aceste opțiuni sunt automat disponibile atunci când se specifică "-p udp". Acestea sunt: "–source-port", "–sport","–destination-port" și "–dport" care au fost detaliate mai sus.

Opțiuni extinse ICMP

Aceste opțiuni sunt automat disponibile atunci când se specifică "-p icmp". Există doar o singură opțiune nouă:

–icmp-type – urmat de un semn opțional "!", apoi de numele tipului icmp (ex. "host-unreachable"), sau tipul numeric (ex. "3"), sau tipul numeric și codul separate de "/" (ex. "3/3"). O listă a numelor de tipuri de pachete icmp se poate obține folosind "-p icmp –help".

ZoneAlarm:

Opțiunile extinse existente pentru protocoalele TCP,UDP și ICMP sunt mai puține la numar față de cele prezentate în cazul utilitarului iptables și anume: pentru protocolul TCP și UDP se pot specifica doar portul sursă și portul destinație iar pentru protocolul ICMP se poate specifica doar tipul dintr-o lista predefinită.(Fig. 4.10)

Fig. 4.10. Adăugarea unei noi reguli de filtrare cu specificare de opțiuni.

Exemple:

Protecție pentru syn-flood:

# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

Pentru scannere de porturi clandestine:

# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT

Pingul morții:

# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT

Alte opțiuni ale utilitarelor:

Iptables: Cea mai folositoare opțiune este furnizată de modulul "state", care interpretează analizele detectorului de conexiuni ale modulului "ip_conntrack". Aceasta este foarte recomandată.

Specificarea modulului "-m state" permite folosirea unei opțiuni adiționale de stare "–state". Aceste stări sunt:

NEW – un pachet care creează o nouă conexiune.

ESTABLISHED – un pachet care aparține unei conexiuni deja stabilite (un pachet replica (replay), sau un pachet care pleacă al unei conexiuni care a primit replay-uri).

RELATED – Un pachet care este înrudit, dar care nu este parte a unei conexiuni existente, cum ar fi o eroare ICMP, sau (cu modulul FTP introdus), un pachet care stabilețte o conexiune FTP.

INVALID – Un pachet care nu a putut fi identificat pentru niste motive: aceasta include rămânerea fără memorie sau erori ICMP care nu aparțin nici unei conexiuni cunoscute. În mod normal aceste pachete ar trebui ignorate.

Un exemplu pentru aceasta puternică optiune de potrivire ar fi:

# iptables -A FORWARD -i ppp0 -m state –state ! NEW -j DROP

ZoneAlarm:

Utilitarul mai prezintă 2 opțiuni folositoare și anume cea de protecție a datelor personale, în care se pot adauga diverse tipuri da date confidențiale precum parole, pin-uri de la credit card, adrese de e-mail, adresa domiciliu, cont bancar etc; o dată adaugate în baza de date acestea vor fi detectate atunci când un program va încerca să le trimită în rețeaua Internet (exemplu: logarea pe un cont de e-mail din Internet Explorer) și va cere permisiunea pentru acest lucru; și cea de alertă și creare jurnal (Fig. 4.11) care realizează un jurnal al regulilor de filtrare din firewall, a controlului programelor, al spyware-ului, cuprinzând o serie de informații precum adresa IP sursa, port sursa, adresa IP destinație, port destinație, direcția pachtelor, protocol, data, rata, acțiune etc.

Fig. 4.11. Vizualizare jurnal firewall.

Exemplificare folosire opțiuni extinse:

Se dorește blocarea, de pe serverul curent, a conexiunilor la anumite serverele web de pe internet în scopul interzicerii conectării și descarcării de informații sau aplicații de pe acele servere. Pentru acest lucru se va proceda la construirea unei regului de filtrare care va fi adaugată în lanțul (chain-ul) standard OUTPUT. Prin aceasta regulă se va „spune” firewall-ului să oprească toate încercările de conectare la un anumit server care acceptă conexiuni pe portul 80 (web server).

În Fig. 4.12 se observă încercarea și reușita conectare la un server web Microsoft pentru descărcarea diverselor aplicații pentru platofrma Windows.

Fig. 4.12. Conectare la server web cu transfer de pachete.

Fig. 4.13. Adăugare regulă de filtrare și incercare nereusită de conectare la server web

În Fig. 4.13 se observă că, după adaugara regulei de filtrare la blocul OUTPUT, pentru blocarea tuturor cererilor de conectarea la serverul Microsoft cu ajutorul opțiunii –d ( adresa destinatie ), opțiunii –dport ( portul destinatie ) și procesul de conectare este refuzat.

Alte operații asupra unui intreg lanț (chain):

Stergerea unui lanț (chain):

Și stergerea unui lanț este deasemenea simplă, prin folosirea opțiunilor "-X" sau "–delete-chain".

# iptables -X test

Sunt câteva restriciții la șștergerea de lanțuri: acestea trebuie să fie goale și nu trebuie să fie ținta nici unei reguli. Nu se poate șterge nici unul dintre lanțurile incluse standard.

Dacă nu se specifică numele lanțului, atunci toate lanțurile definite de către utilizator vor fi șterse dacă acest lucru este posibil.

Stergerea tuturor regulilor unui lanț:

Există un mod simplu de a șterge toate regulile dintr-un lanț, folosind opțiunile "-F" (sau "–flush").

# iptables -F FORWARD

Dacă nu este specificat lanțul, atunci toate lanțurile vor fi șterse de reguli.

Listarea unui lanț:

Se pot lista toate regulile dintr-un lanț prin folosirea optiunii "-L" (sau "–list"). "refcnt-ul"(reference count) listat pentru fiecare lanț definit de către utilizator este numărul de reguli care au ca țintă acest lanț. Acesta trebuie sa fie zero (și chain-ul să fie gol) inainte ca acest lanț să poată fi șters.

Dacă numele lanțului este omis, toate lanțurile sunt listate, chiar și cele care sunt goale.

Există trei opțiuni care pot fi adăugate la "-L". Opțiunea "-n" (numeric) este foarte folositoare deoarece previne iptables în a încerca de rezolvare a IP-urilor în nume, care (dacă se folosește DNS ca în majoritatea cazurilor) va cauza mari intârzieri dacă DNS-ul propriu nu este setat corect, sau s-a filtrat cererile către DNS. Determină deasemenea ca porturile TCP și UDP să fie afișate ca numere în loc de nume.

Opțiunea "-v" arată toate detaliile regulilor, cum ar fi numărătoarele de pachete și biți, comparațiile TOS, interfața. Altfel, aceste detalii sunt omise.

Se poate observa faptul urmator: numarătoaiele pentru pachete și biți sunt afișate folosind sufixele "K", "M" sau "G" pentru 1000, 1,000,000 și respectiv 1,000,000,000. Folosirea opțiunii "-x" (expandare a numerelor) afișează numerele în formatul maxim, fară sa conteze mărimea acestora..

Fig. 4.14. Ștergere reguli; stergere bloc utilizator;

Resetarea numaratorului (counter):

Este folositoare posibilitatea de a putea reseta numarătoarele (counters). Aceasta poate fi facută cu opțiunea "-Z" (sau "–zero").

Setarea politicii (policy) unui bloc standard:

S-a explicat ce se intampla atunci când un pachet ajunge la capatul unui lanț inclus default și s-a exemplificatt mai devreme modalitatea în care un pachet parcurge lanțurile. În acest caz, politica lanțului determină soarta pachetului. Doar lanțurile incluse standard (INPUT, OUTPUT și FORWARD) au politici, deoarece dacă un pachet ajunge la capătul unui lanț definit de către utilizator, traversarea continuă în lanțul anterior.

Politica poate fi fie ACCEPT, fie DROP, de exemplu:

# iptables -P FORWARD drop

CONCLUZII

In final se poate afirma că la realizarea unei rețele de calculatoare nu este de ajuns conectarea fizică și logică a componentelor, ci, de abia după aceea vine munca cea mai grea și anume securizarea acelor componente și a întregii rețele pentru o mai buna funcționare, o mai mare stabilitate și o mai lungă durată de viață a acesteia.

Astfel pentru realizarea unei rețele sigure ar trebui să se țină seama de câteva nivele de securitate și anume: nivelul fizic și nivelul logic care cuprinde securitatea accesului la sistem, la cont, drepturile de acces, securitatea serviciilor prin controlul serviciilor și drepturile la servicii. In același timp 2 mari obiective trebuie luate în seamă: analiza vulnerabilităților, adică identificarea elementelor potențial slabe ale rețelei și definirea politicii de securitate în funcție de rezultatele obțiune din analiza vulnerabilităților.

Trebuie cunoscute foarte bine și metodele de atacuri asupra rețelelor. Acestea pot fi pasive în cadrul cărora intrusul observă informația ce trece prin ‘canal’, fără să interfereze cu fluxul sau conținutul mesajelor; și active în care intrusul se angajează fie în furtul mesajelor, fie în modificarea, reluarea sau inserarea de mesaje false.Cunoașterea foarte buna a acestora permite posibilitatea implementării unor mecanisme de securitate în rețelele de calculatoare chiar si de arie largă, în particular – Internet-ul cu ajutorul diverselor utilitare sau prin forțe proprii.

Conectarea unui calculator la Internet presupune, în general, folosirea sistemului de operare UNIX și a suitei de protocoale TCP/IP. Aceste componente au propriile lor probleme de securitate. Accesul la Internet presupune, însă, și folosirea unui set de câteva zeci de servicii, programe, cu numeroase probleme de securitate, fie datorită unor erori în software, fie datorită neîncorporării unor facilități de securitate potrivite. In general, pentru ca un utilizator să poată lua măsurile de securitate adecvate la conectarea în rețea, el trebuie să înțeleagă modul în care sistemul de operare UNIX lucrează cu Internet-ul. O soluție la aceste probleme ar putea fi folosirea unor firewall-uri pentru fiecare calculator dar si pentru protecția întregii rețele.

Un firewall este un sistem care impune o politică de control al accesului între două rețele. Un firewall reprezintă implementarea acestei politici în termeni de configurare a rețelei, unul sau mai multe sisteme gazdă și ruter-e cu funcțiuni speciale, alte măsuri de securitate, cum ar fi autentificarea prin metode criptografice a clienților.Cu alte cuvinte, un firewall este un mecanism folosit pentru a proteja o rețea sigură din punctul de vedere al securității de una

nesigură, în care nu putem avea încredere.

Cel mai simplu și primul tip de firewall ar fi filtrarea de pachete. Tot traficul Internet este transmis în formă de pachete. Un pachet este o cantitate de date de dimensiune limitată pentru a ușura prelucrarea lui. Când sunt transmise cantități mari de date, acestea sunt împărțite în mai multe pachete numerotate care la partea de recepție sunt reasamblate. Tot traficul Internet : fișierele transferate, paginile web, mesajele electronics sunt transmise în pachete.

O alta metodă de securizare a retelelor ar fi securitatea prin criptare, astfel toate informațiile care ar trebui trimise de la o rețea la alta prin intermediul internetului s-ar putea face criptat. Criptografia este știința scrierilor secrete. Ea stă la baza multor servicii și mecanisme de securitate folosite în internet, folosind metode matematice pentru transformarea datelor, în intenția de a ascunde conținutul lor sau de a le proteja împotriva modificării.

Există două tipuri de sisteme criptografice:

simetrice (cu cheie secretă) care folosesc aceeași cheie, atât la cifrarea cât și la descifrarea mesajelor.

asimetrice (cu chei publice) care folosesc chei distincte de cifrare și descifrare (dar legate una de alta). Una din chei este ținută secretă și este cunoscută doar de proprietarul ei. A doua cheie (perechea ei) este făcută publică, de unde și numele de criptografie cu cheie publică.

Algoritmii cu cheie secretă sunt caracterizati de faptul că folosesc aceeasi cheie atât în procesul de criptare, cât si în cel de decriptare. Algoritmul IDEA, algoritm cu cheie secretă, este cel mai bun algoritm din punct de vedere al securitații si este utilizat mult în INTERNET.

Algoritmii cu cheie publică folosesc două chei diferite, una pentru criptare, alta pentru decriptare. Deoarece este imposibilă deducerea unei chei din cealaltă, una din chei este făcută publică, fiind pusă la îndemâna oricui dorește să transmită un mesaj criptat.Algoritmul RASA

este un alt algoritm performant descoperit de un grup de cercetători de la MIT. Acest cifru cu chei publice reprezintă standardul în domeniul semnăturilor digitale si al cofidentialitații.

După cum s-a demonstrat și din partea aplicativă a lucrării, în concluzie se poate afirma că folosirea într-o rețea de calculatoare a unor firewall-uri, configurate corect după nevoile generale ale rețelei dar și după nevoile particulare ale fiecărui sistem pentru filtrare traficului, în paralel cu diverși algoritmi de criptare implementați cu ajutorul unor utilitare specializate să facă acest lucru, oferă o soluție bună de securitate a întregii rețele precum și o mai mare stabilitate, o mai bună funcționalitate si un număr mult mai mic de probleme care pot apărea pe parcurs.

BIBLIOGRAFIE

Floarea Nastase – “Rețele de calculatoare”, Editura ASE, 2005;

SamsNet – “Securitatea in internet”, Editura Teora, 2000;

McClure S., Scambray J., Kurtz G. – “Securitatea retelelor”, Editura Teora, 2001;

Parker T., Sportack M. – “TCP/IP”, Editura Teora, 2002;

Oprea D. – “Protecția și securitatea sistemelor informaționale”, Editura Polirom, 2002;

*** – Legea nr. 506/2004 privind prelucrarea datelor cu caracter personal și protectia vieții private în sectorul comunicațiilor electronice;

http://ase.md/~osa/publ/ro/pubro34/19.pdf;

http://facultate.regielive.ro/proiecte/calculatoare/criptografia_si_securitatea_retelelor-60792.html;

http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/ro/text/Linux-Packet-Filtering-HOWTO

http://www.linuxcumsa.ro/Linux/ghidul-administratorilor-de-rețea linux-#

#introducere_tcp_ip

http://www.slider.go.ro/texts/project1/cap3node14.html

BIBLIOGRAFIE

Floarea Nastase – “Rețele de calculatoare”, Editura ASE, 2005;

SamsNet – “Securitatea in internet”, Editura Teora, 2000;

McClure S., Scambray J., Kurtz G. – “Securitatea retelelor”, Editura Teora, 2001;

Parker T., Sportack M. – “TCP/IP”, Editura Teora, 2002;

Oprea D. – “Protecția și securitatea sistemelor informaționale”, Editura Polirom, 2002;

*** – Legea nr. 506/2004 privind prelucrarea datelor cu caracter personal și protectia vieții private în sectorul comunicațiilor electronice;

http://ase.md/~osa/publ/ro/pubro34/19.pdf;

http://facultate.regielive.ro/proiecte/calculatoare/criptografia_si_securitatea_retelelor-60792.html;

http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/ro/text/Linux-Packet-Filtering-HOWTO

http://www.linuxcumsa.ro/Linux/ghidul-administratorilor-de-rețea linux-#

#introducere_tcp_ip

http://www.slider.go.ro/texts/project1/cap3node14.html

Similar Posts