[发明专利]一种保护JAVA程序自身安全的方法在审
申请号: | 201410447116.X | 申请日: | 2014-09-04 |
公开(公告)号: | CN104200137A | 公开(公告)日: | 2014-12-10 |
发明(设计)人: | 何志平 | 申请(专利权)人: | 成都卫士通信息产业股份有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 詹永斌 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保护 java 程序 自身 安全 方法 | ||
1.一种保护JAVA程序自身安全的方法,其特征在于,包含如下步骤:
步骤1:将JAVA源程序编译为结构化CLASS文件;
步骤2:对结构化CLASS文件进行签名和加密。将JAVA标准的结构化CLASS文件转换为密文CLASS文件;
步骤3: 对密文CLASS文件进行解密得到结构化CLASS文件;
步骤4:对结构化CLASS文件进行签名验证,签名通过验证时JAVA字节码被送到JVM中运行。
2.如权利要求1所述的保护JAVA程序自身安全的方法,其特征在于,所述步骤1具体为:用SM2算法和SM3算法对JAVA程序的字节码文件进行签名,将签名值和CLASS文件按照固定格式合并到一个文件中,得到结构化CLASS文件。
3.如权利要求1所述的保护JAVA程序自身安全的方法,其特征在于,所述步骤2采用SM4算法对CLASS文件进行加密。
4.如权利要求1所述的保护JAVA程序自身安全的方法,其特征在于,所述步骤3采用SM4算法对密文CLASS进行解密得到结构化CLASS文件。
5.如权利要求1所述的保护JAVA程序自身安全的方法,其特征在于,所述步骤4具体为:从结构化CLASS文件中取出签名值和JAVA字节码进行签名验证,只有签名通过验证时JAVA字节码才会被送到JVM中运行。
6.如权利要求5所述的保护JAVA程序自身安全的方法,其特征在于,步骤4中,没有通过签名验证的结构化CLASS文件被禁止在JVM中运行并记录程序已被篡改的告警日志信息。
7.如权利要求5所述的保护JAVA程序自身安全的方法,其特征在于,步骤4中JVM中运行结构化CLASS文件的步骤具体为:
步骤a:启动JVM;
步骤b:向JVM注册监听CLASS文件加载事件;
步骤c:为CLASS文件加载事件注册一个回调函数;
步骤d:在回调函数中对密文的CLASS文件进行解密和签名验证。
8.如权利要求7所述的保护JAVA程序自身安全的方法,其特征在于,步骤4中采用JVMTI的客户端来实现当JVM加载CLASS文件时自动实时的将密文CLASS文件解密为JAVA标准的字节码;所述JVMTI客户端被编译成一个动态链接库,并在启动JVM时传入JVM;采用JVM启动时将调用JVMTI客户端的Agent_OnLoad函数对JVMIT客户端进行初始化。
9.如权利要求8所述的保护JAVA程序自身安全的方法,其特征在于,步骤4中,在Agent_OnLoad函数中可以利用SetEventNotificationMode向JVM注册监听CLASS文件加载事件,利用SetEventCallbacks函数为CLASS文件加载事件挂接一个回调函数,当JVM加载CLASS文件时,该回调函数就会被调用。
10.如权利要求1所述的保护JAVA程序自身安全的方法,其特征在于,步骤4中,在回调函数中对密文CLASS文件进行解密和签名验证处理,先用SM4算法对密文CLASS进行解密,得到结构化CLASS文件,再从结构化CLASS文件中取出签名值和JAVA 字节码进行签名验证。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都卫士通信息产业股份有限公司;,未经成都卫士通信息产业股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410447116.X/1.html,转载请声明来源钻瓜专利网。