Icônes SCW
héros bg sans séparateur
Blog

如何避免用户名枚举 | Secure Code Warrior

Pieter De Cremer
Publié le 09 octobre 2017
Dernière mise à jour le 9 mars 2026

侧信道攻击是指黑客可以从软件系统的物理实现中收集信息,而不是算法的理论弱点或软件代码中的错误。

我喜欢用一个例子来更清楚地说明这一点,那就是进行用户名枚举的方法。如果你想知道什么是用户名枚举或者为什么它不好,请访问我们的网站获取 视频解释 要么 玩一个挑战 看看你能否在代码中识别出来。

现在,为了了解如何通过侧信道攻击进行用户名枚举,您需要对现代 Web 应用程序中如何处理密码(或至少应该)有所了解。一个好的 Web 应用程序不知道你的密码,它不会在任何地方保存或存储你的密码。那么它怎么知道你输入的内容是正确的,实际上是你的密码呢?好吧,您的密码已被哈希处理。

哈希函数是一种数学运算,易于单向执行(尽管计算成本有些高),但很难逆转,对于良好的哈希算法来说,输出是唯一的,取决于输入。当您在网站上注册时,该哈希值是安全存储的,而不是您的密码本身。这意味着,每次登录时,Web 应用程序都会对您的输入进行哈希处理,并将哈希结果与存储的哈希值进行比较。如果你想了解更多 安全的密码存储,你可以在我们的平台上这样做。

在计算机上对输入进行哈希处理需要一些时间,开发人员总是尝试优化他们编写的所有内容,以使用户获得流畅的体验。加快程序运行速度的一件事是在不需要时跳过哈希运算。例如,当用户名不存在(因此无需检查密码)时,他们可以立即回复用户。这样,他们就可以跳过对密码进行哈希处理的缓慢计算。如果用户名正确,他们将对输入的密码进行哈希处理,并将其与存储的哈希值进行比较。

此时,你可能已经猜到哪里会出错。尽管实际上哈希处理只需要几毫秒,但黑客可以利用这种额外的延迟来确定他输入的用户名是否正确,因为错误的用户名会因为没有进行哈希处理而得到稍快的响应。这种侧信道攻击称为定时攻击,它是不同的非功能需求如何相互抵消的一个很好的例子。有时,代码不能同时又快速又安全。

因此,尽管密码处理得很完美,而且显示的消息是通用的,没有告知密码或用户名是否不正确,但系统仍然容易受到攻击。解决方案很简单,始终对密码进行哈希处理,或者延迟发送回复所需的哈希时间。

攻击者可以利用获得的信息来获取系统上的用户列表。这些信息可用于攻击 Web 应用程序,例如,通过暴力攻击或默认用户名/密码攻击。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

Veuillez consulter les ressources.
Veuillez consulter les ressources.

用户名枚举是指黑客使用暴力攻击来获取用户名和密码信息。使用安全代码勇士学习如何避免用户名枚举。

Souhaitez-vous en savoir davantage ?

Chercheur en sécurité applicative - Ingénieur R&D - Doctorant

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
Auteur
Pieter De Cremer
Publié le 09 octobre 2017

Chercheur en sécurité applicative - Ingénieur R&D - Doctorant

Partager sur :
marques LinkedInSocialLogo x

侧信道攻击是指黑客可以从软件系统的物理实现中收集信息,而不是算法的理论弱点或软件代码中的错误。

我喜欢用一个例子来更清楚地说明这一点,那就是进行用户名枚举的方法。如果你想知道什么是用户名枚举或者为什么它不好,请访问我们的网站获取 视频解释 要么 玩一个挑战 看看你能否在代码中识别出来。

现在,为了了解如何通过侧信道攻击进行用户名枚举,您需要对现代 Web 应用程序中如何处理密码(或至少应该)有所了解。一个好的 Web 应用程序不知道你的密码,它不会在任何地方保存或存储你的密码。那么它怎么知道你输入的内容是正确的,实际上是你的密码呢?好吧,您的密码已被哈希处理。

哈希函数是一种数学运算,易于单向执行(尽管计算成本有些高),但很难逆转,对于良好的哈希算法来说,输出是唯一的,取决于输入。当您在网站上注册时,该哈希值是安全存储的,而不是您的密码本身。这意味着,每次登录时,Web 应用程序都会对您的输入进行哈希处理,并将哈希结果与存储的哈希值进行比较。如果你想了解更多 安全的密码存储,你可以在我们的平台上这样做。

在计算机上对输入进行哈希处理需要一些时间,开发人员总是尝试优化他们编写的所有内容,以使用户获得流畅的体验。加快程序运行速度的一件事是在不需要时跳过哈希运算。例如,当用户名不存在(因此无需检查密码)时,他们可以立即回复用户。这样,他们就可以跳过对密码进行哈希处理的缓慢计算。如果用户名正确,他们将对输入的密码进行哈希处理,并将其与存储的哈希值进行比较。

此时,你可能已经猜到哪里会出错。尽管实际上哈希处理只需要几毫秒,但黑客可以利用这种额外的延迟来确定他输入的用户名是否正确,因为错误的用户名会因为没有进行哈希处理而得到稍快的响应。这种侧信道攻击称为定时攻击,它是不同的非功能需求如何相互抵消的一个很好的例子。有时,代码不能同时又快速又安全。

因此,尽管密码处理得很完美,而且显示的消息是通用的,没有告知密码或用户名是否不正确,但系统仍然容易受到攻击。解决方案很简单,始终对密码进行哈希处理,或者延迟发送回复所需的哈希时间。

攻击者可以利用获得的信息来获取系统上的用户列表。这些信息可用于攻击 Web 应用程序,例如,通过暴力攻击或默认用户名/密码攻击。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

Veuillez consulter les ressources.
Veuillez consulter les ressources.

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation afin de vous envoyer des informations concernant nos produits et/ou des sujets liés à la sécurité informatique. Nous traiterons toujours vos informations personnelles avec la plus grande confidentialité et ne les vendrons jamais à d'autres entreprises à des fins commerciales.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour soumettre le formulaire, veuillez activer les cookies analytiques. Une fois terminé, vous pouvez les désactiver à nouveau si vous le souhaitez.

侧信道攻击是指黑客可以从软件系统的物理实现中收集信息,而不是算法的理论弱点或软件代码中的错误。

我喜欢用一个例子来更清楚地说明这一点,那就是进行用户名枚举的方法。如果你想知道什么是用户名枚举或者为什么它不好,请访问我们的网站获取 视频解释 要么 玩一个挑战 看看你能否在代码中识别出来。

现在,为了了解如何通过侧信道攻击进行用户名枚举,您需要对现代 Web 应用程序中如何处理密码(或至少应该)有所了解。一个好的 Web 应用程序不知道你的密码,它不会在任何地方保存或存储你的密码。那么它怎么知道你输入的内容是正确的,实际上是你的密码呢?好吧,您的密码已被哈希处理。

哈希函数是一种数学运算,易于单向执行(尽管计算成本有些高),但很难逆转,对于良好的哈希算法来说,输出是唯一的,取决于输入。当您在网站上注册时,该哈希值是安全存储的,而不是您的密码本身。这意味着,每次登录时,Web 应用程序都会对您的输入进行哈希处理,并将哈希结果与存储的哈希值进行比较。如果你想了解更多 安全的密码存储,你可以在我们的平台上这样做。

在计算机上对输入进行哈希处理需要一些时间,开发人员总是尝试优化他们编写的所有内容,以使用户获得流畅的体验。加快程序运行速度的一件事是在不需要时跳过哈希运算。例如,当用户名不存在(因此无需检查密码)时,他们可以立即回复用户。这样,他们就可以跳过对密码进行哈希处理的缓慢计算。如果用户名正确,他们将对输入的密码进行哈希处理,并将其与存储的哈希值进行比较。

此时,你可能已经猜到哪里会出错。尽管实际上哈希处理只需要几毫秒,但黑客可以利用这种额外的延迟来确定他输入的用户名是否正确,因为错误的用户名会因为没有进行哈希处理而得到稍快的响应。这种侧信道攻击称为定时攻击,它是不同的非功能需求如何相互抵消的一个很好的例子。有时,代码不能同时又快速又安全。

因此,尽管密码处理得很完美,而且显示的消息是通用的,没有告知密码或用户名是否不正确,但系统仍然容易受到攻击。解决方案很简单,始终对密码进行哈希处理,或者延迟发送回复所需的哈希时间。

攻击者可以利用获得的信息来获取系统上的用户列表。这些信息可用于攻击 Web 应用程序,例如,通过暴力攻击或默认用户名/密码攻击。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

Visionner le webinaire
Commençons.
En savoir plus

Veuillez cliquer sur le lien ci-dessous pour télécharger le PDF de cette ressource.

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez consulter le rapport.Veuillez réserver une démonstration.
Télécharger le PDF
Veuillez consulter les ressources.
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Pieter De Cremer
Publié le 09 octobre 2017

Chercheur en sécurité applicative - Ingénieur R&D - Doctorant

Partager sur :
marques LinkedInSocialLogo x

侧信道攻击是指黑客可以从软件系统的物理实现中收集信息,而不是算法的理论弱点或软件代码中的错误。

我喜欢用一个例子来更清楚地说明这一点,那就是进行用户名枚举的方法。如果你想知道什么是用户名枚举或者为什么它不好,请访问我们的网站获取 视频解释 要么 玩一个挑战 看看你能否在代码中识别出来。

现在,为了了解如何通过侧信道攻击进行用户名枚举,您需要对现代 Web 应用程序中如何处理密码(或至少应该)有所了解。一个好的 Web 应用程序不知道你的密码,它不会在任何地方保存或存储你的密码。那么它怎么知道你输入的内容是正确的,实际上是你的密码呢?好吧,您的密码已被哈希处理。

哈希函数是一种数学运算,易于单向执行(尽管计算成本有些高),但很难逆转,对于良好的哈希算法来说,输出是唯一的,取决于输入。当您在网站上注册时,该哈希值是安全存储的,而不是您的密码本身。这意味着,每次登录时,Web 应用程序都会对您的输入进行哈希处理,并将哈希结果与存储的哈希值进行比较。如果你想了解更多 安全的密码存储,你可以在我们的平台上这样做。

在计算机上对输入进行哈希处理需要一些时间,开发人员总是尝试优化他们编写的所有内容,以使用户获得流畅的体验。加快程序运行速度的一件事是在不需要时跳过哈希运算。例如,当用户名不存在(因此无需检查密码)时,他们可以立即回复用户。这样,他们就可以跳过对密码进行哈希处理的缓慢计算。如果用户名正确,他们将对输入的密码进行哈希处理,并将其与存储的哈希值进行比较。

此时,你可能已经猜到哪里会出错。尽管实际上哈希处理只需要几毫秒,但黑客可以利用这种额外的延迟来确定他输入的用户名是否正确,因为错误的用户名会因为没有进行哈希处理而得到稍快的响应。这种侧信道攻击称为定时攻击,它是不同的非功能需求如何相互抵消的一个很好的例子。有时,代码不能同时又快速又安全。

因此,尽管密码处理得很完美,而且显示的消息是通用的,没有告知密码或用户名是否不正确,但系统仍然容易受到攻击。解决方案很简单,始终对密码进行哈希处理,或者延迟发送回复所需的哈希时间。

攻击者可以利用获得的信息来获取系统上的用户列表。这些信息可用于攻击 Web 应用程序,例如,通过暴力攻击或默认用户名/密码攻击。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

Table des matières

Télécharger le PDF
Veuillez consulter les ressources.
Souhaitez-vous en savoir davantage ?

Chercheur en sécurité applicative - Ingénieur R&D - Doctorant

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles