Hardware

Защищайтесь, сударь!

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

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

Надеждам на качественное сопровождение и хорошую поддержку не суждено было сбыться - тиражные продукты живут своей жизнью. Расползшиеся незащищенные копии живут и успешно конкурируют с новыми версиями продукта и очень сильно снижают объемы продаж. Настоящей бедой для многих производителей обернулось победное шествие эпохи Multi-media и CD-ROM. Массовый выпуск и продажа всего за 4$-8$ всевозможных пиратских сборников на CD-ROM типа "Сборник ГИС программ" или "50 лучших бухгалтерских программ" очень сильно "бьют" по организациям, разрабатывающим программное обеспечение. Кроме этого, качество пиратских продуктов зачастую намного хуже их лицензионных аналогов, что сильно сказывается на продажах остального программного обеспечения фирмы. При налаживании продаж незащищенного продукта через дилеров у многих фирм наблюдается следующая ситуация: всплеск активности дилеров и быстрое угасание интереса. При этом называют типичной такую ситуацию, когда дилер привозит в свой город новую программу и успевает продать только 2-3 экземпляра. Буквально через неделю все работоспособное население города уже имеет ее на своих компьютерах и с нетерпением ожидает "нового привоза". А у дилера на руках остается нераспроданная партия программного продукта.

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

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


Ключевые дискеты

Принцип работы - создание ключевых меток на дискетах, после чего запускаемая программа проверяет наличие этой уникальной ключевой дискеты. На практике это специальным образом отформатированные дискеты или же дискеты с прожженными в них лазерными дырочками. Главный недостаток заключается в том, что ключевая дискета легко копируется с помощью специального оборудования и может быть несовместима с различными типами дисководов. Лазерные же дырки и их разновидности тоже не являются панацеей даже при прямом программировании контроллера дисковода, поскольку уже давно разработаны программные и программно-аппаратные способы их эмуляции. Кроме того, дискеты имеют такую неприятную особенность как размагничивание и оказываются они всегда там, где секретарша обычно проливает свой утренний горячий кофе. К методам защит, принцип действия которых основан на ключевых метках, можно отнести и такие "экзотические" способы, как технология "слабых битов" (основан на записи информации на дискете с неопределенным уровнем сигнала, при считывании каждый бит случайным образом принимает дискретные значения 1 или 0, в результате при многократном считывании информация будет восприниматься различным образом, что позволит "узнать" дистрибутивную дискету) и измерение межсекторных промежутков на основе определения временных интервалов. Эти методы, помимо вышеперечисленных недостатков, имеют и массу собственных.


Использование уникальных характеристик компьютера

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


Установка пароля

Это, пожалуй, самый беспечный способ защиты, особенно практикуемый сейчас на Западе. Чаще всего он выражается в введении при инсталляции (реже при каждом запуске) программы серийного номера продукта или какого-нибудь слова из документации. На пиратских CD уже давно стало традицией к программе прилагать файл типа serial.num, в котором записан этот самый серийный номер или же файл crack.com, который автоматически подставит пароль и при этом еще пожелает вам приятной работы. Если же программа требует какое-нибудь слово из документации (обычно каждый раз новое), например: "Введите 1 слово строки 12 на странице 57", то прилагается и эта самая документация в графическом файле. Почему в графическом? Потому что обычный текст при разных параметрах страницы может не соответствовать действительному расположению строк в документации.

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

Электронный ключ - это как правило небольшое микроэлектронное устройство размером примерно со спичечный коробок. Ключ имеет два разъема, одним он подключается к параллельному или последовательному порту компьютера, другой служит для подключения принтера, модема или других устройств. При этом, как правило, ключ не влияет на работу порта и полностью "прозрачен" для подключаемых через него устройств и не мешает их нормальной работе. Ключи могут работать каскадно, то есть к одному порту может быть одновременно подключено несколько ключей, в том числе разных типов. Протокол обмена ключа с портом динамически изменяется, кодируется и "зашумляется" для защиты от эмуляции. Когда защищенная программа запускается, она проверяет наличие "своего" ключа. Если такой ключ найден, программа выполняется, иначе она выдает сообщение об ошибке и прерывает свою работу. Пользователь может свободно делать резервные копии и переносить программу с одного компьютера на другой, перенося с собой ключ, тем самым организовывая так называемые "плавающие" рабочие места. У аппаратных средств защиты нет известной проблемы дискеточной несовместимости (как и у всех связанных с этим неудобств), поскольку аппаратные электронные ключи работают, как правило, со стандартным параллельным портом Centronics.

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

В настоящее время лидерами в области электронных ключей являются следующие компании: RAINBOW Technologies, ALADDIN Knoweledge System, WIBU System, Marx Datentechnik, FAST Software Security, Software Security, EliaShim microcomputers, ProTech Marceting, MicroMacro, Glenco Engineering, АКТИВ (она известна как НОВЭКС-Софт/NOVEX Software Ltd.), Softlok International, Transcend Information.

В Республике Беларусь услуги по защите информации с помощью электронных ключей на сегодняшний день предоставляет СП "Software Security Belarus". Это предприятие является также официальным дистрибьютером в СНГ компании RAINBOW Technologies. Эта фирма очень хорошо себя зарекомендовала и надо сказать, что я пользуюсь именно ее услугами, что гарантирует мне возможность надежной защиты собственных и лицензионных программных продуктов.

Павел БЫЛЬ,
byll@saltus.belpak.minsk.by