KERBEROS
INTRODUCCIÓN
La seguridad e integridad de un sistema es una de las cosas más importantes a la ahora de llevarlo a la red, por lo que necesitamos servicios de seguridad robustos para combatir toda amenaza que atente contra los puntos mencionados, y hoy estudiaremos a fondo uno de ellos, el protocolo "Kerberos", en donde aprenderemos de el y como es que este trabaja.
¿Qué es Kerberos?
Kerberos es un protocolo de
autenticación que proporciona un mecanismo que permite a los usuarios y las
máquinas identificarse en la red y recibir acceso limitado y definido a las
áreas y servicios configurados por el administrador. Kerberos autentica las
entidades verificando su identidad, y Kerberos también protege estos datos de
autenticación para que un externo no pueda acceder y usarlos o manipularlos. Kerberos
está integrado en todos los principales sistemas operativos, incluidos
Microsoft Windows, Apple OS X, FreeBSD y Linux. (TechTarget,
2017)
La mayoría de los servicios de
red convencionales utilizan esquemas de autenticación basados en contraseñas,
donde un usuario proporciona una contraseña para acceder a un servidor de red
determinado. Sin embargo, la transmisión de información de autenticación para
muchos servicios no está cifrada. Para que dicho esquema sea seguro, la red debe
ser inaccesible para los usuarios externos, y todas las computadoras y usuarios
de la red deben ser de confianza y confiables.
Kerberos fue desarrollado
originalmente para el Proyecto Athena en el Instituto de Tecnología de
Massachusetts (MIT). El nombre Kerberos fue tomado de la mitología griega;
Kerberos (Cerberus) era un perro de tres cabezas que vigilaba las puertas de
Hades. Los tres cabezales del protocolo Kerberos representan un cliente, un
servidor y un Centro de distribución de claves (KDC), que actúa como el
servicio de autenticación de terceros confiable de Kerberos.
¿Cómo trabaja?
Una vez que un usuario se
autentica en el KDC, envía un ticket específico para esa sesión a la máquina
del usuario y cualquier servicio kerberizado busca el ticket en la máquina del
usuario en lugar de pedirle al usuario que se autentique usando una contraseña.
Cuando un usuario en una red
kerberizada inicia sesión en su estación de trabajo, su principal se envía al
KDC en una solicitud de Ticket-Granting Ticket (TGT) desde el servidor de
autenticación (AS). Esta solicitud puede ser enviada por el programa de inicio
de sesión para que sea transparente para el usuario o pueda ser enviada por el
programa de kinit después de que el usuario inicie sesión.
El KDC busca el principal en su
base de datos. Si se encuentra el principal, el KDC crea un TGT, que se cifra
con la clave del usuario y se devuelve a ese usuario.
El programa de inicio de sesión o
de kinit en la máquina del cliente descifra el TGT usando la clave del usuario
(que calcula a partir de la contraseña del usuario). La clave del usuario se
usa solo en la máquina cliente y no se envía a través de la red.
El TGT expira después de un
cierto período de tiempo (generalmente diez horas) y se almacena en el caché de
credenciales de la máquina del cliente. Se establece un tiempo de caducidad
para que un atacante comprometido sea útil para un atacante solo por un corto
período de tiempo. Una vez que se emite el TGT, el usuario no tiene que volver
a ingresar su contraseña hasta que el TGT expire o cierre sesión y vuelva a
iniciar sesión.
Siempre que el usuario necesite
acceder a un servicio de red, el software del cliente utiliza el TGT para
solicitar un nuevo ticket para ese servicio específico del Servidor que otorga tickets
(TGS). El boleto de servicio se usa luego para autenticar al usuario de manera
transparente. (Red Hat Inc., 2017)
El sistema Kerberos puede verse comprometido cada vez que un usuario en la red se autentica frente a un servicio no kerberizado enviando una contraseña en texto sin formato. Se desaconseja el uso de servicios no kerberizados. Dichos servicios incluyen Telnet y FTP. Sin embargo, el uso de otros protocolos encriptados, como los servicios SSH o SSL asegurados, es aceptable, aunque no es ideal.
Versiones
- Version 4: Utiliza un cifrado basado en DES llamado PCBC, sin embargo esta versión tiene deficiencias como la vulnerabilidad a ataques a sus contraseñas y que este realiza un cifrado doble que resulta inútil.
- Version 5: Se añaden nuevos elementos como el Dominio del usuario, opciones para fijar indicadores en el ticket, darle tiempos de inicio y fin del ticket, agrega la opción de agregar una subclave, y finalmente agrega un mecanismo de seguridad para evitar el ataque informático “Repetición del mensaje” implementando la numeración en secuencia de los mensajes.
Conclusión
Kerberos es uno de los servicios
de autenticación más confiables para los desarrolladores, y no es nada erróneo eso,
ya que con lo que pudimos ver, este sistema además de permitirnos identificar
un servidor y un cliente, podemos cifrar toda la comunicación entre ambas
entidades. Kerberos ataca varias problemáticas, desde no permitir la
suplantación de estaciones de trabajo, modificar las direcciones de red, y contraatacar los ataques de obtención y repetición de mensajes.
Es cierto decir que no existe un
servicio de seguridad 100% infalible, pero Kerberos sí que nos da uno por el
momento, ya que cumple efectivamente con sus cometidos y como hemos visto, este
se va actualizando con el pasar de los tiempos.
Referencias
Red Hat Inc. (12 de 11 de 2017). CHAPTER 3. USING
KERBEROS. Obtenido de Red Hat | Customer Portal:
https://access.redhat.com
TechTarget. (12 de 11
de 2017). Kerberos. Obtenido de TechTarget | Search Security:
http://searchsecurity.techtarget.com
MIT. (25 de 09
de 2017). Kerberos. Obtenido de
https://web.mit.edu/kerberos/
Comentarios
Publicar un comentario