如何避免公钥欺骗?

时间:2011-08-26 20:29:19

标签: vb.net encryption licensing drm

我正在做一个激活服务器,它将使用户能够激活他们的软件。问题是他们拥有公钥。验证方法需要公钥来检查许可文件的签名。我担心的是有人可以使用两个密钥(公共和私有)生成自己的许可证文件,然后更改客户端上的公钥,这将破坏他当前的许可证。

有没有办法避免这种情况?公钥应该存放在哪里?您必须考虑到在客户端上完成检查,并在服务器上创建签名。

感谢。

2 个答案:

答案 0 :(得分:0)

所以?公钥加密的重点是解密只能由密钥对应方完成。如果您使用用户的公钥加密某些内容并将其发送到您的服务器,则他们无法解密该数据包,因为只有您拥有的私钥才能正常工作。

如果使用您的私钥加密用户的许可证文件,则只有他们的公钥才能解密。这样,即使许可文件被共享,您也可以跟踪共享它的人,因为只有一个用户的密钥才能解密它。

答案 1 :(得分:0)

请勿使用许可文件。每次启动应用程序时,请将其连接到许可服务器以对其进行验证。