供应商的软件(用 Java 编写)使用 DSA 签名来验证许可证信息是否正确。
它通过将公钥嵌入到同一个 Java 软件中来实现这一点。
生成合法的许可证信息,然后用私钥签名,并保存到文件中,可以通过公钥验证。
随之而来的是一名黑客,他生成了自己的私钥/公钥对,并将 Java 软件中嵌入的公钥更改为他自己的。然后,他使用自己的私钥生成许可证文件。
如何规避这种情况?也就是说,厂商可以采取什么措施来防止黑客进行上述行为?
谢谢你。
供应商的软件(用 Java 编写)使用 DSA 签名来验证许可证信息是否正确。
它通过将公钥嵌入到同一个 Java 软件中来实现这一点。
生成合法的许可证信息,然后用私钥签名,并保存到文件中,可以通过公钥验证。
随之而来的是一名黑客,他生成了自己的私钥/公钥对,并将 Java 软件中嵌入的公钥更改为他自己的。然后,他使用自己的私钥生成许可证文件。
如何规避这种情况?也就是说,厂商可以采取什么措施来防止黑客进行上述行为?
谢谢你。
不多,真的。
当攻击者可以访问代码时,他可以将其修改为他心中的内容。
例如,您可以通过使用代码混淆来使其变得更加困难。但是你不能让它变得不可能。
您可以让代码通过互联网连接到服务器以验证其完整性,但攻击者也可以重新设计代码以在他自己的服务器上调用。(并且它会阻碍任何连接断开的合法用户......)。
所以你必须阻止攻击者访问代码。
假设您的用户有可靠的互联网连接,这可以通过提供您的代码即服务 (SaaS) 来完成。