安全架构师们把大量精力花在可信计算、安全启动和通信保护上,却常常忽略一个关键环节:敏感指令和数据一旦被写入片外内存,就离开了系统级芯片(SoC)的保护范围。这条内存接口,可能让加密密钥、传感器数据、可执行代码和中间处理结果暴露在物理探测或篡改的风险之下。
对航空航天和政府平台来说,这个问题尤其致命——这些系统可能在对抗性环境中运行,且部署周期长达数十年。内存接口必须被视为攻击面的一部分,而不是默认安全的边界。
![]()
内存加密:数据出SoC前的最后一道闸
内联内存加密(IME)正是针对这一威胁设计的。它的工作方式是在数据写入片外内存之前进行加密,在数据被读取回来使用时进行解密。具体实现上,加密处理被直接放置在处理器逻辑和内存控制器之间的路径中。
由于操作是内联的,这种保护对软件完全透明,同时还能跟上现代内存系统的吞吐量和延迟要求。换句话说,软件无需任何修改,就能获得内存数据的加密保护。
只加密不认证,等于只做了一半
但加密只解决了问题的一半。加密能防止攻击者理解内存总线上观察到的数据,或从外部DRAM设备中恢复出的内容,却无法证明数据没有被篡改过。这个区别至关重要。
一个敌对行为者可能根本不需要读取任务数据——如果盲目修改与命令、坐标、查找表或可执行指令相关的数据,就足以影响系统行为。这种攻击方式比窃取数据更隐蔽,也更难防范。
同样的原理也适用于航空航天和政府系统之外的场景:被篡改的医疗或金融数据可能影响关键决策,而被污染的训练数据、模型参数或推理输入则可能毒化AI系统。数据完整性威胁的覆盖面,远比想象中更广。
认证必须靠近数据存储的位置
机密性防止数据泄露,并使特定编辑变得困难;而认证则决定数据是否仍然可信。因此,认证应该尽可能在数据存储的位置进行,并且在数据被消费之前完成。这样可以最小化未认证信息的传播路径,帮助防止损坏的数据扩散到处理器、加速器或下游控制逻辑中。
IME不应仅仅被视为一个机密性功能,它更是系统整体完整性和稳健性的重要贡献者。把认证能力纳入内存加密体系,才能堵住这个被忽视的攻击面。
AES-XTS与AES-GCM:两种模式的选择
在IME的实现中,AES操作模式的选择直接影响保护能力。AES-XTS广泛用于高吞吐量的存储和内存加密,其位置相关的tweak机制确保存储在相同地址的相同明文块产生不同的密文,且不会增加受保护数据的大小。
但AES-XTS只能保护数据机密性,它不属于带关联数据的认证加密(AEAD)——即不能同时确保内存内容的机密性和认证性。相比之下,AES-GCM将机密性与完整性验证结合起来,允许通过检查认证标签来确认数据是否被篡改。
对于需要长期部署、面临物理攻击威胁的系统来说,选择哪种模式,本质上是在问一个问题:你只需要数据不被看懂,还是需要确保数据没有被动过手脚?答案,决定了内存接口是否真正安全。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.