(老生常谈的)密码安全¶
在改了一百多个密码以后,我对存密码和改密码的心得。
Bitwarden¶
The most obvious example is user accounts. In most cases, I, as a user, don’t need an account. Yet programs keep insisting that I, not them, “need” one.
I don’t. I have more accounts already than a population of a small town. This is something you want, not me.
早些年,我是把几个很强的密码用无数遍的人,碰到要输入密码,就把所有密码挨个试一遍。但随着时代的发展(倒退),账号越来越多了,猜起来很麻烦。加上个人习惯把所有浏览器全部设置成隐私模式,关掉浏览器再打开就要重新登录账号,属实是有些麻烦。最后,我很眼馋通行密钥点一下就可以自动登录的功能,而我绝对不会用一加自带的密码本生态锁。于是今年三月份决定不能这么做了。
考虑了 Bitwarden 和 KeePass,虽然我个人偏好把数据掌握在自己手里,但 KeePass 生态之破碎实在令人望而却步,而我本人也没有自建 Vaultwarden 的资本。再考虑到我自己托管自己的密码本,可能也不一定有 Bitwarden 的官方服务安全,所以最后还是老老实实用了 Bitwarden 的官方服务。
这里面也有一点掺杂私货。在 Proton 被墙之前,本人特别喜欢用 ProtonMail,而一度有消息将它的隐私程度与 SimpleLogin 和 Bitwarden 并列。因此,用上 Bitwarden 可能也是一种必然吧。
用上 Bitwarden 的第一步,是先下载它的 app。手机端只需要在我的 Obtainium 里面加一个新条目就可以了(现在已经换成了 bikram-agarwal/ObtainX,感谢 sspai 的 两篇 派评),浏览器也只不过是跑一趟扩展商店。到了桌面端,电脑的 exe 应用程序,就发现问题了。Bitwarden 不知道为什么想不开,把 Windows 安装包做成了下载器,下载以后还需要联网下载程序本身,不知道用的是哪个鬼接口特别慢,而且每次更新都要重新下。好在后来发现 Scoop 上也提供了安装包,而且不会面临这样的问题。
第二步就是就是把自己的账号录进去。花了几天时间,录了一些最常用的账号进去,大概三十来个。这个时候就会发现,回想自己注册了多少账号,比猜哪个账号用了哪个密码还艰难。
Bitwarden 支持 TOTP 和通行密钥,所以通行密钥能加的都加了一遍,而 TOTP 虽然 Bitwarden 要收费,但我本来就在手机用 Stratum 和电脑用 Proton Authenticator 解决,所以也不影响(前者同样感谢派评)。话虽如此,但以防未来自己想不开了要做统一集成,还是把所有 TOTP 都录到了 Bitwarden 里面。
后面打开自动填充,就开始享福了。再也不用每次登录账号都输十几位密码了,这个世界上怎么会有如此快的登录。虽然我并没有想到,桌面端只是用来查看密码复制粘贴的,并没有自动填充的功能。So……算了,至少它还可以保存 SSH。
密码生成器¶
到了七月份,注册新账号的时候,觉得自己不能没完没了地把五六个密码来回倒腾着用了。于是开始使用 Bitwarden 的密码生成器生成随机的密码,反正不需要我记。
这里安卓的 Bitwarden 默认会生成 14 位的大小写字母、数字、符号组合,可以选择性排除易混淆的字符。
既然说到了这里,最近看到 Proton 的一篇文章解释了密码熵的概念。我们都知道设置包含大小写字母、数字、符号的密码会增加暴力破解的难度,那么如何定量解释这一现象呢?
这里就可以引入密码熵的概念。引用原文内容,这个公式用 LaTeX 写法是:E=L\times\log_2R。考虑到本博客没做 LaTeX 显示,所以这个公式用 Unicode 写就是这样的:
E = L × log₂(R)
其中 E 是密码熵,L 是密码长度,R 是密码中字符类型的可能范围。这里的 R 详细解释一下。例如纯数字密码,字符只可能有 0~9 这 10 种,因此 R = 10。而包含大小写字母、数字、符号的密码,字符可能在以下的区间中:大写字母(26)、小写字母(26)、数字(10)、符号(32),所以 R = 94。
算出的密码熵越大,意味着密码越难以暴力破解。原文指出,为了抵御暴力破解,密码熵不应低于 75,建议高于 100。
需要注意的是,这里定量的前提是随机生成的密码,针对的情况是暴力破解。人自己设置的密码通常具有一定规律,密码熵相应会有所降低。此外,如果密码中存在像生日这样可预测的内容,可以更针对性地使用字典破解。
Keyguard¶
Bitwarden 的应用和插件,经常会给我一种能用但不够好的感觉。或许是因为之前 Bitwarden 桌面端的故事还记忆犹新吧,此外 TOTP 虽然不影响,但多少也会被膈应一下。此外,它在相当程度上依赖网络,图标识别也略为笨拙。虽然都不是致命问题,但这里膈应一下那里膈应一下,最后就让人很想换个世界生活了。
受到 yet another 派评的推荐,我就这么用上了 Keyguard。
刚拿到手的感受是,Keyguard 不仅支持直接使用已有的 Bitwarden 账号进行同步,而且还能直接读 TOTP 数据进行生成,甚至还有 GPG 密钥保存,这还给 Bitwarden 付个锤子费。能读 TOTP,就把图标显示被墙了的 Proton Authenticator 卸掉了,但还是留下了 Stratum 做离线备用。
然后就被 Keyguard 的「概况」(watchtower)功能 push 了:居然大多数都只是「安全」?Bitwarden 生成的也才「比较安全」?等等,「一般」和「不安全」又是什么鬼?
如果大概看过一遍前面的密码熵,大概就可以想到这里是怎么回事了。Keyguard 的策略与密码熵有一定关联,是通过估算破解时间实现的。Keyguard 自己的密码生成器,默认生成 16 位的大小写字母、数字、符号组合,大多数情况下都标注是「非常安全」;这也是想要密码达到「非常安全」的最低标准。
确实考虑到本人的密码长的已经用了十多年了,短的也用了三四年。所以就这么从仅仅换一个客户端,变成了把所有密码挨个改一遍。
改密码¶
改密码真的是一件酷刑。如果有人说自己闲得没事干,我肯定建议去改密码。
可能会想,改密码有什么难的?
首先,我们需要找到修改密码的入口。有些平台会把名为「修改密码」的入口放到设置中类似「账号与安全」的项目当中,而另外一些根本不存在「修改密码」的设置,必须先退出登录,然后在登录界面下面点「忘记密码」才能修改。就是有没有一种可能,虽然流程和结果是基本一样的,但「修改密码」和「忘记密码」这两件事,还是有一定差别的呢?我甚至见过点进去「修改密码」,结果进入「忘记密码」流程的平台。
假设我们终于找到了入口,身份验证也是五花八门。善良一点的平台会使用原密码验证,普通一点的平台会使用接收手机或邮箱验证码验证,先进一点的平台会使用人脸识别验证,而奇怪一点的平台就会使用其他一些非常规方法验证。比如网易,就要求手机发送验证码给指定账号,我这个月光给网易发短信就发了十几条。还有微软是非要推广它那个邪恶至极的验证器,这笔账我们后面再算。
哦对了,这里有一个平台需要点名表扬:花伴侣专业版(cn.iplant.flowermate),是唯一一个不仅需要用忘记密码去修改密码,而且忘记密码流程有 bug,导致事实上无法修改密码的平台。我真是想不明白,为什么注册可以使用邮箱或手机号注册,忘记密码却只能用手机号验证,而且登录账号以后并不能让使用邮箱注册的账号绑定一个手机号。
好了,现在我们开始修改密码了。这个时候就不得不推荐一下 The Password Game,谁玩谁知道。虽然现实情况没有那么夸张,Keyguard 生成的密码大多数情况下都能直接通过校验,但还是遇到了一些阻碍。最典型的情况是,不支持使用特殊符号,这个时候必须把生成器调一下。此外,有一个平台需要点名表扬:百度。百度的密码不能超过 14 位,所以无论如何,它现在都成为了唯一一个改过密码还是「比较安全」的条目。
好了,现在我们改完密码了……吗?并没有。如果上面看上去已经很百花齐放了,下面才叫百家争鸣。
你永远不知道修改密码以后会发生什么。
首先就是已有登录设备的处理问题。有些平台不会登出任何设备,大概理念是,密码作为已有无数种登录方法中的一种,应该平淡处理。有些平台会把选择权留给用户。有些平台至少会登出现在这个会话,让用户有机会验证一下自己成功修改了密码。而有些平台会登出所有设备,大概理念是,用户不会无缘无故修改密码,一般都是有安全上的考虑,所以为了贯彻安全,防止盗号一类的行为,应该登出全部设备。这些都相对比较正常。
但有些平台会牵连到其他意料之外的东西,平台越大,同样的账号在越多的地方使用,平台做出不可预测行为的可能性越大。
例如,国内的邮箱一般都把 IMAP/POP3/SMTP 授权码和邮箱本身的密码分开。在 QQ,修改 QQ 的密码会连带修改 QQ 邮箱的密码,并同时导致所有授权码失效。而在网易,修改邮箱密码倒不会使授权码失效,但会同步修改网易通行证的密码,也就意味着所有其他的 MOOC、网易游戏等服务,都会一并变更密码。此外,网易的授权码也会因为登录凭证原因失效,但触发方式却是……开启登录二次验证。我真的无法理解。
我校的校园统一验证管理系统同步用于出外网服务。修改校园身份验证的账号密码后,出外网服务的无感认证会同步失效,需要重新注册所有设备。MCPEDL 修改账号密码后,会同步注销已有的 2FA 验证设备。诸如此类吧。
不过有趣的是,从来没有哪个平台会登出微信小程序的会话。
最后,有很多平台还会在登录、试图修改密码、修改密码成功中的一个或多个场景发送提醒,所以我的短信和邮箱被狠狠轰炸了一通。网易和腾讯还因为我开通了 IMAP/SMTP 服务,向我推销它们的邮箱 app。当然还有无处不在的 CAPTCHA。真是「安全」啊。
还有彩蛋!如果安装了 GitHub app,在手机网页端修改 GitHub 密码会出现问题。原因是 GitHub 的修改密码 callback 链接大概有点问题,点击确认修改密码后会询问是否在 GitHub app 内打开,选择「否」就会弹出错误,导致密码并不会被修改。必须在浏览器设置里面禁用这个行为,才能成功修改密码。
MFA¶
混乱的 MFA¶
MFA 指多重因素验证(Multi-Factor Authentication),也就是通过密码和其他多种方式验证用户的身份,较窄的说法是 2FA,但其实是一个意思。国内很喜欢用验证码,而国际流行的方案除了 TOTP,还有通行密钥。
MFA 的设定也十分具有貌似统一而实际混乱的美感。虽然 Keyguard 与相关的公共数据做了集成,但帮助有限,还是自己一一判断更为准确。
有一类比较少见的情况是平台支持这些功能,但它不叫这个名字。例如国内很喜欢把 TOTP 叫作「Google 身份验证器」,仿佛只有用它才能使用 TOTP 功能一般。此外这里点名表扬坚果云,它 TOTP 对应的设置项,名称叫作「手机身份验证」。任何人看到这个名字,恐怕想到的都是手机验证码登录吧……不过至少还真的支持 TOTP。
更多情况下,我需要面对的是:平台声称支持双因素验证或通行密钥,但它说的和我想的并不是一回事。所谓的「双因素验证」,很可能只是密码登录时必须同时收短信验证码。而所谓的「通行密钥」,则并不一定是 FIDO,只是调用了手机的指纹识别就把自己当作通行密钥。
前者这种「双因素验证」,我已经受够了。谁还没见过输入密码登录以后跳出来一个提示框,说新设备登录或者登录环境有风险,要求手机验证的?甚至我前脚刚登出,后脚登录就又被拦了。本质上就是打着安全的旗号给人添堵罢了,就是不想让人用密码直接登录。
后者点名表扬 WPS。WPS 的设置页面是这么写的:「添加后,可通过设备屏幕解锁方式(指纹、面容等)进行登录。」但它并不会在密码管理器添加相应的条目,并不是很明白它怎么实现的。私以为「通行密钥」是一个专有词汇,「生物识别登录」就老老实实叫「生物识别登录」。此外,大麦 app 的通行密钥倒是标准的通行密钥,但它的适配也有问题,并不能正常添加到密码管理器中。
部分国际平台会专门区分 passkey 和 security key,我其实不很理解中间的区别。如果要我说,可能 security key 专指像 YubiKey 那样的硬件密钥。但 Crowdin 会专门限制 security key 只能做 2FA,而「升级」到 passkey 以后就可以既用于直接登录,也用于 2FA。而 YubiKey 官网上的产品除了 YubiKey 系列外还有专门一个系列,就叫 security key。因此属实是搞不明白了。
在费尽心机添加 TOTP 和通行密钥以后,虽然看上去事情好像到此结束了,但尤其是国内平台,可能是真的很不想让用户用上方便的登录方式,还需要自行「启用」。例如腾讯云,需要自行开启通行密钥的「登录保护」和「操作保护」使用场景,通行密钥才能够生效。
另外有没有一种可能,通行密钥本身就是为了取代密码加 2FA 组合的呢?如果我开通了通行密钥,应该只要用通行密钥登录就可以了。但实际上,有些通行密钥只能在第二步使用,第一步还是照常密码登录;而另外一些可以在第一步使用通行密钥,但还是不能绕过第二步保护验证。
这里就要提到 Google 了。我改完密码没两天把我号封了,理由是「与多个其他账号一起创建或使用」,至少我不知道这个事情。目前申诉两次均失败,还在进一步筹划。每次申诉都需要先通过 reCAPTCHA,然后输入密码,然后验证通行密钥,然后接收手机验证码。查看绝密文件大概都不需要如此复杂。
Steam¶
TOTP 里面最混乱邪恶的当属 Steam。Steam 还真的是别出心裁呢,一定要用自家的手机 app 才能开启自家算法的 TOTP 保护,并且只能有一个验证器会话在线。
好在有开源社区制作的 dyc3/steamguard-cli,并且只要拿到了验证密钥,Stratum、Proton Authenticator、Bitwarden 都做了支持。
尽管很久以前我就用过这个方式了,验证器密钥也一直活在 Stratum 里,但还是最近才发现 Bitwarden 能生成 Steam 的 TOTP。为了导入 Bitwarden(Keyguard)并解决历史遗留问题,就不得不在我这台电脑上重配 steamguard-cli。但因为它不能同时存在两个验证器会话,就只好打电话回呼和浩特,把原来的配置文件发过来,才终于配好。这时又因为适用 Bitwarden 的验证器二维码生成存在 bug(dyc3/steamguard-cli#515),虽然修复了但没有发版,又不得不在本地安装 cargo 自行编译,最后几乎花了一下午才搞定这个验证器。
不过成功以后才发现,如果知道验证器密钥是多少,前面直接加 steam:// 就可以了,根本不需要如此大费周章。
点名谩骂环节¶
然后这里必须点名谩骂一下网易。网易除了略显不合群的由用户发送验证码验证身份以外,还十分注重用户每一次操作的安全性。每一次对账号安全设置的操作,都需要单独进行验证。而想要开启 TOTP 验证,首先需要开通 Google 身份验证器,然后把 Google 身份验证器设为默认安全验证方式,之后开启登录二次验证(并同步关闭 IMAP/POP3/SMTP 服务,为了安全当然应该如此),最后才能正常使用。而每次操作,都要发验证码。
这里尤其需要注意到,需要设为默认安全验证方式。如果不设置的话,原有的默认方式是安全手机,于是网易会在进入 2FA 页面的瞬间直接发送手机验证码,TOTP 只能去「其他验证方式」里面找。而不管怎么样,验证码都是发了的。
如果仅仅是多发验证码可能也就那样了,但网易还有一个验证码发送次数的上限。如果同一手机号接收了 6 个验证码,就会直接被封禁 24 小时。可能网易认为我们就像在 Undertale 里面那样吧:
Seven.
Seven human souls, and King ASGORE will become a god.
扯远了。这就是网易 NetEase。或许大概是 NetHard。
接下来点名谩骂的是巨硬,我的意思是,微软。
自第一次浏览器大战通过给 Windows 预装 IE 的方式击败网景以后,微软至今似乎都离不开这一技巧。例如,它 一 直 在用预装 Microsoft Edge 的方法提高 Edge 的使用率。不得不说,预装真是最有效的提高使用率的手段之一:我身边人的电脑,用的如果不是联想预装的联想浏览器,就是微软预装的 Edge 浏览器了。以致于近期我的一位老师把自己安装了 Google Chrome,当成了一件值得大肆炫耀的事情,而且似乎还有不少人真的对此感到惊讶。
这里要提到的是微软的 2FA 方式。微软官方有一个叫作 Microsoft Authenticator(微软身份验证器)的应用。这个应用不仅在国内应用市场盗版横行,多 次 受到砍刀部攻击,而且还有 数据 安全 问题。我以为该应用到现在还能存在,微软的开发团队应该切腹谢罪。
但微软还在用不可理喻的方式推广它。为了使用 TOTP,我们首先需要选择「添加另一种登录账户的方式」,然后选择「使用应用:快速批准手机上的登录通知」,旁边配的是微软身份验证器的 logo。然后新的页面就会弹出「设置 Microsoft Authenticator 应用」,此处必须选择「设置其他 Authenticator 应用」,才能进入真正的 TOTP 设置页面。
现在还只不过是多了几步流程,但如果之前确实使用过微软身份验证器应用,就会惊讶地发现已有的登录方式中竟然包含了「输入验证器应用中的验证码」。此外,如果想要删除微软身份验证器,就必须同步删除已有的 TOTP,哪怕这个 TOTP 并不是通过微软身份验证器添加的。不想使用微软身份验证器有这么难吗?
另外,如果说真的要使用微软身份验证器,就不得不谈谈它的前科了,参考文献都在上面。微软身份验证器已经砍掉了保存密码和自动填充的功能,然后即将砍掉微软原生的备份功能改用(显然国内无法使用的)Google One。而这个备份原来只能备份到微软账号,不能备份到本地,并且已经把我害了。
我之前的一个邮箱,绑定的安全邮箱是 OnMail,它不声不响倒闭了;此外还绑定了微软身份验证器。虽然绑定了手机号,但不知为何不能用于安全校验。所以在若干年后我试图登录这个邮箱改密码时,安全设置就把我坑害了一通。
我早八辈子就把微软身份验证器卸载了,但考虑到它显然有备份,就登录到我的主力微软账号尝试恢复。可能是触发了上面最后一个参考文献中的清除备份,所以没能恢复成功。反而呢,因为我登录了微软身份验证器,微软自动把它加入了我主力微软账号的安全验证方式。为了把这条方式删除,微软又同步把我的 TOTP 也删掉了,不得不重新配一遍 TOTP。到最后,那个老账号也只能重置安全邮箱,等待 30 天后再议。
我很怀疑不能用手机验证,就是因为绑定了微软身份验证器。因为另外一个老账号除了没绑定微软身份验证器以外,所有设置都是一样的,但它就可以使用手机验证码找回。真是没法理解微软是怎么做的身份验证逻辑。
自动填充¶
安卓的自动填充感觉已经比较完善了,大部分情景都能识别出来。但我还是遇到了一些倒反天罡的情景。
有些场景不能自动填充用户名,我已经当成家常便饭了。最经典的是,平台要么禁止粘贴,要么禁止自动填充,长按以后只有其中一个选项,不过至少我还有一种选择。
最难绷的是银行的安全键盘。我用的农行和招行,农行完全禁止自动填充,而招行虽然能填充进去,却会在点登录时提示「密码不能为空」,显然是和上面链接里的云闪付异曲同工。强制用户手动输入密码,比起自动填充和复制粘贴来看,难道不是更容易暴露密码本身吗?
和上面比起来,这都是小风小浪了,最多自己开个浮窗打一遍。
账号注销与注册¶
有些平台简直可以说视用户数据如草芥,长期不活动的账号,一声不吭就直接销号了。这里还是应该表扬一下 Proton(褒义的),长期不活动的账号会提前和用户联系,多次告知以后才销号。
另外,不是所有平台都提供了账号密码登录。国外有些平台会使用三方登录,通常是用谷歌或苹果账号,也有一些可以发邮件验证码。国内的很多平台,尤其是比较新或者比较小的平台,几乎都在用手机验证码,亦或者微信扫码登录。
有一些我愿意用「流氓」来形容的平台,更会用「未注册手机号验证后将自动注册」的把戏吸引用户。如果管理比较混乱,这样很容易造出好几个账号。我怎么能知道我有没有过账号?即使我有账号,我用的是哪个手机号注册的账号?另外,我又怎么知道平台有没有把我之前的账号销掉?
比如说我 2022 年曾经来过重庆,当时注册过渝畅行。2025 年再来上学的时候早就忘了这一回事,渝畅行又是这种「自动注册」风格,结果又用本地的手机号重新注册了一个渝畅行。后来总觉得似曾相识,才发觉不对劲。
硅基流动也是这个风味,都算某种大厂了居然还是只支持手机验证码。然后还有之前被推荐过的 Free QWQ,居然几个月不见改了 UI,关掉了原来的功能,把账号也重做了。我拿之前的手机号尝试登录,密码试不出来,验证码一收,就变成了「新注册」用户。而且该平台还没有用户自助注销。
都说验证用户身份用的是所知所持所有,这些平台就逮着 SMS 一个劲薅,而且也从不对 2FA 做兼容(或者如上文所述,2FA 在国内几乎是密码加手机验证码的代名词)。国内少数支持 TOTP 或通行密钥的,几乎都是云服务厂家。其中值得一提的是,火山引擎做了 TOTP 没做通行密钥,加深了我对该平台和该公司的固有偏见。
可能是 2FA 过于先进了,配置到日常生活场景中有不会用的风险?但为什么国际上推进良好呢,难道就因为他们有 Google Authenticator 或者 Bitwarden?而且连手机自带的「常用信息与密码」都支持通行密钥,Windows 本身更是如此,显然兼容问题已经得到了一定解决。
大概还是习惯难改吧。最近有一点感受是,国内几乎不重视密码安全。很多账号端着一个固定已知的初始密码就拿出来了。要么用随机密码,但是把 Excel 表格直接丢到群里面,所有人都能看见;要么用身份证号后六位,学号后六位,诸如此类。这个初始密码,很多人就再也不会改了。即使改,可能也就是常用一两个能满足所有要求的密码来回换。也有很多情况,设完密码转头就忘掉了。
高中时经常做的一个事情是给同学重置综评系统的密码,平均每个学期能重置半个班以上。综评系统的密码规则很复杂,很多人原来的密码输进去用不了,就只能另编一个新的,改完随手就忘,反正 zxn 可以重置。
这种情况下,其实一个可迁移的密码管理器,可以帮助用户太多。这里要强调「可迁移」是因为,当然会有一些厂家考虑到「数据安全」不能给你导出密码,所以下一部设备就只能继续用他家的了。还有保存在设备上的通行密钥。而一个可以带走的密码管理器,不会限制用户选择设备,也加强了密码安全,甚至可以提高用户的密码安全意识。何乐而不为呢?
只可惜,除了仿冒微软身份验证器以外,国内基本没看到有做这类应用的。即使有做,大概也不如已有的这些解决方案好用。
依赖密码管理器¶
可能有些人会有一个问题是,这样不会对密码管理器产生依赖吗?如果没有密码管理器了,岂不是什么账号都登不上去?
当然。这里会有两重解释,首先是密码管理器的丢失。Bitwarden 有云端同步,因此本地设备损坏在这里不构成问题。倒是有可能忘记主密码而被锁在 Bitwarden 账号外面,这就没办法了,总得记住主密码才能登上账户,而一个密码总要比几百个密码好记。如果记不住主密码,那其他账号的密码就更不可能记住了。而即使最坏情况真的进不去密码管理器,也还有平台的「忘记密码」和 2FA 恢复代码兜底。
第二种是人的独立性。有一种想法是:「可以用密码管理器,但我的脑子也需要记住这些密码。即使有一天我用不了密码管理器了,光靠自己也能登录账号。」其实我原本以为自己永远不会用一个密码管理器,就是因为这个。当时我以为,把密码交付给一个数据库是一件很奇怪的事情,万一它跑路了,我不就再也打不开了吗?所以还是要记密码。
密码管理器之所以为密码管理器,就像 CA 之所以为 CA。它是用自己的品牌换取客户储存密码的信任的。因此我们首先可以假定它不会轻易跑路。即使真的跑路了,主流的密码管理器都有导出选项,可以导出所有的密码,KeePass 生态更是全部自主。
但为了避免暴力破解,需要设高熵的密码,为了避免一个网站密码泄露造成其他网站密码也出现风险,需要给每个网站设置不同的密码。要记住很多奇怪的组合,根本就是超出人类极限的事情,所以「密码能被记住」和「密码足够安全」,具有相当程度上的不相容性。也有反例,但首先在不能复用的前提下还是很难记住每个平台用了什么,而且我们不是英语母语者,平台又限制最多只能输入 14 或 16 位密码,很难实践这一做法。
此外,依赖密码管理器登录账号,就像我们用手机验证码登录也依赖着手机号本身一样。如果我们可以接受手机验证码,那么似乎就也可以接受密码管理器。
我个人认为,这最终要考虑到你本人把哪个排在第一位。如果把安全排在第一位,且能够长期稳定使用一部设备,使用密码管理器的好处是要远远大过依赖它带来的负面影响的。如果把便捷排在第一位,也可以斟酌一下密码管理器的自动填充,是否会比打出记忆中的密码更加高效。如果一定要把「能记住」放在第一位,应该考虑只记最重要账号的密码,要是一定要记所有账号的密码,复用密码就几乎肯定是不可避免的了。
结语¶
前两天刚看到有群友把 TOTP 保存在自己的 MP3 上,然后因为 MP3 无法开机丢掉账号访问权限。还有群友认为 Microsoft Authenticator 很好用,并没有更换的打算,我只能祝他们一切顺利了。
希望大家都能重视自己的密码安全。这就像数据安全和备份策略常有人提,但大部分人都没有真正去做,只有在丢失数据时才追悔莫及。此外,我也希望本文能起预防作用,而不是在盗号以后才被读者想起。为你们加油。