BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

TLBleed漏洞:通过探测TLB获取CPU秘钥

| 作者 Sergio De Simone 关注 13 他的粉丝 ,译者 无明 关注 0 他的粉丝 发布于 2018年7月2日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

VUsec安全研究员Ben Gras在一篇文章中写道,一个影响英特尔处理器的边信道漏洞(称为TLBleed)可能通过窥探翻译后援缓冲器(TLB)泄漏信息。

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

我们的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将会带来更多相关信息。

查看英文原文TLBleed Can Leak Cryptographic Keys from CPUs Snooping on TLBs

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT