Governing the KV Cache: Preventing Timing Side-Channel Leakage in Multi-Tenant LLM Inference
本文介绍了 KVGov,这是一个治理层,通过基于每个主体的加盐机制和审计调度器在不同租户间对 KV 缓存键进行密码学隔离,从而在防止多租户 LLM 推理中的定时侧信道攻击的同时,消除了跨租户泄漏,并保留了 93% 的前缀缓存效率。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一个繁忙且高科技的图书馆,一位神奇的图书管理员(AI)可以回答你的任何问题。为了实现超高速运行,这位管理员在桌上放了一份“参考页”,记录了最常见的故事开头。如果你提出的问题与别人的开篇单词相同,管理员就不需要重新阅读整本书,只需瞥一眼参考页就能直接找到答案。这极其高效,节省了大量时间。然而,在一个有许多不同使用者(租户)共用同一张书桌的繁忙图书馆里,一个狡猾的人可能会窥探到其他人在读什么。他们不需要看到书本身,只需要观察管理员寻找答案所需的时间。如果管理员瞬间抓取了答案,狡猾的人就会知道:“啊,他们问的故事一定和我刚才问的一样!”如果管理员必须走到后排书架,则意味着这个故事是全新的。通过测量这些微小的延迟,一个坏人就可以重建他人的私人秘密或提示词(prompts),将一个速度特性变成一个安全漏洞。
这篇论文就在当今我们使用的超智能 AI 聊天机器人——大语言模型(LLM)的世界中,解决了这个精确的问题。这些模型使用“KV cache”(即参考页)来通过记住对话的前半部分来加速响应。作者发现,在共享环境中,这种速度技巧创造了一个“计时侧信道”(timing side channel)——一个隐藏在耗时情况中的秘密信号。作者发现,已有三组不同的黑客展示了如何利用这一信号以接近 100% 的成功率窃取私密提示词。作者提出了一种名为 KVGov 的新系统来解决这个问题。与其仅仅尝试隐藏时间(这很难),KVGov 改变了游戏规则,让每一位用户的参考页都完全不同。这就像是给每一位图书馆访客提供了自己独特的、隐形的墨水,使得他们的特定参考页对他人而言是无法读取的。作者通过模拟和真实硬件测试表明,这种方法能让所有三种类型的攻击都彻底失效,同时仍保持图书馆足够快的运行速度。他们还引入了一个聪明的“保安”系统,能够准确知道该重点监视谁,并计算出了一个临界点,即在何时停止共享参考页会变得更安全。
伟大的缓存劫案
把 AI 的记忆想象成一块巨大的、共享的白板。当你向 AI 提问时,它会将你句子的关键部分写在白板上,这样如果你稍后问类似的问题,它就不用重新计算它们。这就是 KV cache。在多租户设置中(即许多不同的公司或用户共享同一个 AI 服务器),每个人都共享这块白吧以节省时间。
问题在于这块白板太明显了。如果一个狡猾的用户(攻击者)问:“法国的首都是哪里?”而 AI 瞬间回答了,攻击者就会知道:“噢,肯定有人最近问过这个问题!”如果 AI 花了很长时间,攻击者就知道:“还没有人问过这个问题。”通过尝试数千个不同的问题并测量时间,攻击者可以精确地绘制出其他人在问什么,即使他们看不见答案本身。这被称为计时侧信道攻击(timing side-channel attack)。
论文强调了黑客使用这种手段的三种具体方式:
- PROMPTPEEK:黑客猜测一系列可能的问题并测量它们的所有时间。如果他们的计时模式与受害者匹配,他们就知道受害者到底问了什么。
- EarlyBird:黑客尝试逐个单词地猜测受题的问题。如果 AI 反应很快,他们就知道自己猜对了单词。
- InputSnatch:这是针对结构化问题的,例如填写表格。黑客知道模板(例如,“显示账户 [号码] 的交易”),只需尝试不同的数字,直到 AI 反应迅速,从而揭示出秘密账号。
作者在真实硬件(NVIDIA A100 GPU)上进行了测试,发现时间差异巨大:一个“冷”请求(新信息)耗时 149.6 毫秒,而一个“热”请求(重复信息)仅需 32.8 毫秒。其比例为 0.22,这是一个巨大且易于被黑客捕捉到的信号。
解决方案:KVGov 与魔法墨水
论文引入了 KVGov,这是一个作为守门人的新安全层。它的主要技巧是 基于 HMAC 密钥的命名空间隔离(HMAC-keyed namespace isolation)。
想象一下,图书馆里的每个用户都有一个独特的、秘密的印章(“盐值/salt”)。当图书管理员把一个问题写在白板上时,他们首先用用户的秘密墨水为问题盖章。即使两个人的问题完全一样,这种墨水也会让白板上的条目对其他人看起来完全不同。
- 工作原理:系统提取用户的 ID 和一个密钥来创建一个唯一的代码。这个代码会被混合进创建缓存键(cache key)的第一步中。
- 结果:如果黑客试图猜测受害者的提问,他们自己的秘密印章将与受害者的不匹配。黑客的探测过程始终会表现为“未命中”(慢),因为他们的代码与白板上受害者的代码不符。计时信号因此消失了。
作者运行了 1,000 次模拟试验,发现仅靠这种“HMAC-盐值”就足以将所有三类攻击的成功率从 100% 降至 0%。这是他们系统中唯一严格必要的组成部分;其他部分只是增加了额外的安全层。
保持图书馆的高效(边界技巧)
你可能会想:“如果每个人都有自己的秘密白板,那图书馆会不会变慢?”如果我们让每个用户都拥有一个完全独立的白板,我们就会失去分享常见问题(如“你好吗?”)带来的速度优势。
论文提供了一个巧妙的修复方案,称为边界加盐(Boundary Salting)。
想象一个故事,前 2,000 个单词对所有人都是相同的(共享前导部分),只有最后 100 个单词是不同的(私密部分)。
- 旧方法:用秘密墨水为整个故事盖章。这样没有人可以共享前 2,000 个单词。
- KVGov 方法:让前 2,000 个单词保持不盖章状态,以便大家可以共享。只在故事发生分歧的第一个单词处进行盖章。
- 回报:这保留了 93% 的速度收益,同时仍能保护私密部分。作者估计,如果有一个 2,000 词的共享前导和 119 词的私密尾部,系统仍然会非常快(私密部分约为 41.2 毫秒),保留了大部分效率。
智能保安:ORIGAMI
即便有了魔法墨水,作者仍希望确保没有人试图搞小动作。他们创建了 ORIGAMI,一个智能审计调度器。
想象一下,图书馆经理有一笔有限的保安预算。他们不能时刻盯着所有人。ORIGAMI 使用一种数学策略(称为 Stackelberg 水填充法)来决定观察谁。
- 逻辑:如果一个用户非常有价值(高风险)并且有可疑行为的历史,他们会获得更多的保安。如果用户风险较低,获得的保安就较少。
- 结果:在包含 10 个租户且具有现实用户类型混合(基尼系数为 0.63)的模拟中,这种智能调度比随机挑选人员进行监视能减少 12.6% 的预期攻击成功率。
何时停止共享
最后,论文提出了一个大问题:“什么时候完全停止共享白板会更好?”
他们使用了**演化稳定性(Evolutionary Stability)**的概念来寻找一个转折点。他们模拟了一个用户群体,其中一些人共享缓存(快但有风险),而另一些人不共享(慢但安全)。
- 发现:如果系统中的黑客比例超过 31.6%,那么从数学角度来看,所有人都不再共享缓存并回归各自私有白板是更好的选择。低于这个数字,共享仍然是获胜策略。这给了图书馆经理一条明确的规则:如果你怀疑大约超过 3 分之 1 的用户是坏人,那就停止共享缓存。
这并不解决什么
论文非常明确地说明了它 没有 解决的问题。
- 它并不阻止黑客窃取 AI 的大脑(模型权重)。
- 它并不阻止黑客诱导 AI 说出不当言论(提示词注入)。
- 它并不修复“语义缓存”(即 AI 匹配思想而非精确单词的情况)。对于这类问题,你需要另一种类型的锁。
- EarlyBird 攻击(逐词猜测)主要被使用更大“数据块”的新型 AI 引擎阻挡,但作者警告说,对于结构化表单(如账号),数据块的大小并不重要——计时泄漏依然存在。
总结
作者证明了我们所喜爱的 AI 速度提升伴随着一个隐藏成本:一个会泄露隐私信息的计时信号。他们表明,仅仅隐藏信号是不够的;你必须打破用户与缓存之间的联系。通过使用密码学“魔法墨水”(HMAC-salt)并将它仅应用于秘密开始的地方,KVGov 完全阻止了泄漏,同时保持了 AI 的高效运行。这是一种无需减慢 AI 未来步伐的隐私胜利。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。