小编Dan*_*und的帖子

许可方案,欺骗安全和撤销功能

这是我的第一个问题所以请温柔......

我正在研究一种我想使用某种许可方案保护的软件.一个基本方案是为用户生成一些"唯一"密钥.当用户想要注册软件并接收激活码时,用户发送该密钥和注册码.

当应用程序运行时,它通过比较"唯一"键和通过解密激活码接收的数据包来验证激活码.

这是公平且非常简单的实现,可以选择不同的加密算法等.但是这个方案缺少两个属性:

  1. 如果用户设法欺骗硬件签名等以在另一台计算机上产生相同的"唯一"密钥,则他可以使用相同的许可证数据.
  2. 如果用户决定卸载该应用程序并希望将其移动到另一台计算机,则没有任何东西可以阻止他在旧计算机上再次使用旧许可证数据并仍然获得新安装的新许可证数据.

您对如何解决这些问题有任何建议吗?

我的一个想法是将一些随机数据添加到"唯一"密钥,这个随机数据将以一种模糊的方式存储,如果用户卸载应用程序,这个随机数据将被删除,并且某种哈希与之前的随机数据将生成数据和许可证数据,可以发送给我以验证他确实已经卸载了应用程序,并确保他无法再次使用以前的许可证数据,因为随机数据已经更改.

过去,现在......

编辑:我目前有一个有效的方案,我应该提到最常见的产品安装在嵌入式环境中,硬件变化非常罕见,如果出现硬件故障,那么大多数情况下机器都坏了.但我可以修改硬件密钥方案以考虑并允许一些更改.

也正因为如此,软件很可能不会在虚拟机内部运行,虽然好点,但我没想过.

应用程序不会定期调用,如果网络连接可用,用户可以选择进行更自动的注册,否则他/她获得注册密钥,将其输入软件并获取提供给我的安装ID ,注册码+安装ID生成用户从我那里获取的激活密钥,然后解锁软件.

我正在寻找的是2点的好/可行解决方案.硬件欺骗,撤销许可证密钥,即确保用户不能使用相同的regcode + activationcode.

感谢您的所有反馈

没有必要

security hash cryptography license-key

6
推荐指数
1
解决办法
904
查看次数

标签 统计

cryptography ×1

hash ×1

license-key ×1

security ×1