如何保护jar不被别人使用?

时间:2016-10-26 09:09:59

标签: java security jar

我们正在向客户分发一些Java jar文件,这些文件是我们业务的关键资产。我们可以进行模糊处理以使更难以进行崇敬工程,但我们也不希望在我们的应用程序之外使用jar文件。有什么好的解决方案吗?

我们正在考虑一种解决方案,即在运行时从我们的应用程序传递访问令牌(具有短期权)及其签名,并在每次调用公共接口时验证jar中的令牌。令牌和签名是从Web服务器生成的,并由私钥加密,而jar使用硬编码的公钥来验证签名。这有用吗?

2 个答案:

答案 0 :(得分:1)

无论您为二进制文件添加多少混淆,都可以对其进行逆向工程。它只需要更多的工作。

根据您提出的解决方案,我看到了主要问题: - 如果分发令牌的Web服务已关闭,合法用户将受到处罚 - 非法用户可以轻松修补java类以跳过令牌验证。因此,拥有比合法用户更好的服务。

您遇到的主要问题是您的附加值是在jar中。如果你发布它,它可以被任何人使用。

现在在网络上广泛使用的一种解决方案是将您的算法保留在内部并提出在线Web服务。客户端提交请求,您所在场所的服务器计算答案并将其提供给客户端。

但这是一种非常不同的商业模式,需要高度可用的基础设施。主云提供商可以提供帮助。

答案 1 :(得分:0)

您可以在jar中定义算法并将输出作为加密返回。您也可以在也加密的网络服务器中使用相同的算法。在比较两个输出时,您可以决定继续前进。

算法中的某些元素应该是无用的,不能复制。 通过这个,他在jar和网络服务器中都是独立的,并且没有任何东西在公共场合共享。

希望这有帮助