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

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

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

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


Стас Павлов

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

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

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

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


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

Николай Мациевский, Chief Executive Officer Airee.International

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

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


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

Григорий Земсков, Директор компании «Ревизиум»

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


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

Антон Максимов, технический директор Heads and Hands

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


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

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

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


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

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

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


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

Подобрали два теста для вас:
— А здесь можно применить блокчейн?
Серверы для котиков: выберите лучшее решение для проекта и проверьте себя.