Renovación de clave de sesión entre dos dispositivos restringidos

2

No estoy interesado en el cifrado y la seguridad en general, así que perdona mi ignorancia. Supongamos lo siguiente:

Tenemos dos nodos que son dispositivos restringidos (los recursos no son suficientes para el cifrado asimétrico) y queremos establecer de forma segura una clave compartida para el cifrado simétrico.

Mi solución es la siguiente: guardar una clave K (0) en los dispositivos en el despliegue programe los dispositivos para generar automáticamente una nueva clave de una nueva sesión basada en:

  1. la clave anterior
  2. una función de generación de números aleatorios instalada en los dos dispositivos, con la misma época

Entonces, se genera una sesión k (i + 1) basada en la información de la sesión k (i) que tienen los dos únicos participantes.

Por favor, ahora dígame cuáles son las debilidades de esta solución.

Gracias de antemano.

    
pregunta Abderrahim ben 05.04.2015 - 19:25
fuente

1 respuesta

0

Este enfoque funciona, si deriva la clave de sesión de manera segura (utilizando una función criptográfica hash o alguna construcción construida en una función criptográfica hash).

Como solo las dos partes conocen la clave, solo las dos conocerán las claves posteriores.
Incluso puede ser posible omitir el generador de números aleatorios sincronizados y simplemente usar alguna constante de sesión como parámetro de derivación para su función de derivación de clave (KDF).



Otro enfoque:

Pero hay una manera de hacerlo sin un generador de números aleatorios (RNG) sincronizado y claves nuevas para todas las conexiones. Esto supone que tienes un buen generador de números aleatorios y la clave precompartida K de 64 bytes de longitud, que es altamente aleatoria. Todas las variables no definidas a continuación son aleatorias y tienen una longitud de 32 bytes.

  1. El dispositivo A envía al dispositivo B un número aleatorio n_A.
  2. El dispositivo B responde con E_K (r_B, n_A, n_B). Si la respuesta tarda demasiado, A rechaza la respuesta o si n_A no es el n_A enviado en el paso 1.
  3. El dispositivo A responde con E_K (r_A, n_B, n_A). Si la respuesta tarda demasiado, B rechaza la respuesta o si n_B no es el n_B enviado en el paso 2.

Ahora puede usar el xor de r_A y r_B y usar un KDF para obtener la clave de sesión; si no está seguro de su RNG, también puede ingresar K en la llamada KDF. Tenga en cuenta que es posible que desee utilizar el modo GCM para su cifrado.

    
respondido por el SEJPM 06.04.2015 - 21:26
fuente

Lea otras preguntas en las etiquetas