- Introducción
- ¿Qué hace Kerberos?
- ¿Porqué toda esta información en el ticket?
- Autenticación mutua
- Administración
- Bibliografía
1. Introducción
Internet es un lugar inseguro. Muchos de los protocolos utilizados actualmente carecen de seguridad. Además, existen crackers que con frecuencia interceptan contraseñas, razón por la cual aplicaciones que mandan una contraseña no encriptada en la red son extremadamente vulnerables. Peor aun, algunas aplicaciones cliente/servidor asumen que el cliente proveerá su identificación correctamente, y otras confían en que el cliente restringirá sus actividades a aquellas que están autorizadas sin ningún otro refuerzo del servidor.
Algunos sitios utilizan firewalls para solucionar los problemas de seguridad en redes. Pero los firewalls asumen que las personas que desean hacer daño están del lado de afuera, cuando en realidad esta aseveración suele ser falsa.
Kerberos es un personaje de la mitología griega que por ser quien cuidaba las puertas del infierno, representa seguridad. Se podría decir que como servicio de autenticación, ahora cuida las puertas de la red, impidiendo que entren personas indeseadas.
Kerberos es un servicio de autenticación desarrollado en MIT (Massachusetts Institute of Technology) y diseñado por Miller y Neuman en el contexto del Proyecto Athena en 1987. Esta basado en el protocolo de distribución de claves presentado por Needham y Schroeder en 1978.
En una red con usuarios que solicitan servicios desde muchas terminales, hay tres enfoques básicos que se pueden utilizar para dar control de acceso:
No hacer nada. Confiar en que la máquina en la que el usuario está "logueado" evite accesos no autorizados.
Requerir que el host pruebe su identidad, pero confiar en su palabra sobre quién es el usuario.
Requerir que el usuario pruebe su identidad para cada servicio solicitado.
En un ambiente cerrado, donde las máquinas tienen un control estricto, se podría utilizar el primer enfoque. En ambientes más abiertos, se podría usar la segunda opción. En ambientes como el de Athena, en el cual cada usuario debe probar su identidad a cada servicio que desee utilizar el tercer enfoque es el más adecuado.
El entorno tendrá ciertos requerimientos sobre el sistema de identificación:
1) Seguridad. Un atacante no debe encontrar el punto débil en la autenticación.
Alguien que observa la red no debe obtener la información necesaria para hacerse pasar por otro usuario.
2) Confiabilidad. El acceso a muchos servicios dependerá del servicio de autenticación y si éste no es confiable, el sistema de servicios tampoco lo será.
3) Transparencia. El usuario no debe percatarse de que se está autentificando.
4) Escalabilidad. El entorno no debe colapsar si aumenta el número de aplicaciones kerberizadas.
En una red de usuarios en la que se requieren servicios de distintas computadoras, si la red tiene miles de usuarios y decenas de servidores, no es deseable que cada servidor guarde las contraseñas de todos los usuarios. En ese caso, habría tantos puntos de ataque como servidores. Además, por ejemplo si un usuario quisiera cambiar su contraseña, debería contactar a todos los servidores y notificarles del cambio. Es para evitar estos problemas que surge la idea de tener un servicio de autenticación.
Kerberos es el resultado de satisfacer estos requerimientos. La seguridad de Kerberos descansa en la seguridad de varios servidores de autenticación, pero no en el sistema que se "loguea" o en los servidores finales que se utilicen.
2. ¿Qué hace Kerberos?
Cada usuario tendrá una clave y cada servidor tendrá una clave, y Kerberos tiene una base de datos que las contendrá a todas. En el caso de ser de un usuario, su clave será derivada de su contraseña y estará encriptada, mientras que en el caso del servidor, la clave se generará aleatoriamente. Los servicios de red que requieren autenticación y los usuarios que requieran estos servicios, se deben registrar con Kerberos. Las claves privadas se negocian cuando se registran.
Como Kerberos sabe todas las claves privadas, puede crear mensajes que convenzan a un servidor de que un usuario es realmente quien dice ser y viceversa. La otra función de Kerberos es generar las llamadas claves de sesión, que serán compartidas entre un cliente y un servidor, y nadie más. La clave de sesión podrá ser usada para encriptar mensajes que serán intercambiados entre ambas partes. El almacenamiento de la base de datos y la generación de claves, se lleva a cabo en un servidor que se denomina Servidor de Autenticación (AS por las siglas en inglés de Authentication Server).
Kerberos provee tres niveles distintos de protección. El programador de la aplicación determinará cual es apropiado, de acuerdo a los requerimientos de la aplicación.
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:
Página siguiente |