Как вы защищаете свое программное обеспечение от нелегального распространения?
Мне интересно, как вы защищаете свое программное обеспечение от взлома, взлома и т. Д.
Вы используете какую-то проверку серийного номера? Аппаратные ключи?
Используете ли вы какие-либо сторонние решения?
Как вы решаете вопросы лицензирования? (например, управление плавающими лицензиями)
РЕДАКТИРОВАТЬ: я не говорю о каких-либо с открытым исходным кодом, но строго коммерческое распространение программного обеспечения...
25 ответов
Есть много, много, много доступных средств защиты. Ключ:
- Оценка вашей целевой аудитории и того, с чем они готовы мириться
- Понимание желания вашей аудитории играть без оплаты
- Оценивая сумму, которую кто-то готов выдвинуть, чтобы сломать вашу защиту
- Применяя достаточную защиту, чтобы большинство людей не уклонялись от оплаты, не раздражая тех, кто использует ваше программное обеспечение.
Ничто не является неразрушимым, поэтому более важно оценить эти вещи и выбрать хорошую защиту, чем просто дать лучшую (худшую) защиту, которую вы можете себе позволить.
- Простые регистрационные коды (проверено онлайн один раз).
- Простая регистрация с отзывными ключами, часто проверяется онлайн.
- Зашифрованный ключ содержит часть алгоритма программы (нельзя просто пропустить проверку - его нужно запустить, чтобы программа работала)
- Аппаратный ключ (криптография с открытым / закрытым ключом)
- Аппаратный ключ (включает часть программного алгоритма, которая работает на ключе)
- Веб-сервис выполняет критический код (хакеры никогда не увидят его)
И вариации вышеперечисленного.
-Адам
Какой бы путь вы ни выбрали, назначьте справедливую цену, сделайте ее проще, дайте бесплатные незначительные обновления и никогда не деактивируйте их программное обеспечение. Если вы относитесь к своим пользователям с уважением, они вознаградят вас за это. Тем не менее, независимо от того, что вы делаете, некоторые люди будут в конечном итоге пиратством.
Не.
Пираты будут пиратскими. Независимо от того, какое решение вы придумали, оно может и будет взломано.
С другой стороны, ваши настоящие, платящие клиенты - это те, кому это дерьмо мешает.
Сделать проще купить, чем украсть. Если вы поставите курьеры на защиту от копирования, то это просто снижает ценность владения реальной сделкой.
Используйте простой ключ активации и убедите клиентов, что они всегда могут получить ключ активации или повторно загрузить программное обеспечение, если они потеряют свой.
Любая защита от копирования (кроме компонентов, предназначенных только для онлайн-доступа, таких как многопользовательские игры и программное обеспечение для финансов, которые подключаются к вашему банку и т. Д.), Которые вы можете просто предположить, потерпит поражение. Вы хотите, чтобы загрузка вашего программного обеспечения нелегально, по крайней мере, была немного сложнее, чем его покупка.
У меня есть компьютерные игры, которые я никогда не открывал, потому что на нем так много мусора для защиты от копирования, что на самом деле проще скачать поддельную версию.
Защита программного обеспечения не стоит денег - если ваше программное обеспечение востребовано, оно будет побеждено, несмотря ни на что.
Тем не менее, аппаратная защита может работать хорошо. Вот пример того, как он может работать хорошо: найдите (довольно) простой, но необходимый компонент вашего программного обеспечения и внедрите его в Verilog/VHDL. Создайте публично-частную пару ключей и создайте веб-сервис, который принимает строку запроса и шифрует ее с помощью закрытого ключа. Затем создайте USB-ключ, который содержит ваш открытый ключ и генерирует случайные строки запроса. Ваше программное обеспечение должно запросить у USB-ключа строку вызова и отправить ее на сервер для шифрования. Программное обеспечение затем отправляет его на ключ. Ключ проверяет зашифрованную строку запроса открытым ключом и переходит в режим "включен". Затем ваше программное обеспечение вызывает ключ, когда ему нужно выполнить операцию, написанную вами на HDL. Таким образом, любой, кто хочет пиратствовать в вашем программном обеспечении, должен выяснить, что это за операция, и переопределить ее - гораздо сложнее, чем просто победить чистую защиту программного обеспечения.
Редактировать: только что понял, что некоторые вещи проверки обратно от того, что должно быть, но я почти уверен, что идея встречается.
Схема Microsoft Software License очень дорого обходится малому бизнесу. Стоимость сервера составляет около 12 000 долларов, если вы хотите настроить его самостоятельно. Я не рекомендую это для финт сердца.
На самом деле мы только что внедрили Intellilock в наш продукт. Это позволяет вам принимать все решения относительно того, насколько строгой должна быть ваша лицензия, и это также очень эффективно с точки зрения затрат. Кроме того, он делает запутывание, предотвращение компиляции и т. Д.
SoloServer - еще одно хорошее решение, которое я видел для малого и среднего бизнеса. Это гораздо больше электронной коммерции и системы контроля лицензий. Это очень легко настраивается, возможно, немного сложнее. Но это очень хорошая работа из того, что я слышал.
В прошлом я также использовал систему лицензий Desaware для dot net. Это довольно легкая система по сравнению с двумя выше. Это очень хорошая система контроля лицензий с точки зрения криптографического звучания. Но это API очень низкого уровня, в котором вам нужно реализовать практически все, что ваше приложение будет использовать на самом деле.
Цифровое управление "Правами" является крупнейшим программным продуктом в области змеиного масла. Чтобы заимствовать страницу из классической криптографии, типичный сценарий состоит в том, что Алиса хочет получить сообщение Бобу, но Чарли не сможет его прочитать. DRM не работает, потому что в своем приложении Боб и Чарли - один и тот же человек!
Вам лучше задать обратный вопрос: "Как заставить людей покупать мое программное обеспечение вместо того, чтобы его красть?". И это очень широкий вопрос. Но это обычно начинается с исследования. Вы выясняете, кто покупает тип программного обеспечения, которое вы хотите продать, а затем производите программное обеспечение, которое нравится этим людям.
Дополнительным условием для этого является ограничение обновлений / надстроек только легальными копиями. Это может быть что-то простое, например, код заказа, полученный во время транзакции покупки.
Познакомьтесь с программным обеспечением Stardock, создателями WindowBlinds и играми, такими как Sins of a Solar Empire, последняя не имеет DRM и получила значительную прибыль за счет бюджета в 2 миллиона долларов.
Существует несколько способов, например использование идентификатора процессора для генерации "ключа активации".
Суть в том, что если кто-то хочет, чтобы это было достаточно плохо, он перепроектирует любую защиту, которая у вас есть.
Наиболее надежные методы - использовать онлайн-проверку во время выполнения или аппаратную проверку.
Удачи!
Если вы уделите немного времени, ваше программное обеспечение всегда будет взломано. Вы можете найти взломанные версии любого известного программного обеспечения, чтобы подтвердить это. Но все же стоит добавить некоторую форму защиты к вашему программному обеспечению.
Помните, что нечестные люди никогда не будут платить за ваше программное обеспечение и всегда находят / используют взломанную версию. Очень честные люди всегда будут придерживаться правил даже без схемы лицензирования только потому, что они такие люди. Но большинство людей находятся между этими двумя крайностями.
Добавление некоторой простой схемы защиты - это хороший способ заставить честную группу людей, действующих посередине, действовать честно. Это способ подтолкнуть их к тому, что они помнят, что программное обеспечение не является бесплатным, и они должны платить за соответствующее количество лицензий. Многие люди действительно отвечают на это. Бизнес особенно хорош в соблюдении правил, потому что менеджер не тратит свои собственные деньги. Потребители менее склонны придерживаться правил, потому что это их собственные деньги.
Но недавний опыт с выпусками, такими как Spore от Electronic Arts, показывает, что вы можете пойти далеко в лицензировании. Если вы заставите даже законных людей почувствовать себя преступниками, потому что их постоянно проверяют, они начинают бунтовать. Поэтому добавьте простое лицензирование, чтобы напомнить людям, что они нечестны, но что-то большее вряд ли увеличит продажи.
Созданы только онлайн-игры, такие как World of Warcraft (WoW), каждый должен каждый раз подключаться к серверу, поэтому учетные записи могут постоянно проверяться. Никакой другой метод не работает для бобов.
Обычно есть две системы, которые часто путают -
- Лицензирование или отслеживание активации, законное законное использование
- Безопасность, предотвращающая незаконное использование
Для лицензирования используйте коммерческий пакет, многие компании FlexLM вкладывают огромные суммы денег в лицензирование, считают, что они также получают безопасность, это распространенная ошибка генераторов ключей для этих коммерческих пакетов в изобилии.
Я бы порекомендовал лицензирование только в том случае, если вы продаете корпорации корпорациям, которые на законных основаниях платят за использование, в противном случае это, вероятно, больше усилий, чем стоит.
Помните, что по мере того, как ваши продукты станут успешными, все и все меры лицензирования и безопасности будут в конечном итоге нарушены. Так что решите сейчас, стоит ли оно того.
Мы внедрили клон FlexLM в чистом помещении несколько лет назад, нам также пришлось улучшать наши приложения против бинарных атак, его длительный процесс, вы должны пересматривать его в каждом выпуске. Это также действительно зависит от того, какие глобальные рынки вы продаете, или где ваша основная клиентская база относительно того, что вам нужно делать.
Проверьте еще один из моих ответов по обеспечению безопасности DLL.
Это не совсем тот ответ, который вы ищете, но это отличный ресурс по пиратству от разработчика игр, который активно спрашивал своих пиратов о том, почему они это делают. И относится к первой части ответа, который вы выбираете.
Читайте это в " Разговоре с пиратами".
Как уже указывалось, защита программного обеспечения никогда не гарантируется надежной защитой. То, что вы намереваетесь использовать, во многом зависит от вашей целевой аудитории. Например, игра - это не то, что вы сможете защитить навсегда. С другой стороны, серверное программное обеспечение гораздо реже распространяется по Интернету по ряду причин (на ум приходит проникновение и ответственность за продукт; крупная корпорация не хочет нести ответственность за загрузочное программное обеспечение, и пираты беспокоятся только о вещах, пользующихся достаточно большим спросом). Честно говоря, для громкой игры лучшее решение, вероятно, состоит в том, чтобы засечь торрент самостоятельно (тайно!) И каким-то образом изменить его (например, так, чтобы после двух недель игры он выскакивал с сообщениями, сообщающими вам: пожалуйста, подумайте о поддержке разработчиков путем покупки законной копии).
Если вы ставите защиту на место, помните о двух вещах. Во-первых, более низкая цена будет дополнять любую защиту от копирования, делая людей более склонными платить покупную цену. Во-вторых, защита не должна мешать пользователям - см. Spore для недавнего примера.
DRM this, DRM that - издатели, которые навязывают DRM своим проектам, делают это потому, что это выгодно. Их экономисты делают вывод на основании данных, которые никто из нас никогда не увидит. Тролли "DRM is evil" зашли слишком далеко.
Для продукта с низкой видимостью простая интернет-активация остановит случайное копирование. Любое другое копирование, вероятно, незначительно для вашей прибыли.
Даже если бы вы использовали какую-то биометрическую аутентификацию по отпечатку пальца, кто-то найдет способ ее взломать. Там действительно нет практического способа обойти это. Вместо того, чтобы пытаться сделать ваше программное обеспечение взломанным, подумайте о том, какой дополнительный доход будет приносить, добавив дополнительную защиту от копирования по сравнению с количеством времени и денег, которые потребуются для его реализации. В какой-то момент становится дешевле использовать менее строгую схему защиты от копирования.
Это зависит от того, чем конкретно является ваш программный продукт, но одна из возможностей состоит в том, чтобы вывести "ценную" часть программы из программного обеспечения и оставить ее под вашим исключительным контролем. Вы будете взимать небольшую плату за программное обеспечение (в основном для покрытия расходов на печать и распространение) и получать доход от внешнего компонента. Например, антивирусная программа, которая продается бесплатно (или поставляется бесплатно с другими продуктами), но продает подписки на ее службу обновления описаний вирусов. С этой моделью пиратская копия, которая подписывается на ваш сервис обновлений, не будет представлять собой большую финансовую потерю. С ростом популярности приложений "в облаке" этот метод становится все проще в реализации; разместить приложение в облаке и взимать плату с пользователей за доступ к облаку. Это не мешает кому-либо заново внедрить собственное облако, чтобы устранить потребность в вашем сервисе, но время и усилия, затрачиваемые на это, скорее всего, перевесят преимущества (если вы будете придерживаться разумной ценовой модели).
Проблема с этой идеей просто позволить пиратам использовать ее, они все равно не купят ее и покажут своим друзьям, которые могут купить ее, в два раза.
С программным обеспечением, которое использует сторонние сервисы, пиратские копии используют ценную полосу пропускания / ресурс, который дает легальным пользователям худший опыт, делает мой программный продукт более популярным, чем он есть, и сторонние сервисы просят меня платить больше за их услуги, потому что используемой полосы пропускания.
Многие случайные люди не мечтают сами взломать SW, но если на сайте, таком как piratebay, есть легко оцениваемый взлом, они будут его использовать, если бы не было, они могли бы его купить.
Эта концепция не отключать пиратское программное обеспечение, когда-то обнаруженное, также кажется сумасшедшей, я не понимаю, почему я должен позволить кому-то продолжать использовать программное обеспечение, которое они не должны использовать, я думаю, это всего лишь точка зрения / надежда пиратов.
Кроме того, стоит отметить, что усложнить взлом программы - это одно, но вы также должны предотвратить распространение легальных копий, иначе кто-то может просто купить одну копию, а затем
поделиться им с тысячами других через торрент-сайт. Факта, что их имя / адрес электронной почты будут включены в лицензию, будет недостаточно, чтобы отговорить всех от этого, и для того, чтобы возникла проблема, нужен только один.
Единственный способ предотвратить это - либо:
Каждый раз проверяйте сервер и блокируйте лицензию при запуске программы, а при выходе из программы освобождайте лицензию. Если другой клиент запускается с той же лицензией, в то время как первый клиент имеет лицензию, он отклоняется. Этот способ не предотвращает использование лицензии более чем одним пользователем, но предотвращает одновременное использование лицензии более чем одним пользователем - и это достаточно хорошо. Это также позволяет законному пользователю передавать лицензию на любой из их компьютеров, что обеспечивает лучший опыт.
При первом запуске клиента клиент отправляет лицензию на сервер, и сервер проверяет ее, в результате чего в программном обеспечении клиента устанавливается некоторый флаг. Дальнейшие запросы от других клиентов с той же лицензией отклоняются. Проблема с этим подходом заключается в том, что у исходного клиента могут возникнуть проблемы, если он переустановит программное обеспечение или захочет использовать другой компьютер.
Незаконное распространение практически невозможно предотвратить; просто спросите RIAA. Цифровой контент можно просто скопировать; аналоговый контент может быть оцифрован, а затем скопирован.
Вы должны сосредоточить свои усилия на предотвращении несанкционированного выполнения. Никогда невозможно полностью предотвратить выполнение кода на чужой машине, но вы можете предпринять определенные шаги, чтобы поднять планку достаточно высоко, чтобы вам было проще приобретать программное обеспечение, чем его пиратствовать.
Взгляните на статью " Разработка для защиты программного обеспечения и лицензирования", в которой объясняется, как лучше всего разрабатывать приложение с учетом лицензирования.
Обязательный отказ от ответственности и плагин: соучредитель компании, которую я создал, производит решение для лицензирования программного обеспечения OffByZero Cobalt для.NET.
Я предлагаю простой ключ активации (даже если вы знаете, что он может быть взломан), вы действительно не хотите, чтобы ваше программное обеспечение мешало вашим пользователям, или они просто оттолкнут его.
Убедитесь, что они могут повторно загрузить программное обеспечение, я предлагаю веб-страницу, где они могут регистрировать и загружать ваше программное обеспечение только после того, как заплатят (и да, они должны иметь возможность загружать столько раз, сколько пожелают, напрямую, без единого вопроса). о том, почему с вашей стороны).
Прежде всего, доверяйте своим платным пользователям, нет ничего более раздражающего, чем обвинение в том, что вы преступник, когда вы являетесь законным пользователем (DVD-диск с предупреждением о пиратстве для всех).
Вы можете добавить службу, которая проверяет ключ на сервере, когда он-лайн, и в случае, когда два разных IP-адреса используют один и тот же ключ, выскакивает предложение купить другую лицензию.
Но, пожалуйста, не отключайте его, это может быть счастливый пользователь, показывающий ваше программное обеспечение другу!!!!
Простое и лучшее решение - это просто зарядить их заранее. Установите цену, которая работает для вас и их.
Запрашиваемая платящих клиентов доказать, что они платят клиентам после того, как они уже заплатили, просто бесит. Реализация кода, позволяющего не запускать ваше программное обеспечение, тратит впустую ваше время и деньги, а также создает ошибки и раздражает законных клиентов. Тебе лучше потратить это время на создание лучшего продукта.
Многие игры и т. Д. Будут "защищать" первую версию, а затем сбрасывать защиту в первом патче из-за проблем совместимости с реальными клиентами. Это не необоснованная стратегия, если вы настаиваете на некоторой защите.
Если вы заинтересованы в защите программного обеспечения, которое вы собираетесь продавать потребителям, я бы порекомендовал любую из множества библиотек, генерирующих лицензионные ключи (поиск Google по генерации лицензионных ключей). Обычно пользователь должен дать вам какое-то начальное значение, например, свой адрес электронной почты или имя, и они возвращают регистрационный код.
Несколько компаний будут либо размещать и распространять ваше программное обеспечение, либо предоставлять полное приложение для установки / покупки, с которым вы можете интегрироваться, и делать это автоматически, вероятно, без дополнительных затрат для вас.
Я продал программное обеспечение потребителям, и я считаю, что это правильный баланс стоимости / простоты использования / защиты.
Почти вся защита от копирования является неэффективной и кошмаром юзабилити. Некоторые из них, такие как установка руткитов на компьютеры ваших клиентов, становятся совершенно неэтичными
Сделайте часть вашего продукта онлайн-компонентом, который требует подключения и аутентификации. Вот некоторые примеры:
- Онлайн игры
- Защита от вируса
- Защита от спама
- Программное обеспечение для отслеживания ноутбука
Эта парадигма только заходит так далеко и может отключить некоторых потребителей.
Я согласен со многими авторами, что ни одна из программных схем защиты от копирования не защитит от опытного программного пирата. Для коммерческого программного обеспечения на основе.NET решение Microsoft Software License Protection (SLP) - это решение по очень разумной цене. Он поддерживает ограниченные по времени и плавающие лицензии. Их цена начинается от 10 долларов в месяц + 5 долларов за активацию, и компоненты защиты, кажется, работают так, как рекламируется. Это довольно новое предложение, поэтому покупатель остерегается.
Мы лицензируем наше коммерческое программное обеспечение, используя нашу собственную систему лицензирования - это то, что мы продаем (инструменты управления лицензиями). Как правило, мы продаем подписные лицензии, но мы также можем продавать их по своему усмотрению. Пока это было безопасно для нас: www.agilis-sw.com
Если вы разработчик программного обеспечения, одним из возможных решений является встраивание метаданных непосредственно в ваш продукт. Проверьте экземпляр инструмента безопасности уничтожения от theredsunrise.