Система лицензирования программного обеспечения


Система лицензирования 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), их подготовка для повторного использования другими клиентами.

Дополнительную информацию о программе и наших услугах можно получить, связавшись с нами!

     
 
 
     

НАШИ КОНТАКТЫ:

+7(495) 665-51-86

Онлайн консультант

Электронная почта

Проекты



© 2001-2017 Энтерра Софт - Разработка программного обеспечения на заказ.