签名知识包也能劫持RAG:向量完整性缺口与量化防护方案
摘要:研究指出,数字签名只能证明知识包的发布者,不能证明预计算嵌入向量与其文本一致;攻击者可利用向量与文本之间的完整性缺口劫持检索结果。论文提出“余量定律”解释容差阈值与劫持率的关系,并发现普通余弦容差、INT8-FP32阈值校准及FAISS乘积量化审计均可能留下高风险暴露面。研究进一步转向验证量化码,配合歧义裁决、保护带与规范化,在三种平台上接受全部诚实样本,同时保留代码与数据。
核心发现:签名不等于向量可信
这套面向边缘设备离线 RAG 的知识包同时携带文本和预计算嵌入向量,并由发布者签名。签名能够证明“谁发布了这组数据”,却无法证明向量确实编码了对应文本。攻击者若同时控制文本与向量,就可以让被签名的知识包在检索阶段稳定操纵排序。
问题并不在于密码学签名失效,而在信任边界错位:发布者身份验证与表示完整性验证被混为一谈。对于知识包持续分发、设备离线运行的 RAG 系统,这一缺口尤其危险,因为设备端往往只能验证签名或近似比较向量,无法持续重跑完整的嵌入计算。
余量定律:容差阈值为何决定攻击成功率
研究将检索结果的攻击成功率与查询的“角度余量”联系起来。设真实文档向量为 (d),攻击者文档向量为 (a),验证器允许的余弦误差为 (\tau)。当攻击向量与诚实重算向量的差异被容忍,同时又比真实文档更接近查询向量时,攻击文档就可能越过真实文档。
其核心关系可以概括为:
[ P(\text{hijack}) \approx P(\text{angular margin} \leq \tau) ]
也就是说,验证器放宽多少角度误差,就直接接纳了多少处于检索边界附近的查询。该视角的重要性在于,它把安全风险从“攻击者有多强”转化为可量化的数据与数值条件:语料中是否存在近重复文档、正确文档与竞争文档的相似度分布如何、余量是小还是大,以及误差模型是否具有系统性偏差。
在五个语料和两个嵌入模型上,检索余量普遍较小。理论上将容差压到浮点噪声水平,仍可能使最多 5.5% 的查询暴露;排除精确重复文档后,任一语料中的暴露率最高为 1.2%。这类“低但非零”的风险对普通 RAG 系统尤其棘手,因为单个被劫持的权威文档就可能向生成模型注入错误事实。
数值校准反而可能放大风险
直觉上,阈值越严格,攻击越难通过。但实验显示,阈值若从一个特定 CPU 环境中测得的 INT8-FP32 差异分布推导,可能严重失真。论文以诚实余弦的 0.1% 分位数作为校准点时,攻击暴露率反而达到 98%—100%。
原因在于,向量推理不天然具备跨批大小和硬件架构的逐位可复现性。浮点归约顺序、SIMD 指令集、线程调度、动态量化激活范围和不同后端的算子实现,都可能改变最后几个低位。攻击者不需要精确复刻诚实向量,只需把篡改向量推入验证器认为“可能由诚实计算产生”的数值邻域。
因此,固定余弦阈值不是跨设备安全策略。即使阈值在某一开发机上经过充分校准,迁移到另一 CPU、ARM 设备、不同推理框架或不同批处理配置后,也可能成为高覆盖率攻击面。
FAISS 乘积量化审计同样不足
研究还在包含 57,638 篇文档的 FAISS 乘积量化索引上测试完整性审计。乘积量化将向量空间划分为多个子空间,分别用码本表示并压缩存储,因而能够降低内存占用和近似检索成本。
但仅检查重建向量与存储向量之间的近似误差,并不能证明量化码与原始文本一致。实验中,经过篡改且全部通过审计的向量,仍可在 25% 的目标查询中排到攻击者文档的第一位。量化节省了存储空间,却也把证明对象从连续向量转移成了离散码;如果只验证解码后的近似值,验证者无法知道某个码究竟由哪段文本产生。
这揭示出常见安全审计的根本矛盾:审计逻辑通常检查的是存储表示是否自洽,而不是表示是否与文本语义绑定。
更稳健的方向:验证量化码并消除发布者自由度
论文提出的改进方案不再直接比较连续向量,而是验证量化码本身。系统还加入三项关键机制:
- 量化码验证:检查码是否由指定文本和受控编码过程产生,避免对近似重建值的信任。
- 歧义由验证方裁决:当量化映射存在多种可能解释时,由验证者确定接受结果,发布者无法在多个候选编码中进行选择。
- 保护带与规范化:为边界误差设置校准后的安全裕量,并通过固定输入、预处理和数值规范,减少批大小、硬件架构和浮点执行顺序带来的差异。
在三个平台上,该方法接受了样本中的全部诚实向量,同时消除了发布者通过选择数值表示来操纵结果的空间。其安全逻辑比“向量够相似”更强:验证的是可追溯的生成过程,而不只是两个最终浮点数之间的欧氏距离。
不过,“接受全部诚实向量”只说明当前样本中没有观察到误拒绝,不代表任意语料和模型组合下都具有零误报率。保护带过窄会削弱安全性,过宽则可能产生拒绝服务;不同嵌入模型的量化稳定性、批大小变化和恶意查询分布仍需独立评测。
哪些防护方案没有奏效
论文还报告了预注册但结果为负的实验,包括弃权机制、上下文裁剪和语义筛查。这些方法能够缓解部分错误上下文进入生成阶段的风险,却无法替代检索层完整性验证。
原因在于,弃权通常要求模型识别证据不足,但被恶意文档置顶后,模型看到的是语法正常、语义看似相关的高置信证据;上下文裁剪可能保留最相关材料,恰好保留攻击文档;语义筛查也可能把与查询高度相关的伪造内容判为正常。换言之,生成后防线无法可靠识别上游检索已被系统性操纵。
部署建议:从“验证签名”升级为“验证生成过程”
对于维护离线知识包的边缘 RAG 团队,部署策略应从三个层面调整。
首先,将信任对象拆开:数字签名只用于确认发布者身份,知识包还应携带文本、规范预处理参数、嵌入模型与版本、量化配置,以及可验证的向量生成证明。不同角色的密钥或校验逻辑不应混为一谈。
其次,优先验证量化码或可确定性重放的编码步骤,而不是给余弦距离设定经验阈值。若必须校验连续向量,应在目标设备、目标推理后端和代表性批大小下建立误差分布,并保留足够保护带。
最后,限制发布者的表示自由度。知识包生成应在受控环境中完成,验证方应拒绝歧义表示,并记录编码器版本、运行时、量化参数与规范化结果。否则,攻击者仍可能通过选择不同但同样合法的浮点或量化表示操纵排序。
这项工作揭示的是 RAG 供应链中的基础问题:知识库可验证性不能停留在文件签名层,必须延伸到文本到检索表示之间的计算链。对离线设备而言,增加一次完整重编码可能成本过高,因此代码级验证、确定性量化与硬件级误差建模将成为实际部署的核心,而非附加功能。
—— 完 ——消息来源:Hugging Face Daily Papers (2026-11-04)
主题标签: #RAG安全 #向量完整性 #知识供应链 #量化检索 #边缘AI
编辑部与事实核查说明:本篇专刊由智客前沿资讯管线根据官方技术公告、学术论文及开源工程文档整理编译,经算法实体核验与人工编辑审校后发布。若发现技术事实纰漏,欢迎依据勘误方针或一键向编辑部发送勘误反馈。
社区整体评论区