Ataque de bicicleta TLS - ¿Qué cifrado está libre de fallas para usar?

21

Recientemente, Guido Vranken desarrolló un nuevo ataque contra los cifrados de flujo TLS. apodado Bicycle y referenciado en este publicación del blog de Websense .

Se basó en una característica de los cifrados de flujo que dice que existe una relación 1: 1 entre la longitud del texto plano y la longitud del texto cifrado (aunque pueden no ser la misma), lo que permite a un atacante correlacionar algunos datos conocidos de la solicitud y descubrir la longitud de los campos (longitud de contraseña, por ejemplo). Si sabe que el usuario tiene una frase de contraseña de 8 caracteres, eliminará mucho trabajo de la fuerza bruta, creando un diccionario que lo incorporará después de unas horas.

La explicación completa se encuentra en PDF alojado en la primera publicación del blog vinculado arriba, para aquellos que se preocupan por entender cómo funciona realmente.

Básicamente, afecta a todos los cifrados de flujo, notablemente el Modo de contador de Galois (GCM), utilizado principalmente con TLS 1.2 para ser parte de los conjuntos de cifrado AEAD. Una búsqueda rápida de los otros cifrados AEAD muestra que también son cifrados de flujo, por lo que también son vulnerables a este problema. ¿O no son todos afectados?

Entonces la pregunta es, ¿qué cifrado se puede usar? Los cifrados en bloque no se ven afectados por este problema en particular, pero la mayoría de ellos tienen sus propios problemas, por lo que esta es una cuestión de "elige tu veneno" en lugar de traer el antídoto. ¿Alguien aquí conoce un cifrado conocido (recomendado por el NIST) que podría usarse con TLS 1.2 que no traiga sus propios defectos a la ecuación?

    
pregunta DarkLighting 07.01.2016 - 15:52
fuente

1 respuesta

46

El PDF del artículo comienza con:

  

Se suele suponer que el tráfico HTTP encapsulado en TLS no revela el tamaño exacto de sus partes

Esto no es lo que hubiera dicho. Más bien, digamos que generalmente es asumido por personas que no conocen . TLS es cifrado y el cifrado es bueno para ocultar el contenido de los datos, no la longitud de los datos. Esto no es exactamente novedoso. Sin embargo, es cierto que la idea de que el TLS "oculta todo" sigue siendo generalizada (es un error, siempre lo ha sido, pero la educación es lenta, especialmente cuando las personas no quieren ser educadas).

Algunas personas han argumentado que las suites de cifrado basadas en CBC implican un relleno que de alguna manera podría ocultar los detalles finos de la longitud de los datos cifrados, ya que la longitud se rellena a un múltiplo del tamaño del bloque. Este "efecto de ocultación" no es realmente válido en la práctica, por lo que es lógico suponer que ningún conjunto de cifrado le ayudará a ocultar la longitud de los datos que está enviando.

Si realmente desea ocultar, digamos, la longitud de la contraseña de un usuario, debe hacerlo correctamente, haciendo que el remitente la rellene con una longitud fija antes de enviarla (esto se puede hacer en unas pocas líneas de Javascript ). Sin embargo, considera que la longitud todavía se filtrará en muchos lugares; notoriamente, la duración afectará el tiempo de procesamiento tanto en el cliente como en el servidor, y esto se puede detectar (al menos, ese tipo de fuga de canal lateral se demostró en condiciones de laboratorio). Además, cuando el usuario escribe su contraseña, cualquier atacante que esté al alcance del oído puede simplemente contar los golpes y obtener la misma información (prácticamente, al registrar el ruido con su teléfono inteligente y reproducirlo más tarde a baja velocidad; el atacante puede incluso obtener información sobre las letras reales porque hacen ruidos distintos en un teclado típico).

Una respuesta realista sería señalar que si filtrar la longitud de la contraseña permite romperla, entonces esta es una contraseña deficiente para empezar, y probablemente debería corregirla. La longitud es solo una pequeña parte del problema, que es que las contraseñas malas son malas.

    
respondido por el Thomas Pornin 07.01.2016 - 16:19
fuente

Lea otras preguntas en las etiquetas