Protocolul Kerberos

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Schema de funcționare a protocolului Kerberos

În tehnologia informației și telecomunicații, Kerberos este un protocol de rețea pentru autentificare puternică, care permite diferitelor terminalecomunice pe o rețea de calculatoare nesigură , dovedindu-și identitatea prin utilizarea tehnicilor de criptare simetrică . Kerberos previne atacuri precum interceptarea și reluarea atacurilor și asigură integritatea datelor . Designerii săi au vizat în primul rând un model client-server și oferă autentificare reciprocă, adică atât utilizatorul , cât și furnizorul de servicii pot verifica identitatea celuilalt.

Istorie

Massachusetts Institute of Technology (MIT) a dezvoltat Kerberos pentru a securiza serviciile de rețea furnizate de Project Athena . Protocolul a fost botezat ca personajul mitologic Cerber , care în mitologia greacă era câinele cu trei capete care păzea Hades . Există mai multe versiuni ale protocolului; versiunile de la 1 la 3 au fost utilizate numai în cadrul MIT.

Steve Miller și Clifford Neuman, principalii dezvoltatori ai versiunii 4 Kerberos, au lansat această versiune la sfârșitul anilor 1980, deși a fost dezvoltată în principal pentru Project Athena.

Versiunea 5, proiectată de John Kohl și Clifford Neuman, a fost oficializată în RFC 1510 în 1993 (învechită de RFC 4120 în 2005 ), cu intenția de a rezolva limitările și problemele de securitate ale versiunii 4.

MIT oferă o implementare gratuită Kerberos sub o licență de tip BSD .

Autoritățile americane au clasificat Kerberos drept o armă [ fără sursă ] și a interzis exportul, deoarece a folosit algoritmul de criptare DES (cu chei de 56 de biți ). O implementare non-americană a Kerberos, KTH-KRB dezvoltată în Suedia , a făcut ca sistemul să fie disponibil și în afara SUA, înainte ca aceștia să își schimbe legea de export pe algoritmi criptografici (în jurul anului 2000 ). Implementarea suedeză a protocolului s-a bazat pe o versiune a Kerberos numită eBones. eBones s-a bazat pe versiunea MIT Bones (practic o versiune a lui Kerberos lipsită de funcții criptografice și apeluri ale acestora) derivată din Kerberos 4 patchlevel 9. Australianul Eric Young, autor al mai multor biblioteci criptografice, a reintrodus apelurile către funcțiile criptografice folosind propria bibliotecă libdes . Această versiune limitată a Kerberos a fost numită eBones. O implementare a versiunii 5 Kerberos, Heimdal , a fost lansată în esență de același grup care a creat KTH-KRB.

Windows 2000 , Windows XP și Windows Server 2003 utilizează o variantă a Kerberos ca sistem de autentificare implicit. Unele adăugiri Microsoft la Kerberos sunt documentate în RFC 3244Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols ”. MacOS- ul Apple folosește, de asemenea, Kerberos atât în ​​versiunea client, cât și în cea a serverului.

În 2005, Grupul de lucru IETF Kerberos a actualizat specificațiile [1] . Actualizările recente includ:

  • "Specificații de criptare și sumă de verificare" (trad.: "Specificații de criptare și calculul sumelor de verificare ") ( RFC 3961 )
  • Criptare standard avansat de criptare (AES) pentru Kerberos 5” (traducere: „Criptare cu AES în Kerberos 5”) ( RFC 3962 ),
  • O nouă ediție a specificației Kerberos 5 „Serviciul de autentificare a rețelei Kerberos (V5)” (traducere: „Serviciul de autentificare a rețelei Kerberos”) ( RFC 4120 ). Această versiune face RFC 1510 învechit, clarifică unele aspecte ale protocolului și utilizarea acestuia într-un mod mai detaliat și mai clar,
  • O nouă ediție a specificației pentru GSS-API ( RFC 4121 )

Descriere

Kerberos se bazează pe protocolul Needham-Schroeder . Folosește o terță parte de încredere pentru a centraliza distribuția cheilor numită Key Distribution Center (KDC), care constă din două părți separate logic: Serverul de autentificare (AS) și Serverul de acordare a biletelor (TGS). Kerberos funcționează folosind „bilete” (numite bilete ) care sunt folosite pentru a dovedi identitatea utilizatorilor.

AS menține o bază de date cu chei secrete; fiecare entitate din rețea - fie că este un client sau un server - împarte cheia secretă numai cu AS. Cunoașterea acestei chei servește pentru a dovedi identitatea unei entități. Pentru comunicarea între două entități, Kerberos generează o cheie de sesiune, care poate fi utilizată de cele două terminale pentru a comunica.

Protocolul

Protocolul poate fi definit după cum urmează folosind notația pentru protocoale de securitate , unde Alice ( A ) se autentifică la Bob ( B ) folosind serverul S :

Securitatea protocolului se bazează în mare măsură pe marcajele de timp T și pe durata vieții L ca indicatori fiabili ai creației recente a comunicației pentru a evita atacurile de redare (a se vedea logica BAN ).

Este important să rețineți că serverul S este atât un serviciu de autentificare (AS), cât și un serviciu de acordare a biletelor (TGS).

Operațiuni Kerberos

Următoarea este o descriere simplificată a protocolului. Vor fi utilizate următoarele abrevieri: AS = Server de autentificare, TGS = Server de acordare a biletelor, SS = Server de servicii.

Pe scurt: clientul se autentifică cu AS care îi furnizează un bilet de sesiune pentru a accesa TGS, se autentifică cu TGS și primește biletul pentru a deschide o sesiune de comunicare cu SS.

Detaliat:

Utilizator: autentificare de bază

  1. Un utilizator introduce numele de utilizator și parola pe client.

Client: autentificare AS

  1. Clientul trimite un mesaj necriptat către AS care solicită servicii pentru utilizator. („Utilizatorul XYZ ar dori să solicite servicii”). Nici cheia secretă, nici parola nu sunt trimise către AS.
  2. AS verifică dacă clientul se află în baza sa de date. Dacă este, trimite două mesaje către client:
    • Mesaj A: cheie de sesiune Client-TGS criptată folosind cheia secretă a utilizatorului.
    • Mesaj B: Ticket-Granting Ticket (care include identificatorul clientului, adresa de rețea, ora de valabilitate a biletului și cheia de sesiune client-TGS ). Biletul de acordare a biletelor este criptat folosind cheia secretă TGS.
  3. Când clientul primește mesajele A și B, decriptează mesajul A pentru a obține cheia de sesiune client-TGS . Această cheie este utilizată pentru comunicările ulterioare cu TGS. (Notă: clientul nu poate decripta mesajul B, care a fost criptat cu cheia secretă a TGS). În acest moment, clientul are mijloacele de autentificare cu TGS.

Client: autentificare TGS

  1. Când solicită servicii, clientul trimite următoarele două mesaje către TGS:
    • Mesajul C: format din biletul de acordare a biletelor (trimis de AS în mesajul B) și ID-ul serviciului solicitat
    • Mesaj D: autentificator (care constă din identificatorul clientului și marcajul de timp), criptat folosind cheia de sesiune client - TGS .
  2. La primirea mesajelor C și D, TGS decriptează mesajul C cu propria cheie și din mesaj extrage cheia de sesiune client - TGS pe care o folosește pentru a decripta mesajul D (autentificator). În acest moment, trimite următoarele două mesaje către client:
    • Mesaj E: Bilet client-server (care include identificatorul clientului, adresa rețelei clientului, perioada de valabilitate și cheia de sesiune client-server) criptat folosind cheia secretă a serverului care oferă serviciul.
    • Mesaj F: cheie de sesiune client-server criptată folosind cheia de sesiune client-TGS .

Client: autentificare SS

  1. Prin primirea mesajelor E și F de la TGS, clientul se poate autentifica cu SS. Clientul se conectează la SS și trimite următoarele două mesaje:
    • Mesaj E: Bilet client-server criptat folosind cheia secretă SS.
    • Mesaj G: un nou autentificator, care include identificatorul clientului, marca de timp și este criptat folosind cheia de sesiune client-server .
  2. Serverul decriptează biletul folosind cheia sa secretă și trimite următorul mesaj către client pentru a confirma identitatea și dorința de a furniza serviciul clientului:
    • Mesaj H: marcajul de timp găsit în autentificator incrementat cu unul, criptat utilizând cheia de sesiune client-server .
  3. Clientul decriptează confirmarea utilizând cheia de sesiune client-server și verifică dacă marca de timp este actualizată corect. Dacă este, clientul poate avea încredere în server și poate începe să solicite servicii.
  4. Serverul furnizează serviciile clientului.

Utilizări

Următorul software este capabil să utilizeze Kerberos pentru autentificare:

  • OpenSSH (cu Kerberos 5 sau o versiune ulterioară)
  • NFS (pornind de la versiunea NFSv4)
  • PAM (cu modulul pam_krb5)
  • SOCKS (de la SOCKS5)

Bibliografie

  • Kerberos , în Enciclopedia hackerului, Sprea International, 2011, pp. 39-43.
  • B. Clifford Neuman și Theodore Ts'o, Kerberos: Un serviciu de autentificare pentru rețele de calculatoare , comunicații IEEE, 32 (9) pp33-38. Septembrie 1994. [2]
  • John T. Kohl, B. Clifford Neuman și Theodore Y. T'so, Evoluția sistemului de autentificare Kerberos . Sisteme deschise distribuite, pp78-94. IEEE Computer Society Press, 1994.

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității GND ( DE ) 4648184-9