Оглавление | |
---|---|
|
#lsb_release -a
Distributor ID: AstraLinux
Description: Astra Linux 2.12 (Orel)
Release: 2.12
Codename: orel
1) Установка КриптоПро CSP
1) Скачаем архив с сертифицированной версией ПО «КриптоПро» «4.0 R3» по адресу: https://www.cryptopro.ru/products/csp/downloads#latest_csp40r3_linux (необходимая архитектура: x64, deb), сохранив его в папку «Загрузки».
Название полученного файла должно быть: «linux-amd64_deb.tgz».
2) Откроем терминал.
3) Перейдем в терминале в папку «Загрузки» с помощью команды:
cd /home/u/Загрузки
4) Разархивируем скаченный архив в терминале командой:
tar -zxf linux-amd64_deb.tgz
5) Перейдем в директорию с ПО и выполним установку ПО с помощью запуска скрипта «install.sh» командой:
cd ./linux-amd64_deb;sudo ./install.sh
6) Дополнительно установим пакет c GUI-компонентами командой:
sudo dpkg -i cprocsp-rdr-gui-gtk-64_4.0.9944-5_amd64.deb
7) Выполним проверку установки данного пакета командой:
dpkg -l | grep cprocsp-rdr-gui
...
|
КриптоПро CSP
...
Назначение
Криптопровайдер (Cryptography Service Provider, CSP) — независимый программный модуль, позволяющий осуществлять криптографические операции. Криптопровайдер КриптоПро CSP предназначен для:
- Авторизации и обеспечения юридической значимости электронных документов при обмене ими между пользователями. Обеспечивается посредством использования процедур формирования и проверки электронной подписи (ЭП) в соответствии с отечественными стандартами ГОСТ Р 34.10-2001 / ГОСТ Р 34.10-2012 (с использованием ГОСТ Р 34.11-94 / ГОСТ Р 34.11-2012).
- Обеспечения конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты, в соответствии с ГОСТ 28147-89.
- Обеспечения аутентичности, конфиденциальности и имитозащиты соединений по протоколу TLS.
- Контроля целостности системного и прикладного программного обеспечения для его защиты от несанкционированных изменений и нарушений правильности функционирования.
- Управления ключевыми элементами системы в соответствии с регламентом средств защиты.
https://www.cryptopro.ru/products/csp
Предупреждение |
---|
|
Установка КриптоПро CSP
...
Архив с программным обеспечением КриптоПро CSP доступен для загрузки на официальном сайте www.cryptopro.ru. Для загрузки требуется регистрация на сайте.
Для ОС Astra Linux следует загружать сертифицированные версии, пакеты "КриптоПро CSP x.x для Linux (x64, deb)" или "КриптоПро CSP x.x для Astra Linux, ЗПС (x64)" где x.x - номер версии.
Информация |
---|
Пробный период использования КриптоПро CSP составляет 3 месяца, по истечении которых необходимо приобрести полноценную лицензию. |
Для установки КриптоПРО CSP выполнить следующие действия:
- Загрузить архив с сертифицированной версией ПО «КриптоПро». Название полученного файла: «linux-amd64_deb.tgz».
- Открыть терминал (горячая клавиша Alt+T).
Разархивировать полученный архив в терминале командой:
Command tar -zxf linux-amd64_deb.tgz При разархивировании будет создан каталог linux-amd64_deb.
Перейти в созданный каталог linux-amd64_deb:
Command cd linux-amd64_deb Установить ПО:
Для работы с графическим пользовательским интерфейсом:
запустить сценарий install_gui.sh командой:
Command sudo ./install_gui.sh В процессе установи выбрать необходимые компоненты:
Для работы без графического пользовательского интерфейса запустить сценарий instal.sh командой:
Command sudo ./install.sh
Описание пакетов КриптоПро
Пакет | Описание |
---|---|
Базовые пакеты: | |
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-jacarta | Поддержка карт JaCarta |
cprocsp-rdr-pcsc | Компоненты PC/SC для ридеров КриптоПро CSP |
lsb-cprocsp-pkcs11 | Поддержка PKCS11 |
Для просмотра всех установленных пакетов КриптоПро CSP можно использовать команду:
Command |
---|
dpkg -l | grep cprocsp |
Пример вывода команды:
Блок кода | ||
---|---|---|
| ||
ii cprocsp-cptools-gtk-64 5.0.12000-6 amd64 GUI application for various CSP tasks. Build 12000.
ii cprocsp-curl-64 5.0.12000-6 amd64 CryptoPro cURL shared library and application. Build 12000.
ii cprocsp-rdr-cloud-64 5.0.12000-6 amd64 DSS keys support module
ii cprocsp-rdr-cpfkc-64 |
ii cprocsp-rdr-gui-gtk-64 4.0.9944-5 amd64 GUI components for CryptoPro CSP readers. Build 9944.
1a) Настройка alias в ~/.bashrc
Для удобства можно прописаты alias'ы в bashrc:
Блок кода |
---|
alias certmgr='/opt/cprocsp/bin/amd64/certmgr'
alias cpverify='/opt/cprocsp/bin/amd64/cpverify'
alias cryptcp='/opt/cprocsp/bin/amd64/cryptcp'
alias csptest='/opt/cprocsp/bin/amd64/csptest'
alias csptestf='/opt/cprocsp/bin/amd64/csptestf' |
2) Установка КриптоПро ЭЦП Browser plug-in
a)Установить пакет alien, необходимый для конвертации rpm-пакетов в deb-формат
б) Загрузить архив cades_linux_amd64.zip
https://www.cryptopro.ru/products/cades/plugin/get_2_0
в) Распаковать архив cades_linux_amd64.zip перейти в каталог с распакованными файлами и выполнить команды:
alien -dc cprocsp-pki-2.0.0-amd64-cades.rpm
alien -dc cprocsp-pki-2.0.0-amd64-plugin.rpm
г) Установить deb-пакеты:
dpkg -i cprocsp-pki-cades_2.0.0-2_amd64.deb cprocsp-pki-plugin_2.0.0-2_amd64.deb
д) Дальнейшие настройки различаются в зависимости от используемого браузера:
- Браузер Chrome: запустите Chrome и дождитесь оповещения об установленном расширении "CryptoPro Extension for CAdES Browser Plug-in". Включите это расширение. Если на Вашем компьютере ранее уже выполнялась установка КриптоПро ЭЦП Browser plug-in, а потом он был удален, потребуется отдельно установить расширение. Для этого перейдите по ссылке и установите расширение из интернет-магазина Chrome.
- Браузер Opera или Яндекс.Браузер: расширение доступно по ссылке.
- Браузер Firefox: скачайте расширение по ссылке и установите в браузер самостоятельно.
- Браузер Microsoft Internet Explorer: не требуется дополнительных настроек.
5. Проверьте корректность установки на странице проверки плагина. Для этого в открывшемся окне подтвердите доступ путем нажатия кнопки "Да".
Если установка КриптоПро ЭЦП Browser plug-in прошла успешно, появится окно с надписью "Плагин загружен", указанием его версии и используемой Вами версии КриптоПро CSP.
3) Менеджер сертификатов КриптоПРО в Linux
Основной утилитой для работы с сертификатами является certmgr (лежит в /opt/cprocsp/bin/<архитектура>). К ней есть man:
man 8 certmgr
Установка корневого сертификата:
certmgr -inst -store root -file <путь к файлу с сертификатом>
Установка личного сертификата:
certmgr -inst -file <путь к файлу с сертификатом> -cont <имя контейнера>
Установка стороннего сертификата:
certmgr -inst -file <путь к файлу с сертификатом>
Блок кода | ||
---|---|---|
| ||
certmgr -list Certmgr 1.1 (c) "CryptoPro", 2007-2018. program for managing certificates, CRLs and stores ============================================================================= 1------- Issuer : E=uc@mil.ru, OGRN=10377-----284, INN=0077----52261, C=RU, S=77 г. Москва, L=Москва, STREET=ул.Знаменка д.19, OU=4 центр (удостоверяющий) войсковой части 31659, O=Министерство обороны Российской Федерации, CN=Министерство обороны Российской Федерации Subject 5.0.12000-6 : E=mail@rusbitech.ru, SNILS=13407634844, INN=007726604816, OGRN=5087746137023, STREET=шоссе Варшавское д. 26, C=RU, S=77 г. Москва, L=Москва, T=Генеральный директор, O="АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", G=Виктор Иванович, SN=Пустовой, CN="АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""" Serialamd64 FKC support module ii cprocsp-rdr-cryptoki-64 : 0x2F80B07AC40C8------------52D SHA1 Hash5.0.12000-6 : 0e88a73fb7ee006d4--------98a66 SubjKeyID : 6b65a17ed568aad2e9-----fe55c Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits) Not valid before amd64 : 02/10/2018 14:31:02 UTC Not valid afterModule for PKCS11 keys support. : 02/10/2019 14:41:02 UTC PrivateKey LinkBuild 12000. ii cprocsp-rdr-edoc-64 : Yes Container 5.0.12000-6 : SCARD\rutoken_ecp Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0 OCSP URL amd64 Electronic documents : http://ocsp/ocsp/ocsp.srf OCSP URLsupport module ii cprocsp-rdr-emv-64 : http://ocsp:8080/ocsp/ocsp.srf OCSP URL : http://uc.mil.ru/ocsp-net/ocsp.srf CDP5.0.12000-6 : http://cr2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : http://cr2018:8080/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP amd64 EMV/Gemalto : http://regcvo2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP support module ii cprocsp-rdr-gui-gtk-64 : http://ra2-vvo/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP 5.0.12000-6 : http://reguvo1/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : http://spb2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : http://stat.structure.mil.ru/download/doc/morf/military/files/crl_18.crl Extended Key Usage : 1.3.6.1.5.5.7.3.2 amd64 CryptoPro CSP GTK GUI components. Build 12000. ii cprocsp-rdr-infocrypt-64 1 5.30.6.1.5.5.7.3.4 ============================================================================= [ErrorCode: 0x00000000] |
Просмотр корневых сертификатов
certmgr -list -store root
Блок кода | ||
---|---|---|
| ||
certmgr -list -store root Certmgr 1.1 (c) "CryptoPro", 2007-2018. program for managing certificates, CRLs and stores WARNING: Legacy parameter: "-store root" ============================================================================= 1------- Issuer12000-6 amd64 Infocrypt FKC support module ii cprocsp-rdr-inpaspot-64 5.0.12000-6 amd64 Inpaspot support module ii cprocsp-rdr-kst-64 : E=dit@minsvyaz.ru, C=RU, S=77 г. Москва, L=Москва, STREET="125375 г. Москва, ул. Тверская, д. 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Головной удостоверяющий центр Subject : E=dit@minsvyaz.ru, C=RU, S=77 г. Москва, L=Москва, STREET="125375 г. Москва, ул. Тверская, д. 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Головной удостоверяющий центр Serial : 0x34681E40CB41EF33A9A0B7C876929A29 SHA1 Hash : 8cae88bbfd404a7a53630864f9033606e1dc45e2 SubjKeyID : 8b983b891851e8ef9c0278b8eac8d420b255c95d Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 20/07/2012 12:31:14 UTC Not valid after : 17/07/2027 12:31:14 UTC PrivateKey Link : No 2------- Issuer : E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET="улица Тверская, дом 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России Subject : E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET="улица Тверская, дом 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России Serial : 0x4E6D478B26F27D657F768E025CE3D393 SHA1 Hash : 4bc6dc14d97010c41a26e058ad851f81c842415a SubjKeyID : c254f1b46bd44cb7e06d36b42390f1fec33c9b06 Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits) Not valid before : 06/07/2018 12:18:06 UTC Not valid after : 01/07/2036 12:18:06 UTC PrivateKey Link : No ============================================================================= [ErrorCode: 0x00000000] |
Как ставятся сертификаты и их категории:
Они делятся на четыре категории:
* личные сертификаты (ставятся в хранилище umy, где u = User, my - имя хранилища) - как правило для них есть закрытый ключ (и они требуют особой установки, чтобы в хранилище появилась ссылка на этот закрытый ключ). В результате с их использованием можно, например, подписать файл.
* корневые сертификаты - краеугольнй камень безопасности, так как цепочки доверия строятся от них, то их надо добавлять в хранилища осознанно и внимательно (ставятся в uroot, также администратор может поставить их в mroot, где m = Machine, такие сертификаты будут видны в read only в root-хранилищах всех пользователей)
* промежуточные сертификаты - появляются, когда есть промежуточные УЦ (головной -> промежуточный -> пользовательский). Прямое доверие к ним не требуется (ставятся в uca, также администратор может поставить их в mca). В это же хранилище ставятся CRL-и. Обычно точки получения промежуточных сертификатов и CRL-ей правильно указаны в пользовательских сертификатах, поэтому они автоматом выкачиваются и попадают в хранилище ucache. В общем про них можно ничего особо не знать и ничего не делать.
* сертификаты партнёров по общению, чтобы проверять их подписи и зашифровывать для них сообщения. Ставятся либо в umy (это беспорядок, но популярный), либо в uAddressBook
P.S. Имена хранилищ указаны в формате certmgr, у cryptcp похожий формат: -mroot и -uAddressBook
Установка сертификата удостоверяющего центра (УЦ):
$ certmgr -inst -file certnew.p7b -store uRoot
Установка сертификата клиента
$ certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\test' -inst_to_cont
Примечание:
Корневые сертификаты для всех пользователей ставятся в хранилище машины - т.е. с параметром -store mRoot. Например: certmgr -store mRoot -inst -file /tmp/cert.cer
Удаление сертификата:
certmgr -delete 1 (номер сертификата)
certmgr -del -all (удаление всех сертификатов)
Экспорт сертификатов на другую машину
Закрытые ключи к сертификатам находятся тут: /var/opt/cprocsp/keys
. Поэтому эти ключи переносятся просто: создаем архив и переносим на нужную машину в тот же каталог.
/opt/cprocsp/bin/amd64/certmgr -export -dest cert.cer
Переносим эти файлы на машину и смотрим, какие контейнеры есть:
csptest -keyset -enum_cont -verifycontext -fqcn
И как обычно, связываем сертификат и закрытый ключ:
certmgr -inst -file 1.cer -cont '\\.\HDIMAGE\container.name'
Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Can not install certificate
Public keys in certificate and container are not identical
Подписание документа ЭЦП
Подпись можно делать двумя способами:
* attached (присоединённая), тогда результирующий файл - это CMS-сообщение, внутрь которого упакованы данные и атрубуты (типа подписи). Формат сообщения соответствует международному стандарту, поэтому извлекать данные оттуда можно любыми утилитами, типа cryptcp / csptest / openssl / certutil (на windows). Но cat-ом их не посмотреть.
* detached (отсоединённая), тогда результирующий файл - это CMS-сообщение БЕЗ исходных данных, но с атрибутами (типа подписи). В этом случае для проверки надо "принести" исходный файл. Разумеется он остаётся неизменным и его можно смотреть cat-ом
Про CMS-сообщения, есть хорошая статья в Хабре
Блок кода |
---|
Подпись файлов:
shuhrat@smakhmadiev:~/smolensk$ /opt/cprocsp/bin/amd64/cryptcp -sign -detach -pin 12345678 smolensk16.iso smolensk16.iso.sig
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Пустовой, Виктор Иванович, "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Генеральный директор, Москва, 77 г. Москва, RU, шоссе Варшавское д. 26, 5087746137023, 007726604816, 13407634844, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочки сертификатов проверены.
Папка './':
smolensk16.iso... Подпись данных...
Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000] |
Проверка подписи в файле:
ПРОВЕРКА ПОДПИСИ:
1) обучающий: указать в качестве хранилища сертификатов само сообщение (ключ -f):
Блок кода |
---|
/opt/cprocsp/bin/amd64/cryptcp -verify -verall -detached /home/shuhrat/smolensk/smolensk16.iso smolensk16.iso.sig
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Папка '/home/shuhrat/smolensk/':
/home/shuhrat/smolensk/smolensk16.iso... Проверка подписи...
Автор
подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ
РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Пустовой, Виктор Иванович,
"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ
БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Генеральный директор, Москва, 77
г. Москва, RU, шоссе Варшавское д. 26, 5087746137023, 007726604816,
13407634844, mail@rusbitech.ru
Ошибка: Цепочка сертификатов не проверена для следующего сертификата (код ошибки 10000):
/dailybuilds/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:396: 0x20000133
Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?Y
Подпись проверена.
[ErrorCode: 0x00000000] |
...
естественный: использовать ключ -verall - он понимает, что надо найти всех подписавших и ищет в том числе в сообщении:
...
5.0.12000-6 amd64 MorphoKST support module
ii cprocsp-rdr-mskey-64 5.0.12000-6 amd64 Mskey support module
ii cprocsp-rdr-novacard-64 5.0.12000-6 amd64 Novacard support module
ii cprocsp-rdr-pcsc-64 5.0.12000-6 amd64 CryptoPro CSP. PC/SC devices support. Build 12000.
ii cprocsp-rdr-rosan-64 5.0.12000-6 amd64 Rosan support module
ii cprocsp-rdr-rutoken-64 5.0.12000-6 amd64 Rutoken support module
ii lsb-cprocsp-base 5.0.12000-6 all CryptoPro CSP directories and scripts. Build 12000.
ii lsb-cprocsp-ca-certs 5.0.12000-6 all CryptoPro CA certificates. Build 12000.
ii lsb-cprocsp-capilite-64 5.0.12000-6 amd64 CryptoPro CSP. CryptoAPI Lite libraries and applications. Build 12000.
ii lsb-cprocsp-import-ca-certs 5.0.12000-6 all Import OS root certificates in CryptoPro CSP. Build 12000.
ii lsb-cprocsp-kc1-64 5.0.12000-6 amd64 CryptoPro CSP KC1. Build 12000.
ii lsb-cprocsp-pkcs11-64 5.0.12000-6 amd64 CryptoPro PKCS11. Build 12000.
ii lsb-cprocsp-rdr-64 5.0.12000-6 amd64 CryptoPro CSP common libraries and utilities. Build 12000. |
Настройка путей к исполняемым файлам
Для того, чтобы не вводить каждый раз полный путь к утилитам КриптоПро CSP, в терминале FLY следует ввести команду:
Command |
---|
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH" |
Подробнее см. Присвоение значений переменным окружения для пользовательских сессий.
Установка дополнительных пакетов для поддержки ключевых носителей
Для корректной работы с ключевыми носителями (токенами и смарт-картами) установить дополнительные пакеты:
- дополнительные пакеты из состава ОС:
- libccid;
- libgost-astra;
- pcscd;
- пакеты с модулями поддержки, предоставляемые производителями оборудования:
- для токенов Рутокен: https://www.rutoken.ru/support/download/nix/;
- для токенов Аладдин: https://www.aladdin-rd.ru/support/downloads/jacarta;
Команда для установки пакетов из состава ОС:
Command |
---|
sudo apt install libccid pcscd libgost-astra |
Пакеты с модулями поддержки доступны по указанным выше ссылкам. Порядок установки модулей, предоставляемых производителями см. в инструкциях производителя, а также см. статьи Аладдин RD JaCarta в AstraLinux и Рутокен в Astra Linux.
Ключ КриптоПРО CSP для работы в режиме замкнутой программной среды Astra Linux SE.
Информация |
---|
Подробнее про режим замкнутой программной среды (ЗПС) и про работу в этом режиме см. Astra Linux: Режим замкнутой программной среды |
...
Ключ для обеспечения работы в режиме ЗПС Astra Linux SE доступен по ссылке: https://cryptopro.ru/sites/default/files/private/csp/cryptopro_pub_key.gpg. Для загрузки ключа требуется регистрация.
Для установки загруженного ключа:
установить пакет astra-digsig-oldkeys:
Command sudo apt install astra-digsig-oldkeys создать каталог /etc/digsig/keys/legacy/cryptopro:
Command sudo mkdir -p /etc/digsig/keys/legacy/cryptopro Далее предполагается, что ключзагружен и помещен в созданный каталог.
выполнить команду:
Command sudo update-initramfs -uk all - перезагрузить компьютер.
Лицензии КриптоПро
Проверка срока истечения лицензии КриптоПро
Проверить срок истечения лицензии КриптоПро можно командой:
Command |
---|
/opt/cprocsp/sbin/amd64/cpconfig -license -view |
Пример вывода команды:
Блок кода |
---|
License validity:
5050010037ELQF5H28KM8E6BA
Expires: 88 day(s)
License type: Demo. |
Установка лицензии КриптоПРо
Для установки лицензии выполнить команду :
Command |
---|
sudo /opt/cprocsp/sbin/amd64/cpconfig -license -set <номер_лицензии> |
Носители и контейнеры
...
Идентификация токена
Для просмотра списка настроенных считывателей можно воспользоваться командой:
Command |
---|
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view |
Пример вывода команды:
Блок кода |
---|
Nick name: HDIMAGE
Connect name:
Reader name: HDD key storage
Nick name: CLOUD
Connect name:
Reader name: Cloud Token
Nick name: Aktiv Rutoken lite 00 00
Connect name:
Reader name: Aktiv Rutoken lite 00 00 |
Чтобы узнать модели подключенных токенов ввести команду:
Command |
---|
/opt/cprocsp/bin/amd64/csptest -card -enum -v -v |
После чего система выдаст информацию о подключенных устройствах, например:
Блок кода |
---|
Aktiv Rutoken lite 00 00
Card present, ATR=3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2
Unknown applet
Total: SYS: 0,000 sec USR: 0,010 sec UTC: 0,310 sec
[ErrorCode: 0x00000000] |
Проверить наличие носителей с контейнерами можно с помощью команды:
Command |
---|
/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum -unique |
Получить имя носителя в формате FQCN (Fully Qualified Container Nam):
Command |
---|
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251 |
В этом случае будет выведен список носителей с контейнерами в следующих форматах:
- \\.\HDIMAGE\<имя_контейнера> - контейнеры на локальных носителях;
- \\.\Aktiv Rutoken ECP 00 00\<имя_носителя> - контейнеры на токенах.
Подробную информацию см. "Имена контейнеров"
Информация о контейнерах
Для просмотра подробной информации о контейнерах воспользуйтесь командой:
Command |
---|
/opt/cprocsp/bin/amd64/csptestf -keyset -container 'ИМЯ' -info |
Пример работы команды:
Раскрыть |
---|
/opt/cprocsp/bin/amd64/csptestf -keyset -container 'Shuhrat' -info |
Информация | ||
---|---|---|
При наличии кириллических символов в имени ключевого контейнера для дальнейшей работы с таким контейнером необходимо использовать его уникальный идентификатор. Получить уникальные идентификаторы ключевых контейнеров можно командой:
|
Примечание |
---|
Особенности применения PIN-кодов в контейнерах:
|
Проверка работы контейнера
Для того чтобы проверить работу контейнера (в том числе возможность выполнения разных операций при текущей лицензии), следует выполнить команду:
Command |
---|
/opt/cprocsp/bin/amd64/csptestf -keyset -container ИМЯ -check |
Пример работы команды:
Раскрыть |
---|
/opt/cprocsp/bin/amd64/csptestf -keyset -container Shuhrat -check CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11233 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 28224051 GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP Container name: "Shuhrat" Check header passed. Signature key is available. HCRYPTKEY: 0x1b53883 Exchange key is available. HCRYPTKEY: 0x1b57e23 Symmetric key is not available. UEC key is not available. License: Cert without license Check container passed. Check sign passed. Check verify signature on private key passed. Check verify signature on public key passed. Check import passed (import restricted). Check sign passed. Check verify signature on private key passed. Check verify signature on public key passed. Check import passed. Certificate in container matches AT_KEYEXCHANGE key. Keys in container: signature key exchange key Extensions: OID: 1.2.643.2.2.37.3.9 PrivKey: Not specified - 18.01.2020 07:31:07 (UTC) OID: 1.2.643.2.2.37.3.10 PrivKey: Not specified - 18.01.2020 07:31:12 (UTC) Total: SYS: 0,030 sec USR: 0,140 sec UTC: 2,430 sec [ErrorCode: 0x00000000] |
Удаление контейнера
Удалить контейнер можно командой:
Command |
---|
/opt/cprocsp/bin/amd64/csptestf -passwd -cont '\\.\Aktiv Rutoken ECP 00 00\TestCont' -deletek |
Копирование контейнера
Скопировать контейнер из локального хранилища в хранилище токена Рутокен ЕЦП:
Command |
---|
csptestf -keycopy -contsrc '\\.\HDIMAGE\Контейнер_оригинал' -contdest '\\.\Aktiv Rutoken ECP 00 00\Контейнер_копия' |
Смена пароля на контейнер (снятие паролей с контейнера)
Command |
---|
/opt/cprocsp/bin/amd64/csptestf -passwd -cont '\\.\Aktiv Rutoken ECP 00 00\TestContainer' -change <новый_пароль> -passwd <старый_пароль> |
Примечание | ||
---|---|---|
В случае, если контейнеру с ключом не был задан PIN, следует воспользоваться командой:
|
Менеджер сертификатов КриптоПро в Linux
...
Категории сертификатов
Сертификаты делятся на четыре категории:
- Личные сертификаты (устанавливаются в хранилище umy, где u = User, my - имя хранилища). Для таких сертификатов, как правило, имеется закрытый ключ и они требуют особой установки, чтобы в хранилище появилась ссылка на этот закрытый ключ. Используя личные сертификаты можно, например, подписать файл.
- Корневые сертификаты — основа построения цепочек доверия. Корневые сертификаты следует добавлять в хранилища осознанно и внимательно. Корневые сертификаты устанавливаются в хранилище uroot, также администратор может установить их в хранилище mroot, где m = Machine. Такие сертификаты будут доступны в режиме только чтение (read only) в root-хранилищах всех пользователей).
- Промежуточные сертификаты — используются когда есть промежуточные УЦ (структура вида "головной УЦ" -> "промежуточный УЦ" -> ...-> "промежуточный УЦ" -> "пользовательский сертификат"). Прямое доверие к промежуточным сертификатам не требуется и они могут быть установлены в пользовательской хранилище uca, также администратор установить их в mc). В это же хранилище устанавливаются и списки отзыва сертификатов (CRL). Обычно точки получения промежуточных сертификатов и списков отзыва (CRL) правильно указаны в пользовательских сертификатах, поэтому они загружаются автоматически и устанавливаются в хранилище ucache. Обычно непосредственная работа с промежуточными сертификатами не требуется.
- Сертификаты участников обмена данными. Используются чтобы проверять подписи в получаемых сообщениях и шифровать исъодящие сообщения. Устанавливаются либо в хранилище umy (не лучшая, но распространенная практика), либо в uAddressBook (рекомендованная практика).
Пример установки личного сертификата, выданного УЦ Министерства Обороны Российской Федерации
Установка всех личных сертификатов из всех контейнеров в хранилище uMy :
Command |
---|
/opt/cprocsp/bin/amd64/csptestf -absorb -certs -autoprov |
Установка определенного сертификата из определенного контейнера в хранилище uMy:
Command |
---|
/opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\Aktiv Rutoken ECP 00 00\Ivanov' |
Установка сертификата удостоверяющего центра ГУЦ в хранилище mRoot (подробнее см. Корневые и отозванные сертификаты):
Command |
---|
wget https://zgt.mil.ru/upload/site228/document_file/GUC_2022.cer -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -stdin |
Установка списка отозванных сертификатов (CRL) (список загружается с того же сайта и устанавливается в хранилище mca):
Command |
---|
wget http://reestr-pki.ru/cdp/guc2022.crl -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin -crl |
Информация | ||||
---|---|---|---|---|
| ||||
В опции -pattern >>> 'rutoken' может быть другим в зависимости от подключенного токена. В случае, если требуется установка сертификата УЦ и CRL на рабочую станцию, не имеющую доступа к сети, следует:
Например:
|
Информация | ||||
---|---|---|---|---|
| ||||
|
Просмотр ранее установленных сертификатов
Просмотра ранее установленных сертификатов можно выполнить командой:
Command |
---|
/opt/cprocsp/bin/amd64/certmgr -list |
Удаление сертификатов из хранилища КриптоПро
Для удаления определенного сертификата из хранилища КриптоПро выполнить команду:
Command |
---|
/opt/cprocsp/bin/amd64/certmgr -delete |
После выполнения команды на экран будет выведен весь список сертификатов и предложение ввести номер удаляемого сертификата.
Для удаления всех сертификатов выполнить команду:
Command |
---|
/opt/cprocsp/bin/amd64/certmgr -del -all |
Экспорт сертификатов на другую машину
Закрытые ключи к сертификатам находятся в каталоге /var/opt/cprocsp/keys
. Для переноса ключей нужно создаем архив и перенести его на нужную машину в тот же каталог.
Экспорт сертификата:
Command |
---|
/opt/cprocsp/bin/amd64/certmgr -export -dest cert.cer |
Переносим эти файлы на машину и смотрим, какие контейнеры есть:
Command |
---|
csptest -keyset -enum_cont -verifycontext -fqcn |
Связываем сертификат и закрытый ключ:
Command |
---|
certmgr -inst -file 1.cer -cont '\\.\HDIMAGE\container.name' |
Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Блок кода |
---|
Can not install certificate
Public keys in certificate and container are not identical |
Проверка цепочки сертификатов
Для примера: чтобы проверить цепочку сертификатов, можно скопировать персональный сертификат в файл:
Command |
---|
/opt/cprocsp/bin/amd64/cryptcp -copycert -dn 'CN=Имя_вашего_сертификата' -df /temp/сертификат.cer |
Примечание |
---|
Можно указать другое поле сертификата: CN, E, SN, OGRN, SNILS и тд. |
Блок кода |
---|
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат: АРМ Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочка сертификатов не проверена для следующего сертификата:
Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Пустовой, Виктор Иванович, "АКЦИОНЕРНОЕ
ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Генеральный директор, Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, 5087746137023, 007726604816,
13407634844, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Ошибка: Цепочка сертификатов не проверена для следующего сертификата (код ошибки 10000):
/dailybuilds/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:396: 0x20000133
Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])? С |
Из вывода следует, что у нас отсутствует некий сертификат в цепочке сертификатов. Можно запустить вышеуказанную команду в режиме debug(отладки):
Блок кода |
---|
$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn 'CN=Имя_вашего_сертификата' -df /temp/сертификат.cer
...
----------- Error chain -----------
Chain status:IS_UNTRUSTED_ROOT
Revocation reason:unspecified
1.
Subject:'E=uc@mil.ru, OGRN=1037700255284, INN=007704252261, C=RU, S=77 г. Москва, L=Москва, STREET=ул.Знаменка д.19, OU=4 центр (удостоверяющий) войсковой части 31659, O=Министерство обороны Российской Федерации, CN=Министерство обороны Российской Федерации'
Issuer:'E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET="улица Тверская, дом 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России'
Cert status:IS_UNTRUSTED_ROOT
... |
Информация |
---|
CP_PRINT_CHAIN_DETAIL=1 --> включает режим отладки |
В нашем примере из логов можно сделать вывод, что нам надо установить сертификат УЦ МО с CN=Министерство обороны Российской Федерации:
Command |
---|
/opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file minoboron-root-2018.crt |
Для того, чтобы убедиться в устранении ошибки, можно повторно в режиме отладки запустить команду. При правильно установленной цепочке сертификатов, статус у сертификата будет = CERT_TRUST_NO_ERROR
Блок кода |
---|
....
Subject:'E=uc@mil.ru, OGRN=1037700255284, INN=007704252261, C=RU, S=77 г. Москва, L=Москва, STREET=ул.Знаменка д.19, OU=4 центр (удостоверяющий) войсковой части 31659, O=Министерство обороны Российской Федерации, CN=Министерство обороны Российской Федерации'
Issuer:'E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET="улица Тверская, дом 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России'
Cert status:CERT_TRUST_NO_ERROR
...
Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000] |
Подписание документа ЭЦП
...
Подпись документа может быть сделана двумя способами:
- attached (присоединенная), когда результирующий файл - это CMS-сообщение, внутрь которого упакованы данные и атрибуты (типа подписи). Формат сообщения соответствует международному стандарту, поэтому извлекать данные оттуда можно любыми утилитами, типа cryptcp / csptest / openssl / certutil (на windows);
- detached (отсоединенная), когда результирующий файл - это CMS-сообщение БЕЗ исходных данных, но с атрибутами (типа подписи). В этом случае для проверки надо "принести" исходный файл. Разумеется он остаётся неизменным и его можно смотреть cat-ом
Примечание |
---|
Подробнее см. Форматы электронной подписи |
Подпись файлов (присоединенная)
Command | ||
---|---|---|
| ||
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Цепочки сертификатов проверены. Подписанное сообщение успешно создано. |
Подпись файлов (отсоединенная)
Command | ||
---|---|---|
| ||
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Будет использован следующий сертификат: Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Цепочки сертификатов проверены. Подписанное сообщение успешно создано. |
Проверка подписи в файле
...
Проверка присоединенной подписи
Для проверки присоединенной подписи выполнить:
Command | ||
---|---|---|
| ||
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Найдено сертификатов: 4 Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ Подпись проверена. |
Способ "естественный"
Использовать ключ -verall, указывающий, что надо найти всех подписавших, в том числе в сообщении:
Command | ||
---|---|---|
| ||
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ Цепочки сертификатов проверены. Подпись проверена. |
Способ "обучающий"
Указать в качестве хранилища сертификатов само сообщение (ключ -f):
Command | ||
---|---|---|
| ||
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Будет использован следующий сертификат: Цепочки сертификатов проверены. Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ Подпись проверена. |
Извлечение подписанного файла
Чтобы извлечь файл, необходимо указать его имя в конце команды проверки подписи:
Command |
---|
cryptcp -verify raport.pdf.sig raport.pdf |
Графический интерфейс КриптоПро CSP v. 5.0 (cptools)
...
В версии КриптоПро 5 появился графический инструмент для работы с сертификатами - cptools. Инструмент можно запустить из консоли:
Command |
---|
cptools |
либо:
Command |
---|
/opt/cprocsp/bin/amd64/cptools |
Удаление КриптоПро CSP
...
Для того, чтобы удалить ПО КриптоПро CSP, в терминале FLY следует ввести последовательно 3 команды:
Command |
---|
sudo rm -rf /opt/cprocsp |
Отключение сообщений о необходимости перехода на ГОСТ Р 34.10-2012
...
В соответствии с принятым в 2014 году порядком перехода на ГОСТ Р 34.10-2012 до 1 января 2019 года попытка использования ГОСТ Р 34.10-2001 (кроме проверки подписи) на всех выпущенных к настоящему моменту сертифицированных версиях КриптоПро CSP 3.9, 4.0 и КриптоПро JCP 2.0 с 1 января 2019 года вызовет ошибку/предупреждение (в зависимости от продукта и режима работы), которые могут привести к неработоспособности автоматических/автоматизированных систем при использовании ими ключей ГОСТ Р 34.10-2001. В случае если ваша система использует ключи ГОСТ Р 34.10-2001, просим принять во внимание инструкцию.
Для отключения данных предупреждений в КриптоПро CSP, нужно добавить два ключа в конфигурационный файл /etc/opt/cprocsp/config64.ini в существующую секцию Parameters:
Блок кода |
---|
[Parameters]
# Параметры провайдера
warning_time_gen_2001=ll:9223372036854775807
warning_time_sign_2001=ll:9223372036854775807 |
Примечание |
---|
Для наиболее безболезненного продолжения работы с ГОСТ Р 34.10-2001 в 2019 году рекомендуем использовать актуальные версии КриптоПро. В ранних версиях КриптоПро CSP и Клиент HSM 2.0 присутствуют технические ограничения формирования подписи по ГОСТ Р 34.10-2001 после 1 января 2019 года, о чем выдаются предупреждения в виде соответствующих окон. |
Полезные ссылки
...
КриптоПро: IFCP plugin для входа ЕСИА (Госуслуги)
КриптоПро CADES ЭЦП Browser plug-in
КриптоПро CADES ЭЦП Browser plug-in
Таблица поддерживаемых устройств Крипто-Про CSP
На официальном сайте СКЗИ КриптоПро в таблице указаны носители, продемонстрировавшие работоспособность с соответствующими версиями КриптоПро CSP:
https://www.cryptopro.ru/products/csp/compare
База знаний КриптоПро
https://support.cryptopro.ru/index.php?/Knowledgebase/List
Обсуждение КриптоПро CSP на форуме astralinux
https://forum.astralinux.ru/threads/419/
Chromium+КриптоПРО
Список ГИС и ЭТП использующих cades-bes plugin
ЭЦП в государственных информационных системах и электронно торговых площадках
Перечень аккредитованных удостоверяющих центров
Аккредитованные удостоверяющие центры
Диагностический архив для обращения в тех. поддержку
...
При обращениях в техническую поддержку по вопросам установки и настройки СКЗИ а также обеспечения доступа к электронным ресурсам в сети Интернет рекомендуется использовать диагностический архив. Для создания диагностического архива, можно воспользоваться следующей командой:
Command |
---|
/opt/cprocsp/bin/amd64/curl https://cryptopro.ru/sites/default/files/products/csp/cprodiag 2>/dev/null|sudo perl |
В результате выполнения команды должен получится архив в файле cprodiag_день_месяц_год.tar.gz, который следует приложить к запросу в техническую поддержку.