КриптоПро | Что такое PKI

КриптоПро | Что такое PKI ЭЦП

Криптопро — что это такое | softmagazin

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

Так, в рамках обзора функций КриптоПро, можно обозначить, что криптопровайдер требует права администратора для установки его на компьютер. СКЗИ имеет несколько версий, каждая из которых подходит для определенной версии ОС. Идентификация электронных документов, защита соединений происходит с использованием криптографических методов, соответствующих отечественным стандартам. Чтобы ознакомиться с совместимостью ПО с различными операционных системами и UNIX-подобными ОС, рекомендует прочесть обзор «Установка КриптоПро на Windows, Linux и Mac OS».

Возможности криптопровайдера

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

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


КриптоПро соответствует всем принятым российским стандартам и находится в списке средств криптографии, утвержденном ФСБ РФ.
Как установить и пользоваться КриптоПро

Без криптопровайдера не получится работать с электронной подписью. Поэтому перед тем, как настроить ЭЦП на компьютере, Крипто Про необходимо установить. Программа может поставляться сразу с сертификатом или скачивается на сайте разработчика или УЦ, выпустившего электронную подпись.

Установка программы не представляет особой сложности — она поддерживает все основные операционные системы и браузеры, поэтому использование дополнительных приложений не требуется. Инсталляция выполняется под правами администратора. Дополнительные настройки устанавливаются в зависимости от особенностей использования ЭЦП согласно руководству разработчика. По завершению процесса компьютер необходимо перезагрузить.


Разработчик предоставляет возможность использования демо-программы, действующей в течение 90 дней с момента установки. Для дальнейшей работы с ЭЦП потребуется приобрести платную версию — с ценой лицензии Крипто Про можно ознакомиться на сайте разработчика.  
Установка ЭП в КриптоПро

Для использования электронной подписи помимо криптопровайдера необходимы корневой сертификат УЦ и личный сертификат ЭП, выдающиеся удостоверяющим центром на каком-либо носителе. Последний инсталлируется средствами КриптоПро. Но прежде необходимо установить драйвера USB-токена(предоставляются УЦ или скачиваются с официальных сайтов), чтобы компьютер распознал ваш ключ.

Как установить электронную подпись в Крипто Про (личный сертификат):


При установке ЭЦА на устаревших операционных системах операция выполняется через кнопку “Установить личный сертификат» в вкладке «Сервис» программы. Пути к ключу и хранилищу указываются вручную через «Обзор».

Корневой сертификат выдается УЦ или скачивается на официальном сайте удостоверяющего центра. Для установки его достаточно загрузить на компьютер, открыть файл и нажать кнопку «Установить сертификат». После чего следовать инструкциям мастера импорта. После завершения всех операций рекомендуется проверить корректность установки — в Крипто Про в окне просмотра сертификата ЭП при нажатии кнопки «Свойства» во вкладке «Путь сертификации» должны присутствовать все корневые сертификаты УЦ.  Это обязательное условие для нормального использования электронной подписи.


Без корневого сертификата ключ ЭЦП не будет признан действительным, так как проверить его подлинность невозможно. Поэтому программа будет выдавать ошибку и не даст подписать документ. 

Возможные проблемы

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

В компании «Ленпромаудит» предусмотрена всесторонняя помощь и техническая поддержка для ЭЦП, выпущенных нашим удостоверяющим центром. Обращайтесь к нам, и вас не будет беспокоить вопрос, как добавить подпись в Крипто Про, выбрать драйвер USB-токена или установить корневой сертификат.

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

Достоинства крипто про

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

Так, к дистрибутиву предусмотрен дополнительный плагин КриптоПро ЭЦП Browser plug-in, встраивающийся в операционную систему и обеспечивающий использование ЭЦП на электронных площадках. Он подгружает подписанные данные из криптопровайдера и позволяет создавать и проверять электронную подпись на веб-страницах всех современных браузеров — Yandex, Google, Mozilla, Explorer и т.д.

Настройка и диагностика криптопро csp

Проверим, видит ли криптографический провайдер наш токен и другие доступные типы носителей следующими командами:

/opt/cprocsp/bin/amd64/csptest -card -enum -v –v

/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251

/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251

Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 — это наш носитель.

Следуя инструкции КриптоПро CSP для Linux. Настройка, выполняем его регистрацию в криптографическом провайдере:

/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00"

КриптоПро | Что такое PKI

В результате выполнения в конфигурационный файл /etc/opt/cprocsp/config64.iniв раздел [KeyDevicesPCSC] будет добавлена запись:

[KeyDevicesPCSC»Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00″Default]

Чтобы выполнить требования Формуляра, Правил пользования и Руководства администратора безопасности КриптоПро CSP:

Использование СКЗИ «КриптоПро CSP» версии 4.0 с выключенным режимом усиленного контроля использования ключей не допускается. Включение данного режима описано в документах ЖТЯИ.00087-01 91 02. Руководство администратора безопасности.

Необходимо включить режим усиленного контроля использования ключей:

/opt/cprocsp/sbin/amd64/cpconfig -ini 'configparameters' -add long StrengthenedKeyUsageControl 1

Проверяем, что режим включен:

cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl

Выполняем перезапуск службы криптографического провайдера:

/etc/init.d/cprocsp restart
/etc/init.d/cprocsp status

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

/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext

/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique

CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:REA
AcquireContext: OK. HCRYPTPROV: 16052291
alfa_shark1                        |SCARDJACARTA_4E3900154029304CCC00E9F6
OK.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 4.560 sec
[ErrorCode: 0x00000000]

Обучение

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

[КП06] Использование ЭЦП и PKI. Юридические, теоретические и практические основы использования электронной цифровой подписи и инфраструктуры открытых ключей в прикладных системах организации.

[КП03] Теория и Практика применения PKI. Теоретические основы, стандарты и варианты практических подходов к построению инфраструктуры открытых ключей.

Построение PKI на основе продуктов Microsoft с использованием сертифицированного криптопровайдера КриптоПро CSP.

Академия АйТи предлагает следующие курсы, связанные с PKI:

Программа учебного курса [PKI-001] Применение инфраструктуры открытых ключей и ЭЦПориентирована на администраторов безопасности, эксплуатирующих программные продукты средство криптографической защиты информации «КриптоПро CSP» и приложение «КриптоАРМ».

Рассматриваются вопросы внутренней структуры продуктов, процессы их инсталляции, эксплуатации и администрирования. Анализируются Российское законодательство, относящееся к использованию PKI, процедуры подготовки операционной системы (ОС) для установки и эксплуатации решений.

Плагин крипто про эцп browser plug-in

Плагин поддерживает все популярные операционные системы — Microsoft Windows, Linux, iOS, Android, Apple MacOS и другими ОС, работает со всеми стандартными приложениями — клиент Microsoft Outlook, офисным пакетом Microsoft Office, продуктами Adobe и т.д.


Плагин распространяется бесплатно.

Причина 1

Официальная документация на

больше адаптирована под операционные системы Astra Linux и ALT Linux, сертифицированные в Минобороны, ФСТЭК и ФСБ как средства защиты информации.

Причина 2

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

Причина 3

UPD 16.04.2022:

В процессе настройки среды и оборудования выяснилось, что носитель, первым оказавшийся в распоряжении, был вовсе не JaCarta PKI Nano, как ожидалось, а устройство работающее в режиме SafeNet Authentication Client eToken PRO.

UPD 16.04.2022: Некогда Банку требовалось устройство, которое могло бы работать в той же инфраструктуре, что и eToken PRO (Java). В качестве такого устройства компания “ЗАО Аладдин Р.Д.” предложила токен JaCarta PRO, который был выбран банком.

UPD 16.04.2022: Благодарю компанию Аладдин Р.Д., за то что помогли разобраться и установить истину.

В этой ошибке нет никаких политических и скрытых смыслов, а только техническая ошибка сотрудника при подготовке документов. Токен JaCarta PRO является продуктом компании ЗАО “Аладдин Р.Д.”. Апплет, выполняющий функциональную часть, разработан компанией “ЗАО Аладдин Р.Д”.

Этот eToken PRO относился к партии, выпущенной до 1 декабря 2022 года. После этой даты компания «Аладдин Р.Д.» прекратила продажу устройств eToken PRO (Java).

Забегая немного вперед, нужно сказать, что работа с ним настраивалась через соответствующие драйверы — SafenetAuthenticationClient-10.0.32-0.x86_64, которые можно получить только в поддержке Аладдин Р.Д. по отдельной online заявке.

В КриптоПро CSP для работы с этим токеном требовалось установить пакет cprocsp-rdr-emv-64 | EMV/Gemalto support module.

Данный токен определялся и откликался. При помощи утилиты SACTools из пакета SafenetAuthenticationClient можно было выполнить его инициализацию. Но при работе с СКЗИ он вел себя крайне странно и непредсказуемо.

Проявлялось это следующим образом, на команду:

csptest -keyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] (205D325E5842) 00 00alfa_shark' -check 


Выдавался ответ, что все хорошо:

[ErrorCode: 0x00000000]

Но сразу после попытки зачитать ключи программно эта же проверка начинала выдавать ошибку:

[ErrorCode: 0x8009001a]

Согласно перечню кодов ошибок объектной модели компонентов Microsoft

NTE_KEYSET_ENTRY_BAD
0x8009001A
Keyset as registered is invalid.

«Невалидный набор ключей» — причина такого сообщения, возможно, кроется либо в старом чипе, прошивке и апплете Gemalto, либо в их драйверах для ОС, которые не поддерживают новые стандарты формирования ЭП и функции хэширования ГОСТ Р 34.10-2022 и ГОСТ Р 34.11-2022.

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

Справедливости ради требуется отметить, что SafeNet eToken PRO корректно работал с ключами ГОСТ Р 34.10-2001 в ОС Windows 7 и 10.

Можно было бы попробовать установить СКЗИ КриптоПро CSP 4.0 ФКН (Gemalto), но целевая задача — защитить наши ключи ЭП и шифрования с помощью сертифицированных ФСБ и ФСТЭК изделий семейства JaCarta, в которых поддерживаются новые стандарты.

Проблему удалось решить, взяв настоящий токен JaCarta PKI в (XL) обычном корпусе.

Но на попытки заставить работать Safenet eToken PRO времени было потрачено немало. Хотелось обратить на это внимание и, возможно, кого-то оградить от подобного.

Причина 4

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

После установки токена JaCarta PKI в USB порт сервера и запуска системы проверяем, что новое устройство обнаружено и появилось в списке:

lsusb

В нашем случае это Bus 004 Device 003: ID 24dc:0101

Для диагностики считывателей можно воспользоваться утилитой pcsc-tools из проекта security:chipcard (software.opensuse.org).

Запускается командой:

pcsc_scan

Пока не установлены все необходимые пакеты, информация о токене не отобразится.

Программное извлечение ключей

В общем виде пример извлечения закрытого ключа и сертификата открытого ключа из контейнера на токене с помощью КриптоПро Java CSP следующий:

import ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry;
import ru.CryptoPro.JCP.params.JCPProtectionParameter;


 KeyStore keyStore = KeyStore.getInstance("Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00", "JCSP");
            keyStore.load(null, null);

        JCPPrivateKeyEntry entry = null;
        X509Certificate certificate = null;
        PrivateKey privateKey = null;

        try {
         
            entry = (JCPPrivateKeyEntry) keyStore.getEntry(keyAlias,
                    new JCPProtectionParameter(pwd));
            
            certificate = (X509Certificate) entry.getCertificate();
            privateKey = entry.getPrivateKey();
         
        } catch (UnrecoverableEntryException | NullPointerException e) {
            LOGGER.log(Level.WARNING, PRIVATE_KEY_NOT_FOUND   keyAlias   ExceptionUtils.getFullStackTrace(e));
        }

Если действовать так:

Key key = keyStore.getKey(keyAlias, pwd);

то криптографический провайдер будет пытаться в системе отобразить через консоль или GUI окно запрос на ввод пароля к контейнеру.

Работа с токеном jacarta pki


Запустим программу Xming (X11 forwarding) на своей станции, чтобы по SSH иметь возможность открывать и работать с графическими интерфейсами нужных утилит.

После установки IDProtectClient — программного обеспечения для работы с JaCarta PKI, на сервере в папке /usr/share/applications появились два файла:

Athena-IDProtectClient.desktopAthena-IDProtectManager.desktop

Это ярлыки, в которых можно посмотреть параметры запуска утилит Exec=/usr/bin/SACTools

Запустим утилиту IDProtectPINTool.

С помощью нее задаются и меняются PIN-коды доступа к токену.

/usr/bin/IDProtectPINTool

При первой инициализации токена будет полезна ссылка, содержащая PIN-коды (пароли) ключевых носителей по умолчанию

Программа IDProtect_Manager позволяет просматривать информацию о токене и контейнере с ключами и сертификатом:

/usr/bin/IDProtect_Manager

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

Для работы с SafeNet Authentication Client eToken PRO существуют аналогичные программы — SafeNet Authentication Client Monitor и SafeNet Authentication Client Tools, которые запускаются так:

/usr/bin/SACMonitor
/usr/bin/SACTools

КриптоПро | Что такое PKI

Выполнять операции непосредственно с ключевыми контейнерами удобнее в интерфейсе криптографического провайдера КриптоПро JavaCSP:

/jdk1.8.0_181/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane

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

/opt/cprocsp/bin/amd64/csptest -keyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00alfa_shark1' -info

Для диагностики контейнера используется эта же команда с ключом –check

/opt/cprocsp/bin/amd64/csptest -keyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00alfa_shark' –check

Потребуется ввести пароль от контейнера:

Результаты


Отторгаемый ключевой носитель-токен установлен во внутренний USB-порт сервера.

Само серверное оборудование опломбировано и размещается в помещении с ограниченным доступом.

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

Установка драйверов и по для работы с jacarta pki


На странице Поддержки сайта «Аладдин Р.Д.» загружаем

Согласно Руководству по внедрению «JaCarta для Linux» пункт 4.2., первым делом требуется установить пакеты pcsc-lite, ccid и libusb.

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

Выполняем проверку наличия этих пакетов и установку:

zypper search pcsc-lite

zypper search libusb

zypper install pcsc-lite

zypper search CCID

zypper install pcsc-ccid

zypper search CCID

zypper install libusb

В итоге пакет pcsc-lite был обновлен, CCID установлен, libusb никаких действия не требовалось.

Следующими двумя командами выполняем установку пакета с драйверами и программным обеспечением непосредственно для работы с JaCarta PKI:

zypper install idprotectclientlib-637.03-0.x86_64.rpm

zypper install idprotectclient-637.03-0.x86_64.rpm

Проверяем, что драйверы и ПО для JaCarta PKI установились:

zypper search idprotectclient

При попытках заставить работать SafeNet eToken PRO я нашел информацию, что предустановленный в SLES пакет openct — Library for Smart Card Readers может конфликтовать с pcsc-lite — PCSC Smart Cards Library, установку которого требует руководство Аладдин Р.Д.

zypper search openct

Поэтому пакет openct удаляем:

rpm -e openct

Теперь все необходимые драйверы и ПО для работы с токеном установлены.

Выполняем диагностику с помощью утилиты pcsc-tools и убеждаемся, что JaCarta определяется в операционной системе:

pcsc_scan

Установка пакетов криптопро csp

При установке КриптоПро CSP по умолчанию нужные пакеты для работы с токенами и смарт-картами отсутствуют.

zypper search cprocsp

Выполняем установку в CSP компонента поддержки JaCarta components for CryptoPro CSP

zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm

Некоторые компоненты имеют зависимости. Так, например, если попытаться выполнить установку пакета поддержки SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm — EMV/Gemalto support module, то получим сообщение о необходимости сначала установить базовый компонент CSP поддержки считывателей cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm — PC/SC components for CryptoPro CSP readers:

zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides cprocsp-rdr-pcsc-64 >= 4.0 needed by cprocsp-rdr-emv-64-4.0.9944-5.x86_64
 Solution 1: do not install cprocsp-rdr-emv-64-4.0.9944-5.x86_64
 Solution 2: break cprocsp-rdr-emv-64-4.0.9944-5.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): c

Устанавливаем базовые пакеты поддержки считывателей и ключевых носителей:

zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm

zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm

Теперь можно установить модули для работы с остальными видами носителей и компонент GUI:

zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm

zypper install cprocsp-rdr-novacard-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-mskey-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-gui-gtk-64-4.0.9944-5.x86_64.rpm

КриптоПро | Что такое PKI

Проверяем итоговую конфигурацию КриптоПро CSP:

zypper search cprocsp
Loading repository data...
Reading installed packages...

S | Name | Summary | Type— —————————— —————————————————- ———i | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | packagei | cprocsp-rdr-emv-64 | EMV/Gemalto support module | packagei | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | packagei | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | packagei | cprocsp-rdr-mskey-64 | Mskey support module | packagei | cprocsp-rdr-novacard-64 | Novacard support module | packagei | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| packagei | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | packagei | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | packagei | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | packagei | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | packagei | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | packagei | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package

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

/etc/init.d/cprocsp restart
/etc/init.d/cprocsp status

КриптоПро | Что такое PKI

Оцените статью
ЭЦП64
Добавить комментарий