To top
Resources Resources

Categories: Licensing

Licensing Models for CodeMeter

Do you know a butcher who is a vegetarian or a passionate car salesman who drives a model from a different brand? These are just examples of professions where jobs tend to feel like vocations and where the affection for one’s own product is obvious by how their makers would not use anything else themselves. Since we are fully dedicated to CodeMeter, we naturally use it ourselves for secure licensing.

With the introduction of the new Universal Firm Code, we now use CodeMeter License Central Internet Edition to renew licenses for CodeMeter.

Available Licensing Models

  • You can choose one of three licensing models for CodeMeter:
  • Standard,
  • Pay-Per-Use, and
  • Unlimited License.

There are also additional trial license and protection only license options.

Standard Model

In the standard model, you pay for a license for each CmContainer. Using the secure CmDongle hardware means one license for each dongle. With your Firm Code, you can create, modify, or delete as many licenses in that CmDongle as you wish. When using the software-based CmActLicense, you pay for one license for each virtual dongle. Normally, this means creating one CmContainer per machine, so the rule of thumb is: One license per computer that stores licenses. In the case of network servers, this would be exactly one machine. If you want to allow your customers to borrow licenses to a client, you need an additional CmContainer for each client, which you need to define and activate beforehand.

Pay-Per-Use-Model

The pay-per-use model was created specifically with simple licenses in mind. The licenses are rarely or never modified and only required in small numbers. It represents a cost-efficient entry option. You need one license for each creation or modification of a product item. The standard model is preferable when you need to create as few as two different product items or make other changes in a license’s lifecycle. Licenses cannot be borrowed in the pay-per-use model, which is why most software developers opt for the standard or unlimited license model when they use networked license servers.

Trial Licenses and Protection Only Licenses

These two additional options enable you to create any number of licenses not bound to specific devices. These unbound licenses represent a type of general license, which could be used for two typical applications:

Trial licenses are needed for demo versions that should run for a maximum period of 90 days without activation, and only once on every machine. These licenses can also be used to allow the user to work with the full version of an application without committing to it by activating within a 90-day window (or any other period of your choosing between 1 and 90 days).

If you only want to use the protection capabilities of Protection Suite without CodeMeter licensing, then you require a protection only license. In this case, you deliver one pre-defined general license with your software. The installation wizard activates it on the end user’s system, but you keep all the protections against reverse engineering you need.

Unlimited License-Model

The unlimited license model gives you maximum flexibility while keeping costs reasonable. You pay an annual fee, calculated to match the value of your software, and can produce an unlimited number of licenses. Trial and protection only licenses are automatically included in this licensing model.

The unlimited license model is also the ne-plus-ultra when it comes to borrowing licenses. As the software developer, the choice is yours whether the end user can borrow licenses for empty systems or whether you first have to be notified by registering the system online. In the former case, a new CmContainer is created in the background at the user’s site; in the case of online registration, you create the CmContainer yourself via a dummy activation in CodeMeter License Central.

After one year, you can renew your license for unlimited licenses for another year. If you choose to not do this, your users can, of course, continue to use the protected applications for which they have licenses. They can also continue to borrow licenses. It only becomes impossible to create new licenses after that point.

The Firm Security Box

Your licenses are kept in your master dongle, the so-called Firm Security Box (FSB). The FSB plays a dual role: On one hand, it serves as the secure storage container for your private and secret keys for CodeMeter; on the other hand, it manages the licenses you acquired from Wibu-Systems.

Developers sometimes wonder why the FSB has to be a physical CmDongle, and why it is not available as a soft license. Only a dongle offers an appropriate level of security for your private keys. Imagine if those keys stored in your computer’s memory were stolen by a virus. The lucky hacker would now have everything he needs to create as many valid licenses for your software as he wants. This would be the worst scenario possible, and a bit of hardware on your server is a small price to pay to avoid it.

Delivering Firm Security Box

The initial private keys are provided manually and internally by Wibu-Systems. None of these keys ever exist in plain text form outside of a CmDongle. The production of the Firm Security Boxes itself is fully shielded with so-called Wibu Security Boxes (WSBs).

When the FSBs are first delivered with a new Firm Code, the delivery is not specifically protected. In the unlikely (and so far, unheard-of) case that the delivery is lost, you would receive a new Firm Code with new keys, and no security breach would occur.

A more critical incident is the loss of additional FSBs delivered for an existing Firm Code. Losing these FSBs would indeed endanger the security of your existing licenses. That is why two alternative protections are put in place to avoid it. For the physical delivery, the FSB is protected with a password that you would receive separately. Without that password, the FSB has no value to anyone, legitimate or illegitimate. You can decide whether to deactivate or change that password after receiving the FSB. For remote delivery, you would send us a so-called remote context file (*.WibuCmRaC), which we use to create an encrypted remote update file (*.WibuCmRaU) that can only be decrypted by the designate target dongle. Your keys are transferred securely every time.

Charging and Extending Licenses

The new Universal Firm Code comes with a much simpler process for charging or extending licenses. Licenses are now separate from the keys and stored in a separate license entry (Firm Code 102688) in your FSB. They can be charged or extended with little effort via CodeMeter License Central.

Five entries are possible:

  1. You receive Product Code 1 when you choose the standard model. The unit counter would display the number of available licenses in this case.
  2. You receive Product Code 2 when you use a pay-per-use model. As in the standard model, the unit counter again shows the number of remaining licenses.
  3. Product Codes 3 and 4 represent trial licenses and protection only licenses. These can be combined with Product Codes 1 or 2 and come with an expiry date that tells you how long the entry can remain active.
  4. Product Code 5 is the universal license model. This also includes an expiry date to tell you when the license needs to be renewed.
  5. You receive a ticket from Wibu-Systems for charging or renewing licenses, which you can do by entering your ticket at http://license.wibu.com, where you can also charge or renew your licenses. The ticket can also be used to transfer licenses from one FSB to another: You can remove the entire block of licenses you bought from one FSB and activate it on the next FSB. If parts of the licenses have already been used up, you will only receive the remaining licenses on the new FSB.

Encryption Only FSB

FSBs are important. They are used to create licenses and encrypt your software with Protection Suite. For the latter task, you can also use a special encryption only FSB, which can encrypt code, but not create any licenses. These FSBs are less critical and can even be given to individual developers or used in automatic build systems for continuous integration.