为什么Gmail在登录失败时不提示是用户名还是密码错误?
Why doesn't Gmail indicate whether it is the username or password that is incorrect when a login fails?
我有一个问题。为什么当其中一个凭据(如用户名或密码)错误时,Gmail 会抛出类似 The email and password that you entered don't match
的消息。为什么他们不抛出用户容易理解的错误,例如:
如果用户名有效但密码无效,那么它应该抛出一个
类似 Password does not match.
.
的消息
如果密码有效但用户名无效,那么它应该抛出一个
类似 Username does not match.
.
的消息
为什么他们每次都抛出 The email and password that you entered don't match
之类的消息?
在抛出的错误消息方面更加具体是否存在安全问题?
是的,我想如果他们说某个用户名是有效的,那么该用户名就可以成为黑客攻击的目标。
因为该错误消息过于冗长,如果他要对登录页面进行暴力破解,则可以帮助黑客通过系统(因为他会知道哪个字段是正确的)。强烈建议不要提供冗长的错误消息,例如 Username is correct however password does not match
。注意 - 并不一定意味着黑客只会通过系统进行暴力破解;当 Web 应用程序返回详细错误时,bruteforce 恰好是一种常用方法。
实际上,new Gmail login page does not do that - 它要求您在第 1 步中输入用户名,然后在第 2 步中输入密码。
如果您透露一个帐户是否存在,您就是在打开一个 username enumeration 漏洞。这对于攻击者用于密码猜测或网络钓鱼攻击很有用:
As an attacker if I can use your login or forgotten password page to
narrow my list from 10000 targets to 1000 targets, I will.
请注意,某些系统(如 Gmail 或 Facebook)会考虑用户名 public,因此这不属于特别高风险的漏洞。
但是,如果您 运行 "John's Dating Site"(或 Ashley Madison)和 Alice 可以简单地通过使用 Bob 的电子邮件作为用户名尝试登录表单来确定她的丈夫 Bob 是否是会员,那么您手上有隐私问题。有趣的写在这里:Your affairs were never discreet – Ashley Madison always disclosed customer identities。他们几乎 修复了他们的用户枚举错误,但还没有完全修复。
另外,你说的第二点也不可能。如果用户输入了无效的用户名但输入了有效的密码,身份验证系统将无法确定密码是否正确,因为它不知道要验证哪个用户名。即使可以,透露至少一个用户拥有该密码也是一个安全问题。
我有一个问题。为什么当其中一个凭据(如用户名或密码)错误时,Gmail 会抛出类似 The email and password that you entered don't match
的消息。为什么他们不抛出用户容易理解的错误,例如:
如果用户名有效但密码无效,那么它应该抛出一个 类似
Password does not match.
. 的消息
如果密码有效但用户名无效,那么它应该抛出一个 类似
Username does not match.
. 的消息
为什么他们每次都抛出 The email and password that you entered don't match
之类的消息?
在抛出的错误消息方面更加具体是否存在安全问题?
是的,我想如果他们说某个用户名是有效的,那么该用户名就可以成为黑客攻击的目标。
因为该错误消息过于冗长,如果他要对登录页面进行暴力破解,则可以帮助黑客通过系统(因为他会知道哪个字段是正确的)。强烈建议不要提供冗长的错误消息,例如 Username is correct however password does not match
。注意 - 并不一定意味着黑客只会通过系统进行暴力破解;当 Web 应用程序返回详细错误时,bruteforce 恰好是一种常用方法。
实际上,new Gmail login page does not do that - 它要求您在第 1 步中输入用户名,然后在第 2 步中输入密码。
如果您透露一个帐户是否存在,您就是在打开一个 username enumeration 漏洞。这对于攻击者用于密码猜测或网络钓鱼攻击很有用:
As an attacker if I can use your login or forgotten password page to narrow my list from 10000 targets to 1000 targets, I will.
请注意,某些系统(如 Gmail 或 Facebook)会考虑用户名 public,因此这不属于特别高风险的漏洞。
但是,如果您 运行 "John's Dating Site"(或 Ashley Madison)和 Alice 可以简单地通过使用 Bob 的电子邮件作为用户名尝试登录表单来确定她的丈夫 Bob 是否是会员,那么您手上有隐私问题。有趣的写在这里:Your affairs were never discreet – Ashley Madison always disclosed customer identities。他们几乎 修复了他们的用户枚举错误,但还没有完全修复。
另外,你说的第二点也不可能。如果用户输入了无效的用户名但输入了有效的密码,身份验证系统将无法确定密码是否正确,因为它不知道要验证哪个用户名。即使可以,透露至少一个用户拥有该密码也是一个安全问题。