Как организовать защиту ПО: лучшая практика

Наш читатель прислал нам вопрос:

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

Мы передали его нашим экспертам, а полученные ответы представляем вашему вниманию.


Стас Павлов

Стас Павлов, руководитель направления маркетинга для технических аудиторий в Microsoft Россия

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

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

Если вы посмотрите на успешные проекты, то увидите, что большинство из них, обычно, используют один из указанных подходов. Вопрос «слома» защиты — это вопрос того, насколько готов тратить ресурсы «взломщик» на неавторизованный доступ к программе. Поэтому тут скорее правильный вопрос состоит не в том, как защититься от взлома, а в том, как правильно определить свою аудиторию и подобрать механизм распространения/защиты так, чтобы это было удобно пользователю, при этом защитило от некоторого базового уровня атак на программу.


Николай Мациевский

Николай Мациевский, эксперт IT-конференции «Стачка»

При любом конкретном вопросе про ПО я всегда себя останавливаю, выдыхаю и задаю другие вопросы: на сколько пользователей это влияет и как это влияет на мой доход? У нас была история с лицензированием ПО (сейчас полностью перешли на SaaS). Нас часто ломали и выкладывали nulled версии. Но на наших продажах это сказывалось, скорее, положительно: чем больше пользователей узнавало про продукт, тем больше было клиентов. Любую защиту — даже если она создана на заказ — можно обойти. Это только вопрос времени и квалификации специалиста по безопасности. Но заниматься взломом будет не более 0,1 % ваших пользователей. Обычно при продаже люди не задают вопрос: как мне это взломать. Если цена меньше ценности, то ее охотно платят. Это быстрее, чем тратить время на взлом.

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


Григорий Земсков

Григорий Земсков, эксперт IT-конференции «Стачка»

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


Антон Максимов

Антон Максимов, эксперт IT-конференции «Стачка»

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


Дмитрий Сошников

Дмитрий Сошников, технологический евангелист Microsoft, доцент МФТИ, МАИ, преподаватель детского лагеря JUNIO-R

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


Григорий Петров

Григорий Петров, технический евангелист VoxImplant

Лучшая защита — это популярность продукта. Я редко встречал ситуации, когда программы приносили много денег, просто потому что их было тяжело украсть. Продвигайте программу на профильных ресурсах, используйте контент-маркетинг, сделайте версию для Windows Store. Также хорошо помогает вынесение часть функциональности в веб-сервис, регистрация и оплата на котором позволяет пользоваться полной функциональностью связанного с ним приложения.


Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на admin@tproger.ru, мы расскажем как это сделать.