Sunteți pe pagina 1din 58

Constantin Lucian ALDEA

2008 2009
REPROGRAFIA UNIVERSITII TRANSILVANIA DIN BRAOV

1
1
2

Cuprins

Cuprins ................................ ................................ ................................ ................................ ............................ 3


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

2 Sisteme IT i probleme de securitate


2.1

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

Obiective de securitate

Problemele de asigurare a securitii reelelor pot fi grupate n urmtoarele domenii


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

3. autentificarea asigur determinarea identitii persoanei cu care se comunic


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

Pentru asigurarea securittii reelei este important implementarea unor


mecanisme specifice pornind de la nivelul fizic (protecia fizic a liniilor de transmisie ),
continund cu proceduri de blocare a accesului la nivelul reelei (firewall), pn la
aplicarea unor tehnici de criptare a datelor, metod specific pentru protecia comunicrii
ntre procesele de tip aplicaie care ruleaz pe diverse calculatoare din reea.
mpiedicarea interceptrii fizice este n general costisitoare i dificil; ea se poate
realiza mai facil pentru anumite tipuri de medii (de exemplu, detectarea int erceptrilor pe
fibre optice este mai simpl dect pentru cablurile cu fire de cupru). De aceea, se prefer
implementarea unor mecanisme de asigurare a securittii la nivel lo gic, prin tehnici de
codificare/criptare a datelor transmise care urmresc transf ormarea mesajelor astfel nct
s fie nelese numai de destinatar; aceste tehnici devin mijlocul principal de protecie a
reelelor.
2.3

Criptografia tradiional
Modelul clasic de criptare presupune transformarea unui text surs ("plain text")
printr-o functie dependent de o cheie ("key"), transformare n urma creia rezult textul
cifrat ("ciphertext"). Domeniul care se ocup de spargerea (decodificarea) cifrurilor se
numete criptanaliz ("cryptanalysis") iar conceperea cifrurilor (criptografia) i spargerea
lor (criptanaliza) sunt cunoscute global sub numele de criptologie ("cryptology").
ntr-o ncercare de formalizare matematic a proceselor de criptare i decriptare, se
pot folosi urmtoarele notaii: S - textul surs, CK - functia de criptare, dependent de o
cheie K, R - codul rezultat i DK - functia de decriptare. Cu aceste notaii, criptarea este
exprimat prin formula:
R = CK(S) iar decriptarea - prin S = DK(R).
Se observ c DK(CK(S)) = S.
Modelul de baz al criptrii folosete o metod general cunoscut, care este
parametrizat cu o cheie secret, ce poate fi schimbat usor. n mod paradoxal,
publicarea algoritmului de criptare, prin faptul c d posibilitatea unui numr mare de
criptologi s sparg sistemul, i poate dovedi stabilitatea, n caz c dup ctiva ani nici
unul din specialitii care au ncercat s-l sparg nu a reuit.
Componenta secret a criptrii este, n consecin, cheia, a crei lungime devine
foarte important. n mod evident, cu ct cheia este mai lung, cu att elementele ei sunt
mai greu de determinat. De exemplu, pentru o secvent de n cifre (0,...,9), exist 10 n
posibilitti de a o crea. Astfel, pentru determinarea unei secvente de 6 cifre ar trebui
parcurse 1 milion de posibilitti. n cazul n care cheile ar contine litere, numrul de
alternative crete fiindc n alfabet exist 26 de litere. Se poate deduce c lungimea cheii
produce creterea exponential a volumului de munc al criptanalistului. O cheie care s
poat ine la distant adversari profesionisti ar trebui s aib cel puin 256 de biti (cel putin
32 de cifre), n timp ce uzual se pot folosi chei de 64 de bii (n jur de 8 cifre).
Exist dou metode traditionale de criptare: cifruri cu substituie i cifruri cu
transpoziie. Aceste tehnici de baz sunt folosite, n forme evoluate, i n sistemele
moderne de criptare.
Cifrurile cu substituie. ntr-un asemenea cifru, fiecare liter sau grup de litere
este nlocuit() cu o alt liter sau cu un grup de litere. Cel mai vechi exemplu este cifrul
lui Cezar, prin care a devine D, b devine E, ..., z devine C. Prin generalizare, alfabetul
poate fi deplasat cu k litere n loc de 3. n acest caz, k devine cheia pentru metoda
general a alfabetelor deplasate circular. O alt metod de substituie este nlocuirea
fiecrei litere din textul surs cu o anumit liter corespondent. Sistemul se numete
substituie monoalfabetic i are ca i cheie un ir de 26 de litere. Pentru o persoan
neavizat, acest sistem ar putea fi considerat sigur fiindc ncercarea tuturor celo r 26! de
6

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

Caracteristici ale criptografiei moderne


Avnd n vedere faptul c transmisia de date n Internet este neprotejat, a aprut
necesitatea dezvoltrii tehnicilor de criptare n directia automatizrii acestora i a
implementrii lor n reele de calculatoare. Astfel, utilizarea unor algoritmi pentru criptarea
informaiilor transmise va deveni principalul mijloc de rezolvare a problemelo r de
interceptare n reele.
7

n descrierea unei transmisii de date prin reea se obisnuieste s se numeasc


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

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

Problema autentificrii
Un alt domeniu n care a evoluat criptografia modern este cel al crerii unor
protocoale de autentificare - tehnica prin care un proces verific dac partenerul de
comunicatie este cel presupus i nu un impostor. Verificarea identittii unui proces de la
distant este dificil i necesit utilizarea unor protocoale complexe, bazate pe tehnici
criptografice.
9

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

semnarea digital a unui mesaj emis, se va realiza o criptare cu cheia privat a


emittorului i apoi o criptare cu cheia public a destinatarului. Astfel, destinatarul va
putea decripta mesajul i autentifica provenienta sa n condiii de securitate.
Avnd n vedere faptul c algoritmii de criptare cu cheie public consum foarte
mult timp, n general se implementeaz o tehnic putin diferit: se utilizeaz o criptare cu
cheie public pentru transmiterea unei chei secrete generate aleator (deci cheia secret
este criptat i eventual se poate utiliza i autentificarea expeditorului), dup care datele
propriu-zise vor fi transmise criptate cu un algoritm simetric utiliznd cheia secret
schimbat anterior. Aceast metod mbuntteste considerabil viteza de transmisie i de
criptare / decriptare.
Practic, pentru o identificare ct mai riguroas a expeditorului se utilizeaz un
sistem complex, bazat pe certificare, n care fiecare utilizator detine un certificat (ce are
atasat o cheie public i o cheie privat, secret). Acesta este emis de o autoritate de
certificare recunoscut, n urma examinrii, pe baz de acte, a identittii reale a persoanei.
n momentul n care se doreste identificarea unei persoane, o cutare n baza de date a
organizatiei respective va indica indentitatea expeditorului (pe baza cheii publice a
acestuia, care este unic n lume).
Acest sistem este implementat sub forma unei structuri n care fiecare autoritate de
certificare poate mputernici la rndul ei alte organizaii s emit certificate de
autentificare, astfel nct originea unui certificat poate fi verificat n mod complet testnd
validitatea certificatului, apoi validitatea certificatului detinut de organizatia care a emis
certificatului respectiv, i asa mai departe.
Sistemul de certificate digitale este utilizat nu numai pentru protejarea
comunicaiilor, ci i pentru certificarea originii programelor. Astfel, prin folo irea unei
criptri a programului de instalare cu cheia public a firmei productoare, utilizatorul poate
verifica relativ usor c acel program a fost creat ntr-adevr de o anumit firm i pentru a
decide dac s instaleze sau nu programul. Aceasta este practic cea mai bun soluie de
rezolvare a problemei rulrii de programe / coduri duntoare, enuntat la nce putul
acestui capitol.
2.6

Implicaii sociale ale problemelor de securitate


Din motive strategice lesne de nteles, dezvoltarea tehnicilor criptografice este o
problem delicat i n general politicile guvernamentale ncearc s tin sub control acest
domeniu. Evident c aceast abordare nu este pe placul cercettorilor care urmresc
evolutia algoritmilor n primul rnd din ratiuni stiintifice i nici al publicului larg, n msura n
care s-ar leza liberttile individuale.
Un caz renumit de reactie guvernamental negativ la distribuirea unui soft
criptografic, dezbtut n cele din urm instant juridic, este cel al sistemului de post
electronic criptat Pretty Good Privacy, creat de Phil Zimmerman i distribuit pe Internet.
n unele tri (de exemplu, Franta), criptografia neguvernamental este interzis, cu
exceptia cazurilor n care guvernul primete toate cheile utilizate. De asemenea,
interceptrile guvernamentale ale comunicaiilor private s-au practicat pe scar destul de
extins. De exemplu, guvernul SUA a propus o tehnic de criptare a viitoarelor telefoane
digitale care include o caracteristic special ce ar permite institutiilor autorizate (si care
detin un ordin judectoresc n acest sens) interceptarea i decriptarea oricrui apel
telefonic din SUA. Acest subiect a iscat numeroase discutii contradictorii att din punct de
vedere din punct de vedere tehnologic (au fost propuse chiar metode de contracarare a
procedeului), ct i juridic fiindc, pe de o parte, ar putea fi lezate liberttile individua le iar,
pe de alt parte, s-ar putea asigura depistarea unor actiuni antisociale.

11

2.7

Cteva protocoale "sigure"


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

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

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

ar fi explorer.exe, iexplore.exe, msnmsgr.exe) ceea ce permite incarcarea automata in


memorie a troianului cand aceste procese sunt executate.
Locaiile preferate pentru infectare sunt:
- C:\Windows\msagent\ms****.com (30KB-49KB)
- C:\Windows\System32\ms****.com (30KB-49KB)
- C:\Windows\dxdgns.dll or C:\Windows\System32\dxdgns.dll (in functie de alegerea
atacatorului)
Porturile implicite pentru conexiunea directa i pentru cea inversa sunt 6666 si
9999, dar acestea pot fi schimbate de atacator. Beast contine i o facilitate care ii permite
sa treaca de un firewall i are abilitatea sa inchida un proces de tip firewall sau anti-virus.
De-asemenea poate combina doua sau mai multe fiiere intr-unul singur i le poate
schimba iconita.
Editorul de server are urmatoarele functionalitati:
conexiunea directa sau inversa
setarea procesului caruia i se ataseaza DLL-urile
schimbarea numelui serverului
setarea dierctorului de instalare a serverului
oprirea proceselor de tip firewall sau antivirus
alte optiuni (stergerea fiierului pentru server, mesaje false de eroare, schimbarea
iconitelor, detectarea apasarii unor taste)

Odata conectat la victima BeastTrojan permite:


download/upload de fiiere, aflarea coninutului directoarelor de pe masina victima,
executarea sau stergerea de fiiere
editarea registrilor
luarea de screenshot-uri i activarea webcam-ului
diferite actiuni asupra proceselor rezidente in memorie
preluarea parolelor retinute de sitemul de operare sau a textelor prezente in
clipboard
resetarea sau inchiderea sistemului
control asupra mouse-ului, a desktop-ului sau a cd-rom-ului
comunicarea intre componenta client i cea server
controlul serverului

2.9 Probleme rezolvate


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

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

2.10 Probleme nerezolvate


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

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

aeropoarte, bnci, spitale, instituii guveramentale i o serie de intreprind eri nu ar putea


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

nc nu se tie suficient de mult despre toate posibilitile de atac sau despre


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

2.2. Identificarea vulnerabilitilor posibile, folosind tool-uri specializate sau consultnd


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

3.1 Probleme rezolvate


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

de utilitate atunci cand calculatorul nu mai e in stare buna de functionare (sistemul de


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

3.2 Probleme nerezolvate


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

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

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

4.1 Autentificarea bazat pe parole


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

4.2 Autentificarea bazat pe adres


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

20

4.3 Autentificarea criptografic


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

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


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

21

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

S e rv e r
( C lie n t id , E ( x , C H K ) )

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

(E (S K ,S H K ))

Figura Autentificarea n trei pai


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

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

autentificarea atunci va pune n coresponden o entitate activ cu un astfel de nume. n


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

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

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


aleator.

4.5.2 Mesajele (protocolul Needham-Schroeder)


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

Fig. 1 Protocolul de baz simplificat


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

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

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

4.5.3 Vulnerabilitatile Kerberos


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

dac se bazeaz pe asumpii rezonabile, implementarea scris de un programator u man


poate s aib bug-uri care o fac vulnerabil.

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

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

27

Figur 6.1 Smart Card

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

28

Carduri cu banda magnetica


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

2. Contactless Cards. Nu au nevoie de reder pentru a fi folosite.


3. Combi or Hybrid Cards. Carduri hibride care pot avea sau nu nevoie de reader.

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

4.7 Semnatura digitala i autentificarea


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

Societatea umana a inceput sa transfere pe reele o parte din activitaiile obisnuite,


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

Folosind algoritmi cu cheie publica (asimetrici), se creaza criptosisteme cu doua


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

programe i echipamente ca DEC, Lotus, Novell, Motorola precum i o serie de institutii


importante (Departamentul Apararii din SUA, National Aeronautics -SUA, Boeing, reeaua
bancara internationala SWIFT, guvernul Belgiei etc), folosesc acest algoritm pentru
protejarea i autentificarea datelor, parolelor, fiierelor, documentelor memorate sau
transmise prin reele.

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

n mod clasic, asigurarea confidenialitaii unui mesaj se face cu o cheie secreta i


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

4.8.2 Mod de functionare


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

33

Confidenialitatea - mentinerea caracterului privat al informatiei (secretizarea


informatiei)
Integritatea - dovada ca respectiva informatie nu a fost modificata (asigurarea
impotriva manipularii frauduloase a informatiei)
Autentificarea - dovada identitaii celui ce transmite mesajul (verificarea identitaii
unui individ sau a unei aplicaii)
Non-repudierea - siguranta ca cel ce genereaza mesajul nu poate sa-l denigreze
mai tarziu (asigurarea paternitaii mesajului)
Criptarea folosind PKI se poate realiza in doua feluri: folosind chei simetrice sau
chei asimetrice. Criptarea asimetrica are avantajul ca una dintre chei poate fi facuta
publica (cea de criptare), in timp ce cheia pentru decriptare este detinuta de cel ce a
realizat criptarea, fiind cheia privata. Un alt avantaj al cheilor asimetrice este ca asigura
identitatea. Daca o persoana X cripteaza un mesaj cu o cheie privata i transmitandu-l
unei persoane Y, aceasta il poate decripta cu o cheie publica putem spune ca Y are
certitudinea ca mesajul vine de la X. Aceasta idee are la baza semnaturile digitale.
Aceasta asigura destinatarul nu numai de confidenialitate dar i de certitudinea ca cel ce
a scris mesajul este o persoana autorizata.
Pentru a intelege modul de functionare este nevoie de cunoasterea unui al treilea
algoritm i anume functiile de hashing. Acestea, spre deosebire de algoritmii de criptare i
decriptare realizeaza doar functia de criptare iar mesajul original nu va fi recuperat
niciodata. In principiu, un mesaj are intotdeauna aceeasi valoare dupa aplicarea functiei i
este imposibil ca doua mesaje oarecare sa genereze aceeasi valoare.
Pentru a putea construi cheia ce se utilizeaza in timpul transmisiei se apeleaza la "o
a treia parte" de incredere denumita Autoritate Certificatoare (CA - Certification Authority).
Ea genereaza un Certificat Digital ce genereaza o cheie publica. Cheia nu trebuie sa
contina ambiguitati, ingloband datele personale care apoi sunt impachetate i semnate.
Componentele principale ale unui Certificat Digital sunt:
1.
2.
3.
4.

cheie publica
informatia ce leaga cheia publica de detinatorul ei
informatia de validitate a certificatului
semnatura digitala
Non-repudierea este o alta proprietate a securitaii oferind certitudinea ca cel care
transmite mesajul nu poate sa nege mai tarziu ce a transmis.
Din cele prezentate putem sa observam ca: integritatea, confidenialitatea i non repudierea sunt asigurate prin criptografia cheilor publice. Pentru aceasta trebuie insa sa
se stie: cine genereaza certificatul, unde este stocata cheia i unde se gasesc
certificatele? Un certificat digital bazat pe infrastructura cheilor publice (PKI - Public Key
Infrastructure) asigura rezolvarea tuturor problemelor.
Fuctiile realizate cu ajutorul PKI
1. identificarea i autentificarea sunt realizate cu ajutorul semnaturilor digitale;
entitatea ce trebuie autentificata sau identificata va semna o provocare cu ajutorul
cheii sale private. Verificatorul semnaturii poate fi sigur de identitatea celui cu care
discuta in baza a trei condiii presupuse a fi indeplinite: 1. cheia privata este
cunoscuta doar proprietarului sau; 2. exista o singura cheie privata, care sa
corespunda cheii publice din certificatul digital; 3. certificatul face legatura
nemijlocita intre identitatea proprietarului i cheia sa publica. Presupunand aceste
condiii indeplinite, verificarea semnaturii digitale va duce implicit la "cunoasterea"
partenerului de dialog;
2. integritatea datelor este obtinuta tot prin intermediul semnaturilor digitale;
verificarea cu succes a semnaturii (operaie efectuata cu ajutorul cheii publice),
duce la concluzia ca datele nu au fost modificate ulterior procesului de semnare;
34

3. confidenialitatea este realizata cu ajutorul procesului de criptare; folo irea cheii


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

4.8.3 Avantajele PKI


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

O parte importanta a aplicaiilor software se refera la procesarea i arhivarea


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

4.9 Secret sharing


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

Secret sharingul trivial:


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

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

37

4.10 Probleme rezolvate


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

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

4.11 Probleme nerezolvate


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

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

Original, SSL a fost dezvoltat de Netscape, pentru a asigura securitatea datelor


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

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

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

Protocolul
SSL Cipher Change
(modificare cifru)

Protocolul
SSL Alert
(alert SSL)

Protocol
La nivel aplicaie (ex.
HTTP)

Protocolul SSL Record (Protocolul de nregistrare SSL)


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

Protocolul SSL Record este responsabil de criptarea i integritatea datelor. De


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

Scopul protocolului SSL Record este preluarea unui mesaj al aplicaiei i


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

Date1

Date 2

Date 3

Pachete de date

Date comprimate
criptare

Cod MAC
Date criptate
Transmisie
Pachet TCP

Figura 10.3: crearea unui pachet sub protocolul SSL Record


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

41

Hello-client
Faza1

Hello-server

Certificat
e
Transmitere cheie server

Faza 2

Cerere certificare server


certificat
Verificare certificat

Faza 3

Trasnsmitere cheie certificat

Schimb cifru
Stop

Faza 4

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

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

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

Atributele cheie ale unui VPN


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

44

5.3 Sistem de detectare a intrusilor


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

5.3.2 Componentele SDI-urilor


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

In urmatorul paragraf este descris un model ierarhic pentru SDI-uri, explicand de ce


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

5.3.3 Ierarhia SDI-urilor.


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

5.3.4 Testarea unor sisteme de detectare a intrusilor.


Aceste teste au fost facut de catre Ars Tehnica. In loc de a face testele pe un
calculator normal, s-a folosit o masina virtuala (obtinuta folosind Vmware 4.5.2- build
8848) care ruleaza pe Windows 2000 SP4. S-a luat aceasta decizie pentru a nu infesta
calculatorul cu multitudinea de intrusi i deoarece VM-ul permite reproducerea testelor. Sa creat o imagine dupa ce au fost instalati cativa intrusii, i pentru a testa fiecare SDI, s-a
facut un refresh la VM la aceasta imagine. S-a decis sa se incerce inlaturarea urmatorilor
intrusi:
-

Bonzi Buddy
eAcceleration Software Station and Threat Scanner
Smiley Central, with PopSwatter and MyWebSearch
Freeze.com's "Living Rainforest"screensaver
Weatherbug
46

Kazaa
iMesh
Grokster
Dupa instalarea acestora impreuna cu altii intrusi (in general intrusii atrag alti
intrusi) au inceput sa apara nedoritele pop-up-uri cu reclame, cauzand frecvente caderi ale
Internet Explorer-ului i de asemenea o incetinire a sistemului.
-

Spybot Search & Destroy


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

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

5.4 Probleme rezolvate


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

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

5.5 Probleme nerezolvate


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

49

6 bash - GNU Bourne-Again SHell


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

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

Este exhivalent cu -l.


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

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

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

6.5 Comenzi simple


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

//numele variabilei ia pe rand fiecare valoare din lista


//si se executa comenzile continute in list pentru fiecare
//aceste valori
//daca lista este vida nu se va executa nici o comanda

for (( expr1 ; expr2 ; expr3 ))


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

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

if list
then

//se executa if list; daca valoarea returnata este 0 atunci se executa


//comenzile din list
list;
//altfel, pentru fiecare elif list care se executa, daca valoarea este 0
[ elif list; then list; ] ... [ else list; ] //se executa lista de comenzi corespunzatoare
fi
//altfel se executa comenzile de pe ramura else, daca exista
//valoarea returnata este valoarea ultimei comenzi executata sau
//zero daca nici o ramura nu este adevarata
while list
do
list
done

//se executa comenzile din lista cat timp ultima comanda din
//lista returneaza valoarea 0
//valoarea finala va fi cea a ultimei comenzi executate
//sau zero daca nu s-a executat nici una

until list
do
list
done

//se executa comenzile din lista cat timp ultima comanda din
//lista returneaza o valoare nenula
//valoarea finala va fi cea a ultimei comenzi executate
//sau zero daca nu s-a executat nici una

[ function ] name ()
{
list
}

//se defineste o functie numita name


//corpul functie il constituie comenzile din list
//aceasta lista de comenzi se executa la fiecare apel al functiei
//valoarea returnata este valoarea ultimei comenzi executata

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

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

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

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

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

sleep 10
uptime
du -k c
done

//se asteapta 10 secunde


//se afiseaza incarcarea sistemului
//si dimensiunea ocupata

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

6.7 Probleme nerezolvate


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

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

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

58

S-ar putea să vă placă și