AppOnChip – исполнение кода внутри аппаратного ключа защиты

Технология AppOnChip является частью функционала утилиты автоматической защиты Sentinel LDK Envelope. AppOnChip позволяет значительно повысить уровень защиты приложений при помощи аппаратных ключей нового поколения Sentinel HL (в конфигурации Driverless ).

Процесс защиты с помощью AppOnChip полностью автоматизирован, и нет никакой необходимости каким-либо специальным образом адаптировать код приложения.

В настоящее время поддерживаются следующие приложения:

  • Приложения Win-32, содержащие неуправляемый код (.Net не поддерживается)
  • EXE и DLL файлы

В момент установки защиты AppOnChip запускает модуль трансформации кода для анализа структуры приложения. Также для определения границ содержащихся в коде функций требуется map-файл, генерируемый при сборке  приложения. AppOnChip определяет, какие из найденных функций могут быть исполнены виртуальной машиной внутри ключа Sentinel HL. Подходящие функции отображаются на закладке  AppOnChip в интерфейсе утилиты Sentinel LDK Envelope. В списке доступных функций необходимо просто отметить те из них, которые должны быть защищены при помощи AppOnChip.

исполнение кода в ключе защиты

В процессе защиты Envelope при помощи AppOnChip автоматически вырезает код отмеченных функций и помещает их в отдельный защищенный контейнер, который подписывается уникальным для каждого разработчика ключом. Изъятый код при этом замещается модулем защищенной передачи управления.

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

В результате такого подхода выбранные функции надёжно защищены и не могут быть подвергнуты дизассемблированию либо анализу кода.

Основные преимущества технологии защиты приложений с помощью AppOnChip:

·         Усиление защиты. AppOnChip заставляет небольшую часть кода приложения исполняться на аппаратном ключе, и результат исполнения является необходимым для продолжения работы всего приложения. Соответственно, приложение не сможет работать без аппаратного ключа. Разработчики могут выбирать, какие конкретно части кода должны быть защищены, с помощью удобного в использовании графического интерфейса.

·         Легкость внедрения. Процессы привязки приложения к аппаратному ключу, анализ того, какие части кода могут быть исполнены на ключе, и конвертация кода для исполнения на ключе абсолютно автоматизированы. От разработчиков не требуется никаких дополнительных усилий.

·         Защищенный код не хранится на ключе. В отличие от конкурирующих решений, весь код остается на жестком диске компьютера с  защищенным приложением. Только в момент исполнения небольшая часть кода выполняется на ключе. Память ключа не затрагивается.

·         Не нарушаются внутренние процессы. Разработчику не требуется следить за версиями обновлений защищённого приложения либо обновлять код внутри ключа у существующих пользователей.