热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

英特尔处理器超线程功能被OpenBSD

导读OpenBSD已经禁用了英特尔的超线程技术,理由是安全问题-这看起来像是Spectre式的问题。OpenBSD维护者MarkKettenis写道:“SMT(同时多线程)实现通常
导读 OpenBSD已经禁用了英特尔的超线程技术,理由是安全问题 - 这看起来像是Spectre式的问题。OpenBSD维护者Mark Kettenis写道:“SMT(同时多线程)实现通常在线程之间共享TLB和L1缓存。

“这可能会让缓存时攻击变得更加容易,我们强烈怀疑这会让多个Spectre级别的漏洞被利用。”

因此,OpenBSD决定禁用英特尔CPU超线程技术,采用“全新的hw.smt sysctl”技术,以避免数据可能通过类似于Spectre的处理器缺陷从应用程序泄露到其他软件。

“现在这只能在运行OpenBSD / amd64的Intel CPU上运行,”Kettenis写道。“但我们计划将此功能扩展到其他厂商和其他硬件架构的CPU。”
英特尔处理器超线程功能被OpenBSD 停用,并爆bug

Kettenis的帖子中的决定没有太多的解释信息,除了以下意见:“我们确实不应该在同一核心的不同处理器线程上运行不同的安全域。”

然而,OpenBSD的这篇文章中有一个进一步的提示:Philip Guenther,他做了一项改变,“在从用户空间进入内核时清除GPRs,以便用户控制的值不能在内核参与随机性的执行,但可能会引起一些对用户可见的效果影响(缓存等)。“

该提交伴随着禁用英特尔超线程的请求。

我们还发现在这个Seclists消息中提到了OpenBSD的决定,并暗示将在6月27日发布相关信息。8月份在Black Hat举行的这次演讲中,承诺会揭示非法用户如何通过超线程和TLB数据从应用程序内存中提取遭到泄露的加密密钥的方法。

具体来说,本次演讲由Ben Gras撰写,将介绍一种名为TLBleed的技术,该技术可以利用超线程技术扫描敏感数据:

只需观察与其共同驻留的超线程上的签名操作,我们的TLBleed漏洞就可以利用libgcrypt(在GPG中使用)成功泄漏256位EdDSA密钥,成功率为98%,仅需17秒的分析时间。

我们已经要求Kettenis提供更多信息,英特尔也会发表评论,但在撰写本文时尚未联系。

Kettenis的帖子建议禁用超线程并不是什么大问题,因为“SMT不一定会对性能产生积极影响; 它高度依赖于CPU的工作量。如果你的CPU拥有两个以上的内核,很有可能会降低大多数工作负载。“

他没有错:除非代码是用超线程编写的,否则性能优势并不是很大,并且没有很多代码会专门利用该功能。超线程技术通过允许一个CPU内核一次运行多个线程而不是每个内核一次只在同一时间运行一个线程。

但是,英特尔将超线程作为一种独特的优点进行销售:其CPU规格表总是提及核心和线程数。


推荐阅读
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
author-avatar
尘世聚散
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有