¿Por qué es importante Kerberos?

Porque la confianza es sagrada.

Kerberos funciona con la menor asunción de confianza de cualquier sistema con el que he trabajado, y puede modificarse de manera tal que no exista ninguna asunción de confianza más allá de la autenticación inicial. Todos me miran ahora diciendo “¿Eh?”

Quieres llamar a tu amigo George. Los teléfonos celulares no existen y además de usted y George son literalmente muchachos de conspiración de sombrero de papel de aluminio. Pero sabes que George tiene una novia llamada Jill, que no usa un sombrero de papel de aluminio. Llamas a Jill, pides hablar con George, ella dice que George está en un bar, llámalo allí, aquí está el número. Llamas al bar, el cantinero llama a George, alguien dice que está en el baño, dejas un número para que George te devuelva la llamada. Esperas por el teléfono. Los hombres con equipo SWAT negro irrumpieron en la casa y te arrastraron para que te interrogaran, y ves a George, tranquilo y babeando en la camioneta a tu lado.

WTF acaba de suceder? Un hombre en el medio ataque. Verás, entre tú y George estaba Jill, un cantinero, un baño y un bar lleno de gente. Confiaste en todos ellos para dejarte hablar con George, y claramente tenían otras ideas. Incluso podrían dejarte hablar con George y escuchar todo lo que dices. La única forma en que puede evitar que eso suceda es que George lo autentique a través de su amigo a través de una cadena de confianza, para que autentique a George de la misma manera, tanto a través de una cadena de terceros, como para que ambos puedan hablar en un lenguaje que se basa en esa cadena de confianza pero que nunca intercambiaste directamente.

Eso es Kerberos. Nadie puede escuchar porque nunca, nunca intercambias llaves directamente. Cada conexión que hace George está certificada por la cadena de confianza en ambas direcciones, solo queda un problema. El maestro de llaves.

No es ese Keymaster.

El maestro de llaves es la persona (servicio, realmente) responsable de construir y mantener esa cadena de confianza que usó para establecer que alguien es quien dice ser. Si alguien está escuchando entre usted y el Keymaster, saben con quién está tratando de hablar, y en teoría podrían obtener las claves criptográficas que ambos usarán para hablar (el lenguaje). Esto se maneja reforzando la comunicación que usa para comunicarse con el administrador de claves (generalmente, las VPN son lo que se hace, por extraño que parezca usando las claves proporcionadas por Kerberos de OTRO maestro de claves), y luego mientras nadie rompa ese conjunto de enlaces (tenga en cuenta que estamos efectivamente 4 niveles de seguridad en este momento) estamos todos bien.

El último problema en esto es, por supuesto, el tiempo. Kerberos usa claves más débiles que muchas soluciones porque las claves tienen una vida útil corta (30 minutos por defecto). Después de 30 minutos, tiene que demostrar que es quien dijo ser nuevamente para seguir usando el servicio o hablar con la persona con la que estaba hablando, y esto se aplica individualmente a cada servicio. Por ejemplo, en este momento según netstat -ln estoy hablando con unos 40 servicios en este momento. 40. Si todos estuvieran asegurados, tendría que volver a autenticarme durante todo el proceso cada 30 minutos o menos. Las teclas más débiles hacen que la conversación sea más barata desde el punto de vista computacional y más segura porque tienen que romper muchas teclas para obtener una conversación completa, no solo una.

Por extraño que parezca, hay una forma de evitar el problema de tener que volver a autenticarse cada 30 minutos para obtener claves más nuevas, pero es un conocimiento bastante valioso si tiene que hacer este tipo de cosas. Lo dejaré como ejercicio para el lector.

¡Porque ese perro de tres cabezas guarda las puertas del infierno! JK

En serio, porque es un protocolo que mejora la seguridad en una red no segura mediante la emisión de tickets a los dispositivos del cliente para autenticarse en los servidores y para autenticar los servidores a los clientes.