Секрет

Почему нельзя хранить ключи иначе

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


Почему нельзя хранить ключи иначе

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

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

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

Однако, специализированные средства — токены (это слово используется в разных значениях, но в рамках этого текста условимся понимать токен только одном из них: как защищенное тем или иным способом хранилище ключей в виде объектов PKCS) — не идеальны.

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

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

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

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

Отсюда вытекают требования к защищенному ключевому носителю.

Требования к защищенному ключевому носителю

Защищенный носитель ключа в идеальном случае должен быть способен контролировать:

  • доступ к ключу через любые интерфейсы, в том числе и путем применения разрушающего программного воздействия (РПВ);
  • среду, в которой производится попытка доступа к ключу.

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

Иными словами, задача «контроля» среды, из которой осуществляется доступ к ключу, сводится к тому, чтобы доступ к ключу предоставлялся не только исключительно легальному пользователю, но и исключительно на заданных рабочих местах (наличие «правильной» среды на которых обеспечивается в установленном в организации порядке).

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

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

Вероятность подмены рабочего места звучит довольно маловероятно, поэтому не очень страшно. Наиболее очевидные и легко реализуемые (а главное — часто реализуемые) сценарии мы привели в разделе Пример.

Итак, защищенный ключевой носитель должен:

  1. быть персональным отчуждаемым устройством,
  2. быть специализированным именно для хранения ключей устройством (то есть обеспечивать возможность защищенного хранения криптографических ключей с применением интерфейсов работы со смарт-картой (ccid или pkcs#11)),
  3. предоставлять доступ к ключам только легальному пользователю после успешной аутентификации в устройстве,
  4. предоставлять легальному пользователю доступ к ключам только на тех СВТ, на которых данному пользователю разрешено работать с данным ключевым носителем,
  5. удовлетворять требованию патентной чистоты.

Проанализируем на этот предмет решения для хранения ключей, представленные на рынке до сих пор.

 

Обзор ключевых хранилищ

Смарт-карты

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

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

Разумеется, хранение ключей — это не единственная функция смарт-карты, но одна из основных.

Токены

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

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

Хранение ключей — это не единственная, и не основная функция токенов, их основное назначение — двухфакторная аутентификация.

Флэш-накопители

Обычные флэш-накопители не обладают никакой защитой. Могут быть украдены или утеряны, в этом случае любой человек сможет получить доступ к данным. Зато флэш-накопители обладают значительным объемом памяти, совместимы практически со всеми устройствами, имеющими USB порты. Флэш-накопитель может быть использован на любом АРМ в любых условиях.

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

ТМ-идентификаторы

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

Содержимое ТМ-идентификаторов можно копировать, поэтому данные, хранящиеся в устройстве в открытом виде (в том числе и ключи) могут быть легко скомпрометированы.

Основное предназначение ТМ-идентификаторов, как и токенов — двухфакторная аутентификация. Если аутентифицирующей информацией являются не непосредственно  хранящиеся в ТМ-идентификаторе данные, а результат преобразования, которое  производится резидентным компонентом безопасности с данными, полученными по разным каналам, то копируемость памяти ТМ-идентификатора не является критичным фактором. В отличие от считывания хранящихся в «таблетке» в открытом виде ключей.

Требование

Смарт-карта

Токен

Флеш-накопитель

ТМ-идентификатор

Персональное отчуждаемое устройство

+

+

+

+

Поддержка интерфейсов CCID и\или PKCS#11

+

+

-

-

Контроль легальности пользователя*

+

+

-

-

Контроль легальности СВТ

-

-

-

-

*«+» или «–» в строке «Контроль легальности пользователя» оценивает наличие в ключевом носителе собственных механизмов, независимых от механизмов СКЗИ. То же справедливо и для остальных параметров, однако именно в отношении указанного возможна неоднозначная интерпретация.

Соответствует всем этим требованиям и сочетает функции токена с функцией ограничения числа разрешенных компьютеров — «Идеальный токен».