2015-05-29 52 views
2

我有一个问题。当其中一个凭据错误(如用户名或密码)时,为什么Gmail会输出类似The email and password that you entered don't match的消息。为什么他们不扔,这将是很容易理解的用户喜欢的错误:为什么Gmail没有指出在登录失败时是否是不正确的用户名或密码?

  1. 如果用户名是有效的,但不是密码,那么它应该抛出一个 消息像Password does not match.

  2. 如果密码有效,但不是用户名,那么它应该抛出 消息,如Username does not match.

为什么他们在每种情况下都会抛出类似The email and password that you entered don't match的消息?

在抛出错误消息时是否存在安全问题?

+0

问题已回答,或者您想让我详细说明一下我的(并举例说明)? – Juxhin

回答

3

事实上,new Gmail login page does not do that - 它要求你在步骤1中输入您的用户名,然后你在步骤2中

如果您揭示是否存在一个账户你打开一个username enumeration漏洞密码。

作为一个攻击者,如果我可以用你的账号或忘记密码的页面 缩小10000个目标我的名单到1000个的目标,我会:攻击者在密码中使用猜测或网络钓鱼的攻击,这非常有用。

请注意,某些系统(例如Gmail或Facebook)的用户名被视为公共名称,因此这不属于特别高风险的漏洞。但是,如果您运行“约翰的约会网站”(或Ashley Madison),并且Alice可以通过尝试使用Bob的电子邮件作为用户名的登录表单来查明她的丈夫Bob是否是会员,那么您有隐私问题在你的手上。有趣的写在这里:Your affairs were never discreet – Ashley Madison always disclosed customer identities。他们修正了他们的用户枚举错误,但不完全。

此外,你所做的第二点是不可能的。如果用户输入了无效的用户名,但输入了有效的密码,则认证系统将无法确定密码是否正确,因为它不知道验证用户名。即使它可以,揭示至少有一个用户拥有该密码将是一个安全问题。

+0

@Rahul - 看看SilverlightFox的回答以及他提出的重要隐私问题 – Juxhin

1

是啊我会想象如果他们说某个用户名是有效的那么该用户名可以被定位为黑客。

2

因为那个错误信息太冗长了,并且帮助黑客通过系统,如果他对登录页面进行暴力破解(因为他知道哪个字段是正确的)。极不愿意给出详细的错误信息,如Username is correct however password does not match。注 - 并不一定意味着黑客只会通过系统暴力破解;当Web应用程序返回详细错误时,bruteforce恰好是一种常用方法。

相关问题