文章

NodeWarden:零成本自建密码管理服务的终极方案

NodeWarden:零成本自建密码管理服务的终极方案

前言

各位试想这么一个问题:你有多少个网络账户?50个?100个?还是像我一样超过600个?每个账户都需要密码,而这些密码你都是怎么管理的?

如果你和大多数人一样,答案可能是”浏览器帮我记”。Chrome、Edge、Safari——现代浏览器都提供了密码保存功能,看起来很方便,对吧?但这个”方便”背后,藏着多少安全隐患?今天这篇文章,我要和大家聊聊密码管理这件事,以及一个让我眼前一亮的开源项目:NodeWarden

浏览器密码管理器的安全陷阱

看起来很美

现代浏览器的密码保存功能确实很方便:

  • 自动保存密码,无需记忆
  • 跨设备同步
  • 自动填充表单
  • 完全免费

听起来很美好?但当我深入研究这个问题后,发现事情并没有那么简单。

真正的风险

Reddit 上有一个帖子引发了热烈讨论。一位用户分享了他的经历:他在 Chrome 中保存了 600 多个账号密码,并且开启了跨设备同步。然后他听说有人因为 Chrome 被黑客入侵,丢失了所有加密货币存款——即使开启了 2FA,黑客仍然能够修改密码并阻止原主人访问。

这听起来像是危言耸听,但技术上来说,这完全是可能的。原因如下:

1. 浏览器的安全边界有限

浏览器的密码存储本质上是一个本地数据库文件。在 Chrome 中,这个数据库使用操作系统的凭据管理器加密,但问题在于:只要你登录了系统,Chrome 就能解密这些密码。这意味着任何能够访问你系统的恶意软件,理论上都能导出你保存的所有密码。

2. 同步功能的双刃剑

跨设备同步意味着你的密码存储在云端。虽然 Google、Microsoft 等厂商都声称使用了强加密,但密钥管理权在他们手中,而非你手中。一旦账号被盗,所有同步的密码都会暴露。

3. 无法保护桌面和移动应用

这是浏览器密码管理器的一个根本性缺陷:它只能在浏览器中使用。你电脑上安装的 Steam、微信、各种开发工具,手机上的 App——这些应用的密码,浏览器完全无法自动填充。结果就是:你还得手动输入密码,或者干脆用同样的密码。

被迫的选择

正是因为这些问题,专业的密码管理器应运而生:1Password、Bitwarden、LastPass……它们提供了更强的安全性、跨平台支持、以及更丰富的功能。但这些服务要么收费,要么免费版功能受限,对于我们这种垃圾佬来说,总感觉差点意思。

Passkey 与 TOTP:现代认证的正确打开方式

在聊密码管理器之前,有必要先介绍两个现代认证技术:Passkey 和 TOTP。这两个技术正在改变我们保护账户安全的方式。

Passkey:密码的终结者

Passkey 示意图

Passkey(通行密钥)是一种基于 FIDO2/WebAuthn 标准的无密码认证技术。它的核心思想是:用密钥对代替密码。

工作原理

  1. 注册时,设备生成一对密钥:私钥保存在本地,公钥发送给服务器
  2. 登录时,服务器发送一个挑战,设备用私钥签名,服务器用公钥验证
  3. 整个过程,密码从未在网络中传输

为什么更安全?

  • 抗钓鱼:Passkey 与域名绑定,钓鱼网站无法伪造
  • 不可重放:每次签名都不同,无法被截获重用
  • 无需记忆:生物识别(指纹、Face ID)即可完成认证

主流平台支持

几乎所有科技巨头都已经支持 Passkey:Google、Microsoft、Apple、GitHub、Cloudflare、Amazon……这已经是一个成熟的标准。

TOTP:你一直在用的双因素认证

TOTP 示意图

TOTP(Time-based One-Time Password,基于时间的一次性密码)是大多数”验证器 App”使用的技术。它的工作原理是基于共享密钥和当前时间,生成一个 6 位数字验证码。

为什么比短信验证码更好?

  • 不依赖网络:离线也能生成
  • 无法被拦截:短信可以被伪基站拦截,TOTP 不能
  • 标准化:所有验证器 App 都兼容

浏览器的又一块短板

Passkey 和 TOTP 这两个技术,现代浏览器都无法很好地支持:

  • Chrome 的 Passkey 支持仅限于 Google 账号同步的 Passkey,无法跨平台使用
  • TOTP 功能在 Chrome 中完全不存在

而专业的密码管理器(如 Bitwarden、1Password)则完整支持这两种技术,并且可以跨平台自动填充。这进一步凸显了浏览器密码管理器的局限性。

Bitwarden 与 Vaultwarden:开源的力量

说到密码管理器,Bitwarden 是一个绕不开的名字。

为什么是 Bitwarden?

Bitwarden Logo

Bitwarden 是一个开源的密码管理器,它的优势在于:

  • 完全开源:代码公开,安全可审计
  • 跨平台:Windows、macOS、Linux、iOS、Android、浏览器扩展
  • 功能完整:密码存储、TOTP、Passkey、文件附件、安全笔记
  • 端到端加密:只有你能解密你的数据

但问题来了:Bitwarden 的官方服务是收费的。个人高级版每年 $10,家庭版每年 $40。对于企业用户来说,这个价格不算什么,但对于我们这种垃圾佬,有没有更好的方案?

Vaultwarden:Bitwarden 的开源替代

Vaultwarden(原名 Bitwarden_RS)是一个用 Rust 编写的非官方 Bitwarden 服务器实现。简单来说,它让你可以搭建自己的 Bitwarden 服务,完全免费地使用 Bitwarden 的高级功能。

它能做什么?

功能 支持
个人密码库
Send 安全分享
文件附件
网站图标
组织/团队
多因素认证
紧急访问

几乎所有 Bitwarden 的付费功能,Vaultwarden 都支持。而且因为它兼容 Bitwarden 的 API,你可以直接使用 Bitwarden 的官方客户端。

自建服务的痛点

听起来很完美?但 Vaultwarden 有一个根本性的问题:你需要自己部署和维护

这意味着:

  1. 需要一个服务器:VPS、NAS、或者家里的 Homelab
  2. 需要保证数据安全:定期备份、防止数据丢失
  3. 需要保证服务可用:7x24 小时运行,网络稳定
  4. 需要安全配置:HTTPS、防火墙、安全更新

对于技术宅来说,这些都不是问题。但对于普通用户,这简直是一场噩梦。更重要的是,如果你的服务器挂了、数据丢了、被黑了——你的所有密码都没了。这种风险,不是每个人都愿意承担的。

所以问题变成了:有没有一种方案,既能享受自建服务的自由,又不用承担服务器运维的负担?

Cloudflare:赛博菩萨的免费午餐

答案就在 Cloudflare。这家公司被很多人戏称为”赛博菩萨”,因为它提供了大量免费的优质服务。

Workers:无服务器计算平台

Cloudflare Workers 是一个无服务器计算平台。简单来说,你只需要写代码,不需要管服务器——代码会在 Cloudflare 的全球边缘网络上运行。

免费额度

  • 每月 100,000 次请求
  • 每次请求 10ms CPU 时间
  • 无限构建分钟(3000 分钟/月)

对于个人密码管理这种场景,完全足够了。

D1:SQLite 数据库

D1 是 Cloudflare 提供的 SQLite 数据库服务,专为 Workers 设计。

免费额度

资源 免费额度
存储 5 GB
行读取 500 万行/天
行写入 10 万行/天

密码数据主要是文本,体积很小。我自己的密码库(600+ 条记录)导出后只有几百 KB,5 GB 的存储空间绰绰有余。

R2:对象存储

R2 是 Cloudflare 的对象存储服务,兼容 S3 API。

免费额度

资源 免费额度
存储 10 GB
A 类操作 100 万次/月
B 类操作 1000 万次/月
流量 无限制

最关键的是:流量免费。这意味着你可以无限次地上传下载附件,不用担心流量费用。

为什么说这是完美的解决方案?

如果把 Vaultwarden 部署到 Cloudflare 上,我们就能获得:

  1. 零成本:免费额度完全够用
  2. 高可用:Cloudflare 的全球网络,99.99%+ 的可用性
  3. 零运维:不需要管服务器、不需要备份、不需要安全更新
  4. 数据安全:Cloudflare 的安全级别,比你自己搭的服务器靠谱多了

问题是:Vaultwarden 能跑在 Cloudflare Workers 上吗?

NodeWarden:应运而生的解决方案

这就是本文的主角登场的时候了。

NodeWarden 是一个运行在 Cloudflare Workers 上的 Bitwarden 第三方服务端。它兼容官方 Bitwarden 客户端,让你可以免费、零运维地使用自己的密码管理服务。

它能做什么?

功能 Bitwarden NodeWarden 说明
Web Vault 网页端密码库管理
文件夹/收藏 常用管理能力
全量同步 已做兼容与性能优化
附件上传/下载 R2 和 KV 二选一
导入导出 完整实现,含密码库+附件 ZIP 导入
网站图标代理 自动获取网站图标
Passkey、TOTP 完全支持,无需高级版
Send 安全分享功能
多用户 完整的用户管理,邀请机制

客户端支持

  • ✅ Windows 客户端
  • ✅ 手机 App(iOS/Android)
  • ✅ 浏览器扩展(Chrome/Firefox/Edge/Safari)
  • ✅ Linux 客户端
  • ⬜ macOS 客户端(未测试,理论上可用)

部署有多简单?

只需要几步:

  1. Fork 仓库

    打开 NodeWarden 的 GitHub 仓库,点击右上角的 Fork。如果这个项目对你有帮助,顺便点个 Star。

  2. 部署到 Cloudflare

    • 打开 Cloudflare Workers 控制台
    • 选择 “Continue with GitHub”
    • 选择你 Fork 后的 NodeWarden 仓库
    • 点击下一步,默认使用 R2 存储
    • 如果没有开通 R2(需要绑卡),可以切换为 KV 存储
    • 点击部署
  3. 完成!

    几分钟后,你的密码管理服务就上线了。Cloudflare 会给你一个 .workers.dev 域名,你也可以绑定自己的域名。

存储方式对比

存储 是否需绑卡 单个附件上限 免费额度
R2 需要 100 MB 10 GB
KV 不需要 25 MB 1 GB

如果你有信用卡,推荐使用 R2;如果没有,KV 也够用了。

CLI 部署方式(适合开发者)

如果你习惯命令行,也可以这样部署:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 克隆仓库
git clone https://github.com/shuaiplus/NodeWarden.git
cd NodeWarden

# 安装依赖
npm install

# Cloudflare CLI 登录
npx wrangler login

# 部署(R2 模式)
npm run deploy

# 或部署(KV 模式,无需信用卡)
npm run deploy:kv

多用户支持

NodeWarden 支持多用户使用。第一个注册的用户会自动成为管理员,管理员可以在管理页面生成邀请码,其他用户凭邀请码注册。这意味着你可以和家人、朋友共享这个服务。

数据备份

虽然 Cloudflare 的可靠性极高,但数据安全始终是第一位的。NodeWarden 支持在客户端中导出密码库,保存为 JSON 文件。建议定期导出备份,以防万一。

支持的导入格式

  • Bitwarden json/csv
  • 密码库+附件 zip
  • NodeWarden 密码库+附件 json(含加密模式)

还支持直接导入 Bitwarden 密码库+附件 zip,这条路径官方 Bitwarden Web 暂不支持。

为什么说 NodeWarden 是目前唯一的选择?

让我来算一笔账:

方案一:使用 1Password

  • 个人版:$2.99/月 = $35.88/年
  • 家庭版:$4.99/月(最多 5 人)= $59.88/年

方案二:使用 Bitwarden 官方

  • 个人高级版:$10/年
  • 家庭版:$40/年

方案三:自建 Vaultwarden

  • VPS 费用:$24-100+/年
  • 域名费用:$10/年
  • 时间成本:无法估量
  • 风险成本:数据丢失的可能性

方案四:NodeWarden

  • 费用:$0
  • 运维成本:0
  • 可靠性:Cloudflare 级别

对于我们这种垃圾佬来说,选择显而易见。NodeWarden 是目前唯一一个能够实现零成本、零运维、高可用的自建密码管理方案。

更重要的是,NodeWarden 是完全开源的。代码公开,安全可审计,不用担心后门。结合 Cloudflare 的全球网络和安全能力,你的密码数据比放在任何自建服务器上都要安全。

一些注意事项

在结束之前,有几点需要提醒各位:

  1. 主密码很重要

    NodeWarden 使用端到端加密,只有你持有的主密码能解密数据。如果忘记主密码,无法恢复。请务必妥善保管。

  2. 定期备份

    虽然 Cloudflare 很可靠,但数据安全无小事。建议定期在客户端导出密码库备份。

  3. 免责声明

    NodeWarden 是第三方实现,与 Bitwarden 官方无关。如遇问题,请在 GitHub Issues 反馈,不要骚扰 Bitwarden 官方支持。

  4. 数据归属

    你的数据存储在 Cloudflare 的服务器上。虽然 Cloudflare 是一家值得信赖的公司,但如果你对数据主权有极高要求,可能需要考虑其他方案。

总结

密码管理这件事,说大不大,说小不小。但它关乎你的数字生活安全,值得认真对待。

浏览器的密码保存功能虽然方便,但安全性和功能性都有明显短板。专业的密码管理器如 Bitwarden 提供了更好的解决方案,但官方服务需要付费。Vaultwarden 让我们可以免费自建,但运维成本和数据风险让很多人望而却步。

NodeWarden 的出现,完美解决了这些问题。它利用 Cloudflare 的免费服务,实现了零成本、零运维、高可用的自建密码管理方案。对于追求性价比的垃圾佬来说,这是目前最好的选择。

最后,感谢 shuaiplus 开发出这么棒的项目并开源分享。如果这个项目对你有帮助,别忘了去 GitHub 点个 Star。


数据安全无价,但保护它不一定需要花钱。NodeWarden 让我们垃圾佬也能用上企业级的密码管理服务,我就问你 NB 不 NB?

本文由 唐玥璨 版权所有