当前位置:首页 期刊杂志

Java类文件保护技术现状及发展趋势

时间:2024-05-04

邹煜

摘 要

Java虽然能够跨平台使用具有较好的灵活性,并具有独立的编译方式,但是其源代码编译后,并没有生成二进制的文件,而是一种面向虚拟机的文件,我们称之为Java类文件,属于一种具有格式的中间代码,容易被黑客进行反编译Java,为其提供了可能性。反编译得到的代码和源代码差别不大,提高Java类文件的保护势在必行。

【关键词】Java类文件 文件加密 RSA ASE

1 引言

Java的开发资源丰富并且具有较为成熟的开发模式,因此,Java语言是目前较为主流的软件设计和开发语言。目前,Java语言已经广泛应用在嵌入式应用,企业管理,信息管理等领域中。Java字节码的文件中,对方法和变量的信息进行了全部的保留,通常这些符号携带者很多种语义信息。Java语言的这种特殊性质,让他很容易被黑客攻击,遭到代码的盗取,最终让知识产权受到侵害,所以,Java类文件加密技术的研发非常必要。

2 Java

2.1 简单性

Java是一种面向对象的语言形式,通过所提供的基本的方法完成软件的设计任务,因此,只要程序员能够理解基本的概念,就可以对软件进行开发。在Java语言中,并不需要考虑算法的重新加载以及多重继承的问题,通过垃圾的自动回收功能,能够简化软件程序开发人员对内存的管理工作。

2.2 面向对象的

在Java语言的程序设计中,主要针对的是对象和接口的设计,用简单的累计值和动态的连接模型完成设计。使用继承的机制,父类的信息和方法可以继承过来,很好地达到了代码复用的效果。

2.3 安全性

网络病毒的盛行,因此,Java语言中,需要考虑其安全性。在Java语言中,并没有指针的设计,所以对内存的访问通过对象实例的变量来完成,可以减少指针操作构成中产生的错误。

2.4 跨平台性

Java的最大优点就是无需考虑平台的特征,可以移植到不同的机器上完成软件谁,让程序员摆脱平台开发工具的限制,实现了一次编写,处处可用的目的。

3 Java类文件

3.1 Java类文件结构

Java class文件的结构主要針对的是一个类或者是接口的描述,其中包括了对Java程序设计应用到的所有的类和接口的信息,是Java虚拟机能够直接加载的文件。所以在程序设计中类文件非常重要,只有正确的对类文件进行使用,才能够完成程序的开发和设计。

3.2 Java反编译

在Java中使用的反编译器是javap对类文件完成反编译工作。但是反编译的结果不是想要的源代码,包括局部变量和汇编代码两部分。此外,其他的反编译工具Mocha,WinDis在反编译中能够给出和源代码基于一样的代码。Java类文件并不是一个二进制的文件,是一种具有格式的中间的代码,因此,会增加反编译的可能性。这种安全问题,主要还是来自于Java本身的一些特点。

(1)Java的跨平台特征,使得Java虚拟机的指令集要比汇编的指令集简单,为了适应各种平台的需求,实现通用性,降低了反汇编的复杂性,产生安全隐患。

(2)在Java编译器中,要将类编译成为一个单独的类文件,因此,这也从某种程度上简化了反编译的过程。

(3)java类文件中,保存了很多原有的方法和变量的名称,因此,通过对名称和变量方法的访问,让反编译变得更容易。

4 Java类文件保护技术

4.1 编辑本地执行文件

这种类文件保护在指定的计算机环境上,编译成可运行的程序。因此,编译后得到的文件是二进制的可执行文件。相对于在Java虚拟机中对类文件进行加载和执行,这种本地编译的方式具有节约空间,并且程序执行速度快等优点。这种本地编译的方式的全晨读和本地执行程序的安全程度相似。

4.2 数字水印技术

数字水印技术根据著作权人的基本信息,按照某种特定的方式植入信息,在出现版权纠纷的时候,会通过设定的算法提取数字水印,验证版权的归属,保护著作人的合法权益,避免产生盗版的问题。目前,数字水印技术已经应用在图像,视频和声音的多媒体中。水印的存在,要在不损坏原来数据的前提下进行,并且在软件中应用数字水印是目前主流的一种发展趋势,能够保护计算机代码的安全性。

但是这种数字水印技术也不是不能攻破的,在Java类文件中为了防止反编译现象的出现,在编译代码的时候要对其进行优化设计,否则很容易被反编译程序员看出,将原来的数字水印擦掉,后者伪造水印。

4.3 代码混淆技术

在反编译器出现以后,代码混淆技术和理论也相应的得到了发展。目前较为常见的混淆代码器包括了:JODE,Jsrink等。此外,Sun公司也退出了自己的混淆器JADE。但是,代码混淆技术也存在一定的局限性。因为代码混淆器不能对程序的关键词,和字符等进行混淆,因此,即便是通过混淆,也还是能够得到程序的框架信息,通过输出的字符和引用的类信息可以确定对那些输出的函数进行定义,并且可知道程序中所调用的本地函数信息等。

5 发展趋势

可知这几种保护方式不能绝对的确保java类文件的安全性,只要黑客有足够的耐心,就会将这些java类文件进行反编译。传统的Java类文件加密方式有RSA、AES等,但其对加密长度是有限制的,在一些较为复杂和长数据加密过程中会存在异常的现象,因此,本文提出了一种分块Java类文件的RSA加密算法,可有效地对长数据进行加解密操作,节约加解密时间,提高算法的效率,是未来Java类文件加密技术发展的主要趋势。

6 结论

Java类文件的保护关系到整个应用程序的安全性,因此,非常重要。本文主要论述了目前主流的Java类文件的保护方式,并对其优缺点进行论述。在此基础上,给出未来Java类文件保护技术发展的主要趋势是基于混淆RSA加密技术,并针对现存加密长度有限的问题,采取分段加密的方式,提高加解密的安全性,实现Java类文件的保护。

参考文献

[1]林汉玲,方颖珏,王晓峰.密码技术在Java类文件保护技术中的新应用[J].现代电子技术,2013,36(03):102-103.

[2]林汉玲,王晓峰,陈晓彬,等.一种基于混合密码算法的Java类文件保护技术[J].桂林理工大学学报,2015,35(01):202-206.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!