TLBleed漏洞竟是经过探测TLB获取CPU秘钥,你知道吗?

TLBleed漏洞竟是经过探测TLB获取CPU秘钥,你知道吗?TLBleed漏洞竟是经过探测TLB获取CPU秘钥,你知道吗?
VUsec安全研究员Ben Gras在一篇文章中写道,一个影响英特尔处理器的边信道漏洞(称为TLBleed)可能经过窥探翻译后援缓冲器(TLB)泄漏信息。html

Gras将在接下来的Blackhat 2018大会上介绍他的研究发现,声称他能够提取GPG所使用的加密密钥:linux

咱们的TLBleed漏洞攻击成功获取libgcrypt(在GPG中使用)的256位EdDSA密钥,成功率为98%,只需单独监视共驻超线程上的签名操做,分析耗时17秒。缓存

TLB是一种缓存,用于加快将经常使用虚拟地址转换为物理内存地址的速度。 TLBleed经过使用TLB来检测CPU寄存器中有用的信息,为超线程访问运行在同一内核上的另外一个超线程的信息提供了一种方式。此漏洞与Spectre和Meltdown无关,这两个漏洞都利用推测执行故障泄漏CPU缓存中的信息。安全

关于这个漏洞,人们最关心的是,它使用了数据访问而不是正在执行的代码路径,这意味着现有对已知边信道攻击的保护措施可能没法有效对抗TLBleed。事实上,Gras提到了基于TLBleed的第二种攻击,该攻击可能会让最近的libgcrypt版本发生数据位泄漏,这一版本的libgcrypt包含了一个边信道抗RSA实现。第二种类型的攻击利用了机器学习技术。The Register特约做者Chris Williams能够访问Gras等人的白皮书,他解释说,该团队使用分类器来识别敏感操做,包括基于TLB延迟的加密操做。多线程

英特尔不打算解决这个漏洞,他们认为,一个可以正确保护本身免受其余类型边信道攻击的程序,例如,无论是否使用加密密钥,其数据访问模式看起来都是同样的,若是能作到这样一点,也就对TLBleed免疫。Gras虽然也认可这一点,但他认为,不多有程序写得这么完美,libgcrypt泄露RSA密钥就是最好的例子。架构

OpenBSD维护者采起了不同的立场,他们决定禁用对英特尔处理器禁用并发多线程(SMT):并发

因为不少现代机器再也不提供在BIOS设置中禁用超线程的能力,所以,能够在咱们的调度程序中禁用额外的处理器线程。另外,由于咱们怀疑它存在严重风险,因此默认将其禁用。机器学习

OpenBSD将在将来将此策略扩展到其余CPU和其余架构。学习

对操做系统级具备较低侵入性的缓解措施是防止在同一内核的不一样进程上并发执行两个线程,不过这要对操做系统的调度器作出修改,并且不是个小改动。加密

目前还不清楚其余厂商是否会在操做系统级别上采起任何措施解决TLBleed问题,或者云提供商是否会提供阻止两个不一样虚拟机共享相同内核的可能性。InfoQ将会带来更多相关信息。

原文来自:https://www.linuxidc.com/Linux/2018-07/153031.htm

本文地址: https://www.linuxprobe.com/tlb-cpu-bug.html编辑:张文祥,审核员:逄增宝

相关文章
相关标签/搜索