Protocolo seguro de emparejamiento de dispositivos

3

Necesito implementar un emparejamiento seguro entre dos dispositivos basado en un código PIN compartido corto sin un tercero de confianza. Si piensa en la forma en que se emparejan los dispositivos Bluetooth, no estará muy lejos: mi dispositivo muestra un código, le digo, "el código es 40YA", lo escribe en su dispositivo y tenemos una conexión segura .

El protocolo debe proteger contra los ataques MITM y de escuchas ilegales, y el PIN debe permanecer válido y seguro durante al menos unas horas. En otras palabras, si un ataque fuera de línea en el PIN es posible, debería requerir al menos unas pocas horas para completar.

¿Existe tal protocolo? Puntos de bonificación si un no criptógrafo razonablemente brillante puede entenderlo. :)

Actualización: ¿Es el intercambio de claves Diffie-Hellman lo que estoy buscando?

    
pregunta n8gray 28.06.2012 - 09:06
fuente

3 respuestas

4

La respuesta de David y otras investigaciones me han llevado al protocolo EKE (Intercambio de claves cifradas) descrito por Bellovin & Merritt aquí:

enlace

y por Wikipedia aquí:

enlace

EKE está diseñado específicamente para este tipo de tarea: amplificar una contraseña compartida corta en un enlace completamente seguro. El protocolo fue patentado pero la patente expiró en 2011. Ahora hay un RFC para usar EKE con EAP:

enlace

    
respondido por el n8gray 28.06.2012 - 23:57
fuente
1
  1. Un extremo genera un desafío aleatorio y lo transmite al otro lado.

  2. Un lado muestra un PIN aleatorio, el otro solicita el PIN.

  3. El hash del desafío combinado con el PIN se usa luego como clave de cifrado para el siguiente mensaje (que también está protegido por HMAC, al igual que SSL). El lado que solicitó el PIN envía un mensaje "conectado" encriptado con el hash y que contiene una fuente aleatoria. La otra parte responde con una aceptación.

  4. Las comunicaciones adicionales se cifran con el nonce.

No es posible un ataque MITM porque si el MITM no manipula los datos, no conoce la clave y, por lo tanto, no puede cambiar ningún dato sin corromper el protocolo, pero si manipula los datos, no tendrá el mensaje conectado correcto para enviar.

El lado que envía el desafío puede almacenarlo y mantenerlo válido durante el tiempo que desee. No es posible un ataque sin conexión porque el desafío no contiene datos de PIN y la respuesta se basa en la ausencia aleatoria que un atacante sin conexión no pudo conocer.

    
respondido por el David Schwartz 28.06.2012 - 09:42
fuente
1

Sigo de cerca a Bluetooth > v2.1 aquí. Lo que significa que tiene las siguientes etapas:

  1. Intercambio de clave Diffie-Hellman no autenticado entre sus dos dispositivos. Una vez finalizado el DHE, cada dispositivo calcula una función hash (criptográficamente segura) sobre la clave DH compartida. Este hash puede luego llamarse "PIN" o lo que sea, ¡pero es no información secreta!
  2. Un dispositivo ahora muestra el hash, y usted puede compararlo con el hash del otro dispositivo, o puede ingresar el hash en el otro dispositivo y el dispositivo se compara.

  3. De cualquier manera, si el hash no coincide en ambos lados, abortará la ejecución de emparejamiento.

Lo bueno de este enfoque es que no requiere ninguna información secreta, ya sea dentro de la banda o fuera de ella. Además, la seguridad relativamente débil de un PIN corto (también conocido como hash) solo es relevante durante el proceso de emparejamiento corto en sí. Por lo tanto, un atacante tendría que realizar un MiTM activo durante el intercambio de claves DH y encontrar los parámetros de Diffie Hellman que, junto con los parámetros de Alice y Bobs, tienen el mismo valor. Como probablemente solo controlará uno de los valores iniciales de Diffie Hellman (aquel en el que inicia el intercambio), tal vez ni siquiera sea posible.

    
respondido por el Johannes Gilger 13.08.2012 - 15:45
fuente

Lea otras preguntas en las etiquetas