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í .