Sunteți pe pagina 1din 58

Constantin Lucian ALDEA

2008 2009 REPROGRAFIA UNIVERSITII TRANSILVANIA DIN BRAOV

1
1 2

Cuprins

Cuprins ................................ ................................ ................................ ................................ ............................ 3 Sisteme IT i probleme de securitate ................................ ................................ ................................ .............. 4 2.1 Sisteme informatice................................ ................................ ................................ ................................ .. 4 2.2 Obiective de securitate ................................ ................................ ................................ ............................. 4 2.3 Criptografia tradiional ................................ ................................ ................................ ............................ 6 2.4 Caracteristici ale criptografiei moderne ................................ ................................ ................................ .... 7 2.5 Problema autentificrii................................ ................................ ................................ .............................. 9 2.6 Implicaii sociale ale problemelor de securitate ................................ ................................ ..................... 11 2.7 Cteva protocoale "sigure"................................ ................................ ................................ ..................... 12 2.8 Troieni ................................ ................................ ................................ ................................ .................... 12 2.9 Probleme rezolvate ................................ ................................ ................................ ................................ 14 2.10 Probleme nerezolvate ................................ ................................ ................................ ........................ 15 Analiza riscurilor ................................ ................................ ................................ ................................ ............ 15 3.1 Probleme rezolvate ................................ ................................ ................................ ................................ 18 3.2 Probleme nerezolvate ................................ ................................ ................................ ............................ 19 Autentificarea................................ ................................ ................................ ................................ ................. 19 4.1 Autentificarea bazat pe parole ................................ ................................ ................................ ............. 20 4.2 Autentificarea bazat pe adres ................................ ................................ ................................ ............ 20 4.3 Autentificarea criptografic................................ ................................ ................................ ..................... 21 4.4 Metoda de autentificare n trei pai (Three Way Handshake). ................................ .............................. 21 4.5 Kerberos ................................ ................................ ................................ ................................ ................. 22 4.5.1 Principii ................................ ................................ ................................ ................................ ........... 23 4.5.2 Mesajele (protocolul Needham-Schroeder) ................................ ................................ ................... 24 4.5.3 Vulnerabilitatile Kerberos ................................ ................................ ................................ ............... 26 4.5.4 Concluzie................................ ................................ ................................ ................................ ........ 27 4.6 Biometrie ................................ ................................ ................................ ................................ ................ 27 4.6.1 Smart Carduri ................................ ................................ ................................ ................................ . 27 4.6.2 Biometrie ................................ ................................ ................................ ................................ ........ 30 4.7 Semnatura digitala i autentificarea ................................ ................................ ................................ ....... 30 4.8 PKI................................ ................................ ................................ ................................ .......................... 33 4.8.1 Generalitati ................................ ................................ ................................ ................................ ..... 33 4.8.2 Mod de functionare................................ ................................ ................................ ......................... 33 4.8.3 Avantajele PKI ................................ ................................ ................................ ................................ 35 4.9 Secret sharing ................................ ................................ ................................ ................................ ........ 36 4.10 Probleme rezolvate ................................ ................................ ................................ ............................ 38 4.11 Probleme nerezolvate ................................ ................................ ................................ ........................ 39 Securitatea reelelor ................................ ................................ ................................ ................................ ...... 39 5.1 SSL Secure Socket Layer ................................ ................................ ................................ .................. 39 5.2 VPN ................................ ................................ ................................ ................................ ........................ 43 5.3 Sistem de detectare a intrusilor................................ ................................ ................................ .............. 45 5.3.1 Introducere ................................ ................................ ................................ ................................ ..... 45 5.3.2 Componentele SDI-urilor................................ ................................ ................................ ................ 45 5.3.3 Ierarhia SDI-urilor. ................................ ................................ ................................ .......................... 46 5.3.4 Testarea unor sisteme de detectare a intrusilor. ................................ ................................ ............ 46 5.4 Probleme rezolvate ................................ ................................ ................................ ................................ 48 5.5 Probleme nerezolvate ................................ ................................ ................................ ............................ 49 bash - GNU Bourne-Again SHell ................................ ................................ ................................ ................... 50 6.1 Descriere ................................ ................................ ................................ ................................ ................ 50 6.2 Optiuni ................................ ................................ ................................ ................................ .................... 50 6.3 Argumente ................................ ................................ ................................ ................................ .............. 51 6.4 Rulare ................................ ................................ ................................ ................................ ..................... 51 6.5 Comenzi simple ................................ ................................ ................................ ................................ ...... 52 6.6 Parametrii ................................ ................................ ................................ ................................ ............... 53 6.7 Probleme nerezolvate ................................ ................................ ................................ ............................ 57 Bibliografie ................................ ................................ ................................ ................................ ..................... 58

2 Sisteme IT i probleme de securitate


Sisteme informatice nainte de a ncepe prezentarea problemelor de securitate s definim mai ntai ce nseamna un sistem IT. IT vine din limba englez i este prescurtarea pentru information technology: o ramur a ingineriei care se ocup de foloirea computerelor i a tiinei telecomunicaiilor pentru a primi, stoca i transmite informaii. Deci un sistem IT va fi un sistem cu ajutorul cruia se pot efectua schimburi de date ntre mai muli utilizatori. Pentru a se putea efectua acest schimb de date, utilizatorii trebuie s fie interconectai prin intermediul unei reele. Nu se pune problema de securizare a unui calculator care nu este legat la nici o reea deoarece prin simpla sa izolare problema este rezolvat, el nefiind accesibil vreunui atac electronic. Deci problema securitii sistemelor IT se confund cu problema securitii reelelor de calculatoare. Importana aspectelor de securitate n reelele de calculatoare a crescut odat cu extinderea prelucrrilor electronice de date i a transmiterii acestora prin intermediul reelelor. n cazul operrii asupra unor informaii confideniale, este important ca avantajele de partajare i comunicare aduse de reelele de calculatoare s fie susinute de faciliti de securitate substaniale. Acest aspect este esenial n condiiile n care reelele de calculatoare au ajuns s fie folosite inclusiv pentru realizarea de operaiuni bancare, cumprturi sau plata unor taxe. n urma implementrii unor mecanisme de securitate ntr-o reea de calculatoare, informaiile nu vor putea fi accesate sau interceptate de persoane neautorizate (curioase sau, eventual, chiar ru intenionate) i se va mpiedica falsificarea informaiilor transmise sau utilizarea clandestin a anumitor servicii destinate unor categorii specifice de utilizatori ai reelelor. Persoanele care atenteaz la securitatea reelelor pot aparine unor categorii diverse, comitnd delicte mai mult sau mai putin grave: studeni care se amuz ncercnd s fure posta electronic a celorlali, hackeri care testeaz securitatea sistemelor sau urmresc s obtin n mod clandestin anumite informaii, oameni de afaceri care ncearc s descopere strategiile adversarilor, persoane care realizeaz fraude financiare (furtul numerelor de identificare a crilor de credit, transferuri bancare ilegale etc.), spioni militari sau industriali care ncearc s descopere secretele / strategiile adversarilor, sau chiar teroristi care fur secrete strategice. n condiiile n care pot exista interese att de numeroase de atac asupra unei reele, este evident c proiectanii resurselor hard i soft ale acesteia trebuie s ia msuri de protecie serioase mpotriva unor tentative ru intenionate. Metode de protecie care pot stopa atacatorii accidentali se pot dovedi inutile sau cu un impact foarte redus asupra unor adversari redutabili - dedicai i cu posibiliti materiale considerabile. 2.2 Obiective de securitate 2.1

Problemele de asigurare a securitii reelelor pot fi grupate n urmtoarele domenii interdependente: 1. confidenialiatea se refer la asigurarea accesului la informaie doar pentru utilizatorii autorizai i mpiedicarea accesului pentru persoanele neautorizate; 2. integritatea se refer la asigurarea consistenei informaiilor (n cazul transmiterii unui mesaj prin reea, integritatea se refer la protecia mpotriva unor tentative de falsificare a mesajului); 4

3. autentificarea asigur determinarea identitii persoanei cu care se comunic (aspect foarte important n cazul schimbului de informaii confideniale sau al unor mesaje n care identitatea transmitorului este esenial); 4. ne-repudierea se refer la asumarea responsabilitii transmiterii unor mesaje sau comenzi, la autenticitatea lor. Acest aspect este foarte important n cazul contractelor realizate ntre firme prin intermediul mesajelor electronice: de exemplu, un contract / comand cu o valoare foarte mare nu trebuie s poat fi ulterior repudiat() de una din pri (s-ar putea susine, n mod fraudulos, c nelegerea iniial se referea la o sum mult mai mic). Concret implementarea unor mecanisme de securitate n reelele de calculatoare de arie larg, n particular - Internetul, priveste rezolvarea i prevenirea urmtoarele tipuri de atacuri: - bombardarea cu mesaje - asa numitul spam - trimiterea de mesaje nedorite, de obicei cu un coninut comercial. Acest fenomen este neplcut n cazul unui numr mare de mesaje publicitare nedorite i poate avea efecte mai grave n cazul invadrii intenionate cu mesaje (" flood"), uzual cu un coninut nesemnificativ. - rularea unui cod (program) duntor, adesea de tip virus - acesta poate fi un program Java sau ActiveX, script JavaScript sau VBScript etc. ; - infectarea cu virui specifici anumitor aplicaii - se previne prin instalarea unor programe antivirus care detecteaz viruii, deviruseaz fiierele infectate i pot bloca accesul la fiierele care nu pot fi "dezinfectate". - accesarea prin reea a calculatorului unui anumit utilizator i "atacul" asupra acestuia. La nivelul protocoalelor de reea, protejarea accesului la un calculator sau la o reea de calculatoare se realizeaz prin mecanisme de tip firewall, prin comenzi specifice; acestea pot fi utilizate i n sens invers, pentru a bloca accesul unui calculator sau a unei reele de calculatoare la anumite faciliti din Internet. - interceptarea datelor n tranzit i eventual modificarea acestora - sniffing. Datele se consider interceptate atunci cnd altcineva dect destinatarul lor le primete. n Internet, datele se transmit dintr-un router n altul fr a fi (uzual) protejate. Routerele pot fi programate pentru a intercepta, eventual chiar modifica datele n tranzit. Realizarea unei astfel de operaii este destul de dificil, necesitnd cunostinte speciale de programare n reele i Internet, dar exist numeroase programe care pot fi utilizate n aceste scopuri, ceea ce duce la creterea riscului de interceptare a datelor. Transmisia protejat a datelor trebuie s garanteze faptul c doar destinatarul primete i citeste datele trimise i c acestea nu au fost modificate pe parcurs (datele primite sunt identice cu cele trimise). Modificarea datelor s-ar putea realiza n mod intenionat, de ctre o persoan care atenteaz la securitatea reelei sau printr-o transmisie defectuoas - expedierea de mesaje cu o identitate fals, expeditorul impersonnd pe altcineva (pretinde c mesajul a fost trimis de la o alt adres de post electronic) - spoofing. Aceast problem se revolv prin implementarea unor mecanisme de autentificare a expeditorului. Se poate remarca faptul c problemele ridicate la primele 4 subpuncte sunt riscuri generice, specifice pentru utilizatorii care fac schimb de fiiere i respectiv pentru toi cei care sunt conectati la o reea de calculatoare - local sau de arie larg. Problemele de interceptare i autentificare, cele mai importante din punctul de vedere al utilizatorilor obisnuii, sunt rezolvate prin aplicarea unor tehnici de criptare. 5

Pentru asigurarea securittii reelei este important implementarea unor mecanisme specifice pornind de la nivelul fizic (protecia fizic a liniilor de transmisie ), continund cu proceduri de blocare a accesului la nivelul reelei (firewall), pn la aplicarea unor tehnici de criptare a datelor, metod specific pentru protecia comunicrii ntre procesele de tip aplicaie care ruleaz pe diverse calculatoare din reea. mpiedicarea interceptrii fizice este n general costisitoare i dificil; ea se poate realiza mai facil pentru anumite tipuri de medii (de exemplu, detectarea int erceptrilor pe fibre optice este mai simpl dect pentru cablurile cu fire de cupru). De aceea, se prefer implementarea unor mecanisme de asigurare a securittii la nivel lo gic, prin tehnici de codificare/criptare a datelor transmise care urmresc transf ormarea mesajelor astfel nct s fie nelese numai de destinatar; aceste tehnici devin mijlocul principal de protecie a reelelor. Criptografia tradiional Modelul clasic de criptare presupune transformarea unui text surs ("plain text") printr-o functie dependent de o cheie ("key"), transformare n urma creia rezult textul cifrat ("ciphertext"). Domeniul care se ocup de spargerea (decodificarea) cifrurilor se numete criptanaliz ("cryptanalysis") iar conceperea cifrurilor (criptografia) i spargerea lor (criptanaliza) sunt cunoscute global sub numele de criptologie ("cryptology"). ntr-o ncercare de formalizare matematic a proceselor de criptare i decriptare, se pot folosi urmtoarele notaii: S - textul surs, CK - functia de criptare, dependent de o cheie K, R - codul rezultat i DK - functia de decriptare. Cu aceste notaii, criptarea este exprimat prin formula: R = CK(S) iar decriptarea - prin S = DK(R). Se observ c DK(CK(S)) = S. Modelul de baz al criptrii folosete o metod general cunoscut, care este parametrizat cu o cheie secret, ce poate fi schimbat usor. n mod paradoxal, publicarea algoritmului de criptare, prin faptul c d posibilitatea unui numr mare de criptologi s sparg sistemul, i poate dovedi stabilitatea, n caz c dup ctiva ani nici unul din specialitii care au ncercat s-l sparg nu a reuit. Componenta secret a criptrii este, n consecin, cheia, a crei lungime devine foarte important. n mod evident, cu ct cheia este mai lung, cu att elementele ei sunt mai greu de determinat. De exemplu, pentru o secvent de n cifre (0,...,9), exist 10 n posibilitti de a o crea. Astfel, pentru determinarea unei secvente de 6 cifre ar trebui parcurse 1 milion de posibilitti. n cazul n care cheile ar contine litere, numrul de alternative crete fiindc n alfabet exist 26 de litere. Se poate deduce c lungimea cheii produce creterea exponential a volumului de munc al criptanalistului. O cheie care s poat ine la distant adversari profesionisti ar trebui s aib cel puin 256 de biti (cel putin 32 de cifre), n timp ce uzual se pot folosi chei de 64 de bii (n jur de 8 cifre). Exist dou metode traditionale de criptare: cifruri cu substituie i cifruri cu transpoziie. Aceste tehnici de baz sunt folosite, n forme evoluate, i n sistemele moderne de criptare. Cifrurile cu substituie . ntr-un asemenea cifru, fiecare liter sau grup de litere este nlocuit() cu o alt liter sau cu un grup de litere. Cel mai vechi exemplu este cifrul lui Cezar, prin care a devine D, b devine E, ..., z devine C. Prin generalizare, alfabetul poate fi deplasat cu k litere n loc de 3. n acest caz, k devine cheia pentru metoda general a alfabetelor deplasate circular. O alt metod de substituie este nlocuirea fiecrei litere din textul surs cu o anumit liter corespondent. Sistemul se numete substituie monoalfabetic i are ca i cheie un ir de 26 de litere. Pentru o persoan neavizat, acest sistem ar putea fi considerat sigur fiindc ncercarea tuturor celo r 26! de 6 2.3

chei posibile ar necesita unui calculator 1013 ani alocnd 1msec pentru fiecare soluie. Totusi, folosind o cantitate foarte mic de text cifrat, cifrul va putea fi spart cu usurint. Abordarea de baz porneste de la propriettile statistice ale limbajelor naturale. Cunoscnd frecventa statistic a fiecrei litere i a fiecrui grup de dou sau trei litere (de exemplu, n limba romn: ce, ci, ge, gi, oa, ua etc.) ntr-o anumit limb, numrul mare de alternative initiale se reduce considerabil. U n criptanalist va numra frecventele relative ale tuturor literelor n textul cifrat i va ncerca s fac asocierea cu literele a cror frecvent este cunoscut. Apoi va cuta grupurile de litere, ncercnd s coroboreze indiciile date de acestea cu cele furnizate de frecventele literelor. O alt abordare, aplicabil dac exist informaii despre domeniul la care se refer textul, este de a ghici un cuvnt sau o expresie probabil (de exemplu, "financiar" pentru un mesaj din contabilitate) i de a cuta corespondentul su, folosind informaii despre literele repetate ale cuvntului i pozitiile lor relative. Abordarea se poate combina cu informaiile statistice legate de frecventele literelor. Cifruri cu transpoziie . Spre deosebire de cifrurile cu substituie, care pstreaz ordinea literelor din textul surs dar le transform, cifrurile cu transpoziie ("transposition ciphers") reordoneaz literele, fr a le "deghiza". Un exemplu simplu este transpoziia pe coloane, n care textul surs va fi scris liter cu liter i apoi citit pe coloane, n ordinea dat de o anumit cheie. Ca i cheie se poate alege un cuvnt cu litere distincte, de o lungime egal cu numrul de coloane folosite n cifru. Ordinea alfabetic a literelor din cuvntul cheie va da ordinea n care se vor citi coloanele. Unele proceduri de criptare accept blocuri de lungime fix la intrare i genereaz tot un bloc de lungime fix. Aceste cifruri pot fi descrise complet prin lista care defineste ordinea n care caracterele vor fi trimise la ieire (irul pozitiilor din textul de intrare pentru fiecare caracter din succesiunea generat). Problema construirii unui cifru imposibil de spart a preocupat ndelung pe criptanalisti; ei au dat o rezolvare teoretic simpl nc de acum cteva decenii dar metoda nu s-a dovedit fiabil din punct de vedere practic, dup cum se va vedea n continuare. Tehnica propus presupune alegerea unui ir aleator de biti pe post de cheie i aducerea textului surs n forma unei succesiuni de biti prin nlocuirea fiecrui caracter cu codul su ASCII. Apoi se aplic o operaie logic - de tip Sau exclusiv (operaia invers echivalentei: 0 xor 0 = 0, 0 xor 1 = 1, 1 xor 0 = 1, 1 xor 1 = 0) - ntre cele dou iruri de biti. Textul cifrat rezultat nu poate fi spart pentru c nu exist indicii asupra textului surs i nici textul cifrat nu ofer criptanalistului informaii. Pentru un esantion de text cifrat suficient de mare, orice liter sau grup de litere (diftong, triftong) va aprea la fel de des. Acest procedeu este cunoscut sub numele de metoda cheilor acoperitoare. Desi este perfect din punct de vedere teoretic, metoda are, din pcate, cteva dezavantaje practice: - cheia nu poate fi memorat, astfel nct transmittorul i receptorul s poarte cte o copie scris a ei fiindc n caz c ar fi "capturati", adversarul ar obtine cheia; - cantitatea total de date care poate fi transmis este determinat de dimensiunea cheii disponibile; - o nesincronizare a transmittorului i receptorului care genereaz o pierdere sau o inserare de caractere poate compromite ntreaga transmisie fiindc toate datele ulterioare incidentului vor aprea ca eronate. Caracteristici ale criptografiei moderne Avnd n vedere faptul c transmisia de date n Internet este neprotejat, a aprut necesitatea dezvoltrii tehnicilor de criptare n directia automatizrii acestora i a implementrii lor n reele de calculatoare. Astfel, utilizarea unor algoritmi pentru criptarea informaiilor transmise va deveni principalul mijloc de rezolvare a problemelo r de interceptare n reele. 7 2.4

n descrierea unei transmisii de date prin reea se obisnuieste s se numeasc generic "mesaj" un ansamblu de date trimis de un "emittor" unui "receptor". Printr-o metod de criptare, mesajele vor fi transformate, pe baza unei chei de criptare, astfel nct s poat fi ntelese doar de destinatar. Unul din principiile mai recent aprute n criptanaliz const n utilizarea unei alte chei pentru decodificarea mesajului dect cea folosit la codificare; aceast tehnic este mai eficient dar complic putin procedeul general i de aceea se prefer cnd criptarea / decriptarea se realizeaz automat. Evident, dimensiunea unei chei de criptare (exprimate n general n biti) este o msur a nivelului de securitate dat de acea cheie, ea indicnd rezistenta mesajului cifrat la ncercrile de descifrare de ctre cineva care nu detine cheia de descifrare potrivit. Principiile de criptare din algoritmii cu cheie secret au evoluat odat cu aparitia calculatoarelor; ele continu ns s se bazeze pe metodele traditionale, cum ar fi transpoziia i substituia. Algoritmii cu cheie secret sunt caracterizati de faptul c folosesc aceeasi cheie att n procesul de criptare, ct i n cel de Din acest motiv, acesti algoritmi mai sunt cunoscuti sub numele de algoritmi simetrici ; pentru aplicarea lor este necesar ca naintea codificrii / decodificrii, att emittorul ct i receptorul s posede deja cheia respectiv. n mod evident, cheia care caracterizeaz acesti algoritmi trebuie s fie secret. Principalul dezavantaj al algoritmilor simetrici const n faptul c impun un schimb de chei private nainte de a se ncepe transmisia de date. Altfel spus, pentru a putea fi utilizati, este necesar un canal cu transmisie protejat pentru a putea fi transmise cheile de criptare / decriptare. Ulterior, vor aprea i algoritmi cu cheie public, caracterizati prin faptul c criptarea i decriptarea folosesc chei diferite. Aceast caracteristic a dat algoritmilor cu cheie public i numele de algoritmi asimetrici. n acest caz, una dintre chei poate fi public (general cunoscut - poate fi distribuit oricui) iar cealalt va trebui s privat / secret (cunoscut doar de cel care o folosete). Fiecare dintre aceste chei poate cripta mesajul, dar un mesaj criptat cu o anumit cheie nu poate fi decriptat dect cu cheia sa pereche. Astfel, n cazul utilizrii unui algoritm asimetric n comunicarea dintre un emittor i un receptor, fiecare dintre acestia va detine cte o pereche de chei - public i privat. Emittorul poate cripta mesajul cu cheia public a receptorului, astfel nct doar acesta s poat decripta mesajul cu cheia sa privat. n cazul unui rspuns, receptorul va utiliza cheia public a emittorului astfel nct decriptarea s se poat face exclusiv de ctre emittor (cu cheia sa pereche, privat). Cheile algoritmilor asimetrici sunt obtinute pe baza unei formule matematice din algebra numerelor mari, pentru numere prime ntre ele, iar din valoarea unei chei nu poate fi dedus valoarea cheii asociate. Remarcm faptul c aplicarea n informatic a calculelor modulo numere prime s-a dovedit extrem de benefic pentru multi algoritmi moderni. Traditional, criptografii foloseau algoritmi simpli asociati cu chei de securitate foarte lungi. Azi se urmreste crearea unor algoritmi de criptare att de complecsi nct s fie practic ireversibili, chiar dac un criptanalist achizitioneaz cantitti foarte mari de text cifrat. O alt caracteristic a criptografiei moderne const n automatizarea tehnic ilor clasice, prin foloirea unor dispozitive special concepute. Transpozitiile i substitutiile vor fi implementate cu circuite simple, de vitez mare, care vor fi conectate n cascad astfel nct dependenta ieirii de intrare devine extrem de complicat i dificil de descoperit. n 1977, guvernul SUA a adoptat ca standard oficial pentru informaiile nesecrete un cifru produs i dezvoltat de IBM, numit DES (Data Encryption System), care a fost larg adoptat n industrie. DES este cel mai popular algoritm cu cheie secret; el continu s 8

stea la baza unor sisteme folosite n mod curent. DES folosete (uzual) o cheie de 56 de biti; aceasta a fost n cele din urm adoptat n locul uneia de 128 de biti, neagreat de NSA (National Security Agency), agentia "sprgtoare de coduri a guvernului", care dorea suprematia n domeniul criptografic. Din 1977, cercettorii n criptografie au ncercat s proiecteze masini pentru a sparge DES. Prima asemenea masin (1977) a fost conceput de Diffie i Hellman, avea nevoie de mai putin de o zi iar costul ei a fost estimat la 20 de milioane de dolari. Dup aproape 2 decenii, costul unei astfel de masini a ajuns la 1 milion de dolari iar timpul necesar spargerii codului a scazut la 4 ore. Ulterior, s -au dezvoltat i alte metode, cum ar fi foloirea unui cip DES ncorporat (loteria chinezeasc). n scopul decriptrii s-ar mai putea folosi mecanisme soft specifice (cum ar fi algoritmul asimetric Diffie-Hellman) i resursele libere ale unor calculatoare cu destinatie universal. Astfel, s-a demonstrat c rularea pe mai multe calculatoare a unor programe distribuite de criptare (uzual, pe un numr mare de masini, de ordinul miilor sau chiar zecilor de mii) crete considerabil eficienta procesului de decriptare. Un alt cifru renumit este IDEA (International Data Encryption Algorithm), realizat de doi cercettori la Politehnica Federal din Zrich (ETHZ). Acest algoritm folosete o cheie de 128 de biti i este inspirat din metodele anterioare - DES i cele imaginate pentru spargerea DES. Un alt algoritm performant a fost descoperit de un grup de cercettori de la MIT Ronald Rivest, Adi Shamir, Leonard Adelman - i s-a numit cu initialele creatorilor lui: RSA. Algoritmul de criptare RSA folosete o cheie public. Se observ c utilizarea unor astfel de algoritmi de criptare a datelor asigur transmisii confideniale de date n reele neprotejate, rezolvnd problema interceptrii. De fapt, riscul de interceptare / modificare nu dispare cu totul, din cauz c orice mesaj criptat poate fi n general decriptat fr a detine cheia corespunztoare, dac se dispune de suficiente resurse materiale i de timp. Evident, dimensiuni variate ale cheii asigur diferite grade de confidenialitate iar perioada de timp necesar pentru decriptare poate fi prevzut n functie de mrimea cheii utilizate. Totusi, dac procesul de decriptare este lent, este posibil ca n momentul n care s-ar obtine datele dorite, acestea s nu mai fie actuale sau utile. Timpul de decriptare depinde n mod natural i de puterea procesoarelor utilizate n acest scop, astfel nct utilizarea distribuit a unui foarte mare numr de procesoare poate duce la o micsorare considerabil a timpului necesar. Din acest motiv, pentru transmisii de date n care este necesar o confidenialitate stricta se utilizeaz chei de dimensiuni mult mai mari, chiar pentru algoritmul DES (de 256, 512, 1024 i chiar 2048 sau 4096 de biti), stiut fiind c timpul necesar decriptrii crete exponential cu dimensiunea cheii de criptare / decriptare. Pentru utilizatorii obisnuiti ai Internet-ului, cei mai convenabili algoritmi de criptare sunt cei cu cheie public fiindc foloirea lor nu implic schimbul preliminar de chei pe canale de transmisie protejate, ca n cazul algoritmilor cu cheie secret. Cheia public poate fi distribuit fr restrictii pe intranet (reeaua local) sau Internet, iar mesajele criptate cu aceast cheie de un emitator vor putea fi decriptate numai utiliznd cheia privat, care este detinut exclusiv de ctre destinatar. Astfel, nici mcar expeditorul nu ar putea realiza decriptarea mesajului trimis. Problema autentificrii Un alt domeniu n care a evoluat criptografia modern este cel al crerii unor protocoale de autentificare - tehnica prin care un proces verific dac partenerul de comunicatie este cel presupus i nu un impostor. Verificarea identittii unui proces de la distant este dificil i necesit utilizarea unor protocoale complexe, bazate pe tehnici criptografice. 9 2.5

Problema poate fi imaginat intuitiv sub forma a doi parteneri care comunic i a altuia care doreste s se introduc fraudulos n comunicatie, simulnd pe oricare din partenerii de discuie. Ca o metod de protecie, cei doi utilizatori pot stabili, de exemplu, o cheie secret de sesiune, dar aceast metod presupune transmiterea cheii printr-un canal sigur; de aceea, se prefer, ca i n cazul mpiedicrii interceptrilor, utilizarea criptrilor cu chei publice. Unul din protocoalele de autentificare folosit n sistemele n timp real se numete Kerberos (omonimul cinelui-paznic al lui Hades, care i tinea pe cei nedoriti afar). Conectia securizat la un server aflat la distant cu SSH folosete pentru autentificare un alt protocol, bazat pe algoritmul cu cheie public RSA. Problema autentificrii impune gsirea unui corespondent electronic pentru semnturile autorizate de pe documentele legale. Un asemenea corepondent se numete semntur digital i presupune existenta unui sistem prin care una din prti s poat transmite mesaje "semnate" celeilalte prti, astfel nct: - receptorul s poat verifica identitatea pe care pretinde c o are emittorul. Aceast cerint este necesar, de exemplu, n sistemele financiare: calculatorul trebuie s se asigure c un ordin de cumprare sau de plat apartine companiei cu al crei cont bancar se va opera. - transmittorul s nu poat renega ulterior coninutul mesajului. Aceast necesitate asigur protejarea bncilor mpotriva fraudelor: un client necinstit ar putea acuza banca implicat n tranzactie, pretinznd, de exemplu, c nu a emis un anumit ordin (de plat). - receptorul s nu poat pregti el nsusi mesajul. n cazul unei tranzactii financiare cu o banc, aceast cerint protejeaz clientul dac banca ncearc s-i falsifice mesajul. Ca semnturi digitale, se pot folosi semnturi cu cheie secret sau public dar, asa cum s-a explicat anterior, de obicei se prefer cheile publice. n cazul mesajelor transmise prin post electronic, riscul legat de impersonificarea expeditorului este destul de mare fiindc standardele utilizate pentru transmiterea postei electronice sunt simple i n plus au fost fcute publice (ceea ce nseamn ca oricine are acces la ele i poate s le studieze). Standardul de e-mail nu are la baz nici un sistem pentru verificarea identittii celui care trimite un mesaj de post electronic, bazndu-se pe o ncredere reciproc ntre utilizatori. Acest neajuns ar putea fi fructificat de ctre persoane ruvoitoare pentru a trimite mesaje de post electronic de pe adrese false, sau chiar de pe adrese existente, pretinznd c sunt utilizatorii care detin acele adrese de post electronic. Practic, este (aproape) imposibil identificarea unei persoane care a emis astfel de mesaje fiindc n Internet exist servere care asigur transmiterea anonim a mesajelor ("anonymous remailers"), trimitndu-le de la un server la altul de mai multe ori nainte de a le directiona ctre adevrata destinatie. Pentru autentificarea expeditorului unui mesaj (de post electronic sau un ansamblu de date transmis prin Internet n alte scopuri) se folosete cel mai adesea un sistem cu cheie public. Astfel, dac expeditorul cripteaz mesajul cu cheia privat proprie, datele pot fi decriptate doar utiliznd cheia public pereche (vezi figura de mai jos), deci oricine poate verifica faptul c mesajul a fost transmis ntr-adevr de expeditor, i nu de o persoan ce pretinde a fi expeditorul (dup cum s-a explicat deja, mesajul criptat cu o cheie poate fi decriptat doar utiliznd cheia pereche acesteia i se presupune c expeditorul este singurul care are acces la cheia sa privat). Evident c este posibil s se realizeze o criptare a mesajelor n paralel cu autentificarea, astfel nct inclusiv datele transmise s fie codificate. n acest caz, se vor utiliza perechile de chei privat, public nu numai pentru autentificare, ci i pentru criptarea, respectiv decriptarea mesajelor transmise. Practic, pentru codificarea i 10

semnarea digital a unui mesaj emis, se va realiza o criptare cu cheia privat a emittorului i apoi o criptare cu cheia public a destinatarului. Astfel, destinatarul va putea decripta mesajul i autentifica provenienta sa n condiii de securitate. Avnd n vedere faptul c algoritmii de criptare cu cheie public consum foarte mult timp, n general se implementeaz o tehnic putin diferit: se utilizeaz o criptare cu cheie public pentru transmiterea unei chei secrete generate aleator (deci cheia secret este criptat i eventual se poate utiliza i autentificarea expeditorului), dup care datele propriu-zise vor fi transmise criptate cu un algoritm simetric utiliznd cheia secret schimbat anterior. Aceast metod mbuntteste considerabil viteza de transmisie i de criptare / decriptare. Practic, pentru o identificare ct mai riguroas a expeditorului se utilizeaz un sistem complex, bazat pe certificare, n care fiecare utilizator detine un certificat (ce are atasat o cheie public i o cheie privat, secret). Acesta este emis de o autoritate de certificare recunoscut, n urma examinrii, pe baz de acte, a identittii reale a persoanei. n momentul n care se doreste identificarea unei persoane, o cutare n baza de date a organizatiei respective va indica indentitatea expeditorului (pe baza cheii publice a acestuia, care este unic n lume). Acest sistem este implementat sub forma unei structuri n care fiecare autoritate de certificare poate mputernici la rndul ei alte organizaii s emit certificate de autentificare, astfel nct originea unui certificat poate fi verificat n mod complet testnd validitatea certificatului, apoi validitatea certificatului detinut de organizatia care a emis certificatului respectiv, i asa mai departe. Sistemul de certificate digitale este utilizat nu numai pentru protejarea comunicaiilor, ci i pentru certificarea originii programelor. Astfel, prin folo irea unei criptri a programului de instalare cu cheia public a firmei productoare, utilizatorul poate verifica relativ usor c acel program a fost creat ntr-adevr de o anumit firm i pentru a decide dac s instaleze sau nu programul. Aceasta este practic cea mai bun soluie de rezolvare a problemei rulrii de programe / coduri duntoare, enuntat la nce putul acestui capitol. Implicaii sociale ale problemelor de securitate Din motive strategice lesne de nteles, dezvoltarea tehnicilor criptografice este o problem delicat i n general politicile guvernamentale ncearc s tin sub control acest domeniu. Evident c aceast abordare nu este pe placul cercettorilor care urmresc evolutia algoritmilor n primul rnd din ratiuni stiintifice i nici al publicului larg, n msura n care s-ar leza liberttile individuale. Un caz renumit de reactie guvernamental negativ la distribuirea unui soft criptografic, dezbtut n cele din urm instant juridic, este cel al sistemului de post electronic criptat Pretty Good Privacy, creat de Phil Zimmerman i distribuit pe Internet. n unele tri (de exemplu, Franta), criptografia neguvernamental este interzis, cu exceptia cazurilor n care guvernul primete toate cheile utilizate. De asemenea, interceptrile guvernamentale ale comunicaiilor private s-au practicat pe scar destul de extins. De exemplu, guvernul SUA a propus o tehnic de criptare a viitoarelor telefoane digitale care include o caracteristic special ce ar permite institutiilor autorizate (si care detin un ordin judectoresc n acest sens) interceptarea i decriptarea oricrui apel telefonic din SUA. Acest subiect a iscat numeroase discutii contradictorii att din punct de vedere din punct de vedere tehnologic (au fost propuse chiar metode de contracarare a procedeului), ct i juridic fiindc, pe de o parte, ar putea fi lezate liberttile individua le iar, pe de alt parte, s-ar putea asigura depistarea unor actiuni antisociale. 2.6

11

Cteva protocoale "sigure" Pentru a se asigura aplicarea metodelor de criptare i autentificare anterior descrise, au fost dezvoltate sisteme specifice de transmisii de date, bazate pe un transfer securizat al datelor. Secured Socket Layer este un sistem dezvoltat de firma Netscape Communications care asigur criptarea pentru comunicrile realizate ntre dou orice calculatoare din Internet prin intermediul protocolului universal folosit - TCP/IP. SSL se bazeaz pe criptarea cu cheie public i functioneaz n dou etape: ntr-o prim etap se stabileste o cheie special de sesiune (transmis ntr-o form criptat folosind cheia public); aceast cheie va fi utilizat n cea de a doua faz pentru o criptare rapid a datelor. SSL asigur: - autentificarea serverului pe baza certificatelor digitale (care descurajeaz impostorii); - confidenialitatea transmisiilor (prin criptare); - integritatea datelor transmise (prin coduri de verificare). Un alt protocol de transmitere securizat a datelor este SHTTP - Secured HyperText Transfer Protocol, care constituie o variant "sigur" a protocolului nativ de transfer al paginilor web - HTTP. SHTTP a fost dezvoltat de asociatia CommerceNet i asigur criptarea documentelor web transmise, utilizarea semnturilor digitale i a unui cod de autentificare pentru integritatea mesajelor. n mod evident, transferul protejat al datelor n procesul de navigare pe web este de mare interes n comertul electronic i permite realizarea de tranzactii financiare confideniale i operaii comerciale pe cale electronic. Implementri similare au fost dezvoltate i pentru sistemele de post electronic: S/MIME sau PGP/MIME.

2.7

2.8 Troieni
Un troian reprezinta un program destructiv care se ascunde in spatele unei aplicaii inofensive, punand una dintre cele mai mari probleme de securitate la ora actuala. Un astfel de troian poate fi un program care pretinde curatarea calculatorul de virui, dar in schimb ii introduce in calculator. Potrivit legendei (Iliada lui Homer), grecii au daruit un urias cal din lemn inamicilor lor, troienii, drept o oferta de pace. Dar dupa ce troienii au introdus calul in interiorul zidurilor cetaii, soldaii greci s-au furisat afara din cal i au deschis portile cetaii, lasandu-i pe compatriotii lor sa patrunda i sa captureze Troia. De aici vine numele acestei aplicaii. Programele de acest fel sunt de obicei de doua tipuri: primul este reprezentat de utilitare soft uzuale care au fost modificate de o persoana prin introducerea de cod distructiv care se executa in timp ce programul ruleaza (de exemplu programe care furnizeaza starea vremii, care seteaza ora i data exacta, utilitare peer-to-peer); al doilea tip sunt programe independente care iau forma unui joc sau a unei imagini pentru a pacali utilizatorul sa declanseze actiunile distructive. Felul in care lucreaza troienii este foarte simplu. Un troian de tip client/server de exemplu este alcatuit in general din doua parti: partea de client i cea de server . Ideea este ca victima sa ia serverul care asculta pe un anumit port. Clientul este folosit pentru conectarea la IP-ul victimei i portul deschis al victimei, pe care troianul asculta. Serverul, odata activat, se ascunde in memorie i face anumite schimbari in sistemul victimei. Va adauga o intrare la start-up in registrul sistemului sau in AUTOEXEC.BAT, WIN.INI, sau alt fiier similar. Astfel, serverul va putea porni automat, odata cu sistemul de operare. Serverul poate fi astfel configurat incat odata ce victima a deschis fiierul, acesta sa se dizolve, pentru a nu putea fi vazut. Serverul poate de asemenea sa fie setat pentru a trimite detaliile victimei la o adresa de e-mail. Odata ce victima este infectata, se 12

poate deschide clientul i sa se conecteze la aceasta cu portul i parola setate, iar odata conectat se pot face multe actiuni nepermise. Iata o lista cu functiile cele mai cunoscute ale trojenilor: FileManager - este folosita pentru a accesa HardDisk-ul victimei.FileManager-ul va avea in mod normal alte cateva functii, printre care Upload, Download, Execute, Execute hidden, Show image, Set image as wallpaper, Play sound, Delete a file, Move File, Make new folder, sau Copy file. Find Files se poate cauta orice fiier pe HardDisk-ul victimei. Manual commands - este folosita pentru a putea introduce anumite comenzi manual, in loc de a le cauta prin meniu. Live Capture - este o functie prin care se pot face imagini ale desktop-ului, una dupa alta, pentru a putea vedea ce face victima. Open/Close CD-ROM deschide sau inchide CD-ROM-ul. Hide/Show Start Button afiseaza sau ascunde butonul de Start. Set system date - seteaza data curenta. MessageBoxes permite trimiterea de diferite mesaje de eroare victimei. System colors permite schimbarea culorilor sistemului. Set resolution se pot modifica setarile ecranului victimei. Mouse Options - activarea/dezactivarea mouse-ului victimei, schimbarea butoanelor sau chiar miscarea cursorului pe ecran. Goto URL deschiderea unei pagini in browser-ul victimei. Print text imprimarea de texte la imprimanta victimei. Remote host info aduna informaii despre calculatorul victimei. Spre deosebire de virui, troienii nu dispun de mecanisme de replicare. Acest tip de malware se bazeaza pe naivitatea utilizatorilor pentru declansarea actiunilor distructive. Pentru a evita infectarea cu troieni se recomanda: sa nu se faca download-uri din surse nesigure chiar daca programul este preluat dintr-o sursa de incredere acesta ar trebui verificat prin foloirea unui program specializat sa se evite ascunderea extensiilor (putand fui depistate astfel executabilele) sa nu se foloseasca in aplicaii facilitati care permit download-ul sau preview-ul automat al fiierelor sa nu se execute comenzi sugerate de alte persoane, sa nu se viziteze pagini sau sa se ruleze programe sugerate de acestia prezenta unui anti-virus nu garanteaza securitatea sistemului Printre troianii cunoscuti se numara: SubSeven (folosit pentru schimbarea unor setari ale sistemului, incarcarea anumitor pagini web sau chiar aflarea unor detalii cum ar fi numarul cartii de credit), NetBus, BackOrifice (folosit pentru controlul de la distanta a unei staii pe care ruleaza sistemul Windows), BackOrifice2000, BeastTrojan (troian de tip client/server). BeastTrojan BeastTrojan este un troian de Windows de tip backdoor (o aplicaie backdoor incearca sa preia controlul asupra sitemului incercand sa ramana ascunsa la eventualele detectii), cunoscut i sub numele de RAT (Remote Administration Tool). Acest program poate infecta aproape orice sistem care are instalat sistemul de operare Windows. A fost scris in Delphi i folosete mecanismul de tip client/server, clientul fiind rulat de catre atacator, iar serverul infecteaza victima. Beast este unul dintre primii troiani care contine capacitatea de conexiune inversa la victime care, odata stabilita, permite controlul total asupra calculatorului infectat. Folosind aceasta facilitate atacatorul nu mai trebuie sa cunoasca ip-ul destinatiei, server-ul conectandu-se la un DNS predefinit care este redirectat la ip-ul atacatorului. DLL-urile troianului sunt inserate intr-un utilitar obisnuit (cum 13

ar fi explorer.exe, iexplore.exe, msnmsgr.exe) ceea ce permite incarcarea automata in memorie a troianului cand aceste procese sunt executate. Locaiile preferate pentru infectare sunt: - C:\Windows\msagent\ms****.com (30KB-49KB) - C:\Windows\System32\ms****.com (30KB-49KB) - C:\Windows\dxdgns.dll or C:\Windows\System32\dxdgns.dll (in functie de alegerea atacatorului) Porturile implicite pentru conexiunea directa i pentru cea inversa sunt 6666 si 9999, dar acestea pot fi schimbate de atacator. Beast contine i o facilitate care ii permite sa treaca de un firewall i are abilitatea sa inchida un proces de tip firewall sau anti-virus. De-asemenea poate combina doua sau mai multe fiiere intr-unul singur i le poate schimba iconita. Editorul de server are urmatoarele functionalitati: conexiunea directa sau inversa setarea procesului caruia i se ataseaza DLL-urile schimbarea numelui serverului setarea dierctorului de instalare a serverului oprirea proceselor de tip firewall sau antivirus alte optiuni (stergerea fiierului pentru server, mesaje false de eroare, schimbarea iconitelor, detectarea apasarii unor taste) Odata conectat la victima BeastTrojan permite: download/upload de fiiere, aflarea coninutului directoarelor de pe masina victima, executarea sau stergerea de fiiere editarea registrilor luarea de screenshot-uri i activarea webcam-ului diferite actiuni asupra proceselor rezidente in memorie preluarea parolelor retinute de sitemul de operare sau a textelor prezente in clipboard resetarea sau inchiderea sistemului control asupra mouse-ului, a desktop-ului sau a cd-rom-ului comunicarea intre componenta client i cea server controlul serverului

2.9 Probleme rezolvate


1. Enumerati si descrieti 3 tipuri de vulnerabilitati detectate de GFI LANGuard Scanner? a) Missing Services Packs : verifica lipsa service pack-urilor pentru diferite b) programe instalate in sistem (ex Microsoft Office, Windows, etc) c) Missing Patches : verifica instalarea ultimelor pachete de securitate pentru d) sistemul de operare si pentru programele instalate pe acesta e) Cached Logon Credentials : verifica starea optiunii de cache a datelor despre f) operatia de logon a utilizatorilor 2. Ce vulnerabilitati sunt observate cel mai adesea pe serverele instalate cu windows 2003 Server? Lipsa unui patch de securitate la nivelul sistemului de operare. 3. De ce existenta unui utilizator inactiv in sistem ar putea fi o problema de securitate? Existenta unui utilizator inactiv in sistem este o problema de securitate pentru ca un astfel de utilizator n-ar trebui sa aiba acces la resurse si la categoria vulnerabilitati apar toti utilizatorii inactivi din sistem si este recomandata stergerea contului respectiv de utilizator. 4. Ce porturi sunt deschise de obicei pe un calculator oarecare? Ce protocoale functioneaza pe ele? 14

- 80 - HTTP - 139 - Netbios-ssn - 445 - Microsoft-Ds - 138- UDP pentru File Sharing - 3389 - TCP Remote Desktop Connection 5. Ce s-ar scana daca pe interfata GFi se lasa toate obtiunile default si se scaneaza 192.168.39.0? Nu se scaneaza nimic. 6. Ce capabilitati are un server de antivirus de retea? Un server de antivirus de retea are urmatoarele capabilitati: - securizarea traficului Web si SMTP - protectie impotriva virusilor,viermilor, troienilor si pentru fisierele de pe dispozitive de stocare atasate la retea - poate scana pe toate statiile din retea - poate fi programat sa scaneze la anumite intervale de timp - poate arata ce virusi au fost detectati in ultima perioada de timp, pe ce statii si la ce utilizatori - poate arata care statie a fost cel mai frecvent atacata de virusi si la ce utilizat or au fost detectati cel mai frecvent virusi 7. Pot fi instalati noi clienti de antivirus folosind consola serverului de antivirus? In ce conditii? Da, daca clientul se afla in aceeasi retea (subreatea) LAN ca si statia de pe care este accesata consola serverului de antivirus. 8. Descrieti avantajle folosirii unui server de antivirus intr -o retea. Folosirea unui server de antivirus intr-o retea are urmatoarele avantaje: - protectia retelei de virusi, viermi, troieni - daca virusul este detectat si identificat, se poate opri raspandirea lui in toata reteaua - poate fi setat folosind consola sa pentru a scana pe toate statiile din retea fara ca administratorul sa fie nevoit sa se deplaseze la fiecare statie in parte - poate fi programat sa scaneze la anumite intervale de timp - poate arata ce virusi au fost detectati in ultima perioada de timp, pe ce statii si la ce utilizatori - poate arata care statie a fost cel mai frecvent atacata de virusi si la ce utilizator au fost detectati cel mai frecvent virusi

2.10 Probleme nerezolvate


Folosind un utilitar de creat masini virtuale (de ex. vmware) raspundeti la urmatoarele intrebari: 1. Cate masini virtuale de windows xp pot fi instalate in medie pe un calculator cu 512MB? 2. Explicati pe scurt optiunea "Bridged networking" 3. Explicati pe scurt ce este un snapshot. 4. Indicati o diferenta intre masina reala si masina virtuala. 5. Daca se copiaza o masina virtuala configurata, care este deja intr-un domeniu, ce modificari trebuie facute pentru a fi ambele masini virtuale functionale?

3 Analiza riscurilor
Creterea numrului intreprinderilor i instituiilor dn ultimele decenii, are un impact puternic asupra sistemelor de calculatoare. Acestea n condiiile n care n ziua de azi 15

aeropoarte, bnci, spitale, instituii guveramentale i o serie de intreprind eri nu ar putea funciona fr s aib n spate un sistem informatic bine cldit. Se pune astfel problema securitii sistemelor IT, care ns de multe ori este neglijat, ajungndu-se astfel la situaii n care instituii mari s fie vulnerabile n faa atacurilor ru voitoare. n mare parte, aceasta se datoreaz lipsei de experien i de instruire a administratorilor de reele i a celor rspunztori cu buna funcionare a sistemelor de calcul. Internet-ul, cea mai larg i mai rspndit reea de calculatoare este n acelai timp i cea mai nesigur i mai vulnerabil n faa atacurilor i operaiilor ilegale. n acelai timp, cea mai mare parte a aplicaiilor distribuite se sprijin pe Internet. La nceputurile sale (pe vremea cnd Internet-ul era doar un proiect de studiu al comunicrii prin reele ARPANET - Advanced Research Projects Agency Network), toi utilizatorii erau considerai de ncredere; de aceea nu se punea problema construirii unor sisteme defensive mpotriva eventualelor subminri din interior. De atunci ns i pn azi, dei nu a trecut att de mult vreme, numrul de calculatoare conectate la Internet a crescut exponenial i astfel, ceea ce la nceput nu prea o ameninare, astzi este un pericol i o problem pentru care tot mai greu se gsesc rezolvri, n condiiile n care tipurile de atacuri variaz din ce n ce mai mult. Ceea ce ieri nu era privit nici mcar ca o slbiciune, astzi este o situaie care pare s fi scpat de sub control. ncercrile de a remedia aceast situaie par a fi insuficiente. Nici Internet Protocol Version 6 (IPv6), nici versiunile existente de firewall nu pot face fa tuturor tipurilor de atacuri, n condiile n care apar din ce n ce mai multe tipuri de device uri portabile, pluggable sau ncorporate, care aduc cu ele noi tipuri de acces la reea i impun luarea unor msuri de securitate din ce n ce mai variate. Problema securitii traficului prin Internet a nceput s ia amploare n momentul n care viruii au ncput s fac ravagii prin milioane de calculatoare i din ce n ce mai multe date confideniale erau furate i folosite n scopuri ilicite. Acestea au fcut ca mariile organizaii s se gndeasc la o modalitate de a lua msuri. Aceast decizie a venit ns prea trziu pentru a se mai putea gsi soluia perfect, n condiiile n care o asemenea soluie trebuia construit de la nceput, avnd drept fundaie un bun design arhitectural. S-ar spune c un sistem informaional este cu att mai probabil s fie atacat, cu ct ofer motive mai ntemeiate atacatorilor experi s ncerce s treac de bariera sa de securitate (cu ct datele stocate sunt mai importante). n ciuda acestei presupuneri, majoritatea autorilor de virui sunt amatori, al cror scop principal nu pare a fi cauzarea unor distrugeri uriae i iremediabile. Ceea ce pare inexplicabil, este ct de mici sunt problemele pe care atatcatorii au ales s le fac pn acum, n condiiile n care aveau posibilitatea s aduc prejudicii mult mai mari. ns nu putem presupune c hackerii se vor mulumi mreu cu att. Cu ct calculatoarele expuse dein informaii mai valoroase i cu ct devin mai atrgtoare n faa celor care sper s obin avantaje de pe urma atacrii lor, cu att sunt mai vulnerabile n faa atacatorilor profesioniti i a bandelor organizate de infractori. Posibilitile de atac sunt multiple n ziua de azi: de la accesarea unor fiiere cu date confideniale despre clienii unei bnci, modificarea sau tergerea lor, pn la infiltrarea lent n sistemul informaional al organizaiilor guvernamentale i preluarea controlului fluxului de date. Crearea i ntreinerea unui regim de securitate este una din cele mai dificile activiti n administrarea unui sistem IT. i mai grea este extinderea unui astfel de regim peste mai multe reele interconectate, n care ruleaz diverse soft-uri al cror control trebuie inut. Practic, nu se poate realiza un sistem de securitate ideal i complet eficient. Tot ce se poate face este stabilirea unui set de riscuri care s poat fi nlturat i m eninut n aceast stare. Din pcate, muli factori de risc importani sunt dificil i aproape imposibil de controlat. 16

nc nu se tie suficient de mult despre toate posibilitile de atac sau despre gravitatea urmrilor lor. Cei care nu au experimentat nici o pierdere ca urmare a unui atac IT, nu iau destul de n serios riscurile unui sistem vulnerabil. De aceea, este nevoie de legi care s oblige organizaiile s ia anumite msuri de preacuie. Securitatea sistemelor informaionale are cel puin patru dimensiuni independente. Cea mai cunoscut este cea tehnic: pachete antivirus, componente firewall, filtre de e mail, etc. Dar componenta uman joac i ea un rol foarte important. Cel mai sigur sistem din lume poate fi compromis dac un singur utilizator divulg o parol sau permite accesul unei persoane neautorizate ntr-o ncpere n care se afl informaii secrete. Nivelul executiv al unei intreprinderi este i el implicat n securitate, prin msurile pe care le ia. Dimensiunea legal intervine n ultima vreme i ea pentru a spori securitatea sistemelor IT. Se spune c 50% din problemele de securitate se datoreaz design-ului defectuos al sistemelor informatice. ns nu putem gsi defectele unui sistem studiind codul lui; este necesar o nelegere de nivel mai nalt a sistemului. De aceea, analiza riscurilor arhitecturale joac un rol esenial n cldirea unui sistem solid din punct de vedere al securitii. inerea n eviden a tuturor riscurilor ce apar de -a lungul timpului i ncercarea de a le nltura este o bun msur de securitate. Este unanim recunoscut c securitatea nseamn management-ul riscurilor. Prin management al riscurilor se nelege un proces amplu i continuu, ce cuprinde att analiza riscurilor, ct i o serie de activiti nlnuite n procese, cum ar fi RMF (Risk Management Framework). Analiza riscurilor se refer la activitatea de a identifica, de a clasifica i de a ierarhiza riscurile ntr-o anumit etap din dezvoltarea unui sistem soft. Analiza riscurilor intervine de cele mai multe ori la nivelul de proiectare, de stabilire a unui design arhitectural al sistemelor soft. Management-ul riscurilor se refer la desfurarea unor exerciii discrete de analiz a riscurilor, contoriznd riscurile de -a lungul procesului de dezvoltare i ncercnd eliminarea sau diminuarea lor n mod strategic. Majoritatea proceselor de analiz a riscurilor au evideniat faptul c identificarea, ierarhizarea i diminuarea riscurilor presupun un proces continuu i nu sunt doar o parte dintr-o etap a procesului de dezvoltare. Analiza riscurilor i ierarhia de riscuri rezultat se transform n cerine asupra aplicaiei (n procesul de dezvoltare) i n teste specifice n etapa de testare. Pentru o bun analiz a riscurilor, de multe ori este necesar contribuia unor profesioniti din afara echipei de dezvoltare. O analiz riguroas a riscurilor se bazeaz pe o bun nelegere a impactului pe care aceasta l are asupra funcionalitii, ceea ce presupune o bun nelegere a legilor i a regulilor crora tre buie s li se conforme sistemul. Analiza riscurilor se compune din mai multe activiti mprite n subetape: 1. Cunoaterea ct mai bine a obiectului analizat 1.1. Citirea i nelegerea specificailor, documentaiei arhitecturii, i a altor materiale de design 1.2. Discuii i brainsrorming n echip pe tema obiectului analizat 1.3. Determinarea granielor sistemului i a seciunilor critice 1.4. Efectuarea a ct mai multe teste asupra sistemului 1.5. Studierea codului i a artificilor soft (inclusiv utilizarea tool-urilor de analiz a codului) 1.6. Identificarea ameninrilor i a surselor de atac (de exemplu: se iau n considerare i utilizatorii interni?) 2. Discutarea problemelor de securitate n jurul soluiei 2.1. Dezbateri pe tema funcionalitii produsului i determinarea punctelor de conflict i ambiguitate 17

2.2. Identificarea vulnerabilitilor posibile, folosind tool-uri specializate sau consultnd liste cu cele mai comune tipuri de vulnerabiliti 2.3. Discutarea posibilitilor de rezolvare a problemelor ntlnite 2.4. nelegerea msurilor de control existente i a celor planificate 3. Determinarea posibilitii efecturii unor compromisuri 3.1. Conceperea unor scenarii de atac din prisma vulnerabilitilor 3.2. Cntrirea posibilitilor de control i a ameninrilor, pentru a stabili o probabilitate a atacurilor 4. Analiza impacturilor 4.1. Determinarea impactului asupra funcionalitii i a costurilor 4.2. Considerarea impacturilor din punctul de vedere al securitii 5. Ierarhizarea riscurilor 6. Dezvolatrea unei strategii de eliminare sau diminuare a riscurilor 6.1. Recomandarea unor contramsuri pentrua combate riscurile 7. Construirea unui raport care s conin rezultatele analizei 7.1. Descrierea cu atenie a riscurilor (att majore c t i minore) i a impacturilor 7.2. Oferirea unor informaii de baz cu privire la cazurile unde se vor aloca resurse minime nlturrii riscurilor n practic, analiza riscurilor se face fie monitoriznd o list a evenimentelor posibile, fie consultnd o list de vulnerabiliti i ameninri predefinite, n care se bifeaz cele care pot fi ntlnite n sistemul analizat. Metodologiile de analiz a riscurilor existente se mpart n dou categorii: comerciale i bazate pe standarde. Exemple de metodologii comerciale sunt: 1. STRIDE - de la Microsoft 2. Security Risk Management Guide - tot de la Microsoft 3. ACSM/SAR (Adaptive Countermeasure Selection Mechanism / Security Adequacy Review) de la Sun 4. Procesul de analiz arhitectural Cigital conceput pentru RMF (Risk Management Framework) 5. Metodologiile bazate pe standarde sunt: 6. ASSET (Automated Security Self-Evaluation Tool) - de la NIST (National Institute on Standards and Technology) 7. OCTAVE (Operaionally Critical Threat, Asset, and Vulnerability Evaluation) - de la SEI 8. COBIT (Control Objectives for Information and Related Technology) - de la ISACA (Information Systems Audit and Control Association) n concluzie, analiza riscurilor este un proces amplu i continuu ce se desfoara de-a lungul ntregii viei a unui produs. Pe lng factorii de risc fizici, trebuie luai n considerare factorii umani, care sunt imprevizibili. Nu exist sisteme perfect sigure, ns exist sisteme foarte rigide i stabile, puternice i rezistente n faa multor tipuri de atacuri.

3.1 Probleme rezolvate


1. Enumerati trei unelte (tool-uri) care au functionalitati de gestionare backupuri. 1.) Acronis True Image 2.) Paragon Drive Backup 3.) R-Drive Image 4.) Active Partition REcovery 2. Explicati in 2-3 fraze de ce versiunea de Norton Ghost pentru lucru in mod consola are dimensiuni foarte mici (incape pe o discheta). Versiunea Northon Ghost pentru lucrul in mod consola are dimensiuni foarte mici deoarece e un program care nu face altceva decat sa cloneze(arhiveze) si sa restaureze si pentru ca poate fi pornit si utilizat cu resurse minimale ale calulatorului, deoarece el este 18

de utilitate atunci cand calculatorul nu mai e in stare buna de functionare (sistemul de operare nu mai este disponibil) si avem nevoie de restaurarea acestuia. 3. Care este diferenta dintre optiunile "TO IMAGE" si "FROM IMAGE" (norton ghost) "To Image" permite salvarea datelor de pe o partitie / hard-disk intr-o imagine Norton Ghost, iar "From Image" permite restaurarea datelor de pe o partitie sau hard -disk pornind de la o imagine existenta. 4. Enumerati si descrieti pe scurt 3 pasi in clonare unei partii 1.) Asigur (caut) o partitie cu spatiu liber si bootez de pe o discketa/cd -rom 2.) Introduc discheta cu ghost si pornesc ghost.exe 3.) Aleg optiunea de meniu: TO IMAGE, selectez partitia pe care vreau s-o comprim, selectez destinatia si tipul de comprimare (Fast sau High) si se creaza imaginea cu extensia *.gho. Daca repornim calculatorul, apare fisierul creat in partitia aleasa. 5. Care este diferenta dintre clonarea unei partitii si clonarea unui harddisc? La clonarea unei partitii, se salveaza in imagine doar datele referitoare la partitia respectiva. La clonarea unui hard-disk se salveaza datele de pe toate partitiile, inclusiv date despre structura hard-disk-ului. Pentru clonarea unui hardisk avem nevoie de un alt hardisk pe care sa punem clona, pe cand clona unei partitii poate fi pusa pe o alta partitie a aceluiasi hardisk. 6. Faceti cate observatii referitoare la dimensiunea unei clone. In functie de setari (folosirea compresiei sau realizarea clonei fara compresie) imaginea clonei va fi maxim cat spatiul ocupat de date pe partitia respectiva. Folosind compresia, se obtine o dimensiune mai mica (de obicei dimensiunea clonei este intre 30% si 60% din dimensiunea partitiei clonate). 7. La ce se refera termenul de backup incremental? Exista doua tipuri de backup : Base Backup si Incremental Backup. Dupa ce s-a realizat un Base Backup (care cloneaza toate datele de pe partitie), se pot realiza backupuri incrementale, care verifica ce s-a schimbat de la ultima clonare, si adauga la imagine doar datele modificate, efectuand astfel backup-uri foarte rapide.

3.2 Probleme nerezolvate


Folosind un utilitar capabil de interceptare pachete in retea (ex. Ethereal) raspundeti la urmatoarele intrebari. 1. Ce contine sectiunea de date dintr-un pachet ping? 2. Enumerati trei tipuri de protocoale care genereaza trafic in retea. Explicati pe scurt la ce se refera. 3. Cate pachete si de ce tip trimite in conditii obisnuite o comanda ping? 4. Observati trafic http. Ce puteti spune despre imaginile dintr-o pagina de web? 5. Ce tipuri de trafic de tip broadcast observati in retea?

4 Autentificarea
Tehnica prin care un proces verific dac partenerul sau de comunicaie este cel presupus a fi i nu un impostor, se numete autentificare . Verificarea identittii unui proces la distan este dificil i necesit protocoale complexe bazate pe criptografie. ntre autentificare i autorizare exist o mare diferen. Dac autentificarea se ocup cu problema identificrii exacte a procesului cu care se realizeaz comunicarea, autorizarea se ocup cu ceea ce i este permis unui proces s fac n sistem adic la ce resurse are acces procesul respectiv. Problema autentificrii se pune n contextul unei relaii de tip client-server(de exemplu cazul unui server de fiiere aflat la distan); de exemplu, atunci cnd un client X dorete tergerea unui fiier care aparine unui client A, atunci serverul de fiiere trebuie 19

s asigure c, clientul care a fcut aceast cerere este chiar A; de asemenea, clientul trebuie s se asigure de identitatea server-ului(de exemplu pentru a nu scrie datele sale pe un calculator gestionat de un impostor sau s obin informaii false de pe un alt calculator, nu de pe cel pe care se gsete fiierul dorit). Uzual, aa cum am expus n introducere, tehnicile de autentificare se mpart n trei categorii fundamentale: Autentificare prin cunotine (ceva ce utilizatorul tie: coduri PIN, coduri de tranzacie, parole) Autentificare prin posesie (ceva ce utilizatorul are: chei, carduri de identificare sau altfel de dispozitive fizice) Autentificare prin proprieti (identificarea biometric a utilizatorului cum ar fi identificarea feei, imagini ale retinei, abloane vocale, amprente) n tehnica de calcul actual autentificarea preponderent este cea prin cunotine.

4.1 Autentificarea bazat pe parole


n cele mai multe sisteme distribuite i reele de calculatoare, protecia resurselor se realizeaz prin login direct folosind parole, cu transmiterea n clar a acestora. Aceast autentificare are mai multe inconveniente, din care amintim doar cteva: - Utilizatorii tind s selecteze parole neuniform distribuite. Aceast problem este binecunoscut i nu este neaprat legat de reele de calculatoare i sisteme distribuite. - Nu este convenabil pentru un utilizator care are mai multe conturi pe host-uri - diferite s i aminteasc parola pentru fiecare, i de asemenea s o introduc la fiecare schimbare a host-ului. n schimb, utilizatorul va alege s fie recunoscut de reea ca ntreg i nu de host-urile individuale. - Transmisia parolei este expus la captur pasiv . n principal datorit acestui ultim punct, autentificarea bazat pe parol nu este potrivit n reele de calculatoare i sisteme distribuite. Parolele trimise prin reea sunt foarte uor compromise i folosite ulterior pentru impersonarea utilizatorului. n unele situaii este chiar suprtor c se folosete autentificarea prin parol . Spre exemplu, n Statele Unite ale Americii telefoanele mobile folosesc ca parol intern la efectuarea unui apel chiar numrul telefonului respectiv pentru ca centrala s poat factura fiecare apel n mod corect. Este evident c un atacator poate impersona uor apelul i poate efectua convorbiri n contul altei persoane.

4.2 Autentificarea bazat pe adres


O alternativ (nu neaprat mai sigur) la autentificarea prin parol este autentificarea prin adres. Aceasta presupune c identitatea unei surse se poate deduce din adresa acesteia coninut n pachete. Ideea de baz este c fiecare host memoreaz identitatea celorlalte host-uri care au acces la resursele sale. n UNIX, fiecare host are un fiier numit /etc/hosts.equiv. Utilizatorii cu acelai cont pe ambele sisteme pot folosi utilitarele r fr a specifica vreo parol . Ideea de host -uri credibile nu este o soluie la problema autentificrii n reele de calculatoare. De fapt, acest tip de autentificare chiar pune probleme mai mari din punct de vedere al securitii. Dac un atacator reuete s intre pe contul unui utilizator dintr-un sistem, securitatea este compromis pe toate sistemele care au ncredere n acel sistem. n plus, administratorul de sistem nu poate da drepturi prefereniale unor utilizatori. n funcie de mediul concret, autentificarea prin adres este chiar mai puin sigur dect cea bazat pe parol . Avantajul l constitu ie ns comoditatea n foloire i de aceea multe sisteme au ales s o implementeze.

20

4.3 Autentificarea criptografic


Ideea din spatele autentificrii criptografice este c un A i dovedete identitatea ctre B prin efectuarea unei operaii criptografice asupra unei entiti cunoscute de ambii participani sau oferit de B. Operaia criptografic efectuat de A se bazeaz pe o cheie criptografic . Aceasta poate fi fie o cheie secret sau o cheie privat dintr-un sistem cu chei asimetrice. n general, autentificarea criptografic este mai sigur dect autentificarea bazat pe parol sau pe adres. n schimb, noile tehnici bazate pe dovezi zeroknowledge pot oferi mecanisme de autentificare chiar mai puternice. Aceste tehnici necesit calcule matematice destul de complexe dar prezint mai multe faciliti atractive pentru autentificare. n primul rnd, permit prii ce se autentific s dovedeasc c tie secretul fr a transfera efectiv informaia ctre verificator. n al doilea rnd, multe dintre schemele propuse pn acum folosesc aceleai informaii publice, evitndu -se astfel problema distribuiei cheilor care apare n cazul mecanismelor ce folosesc DES i RSA. n ciuda aparentei simpliti, proiectarea sistemelor reale este foarte dificil . O serie de protocoale publicate au prezentat erori de securitate substaniale sau subtile. n timpul ultimei decade, eforturile de cercetare s-au concentrat n crearea de utilitare pentru dezvoltarea protocoalelor de autentificare i distribuie a cheilor cu o anumit a sigurare formal a securitii. Realizrile cele mai notabile sunt logica BAN i logica GNY. n loc de a produce protocoale specifice, aceste metodologii se utilizeaz pentru a verifica un set de afirmaii presupus adevrate.

4.4 Metoda de autentificare n trei pai (Three Way Handshake).


Cnd doi participani care vor s-i verifice identitatea reciproc, de exemplu unul fiind presupus client iar cellalt server, folosesc n comun o cheie secret, exist un protocol simplu de autentificare. Aceast situaie este similar celei cnd un client (utilizator) X are un cont pe un server i ambele cunosc parola corespunztoare contului respectiv. n continuare, E(m,k) nseaman criptarea mesajului m cu cheia k, iar D(m,k) decriptarea mesajului m cu cheia k. Aa cum este ilustrat n figur, algoritmul const n urmtorii pai: Clientul genereaz un numr aleator x i l cripteaz folosind cheia secret, notat cu CHK (Client Handshake Key). Apoi clientul transmite serverului un mesaj care conine E(x,CHK), mpreun cu identificatorul su (clientid). Serverul folosete cheia SHK pe care el o asociaz clientului identificat cu clientid, pentru a decripta numrul primit. Serverul incrementeaz numrul decriptat i.transmite rezultatul napoi clientului. De asemenea, n acelai mesaj el transmite un numar generat aleator y, criptat cu SHK.

21

Clientul decripteaz prima parte a ultimului mesaj primit i verific dac rezultatul este mai mare cu 1 dect numrul aleator x pe care l-a transmis serverului; dac relaia este verificat, atunci el va ti c serverul posed cheia lui secret. n acest moment, clientul a autentificat serverul. De asemenea, clientul decripteaz numrul aleator pe care serverul i l-a transmis(notat cu y), cripteaz acel numr incrementat i transmite rezultatul serverului. Daca serverul este capabil sa refac valoarea y+1 atunci i clientul este legitim.
C lie n t S e rv e r ( C lie n t id , E ( x , C H K ) )

(E (x + 1 ,S H K ),E (y ,S H K )) (E (y+ 1 , C H K ))

(E (S K ,S H K ))

Figura Autentificarea n trei pai Observaie. Dup cel de-al treilea mesaj, fiecare partener s-a autentificat n raport cu cellat. La sfritul dialogului, serverul transmite clientului o cheie de sesiune (SK), pe care o transmite criptat folosind o cheie SHK (care corespunde lui CHK). n continuare, clientul i serverul vor folosi SK pentru cripatrea datelor pe care i le vor trimi te din acest moment. Avantajul foloirii unei sesiuni de stabilire a cheii, este legat de utilizarea cheii secrete numai pentru transmiterea unui numr relativ mic de mesaje, ceea ce face foarte greu ca un intrus s adune date ce pot fi folosite pentru a determina cheia. Un scenariu mult mai obinuit este c cei doi participani nu tiu nimic unul despre cellalt, dar ambii au ncredere ntr-un al treilea partener. Acesta este denumit server de autentificare i el folosete un protocol pentru a-i ajuta pe cei doi parteneri pentru a se autentifica unul pe cellalt.

4.5 Kerberos
Autentificarea (authentication) este procesul prin care se verific identitatea unei instane (de exemplu un utilizator) care a produs nite date. Cele mai sigure metode de autentificare sunt cele biometrice, care msoar caracteristici fizice unice ale unui individ (cum ar fi amprentele digitale sau forma irisului). Acestea sunt foarte greu de pclit. Din (ne)fericire sunt nc foarte costisitoare i puin rspndite. Metoda prin care n mod uzual calculatoarele identific identitatea unei entiti cu care comunic este verificarea c acea entitate tie o informaie care foarte probabil nu mai este cunoscut de nimeni altcineva. n sistemele tipice Unix acel secret este parola pe care utilizatorul trebuie s o tasteze nainte de a ncepe lucrul. S observm c pentru a putea vorbi despre autentificare trebuie s avem o noiune de identitate a utilizatorilor. Calculatorul trebuie s poat distinge cumva ntre diferiii indivizi care l folosesc. Trebuie s existe un spaiu de nume pentru utilizatori; 22

autentificarea atunci va pune n coresponden o entitate activ cu un astfel de nume. n Unix numele utilizatorilor autorizai sunt trecute ntr-o mic baz de date ntr-un fiier numit /etc/passwd (sistemele mai moderne au scheme mai complicate, dar nrudite); pentru un sistem Unix a autentifica un utilizator const n a asigna unul dintre aceste nume cunoscute unui set de procese executate de acel utilizator. Dac un individ nu are un nume n acel fiier atunci el nu exist pentru calculator. Cu alte cuvinte, pentru a putea vorbi despre autentificare trebuie ca prile implicate n comunicare s aib un spaiu de nume comun pentru utilizatori. Protocolul Kerberos a fost proiectat la Universitatea MIT (Massachusetts Institute of Techonology) n cadrul proiectului Athena, n jurul anului 1984. Scopul protocolului Kerberos este de a permite unui client s-i demonstreze identitatea unui server aflat la distan, undeva dincolo de o reea complet nesigur. Protocolul garanteaz de asemenea c clientul nu poate conversa cu un calculator care se d drept server; autentificarea se face n ambele direcii. Protocolul n sine const dintr-un schimb de mesaje ntre un client i o serie de servere, fiecare cu o alt misiune. Idea de baz aparine lui Needham i Schroeder care au publicat ideea iniial n 1978 n Communications of the ACM. Descrierea detaliat a protocolului se gsete n documentul numit RFC 1510, care este disponibil de pe Internet. Cei care administreaz Kerberos pot pune ntrebri pe grupul de News comp.protocols.kerberos. Protocolul Kerberos indic de fapt o serie de mesaje care trebuie schimbate ntre prile care doresc s comunice; unele din mesaje sunt criptate. Ce funcie de criptare/decriptare se folosete teoretic nu conteaz prea tare, atta vreme ct funcia este greu inversabil. Implementrile curente folosesc un algoritm standard de criptare numit DES (Data Encryption Standard). Kerberos este un protocol; pentru a fi util anumite aplicaii (cele care au nevoie de comunicaie client-server) trebuie modificate pentru a folosi autentificarea oferit de Kerberos. (Aplicaiile modificate sunt atunci numite ``kerberized''). n mod normal ntr -un domeniu administrativ n care se folosete Kerberos programe ca telnet, rlogin, POP (post-office protocol), fiiere la distan (AFS), etc. trebuie rescrise n aa fel nct clientul s se autentifice serverului folosind noua metod (toate aceste aplicaii sunt de tip clientserver).

4.5.1 Principii
Premiza iniial este c exist un server central, numit serverul de autentificare (AS), care cunoate identitile tuturor clienilor posibili. De asemenea, fiecare client a stabilit o parol secret pe care i acest server o tie. Parola ajunge la server printr-o cale sigur, de exemplu prin pot sau printr-un mesager uman (m rog, sigur cel puin din punct de vedere software). Parola asta nu este cunoscut de nimeni altcineva, nici mcar de celelalte servere cu care clientul va comunica (de la care va obine serviciile care-l intereseaz de fapt). Toate celelalte servere din domeniul administrativ sunt i ele clieni ai AS: au o parol unic tiut numai de AS i de acel server. Niciodat parola nu va circula n clar pe reea; atunci oricine ar putea s o citeasc i s o foloseasc n locul clientului de drept. Pentru a se proteja mpotriva dumanilor care vor nregistra sau terge mesaje, mesajele vor avea informaii ca ora la care au fost trimise i un numr de ordine (pentru a detecta omisiunile). O alt regul interesant este c cheile folosite n comunicarea dintre client i servere se schimb frecvent. Implementarea standard expir o cheie dup 25 de ore. n felul acesta un atac criptanalitic nu va avea prea mult succes: dac dureaz ma i mult de 25 de ore atunci cheia descoperit este deja inutil (desigur, eventualele mesaje deja interceptate i stocate vor putea fi citite, dar stricciunile sunt limitate). Cheia pe care un 23

client i un server o folosesc n comun se numete cheie de sesiune i este generat aleator.

4.5.2 Mesajele (protocolul Needham-Schroeder)


S presupunem c clientul nostru vrea s vorbeasc cu un server de disc. Protocolul esenial este compus din 4 mesaje (protocolul real este o simpl extensie a ideii pe care o prezint aici): 1. Un mesaj de la client spre AS, prin care se indic intenia de a comunica cu serverul de disc; 2. Un mesaj de rspuns de la AS pentru client, prin care AS i trimite clientului noua cheie de sesiune i un pacheel pentru serverul de disc; 3. Un mesaj de la client spre serverul de disc, n care este inclus pacheelul de mai sus, pentru a garanta faptul c clientul a discutat cu AS (pacheelul poate veni numai de la AS); 4. Un mesaj de rspuns de la serverul de disc prin care clientul este convins c serverul a putut deschide pacheelul, deci c discut ntr-adevr cu serverul de disc. Dup acest schimb iniial de mesaje clientul i serverul de disc vor folosi cheia de sesiune generat de AS pentru a cripta cu DES toat comunicaia dintre ei. Vom vedea c mesajele sunt relativ nclcite pentru a preveni toate atacurile de mai sus. Dac vei ncerca s simplificai protocolul aproape sigur l vei face vulnerabil la anumite tipuri de atacuri. S notm cele 3 entiti care colaboreaz astfel: C clientul, AS serverul de autentificare i S serverul de disc (vedei i figura 1). O tehnic important a protocolului, care este folosit pentru a contraataca foloirea unor mesaje vechi nregistrate este de a eticheta mesajele cu ora emiterii (ntr-un mod care nu poate fi contrafcut) i de a verifica la recepie dac ora este rezonabil. Sincronizarea ceasurilor este o problema extrem de grea n sistemele distribuite, aa c pentru Kerberos ``rezonabil'' nseamn c ceasul local la recepie arat plus/minus 5 minute de ora din mesaj (ora de transmitere). Un alt truc interesant este foloirea a ceea ce se numete nonce: un obiect care este folosit o singur dat. Acesta este practic un numr aleator. Vom vedea mai jos cum este acesta folosit.

Fig. 1 Protocolul de baz simplificat Vom mai introduce urmtoarele notaii: Ka,b este cheia de sesiune pe care o folosesc pentru discuie a i b; de exemplu KC,S va fi cheia folosit pentru criptare/decriptare ntre client i serverul de disc; 24

Cum am spus mai sus, AS este serverul de autentificare, care tie parola fiecrei alte entiti din sistem; - Kz este cheia pe care clientul z i AS o folosesc n comun (parola clientului z); de pild Ks este parola serverului de disc (cunoscut numai de el i de AS); Voi scrie {mesaj1, mesaj2}K pentru a indica faptul c mesajele 1 i 2 sunt puse impreuna ntr-un pachet care este apoi criptat cu cheia K. - abreviere util este cea de tichet (ticket): T a,b = { Ka,b, a, ora curenta }: un mesaj n care sunt mpachetate 3 informaii: o cheie de sesiune ntre a i b, numele lui a i ora curent. - Cu aceste notaii putem scrie complet clar toate mesajele schimbate ntre C, S i AS. Sgeata indic traseul fiecrui mesaj: C ---> AS: C, S, ora expirare, N (nonce, aleator). Clientul afirm propria identitate, identitatea serverului cu care vrea s discute, trimite un numr aleator i ct timp ar dori s converseze cu S. Pn aici totul e simplu. AS va rspunde astfel: AS ---> C$: {KC,S, S, ora expirare, N} KC, {T C,S}KS . Acest complicat mesaj mai are dou pri: Prima este destinat clientului i este criptat cu cheia clientului KC, iar a doua este un tichet pentru S. Prima parte a mesajului ciptat cu cheia KC a lui C este secret i nimeni nu poate decripta acest mesaj dect C. La fel sunt lucrurile i pentru a doua parte a mesajului criptat cu KS i inteligibil numai pentru S. KC,S este un este un numr aleator generat de AS , care va fi folosit ca cheie de sesiune ntre C i S. Observai c cheia de sesiune apare n ambele pri ale mesajului, n aa fel nct va fi cunoscut att de ctre C ct i de S. AS i confirm lui C identitatea serverului de disc S i indic durata de validitate a lui KC,S. Faptul c N apare n mesajul ctre C garanteaz c acest mesaj a fost criptat de AS: nimeni altcineva nu putea s-l bage pe N nauntru. De asemenea, acest mesaj nu putea fi un mesaj mai vechi dintr-o comunicaie anterioar, pentru c N difer. Partea a doua a mesajului este opac pentru C; tot ce poate face C cu ea este s o nainteze lui S. C (sau oricine altcineva) nu o poate citi. Dac cineva ar modifica partea a doua, S nu ar mai putea-o decodifica i obine un mesaj corect, deci tichetul nu poate fi contrafcut sau modificat. C ---> S: {C, ora curent, suma de control}, K C,S, {TC,S}KS . Mesajul are din nou dou pri. Partea a doua este exact partea a doua a mesajului 2, aa cum a fost primit de la AS. Prima parte a mesajului are scopul de a demonstra c acest mesaj este ``proaspt'': S va extrage K C,S din partea a doua a mesajului i o va folosi pentru a citi prima parte a mesajului. De acolo afl ora la care a fost trimis mesajul, i l rejecteaz dac ora difer prea tare de ora local. (Asta ar putea s nsemne c mesajul a fost capturat de un inamic i re-lansat). Suma de control ne asigur c mesajul nu a fost modificat de nimeni; este practic imposibil s modifici un mesaj criptat i s repari i suma de control dac nu tii cheia. S ---> C: {ora curenta+1} K C,S. Prin acest mesaj S n convinge pe C c a ajuns la destinaia dorit: mesajul are ora curent trimis anterior de C plus 1. Dar ora putea fi extras numai de cel care avea K C,S, care fiind o cheie de sesiune era tiut numai de S. Nu era suficient s returneze aceeai 25

valoare, pentru c atunci acest mesaj putea fi o copie a (unei pri a) mesajului anterior. La sfritul acestei comunicaii att C ct i S sunt siguri de identitatea celuilalt i n plus au la dispoziie o cheie de sesiune K C,S cu care pot cripta toate mesajele pe care le schimb. Autentificarea a fost fcut.

4.5.3 Vulnerabilitatile Kerberos


Chiar dac n teorie Kerberos este minunat, implementarea lui n practic este cel puin dificil. Condiiile ideale existente pe hrtie sunt greu de obinut ntr-o reea de calculatoare reale. La ora actual nu exist nici un fel de metod complet riguroas pentru a arta ca un protocol criptografic nu scap informaii; exist metode pentru a testa dac un protocol rezist la atacurile cunoscute, dar foarte adesea se public algoritmi care mai trziu se dovedesc greii. n general, raionamentele cu astfel de protocoale sunt foarte complicate. Cercetarea n domeniu este n plin desfurare i folosete tehnici foarte exotice, ca teoria informaiei, teoria complexitii, logici speciale (ex. knowledge theory), etc. S observm c clientul trebuie s pstreze undeva cheile de sesiune pentru a putea conversa cu serverele: fiecare mesaj dup cele de autentificare va fi criptat cu aceste chei. Clientul trebuie s posede deci practic permanent KC, TGS i KC,S. E adevrat c aceste chei expir n 25 de ore, deci sunt mai puin importante dect o parol care teoretic este folosit luni ntregi. ntrebarea este ns: unde sunt inute pe calculatorul clientului aceste chei? Pe o staie obinuit Unix lucreaz n mod normal mai muli utilizatori. Tichetele unuia ar trebui s fie ferite de ceilali. Dar pe un sistem Unix practic nimic nu poate fi adpostit mpotriva administratorului (root). Administratorul unui sistem poate citi orice fiier, i poate inspecta memoria fizic a oricrui proces. Acesta este un clci al lui Ahile al lui Kerberos; toate metodele cunoscute pentru a penetra un sistem Unix amenin sigurana ntregului protocol. Ori securitatea unui sistem Unix, care este foarte complicat, este extrem de greu de controlat; exist o sumedenie de bree de care un atacator ar putea profita. O alt mare problem este cu staiile de lucru fr disc (diskless); aceste staii de obicei import discuri prin reea. Deci de ndat ce o astfel de staie stocheaz un tichet pe disc, tichetul va cltori prin reea, care am stabilit c este expus la tot felul de atacuri! Nici pstrarea tichetului n memorie nu este neaprat mai sigur: algoritmii de paginare stocheaz paginile pe disc (n partiia de swap) atunci cnd calculatorul nu are destul memorie, deci am revenit la aceeai problem. Iat nc un exemplu: am vzut c prospeimea unui tichet este verificat comparnd ora local a serverului cu ora din tichet. Pentru un interval de 5 minute serverul memoreaz toate tichetele primite, pentru a depista duplicate, eventual rezultate dintr-un atac care re-transmite pachete vechi capturate. Un tichet mai vechi de 5 minute este considerat expirat i ignorat. n felul acesta un server nu va primi niciodat acelai pachet de dou ori. Asta presupune c serverul i clientul au ceasuri relativ sincronizate. ntr-o reea mare de calculatoare sincronizarea ceasurilor se face automat, folosind un protocol numit NTP: Network Time Protocol. Un atac foarte spectaculos este urmtorul: un atacator nregistreaz o serie de mesaje de la un client care tie c reprezint o tranzacie important. Peste o sptmn atacatorul infiltreaz n reea mesaje false NTP prin care seteaz ceasul unui server cu o sptmn n urm. Dup asta atacatorul retransmite mesajele capturate, care vor fi re-executate, pentru c serverului i par proaspete. Asta face securitatea n calculatoare o problem foarte spinoas: adesea protocoalele propuse sunt eronate, dar nu exist nici o metod formal pentru a depista i verifica asta. Chiar dac un protocol este corect formal, se poate baza pe asumpii nerezonabile asupra mediului n care opereaz, cum ar fi ceasurile sincronizate. i chiar 26

dac se bazeaz pe asumpii rezonabile, implementarea scris de un programator u man poate s aib bug-uri care o fac vulnerabil.

4.5.4 Concluzie
Securitatea n calculatoare este o problem de mare importan economic, mai ales acum cnd tot mai multe tranzacii se fac prin Internet. Proiectarea unui protocol de securitate este o treab foarte complicat, iar implementarea nu este deloc simpl. Domeniul este n plin cercetare n continuare. Dificultile sunt amplificate de faptul c lanul este tot att de slab ct cea mai slab verig, iar verigi sunt destul de multe. Fii deci cu ochii-n patru.

4.6 Biometrie
4.6.1 Smart Carduri
In acest moment in portofelul tau sunt probabil cateva Credit Card-uri, un ID Card, un ATM Card i poate alte Carduri de plastic. Fara sa realizam aceste carduri de plastic au devenit o parte foarte importanta din viata noastra. Putem lua in considerare cateva scenarii legate de foloirea acestor carduri de plastic: - Pentru a ne identifica in diferite situaii - Pentru a obtine bani din banca - Card de credit - Telefonie conventionala - Access Control - Programe de loialitate Un smart card (Figura 6.1) este un fel de chip intr-un card de plstic care stocheaza i tranzactioneaza date intre utilizatori. Aceste date sunt ascociate fie cu valori sau informaii sau amandoua i sunt stocate i procesate cu ajutorul chipului sau cu ajutorul memoriei sau microprocesorului. Datele de pe card sunt tranzacionate via un reader care este parte a unui system de calcul. Privind o statistica Dataquest, valoare de piata in intreaga lume a smart cardurilor va crete in 2006 $11.000.000. Majoritatea acestor carduri de plastic sunt carduri magnetice. In ciuda popularit aii marie pe care o au sufera de o slabiciune cruciala. Datele stocate pe ele pot fi foarte usor citite i modificate de cineva care are access la echipament specializat. Ca rezultat informaii confideniale cum ar fi PIN-ul sau parola nu pot fi stocate pe ele i astfel tranzactia trebuie facuta de system, conectanduse la o baza de date pentru a verifica pinul iar aceasta operaii costa timp i bani. Scurta istorie a SmartCardurilor Multa lume considera Smart Cardurile o inventii recenta. Este total eronat. In 1968 inventatorul german Jurgen Dethloff impreuna cu Helmet Grotrupp a patentat o bucata de plastica pentru transportul microchipurilor. In 1970 inventatorul Japonez Kunitake Arimura a applicat pentru acelasi patent. Smart cardurile au fost introduse in Japonia i nacelasi an. In 1974 francezul Ronald Moreno si-a inregistrat patentul sau de smart card in Franta.

27

Figur 6.1 Smart Card

Dat fiind faptul ca majoritatea cercetarii pentru smart carduri a fost facuta in Europa nu este surprinzator faptul ca Europenii sunt printre cei mai multi utilizatorii de smart carduri. Europa au aproximativ 80% din piata de smart carduri. Aplicaii - Au fost introduse prima oara in Europa in anii 70, ele au debutat ca un suport de valoare pentru telefoanele publice reducand astfel furtul. Cum tehnologia a avansat foarte repede smart cardurile sunt introduse in mai multe domenii de activitate, credit cards sau pentru a retine informaii in schimbul hartiei. - In S.U.A. consumatorii folosesc samrt carduri pentru orice, de la vizitat librarii pana la cumparaturi i vizionat filme, integrandu-se astfel in activitatile noastre de zi cu zi. De ce Smart Carduri Smart cardurile sporesc foarte mult securitatea fiecarei tranzactii. Ne protejeaza impotriva unor riscuri de securitate foarte importante cum ar fi stocarea de parole necorspunzatoare i system hacks sofisticate. Oamenii folosesc smart cardurile in ziua de astazi pentru o varietate larga de sarcini zilnice: - Loialitate i valoare stocata - Securizarea informatiei i Bunurilor fizice - E-Commerce - Finante Personale - Sanatate - Network Security - Acces fizic Tipuri de smart carduri Smart cardurile sunt definite astfel 1). Cum se scriu sau se citesc datele de pe card, i 2). Tipul chipului implantat in card i capabilitatile lui.

28

Carduri cu banda magnetica Sunt cardurile care au o banda magnetica pe una din fete. Banda magnetica consta din 3 piste de particule magnetice inglobate in card. Cardurile magnetice au fost introduse pentru a: Stoca datele intr-o forma electronica Minimiza folosirea hartiei in tranzactiile financiare Automatizare Smart carduri Smart cardurile sunt cel mai tanar membru al familiei de carduri plastice. Ele au un microprocesor i memorie inglobate in ele care proceseaza i stocheaza date. Carduri de memorie Sunt cele mai intalnite i cele mai ieftine carduri. Ele contin: 1. EEPROM: Electrically Erasable Programmable Read Only Memory. In general marimea unui EEPROM este de 2KB - 8 KB. Datele de pe EEPROM pot fi inchise cu un pin. 2. ROM: Read Only Memory. Stocheaza date care nu se schimba. Poate stoca numarul cardului i numele titularului. Microprocessor/Chip Cards Dupa cum suna i numele sunt carduri care au inglobate microprocesoare. Ele sunt cele care din punct de veder tehnic pot fi denumite smart carduri. Componentele importante ale uni chip card sunt: 1. ROM: Read Only Memory. 2. EEPROM 3. RAM: Random Access Memory. 4. CPU: Central Processing Unit. Chip cards sunt folosite in general ca carduri de credit sau financiale, aplicaii unde securitatea este cel mai important lucru. Smart cardurile mai pot fi clasificate in functie de interfata: 1. Contact Cards. Au nevoie de reader pentru a fi folosite. 29

2. Contactless Cards. Nu au nevoie de reder pentru a fi folosite. 3. Combi or Hybrid Cards. Carduri hibride care pot avea sau nu nevoie de reader.

4.6.2 Biometrie
Ce este biometria? Biometria este un domeniu modern care se axeaza pe indentificarea unui individ pe baza caracteristicilor sale fizice. Biometria se ininde pe mai multe domenii cum ar fi Inteligenta Artificiala i biologie precum i pe diverse domenii hardware. Cele mai cunoscute metode de identificare biometrica sunt: amprentele, vocea, irisul, retina, mana, facial, semnatura. Amprentele i mana Amprentele sunt una din cele mai intalnite forme de identificare biometrica. Datorita unicitaii amprentelor la fiecare om in functie de bifurcaii, cute, insule i alte aspecte un individ poate fi identificate foarte usor daca semnatura amprentei sale este inregistrata intr-o baa de date. Tehnologia scanarii mainii este similara dar surprinzator folosete mai putine date pentru a indentifica o persoana. Voce Recunoasterea vocei este diferita de recunoasterea vorbirii. Recunoasterea vorbirii detecteaza fraze i cuvinte. Amprenta noastra vocala este determinata de diferiti factori: marimea cavitaii vocale cat i alte caracteristicei ale coardelor vocale. Iris i Retina Recunosterea Irisului personificarea identificarii biometrice, toata planeta ar putea fi inregistrata intr-o baza de date i tot ar fi sanse infime de identificare falsa. Metoda in care caracteristicile sunt extrase este extrem de complicata dar pe scurt o camera specializata monochroma face o fotografie a ochiului, sfotul apoi localizeaza irisul in functie de reflectia luminii i umiditatea ochiului. Segmente ale irisului sunt apoi mapate in sute de vectori creeand astfel IrisCode. Scanarea retinei are un nivel de acuratete ca i scanarea irisului. Se folosete un dispozitiv care citeste spatele ochiului(retina) folosind mai mult de 400 de puncte diferite . Facial Biometria faciala folosete diferite aspecte ale fetei pentru a recunoaste un individ. Sunt patru tehnici primare de recunostere faciala: valoarea fetei, analiza trasaturilor, reele nuronale i procesare automatica a fetei. De exemplu tehnica reelelor neuronale folosete un model al fetei i il ruleaza intr-o reea nuronala incercand astfel sa il identifice sau compara modelul cu un model existent pentru a verifica autenticitatea persoanei.

4.7 Semnatura digitala i autentificarea


Criptografia computationala ofera cele mai puternice solutii pentru problemele ce privesc securitatea informatica a acestui mediu in care ne pregatim sa traim in anii urmatori i care se cheama Cyberspace. Folosita multa vreme pentru asigurarea confidenialitaii comunicaiilor in domeniul militar i diplomatic, criptografia a cunoscut in ultimii 20 de ani progrese spectaculoase datorate aplicaiilor sale in securitatea datelor la calculatoare. Daca deceniul trecut a fost marcat de aparitia i perfectionarea calculatoarelor personale, usor accesibile i la preturi din ce in ce mai scazute, deceniul anilor '90 este caracterizat de conectivitatea tot mai pronuntata, adica fuziunea dintre calculatoare i comunicaii: cele mai multe calculatoare sunt folosite azi in interconectare, in reele localeLAN i in reele de arie larga-WAN, ceea ce confera informaticii un rol determinant in asigurarea legaturilor stiintifice, de afaceri, bancare sau de natura umana intre persoane i institutii. 30

Societatea umana a inceput sa transfere pe reele o parte din activitaiile obisnuite, carora comunicaiile aproape instantanee intre puncte situate geografic la mii de kilometri le confera valente superioare. Vorbim astazi de teleconferinte i grupuri de lucru prin reele de calculatoare, grupuri de discutii, ca niste veritabile cluburi, profilate pe cele mai variate domenii de interes, ziare distribuite prin reele, sisteme electronice de plati prin reele, sisteme de transfer de fonduri i de comert prin reele, etc. Toate aceste servicii i inca alte sute de acest fel, au inceput sa fie o realitate a celui mai mare i mai impresionant mediu de comunicaii intre oameni care a devenit Internet-ul. Nevoia de securitate i de autenticitate, apare la toate nivelele arhitecturale ale reelelor. La nivel inalt, utilizatorii vor sa se asigure ca posta electronica, de exemplu, soseste chiar de la persoana care pretinde a fi expeditorul. Uneori utilizatorii, mai ales cand actioneaza in numele unor firme, doresc asigurarea caracterului confidenial al mesajelor transmise. In tranzactiile financiare, alaturi de autenticitate i confidenialitate, un loc de mare importanta il are i integritatea mesajelor, ceea ce inseamna ca mesajul receptionat nu a fost alterat in timpul tranzitiei prin reea. In tranzactiile de afaceri este foarte important ca odata receptionata o comanda, aceasta sa fie nu numai autentica, cu coninut nemodificat, dar sa nu existe posibilitatea ca expeditorul sa nu o mai recunoasca, adica sa se respecte proprietatea de nerepudiere. La nivel scazut, gateway-urile i ruterele trebuie sa discearna intre calculatoarele autorizate sa comunice i cele intruse. De asemenea, este necesar ca, de exemplu, informatia medicala transmisa prin reele sa fie confideniala i sa ajunga nealterata (voit sau nu) la nodurile care retin marile baze de date ale sistemelor de asigurari medicale. Criptografia computationala ofera cele mai puternice solutii pentru toate aceste aceste probleme privind securitatea informatica. Folosita multa vreme pentru asigurarea confidenialitaii comunicaiilor in domeniul militar i diplomatic, criptografia a cunoscut in ultimii 20 de ani progrese spectaculoase datorate aplicaiilor sale in securitatea datelor la calculatoare. Putem spune ca domeniul criptografiei computationale a devenit azi un spatiu legitim de intense cercetari academice. Exista doua mari categorii de sisteme criptografice folosite azi in securitatea informatica:sisteme simetrice i sisteme cu chei publice. Un alt moment foarte important in evolutia criptografiei omputationale l-a constituit adoptarea unui principiu diferit de acela al cifrarii clasice, cunoscuta de mii de ani. Whitfield Diffie i Martin Hellman, de la Univeritatea Stanford din California, printr-un articol celebru publicat in 1976, au pus bazele criptografiei cu chei publice. In locul unei singure chei secrete, criptografia asimetrica folosete 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 dispozitia oricui doreste sa transmita un mesaj cifrat. Doar destinatarul, care detine cea de-a doua cheie, poate descifra i utiliza mesajul. Tehnica cheilor publice poate fi folosita i pentru autentificarea mesajelor, prin asa numita semnatura digitala, fapt care i-a sporit popularitatea. Prin semntur se nelege imaginea grafic sau simbolul ataat sau asociat unui nscris, cu intenia de a produce efecte juridice, prin care o persoan atest fie constatarea anumitor evenimente, fie c este titularul drepturilor i obligaiilor coninute n nscrisul ce nelege s i-l nsueasc i care permite identificarea semnatarului. Semntura are, aadar, funcia de identificare a titularului ei, funcia de certificare a angajamentului juridic, funcia de atestare a provenienei documentului, asocierea unei / unor persoane cu coninutul documentului, atestarea inteniei persoanei de a-i nsui coninutul documentului. Mediul electronic impune n mod evident o modalitate de a putea semna n form electronic. Semntura electronic nu mai este o reprezentare grafic a numelui semnatarului, ci o colecie de date n format electronic, ce respect nsuirile de mai sus, respectiv incorporarea, ataarea sau asocierea cu un document electronic, cu intenia de a produce efecte juridice i care permit identificarea semnatarului. 31

Folosind algoritmi cu cheie publica (asimetrici), se creaza criptosisteme cu doua chei, in cadrul carora doi utilizatori (procese) pot comunica cunoscind fiecare doar cheia publica a celuilalt. In criptosistemele cu chei publice fiecare utilizator A, detine o transformare de cifrare publica, EA, care poate fi memorata intr-un registru (fiier) public i o transformare de descifrare secreta, DA, ce nu este posibil sa fie obtinuta din EA. Cheia de descifrare (secreta) este derivata din cheia de cifrare (publica) printr -o transformare greu inversabila (one-way). In sistemele cu chei publice, protecia i autentificarea sunt realizate prin transformari distincte. Sa presupunem ca utilizatorul (procesul) A doreste sa emita un mesaj, M, unui alt utilizator (proces) B. Daca A cunoaste transformarea publica EB, atunci A poate transmite M la B sub forma C=EB(M), asigurindu-se astfel functia de confidenialitate. La receptie, B, va descifra criptograma C utilizind transformarea secreta DB, cunoscuta doar de el: DB(C)=DB(EB(M)) =M Schema nu furnizeaza facilitati de autentificare, deoarece orice utilizator (proces) are acces la transformarea publica EB a lui B i ii poate trimite mesaje false M' sub forma C'=EB(M'). Pentru autentificare se aplica lui M transformarea secreta DA a lui A. Ignorind protecia pentru moment, A va emite C=DA(M) la B, care la receptie va aplica transformarea publica, EA a lui A: EA(C)=EA(DA(M))=M Autentificarea este realizata deoarece numai A poate aplica transformarea DA. Acest concept poarta numele de semnatura digitala, fiind folosit pentru recunoasterea sigura a utilizatorilor sau proceselor. Fie B un receptor de mesaj semnat de A. Semnatura lui A trebuie sa satisfaca urmatoarele proprietati: 1. B sa fie capabil sa valideze semnatura lui A; 2. sa fie imposibil pentru oricine, inclusiv B, sa falsifice semnatura lui A; 3. in cazul in care A nu recunoaste semnarea unui mesaj M, trebuie sa existe un judecator" care sa poata rezolva disputa dintre A i B. Protecia nu este asigurata, intrucit este posibil ca mesajul M sa fie obtinut de oricine, aplicind transformarea publica EA. Pentru a se realiza simultan protecia i autentificarea informaiilor spatiului {M} trebuie sa fie echivalent spatiului {C}, asa incit orice pereche (EA, DA) sa fie in masura sa opereze atit asupra textului clar, cit i asupra textului cifrat; in plus se cere ca EA i DA sa fie mutual inverse, adica: EA(DA(M))=DA(EA(M)) =M. Emitatorul de mesaj A va aplica mai intai transformarea secreta a sa, DA, mesajului M, semnandu-l. Apoi A va cifra rezultatul - utilizind transformarea publica a lui B, EB i va emite catre receptor criptograma: C=EB(DA(M)). Receptorul B il obtine pe M aplicind la inceput propria-i functie de descifrare, DB, iar apoi transformare publica a lui A, EA, cea care furnizeaza autentificarea : EA(DB(C))=EA(DB(EB(DA(M)))) =EA(DA(M)) =M. Cel mai cunoscut sistem cu chei publice este RSA al carui nume provine de la de cei trei cercetatori de la Massachusetts Institute of Technology care l-au creat- Rivest, Shamir i Adleman. El este un adevarat standard de facto" in domeniul semnaturilor digitale i al confidenialitaii cu chei publice. Se bucura de o foarte mare apreciere atit in mediul guvernamental cit i in cel comercial, fiind sustinut prin lucrari i studii de comunitatea academica. Sub diferite forme de implementare, prin programe sau dispozitive hardware speciale, RSA este astazi recunoscuta ca cea mai sigura metoda de cifrare i autentificare disponibila comercial. O serie de firme producatoare de sisteme de 32

programe i echipamente ca DEC, Lotus, Novell, Motorola precum i o serie de institutii importante (Departamentul Apararii din SUA, National Aeronautics -SUA, Boeing, reeaua bancara internationala SWIFT, guvernul Belgiei etc), folosesc acest algoritm pentru protejarea i autentificarea datelor, parolelor, fiierelor, documentelor memorate sau transmise prin reele.

4.8 PKI
4.8.1 Generalitati
PKI reprezinta o combinatie intre hardware i software, politici i proceduri, ce asigura securitatatea necesara pentru a comunica in siguranta. Securitatatea informaiilor pe internet se poate asimila cu semnarea unui document i apoi trimiterea lui destinatarului. PKI a aparul odata cu nevoia de a trimite informatie in regim de confidenialitate pe cale digitala catre un destinatar. In acelasi timp PKI asigura destinatarul informatiei de autenticitatea expeditorului.

n mod clasic, asigurarea confidenialitaii unui mesaj se face cu o cheie secreta i un algoritm asociat. Pentru ca destinatarul sa poata citii un astfel de mesaj criptat, este nevoie ca acesta sa posede atat cheia secreta cat i algoritmul de criptare. Problema esentiala a majoritaii aplicaiilor ce se bazeaza pe un astfel de sistem, este pastrarea secretului acestor chei. Criptografia bazata pe chei publice (PKI) rezolva aceasta problema prin introducerea in sistem a doua tipuri de chei. Una publica i alta secreta. Astfel oricare doi oameni, care nu trebuie neaparat sa se cunoasca aflati in puncte geografice diferite, pot comunica in siguranta. La baza comunicari bazate pe PKI stau certificatele electronice, un fel de pasapoarte digitale ale persoanei ce folosete sistemul. Aceste certificate fac legatura intre semnatura electronica a unui utilizator i cheia publica a acestuia.

4.8.2 Mod de functionare


Criptografia bazata pe chei publice trebuie insotita de un set de politici de definire a regulilor sub care sistemele de criptografie pot opera i de un set de proceduri care specifica modalitatile de generare, distribuie i utilizare a cheilor. Pe scurt, este nevoie de o infrastructura, denumita Public Key Infrastructure (PKI), care stabileste cadrul functional, bazat pe standarde, pentru o mare varietate de componente, aplicaii, politici i practici al caror scop este atingerea celor patru functionalitati principale ale unei tranzactii:

33

Confidenialitatea - mentinerea caracterului privat al informatiei (secretizarea informatiei) Integritatea - dovada ca respectiva informatie nu a fost modificata (asigurarea impotriva manipularii frauduloase a informatiei) Autentificarea - dovada identitaii celui ce transmite mesajul (verificarea identitaii unui individ sau a unei aplicaii) Non-repudierea - siguranta ca cel ce genereaza mesajul nu poate sa-l denigreze mai tarziu (asigurarea paternitaii mesajului) Criptarea folosind PKI se poate realiza in doua feluri: folosind chei simetrice sau chei asimetrice. Criptarea asimetrica are avantajul ca una dintre chei poate fi facuta publica (cea de criptare), in timp ce cheia pentru decriptare este detinuta de cel ce a realizat criptarea, fiind cheia privata. Un alt avantaj al cheilor asimetrice este ca asigura identitatea. Daca o persoana X cripteaza un mesaj cu o cheie privata i transmitandu-l unei persoane Y, aceasta il poate decripta cu o cheie publica putem spune ca Y are certitudinea ca mesajul vine de la X. Aceasta idee are la baza semnaturile digitale. Aceasta asigura destinatarul nu numai de confidenialitate dar i de certitudinea ca cel ce a scris mesajul este o persoana autorizata. Pentru a intelege modul de functionare este nevoie de cunoasterea unui al treilea algoritm i anume functiile de hashing. Acestea, spre deosebire de algoritmii de criptare i decriptare realizeaza doar functia de criptare iar mesajul original nu va fi recuperat niciodata. In principiu, un mesaj are intotdeauna aceeasi valoare dupa aplicarea functiei i este imposibil ca doua mesaje oarecare sa genereze aceeasi valoare. Pentru a putea construi cheia ce se utilizeaza in timpul transmisiei se apeleaza la "o a treia parte" de incredere denumita Autoritate Certificatoare (CA - Certification Authority). Ea genereaza un Certificat Digital ce genereaza o cheie publica. Cheia nu trebuie sa contina ambiguitati, ingloband datele personale care apoi sunt impachetate i semnate. Componentele principale ale unui Certificat Digital sunt: cheie publica informatia ce leaga cheia publica de detinatorul ei informatia de validitate a certificatului semnatura digitala Non-repudierea este o alta proprietate a securitaii oferind certitudinea ca cel care transmite mesajul nu poate sa nege mai tarziu ce a transmis. Din cele prezentate putem sa observam ca: integritatea, confidenialitatea i non repudierea sunt asigurate prin criptografia cheilor publice. Pentru aceasta trebuie insa sa se stie: cine genereaza certificatul, unde este stocata cheia i unde se gasesc certificatele? Un certificat digital bazat pe infrastructura cheilor publice (PKI - Public Key Infrastructure) asigura rezolvarea tuturor problemelor. Fuctiile realizate cu ajutorul PKI 1. identificarea i autentificarea sunt realizate cu ajutorul semnaturilor digitale; entitatea ce trebuie autentificata sau identificata va semna o provocare cu ajutorul cheii sale private. Verificatorul semnaturii poate fi sigur de identitatea celui cu care discuta in baza a trei condiii presupuse a fi indeplinite: 1. cheia privata este cunoscuta doar proprietarului sau; 2. exista o singura cheie privata, care sa corespunda cheii publice din certificatul digital; 3. certificatul face legatura nemijlocita intre identitatea proprietarului i cheia sa publica. Presupunand aceste condiii indeplinite, verificarea semnaturii digitale va duce implicit la "cunoasterea" partenerului de dialog; 2. integritatea datelor este obtinuta tot prin intermediul semnaturilor digitale; verificarea cu succes a semnaturii (operaie efectuata cu ajutorul cheii publice), duce la concluzia ca datele nu au fost modificate ulterior procesului de semnare; 34 1. 2. 3. 4.

3. confidenialitatea este realizata cu ajutorul procesului de criptare; folo irea cheii publice dintr-un certificat pentru stabilirea unui canal de comunicatie criptat are ca rezultat faptul ca doar entitatea mentionata in certificat (cea care este i detinatoarea cheii private) va fi capabila sa decripteze mesajele criptate; 4. nonrepudierea datelor este asigurata prin intermediul semnaturilor digitale; presupunand ca posesorul certificatului este singura entitate care cunoaste cheia privata, verificarea semnaturii realizate asupra unor date va duce la certitudinea ca posesorul certificatului este emitentul sau distribuitorul datelor sau a fost de acord cu semnarea lor in forma respectiva. Serviciile enumerate anterior necesita cateva clarificari. In primul rand, trebuie remarcata diferenta dintre autentificare i identificare. Practic, daca certificatul a fost generat de o CA, atunci se presupune ca, la generarea acestuia, CA - ul s-a asigurat intrun anume fel de identitatea celui ce va beneficia de certificat (ca, de exemplu, numele mentionat in certificat corespunde persoanei careia i-a fost generat certificatul). In cazul in care certificatul nu a fost generat de o autoritate de certificare, ci a fost generat i semnat, de exemplu, chiar de persoana care il utilizeaza, nu se poate spune decat ca interlocutorul a fost identificat ca posesor al cheii private, corespunzatoare cheii publice din certificat. In ceea ce priveste nonrepudierea, trebuie mentionata i diferenta dintre originea unui document i simpla semnare a acestuia, originea neputand fi confirmata doar in baza unei semnaturi. In general, semnatura digitala asupra unui document poate avea diverse intelesuri, in functie i de coninutul semnat. Totodata, trebuie remarcat faptul ca PKI nu ofera in mod implicit servicii de audit, de autorizare, sau de analiza a privilegiilor. Autoritatea de certificare este entitatea implicata in generarea, verificarea, distribuirea i revocarea certificatelor. Intr-un sens mai larg, se poate afirma ca ea reprezinta inima sistemului PKI, fiind considerata o "Trusted Third Party" (TTP) in care toi utilizatorii pot avea incredere. Acest fapt este i unul din motivele de disputa, nu putini fiind cei care au pus in discuie intregul sistem din aceasta cauza. In realitate, se intalnesc doua tipuri de autoritati de certificare: CA radacina, care isi semneaza singure propriile certificate, i cele subordonate, ce vor apela la alte autoritati de certificare pentru a le semna certificatele. Exista insa i o categorie de aplicaii care accepta certificate generate i semnate direct de utilizator, dar, de obicei, acestea sunt supuse unor restrictii de utilizare. La generarea certificatului, verificarile pot fi facute direct de CA sau de un reprezentant al acestuia, autoritatea de inregistrare (RA), mandatata special in acest scop. Dupa calitatea procesului de verificare a identitaii, certificatele se impart in patru clase: - clasa I: certificate ce leaga, de obicei, o pereche de chei de o adresa de e-mail: pentru generarea acestora nu este verificata identitatea utilizatorului, certificatele din aceasta clasa fiind utilizate privat pentru securizarea sau semnarea e -mail-ului; - clasa a II-a: certificate ce includ ceva mai multe informaii despre utilizator, dar care nu presupun in mod neaparat verificari din partea autoritaii de certificare; - clasa a III-a: certificate pentru a caror generare CA va efectua o verificare a identitaii utilizatorului sau entitaii descrise de acesta; - clasa a IV-a: certificate generate de guverne sau organizaii ce necesita un grad ridicat de verificari asupra identitaii utilizatorului.

4.8.3 Avantajele PKI


Securizarea mesageriei electronice Cea mai mare parte a interactiunilor derulate prin Internet se realizeaza prin intermediul mesageriei electronice. Aceasta activitate presupune insa acceptarea unui grad ridicat de risc, prin expunerea unor informaii confideniale i prin posibilitatea substituirii autorului unui mesaj sau chiar alterarea voita a coninutului mesajului. Sistem de administrare a documentelor i semnatura digitala 35

O parte importanta a aplicaiilor software se refera la procesarea i arhivarea documentelor in format electronic. Desi aceste sisteme contribuie la diminuarea dificultatilor in prelucrarea i arhivarea unui volum mare de documente, ele nu rezolva complet trecerea de la documente in format traditional la documente electronice. Ceea ce lipseste este posibilitatea de a semna aceste documente electronice i de a asigura in acest fel non-repudierea acestora. Securizarea aplicaiilor Intranet i Extranet Din ce in ce mai multe companii i organizaii tind sa-si transfere procesele de interactiune catre aplicaii care ruleaza in mediul Internet. Indiferent daca acestea se refera la relatia cu proprii angajati i procesele interne ale organizatiei (aplicaii Intranet), sau sprijina interactiunea cu partenerii i clientii (aplicaii Extranet), aceste aplicaii isi demonstreaza din plin eficienta prin reducerea masiva a costurilor i imbunatatirea eficientei. Pe masura insa ce aceste informaii sunt transferate catre sistemele i aplicaiile Intranet/Extranet, riscul de securitate informationala crete semnificativ, in primul rand datorita faptului ca Internetul reprezinta prin natura sa un mediu public. Criptarea datelor i a documentelor Securitatea datelor nu se refera numai la momentul in care acestea sunt utilizate intr-un proces informational, ci i la stocarea lor. Pastrarea confidenialitaii i integritaii acestora imbraca numeroase aspecte, care se refera atat la autentificarea accesulu i cat i la criptarea lor astfel incat sa nu poata fi utilizate in cazul unui acces neautorizat. Autentificare la nivelul sistemului de operare i al aplicaiilor Autentificarea prin nume i parola este solutia cea mai vulnerabila i in plus, obliga utilizatorul la memorarea unei astfel de combinaii pentru fiecare aplicaie folosita. Foloirea certificatului digital stocat pe smartcard contribuie nu numai la creterea gradului de siguranta dar i la o utilizare mai facila, prin foloirea unui mijloc unic de autentificare pentru toate aplicaiile folosite.

4.9 Secret sharing


In criptografie secret sharing se refera la metoda de a distribui un secret la un grup de participanti, fiecarui participant fiind-ui atribuit cate o parte a secretului. Secretul poate fi reconstituit doar cand partile distribuite sunt combinate. Partile individuale ale secretului nu ii sunt de folos nimanui. Secret sharingul a fost inventat de Adi Shamir i George Blakley, independent unul fata de celalalt in 1979. Motivatia : o schema de distribuie a secret sharingului este in asa fel facuta incat oricine are mai putin de t parti ale sharingului, acestea nu ii sunt de folos in nici un fel, secretul distribuit nefiind pus in pericol. Exemplu : sa luam ca secret cuvantul password care este divizat in parti: pa-----, --ss----, "----wo--", "------rd". O persoana care are 0 parti cunoaste doar faptul ca secretul are 8 litere. Ar trebui sa ghiceasca o parola cu numarul de combinaii 268 = 208 miliarde combinaii posibile. O persoana care are o parte trebuie sa ghiceasca o parola cu 266 = 308 milioane de combinaii posibile. Sistemul nu este un secret securizat deoarece un utilizator care are t parti din secret are informaii importante despre secret. Exista cateva scheme de secret sharing care cel putin teoretic se considera a fi sigure. Acestea au in comun urmatoarele lucruri: - Fiecare parte a secretului trebuie sa fie cel putin la fel de mare ca secretul. Fiind data t-1 parti ale secretului nici o informatie despre secret nu trebuie sa poata sa fie aflata. Cu toate ca in final fiind date t parti ale secretului acesta trebuie sa poata fii reconstituit. - Toate cheile secrete folosesc biti random. Pentru a distribui un un bit secret la t persoane, este nevoie de t-1 biti random. Sharul final contine tot atata informatie ca i secretul, dar nu este relevanta daca nu este pusa impreuna cu celelalte secrete. 36

Secret sharingul trivial: Sunt (t,n) scheme de secret sharing. Pentru t = n, cand toate sharurile sunt necesare pentru e reconstitui secretul: - se codeaza secretul ca un intreg. Se da fiecarui jucator i (cu exceptia unuia) un integer random ri. I se da ultimului jucator numarul (s-r1-r2-...-rn-1). Secretul este suma tuturor partilor jucatorilor. - Se codeaza secretul ca byte. Se da fiecarui jucator i (cu exceptia unuia) un byte random bi .Se da ultimului jucator byte-ul (s XOR b1 XOR b2 XOR ... XOR bi) unde XOR este complementul bitului . Exemplu cand t este diferit de n Dificultatea consta in crearea unor scheme care sunt sigure, dar nu necesita toate cele n parti pentru a reconstitui secretul. De exemplu numarul de parti care sunt impartite jucatorilor este de 15. De exemplu: Directorul unei companii vrea sa tine secreta o formula. Directorul trebuie sa aiba acces la formula de cate ori are nevoie, dar in caz de urgenta 3 membri din 12 membri ai consiliului trebuie sa fie capabili sa reconstituie formula impreuna. Acest lucru poate fi realizat cu ajutorului unei scheme pentru sharing secret, unde 3 parti sunt date presedintelui i una este data fiecaruia dintre cei trei membri. Schema lui Shamir : Doua puncte definesc in mod unic o dreapta, 3 puncte definesc o parabola etc. In general n perechi de coordonate definesc in mod unic un polinom de gradul n-1. Dealearul codeaza secretul ca fiind punctul de intersectie al unei curbe cu dreapta y i da fiecarui jucator coordonatele unui punct de pe aceasta curba. Cand jucatorii strang impreuna destule parti, ei pot interpola partile pentru a gasi punctul y. i pentru a reconstitui secretul. Nu ar fi practic ca sa se foloseasca aceasta schema cu polinoamele conventionale, secretul i partile ar fi fractii complexe care sunt greu de retinut intr-un fiier obisnuit. Schema lui Shamir este eficienta din punctul de vedere al spatiului; fiecare parte avand aceeasi dimensiune ca i secretul original pentru ca coordonatele x ale partilor pot fi cunoscute de toi jucatorii. Schema lui Blakley: Doua drepte apartinand aceluiasi plan i care nu sunt paralele se intersecteaza in exact un punct. 3 drepte in spatiu se intersecteaza tot intr-un punct. In general n hyperplane se intersecteaza intr-un singur punct. Secretul poate fi codat ca fiind orice coordonata a acestui punct. Daca secretul este codat utilizand toate coordonatele, chiar daca sunt la intamplare nu este sigur. Cineva care are in posesie mai multe hyperplae afla informaii despre secret. Fiecarui jucator ii este data atata informatie cat sa poate defini un hyperplan. Secretul este reconstituit calculand punctul de intersectie al acestor hyperplan e .

Aceasta schema este mai putin eficienta decat schema lui Shamir, pentru ca fiecare parte a secretului este mai mare ca dimensiune decat secretul initial.

37

4.10 Probleme rezolvate


1. Descarcati si instalati utilitarul CrypTool. 2. Criptati un text folosind Caesar (Crypt menu) Se deschide un fisier care contine textul: mama are mere Pentru a cripta acest text cu Caesar se alege din meniul Crypt/Decrypt, din Classical Caesar. Se cere introducerea unei chei de criptare (care este o singura litera). Daca se introduce ca cheie litera a, atunci textul criptat va fi: nbnb bsf nfsf 3. Scrieti un program care face decriptarea textului de la 2 public class Decriptare { public static void main(String[] args) { String sir="nbnb bsf nfsf"; char cheie='a'; int valDeShift=(int)cheie - 96; int lungimeSir=sir.length(); String sirDecriptat=""; for(int i=0; i<lungimeSir; i++) { int aux=(int)sir.charAt(i); if (((aux<97)||(aux>122))&&((aux<65)||(aux>90))) sirDecriptat+=sir.charAt(i); else { int aux1=aux-valDeShift; if ((aux1<65)||((aux1>90)&&(aux1<97))) aux1+=26; sirDecriptat+=(char)aux1; } } System.out.println(sirDecriptat); } } 4. Creati o pereche de chei RSA. La ce pot fi folosite aceste chei? Din meniul Key Management se alege Key Generation. Apare o fereastra in care completam textboxurile corespunzatoare labelurilor: Last name, First name, PIN si PIN verification. Ne asiguram ca este selectata optiunea RSA si apasam pe butonul Generate new key pair... . Se asigneaza o cheie de identificare. Apasam OK, apoi Close. Perechile de chei RSA sunt utilizate la crearea de semnatura digitala pentru mesaje. 5. Descrieti procesul verificarii semnaturii digitale (tr ebuie semnat mai intai un mesaj) Pentru a semna un mesaj deschidem fisierul cu mesajul respectiv, din meniul Digital Signatures alegem Sign Message. Se alege o cheie in fereastra care apare, se introduce codul PIN corespunzator cheii alese si apasam pe butonul Sign. Pentru a verifica semnatura digitala deschidem fisierul cu mesajul semnat, din meniul Digital Signatures alegem Verify Signature. Apare o fereastra in care se alege cheia cu care se presupune ca mesajul a fost semnat si se apasa Verify Signature. Daca 38

mesajul a fost semnat cu cheia aleasa apare mesajul "Correct Signature", altfel apare mesajul "Invalid Signature". 6. Creati un fisier text ce contine textul "teste". Ce valoare de hash (MD5) are acest fisier? Pentru a afla valoarewa de hash(MD5) a fisierului alegem din meniul Indiv. Procedures din Hash optiunea MD5. Valoarea de hash(MD5) a fisierului ce contine textul "teste" este: 69 8D C1 9D 48 9C 4E 4D B7 3E 28 A7 13 EA B0 7B 7. Creati un fisier care contine textul "abracadabra". Ca valoare SHA are acest fisier? Pentru a afla valoarea SHA a fisierului alegem din meniul Indiv. Procedures din Hash optiunea SHA. Valoarea SHA a fisierului ce contine textul "abracadabra" este: F5 43 39 3F C9 4B C9 92 16 5A F2 00 FB AC 09 79 42 FD E6 3B 8. Decriptati fisierul "cryDES" folosind Crypt>DES(ECB) cu cheia AAAAAAAAAAAAAAAA Ce contine acest fisier? Pentru a decripta fisierul acesta se deschide, din meniul Crypt/Decrypt, din Symmetric se alege DES(ECB) si se introduce cheia. Fisierul cryDES contine: Acesta este un test. Felicitari ati reusit!! 9. Decriptati urmatorul fisier "cryIDEA" folosind Crypt>IDEA cu cheia: BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC Ce reprezinta acest mesaj? Pentru a decripta fisierul acesta se deschide, din meniul Crypt/Decrypt, din Symmetric se alege IDEA si se introduce cheia. Fisierul cryIDEA contine: !!"Nimic nu-i mai de ras ca plansul in ochii unui luptator"!!

4.11 Probleme nerezolvate


Accesand un server de linux si utilizand utilitarul iptraf raspundeti la urmatoarele intrebari: 1. Cate interfete de retea pot fi urmarite folosind comanda iptraf? 2. Pot fi obtinute informatii statistice despre un calculator din retea de pe un altul care are instalat iptraf? Motivati. 3. Ce trefic dintr-o retea se include la trafic non-IP? 4. Pot fi facute modificari de configurare ale retelei folosind iptraf? 5. Cum s-ar putea masura largimea benzii efective a unei retele folosind iptraf?

5 Securitatea reelelor
5.1 SSL Secure Socket Layer
O definiie,pe scurt, a ceea ce nsemna SSL Secure Socket Layer: SSL este un protocol dezvoltat de Netscape pentru transmiterea documentelor particulare de-a lungul Internetului. Folosete un sistem de criptografie care utlizeaz 2 chei pentru criptarea datelor: o cheie public cunoscut de toi utlizatorii i o cheie secret cunoscut doar de cel care transmite mesajul. Netscape Navigator i Internet Explorer suporta SSL i foarte multe site-uri web folosesc protocolul pentru a obine informaii confideniale ale utilizatorilor cum ar fi carile de credit. 1. Convenional URL-urile care implementeaz conexiunile SSL ncep cu https:// n loc de http:// 2. SSL folosete o conexiune sigur ntre un client i un server, conexiune prin care oricare date pot fi transimse sigur. 3. Protocolul a fost aprobat de IETF (Internet Engeenering Taskforce) ca standard. 39

Original, SSL a fost dezvoltat de Netscape, pentru a asigura securitatea datelor transportate i routate de HTTP, LDAP, POP3. SSL utilizeaz TCP pentru a furniza o conexiune sigur i autentificat ntre cele doua puncte ale reelei ( clientul i serverul).

Figura 10.1: protocolul SSL intre protocoalele nivelului aplicaie i TCP/IP

SSL-Obiective i arhitectura Obiectivele principale ale protocolui SSL sunt: 1. Autentificarea clientului i serverului unul fa de cellalt . SSL permite utilizarea tehnicilor standard de criptare (cu cheie public) pentru a permite autentificarea celor doua pri. Dei cele mai frecvente aplicaii constau in autentificarea unui serviciu client pe baza unui certificat, SSL poate folosi aceste metode i pentru a autentifica clientul. 2. Asigurarea integritii datelor: n timpul unei sesiuni datele nu pot fi falsificate. 3. Asigurarea confidenialitaii datelor: datele de transport dintre client i browser trebuie protejate de interceptarea i citirea lor. Acest lucru este necesar att pentru datele asociate cu protocolul nsui (securizarea traficului n timpul negocierii) ct i pentru datele aplicaiei care sunt transmise n timpul sesiunii. Privit din acest punct de vedere SSL este mai mult un set de protocoale dect unul singur. SSL poate fi divizat pe 2 niveluri: - Protocolul care asigur securitatea i integritatea datelor SSL Record Protocol (Protocolul de nregistrare SSL) - Protocolul care stabilete conexiunile SSL. Alte 3 protocoale sunt folosite la acest nivel: Protocolul SSL Handshake (Protocolul dialogului de confirmare ), Protocolul SSL Change Cipher (Protocolul modificare de cifru SSL) i Protocolul SSL Alert (Protocolul de alert SSL). Stiva de protocoale SSL este prezentat n figura de mai jos:
Protocolul SSL Handshake (dialogul de confirmare SSL) Protocolul SSL Cipher Change (modificare cifru) Protocolul SSL Alert (alert SSL) Protocol La nivel aplicaie (ex. HTTP)

Protocolul SSL Record (Protocolul de nregistrare SSL) TCP (nivel transport) IP(nivel reea) Figura 10.2: stiva de protocoale SSL

Protocolul SSL Record este responsabil de criptarea i integritatea datelor. De asemenea, aa cum se observ in figura 2, este folosit pentru incapsularea datelor trimise de alte protocoale, i , n puls, este implicat in sarcinile de genul verificarea datelor. Celelalte protocoale se ocup de managementul sesiunilor, managementul parametrilor de criptare i de transferul mesajelor SSL intre client i server. Protocolul SSL Record (Protocolul de nregistrare SSL) 40

Scopul protocolului SSL Record este preluarea unui mesaj al aplicaiei i transmiterea lui n reea, prin protocolul TCP. Servete ca baza pentru protocoalele de la nivelurile superioare. Pe scurt acest protocol execut urmatoarele aciuni: fragmentarea datele care vor fi transmise, incapsularea cu date adiionale i crearea un obiect nou numit nregistrare(record), apoi criptarea obiectul i transmiterea lui prin intermediul protocolului TCP. n figura de mai jos este prezentat procesul prin care datele sunt pregtite pentru a fi transmise: Datele noastre Date

Date1

Date 2

Date 3

Pachete de date

Date comprimate criptare Cod MAC Date criptate Transmisie Pachet TCP

Figura 10.3: crearea unui pachet sub protocolul SSL Record Protocolul Alert (Protocolul de alert SSL) Este folosit de unul din prti pentru a transporta mesajele n timpul sesiunii . Fiecare mesaj din protocolul Alert este alctuit din 2 baii. Primul bait conine o valoare 1warning sau 2- fatal, care determina importana mesajului trimis. Trimiterea unui mesaj avnd statutul de fatal de oricare dintre pri va duce la terminarea imediat a sesiuniii SSL. Urmtorul bait al mesajului conine unul din codurile de eroare, care poate aprea in timpul unei sesiuni de comunicare. Protocolul Change Cipher(Protocolul modificare de cifru) Acest protocol este cel mai simplu protocol SSL. Este alctuit dintr-un singur mesaj care contine valoarea 1. Acest tip de mesaj este trimis de la client ctre server i invers. Dupa schimbul de mesaje se stabilete o sesiune. Acest mesaj i orice alte mesaje sunt transferate folosind protocolul SSL Record. Protocolul Handshake (Protocolul dialogului de confirmare SSL) Este cea mai complex parte a protocolului SSL. Este folosit pentru a iniia o sesiune ntre un server i un client. Mai multe componente cum ar fi algoritmul i cheile folosite pentru criptarea datelor sunt negociate. Folosind acest protocol este posibil autentificarea prilor una faa de cealalt i negocierea parametrilor sesiunii. Procesul de negociere este prezentat n figura de mai jos:

41

Hello-client Hello-server Faza1

Certificat e Transmitere cheie server Cerere certificare server certificat Verificare certificat Trasnsmitere cheie certificat Faza 3 Faza 2

Schimb cifru Stop Schimb cifru Stop

Faza 4

Figura 10.4 :Stabilirea unei sesiuni SSL intre server i client Faza 1: n timpul primei faze, o conexiune logic trebuie iniiat ntre client i server, urmat de negocierea parametrilor. Clientul trimite un mesaj de salut serverului care conine date cum ar fi : - cea mai noua versiune SSL pe care o folosete, - date aleatoare folosite pentru protecia cheii de sesiune, - id-ul sesiunii : numrul de identificare al sesiunii. O valoare diferit de 0 indic faptul c un client dorete s actualizeze parametrii conexiunii sau s stabileasc o noua conexiune a acestei sesiuni. O valoare egal cu 0 indic dorina clientului de a stabili o noua conexiune , - lista cu cifruri : o list de algoritmi de criptare i metode de schimb ale cheilor suportate de ctre client. - Serverul, ca mesaj de rspuns fa de client trimite, de asemenea, un mesaj de salut clientului coninnd aceleai cmpuri ca la mesajul primit: - versiunea :cea mai veche versiune a protocolului SSL suportat de server; - date aleatoare; - id-ul sesiunii: dac cmpul clientului este diferit de 0 se pstreaz valoarea, altfel id-ul de sesiune al serverului conine o valoare pentru o sesiune noua. Lista de cifruri: o mulime de protocoale selectate de server dintre cele propuse de client. Primul element al acestui cmp este metoda aleas pentru schimbul cheilor de criptare, urmtorul element specific algoritmul de criptare i funciile hash care vor fi folosite. Faza 2: Serverul ncepe urmtoare faz a negocierii trimind certificatul sau pentru a fi autentificat de ctre client. Acest pas nu este obligatoriu i poate fi omis dac 42

metoda negociat pentru schimbul de chei nu cere transmiterea certificatului. Pasul final al fazei 2 este mesajul de rspuns al serverului. Dupa trimiterea acestui mesaj se asteapt un rspuns. Faza 3: La primirea mesajului clientul ar trebui s verifice certif icatul serverului, precum i ceilali parmetrii transmii de server odat cu mesajul de salut. Faza 4: Const n confirmarea mesajului primit i verificarea datelor. Clientul trimite un mesaj cu lista de cifruri i apoi fixeaz parametrii i cheile algoritmilor, clientul trimite mesajul de inchidere care este protejat prin intermediul algoritmului i cheilor secrete. Astfel se confirma dac parmetrii negociai i datele sunt corecte. Serverul, ca rspuns al mesajului client trimite aceeai secvena de mesaj. Dac mesajul de final este corect atunci datele transmise, algoritmii negociai i cheia de sesiune sunt corecte. Acestea indic faptul c sesiunea s-a terminat i este posibil transmiterea datelor aplicaei ntre client i server prin SSL. n final, sesiunea TCP ntre client i server este nchis. Perspective In 1996 IETF a incercat s dezvolte o metod standard de securizare a comunicaiilor n Internet. Au adoptat ca standard versiunea 3.0 a Protocolului SSL, nsa in 1999 au definit noul protocol Transport Layer Security (TSL) versiunea 1.0. Scopul acestui protocol era acela de a furniza securitatea i integritatea datelor la nivelul de transport ntre dou aplicaii web. Mai mult chiar, au fost adaugate cteva caracteristici noi : introperabilitatea i expandibilitatea.

5.2 VPN
VPN (Virtual Private Network) este o conexiune privat ntre dou sau mai multe reele sau calculatoare care trimit date protejate peste o reea public de date sau prin Internet. Reeaua virtual privat ofera astfel posibilitatea folosind o infrastructur de reea public, asa cum este Internetul. Acest serviciu este cea mai eficient cale de satisfacere a cerinelor clienilor care au ntr-adevr nevoie de transmisii securizate de date, de capacitate ridicat i vitez mare. Serviciul permite realizarea unei reele private n cadrul companiilor, ceea ce implic un risc minim din punct de vedere al securitii transmisiilor. Suport viteze mari de transmisie date de pn la 34 Mb/s, folosind tehnologia radio de band larg. Se ofer astfel avantajul mobilitii i al uurinei n instalare i exploatare, ct i avantajul realizrii de comunicaii folosind o lime de band foarte mare. Traficul VPN poate fi transmis pe infrastructura public (ex: pe Intenet), folosind protocoale standard (i deseori nesigure), sau peste reeaua unui provider de servicii de telecomunicaii care furnizeaza servicii VPN bine definite de SLA (Service Level Agreement) intre consumatorul VPN i furnizorul de servicii VPN. VPN-urile securizate folosesc tuneluri criptate(principiul tunerrii) pentru a avea confidenialitatea necesar, autentificarea parilor i integritatea mesajelor. Atunci cnd sunt corect alese, implementate i folosite, aceste tehnologii pot furniza comunicaii securizate peste reele nesigure. Tehnologii pentru VPN-uri securizate pot fi folosite pentru mbunatatirea securitaii sau ca patur de securitate peste infrastructuri de reea dedicate. Tipuri de VPN: 1. Intranet VPN - Un VPN Intranet conecteaz mai multe sedii fixe ale unei companii. indiferent de locaie, utilizatorii vor avea acces la toate resursele reelei locale. 2. Remote Access VPN - Un VPN Remote Access conecteaz un utilizator mobil la reeaua companiei. utilizatorul mobil se conecteaz la Internet din diferite locuri (exemplu: folosind dial-up). 3. Extranet VPN - Un VPN Extranet face conexiunea ntre o corporaie i partenerii strategici de afaceri (distribuitori, furnizori, clieni), pentru a le permite acestora accesul sigur la o parte a reelei Interne a companiei. 43

Atributele cheie ale unui VPN Cea mai important parte a unei solutii VPN este securitatea. Faptul c prin natura lor prin VPN-uri se transmit date private prin reele publice ridic dubii cu privire la securitatea acestor date i impactul pierderii datelor. Atributele sunt: - Autentificare (controlul accesului) - Prezentare (criptare - confidenialitate) - Transport (integritatea datelor) - Non-repudiere - acest serviciu ar oferi dovezi de nefalsificat precum c o anumit aciune a avut loc. Non repudierea originii nseamna c datele au fost trimise, i non repudierea primirii dovedeste c datele au fost recepionate. Cei mai muli provideri doresc satisfacerea primului punct, autentificarea. WIFI Security i VPN-urile Un alt domeniu inedit n care este folosit tehnologia VPN este securizarea reelelor wireless. Deoarece reelele wireless trimit mesajele folosind radio, sunt foarte susceptibile la ascultarea traficului. WEP a fost introdus pentru a furniza aceeasi securitate ca pe reelele tradiionale cu fir (WEP = Wired Equivalent Privacy). Wep folosete RC4 pentru confidenialitate i CRC-32 pentru integritate i folosete n mod standard o cheie de 40 de biti, la care se concateneaz un vector de iniializare (IV =Initialisation Vect or) pentru a forma cheia RC4. Dar nu marimea cheii este marea limitare in WEP. Spargerea unei chei mai lungi necesit interceptarea mai multor pachete, dar sunt i atacuri active care pot stimula traficul necesar. Sunt vulnerabilitati n WEP, incluznd posibilitatea de coliziuni ale IV i pachete alterate, care nu sunt corectate de o cheie mai lung. Serviciul VPN este un serviciu de transmisii de date care, utiliznd infrastructura Romtelecom, pune la dispoziia clienilor Reele Virtuale Private folosind mecanisme i protocoale de tunelare i securizare pentru a asigura integritatea, confidenialitatea i performana dorit. Beneficile serviciilor VPN sunt urmtoarele : 1. Convergena serviciilor voce, video, date se realizeaz cu costuri mici; 2. Accesarea securizat de la distan a resurselor companiei; 3. Costuri predictibile i uor de bugetat, independente de trafic; 4. Posibilitate transfer any-to-any pentru aplicaii de date-voce-video; 5. Suport fiabil pentru integrarea LAN-urilor; 6. Securitatea transmisiei datelor; 7. Rat de transfer constant, garantat tehnologic; 8. Soluii inteligente de management. Reelele vituale private bazate pe tehnologia IP-MPLS (Multi-Protocol Label Switching) le permit clienilor s transfere informaii n deplin siguran ntre sed iile companiilor lor; aceste VPN-uri sunt considerate de ctre Romtelecom cu nivel maxim de ncredere din punct de vedere al securitii informaiilor. Caracteristici tehnice: - Conexiune Ethernet; - Conexiuni securizate: firewall, criptare, autorizare i autentificare; - Interfee disponibile: 10 BaseT Ethernet i 10/100 BaseT FastEthernet; - Tehnologie de acces radio punct-multipunct de band larg n 26 GHz; - mbin cu succes tehnologiile ATM i IP - tehnologie MPLS; - Ofer conexiuni dedicate, capaciti dedicate, prioriti n acordarea accesului adiional la band; - Ofer posibilitatea alocrii instantanee a capacitii - un suport important pentru traficul tip rafal (traficul IP) i o utilizare maxim a benzii disponibile.

44

5.3 Sistem de detectare a intrusilor


5.3.1 Introducere
Exista doua tipuri de SDI-uri: basate pe reea i bazate pe gazda. Un SDI bazat pe reea este un un dispozitiv pasiv care verifica toate pachetele care trec printr-un anumit segment de reea. Uitandu-se in pachete se uita la semnaturi care ar putea indica un posibil atac i da alarma cand observa un comportament pus sub semnul intrebarii. Un SDI bazat pe gazda ruleaza pe un server individual evalueaza log -urile cautand indicii ale vreunui atac. Exista deasemenea doua tehnologii pe marginea carora sunt construite marea majoritate a SDI-urilor: pattern matching i detectarea anomaliilor. Tehnologiile bazate pe pattern matching au o baza de date a semnaturilor atacurilor cunoscute. Cand gaseste un pachet care are un astfel de pattern da alarma. Tehnologia bazata pe detectarea anomaliilor determina ce inseamna un trafic normal pentru reea i orice alt trafic care nu se inscrie in categorie este marcat ca fiind suspicios. Sistemele bazata pe aceasta tehnologie sunt destul de greu de implementat deoarece ce inseamna trafic normal pentru o companie poate sa nu fie normal pentru o alta. Din aceasta cauza cele mai multe SDI-uri sunt bazate pe tehnologia pattern matching.

5.3.2 Componentele SDI-urilor


Funcionalitatile unui SDI pot fi logic distribuite in 3 componente: senzori, analizatori i o interfata cu user-ul. Senzorii Senzorii sunt responsabili cu colectarea datelor. Intrarea pentru un sensor poate fi orice parte a unui sistem care contine o evidenta a unui atac. Exemple de tipuri de intrari pentru un sensor sunt pachetele din reea, fiierele log. Senzorii colecteaza i trimit mai departe informatia la analizatori. Analizatorii Acestia primesc intratea de la unu sau mai multi senzori sau de la alti analizatori. Analizatorul este responsabil cu determinarea aparitiei unei intruziuni. Ieirea acestei componente este un indicator ce indica daca a aparut sau nu o intrusiune. Ieirea poate contine o evidenta care sa sustina concluzia ca o intruziune a avut loc. Analizatorul poate sa ofere sfaturi in ceea ce priveste actiunea care va fi realizata ca urmare a intruziunii. Interfata cu utilizatorul Interfata cu utilizatorul a unui SDI ofera posibilitatea utilizatorului de a vedea rezultatele sistemului sau de a controla comportamentul acestuia. In unele sisteme, aceasta interfata poate fi asociata unuei componente manager, director sau console. In plus fata de aceste 3 componente esentiale un SDI poate sa aiba un sistem proiectat i configurat sa fie vizibil de un intrus i care sa para vulnerabil numit honey pot(un fel de capcana pentru intrusi). Acest sistem ofera mediul i informaii aditionale care pot fi folosite pentru a analiza intruziunea. Honey pot serveste ca senzor pentru un SDI, asteptand atacurile intrusilor asupra sistemului aparent vulnerabil. Ace st sistem are capacitatea de a detecta intruziunile intr-un mediu controlat i de a pastra o stare cunoscuta. Detectarea intruziunilor i raspunsul la acestea au fost gandite ca fiind doua procese separate, cu toate acestea granita dintre ele incepe sa dispara. SDI-urile incep sa incapsuleze capabilitati limitate de raspuns la intruziuni. Raspunsurile tipice la intruziuni includ reducerea traficului suspicios de catre firewall, refuzul de a accesa anumite resurse care au un comportament anormal, sau expunerea activitaii altor gazde sau siteuri implicate in atac. 45

In urmatorul paragraf este descris un model ierarhic pentru SDI-uri, explicand de ce ieirile acestor sisteme tind sa parcurga drumul de la nivelul cel mai de jos catre cel mai inalt. Informatia care contine raspunsul pe de alta parte poate parcurge in ambele directii. De exemplu un SDI bazat pe reea poate sa ofere un raspuns aflat la nivelul gazda, ca de exemplu modificarea configuratiei fiierelor de pe o anumita gazda. Raspunsul poate include reactualizarea configurari unor componente ale SDI-ului ceea ce inseamna ca un raspuns al unui SDI sau a unei componente poate avea efect asupra comportamentului altui SDI sau altei componente. Din aceste motive, detectarea i raspunsul la intruziune trebuie sa coexiste impreuna

5.3.3 Ierarhia SDI-urilor.


Cu toate ca orice SDI poate fi vazut ca avand senzor, analizator i o interfata cu utilizatorul, tipul de date examinate i tipul de date generate de un SDI particular pot varia foarte mult. SDI-urile pot fi clasificate dupa tipul de date pe care le examineaza astfel: Aplicaii Un SDI aplicaie analizeaza comportamentul unui program-aplicaie, in mod normal analizand fiierele log. Gazda Un SDI gazda analizeaza date ca de exemplu fiierele log, informaii privind conturile de utilizatori, comportamentul utilizatorilor sau ie irile de la SDI-urile gazda sau aplicaie ce ruleaza pe gazda respectiva. Reea Un SDI de reea analizeaza traficul din reea. Poate avea acces la ieirile de la SDIurile reea sau de la cele aplicaie din cadrul reelei monitorizate. Multi-reea/ infrastructura Un SDI multi-reea in mod general iau forma unei echipe de raspuns la un incident, i in care intrarile vin de la site-uri. Un astfel de site in acest caz este o entitate care apartine unui domeniu administrativ. Datele comunicate unui astfel de SDI provin in general de la SDI-uri aplicaie, gazda, reea sau alte SDI-uri multi-reea. Tipurile de SDI-uri enumerate mai sus pot fi vazute ca o ierahie, in varful ierarhiei aflandu-se SDI-urile multi-reea sau infrastructura iar la baza aflandu-se SDI-urile aplicaie. Orice SDI de la orice nivel al acestei ierarhii poate primi date de la nivelurile inferioare lui dar i date provenind de la un senzor ce opereaza la acelasi nivel cu el. Ieirile SDI-urilor pot fi utilizate de SDI-uri aflate la acelasi nivel cu el sau de catre SDI-urile de la nivelurile superioare lui in ierarhie.

5.3.4 Testarea unor sisteme de detectare a intrusilor.


Aceste teste au fost facut de catre Ars Tehnica. In loc de a face testele pe un calculator normal, s-a folosit o masina virtuala (obtinuta folosind Vmware 4.5.2- build 8848) care ruleaza pe Windows 2000 SP4. S-a luat aceasta decizie pentru a nu infesta calculatorul cu multitudinea de intrusi i deoarece VM-ul permite reproducerea testelor. Sa creat o imagine dupa ce au fost instalati cativa intrusii, i pentru a testa fiecare SDI, s-a facut un refresh la VM la aceasta imagine. S-a decis sa se incerce inlaturarea urmatorilor intrusi: Bonzi Buddy eAcceleration Software Station and Threat Scanner Smiley Central, with PopSwatter and MyWebSearch Freeze.com's "Living Rainforest"screensaver Weatherbug 46

Kazaa iMesh Grokster Dupa instalarea acestora impreuna cu altii intrusi (in general intrusii atrag alti intrusi) au inceput sa apara nedoritele pop-up-uri cu reclame, cauzand frecvente caderi ale Internet Explorer-ului i de asemenea o incetinire a sistemului. Spybot Search & Destroy Acesta este un produs care se poate achizitiona gratuit. Exista o fereastra de dialog, care spre nemultumirea celor ce au condus testul apare deasupra ferestrei principale, i care te ajuta sa faci pasii de inceput pentru scanarea sitemului. In primul rand te lasa sa faci un back-up al registrilor, sa download-ezi reactualizarile pentru Spybot, i sa-ti imunizezi calculatorul. Imunizarea presupune alertarea registrilor pentru a refuza instalarea anumitor controale ActiveX. Facilitatile sunt grupate in categorii logice. Rezultatele scanarii sunt vizibile intr-un singur raport, grupate in functie de tipul intrusului. Spybot a reusit sa inlature mare parte din intrusi dar nu a reusit insa sa stearga BroadCastPC i a avut de asemenea probleme in eliminarea VX2. Marea majoritate a programelor testate au avut insa probleme tot cu acestea doua. Spybot a ignorat complet Temorary Files( care erau pline de intrusi) i mai multi browser hijacks. Ca rezultat, dupa scanarea cu Spybot au ramas pop-up-uri i alte probleme cu Internet Explorer. Exista intradevar cateva facilitati ce pot fi regasite in modul avansat al Spybot-ului dar care sunt destul de greu de folosit. Nota primita de cei care au condus testul este 6. Site-ul de unde se poate descarca: http://spybot.safer-networking.de/en/index.html/ Aluria Spyware Scanner Prima oara cand se incarca Spyware Scanner poti alege sa folosesti wizardurile ca de exemplu: Easy Scan Wizard, Prevention Wizard i Easy Clean Wizard, dar nu se specifica ce diferente sunt intre aceste trei tipuri de scanare i nici nu cere sa faca un update al datelor. Scanarea merge foarte incet i fiecare fiier de pe hard este verificat, dar cu toate acestea alte programe au putut sa realizeze acest lucru intr-un timp mult mai scurt. Spyware Scanner a reusit sa detecteze cam toi intrusii din sistem, dar a avut probleme in a sterge BroadCastPC i VX2. A lasat de asemenea in urma multe date ale registrilor. Raportul sau este unul foarte detaliat explicand ce fac toi intrusii, cum functioneaza i cine l-a putut instala acolo. Ofera de asemenea capacitatea de a sterge date sensibile la atacuri ca i Spybot i impiedica anumiti intrusi sa se mai instaleze pe calculatorul tau. Mai include i un program care te anunta in momentul in care un intrus se instaleaza pe calculatorul tau. Acest program functioneaza, dar neajunsul sau este ca numai te informeaza cand ceva se intampla, dar nu face nimic pentru a impiedica acest lucru. Nota primita de cei care au condus testul este 6. Site-ul de unde se poate descarca: http://www.aluriasoftware.com/homeproducts/spyware/ Spyware Doctor Acesta este printre cele mai eficiente programe de detectare a intrusilor asupra carora s-au facut aceste teste. A fost printre singurele programe care au reusit sa refaca functionalitatea sistemului de test. Are un design care il face foarte usor de folosit de catre oricine. Programul cuprinde doua unelte: scanarea i OnGuard. OnGuard include o facilitate de stergere a cookie-urilor, monitorizarea hijack browser-ilor i un imunizator. El insa nu blocheaza intrusii care incearca sa se instaleze pe calculator. Cu toate ca este printre cele mai bune a facut cateva selectii ciudate pe sistemul de test. Nu a reusit sa stearga toate fiierele i nici intrarile din registrii (inclusiv parti din BroadCastPC i VX2) . 47

De asemenea nu s-a atins de multe fiiere din Tempory Files. Un alt dezavantaj al sau este faptul ca este singurul program testat care a cerut bani pentru update-ul datelor. Softul vine cu un an gratis pentru updates. Cel mai mare neajuns al sau este ca nu este un soft gratuit. Dat fiind ca exista subtituenti care sunt gartis este destul de greu sa alegi in schimbul acestora Spyware Doctor. Nota primita de cei care au condus testul este 8. Site-ul de unde se poate descarca:http://www.pctools.com/spyware-doctor/ SpySubtract Dupa ce ai instalat acest soft iti cere adresa mai, acesta este destul de ciudat daca te gandesti ca utilizatorii acestui soft sunt oameni a caror intimitate a fost incalcata.Trecand peste acest lucru scanarea facuta a fost destul de eficienta, dar a avut probleme cu BroadCastPC i VX2 ca multi altii. De asemenea a ignorat incercarile hijackerilor de browser. Are de asemenea o facilitate de a cauta hardul de fiiere care au fost create cam in acelasi timp impreuna cu alte nume de aplicaii. Marea majoritate a problemelor acestui soft sunt legate de faptul ca porgramul se interpune cu el insusi. Pana cand cei care l-au dezvoltat nu vor rezolva aceasta problema utilizatorii se vor orienta pentru alte produse de pe piata. Nota primita de cei care au condus testul este 5. Site-ul de unde se poate descarca: http://www.spysubtract.com/ Ad- Aware SE 6 Personal Este un soft bun i care este de asemenea gratuit, lucru care a atras foarte multi utilizatori. Reputatia lui este bine meritata. A fost singurul soft care a reusit cu succes sa restaureze functionalitatea sistemului de test. Reputatia lui i-au adus i probleme. Exista niste intrusi care pur i simplu iti dezinstaleaza Ad-Aware de pe calculator. Are o interfata foarte clara i prietenoasa pentru oricine. Scanarea se face repede. Informaii detaliate apar pe parcursul intregului proces. Cel mai bun lucru la Ad-Aware pe langa faptul ca cu toate ca reusesti sa-ti refaci sistemul, nu ti se pare ca ii predai cu totul controlul asupra calculatorului. Ad-Aware devine confuz abea dupa ce s-a terminat scanarea. O lista mare i bogata te intimideaza, mai ales cand este prezentata in trei formate diferite. Cauza principala este ca nu stii ce este de facut dupa terminarea scanarii. Ad-Aware a detectat i a sters marea majoritate a intrusilor prezenti in sistemul de test, inclusiv BroadCastPc i VX2. Spybot a detectat cateva resturi, dar nimic care sa afecteze performantele sistemului. Ad-Aware este un soft care isi merita reputatia. Este rapid, eficient i este gratis. Putine programe pot sa se mandreasca cu aceste performante. Nota primita de cei care au condus testul este 9. Site-ul de unde se poate descarca:http://www.lavasoft.de/

5.4 Probleme rezolvate


1. Este posibila restrictionarea accesului unei statii la un anumit serviciu, iar restul statiilor sa beneficieze de serviciu folosind Win XP SP2 FW? Nu, dar este posibil sa se specifice anumite statii care sa beneficieze de un anumit serviciu al unei statii, cele nespecificate fiind restrictionate, urmand pasii: Control Panel->Windows Firewall->Exceptions->Add port->Change scope->Custom List 2. Ce implica restrictionarea unui program in consola Win XP Sp2 FW? Cei care se conecteaza la retea nu mai beneficiaza de serviciile oferite de programul restrictionat. 3. Care este optinuea care restrictioneaza pachetele transmise de comanda ping? Din pagina Advanced a consolei, se selecteaza Settings din grupul Network Connection Settings, iar apoi se deselecteaza "Allow incoming echo requests" de pe pagina ICMP. 48

4. Daca un calculator are blocat cu ajutorul FW portul 80, ce semnificatie ar putea avea lucrul acesta? Accesul de pe calculatorul respectiv in exterior, prin intermediul portului 80, sau din exterior la orice serviciu ce ruleaza pe portul 80 e restrictionat. Portul 80 e portul implicit folosit de serverele Web pt. tranzactii. Daca accesul la acest port e blocat, paginile de web nu mai pot fi accesate. 5. Dati 3 exemple de programe FW. 1.) NortonFirewall 2.) ZonaAlarm 3.) BitDefender Firewall 4.) Windows Firewall 6. Ce rezultat are comanda "nmap -O gazda" ? Explicati pe scurt Aceasta comanda este folosita pentru aflarea sistemului de operare de pe masina gazda. 7. Cate porturi scaneaza implicit nmap? Implicit scaneaza 1660 de porturi (fisierul nmap-services). 8. Ce semnificatie are un port filtrat? Un port filtrat este un port controlat de un firewall 9. ce semnificatie are un port inchis? Un port poate fi inchis de firewall. Un port inchis nu primeste cereri sau pachete 10. scrieti parametrii comenzi pentru scanarea porturilor de la 2500 la 10250. nmap -p 2500-10250 gazda

5.5 Probleme nerezolvate


1. Logati-va pe serverul 192.168.39.133 (sau pe un server de linux la care aveti acces) folosind so/so. Folositi pentru aceasta putty.exe. Care este numele serverului la care v-ati conectat? 2. In consola linux rulati: nmap localhost. Descrieti in cateva fraze ce rezultatul. 3. Apelati "telnet localhost 80" si apoi rulati comanda "get". Explicati ce s-a intamplat. 4. Folosind nmap, scanati IP statiei pe care lucrati (nmap 192.168.39.x). Ce observati? 5. Accesati un share de pe o statie vecina. Este posibil? 6. Rulati: telnet 192.168.39.60 139. Explicati pe scurt ce se intampla? 7. Creati un director si apoi creati un share corespunzator pe acesta. Poate fi accesat acest director din retea? 8. In Control Panel se gaseste un Applet Windows Security. Activati firewall cu optiunea nici o exceptie (no exception). 9. Retestati pasii 2,3,4,5,6,7 10. Activati exceptia "File and Printer Sharing". Ce este diferit fata de ce se intampla la 8? 12. Retestati pasii 2,3,4,5,6,7 si notati in plus porturile afisate 13. Documentati pe scurt 3 porturi. Ex. Portul 21 este corespunzator protocolului FTP(=File Transfer Protocol). FTP este un protocol de schimb de fisiere pe Internet. FTP lucreaza in acelas mod ca HTTP pentru transferul paginilor web de la serverul pe care se afla pagina web la browserul client si SMTP pentru transferul electronic al mail-urilor pe Internet. FTP foloseste protocolul TCP/IP pentru a asigura transferul datelor 14. La ce este folosit "Winpcap" ? 15. Scrieti/activati o alerta pentru traficul generat de protocolul ICMP pentru programul de detecatare a intruziunilor snort. 16. Scrieti o alerta pentru atentionarea la scanarea sistemului folosind "nmap" pentru programul de detecatare a intruziunilor snort.

49

6 bash - GNU Bourne-Again SHell


6.1 Descriere
Bash este un limbaj care interpreteaza si executa comenzi citite de la intrarea standard sau dintr-un fisier. Are incorporate instructiuni specifice Korn sau C (ksh si csh).

6.2 Optiuni
Bash interpreteaza urmatoarele optiuni atunci cand este apelat: -c string Daca aceasta optiune este prezenta, comenzile sunt citite dintr-un string. Daca sunt argumente dupa string, ele sunt atribuite parametrilor de intrare, incepand cu $0; -i Daca aceasta optiune este prezenta, shell-ul este interactiv. -l Bash se comporta ca si cand ar fi apelat ca un login shell. -r Daca aceasta optiune este prezenta, shell-ul devine restrictiv. -s Daca aceasta optiune este prezenta, fara alte argumente, comenzile sunt citite din fisierul standard de intrare. Aceasta optiune permite setarea parametrilor atunci cand este apelat shell-ul interactiv. -D Este tiparita o lista a tuturor string-urilor intre ghilimele si precedate de $ la iesirea standard. Aceasta optiune seteaza implicit si optiunea n, adica nu se va executa nici o comanda. [-+]O [shopt_option] shopt_option este una din optiunile shell acceptate de shopt builtin. Daca shopt_option este prezent, -O activeaza valoarea acelei optiuni; +O deactiveaza acea valoare. If shopt_option nu este inlocuit, numele si valorile optiunilor shell acceptate de shopt sunt tiparite la iesirea standard. Daca apelarea este +O, iesirea este afisata intr-un format care poate fi folosit si ca intrare. -Mentioneaza sfarsitul optiunii si dezactiveaza setarea altor optiuni in vii tor. Orice argument dupa -- este tratat ca fiind numele unui fisier sau numele unor argumente. Bash poate interpreta si optiuni formate in mai multe caractere. Aceste optiuni trebuie sa apara in linia de comanda inainte de caracterul pentru a fi recunoscute. --dump-po-strings Este echivalent cu D, dar iesirea este in format GNU gettext po (portable object) --dump-strings Este echivalent cu D. --help Afiseaza un mesaj privind optiunea specificata, la iesirea standard. --init-file file --rcfile file Executa comenzi dintr-un fisier si nu de la initializarea standard ~/.bashrc, daca shell-ul este interactiv. --login 50

Este exhivalent cu -l. --noediting Nu se foloseste libraria GNU pentru a citi liniile de comanda cand shell -ul este interactiv. --noprofile Nu se citesc fisierele /etc/profile sau oricealt fisier de initializare personalizat ~/.bash_profile, ~/.bash_login, sau ~/.profile. Implicit, bsh citeste aceste fisiere cand este apelat ca si login. --norc Nu se citeste si nu se executa fisierul de initializare personalizat ~/.bashrc daca shell este interactiv. Aceasta setare este implicita daca shell-ul etse apelat ca si sh. --posix Se schimba comportamentul lui bash acolo unde setarile implicite difera de standardul POSIX 1003.2 pentru a se potrivi cu acesta. --restricted Shell-ul devine restrictiv. --rpm-requires Se genereaza o lista de fisiere care sunt necesare pentru rularea shell-ului. Este apelata implicit optiunea n. --version Afiseaza informatii despre versiunea de bash la iesirea standard.

6.3 Argumente
Daca raman argumente dupa precizarea optiunilor comenzii, si nu a fost setata optiunea c sau s, primul argument este considerat ca fiind numele fisierului care contine comenzile shell, iar restul parametrilor sunt considerati ca fiind parametrii de intrare.

6.4 Rulare
Un login shell este acela al carui prim caracter din lista de argumente este -, sau optiunea login. Un shell interactiv etse cel ce incepe cu argumente non-option si fara optiunea c ale carei intrari si iesiri sunt conectate la terminale, sau care incepe cu optiunea i. Cand bash este apelat ca si un login shell interactiv, sau ca un shell neinteractiv dar cu optiunea login, mai intai citeste si executa comenzi din fisierul /etc/profile, daca acesta exista. Dupa ce a citit din acest fisier, se cauta fisierele ~/.bash_profile, ~/.bash_login, si ~/.profile, in aceasta ordine si citeste si executa comenzi din primul care exista. Cand un shell login exista, bash citeste si executa comenzi din fisierul ~/.bash_logout, daca acesta exista. Cand este apelat sub forma sh, el incearca sa imite comportamentul versiunilor anterioare de sh, tinand cont de standardele POSIX. Cand este apelat in modul posix, ca si in cazul in care este setata optiunea --posix, el se adapteaza standardului POSIX in ceea ce priveste fisierele de care are nevoie la lansare. Bash determina cand este rulat de remote shell daemon, sau rshd. In acest caz, citeste si executa comenzi din fisierul ~/.bashrc, daca acel fisier exista. Optiunea --norc poate fi utilizata pentru a opri acest comportament, la fel cum optiunea --rcfile poate forta citirea altui fisier. 51

6.5 Comenzi simple


O comanda este o secventa d variabile si de optiuni separate de spatii si terminate de un operator de control. Primul cuvand este numele comenzii care se executa, iar urmatoarele sunt argumente date in linia de comanda. Linii pipe Sunt secvente de una sau mai multe comenzi separate de caracterul |. Sintaxa: [time [-p]] [ ! ] command [ | command2 ... ] Daca semnul ! precede o lini pipe, iesirea acelei linii pipe este NU-ul logic al iesirii ultimii comenzi. Altfel iesirea linii pipe este iesirea ultimei comenzi. Daca linia pipe este precedata de cuvantul time, atunci se va afisa timpul consumat in timpul executiei. Fiecare comanda din linia pipe este executata de catre un proces separat. Liste O lista este o secventa de una sau mai multe linii pipe separate de unul din operatorii &, &&, sau ||, si optional terminata de &, sau <newline>. Pioritatea cea mai mare o au operatorii && si ||, urmati de &. command1 && command2 //command2 este executata daca si numai daca command1 //returneaza valoarea 0. command1 || command2 //command2 este executata daca command1 returneaza o valoare //diferita de 0 Comenzi Se pot folosi operatorii urmatori pentru a crea expresii: ( expression ) //returneaza valoarea expresiei ! expression //adevarat daca expresia este falsa expression1 && expression2 //adevarat daca ambele expresii sunt adevarate expression1 || expression2 //adevarat daca cel putin una din expresii este adevarata for name [ in word ] do din list done //numele variabilei ia pe rand fiecare valoare din lista //si se executa comenzile continute in list pentru fiecare //aceste valori //daca lista este vida nu se va executa nici o comanda

for (( expr1 ; expr2 ; expr3 )) //se evalueaza expr1; se evalueaza apoi expr2 si pana cand valoarea do //ei este nenula, se execula lista de comenzi si se evalueaza expr3 list //daca lipseste una din cele trei expresii, valoarea implicita va fi 1 done //se returneaza valoarea ultimei comenzi executate case word in [ [(] pattern [ | pattern ] //se incearca potrivirea lui word cu unul din sabloanele existente //daca s-a gasit o astfel de asemanare se execula lista de comenzi 52

//corespunzatoare //rezultatul este 0 daca nu s-a gasit nici o asemanare sau valoarea //ultimei comenzi executate

if list then

//se executa if list; daca valoarea returnata este 0 atunci se executa //comenzile din list list; //altfel, pentru fiecare elif list care se executa, daca valoarea este 0 [ elif list; then list; ] ... [ else list; ] //se executa lista de comenzi corespunzatoare fi //altfel se executa comenzile de pe ramura else, daca exista //valoarea returnata este valoarea ultimei comenzi executata sau //zero daca nici o ramura nu este adevarata while list do list done until list do list done [ function ] name () { list } //se executa comenzile din lista cat timp ultima comanda din //lista returneaza valoarea 0 //valoarea finala va fi cea a ultimei comenzi executate //sau zero daca nu s-a executat nici una //se executa comenzile din lista cat timp ultima comanda din //lista returneaza o valoare nenula //valoarea finala va fi cea a ultimei comenzi executate //sau zero daca nu s-a executat nici una //se defineste o functie numita name //corpul functie il constituie comenzile din list //aceasta lista de comenzi se executa la fiecare apel al functiei //valoarea returnata este valoarea ultimei comenzi executata

Caractere speciale \a alert (bell) \b backspace \e caracterul escape \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \\ backslash \' single quote \nnn caractetul a carui valoare in octal este nnn \xHH caractetul a carui valoare in hexazecimal este HH \cx un x-caracter de control

6.6 Parametrii
Parametrul este o entitate care retine o valoare. Poate fi un nume, un numar sau unul din caracterele speciale mentionate anterior. Daca nu se atribuie nici o valoare se va atribui implicit valoare null. name=[value] Parametrii speciali * //$* va reprezenta toti parametrii din linia de comanda 53

@ //$@ este echivalent cu $1 $2; daca nu sunt parametrii va fi null # //numarul de parametrii din linia de comanda ? //linia de comanda cel mai des executata //optiunile setate $ //ID-ul pentru shell ! //ID-ul procesului cel mai des executat in background 0 //numele fisierului shell script _ //numele absolut al numelui fisierului script ${parametru} //se va obtine valoarea parametrului Substituirea comenzilor Sunt doua forme de a substitui numele comenzii: $(command) sau `command` Sabloane * //orice string, inclusiv null ? //potrivirea unui caracter [...] //orice caracter din lista ?(pattern-list) //una sau nici o aparitie a sablonului *(pattern-list) //una sau mai multe aparitii ale sablonului +(pattern-list) //una sau mai multe aparitii ale sablonului @(pattern-list) //una sau mai multe aparitii exacte ale sablonului !(pattern-list) //orice caracter care nu se potriveste cu sablonul dat Redirectare < este folosit pentru a redirecta intrarea standard, iar > pentru a redirecta iesirea standard. Pentru adaugare se foloseste operatorul >>. Operatori id++ id-//post-incrementare si post-decrementare ++id --id //pre-incrementare si pre-decrementare -+ //scadere si adunare unare !~ //negatie logica pe biti ** //exponential */% //inmultire, impartire, rest +//adunare si inmultire << >> //shiftare pe biti <= >= < > //comparari == != //egalitate si neegalitate & //si pe biti ^ //sau exclusiv pe biti | //sau pe biti && //si logic || //sau logic expr?expr:expr //expresie conditionata = *= /= %= += -= <<= >>= &= ^= |= EXPRESII CONDITIONATE -a file //adevarat daca fisierul exista -b file //adevarat daca fisierul exista si e un fisier block special -c file //adevarat daca fisierul exista si e un fisier caracter special -d file //adevarat daca fisierul exista si e director 54

-e file //adevarat daca fisierul exista -f file //adevarat daca fisierul exista si e un fisier obisnuit -s file //adevarat daca fisierul exista si are dimensiunea mai mare de 0 -r file //adevarat daca fisierul exista si poate fi citit -w file //adevarat daca fisierul exista si poate fi scris -x file //adevarat daca fisierul exista si poate fi executat file1 -nt file2 //adevarat daca file1 este mai recent decat file2, sau daca file1 exista si file 2 nu file1 -ot file2 //adevarat daca file1 este mai vechi decat file2, sau daca file2 exista si file 1 nu -z string //adevarat daca dimensiunea string-ului este 0 -n string //adevarat daca dimensiunea string-ului nu este 0 string1 == string2 //adevarat daca sunt egale string1 != string2 //adevarat daca nu sunt egale string1 < string2 //adevarat daca string1 este mai mic decat string2 string1 > string2 //adevarat daca string1 este mai mare decat string2 arg1 OP arg2 unde OP poate fi -eq, -ne, -lt, -le, -gt, or -ge. Aceste operatori returneaza adevarat daca arg1 e egal, nu e egal, e mai mic, e mai mic sau egal, e mai mare, e mi mare sau egal decat arg2. Arg1 si arg2 sunt valori intregi. Exemple 1. Se cere un fisier de comenzi care are in linia de comanda un nume de fisier f si un numar n. Se cere crearea fisierului f prin concatenarea fisierelor f.1, f.2, ..., f.n. Daca unul din aceste fisere nu exista el va trebui creat si va trebui sa contina textul "Eroare: acest fisier nu a existat inainte de executia comenzii". if test $# -ne 2 //daca nu s-au dat doi parametrii then //se va tiparii un mesaj de eroare echo "Comanda are nevoie de 2 parametri!" //si nr parametrilor introdusi echo "Ati introdus $#" else //daca sunt doi parametrii if test -s $1 //daca fisierul dat ca prim parathen //metru exista deja se va afisa un echo "Fisierul specificat deja exista" //mesaj de atentionare else //daca nu exista i=0; //se seteaza i la 0 adica nu s-a while test $i != $2 //creat nici un fisier do //cat timp mai trebuie create fis. let i=i+1 //se trece la unul nou if test -s $1$I //se verifica daca exista then echo "" //daca da nu se tipareste nimic else //daca nu exista se creaza si se echo "Eroare: acest fisier nu a existat inaite de executia comenzii">>$1$i fi //tipareste textul in el cat>>$1<$1$I //se adauga fisierul nou creat la done //sfarsitul celui cerut a se crea fi fi 55

2. Un fisier de comenzi care ordoneaza dupa numarul de cuvinte continute, fisierele date ca si parametrii. if test $# -eq 0 //daca nu se da nici un parametru then //se va afisa un mesaj de eroare echo "Nu sunt parametrii!!" else if test -e sort.txt //daca exista fisierul sort.txt then //se va sterge pentru a nu se rm sort.txt //suprapune datele fi touch sort.txt //se creaza fisierul while test $# -ne 0 //cat timp mai sunt fisiere in linia do //de comanda if test -s $1 //daca exista fisierul dat then nc=`cat $1|wc -w` //se numara cate cuvinte contine echo $nc $1 >> sort.txt //se tipareste in fisier nr lor si fi //numele fisierului shift //se trece la urmatorul parametru done sort -g -r sort.txt > sort1.txt //se sorteaza fisierul dupa nr de cat sort1.txt //cuvinte si se tipareste fi 3. Sa se scrie un program Shell care primeste ca parametri doua nume de directoare si muta ramura desemnata de cel de-al doilea director ca subramura a primului, adaugand extensia .unu la fiecare fisier. if test $# -ne 2 //daca nu s-au dat doi parametri apare un then //mesaj de avertizare echo "Sunt necesari doi parametrii." else mv $2 $1 //se muta cel de-al doilea subdirector ca ramura cd $1 //a primului temp=`find $2` //se schimba calea curenta la primul director si for f in $temp //continutul lui se depune in variabila temp do //fiecare element din temp se verifica daca if test -d $f //este director si daca da nu se face nimic then //daca este fisier se redenumeste prin sleep 1 //adaugarea la numele lui a extensiei .unu else if test -e $f then rename $f $f.unu $f fi fi done fi 4. Un fisier de comenzi care din 10 in 10 secunde ( folosind un ciclu while) afiseaza incarcarea sistemului (comanda uptime) si spatiul ocupat pe disc. while true //intr-un ciclu infinit do 56

sleep 10 uptime du -k c done

//se asteapta 10 secunde //se afiseaza incarcarea sistemului //si dimensiunea ocupata

5. Se da un fisier (sau mai multe) cu utilizatori. Sa se scrie un fisier de comenzi care din 20 in 20 de secunde trimite un mesaj (aflat intr-un fisier primit ca si parametru) utilizatorilor din fisierul (sau fisierele) respective. //unspe.sh if test $# -lt 2 //daca nu sunt cel putin 2 parametrii then //se tipareste mesaj de eroare echo "Comanda are nevoie de cel putin 2 parametri!" echo "Ati introdus $#" else mesaj=$1 //se retine primul parametru ca fisier cu shift //mesaj si se trece la urmatorul fis=$* //se retin toti parametrii din linia de while test $# -gt 0 //comanda do //cat timp mai sunt fisiere cu utilizatori cat $1 | sh tipmesaj.sh $mesaj //continutul unuia este intrare pentru shift //tipmesaj.sh si se trece la urmatorul done //dupa ce s-au terminat fisierele se reia sh unspe.sh $mesaj $fis //ciclul cu aceiasi parametrii fi //tipmesaj.sh while read v //continutul fisierului primit la intrare do //se citeste linie cu linie sleep 20 //se asteapta 20s mail -s "Mesaj din fisier" $v < $1 //se trimite un mail cu subiect Mesaj done //continutl va fi fisierul venit din exterior

6.7 Probleme nerezolvate


1. Sa se scrie un program Shell care, incepand din directorul dat ca parametru, in jos, face o lista a tuturor numelor care apar (fisiere si directoare), modificand fiecare nume care mai apare prin completarea sa cu numarul aparitiei (de exemplu: fis, fis1, fis2 etc). 2. Sa se scrie un program Shell de supraveghere care sa actioneze astfel: le fiecare noua conectare in sistem, pe terminalul de la care s-a realizat conectarea, sa se afiseze o lista a tuturor utilizatorilor activi din sistem si in dreptul fiecarul utilizator sa se afiseze numarul proceselor active lansate de catre acesta. 3. Sa se scrie un program Shell de supraveghere care sa actioneze astfel: la fiecare creare a unui nou subdirector in ramura care are ca radacina un director dat ca parametru, afiseaza proprietarul acestuia si toti utilizatorii activi din sistem. 4. Sa se scrie un program de supraveghere care sa actioneze astfel: la fiecare stergere a unui fisier sau director din ramura care are ca radacina un director dat ca parametru, 57

afiseaza numele fisierului sters si proprietarul acestuia. Numele fisierului sters si ora la care a fost sters se vor salva in fisierul Lost_Files. 5. Fiind dat un program sursa Pascal, sa se determine pentru fiecare procedura definita in program numarul locurilor unde este apelata, afisandu -se si numerele de linii din program unde apar aceste apeluri. 6. Sa se scrie un program de supraveghere care actioneaza astfel: la fiecare conectare si deconectare din sistem a unor anumiti utilizatori (furnizati ca parametri) va salva intr -un fisier numele, ora, daca este vorba despre conectare sau deconectare si serverul la care s-a produs actiunea.

7 Bibliografie
1. Lars Klander, "Anti-hacker. Ghidul securittii reelelor de calculatoare", ALL Educational, Bucuresti, 1998 2. Andrew S. Tanenbaum, "Reele de calculatoare", Ed. Computer Press Agora, 1997, Internet 3. Gary McGraw , The Role of Architectural Risk Analysis in Software Security 4. Tom Welsh, The Security Risks of Modern distributed Systems 5. http://web.mit.edu/kerberos/ 6. http://www.javvin.com/protocolKerberos.html 7. http://en.wikipedia.org/wiki/Kerberos_(protocol) 8. http://www.isi.edu/gost/publications/kerberos-neuman-tso.html 9. http://www.cs.cmu.edu/~mihaib/articles/kerberos/kerberos-html.html 10. http://www.byte.ro/byte95-03/mon4.html 11. http://www.generation5.org/ 12. http://www.tibs.org 13. http://www.smartcardbasics.com/ 14. http://sumitdhar.blogspot.com/ 15. Tehnologii Semntura Electronic, Revista ComputerWorld Romnia, august 2002 16. http://www.pki-page.org/ 17. http://en.wikipedia.org/wiki/PKI 18. http://www.webopedia.com/TERM/P/PKI.html 19. http://ospkibook.sourceforge.net/ 20. http://en.wikipedia.org/wiki/Secret_sharing 21. http://szabo.best.vwh.net/secret.html 22. http://www.x5.net/faqs/crypto/q103.html 23. http://www.cs.cornell.edu/Courses/cs513/2000SP/SecretSharing.html 24. http://arstechnica.com/reviews/apps/spyware-removal.ars/1 25. http://www.irchelp.org

58