APP下载

基于Java的软件保护技术研究

2022-09-22仓业金

电脑知识与技术 2022年23期
关键词:数字水印源代码代码

仓业金

(江苏省宿迁经贸高等职业技术学校,江苏沭阳 223600)

1 引言

在当前Java软件全面推广环境下,让软件开发思路和方式发生一定变化,加快软件开发步伐,同时凭借自身可移植性,在软件产品开发设计中全面普及和推广。随着Java软件的快速发展,让人们的生活方式和工作模式产生改变,给人们生活和工作提供便利条件。并且,Java软件技术的快速发展,有效增强国家综合竞争实力,有利于国家更好发展。但是因为Java软件自身具备开放性特点,给Java软件知识产权保护提出一定考验。通过对Java软件技术的分析与探究,找到Java软件技术中存在的问题,通过优化Java软件技术,改善当前Java软件知识产权保护状况,以维护软件开发公司及相关人员自身利益。

2 Java软件技术基本概述

Java语言是Sun公司研发的一种全新编程语言,展现出简单、跨平台等编程语言特点。在这些特点下,Java语言吸引了许多公司的注意。当开发人员对Java语言开发设计过程中,他们会让Java语言在不同设备和平台中运行,除了一些高新技术人员之外,Java被广泛应用的主要原因在于开发模式比较完善,开发大量资源。在Java语言作用下,转变以往软件开发模式,给软件开发行业运营发展提供新的方向[1]。结合目前情况,Java软件在各个行业中得到了广泛应用,有利于推动信息技术的改革发展。

Java语言可以在平台上独立运行,这是一种面向对象的操作。用户可以结合实际情况和要求设计和操作动态图片。Java语言具备稳定性特征,配备了多线程、内置验证器和其他设备,以避免受到病毒的攻击。由于Java具备诸多优势,当它用于互联网中软件研发时,得到了用户认可与支持。Java语言的优点为操作简单、面向对象多、自动存储、分布式计算、运行更加安全等。

3 Java软件常见的风险问题

在Java编译期间,变量和方法等符号的应用不会转变成数字引用,程序执行期间的内存状态也不会被精准界定。相反,这些符号的参考信息保存在类文件中,解释器在运行中实现内存布局,之后通过查找表确定变量或方法的地址。Java源代码和C/C++源代码比较有着明显差异,其无法编译成二进制机器代码,编译Java源代码会自动形成中间字节码,是一种独立于平台的源代码表示。字节码可以在加载后进行解释或编译,容易造成高级编程语言和底层机器代码之间的两步转换。在这种模式下,通过反编译Java字节码获得的源代码更加合理。在字节码携带源文件中,能够获得所需的各种信息,即便注释可能已经丢失,但是各种变量和逻辑参数基本保存,因为字节码并非最底层的机械语言,所以代码格式和源代码之间存在相似性[2]。

Java类文件并非二进制文件,属于一个具备格式化的中间代码,在这种情况下,给反编译的Java类文件形成提供有利条件。对于反编译的代码展现出较强的应用价值,可以展现出编写者设计方向。基于此,软件开发公司和设计人员需要把更多时间和精力放在编写源代码上,无暇顾及编码的安全保护,容易受到不法人员和病毒的攻击,使得软件被泄露。所以,在使用Java类文件时,保密性不强,Java软件的知识产权保护方面伴随一些风险。

4 基于Java的软件保护技术

4.1 本地化技术

Java本地化指的是把Java应用程序编译成本地应用程序,让反编译难度不断提高,实现对Java软件的安全保护。在具体追踪过程中,需要认真编制Java源代码,之后在Java编译器的作用下,把Java源代码进行编译处理,形成Java类文件,之后在本地编译器下把Java类文件主动编译成二进制适合本机使用的程序。本地化技术虽然可以实现对Java类文件的安全保护,可以实现和传统C/C++开发软件一样的安全保护,但是其不能对一些比较复杂的软件进行安全保护,如B/S结构应用软件。并且,在Java本地化处理过程中,要求精准判断和定位本机编译形成的Java应用程序,操作难度大。虽然当前其发展相对不完善,但是在Java领域中应用广泛,通过理论和实践探究,针对部分应用软件和环境,本地化技术是一个比较优秀的应用方式[3]。

4.2 远程接口访问技术

分布式体系结构作为当前软件设计开发中比较常见的一种体系结构,一般会把软件划分为两个结构,一个是服务器端,另一个是客户端,重点在于功能模板与业务流程均设计在服务器端,给客户端提供相应的服务,便于客户端及时获得所需的信息,接收服务申请,便于和服务器端信息交流,这种体系结构的应用,可以促进系统可移植性及操作性的提升,有效地节约软件开发设计成本。在远程接口访问技术的作用下,实现对Java类文件的安全保护,以提高软件运行安全性,但是这种方式在实际应用中存在一些局限性,伴随一系列风险。在使用远程接口访问技术中,实际上是把保护的重点由之前重要Java类文件转变成应用服务器,这种体系结构可以帮助相关部门构建一套专业的安全管理体系,实现对端口的安全保护。由于使用的服务器被不法人员攻击,则其他部署在服务器的服务模板和类文件将会被攻击者获取,引发的后果将是难以想象的。远程维护控制系统见图1。

图1 远程维护控制系统

4.3 软件数字水印技术

软件数字水印作为诸多数字水印中的一部分,其目的是对计算机的代码进行安全保护,其中包含了机器代码以及源代码,能够有效避免或减少非法复制和非法篡改的风险。因为计算机代码是不可以出现任何错误的,所以,一些通过在允许错误范围内对计算机程序进行调整来嵌入水印的传统方法将不适合应用在当前计算机软件中。软件数字水印技术在应用方面也会存在一些问题,如需要加入其他代码,认真编写函数及其调用,防止被一些专业能力强的反编译人员破解,消除水印。此外,静态软件数字水印算法不具备较强的稳定性,而动态软件数字水印算法则展现出良好的稳定性,但是其只能对某个应用程序进行安全保护,则无法实现对某个部分特定代码的安全保护。并且,动态软件数字水印检测方式容易受到部分应用因素的限制,当前水印算法在提供版权证明上可能会存在一些不足,所以需要找到一些能够提供比较稳定版权保护的软件数字水印算法,这也是当前相关部门重点关注的内容。数字水印框架见图2。

图2 数字水印框架

4.4 混淆技术

代码混淆是一种成熟且应用广泛的软件保护技术,在代码混淆技术的作用下,可以实现对类文件代码语义、程序流程以及逻辑结构进行重组,不会让反编译难度提高。通过反编译器,能够反编译模糊的类文件,并且获取代码。然而,这种情况下获得的代码为模糊代码,其可读性将无法保证,从代码中很难找到源代码的编写思路和重要计算方式,实现对软件的安全保护。模糊处理安全性比较高,能够保留应用程序。然而,在部分情况下,混淆程序执行的转换可能会给程序正常运行带来一定影响,例如,动态类加载、反射、序列化和违反命名约定等问题。虽然这些问题发生率比较低,一旦出现,将会给程序正常运行产生影响[4]。此外,在使用混淆技术过程中,让维护应用程序和故障排除难度不断加大,甚至无法获得理想的工作效果。Java异常事件处理作为一个隔离存在缺陷代码的处理方式,通过查询和跟踪,找到代码问题产生的原因和具体位置,混淆程序能够严禁这种状况出现,让调试变得更加困难,开发人员只能看到模糊处理的类名称,不能看到真实的类名称和编号。

4.5 类加密文件保护

通过调查发现,Java类文件在结构方面和其他语言比较,有着明显差异,不法人员可以通过反编译方式获得Java软件源代码,给Java软件技术安全埋下隐患。近几年,Java软件开发企业和人员通过各种方式实现对Java类文件的安全保护。对于Java来说,展现出的跨平台特点是根据独有编译方式发展而来,Java源代码通过编译以后,形成一个虚拟化的Java类文件,并非面对处理器的二进制文件。类文件作为特有格式的中间代码,其将源代码中大多数信息进行保存,给反编译Java类文件提供数据参考。而反编译的代码具备较强的使用价值,能够真实展现出开发者的设计思路。所以,Java软件在知识产权保护方面伴随一定风险性,可能会让不法人员通过各种方式获取。

因为Java被盗概率比较高,近几年,大部分Java软件开发企业及相关部门加强对Java类文件以及虚拟机的研发设计,同时也进一步探讨各种方式实现对Java类文件的安全保护。例如,本地化技术、代码隔离技术、代码混淆技术等,这些技术在某种程度上可以实现对Java软件的安全保护,到那时其在不同程度上也会出现出各种问题。因为当前的Java软件保护方式存在一些问题,笔者从Java虚拟机类加载机制角度入手,根据现代密码学的加密体制、密钥分存和信息隐藏等相关知识,研发了一种全新的Java软件保护方式,也就是类文件加密保护,这种保护技术在操作上更加简单,具体操作思路有以下几点:

第一,通过加密码方式实现对Java类文件安全保护。在采用密码方式以后,能够促进抵抗反翻译能力的提升,加密码系统的核心问题就是采用哪种方式来对密钥进行管理,在本次探究中,主要是把密钥分存技术和信息隐蔽技术进行结合,实现对密钥的安全保护。

第二,Java软件开发人员在初步设计过程中,应重点分析Java软件运行环境问题,所以在使用Java软件过程中,要求用户结合Java软件运行要求,安装类加载器,用户通过使用C lassloader实现对Java软件的特定操作。例如,在互联网技术的作用下,获得类文件,并对类文件来源进行考察和验收[5]。

第三,这种保护方式应提供密钥和解密计算方式,但是系统无法对这些算法加密处理,反之可能会形成一个恶性循环,但是具体算法应得到用户的保护。所以,开发设计人员需要使用C++语言来对算法加密处理,编译成本地的动态链接库文件,从而具备反编译的抵抗能力,能够和其他文件相互结合,实现对Java软件的安全保护。这种Java软件保护方式不断具备较强的安全性,同时也能通用,可以在单机应用软件中发挥实际价值,并在网络应用软件中应用。和其他保护方式比较,这种保护方式在一定范畴内实现对Java软件跨平台保护,把这种类文件加密保护方式研发成一种加密技术,应用更加便利,展现出较强的效率性。

通过对Java体系和Java类文件的调查分析,开发人员需要从多角度入手,分析诸多和Java软件相关的保护方式,这些方式在某种程度上可以实现对Java类文件的安全保护,但是也伴随一些风险问题和漏洞。在软件保护中,保护重点内容在于Java软件创新和计算方法,这些方式出现在类文件中,只有确保这些内容不会受到不法人员的攻击和盗取,能够确保Java软件运行安全。加密类文件的安全保护采用的密码学是通过对数学算法的分析,将密码转换成不利于理解的文字,或者将原本无法理解的文字转变成人们能够理解的文字。通过使用密码学技术将Java类文件中重要信息进行加密保护,将信息安全传递,只有掌握密钥的用户才能获得文件中信息。

5 结束语

总而言之,从目前情况来说,相关部门已经研发出诸多关于Java软件安全保护的方式和对策,在某种程度上实现了Java软件的保护,但是这些方式在应用中存在一些缺陷和不足。Java软件的知识产权保护问题可能会受到一些考验,大部分软件开发企业和人员投入大量资金与资源,依然会出现软件被入侵的状况,一些重要算法和设计思路被盗取。基于此,加强Java软件保护方法探究非常迫切。

猜你喜欢

数字水印源代码代码
人工智能下复杂软件源代码缺陷精准校正
基于TXL的源代码插桩技术研究
基于网屏编码的数字水印技术
创世代码
创世代码
创世代码
创世代码
软件源代码非公知性司法鉴定方法探析
揭秘龙湖产品“源代码”
基于数字水印的人脸与声纹融合识别算法