跳转到内容

安全与信任模型

bssh Teams 采用零知识(zero-knowledge)安全架构设计:中心同步服务器在机密性层面属于不可信实体,仅在可用性及事件排序层面受到信任。所有敏感的主机连接信息均在离开你的设备前完成端到端加密。

所有客户端密码学逻辑和网络协议实现均在公共开源代码库中开放,支持独立代码审查与校验。

同步服务器永远无法获取解密团队保险库所需的密钥。

服务器可见内容 服务器不可见内容
团队 ID、成员邮箱、角色及席位总数 主机名、IP 地址、用户名、端口、标签及备注
不透明条目 ID、修订版本号及密文大小 密码、SSH 私钥及跳板机路由规则
审计事件:成员 M 在时间 T 从 IP A 连接了条目 E 团队密钥,或任何成员的设备私钥

本安全体系能够有效防护基础设施被入侵、未授权访问及恶意参与者等安全威胁:

威胁场景 防护措施
服务器数据库或存储被入侵 敏感数据在客户端完成加密后再上传。攻击者即使获取了服务器存储,也仅能得到密文和非敏感元数据。
运维方恶意行为或服务器被攻陷 客户端对团队管理员的公钥进行固定(pinning)。在没有管理员有效签名的情况下,服务器无法擅自注入未授权的成员设备公钥。
已移除成员的权限收回 成员被移除时,团队密钥立即发生轮换。后续写入的配置全部使用新密钥加密。(关于本地已缓存数据的局限性见下文说明)。
笔记本电脑或工作设备被盗 本地数据库与 Teams 设备密钥受 Argon2id 与 AES-256-GCM 强加密保护。团队管理员亦可在远端直接吊销被盗设备。
网络窃听者(中间人攻击) 网络传输全程强制使用 TLS 1.3,并叠加应用层端到端加密。客户端会主动拒绝任何明文 HTTP 连接。
审计日志被恶意篡改 每个事件均由成员的 Ed25519 设备密钥签名,并使用 SHA-256 哈希串联成链。验证工具能够精准检测出伪造、重排或被删除的事件。
恶意客户端或成员违规操作 服务器会对每次写入请求校验角色权限、团队作用域及请求频次。客户端在拉取数据时会对每份载荷的签名进行严密验证。

bssh Teams 严格采用经过广泛审计的业界通用密码学标准:

  • 对称加密:采用 AES-256-GCM 对保险库条目进行加密。每份加密载荷均配备唯一的 96 位随机 Nonce 与显式格式版本字节。
  • 密钥派生:使用 Argon2id 保护本地设备口令以抵御暴力破解;使用 HKDF-SHA256 派生运行期的各级子密钥。
  • 密钥协商与包裹加密:通过 X25519 密钥协商算法,将共享的团队密钥单独包裹加密给团队中每台已获审批的成员设备。
  • 数字签名:使用 Ed25519 密钥对为团队成员变更、设备授权以及审计日志事件提供防伪签名。
  • 会话录制:终端屏幕输出与会话录制内容完全保存在运行该会话的本地机器上。它们绝不会上传到同步服务器或与团队共享。
  • 内存安全保护:内存中驻留的敏感密钥数据在生命周期结束(drop)时,会自动通过 zeroize 内存擦除机制彻底覆写。

为了杜绝同步服务器冒充并注入恶意设备公钥,设备授权必须经过严格的带外(out-of-band)验证:

  1. 当用户申请加入团队时,其设备会在本地计算出公开指纹(SHA256:...)。
  2. 用户需通过可信的独立渠道(例如经过端到端加密的企业聊天工具、电话或线下当面),将该指纹告知团队管理员。
  3. 管理员在执行设备授权(bssh teams grant)前,必须确认终端中输入的指纹与安全渠道收到的一致。
  4. 验证无误后,管理员的设备才会使用新设备的公钥对团队密钥进行包裹加密并发布。

当管理员从团队中移除成员(bssh teams remove)时,bssh 会自动触发团队密钥轮换:

  • 系统生成全新的团队密钥,且仅包裹加密给剩余的已审批设备。
  • 随后所有新增或修改的连接条目均会使用新密钥进行加密。
  • 被移除成员的设备将无法再拉取后续更新,也无法解密新写入的条目。

bssh Teams 在设计上不提供任何服务器端的数据恢复机制:

  • 服务器上不存在任何通用后门、万能主恢复密钥或重置流程。
  • 如果某位成员遗失了设备或忘记了本地口令,管理员只需重新向其发出邀请,即可将其新设备绑定到团队密钥。
  • 如果团队的所有管理员全部遗失了设备和口令,加密保险库内的所有数据将永久丢失,无法还原。因此,请确保每个团队始终维持至少两名拥有独立设备的管理员。

同步服务器绝不处于 SSH 数据传输链路之中。SSH 会话直接从你的本地设备建立并发起至目标服务器,或者经过你显式配置的跳板机进行转发。任何 SSH 传输数据、身份凭据或交互式终端字符均不会经过同步服务器。