计算机网络毕业论文

软件保护机制

时间:2022-10-05 18:23:41 计算机网络毕业论文 我要投稿
  • 相关推荐

软件保护机制

  软件保护机制【1】

  摘要:计算机安全领域中,软件保护一直是很热门的研究课题,针对软件开发者来说希望自己的软件在采用软件和硬件加密的技术后不能够被修改或破解。

  但是任何的软件破解者只要花费足够的资源和精力,几乎所有的软件都能够被破解和修改。

  如何提高软件的保护能力,提高软件的安全性是一个迫在眉睫的问题。

  该文主要分析常见的软件保护方法,以及介绍PE文件格式,同时提出了基于混合的软件壳保护模型。

  关键词:加密;加壳;脱壳;MAC;PE文件

  常见的软件保护方式包括硬加密和软加密两种方式。

  硬件加密主要是采用加密狗、盘保护两种方式。

  软加密保护主要是充分利用计算机硬盘序列号、CPU序列号、MAC等唯一性,利用软件将硬件的唯一性绑定到一起,有效的形成软件保护。

  常见的软件保护包括:软件水印、注册验证、反跟踪、软件加壳保护;随着目前软件技术的发展,以及恶意软件感染能力的增强,采用传统的软件保护方式针对安全性要求高的软件来说保护效果不够明显,所以需要提出新的软件保护方式。

  软件开发者通常会自主开发软件加密算法和用户账号统一管理工具来提高软件的安全性。

  1 硬加密方式

  常用的硬加密通常采用的方式是将被保护的软件与硬件加密锁有效的绑定到一起,比如一些重要的敏感数据、key file授权文件、加密算法等都存储到硬件加密锁中。

  一般根据使用CPU的不同分为普通加密锁和智能加密锁。

  硬加密虽然从安全性上来说比较高,但是缺点还是比较明显:

  1)对于升级、维护比较难以管理;

  2)由于需要硬件设备,所以成本偏高,主要包括生产、运输、安装等成本;

  3)影响用户体验,因为需要安装相应硬件的设备驱动和硬件设备。

  2 软加密方式

  软加密是指使用软件方法来进行各种加密保护,随着软件保护技术的发展越来越多的软加密技术已经出现,比如常见的:注册码保护方式、功能菜单限制保护、使用时间限制保护、采用网络验证机制、验证文件保护、反跟踪技术保护、软件加壳保护机制等。

  2.1基于注册码保护机制

  注册码其实就是序列号保护机制,本质为防止软件被盗版而采取的保护措施。

  用户通常从网络上下载一个试用版本的软件,在使用时间上有限制,如果时间过期后,就必须注册才能够继续使用,使用者必须将自己的身份证号码或手机号提供给软件公司,然后软件开发公司利用用户的信息通过注册机计算出一个有效的、唯一的序列号。

  用户再利用计算出的序列号和用户信息输入软件中,如果信息合法那么相应的限制被取消。

  整个过程从数学的角度看其实就是映射关系。

  常见的映射关系有四种,如表1:

  表1 序列号映射函数

  2.2基于菜单功能限制保护机制

  基于菜单功能限制保护的软件保护机制,主要用于软件的demo版本,部分菜单功能被限制不能够使用,通常有两种方式方法一:使用版本的软件和正式版本的软件本身完全不同,使用版本的软件在菜单中对于的功能实现函数根本就没有,也就是只有正式版本中才有相应的功能处理函数。

  方法二:使用版本和正式版本实质上是一样的,只是将功能菜单设置为非激活状态或隐藏,只有用户成功升级为正式用户后,被限制的功能才会解除。

  对于破解者来说,只需要想办法如何打开这些受限的菜单功能模块代码上。

  2.3基于时间限制保护策略

  基于时间限制的软件保护机制主要包括两种方式:1、总使用时间限制;2单次使用时间限制。

  总使用时间限制主要是针对试用版本的软件在试用时间上的限制,比如某个软件试用期限为30天,如果用户超过软件试用期的时间,此软件用户就不能够再使用了。

  第二种方式,主要是指用户单次使用试用版过程中的使用时间的限制,比如使用版本的软件单次使用的时间为20分钟,20分钟后就不停的弹出提示用户购买升级为正式用户。

  2.4基于key-file文件保护机制

  Key-file(注册文件保护)文件保护机制,用户不需要输入序列号或注册码等信息,充分利用文件来保存验证信息实现软件安全性保护。

  这种方式其实是序列号保护机制的变形,只是验证信息保存在文件中,通常key-file文件中的文件格式都是软件开发者自行定义的,从原理上来说通常与软件的配置文件(通常xml格式)有点类似。

  用户升级为正式用户后,软件开发者会提供一个key-file文件,你只需要把这个文件放到特定的目录安装目录下面,下次启动软件的时候会自动寻找验证用户的合法性。

  2.5基于软件保护壳的保护机制

  基于加壳技术的软件保护主要是对可执行文件进行加密、压缩。

  对要保护的软件加上一个外壳,同时PE文件任然能够正常运行。

  外壳程序主要负责把受保护的软件解压解密到内存中,并且控制权交还给原程序。

  整个过程用户不清楚也不并清楚该执行过程,并且程序的运行速度也没有明显的影响。

  整过过程针对用户来说是透明的。

  3 PE文件结构

  PE文件对于研究软件保护,分析、掌握可执行文件的组织结构及其执行原理是很有必要的。

  Windows系统中的“WINNT.H”文件中包含PE文件的详细格式,常见的PE文件包括:.EXE、.DLL、.OCX、.SYS、.COM 等类型的文件。

  这种类型的文件在磁盘上的存储格式是有一定的规律的。

  从总体上看PE文件分为五大部分:1、Dos Header;2、PE Header;3、Section Table;4、Section;5 调试信息。

  如图1所示:

  图1 IPE文件结构图

  可执行文件加载器加载文件的时候,并不是一次把可执行文件一次性装入内存中,而是通过循环遍历文件的内部结构来判断那一部分的内容被映射到内存中。

  当文件被加载到内存中,内存和外存中的文件数据结构已经发生了变化。

  通常可执行文件在内存映射文件中各数据块之间的相对偏移地址已经发生了改变,同时科技将内存映射文件偏移与外存文件偏移进行转换(如图2):

  图2 外存与内存映像结构图

  4 加壳软件保护模型

  软件壳其实就是一段可执行代码用于防止软件被非法的使用、修改、拷贝等的程序,当可执行文件加载到内存后,外壳程序首选获得程序的控制权,然后解压加密还原PE文件,最后把控制权交还给原PE文件。

  此模型除了采用代码乱序,还有加密算法和防破解的分析技术,增强了防止破解者修改程序的能力。

  从技术层面上分析目前壳软件的发展现状:

  1)多次加壳。

  从语义上来说就是对PE文件进行多次加壳,达到增强软件的保护强度。

  就软件保护而言,并不是加壳的次数与保护强度成正比的。

  2)伪装加壳。

  通常通过改变文件自身的特征属性来伪装自己,从而干扰软件破解者的分析能力,如果用户没有正确的分辨出外壳的类型,破解的时候将花费巨大的资源和时间,TrickySigner是目前比较流行的伪装加壳工具。

  3)代码混淆加壳。

  现在JAVA中间代码的保护就采用的这种方法,目前.net Obfuscator程序上也采用这种保护方式。

  4)代码变化加壳。

  这种方式主要是采取合适的算法对代码进行代码变化,原程序运行的时候外壳程序就需要把乱序的原程序恢复为正常的。

  从静态反汇编后看到的代码全是乱序的。

  4.1 加壳原理

  加壳的原理:1)对PE文件各section区块压缩和加密;2)添加解密和解压程序到新的section区块中,以及添加区块头到区块表中;3)最后修改原程序的入口地址;加壳结构如图3:

  图3 加壳结构

  4.2外壳加载

  外壳的加载过程如图4:

  1)保存程序的入口参数

  2)获取壳要用的API地址

  3)解密原程序中的所有区块的数据

  4)初始化IAT

  5) 重定位

  6)HOOK-API

  7) 跳转到源程序的入口地址

  图4 加壳可执行文件的执行过程

  4.3基于混合的软件保护模型

  常见的脱壳步骤为:首先找到可执行原程序的入口地址,再dump可执行文件的映像,从加壳后的可执行文件自身来看不管什么时候最终都要转入原程序的入口地址。

  由于壳技术本身的要求我们不可能隐藏入口点的地址。

  那么我们可以采取的方式是让脱壳者即使dump了可执行文件也没法还原程序。

  基于这个特性本文采用了基于混合的软件加壳保护模型,将原程序和外壳有效的混合到一起。

  图5 基于混合的软件保护模型

  从图5中可以看出即使脱壳者查找到程序的入口地址,同时dump可执行文件的内存映像,也很难还原原程序文件。

  因为一旦把壳脱了原程序部分代码也脱掉了。

  这样就很难还原原代码从而达到保护软件的目的。

  此模型主要是采用代码乱序的技术。

  此技术就是把原程序打乱,让脱壳者很难分析和破解。

  达到外壳和原程序相互混合的目的,增加软件的安全性。

  此模型除了采用代码乱序技术以外,也结合花指令技术、反-反汇编技术、以及结构化异常处理技术等来增强被分析、破解的软件保护技术。

  4.3.1模型系统架构图

  原可执行文件处理包括添加壳程序和可执行文件重组工程:将需要加壳的文件从磁盘加载到内存中去,接着对可执行文件内存映射每个相关头、区块进行处理。

  外壳程序: 加壳后的PE文件首先运行壳程序时候,会对原来的可执行文件进行循环校验,同时对原加密的区块数据进行解密,以及重建输入表,原程序乱序处理,最后还是跳转到原程序的入口地址。

  如上页图6。

  此保护模型主要由加密部分、外壳部分、外壳添加部分、可执行文件处理部分构成,详细的加壳程序流程如图7所示:

  图7 系统加壳流程图

  5 结论

  该文首先分析了软件加密的两种方式:硬加密和软加密,同时详细的介绍了当前比较流行的软件加密的几种方式。

  然后采用软件壳的软件保护方式,分析PE文件的结构,提出基于混合的代码保护模型。

  假如外壳程序与原程序融合的越紧密,那么起到保护软件的作用就越显着。

  参考文献:

  [1] 李文.基于壳技术的软件保护研究[D].电子科技大学,2012:43-44.

  [2] 杨新柱.可执行文件格式分析与应用[D].北京邮电大学,2009:30-34.

  [3] 梁晓.恶意代码行为自动化分析的研究与实现[D].电子科技大学,2008.

  [4] Bruce Schneier,“Security-FOCUS:Attack Trends”,QUEUE,June2005.

  [5] Hodong Lee,“The construction and principal of executable file of windows systems”,Hanvit Media,2005.6.

  开源软件版权保护与利益共享平衡机【2】

  摘 要: 随着开源软件的不断商业化,其本身逐渐成为一种商业模式的载体并有了自身的利益追求,从而使得在其版权保护和相关利益者之间取得利益平衡尤为重要。

  首先分析了开源软件版权保护与相关者的利益冲突,然后从四个方面探讨了开源软件版权保护与利益共享的平衡机制;著作权的利益平衡要求开源软件的版权保护更加多元和开放化;当前环境下对开源软件进行“拿来主义”必须注意的事项;双许可证制度对开源软件版权保护和利益获取的平衡。

  关键词: 开源软件;版权保护;利益共享

  开源软件已经被证明是一种极具生命力和市场号召力的软件,但它是以有效的许可证保护制度为基础的。

  因此在实践过程中,必须在版权保护和利益获得方面取得平衡,这就需要本着“共享”的思维,让开源软件著作权人或企业与最终用户遵循相关的游戏规则,更好、更健康的促进软件产业的发展。

  1 开源软件版权保护与相关者的利益冲突

  开源软件(Open Source Software)即开放源代码软件,用户可以免费使用、修改、复制和再发布。

  但为了防止商业软件堂而皇之的不断窃取各类开源软件并对其进行修改、完善及在此基础之上发布新软件,也为了激发众多程序开发人员的热情,保护开源软件长期的共享繁荣,保证开源软件的版权保护及利益获取方面取得平衡,斯多尔曼创造性的提出了许可证制度。

  但即便如此,开源软件版权保护和相关利益获取者之间仍然存在利益冲突,主要有以下三点:(1)无担保问题,因为开源软件是免费的,它强调“在任何情况下,软件的原始开发者和版权所有者都不对任何损失负责,即使他们已经被告知这种损失的可能性”,但如果软件的发布者本身就发布有危害的代码,未履行署名义务并标明修改内容,获得一定利益之后又发现上游发布的程序存在瑕疵,发布者本身就侵犯了他人的知识产权等,都会造成软件著作权人与利益相关者产生利益冲突。

  (2)原著作权人与后续开发者的著作权利益。

  《著作权法》关于开源软件的版权问题未进行明确规定,而开源软件的开发者众多,有群众接力进行修改、完善的因素存在,这就不可避免的会出现《著作权法》中所规定的情况:被许可者对开源软件进行修改且具有独创性,修改的结果又使得开源软件能单独成为一个作品,也即演绎作品,而演绎作品属于创作作品,其本身受到独立的著作权法的保护。

  显然原著作权人和后续开发的演绎作品的版权归属在现有法律体制下产生了利益冲突。

  (3)第三方代码流入导致侵权。

  开源软件的开发者不计其数,而且组织非常松散,开发人员之间可能没有任何联系,或者只是在网络上用非真实的身份进行代码沟通、代码叠加而完成。

  一个大型的项目甚至可能由全世界成千上万个程序员按照搭建金字塔的方式来完成,那么这些非常自由的个体很难保证他们所贡献的代码没有侵犯已有的权利。

  一旦这些人在开源软件中引入了具有完整著作权的代码,开源软件不可避免的引发著作权侵权,开源软件的使用者或最终用户也可能因此而面临相关法律诉讼甚至承担严重的经济损失。

  2 开源软件版权保护与利益共享的平衡机制分析

  开源软件版权保护与利益相关者存在着上述潜在的各种利益冲突。

  而在开源软件市场蓬勃发展的今天,就需要在许可证制度、著作权法、商业渠道等方面下功夫,在深化对版权保护的同时,让后者在遵循许可证制度基础之上更加快捷、安全的获取到相关利益。

  2.1 著作权的利益平衡要求开源软件的版权保护更加多元和开放化

  著作权法、商标法、专利法等是我国知识产权法的重要组成部分,而知识产权法是典型的利益平衡法,其根本目的就是识别智力成果并以法律的强制力对其进行保护并赋予垄断权,同时又关注其他的利益诉求主体,以防垄断者滥用权力,从而实现不同利益体系之间的平衡。

  但知识产权是一种私权,且主要体现其财产权,这里的“私”与开源软件的“共享”显然是格格不入的,从而很难达开源软件版权保护与利益的有效共享目的。

  但现有的知识产权法体系有两个问题:其一,未达到有效的平衡并催生了垄断。

  其二,为了达到这种平衡,是否只有充分对版权拥有者予以强烈的保护才能达到?笔者以为著作权的利益平衡要求开源软件的版权保护更加多元化和开放化。

  (1)开源软件的充分“开源”是为其成功走向商业化创造了很好的存在条件。

  和商业软件相比,开源软件的区别就是从一开始其著作权人将财产权让渡给社会,但仔细分析会发现著作权人、传播者、最终使用者三者的在同样的利益链条上且呈三角关系,可以相互转换,它不再是商业软件那种双向的、利益分明的关系。

  参与修改源代码的程序人本身也是著作权人,享有部分著作权,其将代码按照许可证制度的规定发布出去后其又成为传播者,使用者获得免费使用软件的权利但其技术基础又是公开的,对竞争对手而言无秘密可言。

  因此本质上这三者的角色在不断互换,三者之间相互让渡权利,在动态中获得利益的再平衡。

  利益的多元化让这三者之间的界线不再像商业软件那样清晰可见,后者存在的保证软件的独占权与公众获取利益的博弈不存在。

  总体上看,开源模式让著作权人有获得经济利益的权利与可能,使用者也能通过免费获得产品、付费获得服务等方式获得需要的软件,对前者的保护还有利于软件创新。

  这种兼顾著作权人和社会公众利益的制度本身就是利益的平衡,非常符合知识产权制度的初衷。

  开源软件的生存状态如此,因此对其进行版权保护也必须与时俱进,做到著作权人、传播者、开源软件公司、最终使用者等多方的利益平衡。

  (2)现实情况开源软件虽然不能完全取代商业软件,但有条件和能力取代相当一部分商业软件。

  软件的复制与重复利用时困扰软件侵权的难题,也是一种必然。

  开源软件则相反,它以开放的姿态让任何人有使用和修改的权利,还为个性化的软件服务提供了大量机会。

  况且,和其他受著作权法保护的作品相比,软件本身是一个工具,人民使用软件其实享受的是一种服务,而类似美术、文学或其他艺术作品,使用者享受的是信息获取与美学感受。

  开源软件实际上已经让软件产业从卖软件回归到卖服务的基点上,SAAS(Software-as-a-service,软件即服务)这一著名的概念就说明了这一点,IBM回归服务的商业理念证明了运用开源软件搭建商业生态环境并从环境服务中收取费用的模式是正确的。

  这说明著作权的利益平衡并不一定要用独占论实现,相反将其当作工具,采取开放和多元化的态度,能很好的寻求到版权保护与利益达成共享。

  2.2 当前环境下对开源软件进行“拿来主义”必须注意的事项

  开源软件是免费的,这造成使用者采用“拿来主义”就以为万事大吉,这种思想在市场中可能会面临非常严重的诉讼风险甚至造成公司的灭顶之灾。

  在现有的市场环境、法律环境及许可证制度约束下,要在尊重版权保护的基础之上充分共享开源软件,务必遵循几个原则:

  (1)对软件开发商而言,需要明了不同许可证制度的异同。

  因为在同一个软件项目中可能会使用到不同许可证规范下的开源软件,Google开发的Android手机操作系统极具典型意义,该系统使用了GPLv2规范下的Linux内核,和BSD、Apache等规范下的中间件、核心应用软件。

  之所以如此的目的就在于Linux内核的著作权人在GPL中声明了运行在内核上的程序不受GPL约束,这样利用其他许可证发布的程序就可以当作产品销售从而盈利。

  这其实是企业在市场中面对产权保护而寻求利益共享的一个实践。

  常用的许可证制度的特点如表1所示。

  开源软件企业或最终用户在选择开源软件时需要明确知晓不同许可证制度赋予的不同权利,并在这些规范下行使权力以免处于面临侵权诉讼的境地。

  (2)在技术层面上做到以下几点:

  ①对于流入开源软件的源代码进行监视。

  实现这一问题的难度较大,特别是针对既有的开源代码。

  但是类似Linux以及OSDL等组织已经提出“开发者原创证明”,这相当于要求开发者对其贡献的源代码的原创性进行保证并签名,从而防止代码侵权事件的发生。

  因此在选择开源软件时这些具有“保证”的软件可行度更高,共享的风险也更低。

  ②软件开发是尽可能与开源软件进行链接而是不是将代码直接嵌入其中。

  这与Windows操作系统中dll动态库类似,这样在使用这些代码时调用的开源免费的代码,不存在侵权问题。

  ③对涉及到的侵权代码进行实质性的更换。

  目前著作权法保护的作品表现形式而非设计思想。

  进行实质性的更换后能消除代码侵权威胁。

  2.3 双许可证制度对开源软件版权保护和利益获取的平衡

  所谓双许可证就是软件版权所有人使用不同的许可证进行软件分发,并对被许可人的权利做出不同的限制。

  这种在一定程度上在开源软件版权保护的基础之上,扩大了相关者的利益共享范围。

  (1)对没有多个版权人的开源软件,双许可证制度有利于进行开源版权保护的同时又获取一定的利益。

  先看一个反面例子Linux:Linus最早开发了Linux并拥有其全部版权,但随着该开源软件在市场上的广泛使用以及大量的程序爱好者不断在GPL许可证规范下发布其他模块或补丁,Linus不再拥有其全部版权。

  但如果Linus此时采用双许可制度,即对一部分使用者发布GPL规范下的版本,对另外一部分发布非GPL约束的版本,那么显然其就侵犯了其他人的GPL版权。

  但它给我们的启示是,如果类似的开源软件能够获得以下条件:其他程序修改者或享有著作权(哪怕是一部分)的人声明放弃版权,或者所有版权人都同意发布带有商业许可的版本,那么开源软件其实就扩展了其共享范围,并在版权保护和市场利益中获得平衡。

  因为发布非GPL版本的软件并不以牺牲开发和维护新的GPL版本的Linux为代价。

  比如Mysql由于没有多个版权人的问题,因此其就了两个版本:商业版本和GPL版本。

  (2)解决版本兼容问题。

  由于不同的许可证制度在不但变化和发展中,如GPL已经升级到v3版本,但是开源软件本身确实一脉相承的,这意味着同一款开源软件部分代码是遵循GPLv2,另外一部分却遵循GPlv3版本。

  如原始版本的开源软件2006年以前发布,许可证为v2,但随后发不了v3版本的补丁,这样编译之后的二进制版本不能再行传播。

  对此可以采用GPLv2+GPLv3双许可证的方式来规避这种风险,使得开源软件的版权在得到保护的同时,软件使用者也降低了面临法律诉讼的风险,如Mysql的商业用户,其修改过的代码就不必公开,而可以当作商业机密而存在。

  这种方式对促进开源软件的发展有非常大的意义。

  参考文献

  [1] 张平.共享智慧——开源软件知识产权问题解析[M].北京:北京大学出版社,2005,(1).

  [2]傅佳茵.开放源代码软件及其许可证法律问题研究[D].北京:中国政法大学,2006.

  [3]杨彬.开源软件许可证研究[D].济南:山东大学,2008.

  [4]许洪波等.开源软件在世界经济中的角色[J].软件世界,2007(10).

  [5]吴汉东.知识产权法[M].北京:法律出版社,2009.

  软件工程保护中的软件防篡改技术【3】

  摘要: 计算机已经成为当代人生活、工作中的必须品,尤其是对企业而言计算机已经成为企业活动之中不可或缺的重要组成部分。

  而就计算机使用而言,对软件的保护工作则是防止企业信息泄露、保证企业正常运转的大前提。

  就当下软件篡改方式而言主要这样三种:盗版软件、工程逆向和篡改代码,与之相对的保护方式主要有这样三种:水印方法、模糊代码和防篡改法。

  以防止软件篡改为主体,对软件的保护工作做阐述。

  关键词: 软件工程;防篡改;方式技术

  伴着计算机的高度普及,软件已经拥有其独立的知识产权,软件产生和运算的信息量之大是难以想象的,它是维持整个企业正常运转的基础保障。

  因此越来越多的篡改、盗用、窃取软件的事情发生,并且其技术也是日益强大。

  为了保护企业、个人自身电脑的安全性和独立性,方篡改软件的技术也在不断增强、包括给软件大上水印、给代码设置一个模糊环境、使软件显示多样性、利用时间模式进行限制、安防软件保安、使用智能卡等措施。

  1 软件保护工作中的防篡改法

  防篡改法可以从硬件和软件两方面进行。

  1.1 用于软件上的防篡改法

  软件防篡改法主要从验核工作、安放软件护卫、严查断言、加密密码等方面入手。

  1.1.1 验核工作

  这是一种常用的静态保护方式,其主要途径是随时对计算机中软件、文件、信息等项进行检查核对,并根据其存储位置中的相关文件、备份文件进行比对,以确保软件的安全性和软件的完整度。

  1.1.2 软件护卫

  软件护卫是一种常用的软件保护程序,它是一种独立的小程序,分别安放在软件的各个不同的地方,并且彼此之间有良好的联系,以便在软件中形成一个良好的网站保护结构,并将软件分成一个个独立的小段,每一小段由一个安全护卫负责,当有篡改、盗版等行为发生时,可以做到立刻确定篡改发生在哪一区域,以便及时找寻并将其修复。

  1.1.3 严查断言

  严查断言是指检查程序中的每一个断言是否正确。

  首先我们先来介绍一下什么是断言,断言就是计算机软件特有的表述方法,这种表述方法主要是针对在一定条件下或是程序之中各个变量之间的关系。

  断言可以有效地对软件程序的健康度进行检测,并进行诊断和调整,所以在保持工作中采用断言法成效明显。

  1.1.4 加密密码

  对密码进行加密也是防篡改工作中常用的一种,其方法分两种:其一,对软件程序中的散数列、函数等做报摘处理,并定期检测报摘情况是否一致完整;其二,使用软件程序的公钥计算法,形成程序自身独特的签名以保证程序的独特性以防止发成篡改行为。

  1.2 用于硬件上的防篡改法

  硬件防篡改法是指,利用软件与硬件之间相互配合的关系,利用防护设备阻止篡改情况的发生。

  以往我们最常使用的硬件防篡改方法主要有采用软件卫士或是对软件盘进行硬加密处理等等,利用软件的储存与运算基础——硬盘,使之具有“保护意识”,进而从根本上防止篡改。

  2 新时代的防篡改技术

  在信息资源已经变得越来越重要的今天,对信息窃取的技术支持力度变大,使得信息窃取技术有了质的变化。

  想要跟得上篡改技术的变化速度,满足新时代对软件保护工作的需求,只利用老方法、老路子是不行的,我们要利用老传统的优点,结合新时代篡改技术的特定,多角度、多防范性的进行思考,才能制定出真正有效的软件防篡改技术。

  以下就来介绍其中的几种。

  2.1 模糊化技术

  模糊化技术是指对一段原有程序进行加工再处理,通过对其“模糊”转化使之成为一段新程序,而这段新程序较旧程序而言更加难懂、更加不好解析,但其执行结果有相同的表现形式,从而防止篡改行为的产生,也有效制止逆向软件程序工作中的分析、拆解行为。

  2.2 给软件加水印

  水印在各个领域均得到有效应用,并取得卓有成效的成果。

  在软件防篡改工作中我们也可以借鉴这样方法,在软件程序中打一个特有的独立的“水印”作为该程序的独立标识,并且我们可以以这种表示为依据找出这段程序的作者、使用者、发行商等信息,且其中带有版权所有信息与身份验证程序,从而对软件是否发生盗版、篡改等行为作出分析。

  当有篡改行为或盗版行为发生时,软件程序内部的水印就会遭到破坏,当水印遭到破坏时内部程序就会产生感知立刻终止软件程序继续运行,从而形成双保险的防篡改机制。

  水印技术作为一种常用的并且非常有效地方篡改机制,在被运用的同时也得到相应的完善。

  这里来举两个例子,第一个,在水印中加入验算法,这是一种双重保险机制,这是将水印法和加密法结合运算的方式,利用此种方式,篡改攻击就要分两个步骤进行,第一要避开、接触水印,第二要结合加密运算,这样我们保证篡改的不可发生性,但我们就将其限制方窄了,降低了软件程序被篡改的可能。

  第二个,针对于动态图而言的,在对动态图的编码过程中在其内部常量关系中增加一个函数,该函数值的存在是依据动态图的现有环境而定,也就是说,当动态图发生被复制、转移、重新编码等过程这个函数的常数值就会相应地发生变化,而从导致动态图片的失真、程序无法运行,以便保证动态图不被盗用。

  除了这两种防篡改方式方法外我们还有很多针对于新时代而做出的改变措施,在这里就不一一列举了,这些方法的出现不但标志着长篡改机制的程序与进步,更说明了人们当前的信息保护意识越来越强,这位进入全信息时代打下了良好基础。

  3 防篡改程序应用实例

  1)东模块加载模式,这种模式下,二进制码程序被分成几个,我们对第一个程序不进行处理,选取它的哈希值设做下个模块的密匙,而选取第二个程序被解开密匙后的哈希值为第三个的密匙,以此类推,进而进行多重加密运算。

  利用这种逐层加密、逐层解密的多层运算方式,可以有效的防治和中止盗用、篡改程序行为的出现。

  2)软件卫士的检查机制,这种常用的机制具有全面的检查性和自我修复能力。

  这种防篡改方式的作用途径是将小的单元卫士层序逐个安插在重要的程序中,彼此紧密联系形成一个良好的信息网站结构,并在检查出篡改、破坏行为后及时中止程序,达到方篡改的目的;在防卫卫士发挥作用时,与之同时安插进程序中的修复卫士负责对程序完整性的检查工作,一旦发现程序发生缺失、损毁立即作出修复动作。

  这两个程序相依存在,每一个卫士均在另一个卫士的检查之下,当一个卫士程序受到进攻,其他卫士层序就能立刻响应,并且在植物卫士的时候应将其放在不明显的地方,这样在篡改行为发生时,不易察觉卫士的存在,可以使防范功效增强。

  另外,防范卫士的攻击响应机制不应该过于强烈,应该在确定了篡改源后等其认为程序环境相对稳定时再发起攻击。

  4 总结

  随着信息时代的到来和深化,计算机软件所包含的信息已经越来越突显出其重要性,在对信息的保护和防篡改工作中,我们应该怎么打好这场没有硝烟的战争,以便使企业或是个人的信息得到更好保护,就成了其工作内容的重点。

  我们应利用水印、多重密匙、软硬件结合等多种方式共同作用,达到最好的保护效果。

  参考文献:

  [1]徐海银、董九山、李丹,一种改进的软件加密自检测防篡改技术[J].信息安全与通信保密,2007(3).

  [2]沈海波、史毓达,计算机软件的防篡改技术[J].现代计算机(专业版),2005(2).

  [3]祝青,Java软件保护技术研究[J].科技信息,2009(10).

  [4]宋扬、李立新、周雁舟、沈平,软件防篡改技术研究[J].计算机安全,2009(1)

【软件保护机制】相关文章:

民间艺术的传承机制与保护措施论文10-09

计算机软件保护条例05-18

计算机软件保护条例(全文)05-24

机制专业求职简历10-08

林业生态补偿机制10-05

新股定价机制研究10-08

我国出口退税机制10-07

计算机软件保护的法律分析论文10-08

计算机软件保护条例(2013修订)05-25