桌面 App
下载与缓存密文,解锁密钥,创建和编辑记录,提供搜索、复制、生成密码与锁定设置。部分产品还与 CLI、SSH agent 或浏览器连接。
不是只有一个“查看网页”的窗口。从主密码到保险库密钥,拆开 1Password、Bitwarden、Proton Pass 与 gopass 的四种设计。看懂本地 App 如何解锁、CLI 如何取用,以及手机授权应该放在哪一层。
这里的“密钥”是用途分类,不是固定数量。一个账户可以有多个保险库、设备、密钥版本和恢复路径。
| 维度 | 1Password | Bitwarden | Proton Pass | gopass |
|---|---|---|---|---|
| 核心入口 | 主密码 + Secret Key | 主密码派生密钥 | 账户密码保护用户私钥 | GPG / age 私钥 |
| 数据组织 | 账户密钥集 → 保险库 | 用户密钥 → 条目密钥;组织单独共享 | 用户密钥 → 库密钥 → 条目密钥 | 每条记录一个加密文件 |
| 同步服务 | 官方云服务 | 官方云 / 自托管 | 官方云服务 | Git 远端,可使用私有仓库 |
| 端侧体验 | 桌面、移动 App、扩展 | 桌面、移动 App、扩展 | 桌面、移动 App、扩展 | CLI 为主,浏览器需桥接组件 |
| 自动化入口 | op + Service Account | bw;另有 bws | pass-cli + agent token | gopass + 可用解密私钥 |
| 解锁后手机复批 | 不是常规个人库的标准流程 | 有设备批准登录;不是 CLI 限时复批 | agent token 不是手机逐次批准 | 需另加手机授权协议 |
| 开放程度 | 公开安全设计;非全套开源 | 公开源码,可自托管;许可按组件核对 | 客户端和 CLI 开源;云服务不等于可自托管 | 开源 CLI,可自行管理存储 |
认证 ≠ 解密;锁定 ≠ 退出;授权过期 ≠ 密码消失。 2FA 决定是否放你通过登录入口;加密密钥决定拿到密文后能否读取。这两个边界可以相互补充。
选择一种系统,查看它的密钥层级、存储边界与授权方式。箭头表示解锁依赖,不是把主密码上传到云端。
它有交互,也承担安全职责。云端保存记录,本机完成密钥处理和明文使用。
下载与缓存密文,解锁密钥,创建和编辑记录,提供搜索、复制、生成密码与锁定设置。部分产品还与 CLI、SSH agent 或浏览器连接。
不是只有一个“查看网页”的窗口。本地解密,通过 Face ID / 指纹解锁,在手机系统中自动填充。Bitwarden 还能让已有设备批准另一台设备的登录请求。
自动填充、登录批准与库解锁是不同交互。识别当前网站,显示匹配账号,自动填充、保存登录信息。可以独立管理解锁状态,也可以与桌面 App 连接,具体按产品设置。
扩展处理网页交互;桌面 App 不等于自动填充本身。给脚本读取字段、输出结构化数据、注入环境变量。它也是客户端,但通常有自己的登录、会话和缓存机制。
不能假定桌面 App 锁定就会使所有 CLI token 失效。编辑时方向反过来:先在端侧加密,再上传密文。账号、设备、访问时间等服务元数据不一定全部被端到端加密。
| 产品 | 图形与交互 | 与 CLI 的关系 | 手机授权的实际能力 |
|---|---|---|---|
| 1Password | 完整桌面/移动 App、扩展;硬件解锁 | op 可通过桌面 App 验证,也可用独立服务账号 | Apple Watch 可批准 Mac 解锁;不等同于任意手机复批 |
| Bitwarden | 完整 App、扩展;PIN / 生物识别按平台支持 | bw 有自己的登录与解锁会话 | 已有设备可批准登录并加密传递解密能力;不是普通 bw 解锁流程 |
| Proton Pass | 完整 App、扩展;锁定策略按客户端设置 | pass-cli 独立登录,个人会话与 PAT 会话有差异 | 现有 token 授权不能直接替代你想要的手机复批 |
| gopass | 命令行交互;浏览器通过桥接组件接入 | CLI 就是核心客户端;GPG / age 后端管理解密与缓存 | 没有内置手机批准;本机 agent 可配置缓存期限 |
来源:1Password CLI 集成 · Bitwarden App 设置 · 设备批准登录 · gopass 客户端
本地库锁、服务器会话、长期 token 和操作系统锁屏,是四个不同的状态。
客户端停止使用当前解密能力,并尽力清理敏感内存。密文缓存通常仍在设备上。下次可通过主密码、指纹或已配置的解锁方式恢复。
通常还会清除本地登录状态和相关账户缓存。它比“锁定”更彻底,但不能收回已经复制到别处的密码。
意味着服务器或正常客户端拒绝后续操作。静态密码与解密密钥没有天然的过期属性;密钥轮换和实际密码轮换是另外的动作。
空闲锁定会受到键鼠活动影响;“批准后 30 分钟失效”是绝对期限,即使一直操作也到期。设计时必须明确是哪一种。
| 系统 | 有效期和锁定 | 需要注意 |
|---|---|---|
| 1Password App | 可设设备空闲后锁定、锁屏/休眠锁定;另设多久重新输入主密码 | 重新输入主密码的周期不是持续解锁时长;“随设备解锁”可单独关闭 |
Bitwarden bw | 解锁得到 BW_SESSION;按 CLI 文档通过 bw lock / logout 结束 | 不能直接继承图形 App 的锁屏策略。当前 CLI 源码已有桌面生物识别解锁路径,是否可用受版本与功能开关影响 |
Proton pass-cli | PAT / agent 会话文档标明 2 小时,不能开启 session lock | token 的有效期与登录会话是两回事;持有未过期 token 可以重新登录 |
| gopass | GPG 模式的口令缓存主要由 gpg-agent 管理 | age 后端也有可选会话 agent 与空闲超时。两种后端均需另加锁屏清缓存集成;缓存期限不是密钥过期 |
来源:1Password 自动锁定 · bw 会话 · pass-cli 会话 · gpg-agent 缓存设置
自动化仍需要一个初始凭据。减少它能读取的范围,比把整个个人密码库交出去更容易管理。
op有人参与时可通过桌面 App 验证;无人值守可用 Service Account。服务账号 token 包含认证及解密材料,授权到指定保险库与读写权限。
op read 'op://Agent/GitHub/token'
op run -- python job.py服务账号安全设计 ↗bw / bwsbw 的个人 API key 只负责登录,通常还要用主密码解锁。Secrets Manager 是独立的自动化产品,bws 使用机器账号 token 读取授权密钥。
bw login --apikey
bw unlock
bws secret listSecrets Manager 模型 ↗pass-cliagent token 指定库或条目,支持有效期、读写角色和撤销。读取等审计操作要求声明原因;原因是可审查的陈述,不是动作正确性的证明。
export PROTON_PASS_AGENT_REASON='部署项目'
# 在该环境下执行凭据读取
pass-cli item view 'pass://Agent/GitHub/token'Agent 命令与审计 ↗agent 使用已授权的私钥。可通过独立密码库/子库与接收者隔离数据。它不内置云端限时 token、集中访问审计或手机复批。
gopass show -o agent/github-token接收者与安全边界 ↗删除 token 可以阻止以后通过服务获取数据。已经下载的密文、已取得的解密密钥和已复制的密码无法远程收回。泄露后需要轮换实际凭据;使用 run 注入环境变量也不能阻止同权限恶意进程读取。
以下是拟议设计,不是四个产品现有功能。假设接受电脑解锁期间可读取密码,重点保护尚未授权、授权到期和锁屏后的状态。
保存长期解锁能力
设备安全存储保护
生物识别批准请求
磁盘只存密文
解锁能力暂留内存
锁屏 / 休眠 / 到期后清除
电脑已解锁,也不会自动解锁密码库。点击“电脑请求解锁”开始。
示例凭据:demo-value(无实际权限)正常客户端在授权到期后停止使用解密能力,磁盘不保存可自动解锁的长期凭据。手机批准建立真实的解锁依赖,而不只是增加一个弹窗。
把解锁材料交到电脑后,期限由可信客户端执行。已控制电脑的程序可能保留它;如要求外部强制过期,应改为独立服务按需读取,或让服务代执行。
“人在电脑旁”是本设计接受的使用前提,不能单独证明操作系统没有恶意程序。
你的目标是由手机控制每次解锁。把必要的长期秘密留在手机,临时加密交付解锁材料,就能实现正常客户端的复批体验。分片更多用于多方批准或恢复;如果分片最终在电脑上重建完整密钥,解锁期间仍可能被复制。是否采用分片应由恢复和多方控制需求决定。
它提供的是“登录时由已有设备批准”的流程。超时动作设为退出登录后,可以再次选择设备登录,接近图形客户端的复批体验,但仍有主密码等替代登录入口,也不是普通 bw CLI 的现成授权流程。强制每次解锁走手机以及绝对时长,需要额外设计。
核实日期:2026 年 10 月 10 日。图中省略 TLS、完整认证报文和恢复协议;优先说明传统账户与最常见使用路径,SSO / passkey 模式应另看对应设计。
说明页不收集密码,不连接密码库。示例命令不含实际密钥,交互演示仅维护当前页面内存状态。此处架构说明用于理解系统,不能替代具体版本的协议审计。