Show HN: Bramble – 本地优先的密码管理器
摘要
Bramble 是一款本地优先的密码管理器,将加密的密码库存储在用户自己的设备上,提供浏览器扩展、iOS 和 Android 应用,支持点对点同步、密钥和无缝自动填充。
查看缓存全文
缓存时间: 2026/07/03 20:16
flythenimbus/bramble
来源:https://github.com/flythenimbus/bramble
Bramble
一款让你的秘密保存在自己设备上的密码管理器。无需账户、无需服务器存储你的密码库、无需担心公司被入侵导致所有数据泄露。你掌握密码库,你掌握密码,仅此而已。Bramble 在你所在之处运行:
- 浏览器扩展 —— 适用于 Chromium 内核的浏览器(Brave、Vivaldi、Chrome、Arc 等)。安装后一分钟内即可使用。
- iOS 应用 —— 支持系统自动填充、面容 ID / 触控 ID 解锁以及通行密钥。
- Android 应用 —— 提供原生自动填充服务、生物识别解锁和通行密钥。
同一份加密的密码库和同一套 Rust 加密核心支撑着这三个平台,你的设备之间可以直接点对点同步,无需中间云服务。
获取 Bramble:
- Chromium:Chrome 网上应用店(https://chromewebstore.google.com/detail/bramble/kmokhdhoggbdcgoepifeckhgbfakaknm)
- Android:Releases(https://github.com/flythenimbus/bramble/releases)
它的功能
你的密码在设备上加密,并写入一个单一的密码库文件,你可以将其放在任何你选择的位置。在桌面端,放入 Dropbox 或 Google Drive 文件夹中,即可在多台机器间同步;在移动端,它存放在设备的加密存储中。Bramble 永远不会看到那个文件夹或该文件的内容,它只是读取和写入一个加密文件。完全不想让云服务介入?Bramble 自带的点对点同步可以直接在设备间镜像密码库。所有加密操作均在一个 Rust 核心中完成:在浏览器中编译为 WebAssembly,在 iOS 和 Android 上编译为原生库。你的主密码永远不会触及 JavaScript 堆。
在手机上
移动应用复用了 Bramble 的 Rust 加密核心和密码库格式,并在其上层提供了原生操作系统自动填充:
- 系统自动填充 —— Bramble 注册为原生的操作系统凭据提供者,因此你的登录信息和一次性验证码会出现在键盘和自动填充栏中,覆盖各应用和浏览器。
- 通行密钥 —— 创建并使用通行密钥登录,通行密钥作为普通密码库条目存储,因此会与其他内容一同在设备间同步。
- 生物识别解锁 —— 通过面容 ID、触控 ID 或 Android 生物识别(受系统密钥库保护)解锁,或回退到主密码或恢复代码。
- 设备本地存储 —— 密码库存储在原生文件系统上,静态加密,而不是放在可能被操作系统回收的 WebView 数据库中。
- 点对点同步 —— 将手机与其他设备配对,密码库直接在它们之间同步,无需中继服务器持有你的数据。
iOS 和 Android 应用独立于扩展进行版本管理和发布。
功能特性
- 始终本地优先 —— 磁盘上一个加密文件,放在你选定的位置。
- 加密无偷工减料 —— 使用 Argon2id 生成密钥,AES-256-GCM 加密数据,信封加密使每条记录拥有自己的密钥。秘密在使用后从内存中清除。
- 所有内容均加密 —— 站点名称、用户名、备注等全部加密。磁盘上唯一可读的内容是文件头。
- 随处智能自动填充 ——
www.ikea.com、ca.accounts.ikea.com和ikea.com均匹配同一个登录项。一条记录,多个网址。浏览器中显示页面内下拉菜单,移动端则显示系统的自动填充栏,覆盖各应用和浏览器。 - 通行密钥 —— Bramble 是你自己的 WebAuthn 验证器:在扩展和两个移动应用中都可以创建并使用通行密钥登录。通行密钥作为密码库条目存储,因此无需厂商云即可在设备间同步。
- 不仅仅是登录项 —— 登录项、支付卡、安全笔记和 SSH 密钥,各有专属字段。
- 内置密码生成器 —— 随时生成强密码。
- 多种解锁方式 —— 主密码、硬件密钥(YubiKey、触控 ID、通过 WebAuthn PRF 实现的 Windows Hello 桌面端)、移动端生物识别,或恢复代码。可以与密码同时使用,也可以关闭密码,仅用一种方式解锁。
- 恢复代码 —— 每个密码库在设置时都会生成一条高熵恢复代码:一份可打印的备份,独立于主密码解锁。显示一次,离线存储,永不保留明文。可随时重置。
- TOTP / 两步验证码 —— 粘贴
otpauth://URI 或纯密钥,Bramble 即可生成六位验证码。 - 点对点同步 —— 通过端到端加密连接,直接在自有设备间镜像密码库。无需云,无需中继服务器持有你的数据。
- 泄露检查 —— 可选使用 Have I Been Pwned 查询,采用 k-匿名性,密码相关信息不会离开你的设备。
- 自动锁定 —— 空闲一段时间后自动锁定(可配置)。
- 从 KeePass 导入 —— 可导入 KDBX4 数据库,包括密钥文件。
- 多密钥密码库 —— 类似 LUKS 的密钥槽,因此主密码、安全密钥、生物识别或恢复代码均可解锁同一个密码库。
为什么这胜过云端管理器
云端厂商将所有人的密码库存放在他们的服务器上,成为一个巨大的目标。一旦被攻破,泄露的不是你的密码库,而是数百万个同时泄露,而你往往在几个月后通过一篇博客文章才得知。说的就是你,LastPass 和 Dashlane 👀
Bramble 将这种模式颠倒过来:
- 没有服务器可被攻破 —— 你的密码库从未离开你的掌控。没有集中存放的数据可供任何人攻击。
- 无需账户、无需订阅、无遥测 —— 无需注册任何东西,没有数据回传连接。
- 你拥有文件 —— 备份、同步或完全离线,由你决定。
- 无需信任任何东西,只需信任代码 —— 加密算法开源,完全在你的设备上运行。你不需要相信任何人说的“服务器无法读取你的数据”。
代价是真实存在的,而且值得坦诚相告:没有服务器上“我忘了密码”这样的按钮。但你并非没有安全网:每个密码库都会生成一条恢复代码,你还可以注册一个硬件密钥作为另一种解锁方式。保存好恢复代码并备份你的密码库文件。如果丢失了全部(密码、密钥和恢复代码),密码库就再也无法恢复,因为没有任何其他人持有副本。
加密原理
Bramble 采用类似 LUKS 的密钥槽和信封加密方案。有一个随机生成的密码库密钥(VEK)实际保护你的数据。每种解锁方式(主密码、安全密钥、生物识别或恢复代码)都会派生自己的密钥加密密钥(KEK),用于解开同一 VEK 的一份副本,因此添加或撤销一种解锁方式永远不会重新加密任何一条记录。然后 VEK 为每个条目解开一个新鲜的、按条目生成的密钥,该密钥再解密条目本身。所有操作均使用 AES-256-GCM,全部在同一个 Rust 核心中完成(浏览器中编译为 WebAssembly,移动端为原生库)。
mermaid flowchart TD subgraph unlock["解锁(任选其一)"] PW["主密码"] SK["安全密钥(WebAuthn PRF)"] RC["恢复代码"] end PW -->|"Argon2id"| KEK["密钥加密密钥(KEK)32 字节,永不存储"] SK -->|"HKDF-SHA256"| KEK RC -->|"Argon2id"| KEK subgraph slots["密钥槽(磁盘上)"] S["包装后的 Vault Key(每个槽一份)"] end KEK -->|"AES-256-GCM 解开"| VEK["密码库密钥(VEK)随机生成,保护所有数据"] S -.->|"每个解锁方式对应一个槽"| VEK VEK -->|"解密条目块"| ENTRIES["加密条目"] VEK -->|"AES-256-GCM 解开"| DEK["每个条目的密钥(DEK)每次保存新鲜随机生成"] DEK -->|"AES-256-GCM 解密"| DATA["条目数据(密码、备注、卡片、密钥)"]
你的主密码永远不会离开加密核心,KEK 和解密后的密钥在使用后会被从内存中清除。在磁盘上,只有文件头可读,其他所有内容都是密文。
与 KeePass 的对比
如果你喜欢 KeePass,你会感到熟悉:你加密的数据库、你的掌控、没有云端中间商。Bramble 甚至可以导入 KDBX4 文件。不同之处在于:
- 🌐 它在你所在之处工作 —— 浏览器扩展以及原生的 iOS 和 Android 应用,全部基于同一密码库。无需单独的桌面应用或与本地程序通信的插件,也无需费力配置手机上的自动填充。
- 自动填充开箱即用 —— 浏览器中的域名匹配和页面内下拉菜单,加上移动端的系统自动填充和通行密钥,全部内建,而非临时拼凑。
- 单一、有主见、现代构建 —— 而不是一堆插件和分支的杂乱组合。Argon2id 和 AES-256-GCM 开箱即用。
- 现代 UI —— KeePass 看起来像是从 2003 年逃出来的(没有不敬的意思)。Bramble 简洁快速,支持深色模式,布局不会让你皱眉。
KeePass 的哲学,加上浏览器原生和移动原生的外衣,以及流畅的自动填充。
AI 使用声明
Bramble 的部分代码借助 AI(Claude Opus)编写,但每一行都由一位拥有超过十年经验的软件工程师指导、审查和塑造,尤其是安全关键部分。AI 只是一个快速打字员,不是设计师。代码库经过了大量自动化测试和手动测试,因为对于安全软件来说,“看起来能用”是不够的。
即将推出的功能
- 更智能的自动填充 —— 更全面的表单检测覆盖,修复那些喜欢搞破坏的奇怪结账和登录页面。
- Firefox 和 Safari —— 扩展支持扩展到 Chromium 之外。更远期的计划:文件附件和 iframe/shadow-DOM 自动填充。
状态
核心功能已经实作并可用。Chromium 扩展已公开发布,原生的 iOS 和 Android 应用提供相同的密码库,并支持系统自动填充、通行密钥和生物识别解锁。Firefox 已经在路线图上。发现错误或有想法?请提交 issue。
贡献
本项目是开源的,欢迎贡献。需要注意几点:
- 对于较大的改动,请先提交 issue。 错误报告和小修小补可以直接提交 PR。
- 安全软件有更高的标准。 期望改动附带测试,尤其是加密和密码库格式相关的路径会接受额外审查。
- 发现安全漏洞? 请不要在公开追踪器中提交。请通过 GitHub Security Advisories(https://github.com/flythenimbus/bramble/security/advisories)或电子邮件私下报告,以便在公开前修复。详情参见 SECURITY.md。
- 非常欢迎提交添加真实站点自动填充测试用例或导入格式覆盖的 PR。
支持
Bramble 是免费开源的。如果它对你有用,欢迎捐赠一些门罗币。💜
4AC3txuTwFm4fkamoYeK47c9EpnPwbreHNxJeKDYHiDNN6weD5vVA4BCH1azQhSxa6JjereuVpt21Pu2MyRDFDNNH6KGnWq
许可证
Bramble 是自由软件,以 GNU 通用公共许可证 v3.0 发布。完整文本见 LICENSE 文件。简而言之:你可以使用、学习、复刻和分享它。如果你分发修改后的版本,请传递相同的自由,并在 GPLv3 下提供你的源代码。
相似文章
plass:管理密码
plass 是一个用 C 语言编写的极简密码管理器,受 UNIX 哲学启发,使用 GPG 进行加密,并借助 got 进行版本控制。
Dashlane 披露攻击者如何成功下载加密密码库
Dashlane 披露了一起有组织的暴力破解攻击事件:威胁行为者滥用设备注册 API,同时向数千个账户发送一次性验证码,在攻击被制止前,已成功下载了不足 20 名用户的加密密码库。
[发布] Nexidion – 一个拥有自主本地AI后台工作器的私有知识库。
Nexidion 是一款开源的层次化 Markdown 笔记应用,内置自主运行的本地 AI 后台工作进程,可利用本地 LLM 对笔记进行重组、摘要和提取待办事项,并配备内置版本控制以确保安全。
Show HN: PMB – 本地内存系统,用于显示编码代理是否使用它
PMB 是一种本地优先的内存系统,专为 AI 编码代理设计,可将决策、经验教训和项目事实存储在磁盘上的 SQLite 文件中。它通过 MCP 与 Claude Code、Cursor、Codex 和 Zed 集成,无需依赖云端即可快速召回信息。
我曾询问是否存在一种以本地优先的 Markdown 记忆服务器。你们给出了约 20 个建议。以下是我逐一调研后的发现。
全面回顾以本地优先的 AI 智能体记忆系统,对比了 mem0、Hindsight 和 mnem 等选项,最终推荐 Engram,因为它独特地结合了本地存储和人类可读的 Markdown 文件。