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

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


person Chathuranga Chandrasekara    schedule 13.05.2009    source источник
comment
хорошо, что многие из лучших программ взламываются, даже если они основаны на идентификаторах оборудования, но это, безусловно, уменьшит пиратство   -  person Searock    schedule 13.05.2009


Ответы (6)


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

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

person corné    schedule 13.05.2009
comment
Мне нравятся засовы - я использовал их в прошлом - но я бы сказал, что они не очень хороши для БОЛЬШИХ приложений ... И, кстати, их также можно взломать, я сделал это без особых усилий. - person AviD; 13.05.2009
comment
Кстати, ссылка на hwhash.com устарела. - person sorin; 21.02.2010

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

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

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

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

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

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

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

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

person ChrisBD    schedule 13.05.2009

Отметьте этот вопрос: Какой метод защиты от копирования вы используете?

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

person mouviciel    schedule 13.05.2009

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

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

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

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

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

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

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

person John Judd    schedule 27.09.2012
comment
Самый раздражающий вид программного обеспечения - это тот, для которого интернет нужен ТОЛЬКО для получения лицензии. Если вы случайно оказались в оффлайне в какие-то моменты и есть проверка. Будет ужасно раздражать, если вы больше не сможете этого сделать. - person dyesdyes; 02.04.2015
comment
Вы заметите, что я сказал, что нужно подумать, как избежать этой ситуации. - person John Judd; 10.04.2015

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

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

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

person AviD    schedule 13.05.2009
comment
Отмечу, что все это относится к установленному программному обеспечению. Онлайн-сервисы (очевидно, что это не ваше намерение) могут обеспечить более строгие ограничения. - person AviD; 13.05.2009
comment
Никакой механизм лицензирования не защитит вас от пиратства или даже существенно снизит его. Я не согласен с этим. По большей части простая защита от копирования будет иметь большое значение для сохранения честности честных людей и может существенно повлиять на случайное копирование. Например, крупные компании часто создают изображения высокой четкости с использованием лицензионного программного обеспечения, а затем не могут покупать больше лицензий при каждом использовании изображения. Не то чтобы они хотели пиратское программное обеспечение, просто они сделали это случайно. Такого рода вещи довольно легко остановить, и вы можете значительно сократить их количество. - person Martin Brown; 16.06.2009
comment
Мартин, я согласен - но я не считаю случайное копирование опасным видом пиратства, которое обычно блокируется ... Это то, что я говорил о хороших парнях - вы правы, лицензирование должно быть направлено на сохранение честности люди честные, но против действительно плохих парней это не поможет. - person AviD; 16.06.2009

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

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

person SmacL    schedule 13.05.2009