本地跑大模型也不保密:贴着树莓派测电磁,生成词和提示词都能被还原
核心概要
在树莓派5上本地运行的LLaMA-3.2-1B-Instruct,其推理时的电磁泄漏可被被动探头采集,用来识别生成词并语义还原用户提示,说明本地执行本身并不保证提示与输出的机密性。
深度剖析
边缘设备上本地推理的大模型,其生成内容会通过处理器的电磁辐射泄漏出去,攻击者只需把近场探头放在设备附近被动采集,不必接触软件、内存或网络。 此前针对大模型的侧信道工作走的是缓存访问模式和网络流量这类通道,需要共享硬件资源或观察加密流量,对一台离线边缘设备旁只有物理距离的攻击者并不适用。 在树莓派5上运行LLaMA-3.2-1B-Instruct,用近场磁场探头对准BCM2712处理器采集推理期间的电磁轨迹,并用Welch t检验确认不同词对应的轨迹群体存在统计上可检测的差异。
泄漏集中在语言模型输出头那一步矩阵乘法的计算窗口里,把这段电磁信号转成时频图后,普通卷积网络就能从中读出词。 同一段原始一维信号直接喂给一维网络时,无论加宽、加深还是把多层感知机放大到十亿参数级,准确率都停在5%到7%,与随机猜测相差不大。 把信号转成短时傅里叶变换频谱图并复用ImageNet预训练的ResNet-18,在50个健康与隐私相关关键词上取得97.2%的top-1准确率,而同一配置在30类试点上为98.3%。
除了直接分类已知词,还可以从电磁轨迹里估计出模型内部的隐藏状态,再乘上公开的词表矩阵,在整个12.8万词表上给候选词排序。 闭集分类器只能在自己见过的50个词里选,遇到没见过的词也会高置信度地映射到已知类,无法覆盖模型实际会生成的任意文本。 用EfficientNet-B0回归隐藏状态,在已见词上全词表top-1为94.3%、中位排名为1;对未见词,改用全词表交叉熵加最难负样本间隔训练后,正确词进入前100的比例从11.8%升到67.0%,中位排名从1327降到54。
被还原的隐藏状态还能反过来重建用户提示的语义内容,因为自注意力让每一步的表示汇总了此前所有输入。 此前从模型内部还原文本的工作假设能通过软件接口直接拿到表示或输出,而这里的目标表示必须先由物理泄漏估计出来。 用两层前馈网络把2048维隐藏状态投影成48个向量,再驱动预训练T5-base逐词生成提示;在排除全部17个采集模板的训练语料上,重建提示与原始私有提示的平均余弦相似度较高,并在88.7%的轨迹中抽出了嵌入的秘密关键词。
启示与展望
报道覆盖的是树莓派5上Cortex-A76 CPU运行LLaMA-3.2-1B-Instruct、经llama.cpp以Q4_K_M量化执行的场景,攻击者被设定为仅持近场电磁探头、被动采集且不接触设备软件。采集时用GPIO触发对齐并固定CPU频率在1500 MHz,这一触发只用于实验对齐,不被假定为攻击阶段可用。作者提出后续可把方法推广到GPU部署,并建议用电磁屏蔽、执行随机化和输出头掩码等方向做防护。
作者指出真实部署中会遇到跨会话差异和动态变化的CPU频率,前者可用跨会话采集与模板互相关对齐缓解,后者可用更专用的测量设备应对。研究限于CPU推理,GPU部署因时钟更高、并行度更大,对攻击者可能更难。对未见词,top-1仍为0%,恢复主要落在语义邻域,例如把未见词clinic预测成doctor、patient这类相关词;提示反演中约11.3%的失配常表现为目标词被截断。
