Sunteți pe pagina 1din 23

Cuprins

Introducere.............................................................................................................2 1 Capitolul I........................................................................................................3-7 1.1 Dezvoltare..................................................................................................3-4 1.2 Arhitectura.................................................................................................4-7 1.3 Protocoale criptografice................................................................................7 2 Capitolul II....................................................................................................7-13 2.1 Protocolul Needham-Schroeder.................................................................7-9 2.2 Protocolul Kerberos V4.................................................................................9 2.3 Schimbul AS................................................................................................10 2.4 Schimbul TGS..............................................................................................11 2.5. Schimbul AP.........................................................................................12-13 3 Capitolul III.................................................................................................13-19 3.1 Protocolul Kerberos V5.........................................................................13-15 3.2 Autentificarea inter-domenii..................................................................15-16 3.3 Slabiciunile protocolului Kerberos........................................................16-17 3.4 Sesiunile de lucru in Kerberos...............................................................17-18 3.5 Consideratii asupra protocolului..................................................................19 3.6 Consideratii asupra mediului 34..................................................................19 CONCLUZII...................................................................................................21-22 BIOGRAFIE........................................................................................................23

Introducere
Autentificarea este procesul de demonstrare a ident itii prilor comunicante, de demonstrare a faptului c cineva este cel ce pretinde c este. Nu trebuie confundat cu autorizarea, care se refer la permisiunile pe care le are cineva i care se pot verifica doar dup autentificare. Protocol de autentificare este o metod, o secven de pai prin care se realizeaz autentificarea. Algoritmii criptografici au un rol foarte important n autentificare, fiind evident nevoia de secretizare a datelor n cadrul autentificrii. Reelele de calculatoare sunt n general structuri deschise la care se pot conecta un numr mare i variat de componente. Complexitatea arhitectural i distribuia topologic a reelelor conduce la o lrgire necontrolat a cercului utilizatorilor cu acces nemijlocit la resursele reelei (fiiere, baze de date, dispozitive periferice, etc.) Putem vorbi despre o vulnerabilitate a reelelor care se manifest pe dou planuri: a) posibilitatea modificrii sau distrugerii informaiilor (atac la integritatea fizic); b) posibilitatea folosirii neautorizate a informaiilor; Se nelege c aceast stare de fapt nu poate fi tolerat, proiectarea sistemelor distribuite trebuind s satisfac unele cerine fundamentale de fiabilitate, protecie i securitate. Pe msur ce reelele de calculatoare se extind ca numr de resurse conectate i ca extindere geografic, nevoia de restricionare i control al accesului crete. Sub aspect fizic, resursele unei reele trebuie protejate ntr-o manier adecvat: a) restricionarea accesului la slile cu echipamente b) protejarea la furt i distrugere a echipamentelor de comunicaie (routere, switch-uri, calculatoare, etc.) c) protejarea cilor fizice de comunicaie prin ngroparea n pturi speciale i plasarea n locuri greu accesibile Atacurile de tip fizic asupra reelelor sunt relativ uor de descoperit. Mai mult, beneficiile atacatorilor sunt minime, avnd n vedere c de o bun perioad de timp, valoarea echipamentului este net inferioar informaiei vehiculat de acesta. Sub aspect logic, controlul resurselor se face prin asigurarea identitii participantului la schimbul de date, denumit generic autentificare. De regul autentificarea se realizeaz prin ceea ce utilizatorul tie (parol), prin ce utilizatorul are (smart card, cheie), sau prin ce utilizatorul este (identificare biometric, scanare de retin, amprente).

Capitolul I
1.1. Dezvoltare Sistemul de autentificare i distribuie a cheilor Kerberos a fost dezvoltat la Massachusetts Institute of Technology (MIT) pentru a proteja serviciile de reea oferite de proiectul Athena. Scopul Kerberos era s extind noiunea de autentificare, autorizare i contabilizare a mediului MIT. n conformitate cu planul tehnic al proiectului Athena, mediul consta n principal din: a) Staii de lucru publice i private 1) Staii de lucru publice n locuri cu securitate fizic minim sau deloc 2) Staiile de lucru private sunt sub controlul fizic i administrativ a indivizilor fr responsabilitate fa de administraia central a reelei b) O reea n campus compus din multiple LAN-uri de diferite tipuri conectate la un backbone. LAN-urile sunt dispersate spaial i vulnerabile la diferite atacuri, pe cnd backbone-ul este securizat fizic ntr-o anumit msur. c) Servere centrale sunt situate n camere cu acces restricionat i ruleaz software care se presupune c nu conine cod ostil. Unele dintre aceste servere funcioneaz sub paz strict, acestea fiind folosite ca servere de securitate. De remarcat c acest mediu nu este potrivit pentru stocarea, procesarea sau transmiterea de date secrete sau efectuarea de operaii cu grad ridicat de risc cum ar fi controlul experimentelor periculoase. Riscurile care se au n vedere n principal sunt utilizarea necontrolat a utilizatorilor neautorizai, violarea integritii resurselor sistemelor precum i violarea n general a intimitii cum ar fi citirea fiierelor personale. ntr-un astfel de mediu, riscurile n securitate provin n principal de la posibilitatea de a falsifica identitatea unui individ pentru a obine acces neautorizat la resursele sistemului. O staie de lucru incluznd sistemul de operare i interfaa de reea este sub controlul total al utilizatorului care ar putea sa ncerce s se substituie altui utilizator sau host. Primele trei versiuni ale Kerberos au fost folosite doar n cadrul MIT. Acestea nu mai sunt folosite n prezent, de aceea nu ne vom concentra asupra lor n aceast lucrare. Prima versiune fcut publica a fost Kerberos V4, versiune ce a cunoscut o rspndire important n afara MIT. Ultima actualizare (cu numrul 10) a fost fcut n decembrie 1992, aceasta fiind versiunea final pn n prezent. Unele medii necesit funcionaliti neacoperite de Kerberos V4, iar altele au o structur diferit de modelul MIT. Ca rezultat, n 1989 a nceput lucrul la Kerberos V5, pe baza experienei acumulate cu Kerberos V4 i a discuiilor cu administratorii de sisteme care au implementat Kerberos. n septembrie 1993, Kerberos V5 a fost specificat ca standard Internet n RFC 1510. MIT a dezvoltat i testat Kerberos V5 pe Ultrix, SunOS, Solaris i Linux, fiind portat i pe alte sisteme de ctre teri. De remarcat c dei similare ca i concept, Kerberos V4 i V5 sunt substanial diferite i chiar sunt n competiie pentru dominaia pe pia. Kerberos V4 are o baz de instalare mai mare, este mai simplu i are o performan mai mare dect V5, ns
3

lucreaz doar cu adrese IP. Kerberos V5 pe de alt parte, are o baz de instalare mai redus, este mai complicat i implicit mai puin eficient, dar prezint mai mult funcionalitate dect V4. Diferenele importante ntre V4 i V5 le vom discuta ulterior n cadrul acestui capitol. n ciuda faptului c este disponibil codul surs pentru Kerberos V4 i V5, MIT nul susine oficial i nu ofer suport. Unele companii ns ofer contra cost versiuni comerciale de implementri Kerberos. Informaii despre versiunile freeware i comerciale se gsesc n Kerberos FAQ publicat periodic n grupul de tiri comp.protocols.kerberos.

1.2. Arhitectur
n terminologia Kerberos, un domeniu administrativ se numete realm. Se presupune c orice companie sau organizaie care dorete s ruleze Kerberos poate crea un realm identificat unic printr-un nume. Teoretic, Kerberos poate suporta mai bine de 100.000 de utilizatori, iar referindu-ne la [SCHI95] realm-ul ATHENA.MIT.EDU suport n mod curent 25.000 de utilizatori din care aproximativ 7.000 se autentific n fiecare zi. Kerberos se bazeaz pe modelul client / server. Utilizatorii, clienii i serviciile de reea instaniate pe un host n particular se consider n mod tipic parteneri. Fiecare partener este identificat n mod unic de un identificator de partener. n Kerberos V4, un identificator de partener are n componen trei cmpuri, fiecare fiind un ir terminat cu null de pn la 40 de caractere. Aceste trei cmpuri sunt: a) Numele partenerului, NAME b) Numele instanei, INSTANCE c) Numele realm-ului, REALM Din punctul de vedere al sistemului Kerberos nu conteaz cum se folosesc cmpurile NAME i INSTANCE. Acestea sunt doar iruri text. Totui n practic, serviciile au un nume i INSTANCE se folosete pentru a indica host-ul pe care ruleaz un serviciu anume. Spre exemplu, serviciul rlogin de pe host-ul asterix se poate distinge de serviciul rlogin de pe host-ul obelix. Scopul sistemului Kerberos este de a permite unui client ce ruleaz n numele unui utilizator anume s se identifice unui serviciu sau unui server de aplicaii corespunztor, fr a se necesita trimiterea unor date secrete care ulterior s poat fi folosite de un atacator la impersonarea utilizatorului. Pentru a realiza acest lucru, modelul Kerberos necesit existena unui ter de ncredere care servete ca centru de distribuie a cheilor (KDC) n realm-ul Kerberos. KDC-ul const din dou componente i anume: a) Un server de autentificare (AS) b) Un numr de servere pentru acordarea biletelor (TGS) Sistemele AS i TGS sunt componente separate logic dar pot fi procese care ruleaz pe aceeai main. Aceasta trebuie s fie protejat cu grij i securizat fizic, deoarece un intrus ar putea compromite uor ntreg sistemul de la acest nivel. KDC menine o baz de date cu informaii despre fiecare partener din cadrul sistemului. Deoarece securitatea este foarte important, aceast informaie este redus la un minim posibil pentru a efectua cu succes autentificarea. Astfel, dei baza de date Kerberos este la nivel de utilizator, aceasta nu conine informaii cum ar fi numere de
4

telefon sau adrese, neutilizate n mod curent la autentificare, ci urmtoarele: a) Identificatorul partenerului b) Cheia master Kp (sau parola dac este utilizator) c) Data expirrii identitii d) Data ultimei modificri a nregistrrii e) Identitatea partenerului care a operat modificarea f) Timpul maxim de via a biletelor emise partenerului g) Unele atribute h) Unele date interne de implementare invizibile la exterior cum ar fi versiunea cheilor, versiunea cheii master sau indicatori ctre valori vechi ale nregistrrii Cheia master (Kp) a fiecrui partener trebuie inut secret, de aceea toate aceste chei se codific cu o cheie master a KDC. Pe lng o protecie sporit, aceast metod permite distribuirea bazei de date ntre servere fr riscul de a fi capturat de un potenial atacator. Cheia master KDC nu se pstreaz n aceeai baz de date, ci se opereaz separat. Kerberos furnizeaz mai multe instrumente de management a bazei de date KDC. n domeniile mici, se poate utiliza setul de instrumente manuale de la consola administratorului. n domeniile mari se poate utiliza un sistem automat de management a serviciile (SMS). n fiecare caz, funciile de management se realizeaz la distan prin reea, conexiunile la baza de date KDC fiind autentificate tot prin Kerberos. Actualizrile se efectueaz printr-un protocol care ruleaz ntre un client autentificat pe o staie i baza de date KDC. Exist rutine de actualizare pentru adugarea i dezactivarea intrrilor, precum i de a controla schimbri de parol iniiate de utilizator sau administrator. Figura 1 ilustreaz model Kerberos fundamental i paii corespunztori ai protocolului. Situaia st n felul urmtor: pe partea stng, un client ruleaz n numele utilizatorului. Pentru a folosi serviciile serverului aflat n partea dreapt jos, clientul trebuie s se autentifice cu acesta. n aceast situaie, este n sarcina KDC s ofere clientului credeniale pentru procesul de schimb de autentificare. Este important de remarcat c att clientul ct i serverul nu au cunotin de o cheie iniial de sesiune. De fiecare dat cnd clientul ncearc s se autentifice serverului, acesta se bazeaz pe KDC pentru generarea cheii de sesiune i distribuirea ei prilor implicate.

Figura 1. Modelul Kerberos i paii corespunztori protocolului


5

Kerberos folosete bilete pentru distribuirea cheilor de sesiune. n general, un bilet este o nregistrare care poate fi folosit la autentificare. n Kerberos, un bilet este un certificat emis de KDC i criptat cu cheia master a serverului. Printre altele, biletul conine: a) Cheia de sesiune care va fi utilizat pentru autentificarea ntre client i server a) Numele partenerului ctre care cheia de sesiune a fost emis b) Un timp de expirare dup care cheia de sesiune nu mai este valid Un bilet nu este trimis direct ctre server, n schimb este trimis clientului care l nainteaz serverului ca parte a schimbului de autentificare. Un bilet Kerberos este ntotdeauna criptat cu cheia serverului, cunoscut doar de AS si de serverul n cauz. Datorit acestei criptri, clientul nu poate modifica mesajul fr ca acest lucru s poat fi depistat. Cnd un utilizator se aeaz la o staie de lucru i ncearc s se logineze, acesta introduce numele su, ca de obicei. Clientul de login furnizeaz AS numele n pasul 1(a), iar AS caut intrarea corespunztoare utilizatorului n baza de date KDC. Parola utilizatorului (sau cheia ce deriv din aceasta) se folosete apoi pentru a cripta un bilet de acordare a biletului (TGT1) i TGT-ul este returnat clientului n pasul 2 (b). Clientul cere utilizatorului s i introduc parola, cu care se va cripta TGT. Dac cheia derivat din parola utilizatorului poate decripta cu succes TGT, acestuia i se permite accesul. Pe partea de client, TGT-ul este memorat pentru folosire ulterioar i anume pentru a obine bilete pentru autentificarea n servicii de reea particulare. Scopul principal al TGT este deci s faciliteze o singur autentificare pentru utilizatori. Parola este astfel cerut o singur dat, i nu de fiecare dat cnd se cere accesul la un serviciu. Biletele sunt eliberate de TGS-ul specificat n TGT-ul primit de utilizator. Pentru a obine un bilet, clientul trimite o cerere ctre TGS n pasul 3 (c). Mesajul include numele serviciului cerut, TGT-ul i autentificatorul. Acesta din urm este o informaie ce poate proba c a fost generat recent utiliznd cheia de sesiune de ctre client i server mpreun. n particular, autentificatorul conine numele utilizatorului, adresa de reea a clientului i timpul curent, fiind criptat cu cheia de sesiune returnat n TGT. Autentificatorul este o schem simpl pentru a descuraja atacurile replay. Dac TGS consider att biletul ct i autentificatorul valid, biletul este returnat n pasul 4 (d). Clientul creeaz un alt autentificator i l trimite mpreun cu biletul de serviciu serverului, n pasul 5 (e). Dac se cere autentificare reciproc, serverul returneaz un autentificator n pasul 6 (f). Aa cum a fost descris pn acum, modelul Kerberos nu ofer dect serviciul de autentificare. n sine, el nu ofer informaii despre autorizarea clientului n a folosi anumite servicii de reea. n general, sunt trei posibiliti pentru atingerea problemei autorizrii, i anume: a) Baza de date Kerberos ar putea conine informaii de autorizare pentru fiecare serviciu i s emit bilete doar utilizatorilor autorizai.
6

b) Un serviciu dedicat poate menine informaiile de autorizare prin liste de acces pentru fiecare serviciu i permiterea clientului s obin certificate sigilate de apartenen la list. n acest caz clientul ar prezenta serviciului certificarea n locul biletului Kerberos. c) Fiecare serviciu poate menine propria informaie de autorizare cu ajutorul opional al unui serviciu care stocheaz aceste liste de acces i ofer certificri de apartenen la list. Modelul Kerberos se bazeaz pe faptul c fiecare serviciu cunoate cu exactitate cine sunt utilizatorii si i ce form de autorizare este potrivit pentru acetia. n consecin Kerberos folosete cea de-a treia metod. n contrast, protocoalele OSF DCE i SESAME folosesc cea de-a doua metod. Pentru simplificarea implementrii celei de a treia metode, Kerberos folosete modelul de autorizare bazat pe liste de control al accesului. Orice serviciu care consider c i se potrivete acest tip de autorizare poate ncorpora a bibliotec cu funcii adecvate. Utilizarea acestui model presupune c serviciul verific dac o identitate verificat aparine unei liste de acces.

1.3. Protocoale criptografice


n aceast seciune descriem protocoalele criptografice pe care le implementeaz Kerberos. ncepem cu o scurt descriere a protocolului Needham-Schroeder i continum cu protocoalele utilizate de fapt n Kerberos V4 i V5. n cele din urm ne vom concentra atenia asupra autentificrii inter-domenii.

Capitolul II 2.1. Protocolul Needham-Schroeder


Kerberos se bazeaz pe protocoalele de autentificare i distribuie a cheilor propuse de Needham i Schroeder [NEED78, NEED87]. Protocolul presupune existena unui ter de ncredere care reprezint un server de autentificare (AS). Daca AS are cheile fiecrui partener, doi parteneri arbitrari A i B pot folosi AS pentru a se autentifica reciproc i s primeasc o cheie de sesiune Kab. Primul protocol Needham-Schroeder se poate formaliza dup cum urmeaz: a) A AS : A, B, N b) AS A : {N, B, Kab, {Kab, A} Kb} Ka c) A B : {Kab, A} Kb d) B A : {Nb} Kab e) A B : {Nb 1} Kab Protocolul ncepe prin comunicaia n clar de la A la AS n pasul 1 (a), unde se transmite identitatea pretins, identitatea corespondentului dorit B, precum i o valoare curent N. La recepionarea mesajului, AS caut cheile secrete ale A i B (Ka i Kb) i alege aleator o cheie de sesiune Kab. n pasul 2 (b), AS returneaz lui A {N, B, Kab, {Kab, A} Kb} Ka, mesaj codificat cu cheia lui A, deci numai acesta poate decodifica mesajul i
7

extrage componentele sale. A poate verifica prezena valorii N pentru a determina dac mesajul provine ntr-adevr de la AS. A memoreaz valoarea Kab i trimite lui B valoarea {Kab, A} Kb, n pasul 3 (c). Aceast valoare este codificat cu cheia lui B, deci numai acesta poate decodifica mesajul i extrage componentele, n spe cheia Kab. Prin aceast modalitate B poate afla identitatea corespondentului A, autentificat de AS. n acest moment, A tie c orice comunicare codificat cu Kab provine de la B i orice trimite A codificat cu Kab poate fi neles numai de B. Acest lucru este adevrat, deoarece mesajele care au coninut cheia de sesiune au fost legate cheile secrete ale prilor A i B. Acelai lucru este valabil i pentru B. Este important s se asigure securitatea protocolului, n sensul c nici o parte a acestuia s nu poat fi nregistrat i redat mai apoi de un atacator. Iat cum stau lucrurile din punctul de vedere al celor doi parteneri: a) Pe de o parte, A este contient c nu a mai folosit Kab i deci nu are motive s se team c materialul codificat cu aceast cheie este altceva dect un rspuns legitim de la B. b) Pe de alt parte, poziia lui B nu este att de bun. n afara cazului n care B i amintete toate cheile folosite anterior de A pentru a verifica dac Kab este o cheie nou, B nu este sigur c mesajul primit n pasul 3(c) provine de la A. Pentru protecia mpotriva atacurilor replay, B trebuie s aleag un numr Nb aleator, s-l codifice cu cheia Kab i s cear lui A (n pasul 4 (d)) s rspund cu numrul decrementat i recodificat cu cheia Kab. Dac rspunsul primit de B este satisfctor, schimbul ulterior de mesaje poate continua. Primul protocol Needham-Schroeder const din 5 pai. Acest numr se poate reduce la 3 prin meninerea de ctre A n cazul partenerilor obinuii de comunicare a perechilor de forma B : Kab, {Kab, A} Kb , astfel eliminndu-se paii 1 i 2. Noul protocol arat n felul urmtor: a) A AS : A, B, N b) AS A : {N, B, Kab, {Kab, A} Kb}Ka c) A B : {Kab, A}Kb, {Na}Kab d) B A : {Na 1, Nb}Kab e) A B : {Nb 1}Kab O vulnerabilitate major a ambelor versiuni ale protocolului Needham-Schroeder const n posibilitatea ca un ter C care este capabil de a urmri dialogul s lanseze un atac off-line asupra Kab. Daca C poate determina o cheie de sesiune Kab folosit n trecut, C poate impersona pe A. De fapt, C poate folosi biletul corespunztor mpreun cu valoarea codificat cu Kab in pasul 3. B provoac pe A n pasul 4 i deoarece C cunoate pe Kab, poate rspunde corect n pasul 5. Slbiciunea subtil din spatele acestui protocol este c mesajul din pasul 3 nu conine nici o informaie pentru B pentru a-i verifica prospeimea. De fapt acest lucru este cunoscut doar de AS i A. Aceast slbiciune a fost descoperit de Denning i Sacco [DENN81]. Ca msur reparatorie, ei au propus nlocuirea valorii cu amprente de timp i folosirea urmtorului protocol n loc:
8

a) b) c) d) e)

A AS A B A

AS : A, B A : {B, Kab, T, {Kab, A, T} Kb} Ka B : {Kab, A, T} Kb A : {Nb}Kab B : {Nb 1} Kab

Protocoalele sunt mai mult asemntoare dect diferite. n protocolul Denning Sacco, A trimite lui AS pe A i B n pasul 1 i AS returneaz lui A {B, Kab, T, {Kab, A, T} Kb} Ka n pasul 2. n acest caz T reprezint amprenta de timp, folosit pentru a se determina prospeimea unui mesaj. A i B efectueaz aceast verificare n paii 2 i 3 prin simpla comparare cu timpul local al sistemului. Avnd n vedere acest lucru, odat cu introducerea amprentelor de timp apar alte dou probleme: a) Utilizarea amprentelor de timp necesit ceasuri sincronizate global b) Definirea intervalelor acceptabile de timp este o sarcin dificil

2.2. Protocolul Kerberos V4


Protocolul utilizat n Kerberos V4 se bazeaz n parte pe protocolul NeedhamSchroeder cu unele modificri menite s-l adapteze la mediul de reea pentru care a fost proiectat iniial. Printre aceste schimbri, amintim: a) Utilizarea amprentelor de timp, aa cum au propus Denning i Sacco b) Adugarea unui serviciu de oferire a biletelor pentru a permite autentificarea suplimentar fr a fi necesar ca utilizatorul s-i reintroduce parola c) O abordare diferit a autentificrii inter-domenii Avnd n vedere figura nr. 1, paii protocolului Kerberos V4 se poate formaliza dup cum urmeaz: a) C AS : U, TGS, T, L b) AS C : {K, N, Tc,tgs} Ku c) C TGS : S, N, Tc,tgs, Ac,tgs d) TGS C : {Tc,s, K} K e) C S : Tc,s, Ac,s f) S C : {T + 1} K n aceast descriere, termenul Tc,tgs = {U, C, TGS, T, L, K} KTGS se utilizeaz pentru a ne referi la un TGT care a emis de AS pentru a fi folosit de un client C pentru a se autentifica cu un TGS i a cere un bilet corespunztor. n mod similar, termenul Tc,s = {U, C, S, T, L, K} Ks desemneaz un bilet emis de TGS i utilizat de C pentru a se autentifica cu un server S. n ambele expresii, T i T se refer la amprente de timp, iar L i L desemneaz timpul de via al acestora. O amprent de timp reprezint numrul de secunde de la ora 00:00:00 GMT, 1 ianuarie 1970 i se codific pe 4 octei. Aceasta este o reprezentare comun a timpului ntr-un sistem UNIX. n mod similar, timpul de via al unui bilet se specific n uniti de cinci minute i se codific ntr-un singur octet, drept urmare timpul maxim de via care se poate exprima n Kerberos V4 este de puin peste
9

21 de ore. n plus fa de acestea, termenii Ac,tgs = {C, T} K i Ac,s = {C, T}K desemneaz autentificatorii pentru Tc,tgs i Tc,s. Cei ase pai ai protocolului se pot grupa n trei schimburi: a) Schimbul AS ntre client i AS (paii 1 i 2) b) Schimbul TGS ntre client i TGS (paii 3 i 4) c) Schimbul AP ntre client i serverul de aplicaii (paii 5 i 6) n cele ce urmeaz vom discuta aceste schimburi. 2.3. Schimbul AS Schimbul AS al protocolului Kerberos V4 este ilustrat n figura 2. Pe scurt, un client C utilizeaz un serviciu de nume (name service) pentru a localiza n termeni de topologie a reelei cel mai apropiat TGS disponibil. C trimite apoi un mesaj KRB_AS_REQ (Kerberos authentication server request) ctre AS n pasul 1. Mesajul include identificatorul de utilizator U, identificatorul TGS-ului selectat, o amprent de timp T i durata de via dorit pentru TGT. Dup primirea mesajului KRB_AS_REQ, AS caut i extrage cheile secrete asociate cu U i TGS. AS selecteaz apoi o cheie de sesiune aleatoare K i-i rspunde lui C cu mesajul KRB_AS_REP (Kerberos authentication server reply) n pasul 2. Mesajul include K, N i Tc,tgs. n plus, mesajul este codificat cu Ku. Dup recepionarea mesajului KRB_AS_REP, C trebuie s cear utilizatorului U parola sa. De fapt, protocolul Kerberos V4 adopt o regul general valabil n securitate, aceea de a tii parola utilizatorului un timp minim posibil. Totui, ateptarea pentru cteva secunde a mesajului KRB_AS_REP nu crete sigurana n mod semnificativ, de aceea Kerberos V5 cere parola nainte ca C s trimit mesajul KRB_AS_REP. Un alt motiv pentru care aceast parol se cere nainte este c C trebuie s dovedeasc faptul c tie parola utilizatorului pentru ca AS s trimit mesajul KRB_AS_REP, lucru care ngreuneaz atacul prin ghicire a parolelor. n Kerberos V4, dac U introduce corect parola pwdU, C poate folosi o funcie h de dispersie cu sens unic cunoscut pentru a calcula cheia secret a lui U, adic KU = h(pwdU). Echipat cu aceast cheie, C poate decodifica {K, N, Tc,tgs} KU i extrage K, N, i Tc,tgs. Dac C are succes, acesta este n posesia unui TGT care poate fi utilizat pentru a cere bilete de la TGS.

10

Figura 2. Schimbul AS De remarcat c ntr-un TGT, timpul de via se folosete ca o parol de expirare a timpului. Limitarea timpului de via al TGT limiteaz astfel avariile produse n sistem n cazul compromiterii TGT. n Kerberos, n general nu este posibil s se revoce un TGT odat ce a fost emis.

2.4. Schimbul TGS Schimbul TGS al protocolului Kerberos V4 este ilustrat n figura 3. Formatul mesajului este aproape identic cu cel din schimbul AS. Diferena const n faptul c mesajul este codificat cu cheia de sesiune K (cunoscut de C i TGS) n loc de cheia utilizatorului KU. nainte de a iniia un schimb TGS, C trebuie s determine n care domeniu a fost nregistrat serverul de aplicaii pentru care se cere un bilet. Dac C nu are deja un TGT pentru acel domeniu, trebuie s obin unul. Prima dat se ncearc a se obine un TGT pentru domeniul destinaie de la un server Kerberos local, prin trimiterea mesajului KRB_TGS_REQ. Acesta poate returna un TGT pentru domeniul n cauz, caz n care C l poate folosi. Alternativ, serverul Kerberos poate returna un TGT pentru un domeniu mai apropiat de cel solicitat, caz n care procesul trebuie repetat pentru acest domeniu, specificat n TGT. n cazul n care nu se primete nici un rspuns, se ncearc obinerea TGT-ului de la un domeniu mai sus n ierarhie. n pasul 3, C trimite mesajul KRB_TGS_REQ (Kerberos ticket granting server request) ctre TGS. Mesajul include S, N, Tc,tgs i un autentificator Ac,tgs = {C, T} K, cu T amprent de timp. De remarcat c Tc,tgs poate avea o via relativ lung i poate fi capturat i redat. Scopul autentificatorului este s arate c C tie cheia secret i deci s contracareze un astfel de atac. Utilizarea autentificatorilor necesit o sincronizare relativ precis a ceasurilor, diferena admisibil fiind configurabil la fiecare server. De regul, aceasta este configurat la 5 minute, dar n practic aceasta s-a dovedit mult mai problematic. Odat cu introducerea protocoalelor de sincronizare temporal a fost posibil sincronizarea mult mai precis.

11

Figura 3. Schimbul TGS Mesajul KRB_TGS_REQ este procesat ntr-o manier similar cu mesajul KRB_AS_REQ dar se fac o serie de verificri suplimentare. n pasul 4, TGS-ul returneaz un mesaj KRB_TGS_REP (Kerberos ticket granting server reply) care are acelai format cu mesajul KRB_AS_REP. Acesta include un bilet Tc,s pentru serverul cerut S i o nou cheie de sesiune K, ambele codificate cu K. Cnd mesajul KRB_TGS_REP este recepionat de C, este procesat n aceeai manier cu KRB_AS_REP, aa cum s-a descris mai nainte. Principala diferen este c partea cifrat a rspunsului trebuie decodificat cu cheia de sesiune cunoscut de TGS i nu cu cheia utilizatorului.

2.5. Schimbul AP Schimbul AP din protocolul Kerberos V4 este ilustrat n figura 4. Acesta este utilizat de aplicaii de reea fie pentru a autentifica un client fa de un server sau s se autentifice reciproc. Clientul trebuie s aib deja credeniale pentru server prin utilizarea schimburilor AS i TGS. n pasul 5, C trimite mesajul KRB_AP_REQ (Kerberos Application Request) ctre serverul S. Mesajul include Tc,s, Ac,s = {C, T} K i unele informaii de management. Autentificarea se bazeaz pe timpul curent al serverului, biletul Tc,s i autentificatorul Ac,s. Pentru a ne se asigura c mesajul KRB_AP_REQ nu este o redare a unui mesaj recent, este ndeajuns ca S s memoreze toate amprentele de timp ntr-o fereastr dat i s se asigure c mesajul nu are o amprent de timp identic cu cele anterior recepionate. Orice autentificator mai vechi dect fereastra de timp permis ar fi respins oricum, deci nu ar fi folositor a se memora amprente mai vechi dect aceast fereastr. Kerberos V4 ns nu se complic s memoreze amprente de timp, aceasta deoarece dac S este un serviciu replicat n care toate instanele mpart aceeai cheie master, ar fi relativ uor pentru un atacator s trimit un mesaj de la o instan S1 ctre o alt instan S2. Rezolvarea simpl a acestei probleme ar fi ca autentificatorul s conin i identificatorul nivelului de reea a instanei S n cauz. Dac nu apare nici o eroare i dac este necesar autentificarea reciproc, S trebuie
12

s returneze lui C mesajul KRB_AS_REP (Kerberos application reply) n pasul 6. Din nou, acest mesaj este codificat cu cheia de sesiune K, cunoscut de C i S. Din moment ce aceast cheie a fost n biletul codificat cu cheia secret a serverului, posesia acesteia este dovada c S este partenerul dorit. Mai precis, S trebuie s incrementeze amprenta de timp inclus n autentificatorul mesajului KRB_AP_REQ i s-l recodifice cu K.

Figura 4. Schimbul AP

Confidenialitatea datelor i servicii de integritate Aa cum a fost descris anterior, Kerberos furnizeaz servicii de autentificare. Totui, un produs auxiliar al protocolului este schimbul unei chei de sesiune K, cunoscut de client i de server. Aceast cheie poate fi utilizat de aplicaie pentru a proteja confidenialitatea i integritatea comunicaiilor. De fapt, sistemul Kerberos ofer dou tipuri de mesaje, i anume: a) Mesajul KRB_PRIV pentru a proteja confidenialitatea comunicaiilor. b) Mesajul KRB_SAFE pentru a proteja integritatea comunicaiilor. n ciuda acestor tipuri de mesaje oferite de sistem, o aplicaie este liber s utilizeze orice metod potrivit pentru tipul particular de date care se transmite. Formatul acestor mesaje nu va fi detaliat mai mult aici.

Capitolul III
3.1. Protocolul Kerberos V5 n aceast seciune ne vom concentra asupra Kerberos V5 n general i a diferenelor importante fa de Kerberos V4. n Kerberos V5 au fost operate urmtoarele modificri: a) Identificatorii prilor: n Kerberos V5, identificatorii prilor constau n dou repere: numele domeniului (realm) i un rest. Numele domeniului este separat pentru a facilita implementarea uoar a
13

b)

c)

d)

e)

f)

rutinelor de traversare i a verificrilor de acces la domeniu. Restul este o secven de cte componente sunt necesare pentru numele prii. De remarcat c identificatorul din Kerberos V4 este similar cu un rest cu dou component n Kerberos V5. Utilizarea criptrii: Pentru a mbunti modularitatea lui Kerberos, criptarea a fost separat n module software care pot fi schimbate sau ndeprtate la nevoie. Cnd se folosete criptarea, textul respectiv este marcat n aa fel nct receptorul s poat identifica modulul de care are nevoie pentru a nelege mesajul. Algoritmii de criptare de asemenea au sarcina de a oferi sigurana integritii, prin folosirea unor metode adecvate, cum ar fi suma de control. Adrese de reea: n Kerberos V5, adresele sunt etichetate cu un tip i lungime, astfel c dac un host suport mai multe protocoale de reea s le poat oferi bilete. Codificarea mesajelor: Mesajele sunt descrise utiliznd notaia de sintax abstract 1 (ASN 1) i codificate dup regulile fundamentale de codificare (BER). Astfel, se evit specificarea codificrii pentru cantiti compuse din mai muli octei, aa cum era cazul n Kerberos V4. Formatul biletului: Biletul are un format extins pentru noile opiuni. Acesta este mprit n dou pri, una codificat iar alta nu. Numele serverului este necodificat pentru a permite unui server cu identiti multiple s selecteze cheia potrivit. n plus fa de aceast schimbare, timpul de via al biletului este reprezentat ca timp de start i timp de expirare, permind timp de via aproape nelimitat. Suport inter-domeniu: n Kerberos V5, domeniile pot coopera printro ierarhie bazat pe numele realm-ului. Un domeniu surs este interoperabil cu domeniul destinaie dac cele dou cunosc o cheie pentru domeniul destinaie.

n plus fa de acestea, Kerberos V5 mai aduce o serie de mbuntiri. Spre exemplu, cmpurile indicatoare menionate anterior permit o flexibilitate mai mare n utilizarea biletelor dect n versiunea V4. Fiecare bilet emis de AS n schimbul iniial este marcat ca atare. Aceasta permite serverelor s cear clientului s prezinte un bilet obinut prin folosirea direct a cheii secrete a clientului n locul cheii obinute fol osind un TGT. O astfel de cerin mpiedic un atacator s schimbe parola unui utilizator de la o staie neutilizat dar loginat. n Kerberos V5, biletele pot fi eliberate cu dou date de nnoire. Biletul expir ca de obicei la primul timp, dar dac TGS primete o cerere de nnoire nainte de expirarea acestuia, biletul emis ca nlocuitor este valabil pentru nc o perioad de timp. Totui, TGS-ul nu va rennoi un bilet dup expirarea celui de al doilea timp. Acest mecanism prezint avantajul c dei credenialele se pot utiliza o perioad lung de timp, TGS-ul ar putea refuza s rennoiasc bilete raportate ca furate i astfel s mpiedice folosirea lor n continuare. Kerberos se ocup n principal cu autentificarea i nu este n mod direct preocupat
14

de servicii de securitate nrudite cum ar fi autorizarea i contabilitatea. Pentru a sprijini implementarea acestor servicii de securitate, Kerberos V5 ofer un mecanism de transmisie sigur a informaiilor de autorizare i contabilitate ca parte a unui bilet. Acestea pot restriciona utilizarea unui bilet. Cnd se solicit un bilet, restriciile sunt specificate i trimise unui TGS unde sunt incluse n bilet, codificate i protejate de modificare. n forma cea mai general a protocolului, un client cere ca KDC s includ sau adauge astfel de informaii la bilet. TGS-ul la rndul lui nu ndeprteaz informaia de autorizare din TGT, ci o copiaz n fiecare bilet nou i adaug informaii adiionale. La decodificarea biletului, informaiile de autorizare sunt disponibile la serverul de aplicaii. Kerberos nu face nici o interpretare a acestor informaii, n schimb serverul de aplicaii trebuie s le foloseasc pentru a restriciona accesul clienilor la resursele prezentate n bilet. Avnd n vedere figura 1, paii protocolului Kerberos V5 se pot formaliza dup cum urmeaz: a) C AS : U, TGS, L1, N1 b) AS C : U, Tc,tgs, {TGS, K, Tstart, Texpire, N1} KU c) C TGS : S, L2, N2, Tc,tgs, Ac,tgs d) TGS C : U, Tc,s, {S, K, Tstart, Texpire, N2} K e) C S : Tc,s, Ac,s f) S C : {T} K g) Analog cu Kerberos V4, Tc,tgs i Tc,s se refer la un TGT respectiv un bilet, iar Ac,tgs i Ac,s se refer la autentificatorii respectivi. n pasul 1, C selecteaz un TGS i trimite un mesaj KRB_AS_REQ la AS. Mesajul include identificatorul utilizatorului (U), identificatorul TGS-ului selectat, durata de via solicitat L1 pentru TGT i o valoare N1. n plus fa de acestea, un mesaj poate specifica un numr de opiuni, cum ar fi: a) Dac pre-autentificarea trebuie realizat b) Dac biletul solicitat se poate re-nnoi sau re-trimite. c) Dac biletele derivate ar trebui s fie postdatate sau s permit postdatarea. d) Dac un bilet re-nnoibil va fi acceptat n locul unuia ne-nnoibil (dac timpul de expirare nu poate fi satisfcut) e) Dup recepionarea mesajului KRB_AS_REQ, AS caut i extrage cheile secrete pentru U i TGS. Dac este necesar, AS pre-autentific cererea iar dac aceasta eueaz, un mesaj de eroare corespunztor este returnat lui C. Altfel, AS selecteaz aleator o nou cheie de sesiune K i returneaz un mesaj KRB_AS_REP lui C n pasul 2. Mesajul include U, un Tc,tgs = {U, C, TGS, K, Tstart, Texpire} Ktgs i {TGS, K, Tstart, Texpire, N1} KU. Timpii de start i de expirare Tstart respectiv Texpire ale TGT-ului sunt setai n concordan cu politica de securitate a domeniului n aa fel nct se ncadreaz n timpul de via L1 specificat n mesajul KRB_AS_REQ. Dup recepionarea mesajului KRB_AS_REP, C aplic o funcie cu sens unic h la parola utilizatorului pwdU pentru a calcula cheia master a acestuia. KU = h(pwdU). Echipat
15

cu aceast cheie, C poate decodifica {TGS, K, Tstart, Texpire} KU, i extrage TGS, K, Tstart, Texpire. Acum poate folosi acest TGT pentru a solicita un bilet de la TGS. Schimbul TGS este iniiat ori de cte ori C dorete s obin un bilet pentru server, re-nnoiasc su valideze un bilet existent sau chiar s obin un bilet proxy. Cel puin n primul caz, clientul trebuie s fi obinut deja un TGT prin schimbul AS. n pasul 3, C trimite mesajul KRB_TGS_REQ ctre TGS. Din nou, mesajul include informaii pentru autentificarea clientului plus cereri pentru credeniale. Informaiile de autentificare constau n Tc,tgs i un autentificator corespunztor Ac,tgs = {C, T} K generat de C cu amprenta de timp T i cheia de sesiune K. n pasul 4, TGS returneaz un mesaj KRB_TGS_REP care include un bilet Tc,s = {U, C, S, K, Tstart, Texpire} Ks pentru serverul S, precum i {S, K, Tstart, Texpire} K. Din nou, schimbul AS se utilizeaz fie pentru a autentifica un client unui serv er, fie pentru a se autentifica reciproc un client i un server. n pasul 5, C trimite un mesaj KRB_AP_REQ ctre serverul S. Mesajul conine biletul Tc,s i un autentificator corespunztor Ac,s = {C, T} K, mpreun cu unele informaii de management. Autentificarea se bazeaz pe timpul curent al serverului, a autentificatorului i a biletului. Dac nu apare nici o eroare i dac se cere autentificare reciproc, S returneaz un mesaj KRB_AP_REP n pasul 6. Acest mesaj include amprenta de timp T, codificat cu cheia de sesiune K pe care S o cunoate mpreun cu C. 3.2. Autentificarea inter-domenii n general, un mediu de reea const din mai multe organizaii, cum ar fi companii n competiie, agenii guvernamentale, instituii financiare su universiti. ntr-un astfel de mediu, ar fi dificil de gsit o entitate credibil pentru toat lumea care s ruleze un Kerberos KDC. Problema este c oricine are acces la KDC cunoate cheia master a utilizatorului i are acces la orice are acces i utilizatorul. Chiar i dac o astfel de entitate s-ar gsi, replicile KDC-ului ar trebui s fie de asemenea credibile. Mai mult, o entitate credibil ar fi foarte ocupat cu utilizatorii i serviciile care intr i ias din reea. Din acest motiv, reeaua este mprit n domenii, fiecare dintre acestea avnd propriul KDC. Acestea pot fi mai multe n cadrul unui domeniu, dar sunt identice din punct de vedere funcional, avnd aceeai cheie master i aceeai baz de date. Pe de alt parte, KDC-urile din domenii diferite sunt total diferite, fiind responsabile pentru un set diferit de participani. Kerberos a fost proiectat s funcioneze i n afara granielor domeniului, fiind posibil ca n principiu, un client ntr-un domeniu s se autentifice unui server din alt domeniu. n Kerberos, o autentificare peste graniele domeniului se numete autentificare inter-domeniu. O cheie inter-domeniu este o cheie secret cunoscut de KDC-urile a dou domenii Kerberos. Prin stabilirea acestor chei, administratorul domeniilor permite ca un utilizator autentifica ntr-un domeniu s se autentifice i la distan. Schimbul de chei inter-domeniu se face prin nregistrarea tuturor TGS-urilor fiecrui domeniu ca utilizator n domeniul curent. Un client este capabil atunci s obin un TGT pentru TGS-ul domeniului ndeprtat. Cnd se folosete acel TGT, TGS-ul ndeprtat folosete cheia inter-domeniu pentru a decodifica TGT-ul i este atunci sigur c a fost emis de TGS-ul clientului. Biletele emise de TGS-ul ndeprtat vor indica unui serviciu c autentificarea
16

clientului a fost fcut n alt domeniu. Se spune c un domeniu comunic cu altul dac cele dou cunosc aceeai cheie inter-domeniu sau dac domeniul local cunoate cheia unui domeniu intermediar care la rndul su comunic cu domeniul ndeprtat. n terminologia Kerberos, o cale de autentificare se refer la o secven de domenii tranzitate n proces. Aa cum s-a menionat anterior, Kerberos V4 necesita ca AS-ul s comunice cu fiecare domeniu unde era necesar autentificarea inter-domeniu. Acest procedeu nu duce la o scalare bun din moment ce o interconectare complet necesit schimbul a n2 chei, cu n fiind numrul total de domenii. n contrast, Kerberos V5 suport autentificarea inter-domenii cu treceri, cheile fiind distribuite ierarhic. Aici, fiecare domeniu menine chei cu domeniul printe i domeniile fii. Dac cheia inter-domeniu nu este distribuit de dou domenii, sistemul ierarhic permite stabilirea unei ci de autentificare. Aceast cale este memorat n cadrul biletului pentru a se decide nivelul de ncredere acordat procesului de autentificare. 3.3. Slbiciunile Protocolului 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. Voi ilustra aici numai unele dintre deficiene, pentru a da o idee despre natura lor. 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.
17

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 dac se bazeaz pe asumpii rezonabile, implementarea scris de un programator uman poate s aib bug-uri care o fac vulnerabil. 3.4. Sesiunile de lucru n Kerberos Desfsurarea operatiilor n sistemul Kerberos se desfsoar n urmtoarele faze: a) Utilizatorul deschide o sesiune de lucru Kerberos (se lanseaz n executie klogin). Utilizatorul si trimite numele (ca rspuns la klogin). b) Statia (procesul klogin) contacteaz AS transmindu-i n clar un mesaj ce contine numele de login si numele unui TGS : mesaj = (nume_login, nume_TGS) c) AS caut n baza de date Kerberos si obtine: 1) cheie de criptare pentru utilizator 2) cheie de criptare pentru TGS nuntrul tichetului de acces la TGS se introduc: tichet_de_acces_la_TGS = encrypt TGS_key (nume_TGS, nume_client, adresa_client, time_stamp, timp_viat, cheie_sesiune) d) AS trimite statiei clientului un rspuns, care este criptat cu cheia clientului si care are urmtoarea structur: rspuns = encrypt client_key (tichet_de_acces_la_TGS, cheie_sesiune) e) Programul klogin primeste mesajul si cere parola utilizatorului. Parola este criptat printr-o functie greu inversabil standard Unix, rezultatul fiind o cheie de criptare a utilizatorului. Aceasta este folosit la criptarea mesajului, parola n clar fiind stears din statie. Statia rmne cu : 1) un tichet sigilat; 2) o cheie de sesiune TGS pe care le memoreaz. f) Statia trimite TGS-ului un mesaj de forma :
18

mesaj = (nume_serviciu, tichet_de_acces_la_TGS, autentificator) unde, autentificator = encrypt session_key (nume_client, adresa_client, time_stamp) g) TGS primeste mesajul, decripteaz tichetul, de unde obtine cheia de sesiune cu care decripteaz autentificatorul, face verificrile necesare si, dac totul este n regul, obtine din baza de date Kerberos cheia serviciului indicat prin nume_serviciu. h) Se formeaz un tichet de acces la serviciu si o nou cheie de sesiune. nuntrul tichetului de acces la serviciu se introduc: tichet_de_acces_la_serviciu = encrypt serv_key (nume_TGS, nume_client, adresa_client, time_stamp, timp_viat, cheie_sesiune) TGS trimite statiei clientului un rspuns care este criptat cu cheia de sesiune client - TGS si care are urmtoarea structur: rspuns = encrypt session_key (tichet_de_acces_la_serviciu, cheie_sesiune) i) Statia trimite serverului de servicii un mesaj de forma : mesaj = (nume_serviciu, tichet_de_acces_la_serviciu, autentificator) unde, autentificator = encrypt new_session_key (nume_client, adresa_client, time_stamp) j) Serviciul primeste mesajul, decripteaz tichetul sigilat folosind cheia sa de decriptare (pe care doar Kerberos o mai cunoaste). Afl prin decriptare cheia de sesiune client - serviciu si poate, astfel, decripta autentificatorul. Dac aceste verificri se desfsoar cu succes, se ofer serviciul solicitat. k) Serviciul se autentific la rndul su transmitnd clientului un mesaj de forma (optional): mesaj = encrypt new_session_key (time_stamp+1)

Figura 5. Sesiunile de lucru Kerberos

19

3.5. Consideraii Asupra Protocolului Tichetele si autentificatorii sunt puncte cheie pentru ntelegerea implementrii schemei Kerberos. a) Pentru ca un utilizator s foloseasc un serviciu este necesar un tichet. Tichetele se obtin de la TGS, cu exceptia primului tichet pe care l obtine de la AS si a tichetelor speciale, care se obtin tot de la AS. b) Tichetele detinute de utilizator nu sunt ntelese de ctre acesta, fiind criptate cu cheia server-ului destinatar. c) Fiecare tichet este asociat cu o cheie de sesiune, asigurat la fiecare acordare a unui tichet. d) Tichetele sunt reutilizabile. Odat acordat unui utilizator, tichetul poate fi refolosit o perioad de timp (uzual 25 de ore), dup care expir. Momentul acordrii si durata sunt, deasemenea, incluse n tichet. e) Un nou autentificator este cerut de fiecare dat cnd clientul initiaz o nou conexiune cu un server. Autentificatorul poart momentul crerii si are o durat de valabilitate scurt (minute). f) Un server pstreaz istoria cererilor utilizatorului pentru care timpul din autentificator este nc valid. Aceasta permite depistarea dublurilor (si deci a eventualelor fraude). g) Deoarece tichetul si autentificatorul contin adresa clientului, este destul de greu pentru o alt statie s le foloseasc (ea ar trebui s-si schimbe adresa de retea!) h) Odat validat cererea de serviciu, clientul si server-ul folosesc o cheie private (cunoscut n plus doar de Kerberos). Utilizarea cheii este optional. i) Pe parcursul unei sesiuni o list de(nume_server,tichet_sigilat, cheie_sesiune) este pastrat de statia de lucru n numele utilizatorului. Lista nu poate fi folosit de ctre altcineva, numele utilizatorului fiind criptat. Lista este distrus la terminarea sesiunii. 3.6. Consideraii Asupra Mediului Kerberos impune cteva consideratii asupra mediului, stabilind unele conditii pentru a putea functiona n mod corect : a) Atacurile de tip refuz de serviciu" (Denial of service") nu sunt rezolvate cu Kerberos. Sunt modalitati prin care un intruder poate impiedica o statie la a participa la secvent normal de pasi necesar autentificarii. S-a considerat mai potrivit lsarea acestei sarcini n grija factorului uman (administrator si restul de user-i) b) Conductorii de tranzactii trebuie s-si tin cheile secrete pe care le detin n mod secret. Dac un intruder fur o cheie secret, va putea actiona ca si proprietarul ei. c) Atacurile de tipul ghicire de parole" (password guessing") nu sunt rezolvate de ctre Kerberos. Dac un user si alege o parol slab" va fi posibil pentru un intruder s realizeze password guessing" prin atacuri criptanalitice repetate.
20

d) Fiecare host din retea trebuie s detin un ceas care s fie sincronizat tolerant" (loosely synchronized") cu ceasurile celorlalte host-uri. Toleranta se poate configura. Dac ceasurile se sincronizeaz printr-un protocol, acesta trebuie securizat el nsusi mpotriva atacatorilor.

Concluzii Utilizarea sistemului Kerberos mbuntete securitatea aplicaiilor n reea prin ngreunarea impersonrii unui utilizator. Totui, Kerberos nu este o rezolvare a tuturor problemelor din reea, iar Kerberos are de asemenea propriile probleme. Cteva dintre limitrile i slbiciunile lui Kerberos V4 au fost descrise pentru prima dat de Bellovin i Merritt , iar mai apoi reluate de Kohl, Neuman i Tso n. n cele ce urmeaz vom descrie rezultatele acestor studii: Kerberos V4 a fost conceput n principal pentru necesitile proiectului Athena, astfel c n anumite locuri face presupuneri i abordeaz lucrurile ntr-un mod nepotrivit n toate cazurile: Deficiene de mediu a) Dependena de criptosistem: Implementarea de referin de la MIT pentru Kerberos V4 utilizeaz DES pentru a codifica mesajele. nainte ca restriciile de export ale sistemelor criptografice s fie ridicate, rspndirea utilizrii lui Kerberos a fost destul de dificil. b) Dependena fa de protocolul Internet: Kerberos V4 necesit utilizarea adreselor de tip IP, ceea ce l face nepotrivit n anumite medii. c) Ordinea octeilor n mesaj: n Kerberos V4, host-ul care trimite mesajul ordon octeii n conformitate cu ordinea sa natural. Receptorul este responsabil de a re-ordona octeii pentru a se potrivi modului su nativ. n timp ce acest lucru va uura comunicarea ntre host-uri cu aceeai ordine a octeilor, comunicarea cu un tip diferit de host poate afecta interoperabilitatea. d) Timpul de via al biletului: S-a menionat deja c timpul maxim de via al unui bilet este puin peste 21 de ore. Aceast limit s-a dovedit un neajuns major n Kerberos V4, din moment ce mpiedic acordarea biletelor unor job-uri care ruleaz mult vreme. e) naintarea autentificrii: Kerberos V4 nu permite ca un bilet emis unui client de pe un host s fie trimis altui host sau utilizat de alt client. f) Numirea utilizatorilor: n Kerberos V4, numele sunt compuse din trei componente: nume, instan i domeniu, fiecare avnd maxim 40 de caractere. Aceste dimensiuni s-au dovedit prea mici pentru unele aplicaii. g) Autentificarea inter-domenii: Kerberos V4 necesit pstrarea unui numr de n2 chei ale celor n domenii. Chiar i pentru n relativ mic, sarcina de a le distribui este scump.
21

Deficiene tehnice a) Dubla criptare: TGT-ul emis de AS este codificat de dou ori cnd este returnat la client i numai o dat cnd este trimis la TGS. n general nu este necesar a se codifica biletul de dou ori, fiind o pierdere de timp. b) Codificarea PCBC: Kerberos V4 utilizeaz DES n versiune nestandardizat a modului CBC. c) Autentificarea mesajului: Algoritmul de sum de control din Kerberos V4 nu este documentat sau publicat, de aceea nu exist dovezi despre slbiciunea sau tria sa. Totui, faptul c un algoritm nu a fost spart pn n prezent nu nseamn c algoritmul este sigur. Cele mai multe dintre probleme expuse anterior au fost luate n seam la design -ul lui Kerberos V5. Probabil c cea mai evident problem este c sistemul Kerberos nc se bazeaz pe parole bine alese i pe faptul c acestea sunt inute secrete. Dac un atacator poate primi acces la parola unui utilizator, Kerberos nu poate distinge ntre cei doi. Aici putem face dou afirmaii: d) Prima, c oamenii n general aleg parole slabe care sunt vulnerabile la atacuri prin dicionar sau ghicire. Similar, forarea oamenilor s aleag parole complexe nu este o msur fericit. e) A doua, Kerberos este expus atacurilor de tip parol verificabil. n pasul 2 al protocolului, AS-ul returneaz un mesaj clientului codificat cu o cheie derivat din parola utilizatorului. Dac un atacator este capabil s solicite acest mesaj sau este capabil de a-l captura, acesta poate lansa un atac de ghicire a parolelor. n acest caz, atacul se poate lansa simultan mpotriva tuturor mesajelor cunoscute de ctre atacator. In acest caz nu exist un sistem similar cu UNIX salt. n principiu, atacurile de tip parol verificabil sunt o form special de atacuri ostile numite atacuri de text verificabil. n timp ce vulnerabilitile la atacuri de text cunoscut sunt relativ uor de detectat i corectat, atacurile de text verificabil sunt mult mai subtile i mult mai dificil de evitat. Trebuie remarcat c aceste atacuri sunt o ameninare serioas doar dac parolele sunt alese necorespunztor. Pentru a face AS-ul rezistent la atacuri de tip parol verificabil au fost propuse independent dou tehnici. Una dintre acestea a fost propus Lomas, Gong, Saltzer i Needham n, iar cealalt de ctre Bellovin i Merritt n. Aceste propuneri se bazeaz pe criptografia cu chei publice, o abordare respins de la nceput n design-ul original. O problem oarecum nrudit a Kerberos V5 este faptul c nu e rezistent la atacuri reply. n afara cazului n care serverul ine o list cu autentificatorii folosii n timpul ferestrei de timp, un intrus ar putea lansa un atac de tip off-line. Dac atacatorul ar putea convinge host-ul asupra unui timp incorect, host-ul ar putea oferi un numr de autentificatori postdatai, ceea ce creeaz premisa unui atac viitor. De fapt, Kerberos presupune o relativ sincronizare a host-urilor, adic acces din partea acestora la un serviciu de timp, ceea ce induce un risc suplimentar.
22

a) b) c) d) e)

Biografie http://en.wikipedia.org/wiki/Cryptographic_protocol http://en.wikipedia.org/wiki/Kerberos_(protocol) Kohl, J.; Neuman, B. The Evolotion of the Kerberos Authentication Service http://www.cs.cmu.edu/~mihaib/articole/kerberos/kerberos-html.html Stadiul actual al dezvoltrii sistemelor de securitate pentru reele de calculatoare de nalt performan Timioara,2002, autor Valer Bocan.

23