我常用的密码管理方案:从浏览器到自建
事情的起因,是我太太某天问我:“咱家 Netflix 密码是多少?” 我说等我查一下。打开一个备忘录,里面躺着四十多个账号,密码大多是"同一个词的不同排列组合",后面缀着年份或者 123。那一刻我意识到:我的密码管理,本质上还是"记在小本子上"的数字化版本,只是小本子变成了手机。 后来我花了几年时间,把这套东西一步步挪到了正轨。路线分三段,每一段都是被现实推着走的。 第一阶段:浏览器记住密码 最开始我让 Chrome 全权接管:记住所有密码,手机电脑同步。登录时一点就填,确实省心。 省心了两年,直到我卖掉一台旧 MacBook。机器恢复出厂设置、钱货两清,第三天我在新电脑上登录 Chrome,发现几个不常用的网站密码根本没同步过来——它们只存在旧电脑本地的 Chrome 数据里。找回密码折腾了一周,有个用了多年的论坛账号至今没找回来。 这事之后我才琢磨明白浏览器的几个硬伤:换个浏览器就抓瞎;在别人电脑上登一次,密码就留在人家那儿;而且没有独立主密码,谁拿到我解锁的电脑,谁就拿到了全部。对独居的年轻人可能是小事,对家里有孩子、电脑偶尔被家人借用的我来说,不太踏实。 第二阶段:独立密码管理器 我先试了 1Password。界面漂亮,填充顺滑,试用期结束一看价格:个人版一个月几美元,一年下来也是一笔小钱。我这种上有老下有小的,订阅制的东西都要掂量一下,默默关掉了续费页。 然后换到 Bitwarden 官方云服务:开源、免费版功能够用、全平台同步。迁移花了一个晚上:Chrome 导出 CSV,导入 Bitwarden,逐条核对。这一步解决了浏览器方案的大部分问题:跨平台、独立主密码、随机密码生成。 但心里始终有个疙瘩:全家人的数字身家(字面意义上的"钥匙")都存在别人家服务器上。虽说是零知识加密,理论上谁都看不到,可万一服务挂了呢?还真让我赶上过一次:有天早上要登一个国内客户的后台,Bitwarden 官方服务抽风,登录界面转了十分钟的圈。我盯着那个圈想:要是哪天急着交一笔国内的款,密码拿不出来,乐子就大了。 第三阶段:自建 Vaultwarden,全家上车 转机是我那台 VPS。2 核 2G,跑博客之余还有富余,干脆把密码服务也搬上去。 方案叫 Vaultwarden,一个 Rust 写的 Bitwarden 服务端轻量实现,内存占用只有几十 MB,API 和官方客户端完全兼容。部署比预想的简单:装 Docker,写个 compose 文件拉镜像,前面套反向代理配好 HTTPS,半个下午跑起来。手机 App 和浏览器插件里把服务器地址改成我自己的域名,登录、同步、自动填充一切照常,我实测同步速度比官方云还快一截。 自建之后,我把全家都安排上了:开了家庭组织,太太的账号、孩子的学校账号、共用的流媒体和水电燃气账单账号,放进家庭共享 vault;各自还有私人 vault,互不打扰。另外开了紧急访问权限给太太——万一我哪天出差联系不上,家里不断粮(数字意义上的)。 代价也有:服务器是自己的,备份得自己操心。我的做法是每天凌晨自动打包数据库,加密后存两份,VPS 本地一份,家里硬盘一份。去年有次我手抖把容器删了,靠备份半小时满血复活,一条没丢。那次之后,我逢人就安利备份。 现在的使用习惯 新注册的账号,一律生成 20 位以上随机密码,我自己一个都不记。我的密码现在连我自己都不知道——这正是它该有的样子。 浏览器插件加手机系统级自动填充,登录基本不动手。 邮箱、银行、券商、域名注册商这些,开两步验证,恢复码单独存一条。 每半年查一遍邮箱泄露情况,中招就改对应密码。 给你抄作业 还在用浏览器记密码?先换到 Bitwarden 官方免费版,一晚上迁移,收益立竿见影,别一步想着登天。 手里正好有台 VPS,愿意花一下午折腾?自建 Vaultwarden 是这条路的终点。数据在自己硬盘上,睡觉都踏实。人到中年,安全感这东西,花钱都难买,备份和自建,算两种。