TeeChat 服务组件全线实现不可变黄金镜像

TeeChat 托管路径上的三个组件是:OpenAPI 接入点、路由网关、GPU 推理引擎。过去几个月,我们把 OpenAPI 接入点与网关迁进了可测量的 Talos 机密虚拟机,从不可变黄金镜像(Immutable Golden Image)启动 — 可在设置或 OpenAPI 核验工具里对照已发布指纹。这一周,推理引擎也按同一标准落地:生产机密虚拟机不再提供 SSH。

生产推理机密虚拟机不再运行 sshd。 没有远程 shell 能登进那台会解开你提示词的机器。

这是新闻本身。下面把这条路为什么走得通讲清楚。

三个组件,一条规则

使用托管对话或 OpenAPI 时,消息仍要在某处被处理。规则没有变:

核验是用来确认线上这三个组件与已发布指纹一致 — 不是只信主机名。见如何核验机密对话与如何核验 TeeChat OpenAPI。

变的是:这条路径还剩多少看起来像「管理员可以 SSH 进去的普通 Linux」。

先做:OpenAPI 与网关进 Talos

Talos Linux 是为 API 驱动集群设计的不可变系统:没有软件包漂移,没有「先 apt 装一下」,日常控制面也不以 SSH 登录。它们作为 AMD SEV-SNP 机密虚拟机运行。启动测量写入公开黄金清单,客户端把硬件证明与已发布值对照。

这已经在线上:

组件入口Talos + 机密虚拟机带来什么
OpenAPI 接入点openapi.teechat.aiTLS 在可测量的机密虚拟机内终结。你可以挑战该接入点并钉住测量值(核验指南)。
路由网关gateway.teechat.ai路由服务器是可测量的 SNP 机密虚拟机,不是普通云主机。设置里会看到 CPU TEE sev-snp,以及对照平台清单的网关二进制哈希。

先加固这两个组件,是因为它们是 TLS 终结与会话入口。若 TLS 或会话处理跑在普通主机上,「引擎在 TEE 里」就只覆盖最后一跳。

接着:拆掉引擎上的 SSH

推理机密虚拟机形态不同 — GPU 直通、可测量的操作系统、可测量的应用卷。很长一段时间它仍留着熟悉的运维入口:出问题就 SSH 进去。

这个入口是信任问题。能登进机密虚拟机的登录,就与唯一被允许看到提示词明文的进程同机。「我们保证不偷看」不等于「没有 shell」。

因此生产引擎机密虚拟机现在不带 sshd。日常没有远程 shell。机密虚拟机不健康时,我们从上一份已测量镜像整机替换 — 不会登录进去打补丁。你在设置里核验的启动摘要,应当就是我们发布的那份,而不是「启动后再写入的变更」。

这与接入点、网关上的 Talos 是同一原则:不可变、可测量、线上机密虚拟机没有交互式管理员。 引擎不是 Talos 节点(GPU 与模型栈需要另一种机密虚拟机)。运维模型现在对齐了。

如何防止黄金镜像被非法修改

不可变黄金镜像只在测量值对得上时才有意义。我们分别对系统盘和应用盘做测量,并把测量值(哈希)写进公开黄金清单。硬件远程证明带出线上机密虚拟机的实际测量值;客户端随时可以把你连上的组件与已公布哈希对照 — 设置里的「验证证明」、OpenAPI 的 challenge 都走这条路径。哈希对不上,核验失败。

你应该(和不应该)得出的结论

应该得出

不应该得出

若你想核验

  1. 桌面或网页:设置 → 推理 → 托管对话 → 验证证明。
  2. OpenAPI 集成方:设置 → 推理 → OpenAPI 核验,或 teechat-openapi-attest verify https://openapi.teechat.ai。
  3. 允许清单原文:platform-binaries 清单(及其 .sig)。当前客户端列车会要求这份签名。

产品承诺仍是数据主权 — 你的文件夹,你说了算。本文说的是:缩小能够进入「持有解密密钥的机密虚拟机」的主体集合。这个集合里,不再包括「谁有推理机的 SSH」;不仅如此,这个集合目前是空的,也就是说,所有服务组件都已经实现内部机密数据不可见。

← 全部文章