[发明专利]应用程序的运行方法和装置有效
申请号: | 201810392432.X | 申请日: | 2018-04-27 |
公开(公告)号: | CN108898008B | 公开(公告)日: | 2020-07-10 |
发明(设计)人: | 陈钢;陈赫 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F21/53 | 分类号: | G06F21/53;G06F21/60;G06F9/455;G06F8/41;H04L9/06 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 运行 方法 装置 | ||
本发明提供了一种应用程序的运行方法和装置,该方法包括:在运行应用程序的过程中,若执行到应用程序中的字节码密文,则将字节码密文载入至启动的进程虚拟机,其中,进程虚拟机嵌设在应用程序中,进程虚拟机嵌设有白盒解密表;控制进程虚拟机根据白盒解密表对字节码密文进行解密,得到字节码明文;控制进程虚拟机执行字节码明文。本发明通过将字节码传统加密方案中使用密钥的解密算法替换为白盒解密表,并将白盒解密表与进程虚拟机相结合,从而避免了进程虚拟机中直接保存解密密钥所带来的解密密钥被窃取,进而导致字节码密文被破解的问题,提升了进程虚拟机所指向的敏感字节码的安全级别,避免了应用程序中加密的敏感字节码被破解并窃取的风险。
技术领域
本发明涉及计算机软件技术领域,特别是涉及一种应用程序的运行方法和装置。
背景技术
在相关技术中,通常会使用进程虚拟机来保护软件中的敏感代码逻辑。在高安全级别的保护中,会结合加密技术一起使用,即,将进程虚拟机要执行的字节码(即敏感代码逻辑,例如账户登录逻辑、视频解密逻辑等等)加密保护起来,待到需要执行该字节码时,再将其解密出来由进程虚拟机进行执行。
其中,进程虚拟机为单个进程的运行虚拟出了一个封闭环境。运行在虚拟机上的代码逻辑被局限在虚拟机提供的资源里,也就是说,它的权限不能超出它所处的虚拟环境。设计实现进程虚拟机的目的是封装操作系统与底层硬件的接口,给运行在其中的字节码一个独立封闭的运行环境。
其中,相关技术中在对软件中的敏感代码逻辑进行保护时,会存在用于解密字节码的密钥如何管理的问题,在现有的解决方案中,一种方式是将密钥存储在软件中,以便运行前进行解码操作,但是这种方式存在密钥被反编译获取的风险;另一种方式是借助于网络从服务器下载密钥,但是这种方式又存在网络传输过程中密钥被抓包截获的风险。
由此可见,相关技术中的应用程序的字节码密钥的管理方案普遍存在着字节码密钥被窃取的风险,从而导致包含进程虚拟机的软件的敏感代码逻辑被破解的问题。
发明内容
本发明提供了一种应用程序的运行方法和装置,以解决相关技术中的应用程序的字节码密钥的管理方案所存在的字节码密钥被窃取的风险,从而导致包含进程虚拟机的软件的敏感代码逻辑被破解的问题。
为了解决上述问题,根据本发明的一个方面,本发明公开了一种应用程序的运行方法,包括:
在运行所述应用程序的过程中,若执行到所述应用程序中的字节码密文,则将所述字节码密文载入至启动的进程虚拟机,其中,所述进程虚拟机嵌设在所述应用程序中,所述进程虚拟机嵌设有白盒解密表;
控制所述进程虚拟机根据所述白盒解密表对所述字节码密文进行解密,得到字节码明文;
控制所述进程虚拟机执行所述字节码明文。
可选地,所述运行所述应用程序之前,所述方法还包括:
确定待发布的应用程序中待加密程序代码;
采用预设加密算法和预设密钥对所述待加密程序代码进行加密,得到字节码密文;
根据所述预设加密算法和所述预设密钥生成白盒解密表;
将所述白盒解密表嵌入进程虚拟机;
将所述待发布的应用程序中所述待加密程序代码替换为所述字节码密文和嵌设有所述白盒解密表的所述进程虚拟机,并发布所述应用程序。
可选地,所述采用预设加密算法和预设密钥对所述待加密程序代码进行加密,得到字节码密文之前,所述方法还包括:
针对所述待加密程序代码中的每个函数,配置预设加密算法和预设密钥;
所述采用预设加密算法和预设密钥对所述待加密程序代码进行加密,得到字节码密文,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810392432.X/2.html,转载请声明来源钻瓜专利网。