Довольно часто при оформлении сертификатов ключей электронной подписи можно наблюдать навязчивый пиар токенов с неизвлекаемым ключом. Продавцы из удостоверяющих центров уверяют, что, купив у них СКЗИ КриптоПРО CSP и токен с неизвлекаемым ключом (Рутокен ЭЦП или JaCarta ГОСТ), мы получим сертифицированные СКЗИ, обеспечивающие 100%-ную защиту от кражи ключей с токена. Но так ли это на самом деле? Для ответа на этот вопрос проведем простой эксперимент…
Конфигурация тестового стенда
Соберем тестовый стенд с конфигурацией, типовой для машин, участвующих в электронном документообороте (ЭДО):- ОС MS Windows 7 SP1
- СКЗИ КриптоПРО CSP 3.9.8423
- Драйверы Рутокен для Windows (x86 и x64). Версия: v.4.1.0.0 от 20.06.2016, WHQL-certified
- Единый Клиент JaCarta и JaCarta SecurLogon. Версия 2.9.0 сборка 1531
- КриптоАРМ Стандарт Плюс 5. Версия 5.2.0.8847.
- Рутокен ЭЦП. Версия 19.02.14.00 (02)
- JaCarta ГОСТ. Номер модели JC001-2.F09 v2.1
Методика тестирования
Смоделируем типовой процесс подготовки Администратором информационной безопасности ключевых документов для организации ЭДО:- генерируется контейнер закрытого ключа и запрос на сертификат открытого ключа;
- после прохождения в удостоверяющем центре процедуры сертификации из запроса получается сертификат;
- сертификат в совокупности с контейнером закрытого ключа образует готовую для использования ключевую информацию. Данную ключевую информацию, записанную на носителе, будем называть исходным ключевым документом ;
- с исходного ключевого документа изготавливаются копии, которые записываются на отчуждаемые носители (далее будем называть их рабочими ключевыми документами ) и передаются уполномоченным пользователям;
- после изготовления необходимого количества рабочих ключевых документов исходный ключевой документ уничтожается или депонируется на хранение в орган криптографической защиты информации.
Проведение тестирования
1. Создадим исходный ключевой документ .Описание
Для этого с помощью КриптоАРМ создадим в реестре контейнер закрытого ключа test-key-reestr, содержащий самоподписанный сертификат (CN=test)
2.Сформируем рабочие ключевые документы .
Описание
С помощью штатных средств СКЗИ КриптоПРО CSP (Пуск-->Панель управления-->КриптоПро CSP) скопируем ключевой контейнер test-key-reestr на ключевые носители Рутокен ЭЦП и JaCarta ГОСТ. Ключевым контейнерам на ключевых носителях присвоим имена test-key-rutoken и test-key-jacarta соответственно.
Описание приведено применительно к JaCarta ГОСТ (для Рутокен ЭЦП действия аналогичны):
Таким образом получили рабочие ключевые документы
на JaCarta ГОСТ (контейнер test-key-jacarta) и Рутокен ЭЦП (контейнер test-key-rutoken).
3.Уничтожим исходный ключевой документ
Описание
Штатными средствами СКЗИ КриптоПРО CSP удалим из реестра ключевой контейнер test-key-reestr.
4. Скопируем ключевую информацию из рабочих ключевых документов
Описание
Попробуем скопировать ключевые контейнеры test-key-rutoken и test-key-jacarta обратно в реестр.
Описание приведено для JaCarta ГОСТ (для Рутокен ЭЦП действия аналогичны).
Как мы видим, ключевая информация успешно скопирована или, другим языком, извлечена из токенов с неизвлекаемым ключом. Получается, что производители токенов и СКЗИ врут? На самом деле нет, и ситуация сложнее, чем кажется на первый взгляд. Исследуем матчасть по токенам.
Матчасть
То, что на рынке принято называть токеном с неизвлекаемым ключом, правильно называется функциональным ключевым носителем (ФКН) (доп. инфо).Главным отличием ФКН от обычных токенов (Рутокен S , JaCarta PKI , …) в том, что при выполнении криптографических преобразований (например, формирование электронной подписи) закрытый ключ не покидает устройство. В то время как при использовании обычных токенов закрытый ключ копируется с токена в память комптьютера.
Использование ФКН требует особой организации взаимодействия между прикладным криптографическим ПО и библиотекой СКЗИ (криптопровайдером или, по-другому, CSP).
Здесь важно увидеть, что программная часть библиотеки СКЗИ должна знать о существовании на токене апплета, реализующего криптографический функционал (например, генерация ключа, подпись данных и т.д.) и уметь с ним работать.
По-новому взглянем на наш тестовый стенд
В качестве одного из ключевых носителей использовался Рутокен ЭЦП. Через «Панель управления Рутокен» о нем можно получить следующую информацию:В последней строке указана фраза «Поддержка КриптоПРО ФКН: Нет», а это значит, что на токене нет апплета, с которым умеет работать СКЗИ КриптоПРО CSP. Таким образом, реализация технологии ФКН с использованием СКЗИ и токенов, описанных в конфигурации тестового стенда, невозможна.
Аналогичная ситуация и с JaCarta ГОСТ. Более того, СКЗИ КриптоПРО CSP, по крайней мере та версия, которая использовалась в тестовом стенде, использует данные ключевые носители как «обычные токены», которые, в свою очередь, являются просто носителями ключа.
Это утверждение очень просто подтвердить. Для этого надо поставить СКЗИ КриптоПРО CSP на чистую машину без драйверов от токенов и подключить токен JaCarta ГОСТ. ОС Windows 7 обнаружит токен JaCarta ГОСТ как «Устройство чтения смарт-карт Microsoft Usbccid (WUDF)». теперь можно попробовать создать ключ на токене и скопировать его в реестр компьютера. Весь функционал СКЗИ успешно отработает.
Как сделать, чтобы все было хорошо?
Чтобы с помощью продуктов ООО “КРИПТО-ПРО” реализовать технологию ФКН, необходимо:1. Купить специальную версию библиотеки СКЗИ:
- для Рутокен ЭЦП - СКЗИ КриптоПРО Рутокен CSP .
- для JaCarta ГОСТ – СКЗИ КриптоПро ФКН CSP .
2. Одновременно с библиотекой СКЗИ необходимо приобрести специально подготовленные токены, содержащие в себе программные части (апплеты), с которыми умеет работать КриптоПРО Рутокен CSP или КриптоПро ФКН CSP соответственно.
Получается, что Рутокен ЭЦП и JaCarta ГОСТ не являются токенами с неизвлекаемым ключом?
Опять нет. Данные устройства могут реализовывать функционал ФКН (но, возможно, в меньшем объеме, чем при использовании их совместно с СКЗИ КриптоПРО), но для этого нужен софт, который умеет работать с апплетами размещенными на токенах. Таким софтом может быть КриптоАРМ Стандарт 5 Плюс . Он это умеет . При генерации ключевой пары в мастере КриптоАРМ можно выбрать криптопровайдер, который будет использоваться, например, Rutoken ECP или eToken GOST. Это и позволит использовать токен как ФКН.Выводы
- Не верьте продавцам, чушь вам городящим. Использование обычных версий криптопровайдера КриптоПРО CSP и обычных Рутокен ЭЦП или JaCarta ГОСт не позволяют реализовать технологию ФКН.
- Для использования технологии ФКН совместно с продуктами ООО «КРИПТО-ПРО» необходимы как специально подготовленные токены, содержащие апплет, с которым умеет работать СКЗИ, так и специальные версии криптопровайдера КриптоПРО CSP , которые умеют работать с апплетом на токенах.
- Рутокен ЭЦП и JaCarta ГОСТ умеет самостоятельно реализовывать технологию ФКН, но для этого необходим специальный софт.
1. Начало работы
После одобрения оператором УЦ запроса на сертификат выпущенный сертификат можно скачать и установить через сайт УЦ.
Для этого необходимо зайти в личный кабинет на сайте удостоверяющего центра (УЦ):
1.1. запустить браузер Internet Explorer (для Windows XP/7/8/8.1/10);
1.2. перейти на главную страницу сайта УЦ по адресу: , после чего пройти по ссылке "Вход в личный кабинет" .
Главная страница сайта УЦ
2. Вход в личный кабинет
В открывшемся окне необходимо ввести логин и пароль , которые были высланы в письме от Отдела продаж, и нажать кнопку " Выполнить вход" .
Вход в личный кабинет
3. Скачивание сертификата
При нажатии кнопки " Выполнить вход" открывается Личный кабинет , где можно скачать выпущенный сертификат. Для этого в левой части окна необходимо нажать "Сертификаты – Действительные" , найти необходимый выпущенный сертификат и напротив него в столбце "Файл" нажать на ссылку " Скачать" .
Скачивание сертификата
В нижней части окна браузера появится окно выбора действий со скачиваемым файлом, необходимо нажать " Сохранить " .
Выбор действий со скачиваемым файлом
4. Работа с сертификатом
4.1. Запуск программы Крипто Про CSP
Чтобы установить сертификат для работы из реестра компьютера или съемного носителя, запустите программу Крипто Про CSP. Для этого зайдите в меню Пуск → Все программы → КРИПТО-ПРО → КриптоПро CSP .
Запуск КриптоПро CSP
4.2. Установка сертификата
В программе перейдите на вкладку " Сервис" и нажмите кнопку " Установить личный сертификат " .
Вкладка "Сервис"
В открывшемся окне нажмите на кнопку " Обзор" , выберите сертификат, который необходимо установить, и нажмите на кнопки " Открыть" и "Далее" .
Выбор файла сертификата
В окне "Сертификат для установки" отобразятся основные сведения, содержащиеся в устанавливаемом сертификате. Необходимо нажать "Далее" .
Просмотр сведений сертификата
В окне " Контейнер закрытого ключа" необходимо указать контейнер закрытого ключа, который соответствует устанавливаемому сертификату. Для автоматического поиска контейнера, соответствующего устанавливаемому сертификату, можно установить галочку в поле "Найти контейнер автоматически" .
Выбор контейнера закрытого ключа
* Важно:
- если Вы хотите работать без съемного носителя (дискеты, флеш-накопителя, Рутокен, eToken и подобных носителей), то контейнер закрытого ключа, соответствующий устанавливаемому сертификату, должен находиться в реестре компьютера.
- если Вы хотите работать со съемным носителем (дискетой, флеш-накопителем, Рутокен, eToken и подобным носителем), то контейнер закрытого ключа, соответствующий устанавливаемому сертификату, должен находится на съемном носителе.
В окне "Хранилище сертификатов" необходимо удостовериться, что в поле "Имя хранилища сертификатов" указано "Личное" , а в поле " Установить сертификат в контейнер" стоит галочка, после чего нажать "Далее" .
Хранилище сертификатов
В окне " Завершение работы мастера установки личного сертификата" убедитесь, что выбраны правильные параметры и нажмите кнопку "Готово" для выполнения установки сертификата.
Завершение установки
Также для успешного построения пути сертификации необходимо установить корневые сертификаты . Для этого:
- скачайте файл Program Center CA.p7b по ;
- нажмите по скачанному файлу правой кнопкой мыши и выберите "Установить сертификат" :
Установка корневых сертификатов
- в открывшемся окне нажмите " Далее" :
Мастер импорта сертификатов
- нажмите " Далее" :
Мастер импорта сертификатов