
Comment éviter l'énumération des noms d'utilisateur | Secure Code Warrior
Un ataque de canal lateral es cuando un hacker puede obtener información de la implementación física de un sistema de software en lugar de una debilidad teórica en el algoritmo o un error en el código del software.
Un ejemplo que me gusta utilizar para dejar esto más claro es una forma de hacer la enumeración de nombres de usuario. Si quieres saber qué es la enumeración de nombres de usuario o por qué es mala, visita nuestra página web para ver un vídeo explicativo o juega a un reto para ver si puedes identificarlo en el código.
Ahora, para entender cómo se puede hacer la enumeración de nombres de usuario a través de un ataque de canal lateral, es necesario tener un poco de conocimiento de cómo se manejan las contraseñas (o al menos deberían manejarse) en las aplicaciones web modernas. Una buena aplicación web no conoce tu contraseña, no guarda o almacena tu contraseña en ningún sitio. Entonces, ¿cómo sabe que lo que has escrito es correcto y que es tu contraseña? Bueno, tu contraseña está cifrada.
Una función hash es una operación matemática que es fácil de realizar en un sentido (aunque algo costosa desde el punto de vista computacional) pero muy difícil de revertir y, en el caso de los buenos algoritmos hash, la salida es única dependiendo de la entrada. Cuando te registras en un sitio web, ese hash se almacena de forma segura, no tu contraseña en sí. Esto significa que cada vez que te registras, la aplicación web realiza el hash de tu entrada y compara el resultado con el hash almacenado. Si quieres saber más sobre el almacenamiento seguro de contraseñas, puedes hacerlo en nuestra plataforma.

El hash de la entrada lleva algún tiempo en un ordenador y los desarrolladores siempre intentan optimizar todo lo que escriben para que los usuarios tengan una experiencia fluida. Una cosa que acelera el programa es omitir el hash cuando no es necesario. Por ejemplo, cuando el nombre de usuario no existe (y por tanto no hay que comprobar la contraseña) pueden responder al usuario inmediatamente. De esta manera, se puede omitir el lento cálculo de la contraseña. Si el nombre de usuario es correcto, se hará un hash de la contraseña introducida y se comparará con el hash almacenado.
Llegados a este punto, ya habrás adivinado dónde pueden ir mal las cosas. Aunque en realidad el hashing tarda sólo unos milisegundos, un hacker puede utilizar este retraso añadido para averiguar si el nombre de usuario que ha introducido es correcto o no, ya que un nombre de usuario incorrecto tendrá una respuesta ligeramente más rápida porque no se ha realizado el hashing. Este tipo de ataque de canal lateral se llama ataque de tiempo y es un buen ejemplo de cómo diferentes requisitos no funcionales pueden contrarrestarse entre sí. A veces el código no puede ser rápido y seguro al mismo tiempo.
Así que aunque las contraseñas se manejen perfectamente, y el mensaje que se muestra sea genérico y no avise de si la contraseña o el nombre de usuario eran incorrectos, el sistema sigue siendo vulnerable. La solución es fácil, siempre hash la contraseña o retrasar el envío de la respuesta el tiempo que tardaría en hash.
La información obtenida puede ser utilizada por un atacante para obtener una lista de usuarios en el sistema. Esta información puede ser utilizada para atacar la aplicación web, por ejemplo, a través de un ataque de fuerza bruta o de nombre de usuario/contraseña por defecto.


L'énumération des noms d'utilisateur se produit lorsque les pirates informatiques utilisent des attaques par force brute pour obtenir des informations sur le nom d'utilisateur et le mot de passe. Découvrez comment éviter l'énumération des noms d'utilisateur avec Secure Code Warrior.
Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.
Reserve una demostraciónChercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat


Un ataque de canal lateral es cuando un hacker puede obtener información de la implementación física de un sistema de software en lugar de una debilidad teórica en el algoritmo o un error en el código del software.
Un ejemplo que me gusta utilizar para dejar esto más claro es una forma de hacer la enumeración de nombres de usuario. Si quieres saber qué es la enumeración de nombres de usuario o por qué es mala, visita nuestra página web para ver un vídeo explicativo o juega a un reto para ver si puedes identificarlo en el código.
Ahora, para entender cómo se puede hacer la enumeración de nombres de usuario a través de un ataque de canal lateral, es necesario tener un poco de conocimiento de cómo se manejan las contraseñas (o al menos deberían manejarse) en las aplicaciones web modernas. Una buena aplicación web no conoce tu contraseña, no guarda o almacena tu contraseña en ningún sitio. Entonces, ¿cómo sabe que lo que has escrito es correcto y que es tu contraseña? Bueno, tu contraseña está cifrada.
Una función hash es una operación matemática que es fácil de realizar en un sentido (aunque algo costosa desde el punto de vista computacional) pero muy difícil de revertir y, en el caso de los buenos algoritmos hash, la salida es única dependiendo de la entrada. Cuando te registras en un sitio web, ese hash se almacena de forma segura, no tu contraseña en sí. Esto significa que cada vez que te registras, la aplicación web realiza el hash de tu entrada y compara el resultado con el hash almacenado. Si quieres saber más sobre el almacenamiento seguro de contraseñas, puedes hacerlo en nuestra plataforma.

El hash de la entrada lleva algún tiempo en un ordenador y los desarrolladores siempre intentan optimizar todo lo que escriben para que los usuarios tengan una experiencia fluida. Una cosa que acelera el programa es omitir el hash cuando no es necesario. Por ejemplo, cuando el nombre de usuario no existe (y por tanto no hay que comprobar la contraseña) pueden responder al usuario inmediatamente. De esta manera, se puede omitir el lento cálculo de la contraseña. Si el nombre de usuario es correcto, se hará un hash de la contraseña introducida y se comparará con el hash almacenado.
Llegados a este punto, ya habrás adivinado dónde pueden ir mal las cosas. Aunque en realidad el hashing tarda sólo unos milisegundos, un hacker puede utilizar este retraso añadido para averiguar si el nombre de usuario que ha introducido es correcto o no, ya que un nombre de usuario incorrecto tendrá una respuesta ligeramente más rápida porque no se ha realizado el hashing. Este tipo de ataque de canal lateral se llama ataque de tiempo y es un buen ejemplo de cómo diferentes requisitos no funcionales pueden contrarrestarse entre sí. A veces el código no puede ser rápido y seguro al mismo tiempo.
Así que aunque las contraseñas se manejen perfectamente, y el mensaje que se muestra sea genérico y no avise de si la contraseña o el nombre de usuario eran incorrectos, el sistema sigue siendo vulnerable. La solución es fácil, siempre hash la contraseña o retrasar el envío de la respuesta el tiempo que tardaría en hash.
La información obtenida puede ser utilizada por un atacante para obtener una lista de usuarios en el sistema. Esta información puede ser utilizada para atacar la aplicación web, por ejemplo, a través de un ataque de fuerza bruta o de nombre de usuario/contraseña por defecto.

Un ataque de canal lateral es cuando un hacker puede obtener información de la implementación física de un sistema de software en lugar de una debilidad teórica en el algoritmo o un error en el código del software.
Un ejemplo que me gusta utilizar para dejar esto más claro es una forma de hacer la enumeración de nombres de usuario. Si quieres saber qué es la enumeración de nombres de usuario o por qué es mala, visita nuestra página web para ver un vídeo explicativo o juega a un reto para ver si puedes identificarlo en el código.
Ahora, para entender cómo se puede hacer la enumeración de nombres de usuario a través de un ataque de canal lateral, es necesario tener un poco de conocimiento de cómo se manejan las contraseñas (o al menos deberían manejarse) en las aplicaciones web modernas. Una buena aplicación web no conoce tu contraseña, no guarda o almacena tu contraseña en ningún sitio. Entonces, ¿cómo sabe que lo que has escrito es correcto y que es tu contraseña? Bueno, tu contraseña está cifrada.
Una función hash es una operación matemática que es fácil de realizar en un sentido (aunque algo costosa desde el punto de vista computacional) pero muy difícil de revertir y, en el caso de los buenos algoritmos hash, la salida es única dependiendo de la entrada. Cuando te registras en un sitio web, ese hash se almacena de forma segura, no tu contraseña en sí. Esto significa que cada vez que te registras, la aplicación web realiza el hash de tu entrada y compara el resultado con el hash almacenado. Si quieres saber más sobre el almacenamiento seguro de contraseñas, puedes hacerlo en nuestra plataforma.

El hash de la entrada lleva algún tiempo en un ordenador y los desarrolladores siempre intentan optimizar todo lo que escriben para que los usuarios tengan una experiencia fluida. Una cosa que acelera el programa es omitir el hash cuando no es necesario. Por ejemplo, cuando el nombre de usuario no existe (y por tanto no hay que comprobar la contraseña) pueden responder al usuario inmediatamente. De esta manera, se puede omitir el lento cálculo de la contraseña. Si el nombre de usuario es correcto, se hará un hash de la contraseña introducida y se comparará con el hash almacenado.
Llegados a este punto, ya habrás adivinado dónde pueden ir mal las cosas. Aunque en realidad el hashing tarda sólo unos milisegundos, un hacker puede utilizar este retraso añadido para averiguar si el nombre de usuario que ha introducido es correcto o no, ya que un nombre de usuario incorrecto tendrá una respuesta ligeramente más rápida porque no se ha realizado el hashing. Este tipo de ataque de canal lateral se llama ataque de tiempo y es un buen ejemplo de cómo diferentes requisitos no funcionales pueden contrarrestarse entre sí. A veces el código no puede ser rápido y seguro al mismo tiempo.
Así que aunque las contraseñas se manejen perfectamente, y el mensaje que se muestra sea genérico y no avise de si la contraseña o el nombre de usuario eran incorrectos, el sistema sigue siendo vulnerable. La solución es fácil, siempre hash la contraseña o retrasar el envío de la respuesta el tiempo que tardaría en hash.
La información obtenida puede ser utilizada por un atacante para obtener una lista de usuarios en el sistema. Esta información puede ser utilizada para atacar la aplicación web, por ejemplo, a través de un ataque de fuerza bruta o de nombre de usuario/contraseña por defecto.

Haga clic en el enlace siguiente y descargue el PDF de este recurso.
Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.
Mostrar el informeReserve una demostraciónChercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat
Un ataque de canal lateral es cuando un hacker puede obtener información de la implementación física de un sistema de software en lugar de una debilidad teórica en el algoritmo o un error en el código del software.
Un ejemplo que me gusta utilizar para dejar esto más claro es una forma de hacer la enumeración de nombres de usuario. Si quieres saber qué es la enumeración de nombres de usuario o por qué es mala, visita nuestra página web para ver un vídeo explicativo o juega a un reto para ver si puedes identificarlo en el código.
Ahora, para entender cómo se puede hacer la enumeración de nombres de usuario a través de un ataque de canal lateral, es necesario tener un poco de conocimiento de cómo se manejan las contraseñas (o al menos deberían manejarse) en las aplicaciones web modernas. Una buena aplicación web no conoce tu contraseña, no guarda o almacena tu contraseña en ningún sitio. Entonces, ¿cómo sabe que lo que has escrito es correcto y que es tu contraseña? Bueno, tu contraseña está cifrada.
Una función hash es una operación matemática que es fácil de realizar en un sentido (aunque algo costosa desde el punto de vista computacional) pero muy difícil de revertir y, en el caso de los buenos algoritmos hash, la salida es única dependiendo de la entrada. Cuando te registras en un sitio web, ese hash se almacena de forma segura, no tu contraseña en sí. Esto significa que cada vez que te registras, la aplicación web realiza el hash de tu entrada y compara el resultado con el hash almacenado. Si quieres saber más sobre el almacenamiento seguro de contraseñas, puedes hacerlo en nuestra plataforma.

El hash de la entrada lleva algún tiempo en un ordenador y los desarrolladores siempre intentan optimizar todo lo que escriben para que los usuarios tengan una experiencia fluida. Una cosa que acelera el programa es omitir el hash cuando no es necesario. Por ejemplo, cuando el nombre de usuario no existe (y por tanto no hay que comprobar la contraseña) pueden responder al usuario inmediatamente. De esta manera, se puede omitir el lento cálculo de la contraseña. Si el nombre de usuario es correcto, se hará un hash de la contraseña introducida y se comparará con el hash almacenado.
Llegados a este punto, ya habrás adivinado dónde pueden ir mal las cosas. Aunque en realidad el hashing tarda sólo unos milisegundos, un hacker puede utilizar este retraso añadido para averiguar si el nombre de usuario que ha introducido es correcto o no, ya que un nombre de usuario incorrecto tendrá una respuesta ligeramente más rápida porque no se ha realizado el hashing. Este tipo de ataque de canal lateral se llama ataque de tiempo y es un buen ejemplo de cómo diferentes requisitos no funcionales pueden contrarrestarse entre sí. A veces el código no puede ser rápido y seguro al mismo tiempo.
Así que aunque las contraseñas se manejen perfectamente, y el mensaje que se muestra sea genérico y no avise de si la contraseña o el nombre de usuario eran incorrectos, el sistema sigue siendo vulnerable. La solución es fácil, siempre hash la contraseña o retrasar el envío de la respuesta el tiempo que tardaría en hash.
La información obtenida puede ser utilizada por un atacante para obtener una lista de usuarios en el sistema. Esta información puede ser utilizada para atacar la aplicación web, por ejemplo, a través de un ataque de fuerza bruta o de nombre de usuario/contraseña por defecto.
Índice
Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.
Reserve una demostraciónDescargarRecursos para ayudarle a empezar
Temas y contenidos de formación sobre el código seguro
Nuestro contenido de vanguardia evoluciona constantemente para adaptarse al panorama en constante cambio del desarrollo de software, teniendo en cuenta su función. Temas que abarcan desde la IA hasta la inyección de XQuery, ofrecidos para una variedad de puestos, desde arquitectos hasta ingenieros, pasando por jefes de producto y control de calidad. Descubra una visión general de lo que nuestro catálogo de contenidos tiene para ofrecer por tema y por función.
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
Recursos para ayudarle a empezar
Cybermon está de vuelta: las missions Beat the Boss ya están disponibles bajo demanda.
Cybermon 2025 Beat the Boss ya está disponible todo el año en SCW. Implemente desafíos de seguridad avanzados relacionados con la IA y el LLM para reforzar el desarrollo seguro de la IA a gran escala.
Explicación de la ley sobre ciberresiliencia: lo que significa para el desarrollo de software seguro desde el diseño.
Descubra qué exige la ley europea sobre ciberresiliencia (CRA), a quién se aplica y cómo los equipos de ingenieros pueden prepararse mediante prácticas de seguridad desde el diseño, la prevención de vulnerabilidades y el refuerzo de las capacidades de los desarrolladores.
Facilitador 1: Criterios de éxito definidos y medibles
El facilitador 1 da inicio a nuestra serie de 10 partes titulada «Facilitadores del éxito», mostrando cómo combinar la codificación segura con resultados comerciales, como la reducción de riesgos y la rapidez, para garantizar la madurez a largo plazo de los programas.




%20(1).avif)
.avif)
