Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке Электронная цифровая подпись

Конфигурация тестового стенда

Соберем тестовый стенд с конфигурацией, типовой для машин, участвующих в электронном документообороте (ЭДО):

  1. ОС MS Windows 7 SP1
  2. СКЗИ КриптоПРО CSP 3.9.8423
  3. Драйверы Рутокен для Windows (x86 и x64). Версия: v. 4.1.0.0 от 20.06.2016, WHQL-certified
  4. Единый Клиент JaCarta и JaCarta SecurLogon. Версия 2.9.0 сборка 1531
  5. КриптоАРМ Стандарт Плюс 5. Версия 5.2.0.8847.

Для тестирования будут использоваться токены с неизвлекамым ключом:

  1. Рутокен ЭЦП. Версия 19.02.14.00 (02)
  2. JaCarta ГОСТ. Номер модели JC001–2.F09 v2.1

https://www.youtube.com/watch?v=ytcreatorsru

В последней строке указана фраза «Поддержка КриптоПРО ФКН: Нет», а это значит, что на токене нет апплета, с которым умеет работать СКЗИ КриптоПРО CSP. Таким образом, реализация технологии ФКН с использованием СКЗИ и токенов, описанных в конфигурации тестового стенда, невозможна.

Аналогичная ситуация и с JaCarta ГОСТ. Более того, СКЗИ КриптоПРО CSP, по крайней мере та версия, которая использовалась в тестовом стенде, использует данные ключевые носители как «обычные токены», которые, в свою очередь, являются просто носителями ключа.

Это утверждение очень просто подтвердить. Для этого надо поставить СКЗИ КриптоПРО CSP на чистую машину без драйверов от токенов и подключить токен JaCarta ГОСТ. ОС Windows 7 обнаружит токен JaCarta ГОСТ как «Устройство чтения смарт-карт Microsoft Usbccid (WUDF)». теперь можно попробовать создать ключ на токене и скопировать его в реестр компьютера. Весь функционал СКЗИ успешно отработает.

Неизвлекаемые ключи в облаке – путь через криптопровайдер

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

Заместитель генерального директора, кандидат физико-
математических наук (КриптоПро)

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

заместитель начальника отдела разработки, кандидат технических наук (КриптоПро)

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

ведущий инженер-программист (КриптоПро)

Программные и программно-аппаратные хранилища

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

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

Основными криптографическими системами, использующими данный подход с самого начала своего существования, являются криптографические провайдеры – модули, реализующие интерфейс Microsoft CryptoAPI. Данный интерфейс оказался настолько удобным для использования в прикладных приложениях Windows, что до сих пор значительное количество приложений полагаются именно на него, а сам интерфейс даже портирован компанией КриптоПро на Unix-платформы. В России первой системой, которая на него полагалась, являлся криптографический провайдер «КриптоПро CSP», появившийся в 2001 году.

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

Несмотря на то, что данные устройства могут встраиваться в автоматизиованные системы через независимые библиотеки, бесшовный переход на их использование возможен только через соответствующие криптопровайдеры. Одним из них стал, например, «КриптоПро Рутокен ФКН», который в связке с «Актив Рутокен ЭЦП» мог легко заменить связку «КриптоПро CSP» с «Актив Рутокен Лайт», если пользователи хотели начать использовать неизвлекаемые ключи.

601c181ef1184408994f73cd5a54650c.jpg

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

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

Удаленные и облачные хранилища

Еще одним распространенным видом ключевых хранилищ являются HSM (Hardware Security Module) – защищенные программно-аппаратные комплексы. По сути они представляют собой полноценные защищенные ЭВМ (уровень безопасности вплоть до KB2), доступ к которым осуществляется по защищенным сетевым протоколам. Несмотря на то, что они обеспечивают практически предельную степень безопасности ключей, их удобство использования оставляет желать лучшего: размещение HSM возможно только в защищенных помещениях внутри компании, а для доступа используются специальные утилиты.

Развитием идеи HSM стало появление удобных удаленных сервисов электронной подписи (Digital Signature Service – DSS). Подход DSS заключается в том, что все ключи пользователей хранятся в защищенном хранилище HSM, который может принадлежать как компании-работодателю, так и независимой доверенной организации, например, удостоверяющему центру, а доступ к ключам осуществляется через Web-интерфейс. Одним из таких комплексов является, например, «КриптоПро DSS», на который было получено положительное заключение на соответствие уровню КС3.

Данный подход позволил расширить использование HSM с одной небольшой выделенной локальной сети до крупной сети компании и даже сети Интернет. При использовании DSS пользователи могут подписывать документы с любой точки земного шара, будучи полностью уверенными, что их ключи находятся в безопасности, а доступ к ним может быть осуществлен любым удобным защищенным способом.

Разумеется, у DSS остается существенный недостаток – сложность встраивания в существующие системы. Web-интерфейс – это хорошо, но что делать компаниям, которые хотят повысить безопасность своей автоматизированной системы без серьезных затрат в разработку нового прикладного ПО взамен существующего, которое уже много лет использует CryptoAPI?

Как нам видится, естественным путем решения данной проблемы является встраивание поддержки DSS в существующие криптопровайдеры. Если подключение такого «облачного токена» будет не сложнее подключения физического токена, то единственным, что нужно будет сделать пользователю, чтобы начать работать с данными защищенными ключами в рамках своей системы, – обновить криптопровайдер. Принципиальная схема подобной системы представлена на рисунке 1.

Рисунок 1. Принципиальная схема системы использования «облачного токена»

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

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

Способ храненияВысокая скоростьНизкая ценаИспользование пользовательского ключа на удаленном рабочем местеВстраивание в существующие системы через CryptoAPIЗащита ключа от кражи или утериЗащищенный канал доступа к ключам
CSP HDD
CSP и пассивный токен
Активный токен
CSP активный токен
HSM
HSM DSS
«Облачный токен»: HSM DSS CSP

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

Проведение тестирования

Смоделируем типовой процесс подготовки Администратором информационной безопасности ключевых документов для организации ЭДО:

  1. генерируется контейнер закрытого ключа и запрос на сертификат открытого ключа;
  2. после прохождения в удостоверяющем центре процедуры сертификации из запроса получается сертификат;
  3. сертификат в совокупности с контейнером закрытого ключа образует готовую для использования ключевую информацию. Данную ключевую информацию, записанную на носителе, будем называть исходным ключевым документом;
  4. с исходного ключевого документа изготавливаются копии, которые записываются на отчуждаемые носители (далее будем называть их рабочими ключевыми документами) и передаются уполномоченным пользователям;
  5. после изготовления необходимого количества рабочих ключевых документовисходный ключевой документ уничтожается или депонируется на хранение в орган криптографической защиты информации.

В нашем случае мы не будем пользоваться услугами центров сертификации, а сгенерируем ключевой контейнер с самоподписанным сертификатом и разместим его в реестре компьютера (АРМа генерации ключевой информации), это и будет

. Затем скопируем ключевую информацию на Рутокен ЭЦП и JaCarta ГОСТ, изготовив

. После этого уничтожим

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

1. Создадим

Описание

Для этого с помощью КриптоАРМ создадим в реестре контейнер закрытого ключа test-key-reestr, содержащий самоподписанный сертификат (CN=test)

be75005f386d4d22ba3b8135c1b18be6.jpg
5aa6374123aa4d9d8c0bf892877dace0.jpg
2bda381ef3da48c58891c0c9ef6c73eb.jpg
e4b5ac1e16fb470286bf95f4f2737927.jpg
bcf073a3ffcf412d86e7a9c1a8ab293a.jpg
b83f86fa9cf14d1885ed2e1faea4aea8.jpg
b64b3aa6b8404687b3b26e43a1f815d4.jpg
f872312ea7b0487383004a9ff0cab701.jpg
0d25d210ecd649038c8f1061d857e942.jpg

2.Сформируем

Описание

С помощью штатных средств СКЗИ КриптоПРО CSP (Пуск–{amp}gt;Панель управления–{amp}gt;КриптоПро CSP) скопируем ключевой контейнер test-key-reestr на ключевые носители Рутокен ЭЦП и JaCarta ГОСТ. Ключевым контейнерам на ключевых носителях присвоим имена test-key-rutoken и test-key-jacarta соответственно.

Описание приведено применительно к JaCarta ГОСТ (для Рутокен ЭЦП действия аналогичны):

2382a0fdd3f643d9b36157bafb985774.jpg
b9359b14bfea43958c1804dcb2d9a4d3.jpg
e4c0256cd38545b39fc30d98b163d1e6.jpg
cace50ed4f2846a8b7062ad04d7af8b0.jpg
0c6108fac3dc4d37ac62b631d8311ffe.jpg

Таким образом получили

рабочие ключевые документы

на JaCarta ГОСТ (контейнер test-key-jacarta) и Рутокен ЭЦП (контейнер test-key-rutoken).

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

3.Уничтожим исходный ключевой документ

Описание

Штатными средствами СКЗИ КриптоПРО CSP удалим из реестра ключевой контейнер test-key-reestr.

4. Скопируем ключевую информацию из 

Описание

Попробуем скопировать ключевые контейнеры test-key-rutoken и test-key-jacarta обратно в реестр.

Описание приведено для JaCarta ГОСТ (для Рутокен ЭЦП действия аналогичны).

6fe2b135e98d41ce883d6e9ac9e79bc6.jpg
8f82af07b85b47cfbb2e42d2cb7fc4ea.jpg
2e051f64e8944834b1186623fb9fefe7.jpg
13650da5f6b44d52ba03f745fa19df94.jpg
2e8788da593542fabe94c024987180c6.jpg
ef13487b0aa04058afbe7d89d9a65ef5.jpg
7edfa0ddde9a4e4b8b5bee594c1fbf66.jpg
e979b2e8ad074a0bba5945f55bcf03b1.jpg

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

Матчасть

То, что на рынке принято называть токеном с неизвлекаемым ключом, правильно называется функциональным ключевым носителем (ФКН) (доп. инфо).

Главным отличием ФКН от обычных токенов (Рутокен S, JaCarta PKI, …) в том, что при выполнении криптографических преобразований (например, формирование электронной подписи) закрытый ключ не покидает устройство. В то время как при использовании обычных токенов закрытый ключ копируется с токена в память комптьютера.

Использование ФКН требует особой организации взаимодействия между прикладным криптографическим ПО и библиотекой СКЗИ (криптопровайдером или, по-другому, CSP).

Развитие систем информационной безопасности. Неизвлекаемые ключи в облаке

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

Как сделать, чтобы все было хорошо?

Чтобы с помощью продуктов

1. Купить специальную версию библиотеки СКЗИ: — для Рутокен ЭЦП — СКЗИ КриптоПРО Рутокен CSP. — для JaCarta ГОСТ — СКЗИ КриптоПро ФКН CSP.

https://www.youtube.com/watch?v=https:accounts.google.comServiceLogin

2. Одновременно с библиотекой СКЗИ необходимо приобрести специально подготовленные токены, содержащие в себе программные части (апплеты), с которыми умеет работать КриптоПРО Рутокен CSP или КриптоПро ФКН CSP соответственно.

Читайте также:  Ошибка "Невозможно создание объекта сервером программирования объектов" - Размышления о разработке программного обеспечения и информационных систем — LiveJournal
Оцените статью
ЭЦП Эксперт