Ensayo Seguridad WEB: Kerberos

Kerberos

Introducción:
En este ensayo redactaremos y analizaremos el sistema Kerberos, veremos que es y además como funciona en la red, sabemos que para poder tener un programa seguro necesitamos de métodos o servicios que nos puedan brindar seguridad, además de que tengamos la total confianza de que lo que se maneje o haga en nuestro programa este protegido, para ello manejaremos y estudiaremos el protocolo Kerberos con la finalidad de debatir si es de verdad un buen uso o no.

Desarrollo:
A medida que la tecnología va avanzando también lo hace la parte de sistemas y por lo tanto también las formas de protección para asegurar lo que estamos desarrollando o enviando, pero también debemos asegurar la integridad de lo que está enviando, si el emisor es realmente el que envío ese mensaje o si están suplantado su identidad (que en ensayos anteriores hablamos de este tipo de ataque), para ello, existe un protocolo que nos permite autentificar la identidad de los usuarios, este sistema se llama Kerberos.
Kerberos es una arquitectura cliente-servidor, que proporciona seguridad en el momento en el que pasa por las redes. Este servicio garantiza la autenticación del usuario así como su integridad y privacidad, sus principales objetivos son:
·         Impedir que las claves sean enviadas a través de la red, para que el riesgo de divulgación sea nulo.
·         Centralizar la autentificación de usuarios, manteniendo una única base de Datos de usuarios para toda la red.


Arquitectura de Kerberos:
Un servidor de Kerberos se le llama Kerberos Distribution Center por sus siglas en inglés KDC y provee de dos servicios fundamentales, el de autenticación y el de tickets.
Ésta aquitectura 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; Se suele denominar a esta clave, para la comunicación entre un cliente  y un servidor, se utilizan para minimizar el uso de las claves secretas de los diferentes agentes
·         El ticket es un testigo expedido a un cliente del servicio de tickets de Kerberos para solicitar los servicios de un servidor; 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. Un autenticador de un cliente ante un servidor. Este autenticador contiene, cifrado con la clave de la sesión, el nombre del cliente y un timestamp.

Usa una criptografía de claves simétricas para validar usuarios con los servicios de red, por lo que las claves son las mismas para descifrar que para cifrar. Así permite que dos computadoras conectadas a una red demuestren su identidad de manera segura de esta forma se frustran los intentos de usuarios no autorizados que intentan interceptar contraseñas en la red.
Además de esto, el servicio también valida que los datos que se transfieren de un lugar a otro y cifra los datos durante la  transmisión, esto permite que puedas iniciar sesión desde otros dispositivos ajenos al tuyo, ejecutar comandos, intercambiar datos y transferir archivos de manera segura, también autoriza a los administradores restringir el acceso de quienes entran y quienes no a los servicios y equipos.

Kerberos fue desarrollado por el Instituto Tecnológico de Massachusetts (MIT)  en principio para proteger los servicios de red proporcionados por el Proyecto Athena, existen varias versiones desde su creación a la fecha pero la más resaltable es la versión 5 para la autenticación de clave pública, el transporte de datos de autorización y la delegación.
De esta manera podemos saber las funcionalidades más importantes del sistema, las cuales son: cada usuario dispone de una clave, cada Servidor dispone de una clave, Kerberos mantiene una base de Datos donde contiene todas estas claves, 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.

Autenticación
Es un proceso en el que diferentes elementos colaboran para conseguir identificar a un cliente que solicita un servicio ante un servidor que lo ofrece, 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 los datos:
Se refiere a que se asegura que los datos no se modifiquen durante la transmisión por lo que cada mensaje tiene que estar autentificado sin importar su contenido.

Privacidad de los datos:
Se asegura que los datos no sean leídos durante la transmisión, por lo que aquí se cifra el contenido.

Este sistema nos proporciona todo tipo de ventajas para asegurar la identidad y privacidad del usuario y el mensaje respectivamente pero como todo, no es perfecto, así que ahora veremos las desventajas que puede llegar a tener:

En principio, uno de los principales problemas de Kerberos es que cualquier programa que lo utilice ha de ser modificado para poder funcionar correctamente, siguiendo un proceso denominado “kerberización”. Esto implica obviamente que se ha de disponer del código fuente de cada aplicación que se desee kerberizar, y también supone una inversión de tiempo considerable para algunas aplicaciones más o menos complejas que no todas las organizaciones se pueden permitir.
Supone 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.
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 (que funcionen con Kerberos) de todas las aplicaciones cliente/servidor que envíen contraseñas sin encriptar o no utilizar ninguna de estas aplicaciones en la red.

Conclusión:
Sinceramente en mi opinión creo que Kerberos es una forma bastante eficiente de mantener seguro tu programa, pues así te aseguras de que de verdad el cliente y el servidor tiene una comunicación directa y no habrá manera en que se pierdan mensajes o que los intercepten, el único defecto que veo  en este sistema es que si por error alguien sabe la contraseña y usuario de alguna otra y se comunica con alguna otra, realmente no sabrá si de verdad esa persona es que dice ser pero en general se me hace un sistema bastante seguro aunque por supuesto no me agradaría mucho que al Kerberizar, se disponga del programa que realizamos, aún así yo lo analizaría para adquirirlo para mis programas.

Referencias:
Oracle (2011)
¿Qué es servicio Kerberos?, obtenido de:

Red Hat (2005)
Kerberos, obtenido de:

Microsoft(11/11/2017)
Información general de la autenticación Kerberos, obtenido de:

EcuRed(11/11/2017)
Kerberos, obtenido de:

RedIris(12/11/2008)
Kerberos, obtenido de:

Comentarios

Entradas más populares de este blog

Ensayo SIstemas Distribuidos

Ensayo Cliente-Servidor

Ensayo Modelo OSI y TCP/IP