首页 / 专利库 / 地基 / 基础 / 一种基于加密技术的JAVA应用软件版权保护方法

一种基于加密技术的JAVA应用软件版权保护方法

阅读:453发布:2021-09-19

专利汇可以提供一种基于加密技术的JAVA应用软件版权保护方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于加密技术的JAVA应用 软件 版权 保护的方法,属于信息安全技术领域,该方法由信息加密授权模 块 、软件启动模块和软件运行防护中心组成;信息加密授权模块完成应用 软件代码 (CLASS文件)的加密、采用 应用软件 运行 服务器 硬件 信息( 主板 序列号\CPU序列号)加密授权并对软件JAR包生成防套改验证码;软件启动模块实现应用软件代码的解密和类的加载、完成对授权信息的验证;软件运行防护中心实现对授权应用软件的运行注册、通过 跟踪 运行中的应用软件防止非法软件从JVM内存中DUMP相关的代码。本发明公布的方法对JAVA应用软件的存放阶段、启动加载阶段和运行阶段对盗版和破解进行了多方位的防护,有效的保护了JAVA应用软件的版权。,下面是一种基于加密技术的JAVA应用软件版权保护方法专利的具体信息内容。

1.一种基于加密技术的JAVA应用软件版权保护方法,其特征在于:包括如下步骤:
步骤1:建立用于部署应用软件服务器和用于采集并分析该服务器信息的数据中心
数据中心部署在应用软件运行跟踪防护中心;
数据中心采集应用软件部署的服务器的硬件信息,硬件信息包括主板序列号和CPU序列号,作为后续加密授权基础数据;
步骤2:数据中心对应用软件JAR包中的CLASS文件加密生成应用软件发布JAR包,生成应用软件JAR包文件验证码,制作应用软件授权证书,证书内容包括加密的服务器硬件信息、应用软件有效期信息、软件加密密钥、客户账号、启动口令和软件文件验证码;
步骤3:在用于部署应用软件的服务器中建立软件启动模,软件启动模块用于应用软件运行注册、软件解密授权验证和自定义类加载解密;
步骤4:数据中心实时监控已注册的应用软件的运行状态,阻止非法软件链接到被保护的应用软件进程获取JVM内存字节码数据。
2.如权利要求1所述的一种基于加密技术的JAVA应用软件版权保护方法,其特征在于:
在执行步骤2时,软件授权加密处理包括以下步骤:
步骤A1:通过C语言进行DES加密,密钥存放于二进制代码文件中,使用该工具对所述硬件信息、软件有效期信息和软件版本描述信息加密后存于授权证书中;
步骤A2:通过C+JAVA进行应用软件JAR包加密,通过JAVA语言读取应用软件JAR包中CLASS文件,利用C语言实现动态库通过JNI完成对CLASS文件加密功能,应用软件JAR包加密的密钥DES加密后存于授权证书中;
步骤A3:待发布的应用软件JAR包使用MD5生成验证码,验证码DES加密后存于授权证书中,同时一起发布的JAVA虚拟机JAR包使用MD5生成验证码DES加密后存于授权证书中。
3.如权利要求2所述的一种基于加密技术的JAVA应用软件版权保护方法,其特征在于:
在执行步骤3时,软件启动模块的处理方法包括如下步骤:
步骤B1:获取所述硬件信息、待启动的应用软件JAR包和JVM生成MD5验证码,读取授权证书中的授权密文信息DES解密后进行比对校验,校验通过后方可启动运行;
步骤B2:生成软件解密授权动态口令,启动JAVA虚拟机JVM,传递运行参数:JAR包路径和名称,JVM参数包括:ReduceSignalUsage参数、DisableAttachMechanism参数、密文形式的硬件信息、软件解密密钥和解密授权动态口令,其中,ReduceSignalUsage参数忽略SIGHUP\SIGINT\SIGTERM信号,DisableAttachMechanism参数禁止工具连接到JVM参数;
步骤B3:发送应用软件进程PID、应用软件名称、软件运行有效期、时间戳、解密授权动态口令到数据中心进行注册;
步骤B4:在软件启动模块中建立类加载器,类加载器中的解密动态链接库取得启动模块传递来的解密授权动态口令、时间戳和应用软件进程PID后,一并发送给数据中心对启动模块注册的解密授权动态口令进行校验,验证通过取得相应的软件解密权限,解密JAR包中的CLASS文件并加载到JAVA虚拟机。
4.如权利要求3所述的一种基于加密技术的JAVA应用软件版权保护方法,其特征在于:
在执行步骤4时,数据中心的处理包括如下步骤:
步骤C1:接收来自类加载器中解密动态库的解密授权请求,进行认证后予以授权;
步骤C2:接收来自应用软件运行时的心跳请求,超时未收到已经注册的应用软件的心跳,将强行“杀掉”该应用软件进程,若应用软件心跳请求未收到响应,则将自行退出;
所述心跳请求为加密数据;
步骤C3:接收到来自软件启动模块的注册请求后,启动一个进程跟踪该应用软件JVM进程,阻止其他非法进程链接到应用软件JVM进程进行非法操作,当跟踪进程被恶意“终止”,应用软件运行跟踪防护中心将及时“杀掉”被跟踪的应用软件进程;
步骤C4:数据中心周期性的检查注册在运行的应用软件,发现有超过软件有效期的将立即终止该应用软件进程。

说明书全文

一种基于加密技术的JAVA应用软件版权保护方法

技术领域

[0001] 本发明涉及一种JAVA应用软件防破解、防盗版的方法,特别是涉及一种基于加密技术的体系化JAVA应用软件版权保护方法,属于信息安全技术领域。

背景技术

[0002] 经过多年的发展,Java语言在互联网、大数据、Android开发等领域均有广泛的应用,开发效率高、跨平台性、稳定性、可扩展性强,Java语言也是大型互联网平台常见的解决方案。但是由于Java语言是编译为字节码被JVM解释执行的,因此防止非法反编译,Java语言开发的产品版权保护是亟需解决的问题。
[0003] 目前,防止Java代码非法反编译的主要方法是对编译好的代码混淆,使得反编译后的代码变得混乱难懂,但只是增加了逆向工程的难度,对于盗版问题依然无济于事;另一个防止Java代码非法反编译的主要方法是对CLASS文件进行加密,对于防止硬解密的是有效的,但是不能防止在类加载过程中以及加载到JVM内存中的CLASS进行导出反编译。

发明内容

[0004] 本发明的目的是提供一种基于加密技术的JAVA应用软件版权保护的方法,解决现有的JAVA应用软件通过反编译逆向工程被破解、盗版侵权的问题。
[0005] 为实现上述目的,本发明采用如下技术方案:
[0006] 一种基于加密技术的JAVA应用软件版权保护方法,包括如下步骤:
[0007] 步骤1:建立用于部署应用软件的服务器和用于采集并分析该服务器信息的数据中心
[0008] 数据中心部署在应用软件运行跟踪防护中心;
[0009] 数据中心采集应用软件部署的服务器的硬件信息,硬件信息包括主板序列号和CPU序列号,作为后续加密授权基础数据;
[0010] 步骤2:数据中心对应用软件JAR包中的CLASS文件加密生成应用软件发布JAR包,生成应用软件JAR包文件验证码,制作应用软件授权证书,证书内容包括加密的服务器硬件信息、应用软件有效期信息、软件加密密钥、客户账号、启动口令和软件文件验证码;
[0011] 步骤3:在用于部署应用软件的服务器中建立软件启动模,软件启动模块用于应用软件运行注册、软件解密授权验证和自定义类加载解密;
[0012] 步骤4:数据中心实时监控已注册的应用软件的运行状态,阻止非法软件链接到被保护的应用软件进程获取JVM内存字节码数据。
[0013] 优选的,在执行步骤2时,软件授权加密处理包括以下步骤:
[0014] 步骤A1:通过C语言进行DES加密,密钥存放于二进制代码文件中,使用该工具对所述硬件信息、软件有效期信息和软件版本描述信息加密后存于授权证书中;
[0015] 步骤A2:通过C+JAVA进行应用软件JAR包加密,通过JAVA语言读取应用软件JAR包中CLASS文件,利用C语言实现动态库通过JNI完成对CLASS文件加密功能,应用软件JAR包加密的密钥DES加密后存于授权证书中;
[0016] 步骤A3:待发布的应用软件JAR包使用MD5生成验证码,验证码DES加密后存于授权证书中,同时一起发布的JAVA虚拟机JAR包使用MD5生成验证码DES加密后存于授权证书中。
[0017] 优选的,在执行步骤3时,软件启动模块的处理方法包括如下步骤:
[0018] 步骤B1:获取所述硬件信息、待启动的应用软件JAR包和JVM生成MD5验证码,读取授权证书中的授权密文信息DES解密后进行比对校验,校验通过后方可启动运行;
[0019] 步骤B2:生成软件解密授权动态口令,启动JAVA虚拟机JVM,传递运行参数:JAR包路径和名称,JVM参数包括:ReduceSignalUsage参数、DisableAttachMechanism参数、密文形式的硬件信息、软件解密密钥和解密授权动态口令,其中,ReduceSignalUsage参数忽略SIGHUP\SIGINT\SIGTERM信号,DisableAttachMechanism参数禁止工具连接到JVM参数;
[0020] 步骤B3:发送应用软件进程PID、应用软件名称、软件运行有效期、时间戳、解密授权动态口令到数据中心进行注册;
[0021] 步骤B4:在软件启动模块中建立类加载器,类加载器中的解密动态链接库取得启动模块传递来的解密授权动态口令、时间戳和应用软件进程PID后,一并发送给数据中心对启动模块注册的解密授权动态口令进行校验,验证通过取得相应的软件解密权限,解密JAR包中的CLASS文件并加载到JAVA虚拟机。
[0022] 优选的,在执行步骤4时,数据中心的处理包括如下步骤:
[0023] 步骤C1:接收来自类加载器中解密动态库的解密授权请求,进行认证后予以授权;
[0024] 步骤C2:接收来自应用软件运行时的心跳请求,超时未收到已经注册的应用软件的心跳,将强行“杀掉”该应用软件进程,若应用软件心跳请求未收到响应,则将自行退出;
[0025] 所述心跳请求为加密数据;
[0026] 步骤C3:接收到来自软件启动模块的注册请求后,启动一个进程跟踪该应用软件JVM进程,阻止其他非法进程链接到应用软件JVM进程进行非法操作,当跟踪进程被恶意“终止”,应用软件运行跟踪防护中心将及时“杀掉”被跟踪的应用软件进程;
[0027] 步骤C4:数据中心周期性的检查注册在运行的应用软件,发现有超过软件有效期的将立即终止该应用软件进程。
[0028] 本发明所述的一种基于加密技术的JAVA应用软件版权保护的方法,解决现有的JAVA应用软件通过反编译逆向工程被破解、盗版侵权的问题,利用字节加密算法对加密发布软件JAR包中CLASS文件,防止硬解密;启动模块(C语言编写)获取运行服务器硬件信息,读取授权证书完成启动授权验证,接着进行应用软件运行注册;类加载器因不能加密,通过验证码防止被套改,类加载器中的解密动态库通过启动模块传递的动态口令到应用软件运行跟踪防护中心完成解密授权;应用软件运行跟踪防护中心对注册运行的进程进行跟踪,阻止其他非法进程链接(attach)到应用软件进程,进行DUMP操作。本发明方法从多个方位对JAVA应用软件进行防护,较好的保护了JAVA应用软件版权。附图说明
[0029] 图1为本发明的功能结构图;
[0030] 图2为本发明的启动流程图
[0031] 图3为本发明的软件模块间通信协议时序图。

具体实施方式

[0032] 为使本领域技术人员更加清楚和明确本发明的技术方案,下面结合附图以在Linux系统下实施对本发明作进一步详细的描述,但本发明的实施方式不限于此[0033] 如图1-图3所示的一种基于加密技术的JAVA应用软件版权保护方法,包括如下步骤:
[0034] 步骤1:建立用于部署应用软件的服务器和用于采集并分析该服务器信息的数据中心;
[0035] 数据中心部署在应用软件运行跟踪防护中心;
[0036] 数据中心采集应用软件部署的服务器的硬件信息,硬件信息包括主板序列号和CPU序列号,作为后续加密授权基础数据;
[0037] 硬件信息还包括MAC地址;
[0038] 步骤2:数据中心对应用软件JAR包中的CLASS文件加密生成应用软件发布JAR包,生成应用软件JAR包文件验证码,制作应用软件授权证书,证书内容包括加密的服务器硬件信息、应用软件有效期信息、软件加密密钥、客户账号、启动口令和软件文件验证码;
[0039] 步骤3:在用于部署应用软件的服务器中建立软件启动模块,软件启动模块用于应用软件运行注册、软件解密授权验证和自定义类加载解密;
[0040] 在本实施例中,执行步骤1时,客户用于部署应用软件的服务器硬件信息由启动模块完成,启动模块在启动应用软件前将采集服务器硬件信息(主板序列号、CPU序列号)并和授权证书验证,验证不通过则告知用户将服务器硬件信息发送给应用软件发行商制作授权证书。
[0041] 在本实施例中,执行步骤2时,应用软件JAR包CLASS文件的加密算法采用单个字节进行加密,优点是算法简单,加解密速度快。算法函数形式:f(b(i),k(j))=c,将字节通过该函数转换为另一个字节,k(j)是密钥字符串第j个字符,解密就是该函数的逆运算。
[0042] 本实施例采用MD5生成应用软件JAR包文件验证码,采用DES加密算法对文件验证码、应用软件JAR包加密密钥、服务器硬件信息、软件有效期限、启动账号口令加密后保存到授权证书。
[0043] 在执行步骤3时,软件启动模块首先账号口令验证,然后授权证书验证,获取当前服务器的硬件信息和服务器时间,读取软件授权证书的加密数据,解密后进行校验,MD5生成当前启动的JAR包验证码与授权证书中的验证码校验;
[0044] 软件启动授权验证通过后,生成软件解密授权动态口令,读取授权证书中的软件运行参数,包括:JAVA虚拟机配置、软件JAR包配置、运行日志文件、软件解密密钥(密文)以及机器硬件信息,执行启动命令传入上述参数及解密授权动态口令;
[0045] 应用软件启动后进行软件运行注册,发送软件解密授权动态口令、时间戳、应用软件PID、应用软件名称到应用软件运行跟踪防护中心的数据中心进行注册;
[0046] 类加载器读取应用软件JAR包欲加载的CLASS文件流及软件解密密钥(密文)、机器硬件信息、应用软件名称、解密授权动态口令通过JNI传递给解密动态链接库;
[0047] 解密动态链接库获取应用软件PID、时间戳和解密授权动态口令一并发送到应用软件运行防护防护中心,防护中心收到解密授权请求数据与启动模块注册的数据进行校验,校验成功授予解密权限;解密动态链接库获得解密权限后使用机器硬件信息提取密钥解密软件解密密钥(密文),取得软件解密密钥(明文)对加密的CLASS文件字节流解密。
[0048] 步骤4:数据中心实时监控已注册的应用软件的运行状态,阻止非法软件链接到被保护的应用软件进程获取JVM内存字节码数据。
[0049] 优选的,在执行步骤2时,软件授权加密处理包括以下步骤:
[0050] 步骤A1:通过C语言进行DES加密,密钥存放于二进制代码文件中,使用该工具对所述硬件信息、软件有效期信息和软件版本描述信息加密后存于授权证书中;
[0051] 步骤A2:通过C+JAVA进行应用软件JAR包加密,通过JAVA语言读取应用软件JAR包中CLASS文件,利用C语言实现动态库通过JNI完成对CLASS文件加密功能,应用软件JAR包加密的密钥DES加密后存于授权证书中;
[0052] 步骤A3:待发布的应用软件JAR包使用MD5生成验证码,验证码DES加密后存于授权证书中,同时一起发布的JAVA虚拟机JAR包使用MD5生成验证码DES加密后存于授权证书中。
[0053] 优选的,在执行步骤3时,软件启动模块的处理方法包括如下步骤:
[0054] 步骤B1:获取所述硬件信息、待启动的应用软件JAR包和JVM生成MD5验证码,读取授权证书中的授权密文信息DES解密后进行比对校验,校验通过后方可启动运行;
[0055] 步骤B2:生成软件解密授权动态口令,启动JAVA虚拟机JVM,传递运行参数:JAR包路径和名称,JVM参数包括:ReduceSignalUsage参数、DisableAttachMechanism参数、密文形式的硬件信息、软件解密密钥和解密授权动态口令,其中,ReduceSignalUsage参数忽略SIGHUP\SIGINT\SIGTERM信号,DisableAttachMechanism参数禁止工具连接到JVM参数;
[0056] 步骤B3:发送应用软件进程PID、应用软件名称、软件运行有效期、时间戳、解密授权动态口令到数据中心进行注册;
[0057] 步骤B4:在软件启动模块中建立类加载器,类加载器中的解密动态链接库取得启动模块传递来的解密授权动态口令、时间戳和应用软件进程PID后,一并发送给数据中心对启动模块注册的解密授权动态口令进行校验,验证通过取得相应的软件解密权限,解密JAR包中的CLASS文件并加载到JAVA虚拟机。
[0058] 优选的,在执行步骤4时,数据中心的处理包括如下步骤:
[0059] 步骤C1:接收来自类加载器中解密动态库的解密授权请求,进行认证后予以授权;
[0060] 接收到启动模块的运行注册请求包(密文)进行解密,查找软件运行列表(列表中每一项描述运行软件的名称、进程ID、运行状态、心跳时间、软件有效期、软件解密授权动态口令),校验时间戳,更新软件运行列表项。
[0061] 如图3所示,其中,通信协议报数据全部加密、防止通信数据泄露被套改;时间戳防止协议包数据被截获重放。
[0062] 步骤C2:接收来自应用软件运行时的心跳请求,超时未收到已经注册的应用软件的心跳,将强行“杀掉”该应用软件进程,若应用软件心跳请求未收到响应,则将自行退出;
[0063] 所述心跳请求为加密数据;
[0064] 接收类加载中解密动态库的解密授权请求包(密文),解密后得到软件名称、进程ID、时间戳、解密授权动态口令,验证时间戳及解密授权动态口令,验证通过授予软件解密权限,更新软件运行列表项。
[0065] 应用软件启动运行后定时发送心跳包(密文)到应用软件跟踪防护中心,解密后得到进程ID,防护中心更新软件运行列表返回心跳响应,应用软件若超时未得到心跳响应则自动退出,防护中心定时扫描软件运行列表,强制“杀掉”心跳超时未更新的应用软件进程。
[0066] 步骤C3:接收到来自软件启动模块的注册请求后,启动一个进程跟踪该应用软件JVM进程,阻止其他非法进程链接到应用软件JVM进程进行非法操作,当跟踪进程被恶意“终止”,应用软件运行跟踪防护中心将及时“杀掉”被跟踪的应用软件进程;
[0067] 应用软件启动运行后防护中心为每个注册运行的应用软件启动一个跟踪线程,跟踪线程启动一个strace pid l inux命令,阻止其他非法进程attach到应用软件进程,当strace进程被强行终止,跟踪线程退出并“杀掉”跟踪的应用软件进程,当应用软件退出运行,跟踪线程停止跟踪退出。
[0068] 步骤C4:数据中心周期性的检查注册在运行的应用软件,发现有超过软件有效期的将立即终止该应用软件进程;
[0069] 应用软件跟踪防护中心定期扫描服务器上JVMTI工具、隐藏的进程。
[0070] 以上所述,仅为本发明进一步的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所公开的范围内,根据本发明的技术方案及其构思加以等同替换或改变,都属于本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈