Capítulo 17. Kerberos

Kerberos es un protocolo de seguridad creado por MIT que usa una criptografía de claves simétricas para validar usuarios con los servicios de red — evitando así tener que enviar contraseñas a través de la red. Al validar los usuarios para los servicios de la red por medio de Kerberos, se frustran los intentos de usuarios no autorizados que intentan interceptar contraseñas en la red.

17.1. Ventajas de Kerberos

La mayoría de las redes usan esquemas de autenticación basados en contraseñas. Tales esquemas requieren que cuando un usuario necesita una autenticación en un servidor de red, debe proporcionar un nombre de usuario y una contraseña. Lamentablemente, la información de autenticación para muchos servicios se transmite sin estar encriptada. Para que un esquema de este tipo sea seguro, la red tiene que estar inaccequible a usuarios externos, y todos los usuarios de la red deben ser de confianza.

Aún en este caso, una vez que la red se conecte a la Internet, ya no puede asumir que la red es segura. Cualquier intruso del sistema con acceso a la red y un analizador de paquetes puede interceptar cualquier contraseña enviada de este modo, comprometiendo las cuentas de usuarios y la integridad de toda la infraestructura de seguridad.

El primer objetivo de Kerberos es el de eliminar la transmisión a través de la red de información de autenticación. Un uso correcto de Kerberos erradica la amenaza de analizadores de paquetes que intercepten contraseñas en su red.

17.1.1. 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 claves estándar UNIX, tal como /etc/passwd o /etc/shadow, a una base de datos de contraseña Kerberos puede ser tediosa y no hay un mecanismo rápido para realizar esta tarea. Para más información, refiérase a la pregunta número 2.23 en el la sección FAQ de Kerberos en: http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html.

  • Kerberos es sólo parcialmente compatible con los Pluggable Authentication Modules (PAM) usados por la mayoría de los servidores en Red Hat Linux. Para más información sobre éste tópico, vea Sección 17.4.

  • Para que una aplicación use Kerberos, el código debe ser modificado para hacer las llamadas apropiadas a las librerías de Kerberos. Para algunas aplicaciones, esto puede suponer un esfuerzo excesivo de programación. Para otras aplicaciones incompatibles, los cambios se deben realizar en el protocolo usado entre el servidor de red y sus clientes; de nuevo, esto puede suponer una programación. Por defecto, las aplicaciones de código cerrado que no tienen soporte de Kerberos son usualmente las más problemáticas.

  • Kerberos presupone que usted está utilizando hosts fiables en una red no fiable. Su primer objetivo es el de prevenir que las contraseñas en texto plano sean enviadas a través de la red. Sin embargo, si cualquier otro aparte del usuario adecuado tiene acceso físico a cualquiera de los hosts, especialmente el que emite tickets usados para la autenticación — llamado Centro de distribución de contraseñas (KDC) —, todo sistema de autenticación de Kerberos corre el riesgo de transigir.

  • 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, debe kerberizar (hacer trabajar con Kerberos) todas las aplicaciones que mandan las contraseñas en texto plano o parar el uso de estas aplicaciones en la red.