Upload
wior-svg
View
120
Download
7
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
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ă.
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.
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).
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.
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).
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)
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.
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.
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
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).
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
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
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
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).
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
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.
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:
24
Tabelul 2. Generarea rezultatului folosind cifrul lui Vigenere.
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.
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,
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.
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.
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;
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
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.
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
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.
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;
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.
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.
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.
38
39
Figura 14. Modul CBC.
1.2.2.3 Modul Feedback (OFB . Output Feedback şi CFB.
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.
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.
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).
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.
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:
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;
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).
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).
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)
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
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:
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: .
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
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.
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).
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
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)
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).
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).
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:
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.
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.
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.
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).
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.
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).
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).
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:
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.
69
Tabelul 6. Teste comparative de funcţionare programe antivirus pe diferite platforme
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ă
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.
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
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).
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).
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.
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.
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).
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.;
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:
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.
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ă.
82
Modul de funcţionare al unui proces NAT este exemplificat în figura 32 .
Figura 32. Funcţionarea unui proces NAT.
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
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
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.
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).
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ă.
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.
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.
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ă.
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:
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.
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 .
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.
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.
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.
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.
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:
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:
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.
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).
102
Figura 42. Arhitectura unui sistem hibrid de detectare a intruziunilor.
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;
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.
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.
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
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;
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).
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:
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).
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.
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:
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
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):
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):
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.
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.
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.
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.
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).
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).
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
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).
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.
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.
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.
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.
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.
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:
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
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
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
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ă
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.
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
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
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