Создание коммерческого программного обеспечения Java (DRM) - PullRequest
17 голосов
/ 18 марта 2010

Я собираюсь продавать программное обеспечение через Интернет.Раньше я только создавал open-source, поэтому я понятия не имею, как защитить его от взлома и распространения в виде warez.Помня, что я знаю, как две программы, которые не взломаны или не очень полезны, я решил, что единственный более или менее надежный способ может выглядеть следующим образом:

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

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

Спасибо

Ответы [ 14 ]

0 голосов
/ 29 марта 2010

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

0 голосов
/ 18 марта 2010

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

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

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

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

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

0 голосов
/ 18 марта 2010

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

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

0 голосов
/ 18 марта 2010

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

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

...