Presentation is loading. Please wait.

Presentation is loading. Please wait.

Aplicaţii de autentificare 1. Autentificare Kerberos

Similar presentations


Presentation on theme: "Aplicaţii de autentificare 1. Autentificare Kerberos"— Presentation transcript:

1 Aplicaţii de autentificare 1. Autentificare Kerberos
Date generale: Sistem de securitate a cheilor proiectat la MIT Mod centralizat de chei publice oferit de un terţ (third-party) într-o reţea distribuită: oferă utilizatorilor acces la diferitele servicii ale reţelei locale nu pune condiţia ca toate staţiile de lucru să fie de "încredere" staţiile de lucru folosesc pentru autentificare un server central Versiuni folosite în mod curent: V4 şi V5.

2 Aplicaţii de autentificare 1. Autentificare Kerberos
Scopul protocolului Kerberos este de a permite unui client sa-si demonstreze identitatea unui server aflat la distanta. Protocolul garanteaza de asemenea ca clientul nu poate conversa cu un calculator care se da drept server; autentificarea se face în ambele directii. Protocolul în sine consta dintr-un schimb de mesaje între un client si o serie de servere, fiecare cu o alta misiune. Idea de baza apartine lui Needham si Schroeder care au publicat ideea initiala în 1978 în Communications of the ACM.

3 Aplicaţii de autentificare 1. Autentificare Kerberos
Protocolul Kerberos consta de fapt intr-o serie de mesaje care trebuie schimbate între partile care doresc sa comunice; unele din mesaje sunt criptate. Implementarile curente folosesc algoritmul standard de criptare DES (Data Encryption Standard). Kerberos este un protocol; pentru a fi util în anumite aplicatii (cele care au nevoie de comunicatie client-server), acestea trebuie modificate pentru a folosi autentificarea oferita de Kerberos (Aplicatiile modificate sunt atunci numite “kerberized”).

4 Aplicaţii de autentificare 1. Autentificare Kerberos
În mod normal într-un domeniu în care se foloseste Kerberos programe ca: telnet rlogin POP (post-office protocol) AFS (fisiere la distanta AFS), etc. trebuie rescrise în asa fel încît clientul sa se autentifice serverului folosind noua metoda (toate aceste aplicatii sunt de tip client-server).

5 Aplicaţii de autentificare 1. Autentificare Kerberos
Spre deosebire de multe dintre solutiile curente în ceea ce priveste securitatea - cum ar fi generatoarele de parole sau dispozitivele biometrice care citesc amprentele digitale sau ale irisului - Kerberos rezolvã problema securitãtii în retea fãrã hardware suplimentar, ci bazându-se doar pe mecanisme de criptare.

6 Aplicaţii de autentificare 1. Autentificare Kerberos
Kerberos furnizeazã o modalitate de a verifica identitãtile conducãtorilor unei tranzactii într-o retea deschisã ( neprotejatã). Aceasta se realizeazã: fãrã a ne baza pe verificarea fãcutã de sistemul de operare local fãrã a ne baza pe validitatea adreselor de retea fãrã a cere securitate fizicã la toate host-urile din retea sub prezumtia cã pachetele care circulã în retea pot fi citite, modificate si inserate dupã dorintã. În aceste conditii, Kerberos este un tert (o parte) de încredere care realizeazã autentificarea pãrtilor prin servicii criptografice conventionale.

7 Aplicaţii de autentificare 2. Principii Kerberos
Premiza initiala este ca exista un server central, numit serverul de autentificare (AS), care cunoaste identitatile tuturor clientilor posibili. De asemenea, fiecare client a stabilit o parola secreta pe care si acest server o stie. Parola ajunge la server printr-o cale sigura, de exemplu prin posta sau printr-un mesager uman.

8 Aplicaţii de autentificare 2. Principii Kerberos
Parola nu este cunoscuta de nimeni altcineva, nici macar de celelalte servere cu care clientul va comunica (de la care va obtine serviciile care-l intereseaza). Toate celelalte servere din domeniul respectiv sunt si ele clienti ai AS: au o parola unica stiuta numai de AS si de acel server.

9 Aplicaţii de autentificare 2. Principii Kerberos
O regula interesanta este: cheile folosite în comunicarea dintre client si servere se schimba frecvent. In implementarea standard o cheie expira dupa 25 de ore. În felul acesta un atac criptanalitic nu va fi incununat succes: daca dureaza mai mult de 25 de ore atunci cheia descoperita este deja inutila. Cheia pe care un client si un server o folosesc în comun se numeste cheie de sesiune si este generata aleator.

10 Aplicaţii de autentificare 3. Mesajele (protocolul Needham-Schroeder)
Sa presupunem ca clientul nostru vrea sa comunice cu un server de fişiere. Protocolul poate fi compus din 4 mesaje (protocolul real este o simpla extensie a ideii prezentate): 1. Un mesaj de la client spre AS, prin care se indica intentia de a comunica cu serverul de fişiere; 2. Un mesaj de raspuns de la AS pentru client, prin care AS îi trimite clientului noua cheie de sesiune si un pachet pentru serverul de fişiere; 3. Un mesaj de la client spre serverul de fişiere, în care este inclus pachetul de mai sus, pentru a garanta faptul ca clientul a discutat cu AS; 4. Un mesaj de raspuns de la serverul de fişiere prin care clientul este convins ca serverul a putut deschide pachetul, pentru a fi sigur că discută cu serverul dorit.

11 Aplicaţii de autentificare 3. Mesajele (protocolul Needham-Schroeder)
Dupa acest schimb initial de mesaje clientul si serverul de disc vor folosi cheia de sesiune generata de AS pentru a cripta cu DES toata comunicatia dintre ei. Vom nota cele 3 entitati care colaboreaza astfel: C = Clientul AS = Serverul de Autentificare S = Serverul de fişiere

12 Aplicaţii de autentificare
3. Mesajele (protocolul Needham-Schroeder)

13 Aplicaţii de autentificare
4. Kerbos V4 - Privire de ansamblu

14 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
Desfãsurarea operatiilor în sistemul Kerberos se desfãsoarã în urmãtoarele faze: 1. Utilizatorul deschide o sesiune de lucru Kerberos (se lanseazã în executie klogin). Utilizatorul îsi trimite numele (ca rãspuns la klogin). 2. Statia (procesul klogin) contacteazã AS transmiţându-i în clar un mesaj ce contine numele de login si numele unui TGS : mesaj = (nume_login, nume_TGS)

15 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
3. AS cautã în baza de date Kerberos si obtine: - o cheie de criptare pentru utilizator - o cheie de criptare pentru TGS Înãuntrul 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)

16 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
4. AS trimite statiei clientului un rãspuns, care este criptat cu cheia clientului si care are urmãtoarea structurã: rãspuns = encrypt client_key (tichet_de_acces_la_TGS, cheie_sesiune)

17 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
5. 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 rãmâne cu : - un tichet sigilat; - o cheie de sesiune TGS pe care le memoreazã.

18 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
6. Statia trimite TGS-ului un mesaj de forma : mesaj = (nume_serviciu, tichet_de_acces_la_TGS, autentificator) unde, autentificator = encrypt session_key (nume_client, adresa_client, time_stamp)

19 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
7. TGS primeste mesajul, decripteazã tichetul, de unde obtine cheia de sesiune cu care decripteazã autentificatorul, face verificãrile necesare si, dacã totul este în regulã, obtine din baza de date Kerberos cheia serviciului indicat prin nume_serviciu.

20 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
8. Se formeazã un tichet de acces la serviciu si o nouã cheie de sesiune. Înãuntrul 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 rãspuns care este criptat cu cheia de sesiune client - TGS si care are urmãtoarea structurã: rãspuns = encrypt session_key (tichet_de_acces_la_serviciu, cheie_sesiune)

21 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
9. 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)

22 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
10. 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 verificãri se desfãsoarã cu succes, se oferã serviciul solicitat.

23 Aplicaţii de autentificare 5. O sesiune de lucru Kerberos
11. Serviciul se autentificã la rândul sãu transmitând clientului un mesaj de forma (optional): mesaj = encrypt new_session_key (time_stamp+1)

24 Aplicaţii de autentificare 6. Consideratii asupra protocolului
Tichetele si autentificatorii sunt puncte cheie pentru întelegerea implementãrii schemei Kerberos. 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. Tichetele detinute de utilizator nu sunt întelese de cãtre acesta, fiind criptate cu cheia server-ului destinatar. Fiecare tichet este asociat cu o cheie de sesiune, asiguratã la fiecare acordare a unui tichet.

25 Aplicaţii de autentificare 6. Consideratii asupra protocolului
Tichetele sunt reutilizabile. Odatã acordat unui utilizator, tichetul poate fi refolosit o perioadã de timp (uzual 8 ore), dupã care expirã. Momentul acordãrii si durata sunt, deasemenea, incluse în tichet. Un nou autentificator este cerut de fiecare datã când clientul initiazã o nouã conexiune cu un server. Autentificatorul poartã momentul creãrii si are o duratã de valabilitate scurtã (minute). Un server pãstreazã istoria cererilor utilizatorului pentru care timpul din autentificator este încã valid. Aceasta permite depistarea dublurilor (si deci şi a eventualelor fraude).

26 Aplicaţii de autentificare 6. Consideratii asupra protocolului
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!) Odatã validatã cererea de serviciu, clientul si server-ul folosesc o cheie privatã (cunoscutã în plus doar de Kerberos). Utilizarea cheii este optionalã. 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 cãtre altcineva, numele utilizatorului fiind criptat. Lista este distrusã la terminarea sesiunii.

27 Aplicaţii de autentificare 7. Consideratii asupra mediului
Kerberos impune câteva consideratii asupra mediului, stabilind unele conditii pentru a putea functiona în mod corect : Atacurile de tip „refuz de serviciu" („Denial of service") nu sunt rezolvate cu Kerberos. Sunt modalitati prin care un intruder poate impiedica o statie de a participa la o secventã normalã de pasi necesarã autentificarii. S-a considerat mai potrivită lãsarea acestei sarcini în grija factorului uman (administrator)

28 Aplicaţii de autentificare 7. Consideratii asupra mediului
Conducãtorii 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. Atacurile de tipul „ghicire de parole" („password guessing") nu sunt rezolvate de cãtre Kerberos. Dacã un user îsi alege o parolã „slabã" va fi posibil pentru un intruder sã realizeze „password guessing" prin atacuri criptanalitice repetate.

29 Aplicaţii de autentificare 7. Consideratii asupra mediului
3. 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.

30 Aplicaţii de autentificare 8. Kerberos pentru utilizator
Dupa autentificarea cu serverul de disc toata comunicatia între masina si serverul de disc se va face folosind un alt protocol, numit Secure RPC (Remote Procedure Call): apel sigur de procedura la distanta, care foloseste initial cheia de sesiune oferita de TGS.

31 Aplicaţii de autentificare 8. Kerberos pentru utilizator
Se pot vedea în orice clipa tichetele pe care le posedam cu comanda klist: Exemplu: $ klist Ticket file: /tkt/ ae552f Principal: Issued Expires Principal Jul 20 10:50:34 Jul 21 12:16:55 Jul 20 10:50:34 Jul 21 12:16:55 Jul 20 10:51:30 Jul 21 12:17:51

32 Aplicaţii de autentificare 8. Kerberos pentru utilizator
Alte comenzi: kinit prin care se poate schimba identitatea Kerberos (de exemplu daca altcineva vrea sa lucreze pe calculatorul acelaşi PC va tasta kinit numele si parola personala) kdestroy prin care toate tichetele de pe masina locala sunt distruse; foarte util daca utilizatorul părăseşte PC-ul si nu doreşte ca altcineva sa poata lucra în numele său

33 Aplicaţii de autentificare 8. Kerberos pentru utilizator
Alte comenzi: kpasswd prin care se pote schimba cheia (parola) stocata pe AS. Schimbarea parolei este sigura, pentru ca aceasta va fi trimisa criptat la serverul care face managementul parolelor si modifica baza de date din care citeste AS. kdb_init este o comanda folosita de administrator pentru a crea o noua baza de date Kerberos atunci cînd porneste serviciul.

34 Aplicaţii de autentificare 8. Kerberos pentru utilizator
Alte comenzi: kdb_admin este o comanda folosita de administrator pentru a crea o noua baza de date Kerberos atunci cînd porneste serviciul kdb_edit este comanda prin care se pot adauga noi administratori în baza de date AS: persoane care au dreptul sa modifice baza de date.

35 Aplicaţii de autentificare
9. Slabiciunile sistemului de autentificare Kerberos 1. Pe o statie obisnuita Linux lucreaza în mod normal mai multi utilizatori. Tichetele unuia ar trebui sa fie ferite de ceilalti. Dar pe un sistem Linux practic nimic nu poate fi adapostit împotriva administratorului (root).

36 Aplicaţii de autentificare
9. Slabiciunile sistemului de autentificare Kerberos 2. O alta problema o reprezintă statiile de lucru fara disc (diskless); aceste statii importa discuri prin retea. Prin urmare, de îndata ce o astfel de statie stocheaza un tichet pe disc, tichetul va calatori prin retea şi poate fi interceptat!

37 Aplicaţii de autentificare
9. Slabiciunile sistemului de autentificare Kerberos 3. Într-o retea mare de calculatoare sincronizarea ceasurilor se face automat, folosind un protocol numit NTP: Network Time Protocol. Un alt tip de atac poate fi: Un atacator înregistreaza o serie de mesaje de la un client care stie ca reprezinta o tranzactie importanta. Peste o saptamana atacatorul infiltreaza în retea mesaje false NTP prin care seteaza ceasul unui server cu o saptamîna în urma. Apoi atacatorul retransmite mesajele capturate, care vor fi re-executate (serverul are setata o oră/dată incorectă).


Download ppt "Aplicaţii de autentificare 1. Autentificare Kerberos"

Similar presentations


Ads by Google