写点什么

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

  • 2018-06-27
  • 本文字数:1022 字

    阅读完需:约 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

2018-06-27 09:151738
用户头像

发布了 731 篇内容, 共 484.5 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

概率论DEMO

rainbow

android开发要学什么语言!掌握这些Android开发热门前沿知识,挥泪整理面经

欢喜学安卓

android 程序员 面试 移动开发

精选算法面试-哈希表

李孟聊AI

面试 算法 哈希 28天写作

绩效管理,上下同心者胜(一)

一笑

管理 绩效 28天写作

日语复习 Day03【~あまり(に)】

IT蜗壳-Tango

程序员 七日更 日语语法

架构师训练营第十三周作业

丁乐洪

生产服务器内存泄漏的排查过程与优化解决方案

冰三郎

Java jdk 问题排查 jetty

春天到底会在何时抵达「幻想短篇 9/28」

道伟

28天写作

股票作手回忆录读书笔记

.

28天写作

Lambda 和 Stream API

大海

Java Lambda Stream<T>

游戏夜读 | 游戏作品的生命力

game1night

我做了回视频,告诉你需要用到哪些工具

和牛

工具

聊聊“公平感”

熊斌

学习 企业文化 管理 管理工具 28天写作

药物研发的商业模式问题

lidaobing

28天写作 药物研发

不确定怎么选择,该怎么办?

Justin

不确定性 心理学 决策 28天写作

mvn install & mvn package

哼干嘛

一篇让你彻底理解网关是什么的文章

Java架构师迁哥

OSPF的八大特点介绍

HDFS杂谈:ACL访问控制列表

罗小龙

hadoop hdfs acl 28天写作

自动驾驶感知功能一般都有啥?(28天写作 Day9/28)

mtfelix

自动驾驶 28天写作

28天瞎写的第二百二十天:独立设计维哈柯文云输入法的故事

树上

28天写作

「架构师训练营 4 期」 第三周 - 002

凯迪

阿里P8大神分享的并发编程笔记,颠覆了我以往“正确“的认知

Java 程序员 面试 并发编程

智能合约业务场景探索(一)

石君

智能合约 28天写作

使用DevSecOps保护CI / CD管道

啸天

DevSecOps 应用安全 开发安全

读《一入阿里“误终生”》,我喜欢上了小马哥

李忠良

28天写作

Redis布隆过滤器原理与实践

Java redis 面试

实时数仓|架构设计与技术选型

大数据老哥

大数据 实时数仓

android进阶之光!双非渣本Android四年磨一剑,进阶学习资料!

欢喜学安卓

android 程序员 面试 移动开发

Windows文件夹还能更改颜色?

程序员的时光

程序员 七日更 28天写作

项目管理系列(4)-另类减肥法

Ian哥

28天写作

TLBleed漏洞:通过探测TLB获取CPU秘钥_语言 & 开发_Sergio De Simone_InfoQ精选文章