应用程序的激活数据保存在哪里?

发布于 2024-11-17 14:21:42 字数 198 浏览 3 评论 0原文

在我的应用程序中,我将使用在线激活来控制盗版。但问题是,一旦用户激活软件,我如何检测该应用程序已激活。是否有任何方法来存储该应用程序激活的数据。不要告诉我注册表,因为这种方式不安全。任何与在线激活相关的信息都会对我有所帮助。我决定在系统驱动器中创建文件,我的应用程序每次启动时都会检查该文件。如果找到文件,则应用程序启动,如果没有启动,则要求输入密钥。这样安全吗?任何建议都会很好!

In my application I am gonna use online activation to control piracy.but the problem is that once user activates the software, how do i detect that that application is activated.is there any way to store the data that this application is activated. don't tell me registry because this way is not secure.Any information related to online activation will be helpful to me.i have decided to create file in system drive and my application check for that file every time it starts.If file found then application starts and if it doesn't then it ask for the key. is that secure ?any suggestion will be good!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一抹微笑 2024-11-24 14:21:42

您提到的问题是您需要考虑的一个问题,但还有很多其他问题:

  • 用户如何在没有网络连接的系统上激活许可证?
  • 如果您遵循节点锁定每个许可证的标准做法(自动读取一些系统参数,例如 MAC 地址、主机名、硬盘 ID 等)并在运行时检查这些参数,您将如何适应升级系统的用户等导致这些参数之一发生变化?
  • 如果用户想要将其许可证转移到不同的系统(例如将其从台式机转移到笔记本电脑或新系统),该怎么办?
  • 如果用户打电话给您(他们会)并说:“救命,我的系统崩溃了,所以我需要让我的许可证在另一台机器上运行,那该怎么办?”
  • 如果您使用激活系统设置许可证时间限制,例如试用许可证为 30 天,订阅为一年,您如何防止用户在之前错误设置系统时钟来试图欺骗这一点。他们激活许可证还是激活后?
  • 如果您决定提供不同版本的应用程序怎么办?您的激活系统可以管理这个吗?例如,根据每个用户的激活许可证启用或配置产品功能,但所有功能都来自一个可执行文件。关于
  • 激活许可证的报告怎么样?您的服务器是否捕获激活许可证的数据并提供报告、警报等?
  • 如果有人想要购买一组(例如 20 个)许可证怎么办?您是否必须提供 20 个不同的激活 ID,还是可以提供一个允许激活 20 个许可证的 ID?

只是根据多年在该领域的经验需要考虑的一些事情。

The issue you mentioned is one you need to consider, but there are many others:

  • How can users activate licenses on systems that don't have a network connection?
  • If you follow the standard practice of node-locking each license (automatically reading some system parameters such as MAC address, host name, hard disk ID etc.) and checking these at run time, how will you accommodate users who upgrade their system and so cause one of these parameters to change?
  • What about users who want to relocate their license to a different system, such as moving it from their desktop to the laptop, or to a new system?
  • What about users who call you (and they will) and say: "Help, my system has crashed so I need to get my license running on a different machine?"
  • If you are using the activation system to set a license time limit, such as 30 days for a trial license or a year for a subscription, how can you protect against users who try to cheat on this by mis-setting their system clock either before they activate their license or after it is activated?
  • What if you decide to offer different versions of your application - can your activation system manage this? e.g. enable or configure product features for each user based on their activation license, but all from one executable
  • How about reporting on licenses activated - does your server capture the data on licenses activated and provide reports, alert etc.?
  • What if someone wants to buy a pool of, say, 20 licenses? Do you have to provide 20 different activation IDs, or can you provide one ID that will allow 20 licenses to be activated?

Just some things to think about based on years of experience in the field.

一城柳絮吹成雪 2024-11-24 14:21:42

我可以看到对“保护激活数据”有两种不同的看法:

1)如果您试图保护用户的激活数据,以便用户无法将数据复制到另一台计算机并在那里使用该软件另外,我提出以下协议:

在激活期间,用户环境的唯一标识特征被散列并发送到激活服务器。激活服务器生成使用密钥签名的激活。产品启动时,您的产品会验证激活是否已由您的服务器签名(使用服务器的公钥),并且本地环境哈希为激活中包含的相同签名值。如果失败,则说明环境已更改(新安装了操作系统?),或者数据已迁移到新环境(听起来)需要新的许可证/激活。无论哪种方式,用户都需要重新激活。

2) 如果您试图保护激活数据免遭损坏,请考虑用以下逻辑补充以前的协议:如果客户尝试使用相同的 UID 重新激活,则允许再次激活,这应该会导致相同的激活实例被发送回客户。

这些都是即兴的,我不保证其中任何一个都是防弹的。另外,请记住,盗版者只需绕过激活验证即可成为一个有争议的问题。

另外,我认为值得注意的是,使用此方案的想法是您不必在任何地方隐藏激活信息。您可以将其存放在方便的地方。

There are two different takes on "securing the activation data" that I can see:

1) If you are trying to secure the activation data from the user, so that the user can not copy the data to a different computer and use the software there as well, I propose the following protocol:

During activation, uniquely identifying features of the user's environment are hashed and sent to the activation server. The activation server generates an activation that is signed using a secret key. On product start, your product verifies that the activation was signed by your server (using the server's public key) and that the local environment hashes to the same signed value contained in the activation. If it fails, then the environment has either changed (new installation of the operating system?) or the data has migrated to a new environment requiring (by the sounds of it) a new license / activation. Either way, the user requires a new activation.

2) If you're trying to protect the activation data from corruption then consider supplementing the former protocol with logic that, if the customer tries to re-activate with the same UID, allow the activation to go through again, which should result in an identical activation instance being sent back to the customer.

These are off the cuff, I don't guarantee either of these to be bulletproof. Also, remember, a pirate only has to bypass verification for activation to be a moot point.

Also, I feel it's important to note that, with this scheme the idea is that you don't have to hide activation information anywhere. You can store it wherever is convenient.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文