小心,Cache 侧信道攻击

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

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

Cache是什么?

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

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

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

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

Cache的作用

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

图1 冯诺依曼体系结构

图2 最简单的高速缓存配置图

Cache结构

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

图3 Intel cache架构

Cache侧信道攻击原理

多核之间cache数据共享,而cache命中和失效对应响应时间有差别,攻击者可以通过访问时间的差异,推测cache中的信息,从而获得隐私数据。根据采集信息不同,cache侧信道攻击可分为时序驱动攻击、访问驱动攻击以及踪迹驱动攻击。时序驱动攻击需要获得目标攻击系统详细配置参数,重建对照环境,利用统计分析方法,对照采集到的密码算法一次加密/解密的整体时间,推测密钥。踪迹驱动攻击需采集密码算法执行过程中所有cache访问命中和失效序列,再结合明文或密文推测密钥,一般通过功耗检测手段进行,但该手段需要特殊的信息采集设备而且需要物理接触密码设备,实现起来比较复杂。访问驱动攻击通过采集加密或解密过程中访问的cache组集合,再利用数学分析方法推测密钥,可以远程实现,攻击实现可行性较强。目前,cache侧信道攻击中访问驱动攻击实现最为简单,影响范围最大,以下将介绍其两种主流的方法,Prime-probe方法和Flush-reload方法。

Prime-Probe(PP)方法

攻击者首先在prime阶段将特定cache组填充为自己的数据,然后等待目标虚拟机在Trigger阶段使用被填充的cache 组地址,一些数据将被驱逐出cache,在probe阶段重新读取数据,驱逐的cache需要一个较长的读取时间.因此,根据Probe 阶段探测的cache重载时间,可以判断目标虚拟机在响应服务时使用Cache地址。其方法具体步骤如下:

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

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

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

其主要攻击原理如图4所示。

图4 Prime-Probe方法

Flush-Reload(FR)方法

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

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

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

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

其方法攻击原理如图5所示。

图5 Flush-Reload方法

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 利用JavaScript的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攻击逐渐渗透到我们的日常应用中,智能手机的可信环境在此种攻击方法下也存在严重安全隐患。安全问题日益突出,用户的隐私需要更加完善的安全措施来保护。希望更多地研究学者加入我们的队伍中,为隐私保驾护航。

【本文为专栏作者“中国保密协会科学技术分会”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/127433.html<

(0)
运维的头像运维
上一篇2025-02-24 16:29
下一篇 2025-02-24 16:30

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注