CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP Электронная цифровая подпись
Содержание
  1. Установка сертификата
  2. Установка КриптоПро ЭЦП Browser plug-in
  3. Установка КриптоПро CSP
  4. Подключение в коде
  5. Поиск сертификата
  6. Формирование подписи
  7. Проверка подписи
  8. Установка дополнительных файлов поддержки КрптоПро
  9. Проверка подписи в файле
  10. Естественный
  11. Обучающий
  12. Электронная подпись[править]
  13. Создание и проверка подписи в командной строке[править]
  14. Проверка подписи[править]
  15. Извлечение подписанного файла[править]
  16. Создание и проверка ЭЦП в ALT CSP КриптоПро[править]
  17. Создание и проверка ЭЦП с использованием cptools[править]
  18. Ключ для работы в режиме замкнутой программной среды Astra Linux SE.
  19. Идентификация токена
  20. Информация о контейнерах
  21. Проверка работы контейнера
  22. Удаление контейнера
  23. Копирование контейнера
  24. Смена пароля на контейнер (снятие паролей с контейнера)
  25. Менеджер сертификатов КриптоПро в Linux
  26. Просмотр
  27. Экспорт сертификатов на другую машину
  28. Проверка цепочки сертификатов
  29. Ввод лицензионного кода
  30. Установка КриптоПро CSP[править]
  31. Установка[править]
  32. Обновление[править]
  33. Прописывание путей к исполняемым файлам[править]
  34. Проверка лицензии[править]
  35. Проверка версии[править]
  36. Удаление КриптоПро[править]
  37. КриптоПро JCP[править]
  38. Поддержка Рутокена[править]
  39. Запуск контрольной панели[править]

Установка сертификата

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

Компонент КриптоПро CSP версии 3. 9 был установлен в Centos 7 в папку /opt/cprocsp. Для того, чтобы не было конфликтов между утилитами mono и КриптоПро, имеющих одинаковые названия (например, certmgr), в переменные окружения не стали вносить путь до папки и все утилиты вызывались по полному пути.

Если среди списка нет считывателя с папки на диске (HDIMAGE) ставим его:
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store

Установленный сертификат можно увидеть с помощью следующей команды:
/opt/cprocsp/bin/amd64/certmgr -list mMy

Если с сертификатом все нормально, то можно переходить к подключению в коде.

Установка КриптоПро ЭЦП Browser plug-in

Для установки КриптоПро ЭЦП Browser plug-in потребуется утилита alien. Установим ее командой:

sudo apt install alien

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Далее скачиваем установочный пакет КриптоПро ЭЦП Browser plug-in с официального сайта КриптоПро.

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Распаковываем архив cades_linux_amd64. zip и переходим перейти в каталог с распакованными файлами, выполним команду Открыть в терминале и далее выполним команды для преобразования rpm-пакетов в deb-пакеты:

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

alien -dc cprocsp-pki-2. 0-amd64-cades. rpm

alien -dc cprocsp-pki-2. 0-amd64-plugin. rpm

Далее устанавливаем deb-пакеты:

sudo alien -kci cprocsp-pki-cades_2. 0-2_amd64. deb

sudo alien -kci cprocsp-pki-plugin_2. 0-2_amd64. deb

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Обратите внимание: при установке этих двух пакетов не должно быть ошибок.

Установка КриптоПро CSP

Архив с программным обеспечением (КриптоПро CSP) можно загрузить c официального сайта www. cryptopro. ru, предварительно зарегистрировавшись на сайте.

Для ОС Astra Linux следует загрузить пакет КриптоПро CSP 4 и выше версии –  пакет для 64 разрядной системы.

Пробный период использования КриптоПро CSP составляет 3 месяца, по истечении которых необходимо приобрести полноценную лицензию.

Для написания настоящей статьи была использована сертифицированная версия ПО «КриптоПро» «4. 0 R4». При этом был выполнен следующий алгоритм действий:

1) загрузить архив с сертифицированной версией ПО «КриптоПро». Название полученного файла: «linux-amd64_deb. tgz»;

2) открыть “Терминал Fly” (alt+T);

3) разархивировать полученный архив в терминале командой:

tar -zxf linux-amd64_deb. tgz

5) перейти в каталог с ПО:

6) выполнить установку ПО с помощью запуска сценария “install. sh” или  “instal_gui. sh” командой:

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

* Выбрать необходимые модули, библиотеки.

Подключение в коде

Анализ методов библиотек криптографии оказался удачным, т. КриптоПро реализовало библиотеку «libcapi20. so» которая полностью мимикрирует под стандартные библиотеки Windows шифрования — «crypt32. dll» и «advapi32. dll». Возможно, конечно, не целиком, но все необходимые методы для работы с криптографии там в наличии, и почти все работают.

Поэтому формируем два статических класса «WCryptoAPI» и «LCryptoAPI» каждый из которых будет импортировать необходимый набор методов следующим образом:

Синтаксис подключения каждого из методов можно либо сформировать самостоятельно, либо воспользоваться сайтом pinvoke, либо скопировать из исходников. Net (класс CAPISafe). Из этого же модуля можно почерпнуть константы и структуры связанные с криптографией, наличие которых всегда облегчают жизнь при работе с внешними библиотеками.

А затем формируем статический класс «UCryptoAPI» который в зависимости от системы будет вызывать метод одного из двух классов:

Таким образом используя методы класса UCryptoAPI можно реализовывать почти единый код под обе системы.

Поиск сертификата

Работа с криптографией обычно начинается с поиска сертификата, для этого в crypt32. dll имеется два метода CertOpenStore (открывает указанное хранилище сертификатов) и простой CertOpenSystemStore (открывает личные сертификаты пользователя). В силу того, что работа с сертификатами не ограничивается только личными сертификатами пользователя подключаем первый:

Поиск происходит в несколько этапов:

  • открытие хранилища;
  • формирование структуры данных по которым ищем;
  • поиск сертификата;
  • если требуется, то проверка сертификата (описана в отдельном разделе);

В ходе поиска сертификатов есть несколько тонких моментов.

КриптоПро в Linux работает с ANSI строками, а в Windows с UTF8, поэтому:

  • передавая строку для поиска (например, по имени Subject) ее необходимо преобразовывать в набор байт различными кодировками;
  • для всех констант криптования, у которых есть вариация по типу строки (например, CERT_FIND_SUBJECT_STR_A и CERT_FIND_SUBJECT_STR_W) в Windows необходимо выбирать *_W, а в Linux *_A;

Метод MapX509StoreFlags можно взять напрямую из исходников Microsoft без изменений, он просто формирует итоговую маску исходя из. Net флагов.

Значение по которому происходит поиск зависит от типа поиска (сверяйтесь с MSDN для CertFindCertificateInStore), в примере приведены два самых часто используемых варианта — для строкового формата (имена Subject, Issuer и проч) и бинарного (отпечаток, серийный номер).

Процесс создания сертификата из IntPtr в Windows и в Linux сильно отличается. Windows создаст сертификат простым способом:

в Linux же приходиться создавать сертификат в два этапа:

В дальнейшем нам для работы потребуется доступ к hCert, и его надо бы сохранить в объекте сертификата. В Windows его позже можно достать из свойства Handle, однако Linux преобразует структуру CERT_CONTEXT, лежащую по ссылке hCert, в ссылку на структуру x509_st (OpenSSL) и именно ее прописывает в Handle. Поэтому стоит создать наследника от X509Certificate2 (ISDP_X509Cert в примере), который сохранит у себя в отдельном поле hCert в обеих системах.

Не стоит забывать, что это ссылка на область неуправляемой памяти и ее надо освобождать после окончания работы. Net 4. 5 X509Certificate2 не Disposable — очистку методом CertFreeCertificateContext, надо проводить в деструкторе.

Формирование подписи

При работе с ГОСТовыми сертификатами почти всегда используются отцепленные подписи с одним подписантом. Для того чтобы создать такую подпись требуется довольно простой блок кода:

В ходе работы метода формируется структура с параметрами и вызывается метод подписания. Структура параметров может позволять сохранить в подписи сертификаты для формирования полной цепочки (поля cMsgCert и rgpMsgCert, первый хранит количество сертификатов, второй список ссылок на структуры этих сертификатов).

Метод подписания может получать один или несколько документов для одновременного подписания одной подписью. Это, кстати, не противоречит 63 ФЗ и бывает очень удобно, т. пользователь вряд ли обрадуется необходимости несколько раз нажимать на кнопку «подписать».

Читайте также:  Как бесплатно получить электронную подпись на сайте налоговой — инструкция

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

Единственной серьезной проблемой является поиск OID алгоритма хэширования (Digest) используемый при подписании — в явном виде его нет в сертификате (там есть только алгоритм самой подписи). И если в Windows его можно указать пустой строкой — он подцепится автоматически, но Linux откажется подписывать если алгоритм не тот.

Но тут есть хитрость — в информации об алгоритме подписи (структура CRYPT_OID_INFO) в pszOID храниться OID подписи, а в Algid — храниться идентификатор алгоритма хэширования. А преобразовать Algid в OID уже дело техники:

Получение OID алгоритма хэширования

Внимательно прочитав код можно удивится, что идентификатор алгоритма получается простым способом (CertOIDToAlgId) а Oid по нему — сложным (CryptFindOIDInfo). Логично было бы предположить использование либо оба сложных, либо оба простых способа, и в Linux оба варианта успешно работают. Однако в Windows сложный вариант получения идентификатора и простой получения OID работает нестабильно, поэтому стабильным решением будет вот такой странный гибрид.

Проверка подписи

Проверка подписи происходит в два этапа, в начале проверяется сама подпись, а затем проверяется сертификат, которым она была сформирована (цепочка, дата подписания и проч). Так же как и при подписании необходимо указать набор подписываемых данных, параметры подписи и саму подпись:

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

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

Установка дополнительных файлов поддержки КрптоПро

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

cprocsp-rdr-pcsc-64_4. 0-4_amd64. deb

cprocsp-rdr-rutoken-64_4. 0-4_amd64. deb

ifd-rutokens_1. 1_amd64. deb

cprocsp-rdr-gui-gtk-64_4. 0-4_amd64. deb

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Проверка подписи в файле

Для проверки прикрепленной подписи выполните:

CryptCP 5. 0 (c) “КРИПТО-ПРО”, 2002-2018. Утилита командной строки для подписи и шифрования файлов.

Найдено сертификатов: 4Цепочки сертификатов проверены. Папка ‘. /’:raport. pdf. sig. Проверка подписи.

Естественный

использовать ключ -verall, указывающий, что надо найти всех подписавших, в том числе в сообщении:

CryptCP 5. 0 (c) “КРИПТО-ПРО”, 2002-2018. Утилита командной строки для подписи и шифрования файлов. Папка ‘/home/shuhrat/smolensk/’: /home/shuhrat/smolensk/raport. pdf. Проверка подписи.

Цепочки сертификатов проверены. Папка ‘. /’: raport. pdf. Проверка подписи.

Обучающий

указать в качестве хранилища сертификатов само сообщение (ключ -f):

Электронная подпись[править]

Существуют два вида электронной подписи:

  • прикреплённая (attached) — в результирующий файл упакованы данные исходного файла и подпись;
  • откреплённая (detached) — подписываемый документ остается неизменным, подпись же сохраняется в отдельном файле. Для проверки отсоединенной подписи нужны оба файла, файл подписи и файл исходного документа.

Создание и проверка подписи в командной строке[править]

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

Для создания прикрепленной (attached) электронной подписи выполните команду:

Примечание: Проще всего для указания сертификата использовать адрес e-mail.

  • -der — использовать формат DER для файла подписи (по умолчанию используется формат Base64);
  • zayavlenie.pdf — имя подписываемого файла.

На выходе появится файл zayavlenie. pdf. sig, содержащий как сам подписываемый файл, так и электронную подпись.

Для создания открепленной (detached) подписи необходимо заменить ключ -sign на -signf:

Тогда рядом с оригинальным файлом будет лежать файл подписи — zayavlenie. pdf. sgn.

Проверка подписи[править]

Для проверки прикреплённой подписи выполните команду:

Показано, кто подписывал и что подпись проверена.

Для проверки откреплённой подписи выполните команду:

Извлечение подписанного файла[править]

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

$ cryptcp -verify zayavlenie. pdf. sig zayavlenie. pdf

Создание и проверка ЭЦП в ALT CSP КриптоПро[править]

gost-crypto-gui — средство для создания электронной подписи и шифрования файлов.

Установить пакет gost-crypto-gui из репозитория можно, выполнив команду:

# apt-get install gost-crypto-gui

Запустить программу можно:

  • из командной строки:
    $ python /usr/bin/gost-crypto-gui.py
  • в рабочей среде Mate:  ▷  ▷ Подпись и шифрование файлов;
  • в рабочей среде KDE: Меню запуска приложений ▷  ▷ Подпись и шифрование файлов.

С её помощью можно подписывать и проверять подписи файлов:

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Для создания электронной подписи файла необходимо:

  • Нажать кнопку «Подписать файл(ы)».
  • Выбрать файл, который необходимо подписать.
  • Выбрать сертификат и нажать кнопку «Далее»:
  • Ввести пароль на контейнер (если он был установлен):
  • Появится сообщение о подписанном файле:

Опции ЭП настраиваются в меню «Опции» (параметр «Отсоединенная подпись» не работает???):

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Для проверки электронной подписи следует:

  • Нажать кнопку «Проверить подпись».
  • Выбрать подписанный файл.
  • Появится информация о сертификате подписи:

Создание и проверка ЭЦП с использованием cptools[править]

Запустить программу можно из консоли (должен быть установлен cprocsp-cptools-gtk из скачанного архива КриптоПро):

С помощью cptools можно подписывать и проверять подписи файлов.

  • В левом меню выбрать пункт «Создание подписи».
  • Выбрать файл, который необходимо подписать, нажав кнопку «Выбрать файл для подписи» (или ввести адрес файла в текстовое поле под кнопкой «Выбрать файл для подписи»).
  • Изменить имя файла подписи, если оно вас не устраивает:
  • Нажать кнопку «Подписать».
  • Ввести пароль на контейнер (если он был установлен).
  • Появится сообщение о подписанном файле: «Создание подписи завершилось успехом».
  • В левом меню выбрать пункт «Проверка подписи».
  • Выбрать файл с подписью, нажав кнопку «Выбрать файл с подписью для проверки» (или ввести адрес файла в текстовое поле под этой кнопкой).
  • Нажать кнопку «Проверить подпись».
  • Появится информация о результате проверки:

Ключ для работы в режиме замкнутой программной среды Astra Linux SE.

  • Перед импортом ключа, следует предварительно установить пакет
  • Ключ для работы в режиме замкнутой программной среды Astra Linux SE следует загрузить и поместить в предварительно созданную директорию:/etc/digsig/keys/legacy/cryptopro
  • После чего выполнить команду:sudo update-initramfs -uk all
  • и перезагрузить АРМ

Проверить срок истечения лицензии можно командой:

/opt/cprocsp/sbin/amd64/cpconfig -license -view

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Идентификация токена

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

Читайте также:  Закупки площадки АСТ ГОЗ

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

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Чтобы узнать модель подключенного токена, следует ввести команду:

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

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

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

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

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

в формате FQCN, отображается имя носителя:

В этом случае будет выведен список носителей с контейнерами в следующем формате:

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Где \. HDIMAGE – локальный носитель, \. HDIMAGETestCont123 – название контейнера, \. Aktiv Rutoken ECP 00 00 – название носителя (токена).

Подробная информация про “Имена контейнеров”

Информация о контейнерах

Для просмотра подробной информации о контейнерах воспользуйтесь командой:

/opt/cprocsp/bin/amd64/csptestf -keyset -container ‘ИМЯ’ -info

Пример работы команды:

/opt/cprocsp/bin/amd64/csptestf -keyset -container ‘Shuhrat’ -infoCSP (Type:80) v5. 10001 KC1 Release Ver:5. 11233 OS:Linux CPU:AMD64 FastCode:READY:AVX.

AcquireContext: OK. HCRYPTPROV: 8981043GetProvParam(PP_NAME): Crypto-Pro GOST R 34. 10-2012 KC1 CSPContainer name: “Shuhrat”Signature key is available. HCRYPTKEY: 0x8f3b03Exchange key is available. HCRYPTKEY: 0x8f9883Symmetric key is not available. UEC key is not available.

CSP algorithms info:  Type:Encrypt    Name:’GOST 28147-89′(14) Long:’GOST 28147-89′(14)  DefaultLen:256  MinLen:256  MaxLen:256   Prot:0   Algid:00026142

Type:Hash       Name:’GR 34. 11-2012 256′(18) Long:’GOST R 34. 11-2012 256′(22)  DefaultLen:256  MinLen:256  MaxLen:256   Prot:0   Algid:00032801

Type:Signature  Name:’GR 34. 10-2012 256′(18) Long:’GOST R 34. 10-2012 256′(22)  DefaultLen:512  MinLen:512  MaxLen:512   Prot:0   Algid:00011849

Type:Exchange   Name:’DH 34. 10-2012 256′(18) Long:’GOST R 34. 10-2012 256 DH'(25)  DefaultLen:512  MinLen:512  MaxLen:512   Prot:0   Algid:00043590

Type:Exchange   Name:’DH 34. 10-2012 256′(18) Long:’GOST R 34. 10-2012 256 DH'(25)  DefaultLen:512  MinLen:512  MaxLen:512   Prot:0   Algid:00043591

Type:Hash       Name:’GOST 28147-89 MAC'(18) Long:’GOST 28147-89 MAC'(18)  DefaultLen:32   MinLen:8    MaxLen:32    Prot:0   Algid:00032799

Type:Encrypt    Name:’GR 34. 12 64 M'(14) Long:’GOST R 34. 12-2015 64 Magma'(27)  DefaultLen:256  MinLen:256  MaxLen:256   Prot:0   Algid:00026160

Type:Encrypt    Name:’GR 34. 12 128 K'(15) Long:’GOST R 34. 12-2015 128 Kuznyechik'(33)  DefaultLen:256  MinLen:256  MaxLen:256   Prot:0   Algid:00026161

Type:Hash       Name:’GR 34. 13 64 M MAC'(18) Long:’GOST R 34. 13-2015 64 Magma MAC'(31)  DefaultLen:64   MinLen:8    MaxLen:64    Prot:0   Algid:00032828

Type:Hash       Name:’GR 34. 13 128 K MAC'(19) Long:’GOST R 34. 13-2015 128 Kuznyechik MAC'(37)  DefaultLen:128  MinLen:8    MaxLen:128   Prot:0   Algid:00032829

Type:Hash       Name:’GR34. 11-12 256 HMAC'(20) Long:’GOST R 34. 11-2012 256 HMAC'(27)  DefaultLen:256  MinLen:256  MaxLen:256   Prot:0   Algid:00032820

Status:  Provider handles used:        6  Provider handles max:         1048576  CPU Usage:                    6 %  CPU Usage by CSP:             0 %  Measurement interval:         119 ms

Virtual memory used:          15281652 KB  Virtual memory used by CSP:   116572 KB  Free virtual memory:          26053680 KB  Total virtual memory:         41335332 KB

Physical memory used:         14602360 KB  Physical memory used by CSP:  12576 KB  Free physical memory:         5857712 KB  Total physical memory:        20460072 KB

Key pair info:  HCRYPTKEY:  0x8f3b03  AlgID:      CALG_GR3410_12_256 = 0x00002e49 (00011849):    AlgClass: ALG_CLASS_SIGNATURE    AlgType:  ALG_TYPE_GR3410    AlgSID:   73  KP_HASHOID:    1. 643. 2 (ГОСТ Р 34. 11-2012 256 бит)  KP_DHOID:    1. 643. 1 (ГОСТ Р 34. 10 256 бит, параметры по умолчанию)  KP_SIGNATUREOID:    1. 643. 1 (ГОСТ Р 34. 10 256 бит, параметры по умолчанию)  Permissions:    CRYPT_READ    CRYPT_WRITE    CRYPT_IMPORT_KEY    0x800    0x2000    0x20000    0x100000KP_CERTIFICATE:  Not set.

Container version: 2Carrier flags:  This reader is removable. This reader supports unique carrier names. This carrier does not have embedded cryptography. Keys in container:  signature key  exchange keyExtensions (maxLength: 1435):  ParamLen: 46  OID: 1. 643. 9  Critical: FALSE  Size: 19  Decoded size: 24  PrivKey: Not specified – 18. 2020 07:31:07 (UTC)

При наличии кириллических символов в имени ключевого контейнера для дальнейшей работы с таким контейнером необходимо использовать его уникальный идентификатор. Чтобы получить уникальные идентификаторы ключевых контейнеров используйте команду:

/opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc -fqcn -un

Следует учесть про PIN-коды в контейнерах:

  • если само устройство осуществляет аутентификацию (как, например, токен), то PIN при создании контейнера не создаётся, а предъявляется, так как он – свойство устройства. Как следствие: у всех контейнеров на токене одинаковый PIN.
  • если устройство аутентификацию не осуществляет (как HDIMAGE), то при создании контейнера создаётся и PIN-код. Следствие: у всех контейнеров, PIN-код на HDIAMGE может быть разным.

Проверка работы контейнера

Для того чтобы проверить работу контейнера (в том числе возможность выполнения разных операций при текущей лицензии), следует выполнить команду:

/opt/cprocsp/bin/amd64/csptestf -keyset -container ИМЯ -check

/opt/cprocsp/bin/amd64/csptestf -keyset -container Shuhrat -check

AcquireContext: OK. HCRYPTPROV: 28224051

Check header passed.

Signature key is available. HCRYPTKEY: 0x1b53883

Exchange key is available. HCRYPTKEY: 0x1b57e23

License: Cert without license

Check container passed.

Check sign passed.

Check verify signature on private key passed.

Check verify signature on public key passed.

Check import passed (import restricted).

Check import passed.

Certificate in container matches AT_KEYEXCHANGE key.

PrivKey: Not specified – 18. 2020 07:31:12 (UTC)

Total: SYS: 0,030 sec USR: 0,140 sec UTC: 2,430 sec

Удаление контейнера

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

/opt/cprocsp/bin/amd64/csptestf -passwd -cont ‘\. Aktiv Rutoken ECP 00 00TestCont’ -deletek

Копирование контейнера

Для примера скопируем контейнер из локального хранилища в хранилище Рутокена ЕЦП:

csptestf -keycopy -contsrc ‘\. HDIMAGEКонтейнер_оригинал’ -contdest ‘\. Aktiv Rutoken ECP 00 00Контейнер_копия’

Смена пароля на контейнер (снятие паролей с контейнера)

/opt/cprocsp/bin/amd64/csptestf -passwd -cont ‘\. Aktiv Rutoken ECP 00 00TestContainer’ -change ‘новый_пароль’ -passwd ‘старый_пароль

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

/opt/cprocsp/bin/amd64/csptestf -passwd -cont ‘\. Aktiv Rutoken ECP 00 00TestContainer’ -change ‘Ваш_новый_пароль’

Менеджер сертификатов КриптоПро в Linux

Сертификаты делятся на четыре категории:

  • корневые сертификаты – краеугольный камень безопасности, так как цепочки доверия строятся от них.  Корневые сертификаты надо добавлять в хранилища осознанно и внимательно (устанавливаются в uroot, также администратор может поставить их в mroot, где m = Machine, такие сертификаты будут доступны в режиме read only в root-хранилищах всех пользователей);
  • сертификаты партнёров по общению, чтобы проверять их подписи и зашифровывать для них сообщения. Ставятся либо в umy (это не лучшая, но распространенная практика), либо в uAddressBook;

Пример установки личного сертификата, выданного УЦ Министерства Обороны Российской Федерации:

Установка всех личных сертификатов со всех контейнеров в uMy :

/opt/cprocsp/bin/amd64/csptestf -absorb -certs -autoprov

Установка определенного сертификата с определенного контейнера в uMy:

/opt/cprocsp/bin/amd64/certmgr -inst -cont ‘\. Aktiv Rutoken ECP 00 00Ivanov’

Установка сертификата удостоверяющего центра ГУЦ в mRoot:

Установка списка отозванных сертификатов (CRL), ставим его с того же сайта в mca:

В опции -pattern >>>  ‘rutoken’ может быть другим в зависимости от подключенного токена.

В случае, если требуется установка сертификата УЦ и CRL на рабочую станцию, не имеющую доступа к сети, следует сохранить сертификаты в файлах, перенести их на рабочую станцию. и в команде установки заменить параметр -stdin заменить на параметр -file с указанием имени файла. Например:

  • Перенести файлы на рабочую станцию;
  • Установить файлы на рабочей станции:sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file ca2020.cersudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -file crl_20.crl -crl
Читайте также:  Почему в Эльбе не работает электронная подпись

1) Имена хранилищ указаны в формате  certmgr, у cryptcp похожий формат: -mroot и -uAddressBook

2) Из под учетной записи пользователя ставится в uca, из под учетной записи администратора ставить в mca:

3) В опции -pattern можно указать пустые < ‘ ‘ > чтобы установить все сертификаты в uMy. Пример:

/opt/cprocsp/bin/amd64/csptestf -absorb -cert -pattern ”

4) В случае, если личный сертификат извлечен, следует использовать опцию -file :

certmgr -inst -file cert. cer -store uMy

Просмотр

Для просмотра выше установленных сертификатов можно воспользоваться :

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Удаление сертификата из хранилища КриптоПро:

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

Или удаление всех сертификатов:

/opt/cprocsp/bin/amd64/certmgr -del -all

Экспорт сертификатов на другую машину

Закрытые ключи к сертификатам находятся тут: /var/opt/cprocsp/keys.

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

/opt/cprocsp/bin/amd64/certmgr -export -dest cert. cer

Переносим эти файлы на машину и смотрим, какие контейнеры есть:

csptest -keyset -enum_cont -verifycontext -fqcn

И как обычно, связываем сертификат и закрытый ключ:

certmgr -inst -file 1. cer -cont ‘\. HDIMAGEcontainer. name’

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

Can not install certificate
Public keys in certificate and container are not identical

Проверка цепочки сертификатов

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

/opt/cprocsp/bin/amd64/cryptcp -copycert -dn ‘CN=Имя_вашего_сертификата’ -df  /temp/сертификат. cer

Можно указать другое поле сертификата: CN, E, SN, OGRN, SNILS и тд.

Из вывода следует, что у нас отсутствует некий сертификат в цепочке сертификатов. Можно запустить вышеуказанную команду в режиме  debug(отладки):

В нашем примере, из логов можно сделать вывод, что нам надо установить сертификат УЦ МО с CN=Министерство обороны Российской Федерации:

/opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file minoboron-root-2018. crt

Для того, чтобы убедиться в устранении ошибки, можно повторно в режиме отладки запустить команду. При правильно установленной цепочке сертификатов,  статус у сертификата будет = CERT_TRUST_NO_ERROR

Ввод лицензионного кода

Далее мастер предложит ввести код лицензии. Делать это не обязательно. По умолчанию КриптоПро включает стандартную лицензию на три месяца. Проверить срок действия лицензии можно стандартной командой в Терминале

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Установка КриптоПро CSP[править]

Архив с программным обеспечением (КриптоПро CSP 4. 0 R4 — сертифицированная версия, КриптоПро CSP 5. 0 — несертифицированная) можно загрузить после предварительной регистрации:

  • linux-ia32.tgz (19,3 МБ, для i586) — для 32-разрядных систем (x86, rpm);
  • linux-amd64.tgz (20,1 МБ, для x86_64) — для 64-разрядных систем (x64, rpm).

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

Внимание! По умолчанию при скачивании с сайта КриптоПро выдаётся лицензия на три месяца

Установка[править]

Установите пакет cryptopro-preinstall:

# apt-get install cryptopro-preinstall
Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).

Примечание: Пакет cryptopro-preinstall вытягивает зависимости libpangox-compat, opensc, pcsc-lite, pcsc-lite-rutokens, pcsc-lite-ccid, newt52.

Распакуйте архив, скачанный с официального сайта КриптоПро:

$ tar -xf linux-amd64. tgz

Таблица 1. Описание необходимых пакетов КриптоПро.

Пакет
Описание

Базовые пакеты:

cprocsp-curlБиблиотека libcurl с реализацией шифрования по ГОСТ

lsb-cprocsp-baseОсновной пакет КриптоПро CSP

lsb-cprocsp-capiliteИнтерфейс CAPILite и утилиты

lsb-cprocsp-kc1Провайдер криптографической службы KC1

lsb-cprocsp-kc2Провайдер криптографической службы KC2 (требует наличия аппаратного датчика случайных чисел или гаммы)

lsb-cprocsp-rdrПоддержка ридеров и RNG

Дополнительные пакеты:

cprocsp-cptools-gtkИнструменты КриптоПро – кроссплатформенный графический интерфейс

cprocsp-rdr-gui-gtkГрафический интерфейс для диалоговых операций

cprocsp-rdr-rutokenПоддержка карт Рутокен

cprocsp-rdr-jacartaПоддержка карт JaCarta

cprocsp-rdr-pcscКомпоненты PC/SC для ридеров КриптоПро CSP

lsb-cprocsp-pkcs11Поддержка PKCS11

ifd-rutokensКонфигурация Рутокеновских карт (или можно взять pcsc-lite-rutokens из репозитория)

Установите пакеты КриптоПро:

  • под правами пользователя root перейдите в папку с распакованным архивом:
  • установите базовые пакеты:
    # apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1-64* lsb-cprocsp-rdr-64*

Примечание: Для 32-битной версии вместо последнего пакета — lsb-cprocsp-rdr-4*

Примечание: Если возникнут проблемы с отображением контейнеров на Рутокен S — удалите pcsc-lite-openct

Примечание: Для установки cprocsp-rdr-jacarta может понадобиться предварительно удалить openct.

Примечание: Для корректной работы носителей с неизвлекаемыми ключами через интерфейс PKCS#11 был добавлен cprocsp-rdr-cryptoki ( с версии CSP 5. 0 R2 12000). Подробнее в базе знаний КриптоПро CSP.

  • Для установки сертификатов Главного удостоверяющего центра:
    # apt-get install lsb-cprocsp-ca-certs*
  • Если есть потребность в установке графических Инструментов КриптоПро:
    # apt-get install cprocsp-cptools*

Также можно выполнить установку КриптоПро, запустив. /install_gui. sh в распакованном каталоге и выбрав необходимые модули:

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP

  • Для КриптоПро CSP 3.6 R2 потребуется установить пакет
  • Для установки может понадобиться libXm.so.3 () и для вывода кириллицы .
  • Для установки потребуется предварительно установить .
  • В версии 4.0.0-alt5 пакета добавлены подпакеты:
    для установки с , «предоставляющим» (в случае нежелательности «лишних» зависимостей вроде ), и для автоустановки зависимостей .
  • для установки с , «предоставляющим» (в случае нежелательности «лишних» зависимостей вроде ), и
  • для автоустановки зависимостей .

Обновление[править]

Внимание! Пакеты КриптоПро после обновления утрачивают работоспособность, так что рекомендуется удалить все пакеты и установить их заново.

Для обновления КриптоПро необходимо:

  • Запомнить текущую конфигурацию:
    набор установленных пакетов:
    настройки провайдера (для простоты можно сохранить ).
  • набор установленных пакетов:
  • настройки провайдера (для простоты можно сохранить ).
  • Удалить штатными средствами ОС все пакеты КриптоПро:
    # apt-get remove lsb-cprocsp-base
  • Установить аналогичные новые пакеты КриптоПро.
  • При необходимости внести изменения в настройки (можно просмотреть diff старого и нового ).
  • Ключи и сертификаты сохраняются автоматически.

Прописывание путей к исполняемым файлам[править]

Утилиты КриптоПро расположены в директориях /opt/cprocsp/sbin/<название_архитектуры> и /opt/cprocsp/bin/<название_архитектуры>.

Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:

Примечание: Не работает для суперпользователя.

/bin/ls -d /opt/cprocsp/s,bin/*tr

Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr

Проверка лицензии[править]

Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:):

$ cpconfig -license -viewLicense validity:
4040E-G0037-EK8R3-C6K4U-HCXQG
Expires: 2 month(s) 23 day(s)
License type: Server.

Примечание: Для версии КриптоПро CSP под Linux все лицензии считаются серверными, поэтому не смущайтесь строкой «License type: Server».

Для установки другой лицензии выполните (под root):

# cpconfig -license -set <серийный_номер>

Примечание: Серийный номер следует вводить с соблюдением регистра символов.

Проверка версии[править]

Проверить версию КриптоПро можно командой:

Удаление КриптоПро[править]

# apt-get remove lsb-cprocsp-base

Примечание: Если появляется

support_mutex_open(“registry_lock”) failed:: Permission denied

выполните после удаления

# rm -f /var/opt/cprocsp/tmp/. registry_lock

КриптоПро JCP[править]

  • Распакуйте архив и перейдите в каталог
  • Выполните

/install. sh /usr/java/jre1. 0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX “Your Company”

Поддержка Рутокена[править]

# java -jar rtjlib. jar -install -rutoken

Запуск контрольной панели[править]

(требует графического дисплея)

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