论文部分内容阅读
Java是计算机技术发展和信息交换的一个重要标志,其操作简单,兼容性强,安全,高性能等特点成功改变了传统软件的开发模式,带来了一场软件的新变革。因此,在软件开发中得到了广泛的应用。与此同时,Java使用量的增加,使得软件在安全保护上面带来了巨大的考验,Java虽然能够跨平台使用具有较好的灵活性,并具有独立的编译方式,但是其源代码编译后,并没有生成二进制的文件,而是一种面向虚拟机的文件,我们称之为Java类文件,属于一种具有格式的中间代码,容易被黑客进行反编译Java。反编译得到的代码和源代码差别不大。因此,存在Java文件窃取的现象。为了避免文件代码窃取现象的发生,提高Java类文件安全性措施势在必行。近年来,企业和java开发人员针对java类文件的保护,在对java底层类加载机制的深度分析后,提出了一系列的保护措施,如本地编译、代码隔离技术、代码混淆技术、数字水印技术。本文对Java类文件的保护现状及保护技术进行深入研究后,在前人研究的基础上分析总结现有的Java类文件保护技术的主要算法和优缺点。传统的Java类文件加密方式有RSA、AES等,但其对加密长度是有限制的,在一些较为复杂和长数据加密过程中会存在异常的现象,因此,本文提出了一种分块Java类文件的RSA加密算法,可有效地对较长数据进行加解密操作,节约加解密时间,提高算法的效率,具有重要的研究意义。在一个相对比较安全的网络环境下,程序员往往会忽视对自己代码的保护。所以文章采用JNI结合类加载器装载等java技术设计了一套不透明性较大的类文件保护机制。并分析和测试了这套类文件保护机制的有效性与可靠性。文章的主要工作有:1.采用JNI技术结合C++语言完成对类文件的加密操作。通常用于加密的类文件自身是显露于大众视野下的,所以我们采用C++语言,将本地加密类设计成动态链接库来完成。2.设计加密解密的算法,完成代码测试。加密解密的测试结果能直接说明其性能的好坏。我们采用手工测试的方法对算法进行了各个方面的测试。3.通过类加载器来实现类文件的解密。为了隐藏解密细节,我们通过自己设计的类加载器在加载类文件的时候嵌入解密算法对类文件进行解密。然后我们的类加载器也是类文件,所以我们要对类加载器进行加密,最后通过修改jvm来实现类加载器的解密和调用。