为什么密码管理器会提供对 OTP 代码的支持?

信息安全 验证 密码 密码管理 多因素
2021-09-02 16:32:44

谁能解释一下在同一服务上提供密码和 OTP 代码的趋势是什么?他们试图带来什么好处或价值?

作为安全专业人士,我们长期以来一直在为采用 2FA 而奋斗,现在我们的覆盖范围越来越广,密码管理器越来越多地同时提供密码和 OTP 的支持,从而违背了多重因素的目的。验证。

有人会说,从目标服务的角度来看,2FA 的好处仍然存在,但是来吧,如果平均 Joe 有 15 个在线身份,现在只需要攻击其中一个(密码管理器),如果用户也使用该服务来存储 OTP 代码...... GG WP。

3个回答

密码管理员还希望管理 OTP,因为他们的业务是使身份验证更容易

但有一个权衡。

在与密码相同的地方管理 OTP(或任何其他真正的附加因素)会改变风险模型。它将多个独立因素汇集到一个攻击面中。这会将运行密码管理器的系统变成更高价值的目标。

增加的风险对于一般用户来说可能是可以接受的,但对于目标/高风险用户来说风险更大。(我的其余答案将高风险用户作为更有趣的案例。)

相比之下,如果 OTP 代码存储在独立的设备上,那么托管密码管理器的系统(虽然仍然很糟糕)不会提供对存储在密码管理器中的所有帐户的即时不受限制的访问。

当然,用户始终可以选中“此系统上不需要 OTP”复选框。高风险用户可以跳过该选项,并在每次登录时都需要 OTP。如果他们这样做,那么如果他们从笔记本电脑上网但使用基于电话的 OTP 应用程序,攻击者必须破坏两个端点 - 冲浪系统和电话 - 才能在启用 OTP 的网站上验证为目标用户。(这是 MFA 的基本价值主张。)

重要的是要记住,将 OTP 存储在密码管理器中并不是“非此即彼”的情况。一些用户可能会选择将低价值的 OTP 代码存储在密码管理器中,而将高价值的 OTP 代码存储在其他地方。(推论:如果密码管理员可以就权衡取舍向用户提出建议,那就太好了,这样他们就可以做出明智的风险决策!)

不单独存储 OTP 会降低(有针对性的)攻击的成本。但与往常一样,这是否重要取决于您的威胁模型。

作为安全专业人士,我们长期以来一直在为采用 2FA 而奋斗,现在我们的覆盖范围越来越广,密码管理器越来越多地同时提供密码和 OTP 的支持,从而违背了多重因素的目的。验证。

根据定义,2 因素身份验证呈现来自两个不同类别的“你{知道、拥有、是}”的东西。可以说,一旦涉及密码管理器,我们就已经输掉了这场游戏,因为密码管理器将密码从“知道(记忆的秘密)”更改为“拥有(访问设备)”——尤其是密码管理器构建进入不锁定或经常需要主密码的浏览器。OTP 也是一个“拥有(访问电子邮件地址/短信号码/身份验证器应用程序)”,大多数人会将他们的密码管理器放在可以访问 OTP 的同一设备上。

因此,虽然在同一个应用程序中拥有密码和 OTP看起来确实令人担忧,但我不确定这与在同一设备上的不同应用程序中拥有它们有根本的不同。

违背多重身份验证的目的。

不,它没有。OTP 在网络钓鱼的情况下保护用户。如果 Joe 在克隆页面上输入其登录信息,则攻击者只有在动作非常快的情况下才能使用他的凭据,否则 OTP 将过期。

它也可以在凭据泄漏的情况下保护用户。由于大多数用户不会为十几种服务设置十几种不同的密码,因此如果一个密码泄露,所有其他帐户都将面临风险。使用 OTP,即使用户12345678在每个服务上都使用相同的无用密码,攻击者也无法因为 OTP 而破坏任何帐户。

如果攻击者可以访问 Joe 的计算机并且他能够攻击密码管理器,那么同一攻击者已经必须用木马化版本或浏览器替换密码管理器,或者安装键盘记录器。如果他可以访问计算机,不管是否使用密码管理器,游戏都结束了。

除非您期望普通用户有一个密码管理器来处理密码,而另一个设备上的另一个密码管理器来处理 OTP 令牌,否则让一个密码管理器来处理这两者是一个很好的权衡。