强制字母数字用户ID

时间:2020-03-06 14:23:54  来源:igfitidea点击:

我是一家金融机构的程序员。最近有人告诉我要强制所有新用户ID至少包含一个字母和一个数字。我立即认为这是一个可怕的想法,我宁愿不实施它,因为我认为这是一种反功能并且用户体验很差。问题是我没有很好的理由不执行此要求。

我们认为这是一个很好的要求吗?

我们是否有充分的理由不这样做?

我们知道我可以参考的任何研究吗?

Edit: This is not in regards to the password.  We already have similar requirements for that, which I am not opposed to.

解决方案

最好使用密码(例如,金融公司喜欢拒绝我们这种安全权[我正在与我们联系美国运通])。

用户名,我说不,除非他们愿意。

用户名?通常要求将密码设置为字母数字,因为这样可以使密码更能抵抗字典攻击。用户名实际上没有任何意义。具有名称/密码组合的全部要点是名称部分不必保密。

一个反对的说法是,其他区域的许多用户名/ ID不需要数字部分。用户更有可能记住他们在其他地方使用过的用户ID,如果他们不需要包含数字,则更有可能记住该用户ID。

此外,取决于系统,在连接到外部系统时,用户ID可以作为默认值很好地工作(在类似Unix的系统上,ssh的行为方式是这样)。在这种情况下,拥有一个在系统之间共享的ID显然是有益的。

在多个位置使用相同的ID可以提高一致性,这是良好软件界面的众所周知的方面。并不难证明人们与系统交互的方式是用户界面,并且应该遵守(至少是某些)众所周知的界面准则。 (显然,如果我们考虑多个(可能是未知的)系统之间的交互,则诸如键盘快捷键之类的想法是没有意义的,但诸如一致性之类的方面确实适用。)

编辑:我假设此讨论是关于用户名或者公开可见的ID,而不是与安全性直接相关的事情,例如密码。

首先,请问他们背后的具体原因。一旦有了要点列表和原因,就可以更容易地反驳或者提供其他选择。

至于一般的想法:

  • 这是意见,但在用户名中添加数字并不一定会提高安全性。人们会在便笺上写下用户名,大多数用户只会在用户名的开头或者结尾添加" 1",以便于猜测。
  • 从可用性的角度来看,这很糟糕,因为它违反了规范。强迫他们在用户名中添加数字只会导致上述问题。他们只会在用户名的末尾添加一个" 1"。

请记住,身份验证系统越复杂,普通用户就越有可能找到规避身份验证并使其链中的链弱的方法。

打电话寻求支持时,(可能)需要在电话上引用用户名,以便与密码不同而将其公开。此外,用户名字段不会像密码字段那样在浏览器中被屏蔽,因此它将具有更多的公开性,并会在各个地方进行缓存/记录,因此添加安全性的"好处"将很快被撤销。

而且我们做的事情越困难,用户越有可能将其写下来,这再次破坏了安全性(实际上,密码策略也是如此,但这又是另一回事了!)

如果我们在金融机构工作,可能会有关于此类事情的法规,因此很可能是我们无法控制的。但是,我们可以做的一件事就是在用户输入无效ID时让用户清楚知道。并且不要等到他点击提交;在字段旁边显示某种消息,并在他键入内容时对其进行更新。

我也在一家金融机构工作,我们的用户名(真实的人名和生产ID)都是小写字母,字母,最多8个字符,我从来没有认为这是个问题...避免了0 vs O,1 vs. I和8 vs B,除非我们与我在同一家公司工作,并且即将实施新政策...

上面的几个答案存在反驳:如果用户选择在其他站点上使用的相同用户名,那么他们也有可能为金融站点选择相同或者相似的密码,从而降低了安全性。

不这样做的原因:如果我们对用户施加了比以往更多的限制,他们将开始写下登录信息,这显然是安全性的损失。

我拥有的两个银行帐户均需要字母数字用户名和两个密码才能进行在线登录。其中之一也有我要记住的形象。这两个密码每个月必须更改一次。因此,我将所有登录信息都保存在一个文本文件中。 (即使看着它也没有任何意义;我必须到银行去再次重置我的密码。这总共为6次登录重置了7次密码。谈论安全性,甚至我都无法访问我的密码帐户。)

添加任何功能都会增加成本。现在将需要时间来构建和测试它,并在将来对其进行支持。没有充分的理由就不应构建任何功能。

此功能毫无意义。用户名不应被保密,因此拥有强大的用户名没有任何优势。花费时间使密码(或者其他身份验证因素)变强可能值得,但是用户应该能够将其用户名传达给其他用户,而不会带来安全风险。

如果应用程序对用户ID的选择施加了额外的限制,那么应用程序中的某些用户ID将与环境中其他应用程序的用户ID不同。注意:我假设这是一个内部应用程序(供员工使用),而不是在面向Internet的应用程序中。

用户名不一致会带来许多特定的风险:

  • 这将使审核跟踪更难遵循(严重的安全风险)。
  • 如果我们以后开始使用单点登录,则可能会增加成本。
  • 由于用户必须记住该应用程序使用了奇怪的用户名,这将导致不良的用户体验。