Encryption 许可证文件的静态或随机IV

Encryption 许可证文件的静态或随机IV,encryption,encryption-symmetric,Encryption,Encryption Symmetric,我已经做了一个小程序,允许我以加密的形式向用户发送许可证 目前我有 加密我的AES密钥的RSA私钥 加密数据的单个AES/CBC密钥 RSA公钥 AES和公钥都硬编码到设备上 当请求许可证时,我应该如何处理IV?我应该在设备上创建一个静态许可证还是在我创建的每个新许可证中发送一个新的许可证?这不是很愚蠢吗 您应该使用RSA公钥而不是私钥进行加密。如果按照您的建议使用私钥进行加密,那么可以访问公钥的每个人都将学习AES密钥,并能够解密或伪造任何内容。当然,出于同样的原因,您也不应该对不同的接收

我已经做了一个小程序,允许我以加密的形式向用户发送许可证

目前我有

  • 加密我的AES密钥的RSA私钥
  • 加密数据的单个AES/CBC密钥
  • RSA公钥
AES和公钥都硬编码到设备上


当请求许可证时,我应该如何处理IV?我应该在设备上创建一个静态许可证还是在我创建的每个新许可证中发送一个新的许可证?

这不是很愚蠢吗

您应该使用RSA公钥而不是私钥进行加密。如果按照您的建议使用私钥进行加密,那么可以访问公钥的每个人都将学习AES密钥,并能够解密或伪造任何内容。当然,出于同样的原因,您也不应该对不同的接收器使用相同的AES密钥


为了回答这个问题,您应该为每个AES/CBC加密使用一个新的随机IV

这个建议难道不是很愚蠢吗

您应该使用RSA公钥而不是私钥进行加密。如果按照您的建议使用私钥进行加密,那么可以访问公钥的每个人都将学习AES密钥,并能够解密或伪造任何内容。当然,出于同样的原因,您也不应该对不同的接收器使用相同的AES密钥


为了回答这个问题,您应该为每个AES/CBC加密使用一个新的随机IV

如果我理解你想做什么,那么就像大多数许可证计划一样,它基本上是一个计划。我只会解决密码问题,当然也有黑客玩捉迷藏的问题。您应该知道,没有任何DRM方案在密码意义上提供任何可测量的安全性(除非可能涉及安全硬件),但它们仍然很常见,一些开发人员对其背后的逻辑感到满意

您要做的是生成许可证数据,并包含一些信息,以防止用户从合法用户复制有效的许可证文件。示例可能是mac地址、电话号码等,然后您可以查看这些数据。然后,许可证由未加密的许可证和签名字节组成。在用户端,安装软件将使用硬编码公钥验证签名,并执行任何其他检查(mac地址匹配、电话号码匹配等)

这将是您方案的核心,对于大多数开发人员来说已经足够了。你可以使用这个核心,然后使用ad-hoc加密,包括加密、分割等,取决于你想与捉迷藏游戏走多远。 编辑:


如果我可以提个建议的话,我认为这本书将是一项明智的投资。它包括使用Bouncycastle库的示例。您可以从同一个网站免费下载这些示例。

如果我理解您的意图,那么,与大多数许可计划一样,它基本上是一个计划。我只会解决密码问题,当然也有黑客玩捉迷藏的问题。您应该知道,没有任何DRM方案在密码意义上提供任何可测量的安全性(除非可能涉及安全硬件),但它们仍然很常见,一些开发人员对其背后的逻辑感到满意

您要做的是生成许可证数据,并包含一些信息,以防止用户从合法用户复制有效的许可证文件。示例可能是mac地址、电话号码等,然后您可以查看这些数据。然后,许可证由未加密的许可证和签名字节组成。在用户端,安装软件将使用硬编码公钥验证签名,并执行任何其他检查(mac地址匹配、电话号码匹配等)

这将是您方案的核心,对于大多数开发人员来说已经足够了。你可以使用这个核心,然后使用ad-hoc加密,包括加密、分割等,取决于你想与捉迷藏游戏走多远。 编辑:


如果我可以提个建议的话,我认为这本书将是一项明智的投资。它包括使用Bouncycastle库的示例。你可以从同一个网站免费下载这些示例。

你完全错了。您不能使用您的私有RSA密钥加密AES密钥。这是毫无价值的,因为任何人都可以解密它,检索AES密钥,并修改他们的许可证。正如我在你的另一个帖子中所说的,你试图做的就是签名。你需要使用签名类。哇…我真的把自己搞糊涂了now@GregS因此,如果我的许可证中有3条我想要的数据(设备ID、电子邮件、到期日),我将如何使用签名?我想能够比较电话设备ID和许可证设备ID?当前日期与许可证到期等。你有这一切都错了。您不能使用您的私有RSA密钥加密AES密钥。这是毫无价值的,因为任何人都可以解密它,检索AES密钥,并修改他们的许可证。正如我在你的另一个帖子中所说的,你试图做的就是签名。你需要使用签名类。哇…我真的把自己搞糊涂了now@GregS因此,如果我的许可证中有3条我想要的数据(设备ID、电子邮件、到期日),我将如何使用签名?我想能够比较电话设备ID和许可证设备ID?当前日期与许可证到期等,这是我正在尝试做的。还有一件事,你说我应该在同一个文件中添加纯文本和签名。我如何确定签名的开始和结束时间?包含签名的文件格式应该为您这样做。一个标准的例子是PKCS7。这就是我正在尝试做的。还有一件事,你说我应该在同一个文件中添加纯文本和签名。如何确定签名的开始和结束时间?包含签名的文件格式应该为y