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

您认为这是一个好的要求吗?

你有什么充分的理由不这样做吗?

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

编辑:这是 不是 关于密码。我们对此已经有类似的要求,我并不反对。

有帮助吗?

解决方案

反对这一点的一个论点是,其他领域的许多用户名/ID 不需要数字组件。用户更有可能更好地记住他们在其他地方使用过的用户 ID——如果他们不需要包含数字,则更有可能记住这一点。

此外,根据系统的不同,在连接到外部系统时,用户 ID 可以作为默认值正常工作(ssh 在类 UNIX 系统下以这种方式运行)。在这种情况下,拥有一个在系统之间共享的 ID 显然是有益的。

在多个地方使用相同的 ID 可以提高一致性,这是良好软件界面的一个众所周知的方面。展示人们与系统交互的方式并不难 用户界面,并且应该遵守(至少是一些)众所周知的界面指南。(显然,如果您正在考虑多个可能未知的系统之间的交互,那么键盘快捷键之类的想法毫无意义,但是诸如一致性之类的方面 申请。)

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

其他提示

我首先会询问他们背后的具体原因。一旦你有了一个要点列表和原因,就更容易反驳或提供替代方案。

至于一般想法:

  • 这是观点,但在用户名中添加数字并不一定会提高安全性。人们在便利贴上写下用户名,大多数用户只会在用户名的开头或结尾添加“1”,这样很容易被猜到。
  • 从可用性的角度来看,这很糟糕,因为它打破了规范。强迫他们在用户名中添加数字只会导致上述问题。他们只需在用户名的末尾或开头添加“1”即可。

请记住,身份验证系统越复杂,普通用户就越有可能找到绕过它并削弱其在链条中的链接的可能性。

用户ID?要求密码为字母数字通常是一个好主意,因为这使它们更能抵抗字典攻击。对于用户名来说,这实际上没有任何意义。拥有名称/密码组合的全部意义在于名称部分不必保密。

如果您在金融机构工作,可能有关于此类事情的规定,因此这很可能超出您的控制范围。但您可以做的一件事是让用户清楚地知道他输入了无效的 ID。不要等到他点击提交;在字段旁边显示某种消息,并在他键入时更新它。

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

不这样做的理由:如果您对用户施加的限制比他们习惯的更多,他们将开始写下登录信息,这显然会损害安全性。

我的两个银行帐户都需要一个字母数字用户名和两个密码才能在线登录。其中一张还有一个我必须记住的形象。这两个密码必须每月左右更改一次。因此,我将所有登录信息都保存在一个文本文件中。(即使看它也没有任何意义;我得去银行重新重置密码。6 次登录总共重置 7 次密码。谈安全,更谈不上 可以访问我的帐户。)

如果它在他们的密码中就好了(唉,金融公司喜欢拒绝你这种安全权利[我正在和你谈论美国运通])。

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

当致电寻求支持时,(大概)需要在电话中引用用户名,以便与密码不同,它会被公开。此外,用户名字段不会像密码字段那样在浏览器中被屏蔽,因此它将有更多的暴露并在不同的地方被缓存/记录,因此增加的安全性的“好处”将立即消失。

而且你做的事情越困难,用户就越有可能将其写在某个地方,这再次破坏了安全性(实际上同样适用于密码策略,但那是另一个故事了!)

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

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

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

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

用户名不一致会增加许多特定风险:

  1. 这将使审计跟踪更难跟踪(严重的安全风险)。
  2. 如果您稍后开始使用,可能会增加成本 单点登录.
  3. 这会导致糟糕的用户体验,因为用户必须记住该应用程序使用了奇怪的用户名。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top