Sí. Pero, por otro lado, no desea que el archivo de registro contenga las contraseñas, lo que ocurriría si alguien fallara el inicio de sesión y enviara la contraseña en lugar del nombre de usuario.
Lo que creo que podría ser un compromiso viable podría ser el registro:
- intenta con nombres de usuario válidos y contraseñas no válidas, registrando el nombre de usuario pero no la contraseña.
- intentos con nombres de usuario no válidos (que pueden ser contraseñas o lo que sea), registrando el nombre de usuario como "NO VÁLIDO".
El fundamento es que varios intentos con un solo nombre de usuario válido le informarán sobre un posible ataque de fuerza bruta en contra de ese nombre de usuario; un enjambre de intentos contra el nombre de usuario INVÁLIDO advertirá de un ataque a gran escala de "nombre de usuario con contraseña obvia", que, si tiene una política de contraseña adecuada, es irritante pero inofensivo. Más aún, los intentos contra usuarios conocidos.
Es concebible que alguien esté tratando de imponer una fuerza bruta contra un solo nombre de usuario no válido; Si eso es un problema, puede registrar nombres de usuario no válidos como hashes (parciales y / o con sal). El valor de esta información de texto claro, incluso si es capturado por partes hostiles, sería esencialmente nulo.
Un número muy pequeño de intentos en el nombre de usuario INVÁLIDO puede deberse a que los usuarios escriben mal sus nombres o ingresen la contraseña en lugar del nombre; o paranoicos que intencionalmente arruinan su primer inicio de sesión creyendo que esto protege contra la captura de credenciales.
Especialmente si es seguido rápidamente por un inicio de sesión válido desde la misma dirección (a menos que sea un sistema enmascarado en una red grande ...), un error de autenticación ocasional de este tipo podría considerarse ruido e ignorarse.
(Es posible que distinga un pequeño conjunto de "nombres no válidos válidos" como info , admin *, Administrator , guest , si Usted quería, pero eso es probablemente una exageración).
También, para los verdaderamente paranoicos, podría rellenar todos los nombres de usuario válidos y la cadena "INVALID" para que sea la misma, longitud fija (digamos ... ¿20 caracteres?). Si, por casualidad, un atacante pudiera observar de forma remota el crecimiento del archivo de registro, no podría decir si un nombre de usuario existía o no en el sistema.