banner
Leo

Leo的恒河沙

一个活跃于在珠三角和长三角的商业顾问/跨境电商专家/投资人/技术宅/骑行爱好者/两条边牧及一堆小野猫的王/已婚;欢迎订阅,日常更新经过我筛选的适合精读的文章,横跨商业经济情感技术等板块,总之就是我感兴趣的一切

2023-12-31-不只为了省钱:开源密码管理器可用性报告 | 少数派会员 π+Prime

不只为了省钱:开源密码管理器可用性报告 | 少数派会员 π+Prime#

#Omnivore

开源和闭源并没有必然的高下,免费和收费也都只是综合成本的一个考量因素。


TL;DR

  • 尽管面临一些合理质疑,1Password 对于大多数用户仍然是最省心的选择,定价相对于提供的服务水平也是合理的。如果你纯粹因为价格因素而想逃离 1Password,那么你最好的选择可能是继续使用 1Password。
  • 对于有一定动手能力的用户,用 Bitwarden 或 KeePass 等开源方案替代 1Password 是可行的,并且使用体验相比前几年已经有所改善。相对而言,KeePass 的初始配置门槛更低,Bitwarden 则在功能上更为完善。

在密码管理领域,1Password 的领导地位是毋庸置疑的。但随着时间推移,对它的质疑和顾虑也逐渐积累:决绝地转向订阅制、云端存储和 Electron「套壳」开发,惹恼了不少老用户;两次接受风投融资、大力拓展商用业务,也引发了对其偏离「群众路线」的担忧。

于是,「有什么好的 1Password 替代品」自然成了很多用户关心的问题。在众多选项中,以 KeePass 和 Bitwarden 为代表的开源方案尤其受极客用户青睐。

然而,如果你真的听从一些推荐,准备从 1Password 迁移到这些开源方案,就会发现这并不是件容易的事;开源的「自主」也意味着需要「自助」。即使愿意花这个功夫,能否完整迁移现有数据、能否延续之前习惯的操作,也是令人犹豫的因素。

更何况,在密码管理这件事上,可以说任何纯粹以省钱为导向的决策都是错误的,而开源光环本身并不足以为安全性提供担保。

因此,本文的目的就是从安全性、便利性等角度出发,研究从 1Password 迁移到 Bitwarden 或 KeePass 的可行性究竟如何,并为有意尝试的用户提供一些提示和技巧。

开源选项知多少#

开源的密码管理工具数量不少,但 Bitwarden 和 KeePass 可能是为数不多能在口碑、功能、跨平台支持等多方面与 1Password 对标的。它们的密码存储机制正好分别类似于 1Password 转向云端前后的两种模式。

Bitwarden#

Bitwarden 是一个相对年轻的项目,2016 年才问世,但凭借着不错的功能集和活跃的更新,已经积攒了一定的口碑。

image

和当前的 1Password 类似,Bitwarden 采用的是中心化的 SaaS 架构:密码数据存储在服务端,客户端只负责读取。但 Bitwarden 服务端和客户端代码(绝大部分)都是开源的,并且官方还提供了服务端的 Docker 镜像,允许和鼓励用户自行托管。

问题在于,这个官方版本包含组件众多、非常笨重,要求预留至少 2GB 内存和 12GB 硬盘空间,对于很多个人服务器来说负担过大。

因此,当我们说「自建 Bitwarden」时,一般指的都是自托管一个社区开发、兼容原版 API 的轻量版本服务端 Vaultwarden1**,然后再与各平台的官方客户端搭配使用。**Vaultwarden 在初代树莓派上也能跑得起来,对于当下大多数 NAS、VPS 自然是不成问题的。

KeePass#

KeePass 的历史则悠久得多,从 2003 年底就一直存在。其架构也更为传统,类似于旧版的 1Password:没有服务端,所有数据存储在一个 KDBX 格式(其主体是经加密的 XML)的密码库文件中。2 只要是能读写这个格式的工具,都可以充当 KeePass 的「兼容客户端」。事实上,由于原版 KeePass 只支持 Windows,界面和操作设计又极其古旧,兼容客户端才是更常见的选择。

image

** 因此,如果选用 KeePass,主要需要考虑的问题是 (1) 选什么客户端和 (2) 怎么同步密码库。** 具体选项推荐将在稍后介绍。

顺带一提,KeePass 生态的开源文化可以说是模范级的。你可以看到两个竞品客户端的开发者在 Reddit 用户「选谁好」的提问下「商业互吹」,或者为了一个拟议扩展格式共同探讨。在如今戾气渐长的开源社区,这样的氛围是不多见的。

安全与稳定性#

安全稳定是密码管理软件的生命线。然而,这也是最令用户摸不着头脑、无从判断优劣的因素。如果只看各个产品的官方网站,给人的印象好像个个都是固若金汤、无懈可击。

我的建议是…… 忽略这些宣传。的确,如果仅从抵御暴力破解的能力看,只要用上足够长度的加密算法,效果基本都是过关的。例如,本文讨论的 1Password、Bitwarden 和 KeePass 都支持 256 位 AES 加密,在设计结构和密钥长度上都能满足保护机密信息的需求。就算量子计算机明天就会普及,这也不是种一时半会能「撞开」的算法。

** 但对密码管理器而言,暴力破解仅仅是诸多可能面对的威胁中的一部分。** 密码管理器是由多个密码库、服务端和客户端等多个组件构成的系统,其中的每个组件都可能遭到攻击或出现故障,成为影响整个「木桶」的安全和稳定的「短板」。

不过,要列举各种潜在威胁并比较各个产品的防御能力,是比较困难的,本文的篇幅也不允许这么做。但我们可以换种思路:** 在信息系统中,「信任」—— 对他方行为的假设和依赖 —— 是漏洞的根源,过度或错位的信任都会成为风险。** 因此,通过比较不同密码管理器都需要哪些「信任」,就可以比较方便地看出风险所在,以及判断自己是否可以接受。

下表就是基于这种思路的(高度简化的)比较,部分借鉴了以太坊创始人 Vitalik Buterin 的方法。每格中的分母表示该组件总共涉及多少提供方,分子表示仅当其中多少个提供方按期望方式运行时,系统才能无故障且安全地使用。例如,「1/1」表示「该组件只有一个提供方,且仅当该方按期望运行时,才能正常使用」。

组件1PasswordBitwardenKeePass
密码库存储1/12/21/N
服务端1/12/20
客户端1/11/1N/N

说明和分析如下:

1Password: 作为商业化产品,1Password 从服务端到客户端都是由开发商提供的,密码库也存储在开发商的服务器上,并且代码都是闭源的。这就是最典型的「中心化」模式,对普通用户最省事,但重度依赖于对开发商的信任。一个加分项是,自 2015 年开始提供云端服务以来,1Password 没有出现过重大的安全和宕机事事故。当然,这只是一种资历,不能成为全盘信任的理由。

Bitwarden: 与 1Password 的一条龙模式相比,(自建版)Bitwarden 最大的不同之处在于有多个提供方:客户端由 Bitwarden 提供,服务端和密码库存储(代码来自 Vaultwarden 项目)则由用户自行托管。换句话说,这个系统中的「信任」是非常分散的。用户除了要信任 Bitwarden 和 Vaultwarden 的代码,还要信任自己用来托管这些代码的服务器 —— 而受技术能力、消费级自建服务器的质量所限,其可靠程度实际上未必高过 1Password 那样经过市场考验的闭源服务。

KeePass: 这是最为「去中心化」的方案。其优点在于没有服务端需要信任,密码库存储和客户端都有丰富选择,可以同时使用、互为备份。缺点则也在于信任的分散:每引入一个存储方案和客户端,就意味着要多信任一个第三方的安全和稳定,而经验表明很多小型开源作品并不足以支撑这样的信任。

可见,开源并不意味着更安全。相反,如果配置不当,使用开源密码管理器反而会让自己暴露于更大风险之下。

当然,指出这点的目的也不是劝退,只是提示读者在选择时注意权衡利弊,并且做好相应的「功课」:如果选择 Bitwarden 方案,需要准备好尽量靠谱的自托管环境(例如运行稳定、性能充裕的 NAS 或云主机);如果选择 KeePass 方案,则要尽量选择稳定的云存储和靠谱的客户端。

易用性#

分析完了安全稳定这个前提,还要关注的是密码管理器本身是否「好用」。实际上,在很多观点看来,使用密码管理器之所以更「安全」,很大程度上是因为它通过减少用户的记忆负担,鼓励用户设置复杂(高熵)、不重复的密码。如果一个密码管理器复杂到让用户提不起使用意愿,以至于重新回到手动输入和重复使用弱密码的老路上,这种好处也就荡然无存了。

为此,下文会从多个角度比较 1Password、Bitwarden 和 KeePass 的易用性,并穿插一些配置使用方面的提示和建议,以方便读者的选择和探索。

跨平台支持#

可能很少有什么类型的软件比密码管理器更需要跨平台支持了。在宣布 1Password 8 桌面版转向 Electron 这一受争议的决定时,开发团队的主要理由就是提高跨平台开发效率、减少平台间功能差异。

从结果来看,尽管还是有些 macOS 老用户对于被剥夺了原生界面版本比较介意,这么做确实让 1Password 支持的平台更多、设计的整体性更强了。从桌面系统到移动系统,从浏览器到命令行,你基本上不用担心 1Password 是否支持自己使用的平台,而且对于各平台原生功能的支持也是非常及时的。

image

Bitwarden#

** 与之相比,Bitwarden 总体上做得也不错,在平台覆盖面、原生功能支持等方面与 1Password 是完全看齐的。** 但如果考虑上设计水平和用户体验,Bitwarden 的出品就要粗糙得多了。

例如,同样是基于 web 技术打包,1Password 8 的桌面版经过几轮迭代,在采用 Electron 的软件中已经算是水准很高。而 Bitwarden 无论是控件风格、动画质感还是操作手感,都仿佛停留在多年以前:设置界面没有独立窗口,而列表视图竟然连 Shift 多选这样基本的惯例交互都不支持,几乎泯灭了专门做个客户端的意义。移动版基于完全相同的设计和框架,体验也是类似。总之,最高的评价就是「捏着鼻子能用」。(好在密码管理器的交互频率不高,确实属于「捏着鼻子能用就行」的一类产品。)

image

实物比证件照还要丑.jpg

KeePass#

**KeePass 方面的情况就更乱了。** 如上文介绍,原版 KeePass 只支持 Windows,而且并不值得推荐;其他平台则更是都靠第三方兼容客户端来覆盖。

此外,KeePass 官方页面虽然提供了一个兼容客户端列表,但其中大部分信息都已经过时。经笔者测试,以下是截至本文写作时在各平台推荐选用的客户端,供读者参考。如果列举了多个选项,排序方式是按推荐程度递减。

平台推荐客户端
Windows/LinuxKeePassXC (开源免费,Qt 框架)
macOSStrongbox (开源,高级功能 €15 / 年或 €60 买断) KeePassXC KeePassium (开源,高级功能 $20 / 年或 $80 买断)
iOSStrongbox KeePassium
AndroidKeepass2Android (开源免费) KeePassDX (开源免费,有捐赠版,$10 买断)
浏览器Strongbox 自带 (Chromium、Firefox 和 Safari) KeePassXC-Browser (Chromium 和 Firefox) KeePassium 自带 (仅 Safari)
命令行KeePass XC 自带

(其实试过的远不止这些,没有列出的基本都是存在重大功能不足或者停止维护。虽然可能勉强能用,但体验实在过差,就不一一列举浪费大家时间了。有兴趣的读者可以自行尝试。)

顺便一提,如果你是因为对 1Password 改用「套壳」框架不满而考虑其他选项,那么特别值得推荐的是 macOS/iOS 上的 Strongbox。虽然定价有点门槛,但它绝对是你见过最符合 Apple 设计规范的软件之一,「原生感」甚至超越以此闻名的旧版 1Password;而且以一己之力在 KeePass 的简陋地基上做出了获得了不输 1Password 的使用体验,可见功力了得。

image

Strongbox

初始配置难度#

对于 1Password 这样的「全管理型」服务而言,其价格的一部分就是服务成本。而既然考虑 DIY 方案,动手环节自然是免不了的。但至于到底哪些方面要动手、动手到什么程度,Bitwarden 和 KeePass 确实存在不少差异。

阅读信息

全文字数 10786 字

阅读本文共需 18 分钟

字号选择

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。