网站大量收购闲置独家精品文档,联系QQ:2885784924

泛型编程与C++标准库.doc

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
泛型编程与C标准库

什么是surreptitious software 在 本章中,将讨论一些用于保护软件中秘密的基本技巧,即代码混淆数字水印防篡改和软件例如使用代码混淆和防篡改技术来保护数字版权管理系统。这些技术应该能够发学习它们的热情,我这样认为的原因是:代码混淆以及其他个技术能够解决传统计算机安全和加密所不能解决的问题。用引号括起解决两字,是指到目前为止还没有一种算法能够永远提供100%的保护,我们能指望的只是去尽量延长黑客破解我们的防护所要花费的时间。你也许会想,这也算是解决问题了?——你是正确的——但至少我们还有一些漂亮的办法能让黑客的日子过得更不爽些,有总比没有强吧。 1.1概述 当你听到计算机安全这个词时,脑子里可能马上浮现出这样一个场景:一台电脑(由善意的用户所使用,我们称她为Alice)正在受到一个黑客(我们叫他Bob)的攻击,或正受到由Bob编写的病毒、蠕虫、木马、rootkit以及键盘记录器的攻击。计算机安全研究的目的就是防止Bob控制Alice的计算机或当Bob试图这样做的时候,向Alice发出报警。这些技术的基本设计思想都是限制Bob在Alice计算机上的权限,同时又不过度妨碍Alice的正常工作。例如,网络防火墙允许Alice访问网络上的其他电脑,但限制了Bob对Alice的电脑的访问。入侵检测系统则会分析Alice访问网络的模式,并在当Bob似乎在做一些异乎寻常或可疑的事情时,向Alice发出警报。病毒扫描程序将拒绝运行Bob的程序,除非这个程序能够证明其本身不含恶意代码 。换言之,Alice给她的电脑增加了一个保护层——防止有人进入她的电脑,检测是否有人进入她的电脑,或者阻止已经进入她的电脑的人损害她的电脑 图 1-1 如果我们把情景颠倒一下,又会发生什么呢?如果不是Bob向Alice发送一个恶意程序,而是一个名叫Doris的软件开发人员给了或者更准确地说是卖了一个正常的程序给Axel 呢?为了让事情变得更加有趣些,我们假设Doris的程序包含了一些秘密S,而Axel为了某些经济利益,瞒着Doris提取或改变S,如图1-2所示。 图 1-2 这个秘密可能是任何东西。它可能是一个绝妙的算法,使得Doris编写的程序运行起来比Axel的快许多,所以Axel很想把它弄到手;它可能是Doris程序的整体架构,而这个架构对Axel建立他自己程序的整体架构无疑是非常具有参考价值的;它可能是加密密钥,能够用来解开被数字版权管理系统保护的一些音像资料;又或是程序中让Axel不去注册就只能用试用版的软件注册算法。那么,Doris可以做些什么来保护这一秘密呢? 乍一看,你也许认为加密技术可以解决这一问题,因为毕竟加密技术就用来保护数据的必威体育官网网址性的。具体来说,加密系统就把明文S搅乱成了一篇密文EK(S),如果没密钥K,就休想读出明文S。 那么为什么Doris不在出售程序之前就使用加密的方法来保护她程序中的秘密呢?很遗憾,因为这个办法是不会奏效的——Axel必须要能够正常执行程序,因此在程序运行过程中的某些时,Doris的秘密肯定会被解密成明文! 软件保护标准计算机安全和加密技术不同,一旦Axel得到了Doris的程序,那么他就能为所欲为地对Doris的程序进行分析了:他可以研究程序代码(可能首先反汇编或者反编译程序),执行程序来研究其行为(可能使用调试器),或者修改代码使其(例如跳过检查程序是否已经注册步骤)。 在软件保护术语中,一次典型的对Doris的程序P的攻击是由部分组成的即分析篡改和盗版 图 1-4 Axel首先通过分析程序P搞懂了的核心算法设计思想,找到了加密密钥或者发现了负责软件注册的代码的位置等秘密。接下来,他修改Doris的代码(例如,他可能把检查软件是否已经注册的代码给删掉)或者将有关算法纳入自己程序。最终,Axel发布了由此产生的程序(即盗版),从而侵犯了Doris的知识产权。 当然这一过程有很多变种。Axel可能只是某个软件,却没有把程序的版发布出来,而仅仅是自己享受由此带来的乐趣。他可以把注册连同程序一起转手卖掉,而不必篡改代码。另外,他可以反编译和分析程序验证其安全性(比如,确定程序中肯定不包含病毒或木马,或者分析某个投票软件,以保证这个软件在统计选票时肯定不会作弊),而不会使用由此获得的信息来改进自己的程序。不过尽管实际情况是如此千变万化,但它们都回避不了一个基本的事实:一旦作者发布了程序,其中的任何秘密就会立即变成裸露在狼群中的羔羊。 在研究的场景中,Axel通常是出于一些经济上的原因才去提取或修改该程序中的信息的。而Doris一般也只是要求在某个时段内保持这些秘密。所以软件保护目标基本上也只是让被保护的软件能在这段时间里撑过攻击就行了。比如,由于游戏销售的大部分收入产生于它发行后的很短的一段时间

您可能关注的文档

文档评论(0)

daoqqzhuan2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档