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.
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
Publicar un comentario