Мир ПК
09.08.2002г.

Мир ПК №08, 2002

Аппаратные шифраторы

Известно, что алгоритмы защиты информации (прежде всего шифрования) можно реализовать как программным, так и аппаратным методом. Рассмотрим аппаратные шифраторы: почему они считаются более надежными и обеспечивающими лучшую защиту.

С.П. Панасенко,В.В. Ракитин

Известно, что алгоритмы защиты информации (прежде всего шифрования) можно реализовать как программным, так и аппаратным методом. Рассмотрим аппаратные шифраторы: почему они считаются более надежными и обеспечивающими лучшую защиту.

Что такое аппаратный шифратор

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

Использовать целую плату только для функций шифрования — непозволительная роскошь, поэтому производители аппаратных шифраторов обычно стараются насытить их различными дополнительными возможностями, среди которых:

  1. Генерация случайных чисел. Это нужно прежде всего для получения криптографических ключей. Кроме того, многие алгоритмы защиты используют их и для других целей, например алгоритм электронной подписи ГОСТ Р 34.10 - 2001. При каждом вычислении подписи ему необходимо новое случайное число.
  2. Контроль входа на компьютер. При включении ПК устройство требует от пользователя ввести персональную информацию (например, вставить дискету с ключами). Работа будет разрешена только после того, как устройство опознает предъявленные ключи и сочтет их "своими". В противном случае придется разбирать системный блок и вынимать оттуда шифратор, чтобы загрузиться (однако, как известно, информация на ПК тоже может быть зашифрована).
  3. Контроль целостности файлов операционной системы. Это не позволит злоумышленнику в ваше отсутствие изменить какие-либо данные. Шифратор хранит в себе список всех важных файлов с заранее рассчитанными для каждого контрольными суммами (или хэш-значениями), и если при следующей загрузке не совпадет эталонная сумма хотя бы одного из них, компьютер будет блокирован.

Плата со всеми перечисленными возможностями называется устройством криптографической защиты данных — УКЗД.

Шифратор, выполняющий контроль входа на ПК и проверяющий целостность операционной системы, называют также «электронным замком». Ясно, что аналогия неполная — обычные замки существенно уступают этим интеллектуальным устройствам. Понятно, что последним не обойтись без программного обеспечения — необходима утилита, с помощью которой формируются ключи для пользователей и ведется их список для распознавания «свой/чужой». Кроме того, требуется приложение для выбора важных файлов и расчета их контрольных сумм. Эти программы обычно доступны только администратору по безопасности, который должен предварительно настроить все УКЗД для пользователей, а в случае возникновения проблем разбираться в их причинах.

Вообще, поставив на свой компьютер УКЗД, вы будете приятно удивлены уже при следующей загрузке: устройство проявится через несколько секунд после включения кнопки Power, как минимум сообщив о себе и попросив ключи. Шифратор всегда перехватывает управление при загрузке ПК (когда BIOS компьютера поочередно опрашивает все вставленное в него «железо»), после чего не так-то легко получить его обратно . УКЗД позволит продолжить загрузку только после всех своих проверок. Кстати, если ПК по какой-либо причине не отдаст управление шифратору, тот, немного подождав, все равно его заблокирует. И это также прибавит работы администратору по безопасности.

Структура шифраторов

Рассмотрим теперь, из чего должно состоять УКЗД, чтобы выполнять эти непростые функции (рис. 1):

Рис. 1. Структура шифратора
  1. Блок управления - основной модуль шифратора, который "заведует" работой всех остальных. Обычно реализуется на базе микроконтроллера, сейчас их предлагается немало и можно выбрать подходящий. Главное - быстродействие и достаточное количество внутренних ресурсов, а также внешних портов для подключения всех необходимых модулей.
  2. Контроллер системной шины ПК (например, PCI). Через него осуществляется основной обмен данными между УКЗД и компьютером.
  3. Энергонезависимое запоминающее устройство (ЗУ) - обычно на базе микросхем флэш-памяти. Оно должно быть достаточно емким (несколько мегабайт) и допускать большое число циклов записи. Здесь размещается программное обеспечение микроконтроллера, которое выполняется при инициализации устройства (т. е. когда шифратор перехватывает управление при загрузке компьютера).
  4. Память журнала. Также представляет собой энергонезависимое ЗУ; это действительно еще одна флэш-микросхема: во избежание возможных коллизий память для программ и для журнала не должны объединяться.
  5. Шифропроцессор (или несколько) - это специализированная микросхема или микросхема программируемой логики PLD - Programmable Logic Device. Собственно, он и шифрует данные. Подробнее об этом немного позже.
  6. Генератор случайных чисел. Обычно представляет собой некое устройство, дающее статистически случайный и непредсказуемый сигнал - белый шум. Это может быть, например, шумовой диод. А перед использованием по специальным правилам белый шум преобразуется в цифровую форму.
  7. Блок ввода ключевой информации. Обеспечивает защищенный прием ключей с ключевого носителя, через него также вводится идентификационная информация о пользователе, необходимая для решения вопроса "свой/чужой".
  8. Блок коммутаторов. Помимо перечисленных выше основных функций, УКЗД может по велению администратора безопасности отключать возможность работы с внешними устройствами: дисководами, CD-ROM, параллельным и последовательным портами, шиной USB и т. д. Если пользователь работает с настолько важной информацией, что ее нельзя ни печатать, ни копировать, УКЗД при входе на компьютер заблокирует все внешние устройства, включая даже сетевую карту.

Шифропроцессор

Шифрование в УКЗД должно выполняться так, чтобы посторонним невозможно было узнать ключи и каким-либо образом повлиять на реализуемые в нем алгоритмы. Иногда бывает полезно засекретить и правила преобразования ключей. Поэтому шифропроцессор логически состоит из нескольких структурных единиц (рис. 2):

Рис. 2. Структура шифропроцессора
  1. Вычислитель - набор регистров, сумматоров, блоков подстановки и т. п., связанных между собой шинами передачи данных. Собственно, он и выполняет криптографические действия, причем должен делать это максимально быстро. На вход вычислитель получает открытые данные, которые следует зашифровать, и ключ шифрования, который, как известно, является случайным числом. А шифрование - это сложное математическое преобразование, поэтому его результат тоже очень похож на набор случайных величин (попробуйте сжать зашифрованный файл каким-нибудь архиватором - при использовании серьезного алгоритма защиты это будет невозможно).
  2. Блок управления. На самом деле это аппаратно реализованная программа, управляющая вычислителем. Если по какой-либо причине программа изменится, его работа начнет давать сбои. Это чревато, например, появлением данных в открытом виде вместо зашифрованного (хотя это крайний случай; более вероятно получение такой шифровки, которую ни вы сами, ни кто-либо еще уже не расшифрует никогда L). Поэтому программа должна не только надежно храниться и устойчиво функционировать, но и регулярно проверять сама себя. Кстати, внешний блок управления (описанный выше) тоже периодически посылает ей контрольные задачи. На практике для большей уверенности ставят два шифропроцессора, которые постоянно сравнивают свои результаты (если они не совпадают, шифрование придется повторить). Все это требуется для обеспечения неизменности алгоритма шифрования.
  3. Буфер ввода-вывода необходим для повышения производительности устройства: пока шифруется первый блок данных, загружается следующий и т. д. То же самое происходит и на выходе. Такая конвейерная передача данных серьезно увеличивает скорость шифрования.

Быстродействие

Кстати, о скорости. Разумеется, любому пользователю ПК желательно, чтобы присутствие в его компьютере УКЗД не отражалось на удобстве работы (конечно, если человек выполняет только разрешенные действия). Но, естественно, шифрование данных отнимает некоторое время, причем раньше приходилось просто ждать, когда закончится шифрование, например, логического диска. В Windows позволялось заняться чем-то параллельно, но еще несколько лет назад шифраторы отвлекали на себя значительные ресурсы процессора, поэтому одновременно без заметного торможения можно было только раскладывать пасьянс. Современные УКЗД шифруют данные без помощи центрального процессора ПК. В шифратор лишь передается команда, а затем он сам извлекает данные из ОЗУ компьютера, шифрует их и кладет в указанное место. Процессор же при этом вполне может выполнять другие задачи. Исследования современных УКЗД показывают, что во время их работы производительность ПК практически не снижается.

Возможно применение и нескольких УКЗД на одном компьютере, например на криптографическом маршрутизаторе: один шифрует отправляемую в Интернет информацию, второй — принимаемую. Производительность такой системы не вносит задержек в работу локальной сети Fast Ethernet (100 Мбит/с).

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

V = F Ё K / n,

где F — тактовая частота,

K — размер стандартного блока шифрования,

n — число тактов, требующееся на преобразование стандартного блока.

Например, отечественный алгоритм ГОСТ 28147—89 имеет быстродействие 32 такта на 8-байтовый блок, а значит, теоретически скорость шифрования должна стремиться к 25 Мбайт/с при тактовой частоте 100 МГц. Однако последние опубликованные достижения скорости аппаратной реализации этого алгоритма — 9 Мбайт/с. Ограничения являются чисто технологическими: отсутствие необходимого уровня разработок или элементной базы. Хотелось бы отметить, что программная реализация криптоГОСТа на самых современных ПК достигает 12—16 Мбайт/с при тактовой частоте процессора 1 ГГц. Хотя в этом случае аппаратная скорость шифрования теоретически могла бы быть около 250 Мбайт/с.

Шифраторы для защиты сетей

Для защиты передаваемой в Сеть информации можно использовать как обычный аппаратный шифратор, так и проходной (ПШ), который, помимо всего вышеперечисленного, является также полноценным сетевым адаптером Ethernet (т. е. шифратор и сетевой адаптер выполнены в качестве одной PCI-платы). Его достоинство в том, что он полностью контролирует весь обмен данными по сети, а обойти его (как изнутри, так и снаружи) просто невозможно.

ПШ являются достаточно сложными устройствами, так как они вместо центрального процессора компьютера вынуждены выполнять дополнительные функции по обработке информации. Обычно в ПШ ставят два шифропроцессора: один из них отвечает за шифрование отправляемых данных, а другой расшифровывает принимаемые. Такое устройство может хранить в себе несколько сотен ключей, чтобы каждый блок информации был зашифрован на своем, отличном от других. Это делает все ключи абсолютно недоступными злоумышленникам, но несколько затрудняет процесс управления ими.

Рис. 3. Проходные шифраторы
Технические трудности не позволяли до последнего времени разработать надежные и быстродействующие ПШ. Однако с недавним появлением на рынке дорогих, но очень качественных микросхем PLD решаются многие проблемы создания сложных многофункциональных устройств, что стимулировало выпуск первых отечественных проходных шифраторов.

Кстати, ПШ допускает и другое применение: он может стоять в разрыве между жестким диском компьютера и его контроллером. В этом случае все, что пишется на HDD, будет также автоматически шифроваться.

Разработчики аппаратных шифраторов и программного обеспечения для них, полагают, что уже скоро будут созданы УКЗД, осуществляющие управление не только работой дисководов, CD-ROM и портов ввода-вывода, но всеми ресурсами ПК. В ближайшем будущем компьютеру останется только передавать открытые данные между процессором и оперативной памятью и обрабатывать их, все остальное сделает само УКЗД. Ясно, что абсолютному большинству пользователей это не потребуется. Но там, где ведется работа с важными и конфиденциальными документами, информация должна быть серьезно защищена.

Загрузка ключей шифрования

Есть еще одна особенность, касающаяся безопасности: чтобы у злоумышленника не было совсем никаких шансов, необходимо ключи загружать в шифратор, минуя оперативную память компьютера, где их теоретически можно перехватить и даже подменить. Для этого УКЗД дополнительно содержит порты ввода-вывода, например COM или USB, к которым напрямую подключаются разные устройства чтения ключевых носителей. Это могут быть любые смарт-карты (пластиковые карты с микросхемой памяти или микропроцессором), специальные USB-ключи или электронные таблетки Touch Memory (их очень часто используют, например, для домофонов).

Помимо прямого ввода ключей в УКЗД, многие из таких носителей обеспечивают и их надежное хранение — даже украв USB-ключ, без специального кода доступа к его содержимому не подобраться.

Как программы используют шифратор

Установленный на компьютере шифратор может использоваться сразу несколькими программами, например программой прозрачного шифрования, «прогоняющей» данные сквозь шифратор, и программой электронной подписи, использующей для вычисления подписи получаемые от шифратора случайные числа.

Рис. 4. Программный интерфейс для шифратора

Для того чтобы не возникало коллизий при одновременном обращении к шифратору разных программ (представим, что одна из них шифрует логический диск, а вторая на другом ключе расшифровывает файл: если не управлять очередью выполнения шифратором их требований, получится абракадабра), ставят специальное программное обеспечение управления им (рис. 4). Такое ПО выдает команды через драйвер шифратора и передает последнему данные, следя за тем, чтобы потоки информации от разных источников не пересекались, а также за тем, чтобы в шифраторе всегда находились нужные ключи. Таким образом, УКЗД выполняет два принципиально разных вида команд:

Такое разделение необходимо из соображений безопасности — после выполнения команд первого блока, которые нельзя обойти, злоумышленник уже не сможет сделать что-либо запрещенное.

Еще одно назначение ПО управления шифраторами — обеспечить возможность замены одного шифратора на другой (скажем, на более «продвинутый» или быстрый), не меняя программного обеспечения. Это происходит аналогично, например, смене сетевой карты: шифратор поставляется вместе с драйвером, который позволяет программам выполнять стандартный набор функций. Те же программы шифрования и не заметят такой подмены, но будут работать в несколько раз быстрее.

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

Впрочем, такое ПО нужно вовсе не всем шифраторам — в частности, ПШ, стоящий по дороге к HDD, достаточно настроить один раз, после чего о нем можно просто забыть.

Следует сказать и о том, почему же такой замечательной и полезной вещью, как аппаратный шифратор, еще не обладает каждый пользователь . Увы, для домашнего ПК он дороговат. Впрочем, это вопрос времени — вспомните, какой редкостью были десяток лет назад мобильные телефоны. А сейчас, пожалуй, это неизменный атрибут большинства читателей журнала «Мир ПК».

ОБ АВТОРАХ:

Сергей Петрович Панасенко — начальник отдела разработки программного обеспечения фирмы «АНКАД»,

Владимир Владимирович Ракитин — руководитель проектов «Криптон» фирмы «АНКАД».

С авторами можно связаться по е-mail: develop@ancud.ru.


Словарь криптографа (часть 1)

Продолжим рассказ о криптографических терминах. В целях широты охвата описание каждого из них дается максимально коротко.

С. П. Панасенко


Постоянный URL статьи: http://www.osp.ru/pcworld/2002/08/163808/

© «Открытые системы», 1992-2012. Все права защищены.
Распечатать Распечатать Закрыть окно