Encryption 部分密钥验证

Encryption 部分密钥验证,encryption,cryptography,licensing,key-generator,Encryption,Cryptography,Licensing,Key Generator,对于那些有过软件保护部分密钥验证技术经验的人来说,这是一个问题。在阅读了大量的参考资料之后,我试图理解PKV如何比其他keygen方案更好 我有几个问题 基本上,如果我理解正确的话,PKV背后的想法是,不会在客户端检查整个密钥,因此,如果有人(即黑客)提出了一个keygen,您只需使用不同的密钥检查重新编译软件,瞧,假keygen将不再工作 但我不明白的是,如果某个时候有一个keygen,它显然能够解锁至少一个版本的软件,这个版本仍然可以在网上找到。所以基本上,你根本没有避免使用假钥匙,你只是

对于那些有过软件保护部分密钥验证技术经验的人来说,这是一个问题。在阅读了大量的参考资料之后,我试图理解PKV如何比其他keygen方案更好

我有几个问题

基本上,如果我理解正确的话,PKV背后的想法是,不会在客户端检查整个密钥,因此,如果有人(即黑客)提出了一个keygen,您只需使用不同的密钥检查重新编译软件,瞧,假keygen将不再工作

但我不明白的是,如果某个时候有一个keygen,它显然能够解锁至少一个版本的软件,这个版本仍然可以在网上找到。所以基本上,你根本没有避免使用假钥匙,你只是有一个版本的软件可以使用假钥匙,而另一个版本则不能


那么,这究竟比其他密钥生成保护技术优越多少呢?

这里的想法是这样的-如果我们首先想象您的应用程序包含验证整个许可证密钥的代码,并且有人创建了密钥生成,为下一版本重新保护许可过程的唯一实际选择是完全更改密钥生成算法,以便密钥生成器不再生成有效密钥


这有一个明显的缺点——合法用户需要获得使用新密钥算法创建的新许可证密钥,才能使用更新版本。这对您来说可能是一场支持噩梦,对您的客户来说可能是一个烦恼,可能会让他们转向竞争对手的产品

通过只验证产品任何一个版本中的部分密钥,攻击者几乎不可能通过分解二进制文件来确定整个密钥是如何生成的。因此,要在下一个版本中锁定非法生成的密钥,您只需开始检查密钥的不同部分,这些部分在上一个版本中未被检查。由于密钥生成机制没有改变,合法用户的密钥仍然可以正常工作,但非法密钥(以及创建它们的密钥族)不再有效。当然,旧版本的密钥生成器仍然适用于旧版本,但您对此无能为力


当然,由于密钥的长度是有限的,在检查整个密钥之前,您可以重复此过程的次数很少,或者在所有以前版本的检查中都有足够的信息来重建整个密钥生成过程,但是,它可能会持续足够长的时间,使您能够合理地期望用户为您的产品的下一个主要版本购买新的许可证,您可以完全更改生成机制并重新开始。

这个问题似乎是离题的,因为它是关于安全性的。stackexchange.com“”合法用户需要使用新的密钥算法创建新的许可证密钥“”->这是我错过的部分。谢谢你,伙计!很好的解释。对于@Pickle:不幸的是,一旦黑客知道了如何重新创建密钥的一部分,进一步的测试(更新版本)对他来说就容易多了,所以虽然这样的方案可以让你的生活在某种程度上变得更容易,但实际上并不是那么容易。新的密钥保护方案需要在数月内推出,如果不是数周的话。记住,一旦你与黑客搏斗,你将开始与持卡人打交道(那些用偷来的信用卡购买合法许可证的人)。