OpenDots 安全部署清单:凭据派生、只读浏览器与6大隔离边界完整指南
OpenDots 安全部署清单凭据派生、只读浏览器与6大隔离边界完整指南【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots部署 AI 智能体最怕两件事凭据泄露以及智能体权限失控。OpenDots是一套可完全自托管的常驻 AI 同事AI Coworkers开源模板每个 Dot专家智能体都拥有独立容器化的电脑。本文面向新手用一份清单讲透 OpenDots 的安全设计逐 Dot 凭据派生、只读浏览器服务以及从进程、网络、Slack 身份到内容信任的6 大隔离边界帮助你放心地把 OpenDots 跑进生产环境。先搞清楚OpenDots 的威胁模型是什么OpenDots 官方在 SECURITY.md 中明确了自己的定位这是一个开发中的应用模板不是托管服务本地原型为单所有者模式它不是经过安全审计的自主智能体。这句话很重要——它决定了安全清单的出发点OpenDots 不替你做纵深防御的全部工作但它把关键边界都替你想好了。你的职责是守住这 6 条边界。隔离边界 1逐点凭据派生每台电脑只拿自己的钥匙这是 OpenDots 最核心的安全设计。每台 Dot 的电脑容器不会拿到主令牌master token而是由主令牌通过 HMAC-SHA256 派生出一把只属于该 Dot 的凭据应用侧computer-service.ts 中使用createHmac(sha256, 主令牌)对opendots-computer:DotId派生出每 Dot 令牌监督者supervisor侧harden-supervisor.mjs 用同一算法给容器写入派生令牌。这带来三个直接好处一机一钥拿到某台电脑容器的凭据无法冒充其他 Dot主令牌不外泄监督者令牌、模型密钥、主电脑令牌都不会转发给任何 Dot 容器见 deployment/computers/README.md故障关闭fail closed如果上游 OpenBot 源码被改过补丁脚本会直接拒绝构建逼你先审查。配置时请注意见 docs/COMPUTERS.mdCOMPUTER_SUPERVISOR_TOKEN与COMPUTER_TOKEN必须是两个不同的、至少 24 位的随机密钥绝不能用占位值。隔离边界 2只读浏览器——一个只能看、不能动的爬虫OpenDots 附带一个独立的研究浏览器服务它被设计成只能读公网页面源码见 src/browser/index.ts 与 src/browser/security.ts防护点具体做法身份验证Bearer 令牌使用timingSafeEqual恒定时间比较防时序攻击index.ts协议限制仅允许 http/https且 URL 内不得携带用户名密码端口限制仅放行 80 / 443 标准端口SSRF 防护DNS 解析后逐地址检查私网、链路本地、回环、保留段全部拦截security.ts页面渲染JavaScript 关闭、Service Worker 屏蔽、禁止下载请求限制仅 GET、单页最多 50 个资源请求、16 KB 请求体上限、40 秒总超时结果校验导航结束后再次校验最终 URL防重定向跳回内网也就是说浏览器服务的定位就是只读抓取真正的读写操作发生在边界 3 的容器内且必须显式授权。隔离边界 3容器级隔离——每个 Dot 一台独立电脑每台 Dot 通过 OpenBot 监督者获得自己的容器 独立的命名卷工作区文件与浏览器档案分开持久化只有监督者容器挂载 Docker socket应用容器和 Dot 容器都拿不到compose.computers.yml容器默认不发布主机端口控制网络在容器化部署中被设为 internal应用走服务 DNS 连接compose.computers-app.yml监督者容器执行了cap_drop: [ALL]与no-new-privileges:true加固。权限默认全关浏览器、文件、Shell 三类能力按 Dot 单独保存、默认禁用由服务端逐次校验computer-service.ts。文档也提醒容器共享宿主内核需要更强隔离可显式设置COMPUTER_RUNTIMErunscgVisor模板不替你安装、也不默认宣称更强隔离。隔离边界 4Slack 身份映射——显示名字不算数Slack 集成的身份校验在 slack-channel.ts消息必须来自显式配置的 workspace 用户白名单中的真人否则直接判为无效身份。两条原则要记住永远不要用显示名或客户端自报的 user ID 当身份证明SECURITY.md 原话错误信息经过safeFailure脱敏避免把含凭据的报错内容泄漏到 Slack 或日志。隔离边界 5网络与传输边界——回环、内部网、HTTPS本地开发只在 loopback 上跑应用 5173、浏览器服务 4311、监督者 4312均绑定 127.0.0.1浏览器服务端口不对外公开不要把 computer API 直接暴露到互联网写进了部署文档docs/COMPUTERS.md远程部署必须加认证 HTTPS容器间通过 internal 网络通信宿主端口面积极小。隔离边界 6内容信任与凭据存放——文本不是授权书最后一条边界是最容易被忽视的软边界页面文本、上传内容、模型输出都视为不可信数据不能当作提权依据所有 Space / Dot / 线程操作必须在服务端逐个授权Intelligence、模型、语音、浏览器凭据全部留在服务端永不提交.env或本地数据库研究浏览是只读的页面工具只能写本 Dot 自己 Space 里的文档且写入带版本校验revision check防止旧版本覆盖新内容语音会话使用范围受限的短期凭据其计算动作走与文字、Slack 完全相同的权限通道。部署前自检清单 ✅按顺序核对全部通过再上线☐.env含两个不同的 ≥24 位随机密钥COMPUTER_SUPERVISOR_TOKEN、COMPUTER_TOKEN另加BROWSER_SECRET、OWNER_TOKEN☐.env与本地数据库未加入版本控制☐ 浏览器服务仅监听 127.0.0.1端口未暴露公网☐ 监督者独占 Docker socket应用与 Dot 容器均无 socket☐ 三类电脑能力browser/files/shell按需开启Shell 只给必须跑命令的 Dot☐ Slack 白名单只包含真实使用者 ID☐ 用文档给定的方法做隔离验证两台电脑互不可见对方文件、重启后档案持久、禁用权限后立即失效docs/COMPUTERS.md Verify and troubleshoot 一节常见误区速查 误区正确做法让 Dot 容器直接使用主令牌坚持逐点 HMAC 派生主令牌只留在应用与监督者浏览器服务方便起见放开端口保持只读、回环、4311 不对外用 Slack 显示名识别用户使用显式 workspace/用户白名单映射把模型输出当指令执行输出只是不可信数据权限由服务端策略决定更新时顺手删掉命名卷换主令牌后监督者会保留卷重建容器日常更新勿删卷总结OpenDots 的安全设计可以浓缩成一句话钥匙按 Dot 派生、浏览器只能看、容器各过各的、身份必须显式映射、内容永远不可信、端口默认不对外。配合 SECURITY.md、docs/COMPUTERS.md 与 docs/SETUP.md 这三份官方文档这份清单足以覆盖一次标准的自托管部署审查。发现疑似漏洞请通过仓库的私有漏洞报告渠道提交不要在公开 issue 里贴凭据或复现细节。【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

分页核心PageIndex:从0-based约定到深分页的实战指南

分页核心PageIndex:从0-based约定到深分页的实战指南

我在 .NET 项目里做分页做得多了,对 PageIndex 这个词几乎是条件反射——它是 GridView 的属性,从 0 开始计数,第二页的 PageIndex 是 1 而不是 2。就是这个容易被忽略的约定,让我在前后端联调、数据库翻页、前端组件封装里反复踩…

2026/10/4 8:18:39 阅读更多 →
准静态电磁场:工程建模的物理判据与分层策略

准静态电磁场:工程建模的物理判据与分层策略

1. 为什么“准静态”不是“静态”,却要冠以“静态”之名?刚接触电磁场理论时,我被“准静态电磁场”这个词卡了整整两周。教科书里轻描淡写一句“当系统尺度远小于波长时,可忽略辐射效应,采用准静态近似”,听…

2026/10/4 8:18:39 阅读更多 →
从零搭建AI工程能力:后端老兵的踩坑与复盘

从零搭建AI工程能力:后端老兵的踩坑与复盘

1. 从零搭建AI工程能力:一个后端老兵的踩坑与复盘“ai-engineering-from-scratch”这个标题,第一次看到的时候我愣了一下。不是因为陌生,恰恰相反,是因为太熟悉了——过去两年里,我身边至少有七八个后端、前端甚至运维…

2026/10/4 8:18:39 阅读更多 →

最新新闻

VSCode ARM64 原生版实战:下载、配置与避坑指南

VSCode ARM64 原生版实战:下载、配置与避坑指南

简介:VSCode-win32-arm64-1.86.2.zip是面向Windows on ARM64平台(如Surface Pro X、骁龙笔记本)的Visual Studio Code 1.86.2安装包,适合在ARM架构Windows设备上追求原生能效与流畅体验的开发者。压缩包共1044个文件,约…

2026/10/4 8:59:01 阅读更多 →
MATLAB图像合成加雾实战:从大气散射模型到数据增强

MATLAB图像合成加雾实战:从大气散射模型到数据增强

1. 项目概述与核心需求做图像加雾这事的起因其实挺实在的——前阵子我在跑一个视觉检测的模型,晴天场景下效果还行,一到雾天就开始频繁误判。网上翻了一堆公开数据集,要么分辨率不够,要么雾浓度跟实际场景对不上,后来干…

2026/10/4 8:59:01 阅读更多 →
MONAI安装全攻略:医学影像AI框架环境配置与避坑指南

MONAI安装全攻略:医学影像AI框架环境配置与避坑指南

如果你开始接触医学影像人工智能相关的项目,MONAI 这个词迟早会撞进你眼里。我第一次碰到它,是接手一个 3D 医学图像分割任务,手里全是 NIfTI 格式的 CT 数据,当时用纯 PyTorch 写数据加载、预处理、切块、增强,代码写…

2026/10/4 8:59:01 阅读更多 →
Stata生存分析极简指南:从KM曲线到Cox回归

Stata生存分析极简指南:从KM曲线到Cox回归

1. 为什么说Stata做生存分析可以“极简”干临床科研这几年,Stata给我留下的最深印象是:手里有数据、心里有分析思路,就能靠那几行命令把生存分析快速跑完。谈不上花哨,但胜在极简。和R语言需要写一堆tidyverse管道、SPSS需要在菜单…

2026/10/4 8:59:01 阅读更多 →
用OpenShell把PowerShell脚本变成Windows图形工具

用OpenShell把PowerShell脚本变成Windows图形工具

1. 项目背景与核心价值1.1 OpenShell是什么如果你手头有一大堆PowerShell脚本、批处理命令或者C#工具类代码,平时自己用得飞起,一旦要分发给不懂命令行的同事,立马就尴尬了——要么手把手教对方敲命令,要么费半天劲用WinForms或者…

2026/10/4 8:59:01 阅读更多 →
番茄小说/起点中文网 AI 写作约攻略(2026)

番茄小说/起点中文网 AI 写作约攻略(2026)

越来越多的作者开始用 AI 辅助创作,但签约率参差不齐。核心原因不是"能不能用 AI",而是"怎么用 AI"。这篇攻略详解主流平台签约要求和 AI 辅助创作的实战技巧。 一、主流平台签约要求对比平台类型签约门槛收益模式AI 态度番茄小说免…

2026/10/4 8:58:00 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →