您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页一种软件水印算法研究

一种软件水印算法研究

来源:叨叨游戏网
龙源期刊网 http://www.qikan.com.cn

一种软件水印算法研究

作者:宋燕红

来源:《软件导刊》2012年第07期

摘要:作为一种新的软件保护方式,软件水印和传统的软件保护方法相比有着很大的不同。软件水印算法运用的不单是加密技术,它是通过把一些秘密信息嵌入到软件的代码中,如果有需要,就可以利用这些代码提取软件中所需要的信息,然后利用这些信息来证明软件真正的版权问题。

关键词:软件水印;水印算法;版权保护 中图分类号:TP312文献标识码:A文章编号:

(2012)

作者简介:宋燕红(1969-),女, 河北清河人, 北京电子科技学院副教授,研究方向为计算机软件理论与安全。 0引言

目前,绝大部分软件的版权保护都是运用加密的方法,加密方法有两种,分别是硬件加密和软件加密。通常所说的硬件加密是指在安装、运行软件的时候要用一些特别的硬件来启动,例如Vbox、软件狗、SecuROM或者SafeDISC等;而软件加密是没有必要使用硬件装置的,可以说省去了一些硬件成本,但和硬件加密相比其安全性稍微逊色一些。我们了解的盗版软件一般分两种:①通过随意复制并分发或刻意去拷贝软件;②未得到版权所有者本人的认可,向个人开发出的程序中放入一小部分或是很大一部分甚至是全部的软件代码。一般情况下加密技术能够免去第一种较为简单的盗版手段,也能够预防软件被盗,但是就第二种盗版手段,加密了的技术已经没有它的用武之地了,尤其当那些想要盗用版权的人具有较高的破密技能,加密效果更会大打折扣,甚至会失效。因此,我们要用新技术来杜绝盗版现象的发生,这样便迎来了软件水印技术的时代。严格意义上来讲,软件水印技术所采用的方法是事后追查,虽然这种技术无法完全阻止盗版的发生,但是能够破坏盗版软件,还可以提供盗版行为的证据。 1水印算法的原理

软件水印的想法是受到数字水印的启发而形成的。近年来数字水印的应用不断扩大,并引起了大家的极大研究兴趣,于是产生了大量的研究成果。作为信息隐匿的其中一个分支,它的主要技术思想是:通过编码嵌入信息,接着在那些已知的信息例如隐秘的密钥的控制下嵌入一些诸如文本、图像、音频、视频的载体相关信息。与其它的信息保密技术不同的是当前我们采用数字水印技术的目的是为进一步验证载体信息知识产权的归属情况,或者说描述载体信息。比如说我们在一幅图画里面嵌入作者的姓名以此来证明这幅画的作者和所有权,还有就是嵌入

龙源期刊网 http://www.qikan.com.cn

到数字产品里面一些产品的质量、产地、生产日期等信息。图1说明了数字水印的嵌入、检测过程。

软件数字水印简称软件水印,其实软件水印严格上来讲也可以说是数字水印的一种,不同的是软件水印里面的程序是水印的载体。运用软件水印来使计算机的软件代码版权得到保护,这种保护不但能够使用源代码,也能够使用机器代码,其最为重要的就是尽量杜绝非法拷贝和篡改。在技术的使用过程中,我们发现不同软件的载体,如图像、音频及视频载体都可以接受不同程度的扭曲,但软件要求水印后原来的功能不能发生变化。 2常用的抗软件水印攻击技术

软件水印技术虽好,但是在使用的过程中会不断地出现软件水印技术的攻击或者说是破解情况。我们针对各种软件的水印攻击,主要研制出了混淆及防改动的抗软件能力的水印袭击技术。

2.1混淆技术

通常使用的水印手段和软件版权防护技术都是软件逆工程技术。使用这样的技术来分析软件的目标系统,首先将构件与构件之间的关系、系统的构件关系考察清楚,接着用高层抽象等一系列的方法来表现出软件目标系统的实现过程,再进行反编译。

混淆技术的基本思想就是把原始代码的恢复难度加大,进行混淆处理主要是为了增加程序被反编译的难度,还有就是即便我们的程序被反编译成功了,那么程序的阅读和理解也无法进行。当然,按照处理程序代码的原则,程序代码被混淆以后最终的执行结果和混淆前也是一样的,惟一的区别就是程序代码被混淆以后会没有规则,反编译的难度会大大增加。混淆还有一个特点就是不可逆,我们在对程序代码进行混淆时,会去除一些对程序正常运行不影响的信息,这样处理过的程序会更加难以阅读、理解。

混淆代码的主要方法是使得标识符指示的功能失效、对文字和字符串进行加密、在代码里加入一些欺骗指令、插入各种加大反编译难度的载体信息。我们通常使用的混淆技术就是用任意名称来代替代码中所有的标识符,可是这种方法的效果不是特别好,有的攻击者可以根据代码上下文来推断标识符的意义,如果花费足够的时间和精力就可以进行反编译了。为了解决这种安全隐患,可以运用字符串加密混淆技术。 2.2防篡改技术

在遇到程序被攻击者修改的情况时,需要立刻阻止这个程序的运行。比如说在程序里虽然有了水印,但那些被标记过的代码被改了结构,或者被病毒感染了、程序属于商务应用等问题依然存在,若程序中关乎安全问题的一些敏感的地方被修改了,就不能允许程序运行。上面所提到的修改代码就是所谓的篡改类的攻击,要做的就是防止别人篡改,于是就有了防篡改技术。基于硬件和软件的防篡改技术是目前主要的两种防篡改技术。

龙源期刊网 http://www.qikan.com.cn

2.2.1基于硬件的防篡改技术

防篡改硬件技术是配套使用硬、软件技术来防止程序被篡改,所用的主要设备是硬件设备。有一种方法叫做DRM,这是一种硬件防篡改技术,它提供的是一种可信的空间硬件支持,把想要保护的东西存放到空间里,然后运行程序得出结果,避免了程序的外泄,也能很好地预防外部的攻击。在这种能够信任的空间里面,可以完成内容的认证、加密、权限等DRM服务。比如说,微软想要获得一种可信的计算,一种叫做“Palladium”的体系正在被积极研究,DRM系统在这种结构的帮助下能得到环境的信任,这种体系可以保护软件使得它们不被偷窥、修改,这样保证了只有用户信任的、授权的软件才有访问的权限。 2.2.2基于软件的防篡改技术

用软件来防止软件被篡改的技术就是软件防篡改技术,通常这种技术所采用的是混淆代码技术及对软件的加密技术。最常用的是利用公钥算法来实现数字签名从而使得应用软件不被攻击,在利用私钥连接编译程序源代码时加入一些加密代码或者签名,这些代码或者签名和程序绑定在一起,就可以对照检查程序有没有被篡。只要签名成功的,程序就无法伪造。 有下面3种方法来判断软件是否被篡改:①对能够执行的程序本身进行检查,并与原来的程序进行对比看看是不是相同。可用MD5类的信息加速测试来判断程序是否被篡改;②程序运行结果的检查;③可以利用生物高科技,在程序里加入一些可执行的生物程序,同样可以达到加密、有效防止被外界修改的效果。在防篡改时,需要特别注意的是那些攻击式的软件篡改,这些程序被篡改时还会有其它一些攻击一起发生。所以一旦碰到这样的伴随攻击篡改,就要更加提高警惕,在防篡改的同时注意适当地防止其它软件攻击,做到多重防护。 3软件水印的应用

3.1为侵犯知识产权提供证据

通常,可以很容易地发现一个程序是可疑的,可是如果让我们来确定谁真正拥有版权却是一件非常困难的事情,个别的不法分子甚至会不知羞耻地狡辩盗取的程序是他们自己编的,版权归他们所有。在遇到这种侵权行为的时候,就有必要提供一些切实有力的证据来证明版权拥有者是谁。利用软件水印可以很容易做到,利用之前就放到程序里的水印技术,就会使真正拥有版权的软件开发者一目了然。有一个非常经典的例子,IBM曾对一家公司提起诉讼,诉讼的原因是那家公司盗用IBM的ROM,在诉讼的过程中,IBM提供了一个ROM的版权所有的证据,那个证据就是寄存器的弹、压栈在程序中存在的特殊顺序,这就是一种水印技术。 3.2被盗程序的揭发

想知道一个非法程序中的哪一个模块是盗用的,非常困难,想通过程序的运行来判断非法程序也是不可能的,因为有可能盗用的程序模块仅仅是很小的部分,所以程序模块的被盗部分很不容易被发现。可是如果使用软件水印技术,即使是那些流通在网上的程序,被盗程序模块

龙源期刊网 http://www.qikan.com.cn

也可以快速有效地被找到。并且爬虫技术的应用可以很快找到包含特定软件水印的程序,找到相应的程序就是要找的被盗模块。 3.3寻找非法拷贝

计算机软件方便了我们的生活,软件的复制也是非常的简单,复制的简单性就使得很多不法分子投机取巧,非法复制和分发软件,并从中弁取利益。所以,根据登记授权用户的信息来追查非法复制的源头成为了一种必然的需要。但只登记授权用户的信息还不能很好地寻找非法拷贝的来源,因为信息和授权版本的性使得它们之间的联系无法一一对应。对于这个问题,可以提供一种联系来解决,首先这个联系要隐秘,这样可以避免遭到破坏,再结合水印技术,问题就迎刃而解了。它通过在软件的授权中嵌入一些重要的信息,使得它们之间存在一定的联系,这样在检查非法拷贝、盗版软件的时候,只需要把水印信息拿出来进行检测,得到用户的授权信息,盗版或正版便一目了然。这样我们就可以很好地分辨出盗版软件,对盗版者进行严厉打击,从而减少甚至杜绝盗版的发生。 4结语

软件水印技术是软件版权保护的一种新方式,这种软件保护技术越来越受到人们的重视,应用也越来越广泛。研究软件水印归根结底就是要找到隐秘性好、抗攻击性强的算法。但是由于研究时间和水平技术的,使得水印的指标无法很好地达到商业水平,特别是在抗攻击能力上,水印技术表现得比较薄弱。随着水印技术研究的不断深入,人们相继提出了很多不同的软件水印算法,但到目前为止,软件水印抗攻击能力差还是一个比较突出的问题。此外,在软件水印的评价性能方面还没有一套完整详细的标准,深入研究软件水印技术的抗攻击性和良好的水印安全衡量体系,才能更好地发展软件水印技术,使得软件版权得到更好的维护,并大力打击盗版,保证软件的健康发展。 参考文献:

\\[1\\]徐海银,陈海兵,冯丹,等.一种动态软件水印算法\\[J\\]. 华中科技大学学报:自然科学版,

\\[2\\]W BENDER, D GRUHL, N MORIMOTO, et al. Techniques for data hiding\\[J\\]. IBM

\\[3\\]PALSBERG J, KRISHNASWAMY S, MINSEOK K, et al. Experience with software water marking\\[C\\ \\[4\\]吴建军,高济.基于指令统计分布的软件水印方案\\[J\\].浙江大学学报:工学版,

龙源期刊网 http://www.qikan.com.cn

\\[5\\]许文丽,于叶云,王育民.安全高效的水印认证协议\\[J\\].计算机研究与发展,

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务