Технические возможности внедрения "черного хода" в программные средства шифрования

© Сергей Панасенко, 2002.

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

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

Технически достаточно легко на этапе разработки обеспечить наличие в программе шифрования возможности расшифрования информации специальным ключом. Рассмотрим ключевую систему, типичную для программ абонентского шифрования информации (для последующей передачи по сети другим абонентам) и архивного или прозрачного шифрования (для хранения информации в зашифрованном виде).
Схема использования криптографических ключей в программах архивного и прозрачного шифрования приведена на рис. 1. В качестве ключа, на котором производится собственно шифрование информации (обычно называемого "сессионным" или "файловым" ключом) используется случайное значение, полученное с программного или аппаратного генератора случайных чисел (ГСЧ). Реализации ГСЧ обычно внедряются в программы шифрования или обеспечивается возможность их подключения, например, в случае с аппаратным ГСЧ.
Для обеспечения возможности последующего расшифрования сессионный ключ должен быть сохранен вместе с зашифрованной информацией. Для этого используется долговременный ключ шифрования, который хранится у пользователя. Именно этот ключ предъявляется пользователем программе шифрования. Сессионный ключ шифруется на долговременном ключе и в зашифрованном виде записывается в предусмотренное для него место в структуре данных, называемой загололовком. Заголовок сопровождает каждый зашифрованный объект – файл для программ архивного шифрования или логический диск для программ прозрачного шифрования. Заголовок содержит информацию, необходимую для расшифрования зашифрованного объекта, например, для зашифрованного файла типичен следующий формат заголовка:

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

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

Теперь предположим, что есть необходимость внедрить в программу шифрования "черный ход". Для разработчиков программы нет ничего проще – достаточно лишь в каждый заголовок, помимо перечисленной выше информации, записывать еще и файловый ключ, зашифрованный на некотором "универсальном ключе" (всего-то 32 байта лишней информации). Это уравнивает в возможностях расшифрования информации легальных пользователей и владельцев данного спецключа.
В качестве примера приведу файловую систему EFS (Encrypting File System), появившуюся в Microsoft Windows 2000, осуществляющую прозрачное шифрование файлов. Шифрование выполняется на случайном файловом ключе (FEK – File encryption key), который зашифровывается асимметричным алгоритмом на открытом ключе пользователя и хранится вместе с зашифрованным файлом. Однако, помимо этого, FEK зашифровывается и на одном или нескольких открытых ключах агентов восстановления данных и также записывается в файловый дескриптор. Соответственно, агент восстановления данных может в любой момент расшифровать файл с помощью своего секретного ключа. Это весьма полезно при увольнении пользователя или утери им носителя с долговременным секретным ключом, но, по сути, данная схема представляет собой реальный пример использования "черного хода" – зашифрованная пользователем информация в любой момент может быть получена, например, администрацией организации, в которой он работает. Более подробно EFS описана, например, в [2].

Весьма похожим образом организована ключевая схема в типичных программах абонентского шифрования информации (см. рис. 2). Рассмотрим схему с асимметричным распределением ключей, наиболее удобную при защите передаваемой по сетям информации.
Как легко увидеть, принципиальные различия между ключевыми схемами абонентского и архивного шифрования отсутствуют. Единственное принципиальное различие схем на рис. 1 и 2 состоит в использовании двухключевой схемы при абонентском шифровании файлов, поэтому вместо долговременного ключа для зашифрования файлового ключа используется ключ парной связи, вычисляемый из секретного ключа отправителя и открытого ключа получателя (например, по алгоритму Диффи-Хеллмана). Однако, приведенная на рис. 2 схема является расширяемой по следующим направлениям:

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

Как с этим бороться

Самый действенный способ защиты от возможных незадекларированных возможностей программ, в частности, от подобных лазеек, – это сертификация средств шифрования в ФАПСИ.
Рассмотрим какие цели преследует сертификация программных средств шифрования, оставив в стороне нетехнические аспекты данного процесса:

Сертификационные испытания программных средств защиты информации длятся несколько месяцев, в течение которых эксперты сертифицирующей организации выполняют детальный анализ исходных текстов программных средств, уделяя особенное внимание модулям, осуществляющим криптографические преобразования и обработку ключевой информации.
Те же, кто использует несертифицированные средства и/или не доверяет сертификатам ФАПСИ, могут выполнить проверку используемых программных средств "своими руками", например, так:

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

Литература

  1. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.
  2. Зубанов Ф.В. Microsoft Windows 2000. Планирование, развертывание, установка. 2-е издание – М.: "Русская редакция", 2000.

 

Рисунки:

  1. Ключевая схема при архивном шифровании файлов.
  2. Ключевая схема при абонентском шифровании файлов.
Алгоритмы шифрования...

Rambler's Top100 OZON.ru

Перейти на главную страницу

Карта сайта

Список статей