您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 创建高等级应用程序安全性的最佳做法
-1-SafeNet,Inc.创建高等级应用程序安全性的最佳做法概述软件盗版仍然猖獗。根据商业软件协会和IDC的第二次年度全球软件盗版调查,在全世界个人计算机上安装的软件有35%是盗版软件,这意味着在2004年盗版造成了将近330亿美元的损失。本白皮书将研究流行的黑客攻击手段以及有效的反击手段。我们还将讨论部署安全措施以充分发挥现有解决方案全部潜力的最佳做法。威胁评估为了确定对应用程序最合适的安全解决方案,您必须首先评估您的应用程序所面临的威胁。一个常见的误解是,所估计的330亿美元损失都是被依靠盗版盈利的专业盗版者窃取的。实际上,很多“盗版者”只是些随意复制者,他们虽然只购买了一份授权,但认为将软件复制到多台机器是可以接受的做法。但还是有很多黑客把破解软件保护方案当作其挑战个人能力的一种手段,专以破解软件保护为乐。某些黑客也以此为营利手段。他们破解应用程序,然后提供在线付费下载或刻制成CD在街头贩卖。无论其分发渠道如何,黑客们赚取收入的同时都意味着合法软件供应商的收入在流失。另一方面,某些参与其中的盗版者只是为了获取“名声”,这些人也就是一般所谓的“破解者”。他们因为能够解除集成到软件应用程序中的反盗版保护措施而在破解团体中赢得“名望”。他们并不寻求从中获利,但可能会将破解后的应用程序发布到公共网络上。随着宽带连接的快速普及,这种做法导致软件被大范围免费获取。虽然破解者可能并未从中牟利,但却给软件供应商的收入造成了巨大损失。敌方手段了解了敌人的动机及其战略目标后,让我们来研究一下他们的战术。下面列出了一些最流行的攻击手段,这些是任何有效的反盗版解决方案必须抵御的攻击。-2-SafeNet,Inc.驱动程序替换/仿真:这种攻击手段会替换/仿真应用程序用于与保护锁通信的驱动程序(基于软件)。重放:在重放类攻击中,黑客会监视并复制硬件保护锁与应用程序之间的通信数据,然后通过重现通信过程来访问应用程序。暴力攻击:暴力攻击是一种查找密码的手段,其特点就是不断尝试每种可能的字母、数字和符号组合,直到找出正确的组合。逆向工程:逆向工程是使用调试器和/或反汇编器来解除软件保护机制的方法。攻击者们使用这些工具来了解应用程序的工作方式。然后,攻击者们会使用调试器和反汇编器转储代码除去对硬件设备的调用。时间篡改:时间篡改就是改回系统时钟时间,使经过一段时间后本应无法使用的试用版应用程序等继续工作。建立军火库实际上,没有任何软件供应商会采用可能实现的最高安全保护级别。最高的安全保护级别可能是售出的每份软件都由开着坦克装备着催泪弹的武装护卫队来保护。这样的保护显然可以确保任何软件都不可能在没有授权的情况下被复制或安装到PC上。但显然我们也无需赘言这种解决方案不具备可行性。排除了“雇佣打手”后,我们将继续研究最可能保护应用程序的合理安全措施。针对盗版和违反授权,软件保护市场充斥着无数安全性各不相同的解决方案。幸运的是,基于软件的授权虽然不是现有最安全的反盗版技术,但已经能有效减少由于随意复制者造成的收入损失。因为此类损失往往是由于无知而非故意侵权造成的。只需提醒这些用户他们正在窃取软件供应商的利益可能就足以使他们打消违反授权的念头。基于软件的授权同时也提供了最强大而灵活的授权选择,并可以配合硬件保护锁以增强反盗版能力。但是,因为授权存储在机器上而非外部设备上,所以不能认为软件的运行环境是绝对安全的。也就是说基于软件的解决方案不能构建起抵御盗版攻击的无敌屏障。特种武器采用代价过高的保护方案显然不明智(坦克和武装护卫可不便宜),我们的目标应该是使盗版比购买正版软件更昂贵。基于外部硬件的解决方案提供了目前为止最高的安全性。硬件保护锁通常用于保护高价值应用程序,因此最终用户也习惯了其存在。虽然硬件保护锁不象无线互联网或发动机那样受最终用户欢迎,但硬件保护锁并不会造成很大不便,因而也不会影响软件的销售。-3-SafeNet,Inc.硬件设备通常采用USB(通用串行总线)或25针并口形式。使用软件工具包,您就可以通过集成函数检查是否存在特定外部硬件设备的来保护应用程序。然后,软件将根据设备上存储的授权所提供的权利来决定运行与否。加强型防线事实上,黑客们一直在发展,虽然我们更希望他们保持在单细胞生物形态。因为我们面临的威胁会随环境而变化,因此软件供应商们也必须调整其保护方案。高级别的应用程序安全措施应该与时俱进,并加入阻止新攻击威胁的创新手段。为了抵御重放攻击或驱动程序替换攻击,我们必须保护软件应用程序与保护锁之间的通信。保护锁所能提供的安全性取决于对此通信的防护——链条的强度取决于最弱的一环。为了保护此通信,很多硬件保护锁都采用了加密算法。其中包括AES(高级加密标准)算法。虽然AES由美国标准与技术研究院于2001年11月开始采用并且广受好评,目前已经出现了更强的加密方法。比如椭圆曲线加密法(ECC),这是被认为无法用数学方法攻破的加密法。这种公钥加密法可以创建不对称密钥。配合AES算法使用时,这些密钥可以在应用程序和硬件加密锁之间建立一个加密的通信隧道。建立这样的通信就意味着硬件加密锁与应用程序可通过这个端对端隧道进行防黑客通信。使用加密标准创建安全隧道可有效消除“记录回放”和驱动程序仿真等中间层攻击的可能。因为在应用程序与硬件加密锁之间的每次通信会话都使用了唯一的加密密钥,暴力攻击和加密锁克隆事实上也不再可能实现。ECC就是一件使破解软件应用程序比合法购买更昂贵的武器,而且软件供应商要采用此方法的代价也并不太高。因此,这应该被认为是任何反盗版武器库的必备成员。通过从内部确保设备的真实性而非克隆品,内部身份验证可进一步加强硬件保护锁防线的安全性。保护锁将采用以下步骤生成验证器(或者称为种子或密钥):1.生成随机消息2.要求加密锁签署此消息3.使用已知的加密锁公钥来验证签名如果加密锁是原件,则应该知道与指定公钥关联的私钥。-4-SafeNet,Inc.雷达扰频虽然逆向工程构成了巨大的威胁:但如果能成功实现逆向工程,将可以消除所有反盗版保护。但是有无数工具都可以防止逆向工程的进行。如果只是单独采用,这些技术并不能构成很强的防护。但是,如果同时实现这些技术,加上应用程序与硬件保护锁之间的安全通信,应用程序的安全性将可以更上一层楼。简单的压缩代码以减少应用程序的整体大小,就可以使逆向工程变得更加困难。在应用程序外多层加壳打包也是一种有效手段,尤其是每层都包含用于验证完整性的校验码。Maze技术、虚拟宏以及多指令集代码更可以进一步阻止攻击企图。通常这些保护形式可以由您硬件保护锁的软件开发包自动管理,从而可以在几分钟内实现附加的防线。试验场正如使用不当的武器毫无用处,如果不具备有效的实现手段,硬件保护锁也不能提供其可能的最高安全性。不合适的实现方法就如同反带钢盔上战场,只能挡住自己的视线。在时间紧急时,开发者可能会只使用加壳技术来作为应用程序的保护措施。虽然将应用程序加壳可以增加授权调用函数和防护层,但比起在遍布可执行源代码的嵌入式保护来说,这种保护更容易被攻破。最佳的实现手段应包括通过API将保护措施完整集成到应用程序中。API集成还能保证对复杂授权设计的最全面控制。锁定目标,瞄准待命为了加强硬件保护锁提供的防护,您还可以让应用程序利用保护锁本身。通过强制应用程序的功能依赖于保护锁可以使逆向工程等攻击企图变得难上加难。有多种方法可以将硬件保护锁作为应用程序的必要部分。例如,应用程序的部分数据可以使用保护锁加密。配置值或应用程序设置等程序数据可以在写入文件或注册表前加密,然后经解密后使用。部分应用程序数据可以编程到授权的只读原始数据部分。此数据可通过正常的读取接口获取。保护锁单元也可由应用程序数据使用。对于保护锁的可读写存储器,通过编程也可以作为应用程序的变量或参数。-5-SafeNet,Inc.欺骗性伪装色有时候,最好的方法也是最简单的方法。获得“免费”软件的一种简单方法就是永远使用免费版本。软件供应商经常需要为潜在客户提供“先试后买”授权。开发者必须在尽量减少时间篡改风险的前提下允许试用。“此软件在两周后将会自行破坏”并不真的是可行的策略。除了您的公司法律顾问注定要面对的责任纠纷,您可能还要面对因为提供破坏性关键代码的纠纷和客户抱怨。一种保护试用软件的方法是提供其功能限制版本。但是,如果您希望创建基于时间的授权,以销售软件订购权或提供基于时间的试用,就必须考虑时间篡改风险并加以防御。要保护基于时间的授权,可以采用的一种方法是在硬件保护锁中加入实时时钟。这样,潜在的黑客就必须先打开保护锁来修改时钟,而这一过程将导致整个保护锁毁坏。不幸的是,配备了实时时钟的保护锁价格更高,而且还需要附带电池。而电池最终肯定会耗尽电力。如果您在免费的试用版本中采用此方法,显然无法将额外的费用转嫁给客户。对付时间篡改其实还有更简单更聪明的方法。如果硬件保护锁具有检查并存储当前系统时间的能力,开发者就可以使用此信息来防止时间篡改。根据开发者的编程设计,在保护锁检测到系统时间的任何重大改变时,应用程序可以被禁用或以限制模式运行。这种解决方案既可以让您提供基于时间的授权,也可以保护基于时间的试用版软件的安全。这样,无需增加成本和实时时钟,就可以防止一直使用“免费的、有时间限制的试用版”的不诚实行为,而且不会有任何(电池)爆炸的危险。友军火力在通过渠道实现授权时,软件供应商必须确保其经销链中其他环节的安全。如果您希望控制您的经销伙伴创建授权的能力,可以在生产过程中采用硬件保护锁来分配和嵌入加密密钥。通过对经销商加密锁进行计数可实施限制,例如限制最大的授权数量或只能创建试用版。试用加密锁来规范渠道实现过程可以让您在整个经销链中保证一致的高安全性。通过将功能组加入ISV生成的授权模板中,经销商将能够创建授权。此过程要求使用特定的密钥来签署。签署密钥存储在硬件保护锁中。ISV与经销商的保护锁都能够签署授权。但是在经销商的签署密钥上绑定了计数器,控制授权数量。ISV可以远程重置此计数器。具体授权中使用的功能则只能由ISV创建并签署。结语技术每时每刻都在变化发展。不幸的是,这也包括安全威胁的发展。现在我们已经有了可以使盗版比购买正版软件更昂贵的抗击方法。基于外部硬件的解决方案提供了目前为止最高的安全性。正如武器在未经训练者的手中不能充分发挥其威力,硬件保护锁也需要由开发者熟练实现才能保证提供可能的最高安全性。选择安全的硬件保护锁并专业的集成到您的应用程序中将可以实现极高的防护级别——而且成本要大大低于雇佣武装护卫队。-6-SafeNet,Inc.SafeNet概况SafeNet(纳斯达克代码:SFNT)是信息安全领域的全球知名公司。SafeNet成立于20世纪80年代,利用其加密技术保护通信、知识产权和数字标识,并为客户提供包括硬件、软件和芯片等在内的各种全面安全保护解决方案。ARM、美洲银行、CiscoSystems、美国国防部和国土安全部、Microsoft、Samsung、TexasInstruments和美国国内税务署以及其他无数客户都采用SafeNet的产品来保护其安全。如需了解更多信息,请访问。:+1410.931.7500or800.533.3958email:info@safenet-inc.comPhoneUSAandCanada(800)533-3958PhoneOtherCountries(410)931-7500Fax(410)931-7524E-mailinfo@safenet-inc.comWebsite©2005SafeNet,Inc.本文件包含SafeNet,Inc.的私有信息。未经SafeNet事先书面许可,不得复制本文件的任何部分。.SafeNet对此处所含信息或其翻译的错误、遗漏或不充分不承担任何责任。此处
本文标题:创建高等级应用程序安全性的最佳做法
链接地址:https://www.777doc.com/doc-1254302 .html