Модели лицензий [закрыто]
-
08-06-2019 - |
Вопрос
Практически всю свою карьеру я работал над созданием решений (индивидуализированных приложений для одного клиента).Теперь, когда моя компания занимается разработкой программного обеспечения для масс, нас ждет много упаковки.
Я хочу спросить о лицензировании программного обеспечения.Как генерировать серийные номера и номера активации.Каковы мои варианты лицензирования программного обеспечения в целом?
Я понимаю, что это своего рода общий вопрос, но это начало разговора.
Решение
Наша модель лицензирования работает с использованием криптографии с открытым/закрытым ключом.Они отправляют нам свое имя и контактные данные, которые мы шифруем с помощью нашего закрытого ключа.Зашифрованный файл затем отправляется обратно лицензиату, который он вводит в приложение.Приложение имеет наш открытый ключ, встроенный в двоичный файл (или, если у них есть подключение к сети, оно извлекает его с нашего сайта) и использует его для расшифровки информации о лицензии.Если расшифрованная лицензия соответствует введенным данным, значит, у них есть лицензия на использование продукта!
Используя криптографию с закрытым/открытым ключом, мы даем нашему приложению уверенность в том, что данные в лицензионном ключе действительно принадлежат нам (подлинность лицензии).
С этим можно сделать и другие полезные вещи, например кодирование уровней подписки в лицензионный ключ.Приложение расшифрует лицензионный ключ и увидит, что им разрешено использовать только определенные функции.
Хотя это можно атаковать.Например, злоумышленник может либо удалить всю часть двоичного файла, проверяющую лицензионный ключ, либо обновить сохраненный в приложении открытый ключ до сгенерированного им.Тогда они смогут заставить его принять свою собственную лицензию.Однако, поскольку наши приложения не так популярны, мы не считаем это серьезной угрозой.
Другие советы
Эта статья о пиратстве написана человеком, который создал и продал небольшое .NET-приложение. очень информативный.Его приложение было пиратским, что дает ему интересную перспективу:
http://kalzumeus.com/2006/09/06/yo-ho-me-hearties-yo-ho/
По сути, его точка зрения заключается в том, что вам необходимо сделать систему активации барьером для обычных пользователей - вы ничего не можете сделать, если ваше приложение достаточно популярно, чтобы его могла взломать группа взлома.Самое главное — убедиться, что взломанная версия вашей программы, если она существует, невидима для 99% публики.
Если вы используете .Net для создания своих решений, возможно, стоит попробовать Кхео.Я использовал их раньше для реализации лицензирования, и они прекрасно интегрируются с решениями .net.Вы можете делать такие вещи, как требовать базовые серийные ключи для активации продуктов вплоть до настройки сервера активации и требовать от людей активировать и деактивировать свои продукты для использования и переноса их между компьютерами.