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

StackOverflow https://stackoverflow.com/questions/856910

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

<цитата>

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top