应用程序源码保护方法以及服务端技术

技术编号:31986557 阅读:24 留言:0更新日期:2022-01-20 02:08
本发明专利技术提供了一种应用程序源码保护方法,包括:用户端发送请求信息,其中,请求信息包括目标应用程序;服务端接收请求信息,并根据请求信息生成与目标应用程序相对应的公钥、私钥以及许可证书;服务端发送许可证书至用户端;服务端将目标应用程序、公钥以及私钥封装至容器镜像;服务端接收许可证书并将相应的容器镜像发送至用户端;以及用户端接收容器镜像并启动容器镜像。此外,本发明专利技术还提供了一种服务端。本发明专利技术技术方案能够有效保护应用程序的源码。本发明专利技术技术方案能够有效保护应用程序的源码。本发明专利技术技术方案能够有效保护应用程序的源码。

【技术实现步骤摘要】
应用程序源码保护方法以及服务端


[0001]本专利技术涉及网络安全
,尤其涉及一种应用程序源码保护方法以及服务端。

技术介绍

[0002]目前,对使用解释型语言开发的程序源码的保护方法一般包括下面步骤:服务端通过非对称加密算法提供随机签发的公钥和私钥;客户端从服务器端获取公钥和私钥,并在请求更新程序时,提供客户端的设备信息和公钥给服务端;服务端验证请求通过之后,利用客户端发送的公钥对程序源码进行加密得到发布包,并将发布包发送至客户端;客户端根据私钥对发布包进行解密,得到程序源码。
[0003]上述对使用解释型语言开发的源码的保护方法,虽然使用了非对称加密的方法对程序源码进行保护,但程序源码最终还是以文件的形式保存在了客户端,使得程序源码容易被攻击者获取和破解。

技术实现思路

[0004]有鉴于此,实有必要提供一种应用程序源码保护方法以及服务端,用于保护应用程序的源码。
[0005]第一方面,本专利技术实施例提供一种应用程序源码保护方法,所述应用程序源码保护方法包括:用户端发送请求信息,其中,所述请求信息包括目标应用程序;服务端接收所述请求信息,并根据所述请求信息生成与所述目标应用程序相对应的公钥、私钥以及许可证书;所述服务端发送所述许可证书至所述用户端;所述服务端将所述目标应用程序、所述公钥以及所述私钥封装至容器镜像,其中,所述容器镜像包括启动模块和导入模块,所述启动模块用于根据所述许可证书、所述公钥以及用户端的硬件地址获取与所述目标应用程序相对应的加密依赖库,所述导入模块用于根据所述私钥对所述加密依赖库进行解密,并将解密后的依赖库加载至所述启动模块的内存中;所述用户端发送所述许可证书至所述服务端;所述服务端接收所述许可证书并将相应的容器镜像发送至所述用户端;以及所述用户端接收所述容器镜像并启动所述容器镜像。
[0006]第二方面,本专利技术实施例提供一种应用程序源码保护方法,执行于服务端,所述应用程序源码保护方法包括:接收来自用户端的请求信息,其中,所述请求信息包括目标应用程序;根据所述请求信息生成与所述目标应用程序相对应的公钥、私钥以及许可证书;将所述许可证书发送至所述用户端;以及
将所述目标应用程序、所述公钥以及所述私钥封装至容器镜像,其中,所述容器镜像包括启动模块和导入模块,所述启动模块用于根据所述许可证书、所述公钥以及用户端的硬件地址获取与所述目标应用程序相对应的加密依赖库,所述导入模块用于根据所述私钥对所述加密依赖库进行解密,并将解密后的依赖库加载至所述启动模块的内存中。
[0007]第三方面,本专利技术实施例提供一种应用程序源码保护方法,由用户端执行,所述应用程序源码保护方法包括:发送请求信息,其中,所述请求信息包括目标应用程序;接收来自服务端的许可证书;将所述许可证书发送至所述服务端;接收与所述许可证书相对应的容器镜像,其中,所述容器镜像封装有所述目标应用程序以及与所述目标应用程序相对应的公钥和私钥;以及启动所述容器镜像,其中,所述容器镜像包括启动模块和导入模块,所述启动模块用于根据所述许可证书、所述公钥以及用户端的硬件地址获取与所述目标应用程序相对应的加密依赖库,所述导入模块用于根据所述私钥对所述加密依赖库进行解密,并将解密后的依赖库加载至所述启动模块的内存中。
[0008]第四方面,本专利技术实施例提供一种服务端,所述服务端包括通讯模组、包管理服务模组以及容器仓库管理服务模组,所述通讯模组用于接收用户端发送的请求信息,其中,所述请求信息包括目标应用程序;所述包管理服务模组用于根据所述请求信息生成与所述目标应用程序相对应的公钥、私钥以及许可证书,并将所述许可证书通过所述通讯模组发送给所述用户端;以及所述容器仓库管理服务模组包括:封装模块,用于根据所述请求信息将所述目标应用程序、所述公钥以及所述私钥进行封装形成容器镜像,其中,所述容器镜像包括启动模块和导入模块,所述启动模块用于根据所述许可证书、所述公钥以及用户端的硬件地址获取与所述目标应用程序相对应的加密依赖库,所述导入模块用于根据所述私钥对所述加密依赖库进行解密,并将解密后的依赖库加载至所述启动模块的内存中;分配模块,用于根据所述用户端发送的许可证书将所述容器镜像发送至所述用户端,其中,所述许可证书通过所述通讯模组从所述用户端接收,所述容器镜像通过所述通讯模组发送至所述用户端。
[0009]上述应用程序源码保护方法以及服务端,用户端发送请求信息请求目标应用程序,服务端根据请求信息生成与目标应用程序相对应的公钥、私钥以及许可证书,并将目标应用程序、公钥以及私钥封装至容器镜像。用户端通过许可证书获取容器镜像,启动容器镜像后安装或升级目标应用程序。容器镜像具有沙箱的功能,能够提供安全可靠的执行环境,从而实现与用户端的程序在环境上的隔离,能够为远程导入提供安全保护的机制。一方面,容器镜像不会影响到用户端其它的程序,防止有黑客非法利用导入模块,从而入侵用户端的系统;另一方面,容器镜像可以有效避免目标应用程序被用户端的系统进程干扰,保护服务端签发的文件和程序不会被非法篡改。通过容器镜像,目标应用程序封装至容器镜像中,不将依赖库保存为用户端的本地文件,而是将依赖库加载至启动模块的内存中,依赖库的源码也不会以任何文件的形式保存在容器镜像内,使得目标应用程序和依赖库的源码均位
于服务端,容器镜像中只有相关应用程序,从而实现了对应用程序源码的保护,可以有效避免源程序被盗用或篡改,也可以有效避免用户获取目标应用程序的源码之后存在侵犯版权的隐患。此外,容器镜像需要利用许可证书、公钥、私钥、硬件地址等才能够将目标应用程序和相应的依赖库加载至启动模块的内存中,能够有效保护源码。容器镜像与服务端形成远程导入的模式,许可证书、公钥、私钥、硬件地址等能够为远程导入提供安全保障,使得远程导入的模式更加安全可靠且可行。
附图说明
[0010]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0011]图1为本专利技术第一实施例提供的应用程序源码保护方法的流程图。
[0012]图2为本专利技术第一实施例提供的应用程序源码保护方法的第一子流程图。
[0013]图3为本专利技术第一实施例提供的应用程序源码保护方法的第二子流程图。
[0014]图4为本专利技术实施例提供的应用程序源码保护系统的内部结构示意图。
[0015]图5为本专利技术第二实施例提供的应用程序源码保护方法的流程图。
[0016]图6为本专利技术第二实施例提供的应用程序源码保护方法的子流程图。
[0017]图7为本专利技术第三实施例提供的应用程序源码保护方法的流程图。
[0018]图8为本专利技术实施例提供的服务端的内部结构示意图。
[0019]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序源码保护方法,其特征在于,所述应用程序源码保护方法包括:用户端发送请求信息,其中,所述请求信息包括目标应用程序;服务端接收所述请求信息,并根据所述请求信息生成与所述目标应用程序相对应的公钥、私钥以及许可证书;所述服务端发送所述许可证书至所述用户端;所述服务端将所述目标应用程序、所述公钥以及所述私钥封装至容器镜像,其中,所述容器镜像包括启动模块和导入模块,所述启动模块用于根据所述许可证书、所述公钥以及用户端的硬件地址获取与所述目标应用程序相对应的加密依赖库,所述导入模块用于根据所述私钥对所述加密依赖库进行解密,并将解密后的依赖库加载至所述启动模块的内存中;所述用户端发送所述许可证书至所述服务端;所述服务端接收所述许可证书并将相应的容器镜像发送至所述用户端;以及所述用户端接收所述容器镜像并启动所述容器镜像。2.如权利要求1所述的应用程序源码保护方法,其特征在于,所述用户端接收所述容器镜像并启动所述容器镜像之后,所述应用程序源码保护方法还包括:所述启动模块将所述许可证书、所述公钥、所述硬件地址发送至所述服务端;所述服务端对所述许可证书和所述公钥进行验证;当所述许可证书和所述公钥验证通过时,所述服务端将所述许可证书与所述硬件地址进行绑定;所述服务端根据所述公钥对所述目标应用程序相对应的依赖库进行加密以得到加密依赖库,并将所述加密依赖库发送至所述启动模块;所述启动模块接收所述加密依赖库;以及所述导入模块根据所述私钥对所述加密依赖库进行解密,并将解密后的依赖库加载至所述启动模块的内存中。3.如权利要求1所述的应用程序源码保护方法,其特征在于,所述容器镜像还包括安全模块,所述应用程序源码保护方法还包括:所述安全模块监控所述容器镜像,并判断所述容器镜像是否发生异常;以及当所述容器镜像发生异常时,所述安全模块发送警报信息至所述服务端。4.如权利要求2所述的应用程序源码保护方法,其特征在于,所述服务端将所述许可证书与所述硬件地址进行绑定具体包括:所述服务端判断所述许可证书是否已经绑定硬件地址;当所述许可证书没有绑定硬件地址时,所述服务端将所述许可证书与当前的硬件地址进行绑定;当所述许可证书已经绑定硬件地址时,所述服务端判断已绑定硬件地址与当前的硬件地址是否相同;以及当已绑定硬件地址与当前的硬件地址不相同时,所述服务端发送确认信息至所述用户端。5.如权利要求2所述的应用程序源码保护方法,其特征在于,服务端接收所述请求信息,并根据所述请求信息生成与所述目标应用程序相对应的公钥、私钥以及许可证书之后,
所述应用程序源码保护方法还包括:所述服务端将所述许可证书和所述公钥存储至数据库;其中,所述服务端对所述许可证书和所述公钥进行验证具体包括:所述服务端比对所述数据库中的许可证书和公钥与所述启动模块发送的许可证书和公钥是否一致;以及当所述数据库中的许可证书和公钥与所述启动模块发送的许可证书和公钥一致时,所述服务端判断所述许可证书和所述公钥验证通过。6.一种应用程序源码保护方法,执行于服务端,其特征在于,所述应用程序源码保护方法包括:接收来自用户端的请求信息,其中,所述请求信息包括目标应用程序;根据所述请求信息生成与所述目标应用程序相对应的公钥、私钥以及许可证书;将所述许可证书发送至所述用户端;...

【专利技术属性】
技术研发人员:宁蓉刘国清杨广王启程
申请(专利权)人:深圳佑驾创新科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1