不只為了省錢:開源密碼管理器可用性報告 | 少數派會員 π+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 年才問世,但憑藉著不錯的功能集和活躍的更新,已經積攢了一定的口碑。
和當前的 1Password 類似,Bitwarden 採用的是中心化的 SaaS 架構:密碼數據存儲在服務端,客戶端只負責讀取。但 Bitwarden 服務端和客戶端代碼(絕大部分)都是開源的,並且官方還提供了服務端的 Docker 鏡像,允許和鼓勵用戶自行托管。
問題在於,這個官方版本包含組件眾多、非常笨重,要求預留至少 2GB 內存和 12GB 硬盤空間,對於很多個人服務器來說負擔過大。
因此,當我們說「自建 Bitwarden」時,一般指的都是自托管一個社區開發、兼容原版 API 的輕量版本服務端 Vaultwarden1**,然後再與各平台的官方客戶端搭配使用。**Vaultwarden 在初代樹莓派上也能跑得起來,對於當下大多數 NAS、VPS 自然是不成問題的。
KeePass#
KeePass 的歷史則悠久得多,從 2003 年底就一直存在。其架構也更為傳統,類似於舊版的 1Password:沒有服務端,所有數據存儲在一個 KDBX 格式(其主體是經加密的 XML)的密碼庫文件中。2 只要是能讀寫這個格式的工具,都可以充當 KeePass 的「兼容客戶端」。事實上,由於原版 KeePass 只支持 Windows,界面和操作設計又極其古舊,兼容客戶端才是更常見的選擇。
** 因此,如果選用 KeePass,主要需要考慮的問題是 (1) 選什麼客戶端和 (2) 怎麼同步密碼庫。** 具體選項推薦將稍後介紹。
順帶一提,KeePass 生態的開源文化可以說是模範級的。你可以看到兩個競品客戶端的開發者在 Reddit 用戶「選誰好」的提問下「商業互吹」,或者為了一個擬議擴展格式共同探討。在如今戾氣漸長的開源社區,這樣的氛圍是不多見的。
安全與穩定性#
安全穩定是密碼管理軟件的生命線。然而,這也是最令用戶摸不著頭腦、無從判斷優劣的因素。如果只看各個產品的官方網站,給人的印象好像個個都是固若金湯、無懈可擊。
我的建議是…… 忽略這些宣傳。的確,如果僅從抵禦暴力破解的能力看,只要用上足夠長度的加密算法,效果基本都是過關的。例如,本文討論的 1Password、Bitwarden 和 KeePass 都支持 256 位 AES 加密,在設計結構和密鑰長度上都能滿足保護機密信息的需求。就算量子計算機明天就會普及,這也不是種一時半會能「撞開」的算法。
** 但對密碼管理器而言,暴力破解僅僅是諸多可能面對的威脅中的一部分。** 密碼管理器是由多個密碼庫、服務端和客戶端等多個組件構成的系統,其中的每個組件都可能遭到攻擊或出現故障,成為影響整個「木桶」的安全和穩定的「短板」。
不過,要列舉各種潛在威脅並比較各個產品的防禦能力,是比較困難的,本文的篇幅也不允許這麼做。但我們可以換種思路:** 在信息系統中,「信任」—— 對他方行為的假設和依賴 —— 是漏洞的根源,過度或錯位的信任都會成為風險。** 因此,通過比較不同密碼管理器都需要哪些「信任」,就可以比較方便地看出風險所在,以及判斷自己是否可以接受。
下表就是基於這種思路的(高度簡化的)比較,部分借鑒了以太坊創始人 Vitalik Buterin 的方法。每格中的分母表示該組件總共涉及多少提供方,分子表示僅當其中多少個提供方按期望方式運行時,系統才能無故障且安全地使用。例如,「1/1」表示「該組件只有一個提供方,且僅當該方按期望運行時,才能正常使用」。
組件 | 1Password | Bitwarden | KeePass |
---|---|---|---|
密碼庫存儲 | 1/1 | 2/2 | 1/N |
服務端 | 1/1 | 2/2 | 0 |
客戶端 | 1/1 | 1/1 | N/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 是否支持自己使用的平台,而且對於各平台原生功能的支持也是非常及時的。
Bitwarden#
** 與之相比,Bitwarden 總體上做得也不錯,在平台覆蓋面、原生功能支持等方面與 1Password 是完全看齊的。** 但如果考慮上設計水平和用戶體驗,Bitwarden 的出品就要粗糙得多了。
例如,同樣是基於 web 技術打包,1Password 8 的桌面版經過幾輪迭代,在採用 Electron 的軟件中已經算是水準很高。而 Bitwarden 無論是控件風格、動畫質感還是操作手感,都仿佛停留在多年以前:設置界面沒有獨立窗口,而列表視圖竟然連 Shift 多選這樣基本的慣例交互都不支持,幾乎泯滅了專門做個客戶端的意義。移動版基於完全相同的設計和框架,體驗也是類似。總之,最高的評價就是「捏著鼻子能用」。(好在密碼管理器的交互頻率不高,確實屬於「捏著鼻子能用就行」的一類產品。)
實物比證件照還要醜.jpg
KeePass#
**KeePass 方面的情況就更亂了。** 如上文介紹,原版 KeePass 只支持 Windows,而且並不值得推薦;其他平台則更是都靠第三方兼容客戶端來覆蓋。
此外,KeePass 官方頁面雖然提供了一個兼容客戶端列表,但其中大部分信息都已經過時。經筆者測試,以下是截至本文寫作時在各平台推薦選用的客戶端,供讀者參考。如果列舉了多個選項,排序方式是按推薦程度遞減。
平台 | 推薦客戶端 |
---|---|
Windows/Linux | KeePassXC (開源免費,Qt 框架) |
macOS | Strongbox (開源,高級功能 €15 / 年或 €60 買斷) KeePassXC KeePassium (開源,高級功能 $20 / 年或 $80 買斷) |
iOS | Strongbox KeePassium |
Android | Keepass2Android (開源免費) KeePassDX (開源免費,有捐贈版,$10 買斷) |
瀏覽器 | Strongbox 自帶 (Chromium、Firefox 和 Safari) KeePassXC-Browser (Chromium 和 Firefox) KeePassium 自帶 (僅 Safari) |
命令行 | KeePass XC 自帶 |
(其實試過的遠不止這些,沒有列出的基本都是存在重大功能不足或者停止維護。雖然可能勉強能用,但體驗實在過差,就不一一列舉浪費大家時間了。有興趣的讀者可以自行嘗試。)
順便一提,如果你是因為對 1Password 改用「套殼」框架不滿而考慮其他選項,那麼特別值得推薦的是 macOS/iOS 上的 Strongbox。雖然定價有點門檻,但它絕對是你見過最符合 Apple 設計規範的軟件之一,「原生感」甚至超越以此聞名的舊版 1Password;而且以一己之力在 KeePass 的簡陋地基上做出了獲得了不輸 1Password 的使用體驗,可見功力了得。
Strongbox
初始配置難度#
對於 1Password 這樣的「全管理型」服務而言,其價格的一部分就是服務成本。而既然考慮 DIY 方案,動手環節自然是免不了的。但至於到底哪些方面要動手、動手到什麼程度,Bitwarden 和 KeePass 確實存在不少差異。
閱讀信息
全文字數 10786 字
閱讀本文共需 18 分鐘
字號選擇
小
中
大