Пас, вист, ГОСТ!

Пас, вист, ГОСТ!
Вот этот уже прошлогодний  пост  Евгения Шауро со сравнением различных токенов напомнил мне, что давно хотел более пристально приглядеться к современным ГОСТовым токенам. Хорошо помню, что в своё время эта тема была очень модной и неизменно вызывала интерес у самой разной аудитории.
name='more'>
Небольшое отступление для тех, кто не очень знаком с предметом. USB-токен (он же просто токен, он же электронный ключ, он же брелок, он же USB-ключ) - это устройство, объединяющее в себе USB-контроллер и чип смарт-карты (микроконтроллер). Вся прелесть токена на основе смарт-карты заключается в том, что он целый ряд криптографических вычислений производит, что называется, "на борту". Данный функционал используется для надёжной аутентификации пользователей в самых различных системах (подробнее можно почитать, например,  здесь ) и особенно важен при использовании ЭЦП (электронной цифровой подписи), так как позволяет генерировать и использовать закрытые ключи, которые никогда не покидают защищённую память устройства. Данные, которые необходимо подписать, просто передаются внутрь токена, а тот сообщает лишь конечный результат, т.е. значение ЭЦП. Таким образом, закрытый ключ, используемый, например, для того же дистанционного банковского обслуживания, гарантировано не попадёт к злоумышленникам.

До недавнего времени все предлагаемые на российском рынке токены могли работать только с западными стандартами ЭЦП, а поддержка российской ГОСТовой криптографии сводилась к хранению контейнера с закрытым ключом в памяти устройства, защищённой PIN-кодом. При этом для выполнения операций с закрытым ключом контейнер копировался в память компьютера со всеми вытекающими из этого опасностями его утечки.

Первые токены с поддержкой ГОСТ работали только с ГОСТ 28147-89, т.е. могли шифровать данные симметричным алгоритмом, но ЭЦП (ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-94) не поддерживали.

Именно такой токен в далёком 2001 году разработали  ЗАО "Аладдин Р.Д." и НТЦ "Атлас". Называлось изделие eToken RIC (Russian Intellectual Card), но, насколько мне известно, продажи его как-то не заладились и после 2003 года об устройстве ничего и слышно даже не было .



У извечного конкурента ЗАО "Аладдин Р.Д." - компании ЗАО "Актив-софт" (при партнёрстве с ООО "Анкад") - устройство, представленное примерно в то же время , получилось более удачным: Rutoken продаётся и по сей день.
Первым токеном с поддержкой российского алгоритма ЭЦП стала ШИПКА-1.5 от ЗАО "ОКБ САПР". Самое раннее упоминание ШИПКИ  датируется сентябрём 2005 года . Этот год, наверное, и можно считать датой рождения нового устройства.

В последующие несколько лет ШИПКА оставалась единственным предложением на этом рынке, но никакого взрывного роста продаж, насколько можно судить об этом по отсутствию публикаций историй внедрения, не произошло: то ли отсутствие сертификации в ФСБ помешало, то ли что-то иное. Домысливать не буду, а то некоторые обижаются и вместо конструктива на личности переходят =)

Ситуация изменилась в 2008 году ( более ранних упоминаний не обнаружил) с выпуском ООО "БИФИТ" ключа  iBank 2 Key . По сообщениям в пресс-релизах данное устройство имело сертификат ФСБ, что положительно отличало его от остальных конкурентов. На самом деле, ситуация с сертификацией тут не однозначна, т.к. текущий сертификат (подробнее о сертификатах ниже) датируется только 08 июля 2010 года.

Появление нового игрока явно подстегнуло других участников и конкуренты БИФИТа начали/усилили активную рекламную компанию своих аналогичных разработок: eToken ГОСТ у ЗАО "Аладдин Р.Д." и Rutoken ЭЦП у ЗАО "Актив-софт". Примечательно, что оба продукта получили сертификаты ФСБ хоть и несколько лет спустя, но в один и тот же день - 11 мая 2011 г.

Таким образом, сегодня на рынке доступны четыре различных сертифицированных ФСБ токена с поддержкой российских криптографических алгоритмов, используемых для ЭЦП.

eToken ГОСТ
iBank 2 Key
Rutoken ЭЦП
ШИПКА-1.6

Беглый взгляд показывает, что сертификат сертификату рознь. Так, например, изделия ШИПКА и Rutoken сертифицированы целиком как СКЗИ и имеют самые широкие (по сравнению с остальными) разрешённые области применения, а вот в случае с eToken сертификат выдан на некий "Криптотокен", входящий в состав изделия. Если я правильно помню архитектуру, то этот "Криптотокен" - суть java-апплет, выполняемый на встроенной в eToken виртуальной Java-машине. При этом, в отличие от ШИПКи и Rutoken, для eToken в сертификате не прописан следующий функционал: управление ключевой информацией, шифрование данных, вычисление имитовставки для данных, содержащихся в областях оперативной памяти СКЗИ.

Ситуация с iBank 2 Key самая запутанная, т.к. сертифицировано программное средство криптографической защиты "Криптомодуль С23", предназначенное для встраивания в операционные системы интеллектуальных карт, построенных на базе микроконтроллеров семейств ST23. Область же применения вообще прописана так:может использоваться в качестве криптографического ядра для реализации функций формирования и проверки электронной цифровой подписи, шифрования информации, не содержащей сведений, составляющих государственную тайну, при создании функционально законченных СКЗИ класса КС2. Кстати, у всех остальных тоже класс КС2, кроме ШИПКи - у неё КС3.

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

Сводную таблицу с данными о токенах (пока только в части, касающейся сертификатов) выложил в Google Docs . Если тема окажется интересной, таблицу можно будет дополнить.

Изображение: http://sladsloboda.ru/production/sweet/classical
Alt text

Подписывайтесь на каналы "SecurityLab" в TelegramTelegram и TwitterTwitter, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Алексей Комаров

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