软件防篡改.docx
- 文档编号:2996200
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:7
- 大小:23.35KB
软件防篡改.docx
《软件防篡改.docx》由会员分享,可在线阅读,更多相关《软件防篡改.docx(7页珍藏版)》请在冰豆网上搜索。
软件防篡改
软件防篡改
软件保护技术论文
题目软件防篡改技术解析学院计算机工程学院专业软件工程年级姓名学号指导教师
2012年4月
题目软件防篡改技术
摘要:
如今,随着计算机技术和因特网技术的飞速发展,电子产品,数字产品,特别是软件产品的版权侵犯、非法复制和恶意篡改等行为日趋泛滥,我国计算机软件产业起步较晚,但是在飞速的进步着,并且发达国家的软件专利保护的大趋势对我国现有的软件保护制度提出来严峻的挑战,不仅给软件产品的生产商、分销商和服务商带来了巨大的负面影响,还影响了政府的税收收入,甚至引发新的计算机安全问题等。
所以,软件产品的技术保护成为了一个重要的问题。
正文
软件防篡改技术是保护软件安全的技术之一,其基本目标在于阻止软件程序被非法修改,检测篡改并做出适当的响应。
它有两种实现策略:
(1)采取相应机制增大篡改程序的难度,提高篡改这攻击重新的成本。
(2)检测篡改事件并采取应对措施,比如,导致程序非正常运行。
计算机软件作为一种知识产权客体,具有不同于其它知识产权客体的特殊之处,主要表现在以下
计算机软件是人类智力劳动的结晶,具有作品性和工具性两重属性;第二,计算机软几个方面:
第一,
件的思想内涵和表现形式融为一体、互相渗透,难以严格区分界定;第三,计算机软件的升级换代快,软件的更新周期越来越短;第四,软件开发成本高,但复制成本极低;第五,计算机软件具有广泛的国际流通性。
《计算机软件保护条例》于2001年12月20日以中华人民共和国国务院令第339号公布,根据2011年1月8日《国务院关于废止和修改部分行政法规的决定》第1次修订,根据2013年1月30日中华人民共和国国务院令第632号《国务院关于修改〈计算机软件保护条例〉的决定》第2次修订。
该《条例》分总则、软件著作权、软件著作权的许可使用和转让、法律责任、附则5章33条,自2002年1月1日起施行。
1991年6月4日国务院发布的《计算机软件保护条例》予以废止。
目前,软件的保护有专利和版权两种方式,从知识产权的视角看,两者的关系是平行的,一种是将软件转变成专利产品,另一种是将软件尤其是其中的源代码作为文字作品进行许可。
由于对软件的需求不断增长以及软件产业对经济的重要影响,任何关于应当选择何种法律保护模式来保护软件的讨论,都引起软件开发者、竞争者、消费者的广泛关注。
想把软件归属到知识产权体系的某个特定门类中是非常困难的,因为软件所具有的两分性使其很难归入现有的某个法律分类中。
因此,就有各种尝试试图将软件保护归入版权、专利或商业秘密,[1]甚至归入所谓的“软件权”。
[2]涉及将软件保护如何归类的争论已经持续了二十多年,[3]而且在未来还将持续很长时间。
但是究竟是什么使得对软件保护的法律分类如此困难,该问题的产生基于一个事实,那就是软件不是一个单一的作品,它包括
1
多种元素,这些元素可以落入不同类型的知识产权保护范畴。
如果我们定义软件是用于输入计算机中以产生特定结果的一系列指令,那么这些指令的描述方式就是需要提供某种知识产权保护的想法。
这些指令起初是以源代码进行描述,源代码是用计算机高级语言编写的指令。
既然源代码是以文字形式进行描述,就很自然地将软件作为文学作品而归于版权保护。
当今世界凡对软件予以法律保护的国家,大多采用版权的方式予以保护,例如我国的《著作权法》定义计算机软件作为作品受著作权保护。
[4]但是,软件不仅是在计算机中操作的源代码,软件还需要编译成目标代码,目标代码是用机器语言编制的机器可读指令,用于直接驱动计算机工作。
因为目标代码是源代码的直接结果,所以按照传统观念这种编译的法律地位不应该从源代码中区分出来,这种编译通常不受到法律保护。
因此,将软件严格归类为文学作品的问题也就出现了,那就是人们发现计算机软件还有其它部分通常无法得到版权保护。
软件防篡改技术是通过软件或硬件措施防止程序被非法修改的软件保护技术的统称,属于软件保护领域中的主动防御范畴.现有的软件防篡改技术分为两大类:
一类是静态-防篡改技术,基于代码变换(混淆)思想;另一类是动态-防篡改技术,基于检测-响应的思想.静态-软件防篡改技术指的是通过代码变换降低程序可理解性,增加被篡改或非法复用的难度的一类技术,以下简称静态防
淆技术.动态-软件防篡改技术指的是通过软件或硬件措施阻止被非法修篡改技术,也称为代码混
改后的程序正常运行的一类技术,以下简称动态防篡改技术.添加的软硬件措施必须具有以下性质:
1)能够检测出程序被修改;2)能够在发现程序被篡改后作出响应,如终止程序运行、删除软件或是输出无效结果.当前软件防篡改技术的研究热点在于如何保护可信软件在不可信的软件宿主上的安全.客户端程序下载或是安装在不可信宿主上,就可能受到来自不可信宿主的攻击.例如客户端软件中的商业机密和版权信息被恶意修改.本文考虑如下3种软件篡改攻击模型:
1)获取非授权访问.攻击者绕过软件中的访问控制机制,重新分发非法的软件副本从而获利.2)逆向工程.攻击者通过反编译、反汇编技术,获得软件的全部或部分源代码,从而获取关键信息如核心算法、秘密信息等为自己所用.3)破坏代码完整性.攻击者向软件代码中嵌入恶意代码或修改删除部分代码以达到自己的目的,如扰乱程序功能、绕过一些模块从而获利.
动态防篡改完善:
实际上,相应机制和检测机制之间的关系是非常密切的,它们都是防篡改技术里面重要的构成成分。
就算检测机制健全,如若没有强大的相应机制,那么整个防篡改机制也就是没有功效的。
建立在多点设置基础上的防篡改技术,通过对哨兵单元加以利用,进而达到保护程序的目的。
按照需求的不同可设置多种哨兵,下面为常见的两种哨兵:
修复代码:
此种哨兵可使程序具备自我修复能力。
在代码完成性遭受破坏之后,哨兵会负责对篡改代码进行修复,使之恢复原状并正常运行,在保护程序里面嵌入众多哨兵,从而形成一个哨兵团。
求代码的校验和:
此种哨兵能使程序具备自我感应功能,在程序运行中对程序完整性以及保护代码校验进行计算。
2
静态防篡改技术:
通过变换代码使程序的静态分析增大分析难度,从而对攻击人员进行逆向攻击来提取核心代码加以阻止。
现如今,静态防篡改技术分为控制流混淆、数据混淆、词法混淆、预防混淆等,而前三种混淆技术经由对程序中节本元素进行修改来提升程序静态分析的难度,更加关注的是人工攻击,而预防混淆更为关注的则是工具的攻击。
词法混淆主要用于对程序词法结构进行修改,
把程序里面的域名、方法名、类名转换成没有意义的其中最主要的方式便是对标识符名称进行修改,
标识符,从而让攻击人员不能从词法上对其功能进行判断。
数据混淆主要作用在于对程序数据元素加以修改,修改的内容包括数组、变量、常量及别的数据结构。
控制流混淆主要对程序控制流程加以修改。
预防混淆的目的在于使软件逆向分析程序的难度增大,又或者按照特定方式,采取相应预防对策。
防篡改技术的应用:
1保护商用软件的访问控制机制商用软件属于付费软件,对软件供应商而言,确保使用者通过合理途径来使用软件能对其利益起到保障作用。
当发布软件里包含访问控制模块之时,它就可能被篡改,进而造成软件访问控制机制失去效应。
可采取防篡改技术使其保护力度加大,例如采用隐式或者校验形式来检测访问机制代码是否被篡改;对多块加密形式加以利用,进而用于保护访问控制机制的代码。
2保护Java应用程序Java程序非常容易被攻击或破解,为对其进行保
也可使用对手机端的护,避免程序被非法复用或修改,可在Java程序里面使用隐式Hsah防篡改方案,Java字节码框架予以保护。
3在数字版权管理系统中应用在具有数字版权管理系统中防篡改技术得到广泛使用,在这类应用中,内容提供商将编码数字内容传给不可信设备。
这类设备的软件运行环境无法被内容提供商所控制。
这个时候,系统安全问题便在怎样避免攻击者的反汇编或非法获取解码之后的数字内容。
而在DRM中最常用的防篡改方式便是防止屏幕捕获、代码加密、代码混淆等。
防篡改程序应用实例:
1东模块加载模式,此种模式可将二进制代码分成几部分,我们可以不处理第一个程序,将其哈希值作为下个模块的开启钥匙,而将第二个程序的希哈值作为第三个模块的开启钥匙,以此类推,实行多重加密形式。
通过对逐层加密形式加以利用,能使盗用以及篡改程序的行为得到有效防治。
2软件卫士的检查机制,此种机制具备自我修复和全面检查性的能力。
此种篡改形式通过将单元卫士层序安插在程序中,让其形成一个信息网站,同时在检查出破坏和篡改行为之后使程序终止,从而达到防止篡改的目的;当防卫卫士发挥其作用时,修复卫士则负责检查程序的完整性,如果发现程序出现损毁或者缺失,要立刻将之修复。
上述两个程序的关系是非常紧密的,下个卫士会对上个卫士进行检查,当卫士程序遭受攻击时,其余卫士层序便能立刻做出响应,同时将植物卫士放在不显眼位置,如此一来,在发生篡改行为时,便不太容易发现卫士,如此便能使防范功效得到增强。
除此之外,要确保防范卫士不具备过强的攻击响应机制,需在对篡改源加以确定之后,在程序环境稳定的状况下再进行攻击。
软件不仅是文字表述,一串串编码还包含功能,该功能是不取决于编码的语法结构的。
一个计算
3
机程序的源代码可以和另一个程序完全不同,但却具有同样的功能以产生可以得到相似结果的相似指令。
软件保护的争论焦点常常在于其所具有的功能和表达的两分性。
将源代码的一大部分进行复制并插入其它程序中明显构成侵权。
然而,这种类型的侵权相对较少,主要问题还在于软件中的非文字部分的保护。
版权法的保护作用只能局限于程序代码的层面,软件的功能是抽象的技术信息,只能
使得程序所有人本应享有专有权的领域中,出现保护具体表达的版权法通常不足以对功能提供保护,
了一大片“不设防”的地段。
他人完全可以在不复制程序代码的情况下编制功能相同而源代码完全不同的软件产品。
正是由于保护计算机软件非文字部分存在难度,才产生了对软件进行专利保护的需求,因为专利可以用来保护软件产品的功能部分。
专利不受功能和表达的两分性的限制,只要一个发明达到专利的要求——具备新颖性、创造性和实用性——就可以给予专利保护。
TRIPS协定第27条第1款规定专利权可以授予所有技术领域的发明,其中自然也不排除软件技术领域。
1981年,美国法院在Diamondvs.Diehr一案中判定利用计算机软件协助完成人工合成橡胶程序的权利要求应当授予专利权,此案开启了软件可以授予专利权的大门。
此后,美国对软件的专利保护不断扩大,许多软件公司蜂拥到美国申请专利并成功获得授权。
在1995年,美国软件专利占专利授权总量的约9%;到2003年,美国软件专利授权量接近30000件,软件专利占专利授权总量的百分比已接近15%。
在美国的带动下,欧洲专利局(EPO,EuropeanPatentOffice)开始有条件的为软件提供专利保护。
虽然软件的源代码或者文字部分是不可专利的,但只要发明主题具有技术效果,产生技术贡献或进步,就可以获得专利保护,但准确确定技术效果或进步的存在是非常困难的,各欧盟成员国在这方面的审查基准也不一致。
为了在欧盟成员国内部建立一套关于软件发明授予专利普遍适用的规定,欧洲委员会(EuropeanCommission)提出了软件专利指令(SPD,SoftwarePatentDirective),但在2005年该指令被欧洲议会否决。
这充分说明欧盟内部就软件的专利保护存在巨大分歧,但EPO仍然有权对软件相关发明根据具体案情作出是否授权的裁量,而其对软件专利的授权尺度显然仍在继续放宽。
在其他国家也有不断增长的授予软件专利权的趋势。
澳大利亚、巴西、印度、日本都以各种方式对涉及计算机执行程序的发明授予专利权,显示出大部分专利申请受理局都承认计算机程序的可专利性。
可以预见,对软件进行专利保护的国家会越来越多。
参考文献:
[1]王朝冲,付
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 篡改