JavaWeb应用软件保护方法研究_第1页
JavaWeb应用软件保护方法研究_第2页
JavaWeb应用软件保护方法研究_第3页
JavaWeb应用软件保护方法研究_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaWeb应用软件保护方法研究摘要:Java语言在Web应用软件领域得到了广泛的应用。由于跨平台需求和动态连接特性,使Java类文件很容易被反编译。对传统的Java类文件保护方法进行分析,在代码混淆加密技术的基础上,提出了一种纯Java技术的代码授权方法。该方法保持了Java技术的跨平台特性,提升了Java类文件的安全性。实践结果表明,该方法是简单有效的。□关键词:Java;软件保护;代码混淆;软件授权□1代码混淆概述□目前针对Java源文件方法主要有以下几种方法:本地编译技术、数字水印技术、ClassLoader加密技术以及代码混淆技术。口Java本地编译是指将Java应用程序编译成本地应用程序,如Windows平台下名为exe的应用程序。通过java虚拟机将由源代码生成Java类文件,再将类文件编译成可执行文件。口用该技术生成的本地应用程序是二进制格式的可执行文件,但该方法牺牲了Java的跨平台特性,对于桌面应用程序的开发问题不大,但对于web应用程序的开发,则是一个致命缺陷。同时该方法技术层面还存在不成熟,支持不完善的问题,不适合采用。□ClassLoader的基本目标是对类的请求提供服务。当JVM需要使用类时,它根据名称向ClassLoader请求这个类,然后ClassLoader试图返回一个表示这个类的Class对象。通过覆盖对应于这个过程不同阶段的方法,可以创建定制的ClassLoader。在装入原始数据后先进行解密,然后再转换成Class对象。由于把原始字节码转换成Class对象的过程完全由系统负责,因此只需先获得原始数据,接着就可以进行包含解密在内的任何转换。□这种方案比其他方案更加安全,然而这种加密方法存在一个漏洞,由于ClassLoader的类是用Java编写的,如果对ClassLoader类进行反编译,提取其中解密算法,就可解密所有被加密的其他类。□数字水印技术是将一些标识信息(即数字水印)直接嵌入数字载体(包括多媒体、文档、软件等)当中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。在需要证明程序是否非法使用时,数字水印就变得很重要。使用水印技术并不能阻止类文件被反编译,但是可以在需要确认某些程序是否属于剽窃时提供有效证据。它可以有效地保证开发者对该程序的版权。□然而数字水印技术只是一种被动防御技术,只能在侵权已经发生后,为证明产权的归属提供证据时发挥作用,而不能从根本上防止侵权行为的发生。□代码混淆是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。代码混淆技术是目前比较成熟和流行的Java类文件保护方法,其本质上是类文件模糊技术。处理以后的类文件功能和处理以前的类文件功能在逻辑上是等同的,即运行后能够得到一样的输出结果。□Java因其具有跨平台性、开放性和高度成熟等特性得到了广泛应用。目前的应用主要是Web应用程序。Web应用程序常以War包的方式发布。对这些封装包最常见的保护方法是代码混淆技术。口一些专业代码混淆工具的效果已经非常成熟,如:ProGuard.JavaGuard>RetroGuard等,合理使用这些工具就可以对自己的产品起到很好的保护作用。使用代码混淆工具,操作简单便捷,能让开发团队专注业务的开发。被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,需要配合使用软件授权机制保证源代码的安全。□2软件授权设计与实现□2.1授权方法选取□一般商用软件的授权方式分为3种:序列号、联网认证、授权码。序列号方式是最常见的软件授权方式,也为绝大多数商用软件所采用,它的安全性最低,最容易盗版,但这类软件大多为通用型软件,有广大的用户群,厂商依然能获得足够的利润。多为桌面系统软件所采用。联网认证则是随着互联网的飞速发展,而出现的新型软件授权方式,已经在Microsoft和Adobe等厂商的产品中得到广泛应用,首先要开发一个客户端验证软件,其次还要架设专门的提供验证授权服务的网站,从技术成本和资金成本上来讲,都不适合中小软件公司;也不适用于专用性较强,用户群较小的软件。在完成软件开发后,如果不想被盗版,可以采用授权码的方式来保护成果。它的步骤可以简单归结如下:口①程序获得运行机的唯一标识(如:网卡硬件地址、CPUID序列号、硬盘序列号等);②程序将获得的唯一标识加密(可灵活选用各种加密算法进行加密),然后由用户或者程序自动将加密后的标识作为申请码发送给软件的开发方;③开发者将加密后的唯一标识解密,然后开发者再将唯一标识加密作为授权码发送给客户注册;④客户将开发者发送的授权码进行注册解密,解密后的内容其实就是:唯一标识;⑤每当程序启动,首先解密已获取的授权码,然后读取网卡硬件地址、CPUID序列号、硬盘序列号等,进行验证,比较两个标识是否一致。如果经比较一致,则认为是合法授权安装,程序正常启动;如不一致,则认为是非法授权安装,程序停止启动。□获取运行机唯一标识的时候,可以灵活选取网卡硬件地址、CPUID序列号、硬盘序列号中的一种或几种来进行,虽说CPUID序列号是唯一的,但从实际经验来看,仍然存在同一厂商,同型号CPUID序列号相同的情况,硬盘也存在这个问题,或者存在某些硬件信息无法获取的情况。从软件可靠性方面考虑,真正唯一的是网卡硬件地址,在做标识获取的时候,最好包括运行机网卡硬件地址。采用授权码的方式实际上是用软件的方式来代替硬件加密狗的功能,它相比硬件加密狗的优势在于,费用低廉、不易破解、一旦软件被人破解,开发者无需对软件做过多改动,只需更改获取标识码的硬件组合,再变换加密算法,即可应对破解,这对于投入高、用户群小、专业性强的软件是最优选择。□2.2授权实现D为方便对客户的系统进行授权,需要开发一个授权号生成软件,考虑到整个系统的一致性,可以考虑使用JavaSwing来进行,但在Eclipse下进行Swing开发,相应的插件要么需要收费,要么配置繁琐,开发Swing最好的工具是Netbeans,可视化程度非常高,完全支持所见即所得的效果,深受业界推崇。□3结束语口世界上不存在无法破解的软件,只要破解方投入足够的人力和资金,肯定能有所收获。开发的软件无法破解,不是最终目标,只要让破解方的投入高于收益,加密授权策略就取得了成功。我公司开发的中冶数码-工业总图信息发布系统是基于ArcI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论