КриптоПро СSP 5.0 R2 и PKCS#11
Опубликовано Наталья Мовчан on 2021-06-22 16:09
|
|
КриптоПро CSP, начиная с версии CSP 5.0 R2, получил поддержку ключевых носителей через интерфейс PKCS#11. Что важно знать про PKCS#11Это не приложение, не библиотека и не часть операционной системы. Это просто описание интерфейса встраивания. Если производитель устройства хочет, чтобы его устройство встроили в какое-то приложение, использующее PKCS#11, он должен разработать собственную динамическую библиотеку (.dll на Windows или .so на Linux), которая будет реализовывать указанный интерфейс. Тогда всё, что останется сделать прикладному приложению, - указать правильный путь до переданной библиотеки и использовать её в соответствии с известными спецификациями PKCS#11. По сути, описанная схема встраивания и использования PKCS#11 полностью аналогична тому, как используется интерфейс CryptoAPI, с помощью которого приложения используют криптопровайдеры. Главный вывод, который следует из вышеуказанного, - для работы с ключевым носителем через PKCS#11 первым делом нужно установить PKCS#11-библиотеку конкретного производителя:
N.B. На нашем сайте доступен установщик КриптоПро CSP 5.0 R2 для Windows, включающий в себя pkcs#11 модули компаний Актив, Аладдин Р.Д. и ISBC Как CSP 5.0 11455 работает с неизвлекаемыми ключамиПервая сертифицированная версия КриптоПро CSP 5.0 умеет работать с неизвлекаемыми ключами на всех поддерживаемых токенах (прежде всего, Рутокен ЭЦП 2.0, JaCarta-2 ГОСТ и ESMART Token ГОСТ) напрямую. Производители токенов разработали специальные библиотеки (модули поддержки), которые оптимально формировали последовательности команд для выполнения операций. У такого подхода есть плюсы:
Несмотря на значительный набор достоинств у данного подхода есть и ряд недостатков:
Что изменилось в CSP 5.0 R2 12000Взвесив все плюсы и минусы существующего подхода, мы приняли решение начать перевод поддержки носителей с неизвлекаемыми ключами с интерфейса READER на PKCS#11. Нами был написан модуль поддержки Cryptoki (cryptoki.dll, cprocsp-rdr-cryptoki), который отображает интерфейс READER в PKCS#11. Поскольку этот релиз является первым с данной опцией, он обладает рядом особенностей: Рутокен
JaCarta и ESMART
Панель управления - КриптоПро CSP - Оборудование - Настроить считыватели - Считыватель смарт-карт PKCS#11 - Удалить - Добавить - Считыватель смарт-карт PKCS#11. Рекомендуем отмечать галочками только те носители, которые вы действительно планируете использовать на данной рабочей станции, иначе в системном журнале будут множество ошибок загрузки библиотек:
Создание ключей и имя считывателя Для создания ключей через PKCS#11-библиотеку в списке носителей нужно выбирать носитель с именем, содержащим PKCS#11. Например:
Имя считывателя для PKCS#11-режима, которое используется в формате FQCN, отличается от стандартного. В перечислении оно начинается с PKCS11: Winlogon, Распространение сертификата и RDP К сожалению, изменение имени считывателя (добавление нового) сказалось на поддержке стандартных системных служб криптографии Windows.
Поддержка иных библиотек PKCS#11 Технически вы можете подключить любую другую библиотеку PKCS#11. Если она следует стандарту и его расширениям от ТК26, то, скорее всего, её поддержка заработает «из коробки». Подобное подключение будет соответствовать правилам использования КриптоПро CSP только при использовании ключевых носителей из Формуляра CSP. Добавить можно в свойствах считывателя PKCS#11: Панель управления - КриптоПро CSP - Оборудование - Настроить считыватели - Считыватель смарт-карт PKCS#11 - Свойства - Настройки:
Обратите внимание, что на данной вкладке обязательно указывать путь только до 64-разрядной библиотеки. Если она будет находиться в стандартной системной директории System32, то 32-разрядная библиотека будет автоматически загружаться из директории SysWOW64. Если же вы тестируете библиотеки, не установленные в системный стандартный путь, рекомендуем прописать путь до обеих библиотек.
Несколько важных замечаний, на которые нужно обратить внимание:
| |
|