学术研究发现英特尔 CPU 存在新漏洞

作者:Thomas Claburn

译者:Sambodhi

策划:施尧

美国的芯片黑客又想出了一种方法,利用英特尔的处理器设计选择来窃取敏感数据。

伊利诺伊大学香槟分校的博士生 Riccardo Paccagnella、硕士生 Licheng Luo 和助理教授 Christopher Fletcher 对 CPU 环互连 进行了深入研究,他们发现,CPU 环互连可以被滥用于旁路攻击(side-channel attacks)。因此,一个应用程序可以推断出另一个应用程序的私有内存,并窥探用户的按键。

Paccagnella 告诉 the Register :“这是第一次利用英特尔 CPU 跨核互连(cross-core interconnect)的争用进行攻击。这种攻击不依赖于共享内存、缓存集、核心私有资源或任何特定的非核心结构。因此,现有的旁路防御技术很难减轻这种攻击。”

旁路攻击,如 2018 年的 Spectre 和 Meltdown 漏洞,利用现代芯片微架构的特性,通过与共享计算组件或资源的交互,暴露或推断秘密。

Paccagnella、Luo 和 Fletcher 将于 8 月在 USENIX Security 2021 上发表一篇 论文,题为《指环王:对 CPU 片上环互联的旁路攻击具备实用性》(Lord of the Ring:Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical)。

通过这一理解,他们发现他们能够泄露 RSA 和和 EdDSA 实现中的加密密钥位,而这两种已知易受旁路攻击。他们还表明,他们可以监控击键时间,而先前的研究表明,击键时间可以用来重建输入的密码。

研究人员面临着两个方面的挑战:首先,英特尔并没有提供太多关于其 CPU 环形总线工作原理的细节,所以需要进行大量的逆向工程。

其次,他们的攻击依赖于争用,在这种情况下,争用将监视不同进程同时访问内存时的延迟。这一观察非常困难,因为要识别和过滤大量的干扰,而诸如私有缓存丢失 (系统查找不在缓存中的数据)等有意义的事件则不太常见。

Paccagnella 说:“从更高的层次上讲,这个想法是因为共享环互连的带宽容量有限,一个进程的存储器访问会延迟另一个进程的存储器访问。”

“通过逆向工程的知识,攻击者 / 接收者可以自行设置,使其负载能够确保被受害者 / 发送者的内存访问延迟,并利用这些延迟作为旁路。”

这些重复的内存加载基本上会导致延迟,从而向观察者泄露秘密。

Paccagnella 表示,这两种类型的攻击都涉及到本地攻击者在受害者的计算机上运行无权限代码,比如隐藏在软件库或应用程序中的恶意软件,从而窥探其他程序或用户。他说,基于云的场景,即对手是共享系统的管理员或共同租户,也是可能的,但是他和他的同事不愿意这样说,因为演示攻击是在非虚拟化环境中运行的,而且还没有在其他环境中测试过。

这种加密攻击假定同步多线程(simultaneous multithreading,SMT)已被禁用,并且已对最后一级缓存(last level cache ,LLC)进行了分区,以防御基于多核缓存的攻击,并已禁用了跨安全域的内存共享。该方法还假定系统设置了清除目标的缓存占用,以防止基于缓存的抢占式调度攻击。

这些攻击在英特尔 Coffee Lake 和 Skylake CPU(桌面级 CPU)进行了测试,在 Xeon Broadwell 等服务器 CPU 上应该也能用。目前尚不清楚,具有网状互连的最新英特尔服务器芯片是否也会受到影响。同样,研究人员尚未研究他们的技术如何在 ARM CPU 上工作,因为 ARM CPU 依赖于不同的互连技术。

英特尔与美国国家科学基金会一起支持了这项研究,但英特尔并没有过于关注基于 CPU 总线的干预。

“英特尔将我们的攻击归类为‘传统旁路’(如 TLBleed、Portsmash 等),”Paccagnella 说。“他们对这种攻击的处理与‘推测执行 / 瞬态执行攻击’(如 Spectre、Meltdown 等)有所不同。也就是说,他们并不认为传统的旁路攻击对攻击者来说很有价值,他们已经公布了关于如何在软件中减轻这些攻击的建议:《针对密码实现的缓解定时旁路指南》(Guidelines for Mitigating Timing Side Channels Against Cryptographic Implementations)、《防御旁路攻击安全最佳实践》(Security Best Practices for Side Channel Resistance)。

部分英特尔提议涉及到依靠 恒定时间编程原则 来防御基于时间的攻击。

该论文指出,这种措施将提供一种防御密码学攻击的方法,这取决于代码不在恒定的时间内。但 Paccagnella 表示,这并不是一个必然的结果。

“真正的恒定时间代码在实践中可能很难实现,”他说。“此外,为了在环互联中实现‘域隔离’,还需要额外的硬件支持。”

 作者介绍:

Thomas Claburn,常驻旧金山湾区,为 The Register 报道软件开发、DevOps、计算机安全等。

原文链接:

https://www.theregister.com/2021/03/08/intel_ring_flaw

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode--994. 腐烂的橘子(java)

在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。 返回直…

CICC科普栏目丨时间之箭:从熵到大爆炸再到万物理论(一)

来源:BBC转自:数学加油吧假设有这么一天,你在家里感到无聊,你把几个鸡蛋顶在头上表演起杂耍,但你的表演不太成功,鸡蛋打碎糊了你一脸。现在你将不得不去洗下脸再冲个澡,然后换上一身新衣服。那为…

NOIP2007 树网的核

传送门 最近搞一搞树型结构……毕竟自己树的知识学的太垃圾了。 首先这道题非常明显要求树的直径。树的直径有好多好多种求法,这里我选择了一位dalao的非常简洁的dfs的方法。先看一下代码。 void dfs(int x) {for(int i head[x];i;i e[i].next){if(fa[x] e[i].to…

只有这种AI芯片才能拯救人工智能?

来源:内容由半导体行业观察(ID:icbank)编译:「wired」人工智能不断发展,对保持AI运行所需的计算能力的渴望也与日俱增。Lightmatter,一家诞生于MIT的初创公司,他们正在押注一款使用光…

【剑指offer】面试题33:二叉搜索树的后序遍历序列(Java)

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1: 输入: [1,6,…

CSS 小结笔记之文字溢出处理

有时文字会溢出盒子,这时一般要对文字进行溢出处理。一般有以下三种处理方法: 1、word-break:normal | break-all |keep-all normal 使用浏览器默认的换行 break-all 允许单词内换行即允许单词拆开显示 keep-all 不允许拆开单词显示,连字符除…

GPT-2大战GPT-3:OpenAI内部的一场终极对决

作者:Kevin Vu译者:Sambodhi策划:刘燕由于在训练过程中使用的数据集的多样性,我们可以为来自不同领域的文本获得足够的文本生成。GPT-2 的参数和数据是其前代 GPT 的 10 倍。而 GPT-3 又是 GPT-2 的 10 倍。那么问题来了&#xff…

【剑指offer】面试题34:二叉树中和为某一值的路径(Java)

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树,以及目标和 sum 22, 5 / \ 4 8 / …

AI解梦成为现实,贝尔实验室新算法尝试找到梦境的隐藏含义

文章来源: 学术头条古代巴比伦人认为梦境包含了预言,而古埃及人则将梦境视为神灵给予的信息来崇拜。在 19 世纪 90 年代,西格蒙德弗洛伊德(Sigmund Freud)为梦境里面的人物、物体和场景分配了象征意义,并着…

个人项目:wc程序(java)

Github项目地址:https://github.com/jat0824/wc.git 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计…

【剑指offer】面试题35:复杂链表的复制(Java)

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 1: 输入:head [[7,null],[13,0],[11,4],[10,2…

【综述专栏】图神经网络综述

来源:图灵人工智能作者:王健宗等https://wwwihcm/people/euu-lin-jun-7原文链接:https://kns.cnki.net/kcms/detail/31.1289.tp.20201123.1641.002.html摘要:随着计算机行业和互联网时代的不断发展与进步,图神经网络已…

HDFS设计思想

HDFS设计思想 DataNode:用来在磁盘上存储数据 HDFS 数据存储单元( block ) 1 文件被切分成固定大小的数据block块 •默认数据块大小为 64MB(hadoop1.x版本64M,2.x为128M) ,可配置 •若文件大小不到 64MB &#xff…

【剑指offer】面试题25:合并两个排序的链表(Java)

输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 限制&#xff1a; 0 < 链表长度 < 1000 代码&#xff…

被认为是世界史上50个最伟大的发明有哪些?

来源&#xff1a;数学中国根据美国《大西洋月刊》杂志邀请了世界上12位科学家、技术史专家、工程师、企业高管组成的专家团为世界遴选自车轮&#xff08;车轮的广泛使用一般被认为始于6000年前&#xff09;问世后的50个最伟大的发明。其中&#xff0c;中国的四大发明均在其中。…

numpy中的tile函数

在阅读《机器学习实战》一书中&#xff0c;第一次碰见tile函数一脸懵逼&#xff0c;试验了几次之后&#xff0c;明白了怎么回事&#xff0c;记录如下&#xff1a; >>> import numpy >>> numpy.tile([0,0],5)#在列方向上重复[0,0]5次&#xff0c;默认行1次 ar…

js几种常见排序的实现

1. 冒泡排序 定义&#xff1a; 比较相邻的前后二个数据&#xff0c;如果前面数据大于后面的数据&#xff0c;就将二个 数据交换。 这样对数组的第0个数据到N-1个数据进行一次遍历后&#xff0c;最大的一个数据就“沉”到数组第N-1个位置。 NN-1&#xff0c;如果N不为0就重复前…

Leetcode--695. 岛屿的最大面积

给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿&#xff0c;则返回面积为0。) 示例 1: [[0,0,1,0,0,0…

“NP问题是可计算的吗?” - 从“可计算性”的角度审视NP

来源&#xff1a;图灵人工智能转自 http://blog.sciencenet.cn/u/liuyu2205P vs NP世纪难题显示出在现有的计算机理论中存在着令人不安的困惑&#xff1a;一方面&#xff0c;书本中的NP问题理论部份无论是学习或教学都感到困难&#xff0c;以至于人们不得不一次又一次回头去重新…

日志模块-logging模块

日志模块 -logging(非常重要) 记录用户行为程序运行过程程序错误记录logging.debug()通常调试时用到的日志信息logging.info() #证明事情按照预期的那样工作longging.warning() #表明发生了意外&#xff0c;或者不就得将来发生的问题&#xff08;如&#xff1a;磁盘满了&#x…