Статьи

Профилактика взлома usb-токена

3.12.2013

/

Практически повсеместно при использовании электронной подписи, для хранения и работы последней используют usb-токен (далее по тексту токен). Чем именно обусловлен выбор? Про то, что сам закрытый ключ постоянно хранится на токене, и о том, что не зная PIN-кода, получить доступ к закрытому ключу невозможно, знаю все. Но так ли это на самом деле?


Подробнее рассмотрим устройство токена на примере etoken PRO(Java)/72K.

Согласно информации производителя, характеристики у него следующие:

Микросхема смарт-картыAtmel AT90SC25672RCT-USB
Операционная система смарт-картыAthena OS755, встроенная виртуальная машина Java
(полностью совместимая со стандартом Sun Java Card)
Поддерживаемые интерфейсы и стандарты
  • PKCS#11 версии 2.01,
  • Microsoft CryptoAPI,
  • PC/SC,
  • Сертификаты X.509 v3, SSL v3, IPSec/IKE,
  • Microsoft CCID,
  • eToken Minidriver
Аппаратно-реализованные алгоритмы
  • RSA 1024 / 2048,
  • DES, 3DES,
  • SHA-1
Объем защищенной памяти72 КБ на микросхеме смарт-карты
Возможность встраивания радио-метки (RFID)Есть
Поддерживаемые версии драйвераeToken PKI Client 4.55 и выше
Поддерживаемые версии комплекта разработчикаeToken SDK 4.5 и выше

Как видно из спецификации, в основе устройства – микроконтроллер фирмы Atmel AT90SC25672RCT-USB.

AT90SC25672RCT-USB является 8/16–битным микроконтроллером на базе расширенной RISC архитектуры secureAVR с криптографическим сопроцессором, программируемой ROM, EEPROM для хранения пользовательских данных размером 72Кб. AT90SC25672RCT-USB характеризуется низким энергопотреблением и высокой производительностью. Микроконтроллер имеет 135 инструкций, большинство из которых выполняются за один такт, благодаря чему производительность достигает 1 MIPS/MHz. Архитектура микроконтроллера содержит 32 регистра общего назначения, непосредственного связанных с АЛУ, что позволяет одной инструкции осуществлять доступ к двум различным регистрам за 1 цикл синхронизации. На рисунке 1 представлена архитектура микроконтроллера.

Отвлечемся от аппаратной составляющей, и рассмотрим возможные атаки на это устройство. Любой из алгоритмов шифрования имеет свою реализацию, как программную, так и аппаратную. При этом, если математически алгоритм «безупречен», то на практике он будет реализован в какой-то программе, которая будет исполнена в какой-то среде на каком-то процессоре. В общем случае, на разных шагах алгоритма, у устройства, его реализующего, будут изменяться такие параметры, как энергопотребление, электромагнитное излучение и т.д. Используя эти данные, имеется возможность получить ключевую информацию. Атаки подобного рода классифицируются как атаки по сторонним каналам.

Атаки по сторонним каналам принято делить на 2 типа: активные и пассивные. К активным атакам относятся те, при которых происходит непосредственное воздействие на систему, изменяющее ее поведение. Воздействие может быть необратимым для системы. К пассивным относятся атаки, при которых заметного влияния на систему не оказывается и система работает в нормальном режиме.

Рисунок 1 – Архитектура микроконтроллера Atmel AT90SC25672RCT-USB

Микроконтроллер способен противостоять атакам по потребляемой мощности (SPA/DPA); к атакам по электромагнитному излучению (SEMA/DEMA); к атакам по времени (time attack); к атакам по видимому излучению. Все вышеперечисленные атаки относятся к пассивным атакам по сторонним каналам.

  • Атаки по потребляемой мощности – на различных шагах алгоритма энергопотребление различно (атаки по э/м излучению схожи с этим классом атак – на различных шагах алгоритма э/м излучение различно);
  • Атака по времени – различные операции алгоритма выполняются за различное количество тактов;
  • Атаки по излучению – используя высокоточный датчик интенсивности света можно измерить изменения в интенсивности рассеянного света от светодиодного индикатора на различных шагах алгоритма.

Для противодействия активным атакам типа атак по ошибкам вычислений и атак зондированием применена активная защита, особенности которой производитель не раскрывает по понятным причинам.

Защитные функции AT90SC25672RCT-USB представлены следующим набором:

  • Логика защиты по питанию, температуре, частоте, излучению;
  • Логическое скремблирование данных и адресов в памяти программ;
  • Управляемый доступ к памяти в режиме супервизора;
  • Контрмеры по анализу питания;
  • Улучшенная защита от физических атак, включая активную защиту.

Таким образом, токен стоек к атакам по сторонним каналам, но уязвим к другого рода атакам, свойственным для всех устройств с PIN-кодом – перехват во время ввода. Это может быть троян на компьютере пользователя, микрокамера с хорошим обзором, акустический датчик и другие способы реализации перехвата. Также не стоит забывать про терморектальный криптоанализ. А зная PIN, вытащить секретный ключ не составляет никакого труда – не сложнее, чем скопировать файл (при условии, что токен у злоумышленника).

Из всего этого следует, что краеугольный камень безопасности вашей ЭП при хранении на токене закрытого ключа – PIN-код, и хранить его надо соответственно.