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

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

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

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

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

EDIT: Я не говорю с открытым исходным кодом, но строго коммерческое распространение программного обеспечения...

Ответ 1

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

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

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

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

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

Ответ 2

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

Ответ 3

Не.

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

Ответ 6

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

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

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

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

Ответ 7

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

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

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

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

Ответ 8

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

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

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

Удачи!

Ответ 9

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

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

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

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

Ответ 10

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

Ответ 11

Как правило, есть две системы, которые часто путаются -

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

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

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

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

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

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

Ответ 12

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

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

Ответ 13

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

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

Ответ 14

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

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

Ответ 15

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

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

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

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

Ответ 16

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

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

  • Многие случайные люди не мечтали взломать самих sw, но если есть легкий оценочный треск на сайте, таком как piratebay, они будут использовать его, если бы не они могли его купить.

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

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

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

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

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

Ответ 17

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

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

Ответ 18

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

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

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

Ответ 19

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

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

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

Ответ 20

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

Ответ 21

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

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

Эта парадигма только доходит до сих пор и может отключить некоторых потребителей.

Ответ 22

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

Ответ 23

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

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

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

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

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

Ответ 24

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

Ответ 25

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