...
Если установка КриптоПро ЭЦП Browser plug-in прошла успешно, появится окно с надписью "Плагин загружен", указанием его версии и используемой Вами версии КриптоПро CSP.
3)
...
Менеджер сертификатов
...
КриптоПРО в Linux
...
а) Получение личного сертификата:
Подключите USB носитель с ключевыми контейнерами и проверьте результат команды:
...
language | bash |
---|
...
Основной утилитой для работы с сертификатами является 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-сообщения, есть хорошая статья в Хабре
Проверка подписи в файле:
ПРОВЕРКА ПОДПИСИ:
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]
...