Encryption 《时代》杂志;设备有限授权

Encryption 《时代》杂志;设备有限授权,encryption,licensing,public-key-encryption,encryption-asymmetric,Encryption,Licensing,Public Key Encryption,Encryption Asymmetric,我需要向我的应用程序添加许可证,以限制我的应用程序运行的时间和设备。可以使用。 所以我想在我的许可证文件中存储HDD和/或NIC序列号和过期日期。 现在,我如何以以下方式保护我的许可证: 我的应用程序能够解密它,并读取和检查过期日期和序列 用户不能为自己创建许可证文件 我可以使用公钥/私钥加密来实现这一点吗 如果我可以使用公钥/私钥加密,那么拥有私钥(用于解密)的用户可以使用该私钥进行加密(使用能够使用该私钥解密的私钥手动生成许可证),还是只有公钥可以以私钥解密的方式进行加密 有更好的解决方

我需要向我的应用程序添加许可证,以限制我的应用程序运行的时间和设备。可以使用。
所以我想在我的许可证文件中存储HDD和/或NIC序列号和过期日期。
现在,我如何以以下方式保护我的许可证:

  • 我的应用程序能够解密它,并读取和检查过期日期和序列
  • 用户不能为自己创建许可证文件
我可以使用公钥/私钥加密来实现这一点吗

如果我可以使用公钥/私钥加密,那么拥有私钥(用于解密)的用户可以使用该私钥进行加密(使用能够使用该私钥解密的私钥手动生成许可证),还是只有公钥可以以私钥解密的方式进行加密


有更好的解决方案吗?

通常,许可证以人类可读的格式包含此类信息(计数、日期等),以便您的客户可以对其进行验证。然后使用私钥添加签名,以防止伪造/更改许可证


您的应用程序现在可以使用公钥(内置)来验证许可证,即使有人可以读取该密钥,但他们无法生成有效的许可证。[直到他们用自己的公钥替换你应用程序中的公钥]

听起来不错,但是什么能阻止一个知识渊博的用户编辑应用程序二进制文件并将许可证检查代码更改为一堆
NOP
s?@MarcB:我在我的应用程序上使用了一些隐藏和打包技术,但当然没有什么能提供100%的安全性;我只是想保护我的许可证不受用户更改到期日期或设备IDsPK加密的影响,但您的条款被颠倒了。您将使用私钥加密许可证文件。所有用户都将拥有用于解密文件的相同公钥。如果他们使用任何其他密钥,他们会得到垃圾而不是许可证。当然,您可以为每个用户设置一个P-K对,但这需要大量的工作。不,您将使用私钥对许可证文件进行签名。签名和加密是两个不同的概念。当然,如果用户可以访问或更改运行时代码,那么没有什么可以阻止他完全跳过许可,调整时钟等等。。最后,这是为了让DRM工作——如果没有对运行时的完全控制,这是不可能的。至于时间,最好使用授权服务器。请注意,即使这样也不是完全可靠的,并且在运行时需要网络连接。