尧图精选

OpenMuse 安全部署指南:单用户边界、密钥静态加密与 HTTPS 远程访问最佳实践

🕒 发布时间:2026/10/1 16:29:31 📁 来源:尧图网络
OpenMuse 安全部署指南单用户边界、密钥静态加密与 HTTPS 远程访问最佳实践【免费下载链接】openmuseA personal agent with a browser, terminal, files, and work that keeps going built with CopilotKit and AG-UI.项目地址: https://gitcode.com/gh_mirrors/op/openmuseOpenMuse 是一款自带浏览器、终端和文件能力的个人 AI 智能体应用。这篇文章是一份 OpenMuse 安全部署指南讲解单用户边界如何隔离、密钥静态加密AES-256-GCM如何落地、以及 HTTPS 远程访问的配置要点帮助你把这套个人智能体安全地跑在公网或内网远程环境。单用户边界一次部署只服务一个 Owner理解 OpenMuse 的安全模型第一件事就是认清它的边界每个部署实例只支持一个 Owner所有者。这不是功能缺失而是刻意设计——live 模式使用共享访问密钥并不是多租户账号认证系统见 SECURITY.md 的 Deployment boundary 一节。这个边界在代码里是硬性校验的sample 模式示例模式只允许绑定回环地址。HOST必须是127.0.0.1、localhost或::1否则配置加载直接失败——示例数据不能暴露到网络上见 config.ts#L151-L152 的强制检查。live 模式真实模式必须同时提供访问密钥和加密密钥OPENMUSE_ACCESS_KEY至少 24 字符TOKEN_ENCRYPTION_KEY为 32 随机字节的 base64 编码缺一则 API 拒绝启动见 config.ts#L144-L150。会话令牌按 SHA-256 摘要存储登录密钥比对使用timingSafeEqual恒定时间比较防时序攻击见 auth.ts#L15-L23。登录接口有速率限制60 秒内最多 30 次尝试超限返回 429。 推论如果你需要给多个人使用请部署多个实例、各自独立磁盘与密钥而不是指望共享一个实例。密钥静态加密32 字节密钥 AES-256-GCM连接 Gmail / Google Calendar 后OpenMuse 需要在你本机存储 OAuth 令牌access token、refresh token。这些令牌是账户钥匙OpenMuse 用信封式静态加密保护它们加密算法为AES-256-GCM输出格式v1.nonce.tag.ciphertext并绑定固定 AAD附加认证数据openmuse:credential:v1篡改任何字节都会解密失败见 vault.ts#L11-L23。密钥要求严格必须是恰好 32 字节且为规范 base64 编码否则直接抛错Credential encryption requires a 32-byte base64 key见 vault.ts#L3-L9。Google 令牌的每次保存都通过 compare-and-swap 写入并轮换 generation令牌过期时用 refresh token 换新后重新加密落盘见 google-auth.ts。生成一个合格密钥的常用命令任选其一openssl rand -base64 32 node -e console.log(require(crypto).randomBytes(32).toString(base64))⚠️TOKEN_ENCRYPTION_KEY丢失且磁盘备份也丢失时已保存的 Google 连接无法解密只能重新授权。请把密钥和.env一起纳入你的备份与保险库管理。短期签名 URL文件与浏览器控制台的 15 分钟通行证PDF 文件和接管浏览器控制台页面不走会话令牌而是走短期 HMAC-SHA256 签名 URL签名内容是owner 路径 过期时间戳由签名密钥生成 64 位十六进制签名有效期只有 15 分钟过期后返回 401提示Document link expired验证同样使用timingSafeEqual恒定时间比较防时序旁路见 auth.ts#L42-L66。签名密钥session-signing-key自动创建在数据目录下文件权限0600。官方提醒很直接一个签名 URL 在过期前就是凭证——不要把它贴进聊天群或公共截图见 SECURITY.md。浏览器 Worker私有令牌与网络边界负责读网页、截图和接管的 Chromium 进程运行在独立的浏览器 Worker 中它有两道防线令牌隔离除/health外所有接口都要求Authorization: Bearer WORKER_TOKEN且令牌必须至少 32 字符的随机值API 与 Worker 两端必须一致。Worker 令牌绝不能发给浏览器或移动端客户端见 apps/worker/README.md。网络隔离Docker Compose 把 Worker 端口只发布到127.0.0.1:8790容器cap_drop: ALL、只读根文件系统、no-new-privileges见 compose.yaml#L1-L31。Worker 内部还强制只允许公网 80/443 出口的代理检查内网地址一律拦截。在 Render 等平台部署时浏览器服务是私有服务pservAPI 通过内网http://openmuse-browser:8790调用它没有公网 URL见 render.yaml#L61-L77。HTTPS 远程访问live 模式的强制检查把 OpenMuse 部署到远程主机如 Render时render.yaml 给出了完整蓝图安全相关的核心配置如下环境变量谁设置安全作用WORKSPACE_MODElive蓝图解锁非回环绑定sample 模式禁止HOST0.0.0.0蓝图仅 live 模式允许OPENMUSE_ACCESS_KEY平台生成登录密钥缺失则无法签到TOKEN_ENCRYPTION_KEY平台生成静态加密密钥缺失则 API 拒绝启动WORKER_TOKEN平台生成浏览器 Worker 私有令牌PUBLIC_API_URL指向 API 的RENDER_EXTERNAL_URLHTTPS签名 URL、OAuth 回调都基于它ALLOWED_ORIGINS指向 Web 的RENDER_EXTERNAL_URL白名单之外 Origin 直接 403三个 HTTPS 要点PUBLIC_API_URL必须设置为公网 HTTPS 地址。所有文件/控制台的签名链接都以它为前缀填错会导致链接无法打开Google OAuth 回调地址也自动变成${PUBLIC_API_URL}/api/google/callback注册回调时要用同一个 HTTPS 地址。CORS 白名单必须收紧。服务器对每个请求校验Origin不在ALLOWED_ORIGINS内的来源直接返回 403 Origin is not allowed见 app.ts#L47-L55。响应头自带防护X-Content-Type-Options: nosniff、Referrer-Policy: no-referrer、Cache-Control: no-store见 app.ts#L51-L53。平台自带的 TLS 终结即可满足 HTTPS 要求自建反向代理Nginx/Caddy时也请保持证书有效并启用 HSTS。数据目录与磁盘.openmuse 请按机密保护API 进程所在的主机必须保持运行后台任务由它承担。磁盘里存着数据库、PDF 和签名密钥本地默认是.openmuse/数据库、files/PDF、session-signing-key与.openmuse/browser-profiles/浏览器档案Render 蓝图挂载 1 GB 磁盘到/var/dataDATA_DIR/var/data/openmuse重新部署不挂盘会清空数据浏览器档案里存有登录 Cookie 与已下载的 PDF官方明确要求它应与应用文档存储享有同等访问控制见 apps/worker/README.md 的 Persistence 一节。备份.env、数据目录、数据库与浏览器档案时请把它们当作账户密钥 个人文件一起加密保存。部署前安全检查清单 ️WORKSPACE_MODElive且HOST/OPENMUSE_ACCESS_KEY/TOKEN_ENCRYPTION_KEY齐全OPENMUSE_ACCESS_KEY≥ 24 字符TOKEN_ENCRYPTION_KEY为 32 字节 base64WORKER_TOKEN≥ 32 字符随机值API 与 Worker 一致PUBLIC_API_URL与ALLOWED_ORIGINS均为 HTTPS 地址且互相匹配Google 回调${PUBLIC_API_URL}/api/google/callback已注册.env、数据目录、浏览器档案已加密备份浏览器 Worker 无公网 URL私有服务或仅回环发布边界提醒最后重申这是单用户个人部署不是面向敌意租户的多租户系统Docker 共享宿主机内核不构成完整 VM 隔离。把它当作你自己的电脑 自己的账户来保护即可。更多验证范围与限制见 docs/VERIFICATION.md可选 Linux 容器的隔离细节见 docs/COMPUTER.md。【免费下载链接】openmuseA personal agent with a browser, terminal, files, and work that keeps going built with CopilotKit and AG-UI.项目地址: https://gitcode.com/gh_mirrors/op/openmuse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →