La fuerza de una contraseña se define como la cantidad promedio de tiempo que le tomaría a un atacante adivinarla. Hay dos elementos en la elección de una contraseña: inteligencia y aleatoriedad. Usar palabras en inglés, frases de libros, etc. es inteligencia.
En la práctica, casi cualquier opción de contraseña implica astucia de parte y aleatoriedad de parte. Por ejemplo, si abre su libro favorito y toma las primeras cuatro palabras de una página aleatoria como su contraseña, entonces su elección de libro es principalmente inteligente, y su elección de página es principalmente aleatoria (pero si dio vuelta las páginas "al azar" , en realidad hay bastante inteligencia, porque es mucho más probable que elija, por ejemplo, la página 42 de 100 que la página 1 o la página 100).
Si asumes que el atacante es estúpido, entonces tu contraseña solo es protección contra los atacantes estúpidos. Las opciones de contraseña inteligente no protegen contra los atacantes inteligentes. La cantidad de aleatoriedad es una buena medida de la fortaleza de la contraseña, la inteligencia no ayuda mucho.
El atacante tiene que adivinar la contraseña completa. Si combinas múltiples elementos, tiene que hacerlos todos bien. Por ejemplo, el respaldo de su contraseña tiene el formato AX y tiene 50 opciones para A (estimación de la primera palabra de una página al azar en un libro largo; necesitará más de 50 páginas para tener en cuenta el no tan) elección aleatoria de página y para palabras repetidas) y 36 elecciones para X (dos dígitos, obtenidos tirando un dado justo dos veces). Luego hay 50 × 36 = 1800 contraseñas posibles. La concatenación de múltiples elementos siempre aumenta la fuerza de la contraseña, y lo hace de manera multiplicativa (asumiendo que los elementos se eligieron de forma independiente; si en lugar de tirar un dado por X, hubiera elegido el número de página donde encontró la palabra A, no habría agregado) fuerza, ya que este método es puramente inteligente y no aleatorio en absoluto).
La única razón para no usar completamente la aleatoriedad para generar contraseñas es que una cadena de caracteres puramente aleatoria no es memorable, y puede ser difícil o imposible escribirla. Si quieres mantenerte fácil de escribir, puedes usar letras aleatorias; esto aumenta el número de caracteres y puede medir fácilmente cómo (cada letra adicional multiplica el número total de posibilidades por 26). La memorabilidad nuevamente requiere aumentar la longitud para una fuerza de objetivo dada; hay múltiples maneras de lograrlo.
Combinar la X aleatoria con una A inteligente no es mucho mejor que usar solo X. A tendrá una pequeña cantidad de aleatoriedad, ya que el atacante podría no saber qué libro elegiste. La desventaja de este enfoque es que es difícil cuantificar qué tan fuerte es A. Entonces, si quieres estar seguro de que tu contraseña tiene cierta fuerza, tendrás que hacer que X alcance casi esta fuerza, por lo que A es superfluo.
Por esta razón, puede ser mejor evitar A por completo. Una aproximación a la aleatoriedad memorable que funciona bien para muchas personas es seleccionar varias palabras al azar ; diceware es un método popular para esto.
El usability de las contraseñas se ha estudiado en condiciones controladas. Es difícil estudiarlos en la naturaleza, ya que nuestros datos del mundo real provienen de infracciones no planificadas en sistemas donde los usuarios fueron dejados en su propio dispositivo (el sitio web X es hackeado, no usaba el hashing adecuado, alguien publica la lista de contraseñas). En todo caso, la conclusión es que las contraseñas son malas, pero encontrar un reemplazo es un tema de investigación.