基于密钥管理的Java软件保护技术研究

来源 :青年科学·教师版 | 被引量 : 0次 | 上传用户:shuang901014
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:Java软件在知识产权的保护上面临着很大的安全风险,Java软件保护是一个亟需解决的课题。在深入研究Java类文件加载机制的基础上,结合密码学中加密体制、密钥管理等技术提出了一种新的Java软件保护方案-加密类文件保护方案。
  关键词:Java 软件保护;密钥管理
  Java软件保护是目前业界,尤其是很多大公司非常关注的一个课题,因为许多大型的工业、医疗等设备的实时应用软件都是采用Java开发的,而Java类文件本身固有的特性给攻击者提供了反编译的机会,一旦这些软件被破解,将给设备商带来不可估量的损失。用加密的方法来保护Java类文件,加密可以有效地对抗反编译,加密系统的关键问题是如何安全有效地管理密钥。
  一、软件保护技术的应用与不足
  在对Java体制和Java类文件深入分析研究的基础上,人们从不同的角度出发,提出了多种保护技术,这些保护技术在一定程度上起到了保护Java类文件的作用,但是都存在各自的缺点和不足。将本地化技术应用在Java软件保护上,可以收到很好的效果,但是也存在明显的问题,本地化技术是以丧失Java的跨平台性为代价的,而这恰恰是Java广受欢迎的重要原因。数字水印技术目前被广泛的应用,但是数字水印技术不是一种主动的防御技术,而是一种被动的取证技术,只能在侵权行为己经发生,攻击者己经成功获得代码,为证明产权的归属提供证据时发挥作用,而不能从根本上用技术手段防止侵权行为的发生。代码混淆技术是目前应用最广泛、研究最多的一种技术手段,混淆使用的是类文件模糊技术,通过使用各种手段模糊代码的语义信息、打乱程序的执行流程,从而达到降低反编译代码可读性的目的,但是混淆的前提是不能对程序的外部功能表现有任何的影响,在重构技术日趋成熟的今天,只要有足够的耐心,这些混淆了的代码仍然是可以被反编译出来并且能够被读懂的。
  二、密钥保护的可行性分析
  在Java软件保护中,需要保护的内容是体现软件价值的创新之处和核心算法,这些都包含在不同的类文件中,如果能够确保核心类文件的内容不被攻击者获得就可以确保Java软件的安全性。利用密码技术,可以将敏感信息加密并通过一种并不安全的途径传递。这样,只有拥有密钥的收件人或终端才能解读原始信息。加密技术是一种数据安全的科学,要完成信息加密需要一种加密算法和一个密钥。加密的安全性取决于加密算法的强度和密钥的保密性。现代密码理论和应用实践证明,使用高级加密算法如:DES、AES等算法加密文件,在攻击者唯密文攻击的情况下,加密文件具有极高的安全性,即在加密机、解密机受到良好保护不被攻击者获得的情况下,可以确保加密文件具有相当的安全性。而对类文件进行加密的方法来保护类文件,能够实现保护Java软件的目的。
  三、软件保护技术的方案与实现
  在Java软件保护技术中,密钥是整个系统的关键,而攻击者对系统的攻击通常也从对密钥的攻击入手。对软件系统密钥攻击的常见方法是跟踪软件的执行流程,通过对软件解密流程的分析来探测密钥的存放位置,而密钥通常会存放在相对固定的位置上,这样跟踪者在多次跟踪后,就比较容易确定密钥的位置。
  1、Java的类加载机制
  Java语言编译器把源代码转换为虚拟机上的机器语言,产生的虚拟机代码存储在扩展名为class的类文件中。执行时,虚拟机解释程序解释这些类文件,把虚拟机上的指令序列翻译成目标机器的机器语言。在Java虚拟机中,各个Class Loader对象是按层次结构组织的,除了最顶层的Bootstrap Class Loader以外,每一个Class Loader对象都有一个Parent Class Loader。这种父子层次结构的组织关系是建立在调用关系的基础上,而不是建立在各个Class Loader类的继承关系上。虚拟机除了装载某个特定程序需要的类外,还必须装载系统类(System Class)。虚拟机知道如何利用引导类装载器Bootstrap Classloader装载系统类(例如从JAR文件rt.jar中读取),Bootstrap Classloader是虚拟机的一个重要组成部分,它通常是用C语言实现的。我们无法控制系统类的装载过程,但是可以用定制类装载器装载应用程序类。
  2、定制启动程序
  对单机应用程序而言,Decrypt ClassLoader类是在定制的启动程序中被使用并创建对象的,启动程序首先用Deerypt ClassLoader对象来载入并解密应用程序的 MainClass,应用程序中所有其他的类都是被 MainClass直接或间接的引用,因而这些被引用的类都会采用Deerypt ClassLoader来载入并解密。这里的启动程序是一个BootApplicatinn类,该类的作用就是替代己经加密过的 MainClass来启动己经加密过的Java应用程序。该类和Decrypt ClassLoader类一样,是不能被加密的,否则就没有类可以启动已经加密过的Java应用程序了。而且Boot Application类的内部实现中也没有任何与加解密有关的信息,即使被成功反编译也是没有意义的。BootApplieation类也是一个Main Class,是一个可以启动并运行的Java类。在BootApplication类中首先保存传入给真正应用程序的 MainClass的参数,以便在解密生成真正的MainClass后,可以把保存好的参数传给它。BootApplication类首先创建一个DecryptelassLoader对象,用该对象来载入真正的MainClass类,这其中使用了关键的Class.forName( )方法。
  3、web应用程序的保护
  在web应用程序中,发布的应用程序是War包,其中包括Servlet,JSP,HTML以及JavaScript等各種文件。只有把War包部署在应用服务器上,Web应用程序才能运行。在单机应用程序中,MainClass类文件被加密,应用程序的启动是由Boot Application类来完成的。在BootApplieation类中需要创建Boot ClassLoader对象并解密MainClass类文件,这样被MainClass引用的所有类都会被DecryptClassLoader对象载入。而在Web应用程序中,启动程序始终是Web服务器,这是一个无法改变的前提。当War包被加密之后,包中的所有类文件都是加密过的Java类文件。因为WebAppClassLoader只能加载正常的Java类文件,而不能加载己经被加密的Java类文件,所以Web服务器无法启动己经被加密过的应用程序。为了解决这个问题,本方案设计的方法是由Web应用程序负责创建DecryptClassLoader。这个方法的优点是无须改动Tomcat中的任何文件,缺点是需要修改Web应用程序的部分源代码。
  四、结语
  应用此方案实现Java软件的保护,单机应用程序不需要对应用软件的代码作任何改变,网络应用程序的改动也比较小,将servlet的接口和实现分离即可,只需要使用定制的工具加密相应的类文件,并在应用环境下使用定制的Classloader即可实现类文件的解密,因此本方案是一种通用性强、高效方便实现Java软件保护的方法。
  参考文献:
  [1]申茜,辛晓辉. JAVA软件面临的风险及其保护[J].电脑知识与技术(学术交流),2007,(23).
  [2]胡燕京,张健,王海义,刘轶群.软件保护研究及其在Java软件保护中的应用[J].现代电子技术,2007,(15).
  [3]甘晟科,段隆振,王凤斌. Java软件的加密方法研究与应用[J].计算机与现代化,2005,(2).
  作者简介:庄笑衍(1990,9-),男,江苏宿迁人,天津工业大学2009级软件工程专业本科生。
其他文献
摘 要:近年来,FDI出口溢出效应成为国际贸易理论研究的新动向之一,这一领域的研究尚处于发展阶段。因此,本文试图从时间脉络上对这一研究领域进行梳理和归纳。  关键词:FDI;出口溢出效应;水平;垂直  已有许多研究证明FDI企业出口对东道国商品出口数量的提高和出口结构的改善有着重大的作用,但是这类研究大多从总体上来验证这种影响,即FDI对东道国出口的直接影响。这种影响很大程度上是由外资企业本身所带
30多年来,杭州的经济发展迅速,人口素质不断的提高,产业结构也在不断优化,但是人口素质和产业结构变动之间的关系还没有进一步的明确.选择杭州市1978年到2010年人口普查数据,
吴有性的《温疫论》对汗法很重视,本文从发汗的机理、类型、动用的方剂,注意事项及汗法运用的意义等方面阐释了吴氏温疫论中汗法的理论,已经从最初的发汗解表发展为因势利导,
摘 要:运输方式的产生有它的必然性,它与人类历史的发展和人们对于运输需求的不断扩大密切相关。我国交通运输业主要由五种运输方式组成。本文从这五种运输方式的优缺点出发,分析了这五种运输方式所存在的问题和近几年来它们的发展趋势,最后对运输业以后的发展方向进行了展望。  关键词:运输工具 运输结构 发展趋势  1各种运输方式的产生及发展  运输的产生源于人们对物资的需求得不到满足。它与生产力的发展,生产工
摘 要:针对带钢的跑偏问题,对各种影响因素而出现的跑偏加以说明、分析。提出采用控制辊系统纠偏方式,并对其纠偏方式进行分析、探讨。该方法能有效地解决带钢跑偏问题。  关键词:带钢;跑偏;张力;纠偏  1 引 言  在现代化连续热镀锌作业线中,带钢全长数千米,要保证机组高效率作业,并使带钢无故障运送,并且卷取时边缘整齐,这是比较困难的。特别是近年来,随着热镀锌工艺设备的不断改进、机组运行速度逐年的提高
摘 要:随着时代的进步,冶金企业面对着越来越大的环保压力,在2012年新发布的《钢铁烧结、球团工业大气污染物排放标准(GB 28662-2012)》中,要求SO2排放限值为200mg/m3。本文将结合球团烟气特点,分析几种脱硫工艺,探索适合球团生产应用的脱硫工艺。  关键词:脱硫; 球团; 环保  Abstract  With the progress of the times, metallur
摘 要: 钢结构防火涂料是防火涂料中的重要品种,本文简单的介绍了钢结构防火涂料的分类、组成及其性能特点,并对涂料的选择和应用进行了说明。  关键词:钢结构防火涂料; 防火涂料种类; 防火机理  一、钢结构防火涂料简介  钢结构作为高层建筑结构的一种形式,以其强度高、自重轻有良好的延伸性、抗震性和施工周期短等特点,在建筑业中得到了广泛应用。但是钢材作为建筑材料在防火方面又存在一些難以避免的缺陷,它的
摘 要:试验结果表明,影响青瓜第一朵雌花出現时间、瓜长和瓜重的主要因素为品种,对同一品种而言,施用多氨液肥的,其第一朵雌花出现早,瓜长、瓜重和瓜果实含糖量等项目均比施用其它液肥优。  关键词:品种 多氨液肥 施丰乐液肥  一、试验目的  青瓜是广东省主要北运蔬菜。另据报导:多氨液肥及施丰乐液肥均是一种多功能性生理型有机液肥。用之浸种或根外追肥,有调节植物生长、补充营养,促进根系活力,提高光合作用机
摘 要:破鳞辊是酸洗机组开卷机区域重要的附属设备之一,其主要作用是对热轧卷进行预破鳞,将带钢表面附着力差、粗大的氧化铁皮去除。破鳞辊在工作过程中直接与大张力、高速的带钢表面接触,其结构的优劣对破鳞辊的可靠性和使用寿命紧密相关。本文以某钢厂酸洗机组破鳞辊为例,通过对破鳞辊使用情况的分析,找出影响其使用寿命的主要因素,提出新的结构改进方案,并予以实施,大大提高了破鳞辊的使用寿命。  关键词:酸轧机组
摘 要:介绍了如何运用JAVA开源技术来设计与实现电子商务实验模拟系统,给出了系统结构、功能及实现方案。  关键词:电子商务;实验模拟系统;Java;开源技术  目前高校电子商务专业相关课程的教学迫切需要建立电子商务实验软件平台,该平台应实现包括B2C、C2C、B2B、电子数据交换(EDI)、现代物流应用系统、电子金融、安全电子交易身份认证等实施电子商务必不可少的软件功能模块。电子商务的高速发展对