Проект Guardant взял очередной рубеж

Российский разработчик средств аутентификации и защиты программного обеспечения от пиратства компания «Актив» выпустила новую версию электронного USB-ключа Guardant Stealth III и комплект разработчика к нему. Их функциональность по сравнению с предшественниками существенно расширена: увеличена энергонезависимая память, что позволяет встраивать в ключ большой объем заказного кода, добавлена масса возможностей в базовую технологию Stealth.

Самый значительный компонент обновленного Guardant SDK — новая утилита автоматической защиты Guardant Stealth III, предназначенная для защиты программного обеспечения «одним кликом». По словам представителей «Актива», стойкость ко взлому новой технологии весьма высока, и теперь для большинства проектов ее не нужно как раньше комбинировать с другими методами — применение одной только автоматической защиты оправданно.

Псевдокод и защита ядра

ПО Guardant содержит полностью переработанное ядро: Guardant API 5.0, новый драйвер Guardant, новый защищенный протокол обмена с контролем целостности АРI и драйвера. Часть кода защищена при помощи так называемого «псевдокода» — технологии защиты исполняемых файлов от изучения логики их работы. Эта технология была специально придумана для защиты от статического и динамического анализа кода, необходимого для взлома программного обеспечения.

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

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

Стандартные интерфейсы — API и драйвер

Guardant API 5.0 кардинально отличается от предыдущих версий. Большинство функций теперь взаимодействует с рабочим контекстом Guardant API через так называемый защищенный контейнер. Его применение, как утверждают разработчики, упрощает обмен, уменьшает число вызовов функций, сокращает время работы, надежно хранит коды доступа к ключу и предоставляет возможность поддержки многопоточности. В основе нового механизма лежит специальный способ организации памяти ключа, позволяющий адресоваться к данным как к файлам. Чтение и обновление ячеек, их активация-деактивация защищены паролями. Помимо парольной защиты на ячейки может быть установлен запрет на чтение-запись.

Кодирование-декодирование внешних данных внутри электронного ключа закрыто устойчивым к криптоанализу симметричным алгоритмом GSII64. Его последняя редакция в новых Guardant дополнена поддержкой активации-деактивации алгоритмов по уникальным паролям, лежащей в основе безопасного распространения программного обеспечения с ограниченной функциональностью.

При вызове функций Guardant API 5.0 защищенное приложение автоматически проверяет подпись драйвера Guardant (для шифрования подписи используется асимметричный криптоалгоритм). Эта мера направлена против программных эмуляторов электронного ключа: поскольку закрытый ключ не известен взломщику, он не сможет создать драйвер-эмулятор с правильной подписью.

Чтобы сделать протокол взаимодействия защищенного приложения с электронным ключом устойчивым ко взлому, переработан протокол обмена между драйверами и API Guardant, что позволило нейтрализовать привычные хакерские инструменты и наработки (старые эмуляторы, логгеры и мониторы просто перестанут работать).

Программирование ключей

Существенные изменения коснулись технологии программирования ключей. Появилась новая технология дистанционного программирования Trusted Remote Update, реализованная аппаратно. Теперь каждый электронный ключ Guardant Stealth III поставляется с уникальным для каждого конкретного клиента или программного продукта ключом шифрования, который не может быть считан внешними средствами.

Обмен данными при дистанционном апдейте памяти электронного ключа шифруется по алгоритму GSII64. Процедуры расшифровки и обработки этих данных, а также проверки их целостности выполняются только внутри электронного ключа и недоступны для внешнего считывания. Модули, выполняющие все эти процедуры, подписаны ЭЦП.

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

Утилита программирования ключей NskUtil поддерживает новые функции и технологии, реализованные в электронных ключах Stealth III. Появилась возможность организовать базу данных обо всех поставленных электронных ключах, вести полную статистику (ID, какие данные и пароли записаны, кому и когда был продан). Можно также программировать пароли на дистанционное обновление алгоритмов и ячеек, при этом каждый пароль используется один раз. При поставке ключей партиями от 200 шт. компания может делать для ключей крышки по спецзаказу.