news 2026/11/3 10:16:25

Habblaud 隐私与安全设计深度解析:本地优先、只读与密钥掩码如何守住你的凭据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Habblaud 隐私与安全设计深度解析:本地优先、只读与密钥掩码如何守住你的凭据

【免费下载链接】habblaud

项目地址:https://gitcode.com/gh_mirrors/ha/habblaud
点击查看免费下载

Habblaud 是一款开源的「AI 智能体虚拟办公室」,把每个 Claude Code / Codex 会话变成办公楼里实时行动的像素小人。它的核心卖点不是画面,而是一整套本地优先、只读、密钥掩码的隐私安全设计:服务器默认只监听127.0.0.1,从不读取凭据文件,所有到达浏览器的文本都先经过脱敏,让 API 密钥和密码留在你自己的电脑上。

为什么监控 AI 智能体的工具更需要讲究隐私?

Habblaud 会读取 Claude Code 在本地写下的会话文件,把「谁在敲代码、谁在等你审批、谁已经下班」渲染成一栋楼。它还有一个更敏感的功能:终端视图——可以直接在网页里看到完整会话对话。

数据越敏感,防线越要清晰。Habblaud 的回答是三层结构:

  1. 本地优先(Local-first):服务只对自己的电脑开放;
  2. 只读(Read-only):只读会话数据,绝不碰凭据文件,也绝不回写;
  3. 密钥掩码(Secret Masking):即使文本必须显示,token 和密码也会先被打码。

下面逐层拆解。🏢

本地优先:服务器只对你自己的电脑开门

  • 默认绑定回环地址:HABBLAUD_HOST缺省就是127.0.0.1,局域网里的其他设备根本连不上。见 server/config.ts。
  • 零遥测:全程序唯一的对外请求是每 6 小时一次、不带任何 token 的匿名新版本检查(对方只看到你的 IP 和版本号)。介意可用HABBLAUD_UPDATE_CHECK=0彻底关掉。
  • 插件(mod)只跟本地说话:装在 Claude Code 会话里的 mod 只向127.0.0.1发请求,不读对话内容、不调用模型、不外发任何数据,具体能力清单可用claude plugin validate静态核查。详见 mod/README.md。
  • Docker 同样默认锁死:docker-compose.yml中端口默认只发布到127.0.0.1,并且带「回环校验」——一旦端口暴露到网络,敏感的终端功能会被自动拒之门外。

只读原则:只读会话数据,从不读凭据、从不回写

Habblaud 对 Claude Code 的文件夹从不写入(唯一的例外是你亲手运行的安装脚本,且改配置前会先做备份)。它从每个账号的.claude.json里也只取邮箱、组织名和用量缓存这三样东西。

Docker 模式把「只读」做到了文件系统层面:

  • 只挂载<账号>/projects和<账号>/sessions,绝不挂载整个账号目录——凭据和配置就放在那里;
  • Codex 侧只挂载sessions/、archived_sessions/、thread-writer-locks/三个文件夹,且为只读挂载;auth.json、config.toml、shell 环境快照、历史记录等一律不读。生成逻辑见 scripts/docker-up.ts。

容器本身也被加固:根文件系统只读(read_only: true)、cap_drop: ALL丢弃全部特权、no-new-privileges禁止提权、/tmp为 64MB 内存盘。见 docker-compose.yml。

密钥掩码:文本到达浏览器前的最后一道闸

即便要显示,敏感信息也不会「原样出街」。核心是一个统一的脱敏函数maskSecrets(),内置了 20 多条正则规则,覆盖常见密钥形态:

场景示例掩码后
认证头Authorization: Bearer abc123...Authorization: Bearer ***
URL 内嵌账号密码https://user:pass@hosthttps://user:***@host
curl 命令行curl -u user:passcurl -u user:***
环境变量 / JSONGITHUB_TOKEN=ghp_abc...GITHUB_TOKEN=***
知名密钥前缀sk-...、ghp_...、AKIA...sk-***、gh*_***、AKIA***
JWT 令牌eyJhbGci...eyJ***
PEM 私钥块-----BEGIN PRIVATE KEY-----...[私钥]

完整规则表见 shared/activity.ts。这条防线在三条最敏感的链路上都被强制执行:

  • 活动描述:命令、提示词、工具参数进界面前先掩码,见 shared/activity.ts;
  • 终端会话全文:见 server/sources/transcript.ts;
  • 权限审批请求:命令与 diff 展示前同样掩码,见 server/permissions/codex.ts。

边缘防护:挡掉恶意网页的三种经典攻击

本地服务最怕的不是外人,而是浏览器里打开的恶意网页。Habblaud 在 HTTP 层做了三道边防护,核心逻辑在 server/http/guard.ts:

  1. 防 DNS Rebinding:只接受Host头为 IP 字面量、localhost或显式放行的域名——攻击者无法让自己的域名「解析到 127.0.0.1」后伪装成同源读取数据;
  2. 防 CSRF:所有POST(审批、发消息等会改变状态的操作)必须携带application/json且Origin为本地同源,恶意表单和跨站 fetch 发不出来;
  3. 防页面嵌入:响应头带X-Frame-Options: SAMEORIGIN,Habblaud 页面无法被其他网站用 iframe 套壳,见 server/http/app.ts。

更进一步,终端、权限审批、发消息、角色编辑器这类「会作用于会话」的功能,还要求每次请求的Host必须是localhost/127.0.0.1——走代理或隧道的网络 IP 一律拒绝,见 server/config.ts。

可选的远程访问:scrypt 哈希 + 本地 CA 的一整套锁

如果你确实想在手机上审批,Habblaud 提供了默认关闭、显式开启的远程端口(npm run remote:setup之后才存在),并且把每个环节都上锁:

  • 密码:只存 scrypt 哈希(自带盐值与参数),磁盘上永远没有明文,且用恒定时间比较校验,见 server/remote/password.ts;
  • HTTPS:由一个受限的本地 CA签发证书,CA 只允许给localhost、.local域名和私网 IP 签发;CA 私钥留在~/.habblaud/remote-tls/ca,即使泄密也无法给别的网站发证,且该密钥从不进入容器,见 server/remote/tls.ts;
  • 会话 Cookie:HttpOnly+SameSite=Strict+Secure,并用 HMAC 签名防篡改;
  • 功能白名单:远程端口能做什么由HABBLAUD_REMOTE_ALLOW显式声明(默认只允许审批权限请求),与请求头无关,无法被诱导越权。

细节见官方说明:README.md。

落盘的数据:只有「聚合数字」,且会自动过期

即使在本机,Habblaud 写下的东西也尽量少:

  • 时间线(timelapse):只记录屏幕上本来就显示的一行摘要(无完整命令、无对话、无邮箱),存于~/.habblaud/timeline/,7 天后自动删除;
  • 每日统计:只有时间、计数、token、费用等聚合数字,保留 30 天;
  • 消息:投递成功后立刻从服务端消失,不落盘;
  • 临时附件:写入权限收紧到目录700、文件600,见 server/spawn/attachments.ts。

总结:一张表看懂 Habblaud 的安全边界

层面机制参考位置
网络默认仅监听127.0.0.1,零遥测,唯一外联可关闭server/config.ts
文件系统会话目录只读挂载,凭据文件不读不回写docker-compose.yml
内容20+ 条密钥正则,到达浏览器前统一掩码shared/activity.ts
HTTP 边缘防 DNS Rebinding、CSRF、iframe 嵌入server/http/guard.ts
远程访问scrypt 哈希、受限本地 CA、HMAC Cookie、功能白名单server/remote/tls.ts
落盘数据仅聚合摘要,7/30 天自动清理,附件权限 700/600README.md

💡 一句话总结:Habblaud 用「默认不开放、只读不修改、展示前脱敏」这三层设计,把 AI 智能体办公区完全留在了你自己的电脑上。对想在多台会话之间「一眼看尽」AI 工作状态的开发者来说,这正是可以安心部署的隐私安全底座。

【免费下载链接】habblaud

项目地址:https://gitcode.com/gh_mirrors/ha/habblaud
点击查看免费下载

相关推荐

上一篇:PS4存档管理入门教程:一文掌握Apollo Save Tool的USB/HDD存档操作全流程
下一篇:改稿还是从零构建?PaperSpine 双工作流详解:rewrite 与 build_from_materials 选择指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 10:16:17

如何用抖音下载器一次下完一个主页的 50 条作品

如何用抖音下载器一次下完一个主页的 50 条作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工…

作者头像 李华
网站建设 2026/11/3 10:13:20

Meshroom三维重建:不写一行代码,把照片串成3D模型只需5分钟

Meshroom三维重建&#xff1a;不写一行代码&#xff0c;把照片串成3D模型只需5分钟 【免费下载链接】Meshroom Node-based Visual Programming Toolbox 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom Meshroom 是一个开源的、基于节点可视编程的三维重建工具。…

作者头像 李华
网站建设 2026/11/3 10:08:22

【数据分析】DAU 实战手册:从定义到增长的完整闭环

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

作者头像 李华
网站建设 2026/11/3 10:04:36

STM32智能药盒

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

作者头像 李华
网站建设 2026/11/3 9:56:49

【深度学习】CNN(卷积神经网络)从零开始教程

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

作者头像 李华