PrefixWall:缓解共享 LLM 系统中的前缀缓存侧信道
PrefixWall: Mitigating Prefix Caching Side Channels in Shared LLM Systems
PrefixWall选择性隔离可疑共享前缀以防APC计时侧信道,作者称比用户隔离缓存复用高至70%、延迟低30%。
攻击者向跨安全域共享前缀缓存的多租户LLM服务提交请求并测量TTFT,借命中与未命中逐项重建含秘密的提示词。
- 多租户LLM服务的APC复用相同前缀时,命中比未命中更快。攻击者可测量TTFT判断前缀是否匹配,并逐项重建他人提示词。按用户切断共享或加噪声会让正常用户失去缓存收益。
- PrefixWall为缓存项记录首次所有者,其他用户复用时打标记,非所有者不能沿标记继续复用,所有者可以。Activator比较近期命中与未命中TTFT的KDE overlap和阈值,决定是否启用这套隔离。
- 在A100与9个模型、ShareGPT构造的5组负载上,作者称比用户隔离缓存复用高至70%、延迟低30%。无防护时猜中请求命中率到100%,PrefixWall无尖峰;额外延迟合计0.007 ms/请求。
- 第4节写明保证不覆盖对提示词第一项的窃取,也不覆盖未标记前缀上的第一次猜中;阈值过低时可能不启用隔离。评测在一台A100上比较Prefix Caching与用户级隔离;论文未报告重复次数、滑动窗口长度和主实验所用θ。
- 威胁模型
- 攻击者向跨安全域共享前缀缓存的多租户LLM服务提交请求并测量TTFT,借命中与未命中逐项重建含秘密的提示词。探测共享已知前缀并改变下一项,可单人或合谋,也可与其他请求交错,不直接访问缓存。保证要求前缀至少有一项,且父项已标记或首次猜测错误,此时其他用户的探测项均为miss。
- 被测模型
- gemma-3-4b-itllava-onevision-qwen2-0.5b-ov-hfllava-onevision-qwen2-7b-ov-chat-hfLlama-2-7b-chat-hfLlama-2-13b-chat-hfQwen2-VL-2B-InstructQwen2.5-VL-3B-InstructQwen2-VL-7B-InstructQwen2.5-VL-7B-Instruct
- 基准
- ShareGPTWorkload 1–5attacker workload
- 指标
- TTFTcache hit rateKDE overlap
PrefixWall 通过监控跨用户的缓存复用、标记可疑共享并选择性隔离前缀,在不牺牲性能的前提下防御多租户 LLM 服务中的 Automatic Prefix Caching(APC)侧信道。现有防御通常直接关闭 APC 与缓存共享来隔离用户,代价是效率下降;PrefixWall 仅在必要时限制前缀复用。评估显示,相比这类隔离式防御,其缓存复用率最高提升 70%,推理延迟降低 30%。
深度解读
这篇论文试图解决什么问题?
共享APC的命中时延可被用来窃取他人提示词,PrefixWall只隔离可疑前缀。
共享 APC 的多租户服务会把缓存命中变成 TTFT 侧信道,可被用来窃取他人提示词;PrefixWall 只隔离可疑前缀。
- 场景:作者称 APC 已被 OpenAI、DeepSeek、Google Gemini、MoonShot Kimi、vLLM、SGLang 使用,用来复用请求开头相同文本的 KV 状态。命中快于未命中;作者转述文献,ShareGPT 等数据里同一用户前缀共享为 9–60%,跨用户复用至多 30%。
- 不足:既有做法包括按用户隔离或关闭跨请求复用、注入噪声,以及 SafeKV 用规则和 LLM 做敏感与非敏感分类后再隔离。作者认为前两类开销大或未处理泄漏源,SafeKV 的语义分析不利扩展,误分类会留下未保护请求。
- 观察:作者认为隔离整个用户并非必要,限制可能导致攻击的共享前缀即可。可利用性取决于前缀长度、模型大小、RPS 和硬件,并非一律可利用。
- 方案:PrefixWall 监控跨用户复用、标记可疑前缀,并在后续请求中停止非所有者继续复用;时延不可区分时不启用隔离。
- 威胁模型:
- 目标:prompt stealing,逐项重建他人提示词中的秘密项。
- 知识:第 2.3 节示例假定模板已知;第 4 节假定探测共享已知前缀 pre,只改最后一项。
- 能力:提交请求并测量 TTFT;可单人或合谋,探测可与其他请求交错;不直接读缓存。第 2.3 节举例用分类器区分命中与未命中。
- 受害系统:跨用户或安全域共享前缀缓存的多租户 LLM 服务。命中表示候选与已缓存前缀匹配。
有哪些相关研究?
相关防御按用户隔离、加噪声或做语义分类;PrefixWall按跨用户复用选择性隔离。
论文按服务优化、侧信道和 APC 防御来组织相关工作,并写出与按用户隔离的差别。
计时泄漏与提示词窃取
- Song et al.(2025):指出服务中缓存命中与未命中的时延差可用来重建提示词。论文称其增大每个缓存项 token 数的做法并不消除泄漏,只是要求一次猜中整项。
- InputSnatch 与 API 审计:Zheng et al.(2024)给出利用时延差窃取多租户输入的探测;Gu et al.(2025)讨论商业 API 中共享缓存在不能直接读内存时仍可能泄漏提示词。论文把二者同时列入按用户隔离。
- 其他泄漏面:Carlini 与 Nasr(2024)讨论推测解码等在加密信道上的远程计时泄漏。Wu et al.(2025)不靠时延,而观察 Longest Prefix Match 等调度下服务顺序的变化,逐 token 重建。
针对 APC 的防御
- 按用户隔离:Cache Partitioning(Pang et al., 2024)、InputSnatch、Auditing Prompt Caching 取消跨用户前缀命中。作者称这样能挡住泄漏,但放弃跨请求复用。
- 时延混淆:Carlini 与 Nasr 注入噪声,使命中与未命中的执行时间难以区分。作者指出这不处理跨安全域共享,会对正常请求加统一延迟,并援引历史上混淆可被放大微小时差。
- SafeKV(Chu et al., 2025):用规则和 LLM 语义把请求分成敏感与非敏感,只隔离敏感请求。作者指出语义分析重、不利于高吞吐,误分类的请求仍可能泄漏。
服务优化与经典侧信道
- APC 与精确优化:论文称前缀共享用于长文档和多轮对话;另列举分页 KV 管理、调度、prefill 与 decode 拆分,目标是降延迟而不改结果。
- 近似优化:修改注意力、复用或压缩 KV 被作者称为以精度换速度,并非所有场景可接受。这些方法不是本文实验基线。
- 经典侧信道:论文用 CPU cache、DRAM、分支预测、TLB,以及浏览器、操作系统和协议中的优化泄漏,类比性能优化带来的资源用量差。
基线与本文位置
- 基线:Prefix Caching 是开启 APC、无隔离的 vLLM;User Cache Isolation 由作者按所引工作实现,给每个用户请求前加一个唯一 token。指标为 TTFT 与 cache hit rate,负载来自 ShareGPT。
- 位置:作者称不必隔离整个用户,跟踪跨用户复用并只隔离可疑前缀即可,且不需要语义或事先知道敏感内容。Table 1 用勾叉把隔离类标为不能复用且 TTFT 不高,把混淆和 SafeKV 标为能复用但 TTFT 不高,把 PrefixWall 标为两者都有;这是归类,不是测量值。
论文如何解决这个问题?
用所有权与攻击标记跟踪复用,仅在TTFT可区分时隔离被其他用户碰到的前缀。
PrefixWall 在服务路径上给前缀缓存加元数据,由 Detector 按所有权切断跨用户延续,并由 Activator 决定隔离何时打开。
目标与缓存项
- 三个目标:挡住 APC 的计时攻击;在不同负载和模型上保留缓存复用与推理速度;实时、少加开销,不要求语义分析或事先知道敏感内容,并能接入现有服务系统。
- 元数据:每项增加 OwnerID(首次写入者,分配后不变)和 AttackFlag(因多名用户复用而需隔离)。设计节称每项只增加数字节,不改变张量布局。
- 未命中:新建条目,OwnerID 设为当前用户,AttackFlag 清除。作者称未命中不泄露计时信息,不再做隔离动作。
Detector
- 未标记命中:请求者就是所有者则直接复用。所有者不同则把该条目标为隔离,非所有者此后不能沿该前缀继续复用,其后的 token 另建缓存项。
- 已标记命中:下一项属于请求者则继续复用;否则停在标记处,剩余部分经 LLM 重算。结果是部分命中,共享前缀仍可复用。
- 所有者例外:作者强调所有者始终可沿自己的路径扩展,即使节点已被标记,以免拖慢正常请求。Figure 5 用连续时刻上的三名用户示意分叉,不看提示词语义。
Activator
- 何时开启:第 2.2 节称时延差随共享前缀变长、模型变大而增大,随 RPS 升高被批处理与排队掩盖,硬件也影响测量。始终开启会在高负载下过度保护。
- 判定:每个请求用最近滑动窗口的 TTFT 样本估计命中与未命中的 KDE overlap。超过管理员阈值 θ 时关闭选择性隔离,但仍更新元数据;低于 θ 时启用检测与隔离。论文未给出窗口长度。
- 阈值:留给管理员,应反映命中与未命中在统计上不可区分的位置,以及安全与开销的取舍。
保证与实现
- 覆盖的探测:对用户 u 拥有的 pre·secret,若 pre 至少含一项,且 pre 的最后一项已被标记,或探测的第一项不等于 secret,则其他用户执行该序列时,变化项均为 miss。合谋、交错的不相交请求和缓存初始状态不改变这一保证。
- 未覆盖:没有可标记的父节点时,不保护针对提示词第一项的窃取;未标记前缀上,第一次就猜中 secret 也不保护。作者称若把所有前缀都当成已标记,就会退回用户级隔离。
- 实现:基于 vLLM 0.8.5 的 V1 引擎。扩展 KVCacheBlock;Detector 在 Scheduler 中于调度前更新元数据;Activator 在异步执行层计算。实现节字段名为 owner_id 与 attacker_flag,脚注写作 under_attack。作者计划开源。
论文做了哪些实验?
作者称比用户隔离缓存复用高至70%、延迟低30%;主实验在vLLM与9个模型上、Detector常开。
在 vLLM 上比较无防护 APC、PrefixWall 与用户级隔离;正文给出概括数字,不是逐模型表。
实验设置
- 平台:NVIDIA A100(40 GB),vLLM 0.8.5,block size 16,V1 引擎。第 5.2 节把处理速率设为每秒 1 个请求,并称此时侧信道容易利用;Detector 始终开启。到达时间另写为泊松分布。论文未报告重复次数。
- 模型:gemma-3-4b-it、llava-onevision-qwen2-0.5b-ov-hf、llava-onevision-qwen2-7b-ov-chat-hf、Llama-2-7b-chat-hf、Llama-2-13b-chat-hf、Qwen2-VL-2B-Instruct、Qwen2.5-VL-3B-Instruct、Qwen2-VL-7B-Instruct、Qwen2.5-VL-7B-Instruct。参数量从 0.5B 到 13B,Table 2 给出模型显存与剩余 KV 缓存。
- 负载:由 ShareGPT 构造 5 组,每组 10 个用户、每用户 100 个请求。BERT 标出不同位置的敏感词并换成占位,再填不同候选,以改变用户内、用户间重叠。其中一名用户按第 4 节方式探测流行模板。Figure 7 的平均值不含该攻击者。
- 基线:Prefix Caching 为开启 APC 的 vLLM;User Cache Isolation 为每请求前加一个唯一用户 token。第 5 节未报告 SafeKV 或噪声混淆的测量。
- 指标:TTFT 与 cache hit rate。没有 LLM 裁判;攻击者实验直接看这两项有没有尖峰。
主结果
九个模型的逐项柱高正文未列出,故不按模型分行填数。下表只收正文写出的概括。
比较 数值 出处 相对用户级隔离的缓存复用 作者称高至 70% 摘要、贡献 相对用户级隔离的推理延迟 作者称低 30% 摘要、贡献 各模型 TTFT 相对 Prefix Caching 作者称 6% 以内 Figure 8 正文 五组负载平均相对 Prefix Caching 作者称大约 5–10% Figure 7 正文 Llama-2-13b 与 Prefix Caching 的 TTFT 差 2 ms Figure 8 正文 Workload 5 上用户级隔离命中率 0 Figure 7 正文 - 负载形态:Workload 1 只有用户内复用,三者命中率与 TTFT 相当。Workload 5 只有用户间复用,用户级隔离命中率为 0、TTFT 最高;作者称 PrefixWall 仍接近 Prefix Caching。平均而言,作者称 PrefixWall 的命中率更高、TTFT 更低,但仍差于无防护 APC。
- 模型:作者称模型变大后,无防护与用户隔离的差距变大,且因模型族而异。Llama-2-13b-chat-hf 的 KV 缓存在 Table 2 为 15.7 GB;作者称几乎只有其余模型的一半,因而驱逐更频繁、未命中更多。
- 两套数字:70% 与 30% 相对用户级隔离,第 5.2 节没有按负载拆开;5–10% 与 6% 相对 Prefix Caching。主实验不是 Activator 关闭隔离的设置。
攻击者可观测结果
- 设置:一名正常用户的公开提示词中部有一段秘密;攻击者发 20 个请求,候选值不同,第 9 个猜中。先跑受害者请求,再在两种系统上测 Figure 9。
- 无防护:作者称除第 9 次外命中率与 TTFT 稳定;第 9 次命中率达到 100%,并称这与 TTFT 下降对应。同一段又写 hit rate 与 TTFT 都出现 spike。图中曲线数值正文未列出。
- PrefixWall:作者称 20 次的命中率与 TTFT 都均匀,第 9 次没有尖峰,因此在该负载上不能靠 TTFT 指出哪一次匹配。秘密在中部,正确猜测也不是第一次,不对应第 4 节的两个未覆盖情形。
侧信道何时可区分
- 测了什么:Figure 2 在 RPS=1 下比较 LLava-0.5B、Qwen2.5-3B、Gemma3-4B、Llama2-7B 的命中(红)与未命中(蓝),并以 Llama-13B 在 RPS 为 10、20、30、40、前缀 100–500 token 下测量。Figure 3 用 KDE overlap 概括 5 个模型、前缀长度与请求率。
- 结果:除最小的 LLava-0.5B 外,作者称超过一定前缀长度后 TTFT 差变明显,前缀越长、模型越大差距越大;LLava-0.5B 的差异可忽略。RPS 升高后差距收拢。Figure 3 正文称 overlap 随前缀变长下降,LLaMA-13B 与 LLaMA-7B 更明显,Llava-0.5B 仍高;高 RPS 下各模型几乎不可区分。图中没有逐点读数。
- 作者解读:可利用性由前缀长度、模型大小、负载和硬件共同决定;高负载下批处理与排队掩盖缓存时延。Figure 3 图例写 Gemma-4B、LLama2-7B 等,与 Table 2 简称不完全相同。
激活阈值
- 设置:Llama2-13B、Workload 4(作者称复用高),KDE 阈值从 0% 到 100%。Figure 10 标出 Prefix Caching、User Cache Isolation,以及 Detector 始终开启的 PrefixWall。
- 结果:阈值接近 0% 时,作者称与 Prefix Caching 相当,因为选择性隔离几乎总是关闭。接近 100% 时,命中率与性能接近始终开启的选择性隔离。所有列出的 KDE 取值上,作者称都优于用户级隔离。中间阈值的具体 TTFT 与命中率正文未给出。
其他消融与分析
- Detector:0.004 ms/请求,32 bytes/缓存项(Table 3);设计节另称元数据仅数字节。
- Activator:0.003 ms,窗口内每个请求 16 bytes(Table 3)。
- 二者合计:作者写平均每请求 0.007 ms(第 5.2.4 节)。
- Workload 2:用户内复用仍高、用户间中等;用户隔离命中率更低、TTFT 更高,PrefixWall 接近 Prefix Caching(Figure 7,无具体毫秒数)。
- 脚注把 32 bytes 归于 Python 中两个 int 对象,把 Activator 的浮点按 16 bytes 计。
- 第 5.2 节未报告只开 Activator、关闭 Detector 的主结果。
有什么可以进一步探索的点?
安全保证不覆盖首项与一次猜中;阈值过低时可能不启用隔离。
安全分析写明两类探测不在保证内,激活阈值也会改变是否设防。
作者指出的局限与后续方向
- 保证非无条件:第 4 节写明只在给定条件下挡住探测,并列出两种未覆盖情形;作者称这是安全与性能权衡下的有意选择。
- 第一项:没有非空前缀时没有可标记的父节点,不保护针对提示词第一项的窃取。作者认为即使所考虑的最大模型,单项的命中与未命中分布仍重叠(Figure 2d),更难利用;并称实际部署常只对更长前缀开启缓存,例如 OpenAI 对超过 1024 token 的提示词才复用。
- 一次猜中:未标记的 pre·secret 上,第一次就猜对则不保护。作者认为秘密空间很小时这会成问题,空间更大则风险下降;一律当成已标记就会退回用户级隔离的开销。
- 阈值过低:第 4 节写,overlap 阈值设得过低时,攻击者仍可能利用 APC 时延差,系统却不启用隔离。
- 流量塑造:同一节写,攻击者可能用突发请求抬高 KDE overlap 以关闭隔离,或压低请求率以触发隔离。作者随后称滑动窗口要求持续条件、决策用系统级而非按用户的测量,短期操纵不易成功;隔离关闭时仍会更新标记,不能借阈值改写缓存元数据。
- 后续方向:论文没有 Future Work 专节,第 7 节也未列出后续研究方向。
实验覆盖范围
- 性能实验在一台 NVIDIA A100 40GB 上、vLLM 0.8.5,模型为 Table 2 的 9 个,参数量 0.5B 到 13B。
- 负载为 ShareGPT 构造的 5 组,每组 10 用户×100 请求;第 5.2 节 RPS=1,Detector 始终开启。论文未报告重复次数、Activator 滑动窗口长度,以及主实验使用的 θ。
- 实验基线为 Prefix Caching 与作者实现的 User Cache Isolation。Table 1 还列出 Remote 的时延混淆和 SafeKV;论文未报告这两者的 TTFT 或命中率。
- 攻击者实证是单独负载:秘密在提示词中部,20 次探测,第 9 次猜中;观察 hit rate 与 TTFT,不是分类器或 ASR。第 2.2 节把硬件列为可利用性因素,正文未报告第二块硬件上的对比数字。
- 阈值扫描为 Llama2-13B 与 Workload 4,KDE 从 0% 到 100%。Figure 2、Figure 3 的模型为 LLava-0.5B、Qwen2.5-3B、Gemma3-4B、Llama2-7B、Llama2-13B,并给出所写的前缀长度与 RPS。
总结一下论文的主要内容
PrefixWall用缓存元数据按需切断跨用户前缀延续,以保留APC并限制TTFT侧信道。
PrefixWall 是多租户 LLM 服务上的系统级防御,用来限制 Automatic Prefix Caching 的 TTFT 侧信道,同时保留前缀复用。
- 问题:共享前缀缓存使命中快于未命中。攻击者提交探测并测量 TTFT,可逐项试探他人提示词中的秘密。作者认为按用户隔离、加噪声或做语义分类,会让未参与攻击的用户失去 APC 收益,或留下误分类请求。
- 方法:每个缓存项记录首次所有者;其他用户复用到某一项时打上隔离标记。所有者仍可沿原路径扩展,非所有者在标记处停止复用并重算后续 token。是否做这套检查,取决于近期命中与未命中 TTFT 的 KDE overlap 是否低于管理员阈值 θ。实现基于 vLLM 0.8.5。作者计划开源。第 7 节有一处系统名写成 CacheSentinel。
- 结果:作者称相对用户级隔离,缓存复用高至 70%、推理延迟低 30%。正文另称,五组 ShareGPT 负载平均与无防护 Prefix Caching 大约差 5–10%,九个模型的 TTFT 在 6% 以内;Llama-2-13b 上二者相差 2 ms。Detector 与 Activator 合计平均每请求 0.007 ms。20 次探测中,无防护系统在猜中的第 9 次命中率达到 100%,PrefixWall 没有对应尖峰。
- 结论:作者称不必隔离整个用户,切断可疑前缀的跨用户延续,即可挡住其分析所覆盖的探测,并避免一律关闭共享。保证不覆盖空前缀上的第一项,也不覆盖对未标记前缀的一次猜中;阈值过低时隔离可能不启用。