当前位置: 首页 > 科技观察

一种有效对抗侧通道内存攻击的新方法

时间:2023-03-15 18:55:36 科技观察

共享计算设备是当今非常普遍的行为,尤其是当用户在云端或移动设备上执行计算时。但是,这种资源共享行为很可能会在不经意间泄露用户的隐私信息。由于在同一台计算机上运行的多个程序可能共享相同的内存资源,因此其中存储的隐私数据(例如计算机内存中存储的加密密钥或用户密码)可能会被恶意程序通过“内存时序(memorytiming)”传递.-timing)侧信道攻击(side-channelattacks)”窃取。侧信道内存攻击目前在现实中并不常见。原因是此类攻击通常高度复杂,不仅需要定制攻击程序,还需要很好的理解电信号的工作原理和操纵方式,但研究人员发现,一些高级攻击者已经开始使用该技术对高价值目标发起针对性攻击。值得一提的是,北卡罗来纳州立大学的研究人员实现了绕过不久前通过侧信道攻击的同态加密技术,攻击者仅通过监测进行同态加密编码操作的设备的功耗,就成功地以明文形式提取了同态加密中的数据,这一事件也给业界敲响了警钟,警告我们即使是下一代加密技术也需要电子针对侧信道攻击的有效保护机制。阻止这种攻击的传统方法是一次只允许一个程序使用内存控制器,但这会显着降低计算速度。麻省理工学院的一组研究人员现已成功设计出一种新方法,允许内存共享继续进行,同时提供针对此类边信道攻击的保护。这种新方法通过将程序的内存请求“整形”为预定义的模式并在程序实际需要使用内存控制器时进行混淆来迷惑攻击者。在程序可以访问内存控制器之前,它必须通过“请求整形器”来“整形”内存请求。这个“请求整形器”使用图形结构来处理请求,并按固定的时间表将它们发送到内存控制器。这种图称为有向无环图(DAG),这种创新的安全方案称为DAGguise。在这种严格的调度下,有时DAGguise会延迟程序的请求,直到下一次允许访问内存(根据固定的调度),或者有时如果程序不需要访问内存,它会提交一个假的请求调度间隔。总之,使用这种非常结构化的模式,用户可以对攻击者隐藏他们的实际行为。DAGguise将一个程序的内存访问请求表示为一个图,其中每个请求都存储在一个“节点”中,连接节点的“边”是请求之间的时间依赖关系。(请求A必须在请求B之前完成。)节点之间的边缘-每个请求之间的时间是固定的。程序可以在需要时向DAGguise提交内存请求,DAGguise会调整该请求的时机以始终保持安全。无论处理内存请求需要多长时间,攻击者看到的只是请求实际发送到控制器的时间。这种图形结构支持内存控制器的动态共享。如果有许多程序试图同时使用内存,DAGguise可以相应地调整和调整固定时间表,从而更有效地使用共享内存硬件,同时仍然保持安全性。“我们的解决方案是将受害者对内存控制器的访问请求转移到动态随机存取存储器(DRAM),然后对请求进行‘整形’。这样一来,无论攻击者以何种方式,都很难窃取隐私数据。在对此,我们进行了仿真验证,结果表明DAGguise非常有效。”研究人员承认,DAGuise会对系统性能造成一定的影响,但与其他安全解决方案不同的是,与其他解决方案相比,DAGguise明显降低了对计算设备性能的影响。当然,除了能够实现更快的计算,同时提供更好的安全性,该技术还可以应用于一系列针对共享计算资源的不同侧信道攻击。参考链接:https://news.mit.edu/2022/cyber-security-attackers-0223https://news.ncsu.edu/2022/03/窃取同态加密数据/