ataque de repetición de Kerberos

4

Supongamos que deseo enviar un comando a un servidor de impresión en una red que ha sido asegurada con Kerberos. Para hacerlo, me autentico ante el KDC y obtengo un TGT, y luego otro ticket del TGS para el servidor de impresión. Luego me autentico ante el servidor de impresión y luego puedo enviar un comando de impresión, firmado con la clave de sesión. Pero supongamos que alguien está escuchando en la red y huele el comando que le envié, ¿qué le impide reproducirlo en el servidor de impresión y así poder imprimir el mismo archivo que acabo de imprimir durante la misma sesión (la misma clave de sesión)? Una solución sería obtener un nuevo ticket (y, por lo tanto, una nueva clave de sesión) del TGS para cada comando que envíe al servidor de impresión, pero no creo que esto sea necesario en el protocolo Kerberos.

    
pregunta Nimyz 02.03.2015 - 13:54
fuente

1 respuesta

4

Esto es detenido por los autenticadores. Cada vez que presente un ticket de Kerberos, debe ir acompañado de un autenticador, que se cifra mediante la clave de sesión y contiene (entre otra información) una marca de tiempo. El servidor comprueba que la marca de tiempo es reciente (en Kerberos 4, esto significa "dentro de 5 minutos", en 5, es configurable, pero 5 minutos es el valor predeterminado) y que nunca antes había visto ese autenticador. El autenticador solo se basa en la clave de sesión, por lo que puede ser generado por el cliente; se crea un nuevo autenticador cada vez que envías un ticket.

Para responder "qué pasa si están usando la misma sesión", el protocolo básico de Kerberos no lo maneja. Kerberos, en su núcleo, autentica al usuario abriendo una conexión; No tiene que hacer nada más. Los protocolos de aplicación son responsables de manejar la protección de más mensajes si eso es importante; Kerberos proporciona dos formas de hacerlo, o puede suministrar datos desde la autenticación a cualquier sistema que utilice el protocolo de la aplicación, pero un protocolo de aplicación no necesita utilizar Kerberos para la autenticación inicial. Todo después de eso depende del protocolo de aplicación.

Kerberos tiene dos opciones para la comunicación protegida con Kerberos más allá del mensaje inicial (una autentica, una encripta y autentica); un protocolo de aplicación puede usarlos para proteger la comunicación posterior, pero no tiene que hacerlo. Ambos utilizan una marca de tiempo y / o un número de secuencia para evitar repeticiones; el número de secuencia protege contra los mensajes caídos y la reordenación de mensajes, mientras que la marca de tiempo se perdona si eso no es un problema (pero evita que un atacante solo retrase un mensaje, ya que un mensaje retrasado será rechazado), pero ambos evitan repeticiones.

Si le preocupa que un usuario malintencionado manipule la transmisión de datos al servidor de impresión, puede definir el protocolo del servidor de impresión para utilizar KRB_SAFE o KRB_PRIV (respectivamente, "autenticar solo" o "cifrar y autenticar" ); Ambos protegen contra las repeticiones. O puede usar algún otro sistema que tome una clave de subsesión del autenticador como una clave precompartida y tiene protección de reproducción; un protocolo TLS-PSK con la clave de subsesión como PSK probablemente funcionaría (TLS protege contra ataques de repetición). El punto es que Kerberos no protege inherentemente contra ese tipo de repetición, porque no dice nada sobre cómo hacer el resto de la comunicación; Para protegerse contra los ataques en la comunicación posterior a la autenticación, debe usar KRB_SAFE o KRB_PRIV de Kerberos o usar otra cosa que proteja esa comunicación.

    
respondido por el cpast 02.03.2015 - 18:56
fuente

Lea otras preguntas en las etiquetas