Hay varios tipos diferentes de ataques a los que se someten las contraseñas, al igual que hay varias defensas que se pueden implementar.
bcrypt y / o un bloqueo de contraseña son solo dos de las muchas defensas posibles.
Seguridad de la contraseña es Un artículo bastante decente.
Para responder específicamente a su pregunta sobre por qué se requieren las combinaciones: es el único medio disponible para forzar la selección de una contraseña segura. Una contraseña segura realmente significa una alta entropía (cambio) entre los caracteres de la contraseña. Cuanto mayor sea la entropía, mayor será el rango de bits disponibles para el cifrado (como con bcrypt). Una contraseña de baja entropía (débil) no utiliza el espacio completo disponible para el cifrado. Lo que pensaste fue que el cifrado de 128 bits o 256 bits termina siendo mucho menos porque no se utilizó el rango completo de claves.
Algunos números podrían ayudar a explicar las cosas más claramente. Usaremos una contraseña de 8 caracteres para el ejemplo.
Todas las contraseñas en minúscula solo tienen 26 combinaciones diferentes. Así que son 26 ^ 8 o 2.1x10 ^ 11 combinaciones diferentes.
Agregar caracteres en mayúsculas duplica nuestro espacio (ahora 52 no 26) pero nos compra muchas más combinaciones. 52 ^ 8 o 5.3x10 ^ 13, que es una ganancia de aproximadamente 250x.
Comience agregando números o caracteres especiales y podrá ver fácilmente los efectos de forzar más entropía en el espacio clave.
En realidad, todavía no tenemos ese espacio clave completo, ya que algo que se puede recordar generalmente no tiene mucha entropía. Pero los requisitos ayudan a introducir más entropía en la contraseña.