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