[发明专利]面向Intel SGX的程序自动化移植系统在审
申请号: | 202010065323.4 | 申请日: | 2020-01-20 |
公开(公告)号: | CN113138797A | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 张媛媛;王舒然;冯润涵 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F8/76 | 分类号: | G06F8/76 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 intel sgx 程序 自动化 移植 系统 | ||
1.一种面向Intel SGX的程序自动化移植系统,其特征在于,包括:标记模块、分析模块和代码生成模块,其中:标记模块与分析模块相连并传输敏感变量相关信息,分析模块与代码生成模块相连并传输敏感变量相关的函数信息,代码生成模块根据原程序代码以及敏感函数信息,生成可信代码和不可信代码;
所述的标记模块包括:用于向配置文件中写明敏感变量的名称、敏感变量所在的源代码文件名以及敏感变量在文件中对应的行数标记单元。
2.根据权利要求1所述的面向Intel SGX的程序自动化移植系统,其特征是,所述的分析模块通过静态程序分析方法生成源代码的程序依赖图、通过前向切片技术和后向切片技术生成切片代码集,再从切片代码集中提取出切片所在的函数名,去掉重复的函数名后得到敏感函数集,该分析模块包括:程序依赖图生成单元、前向切片和后向切片单元以及整合单元,其中:程序依赖图生成单元与前向切片单元以及后向切片单元相连并传输程序依赖图,程序依赖图包括程序控制依赖关系和程序数据依赖关系,前向切片单元与整合模块相连并传输前向切片代码,后向切片单元与整合模块相连并传输后向切片代码,整合单元将切片代码进行整合,从中提取出敏感函数集。
3.根据权利要求1所述的面向Intel SGX的程序自动化移植系统,其特征是,所述的代码生成模块基于敏感函数集列表将源代码切分成可信部分,即Enclave源代码和不可信部分,即外部源代码,即:基于敏感函数集对源代码做基本的切分;基于源代码中的函数定义识别出可信部分与不可信部分的调用接口,即Ecall/Ocall函数;处理敏感函数中系统调用相关API的使用;生成Intel SGX SDK所需的调用接口说明,即EDL文件;该代码生成模块包括:基本代码切分单元、调用接口识别单元、系统调用API处理单元与EDL生成单元,其中:基本代码切分单元的输入为源代码以及敏感函数集,源代码中的敏感函数由基本代码切分单元切分到可信部分,即Enclave源代码,而其余函数则切分到不可信部分,即外部源代码,基本代码切分单元的输出为被切分后的源代码,由Enclave源代码与外部源代码共同组成,调用接口识别单元和系统调用API处理单元与代码切分单元直接相连,调用接口识别单元和系统调用API处理单元的输入即代码切分单元的输出,调用接口识别单元和系统调用API处理单元在被切分后的源代码基础上,进一步分析可信部分与不可信部分之间的调用接口,即Ecall/Ocall函数,对源代码做相应的修改,同时输出Ecall/Ocall函数列表,EDL生成单元与调用接口识别单元以及系统调用API处理单元直接相连,其输入为Ecall/Ocall函数列表,并以Intel规定的EDL,即Enclave Definition Language格式生成接口说明,即EDL文件。
4.根据上述任一权利要求所述系统的面向Intel SGX的程序自动化移植方法,其特征在于,包括:
步骤1.手动在原始普通版本C语言代码中标记出与安全或隐私相关的敏感变量;
步骤2.对原始普通版本C语言代码进行程序分析,生成原始普通版本C语言代码的程序依赖图,根据程序依赖图,对标记的敏感变量进行前向切片和后向切片,得到包含敏感数据及语句的函数名,得到一个敏感函数集;
步骤3.将源代码切分成可信部分与不可信部分,基于敏感函数集,先对源代码做基本的切分,在此基础上根据源代码,将不敏感函数所调用的敏感函数定义OCall函数,将敏感函数调用的不敏感函数定义为ECall函数,通过对抽象语法树AST进行解析,获取函数声明的原型,此外,对Enclave函数相关系统调用封装为OCall函数,从而自动生成EDL文件。
5.根据权利要求4所述的方法,其特征是,所述的步骤2,包括:
步骤201.利用静态程序分析方法生成源代码的程序依赖图;
步骤202.根据敏感变量,对程序依赖图进行前向切片和后向切片;
步骤203.提取切片代码片段,从中提取函数名,去重整合函数名。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010065323.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电子设备及食谱的推荐方法和装置
- 下一篇:区块链记账方法、电子设备及存储介质