Guardant Sign
Во-первых, туннельное шифрование трафика обмена напрямую между защищенным приложением и электронным ключом, что позволяет «отсечь» любые снифферы, логгеры, эмуляторы и т. п., которые ранее могли анализировать и эмулировать эти протоколы обмена.
Во-вторых, шифрование на основе эллиптических кривых с длиной ключа 160 бит (ECC160). Впервые эти алгоритмы были реализованы около 3 лет назад в заказных ключах. Теперь, после проверки временем, эта возможность доступна и в серийной продукции.
В-третьих, скорость обмена между защищенным приложением и электронным ключом быстрее в среднем в 10 раз, а для больших объемов этот показатель еще выше!
Среди прочих возможностей и отличий от электронных ключей предыдущего поколения стоит выделить следующие:
- Симметричный алгоритм шифрования AES-128;
- Современный алгоритм хэширования SHA-256;
- Для совместимости сохранены появившиеся еще в Guardant Stealth II алгоритмы GSII64 и HASH64;
- Размер EEPROM-памяти увеличен до 4 Кбайт, быстродействие ее работы — в 100 раз;
- Теперь не обязательно устанавливать драйверы для работы с электронными ключами, потому что Guardant Sign может работать в HID-режиме. При этом скорость обмена аналогична режиму работы через наш драйвер;
- Кроме MS Windows поддерживаются ОС Linux, Wine, Windows CE;
- Встроен необходимый для ассиметричных алгоритмов датчик случайных чисел (ДСЧ) с очень высокой энтропией.
Guardant Time
Ранее мы не производили серийных электронных ключей со встроенным модулем RTC (Real Time Clock Module, часы реального времени). Такую возможность могли иметь только заказные ключи.
Причиной тому были высокая стоимость, более дешевые технические альтернативы и уязвимость технических решений по реализации. В заказных ключах все можно сделать более гибко, и модуль RTC, в некоторых случаях, мог иметь смысл.
Guardant Time — новый серийный электронный ключ, который имеет все возможности Guardant Sign, но дополнительно в него встроен модуль RTC. Функциональный потенциал Guardant Time позволяет существенно расширить спектр доступных механизмов лицензирования и схем распространения программного обеспечения. Вот список новых возможностей:
- DeadTime Классический механизм ограничения работы алгоритмов заданным временем, что позволяет распространять программное обеспечение по лицензиям, ограниченным определенным сроком действия;
- LifeTime Возможен не только традиционный способ ограничения времени (задание конечной даты работы), но и новый, не имеющий аналогов способ. Можно задать не дату, а срок работы алгоритма (срок действия лицензии), который отсчитывается с момента первого обращения к алгоритму, т. е. от момента первого запуска защищенной программы;
- BirthTime Так же не имеющая аналогов возможность создавать алгоритмы, которые начнут работать в будущем, что даже при взломе защиты спустя заданное время автоматически активирует ее снова!
- FlipTime Еще один сложный, но очень эффективный способ защиты — возможность задать периодичность автоматической смены ключей шифрования алгоритмов внутри электронного ключа;
Модуль RTC защищен от возможных аппаратных атак на него дополнительными и не имеющими аналогов средствами, что делает защищенность этого ключа на порядок выше. Увы, но до сих производители ключей умалчивали, что такие атаки очень просты в реализации, а значит схемы защиты на основе Time-ключей имеют очень слабую взломостойкость. Теперь есть электронный ключ, который лишен этого недостатка и которому можно доверять!
Guardant Sign Net и Guardant Time Net
Все возможности электронных ключей Guardant Sign и Guardant Time теперь доступны и в сетевой версии.
При этом туннелирование по-прежнему идет напрямую между приложением и электронным ключом! Т. е. даже в сети информация передается в том же самом туннеле — шифруется на сеансовых ключах, выработанных между защищенным приложением и электронным ключом без каких-либо посредников.
А быстродействие работы с сетевыми электронным ключами на основе Sign и Time выросло в несколько раз!
Дополнительно в Guardant API теперь есть функции расширенной сетевой диагностики, что позволит более точно определять причины проблем и даже автоматически их решать.
Guardant Code
Guardant Code — это новое поколение заказных электронных ключей, которые мы производим с 1996 года.
Однако теперь можно самостоятельно, без нашей помощи, размещать любые программы в этом ключе. От своей первой версии он отличается не только более современной платформой, значительными ресурсами и большим быстродействием, но и наличием множества современных механизмов защиты.
Guardant Code сделан на основе платформы Guardant Sign и обладает всеми его преимуществами. Он также имеет модификацию со встроенным RTC-модулем: Guardant Code Time. Основные особенности дополнительно к возможностям Guardant Sign и Time:
- Загружаемая программа работает на высокопроизводительном 32-битном RISC-процессоре на основе архитектуры АРМ7 на частоте его ядра. Производительность — 60 MIPS (миллионов 32-битных команд) в секунду;
- Загруженные программы и среда, в которой они выполняются (наша микропрограмма), аппаратно защищены от взлома;
- Микропрограмма внутри Guardant Code защищена от чтения, изменения или случайного повреждения через загружаемый код, что гарантирует не только устойчивую работу электронных ключей в любой ситуации, но и отсутствие возможности анализировать «чужой код» в надежде найти в нем уязвимость;
- Загружаемый код также защищен от «зависаний» вследствие какой-то ошибки в нем;
- Объем памяти для загружаемой программы — до 128 Кбайт, т. е. порядка 16000 строк на Си. По заказу объем памяти может быть увеличен до 384 Кбайт (около 50000 строк на Си);
- Размер ОЗУ для данных загружаемой программы — до 20 Кбайт;
- Скорость передачи данных по зашифрованному на сеансовых ключах каналу около 16 Кбайт в секунду, время отклика около 25 милисекунд;
- Скорость передачи данных по незашифрованному каналу до 500 Кбайт в секунду, время отклика 2-3 милисекунды;
- Высокая скорость математических операций: сложение float 0.8 мкс, double 1,3 мкс;
- Совместимость форматов плавающих чисел с форматом х86. Исключение только для компилятора GCC, но и тут только числа типа double имеют другой формат;
- Безопасное обновление загруженного кода у конечного пользователя с применением цифровой подписи и шифрования на одноразовых ключах;
- Доступность всех криптографических криптопримитивов из загружаемого кода: AES-128, SHA-256, ECC-160, ДСЧ;
- Доступность функций Guardant API из загруженного кода.
В заключение отмечу следующее. В качестве средства разработки загружаемого кода можно использовать как бесплатный (но эффективный!) компилятор GCC, так и любые коммерческие версии, например RealView. Основные языки программирования — С и С++. Но для АРМ7 есть трансляторы и для других языков программирования — можно использовать любой!