SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

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

Pieter De Cremer
Veröffentlicht Okt 09, 2017
Zuletzt aktualisiert am 09. März 2026

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

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

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

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

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

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

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

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

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

Ressourcen anzeigen
Ressourcen anzeigen

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

Interessiert an mehr?

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

mehr erfahren

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.

Demo buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
作者
Pieter De Cremer
Veröffentlicht Okt 09, 2017

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Teilen auf:
LinkedIn-MarkenSozialx Logo

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

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

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

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

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

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

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

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

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

Ressourcen anzeigen
Ressourcen anzeigen

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen.

Wir möchten Ihre Erlaubnis einholen, Ihnen Informationen über unsere Produkte und/oder relevante Themen zur Sicherheit von Codes zuzusenden. Wir werden Ihre personenbezogenen Daten stets mit größter Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte die „Analyse“-Cookies. Nach Abschluss können Sie diese wieder deaktivieren.

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

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

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

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

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

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

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

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

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

Webinar ansehen
Fangen wir an.
mehr erfahren

Klicken Sie auf den folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.

Bericht anzeigenDemo buchen
Ressourcen anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Interessiert an mehr?

Teilen auf:
LinkedIn-MarkenSozialx Logo
作者
Pieter De Cremer
Veröffentlicht Okt 09, 2017

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Teilen auf:
LinkedIn-MarkenSozialx Logo

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

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

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

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

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

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

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

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

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

Verzeichnis

PDF herunterladen
Ressourcen anzeigen
Interessiert an mehr?

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

mehr erfahren

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.

Demo buchen下载
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge