Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Firewall - paravan de protectie, Securitatea comunicatiilor - criptarea

Firewall


Un paravan de protectie poate tine la distanta traficul Internet cu intentii rele, de exemplu hackerii, viermii si anumite tipuri de virusi, inainte ca acestia sa puna probleme sistemului. In plus, un paravan de protectie poate evita participarea computerului la un atac impotriva altora, fara cunostinta dvs. Utilizarea unui paravan de protectie este importanta in special daca sunteti conectat in permanenta la Internet.

Un firewall este o aplicatie sau un echipament hardware care monitorizeaza si filtreaza permanent transmisiile de date realizate intre PC sau reteaua locala si Internet, in scopul implementarii unei 'politici' de filtrare. Aceasta politica poate insemna:

  • protejarea resurselor retelei de restul utilizatorilor din alte retele similare - Internetul -> sunt identificati posibilii 'musafiri' nepoftiti, atacurile lor asupra PC-ului sau retelei locale putand fi oprite.
  • Controlul resurselor pe care le vor accesa utilizatorii locali.

De fapt, un firewall, lucreaza indeaproape cu un program de routare, examineaza fiecare pachet de date din retea (fie cea locala sau cea exterioara) ce va trece prin serverul gateway pentru a determina daca va fi trimis mai departe spre destinatie. Un firewall include de asemenea sau lucreaza impreuna cu un server proxy care face cereri de pachete in numele statiilor de lucru ale utilizatorilor. In cele mai intalnite cazuri aceste programe de protectie sunt instalate pe calculatoare ce indeplinesc numai aceasta functie si sunt instalate in fata routerelor.



Solutiile firewall se impart in doua mari categorii: prima este reprezentata de solutiile profesionale hardware sau software dedicate protectiei intregului trafic dintre reteaua unei intreprinderi (institutii -> ex.: Universitatea 'Alexandru Ioan Cuza', Iasi) si Internet; iar cea de a doua categorie este reprezentata de firewall-urile personale dedicate monitorizarii traficului pe calculatorul personal.
Utilizand o aplicatie din ce-a de a doua categorie veti putea preintampina atacurile colegilor lipsiti de fair-play care incearca sa acceseze prin mijloace mai mult sau mai putin ortodoxe resurse de pe PC-ul dumneavoastra. In situatia in care dispuneti pe calculatorul de acasa de o conexiune la Internet, un firewall personal va va oferi un plus de siguranta transmisiilor de date. Cum astazi majoritatea utilizatorilor tind sa schimbe clasica conexiune dial-up cu modalitati de conectare mai eficiente (cablu, ISDN, xDSL sau telefon mobil), pericolul unor atacuri reusite asupra sistemului dumneavoastra creste. Astfel, marirea largimii de banda a conexiunii la Internet faciliteaza posibilitatea de 'strecurare' a intrusilor nedoriti.

Astfel, un firewall este folosit pentru doua scopuri:

  • pentru a pastra in afara retelei utilizatorii rau intentionati (virusi, viermi cybernetici, hackeri, crackeri)
  • pentru a pastra utilizatorii locali (angajatii, clientii) in retea.

Inainte de a construi un firewall trebuie hotarata politica sa, pentru a sti care va fi functia sa si in ce fel se va implementa aceasta functie.

Politica firewall-ului se poate alege urmand cativa pasi simpli:

  • alege ce servicii va deservi firewall-ul
  • desemneaza grupuri de utilizatori care vor fi protejati
  • defineste ce fel de protectie are nevoie fiecare grup de utilizatori
  • pentru serviciul fiecarui grup descrie cum acesta va fi protejat
  • scrie o declaratie prin care oricare alte forme de access sunt o ilegalitate

Politica va deveni tot mai complicata cu timpul, dar deocamdata este bine sa fie simpla si la obiect.

Firewallurile pot fi clasificate dupa:

  • Layerul (stratul) din stiva de retea la care opereaza
  • Modul de implementare

In functie de layerul din stiva TCP/IP (sau OSI) la care opereaza, firewall-urile pot fi:

  • Layer 2 (MAC) si 3 (datagram): packet filtering.
  • Layer 4 (transport): tot packet filtering, dar se poate diferentia intre protocoalele de transport si exista optiunea de 'stateful firewall', in care sistemul stie in orice moment care sunt principalele caracteristici ale urmatorului pachet asteptat, evitand astfel o intreaga clasa de atacuri
  • Layer 5 (application): application level firewall (exista mai multe denumiri). In general se comporta ca un server proxy pentru diferite protocoale, analizand si luand decizii pe baza cunostintelor despre aplicatii si a continutului conexiunilor. De exemplu, un server SMTP cu antivirus poate fi considerat application firewall pentru email.

Desi nu este o distinctie prea corecta, firewallurile se pot imparti in doua mari categorii, in functie de modul de implementare:

  • dedicate, in care dispozitivul care ruleaza software-ul de filtrare este dedicat acestei operatiuni si este practic 'inserat' in retea (de obicei chiar dupa router). Are avantajul unei securitati sporite.
  • combinate cu alte facilitati de networking. De exemplu, routerul poate servi si pe post de firewall, iar in cazul retelelor mici acelasi calculator poate juca in acelati timp rolul de firewall, router, file/print server, etc.

Un firewall poate sa:
- monitorizeze caile de patrundere in reteaua privata, permitand in felul acesta o mai buna monitorizare a traficului si deci o mai usoara detectare a incercarilor de infiltrare;
- blocheze la un moment dat traficul in si dinspre Internet;
- selecteze accesul in spatiul privat pe baza informatiilor continute in pachete.
- permita sau interzica accesul la reteaua publica, de pe anumite statii specificate;
- si nu in cele din urma, poate izola spatiul privat de cel public si realiza interfata intre cele doua.



De asemeni, o aplicatie firewall nu poate:
- interzice importul/exportul de informatii daunatoare vehiculate ca urmare a actiunii rautacioase a unor utilizatori apartinand spatiului privat (ex: casuta postala si atasamentele);
- interzice scurgerea de informatii de pe alte cai care ocolesc firewall-ul (acces prin dial-up ce nu trece prin router);
- apara reteaua privata de utilizatorii ce folosesc sisteme fizice mobile de introducere a datelor in retea (USB Stick, discheta, CD, etc.)
- preveni manifestarea erorilor de proiectare ale aplicatiilor ce realizeaza diverse servicii, precum si punctele slabe ce decurg din exploatarea acestor greseli.



Securitatea comunicatiilor - criptarea


In prezent, una din problemele comunicatiei datelor o reprezinta securitatea transmisiei si receptiei lor.

Securitatea reprezinta un proces - un mod de a gandi legat de sisteme, retele, utilizatori si aplicatii care imbratiseaza un set de tehnologii. Setul minim de cerinte pe care trebuie sa le respecte o aplicatie ce utilizeaza sistemele bazate pe securitate sunt:

Confidentialitatea: mentinerea caracterului privat al informatiei
Integritatea: dovada ca respectiva informatie nu a fost modificata
Autenticitatea: dovada identitatii celui ce transmite mesajul
Non-repudierea: siguranta ca cel ce genereaza mesajul nu poate sa-l denigreze mai tarziu
Toate aceste proprietati pot fi indeplinite prin utilizarea de chei publice criptografice. Criptografia este considerata a fi o arta sau stiinta de mentinere a mesajelor secrete, asigurand confidentialitatea prin criptarea unui mesaj utilizand chei asociate cu un algoritm. Cheia utilizata trebuie sa fie secreta ambelor parti, problema reprezentand-o managementul cheilor si mentinerea lor secreta. Criptografia are la baza codificarea mesajelor, un bloc fiind substituit prin altul, respectand anumite reguli. Codificarea se poate realiza in mai multe moduri acestea avand urmatoarele proprietati comune:

atat intrarile cat si iesirile sunt reprezentate ca stream-uri de octeti
criptarea unei date se realizeaza cu ajutorul unei chei
decriptarea datei se realizeaza tot cu o cheie
Criptarea se poate realiza cu chei simetrice sau asimetrice. Prima se realizeaza cu aceeasi cheie la criptare si la decriptare, iar cealalta cu chei diferite.

Criptarea asimetrica are avantajul ca una din chei (cea de criptare) poate fi facuta publica. Aceasta cheie de criptare poate fi transmisa oricui, in timp ce cheia de decriptare este detinuta de cel ce a criptat, fiind denumita cheie privata. Un alt avantaj al cheilor asimetrice este ca asigura identitatea. Daca o persoana X cripteaza un mesaj cu I cheie privata si transmitandu-l unei persoane Y, aceasta il poate decripta cu o cheia publica putem spune ca Y are certitudinea ca mesajul vine de la X. Aceasta idee are la baza semnaturile digitale.

Criptarea simetrica are avantajul vitezei, fiind foarte utila la criptarea fisierelor locale.

Combinand avantajele celor doua tipuri de algoritmi au aparut protocoalele hibride care functioneaza astfel :

Protocol 1.a. Criptarea mesajului

(1) Generarea cheii simetrice K

(2) Criptarea mesajului M cu cheia simetrica si obtinand mesajul M*

(3) Preluarea cheii publice

(4) Criptarea cheii simetrice cu cheia publica si obtinerea lui K*

(5) Transmiterea perechii

Protocol 1.b. Decriptarea mesajului

(1) Receptionarea mesajului si separarea celor doua campuri

(2) Decriptarea lui K* cu ajutorul cheii private proprii pentru obtinerea lui K

(3) Decriptarea lui M* cu K pentru obtinerea lui M

In acest caz se genereaza cate o cheie separata pentru fiecare sesiune de mesaje cunoscuta sub numele de cheie sesiune . Criptarea mesajelor ofera confidentialitate, dar acest lucru nu este suficient. In cazul unei transmisii sau receptii trebuie sa existe certitudinea ca cel ce a generat mesajul este o persoana autorizata, motiv care a dus la adaugarea de noi proprietati cum ar fi integritatea si autentificarea, acestea fiind asigurate cu ajutorul semnaturii digitale.

Pentru a intelege modul de functionare este nevoie de cunoasterea unui al treilea algoritm si anume functiile de hashing. Acestea, spre deosebire de algoritmii de criptare si decriptare realizeaza doar functia de criptare iar mesajul original nu va fi recuperat niciodata. In principiu, un mesaj are intotdeauna aceeasi valoare dupa aplicarea functiei si este imposibil ca doua mesaje oarecare sa genereze aceeasi valoare. Prin utilizarea unei astfel de functii se poate obtine o autentificare fara a cripta intreg mesajul cu acea cheie privata astfel:



Protocol 2.a. Semnarea unui mesaj

(1) Efectuarea de hashing asupra mesajului M si obtinerea valorii H

(2) Criptarea lui H cu cheia privata (a celui ce transmite) si obtinerea semnaturii S

(3) Transmiterea perechii

Protocolul 2.b. Verificarea unui mesaj semnat

(1) Receptia si separarea lor

(2) Efectuarea de hashing asupra lui M si obtinerea valorii H'

(3) Preluarea cheii publice apartinand celui ce a transmis

(4) Decriptarea lui S cu cheia publica si obtinerea lui H''

(5) Compararea lui H' cu H''

Daca H' si H'' sunt identice, mesajul a fost verificat corect, iar daca nu, exista o eroare.

Pentru a putea construi cheia ce se utilizeaza in timpul transmisiei se apeleaza la 'o treia parte' de incredere denumita Autoritate Certificatoare (CA - Certification Authority). Ea genereaza un Certificat Digital ce genereaza o cheie publica. Cheia nu trebuie sa contina ambiguitati, ingloband datele personale care apoi sunt impachetate si semnate.

Un Certificat Digital este un document ce contine patru componente mari:

o cheie publica
informatia ce leaga cheia publica de detinatorul ei
informatia de validitate a certificatului
semnatura digitala
Certificatele sunt clasificate ca: certificate self-signed si certificate CA-signed. Primul este semnat de detinatorul cheii iar al doilea de o alta persoana cu autoritate. Ele functioneaza ca si containere de chei publice iar informatia tipica include:

numele detinatorului,
e-mail-ul acestuia,
numele companiei,
telefonul,
informatii legate de certificat,
un numar serial,
un indicator de nivel de incredere,
data a generarii,
data a expirarii.
Informatia colectata si detinuta de proprietar este referita de nume distincte (sau Dname). Un certificat contine doua Dname: al detinatorului si al celui ce l-a generat.

Non-repudierea este o alta proprietate a securitatii oferind certitudinea ca cel ce transmite mesajul nu poate sa nege mai tarziu ce a transmis.

Din cele prezentate putem sa observam ca: integritatea, confidentialitatea si non - repudierea sunt asigurate prin criptografia cheilor publice. Pentru aceasta trebuie insa sa se stie: cine genereaza certificatul, unde este stocata cheia si unde se gasesc certificatele? Un certificat digital bazat pe infrastructura cheilor publice (PKI - Public Key Infrastructure ) asigura rezolvarea tuturor problemelor.

Componentele PKI sunt :

Autoritatea Certificatoare (CA): responsabila cu generarea si revocarea certificatelor
Autoritatea Registratoare (RA): responsabila cu verificarea constructiei generate de cheile publice si identitatea detinatorilor.
Detinatorii de Certificate (subiectii) : Oameni, masini sau agenti software care detin certificate si le pot utiliza la semnarea documentelor.
Clientii: ei valideaza semnatura digitala si certificarea de la un CA.
Depozitele: stocheaza si fac accesibile certificatele si Listele de Revocare a Certificatelor (CRLs -Certificate Revocation Lists)
Politicile de securitate : definesc procesele si principiile de utilizare a criptografiei.
Dintre functiile realizate cu ajutorul PKI putem mentiona:

Inregistrarea : este un proces in care cel ce doreste sa obtina un certificat de la CA isi prezinta atributele sale. Acestea sunt verificate iar apoi se elibereaza certificatul .

Certificarea: este procesul in care CA elibereaza certificatul ce contine cheia publica subiectului apoi il depune intr-un depozit public.

Generarea Cheilor: in multe cazuri subiectul genereaza o pereche de chei in mediul sau, inainte de a transmite cheia publica la CA pentru certificare. Daca CA raspunde pentru generarea cheilor, acestea sunt oferite subiectului ca un fisier criptat sau token fizic asemeni unui smartcard.

Recuperarea Cheilor: in unele implementari PKI necesita ca toate cheile schimbate si/sau criptate sa fie depuse intr-un depozit securizat. Ele sunt recuperabile daca subiectul pierde cheia, acest lucru revenind lui CA sau sistemului de recuperare.

Actualizarea Cheilor: toate cheile perechi si certificatele lor asociate trebuiesc actualizate la un interval regulat. In acest sens exista doua situatii care necesita acest lucru:

Data care este specificata in certificat ca data de expirare este depasita si se actualizeaza.
Cheia privata a uneia din entitati din PKI este compromisa.
In acest caz PKI trebuie sa anunte ca vechiul certificat nu mai este valid si urmeaza sa-l inlocuiasca. Una din cai este de pre-generare si stocare securizata a perechilor de chei pentru astfel de situatii. Actiune ce duce la informarea fiecarui utilizator de acest lucru. Alta cale este metoda 'out-of-band' unde cu ajutorul telefonului, faxului, scrisorii se transmite acea cheie.
Certificarea incrucisata: permite utilizatorilor dintr-un domeniu administrativ sa utilizeze certificate generate de un CA operational in alt domeniu. Procesul implica un CA (CA_1) ce ofera o certificare pentru alt CA(CA_2). Acest certificat contine cheia publica CA asociata cu cea privata pe care CA_1 o utilizeaza, lucru ce permite subiectilor certificati prin CA_2 sa accepte certificatele generate de CA_1 sau orice CA subordonat.



Revocarea: apare in momentul expirarii perioadei de validitate care poate aparea cand: subiectul isi schimba numele, angajatul paraseste compania, cheia privata este compromisa. In cadrul standardului X.509, pentru a revoca un certificat se utilizeaza Lista Revocarilor Certificatelor (CRL - Certificate Revocation List). Aceasta lista identifica certificate si sunt semnate de CA.

Criptarea prin chei publice si implementarea lor in certificate digitale bazate pe sisteme de securitate se face pe baza unor retele standardizate si protocoale cum ar fi:

SSL (Secure Sockets Layer) - este un protocol non-proprietar deschis, dezvoltat de Netscape si care asigura securitate in comunicatii. Este acceptat de standardul WEB pentru autentificare si criptare client-server utilizand ca protocol de transport TCP/IP si poate rula pe protocoale ca HTTP, Telnet. El utilizeaza chei publice criptografiate.

Principiul de functionare este urmatorul:

(1) Clientul se conecteaza la un server SSL

(2) Clientul cere sa initieze o sesiune securizata

(3) Serverul intoarce: pot / nu pot suporta SSL

(4) Clientul si serverul comunica informatia securizata pas cunoscut sub denumirea de 'handshaking' .

(5) Clientul specifica ID-ul sesiunii, algoritmii de criptare si metodele de compresie.

(6) Serverul poate face selectia utilizand aceasta informatie si schimba daca este nevoie certificatele

(7) Serverul specifica o cheie a sesiunii apropiata de algoritmii de criptare alesi la 'handshaking'.

(8) Clientul si serverul comunica in securitate.

O sesiune SSL implica doua protocoale separate : SSL Record Protocol si SSL Handshake Protocol. Primul controleaza transmisia datelor in cadrul sesiunii iar celalalt schimbul de mesaje intre client si server cand stabilesc prima data conexiunea. Tehnica criptarii genereaza multe pachete, incetinind transmisia.

SSL 3.0 este cel mai utilizat si suportat de majoritatea WEB si serverelor Internet .

TLS (Transport Layer Security) - este ultima versiune SSL.

S/MIME (Secure Multi-Purpose Internet Mail Extensions) - este un standard utilizat in transmiterea de e-mail in securitate. Permite criptarea informatiei si include certificatul digital ca o componenta in mesaj. El asigura functiile:

Confidentialitate, doar cel ce receptioneaza poate citi posta
transmisia nu poate fi alterata
clientul poate semna si include semnatura care garanteaza receptia
utilizeaza etichete pentru controlul accesului la mesajele securizate.
permite mesajelor criptate sa fie transmise prin agenti intermediari care le pot cripta si transmite la recipientele dorite.
S/MIME ofera integritate si autentificare oricarui pachet e-mail si in prezent a este implementat la nivel industrial.

WTLC - este o versiune wireless al standardului TLS transformarea fiind bazata pe necesitatea suportarii datagramelor in mediile de banda larga. Pentru aceasta el utilizeaza un handshake optimizat prin refresh al cheilor dinamice. Acesta permite cheilor criptate sa fie actualizate regulat intr-o sesiune.

OCSP (On line Certificate Status Protocol) - specifica o sintaxa mesaj cerere-raspuns intre aplicatia client care solicita revocarea certificatului si aplicatia server care cunoaste starea certificatului revocat. OCSP server poate asigura informatii aditionale accesibile prin CRL.

Principiul functionarii este urmatorul :

(1) Aplicatia transmite cererea de a cunoaste starea certificatului la serverul OCSP, acesta transmite o semnatura digitala care reprezinta 'bun', 'revocat' sau 'necunoscut'

(2) Cel identificat ca 'bun' indica la minim ca certificatul nu a fost revocat la momentul cererii, ulterior el putand aparea ca revocat

(3) 'revocat' indica ca respectivul certificat a fost revocat

(4) 'unknown' indica ca nu cunoaste respectivul certificat.

Din cele prezentate se observa ca in cazul dezvoltarii de aplicatii ce utilizeaza Internetul sau Intranetul, cerintele unei bune securitati sunt confidentialitatea, integritatea, autentificarea si non-repudierea. Toate acestea se realizeaza prin utilizarea cheilor publice criptografiate in Certificate Digitale si care utilizeaza protocoale ca SSL sau S/MIME .