在密码管理器中存储两因素身份验证种子是否安全?

信息安全 密码管理 多因素 一次性密码
2021-08-26 04:58:31

我想知道将两因素身份验证种子代码(例如 TOTP 的密钥)与服务的用户和密码一起存储在密码管理器中是否真的安全。

如果有人可以访问解密的密码数据库(例如,当密码管理器被解锁或通过暴力破解主密码时),攻击者也可以访问 TOTP 令牌,这使得双因素身份验证变得毫无用处。

在我看来,将双重身份验证代码存储在密码管理器中是非常安全的。

3个回答

我认为这并没有你想象的那么糟糕。想想你试图通过使用 TOTP 来防范哪些威胁,并想想如果将 TOTP 种子存储在密码保险箱中,哪些攻击场景会变得更容易(或不会)。

使用密码数据库中的种子,TOTP 仍将防范:

  • 您持有帐户的网站的密码泄露
  • 不受信任的计算机上的键盘记录器(我假设您实际上不会在其上运行密码管理器,而是从受信任的设备上读取密码并手动输入)
  • 开放 WiFi 网络上的网络捕获等。
  • ,用户的网络钓鱼/社会工程

没有防范的事情包括:

  • 网站所有者的客户服务/技术支持的社会工程
  • 被盗的密码数据库和主密码

无论您的 TOTP 种子存储在哪里,第一种情况都无济于事。第二种情况值得额外考虑。具体来说,如何破解您的数据库和主密码?任何一个:

  • 攻击者从云存储或丢弃的备份中获取您的数据库副本,并破解您的主密码。强大的主密码(80 位以上的熵)和密码管理器开发人员对 KDF 的安全实施应该完全防止这种攻击。
  • 攻击者将恶意软件放在您的计算机上,该恶意软件专门针对您的密码管理器而设计。但是考虑一下:如果你的机器上有这样的目标恶意软件,为什么不编写恶意软件来劫持浏览器会话呢?或者强制安装浏览器扩展来窃取所有需要的信息?或者安装自定义证书以允许 MITM 攻击?浏览器扩展程序甚至可以显示页面,使您看起来像是再次登录该站点,而实际上您提供的是完全禁用 2FA 所需的凭据!

现在,一些警告:有现成的恶意软件(或至少是概念验证代码)已经可以针对特定的密码管理器。我不知道有任何现成的恶意软件会以交互方式接管帐户以禁用 2FA。

但关键是,TOTP 种子给您带来问题的唯一情况是即使您的 TOTP 种子存储在其他地方也会导致问题的情况。考虑到这一点,我没有看到任何令人信服的论点反对将 TOTP 代码保留在我的密码管理器中,特别是对于可以使用 TOTP 种子为您生成代码来代替 Authenticator、Authy 等的密码管理器。

假设您指的是给定 2FA 系列的初始化代码,例如当您首次为特定服务配置 TOTP 生成器时需要,那么是的,将其与其他登录详细信息一起存储并不理想。

正如您所说,如果有人可以访问密码保险箱,他们可以通过使用自己的 TOTP 生成器进行相同的初始化轻松登录。

如果您想保留 2FA 初始化值,第二个密码保险箱,与您的日常密码分开,这不是一个糟糕的主意,但您不希望将密码保存在主保险箱中!由于您应该只非常不频繁地需要这些值,因此它们不需要那么容易访问。即使在保险箱中打印出来也是可以接受的。

某些服务允许您生成一个使用代码,以便在 2FA 设备丢失或故障时重新访问您的帐户。在这种情况下,依赖这些可能会更好,而不是保留初始化值,因为它们通常不能用于在没有发送通知的情况下获得访问权限。

在密码管理器中存储 TOTP 种子意味着:任何可以访问存储在密码管理器中的信息的人都可以完全绕过 2FA 并可以访问所有内容。

不在密码管理器中存储 TOTP 种子意味着:任何可以访问存储在密码管理器中的信息的人都无法绕过 2FA,并且仍然无法访问您拥有的受 2FA 保护的每个帐户。

完全访问所有内容”与“仍然无法访问 2FA 保护登录”。

这是一件大事,我觉得需要这个答案,因为这就是一切的归结。

与将 TOTP 种子存储在密码管理器中相比,将 TOTP 种子与其他种子分开存储可为您提供更高的安全性,并且在谈论安全性时根本没有任何缺点。

将这一切合并到同一个地方的唯一好处是生活质量。以安全为代价!