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

Я думаю о реализации хорошего механизма лицензирования, который будет иметь хорошее сопротивление пиратству. Необходимый механизм не должен использовать подключение к Интернету при каждом использовании программного обеспечения. Я имею в виду механизм, основанный на идентификаторах оборудования и т. Д. У вас, ребята, есть предложения получше? Какие параметры / алгоритмы / характеристики мне нужны для создания взломанного лицензионного механизма?

6 ответов

Решение

Во-первых, нет ничего взломанного, поэтому я бы не стал тратить слишком много времени на защиту вашего программного обеспечения.

Недостатком механизма, основанного на идентификаторах оборудования, является то, что когда пользователь покупает новый компьютер или обновляет большую часть своего компьютера, ему также необходимо обновить ключ. HWHash - довольно хорошая реализация Hardware ID, но я думаю, что есть и другие (бесплатные) решения. На работе мы используем ключи Hardlock и Hasp, но это решения usbkey, которые не очень эффективны для небольших приложений.

В идеале вам нужно что-то, что не зависит от ОС.

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

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

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

Ваше приложение следует проверять образ оборудования и лицензионный ключ при каждом запуске.

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

Не забудьте зашифровать файл лицензии.

Также не забудьте усложнить обратную компиляцию вашего исполняемого файла с помощью dotfuscator или подобного.

Проверьте этот вопрос: какую технику защиты от копирования вы используете?

Также ссылки на другие связанные вопросы.

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

FWIW, я использую аппаратные блокировки (hasp) для моего программного обеспечения высокого класса для настольных компьютеров и лицензирование на основе идентификатора устройства для мобильных решений. Если вы продаете небольшое количество дорогостоящего программного обеспечения на вертикальном рынке, IMHO, хороший механизм защиты лицензий имеет смысл, и аппаратные ключи работают хорошо. Мой опыт показывает, что люди будут использовать больше лицензий, чем приобретают, если их нет. Для большого объема и недорогого программного обеспечения я бы предпочел жить с пиратством, основанным на увеличении размера пользовательской базы и видимости продукта.

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

Тогда как насчет периодической онлайн-проверки лицензии?

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

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

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

Если программное обеспечение переустанавливается на новом компьютере, пользователь должен повторить процесс проверки.

Как заявили другие, нет способа победить решительного пирата, поскольку такой человек взломает код, но это должно предотвратить или замедлить случайное пиратство.

Вы можете проверить SLP от Microsoft - я не использовал его, но он определенно выглядит интересно (понимаете, если вы увлекаетесь MS...)

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

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

Другие вопросы по тегам