[发明专利]基于TEE实现代码加固的方法及装置在审

专利信息
申请号: 202010580295.X 申请日: 2020-06-23
公开(公告)号: CN111737659A 公开(公告)日: 2020-10-02
发明(设计)人: 严兴潮 申请(专利权)人: 杭州海康威视数字技术股份有限公司
主分类号: G06F21/12 分类号: G06F21/12;G06F21/52
代理公司: 北京德琦知识产权代理有限公司 11018 代理人: 牛峥;王丽琴
地址: 310051 浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 tee 实现 代码 加固 方法 装置
【权利要求书】:

1.一种基于可信执行环境TEE实现代码加固的方法,其特征在于,所述方法包括:

在多功能运行环境REE中运行二进制程序,运行到其中的前桩代码时,通过识别后桩代码,确定位于前桩代码和后桩代码之间、且要在TEE处理的代码段;

将所述代码段发送到TEE中解密后,将从TEE中接收的解密后的代码段覆盖二进制程序中的所述代码段;

在REE中继续运行所述代码段,运行到所述代码段的后桩代码时,通过识别所述代码段的前桩代码确定所述代码段;

将所述代码段发送到TEE中加密后,将从TEE接收的加密后的代码段覆盖二进制程序中的所述代码段。

2.如权利要求1所述的方法,其特征在于,所述代码段中还包括填充代码,所述填充代码使得所述代码段的字节数满足,在TEE处理时所采用的加解密算法字节对齐需求;

将所述代码段发送到TEE中解密还包括:

对所述代码段中的填充代码与所述代码段中的要处理代码一起,进行解密操作;

将所述代码段发送到TEE中加密还包括:

对所述代码段中的填充代码与所述代码段中的要处理代码一起,进行加密操作。

3.如权利要求1所述的方法,其特征在于,所述获取所述代码段之前,还包括:

触发所述二进制程序的运行中断;

所述覆盖二进制程序中的所述代码段之后,还包括:

结束中断,继续运行所述二进制程序。

4.如权利要求1所述的方法,其特征在于,将所述代码段发送到TEE中之前,还包括:

REE与TEE之间在内核空间中建立通信;

REE通过fast call方式与TEE之间进行交互及应答,通过在内核空间设置的共享寄存器传递所述代码段。

5.一种基于TEE实现代码加固的方法,其特征在于,所述方法包括:

确定源代码中要在TEE中处理的代码段,在所述代码段的前端、填充位置处及后端分别插入对应前桩代码的断点指令、对应填充代码的断点指令和对应后桩代码的断点指令,编译得到第一二进制程序;

从所述第一二进制程序中扫描得到所述断点指令,将所述断点指令分别替换为对应的前桩代码、对应的填充代码及对应的后桩代码;

对所述代码段进行可在TEE中处理的加密后,得到第二二进制程序。

6.如权利要求5所述的方法,其特征在于,所述填充代码使得所述代码段的字节数满足,在TEE处理时所采用的加解密算法字节对齐需求。

7.如权利要求1所述的方法,其特征在于,所述断点指令由断点标识进行标识,且包括所插入的前桩代码、填充代码或后桩代码的断点序列号,所述同一代码段的前桩代码及后桩代码的断点序列号相同,且按照所述代码段所在第一二进制程序的顺序进行排列,所述填充代码的断点序列号设置为固定值;

所述断点指令分别替换为对应的前桩代码、对应的填充代码及对应的后桩代码包括:

将所述断点指令中的断点序列号填入对应的前桩代码、填充代码或后桩代码中的第2~3字节中,在对应的前桩代码、填充代码或后桩代码的第1字节中设置前桩代码标识、填充代码标识或后桩代码标识。

8.一种基于TEE实现代码加固的方法,其特征在于,在一待运行的二进制程序中,设置要在TEE中处理的代码段,所述代码段包括:前桩代码、TEE可处理代码、填充代码及后桩代码,其中,

所述前桩代码设置在所述代码段的前端,标识所述代码段的开始;

所述填充代码设置在所述代码段中,使得所述代码段的字节数满足在TEE处理时所采用的加解密算法字节对齐需求;

所述后桩代码设置在所述代码段的后端,标识所述代码段的结束;

在REE中运行所述二进制程序。

9.如权利要求8所述的方法,其特征在于,所述二进制程序为加密可执行与可链接格式ELF文件。

10.一种基于TEE实现代码加固的装置,其特征在于,包括:在REE的应用层设置的运行模块、在REE的内核空间设置的核心模块及TEE交互模块,以及在TEE的内核空间设置的加解密模块,其中,

所述运行模块,用于在REE中运行二进制程序,运行到其中的前桩代码时,进入到所述核心模块处理;在结束所述第一中断时,继续运行所述二进制程序中的所述代码段;运行到所述代码段的后桩代码时,进入到所述核心模块处理;在结束所述第二中断时,继续运行所述二进制程序;

所述核心模块,用于触发第一中断,通过识别的后桩代码,确定位于前桩代码和后桩代码之间的、且要在TEE处理的所述代码段,将所述代码段发送到所述TEE交互模块;将从所述TEE交互模块接收的解密后的代码段覆盖运行中的所述代码段,结束所述第一中断;触发第二中断,通过识别所述代码段的前桩代码确定所述代码段,将所述代码段发送到所述TEE交互模块中;将从所述TEE交互模块接收的加密后的代码段覆盖已经运行完的所述代码段,结束所述第二中断;

所述TEE交互模块,用于在第一中断下,将所述代码段发送给所述加解密模块;将由所述加解密模块返回的解密后的代码段发送给所述核心模块;在第二中断下,将所述代码段发送给所述加解密模块;将由所述加解密模块返回的加密后的代码段发送给所述核心模块;

所述加解密模块,用于在第一中断下,将所述代码段进行解密后,返回给所述TEE交互模块;在第二中断下,将所述代码段进行加密后,返回给所述TEE交互模块。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州海康威视数字技术股份有限公司,未经杭州海康威视数字技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010580295.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top