Упаковщики/шифраторызащищают ПС от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются: алгоритмы компрессии данных; приемы, связанные с использованием недокументированных особенностей операционных систем (ОС) и процессоров; шифрование данных, алгоритмы мутации, запутывание логики программы и др. Этот вид защиты замедляет выполнение ПС, затрудняет обновление и исправление ошибок в ПС.
Защита от несанкционированного копирования обеспечивает «привязку» ПС к дистрибутивному носителю (гибкий диск, CD...). Данный тип защиты основан на глубоком изучении работы контроллеров-накопителей, их физических показателей, нестандартных режимах разбивки, чтения/записи и т.п. При этом на физическом уровне создается дистрибутивный носитель, обладающий (предположительно) неповторимыми свойствами (обычно это достигается при помощи нестандартной разметки носителя информации или/и записи на него дополнительной информации – пароля или метки), а на программном – создается модуль, настроенный на идентификацию и аутентификацию носителя по его уникальным свойствам. При этом возможно применение приемов, используемых упаковщиками/шифраторами.
Защита от несанкционированного доступа (НСД) обеспечивает предварительную или периодическую аутентификацию пользователя ПС путем запроса дополнительной информации. К этому типу СЗ можно отнести системы парольной защиты ПС, системы «привязки» ПС к компьютеру пользователя, системы с «ключевыми дисками» и аппаратно-программные системы с электронными ключами. В первом случае «ключевую» информацию вводит пользователь, во втором – она содержится в уникальных параметрах компьютерной системы пользователя, в третьем – хранится на диске, а в четвертом случае «ключевая» информация считывается с микросхем электронного ключа.
Парольная защитаявляется самой распространенной СЗ ПС. Основной принцип работы данных систем заключается в идентификации и аутентификации пользователя ПС путем запроса дополнительных данных в различных ситуациях (например, при старте программы, по истечении срока бесплатного использования ПС, при вызове процедуры регистрации либо в процессе установки на ПК пользователя). Существуют также системы, шифрующие защищаемое ПС и использующие пароль или производную от него величину как ключ дешифрации. Недостатком парольных защит является блок проверки правильности введенного пароля. Для этого можно сравнивать введенный пароль с записанным в коде ПС правильным либо с правильно сгенерированным из введенных дополнительных данных паролем. Возможно и сравнение производных величин от введенного и правильного паролей, например их ХЭШ-функций; в таком случае в коде можно сохранять только производную величину, что повышает стойкость защиты. Путем анализа процедур проверки можно найти реальный пароль, записанный в коде ПС, правильно сгенерированный пароль из введенных данных либо создать программу для перебора паролей для определения пароля с нужной ХЭШ-суммой. Для всех парольных систем существует угроза перехвата пароля при его вводе авторизованным пользователем. Кроме того, в большинстве СЗ ПС данного типа процедура проверки используется лишь единожды, обычно при регистрации или установке ПС; затем система защиты просто отключается, что создает реальную угрозу для НСД при незаконном копировании ПС.
Системы «привязки» ПС к компьютерупользователя осуществляют поиск уникальных признаков компьютерной системы либо сами устанавливают систему защиты. После этого модуль защиты ПС настраивается на поиск и идентификацию признаков, по которым в дальнейшем определяется авторизованное или неавторизованное использование ПС (оценки скоростных и иных показателей процессора, материнской платы, дополнительных устройств, ОС, чтение/запись в микросхемы энергонезависимой памяти, запись скрытых файлов, настройка на наиболее часто встречаемую карту использования ОЗУ и т.п.).
Программно-аппаратные СЗ ПС с электронными ключами, основанные на использовании так называемых «аппаратных (электронных) ключей». Электронный ключ – это аппаратная часть системы защиты, представляющая собой плату с микросхемами памяти, а в некоторых случаях с микропроцессором, помещенную в корпус и предназначенную для установки в один из стандартных портов ПК или слот расширения материнской платы. В качестве такого устройства могут использоваться СМАРТ-карты. Электронные ключи по архитектуре можно подразделить на ключи с памятью (без микропроцессора) и ключи с микропроцессором (и памятью). Наименее стойкими (в зависимости от типа программной части) являются системы с аппаратной частью первого типа. В таких системах критическая информация (ключ дешифрации, таблица переходов) хранится в памяти электронного ключа. Для дезактивации таких защит в большинстве случаев необходимо наличие у злоумышленника аппаратной части системы защиты (основная методика: перехват диалога между программной и аппаратной частями для доступа к критической информации). Самыми стойкими являются системы с аппаратной частью второго типа. Такие комплексы содержат в аппаратной части не только ключ дешифрации, но и блоки шифрации/дешифрации данных. Таким образом, при срабатывании защиты в электронный ключ передаются блоки зашифрованной информации, а принимаются расшифрованные данные. В системах этого типа достаточно сложно перехватить ключ дешифрации, так как все процедуры выполняются аппаратной частью, но остается возможность принудительного сохранения защищенной программы в открытом виде после отработки системы защиты. Кроме того, к ним применимы методы криптоанализа.
СЗ ПС с «ключевыми дисками»во многом аналогичны системам с электронными ключами, но здесь критическая информация хранится на специальном («ключевом») носителе. Так же много общего и с системами защиты от копирования, поскольку используются те же методы работы с «ключевым» носителем.