尝试密码管理器
目录
1 体验的软件
KeePass 之类
KeePass
WindowsKeePassXC
Linux / macOS / WindowsKeePassDC
Android(F-Droid 版)Bitwarden 之类
Vaultwarden
官方推荐使用Docker
安装Bitwarden Desktop Application
Linux / macOS / WindowsBitwarden Mobile Application
Android(F-Droid 版) / iOS
2 最终选择
KeePassXC + KeePassDC
3 正文
很久之前就看到过 KeePass ,知道有“密码管理器”这个概念。不过一直没去试用,觉得安全的管理方式就是记在脑子里。 但,记忆力没那么好,有些不重要的密码直接明文记录。最近看了下记下来的数量,发现数量还不少。 于是萌生使用密码管理器的想法。
在搜索 KeePass 的时候,留意到 KeePass 的变种 KeePassXC ,于是简单体验了下这两款。
KeePass ,界面挺简单,但字体有点小(只找到列表和密码的字体调节选项)。
体验到的特有功能:
一条记录的属性有一个标记字段(用英文逗号分隔多个标记),在软件选项的自动输入栏里开启匹配标记,则可同时匹配 N 个窗口。(但有其他选项能代替该功能)
双通道自动输入混淆
KeePassXC ,界面比 KeePass 要好很多,但便携版本的大小则大100多M 。基础功能和 KeePass 差不多。
本来以为 KeePass 的“双通道自动输入混淆”是一个不错的功能,不过尝试了几次后,发现,每次的输入模式都是一样的。 后来看了下文档,每条记录自动输入的字符串的分区是唯一确定的(Keyboard Two-Channel Auto-Type Obfuscation - KeePass Help Center)。 后来又看到 添加两通道自动类型混淆 (TCATO) - GitHub 的讨论,可能这个功能没想象中的重要。
于是,就基础功能而言,用 KeePass 和 KeePassXC 都差不多,自然偏重于显示效果较好的 KeePassXC 。
本来到这一步就已经能做出选择了,不过这时又发现了另一个软件 Bitwarden 。Bitwarden 全平台都有客户端。 仔细想一下,感觉 Windows 和 Android 应该会有数据互通的可能。 搜索 Bitwarden 搭建相关的文档,找到 Bitwarden_rs ,也就是 Vaultwarden 。 Vaultwarden 官方推荐使用 Docker 安装,不过,就自己那垃圾本地服务器,最好还是直接运行二进制文件。 Vaultwarden 没有编译好的二进制文件下载,网上找到的都是自己编译二进制文件的教程。 但 Wiki 有编译相关的文档,里面有提到提到获取编译好的二进制文件的方法(Pre built binaries - Vaultwarden GitHub Wiki)。 经尝试,发现提取出来的文件中,可以只保留二进制文件和 web-vault 。
然后,参照 Configuration overview - Vaultwarden GitHub Wiki 添加环境变量文件进行相关配置。 成功运行后,遇到的第一个问题就是:浏览器登录需要用 https 访问。 结合 Enabling HTTPS - Vaultwarden GitHub Wiki 以及 证书选项 - Bitwarden 帮助中心中文版 , 使用自签名证书后,能在浏览器登录,不过浏览器会有警告。 网上搜索了一圈 Bitwarden https 相关的东西后,得到的信息是:只有浏览器需要用到 https , Windows 和 Android 不需要,实际测试后的结果也的确是这样。
在使用 Bitwarden Android 版本的时候,发现创建账号的时候,需要勾选 隐私政策 ,这在 Vaultwarden 的网页端上是没有的。 然后,看了下 Bitwarden 的隐私政策,发现会收集一堆数据。找了下 DNS 查询记录,没发现 bit 开头的记录,以为客户端不会收集信息。 后来在查看 Bitwarden Windows 版的数据文件时,发现在 Network Persistent State
文件中,存在 https://r2---sn-j5o7dn7e.gvt1.com
之类的网址, 而 DNS 记录中也确实有这些。
抛开隐私政策不谈,使用 Bitwarden 系列的时候,还发现一个问题:客户端离线状态下,不能新增或修改数据。 不能修改数据还行,但不能新增数据,就个人而言感觉就不太好了。如果在外面需要注册账号,而密码管理器能提供生成密码的功能, 不能新增数据的话,安全点的做法就只能记在纸上了。但在 Vaultwarden 的安装教程中,因为有证书那个环节, 我看到大多人都是有域名的。那上述的情况就只是个例了。
于是,又回到了 KeePassXC 。经测试,KeePassXC 合并有冲突的两个数据库时,会按照 修改时间 来决定最终结果,不过没有冲突提示, 但历史记录还是有的。 KeePassXC 还有一个 KeeShare 的功能,用于共享数据。不过 KeePassDC 没有,不然同步就方便点。