Kerberos
Kerberos
Definció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 sistema Kerberos se basa en el concepto de tickets. Un ticket es un conjunto de información electrónica que identifica a un usuario o servicio, como el servicio NFS. Así como su licencia de conducir lo identifica e indica qué privilegios tiene para conducir un automóvil, el ticket lo identifica e indica qué privilegios tiene para acceder a la red. Cuando realiza una transacción que se basa en Kerberos (por ejemplo, si inicia sesión en otro equipo de manera remota), envía de manera transparente una solicitud de un ticket a un Centro de distribución de claves (KDC). El KDC accede a una base de datos para autenticar su identidad y devuelve un ticket que le concede permiso para acceder a otro equipo. La expresión "de manera transparente" implica que no necesita solicitar un ticket de manera explícita. La solicitud forma parte de la actividad del comando rlogin. Debido a que sólo los clientes que están autenticados pueden obtener un ticket para un servicio específico, los demás clientes no pueden usar rlogin con una identidad asumida.
Los tickets tienen asociados algunos atributos determinados. Por ejemplo, un ticket puede ser reenviable, lo que significa que se puede utilizar en otro equipo sin que se realice un nuevo proceso de autenticación. Asimismo, un ticket puede ser posfechado, que significa que no adquiere validez hasta un momento especificado. El modo de uso de los tickets, por ejemplo, para especificar qué usuarios pueden obtener los distintos tipos de tickets, se establece mediante políticas. Las políticas se determinan durante la instalación o administración del servicio Kerberos.
Funcionamento
El sistema Kerberos se basa en el concepto de tickets. Un ticket es un conjunto de información electrónica que identifica a un usuario o servicio, como el servicio NFS. Así como su licencia de conducir lo identifica e indica qué privilegios tiene para conducir un automóvil, el ticket lo identifica e indica qué privilegios tiene para acceder a la red. Cuando realiza una transacción que se basa en Kerberos (por ejemplo, si inicia sesión en otro equipo de manera remota), envía de manera transparente una solicitud de un ticket a un Centro de distribución de claves (KDC). El KDC accede a una base de datos para autenticar su identidad y devuelve un ticket que le concede permiso para acceder a otro equipo. La expresión "de manera transparente" implica que no necesita solicitar un ticket de manera explícita. La solicitud forma parte de la actividad del comando rlogin. Debido a que sólo los clientes que están autenticados pueden obtener un ticket para un servicio específico, los demás clientes no pueden usar rlogin con una identidad asumida.
Los tickets tienen asociados algunos atributos determinados. Por ejemplo, un ticket puede ser reenviable, lo que significa que se puede utilizar en otro equipo sin que se realice un nuevo proceso de autenticación. Asimismo, un ticket puede ser posfechado, que significa que no adquiere validez hasta un momento especificado. El modo de uso de los tickets, por ejemplo, para especificar qué usuarios pueden obtener los distintos tipos de tickets, se establece mediante políticas. Las políticas se determinan durante la instalación o administración del servicio Kerberos.
Nota - Con frecuencia verá los términos credencial y ticket. En el ámbito de Kerberos en general, estos términos se utilizan de manera indistinta. Sin embargo, técnicamente, una credencial es un ticket con una clave de sesión para una sesión determinada. Esta diferencia se explica en profundidad en Obtencion de acceso a un servicio con Kerberos.
Proceso de autenticación Kerberos
Autenticación inicial: el ticket de otorgamiento de tickets
La autenticación de Kerberos tiene dos fases: una autenticación inicial que permite que se lleven a cabo todas las autenticaciones posteriores y las autenticaciones posteriores en sí mismas.![]() |
Autenticación inicial para una sesión Kerberos |
- Un cliente (un usuario o un servicio como NFS) comienza una sesión Kerberos mediante la solicitud de un ticket de otorgamiento de tickets (TGT) desde el Centro de distribución de claves (KDC). Esta solicitud se suele llevar a cabo automáticamente en el inicio de sesión.También puede establecerse un analogía entre el ticket de otorgamiento de tickets y un pase de esquí por tres días que sirve para acceder a cuatro centros de esquí diferentes. Puede exhibir el pase en cualquiera de los centros al que quiera acceder y así obtener un ticket de ascenso para dicho centro, siempre que el pase no esté vencido. Una vez que tenga el ticket de ascenso, puede esquiar cuanto quiera en el centro que eligió. Si el día siguiente quiere ir a otro centro, vuelve a exhibir el pase para conseguir otro ticket de ascenso para ese nuevo centro. La diferencia radica en que los comandos basados en Kerberos detectan que tiene un pase de esquí para el fin de semana y entonces obtienen un ticket de ascenso para usted. No es necesario que se encargue de efectuar las transacciones.
Se necesita un ticket de otorgamiento de tickets para obtener otros tickets de servicios específicos. El ticket de otorgamiento de tickets funciona de manera similar a un pasaporte. Como el pasaporte, el ticket de otorgamiento de tickets lo identifica y le permite obtener muchas “visas” (tickets), que en este caso no son para entrar en países extranjeros sino en equipos remotos o servicios de red. Como los pasaportes y las visas, el ticket de otorgamiento de tickets y otros tickets diversos tienen una duración limitada. La diferencia radica en que los comandos “Kerberizados” detectan que tiene un pasaporte y entonces obtienen las visas para usted. No es necesario que se encargue de efectuar las transacciones. - EL KDC crea un ticket de otorgamiento de tickets y lo envía de vuelta al cliente en formato cifrado. El cliente descifra el ticket de otorgamiento de tickets con la contraseña del cliente.
- Con un ticket de otorgamiento de tickets válido, el cliente puede solicitar tickets para todo tipo de operaciones de red, como rlogin o telnet, durante todo el período de validez del ticket de otorgamiento de tickets. Por lo general, este ticket dura algunas horas. Cada vez que el cliente realiza una operación de red única, solicita al KDC un ticket para esa operación.
Autenticaciones Kerberos posteriores
Una vez que el cliente ha recibido la autenticación inicial, cada autenticación posterior sigue el patrón que se muestra en la siguiente figura.![]() |
Obtención de acceso a un servicio con la autenticación Kerberos |
- El cliente solicita al KDC un ticket para un servicio en particular; por ejemplo, para iniciar sesión en otro equipo de manera remota. Para ello, envía al KDC su ticket de otorgamiento de tickets como prueba de identidad.
- El KDC envía el ticket por el servicio específico al cliente.
Por ejemplo, suponga que el usuario joe quiere acceder a un sistema de archivos NFS que se ha compartido con la autenticación krb5 requerida. Como ya se encuentra autenticado (es decir, ya tiene un ticket de otorgamiento de tickets), cuando intenta acceder a los archivos, el sistema de cliente NFS obtiene un ticket del KDC de manera automática y transparente para el servicio NFS.
Por ejemplo, suponga que el usuario joe utiliza rlogin en el servidor boston. Como ya se encuentra autenticado, (es decir, ya tiene un ticket de otorgamiento de tickets), obtiene un ticket de manera automática y transparente mediante el comando rlogin. Este ticket le permite iniciar sesión de manera remota en boston tantas veces como quiera hasta que el ticket caduque. Si joe inicia sesión de manera remota en el equipo denver, obtiene otro ticket, como en el paso 1. - El cliente envía el ticket al servidor.Cuando se usa el servicio NFS, el cliente NFS envía el ticket de manera automática y transparente al servidor NFS para el servicio NFS.
- El servidor permite el acceso de clientes.
Aplicaciones remotas de Kerberos
Los comandos basados en Kerberos (o “Kerberizados”) que un usuario puede utilizar son los siguientes:
- ftp
- rcp
- rdist
- rlogin
- rsh
- ssh
- telnet
Los principales de Kerberos
Un cliente en el servicio Kerberos se identifica con su principal. Un principal es una identidad única a la que el KDC puede asignar tickets. Un principal puede ser un usuario, como joe, o un servicio, como nfs o telnet.
Por convención, el nombre de principal consta de tres componentes: el nombre primario, la instancia y el dominio. Un principal de Kerberos típico sería, por ejemplo, joe/admin@ENG.EXAMPLE.COM. En este ejemplo:
- joe es el nombre primario. El nombre primario puede ser un nombre de usuario, como se muestra aquí, o un servicio, como nfs. El nombre primario también puede ser la palabra host, lo cual significa que el principal es un principal de servicio que está configurado para proporcionar distintos servicios de red, ftp, rcp, rlogin, etcétera.
- admin es la instancia. La instancia es opcional en el caso de los principales de usuario, pero es necesaria para los principales de servicio. Por ejemplo, si el usuario joe a veces actúa como administrador del sistema, puede utilizar joe/admin para distinguirse de su identidad de usuario habitual. Del mismo modo, si joe tiene cuentas en dos hosts diferentes, puede utilizar dos nombres de principal con instancias diferentes, por ejemplo, joe/denver.example.com y joe/boston.example.com. Tenga en cuenta que el servicio Kerberos trata joey joe/admin como dos principales completamente diferentes.
- En el caso de un principal de servicio, la instancia es el nombre de host completo. Un ejemplo de una instancia así es bigmachine.eng.example.com. La combinación nombre primario/instancia para esta ejemplo podría ser ftp/bigmachine.eng.example.com o host/bigmachine.eng.example.com.
El dominio de Kerberos es ENG.EXAMPLE.COM.
Todos los nombres de principal que aparecen a continuación son válidos:
joe
joe/admin
joe/admin@ENG.EXAMPLE.COM
nfs/host.eng.example.com@ENG.EXAMPLE.COM
host/eng.example.com@ENG.EXAMPLE.COM
Motivos para su uso
Algunos sitios intentan solucionar los problemas de seguridad de la red con cortafuegos. Desafortunadamente, el uso exclusivo de cortafuegos se basa en la suposición de que los "villanos" están en el exterior, lo que es a menudo una suposición incorrecta y peligrosa. Un buen número de los más graves delitos informáticos son ejecutados desde dentro de la propia corporación atacada. Los cortafuegos también adolecen de una desventaja importante, ya que restringen cómo pueden usar Internet los usuarios de la red por ellos protegida. Después de todo, los cortafuegos son sólo un ejemplo menos extremista del dictamen de que no hay nada más seguro que una computadora que está desconectada de la red Pero en muchos casos, estas restricciones son simplemente imposibles de asumir.
Conclusión
Como se puede ver Kerberos es una buena forma de poder dar la autenticidad de los usuario en nuestro sistema sin tener que sacrificar una forma nuestra capacidad de navegar en esta, además de poder ayudar a darle robustez al sistema y darle confianza a nuestros usuarios de que su comunicación solo sera entre ellos sin ninguna interrupción de un ' enemigo' escuchando las comunicaciones, incluso si este se encuentra dentro de la empresa en la que estamos trabajando para garantizar la privacidad y la integridad de los datos intercambiados.
Ademas de que el código fuente de Kerberos con el propósito de que quienquiera que desee usarlo pueda estudiar el código y así asegurarse de que el código es digno de confianza.
En resumen, Kerberos es una solución para ciertos problemas de seguridad de la red. Provee las herramientas de autenticación y criptografia reforzada a través de la red para ayudar a asegurar que los sistemas de información de una empresa o corporación estén bien resguardados.
Fuentes:
https://docs.oracle.com/cd/E24842_01/html/E23286/intro-5.html
https://docs.oracle.com/cd/E24842_01/html/E23286/intro-25.html
https://es.wikipedia.org/wiki/Kerberos
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-kerberos-works.html
Comentarios
Publicar un comentario