单片机的加密手段之三(反击篇)

单片机的加密手段之三(反击篇)

写第一篇《一种常用的单片机加密手段》的时候,我没想到会写到第三篇,源自于和很多朋友之间的交流和疑问,以及工程师们对破解的痛恨,因此这一篇我来教大家一种常用的简单的反击思路。

首先再来强调一下,任何一种加密手段,都不是绝对加密,都是相对加密,我们要做的加密手段是让破解者付出一定的代价,当这个代价大到他花费破解的精力和金钱,已经远远不如直接购买你的产品或者你的方案,或者自己独立开发出来更划算的时候,他自然而然就不会对你的产品进行破解了。那下面我介绍一种特定条件下,可以实施的一种反击手段。

第一篇我们介绍了一种加密手段,利用的是主芯片的唯一ID,但是现在市面一款主流的32位的MCU的system区域的唯一ID照样被调试工具改写。第二篇我们还介绍了一个自己做的虚假唯一ID,用来欺骗。那如果破解者进行芯片的全面复制,我们这两种办法还都是无能为力的,他把唯一ID和虚假唯一ID全部复制到他的新芯片内,我们还是做不到加密的功能,这个时候,我们可以采取上一篇介绍的加密芯片或者冷门单片机单独加密的方法。

那如果有一个特定条件,比如我们的产品是一个本身可以上网,连接到网络上的设备,那么我们就可以在我们的程序中留一定的后门,通过我们的服务器来监控我们产品的ID情况,既然可以监控,那么也就可以控制。

我们可以让我们的产品,每隔一段时间,这个时间可以是一天,可以是一个星期,可以是一个月的特定时间,跟我们的云端总服务器通信一次,来汇报一下他的ID信息,当我们监控到出现某一个ID被复制,产生了很多个相同ID的产品,或者出现和我们系统的ID不同的产品出现,那下面的工作你的程序想怎么办就怎么办了。

简单来说,可以直接让设备不工作。但是破解者有可能想出办法来再次破解。

复杂点来,就让设备工作不正常,并且没有规律,最好是不同的设备产生随机数,根据随机数的情况来让产品工作不正常,这样多个产品不正常的规律不一样,并且最好不要太频繁。工作不正常的方式也可以采取一些比较诡异的手法,这样破解者难以分辨是硬件器件问题,还是软件代码问题,让破解者难以找到问题,而且事件一旦触发,你的产品在不接入网络的情况下,依然隔一段事件会不正常。

这样做会让破解者付出惨痛的代价,有可能做出很多产品,付出很多成本,到最后产品都不工作。这样是不是残忍点了?对我们无比残忍的破解者,我们这点手段不算什么的。

加密和解密,是一个永不止步的工作,一种新的破解手段出现,我们就要能够再次研究出新的加密手段。

关于加密手段的内容,到此为止,下节课我们将会提供新内容。也欢迎大家讨论,提出想了解的技术话题,我会选取合适的话题给大家讲解。


分享到:


相關文章: