的加密方案-软件加密技巧
  的加密方案-软件加密技巧-加密工程师必读-凡高软件呕心力作

(转载指明www.flagsoft.com.cn)

SafeNet China 樊捷杰
2009年武汉凡高软件保护讲座


概要

◎设计 的加密方案

◎简单而有效的加密技巧

◎进一步提高加密强度

◎通过“软硬兼施”,降低加密成本

◎通过软件授权,实现多种销售模式





我们需要防御什么

驱动程序替换
这种攻击手段会替换/仿真应用程序用于与保护锁通信的驱动程序(基于软件)
通讯层模拟/仿真
在重放类攻击中,黑客会监视并复制硬件保护锁与应用程序之间的通信数据,通过重现通信过程来访问应用程序。
暴力攻击
暴力攻击是一种查找密码的手段,其特点就是不断尝试每种可能的字母、数字和符号组合,直到找出正确的组合。
逆向工程
逆向工程是使用调试器和/或反汇编器来解除软件保护机制的方法。攻击者们使用这些工具来了解应用程序的工作方式。然后,攻击者们会使用调试器和反汇编器转储代码除去对硬件设备的调用
时间篡改
时间篡改就是改回系统时钟时间,(凡高软件www.flagsoft.com.cn)收集整理,使经过一段时间后本应无法使用的试用版应用程序等继续工作。

攻击硬件
通常这种方法非常困难,要耗费大量的时间,并且需要非常昂贵的设备才能完成。而且圣天狗使用片上系统(COB)技术,具有很高的可靠性,可以很好地防止逆向工程攻击。圣天狗存储区使用多个具有 性的随机密钥进行加密,能够防止内在克隆。

采用绑定技术前后硬件结构的对比图


采用绑定技术前后硬件结构的对比图

攻击赛孚耐公司供应的组件
通常,黑客会以赛孚耐公司供应的组件为目标(例如,驱动程序替换或仿真与重播攻击),这样它们在不插入圣天狗的情况下就可以向驱动程序返回正确的回应。赛孚耐公司提供的组件之间的所有通讯都通过使用行业标准算法的安全通讯通道进行保护,可以有效的抵御这种攻击.

安全通道技术

基于公钥加密原理
建立应用程序与加密锁之间的安全通道
随机生成 AES 加密的密钥, 采用ECC (椭圆曲线加密法)加密
整个密钥绝无泄漏
阻止中间层攻击
防止驱动程序仿真
暴力攻击事实上不可能实现

攻击各方之间的通讯
各方-开发商、 终用户和代理商-之间有关许可证的通信也易引起攻击。例如,一个 终用户可能会多次应用升级串。但是,由于硬件狗的“一次性升级”性能,升级串只能使用一次。
此外,代理商也可能超过允许的范围为 终用户编程更多数量的许可证。(凡高软件www.flagsoft.com.cn)收集整理为了防止这一点,您可以设定计数字来限制所编写的许可证。





时间篡改攻击
可以使用带有实时时钟的圣天狗。它包含的防时间篡改的内部实时时钟可以表示准确的日期与时间,能够跟踪/ 试用程序的使用。实时时钟提供独立于系统时钟的时间-为抵御时间篡改攻击提供了 佳解决方案。

时间闸计数器行为
通过 配置有圣天狗 V-Clock 时钟的非RTC 硬件狗能够可靠、安全地分发有时间限制的应用程序。(凡高软件www.flagsoft.com.cn)收集整理它们不需要主板电池就可以探测时间篡改,并且您可以设置时间闸计数器来指定时间篡改的次数。时间闸计数器是一个倒计数值,可以容忍1 秒到30 天(不包括夏令时拨快的时间)时间范围的时间篡改攻击,直到它计数到零。


的加密方案
作为软件设计的一部分以文字形式体现
说明使用什么软件保护产品说明加密点如何设置
说明使用哪些加密技巧
能够有效控制硬件狗的初始化过程
能够有效控制硬件狗的分发过程

与加密方案有关的因素
软件的销售方式、升级方式
软件的开发环境、运行环境
软件保护产品的选择
要在软件的设计阶段进行,(凡高软件www.flagsoft.com.cn)收集整理要结合软件自身的特点,在加密强度、成本、易用性之间进行折衷考虑,选择一个合适的平衡点。


加密方案-软件加密技巧

攻击应用程序由于大多数软件开发商不是每天都在编写安全代码,应用程序经常成为 容易受到攻击的目标。对保护不善的应用程序,只需要执行数个快速更改就可以使它在不附加圣天狗的情况下运行,例如:黑客可能会使用代码补丁或伪造应用程序组件。下面提供的很多技巧可以使这种攻击变得 难成功。


加密方案-软件加密技巧(一)

使用外壳加密您的可执行文件
将您基于API 元素的自定义保护与外壳保护结合起来,增加额外的保护层。外壳加密您的 终可执行文件,使通过拆解或调试方法对您的应用程序实施的攻击难以实现。即使攻击者成功地删除了外壳,应用程序内部依然是受到保护的-因为这两种保护方式都是独立运行的。

加密方案-软件加密技巧(二)

执行查询-响应保护
查询-响应保护是一种由设定在圣天狗中的AES 算法驱动的,询问-响应式的技术。应用程序向圣天狗发送查询请求,圣天狗则发送使用AES算法计算出的响应,进行评估。如果获得的响应与预期的响应相匹配,则认为存在圣天狗,允许应用程序运行。利用编程到圣天狗中的AES 特征项,您可以通过调用SFNTQueryFeature 函数发送几乎无限数量的查询请求,这种机制是您保护策略的中心,因为它使复制正确的响应变得 难。
但是,仅在应用程序中使用一次API 是不够的;还应该尽量使用以下很多技巧。

加密方案-软件加密技巧(三)

创建大的查询/ 响应表
如果应用程序仅向圣天狗发布少量的查询,它们会很容易被预测到。而使用大的查询/ 响应表需要较长的时间才能使用到每种可能性;从而可以增加模拟每种可能的查询所需要的时间。

分割大表
必须将大表分割为数个小表。这样可以将表置于应用程序中的多个位置,使它们很难被全部找到。

加密方案-软件加密技巧(四)

频繁查询
如果仅依靠代码开始位置的一次调用,很容易使技术高超的黑客分离该调用,破解保护。仅查询一次另外的一个潜在问题是用户可以在启动程序后移除圣天狗。然后该狗可以被用于运行应用程序的其它副复本。

随机查询
必须精心设计保护策略,使应用程序可以从查询/ 响应表中随机抽取询问。这可以使得询问内容很难预料。如果应用程序每次都使用不同的询问,那么破解者将很难去对每一次运行进行侦听和模拟。

加密方案-软件加密技巧(五)

向您的查询检查添加噪音
生成随机查询,然后摒弃结果。这会在有用数据中生成大量未使用的 数据。试图记录程序与硬件狗之间的通讯的人需要记录大量的数据,而且很难破解哪些是有用的数据。

频繁地生成新表
每次为应用程序创建升级程序时,重新生成查询/ 响应表。如果攻击者能够记录加密程序使用的所有询问,升级会突然使他必需重复这项工作。如果已经使用上述技巧,这项工作将变得非常费时,非法用户就只能使用过期软件了。

加密方案-软件加密技巧(六)

使用AES 算法加密数据
使用圣天狗中的AES 算法加密16 字节的数据。它可以提供无法突破的安全屏障,因为嵌入在圣天狗中的AES 算法及其使用的128 位随机生成的密钥是任何调试或存储区转载程序都无法使用的。您需要:

■ 调用SFNTEncrypt API 函数发送明码数据,(凡高软件www.flagsoft.com.cn)收集整理硬件狗在内部进行加密,并将结果返回。
■ 调用SFNTDecrypt API 函数获取解密后的数据。如果解密后的数据与明码数据相匹配,则认为存在正确的圣天狗。跳过圣天狗复制这些结果是不可能的,因为所有操作都在硬件中执行。

.
加密方案-软件加密技巧(七)

加密查询/ 响应表
加密查询/ 响应表,使攻击者无法通过查看代码寻找和使用该表。如果只在使用的时候解密表数据,那么攻击者永远都无法看到完整的解密表。

加密应用程序使用的关键数据
所有的应用程序在某些点都需要数据才能运行。加密重要的数据文件或程序所使用的常量,使它只有在插入正确的圣天狗时才能解密运行。

加密方案-软件加密技巧(八)

使用ECC 签名与验证验证数据的完整性
ECC 是一种基于离散对数的公钥算法(使用公钥和私钥对),(凡高软件www.flagsoft.com.cn)收集整理和其它算法相比,在使用相同的密钥长度时,更难以破译。可以在应用程序中使用ECC 算法按照以下步骤执行安全检查:

1. 生成随机信息。
2. 调用SFNTSign API 函数,使用保存于圣天狗的私钥对该信息进行签名。
3. 调用SFNTVerify API 函数,使用已知的对应的公钥验证签名。如果该函数返回成功信息,则认为存在正确的圣天狗。.

加密方案-软件加密技巧(九)

分散您的安全检查
在整个代码中分散安全检查是一种很好的做法。这样,如果要使应用程序在没有硬件狗的情况下运行,就需要对代码的每一个位置都进行修改。将安全检查局限于少数位置会使它们很容易被发现和删除。以下给出了更多技巧:

加密方案-软件加密技巧(十)

使用分散函数代替集中的封装函数
创建检查硬件狗的单一功能调用,然后在整个代码中执行该功能调用将无法实现安全检查的分散性。可以使用分散的封装函数替代单一的封装函数,提高程序的安全性。
将安全检查置于难以跟踪的操作中
例如,如果您将检查分散于一系列的数据库操作中,要想追踪到调用动作将耗费大量的时间。

加密方案-软件加密技巧(十一)

分散安全检查步骤
安全检查通常由多个步骤组成:调用硬件狗、评估返回值和对评估结果做出反应。您不应将整个策略都放置在您代码中的一个位置上,而是应当四处分散安全检查,模糊它们之间的关系。如果安全检查的代码组件实体分散于应用程序的各个不同部分,而不是集中在一起,那么它的安全保护策略将更难被攻破。

使用多线程增强您的保护
如果单项安全检查在多线程上进行,那么对其运行的跟踪将会非常复杂。这会使代码调试跟踪变得 为困难。

加密方案-软件加密技巧(十二)

使用返回值作为变量
在高级语言中隐藏安全检查的一种有效方法是使用返回值控制应用程序的流程。使用这种方法,硬件狗返回的值将变成应用程序下一执行步骤或子程序的逻辑指针或选择密钥。这会使攻击者更难分析您的代码。使用返回值的另一种方法是将它加到变量值中,这样它们的和就是需要的变量值。如果该变量在代码的其他部分使用,那么该代码依靠调用硬件狗才能运行。

例如,假设在您应用程序的某一点,您需要一个变量来包含浮点值12345。(凡高软件www.flagsoft.com.cn)收集整理假设您发送到硬件狗的一个查询字符串返回的十进制数字为 2345,那么:
■ 设置浮点变量为 10000。
■ 发送该查询。
■ 将响应增加到该变量。
注意: 使用浮点值进行比较
您可以向API 返回值增加浮点值(如1.5),而不是仅使用 SP_SUCCESS 十进制值与API 返回值进行比较。这可以更好的防御 汇编代码的逆向工程攻击。
如果插入了正确的狗,变量将包含正确的值。在实际操作中,(凡高软件www.flagsoft.com.cn)收集整理如果正确值背后的数字运算比简单的加法更为复杂,这种技术是非常有用的。


加密方案-软件加密技巧(十三)

校验您的代码
您应采用对您的关键数据进行检验和校验的作法。您还应该校验应用程序本身和任何DLL 文件或它使用的共享库的合法性。

更改您的策略
后,当您升级您的应用程序时,请尽量多投入时间修改和增强您的安全保护机制。您原有安全保护机制存在的时间越长,该机制受到攻击的次数就越多。 终,即使是 强大的保护机制都可能被突破。但是,如果您不断地升级您的保护机制,就可以 一步。请把此措施当作您维护计划的一部分,使您的安全水平保持在水平

的加密方案-软件加密技巧-加密工程师必读-凡高软件呕心力作
金雅拓 (Gemalto)通过收购赛孚耐SafeNet成为软件货币化市场的 者,我公司所售赛孚耐SafeNet加密狗产品的序列号均为 序列号,SafeNet加密狗加密锁产品关键部件是采用非通用芯片可以防止克隆复制的,可提供30天免费测试。
公司有多名专业加密技术工程师,可随时为您售前售后服务,客户二次开发及特殊技术要求我们可以和SafeNet高级工程师为您现场服务。产品三包:7天包退换,非物理损坏1年免费更换,1年免费服务
          加密狗-加密锁-软件保护产品
·加密狗报价-软件保护-加密锁购买价格
·圣天狗SHK-软件保护加密标准-简单又安全
·圣天诺HASP HL-世界上 安全可靠的加密锁
·宏狗-自定义算法的加密狗
·微狗-高性价比 多使用的硬件加密狗
·软件狗-单机版软件硬件加密的低价格
·圣天诺超强锁SuperPro+
·圣天诺奥强锁UltraPro
·圣天诺RMS-完整的许可证管理解决方案
·sentinel LDK 6.x软加密许可证授权管理
·HASP-MaxMicro 小的的硬件加密锁-工控机
·HASP SL基于软件的产品激活授权解决方案
·超级狗SuperDog易用无驱专用芯片-本地化
·视频加密狗产品介绍
·视频加密狗技术参数
·视频加密狗操作演示
·加密狗 新驱动程下载赛孚耐SafeNet官方
          iKey 身份认证令牌 USB Key
·iKey1000 个人双因素身份认证 USB Key
·iKey2032基于PKI双因素身份验证Win和MAC
·iKey4000 先进的身份认证USB令牌
·eToken 5100(Pro72K)电子身份认证
·eToken PASS 一次性密码令牌
·DataSecure 给数据库加密的软件
·SafeNet数据加密工具解决方案
·硬盘加密工具 ProtectDrive
·文件和文件夹加密-ProtectFile
·U盘加密ProtectPack压缩存档加密软件
·SafeNet信息安全绝对 者-成功案例
技术咨询 电话:027-87153162
技术咨询 QQ  258299995,258300138
售后服务 QQ  258298351 阳小姐

给我发消息

杨先生:15586906122

给我发消息 阳小姐:13396065129
     Email邮箱  89010286@qq.com  
    [查看公司详细地址-乘车路线-地理图片]
 


版权所有:湖北省武汉金雅特(原武汉凡高软件公司) 地址:武汉市武珞路丁字桥南方帝园A座2105
Copy Right (c)1996-2015 flagsoft.com.cn All right reserver 电话:027-87153162 Email:89010286@qq.com