Usando un cifrado manual para asegurar los códigos de copia de seguridad de autenticación de dos factores (2FA) [duplicado]

0

La mayoría de las cuentas con autenticación de dos factores (2FA) le brindan códigos de respaldo para usar en caso de pérdida o robo de su teléfono. Por ejemplo, Google proporciona una lista de 10 códigos de respaldo al configurar 2FA. Estos códigos deben almacenarse de forma segura , pero también deben ser accesibles . Si alguien puede obtener los códigos 2FA, puede omitir 2FA en mi cuenta.

Algunas personas han sugerido imprimir los códigos y guardarlos en su equipaje. En cambio, he estado colocando los códigos de respaldo en una tienda de criptografía digital con una clave única que solo yo conozco. Estoy utilizando el cifrado del lado del cliente que requiere un software especial al que tal vez no tenga acceso mientras viajo.

Como mi teléfono es el único dispositivo informático que tengo cuando viajo, estoy tratando de eliminar los requisitos para el software de descifrado. También me gustaría mantener el control de mis claves, por lo que una bóveda con conocimientos clave (Dropbox, Google Drive, etc.) también está fuera de discusión.

Por lo tanto, estoy considerando otra opción. En lugar de almacenar los códigos de respaldo en una bóveda digital que requiere software para el descifrado, ¿qué sucede si los cifro con el método manual del teclado de un solo uso (texto char + tecla char, luego mod 26) y hago públicos los cifrados? Cuando pierdo mi teléfono, puedo descifrar los cifrados a mano con la clave que memorizo sin necesidad de un software especial.

Esto proporciona un par de beneficios adicionales:

  1. Puedo almacenar los códigos de respaldo encriptados en varias ubicaciones, como mi billetera, mi equipaje y en una página web de acceso público.
  2. Solo necesito memorizar una clave para todos mis códigos de respaldo en varias cuentas.
  3. No importa si los cifrados de mi código de respaldo se pierden o son robados.

Mi pregunta es: ¿Es este un método seguro para almacenar códigos de respaldo 2FA? ¿Cuáles son los riesgos de seguridad? ¿Qué estoy pasando por alto?

    
pregunta Justin J Stark 27.02.2018 - 20:32
fuente

1 respuesta

1

Hice mi propia investigación sobre esto y cifré los códigos 2FA con el método One-Time Pad y una frase no obvia es irrompible debido a la uniformidad de los códigos 2FA.

Al usar One-Time Pads (OTP) para cifrar una oración, la clave debe ser uniforme para proteger Contra el análisis de frecuencia. Pero en general, ya sea el texto simple o la clave deben ser uniformes. Google Authenticator y otros proveedores 2fa utilizan un hash generado por SHA-1 para generar los códigos 2fa que es el estándar para HOTP (RFC4226) y TOTP (RFC6238) . Si bien SHA-1 puede no ser perfectamente uniforme, SHA-1 es casi uniforme y lo suficientemente cerca para ser uniforme Ese análisis de frecuencia no es un ataque factible. Por lo tanto, cualquier clave no obvia, como una frase u oración fácil de recordar, puede usarse para cifrar los códigos 2fa.

Uno de los puntos débiles de esto es que si usas la misma clave para usar el One-Time Pad para encriptar todos tus códigos de respaldo 2fa y uno de tus códigos se fuerza por la fuerza bruta, el atacante puede derivar la clave y luego descifrar todos tus códigos . Si bien es una práctica habitual que los proveedores de cuentas realicen inicios de sesión con límite para ayudar a prevenir ataques de fuerza bruta, algunos proveedores de cuentas pueden tener una protección peor que otros y no se debe asumir que todos los proveedores de cuentas tienen la protección adecuada. La seguridad de su código de respaldo 2fa es tan buena como el proveedor de cuenta más débil. Por lo tanto, debe usar una clave diferente para cada cuenta, lo que anula uno de los principales beneficios de este método: que solo tiene que memorizar una clave.

    
respondido por el Justin J Stark 02.03.2018 - 17:14
fuente

Lea otras preguntas en las etiquetas