我有这个打算通过互联网销售的 java swing 应用程序。目前我倾向于使用 java webstart 部署应用程序。该产品将被授权用户一次只能在一台计算机上使用该程序。我担心这个模型的盗版。我想安装一些安全功能来强制执行许可模式。目标是至少使许可用户难以将已安装的产品(包括许可密钥)复制给未许可用户。以下是我现在正在查看的选项:
每次启动程序时,强制用户使用用户名/密码向母船进行身份验证。
在用户注册并付款后,只需在用户 PC 的某处(隐藏?)安装许可证密钥。在运行时,验证是否安装了有效的许可证密钥。
使用/构建基于用户计算机硬件指纹的安全包。每次启动应用程序时都会计算此指纹,并使用某种散列与本地安装的许可证密钥进行比较。此许可证密钥将仅对此硬件指纹有效。
这里的问题之一是,一旦安装了这个应用程序,除了使用 java webstart 检查应用程序更新之外,应用程序不需要任何运行时联系母船。应用程序在本地执行的所有操作并使用 swing 向用户显示结果。因此,任何涉及母船的解决方案基本上都意味着构建一个服务器基础设施,其唯一目的是进行许可证验证。
我想我正在寻找的是基于 java 的东西,它至少有点安全、易于部署并且对用户来说并不痛苦。您使用了什么安全/许可方法?
编辑:我应该补充一点,我不一定要寻找灵丹妙药来防止绝对每个人都击败安全性。总会有人有足够的时间来找到完成它的方法。我不是很关心这些人。我基本上是想让临时用户难以简单地复制许可证密钥并将其发送给他的好友。如果实施得当,该解决方案应该让普通用户相信购买它更简单。