Tengo un sitio en el que me gustaría evitar que un atacante no autenticado sepa si existe una cuenta. En el sitio, las contraseñas se procesan mediante bcrypt, por lo que las solicitudes de inicio de sesión deben hacer una comparación de bcrypt (fuerza 12), lo que requiere tiempo de CPU.
Mi preocupación: el tiempo de respuesta del servidor varía según se haya encontrado o no la cuenta del usuario. Si se encontró la cuenta, la comparación de bcrypt se ejecuta para verificar la contraseña; Si no, la función puede volver inmediatamente. En mi máquina local, obtengo ~ 600 ms de tiempo de respuesta cuando se encuentra la cuenta, mientras que obtengo ~ 30 ms de tiempo de respuesta cuando no se encuentra. En producción, solo agregue la latencia de la red a ambos.
En resumen, como cliente, podría determinar si existe una cuenta.
Mi pregunta: ¿Es esto algo de lo que debería preocuparme? Y si es así, ¿cuál es la mejor solución, una espera artificial? ¿Una menor fuerza de criptografía? ¿Un algoritmo hash más rápido?