Kerberos para enviar secretos

5

Entiendo que Kerberos se utiliza como un protocolo de autenticación. Sin embargo, ¿sería posible lograr un efecto similar al de Diffie-Hellman con Kerberos, es decir, establecer una clave de sesión que se pueda usar para un mayor cifrado de los datos a transmitir, una vez que se haya realizado la autenticación?

    
pregunta 01.02.2013 - 09:43
fuente

3 respuestas

3

Kerberos está diseñado para ser un protocolo de autenticación puro. En realidad, crea un ticket de sesión para comprobar su identidad en el servidor, no es un protocolo de cifrado (como SSL, por ejemplo).

    
respondido por el Lucas Kauffman 01.02.2013 - 09:56
fuente
4

Sí, con algunas advertencias. Como se describió en una respuesta anterior, la autenticación Kerberos también comparte una clave de sesión entre el cliente y los principales del servidor, que pueden usar para una mayor comunicación. Otra respuesta anterior afirmó que "Kerberos no es un protocolo de cifrado", pero esto no es cierto: el protocolo incluye mensajes específicos para enviar datos arbitrarios protegidos por la clave de sesión negociada durante la autenticación (KRB_SAFE y KRB_PRIV). La forma más común de aprovechar esto es a través de GSSAPI (que es la forma más común de usar Kerberos, en lugar de una API específica de Kerberos como la de MIT Kerberos o Heimdal). Después de crear un contexto de seguridad GSSAPI, los interlocutores pueden usar las rutinas gss_wrap() y gss_unwrap() para sellar los datos para la transmisión, ya sea solo con la verificación de integridad o integridad y confidencialidad (cifrado). Probablemente, el ejemplo más común de este uso real es a través de SASL, cuando el cliente solicita la instalación de una "capa de seguridad" después de la autenticación con el mecanismo GSSAPI / Kerberos.

Sin embargo, ten en cuenta que a diferencia de Diffie-Hellman, aquí no tienes secreto de reenvío. En el caso más simple, el KDC genera la clave de sesión, por lo que siempre fue conocido por una parte distinta de los pares que se comunican. La clave puede ser en realidad una "subclave" generada por uno de los pares, que es mejor, pero aún así es generada por un solo lado, haciéndola vulnerable a los ataques de troyanos o bizantinos a un lado, mientras que Diffie-Hellman limita la capacidad de ambos lados de controlar la clave compartida final. Y, en cualquier caso, la clave de la sesión se asegura en última instancia mediante la clave a largo plazo del servidor, que normalmente se encuentra en un archivo de tabla de claves en el servidor y en el KDC, y las comunicaciones registradas previamente se verán comprometidas si eso es así. Más tarde revelado.

    
respondido por el Richard E. Silverman 05.03.2014 - 06:53
fuente
3

Aunque no se utiliza comúnmente para el propósito, puede. Como efecto secundario de la autenticación mutua, los directores de Kerberos comparten una clave de sesión criptográficamente sólida, que puede usarse para lograr la confidencialidad.

Kerberos contiene primitivas para intercambiar datos cifrados (y autenticados) entre los principales. Están expuestos a una aplicación como llamadas krb5_mk_priv () y krb5_rd_priv ().

Estas funciones están disponibles en implementaciones de MIT y Heimdal, al menos en sistemas basados en Linux y BSD. Aunque no creo que Windows exponga estas funciones.

    
respondido por el portnoy 23.11.2013 - 05:33
fuente

Lea otras preguntas en las etiquetas