Securitatea Informatiei

  • Uploaded by: Eugen Nasco
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Securitatea Informatiei as PDF for free.

More details

  • Words: 32,502
  • Pages: 195
Loading documents preview...
Cuvânt înainte

Securitatea datelor este un concept legat, de obicei, de reţelele de calculatoare şi, mai nou, de Internet şi are trei aspecte distincte: protecţia datelor, autentificarea datelor şi identificarea utilizatorilor. Criptarea mesajelor este folosită ca mijloc de protecţie împotriva accesului neautorizat la date, dar şi pentru a determina situaţiile în care acest acces a avut loc. Dezvoltarea tehnologică aduce sistemelor de protecţie a datelor o nouă provocare: viteza de lucru! Este nevoie de tehnici de viteza mare atât pentru protejarea datelor, cât şi pentru accesarea lor. De-a lungul timpului au fost dezvoltate o serie de tehnici, algoritmi, mijloace fizice şi legale de protecţie a informaţiei. Epoca modernă a adus în discuţie nu numai concepte de protecţie strictă a datelor ci şi acelea de verificare a integrităţii (pentru a detecta eventuala alterare a datelor) şi autentificare (verificarea sursei datelor dar şi a entităţii - persoana sau program software - care acceseaza datele). Cifrurile sunt tehnici de criptare care se aplică asupra unităţilor de text (biţi, caractere, blocuri de caractere), independent de semantica lor sau înţelesul lingvistic. Rezultatul este un text cifrat. Prin contrast, codurile criptografice operează asupra unităţilor lingvistice: cuvinte, grupuri de cuvinte, fraze substituindu-le (înlocuindu-le) cu cuvinte anume, grupuri de litere sau numere numite grupuri de cod. O cheie este un grup de biţi, caractere, numere utilizate pentru criptarea/decriptarea unui mesaj. Poate fi, de asemenea şi o carte de coduri utilizată în 7

acelaşi scop, de codificare/decodificare a unui mesaj. În practică este acordata o atenţie deosebită criptării asimetrice, în care o cheie este făcută publică pentru criptarea oricărui mesaj şi trimiterea lui la un destinatar A, în timp ce numai A ştie cheia privată utilizată la decriptarea mesajului. La proiectarea unui algoritm de cifrare se doreşte ca spargerea unui cod să devină cel putin o problemă computaţională. Spargerea algoritmului RSA de criptare cu chei publice, se reduce la factorizarea unui număr n, numit modul, în timp ce în cazul criptarii Rabin cu cheie publică, operaţia este - fapt demonstrat - sigură.

8

Capitolul I. Sisteme criptografice Obiectivul principal al măsurilor de protecţie într-un sistem de calcul îl constituie eliminarea posibilităţilor de distrugere accidentală sau voită a informaţiilor, precum şi de consultare neautorizată a acestora. Accesul neautorizat la informaţii poate provoca serioase daune prin afectarea caracterului privat al transmisiilor, introducerea unor date false sau trunchiate, falsificarea identităţii unor calculatoare, terminale ori utilizatori. Dintre obiectivele importante care trebuie avute în vedere la proiectarea unor mecanisme hardware şi software pentru protecţia informaţiilor într-o reţea le menţionăm pe cele de prevenire a dezvăluirii conţinutului în clar al mesajelor, a inserării de mesaje false, a analizei traficului de mesaje, precum şi pe cele de detectare a modificării, ştergerii sau înlocuirii conţinutului mesajelor, a încercărilor de conectare neautorizată în reţea. Obiectivele de prevenire pot fi atinse prin cifrarea informaţiilor, soluţie eficientă când memorarea sau transmiterea de date se efectuează pe medii nesigure. Obiectivele de detectare sunt realizate dacă se folosesc protocoale specifice, coroborate cu metode criptografice, care asigură schimburile de mesaje între entităţile reţelei. Cifrarea conferă protecţia informaţiei transmise pentru canalele ce sunt ascultate sau interceptate. În acest scop, emiţătorul alege un algoritm de cifrare şi o cheie, pe care le comunică receptorului pe cale sigură, de exemplu, prin curier. O altă modalitate este aceea prin care se folosesc două chei diferite . una la criptare şi alta la decriptare. Criptografia modernă protejează datele transmise pe linii de mare viteză şi memorate în calculatoare. Ea urmăreşte două obiective principale, şi anume: 9

• •

protecţia sau confidenţialitatea (prevenirea dezvăluirii neautorizate a unor informaţii transmise sau memorate) şi autenticitatea sau integritatea (prevenirea unor modificări neautorizate ale datelor).

Un sistem criptografic (criptosistem) are cinci componente: • spaţiul mesajelor în text clar, {M}; • spaţiul mesajelor în text cifrat, {C}; • spaţiul cheilor, {K}; • familia transformărilor de cifrare, Ek: M → C, unde K ∈ {K}; • familia transformărilor de descifrare, Dk: C → M, unde K ∈ {K}. După modul de folosire a cheilor se disting două modalităţi de criptare: • criptarea cu cheie privată - în care se foloseşte aceeaşi cheie atât la criptare, cât şi la decriptare. Se mai numeşte şi criptare simetrică sau convenţională datorită folosirii aceleiaşi chei. În acest caz, transmiterea cheii în siguranţă către destinatar trebuie să se facă pe un canal absolut sigur. • criptarea cu chei publice - în care se folosesc chei diferite pentru criptare şi decriptare. Se mai numeşte şi criptare asimetrică.

10

1.1. Criptografia simetrică Fiecare transformare de cifrare, Ek, este definită de un algoritm de cifrare, E comun tuturor transformărilor familiei, şi o cheie, K, distinctă de la o transformare la alta. În mod similar, fiecare transformare de descifrare, Dk, sunt definite de un algoritm de descifrare D, şi de cheia K. Pentru un K dat, Dk reprezintă inversa lui Ek, adică: Dk(Ek((M))=M, ∀M ∈ {M}

Figura 1. Sistem criptografic În figura 1 este ilustrat modul în care transformările de cifrare şi descifrare sunt folosite pentru a se asigura protecţia unui transfer de informaţii. Datele trebuie astfel protejate încât utilizatorii neautorizaţi să nu poată reconstitui textul clar dintr-un text cifrat interceptat. În acest sens, este necesar să se asigure:  utilizatorul neautorizat să nu poată determina sistematic transformarea de descifrare, Dk, din textul cifrat interceptat C, chiar dacă se cunoaşte textul clar, M, corespondent;  utilizatorul neautorizat să nu poată reconstitui textul clar, M, din textul cifrat, C, fără cunoaşterea transformării Dk. 11

Protecţia datelor (confidenţialitatea) impune ca transformarea de cifrare Dk (respectiv cheia) să fie protejată (figura 2).

Figura 2. Protecţia datelor Autentificarea datelor cere ca un utilizator neautorizat să nu fie capabil în mod obiectiv să substituie textul cifrat, C, cu un text cifrat fals, C’, fără ca acest lucru să fie detectat. Nu trebuie să i se permită utilizatorului neautorizat:  să determine sistematic transformarea Ek, cunoscând pe C şi textul clar corespunzător, M;  să găsească în mod sistematic C., astfel ca Dk(C.) să fie un text clar valid în M. Cerinţele de autentificare impun doar ca transformarea E k (cheia de cifrare) să fie protejată (figura 3)

Figura 3. Autentificarea datelor. 12

1.2. Criptosisteme cu chei publice Conceptul de criptosistem cu două chei (asimetric) a fost introdus de Diffie şi Hellman în anul 1976. Ei propuneau o nouă metodă de cifrare, numită cifrare cu cheie publică, în cadrul căreia doi utilizatori (procese) pot comunica cunoscând fiecare doar cheia publică a celuilalt. În criptosistemele cu chei publice, fiecare utilizator A deţine o transformare de cifrare publică, Ek, care poate fi memorată într-un registru (fişier) public şi o transformare de descifrare secretă, Dk, ce nu este posibil să fie obţinută din EA. Cheia de descifrare (secretă) este derivată din cheia de cifrare (publică) printr-o transformare greu inversabilă (oneway). În sistemele cu chei publice, protecţia şi autentificarea sunt realizate prin transformări distincte. Să presupunem că utilizatorul (procesul) A doreşte să emită un mesaj, M, unui alt utilizator (proces) B. Dacă A cunoaşte transformarea publică EB, atunci A poate transmite M la B sub forma C=EB(M), asigurânduse astfel funcţia de protecţie (confidenţialitate) (figura 4).

Figura 4. Protecţia în criptosistemele cu chei publice La recepţie, B va descifra criptograma C utilizând transformarea secretă DB, cunoscută doar de el: DB(C)=DB(EB(M))=M 13

Schema nu furnizează facilităţi de autentificare, deoarece orice utilizator (proces) are acces la transformarea publică EB a lui B şi îi poate trimite mesaje false M’ sub forma C’=EB(M’). Pentru autentificare, i se aplică lui M transformarea secretă DA lui A. Ignorând protecţia pentru moment, A va emite C=DA(M) la B, care la recepţie va aplica transformarea publică, EA a lui A: EA(C)=EA(DA(M))=M (figura 5).

Figura 5. Autentificarea în sistemele criptografice cu chei publice Autentificarea este realizată deoarece numai A poate aplica transformarea DA. Protecţia nu este asigurată, întrucât este posibil ca M să fie obţinut de oricine aplicând transformarea publică EA. Pentru a se realiza simultan protecţia şi autentificarea informaţiilor spaţiului {M} trebuie să fie echivalent spaţiului {C}, aşa încât orice pereche (EA, DA) să fie în măsură să opereze atât asupra textului clar, cât şi asupra textului cifrat; în plus se cere ca EA şi DA să fie mutual inverse, adică: EA(DA(M))=DA(EA(M))=M. Emiţătorul de mesaj A va aplica mai întâi transformarea secretă a sa, DA mesajului M. Apoi A va cifra rezultatul . utilizând transformarea publică a lui B, EB - şi va emite către receptor criptograma: C=EB(DA(M)). 14

Receptorul B îl obţine pe M aplicând la început propria-i funcţie de descifrare, DB, iar apoi transformarea publică a lui A, EA, cea care furnizează autentificarea: EA(DB(C))=EA(DB(EB(DA(M)))) =EA(DA(M)) =M. (figura 6)

Figura 6. Protecţia şi autentificarea în criptosistemele cu chei publice

1.2.1 Criptografia simetrică La baza criptării convenţionale stau două modalităţi de cifrare:  transpoziţia;  substituţia. Cifrarea prin transpoziţie realizează o permutare a caracterelor din textul clar prin modificarea poziţiei caracterelor în mesaj. Cifrarea prin substituţie presupune înlocuirea fiecărui caracter din textul clar cu un caracter din alfabetul criptogramelor. 15

♦ ♦ ♦ ♦

Cifrurile prin transpoziţie se pot clasifica după: • numărul de aplicare al transpoziţiei: monofazică (se aplică o singură dată); polifazică (se aplică de mai multe ori). • elementul unitate de transpoziţie: monografică (se transpune o singură literă); poligrafică (se vor transpune grupuri de litere).

1.2.1.1. Cifrarea prin transpoziţie Transpoziţia monofazică presupune aplicarea transformării de cifrare o singură dată, în timp ce transpoziţia polifazică presupune aplicarea transformării de cifrare de mai multe ori. Dacă în procesul de cifrare elementul de corespondenţă în urma transpoziţiei este o literă, atunci transformarea este monografică, iar dacă se transpun grupuri de litere, transpoziţia se numeşte poligrafică. Un exemplu simplu de folosire a cifrării prin transpoziţie monofazică şi monografică este următorul: Să luăm mesajul:

Să împărţim mesajul în două blocuri orizontale în felul următor:

Citim mesajul pe coloane vom avea cifrarea:

16

Sau acelaşi mesaj

Împărţit în cinci blocuri verticale:

Citind mesajul pe linii vom avea cifrarea:

O altă modalitate este aceea prin care textul mesajului se scrie într-o matrice şi se parcurge matricea pe linii sau coloane dacă textul a fost scris pe coloane sau pe linii rezultând de fiecare dată un text cifrat. De asemenea, se poate face parcurgerea textului şi în diagonală sau în zig zag, pornind dintr-unul din colţuri. Să luăm textul clar: SECURITATEA DATELOR

Folosim o matrice 4 x 5 pentru reprezentare şi vom înlocui spaţiile din text cu O.

17

Prin citirea pe coloană a textului, având în vedere că acesta a fost scris pe linie, va rezulta mesajul:

Sau prin citirea în zig zag pornind din colţul dreapta jos şi apoi în sus:

Stabilirea traseelor de parcurgere a matricei se face în practică cu ajutorul unui cuvânt cheie. Cheia are un număr de litere egal cu numărul de coloane din matrice. Literele cheii, numerotate în ordine alfabetică, se scriu deasupra matricei, în ordinea stabilită de cheie, furnizată de textul cifrat. În practica curentă pentru protejarea datelor prin transpoziţie se folosesc cutiile de transpoziţie (figura 7).

Figura 7. Cutie folosită pentru transpoziţii

18

1.2.1.2 Cifrarea prin substituţie Procedeul folosit la cifrurile substituţie presupune înlocuirea fiecărui caracter din alfabetul mesajelor A cu un caracter din alfabetul criptogramelor C. Dacă A={a1, a2, a3,., an}, atunci C={f(a1), f(a2), .., f(an)}, unde F : A → C este funcţia de substituţie care constituie cheia cifrului. Cifrarea unui mesaj M=m1, m2, m3, ..., mn se face astfel: Ek(M)=f(m1)F(m2)f(m3).f(mn). Folosindu-se de substituţie, caractere ale alfabetului primar, sunt înlocuite cu caractere sau grupuri de caractere ale unui alfabet secundar. Aceasta poate fi reprezentată prin formula: C = aM + b(mod N). În acest mod se stabileşte o corespondenţă biunivocă între literele alfabetului primar şi numerele întregi 0, 1, 2, .., N-1.

1.2.1.3 Substituţii monoalfabetice Substituţia în care există o singură lege de corespondenţă între literele alfabetului primar şi cele ale alfabetului secundar se numeşte substituţie monoalfabetică. Cea mai cunoscută substituţie monoalfabetică este Cifrul lui Cezar. Se folosesc la cele două alfabete, primar şi secundar, 26 de litere. Legătura între cele două cifruri se obţine prin deplasarea cu un număr stabilit al alfabetului secundar şi stabilirea apoi a corespondenţei. În exemplul următor se va folosi o deplasare de 3 caractere. Ci=E(Mi)=Mi+3

19

În acest fel textul clar:

Poate deveni:

Folosind o corespondenţă biunivocă între literele care formează mesajul (Mi), alfabetul latin de 26 de litere, şi echivalentul numeric (Ei) unde Ei ∈ {0, 1, 2, .., 25}, Cifrul lui Cezar se mai poate scrie la forma generală: C(Ei) = Ei + Bi(mod 26). Prin particularizare, alegând B = 0, se obţine o substituţie de forma: C(ej) = a*ej(mod 26). Corespondenţa ej→C(ej) este biunivocă dacă numerele a şi 26 sunt relativ prime, deci (a, N)=1, în caz contrar două sau mai multe litere primare vor fi cifrate prin aceeaşi literă şi funcţia de cifrare nu admite o inversă. Se alege a astfel încât să fie relativ prim cu N = 26, în acest fel stabilindu-se o permutare a alfabetului primar. De exemplu, luând a = 3, se obţine următoarea corespondenţă: Litere primare:

Literele cifrului se pot obţine din alfabetul primar şi prin următorul proces de selectare: se alege prima litera A şi apoi, în 20

ordinea ciclică fiecare a treia literă; deci D, G, ..., Y. După Y şirul cifrului se continuă cu B, deoarece, în ordinea ciclică, a treia literă după Y în alfabetul primar este B ş.a.m.d., motiv pentru care factorul de amplificare a = 3 se mai numeşte şi factor de selectare. Se poate obţine un alfabet de substituire prin compunerea operaţiei de deplasare cu operaţia de selectare. Astfel, de exemplu, alegând b = 4 şi a = 3 se obţine cifrul: C(ej) = 3(ei+ 4) (mod 26), ceea ce este echivalent cu o transformare liniară generală de forma: C(ej) = 3ej + 12(mod26). Cifrul sau permutarea P a literelor alfabetului primar:

se poate caracteriza în mod univoc prin perechea de numere (3, 4), în care 3 reprezintă factorul de selectare, iar 4 coeficientul de deplasare. Perechea de numere (a, b) care defineşte în mod univoc o transformare liniară poartă denumirea de cheia substituţiei respective. Un sistem de criptare bazat pe substituţie se poate obţine şi prin folosirea unei chei mnemonice. Ca exemplu luăm cheia literală CRIPTARE, apoi scriem cheia numerică, care se obţine prin numărarea literelor cuvântului-cheie, după aşezarea lor în ordinea alfabetică:

S-au numerotat literele din cuvântul CRIPTARE în ordinea apariţiei în alfabet. La două apariţii ale aceleiaşi litere în cuvântul-cheie acestea se numerotează diferit. În exemplul de mai sus litera R a apărut în cheia literară pe poziţiile 6 şi 7. Deci 21

cheia numerică va fi 6 şi 7. Se scriu literele alfabetului primar sub cheia numerică sub forma:

Corespondenţa monoalfabetică, corespunzătoare cuvântului-cheie CRIPTARE, se obţine prin scrierea sub literele alfabetului primar a literelor coloanelor de mai sus în ordinea crescătoare, adică se obţine permutarea P1 (CRIPTARE):

Se observă în acest caz o corespondenţă biunivocă între alfabetul primar şi cel secundar. Cu ajutorul acestei corespondenţe se poate cifra orice text clar, obţinând textul cifrat. În acest caz, numărul corespondenţelor posibile creşte de la 26 la 26! şi ca atare această metodă de cifrare implică operaţii criptanalitice de mare complexitate. Se mai poate aplica încă o dată acest mod de criptare folosind cuvântul-cheie CRIPTARE obţinând o nouă permutare. Noul tabel, pentru această substituţie, va fi de forma:

22

de unde rezultă permutarea P2 (CRIPTARE):

Un cifru de substituţie se poate obţine şi cu ajutorul unui tabel sub formă de scară. Pentru aceasta se scriu toate literele alfabetului, în ordinea alfabetică, sub literele cheii, cu condiţia ca linia i să se completeze începând cu coloana i, pentru i = 1, 2, ... Apoi permutarea fixă sau alfabetul cifrat rezultă din scrierea sub literele alfabetului primar a literelor coloanelor tabelului scară în ordinea crescătoare. Astfel, de exemplu, pentru cheia mnemonică: ALFABET

Se obţine tabelul sub formă de scară:

de unde rezultă permutarea P (ALFABET):

23

Un alt procedeu de obţinere a unui alfabet cifrat constă în repetarea cuvântului-cheie până rezultă un număr de litere egal cu numărul literelor din alfabetul primar. Acesta se scrie sub literele alfabetului primar şi se numerotează în ordine alfabetică de la 0 până la 25. Litera A se cifrează prin acea literă care este deasupra lui 0 ş.a.m.d.

1.2.1.4 Substituţia omofonică Cifrurile bazate pe substituţie simplă sunt în general uşor de spart prin atac cu text cifrat, utilizând însă şi frecvenţele de apariţie a caracterelor. O variantă de substituţie este cea omofonică prin care se înlocuieşte fiecare caracter din A cu un caracter dintr-o mulţime f(A). Funcţia f se defineşte astfel: f : A τ 2C. Un mesaj clar M = m1m2...mn va fi cifrat sub forma C = c1c2...cn, unde fiecare ci este ales aleatoriu din mulţimea f(mi). Cifrurile omofonice sunt mult mai greu de spart decât cele bazate pe substituţie simplă, în special atunci când cardinalul mulţimii f(mi) este proporţional cu frecvenţa caracterului mi. În acest fel, se realizează o aplatizare a frecvenţelor de apariţie a diferitelor caractere, îngreunând munca de criptoanaliză. În cifrarea omofonică pentru caracterele cu o frecvenţă de apariţie mai mare se creează mai multe posibilităţi de reprezentare în textul cifrat. De exemplu, în urma unor analize statistice, numărul de apariţie a literelor într-un text de limba engleză de 100.000 caractere este: E-12604, T-9042, R8256, ...Q-318, J-198, Z-101. Pentru literele E, T şi R, având un număr de apariţii mai mare, în cifrarea omofonică se creează patru posibilităţi de reprezentare. Evident, cu cât alfabetul secundar este mai bogat în caractere, cu atât este mai uşoară mascarea caracteristicilor statistice ale textului clar. Fiecare caracter al textului clar poate avea mai multe reprezentări în textul cifrat. Pentru a ilustra acest 24

lucru se consideră cazul când alfabetul textului clar este format din 26 de caractere, iar alfabetul secundar conţine 210 + 1024 de caractere de 10 biţi fiecare. Iniţial se face ca pentru fiecare literă din alfabetul primar să corespundă un număr de cifruri direct proporţionale cu frecvenţa de apariţie a literei respective în textul considerat. Numărul cuvintelor de cod prin care sunt codificate literele alfabetului primar este: E-133, T-93, R-85, ..., Q-2, J-2, Z1. Prin acest sistem de cifrare se realizează ca frecvenţa de apariţie a cuvintelor de cod să fie aproape constantă. Cifrarea monoalfabetică poate fi uşor de implementat. Timpul de criptare a n caractere este proporţional cu acestea. Există un număr de 26! posibilităţi de cifrare. Dacă se face o descifrare într-o milisecundă, folosind un atac brut, este nevoie de 1000 ani pentru a testa toate posibilităţile. Cu toate acestea, frecvenţa literelor în text poate dezvălui mesajul.

1.2.1.5 Substituţia polialfabetică Cifrurile bazate pe substituţie polialfabetică constau din utilizarea periodică a unor substituţii simple diferite. Fie d alfabete de cifrare C1, C2, ., Cd şi d funcţii fi care realizează substituţia de forma fi:A→Ci, 1 ≤ i ≤ d. Un mesaj clar M = m1m2…mdmd + 1…m2d… va fi cifrat prin repetarea secvenţelor de funcţii f1, ..., fd la fiecare al d-lea caracter: Ek(M) = f1 (m1)...fd(md)fi (md + 1). Utilizarea unei secvenţe periodice de substituţii ale alfabetului măreşte în mod semnificativ securitatea criptogramei prin nivelarea caracteristicilor statistice ale limbii. 25

Aceeaşi literă din textul cifrat poate reprezenta mai multe litere din textul clar, cu diverse frecvenţe de apariţie. În acest caz, numărul cheilor posibile se măreşte de la 26!, câte erau la substituţia monoalfabetică, la (26!)n. În substituţia n-alfabetică caracterul m1 al mesajului clar este înlocuit cu un caracter din alfabetul A1, m2 cu un caracter din alfabetul A2, ., mn cu un caracter din alfabetul An, mn + 1 din nou printr-un caracter în alfabetul A1 etc., conform tabelului: CARACTER DE INTRARE: m1, m2, m3, m4, m5, m6, m7, m8, m9, . ALFABET SUBSTITUŢIE: A1, A2, A3, A4, A1, A2, A3, A4, A1. O versiune cunoscută de substituţie polialfabetică o constituie cifrul Vigenere (tabelul 1), când cheia K este o secvenţă de litere de forma: K = k1k2...kd. Funcţiile fi de substituţie se definesc astfel: fi(a) = (a + ki) (mod n), unde n este lungimea alfabetului.

26

Tabelul 1. Cifrul lui Vigenere

Se parcurg următorii paşi: 27

1. Se alege un cuvânt-cheie. 2. Se împarte textul în grupuri de 5 caractere. 3. Se scrie cuvântul cheie în fiecare din căsuţele atribuite. 4. Se foloseşte cuvântul cheie pentru a stabili coloana din tabel. 5. Se foloseşte textul clar pentru a stabili rândul din tabel. 6. Se criptează textul folosind corespondenţa dintre linie şi coloană unde se va găsi simbolul folosit pentru cifrare. Exemplu: Folosim mesajul clar Mi pe care dorim să-l criptăm folosind cheia Kk.

Corespondenta dintre Kk şi Mi va avea ca rezultat Ci. Rezultatul este evidenţiat pe cifrul lui Vigenere în tabelul 2. Matematic se obţine acelaşi lucru în felul următor: 1. Se consideră aceiaşi cheie de cifrare (Kk) SECRET. 2. Textul clar (Mi) va fi CRIPTAREA CU CHEI PRIVATE. 3. Folosind o corespondenţă biunivocă între literele alfabetului şi elementele inelului claselor de resturi modulo26 (A = 0, B = 1, ..., Z = 25), substituţia alfabetică conduce la următorul text cifrat:

28

Tabelul 2. Generarea rezultatului folosind cifrul lui Vigenere.

29

Textul clar este (Mi) este CRIPTAREA CU CHEI PRIVATE: Cheie de cifrare (Kk) este SECRET. C + S = ( 2 + 18)(mod26) = 20(mod26) = 20 = U R + E = (17 + 4)(mod26) = 21(mod26) = 21 = V 30

I + C = ( 8 + 2)(mod26) = 10(mod26) = 10 = K …………………………………………………. T + C = (19 + 2)(mod26) = 21(mod26) = 21 = V E + R = ( 4 + 17)(mod26) = 21(mod26) = 21 = V Un cifru Vigenere cu o perioada n, deşi mult mai puternic decât un cifru bazat pe substituţia monoalfabetică, poate fi spart dacă criptanalistul dispune de cel puţin 2n caractere din textul cifrat. O variantă mai nouă a acestui cifru peste un alfabet binar este cifrul Vernam, care se diferenţiază prin cheia de cifrare care este reprezentată de o secvenţă de caractere aleatorii care nu se repetă. Fie M = m1m2... un mesaj clar binar şi K = k1k2... un şir binar care reprezintă cheia. Criptograma C = EK(M) = C1C2... se obţine determinând fiecare caracter ci astfel: ci = (mi + ki) (mod n), i = 1, 2, ... Utilizarea o singură dată a cheii (.one time pad.) face ca mesajul să fie foarte rezistent la criptoanaliză, practic imposibil de spart; aceste cifruri au o largă utilizare în comunicaţiile diplomatice şi militare.

1.2.1.6 Substituţia poligramică Cifrurile bazate pe substituţie poligramică realizează substituirea unor blocuri de caractere (poligrame) din textul clar, distrugând astfel semnificaţia, atât de utilă în criptoanaliză, a frecvenţelor diferitelor caractere. Vom consideră un mesaj M = m1m2...mdmd + 1... şi un cifru care prelucrează poligrame de lungime d. Criptograma rezultată este C = c1...cdcd + 1...cd + d. Fiecare poligramă mid + 1+...mid + d va fi prelucrată în poligrama cid + 1...cid + d prin funcţia de substituţie astfel: 31

cid + j = fj(mid + 1, ., mid + d) În cazul cifrării literelor singulare, frecvenţa de apariţie a literelor în textul cifrat este aceeaşi cu frecvenţa de apariţie a literelor corespunzătoare din textul clar. Această invarianţă a frecvenţelor furnizează o cantitate de informaţie suficientă criptoanalistului pentru spargerea sistemului de secretizare. Pentru minimizarea informaţiei colaterale furnizate de frecvenţa de apariţie a literelor s-a procedat la cifrarea grupurilor de n litere (n-grame). În cazul când un grup de n litere este substituit printr-un alt grup de n-litere, substituţia se numeşte poligramică. Substituţia poligramică cea mai simplă se obţine pentru n = 2 când digrama m1m2 din textul clar se substituie cu digrama c1c2 din textul cifrat. Corespondenţa biunivocă dintre digramele m1m2 şi c1c2 se poate stabili cu ajutorul unui tabel de formă pătratică. Literele din coloană din stânga pătratului şi din rândul dispus deasupra pătratului servesc drept coordonate pentru digrama m 1m2 din textul clar, iar digrama cifrată corespunzătoare se scrie la intersecţia liniei m1 cu coloana m2 sub forma:

Pentru simplificarea operaţiei de descifrare se poate întocmi “pătratul invers” care în punctul de coordonate c1 c2 ţine digrama clară m1 m2. Un exemplu clasic pentru sustituţia digramelor este cifrul lui PLAYFAIR. Metoda constă în dispunerea literelor alfabetului latin de 25 de litere (I ≡ J) într-un pătrat de cinci linii şi cinci coloane de forma:

32

De regulă, în prima linie a pătratului se scrie un cuvânt cheie, şi apoi se completează celelalte linii cu literele alfabetului, fără repetarea literelor. Cifrarea se execută după următoarele reguli:  dacă m1m2 sunt dispuse în vârfurile opuse ale unui dreptunghi, atunci c1c2 sunt caracterele din celelalte vârfuri ale dreptunghiului, c2 fiind în aceeaşi linie cu m1. De exemplu GS devine MN, deci GS→MN;  dacă m1 şi m2 se găsesc într-o linie, atunci c1 şi c2 se obţin printr-o deplasare ciclică spre dreapta a literelor m1 şi m2. De exemplu, AD→BF sau CF→DA etc.;  dacă m1m2 se află în aceeaşi coloană, atunci c1 şi c2 se obţin printr-o deplasare ciclică a lui m1, m2 de sus în jos. De exemplu, UO→BW sau EZ→FE etc.;  pentru separarea liniilor identice alăturate se introduc nişte caractere de separare care, de regulă, au frecvenţă de apariţie redusă, cum sunt de exemplu literele X, Q în limba română. Descifrarea se execută după reguli asemănătoare cu cele de cifrare. O substituţie poligramică interesantă este metoda algebrică de cifrare care se bazează pe utilizarea unei transformări liniare de forma: f(M) = PMT, unde P este o matrice pătratică cu n linii şi n coloane, iar M este un vector coloană cu n elemente. Elementele matricei transformării P aparţin inelului Z26, iar elementele lui M sunt echivalente numerice ale n-gramei M = e1, e2, ..., en. 33

În mod analog cu cifrarea şi descifrarea digramelor se pot prelucra trigramele, tetragramele sau pentagramele, obţinând un spor de securitate prin creşterea rangului matricei de cifrare. Aplicând în mod repetat operaţia de transformare liniară se obţine un cifru-produs definit prin produsul matriceal de forma: C = P1(P2( ...(PkMT).), unde matricele Pi, i = 1, 2, ..., k sunt matrice inversabile de tipul nxn, iar M = e1, e2, ..., en este echivalentul numeric al n-gramei. Cele n litere ale n-gramei-text clar depind de n-gramacifru, dar dacă două n-grame din textul clar au o literă comună, de aici nu se poate deduce că n-gramele-cifru corespunzătoare au o literă comună şi invers, ceea ce conduce la mascarea caracteristicilor statistice ale textului clar. În cadrul cifrurilor computaţionale, folosite în sistemele de securitate ale calculatoarelor, substituţia simplă se realizează prin aşa-numitele cutii S (figura 8).

Figura 8. Cutii de substituţie.

34

1.2.1.7 Cifruri produs Un algoritm produs (numit şi cifru produs) reprezintă o compoziţie a t funcţii (cifruri) f1, f2, ., ft, în care fiecare fi poate fi o substituţie sau o permutare. Shannon a propus compunerea în diferite feluri a funcţiilor pentru crearea unor transformări mixte care distribuie în mod uniform mulţimea mesajelor M pe mulţimea tuturor criptogramelor C. Aceste categorii de cifruri-produs se bazează pe reţele de cutii S-P, în care se obţine criptograma C = EK(M) = StPt-1…S2P1S1(M), unde fiecare Si, este dependentă de o cheie k, parte din cheia cifrului K.

35

1.2.2 Metode criptografice simetrice 1.2.2.1 Cifrul Lucifer Un exemplu de criptare simetrică îl constituie cifrul Lucifer. Acesta realizează cifrarea/ descifrarea mesajelor divizându-le în blocuri de 128 de biţi. Mesajul poate fi de lungime oarecare, iar cheia de cifrare este de 128 biţi. Principiul este ilustrat în figura 9.

Figura 9. Sistemul de criptare Lucifer. Sistemul de criptare Lucifer a fost dezvoltat încă din anul 1974 de către firma IBM. Ulterior, sistemul de criptare Lucifer a fost denumit DEA . Data Encryption Algorithm. Acesta foloseşte o serie de cutii S şi cutii mici P, cu n = 4, prin care trec datele de intrare. Cutiile S vor implementa două substituţii posibile S0 şi S1, făcute publice, a căror alegere depinde de valoarea unui bit al cheii. Ţinând seama de faptul că sistemul implementează 16 iteraţii identice, necesarul de cheie fiind de 512 biţi (1 bit/cutie S*32 cutii S/iteraţie*16 iteraţii). Pentru a se reduce cheia de 36

criptare de la 512 biţi la 128 biţi se utilizează un algoritm de expandare al ei, care repetă fiecare bit al cheii de patru ori. Fiecare cutie S de n biţi poate fi implementată ca o memorie de 2n cuvinte de n biţi. Pentru a se realiza un compromis între cost de implementare şi securitate asigurată s-a ales n = 4, ceea ce înseamnă pentru fiecare cutie 64 de biţi. ispozitivul Lucifer conţine şi un generator de cuvinte de trecere pentru transmisiile de date importante. Acest generator operează la fiecare capăt al liniei de comunicaţii. Mesajele care urmează să fie transmise sunt divizate automat în blocuri de D biţi şi combinate la fiecare impuls de tact al unui ceas, înainte de transmisie, cu un cuvânt de trecere (CT) care corespunde ieşirii ceasului în acel moment. Rezultă un bloc de 2D biţi care este cifrat prin ansamblul cutiilor P şi S. Cifrul Lucifer trebuie să gestioneze corect, la descifrare, cheia aplicată cutiilor S iar cuvântul de trecere cifrat recepţionat trebuie să corespundă cu cel generat local de ceasul binar care este sincronizat cu cel de transmisie. Metoda numită şi autentificarea prin înlănţuirea blocurilor prezintă următoarele avantaje:  fiecare bloc de text clar şi corespondentul sau cifrat sunt unice, ceea ce înseamnă că acelaşi mesaj, repetat în transmisie, dă criptograme diferite la timpi diferiţi;  erorile de transmisie sau utilizarea unei chei neadecvate vor fi sesizate imediat;  încercările de a transmite mesajele vechi, înregistrate, sunt imediat detectate, deoarece cuvintele de trecere sunt diferite la momente diferite.

37

1.2.2.2 Algoritmul DES Sistemul DES (Data Encryption Standard) este primul standard dedicat protecţiei criptografice a datelor din sistemele de calcul. Dezvoltarea lui a început încă din 1972, dar a fost adoptat oficial în 1976, după îmbunătăţirea cifrului Lucifer. Sistemul de cifrare DES este o combinaţie între tehnica substituţiei şi tehnica transpoziţiei. DES reprezintă un cifru-bloc cu lungime de 64 de biţi. Cheia de criptare are lungimea de 64 de biţi, din care doar 56 sunt efectiv folosiţi, aceştia fiind generaţi aleatoriu, ceilalţi 8 biţi sunt folosiţi pentru a detecta erorile de transmisie, câte un bit pentru fiecare bloc de 8 biţi ai cheii. În acest fel, cheia este expandată la lungimea blocului. Cheia este păstrată de către utilizatori şi este folosită în procesul de cifrare/descifrare. Sistemul de cifrare DES constă din patru moduri de prelucrări [HSST95]: ECB - Electronic Code Book CBC - Cipher Block Chaining OFB - Output Feedback CFB - Cipher Feedback Modul ECB (DES nativ) Datele de intrare sunt divizate în blocuri de 64 de biţi (8 bytes). Cheia de criptare are de asemenea 64 de biţi. Din aceştia sunt folosiţi efectiv 56, ceilalţi fiind folosiţi ca informaţie de control. Se folosesc doi algoritmi distincţi, şi anume:  algoritmi folosiţi pentru criptare;  algoritmi pentru planificarea cheilor. Se efectuează două tipuri de criptări în această fază: 38

 

permutarea substituţia.

Pentru realizarea acestor două operaţii se folosesc cutii pentru permutări şi substituţii. Permutarea cu ajutorul cutiilor Vom exemplifica o permutare care are ca date de intrare caracterul “9” (în EBCDIC), cu forma binară 11111011, care va fi transformat cu ajutorul cutiei în caracterul .=. (în EBCDIC), cu forma binară 01111110 (figura 10).

Figura 10. Cutie folosită la permutare. Procesul de permutare realizat de cutie va disimula informaţia. Dacă considerăm cutia ca un algoritm de criptare, atunci cheia va fi formată din macheta de conexiune realizată între conexiunile interne. Procesul de criptare este în acest caz reversibil, dacă aplicăm cheia la datele de ieşire vom obţine datele de intrare. Se aplică în continuare o operaţie de tip OR exclusivă (XOR). Aceasta poate fi văzută la rândul ei ca un nou algoritm 39

de criptare, sau ca un pas suplimentar în criptare (în literatura de specialitate mai poartă denumirea de modulul al doilea adiţional). Acest pas suplimentar este exemplificat în tabelul 3. Tabelul 3. Modulul al doilea adiţional.

Se observă că procesul este reversibil cu condiţia ca cheia de criptare să fie aceeaşi cu cheia de decriptare. Substituţia cu ajutorul cutiilor Substituţia este folosită ca un proces de neliniarizare a informaţiei menit să aducă confuzie unui eventual utilizator neavizat. Procesul presupune înlocuirea unui număr cu un altul dintr-o tabelă prestabilită. Informaţia binară va fi înlocuită cu valori numerice din tabela. Tabela are valori de numere cuprinse între 0 (0000) şi 15 (1111) (tabelul 4). Tabelul 4. Substituţia cu ajutorul cutiilor.

Operaţia de substituire are ca date de intrare 6 biţi şi returnează 4 biţi. Principiul este exemplificat în cele ce urmează (tabelul 5). Paşii sunt următorii: 40

 





se aleg datele de intrare (binar - 101011 care are corespondent zecimal - 43); primul şi ultimul bit din şirul de intrare vor determina linia din tabel (11 - binar → 3 - zecimal, rândul cu numărul 3); cei 4 biţi din mijlocul şirului vor determina numărul coloanei (0101 - binar → 5 -zecimal, coloana cu numărul 5); din tabelă, la intersecţia coloanei nr. 5 cu rândul nr. 3 se găseşte cifra zecimală 9, adică binar 1001. Tabelul 5. Substituţia cu ajutorul cutiilor - rezultatul.

Schema de prelucrare într-un singur ciclu a lui ECB (nativ DES) presupune parcurgerea următorilor 7 paşi (figura 11): Pasul 1  se introduc cei 64 de biţi ai mesajului de text clar (Mi). Pasul 2  se rearanjează datele de intrare conform cu tabela de permutări iniţiale (IP). Pasul 3  se împarte segmentul de date de intrare în două segmente/jumătăţi de câte 32 de biţi care vor purta denumirea de L (left . stânga) şi respectiv R (right . dreapta);  se face o salvare de siguranţă a jumătăţii dreapta care se va numi R0;  se va opera în continuare numai cu jumătatea dreaptă (R) lăsând jumătatea stângă (L). Pasul 4 41



se aplică asupra jumătăţii R un set special de permutări, numite permutări expandate (PE), care la un număr de 32 de biţi date de intrare vor genera 48 de biţi date de ieşire.

42

Figura 11. Schema de prelucrare într-un singur ciclu a lui ECB (nativ DES). 43

Pasul 5  celor 48 de biţi rezultaţi, împreună cu alţi 48 de biţi ai unei chei, li se aplică o operaţie XOR. Este singurul loc unde intervine cheia de criptare. În urma acestei operaţii rezultă un bloc care se numeşte Pre S block. Pasul 6  se împarte Pre S block în 8 segmente de câte 6 biţi;  fiecare segment este procesat de o casetă individuală SBox (S1, S2, S3, ...S8). Prelucrarea se face în paralel cu a celor 8 segmente. Fiecărui segment i se aplică o singură cutie S-Box.  în urma prelucrării rezultă 32 de biţi (4 biţi la ieşire * 8 casete = 32 biţi). Succesiunea de biţi rezultată poartă denumirea de Post S block. Pasul 7  Post S block este supus unei operaţii finale de prelucrarepermutare;  Prelucrarea presupune prelucrarea a 32 de biţi şi are ca date de ieşire 32 de biţi care formează rezultatul. Procesul de prelucrare este exemplificat în figura 12.

44

Figura 12. Operaţia finală de prelucrare-permutare. 45

Paşii de la 4 la 7 sunt adesea grupaţi într-o diagramă de funcţii DES f(Rn-1, Kn). Pasul 8  se aplică funcţia OR exclusiv (XOR) pentru jumătatea stângă rămasă de la pasul 3 împreună cu f(Rn-1, Kn). Aceasta are ca rezultat un nou R.  R0 va deveni un nou L. Paşii de la 3 la 7 se repetă de 16 ori pentru fiecare bloc de 64 de biţi în vederea criptării. Pentru decriptare se foloseşte acelaşi algoritm cu schimbarea ordinii cheilor. Un rol important îl are planificarea cheilor. Aceasta presupune existenţa unui set de biţi de deplasare şi permutare care sunt total independenţi de algoritmul de criptare. Planificarea cheilor de criptare se face înainte de criptarea propriu-zisă. Acest lucru este exemplificat în figura 13.

46

Figura 13. Planificarea cheilor. Se parcurg următorii paşi: Pasul 1  cheia este supusă unei permutări iniţiale;  fiecare al optulea bit (8, 16, 32, 64) este eliminat până va fi folosit ca bit de paritate;  rezultă două perechi de câte 28 de biţi care vor fi numite C0 şi respectiv D0. Pasul 2 47

blocurilor C şi D li se aplică o permutare (shift) circulară conform unui tabel de permutări. Pasul 3  blocurile C şi D rezultate sunt concatenate obţinându-se blocul CD1. Pasul 4  CD1 este supus unei permutări;  După permutare sunt eliminaţi biţii 9, 18, 22, 25, 35, 38 şi 54. Rezultă o cheie de 48 de biţi (K1). Această cheie este folosită în pasul 1 al algoritmului de criptare. 

Paşii de la 2 la 4 sunt repetaţi de un număr de 16 ori. Diferenţa dintre cicli este numărul de biţi deplasaţi la fiecare deplasare circulară. Modul ECB are câteva puncte slabe, şi anume:  se criptează blocuri de 64 de biţi independent de criptarea altor blocuri;  la aceleaşi chei de criptare, texte identice se vor cifra identic;  probleme la complementaritatea blocurilor mai mici de 64 de biţi etc. Modul CBC Modul CBC (figura 14) este un mod de criptare prin înlănţuirea blocurilor. Criptarea fiecărui bloc depinde de criptarea blocului anterior. C1 = E(B1) C2 = E(E(B1) B2) = E(C1 B2) C3 = E(E(E(B1) B2) B3) = E(C2 B3) etc. Pentru criptare se foloseşte un vector de iniţializare (IV) care poate fi asimilat ca o cheie de criptare secundară. 48

Acest mod prezintă dezavantajul că, de vreme ce criptarea depinde de blocul anterior, o eroare apărută la unul dintre blocuri se va propaga la blocurile următoare, generând serioase probleme la decriptare.

Figura 14. Modul CBC.

49

1.2.2.3 Modul Feedback (OFB. Output Feedback şi CFB. Cipher Feedback) Vom trata împreună aceste două moduri deoarece nu diferă semnificativ. Modul de funcţionare este exemplificat în figura 15 pentru OFB - Output Feedback şi în figura 16 pentru CFB - Cipher Feedback.

Figura 15. Modul OFB.

50

Figura 16. Modul CFB. Se observă ca textul clar este înlocuit de un bloc de Kbiţi. Modul permite criptarea textului indiferent de lungimea acestuia. Există şi critici la adresa algoritmului. O primă critică se referă la numărul de iteraţii care se aplică. Sunt 16 iteraţii de ajuns pentru a se asigura o bună criptare? O altă critică se referă la lungimea şi numărul cheilor. O altă critică se referă la posibilitatea de a iniţia atacuri la adresa lui. Există două tipuri de atacuri criptoanalitice la adresa DES: căutarea exhaustivă şi folosirea de tabele. 51

Căutarea exhaustivă utilizează un atac cu text clar cunoscut. Dacă se ştie textul cifrat C, textul clar este cifrat, ci o cheie până când DESK(M) = C. Ştiind că DES foloseşte efectiv 56 de biţi pentru cheie, rezultă că trebuie testate 256 chei. Folosirea tabelelor realizează un atac cu text clar la alegere: pentru un mesaj Mo ales, se vor calcula în avans criptogramele Ci = Eki(Mo) pentru i = 1, 2, 3, ., n. Se caută, pentru un text interceptat, cheia într-o tabelă. În ambele cazuri, dacă se foloseşte tehnica procesării paralele pentru reducerea timpului, decriptarea poate fi făcută sub o zi. O criptare dublă complică însă problemele de decriptare. Dintre slăbiciuni se remarcă din nou cheile. Două chei diferite pot decripta acelaşi mesaj. O altă problemă o reprezintă faptul că aceste chei sunt folosite într-o ordine la criptare şi într-o ordine inversă la decriptare. Din acest motiv, pentru transmisii de date în care este necesară o confidenţialitate strictă se utilizează chei de dimensiuni mult mai mari, chiar pentru algoritmul DES (de 256, 512, 1024 şi chiar 2048 sau 4096 de biţi), ştiut fiind că timpul necesar decriptării creşte exponenţial cu dimensiunea cheii de criptare/decriptare.

1.2.2.4 International Algorithm (IDEA)

Data

Encryption

Este considerat de unii specialişti ca fiind superior DESului. A fost inventat de către Xuejia Lai şi James Massey. Caracteristici:  lucrează cu blocuri de 64 de biţi text;  foloseşte 128 de biţi pentru cheie;  foloseşte acelaşi algoritm pentru criptare şi decriptare. Se observă la o primă privire că lungimea cheii este dublă faţă de DES (DES foloseşte efectiv 56 de biţi din cei 64 alocaţi cheii). 52

Modul de funcţionare este următorul:  se divide blocul de intrare de 64 de biţi în 4 blocuri de câte 16 biţi (X1, X2, X3, X4);  cele 4 blocuri de câte 16 biţi (X1, X2, X3, X4) devin date de intrare pentru următorul pas al algoritmului;  fiecăruia din blocurile X1, X2, X3, X4 li se vor aplica operaţii de tip XOR, adunare, multiplicare cu alte blocuri şi cu o parte din cheie formată din 16 biţi;  între paşii algoritmului se face schimbarea între blocurile al doilea şi al treilea;  numărul de paşi este de 8. Algoritmul este implementat atât software, cât şi hardware. Implementarea software are aceeaşi viteză ca la implementarea hardware a algoritmului DES. Implementarea hardware este semnificativ mai rapidă decât DES. Algoritmul a fost dezvoltat pentru asigurarea comunicaţiilor sigure în timp real.

1.2.2.5 Algoritmul Skipjack Algoritmul este dezvoltat de NSA (National Security Agency) încă din anul 1985 şi finalizat în anul 1990. Este clasificat ca secret. Este creat pentru utilizare cu Clipper (un cip de criptare dezvoltat de guvernul SUA ca parte a proiectului Capstone. Foloseşte conceptul de chei în custodie - Escrowed Key System) şi Capstone (proiectul pe termen lung al guvernului american de dezvoltare a unui set de standarde pentru criptografia cu chei publice). Este un algoritm simetric (ca şi DES şi IDEA). Lungimea cheilor este de 80 de biţi. Poate lucra în modurile ECB, CFB, OFB şi CBC. Foloseşte la criptare un număr superior de paşi faţă de ceilalţi algoritmi - 32 de paşi. Puterea algoritmului nu se bazează prea mult pe algoritmul de criptare în sine. 53

Criptarea cu chei private presupune ca un utilizator/destinatar să cunoască cheia privată a celuilalt utilizator/expeditor. De aici apar probleme cu transmisia şi păstrarea în siguranţe a cheilor de cifrare/descifrare, precum şi cu numărul acestora. Trei utilizatori au nevoie de cheile KAB, KAC şi KBC. Patru utilizatori vor avea nevoie de cheile KAB, KAC, KBC, KAD, KBD, KCD. De aici rezultă că pentru n utilizatori este nevoie de n*(n1)/2 chei.

1.2.3 Criptografia asimetrică 1.2.3.1 Elemente de bază Conceptul de criptarea asimetrică - cu chei publice (cu două chei) a fost introdus de Diffie şi Hellman. Se propune o nouă metodă de cifrare, numită cifrare cu cheie publică, în cadrul căreia doi utilizatori pot comunica cunoscând fiecare doar cheia publică a celuilalt. În criptosistemele cu chei publice fiecare utilizator A deţine o transformare de cifrare publică, Ek, care poate fi înregistrată într-un registru public şi o transformare de descifrare secretă, Dk, ce nu este posibil să fie obţinută din EA Cheia de descifrare (secretă) este derivată din cheia de cifrare (publică) printr-o transformare greu inversabilă (oneway). În sistemele cu chei publice, protecţia şi autentificarea sunt realizate prin transformări distincte. Cheia publică a destinatarului, care se preia din registrul/fişierul public, va fi utilizată de către expeditor pentru cifrarea mesajelor de la acesta către destinatar. Destinatarul va putea, pe baza cheii secrete pe care o deţine, să descifreze mesajul care-i este destinat. Serviciile asigurate de criptarea asimetrică sunt: 54

   

secretizarea; autenticitatea; integritatea; nerepudierea.

Secretizarea impune ca un utilizator neavizat să nu poată să determine, pe baza textului cifrat în posesia căruia a intrat, textul clar şi să nu fie capabil să descopere cheia de criptare (privată) pe baza analizei textului. Autenticitatea impune ca emiţătorul să valideze sursa mesajului - mesajul să fie transmis de proprietarul acestuia şi nu de o altă persoană. De asemenea, mesajul nu trebuie să fie un mesaj mai vechi retransmis. Integritatea impune ca un mesaj transmis să nu poată fi modificat accidental sau voit prin înlocuiri, inserări sau ştergeri a unor porţiuni de mesaj. Nerepudierea impune o protecţie împotriva unui transmiţător care poate nega o transmisie efectuată anterior către un destinatar. Criptarea cu chei publice este cu precădere folosită în două mari aplicaţii:  distribuţia cheilor secrete;  semnătura digitală. Procesul de distribuire a cheilor secrete presupune existenţa a doi sau mai mulţi utilizatori care împart chile de criptare (private ca în cazul folosirii algoritmului DES). Distribuţia cheilor trebuie făcută pe un canal sigur. Folosirea unui serviciu de curierat sau o altă autoritate pentru distribuţie măreşte riscul de aflare a cheii. Transmiterea cheii private folosind transmiterea acesteia criptată, nemaiexistând o a treia persoană care să ştie de existenţa acesteia, precum şi modul de transmitere, este destul de folosită.

55

Semnătura digitală este similară cu semnătura de mână la autentificarea unui document. Semnătura digitală trebuie să îndeplinească două mari cerinţe:  receptorul trebuie să fie capabil să autentifice semnătura expeditorului;  semnătura să nu poată fi falsificată. Există două importante variante de implementare:  semnătura exactă;  semnătura arbitrară. În cazul de implementare cu semnătură exactă, mesajul este trimis direct de la emiţător la receptor. În cazul implementării cu semnătură arbitrară, există un martor care poate fi uman sau proces automat, care validează semnătura şi apoi se înaintează mesajul receptorului. Semnătura digitală trebuie să asigure autenticitate, integritate şi nerepudiere. În unele cazuri semnătura digitală este dezirabilă atâta timp cât nu se cere secretizare. Criptarea asimetrică permite comunicarea între persoane care nu au stabilit în prealabil nici o legătură. Comunicarea se va face pe baza celor două chei, cea publică a destinatarului şi cheia privată a acestuia cu care se va descifra mesajul criptat în prealabil cu cheia publică a acestuia. Elementele care participă la procesul de criptare şi decriptare sunt:  mesajul de text clar, {M};  mesajul de text cifrat, {C};  cheile, {K};  transformările de cifrare, Ek: M → C, unde K ∈ { K};  transformările de descifrare, Dk: C → M, unde K ∈ {K }. Un sistem de cifrare cu chei publice trebuie să satisfacă următoarele cerinţe:  dacă C = E(M), atunci M = D(C) sau D(E(M)) = M, pentru ∀M ∈ {M}; 56

 

criptarea (E) şi decriptarea (D) trebuie să fie uşor implementabile (software sau hardware); obţinerea lui D dacă se află E trebuie să fie imposibil sau foarte greu de realizat.

Suplimentar faţă de acestea, pentru a se asigura autenticitatea mesajului, s-a introdus şi funcţia de semnătură digitală (S). Semnătura digitală reprezintă o metodă suplimentară de autentificare a mesajului.  S = D(M), atunci M = E(S) sau E(D(M)) = M pentru ∀M ∈ {M}.  

Autentificarea mesajului acţionează în ambele sensuri: receptorul va putea să fie sigur de provenienţa mesajului de la expeditor; emiţătorul va putea să fie sigur de faptul că nimeni nu se va putea substitui lui. Emiţătorul (A) poate semna mesajul către destinatar (B)

astfel: S = DA(M) şi apoi poate trimite mesajul cifrat C = EB(S). Numai destinatarul mesajului va putea să extragă semnătura (S) din mesajul criptat (C) calculând DB(C) = DB(EB(S)) = S, obţinând în final mesajul de text clar EA(S) = EA(DA(M)) = M. Criptarea asimetrică - cu chei publice - foloseşte metode matematice foarte complexe, în aritmetica numerelor foarte mari, de 256-1024 de biţi, a căror implementare se face cu dificultate. Algoritmii folosiţi în criptarea asimetrică sunt grupaţi într-o bibliotecă de aritmetică criptografică. Aceasta conţine un ansamblu de funcţii matematice necesare implementării 57

algoritmilor atât pentru criptarea simetrică, cât şi pentru cea asimetrică. Funcţiile cele mai utilizate sunt [HSST95]:  sumă - SUM;  diferenţă - DIF;  comparare - COMP;  modulo rapid - FASTMOD;  înmulţire modulo - AMULB;  înmulţire modulo 2n-1 - AMULB3;  înmulţire modulo 2n - AMULB4;  funcţia de exponenţiere 2n-1 - EXP;  ridicarea rapidă la putere - FASTEXP;  invers multiplicativ - INVERS;  aflarea celui mai mare divizor comun - CMMDC;  calculul operatorilor Jacobi;  teste de primalitate. Dintre sistemele de criptare asimetrice cel mai des folosite sunt: o sisteme de criptare cu chei publice exponenţiale; o sisteme de criptare de tip rucsac (knapsack); o sisteme de criptare cu chei publice bazate pe ecuaţii în câmp finit.

1.2.3.2 Sisteme de criptare cu chei publice exponenţiale Schema propusă are la bază algoritmi care se bazează pe imposibilitatea calculului logaritmilor modulo număr prim. Fie q un număr prim şi un întreg x, x ∈ [1, q - 1]. Se poate calcula Y = ax (mod q), unde a este un element primitiv al câmpului Galois GF(q). Clasele de resturi modulo q vor forma un inel; dacă q este un număr prim acesta formează 58

un câmp Galois GF(q). Într-un câmp Galois există (q-1) numere a care sunt elemente primitive ale câmpului Galois. Dacă a, a2, a3, ., aϕ(q) (ϕ(q) este indicatorul lui Euler, ϕ(q) = q-1) sunt puterile lui a, atunci acestea au ca resturi mod q pe 1, 2, ., ϕ(q), ceea ce înseamnă că un element primitiv va genera prin ridicarea la putere toate elementele care sunt nenule ale câmpului. Utilizatorul A va alege în mod aleatoriu un număr XA, XA ∈ {1, 2, ., q-1}. Calculează YA = a X A (mod q). XA devine cheie privată şi va fi ţinută strict secretă. YA devine cheie publică şi va fi păstrată într-un director sau fişier public. Comunicarea între doi utilizatori (A) şi (B) se va face folosind cheia de comunicaţie de forma:

Un atac la mesajul criptat presupune să se afle cheia KAB, adică să se caute . Sistemul va fi foarte greu de spart datorită imposibilităţii calculării logaritm modulo q în timp util sau cu mijloacele existente. Sistemul este sigur şi simplu. Criptarea se face pe baza cheii publice a destinatarului (aflată într-un director sau fişier public), iar decriptarea se face pe baza cheii private a destinatarului şi nu pe baza cheii publice. Criptarea cu chei publice exponenţiale a beneficiat în ultimul timp şi de aportul unor funcţii suplimentare care sporesc performanţele. Printre cele mai cunoscute cifruri care folosesc criptarea cu chei publice exponenţiale se numără cifrul Rivest-ShamirAdleman (RSA), cifrul El Gamal, cifrul DSA (Digital Signature Algorithm), cifrul Pohling-Hellman (PH). 59

1.2.3.3 Rivest-Shamir-Adleman Cifrul a fost conceput şi realizat de trei cercetători, Ronald Rivest, Adi Shamir şi Leonard Adelman, de la Massachusetts Institute of Technology (MIT), şi are la bază generalizarea lui Euler a teoremei lui Fermat. Acest cifru este cel mai folosit pentru asigurarea confidenţialităţii mesajelor şi autentificarea acestora cu ajutorul semnăturii digitale. Se găseşte implementat (hardware sau software) în programele şi echipamentele unor firme de renume (Lotus, Novell, Motorola, Boeing, SWIFT Bank) sau chiar la nivelul agenţiilor guvernamentale (DoD, NA). Se va proceda la criptarea blocului de mesaj M, M ∈ (0, n-1), calculând exponenţialele: C = Me(mod n), unde n = p*q, cu p şi q două numere prime mari astfel încât să fie greu de determinat ϕ(q) = (p-1)*(q-1). (indicatorul lui Euler). Numerele p şi q rămân secrete. La decriptare, M = Cd(mod n). parte dintre cheile pentru criptare e şi decriptare d sunt alese cu grijă, în aşa fel încât (D(M)) = D(E(M)) = M.

60

cheile pentru criptare sunt de forma perechilor (e, n) entru criptare, şi (d, n) – pentru decriptate. Numărul e este relativ prim faţă de produsul (p-1) * (q-1). Numărul d se alege astfel încât să fie cuprins în intervalul [max(p, q) + 1, n-1] şi: d = e-1 (mod (p-1) * (q-1)) ; e * d = 1 mod (p-1) * (q-1). Cu d ales se va calcula e. Cheia d va fi ţinută secretă. Pentru o bună secretizare autorii recomandă folosirea a unor numere p şi q de 100 de cifre, ceea ce face ca n să fie de aproximativ 200 cifre, făcând imposibilă factorizarea. Se observă că cifrarea şi descifrarea sunt funcţii inverse. Se poate folosi cifrul RSA atât pentru cifrare, cât şi pentru autentificare. Utilizatorul A (expeditor-sursă) va obţine modulul nA, precum şi exponenţii eA şi dA. Se va înscrie în fişierul public cheia publică (nA, eA). Se păstrează secretă dA. Un utilizator (expeditor-sursă) va emite un mesaj secret utilizând transformarea: La destinaţie se va obţine mesajul clar aplicând transformarea: Se poate ca utilizatorul A să poată semna un mesaj către B calculând: B va autentifica acest mesaj, utilizând cheia publică a lui A astfel: Problemele apar atunci când se doreşte transmiterea unui mesaj criptat şi în acelaşi timp şi autentificarea acestuia. În acest caz se vor aplica transformări succesive cu module diferite. 61

Mesajul transmis de către A (expeditor-sursă) lui B (destinaţie), se va calcula: C = EB(DA(M)). La destinaţie se va calcula: EA(DB(C)) = M.

Exemplu: Criptarea Mesajul clar este M = (SECRET). p = 53 q = 61, p şi q rămân secrete. Se obţine: n = p * q = 53*61 = 3233 (p-1) * (q-1) = 52*60 = 3120. Alegem cheia privată: d = 791. Calculăm cheia publică: d = e-1 (mod (p-1) * (q-1)) ; e * d = 1 mod (p-1) * (q-1) 791 = e-1 (mod (3120)) ⇒ e = 71. Împărţim mesajul M = (SECRET) în blocuri de câte două caractere: (SECRET) ⇒ (SE CR ET) Atribuim fiecărui grup valorile corespunzătoare poziţiei în alfabetul cu 26 de semne (din tabloul lui Vigenere): S E C R E T 18 04 02 07 04 19 (SECRET) ⇒ (SE CR ET) ⇒ (1804 0217 0419) Se criptează fiecare bloc cu formula C = Me(mod n): C’ = 180471(mod 3233) = 2503 C’’ = 021771(mod 3233) = 1254 C’’’ = 041971(mod 3233) = 2509 Va rezulta mesajul criptat C = (C’, C’’, C’’’) = (2503 1254 2509) Decriptarea 62

Avem mesajul criptat: C = (2503 1254 2509) Folosim transformarea: M = Cd(mod n). Vom obţine folosind decriptatea pentru fiecare bloc component şi realizând corespondenţa cu alfabetul: M’ = 2503791(mod 3233) = 1804 ⇒ (18 04) ⇒ ( S E ) M’’ = 1254791(mod 3233) = 0217 ⇒ (02 17) ⇒ ( C R ) M’’’ = 2509791(mod 3233) = 0419 ⇒ (04 19) ⇒ ( E T ). Regrupând textul vom avea: M = (SECRET).

Vom folosi datele anterioare, unde: p = 53 q = 61 e = 71 d = 791 şi rezumatul mesajului criptat calculat cu funcţia de hash (funcţia de hash realizează un rezumat al mesajului care este trimis destinatarului) H (H ∈ (0, n-1): H = (250312542509) (în cazul nostru identic cu M pentru uşurarea calculelor). Se împarte mesajul în trei blocuri distincte care să nu depăşească valoarea lui n: H = (2503 1254 2509). Expeditorul (A) va semna blocurile separat cu cheia să secretă (e = 71) şi formula: S’ = 250371 mod 3233 = 1133 S’’ = 125471 mod 3233 = 1498 63

S’’’ = 250971 mod 3233 = 2371. Se obţine în final semnătura: S = (1133 1498 2371). Destinatarul (B) va autentifica acest mesaj, utilizând cheia publică a lui A (d = 791) şi formula astfel: . Sd’ = 1133791 mod 3233 = 2503 Sd’’= 1498791 mod 3233 = 1254 Sd’’’ = 2371791 mod 3233 = 2509. Asamblând se obţine: Sd = (250312542509) ≡ H. Deci semnătura este autentică.

1.2.3.4 Cifrul El Gamal (EG) Este derivat din schema de distribuţie a cheilor a lui Diffie şi Hellman. Îşi bazează tăria criptării pe dificultatea calculării logaritmilor în câmpuri Galois mari. Este folosit doar pentru implementarea semnăturii electronice. Fiecare utilizator va dispune de o cheie privată KA(priv) care este un număr natural aleatoriu şi de o cheie publică KA(publ). Cheia publică se obţine din cheia privată în felul următor: , unde a este o constantă a sistemului cunoscută de toţi partenerii, iar n este un număr prim mare cu sute de cifre zecimale. M este un document electronic ce urmează să fie semnat electronic. H(M) este rezumatul documentului calculat cu funcţia de hash H (H ∈ (0, n-1).

64

Semnarea documentului Semnarea unui document se face de către utilizator (expeditor) cu cheia sa secretă KA(priv). Orice utilizator va putea să verifice semnătura pe baza cheii publice a expeditorului. Semnarea unui document M se face în modul următor:  se calculează rezumatul documentului cu ajutorul funcţiei de hash H, H(M);  se generează aleator KA(priv) în intervalul [0, n-1], a. î. cmmdc (KA(priv), n-1) = 1; se calculează ; se calculează, cu ajutorul cheii secrete a expeditorului, valoarea lui s din ecuaţia H(M) = KA(priv) * r * s (mod (n-1)). Semnătura mesajului M va fi reprezentată de perechea S = (r, s).  

Verificarea semnăturii Destinatarul va primi la recepţie atât mesajul M, cât şi semnătura electronică S = (r, s) a acestuia şi trebuie să verifice autenticitatea semnăturii. Pentru verificare trebuie calculate următoarele: aH(M) mod n şi (KA(priv))r * rs mod n. Dacă aceste două valori sunt egale, atunci semnătura este veridică şi deci mesajul este autentic. Exemplu

65

Alegem n = 467 şi a = 2. Cheia privată a expeditorului va fi KA(priv) = 127. Calculăm cheia publică a expeditorului Mesajul transmis M va avea rezumatul H(M) = 100. Expeditorul alege un K = 213, aleator astfel încât cmmdc (213, 466) şi K-1 mod 466 = 431. Se calculează semnătura electronică a documentului cu ajutorul cheii secrete a expeditorului: r = aK (mod n) = 2213 mod 467 = 29 şi s = (H(M) - KA(priv) * r) * K-1 (mod n-1) = (100127*29)*431*(mod 466) = 51. La recepţie se verifica semnătura S = (r, s). Vom calcula aH(M) mod n şi (KA(priv))r * rs mod n. aH(M) mod n = 2100 (mod 467) = 189 (KA(priv))r * rs mod n = 132292951 (mod 467) = 189. Cum cele două numere sunt egale, semnătura este validă.

1.2.3.5 Cifrul Digital Signature Standard (DSS) Digital Signature Algorithm reprezintă standardul de semnătură digitală al cifrului DSS. A fost elaborat de NIST (National Institute of Standard & Technology) în anul 1991. Foloseşte metoda El Gamal şi aceasta îşi bazează tăria pe imposibilitatea calculării logaritmilor în câmp finit. Se încearcă impunerea standardului în locul celui RSA, construindu-se chiar un chip care implementează algoritmul. Se dispune de un set de parametri globali şi de un set de parametri privaţi. Parametrii globali sunt: p - un număr prim cuprins în intervalul (2511;2512)-512 biţi; q - un divizor al lui (p-1) -160 biţi, q în (2159, 2160); 66

g - un număr întreg cu proprietatea că g = h(p-1)/q mod p, în care h este un întreg relativ prim cu p, h în (0, p) astfel încât h (p-1)/q mod p>1; H - funcţia hash de calcul al rezumatului unui mesaj. Parametrii specifici fiecărui utilizator sunt: KA(priv) - cheia privată a utilizatorului A, un întreg în (0;q); KA(publ) - cheia publică, număr întreg, obţinută astfel: . Pe lângă mesajul semnat M, care va fi transmis, ca o particularitate avem un număr k, întreg aleatoriu, cuprins în intervalul (0;q) care se modifică la fiecare semnătură. Semnarea documentului Semnarea documentului presupune determinarea perechii S = (r, s). Aceasta se face folosind cheia secretă a emitentului KA(priv) . Se alege un întreg k în intervalul (0, q) prim cu q. Se va calcula; r = (gk mod p) mod q. s = ((k-1) (H(M) + KA(priv) *r)) mod q. Verificarea semnăturii Receptorul documentului electronic primit, însoţit de semnătură, va efectua următoarele operaţii:  va calcula w = s-1 mod q (s trebuie să fie inversabil);  va calcula r’ = g(H(M) * w * KA(publ)r*w mod p) mod q. Dacă r’ = r, atunci semnătura este validă şi deci documentul este autentic.

67

Exemplu Alegem q = 101 şi p = 78q + 1 = 7879. Întrucât 3 este rădăcina primitivă a lui Z7879, se calculează: g = 378 mod 7879 = 170 KA(priv) = 76. Se calculează cheia publică . Expeditorul (A) va semna un document, care are rezumatul H(M) = 1234, pe care-l va trimite către destinaţie (B). Alege o constantă k = 50 drept parametru al semnăturii şi calculează următoarele: k-1 mod 101 = 99 Acum va calcula cele două elemente ale semnăturii (r, s): r = (gk mod p) mod q = (17050 mod 7879) mod 101 = 2518 mod 101 = 94. s = ((k-1) (H(M) + KA(priv) *r)) mod q = (1234 + 75 * 94) mod 101 = 97. La destinaţie se va verifica perechea (r, s) de către destinatar în felul următor cu ajutorul cheii publice a expeditorului: w = s-1 mod q = 97-1 mod 101 = 25 r’ = g(H(M) * w * KA(publ)* r*w mod p) mod q H(M) * w mod q = 1234 * 25 mod 101 = 45 r*w mod p = 94 * 25 mod 101 = 27 r’ = (17045 * 456727 mod 7879) mod 101 = 2518 mod 101 = 94. Cum r’ = r, semnătura este validă. Implementarea hardware a fost făcută cu ajutorul cipului CLIPPER. Cipul este produs de către AT&T, arhitectura este proiectată de MYKOTRONIX, iar specificaţiile sunt dictate de 68

NSA (National Security Agency). Este un chip care poate rezista cu succes tentativelor de decodare. Poate procesa 15-20MB/s atât la criptare, cât şi la decriptare o dată ce a fost stabilită sincronizarea cu receptorul/emiţătorul.

1.2.4 Sisteme de criptare de tip rucsac (knapsack) Din această categorie de sisteme de criptate fac parte cifrurile Merkle-Hellman, Cifrul Graham-Shamir şi Cifrul Shamir.

1.2.4.1 Cifrul Merkle-Hellman (MH) Cunoscând greutăţile elementelor componente care se află într-un rucsac şi greutatea rucsacului închis, să se determine setul de elemente fără a se proceda la deschiderea rucsacului (rucsac = knapsack). Acesta ar fi enunţul problemei. Fiind dat un întreg pozitiv T şi un vector A = (a1, a2, a3, ., an) de numere întregi pozitive, trebuie găsit un subset al lui A (V) a cărui sumă să fie egală cu T. T = Σaivi, unde V = (v1, v2, v3, ., vn) de numere binare. Exemplu: Să luăm A = (17, 38, 73, 4, 11, 1) şi T = 53. Se caută un element al vectorului V la care Σaivi = 53. Să încercăm cu primul element 17 (a1) ⇒ (53-17) = 36. 38 (a2) este mai mare decât 36 şi 1 + 4 + 11<36. 69

Să încercăm cu al doilea element 38 (a2) ⇒ (53-38) = 15. 4 + 11 = 15. Σaivi = (1*38) + (1*4) + (1*11) = 53. Deci vectorul căutat este V = (0, 1, 0, 1, 1, 0). Căutarea va fi îngreunată dacă A are un număr mare de elemente şi dacă elementele ai au de asemenea valori mari. O altă rezolvare se poate face în felul următor parcurgând paşii:  se ordonează crescător elementele vectorului A;  se alege T şi se testează dacă ai (i = n...1) se potriveşte;  dacă se potriveşte, atunci i se va asigna în vectorul V valoarea vi = 1, iar dacă nu se asignează, valoarea vi = 0;  se înlocuieşte an cu an-1;  se continuă operaţia până ce toate elementele au fost testate. Exemplu: A = (17, 38, 73, 4, 11, 1), se ordonează şi rezultă 4, 11, 17, 38, 73). T = 53 ⇒ Nu se potriveşte ⇒ Asignăm An = 73 ⇒ T = T-an-1 = 15 ⇒ Asignăm An-1 = 38 ⇒ Nu se potriveşte ⇒ Asignăm An-2 = 17 ⇒ T = T-an-3 = 15 ⇒ Asignăm An-3 = 11 ⇒ T = T-an-4 = 15 ⇒ Asignăm An-4 = 4 ⇒ Nu se potriveşte ⇒ Asignăm An-5 = 1

A = (1, 0 1 0 1 1 0

Vectorul căutat va fi V = (0, 1, 0, 1, 1, 0) (similar cu rezultatul anterior). Cifrarea Merkle-Hellman foloseşte şi aritmetica modulară alături de teorema lui Fermat pentru rezolvarea problemei. De asemenea, cifrarea Merkle-Hellman poate fi făcută la modul simplu (anterior) sau variante mai complexe, 70

cum ar fi cifrarea Merkle-Hellman cu trapă aditivă sau cu trapă multiplicativă. Conform Teoremei lui Fermat: Pentru orice număr prim p şi orice element asm);  se înlocuieşte orice întreg ai din algoritmul simplu cu valoarea hi = w*ai mod n. Exemplu: A = (1, 2, 4, 9) şi w = 15 h1 = 1*15 = 15 mod 17 = 15 h2 = 2*15 = 30 mod 17 = 13 h3 = 4*15 = 60 mod 17 = 9 h4 = 9*15 = 135 mod 17 = 16. Va rezulta vectorul H = (h1, h2, h3, h4) = (15, 13, 9, 16). Exemplificarea criptării şi decriptării folosind algoritmul Merkle-Hellman îmbunătăţit este prezentată în cele ce urmează. Se divide mesajul M în blocuri de m biţi (atâţia biţi câte elemente are vectorul A). Se utilizează algoritmul îmbunătăţit pentru crearea întregilor pozitivi T pentru fiecare grup de m biţi. 71

Exemplu: Criptarea Merkle-Hellman (knapsack) S = ( 1, 2, 4, 9) (cheie privată) H = (15, 13, 9, 16) (cheie publică). Alegem: w = 15 w-1 = 8 n = 17 m = 4. Mesajul de criptat este: P = 0100 1011 1010 0101 [0, 1, 0, 0] * [15, 13, 9, 16] = 13 [1, 0, 1, 1] * [15, 13, 9, 16] = 40 [1, 0, 1, 0] * [15, 13, 9, 16] = 24 [0, 1, 0, 1] * [15, 13, 9, 16] = 29. Mesajul criptat va fi E(P) = 13, 40, 24, 29. Decriptarea Merkle-Hellman (knapsack) S = ( 1, 2, 4, 9) (cheie privată) H = (15, 13, 9, 16) (cheie publică). Mesajul pentru decriptat va fi E(P) = 13, 40, 24, 29. Se apelează H = w * S mod n. Textul cifrat este de forma: C = H * P = w * S * P mod n. Trebuie găsit: w-1 * C = (w -1 * w) * S * P = S * P mod n. 13 * 8 = 104 mod 17 = 2 = [0100] 40 * 8 = 320 mod 17 = 14 = [1011] 24 * 8 = 192 mod 17 = 5 = [1010] 29 * 8 = 232 mod 17 = 11 = [0101]. 72

1.2.4.2 Cifrul Graham-Shamir (GS) Cifrul Graham-Shamir vine cu îmbunătăţiri menite să ascundă aşa-numitele proprietăţi de dominanţă ale cifrului Merkle-Hellman. Cifrul este mai sigur decât Merkle-Hellman, dar are dezavantajul că nu poate fi folosit decât pentru cifrarea datelor, nu şi în autentificare.

1.2.4.3 Cifrul Shamir (SH) Se poate spune că acest tip de cifru este complementar cifrului Graham-Shamir. El realizează doar procesul de autentificare neasigurând şi protecţia prin criptare. Este folosit doar în implementarea semnăturii digitale.

1.2.5 Sisteme de criptare cu chei publice bazate pe ecuaţii în câmp finit Din această categorie fac parte sistemele de criptare Brändstorm cu inele polinomiale, sistemele Pieprzyk cu inele polinomiale şi sistemele cu registre de deplasare. Criptarea Brändstorm este similară cu criptarea RSA, numai că aici, în loc de numerele foarte mari folosite, avem polinoame în câmp finit (cu coeficienţi binari în câmp finit). Criptarea Pieprzyk foloseşte o schemă Merkle-Hellman modificată utilizând inele polinomiale, plecând de la premisa că operaţiile definite în aceste inele sunt mai accesibile decât cele din inelul întregilor. Sistemele cu registre de deplasare au fost propuse de Niederreiter şi utilizează un registru de deplasare cu reacţie 73

(Feedback Shift Register . FSB) care generează o secvenţă întrun câmp finit, ceea ce îl face uşor de implementat.

1.3 Semnătura digitală Semnătura digitală reprezintă un atribut al unui utilizator sau proces, fiind folosită pentru recunoaşterea acestuia. Fie B un receptor de mesaj semnat de A. Semnătura lui A trebuie să satisfacă următoarele proprietăţi:  B să fie capabil să valideze semnătura lui A;  să fie imposibil pentru oricine, inclusiv B, să falsifice semnătura lui A;  în cazul în care A nu recunoaşte semnarea unui mesaj M, trebuie să existe un “judecător” care să poată rezolva disputa dintre A şi B. Semnătura digitală rezolvă atât problema autentificării emiţătorului, cât şi pe cea a autentificării datelor. Sistemele de autentificare cu chei publice permit o implementare simplă a semnăturilor digitale. Deoarece este deţinută doar de A, transformarea DA poate servi ca semnătură digitală pentru A. Receptorul B al mesajului M semnat (transformat prin DA) este sigur atât de autenticitatea emiţătorului, cât şi de aceea a datelor. Deoarece transformarea inversă este publică, receptorul B va putea valida semnătura. Procesele se desfăşoară astfel:  A semnează pe M calculând S = DA(M);  B validează semnătura lui A, verificând dacă EA(S) = M;  Un .judecător. rezolvă eventuala dispută dintre A şi B controlând dacă EA(S) conduce la M, în aceeaşi manieră ca şi B. Pentru crearea şi utilizarea unei semnături digitale se parcurg următorii paşi: 1. Crearea perechii de cheie publică şi cheie privată pentru expeditorul A. 74

2. Trimiterea cheii publice către receptorul B. 3. Expeditorul A creează un mesaj pentru destinatarul B şi foloseşte documentul ca dată de intrare pentru funcţia “hash”. 4. Expeditorul criptează rezultatul prelucrării documentului cu funcţia hash cu cheia proprie. Rezultatul este semnătura digitală. Funcţionarea schematică este exemplificată în figura următoare (figura 17).

Figura 17. Crearea unei semnături digitale Mesajul este trimis la destinaţie însoţit de semnătura digitală. Semnătura digitală trebuie să ateste că acesta este trimis de cel care pretinde. 5. Destinatarul va separa mesajul original de semnătura digitală. 75

6. Semnătura digitală este decriptată cu ajutorul cheii publice a expeditorului. 7. Documentului original i se aplică aceiaşi funcţie hash ca la expediţie. 8. Se compară dacă cele două rezultate, de la decriptarea semnăturii digitale cu cheia publică şi de la aplicarea funcţiei hash mesajului, sunt identice. Dacă se confirmă atunci mesajul este trimis de cel care pretinde. Utilizarea semnăturii digitale este exemplificata în figura următoare (figura 18).

Figura 18. Utilizarea semnăturii digitale. Semnătura digitală nu conferă confidenţialitate conţinutului mesajului. Ea doar autentifică că expeditorul este cel care pretinde că este. Semnătura digitală este diferită de semnătura electronică. Semnătura digitală reprezintă o prelucrare a unui mesaj, în timp ce semnătura electronică este o reprezentare electronică a semnăturii clasice.

76

1.4

Modalităţii criptografiei informatice

de

utilizare a în sistemele

→ Toate noile facilităţi implementate de către Microsoft în sistemele de operare Windows 2000/2003 se bazează pe metode criptografice pentru a asigura de la criptarea fişierelor şi până la securizarea informaţiilor transmise. Sistemele de operare Windows NT foloseau criptografia doar pentru criptarea parolelor. Versiunile ulterioare, începând cu Windows NT4, au adăugat noi facilităţi criptografice la sistemul de operare. Active Directory din Windows 2000/2003 reprezintă ultimele implementări menite să asigure o securitate sporită impusă de aplicarea politicilor de securitate la nivel de firmă. Pe lângă acestea mai există şi programe sau dispozitive hardware care implementează criptarea în sistemele de calcul. → În cadrul sistemelor informatice economice criptografia se face simţită la următoarele niveluri:  hardware;  aplicaţie;  transmisie de date;  fişiere şi foldere.  → Criptarea hardware este foarte costisitoare, din care cauză este cu precădere folosită de marile firme. Criptarea şi decriptarea datelor de pe suporturile de memorie trebuie să se facă în timp real. Din această cauză, componentele care fac ca preţul acestor dispozitive să fie ridicat sunt create cu ajutorul noilor tehnologii de fabricaţie. Aceste dispozitive speciale, de regulă ataşate suporturilor de memorie, fac criptarea la nivel de sector de pe disc. 77

Dispozitivele de criptare din această categorie folosesc implementări hardware de algoritmi complecşi de criptare, cu chei de criptare care depăşesc 128 de biţi. În ultimul timp se observă un transfer de tehnologie de criptare hardware şi către piaţa medie. Ca exemplu, firma taiwaneză Abit (www.abit.com.tw) livrează pe piaţă, alături de placa de bază Abit IC7-MAX3, şi un dispozitiv hardware de criptare a datelor de pe discul dur. Acesta se interpune pe panglica IDE (Intelligent Drive Electronics sau Integrated Drive Electronics. Standard de conectare a suporturilor de memorie magnetică) între discul dur şi placa de bază. Codarea şi decodificarea datelor la scriere şi la citire este făcută de către a treia generaţie de cipuri de tipul XWall LX-xxx (numărul de biţi folosiţi la criptare; valorile sunt 40, 64, 128 şi 192 de biţi) ASIC (Application Specific Integrated Circuit) produs de eNova Technology (www.enovatech.net). Aceste cipuri criptează şi decriptează în timp real întreaga informaţie de pe discul dur, incluzând sectorul de boot, fişierele temporare, fişierele swap şi fişierele sistem, utilizând algoritmi de criptare DES (Dată Encription Standard) şi TDES (Triple DES) certificaţi de către NIST (National Institute of Standard and Technology). Criptarea poate fi extinsă şi asupra altor suporturi de memorie, firma eNova Technology producând şi dispozitive similare pentru unităţile de disc flexibil. Schema de funcţionare a unui astfel de dispozitiv este următoarea (figura 19):

78

Figura 19. Schema de funcţionare a dispozitivului X-Wall LX-xxx. Cheia de securitate, de tipul unei memorii stick, este folosită doar la pornirea calculatorului, putând apoi fi scoasă până la o nouă pornire, când se cere introducerea acesteia întrun local special de tip USB (Universal Serial Bus). Această cheie conţine codul DES/TDES folosit la criptare. În funcţie de lungimea cheii de criptare, şi evident de arhitectura internă şi viteza de lucru a chipului, se pot distinge cinci tipuri de modele constructive ale acestuia (tabelul 5). Tabelul 5. Tipuri de modele constructive de chip X-Wall LX.

  

Avantajele folosirii acestor dispozitive sunt: sunt compatibile cu toate sistemele de operare; nu necesită instalare de programe suplimentare; nu încărca microprocesorul sau memoria internă; 79

compatibil cu toate discurile IDE care au capacităţi până la 180GB;  permite rate de transfer real de 1,6 Gb/sec. se poate folosi şi pe matrice RAID (Redundant Array of Independent (or Inexpensive) Disks, categorie de interfeţe şi drivere de disc ce permite conectarea a două sau mai multe discuri pentru reducerea erorilor de stocare şi sporirea performanţelor) 0,1 sau 0 + 1. Dezavantajele folosirii unui astfel de dispozitiv sunt:  la instalare se cere efectuarea operaţiilor de FDISK şi FORMAT asupra discului dur, datele existente trebuind să fie salvate (backup);  se poate cripta doar un singur disc dur;  sistemul dispune de backdoors (în caz că se pierde cheia de criptare). Interfeţele de criptare care folosesc algoritmi TDES folosesc chei de criptare complexe, performanţele fiind mult mai ridicate faţă de modelele comerciale. 

→ Criptarea la nivel de aplicaţie este folosită în pachetele de programe produse şi livrate de marile firme producătoare de software din domeniu. Criptarea datelor poate fi făcută implicit de către aplicaţia respectivă sau se poate activa această facilitate de către utilizator. Un exemplu este oferit de aplicaţia Ciel Contab, care permite criptarea fişierelor de date specifice programului. Activarea opţiunii de criptare se face de către superutilizator (Superutilizatorul în această accepţiune este persoana care are drept de administrare şi configurare a programului) din meniul de configurare al programului (Configurare → Opţiuni de utilizare → Diverse → Criptare fişiere) pe societatea (firma) respectivă (figura 20). Fişierele de date criptate sunt XECR1.DBF şi XECR2.DBF. Acestea sunt de fapt fişierele care conţin datele senzitive ale firmei. Criptarea rezistă doar la acţiunea cu SGBD-uri mai vechi 80

asupra fişierelor. Pentru SGBD-urile mai noi criptarea este inutilă.

Figura 20. Configurare program Ciel Contab (DOS) pentru opţiunea de criptare fişiere → Criptarea la nivelul transmisiei de date poate fi făcută prin criptarea legăturii sau prin criptarea datelor. Criptarea legăturii este asigurată implicit de protocoalele de comunicare în reţea sau de cele din Internet. Secure Socket Layer (SSL) reprezintă un protocol Web securizat dezvoltat de firma Netscape Communications care asigură criptarea pentru comunicările realizate între oricare două calculatoare din Internet prin intermediul protocolului universal folosit . TCP/IP. SSL se bazează pe criptarea cu cheie publică (PKI) şi funcţionează în două etape: într-o primă etapă se stabileşte 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ă: 81

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 asociaţia 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 comerţul electronic şi permite realizarea de tranzacţii financiare confidenţiale şi operaţii comerciale pe cale electronică. Implementări similare au fost dezvoltate şi pentru sistemele de poştă electronică: S/MIME sau PGP/MIME . Majoritatea aplicaţiilor de poştă electronică folosesc criptarea pentru asigurarea confidenţialităţii. Un exemplu elocvent este Outlook-Outlook Express, care foloseşte atât criptarea, cât şi semnătura digitală ca modalităţi de securizare şi autentificare a informaţiei (figura 21). 

Figura 20. Opţiunile de semnătură digitală şi criptare la Outlook Express. Pentru a folosi însă aceste facilităţi este nevoie de existenţa unei identificări digitale (Digital ID). Aceasta poate fi 82

obţinută de la una din firmele specializate, cum ar fi: VeriSign, GlobalSign, BT sau ThawteCertification → PGP - Pretty Good Privacy este creat de Phil Zimmerman (a fost publicat în 1995) ca un pachet complet de securitate pentru criptare fişiere şi poştă electronică, ce oferă mecanisme de confidenţialitate, autentificare, semnături digitale şi compresie, într-o formă uşor de utilizat. PGP foloseşte ca algoritm de criptare RSA şi este distribuit gratuit prin Internet, sisteme de informare în reţele şi reţele comerciale, fiind utilizabil pe platformele MSDOS/Windows, UNIX şi Macintosh. Versiunile comerciale ale programului asigură pe lângă criptare fişiere şi securizare poştă electronică şi criptarea discurilor. Versiunea gratuită a programului poate fi descărcată de la adresa: http://www.pgp.com/products/freeware.html. În mod intenţionat, PGP se bazează pe algoritmi de criptare existenţi. Sistemul foloseşte amprente locale de timp (preia din sistem anumite caracteristici hardware şi software la un anumit moment pe care le foloseşte ca date de intrare pentru crearea cheilor), iar în procesul de criptare se aplică şi algoritmul de compresie al cunoscutului program ZIP (creat de Ziv şi Lempel, 1977). Pentru asigurarea unei securităţi adecvate, utilizatorul poate alege lungimea cheii de criptare obişnuită (384biţi = 48B), comercială (512 biţi = 64B), militară (1024 biţi = 128B). În abordarea iniţială, o cheie de 2048 biţi = 256B era considerată inexpugnabilă, dar azi se discută şi despre chei de 4096 de biţi şi este foarte probabil ca resursele de calcul ale viitorului să poată “descifra” şi cifruri cu asemenea chei (figura 22).

83

Figura 22. Opţiuni în criptarea PGP PEM - Privacy Enhanced Mail (poştă cu confidenţialitate sporită) este un standard oficial Internet care asigură secretul şi autentificarea sistemelor de mail bazate pe standardul uzual. Există câteva diferenţe între modurile de abordare şi tehnologiile pachetului PGP, respectiv ale lui PEM. În procesul de codificare se foloseşte şi algoritmul DES, ceea ce este considerat “suspect” de specialiştii în codificare, ţinând cont de lungimea mică a cheii DES (56 de biţi). Cheile folosite de PEM sunt certificate de o autoritate de certificare, fiind valabile pentru o anumită perioadă, un utilizator şi o cheie publică. Practic, fiecare utilizator va folosi o asemenea cheie privată, specifică şi confidenţială, acordată şi validată după reguli riguroase de certificare; această cheie va fi folosită în paralel cu cheia publică. Politica autorităţilor de certificare este destul de complexă, existând o organizaţie ierarhică (cu trei niveluri). Astfel, administrarea cheilor este structurată după principii mai complexe decât în PGP. Evident, există şi un mecanism de revocare a cheilor (de exemplu, în cazul compromiterii lor), ceea ce face ca trimiterea unui mesaj să fie în mod necesar precedată de verificarea automată a celei mai recente liste de revocări. 84

În PEM, autentificarea este obligatorie, pe când în PGP este opţională. Paradoxal este însă faptul că PGP, care nu este un standard oficial, are acumulările Internet-ului, corespunzând principiilor nescrise care au dus la expansiunea acestuia, pe când standardul oficial PEM . mai puţin. Programul lui Zimmerman s-a dovedit a fi o soluţie foarte performantă şi, în plus, a fost distribuit gratuit, pe când PEM s-a dezvoltat în etape, folosind mai multe standarde Internet pentru diverse componente şi o structură organizaţională rigidă, pe cele trei niveluri, cu tipuri diferite de autorităţi de certificare şi completată cu reglementări oficiale de certificare. Implementările PEM au apărut mai târziu decât PGP şi s-au dovedit ceva mai puţin inspirate (din punct de vedere calitativ, cantitativ şi al disponibilităţii pe diverse platforme). De aceea, PGP a devenit un pachet tipic pentru Internet, mult mai larg folosit decât PEM. Norton Your Eyes Only este un program performant, care permite criptarea fişierelor şi controlul accesului la fişierele dintr-un calculator individual sau cuplat în reţea. Foloseşte un sistem de criptare cu chei de până la 512 biţi (versiunea pentru Europa) şi 2048 (versiunea pentru Statele Unite). Permite criptarea cu chei private sau chei publice folosind algoritmi de tip DES sau RC4. Programul mai oferă şi blocarea ecranului atunci când utilizatorul nu foloseşte calculatorul, prin opţiunea ScreenLock, precum şi posibilitatea de a se face încărcarea sistemului de operare de pe dischetă sau de pe alt disc, prin opţiunea BootLock. Boca - Data Secure este un program folosit pentru controlul accesului şi criptare. Metodele de criptare folosite sunt: DES, NEP1 (metodă de criptare foarte rapidă), NEP4 şi BlowFish. MailSafe al firmei RSA Data Security facilitează transmisia în siguranţă a datelor între două modemuri incluzând programe şi echipamente integrate. Deoarece la date trebuie să aibă acces mai mult de un utilizator, MailSafe foloseşte un sistem de chei publice şi private. 85

Utilizatorii care vor trimite date folosesc chei publice pentru a verifica semnătura digitală a destinatarului şi pentru cifrarea traficul pentru transmisie. Destinatarul foloseşte o cheie privată pentru a semna fişierele emise şi pentru a descifra mesajele primite. MailSafe foloseşte un sistem de meniuri pentru a selecta fişierele de transmis. Expeditorul creează chei publice şi private folosind utilitarul KeyGen. Acest proces instalează şi parolele utilizatorilor care pot avea până la 80 de caractere lungime. MailSafe nu poate folosi parola pentru a genera o cheie. În schimb, utilitarul KeyGen creează chei noi, în orice moment în care este apelat. MailSafe creează semnăturile digitale. Ca particularitate, MailSafe permite şi folosirea comună a cheilor publice. Dacă doi utilizatori doresc să cifreze fişiere pentru uz comun, ei pot îndeplini aceasta certificând cheile publice unul altuia. În consecinţă, cu toate că nici unul nu ştie parola celuilalt, mesajul poate trece înainte sau înapoi între cei doi utilizatori. MailSafe poate fi utilizat pe maşini folosite în comun de către mai mulţi utilizatori, fără compromiterea datelor utilizatorilor individuali. → Criptarea fişierelor de date (documente-text, baze de date şi spreadsheet-uri) este cea mai simplă modalitate de ascundere a conţinutului real al fişierelor. Nu trebuie făcută însă confuzie între criptarea propriu-zisă a unui fişier şi ascunderea conţinutului acestuia. Dacă conţinutul unui fişier nu poate fi citit atunci când se încearcă deschiderea acestuia nu înseamnă că acest fişier conţine date criptate. Această confuzie este deseori întâlnită la aplicaţiile de birou MS Word şi MS Excel. Să luăm ca exemplu următorul text scris în MS Word: Acesta este un mesaj criptat. Fişierul cu acest conţinut a fost salvat cu opţiunile de restricţionare prin parolă la deschidere şi modificare. Folosind 86

un utilitar pentru vizualizarea conţinutului fişierului vom putea să vedem textul ascuns (figura 23).

Figura 23. Evidenţierea conţinutului fişierului MS Word. Unul dintre cele mai rapide şi ieftine exemple de cifrare a fişierelor este File Encrypt al firmei Wisdom Software. Acesta foloseşte Data Encryption Standard (DES) pentru a cifra fişiere, simplu şi rapid. File Encrypt este un criptosistem convenţional cu o singură cheie, scris în limbaj de asamblare. Secret-Disk-II al firmei Lattice, pe lângă cifrarea datelor selectate, creează şi un disc invizibil unic unde memorează fişierele criptate. Puteţi cripta fişiere folosind ori algoritmul DES ori algoritmul FAST ale firmei Lattice. Avantajul lui FAST este, evident, viteza sa. Discurile logice invizibile ale lui Secret-Disk-II conţin doar datele cifrate în fişierele ascunse. O singură parolă este folosită pentru blocarea şi deblocarea discurilor secrete. Chiar dacă un intrus descoperă existenţa şi zona discurilor secrete cu un utilitar de lucru cu discul, fişierele sunt criptate. Dezactivarea comenzii DELETE face imposibilă ştergerea accidentală a fişierelor. 87

→ Există şi programe de criptare care garantează o securitate prin criptare care rezistă la un atac de decriptare un număr de 1032ani. Este vorba de programul Cypherix ⊗SECUREIT 2000 al firmei Secure Soft (India) Pvt. Ltd (www.cypherix.com). Programul foloseşte pentru criptare 448 de biţi. Interfaţa de lucru cu utilizatorul este foarte prietenoasă (figura 24). Fişierele criptate o vor avea adăugată la extensia iniţială şi pe aceea de .SIT (Secure IT).

Figura 24. Programul de criptare Cypherix (interfaţa). → Unităţile de bandă magnetică folosite pentru operaţiile de salvări periodice de siguranţă oferă posibilitatea utilizatorului de a cripta datele care se vor salva. → O problemă care a apărut în cadrul firmei a fost aceea că angajaţii îşi criptau fişierele de lucru, iar atunci când era nevoie de datele din acestea, iar angajatul nu era la serviciu din diferite motive, era imposibil să se acceseze datele. Situaţia a fost rezolvată prin comunicarea acestora către conducere, care le folosea atunci când era nevoie (lucru destul de rar).

88

Capitolul II. Modalităţi de utilizare a programelor antivirus în cadrul firmei 89

2.1. Detectarea viruşilor Ce mai simplă şi mai la îndemână modalitate de a ne proteja împotriva programelor maliţioase este aceea de a folosi un program antivirus. Un program antivirus este un utilitar care detectează şi anihilează acţiunea programelor maliţioase. Programul antivirus va sesiza existenţa unui cod maliţios (virus) în calculator folosindu-se de amprenta (semnătura) lăsată de fiecare program maliţios (virus). O dată sesizată existenţa unui virus, programul antivirus va lansa în execuţie o subrutină, vaccinul, care va anihila acţiunea virusului. → Un program antivirus nu va putea detecta decât viruşii a căror semnătură sunt în baza lui de semnături. Trebuie ţinut cont de faptul că întâi apare virusul şi apoi antivirusul. → Producătorii de programe antivirus livrează periodic, la interval de câteva zile, noile semnături de viruşi. Actualizarea cu noile semnături este uşor de făcut dacă există o conexiune internet. Sunt şi producători care livrează actualizările folosind suporturi de memorie de tip disc flexibil sau compact disc. Este cazul firmei Kaspersky. → Teama de acţiunea viruşilor este aşa de mare încât, uneori, anumite subrutine de testare a autenticităţii unui program sunt luate drept viruşi. Este cazul procedurii de verificare de la programul Ciel Contab. Ulterior, acest neajuns a fost remediat. → Acţiunea programelor antivirus poate fi configurată de către utilizator de la stadiul de maximă protecţie (real time protection) până la stadiul de inactiv (disable). Evident că ultima stare este cea mai nefericită, aceasta este similară cu inexistenţa programului antivirus. Existenta activităţii sau inactivităţii programului antivirus poate fi evidenţiată prin icon-urile care apar în bara de .tray. la sistemele de operare de tip Windows.

90

2.2. Alegerea şi configurarea programului antivirus pentru firme Alegerea unui program antivirus este uneori dificilă datorită existenţei mai multor programe pe piaţă, dar şi datorită cerinţelor care trebuie îndeplinite de acestea. → Pentru alegerea unui program antivirus trebuie să ţinem cont de următoarele criterii de alegere:  platforma de lucru;  numărul de viruşi care pot fi detectaţi;  timpul de răspuns la un virus;  existenţa opţiunilor de scanare în reţea;  existenţa opţiunilor de scanare în e-mail;  protecţia împotriva scripturilor;  scanarea în fişiere comprimate;  existenţa suportului tehnic;  perioada de timp pentru care se livrează actualizări gratuite;  renumele firmei;  localizarea firmei producătoare sau a distribuitorului;  preţul. Este cunoscut faptul că programele antivirus sunt făcute să funcţioneze pe mai multe sisteme de operare. Unele firme producătoare livrează programe antivirus care funcţionează doar pe anume sisteme de operare, dar sunt şi programe antivirus care funcţionează pe mai multe platforme. Există mai multe reviste de specialitate care efectuează periodic un audit al acestor programe antivirus. Una dintre cele mai cunoscute este Virus Bulletin (www.virusbtn.com). Rezultatele testelor efectuate de către specialiştii acestei reviste pe diferite platforme sunt exemplificate în tabelul următor (tabelul 6): Mai multe date despre compatibilitate şi modul de efectuare a testelor se pot găsi la adresa: http://www.virusbtn.com/vb100/about/100procedure.xml. 91

Numărul de viruşi care pot fi detectaţi de un program antivirus are cea mai mare greutate în alegere. Cu cât acest număr este mai mare, cu atât posibilităţile de detectare şi anihilare cresc. Programele antivirus pot detecta peste 67.000 de viruşi şi variante ale acestora (conform cu Norton Antivirus). Timpul de răspuns necesar pentru crearea unui antidot împotriva unui virus este greu de estimat. Acesta poate fi aflat doar în cazul unor viruşi care au avut efecte majore. Timpul de răspuns depinde în foarte mare măsură de experienţa firmei. Existenţa opţiunilor de scanare în reţea este foarte importantă atât din punct de vedere al siguranţei şi actualizării, cât şi al costului. Vom trata acest aspect puţin mai târziu. Dacă calculatorul sau reţeaua au acces la Internet, posibilitatea de a scana e-mail-uri este foarte importantă, bine cunoscută fiind răspândirea viruşilor cu ajutorul Internetului. Similar şi opţiunea de protecţie împotriva viruşilor de script.

Tabelul 6. Teste comparative de funcţionare programe antivirus pe diferite platforme 92

93

Pentru ca un fişier de dimensiune mare să ajungă cât mai repede la destinaţie se recurge la comprimarea acestuia. Dimensiunea unui fişier comprimat este sensibil mai mică faţă de a celui iniţial (depinde de tipul de fişier. În anumite cazuri, poate să fie chiar mai mare). Dacă fişierul sursă conţine un virus, atunci şi fişierul rezultat va conţine şi el virusul. Din această cauză, existenţa acestei opţiuni este importantă. Existenţa suportului tehnic, telefon sau e-mail, este necesară atunci când se întâmpină probleme la instalare şi configurare. Este importantă atunci când instalarea este făcută de o persoană fără cunoştinţe în domeniu. De regulă, perioada de timp pentru care se livrează actualizări gratuite de către firma producătoare este de un an. Această perioadă poate fi prelungită prin semnarea unui contract de abonament. Renumele firmei trebuie luat serios în considerare atunci când se achiziţionează un program antivirus. Renumele firmei ţine atât de longevitatea acesteia pe piaţă, cât şi de clasamentele întocmite de firmele de specialitate. Localizarea firmei producătoare sau a distribuitorului trebuie luată în considerare dacă se doreşte o colaborare strânsă atunci când pot să apară incidente legate de acţiunea viruşilor şi când singura posibilitate de remediere este contactul direct între cele două părţi. De asemenea, localizarea firmei are un rol important în anumite situaţii particulare. Ca exemplu poate fi dat acela în care un virus este produs local, de angajat sau de către o altă persoană la nivel de judeţ sau de ţară. O firmă locală va putea să descopere şi să anihileze mai rapid virusul decât o firmă aflată la mii de kilometri distanţă. Preţul este foarte important atunci când numărul de calculatoare este mare. Din tabelul următor se observă că preţurile sunt comparabil egale (tabelul 7).

94

Tabelul 7. Principalele programe antivirus (comparaţii).

Sursa: www.antivirusebook.com/antiviruscomparison.htm → Să analizăm acum cheltuielile necesare achiziţionării de programe antivirus. Firma pe care am făcut testele este o firmă de mărime medie care are o reţea cu 22 de calculatoare cuplate în reţea (20 staţii de lucru şi 2 servere - Windows NT şi Linux). Achiziţionarea de programe antivirus pentru toate calculatoarele ar duce la un cost cuprins între 840 USD şi 1.050 USD (21 buc. X 40 USD şi 21 buc. X 50 USD, pe unul dintre servere rulează Linux - server de Internet). Suma este acceptabilă pentru această firmă. Achiziţionarea va fi făcută şi programele vor fi instalate pe cele 21 de calculatoare. În anumite situaţii, la achiziţionarea unui nou sistem de calcul, se livrează gratuit şi programele antivirus pentru nevoile locale. În ultimul timp, tot mai mulţi producători de plăci de bază (sau de calculatoare) livrează şi programe antivirus o dată cu produsul. Este cazul programelor antivirus Norton Antivirus (livrat separat sau integrat în Norton Internet Security) şi PC-cillin. În situaţia în care se folosesc programe antivirus care funcţionează separat pe fiecare calculator, atunci pot să apară disfuncţionalităţi în funcţionarea întregului mecanism de protecţie antivirus, şi anume:  actualizarea şi scanarea periodică de viruşi este lăsată la latitudinea angajatului;  este greu de urmărit acţiunea fiecărui program antivirus pe staţiile de lucru. 95

Este necesar să existe un program antivirus care să ofere un control centralizat, repararea fişierelor infectate, capacităţi de carantină pentru acestea şi posibilitatea de actualizare din Internet. În această situaţie, achiziţionând un program antivirus care să ofere aceste facilităţi, Norton Antivirus Enterprise/Corporate Edition, preţul total este de 1.050 USD (care include 21 de licenţe şi suportul de program pe compact disc). Suma este comparabilă cu cea anterioară, numai că în acest caz facilităţile sunt multiple:  protecţia şi monitorizarea de la o singură consolă;  scanează mesajele de e-mail atât la recepţionare, cât şi la transmisie;  recunoaşte aplicaţiile nesolicitate ca spyware şi adware;  identifică sursa în cazul anumitor atacuri;  alertează în cazul în care anumite calculatoare nu sunt conectate la reţea;  scanează în memorie şi opreşte procesele suspecte înainte ca acestea să cauzeze daune;  permite o detectare centralizată a nodurilor neprotejate din reţea. Achiziţionarea de către firmă a programului antivirus Norton Antivirus Enterprise/Corporate Edition a permis un mai bun control al viruşilor. Anterior acestei achiziţii, când se lucra cu diferite programe antivirus pe diverse calculatoare sau când actualizările nu erau făcute la zi, problemele generate de viruşi erau multiple. La o testare antivirus iniţială făcută cu Norton Antivirus am descoperit 10 calculatoare virusate dintr-un total de 22. Numărul de fişiere virusate era de ordinul sutelor la fiecare calculator. Din această cauză a trebuit să efectuez operaţia în două etape . pe grupuri de calculatoare. După terminarea completă a operaţiei am constatat că situaţia era identică cu cea iniţială. Această situaţie s-a datorat în mare parte strategiei de lucru folosite la devirusare. Existenţa resurselor partajate în reţea făcea ca după devirusare calculatoarele curate să se 96

reinfecteze la accesarea acestor resurse, în mare parte cu acordul utilizatorului. O altă cauză o reprezenta acţiunea utilizatorului neinstruit. Pentru a nu mai avea astfel de probleme am procedat la o scanare în afara orelor de program, la anularea resurselor partajate şi la anularea accesului la Internet. O dată cu instalarea unor sisteme de operare Windows XP care nu mai dădeau utilizatorului drepturi de partajare foldere sau fişiere, a folosirii noului pachet de program antivirus corect configurat şi a anulării conexiunii la Internet problemele datorate viruşilor s-au diminuat. Chiar şi viruşii de pe dischetele mai vechi nu mai constituiau o problemă deoarece programul a fost configurat pe acţiunea automată de devirusare (autorepair).

2.3. Reguli şi restricţii → Pentru a se evita o infecţie cu viruşi este necesar să fie impuse o serie de reguli şi restricţii în utilizarea calculatorului. Ca primă măsură se impune informarea şi instruirea personalului asupra măsurilor care trebuie luate. A doua măsură care se impune este configurarea corectă, hardware şi software, a calculatorului şi a reţelei. Un calculator corect configurat este vulnerabil dacă factorul uman nu este bine instruit şi conştient de consecinţele unei infecţii cu viruşi. De asemenea, personalul bine instruit nu poate să acopere golurile de securitate hardware şi software lăsate. → Principalele reguli şi restricţii care consider că se impun pentru a se evita o infectare cu viruşi sunt: 1) Instalarea şi rularea unui program antivirus foarte bun. Ce înseamnă aceasta? Un program antivirus bun sau foarte bun este acela care satisface cerinţele de securitate impuse. Dacă programul antivirus se instalează local şi dacă pe acel calculator nu se rulează programe de poştă electronică, atunci nu trebuie luată în considerare facilitatea de scanare e-mail. Dacă în 97

schimb calculatorul respectiv este conectat la Internet şi se face browsing, atunci cerinţele sunt foarte mari. Nu este suficient ca un program antivirus să detecteze foarte mulţi viruşi. Este important să detecteze şi să anihileze virusul care încearcă să infecteze acel sistem. 2) Actualizarea periodică a programului antivirus cu noile facilităţi, dar mai ales cu noile semnături de viruşi. Actualizarea poate fi făcută manual, periodic de către utilizator sau poate fi configurată pe opţiunea automată 3) Actualizarea programelor de e-mail şi a web browserelor cu noile “patch”-ur (patch - petic. Îmbunătăţire ulterioară adusă unui program care prezină goluri de securitate în funcţionare) sau .fix.-uri (Fix - reparaţie ) Este bine cunoscută exploatarea golurilor de securitate din aceste programe de către viruşii care se folosesc de Internet pentru a se propaga. Actualizarea acestor programe micşorează posibilitatea de infectare. 4) Configurarea optimă a programelor de e-mail şi a web browserelor. Ca nivel de securitate, acestea sunt configurate implicit pe opţiunea Medium (mediu), dar pot fi configurate pe niveluri mult mai ridicate. De asemenea, se poate configura şi restricţionarea anumitor site-uri. Aceste opţiuni pot fi configurate, la sistemele de operare Windows, din Control Panel → Internet Option → Security, Privacy şi Advanced (figura 25).

98

Figura 25. Configurarea opţiunilor de securitate în Windows. 5) Nu se fac descărcări (download) de programe din surse dubioase. Actualizările de programe trebuie să se facă numai de pe site-ul producătorului şi nu din alte surse. 6) Nu se deschid fişierele ataşate la e-mail dacă acestea nu provin de la o sursă de încredere. Regula de bază este: .nu deschide un attachement care vine de la o persoană pe care nu o cunoşti.. Programele de poştă electronică au posibilitatea de a bloca accesul la e-mail-uri care par “dubioase”. În programul Outlook Express 6 acest lucru poate fi făcut din opţiunile: 99

Tools → Option → Security, unde trebuie bifată opţiunea Do not allow attachements to be saved or opened that could potentially be a virus (Blochează deschiderea sau salvarea fişierelor ataşate care pot fi/conţine viruşi) (figura 26).

Figura 26. Blocarea opţiunilor de deschidere automată a fişierelor ataşate. 7) Atenţie la e-mail-urile şi site-urile de tip păcăleală. Nu se va da curs ferestrelor apărute în timp ce faci browsing şi care-ţi propun un câştig în bani sau bunuri dacă execuţi click pe OK / Yes sau care conţin mesaje alarmiste referitoare la securitatea 100

calculatorului tău. Nu se vor retrimite e-mail-uri primite către cunoscuţi cu urarea că vei avea noroc dacă faci asta. 8) Scanarea de viruşi. Această acţiune poate fi făcută manual sau poate fi făcută automat de către program prin configurarea acestuia ca la pornire sau la o anumită dată, periodic, să facă acest lucru. Orice nou suport de memorie accesat (disc flexibil, CDROM, pendrive etc.) trebuie să fie scanat. La majoritatea programelor antivirus opţiunea este automată. 9) Dezactivarea lui ActiveX din opţiunile browserului de Internet (figura 27).

Figura 27. Dezactivarea lui ActiveX din opţiunile browserului de Internet. 10) Dezactivarea lui Windows Script Host (WSH) pentru a se preîntâmpina infectarea cu viruşi de script (extensia .VBS) 11) Activarea opţiunii de protecţie la viruşi de macro (Macro Virus Protection) în Microsoft Office (figura 28).

101

Figura 28. Activarea opţiunii de protecţie la viruşi de macro. 12) Achiziţionarea unui firewall. 13) Salvarea periodică a datelor (backup). 14) Informarea permanentă asupra acţiunii viruşilor. Acest lucru poate fi făcut din publicaţiile de specialitate sau din atenţionările periodice trimise de firmele din domeniu.

102

Capitolul III. Folosirea dispozitivelor firewall în cadrul firmei 3.1. Principii Implementarea unui sistem firewall reprezintă măsura de securitate cea mai avansată care poate fi implementată. Un firewal este considerat ca fiind prima linie de protejare a informaţiilor private. Termenul de firewall (zid de foc) este folosit pentru prima dată la începutul anilor 1700 de către muncitorii forestieri pentru a proteja pădurile de propagarea incendiilor. Aceştia efectuau o degajare în masa copacilor şi în acest fel focul nu mai putea să se propage. Acelaşi termen este folosit în industrie, în construcţia de locuinţe, hale industriale, depozite şi este folosit şi în industria IT&C. Un firewall este un sistem folosit pentru implementarea politicii de control a accesului într-o organizaţie sau între organizaţii. Acesta va proteja un calculator sau o reţea împotriva accesului neautorizat. Firewall-ul va crea un singur punct de legătură cu o reţea care va putea să fie nesigură. În acest fel se vor concentra toate resursele spre apărarea acelui punct de trecere (gateway). Un firewall este constituit dintr-un calculator sau din mai multe calculatoare, împreună cu programele asociate, care vor asigura politica de control a accesului. Firewall-ul va permite sau va interzice traficul dintr-o parte în alta a sa. Traficul care poate să treacă sau să nu treacă prin firewall poate fi între două sau mai multe reţele sau între două sau mai multe calculatoare. Firewall-ul va putea să separe traficul dintre diferitele compartimente ale firmei sau să separe traficul din interiorul firmei de Internet. Un singur dispozitiv firewall poate fi folosit 103

pentru a se crea partiţii logice la nivelul firmei. În această situaţie se impune ca tot traficul, inclusiv cel de Internet, să treacă printrun singur server. De regulă, acel server este serverul central (figura 29).

Figura 29. Modul de acţiune al unui dispozitiv firewall Politica de securitate poate fi implementată cu ajutorul firewall-ului folosind una dintre cele două metode fundamentale:  ce nu este în mod expres specificat ca fiind permis este interzis;  ce nu este în mod expres specificat ca fiind interzis este permis. Prima strategie este cea mai sigură, aceasta asigurând doar trecerea pachetelor care sunt specificate. A doua strategie este mai permisivă, dar şi mai nesigură. Protecţiile asigurate de un firewall sunt următoarele:  protejarea împotriva serviciilor şi protocoalelor nesigure; 104

protejarea informaţiilor despre utilizatori prin ascunderea adreselor de reţea;  creează fişiere jurnal care vor asigura auditarea reţelei;  permite avertizarea în cazul unor tentative de intruziune;  în cazul în care sunt mai multe dispozitive firewall într-o reţea care are acces la internet, se poate permite o evidenţă centralizată a reţelei faţă de exterior. Nici o reţea de firmă ataşată la Internet nu va putea să fie în totalitate sigură. Întotdeauna vor exista goluri care vor fi exploatate de hackeri. În aceste situaţii, un firewall nu poate să facă faţă următoarelor tipuri de atacuri: o provenite din interiorul firmei. Un angajat din firmă va putea să atace reţeaua locală cunoscând caracteristicile acesteia; o anumite categorii de viruşi, cai Troieni, Backdoors; o dezvăluiri de conturi şi parole prin metoda .social engineering.; o atacuri folosind conexiunile prin modem. O conexiune modem este bidirecţională, lucru care uşurează mult munca unui hacker. 

105

3.2. Tipuri de dispozitive firewall Pe piaţă există mai multe variante de dispozitive firewall comerciale. În esenţă acestea se pot clasifica în dispozitive firewall: o de nivel reţea; o de aplicaţie; o hibride. În literatura de specialitate aceste tehnologii mai sunt cunoscute şi sub numele de filtrarea pachetelor (pachet filters), porţi de aplicaţii (applications gateways) şi inspectarea completă a pachetelor (stateful pachet inspection). Dispozitivele firewall de nivel reţea sau cu filtrarea pachetelor folosesc ca componentă hardware router-ele. Regulile referitoare la acces vor fi definite la nivel de router. În funcţie de politica implementată de firewall, unele pachete (numite şi datagrame) vor fi admise, iar altele vor fi respinse în funcţie de setul de reguli codificate de software-ul care rulează pe firewall (figura 30)

Figura 30. Dispozitivele firewall de nivel reţea. 106

    

Fitrarea se va face ţinând cont de următoarele criterii: adresa IP a sursei; adresa IP a destinaţiei; numărul portului TCP sau UDP (User Datagram Protocol . protocol de comunicaţie similar cu TCP/IP) al sursei; numărul portului TCP sau UDP al destinaţiei; identificatorul de protocol care se găseşte rezident în header-ul IP. Un exemplu de regulă firewall poate fi următorul:

Nu toate router-ele pot să filtreze anumite porturi, deşi majoritatea fac acest lucru. Uneori aceasta filtrare este dependentă de sistemul de operare care rulează pe router. Dispozitivele firewall de nivel aplicaţie folosesc tehnica de substituire sau intermediere a aplicaţiilor sau proxy (application-proxy firewall), denumit uneori şi poartă de aplicaţie (application gateway). Acest tip de firewall are funcţionare diferită faţă de tipul bazat pe router şi filtrarea de pachete. Porţile de aplicaţie sunt bazate pe componente software. Încercarea de conexiune de la distanţă a unui utilizator va fi blocată şi se vor examina diferitele câmpuri ale cererii. Dacă se îndeplinesc un set de reguli predefinite, poarta creează o punte (bridge) între gazdă de la distanţă şi cea internă. Într-o schemă care foloseşte o aplicaţie gateway, pachetele IP nu sunt transferate mai departe în reţeaua internă, ci sunt translatate având poarta ca interpretor. Această configuraţie mai este denumită şi configuraţie cu intermediar (man-in-the-middle configuration) (figura 21).

107

Figura 21. Dispozitivele firewall de nivel aplicaţie. Avantajul modelului proxy, cu poarta de aplicaţie, este lipsa transferului de pachete IP (forwarding). Avantajul important este acela că pe conexiunea astfel intermediată se pot folosi mai multe tipuri de controale. Un alt avantaj este acela că astfel de instrumente oferă opţiuni şi posibilităţi de înregistrare foarte avansate ale traficului. Dezavantajul modelului proxy se reflectă în viteza reţelei. Deoarece fiecare conexiune şi tot traficul de pachete sunt acceptate, negociate, translatate şi transmise mai departe, această implementare poate fi mai lentă decât filtrarea de pachete bazată pe router. Un transfer de IP (IP forwarding) poate fi periculos deoarece permite unui cracker experimentat să aibă acces la staţiile de lucru din reţeaua internă a firmei. Un alt dezavantaj al acestei scheme este acela că pentru aplicarea tuturor regulilor de filtrare pe un singur firewall va putea să genereze o încetinire a traficului şi va presupune o muncă laborioasă pentru implementare. Din această cauză, trebuie creat un proxy (intermediar) pentru fiecare serviciu de reţea. Aceasta presupune existenţa unui proxy pentru FTP, pentru Telnet, pentru HTTP etc. De aceea se preferă ca uneori să fie mai 108

mult de un firewall care să împartă şi să preia o parte din sarcinile primului. Dispozitivele firewall hibride combină funcţiile de la dispozitivele firewall de nivel reţea cu cele de la dispozitivele firewall de nivel aplicaţie. Acestea funcţionează ca un firewall care va monitoriza sesiunea şi informaţiile despre aceasta, va filtra pachetele, dar nu este un proxy. Informaţiile despre sesiune vor include IP-ul sursei şi al destinaţiei, informaţii despre porturi şi un jurnal al autentificărilor. Firewall-urile hibride asigură o securitate foarte bună. Sunt mai rapide ca firewall-urile de aplicaţie, dar mai lente decât firewall-urile bazate pe filtrarea pachetelor. O comparaţie între modul de funcţionare al celor trei modele de firewall-uri folosind modelul de reţea OSI este exemplificată în tabelul următor (tabelul 8) Tabelul 8. Acţiunea tipurilor de firewall asupra nivelurilor de reţea OSI.

Ca metodă de securizare a reţelei interne împotriva atacurilor din exterior majoritatea dispozitivelor firewall se folosesc translarea adreselor de reţea (NAT - Network Address Translation - translarea adreselor de reţea). Aceasta presupune ascunderea identităţii (IP locale) a calculatoarelor locale pentru reţeaua publică. Sistemele de operare Windows 2000/2003 Server, XP, Linux şi majoritatea sistemelor de operare UNIX moderne dispun 109

de aceasta facilitate. Windows NT nu beneficiază de această facilitate. NAT ascunde adresele IP locale prin convertirea lor la adresele firewall. În Internet tot traficul care provine de la calculatoarele reţelei locale va fi văzut că provine de la un singur calculator/server al cărui IP va fi singurul cunoscut. Un atacator nu va putea vedea decât IP-ul dispozitivului NAT şi nu pe cele interne. Translarea adreselor permite de asemenea folosirea oricărui IP în reţeaua locală, chiar dacă acestea sunt folosite oriunde altundeva în Internet. Singurele probleme pot să apară atunci când se accesează din Internet o locaţie care are acelaşi IP cu cel al calculatorului local. Din această cauză, este de preferat să se folosească pentru calculatoarele din reţeaua locală IP-urile rezervate 192.168.0.0 sau 10.0.0.0. Aceste clase nu se regăsesc în adresele de host-uri din Internet. NAT permite şi multiplexarea unei singure adrese IP publice către toată reţeaua locală. Acest lucru este benefic pentru firmele mici deoarece fără această multiplexare posibilităţile de adresare sunt relativ reduse. Translarea adreselor are şi dezavantaje. Unul dintre ele este acela în care un administrator al reţelei interne vrea să se conecteze din afară la un calculator local în vederea depanării. Sau situaţia în care se doreşte aflarea IP-ului unui calculator local de la care s-a trimis un mesaj senzitiv către exterior. NAT ţine la distanţă atacatorii, dar la fel de bine limitează accesul din afară al utilizatorilor legitimi (administratori) la resursele reţelei interne în vederea depanării. Dispozitivele NAT moderne au implementată opţiunea de port-forwarding care permite accesul utilizatorilor legitimi la reţeaua internă. Modul de funcţionare al unui proces NAT este exemplificat în figura 32 .

110

Figura 32. Funcţionarea unui proces NAT.

111

3.3. firewall

Alegerea,

instalarea

şi

configurarea

→ Prima decizie în achiziţionarea unui dispozitiv firewall este dacă alegem unul hardware, software sau o combinaţie a celor două. O dată ales dispozitivul firewall, acesta va trebui să facă invizibilă reţeaua firmei pentru un neautorizat şi să o protejeze împotriva atacurilor. → Pentru alegerea unui firewall trebuie să se ţină cont de următoarele criterii:  gradul de securitate;  sistemul de operare;  administrarea. Gradul de securitate asigurat de un dispozitiv firewall este uneori greu de cuantificat. Este bine ştiut că un firewall hardware produs de firma Cisco reprezintă topul vânzărilor. Dar tot la fel de bine se ştie şi că acele firewall-uri sunt şi cele mai scumpe. PIX (PIX - Private Internet Exchange.) Firewall produs de firma Cisco este considerat ca fiind unul dintre cele mai bune dispozitive de acest fel, asigurând o securitate ridicată şi un nivel crescut de performanţă. Sistemul de operare va atârna în decizia de alegere a unui firewall în două moduri. Unul ar fi acela că producătorii de firewall sunt de părere că firewall-urile bazate pe sisteme de operare care au mai puţine bug-uri sunt mai sigure. Al doilea motiv ar fi acela că bug-urile apărute în folosirea unui firewall care rulează pe un sistem de operare larg răspândit vor putea fi raportate de un număr mai mare de utilizatori. Există însă şi reversul la folosirea unui sistem de operare larg răspândit. Sistemul de operare Windows, care este cel mai răspândit, e cel mai atacat deoarece este un sistem de operare comun, are suficiente goluri de securitate şi pentru că mulţi hackeri urăsc firma Microsoft datorită politicii sale. 112

Atunci când se alege un firewall software este obligatoriu ca acesta să fie suportat de sistemul de operare. Administrarea unui firewall trebuie să fie familiară. Este bine cunoscut că firewall-urile Windows sunt mai uşor de administrat decât cele UNIX (sau Linux). Existenţa unei interfeţe greoaie va face ca firewall-ul să nu fie configurat optim, mai ales dacă persoana care-l configurează nu are experienţă. Dispozitivele firewall comerciale sunt disponibile în două categorii:  Single gateway, care are suport pentru un număr specific de utilizatori şi consola de management instalată pe un singur calculator. Se pretează foarte bine la firmele mici.  Firewall Enterprise, care permit protejarea unui număr specificat de calculatoare din reţeaua internă. Adăugarea de module suplimentare măreşte numărul acestora. Achiziţionarea unui dispozitiv firewall de firmă, ca exemplu PIX Firewall, produs de Cisco, pentru protejarea la atacuri din exterior, este de preferat în locul achiziţionării unui produs software. Preţul de achiziţie şi cheltuielile de implementare fac ca această soluţie să nu fie aleasă decât de firmele mari, care-şi pot permite preţul. Firewall-ul produs de firma Checkpoint costă pentru un modul cu 5 utilizatori 300 USD, iar pentru un modul de 250 de utilizatori costă 6.000 USD. Asistenţa tehnică este asigurată telefonic pentru suma de 400 USD pentru incident. Symantec Enterprise Firewall (care este un proxy) costă (cu suport de VPN) 4.000 USD pentru un număr de până la 100 de utilizatori şi 12.500 USD pentru un număr nelimitat de utilizatori. Suportul tehnic este asigurat pentru sume cuprinse între 400 USD (până în 100 utilizatori) şi 1.875 USD (pentru un număr nelimitat de utilizatori). Symantec Enterprise Firewall rulează pe platforme Windows NT 4 SP 6a, Windows 2000/2003, precum şi pe platforme Sun Solaris (SPARC), şi este multithread (Multithread . capacitatea mai multor microprocesoare de a 113

funcţiona ca şi cum ar fi unul singur) pentru a putea să folosească facilităţile sistemelor multiprocesor. Firmele mici vor opta pentru soluţii firewall înglobate, lucru întâlnit la serverele Internet bazate pe sistemele de operare Linux. În cazul în care serverul respectiv are ca sistem de operare Windows, se indică folosirea pachetului Norton Internet Security 2004 (Professional) la preţul de 70 (100) USD. Dacă se doreşte şi protejarea staţiilor de lucru din interiorul firmei împotriva atacurilor din interior, se poate opta între produsele existente pe piaţă: Norton Firewall (Norton Internet Security), Zone Alarm Pro, CheckPoint Firewall. Preţurile la aceste produse variază în jurul valorii de 50 USD. Unele dintre aceste produse se livrează gratuit la achiziţionarea unui sistem de calcul. Este cazul produselor Norton Internet Security şi Norton Antivirus (uneori sunt integrate într-un singur program . Norton Internet Security ., dar opţional se poate instala şi Norton Antivirus). Suportul tehnic pentru actualizări gratuite este de un an. Instalarea şi configurarea vor fi făcute în următorii paşi:  instalare şi configurare platformă sistem de operare;  instalare şi configurare module firewall;  instalare şi configurare server management;  instalare şi configurare console de administrare;  instalare servicii suplimentare (antivirus, antispam);  configurare politici de securitate;  configurare translatare adrese (NAT);  implementare metode de autentificare. → Conform celor expuse, în cadrul firmei, am optat pentru o soluţie de compromis financiar. Cerinţele au fost ca să fie protejate calculatoarele care au acces la Internet şi de asemenea să fie protejate şi cele neconectate. Pentru prima categorie am ales varianta de externalizare a serviciului de securitate. Serverul de Internet, pe care rula Linux, să fie dat în administrarea distribuitorului local RDS/RCS (RDS/RCS . Grup de firme 114

(consorţiu) specializate în distribuţia de televiziune prin cablu şi distribuţie Internet. ). Acesta, de comun acord cu conducerea firmei, a instalat şi configurat firewall-ul Linux cu restricţiile impuse, urmând ca periodic să trimită la sediul firmei liste cu atacurile asupra serverului. Totodată, firma RDS/RCS se obliga să monitorizeze permanent activitatea de pe acest server. Pentru calculatoarele neconectate la Internet varianta aleasă a fost aceea a programelor firewall Norton Personal Firewall/Norton Internet Security. S-a ales această soluţie deoarece o parte din calculatoarele nou-achiziţionate aveau preinstalat acest program. Administrarea calculatoarelor din reţeaua neconectată va fi făcută de către un angajat al firmei care va actualiza permanent programele şi va monitoriza rezultatele statistice generate de firewall.

3.4. Administrarea firewall Administrarea unui firewall poate fi o activitate care poate să ocupe foarte mult timp. Aceasta depinde şi de mărimea firmei, în cazul firmelor mari administrarea putând fi o operaţie permanentă. În esenţă, administrarea unui firewall presupune:  monitorizarea performantei firewall-ului;  monitorizarea log-urilor de securitate;  mentenanţa securităţii prin aplicarea de patch-uri şi hotfixuri şi actualizări;  intervenţia în caz de nevoie. La nivelul firmei un firewall este acel produs care împarte o singură politică centralizată peste multiple firewall-uri. Firewall-urile la nivel de firmă permit un control centralizat al politicii de securitate. Politica de securitate, definită la nivel de staţie de lucru, este apoi replicată peste celelalte puncte de lucru. 115

→ La firma studiată o mare parte dintre probleme se datorau conexiunii la Internet. Nu am contorizat pierderile de productivitate datorate conexiunii la Internet, dar mai toţi angajaţii firmei pierdeau în fiecare dimineaţă, uneori zeci de minute, ca să citească presa prin Internet sau pentru alte activităţi care nu aveau nici o legătură cu activitatea firmei. O mare parte dintre virusările calculatoarelor se datorau conexiunii la Internet. Am decis că cea mai sigură cale de a limita atacurile din Internet şi de a nu mai avea pierderi de productivitate este aceea de a separa reţeaua. Aceasta va presupune o conexiune la Internet numai a staţiilor care au întradevăr nevoie de asta. Accesul publicului la serverele de web, FTP, email se va face doar pe o porţiune mică din reţea. Staţiile de lucru de aici vor conţine toate datele necesare publicului, dar nu date senzitive. În acest fel, se asigură următoarele beneficii:  porţiunea de reţea neconectată la Internet este absolut sigură. Transferul de date din reţeaua conectată la Intenet în cea neconectată se va face folosind suporturi de memorie de capacitate mare care şi acestea vor fi scanate de viruşi. Dar acest transfer se face doar atunci când este absolut necesar;  soluţia este foarte simplă şi nu necesită echipamente speciale;  reduce riscurile de atac şi infectare cu viruşi;  reduce timpul pe care angajaţii îl pierd navigând pe web sau descărcând programe care nu au nici o legătură cu activitatea firmei;  reducerea traficului în cele două reţele a crescut performanţele în ambele. → După realizarea separării reţelei problemele generate de viruşi aproape că au dispărut în reţeaua neconectată. Periodic, şi în afara orelor de program, se conectau cele două reţele pentru a se face actualizările de semnături de viruşi, actualizările de programe firewall şi alte (hot)fix-uri de programe. Au rămas 116

conectate la Internet numai calculatoarele la care acest lucru era absolut necesar (5 la număr). Făcând un calcul aproximativ, au rezultat câştiguri de productivitate de 17.250.000 lei (15 calculatoare neconectate x 1 oră câştigată în fiecare zi x 50.000 lei media tarifară orară x 23 de zile). Această nouă configurare nu a fost pe placul angajaţilor. Aceştia au fost nemulţumiţi de acest lucru în primele zile, situaţia intrând apoi în normalitate.

117

Capitolul IV. Scanere de vulnerabilitate 4.1. Tipuri de scanere Un scaner este o componentă software care va analiza o reţea şi va detecta eventualele slăbiciuni ale acesteia, precum şi golurile de securitate. Un scaner va lansa atacuri secvenţiale asupra calculatoarelor din reţea. De această dată, atacul nu este unul maliţios. Dacă un atac a fost însoţit de succes, atunci scanerul va crea o notă într-un raport şi apoi va continua procesul. La sfârşitul procesului de scanare se va afişa un raport referitor la acţiunile scanerului şi la calculatoarele vulnerabile. Acest raport va putea fi folosit pentru a înţelege care calculator din reţea are nevoie de o mare atenţie pentru a îmbunătăţi securitatea a lui şi a întregii reţele. Deşi acţiunea unui scaner este însoţită de termeni ca gol de securitate etc., succes (al atacului), vulnerabilitate, de această dată aceşti termeni au o cu totul altă conotaţie. Să nu uităm că această scanare este folosită nu pentru iniţierea unui atac, ci tocmai pentru ca atacurile maliţioase să nu poată fi încununate de succes. Un gol de securitate nu va fi exploatat, cum fac hackerii, ci va fi umplut cu ajutorul patch-urilor, al fix-urilor sau prin modificarea configuraţiei. Atacul va fi executat doar pentru a se determina vulnerabilităţile şi nu pentru a le exploata. Succesul unui atac nu va fi o victorie ca în cazul unui atac real, ci va fi un motiv de îngrijorare şi un obiectiv. Vulnerabilitatea zero sau redusă va reprezenta de această dată un lucru bun. O vulnerabilitate ridicată va reprezenta un motiv de îngrijorare care va necesita măsuri urgente. Majoritatea scanerelor testează calculatorul-gazdă şi informează asupra 118

serviciilor de reţea care funcţionează pe acel calculator. În plus, un scaner va spune şi unde acele servicii sunt susceptibile de o vulnerabilitate cunoscută sau sunt greşit configurate. De exemplu, pentru o arhitectură Windows, testele care se vor efectua sunt următoarele:  scanarea porturilor de reţea care utilizează UDP;  scanarea porturilor de reţea care utilizează pachete TCP SYN, ACK, FIN;  scanarea lui Network Neighborhood;  testarea vulnerabilităţilor DNS şi SNMP;  scanarea pentru detectarea cailor troieni şi a backdoorsurilor cunoscute;  Server Message Block Querying;  testarea Active Services;  verificarea protocoalelor de transport şi sesiune;  posibilitatea de a stabili sesiunile NULL IPC$ locale;  verificarea Service pack şi Hotfix;  verificarea opţiunilor share (Admin(S));  verificarea abilitaţilor de querry registry;  verificarea vulnerabilităţilor cunoscute URL şi CGI;  verificarea vulnerabilităţilor cunoscute la atacuri DoS;  verificarea vulnerabilităţilor MS SQL Server;  testarea vulnerabilităţilor SMTP, FTP, POP3.

  

Tipurile cele mai cunoscute de scanere sunt: scanere de reţea (network-based scanners) scanere de staţie (host-based scanners) scanere de porturi (port scanners).

Scanerele de reţea sunt unelte software care lansează dintr-o locaţie centrală “atacuri” asupra reţelei în vederea testării vulnerabilităţilor. O consolă centrală va fi folosită pentru maparea întregii reţele şi pentru trimiterea de pachete către calculatoarele care vor fi scanate pentru a culege informaţii. De la această 119

consolă se vor direcţiona diferitele .atacuri. care vor scana un anume calculator din reţea. Scanerele de reţea sunt uşor de implementat şi de utilizat. Programul de scanare va fi încărcat pe un calculator din reţea şi de aici se va testa reţeaua (figura 33).

Figura 33. Interfaţă scaner de reţea. Scanerele de reţea au şi neajunsuri. Printre acestea se pot enumera:  încetinesc traficul în reţea. Un scaner de reţea va putea să folosească pentru lansarea “atacurilor” foarte multă bandă;  pot duce la blocarea unor calculatoare. Anumite teste pot să blocheze calculatoarele supuse procesului de scanare;  durata de timp pentru efectuarea unei operaţii de scanare poate să fie considerabilă şi poate folosi resurse mari din reţea;  acţiunea de scanare va putea să fie folosită de alte persoane (hackeri sau angajaţi răuvoitori) pentru descoperirea vulnerabilităţilor reţelei. 120

Scanerele de staţie diferă de scanerele de reţea în primul rând prin arhitectură. Pachetele de testare de la consolă vor fi trimise către un calculator din reţea şi nu către toată reţeaua (figura 34). Tot traficul se desfăşoară între aceste două puncte. A două diferenţă este aceea că acţiunea de testare se face pentru testarea unei configurări locale defectuoase fără să se încerce exploatarea unor goluri de securitate. Scanerele de staţie au câteva avantaje în faţă scanerelor de reţea. Unul dintre avantaje este acela că traficul din reţea e sensibil diminuat, ţintă nefiind reţeaua, ci numai un calculator din reţea. Din această cauză, un scaner de staţie este de preferat în locul unuia de reţea deoarece nu foloseşte resurse mari de reţea în care ar avea repercusiuni asupra traficului prin scăderea acestuia. Calculatoarele testate nu mai sunt în pericol de a cădea, ca la un atac cu scaner de reţea, deoarece se testează doar vulnerabilitatea şi nu posibilitatea de exploatare a acesteia. Scanerul de staţie nu va mai putea fi folosit de o altă persoană pentru scanarea reţelei deoarece scanarea de la consolă la calculatorul supus testului se face pe un canal securizat care nu poate fi folosit decât de o singură persoană.

Figura 34. Scaner de staţie. Scanerele de porturi reprezintă o categorie aparte de scanere folosite pentru maparea calculatoarelor din reţea şi 121

testarea porturilor pe care acestea le folosesc. Un port este o adresă a calculatorului folosită pentru comunicare. Oricare din cele peste 10.000 de posibile porturi pot fi folosite, dacă sunt deschise, pentru iniţierea unui atac (figura 35).

Figura 35. Scaner de porturi. Multitudinea de scanere existente ca programe gratuite în Internet face ca acestea să constituie un pericol la adresa calculatoarelor din reţeaua firmei. Chiar dacă nu au succes în descoperirea golurilor de securitate, un scaner îngreunează traficul în reţea atunci când este în lucru. Acesta poate să fie unul din semnalele că se face o scanare a reţelei locale.

122

4.2. Scanere comerciale Majoritatea scanerelor au abilitatea de scanare de porturi pentru găsirea unui calculator în reţea. Există însă unelte specializate în scanarea de porturi. NMAP (NetworkMAPer) şi NMAPFE sunt unele dintre cele mai folosite unelte în acest scop. NMAP este un utilitar care explorează arhitectura reţelei foarte rapid. Acesta foloseşte pachete IP pe care le trimite în reţea pentru a determina care calculator este disponibil, serviciile (asigurate de porturi) care sunt deschise, sistemele de operare şi versiunile acestora care rulează pe acel calculator, precum şi firewall-urile active. Mai multe date, documentaţii, precum şi programul în format comprimat sau codul sursa vor putea fi găsite la adresa http://www.insecure.org/nmap/ . GNIT este un scaner pentru platforme Windows NT şi Windows 2000. Acesta va face o verificare amănunţită a reţelei, va furniza detalii despre fiecare cont, precum şi o listă cu conexiunile şi serviciile care rulează. Mai multe detalii se pot găsi la adresa http://security.ellicit.org/. Winfingerprint scanează calculatoarele şi culege informaţii referitoare la NetBIOS, utilizatori, grupuri, protocoale de transport, servicii etc. Programul va scana calculatoarele existente în Network Neighborhood oferind un raport în format HTML - http://winfingerprint.sourceforge.net/ Security Administrator’s Integrated Network Tools (SAINT) este folosit pentru a testa şi evalua reţele. Versiunea gratuită poate fi descărcată de la adresa ftp://ciac.llnl.gov/pub/ciac/sectools/unix/satan/ Cerberus Information Scanner (CIS) scanează reţeaua pentru a determina serviciile care rulează. Programul funcţionează pe platforme Windows NT şi 2000 şi determină dacă conturile 123

utilizatorilor, informaţiile partajate, grupurile şi anumite servicii pot fi accesate de către intruderi. În plus, se mai poate face o scanare pentru a se determina vulnerabilităţile SQL Server. Versiunea gratuită poate fi descărcată de la adresa www.cerberusinfosec.co.uk/cis.shtml. Pe lângă aceste site-uri mai există în Internet foarte multe alte site-uri care pot da informaţii despre securitate şi cum poate fi aceasta îmbunătăţită. Informaţiile de aici includ descrieri despre vulnerabilităţi, platformele care sunt afectate, precum şi măsurile care trebuie luate pentru remedierea acestor vulnerabilităţi. Cele mai importante biblioteci cu baze de date despre vulnerabilitate se pot găsi la următoarele adrese: BugTraq (www.securityfocus.com/bid). Este cea mai mare şi mai importantă bază de date care cuprinde informaţii legate de vulnerabilităţi, descrierea acestora, detalii despre exploatarea acestora şi procedurile de eliminare. CERT (www.cert.org). Computer Emergency Response Team (CERT) este un centru federal de cercetare şi dezvoltare în domeniu localizat la Carnegie Mellon University. X-Force (xforce.iss.net). Internet Security Systems (ISS) este un scaner de firmă care are posibilitatea de a asigura securitatea asupra unor grupuri. CIAC (www.ciac.org). Computer Incident Advisory Center (CIAC) este sponsorizat de U.S. Department of Energy şi include ştiri, avertizări despre viruşi, precum şi o bază de date extinsă referitoare la vulnerabilităţi. NtBugTraq (www.ntbugtraq.com). Această bază de date aparţine unei persoane private, Russ Cooper, şi conţine informaţii referitoare la vulnerabilităţile Microsoft.

124

4.3. Procedurile de scanare la nivel de firmă Scanerele trebuie folosite în strânsă legătură cu procesele şi procedurile aplicate pentru asigurarea politicii de securitate impuse la nivel de firmă. Procedurile de scanare în vederea detectării vulnerabilităţilor sunt mari consumatoare de timp. Din acesta cauză, operaţiile incluse în procesul de scanare trebuie să se facă în afara orelor de program. → Consider că operaţiile de scanare la nivelul firmei, în vederea testării vulnerabilităţilor, trebuie să se facă ţinând cont de mărimea firmei. De asemenea, această operaţie trebuie să se facă obligatoriu de oricâte ori se modifică arhitectura reţelei din firmă. → La nivelul firmelor mici, procedura de scanare se va efectua de cel puţin două ori pe an, în condiţiile în care nu se face nici o modificare în arhitectura reţelei. Dacă se fac modificări în arhitectura reţelei, atunci după fiecare modificare se va face o nouă verificare a vulnerabilităţilor folosind scanarea. În funcţie de numărul de calculatoare existente în firmă, operaţia de scanare poate să dureze de la câteva ore până la câteva zile. Dacă numărul de calculatoare este mic, atunci operaţia va putea fi făcută în afara orelor de program, în zilele lucrătoare. Dacă numărul de calculatoare este relativ mare, până la 100, atunci procesul de scanare se va face în zilele nelucrătoare. → La nivelul firmelor medii, operaţia de scanare se va efectua în mod regulat. În acest caz, operaţia este mult mai laborioasă, deoarece poate exista un număr de servere mult mai mare ca la firmele mici, acestea necesitând un timp mai îndelungat de scanare. Din această cauză, procesul de scanare poate fi făcut pe 125

secţiuni ale reţelei. De asemenea, în funcţie de anumite criterii de politică sau de arhitectură, anumite porţiuni de reţea pot fi scanate mai des, în timp ce altele mai rar. → La nivelul firmelor mari, operaţia de scanare reprezintă o prioritate. Operaţia este extrem de laborioasă şi de aceea trebuie să existe personal extrem de bine pregătit şi responsabil. Operaţia de scanare poate să nu rezolve în totalitate anumite probleme legate de securitate, dar poate atenţiona asupra punctelor vulnerabile în care trebuie concentrată atenţia. → În situaţia în care firma, indiferent de mărime, nu are personal calificat pentru această operaţie, se poate apela la firme specializate care să preia această sarcină.

126

Capitolul V. Controlul accesului şi detectoare de intruziune 5.1. Modalităţi de control al accesului Un proces de asigurare complet a securităţii presupune protecţia, detectarea şi răspunsul la atacuri. Detectarea intruşilor reprezintă miezul problemei pentru a monitoriza calculatorul sau reţeaua de calculatoare în vederea detectării golurilor de securitate, a hackerilor şi a abuzurilor angajaţilor. Majoritatea detectoarelor de intruziune au în componenţă şi mecanisme de limitare a pierderilor. Mecanismele folosite pentru interzicerea accesului persoanelor neautorizate la datele stocate în calculator poarta denumirea de funcţii de control al accesului. Până unde trebuie mers însă cu limitarea şi controlul accesului? Limitarea excesivă de acces a clientului la anumite informaţii poate să nu fie benefică în afaceri. Măsurile de securitate excesive impuse partenerilor de afaceri s-ar putea să fie supărătoare pentru aceştia. Accesul la anumite date, restricţionat de o mulţime de parole de acces, va putea să fie enervant pentru partenerul de afaceri care poate în final să renunţe. Paradoxul securităţii este acela că poţi avea o securitate excesivă în detrimentul afacerilor sau o securitate rezonabilă şi afacerile să fie prospere. Adică .Cine nu riscă nu câştigă.. Trebuie găsită o cale de mijloc între circulaţia liberă a informaţiilor şi nevoia de securitate. Accesul la informaţiile stocate într-un calculator reprezintă un risc de luat în seamă, dar dezvăluirea informaţiilor către un competitor în afaceri poate avea efecte dezastruoase asupra firmei. În funcţie de cât de multe şi de caracterul datelor intrate în posesia competitorului, se poate ajunge chiar în situaţii de blocare a activităţilor pentru o perioadă de timp sau chiar 127

faliment. Acesta este principalul motiv pentru care firmele trebuie să se preocupe de securitatea datelor din propriile calculatoare. Atunci când se pune problema asigurării securităţii, oricine se gândeşte că prima măsură este asigurarea unui control al accesului. Şi pe bună dreptate. Controlul accesului reprezintă o serie de măsuri menite să interzică accesul persoanelor neautorizate la date. Controlul accesului la date se va face prin luarea de măsuri administrative şi măsuri hardware. Măsurile administrative vor constitui prima linie de apărare împotriva persoanelor neautorizate. Existenţa acestor măsuri vizează angajaţii firmei, persoanele care au contact fizic cu firma, clienţii direcţi, precum şi intruderii care vor să pătrundă fizic în firmă pentru a avea acces la date. Aceste măsuri nu se aplică şi nici nu au cum să se aplice împotriva unor atacuri de la distanţă. Măsurile administrative vor presupune montarea unor serii de dispozitive fizice menite să limiteze şi să supravegheze accesul într-o anumită zonă. Aceste dispozitive pot fi:  perimetre de protecţie;  chei de acces în anumite zone;  carduri pentru acces la anumite zone;  alte modalităţi de restricţionare;  modalităţi de supraveghere. Perimetrele de protecţie sunt constituite de gruparea calculatoarelor în anumite zone unde accesul să poată fi supravegheat. Aceste perimetre pot fi anumite clădiri sau, într-o anumită clădire, anumite birouri. În anumite situaţii, când o anumită încăpere are o suprafaţă foarte mare, se folosesc pereţi despărţitori. Accesul în anumite încăperi se va putea face doar dacă persoana respectivă are cheia sau cardul care să-i permită accesul în acea zonă. 128

La categoria alte modalităţi de restricţionare pot fi incluse modalităţile biometrice de control. Cele mai folosite modalităţi de identificare a unei persoane sunt: o semnătura; o amprenta digitală; o amprenta palmară; o scanarea retinei; o timbrul vocal; o modul de tastare. Ca modalitate de supraveghere destul de folosită în ultimul timp este utilizarea camerelor video de supraveghere. Camerele video de supraveghere nu au un rol preventiv în ceea ce priveşte accesul persoanelor într-o anumită zonă, dar pot fi folosite în procesul de identificare a intruderilor, de localizare a calculatoarelor şi echipamentelor supuse atacului, precum şi ca probă în eventualitatea că se iau măsuri judiciare împotriva unei anumite persoane. Un mecanism complex de control al accesului, în care se regăsesc şi camere video de supraveghere este exemplificat în figura următoare (figura 36).

129

Figura 36. Mecanisme de control al accesului. O dată trecută cu bine prima linie de securitate se ajunge la cea de-a doua care, o dată trecută, presupune accesul direct la date. Aici se vor implementa o serie de mecanisme care să interzică accesul persoanelor neautorizate. Controlul accesul la datele din calculatoare trebuie să se facă numai după ce se parcurg următoarele etape, cunoscute şi sub denumirea de AAA (Autentificare, Autorizare, Acces) (figura 37):  identificare;  autentificare;  autorizare.

130

Figura 37. Controlul accesului. O dată ajuns în faţa calculatorului, utilizatorul trebuie să se identifice. Aceasta va presupune tastarea unui cont de identificare şi a unei parole. Pe baza unui mecanism de autentificare existent pe calculator se va confirma sau se va infirma veridicitatea celor tastate anterior. Dacă această etapă este trecută cu bine, atunci se primeşte o autorizare care-i va permite utilizatorului să acceseze resursele calculatorului sau ale reţelei. Acesta este de fapt un mecanism de control al accesului. Termenii de autentificare şi identificare sunt strâns folosiţi în literatura de specialitate. Identificarea şi autentificarea unui utilizator nu trebuie lăsată numai pe seama unui cont şi a unei parole. Firmele trebuie să se concentreze foarte atent asupra metodelor de identificare şi autentificare. Există două cazuri care impun ca acest lucru să fie făcut temeinic:  senzitivitatea crescută a anumitor date;  lucrul din afară. Unele date din calculator pot fi de o foarte mare importanţă pentru firmă, dar de o şi mai mare importanţă pentru concurenţă. Simpla identificare şi autentificare nu sunt suficiente. Unele firme folosesc ca modalitate de lucru cu angajaţii lucrul de acasă. Pentru acesta folosesc Internetul. Ori, un simplu cont şi o parolă trimise în Internet devin vulnerabile. Acesta este doar un exemplu care impune folosirea unor tehnologii performante de autentificare. Se folosesc cu precădere patru tipuri de tehnologii: • Kerberos; 131

• • • •

token-uri; biometrică; certificate; smart carduri.

Tehnologia Kerberos se foloseşte atunci când contul şi parola sunt trimise în reţea şi în acest fel pot deveni vulnerabile, putând să fie folosite de o altă persoană care să se substituie posesorului legal. De asemenea, tehnologia rezolvă situaţia în care un utilizator poate avea acces la mai multe calculatoare şi să nu fie nevoit de fiecare dată când reaccesează un calculator să introducă contul şi parola. Această tehnologie a fost dezvoltată de către Massachusetts Institute of Technology (MIT), care foloseşte algoritmi de criptare şi autentificare Data Encryption Standard (DES). Versiunea 5 a tehnologiei Kerberos reprezintă un standard Internet specificat în RFC 1510 (RFC - Request for Comments, o serie de notaţii referitoare la Internet, începând cu anul 1969 (când Internetul era ARPANET). Un document Internet (Internet Document) poate fi trimis către IETF de către orice persoană, dar IETF decide care document devine RFC. În eventualitatea în care acel document prezintă suficient de mult interes, acesta poate să devină un standard Internet). Tehnologia Kerberos se bazează pe conceptul de a treia parte de încredere care permite o verificare sigură a utilizatorului şi serviciilor. Această a treia parte poartă denumirea de Server de Autentificare (Authentfication Server) sau Centru de Distribuţie a Cheilor (Key Distribution Center . KDC). Prima operaţie efectuată de Kerberos este de a verifica dacă utilizatorii şi serviciile pe care aceştia le folosesc sunt cei care pretind a fi. Pentru a realiza aceasta KDC trimite către utilizator un “ticket” care va fi folosit de către utilizator. Iniţial se creează o cheie de legătură între client şi KDC, numita Kclient, şi o altă cheie între KDC şi serverul de aplicaţii, numită Kserver (figura 38). 132

Figura 38. Grupul de chei Kerberos. Când un client vrea să creeze o asociere pe un server de aplicaţii, clientul foloseşte o cerere de autentificare şi răspuns pentru a obţine un ticket şi o cheie de sesiune de la KDC (figura 39).

Figura 39. Autentificarea Kerberos.

Paşii sunt următorii: Pasul 1. Clientul trimite o cerere de autentificare către KDC. Această cerere conţine următoarele informaţii:  declararea identităţii;  numele serverului de aplicaţii; 133

 cerere de validitate în timp pentru ticket;  un număr aleator folosit pentru autentificare. Pasul 2. KDC verifică drepturile de acces ale clientului şi creează o autentificare de răspuns. Pasul 3. KDC trimite răspunsul de autentificare către client. Acesta conţine următoarele informaţii:  cheia de sesiune, K session;  timpul de expirare al cheii;  un număr aleatoriu folosit pentru autentificare;  numele serverului de aplicaţie;  alte informaţii. Pasul 4. Când clientul primeşte răspunsul de autentificare, Clientul introduce numele de utilizator pentru a obţine parola, Kclient, folosită pentru a decripta cheia de sesiune de lucru Ksession. O dată obţinute acestea, clientul este abilitat să comunice cu serverul de aplicaţii. Acest lucru se va face conform figurii următoare (figura 40).

134

Figura 40. Cererea şi răspunsul la aplicaţie. Paşii sunt următorii: Pasul 1. Clientul va trimite către server două informaţii importante:  Kerberos ticket;  Un Autentificator, care conţine: ♦ timpul curent; ♦ sumă de control; ♦ cheie de criptare opţională. Acestea sunt criptate cu cheia de sesiune, K session, cu ajutorul ticket-ului. Pasul 2. La primirea cererii de aplicaţie, serverul decriptează ticket-ul cu ajutorul cheii de server, Kserver, extrage cheia de sesiune, Ksession, şi foloseşte cheia de sesiune pentru a decripta Autentificatorul. 135

Dacă aceeaşi cheie este folosită atât pentru criptarea, cât şi pentru decriptarea Autentificatorului, suma de control este corectă şi se concluzionează că Autentificatorul este cel generat de către clientul respectiv căruia îi aparţine cheia de sesiune. Pentru ca un atacator să nu poată să intercepteze Autentificatorul şi să-l folosească mai târziu, se verifică şi timpul. Pasul 3. Identitatea clientului este, în majoritatea cazurilor, verificată de către server. Sunt însă situaţii în care clientul vrea să fie sigur de autenticitatea serverului. În acest caz, serverul generează un răspuns prin extragerea timpului clientului din Autentificator şi returnarea acestuia către client împreună cu alte informaţii, toate criptate cu cheia de sesiune, Ksession. Tehnologia Kerberos a fost adoptată de către Microsoft atunci când a creat Single Sign On (SSO). Token-urile vor să rezolve problema furtului de parole şi este de fapt un complement al acestora. Deţinerea unui cont şi a unei parole a unui utilizator nu înseamnă că eşti acel utilizator. Majoritatea token-urilor arată ca o carte de credit şi au pe una dintre feţe un dispozitiv de afişare cu LCD (Liquid Crystal Display - Ecran cu cristale lichide). Folosire token-ului poate fi făcută în următoarele moduri:  după introducerea contului şi a parolei se cere şi introducerea unui număr afişat pe ecran. Dacă toate trei sunt valide, accesul este garantat. Numerele de pe ecranul token-ului se schimbă la fiecare minut.  după introducerea contului şi a parolei, calculatorul va răspunde cu un număr care va trebui să fie introdus în token-ul special de la o mică tastatură încorporată în acesta. După introducerea numărului se va genera de către token un altul care va fi introdus în calculator. Dacă acesta este un număr valid, accesul este garantat.  Token-ul este introdus într-un cititor special ataşat la calculator. Se introduc contul şi parola, iar calculatorul va 136

prelua din token informaţia necesară pentru identificare şi autentificare. Tehnologia biometrică, deşi folosită şi în alte domenii sau niveluri de securitate, este folosită şi aici. Aceasta presupune identificarea şi autentificarea utilizatorului după caracteristicile individuale ale fiecărui utilizator. Acestea au fost enumerate anterior. Tehnologia biometrică este implementată centralizat în majoritatea firmelor care o folosesc. Unele firme nu acceptă însă această tehnologie din cauza imaturităţii controlului centralizat. Certificatele sunt folosite în autentificarea Public Key Infrastructure (PKI). Tehnologia PKI este folosită în Secure Sockets Layer şi Virtual Private Network (VPN). Un certificat reprezintă de fapt un set de înregistrări stocate pe calculator. Acest set de înregistrări formează cheia privată care va fi folosită în comunicarea cu un server. Stocarea certificatului pe disc creează două dezavantaje. Unul ar fi acela că acesta poate fi sustras. Al doilea dezavantaj este acela că folosirea certificatului este posibilă doar de la acel calculator. Acest ultim dezavantaj a fost remediat prin folosirea smart cardurilor. Smart cardurile arată ca o carte de credit, numai că au încorporate un mic calculator care stochează cheia privată. Calculatorul care se doreşte să fie accesat sau de la care se doreşte accesarea reţelei va trebui să aibă un cititor de smart carduri ataşat. Se vor introduce contul şi parola şi se va citi de pe smart card cheia privată. Contul şi parola nu vor fi trimise către calculator, ci către smart card. Acestea, împreună cu cheia privată, nu vor părăsi niciodată smart cardul. Autorizarea, după ce se trece de autentificare şi identificare, va da drepturi de acces la anumite resurse locale sau din reţea. Pentru a autoriza un utilizator se folosesc două metode. Prima, şi cea mai comună, este de a păstra căile de autentificare pentru fiecare utilizator într-un director şi apoi de a lista în directorul lui fiecare intrare (calculator sau program) la 137

care are acces. Soluţia este eficientă pentru grupuri reduse de calculatoare şi programe. La grupuri mari este greu de gestionat. A doua soluţie se numeşte regulă de bază a autorizării (RBA Role-Based Authorization) sau regulă de bază a controlului accesului (RBCA - Role-Based Acces Control). Construirea unei liste cu reguli standard pentru firmă şi asignarea autorizaţiilor la aceste reguli vor simplifica foarte mult procedeele de autorizare. Autorizarea este o problemă complicată la nivelul oricărei firme deoarece trebuie gestionat un foarte mare număr de reguli şi sarcini. Majoritatea sistemelor de operare au încorporate ca funcţie controlul accesului. Funcţiile de control al accesului sunt unele dintre cele mai complexe funcţii pe care un sistem de operare trebuie să le implementeze. Se estimează că aceste funcţii au nevoie de foarte mulţi ani pentru a fi .mature.. O îmbunătăţire sau mai multe aduse unui sistem de operare la care sau descoperit goluri de securitate va avea ca efect apariţia pe piaţă a aceluiaşi sistem de operare, cu golurile de securitate acoperite, dar cu alt nume. Cazurile cele mai elocvente sunt cele ale firmei Microsoft cu sistemele de operare Windows 9x. În unele cazuri, dacă sistemul de operare este nesigur sau se doreşte o îmbunătăţire a securităţii, se poate apela la alte produse care să completeze sau să sporească facilităţile sistemului de operare. În alte cazuri, la sistemele de operare mai noi, producătorul oferă opţiuni de configurare sporite care vor ridica gradul de control al accesului. Ca exemplu putem da sistemul de operare Windows XP (Pro), destul de des folosit în firmele mici şi medii. Opţiunile de configurare sunt exemplificate în figura următoare (figura 41).

138

Figura 41. Opţiuni de configurare Windows XP (Pro) Radicalizarea peste un anume prag a măsurilor de control al accesului va putea să ducă la stopări ale folosirii anumitor programe. Un puternic control al accesului va reduce riscul unei folosiri neautorizate a calculatorului, dar va face ca folosirea acestuia să fie foarte dificilă. Dacă se foloseşte un sistem de operare .matur. şi se configurează bine opţiunile de control al accesului, atunci nu vor fi probleme de exploatare. Sarcina de control a accesului poate fi împărţită sau atribuită unui Sistem de Gestiune a Bazelor de Date (SGBD). Acesta va conţine propriile funcţii de control al accesului. → Nu este însă suficient să se ştie cine are acces şi cine nu. Uneori este necesar ca să fie monitorizate şi acţiunile şi operaţiile pe care le execută un utilizator cu drept de acces la înregistrările dintr-un fişier bază de date. Este ştiut faptul că este mai simplu de implementat un program care să monitorizeze 139

accesul la fişiere decât unul care să monitorizeze accesul la înregistrările dintr-un fişier. Situaţia este cu atât mai complicată cu cât fiecare SGBD are drivere şi funcţii specifice care monitorizează aceste operaţii. Cu toate acestea, un astfel de program poate fi realizat. Se poate concepet un astfel de program care-şi propune să realizeze următoarele operaţii de monitorizare:  indicarea locaţiei de unde se face accesul;  fişierul accesat;  tipul de operaţiile efectuate pe acesta;  afişarea instrucţiunii tastate de utilizator;  data şi ora la care au fost efectuate;  afişarea de jurnale de log pentru fiecare utilizator;  afişarea pe diverse criterii a jurnalelor de acces (nume utilizator, data şi ora, fişiere).

5.2. Stabilirea lungimii parolelor de acces Alegerea unei parole care să reziste un timp predefinit la atacuri de ghicire trebuie să fie principala directivă atunci când se aleg şi se distribuie parolele pentru angajaţii firmei. Este lesne de înţeles că o parolă cu cât este mai lungă şi este compusă dintr-un număr mai mare de caractere cu atât va fi mai greu de ghicit. Cât de lungă trebuie să fie însă parola? O parolă lungă şi greu de reţinut îl va determina pe proprietar să o scrie undeva la îndemână sau să o tasteze aşa de încet încât să poată fi citită de o persoană care se uită la tastatură. Stabilirea lungimii parolei se face ţinând cont de următoarele date de intrare: T - timpul în care o parolă va fi utilizată în sistem 140

P - probabilitatea ca o parolă să poată fi ghicită în perioada ei de funcţionare I - numărul de încercări de descoperire a parolei în unitatea de timp S - spaţiul parolelor (numărul total de parole unice care pot fi generate) S = AL, unde A - numărul simbolurilor din alfabet L - lungimea parolei Exemplu: Dacă numărul de simboluri este format din cifre (0 - 9), iar lungimea parolei este de cinci (5) caractere, atunci S = 105 = 100.000 parole. Exemplu: Dacă numărul de simboluri este format din caracterele alfabetului (26), iar lungimea parolei este de şapte (7) caractere, atunci S = 267 = 8.031.810.176 parole. Cât de repede se poate ghici o parolă? P - probabilitatea ca o parolă să poată fi ghicită în perioada ei de funcţionare va fi:

Numărul total de cazuri/încercări de ghicire G a unei parole din spaţiul S este:

Numărul de cazuri/încercari favorabile G de ghicire a unei parole este: 141

Ţinând cont de faptul că: Va rezulta în final:

Deci probabilitatea (P) de a ghici o parolă în perioada ei de funcţionare este dată de formula:

P=

G S

Şi ţinând cont de faptul că numărul total de ghiciri (G) care pot fi făcute pe perioada când o parolă este activă e G = T x I, va rezulta în final că probabilitatea (P) de a ghici o parolă pe parcursul funcţionarii acesteia este:

P=

T ∗I S

Exemplu: Să se găsească lungimea unei parole (L) care să reziste la încercări de ghicire cu o probabilitate (P) de unu la un milion pentru o perioadă (T) de 6 luni şi respectiv 12 luni. Cazul 1. Să consideram că: I = 500, numărul de încercări de ghicire este de 500 pe minut A = 26, numărul de caractere folosite (A-Z) I = 500 ⇒ 500 x 60 x 24 = 720.000 de încercări pe zi 142

Pentru 6 luni vom avea: T = 30, 5 zile x 6 luni = 183 zile

Ţinând cont de faptul ca S = AL, vom avea:

Se aleg 10 caractere pentru parolă. Pentru 12 luni vom avea: T = 365 zile

Se aleg 11 caractere pentru parolă. Cazul 2 Să consideram că: I = 500, numărul de încercări de ghicire este de 500 pe minut A = 36, numărul de caractere folosite (A-Z, 0-9). Pentru 6 luni vom avea:

143

Se aleg 9 caractere pentru parolă. Pentru 12 luni vom avea:

Se aleg 10 caractere pentru parolă. Dacă se ţine cont că se pot folosi, în afara de literele alfabetului (A la Z), şi cifrele (0 la 9), şi simbolurile suplimentare (~, ‘, !, @, #, $, %, ^, &, *, (, ), _, + , -, = , [, ], \, {, }, |, ;, ‘, :, ., , , ., /, <, >, ?), se ajunge ca numărul de simboluri folosite să fie de 68 (A = 68). Numărul total de parole, formate din şapte caractere, care va putea să fie generat cu acestea va fi S = AL= 687 = 6, 7222*1012. În acest caz, pentru a rezista 6 luni, cu o probabilitate de ghicire de unu la un milion şi 500 de încercări de ghicire pe minut, o parolă va trebui să aibă minimum

iar pentru 12 luni va trebui să aibă minimum

Dacă aplicaţia permite diferenţierea între caractere mari şi mici ale alfabetului (case sensitive), atunci se ajunge la un număr de 94 de simboluri care pot fi folosite în alcătuirea parolei.

144

5.3. Detectoare de intruziune Un detector de intruziune este un proces de detectare şi răspuns la folosirea abuzivă a calculatorului. Folosirea unui detector de intruziune va crea beneficii pentru firmă în ce priveşte detectarea, stoparea, răspunsul la atacuri, suport în evaluarea pagubelor produse, precum şi ca dovadă care poate fi folosită în justiţie împotriva persoanelor bănuite de folosirea abuziva a calculatorului. În funcţie de specificul şi mărimea firmei, se poate opta pentru un anume tip de detector de intruziune. La nivelul firmelor mici aceste detectoare de intruziune se găsesc încorporate în dispozitivele firewall existente. Analiza jurnalelor de firewall sau router va putea să evidenţieze încercări de intruziune. De asemenea, sistemele de operare au ca facilitate detectarea intruziunilor. Tipurile de detectoare de intruziune se pot clasifica în:  locale (host-based) sau de staţie;  reţea (network-based);  hibride. Principiile sunt asemănătoare la aceste tipuri numai ca acţiunea acestora este diferită. Principul de bază în funcţionarea unui detector de intruziune îl constituie analizarea pe o anume perioadă de timp a unui set discret de evenimente pentru a se descoperi eventualele folosiri abuzive. Înregistrările secvenţiale din diferitele puncte ale reţelei vor fi analizate şi se va determina comportamentul unui potenţial intruder. Detectoarele de intruziune de tip local (host-based) vor examina toate acţiunile care au fost efectuate pe acel calculator (staţie de lucru). Aceasta presupune analiza fişierelor care şi de unde au fost accesate, precum şi a aplicaţiilor care au fost executate din acel punct. 145

Detectoarele de intruziune de reţea (network-based) vor analiza traficul de reţea între punctele acesteia. Aceste detectoare folosesc două tipuri de tehnologii. Una presupune folosirea modului promiscuos al reţelei. În acest mod este suficient să se monteze un singur senzor pentru a se analiza tot traficul din reţea. A doua tehnologie se foloseşte de modul nonpromiscuous al reţelei şi presupune montarea unui senzor pentru fiecare conexiune care se doreşte analizată. Aceşti senzori vor fi montaţi în punctele strategice ale reţelei. Evident că dacă se doreşte analiza mai multor conexiuni aceasta poate fi făcută cu mai mulţi senzori sau pe o perioadă de timp mai îndelungată prin aplicarea senzorilor în punctele necesare. Senzorii sunt programe care rulează în punctele critice ale reţelei - calculatoare, servere, router-e, firewall-uri. Detectoarele de intruziune hibride combină avantajele celor două, dar sunt şi mai costisitoare. Cu toate acestea, ele sunt folosite deoarece asigură date complete atât asupra reţelei, cât şi asupra calculatoarelor în sine. Detectoarele de intruziune comerciale oferă, pe lângă capabilităţile standard de a detecta şi răspunde la atacuri, şi alte capabilităţi suplimentare. Printre acestea se pot enumera:  analiza evenimentelor pentru a se detecta atacurile din interior;  analiza traficului din reţea pentru a se detecta atacurile într-o anumită zonă a reţelei;  management al configuraţiei pentru asigurarea securităţii;  verificarea integrităţii fişierelor. Majoritatea detectoarelor de intruziune de tip hibrid oferă o parte dintre aceste capabilităţi. Arhitectura unui sistem hibrid de detectare a intruziunilor este prezentată în figura următoare (figura 42).

146

Figura 42. Arhitectura unui sistem hibrid de detectare a intruziunilor. 147

Într-un sistem de detectare a intruziunilor, consola reprezintă elementul central. Aceasta reprezintă un calculator dedicat care dispune de un set de dispozitive necesare pentru configurarea politicii de securitate şi procesarea mesajelor de avertizare. Pentru ca să nu existe posibilitatea de scurgere de informaţii pe traseul consola şi obiectiv, legătura între acestea este criptată. Firme consacrate în domeniu livrează atât calculatorul dedicat, cât şi restul de echipamente necesare testării şi criptării comunicaţiilor între consolă şi punctele testate. Aceste echipamente sunt însă scumpe şi de aceea se optează pentru produse software mai ieftine sau gratis. Unul dintre aceste produse este SNORT. Sursa poate fi descărcată gratuit de la adresa: http://www.snort.org/dl/, iar manualul de utilizare de la adresa http://www.snort.org/docs/snort_manual/. Chiar dacă nu se compară ca performanţe cu unul comercial, rezultatele pot fi comparabile. Consola efectuează anumite funcţii de bază, şi anume: management evaluare, management obiectiv şi management alerte. Funcţia de management evaluare colectează informaţiile statice referitoare la configurarea calculatorului obiectiv. Funcţia de management obiectiv va ţine o legătură permanentă între consolă şi obiectiv, iar funcţia de management alerte va colecta şi va administra alertele. Consola dispune, de asemenea, de un serviciu de detectare intruşi, arhivare şi generare rapoarte. La nivelul obiectivului testat se vor lansa procese care fac parte din procedurile de testare, cum ar fi sniffer-ele de pachete TCP/IP, procesarea jurnalelor de evenimente, centralizarea datelor, verificarea integrităţii fişierelor, verificarea configuraţiei, executarea răspunsurilor. Aceste procese rulează de regulă în fundal (background), cum ar fi daemon-ii din UNIX sau serviciile din Windows 2000/XP Pro. Funcţionarea acestor procese nu trebuie să aibă efecte negative asupra performanţelor calculatorului sau a reţelei. 148

La apariţia unei încercări de intruziune detectorul va genera mesaje de avertizare către operatorul de consolă (responsabil cu asigurarea securităţii). Mesajele de alertă pot căpăta diferite forme, de la alerte vizuale şi sonore pe ecran şi până la avertizare pe e-mail sau telefon. Încercarea de intruziune, evidenţiată de alerte, va putea fi contracarată automat sau se va face manual de către operator. În majoritatea cazurilor, aceste răspunsuri sunt o reconfigurare a router-ului sau firewall-ului, izolarea şi întreruperea conexiunii de unde se execută atacul. Centralizarea tuturor evenimentelor şi a încercărilor de intruziune în baza de date va fi benefică pentru a efectua o statistică a încercărilor de intruziune şi a dezvolta măsurile necesare de stopare. De asemenea, pot fi făcute calcule statistice privind incidenţa acestor evenimente. Dispozitivele de supraveghere sunt menite să preia informaţia din reţea şi să o analizeze pentru a se preîntâmpina pierderea de date.

5.4. Procesul de detectare a intruziunii la nivelul firmei Pentru majoritatea firmelor, asigurarea securităţii se limitează la programele antivirus. Folosirea de dispozitive firewall reprezintă pentru acestea un obiectiv prea greu de realizat. Despre detectoare de vulnerabilitate şi intruziune nici nu poate fi vorba. Sunt însă şi firme, chiar de mărime medie, care au implementate toate aceste măsuri. Implementarea unor măsuri de securitate minime este de preferat faţă de absenţa acestora. Măsurile de securitate trebuie însă să implementeze politica de securitate a firmei. În absenţa acesteia, măsurile de securitate vor fi haotice.

149

Prima măsură ar fi una administrativă care va presupune asigurarea unui perimetru de securitate pentru tehnica de calcul şi restricţii de acces la aceasta. Apoi se vor implementa măsurile de acces care presupun controlul accesului propriu-zis la date. Se vor alege conturile şi parolele pentru fiecare utilizator, precum şi regulile de autorizare. → Alegerea şi folosirea parolelor trebuie să fie făcută ţinând cont de următoarele reguli:  nu vor exista conturi fără parole;  nu se vor lăsa conturile şi parolele cu care vin o parte din calculatoare sau programe. De exemplu, contul SUPER şi parola VALID la programele de contabilitate şi gestiune CIEL, cele mai frecvent folosite;  contul şi parola sunt individuale şi vor fi folosite ca atare;  nu se scriu conturile şi parolele la vedere. Este de preferat ca acestea să se scrie în agenda personală, să fie memorate şi apoi să fie şterse din agendă;  nu se vor introduce contul şi parola de la tastatură atunci când cineva se uită;  nu se va trimite parola în reţea sau prin e-mail;  nu se vor folosi sub nici o formă ca parolă numele, prenumele, diminutivul, data de naştere a utilizatorului sau numele şi prenumele persoanelor din familia acestuia;  nu se va folosi o parolă mai mică de şase caractere;  nu se va folosi o parolă care conţine cuvinte dintr-un dicţionar din limba respectivă sau din orice altă limbă;  se vor folosi parole prin mixarea caracterelor mari şi mici. Anumite programe sunt case sensitive., făcând diferenţiere între caracterele mici şi mari ale alfabetului;  schimbarea parolei când se suspectează compromiterea acesteia;  schimbarea acesteia regulat. 150

→ În acest punct se poate spune că firma are asigurată o minimă securitate. Majoritatea firmelor fac aceste operaţii şi se opresc. Nu merg cu asigurarea securităţii până la capăt. În cazul firmelor medii sau mari, operaţia este continuată şi se vor introduce dispozitive firewall şi de detectare a intruziunilor. Ce se face însă în cazul unei încercări de intruziune? Toate intruziunile sunt atât de periculoase încât să blocheze o parte a reţelei sau un calculator? De exemplu, o comandă ping www.firma.ro .t, executată de un utilizator căruia nu-i merge bine conexiunea de internet şi vrea să aibă acces la datele publice din site-ul firmei, nu trebuie să fie urmată de măsuri dramatice. Sau acelaşi lucru dacă unui angajat nu-i funcţionează la parametri conexiunea cu serverul şi foloseşte o comandă ping în aşteptarea personalului de depanare. → Detectoarele de intruziune sunt configurate, în majoritatea cazurilor, să dea ele replica la o încercare de intruziune. Acest lucru este benefic dacă încercarea este una cunoscută. Experţii recomandă ca acest lucru să se facă totuşi manual, deoarece un răspuns automat poate fi folosit de un mecanism de interzicere a serviciului (DoS). Dar acest lucru presupune existenţa unui personal extracalificat în firma care să monitorizeze traficul. Şi unele firme, cele mici, nu şi-l permit. → În cazul unor încercări de intruziune din partea angajaţilor firmei, ţinerea unor jurnale de activităţi la nivel de reţea este obligatorie şi benefică pentru a se dovedi intenţia. Aceste jurnale pot fi folosite ca probe în acţionarea în justiţie a vinovaţilor. În anumite situaţii, angajaţii folosesc serviciul de e-mail pentru diferite farse adresate colegilor de serviciu. O configurare statică a adreselor IP va permite extragerea cu uşurinţă din header-ul de e-mail a adresei calculatorului-sursă şi pedepsirea vinovatului. Dacă spre exemplu mesajul primit are următoarea identitate (se afişează din opţiunile .Properties., .Detail. la Outlook sau Outlook Express sau din .Header Detail. la Yahoo): 151

Message-ID: 002201c47593$a4f7c4c0$1e0ba8c0@x, putem determina din ultimul grup de cifre, cuprins între ultimul . $.şi .@., IP-ul calculatorului de la care a fost trimis mesajul. Gruparea 1e0ba8c0 în hexazecimal citită invers în grupuri de câte două cifre este 192.168.11.30 în zecimal. Aflarea făptaşului este uneori dificilă atunci când acesta foloseşte tehnici de ascundere a identităţii sau programe de anonimizare.

152

Capitolul VI. Securizarea bazelor de date 6.1. Tehnici de securizare Sarcina de a se asigura securitatea bazelor de date este împărţită între sistemul de gestiune al bazelor de date şi sistemul de operare. Acestea pot să asigure fiecare în totalitate o parte din funcţiile de asigurare a securităţii sau pot să fie complementare în realizarea acestora. Atribuţiile în asigurarea securităţii bazelor de date sunt exemplificate în tabelul următor (tabelul 8): Tabelul 9. Atribuţii în asigurarea securităţii bazelor de date.

Controlul asupra atacurilor Anterior am văzut că, din date nesenzitive, prin diverse interogări ale bazei de date au rezultat date senzitive. Pentru a se preîntâmpina acest lucru se pot aplica următoarele metode:  suprimarea cererilor cu rezultate senzitive;  aproximarea rezultatelor;  limitarea rezultatelor unei cereri care dezvăluie date senzitive; 153



combinarea rezultatelor.

Cererile de acces la elementele bazei de date care au ca rezultat afişarea unor rezultate senzitive sunt rejectate fără nici un răspuns. Datele senzitive nu vor fi afişate. Rezultatul unei astfel de interogări va fi corect, dar nu va fi afişat către utilizator. În cazul unei astfel de cereri sistemul va putea să afişeze rezultate apropiate de cele reale. Acurateţea rezultatului la o interogare care poate dezvălui date senzitive trebuie să fie mică. Limitarea rezultatului unei cereri, care dezvăluie date senzitive se poate face în cazul în care acesta este 1 (unu). Dacă vom aplica pe rând atacuri (figura 43) cu funcţii de forma exemplificată în figura 44 şi vom centraliza rezultatele sub formă de tabel (tabelul 9), vom vedea că avem rezultate dominante care trebuie suprimate.

Figura 43. Tabela supusă atacului.

154

Figura 44. Atacul indirect folosind funcţia COUNT condiţionat. Tabelul 9. Centralizarea rezultatelor

În această situaţie trebuie să suprimăm cererile care au ca rezultat valori dominante (1) sau să nu permitem afişarea rezultatelor chiar dacă cererea se execută în aşa fel încât rezultatele să fie afişate sub forma următoare (tabelul 10): Tabelul 10. Afişarea cu suprimare a rezultatelor

Se observă că situaţia nu este rezolvată, trebuind să modificăm şi sumele pe linii şi pe coloane pentru a se crea confuzie şi a nu se mai putea extrage date senzitive. Combinarea rezultatelor se face prin afişarea acestora întro plajă de valori care să nu permită extragerea datelor exacte. Făcând o contorizare pe tip de sancţiuni şi gruparea acestora pe sexe, vom avea situaţii dominante (tabelul 11): Tabelul 11. Rezultate contorizări

Soluţia ar fi combinarea coloanelor pentru a nu se putea extrage date exacte. 155

Combinăm coloanele cu “0”cu “1” şi “2” cu “3”. Rezultatul este următorul (tabelul 12): Tabelul 12. Combinarea rezultatelor

Pentru a se preîntâmpina atacurile este necesar să se ţină o evidenţă amănunţită pentru fiecare utilizator, chiar dacă acest lucru presupune o activitate complexă şi implică timp. De asemenea, trebuie făcută o analiză a cererilor care pot fi rău intenţionate. → Pentru a preîntâmpina extragerea datelor senzitive din bazele de date am realizat un program care monitorizează toate operaţiile efectuate de utilizatori pe bazele de date. Operaţiile de monitorizare efectuate de acest program au fost prezentate în acest capitol, paragraful 5.1. La acest punct suntem interesaţi doar de fişierul bază de date accesat de utilizator, tipul de operaţii efectuate şi listarea acestora. În acest mod, toate operaţiile efectuate de utilizatori pot fi analizate şi se pot trage concluzii privind securitatea bazelor de date ale firmei.

Securitatea bazelor de date multinivel Se disting trei caracteristici de bază ale securităţii bazelor de date: 1. Securitatea unui singur element poate fi diferită de securitatea altui element din aceeaşi înregistrare sau de valoarea aceluiaşi atribut. Aceasta implică implementarea securităţii pentru fiecare element în parte. 156

2.

Sunt necesare câteva perimetre se securitate care vor reprezenta arii de acces la anumite date care uneori se pot suprapune. 3. Securitatea unui întreg poate fi diferită de securitatea unui element individual. Aceasta poate fi mai mare sau mai mică. Pentru a se asigura securitatea bazelor de date se pot aplica următoarele metode: • partiţionarea bazei de date; • criptarea; • blocarea integrităţii; • blocarea senzitivităţii; • securitatea “front-end”; • filtru comutativ; • vederi ale bazei de date. Partiţionarea bazei de date Baza de date este împărţită în baze de date separate, fiecare dintre acestea cu propriul ei nivel de securitate. Operaţia mai poartă numele de atomizarea bazei de date. Ca efect secundar, această operaţie va distruge avantajul principal al bazei de date dar îmbunătăţeşte precizia. Criptarea Dacă datele senzitive sunt criptate, un utilizator care ajunge din întâmplare în posesia unor date senzitive nu va putea să le interpreteze şi să se folosească. Aceasta criptare este însă vulnerabilă la atacuri cu text clar sau când atacatorul substituie forma de criptare cu o alta. Pentru a se preîntâmpina aceasta se pot face următoarele:  folosirea de criptări diferite pentru aceeaşi înregistrare şi diferite chei pentru fiecare câmp; 157

 criptarea câmpurilor înregistrării folosind metoda block chaining (CBC, CFB etc.).

Aceste metode de criptare sunt exemplificate în figura următoare (figura 45).

Figura 45. Criptarea înregistrării. 158

Blocarea integrităţii Reprezintă o cale folosită atât pentru blocarea integrităţii, cât şi pentru limitarea accesului la baza de date. Metoda mai poartă şi denumirea de .spray paint. deoarece fiecare element este colorat în funcţie de senzitivitatea acestuia. Culoarea este menţinută cu elementul pe care-l caracterizează şi nu într-o bază de date separată. Fiecare dată va conţine trei elemente:

  

Datele vor fi stocate în text clar pentru sporirea eficienţei. Referitor la clasificare, aceasta trebuie să fie: nefalsificabilă - un utilizator răuvoitor nu va putea crea o nouă dată senzitivă pentru un element; unică - utilizatorul răuvoitor nu va putea să copieze un nivel de senzitivitate dintr-un alt element; secret - utilizatorul răuvoitor nu va putea să determine senzitivitatea pentru un obiect oarecare.

Suma de control criptografică, pentru a putea să fie unică, trebuie să conţină date despre:  înregistrare;  câmp;  date ale elementului (figura 46). 159

Figura 46. Suma de control criptografică. Blocarea senzitivităţii Blocarea senzitivităţii reprezintă o combinaţie a două elemente:  existenţa unui identificator unic (numărul de înregistrare);  nivelul de securitate. Trebuie să nu se permită aflarea a două elemente care au acelaşi nivel de securitate doar prin căutarea în porţiunea de securitate a blocării integrităţii. Ca rezultat al criptării, conţinutul blocării, în special nivelul de securitate, este ascuns (figura 47).

160

Figura 47. Blocarea senzitivităţii. Securitatea “front-end” Securitatea front-end (cunoscută şi sub denumirea de gardă) este asigurată de un mecanism de tip monitor. Secvenţa de interacţiuni între utilizator şi mecanismul front-end este următoarea:  utilizatorul se identifică front-end;  utilizatorul transmite o cerere mecanismului front-end;  mecanismul front-end verifică autorizaţia utilizatorului de a acces la date;  mecanismul front-end trimite o cerere către sistemul de gestiune al bazei de date (SGBD);  sistemul de gestiune al bazei de date (SGBD) efectuează o operaţie de acces de tip I/O;  sistemul de gestiune al bazei de date (SGBD) trimite rezultatul interogării către mecanismul front-end; 161



 

mecanismul front-end verifică validitatea datelor extrase cu ajutorul sumelor de control şi verifică dacă datele pot fi disponibile către utilizator conform nivelului de acces al utilizatorului; mecanismul front-end va formata datele pentru utilizator; se transmit datele către utilizator. Filtru comutativ

Filtrul comutativ interacţionează atât cu utilizatorul, cât şi cu sistemul de gestiune al bazei de date (SGBD). Filtrul comutativ va reformula cererile în felul următor:  sistemul de gestiune al bazei de date (SGBD) va efectua cât mai multe sarcini posibile rejectând cât mai multe cereri inacceptabile care dezvăluie date senzitive;  selectarea datelor la care utilizatorul poate să aibă acces. Filtrul comutativ poate fi folosit atât asupra înregistrărilor, cât şi asupra atributelor sau elementelor. La nivelul înregistrărilor, filtrul cere datele dorite plus suma de control criptografică; dacă acestea verifică acurateţea şi accesibilitatea datelor, atunci acestea pot fi transmise către utilizator. La nivel de atribut, filtrul verifică dacă toate atributele din cererea utilizatorului sunt accesibile acestuia, şi dacă da, transmite cererea către managerul bazei de date. La revenire va şterge toate cererile la care utilizatorul nu poate să aibă acces. La nivel de element, sistemul va cere datele solicitate şi suma de control criptografică. Când sunt returnate, acestea verifică apartenenţa la niveluri de securitate pentru fiecare element. Vederile

162

Vederile reprezintă un subset al bazei de date la care utilizatorul poate avea acces. Vederile pot reprezenta un subset al bazei de date pentru un singur utilizator, în acest caz cererile celorlalţi utilizatori vor accesa acelaşi tip de date. Datele care sunt accesibile unui utilizator se obţin prin filtrarea conţinutului bazei de date originale. Utilizatorul nu este conştient de existenţa tuplurilor care lipsesc din vederea respectivă. O vedere poate fi definită din mai multe tabele, pentru care utilizatorul deţine privilegiul corespunzător de utilizare, dar nu şi de folosire a tabelelor de bază. Utilizarea, în acest caz a vederilor, este mai restrictivă decât simpla deţinere a privilegiilor acordate utilizatorului asupra tabelelor de bază. SGBD-ul stochează definiţia vederii în baza de date. Când SGBD-ul întâlneşte o referire la o vedere, caută această definiţie şi transformă cererea respectivă într-o cerere echivalentă către tabelele care constituie sursa vederii, după care efectuează cererea. Folosirea vederilor pentru asigurarea securităţii bazelor de date mai este întâlnită în literatura de specialitate şi sub denumirea de securitate discreţionară şi este caracteristică sistemelor bazate pe SQL. Folosirea vederilor bazelor de date are ca efect crearea unor facilităţi în exploatare, dar poate aduce şi dezavantaje (tabelul 12). Tabelul 12. Avantajele şi dezavantajele folosirii vederilor

163

Cu ajutorul instrucţiunilor SQL se pot crea vederi orizontale şi verticale. Sintaxa este următoarea:

Exemplificăm pe tabela următoare (SALA)(tabelul 13). Tabelul 13. Tabela SALA (salariaţi)

Crearea vederii orizontale se face în felul următor: CREATE VIEW SORT_O SELECT * FROM SALA WHERE SALB >6000000 Rezultatul va fi următorul: SORT O

164

Crearea vederii verticale se face în felul următor: CREATE VIEW SORT_V SELECT NUME, SALB, COMP FROM SALA Rezultatul va fi următorul: SORT V

Se pot aplica, de asemenea, şi combinaţii ale acestora; în acest fel se creează vederi mixte. Vom considera următorul scenariu (figura 48):

165

Figura 48. Scenariu de lucru pentru crearea vederilor mixte. Structura bazelor de date pentru acest scenariu este exemplificată în cele ce urmează. Pentru personalul angajat vom avea următoarea structură (tabelul 14): Tabelul 14. Structura personal angajat (SALA).

Pentru obiectivele pe care firma le are de executat vom avea următoarea structura (tabelul 15): Tabelul 15. Structură proiecte firmă (PROI). 166

DENP - denumire proiect, OBIE - obiectiv, CLIE - client/beneficiar, MANA - responsabil proiect.

Tabela de legături are următorul conţinut (tabelul 16): Tabelul 16. Tabela de legături (LEGA).

Aplicăm vederile. CREATE VIEW SALA_PROD AS SELECT CNP, NUME, COMP FROM SALA WHERE COMP = P Cu rezultatul (tabelul 17): Tabelul 17. Vedere SALA_PROD.

167

şi CREATE VIEW COMP_ANTR AS SELECT DENP, OBIE, COMP FROM PROI, LEGA, ANGA WHERE SALA.CNP = LEGA.CNP AND LEGA.DENP = PROI.DNP Cu rezultatul (tabelul 18): Tabelul 18. Vedere COMP_ANTR.

Acest mecanism de securitate este aplicat în SQL. La definirea vederilor prin CREATE VIEW, se poate limita accesul numai la bazele de date al căror proprietar este utilizatorul respectiv, folosind o condiţie selecţie cu cuvântul cheie USER, prin care se dă identificatorul utilizatorului. Orice operaţie din baza de date se face numai pe baza unei autorizări pentru acea operaţie. Iniţial, sistemul acordă toate drepturile de operare pentru administratorul sistemului (SYSADM) şi nu acordă nici un drept celorlalţi utilizatori. Ulterior, drepturile de operare pentru utilizatori sunt stabilite de către administratorul sistemului prin intermediul instrucţiunii GRANT şi revocate prin instrucţiunea 168

REVOKE. Sintaxa acestor comenzi este exemplificată în figura 49.

Figura 49. Sintaxa comenzilor GRANT şi REVOKE.

169

6.2. Arhitecturi pentru asigurarea securităţii bazelor de date La ora actuală există două abordări majore pentru asigurarea securităţii bazelor de date. Acestea au în vedere încrederea care poate fi acordată celor două elemente care vor interacţiona cu bazele de date, şi anume: sistemul de gestiune al bazelor de date (SGBD) şi sistemul de operare (SO - Operating System). Ţinând cont de acestea, vom avea următoarele două abordări:  arhitectură cu subiecţi siguri;  arhitectură cu subiecţi nesiguri (arhitectura Woods Hole). Arhitectura cu subiecţi siguri porneşte de la presupunerea că atât SGBD-ul, cât şi SO care vor interacţiona cu bazele de date sunt sigure (de încredere). Această abordare se întâlneşte la majoritatea SGBD-urilor (Sybase, Informix, Ingres, Oracle, DEC, Rubix). Arhitectura cu subiecţi nesiguri porneşte de la presupunerea că SO este sigur, dar SGBD-ul este nesigur. Această arhitectură este implementată în trei variante:  arhitectură cu blocarea integrităţii;  arhitectură integrată;  arhitectură replicată/distribuită. Acest tip de arhitectură se implementează la SGBD-urile TRUEDATA şi Oracle, precum şi la altele mai puţin cunoscute, aflate în faza de prototipuri, Mitre şi SeaView. Arhitectura cu subiecţi siguri este prezentată în figura 50.

170

Figura 50. Arhitectură cu subiecţi siguri. Întrucât se pleacă de la presupunerea că atât SDBD-ul, cât şi SO asigură o protecţie suficientă, mecanismele de securitate de tip .front end. nu sunt implementate în versiuni sofisticate. Se observă că atât utilizatorii cu drepturi depline (superutilizatorii), cât şi utilizatorii cu restricţii au acces la date beneficiind de securitatea asigurată de SGBD şi SO. Arhitecturile cu subiecţi nesiguri merg pe presupunerea că SO asigură o protecţie de nivel înalt, iar SGBD-ul o protecţie medie. În acest caz, mecanismele de securitate de tip “front end” trebuie să asigure o securitate ridicată. 171

Arhitectura cu blocarea integrităţii este prezentată în figura 51.

Figura 51. Arhitectură cu blocarea integrităţii

172

Figura 52. Arhitectură integrată. Se observă că mecanismul de securitate “front end” dispune de o puternică unitate de criptare, care asigură accesul la date atât pentru utilizatorul cu drepturi depline, cât şi pentru utilizatorul care are restricţii la accesare. Fiecare, însă, la datele pentru care are drepturi de accesare. 173

Figura 53. Arhitectură replicată/distribuită. În cazul arhitecturii integrate (figura 52), accesul se face prin două tipuri distincte de SGBD-uri. Sistemul de operare, care este considerat sigur, va avea un rol important în asigurarea accesului la datele care sunt dispuse pe disc. Din punct de vedere al accesului la date se observă o asemănare cu arhitectura replicată/distribuită (figura 53). 174

Arhitectura replicată/distribuită (figura 53) foloseşte un mecanism de replicare sigur care va canaliza cererile. Utilizatorul cu drepturi depline (superutilizatorul) va avea acces, prin intermediul acestui mecanism, şi la datele utilizatorului cu restricţii (dacă este specificat aceasta în drepturile de acces).

175

Capitolul VII. Steganografia 7.1. Introducere Steganografia, este ştiinţa ascunderii datelor. Cuvântul steganografie, provine din limba greacă şi înseamnă scris ascuns; acest cuvant, a folosit pentru prima oara de un stareţ care a publicat în 1499 o lucrare intitulată "Steganographia" şi care trata tehnici de scris ascuns. Steganografia, include o varietate mare de metode de comunicare secretă. Printre aceste metode, se numără: scrierea cu cerneală invizibila, microfotografii, aranjarea caracterelor (o alta aranjare decât cea obţinută prin criptografiere), s.a. Steganografia, nu înlocuieşte criptografia, ea oferind încă un strat de protecţie dacă acestea două sunt folosite împreună. Importanţa steganografiei, a fost evidenţiata mai ales în timpul razboaielor, ea fiind folosită de sute de ani, sub diferite forme. Primul document care descrie folosirea steganografiei pentru ascunderea mesajelor transmise, este scris de Herodot. În Grecia antica, se scria pe tabliţe de lemn acoperite cu ceara. Astfel, pentru a transmite mesaje care să nu dea de bănuit, ceara era dată jos de pe tăbliţa de lemn, mesajul era încrustat direct pe lemn, după care era acoperit din nou cu ceară. O altă metodă era raderea în cap a unui mesager, tatuarea pe cap a unui mesaj, după care se aştepta creşterea părului. O altă cale de transmitere a mesajelor, era scrierea cu substanţe invizibile. Asemenea substanţe au fost folosite cu mare succes în al doi-lea război mondial. Astfel, o scrisoare care părea banală, putea conţine diferite mesaje scrise între rânduri. La începuturile celui de-al doi-lea război mondial, tehnicile de steganografie, constau aproape în exclusivitate din scrierea cu 176

substanţe invizibile. Aceste substanţe puteau fi: lapte, oţet, suc de fructe, urina, etc. Cu avansarea tehnologiei, aceste "cerneluri" au fost înlocuite cu substanţe tot mai sofisticate, care reacţionau la diferite substante chimice, iar pentru obţinerea mesajului, hârtia era trecută prin băi cu diferite substanţe. O alta cale de transmitere a mesajelor, era "spargerea" textelor în litere şi punerea lor într-o anumită poziţie în cuvinte care formează un text care nu trezeşte nici o suspiciune. O astfel de tehnică, a fost folosită de un spion german în cel de-al doilea razboi mondial. Unul din textele pe care le-a trimis, era următorul: "Apparently neutral's protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by products, ejecting suets and vegetable oils." Astfel, dacă se ia a doua literă din fiecare cuvânt, se obţine mesajul: "Pershing sails from NY June 1". Cu dezvoltarea tehnicilor de detectare a mesajelor, s-au dezvoltat şi tehnicile de steganografie, inventându-se noi metode care puteau să transmită mai multă informaţie într-o formă mai ascunsă. Germanii, au inventat microfotografiile, metodă prin care se putea transmite printr-o fotografie de mărimea unui caracter, pagini de ziar cu o claritate uimitoare. Prima microfotografie, a fost descoperitţ pe un plic, care era dus de un agent german în 1941. Dar, cu fiecare metodă de steganografie care a fost descoperită, o alta a fost inventată. Chiar şi aranjarea în pagină a unui document, poate ascunde un mesaj. De exemplu, dacă se ia textul : "We explore new steganographic and cryptographic algorithms and techniques throughout the world to produce wide variety and security in the electronic 177

web called the Internet." şi se muta cu câteva spaţii unele cuvinte din text, se obţine textul: "We explore new steganographic and cryptographic algorithms and techniques throughout the world to produce wide variety and security in the electronic web called the Internet." Dacă cele două texte se suprapun, se obţine: "We explore new steganographic and cryptographic algorithms and techniques throughout the world to produce wide variety and security in the electronic web called the Internet." Aceasta, este obţinută prin expandarea cu un spaţiu înainte de "explore", "the", "wide" şi "web" în primul text şi condensarea cu un spaţiu după "explore", "the", "wide" şi "web" în al doilea text.

7.2. Software steganografic Software-ul steganografic, este nou şi foarte eficace. Asemenea software, permite ascunderea informaţiilor în fişiere de sunet, imagini şi pe medii care aparent par goale. O imagine, este reprezentată ca un şir de numere, care reprezintă intensităţile luminii în diferite puncte (pixeli). O rezolutie destul de folosită a unei imagini este cea de 640 pe 480 pixeli, având 256 de culori (8 biti pe pixel). O astfel de imagine conţine aproximativ 300K de date. 178

De obicei, sunt două tipuri de fişiere folosite pentru a ascunde date într-o imagine: fişierul imagine iniţial, numit container şi mesajul care se doreşte a se ascunde. Mesajul care se ascunde poate fi simplu text, un text criptat, o altă imagine sau orice altceva ce poate fi ascuns în biţii cel mai puţin semnificativi (ultimul bit al unui byte). De exemplu, o imagine cu rezoluţia de 1024x768 pe 24 de biti (3 bytes sau octeti), poate produce un fişier de peste 2MB (1024x768x24/3). Toate variaţiile de culori, sunt derivate din 3 culori principale: roşu, verde şi albastru. În această imagine, fiecare culoare este reprezentată de 3 octeţi (fiecărei culori principale, îi revine câte un octet). Dacă informaţia este ascunsă în fiecare cel mai puţin semnificativ bit, 3 biţi, pot fi ascunşi în fiecare pixel. Imaginea container, va arăta exact la fel cu imaginea în care au fost ascunse datele (deoarece ochiul uman nu face distincţie între 2 culori atât de apropiate) şi va avea aceaşi mărime (deoarece doar se înlocuieşte ceva cu altceva, neadăugându-se sau ştergându-se nimic). Fişierele imagine care sunt cele mai recomandate, sunt imaginile pe 24 de biţi (alternativa puţin acceptată deoarece ocupă un spaţiu mare) care pot ascunde multă informaţie sau fişierele care conţin imagini alb-negru, deoarece diferenţele de culoare sunt foarte departate. Astfel, imaginea din figura 54 conţine culorile posibile ale unei imagini alb-negru pe 1 octet (2 =256 culori).

179

Figura 54. culorile posibile ale unei imagini alb-negru pe 1 octet Orice culoare dintr-o astfel de imagine, poate fi înlocuită cu o altă culoare pe 4 biţi, iar restul de patru să fie folosiţi pentru ascunderea datelor. Exemplu de paleta de culori pe 4 biţi:

7.3. Exemple Pentru a arăta diferenţa dintre o imagine obişnuită şi o imagine steganografiată, am inclus nişte teste (cam vechi, de prin 1998) făcute cu diferite softuri steganografice. Mesajele care se doresc transmise, sunt un text în limba engleza şi o imagine, astfel: Mesajul 1, notat cu M1: "Steganography is the art and science of communicating in a way which hides the existence of the communication. In contrast to 180

cryptography, where the "enemy" is allowed to detect, intercept and modify messages without being able to violate certain security premises guaranteed by a cryptosystem, the goal of steganography is to hide messages inside other "harmless" messages in a way that does not allow any "enemy" to even detect that there is a second secret message present [Markus Kuhn 1995-07-03].". Mesajul 2, notat cu M2, este o imagine din satelit a unei baze sovietice de bombardiere din Dolon, Kazakstan, făcută pe 20 August 1966 şi esste redat în figura 55.

181

Figura 55. Imaginea M2 din satelit a unei baze sovietice de bombardiere din Dolon, Kazakstan Astfel de fotografii (din anii 1960), pot fi luate de pe siteul http://edcwww.cr.usgs.gov/dclass. Imaginile container care vor fi folosite, sunt o poză a unui Renoir şi un portret al lui William Shakespeare. Primul fişier container, notat cu C1, se poate găsi pe siteul unui muzeu francez la http://www.cnam.fr/wm/paint/auth/renoir.

182

Figura 56. Imagine container C1 repezentând o pictura de Renoir Al doi-lea fişier container, notat cu C2, (portretul lui William Shakespeare) poate fi luată de pe site-ul http://www.cultureware.com/cultureware/shakespeare

183

Figura 57. Imagine container C2 repezentând o portretul lui William Shakespeare Imaginea lui Shakespeare, este prea mică pentru a ascunde mesajul M2, dar se poate ascunde mesajul M1, fără să se observe aproape nici o diferenţă. Din soft-urile testate, doar două au reuşit să ascundă mesajul M2, mesajul M1, fiind ascuns de orice soft, în orice container. În al doi-lea set de teste s-a incercat ascunderea ambelor mesaje (M1 si M2) într-un singur container (s-au folosit tot C1 şi C2, sau alte containere). Soft-urile cu care s-au făcut testele, sunt: Hide and Seek, StegoDos, White Noise Storm si S-Tools. Toate aceste programe sunt shareware. Aproape fiecare autor al acestor soft-uri a recomandat criptarea mesajelor înaintea steganografierii, unele chiar folosindo direct.

184

7.3.1. Hide and Seek Nu a reusit decât să ascundă mesajul M1. Acesta este ascuns în containerul C2. Imaginea din stânga este imaginea originală, iar cea din dreapta, imaginea cu mesajul M1.

7.3.2. StegoDos Este destul de dificil de folosit, atât la "punerea" textului, cât şi la "luarea" lui. La fel, imaginea din stânga reprezintă imaginea originală. Nu s-a reuşit decât includerea mesajului M1.

185

186

7.3.3. White Noise Storm Cu acest soft, s-a reuşit ascunderea şi a mesajului M2. Este destul de usor de folosit şi se obţine o degradare foarte mică a containerului. Imaginea de mai jos, conţine rezultatul înscrierii lui M1 în C2. Acest soft, include şi o rutina de criptare înainte de a ascunde mesajul în container.

Rezulatul includerii bazei aviatice în Renoir, este dat mai jos.

187

7.3.4. S-Tools Este cel mai bun soft testat. Cuprinde mai multe aplicaţii, printre care ascunderea de mesaje în fişiere .bmp, .gif, în fişiere .wav şi chiar pe dischete goale. Şi acest soft, cuprinde posibilitatea de criptare a mesajului, el folosind algoritmii Idea, MPJ2, DES, 3DES si NSEA. Imaginea de mai jos, cuprinde containerul C2, înainte (dreapta) şi după inscripţionarea lui M1.

188

Imaginea de mai jos, cuprinde containerul C1, în care este mesajul M2:

189

Concluzii •



Steganografia, nu este facută pentru a înlocui criptarea, ea fiind un element suplimentar care sporeşte posibilitatea transmiterii de mesaje, fără a fi detectate. Astfel, dacă se ştie că o imagine conţine un mesaj, acel mesaj, va trebui întâi scos din container şi apoi decriptat (lucru nu tocmai uşor). Avantajul steganografiei, este că nu trezeşte nici o bănuiala, deoarece este un fişier text, grafic, etc. care la prima vedere pare inofensiv. Dar, dacă un anumit mesaj, criptat şi apoi trimis, este văzut de o a treia persoană, acesta poate atrage suspiciuni.

7.4. Compresia După partea de grafică, partea de compresie, este cea mai grea (datorită lipsei de documentaţii). În această categorie, vom include informaţii despre fractali şi despre unele formate de fişiere. Cu toate că este vorba tot de compresie, aici nu vom include informaţii despre fişierele imagine sau film, lăsându-le pentru partea de grafică. Compresia, este folosirea unor funcţii recursive pentru a crea fişiere de dimensiuni mai mici prin eliminarea redundanţei (a repetiţiilor). Un arhivator, este un program care ia ca argumente unul sau mai multe fişiere, le comprimă şi produce un singur fişier arhivă.

7.4.1. Compresia Huffman Compresia Huffman, este o tehnică de compresie statistică, care dă o reducere a codului folosit pentru reprezenta 190

simbolurilor alfabetului; adica, cu biti mai putini sunt reprezentate caracterele care apar mai des, iar caracterele care apar mai rar, cu biţi mai mulţi. Un cod Huffman, poate fi construit în felul următor: • se orânduiesc toate simbolurile în ordinea probabilităţii de apariţie • succesiv, se combină două simboluri cu probabilitate mică, pentru a crea un simbol compus nou; eventual, se crează arborele binar, unde fiecare nod, este probabilitatea tuturor nodurilor de la nivelele inferioare • se caută un drum la fiecare frunză, observându-se direcţia. Pentru o frecvenţă de distribuţie dată, sunt mai multe coduri posibile Huffman, dar lungimea fiţierului comprimat, va fi aceaşi. O altă tehnică de compresie înrudită cu compresia Huffman, este Shannon-Fano, care funcţioneaza astfel: 1. se împarte mulţimea de simboluri în douî submulţimi egale sau cel puţin egale ca mărime pe baza probabilităţii de apariţie a caracterelor din mulţimea-mama. Primei mulţimi ii este asociat un zero binar, iar celei de-a doua un unu binar. 2. se repetă pasul 1 până când toate submulţimile au un singur element Algoritmul Huffman, acţioneaza de jos în sus, iar algoritmul Shannon-Fano, acţioneaza de sus în jos; cea mai bună compresie o dă algoritmul Huffman, algoritmul Shannon-Fano, dând câteodată câţiva biţi în plus. Cei doi algoritmi, dau o compresie bună dacă probabilitatea apariţiei simolurilor, sunt intregi, puteri ai lui ½ (care, de obicei, nu este aşa).

191

7.4.2. Codarea aritmetica Codarea aritmetică, este folosită când probabilitatea apariţiei simbolurilor nu sunt întregi, puteri ai lui 1/2; această codare, obţine acelaşi efect ca şi codarea Huffman, tratând mesajul ca un tot unitar, şi, teoretic obţine compresia maximă pentru orice sursă. Codarea aritmetică, funcţionează prin reprezentarea unui numar, printr-un interval de numere reale între 0 şi 1. Cu cât mesajul devine mai lung, cu atât intervalul folosit pentru a-l reprezenta devine tot mai mic şi numărul de biţi utilizaţi pentru a reprezenta respectivul interval devine tot mai mare. Simbolurile succesive din mesaj, reduc acest interval, în conformitate cu probabilitatea apariţiei simbolului. Aceasta, este una dintre cele mai bune tehnici de compresie, dar nu este prea folosită deoarece este o mare consumatoare de resurse (atât de memorie, cât şi de procesor), folosindu-se alte alternative, cum ar fi compresia prin substituţie.

7.4.3. Compresia prin substitutie Ideea de bază la această compresie, este înlocuirea apariţiilor repetate a unei fraze sau a unui grup de simboluri (litere, cifre, etc.) cu o referinţă, care să indice prima apariţie a frazei, grupului de simboluri, etc. Această familie de compresoare, are două clase, numite după (iniţialele numelor) Jakob Ziv şi Abraham Lempel, primii care le-au propus, în 1977 şi 1978. Familia LZ78 Această familie funcţioneaza prin introducerea de fraze într-un dicţionar, şi când este găsită o repetiţie a acelei fraze, se înlocuieşte fraza cu indexul din dicţionar. Există mai mulţi 192

algoritmi care se bazează pe această idee, dar diferenţa principală, este modul în care lucrează cu dicţionarele. Cel mai cunoscut algoritm de acest tip, este LZW, creat în 1984 de Terry Welch, care a fost implementat şi în controller-ele de hard disk. LZW începe cu un dicţionar de 4K, din care intrările de la 0 la 255, fac referire la simboluri individuale, şi intrările 2564095 la subşiruri. De fiecare dată când un cod nou este generat, înseamnă că un nou şir a fost analizat. Noi şiruri sunt generate, prin adăugarea caracterului curent K, la sfârşitul unui sir deja existent, w. Algoritmul de compresie LZW, este: repetă{ citeşte caracterul K dacă wK există în dicţionar, w=wK altfel{ adaugă wK la tabela de şiruri w=K} } Un exemplu al algoritmului pe şirul "/WED/WE/WEE/WEB", este dat în tabelul 19:

193

Caracterul de intrare /W E D / WE / WEE /W EB SFARSIT

Tabelul 19. Exemplu de algoritm pe şirul "/WED/WE/WEE/WEB" Codul de ieşire Noile valori şi asocierile de şiruri / 256=/W W 257=WE E 258=ED D 259=D/ 256 260=/WE E 261=E/ 260 262=/WEE 261 263=E/W 257 264 B

Şirul rezultat după aplicarea algoritmului asupra codului de intrare, este "/WED<256>E<260><261><257>B". Decompresia LZW, ia ca intrare codul şi îl foloseşte pentru a crea exact textul original. La fel ca şi algoritmul de compresie, algoritmul de decompresie adaugă un nou şir dicţionarului de fiecare dată când citeste un nou cod. Un exemplu de decompresie a şirului "/WED<256>E<260><261><257>B", este dat în tabelul 20:

194

Caracterul de intrare / W E D 256 E 260 261 257 B

Tabelul 19. Exemplu de decompresie Codul de ieşire Noile valori şi asocierile de şiruri / W 256=/W E 257=WE D 258=ED /W 259=D/ E 260=/WE /WE 261=E/ E/ 262=/WEE WE 263=E/W B 264=WEB

Cea mai remarcabilă caracteristică a acestui tip de compresie este accea că întreg dicţionarul a fost transmis decompresorului fără ca dicţionarul să fie transmis ca un pachet suplimentar lângă datele comprimate; adică, el a putut fi recreat doar datorită datelor primite. Deci, întreg dicţionarul va fi gata doar la terminarea procesului de decompresie. Familia LZ77 Această familie de compresoare, funcţionează astfel: păstrează ultimii n octeţi văzuţi şi când este găsită o frază care a mai fost văzută, înlocuieşte fraza găsită cu poziţia frazei găsite prima oara şi cu lungimea frazei. Deci, compresorul mută o "fereastră" deasupra datelor, "fereastră" care conţine pe lângă frază şi o pereche (poziţie, lungime), care indică locul, respectiv lungimea frazei din fereastră. Cei mai folosiţi algoritmi, sunt cei derivaţi din algoritmul LZSS, descris pentru prima oară în 1982, de James Storer şi Thomas Szymanski. Aceşti algoritmi, ţin o 195

"fereastră" de N octeţi şi un buffer de înaintere, în al cărui conţinut încearcă să găsească o "potrivire" a "ferestrei": Cât timp (buffer-ul de înaintare nu este gol){ obţine o pereche (poziţie, lungime) a celei mai lungi potriviri din "fereastră", în buffer-ul de înaintare; dacă (Lungime>LungimeaMinimăDePotrivire){ scrie perechea (poziţie, lungime); mută fereastra cu Lungime caractere mai în faţă;} altfel{ scrie primul caracter din buffer-ul de înaintare; mută "fereastra" cu un caracter mai în faţă;} } Decompresia, se face astfel: de câte ori este găsită o pereche (poziţie, lungime), du-te la acea poziţie şi copiază “lungime octeţi” în fişierul de ieşire.

7.5. Fractali. Dimensiunea fractala Fractalii sunt forme geometrice, care pot fi împărţite în bucăţi, fiecare dintre ele, fiind o copie la scară redusă a întregului. Fractali pot fi consideraţi norii, muntii, copacii, malurile, etc. Denumirea de "fractal", a fost dată prima oară de Benoit Mandelbrot (un matematician de la IBM) de la adjectivului latin "fractus". Verbul corespunzator, este "frângere", care înseamnă "a sparge". Obiectele geometrice, au o dimensiune topologică; de exemplu, liniile au dimensiunea 1, suprafeţele plane (pătrate, cercuri, etc.) au dimensiunea 2, spatiul, dimensiunea 3. Dar, s-au construit figuri, care nu se puteau caracteriza prin nici una dintre dimensiunile cunoscute; unei linii curbe care uneşte două puncte, nu i se putea determina lungimea, iar dacă se făceau detalieri succesive asupra fiecărui punct de pe dreapta, lungimea liniei 196

creştea (conturul unui munte se detaliază cu cât distanţa de la care este privit este mai mică). Astfel, în 1919, matematicianul Hausdorff, a introdus o noua dimensiune, dimensiunea fractală sau dimensiunea Hausdorff. Această dimensiune, măsoara numărul de mulţimi de diametre mai mici, necesare pentru a acoperi o figură. Dacă acest numar este întreg, atunci dimensiunea este topologică, altfel, dimensiunea este fractală. De exemplu, o linie dreaptă mărită de 2 ori, este de două ori mai mare decat linia iniţială; dimesniunea ei, este log2/log2=1. Un pătrat mărit de 2 ori, este de 4 ori mai mare decât pătratul iniţial (aria sa cuprinde 4 arii a pătratului iniţial), iar dimensiunea lui, este log4/log2=2. Într-un cub, mărit de 2 ori, încap 8 cuburi iniţiale, iar dimensiunea lui este log8/log2=3. Dacă se ia o dreaptă, în care se înlocuieşte repetat __ cu _/\_, unde fiecare 4 linii sunt 1/3 din lungimea vechii linii şi se măreşte de 3 ori, rezultă o linie care este de 4 ori mai mare şi care are dimensiunea log4/log3=1.261..., dimensiune care nu este o valoare întreagă, fiind deci o dimensiune fractală. Fractalii, sunt folosiţi mai ales la compresia imaginilor. Este o tehnica relativ nouă şi care nu dă rezultate destul de bune în comparaţie cu alte tehnici de compresie a imaginilor. De exemplu, dacă se ia un portret alb-negru, cu culori pe 8 biti şi se trece prin programul de compresie, se obţine un fişier de 2500 octeţi (se obţine o compresie de 25:1). Dacă se măreşte părul persoanei din portret de 4-5 ori, se va vedea o textură care seamănă cu părul. Dar, detaliile nu s-au arătat, ci s-au generat; deci, dacă se va mări faţa persoanei, nu se vor vedea porii pielii, ci aceaşi textură, ca şi cum ar fi mărită cu lupa.

197

Bibliografie • IEEE Transactions on Computers, 1986 - 2004 • C. Bacivarov, Securitatea sistemelor informatice - Rubrica permanentă "Societatea informaţională" - Calitatea, 2003 - 2004 • R. Lupan, A.Kobi, C. Robledo, I. Bacivarov, ISO 9000:2000 Quality System Improvement Using the Six Sigma Methology, Proceedings of the 3rd International Conference on the Management of Technological Changes, Chania, Greece, August 2003, pp.131 –137

• Andrew S. Tanenbaum: Retele de calculatoare (editia a treia), Computer Press AGORA (1998) • Victor-Valeriu Patriciu, Monica Pietrosanu-Ene, Ion Bica, Costel Cristea: Securitatea informatica in UNIX si INTERNET , Editura tehnica (1998) • Marshall Wilensky & Candace Leiden , TCP/IP pentru toti, Editura Teora (1996) • Iosif Ignat, Adrian Kacso: Unix - gestionarea proceselor, Editura Albastra (1995) • V. Cristea, A. Paunoiu, E. Kalisz, I. Athanasiu, L. Negreanu, S. Calinoiu, F. Baboescu: UNIX, Editura Teora (1993) • Valer Bocan – Stadiul actual al dezvolt_rii sistemelor de securitate pentru re!ele de calculatoare de înalt_ siguran!_, Referat doctorat nr. 1, Universitatea „Politehnica” Timi4oara, Facultatea de Automatic% 4i Calculatoare, 2001 • Valer Bocan – Developments in DOS Research and Mitigating Technologies, Periodica Politehnica, Transactions on Automatic Control and Computer Science, Vol. 49 (63), CONTI 2004 • Valer Bocan – Threshold Puzzles: The Evolution of DOSresistant Authentication, Periodica Politehnica, Transactions on Automatic Control and Computer Science, Vol. 49 (63), CONTI 2004 198

• Computer Emergency Response Team - CERT advisory CA-2000.01 Denial of service developments, 2000 (http://www.cert.org/advisories/CA-2000-01.html) • Scott A. Crosby, Dan S. Wallach – Denial of Service via Algorithmic Complexity Attacks, Proceedings of the12th USENIX Security Symposium, 2003 • Drew Dean, Adam Stubblefield – Using Client Puzzles to Protect TSL, http://www.csl.sri.com/users/ddean/papers/usenix01b.pdf, Proceedings of the10th USENIX Security Symposium, 2001 • Digital Equipment Corporation – Performance tuning tips for Digital Unix, iunie 1996, http://www.abdn.ac.uk/local/apache/manual_1.3.4/misc/perfdec.h tml • Prashant Dewan, Partha Dasgupta, Vijay Karamcheti – Defending Against Denial of Service Attacks Using Name Secure Resolution, The 23rd International Conference on Distributed Computing, 2003 • The Distributed.net Organization, http://www.distributed.net • Peter Druschel, Gaugrav Banga – Lazy receiver processing (LRP): a network subsystem architecture for server systems, Proceedings of the 2nd USENIX Symposium on OSDI, Seattle, 1996 • Cynthia Dwork, Moni Naor – Pricing via Processing or Combating Junk Mail, Proceedings of CRYPTO ’92, Springer Verlag, 1992 • P. Ferguson, D. Senie – Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing, RFC 2267, 1998 • Alan O. Freier, Philip Karlton, Paul C. Kocher – The SSL Protocol, Version 3.0 (Internet Draft), Transport Layer Security Working Group, 1996 199

• Ari Juels, John Brainard – Client puzzles: A cryptographic defense against connection depletion attacks, Proceedings of the NDSS 1999 • Charlie Kaufman, Radia Perlman, Mike Speciner – Network Security. Private Communication in a Public World, Prentice Hall, 2002 • Catherine Meadows – A formal framework and evaluation method for network denial of service, Proceeding of the 1999 IEEE Computer Security Foundations Workshop, Mordano, Italy, 1999 • R. C. Merkle – Secure Communications Over Insecure Channels, Communications of the ACM, 1978 • Rolf Oppliger – Authentication Systems for Secure Networks, Artech House, Inc., 1996 • Victor-Valeriu Patriciu – Criptografia şi securitatea reţelelor de calculatoare, Editura Tehnică, 1994 • Ping-Herng Denny Lin – Survey of the Denial of Service Countermeasures, California State University, Fullerton, 2000 • Valentin Razmov – Denial of Service Attacks and How to Defend Against Them, University of Washington, 2000 • Ronald R. Rivest, Adi Shamir, David A. Wagner – Timelock Puzzles and Timed-release Cryptography, 1996, http://lcs.mit.edu/~rivest/RivestShamirWagner-timelock.pdf • Stefan Savage, David Wetherall, Anna Karlin, Tom Anderson – Practical network support for IP traceback, technical report UW-CSE-00/02/0, SIGCOMM ‘00, 2000 • Bruce Schneier – Distributed denial of service attacks, Crypto-gram newsletter, 2000 • SETI @home Program, http://setiathome.ssl.berkely.edu • Shon Harris – DOS Defense, Information Security Magazine, 2001

200

• Oliver Spatscheck, Larry Peterson – Defending against denial of service in Scout, Proceedings of 3rd USENIX/ACM Symposium on OSDI, p. 59-72, 1999 • Tuomas Aura, Pekka Nikander, Jussipekka Leiwo – DOSresistant authentication with client-puzzles, Proceeding of the Cambridge Security Protocols Workshop 2000, LNCS, Cambridge, UK, 2000

201

Related Documents


More Documents from "Andrei Chihai"