Война с нелегальным использованием ПО идет столько же, сколько существует сам софтверный бизнес. По данным совместного исследования BSA и IDC, только в США доходы разработчиков ежегодно сокращаются почти на 29 млрд долл. Опыт показывает, что один из наиболее эффективных способов борьбы с пиратством — это защита программных продуктов от нелегального использования.

На сегодняшний день существует множество как программных, так и аппаратных средств защиты ПО и цифрового контента. В частности, компания Aladdin (http://www.aladdin.ru) представила на рынке новое, пятое поколение электронных ключей для защиты ПО — HASP HL, пришедшее на смену ключам HASP4.

Photo

Концептуальное отличие новых ключей состоит в использовании аппаратно реализованного публичного криптоалгоритма AES с ключом шифрования длиной 128 бит. Дело в том, что раньше большинство аппаратных средств защиты, включая предыдущие поколения HASP, использовали так называемые секретные алгоритмы. Эти алгоритмы разрабатывались самим производителем средств защиты, в том числе и индивидуально для каждого заказчика. Главный недостаток таких алгоритмов в том, что невозможно оценить их стойкость. С уверенностью сказать, насколько надежен алгоритм, можно было лишь постфактум. Кроме того, знание алгоритма позволяло создать программный эмулятор устройства, т. е. программу, полностью выполняющую все функции аппаратного устройства.

Использование публичного алгоритма AES с известной криптостойкостью (с 2000 г. этот алгоритм применяется как стандарт шифрования в США) кардинально усложняет задачу взлома ПО — для этого потребуется криптоанализ и вычисление ключей шифрования методом полного перебора. Сколько времени нужно для того, чтобы подобрать 128-разрядный ключ? С учетом мощности компьютера, на котором будет подбираться ключ шифрования, и аппаратной задержки обращения к ключу можно подсчитать, что на процесс подбора уйдут миллиарды лет…

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

Защита с помощью HASP HL организуется поэтапно. На первом этапе разработчики встраивают в код защищаемого ПО обращения к ключу либо (с помощью утилиты автоматической защиты HASP Envelope) обрабатывают уже существующий исполняемый код. На втором этапе менеджеры, независимо от разработчиков, определяют политику лицензирования продукта. С помощью автоматической системы лицензирования они могут устанавливать ограничения для каждого модуля или функции защищенной программы по таким параметрам, как число запусков, время использования, число одновременно работающих пользователей в сети и т. п.

Поясним это на примере. Предположим, разработчики создали и защитили с помощью HASP HL приложение, состоящее из трех модулей — А, Б и С. Менеджерам необходимо сформировать «базовую» версию, которая включала бы модуль А без ограничений, модуль Б с ограничением на число запусков и не включала бы модуль С. Не внося никаких изменений в исходный код приложения, с помощью графического интерфейса менеджер может выбрать, из каких именно модулей будет состоять данная версия продукта, и установить ограничения для каждого модуля. Таким образом, менеджеры не зависят в этом вопросе от разработчиков, у них появляется возможность оперативно реагировать на колебания рынка и менять модели продаж, не внося никаких изменений в защиту.

Все изменения в политике лицензирования распространяемого ПО можно проводить удаленно, например, через Интернет. Для этого достаточно лишь обновить память ключа HASP HL. Все обновления памяти подписываются с помощью цифровой подписи (RSA/1024), что исключает возможность внесения несанкционированных изменений.

Еще одно преимущество пятого поколения ключей — наличие единого API, благодаря чему не требуется создавать защиту для локальной и сетевой версий по отдельности. Фактически сетевые ключи могут работать как локальные, и наоборот. Кроме того, встроенный генератор исходных кодов значительно упростит внедрение API HASP HL в исходные коды защищаемого приложения.

В HASP HL реализована полная обратная совместимость с ключами HASP4 и HASP3. Иными словами, программы, защищенные с помощью HASP4 или HASP3, будут работать с ключами HASP HL, не требуя изменений. Для разработчиков, использующих в качестве средства защиты приложений предыдущие модели ключей HASP, разработана специальная программа миграции на HASP HL.

Стоит отметить, что размеры нового ключа по сравнению с HASP4 уменьшены в полтора раза (его длина составляет 38 мм), что увеличивает прочность USB-устройства. На сегодняшний день HASP HL — самый компактный на рынке ключ, при этом объем его памяти вырос на порядок и теперь составляет 4096 байт.

Как и предыдущие версии, HASP HL представляет собой кроссплатформное устройство, но, в отличие от старых, поддерживает автоматическую установку драйверов Windows Update, что гораздо удобнее для работы пользователей защищенного ПО и снижает нагрузку на службу технической поддержки разработчиков. Чтобы разработчикам было проще использовать ключи HASP HL, предусмотрен «Комплект разработчика», в который входит полное описание возможностей HASP HL, весь набор ПО и утилит для написания защиты, а также демонстрационный ключ требуемой модели.