Nota: no pregunto si este esquema de contraseña es el mejor o no (por supuesto que no); Estoy preguntando por su seguridad teórica o práctica en relación con el esquema de contraseña óptimo basado en los algoritmos utilizados comúnmente en la autenticación y el cifrado. Como ya dije en mi pregunta, matemáticamente este esquema (como lo he definido aquí) es tan seguro como lo que se le dice a la gente (pero rara vez lo hace; aunque es irrelevante aquí), pero no sé si hay cosas extrañas. aspectos de la autenticación o el cifrado que invalidan el análisis matemático basado solo en la entropía.
Bueno, así que tuve este pensamiento interesante. Dado que los sistemas protegidos con contraseña a menudo requieren que los usuarios cambien su contraseña con frecuencia, muchas personas simplemente incrementan un contador agregado a algún prefijo, como:
awefjio; 1
awefjio; 2
...
Me pregunto si el uso de tal familia de contraseñas es tan seguro como elegir una nueva contraseña completamente aleatoria cada vez, siempre que el prefijo se elija de manera uniforme y aleatoriamente y cada una de las nuevas contraseñas más 10 bits. Ignoré los bits adicionales del contador, ya que eso podría ser detectable dentro de un pequeño margen de error dada la frecuencia con la que los usuarios deben cambiar su contraseña. Matemáticamente, este esquema de contraseña es lo suficientemente bueno porque los 10 bits adicionales permiten que el atacante intente 1024 veces más tiempo para descifrar la contraseña en comparación con la completamente aleatoria, suponiendo que una no cambie una contraseña más de 1024 veces. (Aquí asumo que el atacante de alguna manera tiene un hash de la contraseña, incluido cualquier sal necesario).
Ahora conozco una desventaja evidente de esto, que es que un atacante que de alguna manera se adueña de la contraseña actual sabrá todas las contraseñas anteriores, sin embargo, esto parece completamente irrelevante en la mayoría de las situaciones prácticas, donde una vez que ha iniciado sesión, el usuario tiene acceso completo a su cuenta y nunca necesita las contraseñas antiguas.
De ahí mi pregunta; ¿Existe alguna razón concreta por la que los usuarios no deberían usar este esquema para cambiar las contraseñas? Supongo que si la respuesta es positiva, dependerá de los algoritmos de autenticación o de cifrado involucrados, en cuyo caso Estoy bien con restringir la pregunta a los algoritmos más utilizados.
Para ser claros, solo pregunto sobre la situación en la que:
-
Los usuarios no tienen más remedio que cambiar sus contraseñas a una frecuencia fija, y no tienen la opción de usar un administrador de contraseñas (como en una computadora del lugar de trabajo). Por lo tanto, tienen que decidir sobre algún esquema. Esta pregunta es acerca de si un esquema en particular es mejor que otro.
-
Elija una constante fija n. Tengo en mente n ≥ 64 como mínimo, si eso importa.
a. El primer esquema es elegir una nueva cadena aleatoria independiente con entropía de n bits cada vez que sea necesario cambiar la contraseña.
b. El segundo esquema es elegir una cadena aleatoria fija con entropía de (n + 10) bits y agregar un contador que se incremente cada vez que sea necesario cambiar la contraseña.
La pregunta es si (b) es al menos tan seguro como (a) para los tipos comunes de sistemas protegidos por contraseña.