欢迎来到天天文库
浏览记录
ID:5929027
大小:27.50 KB
页数:6页
时间:2017-12-29
《java软件保护技术应用和不足探究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java软件保护技术应用和不足探究 【摘要】Java以其简单性、跨平台性等各种优秀特性赢得许多著名公司的青睐,但Java软件在知识产权的保护上也面临着很大的安全风险。通过分析Java软件面临的风险,对本地化技术、远程接口访问技术、软件数字水印技术以及混淆技术等软件保护技术的用途和不足进行了简要的分析。【关键词】Java软件保护;混淆技术;数字水印技术1.Java软件面临的风险6在Java的编译过程中不将变量和方法等符号的引用转换为数值引用,也不确定程序执行过程中的内存状态,只是将这些符号的引用信息保留在类文件中,由解释器在运行过程中创建内存布局,然后再通过查找表来确定一个变量或方法所在的地
2、址。Java源代码不像C/C++源代码一样被编译成二进制机器码,编译Java源代码会生成中间字节码,是一种与平台无关的源代码的表示方式。字节码在加载后可以被解释或编译,这就产生了高级编程语言到底层机器代码之间的两步变换。是这一中间步骤使得反编译Java字节码得到的源代码近乎完美。字节码携带了在源文件中可以找到的所有重要信息。尽管注释和格式丢失了,但所有的方法、变量和编程逻辑都完好的保留下来,由于字节码不表示最底层机器语言,因此代码的格式非常类似于源代码。Java类文件不是真正的二进制文件,而是一种有格式的中间代码,这就给反编译Java类文件提供了可能。反编译得出的代码具有很高的质量,基本上可
3、以完全反映编写者的思路,这样一来,软件开发商和软件开发人员投入大量精力和艰苦努力编写的源代码就很容易被黑客窃取,软件中包含的重要算法也会泄露出去。因此Java应用程序也就毫无保密性可言,Java软件在知识产权的保护上面临着很大的安全风险。2.Java软件保护技术研究目前的Java软件的保护方法大多是基于单机应用的研究,传统的Java软件保护方法主要有本地化技术、远程接口访问技术、软件数字水印技术以及混淆技术,其中软件数字水印技术和混淆技术是目前研究、应用较多,受到广泛关注的技术。2.1本地化技术6Java本地化,是指通过将Java应用程序编译成本地应用程序来达到增加反编译的难度,实现软件保护
4、的方法。实现步骤如下:首先编写Java源代码,然后通过Java编译器将Java源代码编译成Java类文件,最后使用本地编译工具将Java类文件编译成二进制的本机应用程序。本地化技术虽然能够很好的保护Java类文件,使其达到与传统的用C/C++等语言开发的软件一样的安全强度,但也存在一些问题:本地化技术能够为较简单的单户机应用软件提供较高水平的保护,其反编译的难度与传统的C/C++开发的软件相同,但还无法对复杂的应用软件提供全面的保护,也无法保护B/S结构的应用软件,此外,要准确的诊断和定位本机编译产生的Java应用程序中出现的问题也是十分困难。虽然目前发展还很不成熟,但却是Java领域一项广
5、受关注的技术。实践和理论己经证明,对于某些应用软件和使用环境,本地化技术不失为一种优秀的解决方案。2.2远程接口访问技术分布式结构是现代软件开发中广泛采用的一种体系结构,通常将软件分为客户端和服务器端,核心的功能模块和业务流程都部署在服务器端为客户端提供服务,客户端负责采集数据、提交服务请求和与服务器端通信,这种体系结构的采用可以提高系统的可移植性和互操作性,大幅度降低软件的开发成本。远程接口访问技术能有效地保护关键的Java类文件,从而达到软件保护的目的。但是这种方式也存在着明显的局限性和很大的安全隐患:远程接口访问技术实际上是将保护的焦点从关键的类文件转移到了应用服务器上。在这种体系结构
6、下,制定完善的安全机制来保护端口至关重要,因为如果应用服务器被攻破,那么所有部署在服务器上的服务模块和类文件就完全暴露在攻击者面前,后果不堪设想。62.3软件数字水印技术软件数字水印是众多数字水印的一种,它的主要保护对象是计算机代码,包括源代码和机器码。使得它们免于或者减少遭受非法复制和非法篡改的危险,由于计算机代码是不能容忍任何错误的,因此一些传统的利用可允许错误范围内修改计算机程序从而嵌入水印的方法将不适用于计算机软件。软件数字水印技术也存在一些不足,比如:需要插入额外的代码,需要仔细地编写函数及其调用,否则容易被有经验的反编译者识破,从而擦除水印。另外,静态软件数字水印算法的健壮性相对
7、较差,而动态软件数字水印算法虽然具有很好的健壮性,但是它只能保护整个应用程序,而不能保护某一部分特定的代码,同时,动态软件数字水印的检测方式令它的某些应用受到限制。目前的水印算法在提供可靠的版权证明方面或多或少都有一些的尚不完善的地方,因此寻找能提供完全可靠版权保护的软件数字水印算法成为一个重要的课题。软件数字水印的用途主要有以下几个方面:作为侵犯知识产权的证据;发现被剽窃的程序;追踪非法拷贝的源头。2.4混
此文档下载收益归作者所有