Varios campos de contraseña para un inicio de sesión [duplicado]

9

En este escenario hipotético, hay una entrada para un nombre de usuario y hay dos campos de contraseña separados. Un usuario debe tener dos contraseñas separadas que deben ingresar antes de poder iniciar sesión. ¿Tendría esto algún beneficio sobre una sola contraseña que es la longitud de la contraseña una y dos combinadas? (No me preocupa la facilidad de uso para el usuario aquí)

    
pregunta Cup of Java 24.10.2016 - 20:50
fuente

8 respuestas

28

Estoy de acuerdo con las otras respuestas:

  • No agrega ni poca entropía en comparación con solo usar una contraseña más larga (como lo señala Steffen Ullrich ).
  • Si hash las contraseñas por separado, las hash son más fáciles de descifrar en comparación con un hash de una contraseña larga (como longitud señala ).

Pero me gustaría agregar un punto relacionado con el comportamiento del usuario.

Forzar al usuario a elegir dos contraseñas en lugar de una probablemente hará que el usuario elija contraseñas peores por puro agotamiento. Solo animará a la gente a repetir la misma contraseña dos veces con alguna modificación para evitar cualquier bloqueo que haya implementado para evitar esto.

Cuando tomas en cuenta a los humanos al elegir las contraseñas, creo que terminas siendo menos seguro, no más. Es simplemente molesto sin ningún beneficio de seguridad en el mejor de los casos, y, en el peor de los casos, directamente perjudicial para la seguridad.

    
respondido por el Anders 24.10.2016 - 21:08
fuente
24

En realidad es menos seguro tener dos campos de contraseña separados en el sentido de que si los hashes de contraseña se almacenan por separado, puede ser más fácil encontrar dos contraseñas más cortas de algo así como una tabla de arco iris que una contraseña larga . Por supuesto, si se almacena un solo hash para la contraseña concatenada, es lo mismo que un campo de contraseña.

    
respondido por el Gabor Lengyel 24.10.2016 - 21:03
fuente
7

La única diferencia entre su propuesta de dos contraseñas P1 y P2 y una única contraseña P1 + P2 es que la cadena P1 + P2 se divide para obtener las dos contraseñas. En comparación con la complejidad que se puede lograr ya con una contraseña larga, este paso adicional no agrega casi nada de complejidad y, por lo tanto, realmente no dificulta el descifrado de la contraseña.

    
respondido por el Steffen Ullrich 24.10.2016 - 20:59
fuente
4

Depende.

Desde una perspectiva teórica, hay un ligero aumento en la entropía porque la posición de la ruptura entre la primera y la segunda contraseña constituye información adicional.

Una contraseña grande. Digamos que tiene una contraseña y que el usuario ingresa 16 caracteres, y para simplificar, digamos que la contraseña debe ser numérica. Esto equivale a 10 ^ 16 posibles permutaciones, o 10,000,000,000,000,000 (10 cuatrillones).

Dos contraseñas. Ahora digamos que tiene dos contraseñas que suman 16 caracteres. Usted pensaría que hay 10 ^ 16 combinaciones, pero de hecho hay más. Vamos a sumarlos:

Si la primera contraseña tiene 1 dígito y la segunda tiene 15 dígitos, eso equivale a 1 ^ 10 x 15 ^ 10 = 10,000,000,000,000,000 permutaciones.

Si la primera contraseña tiene 2 dígitos y la segunda tiene 14 dígitos, eso equivale a 2 ^ 10 x 14 ^ 10 = 10,000,000,000,000,000 permutaciones.

Si la primera contraseña tiene 3 dígitos y la segunda tiene 13 dígitos, eso equivale a 3 ^ 10 x 13 ^ 10 = 10,000,000,000,000,000 permutaciones.

...

Si la primera contraseña tiene 15 dígitos y la segunda tiene 1 dígito, eso equivale a 15 ^ 10 x 1 ^ 10 = 10,000,000,000,000,000 permutaciones.

Hay 15 casos posibles, con un total de 150,000,000,000,000,000 permutaciones (150 cuatrillones).

Comparación. Desde 150 cuatrillones > 10 cuatrillones, sí, hay un poco de aumento en la entropía y, por lo tanto, es más difícil adivinar las dos contraseñas que la única contraseña larga.

Las suposiciones anteriores (longitud = 16, conjunto de caracteres = 10) se pueden cambiar y la matemática aún funcionará.

No

Por otra parte, dependiendo de cómo el sistema evalúa la contraseña, es posible que no se aplique lo anterior, por ejemplo. si el sitio web combina las contraseñas y las une, en lugar de mantenerlas separadas. Si ese es el caso, entonces no, no se requiere una potencia computacional adicional para falsificar la contraseña, porque de hecho hay 15 combinaciones diferentes de contraseñas que funcionarán. 150 cuatrillones ÷ 15 = 10 cuatrillones, por lo que está de vuelta donde comenzó.

¡Es aún peor!

Consulte respuesta de lengyelg que es correcta :

  

En realidad, es menos seguro tener dos campos de contraseña separados en el sentido de que si los hashes de contraseña se almacenan por separado, puede ser más fácil encontrar dos contraseñas más cortas de algo así como una tabla de arco iris que una contraseña larga. Por supuesto, si se almacena un solo hash para la contraseña concatenada, es lo mismo que un campo de contraseña.

¿Por qué molestarse?

En mi opinión, es mucho más simple requerir un dígito adicional que requerir dos contraseñas separadas, y eso siempre tendrá un efecto más fuerte si su conjunto de caracteres es mayor que la longitud de las dos contraseñas combinadas (lo que es casi seguro que sea el caso).

    
respondido por el John Wu 24.10.2016 - 21:51
fuente
2

Por lo que yo entiendo, 2 contraseñas con longitud N y K respectivamente serán equivalentes a una contraseña con longitud N + K. Muy pequeña probabilidad de que los usuarios tomen contraseñas más seguras, al recordar dos palabras separadas. Pero el ataque del diccionario será una fuerza bruta sin problemas serios

    
respondido por el Yury Kochubeev 24.10.2016 - 20:56
fuente
2

Sí, podría ser una diferencia, dependiendo de cómo se elijan las dos contraseñas.

Si el usuario elige una de las contraseñas y la otra es generada por un generador de números pseudoaleatorios, como los que su banco puede proporcionar a los clientes en línea, o una contraseña elegida de una lista de contraseñas que le envió El operador del sitio, desde el cual siempre debe tachar la última contraseña utilizada y usar la siguiente, entonces eso marcaría la diferencia.

Si deja que un usuario escoja dos contraseñas por su cuenta, es probable que no sean muy buenas, y le convendría más con una contraseña que es el doble de larga, ya que sería más difícil para un bruto. forzar contraseña adivinador para adivinar desde el principio. Pero si la mitad de la contraseña de un usuario es una cadena sólida y casi aleatoria que cambia cada vez que inicia sesión, eso mejora la seguridad del proceso de inicio de sesión y todas las sesiones futuras, y protege contra las consecuencias de engañar a un usuario para que revele su contraseña elegida o incluso la combinación actual de contraseñas.

Tenga en cuenta que esto no hará que la contraseña sea más difícil de descifrar cuando la base de datos de contraseñas de usuario es robada, ya que la contraseña que está realmente almacenada en la base de datos de contraseñas seguirá siendo la única que el usuario eligió.     

respondido por el Pascal 24.10.2016 - 21:40
fuente
1

La razón principal que se me ocurre para este escenario es si desea que dos personas se autentiquen en lugar de confiar en una sola persona, por ejemplo, las películas populares muestran dos claves de lanzamiento de misiles. P1 tiene una contraseña, P2 tiene una contraseña y cuando ambas ingresan, el sistema usa ambas para crear la clave real utilizada para autenticar. Así tampoco ninguno de ellos puede desbloquear. Teóricamente aumenta la seguridad, pero ante el posible peligro de pérdida de acceso (el bus hipotético lo golpea).

    
respondido por el Blackbeagle 24.10.2016 - 23:45
fuente
1

Hay un punto más que aún no he visto a nadie, que es una pregunta específica que no queda clara en tu pregunta: ¿importa el orden de las contraseñas?

En algunos sistemas, como los que usan una variación de El intercambio secreto de Shamir , el sistema fue diseñado con el supuesto de que las múltiples contraseñas serían mantenidas por múltiples partes, y por lo tanto, el orden en el que se ingresan no importa.

Sin embargo, si usó un esquema similar en este escenario, ahora permite que un atacante ingrese usando bar y foo cuando el usuario establece sus contraseñas en foo y bar . Si comparamos esto con una contraseña única combinada, ha duplicado el número de entradas válidas, de solo foobar a foobar y barfoo .

En dos contraseñas, esto no es probablemente un gran problema; se vuelve más problemático a medida que amplías el número de contraseñas. A las tres ahora tenemos 3! = 6 de contraseñas combinadas válidas, a las 4 tenemos 4! = 24 , y así sucesivamente, aumentando rápidamente.

    
respondido por el Xiong Chiamiov 25.10.2016 - 02:26
fuente

Lea otras preguntas en las etiquetas