我想知道将两因素身份验证种子代码(例如 TOTP 的密钥)与服务的用户和密码一起存储在密码管理器中是否真的安全。
如果有人可以访问解密的密码数据库(例如,当密码管理器被解锁或通过暴力破解主密码时),攻击者也可以访问 TOTP 令牌,这使得双因素身份验证变得毫无用处。
在我看来,将双重身份验证代码存储在密码管理器中是非常安全的。
我想知道将两因素身份验证种子代码(例如 TOTP 的密钥)与服务的用户和密码一起存储在密码管理器中是否真的安全。
如果有人可以访问解密的密码数据库(例如,当密码管理器被解锁或通过暴力破解主密码时),攻击者也可以访问 TOTP 令牌,这使得双因素身份验证变得毫无用处。
在我看来,将双重身份验证代码存储在密码管理器中是非常安全的。
我认为这并没有你想象的那么糟糕。想想你试图通过使用 TOTP 来防范哪些威胁,并想想如果将 TOTP 种子存储在密码保险箱中,哪些攻击场景会变得更容易(或不会)。
使用密码数据库中的种子,TOTP 仍将防范:
没有防范的事情包括:
无论您的 TOTP 种子存储在哪里,第一种情况都无济于事。第二种情况值得额外考虑。具体来说,如何破解您的数据库和主密码?任何一个:
现在,一些警告:有现成的恶意软件(或至少是概念验证代码)已经可以针对特定的密码管理器。我不知道有任何现成的恶意软件会以交互方式接管帐户以禁用 2FA。
但关键是,TOTP 种子给您带来问题的唯一情况是即使您的 TOTP 种子存储在其他地方也会导致问题的情况。考虑到这一点,我没有看到任何令人信服的论点反对将 TOTP 代码保留在我的密码管理器中,特别是对于可以使用 TOTP 种子为您生成代码来代替 Authenticator、Authy 等的密码管理器。
假设您指的是给定 2FA 系列的初始化代码,例如当您首次为特定服务配置 TOTP 生成器时需要,那么是的,将其与其他登录详细信息一起存储并不理想。
正如您所说,如果有人可以访问密码保险箱,他们可以通过使用自己的 TOTP 生成器进行相同的初始化轻松登录。
如果您想保留 2FA 初始化值,第二个密码保险箱,与您的日常密码分开,这不是一个糟糕的主意,但您不希望将密码保存在主保险箱中!由于您应该只非常不频繁地需要这些值,因此它们不需要那么容易访问。即使在保险箱中打印出来也是可以接受的。
某些服务允许您生成一个使用代码,以便在 2FA 设备丢失或故障时重新访问您的帐户。在这种情况下,依赖这些可能会更好,而不是保留初始化值,因为它们通常不能用于在没有发送通知的情况下获得访问权限。
在密码管理器中存储 TOTP 种子意味着:任何可以访问存储在密码管理器中的信息的人都可以完全绕过 2FA 并可以访问所有内容。
不在密码管理器中存储 TOTP 种子意味着:任何可以访问存储在密码管理器中的信息的人都无法绕过 2FA,并且仍然无法访问您拥有的受 2FA 保护的每个帐户。
“完全访问所有内容”与“仍然无法访问 2FA 保护登录”。
这是一件大事,我觉得需要这个答案,因为这就是一切的归结。
与将 TOTP 种子存储在密码管理器中相比,将 TOTP 种子与其他种子分开存储可为您提供更高的安全性,并且在谈论安全性时根本没有任何缺点。
将这一切合并到同一个地方的唯一好处是生活质量。以安全为代价!