先记结论:大模型中转站(LLM API 路由器)处在客户端和上游模型之间,2026 年的实测论文把它写成「对每一段在途 JSON 都有完整明文可见性的应用层代理」。HTTPS 只保护你到这座代理的传输。密钥一旦写进 Prompt 或工具参数,中转站日志里出现它,并不需要再破解 TLS。
一句话先回答搜索意图
调用包里会出现 SSH 密钥,不是因为「HTTPS 坏了」,而是因为密钥先被写进了会发给中转站的明文上下文。中转站要转发请求,就必须读 JSON;读得了,就存得了、卖得了。论文原句把边界写死了:第三方路由器以应用层代理工作,对每一段在途 JSON 都有完整明文可见性,客户端和上游模型之间也没有被强制加上可验证的密码学完整性。
这篇文章给正在用 IDE Agent、自建网关或「便宜中转」调模型的开发者和运维。它不代替 隐私清洗 的操作说明,也不重复「把工单贴进聊天窗口之前先掩码字段」那一篇。你要带走的是:9 月这条帖文能当证据的部分到哪、HTTPS 挡的是哪两个端、Agent 上下文为什么比工单更容易夹带整把私钥,以及怎样在本机用 Network 和一份将要发送的文本当场对照。
9 月这条帖文实际说了什么
据 2026 年 9 月 11 日的公开报道 转述,研究员 Chaofan Shou(寿超凡)在 9 月 10 日发帖称:他从一家顶级中文 LLM 路由器购得一份约 6TB 的 Fable 模型调用数据集;其中的 SSH 密钥、VPN 配置、阿里云密钥和 GitLab 令牌,足以让他访问 7 个中国 / 独联体相关机构,以及 19 家中国公司。帖文举例点了若干品牌。多家中文安全媒体在 9 月 11 日跟进。
这一段里,能写进核对清单的只有三句。第一,存在「中转站会保存、甚至打包出售调用记录」这条攻击面,而且有人公开声称买到了以 TB 计的数据。第二,被点名的凭证类型——私钥、VPN、云密钥、GitLab 令牌——都是 Agent 调试时最容易整段贴进上下文的东西。第三,「足以接管」是研究员的能力主张,不是一份已由第三方审计确认的入侵通报。FastPwd 没有核验那 6TB 文件,也不把点名的品牌写成「已被攻破」。
把热点当成标题可以,把热点当成已经判决的案情不行。你要处理的是同一条技术链路:明文 Prompt 出站之后,中转站不再是「透明管道」。
中转站看见的是哪一层明文
官方模型 API 通常是:你的客户端直连厂商,TLS 终点是厂商。中转站多了一跳:客户端先把请求打到路由器,路由器再改写成上游厂商的调用。对客户端来说,证书和地址栏(或 HTTP 库的 peer)停在路由器。路由器解开 TLS 之后,看到的是完整的请求体——系统提示、用户问题、工具名、参数、有时还有仓库路径和 .env 片段。
Liu、Shou 等人的论文 Your Agent Is Mine: Measuring Malicious Intermediary Attacks on the LLM Supply Chain(arXiv:2604.08407,对应 CCS 2026)把两类攻击写进威胁模型:改写工具调用载荷(AC-1),以及把密钥从明文载荷里捞走(AC-2)。他们购买了 28 个来自电商和独立店铺的付费路由器,又从公开社区收集了 400 个免费路由器。结果是:1 个付费、8 个免费路由器主动注入恶意代码;17 个触碰了研究者自己放进去的 AWS 金丝雀凭证;1 个划走了研究者测试私钥里的 ETH。后续投毒实验里,弱配置诱饵累计暴露 99 个凭证、覆盖 440 个 Codex 会话,其中 401 个已开着无需确认的 YOLO 模式。
这些数字不需要你复现实验。它们只说明一件已经发表的事:中转站不但能「看见」,部分节点还会「改写」和「动用」。付费不是免检声明。9 月的 6TB 数据包,是同一条链路上「看见并留下」被公开点名的一次。
| 你看见的现象 | 它能支持的结论 | 它支持不了的结论 |
|---|---|---|
| 客户端显示 HTTPS / 安全连接 | 到当前 TLS 终点的传输被加密 | 中转站看不到 Prompt |
| 中转站能转发工具调用 | 它必须解析明文 JSON | 它只做字节透传、从不落盘 |
| 研究员称买到 6TB 调用包 | 存在「日志被打包出售」的公开主张 | 点名的公司已被独立证实入侵 |
| 论文测到路由器改写载荷 | 部分节点不只是存储,还会注入 | 所有中转站都在投毒 |
| 工单已经做过规则脱敏 | 常见手机号、证件号可能被掩码 | Agent 上下文里的整把 SSH 私钥也被挡住了 |
HTTPS 挡路上的人,挡不住中转站读正文
MDN 对 TLS 的说明把保护范围写成:隔着不可信网络时,加密、完整性和服务器认证发生在客户端和服务器之间;用来保护 HTTP 时叫 HTTPS。握手之后,HTTP 头和正文在这一跳上是密文。中转站场景里,「服务器」就是路由器。它必须解密,才能知道要调哪个上游、工具参数是什么。解密之后再存日志,不再经过第二次「你以为的端到端」。
所以,「我们全是 HTTPS,密钥不会泄露」在中转站这条链上不成立。正确的句子是:公网这一跳有 TLS,路上的旁路抓包不容易读到 JSON;路由器进程、它的磁盘、它的运营人员、以及买到数据包的人,不在旁观者这一列。
官方直连也不能把厂商职员从「能看见明文」里划掉。差别在信任边界画在哪:你是把正文交给模型厂商的正式接口,还是交给一个以差价、额度或「可用 Claude」为卖点的第三方。后者往往没有和你签过与密钥处理相关的合同,却先于厂商读到同一段 JSON。
Agent 上下文为什么比工单更容易夹带整把密钥
把工单贴进网页版聊天窗口,人至少还会扫一眼将要发送的字。Agent 和 IDE 插件常常自动拼上下文:当前文件、终端报错、Git remote、.env、刚才执行失败的 ssh 命令。YOLO 或「自动批准工具」一开,私钥可以在你没点发送的情况下进入请求体。论文里 401 / 440 个会话已经跑在这种模式上,不是修辞。
规则脱敏擅长盖住手机号、身份证、邮箱这类有固定形态的字段。它盖不住「把 id_rsa 全文当成附件塞进系统提示」、也盖不住「把 AKIA… 和对应 Secret 写成工具参数」。上一篇讲的是外发工单前先核对字段;这篇要先问:这次 JSON 里有没有整段可登录的秘密。两件事都要做,不要互相替代。
必须交给同事的一次性口令,也不该改道写进 Agent。更合适的路径是阅后即焚:本机加密后只把密文交给服务器,解密密钥接在 s.html?id={id}#{key} 的井号后面。创建和阅读都打开即用。刷新显示已焚毁,只说明服务器上的密文没了,不说明接收方没截图——那是另一篇文章的边界。它至少比「把口令交给会存 6TB 日志的中转站」少一跳明文。
不要用真实 SSH 私钥、生产环境云密钥、未轮换的 GitLab 令牌或未脱敏工单做实验。准备一串可丢弃的金丝雀,例如 CANARY-LLM-20260916。核对的是出站边界,不是把还能开门的钥匙再送一遍。
当场核对:Host、JSON、将要发送的文本
口号不能当证据。下面三步可以在当前机器做完,不需要账号。目标不是复现 6TB 交易,而是确认你自己的客户端这次把正文打到了谁、打出去了什么。
- 打开开发者工具 Network,或在本机代理 / 终端里看 Agent 的 HTTPS 对端。记下 Host:是官方 API 域名,还是中转站、自建网关、海外中转。证书颁发给谁,必须和这个 Host 一致。
- 造一枚不会出现在真实业务里的金丝雀,写进这一次 Prompt 或工具参数,发送后用整串搜索请求体。命中就说明这段字符已经作为业务数据离开本机。地址栏或 HTTP 库显示 HTTPS,不改变这条结论。
- 把「将要发送」的文本单独对照一遍。SSH 私钥头
BEGIN OPENSSH PRIVATE KEY、云密钥、GitLabglpat-、VPN 配置块,只要还在,就不要发出去。常见手机号、证件号、邮箱可以先走规则脱敏;整段口令和私钥应改占位符,或改走阅后即焚交给人,而不是交给模型路由。
Host 名单比小锁更接近「谁能看见」
同一家公司可能同时有官方 SDK 和员工随手配的 base_url。只看「我们用的是某模型」不够,要看实际请求的主机名。中转站经常用自己的域名终结 TLS,再在后面用它自己的上游密钥去调厂商。你的密钥出现在第一跳的 JSON 里,厂商甚至不一定是唯一读者。
将要发送的文本才是核对对象
页面上的「已脱敏」「隐私模式」「不用于训练」只改变对方怎么留存和学习,不改变字段已经出站。中转站若把调用包卖掉,训练开关帮不上忙。对照对象永远是这一次请求体,不是开关文案。
打包后的 Agent 可能把请求发到本地 localhost 代理,再由代理转出。搜不到外网 Host 时,顺着本地端口看下一跳。本地代理不是终点,只是把明文又递了一手。
三种把这条热点读过头的情况
第一,把研究员点名的品牌写成「已确认被黑」。帖文是能力主张,缺少与 FastPwd 无关的第三方取证,就不要写成判决。你能做的是轮换自己环境里出现过的同类凭证,并停止把活密钥送进中转站。
第二,把「换成官方 API」写成「明文不会离开本机」。官方接口同样要在服务器上读 Prompt。它减少的是「差价中转站存盘并出售」这一跳,不是「模型服务端看不见」。本机模型或本机脱敏,才把正文留在你控制的进程里。
第三,把 FastPwd 写成能替你审计中转站。它不代理模型流量,也不提供账号或密码库。它能当场做的是:在浏览器里掩码将要外发的文本,以及用阅后即焚把一次性秘密交给人。文件加密盒用 AES-256-GCM 处理不超过 5 GB 的文件,输出 .lock / .enc,默认不上传明文——那是另一条「先加密再出站」的链,解决不了你已经写进 Prompt 的私钥。
常见问题
中转站用了 HTTPS,Prompt 是不是就是加密的?
HTTPS 只加密客户端到当前 TLS 终点的传输。中转站本身就是这一跳的终点,论文把它写成能看见全程明文 JSON 的应用层代理。路上的旁观者不容易读到报文;中转站日志、运营人员和买到数据包的人仍可能读到 Prompt、工具调用和密钥。
6TB 数据包是不是已经证实那些公司被攻破了?
不是。9 月 10 日的公开帖文是研究员的陈述:他称购得约 6TB 调用数据,其中含有足以访问若干企业与机构的凭证。本文把它当作需要核对的公开主张,不把它写成已验证的入侵事实。你能当场核对的,是自己这次请求有没有把活密钥写进 Prompt。
这和把工单贴进 ChatGPT 之前脱敏是一回事吗?
不是同一层。工单脱敏核对的是将要粘贴的文字里还有没有手机号、证件号、邮箱。中转站问题核对的是:Agent 发出的 JSON 打到了哪一台主机,SSH 私钥和云令牌有没有作为工具参数出站。字段掩码挡得住工单,挡不住把整把私钥塞进上下文。
FastPwd 能挡住中转站卖日志吗?
不能。FastPwd 没有账号,也不代理大模型流量。它能做的是:在文本离开本机前用规则掩码常见敏感字段,以及把必须交给同事的口令改走阅后即焚,密钥放在 URL 的 # 后面。打开即用。活的 SSH 密钥和云令牌本来就不该写进 Prompt。
把同一串金丝雀用打开即用的工具对照一次
若你要外发的是工单、日志或报错栈,打开 FastPwd 的 隐私清洗 即可,无需注册。把可丢弃的测试段落贴进去,对照掩码结果:手机号、证件号、邮箱、常见 API Key 形态还应不应该以原文离开。原文默认不上传。规则盖不住的整段口令,不要「差不多就行」,改成占位符。
若你要把一串一次性测试口令交给同事、而不是交给模型,打开 阅后即焚,生成 s.html?id={id}#{key}。对照 Network:请求行应只有 id,不应出现井号后面的密钥。这解决的是「人与人传一次秘密」,不是「让中转站变安全」。
下次再看见「中转站 6TB」「调用包里有 SSH」时,先问三句。第一,这次 JSON 的 TLS 终点是官方接口还是第三方路由器。第二,将要发送的文本里还有没有整段可登录的秘密。第三,必须给人的口令有没有改走井号后的密钥,而不是改道写进 Agent。能重复的观察,才值得写进你们自己的评审清单。
延伸阅读
把工单和日志贴进 AI 之前,怎么先核对哪些字段会离开本机,见 把工单和日志贴进 AI 之前,怎么先核对哪些字段会离开本机。浏览器本地加密怎么用金丝雀搜 Network,见 浏览器本地加密怎么核对明文没有离开本机。井号后面为什么默认不进 HTTP,见 URL 的井号后面为什么适合放密钥,以及什么时候会失效。