使用 PIN 的两步网站登录过程提供了哪些额外的安全性?

信息安全 验证 密码 多因素 身份管理
2021-08-28 15:18:36

我目前正在开发一个 Web 应用程序,它的功能存在重大安全风险。我们使用 Microsoft 身份框架来处理用户登录,系统强制使用强密码和注册,在首次使用之前需要额外的电子邮件确认层。

我们有一种感觉,这还不够。我们的一个竞争对手使用带有密码的两步登录系统,然后用户通过下拉菜单从六位数的 PIN 中输入三位数。有人建议我们应该复制这个。

就个人而言,如果没有更好地了解它与替代方案的优缺点,我对实施这样的解决方案感到不舒服。让我感到震惊的是,不受键盘记录影响的额外数据层条目并不是一项重要的额外安全措施。当然,如果攻击者已经拥有电子邮件/密码组合,那么几乎任何他们可以获得的可能的方式也会导致他们拥有 PIN 码?

加强安全性的明显替代方法是通过 SMS 进行双重身份验证。这会产生成本,但如果安全是最重要的,它似乎实际上通过 PIN 为系统增加了重要的保护,我相信几乎不会增加任何内容。

进行额外的 PIN 身份验证有什么意义?与 2 因素身份验证相比,它有什么优势吗?

编辑:提议的 PIN 解决方案将通过电子邮件向用户随机生成一个 6 位数字。登录网站时,他们首先必须输入密码(当然,密码可能由浏览器存储)。如果成功,他们将被要求通过下拉框从六位数字中随机选择三位(即输入您的 PIN 中的第一个、第二个和第五个字符)。

回想起来,我想这至少可以阻止依赖浏览器存储密码的人进行未经授权的访问。

4个回答

我发现很难看出这可以提供哪些安全优势。在多因素身份验证中,重点是使用不同的因素——即“你知道的东西”、“你拥有的东西”、“你是什么东西”。只是重复两次相同的因素似乎有点毫无意义。

但让我推测一下目的可能是什么。

1.停止键盘记录器

只有愚蠢的恶意软件会尝试通过盲目地记录击键来获取密码。要求使用下拉菜单可以防止某些恶意软件,但最终在计算机已被感染时试图隐藏用户输入是一种失败的游戏。有关相关讨论,请参阅此问题最后,我认为这里的好处很小。

2.增加熵

如果您在密码中添加一个六位数的 PIN,那么您将获得 10 6倍的暴力组合或几乎 20 位额外的熵,对吗?(如果只计算输入的三位数字,则为 10 3次或 10 位。)是的,但为什么不只需要更长的密码呢?

也许您想将其一分为二,使一部分(PIN)真正随机化,从而为选择弱密码的用户提供保护。但这可以防止什么?对于在线攻击,您应该已经设置了速率限制来处理这个问题。对于离线攻击,您需要将 PIN 与密码一起散列以获得任何好处。但是,由于您只能提供六位数字中的三位登录,因此他们似乎没有这样做(除非他们为所有可能的数字组合保留 20 个哈希值)。

3.限制被盗密码的影响

假设您的密码被盗(例如在网络钓鱼攻击中)。如果攻击只执行一次,攻击者将只能获得一半的 PIN。因此,如果她被要求输入其他数字而不是她得到的数字,她将无法轻松登录。

我不认为这是一个很大的好处。只需重复攻击几次,或尝试多次(或从不同的 IP)登录,直到系统提示您输入您拥有的数字。

缺点

  • 它使用户更有可能在帖子或电子邮件中写下 PIN(可能还有密码)。
  • 您不能仅使用密码管理器登录。为什么让使用安全方法管理密码的人更难管理?

结论

我看不到任何安全优势可以促使用户记住一个额外的 PIN 并经历从下拉菜单中挑选号码的麻烦。对我来说,这是安全剧院的味道但也许我错过了一些东西。

编辑:是的,我确实错过了一些东西。超级猫的回答这是一个很好的观点,但我不确定我是否会认为它值得。

一个系统会锁定一个帐户,即使是暂时的,以响应无效的密码尝试,这将使对某人进行拒绝服务攻击变得非常容易。使用两部分身份验证可以在第二部分具有非常严格的锁定策略,同时仍能抵抗拒绝服务攻击。如果有人发现某人在一个系统上的密码是 Justin-Bieber,那么具有单部分密码的系统将无法使用该密码的变体(例如 Justin-Bieber1、Justin4Bieber 等)来区分有针对性的入侵尝试。 ) 来自旨在触发拒绝服务的随机密码条目。

将密码分成两部分意味着攻击者会注意到第一部分是正确的,但最有可能的奖励不会是访问该帐户,而只是能够触发对其进行锁定,直到真实用户通过其他部分进行身份验证方法; 由于用户会知道其他人拥有主密码,因此用户将更改该密码,使其无用。

如果您想要强身份验证而不需要发送 SMS 的费用,您可以将 TOTP 与Google 身份验证器应用程序一起使用。

事实上,pin 解决方案似乎并没有增加很多额外的安全性。我也不完全理解这个机制。他们从 6 位密码输入 3 位数字。他们是如何获得 6 位密码的,以及如何选择树数字?10^3 也不是一个很大的数字,这意味着如果不采取任何措施,引脚可能会被蛮力使用。如果您能阐明 pin 机制,我也许可以就其安全优势提供更多见解。

编辑:根据您的更新,这已经是两因素身份验证的弱形式,因为密码是通过电子邮件传达的。为什么电子邮件中的 6 位数字中有 3 位数字对我来说仍然是个谜。我说“弱”的原因是因为 3 位 PIN 码非常短,如果没有其他保护措施,可能会被暴力破解。

此外,防止键盘记录器记录密码的下拉选项是一种非常薄弱的​​保护形式。如果您具有记录击键的能力,您还可以检查选择了哪个数字。还是有人相信在某些情况下可以进行键盘记录但不能监控点击?也许在硬件键盘记录器中?

多因素身份验证的要点是要求来自多个来源的信息,以便如果用户以某种方式受到损害(比如他们将密码写在某处并被发现),那么仍然有一层安全保护防止帐户访问。

通常,这三种类型的身份验证信息是您的

  • 知道——比如你记住的密码或密码
  • 拥有- 您随身携带的电话或其他访问令牌
  • - 指纹或其他生物特征

密码和 pin 都被视为第一类,因此pin 可能不会增加太多额外的安全性,因为它们可能会同时受到损害(当然,没有/更少的键盘记录风险。但是什么如果信息是通过网络或其他形式的捕获截获的?)。

至于优势,没有更多信息很难说。在这种情况下,听起来拥有一个 pin 比使用“适当的”双因素身份验证系统更便宜。也许威胁模型是用户计算机上的键盘记录器,这可能是一个适当的修复。