好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件水印技术综述.doc

9页
  • 卖家[上传人]:wm****3
  • 文档编号:42872703
  • 上传时间:2018-06-04
  • 文档格式:DOC
  • 文档大小:84.50KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 软件水印技术综述1 前言目前软件保护主要由软件开发商自己负责,通过加密、序列号、关键文件(Key File)、软件狗(硬件加密锁)等方式实施保护软件开发商需要自己花费大量的精力用在软件保护上,而软件水印(Software Watermarking)技术正是为了解决软件知识产权证明而发展起来的软件水印是嵌入到程序当中的秘密消息,这些消息应该能够方便而且可靠地提取出来,以证明软件的所有权,并且具有在保证程序功能的情况下不能或者是难以去除该消息的功能根据软件水印的提取技术来分,可分为静态水印和动态水印(如图 1)静态水印存储在可执行程序代码中,比较典型的是把水印信息放在安装模块部分,或者是指令代码中,或者是调试信息的符号部分对于Java 程序,水印信息也可以隐藏在类文件(包括常量池表、方法表、行号表)的任何部分中静态水印又可以进一步分为静态数据水印和静态代码水印区别于静态水印,动态水印则保存在程序的执行状态中,而不是程序源代码本身这种水印可用于证明程序是否经过了迷乱变换处理动态水印主要有3 类:执行状态水印、数据结构水印和Easter Egg 水印(复活节彩蛋水印)其中,每种情况都需要有预先输入,然后根据输入,程序会运行到某种状态,这些状态就代表水印。

      图 1软件水印是近年来才出现的软件版权保护技术,它把程序的版权信息和用户身份信息嵌入到程序中,用来标志作者、发行者、所有者、合法使用者等,并携带版权信息和身份认证信息,可以鉴别出非法复制和盗用的软件产品它甚至被认为是数字作品内容保护的软件水印静态水印动态水印数据水印代码水印数据结 构水印执行状态水印Easter Egg水印最后一道防线2 研究现状1969年IBM将计算机软件从硬件中分离出来进行单独销售,之后软件业的发展速度飞快,成为了信息产业的支柱之一,自20世纪90年代以来世界软件产业一直保持着10%~20%的增长速度但是由于计算机软件很容易复制,使得软件业成为世界上唯一的能够使每一个顾客成为其产品的制造厂的行业2006年BSA(商业软件联盟)和IDC(互联网数据中心)的一项研究表明:2005年,全球PC软件盗版造成的损失达340亿美元,比2004年增长了16亿美元在软件市场巨大的国家,相对较低的软件盗版率仍会带来很大的损失例如:美国的盗版率是全球最低的,为21%,但任然是损失最大的国家—损失69亿美元我国的盗版率为86%,比上一年减少了4个百分点,但仍损失了39亿美元,是全球第二大损失国。

      而BSA和IDC的另一项研究报告指出,在中国盗版率降低10个百分点将有助于IT产业的收益翻两番,从而实现IT产业的巨大潜力同时,盗版的减少有助于创造新的工作岗位由此可知,软件水印的重要性从软件水印的用途来看,有以下一些应用:(1)软件版权申明(Authorship):通过软件水印申明软件的版权,软件中的水印信息可以被合法的用户(公开水印密钥)提取软件用户可以通过该水印判断所使用的软件是否为正版软件2)软件版权证明(Authentication):通过软件水印证明软件的版权,软件中的水印信息仅能被软件开发者(拥有水印密钥)提取,该水印信息可以证明软件的所有权当两个公司都称软件是自己公司的软件时,软件版权证明水印可以证明软件的所有权,从而揭穿盗版者的谎言3)盗版源的跟踪:在分发给不同使用者的软件中嵌入的水印信息各不相同(不同的信息是软件的指纹),当盗版行为发生时,可以根据软件的指纹寻找盗版软件是从哪个使用者流传出去的,从而定位盗版源4)非法复用软件模块的发现:如果整个软件被盗用,常常是容易发现的;但当仅有某个模块被非法复用时,常常是难以发现的,软件水印可以用于发现与检测这种情况下的盗版行为。

      5)盗版自报告:Easter Egg 软件水印利用了软件可运行的特点,把水印检测器嵌入到软件当中,当检测器运行时,可以通过检查软件的生存环境(例如主机IP等),判断该软件的生存环境是否构成盗版行为,进而在可能的情况下,通过网络主动报告盗版行为6)盗版自发现:随着计算机网络的迅速发展,通过网络分发软件成为软件分发的一种重要手段这就给软件盗版的自发现提供了可能,利用网络爬虫技术搜索网上的软件,并检测这些软件当中的水印信息,从而自发地发现盗版行为软件水印的算法有很多,在这里简单介绍一下基于HASH函数的软件水印算法HASH函数是密码体制中常用的一类公开函数,是能够将任意长度的信息映射成某一固定长度消息的一种函数HASH函数主要用于信息安全中消息的完整性检测和消息认证目前应用最广泛的HASH函数算法为MD5和SHA其中MD5是获得一个随机长度的信息后产生一个128位的信息摘要,以防止被篡改安全杂凑算法SHA-1的输入为小于2 比特长的任意消息,分为512比特长的分组,输出为160比特长的信息摘要在选择HASH函数算法时,尽可能选择安全性高的SHA-512算法(最终信息摘要大小为512比特)。

      SHA-512算法对任意长度不超过2 的输入消息X,按照1024比特的长度进行分块处理后,输出大小为512比特的信息摘要1)数据分拆和填充在SHA-512中,对于不超过2 的任意长度的消息m进行数据分拆和填充后得到的字表示为:M=M[0]M[1]…M[N-1]其中每个M[i](i∈[0,N-1])均是长为64比特的字,且N是16的倍数由m产生M的算法流程如图 2所示图 2 M的构造流程在图 2所示中的构造式M=m‖1‖0 ‖l 中,首先是在m的右边填充一个1,然后串联大量的0,整个消息的长度模1024为896,最后再串联长度为128的 l,这样产生的M的长度就是1024的倍数,所以就可以将M分拆为64比特字,字的个数N是16的倍数64128128计算 k=895-(|m|mod1024)(当 kn 时,k=i-n图 4 函数H的结构图在HASH函数构造的过程中,如图 4,水印信息wk取决于函数H输入值,而函数H输入值是水印信息wk和程序中整型常量ci共同计算得到的HASH函数代码生成以后,通过提供合适的参数{xi,begin,r1i,r2i},利用函数调用H,取代图 3中所示的已经被标注的那些整型常量,实现水印的嵌入。

      由于水印的嵌入是伴随在程序中整型常量被函数调用替代的过程中,而不是隐藏在程序代码里,因此有很好的抗攻击性而且SHA-512软件水印算法也能够很好的抵御删除攻击首先,水印信息并没有隐藏在程序的数据结构中,不占用任何物理空间其次,在一个一般规模的软件程序中,经常会有比较复杂的函数调用,如果攻击者想用函数返回的常量取代所有的函数调用,这个的可能性不是很大,而且不能保证能够正确定位到HASH函数对于HASH函数的移除,会直接导致程序的运行错误整数常量的替代是按照程序运行轨迹依次进行的,且SHA-512算法具有不可逆性,不同的输入返回不同的值所以不论是静态还是动态的分析,都很难删除程序中的水印信息传统的转换攻击只能够改变程序的数据控制流,而不能改变操作结果,因此,该算法也能有效地抵制各种形式的转换攻击对于变形攻击,当HASH函数参数数目发生变化时,如何鉴定特征代码的HASH函数匹配,还需要进一步的研究输入值xixi SHA-512 512 比特信息摘要选取 64 比特的子串titi+r1i+r2i=citi+r1i =wk构造运算式,建立水印和程序数据流的关系3 未来发展方向软件水印技术是一个非常有效的版权保护技术,近几年已经成为信息安全领域的研究热点。

      水印的理论体系和评价机制在未来的工作中还需被完善在本文中研究的基于HASH函数的软件水印算法中,对于变形攻击,当HASH函数参数数目发生变化时,如何有效的进行特征代码的提取并鉴定特征代码的HASH函数匹配,还需要进一步的研究参考文献:【1】俞伟新.数字水印技术的研究 【2】Christian Collberg,Clark Thomborson.Software Watermarking:Models and Dynamic Embeddings【3】Christian Collberg,Stephen Kobourov,Edward Carterand Clark Thomborson.Error-Correcting Graphs for Software Watermarking.【4】杨建龙,王建民,等.软件水印技术及其新发展.计算机工程,2007,33,17:158-170【5】张立和,杨义先,等.软件水印综述.软件学报.2003,14,2:268-277【6】陈卓,李云兴,等.软件保护技术---软件水印.科技咨询.2007,15:244-245【7】Venkatesan R,Vazirani V,Sinha S. A Graph Theoretic Approach to Software Watermarking.Proc.of IH′01,New York:ACM Press.2001:157-168【8】Curran D,Hurley N J,Cinneide M O. Securing Java Though Sofrware Watermarking.Proc.of PPPJ′03.New York:ACM Press.2003:145-148【9】徐茂智,游林.信息安全和密码学.清华大学出版社.2007:120-177【10】 杨波.现代密码学.清华大学出版社.2007:177-181【11】 陈海兵.一种软件水印算法研究.华中科技大学.2006【12】 Lin Pin,Wu wenling,Wu Chuankun…. Analysis of All-or-nothing Hash Functions.Information Science and Engineering.2008,24,5:1473-1484【13】 武金梅.对缩短步数的HASH函数算法SHA-256,SHA-512的分析.山东大学.2008【14】 朱建启,刘衍珩,等.基于中国剩余定理动态图软件水印方案.吉林大学学报.2008,38,2:198-201【15】 邓锐,周玉洁.HASH函数在软件自保护中的应用.微计算机信息.2005,21,10:5-7【16】 许文丽,于叶云,王育民.安全高效的水印认证协议.计算机研究与发展.2008,45,3:557-562。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.