---
title: "安全与权限控制：Halo 的数据流、凭据和 AI 权限"
description: "Halo 的安全与权限控制说明：哪些数据留在本机、哪些会发出去，密钥怎样存放，AI 和 IM 访客、其他电脑的同事各能做什么，远程访问有什么风险。"
type: "explanation"
audience: ["admin", "office"]
related: ["advanced/config-paths", "features/operate-halo", "digital-humans/permissions", "features/remote-access"]
lang: "zh-CN"
canonical: "https://hello-halo.cc/docs/advanced/security.html"
last_updated: "2026-10-19T00:11:17+08:00"
source: "Halo 3.0.4 docs"
---
# 安全、隐私与数据流

Halo 的安全与权限控制说明：哪些数据留在本机、哪些会发出去，密钥怎样存放，AI 和 IM 访客、其他电脑的同事各能做什么，远程访问有什么风险。

Halo 运行在你自己的电脑上。对话、文件、记忆和密钥都存在本机，Halo 没有保存这些内容的云端。会离开电脑的，主要是发给你所选模型服务商的对话内容，以及你主动打开的连接。你本人使用时，AI 执行工具不会逐次征求确认；对 IM 访客和其他电脑上的同事，Halo 会按你的设置限制。

本页适用于 Halo 3.0.4 公开版。公司提供的 Halo 可能在凭据加密、浏览器访问范围、隧道等方面另有设置，以你屏幕上看到的为准。

## 哪些留在本机，哪些会发出去 {#data-flow}

下表列出 Halo 会主动连接的所有对象。除此之外的数据都只在你的电脑上。

| 连接对象 | 什么时候连接 | 发出去的内容 | 你能怎样控制 |
|---|---|---|---|
| 你配置的模型服务商（Claude、ChatGPT、GitHub Copilot、自定义 API 等） | 每次对话、每次数字人运行 | 对话上下文：你的消息、附件内容、AI 读到的文件和工具结果 | 在 **设置 › AI 模型** 选择服务商，见[模型与账号](https://hello-halo.cc/docs/features/models.html)。内容如何处理，以该服务商的政策为准 |
| 登录服务（各家的 OAuth 登录） | 你登录账号、令牌刷新时 | 登录所需的授权信息 | 不用的账号在 **设置 › AI 模型** 里退出登录 |
| 商店来源（数字人协议官方源、MCP Official Registry、Smithery、Claude Skills Registry、SkillHub） | 打开商店时；每 6 小时检查一次已装内容的更新 | 目录查询；安装时下载软件包 | 在 **设置 › 应用商店** 里关掉不需要的来源 |
| 更新源（项目在 GitHub 上的发布页） | 启动后 5 秒、每 60 分钟、电脑唤醒后 | 版本检查；有新版本时下载安装包 | 见[更新 Halo](https://hello-halo.cc/docs/advanced/updates.html) |
| 使用统计（Google Analytics、百度统计） | Halo 运行期间 | 使用事件，例如启动、打开了哪个页面、发了一条消息、数字人运行了一次；附带本机随机生成的安装 ID，以及版本号、操作系统等信息。消息事件只记录「发了一条消息」，不含消息文字 | 公开版的设置里没有关闭开关 |
| 隧道和 Halo 的地址服务 | 只在 **设置 › 远程访问 › 互联网访问** 启动隧道后 | 远程客户端和这台 Halo 之间的全部流量，经 Cloudflare 隧道转发；第一次启动时向 Halo 的地址服务申请这台设备的固定地址 | **停止隧道**。见[远程访问](#remote-access) |
| 联邦网关 | 只在你填写了 **联邦网关** 后 | 跨网络团队协作的流量，网关只做中转 | 留空就只在局域网内组队。公开版没有内置网关，见[联邦网关](https://hello-halo.cc/docs/advanced/federation-gateway.html) |
| IM 平台（企业微信、飞书、微信） | 接入了机器人时 | 机器人收到和发出的消息、发送的文件 | 在 **设置 › 消息通道** 断开或删除机器人 |
| 网页搜索 | AI 搜索网页时 | 搜索词，默认发给必应（英文）或百度（中文），只有指定时才用 Google | 这是内置能力，始终可用 |
| AI 浏览器访问的网站 | **网页控制** 打开时（新对话默认打开，之后沿用你上次的选择） | 普通的网页访问，带着你在 Halo 浏览器里的登录状态 | 在输入框 **＋ › 能力** 关掉 **网页控制**，见[AI 浏览器](#browser) |
| 你自己添加的 MCP 服务器、邮箱 | 它们被调用时 | 取决于该服务器或邮件服务 | 在能力库或 **设置 › 消息通道** 里管理 |

另外几点：

- **崩溃报告只存在本机**，Halo 不会上传。需要时你可以在 **设置 › 系统 › 崩溃报告 › 打开文件夹** 找到它们，自己发给支持人员。
- **代理**：**设置 › 系统 › 代理** 对 Halo 自己的流量生效，包括模型请求、商店，以及 Halo 启动的 AI 和 MCP 进程。检查和下载更新始终走系统代理。AI 浏览器默认走系统代理，只有打开 **同时应用于AI浏览器** 才走这里的代理。详见[网关与代理](https://hello-halo.cc/docs/advanced/gateway-and-proxy.html)。
- **远程访问打开后，这台电脑会接受连接**：Halo 在所有网卡上监听（默认端口 3456），同一局域网的设备输入访问密码后就能连上。

## 数据存放在哪里 {#data-location}

Halo 的数据在两个文件夹里：

| 文件夹 | 里面有什么 |
|---|---|
| `~/.halo`（Windows：`%USERPROFILE%\.halo`） | `config.json`（设置和凭据）、`halo.db`、工作区、知识库、团队工作记录等 |
| 应用数据文件夹（macOS：`~/Library/Application Support/halo`） | AI 浏览器的 Cookie 和登录状态、AI 引擎的配置目录、崩溃报告 |

各系统的完整路径、日志位置和环境变量 `HALO_DATA_DIR`，见[配置与数据路径](https://hello-halo.cc/docs/advanced/config-paths.html)。

## 密钥和凭据 {#credentials}

- **公开版以明文保存凭据。** API Key、登录令牌、远程访问密码等都以明文写在 `~/.halo/config.json` 里；MCP 服务器的环境变量和请求头、数字人配置里填的值，也以明文存在 Halo 数据文件夹里。任何能读这些文件的人或程序，都能拿到它们。
- **设置里的密钥只显示为 `***`。** 模型服务的 API Key 和登录令牌、消息通道的密钥、远程访问密码，在桌面版、远程访问的网页、Android 应用和 API 返回里都被遮盖。**例外**：MCP 服务器的环境变量和请求头、数字人配置里填的值、商店来源的 API Key 按原样显示和返回，持有访问密码的远程客户端和 HTTP API 也能读到原值。AI 通过[操作 Halo](https://hello-halo.cc/docs/features/operate-halo.html) 读到的内容里，这些值都被遮盖。
- **静态加密是构建选项，公开版没有打开。** 公司定制的 Halo 可以打开它，打开后凭据加密保存。旧版本更新说明里的「凭据本地加密存储」不适用于 3.0.4 公开版。
- **Claude Code CLI 登录不经过 Halo 保存令牌。** 用 **Claude Code CLI** 方式登录时，凭据由 CLI 自己保存和刷新，Halo 不保留令牌。

所以，请把数据文件夹当成钥匙串来保护：

- 不要把 `~/.halo` 放进网盘同步、共享文件夹或公开备份。
- 不要把 `config.json` 发给别人。排查问题时，改用 **设置 › 系统 › 系统诊断 › 导出报告**：报告不含密钥本身；错误信息里的 Bearer 令牌、JWT 和部分 `sk-` 开头的 Key 会被遮盖，但 Anthropic（`sk-ant-…`）和 OpenAI 项目 Key（`sk-proj-…`）这类格式不会，所以发出前先通读一遍，见[日志与诊断](https://hello-halo.cc/docs/troubleshooting/diagnostics.html#report)。
- 电脑设登录密码，别和他人共用系统账号。
- **设置 › 高级 › Claude CLI 集成 › 配置目录** 选 **Claude CLI 默认** 会和独立安装的 Claude CLI 共用 `~/.claude`，界面标为 **高风险**。没有特别需要，保持 **Halo 默认**。

## AI 执行工具不会逐次确认 {#tool-permissions}

你本人使用时，AI 运行命令、修改和删除文件、调用工具，都**不会先征求你的同意**。

在 **设置 › 系统** 顶部的 **权限** 卡片上，可以看到标记 **完全权限模式**，以及一直打开、不能关闭的 **信任模式** 开关（「自动执行所有操作」）。3.0.4 没有「每次调用前先问我」的模式。

唯一会让 AI 停下来等你的，是它在对话里提出的问题卡片：你回答后它才继续。IM 对话和计划任务运行这类无人值守的场合，没有这张卡片可用。

实际起限制作用的是这些：

| 限制 | 作用 |
|---|---|
| 工作区对应的文件夹 | AI 主要在工作区里干活。只把工作区指向你愿意让 AI 改动的文件夹 |
| 输入框 **＋ › 能力** | **网页控制**、**AI 终端**、**操作 Halo** 等开关决定 AI 有没有这些工具，AI 自己打不开开关，见[能力](https://hello-halo.cc/docs/features/capabilities.html) |
| **设置 › 高级 › 内置MCP扩展** | 关掉某组内置工具，AI 就用不了 |
| 非本人发起的请求 | IM 访客和其他电脑上的同事受权限设置约束，见[IM 访客](#guests)和[其他电脑](#other-computers) |

**操作 Halo** 默认关闭。打开后，AI 能通过 Halo 自己的接口改动这台 Halo 里**所有**工作区、数字人和团队，不限于当前工作区，删除也没有确认弹窗；只有不可撤销的操作，AI 会被要求先用白话和你确认。即使打开，AI 也不能添加模型来源，不能改权限、外观等通用设置，不能动远程访问。少数接口能接收密钥（已有微信机器人的 Token、商店来源的 API Key；修改模型来源的接口也能收 API Key，但 Halo 让 AI 不要这样做），在对话里打出的密钥会留在对话记录里并发给模型服务商，请在设置里自己填。详见[操作 Halo 的安全须知](https://hello-halo.cc/docs/features/operate-halo.html#safety)。

## 日志里有什么 {#logs}

| 日志 | 内容 | 注意 |
|---|---|---|
| 普通日志（`main.log`） | 运行信息和错误。写入前会遮盖密钥 | 10 MB 轮转，保留 5 份 |
| 远程访问审计日志（`auth-audit.log`） | 远程登录的成功、失败和锁定记录 | 不含密码 |
| `http-raw.log`（只在 **开发者模式** 打开时生成） | Halo 发出的 HTTP 请求的完整请求头和请求体，**包括 API Key 和对话内容**，不做任何遮盖 | 排查完立刻关掉，并删掉这个文件 |

**开发者模式** 在 **设置 › 高级**，默认关闭。界面上的提示是「生成大量日志文件，可能影响性能。故障排查后请禁用。」日志文件夹从 **设置 › 系统 › 日志文件 › 打开文件夹** 打开。

::: warning 不要直接发送 http-raw.log
这个文件里有你的 API Key 和完整对话。需要给别人看诊断信息时，用 **系统诊断 › 导出报告** 生成的脱敏报告。
:::

## IM 访客能做什么 {#guests}

把数字人接到企业微信或飞书机器人后，给机器人发消息的人分成两类：

| 身份 | 怎么判定 | 能做什么 |
|---|---|---|
| 主人 | 在 **主人用户 ID** 列表里的人 | 和你在本机使用一样，不受限制 |
| 访客 | 其他所有人 | 只能用你开放给访客的工具 |

要点：

- **权限控制** 在 **设置 › 消息通道 ›（机器人卡片）› 权限** 里。关闭时显示「所有人都有完全访问权限」，也就是每个发消息的人都等同主人。
- 用 **扫码添加机器人** 创建的企业微信、飞书机器人，**权限控制** 会自动打开。主人列表为空时，**第一个私聊机器人的人自动成为主人**；群聊不会认领主人，没有主人的机器人在群里什么都不做。所以扫码后请你自己先私聊它一次。
- 手动添加的机器人，公开版默认 **不** 打开 **权限控制**。如果会有别人给它发消息，记得打开。
- **访客访问权限** 关闭时，「访客只能聊天和使用记忆」：访客仍能收到回复，只是不能用工具。
- 打开 **访客访问权限** 后，第一次默认只开放 **读取文件**、**查找文件**、**搜索内容**，而且只限这个工作区。网页、写文件、运行命令等要你逐项打开。
- 访客永远拿不到 **操作 Halo**，也不能让数字人主动给别人发 IM 消息。群里主人和访客的消息被合并处理时，按访客的权限执行。
- **个人微信机器人没有权限控制**：每个给它发消息的人都拥有主人权限。只在只有你自己会发消息的场合使用它，见[个人微信](https://hello-halo.cc/docs/digital-humans/personal-wechat.html)。

::: info
公司提供的 Halo 可能默认打开权限控制，或预设了访客可用的工具。
:::

各开关的含义、如何获取自己的用户 ID、典型配置示例，见[主人与访客权限](https://hello-halo.cc/docs/digital-humans/permissions.html)。

## 来自其他电脑的请求 {#other-computers}

[跨电脑团队](https://hello-halo.cc/docs/digital-humans/cross-computer-teams.html)里，同事的数字人或同事本人可以请你的数字人干活。这些请求在**你的电脑上**执行，按你给每位成员的设置受限：

- 邀请、加入和添加成员时，Halo 会问「你邀请的人可以让你的数字人做什么」，选项是 **只读**、**读写文件**、**它通常可以执行的所有操作**。在 3.0.4 里默认是 **只读**。
- 之后可以在成员设置的 **其他人可以要求它做什么** 里细调，开关和 IM 访客的相同。
- 来自其他电脑的请求始终可以使用记忆，文件访问只限这个工作区；只有全部打开时，才能像你一样访问工作区以外的文件。
- **操作 Halo** 永远不会借给同事。
- 较早加入、从未单独设置过的成员会显示「尚未单独设置：其他电脑上的人可以使用它的全部能力。」看到这句，请为它选一个范围。
- 你自己使用、你自己的数字人之间互相协作，都不受这些限制。

使用联邦网关时，网关只中转流量，不保存团队内容。但 Halo 没有在网关这一层再加密内容，网关管理员打开诊断用的 `room.trace` 时，日志里会记下成员的消息文字。所以只用你信任的网关，并通过 HTTPS / WSS 部署，见[联邦网关能看到什么](https://hello-halo.cc/docs/advanced/federation-gateway.html#what-it-sees)。

## 远程访问的风险 {#remote-access}

打开 **设置 › 远程访问** 后，任何拿到访问密码的人都能完全控制这台 Halo。界面上的 **安全警告** 写的是：「启用远程访问后，任何拥有密码的人都可以完全控制您的计算机（读写文件、执行命令）。」

| 事实 | 说明 |
|---|---|
| 密码 | 自动生成 12 位，或自定义 8–64 位（需包含大小写字母和数字）。没有过期时间，改密码后所有已连接的客户端都要重新登录 |
| 单个 IP 锁定 | 5 分钟内输错 5 次，该 IP 锁定 15 分钟 |
| 全局锁定 | 所有 IP 合计 60 分钟内输错 10 次，所有客户端（包括你自己）锁定 30 分钟 |
| 锁定提醒 | 桌面系统通知，文字为英文。重启 Halo 会清零计数 |
| 局域网连接 | 走 `http://`，不加密。在公共网络里请改用隧道的 HTTPS 地址 |
| 互联网访问 | 经 Cloudflare 隧道和 Halo 的地址服务转发，**不是点对点直连**。二维码里只有地址，不含密码 |

不用时关掉远程访问或停止隧道；怀疑密码泄露时立刻改密码，必要时用 **更换地址** 换掉公网地址。详见[远程访问的安全须知](https://hello-halo.cc/docs/features/remote-access.html#safety)。

## AI 浏览器的登录状态 {#browser}

- Halo 里所有浏览器页面共用一份 Cookie 和登录状态：你的标签页、AI 打开的页面、数字人的页面都一样。你登录一次，AI 和数字人就能以你的身份访问这个网站。
- 只在愿意让 AI 代你操作的网站上登录。
- **设置 › 系统 › 浏览器数据 › 清除浏览器数据** 会让所有网站退出登录，包括数字人用的网站，无法撤销。Halo 自己的数据不受影响。
- 公开版不限制 AI 浏览器能打开哪些网站。限制访问范围的白名单只在公司定制版里有；这类版本允许时，**设置 › 系统** 里会出现 **浏览器允许的站点**。

更多用法见 [AI 浏览器](https://hello-halo.cc/docs/features/ai-browser.html)。

## 通过 IM 发送文件的限制 {#file-send}

AI 在 IM 对话里可以把报告、图片、PDF 发回聊天，但**只能发数字人工作区里的文件，或系统临时目录里的文件**。

- 指向别处的快捷方式（符号链接）会先解析成真实位置再检查。
- 对受限的对话（例如访客）关闭的文件夹，也发不出去。
- 数字人主动推送 IM 消息时附带的文件，适用同一规则。
- 访客的工具设置里还有单独的 **File Send** 开关，决定访客能否让 AI 发文件。

所以，不要把敏感文件放进对外机器人所用数字人的工作区。

## Halo Server 的默认令牌 {#server-token}

Halo Server 没设置 `HALO_REMOTE_PASSWORD` 时，默认令牌是 `halo123`，人人都能猜到，而且只有 7 位，浏览器和 Android 应用都登录不了。部署前务必设置一个 8 位以上的强密码，见[服务器配置](https://hello-halo.cc/docs/server/configuration.html)。

## 管理员检查清单 {#checklist}

- [ ] 工作区只指向愿意让 AI 改动的文件夹。
- [ ] `~/.halo` 没有放进网盘、共享文件夹或公开备份。
- [ ] **开发者模式** 已关闭，旧的 `http-raw.log` 已删除。
- [ ] 每个对外的企业微信、飞书机器人都打开了 **权限控制**，主人是你自己，访客只开放了需要的工具。
- [ ] 没有在多人会发消息的场合使用个人微信机器人。
- [ ] 跨电脑团队里，每位成员都设置了 **其他人可以要求它做什么**，没有「尚未单独设置」。
- [ ] 不需要时关掉 **操作 Halo**；新对话会沿用上次的开关。
- [ ] 远程访问用了强密码，不用时关闭，隧道不用时停止。
- [ ] AI 浏览器只登录了必要的网站。
- [ ] Halo Server 设置了自己的 `HALO_REMOTE_PASSWORD`。

## 下一步 {#next-steps}

- [主人与访客权限](https://hello-halo.cc/docs/digital-humans/permissions.html)：逐项设置 IM 访客能用的工具
- [操作 Halo](https://hello-halo.cc/docs/features/operate-halo.html)：打开前先了解它能改动的范围
- [配置与数据路径](https://hello-halo.cc/docs/advanced/config-paths.html)：找到要保护和备份的文件夹
