#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
Вывод данной команды должен быть подобным:
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 : E=mail@rusbitech.ru, SNILS=13407634844, INN=007726604816, OGRN=5087746137023, STREET=шоссе Варшавское д. 26, C=RU, S=77 г. Москва, L=Москва, T=Генеральный директор, O="АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", G=Виктор Иванович, SN=Пустовой, CN="АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""" Serial : 0x2F80B07AC40C8------------52D SHA1 Hash : 0e88a73fb7ee006d4--------98a66 SubjKeyID : 6b65a17ed568aad2e9-----fe55c Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits) Not valid before : 02/10/2018 14:31:02 UTC Not valid after : 02/10/2019 14:41:02 UTC PrivateKey Link : Yes Container : SCARD\rutoken_ecp Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0 OCSP URL : http://ocsp/ocsp/ocsp.srf OCSP URL : http://ocsp:8080/ocsp/ocsp.srf OCSP URL : http://uc.mil.ru/ocsp-net/ocsp.srf CDP : http://cr2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : http://cr2018:8080/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : http://regcvo2018/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : http://ra2-vvo/cdp/4ab7c589e2d91df0ec01225b7e6841dbee8bc33e.crl CDP : 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 1.3.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------- Issuer : 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]
2-ой Метод проверки подписи:
естественный: использовать ключ -verall - он понимает, что надо найти всех подписавших и ищет в том числе в сообщении:
/opt/cprocsp/bin/amd64/cryptcp -verify -f smolensk16.iso.sig -detached 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 Цепочка сертификатов не проверена для следующего сертификата: Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Пустовой, Виктор Иванович, "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Генеральный директор, Москва, 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])?y Цепочки сертификатов проверены. Папка './': 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]