Licensing

The Licensing group panel provides the functionality to generate license files and serials using Babel Licensing.

Babel Licensing is a .NET library that provides a solution for generating licenses for .NET assemblies. This library integrates with Babel Obfuscator User Interface and allows developers to create licenses for their applications and control how the software is used. The licensing system is designed to make it easy to issue and manage licenses, allowing developers to focus on delivering high-quality applications. With Babel Licensing, developers can control the distribution of their software and ensure that it is only used in accordance with the terms and conditions they set.

The Serial Manager panel provides the user with the ability to create and validate serials, while the License Manager panel is used to manage the creation of XML or string-based licenses. The License Manager provides a user-friendly interface for creating and managing license files, which can be used to protect and manage the usage of your software products.

Serial Manager

The Serial Manager panel allows you to create new serials, view the details of existing serials, and validate serials generated by Babel Licensing. This panel also enables you to assign different features to each serial, such as the expiration date, the product name, the number of days before expiration, and more. Serials are digitally signed using ECSA (Elliptic Curve Digital Signature Algorithm), a digital signature algorithm based on elliptic curve cryptography.

By using ECDSA, the software ensures that the serial license has not been tampered with and that it was generated by the owner of the private key. ECDSA keys come in various sizes, with larger keys providing more security but producing longer license strings. The choice of key size depends on the desired level of security and the length restrictions of the serial license string.

The information in a serial license includes:

  • A numeric license identifier (Serial ID)

  • A string containing the licensed product information (Product Info)

  • An absolute expiration date (Absolute Expire Date)

  • The number of days the serial can be used after the first validation (Expire Days)

You must generate an ECDSA public-private key pair to generate a serial license. This key pair is used to digitally sign the serial license and ensure it has not been tampered with. The key pair can be stored in a Privacy Enhanced Mail (PEM) format file. This allows you to reuse the same key pair for generating multiple serial licenses in the future without generating a new key pair every time. By having a stored key pair, you can guarantee the consistency and security of your serial licenses.

The Serial Manager panel not only allows the generation of serials but also the validation of existing serials. To validate a serial, the user must switch to the validation mode by clicking on the Generate header button. It is important to ensure that the same ECDSA key pair used to generate the serial is loaded, as only the public key information is required to validate a serial. This feature enables the user to verify the authenticity of a serial license, ensuring the proper use of the licensed product.

License Manager

The License Manager is an essential tool in the Babel Licensing user interface that allows you to create complete XML or string licenses, as well as license templates. These licenses contain detailed information about the product being licensed and can be used to manage the deployment of your software.

These XML licenses are signed using a private key to ensure the contents cannot be altered or tampered with, providing a secure and tamper-proof method of distributing license information to end users. The XML license file contains information such as the product name, version, license type, expiration date, and other relevant licensing details, which can enforce usage restrictions based on various configurable parameters.

Typically when a license is created, it is digitally signed using the RSA key pair used to sign the assembly. This allows the license to be validated against the public key embedded in the .NET assembly.

If you don't want to sign the assembly with RSA or prefer an ECDSA key pair to sign the license, the public key must be hidden within the application code and provided to the licensing library for validation purposes.

When a user wants to use a licensed product, they must provide the XML license file, which is then verified using the public key associated with the private key used to sign the license. If the signature is valid and license restrictions are met, the user is granted access to the licensed product. This provides a secure and reliable way for software vendors to manage their licensing and ensure that their products are only used in accordance with the terms of the license agreement.

The License Manager view is divided into three different sections. The first section contains a dropdown list loaded with all the license templates available. If you don’t have any template installed, the list will be empty.

The second section contains all the field information that can be stored in a license. The values of the fields can be edited to create a new license. This section is divided into different categories:

  • License

  • Licensee

  • Assemblies

  • Products

  • Components

  • Fields

  • Features

  • Restrictions

The third section is the License Output section, which allows the user to select the key pair to sign the license and displays the generated XML or string license. The generated license can be saved to a file or copied to the clipboard for later use. Users can choose between XML and string formats to represent the license file. The XML license format is recommended for complex license structures with multiple fields, as it provides a well-structured and organized representation of the license information. The string license format is convenient when the license information needs to be transferred in a compact and secure manner. Unlike XML licenses, string licenses are not readable in plain text, making it harder for unauthorized individuals to access the license information.

License Templates

With the License Manager, you can create license templates, which are pre-configured structures that can be easily modified to meet your specific needs. This way, you can easily reproduce different license schemas by changing only a few pieces of information without having to create a new license from scratch every time.

When working with licenses, you have the option to specify the location where you want to store your license templates and a default key pair file to sign your license. To do this, follow these steps:

  1. Open the Tools Options main menu.

  2. In the Licensing folder, select the Settings node.

  3. In the License Manager section, browse for the folder where you want to store your license templates. Once you have specified the folder location, you can save your license templates in this location for easy access and reuse.

The default key pair will be used to sign all the licenses. However, if you desire, you can also have a separate key pair for each license template. This can be achieved by saving a key pair file with the same name as the license template file and placing it in the same directory. If a key pair file cannot be found for a particular template, the default key pair will be used instead.

The configuration of a database source for license templates is an alternative option to store the license templates. This allows for a centralized location for the storage of license templates and enables the management of license templates through a database management system. To learn more, refer to the Data paragraph.

Last updated