The following method works well, as long as you have a public server at your disposal:
Serial based protection, user must enter a serial before using the program
On first serial entry, bind the serial to the MAC address and create an auth code generated from both of these values.
Check with your server to make sure the serial and MAC can be bound to eachother. Register the MAC on the server.
On each subsequent run, never contact the server again, but each time make sure the serial + MAC address matches their auth code.
If the user has no MAC address, allow them to run the program as long as they have a serial.
This gives you protection against someone simply copying the registry from one computer to another.
If the user tries to install with the same serial on another computer, the server will not allow you to bind the serial number to the MAC address because it is already bound.
It is not a perfect solution but it protects you 99% of the time.
Do you think it's a good idea to have more than just a serial based scheme?
Speaking as someone who has to install all kinds of software on all kinds of machines, do please spare a thought for the poor network administrators when thinking up your copy protection scheme. Please, please, consider network-wide installs when writing your installer - by all means include some kind of serial number protection, even make me phone up or contact your website and get an authorisation code to get a site-wide installer code or whatever, but please make sure your licensing code works. A good way to ensure your technically-superior-to-anything-else-on-the-market software doesn't get installed and used is to mess up the installer or have an install system that is simply too much trouble.
Use machine-locked licenses or licenses requiring activation to lock licenses to specific machines. Instead of developing such a scheme yourself, consider using a ready-to-use one like CryptoLicensing which supports these features.
DISCLAIMER: I work for LogicNP Software, the developer of CryptoLicensing.
我们使用 MAC 地址加许可证文件的方法。 我们让客户向我们发送其 PC 的 MAC 地址,然后根据该 MAC 地址生成许可证文件。 然后我们通过电子邮件将文件发送给他们,然后他们将许可证文件加载到程序中。 缺点是,如果人们更换网卡,您就必须向他们颁发新的许可证。 需要进行更多的记账工作,以确保人们不会总是请求新的许可证,并且需要对您的客户群有一点信任,他们不会试图过多地欺骗系统。 根据该信任级别,您可以在文件中添加编码或加密层,以便他们无法轻松复制该文件。 从好的方面来说,您不必实现或维护任何类型的身份验证服务器。
We use a MAC address plus license file approach. We have the customer send us the MAC address of their PC, then generate a license file based on that MAC address. We then send the file to them via email and then they load the license file into the program. The downside is that if people swap out network cards and you'll have to issue them a new license. It takes a little more bookkeeping to make sure people aren't always requesting new licenses, and a little trust in your customer base that they won't try to game the system too much. Depending on that trust level, you can add layers of encoding or encryption into the file so they can't easily duplicate the file. On the plus side, you don't have to implement or maintain any type of authentication server.
You can always use a USB dongle if the software is worth it. Of course, all dongle manufacturers claim that their copy protection cannot be broken.
The advantage of this method is that it allows the user to use the software on multiple computers, but only run on one at a time, and it is actually not such hassle like some sort of product activation. The disadvantage, of course, is that you cannot deploy your application completely electronically. Even though you might think the opposite, actually many customers seem to accept the use of a dongle, at least in the field I work in. It's especially useful if you expect your customers to use (and also install!) the software in a place where no internet connection is available.
Edit: I overread the serial-based thing in the original question. Note that even that may annoy users more than having to put in a dongle, and it's easier for you too because neither the customer nor you have to deal with that numbers. Plug in the dongle and the app works. However, the serial-only method is by far the cheapest.
We use Orion from Agilis. For some of our users we do activation of node-locked licenses, for others they get their activation by a web page or email, and for others we put a license server on their premises. Orion covers all the bases we need.
发布评论
评论(7)
我的一般规则是
My general rules are
只要您有可用的公共服务器,以下方法就很有效:
这可以防止有人简单地将注册表从一台计算机复制到另一台计算机。
如果用户尝试在另一台计算机上使用相同的序列号进行安装,服务器将不允许您将序列号与MAC地址绑定,因为它已经被绑定。
这不是一个完美的解决方案,但它可以在 99% 的时间内保护您。
The following method works well, as long as you have a public server at your disposal:
This gives you protection against someone simply copying the registry from one computer to another.
If the user tries to install with the same serial on another computer, the server will not allow you to bind the serial number to the MAC address because it is already bound.
It is not a perfect solution but it protects you 99% of the time.
作为一个必须在各种机器上安装各种软件的人,请在考虑复制保护方案时为可怜的网络管理员考虑一下。 请,请,在编写安装程序时考虑网络范围的安装 - 无论如何包括某种序列号保护,甚至让我打电话或联系您的网站并获取授权代码以获得站点范围的安装程序代码或其他什么,但请确保您的许可代码有效。 确保您的技术优于市场上任何其他软件的软件不会被安装和使用的一个好方法是弄乱安装程序或拥有一个太麻烦的安装系统。
Speaking as someone who has to install all kinds of software on all kinds of machines, do please spare a thought for the poor network administrators when thinking up your copy protection scheme. Please, please, consider network-wide installs when writing your installer - by all means include some kind of serial number protection, even make me phone up or contact your website and get an authorisation code to get a site-wide installer code or whatever, but please make sure your licensing code works. A good way to ensure your technically-superior-to-anything-else-on-the-market software doesn't get installed and used is to mess up the installer or have an install system that is simply too much trouble.
使用机器锁定许可证或需要激活的许可证将许可证锁定到特定计算机。 与其自己开发这样的方案,不如考虑使用现成的方案,例如 CryptoLicensing支持这些功能。
免责声明:我在 LogicNP Software 工作,该公司是 CryptoLicensing 的开发商。
Use machine-locked licenses or licenses requiring activation to lock licenses to specific machines. Instead of developing such a scheme yourself, consider using a ready-to-use one like CryptoLicensing which supports these features.
DISCLAIMER: I work for LogicNP Software, the developer of CryptoLicensing.
我们使用 MAC 地址加许可证文件的方法。 我们让客户向我们发送其 PC 的 MAC 地址,然后根据该 MAC 地址生成许可证文件。 然后我们通过电子邮件将文件发送给他们,然后他们将许可证文件加载到程序中。 缺点是,如果人们更换网卡,您就必须向他们颁发新的许可证。 需要进行更多的记账工作,以确保人们不会总是请求新的许可证,并且需要对您的客户群有一点信任,他们不会试图过多地欺骗系统。 根据该信任级别,您可以在文件中添加编码或加密层,以便他们无法轻松复制该文件。 从好的方面来说,您不必实现或维护任何类型的身份验证服务器。
We use a MAC address plus license file approach. We have the customer send us the MAC address of their PC, then generate a license file based on that MAC address. We then send the file to them via email and then they load the license file into the program. The downside is that if people swap out network cards and you'll have to issue them a new license. It takes a little more bookkeeping to make sure people aren't always requesting new licenses, and a little trust in your customer base that they won't try to game the system too much. Depending on that trust level, you can add layers of encoding or encryption into the file so they can't easily duplicate the file. On the plus side, you don't have to implement or maintain any type of authentication server.
如果软件值得的话,您始终可以使用 USB 加密狗。 当然,所有加密狗制造商都声称他们的版权保护无法被破坏。
这种方法的优点是允许用户在多台计算机上使用该软件,但一次只能在一台计算机上运行,而且实际上不像某种产品激活那么麻烦。 当然,缺点是您无法完全以电子方式部署应用程序。 尽管您可能有相反的想法,但实际上许多客户似乎接受使用加密狗,至少在我工作的领域是如此。如果您希望客户在某个地方使用(并安装!)该软件,那么它特别有用没有可用互联网连接的地方。
编辑:我过度阅读了原始问题中基于序列的内容。 请注意,即使这样也可能比安装加密狗更让用户烦恼,而且这对您来说也更容易,因为客户和您都不需要处理这些数字。 插入加密狗,应用程序即可运行。 然而,仅串行方法是迄今为止最便宜的。
You can always use a USB dongle if the software is worth it. Of course, all dongle manufacturers claim that their copy protection cannot be broken.
The advantage of this method is that it allows the user to use the software on multiple computers, but only run on one at a time, and it is actually not such hassle like some sort of product activation. The disadvantage, of course, is that you cannot deploy your application completely electronically. Even though you might think the opposite, actually many customers seem to accept the use of a dongle, at least in the field I work in. It's especially useful if you expect your customers to use (and also install!) the software in a place where no internet connection is available.
Edit: I overread the serial-based thing in the original question. Note that even that may annoy users more than having to put in a dongle, and it's easier for you too because neither the customer nor you have to deal with that numbers. Plug in the dongle and the app works. However, the serial-only method is by far the cheapest.
我们使用 Agilis 的 Orion。 对于我们的一些用户,我们会激活节点锁定许可证,对于其他用户,他们通过网页或电子邮件进行激活,对于其他用户,我们在他们的场所放置许可证服务器。 Orion 涵盖了我们需要的所有基础。
We use Orion from Agilis. For some of our users we do activation of node-locked licenses, for others they get their activation by a web page or email, and for others we put a license server on their premises. Orion covers all the bases we need.