Ошибки при защите ПО

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

На рынке существует множество систем для защиты и лицензирования ПО, но большинство разработчиков считают, что не стоит тратить деньги на то, что они сами способны написать.
“Зачем тратить пару тысяч рублей на программы для защиты ПО, если я и сам могу написать крутую защиту от взлома. Погуглю немного и напишу сам бесплатно.” – позиция очень большого количество разработчиков коммерческого ПО.
При этом такой путь обойдется компании значительно дороже, чем покупка готового решения. При разработке собственной системы защиты и лицензирования разработчики совершенно не учитывают стоимость собственного времени, а его нельзя назвать очень дешевым. Для того, чтобы написать действительно хорошую, стойкую систему защиты потребуется ни одна неделя работы программиста, за которую нужно платить. За это время он успел бы реализовать какой-нибудь важный для продукта функционал и увеличил бы его продажи.
Ну и естественно, крайне проблематично написать за несколько недель собственную защиту, которая будет более стойкой, чем решения, которые разрабатываются не один год десятками программистов, которые на этом специализируются. Коды Рида-Соломона, динамическое шифрование кода, эшелонированная защита, контроль целостности кода – все это придется реализовывать самостоятельно.

Но защита ПО это лишь одна сторона медали. Рука об руку с защитой ПО от взлома идет вопрос построения системы лицензирования. Большинство продуктов продаются в различных конфигурациях(с ограничениями по функционалу, по количеству пользователей, времени и прочее). Такой подходи обрекает разработчика или на выпуск для каждого заказчика уникальной сборки ПО или на разработку собственной системы лицензирования. Что опять же отвлекает его от основной задачи – развивать и улучшать функциональность своего ПО. Разработать собственную систему лицензирования на должном уровне задача нетривильная – учет работы в виртуальной среде, терминальные сессии, доставка лицензии до клиента, миграция лицензий с одного компьютера на другой, все эти нюансы придется предусмотреть в своей системе лицензирования. Коммерческие решения по защите ПО, позволяют вам пойти путем “protect — once, delivery — many” и сосредоточиться на главной цели – развивать функциональность вашего ПО.

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

Есть, правда, и другой взгляд на эту ситуацию. Самостоятельное создание системы защиты и лицензирования крайне выгодно разработчику. Кто же будет увольнять сотрудника, который знает как обойти построенную им систему защиты?:)

p.s. Ссылки на коммерческие решения по защите и лицензированию умышленно не привожу, чтобы не сочли за рекламу. Да и найти подобные решения не составит труда.

Leave a Reply