криптопро csp fedora

криптопро csp fedora Электронная цифровая подпись
Содержание
  1. Сайт Академии криптографии РФ с ГОСТ TLS
  2. КриптоПро ЭЦП Browser plug-in
  3. Управление сертификатами
  4. “Окуляр ГОСТ” – аналог Adobe Acrobat с плагином “КриптоПро”
  5. Прописывание путей к исполняемым файлам[править]
  6. О КриптоПро
  7. Trusted esign
  8. Какой носитель выбрать
  9. Особенности работы с токенами[править]
  10. Rutoken S[править]
  11. О КриптоПро[править]
  12. Проверка цепочки сертификатов
  13. Создание локального носителя
  14. КриптоПро Linux установка в Astra
  15. Управление ридерами
  16. Электронная подпись[править]
  17. Создание и проверка подписи в командной строке[править]
  18. Создание подписи[править]
  19. Проверка подписи[править]
  20. Извлечение подписанного файла[править]
  21. Создание и проверка ЭЦП в ALT CSP КриптоПро[править]
  22. Создание и проверка ЭЦП в gost-crypto-gui[править]
  23. Создание и проверка ЭЦП с использованием cptools[править]
  24. Плагин для Линукс
  25. Экспорт сертификатов на другую машину
  26. Настройка и диагностика криптопро csp
  27. Проверка цепочки сертификатов
  28. Ссылки
  29. Возможна ли проверка эцп на linux-сервере?
  30. Прописывание путей к исполняемым файлам
  31. Проверка подписи
  32. Установка графических компонентов
  33. Управление сертификатами[править]
  34. Создание запроса на получение сертификата[править]
  35. Установка сертификата[править]
  36. Просмотр сертификатов[править]
  37. Получение сертификата в УЦ и его установка[править]
  38. Проверка цепочки сертификатов[править]
  39. Удаление сертификата[править]
  40. Экспорт контейнера и сертификата на другую машину[править]
  41. Экспорт сертификатов на другую машину[править]
  42. Импорт персонального сертификата[править]
  43. Инструменты КриптоПро — кроссплатформенный графический интерфейс (cptools)[править]
  44. Работа с сертификатами в token-manager[править]
  45. Установка и запуск[править]
  46. Проверка лицензии[править]
  47. Просмотр сертификатов[править]
  48. Установка сертификата[править]
  49. Технические требования
  50. Установка драйверов и по для работы с jacarta pki
  51. Установка пакетов[править]
  52. Установка КриптоПро для Mac OS
  53. Установка пакетов криптопро csp
  54. Подпись средствами «криптопро csp»

Сайт Академии криптографии РФ с ГОСТ TLS

Публикация: 04 May 2022 – 16:22, редакция: 04.05.2022 16:23

Специалисты Академии криптографии Российской Федерации для защиты сайта cryptoacademy.gov.ru успешно ввели в эксплуатацию средства криптографической защиты информации (СКЗИ), обеспечивающие реализацию протокола Transport Layer Security (TLS) с российскими криптографическими алгоритмами ГОСТ.

TLS является одним из наиболее популярных протоколов сети Интернет, в том числе российского сегмента, предназначенных для установления защищенного канала связи. Ключевая задача, решаемая TLS ГОСТ, – организация между клиентом и сайтом Академии аутентифицированного защищенного канала, обеспечивающего целостность и конфиденциальность передаваемых данных.

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

КриптоПро ЭЦП Browser plug-in

Внимание! Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0

требует КриптоПро 4.0

. С более ранними версиями КриптоПро плагин не работает и конфликтует.

Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: https://www.cryptopro.ru/products/cades/plugin

1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0

Примечание:
Будет скачан архив под архитектуру браузера.

2. Распаковываем архив, устанавливаем пакеты:

# rpm -Uvh --nodeps cprocsp-pki-*-cades.rpm cprocsp-pki-*-plugin.rpm

Внимание! В новой версии КриптоПро CSP обещали исправить зависимости, из-за которых требуется использовать –nodeps.

3. В Mozilla Firefox перезапустите браузер и откройте адрес about:plugins. Убедитесь, что плагин установлен. Сделайте его активируемым по умолчанию.

В Chromium под правами root сделайте ссылки:

# ln -s /etc/chromium-browser/native-messaging-hosts /etc/chromium

4. На странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вверху должна появится надпись:

Плагин загружен

И должен показаться сертификат в списке.

Внимание! Если список пуст, необходимо проверить правильность цепочки сертификатов

Управление сертификатами

Список команд для управления сертификатами электронной подписи:

  1. Просмотр сертификатов на подключённых токенах — /opt/cprocsp/bin/amd64/csptest -keyset-enum_cont -fqcn -verifyc;
  2. Импорт персональных сертификатов электронной подписи со всех ключевых USB-носителей — /opt/cprocsp/bin/amd64/csptestf -absorb-cert;
  3. Просмотр добавленных сертификатов в хранилище — /opt/cprocsp/bin/amd64/certmgr -list -store uMy;
  4. Удаление сертификата из реестра — /opt/cprocsp/bin/amd64/certmgr -delete -store umy.

“Окуляр ГОСТ” – аналог Adobe Acrobat с плагином “КриптоПро”

Публикация: 06 April 2022 – 17:52

криптопро csp fedora

Компания “Лаборатория 50” создала “Окуляр ГОСТ” – свободное приложение для российских пользователей, использующих документы в формате PDF. “Окуляр ГОСТ” позволяет просматривать, печатать и рецензировать электронные документы, книги и журналы. Поддерживает встраиваемый формат ЭП CAdES (аналог Adobe Acrobat с плагином “КриптоПро”). Поддерживаемые операционные системы: Ubuntu, Debian, Fedora, Альт, Astra Linux, РОСА.

Одной из главных особенностей программы является поддержка стандарта ГОСТ Р 34.10-2012 и возможность заполнения PDF-форм кириллицей. Также присутствует функция пакетной подписи документов PDF и графический интерфейс подписывания электронной подписью. Не забыли и про возможность работа с встраиваемой ЭП в формате CadES простой и усовершенствованной подписи в формате CAdES-X Long Type 1.

Полный текст новости на CNews.

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

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

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

  • после установки пакета начните новый сеанс пользователя в консоли;

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

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

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

О КриптоПро

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

Сайт: http://www.cryptopro.ru/

Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать ЭЦП документы, то это не совсем так:

«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»[1]

Trusted esign

Второй продукт, про который мы поговорим, это Trusted eSign от компании «Цифровые технологии». Она известна на российском рынке ИБ как разработчик средства по работе с подписью и шифрованием для ОС Windows – «КриптоАРМ».

Главное, не путать этот продукт с Trusted.eSign – web-сервисом по работе с подписью этой же компании.

Какой носитель выбрать

  • Для подписи ФНС требуется сертифицированный защищенный носитель Рутокен.
  • Для торговых площадок, госпорталов, СМЭВ — любой защищенный флеш-накопитель.
  • Для ЭДО и прочих применений — защищенный или обычный флеш-накопитель, реестр, мобильный телефон (только для работы в СБИС). Рекомендуем использовать Рутокен, Рутокен ЭЦП 2.0 или JaCarta-2 SE, так как эти устройства:
    • физически надежны — поддерживают множество циклов перезаписи и обеспечивают высокую скорость подписания пакетов документов;
    • имеют функцию защиты информации — если вы потеряете носитель, никто не сможет им воспользоваться, потому что для доступа требуется ПИН-код. Когда ПИН-код несколько раз вводится неправильно, устройство блокируется, лишая мошенников возможности получить ваши конфиденциальные данные.

Особенности работы с токенами[править]

Rutoken S[править]

При входе в ЕСИА с помощью Rutoken S не находится приватная часть ключа. В журнале ifc появляется строка:

IFC:do_work_sign_cms:ERROR:get_priv_key_by_id error:ifc_sign_cms.c:110

Для этого надо перенести приватный ключ в локальное хранилище и задействовать его:

$ csptest -keycopy -contsrc 'имя_контейнера_например\\.\Aktiv Rutoken ECP 00 00\ххххх' -contdest '\\.\HDIMAGE\private' -pindest пароль$ certmgr -inst -cont '\\.\HDIMAGE\private'

для AltLinux9.2 КриптоПро5 Rutoken S – если cptools не читает ключ.

Bus 001 Device 005: ID 0a89:0020 Retoken S

Добавить группу, если в журнале ошибки по отсутствию групп

$ groupadd scard$ groupadd pcscd

В

добавить в файл

$ vi 50-pcscd-asedriveiiie.rules

строку

И закоментировать в файле

строку

После внесения изменений перезагрузить службу

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

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

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

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

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

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

* attached (присоединённая), тогда результирующий файл — это CMS-сообщение, внутрь которого упакованы данные и атрубуты (типа подписи). Формат сообщения соответствует международному стандарту, поэтому извлекать данные оттуда можно любыми утилитами, типа cryptcp / csptest / openssl / certutil (на windows).

Создание локального носителя

sudo /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store

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

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

В 5-ой версии КриптоПРО CSP v.5.0, для создания контейнера, имя носителя можно не указывать, а выбрать в интерактивном gtk-диалоге:

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

КриптоПро Linux установка в Astra

Astra Linux — это отечественная операционная система на базе ядра Linux, для бюджетных организаций: армии, полиции, школы, больницы и других учреждений. Разработана в качестве альтернативы популярным зарубежным ОС во время реализации национальной стратегии импортозамещения. ОС также подходит и для домашнего пользования.

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

Инсталляция в Linux осуществляется через консоль. Пользователь вводит специальные текстовые команды. Данный процесс происходит вручную или автоматически. Рассмотрим, как установить CryptoPro Linux с помощью второго способа. Понадобится выполнить следующие действия:

  1. Выбрать и скачать установочный файл в «Центре загрузок» с учётом разрядности операционной системы;
  2. Скачать установочный файл в «Центре загрузок»

  3. Распаковать сохранённый архив с расширением tgz;
  4. Перейти в папку с распакованным архивом и через контекстное меню выбрать команду «Открыть в терминале»;
  5. Запустить автоматическую инсталляцию CryptoPro командой sudo./install_gui.sh — откроется Мастер установки;
  6. С помощью клавиш Tab и Next — отметить доступные установочные компоненты и нажать «Install»;
  7. «Install»

  8. По окончании процедуры появится уведомление об успешной установке дистрибутива;
  9. Для активации лицензии набрать команду: sudo/opt/cprocsp/sbin/amd64/cpconfig-license-set XXXXX-XXXXX-XXXXX-XXXXX-XXXXX, где Х — это серийный номер.

Установка криптопровайдера КриптоПро для других версий операционных систем Линукс происходит аналогично.

Управление ридерами

Ридеры (readers) — устройства размещения контейнеров (аппаратные токены, каталог для размещения файлов).

Просмотр доступных ридеров:

CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 6679203
GetProvParam(...PP_ENUMREADERS...) until it returns false
  Len    Byte  NickName/Name
_____________________________
 0x012a  0x72  ACS ACR38U-CCID 00 00
               All PC/SC readers
 0x012a  0x72  Aktiv Co. Rutoken S 00 00
               All PC/SC readers
 0x012a  0x58  FLASH
               FLASH
 0x012a  0x18  HDIMAGE
               Структура дискеты на жестком диске
Cycle exit when getting data. 4 items found. Level completed without problems.
Total: SYS: 0,000 sec USR: 0,170 sec UTC: 0,190 sec
[ErrorCode: 0x00000000]

Ридер HDIMAGE размещается на /var/opt/cprocsp/keys/<имя пользователя>/

Инициализация ридера HDIMAGE (под правами root):

# cpconfig -hardware reader -add HDIMAGE storeAdding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0

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

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

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

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

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

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

Читайте также:  Ошибка при чтении сертификата ВТБ 24 - что делать?

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

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

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

Будет использован следующий сертификат:
Субъект:[email protected], Иванов Иван
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38

Цепочки сертификатов проверены.
Папка './':
zayavlenie.pdf... Подпись данных...    
    
Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]

где

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

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

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

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

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

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

$ cryptcp -verify zayavlenie.pdf.sigCryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:[email protected], Иванов Иван
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38

Цепочки сертификатов проверены.
Папка './':
zayavlenie.pdf.sig... Проверка подписи...     
Автор подписи: [email protected], Иванов Иван
 Подпись проверена.
[ErrorCode: 0x00000000]

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

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

$ cryptcp -vsignf zayavlenie.pdfCryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:[email protected], Иванов Иван
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38

Цепочки сертификатов проверены.
Папка './':
234.pdf... Проверка подписи...     
    
Автор подписи: [email protected], Иванов Иван
 Подпись проверена.
[ErrorCode: 0x00000000]

Также для проверки электронной подписи можно воспользоваться сервисом на сайте Госуслуг — https://www.gosuslugi.ru/pgu/eds.

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

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

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

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

Создание и проверка ЭЦП в gost-crypto-gui[править]

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

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

# apt-get install gost-crypto-gui

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

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

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

Программа gost-crypto-gui

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

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

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

Опции ЭП

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

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

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

Примечание: cptools доступна версии КриптоПро 5.

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

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

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

  1. В левом меню выбрать пункт «Создание подписи».
  2. Выбрать файл, который необходимо подписать, нажав кнопку «Выбрать файл для подписи» (или ввести адрес файла в текстовое поле под кнопкой «Выбрать файл для подписи»).
  3. Изменить имя файла подписи, если оно вас не устраивает:
    Создание подписи в КриптоПро CSP
  4. Нажать кнопку «Подписать».
  5. Ввести пароль на контейнер (если он был установлен).
  6. Появится сообщение о подписанном файле: «Создание подписи завершилось успехом».

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

  1. В левом меню выбрать пункт «Проверка подписи».
  2. Выбрать файл с подписью, нажав кнопку «Выбрать файл с подписью для проверки» (или ввести адрес файла в текстовое поле под этой кнопкой).
  3. Нажать кнопку «Проверить подпись».
  4. Появится информация о результате проверки:
    Проверка подписи в КриптоПро CSP

Плагин для Линукс

Чтобы корректно работать с электронной подписью в интернете, понадобится плагин для браузера и специальная утилита alien. Для этого требуется выполнить следующие шаги:

  1. Активировать alien — sudo apt install alien;
  2. Бесплатно скачать модуль Browser plug-in на сайте КриптоПро;
  3. Распаковать сохранённый архив — cades_linux_amd64.zip;
  4. Перейти в папку с файлами;
  5. Открыть Терминал через контекстное меню и задать команду для преобразования rpm в deb-пакеты — sudo alien -kci cprocsp-pki-cades_2.0.0-2_amd64.deb;
  6. После данных действий установка будет завершена, а подпись готова к работе.

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

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

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

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

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

https://youtube.com/watch?v=yqJBzPhWfmA%3Ffeature%3Doembed

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

Настройка и диагностика криптопро 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"

Проверка цепочки сертификатов эцп на linux - ЭЦП 2.0

В результате выполнения в конфигурационный файл /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]

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

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

Таблица 3. Сертификаты популярных удостоверяющих центров.

Удостоверяющий ЦентрИсточникСертификаты
ЗАО «Национальный удостоверяющий центр»https://www.nucrf.ru/info/https://www.nucrf.ru/download/nucrf.p7b
Удостоверяющий центр СКБ Контурhttps://ca.kontur.ru/about/certificates (выбрать 2015 год)http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt

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

 
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chain is not checked for this certificate:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
The certificate or certificate chain is based on an untrusted root.
Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?

(нажмите C и Enter, чтобы выйти).

Запуск с отладкой цепочки:

...
----------- Error chain -----------
Chain status:IS_UNTRUSTED_ROOT
Revocation reason:unspecified
1. 
 Subject:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Issuer:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Cert status:IS_UNTRUSTED_ROOT
...

То есть нам надо установить сертификат УЦ с CN=uc skb kontur (root):

$ certmgr -inst -store uRoot -file kontur-root-2015.crt

После этого:

CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chains are checked.
Certificate's been copied.
[ReturnCode: 0]

Всё в порядке и сертификат виден в плагине Cades.

Ссылки

  • ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
  • ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
  • Инструкция по установке Крипто-Про УЭК
  • ЭЦП

Возможна ли проверка эцп на linux-сервере?

Подскажите, как проверить на сервере ЭЦП?Возможно ли это сделать свободным ПО или посоветуйте платное что-то? Должны поддерживаться российские ГОСТы.Подпись создается при помощи плагина для браузера КриптоПро.

Смотрел в сторону OpenSSL с поддержкой gost (для работы российских ГОСТов) , может кто-то прокомментирует этот вариант (плюс там для верификации подписи нужен публичный ключ, и я не понял откуда его взять, если при формировании подписи на сервер приходят только исходное и зашифрованное сообщение)?

p.s. желательно, чтобы это все работало на Python

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

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

  • установите пакет и начните новый сеанс в консоли

или

  • выполните:
 

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

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

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

$ cryptcp -verify zayavlenie.pdf.sigCryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN: ******, [email protected]
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chains are checked.
Folder './':
zayavlenie.pdf.sig... Signature verifying...     
Signer: ******, [email protected]
 Signature's verified.
[ReturnCode: 0]

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

Установка графических компонентов

Если планируется использование Криптопро ЭЦП Browser Plugin (данный этап включён в инструкцию в ссылке), rosa-crypto-tool или других программ и компонентов с графическим интерфейсом, необходимо установить ещё два пакета:

urpmi pangox-compat && rpm -ivh cprocsp-rdr-gui-gtk*

Не следует устанавливать пакет cprocsp-rdr-gui, т. к. в связке с cprocsp-rdr-gui-gtk он нарушает работу графических компонентов.

Управление сертификатами[править]

cryptcp — приложение командной строки для создания запросов на сертификаты, шифрования и расшифрования файлов, создания и проверки электронной подписи файлов с использованием сертификатов открытых ключей, хэширования файлов. Результатом работы приложения в большинстве случаев является файл с CMS-сообщением (PKCS#7) в кодировке DER или BASE64.

Создание запроса на получение сертификата[править]

Создание запроса на получение сертификата средствами КриптоПро:

cryptcp -creatrqst -dn "список имён полей" -cont 'путь к контейнеру' <название_файла>.csr

Для создания запроса на получение сертификата потребуется:

  1. DN — данные, которые будут храниться в поле Subject сертификата (cn=Test User5,[email protected]).
  2. Имя контейнера вместе со считывателем (например, в локальном хранилище hdimage: ).
  3. Имя файла, в котором следует сохранить запрос ().

Внимание! Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 2001 и добавляется тип применения подлинности клиента: -provtype 75 -certusage “1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2”.

С помощью опции -certusage можно указать OID назначение сертификата.
Назначение сертификата представляется в сертификате объектным идентификатором, присвоенным этой политике, — OID. Если в сертификате указано несколько политик, то это означает, что сертификат соответствует всем этим политикам списка.

Таблица 2. Типы применения.

OIDНазначение
1.3.6.1.5.5.7.3.1Аутентификация сервера
1.3.6.1.5.5.7.3.2Аутентификация клиента
1.3.6.1.5.5.7.3.3Подписывание кода
1.3.6.1.5.5.7.3.4Защищенная электронная почта
1.3.6.1.5.5.7.3.8Простановка штампов времени
1.3.6.1.4.1.311.10.5.1Цифровые права
1.3.6.1.4.1.311.10.3.12Подписывание документа

Таблица 3. Поле Subject сертификата

OIDАлиасНазначениеПримечание
2.5.4.3CNОбщее имяНаименование ЮЛ (если ИНН начинается с “00”) или ФИО владельца. Длина не более 64 символов
2.5.4.4SNФамилия
2.5.4.42GN/GИмя ОтчествоОбщая длина текста в полях SN и G должна быть не более 64 символов (с учетом одного пробела между текстом из Фамилии и текстом из Имени)
1.2.840.113549.1.9.1emailAddress/EАдрес электронной почты[email protected]
1.2.643.100.3SNILSСНИЛСДолжно быть записано 11 цифр (допускается 11 нулей для иностранных граждан).
1.2.643.3.131.1.1INNИНН12 цифр, для ЮЛ первые две цифры 00
2.5.4.6CСтранаДвухсимвольный код страны (RU)
2.5.4.8SРегионНаименование субъекта РФ ЮЛ: по адресу местонахождения,

ФЛ: по адресу регистрации (39 Калининградская обл.)

2.5.4.7LНаселенный пунктНаименование населенного

пункта (Калининград)

2.5.4.9streetНазвание улицы, номер домаПр-т Победы 14 кв.3
2.5.4.10OОрганизацияПолное или сокращенное

наименование организации (только для ЮЛ)

2.5.4.11OUПодразделениеВ случае выпуска СКПЭП на должностное лицо – соответствующее подразделение организации (только для ЮЛ)
2.5.4.12TДолжностьВ случае выпуска СКПЭП на должностное лицо – его должность (только для ЮЛ)
1.2.643.100.1OGRNОГРНОГРН организации (только для ЮЛ)
Читайте также:  криптопро запрашивает лицензию

Создать запрос на субъект “cn=Test User5,[email protected]”, используя открытый ключ, сгенерированный в контейнере test текущего пользователя криптопровайдером «GOST R 34.10-2001» (тип — 75) и сохранить его в файл test5.req, назначение ключа — аутентификация и защита электронной почты:

CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Запрос успешно создан и сохранен в файле.
[ErrorCode: 0x00000000]

Созданный запрос будет сохранен в файле test5.req. Эти данные нужны для получения сертификата в удостоверяющем центре.

Создать запрос на физическое лицо, используя открытый ключ, сгенерированный в контейнере test_2012 (тип — 80) текущего пользователя криптопровайдером «Crypto-Pro GOST R 34.10-2012 KC1 CSP» (тип — 80) и сохранить его в файл test2012.req, назначение ключа — аутентификация и защита электронной почты:

$ cryptcp -creatrqst \-provtype 80 -nokeygen  \-cont '\\.\HDIMAGE\test_2012'  \-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test2012.req

Тот же запрос, используя OID:

$ cryptcp -creatrqst \-provtype 80 -nokeygen -cont '\\.\HDIMAGE\test_2012' \-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test2012.req

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

Добавление сертификата, без привязки к ключам (только проверка ЭЦП):

$ certmgr -inst -file cert.cer

Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище uMy:

$ certmgr -inst -file cert.cer -store uMy -cont '\\.\HDIMAGE\test'

Запись сертификата клиента в контейнер:

$ cryptcp -instcert -provtype 80 -cont '\\.\HDIMAGE\test' -ku -askpin cert.cer

Основные опции:

-provtype — указать тип криптопровайдера (по умолчанию 75);

-provname — указать имя криптопровайдера;

-cont — задать имя ключевого контейнера (по умолчанию выбор из списка);

-ku — использовать контейнер пользователя (CURRENT_USER);

-km — использовать контейнер компьютера (LOCAL_MACHINE);

-dm — установка в хранилище компьютера (LOCAL_MACHINE);

-du — установка в хранилище пользователя (CURRENT_USER);

-askpin — запросить пароль ключевого контейнера из с консоли;

<имя файла> — имя файла, содержащего сертификат.

Добавление сертификата УЦ из файла certne_ucw.cer в хранилище машины (для текущего пользователя):

$ certmgr -inst -file certne_ucw.cer -store uRoot

Добавление корневых сертификатов из файла cert.p7b (для текущего пользователя):

$ certmgr -inst -all -file cert.p7b -store uRoot

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

Примечание: Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром -store mRoot. Например: # certmgr -inst -store mRoot -file /tmp/cert.cer

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

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

$ certmgr -listCertmgr 1.1 (c) "Crypto-Pro",  2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer              : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, [email protected]
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 18/12/2018  13:41:38 UTC
Not valid after     : 18/03/2019  13:51:38 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\test.000\2EF8
Provider Name       : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================

[ErrorCode: 0x00000000]

Просмотр сертификатов в локальном хранилище uMy:

$ certmgr -list -store uMy

Примечание: Если в списке сертификатов выводится PrivateKey Link: Yes. Container: HDIMAGE\\test.000\2EF8, то сертификат ассоциирован (связан) с приватным ключом, а если выводится PrivateKey Link: No — связи нет, и использовать такой контейнер для подписи не удастся:

Просмотр сертификатов в контейнере:

$ certmgr -list -container '\\.\Aktiv Rutoken ECP - CP 00 00\Rutoken'

Просмотр корневых сертификатов:

$ certmgr -list -store uRoot

Получение сертификата в УЦ и его установка[править]

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

  1. Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
  2. Нажмите ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»:
    Ссылка «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»
  3. Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.req и нажмите кнопку «Выдать»:
    Выдача запроса на сертификат
  4. Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя certnew.p7b):
    Ссылка «Загрузить цепочку сертификатов»

Примечание: Просмотреть содержимое файла test5.req можно, выполнив команду:

$ cat test5.reqMIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=

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

$ certmgr -list -file certnew.p7bCertmgr 1.1 (c) "CryptoPro",  2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer              : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial              : 0x2B6E3351FD6EB2AD48200203CB5BA141
SHA1 Hash           : 0x046255290b0eb1cdd1797d9ab8c81f699e3687f3
SubjKeyID           : 15317cb08d1ade66d7159c4952971724b9017a83
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 05/08/2014  13:44:24 UTC
Not valid after     : 05/08/2019  13:54:03 UTC
PrivateKey Link     : No                  
2-------
Issuer              : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, [email protected]
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 18/12/2018  13:41:38 UTC
Not valid after     : 18/03/2019  13:51:38 UTC
PrivateKey Link     : No
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================

[ErrorCode: 0x00000000]

Цепочка сертификатов содержит два сертификата:

  • Сертификат удостоверяющего центра.
  • Сертификат клиента.

Для установки сертификата удостоверяющего центра:

  • выполните команду:
    $ certmgr -inst -file certnew.p7b -store uRoot
  • в ответ на запрос команды нажмите 1.

Для записи сертификата клиента в контейнер:

  • выполните команду:
    $ certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\test'
  • в ответ на запрос команды нажмите 2.
  • введите пароль на контейнер \\.\HDIMAGE\test при запросе:
    Запрос пароля на контейнер

Примечание: Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром -store mRoot. Например: # certmgr -inst -store mRoot -file /tmp/cert.cer
CRL ставятся точно также только с параметром -crl. CRL ставить не обязательно, но нужно убедиться что в /etc/opt/cprocsp/config64.ini в секции apppath указан правильный путь для libcurl.so. По умолчанию там путь до библиотеки от КриптоПро и если curl от КриптоПро не установлен — загрузка CRL работать не будет. Установка параметра на 64-битных системах:

# cpconfig -ini \\config\\apppath -add string libcurl.so /opt/cprocsp/lib/amd64/libcpcurl.so

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

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

Таблица 4. Сертификаты популярных удостоверяющих центров.

Удостоверяющий ЦентрИсточникСертификаты
ПАК «Головной удостоверяющий центр»https://e-trust.gosuslugi.ru/MainCAhttps://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2
ЗАО «Национальный удостоверяющий центр»https://www.nucrf.ru/info/https://www.nucrf.ru/download/nucrf.p7b
Удостоверяющий центр СКБ Контурhttps://ca.kontur.ru/about/certificates (выбрать 2015 год)http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt

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

cryptcp -copycert -dn "CN=Иванов Иван Иванович" -df  tt.cerCryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:11223344556, 102301111222, Пр-т Победы 14 кв.3, 39 Калининградская обл., Калининград, RU, [email protected], Иван Иванович, Иванов, Иванов Иван Иванович
Действителен с 21.02.2019 13:16:38 по 21.05.2019 13:26:38

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]

Из вывода следует, что все сертификаты есть в цепочке сертификатов.

Если же команда возвращает «Цепочка сертификатов не проверена для следующего сертификата:» или другую ошибку:


CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00

Certificate chain is not checked for this certificate:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00

The certificate or certificate chain is based on an untrusted root.
Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?

(нажмите C и Enter, чтобы выйти).

Можно запустить вышеуказанную команду с отладкой цепочки:

...
----------- Error chain -----------
Chain status:IS_UNTRUSTED_ROOT
Revocation reason:unspecified
1. 
 Subject:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Issuer:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Cert status:IS_UNTRUSTED_ROOT
...

То есть нам надо установить сертификат УЦ с CN=uc skb kontur (root):

$ certmgr -inst -store uRoot -file kontur-root-2015.crt

После этого:

CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00

Certificate chains are checked.
Certificate's been copied.
[ReturnCode: 0]

Всё в порядке и сертификат виден в плагине Cades.

Удаление сертификата[править]

Удалить сертификат c “CN=Иванов Иван Иванович” из хранилища КриптоПро:

$ certmgr -delete -dn "CN=Иванов Иван Иванович"

Удалить сертификат c “CN=Иванов Иван Иванович” из контейнера:

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

$ certmgr -delete -all$ certmgr -delete -store uRoot

Удалить все сертификаты установленные в хранилище машины:

# certmgr -delete -store mRoot

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

Если при создании контейнера он был помечен как экспортируемый (ключ -exportable), то его можно экспортировать на USB-диск:

$ csptest -keycopy -contsrc '\\.\HDIMAGE\test_export' -contdest '\\.\FLASH\test_new'CryptAcquireContext succeeded.HCRYPTPROV: 36965843
CryptAcquireContext succeeded.HCRYPTPROV: 37297363
Total: SYS: 0,100 sec USR: 0,200 sec UTC: 13,420 sec
[ErrorCode: 0x00000000]

При этом потребуется ввести пароль от контейнера ‘\\.\HDIMAGE\test_export’ и задать пароль на новый контейнер ‘\\.\FLASH\test_new’.

Примечание: Будьте внимательны при операциях импорта/экспорта контейнера с использованием токена:

необходимо будет предъявлять pin токена.

Просмотр списка контейнеров:

CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 41622371
\\.\FLASH\test_new
\\.\HDIMAGE\test_export
\\.\HDIMAGE\test
OK.
Total: SYS: 0,030 sec USR: 0,060 sec UTC: 0,160 sec
[ErrorCode: 0x00000000]

Экспортировать сертификат из локального хранилища в файл:

$ certmgr -export -dn 'CN=Ли Александр Сергеевич' -dest test.cer

Скопировать сертификат на USB-диск:

Экспорт контейнера с USB-диска на жесткий диск:

$ csptest -keycopy -contsrc '\\.\FLASH\test_new' -contdest '\\.\HDIMAGE\test_export'CryptAcquireContext succeeded.HCRYPTPROV: 35778003
CryptAcquireContext succeeded.HCRYPTPROV: 36125907
Total: SYS: 0,050 sec USR: 0,240 sec UTC: 19,390 sec
[ErrorCode: 0x00000000]

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

Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище My:

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

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

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

  1. Перенести ключи из на нужную машину в тот же каталог.
  2. Экспортировать сертификаты (их, количество можно определить, выполнив: certmgr -list, в примере сертификатов 3):
  3. Перенести файлы сертификатов (1.cer, 2.cer, 3.cer) на нужную машину.
  4. На машине, куда переносятся сертификаты, просмотреть какие контейнеры есть (должны появится контейнеры с первой машины):
    $ csptest -keyset -enum_cont -verifycontext -fqcn
  5. Связать сертификат и закрытый ключ:
    $ certmgr -inst -file 1.cer -cont '\\.\HDIMAGE\container.name'
    Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
    Cannot install certificate
    Public keys in certificate and container are not identical
    
  6. Если закрытого ключа нет, то просто поставить сертификат:
    $ certmgr -inst -file 1.cer

Импорт персонального сертификата[править]

Вы можете импортировать собственный сертификат в локальный считыватель HDIMAGE.

Читайте также:  Работа с системой 223.Zakazrf.Ru Руководство пользователя Электронной Торговой Площадки (Личный кабинет Участника)

Если у вас нет сертификата, самое время его создать:

  • Создание через cert-sh-functions (требует установки пакета cert-sh-functions)
  • Создание сертификатов PKCS12 (достаточно только пакета openssl)

Допустим, мы пошли по первому пути и создали сертификат web-server (делать это строго под правами root):

# . cert-sh-functions# ssl_generate 'web-server'

Сертификат по умолчанию будет лежать в /var/lib/ssl/certs/web-server.cert, а ключ ­— в /var/lib/ssl/private/web-server.key

Для импорта потребуется файл сертификата и закрытый ключ в контейнере PKCS#12.

Создадим для нашего ключа и сертификата необходимый контейнер:

openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12

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

Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):

Enter Import Password:
MAC verified OK
-----BEGIN CERTIFICATE-----
-----BEGIN PRIVATE KEY-----

И сертификат и ключ попали в контейнер.

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

Nick name: FLASH
Nick name: HDIMAGE

Для импорта сертификата в КриптоПро используйте программу certmgr. В нашем случае:

$ certmgr -inst -file web-server.p12 -cont HDIMAGE

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

certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\le-fb25d25d-23e9-4723-ae4c-fe0c95f2fcc1'

Если контейнер защищен паролем используйте ключ -pin <пароль>

Инструменты КриптоПро — кроссплатформенный графический интерфейс (cptools)[править]

В версии КриптоПРО 5 появилась графическая утилита для работы с сертификатами — cptools.
Для использования cptools необходимо установить пакет cprocsp-cptools-gtk из скачанного архива:

# apt-get install cprocsp-cptools-gtk*

После этого её можно запустить из консоли:

Графическая утилита для работы с сертификатами

С её помощью можно установить сертификат из токена в хранилище uMy:

Работа с сертификатами в token-manager[править]

token-manager предоставляет графический интерфейс управления ключевыми носителями и сертификатами. С помощью этой программы можно:

  • просматривать подключенные ключевые носители (токены);
  • изменять PIN-код ключевого носителя;
  • устанавливать, просматривать и удалять сертификаты;
  • просматривать и устанавливать лицензию КриптоПро.

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

Установка пакета token-manager:

# apt-get install token-manager

Запустить token-manager можно:

  • из командной строки:
    $ python /usr/bin/token-manager.py
  • в рабочей среде Mate:  ▷  ▷ Ключевые носители и сертификаты;
  • в рабочей среде KDE5: Меню запуска приложений ▷  ▷ Ключевые носители и сертификаты.

token-manager

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

Проверить срок истечения лицензии КриптоПРО можно выбрав в меню token-manager пункт Операции ▷ Просмотр лицензии КриптоПро CSP:

Просмотр лицензии КриптоПро CSP

Для установки другой лицензии КриптоПРО выберите в меню token-manager пункт Операции ▷ Ввод лицензии КриптоПро CSP:

Ввод лицензии КриптоПро CSP

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

Просмотреть список сертификатов в хранилище или на ключевом носителе, можно выбрав соответствующий носитель:

Просмотр сертификатов в хранилище

Для просмотра сертификата, необходимо выбрать сертификат и нажать кнопку «Просмотр»:

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

Для просмотра корневых сертификатов, необходимо выбрать в меню token-manager пункт Операции ▷ Просмотр корневых сертификатов.

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

Чтобы установить сертификат с токена в локальное хранилище, необходимо выбрать контейнер на токене и нажать кнопку «Установить»:

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

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

Чтобы установить сертификат в локальное хранилище из файла, необходимо выбрать «Личное хранилище сертификатов», нажать кнопку «Установить», выбрать файл сертификата и нажать кнопку «Открыть». Появится сообщение об успешном импорте сертификата:

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

Сертификат будет установлен в локальное хранилище сертификатов, но не будет связан ни с каким закрытым ключом. Этот сертификат можно использовать для проверки подписи.

Технические требования

У каждого типа носителей свои требования к операционной системе.

Тип носителяОперационная система
WindowsLinuxMacOS
Рутокен ЭЦП 2.0 2100Microsoft Windows версии 11, 10, 8.1, 7, Vista, XP, Server 2022, 2019, 2016, 2012 R2, 2012, 2008 R2, 2003
  • Отечественные Astra Linux, ОС «Альт», РЕД ОС, ROSA Linux, ГосЛинукс и другие
  • Debian, Ubuntu, Fedora, RedHat, CentOS и другие, с установленной библиотекой libccid версии не ниже 1.4.2
  • Платформы: x86/x86_64, ARM7, ARM64, Байкал-М, Эльбрус, MIPS (Байкал-Т)

MacOS версии 12, 11, 10.15, 10.14, 10.13, платформы Intel/ARM64

Рутокен ЭЦП 2.0 3000
Рутокен Lite
Рутокен S
  • Отечественные Astra Linux, ОС «Альт», РЕД ОС, ROSA Linux, ГосЛинукс и другие
  • Debian, Ubuntu, Fedora, RedHat, CentOS и другие
  • Платформы: x86/x86_64, Байкал-М (Debian, Astra, Linux), MIPS (Байкал-Т)
JaCarta-2 SE
JaCarta-2 ГОСТ
JaCarta-2 PKI/ГОСТ
JaCarta LT
Microsoft Windows версии 10, 8.1, 8, 7 SP1, Server 2019, 2016, 2012, 2012 R2, 2008 SP2 (32/64-бит), 2008 R2 SP1, 2003 SP2CentOS 7, 8, Альт 8 СП, 9, Astra Linux SE Smolensk 1.5, 1.6, Ред ОС 7.2, 7.3, Ubuntu 16.04, 18.04, 20.04, Debian 9, 10 и другие

macOS 11, 10.15, 10.14, 10.13, 10.12

Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.

Установка драйверов и по для работы с 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

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

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

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

Таблица 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-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 из репозитория)

Установка КриптоПро для Mac OS

Подготовка компьютера на базе MacOS для работы с цифровой подписью начинается с тех же процедур, что и для описанных выше ОС. Зайдите на официальный портал «Крипто-ПРО» и сохраните бесплатный дистрибутив КриптоПро для Mac OS:

криптопро csp fedora

  • запустите установочный файл ru.cryptopro.csp;
  • разрешите программе внести изменения на ваш ПК клавишей «Продолжить»;
  • дайте согласие с условиями лицензионного соглашения;
  • завершите инсталляцию клавишей «Установить»;
  • дождитесь окончания и закройте окно.

Дальнейшие настройки выполняются через стандартное приложение MacOS Terminal — открывается через меню Finder → «Переход» → «Утилиты».

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

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

Команда для проверки статуса лицензии:

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

Активация лицензии:

sudo /opt/cprocsp/sbin/cpconfig -license -set номер_лицензии

В качестве USB-носителя для интеграции с MacOS подойдет Рутокен Lite или Рутокен ЭЦП. Флешки eToken и JaCarta не функционируют в связке с CryptoPro для Мак ОС.

Для визирования электронной информации в Mac OS можно воспользоваться программным комплексом Trusted eSign, описанным выше.

Установка пакетов криптопро 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

Проверка цепочки сертификатов эцп на linux - ЭЦП 2.0

Проверяем итоговую конфигурацию КриптоПро 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

Проверка цепочки сертификатов эцп на linux - ЭЦП 2.0

Подпись средствами «криптопро csp»

В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка: Отсутствие хорошей документации и отсутствие графического интерфейса.

Подписать можно с помощью команды:

csptestf –sfsign –sign –in  -out  -my ‘Trusted eSign Test’ –detache
d –alg GOST94_256 

Здесь:

  •  — параметр, в котором надо указать часть Common Name сертификата для подписи;
  •  — позволяет создать открепленную подпись;
  •  — задает алгоритм хэширования, который будет использоваться при создании подписи.

Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:

Такой интерфейс отлично подходит для подготовленного пользователя или для автоматизации операций в скриптах.

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

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