131
7 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 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 cript are 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ă.

Securitatea Datelor

Embed Size (px)

DESCRIPTION

Curs la disciplina Securitatea datelor. PU sudenii universitatii Tehnice si TI.Subiecte, CRIPTOGRAFIE,Algoritm de criptate a daelor, Cifri, Protocoale de transmisii securizate, Stenografia si altele.

Citation preview

Page 1: Securitatea Datelor

7

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 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ă.

Page 2: Securitatea Datelor

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:

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.

Page 3: Securitatea Datelor

9

criptarea cu chei publice - în care se folosesc chei diferite pentru criptare şi

decriptare. Se mai numeşte şi criptare asimetrică.

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.

Protecţia datelor (confidenţialitatea) impune ca transformarea de cifrare Dk

(respectiv cheia) să fie protejată (figura 2).

Page 4: Securitatea Datelor

10

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 Ek (cheia de cifrare) să

fie protejată

(figura 3)

Figura 3. Autentificarea datelor.

Page 5: Securitatea Datelor

11

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ă (one-way). Î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ându-se 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

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).

Page 6: Securitatea Datelor

12

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)).

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)

Page 7: Securitatea Datelor

13

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.

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.

Page 8: Securitatea Datelor

14

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:

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.

Page 9: Securitatea Datelor

15

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

1.2.1.2 Cifrarea prin substituţie

Page 10: Securitatea Datelor

16

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

Î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).

Page 11: Securitatea Datelor

17

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

Page 12: Securitatea Datelor

18

poziţiile 6 şi 7. Deci 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:

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

Page 13: Securitatea Datelor

19

literele alfabetului primar a literelor coloanelor tabelului scară în ordinea

crescătoare.

Astfel, de exemplu, pentru cheia mnemonică: A L F A B E T

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

de unde rezultă permutarea P (ALFABET):

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

Page 14: Securitatea Datelor

20

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, R-8256, ...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 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, Z-1.

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).

Page 15: Securitatea Datelor

21

Utilizarea unei secvenţe periodice de substituţii ale alfabetului măreşte în

mod semnificativ securitatea criptogramei prin nivelarea caracteristicilor statistice

ale limbii.

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.

Tabelul 1. Cifrul lui Vigenere

Page 16: Securitatea Datelor

22

Se parcurg următorii paşi:

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.

Page 17: Securitatea Datelor

23

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:

Page 18: Securitatea Datelor

24

Tabelul 2. Generarea rezultatului folosind cifrul lui Vigenere.

Page 19: Securitatea Datelor

25

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

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:

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.

Page 20: Securitatea Datelor

26

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 m1m2 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:

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,

Page 21: Securitatea Datelor

27

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.

Î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-grama-cifru, 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.

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.

Page 22: Securitatea Datelor

28

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.

Page 23: Securitatea Datelor

29

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

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;

Page 24: Securitatea Datelor

30

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.

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ă:

permutarea

substituţia.

Pentru realizarea acestor două operaţii se folosesc cutii pentru permutări şi

substituţii.

Permutarea cu ajutorul cutiilor

Page 25: Securitatea Datelor

31

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 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.

Page 26: Securitatea Datelor

32

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:

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

Page 27: Securitatea Datelor

33

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

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.

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.

Page 28: Securitatea Datelor

34

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

Pasul 6

se împarte Pre S block în 8 segmente de câte 6 biţi;

Page 29: Securitatea Datelor

35

fiecare segment este procesat de o casetă individuală S-Box (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 prelucrare-permutare;

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.

Page 30: Securitatea Datelor

36

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

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.

Page 31: Securitatea Datelor

37

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

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ă.

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.

Page 32: Securitatea Datelor

38

Page 33: Securitatea Datelor

39

Figura 14. Modul CBC.

1.2.2.3 Modul Feedback (OFB . Output Feedback şi CFB.

Page 34: Securitatea Datelor

40

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.

Page 35: Securitatea Datelor

41

Figura 16. Modul CFB.

Se observă ca textul clar este înlocuit de un bloc de K-biţ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.

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.

Page 36: Securitatea Datelor

42

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 Data Encryption Algorithm (IDEA)

Este considerat de unii specialişti ca fiind superior DES-ului. 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).

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).

Page 37: Securitatea Datelor

43

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.

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*(n-1)/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ă (one-way). Î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:

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.

Page 38: Securitatea Datelor

44

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ă.

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:

Page 39: Securitatea Datelor

45

dacă C = E(M), atunci M = D(C) sau D(E(M)) = M, pentru M {M};

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 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;

Page 40: Securitatea Datelor

46

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ă 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, a

3, ., 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 = AXa (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-Shamir-Adleman (RSA), cifrul El Gamal, cifrul

DSA (Digital Signature Algorithm), cifrul Pohling-Hellman (PH).

Page 41: Securitatea Datelor

47

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.

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).

Page 42: Securitatea Datelor

48

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.

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)

Page 43: Securitatea Datelor

49

Decriptarea

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’ = 2503

71 mod 3233 = 1133

S’’ = 125471

mod 3233 = 1498

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’ = 1133

791 mod 3233 = 2503

Sd’’= 1498791

mod 3233 = 1254

Page 44: Securitatea Datelor

50

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).

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:

Page 45: Securitatea Datelor

51

aH(M) mod n şi (KA(priv))

r * r

s mod n.

Dacă aceste două valori sunt egale, atunci semnătura este veridică şi deci

mesajul este

autentic.

Exemplu

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) = (100-127*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 * r

s mod n.

aH(M) mod n = 2

100 (mod 467) = 189

(KA(priv))r * r

s mod n = 132

2929

51 (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);

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: .

Page 46: Securitatea Datelor

52

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.

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 = (170

50 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

Page 47: Securitatea Datelor

53

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 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.

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.

Page 48: Securitatea Datelor

54

Exemplu:

A = (17, 38, 73, 4, 11, 1), se ordonează şi rezultă A = (1, 4, 11, 17, 38, 73). T = 53

An = 73 Nu se potriveşte Asignăm 0

An-1 = 38 T = T-an-1 = 15 Asignăm 1

An-2 = 17 Nu se potriveşte Asignăm 0

An-3 = 11 T = T-an-3 = 15 Asignăm 1

An-4 = 4 T = T-an-4 = 15 Asignăm 1

An-5 = 1 Nu se potriveşte Asignăm 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, 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 a<p, atunci:

(1) ap mod p = a sau a

p-1 mod p = 1

pentru p prim şi a<p, numărul x este inversul lui a dacă:

(2) ax mod p = 1.

Combinând (1) şi (2), rezultă

(3) ax mod p = 1 = a

p-1 mod p

sau

x = a p-2

mod p.

Exemplu:

x = a p-2

mod p = 35-2

mod 5= 33 mod 5= 27 mod 5= 2.

Secvenţa de transformare pentru algoritmul Merkle-Hellman îmbunătăţit este

următoarea:

se alege un .rucsac. simplu (exemplu A = (1, 2, 4, 9));

se alege un multiplicator w şi modulul n (unde n>sm);

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).

Page 49: Securitatea Datelor

55

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. 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ă).

Mesaju l 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].

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

Page 50: Securitatea Datelor

56

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 (Feedback Shift Register . FSB) care

generează o secvenţă într-un 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)

Page 51: Securitatea Datelor

57

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.

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).

Page 52: Securitatea Datelor

58

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ă.

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).

Page 53: Securitatea Datelor

59

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.

1.4 Modalităţii de utilizare a criptografiei în sistemele informatice

→ 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:

Page 54: Securitatea Datelor

60

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.

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 X-Wall 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):

Figura 19. Schema de funcţionare a dispozitivului X-Wall LX-xxx.

Page 55: Securitatea Datelor

61

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 într-un 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ă;

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.

Page 56: Securitatea Datelor

62

Criptarea rezistă doar la acţiunea cu SGBD-uri mai vechi 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ă:

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.

Page 57: Securitatea Datelor

63

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 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 MS-DOS/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).

Page 58: Securitatea Datelor

64

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.

Î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.

Page 59: Securitatea Datelor

65

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. 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 un utilitar pentru vizualizarea conţinutului fişierului vom putea să vedem textul

ascuns (figura 23).

Page 60: Securitatea Datelor

66

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.

→ 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).

Page 61: Securitatea Datelor

67

Capitolul II. Modalităţi de utilizare a programelor antivirus

în cadrul firmei

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.

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:

Page 62: Securitatea Datelor

68

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.

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.

Page 63: Securitatea Datelor

69

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

Page 64: Securitatea Datelor

70

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ă

Page 65: Securitatea Datelor

71

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).

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.

Page 66: Securitatea Datelor

72

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 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 schimb calculatorul respectiv este conectat la

Internet şi se face browsing, atunci cerinţele sunt foarte mari. Nu este suficient ca un program

Page 67: Securitatea Datelor

73

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).

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:

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).

Page 68: Securitatea Datelor

74

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 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, CD-ROM, 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).

Page 69: Securitatea Datelor

75

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).

Figura 28. Activarea opţiunii de protecţie la viruşi de macro.

Page 70: Securitatea Datelor

76

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.

Page 71: Securitatea Datelor

77

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 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ă printr-un singur server. De regulă, acel server este serverul central (figura 29).

Page 72: Securitatea Datelor

78

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;

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.;

Page 73: Securitatea Datelor

79

o atacuri folosind conexiunile prin modem. O conexiune modem este bidirecţională, lucru care

uşurează mult munca unui hacker.

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.

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:

Page 74: Securitatea Datelor

80

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).

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.

Page 75: Securitatea Datelor

81

Aceasta presupune existenţa unui proxy pentru FTP, pentru Telnet, pentru HTTP etc. De aceea se preferă

ca uneori să fie mai 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 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ă.

Page 76: Securitatea Datelor

82

Modul de funcţionare al unui proces NAT este exemplificat în figura 32 .

Figura 32. Funcţionarea unui proces NAT.

Page 77: Securitatea Datelor

83

3.3. Alegerea, instalarea şi configurarea firewall

→ 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.

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

Page 78: Securitatea Datelor

84

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 (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 hotfix-uri ş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.

→ 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

Page 79: Securitatea Datelor

85

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 într-adevă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 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.

Page 80: Securitatea Datelor

86

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 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 backdoors-urilor 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).

Page 81: Securitatea Datelor

87

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ă 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.

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ă.

Page 82: Securitatea Datelor

88

Figura 34. Scaner de staţie.

Scanerele de porturi reprezintă o categorie aparte de scanere folosite pentru maparea

calculatoarelor din reţea şi 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.

Page 83: Securitatea Datelor

89

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 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.

Page 84: Securitatea Datelor

90

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 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ă.

Page 85: Securitatea Datelor

91

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 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ă.

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:

Page 86: Securitatea Datelor

92

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).

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.

Page 87: Securitatea Datelor

93

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;

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 .

Page 88: Securitatea Datelor

94

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).

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;

cerere de validitate în timp pentru ticket;

un număr aleator folosit pentru autentificare.

Page 89: Securitatea Datelor

95

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).

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, Ksession, 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.

Page 90: Securitatea Datelor

96

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 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 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.

Page 91: Securitatea Datelor

97

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).

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.

Page 92: Securitatea Datelor

98

→ 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

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

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:

Page 93: Securitatea Datelor

99

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:

Ţ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 =S

G

Ş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 =S

IT

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

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:

Page 94: Securitatea Datelor

100

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:

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= 68

7 = 6, 7222*10

12.

Î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.

Page 95: Securitatea Datelor

101

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.

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).

Page 96: Securitatea Datelor

102

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

Page 97: Securitatea Datelor

103

Î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.

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.

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;

Page 98: Securitatea Datelor

104

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.

→ Î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):

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.

Page 99: Securitatea Datelor

105

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;

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.

Page 100: Securitatea Datelor

106

Figura 43. Tabela supusă atacului.

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

Page 101: Securitatea Datelor

107

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 într-o 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.

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.

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;

Page 102: Securitatea Datelor

108

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;

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

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

Page 103: Securitatea Datelor

109

Figura 45. Criptarea înregistrării.

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:

Page 104: Securitatea Datelor

110

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).

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).

Page 105: Securitatea Datelor

111

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;

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.

Page 106: Securitatea Datelor

112

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

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

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

Page 107: Securitatea Datelor

113

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

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

Page 108: Securitatea Datelor

114

Se pot aplica, de asemenea, şi combinaţii ale acestora; în acest fel se creează vederi mixte. Vom

considera următorul scenariu (figura 48):

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):

Page 109: Securitatea Datelor

115

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).

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):

Page 110: Securitatea Datelor

116

Tabelul 17. Vedere SALA_PROD.

ş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 REVOKE. Sintaxa acestor

comenzi este exemplificată în figura 49.

Page 111: Securitatea Datelor

117

Figura 49. Sintaxa comenzilor GRANT şi REVOKE.

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.

Page 112: Securitatea Datelor

118

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.

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ă.

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

Page 113: Securitatea Datelor

119

Figura 51. Arhitectură cu blocarea integrităţii

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.

Page 114: Securitatea Datelor

120

Figura 52. Arhitectură integrată.

Î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).

Page 115: Securitatea Datelor

121

Figura 53. Arhitectură replicată/distribuită.

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).

Page 116: Securitatea Datelor

122

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

Page 117: Securitatea Datelor

123

produce wide variety and security in the electronic 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.

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).

Page 118: Securitatea Datelor

124

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 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.

Page 119: Securitatea Datelor

125

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 site-ul 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 site-ul unui muzeu francez la

http://www.cnam.fr/wm/paint/auth/renoir.

Page 120: Securitatea Datelor

126

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

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.

Page 121: Securitatea Datelor

127

Aproape fiecare autor al acestor soft-uri a recomandat criptarea mesajelor înaintea

steganografierii, unele chiar folosind-o direct.

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.

Page 122: Securitatea Datelor

128

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.

Page 123: Securitatea Datelor

129

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.

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

Page 124: Securitatea Datelor

130

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.

Esenta: Scopul criptografiei este de a nu dezvălui înţelesul unui mesaj. Criptografia

dezvăluie faptul că există comunicaţie între două părţi.

Scopul steganografiei este de a ascunde existenţa comunicaţiei secrete.

Steganografia implică ascunderea datelor intr-un mesaj deschis, astfel incât să fie dificil pentru un adversar să detecteze şi să înlăture aceste date. Pentru a urma acest scop, există trei principii importante folosite pentru a măsura eficacitatea unei anumite tehnici steganografice: cantitatea de date, dificultatea detectiei si dificultatea inlaturarii.

• Cantitatea de date - cu cat de pot ascunde mai multe date cu atat tehnica este mai

buna.

• Dificultatea detectiei - se refera la cat de usor este pentru cineva sa detecteze ca un mesaj a fost ascuns. De obicei, exista o legatura directa intre cat de multe date se pot ascunde si cat de usor este pentru cineva sa le detecteze. Cu cat se mareste cantitatea de date, cu atat se maresc sansele ca cineva sa descopere ca exista infomatie ascunsa în acel fisier.

• Dificultatea stergerii implica faptul ca : o persoana care intercepteaza fisierul nu trebuie sa fie capabila sa stearga în mod usor datele ascunse.

Aplicatii:

1. Lucent Technologies, numită Media TraX, care integrează informatie digitală in

imaginile TV intr-un mod imperceptibil pentru ochiul uman. Această informatie

poate fi insă recuperată si folosită ulterior

2. „digital watermarking”, procedeul de introducere a informatiei in imagine, muzică

sau software, utilizand principiul steganografiei. Un model de biti inserat intr-o

imagine digitală, intr-un fisier audio sau video, poate contine toate informatiile

legate de copyright (autori, anumite drepturi etc.). Watermark-urile digitale trec

complet neobservate, vizual sau auditiv. Ele trebuie să fie indeajuns de stabile

pentru a putea face fată schimbărilor normale făcute fisierului, ca de exemplu

aplicarea unor algoritmi de compresie.

3. „fingerprinting”: Internetul a creat noi modalităti de atragere si mentinere a utilizatorilor, acum apărand din ce in ce mai multe posibilităti de a construi servicii cu valoare adăugată. Aceste cercetări sunt utile in urmărirea si detectarea celor care incalcă regulile de copyright

Page 125: Securitatea Datelor

131

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 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).

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

Page 126: Securitatea Datelor

132

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 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 256-4095 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:

Tabelul 19. Exemplu de algoritm pe şirul "/WED/WE/WEE/WEB"

Caracterul

de intrare

Codul de

ieşire

Noile valori şi asocierile

de şiruri

/W / 256=/W

Page 127: Securitatea Datelor

133

E W 257=WE

D E 258=ED

/ D 259=D/

WE 256 260=/WE

/ E 261=E/

WEE 260 262=/WEE

/W 261 263=E/W

EB 257 264

SFARSIT 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:

Tabelul 19. Exemplu de decompresie

Caracterul

de intrare

Codul de

ieşire

Noile valori şi asocierile

de şiruri

/ /

W W 256=/W

E E 257=WE

D D 258=ED

256 /W 259=D/

E E 260=/WE

260 /WE 261=E/

261 E/ 262=/WEE

257 WE 263=E/W

B 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ă

Page 128: Securitatea Datelor

134

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 "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.

Page 129: Securitatea Datelor

135

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 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.

Bibliografie

IEEE Transactions on Computers, 1986 - 2004

C. Bacivarov, Securitatea sistemelor informatice - Rubrica permanentă "Societatea informaţională" - Calitatea, 2003 - 2004

Page 130: Securitatea Datelor

136

R. Lupan, A.Kobi, C. Robledo, I. Bacivarov, ISO 9000:2000 Quality System Improvement Using the Six Sigma Methology, Proceedings of the 3

rd 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 DOS-resistant Authentication, Periodica

Politehnica, Transactions on Automatic Control and Computer Science, Vol. 49 (63),

CONTI 2004

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.html

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

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

Page 131: Securitatea Datelor

137

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 – Time-lock 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

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 – DOS-resistant authentication with client-

puzzles, Proceeding of the Cambridge Security Protocols Workshop 2000, LNCS,

Cambridge, UK, 2000