ПРОЕКТЫ: neoGuard - система защиты от взлома на основе виртуальной машины |
Описание
Виртуальная машина позволяет выполнять часть кода защищенной программы в нестандартной системе команд, что дает очень высокую степень защиты от дизассемблирования и отладки. Стандартные средства будут бесполезны, и взломщику необходимо будет разрабатывать свои дизассемблер и декомпилятор. Виртуальная машина позволит максимально соединить защиту и программный код. Cистема контроля целостности скрипта не позволит изменять отдельные коды, так как любое, самое маленькое изменение влечет изменения в систему расшифрования больших блоков кода. Применять виртуальную машину следует в сочетании с сетевым менеджером лицензий или при написании системы защиты с использованием локальных электронных ключей. Код защиты выполняется индивидуально под каждого заказчика, что гарантирует отсутствие у взломщика готовых средств взлома. На основе виртуальной машины можно надежно защищать секретные алгоритмы работы программы, распространение которых было бы нежелательным.

Основные возможности и свойства
- анти-отладочный и анти-дизассеблерный код ядра виртуальной машины;
- анти-отладочный, анти-дизассемблерный, перемешанный, шифрованный код исполняемых скриптов;
- собственная, недокументированная система команд исполняемого скрипта с предопределенными для каждого клиента кодами инструкций;
- уникальная система защиты от исправления кода скрипта;
- легкость сопряжения с внешними процедурами;
- большой набор встроенных возможностей позволят выполнять любые задачи в защищенном режиме.
Мы можем предложить несколько вариантов исполнения защиты от НСК на основе виртуального процессора neoGuard.
Защита с использованием стандартных электронных ключей
Электронный ключ является наиболее популярным и эффективным средством защиты от несанкционированного копирования на сегодняшний день. К сожалению, неумелое использование возможностей электронных ключей часто приводит к ненадежности защиты с их использованием. Другая причина частого взлома программ защищенных с использованием электронных ключей, эмуляторы электронных ключей.
Наша компания предлагает разработать новую или доработать имеющуюся систему защиты с использованием электронных ключей. Защита с использованием neoGuard позволит с очень высокой степенью надежности оградить программный продукт от взлома.
В технологии защиты на электронном ключе использованы следующие решения:
- Защита от эмуляторов поможет избежать взлома путем программного копирования электронного ключа;
- Кодирование памяти с использованием алгоритма шифрования с открытым ключом не позволит злоумышленнику изменить данные ключа, и приведет к однозначной идентификации пользователя, предоставившего аппаратный ключ для взлома и исключить его поддержку в следующих версиях программы;
- Защитные технологии neoGuard не позволят изучить протокол работы с электронным ключом или произвести корректировку кода защиты.
Защита с использованием серийного номера
Защита с использованием серийного номера особенно эффективна для защиты программ, продающихся через Интернет. Эффективность такой защиты и ее стойкость к взлому существенно ниже систем с использованием электронных ключей, но использование neoGuard способно вывести такую защиту на качественно новый уровень.
В качестве привязки лицензии может использоваться как данные о компьютера, такие как физический номер винчестера, контрольная сумма BIOSа, так и имя владельца или данные операционной системы. В первом случае идентификатор является некопируемым, во втором - копируемым. Каждый из вариантов обладает своими достоинствами и недостатками.
При защите серийным номером ЗАО "Секьюлэб" реализует следующие решения:
- Кодирование серийного номера с использованием алгоритма шифрования с открытым ключом не позволит злоумышленникам создавать лицензии и исключать опубликованные лицензии, использующие копируемый идентификатор из следующих версий программы;
- Защитные технологии neoGuard надежно защитят протокол получения некопируемого идентификатора, что сделает защиту похожей на защиту с использованием электронных ключей.
Защита с использованием сетевого менеджера лицензий
Защита с использованием сетевого менеджера лицензий служит для того, чтобы отвечать за лицензирование большого количества рабочих станций подключенных к одной сети, а также авторизовать отдельные модули программы. Менеджер лицензий позволяет одновременно авторизовать работу большого числа компьютеров, не требуя от рабочих мест наличия защитного идентификатора. Защитный идентификатор требуется только на сервере защиты. В качестве защитного идентификатора может использоваться электронный ключ или данные компьютера, такие как физический номер винчестера или контрольная сумма BIOS'а.
Сетевой менеджер лицензий, реализованный с использованием neoGuard, обладает следующими возможностями:
- Использование алгоритма шифрования с открытым ключом не позволит злоумышленникам создавать лицензии;
- Интеграция кода программы в модуль защиты и использование всех возможностей электронного ключа менеджером лицензий максимально усложнит взлом;
- Защитные механизмы neoGuard не позволят злоумышленникам произвести взлом путем корректировки кода менеджера лицензий, а также изучить протокол взаимодействия клиентской части программы и менеджера лицензий;
- Удаленное выполнение части кода программы не позволят осуществить взлом клиентского приложения.
Технические характеристики виртуальной машины neoGuard
- реализация алгоритмов шифрования и цифровой подписи RSA/DES/AES/RC5/RC6/MD5/SHA-1/GOST;
- реализация на языке виртуальной машины neoGuard алгоритмов разработчика;
- возможность работы с внешними функциями и WinAPI;
- подключение к любому компилятору Win32 и Unix x86, поддерживающему работу с DLL или объектными файлами формата COFF / OMF;
- максимально эффективное и надежное использование совместно с электронными ключами CodeShelter и SenseLock или токеном trueToken;
- работа с любыми электронными ключами компаний Aladdin Knowledge Systems, Rainbow Technologies, Marx, Wibu, в частности HASP HL, Sentinel SuperPRO;
- использование токенов компаний Aladdin Knowledge Systems, Rainbow Technologies, в частности eToken, iKey;
- работа с любой операционной системой, поддерживающей 32х разрядную адресацию;
- работа с любым 32х битным процессором семейства x86, рекомендуется Pentium 100 и выше;
- возможность использования в драйверах Windows 95/98/ME/NT/2000/XP/2003.