ChrAlpha's Blog

Thumbnail-%E5%8F%8D%E5%A4%8D%E6%A8%AA%E8%B7%B3%EF%BC%9F%E2%80%94%E2%80%94%20%E6%88%91%E7%9A%84%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%E6%8A%98%E8%85%BE%E8%AE%B0

反复横跳?—— 我的密码管理工具折腾记

2020-03-30·自言语

目前我所有密码分为 16 个重要层级,分为 16 个基础密码。再针对账号网站相关信息,用自创方法生成的字符串追加到基础密码中。这样便构成了 172 个独一无二的密码。就在前天还偷懒将密码存放在 Google 账号里的我,深感许多不便后终于下定决心好好配置一下密码管理工具。

本文更倾向于「记录」而非「教程」,所以本文也只是根据我的折腾经历组织而成。

是否需要密码管理工具

在开始正文之前,不妨先思考一个问题:你是否真的需要密码管理工具?

说到密码就绕不过一个矛盾:易用性与安全性。为了安全性,我们当然希望所有密码都尽可能复杂且很难通过一两个泄露的密码推算出其他密码,可是这样一来记忆这些密码就成位一件很痛苦的事情,每次登陆输入复杂的密码体验也很不愉快。而为了易用性,想必看到这里的你有相当一部分是「一个密码走天下」的,这样肯定有相当大的安全隐患,万一一个密码泄露,所有账号都不安全了。

而密码管理工具之所以存在,很有可能就是为了解决这主要矛盾。通常(至少对于我)衡量一个密码管理工具优越性,都是以 保障足够安全的前提下,充分提升易用性 效果而言。

所以,关于你是否需要密码管理工具这个问题我并不想直接回答。

如果你平时就有良好的密码习惯,所有密码都足够复杂,且不同密码之间很难互相推出,对低频使用密码也能保持较好的记忆。你可能不需要密码管理工具,现有的一套方法或许就足够安全了。

若不,我都建议尝试下密码管理工具。大多情况下,市面上免费的解决方案已经很成熟了,你并不需要在这上面花费太多的成本。而带来的好处也是显而易见的。

还是拿我自己举例。我自认为我的密码是足够复杂的,大小写字母、数字、特殊符号都被基础密码囊括了,16 个层级的密码,配合不那么好猜的追加字符串,对于我这样一个小人物来说安全性应该没有太大问题。但我真的记不住,除了常用的十几个,其他密码过一段时间后通常就弄混层级了。虽然可以大多密码在 Chrome 和谷歌账号的密码管理器中能够找到,但在国内环境过度依赖 Google 感觉不太合适。

既然真的记不住,那就干脆全都别记了。不如扔给密码管理工具帮我们同一管理,使用生成的随机强密码,能够在所有设备上自动填充,不就够了?

于是就有了准备今天和大家分享的内容,关于我在 KeePass 和 Bitwarden 免费密码管理方案的探索,在这两者中优劣取舍。说实话这也困扰了我一会,令我纠结许久,标题「反复横跳」便从中来。

初探 KeePass

其实我开始尝试密码管理工具要追溯到 2018 年,当时使用 LastPass ,不过由于没能摸索到一个舒服的状态便很快放弃了。后来也一直使用 Google 密码管理器,安卓手机自然支持,桌面端 Chrome 浏览器也足以应付大多数场景,毕竟电脑上软件密码远不及网页密码使用得多。

但是和上面提到的一样,我经常忘记一些使用并不是很频繁的密码。每次都要打开浏览器查看显然不够优雅,而且我也不想再其他设备上登陆 Google 账号,所以寻找一款合适的跨平台密码管理工具就被提上日程了。

而在可能不到 10 分钟的考虑下,我就选定了这款工具——KeePass。为什么不是稍有名望的 1Password 或者 LastPass 呢?可能很大一部分原因是因为 KeePass 开源免费,而且鉴于开源优势,全平台都有好用免费的工具可供选择。虽然 172 个密码记忆十分痛苦,但是这还是比不上某些动辄上千个密码的用户,为此花费如此高昂的订阅费用感觉有些不值得。

而决定选择 KeePass 的时候也已经想好,想要获得一个满意的体验肯定是免不了一番折腾的。

上手是在 Windows 上试水的,使用的是官方 KeePass 客户端,但 UI 确实是像上个世纪的产物,不过好在官方提供的大量插件极大提升可玩性。

下载安装,导入中文语言包,新建数据库,导入密码数据,这些流程还是比较流畅的。之后就是一些选项配置:开机自启,自动锁定数据库,使用 URL 匹配密码而非名称,双通道自动输入混淆等等等等。

以上完成后其实就可以使用了,但是我并不满足于此,还配置了一些插件,如 WinHelloUnlock 使用系统方式解锁(如生物识别)、WebAutoType 快速添加、Entry Template for KeePass 自定义密码文件模板、AutoTypeSearch 方便索引不到密码时手动搜索、SourceForgeUpdateChecker 检查 SourceForge 上的插件更新。安装插件的方式也非常简单,插件下载后把 .plgx 复制到插件文件夹即可(部分插件特殊请按官网介绍的方式安装)。

然后利用坚果云同步数据库,并在 Android 手机上使用 KeePass2Android 配合坚果云 WebDAV 直接访问线上数据库,所有修改自动同步。其实 Windows 上也可直接使用坚果云 WebDAV,无需下载至本地。这样多设备同步也就实现了。

正当我认为这样就足够了,准备将密码替换为随机强密码的时候,我突然意识到一个问题:万一我需要在陌生设备(如朋友电脑)上登陆一个账号怎么办,难道手动输入 20 位毫无规律还极其复杂的随机密码吗?

转到 Bitwarden

正是我看重的数据库本地存储,异地登陆的麻烦或许很难避免了。也许我并没有在陌生设备登陆的硬性需求,但我本人十分多虑,万一发生我该如何处理?我确实也还没有什么好的办法。

直到我看到小伙伴 WithdewHua 的文章 写在使用 Bitwarden 俩月后 我才惊觉,好像也没必要强调本地存储,也许云端也足够安全。Bitwarden 官网的这部分描述也直击痛点:

unalted image

而且 Bitwarden 前/后端全部开源,甚至可以使用 docker 部署到自己的服务器上。相比闭源的 1Password 和 LastPass,我对开源软件会更加放心,尽管它们应该都不会对你数据动手脚。

所以我也尝试转入 Bitwarden。相比 KeePass,这款软件需要折腾的部分真的少很多。你只需要安装软件,安装浏览器插件,同步什么的全部会帮你搞定。而在 Android 8.0 以后系统支持的 Autofill,移动端体验也都不错。

同样支持生成随机强密码,唯一的不足可能是没有桌面端自动填充,浏览器的填充也要靠插件实现。不过平心而论桌面端软件登陆真的不多吧,使用浏览器也能应付绝大多数场景了,再说手动复制也不麻烦。

然而到这里,我很可能是不会满足于 Bitwarden 的。也许这只是因为没有找到 KeePass 的补全方案,Bitwarden 也还不及 KeePass 强大。

偶遇 KeeWeb

发现 KeeWeb 完全就是偶遇了,即便转入 Bitwarden 一阵子,我仍然没有放弃寻找能在浏览器上打开 KeePass 云端同步数据库的工具,暂时只发现 KeeWeb 一项。官网就有 Online Web App,你也可以下载项目 gh-page 分支 并自己部署到 GitHub Page 或其他位置。

unalted image

*官方 Demo

没有发现大毛病,基本功能都有。如果配合 Dropbox 还能在任何一个能打开浏览器(并能科学地连接互联网)的设备上查看密码。

但是遗憾还是有,无法使用坚果云 WebDAV,被坚果云安全策略拦截,本地没有问题,但是不能在网页端使用。能够良好运行的譬如 Dropbox/Google Drive 国内环境下比较尴尬。

不过还好,目前我有几台闲置 VPS,可以使用 Nginx 自建 WebDAV 服务并放开支持。然后利用 cron 定时任务对服务器上的数据库与坚果云和 Dropbox 进行同步。虽然 VPS 在境外,但是平时常规使用被封锁的概率还是比较低的,对速度有要求也可以直接访问坚果云数据,毕竟都是同步的。

这样一番配置下来,我才得到一个体验不错、且能在任何地方使用的密码管理方案。

就在这两天内,我在 KeePass 和 Bitwarden 之间切换了 4 次,并且花费大功夫打造这样一套方案。值得吗?不知道,但这还是我,一点不满推翻重来的决心也还在。

如果非要我推荐的话,二话不说肯定是 Bitwarden,节省 75% 的时间,获取 90% 的体验。你要做的只有安装软件,导入密码,安装浏览器插件,其他都不用管

但其实工具的选取,好像也没那么重要。选好一款,踏踏实实地用下去,比在门外观望许久实在得多。祝大家寻找到一种令自己舒服的密码管理方案,感谢阅读!

反复横跳?—— 我的密码管理工具折腾记
本文作者
ChrAlpha
发布日期
2020-03-30
更新日期
2020-03-31
转载或引用本文时请遵守 CC BY-NC-SA 4.0 许可协议,注明出处、不得用于商业用途!
CC BY-NC-SA 4.0