Защитить свой продукт

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


Немного лирики

Нередко на различных форумах разработчиков приходится читать "мысли вслух" о том, что не стоит такую интимную вещь, как защита приложения, отдавать на реализацию неведомо кому. Потому что неизвестно, как именно эта "навесная" защита созданный потом и кровью продукт защитит, окупит ли потраченные на неё деньги, да и кто знает, может быть, разработчики этой защиты будут тихо продавать ключи "налево"? В общем, опасений защита от сторонних разработчиков вызывает массу. Но большую их часть можно разрешить, обратившись к компании, уже имеющей хорошую репутацию на рынке средств защиты программного обеспечения. Такая компания постарается избегать возможных репутационных рисков и не будет ставить под угрозу бизнес своих клиентов как низким качеством защиты, так и возможным сотрудничеством с мошенниками, незаконно продающими лицензионные ключи по демпинговым ценам.

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

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

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


VMProtect

Рассматривая различные механизмы защиты кода программного продукта от дизассемблирования, отдельно я рассказывал об исполнении этого кода под управлением виртуальной машины. При этом подчеркивал, что метод очень перспективен по эффективности защиты, но достаточно сложен и как никакой другой достоин решения именно в виде какого-то стороннего "навесного" механизма защиты. VMProtect - как раз такая библиотека, которая позволяет реализовать защиту с использованием виртуальной машины, не вникая самостоятельно во все связанные с этим тонкости и сложности.

Найти эту библиотеку в Сети можно по адресу www.vmprotect.ru. Стоимость её варьируется от $129 за самую простую lite-версию до $449 за версию, которая поддерживает практически всё, включая даже бывшие когда-то чрезвычайно популярными, а сейчас уже практически канувшие в лету аппаратные USB-ключи.

Надо отметить, что популярность VMProtect обусловлена во многом именно высоким качеством. Другие продукты предполагают проверку законности использования данной конкретной копии только на этапе старта приложения и, соответственно, защиту от дизассемблера только этого сравнительно небольшого участка программного кода. VMProtect предусматривает более широкий комплекс мер по защите ПО: детектирование запуска приложений из-под отладчиков и виртуальных машин (таких, как VMWare и VirtualPC), упаковку защищенных файлов, защиту секции импорта, "мутацию" кода и запуск его в рамках собственной виртуальной машины. Самая дорогая версия VMProtect умеет работать и с собственными лицензионными ключами, причём настраивать срок завершения их работы, "привязывать" их к пользовательскому "железу", лимитировать бесплатные обновления по конкретному ключу, вести "черный список" серийных номеров и даже использовать web-генераторы регистрационных ключей. Что приятно, все версии этой библиотеки умеют, по заявлениям разработчиков, работать как с 32-битными, так и с 64-битными исполняемыми файлами для Windows, причём не только с EXE-файлами, но и с DLL-ками.


ElecKey

Достаточно популярная среди разработчиков коммерческого ПО на постсоветском пространстве, но, конечно, не дотягивающая до VMProtect'а по популярности библиотека для защиты коммерческих программных продуктов. Стоит ElecKey не намного дороже, чем VMProtect, но тем, кто только начинает делать шаги на рынке ПО, разница в цене может показаться ощутимой. Вместе с тем, ElecKey позволяет делать вещи, которые недоступны покупателям первого из рассмотренных программных продуктов, VMProtect. Например, защищать приложения, написанные для платформы .NET, а также приложения для мобильных версий Windows. Найти ElecKey в Интернете можно по адресу www.sciensoft.com/products/eleckey.

Видимо, для действительно сложных и масштабных приложений ElecKey будет удобнее, чем VMProtect, поскольку создатели этого программного продукта предлагают и собственные решения по управлению лицензиями, гораздо более гибкие, чем у VMProtect. Предусмотрены и собственный сервер активации копий приложений, и гораздо более широкие возможности в отношении поддерживаемых платформ - той же .NET, а также устаревших, но всё еще кое-где достаточно активно применяемых 16-битных версий Windows.

Если же говорить о непосредственно защите от дезассемблирования и прочего reverse engineering'а, то тут, наверное, пальма первенства всё-таки у VMProtect, потому что собственной виртуальной машины у ElecKey нет, всё ограничивается шифрованием кода. Что, в принципе, тоже неплохо, как и наличие поддержки уже упоминавшихся здесь выше USB-ключей. Если важнее не столько удобство генерации ключа и последующей активации, а именно устойчивость защиты против ухищрений взломщика, то, наверное, нет и особого смысла переплачивать за ElecKey, потому что VMProtect в таком случае станет гораздо более удачным выбором.


SoftwarePassport

Еще в не столь далёкие времена этот программный продукт был известен под именем Armadillo, им защищались многие программы, разрабатываемые не только в ex-USSR, но и в западных странах. Сегодня он называется SoftwarePassport и существует "под крылом" крупнейшего продавца программного обеспечения (во всяком случае, одного из крупнейших) - компании Digital River. Найти SoftwarePassport во Всемирной паутине можно по адресу www.siliconrealms.com.

Пожалуй, одно из наиболее бросающихся в глаза отличий SoftwarePassport от предыдущих продуктов заключается в поддержке SoftwarePassport'ом операционной системы Mac OS X. С учётом роста популярности "яблочных" компьютеров и соответствующим ростом интереса к этой платформе среди независимых разработчиков стоит иметь в виду эту особенность SoftwarePassport. Кто знает, возможно, в обозримом будущем для успеха просто необходимо будет создавать как можно быстрее тот или иной программный продукт для "Мака", и здесь никак не обойтись без качественной сторонней разработки для реализации защиты от взлома.

SoftwarePassport - это, как и первые два продукта, не просто средство защиты исполняемого файла от исследования взломщиком, а достаточно полный и комплексный продукт, позволяющий и защищать исполняемый код, и осуществлять "привязку" лицензионного ключа к аппаратному обеспечению компьютера конечного пользователя, и даже автоматически активировать продукты со сгенерированными ключами через серверы Digital River. При этом цена у SoftwarePassport более демократичная, чем у того же ElecKey, так что его можно считать некоторым промежуточным и компромиссным решением: тут и качественная система управления лицензиями, и неплохая защита от исследования кода взломщиками. Конечно, популярность и распространенность SoftwarePassport в данном случае спорный плюс, но его отлаженность и работоспособность на широком спектре систем сомнений не вызывают.

(Продолжение следует)

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

05 за 2011 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!