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

К вопросу лицензирования программных продуктов

На данный момент одним из основных способов продажи программных продуктов является распространение лицензий. Так как рынок ПО просто огромен (333 миллиарда долларов в 2016 году [1]), то вопрос лицензирования программных продуктов достаточно актуален.

         Задача лицензирования продукта разбивается на две важных подзадачи:

  • разработка схемы лицензирования продукта
  • разработка механизма распространения лицензий.

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

Сейчас наиболее часто используются такие механизмы, как передача ключа лицензирования, формирование привязанного к конкретной рабочей станции кода активации при помощи центрального сервера сервера лицензирования, либо путём общения по телефону/почте сотрудников фирмы продавца и покупателя или  ещё один способ — USB-ключи, такие как хасп.

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

В прошлом году я в своей статье описывал способ распространения лицензий при помощи Мобильного носителя лицензий (МНЛ) — автономного специального USB-устройства. Продавец настраивает устройство на выдачу определённого числа лицензий на определённые продукты, передаёт его покупателю. Далее покупатель сам при помощи устройства генерирует лицензии.

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

Но и это решение обладает некими недостатками в плане удобства:

  • Необходимость физического доступа того, кто создаёт лицензии при помощи МНЛ к каждому АРМ
  • USB-порты могут быть опечатанными
  • Процедуру создания лицензии нельзя автоматизировать, однотипные действия отнимают много времени.

Указанные недостатки становятся критичными для информационных систем, содержащих хотя бы 100 рабочих мест. Чтобы нивелировать эти недостатки, предлагается разработать программно-аппаратный комплекс, включающий: сервер, содержащий ОС с специализированным ПО, и МНЛ (рис. 1).

 

Рис. 1. Архитектура решения

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

Физический сервер должен обладать рядом свойств:

  • Невысокая стоимость
  • Защищенность
  • Малое потребление энергии
  • Долговечность

Исходя из этих требований, предлагается использовать в качестве аппаратной базы сервера микрокомпьютеры МК

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

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

Вторая сущность, которую необходимо продублировать — М. Л. Нельзя просто так дать пользователю резервную копию устройства, которое может генерировать лицензии: необходимо защитить продавца от неправомерного использования покупателем резервных устройств для удвоения доступных лицензий. Для этого предлагается использовать 3 типа устройств: одно выписывающее, одно дублирующее и набор пустых. Выписывающее и дублирующее устройства работают только в паре на одном сервере. Выписывающее устройство генерирует лицензию только с разрешения дублирующего. Число лицензий уменьшается на обоих устройствах. В случае, если одно устройство выходит из строя, при помощи оставшегося в рабочем состоянии и пустого устройства создаётся замена сломанному. Если у пользователя окажется 2 пустых устройства (а минимум два ему необходимы т. к. выписывающее и дублирующее работают одновременно, соответственно и ресурс у них исчерпывается идентично), то он сможет сделать второй комплект. Чтобы избежать этого предлагается устанавливать на пустые устройства пин-коды, которые будут предоставляться пользователю по факту обращения (при этом пользователь обязан будет вернуть вышедшее из строя). Таким образом, покупатель не сможет использовать одно из дублирующих устройств отдельно и не сможет создать две рабочих пары.

Выводы

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