本帖最后由 jacklee8 于 2014-12-8 13:21 编辑
传统的加密锁原理:
1、将原本在PC中运行的部分关键代码移植到锁中运行,如果调用加密锁这部分代码被跳过,程序将会缺少一部分关键代码,从而没有办**常运行。
缺点:如果一个加密锁被**,即加密锁的MCU软件代码被复制(通过芯片开盖、或者软件后门等非法手段),或者加密狗生产厂家MCU代码管理不善导致流出,买相同的MCU就可以批量生产复制了。
2、将加密锁运行的结果用于PC软件继续运行的代码中,即这些变量或结果在下面继续运行的代码中将会继续用到,因为它本身是程序中的一部分,这样就可以达到,存在指定的加密锁,程序将会正常运行,不存在指定加密锁或加密部分被跳过,程序将不能正常运行,从而达到不被盗版的目的。
缺点:通过跟踪监测PC与加密狗的通信数据,模拟相同的数据欺骗PC软件,从而达到复制的目的。
3、私钥加密方式即对称密钥方式,也就是说加密密钥必须与解密密钥相同,否则的话,加密后的代码将无法被加密锁在锁中正确解密。所以在加密时,必须先在锁中设置好正确的加密锁密钥,然后将加密锁派发给用户时,也需要在锁中设置相同的加密密钥
缺点:密钥没有分散,每一个锁中密钥都是相同的,如果一个锁被复制,整个PC软件都被**了,没有实现一把锁一个密钥的的方式。
我们的锁实现了一把锁一个密钥的方法,如果一个锁被**,也不能复制,因为每把锁有唯一的序列号,产生的唯一密钥,即使把这把锁的MCU代码**,烧写到相同的MCU中,也无**常运行,从而达到保护的目的。即使我们的锁的MCU代码被流出,也没有办法生产与PC端软件对应的加密狗,因为密钥是由PC软件厂商保存的,从而保障了PC软件厂商的利益。
同时我们建议运行锁内的代码时,PC每次运行到同一处需要调用锁内代码时,增加随机性,这样,监测PC与加密狗的通信数据,模拟相同的数据欺骗PC软件,从而达到复制的目的方法就无法达到。
如果有需求可以联系我们,配合你做好软件防盗版的工作。
QQ:1900109344 |