防止 Java 软件中的许可证保护规避

信息安全 爪哇 drm
2021-09-03 13:55:03

供应商的软件(用 Java 编写)使用 DSA 签名来验证许可证信息是否正确。

它通过将公钥嵌入到同一个 Java 软件中来实现这一点。

生成合法的许可证信息,然后用私钥签名,并保存到文件中,可以通过公钥验证。

随之而来的是一名黑客,他生成了自己的私钥/公钥对,并将 Java 软件中嵌入的公钥更改为他自己的。然后,他使用自己的私钥生成许可证文件。

如何规避这种情况?也就是说,厂商可以采取什么措施来防止黑客进行上述行为?

谢谢你。

1个回答

不多,真的。
当攻击者可以访问代码时,他可以将其修改为他心中的内容。
例如,您可以通过使用代码混淆来使其变得更加困难。但是你不能让它变得不可能。

您可以让代码通过互联网连接到服务器以验证其完整性,但攻击者也可以重新设计代码以在他自己的服务器上调用。(并且它会阻碍任何连接断开的合法用户......)。

所以你必须阻止攻击者访问代码。
假设您的用户有可靠的互联网连接,这可以通过提供您的代码即服务 (SaaS) 来完成。