Application Protect System
Purpose
To read-protect proprietary source code of 1C:Enterprise 7.7 configurations in order to defend a software vendor against infringement of his intellectual property rights.
To enforce mandatory per-seat licensing policy for custom and production
1C:Enterprise 7.7 configurations.
Idea
To remove plain source code from modules and to store it somewhere in
encrypted form. To provide means of accessing these encrypted modules from within
1C:Enteprise. To make encryption key to be dependenton PC hardware parameters, but common
for the whole database at the same time. Hiding plain source code
Can be done in two ways:
Method 1
(good for protecting entire
modules): all procedures and functions
definitions are moved into protected module;
Method 2
(good for protecting selected
procedures and functions): bodies of these
procedure or function are moved into
protected module, and inside 1C:Enterprise
module a call to protected module’s procedure is added
Using encrypted modules
Overview
1. 1C:Enterprise calls Module Protector’s Execute() method, passing along the encrypted source.
2. Module Protector decrypts the received source and calls back 1C:Enteprise for JIT compilation.
3. All subsequent calls to these modules are made via corresponding ProtectedModule object.
Using encrypted modules
Notes on encryption and storage
Encryption is done with Rijndael algorithm, which in the year 2000 was selected as
Advanced Encryption Standard (AES), using 128 bit keys.
Although it is recommended to store encrypted source code in 1C:Enterprise directory(ies), they can be stored virtually anywhere, provided that 1C:Enterprise can access the storage. Using encrypted modules
Types and uses of keys
There are 3 types of keys:
Master key (MK) is used to do all the
encryption. This key is private to configuration
vendor. It is common for whole database.
Hardware (HK) is based on PC hardware
parameters.
License (LK) complements HK to MK. User
needs LK to use encrypted modules on his
PC.
Module Protector Demo Edition
Module Protector Demo Edition can be used to create demo versions of configurations. It displays a
nag screen, forcing user to wait a specified amount of time until he’s able to close this screen. Demo configuration can be used on any PC and don’t need license key to run.
|