Системы защиты программного обеспечения (СЗПО) могут отличаться по разным признакам, например по методу установки, используемым механизмам защиты и принципу функционирования. 4
По методу установки выделяют следующие типы СЗПО: 4
- Устанавливаемые на скомпилированные модули ПО. 4 Такие системы популярны, так как производитель легко может защитить уже готовый программный продукт. 4 Однако стойкость этих систем невелика. 4
- Встраиваемые в исходный код ПО до компиляции. 4 Такие системы неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом СЗ. 4 Однако они более стойки к атакам, поскольку здесь исчезает чёткая граница между СЗ и ПО как таковым. 4
- Комбинированные. 14 Включают в себя механизмы защиты как систем, устанавливаемых на скомпилированные модули ПО, так и систем, встраиваемых в исходный код ПО до компиляции. 4 Они максимально затрудняют анализ и дезактивацию своих защитных модулей. 4
По используемым методам СЗПО могут быть, например:
- Использующие сложные логические преобразования. 4 Применяют различные методы и приёмы, ориентированные на затруднение изучения программного кода алгоритмов СЗ и защищаемого ПО. 4 Этот тип СЗ наименее стоек к атакам, так как для преодоления защиты достаточно проанализировать логику процедур проверки и должным образом их модифицировать. 4
- Использующие криптографические алгоритмы. 4 Для дезактивации защиты таких систем необходимо определение ключа дешифрации ПО. 4 Однако выполнить данную задачу не всегда возможно. 4
По методу реализации СЗПО могут быть, например:
- Программные. 1 Реализуются с использованием только программных средств. 1
- Аппаратные. 1 Используют специальное оборудование (электронные ключи) или физические особенности носителей информации. 1
Также выделяют офлайн-программную, онлайн-программную и аппаратную защиту ПО. 5
Кроме того, есть интегрированные системы защиты и отдельные средства защиты. 2 Первые включают несколько различных средств защиты, работающих совместно, вторые — узкоспециализированные средства, решающие конкретные задачи. 2