Организация защиты на основе SecurityKey
Конструкция ключа SecurityKey а также комплект разработчика позволяет в кратчайшие сроки защитить Ваш программный продукт. Процесс защиты можно разделить на 4 основных этапа:
- Поиск фрагмента алгоритма для скрытия. Из исходного кода программного продукта выделяется один или несколько логически законченных фрагментов. Эта функциональность оформляется в виде процедур-функций с параметрами. Функции должны соответствовать стандарту ANSI C и удовлетворять требованиям:
- Суммарный размер параметров функции не должен превышать 4088 байт. Это связано с ограничением буфера обмена, т.е. объем данных, которых можно единовременно послать в ключ
- Функция не должна использовать процедуры библиотек сторонних производителей. Допускается использование библиотеки RTL (run-time library), например как math.h, stdio.h и т.д.
- Максимальный размер данных функции (локальные переменные, массивы и т.д.) не должен превышать объем памяти ОЗУ: 16/32/64 кбайт в соответствии с характеристиками модели.
- Организация интерфейса обмена данных с USB-ключом. Набор инструкций для работы с драйвером устройства: поиск необходимого ключа, открытие/закрытие, обмен данными.
- Создание машинного кода. Идеология защиты, построенной с использованием ключа SecurityKey предполагает, что часть кода программного обеспечения, которая не будет попадать в память компьютера, должна быть представлена в машинном коде, понятном внутреннему процессору ключа. Для создания загружаемого в ключ файла, содержащего этот код, используется среда разработки «IAR Embedded Workbench» для процессорного ядра ARM.
- Прошивка ключа. Под «прошивкой ключа» понимается запись машинного кода защищаемого алгоритма во флэш-память USB-ключа. В состав комплекта разработчика входит программное приложение SecureControl, которое позволяет:
- быстро и удобно осуществлять загрузку машинного кода в USB-ключи
- устанавливать при необходимости защиту требуемого уровня надежности от стирания или дальнейшей перезаписи содержимого памяти ключей
- организовывать работу с временными лицензиями – для ограничения времени использования защищенного программного продукта
|