基于混淆和水印的Java字节码安全技术的研究

来源 :大连交通大学 | 被引量 : 0次 | 上传用户:xiangxuehai0726
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Java程序由于平台无关性得以在Internet上迅速发布,但同时Java程序也面临着两个严重的安全问题:第一,侵权使用。Java编译器将每一个类编译成一个单独的class文件,这一特点让侵权使用Java class文件变的容易;第二,逆向工程。目前Java字节码的反编译技术已经很成熟,出现了许多Java反编译工具,这些工具能很好的把Java字节码反编译成Java源代码。为了保护Java字节码的安全,本文提出了一种新的保护模型:利用代码混淆和软件水印技术对Java字节码实施双重保护,从而保护了Java程序的知识产权。混淆Java字节码是在保持程序语义的前提下隐藏程序的内部信息,使得Java程序员很难读懂反编译后的Java源代码甚至于不能被正确的重新编译更甚者不能反编译。在Java字节码中嵌入水印就是将含有标识意义的信息嵌入到Java class文件中。也就是说利用混淆技术来阻止Java字节码的逆向工程,利用软件水印为Java class文件提供版权保护。研究了现有的代码混淆技术,在此基础上设计了词法转换算法、类的假重构算法,改进和完善了类拆分算法,总结了类型隐藏混淆的本质和与接口回调技术的区别,分析、细节化了三种能使反编译失败的控制流混淆算法,并针对程序切片严重威胁控制流混淆的问题找出了两种抵抗程序切片的混淆策略。研究了现有的一种针对Java字节码的水印算法。通过对水印算法的改进,提高了水印算法的鲁棒性、透明性。利用研究成果,设计并实现了名为JOCOW(Java Tool which combines obfuscation and Watermark technology)的系统,用户可使用该系统对Java class文件进行双重保护。保证Java字节码的绝对安全是不可能的,但是本文的研究可以给Java字节码提供版权保护和使Java字节码逆向工程价值减小。
其他文献
现实世界中的很多网络系统都可以抽象成社会网络,在这些网络中,节点表示个体,节点之间的边表示个体之间的相互联系。随着对社会网络研究的不断深入,人们发现网络具有社团结构
网格计算技术是目前国际计算机界的热门研究领域。网格是以资源共享为目的,支持对各种资源的远程和并发访问,利用互联网把地理上广泛分布的各种资源连成的一个具有单一系统镜像
资源描述框架(Resource Description Framework,RDF)是描述Web资源的标准数据模型。由于Web数据的半结构化特性,RDF查询语言应该提供对半结构化数据的查询机制。W3C新近提出的S
计算机系统计算单元与存储单元的性能差距越来越大。存储系统性能的优化对文件系统乃至计算机的整体性能提高有非常重要的作用。数据预取技术是重要的优化手段之一,它不仅用
伴随信息技术的发展,在网络时代出现了大量基于Web的应用系统。面向服务的体系结构(Service-Oriented Architecture,SOA)对现代软件开发模式产生了深远的影响。SOA凭借其松散耦
随着XML数据在互联网络上应用的不断增长,对庞大的XML数据流的查询正成为数据查询领域内研究的热点。XML流的查询问题主要归结到XPath的查询,而如何高效的处理XPath表达式中的
近年来随着嵌入式技术在各个领域的不断普及以及对于嵌入式产品需求的同步增长,使嵌入式技术在移动设备上的应用越来越广泛。因此作为个人信息设备的手持移动终端的普及非常的
随着虚拟化技术在云计算中的广泛应用,虚拟化技术为云计算带来了许多优点,比如节约成本,降低能耗,减少物理空间使用,简化并增强了使用环境的灵活性,加快了服务的供应,提高了
肺癌是癌症中最常见的恶性肿瘤之一。数十年来,肺癌的发病率和死亡率都呈现明显的上升趋势。提高肺部疾病治疗效果的最有效途径是早期检测与诊断。目前,CT扫描是诊断肺部疾病
未来社会对视频监控系统的发展有着越来越紧迫的需求。随着嵌入式技术的出现、图像压缩技术的提高和网络传输技术的提升,现行的视频监控系统主要围绕嵌入式系统进行开发和部署