我目前正在开发一个 Web 应用程序,它的功能存在重大安全风险。我们使用 Microsoft 身份框架来处理用户登录,系统强制使用强密码和注册,在首次使用之前需要额外的电子邮件确认层。
我们有一种感觉,这还不够。我们的一个竞争对手使用带有密码的两步登录系统,然后用户通过下拉菜单从六位数的 PIN 中输入三位数。有人建议我们应该复制这个。
就个人而言,如果没有更好地了解它与替代方案的优缺点,我对实施这样的解决方案感到不舒服。让我感到震惊的是,不受键盘记录影响的额外数据层条目并不是一项重要的额外安全措施。当然,如果攻击者已经拥有电子邮件/密码组合,那么几乎任何他们可以获得的可能的方式也会导致他们拥有 PIN 码?
加强安全性的明显替代方法是通过 SMS 进行双重身份验证。这会产生成本,但如果安全是最重要的,它似乎实际上通过 PIN 为系统增加了重要的保护,我相信几乎不会增加任何内容。
进行额外的 PIN 身份验证有什么意义?与 2 因素身份验证相比,它有什么优势吗?
编辑:提议的 PIN 解决方案将通过电子邮件向用户随机生成一个 6 位数字。登录网站时,他们首先必须输入密码(当然,密码可能由浏览器存储)。如果成功,他们将被要求通过下拉框从六位数字中随机选择三位(即输入您的 PIN 中的第一个、第二个和第五个字符)。
回想起来,我想这至少可以阻止依赖浏览器存储密码的人进行未经授权的访问。