【技术实现步骤摘要】
【国外来华专利技术】用于有效部署整体多样化程序实例以抵抗差分攻击的系统和方法
本专利技术一般地涉及可抵抗未授权分析的软件。更特别地,本专利技术涉及用于产生软件代码的系统和方法,该软件代码通过构建不同的程序以抵抗攻击者通过差分攻击、串谋(collusion)和自动利用(exploit)的努力来增加构建时间多样性。
技术介绍
在计算领域中,软件通常展示出模块化特性而不是整体的特性。此外,常常存在在任何一块给定软件内采用的许多单独和不同算法。此类不同算法以这样的的方式进行组合以便提供软件所需的服务(即,功能性)。其常常是对于一个特定服务而言的情况,许多不同算法是可用的。一般而言,此方案中的算法是执行任务或一组任务的计算步骤序列。算法可以具有各种尺寸。其可能非常大,或者其可能小到一组的几个指令。算法可以包含更小算法,该更小算法又可以包含甚至更小的算法。此分级结构可以具有任何数目的层次。很好地理解的是此类软件可以被进行反向工程或被攻击者以其他方式篡改。此类篡改在许多商业应用中是不期望的,并且已产生密码术以对抗任何此类攻击。这在大规模服务器-客户端应用中是特别明显的。在此类应用中,用于部署新特征或修补安全漏洞的目的的客户端软件的频繁更新可能导致要求改进的密码技术的整体新类别的攻击。这是因为用新保护来更新软件可能具有将攻击者直接引导至受保护资产的非预期后果,由此,攻击者只需要与软件的先前版本相比较。此类附加攻击不限于用于资产识别的软件修订的差分攻击,而是还可以包括其本身可能导致秘钥共享方案的各方之间的串谋,或者还可以包括可能识别重要模块的代码提升攻击,所述重要模块诸如是用来生成设备秘钥或可 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种提供计算机软件源代码中的构建时间多样性的方法,所述方法包括:将所述代码划分成代码部分;至少部分地基于所述代码部分中的一个或多个代码部分的外部依赖来识别所述代码部分的代码部分接口,其中代码部分接口包括代码部分的内部依赖,其允许代码部分与一个或多个其他代码部分兼容;根据所述代码部分生成多样化代码部分实例;根据所述代码部分接口生成接口实例,其中所述接口实例包括代码部分接口的多样化实例和复制代码部分接口中的一个或多个;根据所述多样化代码部分实例和所述接口实例创建测试实例,其中使用覆盖阵列来创建所述测试实例,所述覆盖阵列覆盖所述多样化代码部分实例和所述接口实例中预定尺寸的所有可能实例分组;以及使用所述多样化代码部分实例和所述接口实例的变化组合来生成部署实例,其中部署实例的数目大于测试实例的数目,以及其中通过确认所述测试实例的可操作性来保证所有所述部署实例的可操作性。2.如权利要求1中所要求保护的方法,其中,借助于物理划分来实现所述划分步骤。3.如权利要求2中所要求保护的方法,其中,所述物理划分是基于编译单元且所述代码部分接口包括在所述编译单元外面的所有全局数据和函数依赖。4.如权利要求2中所要求保护的方法,其中,所述物理划分基于函数定义,并且所述代码部分接口包括与所述函数定义中的对应的一个、所有全局变量以及所述函数定义中的所述对应的一个所依赖的所有子函数有关的函数签名。5.如权利要求1中所要求保护的方法,其中,借助于程序流划分来实现所述划分步骤。6.如权利要求5中所要求保护的方法,其中,所述程序流划分基于函数调用子图,其中,所述子图中的每一个形成所述代码部分的实例。7.如权利要求5中所要求保护的方法,其中,所述程序流划分基于所述代码的基本块。8.如权利要求1中所要求保护的方法,其中,借助于数据流划分来实现所述划分步骤。9.如权利要求8中所要求保护的方法,其中,所述数据流划分是基于所述代码的数据编码。10.如权利要求1中所要求保护的方法,其中,所述接口实例包括一个或多个复制代码部分接口。11.如权利要求1中所要求保护的方法,其中,所述接口实例包括代码部分接口的一个或多个多样化实例。12.如权利要求1中所要求保护的方法,其中,生成多样化代码部分实例还包括将多个多样化代码部分实例聚合成实例化代码部分的大型集合。13.如权利要求12中所要求保护的方法,其中,生成多样化代码部分实例还包括基于用户标准从实例化代码部分的大型集合选择多样化代码部分实例。14.一种用于提供计算机软件源代码中的构建时间多样性的系统,所述系统包括:一组机器可执行代码段,其可操作成产生保证所述计算机软件源代码中的构建时间多样性的软件代码,所述机器可执行代码可执行为执行以下步骤:将所述代码划分成代码部分;至少部分地基于所述代码部分中的一个或多个代码部分的外部依赖来识别所述代码部分的代码部分接口,其中代码部分接口包括代码部分的内部依赖,其允许代码部分与一个或多个其他代码部分兼容;根据所述代码部分生成多样化代码部分实例;根据所述代码部分接口生成接口实例,其中所述接口实例包括代码部分接口的多样化实例和复制代码部分接口中的一个或多个;根据所述多样化代码部分实例和所述接口实例创建测试实例,其中使用覆盖阵列来创建所述测试实例,所述覆盖阵列覆盖所述多样化代码部分实例和所述接口实例中预定尺寸的所有可能实例分组;以及使用所述多样化代码部分实例和所述接口实例来生成部署实例,其中部署实例的数目大于测试实例的数目,以及其中通过确认所述测试实例的可操作性来保证所有所述部署实例的可操作性。15.如权利要求14中所要求保护的系统,其中,借助于物理划分来实现所述划分步骤。16.如权利要求15中所要求保护的系统,其中,所述物理划分是基于编译单元且所述代码部分接口包括在所述编译单元外面的所有全局数据和函数依赖。17.如权利要求15中所要求保护的系统,其中,所述物理划分基于函数定义,并且所述代码部分...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。