Endurecimiento de un proceso de autenticación basado en clave asimétrica

0

El proceso involucra a dos partes interesadas A (cliente) y B (servidor) y el atacante M. M es capaz de interceptar todas las comunicaciones entre A y B (Man in the Middle) e incluso modificarlas. Sin embargo, la clave privada de A no ha sido comprometida.

El éxito del proceso de autenticación depende de la capacidad de A para firmar un paquete arbitrario enviado por B con su clave privada.

El proceso de autenticación se realiza de la siguiente manera:

  1. A establece una conexión TCP con B.

  2. B calcula un nonce y lo asocia con la conexión entrante de A.

  3. B ya tiene la clave pública de A.

  4. M se conecta con A.

  5. B calcula un nonce y lo asocia con la conexión entrante de M.

  6. M inicia el proceso de autenticación, B genera un nuevo nonce basado en el nonce generado en el paso 5 y algún estado interno y lo envía a M.

  7. M permanece inactivo y espera a que A inicie el proceso de autenticación.

  8. A inicia el proceso de autenticación, B genera un nuevo nonce basado en el nonce generado en el paso 2 y algún estado interno y lo envía a A.

  9. M intercepta la comunicación B - > A en el paso 8 y reemplaza el nonce por el que recibió en el paso 6.

  10. A firma el paquete y lo envía de vuelta a B.

  11. M intercepta el paquete A - > B del paso 10, impide que pase y lo reproduce como propio.

  12. B verifica el nonce y la firma e identifica M como A.

  13. M se enmascara como A.

¿Qué se puede hacer para evitar que M se convierta en A en los ojos de B?

    
pregunta amitkriit 05.11.2018 - 16:08
fuente

1 respuesta

0

Entiendo que tanto A como B tienen una clave privada que se incorpora a la clave compartida final tanto al principio como al final del proceso de intercambio. Esto significa que si intentas saltar a la mitad del apretón de manos, aún te faltará la clave privada de A. Entonces, si bien puede engañar a B para que piense que usted es A, los datos que obtenga seguirán encriptados y no tendrá la clave privada de A para poder finalizar el descifrado. Ya que no puedes descifrarlo, no puedes cambiarlo a ningún nuevo valor significativo, incluso si te conviertes en el hombre del medio.

El problema real entra en juego cuando puedes engañar a A para que piense que eres B porque entonces puedes hacerte pasar por una versión falsa de B el tiempo suficiente para recopilar las credenciales de inicio de sesión, y luego pasarlas a la B real. Inicia sesión como A con una nueva conexión usando tu propia clave privada. Lo único que sé que evitaría esto es que B envíe a A un método de verificación la primera vez que se conecte para poder verificar que B es B, pero eso no siempre es práctico dependiendo de su caso de uso.

    
respondido por el Nosajimiki 05.11.2018 - 18:18
fuente

Lea otras preguntas en las etiquetas