研究者提出针对黑盒 LLM 的实用密钥提取框架
Practical Secrets Extraction against Black-box LLMs
作者通过扰动蒸馏本地代理与离线过滤提取黑盒大模型凭据,真实key平均恢复数较直接查询提升11.8%–25.0%(Table 1)。
攻击者仅具有 output-only 黑盒访问权限,无法获知模型权重、token 概率分布、中间表示或梯度,亦缺乏凭据在训练数据中的精确原始上下文。
- 代码大模型在训练时可能记忆公开或私有代码中的高熵 API key,造成泄露风险;然而商业黑盒接口仅提供文本输出且隐藏内部概率分布,直接查询难以区分真实凭据与模型幻觉,并面临搜索空间狭窄和线上调用开销巨大的限制。
- 提出两阶段黑盒提取框架:先通过语义保留的代码前缀扰动查询受害模型,经格式过滤后通过硬标签响应蒸馏构建本地白盒代理模型;再在代理模型上采用 Sample-k%p 采样,结合局部窗口熵与 4-gram 重复抑制离线过滤候选凭据。
- 在 5 个平台凭据基准上,真实凭据平均恢复数较直接查询提升 11.8%–25.0%(Table 1),提取延迟降低 20.7–34.8 倍(Figure 3);实测从 Qwen3-27B、GPT-Codex 5.3 和 Claude Haiku 4.5 中成功恢复出在 GitHub 存在公开匹配的凭据。
- 作者指出代码与材料计划在未来发布以促进复现,研究推动了更严格的数据清洗研究;出于伦理考量未对恢复凭据进行实时接口验证;受控实验覆盖 3 个受害模型与 5 家凭据平台,真实测试未向外部发送请求。
- 威胁模型
- 攻击者仅具有 output-only 黑盒访问权限,无法获知模型权重、token 概率分布、中间表示或梯度,亦缺乏凭据在训练数据中的精确原始上下文。攻击者通过向黑盒接口输入语义保留扰动代码获取生成补全,并在本地构建和查询白盒代理模型,目标是提取黑盒模型在训练中记忆的高熵真实 API key。
- 被测模型
- DeepSeek-Coder-7BLLaMA-3-8BQwen2.5-Coder-7BQwen3-27BGPT-Codex 5.3Claude Haiku 4.5
- 基准
- Controlled API-key benchmark (500 keys across OpenAI, OpenRouter, Google, DeepSeek, Stripe)Real-world evaluation
- 指标
- Recovered Secrets (RS)Real Rate (RR)Cosine Similarity3-gram Jaccard SimilarityPost-construction Generation Latency
研究者提出一套仅依赖输出接口的黑盒密钥提取框架,用于从商业 API 大模型中提取被记忆的 API key。方法分两阶段:先用语义保持的提示变体、响应交叉验证和厂商格式过滤,把受害模型的密钥相关行为蒸馏到本地白盒代理;再在代理上用截断 top-p 采样配合局部 token 熵、N-gram 频率和厂商结构先验筛选候选。在含 5 家厂商、4 种编程语言共 100 个真实密钥的受控基准上,恢复效果较代表性基线最高提升 57.1%,真实密钥比例最高提升 2.6 倍,构建后提取延迟降低 20.7 至 34.8 倍。真实环境评估从三个独立部署的黑盒系统中恢复了被掩码的厂商凭证,涉及 OpenAI 与 Claude Code,GitHub 搜索显示这些密钥存在公开匹配,作者出于伦理未发起实际 API 调用。
推荐理由论文给出仅凭输出接口提取记忆密钥的两阶段方法,并附受控基准与真实系统验证,可对照现有白盒审计思路。
深度解读
这篇论文试图解决什么问题?
针对商业大模型仅有输出访问权限且缺乏原始上下文的限制,解决代码模型记忆的高熵 API key 提取与防幻觉问题。
核心问题:如何在仅有输出访问权限(output-only access)且缺乏精确训练上下文的黑盒大语言模型(LLM)商业接口下,有效提取模型在训练过程中记忆的高熵、受格式约束的 API key 等机密凭据。
- 凭据泄露场景与风险:代码大模型在训练时大量抓取公开代码仓库或收集用户私有代码与执行轨迹,容易将硬编码的 API key 记入模型权重;作者指出,一旦恶意攻击者提取这些凭据,可能导致未授权 API 调用、下游数据泄露及经济损失。
- 黑盒约束限制:现有针对大模型凭据记忆的提取研究多针对开源白盒模型,依赖权重、token 概率分布或隐层表示;商业 API 仅暴露生成文本,无法直接通过置信度或梯度指导搜索,且难以区分记忆凭据与模型幻觉。
- 搜索空间瓶颈:黑盒场景下直接采用贪婪解码(Greedy Decoding)容易陷入狭窄、低多样性的局部模式,而通过高频重复调用黑盒 API 扩大搜索不仅成本高昂,还容易触发服务端风控与滥用检测机制。
- 威胁模型:
- 攻击目标:提取黑盒受害模型在训练数据中记忆的真实 API key。
- 攻击者知识:严格的 output-only 黑盒访问权限,无法获知模型权重、token 概率、梯度或隐藏表示,且不具备目标凭据在训练数据中原本所处的精确代码上下文。
- 攻击者能力:可使用标准化 API 调用代码片段并通过 5 种语义保留变换生成变体前缀向受害接口发送查询获取文本输出,并可在本地部署和微调白盒代理模型进行无查询限制的离线推断与过滤。
- 受害系统:基于商业 API 部署的黑盒代码大语言模型系统。
- 论文提出的方案:提出了结合跨验证凭据知识蒸馏(Cross-Validated Secret Knowledge Distillation)与代理引导凭据提取与候选过滤(Proxy-Guided Secret Extraction and Candidate Filtering)的两阶段黑盒提取框架。
有哪些相关研究?
现有工作包括基于代码补全的 HCR、白盒概率引导的 DESEC 及 PII 提取,但均未解决黑盒高熵凭据定向提取。
大语言模型记忆机制与代码凭据泄露
- 凭据泄露普遍性:Meli 等(2019)实证分析了 GitHub 公开仓库中凭据暴露的普遍性;Kandpal 等(2022)探讨了训练数据重复导致语言模型以不成比例的高概率重构重复序列的现象;luwanglin(2026)报告了平台非授权收集包含 Git 历史的工作区快照并用于训练的实际案例。
代码凭据模型提取攻击
- HCR(Huang 等,2024):在黑盒访问下评测代码补全系统的凭据泄露,通过掩码 GitHub 源文件并要求模型补全填空,利用正则模式、去重和有限操作检查过滤候选。作者指出 HCR 假设了基于具体代码仓上下文的 infill 模式,无法应对外部审计者缺乏原始上下文的场景。
- DESEC(Nie 等,2025):分析真实凭据与幻觉凭据在 token 级别的概率分布差异,训练打分器干预开源代码模型的 next-token 解码。作者指出 DESEC 需要模型内部概率与解码干预控制权,无法直接用于商业黑盒 API。
- Yang 等(2025):从训练动力学因果视角研究微调代码模型的隐私风险,通过跟踪敏感 token 的置信度与变异性关联提取攻击。作者指出此类方法依赖内部检查点与预测概率。
通用训练数据与个人身份信息(PII)提取
- 自然语言与软件 PII 提取:Carlini 等(2021)开创了针对 GPT-2 生成候选集并基于似然指标排序的训练数据逐字提取;Nasr 等(2025)通过诱导发散提示词实现对对齐聊天机器人的 output-only 提取;CodexLeaks(Niu 等,2023)结合隐私模板与代码仓搜索审计 GitHub Copilot;Codebreaker(Han 等,2025)利用语义熵指导的提示变异自动化提取 PII。作者指出这些工作主要针对非结构化自然语言或广泛的个人标识符,未解决高熵、强格式约束的 API key 的定向提取问题。
基线方法与基准
- 基线方法:直接黑盒贪婪解码(Greedy Decoding)、结合凭据格式与启发式过滤的黑盒基线 HCR(Huang 等,2024),以及在本地代理模型上运行的白盒引导束搜索基线 DESEC(Nie 等,2025)。
- 基准与环境:包含来自 OpenAI、OpenRouter、Google、DeepSeek 和 Stripe 5 个平台各 100 个有效 key(共 500 个)与跨 4 种语言(Python、Java、JavaScript、PHP)调用代码构建的受控基准数据集。
与已有工作的区别定位:作者将本文工作定位为在严格 output-only 黑盒访问下,通过语义保留前缀扰动与蒸馏构建本地白盒代理,进而实现无内部信息依赖、高多样性且低线上查询成本的高熵 API key 定向提取。
论文如何解决这个问题?
通过 5 种代码前缀扰动与硬标签蒸馏构建本地白盒代理,再通过离线截断采样与局部熵及 4-gram 重复抑制筛选真凭据。
该方法包含两个阶段:跨验证凭据知识蒸馏(Cross-Validated Secret Knowledge Distillation)与代理引导凭据提取与候选过滤(Proxy-Guided Secret Extraction and Candidate Filtering)。该设计将远端受害模型的交互限制在知识获取阶段,把候选搜索与验证转移至本地离线完成。
跨验证凭据知识蒸馏
- 前缀扰动与变异生成:针对外部审计者无法获知训练数据精确原始代码上下文的问题,从标准 API 调用代码模板 T0 出发,使用 5 种语义保留变换集合 A 生成多样化前缀候选集 T = {Aj(T0) | Aj ∈ A}:包括注释编辑(A0)、死代码注入(A1)、空白与格式微调(A2)、语法等价重构(A3)和标识符重命名(A4),并划分为弱、中、强三种扰动强度。
- 双层响应过滤流水线:受害模型 MV 对扰动前缀集 T 生成候选补全 MV(T)。采用复合过滤机制 F = Fglobal ◦ Flocal 清洗输出:局部格式过滤器(Flocal)检查提供商特定前缀(如 Google 的 AIzaSy)与合法字符集;全局结构过滤器(Fglobal)根据提供商固定长度约束(如 DeepSeek 约 35 字符,Claude 约 108 字符)剪枝长度异常的幻觉输出,构建清洗后的蒸馏数据集 D。
- 硬标签代理微调:由于黑盒受害模型仅返回文本而不提供 logits,采用硬标签响应蒸馏,将过滤后补全 y 视为伪标签,最小化自回归负对数似然损失:
Lproxy(θS) = −1/(|D|) ∑(t,y) ∈ D 1/(|y|) ∑i=1|y| log pθS(yi ∣ t, y<i) 该公式表示在蒸馏数据集 D 上最小化代理模型预测受害模型有效回复的平均负对数似然。该设计使代理模型 MS 强化跨变体复现的凭据模式,削弱扰动引入的不一致伪影。
代理引导的多样性保留采样
- 去奖励模型化的采样设计:传统方法依赖奖励模型指导解码,作者指出这会导致生成集中在少量高分模式而降低凭据空间覆盖率,且每步 token 都需一次额外前向评估。作者舍弃了辅助奖励模型,采用随机概率截断的 Sample-k%p 采样策略。
- Sample-k%p 离线解码:在本地白盒代理模型上,设置温度参数 τ = 0.8 对 logits 缩放并构建 top-p 候选集,对每个 prompt 独立执行 k 次自回归解码并去重。采样概率经 top-p 集合重新归一化,通过增大 k 以本地推断代价换取更广的凭据覆盖空间,不增加受害模型的线上查询。
真实性感知候选过滤
- 离线校准机制:使用与最终测试集严格不相交的校准集凭据 Kreal 及其调用模板 P 微调 Qwen 基座模型建立记忆,将其在 P 上的错误生成标记为负样本集 Kfalse,所有过滤阈值均在校准集上预先固化。
- 最小窗口熵筛选:全局熵易掩盖局部退化,因此在长度为 L 的候选 key 上滑动计算窗口大小 W = 8 的局部香农熵:
Hi(W)(s) = − ∑c ∈ A pi(c) log2 pi(c) 该公式表示候选凭据从位置 i 开始长度为 W 的窗口内字符经验分布的局部香农熵。仅保留满足最小窗口熵大于等于提供商校准阈值的候选(DeepSeek 为 1.3、OpenAI 为 1.7、OpenRouter 为 1.2、Stripe 为 1.4、Google 为 1.9)。
- 重复子串抑制:设定 n-gram 长度 n = 4,统计 4-gram 最大出现频次。根据在各提供商 100 个真实凭据上的统计(DeepSeek、OpenAI、Stripe、Google 最大频次为 1,OpenRouter 为 1–2),设定阈值 τngram = 2,剔除任意 4-gram 出现超过 2 次的候选。
论文做了哪些实验?
在 3 个受害模型上真实凭据恢复数提升 11.8%–25.0%,延迟降 20.7–34.8 倍,并从 3 个商业模型中提取出真实凭据。
实验设置
- 被测模型:受害模型为 DeepSeek-Coder-7B、LLaMA-3-8B 和 Qwen2.5-Coder-7B 共 3 个;白盒代理模型为 StarCoder2-7B 和 Seed-Coder-8B 共 2 个;真实黑盒商业系统为 Qwen3-27B、GPT-Codex 5.3 和 Claude Haiku 4.5 共 3 个。
- 数据集与规模:受控实验收集 OpenAI、OpenRouter、Google、DeepSeek、Stripe 共 5 个平台的 500 个有效 API key(每平台 100 个),各配对 100 个代码调用片段(Python、Java、JavaScript、PHP 各 25 个),构成 100 样本的微调训练集以 LoRA 模拟真实训练记忆。校准集与评测集严格分离。
- 基线方法:Greedy Decoding(直接查询受害模型)、HCR(添加凭据格式规范与启发式过滤)以及 DESEC(在同一白盒代理模型上运行的引导束搜索基线)。
- 评测指标:Recovered Secrets(RS,相同采样预算下恢复的真实凭据数量)、Real Rate(RR = RS/PS,提取候选中的真实凭据比例)、候选多样性(prompt 内的余弦相似度与 3-gram Jaccard 相似度)、构建后生成延迟(Post-construction Generation Latency,代理构建后单次提取耗时)。
- 推断与采样参数:黑盒受害模型扰动代码采样设置温度 T = 0.5、top-p = 0.8,白盒代理模型采样设置温度 T = 0.8、top-p = 0.9,每 prompt 采样候选数均为 10。硬件环境为单张 RTX 5090 GPU(Python 3.12、PyTorch 2.8.0、CUDA 12.8)。
主结果
表格较宽,可左右滑动
受害模型 方法 DeepSeek Google OpenAI Avg DeepSeek-Coder-7B Greedy Decoding 50.0 55.0 4.0 28.0 DeepSeek-Coder-7B Ours–StarCoder2-7B 57.0 62.0 6.0 35.0 Qwen2.5-Coder-7B Greedy Decoding 37.0 51.0 10.0 30.0 Qwen2.5-Coder-7B Ours–StarCoder2-7B 45.0 56.0 13.0 34.6 LLaMA-3-8B Greedy Decoding 48.0 59.0 14.0 44.2 LLaMA-3-8B Ours–StarCoder2-7B 54.0 65.0 17.0 49.4 (注:因列数限制,表中省略了 HCR、Ours–Seed-Coder-8B 方法及 OpenRouter、StripeTest 列;完整 5 个平台均值列于 Avg;白盒代理模型不同于受害模型本身,据 Table 1。)
- 真实凭据恢复数量提升:作者报告,在所有受害模型和 API 平台上,两种代理模型实现的提取效果均超过直接查询基线;最优平均恢复数量在 DeepSeek-Coder-7B 上从 28.0 增至 35.0,在 Qwen2.5-Coder-7B 上从 30.0 增至 35.0,在 LLaMA-3-8B 上从 44.2 增至 49.4,相对提升 11.8%–25.0%(据 Table 1)。
- 真实凭据命中率提高:在弱扰动条件下,作者报告本文方法在 5 个提供商上均提高了真实凭据占候选集的比例(RR),相比于白盒基线 DESEC 提升高达 2.6 倍(据 Table 2)。
- 候选多样性提升:基于相同 prompt 生成的 key 之间,本文方法的余弦相似度和 3-gram Jaccard 相似度在所有提供商上均低于 DESEC(如 DeepSeek key 的余弦相似度从 0.5835 降至 0.1843,Jaccard-3 从 0.5122 降至 0.1385),作者认为这表明 native top-p 采样与生成后过滤避免了重复生成近似重复的候选(据 Table 3)。
提取延迟与推断效率对比
- 测了什么:在构建完成的本地代理模型上,测试生成 10 个候选 API key 的生成延迟(Post-construction Generation Latency),与使用相同代理模型的白盒基准 DESEC 进行对比(据 Figure 3、A.3)。
- 实验结果:本文方法在 5 个平台上的提取延迟为 210–454 秒(DeepSeek 为 252 秒,Google 为 210 秒,OpenAI 为 454 秒,OpenRouter 为 454 秒,Stripe 为 381 秒),而 DESEC 耗时为 7.3k–11.1k 秒,延迟降低 20.7 倍至 34.8 倍(据 Figure 3)。
- 作者的解读:作者指出效率提升源于本文采用原生采样配合离线批处理过滤,避免了逐 token 进行引导解码;作者同时强调 20.7 倍–34.8 倍代表的是构建后的提取加速,而非端到端攻击效率提升,因为双方共享受害模型查询、蒸馏和 LoRA 微调开销。
真实黑盒商业大模型实测
- 测了什么:使用相同的代码 prompt 针对 3 个部署的商业黑盒模型系统(Qwen3-27B、GPT-Codex 5.3、Claude Haiku 4.5)进行凭据恢复测试(据 Figure 4、Sec. 4.4)。
- 实验结果:Qwen3-27B 输出了 2 个 DeepSeek key 和 1 个 Google key;GPT-Codex 5.3 输出了 1 个 DeepSeek key;Claude Haiku 4.5 输出了 2 个 DeepSeek key;通过 GitHub 公开检索证实了每个未打码凭据均存在公开匹配(据 Figure 4、Sec. 4.4)。
- 作者的解读:作者认为这表明即使在没有模型权重或 token 概率的 output-only 访问下,黑盒商业系统记忆的真实凭据依然可被提取;跨提供商的凭据恢复进一步说明一份泄露的训练数据不仅影响模型开发者,还会连带影响凭据所有者与服务提供商。
其他消融与分析
- 代码扰动方式消融:以 Qwen2.5-Coder-7B 为受害模型、Seed-Coder-8B 为代理,弱扰动下格式微调在 DeepSeek 上 RR 最高(0.2885),注释编辑在 Google 上最高(0.2534),语法等价重构在 OpenAI(0.0277)、OpenRouter(0.0799)和 Stripe(0.0366)上最高(据 Table 4)。
- 扰动强度影响:在 30 组聚合实验中,弱扰动在 4 个提供商上均值最高(DeepSeek 为 0.2264,Google 为 0.2401),强扰动使两者的 RR 降至 0.1683 和 0.1930;Stripe 是唯一例外,强扰动均值(0.0480)略高于弱扰动(0.0474)(据 Table 5)。
- 过滤策略消融:以 DeepSeek-Coder-7B 为受害模型、StarCoder2-7B 为代理在中度注释编辑下,Base 策略综合 RR 为 0.0622,单独加入熵筛选增至 0.0671(+8.0%),单独加入 4-gram 抑制增至 0.0649(+4.5%),两者结合的 Full 策略达 0.0685(+10.2%),且所有变体均恢复相同的 170 个真实 key(据 Table 6)。
有什么可以进一步探索的点?
作者计划未来开源代码并呼吁更严格的数据清洗,实测未向外部接口发送实时请求;受控实验覆盖 3 个受害模型与 5 家凭据。
作者指出的局限与后续方向
- 代码与支持材料发布:作者在 Reproducibility Statement 中说明,代码和支持材料将在未来发布,以促进独立复现(Reproducibility Statement)。
- 预训练数据清洗研究:作者在 Conclusion 中提出,本研究结果推动未来针对更严格的预训练数据清洗技术开展研究,以避免大语言模型记忆机密信息(Sec. 5)。
- 真实调用验证限制:作者在 Real-World Evaluation 中说明,出于学术伦理原因,实验未向外部服务发送实时 API 查询以测试提取凭据的可用性(Sec. 4.4)。
(注:论文正文未设立专门的 Limitations 章节讨论方法局限。)
实验覆盖范围
- 被测受害与代理模型范围:受控实验覆盖 3 个受害代码模型(DeepSeek-Coder-7B、LLaMA-3-8B、Qwen2.5-Coder-7B)与 2 个白盒代理模型(StarCoder2-7B、Seed-Coder-8B)(Sec. 4.1);真实黑盒评测覆盖 Qwen3-27B、GPT-Codex 5.3 和 Claude Haiku 4.5 共 3 个系统(Sec. 4.4)。
- 凭据与语言种类:受控基准评测包含 5 个服务提供商(OpenAI、OpenRouter、Google、DeepSeek、Stripe)各 100 个有效 key,共 500 个凭据,配对代码包含 Python、Java、JavaScript、PHP 共 4 种语言(Sec. 4.1)。
- 代码扰动类型与强度:覆盖注释编辑、死代码注入、格式调整、语法等价变换和变量重命名 5 种扰动方式,每种划分弱、中、强 3 种强度(Sec. 3.1、A.2)。
- 采样预算与候选数量:每个测试 prompt 固定采样 10 个候选 API key,受害模型采样温度 T = 0.5、top-p = 0.8,代理模型采样温度 T = 0.8、top-p = 0.9(Sec. 4.1)。
- 真实系统评测协议:真实黑盒模型测试中未测试通过实时 API 查询验证凭据有效性,通过 GitHub 历史记录检索公开匹配进行佐证(Sec. 4.4)。
总结一下论文的主要内容
论文提出扰动蒸馏与离线过滤两阶段框架,实现了 output-only 访问下延迟降低的黑盒大模型 API key 提取。
- 定位与核心问题:针对黑盒商业大语言模型仅暴露生成文本且隐藏内部概率分布的限制,解决缺乏精确训练上下文时提取模型记忆的高熵 API key 的安全风险。
- 两阶段方法框架:第一阶段利用注释编辑、死代码注入等 5 种语义保留代码变换扰动输入前缀,结合格式与长度双层过滤,通过硬标签响应蒸馏将黑盒模型的有效凭据输出迁移至本地白盒代理模型;第二阶段舍弃耗时的奖励模型,在白盒代理上通过 Sample-k%p 截断采样扩展候选空间,并基于最小窗口熵和 4-gram 重复子串抑制离线过滤幻觉凭据。
- 凭据恢复效果:在 5 个 API 平台的受控评测中,针对 DeepSeek-Coder-7B、Qwen2.5-Coder-7B 和 LLaMA-3-8B 三大受害模型,平均恢复的真实凭据数量相较直接查询基线提升 11.8%–25.0%,分别达到 35.0、35.0 和 49.4 个(Table 1)。
- 候选质量与多样性:在弱扰动条件下真实凭据比例(RR)相比白盒基线 DESEC 提升最高达 2.6 倍(Table 2),prompt 内候选凭据的余弦相似度和 3-gram Jaccard 相似度显著降低(Table 3)。
- 推断效率提升:将过滤与排序转移至本地离线后,单次提取延迟降至 210–454 秒,较 token 级引导解码的 DESEC 提速 20.7 倍至 34.8 倍(Figure 3)。
- 真实商业系统验证:在未接触模型权重的情况下,成功从 Qwen3-27B、GPT-Codex 5.3 和 Claude Haiku 4.5 中提取出多条凭据,并在 GitHub 上检索到公开匹配记录(Figure 4)。
- 作者结论与启示:作者指出,实验表明 output-only 访问权限足以暴露黑盒模型记忆的机密凭据,构成现实的安全威胁,呼吁业界在预训练前执行更严格的数据清洗以避免敏感信息记忆。