如何在 TeeChat 上验证机密对话

TeeChat 以数据主权为先 — 聊天历史保存在您控制的文件夹,我们不在服务端存档。使用 chat.teechat.ai 或托管 API 时,加密始终开启 — 本文介绍数据主权阶梯上的 L3 验证(核验步骤):发送前于设置核验引擎(桌面、网页或移动)。

可验证的智能保险柜(类比)

托管推理有时不好讲清楚。下面用一个类比帮助理解(不是把每个组件逐字对应到实现细节):

可验证的智能保险柜:公开设计图纸、实体保险柜、对照验证

一分钟心智模型

机密对话三区心智模型:你的设备、路由服务器与 AI 引擎

核验是在把密钥交给引擎前,证明引擎(及可选的平台服务器)与已发布的文件指纹一致。

步骤 1 — 在任意客户端打开设置

路径:设置 → 推理 → 托管对话(英文界面:Settings → Inference → Hosted chat)。

需要:

若加密不可用,面板会提示重新构建 — 加密加载后各端体验相同。

步骤 2 — 选择引擎并核验

  1. Engine(引擎) 下拉框中选择引擎(例如 engine-prod-1 及其服务的模型)。
  2. 点击 Verify attestation(验证证明)

设置界面:网关平台证明已验证 — Build 0.7.6、CPU TEE sev-snp、网关哈希、平台清单链接

客户端会联系网关、对照已发布版本指纹,并展示通过项。生产环境通常有两层。请勿将网关 Build 与 Engine version 混为一谈 — 它们属于不同的发布列车(上图 Build 0.7.6 为路由服务器;下方绿色面板中的 Engine version 0.6.23 为推理引擎)。

网关平台证明(路由服务器)

蓝色 Gateway platform attestation verified(网关平台证明已验证) 区块描述的是路由服务器(Gateway + Skill Hub),不是 GPU 推理机。主要字段:

字段含义
Gateway已注册的网关 id(如 teechat-gateway)。
Build平台清单中固定的网关 / 客户端发布列车(如 0.7.6)。这是路由服务器二进制版本 — 不是推理引擎。
Policy网关须满足的 CPU 证明策略 id。
CPU TEE网关虚拟机的 CPU 机密技术 — 生产为 sev-snp(AMD SEV-SNP)。表示网关二进制在可测量的机密虚拟机内运行,而非普通云主机。
GPU confidential网关上为 不适用 — 网关为纯 CPU 角色;GPU 机密计算在下方推理引擎面板中体现。
Gateway binary (SHA-256)网关可执行文件的密码学指纹。客户端与已发布的 platform-binaries 清单(公开 JSON,可在浏览器打开或用 curl 查看)对照;不一致则核验失败。
Platform manifest(平台清单)已发布哈希允许列表链接(GET /v1/platform/binaries/manifest)。网关为闭源 — 无公开发布包;信任来自 TEE 证明 + 清单哈希对照。

这一层保护平台完整性(会话、引擎注册表、计量、引擎平面 TLS),与网关不解密对话正文并不矛盾。

引擎信任(推理服务器)

平台检查通过后,客户端下载所选引擎的信任包并验证推理侧证据。成功时显示绿色 Engine trust verified(引擎信任已验证) 面板:

引擎信任已验证:epoch、Engine version 0.6.23、引擎与 vLLM 哈希、AMD/NVIDIA 签名验证与公开信任参考

生产核验界面会出现三个版本号 — 请区分:

版本标签出现位置含义
Build上方网关面板Gateway + Skill Hub 发布列车(如 0.7.6)。
Engine version下方绿色引擎面板推理引擎发布列车 — 我们部署到 TEE 主机的 OPE 引擎包版本(如 0.6.23)。除引擎哈希外,还须与平台清单允许列表中的版本字符串一致。
vLLM version下方绿色引擎面板TEE 内 vLLM 运行时(如 0.23.0+cpu),与 Build 及 Engine version 均不同。
字段含义
Epoch / Valid短期加密密钥窗口 — 仅在此窗口内发送;过期后需重新核验。
Policy引擎 CPU 证明策略(如 teechat-cpu-tee-prod-v1)。
CPU TEE引擎虚拟机的机密 CPU — 生产金属上为 sev-snp
GPU confidential推理 GPU 的 NVIDIA 机密计算 — 启用 CC 模式且 nvattest 证据就绪时为 nv-cc
Engine version(引擎版本)引擎报告的推理引擎发布列车(截图中为 0.6.23)。与网关 Build0.7.6)及 vLLM version0.23.0+cpu)相互独立。若该字符串与已测引擎哈希在清单中的活跃行不一致,客户端将拒绝证明。
Engine hashOPE 推理引擎二进制的 SHA-256,与平台清单允许列表对照。
vLLM version(vLLM 版本)引擎报告的 vLLM 运行时版本(如 0.23.0+cpu),写入平台清单并绑定于 TEE 引用。
vLLM hash(vLLM 哈希)TEE 内测量的 vLLM launcherbin/vllm)SHA-256,与平台清单允许列表对照。

签名验证结果

哈希下方 Signature verification(签名验证) 汇总三项独立检查:

  1. Signed by AMD (CPU TEE — SEV-SNP) — 引擎 CPU 引用已通过网关策略并与已发布清单测量值一致(生产构建上的 manifest-bound 浏览器验证)。
  2. Signed by NVIDIA (GPU confidential) — 网关在 nvattest + RIM 上验证的 GPU 证据;生产 GPU 证明启用时应看到 CC mode ON 与架构(如 Blackwell)。
  3. Engine ephemeral identity — 对当前 epoch 密钥的 Ed25519 签名,证明活跃密钥窗口属于启动时注册的引擎身份。

底部 Public trust references 链接 AMD KDS 与 NVIDIA RIM 目录,供审计硬件证明材料。

客户端还将:

  1. 下载引擎信任包(带签名的证明材料)。
  2. 检查 CPU 安全硬件证据(生产为 Intel TDX 或 AMD SEV-SNP 类引用;开发可能用测试策略)。
  3. 对照已发布的 platform-binaries 清单验证引擎与 vLLM 指纹(版本 + launcher 哈希)。
  4. 验证短期加密密钥(对当前密钥窗口的身份签名)。

成功后界面显示策略 id、密钥有效期、引擎版本、引擎哈希、vLLM 版本与哈希,以及签名证据。跳过核验或密钥过期时阻止发送

平台核验(路由服务器 + Skill Hub)

当构建启用平台核验时,Verify attestation 也会运行上文网关平台检查(向 API 发起挑战 + 清单哈希绑定),将网关二进制绑定到已发布清单 — 与引擎信任分开,但对平台完整性很重要。

路由服务器为何跑在安全硬件里却不读对话

常见问题:路由服务器从不看可读原文,为何还要安全硬件?

因为路由服务器仍持有高价值平台状态:登录与会话检查、引擎注册与信任缓存、计量、引擎连接密钥等。生产 TeeChat 将 GatewaySkill Hub 置于 CPU 机密虚拟机,使测量值绑定已知二进制 — 与 OPE 互补,不能替代引擎侧解密。

重要说明: 客户端今天在加密前会密码学核验推理引擎。网关安全硬件是平台完整性控制;用户仍依赖 HTTPS + 可选的平台核验保护路由路径。我们在设计说明里如实记录两层。

发送消息时发生什么

  1. 应用用引擎当前密钥构建 OPE 密封包。
  2. POST 到聊天 API,抓包时正文应看起来不可读。
  3. 路由服务器验证签名、重放规则、配额;经安全引擎链路转发到所选引擎。
  4. 引擎在安全硬件里解密、运行模型(生产目标为 GPU 机密模式)、加密回复块。
  5. 应用用发送时建立的会话解密流式回复。

多轮对话尽量固定同一引擎以提速 — 这是路由层面的安排,仍不涉及可读原文。

核验声称什么

信任会话前的清单

延伸阅读

核验不是营销勾选框 — 这是我们希望机密 AI 在公众面前运作的方式:默认加密、先核验再信任、证据不符则拒绝发送。

修订记录

  1. 加入可验证智能保险柜类比图;与开源图纸 + 设置内核验步骤衔接。
  2. 更新设置界面截图;说明网关 Build 与 Engine version 的区别。

← 全部文章