10

这个问题适合那些对软件保护的部分密钥验证技术有经验的人。我试图了解 PKV 如何比其他 keygen 方案更好,并且在阅读了很多参考

http://47hats.com/2007/07/26/implementing-a-partial-serial-number-verification-system/

我有一些问题。

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

但我不明白的是,如果某个时候有一个keygen,它显然能够至少解锁一个软件版本,仍然可以在网上找到。所以基本上,你根本没有避免假密钥,你只有一个版本的软件可以与假密钥生成器一起工作,而另一个版本不能。

那么,这究竟是如何优于其他 keygen 保护技术的呢?

4

1 回答 1

11

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

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

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

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

于 2014-04-02T16:56:51.053 回答