20.07.2005

Лекарство от пиратства

Бухгалтер и компьютер, №7/2005, Ника Комарова

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

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

Может ли уважаемый читатель вспомнить хотя бы пару-тройку громких судебных прецедентов, где пираты были бы осуждены и приговорены к какому-либо, пусть даже административному, наказанию? Возможно, отдельные специалисты и вспомнят «дело Соболя», который создал эмулятор для «1С», однако массовые «приводы» хакеров и тем более организаторов данного криминального бизнеса в суды — это пока не про Россию, хотя определённые усилия по борьбе с пиратством в последние годы у нас всё же предпринимаются.

В результате авторы наиболее популярных, а значит, качественных, продуманных и нужных программных продуктов ежегодно теряют миллионы долларов благодаря безнаказанному несанкционированному тиражированию. На сегодняшний день треть используемых во всём мире программных продуктов составляют нелицензионные копии. Исследования компьютерного рынка показывают, что через пять лет эта цифра удвоится. По данным IDC, на 2003 год убытки от нелегального использования коммерческого программного обеспечения для ПК превысили 50 млрд долл., при этом чистый доход самих разработчиков составил 80 млрд. Объём нелегального рынка программных продуктов занимает 36% от рынка ПО в целом по миру. Согласитесь, цифры впечатляющие.

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

На сегодняшний день есть несколько способов защиты своих программных продуктов от пиратов. Подавляющее большинство создателей ПО используют различные программные модули, контролирующие доступ пользователей с помощью ключей активации, серийных номеров и т. д. Но невысокая стоимость — это, наверное, единственный плюс таких решений для борьбы со взломом программ. Интернет изобилует разного рода «крэками»1, патчами и эмуляторами, позволяющими обходить защиту и блокирующими запрос паролей или ключей активации. О серийных ключах говорить и вовсе не приходится. Легальный пользователь, купивший лицензионную программу, может просто обнародовать код, по каким-то своим личным весьма альтруистическим соображениям, и не пройдёт и пары часов, как им воспользуется не одна сотня приверженцев всего бесплатного.

Эти очевидные недостатки привели к созданию аппаратной защиты программного обеспечения в виде электронного ключа. Первый ключ для защиты ПО на персональном компьютере был создан в начале 1980-х годов и с тех пор претерпел значительные изменения. Сегодня он представляет собой компактное USB-устройство (менее 4 см в длину), позволяющее шифровать данные, используя либо публичный, либо секретный алгоритмы.

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

Публичный алгоритм, или «открытый исходник», обладает криптостойкостью несравнимо большей. Брюс Шнайер2 в своей статье «Открытые исходники и безопасность» объясняет преимущества публичных алгоритмов прежде всего тем, что они проверены не случайными людьми, а рядом экспертов, специализирующихся на анализе криптографии. «Прежде чем алгоритм будет признан надёжным, он должен быть изучен многими экспертами в течение ряда лет. И это — сильный довод в пользу криптографии с открытым кодом.

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

Публичный криптоалгоритм кардинально усложняет задачу взлома ПО, сводя её к криптоанализу и вычислению ключей шифрования методом полного перебора. Самыми известными открытыми алгоритмами на сегодняшний день являются DES, Triple DES, Blowfish, RC2, CAST и, наверное, один из самых «продвинутых» на сегодняшний день, общепризнанный американский стандарт шифрования AES (Advanced Encryption Standard), пришедший на смену двум первым.

Маленький ключ для больших дел

По данным ежегодного бюллетеня IDC, опубликованным в 2004 году, одно из ведущих мест на рынке аппаратных устройств для защиты ПО принадлежит электронным ключам HASP (Hardware Against Software Piracy) производства компании Aladdin. В том же документе утверждается, что Aladdin занимает лидирующие позиции в мире среди производителей средств защиты программного обеспечения от несанкционированного использования. Следуя актуальной тенденции перехода к публичным алгоритмам, Aladdin вывела на рынок свою новую разработку — HASP HL (High Level).

«Если у вас болит голова, то скорее всего вы не будете интересоваться тем, какие химические вещества при соединении образуют лекарство от головной боли. Вы просто выпьете таблетку „от головы". Ключ HASP — та же самая „таблетка" от головной боли для разработчиков программного обеспечения. Приобрёл, подключил — работает. Причём не единожды, как таблетка анальгина, а всё время, пока длится жизненный цикл защищаемой программы».

Примерно в таком стиле обычно беседуют представители службы техподдержки компании Aladdin с потенциальными клиентами. Когда говоришь о сложном простыми словами — тебя, как правило, понимают. А когда работаешь в бизнесе по производству защиты для ПО 10 лет — говорить сложно уже не получается.

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

Новый HASP HL является представителем пятого поколения ключей для защиты ПО, пришедшим на смену ключам HASP4. Как было сказано выше, концептуальное отличие новых ключей состоит в использовании аппаратно реализованного публичного криптоалгоритма AES с ключом шифрования 128 bit. Сколько времени потребуется для того, чтобы подобрать 128-битный ключ? Ответ на этот вопрос почти риторический. Нужно учесть мощность машины, на которой будет производиться операция по подбору ключа шифрования, прибавить аппаратную задержку обращения к ключу и начать процесс подбора, на который уйдут миллиарды лет...

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

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

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

Как строится защита на основе ключей

Процесс построения защиты можно пояснить на примере системы «1С», которая состоит из двух частей: ядра системы и lC-конфигураций, написанных на внутреннем языке «1С» (ближайший аналог — Visual Basic).

1С-конфигурации обычно разрабатываются партнёрами фирмы (имеются в виду 1С:Франчай-зи) и предназначены для решения специализированных задач («1С:Бухгалтерия», «1С:Склад», «1С:Аптека», «1С:Ресторан» и т. п.). Пользователь, купивший систему «1С», может разработать конфигурацию самостоятельно либо внести изменения в уже приобретённую, например, изменить печатную форму какого-либо документа, сделать тот или иной отчёт.

Согласно политике компании, код 1С-конфигурации должен быть открыт для пользователя, чтобы он мог вносить в неё необходимые ему изменения. Иными словами, просмотреть код конфигурации может кто угодно, открыв её с помощью, например, программы «Блокнот» из поставки Windows. Такая ситуация часто не устраивает производителей 1С-конфигураций. Ещё бы: их интеллектуальную собственность может присвоить себе фактически кто угодно и, вставив в свою программу, получить абсолютно такую же конфигурацию без каких-либо затрат.

Таким образом, продавать любую конфигурацию в открытом виде имеет смысл при соблюдении следующих условий:

  • она является уникальной для клиента, т. е. никто другой её использовать не сможет;
  • сама по себе она почти не имеет ценности, а деньги компания-производитель зарабатывает на её тиражировании и обслуживании (например, на обновлении данных для этой конфигурации).

Вывод прост: как только 1С-конфигурация становится типовым решением (коробочным продуктом) — она требует защиты. Основной проблемой при защите конфигурации является её открытость для пользователя, поскольку, как мы уже упоминали, он должен иметь возможность вносить в неё изменения. Эта проблема решается достаточно просто: конфигурация делится на две части: открытую и закрытую. В закрытую часть переносится код, являющийся интеллектуальной собственностью, а открытая часть содержит настройки и параметры, которые могут быть изменены и доработаны пользователем.

Рынок «1С» огромен — это более 5700 постоянных партнёров в более чем 570 городах России и других стран СНГ. 1С-Франчайзинг представляет собой сеть из более чем 3000 предприятий-партнёров, сертифицированных фирмой «1С» на оказание комплексных услуг по автоматизации учётной и офисной работы. Для них должны быть разработаны специализированные конфигурации, отвечающие их текущим запросам.

На этот рынок постоянно приходят новые игроки, которые нуждаются в автоматизации бизнес-процессов. Для них постоянно производятся всё новые и новые 1С-конфигурации, которые нужно защищать.

Менеджер и программист: каждому своё

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

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

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

Под занавес

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

По крайней мере, в ближайшее время в России, да и в мире, сохранится общее мнение всех любителей бесплатного ПО: «я могу пользоваться всем, что могу достать», и неважно, сколько трудов было потрачено разработчиком, каков объём понесённых им убытков и сколько людей, не заплатив ни копейки за программы, спокойно живут, не обременяя себя мыслью о том, что они по сути если не воры, то их пособники.

Возвращаясь же к медицинским ассоциациям и теме «таблеток», скажем напоследок: лучше своевременно проводить профилактику, чем потом долго и дорого лечить болезнь. А вор, как говорил Глеб Жеглов, должен сидеть в тюрьме.