Desde una perspectiva de seguridad de la información, debe considerar su esquema público, según el principio de Kerchkoff , incluso más desde que reveló su código fuente. Por lo tanto, la seguridad de su contraseña generada se reduce a la seguridad de su entrada. El algoritmo elegido es irrelevante, ya que un atacante elegiría la entrada y usaría su algoritmo para generar la contraseña.
Entonces, evaluemos la seguridad de sus entradas:
- Contraseña maestra: si un atacante la encuentra, todas sus contraseñas están en peligro. No reutilice sus contraseñas.
- Nombre del sitio: esto es de conocimiento público, no aumenta la seguridad.
- Longitud de la contraseña: contiene muy poca entropía. Es casi inútil.
- Caracteres disponibles: supongo que siempre usa los mismos o utiliza todos los caracteres permitidos por el sitio web, ya que hacerlo sería muy inconveniente. Por lo tanto, es equivalente a una segunda contraseña maestra pequeña.
Entonces, básicamente, su esquema contiene información pública con una contraseña maestra. Un atacante solo necesita forzar con éxito una de sus contraseñas generadas para recuperar su contraseña maestra y luego poder encontrar fácilmente las otras contraseñas generadas.
Una mejor solución sería generar aleatoriamente tus contraseñas. De esta manera, no pueden filtrar información sobre los demás. A continuación, puede guardarlos en un archivo o base de datos cifrados. Solo tendría que recordar la contraseña maestra de la base de datos cifrada, sin tener que recordar la longitud de la contraseña o cómo se llamó al sitio web antes de cambiar su nombre. Los administradores de contraseñas le permiten hacer eso.