我是否应该尽量减少通过帐户创建发现用户名的可能性?

Kzq*_*qai 1 security login username

所以我在我的系统中有登录帐户.

如果有人想要创建一个新帐户,显然他们不能使用相同的登录.

因此,帐户创建表单/系统本身允许用户发现系统中已存在的用户名(例如,如果您尝试使用用户名"Admin"创建帐户,它将允许或拒绝您,让您知道是否有用户名"管理员"来尝试密码与否.同样,如果您尝试创建一个帐户"john",它会告诉您是否存在约翰帐户并且您可以开始测试约翰的密码).

有没有办法减少这种影响?或者我应该不担心这种发现策略,并有效地假设用户名是公共信息?

Dav*_*ver 5

标准是假设用户名是公共的.

如果他们不是,我唯一可以建议的事情:

  • 分配用户名(例如,"您的用户名是5829103")
  • 强制所有名称都具有服务器分配的后缀(例如,wolever1242)
  • 随机拒绝用户名(即,使这种发现变得更难)

但是......所有这些都很糟糕.

一个更好的问题是:当攻击者获得用户名时,会打开哪些攻击媒介?一般情况下,并不是很多,并且可以通过其他策略来缓解这些策略(例如,限制每分钟每用户名的登录尝试次数,或者确保电话代表使用除用户名之外的某些秘密来验证呼叫者).