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


90

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

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

Вы пользуетесь сторонними решениями?

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

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


77
Я жду того дня, когда кто-нибудь украдет мою программу. Это было бы круто!

4
Дело в том, что однажды кто-то украдет ваше программное обеспечение, вы, вероятно, не узнаете об этом :-)
petr k.

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

6
Без обид, но «Напишите отличное программное обеспечение, и вы заработаете деньги» - это отчасти правда. Рассмотрим MS Office. Если не считать критики, это хорошее программное обеспечение. Тем не менее, в среднем по миру более 70% копий Office являются незаконными. Разве MS не заработал бы намного больше, если бы не пиратство? Действительно ли пиратство напрямую связано с качеством ПО?
петр к.

5
@petr k .: Я не согласен. Одним из важных побочных эффектов пиратства является популярность MSOffice (MSWindows в этом отношении). MS проиграет, если сможет полностью обуздать пиратство. @Mike: Это очень хороший момент. Размещая сервер лицензирования и т. Д., Мы только усложняем
задачу

Ответы:


74

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

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

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

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

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


Какие-нибудь примеры использования аппаратного ключа?
ukasz Lew

2
@Lukasz - Их также называют донглами - электронными устройствами, которые подключаются к компьютеру. Посетите en.wikipedia.org/wiki/Dongle для получения дополнительной информации об этой опции.
Адам Дэвис

28

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


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

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

24

Не надо.

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

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


6
Это не совсем так, есть невежественные пользователи, которые просто берут программное обеспечение, потому что они просто не думают о нем. Нормальные люди украдут, если не задумаются об этом.
Артур Томас

9
Согласен. Я всегда расстраиваюсь из-за вступления ФБР к DVD-дискам, за которые я на самом деле заплатил, «вы бы не украли машину»!
Christian Davén

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

3
Неправильно. См. Kalzumeus.com/2006/09/05/…
Карл

4
@MarkJ: На самом деле, любой владелец кода, который хочет сохранить своих клиентов, должен часто принимать POV клиента ...
sleske

22

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

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

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

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


++ для "легче купить, чем украсть".
AlcubierreDrive,

+++ "Чтобы было легче купить, чем воровать"!
Денис Шевченко

15

Защита программного обеспечения не стоит своих денег - если ваше программное обеспечение будет востребовано, оно будет проиграно, несмотря ни на что.

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

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


2
Большинство из них не работают таким образом, а просто реализуют часть алгоритма и не выполняют аутентификацию с открытым ключом. Например, AutoCAD (или это был 3dsmax?) Поворачивал матрицу на ключе. Если бы у вас не было ключа, вращение было бы / немного / выключено, что со временем увеличивалось бы.
Серафина Бросиус

1
Это хитрый трюк. Сделать так, чтобы программа работала неправильно, если она не зарегистрирована должным образом; не совсем неправильно, но только так, что вы сначала этого не замечаете.
rpetrich

1
Кроме того, принимая решение использовать USB-ключи для защиты программного обеспечения, имейте в виду, что многие программы в наши дни работают в виртуальных средах, где доступ к физическому оборудованию (например, портам USB) может быть ограничен. Также есть затраты на замену ключей (да, и клиент «потеряет» ключи).
PoppaVein

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

5
Этот тип защиты остановил взлом Cubase / Nuendo (ведущее программное обеспечение DAW для Windows) на несколько лет. Последняя взломанная версия содержала небольшую заметку от взломщиков. Они утверждали, что это была самая сложная трещина, которую они когда-либо предпринимали. Они также заявили, что из-за того, что так много программных процедур попадает в электронный ключ, производительность программного обеспечения снижается. Их эмулированный ключ работал намного быстрее. Многие законные пользователи были очень рассержены и в конце концов все равно установили кряк, чтобы повысить производительность.
Alex

15

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

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

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

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


9

Цифровое управление правами - это самый крупный программный продукт в отрасли. Чтобы заимствовать страницу из классической криптографии, типичный сценарий состоит в том, что Алиса хочет передать сообщение Бобу, а Чарли не сможет его прочитать. DRM не работает, потому что в его приложении Боб и Чарли - одно и то же лицо!

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

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

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


+1 за хорошо сформулированный обратный вопрос!
Илари Каясте,

6

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

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

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

Удачи!


4

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

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

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

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


3

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


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

3
Ну, есть частные серверы, за которые не нужно платить.
Джереми

Конечно, Петр, это нереально для всех, но это все же правда: никакой другой метод не работает. Неудобно, конечно, но это правда.
Джефф,

3

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

Прочтите это в Talking to Pirates .


3

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

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

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

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

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

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

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


2

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

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


2

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

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


2

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

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

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

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


2

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

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

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

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

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

Единственный способ предотвратить это - это либо:

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

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


2

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

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


1

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

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

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


1

Простое и лучшее решение - просто зарядить их заранее. Установите цену, которая подходит вам и им.

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

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


1

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


Я голосую против - вы предполагаете, что каждый, у кого есть антисхема, выполняет незаконные действия, например руткиты.
Джейсон Шорт,

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

0

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

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

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


0

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


А в 2011 году цена SLP выросла до 145 евро в месяц за самый маленький пакет.
Майкл Олесен,

0

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

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

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

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

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


0

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.