Supongamos que un sitio web tiene una página de inicio de sesión con "Correo electrónico o nombre de usuario" y muestra el nombre de usuario públicamente a cada usuario en ese sitio.
¿Eso le facilita a un atacante hackear la cuenta de otra persona?
El correo electrónico y el nombre de usuario normalmente se consideran datos públicos, por lo que no debería marcar una gran diferencia. No tener esos datos públicamente disponibles puede ralentizar a un pirata informático durante la búsqueda de Google.
Si lo va a hacer público, tal vez solo agregue un dígito adicional en la longitud mínima de la contraseña para compensar.
Al hacer que el nombre de usuario se muestre públicamente, le está dando a los atacantes otra pieza del rompecabezas antes de lanzar el ataque.
Por ejemplo:
Suponiendo que puedes usar fuerza bruta en Facebook, si Facebook mostró parte de la información de inicio de sesión de sus usuarios, un atacante que desee realizar una fuerza bruta solo tendrá que navegar a la página de sus víctimas y obtener la información de inicio de sesión y comenzar el ataque.
Pero si tuvieran que encontrar la información de inicio de sesión, el ataque será mucho más difícil. Tendrán que realizar algún tipo de Ingeniería Social / OSint para encontrar la información de inicio de sesión que a veces puede resultar en nada (Tenga en cuenta que Facebook a veces proporciona el nombre de usuario de las cuentas cuando visita el perfil, pero previene los ataques de fuerza bruta). p>
¿Qué se debe hacer?
Si no puede hacer nada al respecto y necesita mostrar el nombre de usuario, que también es el inicio de sesión de la cuenta, tenga la máxima seguridad posible para evitar cualquier ataque al usuario (incluso en la contraseña olvidada sección).
Debes permitir que el usuario oculte el nombre de usuario y tenga un nombre para mostrar en su lugar (por ejemplo, mi nombre para mostrar es Bubble Hacker pero mi nombre de usuario es diferente)
En primer lugar, tal vez el usuario no quiera que se sepa públicamente que está usando el sitio. Por lo tanto, puede que no sea una buena idea mostrar esta información sin aprobación.
Para responder a su pregunta, en una situación normal, un ataque debe conocer el correo electrónico antes de intentar realizar un ataque de fuerza bruta. Si regala todas las direcciones de correo electrónico, simplificará el trabajo del atacante.
Sin embargo, algunos atacantes no están intentando piratear su sitio web, sino que han obtenido credenciales de otra manera (pirateando el correo electrónico). Entonces ambos tendrán la dirección de correo electrónico y la contraseña, por lo que realmente no importará.
Pero de todos modos, permite a los piratas informáticos crear un índice de los servicios / aplicaciones que utiliza un usuario y eso es una violación de la privacidad. Entonces, a menos que tenga la aprobación del usuario y una buena razón, no publicaría todas las direcciones de correo electrónico o los nombres de usuario.
Creo que esto es una especie de preguntas sencillas.
Si los nombres de usuario aparecen en la lista y se puede usar el mismo nombre de usuario para autenticarse, entonces esto suena a vulnerabilidad de enumeración de usuarios .
Entonces, si quiero intentar acceder al sistema, simplemente puedo tomar la lista de nombres de usuario y luego probar una lista de contraseñas de las 10,000,000 contraseñas principales contra cada nombre de usuario, cuidando de eliminar aquellas que no coincidan las reglas mínimas de complejidad de contraseña para el sitio.
Si intento cada contraseña primero, luego lo hago contra cada usuario y lo hago lo suficientemente lento y hay suficientes nombres de usuarios, entonces puedo evitar cualquier política de bloqueo que bloquee las cuentas después de algunas suposiciones erróneas.
por ejemplo
Username Password
bob 123456
alice 123456
ken 123456
...10,000 attempts later...
bob password1
Si hay bloqueos basados en IP, utilizo una gran variedad de servidores proxy para realizar un ciclo aleatorio para cada solicitud.
Si se conocen los nombres de usuario, entonces sería mejor permitir solo los inicios de sesión con una combinación de dirección de correo electrónico y contraseña, ya que los correos electrónicos serán más privados.
Por supuesto, el sitio aún debe estar protegido contra la enumeración de usuarios. Esto significa que nunca debe revelar en ningún lugar si una dirección de correo electrónico en particular está en uso en el sistema. Esto incluye formularios de registro, formularios de contraseña olvidada e inicio de sesión. Consulte esta respuesta .
En algunos sistemas, esto no se considera una vulnerabilidad. P.ej. de todos modos, los nombres de usuario de webmail son públicos (todo el mundo sabe que [email protected] tiene una cuenta en gmail), o redes sociales a gran escala como Facebook, donde el número de personas con una cuenta es prácticamente todo el mundo y no hay mucho que ganar. restringir una lista de direcciones de correo electrónico para aquellos con cuentas.
Lea otras preguntas en las etiquetas authentication attacks