Creando resultados aleatorios seguros que pueden repetirse en todas las máquinas [duplicar]

0

Tengo problemas para encontrar una solución a este problema.

Básicamente, lo que estoy tratando de hacer es crear datos aleatorios que un usuario puede repetir en múltiples máquinas, pero que también están protegidos contra los atacantes.

La forma en que estoy abordando este problema ahora es que un usuario ingresa un pin de 5 dígitos. Ese pin de 5 dígitos actúa como una semilla rng. Si el usuario se mueve a una máquina diferente, puede volver a ingresar ese pin de 5 dígitos y la salida rng será la misma. Esta parte es importante para el sistema.

Esto funciona, sin embargo, la entropía de un pin de 5 dígitos no es suficiente para ser considerada una semilla segura. Creo que lo que quieres ver es 128 bits de entropía. Un atacante puede forzar fácilmente un pin de 5 dígitos.

Cualquier idea sobre cómo puedo asegurar esto más. "No puedes" es una respuesta aceptable en mi mente. Si necesito implementar algo diferente a un rng, agradecería algunas sugerencias.

Gracias a todos

    
pregunta CBaker 20.02.2016 - 22:27
fuente

1 respuesta

0

Esto es algo que se realiza con bastante frecuencia y es la base de casi todos los métodos de autenticación de segundo factor (en particular, aquellos que están basados en dispositivos o aplicaciones). La ruta habitual que se toma es generar una gran semilla aleatoria y luego usar uno de los muchos métodos para sincronizarla (los certificados, los códigos QR y los caracteres alfanuméricos de caracteres múltiples y pasados de moda son los comunes).

Esencialmente, el problema que estás tratando de resolver es el de transmitir una clave potencialmente grande a través de un canal potencialmente inseguro, y hay algunas rutas que puedes seguir. Si desea conservar el elemento humano, puede seguir la ruta de una frase de contraseña. Cualquier cosa que se traduzca en un número binario suficientemente grande haría el truco, así que una frase de contraseña alfanumérica de 16 caracteres haría el truco. 128 bits se lograrían con 8 caracteres, creo.

    
respondido por el Jozef Woods 20.02.2016 - 23:11
fuente

Lea otras preguntas en las etiquetas