抗边通道和重复调用攻击的动态、可变定时操作路径的系统和方法技术方案

技术编号:8349557 阅读:188 留言:0更新日期:2013-02-21 07:37
用于构造可变定时操作路径以及将这些路径应用于任何算法的系统和方法。具体地,该系统和方法可被用于加密算法作为抗边通道、重复调用攻击、以及基于用于给定软件实现的系统的物理特征任的何类似攻击的手段。该方法具有对任何算法通用的有益性以及具有约束已知定时窗口的性能的能力。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及抗未授权分析的软件。更具体地,本专利技术涉及用于生成软件代码的系统和方法,该软件代码伪装操作路径使得在运行时期间或在尝试逆向工程期间对代码的分析变得更加困难。
技术介绍
在计算领域中,软件通常呈现模块化特性而不是整体的。此外,在任意给定的软件块中常常采用许多独立和不同的算法。这些不同的算法以提供软件所需的服务(即功能性)的方式组合。对于一种特定的服务而言常常是这种情况,许多不同的算法可用。一般而言, 在这种情况下的算法为执行一个任务或一组任务的计算步骤序列。算法可具有多种大小。它可以很大,或可以小至一组少量指令。算法可包含较小的算法,较小的算法进而可包含更小的算法。这种层次结构可有任意数量的级别。可以理解,这样的软件可被攻击者以多种方式进行逆向工程或篡改。在许多商业应用中,上述篡改是不利的并且产生密码术来对抗任何这样的攻击。在密码术中,边通道攻击是基于从密码系统的物理实现和相关物理特性获取的信息来对目标软件代码中的底层算法进行的任意攻击。与可包括蛮力或算法本身中的理论弱点的直接侵犯不同,基于系统的物理特性的攻击通常包括的原因有(但不限于)定时信息、功率消耗、电磁泄漏或类似的物理特性。在一些示例中,甚至声音也可提供额外的信息源,其可被利用以破坏密码系统。通常,许多边通道攻击需要相当多的实现了密码术的系统的内部运行的技术知识。与边通道攻击类似,重复调用攻击是另一种技术,其通常基于从密码系统的物理实现和相关物理特性获取的信息来对目标软件代码中的底层算法进行攻击。然而,这样的重复调用攻击依赖于特定的应用在给定一组输入时从一次调用至另一次调用通过相同的执行路径。这种性质能够使攻击者通过重复执行来构建应用映射直至不明确的信息变得更清楚。具体攻击技术的不例包括定时分析、简易功率分析(SPA)或差分功率分析(DPA)。每个这样的示例包括深刻洞察所使用的软件代码以及具有受控输入的实现的重复调用。这些攻击技术对于从可能泄露的执行中的算法信息获取信息是有用的,并因此有利于其本身进行分析推导,可包括例如系统内特定实现的精确位置、或系统所使用的密码算法等项。为了成功地进行边通道或重复调用攻击,期望实现表现为可控的方式。虽然SPA和DPA会在计算功率消耗的差异时进行进一步攻击,但更多先进的攻击技术中的一些也可利用统计数据和纠错码来找出任何的信息泄露。例如,用于公开密钥密码的 Rivest、Shamir 及 Adleman (RSA)算法、Diffie_HelIman (D-H)密钥交换密码协议、数字信号标准(DSS)密码标准、数字加密标准(DES)密码标准、高级加密标准(AES)密码标准和其他加密子系统已经通过多种定时和差分功率技术被攻击。边通道或重复调用攻击的共同宗旨为需要连续重新调用系统来递增地解答问题。在重复操作的过程中,软件的预定执行泄露部分信息,所泄露的信息最终组成更完整的信息。目前存在问题的基础是在重新调用时任何给定的软件实现的可预测性。边通道或重复调用攻击假设软件以可从中提取信息的重复方式运行。此外,还存在依赖于此相同性质的对软件的其他类型的攻击。例如,调试和/或仿真是依赖于可重复性的攻击的普遍形式。在这些情况下,攻击者可例如将断点设定在具体函数上并希望单步调试程序来理解其操作。当攻击者经过感兴趣的点时,他将从开始重新调用程序以期望在第二次调用中到达相同的断点。通常已知阻挠边通道或重复调用攻击的阻止方法常采用例如减少操作中的变量数以力图减少信息泄露的对策。通常,操作中的变量可通过下面的措施来减少a)填充快速数据路径(例如,加/减操作),使得其比慢速数据路径(例如乘/除操作)执行更长,b)向系统增加噪声,c)使代码等时,从而使代码独立于秘密值以不变的时间运行,或d)使用安全的CPU,该CPU与外界物理分隔。 虽然这些措施在具体情况下可有助于减少边通道或重复调用攻击的有效性,但它们没能给出一种可用于通用算法结构的通用方法。因此,希望提供使用更普遍有用的系统和方法来阻止边通道或重复调用攻击。
技术实现思路
本专利技术的目的是消除或减少抗边通道或重复调用攻击的上述方法中的至少一个缺点。本专利技术提供了在软件中实施的系统和方法来提供多种多样的操作路径以使得边通道或重复调用特征例如定时持续和功率消耗从一次调用至下一次调用程序不一致但功能等同。应理解,这样的操作路径为物理属性例如但不限于存储器设计和芯片组布局所固有。这些路径可使用数据流和控制流部分来构造,从而使定时和功率特征避免了可预测性。此外,在不同的粒度级别下构造了计算路径选择以增加来源于系统的定时和功率属性的不可预测性。此外,构造了计算路径选择使得在公式之间存在不明显的依赖性以及存在对在已知的模块化程序构造实践的情况下不具有依赖性的程序中的变量的不明显的依赖性。这种模式还抗攻击者从保护的系统提取信息的能力。在第一方面,本专利技术提供了伪装计算机软件源代码中的操作路径的方法,该方法包括标识在计算机程序的计算机软件源代码中实施的至少一个计算步骤序列;基于至少一个计算步骤序列内的表达式路径创建替换操作路径;以及生成包括替换操作路径的抗攻击的计算步骤序列。该创建步骤还包括复制与至少一个计算步骤序列相对应的表达式路径以形成多个复制表达式路径,在多个复制表达式路径之间应用随机选择,获取与多个复制表达式路径内的操作等同的替换操作,根据输入定时窗口的限制通过插入一个或多个标识来扩展替换操作,以及将一个或多个标识中每一个的非特殊输入绑定至计算机程序的常量和/或变量以形成一个或多个相关假目标,形成与计算机程序用户建立的标准相对应的输入定时窗口,其中,抗攻击的计算步骤序列包括表达式路径、替换操作、一个或多个标识以及假目标。另一方面,本专利技术提供了用于伪装计算机软件源代码中的操作路径的系统,该系统包括一组机器可执行代码段,其可被操作为产生使包含在计算机软件源代码中的计算步骤的回路选择随机化的软件代码,机器可执行代码可执行以实现以下步骤标识在计算机程序的计算机软件源代码中实施的至少一个计算步骤序列;基于至少一个计算步骤序列内的表达式路径创建替换操作路径;以及生成包括替换操作路径的抗攻击的计算步骤序列。该创建步骤还包括复制与至少一个计算步骤序列相对应的表达式路径以形成多个复制表达式路径,在多个复制表达式路径之间应用随机选择,获取与多个复制表达式路径内的操作等同的替换操作,根据输入定时窗口的限制通过插入一个或多个标识来扩展替换操作,以及将一个或多个标识中每一个的非特殊输入绑定至计算机程序的常量和/或变量以形成一个或多个相关假目标,形成与计算机程序用户建立的标准相对应的输入定时窗口,其中,抗攻击的计算步骤序列包括表达式路径、替换操作、一个或多个标识以及假目标。 在另一方面,本专利技术提供了用于伪装计算机软件源代码中的操作路径的设备,该设备包括用于标识在计算机程序的计算机软件源代码中实施的至少一个计算步骤序列的装置;用于基于至少一个计算步骤序列内的表达式路径创建替换操作路径的装置;以及用于生成包括替换操作路径的抗攻击的计算步骤序列的装置。用于创建的装置还包括用于复制与至少一个计算步骤序列相对应的表达式路径以形成多个复制表达式路径的装置;用于在多个复制表达式路径之间应用随机选择的装置;用于获取与多个复本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:克利福德·立厄姆卡洛斯·纳哈斯
申请(专利权)人:埃德图加拿大公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1