Аппаратное шифрование для ПК

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

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

Прежде всего аппаратная реализация алгоритма шифрования гарантирует неизменность самого алгоритма — тогда как в программной алгоритм может быть намеренно модифицирован. Кроме того, аппаратный шифратор исключает какое-либо вмешательство в процесс шифрования. Другое преимущество — использование аппаратного датчика случайных чисел, который гарантирует абсолютную случайность генерации ключей шифрования и повышает качество реализации различных криптографических алгоритмов, например, электронной цифровой подписи по алгоритмам ГОСТ Р 34.10-94/2001.

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

Структура и функции

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

Блок управления, как следует из его названия, служит для управления работой всего шифратора. Обычно он реализован на базе микроконтроллера. Шифропроцессор представляет собой специализированную микросхему или микросхему программируемой логики (PLD — Programmable Logic Device), которая выполняет шифрование данных. Вообще говоря, УКЗД может иметь несколько шифропроцессоров, например, для взаимного контроля (путем сравнения на лету получаемых зашифрованных или открытых данных) и/или распараллеливания процесса шифрования. Для генерации ключей шифрования в устройстве предусмотрен аппаратный датчик случайных чисел (ДСЧ), вырабатывающий статистически случайный и непредсказуемый сигнал, преобразуемый затем в цифровую форму. Обмен командами и данными между шифратором и компьютером обеспечивается контроллером, обычно PCI (или другой системной шины в зависимости от интерфейса шифратора). Взаимодействие шифратора с системной платой ПК осуществляется через контроллер УКЗД. Для хранения ПО микроконтроллера необходима энергонезависимая память, реализованная на одной или нескольких микросхемах. Это же внутреннее ПЗУ используется для записи журнала операций и других целей.

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

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

Как работает шифратор

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

Кстати, помимо собственно функций шифрования, каждый шифратор в этом режиме должен уметь как минимум:

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

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

Во избежание возникновения коллизий программы не имеют прямого доступа к шифратору и управляют им с помощью специальных программных API-модулей. Например, устройствами серии Криптон управляет универсальный программный интерфейс Crypton API. В функции данного API входит обеспечение корректного последовательного выполнения шифратором команд, инициированных различными программами. Для каждой программы создается отдельная сессия шифрования, а ресурсы шифратора поочередно переключаются между сессиями. Каждая сессия имеет собственный виртуальный шифратор со своими ключами шифрования, которые перезагружаются при переключении между сессиями. Это несколько напоминает разделение ресурсов ПК между приложениями в многозадачной операционной системе.

В тот же набор Crypton API входят модули, обеспечивающие стандартный интерфейс к функциям шифратора и Windows-приложениям — ключевым носителям. Кроме того, этот API поддерживает возможность подключения различных типов шифраторов через драйверы со стандартным набором функций. Это исключает зависимость прикладной программы от конкретного типа шифратора. Например, вместо аппаратного шифратора можно использовать программный — Crypton Emulator, работающий на уровне ядра операционной системы. Аналогичным образом поддерживается и работа с разными ключевыми носителями.

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

Ключевые схемы и процесс шифрования файлов

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

Каждому уровню ключей соответствует ключевая ячейка памяти шифропроцессора. При этом подразумевается, что шифрование данных выполняется только на ключах первого уровня (сеансовых или пакетных), остальные же предназначены для шифрования самих ключей при построении различных ключевых схем.

Трехуровневую схему лучше всего иллюстрирует упрощенный пример процесса шифрования файла. На этапе начальной загрузки в ключевую ячейку №3 заносится главный ключ. Но для трехуровневого шифрования необходимо получить еще два. Сеансовый ключ генерируется в результате запроса к ДСЧ шифратора на получение случайного числа, которое загружается в ключевую ячейку №1, соответствующую сеансовому ключу. С его помощью шифруется содержимое файла и создается новый файл, хранящий зашифрованную информацию. Далее у пользователя запрашивается долговременный ключ, который загружается в ключевую ячейку №2 с расшифровкой посредством главного ключа, находящегося в ячейке №3. Кстати, серьезный шифратор должен иметь режим расшифровки одного ключа с помощью другого внутри шифропроцессора; в этом случае ключ в открытом виде вообще никогда не покидает шифратора. И, наконец, сеансовый ключ зашифровывается при помощи долговременного ключа, находящегося в ячейке №2, выгружается из шифратора и записывается в заголовок зашифрованного файла.

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

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

Приятное дополнение

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

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

  • список пользователей, которым разрешен вход на защищаемый данным шифратором компьютер, и данные, необходимые для их аутентификации;
  • список контролируемых файлов с рассчитанным для каждого из них хэш-значением (кроме файлов операционной системы, в этот список могут входить любые другие файлы, например, шаблон Normal.dot, используемый по умолчанию текстовым процессором Microsoft Word);
  • журнал, содержащий список попыток входа на компьютер, как успешных, так и нет; в последнем случае — с указанием причины отказа в доступе.

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

Все эти меры обеспечивали бы совершенно исключительную безопасность, если бы не один серьезный недостаток электронного замка — его можно просто вытащить из компьютера. Тем не менее, если использовать его в паре с программой прозрачного шифрования логических дисков, загрузка компьютера без шифратора не даст злоумышленнику желаемого эффекта. Любые попытки модифицировать систему с целью, например, внедрения программной закладки будут обнаружены при первой же загрузке с вставленным шифратором в процессе контроля целостности файлов. Такой программно-аппаратный комплекс (шифратор в режиме электронного замка плюс программа шифрования логических дисков) — весьма надежное средство защиты информации на ПК.

Новинки шифрования

В последнее время на рынке появились новые типы шифраторов, так называемые USB-токены. К сожалению, пока они не могут стать полноценной заменой аппаратному шифратору, прежде всего из-за низкой скорости шифрования. Однако у них есть несколько интересных особенностей. Во-первых, USB-токен представляет собой не только аппаратный шифратор, но и носитель ключей шифрования, т. е. устройство два в одном. Во-вторых, USB-токены обычно соответствуют распространенным международным стандартам (PKCS #11, ISO 7816, PC/SC и т. д. ), и их можно использовать без дополнительной настройки в уже существующих программных средствах защиты информации (например, с помощью Рутокен можно проводить аутентификацию в ОС семейства Microsoft Windows). И, наконец, цена такого шифратора в десятки раз ниже, чем классического аппаратного шифратора для шины PCI.

Критерии выбора

В заключение коснемся основных технических характеристик аппаратных шифраторов, которые следует учитывать при выборе конкретного устройства. Важнейшая характеристика — реализуемый алгоритм шифрования и размерность ключа. Как известно, согласно отечественному законодательству, государственные и ряд коммерческих организаций обязаны применять только те криптосредства, которые имеют сертификат ФАПСИ (Федеральное агентство правительственной связи и информации). Сертификация же шифратора в ФАПСИ в настоящий момент подразумевает, что в нем реализован отечественный алгоритм ГОСТ 28147-89.

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

Остальные параметры — такие, как скорость шифрования, количество уровней ключевой системы шифратора, интерфейс (ISA/PCI/USB), набор поддерживаемых ключевых носителей с возможностью прямой загрузки ключей шифрования, наличие функциональности электронного замка, наличие драйверов шифратора для различных ОС, наличие программного обеспечения, позволяющего использовать функциональность шифратора, — определяются в соответствии с техническими особенностями ПК, требованиями к защищенности информации и политикой безопасности, принятой в данной организации.