Skip to content

安全总览

Reeve 的整套安全模型由四层组成,从下到上依次是:

关键机制章节
1️⃣ 凭据存储AES-256-GCM + OS keyring + 可选 Argon2id KEK→DEK凭据加密
2️⃣ AI 访问策略5 档策略 + 危险黑名单 + sudo 强制审批AI 五档策略
3️⃣ 出口脱敏8 个 MCP 工具实时脱敏 + 敏感库出口脱敏
4️⃣ 审计追溯每次工具调用 + 决策都写本地审计审计日志

每一层独立可验证,组合形成纵深防御。

核心威胁模型

我们防的是:

威胁应对层
AI 失控跑 rm -rf /危险黑名单(2️⃣)
AI 把凭据从输出里"复述"到对话上下文出口脱敏(3️⃣)
凭据数据库泄漏(磁盘 / 备份被盗)加密 + KEK→DEK(1️⃣)
凭据通过 MCP schema 流出schema 不含凭据字段(设计约束)
多 AI 客户端串号共用 Tokenscoped Token + IP 白名单(设计约束)
AI 上传木马到 authorized_keys敏感路径写入永久拦(2️⃣)
sudo 提权被滥用sudo 强制审批(2️⃣)
中间人攻击改 SSH 主机TOFU 主机指纹(服务器管理

我们不防的是:

  • ❌ 操作系统级密钥提取(如 RAM 取证)
  • ❌ 物理接触后键盘记录
  • ❌ AI 提供商上下文窗口的对话内容(脱敏后仍可能含元数据)
  • ❌ 用户主动把密码贴到对话框(脱敏只看出口,不看输入)

5 条铁律

  1. MCP 工具的 input/output schema 永不含凭据字段(password / private_key / passphrase / token)
  2. AI 永远只能用服务器别名,凭据明文不出 Rust 后端
  3. 危险黑名单在所有档位都拦(含 trusted)
  4. 任何 MCP transport 只绑 127.0.0.1(含私网卡白名单 CIDR),永不监听 0.0.0.0 / 公网
  5. 每一次 AI 操作都写审计(含拒绝 / 拦截)

违反任何一条都按严重 bug 处理。

凭据生命周期

1. 用户在 UI 输入密码 / 私钥

2. Rust 后端立即 AES-256-GCM 加密

3. 入数据库 servers / installed_services 表
       ↓ (用的时候)
4. Rust 后端用 DEK 解密

5. 传 russh 发起 SSH

6. 用完即扔(内存即弃)

7. 前端 WebView + MCP schema 永远看不到明文

DEK 自己存哪里?

  • 基础模式:明文 DEK 在 OS keyring(macOS Keychain / Windows Credential Manager / Linux Secret Service)
  • 有主密码模式:用户主密码 → Argon2id → KEK → 包装 DEK → wrapped DEK 在 keyring。磁盘 + keyring 同时被偷也开不了,因为缺主密码

详见 凭据加密

AI 决策流程

每次 AI 工具调用,Reeve 后端按这个顺序判定:

1. 全局总开关 enabled? → 否:denied

2. armed_until 限时禁用中? → 是:denied

3. MCP Token 有效 + IP 在白名单? → 否:denied (401)

4. 服务器对该 Token 可见? → 否:denied

5. 工具是元工具(list_*)? → 是:auto allow

6. 命中危险黑名单(含技能 dangerous_commands)? → 是:blocked(写审计)

7. 命令含 sudo? → 是:进审批队列

8. 服务器策略档位判定:
   - Disabled    → denied
   - Readonly    → 工具是只读?auto allow : denied
   - Approval    → 进审批队列
   - Allowlist   → 命中正则?auto allow : 进审批
   - Trusted     → auto allow

9. 执行工具(出口走脱敏规则)

10. 写审计(含 decision + reason)

第 6 步永远不可绕,即使档位是 trusted。

透明性

Reeve 不是黑盒:

  • 所有策略 / 黑名单 / 脱敏规则用户可见、可编辑
  • 所有决策都有审计记录
  • 所有数据都在本地(无遥测、无云端日志)
  • 数据库 schema 开源,可用任何 SQLite 工具自行检查

安全相关功能速查

功能在 Reeve 里的位置
主密码设置设置 → 主密码
空闲自动锁设置 → 主密码
AI 策略档位服务器编辑弹窗 → 策略 tab
危险黑名单AI 策略页
脱敏规则敏感库 → 编辑规则
审计审计页
Token 管理MCP 接入页
重置凭据库设置 → 主密码 → 高级

下一步

受控的远程运维助手 — 让 AI 安全地帮你管服务器