安全设计原则
本地优先
敏感数据(文件、邮件、会话)存储在客户端本地 SQLite 数据库,不上传至云端或服务端。
最小权限
IPC 通道按需注册,渲染进程只能访问预定义的安全 API,无法直接操作文件系统或网络。
纵深防御
从 Context Isolation 到 assertTrustedSender,从参数校验到人工确认,多层安全机制叠加保护。
数据加密
千手在数据存储和传输的每个环节都实施了加密保护:
静态数据加密
服务端数据库中的敏感字段(如组织模型的 API Key)使用 AES-256 加密存储(crypto-js 实现)。加密密钥通过环境变量注入,不硬编码在代码中。用户密码使用 bcrypt 哈希存储,每个密码独立加盐。
凭据隔离存储
客户端本地的 API Key 和用户凭据通过 Electron 的 safeStorage API 存储在操作系统级别的安全存储中(macOS Keychain、Windows Credential Manager、Linux Secret Service)。凭据在内存中使用后立即清除,不写入日志或磁盘缓存。
传输加密
客户端与服务端之间的所有通信均使用 HTTPS/TLS 加密。AI 模型调用通过 SSE(Server-Sent Events)流式传输,全程加密。DirectEngine 直连 AI 厂商 API 同样使用 HTTPS。
IPC 安全机制
Electron 的 IPC(进程间通信)是客户端安全的关键环节。千手在三个层面确保 IPC 通信安全:
Context Isolation(上下文隔离)
渲染进程与主进程运行在完全隔离的 JavaScript 上下文中。渲染进程无法直接访问 Node.js API、文件系统或网络接口。所有跨进程操作必须通过 preload 脚本中预定义的安全桥接 API 进行。
assertTrustedSender(可信发送者验证)
每个 IPC 处理器在执行前验证消息来源。通过检查 event.senderFrame 的 URL 和安全上下文,确保只有来自应用自身渲染进程的请求才会被处理,阻止潜在的注入攻击。
Schema 验证
高风险 IPC 处理器(如文件操作、Bash 执行、邮件发送)对输入参数进行严格的类型和范围校验。路径参数经过规范化处理,防止路径遍历攻击。命令参数经过安全检查,阻止命令注入。
人工确认机制
千手将操作分为低风险和高风险两类。低风险操作(文件预览、搜索、AI 对话)自动执行;高风险操作必须经过人工确认才能执行:
- 邮件发送:AI 草拟的邮件必须经用户确认收件人、内容和附件后才能发送
- Bash 命令执行:展示完整命令内容,用户确认后在沙箱环境中执行
- 文件编辑:展示编辑差异对比,用户确认变更内容后应用
确认请求通过队列管理,支持超时保护机制。若用户在设定时间内未响应,操作将自动取消并记录到审计日志。
审计追踪
千手内置全面的审计追踪系统,覆盖 14 种审计动作 × 6 个分类,记录所有关键操作的完整上下文。审计日志同时保存在客户端本地(SQLite)和服务端(PostgreSQL),支持全文搜索、时间范围过滤和导出。
审计类型覆盖
| 类型 | 记录内容 |
|---|---|
| AI 调用 | 智能体执行记录,包含完整的提示词和模型响应 |
| 邮件发送 | 邮件内容、收件人、附件信息的完整记录 |
| 文件操作 | 文件的创建、修改、删除、重命名等操作 |
| Bash 执行 | 命令内容、执行结果、退出状态码 |
| 文件编辑 | 编辑工具的变更记录,支持差异对比 |
| 认证事件 | 登录、登出、令牌刷新、密码变更 |
| 配置变更 | 模型配置、智能体配置的修改记录 |
| 数据提取 | 从文档中提取审计数据的操作记录 |
| 报告生成 | 合规报告的生成和导出记录 |
| 情报采集 | 情报源同步、内容抓取的操作日志 |
审计系统支持模板化报告生成:IT 管理员可以定义审计报告模板,系统自动从文档中提取审计数据并填充。生成的报告支持导出为 PDF 和 Excel 格式,满足企业合规审查和监管要求。
企业管控
统一管理后台
IT 管理员通过 Web 管理后台集中配置可用模型和智能体。配置变更通过 /api/models/sync 和 /api/agents/sync API 实时同步到所有已连接的客户端。
角色权限控制
基于 JWT + RBAC 的权限体系。管理后台提供 14 个管理端点,覆盖用户管理、角色分配、系统配置和审计查询,细粒度控制操作权限。
合规报告导出
审计日志支持按时间范围、操作类型、用户等维度筛选,一键导出为 PDF/Excel 格式。模板化报告满足等保、ISO 27001 等合规要求。
私有化部署
企业服务端基于 Docker Compose 部署(server + postgres + redis),所有数据存储在企业自有服务器上。客户端可配置为仅连接内网服务端,实现完全数据隔离。