Pregunta sobre un sistema de administración de contraseñas sólido y simple

4

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:

  1. 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.
  2. Registre todas las T diferentes contraseñas generadas en un archivo, una contraseña por línea.
  3. El usuario elegirá un número N (quizás generado aleatoriamente) entre 1 y T y recordará ese número en su cabeza.
  4. 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?

    
pregunta Simple 03.11.2014 - 09:16
fuente

3 respuestas

7

Si asume que el atacante tiene el archivo, entonces realmente está confiando en el número N como su contraseña. Ha indicado que este es un número seleccionado por el usuario y es probable que los usuarios simplemente elijan (por ejemplo) 111 ... 111, 123 ..., 000 ... 000, o algo similar.

Esto podría contrarrestarse diciéndole al usuario qué valor de N debe usar en "generación", sin embargo, es probable que el usuario lo escriba o sea similar. Los seres humanos ya no recuerdan los números de teléfono de larga distancia, diablos, ya no recuerdo ningún número de teléfono.

También ha indicado que el número N puede ser hasta mil millones aproximadamente, o aproximadamente 10 ^ 9. Esto le da a su esquema de contraseñas una entropía bastante baja en general.

    
respondido por el Tinned_Tuna 03.11.2014 - 09:40
fuente
2

También considere que usar una contraseña de forma aislada significa que si un atacante tiene acceso al archivo de contraseñas no necesitarían encontrar una contraseña para un usuario específico, solo necesitan encontrar una contraseña que haya sido seleccionada por cualquier usuario autorizado. , obviamente, a medida que la población de usuarios aumenta, mayor es la probabilidad de que un atacante elija una contraseña "en vivo".

Desde una perspectiva práctica, ¿cómo bloquearía a los usuarios? Sin un identificador, necesitará usar otra cosa, asumiré la dirección IP, lo cual está bien si sabe que todos sus usuarios tendrán direcciones IP únicas, pero si existe la posibilidad de direcciones IP compartidas (por ejemplo, a través de Internet). gateway) hay una posibilidad muy real de denegación de servicio no intencional, o incluso inicios de sesión exitosos que restablecen el conteo de inicio de sesión fallido y permiten una mayor tasa de ataque.

    
respondido por el R15 03.11.2014 - 11:04
fuente
0

Ha diseñado un Administrador de contraseñas con menos protección y facilidad de uso que todos los demás productos maduros que existen.

  1. El archivo debe viajar con el usuario.
  2. La contraseña para acceder al administrador de pseudo-contraseña es una contraseña de 9 caracteres que consta de solo dígitos.
  3. El archivo del administrador de pseudo-contraseña solo funciona para una única ubicación de inicio de sesión.
  4. El archivo no está protegido de ninguna manera.
  5. Si un atacante conoce el esquema de contraseñas, la capacidad de forzar brutalmente los hashes de contraseña en el sistema se vuelve mucho más fácil.

¿Por qué no usar un administrador de contraseñas real? LastPass, Keepass, 1Password, etc? Mejoran en tu sistema desde el principio.

O MFA? Un usuario podría tener una contraseña de baja entropía y seguir teniendo protección.

    
respondido por el schroeder 03.11.2014 - 18:13
fuente

Lea otras preguntas en las etiquetas