Descargo de responsabilidad: Esto es desde el punto de vista del usuario. Asumiremos que el sitio web de destino (por ejemplo, Paypal o Netflix) ya utiliza un fuerte algoritmo de hashing con sales (bcrypt de pbkdf2, por ejemplo) y acepta contraseñas de 32 caracteres.
Contexto: supongamos que Bob es un usuario que sabe algunas cosas acerca de las computadoras, pero no es un experto. Por ejemplo, entiende que usar contraseñas seguras es algo bueno, pero no puede recordar una larga lista de contraseñas complicadas. Por lo tanto, solo usa una contraseña segura en todos los sitios, una práctica que considera arriesgada.
Pero luego lo golpeó: ¡no tiene que recordar contraseñas seguras! En su lugar, puede recordar los sencillos y utilizarlos con una función simple para obtener contraseñas seguras. De esa manera, no tiene que preocuparse demasiado por las violaciones de la base de datos, ya que su contraseña almacenada requeriría que los clusters masivos de GPU se descifren en un tiempo razonable.
Esto funcionaría de esta manera:
- Ir al sitio web de destino.
- Introduce un nombre de usuario
- Hash su contraseña fácil de recordar con un algoritmo rápido para generar una contraseña larga
- Ingrese la contraseña con hash y autentíquese en el sitio web.
Pregunta : ¿Sería esto una práctica buena o incluso aceptable? ¿Es esto algo que podrías aconsejar a alguien que haga? ¿Por qué / por qué no?
Esto se basa un poco en una variante de seguridad a través de la oscuridad tal vez: el pirata informático solo tiene que saber que una contraseña simple estaba encriptada con MD5 para hacer que esto no fuera efectivo o incluso perjudicial (porque el usuario tenderá para usar contraseñas de encriptación más débiles). Como tal, esto no funcionaría a gran escala, es decir. no podrías decirle a millones de personas que hagan eso.
Gracias de antemano por tu aportación!