软件加密服务热线:400 600 9103
客服1:10392662(江浙沪) 客服1:caich8@hotmail.com(江 浙沪) 淘宝店铺
021-54640133
021-64701090
0571-88821285
客服2:58424918(湖南) 客服2:jackwrw@msn.com(湖南 ) 拍拍店铺
客服3:13909912(湖北) 客服3:caich5@hotmail.com(湖 北) 有啊店铺
客服4:956578796(安徽) 客服4: sh_wang_cai@hotmail.com(安徽) 易趣店铺
 
 
当前位置:首页>>加密技巧>>新闻内容 3月7日:同一台机器上安装多个TOMCAT的方法,解决加载DLL错误    10月8日:更改CA签发证书有效期    8月25日:多层式解决方案保护静态数据    8月3日:Sentinel SuperPro软件加密锁,编程开发指南    10月27日:★评估软件数字版权管理解决方案的标准    10月27日:★软件保护五大误解    10月27日:★为什么要保护您的软件?    10月27日:★软件盗版的种类    10月27日:★什么是软件盗版?    9月2日:软件保护需要安全内核也需要安全思路    8月2日:软件加密提示与技巧:如何制作一款加密强度高的软件产品    7月31日:圣天狗白皮书    

圣天狗白皮书

 

发表时间:2009-7-31 21:22:00 文章来源: 本站原创 浏览次数:

 

 

创建高等级应用程序安全性的最佳做法
概述

软件盗版仍然猖獗。根据商业软件协会和 IDC 的第二次年度全球软件盗版调查,在全世界个人计算机上安装的软件有 35% 是盗版软件,这意味着在 2004 年盗版造成了将近 330 亿美元的损失。
本白皮书研究流行的黑客攻击手段以及有效的反击手段。我们还将讨论部署安全措施以充分发挥现有解决方案全部潜力的最佳做法。
威胁评估
为了确定对应用程序最合适的安全解决方案,您必须首先评估您的应用程序所面临的威胁。
一个常见的误解是,所估计的330亿美元损失都是被依靠盗版盈利的专业盗版者窃取的。实际上,很多“盗版者”只是些随意复制者,他们虽然只购买了一份授权,但认为将软件复制到多台机器是可以接受的做法。
但还是有很多黑客把破解软件保护方案当作其挑战个人能力的一种手段,专以破解软件保护为乐。某些黑客也以此为营利手段。他们破解应用程序,然后提供在线付费下载或刻制成 CD 在街头贩卖。无论其分发渠道如何,黑客们赚取收入的同时都意味着合法软件供应商的收入在流失。
另一方面,某些参与其中的盗版者只是为了获取“名声”,这些人也就是一般所谓的“破解者”。他们因为能够解除集成到软件应用程序中的反盗版保护措施而在破解团体中赢得“名望”。他们并不寻求从中获利,但可能会将破解后的应用程序发布到公共网络上。随着宽带连接的快速普及,这种做法导致软件被大范围免费获取。虽然破解者可能并未从中牟利,但却给软件供应商的收入造成了巨大损失。
敌方手段
了解了敌人的动机及其战略目标后,让我们来研究一下他们的战术。下面列出了一些最流行的攻击手段,这些是任何有效的反盗版解决方案必须抵御的攻击。

驱动程序替换/仿真:这种攻击手段会替换/仿真应用程序用于与保护锁通信的驱动程序(基于软件)。
重放: 在重放类攻击中,黑客会监视并复制硬件保护锁与应用程序之间的通信数据,然后通过重现通信过程来访问应用程序。
暴力攻击:暴力攻击是一种查找密码的手段,其特点就是不断尝试每种可能的字母、数字和符号组合,直到找出正确的组合。
逆向工程:逆向工程是使用调试器和/或反汇编器来解除软件保护机制的方法。攻击者们使用这些工具来了解应用程序的工作方式。然后,攻击者们会使用调试器和反汇编器转储代码除去对硬件设备的调用。
时间篡改:时间篡改就是改回系统时钟时间,使经过一段时间后本应无法使用的试用版应用程序等继续工作。
建立军火库
实际上,没有任何软件供应商会采用可能实现的最高安全保护级别。最高的安全保护级别可能是售出的每份软件都由开着坦克装备着催泪弹的武装护卫队来保护。这样的保护显然可以确保任何软件都不可能在没有授权的情况下被复制或安装到 PC 上。但显然我们也无需赘言这种解决方案不具备可行性。排除了“雇佣打手”后,我们将继续研究最可能保护应用程序的合理安全措施。
针对盗版和违反授权,软件保护市场充斥着无数安全性各不相同的解决方案。幸运的是,基于软件的授权虽然不是现有最安全的反盗版技术,但已经能有效减少由于随意复制者造成的收入损失。因为此类损失往往是由于无知而非故意侵权造成的。只需提醒这些用户他们正在窃取软件供应商的利益可能就足以使他们打消违反授权的念头。基于软件的授权同时也提供了最强大而灵活的授权选择,并可以配合硬件保护锁以增强反盗版能力。
但是,因为授权存储在机器上而非外部设备上,所以不能认为软件的运行环境是绝对安全的。也就是说基于软件的解决方案不能构建起抵御盗版攻击的无敌屏障。
特种武器
采用代价过高的保护方案显然不明智(坦克和武装护卫可不便宜),我们的目标应该是使盗版比购买正版软件更昂贵。基于外部硬件的解决方案提供了目前为止最高的安全性。硬件保护锁通常用于保护高价值应用程序,因此最终用户也习惯了其存在。虽然硬件保护锁不象无线互联网或发动机那样受最终用户欢迎,但硬件保护锁并不会造成很大不便,因而也不会影响软件的销售。

硬件设备通常采用USB(通用串行总线)或 25 针并口形式。使用软件工具包,您就可以通过集成函数检查是否存在特定外部硬件设备的来保护应用程序。然后,软件将根据设备上存储的授权所提供的权利来决定运行与否。
加强型防线
事实上,黑客们一直在发展,虽然我们更希望他们保持在单细胞生物形态。因为我们面临的威胁会随环境而变化,因此软件供应商们也必须调整其保护方案。高级别的应用程序安全措施应该与时俱进,并加入阻止新攻击威胁的创新手段。
为了抵御重放攻击或驱动程序替换攻击,我们必须保护软件应用程序与保护锁之间的通信。保护锁所能提供的安全性取决于对此通信的防护——链条的强度取决于最弱的一环。为了保护此通信,很多硬件保护锁都采用了加密算法。其中包括 AES(高级加密标准)算法。虽然AES 由美国标准与技术研究院于 2001 年 11 月开始采用并且广受好评,目前已经出现了更强的加密方法。
比如椭圆曲线加密法(ECC),这是被认为无法用数学方法攻破的加密法。这种公钥加密法可以创建不对称密钥。配合 AES 算法使用时,这些密钥可以在应用程序和硬件加密锁之间建立一个加密的通信隧道。建立这样的通信就意味着硬件加密锁与应用程序可通过这个端对端隧道进行防黑客通信。使用加密标准创建安全隧道可有效消除“记录回放”和驱动程序仿真等中间层攻击的可能。因为在应用程序与硬件加密锁之间的每次通信会话都使用了唯一的加密密钥,暴力攻击和加密锁克隆事实上也不再可能实现。
ECC 就是一件使破解软件应用程序比合法购买更昂贵的武器,而且软件供应商要采用此方法的代价也并不太高。因此,这应该被认为是任何反盗版武器库的必备成员。
通过从内部确保设备的真实性而非克隆品,内部身份验证可进一步加强硬件保护锁防线的安全性。保护锁将采用以下步骤生成验证器(或者称为种子或密钥):
1. 生成随机消息
2. 要求加密锁签署此消息
3. 使用已知的加密锁公钥来验证签名
如果加密锁是原件,则应该知道与指定公钥关联的私钥。

雷达扰频
虽然逆向工程构成了巨大的威胁:但如果能成功实现逆向工程,将可以消除所有反盗版保护。但是有无数工具都可以防止逆向工程的进行。如果只是单独采用,这些技术并不能构成很强的防护。但是,如果同时实现这些技术,加上应用程序与硬件保护锁之间的安全通信,应用程序的安全性将可以更上一层楼。
简单的压缩代码以减少应用程序的整体大小,就可以使逆向工程变得更加困难。在应用程序外多层加壳打包也是一种有效手段,尤其是每层都包含用于验证完整性的校验码。Maze 技术、虚拟宏以及多指令集代码更可以进一步阻止攻击企图。
通常这些保护形式可以由您硬件保护锁的软件开发包自动管理,从而可以在几分钟内实现附加的防线。
试验场
正如使用不当的武器毫无用处,如果不具备有效的实现手段,硬件保护锁也不能提供其可能的最高安全性。不合适的实现方法就如同反带钢盔上战场,只能挡住自己的视线。
在时间紧急时,开发者可能会只使用加壳技术来作为应用程序的保护措施。虽然将应用程序加壳可以增加授权调用函数和防护层,但比起在遍布可执行源代码的嵌入式保护来说,这种保护更容易被攻破。
最佳的实现手段应包括通过 API 将保护措施完整集成到应用程序中。API 集成还能保证对复杂授权设计的最全面控制。
锁定目标,瞄准待命
为了加强硬件保护锁提供的防护,您还可以让应用程序利用保护锁本身。通过强制应用程序的功能依赖于保护锁可以使逆向工程等攻击企图变得难上加难。有多种方法可以将硬件保护锁作为应用程序的必要部分。
例如,应用程序的部分数据可以使用保护锁加密。配置值或应用程序设置等程序数据可以在写入文件或注册表前加密,然后经解密后使用。部分应用程序数据可以编程到授权的只读原始数据部分。此数据可通过正常的读取接口获取。保护锁单元也可由应用程序数据使用。对于保护锁的可读写存储器,通过编程也可以作为应用程序的变量或参数。

欺骗性伪装色
有时候,最好的方法也是最简单的方法。获得“免费”软件的一种简单方法就是永远使用免费版本。软件供应商经常需要为潜在客户提供“先试后买”授权。开发者必须在尽量减少时间篡改风险的前提下允许试用。
“此软件在两周后将会自行破坏”并不真的是可行的策略。除了您的公司法律顾问注定要面对的责任纠纷,您可能还要面对因为提供破坏性关键代码的纠纷和客户抱怨。一种保护试用软件的方法是提供其功能限制版本。但是,如果您希望创建基于时间的授权,以销售软件订购权或提供基于时间的试用,就必须考虑时间篡改风险并加以防御。
要保护基于时间的授权,可以采用的一种方法是在硬件保护锁中加入实时时钟。这样,潜在的黑客就必须先打开保护锁来修改时钟,而这一过程将导致整个保护锁毁坏。不幸的是,配备了实时时钟的保护锁价格更高,而且还需要附带电池。而电池最终肯定会耗尽电力。如果您在免费的试用版本中采用此方法,显然无法将额外的费用转嫁给客户。
对付时间篡改其实还有更简单更聪明的方法。如果硬件保护锁具有检查并存储当前系统时间的能力,开发者就可以使用此信息来防止时间篡改。根据开发者的编程设计,在保护锁检测到系统时间的任何重大改变时,应用程序可以被禁用或以限制模式运行。这种解决方案既可以让您提供基于时间的授权,也可以保护基于时间的试用版软件的安全。这样,无需增加成本和实时时钟,就可以防止一直使用“免费的、有时间限制的试用版”的不诚实行为,而且不会有任何(电池)爆炸的危险。
友军火力
在通过渠道实现授权时,软件供应商必须确保其经销链中其他环节的安全。如果您希望控制您的经销伙伴创建授权的能力,可以在生产过程中采用硬件保护锁来分配和嵌入加密密钥。通过对经销商加密锁进行计数可实施限制,例如限制最大的授权数量或只能创建试用版。试用加密锁来规范渠道实现过程可以让您在整个经销链中保证一致的高安全性。
通过将功能组加入 ISV 生成的授权模板中,经销商将能够创建授权。此过程要求使用特定的密钥来签署。签署密钥存储在硬件保护锁中。ISV 与经销商的保护锁都能够签署授权。但是在经销商的签署密钥上绑定了计数器,控制授权数量。ISV 可以远程重置此计数器。具体授权中使用的功能则只能由 ISV 创建并签署。
结语
技术每时每刻都在变化发展。不幸的是,这也包括安全威胁的发展。现在我们已经有了可以使盗版比购买正版软件更昂贵的抗击方法。基于外部硬件的解决方案提供了目前为止最高的安全性。正如武器在未经训练者的手中不能充分发挥其威力,硬件保护锁也需要由开发者熟练实现才能保证提供可能的最高安全性。选择安全的硬件保护锁并专业的集成到您的应用程序中将可以实现极高的防护级别——而且成本要大大低于雇佣武装护卫队。


 

相关文章

·工控软件的授权&保护——【在线讲座】

·美国防部指定SafeNet提供加密解决方案
·多层式解决方案保护静态数据
·最新版本!hasp srm 4.0视频操作手册——基础操作说明
·SafeNet宣布推出基于SaaS的HASP SRM解决方案
·Aladdin HASP SRM软件版权管理
·超强锁(SuperPro)的使用方法!视频讲解!
·ProtectDrive硬盘数据保护
·IKEY 2032身份认证锁
·圣天狗远程升级及其它功能,视频使用讲解

 

 

专题频道

 

圣天狗(SHK)专题

超强锁(SuperPro)专题

奥强锁(UltraPro)专题

宏狗(GrandDog)专题

微狗(MicroDog)专题

软件狗(SoftDog)专题

IKEY专题

HASP专题

 

 

产品属性分类

 

USB口产品

并口产品

单机版产品

网络版产品

时钟版产品

 

 

【技术支持7×24小时】

 

13524448503

 

 

 【上海总公司】

 

手机:13636581503
电话:021-54640133
传真:021-64701090转803
地址:上海市桂林路396号,3号楼,611室

查看详细地图 >> 

 

 【杭州分公司】

 

手机:13967135740
电话:0571-88821285
传真:0571-88862637
地址:杭州市拱墅区丰潭路388号,德泰御峰大厦505室

查看详细地图 >> 

 

 【青岛分公司】

 

手机:13864819257
电话:0532-83821910
传真:0532-83824455
地址:青岛市市北区辽宁路228号,科信大厦1025室

查看详细地图 >>