创建高等级应用程序安全性的最佳做法概述软件盗版仍然在不断蔓延仍然猖獗。根据商业软件协会和IDC的第二次年度全球软件盗版调查,在全世界个人计算机上安装的软件有35%是盗版软件,这意味着在2004年盗版造成了将近330亿美元的损失。本白皮书将研究流行的黑客攻击手段以及有效的反击手段。我们还将讨论部署安全措施以充分发挥现有解决方案全部潜力的最佳做法。威胁评估为了确定对应用程序最合适的安全解决方案,您必须首先评估您的应用程序所面临的威胁。一个常见的误解是,所估计的330亿美元损失都是被依靠盗版盈利的专业盗版者窃取的。实际上,很多“盗版者”只是些随意复制者他们虽然只购买了一份授权,但认为将软件复制到多台机器是可以接受的做法。不幸的是,但还是还有很多黑客把破解软件保护方案当作其挑战个人能力的一种手段,专以破解软件保护为乐。某些黑客也以此为营利手段。他们破解应用程序,然后提供在线付费下载或刻制成CD在街头贩卖。无论其分发渠道如何,黑客们赚取收入的同时都意味着合法软件供应商的收入在流失。另一方面,某些参与其中的盗版者只是为了获取“名声”,这些人也就是一般所谓的“破解者”。他们因为能够解除集成到软件应用程序中的反盗版保护措施而在破解团体中赢得“名望”。他们并不寻求从其破解中获利,但可能会将破解后的应用程序发布到公共网络上。随着宽带连接的快速普及,这种做法导致软件被大范围免费获取。虽然破解者可能并未从中牟利,但却给软件供应商的收入造成了巨大损失。敌方手段了解了敌人的动机及其战略目标后,让我们来研究一下他们的战术。下面列出了一些最流行的攻击手段,这些是任何有效的反盗版解决方案必须抵御的攻击。驱动程序替换/仿真:这种攻击手段会替换/仿真应用程序用于与保护锁通信的驱动程序(基于软件)。重放:在重放类攻击中,黑客会监视并复制硬件保护锁与应用程序之间的通信数据,然后通过重现通信过程来访问应用程序。暴力攻击:暴力攻击是一种查找密码的手段,其特点就是不断尝试每种可能的字母、数字和符号组合,直到找出正确的组合。逆向工程:逆向工程是使用调试器和/或反汇编器来解除软件保护机制的方法。攻击者们使用这些工具来了解应用程序的工作方式。然后,攻击者们会使用调试器和反汇编器转储代码除去对硬件设备的调用。时间篡改:时间篡改就是改回系统时钟时间,使经过一段时间后本应无法使用的试用版应用程序等继续工作。建立军火库实际上,没有任何软件供应商会采用可能实现的最高安全保护级别。.最高的安全保护级别可能是售出的每份软件都由开着坦克装备着催泪弹的武装护卫队来保护。这样的保护显然可以确保任何软件都不可能在没有授权的情况下被复制或安装到PC上。但显然我们也无需赘言这种解决方案不具备可行性。排除了“雇佣打手”后,我们将继续研究最可能保护应用程序的合理安全措施。针对盗版和违反授权,软件保护市场充斥着无数安全性各不相同的解决方案。幸运的是,基于软件的授权虽然不是现有最安全的反盗版技术,但已经能有效减少由于随意复制者造成的收入损失。因为此类损失往往是由于无知而非故意侵权造成的。只需提醒这些用户他们正在窃取软件供应商的利益可能就足以使他们打消违反授权的念头。基于软件的授权同时也提供了最强大而灵活的授权选择,并可以配合硬件保护锁以增强反盗版能力。但是,因为授权存储在机器上而非外部设备上,所以不能认为软件的运行环境是绝对安全的。也就是说基于软件的解决方案不能构建起抵御盗版攻击的无敌屏障。特种武器采用代价过高的保护方案显然不明智(坦克和武装护卫可不便宜),我们的目标应该是使盗版比购买正版软件更昂贵。基于外部硬件的解决方案提供了目前为止最高的安全性。硬件保护锁通常用于保护高价值应用程序,因此最终用户也习惯了其存在。虽然硬件保护锁不象无线互联网或发动机那样受最终用户欢迎,但硬件保护锁并不会造成很大不便,因而也不会影响软件的销售。硬件设备通常采用USB(通用串行总线)或25针并口形式。使用软件工具包,您就可以通过集成函数检查是否存在特定外部硬件设备的来保护应用程序。然后,软件将根据设备上存...