|
|
1
11
这里的想法是这样的-如果我们首先假设您的应用程序包含验证 整体 许可证密钥,如果有人创建了密钥生成器,那么为下一个版本重新保护许可证过程的唯一真正选择是完全更改密钥生成算法,使密钥生成器不再生成有效密钥。 这有一个显著的缺点——合法用户需要获得使用新密钥算法创建的新许可密钥,才能使用更新的版本。这可能是您的支持噩梦,也可能是您客户的烦恼,可能会导致他们转向竞争对手的产品。 仅通过验证 部分 对于产品的任何一个版本中的密钥,攻击者几乎不可能通过分解二进制文件来确定整个密钥是如何生成的。因此,要在下一版本中锁定非法生成的密钥,您只需开始检查在上一版本中未检查的密钥的不同部分。由于密钥生成机制没有改变,合法用户的密钥仍然可以正常工作,但非法密钥(以及创建它们的密钥族)不再有效。当然,旧的密钥生成器仍然适用于旧版本,但您对此无能为力。 当然,由于您的密钥是有限长度的,在检查整个密钥之前,您只能重复此过程太多次,或者在所有先前版本中的检查中有足够的信息来重建整个密钥生成过程,但也许这将持续足够长的时间,以便您能够合理地期望用户为您的产品的下一个主要版本购买新的许可证,在那里您可以完全更改生成机制并重新开始。 |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 2 年前 |
|
|
Shirin Ebadi · 加载公钥字节作为DH密钥 2 年前 |
|
YoavKlein · 为什么jwt.io会给我私钥部分来填充? 2 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
Stefan N · 如何生成N个字符的所有字母数字组合[重复] 2 年前 |
|
|
xdivayze · 在线和离线客户端之间的打包密钥交换 2 年前 |