login - 单一密码与密码和用户名

标签 login

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。

10年前关闭。




Improve this question




密码和用户名比仅作为登录名的单一密码提供哪些安全优势?

如果用户名必须是唯一的,则其他用户不能拥有该用户名,并且用户可以映射到具有该 ID 的用户帐户。当攻击者对用户名和密码进行暴力破解时,与攻击者对单个密码的暴力破解相同。但是使用单一密码攻击者可以尝试使用相同的密码暴力破解访问所有帐户。

登录到应用程序后,您的 session 使用单个密码进行身份验证,即 session ID。因此攻击者可以尝试通过暴力破解 session ID 来登录所有帐户。当然, session ID 通常很长,因此很难暴力破解。

如果应用程序自动生成密码 token 并为映射到特定用户的密码添加始终唯一的前缀(前缀的长度存储在数据库中)会怎样。所以该密码实际上是用户名和密码的组合,但用户不知道吗?这种设置是否与用​​户名和密码系统具有相同的安全性?

最佳答案

在考虑单一密码方法时,我可以看到许多可能的问题,例如,如果您允许用户设置自己的密码,那么仅使用密码作为登录凭据会使您的应用程序面临大量安全漏洞。

最常见的情况是用户将注册并使用密码,例如他们的姓名,或其他一些常用的不安全密码,因此很容易暴力破解。

还要考虑这样一个事实,即随着用户数量的增加,访问您网站的可接受密码的数量也在增加,这使得暴力攻击更容易起作用。即使使用自动生成的密码,这也是我关心的最大问题。

第三,我来尝试注册你的网站,我输入我的密码“Bob1”现在如果另一个用户输入了密码“Bob1”怎么办?你告诉我密码存在吗?两个用户不能使用相同的密码登录不同的帐户。

这里要考虑的主要问题是用户习惯于输入用户名和密码。我个人不想注册一个只需要输入密码的网站,最重要的是我不想使用一个密码是自动生成且难以记住的网站。

如果您担心安全性(应该如此),那么我建议您执行严格的密码规则(到期时间、长度、内容)并让您的用户了解不安全密码的缺陷。在创建密码时,您可以检查它与用户输入的任何信息(例如姓名/出生日期等)不匹配。

总的来说,出于安全性和可用性的原因,我会说用户名/密码组合比单个密码更好。
另见 http://xkcd.com/936/

关于login - 单一密码与密码和用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964889/

相关文章:

asp.net - 未显示登录用户名

ubuntu - 权限被拒绝(公钥、密码)。在使用 ssh 登录时

authentication - CakeDC 用户插件 - 是否有文档?

php - 需要帮助创建自定义用户注册/登录脚本

login - 内部注册与 OpenID 与 Google friend 群与 Facebook 连接与(等)

CakePHP 检查 session 存在于数据库中

php - react 本地错误,登录

forms - 使用 Lift 在 Scala 中创建登录/注销表单的最佳方法

django - 如何登录? Django TastyPie with ApiKeyAuthentication 实际认证过程

php - 检查用户是否使用 session 而不是数据库查询登录