当前位置: 首页 > 专利查询>浙江大学专利>正文

基于数据冗余的内存访问模式保护方法技术

技术编号:20025466 阅读:106 留言:0更新日期:2019-01-06 04:25
本发明专利技术公开了一种基于数据冗余的内存访问模式保护方法,可以高效且安全地混淆内存访问模式,混淆后的内存访问序列难以被攻击者进行关联,从而达到了安全的目的。本发明专利技术采取数据冗余技术,对每个请求地址都进行动态转化,并对每一个数据块进行加密。同时,结合位置映射图优化技术,本发明专利技术使得优化后的位置映射图比传统的位置映射图小几百倍,进而只需几兆字节的片上缓存即可高效保护4GB内存。本发明专利技术具有安全性高,速度快,硬件兼容等现有方法所不具备的优点,有助于在实际中进行推广。

【技术实现步骤摘要】
基于数据冗余的内存访问模式保护方法
本专利技术涉及内存安全领域,具体涉及一种基于数据冗余的内存访问模式保护方法。
技术介绍
长期以来,内存访问模式(memoryaccesspattern)一直被用于旁道攻击(Side-channelattack,又称侧信道攻击、边信道攻击)。具体而言,内存访问模式指的是程序执行期间访问的地址序列。一旦这种模式被攻击者观测获取,攻击者就有可能构建程序的控制流程图(CFG)。广泛的测量研究证明了CFG的独特性。例如,研究者发现(HIDE:aninfrastructureforefficientlyprotectinginformationleakageontheaddressbus,ASPLOS,2004年),在Alpha编译器的标准C库的1,334个程序之中,只有0.05%的CFG会是相互匹配的。因此,攻击者可以监视程序的内存访问模式,构造相应的CFG,然后识别出究竟哪个程序正在运行。如果CFG显示某种特定的加密算法在运行,攻击者甚至可以窃取密钥。例如,Diffie-Hellman和RSA涉及一个条件分支循环使用每个位的值条件检查的密钥。一个为1的位(bit)使得程序执行IF分支代码段,而一个为0的位使得程序执行ELSE分支代码段。使用窥探得来的CFG,攻击者可以很容易地推断出两个可能的秘密密钥:一个是秘密密钥本身,另一个是它的补。然而,在已有的文献当中,尚未有对不可信内存访存模式进行混淆的实用方案被提出。众所公认,对不可信内存访存模式的混淆十分具有挑战性(SecureDIMM:MovingORAMPrimitivesClosertoMemory,HPCA,2018年)。不同于能够进行加密计算新兴可信存储器,广泛部署的传统不可信内存无法执行加解密的计算任务。因此,我们必须以明文的方式发送想要访问的内存地址。如前所述,攻击者可以轻松得到内存访问模式并利用它们进行旁道攻击。此类攻击可能会泄露重用的代码甚至是AES加密的密钥。在已有的文献当中,有的研究提出了内存模式混淆的方法,这些方法主要分为两类:一类是基于茫然随机存储(ObliviousRAM)的方法,例如由Stefanov等(PathORAM:anextremelysimpleobliviousRAMprotocol,CCS,2013年)以及Goldreich等(SoftwareprotectionandsimulationonobliviousRAMs,J.ACM,1996年)提出的;另一类方法像Nakano等(Memoryaccesspatternprotectionforresource-constraineddevices,InternationalConferenceonSmartCardResearchandAdvancedApplications,2012年)和Zhuang等(HIDE:aninfrastructureforefficientlyprotectinginformationleakageontheaddressbus,ASPLOS,2004年)等所提出的,采用硬件改动的方法。第一种方法被称为基于茫然随机存储(ObliviousRAM)的方法,它通过产生大量的冗余访问以隐藏真实想访问的地址。显然,ORAM对内存带宽产生了巨大的开销。因此,ORAM不适用于实现CPU/内存场景中的访问模式混淆。随着近来云计算的兴起,网络带宽可能更少地成为桎梏安全策略选择的要素,从而,ORAM逐渐被应用于在远程服务器上的场景下的数据访问混淆。学者提出了许多改进在客户机/服务器上的方案。ORAM的相关跟进工作主要是设计优化对内存模型的抽象建模。例如,ORAM使用层次化结构实现O(polylogn)开销,而PathORAM使用树结构来实现O(log^3n)开销。最先进的Floram使用双重存储器芯片实现O(logn)开销(ScalingORAMforSecureComputation,CCS,2017年)。然而,基于ORAM的解决方案都需要产生足够多的虚假访问来隐藏内存访问模式。所以,ORAM解决方案更适用于服务器-客户端场景(server-clientenvironment),如云数据的远程访问,而不是CPU-内存通信场景。更为糟糕的是,PathORAM,作为许多ORAM解决方案的基础,需要存储许多垃圾内存块(dummyblock)以减小系统发生死锁的概率。即便我们浪费50%的内存容量来存储虚拟块(即100%的内存开销),系统死锁仍然可能发生。第二种方法是基于硬件改动的方法,它是专门在CPU/内存场景下设计的。然而,这种方法及其变式仍有较明显的缺陷。我们研究认为,这类方法的尝试往往具有高的开销,有的方法甚至会降低安全性。例如,著名的HIDE方法(HIDE:aninfrastructureforefficientlyprotectinginformationleakageontheaddressbus,ASPLOS,2004年)缓存从内存中提取的所有块。每当我们需要把块从缓冲区中移除(evict)或写回(writeback),HIDE方法需要1)读取同一段(chunk)中的所有块(block)(通常包含一个或多个连续页面)到CPU芯片上,2)将所有块的位置进行错排打乱,3)记录新的块地址映射,4)写回所有错排的块到内存中。否则,如果像往常一样,一个块被读入缓冲区然后移除,随后再次使用这个块将会让我们访问相同的内存位置,从而泄漏访问模式。HIDE方法必须通过将混淆范围为局限于一个很小范围的内存空间之内,从而不至于产生过大的开销。通过把读操作与错排操作混合在一起,可以提高HIDE方法的工作效率(Hardwareassistedcontrolflowobfuscationforembeddedprocessors,CASES,2004年)。该改进的主要思想是,经过一个读访问后,缓冲块可以写回到所读块的位置中。该改进算法无需太多开销就可以实现块的错排。然而,这种改进方法需要足够大的缓冲区大小来保证内存访问模式的安全性。考虑以下这个极端情况,假设我们有大小为1的一个缓冲区,所执行的程序轮流访问两个存储器位置l1和l2。那么,访问内存的顺序将是(l1,l2,l2,l2......)。这使攻击者可以推断出两个可能的访问模式-(l1,l2,l2,l2......)和(l1,l2,l1,l2......)。其中,后者与真正的访问模式完全匹配,即,内存访问模式被泄露了。为了去除错排操作产生的开销,一些学者提出,可以扩大缓冲区,使得缓冲区足以容纳足够多的块。我们设计移出策略使得任意对同一缓冲块的两次连续访问都具有足够长的时间间隔。这个策略使得攻击者很难有效关联起来访问操作。同样,这需要在缓冲区大小和安全级别之间做出一个权衡,尤其是所运行的程序包含有长循环。
技术实现思路
本专利技术提供了一种基于数据冗余的内存访问模式保护方法,可以在O(1)的通信开销下混淆不信任存储中内存访问模式,不仅能避免内存访问模式的泄漏,也能大幅度减小时间开销。一种基于数据冗余的内存访问模式保护方法,包括以下步骤:(1)构建由CPU、存储器控制器和内存组成的系统,所述本文档来自技高网
...

【技术保护点】
1.一种基于数据冗余的内存访问模式保护方法,其特征在于,包括以下步骤:(1)构建由CPU、存储器控制器和内存组成的系统,所述的存储器控制器包括位置映射图模块和存储器控制器缓存区;(2)初始化阶段,存储器控制器将目标数据块制作成若干个不同的数据块副本并加密,预加载到外部存储器中的随机位置,并建立目标数据块的位置映射图;(3)在执行阶段,对于CPU端的访存请求,判断存储器控制器缓存区是否有目标数据块,若存在,执行步骤(4),若不存在,执行步骤(5);(4)对于读的操作,返回存储器控制器缓存区中的目标数据块,对于写的操作,更新存储器控制器缓存区中的目标数据块;(5)判断访存请求的种类,若为写请求,跳到步骤(6),反之,则为读请求,跳到步骤(9);(6)消除位置映射图中过时备份的记录,位置映射图给出新的映射地址,用于写入新的数据块,并对新的数据块进行加密;(7)由写缓冲区异步写入到内存中;(8)结束处理,返回;(9)位置映射图模块调用副本选择算法,给出其中一个副本的真实地址,以及所需的解密密钥;(10)访问外部存储器,根据步骤(9)中获得的一个副本的真实地址,获得加密副本的内容;(11)根据步骤(9)中获得的解密密钥,对加密副本进行解密;(12)响应二级缓存的处理请求,并对位置映射图进行状态更新。...

【技术特征摘要】
1.一种基于数据冗余的内存访问模式保护方法,其特征在于,包括以下步骤:(1)构建由CPU、存储器控制器和内存组成的系统,所述的存储器控制器包括位置映射图模块和存储器控制器缓存区;(2)初始化阶段,存储器控制器将目标数据块制作成若干个不同的数据块副本并加密,预加载到外部存储器中的随机位置,并建立目标数据块的位置映射图;(3)在执行阶段,对于CPU端的访存请求,判断存储器控制器缓存区是否有目标数据块,若存在,执行步骤(4),若不存在,执行步骤(5);(4)对于读的操作,返回存储器控制器缓存区中的目标数据块,对于写的操作,更新存储器控制器缓存区中的目标数据块;(5)判断访存请求的种类,若为写请求,跳到步骤(6),反之,则为读请求,跳到步骤(9);(6)消除位置映射图中过时备份的记录,位置映射图给出新的映射地址,用于写入新的数据块,并对新的数据块进行加密;(7)由写缓冲区异步写入到内存中;(8)结束处理,返回;(9)位置映射图模块调用副本选择算法,给出其中一个副本的真实地址,以及所需的解密密钥;(10)访问外部存储器,根据步骤(9)...

【专利技术属性】
技术研发人员:卜凯梁伟欣李珂黎金洪
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

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

1