内容提要
文章介绍如何验证Claude中转站是否提供真实模型。方法分三步:解码签名明文检查模型标识、通过OpenRouter交叉验证签名真伪、定时巡检防止中途切换假模型。核心原理是Anthropic私钥签名跨平台兼容且绑定模型身份,组合验证可确保响应真实且模型匹配。
延伸解读
为什么签名验证能成立
Anthropic 的 thinking 块签名使用官方私钥生成,私钥仅官方持有,第三方无法伪造。签名跨平台兼容,可在 Claude API、Bedrock、Google Cloud 间通用,因此可通过 OpenRouter 强制路由到 Anthropic 官方后端进行验证。这是整套验证方法的核心依据。
验证的两层含义
交叉验证只确认签名是否由官方私钥生成,而明文解析则揭示签名对应的具体模型。两者结合才能同时回答“真伪”和“身份”两个问题。若仅依赖交叉验证,可能被其他模型的真签名绕过,但明文解析能识别模型不匹配,从而堵住漏洞。
定时巡检的必要性
手动测试只能验证单次请求,中转站可能先提供真实模型获取信任,再悄悄切换为假模型。定时巡检(如每 1-2 小时)能持续监控,及时发现后端切换。文章建议结合告警通知,以降低长期使用假模型的风险。
实操中的注意事项
测试 prompt 需足够复杂以触发 thinking 块;即使 thinking 被省略,签名仍可提取。调用 OpenRouter 时需强制指定 provider 为 anthropic,避免路由到其他供应商。签名中的模型标识可能与 API 模型名不完全一致,需先确认真实签名格式。
Q&A
如何验证Claude中转站返回的响应是否来自真实的Claude模型?
可以通过三步验证:1. 解码签名明文,检查模型标识是否匹配;2. 通过OpenRouter交叉验证签名真伪;3. 定时巡检,防止中途切换假模型。
Claude响应中的signature字段是什么?为什么它能用来验证模型真伪?
signature是Anthropic用私钥对thinking内容做的数字签名,私钥只有Anthropic拥有,第三方无法伪造。因此,签名有效则证明响应来自官方Claude。
如何从Claude的signature中提取模型标识?
将signature进行base64解码,然后用正则表达式匹配`claude-[a-z0-9.\-]+`即可提取模型标识明文。
如何通过OpenRouter交叉验证Claude签名的真伪?
将签名放入OpenRouter的Anthropic端点请求中,强制指定provider为anthropic,如果返回200则签名有效,返回400且提示Invalid signature则签名无效。
为什么需要同时进行明文解析和交叉验证?
交叉验证只能证明签名是官方签发的,但无法证明签名对应的模型;明文解析可以提取签名中的模型标识,两者结合才能确保响应既真实又来自请求的模型。
如何防止中转站中途偷偷切换成假模型?
编写定时巡检程序,每隔1-2小时自动获取签名、解码明文并交叉验证,连续几天无异常即可放心使用。
使用OpenRouter验证签名时需要注意什么?
必须设置provider参数为{"order":["anthropic"]}强制路由到Anthropic官方,否则可能被分发到其他供应商;同时验证会消耗少量token,费用约几分钱一次。
如果请求的模型是claude-fable-5,但签名明文显示claude-opus-4-8,说明什么?
说明中转站可能使用了其他模型冒充,签名明文与请求模型不匹配,应直接判定为假。