криптопро devel пакет

криптопро devel пакет Электронная цифровая подпись
Содержание
  1. Установка пакетов[править]
  2. Создание локального носителя
  3. КриптоПро CSP 5. 0 R2
  4. Внимание:
  5. Документация:
  6. Для Windows:
  7. Для macOS:
  8. Копирование контейнера
  9. Установка базовых компонентов криптопро
  10. Экспорт сертификатов на другую машину
  11. Подпись
  12. Установка графических компонентов
  13. Проверка цепочки сертификатов
  14. Настройка
  15. Вариант 1
  16. Вариант 2
  17. Установка сертификатов
  18. Создание тестового сертификата
  19. Создание контейнера на жёстком диске
  20. Копирование контейнера на токен
  21. Ссылки
  22. Проверка работы электронной подписи с использованием Browser Plug-in
  23. Резюме
  24. Управление сертификатами[править]
  25. Создание запроса на получение сертификата[править]
  26. Установка сертификата[править]
  27. Просмотр сертификатов[править]
  28. Получение сертификата в УЦ и его установка[править]
  29. Проверка цепочки сертификатов[править]
  30. Удаление сертификата[править]
  31. Экспорт контейнера и сертификата на другую машину[править]
  32. Экспорт сертификатов на другую машину[править]
  33. Импорт персонального сертификата[править]
  34. Инструменты КриптоПро — кроссплатформенный графический интерфейс (cptools)[править]
  35. Работа с сертификатами в token-manager[править]
  36. Установка и запуск[править]
  37. Проверка лицензии[править]
  38. Просмотр сертификатов[править]
  39. Установка сертификата[править]
  40. Установка пакетов
  41. Совместимость[править]
  42. Управление ридерами
  43. Примечания
  44. Работа с токеном jacarta pki
  45. Как проверить электронные подписи с помощью gnupg (gpg)
  46. Trusted esign
  47. Совместимость
  48. Хеши и подписи
  49. Применимость
  50. Получение установочных пакетов
  51. Получение сертификата в УЦ и его установка
  52. Просмотр сертификатов
  53. Удаление
  54. Импорт персонального сертификата
  55. Настройка криптопро csp
  56. Установка сертификатов
  57. Редактирование списка доверенных узлов
  58. Установка сертификатов удостоверяющего центра
  59. Установка сертификата с контейнера на токене
  60. Установка криптопро fox

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

Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен 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 из репозитория)

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

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

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

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

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

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

КриптоПро CSP 5. 0 R2

Сертифицированная версия КриптоПро CSP 5.0.12000 (Kraken) от 24.11.2020.

Сертификаты соответствия:1-Base: СФ/114-4064 от 20.05.2021 до 01.05.20242-Base: СФ/124-4065 от 20.05.2021 до 01.05.20243-Base: СФ/124-4066 от 20.05.2021 до 01.05.2024

Внимание:

  • Изменилась схема лицензирования. Требуются лицензии для КриптоПро CSP 5.0 (начинаются на 50). От КриптоПро CSP 4.0 подходят только временные лицензии с датой окончания. TLS-сервер на *nix теперь требует особую лицензию.
  • Дистрибутивы подписаны, что позволяет доверенно распространять их через Интернет. Проверить подпись можно с помощью обновленной утилиты cpverify,
  • команды для проверки
  • Ключ для работы в режиме замкнутой программной среды Astra Linux SE.
  • Некоторые носители требуют дополнительное программное обеспечение.
  • Вопросы можно задать в нашем форуме в ветке КриптоПро CSP 5.0 и на портале технической поддержки.

Документация:

  • Список изменений (changelog)
  • Список известных ошибок (errata)
  • Документация по установке и использованию КриптоПро CSP 5.0 (KC1)
  • Документация по установке и использованию КриптоПро CSP 5.0 (KC2)
  • SDK для Windows (для *nix — в devel-пакете в дистрибутиве)

Для Windows:

КриптоПро CSP 5.0 для Windows

Контрольная сумма
ГОСТ: 55DEBC7250BC5C09428FA7085CA6D51EC8282879DB56D084859CFDEBC8EC542B
MD5: 1069fa904005f8ec3951ec6fb49dd7b4

КриптоПро CSP 5.0 для Windows с pkcs#11 модулями компаний Актив, Аладдин Р.Д. и ISBC

Контрольная сумма
ГОСТ: A0DED17BA0AED924606399728BE4BF1A5D6BB7608B1D0BCE998AD576B3AE5B5A
MD5: 75b1bdcb98b71c2c9869f5a189a7a831

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

Для macOS:

КриптоПро CSP 5.0 для OS X 10.9+ (x64), с поддержкой macOS 10.15 Catalina

Контрольная сумма
ГОСТ: D854BA1B4C1BFB1DF4EAC5E656B068D9167EB40582425540C74803C4E51F98E0
MD5: 8957569794aa4a97799b6e543f092bbd

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

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

Для создания запроса на получение сертификата для контейнера ’\.Aktiv Rutoken ECP 00 00Shuhrat’ , воспользуемся командой:

Для примера можно воспользоваться тестовым удостоверяющим центром КриптоПро. Нам нужен пункт « Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64 «. На следующей странице в поле «Сохраненный запрос» вставляем содержимое файла cert.req и нажимаем кнопку «Выдать».

/opt/cprocsp/bin/amd64/certmgr -inst -file имя_полученного_сертификата.cer -cont ’\.Aktiv Rutoken ECP 00 00Shuhrat’

/opt/cprocsp/bin/amd64/csptest -keys -cont ’\.Aktiv Rutoken ECP 00 00Shuhrat’ -keyt exchange -impcert имя_полученного_сертификата.cer

Установка базовых компонентов криптопро

  • Распакуйте загруженный архив. Это можно сделать, выбрав соответствующий пункт меню в графическом интерфейсе или выполнив консольные команды:
cd ~/Загрузки/
tar -xvf linux-amd64.tgz

Должна появиться папка с установочными файлами КриптоПро.

  • В консоли перейдите в эту папку:
cd linux-amd64/

Дальнейшую установку нужно выполнять с правами администратора (root).

  • Выполните в консоли команду перехода в режим администратора (su) и введите пароль.
  • Выполните команды установки:
urpmi -a lsb-core ccid
./install.sh
rpm -ivh cprocsp-rdr-pcsc-* lsb-cprocsp-pkcs11-*

Если пароль администратора неизвестен, можно использовать команду sudo ./install.sh, а затем — sudo rpm -ivh cprocsp-rdr-pcsc-* lsb-cprocsp-pkcs11-*, введя при этом пароль текущего пользователя (если у него есть на это права).

Для установки в графическом интерфейсе запустите файловый менеджер Dolphin с правами администратора, выполнив следующую команду:

kdesu dolphin

В открывшемся окне щёлкните по файлу install.sh.

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

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

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

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

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

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

Подпись

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

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

CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN: ******, user@test.ru
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chains are checked.
Folder './':
zayavlenie.pdf... Signing the data...    
 
Signed message is created.
[ReturnCode: 0]

где

  • -dn E=user@test.ru — сертификат по e-mail;
  • -der — использовать формат DER для файла подписи (по умолчанию используется формат Base64);
  • zayavlenie.pdf — имя подписываемого файла.

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

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

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

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

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

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

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

Таблица 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:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Issuer:'E=ca@skbkontur.ru, 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.

Настройка

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

Вариант 1

Набрать в адресной строке firefox

file:///etc/opt/cprocsp/trusted_sites.html

и добавить сайт.

Вариант 2

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

/opt/cprocsp/sbin/amd64/cpconfig -ini "\local\Software\Crypto Pro\CAdESplugin" -add multistring "TrustedSites" "https://rics.bashkortostan.ru" "https://www.cryptopro.ru"

чтобы указать доверенные сайты (указать свои) и

/opt/cprocsp/sbin/amd64/cpconfig -ini "\local\Software\Crypto Pro\CAdESplugin\TrustedSites" -view

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

Отдельно следует обратить внимание на первую команду. После «-add multistring» можно указать несколько сайтов, но каждый раз при вводе команды придётся указывать все доверенные сайты.

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

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

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fq

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

  • Загрузите с сайта удостоверяющего центра файл, содержащий корневой сертификат (обычно он имеет расширение .cer или .p7b) и, при необходимости, цепочку сертификатов.
  • Загрузите список отозванных сертификатов (файл с расширением .crl) и установите полученные файлы с помощью команд, аналогичных приведённым ниже.

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

/opt/cprocsp/bin/amd64/certmgr -inst -cert -file ~/Загрузки/<название файла>.cer -store uRoot

Установка списка отозванных сертификатов:

/opt/cprocsp/bin/amd64/certmgr -inst -crl -file ~/Загрузки/<название файла>.crl

Установка цепочки промежуточных сертификатов:

/opt/cprocsp/bin/amd64/certmgr -inst -cert -file ~/Загрузки/<название файла>.p7b -store CA

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

/opt/cprocsp/bin/amd64/certmgr -inst -cont '<путь к контейнеру, начинающийся на \.>' -store uMy

Подробнее о программе certmgr можно узнать здесь.

Примечание. Чаще всего расширение .cer соответствует сертификату, а .p7b — контейнеру, в котором может содержаться один или больше сертификатов (например, их цепочка).

Создание тестового сертификата

Создание контейнера на жёстком диске

Если на устройстве нет контейнеров, можно их создать.
Заходим на тестовый удостоверяющий центр (УЦ) КриптоПро (http://www.cryptopro.ru/certsrv/certrqma.asp) и заполняем требуемые поля (обязательно заполнять только поле «Имя:»). Нужно обязательно пометить ключ как экспортируемый. Стоит заметить, что для проверки, используемой в пункте «Проверка работы Browser Plug-in» нужно использовать стандарт 2001 года.

CryptoPro RELS11.png

Нажимаем кнопку «Выдать &gt;»

CryptoPro RELS12.png
CryptoPro RELS13.png
CryptoPro RELS14.png
CryptoPro RELS15.png

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

 /opt/cprocsp/bin/amd64/list_pcsc

CryptoPro RELS16.png

Также надо узнать полное название контейнера, полученного в ходе генерации сертификата:

 /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn

CryptoPro RELS17.png

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

Затем используем эти названия в следующей команде:

 /opt/cprocsp/bin/amd64/csptest -keycopy -contsrc '<полное название контейнера>' -contdest '\\.\<название токена>\<желаемое название контейнера>'

CryptoPro RELS18.png
CryptoPro RELS19.png

Теперь токен содержит контейнер. Можно вернуться к пункту «Установка сертификата с контейнера на токене (п. 7.3)», предварительно удалив сертификат, установленный из контейнера на жёстком диске (сгенерированного тестовым удостоверяющим центром).

Idea.png

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

Читайте также:  Во всех судах будут использоваться электронные документы

Удалить этот сертификат можно использовав следующую команду:

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

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

Ссылки

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

Проверка работы электронной подписи с использованием Browser Plug-in

Для проверки работы Browser Plug-in можно использовать следующий ресурс: https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html
Стоит также проверить, не установлены ли лишние сертификаты, ресурс работает корректно только если установлен единственный сертификат (можно использовать команду /opt/cprocsp/bin/amd64/certmgr -del). В случае правильной работы страница будет выглядеть примерно следующим образом.

CryptoPro RELS20.png

Резюме

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

Хочется дополнительно отметить такое развитие отечественных продуктов, учитывая современный тренд на замену Windows на Linux в государственных и муниципальных организациях. В рамках этого тренда становится актуальным использование средств криптографической защиты информации под Linux.

Такое развитие не может не радовать, особенно когда это происходит под Linux.

P. S. Наверняка есть немало пользователей, особенно пользователей Linux, кто считает, что консольных утилит достаточно. А также специалистов по информационной безопасности, которые считают, что дизайн и удобство — излишество в ИБ. Но я не могу с ними согласиться.

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

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

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

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

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

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

  1. DN — данные, которые будут храниться в поле Subject сертификата (cn=Test User5,e=cas@altlinux.org).
  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Адрес электронной почтыivanov@mail.mail
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,e=cas@altlinux.org”, используя открытый ключ, сгенерированный в контейнере 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 — запросить пароль ключевого контейнера из с консоли;

&lt;имя файла&gt; — имя файла, содержащего сертификат.

Добавление сертификата УЦ из файла 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              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
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.000EF8
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              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : E=support@cryptopro.ru, 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              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
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, ivanov@mail.mail, Иван Иванович, Иванов, Иванов Иван Иванович
Действителен с 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, чтобы выйти).

Читайте также:  Как выглядит криптопроцедура шифрования и неподписания Java?

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

...
----------- Error chain -----------
Chain status:IS_UNTRUSTED_ROOT
Revocation reason:unspecified
1. 
 Subject:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Issuer:'E=ca@skbkontur.ru, 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.

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

  • Создание через 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 &lt;пароль&gt;

Инструменты КриптоПро — кроссплатформенный графический интерфейс (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 пункт Операции ▷ Просмотр корневых сертификатов.

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

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

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

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

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

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

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

Установка пакетов

1. Распакуйте архив и перейдите в распакованную папку

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

# apt-get install cryptopro-preinstall

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

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

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

ПакетОписание
Базовые пакеты:
cprocsp-curlБиблиотека libcurl с реализацией шифрования по ГОСТ
lsb-cprocsp-baseОсновной пакет КриптоПро CSP
lsb-cprocsp-capiliteИнтерфейс CAPILite и утилиты
lsb-cprocsp-kc1Провайдер криптографической службы KC1
lsb-cprocsp-rdrПоддержка ридеров и RNG
Дополнительные пакеты:
cprocsp-rdr-gui-gtkГрафический интерфейс для диалоговых операций
cprocsp-rdr-rutokenПоддержка карт Рутокен
cprocsp-rdr-pcscКомпоненты PC/SC для ридеров КриптоПро CSP
lsb-cprocsp-pkcs11Поддержка PKCS11
ifd-rutokensКонфигурация Рутокеновских карт (или можно взять pcsc-lite-rutokens из репозитория)

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

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

# apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* lsb-cprocsp-rdr*

для поддержки токенов (Рутокен S и Рутокен ЭЦП):

# apt-get install cprocsp-rdr-gui-gtk* cprocsp-rdr-rutoken* cprocsp-rdr-pcsc* lsb-cprocsp-pkcs11* pcsc-lite-rutokens pcsc-lite-ccid

Примечания:

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

Совместимость[править]

По информации разработчика, с ALT Linux совместимы следующие продукты КриптоПро:

  • КриптоПро CSP
  • КриптоПро JCP
  • КриптоПро HSM
  • КриптоПро TSP
  • КриптоПро OCSP
  • КриптоПро ЭЦП Browser plug-in
  • КриптоПро SSF
  • КриптоПро Stunnel
  • Браузер КриптоПро Fox

Примечание: В репозитории доступен пакет firefox-gost, аналогичный КриптоПро Fox, с патчем от КриптоПро.

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

Ридеры (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/&lt;имя пользователя&gt;/

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

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

Примечания

  • После корректной установки плагина и добавления сайта КриптоПро в доверенные должна появиться возможность создать тестовый сертификат (ссылка). Тестовый сертификат может пригодиться для проверки работы различных приложений или для тестирования при их разработке.
  • Для проверки работы КриптоПро ЭЦП Browser plug-in следует установить сертификаты (можно использовать тестовые) и использовать данные ресурсы.
  • Для новых версий FireFox может потребоваться выполнить следующие действия: для весии 53 процедура описана здесь, для версии 52 процедура может оказаться аналогичной, но переменную plugin.load_flash_only придётся создавать вручную.

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

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

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

Athena-IDProtectClient.desktopAthena-IDProtectManager.desktop

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

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

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

/usr/bin/IDProtectPINTool

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

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

/usr/bin/IDProtect_Manager

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Стандартный ключ криптопро шифру

Как проверить электронные подписи с помощью gnupg (gpg)

Утилита gpg обычно устанавливается по умолчанию на всех дистрибутивах.

Если по какой-либо причине он отсутствует, вы можете установить его с помощью приведенных ниже команд.

В некоторых дистрибутивах, если вы получаете сообщение об ошибке типа «gpg: не удалось запустить dirmngr‘ /usr/bin/dirmngr ’: нет такого файла или каталога», вам также необходимо установить dirmngr.

В дистрибутивах Debian, Ubuntu или на основе Debian запустите:

Для RedHat/CentOS:

и Fedora:

Вы можете следовать приведенному ниже примеру, чтобы проверить, как проверить установщик Debian 9.8.0 ISO.

Загрузите «SHA256SUMS», «SHA256SUMS.sign» и «debian-9.8.0-amd64-netinst.iso».

Возможно, вам придется щелкнуть правой кнопкой мыши первые два файла и выбрать «Сохранить ссылку как» или эквивалентный файл в ваш веб-браузер.

В противном случае нажатие на них может просто отобразить их содержимое вместо автоматической загрузки.

Откройте эмулятор терминала и перейдите в каталог, где находятся ваши загрузки.

Trusted esign

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

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

Совместимость

По информации разработчика, с ALT Linux совместимы следующие продукты КриптоПро:

  • КриптоПро CSP
  • КриптоПро JCP
  • КриптоПро HSM
  • КриптоПро TSP
  • КриптоПро OCSP
  • КриптоПро ЭЦП Browser plug-in
  • КриптоПро SSF
  • КриптоПро Stunnel
  • Браузер КриптоПро Fox

Примечание:
В репозитории доступен пакет firefox-gost, аналогичный КриптоПро Fox, с патчем от КриптоПро.

Хеши и подписи

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

Вы можете прочитать, как проверить их в Windows или Linux:

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

Это делает хэши сами по себе почти бесполезными, особенно если они размещены на том же сервере, где находятся программы.

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

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

Их можно проверить только с помощью соответствующего открытого ключа, который публикуется в Интернете.

Если проверка прошла успешно, вы можете быть (почти всегда) уверены, что владелец закрытого ключа подписал свое программное обеспечение.

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

И даже когда ключ украден, владелец может сделать его недействительным, отозвав его и объявив его скомпрометированным.

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

Применимость

В инструкции описана установка СКЗИ КриптоПро CSP 4.0 для ROSA Enterprise Linux Server 6.7 для работы с Рутокен. Пример указан для 64-разрядной архитектуры AMD64, для 32-разрядной установка аналогична с точностью до указания установочных пакетов и папок.

Idea.png

Примечание
Когда не говорится о необходимости использования прав суперпользователя, подразумевается, что всё выполняется с правами пользователя, которым будет вестись работа в браузере firefox. Этот пользователь должен оставаться неизменным на протяжении всего описанного процесса

Получение установочных пакетов

Для установки СКЗИ КриптоПро CSP 4.0 для начала надо зарегистрироваться на сайте https://www.cryptopro.ru/ и со страницы загрузки https://www.cryptopro.ru/products/csp/downloads скачать версию 4.0 R2 для linux в формате rpm

CryptoPro RELS1.png

CryptoPro RELS2.png

Также сразу скачаем КриптоПро ЭЦП Browser plug-in версии 2.0 | отсюда

CryptoPro RELS3.png

После этого браузер следует закрыть.

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

Показать содержимое запроса:

$ cat test5.reqMIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=
  • Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
  • Нажмите «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64».
  • Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла и нажмите кнопку «Выдать».
  • Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя )

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

$ certmgr -list -file certnew.p7bCertmgr 1.0 (c) "CryptoPro",  2007-2010.
program for managing certificates, CRLs and stores
 
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : E=support@cryptopro.ru, 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              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 28/06/2016  10:22:36 UTC
Not valid after     : 28/09/2016  10:32:36 UTC
PrivateKey Link     : No                  
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)

Установите сертификат клиента (введите пароль на контейнер \\.\HDIMAGE\test при запросе):

$ certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\test' -inst_to_cont

(нажмите 2)

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

$ certmgr -listCertmgr 1.0 (c) "CryptoPro",  2007-2010.
program for managing certificates, CRLs and stores
 
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 28/06/2016  10:22:36 UTC
Not valid after     : 28/09/2016  10:32:36 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\test.000EF8
Provider Name       : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]

Удаление

Удалить сертификат под номером 1:

Удалить все сертификаты:

$ certmgr -delete -all$ certmgr -delete -store uroot

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

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

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

  • Создание через 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 &lt;пароль&gt;

Настройка криптопро csp

Несмотря на то, что есть несколько неплохих статей по настройке КриптоПро CSP под Linux (например,

или 

), я опишу здесь свой вариант. Основная причина в том, что большинство инструкций написаны для «Крипто Про CSP» версии 3.x. А современная версия КриптоПро CSP 4.0 не является 100% совместимой с 3.x. Дополнительная причина — всегда приятно иметь полную инструкцию по настройке в одном месте, а не переключаться с одного окна на другое.

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

tar -zxf ./linux-amd64_deb.tgz 

Далее у нас есть 2 варианта: автоматическая установка и установка вручную. Автоматическая установка запускается командой sudo ./install.sh или  sudo ./install_gui.sh .

Здесь надо отдать должное разработчикам «КриптоПро» — автоматическая установка для большинства дистрибутивов отрабатывает успешно. Хотя бывают и нюансы. Например, если у вас не хватает некоторых пакетов, то установка будет успешно завершена, хотя некоторый функционал работать не будет.

Если что-то пошло не так, или вы по тем или иным причинам хотите использовать установку в ручном режиме, то вам необходимо выполнить:

dpkg -i ./cprocsp-curl-64_4.0.0-4_amd64.deb lsb-cprocsp-base_4.0.0-4_all.deb lsb-cprocsp-
capilite-64_4.0.0-4_amd64.deb lsb-cprocsp-kc1-64_4.0.0-4_amd64.deb lsb-cprocsp-rdr-64_4.0
.0-4_amd64.deb 

Для установки пакетов в ROSA используйте urpmi , вместо dpkg -i .

Устанавливаем лицензию для «КриптоПро CSP» для Linux и проверяем, что все работает нормально:

cpconfig -license -set 
cpconfig -license –view 

Мы должны получить что-то вроде:

License validity:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Expires: 3 month(s) 2 day(s)
License type: Server. 

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

Редактирование списка доверенных узлов

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

 firefox /etc/opt/cprocsp/trusted_sites.html

Вбиваем название сайта в строку «Добавить новый», нажимаем «+» и «Сохранить».

CryptoPro RELS9.png

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

Для работы с сертификатами нужно установить сертификат удостоверяющего центра (в данном случае устанавливается непосредственно корневой сертификат) и сертификат с рутокена на локальное хранилище. Для этого нужно загрузить с сайта удостоверяющего центра файл, содержащий цепочку сертификатов (обычно файл с расширением .cer или .p7b) и список отозванных сертификатов. Они доступны по следующей ссылке (https://www.cryptopro.ru/certsrv/certcarc.asp). Нужно нажать «Загрузка цепочки сертификатов ЦС» и «Загрузка последнего базового CRL». В консоли нужно, используя права обычного пользователя, выполнить следующие команды:

 /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file ~/Downloads/certnew.p7b
 /opt/cprocsp/bin/amd64/certmgr -inst -crl -file ~/Downloads/certcrl.crl

Подробнее о программе certmgr можно узнать [[1]]
Теперь переходим к работе с контейнерами, расположенными на токене. Если на устройстве нет контейнеров, можно их создать. Для этого следует воспользоваться инструкцией в пункте Создание тестового сертификата.
После установки пакетов (п. 5.1. и п. 5.2.) должна появится возможность видеть контейнеры на устройстве. Чтобы узнать путь к контейнеру, а также о самом факте его наличия, можно ввести следующее:

 /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn

CryptoPro RELS10.png

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

Теперь установим сертификат с рутокена в личное хранилище (uMy):

 /opt/cprocsp/bin/amd64/certmgr -inst -cont '<путь к контейнеру, начинающийся на \\.\>' -store uMy

Если всё выполнилось без ошибок, можно переходить к пункту #Проверка работы электронной подписи с использованием Browser Plug-in

Idea.png

Примечание
Чаще всего расширение .cer соответствует сертификату, а .p7b – контейнеру, в котором может содержаться один или больше сертификатов (например их цепочка)

Установка криптопро fox

КриптоПро Fox — версия браузера Firefox, умеющая работать с КриптоПро.

Для удобства работы с КриптоПро Fox можно создать ярлык для его запуска на рабочем столе:

  • Кликните по столу правой кнопкой мыши.
  • Выберите пункт → Ссылка на приложение.
  • В открывшемся окне на вкладке укажите команду запуска и название ярлыка.
Оцените статью
ЭЦП Эксперт
Добавить комментарий

Adblock
detector