Как вы защищаете свое программное обеспечение от нелегального распространения?[закрыто]

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

Вопрос

Мне интересно, как вы защищаете свое программное обеспечение от взлома, взлома и т. д.

Используете ли вы какую-то проверку серийного номера?Аппаратные ключи?

Используете ли вы какие-либо сторонние решения?

Как вы решаете вопросы лицензирования?(например.управление плавающими лицензиями)

РЕДАКТИРОВАТЬ:Я говорю не о каком-либо открытом исходном коде, а о строго коммерческом распространении программного обеспечения...

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

Решение

Существует много, много, много средств защиты.Ключ:

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

Ничто не является нерушимым, поэтому важнее оценить эти вещи и выбрать хорошую защиту, чем просто установить лучшую (худшую) защиту, которую вы можете себе позволить.

  • Простые регистрационные коды (проверены онлайн один раз).
  • Простая регистрация с отзывными ключами, часто проверяемыми онлайн.
  • Зашифрованный ключ содержит часть алгоритма программы (невозможно просто пропустить проверку — ее необходимо запустить, чтобы программа работала)
  • Аппаратный ключ (криптография с открытым/закрытым ключом)
  • Аппаратный ключ (включает часть программного алгоритма, который работает на ключе)
  • Веб-сервис выполняет критический код (хакеры его никогда не увидят)

И вариации вышеперечисленного.

-Адам

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

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

Не.

Пираты будут пиратить.Независимо от того, какое решение вы придумаете, оно может быть взломано.

С другой стороны, ваши настоящие платящие клиенты — это те, кому эта чушь причиняет неудобства.

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

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

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

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

Защита программного обеспечения не стоит денег — если ваше программное обеспечение пользуется спросом, оно воля потерпеть поражение, несмотря ни на что.

Тем не менее, аппаратная защита может работать хорошо.Пример того, как это может хорошо работать, таков:Найдите (достаточно) простой, но необходимый компонент вашего программного обеспечения и реализуйте его в Verilog/VHDL.Создайте пару открытого и закрытого ключей и создайте веб-сервис, который принимает строку запроса и шифрует ее с помощью закрытого ключа.Затем создайте USB-ключ, который будет содержать ваш открытый ключ и генерировать случайные строки запроса.Ваше программное обеспечение должно запросить у USB-ключа строку запроса и отправить ее на сервер для шифрования.Затем программное обеспечение отправляет его на ключ.Ключ проверяет зашифрованную строку запроса с помощью открытого ключа и переходит в «включенный» режим.Затем ваше программное обеспечение обращается к ключу каждый раз, когда ему необходимо выполнить операцию, которую вы написали на HDL.Таким образом, любой, кто хочет взломать ваше программное обеспечение, должен выяснить, что это за операция, и реализовать ее заново, что гораздо сложнее, чем просто обойти чистую защиту программного обеспечения.

Редактировать:Только что понял, что некоторые элементы проверки не соответствуют тому, что должно быть, но я почти уверен, что идея понятна.

Схема лицензирования программного обеспечения Microsoft безумно дорога для малого бизнеса.Стоимость сервера составляет около 12 000 долларов США, если вы хотите настроить его самостоятельно.Я не рекомендую это для слабонервных.

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

Еще одно хорошее решение, которое я видел в малом/медицинском бизнесе, — это СолоСервер.Это скорее система электронной коммерции и контроля лицензий.Он очень настраиваемый, возможно, даже слишком сложный.Но, судя по тому, что я слышал, он делает очень хорошую работу.

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

Digital «Rights» Management — крупнейший программный продукт в отрасли.Если позаимствовать страницу из классической криптографии, то типичный сценарий таков: Алиса хочет передать сообщение Бобу, а Чарли не сможет его прочитать.DRM не работает, потому что в его приложении Боб и Чарли — один и тот же человек!

Вам лучше задать обратный вопрос: «Как мне заставить людей купить мое программное обеспечение вместо того, чтобы красть его?» И это очень широкий вопрос.Но обычно все начинается с исследования.Вы выясняете, кто покупает тот тип программного обеспечения, которое вы хотите продать, а затем создаете программное обеспечение, которое понравится этим людям.

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

Обратите внимание на программное обеспечение Stardock, создателей WindowBlinds и таких игр, как Sins of a Solar Empire, последняя не имеет DRM и принесла значительную прибыль при бюджете в 2 миллиона долларов.

Существует несколько методов, например использование идентификатора процессора для генерации «ключа активации».

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

Наиболее безопасные методы — использовать онлайн-проверку во время выполнения или аппаратную блокировку.

Удачи!

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

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

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

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

Это сделано только в онлайн-играх, таких как World of Warcraft (WoW), каждый должен каждый раз подключаться к серверу, и, таким образом, учетные записи можно постоянно проверять.Ни один другой метод не работает для бобов.

Это не совсем тот ответ, который вы ищете, но это отличный ресурс о пиратстве от разработчика игр, который активно задавал вопросы пираты о том, почему они это делают.И относится к первой части выбранного вами ответа.

Прочтите это в Разговор с пиратами.

Вообще есть две системы, которые часто путают:

  • Отслеживание лицензирования или активации, законное законное использование
  • Безопасность, предотвращающая незаконное использование

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

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

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

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

Посмотрите еще один мой ответ на защита DLL.

Как уже отмечалось, защита программного обеспечения никогда не может быть гарантированно надежной.То, что вы собираетесь использовать, во многом зависит от вашей целевой аудитории.Например, игру нельзя защищать вечно.С другой стороны, серверное программное обеспечение с гораздо меньшей вероятностью будет распространяться в Интернете по ряду причин (на ум приходят проникновение продукта и ответственность;крупная корпорация не хочет нести ответственность за контрафактное программное обеспечение, а пираты беспокоятся только о вещах, пользующихся достаточно большим спросом).Честно говоря, для громкой игры лучшим решением, вероятно, будет самостоятельно раздать торрент (тайно!) и каким-либо образом изменить его (например, чтобы после двух недель игры он появлялся с сообщениями, предлагающими вам пожалуйста, рассмотрите возможность поддержки разработчиков, купив легальную копию).

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

DRM то, DRM то — издатели, которые навязывают DRM в своих проектах, делают это потому, что это выгодно.Их экономисты делают такие выводы на основе данных, которые никто из нас никогда не увидит.Тролли, утверждающие, что DRM – это зло, заходят слишком далеко.

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

Незаконное распространение практически невозможно предотвратить;просто спросите RIAA.Цифровой контент можно просто скопировать;аналоговый контент можно оцифровать, а затем скопировать.

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

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

Обязательный отказ от ответственности и вилка:компания, соучредителем которой я являюсь, производит Решение по лицензированию программного обеспечения OffByZero Cobalt для .NET.

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

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

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

Эта концепция не отключать пиратское программное обеспечение после обнаружения также кажется безумием. Я не понимаю, почему я должен позволять кому-то продолжать использовать программное обеспечение, которое ему не следует использовать, я думаю, это всего лишь точка зрения/надежда пиратов.

Кроме того, стоит отметить, что сделать программу трудно взломанной — это одно, но вам также необходимо предотвратить распространение легальных копий, иначе кто-то может просто купить одну копию, а затем
поделитесь им с тысячами других через торрент-сайт.Факта включения их имени/адреса электронной почты в лицензию недостаточно, чтобы отговорить всех от этого, и достаточно одного, чтобы возникла проблема.

Единственный способ, который я вижу, чтобы предотвратить это, - это либо:

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

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

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

Это зависит от того, какой именно у вас программный продукт, но одна из возможностей — вынести «ценную» часть программы из программного обеспечения и оставить ее под своим исключительным контролем.Вы будете взимать скромную плату за программное обеспечение (в основном для покрытия расходов на печать и распространение) и будете получать доход от внешнего компонента.Например, антивирусная программа, которая продается дешево (или бесплатно поставляется в комплекте с другими продуктами), но продает подписку на службу обновления описаний вирусов.При такой модели пиратская копия, подписавшаяся на вашу службу обновлений, не будет представлять собой больших финансовых потерь.С ростом популярности приложений «в облаке» этот метод становится все проще реализовать;разместите приложение в своем облаке и взимайте с пользователей плату за доступ к облаку.Это не мешает кому-то повторно внедрить собственное облако, чтобы устранить необходимость в ваших услугах, но время и усилия, затраченные на это, скорее всего, перевесят выгоды (если вы сохраните разумную модель ценообразования).

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

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

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

Простое и лучшее решение — просто внести предоплату.Установите цену, которая подойдет вам и им.

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

Многие игры и т. д. «защищают» первую версию, а затем отменяют защиту в первом патче из-за проблем совместимости с реальными клиентами.Это вполне разумная стратегия, если вы настаиваете на хоть какой-то защите.

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

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

  • Онлайн игры
  • Защита от вируса
  • Защита от спама
  • Программа для отслеживания ноутбуков

Однако эта парадигма заходит слишком далеко и может отпугнуть некоторых потребителей.

Я согласен со многими сторонниками того, что никакая схема защиты от копирования на основе программного обеспечения не удержит от опытного пирата программного обеспечения.Для коммерческого программного обеспечения на базе .NET Microsoft Software License Protection (SLP) является решением по очень разумной цене.Он поддерживает ограниченные по времени и плавающие лицензии.Их цена начинается от 10 долларов в месяц + 5 долларов за активацию, и компоненты защиты, похоже, работают так, как заявлено.Однако это довольно новое предложение, поэтому покупатели должны быть осторожны.

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

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

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

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

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

Если вы разработчик программного обеспечения, одно из возможных решений — встроить метаданные непосредственно в ваш продукт.Ознакомьтесь с экземпляром инструмента Destruction Security от theredsunrise.

Мы лицензируем наше коммерческое программное обеспечение, используя нашу собственную систему лицензирования — именно это мы и продаем (инструменты управления лицензиями).Обычно мы продаем лицензии по подписке, но при желании можем продавать и в зависимости от использования.До сих пор для нас это было безопасно:www.agilis-sw.com

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