Блог → О защите компьютерных программ от вскрытия. Часть 1

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

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



Сегодня выполнять простейшие операции несанкционированного копирования на компьютере типа IBM PC способен практически каждый. Согласитесь, что быстрое развитие этого процесса в нашей стране объясняется не только появлением приличной вычислительной техники и умением большинства пользователей работать с командой COPY, а в основном следующими факторами:
- слабостью законодательства по вопросам авторского права на программные продукты;
- наличием ставшей уже традиционной многолетней государственной политики несанкционированного копирования электронной вычислительной техники и программного обеспечения;
- невозможностью легального приобретения большинства программных продуктов из-за отсутствия конвертируемой валюты у программистов и пользователей;
- отсутствием в нашей стране "нормальных" рыночных отношений;
- желанием продемонстрировать интеллектуальные способности;
- банальным стремлением к обогащению (речь о самом меркантильном виде "пиратства").

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

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

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

Но вернемся к нашим программам. Средства защиты программного обеспечения можно разделить на такие подвиды как: юридические, административно-организационные, административно-экономические, аппаратные и программные.

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

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

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

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

Итак, методы, описанные в данной серии заметок, будут ориентированы в первую очередь на компьютеры, совместимые с IBM PC (с компьютерами Apple история немного другая). Но я надеюсь, что работа будет полезна и пользователям других компьютеров и операционных систем, отличных от DOS и Windows (прежде всего, различным вариациям Linux'а). Для всех без исключения операционных систем отметим важную особенность: при наличии привилегированного режима работы защита сильно облегчается.