Kerberos

Revisión del 12:12 24 jul 2012 de Carlos idict (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Protocolo de seguridad Kerberos
Información sobre la plantilla
Kerberos.png

Protocolo de seguridad Kerberos. Es un protocolo de seguridad muy difundido en entornos Unix, aunque adoptado también por otros sistemas operativos como Windows 2000

Definición

Kerberos es un sistema de autentificación de usuarios, que posee un doble objetivo:

  •  Impedir que las claves sean enviadas a través de la red, con el consiguiente Riesgo de su divulgación.
  •  Centralizar la autentificación de usuarios, manteniendo una única base de Datos de usuarios para toda la red.

Kerberos, como protocolo de seguridad, usa una Criptografía de claves simétricas, lo que significa que la clave utilizada para cifrar es la misma clave utilizada para descifrar o autenticar usuarios. Esto permite a dos computadores en una red insegura, demostrar su identidad mutuamente de manera segura. Kerberos entonces restringe los accesos sólo a usuarios autorizados y autentica los requerimientos a servicios, asumiendo un entorno distribuido abierto, en el cual usuarios ubicados en estaciones de trabajo acceden a estos servicios en Servidores distribuidos a través de una red.

Origen y desarrollo de Kerberos

El Instituto Tecnológico de Massachusetts (MIT) desarrolló Kerberos para proteger los servicios de red proporcionados por el Proyecto Athena. El proyecto recibió el nombre debido al personaje mitológico griego Kerberos. Existen varias versiones del protocolo. Las versiones 1 a 3 se desarrollaron sólo dentro del ambiente del MIT. Steve Miller y Clifford Neuman, los principales diseñadores de la versión 4 de Kerberos, publicaron esa versión al final de la década de 1980. La versión 5, diseñada por John Kohl y Clifford Neuman, apareció como la RFC 1510 en 1993 (que quedó obsoleta por la RFC 4120 en 2005), con la intención de eliminar las limitaciones y problemas de seguridad presentes en la versión 4. Windows 2000, Windows XP y Windows Server 2003 usan una variante de Kerberos como su método de autenticación por defecto. Algunos agregados de Microsoft al conjunto de protocolos de Kerberos están documentados en la RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols" (Protocolos de Cambio y establecimiento de clave de tipo Kerberos en Microsoft Windows 2000). Mac OS X de Apple también usa Kerberos tanto en sus versiones de cliente y de servidor.

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.

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.

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.

Desventajas de Kerberos

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.

Fuente