Quiero agregar una lista negra de contraseñas que impida que se usen las 1000 contraseñas más comunes para mitigar los ataques de diccionario poco profundos. ¿Hay alguna implicación negativa de almacenar esta lista negra en la base de datos?
En ese orden de magnitud (1000 contraseñas), no veo ningún lado negativo desde un punto de vista de seguridad. En todo caso, diría que es una buena idea. Por supuesto, estará reduciendo el conjunto de posibles contraseñas que, en teoría, reduce la seguridad. Sin embargo, en la práctica, las contraseñas más utilizadas serán una de las primeras listas de palabras que intentaría un atacante.
De hecho, he visto algunos servicios web que revelan esto en sus formularios de registro. Algunos incluso bloquean diccionarios completos además de contraseñas comunes.
No solo es no una idea mala , en realidad es bastante recomendable. De hecho, hay una biblioteca completa ya incluida en la mayoría de los sistemas Linux / Unix llamada cracklib que ayuda a evitar que los usuarios de elegir contraseñas horribles.
Hay enlaces para esta biblioteca in most languages , lo que hace que la verificación de contraseñas malas sea bastante trivial. Simplemente diga "cracklib, esta contraseña es mala" y dirá algo como: "esta contraseña se basa en una palabra del diccionario invertida".
Puedo ver un problema en esta situación, hará que la fuerza bruta sea más fácil para el atacante. Tendrán menos contraseñas para intentar ingresar en la cuenta. Creo que no deberías limitar la opción de contraseña a los usuarios en absoluto.
Si hace pública la lista negra y tiene la contraseña favorita de su jefe, CarlosDanger77; lo más probable es que esté enlatado cuando su cuenta de Twitter sea hackeada con él.
Lea otras preguntas en las etiquetas passwords authentication brute-force