SCW 아이콘
영웅 배경, 구분선 없음
블로그

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

피터 드 크레머
2017년 10월 09일 게시
마지막 업데이트: 2026년 3월 9일

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

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

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

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

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

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

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

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

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

리소스 보기
리소스 보기

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

더 많은 것에 관심이 있으신가요?

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약
공유하기:
링크드인 브랜드사회적x 로고
저자
피터 드 크레머
2017년 10월 9일 게시

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

공유하기:
링크드인 브랜드사회적x 로고

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

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

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

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

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

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

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

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

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

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요

귀하의 허락을 받아 저희 제품 및/또는 관련 보안 코딩 주제에 관한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 매우 신중하게 취급되며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 "분석" 쿠키를 활성화하십시오. 완료 후에는 원할 때 다시 비활성화할 수 있습니다.

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

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

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

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

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

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

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

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

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

웹 세미나 시청
시작하자
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 많은 것에 관심이 있으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
피터 드 크레머
2017년 10월 9일 게시

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

공유하기:
링크드인 브랜드사회적x 로고

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

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

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

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

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

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

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

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

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

목록

PDF 다운로드
리소스 보기
더 많은 것에 관심이 있으신가요?

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물