【问题标题】:Secure of copying working application from one pc to other将工作应用程序从一台电脑复制到另一台电脑的安全性
【发布时间】:2019-07-17 21:29:45
【问题描述】:

我创建了 JavaFx 应用程序。现在我想保护它不被复制到其他计算机。更详细地说,我向一位客户出售我的应用程序,安装此应用程序后,我需要保护它从一台计算机复制到其他计算机.如何防止从其他计算机复​​制它。应用程序是 jar 格式

【问题讨论】:

    标签: java javafx desktop-application


    【解决方案1】:

    理论上,你不能。


    但是:您可以采取一些措施来减少这种机会。我将从最安全的开始提及它们。

    即:远程许可(也就是将许可保留在服务器中)。您的应用程序可以生成一种独特的 id,并且无论何时启动,它都会检查此 id 是否在远程服务器的数据库中。 (这里的好选择是 RESTful 服务作为后端。那么一个 HTTP 请求就足够了。)如果远程中不存在此 id,您的程序将终止。

    如果客户端没有互联网连接怎么办? 终止了吗?

    有一个选项可以处理这个问题,但仍然可以“绕过”。每当它启动(通过互联网连接)时,它都会在本地存储“肯定”答案(文件、注册表或其他东西)。然后,只要客户端未连接到互联网(远程检查失败),您的程序就会开始在本地搜索“肯定”答案。如果它找到它,它就会启动。

    如果客户对应用程序进行逆向工程,找到它的存储位置怎么办? “肯定”的答案,手动创建它,然后将规则添加到他的 防火墙以防止您的应用程序与远程通信?

    你告诉我。我能想到的最好的办法是在远程检查失败时检查防火墙规则。


    第二个选项:创建第二个 .jar,生成一种“肯定”答案(如上所述)。将此 .jar 运行到您的客户端。然后从他的电脑中删除它。然后你的应用程序会寻找这个“肯定”的答案。如果存在,则应用程序运行。否则,它终止。如果他将应用程序复制到另一台电脑上,它不会运行,因为您没有在那里运行第二个 jar。

    如果他对您的应用进行逆向工程并找到您的存储位置和方式怎么办 这个“肯定”的答案?

    他将能够复制您的申请,而您永远不会知道。

    【讨论】: