PACMAN [1] 的结果引发了对推测机制对 Arm MTE 安全性的关切。
MTE 代表 Memory Tagging Extension [1],它实现了基于锁和密钥的内存访问。可以在每 16 字节的内存上设置 4 位的分配标签(或锁),只有在地址包含匹配的地址标签(或密钥)时才允许对锁定位置进行访问。
Arm MTE 可用于检测内存安全性违规,并有可能增强对某些攻击的鲁棒性。例如,Arm MTE 在有限的场景中提供了概率安全性保证[2],但它无法阻止能够通过暴力破解、泄漏或构造任意地址标签的交互式对手。
根据Arm进行的分析,关键的观察结果是,根据推测Tag-Check错误的行为,一些实现可能会创建一个oracle,使攻击者能够暴力破解内存标签,从而在没有错误的情况下执行确定性攻击。
Arm MTE的设计目的是作为调试辅助工具来查找可能成为可利用的安全漏洞的内存安全问题(即,作为错误检测工具)。尽管它可以用来阻止攻击,但它并不是针对主动攻击者的完整解决方案。因此,分配标签不被认为是一个秘密,并且揭示正确标签值的推测机制不被认为是对体系结构原则的妥协。
除了 Arm MTE 的调试功能之外,它还可以对特定类别的攻击提供第一道防线。在这方面,本建议的目的是提供有关此事项的指导和澄清。
推测机制是代码片段,其副作用在执行推测时提供对查询的响应(例如,对此地址的访问是否会触发错误?)。由于推测不影响程序的体系结构状态,因此可以任意多次重复执行它们。
根据 FEAT_CSV3,针对类