Estoy diseñando un sistema que requiere control de acceso a través de una contraseña segura y para eso usaré un algoritmo de generación de contraseña A que produce una contraseña segura de longitud L & gt = = 32. El sistema verificará la contraseña y, si la contraseña es incorrecta en varios intentos consecutivos, bloquee al usuario de inicios de sesión adicionales durante un período de tiempo.
Además, el sistema debería:
- generar una contraseña larga y segura
- la contraseña debe ser única en el mundo,
- permitir un cambio de contraseña fácil,
- no requiere autenticación (es decir, los usuarios solo suministran la contraseña, pero no el nombre de usuario),
- sea simple en implementación y en uso.
Debido a que no tengo experiencia práctica en temas de seguridad, apreciaría mucho si los gurús de la seguridad pudieran criticar el siguiente diseño simple, y quizás ingenuo:
- Invoca el mismo algoritmo conocido A (por ejemplo, una buena función hash unidireccional, un algoritmo de generación UUID, etc.) T veces, donde T es un número muy grande, al menos mil millones.
- Registre todas las T diferentes contraseñas generadas en un archivo, una contraseña por línea.
- El usuario elegirá un número N (quizás generado aleatoriamente) entre 1 y T y recordará ese número en su cabeza.
- Cuando se le solicite una contraseña, el usuario buscará en el archivo en la posición N, copiará la contraseña en esa posición y la pegará en el programa que solicita una contraseña.
Comentarios:
A. Parece que una persona puede recordar un número entre mil y mil millones sin muchos problemas, ya que tiene menos dígitos que un número de teléfono de larga distancia de EE. UU.
B. Mientras el archivo no se pierda (se puede replicar), el usuario siempre tendrá la contraseña correcta.
C. La contraseña se puede cambiar fácilmente en cualquier momento regenerando todo el archivo y seleccionando una nueva contraseña en la misma posición N. El usuario no tendrá que recordar la nueva contraseña; usar el mismo número N resultaría en una nueva contraseña.
D. Si un atacante obtiene una retención del archivo con mil millones de contraseñas e intenta iniciar sesión repetidamente para encontrar la contraseña correcta, lo más probable es que lleve mucho tiempo (años o siglos) porque el sistema continuará bloqueando la contraseña. usuario después de unos pocos intentos fallidos.
E. Debido a D, el archivo de contraseña se puede mantener en texto sin formato, no se necesita cifrado.
Pregunta:
¿Qué está mal con este tipo de sistema?