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

一种细粒度的运行时敏感数据随机化保护方法技术

技术编号:33635943 阅读:18 留言:0更新日期:2022-06-02 01:48
本发明专利技术公开了一种细粒度的运行时敏感数据随机化保护方法,通过扩展指令集的方式在指令层面添加敏感数据机密性和完整性密码学保护扩展指令来提供保护敏感数据机密性和完整性的细粒度密码学操作原语,当操作系统内核或用户态应用程序进程需要对敏感数据进行操作时,需要使用扩展后的密码学操作原语对敏感数据进行加密或解密操作,加密或解密时需要提供额外的密钥和调柄信息,以及数据保护范围的选择信息。使用本发明专利技术所提出的扩展指令集进行保护的程序能够抵御各类内存相关的软件攻击;其能够根据输入地选择范围的不同,灵活地提供完整性和机密性保护,灵活地提供时间或空间上的内存安全保护。内存安全保护。

【技术实现步骤摘要】
一种细粒度的运行时敏感数据随机化保护方法


[0001]本专利技术涉及计算机应用运行时安全领域,尤其涉及一种细粒度的运行时敏感数据随机化保护方法。

技术介绍

[0002]内存是计算机体系结构中重要的组成部分,任何程序的运行代码、处理数据都会存储在内存中。谷歌工程师曾对旗下浏览器中2015年以来的高危漏洞进行过统计,结果显示其中约70%都是内存相关的漏洞。
[0003]程序在运行时会在内存中生成不同类型的各类数据,这其中包含返回地址、状态变量以及密码学算法密钥等敏感信息,直接使用软件的方法进行保护往往会带来较大的性能开销。主流的处理器厂商尽管提供了例如Intel AES

NI等常见的密码学算法加密引擎,但并不适用于频繁的加解密操作,目前的计算机体系结构中仍然缺少针对细粒度的运行时敏感数据保护原语。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供一种细粒度的运行时敏感数据随机化保护方法,具体技术方案如下:
[0005]本专利技术公开了一种细粒度的运行时敏感数据随机化保护方法,通过扩展指令集的方式在指令层面添加敏感数据机密性和完整性密码学保护扩展指令来提供保护敏感数据机密性和完整性的细粒度密码学操作原语,当操作系统内核或用户态应用程序进程需要对敏感数据进行操作时,需要使用扩展后的密码学操作原语对敏感数据进行加密或解密操作,加密或解密时需要提供额外的密钥和调柄信息,以及数据保护范围的选择信息。
[0006]作为进一步地改进,当操作系统内核或用户态应用程序进程需要将敏感数据存储到内存中时,使用扩展后的密码学操作指令对敏感数据进行加密实现随机化效果;当操作系统内核或应用程序进程需要使用敏感数据时,使用扩展后的密码学操作指令对敏感数据进行解密实现去随机化效果,本专利技术的核心保护功能是通过密码学操作来进行加解密完成的。
[0007]作为进一步地改进,本专利技术所述的敏感数据机密性和完整性密码学保护扩展指令包含:对全部内容进行加密的加密指令,对部分内容进行加密并填充完整性校验信息的加密指令,对全部内容进行解密的解密指令,对全部内容进行解密并校验部分内容完整性的解密指令,对全部内容进行解密并检验部分内容完整性后进行符号扩展的解密指令,对全部指令类型进行了介绍,除了单纯加解密的指令(用于保护数据的机密性),还在加解密的基础上增加了完整性校验信息用于保护数据的完整性和机密性。
[0008]作为进一步地改进,本专利技术所述的敏感数据机密性和完整性密码学保护扩展指令接收操作内容、密钥、调柄以及选择范围的起始和结束字节五个输入,产生加解密后的结果这一个输出。
[0009]作为进一步地改进,本专利技术所述的密钥应存储在包括内核态在内的更高特权级可访问的隔离的特殊寄存器中,当同时保护操作系统内核和用户态应用程序时应添加额外的随机数偏移,确保跨特权态时没有信息泄露;加解密的过程中需要密钥,这里要求密钥不应被泄露。
[0010]作为进一步地改进,本专利技术所述的敏感数据机密性和完整性密码学保护扩展指令对敏感内容进行加密或解密时选用轻量级对称密码算法,包括:异或运算、轻量级分组密码、轻量级可调分组密码,选用轻量级的密码算法是为了保证不影响性能。
[0011]作为进一步地改进,本专利技术所述的敏感数据包括操作系统内核和用户态程序的返回地址、函数指针等控制流数据,敏感操作的中间结果、相关密钥,影响程序分支决策的状态变量等非控制流数据。
[0012]作为进一步地改进,本专利技术所述的调柄根据使用场景的不同,使用固定常量或随机数、时间戳、变量地址信息,以提供普通随机化保护、结合时间状态的随机化保护、结合空间状态的随机化保护,通过使用调柄,可以抵御替换攻击。
[0013]作为进一步地改进,本专利技术所述的数据保护范围的选择信息根据范围长度的不同实现不同效果的保护,当选择范围小于机器字长时能够提供完整性和机密性保护,等于机器字长时至少能够提供机密性保护,这是机密性保护和完整性保护的开启条件。
[0014]本专利技术的有益效果如下:
[0015]本专利技术公开一种细粒度的运行时敏感数据随机化保护方法能够为操作系统内核和用户态应用程序提供细粒度的运行时数据随机化保护。本专利技术通过在指令层面引入密码学操作的基本原语,同时结合扩展指令中灵活的保护范围选择功能,可以高效地对任意长度的敏感数据进行密码学操作。由于攻击者无法直接对随机化后的数据进行篡改,因此使用本专利技术所提出的扩展指令集进行保护的程序能够抵御各类内存相关的软件攻击;其能够根据输入地选择范围的不同,灵活地提供完整性和机密性保护,同时根据提供调柄的不同,灵活地提供时间或空间上的内存安全保护,填补了目前计算机体系结构中针对细粒度的运行时敏感数据保护原语的设计空缺。
具体实施方式
[0016]本专利技术公开了一种细粒度的运行时敏感数据随机化保护方法,通过扩展指令集的方式在指令层面提供保护敏感数据机密性和完整性的细粒度密码学操作原语,当操作系统内核或用户态应用程序进程需要对敏感数据进行操作时,需要使用扩展后的密码学操作原语对敏感数据进行加密或解密操作,加密或解密时需要提供额外的调柄信息,以及数据保护范围的选择信息。
[0017]当操作系统内核或用户态应用程序进程需要将敏感数据存储到内存中时,使用扩展后的密码学操作指令对敏感数据进行加密实现随机化效果;当操作系统内核或应用程序进程需要使用敏感数据时,使用扩展后的密码学操作指令对敏感数据进行解密实现去随机化效果。
[0018]敏感数据机密性和完整性密码学操作指令扩展包含:对全部内容进行加密的加密指令,对部分内容进行加密并填充完整性校验信息的加密指令,对全部内容进行解密的解密指令,对全部内容进行解密并校验部分内容完整性的解密指令,对全部内容进行解密并
检验部分内容完整性后进行符号扩展的解密指令;敏感数据机密性和完整性密码学操作指令扩展接收操作内容、密钥、调柄以及选择范围的起始和结束字节五个输入;密钥应存储在包括内核态在内的更高特权级可访问的隔离的特殊寄存器中,当同时保护操作系统内核和用户态应用程序时应添加额外的随机数偏移,确保跨特权态时没有信息泄露。
[0019]敏感数据机密性和完整性密码学操作指令扩展对敏感内容进行加密或解密时选用轻量级对称密码算法,包括但不限于:异或运算、轻量级分组密码(PRESENT、LBlock)、轻量级可调分组密码(QARMA、CRAFT、SKINNY、Lilliput)。在符合安全性要求的前提下,应优先选择延时小、易于硬件实现的算法。
[0020]敏感数据包括操作系统内核和用户态程序的返回地址、函数指针等控制流数据、敏感的中间结果(密码学库运算过程中生成的中间变量)和相关密钥、状态变量(影响分支决策的非控制流数据)。
[0021]调柄根据使用场景的不同,可以使用固定常量或随机数、时间戳、变量地址信息,以提供普通随机化保护、结合时间状态的随机化保护、结合空间状态的随机化保护;另外,保护选择范围根据范围长度的不同可以实现不同效果的保护,当选择本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种细粒度的运行时敏感数据随机化保护方法,其特征在于,通过扩展指令集的方式在指令层面添加敏感数据机密性和完整性密码学保护扩展指令来提供保护敏感数据机密性和完整性的细粒度密码学操作原语,当操作系统内核或用户态应用程序进程需要对敏感数据进行操作时,需要使用扩展后的密码学操作原语对敏感数据进行加密或解密操作,加密或解密时需要提供额外的密钥和调柄信息,以及数据保护范围的选择信息。2.根据权利要求1所述的细粒度的运行时敏感数据随机化保护方法,其特征在于,当操作系统内核或用户态应用程序进程需要将敏感数据存储到内存中时,使用扩展后的密码学操作指令对敏感数据进行加密实现随机化效果;当操作系统内核或应用程序进程需要使用敏感数据时,使用扩展后的密码学操作指令对敏感数据进行解密实现去随机化效果。3.根据权利要求1所述的细粒度的运行时敏感数据随机化保护方法,其特征在于,所述的敏感数据机密性和完整性密码学保护扩展指令包含:对全部内容进行加密的加密指令,对部分内容进行加密并填充完整性校验信息的加密指令,对全部内容进行解密的解密指令,对全部内容进行解密并校验部分内容完整性的解密指令,对全部内容进行解密并检验部分内容完整性后进行符号扩展的解密指令。4.根据权利要求1或2或3所述的细粒度的运行时敏感数据随机化保护方法,其特征在于,所述的敏感数据机密性和完整性密码学保护扩展指令接收操作内容、密钥、调柄以及选择范围的起始和结...

【专利技术属性】
技术研发人员:周亚金徐金焱苑子琦林浩然申文博常瑞吴磊任奎
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1