我想要许可我的产品。 问题是关于验证并确保公钥没有改变,证书也是如此(中间人攻击)。
到目前为止我的计划是;
现在的问题是;如果有人对EXE进行逆向工程,则使用自己的公钥更改公钥,并获取使用自己的私钥生成的新证书。然后EXE将始终验证证书,我的EXE被黑了。
这可能吗?如果是,那么可以确定我的公钥不会改变的解决方案是什么?
注意:不涉及互联网连接。
答案 0 :(得分:1)
为确保某些内容的完整性(例如,可执行文件),请使用私钥对其进行签名(或其中的关键部分),并在每次启动应用程序时检查签名是否有效。
有足够时间的人当然可以弄清楚签名是如何完成的并取而代之的。他们可以完全绕过检查。解决这个问题的唯一方法就是加密。但是有足够时间的人可以解决解密算法...
通常的方法是保护您的许可证是将软件绑定到某些硬件,例如USB加密狗,TPM或HDD序列号。这仍然不能保证坚定的黑客不会绕过您的许可。
对黑客没有100%的保护。您所要做的就是让用户破解它是不经济的。努力破解比你为产品收费更贵的钱。使许可条款非常明确,并警告在违规情况下可能会受到起诉。建立可疑违规的报告机制,以便您可以追踪它们。