Uso de una tabla de líneas rectas en el navegador para generar contraseñas

2

He estado trabajando en una idea para un administrador de contraseñas sin estado, inspirado en este entrada de blog . Estoy usando un generador de números pseudoaleatorios en el navegador ( seedrandom.js ) sembrado con la contraseña maestra de un usuario para crear una única (?) 26x26 tabula recta de los caracteres. Luego, el usuario elige un punto de partida para cada sitio web y sigue un patrón elegido a través de la cuadrícula para crear / acceder a sus contraseñas.

Seedrandom.js utiliza el RC4 (RC4-drop[256] ) cifra cifrada, que creo que ya no se considera segura para cifrar la información. P1 : ¿esto importa si solo lo uso como fuente de aleatoriedad para una cuadrícula de 26x26 de caracteres que nunca pasarán por una red (todo se genera en el lado del cliente en el navegador)?

P2 : también, ¿cuál es su análisis de la fortaleza de este sistema contra un ataque, antes y después de que se haya expuesto la contraseña maestra para la cuadrícula de un usuario? Esta pregunta anterior habla sobre posibles ataques en una tabla recta. pero las respuestas se centran principalmente en mantener segura la ficha física, que no se aplica aquí.

Estos son mi parte posterior de los cálculos del sobre:

Antes de que se conozca la contraseña maestra, adivine una contraseña de 16 caracteres :

log_2(88^16) = ~103 bits de entropía, que tardará mucho tiempo en resquebrajarse en cualquier contexto.

Una vez que se conoce la contraseña maestra, Brute fuerza una contraseña de la cuadrícula :

(26*26 cells) * (20 common patterns) * (8 pattern directions, including diagonals) * (20 potential password lengths, 10-30chars) = ~2 million options

Entonces, en promedio, esto tomaría alrededor de 2 million/2 = 1 million de conjeturas para descifrar. Dependiendo del contexto, esto se resquebrajaría en cualquier lugar entre ~ 400 días (formulario web de tasa limitada, 100 suposiciones / hora ) a < < 1 segundo (pérdida de la base de datos, algoritmo de hash rápido, 1e10 conjeturas / segundo ).

Hay una demostración básica de este proyecto aquí .

    
pregunta pst0102 25.01.2018 - 02:42
fuente

2 respuestas

3

Su sistema probablemente funcionaría en teoría, pero parece tener fallas significativas en la práctica. Hay varias debilidades prácticas en la forma en que se utilizará:

  1. No describe cómo convertirá la contraseña maestra a la semilla para el RNG. Este es potencialmente un punto débil.
  2. No ha especificado cómo los usuarios asociarán un punto de inicio con un sitio en particular. Sin una forma de guardar esto, será imposible de usar. Dependiendo de la memoria del usuario, se reutilizará la contraseña.
  3. Los usuarios tenderán a elegir el mismo o un pequeño número de puntos de inicio en la tabla recta según la tendencia humana, reduciendo significativamente su entropía.
  4. Una tabla recta implica más trabajo manual del que los usuarios realmente querrán usar en la práctica.
  5. RC4 tiene sesgos en la secuencia de teclas inicial. Si esto no se corrige en su RNG, esto insertará sesgos en su tabla recta.
  6. No proporciona una buena forma para que los usuarios roten las contraseñas, aparte de elegir un nuevo punto de partida para ese sitio. Combinado con el # 2, esto hará que sea aún más difícil para los usuarios recordar el punto de partida de un sitio determinado.
respondido por el David 25.01.2018 - 03:21
fuente
0
  

una cuadrícula de caracteres 26x26 que nunca pasará por una red

Esto no es del todo cierto. Cada contraseña expone un poco de esta cuadrícula. Si el atacante obtiene una contraseña, tiene una parte de tu cuadrícula y puede usarla para intentar forzar tu contraseña maestra con fuerza bruta.

Para hacer que la contraseña maestra sea más difícil de forzar la aplicación de la ley bruta, se podría usar una función de derivación de claves como PBKDF2, de modo que la cuadrícula se base en seedrandom(pbkdf2(master_password)) . Esto ralentiza los ataques de fuerza bruta y hace que cualquier inseguridad en RC4 sea irrelevante.

    
respondido por el Sjoerd 25.01.2018 - 08:51
fuente