为什么你应该使用密码管理器

warning: 这篇文章距离上次修改已过252天,其中的内容可能已经有所变动。

本文是对我一年前发的V2EX帖子《各位是怎么『适应』第三方密码管理器的?》的直接回应

那个帖子里写的是KeePass,后来我换用了Bitwarden(自建Vaultwarden),经过一段时间的适应期之后,现在回过头来看才发现,我应该早点投入密码管理器的怀抱的,而且原因很简单:密码管理器,不仅仅是密码的管理器。

1. 前言

正如我在上面的那篇帖子里面提到,我使用密码管理器最直接的动机,其实是一次和密码关系不大的盗号经历。但是还是老话说得好,一朝被蛇咬,十年怕井绳,经历过这样的事情之后,有关安全部分的东西,自然会更加上心。

安全,其实是一件环环相扣的事情,所以在安排了各类2FA(邮箱,TOTP),以及注意电脑上软件的整洁之后,关于给自己安排一个密码管理器的事情,就提上了日程。

顺便一提,虽然严格来说,他管理的那玩意应该叫做『口令』,但是考虑到密码密码的叫习惯了,因此下面还是用密码来指代这玩意。

2. 弱口令的日子

在说好处之前,先来聊聊必要性。下面的这些都是笔者曾经碰到过的情况,我相信,不止我一个人有类似经历。

为了行文流畅起见,这一节就只谈问题,至于密码管理器是怎么解决这些问题的,下面还会统一叙述。所以如果你不需要详细了解问题背后的具体原因,可以直接跳到下一节阅读。

2.1 忘记密码

你想了一个很复杂的密码,比如说看到古诗『天阶夜色凉如水』,觉得很好,就把他改造成自己的密码,~tjNightlSrH20~,大小写数字特殊字符都有了,还有混淆的顺序,还有15位长度,能满足绝大多数网站的需求。

过了几天,你需要登录,但是你只记得这句古诗了,以及还记得密码是推出来的,请问你的密码是哪个呢:

  • ~tjNigHtlSrH20~
  • ~tjNightlSrH20~
  • ~tjNightlSrH20
  • ~tjNightlSrH2O~
  • ~tjNighlStrH20~

第六个?没有第六个了,因为连续输错五次,账号已经锁了,请等待30分钟——别说,真有老哥连续试四五次,也不会尝试去找回密码的。

当然,这一小节假设的是一种很极端的情况,也就是过于复杂的密码生成规则,导致自己忘记了密码是怎么来的。但怎么说呢,现实总是要比虚拟更魔幻,目前国内很多情况下,现在要想登录点什么,平台大多数都会提供手机验证码,或者微信QQ等平台的类似OAuth之类不需要密码的登录方式,可能万年用不着一次密码,导致遗忘的风险大大增加,甚至我见过刚设置完密码转头就忘了的情况,真是哭笑不得。

2.2 重复使用密码

如果从安全性的角度来看,比忘记密码更严重的,应该是重复使用同一个密码,或者说,多平台共用同一个密码

人其实是懒的,当你绞尽脑汁想出来一个复杂的密码,并且费劲记住之后,你一定不会再去想第二个密码,于是很自然而然地,会在各个地方使用同一个密码,认为自己想的密码很复杂,应该不会出事。不过理想很丰满现实很骨感,共用密码的最大问题就是火烧连营,一旦泄露(不论是你不小心泄露,还是某个半吊子网站使用明文存储密码),那么所有使用了这个密码的网站都需要修改。现在的网民注册网站数量应该不少了,要想逐个逐个修改密码,显然,这不是麻烦二字能简单概括的。

此外,麻烦还是其次,最主要是,批量改密码的时候,你顾不过来。费劲力气改了几十上百个网站的密码之后,可能某个不是很经常用起但是确实相对重要的网站,被你忘在了角落,还用着老密码,这就成了一个薄弱点——这种情况发生的概率还挺高的,正如上文所说,一堆不需要密码的登录方式变得非常普遍,所以很容易就忘了『这个站还没改密码』这回事。虽然说现在很多情况下,光输入账号密码,平台可能也不太满意,要求你收个短信验证码什么的,但此事并非绝对,我所使用的软件中,就有光靠账号密码即可登录的——具体有啥,不会详细透露,但至少有一个是政府部门的门户网站,这就够了。

部分教程可能会告诉你,为了避免这种情况,可以使用『主密码+标识符』的方式做到一站一密,比如说某个主密码是123456,需要登录QQ,那就是123456qq,需要登录微博,那就是123456weibo。这种做法的安全性如何,笔者并不是很清楚,可能会比全部使用相同密码要好一些,但从直觉上来说,主密码泄露后,只是说还能靠『别人不知道你加了什么标识符,加在哪』来缓一缓,但长期来看,绕不过去更换密码的问题。

2.3 密码规则

我们还是用上面的密码~tjNightlSrH20~来举例,很多情况下这个密码没啥毛病,但是有个问题:各个网站的站长是不会通气的,密码规则也没有什么公认标准,导致会出现不同网站有不同密码强度规则的情况,比如说:

  1. 包含大小写数字
  2. 包含大小写数字特殊符号
  3. 包含大小写数字特殊符号,且三种类型各来一个
  4. 包含大小写数字特殊符号,且至少有一个特殊符号
  5. 包含大小写数字特殊符号,且只能用!@#$%这几个符号
  6. 包含大小写数字特殊符号,必须以大写字母开头
  7. ......

此外当然还有密码长度的问题,下限从6到8,上限从12到大于20,都是很常见的情况。很显然,我们在第一节里面想出来的密码,就无法在第5和第5种网站上面登录——此时你需要再想一个密码,然后不出意外的,很快又忘了。

正好,软考报名的网站就是合适的例子正好,软考报名的网站就是合适的例子

2.4 某个路边小网站

Bitwarden的后台是可以看到密码记录所对应的网站的,一看才知道,有很多我已经忘记了的网站,比如某些VPS供应商,某些考试网站,等等,部分还能打开且正常使用,部分还能打开但账号已被删除,部分更是打都打不开了。

最后一种情况,多见于小网站。小网站所带来的风险,其实相对来说较大:

  • 密码明文存储,或仅简单哈希(例如过一遍MD5)
  • 安全防护不足,被黑客攻击,整个数据库被爬走,或前端被插入了偷密码的代码
  • 可能存在出售个人信息的情况

等等等等,都会导致你所使用的密码在这些小网站上更容易被泄露。虽然说现在网上有很多编程指导,会告诉你如何尽量避免上面的那些问题,但是有很多人有意或无意地忽略了这些指导,导致开发出来的网站程序存在这样那样的漏洞,作为用户的你自然是无法完全信任这个网站的。网上很多教程都会告诉你,对于这种小网站单独选用一个和主密码没有关系的密码来使用,但是依然会碰到上面的问题,也就是这个密码仅在登录小网站的时候使用,而小网站可能很长时间不登录一次,结果又忘了。

3. 密码管理器的破局

说了这么多,其实密码管理器能解决上述问题的原因也很简单:他的记忆力,和随机能力,可比你好多了。

  • 怕密码强度不够/小网站用密码/不同密码规则,直接调随机数发生器来生成符合规则的
  • 忘记密码,就直接用加密后的数据库来存储
  • 密码泄露,只需泄露哪个改哪个

科学家们长期还在为『人脑厉害』还是『计算机厉害』吵得不可开交(现在好像没有吵了,以前的科普书上还见过类似说法的),但是就密码管理器这玩意来说,计算机胜。你只需要记住一个主密码(用来解锁数据库),剩下的都不用记了

当然,部分朋友可能选择在笔记本,或者电脑里面的某个文档上记录自己的密码(比如笔者在使用密码管理器之前用过一段时间的加密Excel文件),不是说不能用,而是缺乏自动填充和密码生成之类的功能,在有大量网站需要登录以及管理的时候显得麻烦,最后的结果可能就是,获得了一个装满了不同网站一模一样密码的笔记本,所以笔者最后也放弃了这条路子。

4. 不只是管理密码

笔者用的密码管理器是Bitwarden,结果发现,我获得的不仅仅是一个密码管理器,而且还是一个多端同步的加密便签条,这段时间我断断续续往里面存的有:

  • 副流量卡的号码,服务密码
  • 虚拟币钱包的助记词
  • 各种必须设置的PIN
  • 某些低权限SSH账户的信息

反正就是想要确保安全储存,又想要多端访问的东西,都可以往里面塞。

5. 选型与适应

笔者用过的密码管理器不多,只有Keepass和Bitwarden,别的都不太了解。网上也经常能看到有网友询问,用哪个比较好,因此这里结合自己的经历来讲一下。

其实结论很简单:

  • 如果你需要绝对的安全,以及离线记载某些内容,选Keepass
  • 别的情况下,选Bitwarden
  • 如果你还不想付费,且有自己的基础设施(比如能跑Docker的NAS,比如VPS),那么就配合Vaultwarden使用

Keepass是离线的,本地用加密的数据库文件,优点自然是绝对的安全,因为别说破解了,就是密文本身也不会被发送到任何地方;缺点就是同步较为困难,需要自行准备同步软件,而且需要稍微处理下同步间隙的问题(例如A机加了一些,B机加了一些,此时肯定不能简单地把文件复制粘贴过去,Keepass不确定对此类场景有没有特别设计),所以还是较为建议单机使用。

Bitwarden本体是免费的,但是里面有一些高级功能需要付费,具体是哪些功能,就不太清楚了,因为走的是自建Vaultwarden道路,能直接开全功能(毕竟官方收会员费也只是维持基础设施运行而已)

此外,关于引言中那个帖子提到的适应问题,我的结论是,用久了就习惯了,尤其是当你用过几次自动填充功能之后,应该就能很轻松地找到适应的方法。最大的问题可能就是,如果你之前从Chrome自带的密码管理器迁移过来,可能不太适应需要单独解锁密码库这个操作,我的解决办法是,买一个指纹模块接Win Hello(面部识别也行),每天开机后第一次用主密码解锁就行了,后续可以直接按指纹解锁,方便很多。

6. 写在最后

这篇文章挺水的,但是应该『表达了作者对于密码管理器的思乡之情』。

老实说,写到一半的时候就发现,文章看起来好像是AI生成的,不仅分段分点,还有神奇的语气词,就差表情符号了(不过放心,本站不会用AI来水文章,即使有AIGC,也会注明),但好歹该写的都写出来了,抒发一下自己的情感,也就行了。

(完)


木头箱子脆脆,但是这样正好

如无特殊声明,本站内容遵循 CC BY-NC-SA 4.0 协议

转载请注明出处并保留作者信息,谢谢!

本站由 搬瓦工VPS 强力驱动

none
最后修改于:2025年11月02日 00:10

已有 18 条评论

  1. 使用了好几年了,这玩意还有第三方app据说更湿滑,但还是转原版了,Keyguard

  2. rebelliouswhiz rebelliouswhiz

    自从苹果自带了 Password app,再也没记过密码。原来用过一段时间的微软 authenticator,说实话真的难用。

    现在苹果全家桶,安全靠苹果,只记一个高难度苹果根密码和线下系统的密码,除非把我脑子撬开也不可能知道那种。

    等哪天苹果被黑了我再后悔。

    1. 这个也行,据说安全性也不错

  3. grinn grinn

    其实写在纸上是保密要求,贴在显示器上是现实,说是笑话,其实有些保密场所都不少人这么干,这句笑话最开始也是说如何写出军工级代码:安全意识拉满,最高机密信息存储在贴在显示器上的便利贴上。全文:如何写出军工级的代码? - 萧棋的回答 - 知乎
    https://www.zhihu.com/question/48191695/answer/1904864660810885055

    1. 哎,所以说安全系统里,人永远是一个薄弱点

  4. grinn grinn

    其实我用了三套密码,涉及到支付的一套,社交软件一套(三种变体),无关紧要的网站一套(主密码+网站名),这样就算被黑了也损失不大,涉及到社交软件的会被立刻弹异地登录提醒,而且这三套密码虽然有三种逻辑,但也是刻意记过的,就算忘了多试几次也能蒙出来,用了这么多年,基本上够凑活了。有个笑话说最重要的密码应该单独写在纸上,不留任何电子痕迹,然后把这张纸贴在显示器上,虽然可笑但写在纸上确实要比任何的密码管理器安全。

    1. 写纸上可以,但是贴显示器上就要视具体环境而言了,如果说是人来人往的工作场合,还是不贴为妙

  5. grinn grinn

    主密码加网站名是我一直在用的办法,不过这种办法极其不靠谱,在小站注册的密码被恶意的管理员看到后会通过邮箱和密码规律猜到其他网站的密码,倒是可以避免脚本一键撞库,不过如果你是高价值用户黑客愿意耗费精力撞库也只是时间问题,同理规律的字符串在不同网站都有出现就可以定位不同的账号是同一个人了,后者几乎是某种不可说的高危人群才能享受到这待遇,反正我用了这么多年基本上没有被盗过号。一般来说开源的,第三方的密码管理器是比较安全的,浏览器内置的安心,谷歌,火狐我都信不过。

    1. 这个是真的,只能说目前撞库的都是脚本,很少人工撞,多多少少算是『靠混淆实现安全』(Security through obscurity)

  6. 同用 Bitwarden 好一段时间,期间它更新过一版 UI,更顺滑了!

    1. 确实很好用,现在我基本上手头的设备都装上了

  7. 那 Firefox 自带的密码管理器呢?Android 上也可以用于填充其他应用,曾经是未加密的,现在有没有加密没研究过。

    1. 这个倒是不太了解,因为我较少使用Firefox

  8. awacido awacido

    一如既往的高质,真的不水。这是鄙人少数能见到的“人物形象丰满”的博客了。有没有别的推一推 :-0

    1. 谢谢,我平时看这类来源比较多的,也还是在V2EX的VXNA板块而已,暂时没有别的太好的来源

  9. Tessier Tessier

    比较好奇,为什么不建议Chrome自带的密码管理器呢?

    1. Chrome自带的声誉不佳,曾经是未加密的,现在倒是有端到端加密,但密钥也很容易被获取,基本上有点掩耳盗铃的感觉

      此外当然就是,Chrome的密码管理器只能在Chrome内使用,对于其他APP来说,就不是那么方便了

添加新评论

提醒:『评论回复邮件提醒』功能正在测试中
评论后,如果站长有回复,会有邮件通知