¿Por qué no se descubrió antes el exploit KRACK? [cerrado]

117

Por lo que he leído, el problema es tan simple como realizar el paso 3 de un saludo de 4 pasos y las consecuencias de realizar ese paso más de una vez. Teniendo en cuenta la complejidad de este tipo de algoritmos, me sorprende un poco que sea tan 'simple' de un concepto.

¿Cómo puede ser que un sistema de esta complejidad haya sido diseñado sin que nadie piense qué pasaría si realizas el paso dos veces? En cierto sentido, parece que esto debería haber sido obvio. No es realmente un truco sutil, es un defecto relativamente obvio, o al menos esa es la impresión que estoy obteniendo.

    
pregunta Dave Cousineau 16.10.2017 - 23:54
fuente

3 respuestas

204

La especificación 802.11 que describe WPA2 (802.11i) está detrás de un muro de pago, y fue diseñada por algunas personas clave en el IEEE. El estándar fue revisado por ingenieros, no por criptógrafos. Los detalles de la funcionalidad (por ejemplo, la retransmisión) no eran ampliamente conocidos o estudiados por los profesionales de seguridad.

El criptógrafo Matthew D Green escribió publicación de blog sobre este tema, y creo que esta sección lo resume bastante bien:

  

Uno de los problemas con IEEE es que los estándares son muy complejos y se realizan mediante un proceso a puerta cerrada de reuniones privadas. Más importante aún, incluso después del hecho, son difíciles de acceder para los investigadores de seguridad comunes. Continúe y busque en Google las especificaciones IETF TLS o IPSec: encontrará documentación detallada del protocolo en la parte superior de sus resultados de Google. Ahora ve a Google para los estándares 802.11i. Te deseo suerte.

     

El IEEE ha estado dando algunos pasos pequeños para solucionar este problema, pero son tonterías incremental extremadamente tímidas. Existe un programa IEEE llamado GET que permite a los investigadores acceder a ciertos estándares (incluido el 802.11) de forma gratuita, pero solo después de que hayan sido públicos durante seis meses, casualmente, casi al mismo tiempo les lleva a los proveedores incorporarlos de forma irrevocable a su hardware y software.

    
respondido por el Polynomial 17.10.2017 - 00:45
fuente
73
  

En cierto sentido, parece que esto debería haber sido obvio.

¿Recuerda Heartbleed, Shellshock, POODLE, TLS Triple Handshake attack, "goto fail", ...?

En retrospectiva, la mayoría de estos problemas parecen ser obvios y podrían haberse evitado si las personas correctas hubieran examinado más de cerca el momento adecuado en el lugar correcto. Pero, solo hay una cantidad limitada de personas con la experiencia técnica adecuada y, por lo general, también tienen muchas otras cosas que hacer. Por favor, no esperes que sean perfectos.

En lugar de hacerse ilusiones acerca de que los estándares están perfectamente diseñados, el software está libre de errores y los sistemas son 100% seguros. Uno debería aceptar que esto es imposible de lograr en la práctica para los sistemas complejos de hoy en día. Para mitigar esto, uno debería preocuparse más por la resistencia y la solidez, es decir, mantenerse a salvo y seguro, incluso si algunas partes se rompen por la seguridad de las capas, no confían totalmente en nada y tienen planes si algo se rompe.

    
respondido por el Steffen Ullrich 17.10.2017 - 02:26
fuente
29

El documento que describe KRACK trata este tema en la sección 6.6.

Un par de puntos: hubo ambigüedades en la especificación. También las pruebas formales de especificación se basan en un modelo de la especificación, y hay ocasiones en que ese modelo no coincide con la especificación real, y mucho menos coincide con las implementaciones basadas en esa especificación.

    
respondido por el Dale Wilson 17.10.2017 - 17:56
fuente

Lea otras preguntas en las etiquetas