Protocolul Kerberos
În tehnologia informației și telecomunicații, Kerberos este un protocol de rețea pentru autentificare puternică, care permite diferitelor terminale să comunice 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 3244 „ Microsoft 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ă
- Un utilizator introduce numele de utilizator și parola pe client.
Client: autentificare AS
- 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.
- 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.
- 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
- 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 .
- 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
- 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 .
- 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 .
- 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.
- 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
- Wikimedia Commons conține imagini sau alte fișiere din Protocolul Kerberos
linkuri externe
- Pagina Kerberos a MIT , la web.mit.edu .
- Întrebări frecvente despre Kerberos , la faqs.org .
- Tutorial Kerberos , pe zeroshell.net .
- Kerberos 5 - autentificare utilizator , pe xoomer.alice.it .
Controlul autorității | GND ( DE ) 4648184-9 |
---|