Hasta el año 2005, el grupo de trabajo de Kerberos de la IETF se encuentra actualizando las especificaciones de este protocolo. Actualizaciones recientes incluyen:
- Especificación de cifrado y código de chequeo de errores (RFC 3961).
- Cifrado por "AES para Kerberos 5" (RFC 3962).
- Una nueva versión de la especificación de Kerberos 5: "El servicio de autenticación Kerberos (V5)" (RFC 4120). Esta versión hace obsoleta a la RFC 1510, clarifica aspectos del protocolo y de su uso esperado en mayor detalle y una explicación más clara.
- Una nueva edición de la especificación de la interfaz de programa de aplicación de servicios de seguridad genéricos: "El mecanismo de interfaz de programa de aplicación de servicios de seguridad genéricos (GSS-API) de Kerberos Version 5: Version 2." (RFC 4121).
4.- FUNCIONAMIENTO GENERAL DE KERBEROS
- Cada usuario dispone de una clave.
- Cada servidor dispone de una clave.
- Kerberos mantiene una base de datos que contendrá a todas estas claves.
- La clave e un usuario será derivada de su contraseña y estará cifrada.
- La clave de un servidor se genera aleatoriamente.
- Los servicios de red que requieren autenticación, así como los usuarios que requieran estos servicios, se deben registrar con Kerberos.
- Las claves privadas se negocian cuando los usuarios se registran.
- Kerberos, en conocimiento de todas las claves privadas, crea mensajes para informar a un servidor de la autenticidad de un usuario que requiere servicios de éste.
5.- NIVELES DE PROTECCIÓN DE KERBEROS
Autenticación
Prueba que el usuario es quien dice ser. Puede ser que la autenticidad se establezca al inicio de la conexión de red y luego se asuma que los siguientes mensajes de una dirección de red determinada se originan desde la parte autenticada.
Integridad de datos
Asegura que los datos no se modifican en tránsito. Se requiere autenticación de cada mensaje, sin importar el contenido del mismo. Esto se denomina mensaje seguros.
Privacidad de datos
Asegura que los datos no son leídos en tránsito. En este caso, no sólo se autentica cada mensaje, sino que también se cifra. Éstos mensajes son privados.
6.- ARQUITECTURA DE KERBEROS
Un servidor Kerberos se denomina KDC (Kerberos Distribution Center), y provee dos servicios fundamentales: el de autenticación (AS, Authentication Service) y el de tickets (TGS, Ticket Granting Service). El primero tiene como función autenticar inicialmente a los clientes y proporcionarles un ticket para comunicarse con el segundo, el servidor de tickets, que proporcionará a los clientes las credenciales necesarias para comunicarse con un servidor final que es quien realmente ofrece un servicio. Además, el servidor posee una base de datos de sus clientes (usuarios o programas) con sus respectivas claves privadas, conocidas únicamente por dicho servidor y por el cliente que al que pertenece.
La arquitectura de Kerberos está basada en tres objetos de seguridad: Clave de Sesión, Ticket y Autenticador.
- La clave de sesión es una clave secreta generada por Kerberos y expedida a un cliente para uso con un servidor durante una sesión de trabajo.
- El ticket es un testigo expedido a un cliente del servicio de tickets de Kerberos para solicitar los servicios de un servidor. El ticket garantiza que el cliente ha sido autenticado recientemente.
- El autenticador es un testigo construido por el cliente y enviado a un servidor para probar su identidad y la actualidad de la comunicación. Sólo puede ser utilizado una vez.
A pesar de que Kerberos elimina una amenaza de seguridad común, puede ser difícil de implementar por una variedad de razones:
- La migración de contraseñas de usuarios desde una base de datos de contraseñas estándar UNIX, tal como /etc/passwd o /etc/shadow, a una base de datos de contraseñas Kerberos, puede ser tediosa y no hay un mecanismo rápido para realizar esta tarea.
- Kerberos presupone que cada usuario es de confianza, pero que está utilizando una máquina no fiable en una red no fiable. Su principal objetivo es el de prevenir que las contraseñas no cifradas sean enviadas a través de la red. Sin embargo, si cualquier otro usuario, aparte del usuario adecuado, tiene acceso a la máquina que emite tickets (KDC) para la autenticación, Kerberos estaría en riesgo.
- Para que una aplicación use Kerberos, el código debe ser modificado para hacer las llamadas apropiadas a las librerías de Kerberos. Las aplicaciones que son modificadas de esta forma son consideradas como kerberizadas. Para algunas aplicaciones, esto puede suponer un esfuerzo excesivo de programación, debido al tamaño de la aplicación o su diseño. Para otras aplicaciones incompatibles, los cambios se deben realizar en el modo en que el servidor de red y sus clientes se comunican; de nuevo, esto puede suponer bastante programación. En general, las aplicaciones de código cerrado que no tienen soporte de Kerberos son usualmente las más problemáticas.
- Finalmente, si decide usar Kerberos en su red, debe darse cuenta de que es una elección de todo o nada. Si decide usar Kerberos en su red, debe recordar que si se transmite cualquier contraseña a un servicio que no usa Kerberos para autenticar, se corre el riesgo de que el paquete pueda ser interceptado. Así, su red no obtendrá ningún beneficio de usar Kerberos. Para asegurar su red con Kerberos, solo debe utilizar las versiones kerberizadas de todas las aplicaciones cliente/servidor que envíen contraseñas sin cifrar o no utilizar ninguna de estas aplicaciones en la red.
8.- CONCLUSIONES
Kerberos fue creado por el MIT como una solución para los problemas de seguridad de la red. El protocolo de Kerberos usa una criptografía fuerte con el propósito de que un cliente pueda demostrar su identidad a un servidor (y viceversa) a través de una conexión de red insegura. Después de que un cliente/servidor han conseguido a través de Kerberos demostrar su identidad, también pueden cifrar todas sus comunicaciones para garantizar la privacidad y la integridad de los datos intercambiados.
Kerberos está disponible gratuitamente en el MIT, bajo permisos de derechos de autor muy similares a aquellos que usaron para el sistema operativo de BSD y el X Window System. El MIT provee el código fuente de Kerberos con el propósito de que quienquiera que desee usarlo pueda estudiar el código y así asegurarse de que el código es digno de confianza. Además, para aquellos que prefieren depender de un producto con un soporte profesional, Kerberos está disponible a través de muchos distribuidores diferentes como producto comercial.
En resumen, Kerberos es una solución para ciertos problemas de seguridad de la red. Provee las herramientas de autenticación y criptografía reforzada a través de la red para ayudar a asegurar que los sistemas de información de una empresa o corporación están bien resguardados.
Sin embargo, y aunque se trate de un sistema robusto, no está exento de ciertos problemas, tanto de seguridad como de implementación, que han hecho que este sistema no esté todo lo extendido que debería.
9.- FUENTES BIBLIOGRÁFICAS
M.I.T., "Kerberos: The Network Authentication Protocol".
web.mit.edu/Kerberos/
Diciembre 6, 2007.
Wikipedia, "Kerberos".
es.wikipedia.org/wiki/Kerberos
Diciembre 6, 2007.
USC's Center for Computer Systems Security, "The Kerberos Network Authentication Service".
Diciembre 6, 2007.
Kerberos Consortium, "Kerberos".
Diciembre 6, 2007.
AUTOR
Leonardo Muro García
Universidad Nueva Esparta
Facultad de Ciencias
Caracas, Venezuela
21 de Noviembre de 2007
Página anterior | Volver al principio del trabajo | Página siguiente |