这些用户名要求可能导致用户名难以预测。我不认为这会带来实质性的安全性改进,但我可以想到几个场景,它们会有所帮助。我怀疑它是否抵消了可用性的损失,但我缺乏具体的证据来得出结论。像往常一样,以牺牲可用性为代价的安全是以牺牲安全为代价的。:如果用户更有可能忘记他们的用户名,这意味着他们要么必须将用户名存储在不安全的位置(违背目的),要么必须有办法让他们恢复他们的用户名(这可能不是强认证)。
不太可预测的用户名可以提高隐私性。如果我尝试创建一个johnsmith
帐户但由于该用户名已被使用而失败,这告诉我 John Smith 正在与该公司进行银行业务。如果 John Smith 的帐户是johnsmith1
,我需要枚举更多用户名。但是,对于用户选择的用户名,后缀1
是一个很好的选择。大多数网站都依赖电子邮件地址作为唯一标记——如果我想创建一个帐户john.smith@emailprovider.example.com
,我需要证明我可以阅读发送到该地址的电子邮件。银行通常不愿意依赖外部安全,因此他们往往不想依赖电子邮件提供商。
对银行的大量攻击是在家庭环境中执行的——配偶、孩子、访客等。不太可预测的用户名可以提高对可以访问受害者计算机但更有可能执行的临时攻击者的保密性机会主义攻击比认真研究他们的攻击。同样,对于用户选择的用户名,复杂性要求并没有显着提高:许多用户会将他们的用户名预先填写在浏览器中,如果他们不选择johnsmith1
,攻击者可能会知道变化因为他们彼此很了解。
不可预测的用户名还可以通过尝试大量用户名+密码组合直到找到弱的组合来提高对非目标攻击的防御能力。同样,必须尝试johnsmith1
除此之外johnsmith
并没有提供显着的改进。
至于不以X
……开头的用户 ID,它是一家银行。内心深处的某个地方是一个 COBOL 程序,该程序运行在一个模拟的 IBM big Iron 上,该程序运行在一个稍微更新的模拟 IBM big Iron 上,该程序运行在一个模拟 VAX 上,该 VAX 在 x86 处理器的虚拟机中运行。在您出生之前,有人认为通过X
在第 17 列中添加一个来指示已删除的记录是个好主意。被要求修复 Y2K 错误的 COBOL 程序员也提出修复这个问题,但被告知这超出了工作规范,他不能碰一些有效的东西(如果银行这样做可能会有所不同)导演的名字是泽维尔而不是乔治)。