securitatea datelor in retelele de calculatoare

58
Constantin Lucian ALDEA 2008 – 2009 REPROGRAFIA UNIVERSITĂŢII “TRANSILVANIA” DIN BRAŞOV

Upload: danny-murmus

Post on 18-Dec-2014

202 views

Category:

Documents


7 download

DESCRIPTION

Securitatea datelor in retele de calculatoare

TRANSCRIPT

Page 1: Securitatea Datelor in Retelele de Calculatoare

Constantin Lucian ALDEA

2008 – 2009

REPROGRAFIA UNIVERSITĂŢII “TRANSILVANIA” DIN BRAŞOV

user
Rectangle
Page 2: Securitatea Datelor in Retelele de Calculatoare

2

Page 3: Securitatea Datelor in Retelele de Calculatoare

3

1 Cuprins 1 Cuprins ................................ ................................ ................................ ................................ ............................ 3 2 Sisteme IT şi probleme de securitate ................................ ................................ ................................ .............. 4

2.1 Sisteme informatice................................ ................................ ................................ ................................ .. 4 2.2 Obiective de securitate ................................ ................................ ................................ ............................. 4 2.3 Criptografia tradiţională ................................ ................................ ................................ ............................ 6 2.4 Caracteristici ale criptografiei moderne ................................ ................................ ................................ .... 7 2.5 Problema autentificării................................ ................................ ................................ .............................. 9 2.6 Implicaţii sociale ale problemelor de securitate ................................ ................................ ..................... 11 2.7 Câteva protocoale "sigure"................................ ................................ ................................ ..................... 12 2.8 Troieni ................................ ................................ ................................ ................................ .................... 12 2.9 Probleme rezolvate ................................ ................................ ................................ ................................ 14 2.10 Probleme nerezolvate ................................ ................................ ................................ ........................ 15

3 Analiza riscurilor ................................ ................................ ................................ ................................ ............ 15 3.1 Probleme rezolvate ................................ ................................ ................................ ................................ 18 3.2 Probleme nerezolvate ................................ ................................ ................................ ............................ 19

4 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 paşi (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

5 Securitatea reţelelor ................................ ................................ ................................ ................................ ...... 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

6 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

7 Bibliografie ................................ ................................ ................................ ................................ ..................... 58

Page 4: Securitatea Datelor in Retelele de Calculatoare

4

2 Sisteme IT şi probleme de securitate 2.1 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 foloşirea computerelor şi a ştiinţei telecomunicaţiilor pentru a primi, stoca şi transmite informaţii. Deci un sistem IT va fi un sistem cu ajutorul căruia se pot efectua schimburi de date între mai mulţi utilizatori. Pentru a se putea efectua acest schimb de date, utilizatorii trebuie să fie interconectaţi prin intermediul unei reţele. Nu se pune problema de securizare a unui calculator care nu este legat la nici o reţea deoarece prin simpla sa izolare problema este rezolvată, el nefiind accesibil vreunui atac electronic. Deci problema securităţii sistemelor IT se confundă cu problema securităţii reţelelor de calculatoare.

Importanţa aspectelor de securitate în reţelele de calculatoare a crescut odată cu extinderea prelucrărilor electronice de date şi a transmiterii acestora prin intermediul reţelelor. În cazul operării asupra unor informaţii confidenţiale, este important ca avantajele de partajare şi comunicare aduse de reţelele de calculatoare să fie susţinute de facilităţi de securitate substanţiale. Acest aspect este esenţial în condiţiile în care reţelele de calculatoare au ajuns să fie folosite inclusiv pentru realizarea de operaţiuni bancare, cumpărături sau plata unor taxe. În urma implementării unor mecanisme de securitate într-o reţea de calculatoare, informaţiile nu vor putea fi accesate sau interceptate de persoane neautorizate (curioase sau, eventual, chiar rău intenţionate) şi se va împiedica falsificarea informaţiilor transmise sau utilizarea clandestină a anumitor servicii destinate unor categorii specifice de utilizatori ai reţelelor. Persoanele care atentează la securitatea reţelelor pot aparţine unor categorii diverse, comitând delicte mai mult sau mai putin grave: studenţi care se amuză încercând să fure posta electronică a celorlalţi, hackeri care testează securitatea sistemelor sau urmăresc să obtină în mod clandestin anumite informaţii, oameni de afaceri care încearcă să descopere strategiile adversarilor, persoane care realizează fraude financiare (furtul numerelor de identificare a cărţilor 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 condiţiile în care pot exista interese atât de numeroase de atac asupra unei reţele, este evident că proiectanţii resurselor hard şi soft ale acesteia trebuie să ia măsuri de protecţie serioase împotriva unor tentative rău intenţionate. Metode de protecţie care pot stopa atacatorii accidentali se pot dovedi inutile sau cu un impact foarte redus asupra unor adversari redutabili - dedicaţi şi cu posibilităţi materiale considerabile.

2.2 Obiective de securitate Problemele de asigurare a securităţii reţelelor pot fi grupate în următoarele domenii interdependente:

1. confidenţialiatea se referă la asigurarea accesului la informaţie doar pentru utilizatorii autorizaţi şi împiedicarea accesului pentru persoanele neautorizate;

2. integritatea se referă la asigurarea consistenţei informaţiilor (în cazul transmiterii unui mesaj prin reţea, integritatea se referă la protecţia împotriva unor tentative de falsificare a mesajului);

Page 5: Securitatea Datelor in Retelele de Calculatoare

5

3. autentificarea asigură determinarea identităţii persoanei cu care se comunică (aspect foarte important în cazul schimbului de informaţii confidenţiale sau al unor mesaje în care identitatea transmiţătorului este esenţială);

4. ne-repudierea se referă la asumarea responsabilităţii 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 părţi (s-ar putea susţine, în mod fraudulos, că înţelegerea iniţială se referea la o sumă mult mai mică).

Concret implementarea unor mecanisme de securitate în reţelele de calculatoare de arie largă, în particular - Internetul, priveste rezolvarea şi prevenirea următoarele tipuri de atacuri:

- bombardarea cu mesaje - asa numitul spam - trimiterea de mesaje nedorite, de obicei cu un conţinut comercial.

Acest fenomen este neplăcut în cazul unui număr mare de mesaje publicitare nedorite şi poate avea efecte mai grave în cazul invadării intenţionate cu mesaje ("flood"), uzual cu un conţinut nesemnificativ.

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

- infectarea cu viruşi specifici anumitor aplicaţii - se previne prin instalarea unor programe antivirus care detectează viruşii, devirusează fişierele infectate şi pot bloca accesul la fişierele care nu pot fi "dezinfectate".

- accesarea prin reţea a calculatorului unui anumit utilizator şi "atacul" asupra acestuia. La nivelul protocoalelor de reţea, protejarea accesului la un calculator sau la o reţea 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 reţele de calculatoare la anumite facilităţi din Internet.

- interceptarea datelor în tranzit şi eventual modificarea acestora - sniffing. Datele se consideră interceptate atunci când altcineva decât destinatarul lor le primeşte. În Internet, datele se transmit dintr-un router în altul fără a fi (uzual) protejate. Routerele pot fi programate pentru a intercepta, eventual chiar modifica datele în tranzit. Realizarea unei astfel de operaţii este destul de dificilă, necesitând cunostinte speciale de programare în reţele şi Internet, dar există numeroase programe care pot fi utilizate în aceste scopuri, ceea ce duce la creşterea riscului de interceptare a datelor. Transmisia protejată a datelor trebuie să garanteze faptul că doar destinatarul primeşte ş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 intenţionat, de către o persoană care atentează la securitatea reţelei sau printr-o transmisie defectuoasă

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

Se poate remarca faptul că problemele ridicate la primele 4 subpuncte sunt riscuri generice, specifice pentru utilizatorii care fac schimb de fişiere şi respectiv pentru toţi cei care sunt conectati la o reţea de calculatoare - locală sau de arie largă. Problemele de interceptare şi autentificare, cele mai importante din punctul de vedere al utilizatorilor obisnuiţi, sunt rezolvate prin aplicarea unor tehnici de criptare.

Page 6: Securitatea Datelor in Retelele de Calculatoare

6

Pentru asigurarea securitătii reţelei este importantă implementarea unor mecanisme specifice pornind de la nivelul fizic (protecţia fizică a liniilor de transmisie ), continuând cu proceduri de blocare a accesului la nivelul reţelei (firewall), până la aplicarea unor tehnici de criptare a datelor, metodă specifică pentru protecţia comunicării între procesele de tip aplicaţie care rulează pe diverse calculatoare din reţea. Împiedicarea interceptării fizice este în general costisitoare şi dificilă; ea se poate realiza mai facil pentru anumite tipuri de medii (de exemplu, detectarea interceptărilor pe fibre optice este mai simplă decât pentru cablurile cu fire de cupru). De aceea, se preferă implementarea unor mecanisme de asigurare a securitătii la nivel logic, prin tehnici de codificare/criptare a datelor transmise care urmăresc transformarea mesajelor astfel încât să fie înţelese numai de destinatar; aceste tehnici devin mijlocul principal de protecţie a reţelelor.

2.3 Criptografia tradiţională Modelul clasic de criptare presupune transformarea unui text sursă ("plain text") printr-o functie dependentă de o cheie ("key"), transformare în urma căreia rezultă textul cifrat ("ciphertext"). Domeniul care se ocupă de spargerea (decodificarea) cifrurilor se numeşte 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 următoarele notaţii: S - textul sursă, CK - functia de criptare, dependentă de o cheie K, R - codul rezultat şi DK - functia de decriptare. Cu aceste notaţii, 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 criptării foloseşte 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 număr mare de criptologi să spargă sistemul, îi poate dovedi stabilitatea, în caz că după câtiva ani nici unul din specialiştii care au încercat să-l spargă nu a reuşit. Componenta secretă a criptării este, în consecinţă, cheia, a cărei lungime devine foarte importantă. În mod evident, cu cât cheia este mai lungă, cu atât elementele ei sunt mai greu de determinat. De exemplu, pentru o secventă de n cifre (0,...,9), există 10n posibilităti de a o crea. Astfel, pentru determinarea unei secvente de 6 cifre ar trebui parcurse 1 milion de posibilităti. În cazul în care cheile ar contine litere, numărul de alternative creşte fiindcă în alfabet există 26 de litere. Se poate deduce că lungimea cheii produce creşterea exponentială a volumului de muncă al criptanalistului. O cheie care să poată ţine la distantă adversari profesionisti ar trebui să aibă cel puţin 256 de biti (cel putin 32 de cifre), în timp ce uzual se pot folosi chei de 64 de biţi (în jur de 8 cifre). Există două metode traditionale de criptare: cifruri cu substituţie şi cifruri cu transpoziţie. Aceste tehnici de bază sunt folosite, în forme evoluate, şi în sistemele moderne de criptare. Cifrurile cu substituţie. Î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 substituţie este înlocuirea fiecărei litere din textul sursă cu o anumită literă corespondentă. Sistemul se numeşte substituţie 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 celor 26! de

Page 7: Securitatea Datelor in Retelele de Calculatoare

7

chei posibile ar necesita unui calculator 1013 ani alocând 1msec pentru fiecare soluţie. Totusi, folosind o cantitate foarte mică de text cifrat, cifrul va putea fi spart cu usurintă. Abordarea de bază porneste de la proprietătile statistice ale limbajelor naturale. Cunoscând frecventa statistică a fiecărei litere şi a fiecărui grup de două sau trei litere (de exemplu, în limba română: ce, ci, ge, gi, oa, ua etc.) într-o anumită limbă, numărul mare de alternative initiale se reduce considerabil. Un criptanalist va număra frecventele relative ale tuturor literelor în textul cifrat şi va încerca să facă asocierea cu literele a căror frecventă este cunoscută. Apoi va căuta grupurile de litere, încercând să coroboreze indiciile date de acestea cu cele furnizate de frecventele literelor. O altă abordare, aplicabilă dacă există informaţii despre domeniul la care se referă textul, este de a ghici un cuvânt sau o expresie probabilă (de exemplu, "financiar" pentru un mesaj din contabilitate) şi de a căuta corespondentul său, folosind informaţii despre literele repetate ale cuvântului şi pozitiile lor relative. Abordarea se poate combina cu informaţiile statistice legate de frecventele literelor. Cifruri cu transpoziţie. Spre deosebire de cifrurile cu substituţie, care păstrează ordinea literelor din textul sursă dar le transformă, cifrurile cu transpoziţie ("transposition ciphers") reordonează literele, fără a le "deghiza". Un exemplu simplu este transpoziţia 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 cuvânt cu litere distincte, de o lungime egală cu numărul de coloane folosite în cifru. Ordinea alfabetică a literelor din cuvântul 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 ieşire (ş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 câteva 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 fiecărui caracter cu codul său ASCII. Apoi se aplică o operaţie logică - de tip Sau exclusiv (operaţia 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 informaţii. Pentru un esantion de text cifrat suficient de mare, orice literă sau grup de litere (diftong, triftong) va apărea 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 păcate, câteva dezavantaje practice:

- cheia nu poate fi memorată, astfel încât transmitătorul şi receptorul să poarte câte 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 transmitătorului şi receptorului care generează o pierdere sau o inserare de caractere poate compromite întreaga transmisie fiindcă toate datele ulterioare incidentului vor apărea ca eronate.

2.4 Caracteristici ale criptografiei moderne Având în vedere faptul că transmisia de date în Internet este neprotejată, a apărut necesitatea dezvoltării tehnicilor de criptare în directia automatizării acestora şi a implementării lor în reţele de calculatoare. Astfel, utilizarea unor algoritmi pentru criptarea informaţiilor transmise va deveni principalul mijloc de rezolvare a problemelo r de interceptare în reţele.

Page 8: Securitatea Datelor in Retelele de Calculatoare

8

În descrierea unei transmisii de date prin reţea se obisnuieste să se numească generic "mesaj" un ansamblu de date trimis de un "emitător" unui "receptor". Printr-o metodă de criptare, mesajele vor fi transformate, pe baza unei chei de criptare, astfel încât să poată fi întelese doar de destinatar. Unul din principiile mai recent apărute în criptanaliză constă în utilizarea unei alte chei pentru decodificarea mesajului decât cea folosită la codificare; această tehnică este mai eficientă dar complică putin procedeul general şi de aceea se preferă când criptarea / decriptarea se realizează automat. Evident, dimensiunea unei chei de criptare (exprimate în general în biti) este o măsură a nivelului de securitate dat de acea cheie, ea indicând rezistenta mesajului cifrat la încercările de descifrare de către 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 transpoziţia şi substituţia. Algoritmii cu cheie secretă sunt caracterizati de faptul că folosesc aceeasi cheie atât în procesul de criptare, cât şi în cel de Din acest motiv, acesti algoritmi mai sunt cunoscuti sub numele de algoritmi simetrici; pentru aplicarea lor este necesar ca înaintea codificării / decodificării, atât emitătorul cât ş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 apărea ş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 foloseşte). Fiecare dintre aceste chei poate cripta mesajul, dar un mesaj criptat cu o anumită cheie nu poate fi decriptat decât cu cheia sa pereche. Astfel, în cazul utilizării unui algoritm asimetric în comunicarea dintre un emitător şi un receptor, fiecare dintre acestia va detine câte o pereche de chei - publică şi privată. Emitătorul poate cripta mesajul cu cheia publică a receptorului, astfel încât doar acesta să poată decripta mesajul cu cheia sa privată. În cazul unui răspuns, receptorul va utiliza cheia publică a emitătorului astfel încât decriptarea să se poată face exclusiv de către emitător (cu cheia sa pereche, privată). Cheile algoritmilor asimetrici sunt obtinute pe baza unei formule matematice din algebra numerelor mari, pentru numere prime între ele, iar din valoarea unei chei nu poate fi dedusă valoarea cheii asociate. Remarcăm faptul că aplicarea în informatică a calculelor modulo numere prime s-a dovedit extrem de benefică pentru multi algoritmi moderni. Traditional, criptografii foloseau algoritmi simpli asociati cu chei de securitate foarte lungi. Azi se urmăreste crearea unor algoritmi de criptare atât de complecsi încât să fie practic ireversibili, chiar dacă un criptanalist achizitionează cantităti foarte mari de text cifrat. O altă caracteristică a criptografiei moderne constă în automatizarea tehnic ilor clasice, prin foloşirea unor dispozitive special concepute. Transpozitiile şi substitutiile vor fi implementate cu circuite simple, de viteză mare, care vor fi conectate în cascadă astfel încât dependenta ieşirii de intrare devine extrem de complicată şi dificil de descoperit. În 1977, guvernul SUA a adoptat ca standard oficial pentru informaţiile 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ă

Page 9: Securitatea Datelor in Retelele de Calculatoare

9

stea la baza unor sisteme folosite în mod curent. DES foloseşte (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 "spărgătoare de coduri a guvernului", care dorea suprematia în domeniul criptografic. Din 1977, cercetătorii î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 foloşirea unui cip DES încorporat (loteria chinezească). În scopul decriptării 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 număr mare de masini, de ordinul miilor sau chiar zecilor de mii) creşte considerabil eficienta procesului de decriptare. Un alt cifru renumit este IDEA (International Data Encryption Algorithm), realizat de doi cercetători la Politehnica Federală din Zürich (ETHZ). Acest algoritm foloseşte 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 cercetători de la MIT - Ronald Rivest, Adi Shamir, Leonard Adelman - şi s-a numit cu initialele creatorilor lui: RSA. Algoritmul de criptare RSA foloseşte o cheie publică. Se observă că utilizarea unor astfel de algoritmi de criptare a datelor asigură transmisii confidenţiale de date în reţele neprotejate, rezolvând problema interceptării. De fapt, riscul de interceptare / modificare nu dispare cu totul, din cauză că orice mesaj criptat poate fi în general decriptat fără a detine cheia corespunzătoare, dacă se dispune de suficiente resurse materiale şi de timp. Evident, dimensiuni variate ale cheii asigură diferite grade de confidenţialitate iar perioada de timp necesară pentru decriptare poate fi prevăzută în functie de mărimea 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 încât utilizarea distribuită a unui foarte mare număr de procesoare poate duce la o micsorare considerabilă a timpului necesar. Din acest motiv, pentru transmisii de date în care este necesară o confidenţialitate 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 decriptării creşte 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ă foloşirea lor nu implică schimbul preliminar de chei pe canale de transmisie protejate, ca în cazul algoritmilor cu cheie secretă. Cheia publică poate fi distribuită fără restrictii pe intranet (reţeaua locală) sau Internet, iar mesajele criptate cu această cheie de un emitator vor putea fi decriptate numai utilizând cheia privată, care este detinută exclusiv de către destinatar. Astfel, nici măcar expeditorul nu ar putea realiza decriptarea mesajului trimis.

2.5 Problema autentificării Un alt domeniu în care a evoluat criptografia modernă este cel al creării unor protocoale de autentificare - tehnica prin care un proces verifică dacă partenerul de comunicatie este cel presupus şi nu un impostor. Verificarea identitătii unui proces de la distantă este dificilă şi necesită utilizarea unor protocoale complexe, bazate pe tehnici criptografice.

Page 10: Securitatea Datelor in Retelele de Calculatoare

10

Problema poate fi imaginată intuitiv sub forma a doi parteneri care comunică şi a altuia care doreste să se introducă fraudulos în comunicatie, simulând pe oricare din partenerii de discuţie. Ca o metodă de protecţie, 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 împiedicării interceptărilor, utilizarea criptărilor cu chei publice.

Unul din protocoalele de autentificare folosit în sistemele în timp real se numeşte Kerberos (omonimul câinelui-paznic al lui Hades, care îi tinea pe cei nedoriti afară). Conectia securizată la un server aflat la distantă cu SSH foloseşte pentru autentificare un alt protocol, bazat pe algoritmul cu cheie publică RSA.

Problema autentificării impune găsirea unui corespondent electronic pentru semnăturile autorizate de pe documentele legale. Un asemenea corepondent se numeşte semnătură digitală şi presupune existenta unui sistem prin care una din părti să poată transmite mesaje "semnate" celeilalte părti, astfel încât:

- receptorul să poată verifica identitatea pe care pretinde că o are emitătorul. Această cerintă este necesară, de exemplu, în sistemele financiare: calculatorul trebuie să se asigure că un ordin de cumpărare sau de plată apartine companiei cu al cărei cont bancar se va opera.

- transmitătorul să nu poată renega ulterior conţinutul mesajului. Această necesitate asigură protejarea băncilor împotriva fraudelor: un client necinstit ar putea acuza banca implicată în tranzactie, pretinzând, de exemplu, că nu a emis un anumit ordin (de plată).

- receptorul să nu poată pregăti el însusi mesajul. În cazul unei tranzactii financiare cu o bancă, această cerintă protejează clientul dacă banca încearcă să-i falsifice mesajul. Ca semnături digitale, se pot folosi semnături 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 făcute 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 identitătii celui care trimite un mesaj de postă electronică, bazându-se pe o încredere reciprocă între utilizatori. Acest neajuns ar putea fi fructificat de către persoane răuvoitoare pentru a trimite mesaje de postă electronică de pe adrese false, sau chiar de pe adrese existente, pretinzând 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"), trimitându-le de la un server la altul de mai multe ori înainte de a le directiona către adevărata destinatie.

Pentru autentificarea expeditorului unui mesaj (de postă electronică sau un ansamblu de date transmis prin Internet în alte scopuri) se foloseşte cel mai adesea un sistem cu cheie publică. Astfel, dacă expeditorul criptează mesajul cu cheia privată proprie, datele pot fi decriptate doar utilizând cheia publică pereche (vezi figura de mai jos), deci oricine poate verifica faptul că mesajul a fost transmis într-adevăr 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 utilizând 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 încât 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

Page 11: Securitatea Datelor in Retelele de Calculatoare

11

semnarea digitală a unui mesaj emis, se va realiza o criptare cu cheia privată a emitătorului şi apoi o criptare cu cheia publică a destinatarului. Astfel, destinatarul va putea decripta mesajul şi autentifica provenienta sa în condiţii de securitate.

Având î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 utilizând cheia secretă schimbată anterior. Această metodă îmbunătăteste considerabil viteza de transmisie şi de criptare / decriptare.

Practic, pentru o identificare cât 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 examinării, pe bază de acte, a identitătii reale a persoanei. În momentul în care se doreste identificarea unei persoane, o căutare î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 rândul ei alte organizaţii să emită certificate de autentificare, astfel încât originea unui certificat poate fi verificată în mod complet testând 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 comunicaţiilor, ci şi pentru certificarea originii programelor. Astfel, prin foloşirea unei criptări a programului de instalare cu cheia publică a firmei producătoare, utilizatorul poate verifica relativ usor că acel program a fost creat într-adevăr de o anumită firmă şi pentru a decide dacă să instaleze sau nu programul. Aceasta este practic cea mai bună soluţie de rezolvare a problemei rulării de programe / coduri dăunătoare, enuntată la începutul acestui capitol.

2.6 Implicaţii 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 cercetătorilor care urmăresc evolutia algoritmilor în primul rând din ratiuni stiintifice şi nici al publicului larg, în măsura în care s-ar leza libertătile individuale.

Un caz renumit de reactie guvernamentală negativă la distribuirea unui soft criptografic, dezbătut î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 tări (de exemplu, Franta), criptografia neguvernamentală este interzisă, cu exceptia cazurilor în care guvernul primeşte toate cheile utilizate. De asemenea, interceptările guvernamentale ale comunicaţiilor 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 judecătoresc în acest sens) interceptarea şi decriptarea oricărui apel telefonic din SUA. Acest subiect a iscat numeroase discutii contradictorii atât din punct de vedere din punct de vedere tehnologic (au fost propuse chiar metode de contracarare a procedeului), cât şi juridic fiindcă, pe de o parte, ar putea fi lezate libertătile individua le iar, pe de altă parte, s-ar putea asigura depistarea unor actiuni antisociale.

Page 12: Securitatea Datelor in Retelele de Calculatoare

12

2.7 Câteva 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 comunicările 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); - confidenţialitatea 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 semnăturilor 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 confidenţiale şi operaţii comerciale pe cale electronică.

Implementări similare au fost dezvoltate şi pentru sistemele de postă electronică: S/MIME sau PGP/MIME.

2.8 Troieni Un troian reprezinta un program destructiv care se ascunde in spatele unei aplicaţii 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 viruşi, 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 cetaţii, soldaţii greci s-au furisat afara din cal şi au deschis portile cetaţii, lasandu-i pe compatriotii lor sa patrunda şi sa captureze Troia. De aici vine numele acestei aplicaţii.

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 fişier similar. Astfel, “serverul” va putea porni automat, odata cu sistemul de operare. “Serverul” poate fi astfel configurat incat odata ce victima a deschis fişierul, 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

Page 13: Securitatea Datelor in Retelele de Calculatoare

13

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 fişier 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 informaţii despre calculatorul victimei.

Spre deosebire de viruşi, 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 foloşirea unui program specializat sa se evite ascunderea extensiilor (putand fui depistate astfel executabilele) sa nu se foloseasca in aplicaţii facilitati care permit download-ul sau preview-ul

automat al fişierelor 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 staţii pe care ruleaza sistemul Windows), BackOrifice2000, BeastTrojan (troian de tip client/server). BeastTrojan

BeastTrojan este un troian de Windows de tip backdoor (o aplicaţie 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 foloseşte 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

Page 14: Securitatea Datelor in Retelele de Calculatoare

14

ar fi explorer.exe, iexplore.exe, msnmsgr.exe) ceea ce permite incarcarea automata in memorie a troianului cand aceste procese sunt executate.

Locaţiile 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 fişiere 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 fişierului pentru server, mesaje false de eroare, schimbarea

iconitelor, detectarea apasarii unor taste)

Odata conectat la victima BeastTrojan permite: download/upload de fişiere, aflarea conţinutului directoarelor de pe masina victima,

executarea sau stergerea de fişiere 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?

Page 15: Securitatea Datelor in Retelele de Calculatoare

15

- 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 utilizator 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 Creşterea numărului intreprinderilor şi instituţiilor dîn ultimele decenii, are un impact

puternic asupra sistemelor de calculatoare. Acestea în condiţiile în care în ziua de azi

Page 16: Securitatea Datelor in Retelele de Calculatoare

16

aeropoarte, bănci, spitale, instituţii guveramentale şi o serie de intreprinderi nu ar putea funcţiona fără să aibă în spate un sistem informatic bine clădit.

Se pune astfel problema securităţii sistemelor IT, care însă de multe ori este neglijată, ajungându-se astfel la situaţii în care instituţii mari să fie vulnerabile în faţa atacurilor rău – voitoare. În mare parte, aceasta se datorează lipsei de experienţă şi de instruire a administratorilor de reţele şi a celor răspunzători cu buna funcţionare a sistemelor de calcul. Internet-ul, cea mai largă şi mai răspândită reţea de calculatoare este în acelaşi timp şi cea mai nesigură şi mai vulnerabilă în faţa atacurilor şi operaţiilor ilegale. În acelaşi timp, cea mai mare parte a aplicaţiilor distribuite se sprijină pe Internet. La începuturile sale (pe vremea când Internet-ul era doar un proiect de studiu al comunicării prin reţele - ARPANET - Advanced Research Projects Agency Network), toţi utilizatorii erau consideraţi „de încredere”; de aceea nu se punea problema construirii unor sisteme defensive împotriva eventualelor subminări din interior. De atunci însă şi până azi, deşi nu a trecut atât de multă vreme, numărul de calculatoare conectate la Internet a crescut exponenţial şi astfel, ceea ce la început nu părea o ameninţare, astăzi este un pericol şi o problemă pentru care tot mai greu se găsesc rezolvări, în condiţiile în care tipurile de atacuri variază din ce în ce mai mult.

Ceea ce ieri nu era privit nici măcar ca o slăbiciune, astăzi este o situaţie care pare să fi scăpat de sub control. Încercările de a remedia această situaţie par a fi insuficiente. Nici Internet Protocol Version 6 (IPv6), nici versiunile existente de firewall nu pot face faţă tuturor tipurilor de atacuri, în condţiile î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 reţea şi impun luarea unor măsuri de securitate din ce în ce mai variate.

Problema securităţii traficului prin Internet a început să ia amploare în momentul în care viruşii au încput să facă ravagii prin milioane de calculatoare şi din ce în ce mai multe date confidenţiale erau furate şi folosite în scopuri ilicite. Acestea au făcut ca mariile organizaţii să se gândească la o modalitate de a lua măsuri. Această decizie a venit însă prea târziu pentru a se mai putea găsi soluţia perfectă, în condiţiile în care o asemenea soluţie trebuia construită de la început, având drept fundaţie un bun design arhitectural.

S-ar spune că un sistem informaţional este cu atât mai probabil să fie atacat, cu cât oferă motive mai întemeiate atacatorilor experţi să încerce să treacă de bariera sa de securitate (cu cât datele stocate sunt mai importante). În ciuda acestei presupuneri, majoritatea autorilor de viruşi sunt amatori, al căror scop principal nu pare a fi cauzarea unor distrugeri uriaşe şi iremediabile. Ceea ce pare inexplicabil, este cât de mici sunt problemele pe care atatcatorii au ales să le facă până acum, în condiţiile în care aveau posibilitatea să aducă prejudicii mult mai mari.

Însă nu putem presupune că hackerii se vor mulţumi mreu cu atât. Cu cât calculatoarele expuse deţin informaţii mai valoroase şi cu cât devin mai atrăgătoare în faţa celor care speră să obţină avantaje de pe urma atacării lor, cu atât sunt mai vulnerabile în faţa atacatorilor profesionişti şi a bandelor organizate de infractori. Posibilităţile de atac sunt multiple în ziua de azi: de la accesarea unor fişiere cu date confidenţiale despre clienţii unei bănci, modificarea sau ştergerea lor, până la infiltrarea lentă în sistemul informaţional al organizaţiilor guvernamentale şi preluarea controlului fluxului de date.

Crearea şi întreţinerea unui regim de securitate este una din cele mai dificile activităţi în administrarea unui sistem IT. Şi mai grea este extinderea unui astfel de regim peste mai multe reţele interconectate, în care rulează diverse soft-uri al căror 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 înlăturat şi menţinut în această stare. Din păcate, mulţi factori de risc importanţi sunt dificil şi aproape imposibil de controlat.

Page 17: Securitatea Datelor in Retelele de Calculatoare

17

Încă nu se ştie suficient de mult despre toate posibilităţile de atac sau despre gravitatea urmărilor 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 organizaţiile să ia anumite măsuri de preacuţie.

Securitatea sistemelor informaţionale are cel puţin 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 încăpere în care se află informaţii secrete. Nivelul executiv al unei intreprinderi este şi el implicat în securitate, prin măsurile 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 găsi defectele unui sistem studiind codul lui; este necesară o înţelegere de nivel mai înalt a sistemului. De aceea, analiza riscurilor arhitecturale joacă un rol esenţial în clădirea unui sistem solid din punct de vedere al securităţii. Ţinerea în evidenţă a tuturor riscurilor ce apar de-a lungul timpului şi încercarea de a le înlătura este o bună măsură de securitate.

Este unanim recunoscut că securitatea înseamnă management-ul riscurilor. Prin management al riscurilor se înţelege un proces amplu şi continuu, ce cuprinde atât analiza riscurilor, cât şi o serie de activităţi înlănţuite î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 desfăşurarea unor exerciţii discrete de analiză a riscurilor, contorizând riscurile de -a lungul procesului de dezvoltare şi încercând eliminarea sau diminuarea lor în mod strategic.

Majoritatea proceselor de analiză a riscurilor au evidenţiat 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 cerinţe asupra aplicaţiei (în procesul de dezvoltare) şi în teste specifice în etapa de testare.

Pentru o bună analiză a riscurilor, de multe ori este necesară contr ibuţia unor profesionişti din afara echipei de dezvoltare. O analiză riguroasă a riscurilor se bazează pe o bună înţelegere a impactului pe care aceasta îl are asupra funcţionalităţii, ceea ce presupune o bună înţelegere a legilor şi a regulilor cărora trebuie să li se conforme sistemul.

Analiza riscurilor se compune din mai multe activităţi împărţite în subetape: 1. Cunoaşterea cât mai bine a obiectului analizat 1.1. Citirea şi înţelegerea specificaţilor, documentaţiei arhitecturii, şi a altor materiale de design 1.2. Discuţii şi brainsrorming în echipă pe tema obiectului analizat 1.3. Determinarea graniţelor sistemului şi a secţiunilor critice 1.4. Efectuarea a cât mai multe teste asupra sistemului 1.5. Studierea codului şi a artificilor soft (inclusiv uti lizarea tool-urilor de analiză a codului) 1.6. Identificarea ameninţărilor şi a surselor de atac (de exemplu: se iau în considerare şi utilizatorii interni?) 2. Discutarea problemelor de securitate în jurul soluţiei 2.1. Dezbateri pe tema funcţionalităţii produsului şi determinarea punctelor de conflict şi ambiguitate

Page 18: Securitatea Datelor in Retelele de Calculatoare

18

2.2. Identificarea vulnerabilităţilor posibile, folosind tool-uri specializate sau consultând liste cu cele mai comune tipuri de vulnerabilităţi 2.3. Discutarea posibilităţilor de rezolvare a problemelor întâlnite 2.4. Înţelegerea măsurilor de control existente şi a celor planificate 3. Determinarea posibilităţii efectuării unor compromisuri 3.1. Conceperea unor scenarii de atac din prisma vulnerabilităţilor 3.2. Cântărirea posibilităţilor de control şi a ameninţărilor, pentru a stabili o probabilitate a atacurilor 4. Analiza impacturilor 4.1. Determinarea impactului asupra funcţionalităţii şi a costurilor 4.2. Considerarea impacturilor din punctul de vedere al securităţii 5. Ierarhizarea riscurilor 6. Dezvolatrea unei strategii de eliminare sau diminuare a riscurilor 6.1. Recomandarea unor contramăsuri pentrua combate riscurile 7. Construirea unui raport care să conţină rezultatele analizei 7.1. Descrierea cu atenţie a riscurilor (atât majore cât şi minore) şi a impacturilor 7.2. Oferirea unor informaţii de bază cu privire la cazurile unde se vor aloca resurse minime înlăturării riscurilor

În practică, analiza riscurilor se face fie monitorizând o listă a evenimentelor posibile, fie consultând o listă de vulnerabilităţi şi ameninţări predefinite, în care se bifează cele care pot fi întâlnite î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 (Operaţionally 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 desfăşoara

de-a lungul întregii vieţi a unui produs. Pe lângă factorii de risc fizici, trebuie luaţi în considerare factorii umani, care sunt imprevizibili. Nu există sisteme perfect sigure, însă există sisteme foarte rigide şi stabile, puternice şi rezistente în faţa 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

Page 19: Securitatea Datelor in Retelele de Calculatoare

19

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 backup-uri 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 comunicaţie este cel presupus a fi şi nu un impostor, se numeşte autentificare. Verificarea identitătii 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 identificării 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 autentificării se pune în contextul unei relaţii de tip client-server(de exemplu cazul unui server de fişiere aflat la distanţă); de exemplu, atunci când un client X doreşte ştergerea unui fişier care aparţine unui client A, atunci serverul de fişiere trebuie

Page 20: Securitatea Datelor in Retelele de Calculatoare

20

să asigure că, clientul care a făcut 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ă obţină informaţii false de pe un alt calculator, nu de pe cel pe care se găseşte fişierul dorit). Uzual, aşa cum am expus în introducere, tehnicile de autentificare se împart în trei categorii fundamentale: • Autentificare prin cunoştinţe (ceva ce utilizatorul ştie: coduri PIN, coduri de tranzacţie, parole) • Autentificare prin posesie (ceva ce utilizatorul are: chei, carduri de identificare sau altfel de dispozitive fizice) • Autentificare prin proprietăţi (identificarea biometrică a utilizatorului cum ar fi identificarea feţei, imagini ale retinei, şabloane vocale, amprente) În tehnica de calcul actuală autentificarea preponderentă este cea prin cunoştinţe.

4.1 Autentificarea bazată pe parole În cele mai multe sisteme distribuite şi reţele de calculatoare, protecţia resurselor se

realizează prin login direct folosind parole, cu transmiterea în clar a acestora. Această autentificare are mai multe inconveniente, din care amintim doar câteva:

- Utilizatorii tind să selecteze parole neuniform distribuite. Această problemă este binecunoscută şi nu este neapărat legată de reţele 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 reţea 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 reţele de calculatoare şi sisteme distribuite. Parolele trimise prin reţea sunt foarte uşor compromise şi folosite ulterior pentru impersonarea utilizatorului.

În unele situaţii este chiar supărător că se foloseşte autentificarea prin parolă . Spre exemplu, în Statele Unite ale Americii telefoanele mobile folosesc ca parolă internă la efectuarea unui apel chiar numărul telefonului respectiv pentru ca centrala să poată factura fiecare apel în mod corect. Este evident că un atacator poate impersona uşor apelul şi poate efectua convorbiri în contul altei persoane.

4.2 Autentificarea bazată pe adresă O alternativă (nu neapărat mai sigură) la autentificarea prin parolă este

autentificarea prin adresă. Aceasta presupune că identitatea unei surse se poate deduce din adresa acesteia conţinută î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 fişier numit /etc/hosts.equiv. Utilizatorii cu acelaşi cont pe ambele sisteme pot folosi utilitarele „r” fără a specifica vreo parolă . Ideea de host -uri credibile nu este o soluţie la problema autentificării în reţele de calculatoare. De fapt, acest tip de autentificare chiar pune probleme mai mari din punct de vedere al securităţii. Dacă un atacator reuşeşte 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 preferenţiale unor utilizatori. În funcţie de mediul concret, autentificarea prin adresă este chiar mai puţin sigură decât cea bazată pe parolă . Avantajul îl constitu ie însă comoditatea în foloşire şi de aceea multe sisteme au ales să o implementeze.

Page 21: Securitatea Datelor in Retelele de Calculatoare

21

4.3 Autentificarea criptografică Ideea din spatele autentificării criptografice este că un A îşi dovedeşte identitatea

către B prin efectuarea unei operaţii criptografice asupra unei entităţi cunoscute de ambii participanţi sau oferită de B. Operaţia 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ă decât autentificarea bazată pe parolă sau pe adresă. În schimb, noile tehnici bazate pe dovezi zero-knowledge pot oferi mecanisme de autentificare chiar mai puternice. Aceste tehnici necesită calcule matematice destul de complexe dar prezintă mai multe facilităţi atractive pentru autentificare. În primul rând, permit părţii ce se autentifică să dovedească că ştie secretul fără a transfera efectiv informaţia către verificator. În al doilea rând, multe dintre schemele propuse până acum folosesc aceleaşi informaţii publice, evitându-se astfel problema distribuţiei cheilor care apare în cazul mecanismelor ce folosesc DES şi RSA. În ciuda aparentei simplităţi, proiectarea sistemelor reale este foarte dificilă . O serie de protocoale publicate au prezentat erori de securitate substanţiale sau subtile. În timpul ultimei decade, eforturile de cercetare s-au concentrat în crearea de utilitare pentru dezvoltarea protocoalelor de autentificare şi distribuţie a cheilor cu o anumită asigurare formală a securităţii. Realizările 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 afirmaţii presupus adevărate.

4.4 Metoda de autentificare în trei paşi (Three Way Handshake). Când doi participanţi care vor să-şi verifice identitatea reciproc, de exemplu unul fiind presupus client iar celălalt server, folosesc în comun o cheie secretă, există un protocol simplu de autentificare. Această situaţie este similară celei când un client (utilizator) X are un cont pe un server şi ambele cunosc parola corespunzătoare contului respectiv.

În continuare, E(m,k) înseamană criptarea mesajului m cu cheia k, iar D(m,k) decriptarea mesajului m cu cheia k. Aşa cum este ilustrat în figură, algoritmul constă în următorii paşi:

Clientul generează un număr aleator x şi îl criptează folosind cheia secretă, notată cu CHK (Client Handshake Key). Apoi clientul transmite serverului un mesaj care conţine E(x,CHK), împreună cu identificatorul său (clientid).

Serverul foloseşte cheia SHK pe care el o asociază clientului identificat cu clientid, pentru a decripta numărul primit. Serverul incrementează numărul decriptat şi.transmite rezultatul înapoi clientului. De asemenea, în acelaşi mesaj el transmite un numar generat aleator y, criptat cu SHK.

Page 22: Securitatea Datelor in Retelele de Calculatoare

22

Clientul decriptează prima parte a ultimului mesaj primit şi verifică dacă rezultatul este mai mare cu 1 decât numărul aleator x pe care l-a transmis serverului; dacă relaţia este verificată, atunci el va şti că serverul posedă cheia lui secretă. În acest moment, clientul a autentificat serverul. De asemenea, clientul decriptează numărul aleator pe care serverul i l-a transmis(notat cu y), criptează acel număr incrementat şi transmite rezultatul serverului. Daca serverul este capabil sa refacă valoarea y+1 atunci şi clientul este legitim.

Figura Autentificarea în trei paşi Observaţie. După cel de-al treilea mesaj, fiecare partener s-a autentificat în raport cu celălat. La sfârşitul 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 foloşirii unei sesiuni de stabilire a cheii, este legat de utilizarea cheii secrete numai pentru transmiterea unui număr 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 obişnuit este că cei doi participanţi nu ştiu nimic unul despre celălalt, dar ambii au încredere într-un al treilea partener. Acesta este denumit server de autentificare şi el foloseşte un protocol pentru a-i ajuta pe cei doi parteneri pentru a se autentifica unul pe celălalt.

4.5 Kerberos Autentificarea (authentication) este procesul prin care se verifică identitatea unei

instanţe (de exemplu un utilizator) care a produs nişte date. Cele mai sigure metode de autentificare sunt cele biometrice, care măsoară caracteristici fizice unice ale unui individ (cum ar fi amprentele digitale sau forma irisului). Acestea sunt foarte greu de păcălit. Din (ne)fericire sunt încă foarte costisitoare şi puţin răspândite.

Metoda prin care în mod uzual calculatoarele identifică identitatea unei entităţi cu care comunică este verificarea că acea entitate ştie o informaţie 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ă observăm că pentru a putea vorbi despre autentificare trebuie să avem o noţiune de identitate a utilizatorilor. Calculatorul trebuie să poată distinge cumva între diferiţii indivizi care îl folosesc. Trebuie să existe un spaţiu de nume pentru utilizatori;

C l i e n t S e r v 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 ) )

Page 23: Securitatea Datelor in Retelele de Calculatoare

23

autentificarea atunci va pune în corespondenţă o entitate activă cu un astfel de nume. În Unix numele utilizatorilor autorizaţi sunt trecute într-o mică bază de date într-un fişier 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 fişier atunci el nu există pentru calculator.

Cu alte cuvinte, pentru a putea vorbi despre autentificare trebuie ca părţile implicate în comunicare să aibă un spaţiu 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 reţea complet nesigură. Protocolul garantează de asemenea că clientul nu poate conversa cu un calculator care se dă drept server; autentificarea se face în ambele direcţii.

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ă aparţine lui Needham şi Schroeder care au publicat ideea iniţială în 1978 în Communications of the ACM. Descrierea detaliată a protocolului se găseşte în documentul numit RFC 1510, care este disponibil de pe Internet. Cei care administrează Kerberos pot pune întrebări pe grupul de News comp.protocols.kerberos.

Protocolul Kerberos indică de fapt o serie de mesaje care trebuie schimbate între părţile care doresc să comunice; unele din mesaje sunt criptate. Ce funcţie de criptare/decriptare se foloseşte teoretic nu contează prea tare, atîta vreme cît funcţia este greu inversabilă. Implementările curente folosesc un algoritm standard de criptare numit DES (Data Encryption Standard).

Kerberos este un protocol; pentru a fi util anumite aplicaţii (cele care au nevoie de comunicaţie client-server) trebuie modificate pentru a folosi autentificarea oferită de Kerberos. (Aplicaţiile modificate sunt atunci numite ``kerberized''). În mod normal într -un domeniu administrativ în care se foloseşte Kerberos programe ca telnet, rlogin, POP (post-office protocol), fişiere la distanţă (AFS), etc. trebuie rescrise în aşa fel încît clientul să se autentifice serverului folosind noua metodă (toate aceste aplicaţii sunt de tip client-server).

4.5.1 Principii Premiza iniţială este că există un server central, numit serverul de autentificare

(AS), care cunoaşte identităţile tuturor clienţilor 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 poştă sau printr-un mesager uman (mă rog, sigură cel puţin din punct de vedere software). Parola asta nu este cunoscută de nimeni altcineva, nici măcar de celelalte servere cu care clientul va comunica (de la care va obţine serviciile care-l interesează de fapt). Toate celelalte servere din domeniul administrativ sunt şi ele clienţi ai AS: au o parolă unică ştiută numai de AS şi de acel server.

Niciodată parola nu va circula în clar pe reţea; atunci oricine ar putea să o citească şi să o folosească în locul clientului de drept.

Pentru a se proteja împotriva duşmanilor care vor înregistra sau şterge mesaje, mesajele vor avea informaţii ca ora la care au fost trimise şi un număr 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 stricăciunile sunt limitate). Cheia pe care un

Page 24: Securitatea Datelor in Retelele de Calculatoare

24

client şi un server o folosesc în comun se numeşte 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 esenţial 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ă intenţia de a comunica cu serverul de disc;

2. Un mesaj de răspuns de la AS pentru client, prin care AS îi trimite clientului noua cheie de sesiune şi un pacheţel pentru serverul de disc;

3. Un mesaj de la client spre serverul de disc, în care este inclus pacheţelul de mai sus, pentru a garanta faptul că clientul a discutat cu AS (pacheţelul poate veni numai de la AS);

4. Un mesaj de răspuns de la serverul de disc prin care clientul este convins că serverul a putut deschide pacheţelul, deci că discută într-adevăr cu serverul de disc. După acest schimb iniţial de mesaje clientul şi serverul de disc vor folosi cheia de

sesiune generată de AS pentru a cripta cu DES toată comunicaţia dintre ei. Vom vedea că mesajele sunt relativ încâlcite pentru a preveni toate atacurile de mai sus. Dacă veţi încerca să simplificaţi protocolul aproape sigur îl veţi face vulnerabil la anumite tipuri de atacuri.

Să notăm cele 3 entităţi care colaborează astfel: C clientul, AS serverul de autentificare şi S serverul de disc (vedeţi şi figura 1).

O tehnică importantă a protocolului, care este folosită pentru a contraataca foloşirea unor mesaje vechi înregistrate este de a eticheta mesajele cu ora emiterii (într-un mod care nu poate fi contrafăcut) şi de a verifica la recepţie dacă ora este rezonabilă. Sincronizarea ceasurilor este o problema extrem de grea în sistemele distribuite, aşa că pentru Kerberos ``rezonabil'' înseamnă că ceasul local la recepţie arată plus/minus 5 minute de ora din mesaj (ora de transmitere).

Un alt truc interesant este foloşirea a ceea ce se numeşte nonce: un obiect care este folosit o singură dată. Acesta este practic un număr aleator. Vom vedea mai jos cum este acesta folosit.

Fig. 1 Protocolul de bază simplificat Vom mai introduce următoarele notaţii:

- Ka,b este cheia de sesiune pe care o folosesc pentru discuţie a şi b; de exemplu KC,S va fi cheia folosită pentru criptare/decriptare între client şi serverul de disc;

Page 25: Securitatea Datelor in Retelele de Calculatoare

25

Cum am spus mai sus, AS este serverul de autentificare, care ştie parola fiecărei alte entităţi 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): Ta,b = { Ka,b, a, ora curenta }: un mesaj în care sunt împachetate 3 informaţii: o cheie de sesiune între a şi b, numele lui a şi ora curentă.

- Cu aceste notaţii putem scrie complet clar toate mesajele schimbate între C, S şi AS. Săgeata indică traseul fiecărui mesaj: C ---> AS:

C, S, ora expirare, N (nonce, aleator). Clientul afirmă propria identitate, identitatea serverului cu care vrea să discute,

trimite un număr aleator şi cît timp ar dori să converseze cu S. Pînă aici totul e simplu. AS va răspunde astfel:

AS ---> C$: {KC,S, S, ora expirare, N}KC, {TC,S}KS . Acest complicat mesaj mai are două părţi: 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 decât 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 număr aleator generat de AS , care va fi folosit ca cheie de sesiune între C şi S. Observaţi că cheia de sesiune apare în ambele părţi ale mesajului, în aşa fel încît va fi cunoscută atît de către C cît ş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 către 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 comunicaţie 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 obţine un mesaj corect, deci tichetul nu poate fi contrafăcut sau modificat.

C ---> S: {C, ora curentă, suma de control}, KC,S, {TC,S}KS . Mesajul are din nou două părţi.

Partea a doua este exact partea a doua a mesajului 2, aşa cum a fost primită de la AS.

Prima parte a mesajului are scopul de a demonstra că acest mesaj este ``proaspăt'': S va extrage KC,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} KC,S. Prin acest mesaj S în convinge pe C că a ajuns la destinaţia 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 aceeaşi

Page 26: Securitatea Datelor in Retelele de Calculatoare

26

valoare, pentru că atunci acest mesaj putea fi o copie a (unei părţi a) mesajului anterior. La sfîrşitul acestei comunicaţii atît C cît şi S sunt siguri de identitatea celuilalt şi în plus au la dispoziţie o cheie de sesiune KC,S cu care pot cripta toate mesajele pe care le schimbă. Autentificarea a fost făcută.

4.5.3 Vulnerabilitatile Kerberos Chiar dacă în teorie Kerberos este minunat, implementarea lui în practică este cel

puţin dificilă. Condiţiile ideale existente pe hîrtie sunt greu de obţinut într-o reţea de calculatoare reale.

La ora actuală nu există nici un fel de metodă complet riguroasă pentru a arăta ca un protocol criptografic nu scapă informaţii; există metode pentru a testa dacă un protocol rezistă la atacurile cunoscute, dar foarte adesea se publică algoritmi care mai tîrziu se dovedesc greşiţi. În general, raţionamentele cu astfel de protocoale sunt foarte complicate. Cercetarea în domeniu este în plină desfăşurare şi foloseşte tehnici foarte exotice, ca teoria informaţiei, teoria complexităţii, logici speciale (ex. knowledge theory), etc.

Să observăm că clientul trebuie să păstreze 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 adevărat că aceste chei expiră în 25 de ore, deci sunt mai puţin importante decît o parolă care teoretic este folosită luni întregi. Întrebarea este însă: unde sunt ţinute pe calculatorul clientului aceste chei?

Pe o staţie obişnuită Unix lucrează în mod normal mai mulţi utilizatori. Tichetele unuia ar trebui să fie ferite de ceilalţi. Dar pe un sistem Unix practic nimic nu poate fi adăpostit împotriva administratorului (root). Administratorul unui sistem poate citi orice fişier, şi poate inspecta memoria fizică a oricărui proces. Acesta este un călcîi al lui Ahile al lui Kerberos; toate metodele cunoscute pentru a penetra un sistem Unix ameninţă siguranţa întregului protocol. Ori securitatea unui sistem Unix, care este foarte complicat, este extrem de greu de controlat; există o sumedenie de breşe de care un atacator ar putea profita.

O altă mare problemă este cu staţiile de lucru fără disc (diskless); aceste staţii de obicei importă discuri prin reţea. Deci de îndată ce o astfel de staţie stochează un tichet pe disc, tichetul va călători prin reţea, care am stabilit că este expusă la tot felul de atacuri!

Nici păstrarea tichetului în memorie nu este neapărat mai sigură: algoritmii de paginare stochează paginile pe disc (în partiţia de swap) atunci cînd calculatorul nu are destulă memorie, deci am revenit la aceeaşi problemă.

Iată încă un exemplu: am văzut că prospeţimea unui tichet este verificată comparînd 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ă acelaşi pachet de două ori. Asta presupune că serverul şi clientul au ceasuri relativ sincronizate.

Într-o reţea mare de calculatoare sincronizarea ceasurilor se face automat, folosind un protocol numit NTP: Network Time Protocol. Un atac foarte spectaculos este următorul: un atacator înregistrează o serie de mesaje de la un client care ştie că reprezintă o tranzacţie importantă. Peste o săptămînă atacatorul infiltrează în reţea mesaje false NTP prin care setează ceasul unui server cu o săptămînă î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 asumpţii nerezonabile asupra mediului în care operează, cum ar fi ceasurile sincronizate. Şi chiar

Page 27: Securitatea Datelor in Retelele de Calculatoare

27

dacă se bazează pe asumpţii rezonabile, implementarea scrisă de un programator uman 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 cînd tot mai multe tranzacţii 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. Dificultăţile sunt amplificate de faptul că lanţul este tot atît de slab cît cea mai slabă verigă, iar verigi sunt destul de multe. Fiţi 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 foloşirea acestor carduri de plastic:

- Pentru a ne identifica in diferite situaţii - 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 informaţii sau amandoua şi sunt stocate şi procesate cu ajutorul chipului sau cu ajutorul memoriei sau microprocesorului. Datele de pe card sunt tranzacţionate 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 creşte in 2006 $11.000.000. Majoritatea acestor carduri de plastic sunt carduri magnetice. In ciuda popularitaţii 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 informaţii confidenţiale 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 operaţii 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.

Page 28: Securitatea Datelor in Retelele de Calculatoare

28

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.

Aplicaţii - 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 informaţii 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.

Page 29: Securitatea Datelor in Retelele de Calculatoare

29

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, aplicaţii 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.

Page 30: Securitatea Datelor in Retelele de Calculatoare

30

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

unicitaţii amprentelor la fiecare om in functie de bifurcaţii, 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 foloseşte 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 cavitaţii 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 foloseşte un dispozitiv care citeste spatele ochiului(retina) folosind mai mult de 400 de puncte diferite .

Facial Biometria faciala foloseşte diferite aspecte ale fetei pentru a recunoaste un individ.

Sunt patru tehnici primare de recunostere faciala: valoarea fetei, analiza trasaturilor, reţele nuronale şi procesare automatica a fetei. De exemplu tehnica reţelelor neuronale foloseşte un model al fetei şi il ruleaza intr-o reţea 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 confidenţialitaţii comunicaţiilor in domeniul militar şi diplomatic, criptografia a cunoscut in ultimii 20 de ani progrese spectaculoase datorate aplicaţiilor 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 comunicaţii: cele mai multe calculatoare sunt folosite azi in interconectare, in reţele locale-LAN şi in reţele 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.

Page 31: Securitatea Datelor in Retelele de Calculatoare

31

Societatea umana a inceput sa transfere pe reţele o parte din activitaţiile obisnuite, carora comunicaţiile aproape instantanee intre puncte situate geografic la mii de kilometri le confera valente superioare. Vorbim astazi de teleconferinte şi grupuri de lucru prin reţele de calculatoare, grupuri de discutii, ca niste veritabile cluburi, profilate pe cele mai variate domenii de interes, ziare distribuite prin reţele, sisteme electronice de plati prin reţele, sisteme de transfer de fonduri şi de comert prin reţele, 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 comunicaţii intre oameni care a devenit Internet-ul.

Nevoia de securitate şi de autenticitate, apare la toate nivelele arhitecturale ale reţelelor. 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 confidenţial al mesajelor transmise. In tranzactiile financiare, alaturi de autenticitate şi confidenţialitate, un loc de mare importanta il are şi integritatea mesajelor, ceea ce inseamna ca mesajul receptionat nu a fost alterat in timpul tranzitiei prin reţea. In tranzactiile de afaceri este foarte important ca odata receptionata o comanda, aceasta sa fie nu numai autentica, cu conţinut 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 reţele sa fie confidenţiala ş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 confidenţialitaţii comunicaţiilor in domeniul militar şi diplomatic, criptografia a cunoscut in ultimii 20 de ani progrese spectaculoase datorate aplicaţiilor 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 foloseşte 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 semnătură se înţelege imaginea grafică sau simbolul ataşat sau asociat unui înscris, cu intenţia de a produce efecte juridice, prin care o persoană atestă fie constatarea anumitor evenimente, fie că este titularul drepturilor şi obligaţiilor conţinute în înscrisul ce înţelege să şi-l însuşească şi care permite identificarea semnatarului. Semnătura are, aşadar, funcţia de identificare a titularului ei, funcţia de certificare a angajamentului juridic, funcţia de atestare a provenienţei documentului, asocierea unei / unor persoane cu conţinutul documentului, atestarea intenţiei persoanei de a-şi însuşi conţinutul documentului. Mediul electronic impune în mod evident o modalitate de a putea semna în formă electronică. Semnătura electronică nu mai este o reprezentare grafică a numelui semnatarului, ci o colecţie de date în format electronic, ce respectă însuşirile de mai sus, respectiv incorporarea, ataşarea sau asocierea cu un document electronic, cu intenţia de a produce efecte juridice şi care permit identificarea semnatarului.

Page 32: Securitatea Datelor in Retelele de Calculatoare

32

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 (fişier) 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, protecţia ş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 confidenţialitate.

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 protecţia 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.

Protecţia nu este asigurata, intrucit este posibil ca mesajul M sa fie obtinut de oricine, aplicind transformarea publica EA. Pentru a se realiza simultan protecţia şi autentificarea informaţiilor 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 confidenţialitaţii 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

Page 33: Securitatea Datelor in Retelele de Calculatoare

33

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

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 informaţiilor 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 confidenţialitate pe cale digitala catre un destinatar. In acelasi timp PKI asigura destinatarul informatiei de autenticitatea expeditorului.

În mod clasic, asigurarea confidenţialitaţii 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 majoritaţii aplicaţiilor 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 foloseşte 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, distribuţie ş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, aplicaţii, politici şi practici al caror scop este atingerea celor patru functionalitati principale ale unei tranzactii:

Page 34: Securitatea Datelor in Retelele de Calculatoare

34

Confidenţialitatea - mentinerea caracterului privat al informatiei (secretizarea informatiei)

Integritatea - dovada ca respectiva informatie nu a fost modificata (asigurarea impotriva manipularii frauduloase a informatiei)

Autentificarea - dovada identitaţii celui ce transmite mesajul (verificarea identitaţii unui individ sau a unei aplicaţii)

Non-repudierea - siguranta ca cel ce genereaza mesajul nu poate sa-l denigreze mai tarziu (asigurarea paternitaţii 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 confidenţialitate 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:

1. cheie publica 2. informatia ce leaga cheia publica de detinatorul ei 3. informatia de validitate a certificatului 4. semnatura digitala

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

Din cele prezentate putem sa observam ca: integritatea, confidenţialitatea ş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 condiţii 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 condiţii 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 (operaţie efectuata cu ajutorul cheii publice), duce la concluzia ca datele nu au fost modificate ulterior procesului de semnare;

Page 35: Securitatea Datelor in Retelele de Calculatoare

35

3. confidenţialitatea 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 intr-un 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 conţinutul 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 toţi utilizatorii pot avea incredere. Acest fapt este şi unul din motivele de disputa, nu putini fiind cei care au pus in discuţie 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 aplicaţii 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 identitaţii, 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 informaţii despre utilizator, dar care nu presupun in mod neaparat verificari din partea autoritaţii de certificare;

- clasa a III-a: certificate pentru a caror generare CA va efectua o verificare a identitaţii utilizatorului sau entitaţii descrise de acesta;

- clasa a IV-a: certificate generate de guverne sau organizaţii ce necesita un grad ridicat de verificari asupra identitaţii 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 informaţii confidenţiale şi prin posibilitatea substituirii autorului unui mesaj sau chiar alterarea voita a conţinutului mesajului.

Sistem de administrare a documentelor şi semnatura digitala

Page 36: Securitatea Datelor in Retelele de Calculatoare

36

O parte importanta a aplicaţiilor 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 aplicaţiilor Intranet şi Extranet Din ce in ce mai multe companii şi organizaţii tind sa-si transfere procesele de

interactiune catre aplicaţii care ruleaza in mediul Internet. Indiferent daca acestea se refera la relatia cu proprii angajati şi procesele interne ale organizatiei (aplicaţii Intranet), sau sprijina interactiunea cu partenerii şi clientii (aplicaţii Extranet), aceste aplicaţii isi demonstreaza din plin eficienta prin reducerea masiva a costurilor şi imbunatatirea eficientei. Pe masura insa ce aceste informaţii sunt transferate catre sistemele şi aplicaţiile Intranet/Extranet, riscul de securitate informationala creşte 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 confidenţialitaţii şi integritaţii 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 aplicaţiilor Autentificarea prin nume şi parola este solutia cea mai vulnerabila şi in plus, obliga

utilizatorul la memorarea unei astfel de combinaţii pentru fiecare aplicaţie folosita. Foloşirea certificatului digital stocat pe smartcard contribuie nu numai la creşterea gradului de siguranta dar şi la o utilizare mai facila, prin foloşirea unui mijloc unic de autentificare pentru toate aplicaţiile 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 distribuţie 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 combinaţii 268 = 208 miliarde combinaţii posibile. O persoana care are o parte trebuie sa ghiceasca o parola cu 266 = 308 milioane de combinaţii posibile. Sistemul nu este un secret securizat deoarece un utilizator care are t parti din secret are informaţii 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.

Page 37: Securitatea Datelor in Retelele de Calculatoare

37

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 fişier 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 toţi 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 informaţii despre secret. Fiecarui jucator ii este data atata informatie cat sa poate defini un hyperplan. Secretul este reconstituit calculand punctul de intersectie al acestor hyperplane .

Aceasta schema este mai putin eficienta decat schema lui Shamir, pentru ca fiecare

parte a secretului este mai mare ca dimensiune decat secretul initial.

Page 38: Securitatea Datelor in Retelele de Calculatoare

38

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 (trebuie 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

Page 39: Securitatea Datelor in Retelele de Calculatoare

39

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 reţelelor

5.1 SSL – Secure Socket Layer O definiţie,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. Foloseşte un sistem de criptografie care utlizează 2 chei pentru criptarea datelor: o cheie publică – cunoscută de toţi 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 obţine informaţii confidenţiale ale utilizatorilor cum ar fi carţile de credit.

1. Convenţional URL-urile care implementează conexiunile SSL încep cu https:// în loc de http://

2. SSL foloseşte 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.

Page 40: Securitatea Datelor in Retelele de Calculatoare

40

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 reţelei ( clientul şi serverul).

Figura 10.1: protocolul SSL intre protocoalele nivelului aplicaţie şi TCP/IP

SSL-Obiective şi arhitectura Obiectivele principale ale protocolui SSL sunt:

1. Autentificarea clientului şi serverului unul faţă de celălalt . SSL permite utilizarea tehnicilor standard de criptare (cu cheie publică) pentru a permite autentificarea celor doua părţi. Deşi cele mai frecvente aplicaţii constau in autentificarea unui serviciu client pe baza unui certificat, SSL poate folosi aceste metode şi pentru a autentifica clientul.

2. Asigurarea integrităţii datelor: în timpul unei sesiuni datele nu pot fi falsificate. 3. Asigurarea confidenţialitaţii datelor: datele de transport dintre client şi browser

trebuie protejate de interceptarea şi citirea lor. Acest lucru este necesar atât pentru datele asociate cu protocolul însuşi (securizarea traficului în timpul negocierii) cât şi pentru datele aplicaţiei care sunt transmise în timpul sesiunii. Privit din acest punct de vedere SSL este mai mult un set de protocoale decât 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 stabileşte 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 aplicaţie (ex. HTTP)

Protocolul SSL Record (Protocolul de înregistrare SSL)

TCP (nivel transport)

IP(nivel reţea)

Figura 10.2: stiva de protocoale SSL

Protocolul SSL Record este responsabil de criptarea şi integritatea datelor. De asemenea, aşa 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)

Page 41: Securitatea Datelor in Retelele de Calculatoare

41

Scopul protocolului SSL Record este preluarea unui mesaj al aplicaţiei şi transmiterea lui în reţea, prin protocolul TCP. Serveşte ca baza pentru protocoalele de la nivelurile superioare. Pe scurt acest protocol execută urmatoarele acţiuni: fragmentarea datele care vor fi transmise, incapsularea cu date adiţionale ş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 pregătite pentru a fi transmise:

Figura 10.3: crearea unui pachet sub protocolul SSL Record

Protocolul Alert (Protocolul de alertă SSL) Este folosit de unul din părti pentru a transporta mesajele în timpul sesiunii . Fiecare

mesaj din protocolul Alert este alcătuit din 2 baiţi. Primul bait conţine o valoare 1- “warning” sau 2- “fatal”, care determina importanţa mesajului trimis. Trimiterea unui mesaj având statutul de “fatal” de oricare dintre părţi va duce la terminarea imediată a sesiuniii SSL. Următorul bait al mesajului conţine unul din codurile de eroare, care poate apărea in timpul unei sesiuni de comunicare.

Protocolul Change Cipher(Protocolul modificare de cifru) Acest protocol este cel mai simplu protocol SSL. Este alcătuit dintr-un singur mesaj

care contine valoarea 1. Acest tip de mesaj este trimis de la client către server şi invers. Dupa schimbul de mesaje se stabileşte 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 iniţia 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 părţilor una faţa de cealaltă şi negocierea parametrilor sesiunii. Procesul de negociere este prezentat în figura de mai jos:

Date

Date1 Date 2 Date 3

Date comprimate

Cod MAC

Date criptate

Transmisie

Pachet TCP

criptare

Pachete de date

Datele noastre

Page 42: Securitatea Datelor in Retelele de Calculatoare

42

Figura 10.4 :Stabilirea unei sesiuni SSL intre server şi client

Faza 1: în timpul primei faze, o conexiune logică trebuie iniţiată între client şi server, urmată de negocierea parametrilor. Clientul trimite un mesaj de salut serverului care conţine date cum ar fi :

- cea mai noua versiune SSL pe care o foloseşte, - date aleatoare folosite pentru protecţia cheii de sesiune, - id-ul sesiunii : numărul de identificare al sesiunii. O valoare diferită de 0 indică faptul

că un client doreşte să actualizeze parametrii conexiunii sau să stabilească o noua conexiune a acestei sesiuni. O valoare egală cu 0 indică dorinţa clientului de a stabili o noua conexiune ,

- lista cu cifruri : o listă de algoritmi de criptare şi metode de schimb ale cheilor suportate de către client.

- Serverul, ca mesaj de răspuns faţă de client trimite, de asemenea, un mesaj de salut clientului conţinând aceleaşi câmpuri ca la mesajul primit:

- versiunea :cea mai veche versiune a protocolului SSL suportată de server; - date aleatoare; - id-ul sesiunii: dacă câmpul clientului este diferit de 0 se păstrează valoarea, altfel

id-ul de sesiune al serverului conţine o valoare pentru o sesiune noua. Lista de cifruri: o mulţime de protocoale selectate de server dintre cele propuse de

client. Primul element al acestui câmp este metoda aleasă pentru schimbul cheilor de criptare, următorul element specifică algoritmul de criptare şi funcţiile hash care vor fi folosite.

Faza 2: Serverul începe următoare fază a negocierii trimiţând certificatul sau pentru a fi autentificat de către client. Acest pas nu este obligatoriu şi poate fi omis dacă

Hello-client

Hello-server

Certificate

Transmitere cheie server

Cerere certificare server

certificat

Verificare certificat

Trasnsmitere cheie certificat

Schimb cifru Stop

Schimb cifru

Stop

Faza1

Faza 2

Faza 3

Faza 4

Page 43: Securitatea Datelor in Retelele de Calculatoare

43

metoda negociată pentru schimbul de chei nu cere transmiterea certificatului. Pasul final al fazei 2 este mesajul de răspuns al serverului. Dupa trimiterea acestui mesaj se asteaptă un răspuns.

Faza 3: La primirea mesajului clientul ar trebui să verifice certif icatul serverului, precum şi ceilalţi parmetrii transmişi 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 negociaţi şi datele sunt corecte. Serverul, ca răspuns al mesajului client trimite aceeaşi secvenţa de mesaj. Dacă mesajul de final este corect atunci datele transmise, algoritmii negociaţi şi cheia de sesiune sunt corecte. Acestea indică faptul că sesiunea s-a terminat şi este posibilă transmiterea datelor aplicaţei î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 comunicaţiilor î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ă aplicaţii web. Mai mult chiar, au fost adaugate câteva caracteristici noi : introperabilitatea şi expandibilitatea.

5.2 VPN VPN (Virtual Private Network) este o conexiune privată între două sau mai multe

reţele sau calculatoare care trimit date protejate peste o reţea publică de date sau prin Internet. Reţeaua virtuală privată ofera astfel posibilitatea folosind o infrastructură de reţea publică, asa cum este Internetul.

Acest serviciu este cea mai eficientă cale de satisfacere a cerinţelor clienţilor care au într-adevăr nevoie de transmisii securizate de date, de capacitate ridicată şi viteză mare. Serviciul permite realizarea unei reţele private în cadrul companiilor, ceea ce implică un risc minim din punct de vedere al securităţii transmisiilor. Suportă viteze mari de transmisie date de până la 34 Mb/s, folosind tehnologia radio de bandă largă. Se oferă astfel avantajul mobilităţii şi al uşurinţei în instalare şi exploatare, cât şi avantajul realizării de comunicaţii folosind o lăţime de bandă foarte mare.

Traficul VPN poate fi transmis pe infrastructura publică (ex: pe Intenet), folosind protocoale standard (şi deseori nesigure), sau peste reţeaua unui provider de servicii de telecomunicaţii 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 tunerării) pentru a avea confidenţialitatea necesară, autentificarea parţilor şi integritatea mesajelor. Atunci când sunt corect alese, implementate şi folosite, aceste tehnologii pot furniza comunicaţii securizate peste reţele nesigure.

Tehnologii pentru VPN-uri securizate pot fi folosite pentru îmbunatatirea securitaţii sau ca “patură de securitate” peste infrastructuri de reţea dedicate.

Tipuri de VPN: 1. Intranet VPN - Un VPN Intranet conectează mai multe sedii fixe ale unei companii.

indiferent de locaţie, utilizatorii vor avea acces la toate resursele reţelei locale. 2. Remote Access VPN - Un VPN Remote Access conectează un utilizator mobil la

reţeaua companiei. utilizatorul mobil se conectează la Internet din diferite locuri (exemplu: folosind dial-up).

3. Extranet VPN - Un VPN Extranet face conexiunea între o corporaţie şi partenerii strategici de afaceri (distribuitori, furnizori, clienţi), pentru a le permite acestora accesul sigur la o parte a reţelei Interne a companiei.

Page 44: Securitatea Datelor in Retelele de Calculatoare

44

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 reţele publice ridică dubii cu privire la securitatea acestor date şi impactul pierderii datelor. Atributele sunt:

- Autentificare (controlul accesului) - Prezentare (criptare - confidenţialitate) - Transport (integritatea datelor) - Non-repudiere - acest serviciu ar oferi dovezi de nefalsificat precum că o

anumită acţiune a avut loc. Non repudierea originii înseamna că datele au fost trimise, şi non repudierea primirii dovedeste că datele au fost recepţionate.

Cei mai mulţi provideri doresc satisfacerea primului punct, autentificarea. WIFI Security şi VPN-urile Un alt domeniu inedit în care este folosită tehnologia VPN este securizarea reţelelor

wireless. Deoarece reţelele wireless trimit mesajele folosind radio, sunt foarte susceptibile la ascultarea traficului. WEP a fost introdus pentru a furniza aceeasi securitate ca pe reţelele tradiţionale cu fir (WEP = Wired Equivalent Privacy). Wep foloseşte RC4 pentru confidenţialitate şi CRC-32 pentru integritate şi foloseşte în mod standard o cheie de 40 de biti, la care se concatenează un vector de iniţializare (IV =Initialisation Vector) 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, incluzând 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, utilizând infrastructura Romtelecom, pune la dispoziţia clienţilor Reţele Virtuale Private folosind mecanisme şi protocoale de tunelare şi securizare pentru a asigura integritatea, confidenţialitatea şi performanţa dorită.

Beneficile serviciilor VPN sunt următoarele : 1. Convergenţa serviciilor voce, video, date se realizează cu costuri mici; 2. Accesarea securizată de la distanţă a resurselor companiei; 3. Costuri predictibile şi uşor de bugetat, independente de trafic; 4. Posibilitate transfer any-to-any pentru aplicaţii de date-voce-video; 5. Suport fiabil pentru integrarea LAN-urilor; 6. Securitatea transmisiei datelor; 7. Rată de transfer constantă, garantată tehnologic; 8. Soluţii inteligente de management.

Reţelele vituale private bazate pe tehnologia IP-MPLS (Multi-Protocol Label Switching) le permit clienţilor să transfere informaţii în deplină siguranţă între sed iile companiilor lor; aceste VPN-uri sunt considerate de către Romtelecom cu “nivel maxim de încredere” din punct de vedere al securităţii informaţiilor.

Caracteristici tehnice: - Conexiune Ethernet; - Conexiuni securizate: firewall, criptare, autorizare şi autentificare; - Interfeţe 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, capacităţi dedicate, priorităţi în acordarea accesului

adiţional la bandă; - Oferă posibilitatea alocării instantanee a capacităţii - un suport important pentru

traficul tip rafală (traficul IP) şi o utilizare maximă a benzii disponibile.

Page 45: Securitatea Datelor in Retelele de Calculatoare

45

5.3 Sistem de detectare a intrusilor

5.3.1 Introducere Exista doua tipuri de SDI-uri: basate pe reţea şi bazate pe gazda. Un SDI bazat pe

reţea este un un dispozitiv pasiv care verifica toate pachetele care trec printr-un anumit segment de reţea. 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 reţea ş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 reţea, fişierele 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. Ieşirea acestei componente este un indicator ce indica daca a aparut sau nu o intrusiune. Ieşirea 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 informaţii 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 activitaţii altor gazde sau site-uri implicate in atac.

Page 46: Securitatea Datelor in Retelele de Calculatoare

46

In urmatorul paragraf este descris un model ierarhic pentru SDI-uri, explicand de ce ieşirile 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 reţea poate sa ofere un raspuns aflat la nivelul gazda, ca de exemplu modificarea configuratiei fişierelor 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:

Aplicaţii Un SDI aplicaţie analizeaza comportamentul unui program-aplicaţie, in mod normal

analizand fişierele log. Gazda

Un SDI gazda analizeaza date ca de exemplu fişierele log, informaţii privind conturile de utilizatori, comportamentul utilizatorilor sau ieşirile de la SDI-urile gazda sau aplicaţie ce ruleaza pe gazda respectiva.

Reţea Un SDI de reţea analizeaza traficul din reţea. Poate avea acces la ieşirile de la SDI-

urile reţea sau de la cele aplicaţie din cadrul reţelei monitorizate. Multi-reţea/ infrastructura Un SDI multi-reţea 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 aplicaţie, gazda, reţea sau alte SDI-uri multi-reţea.

Tipurile de SDI-uri enumerate mai sus pot fi vazute ca o ierahie, in varful ierarhiei aflandu-se SDI-urile multi-reţea sau infrastructura iar la baza aflandu-se SDI-urile aplicaţie. 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. Ieşirile 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. S-a 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

Page 47: Securitatea Datelor in Retelele de Calculatoare

47

- 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 intr-adevar 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 fişier 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 toţi 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 toţi 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 fişierele şi nici intrarile din registrii (inclusiv parti din BroadCastPC şi VX2) .

Page 48: Securitatea Datelor in Retelele de Calculatoare

48

De asemenea nu s-a atins de multe fişiere 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 hijack-erilor de browser. Are de asemenea o facilitate de a cauta hardul de fişiere care au fost create cam in acelasi timp impreuna cu alte nume de aplicaţii. 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. Informaţii 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.

Page 49: Securitatea Datelor in Retelele de Calculatoare

49

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.

Page 50: Securitatea Datelor in Retelele de Calculatoare

50

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

Page 51: Securitatea Datelor in Retelele de Calculatoare

51

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.

Page 52: Securitatea Datelor in Retelele de Calculatoare

52

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 ] //numele variabilei ia pe rand fiecare valoare din lista do //si se executa comenzile continute in list pentru fiecare din list //aceste valori done //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

Page 53: Securitatea Datelor in Retelele de Calculatoare

53

//corespunzatoare //rezultatul este 0 daca nu s-a gasit nici o asemanare sau valoarea //ultimei comenzi executate if list //se executa if list; daca valoarea returnata este 0 atunci se executa then //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 //se executa comenzile din lista cat timp ultima comanda din do //lista returneaza valoarea 0 list //valoarea finala va fi cea a ultimei comenzi executate done //sau zero daca nu s-a executat nici una until list //se executa comenzile din lista cat timp ultima comanda din do //lista returneaza o valoare nenula list //valoarea finala va fi cea a ultimei comenzi executate done //sau zero daca nu s-a executat nici una [ function ] name () //se defineste o functie numita name { //corpul functie il constituie comenzile din list 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

Page 54: Securitatea Datelor in Retelele de Calculatoare

54

@ //”$@” 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

Page 55: Securitatea Datelor in Retelele de Calculatoare

55

-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 para- then //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

Page 56: Securitatea Datelor in Retelele de Calculatoare

56

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

Page 57: Securitatea Datelor in Retelele de Calculatoare

57

sleep 10 //se asteapta 10 secunde uptime //se afiseaza incarcarea sistemului du -k –c //si dimensiunea ocupata done 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,

Page 58: Securitatea Datelor in Retelele de Calculatoare

58

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 securitătii reţelelor de calculatoare", ALL Educational, Bucuresti, 1998

2. Andrew S. Tanenbaum, "Reţele 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 Semnătura Electronică, Revista ComputerWorld România, 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