软件加密方案简介 点击:616 | 回复:10



linksafe

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:67帖 | 24回
  • 年度积分:0
  • 历史总积分:283
  • 注册:2010年6月10日
发表于:2016-10-09 17:09:25
楼主

做为软件开发者,研究好软件加密的确很重要,不过也很有必要多了解一些关于加密狗(加密锁)解密和破解的知识,加密和破解就像矛和盾一样,对于解密知识了解的越多,那么编写的加密代码就越好,要知道加密永远都比解密要容易的多,只有知己知彼,方能百战百胜。   

以下就针对使用加密狗进行硬件保护谈谈几点心得:   

针对于使用加密狗的解密有什么方法?   

1、硬件复制

  复制硬件,即解密者复制Sentinel Superpro相同的加密锁。  

2、监听    

 目前加密的解密破解工作主要集中在应用程序与加密动态库之间的通讯拦截。这种方法成本较低,也易于实现,对待以单片机等芯片为核心的加密具有不错的解密效果。   

3、 DEBUG    

解密者DEBUG等反编译程序,修改程序源代码或跳过查询比较。应用程序也就被解密了。    

对于Debug调试破解,由于软件的复杂度越来越高,编译器产生的代码也越来越多,通过反汇编等方法跟踪调试破解的复杂度已经变得越来越高,破解成本也越来越高,目前已经很少有人愿意花费大量精力进行如此复杂的破解,除非被破解的软件具有极高的价值。

 

对于以上的几种解密方法加密者可以考虑使用以下几种加密策略:

1.在选择加密狗的时候要选择硬件安全复制难度大的加密产品。使用可移植算法加密狗,可以把自己软件中一部分算法和代码移植加密狗中运行后者给用户提供二次开发环境,软件开发商可在上面做很多工作,完成自己的二次加密。实现了算法级加密,而不是从前的点级加密。与其他加密不同一般内嵌加密的做法是:为客户提供一个加密模块供加密调用,这样,最终生成的程序是和客户自己的程序为一体,不存在专门的加密模块,破译者也无从下手。

 

2.加密特有的文件完整性检测专用于反跟踪反破译。加密锁一旦检测到客户程序的校验码有变,则自动终止程序,保护软件,防止文件被非法篡改、分析。此功能将使得任何对开发商软件的解密企图都被识破

 

3. 可移植加密均为高强度设计,相当于主机之外另有一台专加密的小主机,内置CPU,加密算法的实现在锁内独立完成,不在主机CPU中,以便防止任何跟踪、解密,也减少CPU资源占用,不影响软件运行速度。整个过程中加密锁与计算机之间通讯均做加密处理,防止任何端口截获。

 

现在的解密技术排除法律和道德因素,就从学术角度来说是门科学。它与加密技术一样是相辅相成不断提高。我们的目标就是让加密技术在大部分时间内保持对解密技术优势,不断研究新型加密方法,使解密技术、时间、资源成本超出被保护软件的研制成本和实用时效,从而在实际意义上保护软件在其生存周期内不被盗版。希望以上的分析及应对策略能给读者些参考性建议。





grayly

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 51回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2016年1月27日
发表于:2016-10-09 20:50:19
1楼

硬件复制,这个听起来好高深啊。具体指的是什么呢?

114W1

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:46
  • 注册:2016年8月29日
发表于:2016-10-10 09:25:26
2楼

硬件复制,指<此处内容被屏蔽>者分析出芯片电路以及芯片里写的内容后,就可以立刻复制或克隆一个完全相同的加密狗。

grayly

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 51回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2016年1月27日
发表于:2016-10-10 14:07:08
3楼

回复内容:

对:114W1 硬件复制,指者分析出芯片电路以及芯片里写的内容后,就可以立刻复制或克隆一个完全相同的加密狗。     内容的回复:

哦,那岂不是不论是什么样的加密狗都可以被硬件复制吗

Nic_浩

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 22回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2016年8月25日
发表于:2016-10-10 19:35:18
4楼

现在很多的加密狗使用的是安全性很好的智能卡芯片,通常很难进行复制,因此这种硬件克隆的<此处内容被屏蔽>方法用处越来越少。

阳光无限好

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2016年8月26日
发表于:2016-10-11 08:27:01
5楼

那么Debug方式呢?

亮仔007

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2016年8月29日
发表于:2016-10-12 13:11:44
6楼

回复内容:

对:阳光无限好 那么Debug方式呢?     内容的回复:

对于Debug调试<此处内容被屏蔽>,就像楼主说的一样,现在除非被<此处内容被屏蔽>的软件具有极高的价值。应为工作量太大了。

cifu2011

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 26回
  • 年度积分:0
  • 历史总积分:167
  • 注册:2011年8月09日
发表于:2016-10-17 09:46:28
7楼

恩,是的。目前加密锁的<此处内容被屏蔽><此处内容被屏蔽>工作主要集中在应用程序与加密动态库之间的通讯拦截。

北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-10-18 08:46:05
8楼

回复内容:

对:cifu2011 恩,是的。目前加密锁的工作主要集中在应用程序与加密动态库之间的通讯拦截。     内容的回复:

博主提出的移植的这种思路,我觉得挺好的,之前没有接触过,有没有用过的人?

wyj777

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2016年1月27日
发表于:2016-10-18 13:23:46
9楼

其实本文已经写的很清楚了,基本上用法思路就是他讲的这些,其实最主要的一个就是思路,另外就是方案。熟悉点<此处内容被屏蔽>思路是有帮助的,你需要考虑的是怎样的移植是高效合理并安全性最高的。

北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-10-19 13:55:48
10楼

听起来还是挺复杂的

回复内容:

对: wyj777 其实本文已经写的很清楚了,基本上用法思路就是他讲的这些... 内容的回复!



热门招聘
相关主题

官方公众号

智造工程师