Kerberos

De Viquipèdia
Dreceres ràpides: navegació, cerca

Kerberos és un protocol d'autenticació de xarxes d'ordinador que permet a dos ordinadors en una xarxa insegura demostrar la seva identitat mútuament de manera segura. Els seus dissenyadors es van concentrar primerament en un model de client-servidor, i ofereix autenticació mútua: tant client com servidor verifiquen la identitat un de l'altre. Els missatges d'autenticació estan protegits per evitar eavesdropping i atacs de Replay.

Kerberos es basa en criptografia de clau simètrica i requereix un tercer de confiança. A més, hi ha extensions del protocol per poder utilitzar criptografia de clau asimètrica.

Història i desenvolupament[modifica | modifica el codi]

L'Institut Tecnològic de Massachusetts (MIT) va desenvolupar Kerberos per protegir els serveis de xarxa proporcionades pel projecte Athena. El projecte va rebre el nom a causa del personatge mitològic grec Kerberos (o Can Cèrber), el gos guardià de tres caps de Hades. Hi ha diverses versions del protocol. Les versions 1-3 es van desenvolupar només dins de l'ambient del MIT.

Steve Miller i Clifford Neuman, els principals dissenyadors de la versió 4 de Kerberos, van publicar aquesta versió al final de la dècada de 1980, encara que l'havia orientat principalment per al projecte Athena.

La versió 5, dissenyada per John Kohl i Clifford Neuman, va aparèixer com la RFC 1510 en 1993 (que va quedar obsoleta per la RFC 4120 el 2005), amb la intenció d'eliminar les limitacions i problemes de seguretat presents a la versió 4.

El MIT distribueix una implementació de Kerberos lliurement sota una llicència similar a la de BSD.

Les autoritats dels Estats Units varen classificar Kerberos com a munició, prohibint d'aquesta manera la seva exportació doncs utilitza el algorisme de xifrat DES (amb clau de 56 bits). Una implementació no nord-americana de Kerberos 4, desenvolupada a Suècia, va posar el sistema a disposició fora dels Estats Units abans que aquest canviés les seves polítiques d'exportació de criptografia (al voltant de l'any 2000). La implementació sueca es va basar en una versió anomenada eBones, la qual es basava en la versió exportada MIT Bones (a la qual se li havien tret les funcions de xifrat i les trucades a elles), basada al seu torn en Kerberos 4, nivell de correcció 9. L'australià Eric Young, autor de nombroses biblioteques criptogràfiques, va posar novament les crides a funcions i va usar la seva biblioteca de xifrat libdes . Aquesta versió una mica limitada de Kerberos es va anomenar versió eBones. Una implementació de Kerberos en la seva versió 5,[1] es va llançar per bàsicament el mateix grup de gent que va llançar KTH-KRB.

Windows 2000, Windows XP i Windows Server 2003 fan servir una variant de Kerberos com el seu mètode d'autenticació per defecte. Alguns agregats de Microsoft al conjunt de protocols de Kerberos estan documentats a la RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and set Password Protocols" ( Protocols de canvi i establiment de clau de tipus Kerberos a Microsoft Windows 2000 ). Mac OS X d'Apple també usa Kerberos tant en les seves versions de client i de servidor.

Fins a l'any 2005, el grup de treball de Kerberos de la IETF es troba actualitzant les especificacions.[2] Actualitzacions recents inclouen:

  • "Especificació de xifrat i codi de revisió d'errors" (RFC 3961),
  • Xifrat per "AES per Kerberos 5" (RFC 3962),
  • Una nova versió de l'especificació de Kerberos 5: "El servei d'autenticació Kerberos (V5)" (RFC 4120). Aquesta versió fa obsoleta a la RFC 1510, aclareix aspectes del protocol i del seu ús esperat en major detall i una explicació més clara,
  • Una nova edició de l'especificació de la interfície de programa d'aplicació de serveis de seguretat genèrics: "El mecanisme d'interfície de programa d'aplicació de serveis de seguretat genèrics (GSS-API) de Kerberos Version 5: Version 2. " (RFC 4121).

Descripció[modifica | modifica el codi]

Kerberos es basa en el Protocol de Needham-Schroeder. Utilitza un tercer de confiança, denominat "centre de distribució de claus" (KDC, per les seves sigles en anglès: Key Distribution Center ), el qual consisteix de dues parts lògiques separades: un "servidor d'autenticació" (AS o Authentication Server ) i un "servidor emissor de tiquets" (TGS o Ticket Granting Server ). Kerberos treballa sobre la base de "tiquets", els quals serveixen per demostrar la identitat dels usuaris.

Kerberos manté una base de dades de claus secretes, cada entitat en la xarxa-sigui client o servidor-comparteix una clau secreta coneguda únicament per ell i Kerberos. El coneixement d'aquesta clau serveix per provar la identitat de l'entitat. Per a una comunicació entre dues entitats, Kerberos genera una clau de sessió, la qual poden utilitzar per assegurar les seves interaccions.

Motivació[modifica | modifica el codi]

Internet no és un lloc segur. Molts dels protocols usats a Internet no proporcionen característiques de seguretat. És habitual que experts informàtics maliciosos empren eines per seguir i aconseguir contrasenyes de la xarxa. Per tant, les aplicacions que envien una contrasenya no xifrada per la xarxa són summament vulnerables. Pitjor encara, algunes aplicacions de client/servidor depenen de l'honestedat de l'usuari que les està utilitzant sobre la seva identitat.

Alguns llocs intenten solucionar els problemes de seguretat de la xarxa amb tallafocs. Malauradament, l'ús exclusiu de tallafocs es basa en la suposició que els "dolents" estan a l'exterior, el que és sovint una suposició incorrecta i perillosa. Un bon nombre dels més greus delictes informàtics són executats des de dins de la pròpia corporació atacada. Els tallafocs també pateixen un desavantatge important, ja que restringeixen com poden utilitzar Internet els usuaris de la xarxa per ells protegida. Després de tot, els tallafocs són només un exemple menys extremista del dictamen que no hi ha res més segur que un ordinador que està desconnectada de la xarxa. Però en molts casos, aquestes restriccions són simplement impossibles d'assumir.

Kerberos va ser creat pel MIT com una solució per aquests problemes de seguretat de la xarxa. El protocol Kerberos fa servir una criptografia fort amb el propòsit que un client pugui demostrar la seva identitat a un servidor (i viceversa) a través d'una connexió de xarxa insegura. Després que un client/servidor han aconseguit a través de Kerberos demostrar la seva identitat, també poden xifrar totes les seves comunicacions per garantir la privacitat i la integritat de les dades intercanviats.

Kerberos està disponible gratuïtament en el MIT, sota permisos de drets d'autor molt similars a aquells que van usar per al sistema operatiu de BSD i el X Window. El MIT proveeix el codi font de Kerberos amb el propòsit que qualsevol que desitgi fer-lo servir pugui estudiar el codi i així assegurar-se que el codi és digne de confiança. A més, per a aquells que prefereixen dependre d'un producte amb un suport professional, Kerberos està disponible a través de molts distribuïdors diferents com a producte comercial.

En resum, Kerberos és una solució per a certs problemes de seguretat de la xarxa. Proveeix les eines d'autenticació i criptografia reforçada a través de la xarxa per ajudar a assegurar que els sistemes d'informació d'una empresa o corporació estan ben arrecerats.

Funcionament[modifica | modifica el codi]

A continuació es descriu succintament el protocol. Es faran servir les següents abreviatures:

  • AS = Authentication Server
  • TGS = Ticket Granting Server
  • SS = Service Server.

En resum el funcionament és el següent: el client s'autentica a si mateix contra l'AS, així demostra al TGS que està autoritzat per rebre un tiquet de servei (i el rep) i ja pot demostrar al SS que ha estat aprovat per fer ús del servei kerberizado.

En més detall:

  1. Un usuari ingressa el seu nom d'usuari i password en el client
  2. El client genera una clau hash a partir del password i la farà servir com la clau secreta del client.
  3. El client envia un missatge en text pla a l'AS demanant servei en nom de l'usuari.
  4. L'AS comprova si el client està a la base de dades. Si és així, l'AS envia dos missatges al client:
  5. # Missatge A: Client/TGS session key xifrada utilitzant la clau privada de l'usuari
  6. # Missatge B: Ticket-Granting Ticket (que inclou el ID de client, l'adreça de xarxa del client, el període de validesa i el Client/TGS session key) xifrat utilitzant la clau privada del TGS.
  7. Un cop el client ha rebut els missatges, desxifra el missatge A per obtenir el client/TGS session key. Aquesta session key s'usa per a les posteriors comunicacions amb el TGS. (El client no pot desxifrar el missatge B doncs per xifrar aquest s'ha usat la clau del TGS). En aquest moment el client ja es pot autenticar contra el TGS.
  8. Llavors el client envia els següents missatges al TGS:
  9. # Missatge C: Compost del Tiquet-Granting Ticket del missatge B i el ID del servei demanat.
  10. # Missatge D: autenticitat (compost per l'ID de client i una marca de temps), xifrat fent servir el client/TGS session key.
  11. Quan rep els missatges anteriors, el TGS desxifra el missatge D (autenticador) usant el client/TGS session key i envia els següents missatges al client:
  12. # Missatge E: Client-to-server tiquet (que inclou el ID de client, l'adreça de xarxa del client, el període de validesa i una Client/Server session key) xifrat utilitzant la clau privada del servei.
  13. # Missatge F: Client/server session key xifrada fent servir el client/TGS session key.
  14. Quan el client rep els missatges E i F, ja té prou informació per autenticar contra el SS. El client es connecta al SS i envia els següents missatges:
  15. # Missatge E del pas anterior.
  16. # Missatge G: un nou autenticitat que inclou l'ID de client, una marca de temps i que està xifrat utilitzant el client/server session key.
  17. El SS desxifra el tiquet amb el vostre pròpia clau secreta i envia el següent missatge al client per confirmar la seva identitat:
  18. # Missatge H: la marca de temps trobada en l'últim autenticador rebut del client més un, xifrat el client/server session key.
  19. El client desxifra la confirmació fent servir el client/server session key i comprova si la marca de temps està correctament actualitzada. Si això és així, el client confiarà al servidor i podrà començar a utilitzar el servei que aquest ofereix.
  20. El servidor proveeix del servei al client.

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Kerberos Modifica l'enllaç a Wikidata

Referències[modifica | modifica el codi]