¿Un conjunto aleatorio de contraseñas secundarias agrega alguna seguridad?

4

Mi banco usa esta política de autenticación bastante poco común. Por supuesto, tienen una contraseña, que tiene patrones de contraseña bastante sólidos como "usar caracteres alfanuméricos y símbolos, 8+ caracteres".

Y tienen una contraseña secundaria, que debe tener exactamente 8 caracteres alfanuméricos. Se supone que debemos ingresar tres caracteres seleccionados al azar de esta contraseña secundaria cuando iniciamos sesión. Aquí está el ejemplo:

Ahora espero que estén almacenando mi contraseña secundaria como 8 hashes, es de esperar que cada letra se pique con un salt diferente. Simplemente asumamos que mi especulación es verdadera e intentemos encontrar qué tan seguro es esto.

Entonces, mi pregunta es, ¿este tipo de contraseña secundaria agrega alguna seguridad? ¿O cuánta seguridad adicional tendremos si usamos una contraseña secundaria sin aleatorizar las letras de esta manera?

    
pregunta Krumia 29.09.2014 - 08:19
fuente

2 respuestas

5

Bueno, ciertamente no lo hace más inseguro. Aún tiene su contraseña principal, que asumiremos que está almacenada correctamente.

Y además de esto (voy a asumir que debe ingresar ambos, no uno u otro; si ese fuera el caso, esto no sería muy seguro, consulte los enlaces @DW que se proporcionan en Los comentarios.), tienen una contraseña secundaria. Supongamos que está almacenado de la peor manera posible: texto plano (*).

por lo que no nos importa lo que suceda en caso de que un atacante robe la base de datos (el hashing de esta contraseña adicional no agregaría mucha seguridad para eso de todos modos).

  

Mi pregunta es, ¿este tipo de contraseña secundaria agrega alguna seguridad?

Esto aún agrega seguridad. El beneficio de la aleatorización es que alguien podría interceptarlo iniciando sesión una vez, y aún así no podrá iniciar sesión por sí mismo sin que sigan adelante pasos.

Esto no es un montón de seguridad adicional, pero sí lo es, y creo que tiene sentido como estrategia de defensa en profundidad.

Ejemplo de lo que esto podría proteger contra:

Está en una casa de amigos (o tiene visitas en su lugar o está usando su computadora portátil en público para la banca en línea [no haga esto]) y tiene que enviarles algo de dinero. Miran por encima del hombro y lo ven ingresar su (s) contraseña (s). Sin la asignación aleatoria, pueden iniciar sesión ellos mismos y ver cuánto dinero tiene, en qué lo gasta, etc. Y si olvida su teléfono celular y está usando mTAN, pueden robarle.

Con la segunda contraseña aleatoria, tendrían que usar fuerza bruta (ya sea el inicio de sesión en línea o el hash si lograron ingresar al banco (*)), o ver cómo ingresas la contraseña varias veces.

Hay 8 más de 3 = 56 combinaciones posibles de caracteres para ingresar (asumiendo que siempre hay que ingresar 3 caracteres), por lo que, hasta que se les pregunte, los mismos caracteres pueden ser molestos (o bloquearlos).

Tal vez no estén muy seguros de tu contraseña principal y esperan probar solo un par de variaciones, lo que sería mucho más difícil con la contraseña secundaria aleatoria.

Entonces, sí, creo que hay escenarios del mundo real contra los cuales este tipo de contraseña aleatoria protege, especialmente contra atacantes con menos experiencia técnica.

(*) Entrar en el banco me parece un vector de ataque mucho menos probable que alguien que intercepte la contraseña.

  

¿O cuánta seguridad adicional tendremos si usamos una contraseña secundaria sin asignar al azar las letras como esta?

¿Quieres decir que solo tienes dos contraseñas "normales"? Suponiendo que no le diga qué contraseña estaba equivocada, es lo mismo que requerir más de 16 caracteres para una única contraseña para los ataques de fuerza bruta en línea. Si te dicen cuál fue el incorrecto o si conseguiste los hashes, bueno, entonces agregaría la seguridad que te da una contraseña de 8 caracteres alfanum.

Esto, por supuesto, no defiende el escenario descrito anteriormente.

    
respondido por el tim 29.09.2014 - 15:30
fuente
4

La forma en que lo veo, aunque sea aleatoria, son solo ocho contraseñas de entropía baja muy, muy, muy muy (1 carácter). Lo que será muy fácil de romper por la fuerza bruta (como es habitual, tenemos para asumir que el atacante tiene las sales). La asignación aleatoria del desafío será inútil si el atacante conoce la contraseña secundaria.

Pero creo que esto tendrá seguridad adicional si las letras aleatorias se combinan con la contraseña principal. Por ejemplo, si las contraseñas están inicialmente con este tipo de hash:

hash_1 = hash(primaryPassword + letter_1_of_secondary + random_salt_1)
hash_2 = hash(primaryPassword + letter_2_of_secondary + random_salt_2)
// ... and so on.

Ahora esto es esencialmente equivalente a tener ocho contraseñas para la misma cuenta, y tener que proporcionar tres contraseñas aleatorias de las ocho para la autenticación. Un atacante tendrá que descifrar al menos tres contraseñas e intentar iniciar sesión hasta que el sistema solicite las tres contraseñas exactas, y esperar que el sistema no bloquee la cuenta debido a múltiples intentos.

Como Chris Murray ha señalado en los comentarios, esto no es mucho mejor que tener uno contraseña. Porque si un atacante rompe una sola contraseña, todas las demás contraseñas se pueden descifrar fácilmente porque comparten el mismo secreto.

    
respondido por el Krumia 29.09.2014 - 08:28
fuente

Lea otras preguntas en las etiquetas