Concepto
El objetivo de un administrador de contraseñas es reducir el número de contraseñas que uno debe memorizar en una, y luego tener todas las demás contraseñas encriptadas bajo esa contraseña maestra. Mi solución apunta a resolver el mismo proceso sin el uso de ningún almacenamiento de datos.
Idea
Primero, genera una contraseña segura. Luego conconcipe el nombre de la cuenta al final de la misma y haga un hash del resultado, posiblemente en el estilo de cadena descrito en esta respuesta . El resultado final sería mi contraseña para esa cuenta.
Ejemplo
Usando una contraseña de ejemplo "GreenPlanetAboutStudentCaughtGoodbye" y mi cuenta de "StackExchange", pondría "GreenPlanetAboutStudentCaughtGoodbyeStackExchange" y usaría el resultado como mi contraseña.
Seguridad
El propósito del hashing es garantizar que incluso si un sitio web almacena mi contraseña en texto sin formato, solo esa contraseña se verá comprometida. Suponiendo que las cuentas permiten los 40 caracteres de un SHA-256, la entropía de las contraseñas sería max(256, entropy of initial password)
.
Ventajas
- No requiere cifrado
- No requiere almacenamiento de datos
- Las contraseñas solo se pueden perder si se olvida la contraseña maestra
- Se puede utilizar en cualquier lugar
Desventajas
- Depende de los sitios web que permiten una longitud de contraseña ilimitada (aunque uno podría recortar el hash para los sitios web que lo requieran)
- Supone que todos los requisitos de caracteres especiales se cumplirán con la contraseña aleatoria (es muy probable, pero todavía existe la posibilidad de que no)
Pregunta
¿Mi idea suena (razonablemente segura)? ¿Hay algún defecto crítico que me esté perdiendo?