Ce este Kerberos?

Kerberos este un protocol de autentificare a rețelei de calculatoare. Este conceput la MIT pentru a permite resursele de rețea într-o manieră sigură. În acest articol, vom vedea discutat despre conceptul Kerberos și despre lucrul acestuia cu ajutorul unui exemplu.

Cum funcționează Kerberos?

Kerberos funcționează în trei pași. Acum să discutăm acei trei pași unul câte unul.

Pasul 1:

Autentificare

Clientul își introduce numele la o stație de lucru arbitrară. Apoi stația de lucru trimite numele către serverul de autentificare în format text simplu.
Ca răspuns, serverul de autentificare efectuează unele acțiuni. În primul rând, creează pachetul de nume de utilizator, adică Client și generează cheia de sesiune. Criptează acest pachet cu o cheie simetrică pe care serverul de autentificare o partajează cu Ticket Granting Server (TGS). Produsul acestui proces se numește Ticket Granting Ticket (TGT). Apoi, serverul de autentificare combină TGT și cheia de sesiune și le criptează împreună folosind cheia simetrică care este derivată de la parola clientului.

Notă: TGT poate fi deschis doar prin utilizarea TGS, iar ieșirea finală poate fi deschisă numai de către client.

După primirea acestui mesaj, stația de lucru a utilizatorului solicită parola. Când un utilizator sau un client introduce parola, stația de lucru generează cheia simetrică derivată de la parola unui server de autentificare. Această cheie este folosită pentru a extrage cheia de sesiune și TGT. După aceea, stația de lucru distruge parola clientului din memoria sa pentru a preveni atacul.
Notă: Utilizatorii nu pot deschide Biletul de acordare a biletelor.

Pasul 2:

Obținerea unui serviciu de acordare a biletului.

Să presupunem că, după autentificarea cu succes, utilizatorul dorește să comunice cu alți utilizatori prin intermediul serverului de poștă. Pentru acel client informează stația de lucru că dorește să contacteze un alt utilizator X. Deci clientul are nevoie de un bilet pentru a comunica cu X. În acest moment, stația de lucru client creează un mesaj destinat unui server care acordă bilete, care conține elemente menționate mai jos -
• Bilet de acordare a biletului
• ID-ul X ale cărui clienți de servicii sunt interesați.
• Momentul de marcare curent ar trebui să fie criptat cu aceeași cheie de sesiune.

Acordarea biletului, biletul este criptat doar cu cheia secretă a serverului care acordă bilet, astfel încât doar serverul care acordă biletul poate deschide un bilet care acordă bilet. Datorită acestui server care acordă bilete, cred că mesajul provine de la clientul cu adevărat. Serverul de autentificare a sesiunii a criptat biletul și cheia de sesiune.

Un server de autentificare îl criptează folosind cheia secretă care este derivată de la parola clientului. Prin urmare, singurul client poate deschide pachetul și pentru a prelua biletul Granting Ticket
Odată ce serverul care acordă biletul este satisfăcut de detaliile introduse de client, biletul de acordare a biletelor creează un KAB cheie de sesiune pentru ca clientul să efectueze comunicarea sigură cu X. Ticket Granting Server îl trimite de două ori către client - prima dată când îl trimite atunci când este combinat cu ID-ul X și criptat cu cheia de sesiune, a doua oară este trimis atunci când este combinat cu id-ul clientului și criptat cu cheia secretă X KB.

În acest caz, atacatorul poate încerca și obține primul mesaj trimis de client și poate încerca un atac de răspuns. Totuși, acest lucru nu va reuși, deoarece mesajul client conține un timestamp criptat, iar atacatorul nu poate înlocui ștampila de timp, deoarece nu are cheia de sesiune.

Pasul 3:

Persoane de contact X pentru accesarea serverului.

Un client trimite KAB la X pentru a crea o sesiune cu X. Pentru o comunicare sigură, clientul KAB transmis înainte criptat cu cheia secretă a lui X către X. X poate accesa KAB. Pentru a vă proteja de un atac de răspuns, clientul trimite un timestamp la X care este criptat cu KAB.

X folosește cheia secretă pentru a obține informațiile, din aceste informații folosește KAB pentru a decripta valoarea ștampilei. Apoi X adaugă 1 la valoarea de timp și o criptează folosind KAB și îl trimite clientului. Clientul deschide apoi pachetul și verifică ștampila incrementată de X. Din acest proces, clientul se asigură că X-ul a primit același KAB care este trimis de client.

Acum, clientul și X pot comunica între ei în siguranță. Ambele utilizează cheia secretă comună KAB, criptează datele la momentul expedierii și decriptează mesajul folosind aceeași cheie. Supunem că clientul poate dori să comunice cu un alt server Y, în acest caz, clientul doar n3d pentru a obține o altă cheie secretă. de pe serverul de acordare a biletelor. După obținerea cheii secrete, el poate comunica cu Y la fel cum am discutat în cazul lui X. Dacă clientul poate comunica din nou cu X, poate utiliza aceeași cheie anterioară, nu este necesar să generezi un bilet de fiecare dată. Doar pentru prima dată, el trebuie să obțină biletul.

Avantajele și dezavantajele Kerberos

Mai jos sunt avantajele și dezavantajele:

Avantajele Kerberos

  1. În Kerberos, Clienții și serviciile sunt autentificate reciproc.
  2. Este susținut de diverse sisteme de operare.
  3. Biletele din Kerberos au o perioadă limitată. De asemenea, dacă biletul este furat, este greu să refolosești biletul din cauza nevoilor puternice de autentificare.
  4. Parolele nu sunt trimise niciodată prin rețea necriptate.
  5. În Kerberos, cheile secrete sunt partajate, care sunt mai eficiente decât partajarea cheilor publice.

Dezavantajele Kerberos

  1. Este vulnerabil la parolele slabe sau repetate.
  2. Oferă autentificare numai pentru servicii și clienți.

Concluzie

În acest articol am văzut Ce este Kerberos, cum funcționează împreună cu avantajele și dezavantajele sale. Sper că veți găsi acest articol util.

Articole recomandate

Acesta este un ghid pentru Kerberos. Aici discutăm Ce este Kerberos, Cum funcționează Kerberos și Avantajele și dezavantajele sale. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Tipuri de gazduire web
  2. Ce este aplicația web?
  3. Ce este schema Star?
  4. Schiri în programare Java