Ensayo Kerberos


INSTITUTO POLITÉCNICO NACIONAL



CENTRO DE ESTUDIOS CIENTÍFICOS Y TECNOLÓGICOS
“JUAN DE DIOS BÁTIZ PAREDES”


ALUMNA: SOSA ESTRADA MARÍA FERNANDA


GRUPO: 5IM6


MATERIA: SEGURIDAD WEB


PROFESOR: JUAN MANUEL


FECHA DE ENTREGA: 12 DE NOVIEMBRE DEL 2017


ENSAYO KERBEROS
KERBEROS


Introducción


La seguridad e integridad de sistemas dentro de una red puede ser complicada. Puede ocupar el tiempo de varios administradores de sistemas sólo para mantener la pista de cuáles servicios se están ejecutando en una red y la manera en que estos servicios son usados. Más aún, la autenticación de los usuarios a los servicios de red puede mostrarse peligrosa cuando el método utilizado por el protocolo es inherentemente inseguro, como se evidencia por la transferencia de contraseñas sin encriptar sobre la red bajo los protocolos FTP y Telnet. Kerberos es una forma eliminar la necesidad de aquellos protocolos que permiten métodos de autenticación inseguros, y de esta forma mejorar la seguridad general de la red.


Definición


El servicio Kerberos es una arquitectura cliente-servidor que proporciona seguridad a las transacciones en las redes. El servicio ofrece una sólida autenticación de usuario y también integridad y privacidad. La autenticación garantiza que las identidades del remitente y del destinatario de las transacciones de la red sean verdaderas. El servicio también puede verificar la validez de los datos que se transfieren de un lugar a otro (integridad) y cifrar los datos durante la transmisión (privacidad). Con el servicio Kerberos, puede iniciar sesión en otros equipos, ejecutar comandos, intercambiar datos y transferir archivos de manera segura. Además, Kerberos proporciona servicios de autorización, que permiten a los administradores restringir el acceso a los servicios y los equipos. Asimismo, como usuario de Kerberos, puede regular el acceso de otras personas a su cuenta.

El servicio Kerberos es un sistema de inicio de sesión único. Esto significa que sólo debe autenticarse con el servicio una vez por sesión, y todas las transacciones realizadas posteriormente durante la sesión se aseguran de manera automática. Una vez que el servicio lo autenticó, no necesita volver a autenticarse cada vez que utiliza un comando basado en Kerberos, como ftp o rsh, o accede a datos en un sistema de archivos NFS. Por lo tanto, no es necesario que envíe la contraseña a través de la red, donde puede ser interceptada, cada vez que utiliza estos servicios.

El servicio Oracle Solaris Kerberos se basa en el protocolo de autenticación de red Kerberos V5, que fue desarrollado en el Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of Technology). A quienes hayan utilizado el producto Kerberos V5 la versión de Oracle Solaris les resultará muy familiar. Dado que el protocolo Kerberos V5 es un estándar de facto para la seguridad de la red en la industria, la versión de Oracle Solaris promueve la interoperabilidad con otros sistemas. En otras palabras, como el servicio Oracle Solaris Kerberos funciona con sistemas que usan el protocolo Kerberos V5, el servicio favorece las transacciones seguras incluso en redes heterogéneas. Además, el servicio proporciona autenticación y seguridad tanto entre dominios como dentro de un único dominio.

El servicio Kerberos brinda flexibilidad para la ejecución de las aplicaciones de Oracle Solaris. Puede configurar el servicio para permitir solicitudes de servicios de red que se basen o no en Kerberos, como el servicio NFS, telnet y ftp. Como resultado, las aplicaciones actuales seguirán funcionando, incluso si se ejecutan en sistemas en que el servicio Kerberos no se encuentre habilitado. Igualmente, puede configurar el servicio Kerberos para permitir únicamente solicitudes de red que se basen en Kerberos.

El servicio Kerberos ofrece un mecanismo de seguridad que permite el uso de Kerberos para la autenticación, la integridad y la privacidad cuando se utilizan aplicaciones que emplean Generic Security Service Application Programming Interface (GSS-API). Sin embargo, no es necesario que las aplicaciones permanezcan comprometidas con el servicio Kerberos si se desarrollan otros mecanismos de seguridad. Como el servicio está diseñado para integrarse en GSS-API de manera modular, las aplicaciones que utilizan GSS-API pueden emplear el mecanismo de seguridad que mejor se ajuste a sus necesidades.


Modo en que funciona Kerberos

Kerberos es diferente de los métodos de autenticación de nombre de usuario/contraseña. En vez de validar cada usuario para cada servicio de red, Kerberos usa encriptación simétrica y un tercero, un KDC, para autentificar los usuarios a un conjunto de servicios de red. Una vez que el usuario se ha autentificado al KDC, se le envía un ticket específico para esa sesión de vuelta a la máquina del usuario y cualquier servicio kerberizado buscará por el ticket en la máquina del usuario en vez de preguntarle al usuario que se autentifique usando una contraseña.

Cuando un usuario en una red kerberizada se registra en su estación de trabajo, su principal se envía al KDC en una petición para un TGT desde el servidor de autenticación (AS). Esta petición puede ser enviada por el programa de conexión para que sea transparente al usuario o puede ser enviada por el programa kinit después de que el usuario se registre.

El KDC verifica el principal en su base de datos. Si lo encuentra, el KDC crea un TGT,el cual es encriptado usando las llaves del usuario y devuelto al usuario.

El programa login en la máquina del cliente o kinit descifra el TGT usando la contraseña del usuario La contraseña del usuario es usada únicamente en la máquina del cliente y no es enviada sobre la red.

El TGT, se configura para que caduque después de un cierto período de tiempo (usualmente 10 horas) y es almacenado en la caché de credenciales de la máquina del cliente. Se coloca un tiempo de caducidad de manera que un TGT comprometido sólo es de utilidad para un intruso por un período corto de tiempo. Una vez que el TGT es emitido, el usuario no tiene que reingresar la contraseña al KDC sino hasta que el TGT caduque o se desconecte y vuelva a conectarse.

Cuando el usuario necesita acceder a un servicio de red, el software cliente usa el TGT para pedir un nuevo ticket para ese servicio en específico al servidor de otorgamiento de tickets, TGS. El ticket para el servicio es usado para autentificar el usuario a ese servicio de forma transparente.

Resultado de imagen para kerberos


Ventajas
Los servicios de redes más convencionales 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 inaccesible 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.

Desventajas
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 contraseñas estándar UNIX, tal como /etc/passwd o /etc/shadow, a una base de datos de contraseñas Kerberos puede ser tediosa y no hay un mecanismo rápido para realizar esta tarea.
  • Kerberos es sólo parcialmente compatible con los Pluggable Authentication Modules (PAM) usados por la mayoría de los servidores Red Hat Enterprise Linux. Para más información sobre éste tópico, vea Sección 19.4.
  • Kerberos presupone 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 encriptadas 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 usados para la autenticación — llamado Centro de distribución de llaves (KDC) —, el sistema de autenticación de Kerberos completo está en riesgo.
  • Para que una aplicación use Kerberos, el código debe ser modificado para hacer las llamadas apropiadas a las librerías de Kerberos. Las aplicaciones que son modificadas de esta forma son consideradas kerberizadas. Para algunas aplicaciones, esto puede suponer un esfuerzo excesivo de programación, debido al tamaño de la aplicación o su diseño. Para otras aplicaciones incompatibles, los cambios se deben realizar en el modo en que el servidor de red y sus clientes se comunican; de nuevo, esto puede suponer bastante programación. En general, las aplicaciones de código cerrado que no tienen soporte de Kerberos son usualmente las más problemáticas.
  • 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íe contraseñas sin encriptar o no utilizar ninguna de estas aplicaciones en la red.


Kerberos y SQL Server


SQL Server admite indirectamente Kerberos a través de la interfaz del Proveedor de compatibilidad para seguridad (SSPI) cuando SQL Server usa la autenticación de Windows. SSPI permite a una aplicación utilizar diversos modelos de seguridad disponibles en un equipo o una red sin cambiar la interfaz para el sistema de seguridad.
SQL Server permite a SSPI negociar el protocolo de autenticación a utilizar; si no se puede utilizar Kerberos, Windows utilizará el mecanismo de autenticación desafío/respuesta (NTLM) de Windows NT.
SQL Server 2008 admite la autenticación Kerberos en los protocolos siguientes:


  • TCP/IP
  • Canalizaciones con nombre
  • Memoria compartida


Observaciones

  • El sistema Kerberos se vuelve vulnerable cada vez que un usuario en la red se valida contra un servicio no kerberizado y envía una contraseña en la red en texto plano. Por lo tanto no se recomienda el uso de servicios no kerberizados. Estos servicios incluyen Telnet y FTP. Se acepta el uso de otro tipo de protocolos encriptados, tales como SSH o servicios seguros SSL, pero no es ideal.


  • Kerberos depende de ciertos servicios de la red para trabajar correctamente. Primero, Kerberos necesita una sincronización de reloj entre los ordenadores de la red. Por lo tanto, se debería configurar un programa de sincronización de reloj para la red, como por ejemplo ntpd.


Conclusión

Kerberos es una muy buena herramienta para poder asegurar la seguridad de nuestros proyectos.


Bibliografía













Comentarios

Entradas más populares de este blog

Ensayo sobre Cifrado

Conclusiones Scrum

Ensayo HASH