企业级BS应用保护方法、装置与电子设备与流程

文档序号:17360001发布日期:2019-04-09 21:59阅读:230来源:国知局
企业级BS应用保护方法、装置与电子设备与流程

本发明实施例涉及数据信息安全技术领域,更具体地,涉及一种企业级bs应用保护方法、装置与电子设备。



背景技术:

war是sun公司提出的一种企业级web应用程序格式,是一种多类文件的压缩包。这个包中的文件按一定的目录结构来组织:通常其根目录下包含有html和jsp文件,或者包含这两种文件的目录,另外还会有一个web-inf目录。在web-inf目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp或servlet所依赖的其它类(如javabean)的字节码。这些所依赖的类也可以打包成jar放到web-inf下的lib目录下。

java字节码是java虚拟机(jvm)执行的一种指令格式。jvm在运行时,将java字节码以jit的编译方式转换成原生代码。如果没有java字节码在背后运行,jvm就无法进行编译并映射到原生代码上。然而,由于java字节码的特性,根据其可以轻易的反编译出源代码,且web程序自身并没有保护程序源码的属性。企业竞争对手等可以根据本企业的web应用,通过反编译技术轻易获取本企业的程序源码,这将影响到企业信息安全,给企业的利益造成严重的威胁。



技术实现要素:

为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种企业级bs应用保护方法、装置与电子设备,用以有效提高web程序的保密性,提升企业商业机密的安全性,并维护企业的经济效益。

第一方面,本发明实施例提供一种企业级bs应用保护方法,包括:

在企业bs应用程序中,对war包中的字节码文件进行加密处理,并在字节码文件的解析服务器中自定义解密业务逻辑;

在运行war程序时,部署所述war包启动所述解析服务器,并根据所述解密业务逻辑,对加密的字节码文件进行解密处理,以进行常规的字节码文件解析。

第二方面,本发明实施例提供一种企业级bs应用保护装置,包括:

加密模块,用于在企业bs应用程序中,对war包中的字节码文件进行加密处理,并在字节码文件的解析服务器中自定义解密业务逻辑;

解密与解析模块,用于在运行war程序时,部署所述war包启动所述解析服务器,并根据所述解密业务逻辑,对加密的字节码文件进行解密处理,以进行常规的字节码文件解析。

第三方面,本发明实施例提供一种电子设备,包括:至少一个存储器、至少一个处理器、通信接口和总线;所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口用于所述电子设备与war包文件设备之间的信息传输;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上第一方面所述的企业级bs应用保护方法。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上第一方面所述的企业级bs应用保护方法。

本发明实施例提供的企业级bs应用保护方法、装置与电子设备,通过在war程序中采用非对称算法加密字节码,并在字节码解析服务器中嵌入解密算法,能够保证war程序的正常运行,并有效提高web程序的保密性,提升企业商业机密的安全性,维护企业的经济效益。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的企业级bs应用保护方法的流程示意图;

图2为本发明另一实施例提供的企业级bs应用保护方法的流程示意图;

图3为本发明实施例提供的企业级bs应用保护装置的结构示意图;

图4为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。

本发明实施例针对传统行业web程序可以轻易的被反编译出源码,威胁企业利益的弊端,提出一种基于java字节码加密理论的web程序保护方案。该方案能够实现对web程序中的java字节码进行加密,达到反编译技术无法识别,提高web程序的保密性,提升企业商业机密的安全性,同时维护企业的经济效益。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。

图1为本发明一实施例提供的企业级bs应用保护方法的流程示意图,如图1所示,该方法的处理流程包括:

s101,在企业bs应用程序中,对war包中的字节码文件进行加密处理,并在字节码文件的解析服务器中自定义解密业务逻辑。

可以理解为,针对传统行业web程序容易被反编译出源码的问题,本发明实施例首先在web程序中对war包中的字节码文件进行加密处理,该加密过程可以采用常规的字节码加密算法。可以理解的是,为了进一步保证数据安全,可以采用安全系数较高的非对称加密算法。通过加密字节码,使web程序不会轻易的被反编译出源代码,使程序的保密性得到保障。

另外,在对字节码进行加密处理之后,若按照常规的字节码解析流程进行加密的字节码文件的解析时,可能由于字节码被加密而无法正常解析,因此需要在解析字节码前或者在解析过程中对加密的字节码文件进行解密。据此,本发明实施例事先在解析字节码文件的解析服务器中根据字节码的加密过程,自定义解密业务逻辑。

s102,在运行war程序时,部署war包启动解析服务器,并根据解密业务逻辑,对加密的字节码文件进行解密处理,以进行常规的字节码文件解析。

本发明实施例在根据上述处理实现字节码文件的加密处理以及解密业务逻辑的自定义的基础上,运行war程序。首先根据war包启动经上述处理的解析服务器,执行上述定义的解密业务逻辑,利用解密业务逻辑中的解密算法,对加密的字节码文件进行解密处理,再在解密处理的基础上,正常运行war程序,进行常规的字节码文件解析。

本发明实施例提供的企业级bs应用保护方法,通过在war程序中采用非对称算法加密字节码,并在字节码解析服务器中嵌入解密算法,能够保证war程序的正常运行,并有效提高web程序的保密性,提升企业商业机密的安全性,维护企业的经济效益。

其中,根据上述各实施例可选的,具体采用非对称加密算法,对字节码文件进行加密处理。其中的非对称加密算法具体可以为非对称的rsa加密算法或者sm2加密算法。

根据上述实施例,web程序涉及到字节码的加密和解密,本发明实施例采用非对称算法来加密字节码。其中可选的,可采用更安全的非对称加密算法rsa算法。rsa是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被iso推荐为公钥数据加密标准。

rsa是一种公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。通过rsa算法使用加密秘钥对web程序中字节码进行加密,字节码解密时使用解密秘钥进行解密。

此外,也可以采用非对称加密sm2算法,对字节码文件进行同样的加密处理。

本发明实施例提供的企业级bs应用保护方法,利用非对称加密算法加密字节码,能够抵抗到目前为止已知的绝大多数密码攻击,进一步提升对war的保护作用。

其中,根据上述各实施例可选的,对于非对称的rsa加密算法,在字节码文件的解析服务器中自定义解密业务逻辑的步骤具体包括:在tomcat解析服务器的classparser类中,自定义嵌入基于rsa算法的解密业务逻辑,用以在利用classparser类解析字节码文件前,根据解密业务逻辑,对加密的字节码文件进行解密处理。

本发明实施例通过对tomcat服务器进行解密算法嵌入设计,以利用tomcat服务器的classparser类来解密字节码。其中的tomcat是一个免费的开放源代码的web应用服务器。具体而言,事先在classparser类中嵌入与上述各实施例加密算法对应的解密业务逻辑,例如基于rsa算法的解密业务逻辑。tomcat启动后,会调用classparser对字节码文件进行解析。classparser类会解析给定的java字节码文件并返回一个表示包含的数据的对象,即常量,函数,字段和命令。如果文件不是有效的.class文件,则会引发异常。因为web程序的字节码已经经过rsa算法加密过,classparser类在解析字节码时无法识别,导致引发异常,所以在解析前使用rsa算法通过解密秘钥将字节码解密,然后再进行正常的解析流程。

本发明实施例提供的企业级bs应用保护方法,通过自定义tomcat服务器源码进行解密,使用加密web程序必须配合具有解密功能的tomcat服务器,更加进一步保护了web程序的安全性。同时,能有效保证企业的商业机密不会被竞争对手窃取,维护企业利益,增强企业竞争力。

进一步的,在字节码文件的解析服务器中自定义解密业务逻辑的步骤进一步还可以包括:在tomcat解析服务器的类加载器webappclassloaderbase中,自定义嵌入基于rsa算法的解密业务逻辑,用以在利用类加载器webappclassloaderbase加载类文件类型的字节码文件时,根据解密业务逻辑,对加密的类文件类型的字节码文件进行解密处理。

对于类类型文件,tomcat解析服务器可以利用类加载器webappclassloaderbase进行加载,则在根据上述各实施例对类类型文件字节码进行处理时,可以事先在类加载器webappclassloaderbase类中嵌入与上述各实施例加密算法对应的解密业务逻辑,例如基于rsa算法的解密业务逻辑。tomcat启动后,webappclassloaderbase类会去加载web-inf目录中的java类库和字节码。在加载时,根据事先嵌入的解密业务逻辑,解密字节码,然后正常运行加载程序。

其中的webappclassloaderbase类是一种类加载器,类加载器是一个用来加载类文件的类。java源代码通过javac编译器编译成类文件。然后java虚拟机来执行类文件中的字节码来执行程序。类加载器负责加载文件系统、网络或其他来源的类文件。

进一步的,在字节码文件的解析服务器中自定义解密业务逻辑的步骤进一步还可以包括:在spring框架类型解析服务器中asm库的classreader类中,自定义嵌入基于rsa算法的解密业务逻辑,用以在利用classreader类读取字节码文件中的字节码时,根据解密业务逻辑,对字节码进行解密处理。

可以理解的是,在上述各实施例的基础上,本发明实施例还进行spring框架解密字节码的自定义,以在利用spring框架读取字节码文件时进行字节码的解密。其中的spring框架是一个轻量级控制反转(ioc)和面向切面(aop)的容器框架。解决企业应用开发的复杂性。

具体而言,对spring框架的classreader类进行解密算法嵌入,用来解密字节码。spring框架中aop功能基于cglib实现。cglib是一个强大的,高性能和高质量的代码生成库,用于在运行时扩展java类并实现接口。用于生成和转换java字节码的高级api。它被aop用于生成动态代理对象并拦截字段访问。cglib依赖于asm库。

其中的aop面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。aop动态代理和组件扫描的底层将调用spring框架中asm库的classreader类。classreader类将负责读取字节码。在classreader类读取字节码时,利用其中嵌入的解密业务逻辑,将字节码进行解密。

为进一步说明本发明实施例的技术方案,本发明实施例根据上述各实施例提供如下实施例的处理流程,但不对本发明实施例的保护范围进行限制。

图2为本发明另一实施例提供的企业级bs应用保护方法的流程示意图,如图2所示,该处理流程包括:

首先对war包中的字节码文件进行rsa算法加密,并预先在tomcat解析服务器和spring框架中自定义基于rsa算法的解密业务逻辑。

之后,部署war包启动tomcat解析服务器,并可利用tomcat解析服务器提前判断字节码是否被加密,若未被加密,则按照常规流程运行war程序,否则,根据不同的字节码文件的数据类型,利用不同的解密业务逻辑进行字节码文件的解密,并在成功解密后,进入常规流程运行war程序。

其中的不同解密业务逻辑包括:tomcat服务器的classparser类,在解析字节码文件前先进行解密;tomcat服务器的类加载器webappclassloaderbase,加载字节码文件时进行解密;spring框架的classreader类,在读取字节码文件时进行解密。

作为本发明实施例的另一个方面,本发明实施例根据上述各实施例提供一种企业级bs应用保护装置,该装置用于在上述各实施例中实现企业级bs应用的保护。因此,在上述各实施例的企业级bs应用保护方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。

根据本发明实施例的一个实施例,企业级bs应用保护装置的结构如图3所示,为本发明实施例提供的企业级bs应用保护装置的结构示意图,该装置可以用于实现上述各方法实施例中企业级bs应用的保护,该装置包括:加密模块301和解密与解析模块302。其中:

加密模块301用于在企业bs应用程序中,对war包中的字节码文件进行加密处理,并在字节码文件的解析服务器中自定义解密业务逻辑;解密与解析模块302用于在运行war程序时,部署war包启动解析服务器,并根据解密业务逻辑,对加密的字节码文件进行解密处理,以进行常规的字节码文件解析。

本发明实施例中,加密模块301首先在web程序中对war包中的字节码文件进行加密处理,该加密过程可以采用常规的字节码加密算法。可以理解的是,为了进一步保证数据安全,可以采用安全系数较高的非对称加密算法。通过加密字节码,使web程序不会轻易的被反编译出源代码,使程序的保密性得到保障。

另外,在对字节码进行加密处理后,若按照常规的字节码解析流程进行加密的字节码文件的解析时,可能由于字节码被加密而无法正常解析,因此,加密模块301需要在解析字节码前或者在解析过程中对加密的字节码文件进行解密。据此,加密模块301事先在解析字节码文件的解析服务器中根据字节码的加密过程,自定义解密业务逻辑。

之后,解密与解析模块302运行war程序,首先根据war包启动经上述处理的解析服务器,执行上述定义的解密业务逻辑,利用解密业务逻辑中的解密算法,对加密的字节码文件进行解密处理,再在解密处理的基础上,正常运行war程序,进行常规的字节码文件解析。

本发明实施例提供的企业级bs应用保护装置,通过设置相应的执行模块,在war程序中采用非对称算法加密字节码,并在字节码解析服务器中嵌入解密算法,能够保证war程序的正常运行,并有效提高web程序的保密性,提升企业商业机密的安全性,维护企业的经济效益。

可以理解的是,本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现上述各实施例的装置中的各相关程序模块。并且,本发明实施例的企业级bs应用保护装置利用上述各程序模块,能够实现上述各方法实施例的企业级bs应用保护流程,在用于实现上述各方法实施例中企业级bs应用保护时,本发明实施例的装置产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。

作为本发明实施例的又一个方面,本实施例根据上述各实施例提供一种电子设备,参考图4,为本发明实施例提供的电子设备的实体结构示意图,包括:至少一个存储器401、至少一个处理器402、通信接口403和总线404。

其中,存储器401、处理器402和通信接口403通过总线404完成相互间的通信,通信接口403用于该电子设备与war包文件设备之间的信息传输;存储器401中存储有可在处理器402上运行的计算机程序,处理器402执行该计算机程序时,实现如上述各实施例所述的企业级bs应用保护方法。

可以理解为,该电子设备中至少包含存储器401、处理器402、通信接口403和总线404,且存储器401、处理器402和通信接口403通过总线404形成相互间的通信连接,并可完成相互间的通信,如处理器402从存储器401中读取企业级bs应用保护方法的程序指令等。另外,通信接口403还可以实现该电子设备与war包文件设备之间的通信连接,并可完成相互间信息传输,如通过通信接口403实现企业级bs应用的保护等。

电子设备运行时,处理器402调用存储器401中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:在企业bs应用程序中,对war包中的字节码文件进行加密处理,并在字节码文件的解析服务器中自定义解密业务逻辑;在运行war程序时,部署war包启动解析服务器,并根据解密业务逻辑,对加密的字节码文件进行解密处理,以进行常规的字节码文件解析等。

上述的存储器401中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还根据上述各实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行如上述各实施例所述的企业级bs应用保护方法,例如包括:在企业bs应用程序中,对war包中的字节码文件进行加密处理,并在字节码文件的解析服务器中自定义解密业务逻辑;在运行war程序时,部署war包启动解析服务器,并根据解密业务逻辑,对加密的字节码文件进行解密处理,以进行常规的字节码文件解析等。

本发明实施例提供的电子设备和非暂态计算机可读存储介质,通过执行上述各实施例所述的企业级bs应用保护方法,在war程序中采用非对称算法加密字节码,并在字节码解析服务器中嵌入解密算法,能够保证war程序的正常运行,并有效提高web程序的保密性,提升企业商业机密的安全性,维护企业的经济效益。

可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。

另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。

然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。

最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1