поиск по сайту
Автономное устройство лицензирования

Автономное устройство лицензирования

Чадов А. Ю., ОКБ САПР

В тезисах описывается реализация механизма активации лицензий с использованием автономного устройства.

Ключевые слова: лицензия, ключ лицензии, код активации.

Некоторые продукты существуют в программном виде без жесткой привязки к аппаратной части. Пользователь покупает несколько копий продукта (для работы на соответствующем количестве рабочих станций), которые будут действовать в течение определённого времени. Если покупатель хочет установить продукт на большее количество рабочих станций или продолжить работать с ним после окончания срока действия, он должен оплатить покупку дополнительных копий. Механизм лицензирования позволяет проконтролировать, что продукт не будет использоваться по окончании срока действия и что будет задействовано не более того количества копий, которое было оплачено.

Лицензия – это разрешение на пользование продуктом. Приобретая такое разрешение, пользователь получает возможность работать с программным комплексом. Если попытаться использовать продукт без лицензии, то работать с ним будет затруднительно: может быть ограничена функциональность продукта, он может не запуститься или не установиться. В данном случае приобретение, собственно, лицензии и означает покупку единицы продукта [1].

Для того чтобы защититься от нелегального использования ПО, правообладателю необходимо применять защитные механизмы, контролирующие наличие у конечного пользователя разрешения на работу с данной копией продукта. Эти механизмы, как и алгоритмы их обхода, постоянно совершенствуются. Как только появляется способ обойти старый механизм защиты, или он просто становится неудобным, появляются новые, компенсирующие недостатки старого [2].

Самый простой из таких механизмов защиты – выдавать пользователю сгенерированный по специальному алгоритму ключ, который он передаст программе. Очевидный недостаток – ключ может быть украден и в дальнейшем использован на другом компьютере.

Другой способ – использование USB-ключа. Защита в этом случае основана на том, что встроенные в ПО инструменты проверяют наличие подключенного USB-устройства. Однако эмулировать его не намного сложнее, чем введение лицензионного ключа [3].

Ещё один механизм выглядит следующим образом:

  1. Покупатель приобретает ключ лицензии – уникальный набор данных и копию ПО.
  2. Устанавливает на свой компьютер ПО.
  3. Пользователь – самостоятельно или с помощью встроенных в ПО инструментов – собирает некую информацию о компьютере (идентификатор оборудования).
  4. Ключ лицензии и идентификатор оборудования передаются фирме-продавцу.
  5. Фирма-продавец высылает пользователю код активации – закодированное «разрешение» программе запуститься, если пользователь имеет «на руках» определенный ключ и определенный идентификатор оборудования [4].

Интересным моментом в этой схеме является передача данных фирме-продавцу и обратно. Это может быть реализовано двумя способами: автоматизированная передача через интернет при помощи сервера лицензирования, который затем автоматически сгенерирует и вышлет код активации или передача информации сотруднику фирмы-продавца (по телефону, почте, через интернет).

Оба способа имеют свои недостатки.

В первом случае необходима настройка и поддержание сервера лицензирования. Также, что важно, требуется обязательное наличие соединения с сетью интернет у клиента. Это серьёзная проблема, если фирма-покупатель не имеет выхода в интернет в силу каких-либо особенностей своей деятельности.

Во втором случае процесс активации лицензии может оказаться растянутым, занимать время и ресурсы сотрудников, которым приходится этим заниматься.

В данной статье описан новый вариант реализации механизма активации. Это устройство, решающее задачу выдачи, создания и активации лицензии без подключения к сети интернет и привлечения к процессу сотрудников фирмы-производителя и задачу защиты от нелегального использования ПО. Использование автономного устройства позволяет избежать недостатков других механизмов: нет необходимости в соединении с сетью интернет, нет необходимости участия сотрудников фирмы-продавца или развертывании сервера лицензирования в привычном смысле слова.

Процесс работы с устройством устроен следующим образом.

Если фирма-покупатель хочет использовать определённое количество копий продукта, она оплачивает нужное количество лицензий, получает у фирмы-продавца установочное ПО и устройство лицензирования, которое может выдать данное число лицензий на нужный продукт. Далее покупатель устанавливает ПО на рабочие станции и активирует лицензии при помощи устройства. Таким образом, нет необходимости хранить и использовать коды активации лицензии или получать файл лицензии от фирмы-производителя, соединение с интернетом так же не требуется.

Функционал устройства

Основная функция устройства – активация лицензии. Для защиты от копирования файла лицензий устройство использует механизм электронной подписи. Две ключевые пары генерируются на этапе создания устройства (ключевая пара для создания файла лицензии (КПдСФЛ) и ключевая пара для обмена лицензиями (КПдОЛ) ). Ключи проверки подписи ключевых пар устройства подписываются для последующей проверки их подлинности. Для этого на этапе создания используется мастер-устройство: на его ключах подписи подписываются ключи проверки подписи, полученные подписи кладутся в устройство вместе с ключом проверки подписи мастер-устройства. Таким образом, гарантируется подлинность ключей проверки подписи устройства.

Подробнее алгоритм активации лицензии.

В процессе создания файла лицензии используются следующие данные, хранящиеся в устройстве:

  • Ключевая пара для создания лицензии (КПдСФЛ).
  • Подпись ключа проверки подписи КПдСФЛ на ключе подписи мастер-устройства.
  • Уникальный идентификационный номер лицензии – список таких номеров заносится в устройство вместе с данными о количестве лицензий, которое оно может выдать.
  • Название фирмы-производителя.
  • Идентификационный номер устройства.

Устройство получает от установленного ПО данные для создания файла лицензии и добавляет к ним данные, хранящиеся в устройстве: идентификационный номер лицензии, название фирмы-продавца, название продукта, идентификационный номер устройства, затем всё это подписывается на ключе подписи КПдСФЛ.

Все подписанные устройством данные вместе с подписью, ключом проверки подписи КПдСФЛ и его подписью на ключе подписи мастер-устройства и есть лицензия.

Продукт принимает лицензию, проверяет подписи, сверяет данные и таким образом удостоверяется, что лицензия корректна.

Дополнительно в устройстве присутствует функция обмена лицензиями. Обмен лицензиями может использоваться интегратором для перераспределения количества лицензий на устройствах перед продажей, или пользователем для распределения между разными отделами или филиалами фирмы. Обмен происходит между двумя устройствами: устройством-получателем лицензий и устройством-отправителем. Процесс состоит из трёх шагов:

  • устройство получатель генерирует и посылает запрос устройству-отправителю
  • устройство-отправитель уменьшает у себя число доступных лицензий, генерирует пакет передачи лицензий и посылает его обратно
  • устройство-получатель принимает пакет и добавляет лицензии.

В этом процессе используются следующие данные, хранящиеся в устройствах.

Для устройства-получателя:

  • Уникальный идентификационный номер устройства.
  • Значение счётчика пополнения лицензий. Счётчик увеличивается каждый раз, когда данное устройство получает лицензии от другого устройства. Позволяет избежать повторного использования сгенерированного пакета передачи лицензий.

Для устройства-отправителя:

  • Уникальный идентификационный номер устройства.
  • Ключевая пара для обмена лицензиями (КПдОЛ), использующаяся для подписи сообщений, которыми устройства обмениваются в процессе передачи.
  • Ключ проверки подписи мастер-устройства.
  • Подпись ключа проверки подписи КПдОЛ на ключе мастер-устройства.

Рассмотрим подробнее этапы передачи:

1) Создание запроса на получение лицензии.

Запрос состоит из следующих данных:

  • Идентификационный номер устройства
  • Значение счётчика пополнения лицензий
  • Число лицензий
  • Название продукта, для которого запрашиваются лицензии

Число лицензий и название продукта вводится пользователем, идентификационный номер и значение счётчика хранятся внутри устройства.

2) Передача запроса от устройства-получателя лицензий к устройству-отправителю.

3) Создание пакета передачи лицензий:

Получив запрос, устройство-отправитель проверяет, что оно может выдать достаточное количество лицензий, затем создаёт пакет передачи. В него включены следующие данные:

  • Идентификационный номер устройства-получателя
  • Значение счётчика пополнения лицензий устройства-получателя
  • Идентификационный номер устройства-отправителя
  • Число лицензий, которые необходимо добавить
  • Имя продукта
  • Подпись на ключе подписи КПдОЛ устройства-отправителя данных из пунктов 1-5
  • Ключ проверки подписи ключевой пары обмена устройства-отправителя.

4) Передача сформированного пакета в устройство-получатель.

5) Приём пакета передачи и установка лицензий в устройство:

Устройство-получатель принимает пакет, и проводит несколько проверок:

  • проверяет подпись ключа проверки лицензии КПдОЛ устройства-отправителя
  • проверяет подпись данных
  • проверяет корректность самих данных.

Если всё верно, добавляет лицензии и увеличивает на единицу значение счётчика пополнения лицензий.

Пользователь может установить PIN-код, тогда операции создания лицензии и передачи лицензий будут запрашивать PIN-код перед началом работы.

Итог

Таким образом, автономное устройство лицензирования – продукт для удобной и быстрой работы с лицензиями, лишённый недостатков других механизмов контроля лицензий. Использование ЭП для активации лицензии и хранения ключей подписи внутри устройства позволяет защититься от несанкционированного копирования и повторного использования файла лицензии, использование автономного устройства позволяет не подключаться к интернету для активации лицензии и не связываться с сотрудниками фирмы-производителя в процессе активации лицензии. Появится возможность продавать лицензии интеграторам и не участвовать в их дальнейшей передаче конечным покупателям без риска потери контроля за распространением ПО.

Список литературы

  1. Лицензия на программное обеспечение. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Лицензия_на_программное_обеспечение (дата обращения: 10.05.2015).
  2. К вопросу защиты авторских прав. [Электронный ресурс]. URL: http://www.okbsapr.ru/schastniyhtml (дата обращения: 10.05.2015).
  3. Защита ПО от нелицензионного использования. [Электронный ресурс]. URL: http://www.okbsapr.ru/sol6.html (дата обращения: 10.05.2015).
  4. Асимметричная криптография при лицензировании подписочного ПО на практическом примере. [Электронный ресурс]. URL: http://habrahabr.ru/post/123908/ (дата обращения: 10.05.2015).

ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них