【发布时间】:2020-08-02 05:25:59
【问题描述】:
由于 Spectre 缓解措施而对所有当前 CPU 禁用硬件锁定消除是否正确,并且任何使用 HLE 内在函数/指令的互斥锁的尝试都会导致通常的互斥锁?
这是否有可能在未来不会出现像 HLE 互斥锁这样的东西来避免像 Spectre 这样的漏洞?
【问题讨论】:
-
spectre 和 HLE 之间有什么联系?
xacquire和xrelease(HLE 指令)避免将锁上的获取和释放存储添加到线程事务的写入集(否则所有线程都将正常序列化)。 Spectre 变体通过错误训练分支预测器来获取缓存中的敏感数据相关行来工作,崩溃有点不同。请注意,如果您指的是用于抑制异常的 TSX 扩展,那么它通常由于错误而被禁用。 Retpolines 是分叉瞬态和非瞬态路径的更好方法。 -
我在这里读到:news.ycombinator.com/item?id=21533791(但我想要一些权威参考作为答案)
-
我认为他们禁用 HLE 是为了防止 TAA 攻击 (kernel.org/doc/html/latest/x86/tsx_async_abort.html),而不是幽灵。他们可能将 HLE 称为不如 RTM 重要并完全禁用它。
标签: security x86 x86-64 speculative-execution intel-tsx