检测项目一览 / thinking 签名验真
thinking 签名验真检测
Claude 中转站怎么验真:请求 thinking 扩展思考,检查响应里服务端签名是否存在、格式合法、两次请求互不相同。仅 Claude 家族有这项硬判据。
测什么
请求里打开 thinking(扩展思考),连发两次同样的请求,检查响应的 thinking 内容块里有没有服务端签名字段:签名是否存在、长度和字符集是否符合预期、两次请求返回的签名是否互不相同。
为什么能判真假 / 来路
官方 Claude 后端会在 thinking 块里附带一段服务端生成的加密签名,以目前公开的已知手段极难伪造。伪协议、网页逆向、掺水掉包的中转站很难在这一项上蒙混过关——这是判断「是不是真 Claude 家族权重」目前最硬的一项信号。注意这只是启发式校验(看有没有、长得像不像、会不会变),不是密码学验签。
结果怎么读
- 通过:两次请求都返回了 thinking 块,且签名长度、字符集符合预期、两次互不相同——符合真官方后端的特征。
- 存疑:三种情形都判存疑:thinking 块存在但签名缺失或过短;签名字符集不像 base64;或者两次请求返回了完全相同的签名(疑似缓存回放而非真实推理)。
- 未通过:请求了 thinking 但响应里压根没有 thinking 内容块——官方 Claude 必有这个块,说明该接口可能不是真 Claude,或者把 thinking 功能剥离了。
- 信息不足:两次请求都没拿到成功响应(超时/网络失败),本次无法判断。
局限:它判不了什么
这一项只能判「是不是真 Claude 家族权重」,判不了「来路是官转还是订阅逆向」——把 Claude 订阅反成 API 的通道打的就是官方后端,签名照样是真的,要区分来路得看注入指纹。另外要分清两种不过关:完全没有 thinking 块(未通过)在供货层被归为「功能残缺/非官方直通」,不当作冒充证据;而块存在但签名缺失、重复或格式不对(存疑)才被归为「疑似身份不符」。这一项和模型名回显是本站仅有的两个「一票否决」信号:任一项不过关,哪怕加权分再高,总结论最高也只封顶「存疑」,不给「通过」。
自己怎么验
用自己的 key 在终端连发两次同样的 thinking 请求,看响应里有没有 signature 字段、两次是否一样。
curl -s https://YOUR_RELAY_BASE_URL/v1/messages \
-H "x-api-key: YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-opus-5","max_tokens":1300,"thinking":{"type":"enabled","budget_tokens":1024},"messages":[{"role":"user","content":"2+2=?"}]}' \
| grep -o '"type":"thinking"\|"signature":"[^"]*'跑两遍这条命令,对比两次 signature 后面的字符串:完全没有 signature、或者两次一模一样,都是可疑信号;grep 不到 "type":"thinking" 说明响应里根本没有 thinking 块。
相关检测项
常见问题
为什么 thinking 签名只能验 Claude?
签名是 Anthropic 官方协议里 thinking(扩展思考)功能特有的字段,GPT、Gemini 的协议里没有对应机制,所以这项检测只对 Claude 家族有效。
签名通过了,是不是就一定是官转?
不是。签名只证明「权重是真 Claude」,证明不了「走的是官方直连还是订阅逆向反出来的通道」——两者都能返回真签名。要判来路,请看注入指纹检测。
为什么两次签名一样反而可疑?
真实的服务端推理每次都会生成不同的签名。如果两次请求返回了完全相同的签名,更像是缓存回放同一份历史响应,而不是每次都在真实推理。