[发明专利]程序控制流隐藏方法、系统及应用有效
申请号: | 202011295175.1 | 申请日: | 2020-11-18 |
公开(公告)号: | CN112527307B | 公开(公告)日: | 2023-06-20 |
发明(设计)人: | 王永智;邹宇;苟旭春 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F21/57 |
代理公司: | 西安长和专利代理有限公司 61227 | 代理人: | 何畏 |
地址: | 710071 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序控制 隐藏 方法 系统 应用 | ||
本发明属于控制流混淆技术领域,公开了一种程序控制流隐藏方法、系统及应用,将出现在原程序分支语句中的变量标记为敏感变量;对包括所述敏感变量的语句进行转换以隐藏所述敏感变量,获得转换后的程序和控制流矩阵;将转换后的程序和控制流矩阵发送至远程计算单元,所述转换后的程序存储在所述远程计算单元的不可信环境中,控制流矩阵经本地AES加密后存储在所述远程计算单元的可信执行环境(TEE,Trusted Execution Environment)中;基于控制流矩阵和可信环境中对于敏感变量的内存管理模型,在所述远程计算单元中执行所述转换后的程序。本发明将程序中所有拥有敏感变量的语句经过转换程序转换,并执行移动到不透明且可信的硬件执行环境中,保证程序的高机密性。
技术领域
本发明属于控制流混淆技术领域,尤其涉及一种程序控制流隐藏方法、系 统及应用。
背景技术
可信执行环境(TEE)作为一种新的处理器安全架构被云提供商和开发者广 泛应用。TEE在硬件上划分了一块可信区域,保证了可信区域外部的代码(包 括操作系统和hypervisor)不会侵犯可信区域内部运行的程序的数据完整性和执 行机密性。基于TEE提供的远程协议,使可信区域中的程序不会被攻击者恶意 篡改,从而保证了完整性。目前支持TEE的硬件实现有AMD的PSP(Platform Security Processor)处理器,ARM TrustZone技术,Intel SGX Software Guard Extensions(Intel SGX)等。
当前的云服务要求用户在云供应商提供的服务器上执行他们的程序。由于 程序不再处于用户控制的环境中,软件可能会受到各种攻击,因此需要保护。 对于云用户,保护控制流机密性与保护数据机密性同等重要。原因是一个程序 的控制流可能反映了一种属于用户知识产权的独特算法。此外,它还可能包含 执行逻辑,这些逻辑一旦被攻击者发现,就可能间接地危害正在处理的数据的 安全性。因此,需要一种有效的方法来保护这种设置下的控制流机密性。
现有的控制流混淆方法存在安全性低、通用性差或开销大的问题。例如, Xu等人提出了一种构造符号不透明谓词的技术,但这种方法无法针对攻击者对 程序的动态分析;Sharif等人将分支语句中的条件表达式转换为加密形式,但却 只能保护相等谓词和不相等谓词,从而失去了通用性和一般性;Lan等人提出用 lambda演算模拟来转换条件指令,它可以抵抗基于符号执行的逆向工程攻击, 然而,他们的实验结果显示,保护了30%的条件语句就会导致68到248倍的时 间开销;CFHider提出了一种使用Intel Software GuardExtensions(SGX)的控制流 混淆解决方案,它将分支语句的求值表达式隐藏到一个SGXEnclave中,并且 只返回来自SGX Enclave的求值结果,他们的工作证明,通过创建模糊不变量, 攻击者无法推导出隐藏表达式。但是CFHider中引入的混淆不变量具有唯一的 代码模式,攻击者可以很容易地识别它,他们的工作没有讨论如何创建无模式 模糊不变量,所以安全性存在一定的问题。Glamdring和Ryoan专注于保护远程 程序中的数据机密性,但没有解决程序控制流的机密性问题。许多解决方案关 注于保护特定系统的安全性,如可堆叠文件系统(NeXUS)、Python版本的Spark (SGX-PySpark)、数据库系统(EnclaveDB)、ApacheZooKeeper、C++版本的 MapReduce(VC3)和C程序(Glamdring)等,但他们又缺乏通用性。
通过上述分析,现有技术存在的问题及缺陷为:现有的控制流混淆方法存 在安全性低、通用性差或开销大。
解决以上问题及缺陷的难度为:1)更安全通用的控制流隐藏算法。2)可 支持大多数编程语言。3)可证明的安全算法。
解决以上问题及缺陷的意义为:1)解决了CFHider混淆不变量的问题,又 进一步扩大了隐藏范围,保证了安全性。2)不止应用于c/c++语言,能通过JNI 的方式应用于更多语言的程序,为方案带来通用性。3)证实此发明方案的安全 性。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011295175.1/2.html,转载请声明来源钻瓜专利网。