本发明涉及计算机,尤其涉及一种安全访问方法。
背景技术:
1、webassembly(简称wasm)属于虚拟指令集体系架构。基于webassembly字节码技术,可以使用多种编程语言编写应用程序,并将编写出的应用程序转换后生成webassembly字节码,由虚拟机解释执行webassembly字节码,从而使得应用程序正常运行。
2、在实现本申请的过程中,发明人发现上述技术至少存在以下问题:当webassembly字节码应用于资源受限设备时,其可执行文件、指令集都需要结合设备资源,进行优化;可执行文件的段、函数表示等也包括在内。优化可以减少文件占用空间,提高执行性能,但是设备所面向的应用场景,却需要更强大的安全性保证,因此不管是文件内容、还是字节码的执行,都需要安全策略的保证。安全策略应涵盖字节码执行时的内存访问、函数调用、局部变量和参数访问以及条件分支语句执行等。
技术实现思路
1、本发明实施例提供了一种安全访问方法,以实现应用程序在资源受限环境下进行安全的内存访问。
2、根据本发明实施例的一方面,提供了一种安全访问方法,由虚拟机执行,包括:
3、解析目标字节码,确定所述目标字节码的指令类型;所述目标字节码包括:应用模块中的字节码,应用程序中的字节码或者库模块中的字节码;
4、根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查;
5、在安全访问合法性检查通过后,执行所述目标字节码;在安全合法性检查未通过时,禁止执行所述目标字节码,并进行异常提示。
6、根据本发明实施例的另一方面,还提供了一种安全访问装置,配置于虚拟机中,包括:
7、指令类型确定模块,用于解析目标字节码,确定所述目标字节码的指令类型;所述目标字节码包括:应用模块中的字节码,应用程序中的字节码或者库模块中的字节码;
8、合法性检查模块,用于根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查;
9、字节码执行模块,用于在安全访问合法性检查通过后,执行所述目标字节码,以及,在安全合法性检查未通过时,禁止执行所述目标字节码,并进行异常提示。
10、根据本发明实施例的另一方面,还提供了一种电子设备,所述电子设备上安装有操作系统,所述操作系统中执行有虚拟机,所述电子设备包括:
11、至少一个处理器;以及
12、与所述至少一个处理器通信连接的存储器;其中,
13、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本发明实施例任一项所述的安全访问方法。
14、根据本发明实施例的另一方面,还提供了一种终端,包括如本发明实施例任一项所述的电子设备。
15、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如本发明实施例任一项所述的安全访问方法。
16、根据本发明实施例的另一方面,还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现如本发明实施例任一项所述的安全访问方法。
17、本发明实施例的技术方案,通过虚拟机解析目标字节码,确定所述目标字节码的指令类型;之后根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查;在安全访问合法性检查通过后,执行所述目标字节码的实现方式,虚拟机可以在执行每条字节码之前,执行针对该字节码的安全访问合法性的检查,在虚拟机运行过程中,确保每项数据的访问以及每个函数的调用都是安全的,本发明实施例创造性的提出了一种应用程序在资源受限环境下进行安全内存访问的新方式,有效提高了虚拟机的运行可靠性。
18、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种安全访问方法,其特征在于,由虚拟机执行,包括:
2.根据权利要求1所述的方法,其特征在于,解析目标字节码,包括:
3.根据权利要求2所述的方法,其特征在于,根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查,包括:
4.根据权利要求3所述的方法,其特征在于,根据属性信息和目标字节码所属的目标模块,执行内存访问合法性检查,包括:
5.根据权利要求4所述的方法,其特征在于,根据属性信息,确定目标内存数据的数据类型,包括:
6.根据权利要求1或2所述的方法,其特征在于,根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查,包括:
7.根据权利要求2所述的方法,其特征在于,根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查,包括:
8.根据权利要求7所述的方法,其特征在于,根据所述目标函数的函数索引和所述目标字节码传入的参数个数,执行函数调用的合法性检查,包括:
9.根据权利要求1或2所述的方法,其特征在于,根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查,包括:
10.根据权利要求1或2所述的方法,其特征在于,根据所述指令类型,获取匹配的操作数,并根据所述操作数,执行与所述指令类型匹配的安全访问合法性检查,包括: