非入侵式攻击之交叉相关分析原理与实战

VSole2022-12-12 10:12:20

非入侵式攻击之交叉相关分析原理与实战

背景介绍

非入侵式攻击测试利用了隐藏在密码模块中或周围的物理量的有偏性,这种依赖于秘密信息的有偏量被称为泄露,测试泄露是否存在的测试即为泄露分析。简单能量分析(Simple Power Analysis,SPA)和差分能量分析(Differential Power Analysis,DPA)都是《GB/T 37092-2018 信息安全技术 密码模块安全要求》中规定的非入侵式攻击测试项。SPA需要直接(例如,通过视觉)分析密码模块在执行密码过程中各指令的能量消耗模式。通过监视密码模块能量消耗的变化,可以发现所执行密码算法的模式和实现方法,从而获取密钥值,文献[1] 给出了一种Cross-Correlation方法,属于SPA的代表方法。

一阶DPA具有相同的目的,但是为了分析密码模块能量消耗的变化,使用了统计方法(例如,均值差、相关系数)对能量消耗进行统计分析,从而获取密钥值。文献[2]中提出的方法也称为Cross-Correlation,但这是一种DPA类型的统计分析方法,它源自文献[3]的碰撞相关攻击。本文主要讨论这种DPA型的Cross-Correlation。

Cross-Correlation分析[2],中文译为交叉相关分析。根据采集到的能量波形,可执行交叉相关分析来检索密码算法指令序列,进行DPA泄露检测。该功能可以获得波形中与密钥信息相关的敏感操作在何处执行的信息,其结果图也可以帮助测评人员识别针对侧信道分析的一些防护对策。

分析原理

在已知加密算法结构的条件下,对采集到的一组不同明文、相同密钥加密得到的若干条波形进行交叉相关分析时,设定两个指针沿横轴滑动,每滑动到一个地方,都计算一下两个指针所指的两列波形点之间的相关系数。当滑动位置遍历所有横坐标后,两个指针对应的相关系数可以形成一张二维的图,命名为交叉相关图。该实验图能够可视化对齐后的多条波形中不同横坐标受明文影响的关系,进而有助于帮助我们区分不同操作。在交叉相关图中,用亮点来表示相关性的强弱。色带上亮点明显的位置,相关性比较强,表示一个特定值在运行过程中的多次泄露,这与碰撞攻击是类似的。我们可以由此对敏感操作进行定位,进而通过识别这些操作来恢复出密钥。

图片来源:文献[2]

功能说明

北京数缘科技有限公司自主研发的侧信道分析测评软件Detector集成了交叉相关分析,该功能的参数设置界面如图所示。

交叉相关分析控制面板

对话框中的文本框含义如下:

  • 起始点、点长度:用于做交叉相关分析的起始采样点与长度,这部分的参数可以通过选中波形中的一部分进行自动填写。
  • 起始波形:所选处理波形的起始编号。
  • 波形条数:所选出来波形的总条数。

通过文本框确定待分析波形段后,点击“确认”执行交叉相关分析,在窗体下方生成计算出来的交叉相关图,图中绿色代表正相关,红色代表负相关,相关性性越强颜色越亮。消耗时间会通过日志进行显示。

案例实现

我们基于一款STM32F4系列单片机的开发板实现了无防护的RSA算法,采用数缘科技自主研发的多功能侧信道分析仪采集其能量波形。RSA算法的密钥信息主要落在平方和乘法的操作上,因而可以通过计算交叉相关系数,生成一张交叉相关图作为可视化结果,以达到定位不同运算操作、恢复密钥的目的。

多功能侧信道分析仪能量分析连线图

首先需要采集一组符合要求的RSA加密的波形。这里为了有明显直观的效果,采集了1000条波形。示例波形如下图所示。

RSA示例波形

选中待分析的波形段,点击“确认”执行交叉相关分析,在窗体下方生成了计算得到的交叉相关图,如下图所示。取平方对应的Square操作简称为S操作,而乘法对应的Mulitiply操作简称为M操作,图中S、M操作都已标出。色带颜色较亮,且都是表示正相关关系的绿色,说明对应的是取平方的S操作;色带为红绿相间,且颜色较暗,说明对应的是乘法的M操作。一个S操作后紧跟一个M操作对应密钥1,而一个S操作后还是S操作,说明前一个S操作对应密钥0。由图可以识别出操作SMSSSMSSSMSSMSMSMSMSMSMSSMSMSSSSSM,对应密钥1001001011111101100001。

交叉相关图

适用场景

交叉相关分析的强大之处在于,它能够有效攻破RSA算法的多种防护对策。其一,是Multiply-Always,也就是添加伪操作。该措施具体执行时,逐比特扫描密钥,当密钥为0时,执行完取平方操作后再乘以底数(或随机数),但是将计算结果丢弃不用。也就是说,再扫描下一比特的密钥时,不使用乘以底数之后的值,而是使用取平方操作后、乘以底数之前的值,因此乘以底数这个伪操作并不影响加密结果,只是使扫描每一比特密钥时都有一个取平方操作和一个乘法操作。其二则是掩码,当模幂运算的底数或模数被随机掩码掩盖时,交叉相关分析仍然有效,因为它关心的是两处泄露的值是否总是相同,只要二者相同,哪怕被相同的随机掩码掩盖住,这种“相同泄露值”的情况仍然能被发现。

交叉相关分析可适用于添加防护对策的RSA算法加密。以两种泄露情况为例:

第一种情况:这种情况下交叉相关分析利用的是:真正的乘法操作因为都需要调用明文而产生了相关性。如果是正常的乘法操作,同一条波上的多个乘法操作都需要调用到相同的明文,这些乘法操作之间具有相关性;而乘以一个随机数的伪操作没有调用明文,因此不具有相关性。以此可以区分哪些乘法操作是模幂运算的一部分,而哪些乘法操作只是伪操作。

如下图所示,首先,同一操作之间的较强的相关关系,在图中以白色方块表示;对于正常的乘法操作,也就是图中白色的M操作,都需要调用到相同的明文,它们之间存在相关性,在图中以橘色的方块表示。若当前操作为伪操作,在图中以红色的M操作表示,乘数是一个随机数而不是明文,那么该操作与正常的乘法操作之间不具有相关性,在图中仍是黑色的方块。

第一种情况交叉相关图

第二种情况:这种情况下交叉相关分析利用的是:前一个操作的输出结果可能是后一个操作的输入内容。如果是正常的操作,那么前一个操作的输出结果就是后一个操作的输入内容,前一个操作与后一个操作之间因为调用了同一个值,会产生相关性;如果当前的乘法操作为伪操作,乘以一个随机数之后就将该计算结果丢弃,那么下一操作的输入并不是该操作的输出,而是上一操作的输出,所以下一个操作会与上一个操作之间,也就是与伪操作相邻的两个取平方操作之间具有相关性。

如图所示,同样地,同一操作之间的较强的相关关系,在图中以白色方块表示;对于正常的操作,也就是图中白色的S、M操作,后一个操作的输入是前一个操作的输出,故前后两个相邻的操作之间存在相关性,在图中以黄色的方块表示。若是当前操作为伪操作,在图中以红色的M操作表示,乘以一个随机数之后就将该计算结果丢弃,那么与伪操作相邻的两个取平方操作之间具有相关性,在图中以橘色方块表示。

第二种情况交叉相关图

参考资料

[1] Thomas S. Messerges, Ezzy A. Dabbish, Robert H. Sloan. Power Analysis Attacks of Modular Exponentiation in Smartcards. CHES 1999, LNCS 1717, pp. 144−157, 1999.

[2] Marc F. Witteman, Jasper G.J. van Woudenberg, Federico Menarini. Defeating RSA Multiply-Always and Message Blinding Countermeasures. CT-RSA 2011, LNCS 6558, pp. 77-88, 2011.

[3] Christophe Clavier, Benoit Feix, Georges Gagnerot, Myl`ene Roussellet, and Vincent Verneuil. Improved Collision-Correlation Power Analysis on First Order Protected AES. CHES 2011, LNCS 6917, pp. 49-62, 2011.

相关性分析交叉分析
本作品采用《CC 协议》,转载必须注明作者和本文链接
标准对以上11个域进行了每个等级应达到的要求进行了详细说明。如有相关措施,文档应包括可证明每个缓解技术有效性的证据。三种测试应逐一完成,三者均通过视为通过测试,任意一项测试不通过视为不通过测试。对对齐后的波形进行统计测试,观察是否存在明显泄露。如无明显泄露则认为密码模块安全,通过测试。可承接非入侵式攻击相关测评业务,帮助送检厂商提供完善全面的自测试报告。可辅助测试人员进行可靠的差分能量/电磁分析
非入侵式攻击测试利用了隐藏在密码模块中或周围的物理量的有偏性,这种依赖于秘密信息的有偏量被称为泄露,测试泄露是否存在的测试即为泄露分析
Detector提供一个完整的测评框架,支持测评人员将待分析的原始波形及分析结果导出到Word文档中,以快速生成测试报告。测试报告内容包括测试信息、测试波形图及相应的测试结果。以TVLA测试为例,生成报告对话框界面如图1所示,生成的测试报告如图2所示。图1 生成报告功能界面图2 生成TVLA测试报告结果02新增标准计时分析功能旧版本Detector支持两种计时分析功能,分别是计时分析-IO、计时分析-明密文相关性
二进制程序分析
2021-09-25 17:18:46
分析恶意软件的第一步是收集二进制程序在主机上执行的行为事件,研究人员根据这些行为大体形成一个思路来描述恶意软件的功能。 这包含应用释放或者从互联网下下载的文件,写入什么样的注册表、访问了什么网络地址,修改读写本地的什么文件等等。那么研究人员通过行为会确定恶意样本的类型。通常类型如下:
痛苦的纯文本日志管理日子一去不复返了。虽然纯文本数据在某些情况下仍然很有用,但是在进行扩展分析以收集有洞察力的基础设施数据并改进代码质量时,寻找一个可靠的日志管理解决方案是值得的,该解决方案可以增强业务工作流的能力。 日志不是一件容易处理的事情,但无论如何都是任何生产系统的一个重要方面。当您面临一个困难的问题时,使用日志管理解决方案要比在遍布系统环境的无休止的文本文件循环中穿梭容易得多。
我们以Detector标配的AES算法训练卡为例进行计时分析的泄露分析。经过计算得知此差值超过了待测设备的一个时钟周期,因此存在与密钥相关的时间信息泄露,测试不通过。计时分析结果加密时间与明文之间的依赖性测试该依赖性测试的操作方法与加密时间与密钥之间依赖性测试基本相同。报告内标题与测试结果会自动生成,并支持手动修改。图7是我们采集到的某型号芯片实现的SM2解密的波形。
通过考虑 TLS 协议中的证书,利用证书内容对恶意流量进行识别,但是此方法对无证书传递的加密会话恶意性检测无效。图 2 展示了恶意会话和正常会话的服务器对 TLS 加密套件的选择对比和客户端支持的曲线对比。
这篇技术干货 带你了解深信服的AI技术
我们提出了一个基于多任务、多视角学习的图神经网络模型,首次将链接预测与节点分类任务同时进行。为了考虑不同任务、不同视角之间复杂的关系,我们提出了View attention和Task attention两种机制来学习不同视角之间的重要性。
本书主要对系统性金融风险的传染与控制进行理论结合实际的系统研究。本书主要特点在于:在新时代背景下,阐述了系统性金融风险的内涵、特征与形成机制;系统地揭示了系统性金融风险的非线性传染机制、交叉传染机制、非对称传染机制和多层网络传染机制,以利于对系统性金融风险这个复杂现象的深入了解;从网络优化和中央清算等角度,提出了系统性金融风险控制策略,并剖析了系统性金融风险防控的政策效果。虽然本书对系统性金融风险
VSole
网络安全专家