【技术实现步骤摘要】
基于TEE实现代码加固的方法及装置
本专利技术涉及数据的加解密
,特别涉及一种基于可信执行环境(TEE,Trustedexecutionenvironment)实现代码加固的方法及装置。
技术介绍
随着移动设备的发展,移动设备的功能越来越强大,移动设备可以存储用户的资产,处理支付等操作。目前移动设备的系统运行环境称为多功能运行环境(REE,RichExecutionEnvironment),在REE中支持基于安卓(Android)、IOS和Linux的操作系统,REE功能强大,开放和扩展性好,可以给移动设备的应用层提供设备的所有功能,比如摄像头,触摸屏等,实现用户现在看到的各种各样的应用。在REE中的操作系统能够获得所承载应用所有的数据,但是很难验证该操作系统是否被篡改,还会受到攻击和出现漏洞(bug),对承载的数据产生安全隐患。因此,就需要在移动设备的中央处理器(CPU)的设定区域设置TEE,该TEE与REE隔离,TEE可获取REE中的数据进行对应的安全处理,而REE不能获取TEE的数据,在TEE下为移动终端 ...
【技术保护点】
1.一种基于可信执行环境TEE实现代码加固的方法,其特征在于,所述方法包括:/n在多功能运行环境REE中运行二进制程序,运行到其中的前桩代码时,通过识别后桩代码,确定位于前桩代码和后桩代码之间、且要在TEE处理的代码段;/n将所述代码段发送到TEE中解密后,将从TEE中接收的解密后的代码段覆盖二进制程序中的所述代码段;/n在REE中继续运行所述代码段,运行到所述代码段的后桩代码时,通过识别所述代码段的前桩代码确定所述代码段;/n将所述代码段发送到TEE中加密后,将从TEE接收的加密后的代码段覆盖二进制程序中的所述代码段。/n
【技术特征摘要】
1.一种基于可信执行环境TEE实现代码加固的方法,其特征在于,所述方法包括:
在多功能运行环境REE中运行二进制程序,运行到其中的前桩代码时,通过识别后桩代码,确定位于前桩代码和后桩代码之间、且要在TEE处理的代码段;
将所述代码段发送到TEE中解密后,将从TEE中接收的解密后的代码段覆盖二进制程序中的所述代码段;
在REE中继续运行所述代码段,运行到所述代码段的后桩代码时,通过识别所述代码段的前桩代码确定所述代码段;
将所述代码段发送到TEE中加密后,将从TEE接收的加密后的代码段覆盖二进制程序中的所述代码段。
2.如权利要求1所述的方法,其特征在于,所述代码段中还包括填充代码,所述填充代码使得所述代码段的字节数满足,在TEE处理时所采用的加解密算法字节对齐需求;
将所述代码段发送到TEE中解密还包括:
对所述代码段中的填充代码与所述代码段中的要处理代码一起,进行解密操作;
将所述代码段发送到TEE中加密还包括:
对所述代码段中的填充代码与所述代码段中的要处理代码一起,进行加密操作。
3.如权利要求1所述的方法,其特征在于,所述获取所述代码段之前,还包括:
触发所述二进制程序的运行中断;
所述覆盖二进制程序中的所述代码段之后,还包括:
结束中断,继续运行所述二进制程序。
4.如权利要求1所述的方法,其特征在于,将所述代码段发送到TEE中之前,还包括:
REE与TEE之间在内核空间中建立通信;
REE通过fastcall方式与TEE之间进行交互及应答,通过在内核空间设置的共享寄存器传递所述代码段。
5.一种基于TEE实现代码加固的方法,其特征在于,所述方法包括:
确定源代码中要在TEE中处理的代码段,在所述代码段的前端、填充位置处及后端分别插入对应前桩代码的断点指令、对应填充代码的断点指令和对应后桩代码的断点指令,编译得到第一二进制程序;
从所述第一二进制程序中扫描得到所述断点指令,将所述断点指令分别替换为对应的前桩代码、对应的填充代码及对应的后桩代码;
对所述代码段进行可在TEE中处理的加密后,得到第二二进制程序。
6.如权利要求5所述的方法,其特征在于,所述填充代码使得所述代码段的字节数满足,在TEE处理时所采用的加解密算法字节对齐需求。
7.如权利要求1所述的方法,其特征在于,所述断点指令由断点标识进行标识,且包括所插入的前桩代码、填充代码或后桩代码的断点序列号,所述同一代码段的前桩代码及后桩代码的断...
【专利技术属性】
技术研发人员:严兴潮,
申请(专利权)人:杭州海康威视数字技术股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。