Система лицензирования программного обеспечения
Система лицензирования программного обеспечения
Система лицензирования WatchDog предназначена для решения вопросов, связанных с лицензированием программного обеспечения. Основные компоненты системы — Сервер Лицензий (License Server), осуществляющий учёт программных продуктов, пользователей и выдачи лицензий, и Клиент (License Client), предназначенный для встраивания в программное обеспечение, требующее лицензирования, и обеспечивающий коммуникацию с сервером лицензий для запроса лицензий, а так же проверку полученных лицензий и блокирование функциональности ПО в случае обнаружения недействительности лицензии или истечения срока её действия.
Кроме того, система содержит дополнительный модуль — Сетевой Менеджер Лицензий (Network License Manager (NLM)). NLM может заменять сервер лицензий для клиентов, взаимодействовать с сервером и предусматривать использование ограниченного числа лицензий несколькими пользователями, работающими, например, в сети предприятия.
Система создана полностью на языке C + +, обеспечивающем высокую стабильность и устойчивость к декомпиляции и взлому кода. Сервер Лицензий и NLM реализованы в виде модулей веб-сервера Apache. Взаимодействие между компонентами осуществляется через HTTP, что позволяет избежать проблем с различными прокси-серверами, брандмауэрами и т.д. Все передаваемые данные шифруются с использованием различных схем шифрования для обеспечения надежной защиты системы от взлома.
Основные Функции
- запись и хранение данных о лицензированном программном обеспечении;
- запись и хранение данных о пользователях продуктов (Customers), которыми могут быть как организации, так и физические лица;
- запись и хранение данных пользователей сети, разграничение их прав для различных операций с объектами системы (права доступа);
- выпуск, запись и отзыв лицензий на программное обеспечение. Лицензии могут выпускаться онлайн, непосредственно через соединение клиента с Сервером Лицензий, а также косвенно, без доступа к Серверу, с помощью генерации оффлайновых ключей клиентом и их дальнейшего подтверждения сервером с выдачей кода для авторизации ключа;
- использование сетевых лицензий компаниями. Данный метод позволяет избежать покупки отдельной лицензии для каждого рабочего места путем приобретения необходимого количества сетевых лицензий и их использования на рабочих местах. В данном случае в роли Сервера для Клиентов (License Clients) выступает NLM, который, в свою очередь, сам выступает в роли клиента для сервера лицензий;
- подтверждение подлинности запросов с помощью криптографических сертификатов пользователя, подлинности лицензий с помощью криптографических сертификатов сервера;
- шифрование данных с использованием как симметричных схем, так и пары публичного и приватного ключей;
- возможность встраивания пользовательского кода для дополнительной обработки регистрируемых пользователей, дополнительных проверок запросов на выпуск лицензий, дополнительных ограничений использования лицензий и т.п.
Технические характеристики системы
- система полностью написана на высокопроизводительном языке C++ и реализована на всех популярных современных платформах;
- поддерживаемые платформы — Microsoft Windows, Linux, Mac OS X;
- поддерживаемые базы данных — MySQL, Oracle. Доступ к базе данных был построен с помощью нативных низкоуровневых библиотек, обеспечивающих максимальную производительность;
- сетевой протокол — HTTP;
- Сервер Лицензий и NLM представляют собой модули веб-сервера Apache, работающие внутри Apache, перехватывая и обрабатывая запросы с конкретными URI;
- Клиент (The Client) представляет собой библиотеку, предназначенную для использования внутри программных продуктов, нуждающихся в лицензировании;
- используемые в системе алгоритмы шифрования: симметричного — BLOWFISH, несимметричного с использованием пары публичного и приватного ключей — RSA.
Все используемые в системе программные библиотеки являются open-source и кроссплатформенными.
Следующие библиотеки были использованы
- Boost — реализация общих алгоритмов;
- CryptLib — реализация шифрования данных, использования и хранения криптографических сертификатов (Certificate Authority);
- libcurl — работа с протоколом http;
- mysqlclient — доступ к серверу БД MySQL;
- OCCI (Oracle C++ Interface) — доступ к серверу БД Oracle;
- APR (Apache Run Time) — обеспечение функционирования модулей Apache.
Кросс-платформенная система сборки системы реализована с использованием SCons.
Функции Сервера Лицензий
- запись и хранение данных о лицензированном программном обеспечении;
- запись и хранение пользователей продуктов (Customers). Для каждого пользователя выпускается пара криптографических сертификатов, удостоверяющих подлинность пользователя при дальнейших запросах и используемых при шифровании пересылаемых данных. Сертификаты хранятся и обрабатываются хранилищем сертификатов (Certificate Authority), являющимся составной частью сервера;
- запись и хранение данных пользователей сети, разграничение их прав для различных операций и т.д.
- выпуск, запись и отзыв лицензий на программное обеспечение. Каждая лицензия выдается на конкретный программный продукт и для конкретного пользователя. Запрос на выпуск лицензии подписывается криптографическим сертификатом пользователя. Выпущенная лицензия подписывается криптографическим сертификатом сервера для предотвращения подделок;
- генерация и хранение оффлайновых кодов авторизации, используемых для подтверждения оффлайновых ключей, сгенерированных клиентом;
- выполнение ряда сервисных функций, таких как конфигурирование хранилища сертификатов, настроек соединения с базами данных, выпуск криптографических сертификатов сервера и т.д.
Клиентские функции
- регистрация и запись пользователей продуктов (Customers) и сертификатов, полученных от сервера. Регистрации включает в себя регистрацию пользователей на Сервере Лицензий и запрос криптографического сертификата;
- сбор и хранение данных об оборудовании, где установлен клиент. Эти данные используются при выдаче лицензий и позволяют предотвратить простое копирование программного обеспечения с одного компьютера на другой;
- запрос лицензии с Сервера Лицензий, хранение, проверка срока действия сертификата сервера, которым подписана лицензия;
- запрос сетевых лицензий NLM, хранение, проверка подлинности сертификата, которым подписана лицензия;
- проверка возможности и приемлемости использования существующей лицензии и блокировка программ при обнаружении ее недействительности;
- генерация оффлайновых ключей авторизации, обработка кодов авторизации для разблокирования оффлайновых ключей.
Возможности NLM
- регистрация и запись лицензионного программного обеспечения, а также регистрация продукции на Сервере Лицензий;
- регистрация и запись пользователей продуктов (Customers). Для каждого сетевого пользователя выпускается пара криптографических сертификатов, удостоверяющих подлинность пользователя при дальнейших запросах и используемых при шифровании пересылаемых данных между клиентом и NLM. Сертификаты хранятся и обрабатываются хранилищем сертификатов (Certificate Authority), являющимся составной частью NLM;
- запрос лицензий с сервера лицензий, их хранение, проверка подлинности криптографического сертификата сервера, которым подписана лицензия, помещение в нужный пул;
- обслуживание пулов лицензий;
- выдача сетевых лицензий для использования клиентами (license check-out), запись и проверка действительности используемых сетевых лицензий. Лицензия, находящаяся в использовании у клиента, не может быть использована другим клиентом, пока не будет возвращена (check-in);
- прием использованных лицензий от клиентов (license check-in), их подготовка для повторного использования другими клиентами.
Дополнительную информацию о программе и наших услугах можно получить, связавшись с нами!