Доклады, выступления, видео и электронные публикации

Дискуссия: Архитектура СКЗИ типа USB-ключ (из обзора для CNews, в авторской редакции)

В номере журнала Cnews за июль 2006 года в статье Юрия Сергеева «USB-токен: правила выбора» (С. 38–41) читаем, в частности, следующее:«Отметим, что USB-ключи, не выполненные по архитектуре "смарт-карта + карт-ридер", например, ruToken, "Шипка", выполнены на серийном микроконтроллере и программно эмулируют функциональность смарт-карт. Это сильно снижает их безопасность. В частности, они используют внешний чип памяти со всеми вытекающими последствиями (у смарт-карточных токенов память находится внутри чипа смарт-карты, и атаковать ее очень сложно)» (С. 39).

Сам факт сравнения не только изделий разных производителей, но и различных архитектур – является несомненно весьма конструктивным методом анализа решений по безопасности. Однако хотелось бы все же подробнее остановиться на отдельных положениях приведенного утверждения.

  1. Что значит «программно эмулируют функциональность смарт-карт»?
    Функциональность смарт-карте придает программное обеспечение для резидентного процессора. С одним ПО смарт-карта становится SIM-картой для телефона, с другим ПО – USB-токеном. Функционально одинаковое ПО создается либо для резидентного процессора смарт-карты (кстати, серийного), либо для серийного микроконтроллера. Думается, что применение термина «программная эмуляция» для описания отличий реализации устройств на базе микроконтроллера или чипа смарт-карты – по крайней мере неудачно.


  2. Утверждение о том, что безопасность USB-токенов на базе микроконтроллеров ниже, поскольку «они используют внешний чип памяти со всеми вытекающими последствиями (у смарт-карточных токенов память находится внутри чипа смарт-карты, и атаковать ее очень сложно)», необходимо анализировать по частям.

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

Так какая же архитектура перспективней – на базе смарт-карты или микроконтроллера? Иными словами, более дешевая или более гибкая и адаптивная? Что лучше (для потребителя, а не для производителя) при возникновении новых потребностей – платить за новый ключ на базе смарт-карты или просто перепрограммировать ключ на базе микроконтроллера?

Архитектура – это музыка в камне.

Метафора начинает звучать вполне прагматично, когда задумаешься о том, что случилось с ледяной избушкой недальновидной лисы, и в то же время о том, что в шалаше рай – только с милым. Чтобы постройка могла считаться домом, она должна, по меньшей мере, удовлетворять двум условиям: а) надежность, прочность объекта и б) гармония процессов – чтобы двери-окна были, причем были достаточной ширины и открывались-закрывались, и т. п.

Как этого добиться, если Вы не строите дом, а хотите купить готовый?

Можно ориентироваться на какие-то общие околоархитектурные соображения, например, что большой дом лучше, чем маленький, что готическая архитектура давно устарела, что дома, построенные фирмой N, обычно надежные и удобные. Как всякое общее соображение, эти выкладки могут дать осечку: большой дом разрушится при землетрясении, а маленький соседский – устоит, Ваш дом в стиле модерн будет смотреться странно в готическом квартале, а фирма N окажется совершенно неспособной построить дом с русской печью, а не паровым отоплением.

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

Чтобы избежать большого количества лишних подсчетов, учитывать имеет смысл не любые условия, а только дифференциально важные. Так, например, рассчитывать соотношение количества компьютеров в организации и количества пользователей в ней – вообще и на каждом компьютере в отдельности, чтобы выяснить, в каком случае экономичнее использование смарт-карт, а в каком – USB-токенов, имеет смысл только в том – специфическом – случае, если функциональность этих двух типов устройств абсолютно одинаковая, и никак иначе, кроме как в качестве смарт-карт, последние использоваться не должны и не могут. Функциональность же средств защиты информации типа USB-ключ может быть существенно шире функциональности смарт-карт, а количество компьютеров, на которых пользователь может работать со своим USB-устройством, может быть любым, вне зависимости от количества машин в его организации.

Однако нельзя не признать, что общее название «USB-токен» закрепилось именно за устройствами, функциональность которых сводится к функциональности смарт-карт, и поэтому для обозначения более широкого класса изделий сегодня в употребление входит понятие «интеллектуальное USB-устройство», в нашем случае – security USB-устройство, SU2 (Security USB-unit) .

Итак, что же нам надо от интеллектуального устройства класса SU2, и какой в связи с этим должна быть его архитектура и основные характеристики?

  1. Для того чтобы производить вычисления без участия процессора ПК, устройство должно иметь собственный процессор.
  2. Показатель, довольно часто фигурирующий в описаниях изделий вне достаточного для адекватного вывода контекста, – это тактовая частота процессора.
    Практически значимой характеристикой является на самом деле частота выполнения команд, которая от тактовой частоты процессора, безусловно, зависит, как зависит и от количества тактов на команду, характерного для данного процессора. Эти характеристики у разных процессоров могут значительно различаться, и при небольшом различии тактовой частоты, частота выполнения команд может различаться весьма существенно.
    Знание частоты выполнения команд процессором, однако, отдельно взятое – тоже не дает представления об эффективности работы процессора при выполнении операций того или иного вида – без информации о том, сколько команд затрачивается на выполнение операции. Как результат – процессор может быть очень эффективен для выполнения графических операций, но совершенно непригоден для операций криптографических.
    Еще более важное значение имеет то, как реализована операция: выполняется ли она процессором устройства – и, соответственно, использует большое количество команд, тактов, времени, или в логике аппаратного сопроцессора – при этом большинство операций можно сконфигурировать так, чтобы они выполнялись за 1–2 команды.
    Таким образом, эффективность работы устройства зависит не столько от тактовой частоты процессора, сколько от того, насколько полна библиотека аппаратно реализованных операций. С точки зрения архитектуры это означает, что должен быть сопроцессор с заданными характеристиками.
  3. В описании изделия производитель также указывает, как правило, скорости выполнения процессором криптографических преобразований. Отметим, что работа процессора и работа устройства – это не одно и то же. Необходимо понимать, что скорость вычислений по тому или иному алгоритму имеет практическую ценность только в сочетании с другим показателем – скоростью обмена данными с ПК по USB-интерфейсу. Для того чтобы вообще имело смысл рассматривать вопрос скоростей, должен быть обеспечен как минимум режим Full-speed. В этом смысле сообщение о том, что поддерживается протокол, например, USB 2.0 – недостаточно информативно. Должен быть указан и режим. Если поступать по-другому, можно неосторожно ввести потребителя в заблуждение – он будет ожидать от устройства тех характеристик, которые указаны для процессора. В целом как показатель должны быть указаны не характеристики процессора, а характеристики устройства.
  4. Для осуществления криптографических преобразований требуется существенный объем памяти, соответственно, память устройства должна быть достаточного объема, в противном случае вычисления должны будут производиться процессором ПК – вне доверенной среды, а в устройстве будут в лучшем случае храниться ключи, данные и ПО для процессора ПК.
  5. Для реализации в устройстве бОльшего числа возможностей необходим бОльший объем памяти. Более того, при возрастающей степени связанности человека со своей информационной средой, все более необходимой становится возможность иметь с собой и использовать на любом ПК собственные данные самого разного рода. В то же время хорошо понятно, что отбирать для этого память процессора устройства, предназначенную для криптографических преобразований, было бы не совсем уместно.
    Поэтому устройству класса SU2, функциональность которого намного шире функциональности смарт-карт, целесообразно иметь дополнительную – разумеется, надежно защищенную – память. К сожалению, для устройств, построенных на смарткарточном чипе, это невозможно, они могут использовать только внутреннюю память процессора, и возможности расширения их функциональности неизбежно ограничены объемом этой памяти.
  6. Очень важной характеристикой устройства является его перепрограммируемость. Для дешевых устройств, функционально аналогичных смарт-картам, это качество может быть необязательным, поскольку расширение их возможностей не предусматривается, и в случае, если у пользователя изменился состав задач или другие условия, он купит новое устройство, а старое – выбросит, что, безусловно, выгодно производителю. Перепрограммируемое же интеллектуальное USB-устройство предполагает возможность получения обновлений на однажды купленный экземпляр по мере развития его функциональности или изменения требований пользователя. Иными словами, возможность перепрограммирования обозначает, что устройство не устареет и не станет ненужным с изменением условий и задач его эксплуатации.
  7. Довольно часто, особенно в среде специалистов по криптографии, высказываются достаточно радикальные суждения о том, какие алгоритмы должны быть реализованы в СКЗИ, а какие не должны быть – в силу различных причин. Хочется заметить в связи с этим, что пользователь волен выбрать то преобразование, надежность которого ему кажется достаточной, в то время как отсутствие выбора делает рассуждения о сравнительных свойствах алгоритмов просто бессмысленными – пользователь вынужден использовать то, что есть. Напомним, что в устройство класса SU2 по требованию заказчика может быть прошит тот алгоритм, который он сочтет нужным, в том числе, например, написанный им самим или специально для него. Другие же алгоритмы могут быть удалены из устройства, хотя наличие алгоритма и не может быть негативным фактором, в отличие от его отсутствия. Отметим также, что для качественного выполнения криптографических преобразований необходим физический генератор случайных последовательностей.

***

В заключение еще раз подчеркнем, что мы далеки от намерения доказывать, какая архитектура лучше – в том числе и применительно к персональным СКЗИ. Для того чтобы правильно выбрать такое устройство, нужно, как и в случае любого другого выбора, просто четко понять, что именно в данном случае требуется. Если нужен шпингалет – не стоит покупать кодовый замок, и наоборот. А вопрос о том, какая архитектура лучше в принципе – сродни вопросу, кто кого победит – кит или слон?
Конкурентное противопоставление дешевых USB-аналогов смарт-карт и многофункциональных перепрограммируемых USB-устройств так же бессмысленно – они актуальны для разных задач и условий. Для каждого конкретного пользователя лучше то устройство, которое отвечает его задачам. И производителю следует в связи с этим предоставлять пользователю информацию именно о тех свойствах изделия, которые определяют его функциональность.
Упомянутая в статье Юрия Сергеева архитектура «смарт-карта + карт-ридер», действительно, достаточна для USB-токенов, но никак не может быть достаточной для устройств класса SU2, архитектура которых должна включать, как минимум, процессор, сопроцессор, внешнюю память, датчик случайных чисел, а также средства, обеспечивающие адаптивность устройства.

Автор: Конявская С. В.

Дата публикации: 01.01.2006

Scientia potestas est
Кнопка связи