签名也不等于可信:离线 RAG 的文本—向量完整性缺口
阅读约 3 分钟
导语
离线 RAG 常被用于边缘设备、内网系统或无法持续联网的应用。为了更新知识库,发布者通常把文本、预计算向量和数字签名打包分发。问题在于,签名能够证明“这份包由谁发布”,却不能自动证明“向量确实编码了包中的文本”。这正是论文所称的文本—向量完整性缺口:攻击者如果能修改向量,就可能改变检索结果,而不必篡改显眼的原始文本。
核心发现
- 容差本身会形成攻击面。 验证器若重新计算向量,并在余弦相似度达到某个阈值时放行,攻击者就可以在阈值允许的范围内调整向量。研究将风险与查询的“角度检索间隔”联系起来:当正确候选与下一候选之间的差距小于容差时,排序可能被劫持。
- 可复现性并不理想。 不同批处理大小、硬件架构,以及浮点或动态 INT8 推理流程,可能产生并非逐位一致的向量。因此,工程上很难简单要求“重新计算结果必须完全相同”。
- 风险并非停留在理论层面。 在五个语料库和两种嵌入模型的实验中,接近浮点噪声水平的容差仍让最多5.5%的查询暴露;排除完全重复文档后,单个语料库的最高值为1.2%。若使用 CPU INT8 与 FP32 差异校准出的阈值,暴露比例则达到98%至100%。在树莓派5上的端到端测试中,攻击使正确回答率从0.75降至0.39。
- 压缩索引同样可能失守。 在包含57,638篇文档的 FAISS 产品量化索引上,所有篡改向量都能通过完整性审计时,攻击者文档仍可在25%的目标查询中排到第一位。
如何收紧缺口
论文提出,不应只验证解码后的浮点向量,而可以直接验证量化编码。配合由验证器决定的歧义处理、经过校准的保护带和规范化流程,作者在三个平台的样本中接受了所有诚实向量,并使发布者无法借助可接受误差自由改变检索方向。文中还报告了对拒答、上下文裁剪和语义筛选等方案的预注册负面结果,说明降低风险不能只依赖检索后的补救措施。
意义与影响
这项工作提醒工程团队:供应链签名、向量一致性和检索行为完整性是三个不同层次的问题。对于离线 RAG,安全审计不应止于检查文件来源或哈希,还要明确验证对象、跨平台误差边界以及量化过程中的歧义。更稳妥的设计,是让发布者提交可验证的规范化表示,并把关键裁决权留在验证器一侧。这样才能避免知识包“签名有效”,却在运行时被悄悄导向错误内容。
评论
正在确认登录状态……
正在加载评论……