Система лицензирования 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) и сертификатов, полученных от сервера. Регистрации включает в себя регистрацию пользователей на Сервере Лицензий и запрос криптографического сертификата;
сбор и хранение данных об оборудовании, где установлен клиент. Эти данные используются при выдаче лицензий и позволяют предотвратить простое копирование программного обеспечения с одного компьютера на другой;
запрос лицензии с Сервера Лицензий, хранение, проверка срока действия сертификата сервера, которым подписана лицензия;
регистрация и запись лицензионного программного обеспечения, а также регистрация продукции на Сервере Лицензий;
регистрация и запись пользователей продуктов (Customers). Для каждого сетевого пользователя выпускается пара криптографических сертификатов, удостоверяющих подлинность пользователя при дальнейших запросах и используемых при шифровании пересылаемых данных между клиентом и NLM. Сертификаты хранятся и обрабатываются хранилищем сертификатов (Certificate Authority), являющимся составной частью NLM;
запрос лицензий с сервера лицензий, их хранение, проверка подлинности криптографического сертификата сервера, которым подписана лицензия, помещение в нужный пул;
обслуживание пулов лицензий;
выдача сетевых лицензий для использования клиентами (license check-out), запись и проверка действительности используемых сетевых лицензий. Лицензия, находящаяся в использовании у клиента, не может быть использована другим клиентом, пока не будет возвращена (check-in);
прием использованных лицензий от клиентов (license check-in), их подготовка для повторного использования другими клиентами.
Дополнительную информацию о программе и наших услугах можно получить, связавшись с нами!