欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

Java软件保护技术研究

时间:2011-04-23  作者:秩名

论文导读:的应用程序,来达到增加反编译的难度,实现软件保护的方法实现步骤如下:首先编写Java源代码,然后通过Java编译器将Java源代码编译成Java类文件,最后使用本地编译工具将Java类文件编译成二进制的本机应用程序。代码混淆技术是目前比较成熟和流行的一种软件保护技术。
关键词:Java,保护技术,研究
 

一、本地化技术

Java本地化,是指通过将Java应用程序编译成本地应用程序,如Windows

操作系统下扩展名为.ex。的应用程序,来达到增加反编译的难度,实现软件保护的方法实现步骤如下:首先编写Java源代码,然后通过Java编译器将Java源代码编译成Java类文件,最后使用本地编译工具将Java类文件编译成二进制的本机应用程序。

Java本地化技术产生的是二进制格式的可执行文件,与在虚拟机中执行的Java应用程序相比,可以产生更快的执行速度和更小的内存占用。由于程序已经从类文件被编译成二进制的可执行文件,原本类文件由于自身结构特性所带来的安全隐患也就随之消失了,反编译不再成为Java软件的安全威胁,在这种情况下,Java软件的安全性达了到与传统的用C/C++等语言开发的软件一样的强度。发表论文。目前许多本地编译工具被开发出来,并获得广泛的使用。

本地化技术虽然能够很好的保护Java类文件,使其达到与传统的用C/C++等语台开发的软件一样的安全强度,但也存在以下几个问题:

1、失去了“一次编译,到处运行”的跨平台性

本地编译得到的是二进制格式的可执行文件,它依赖于具体的运行平台,只能在具体编译过程执行的同一种平台上运行,因而失去了跨平台的特性。

2、无法应用于B/S结构的网络应用软件

本地化技术依赖于具体的运行平台,生成的是一个可执行程序,这种解决方案可以较好的保护单机应用软件。但却无法应用于网络应用软件,因为服务器端程序运行在Java应用服务器上,因此本地化的解决方案明显不支持这种类型的应用程序。

3、错误定位困难

Java软件本地化处理是一个相对较新的课题,诊断分析的理论基础薄弱,要准确的诊断和定位本机编译产生的Java应用程序中出现的问题十分困难,尤其当Java类文件版本中没有发生该错误的时候。

二、远程接口访问技术

分布式结构是现代软件开发中广泛采用的一种体系结构,通常将软件分为客户端和服务器端,核心的功能模块和业务流程都部署在服务器端为客户端提供服务,客户端负责采集数据、提交服务请求和与服务器端通信,这种体系结构的采用可以提高系统的可移植性和互操作性,大幅度降低软件的开发成本。现在通过接口提供服务的标准和协议越来越多。把实现核心功能的类文件放在远程服务端,这种模式就是现在流行的Java服务器应用程序,也称为web应用程序。

Web应用程序模式的发展不但适应了各种计算环境的需要,从另外一个角度看也实现了源代码的隔离,起到了保护Java软件的作用。可以通过远程接口访问达到软件保护的目的,防止黑客或者其他软件分析人员通过反编译核心算法所在的类文件得到源代码。所谓远程接口访问是指将应用和实现相分离,将软件的核心算法等关键部分部署在远程的应用服务器上,用户通过访问应用服务器的接口提交服务请求和获得服务,在整个过程中用户无法访问到关键部分的类文件。远程接口访问技术使得用户无法获得类文件,也就从根本上防止了对类文件进行反编译获得源代码的可能性。

远程接口访问技术能有效地保护关键的Java类文件,从而达到软件保护的目的。发表论文。但是这种方式也存在着明显的局限性和很大的安全隐患:

1、远程接口访问技术只适用于B/S结构或者分布式结构的软件,而对单机运行的应用软件则不适用。

2、远程接口访问技术实际上是将保护的焦点从关键的类文件转移到了应用服务器上。在这种体系结构下,制定完善的安全机制来保护端口至关重要,因为如果应用服务器被攻破,那么所有部署在服务器上的服务模块和类文件就完全暴露在攻击者面前,后果不堪设想。

三、软件数字水印技术

软件数字水印是众多数字水印的一种,它的主要保护对象是计算机代码,包括源代码和机器码。使得它们免于或者减少遭受非法复制和非法篡改的危险。由于计算机代码是不能容忍任何错误的,因此一些传统的利用可允许错误范围内修改计算机程序从而嵌入水印的方法将不适用于计算机软件。

1、软件数字水印的用途

(1)作为侵犯知识产权的证据

在一般情况下,发生剽窃事件时,由于难以举证,常常难以判断真正的原创者。引入软件数字水印技术后,在程序中嵌入代表作者身份的软件数字水印,那么在对被怀疑的程序进行验证时,就可以用水印解码的方法从程序中得到真正的作者的信息。

(2)发现被剽窃的程序

要确定一款软件中是否包含剽窃的程序模块是一件很困难的事情,因为通常相对于程序整体而言,剽窃的程序模块只是很小的一部分,非法程序和原程序的具体规范可能会有很大的不同。利用数字水印可以有效的找到被盗的程序模块,对于在互联网上流通的程序,有一种爬虫技术,它在互联网上到处活动,搜寻特定的目标,可以利用爬虫找到包含特定数字水印的程序,从而发现被盗模块。

(3)追踪非法拷贝的源头

由于计算机软件极其容易被无差异复制,不法分子在获得授权版本后可以对其进行非法复制和分发以获得经济利益。因此,有必要登记授权用户信息以追查非法拷贝的源头。仅仅登记授权用户信息是不够的,因为这无法将特定的授权版本和具体的授权用户联系起来。为了达到追踪目的,必须提供这种联系,而且这种联系必须是隐秘的,否则很容易给破坏。数字水印正好可以满足这些要求,它通过在把授权用户信息嵌入到授权版本来建立这种内在联系。当发现市场上流通的盗版软件时,可以检测水印信息从而获得授权用户信息。对参与盗版的授权用户进行惩罚,从而减少这种行为的发生。

2、软件数字水印的不足

软件数字水印技术也存在一些不足,比如:需要插入额外的代码,需要仔细地编写哑函数及其调用,否则容易被有经验的反编译者识破,从而擦除水印。另外,静态软件数字水印算法的健壮性相对较差,而动态软件数字水印算法虽然具有很好的健壮性,但是它只能保护整个应用程序,而不能保护某一部分特定的代码,同时,动态软件数字水印的检测方式令它的某些应用受到限制。目前的水印算法在提供可靠的版权证明方面或多或少都有一些的尚不完善的地方,因此寻找能提供完全可靠版权保护的软件数字水印算法成为一个重要的课题。

四、混淆技术

1、混淆的定义

代码混淆技术是目前比较成熟和流行的一种软件保护技术。代码混淆技术是对类文件进行代码语义、程序流程和逻辑结构的重新组织,代码混淆并不能增加反编译的难度,使用反编译器仍然可以对混淆后的类文件进行反编译,得到代码,但此时的代码是经混淆后的代码,可读性己经大大降低,难以从代码中发现源代码的编写思路和关键算法,从而达到保护软件的目的。典型的混淆技术包括去除所有的调试信息,使用机器生成的名称重命名包、类和方法等。目前的混淆程序提供的功能则更强大,通过重构现有的逻辑和插入不执行的伪代码来改变控制流程。混淆的前提是变换不会破坏字节码的有效性,也不会改变对外所表现的功能。混淆的可行与反编译的可行是出于同一原因:Java字节码是标准化的,而且是很容易归档的。混淆程序加载Java类文件,分析其格式然后根据所支持的特性进行变换。发表论文。当所有的变换完成后,字节码就保存成一个新的类文件。新文件具有不同的内部结构,而其行为与原始文件一致。

2、混淆技术存在的问题

从安全性角度看,混淆确实可以在很大程度上破坏反编译代码的可读性,增加逆向工程的难度,有效地保护软件,但并不是绝对的。实践证明,除非使用控制流程的混淆,打乱程序的流程,否则阅读和处理混淆的代码并不是很困难的事情。即便使用了流程控制,具备重量级的调试程序和足够经验的攻击者仍然可能破解软件。


【参考文献】
【1】申茜.JAVA软件面临的风险及其保护.电脑知识与技术(学术交流).2007/23
【2】胡燕京.软件保护研究及其在Java软件保护中的应用.现代电子技术.2007/15
【3】甘晟科.Java软件的加密方法研究与应用.计算机与现代化.2005/02
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:Java技术在XML和数据库通信技术中的应用
下一篇论文:JNDI技术及其使用方法(图文)
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文