基于Cache时间特性的防御攻击方法技术

技术编号:4030911 阅读:220 留言:0更新日期:2012-04-11 18:40
一种信息安全技术领域的基于Cache时间特性的防御攻击方法,通过对二进制代码进行加密,得到加密程序;然后以基本块为单位逐条解释加密程序并依次提交进行中间表示转化处理,得到中间表示数据;当中间表示数据中包含访问内存指令时,则在该中间表示数据的基本块的中间表示中注入冗余指令后进行翻译处理,得到可执行指令并发送至硬件进行执行。本发明专利技术采取边执行,边修改的动态策略,大大提高了执行效率;可以直接应用于现有的加密程序,用户无需对源程序进行更改即可直接进行应用。

【技术实现步骤摘要】

本专利技术涉及的是一种信息安全
的方法,具体是一种利用动态二进制翻译 技术的。
技术介绍
动态二进制翻译是虚拟执行技术中应用最为广泛的方法,是为遗留代码提供移植 可能性和提高软件的平台适应性的一种有效手段,它在不需要可执行程序的源代码的情况 下,可以动态地将源机器平台上的二进制程序经过转换,运行于其他目标机器平台上。同 时,动态二进制翻译技术提供了探测程序行为的可能性,也提供了对源程序进行修改的方 法,使程序执行变得可知、可控。正是动态二进制翻译技术的这种功能特性,使之可以运用 于旁路攻击的防御。在密码学中,旁路攻击指这样一种攻击方式它不以通过暴力破解或针对加密方 法中所采用的数学模型的漏洞为攻击手段,而是通过分析加密程序的执行平台在加密运算 中所泄漏的一种或多种旁路信息来获取密钥的物理攻击方法。所述的旁路信息包括时间信 息、电能开销、电磁峰值甚至噪音等信息。简言之,旁路攻击不攻击密钥本身,而是攻击那些 运行于不安全系统上的加密程序,正是这类不安全的 系统导致了旁路信息的产生。系统的 不安全主要是由于体系结构设计的不合理所导致的,本专利技术所防御的旁路攻击就是利用了 系统在硬件实现上采用了 Cache-Memory存储结构。为了缓解CPU与主存储器之间的存取速 度差,在现代计算机系统中一般都采用了 Cache技术。Cache是位于CPU和DRAM主存之间的 小规模高速缓冲存储器。它保存着CPU最常用的数据或指令。CPU直接访问Cache时称为 “命中”(Cache hit),否则称为“缺失”(Cache miss)。当前很多加密方法如AES (Advanced Encryption Standard),出于性能的考虑,在实现过程中都采用了查找表。这种做法虽然 大大降低了方法的时间复杂度,但也导致在加密过程中Cache信息的泄露。由于Cache容 量的性质,加密过程中使用到的查找表无法完全放入Cache中,这必然引起加密过程中“命 中,,和“缺失”两种情况皆会出现,其中宏观的一种表现形式就是程序在执行过程中时间的 变化,称为Cache的时间特性。基于测量加密程序执行时间的旁路攻击称为时间特性旁路 攻击(Timing attack),这是目前使用最多的旁路攻击方式,也是本专利技术所针对的旁路攻击 方式。1992年,Kocher指出使用查找表的加密程序会由于Cache的存在而引起执行时间 上的特性,后来Page从理论上论证了 Cache能被用于旁路攻击。2005年,Bernstein首次 成功实现了针对AES加密方法的旁路攻击。Bormeau基于Bernstein的工作,提出针对AES 更加有效的旁路攻击方法。虽然在采用了不同的策略,但是他们都基于这样一个事实,即方 法的执行时间直接受Cache缺失次数的影响。基于Cache时间特性的旁路攻击已被证明是 一种有效的且在现实中是可行的攻击手段。从这个意义上说,任何采用Cache-Memory这种 存储结构的设备都有被攻击的可能。因此,针对此类攻击的防御方法有很强的现实需求。经过对现有技术的检索发现,现有技术手段主要是从硬件与软件这两方面提出防御措施。从硬件方面来看,大多数研究都是提议修改Cache的设计,希望能从根本 上解决Cache可被用作旁路泄露加密程序的运算信息这一问题。Page提出动态划分 Cache (Partitioned CacheArchitecture),为特定的应用程序指定特定的分区,并对该分 区加锁,以防止敏感数据的泄露。而另外一些研究者则认为Cache冲突是导致加密方法 运算信息泄露的根本原因,并提出PLCache (Partition-Locked Cache,分区加锁缓存)与 RPCache (Random Permutation Cache,随机排列缓存)。此外,还有人提出重新设计体系架 构,重新设计导致执行时间不可预测的部件,如Cache、硬件流水、分支预测等,以达到程序 执行时间恒定的目标。从软件方面来看,提出的观点一般集中在对加密方法实现的修改,目 的是通过提高攻击者的负担来降低旁路攻击的成功率。加密方法实现时采用查找表是出于 保证方法的时间复杂度,就目前而言还很难找到不以牺牲方法性能为代价的替代方法。一 种可选的方案是采用小压缩查找表的规模,譬如说,当查找表的元素首次被访问,整个查找 表都可以被加载到内存中,但这只是增加了攻击者的分析难度,并没从根本上解决问题。
技术实现思路
本专利技术针对现有技术存在的上述不足,提供一种基于Cache时间特性的防御攻击 方法,通过动态二进制翻译器运行加密程序的二进制代码,使整个加密方法的执行过程变 得可知,可控,且可改,从而隐藏掉旁路攻击所需要的信息来进行防御。利用动态二进制翻 译技术创建沙盒(Sandbox),以沙盒作为加密程序运行和添加冗余指令的场所,使程序运行 于一个安全的运行环境中。换言之,沙盒在旁路攻击与加密程序之间建立起一道屏障,使攻 击者无法获得旁路攻击需要的信息。 本专利技术是通过以下技术方案实现的,本专利技术包括以下步骤第一步、使防御系统运行支持AES加密算法的实现程序;所述的实现程序是指支持AES加密算法的二进制文件,该实现程序实现了基本 的传输层资料加密功能。第二步、防御系统对加密程序进行代码解析逐条解释加密程序并进行中间表示 转换处理,以基本块为单位提交给翻译器处理;所述的逐条解释加密程序是指当一个二进制程序运行于动态二进制翻译器时, 动态二进制翻译器的解释器根据程序执行顺序逐条对程序的二进制码进行解析,即解释器 根据读取的二进制码分析出该二进制码表示的操作符和操作数信息;当该二进制程序是 Intel ia32架构上的程序则解释器能够将二进制码还原为ia32架构的指令。所述的中间表示转化处理是指通过一对多的翻译模式,使用若干条中间语言进 行等效表示解释器解析出的指令。所述的以基本块为单位提交给翻译器处理是指以动态基本块为单位,该动态基 本块位于两条分支或跳转指令之间,当防御系统转化一条分支或跳转指令后得到的中间表 示构成了一个动态基本块时将该动态基本块提交给翻译器进行构造处理,防御系统依次转 化所有分支或跳转指令直至加密程序执行结束。第三步、当基本块中包含访问内存指令时,则在该基本块中注入冗余指令后执行 第四步;否则直接执行第四步;所述的访问内存指令是指对内存的某块地址空间进行读操作或写操作的指令,该指令根据生成的随机数来确定被访问内存的地址。所述的注入冗余指令是指在防御系统初始化阶段,预先分配出内存空间并记录 这块内存空间的地址,当基本块中包含访问内存指令时,根据随机数设置每条访问内存指 令中的内存地址。所述的随机数是指采用Intel指令集中的RDTSC(Read Time-Stamp Counter读 取时间戳计数器)指令的返回值生成随机数。第四步、对第三步或第二步得到的基本块进行翻译处理,得到可执行指令并发送 至硬件进行执行。所述的翻译处理是指以基本块为单位对中间表示数据逐条进行译码,每完成一 个基本块的译码后即将得到的目标代码保存到内存中并提交执行,直至基本块的执行结束 后回到第一步处理下一个基本块,直至加密程序运行完毕。与现有技术相比,本专利技术具有以下优点采取边本文档来自技高网
...

【技术保护点】
一种基于Cache时间特性的防御攻击方法,其特征在于,包括以下步骤:第一步、通过防御系统运行支持AES加密算法的实现程序;第二步、防御系统对加密程序进行代码解析:逐条解释加密程序并进行中间表示转换处理,以基本块为单位提交给翻译器处理;第三步、当基本块中包含访问内存指令时,则在该基本块中注入冗余指令后执行第四步;否则直接执行第四步;第四步、对第三步或第二步得到的基本块进行翻译处理,得到可执行指令并发送至硬件进行执行。

【技术特征摘要】

【专利技术属性】
技术研发人员:管海兵董国星何悦美陈凯梁阿磊
申请(专利权)人:上海交通大学
类型:发明
国别省市:31[中国|上海]

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

1