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

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

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

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

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

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

25 ответов


есть много, много, много защиты. Ключ:

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

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

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

и вариации выше.

Адам


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


нет.

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

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


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

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

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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

удачи!


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


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

Readi it at разговор с пиратами.


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

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

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

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

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

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

проверьте еще один из моих ответов на защита DLL.


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

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

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

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


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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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


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

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


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

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

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


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


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

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

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


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

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

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


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


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

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

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

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

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


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


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