Claude Code 2.1.196 提示詞隱寫術發現
Claude Code 使用隱寫標記來識別 API 閘道器
Claude Code 2.1.196 版本包含一個功能,會悄悄地修改系統提示詞中的日期字串,以編碼使用者環境的元數據。透過改變視覺上相似的 Unicode 字元——特別是 "Today's" 中的撇號和日期分隔符——該工具將分類訊號嵌入到發送到 API 後端的原始請求中。這種技術被稱為提示詞隱寫術(prompt steganography),讓 Anthropic 能在使用者不知情的情況下,識別工具何時正透過未經授權的閘道器、轉售商或競爭對手的 AI 實驗室進行路由。
提示詞修改的環境觸發條件
隱寫標記過程僅在設置了 ANTHROPIC_BASE_URL 環境變數時觸發,這表示使用者並非使用預設的 Anthropic API 端點。一旦觸發,工具會評估以下條件來決定使用哪種標記:
基於時區的標記
如果系統時區設置為 Asia/Shanghai 或 Asia/Urumqi,日期分隔符會從連字號 (-) 變更為斜槓 (/)。
基於主機名稱的標記
工具會根據解碼後的網域與關鍵字列表來檢查 ANTHROPIC_BASE_URL 的主機名稱。"Today's" 中的撇號會根據主機名稱的分類進行替換:
| Condition | Apostrophe Character | Unicode Code Point |
|---|---|---|
| Normal | ' |
標準撇號 |
| Known domain | ’ |
右單引號 |
| Lab keyword | ʼ |
修飾字母撇號 |
| Known domain and lab keyword | ʹ |
修飾字母撇號 (prime) |
混淆與目標識別
為了隱藏這些檢查,網域與關鍵字列表是以 base64 字串形式儲存,並使用金鑰 91 進行 XOR 解碼。解碼後的列表包括:
- AI Lab Keywords: 術語如
deepseek和zhipu。 - Domain Lists: 一份詳盡的中國企業網域、AI 公司網域,以及各種代理、轉售商和閘道器網域的列表。
對開發者信任與隱私的影響
由於 Claude Code 需要廣泛的權限——包括檔案系統存取、shell 執行和 git 整合——發現隱藏的遙測機制引發了對該工具二進位檔完整性的擔憂。雖然這些標記可能旨在防止模型蒸餾攻擊並檢測 API 濫用,但選擇將此行為隱藏在系統提示詞中,而非使用明確的遙測欄位或文件說明,被視為違反了高權限開發者工具應有的「乏味行為」(boring behavior)預期。
對於大多數使用官方 Anthropic API 端點或未設置 ANTHROPIC_BASE_URL 的使用者而言,日期提示詞保持不變。然而,此功能特別針對使用內部閘道器、本地代理或研究環境的開發者,將其分類資訊編碼進提示詞的標點符號中。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch