KRACK y Keystream

6

Estoy un poco confundido con respecto al flujo de claves. Al volver a instalar la misma clave de sesión, el nonce se restablecerá y comenzará de nuevo.

  • Clave de sesión + Nonce = Keystream?

  • ¿Keystream es ahora la parte que se utiliza para cifrar el texto sin formato?

¿Cómo es posible descifrar algo? ¿Necesito un fragmento de texto sin formato y un mensaje encriptado de lo que sugiero que esté allí para derivar el flujo de claves?

¿Cada paquete individual obtiene un nuevo flujo de claves para el cifrado o el flujo de claves se renueva después de un nuevo protocolo de enlace de cuatro vías?

    
pregunta Rene 18.10.2017 - 12:24
fuente

3 respuestas

2
  

Session Key + Nonce = Keystream?

Sí, el flujo de claves es una función de la clave y del nonce, en el sentido matemático (la misma combinación de teclas + nonce produce el mismo flujo de claves):

keystream = F(key, nonce)

... donde F es la función de generación del flujo de clave del cifrado de la secuencia (a menudo solo se llama el cifrado de la secuencia). Piense en F como la caja negra donde ocurre toda la magia oscura criptográfica; cada vez que la alimente con una clave secreta y una fuente pública, producirá una salida muy larga que, en la práctica, parece aleatoria para alguien que no conoce la clave. pero que otra parte que conoce la misma clave secreta puede recrear simplemente usando la misma combinación de clave + nonce.

  

¿Keystream es ahora la parte que se utiliza para cifrar el texto sin formato?

Sí, al XORingarlas juntas:

ciphertext = plaintext XOR keystream

O, expandiendo la definición de keystream :

ciphertext = plaintext XOR F(key, nonce)
  

¿Cómo es posible descifrar algo? ¿Necesito un fragmento de texto sin formato y un mensaje encriptado de lo que sugiero que esté allí para derivar el flujo de claves?

Dado que 0 XOR x = x y x XOR x = 0 para todos x , la ecuación anterior implica esta:

plaintext = ciphertext XOR F(key, nonce)

Para descifrar el texto cifrado, el destinatario solo necesita tener la misma clave y nonce que se usaron para cifrarlo. Piense en F , nuevamente, como una caja negra compacta que reproduce la misma secuencia de claves dada la misma clave y nonce que se usaron para cifrar.

  

¿Cada paquete individual obtiene un nuevo flujo de claves para el cifrado o el flujo de claves se renueva después de un nuevo protocolo de enlace de cuatro vías?

Cada paquete en la misma sesión está cifrado con la misma clave, pero con un nonce diferente; esto significa que en la operación correcta, se utiliza una nueva secuencia de claves para cada paquete. Se usa un contador de paquetes incrementales para los nonces. El ataque consiste en engañar a las implementaciones para restablecer el contador de paquetes a su valor inicial sin restablecer la clave. Esto hace que la víctima cifre múltiples mensajes con la misma clave y nonce, y por lo tanto con la misma secuencia de claves.

    
respondido por el Luis Casillas 17.05.2018 - 02:16
fuente
0

Mire esta página de wikipedia . Ya que estamos usando un derivado del modo CTR representado, un reinicio del contador es fatal. Cada paquete de datos transmitidos se cifra con la misma parte del "flujo de clave".

Por lo tanto, tampoco se recupera la clave AES a través de un ataque de texto simple conocido, ni podemos derivar la secuencia de claves completa de inmediato.

Pero forzando el cifrado de muchos paquetes diferentes con potencialmente la misma (primera) parte del flujo de clave (¡el contador se reinicia a cero!), tenemos un ataque de texto simple conocido contra las primeras partes del flujo de clave y podemos presumiblemente con el tiempo recuperar todos los bits de él:

  1. descodifique a partir de la suposición de que es un paquete TCP unos pocos bits delante de la 0ª parte del flujo de claves (partes constantes del encabezado TCP).
  2. el siguiente paquete tiene suerte: descifra el paquete nuevamente con los bits ya conocidos del flujo de claves y descubre el inicio del texto de la declaración de independencia en la codificación latina. Esto daría lugar a que se conozca una gran parte del flujo de claves.

Solo el principio: todavía no es trivial, pero lo suficiente como para que se considere "roto", supongo.

Consulte también esta pregunta .

    
respondido por el user1931751 18.10.2017 - 17:48
fuente
0

Además de lo que el usuario1931751 ya ha respondido, me gustaría agregar lo siguiente con respecto a su segunda pregunta.

  

¿Cada paquete individual obtiene un nuevo flujo de claves para el cifrado o el flujo de claves se renueva después de un nuevo protocolo de enlace de cuatro vías?

El protocolo de enlace de 4 vías deriva una nueva clave de sesión que conduce a una nueva secuencia de claves que no coincidiría con la anterior, ya que se utiliza una nueva clave para el cifrado (entrada al cifrado AES). Sin embargo, en los ataques KRACK contra el protocolo de enlace de 4 vías, la misma clave de sesión se instala dos veces. Así que allí tendrás la misma cadena de teclas. Pero usted pidió un "apretón de manos completo de 4 vías" que no es lo que provoca el ataque, así que intentaré explicarlo en breve después de que finalice un apretón de manos completo.

Si se instala una clave de sesión, se utilizará un nonce (combinado con algunas cosas fijas) inicializado con uno como el IV (vector de inicialización) para cifrar el primer paquete. Este paquete (MPDU) del estándar 802.11 consta de varios bloques y el Modo CCM (RFC 3610) se utiliza para hacer frente a esto. Entonces, para el estándar 802.11, el nonce es un contador que se incrementa en uno para cada paquete. Este paquete que consta de unos pocos bloques AES utilizará este contador como un vector de inicialización para su propio modo de contador "interno" como se especifica en RFC 3610. Por lo tanto, cada bloque y cada paquete deben cifrarse en la siguiente parte del flujo de claves actual determinado por la clave de sesión actual y el vector de inicialización 802.11 (el que consta del nonce, la dirección MAC, etc.).

    
respondido por el Clanow 15.02.2018 - 22:01
fuente

Lea otras preguntas en las etiquetas