¿Cómo evitar el descubrimiento de correos electrónicos en formularios?

11

Al estar en la lista de correo electrónico de seguridad de la empresa, recibo correos electrónicos con cierta frecuencia quejándome sobre el descubrimiento de correos electrónicos en varias formas en el sitio web de mi empleador. Los reporteros se quejan de cosas como que nuestro formulario de inicio de sesión devuelve un mensaje específico como "Su contraseña es incorrecta". en lugar de "El correo electrónico / contraseña proporcionados son incorrectos". Esto permite a los posibles atacantes saber que cierta dirección de correo electrónico está en uso para una cuenta.

Entiendo el problema aquí, y es fácil cambiar los mensajes para un formulario de inicio de sesión o recuperación de cuenta. Sin embargo, ¿qué puedo hacer con un formulario de registro? Solo queremos una cuenta para cualquier dirección de correo electrónico dada. He examinado algunos otros servicios populares en línea y sus formularios de registro específicamente te dicen que la dirección de correo electrónico está en uso.

¿No hay forma de evitar esto? Si ese es el caso, ¿realmente debería prestar atención a las personas que se quejan del descubrimiento de correo electrónico en el formulario de inicio de sesión?

    
pregunta Endophage 27.12.2013 - 00:48
fuente

2 respuestas

12

Esto se puede resolver implementando un mensaje fuera de banda .

Para resolver este problema, tendría un formulario que se puede utilizar para dos propósitos:

  1. Recuperación de cuenta.
  2. Nuevo usuario se registra.

El campo único en este formulario es Email address . Por supuesto, puede usar diferentes textos dependiendo de si el usuario desea recuperar su cuenta o registrarse, pero la forma en que funcionará será la misma.

Una vez que el usuario haya ingresado su dirección de correo electrónico y haya hecho clic en Next , se mostrará la misma respuesta para cualquier dirección ingresada. Algo similar a Thank you, please check your email account for the provided address .

El mensaje "fuera de banda" enviado a su dirección de correo electrónico dirá Please follow the link to recover your account o Please follow the link to sign up to our service y contendrá los enlaces apropiados que incluirán un token de tiempo limitado para permitir al usuario recuperar su cuenta o registrarse como necesario. Lo único que determina el texto de este mensaje es si existe una cuenta para su dirección de correo electrónico dentro del sistema, no importa si el usuario siguió la recuperación de la cuenta o los nuevos enlaces de registro de usuarios. Como deben ser los únicos usuarios que pueden leer su correo electrónico, esto debería evitar username enumeration . El token se asociará al correo electrónico proporcionado que detendrá al usuario y luego intentará registrarse utilizando una dirección diferente, o restablecer la contraseña de cualquier otra cuenta. Esto también tiene el efecto de validar la cuenta de correo electrónico para nuevos registros.

    
respondido por el SilverlightFox 28.12.2013 - 16:41
fuente
6

Creo que su mejor opción para evitar la enumeración de correo electrónico en una situación como esta es agregar un CAPTCHA en su formulario de registro. Para que un ataque de enumeración de correo electrónico funcione, un atacante debe automatizar el envío de una gran cantidad de correos electrónicos para ver cuáles tienen cuentas.

Al agregar un CAPTCHA, es muy difícil automatizar este tipo de ataque de manera efectiva y aún puede dar mensajes informativos durante el registro.

    
respondido por el Abe Miessler 27.12.2013 - 01:19
fuente

Lea otras preguntas en las etiquetas