英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
荆棘
一个可以在你的设备之间同步的密码管理器。你的密码不会保存在任何服务器上,所以无需创建账户,也不会有公司被入侵泄露所有信息。你掌控保险库,你掌控密码,仅此而已。
Bramble 在你工作的地方运行:
- 浏览器扩展,适用于 Firefox 和 Chromium 浏览器(Brave、Vivaldi、Chrome、Arc 等)。安装后,你一分钟内即可启动运行。
- 桌面应用,适用于 macOS 和 Linux,配备全局快速访问面板、持续同步中心和定期备份功能。
- iOS 应用,支持系统自动填充、Face ID / Touch ID 解锁及通行密钥。
- Android 应用,拥有原生自动填充服务、生物识别解锁及通行密钥功能。
这四种应用背后都有同一个加密的保险库和 Rust 加密核心,并且你的设备之间通过端对端加密的点对点同步,保险库永远不会被存储在服务器上。
获取 Bramble:
- Chromium: Chrome 网上应用店
- Firefox: Firefox 插件商店
- 桌面版 (macOS, Linux):bramble.sh
- Android: 版本发布
- iOS: App Store
截图
你的保险库 |
选择一个保险库 |
在页面上自动填充 |
|---|---|---|
保存新的登录 |
更新现有登录 |
编辑条目 |
创建通行密钥 |
使用通行密钥登录 |
设置 |
解锁方式 |
备份与导入 |
定期云备份 |
设备同步 |
它的功能
您的密码会在您自己的设备上加密并保持在那里:在浏览器的私有扩展存储中,在桌面应用的普通磁盘文件中,以及在移动端应用的私有加密存储中。没有服务器保存您的保险库,也无需注册账户。要在多台设备上使用同一个保险库,Bramble会在您的设备之间点对点同步,端到端加密,并且在此过程中永远不会将其存储在服务器上。想要自己手中拥有备份吗?随时可以导出加密的备份文件。
所有加密操作都在一个单独的Rust核心中完成:在浏览器中编译为WebAssembly,在iOS和Android上编译为本地库。密钥派生、加密和解密都在该核心中运行,派生的密钥在使用后会从内存中清除。
备份
没有人持有你的保险库副本,所以备份由你自己决定。Bramble给了你两种方法:
- 明确:导出备份文件。 在浏览器扩展或桌面应用的设置中,将整个保险库导出为加密的
.bramble文件,并将其存放在安全的地方:另一个硬盘、U 盘,随你喜欢。它保持加密状态,因此打开它仍然需要你的主密码,被盗的备份本身是无用的。现在以及以后,尤其是在做任何重大更改之前,请务必执行此操作。 - 隐含:点对点同步。 开启同步,你的同步组中的每个设备基本上都是保险库的实时副本。配对第二台设备,每个设备都保存所有内容,这样即使丢失或清除了一个,其他设备仍保留你的数据。这是最简单的安全网,无需记得导出文件。
- 自动:定时云备份(浏览器扩展和桌面应用)。 指向你已经使用的存储,它会根据你选择的计划放入加密备份。一键登录Dropbox(目前仅扩展),使用任何S3兼容的桶(Backblaze B2、Cloudflare R2、Storj、Wasabi、MinIO等),或者指向你自己的自托管WebDAV服务器(Nextcloud、ownCloud、Fastmail等)。添加任意数量的目的地,每个节点有自己的节奏(每日、每周或每月),或者随时按立即备份。只有密文会离开你的设备,所以提供商存储的是它无法读取的内容,而被盗备份仍需你的主密码才能打开;Bramble保留最新的快照,并修剪其余的。桌面应用可以在保险库锁定时保持时间表,因为它已经放在你的托盘里了。将备份恢复到新设备或已清除设备的过程中,可以通过扩展、桌面应用和移动应用进行。
同步的第二台设备和偶尔的导出,意味着你永远不会因为丢失或损坏的设备而失去保险库。
在你的手机上
移动应用重复使用 Bramble 的 Rust 加密核心和保险库格式,并在其上提供原生操作系统自动填充功能:
- 系统自动填充。 Bramble 注册为原生操作系统的凭证提供程序,因此您的登录信息和一次性代码会显示在跨应用和浏览器的键盘和自动填充栏中。
- 口令密钥。 使用口令密钥创建和登录,口令密钥作为普通保险库条目存储,因此可与您的其他设备同步。
- 生物识别解锁。 使用 Face ID、Touch ID 或由操作系统密钥库控制的 Android 生物识别解锁,或者使用您的主密码或恢复码作为备用。
- 设备存储。 保险库存放在原生文件系统上,静态加密,而不是操作系统可能清除的 WebView 数据库中。
- 点对点同步。 将手机与其他设备配对,保险库在设备之间同步,无中转服务器保存您的数据。
iOS 和 Android 应用程序有版本号,并独立于扩展程序发布。
在你的桌面上
这是macOS和Linux的原生应用,而不是穿在服装里的浏览器标签页。它是用Tauri构建的,所以界面是同一个React,而保险库和所有加密操作都存在于Rust进程中。保险库密钥根本不会进入网页视图。
- 快速访问其他所有内容。 按 Cmd Shift 空格键(macOS 上用 Ctrl Shift Space),搜索栏会显示你正在做的事情。找到登录名,复制密码,输入浏览器,或者在应用中打开,然后它会自动移开。
- 它会填满你的浏览器。 只需将应用与 Bramble 扩展配对一次,面板就会在你面前的页面上显示,通道加密且永远不会离开你的机器。配对只会增加扩展:它保持独立,永远不需要安装应用。
- 始终在线的同步中心。点对点同步需要两台设备同时开启,而两部手机很少同时开启。电脑通常会这样。把应用放在托盘里,其他设备醒来时也有东西可以同步。
- 在保险库锁定时运行的备份。 指向兼容S3的桶或你自己的WebDAV服务器,它会根据你的日程上传加密备份,无论你当天是否解锁了任何东西。这些凭据存储在你的操作系统凭证库中,而不是保险库,这正是让锁定的保险库仍然可以备份的原因。
- 你磁盘上的保险库文件。 普通文件,原子化写入,旁边保留上一份快照,而不是可以悄悄驱逐的浏览器数据库。
按照你安装其他所有东西的方式安装它:在 macOS 上使用签名和公证的 .dmg 或 brew install --cask bramble,在 Linux 上使用 APT 仓库、AppImage、.deb 和 .rpm 软件包,或者使用 Nix flake。磁盘映像和 AppImage 会自行更新;包管理器的更新和你的系统其他部分一起更新。
它目前还不能做到的,而不是默默失败:Touch ID解锁、创建并使用通行密钥、导出到KeePass、自动输入到原生应用,以及为vault已经存储的SSH密钥设置SSH代理。导入则是另一回事,而且已经能用:导入通行密钥,或者整个KeePass数据库,它们就像其他东西一样进入Vault。
功能
- 本地优先,永远如此。 你的保险库加密并存储在你自己的设备上(扩展中是浏览器的私有存储,桌面应用中文件存储在你自己的磁盘上,移动端是应用私有存储),绝不存储在服务器上。
- 加密没有捷径。 你的密钥用Argon2id,数据用AES-256-GCM,信封加密,每个条目都有自己的密钥。秘密使用后会从内存中清除。
- 所有内容都加密了。 网站名称、用户名、备注,全部都记在里面。存储的保险库唯一可读的部分是它的头部。
- 智能自动填充无处不在。
www.ikea.com、ca.accounts.ikea.com和ikea.com都匹配相同的登录信息。一个条目,多种网址。在浏览器上,它是在页面上的下拉菜单,可以填充 iframe 和 shadow DOM 内的表单;在移动设备上,它是跨应用和浏览器的操作系统自动填充栏;在桌面应用上,它是快速访问面板,通过与之配对的扩展填充浏览器。 - 通行密钥。 Bramble是你自己的WebAuthn认证器:在扩展和两个移动应用中用通行密钥创建和登录。通行密钥作为保险库条目存储,因此在你的设备上同步,无需供应商云。
- 不仅仅是登录。 登录、支付卡、安全笔记和SSH密钥,每个都有自己的字段。
- 加密备份。 每当你想要拥有一份自己的副本时,可以将整个保险库导出为加密的
.bramble文件。打开它仍然需要你的主密码。 - 导出到 KeePass(浏览器扩展)。将您的保险库保存为标准
.kdbx(KDBX4)文件,使用您为该文件选择的密码,然后在 KeePassXC 或任何其他 KeePass 应用中打开。没有锁定:出口和入口一样简单。 - 定时云备份。 设置后忘记加密备份到 Dropbox(仅限一键扩展)、任何兼容 S3 的桶或自托管的 WebDAV,每个备份都按你选择的节奏进行。只支持密文,所以服务提供商无法读取任何信息。浏览器扩展和桌面应用都做到这一点,桌面应用即使在保险库锁定时也会保留其排程。
- 内置密码生成器。 强密码随时可用。
- 电子邮件别名。 注册服务时无需提供真实邮箱地址。Bramble 会通过 Addy.io、SimpleLogin 或 Fastmail 为每个网站生成一个独特的转发地址,或者通过你拥有的域名生成,完全不需要账户或 API 密钥。如果某个网站后来泄露或开始出售你的邮箱地址,你只需关闭该别名,而不必更改你在各处使用的邮箱地址。在浏览器中,建议会直接出现在注册表单中,只需一键即可使用。
- 解锁你的路。 主密码、硬件密钥(YubiKey、Touch ID、通过WebAuthn PRF访问Windows Hello,浏览器扩展中)、手机上的生物识别码,或恢复码。将它们与密码一起使用,或者关闭密码,只用一个密码进入。
- 恢复码。 每个保险库在设置时都会有一个高熵的恢复码:一个可打印的备份,可以独立于主密码解锁。只显示一次,离线存储,绝不以明文形式保存。随时重置。
- TOTP / 双因素认证代码。 粘贴一个
otpauth://URI 或纯密钥,Bramble 会生成六位数字代码。 - 点对点同步。 通过端到端加密连接在你自己的设备之间同步保险库,按条目合并。没有服务器会存储它,转发节点也只是传递它无法读取的数据。
- 泄露检查。 可选的“我被侵犯了吗”查询,使用k-匿名,确保你的密码不会离开你的电脑。
- 自动锁定。 默认在空闲时间后锁定(可配置)。
- 从其他来源导入。 将条目从 1Password、Bitwarden、Proton Pass、LastPass、Dashlane、Enpass、AliasVault、RoboForm、KeePass(包括 KDBX4 密钥文件)、Apple Passwords 或 Google Password Manager 导入。在 iOS 26 上,可以直接从 Apple Passwords 或其他应用导入所有内容,无需中间文件,包括通行密钥(具体方法)。
- 多钥匙金库。 LUKS式钥匙槽,所以你的主密码、安全密钥、生物识别或恢复码都可以解锁同一个金库。
- 多个保险库。 将多个保险库并排放置,打开Bramble时选择解锁哪个。方便共享设备,或用各自的主密码隔离独立登录。
为什么它胜过云管理器
云端的人把每个人的保险库都放在他们的服务器上,形成一个巨大的目标。一旦被突破,泄露的不是你的保险库,而是数百万同时泄露,几个月后你才从博客文章中得知。说的是你,LastPass和Dashlane 👀
Bramble则颠倒了这个说法:
- 没有服务器可入侵。 你的保险库永远不会离开你的控制。没有中央数据堆供任何人去追查。
- 没有账号,没有订阅,没有遥测数据。 没有注册内容,也没有打电话回家。
- 你拥有你的数据。 它存在你的设备上,在设备间同步,并且在你需要离线副本时导出为加密文件。如果你愿意,可以完全不上传到互联网。你自己决定。
- 云端便利,无需云端副本。 同步会自动保持设备最新,就像云管理器一样,但你的保险库只存储在你的设备上。中继传递的任何信息都是端到端加密的,所以没有中央蜜罐,也没有公司能读取。
- 除了代码,别无可信。 加密是开放的,完全运行在你的设备上。你不能相信任何人说服务器“不能读取你的数据”。
权衡是真实存在的,值得诚实面对:服务器上没有“我忘记密码”按钮。但你并非没有安全网:每个保险库都有恢复码,你可以注册硬件密钥作为另一种进入方式。保存恢复码,保持第二台设备同步,偶尔导出备份。丢失所有入口(密码、密钥和恢复码),保险库就没了,因为没人持有副本。
加密的工作原理
Bramble 使用 LUKS 风格的密钥槽和信封加密。有一个随机的 Vault Key (VEK) 实际上保护你的数据。每种解锁方式(主密码、安全密钥、生物识别或恢复码)都会派生出自己的 Key-Encryption Key (KEK) 来解包同一个 Vault Key 的副本,因此添加或撤销解锁方式从不重新加密任何条目。然后 Vault Key 为每个条目解包一个新的每条目密钥,这个密钥解密条目本身。所有内容都是 AES-256-GCM,全都在同一个 Rust 核心中(在浏览器中编译为 WebAssembly,在移动设备上为本地库)。
flowchart TD
subgraph unlock["Unlock (any one of these)"]
PW["Master password"]
SK["Security key<br/>(WebAuthn PRF)"]
RC["Recovery code"]
end
PW -->|"Argon2id"| KEK["Key-Encryption Key (KEK)<br/>32 bytes, never stored"]
SK -->|"HKDF-SHA256"| KEK
RC -->|"Argon2id"| KEK
subgraph slots["Key slots (in the vault)"]
S["wrapped Vault Key<br/>per slot"]
end
KEK -->|"AES-256-GCM unwrap"| VEK["Vault Key (VEK)<br/>random, protects everything"]
S -.->|"one slot per unlock method"| VEK
VEK -->|"decrypt entries blob"| ENTRIES["Encrypted entries"]
VEK -->|"AES-256-GCM unwrap"| DEK["Per-entry key (DEK)<br/>fresh & random per save"]
DEK -->|"AES-256-GCM decrypt"| DATA["Entry data<br/>(passwords, notes, cards, keys)"]
您的主密码仅用于在加密核心内部导出密钥,KEK 和解密后的密钥在使用后会从内存中清除。在存储中,只有保险库头是可读的;其他所有内容都是密文。
同步的工作原理
只需配对一次设备,之后只要两台设备同时在线并解锁,任一设备即可同步。中继会让它们稍微连接到彼此,然后它们直接连接并合并各自的保险库。当网络或浏览器阻断直接链路时,TURN服务器或中继本身会转发通道,仍是端到端加密,无法读取。
- 逐条记录,绝不会覆盖整个保险库。 Bramble从不用另一个设备的保险库替换一个设备的保险库。每个登录、卡片、笔记和密钥都会单独同步,所以如果你在手机上更改Google密码,在笔记本上添加GitHub登录,两台设备都会同时获得这些更改。
- 每个版本都知道它替换了什么。 每个条目的版本都记录了它是从哪些版本编辑而来的,每个变更都由混合逻辑时钟盖章:时间、计数器和制作该版本的设备。在看到上一个版本后进行的编辑只是简单地替换了它。两个未见到彼此的编辑都会被保留:显示较新的版本,条目会获得一个冲突标签,这样你可以比较版本并选择一个,或者两个都保留。每个设备在它看到的最新版本之后盖章,所以一个时钟比不了几分钟的版本无法让旧的编辑看起来是新的,而一个比前五分钟多的设备则会被拒绝其更改,并被告知修正时钟。
- 结果在任何地方都是一样的。 规则无论设备同步顺序如何,结果都是一样的,所以三台设备即使与附近的设备同步,最终保险库还是会完全一样。
- 条目密封携带。 每个条目单独加密,使用独立密钥,每个版本都以加密方式复制。决定保留哪些版本只读取印章和历史,绝不会读取内容。
- 删除记录保持删除。 删除条目会留下一个墓碑,记录条目的ID和删除时间,像其他更改一样同步。删除时离线的设备无法在下次连接时恢复,墓碑是永久保存的,放在抽屉里几个月的设备也无法恢复。删除只删除它看到的版本:如果其他设备在同步前编辑了条目,条目会保留,在某一设备上标记为已删除,直到你保留或删除它。
有两点值得了解:
- 对同一条目的编辑不会自行合并。如果两台设备在同步前更改了同一条条目,你会选择两个版本,而不是合并一个版本,即使它们更改了不同的字段。这就是合并的代价,而合并时不会比较明文:保留哪个版本仅凭盖章决定。合并字段意味着解密两个版本,并区分其中内容,包括密码。在所有设备更新之前,旧版的Bramble仍然可以让编辑获胜,或者让另一个版本消失,就像它一直以来一样。
- 两个设备需要同时在线。 没有服务器会为离线的设备保存更改,这也意味着你的保险库永远不会被存放在别人的服务器上等待同步。因此,手机主要在应用打开时同步。将桌面应用保留在托盘中,你的其他设备就总有东西可以同步。
它与 KeePass 的比较
如果你喜欢KeePass,你会感到宾至如归:你的加密数据库,你的控制权,没有云端保护你的保险库。Bramble甚至会导入你的KDBX4文件。不同之处:
- 🌐 它会在你所在的位置与你相遇。 一个浏览器扩展、一个桌面应用,以及原生的 iOS 和 Android 应用,都集中在一个保险库里。没有插件桥接桌面程序和浏览器之间的连接,也不需要调试手机上的自动填充功能。
- 自动填充就是能用。 域名匹配和浏览器页面内下拉菜单,加上手机端的系统自动填充和通行密钥,都是内置的,而非附加的。
- 同步而不是复制文件。 使用 Syncthing 或 Dropbox 同步
.kdbx文件会移动整个文件,因此当两个设备都对其进行了修改时,你会得到一个需要手动合并的冲突副本。Bramble 逐条合并条目,自动将不同设备上对不同条目的编辑合并在一起。 - 一个有主见的现代版本,而不是一堆插件和分支。开箱即用Argon2id和AES-256-GCM。
- 现代界面。 KeePass看起来像是从2003年逃出来的(无意冒犯)。Bramble干净快速,支持暗黑模式,布局不会让你皱眉。
KeePass的理念是浏览器原生和移动端原生的涂装和自动填充,运行流畅。
AI 使用披露
《Bramble》的部分内容是在AI辅助(Claude Opus)下编写的,但每一行都由拥有十多年经验的软件工程师指导、审查和塑造,尤其是安全关键部分。AI是快速的打字员,不是架构师。代码库经过大量测试、自动化和手动操作,因为对安全软件来说,“看起来能用”还不够好。
接下来有什么
- 移动设备上的云备份。 浏览器扩展和桌面应用程序目前通过计划任务备份到云存储;下一步是在 iOS 和 Android 应用程序上实现这些计划上传(移动设备已经可以从备份文件恢复)。
- Windows。 桌面应用程序已经为 macOS 和 Linux 发布。现在已有 Windows 版本正在测试中,等待代码签名后发布:未签名的安装程序会让每个下载它的 Windows 用户收到警告,而这不是密码管理器应给人的第一印象。
- 从桌面应用程序扩展更多功能。 在原生应用程序中自动输入,使快速访问面板可以访问非浏览器窗口,并且提供 SSH 代理来使用你保险库中已经保存的 SSH 密钥。
贡献
开源并欢迎贡献。CONTRIBUTING.md 包含了设置步骤、编码标准以及 CI 的要求。有几件事值得提前了解:
- 对于任何大的改动,请先开一个 Issue。Bug 报告和小修复可以直接提交 PR。问题跟踪器在 github.com/flythenimbus/bramble/issues。
- 安全软件要求更高。更改应附带测试,并且加密和金库格式路径会受到额外审查。
- 发现安全问题?请不要在公共跟踪器上提交。请通过 GitHub 安全公告 或电子邮件私下报告,以便在公开之前修复。详情见 SECURITY.md。
添加真实网站自动填充示例或导入格式覆盖的 PR 特别有用。
支持
Bramble 是免费且开源的。如果它对你有用,非常感谢你的打赏。💜 使用你的钱包扫描二维码,或复制下面的地址。
| 门罗币 (XMR) | 比特币 · 闪电网络 | 比特币 · 链上 |
|---|---|---|
门罗币 (XMR)
4AC3txuTwFm4fkamoYeK47c9EpnPwbreHNxJeKDYHiDNN6weD5vVA4BCH1azQhSxa6JjereuVpt21Pu2MyRDFDNNH6KGnWq
比特币 · 闪电
flythenimbus@cake.cash
比特币 · 链上
bc1q78sd5rnuufqdtv9plp0p56hrq72c9unj8tec8t
代码签名政策
由 SignPath.io 提供免费代码签名,由 SignPath Foundation 提供证书。
桌面应用的 Windows 安装程序由 GitHub Actions 从此仓库构建,并且只有在人工批准后才通过 SignPath 签名,因此 Windows 显示 SignPath Foundation 作为其发布者。团队角色、签名构建的制作方法以及隐私声明在完整的 代码签名政策 中有详细说明。
许可证
版权所有 (C) 2026 Webvana 公司
Bramble 是自由软件,根据 GNU 通用公共许可证 v3.0 发布,并附带一个额外权限,允许应用通过应用商店分发(参见 APP-STORE-EXCEPTION.md)。完整文本请参阅 LICENSE 文件。简而言之:使用它、研究它、分叉它,并分享它。如果你分发修改后的版本,也请传递相同的自由,并在 GPLv3 下提供源代码。
- 本文标题:bramble - 本地优先的密码管理器
- 本文链接:https://www.cn121.com/browser/flythenimbus-bramble.html
- 原项目:flythenimbus/bramble 版权归原作者 flythenimbus 及贡献者所有
- 收录信息:本站于 2026-11-06 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 GPL-3.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。基于本页内容形成的衍生作品, 须同样以该协议发布。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 flythenimbus/bramble。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。