Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Если установка КриптоПро ЭЦП Browser plug-in прошла успешно, появится окно с надписью "Плагин загружен", указанием его версии и используемой Вами версии КриптоПро CSP.


е) Сайт проверки плагина


3)

...

Менеджер сертификатов

...

КриптоПРО в Linux

...


а) Получение личного сертификата:

Подключите USB носитель с ключевыми контейнерами и проверьте результат команды:

Code Block
languagebash
#/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fq

CSP (Type:80) v4.0.9017 KC1 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.

AcquireContext: OK. HCRYPTPROV: 34239459 
OK. 
Total: SYS: 0,000 sec USR: 0,010 sec UTC: 0,140 sec 
0x00000000

Основной утилитой для работы с сертификатами является certmgr (лежит в /opt/cprocsp/bin/<архитектура>). К ней есть man:
man 8 certmgr

Установка корневого сертификата:
certmgr -inst -store root -file <путь к файлу с сертификатом>

Установка личного сертификата:
certmgr -inst -file <путь к файлу с сертификатом> -cont <имя контейнера>

Установка стороннего сертификата:
certmgr -inst -file <путь к файлу с сертификатом>


Code Block
languagebash
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
Code Block
languagebash
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]