Программно-аппаратные системы защиты программного обеспечения Доклад на Международной конференции аспирантов при Экономической Академии Республики Молдова (сентябрь 1999) Автор: Сергей Середа, аспирант Экономической Академии В последнее время все большую популярность среди производителей программного обеспечения (ПО) приобретают программно-аппаратные средства защиты ПО от несанкционированного доступа и копирования (НСД). Под программно-аппаратными средствами защиты, в данном случае, понимаются средства, основанные на использовании так называемых «аппаратных (электронных) ключей». Электронный ключ - это аппаратная часть системы защиты, представляющая собой плату с микросхемами памяти и, в некоторых случаях, микропроцессором, помещенную в корпус и предназначенную для установки в один из стандартных портов ПК ( COMM, LPT, PCMCIA, USB ...) или слот расширения материнской платы. Так же в качестве такого устройства могут использоваться СМАРТ-карты. По результатам проведенного анализа, программно-аппаратные средства защиты в настоящий момент являются одними из самых стойких систем защиты ПО от НСД. В данном сообщении рассматривается комплекс вопросов, связанных с классификацией программно-аппаратных средств защиты, их достоинствами и недостатками, критериями/условиями выбора данного типа средств. Электронные ключи по архитектуре можно подразделить на : ключи с памятью (без микропроцессора) и ключи с микропроцессором (и памятью). В свою очередь программные части систем защиты можно классифицировать по принципу действия на: системы, использующие сложные логические механизмы; системы, использующие шифрование защищаемого ПО; и системы, хранящие в аппаратной части последовательность выполнения кода программы. В зависимости от типов входящих в комплекс частей варьируется и стойкость систем защиты. Наименьшей стойкостью обладают системы с программной частью первого типа (вне зависимости от типа аппаратной части), так как для их преодоления достаточно проанализировать логику процедур проверки и должным образом их модифицировать. Более стойкими являются системы с программной частью второго и третьего типов и аппаратной частью первого типа. В таких системах критическая информация (ключ дешифрации, таблица переходов) хранится в памяти электронного ключа. Для дезактивации таких защит, в большинстве случаев, необходимо наличие у злоумышленника аппаратной части системы защиты (основная методика: перехват диалога между программной и аппаратной частями для доступа к критической информации). И, наконец, самыми стойкими являются системы с программной и аппаратной частью второго типа. Такие комплексы содержат в аппаратной части не только ключ дешифрации, но и блоки шифрации/дешифрации данных, таким образом при работе защиты в электронный ключ передаются блоки зашифрованной информации, а принимаются оттуда расшифрованные данные. В системах этого типа достаточно сложно перехватить ключ дешифрации, так как все процедуры выполняются аппаратной частью, но остается возможность принудительного сохранения защищенной программы в открытом виде после отработки системы защиты. Кроме того, к ним применимы методы криптоанализа. Так же, по методу установки программные части систем защиты можно подразделить на: системы, устанавливаемые на скомпилированные модули ПО; системы, встраиваемые в исходный код ПО до компиляции; и комбинированные. Системы первого типа наиболее удобны для производителя ПО, так как легко можно защитить уже полностью готовое и оттестированное ПО (обычно процесс установки защиты максимально автоматизирован и сводится к указанию имени защищаемого файла и нажатию «Enter»), а потому и наиболее популярны. В то же время стойкость этих систем достаточно низка (в зависимости от принципа действия программной части), так как для обхода защиты достаточно определить точку завершения работы «конверта» защиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде. Системы второго типа неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать API системы защиты или процедуры, его использующие. Но такие системы являются более стойкими к атакам, потому что здесь исчезает четкая граница между системой защиты и как таковым ПО. Наиболее живучими являются комбинированные системы защиты. Сохраняя достоинства и недостатки систем второго типа, они максимально затрудняют анализ и дезактивацию своих алгоритмов. (Одним из видов таких защит является защита с «ловушками», при обходе ее внешней части ПО запускается, но при этом его основные функции отключены и/или через некоторое время программа аварийно завершается.) С точки зрения производителя ПО программно-аппаратные средства защиты обладают определенными положительными и отрицательными качествами, в том числе: Положительные факторы: 1. Значительное
затруднение нелегального распространения и
использования ПО; Отрицательные факторы: 1. Затруднение
разработки и отладки ПО из-за ограничений со
стороны системы защиты (так же почти невозможно
распространение «заплаток»); С точки зрения пользователя ПО так же можно рассмотреть некоторые аспекты: Положительные стороны: 1. Защита прав
собственности на приобретенное ПО; Отрицательные факторы: 1. Снижение
отказоустойчивости ПО; Кроме того ошибки в реализации процедур защиты реализуют такие угрозы как «отказ в обслуживании» и «перегрузка трафика» (при конфликтах с сетевым ПО). Необходимо отметить, что, в то время как отрицательные стороны программно- аппаратных средств защиты явно ощущаются пользователем, их положительные стороны его практически не касаются, так как он покупает ПО, а не систему защиты. В свою очередь производители ПО рассматривают только относящиеся к ним «плюсы» и «минусы» систем защиты и практически не принимают во внимание факторы, относящиеся к конечному потребителю (есть случаи, когда легальные пользователи прибегают к услугам по «снятию» защиты ввиду вышеперечисленных неудобств). Естественно предположить, что наличие большого числа отрицательных факторов у применяемых производителем систем защиты может вызвать снижение спроса на программный продукт и постепенный переход пользователей на его аналоги от других фирм. Другим аспектом
программно-аппаратных средств защиты является
сфера их применения, она может зависеть от ряда
факторов, в том числе от: В зависимости от распространенности ПО изменяется целесообразность использования того или иного типа защиты. Например, в случаях чрезвычайно слабой распространённости ПО (узко специализированные программы), а так же очень широкой распространенности (например, ОС) в силу ряда причин целесообразно применять самые слабые (дешевые) защиты либо не применять их вообще. Строгие условия распространения (личная продажа) и использования (ограничение физического доступа к ПО) так же могут оправдывать выбор слабой системы защиты ПО. Обычно производители ПО принимают решение о применении/смене системы защиты когда объем потерь от пиратства сравняется или превысит объем затрат на разработку/приобретение новой системы защиты или какой-то определенный процент от общей прибыли. Важным фактором применимости системы защиты является ее экономическая эффективность, под которой в простейшем случае можно понимать абсолютную разницу либо соотношение потерь до и после установки системы, а так же отношение затрат на разработку/приобретение защиты к приросту прибыли. Хорошо подготовленная юридическая база для борьбы с пиратством может существенно снизить требования к стойкости системы защиты (для коммерческих продуктов). Кроме того, система защиты должна соответствовать требованиям производителя ПО, а так же его пользователя. Так же бывают случаи, когда программу очень сложно или практически невозможно освоить без фирменной документации и технической поддержки, которая предоставляется только легальным пользователям. Данные факторы необходимо учитывать, как производителям систем защиты при анализе рынков сбыта, так и производителям ПО при анализе целесообразности применения того или иного типа защиты. Проведенный анализ существующей ситуации показал, что программно-аппаратные средства защиты обеспечивают высокий уровень защиты ПО и применимы к большинству прикладного ПО для IBM-совместимых ПК настольного и напольного типов с ОС DOS, Windows и OS/2. В то же время эти системы защит слабо либо вообще не применимы к системному ПО, переносным ПК, другим ОС и платформам. |