Registration key generation
Posted: Tue May 27, 2014 2:42 am
Hello!
I'd like to get a good understanding of how the user registration keys are generated and how activation is carried out when using the Online Activation Panel, so that I can minimize the risk of sharing of licenses or producing key generators (because as far as I know all types of hardware IDs, including the HDD ID, can be spoofed).
This is just my guess on how it works:
1. When a new project is created with the Enigma Protector, an Encryption Constant and a public and private key pair are generated. These three values are constant, generated once per product, or at least once per product version.
2. The private key is used to encrypt those sections specified with the Enigma markers or API. Then the whole application is encrypted using the Encryption Constant.
3. When the user orders the product, he receives an Activation ID. The user starts the protected application and enters the Activation ID. Then the protection code that was injected by the Enigma Protector into the product will find the hardware IDs and send this and the Activation ID to the Activation Panel, to find the user's product order.
4. When the user's order is found, the project's public key and the HW ID are used to generate a unique user registration key. This is sent back to the user and stored in his system.
5. Now that the product is registered, when it is executed the injected Enigma code will first verify that the user registration key matches the public key and the user's hardware IDs. If so, the application continues execution.
I'd like to get a good understanding of how the user registration keys are generated and how activation is carried out when using the Online Activation Panel, so that I can minimize the risk of sharing of licenses or producing key generators (because as far as I know all types of hardware IDs, including the HDD ID, can be spoofed).
This is just my guess on how it works:
1. When a new project is created with the Enigma Protector, an Encryption Constant and a public and private key pair are generated. These three values are constant, generated once per product, or at least once per product version.
2. The private key is used to encrypt those sections specified with the Enigma markers or API. Then the whole application is encrypted using the Encryption Constant.
3. When the user orders the product, he receives an Activation ID. The user starts the protected application and enters the Activation ID. Then the protection code that was injected by the Enigma Protector into the product will find the hardware IDs and send this and the Activation ID to the Activation Panel, to find the user's product order.
4. When the user's order is found, the project's public key and the HW ID are used to generate a unique user registration key. This is sent back to the user and stored in his system.
5. Now that the product is registered, when it is executed the injected Enigma code will first verify that the user registration key matches the public key and the user's hardware IDs. If so, the application continues execution.