要不要用 2FA?关于 2FA 的思考
几周前,我收到了一封来自 Belgian Center for Cyber Security(比利时网络安全中心)的主动发来的电子邮件。邮件开头声明,如果启用了 2FA,可以避免 80% 的网络攻击,然后明确指出 “如果你的远程登录只使用用户名和密码,那你就是待宰的羔羊”。
这不完全正确,用户名和密码并不比 2FA 安全性差。在某种程度上,它们更安全。我知道这存在争议,但请耐心听我解释 CCB 的假设、我的假设,以及它们如何能自圆其说。
CCB 假设人们无法信任密码。多年来,最流行的密码一直是 123456
和 password
,紧随其后的是 12345678
和 qwerty
。研究一次又一次地证明,我们总是尽可能地使用弱密码。
但请等一下。这些人也表现得合理且最佳。每当他们开始使用新的网站或应用程序时,其价值接近于零,因此使用弱密码是一种最佳策略。通常,交互是唯一的或时间间隔很大,因此根本没有必要保存密码。当我访问一个多年未访问的网站时,我的旧密码通常不再有效,我必须重置它。
我有一个自动生成密码并将其存储在密码管理器中的工作流程,但期望偶尔使用的用户采用其他策略是完全合理的:
- 输入一个弱密码或一个带有技巧的弱密码,例如在其中包含服务名称,以便密码易于记住。
- 在键盘上随意输入随机文本,直到密码被接受并立即忘记它,因为他们知道可以通过电子邮件恢复访问权限。
当用户开始依赖于最初配置了弱密码的服务时,弱密码就会变得有问题。大型科技公司已经找到了针对这种情况的微妙但有效的策略,但较小的特定国家/地区的企业却没有。
我牢记于心的一个密码是用法语和荷兰语混合笨拙地翻译的一句著名的经典引言。它很长,由于其长度,无法进行暴力破解,而且我非常确定它不存在于任何彩虹表中。我从不拼写出来,更不用说写下来了,但它在我的肌肉记忆中,因为我已经很多年没有更改它了。
互联网上没有人可以破解我受此类密码保护的 ssh 帐户或 Gmail 帐户。从所有实际目的来看,此密码是牢不可破的,请参阅 XKCD 538 Security 和 XKCD 936 Password Strength。
最近,一些服务开始要求 2FA。其中之一是 Github。一旦我将 2FA 添加到我的 Github 帐户,它对我来说就变得不那么安全了。因为安全性不仅在于防止入侵,还在于能够在任何时间和任何情况下安全地访问数据。
现在,我对 Github 的访问取决于第二个因素,我选择的是运行在我手机上的 Microsoft Authenticator。我真的不知道如果我的手机_坏掉_会_发生_什么,所以我从 Github 下载了 TOTP 代码,甚至_尝试_了一个,看看它是否有效,到目前为止确实有效,但是现在我少了一个 TOTP 代码,以备不时之需。此外,由于 Github 现在是我的密码管理程序的特例,我_担心_我可能会_丢失_那些 TOTP 代码,并被完全_锁定_在我的帐户之外。
而且,最糟糕的是,我必须彻底考虑所有这些,首先这是一种时间的浪费。