一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用程序执行方法、装置、设备及存储介质与流程

2022-11-19 09:56:07 来源:中国专利 TAG:
1.本技术涉及信息安全领域,尤其涉及一种应用程序执行方法、装置、设备及存储介质。
背景技术
::2.sgx(softwareguardextension,软件防护扩展)是依赖硬件隔离技术,对应用程序开发的要求比较多,并且要将应用程序手动分为trust(可信)和untrust(不可信)部分。因此,开发一个全新的sgx应用程序需要非常高的成本。3.另外,对于一些类似graphene的库操作系统(libos),可以将应用程序不经修改地运行在飞地中,是对开发者和使用者更加友好的做法。由于sgx本身无法完成os(operatingsystem,操作系统)真正能完成的任务,例如文件读写、网络输入输出、内存管理等请求,libos必须将来自应用程序的这部分posix(portableoperatingsysteminterface,可移植操作系统接口)请求转发给底层os。鉴于iago接口攻击的存在,libos必须实现一层shim。然而,posix接口数量众多且非常复杂,很难保证libosshim检验的完备性。技术实现要素:4.本技术提供了一种应用程序执行方法、装置、设备及存储介质,用以解决sgx应用程序无法同时保证开发效率高以及安全性的问题。5.第一方面,本技术实施例提供了一种应用程序执行方法,应用于服务器,所述服务器中设置有软件防护扩展,所述应用程序执行方法包括:6.接收客户端发送的待执行的应用程序;7.重定位所述待执行的应用程序中的入口地址,生成目标应用程序,其中,所述目标应用程序能够在所述服务器中运行;8.运行所述目标应用程序,并生成运算结果;9.发送所述运算结果至所述客户端。10.可选地,所述接收客户端发送的待执行的应用程序之后,所述重定位所述待执行的应用程序中的入口地址之前,所述方法还包括:11.通过所述服务器的硬件生成软件防护扩展报告,所述软件防护扩展报告中包括所述服务器的开发者信息以及所述待执行的应用程序所调用服务的摘要信息中的至少一个;12.发送所述软件防护扩展报告至所述客户端,以通过所述客户端验证所述软件防护扩展报告是有效的。13.可选地,所述发送所述软件防护扩展报告至所述客户端之前,所述方法还包括:14.通过对协商公钥使用密钥协商算法,生成共享信息;15.将所述共享信息附加至所述软件防护扩展报告中;16.所述将所述共享信息附加至所述软件防护扩展报告中之后,所述方法还包括:17.接收所述客户端发送的签名者的私钥;18.通过对所述签名者的私钥和所述运算结果使用签名算法,生成数字签名,将所述数字签名发送至所述客户端。19.第二方面,本技术实施例提供了一种应用程序执行方法,应用于客户端,包括:20.获取待执行的应用程序;21.发送所述待执行的应用程序至服务器,其中,所述服务器中设置有软件防护扩展;22.接收所述服务器发送的针对所述待执行的应用程序的运算结果。23.可选地,所述发送所述待执行的应用程序至服务器之后,所述接收所述服务器发送的针对所述待执行的应用程序的运算结果之前,所述方法还包括:24.接收服务器发送的软件防护扩展报告,所述软件防护扩展报告中包括所述服务器的开发者信息以及所述待执行的应用程序所调用服务的摘要信息中的至少一个;25.验证所述软件防护扩展报告是有效的。26.可选地,所述验证所述软件防护扩展报告是有效的之后,所述方法还包括:27.获取所述软件防护扩展报告中携带的共享信息;28.根据所述共享信息,和所述服务器之间建立加密连接,并发送签名者的私钥至所述服务器;29.接收所述服务器发送的数字签名;30.根据所述数字签名、所述运算结果以及所述签名者的私钥对应的公钥,对所述数字签名进行验证;31.在对所述数字签名验证成功的情况下,存储所述运算结果。32.第三方面,本技术实施例提供了一种应用程序执行装置,配置于服务器,所述服务器中设置有软件防护扩展,所述应用程序执行装置包括:33.第一接收模块,用于接收客户端发送的待执行的应用程序;34.重定位模块,用于重定位所述待执行的应用程序中的入口地址,生成目标应用程序,其中,所述目标应用程序能够在所述服务器中运行;35.运行模块,用于运行所述目标应用程序,并生成运算结果;36.第一发送模块,用于发送所述运算结果至所述客户端。37.第四方面,本技术实施例提供了一种应用程序执行装置,配置于客户端,包括:38.获取模块,用于获取待执行的应用程序;39.第二发送模块,用于发送所述待执行的应用程序至服务器,其中,所述服务器中设置有软件防护扩展;40.第二接收模块,用于接收所述服务器发送的针对所述待执行的应用程序的运算结果。41.第五方面,本技术实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;42.所述存储器,用于存储计算机程序;43.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的应用程序执行方法,或者,实现第二方面所述的应用程序执行方法。44.第六方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的应用程序执行方法,或者,实现第二方面所述的应用程序执行方法。45.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例中,客户端获取待执行的应用程序并发送待执行的应用程序至服务器,服务器中设置有软件防护扩展,服务器在接收客户端发送的待执行的应用程序之后,重定位待执行的应用程序中的入口地址,生成目标应用程序,其中,目标应用程序能够在服务器中运行,运行目标应用程序,并生成运算结果,发送运算结果至客户端。用户无需手动将应用程序划分为可信部分和不可信部分,同时又不需要像libos必须实现一层shim检验其完备性,直接通过客户端将待执行的应用程序发送至服务器即可,由服务器重定位待执行的应用程序中的入口地址,生成目标应用程序,由于服务器中设置有软件防护扩展,能够确保目标应用程序运行的安全性,客户端只需要发送待执行的应用程序至服务器以及接收服务器发送的运算结果即可,具体运算过程均在服务器内部实现,解决了sgx应用程序无法同时保证开发效率高以及安全性的问题。附图说明46.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。48.图1为本技术实施例中应用于服务器的应用程序执行的方法流程示意图;49.图2为本技术实施例中应用于客户端的应用程序执行的方法流程示意图;50.图3为本技术实施例中应用程序执行的方法流程示意图;51.图4为本技术一个具体实施例中应用程序执行的方法流程示意图;52.图5为本技术实施例中应用程序执行系统的架构示意图;53.图6为本技术一个具体实施例中应用程序执行系统的架构示意图;54.图7为本技术实施例中配置于服务器的应用程序执行装置的结构示意图;55.图8为本技术实施例中配置于客户端的应用程序执行装置的结构示意图;56.图9为本技术实施例中电子设备的结构示意图。具体实施方式57.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。58.本技术实施例中,提供了一种应用程序执行方法,由服务器和客户端配合实现应用程序执行,其中,服务器中设置有软件防护扩展,以下分别从服务器和客户端两个角度对应用程序执行的过程进行解释说明。59.本技术实施例中,如图1所示,应用于服务器的应用程序执行的方法流程主要包括:60.步骤101,接收客户端发送的待执行的应用程序。61.其中,待执行的应用程序是可信的,并且能够进行重定位。用户只需要编写核心的可信部分的应用程序即可,将待执行的应用程序通过客户端发送至服务器。而不可信部分的应用程序,如协助模块、系统调用模块,都不需要用户去开发,由服务器提供。用户无需手动将应用程序划分为可信部分和不可信部分,同时又不需要像libos必须实现一层shim检验其完备性。62.步骤102,重定位待执行的应用程序中的入口地址,生成目标应用程序,其中,目标应用程序能够在服务器中运行。63.重定位待执行的应用程序中的入口地址,生成目标应用程序,使目标应用程序能够在服务器中软件防护扩展形成的可信执行环境中运行,确保目标应用程序运行的安全性。64.步骤103,运行目标应用程序,并生成运算结果。65.步骤104,发送运算结果至客户端。66.一个具体实施例中,接收客户端发送的待执行的应用程序之后,重定位待执行的应用程序中的入口地址之前,应用于服务器的应用程序执行方法还包括:通过服务器的硬件生成软件防护扩展报告,软件防护扩展报告中包括服务器的开发者信息以及待执行的应用程序所调用服务的摘要信息中的至少一个;发送软件防护扩展报告至客户端,以通过客户端验证软件防护扩展报告是有效的。67.通过发送软件防护扩展报告至客户端,通过客户端验证软件防护扩展报告是有效的,能够确保服务器是可信的,增加验证,能够进一步保证待执行的应用程序在服务器中运行的安全性。68.一个具体实施例中,发送软件防护扩展报告至客户端之前,应用于服务器的应用程序执行方法还包括:通过对协商公钥使用密钥协商算法,生成共享信息;将共享信息附加至软件防护扩展报告中。将共享信息附加至软件防护扩展报告中之后,应用于服务器的应用程序执行方法还包括:接收客户端发送的签名者的私钥;通过对签名者的私钥和运算结果使用签名算法,生成数字签名,将数字签名发送至客户端。69.其中,密钥协商算法可以是ecdhe(椭圆曲线密钥交换算法),也可以是其他算法。共享信息可以用share表示。签名者的私钥用d表示。运算结果用m表示,运算结果也是待签名的消息。签名算法可以是ecdsa(椭圆曲线数字签名算法),也可以是其他算法。h()表示消息摘要的密码杂凑函数,通过对签名者的私钥和运算结果使用签名算法,生成数字签名,就是使用ecdsa算法对h(m)进行签名。70.通过将共享信息附加至软件防护扩展报告中,方便在客户端和服务器之间建立加密连接,来传输签名者的私钥,确保签名者的私钥传输过程的安全性。通过对签名者的私钥和运算结果使用签名算法,生成数字签名,将数字签名发送至客户端,能够确保客户端接收到的运算结果是针对客户端发送的待执行的应用程序的运算结果,进一步确保运算结果的安全性。71.本技术实施例中,如图2所示,应用于客户端的应用程序执行的方法流程主要包括:72.步骤201,获取待执行的应用程序。73.步骤202,发送待执行的应用程序至服务器,其中,服务器中设置有软件防护扩展。74.步骤203,接收服务器发送的针对待执行的应用程序的运算结果。75.一个具体实施例中,发送待执行的应用程序至服务器之后,接收服务器发送的针对待执行的应用程序的运算结果之前,应用于客户端的应用程序执行方法还包括:接收服务器发送的软件防护扩展报告,软件防护扩展报告中包括服务器的开发者信息以及待执行的应用程序所调用服务的摘要信息中的至少一个;验证软件防护扩展报告是有效的。76.客户端验证软件防护扩展报告是有效的,可以是客户端验证服务器的开发者信息是可信的,在预设的开发者信息列表中,也可以是客户端验证待执行的应用程序所调用服务的摘要信息是用户需要调用的服务的摘要信息。通过客户端验证软件防护扩展报告是有效的,能够确保服务器是可信的,增加验证,能够进一步保证待执行的应用程序在服务器中运行的安全性。77.一个具体实施例中,验证软件防护扩展报告是有效的之后,应用于客户端的应用程序执行方法还包括:获取软件防护扩展报告中携带的共享信息;根据共享信息,和服务器之间建立加密连接,并发送签名者的私钥至服务器;接收服务器发送的数字签名;根据数字签名、运算结果以及签名者的私钥对应的公钥,对数字签名进行验证;在对数字签名验证成功的情况下,存储运算结果。78.签名者的私钥对应的公钥用pub表示。客户端根据数字签名、运算结果以及签名者的私钥对应的公钥,对数字签名进行验证,在对数字签名验证成功的情况下,存储运算结果,能够确保客户端接收到的运算结果是针对客户端发送的待执行的应用程序的运算结果,进一步确保运算结果的安全性。79.本技术实施例中,如图3所示,应用程序执行的方法流程主要包括:80.步骤301,客户端获取待执行的应用程序。81.步骤302,客户端发送待执行的应用程序至服务器,其中,服务器中设置有软件防护扩展。82.步骤303,服务器接收客户端发送的待执行的应用程序。83.步骤304,服务器重定位待执行的应用程序中的入口地址,生成目标应用程序,其中,目标应用程序能够在服务器中运行。84.步骤305,服务器运行目标应用程序,并生成运算结果。85.步骤306,服务器发送运算结果至客户端。86.步骤307,客户端接收服务器发送的运算结果。87.一个具体实施例中,如图4所示,应用程序执行的方法流程主要包括:88.步骤401,客户端获取待执行的应用程序,并发送待执行的应用程序至服务器。89.其中,服务器中设置有软件防护扩展。90.步骤402,服务器接收客户端发送的待执行的应用程序后,通过服务器的硬件生成软件防护扩展报告,通过对协商公钥使用密钥协商算法,生成共享信息,将共享信息附加至软件防护扩展报告中,发送软件防护扩展报告至客户端。91.步骤403,客户端接收服务器发送的软件防护扩展报告,验证软件防护扩展报告是有效的。92.步骤404,客户端获取软件防护扩展报告中携带的共享信息,根据共享信息,和服务器之间建立加密连接,并发送签名者的私钥至服务器。93.步骤405,服务器接收客户端发送的签名者的私钥后,重定位待执行的应用程序中的入口地址,生成目标应用程序,运行目标应用程序,并生成运算结果。94.步骤406,服务器通过对签名者的私钥和运算结果使用签名算法,生成数字签名,将运算结果和数字签名发送至客户端。95.步骤407,客户端根据数字签名、运算结果以及签名者的私钥对应的公钥,对数字签名进行验证,在对数字签名验证成功的情况下,存储运算结果。96.综上,本技术实施例中,客户端获取待执行的应用程序并发送待执行的应用程序至服务器,服务器中设置有软件防护扩展,服务器在接收客户端发送的待执行的应用程序之后,重定位待执行的应用程序中的入口地址,生成目标应用程序,其中,目标应用程序能够在服务器中运行,运行目标应用程序,并生成运算结果,发送运算结果至客户端。用户无需手动将应用程序划分为可信部分和不可信部分,同时又不需要像libos必须实现一层shim检验其完备性,直接通过客户端将待执行的应用程序发送至服务器即可,由服务器重定位待执行的应用程序中的入口地址,生成目标应用程序,由于服务器中设置有软件防护扩展,能够确保目标应用程序运行的安全性,客户端只需要发送待执行的应用程序至服务器以及接收服务器发送的运算结果即可,具体运算过程均在服务器内部实现,解决了sgx应用程序无法同时保证开发效率高以及安全性的问题。97.基于同一构思,本技术实施例中提供了一种应用程序执行系统,该应用程序执行系统的具体实施可参见方法实施例部分的描述,重复之处不再赘述,其中,服务器中设置有软件防护扩展,如图5所示,该应用程序执行系统主要包括:98.服务器501,用于接收客户端发送的待执行的应用程序,重定位待执行的应用程序中的入口地址,生成目标应用程序,其中,目标应用程序能够在服务器中运行,运行目标应用程序,并生成运算结果,发送运算结果至客户端;99.客户端502,用于获取待执行的应用程序,发送待执行的应用程序至服务器,接收服务器发送的针对待执行的应用程序的运算结果。100.一个具体实施例中,如图6所示,应用程序执行系统主要包括服务器501和客户端502,服务器501中设置有软件防护扩展;101.服务器501包括第一密钥协商模块5011、动态链接模块5012和签名模块5013;102.第一密钥协商模块5011,用于通过对协商公钥使用密钥协商算法,生成共享信息;103.动态链接模块5012,用于重定位待执行的应用程序中的入口地址,生成目标应用程序;104.签名模块5013,用于通过对签名者的私钥和运算结果使用签名算法,生成数字签名;105.客户端502包括第二密钥协商模块5021、远程认证模块5022和验签模块5023;106.远程认证模块5022,用于验证服务器发送的软件防护扩展报告是有效的;107.第二密钥协商模块5021,用于根据共享信息,和服务器的第一密钥协商模块5011之间建立加密连接,并发送签名者的私钥至服务器;108.验签模块5023,用于根据数字签名、运算结果以及签名者的私钥对应的公钥,对数字签名进行验证;109.服务器501,用于接收客户端发送的待执行的应用程序后,通过服务器的硬件生成软件防护扩展报告,调用第一密钥协商模块5011,通过对协商公钥使用密钥协商算法,生成共享信息,将共享信息附加至软件防护扩展报告中,发送软件防护扩展报告至客户端;接收客户端发送的签名者的私钥后,调用动态链接模块5012,重定位待执行的应用程序中的入口地址,生成目标应用程序,运行目标应用程序,并生成运算结果;调用签名模块5013,通过对签名者的私钥和运算结果使用签名算法,生成数字签名,将运算结果和数字签名发送至客户端;110.客户端502,用于获取待执行的应用程序,并发送待执行的应用程序至服务器,接收服务器发送的软件防护扩展报告,调用远程认证模块5022,验证软件防护扩展报告是有效的;获取软件防护扩展报告中携带的共享信息,调用第二密钥协商模块5021,根据共享信息,和服务器的第一密钥协商模块5011之间建立加密连接,并发送签名者的私钥至服务器;调用验签模块5023,根据数字签名、运算结果以及签名者的私钥对应的公钥,对数字签名进行验证,在对数字签名验证成功的情况下,存储运算结果。111.其中,第一密钥协商模块5011输入的是客户端和服务器通信双方的协商公钥,输出的是共享信息share,功能是通过第一密钥协商模块5011和第二密钥协商模块5021建立加密连接。112.动态链接模块5012输入的是待执行的应用程序,待执行的应用程序能够进行重定位,输出的是目标应用程序,目标应用程序能够在服务器中运行,功能是重定位待执行的应用程序中的入口地址,使目标应用程序能够在服务器内部正确运行。113.签名模块5013输入的是签名者的私钥d和运算结果m,输出的是数字签名,功能是使用ecdsa算法对h(m)进行签名。114.第二密钥协商模块5021输入的是客户端和服务器通信双方的协商公钥,输出的是共享信息share,功能是通过第二密钥协商模块5021和第一密钥协商模块5011建立加密连接。115.远程认证模块5022输入的是服务器硬件产生的远程认证attestation,输出的是验证成功或失败,功能是通过ias服务(internet验证服务)验证服务器硬件产生的软件防护扩展报告。116.验签模块5023输入的是数字签名、运算结果m以及签名者的私钥对应的公钥pub,输出的是验证成功或失败,功能是使用ecdsa算法验证数字签名。117.基于同一构思,本技术实施例中提供了一种应用程序执行装置,配置于服务器,服务器中设置有软件防护扩展,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图7所示,该装置主要包括:118.第一接收模块701,用于接收客户端发送的待执行的应用程序;119.重定位模块702,用于重定位所述待执行的应用程序中的入口地址,生成目标应用程序,其中,所述目标应用程序能够在所述服务器中运行;120.运行模块703,用于运行所述目标应用程序,并生成运算结果;121.第一发送模块704,用于发送所述运算结果至所述客户端。122.基于同一构思,本技术实施例中提供了一种应用程序执行装置,配置于客户端,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图8所示,该装置主要包括:123.获取模块801,用于获取待执行的应用程序;124.第二发送模块802,用于发送所述待执行的应用程序至服务器,其中,所述服务器中设置有软件防护扩展;125.第二接收模块803,用于接收所述服务器发送的针对所述待执行的应用程序的运算结果。126.基于同一构思,本技术实施例中还提供了一种电子设备,如图9所示,该电子设备主要包括:处理器901、存储器902和通信总线903,其中,处理器901和存储器902通过通信总线903完成相互间的通信。其中,存储器902中存储有可被处理器901执行的程序,处理器901执行存储器902中存储的程序,实现如下步骤:127.接收客户端发送的待执行的应用程序;重定位待执行的应用程序中的入口地址,生成目标应用程序,其中,目标应用程序能够在服务器中运行;运行目标应用程序,并生成运算结果;发送运算结果至客户端;128.或者,129.获取待执行的应用程序;发送待执行的应用程序至服务器,其中,服务器中设置有软件防护扩展;接收服务器发送的针对待执行的应用程序的运算结果。130.上述电子设备中提到的通信总线903可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线903可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。131.存储器902可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器901的存储装置。132.上述的处理器901可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等,还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。133.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的应用程序执行方法。134.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。135.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。136.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献