Tehnici, Servicii Si Solutii de Securitate Pentru Intraneturi Si Portaluri

1. INTRODUCERE

2. CRIPTOGRAFIA

2.1 Caracteristici generale

2.2 Criptografia cu cheie secretă

2.3 Criptografia cu cheie publică

2.4 Managementul cheilor și distribuția acestora

2.5 Funcțiile Hash

2.6 Utilizarea semnăturilor digitale.

Riscuri de securitate

2.7 Certificate digitale. Riscuri de securitate

3. TEHNICI, SERVICII ȘI SOLUȚII DE SECURITATE

PENTRU INTRANETURI ȘI PORTALURI

3.1 Autentificarea Kerberos V5

3.1.1 Cum funcționează Kerberos V5

3.1.2 Riscuri de securitate în Kerberos

3.2 Autentificarea SSL/TLS

3.2.1 Legătura SSL-HTTP

3.2.2 Cum funcționează SSL

3.2.3 Performanța SSL

3.2.4 Riscuri de securitate în SSL

3.3 Autentificarea NTLM

3.4 Comparație Kerberos – NTLM

3.5 Secure Shell ( SSH)

3.5.1 Autentificarea prin SSH

3.5.2 SSH 1

3.5.3 SSH 2

3.5.4 Algoritmii de criptare utilizați

3.5.5 Riscuri de securitate ale SSH

Securitatea poștei electronice

Sistemul PGP. Riscuri de securitate

3.6.2 Standardul S/MIME

4.2.1 Funcționarea S/MIME

4.2.2 Riscuri de securitate ale S/MIME

5. UTILIZAREA FIREWALL-URILOR ÎN INTRANETURI

Bibliografie:

Pagini 44

=== l ===

1. INTRODUCERE

Majoritatea aplicațiilor de securitate pot fi privite în funcție de serviciile generale pe care le pot oferi. Aplicațiile de securitate sunt instalate pentru a oferi un nivel de bază al securității sau funcții care îmbunătățesc securitatea operațională dintr-o organizație.

Între serviciile de securitate sunt cuprinse și următoarele:

– auditarea – un mecanism (de obicei un sistem de jurnalizare) care înregistrează evenimentele care pot să includă accesul utilizatorilor și al fișierelor;

– autentificarea – un mecanism prin care se identifică în mod pozitiv un utilizator prin cererea unor date de identificare (parolă, smart card, amprente, date biometrice, etc.);

– autorizarea – resursele pe care un utilizator le poate accesa după ce a fost autentificat;

– disponibilitatea – disponibilitatea unei resurse. Un atac împotriva disponibilității unui sistem este cunoscut sub numele de Denial of Service (DoS).

– confidețialitatea – protecția informațiilor private sau sensibile;

– integritatea – protecția datelor împotriva modificărilor neautorizate. Acest lucru este important mai ales în instituțiile financiare;

– nerepudierea – un mecanism de prevenire a fraudelor prin care se dovedește că un utilizator a executat o anumită acțiune;

Tipuri de atacuri la securitate:

-atacuri pasive: interceptarea mesajelor si analiza traficului;

-atacuri active: falsă identitate a unei entități participante la comunicare, capturarea de date și repetarea lor pentru a studia comportamentul entității de destinație, modificarea mesajelor, împiedicarea accesului la servicii în cadrul gestionării rețelei.

Figura 1.1 indică tipuri de amenințări la adresa securității comunicării:

Tipurile de atacuri pot fi:

Întreruperea: Un element al sistemului este distrus sau devine neutilizabil. Aceasta înseamnă distrugerea unei piese hardware, ca de exemplu hard discul, sau tăierea unei linii de comunicație.

Intercepția: O entitate neautorizată are acces într-o rețea. O entitate neautorizată poate fi o persoană, un program sau un calculator. Exemple de acest fel pot fi capturarea datelor dintr-o rețea sau copierea neautorizată a unor fișiere sau programe.

Modificarea: O entitate neautorizată poate schimba date într-un fișier de date sau poate modifica conținutul mesajelor ce sunt transmise în rețea.

Inserarea de mesaje false: O entitate neautorizată poate să insereze mesaje false într-o rețea sau să adauge înregistrări noi într-un fișier de date.

Lucrarea de față are ca obiectiv oferirea unor soluții pentru securizarea intraneturilor și portalurilor. Subiectul lucrării este dezvoltat pe parcursul a trei capitole. Capitolul Criptografia prezintă noțiunile fundamentale ale criptografiei moderne, tehnicile de criptare simetrică și asimetrică și managementul cheilor. Deasemenea sunt descrise modalitățile de utilizare și riscurile de securitate ale semnăturilor digitale și ale certificatelor de autentificare.

În capitolul Tehnici, servicii și soluții de securitate pentru intraneturi și portaluri sunt descrise protocoalele de autentificare, realizându-se o comparație între autentificarea Kerberos și NTLM. În continuare sunt prezentate caracteristicile securității poștei electronice, modul de utilizare al sistemului PGP și standardul S/MIME. Ultimul subcapitol prezintă arhitectura firewall și riscurile de securitate cu privire la utilizarea firewall-urilor.

2. CRIPTOGRAFIA

2.1 Caracteristici generale

Toate aplicațiile de securitate obțin nivelul dorit de protecție prin utilizarea criptografiei.

Criptografia este arta și știința de a ține secrete datele, prin utilizarea criptării folosind un algoritm specific.

Dezvoltarea societății informaționale, care a dus la o creștere impresionantă a volumului de informație preponderent economică vehiculată în rețelele de calculatoare, a accelerat dezvoltarea și mai ales utilizarea instrumentelor criptografiei moderne. Rolul criptografiei moderne este de a asigura prin mijloace matematice specifice, atât în teorie cât și în practică, cele patru caracteristici fundamentale ale informației: confidențialitatea, integritatea, autenticitatea și non-repudierea. Criptografia modernă utilizează în principiu aceeași algoritmi ca și criptografia tradițională (transpoziția și substituția), dar accentul cade pe complexitatea algoritmilor. Obiectivul criptografic din actuala perioadă este de a concepe algoritmi de criptare atât de complecși și de ireversibili încât chiar și în situația în care atacatorul (sau criptanalistul) având la dispoziție cantități mari de text criptat la alegerea sa, el să nu poată face nimic fără cheia secretă.

Un algoritm (numit și cifru) este un proces matematic sau o serie de funcții prin care se amestecă datele. Cei mai mulți algoritmi utilizează chei, astfel încât algoritmii pot să nu fie unici pentru o tranzacție, iar detaliile algoritmilor utilizați să nu fie secrete.

Termenul cheie se referă la informația necesară pentru a cripta sau decripta datele. Securitatea unei chei este deseori discutată în termeni de lungime sau biți ai acesteia, dar o cheie de mărime mare nu garantează securitatea de ansamblu a sistemului.

Sistemele criptografice sunt clasificate după trei criterii diferite:

1. După tipul operațiilor utilizate la cifrare:

– substituția: fiecare element al textului clar este înlocuit cu un alt element;

– transpoziția: elementele textului clar sunt rearanjate.

Cerința principală pentru ambele operații este ca algoritmul să fie reversibil, adică să nu se piardă informația.

2. Modul de procesare al textului clar:

– criptare bloc

– criptare continuă.

3. Numărul de chei utilizate:

– cu cheie unică sau secretă (criptare convențională sau simetrică)

– cu două chei (criptare cu cheie publică sau asimetrică)

Criptanaliza reprezintă procesul de găsire a textului clar sau a cheii. Strategia folosită de criptanalist depinde de natura schemei de criptare și de informația disponibilă. O schemă de criptare este sigură dacă costul decriptării depășește valoarea informației criptate sau dacă timpul necesar spargerii cifrului depăseste timpul de valabilitate al informației.

2.2 Criptografia cu cheie secretă

Criptarea cu cheie secretă, cunoscută sub numele de criptare simetricã, utilizează o singură cheie pentru a cripta sau decripta datele. Securitatea algoritmului cu cheie secretă este deseori legată de cât de bine este păstrată sau distribuită cheia secretă.

Algoritmii de chei secrete sunt împărțiți în algoritmi de bloc (block cipher), care procesează datele în blocuri măsurate la un moment dat, sau algoritmi de șiruri (stream cipher), care procesează la un moment dat un singur byte. Algoritmii de bloc excelează în criptarea datelor de lungime fixă, în timp ce algoritmii de stream-uri sunt utilizați îndeosebi la criptarea stream-urilor aleatoare de date, precum traficul de rețea între două routere.

Între avantajele criptării cu cheie simetrică se numără rapiditatea procesului de criptare și simplitatea utilizării acestuia. Dezavantajele sunt legate de distribuirea în siguranță a cheii secrete și de managementului cheilor. Printre exemplele cele mai întâlnite de algoritmi cu cheie simetrică cu criptare în bloc se numără Data Encryption Standard (DES), International Data Encryption Algorithm (IDEA), CAST-128 (numit după inventatorii acestuia – Carlisle, Adams, Stafford, Tavares) și Blowfish. Printre algoritmii de criptare a stream-urilor se numără Ron’s Cipher 4 (RC4) și Software-Optimized Encryption Algorithm (SEAL).

Data Encryption Standard (DES) – Algoritmul DES este o combinație complexă folosind două blocuri fundamentale în criptografie: substituția și permutarea (transpoziția). Acest cifru bloc acceptă un bloc de 64 de biți la intrare și generează un bloc cifrat de 64 biți. DES este un algoritm simetric. Același algoritm și aceeași cheie sunt folosiți atât la criptare cât și la decriptare.

Algoritmul este constituit din 16 cicluri repetate ale blocurilor fundamentale. Textul inițial este descompus în blocuri de 64 de biți. Cheia este de 64 biți din care doar 56 sunt efectivi, ceilalți fiind biți de paritate. Folosirea substituției provoacă confuzie prin sistematica substituire a unor biți cu alții. Transpozițiile provoacă difuzie prin reordonarea biților.

Algoritmul DES este considerat la această oră nesigur pentru multe aplicații. Acest fapt se datorează măririi considerabile a puterii de calcul de la confirmarea DES – ului ca un standard criptografic și până în prezent.

International Data Encryption Algorithm (IDEA) – Cifrul IDEA (International Data Encryption Algorithm) este un cifru bloc simetric realizat de către Xuejia Lai și James Massey în 1991 în Elveția. Cifrul IDEA utilizează o cheie de 128 de biți.

Acest algoritm utilizează trei operații matematice diferite de cele din cifrul DES: XOR, adunarea binară a întregilor pe 16 biți și multiplicarea binară a întregilor pe 16 biți. Aceste funcții sunt combinate în așa fel încât să producă o transformare complexă care este foarte greu de analizat și foarte greu de spart. Algoritmul IDEA este utilizat în produsul PGP (produs pentru criptarea mesajelor e-mail) și în alte produse comerciale.

CAST-128 – Cifrul CAST-128 este un cifru bloc simetric realizat în anul 1997 de către C. Adams și S. Tavares la Entrust Technologies. Cifrul CAST-128 utilizează chei de la 40 de biți la 128 de biți. Acest cifru a început să fie utilizat în diferite produse criptografice, inclusiv în PGP.

Blowfish – Acest cifru a fost dezvoltat în anul 1993 de către Bruce Schneier și a devenit unul dintre cele mai populare alternative la DES. Cifrul Blowfish a fost proiectat să fie ușor de implementat și să aibă o viteză de execuție mare. Este de asemenea un algoritm foarte compact căruia îi este necesară o memorie de 5 kB. O caracteristică importantă a cifrului Blowfish este aceea că lungimea cheii este variabilă și poate fi până la 448 de biți. Blowfish are 16 runde (iterații) și în practică se folosesc chei de 128 de biți.

Ron’s Cipher 4 (RC4) – RC4 este un cifru șir cu cheie de lungime variabilă, dezvoltat în 1987 de către Ron Rivest pentru RSA Data Security. În 1994 codul sursă al algoritmului este făcut public pe Internet.

Software-Optimized Encryption Algorithm (SEAL) – algoritm conceput la IBM de către P. Rogaway și D. Coppersmith. Lucrează cu o cheie de 160 de biți. Dezavantajul acestui algoritm, în comparație cu algoritmii de criptare pe blocuri, ca de exemplu IDEA, este că necesită o fază de inițializare înainte de a începe procedura de criptare sau decriptare a unui fișier. De aceea acest algoritm este mai lent decât algoritmul IDEA în cazul fișierelor de criptat scurte.

2.3 Criptografia cu cheie publică

Criptografia cu cheie publică sau criptografia asimetricã utilizează o pereche de chei. Una dintre aceste chei, cheia publică, este distribuită și publicată, în timp ce cealaltă cheie trebuie ținută secretă. Dată fiind numai cheia publică, este imposibil să se determine cheia secretă. Chiar și cu cel mai modern hardware, algoritmii de generare a cheilor publice utilizează intensiv procesorul. Datorită acestei probleme legate de rapiditatea algoritmului, aceștia nu sunt utilizați pentru a cripta datele brute. În schimb, datele sunt criptate cu un algoritm simetric. Multe din tehnologiile prezentate utilizează o combinație de algoritmi cu cheie publică și secretă în care criptografia cu cheia publică este utilizată pentru a securiza cheia simetrică care este utilizată la criptarea datelor brute.

Figura 2.2 Modelul simplificat al criptografiei cu cheie publică

O cheie simetrică care a fost securizată utilizând un algoritm cu cheie publică se numește plic digital. Cheile private corespunzătoare cheilor publice trebuie întotdeauna securizate. Unul dintre mecanismele utilizate pentru stocarea cheii private este smart card-ul – un dispozitiv electronic asemănător unei cărți de credit. Un smart card criptografic are abilitatea de a genera și stoca chei în el însuși, asigurându-se astfel faptul că cheia privată nu este expusă către mașina locală. Smart card-urile pot fi vulnerabile la atacuri, dar oferă o mult mai mare securitate față de stocarea cheilor private pe o mașină locală. Printre algoritmii cu cheie publică se numără RSA, ElGamal și Diffie-Hellman Key Exchange.

RSA – este îın acest moment cel mai cunoscut și uzitat sistem cu cheie publică. Aceasta se datorează în primul rând modalității foarte simple de criptare și decriptare, care se realizează similar, cu aceleași module de calcul (proprietate întâlnită în special la multe sisteme simetrice). Este un sistem de criptare cu cheie publică dezvoltat în anul 1977 de către profesorii de la MIT (Massachusetts Institute of Technology) Ronald L. Rivest, Adi Shamir și Leonard M. Adleman. Algoritmul RSA are la bază elemente de teoria numerelor și teoria grupurilor.

ElGamal – Este derivat din schema de distribuție a cheilor a lui Diffie și Hellman. Își bazează tăria criptării pe dificultatea calculării logaritmilor în câmpuri Galois mari. Este folosit doar pentru implementarea semnăturii electronice.

Diffie-Hellman Key Exchange – Scopul algoritmului este de a permite ca doi utilizatori să schimbe în mod sigur o cheie secretă care urmează a fi folosită pentru criptarea mesajelor. Algoritmul se limitează la schimbarea cheilor. Algoritmul se bazează pe dificultatea calculului algoritmilor discreți.

2.4 Managementul cheilor și distribuția acestora

Una din problemele fundamentale atât în sisteme de criptografie cu cheie publică cât și în cele cu cheie secretă este modalitatea de distribuire și menținere a cheilor utilizate pentru criptare și decriptare, în mod securizat.

Algoritmii cu cheie secretă depind de obținerea în mod securizat a cheii de către toate părțile implicate. De exemplu, e-mail-ul nu este considerat un mecanism securizat de distribuire a cheilor, deoarece terțe părți îl pot intercepta în tranzit.

O altă problemă a criptografiei cu cheie secretă este faptul că nu este un sistem la fel de scalabil ca și criptarea cu cheie publică. De exemplu, în cazul în care se dorește trimiterea unui mesaj criptat cu o cheie secretă către mai mulți destinatari, toți trebuie să primească câte o cheie prin care să se poată decripta mesajul. Astfel, expeditorul trebuie să se asigure de faptul că toți destinatarii recepționează cheia, că aceasta nu este interceptată sau compromisă în timpul tranzitului și că este păstrată în mod securizat în momentul atingerii destinației finale. Pentru fiecare mesaj nou trimis, procesul trebuie să se repete, cu excepția faptului când se dorește reutilizarea cheii inițiale. Reutilizarea cheii originale sporește șansele ca aceasta să fie compromisă, iar în cazul în care se dorește ca fiecare destinatar să aibă o cheie secretă, sistemul de distribuție nu mai este gestionabil.

Prin utilizarea criptografiei cu cheie publică are loc un singur schimb de chei publice pentru fiecare destinatar, iar acest lucru poate fi ușurat prin plasarea acestora într-un director precum Lightweight Directory Access Protocol (LDAP). Totuși, cheia publică trebuie schimbată printr-un mecanism de încredere și securizat, având grijă ca acea cheie să aparțină într-adevăr unei anume persoane și nu unui terț care impersonează persoana reală.

2.5 Funcțiile Hash

O funcție hash oferă un mijloc de a crea un conținut cu lungime fixă prin utilizarea unor date de intrare cu lungime variabilă. Acest lucru mai este cunoscut și sub numele de luarea unei amprente a datelor, iar datele de ieșire sunt cunoscute sub numele de message digest sau hash. În cazul în care datele se modifică după ce a fost calculată funcția hash, această valoare nu se va mai potrivi la o a doua calculare. Prin utilizarea unui algoritm hash criptografic, chiar și o mică modificare precum ștergerea sau adăugarea unei virgule dintr-o propoziție va crea mari diferențe între valorile hash. De asemenea, la polul opus, având la dispoziție un mesaj hash criptat cu un algoritm criptografic puternic, nu este posibilă determinarea mesajului inițial. Valorile hash rezolvă problema integrității mesajelor, deoarece prin aceste valori se poate verifica dacă datele au fost sau nu modificate. Între algoritmii de tip hash se numără Secure Hash Algorithm 1 (SHA-1) și Message Digest 5 (MD 5).

Secure Hash Algorithm 1 (SHA-1) – este o funcție hash care produce date de ieșire de lungime 160 biți. Este folosit în multe aplicații și protocoale cum ar fi: TLS, SSL, PGP, SSH sau S/MIME.

MD5 (Message Digest Algorithm 5) este o funcție criptografică de tip hash unidirecțional, care livrează ca rezultat o valoare fixă ca lungime de 128 Biți. Funcția MD5 a fost dezvoltată în 1991 de Ronald L. Rivest și publicată în 1992 în RFC 1321. Este utilizată drept componentă în unele scheme de semnătură electronică, deși tinde să fie înlocuită în acest scop de SHA-1 sau RIPEMD-160, funcții mai puțin sensibile la coliziuni. Valoarea calculată cu ajutorul funcției MD5 (pe scurt md5sum), este folosită însă pe scară largă drept sumă de control, la verificarea integrității fișierelor.

Securitatea generală atât a cheilor publice cât și a celor private poate fi discutată și în termeni de lungime. O cheie de mărime mare nu garantează securitatea de ansamblu a sistemului sau gestiunea securizată a cheilor. De asemenea, aceasta nu rezolvă alte probleme, precum generarea de numere aleatoare (slaba utilizare a generării de numere aleatoare a compromis implementarea SSL originală în browserul Netscape). Lungimea unei chei în sine indică numai faptul că algoritmul de criptare utilizat este unul puternic.

Trebuie notat faptul că lungimea cheilor publice și secrete diferă din punct de vedere al mărimii și securității. De exemplu, o cheie RSA de 512 biți oferă o securitate mai mică decât o cheie de 128 biți de tip Blowfish. Tabelul următor rezumă anumite relații agreate între cheile publice (RSA) și cele secrete, din punct de vedere al lungimii.

2.6 Utilizarea semnăturilor digitale.

Riscuri de securitate

O semnatură digitală pentru documentele electronice este echivalentă cu o semnatură olografă pentru documentele tipărite. Semnatura reprezintă un eșantion de date care demonstrează că o anumită persoană a scris sau a fost de acord cu acel document căruia i s-a atașat semnătura. De fapt, o semnătură digitală furnizează un grad mult mai mare de securizare decât semnatura olografă.

Termenul de semnãturã electronicã are interpretări mai largi, pornind de la semnături criptografice digitale până la o imagine scanată a unei semnături de mână. În ambele cazuri, se definește calea pentru utilizarea legală a semnăturilor digitale în comunicațiile electronice.

Semnăturile digitale pot ajuta la identificarea și autentificarea persoanelor, organizațiilor și a calculatoarelor prin Internet, putând fi utilizate și pentru a verifica integritatea datelor după terminarea tranzitului. Semnăturile digitale sunt asemănătoare semnăturilor de mână, care sunt utilizate zilnic pentru a identifica un individ într-o manieră legală. De exemplu, în momentul în care o persoană se decide asupra termenilor unui contract, includerea unei semnături de mână indică faptul că acea persoană este de acord cu termenii acelui contract. În continuare, persoana respectivă nu ar mai trebui să nege faptul că a semnat acel document sau că termenii acelui contract nu corespund dorințelor lui, decât în caz de falsificare. In mod asemănător, semnăturile digitale pot identifica persoana care a semnat o tranzacție sau un mesaj, dar spre deosebire de semnăturile de mână, o semnătură digitală poate ajuta în verificarea faptului că un document sau o tranzacție nu a fost modificată față de starea originală din momentul semnării. Deosebirea principală față de semnătura de mână este aceea că, în cazul în care sistemul a fost implementat corespunzător, semnătura digitală nu se poate falsifica. În condiții ideale, acest lucru poate însemna faptul că un mesaj semnat digital trebuie să aparțină persoanei a cărei semnătură apare în mesaj. Incapacitatea de a nega faptul că un mesaj sau o tranzacție a fost executată (semnată, în acest caz) se numește nerepudiere.

Semnătura digitală oferă trei servicii de securitate de bază: autentificare, integritate și nerepudiere. Semnăturile digitale obțin un grad ridicat de securitate prin utilizarea a două tehnici de criptografie: criptarea cu cheie publică și hashing. Crearea unei semnături digitale presupune hashing-ul datelor, apoi criptarea mesajului rezultat cu o cheie privată. Orice persoană care deține cheia publică corespondentă va fi capabil să verifice faptul că mesajul hash corespunde mesajului original.

Scopul semnăturilor digitale este acela de a identifica în mod pozitiv expeditorul unui mesaj și de a asigura faptul că datele nu au fost modificate. Dar, există și probleme care pot apărea în timpul instalării și utilizării acestei tehnologii în mod securizat. De exemplu, utilizarea unui algoritm de hash slab oferă o securitate scăzută în combinație cu un algoritm de criptare puternic. Din nefericire, simpla vizualizare a unui mesaj hash nu este suficientă pentru a detecta utilizarea unui algoritm slab.

Înțelegerea riscurilor asociate cu utilizarea semnăturilor digitale presupune înțelegerea limitărilor acestei tehnologii. Astfel, o semnătură digitală, când nu este legată de numele utilizatorului printr-un certificat digital, nu are nici o semnificație. Distribuirea securizată a semnăturii digitale este singura garanție a securității ei. În cazul în care este nevoie de o distribuire la scară a cheilor publice pentru verificarea semnăturilor digitale, trebuie creată o bază de date la care persoanele interesate să aibă acces de citire, în timp ce scrierea trebuie restricționată cu cele mai puternice tehnologii.

Poate cel mai mare risc al semnăturilor digitale este acordarea unei prea mari încrederi acestei tehnologii. Semnăturile de mână pot fi falsificate sau fotocopiate într-un nou document, dar acest lucru nu ar trebui să fie valabil într-un sistem de semnături digitale implementat în mod corespunzător. O semnătură de mână poate să ofere o certitudine până la ruperea modelului de încredere. Problema cu semnăturile digitale este aceea că nu se știe încă unde și când nu se mai poate vorbi de încrederea acordată sistemului.

2.7 Certificate digitale. Riscuri de securitate

Pentru a ști că o cheie publică utilizată pentru a crea o semnătură digitală aparține într-adevăr unei anumite persoane este necesar un mecanism care să ofere o legătură între cheia publică și persoana reală. Această funcție este îndeplinită de certificatele digitale.

Certificatele digitale pot oferi un nivel ridicat de încredere asupra faptului că persoana al cărei nume apare pe acel certificat are ca și corespondent o anumită cheie publică. Această încredere este realizată prin utilizarea unei terțe părți, cunoscută sub numele de Autoritate de Certificare (Certificate Authority – CA). Autoritatea de certificare semnează un certificat în calitate de garant pentru identitatea unei persoane al cărei nume apare pe certificatul respectiv. Formatul curent acceptat pentru certificate digitale este X.509v3.

Standardul X.509v3 definit în RFC 2459 descrie un format agreat de certificate digitale. Acest standard definește elementele unui certificat:

– Certificate Version – indică versiunea formatului unui certificat;

– Serial Number – un număr unic asignat de către autoritatea de certificare, utilizat pentru urmărirea certificatelor;

– Signature – identifică algoritmul de criptare și funcțiile de tip message digest suportate de CA;

– Issuer name – numele emitentului (al CA);

– Period of Validity – datele între care certificatul este valid. Această perioadă nu exclude ca certificatul să fie revocat;

– Subject – numele proprietarului certificatului;

– Subject’s Public Key Info – cheia publică și algoritmul asociat cu câmpul Subject;

– Issuer Unique ID – un câmp opțional utilizat pentru a identifica emitentul certificatului sau autoritatea de certificare. Utilizarea acestui câmp nu este recomandată în RFC 2459;

– Extensions – câmp opțional utilizat pentru extensii proprietare. Acest câmp nu este definit dar cuprinde articole precum: alte denumiri ale subiectului, informații pentru utilizarea cheilor și punctele de distribuție a listelor de revocare a certificatelor (Certificare Revocation List – CRL);

– Encrypted – acest câmp conține semnătura în sine, identificatorul algoritmului, hash-ul securizat al celorlalte câmpuri din certificat și o semnătură digitală a hash-ului.

Certificatele necesită mijloace de gestionare a creării acestora, distribuirea lor, stocarea centralizată, revocarea, backup-ul cheilor și actualizarea acestora. Acest sistem de management este cunoscut sub numele de infrastructura de chei publice (Public Key Infrastructure – PKI).

O infrastructura de chei publice este o arhitectură de securitate creată pentru a facilita instalarea tehnologiei de chei publice. Între componentele unui PKI se pot număra un depozit de certificate (de obicei un serviciu director compatibil LDAP), certificatele digitale, listele de revocare a certificatelor (CRL), software-ul pentru aceste aplicații, precum și aspectul uman al acestor proceduri. O PKI cuprinde câteva servicii de bază de securitate între care se numără autentificarea utilizatorilor, confidențialitatea și integritatea, ajutând de asemenea la implementarea nerepudierii. Funcția principală a unei autorități de certificare este aceea de a certifica faptul că perechea cheie publică / cheie privată aparține într-adevăr unui individ anume.

Obținerea certificatelor digitale se poate face în mai multe moduri, în funcție de scopul acestora:

– utilizarea Microsoft Certificate Services din Windows 2000/2003 pentru a instala certificate auto-emise.

– obținerea unor certificate de la un distribuitor de certificate. Unul dintre cei mai mari distribuitori este VeriSign. Acesta oferă certificate pentru S/MIME, SSL (client și server), Server Gated Cryptography (SGC) pentru instituții financiare, certificate de tip Authenticode pentru publicarea de software, etc.

Certificatele digitale pot reprezenta un mecanism puternic de autentificare, în special în momentul în care sunt stocate pe smart card-uri. Dar, pentru ca certificatele digitale să reprezinte o securitate adecvată, trebuie rezolvate mai întâi problemele de încredere.

În cazul în care funcția unei autorități de certificare este aceea de a certifica identitatea unui individ și de a oferi servicii de nerepudiere, acest lucru ridică și probleme de răspundere sau obligație.

O altă problemă cu certificatele digitale este reprezentată de faptul că listele de revocare a certificatelor (CRL) sunt verificate foarte rar, inclusiv de către browser-ele Web.

Revocarea unui certificat se poate realiza din mai multe motive, între care se numără compromiterea cheii, compromiterea autorității de certificare sau o schimbare a autorității de certificare. Problemele legate de distribuirea listelor de revocare a certificatelor nu au fost încă rezolvate pe deplin.

3. TEHNICI, SERVICII ȘI SOLUȚII DE SECURITATE

PENTRU INTRANETURI ȘI PORTALURI

3.1 Autentificarea Kerberos V5

Sistemul de autentificare și distribuție a cheilor Kerberos a fost dezvoltat la Massachusetts Institute of Technology (MIT) pentru a proteja serviciile de rețea oferite de proiectul Athena. Scopul Kerberos era să extindă noțiunea de autentificare, autorizare și contabilizare a mediului MIT. În conformitate cu planul tehnic al proiectului Athena, mediul consta în principal din:

Stații de lucru publice și private

o Stații de lucru publice în locuri cu securitate fizică minimă sau deloc;

o Stațiile de lucru private sunt sub controlul fizic și administrativ a indivizilor fără responsabilitate față de administrația centrală a rețelei;

O rețea în campus compusă din multiple LAN-uri de diferite tipuri conectate la un backbone. LAN-urile sunt dispersate spațial și vulnerabile la diferite atacuri, pe când backbone-ul este securizat fizic într-o anumită măsură.

Servere centrale situate în camere cu acces restricționat care rulează software care se presupune că nu conține cod ostil. Unele dintre aceste servere funcționează sub pază strictă, acestea fiind folosite ca servere de securitate.

Într-un astfel de mediu, riscurile în securitate provin în principal de la posibilitatea de a falsifica identitatea unui individ pentru a obține acces neautorizat la resursele sistemului. O stație de lucru – incluzând sistemul de operare și interfața de rețea este sub controlul total al utilizatorului care ar putea sa încerce să se substituie altui utilizator sau host.

Primele trei versiuni ale Kerberos au fost folosite doar în cadrul MIT. Acestea nu mai sunt folosite în prezent, de aceea nu ne vom concentra asupra lor în această lucrare. Prima versiune făcută publica a fost Kerberos V4, versiune ce a cunoscut o răspândire importantă în afara MIT. Ultima actualizare (cu numărul 10) a fost făcută în decembrie 1992, aceasta fiind versiunea finală până în prezent.

Unele medii necesită funcționalități neacoperite de Kerberos V4, iar altele au o structură diferită de modelul MIT. Ca rezultat, în 1989 a început lucrul la Kerberos V5, pe baza experienței acumulate cu Kerberos V4 și a discuțiilor cu administratorii de sisteme care au implementat Kerberos.

În septembrie 1993, Kerberos V5 a fost specificat ca standard Internet în RFC 1510 [KOHL93]. MIT a dezvoltat și testat Kerberos V5 pe Ultrix, SunOS, Solaris și Linux, fiind portat și pe alte sisteme de către terți.

Protocolul Kerberos V5 reprezintă principalul protocol de securitate pentru autentificare într-un domeniu, verificând atât identitatea utilizatorului cât și a serviciilor de rețea. Această dublă verificare este cunoscută și sub numele de autentificare reciprocă. Acest protocol este capabil să ofere servicii puternice de autentificare într-un mediu de calcul distribuit. Totodată, prin includerea lui ca protocol de autentificare implicit într-un domeniu Windows 2000/2003, a fost accelerat procesul de dezvoltare a aplicațiilor bazate pe acesta.

Modelul Kerberos se bazează pe faptul că aplicația client și aplicația server nu trebuie neapărat să-și acorde reciproc încredere, ci ambele trebuie să acorde încredere unui centru de distribuție a cheilor (Key Distribution Center – KDC). Kerberos oferă un sistem de mesaje criptate numite tichete, care asigură în mod securizat încrederea reciprocă dintre două mașini din rețea. Utilizând Kerberos, parolele nu mai sunt transmise în rețea, nici chiar în format criptat. În cazul în care un tichet Kerberos este interceptat, acesta rămâne protejat deoarece este criptat.

Odată ce o mașină client obține un tichet către un anume server, tichetul este păstrat pe mașina locală până la expirare, făcând astfel Kerberos un sistem de autentificare foarte eficient. În funcție de implementare, un tichet Kerberos expiră de obicei după opt ore. În mod implicit Kerberos utilizează criptarea cu cheie simetrică.

O implementare Kerberos standard are de obicei următoarele componente:

– Principal – un calculator, utilizator sau entitate care va fi autentificată;

– Realm (domeniu în Windows 2000/2003) – o grupare logică de obiecte de tip principal care va fi protejată de Kerberos. Toate conturile utilizatorilor și resursele protejate rezidă în interiorul unui realm Kerberos;

– Key Distribution Center (KDC) – partea din implementarea Kerberos care autentifică obiectele de tip principal. KDC distribuie chei secrete și mediază comunicația securizată între un calculator client și resursele din rețea. Cheile secrete sunt stocate în Key Distribution Center;

– Ticket Granting Service (TGS) – oferă tichete de tip sesiune pentru accesarea altor resurse dintr-un realm Kerberos. De obicei TGS rulează în Key Distribution Center;

– Ticket Granting Ticket (TGT, sau tichet utilizator în Windows 2000/2003 ) – un jeton de securitate care verifică faptul că o entitate a fost autentificată. TGT asigură faptul că utilizatorii nu mai trebuie să reintroducă parola după un login inițial, până la expirarea tichetului.

– Session Ticket (ST, sau tichet de serviciu în Windows 2000/2003) – un jeton de securitate care permite unui obiect de tip principal să acceseze resurse protejate. Pentru accesarea oricărei aplicații care utilizează Kerberos este necesar un tichet de sesiune valid.

3.1.1 Cum funcționează Kerberos V5

Mecanismul de securitate din Kerberos V5 emite tichete pentru accesarea serviciilor de rețea. Aceste tichete conțin date criptate, inclusiv o parolă criptată care confirmă identitatea utilizatorului față de serviciul accesat.

Un serviciu important în Kerberos V5 este Key Distribution Center (KDC) care rulează pe fiecare controler de domeniu parte a Active Directory, în care se stochează toate parolele clienților precum și alte informații.

Procesul de autentificare Kerberos V5 urmează pașii:

1. utilizatorul unui sistem client, utilizând o parolă sau un smart card, se autentifică față de KDC;

2. KDC emite clientului un tichet de tip Ticket Granting Ticket. Sistemul client utilizează acest jeton TGT pentru a accesa Ticket Granting Service (TGS), care este parte a mecanismului de autentificare dintr-un controler de domeniu;

3. TGS emite un tichet de serviciu către client;

4. clientul prezintă acest tichet serviciului de rețea accesat. Tichetul de serviciu dovedește atât identitatea utilizatorului către serviciu, cât și a serviciului față de client.

In Windows 2000/2003 serviciile Kerberos V5 sunt instalate pe fiecare controler de domeniu, iar clientul Kerberos este instalat pe fiecare stație de lucru și server. Fiecare controler de domeniu se comportă ca și un Key Distribution Center.

Un client utilizează Domain Name Service (DNS) pentru a localiza cel mai apropiat controler de domeniu, care va funcționa ca și KDC preferat pentru utilizator în timpul sesiunii de logon. În cazul în care KDC nu mai este disponibil, sistemul localizează un KDC alternativ, pentru autentificare.

Kerberos furnizează mai multe instrumente de management a bazei de date KDC. În domeniile mici, se poate utiliza setul de instrumente manuale de la consola administratorului. În domeniile mari se poate utiliza un sistem automat de management a serviciilor (SMS). În fiecare caz, funcțiile de management se realizează la distanță prin rețea, conexiunile la baza de date KDC fiind autentificate tot prin Kerberos. Actualizările se efectuează printr-un protocol care rulează între un client autentificat pe o stație și baza de date KDC. Există rutine de actualizare pentru adăugarea și dezactivarea intrărilor, precum și de a controla schimbări de parolă inițiate de utilizator sau administrator.

Figura 3.1 ilustrează modelul Kerberos fundamental și pașii corespunzători ai protocolului. Situația este în felul următor: pe partea stângă, un client rulează în numele utilizatorului. Pentru a folosi serviciile serverului aflat în partea dreaptă jos, clientul trebuie să se autentifice cu acesta. În această situație, este în sarcina KDC să ofere clientului credențiale pentru procesul de schimb de autentificare. Este important de remarcat că atât clientul cât și serverul nu au cunoștință de o cheie inițială de sesiune. De fiecare dată când clientul încearcă să se autentifice serverului, acesta se bazează pe KDC pentru generarea cheii de sesiune și distribuirea ei părților implicate.

Figura 3.1. Modelul Kerberos si pașii corespunzători protocolului

Având în vedere figura 3.1, pașii protocolului Kerberos V5 se pot formaliza după cum urmează:

1. CAS : U, TGS, L1, N1

2. AS C : U, Tc,tgs, {TGS, K, Tstart, Texpire, N1} KU

3. C TGS : S, L2, N2, Tc,tgs, Ac,tgs

4. TGS C : U, Tc,s, {S, K’, T’start, T’expire, N2} K

5. C S : Tc,s, Ac,s

6. S C : {T’} K’

Tc,tgs și Tc,s se referă la un TGT respectiv un bilet, iar Ac,tgs și Ac,s se referă la autentificatorii respectivi.

În pasul 1, C selectează un TGS și trimite un mesaj KRB_AS_REQ la AS. Mesajul include identificatorul utilizatorului (U), identificatorul TGS-ului selectat, durata de viață solicitată L1 pentru TGT și o valoare N1. În plus față de acestea, un mesaj poate specifica un număr de opțiuni, cum ar fi:

Dacă preautentificarea trebuie realizată

Dacă biletul solicitat se poate reînnoi sau retrimite.

Dacă biletele derivate ar trebui să fie postdatate sau să permită postdatarea.

Dacă un bilet reînnoibil va fi acceptat în locul unuia ne-înnoibil (dacă timpul de expirare nu poate fi satisfăcut).

După recepționarea mesajului KRB_AS_REQ, AS caută și extrage cheile secrete pentru U și TGS. Dacă este necesar, AS pre-autentifică cererea iar dacă aceasta eșuează, un mesaj de eroare corespunzător este returnat lui C. Altfel, AS selectează aleator o nouă cheie de sesiune K’ și returnează un mesaj KRB_AS_REP lui C în pasul 2. Mesajul include U, un Tc,tgs = {U, C, TGS, K, Tstart, Texpire} Ktgs și {TGS, K, Tstart, Texpire, N1} KU. Timpii de start și de expirare Tstart respectiv Texpire ale TGT-ului sunt setați în concordanțăcu politica de securitate a domeniului în așa fel încât se încadrează în timpul de viață L1 specificat în mesajul KRB_AS_REQ.

După recepționarea mesajului KRB_AS_REP, C aplică o funcție cu sens unic h la parola utilizatorului pwdU pentru a calcula cheia master a acestuia. KU = h(pwdU). Echipat cu această cheie, C poate decodifica {TGS, K, Tstart, Texpire} KU, și extrage TGS, K, Tstart, Texpire. Acum poate folosi acest TGT pentru a solicita un bilet de la TGS.

Schimbul TGS este inițiat ori de câte ori C dorește să obțină un bilet pentru server, reînnoiască său valideze un bilet existent sau chiar să obțină un bilet proxy. Cel puțin în primul caz, clientul trebuie să fi obținut deja un TGT prin schimbul AS. În pasul 3, C trimite mesajul KRB_TGS_REQ către TGS. Din nou, mesajul include informații pentru autentificarea clientului plus cereri pentru credențiale. Informațiile de autentificare constau în Tc,tgs și un autentificator corespunzător Ac,tgs = {C, T} K generat de C cu amprenta de timp T și cheia de sesiune K. În pasul 4, TGS returnează un mesaj KRB_TGS_REP care include un bilet Tc,s = {U, C, S, K’, T’start, T’expire} Ks pentru serverul S, precum și {S, K’, T’start, T’expire} K.

Din nou, schimbul AS se utilizează fie pentru a autentifica un client unui server, fie pentru a se autentifica reciproc un client și un server. În pasul 5, C trimite un mesaj KRB_AP_REQ către serverul S. Mesajul conține biletul Tc,s și un autentificator corespunzător Ac,s = {C, T’} K’, împreună cu unele informații de management.

Autentificarea se bazează pe timpul curent al serverului, a autentificatorului și a biletului. Dacă nu apare nici o eroare și dacă se cere autentificare reciprocă, S returnează un mesaj KRB_AP_REP în pasul 6. Acest mesaj include amprenta de timp T’, codificată cu cheia de sesiune K’ pe care S o cunoaște împreună cu C.

3.1.2 Riscuri de securitate în Kerberos

Un risc principal a Kerberos este aceea că rămâne vulnerabil la atacurile date prin „ghicirea” parolei. Dacă utilizatorul alege o parolă „slabă”, este posibil ca tichetul să fie colectat și decriptat, impersonându-se astfel utilizatorul. Parolele statice sunt cel mai mare punct de slăbiciune în orice sistem de securitate, deoarece utilizatorii nu aleg de obicei parole greu de găsit. Prin îmbinarea tehnologiei de criptare cu cheie publică cu Kerberos se face un pas important în înlăturarea acestei slăbiciuni.

De asemenea, Kerberos presupune faptul că gazdele nu au fost compromise. În esență, Kerberos este un model al gazdelor cu relații de încredere (sigure) într-o rețea nesigură. În cazul în care viața tichetului este setată prea lungă, protocolul devine nesigur prin expunerea unui tichet de serviciu pentru o perioadă de timp prea mare. Iar dacă viața tichetului este prea scurtă, aceasta poate avea un impact negativ asupra performanțelor și utilizării.

Utilizarea DES în Kerberos poate fi de asemenea o problemă, deoarece DES nu mai este considerat un algoritm sigur. Dar Kerberos permite și utilizarea altor algoritmi de criptare, mai puternici, precum Triple-DES.

Alte riscuri de securitate mai pot fi considerate și relațiile tranzitive de încredere și abilitatea de a înainta tichetele.

3.2 Autentificarea SSL/TLS

Secures Sockets Layer (SSL), tehnologia care permite utilizarea certificatelor digitale, este un protocol din nivelul transport care oferă o securitate deosebită de tip end-to-end, prin securizarea sesiunii din punctul de origine până în punctul destinație.

SSL se referă în general la securitatea comunicării între două părți. Acest lucru poate însemna comunicarea dintre un browser Web și un server Web, o aplicație email și un server e-mail sau chiar canalele de comunicație dintre două servere. SSL poate de asemenea să autentifice un server și, în mod opțional, un client. SSL a devenit astfel, metoda de facto pentru securizarea comerțului electronic prin Internet.

SSL este un protocol orientat pe conexiuni care necesită ca atât aplicația client cât și serverul să cunoască acest protocol. În cazul în care este necesar SSL la nivelul unui server, aplicațiile care nu pot să utilizeze acest protocol nu vor putea comunica cu acesta.

SSL oferă servicii de securitate printre care se numără confidențialitatea (privacy), autentificarea și integritatea mesajului. SSL oferă integritatea mesajului prin utilizarea unei verificări de securitate cunoscută sub numele de codul de autentificare al mesajului (message authentication code – MAC). MAC asigură faptul că sesiunile criptate nu sunt modificate în timpul tranzitului.

SSL oferă autentificarea serverului prin utilizarea tehnologiei de criptare cu cheie publică și, în mod opțional, poate autentifica anumiți clienți prin necesitatea existenței de certificate digitale la nivel de client. În practică, certificatele pentru clienți nu sunt disponibile pe scară largă deoarece nu sunt ușor portabile între mașini, pot fi ușor pierdute sau distruse, fiind în trecut și dificil de instalat în aplicațiile reale.

De asemenea, multe site-uri Web au găsit satisfăcătoare din punct de vedere al securității pentru cele mai multe cazuri, combinația de SSL utilizată împreună cu un nume de utilizator și o parolă.

Internet Engineering Task Force (IETF) este organizația responsabilă pentru dezvoltarea standardului SSL. Noul standard este cunoscut sub numele de Transport Layer Security (TLS), dezvoltat inițial de Netscape Communications Corporation. TLS 1.0 definit în RFC 2246, oferă îmbunătățiri minore față de SSL 3.0. In realitate TLS este SSL 3.1

Noile îmbunătățiri cuprind: raportarea unui număr de versiune, diferențe în tipurile de protocoale, tipuri de mesaje de autentificare, generarea cheilor și verificarea certificatelor. În plus, TLS elimină suportul pentru algoritmul Fortezza, o familie de produse de securitate care cuprinde soluțiile de securitate Personal Computer Memory Card International Association (PCMCIA). Deoarece TLS este un standard deschis, este de așteptat ca întreaga comunitate Internet să coopereze pentru îmbunătățirea performanței și securității acestuia.

3.2.1 Legătura SSL-HTTP

Sesiunile Web standard utilizează HyperText Transfer Protocol (HTTP) pentru a stabili canale de comunicație prin rețelele TCP/IP. SSL a fost creat ca și un protocol de securitate separat, care îmbunătățește standardul HTTP.

Din punct de vedere logic, SSL se inserează între protocolul aplicație HTTP și nivelul de conversație TCP, din punctul de vedere al TCP SSL fiind doar un alt nivel protocol de nivel aplicație. Deoarece SSL se comportă ca o îmbunătățire, adăugarea SSL la protocoalele existente este simplă, nemainecesitând rescrierea protocoalelor de bază.

Figura 3.2

Protocolul se împarte în două niveluri:

la cel mai de jos nivel, plasat deasupra unui protocol sigur de comunicație (spre exemplu TCP) se află protocolul SSL Record. Acesta asigură securitatea și integritatea datelor.

protocoalele destinate stabilirii conexiunii SSL: SSL Handshake, SSL ChangeCipher Spec Protocol și SSL Alert Protocol.

Stiva SSL poate fi ilustrată astfel:

Figura 3.3 Stiva SSL

Din cauza acestui design flexibil, SSL este capabil să cripteze aproape întregul trafic bazat pe TCP. Mai mult, SSL a fost utilizat pentru a oferi securitate la nivel de sesiune pentru e-mail (SMTPS, POP3S, IMAPS), news (NNTPS), LDAP (LDAPS), IRC (IRCS), Telnet (Telnets), FTP (FTPS). Dar SSL nu poate să îmbunătățească transmisiunile prin UDP. În general traficul Web bazat pe SSL este configurat să utilizeze portul 443 în locul portului standard 80. Browser-ele Web vor crea o sesiune SSL prin utilizarea HTTPS în locul HTTP.

3.2.2 Cum funcționează SSL

Pentru funcționarea unei sesiuni bazată pe SSL serverul Web necesită un certificat digital împreună cu o cheie privată corespunzătoare. Cel mai mare distribuitor de certificate pentru server este VeriSign. Pașii obținerii și instalării unui certificat pentru server sunt: generarea unei cereri, trimiterea unui Certificate Signing Request (CSR), completarea unui formular prin care se autentifică un utilizator sau o afacere, instalarea identificatorului de server și activarea SSL pentru serverul Web. Autentificarea prin VeriSign presupune și verificarea datelor trimise de organizația care necesită un certificat.

Înainte de stabilirea unei sesiuni SSL, clientul trebuie să cunoască de asemenea acest protocol. În momentul existenței elementelor necesare, clientul și serverul pot stabili o conexiune securizată.

Procesul prin care se stabilește o conexiune între un client și un server (de exemplu cumpărare online), se desfășoară în mai mulți pași. SSL utilizează o combinație de criptări cu chei publice și secrete. Datele brute ale unei sesiuni SSL sunt întotdeauna criptate cu cheia secretă, fiind mult mai puțin consumatoare de resurse din punct de vedere al procesării decât criptarea cu cheie publică. Protocolul SSL/TLS suportă mai mulți algoritmi de criptare cu cheie secretă, printre care DES, Triple-DES, IDEA, RC2 și RC4. Algoritmii cunoscuți pentru schimbarea cheilor cuprind Diffie-Hellman și RSA.

Figura 3.4 Sesiune SSL

O sesiune SSL cuprinde următorii pași:

1. ClientHello – în acest pas, clientul trimite un mesaj către server (ClientHello) cerând opțiuni de conectare SSL, între care numărul de versiune al SSL, setările cifrului, date generate în mod aleator care stau la baza calculelor criptografice și metoda de compresie utilizată;

2. ServerHello – după primirea mesajului ClientHello, serverul ia la cunoștință recepția prin trimiterea unui mesaj ServerHello care conține numărul de versiune al protocolului, setările cifrului, date generate aleator, metoda de compresie și identificatorul de sesiune;

3. ServerKeyExchange – imediat după trimiterea ServerHello, serverul trimite un mesaj de tip ServerKeyExchange către client care conține certificatul cu cheia publică. În cazul în care sunt necesare și certificate din partea clienților, este generată o cerere în acest sens;

4. ServerHelloDone – după ServerKeyExchange, serverul trimite un mesaj final prin care se indică finalizarea negocierii inițiale;

5. ClientKeyExchange – după recepționarea mesajului de tip ServerHelloDone, clientul răspunde cu mesajul ClientKeyExchange care constă în cheia simetrică a sesiunii, criptată cu cheia publică a serverului, primită în pasul 3;

6. ChangeCipherSpec – în acest pas clientul trimite către server un mesaj de tip ChangeCipherSpec în care specifică ce setări de securitate ar trebui invocate/utilizate;

7. Finished – clientul trimite mesajul Finished, prin care se permite determinarea finalizării cu succes a negocierii și dacă opțiunile de securitate au fost sau nu compromise în orice stagiu anterior;

8. ChageCipherSpec – serverul trimite către client un mesaj de tip ChangeCipherSpec, prin care se activează opțiunile de securitate invocate;

9. Finished – serverul trimite un mesaj de tip Finished, permițând clientului să verifice opțiunile de securitate activate. După trimiterea acestui mesaj, negocierea este finalizată, iar conexiunea este stabilită.

În continuare, toate comunicațiile sunt criptate, până la terminarea sau finalizarea sesiunii.

3.2.3 Performanța SSL

În procesul de criptare și stabilire a unei conexiuni SSL este implicat foarte mult trafic adițional, din cauza naturii protocolului HTTP care creează o nouă sesiune pentru fiecare obiect cerut dintr-o pagină Web.

Pentru îmbunătățirea performanțelor SSL se pot aplica următoarele:

– utilizarea de acceleratoare de criptare hardware, proces care nu necesită rescrierea paginilor Web sau achiziționarea de servere adiționale;

– utilizarea de pagini SSL simple, cu cât mai puține imagini;

– utilizarea SSL numai pentru anumite pagini Web selectate, precum acelea prin care se trimit informații privitoare la cărțile de credit;

– cache-ingul conexiunilor SSL permite de asemenea îmbunătățirea performanțelor, deoarece stabilirea unei noi conexiuni necesită de cinci ori mai mult timp decât reconectarea la o sesiune păstrată în cache.

3.2.4 Riscuri de securitate în SSL

SSL nu oferă nici o protecție în afara sesiunilor, iar serverele Web care permit utilizarea SSL nu pot să ofere protecție pentru date care sunt stocate în format text în server. SSL nu oferă protecție împotriva atacurilor bazate pe Web precum exploatarea diverselor puncte slabe prin scripturi CGI. De asemenea, SSL nu oferă nici un mecanism pentru controlarea drepturilor de securitate (ceea ce îi este permis unei persoane să facă după autentificarea pe un server).

În cele din urmă, SSL nu protejează împotriva atacurilor de tip Denial of Service și rămâne vulnerabil la analiza traficului. Pentru a oferi un nivel de securitate adecvat, serverele care lucrează cu SSL ar trebui să suporte criptarea pe 128 biți și o cheie publică pe 1024 biți.

Certificatele la nivel de server autosemnate pot oferi securitate, dar nu și autentificare. Un certificat autosemnat nu este considerat sigur de către mașina client fără a executa anumiți pași adiționali.

3.3 Autentificarea NTLM

NTLM este o abreviere de la Windows NT LAN Manager și este utilizat ca protocol de autentificare pentru tranzacțiile dintre două calculatoare în care unul dintre ele rulează Windows NT 4.0 sau mai mic iar celălalt Windows 2000 și mai mare.

În exemplele următoare se utilizează NTLM ca mecanism de autentificare:

• un client Windows 2000 sau Windows XP Professional care se autentifică într-un controler de domeniu Windows NT 4.0;

• o stație de lucru client Windows NT 4.0 Workstation care se autentifică într-un domeniu Windows 2000 sau Windows 2003;

• o stație de lucru Windows NT 4.0 Workstation care se autentifică într-un domeniu Windows NT 4.0;

• utilizatorii dintr-un domeniu Windows NT 4.0 care se autentifică într-un domeniu Windows 2000 sau Windows 2003.

Pe lângă acestea, NTLM este protocolul de autentificare pentru calculatoarele care nu participă într-un domeniu, precum stațiile de lucru sau serverele independente.

Protocolul NTLM implică un mecanism de autentificare în care clienții iși pot demonstra identitatea fără a trimite o parolă unui server. Constă în trei mesaje care sunt referite de obicei ca Type 1 (negociere), Type 2 (provocare), Type 3 (autentificare).

Pașii sunt următorii:

Clientul trimite un mesaj Type 1 către server care conține lista caracteristicilor suportate de client și cerute serverului;

Serverul răspunde cu un mesaj Type 2 care conține lista caracteristicilor suportate și permise de server. Deasemenea conține o provocare generată de server.

Clientul răspunde provocării printr-un mesaj Type 3 care conține informații despre client, inclusiv domeniul și numele de utilizator al clientului. Deasemenea conține și una sau mai multe răspunsuri la provocarea Type 2.

Răspunsurile din mesajul Type 3 sunt cele mai importante elemente deoarece acestea dovedesc serverului faptul că utilizatorul client cunoaște parola contului.

3.4 Comparație Kerberos – NTLM

Kerberos are anumite beneficii față de NTLM. Astfel, Kerberos se bazează pe standarde în vigoare, deci permite Windows 2000/2003 să interacționeze cu alte rețele care utilizează Kerberos V5 ca mecanism de autentificare. NTLM nu poate oferi această funcționalitate deoarece este un protocol proprietate a sistemelor de operare de la Microsoft.

Conexiunile la serverele de aplicații și fișiere sunt mai rapide în momentul utilizării autentificării bazate pe Kerberos, deoarece serverul Kerberos trebuie să verifice numai datele oferite de client pentru a determina dacă îi permite accesul.

Aceleași date oferite de client pot fi utilizate în întreaga rețea, pe întreaga durată a sesiunii de logon. În momentul utilizării NTLM, aplicațiile și serverele trebuie mai întâi să contacteze un controler de domeniu pentru a determina dacă clientului îi este permis accesul.

Autentificarea Kerberos este oferită atât pentru client cât și pentru server, în timp ce NTLM oferă numai autentificare pentru client. Astfel, clienții NTLM nu știu cu siguranță dacă serverul cu care comunică nu este unul fals.

Kerberos oferă și posibilitatea relațiilor de încredere, fiind baza pentru relațiile tranzitive dintre domenii din Windows 2000/2003. O relație tranzitivă de încredere este o relație în două sensuri deoarece este creată o cheie inter-domenii, partajată de ambele domenii.

Există și considerații asupra faptului că implementarea Kerberos a Microsoft nu este una standard, mai ales din cauza modificărilor și extensiilor care au fost aduseprotocolului. Aceste modificări privesc mai ales utilizarea Kerberos cu tehnologia de criptare cu cheie publică, făcând astfel posibilă autentificarea prin smart card, care este mult mai sigur decât o parolă statică.

3.5 Secure Shell ( SSH)

Cu toate că sistemul de operare Unix este considerat a fi sigur și stabil când este configurat corect, există o serie de protocoale care continuă să defăimeze securitatea sistemelor Unix, printre acestea numărându-se Telnet, FTP precum și faimoasele comenzi de la Berkley de tip „r*” (rcp, rsh, rlogin).

Programe și protocoale nesigure continuă să ofere acces ușor la sistem atât pentru administratori cât și pentru utilizatori răuvoitori. Aceste protocoale rămân vulnerabile în mare parte datorită faptului că datele de autentificare sunt trimise prin rețea sub formă de text clar, acesta semnificând că oricine poate să obțină numele de utilizator și parola, exploatând apoi un serviciu prin impersonarea utilizatorului legitim.

Secure Shell (SSH) a fost dezvoltat de Tatu Ylönen în 1995 și oferă servicii de securitate la nivel de sesiune precum și confidențialitatea datelor în rețele nesigure, oferind o înlocuire sigură a comenzilor rsh, rlogin, rcp, telnet, rexec și ftp. Securitatea SSH este dependentă de criptarea sesiunii de lucru de tip end-to-end între un client și un server.

SSH are de asemenea posibilitatea să autentifice în mod sigur mașinile înainte de a trimite informațiile de login. SSH se utilizează în general pentru a accesa un calculator de la distanță și pentru a executa comenzi. SSH oferă de asemenea securizarea transferului de fișiere între calculatoare prin executarea copierii securizate (SCP) și a transferului de fișiere securizat (SFTP).

Componentele SSH cuprind serverul (SSHD), clientul (SSH), copierea (SCP) securizată a fișierelor și ssh-keygen – o aplicație utilizată pentru a crea chei publice și private utilizate pentru autentificarea mașinilor.

SSH oferă facilități de bază pentru translatarea porturilor, prin aceasta permițându-se utilizatorilor să creeze tuneluri pentru protocoalele existente prin conexiunile SSH existente. De exemplu, transferul de date prin POP (care în mod normal trimite numele de utilizator și parola sub formă de text clar), pot fi securizate prin SSH. Există și limitări ale translatării porturilor, deoarece nici intervalele de porturi, nici porturile dinamice nu pot fi specificate.

Utilizarea opțiunilor de autentificare a SSH protejează utilizatorii și mașinile împotriva atacurilor de tip IP Spoofing (imitarea adresei), rutarea sursei IP, spoofing DNS, etc.

SSH constă în trei niveluri:

nivelul /protocolul de transport – este responsabil pentru gestionarea negocierii cheilor de criptare, cererilor de regenerare a cheilor, mesajelor de cereri de servicii precum și a mesajelor de deconectare a serviciilor.

nivelul de autentificare – este responsabil pentru negocierea tipurilor de autentificare, verificarea canalelor securizate înaintea trimiterii informațiilor de autentificare precum și pentru cererile de modificare a parolelor.

nivelul conexiune – controlează deschiderea și închiderea canalelor precum și a translatării porturilor.

Există două versiuni de SSH, iar clienți SSH există pentru mai multe platforme Unix, Windows, Machintosh, OS/2. Există și versiuni de componente de server pentru Windows NT/2000.

3.5.1 Autentificarea prin SSH

În funcție de versiunea utilizată SSH oferă câteva mecanisme pentru autentificarea utilizatorilor. Cea mai slabă formă de autentificare este realizată prin intermediului fișierelor .rhosts, această metodă nefiind recomandată deoarece este foarte puțin sigură.

Altă metodă de autentificare este oferită de criptarea prin RSA. Prin această metodă, utilizatorul creează o pereche publică/privată de chei prin utilizarea programului ssh-keygen, cheia publică fiind stocată în directorul părinte al utilizatorului.

În momentul în care clientul se autentifică în fața serverului, trimite numele de utilizator și cheia publică spre gazda de la distanță. Serverul returnează cheia de sesiune criptată cu cheia publică a utilizatorului. Această cheie de sesiune va fi decriptată cu cheia privată a utilizatorului.

Metoda principală de autentificare în SSH este prin intermediul fișierelor .rhosts combinată cu autentificarea RSA. Această metodă autentifică clientul și serverul și le protejează împotriva atacurilor curente de tip IP Spoofing, DNS Spoofing, etc. Există și posibilitatea instalării de TCPWrapper în locul utilizării fișierelor .rhosts, existând astfel un control mai mare asupra utilizatorilor care încearcă să se conecteze la un serviciu.

În cele din urmă, unui utilizator îi poate fi cerută o combinație de nume de utilizator/parolă printr-un canal criptat. De asemenea, în diverse implementări există suport pentru Kerberos, S/KEY și SecurID.

Stabilirea unei conexiuni SSH este inițiată de comenzile slogin sau ssh, fapt care duce la verificare autentificării cu cheia publică atât pentru server cât și pentru client apoi fiind stabilit un canal de comunicație sigur.

3.5.2 SSH 1

Reprezintă versiunea originală a SSH și este distribuită în mod gratuit pentru utilizare necomercială, împreună cu codul sursă. SSH1 are și variante majore (1.2, 1.3 și 1.5).

Deși s-au descoperit câteva probleme de securitate, SSH este considerat în continuare sigur, dată fiind atenția acordată metodei de autentificare și cifrului utilizat. De exemplu, SSH1 este vulnerabil la atacurile prin inserarea datelor, deoarece acesta utilizează CRC (cyclic redundancy check) pentru verificarea integrității datelor. Dar utilizarea algoritmului de criptare Triple-DES rezolvă această problemă. SSH 1 suportă o mai mare varietate de metode de autentificare față de versiunea 2, între care se numără AFS (bazat pe Andrew File System dezvoltat la Carnegie-Mellon) și Kerberos.

3.5.3 SSH 2

SSH 2 este o rescriere completă a SSH1 prin care se adaugă noi facilități, inclusiv suport pentru protocoalele FTP și TLS. Din cauza diferențelor de implementare a protocoalelor, cele două versiuni nu sunt compatibile în întregime. SSH2 oferă îmbunătățiri în ceea ce privește securitatea și portabilitatea. SSH2 necesită mai puțin cod care să ruleze cu privilegii de root, fiind mai puțin expus exploatărilor de tip buffer overflow; astfel este mai puțin probabil ca un atacator să rămână pe server cu drepturi de root.

SSH2 nu oferă aceleași implementări de rețea ca și SSH 1, deoarece criptează părți diferite ale pachetelor. SSH2 nu suportă metoda de autentificare prin fișierele .rhosts. De asemenea, în SSH2 algoritmul RSA este înlocuit de Digital Signature Algorithm (DSA) și de Diffie-Hellman, dar, deoarece patentele RSA au expirat, este de așteptat suportul în continuare pentru algoritmul RSA în versiunile următoare. SSH2 suportă Triple-DES, Blowfish, CAST-128 și Arcfour.

Din cauza diferențelor între SSH 1 și SSH 2 și din cauza restricțiilor de licențiere, ambele versiuni vor continua să fie utilizate pentru o perioadă de timp.

3.5.4 Algoritmii de criptare utilizați

În momentul stabilirii unei sesiuni SSH, atât clientul cât și serverul SSH negociază un algoritm de criptare. Identitatea serverului este verificată înainte de trimiterea numelui de utilizator și a parolei, fiind un proces care protejează împotriva aplicațiilor de tip cal troian care ar accepta conexiuni și ar putea să „fure” informații de autentificare.

Pentru ca un client să se poată conecta la un server utilizând autentificarea prin cheie publică, această cheie trebuie distribuită în mod securizat. În funcție de versiune, SSH suportă mai mulți algoritmi de criptare, după cum se poate observa în tabelul următor.

Comparație între SSH1 și SSH2

3.5.5 Riscuri de securitate ale SSH

În cazul existenței conexiunilor de sosire către un server, SSH oferă un mecanism sigur și eficient prin care se poate face accesul. Deoarece SSH este ușor de instalat, acesta ar trebui să fie singurul mecanism prin care să se ofere funcționalitate de tip FTP, Telnet sau rlogin într-un mediu securizat, pentru utilizatorul final, SSH fiind aproape transparent.

SSH este o alternativă la programele care execută autentificarea în funcție de adresa IP, iar în momentul utilizării autentificării cu cheie publică protejează împotriva programelor care utilizează parole reutilizabile. Prin criptarea sesiunii între client și server se face protecția împotriva intercepției parolelor trimise sub formă de text clar.

SSH suferă și de câteva limitări, între care imposibilitatea de a specifica un interval de porturi sau aceea de a translata porturi dinamice. În plus, versiunea de Windows nu implementează copierea securizată a fișierelor.

Securitatea poștei electronice

Email-ul este varianta electronică a scrisorilor tradiționale. Avantajul principal este viteza de livrare a informației, la care se adaugă și posibilitatea de trimitere de mesaje multimedia. Totodată prin apelarea la metode recente de comunicații , destinatarul poate primi mesajele practic oriunde

Sistemul PGP. Riscuri de securitate

Cerințele de securitate în poșta electronică au condus la realizarea mai multor pachete de programe destinate protecției criptografice a mesajelor trimise prin rețea. Dintre acestea, cel mai popular este PGP (Pretty Good Privacy) dezvoltat de Philip Zimmerman în SUA.

Pretty Good Privacy (PGP) este un program de securitate care oferă utilizatorilor securitate avansată pentru mesaje de e-mail și fișiere, prin utilizarea semnăturilor digitale și a criptării. Implementat în mod corespunzător, PGP oferă servicii de confidențialitate, integritate și autentificare. Programul original PGP a fost creat cu intenția de a oferi un mecanism pentru comunicare securizată între mai multe persoane cunoscute.

Sistemul PGP poate executa următoarele operații:

• criptarea fișierelor: se pot cripta fișiere proprii, folosind algoritmi de criptare cu chei secrete IDEA. Fișierul poate fi descifrat doar de entitatea care cunoaște cheia de criptare a fișierului.

• crearea de chei secrete și publice: acestea sunt utile pentru a cripta și semna mesajele care se trimit sau pentru decriptare.

• gestionarea cheilor: PGP-ul crează și deține o bază de date care să conțină cheile publice ale persoanelor cu care se dorește corespondența.

• transmiterea și recepționarea de mesaje e-mail criptate: cu ajutorul PGP-ului se pot trimite scrisori criptate și se pot decripta scrisorile recepționate.

folosirea semnăturilor digitale: PGP-ul poate face o semnare electronică a documentelor sau poate verifica semnătura oricărei persoane.

• certificarea cheilor: PGP-ul asigură aceasta prin semnătura digitală a cheilor publice.

• revocarea, dezactivarea și custodia cheilor: dacă anumite chei ale utilizatorilor sunt compromise, ele se pot revoca sau dezactiva. Cheile se pot pune la loc sigur, folosind facilitățile de custodie.

• configurarea după necesități a PGP-ului: se pot schimba setările variabilelor din fișierul de configurare a PGP-ului.

• folosirea serverelor de chei PGP de pe Internet: se poate adauga cheia publică la o baza de date de pe server sau se pot obține alte chei publice care se află pe server.

PGP folosește o combinație a sistemelor criptografice simetrice și cu chei publice:

• sistem simetric, bazat pe cifrul IDEA cu o singură cheie pentru cifrarea conținutului mesajelor e-mail sau fișierelor.

• sistem asimetric RSA pentru protecția și distribuția cheii de unică întrebuințare (cheie de sesiune) cu care se face cifrarea simetrică a mesajului e-mail, precum și pentru autentificarea prin semnătura digitală a mesajului și a emițătorului.

Aplicația PGP Desktop Security cuprinde o serie de facilități de securitate mult mai avansate decât ar fi necesare unui sistem de e-mail, printre care sunt cuprinse un sistem personal de detecție a intrușilor, un firewall personal, comunicare bazată pe VPN sau IP Security (IPSec), criptarea discului cu PGP și suport pentru certificate digitale X.509v3.

În momentul de față, PGP trece prin procesul de standardizare al IETF sub forma OpenPGP, definit prin RFC 2440.

La emiterea unui mesaj e-mail, PGP execută următoarele prelucrări :

1.Folosindu-se algoritmul de hash MD5 (sau SHA-1), se crează un cod de autentificare MAC (Message Authentication Code) de 128 de biți (sau de 160 de biți), dependent de codul mesajului. Codul va fi folosit în procesul de autentificare:

MAC = MD5 (mesaj).

2.Prin cifrare cu cheia secretă AKprivata a emițătorului A al mesajului e-mail, folosindu-se algoritmul cu chei publice RSA, se crează semnătura digitală pentru autentificarea mesajului și a originii sale :

Semnătura = RSA (MAC, KprivataA).

3.Mesajul e-mail este comprimat, folosindu-se cunoscutul program pkzip. Acest lucru asigură o reducere a volumului de date ce trebuie cifrate și apoi transmise :

Mesaj comprimat = pkzip (mesaj).

4.Se generează aleator o cheie de cifrare K, folosită doar pentru acest mesaj, numită cheie de sesiune. Ea reprezintă un numar de 128 de biți:

Cheie sesiune = random( ).

5.Mesajul comprimat anterior este apoi cifrat cu ajutorul algoritmului IDEA, folosindu-se cheia generată în pasul precedent:

Mesaj cifrat = IDEA (Mesaj comprimat, Cheie sesiune).

6.Folosind același sistem cu chei publice (cheia publica KpublicaB a destinatarului B al mesajului e-mail), se criptează cheia de sesiune pentru a putea fi trimisă în mod sigur la receptor:

Cheie sesiune criptată = RSA (Cheie sesiune, KpublicaB).

7.Se crează mesajul e-mail protejat în vederea transmiterii lui la destinație folosind serviciile obișnuite de e-mail:

Mesaj e-mail protejat = [Key-ID, Semnătura, Data-Semnătura, Cheie sesiune criptată, Mesaj cifrat].

Pentru ca o criptare cu cheie publică să ofere securitatea adecvată, utilizatorii trebuie să fie siguri de faptul că cheia publică cu care se face criptarea aparține într-adevăr destinatarului intenționat. PGP încearcă să rezolve această problemă prin utilizarea unui model în care persoanele se încred reciproc. Această încredere (trust) este exprimată prin semnarea cheii PGP aparținând altei persoane. În realitate, orice utilizator PGP devine Certificate of Authority prin semnarea altor chei pentru alți utilizatori. Pe măsură ce alți utilizatori semnează cu cheia unui utilizator anume și acel utilizator semnează alte chei, se creează o plajă de încredere.

Acest model de încredere este potrivit pentru mesajele informale trimise prin Internet, dar nu se potrivește într-un scenariu de afaceri în care se cere nerespingerea și contabilizarea utilizatorilor.

O altă problemă poate fi revocarea cheilor PGP care nu mai prezintă încredere. Singura modalitate de prevenire a utilizării unei chei PGP compromise este trimiterea unui certificat de revocare a cheii către toate persoanele care ar putea utiliza acea cheie. Acest certificat de revocare ar putea fi plasat pe un keyserver pentru a avertiza utilizatorii în privința cheii. Deoarece cheile pot fi stocate și într-un inel de chei (key ring) pe mașina locală, nu există nici o garanție că toate persoanele vor primi avertismentul și nu vor mai utiliza acea cheie compromisă.

Versiunea 7 a PGP Desktop Security introduce și suport pentru certificatele digitale X.509v3, permițând astfel PGP să participe în infrastructura de chei publice și să se depărteze (eventual) de modelul de securitate al PGP (plaja de încredere).

Deși criptografia utilizată de PGP este puternică, există o mulțime de atacuri ce se pot aplica împotriva acestuia. Un tip de atac este cel reprezentat de atacurile prin dicționare asupra frazei de trecere din PGP, prin încercarea fiecărui cuvânt din dicționar și a combinațiilor.

Securitatea centrală a PGP este dată de puterea frazei de trecere și de protecția cheii private. Pentru ca fraza de trecere să prezinte securitatea adecvată, ar trebui să aibă o lungime suficientă, nu ar trebui să utilizeze cuvinte comune din dicționare și ar trebui schimbată frecvent.

În ceea ce privește cheia privată, cât timp aceasta este stocată pe un calculator (și nu pe un smart card, de exemplu), protecția acesteia este de asemenea importantă. Pe lângă acestea, modelul de încredere reciprocă în cheile PGP este predispus la erori, iar pentru ca acesta să lucreze în mod corect trebuie ca expeditorul să creadă că cheia publică este autentică, aparține utilizatorului real și nu a fost modificată.

3.6.2 Standardul S/MIME

S/MIME este un standard pentru asigurarea securității mesajelor e-mail în Internet. Ca și PGP, Secure / Multipurpose Internet Mail Extensions (S/MIME) încearcă să rezolve problema trimiterii de mesaje între părți care nu s-au întâlnit niciodată prin intermediul criptării. De asemenea, rezolvă problema integrității mesajului, verificării mesajului și a nerepudierii prin utilizarea semnăturilor digitale.

Prin utilizarea S/MIME, un mesaj poate fi criptat, semnat digital sau se pot alege ambele variante. Deși S/MIME nu este limitat la securizarea mesajelor de e-mail, aceasta a fost principala sa utilizare până în momentul de față. S/MIME a fost aplicat de asemenea în Electronic Data Interchange (EDI), tranzacții online și mesagerie securizată în aplicații.

Modelul S/MIME este bazat pe tehnologia creată în 1995 de către RSA Data Security împreună cu un grup de dezvoltatori de software, între care Netscape, VeriSign și alții. S/MIME este bazat pe Standardul de criptografie cu cheie publică nr. 7 (PKCS#7 – un set de standarde utilizat pentru implementarea sistemelor de criptare cu cheie publică) pentru trimiterea mesajelor și pe X.509v3 pentru certificate digitale.

S/MIME oferă îmbunătățiri de securitate față de standardul MIME. Ambele sunt definite prin RFC-uri:

– RFC 1847: Securizarea Multiparte pentru MIME;

– RFC 2045: MIME partea întâi: formatul corpurilor de mesaje din MIME;

– RFC 2046: MIME partea a doua: tipurile media;

– RFC 2047: MIME partea a treia: extensiile antetelor de mesaje pentru text Non-ASCII;

– RFC 2048: MIME partea a patra: procedurile de înregistrare;

– RFC 2049: MIME partea a cincea criterii de conformare și exemple;

– RFC 2183: comunicarea informațiilor de prezentare în mesajele Internet;

– RFC 2630: sintaxa mesajelor criptate;

– RFC 2632: gestiunea certificatelor S/MIME V3 ;

– RFC 2633: specificațiile S/MIME V3;

– RFC 2634: servicii îmbunătățite de securitate pentru S/MIME.

S/MIME extinde MIME prin oferirea de servicii de securitate între care se numără autentificarea și integritatea prin utilizarea semnăturilor digitale și confidențialitatea prin utilizarea criptării.

MIME este standardul pentru trimiterea fișierelor prin e-mail în Internet prin care se permite trimiterea de mesaje având diferite seturi de caractere și codarea și decodarea obiectelor de tip multimedia și de tip binar pentru a putea fi trimise prin email.

Tipurile predefinite MIME cuprind documente Word, fișiere PostScript sau fișiere audio WAV. Codarea MIME este făcută utilizând diferite metode în momentul trimiterii mesajului, la recepție aceste părți fiind decodate în formatul original. Pentru aceasta se adaugă fiecărui fișier câte un antet în care sunt descrise datele conținute precum și metoda de codare utilizată.

Deoarece MIME este o specificație matură și bogată utilizată pentru trimiterea de conținut diferit prin Internet, îmbunătățirea acestuia are sens prin adăugarea de facilități de securitate în locul creării unui nou standard, complet diferit.

4.2.1 Funcționarea S/MIME

Pentru a putea trimite mesaje securizate de tip S/MIME, atât expeditorul cât și destinatarul trebuie să utilizeze clienți care cunosc acest standard, precum Outlook, Outlook Express sau Netscape Communicator. În plus, fiecare utilizator trebuie să obțină un certificat digital împreună cu cheia privată corespunzătoare.

S/MIME utilizează atât algoritmul de criptare cu cheie publică cât și pe cel de criptare cu cheie privată. Criptografia cu cheie publică este utilizată pentru schimbarea cheilor simetrice și pentru semnături digitale (necesită certificatele X.509). De asemenea, specificațiile S/MIME recomandă utilizarea a trei algoritmi de criptare: DES, Triple-DES și RC2.

Securitatea unui mesaj criptat cu S/MIME depinde în principal de mărimea cheii utilizate de algoritmul de criptare. Un aspect interesant al S/MIME este acela că destinatarul unui mesaj, și nu expeditorul acestuia, determină metoda de criptare utilizată, bazându-se pe informațiile oferite de certificatele digitale.

Trimiterea mesajelor S/MIME presupune o serie de pași. In primul rând, mesajul este criptat cu o cheie de sesiune generată în mod aleator. Apoi, cheia sesiunii este criptată utilizând cheia publică a destinatarului. Această cheie a fost fie schimbată în prealabil, fie a fost regăsită într-un serviciu director de tip LDAP. Pasul următor este constituit de împachetarea mesajului criptat, a cheii de sesiune a identificatorilor de algoritm precum și a altor date într-un obiect binar de formatat în concordanță cu tipul PKCS#7. Acest obiect astfel creat este codat într-un obiect MIME utilizând tipul de conținut application/pkcs7-mime, după care mesajul este expediat. La recepționare, plicul digital este desfăcut, iar cheia privată a destinatarului decriptează cheia de sesiune, care este utilizată pentru a decripta mesajul.

Datorită suportului dat de dezvoltatori, S/MIME se pare că va fi standardul de securitate al e-mail. S/MIME joacă de asemenea, un rol cheie în strategia Microsoft Windows 2000/Exchange 2000.

S/MIME și PGP oferă ambele metode eficiente de securitate pentru criptarea mesajelor de e-mail. Spre deosebire de PGP, care s-a bazat până la versiunea 7.0 pe modelul de securitate al plajei de încredere, S/MIME are ca avantaj principal utilizarea infrastructurii cu chei publice (PKI) și a certificatelor digitale. De asemenea, S/MIME este integrat în mai mulți clienți de e-mail, în timp ce PGP necesită descărcarea și instalarea unui plug-in.

4.2.2 Riscuri de securitate ale S/MIME

Pentru a funcționa eficient, S/MIME trebuie să utilizeze chei de lungime mare și algoritmi de criptare puternici, precum Triple-DES. În multe cazuri în care se expediază mesaje de e-mail prin aplicații care suportă S/MIME, singurul format de criptare disponibil este RC4 (40 biți), care nu oferă o lungime suficientă pentru securitatea minimă.

De asemenea, S/MIME are aceleași probleme ca și PGP – pentru o comunicație securizată, trebuie să existe un nivel de siguranță asupra cheii cu care se face criptarea. La fel ca și la PGP, cheia secretă trebuie să fie securizată din punct de vedere fizic.

5. UTILIZAREA FIREWALL-URILOR ÎN INTRANETURI

Un zid de protecție poate ține la distanță traficul Internet cu intenții rele, de exemplu hackerii, viermii și anumite tipuri de viruși, înainte ca aceștia să pună probleme sistemului. În plus, un zid de protecție poate evita participarea computerului la un atac împotriva altora, fără cunoștința dvs. Utilizarea unui paravan de protecție este importantă în special dacă sunteți conectat în permanență la Internet.

Numeroase dispozitive, tehnici, sisteme, servicii și procese sunt disponibile astăzi pentru a proteja datele într-o junglă a rețelelor unde noi amenințări aruncă provocări celor ce se ocupa cu securitatea. Firewall-urile sunt o componentă fundamentala a oricărei apărări a rețelei și sunt elemente strategice ale implementării unei politici de securitate.

Tehnologia firewall-urilor a cunoscut numeroase schimbări de la lansarea lor pe piață la începutul anilor 90. Primele firewall-uri erau dispozitive simple de filtrare a pachetelor. De atunci, firewall-urile au devenit din ce în ce mai sofisticate, adăugându-se capacități noi de filtrare, ca stateful filtering, VPN, IDS, multicast routing, autentificarea conexiunii, servicii Dynamic Host Configuration Protocol (DHCP), si multe altele. Una din forțele acestei creșteri, a fost, dincolo de competiție, explozia Internetului de acum zece ani. Această creștere uriașă a adus pe lângă beneficii și o serie de probleme ca hacking, intruziunea, și alte tipuri de acțiuni nedorite. Date fiind aceste probleme și nevoia de a proteja activele companiei, firewall-urile au devenit tehnologia comună atât pentru companii cât și pentru piața SOHO.

Un firewall trebuie configurat între exterior (Internet), un mediu nesigur și rețeaua proprie, de încredere. Firewall-ul acționează ca un portar care trebuie să inspecteze tot traficul de rețea și să decidă care trafic să fie permis și care trafic să fie blocat. Originea termenului firewall derivă din construcții, este un zid care protejeaza o parte a unei clădiri la extinderea unui incendiu. Prin extensie, în IT firewall este un dispozitiv hardware sau software care functioneaza între două retele pentru a preveni comunicațiile interzise de politica de securitate stabilită.

Un firewall este o aplicație sau un echipament hardware care monitorizează și filtrează permanent transmisiile de date realizate între PC sau rețeaua locală și Internet, în scopul implementării unei "politici" de filtrare.

Firewall-urile pot fi clasificate după nivelul din modelul OSI la care operează, prin tehnologia pe care o implementează.

a)Nivel retea – Network Firewall.

Este un router/computer special modificat care filtrează fiecare pachet care sosește pentru a-l valida să treacă, în funcție de regulile implementate de administrator sau implementate din construcție. Există mai multe abordari:

– filtrarea statică a pachetelor: Un firewall utilizeaza un proces de filtrare a pachetelor care sosesc/pleacă pentru a interzice sau autoriza accesul. Regulile de filtrare utilizate nu se schimbă.

– filtrarea dinamică a pachetelor (stateful inspection): Un stateful inspection firewall filtrează dinamic pachetele, deci modifică regulile în concordanță cu cerințele. Stateful inspection firewall imbunătățește semnificativ abilitățile filtrării pachetelor deoarece este capabil să memoreze atributele semnificative ale fiecarei conexiuni. De exemplu, își amintește pachetele care pleacă și permite pachetelor corespondente care sosesc sa treacă. Toate pachetele sunt procesate rapid deoarece este simplu să se determine dacă ele aparțin unei conexiuni deja inspectate. Filtrarea pachetelor se face la nivel rețea, bazată pe informațiile conținute de header-ul unui pachet IP, sau la nivel transport (unde actioneaza protocoalele TCP si UDP).

b)Proxy servere sau firewall la nivel aplicatie

Un server de proxy acționează ca man-in-the-middle, un intermediar, astfel încât să nu existe un contact direct între clientul pe o rețea internă și serverul unei rețele exterioare periculoase. Un proxy este o solutie software care permite comunicarea între două retele într-o manieră protejată. Sistemul pe care rulează se mai numeste aplication level gateway. Are ca scop să furnizeze un gateway între rețeaua de încredere și cea potențial periculoasă prin care informația poate trece. Tipic, proxy-ul autentifică userul și autorizează adresa sursă și destinație și permite sau rejectează protocolul. Pentru a funcționa, serverul cere proxy pentru fiecare protocol (de exemplu FTP, http, telnet).

Serviciile proxy pot fi la nivel aplicație sau la nivel circuit. Proxy-ul la nivel aplicație trebuie să știe aplicația particulară pentru care este furnizat serviciul (se mai numesc servicii proxy dedicate unui protocol). Serviciile proxy la nivel circuit se numesc așa deoarece creează un circuit între hosturile sursă și destinație, între client și server.

În general, firewall-urile proxy tind să furnizeze protecție mai bună decât filtrarea de pachete. În ceea ce privește debitul efectiv (throughput) situația este inversă.

Există mai multe arhitecturi de firewall, după abordările în implementare, care fac uz de filtrarea pachetelor sau proxiuri. Iată câteva dintre cele mai răspândite:

-firewall-ul de tip filtru de pachete (Packet Filtering Firewall)

-firewall de tip sistem gazda bastion protejat (Screened Bastion Host Firewall)

-firewall de tip sistem gazda dual (Dual-homed Host Firewall)

-firewall de tip subretea protejata (Screened Subnet Firewall)

Un firewall (Figura V.1) servește câtorva scopuri:

1. acționează ca filtru de intrare pentru traficul Internet către serverele organizației, prevenind ajungerea pachetelor neautorizate în serverele de web și de aplicații;

2. oferă conexiuni prin proxy către Internet, menținând autentificarea utilizatorilor interni;

3. monitorizează traficul, oferind un suport pentru audit, raportare, ca și pentru planificare.

Figura V.1: Arhitecura firewall

Utilizarea firewall-urilor presupune și câteva riscuri. Acestea sunt în general dificil de penetrat, dar dacă au fost depășite, rețeaua internă este deschisă pentru intrus. În plus, un firewall nu poate rezolva compromisurile din rețeaua internă. Aproximativ 70% din breșele de securitate au loc în interiorul companiei, adică sunt create de persoane de dincolo de zidul de protecție. Un exemplu poate fi utilizarea unui modem și a unei conexiuni dial-up.

În practică au fost observate următoarele riscuri cu privire la firewall-uri:

– porturile – regulile de filtrare sunt bazate pe porturi sursă și destinație. O mașină care utilizează TCP/IP are 65535 porturi virtuale, din care unele sunt utilizate de către anumite servicii;

– rutarea – această opțiune IP permite utilizatorilor să definească modalitatea de rutare a pachetelor.

– SOCK – reprezintă o bibliotecă de aplicații proxy utilizate pentru a permite ca anumite servicii să fie utilizate și pentru a ține intrușii în afară;

– scanare RPC directã – portmapper este un serviciu care permite utilizatorilor să identifice porturile pe care rezidă apelurile de proceduri la distanță;

– scanare ascunsã – un intrus nu încearcă să stabilească o conexiune ci utilizează pachete la nivel de interfață. Aceste pachete ne dau răspunsuri diferite, în funcție de calitatea portului (deschis sau nu).

– protocoale fãrã conexiune – firewall-urile au dificultăți în detectarea pachetelor utilizate în servicii care nu necesită stabilirea unei conexiuni, precum UDP;

Pentru intraneturi este necesară existența unui sistem de detectare a intruziunilor cu scopul protejării perimetrului rețelei de atacuri. Sistemele de detectare a intrușilor pot fi instalate ca și sonde sau ca agenți. Sondele sunt mult mai eficiente în ceea ce privește detectarea intruziunilor deoarece minimizează impactul asupra sistemelor existente prin ascultarea pasivă și raportarea către consola centrală, fără întrerupere.

Serviciile de detectare a intrușilor execută la nivel de dispozitiv de rețea următoarele funcții:

– inspectează șirul de date care trec prin rețea, identifică semnăturile activităților neautorizate și activează procedurile de apărare;

– generează alarme în cazul detectării evenimentelor, notificând personalul necesar de securitate;

– activează un răspuns automat în cazul anumitor probleme.

Pe lângă detectarea intrușilor mai poate fi luat în considerare și un agregator proxy de tip TCP care va îmbunătății securitatea prin firewall prin limitarea porturilor expuse.

Tunneling-ul și criptarea sunt utilizate pentru a crea rețele punct-la-punct, în general fiind utilizate protocoale precum Layer 2 Tunneling Protocol (L2TP), Point to- Point Tunneling Protocol (PPTP), IPSec, precum și standarde de criptare cum sunt DES, MD5, Triple DES, etc.

Codurile mobile de program precum Java și ActiveX creează o amenințare în creștere. Aplicațiile care inspectează conținutul trebuie să:

– ofere control asupra codului mobil Java, ActiveX sau altul;

– prevină atacurile prin cod mobil;

– activeze navigarea în siguranță, utilizând în același timp facilitățile Java și ActiveX.

În concluzie, managementul securității are o necesitate din ce în ce mai ridicată, atât în rețele de tip intranet cât și în alte tipuri de rețele de colaborare, datorită mulțimii punctelor de acces în rețea. În același timp sunt necesare noi unelte și tehnici, cât și o combinare a acestora pentru a oferi siguranța maximă posibilă.

Bibliografie:

www.biblioteca.ase.ro/downres.php?tc=3196

http://wikihost.org/wikis/fmi//var/gebo/data/file/Retele%20de%20calculatoare_8.pdf

http://curl.haxx.se/rfc/ntlm.html

http://davenport.sourceforge.net/ntlm.html#whatIsNtlm

http://cs.ubbcluj.ro/~rlupsa/edu/retele-2003/c5.html

http://www.microsoft.com/romania/securitate/securizarea_retelei_00.mspx

http://www.cacr.math.uwaterloo.ca/hac/

http://www.galaxyng.com/adrian_atanasiu/cript.htm

http://davenport.sourceforge.net/ntlm.html#whatIsNtlm

http://www.cert.org/

http://www.securityfocus.com/

http://webhost.uoradea.ro/cpopescu/cryptography/

www.ase.md/~osa/images/si2004/articles/m10.doc

http://tet.pub.ro/Download/Cursuri/An4/CSO2/CaSO2_I_oct2006.pdf

Dumitru Oprea, Protectia si securitatea informatiilor,Editura Polirom Iasi 2003

Similar Posts