精华内容
下载资源
问答
  • 侧信道攻击简介

    2019-03-12 04:19:28
    本文叙述了简单的侧信道攻击的相关知识,包括差分功率攻击,相关功率攻击等
  • 目录 • 侧信道攻击原理介绍 • 云环境下的侧信道攻击实践 Memory bus通道 Mob时序通道 • 危害和防护建议
  • CPU缓存侧信道攻击

    千次阅读 2019-04-29 17:46:02
    在这些漏洞的利用方式中,针对CPU缓存的侧信道攻击技术是主要方式。什么是针对CPU缓存的侧信道攻击?黑客会如何利用侧信道攻击技术? 密码是一种用来混淆的技术,它将正常的(可识别的)信息转变为无法识别的信息。...

    2018年年初,多个独立的安全研究团队披露了现代CPU架构的若干严重漏洞,在业界造成了极大地影响,至今仍余波未了。在这些漏洞的利用方式中,针对CPU缓存的侧信道攻击技术是主要方式。什么是针对CPU缓存的侧信道攻击?黑客会如何利用侧信道攻击技术?

    密码是一种用来混淆的技术,它将正常的(可识别的)信息转变为无法识别的信息。现阶段用户的隐私信息大多是依靠加密技术实现,如登录网站、电子邮箱、银行取款等等。用户信息的安全性依靠于加密算法的安全性。然而理论上的安全并不等同于物理实现上的安全。

    关于侧信道攻击

    侧信道攻击是利用密码算法执行过程中泄漏的与内部运算紧密相关的多种物理状态信息如声光信息、功耗、电磁辐射以及运行时间等,再结合统计学手段等进行攻击。近年来,侧信道技术已经逐渐地从设备外部深入到计算机内部的CPU、高速缓存(Cache)、分支预测单元等等得到其中蕴含的敏感信息(如密钥)。Cache攻击是一种新型的侧信道分析技术,它可以跨平台、跨CPU、突破安全边界对目标设备进行攻击,对现有安全防护造成极大的威胁。另外,由于Cache侧信道攻击可以利用cache共享实施攻击,因此具有不易发现且极难防御的特点。

    Cache是什么?

    Cache的学名是中央处理单元高速缓冲存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。主要由三大部分组成:

    ➡Cache存储体:存放由主存调入的指令与数据块。

    ➡地址转换部件:建立目录表以实现主存地址到缓存地址的转换。

    ➡替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。

    Cache的作用

    冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构。一个典型的冯诺依曼系统如图1所示,包含下面几大件:计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成。然而由于计算机技术发展,主存储器速度比CPU处理速度慢得多,使得CPU的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响。为了缓和中央处理器和主存储器之间速度不匹配的矛盾,计算机系统加入了Cache模块,现代计算机CPU与内存和Cache基本关系如图2所示 。CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。

    http://5b0988e595225.cdn.sohucs.com/images/20170831/c22a9d3a4c7a4f3caf93569c005c6b50.png

    图1 冯诺依曼体系结构

    http://5b0988e595225.cdn.sohucs.com/images/20170831/d41cb8e66d634d8283b9cf44c3ae537e.png图2 最简单的高速缓存配置图

    Cache结构

    一般处理器的cache分三层,其架构如下图3所示,L1 Cache一般分为Data Cache(数据缓存)和Instruction Cache(指令缓存),为每个核单独占有。L2 Cache一般是每个核心单独占有,或者两个核心共享。L3 Cache一般在多核CPU中是所有核心CPU共用。访问时间关系为T­(内存)>T­­(L3)>T(L2)>T(L1)。

    http://5b0988e595225.cdn.sohucs.com/images/20170831/4cb5250d1efc4df19d9297877d3b7712.png

    ​图3 Intel cache架构

    如下为Intel Sandy Bridge架构处理器实图,可以看到多核共享的L3 Cache:

    Cache侧信道攻击原理

    多核之间cache数据共享,而cache命中和失效对应响应时间有差别,攻击者可以通过访问时间的差异,推测cache中的信息,从而获得隐私数据。根据采集信息不同,cache侧信道攻击可分为时序驱动攻击、访问驱动攻击以及踪迹驱动攻击。时序驱动攻击需要获得目标攻击系统详细配置参数,重建对照环境,利用统计分析方法,对照采集到的密码算法一次加密/解密的整体时间,推测密钥。踪迹驱动攻击需采集密码算法执行过程中所有cache访问命中和失效序列,再结合明文或密文推测密钥,一般通过功耗检测手段进行,但该手段需要特殊的信息采集设备而且需要物理接触密码设备,实现起来比较复杂。访问驱动攻击通过采集加密或解密过程中访问的cache组集合,再利用数学分析方法推测密钥,可以远程实现,攻击实现可行性较强。目前,Cache侧信道攻击包含四种方法,分别为Flush-Reload方法、Flush-Flush方法、Prime-Probe方法和Evict-Time方法。下面将对每类方法原理进行说明,并引用IAIK项目flush_flush [1]中的代码来解释关键行为点。

    1 Flush-Reload

    Flush-Reload(FR)方法是prime-probe方法的变种,基于共享内存实现,是一种跨内核、跨虚拟机的Cache 探测方法。在Flush 阶段,攻击者将监控的内存块从cache中驱逐出去,然后在Trigger阶段等待目标用户访问共享内存。在Reload阶段,攻击者重新加载监控的共享内存块。如果在等待的期间,目标虚拟机访问过的内存块不需要重新加载,时间将会较短,因为这些数据已经被缓存在cache中。根据加载时间长短,可判定目标虚拟机访问过的数据。Flush-Reload具体步骤如下:

    步骤1. Flush:将共享内存中特定位置映射的cache数据驱逐

    步骤2. Trigger:等待目标虚拟机响应服务请求,更新Cache

    步骤3. Reload:重新加载Flush阶段驱逐的内存块,测量并记录cache组的重载时间

    示例代码说明:

    下面这段代码实现了Flush+Reload攻击。通过rdtsc_begin和rdtsc_end来标记访问目标内存的开始和结束时间,从而计算出访问时长。然后再判断该时长是否小于一个Cache命中的临界值,最终便可知道该内存是否被目标程序访问过:

     

    2 Flush-Flush

    与Flush-Reload不同的是,Flush-Flush攻击是基于clflush指令执行时间的长短来实施攻击的。如果数据没在Cache中则clflush指令执行时间会比较短,反之若有数据在cache中则执行时间会比较长。与其它Cache攻击不同,Flush Flush侧信道攻击技术在整个攻击过程中是不需要对内存进行存取的,因此该攻击技术更加隐蔽。然而根据我们的经验,由于有无数据情况下Cache被flush的时间差别其实并非特别明显,因此在攻击过程中数据判断的精度并不高。

    Flush-Flush具体步骤如下:

    步骤1:通过flush清空Cache原始数据

    步骤2:等待目标进程运行,更新Cache,并刷新共享缓存行,测量刷新时间

    步骤3:根据测量时间判断原始数据是否被缓存

    该方法攻击原理如图所示:

    示例代码说明:

    下面这段代码实现了Flush-Flush攻击。代码主要通过rdtsc()来标记flush(addr)运行前后的时间点,计算出清理目标Cache数据所需的时间。如果flush(对应clflush指令)执行的时间较长,则表示数据被缓存,如果时间较短则表示数据未被缓存。

    3 Prime-Probe

    Prime-Probe方法具体步骤如下:

    步骤1. Prime: 攻击者用预先准备的数据填充特定多个cache 组

    步骤2. Trigger: 等待目标虚拟机响应服务请求,将cache数据更新

    步骤3. Probe: 重新读取Prime 阶段填充的数据,测量并记录各个cache 组读取时间

    该方法攻击原理如图所示:

    示例代码说明:

    4 Evict-Time

    Evict-Time具体步骤如下

    步骤2:等待目标程序运行,并记录其运行时间(运行过程有可能使用到第一步所说的Cache数据)

    步骤3:使用Evict方法覆盖Cache上的数据

    步骤4:然后再运行一次该函数,并第二次记录执行时间,如果时间不一致且执行时间变长则说明程序运行时读取了第一步所说的Cache数据(Cache未命中)

    与其他三种侧信道攻击技术相比,Evict-Time不是当前主流的侧信道攻击技术。

    应用场景最广泛的是Prime-Probe,而Flush-Rload和Flush-Flush要用到SSE2指令clflush,因此受到一定限制,在JavaScript和非Intel CPU中无法使用。但同时,Prime-Probe也有缺点,在攻击速度、攻击稳定性方面,则不如Flush-Reload和Flush-Flush。

    在支持clflush指令的环境中,Flush-Flush和Flush-Reload都可以使用,主要的区别是Flush-Flush无需访问内存,使用的CPU指令更少,速度也更快,也更不容易被检测。但flush-flush精度上要求更高,因为clflush指令的执行时间一般在100多个时钟周期,相较于数据未被缓存,数据被缓存时,clflush执行时间只会增加10多个时钟周期,因此Flush Flush更容易受到其它程序噪音的影响。

     

    Cache侧信道的攻击发展

    1998 年,Kesley 等人首次提出Cache 命中率可用于密钥分析的思想,颠覆了传统密钥分析方法,引起了研究人员的广泛关注。之后,研究人员以数据缓存、指令缓存作为研究对象,提出了多种可行的Cache 侧信道攻击方法,对算法安全性带来了严重威胁。但大部分研究成果都是基于单机非虚拟化环境。直到2009年,Ristenpart等人首次提出在云环境中存在跨虚拟机cache侧信道攻击的安全威胁,并利用Prime-Probe 方法在Amazon EC2 云平台中探测得到同驻虚拟机的Cache 负载状态信息以及用户击键间隔时间信息等。2014年,Yarom提出第一个跨内核的cache侧信道攻击Flush-reload。其利用Intel X86处理器系统共享内存的漏洞,通过监测内存得到CPU处理的cache line。此种攻击主要利用L3层cache实现攻击,同时并不需要共享执行core。2015年,Liu和Irazoqu使Prime-Probe攻击可以应用于跨内核的cache侧信道攻击。2016年,Irazaqui提出第一个可以跨CPU的AMD平台的cache攻击。攻击环境逐渐从单核转为跨核,从微处理器转到云环境。

     

    攻击实例

    在2015CCS大会上,Yossef Oren等人利用不安全的网站链接,探测得到用户的鼠标和网页活动信息,甚至可以利用受害者的正在访问的网页信息。此种攻击可移植性强,不用安装恶意软件,可行性较高,攻击原理如图6所示。

    图6 利用Java的cache侧信道攻击原理

    在Europe 2016 Blackhat上,Moritz Lipp等人演示了如何从cache中得到信息确定用户正在输入的字符,演示情况如图7所示,用户输入字符,攻击者可以很快获得相应的信息。

    图7 Moritz Lipp演示在智能手机上的cache 侧信道攻击

    在USA 2016 Blackhat上,Taylor Hornby等人演示了如何从cache的侧信道信息中得到其他用户正在浏览的网页,演示现场图如图8所示。

    图8 Taylor Hornby演示如何获取受害者正在浏览的网页

    此外,伴随着云服务越来越贴近生活,云用户持续增多。云环境中同驻虚拟机cache资源共享也成为cache侧信道攻击的目标,近几年针对云上安全的研究也逐渐增多。在CHES 2016,Inci,M.等人成功实现了在亚马逊云上得到用户RSA私钥,现场如图9所示。

    图9 Inci,M等人在CHES上讲解攻击原理

    在2016 USENIX, Moritz Lipp等人上演示了如何在拥有trustzone安全环境的安卓手机上实施cache攻击,得到精准的用户信息,部分成果如图10 所示。

    图10 利用cache模版侧信道攻击得到用户输入信息

    在arXiv 2017 ,Schwarz,M等人在Malware Guard Extension: Using SGX to Conceal Cache Attacks一文中,利用SGX来隐藏cache攻击(Intel声称的SGX可以消除侧信道攻击,并且推荐使用SGX保护加密计算),得到用户的私钥。一条迹的数据可以恢复96%的私钥,11条迹可以恢复全部的私钥,其攻击原理如图11所示。

    图11 在SGX可信执行环境下的cache侧信道攻击原理

     

    总结

    Cache侧信道攻击方法严重威胁加密算法的安全性,而且随着云服务技术的大规模应用,虚拟化技术的普及,使得Cache侧信道远程攻击更为隐蔽从而也更具攻击力。Cache攻击逐渐渗透到我们的日常应用中,智能手机的可信环境在此种攻击方法下也存在严重安全隐患。安全问题日益突出,用户的隐私需要更加完善的安全措施来保护。希望更多地研究学者加入我们的队伍中,为隐私保驾护航。

     

     

    展开全文
  • 侧信道攻击的检测和缓解.zip
  • 针对密码芯片的侧信道攻击方法研究与实现.pdf
  • 密码芯片抗侧信道攻击防护方法.pdf
  • 关于侧信道攻击

    千次阅读 2020-11-17 13:04:03
    侧信道攻击——是一种利用计算机不经意间释放出的信息信号(如功耗,电磁辐射,电脑硬件运行声)来进行破译的攻击模式:例如,黑客可以通过计算机显示屏或硬盘驱动器所产生的电磁辐射,来读取你所显示的画面和磁盘内...


    侧信道攻击——是一种利用计算机不经意间释放出的信息信号(如功耗,电磁辐射,电脑硬件运行声)来进行破译的攻击模式:例如,黑客可以通过计算机显示屏或硬盘驱动器所产生的电磁辐射,来读取你所显示的画面和磁盘内的文件信息;或是,通过计算机组件在执行某些程序时需要消耗不同的电量,来监控你的电脑;亦或是,仅通过键盘的敲击声就能知道你的账号和密码。

    2017年一段昆明小学生“听声音”徒手解开ofo共享单车密码锁的视频流传于网络,视频中该小学生通过不断扭动密码盘来尝试解锁,仅用17秒便成功解开了车锁,这种是通过声音信号的侧信道来推测密码组成。
    另一种侧信道是通过图像的隐蔽信道来传递机密信息,越南战争中美国战俘Jeremiah Denton在1966年由北越组织的采访中发送莫尔斯电码,翻译出来就是-/- - -/.-. /- /. . - /.-. /. TORTURE(虐待)。

    调节转盘通过内部机械声打开保险柜

    所谓侧信道,就是与主信道相对的,加密信息通过主信道进行传输,但在密码设备进行密码处理时,就像图2展示的一样,会通过侧信道泄露一定的功耗、电磁辐射、热量、声音等信息,泄露的这些信息又随着设备处理的数据及进行的操作的不同而有差异(比如输入0输出0肯定比输入1输出0耗能少,少了由1到0的转化过程;条件分支指令肯定比算术运算指令耗能少,这是由其硬件决定的)。攻击者就通过分析信息之间的这种差异性来得出设备的密钥等敏感信息。即本质上是利用了设备能量消耗的数据依赖性和操作依赖性。

    水杯注水的"时间”、水杯里的水有多少又为“能量"

    通常我们设计算法的时候,我们考虑的是输入和输出。我们不会考虑程序运行时发生的其他事情。"密歇根大学的计算机科学家、侧信道攻击的主要研究者Daniel Genkin说:"但计算机不是在纸面上运行的,而是在物理上运行。当你从纸上转移到物理时,就会有各种各样的物理效应的计算:时间、能量、声音。侧信道攻击利用其中的一种效应来获取更多的信息,并搜集算法中的秘密。

    局限性:

    1.干扰源:接收声音信号时一旦遇到噪音,信号将会严重失真
    2.速度慢:每次只能传输一个字符,遇到几M的文件将会传输非常久,进一步增加了不确定性。

    攻击类型:
    ● 错误攻击

    考虑篡改设备上的密码系统,观察密码设备的一些错误操作,期望从错误行为的结果中推导出秘密参数。

    ● 时间攻击

    利用密码系统的密钥与运行时间的关系来进行攻击的方法,与其它侧信道攻击相比,这种攻击方法几乎不需要什么特殊设备。

    ● 能量攻击

    通过分析密码设备的能量消耗获得其密钥。常见的有SPA和DPA等攻击方式。

    ● 电磁攻击

    通过高精度电磁探头多次采集目标产品工作时电磁辐射强度变化,再辅助以信号处理方式重建信号,利用DPA思想推演目标产品的密钥。

    ● 其他

    故障攻击、基于缓存的攻击、基于扫描的攻击、光学辐射攻击、基于频率的攻击、组合攻击、声音攻击等。


    事件:
    熔断漏洞(CVE-2017-5754)漏洞,幽灵漏洞包括边界检查绕过(CVE-2017-5753)和分支目标注入(CVE-2017-5715)还有英特尔CPU曝出严重漏洞,SGAxe攻击:从SGX Enclave中窃取敏感数据(CVE-2020-0549)和CrossTalk攻击:从CPU核心窃取信息(CVE-2020-0543)

    现代CPU为加快执行速度,在执行分支语句时,会依据以前的执行路径进行预测执行,如果预测执行的路径正确,则可加快执行速度,即使预测执行的路径错误,也不会降低执行速度。

    攻防世界MISC有一道侧信道初探的题目



    打开后有俩张图片,貌似是根据第一张图片的代码意思去解密第二张图片信号波动隐藏的信息
    在第一张图片中k代表密钥 𝒌=(𝑘i-1, …, 𝑘o),将最终结果的O递归到密钥算法矩阵R,在for循环里有个if条件判断语句,判断每轮密钥替换是否为1,如果为1,则将每两轮的矩阵R再加上功耗消耗的P,重新递归到新一轮的矩阵R,不进入if条件判断则能量消耗会少一些,不再增加功耗消耗P。


    最后的flag为:flag:SCTF{0110111010}

    展开全文
  • 一种抵抗侧信道攻击的DEs掩码方法,一篇写的很好的专利
  • 智能设备中的侧信道攻击面 安全对抗 安全威胁 安全分析 零信任 安全众测
  • PPT 侧信道密码分析利用密码系统实现时泄露的额外信息,推导密码系统中的秘密参数
  • 处理器微体系结构时间侧信道攻击与防御.pdf
  • 电信设备-基于软件的侧信道攻击防止.zip
  • 为防御椭圆曲线密码系统的侧信道攻击, 针对椭圆曲线密码系统的侧信道攻击主要集中在对标量乘运算的攻击, 提出了基于Width-w NAF的改进算法RWNAFrefined Width-w NAF和FWNAFfractional Width-w NAF, 通过Masking技术...
  • 非常不错的课件资料,是有关计算机网络安全中的侧信道攻击的,对于本科生和研究生都是不错的选题……
  • 电信设备-基于性能计数器的Cache侧信道攻击检测研究.zip
  • 根据改进的动态差分掩码防护逻辑以及集成电路的半定制流程设计高级加密标准S 盒,采用TSMC0.18 _m 工艺实现基于3 种不同逻辑单元的S 盒,并对其抗电磁侧信道攻击性能进行评估。实验结果表明,基于掩码防护逻辑的S 盒...
  • 为防御椭圆曲线密码系统的侧信道攻击, 针对椭圆曲线密码系统的侧信道攻击主要集中在对标量乘运算的攻击, 提出了基于Width-w NAF的改进算法RWNAFrefined Width-w NAF和FWNAFfractional Width-w NAF, 通过Masking技术...
  • 研究揭露AMD处理器存在漏洞 易受2种新型侧信道攻击.pdf
  • 一种抵抗侧信道攻击的AES算法协处理器架构设计.pdf
  • 电信设备-抗功率侧信道攻击的高级加密标准加速器处理器.zip
  • 记录一个侧信道攻击方法:.通过实现监控用户登录页所需动态库的加载,快速将动态库所在page cache换出使用户登录页响应缓慢;随后弹出密码输入页实现用户密码窃取。 ...

    记录一个侧信道攻击方法:.通过实现监控用户登录页所需动态库的加载,快速将动态库所在page cache换出使用户登录页响应缓慢;随后弹出密码输入页实现用户密码窃取。

    展开全文
  • 本文中,提出了基于Fixed-baseComb抗侧信道攻击新方法,该方法构建了一个用于表征标量k位串新序列。提出的方法仅仅多进行了一个点加法和双倍运算,在总的密码运算中可以忽略不记。因此该方法在得到高安全性的同时,几乎...
  • 电信设备-一种智能卡三位一体抗侧信道攻击防护方法和系统.zip
  • 然后针对目标S盒的输入输出利用一个时钟周期内逻辑门毛刺个数与部分功耗线性相关的方法,采用线性模型匹配算法恢复密钥并减少了基于多元高斯模型匹配的计算量,为今后提高侧信道攻击的效率提供依据。
  • 最近看了一些关于侧信道攻击的内容,这边推荐一下Guri教授团队的一些研究成果(没错,就是用风扇去入侵电脑的那个人) Reference ... ...

    最近看了一些关于侧信道攻击的内容,这边推荐一下Guri教授团队的一些研究成果(没错,就是用风扇去入侵电脑的那个人)

    在这里插入图片描述

    Reference

    https://www.zdnet.com/article/academics-steal-data-from-air-gapped-systems-using-pc-fan-vibrations/

    展开全文
  • 【pwn】记一道shellcode侧信道攻击 前言 契机来源于K0nashi师傅给的一道题目,让我来写写shellcode,那当然是写啊! 分析 checksec之后发现保护全开,打开ida分析发现有沙箱,直接查看沙箱 可以使用read open,不能...
  • CPU组件存在大量的侧信道攻击,但现有的每一种侧信道攻击方式,几乎都基于白盒分析的方法。通常情况下,需要3步来完成: ·首先需要能够识别出这一特定的CPU组件。 ·然后需要在特定的微架构上对其做逆向分析。 ...
  • 一、什么是侧信道攻击? 所谓的侧信道攻击,即攻击者利用密码设备实际工作时所释放的侧信道信息,恢复敏感安全参数或者密钥信息,展开攻击的过程。 二、侧信道攻击类型 依据所利用侧信道信息得类型不同,可以分为...
  • 此外,考虑到算法的抗侧信道攻击能力,通过引入乘数分解技术来隐藏算法中相关侧信道信息,引入一种同时多标量乘算法用来提高抗侧道攻击力,从而增强算法的安全性。仿真实验结果显示,改进的DF-comb算法可以在提高...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,672
精华内容 668
关键字:

侧信道攻击