SPI NOR 内存幽灵

摘要 SPI NOR Flash 作为嵌入式设备、物联网终端及安全芯片的关键非易失性存储介质,存储着固件、引导代码、密钥与证书等敏感信息。然而,其物理擦除机制与文件系统的逻辑删除之间存在根本性的鸿沟:逻辑删除仅清除索引,而实际数据仍残留在存储单元中,直到被显式擦除或覆写。更严峻的是,即使执行了整片擦除,攻击者仍可通过物理读出未分配块、提取磨损均衡映射表或利用电压毛刺使擦除命令提前终止,恢复出厂密钥与证书,甚至还原已删除的固件映像。 SPI NOR NOR Flash 的存储结构 SPI NOR Flash 内部存储阵列由扇区(Sector,通常 4KB)、块(Block,32KB/64KB)或整个芯片组成。NOR 支持随机读取,但写入前必须将目标区域擦除为全 0xFF。擦除操作以扇区或块为单位,通过特定的命令序列(如 Write Enable + Sector Erase)触发,由内部状态机执行,耗时数百毫秒至秒级。 擦除操作本质上是将浮栅上的电子移出,使存储单元回到初始状态。但擦除并非瞬时完成:在状态机执行期间,如果电源不稳定或收到非法命令,擦除可能被中断,导致部分区域未被完全擦除,原有数据仍有残留。 安全擦除的误区 许多安全应用信赖整片擦除(Bulk Erase)命令可以彻底清除所有数据。但实际上,Bulk Erase 的执行时间较长(典型值为数十秒),期间芯片可通过外部引脚(如 RESET# 或 CS#)被中断。 Command (C7h/60h) | v +—-+ CS# _____| |___________________________________________________/_______ <–>(1) <–>(3) t_CSS t_CSH +–+ +–+ +–+ +–+ +–+ SCK __| |__| |__| |__| |_. . .__|…