![]() juss1962 |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Установлена Linux Mint 19 Tara. Помогите вычистить систему и установить эту КриптуПро, чтобы работала. |
![]() |
|
![]() Андрей Емельянов |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 4 раз |
Добрый день. Код:
Если попробовать руками удалить пакет cprocsp-rdr-jacarta-64, ошибка такая же? Код:
Отредактировано пользователем 30 апреля 2019 г. 14:42:15(UTC) |
Техническую поддержку оказываем тут |
|
![]() |
|
![]() juss1962 |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Андрей Емельянов Добрый день. Код:
Если попробовать руками удалить пакет cprocsp-rdr-jacarta-64, ошибка такая же? Код:
Похоже, что всё то же самое. |
![]() |
|
![]() Андрей Емельянов |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 4 раз |
Дополнительно, приложите вывод: Код:
|
Техническую поддержку оказываем тут |
|
![]() |
|
![]() Андрей Емельянов |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 4 раз |
В пакете cprocsp-rdr-jacarta-64 для deb дистрибутива выявлены ошибки. Т.е. установить можно удалить нельзя. Удалить пакет можно таким образом: Код:
далее либо удаляете 1 пакет: Код:
либо весь дистрибутив: Код:
|
Техническую поддержку оказываем тут |
|
![]() |
|
|
juss1962
оставлено 20.05.2019(UTC) |
![]() juss1962 |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Андрей Емельянов В пакете cprocsp-rdr-jacarta-64 для deb дистрибутива выявлены ошибки. Т.е. установить можно удалить нельзя. Удалить пакет можно таким образом: Код:
далее либо удаляете 1 пакет: Код:
либо весь дистрибутив: Код:
Спасибо! Это помогло! Отредактировано пользователем 20 мая 2019 г. 16:54:20(UTC) |
![]() |
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Версия ПО: КриптоПро CSP 4.0.9963 и ниже, ОС Linux
Токены: Любые
Проблема:
При попытке удаления/переустановки криптопровайдера КриптоПро CSP 4.0.9963 (и более ранние версии), который ранее был настроен для работы с ключевыми носителями JaCarta (добавлен модуль поддержки JaCarta) на ОС Linux возникает ошибка:
dpkg: error processing package cprocsp-rdr-jacarta-64 (—purge): installed cprocsp-rdr-jacarta-64 package post-removal script subprocess returned error exit status 255
Причина:
В пакете cprocsp-rdr-jacarta-64 версии 3.6.408.695 (и более ранних версий) присутствует некорректный скрипт удаления.
Решение:
-
Необходимо выполнить команду:
sudo rm /var/lib/dpkg/info/cprocsp-rdr-jacarta-64.*
-
Далее можно выполнять удаление КриптоПро CSP стандартным способом
Для предотвращения такого поведения рекомендуем использовать модуль поддержки JaCarta под Linux (cprocsp-rdr-jacarta-64) версии 3.6.408.720 или выше. Модуль поддержки доступен в составе архива дистрибутива КриптоПро CSP 4.0 R5. Также данный модуль можно запросить, создав обращение в техническую поддержку «Аладдин Р.Д.», ссылаясь на данную статью. Форма для обращения находится по адресу: https://www.aladdin-rd.ru/support/tickets/create.
- Печать
Страницы: [1] Вниз
Тема: Удаление и переустановка CryptoPRO (Прочитано 5057 раз)
0 Пользователей и 1 Гость просматривают эту тему.

juss1962
Установлена Linux Mint 19 Tara.
Кто-то пытался установить CryptoPRO. Мне вроде было не нужно, но вот потребовалось для работы с JaCarta.
Хотел удалить и переустановить CryptoPro.
Скачал с сайта пакет 4 версии, запускаю uninstall и получаю вот это:
Помогите вычистить систему и установить эту КриптуПро, чтобы работала.

F12
« Последнее редактирование: 29 Апреля 2019, 19:03:14 от F12 »

AnrDaemon
Это даже не немного.
У CryproPro собственный форум есть.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

juss1962
Всем спасибо за помощь! Поехал на другой форум!
- Печать
Страницы: [1] Вверх
Назначение
Криптопровайдер (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
При работе с Astra Linux в качестве СКЗИ разрешается использовать только следующие версии КриптоПро CSP:
- КриптоПро CSP версии 4.0 R4;
- КриптоПро CSP версии 5.0;
Указанные СКЗИ должны использоваться в исполнениях 1-Base или 2-Base.
СКЗИ КриптоПро CSP в исполнении 2-Base должно использоваться с аппаратно-программным модулем доверенной загрузки (АПМДЗ).
При эксплуатации СКЗИ необходимо соблюдать требования и рекомендации эксплуатационной документации на СКЗИ, в частности требования по защите от несанкционированного доступа и по криптографической защите, а также требования по поддерживаемым СКЗИ аппаратно-программным платформам. В частности, при использовании СЭП со встроенным СКЗИ необходимо проведение проверки программного обеспечения BIOS ЭВМ, на которых предполагается функционирование СКЗИ и СЭП, на соответствие методическим документам ФСБ России в области исследований программного обеспечения BIOS.
Контроль целостности СКЗИ и СЭП должен выполняться с использованием механизма замкнутой программной среды ОС или с использованием стандартных средств контроля целостности КриптоПро CSP.
Установка КриптоПро CSP
Архив с программным обеспечением (КриптоПро CSP) можно загрузить c официального сайта www.cryptopro.ru, предварительно зарегистрировавшись на сайте.
Для ОС Astra Linux следует загрузить пакет КриптоПро CSP 4 и выше версии — пакет для 64 разрядной системы.
Пробный период использования КриптоПро CSP составляет 3 месяца, по истечении которых необходимо приобрести полноценную лицензию.
Для написания настоящей статьи была использована сертифицированная версия ПО «КриптоПро» «4.0 R4». При этом были выполнены следующие действия:
- Загрузить архив с сертифицированной версией ПО «КриптоПро». Название полученного файла: «linux-amd64_deb.tgz»;
- Открыть «Терминал Fly» (горячая клавиша Alt+T);
-
Разархивировать полученный архив в терминале командой:
tar -zxf linux-amd64_deb.tgz
-
Перейти в каталог с ПО:
cd linux-amd64_deb
-
Установить ПО с помощью запуска сценария «install.sh» или «instal_gui.sh» командой:
sudo ./install_gui.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 ввести команду:
dpkg -l | grep cprocsp
Настройка путей к исполняемым файлам
Для того, чтобы не вводить каждый раз полный путь к утилитам КриптоПро CSP, в терминале FLY следует ввести команду:
export PATH=»$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr ‘n’ ‘:’)$PATH»
Установка дополнительных пакетов с модулем поддержки для токена
Начиная с версии КриптоПро 4.0 R4 и выше, модули поддержки смарт-карт входят в состав пакета и отдельная их установка не требуется.
Для более ранних версий:
Нажмите здесь для раскрытия…
Для корректной работы с токеном/смарт-картой обязательно требуется установить дополнительные пакеты libccid, libgost-astra , пакеты pcscd. Команда для установки:
sudo apt install libccid pcscd libgost-astra
Пакеты с модулем поддержки:
- Для Рутокен: https://www.rutoken.ru/support/download/nix/
- Для Алладин: https://www.aladdin-rd.ru/support/downloads/jacarta
После установки пакетов с модулем поддержки токена следует перезагрузить службу pcscd:
sudo service pcscd restart
Ключ КриптоПРО CSP для работы в режиме замкнутой программной среды Astra Linux SE.
Ключ для обеспечения работы в режиме замкнутой программной среды Astra Linux SE доступен по ссылке: https://cryptopro.ru/sites/default/files/private/csp/cryptopro_pub_key.gpg. Для загрузки ключа требуется регистрация.
Для регистрации ключа:
-
Установить пакет astra-digsig-oldkeys:
sudo apt install astra-digsig-oldkeys
-
Создать каталог /etc/digsig/keys/legacy/cryptopro:
sudo mkdir -p /etc/digsig/keys/legacy/cryptopro
Далее предполагается, что ключ загружен и помещен в созданный каталог.
-
Выполнить команду:
sudo update-initramfs -uk all
- Перезагрузить компьютер.
Проверка срока истечения лицензии
Проверить срок истечения лицензии можно командой:
/opt/cprocsp/sbin/amd64/cpconfig -license -view
Установка лицензии
Для установки лицензии выполнить команду :
sudo /opt/cprocsp/sbin/amd64/cpconfig -license -set <номер_лицензии>
Носители и контейнеры
Идентификация токена
Для просмотра списка настроенных считывателей можно воспользоваться командой:
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view
Чтобы узнать модель подключенного токена, следует ввести команду:
/opt/cprocsp/bin/amd64/csptest -card -enum -v -v
После чего система выдаст информацию о подключенном устройстве:
Проверить наличие носителей с контейнерами можно с помощью команды:
/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum -unique
в формате FQCN, отображается имя носителя:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251
В этом случае будет выведен список носителей с контейнерами в следующем формате:
Где \.HDIMAGE — локальный носитель, \.HDIMAGETestCont123 — название контейнера, \.Aktiv Rutoken ECP 00 00 — название носителя (токена).
Подробная информация про «Имена контейнеров»
Информация о контейнерах
Для просмотра подробной информации о контейнерах воспользуйтесь командой:
/opt/cprocsp/bin/amd64/csptestf -keyset -container ‘ИМЯ’ -info
Пример работы команды:
Нажмите здесь для раскрытия…
/opt/cprocsp/bin/amd64/csptestf -keyset -container ‘Shuhrat’ -info
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11233 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 8981043
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP
Container name: «Shuhrat»
Signature key is available. HCRYPTKEY: 0x8f3b03
Exchange key is available. HCRYPTKEY: 0x8f9883
Symmetric key is not available.
UEC key is not available.
CSP algorithms info:
Type:Encrypt Name:’GOST 28147-89′(14) Long:’GOST 28147-89′(14)
DefaultLen:256 MinLen:256 MaxLen:256 Prot:0 Algid:00026142
Type:Hash Name:’GR 34.11-2012 256′(18) Long:’GOST R 34.11-2012 256′(22)
DefaultLen:256 MinLen:256 MaxLen:256 Prot:0 Algid:00032801
Type:Signature Name:’GR 34.10-2012 256′(18) Long:’GOST R 34.10-2012 256′(22)
DefaultLen:512 MinLen:512 MaxLen:512 Prot:0 Algid:00011849
Type:Exchange Name:’DH 34.10-2012 256′(18) Long:’GOST R 34.10-2012 256 DH'(25)
DefaultLen:512 MinLen:512 MaxLen:512 Prot:0 Algid:00043590
Type:Exchange Name:’DH 34.10-2012 256′(18) Long:’GOST R 34.10-2012 256 DH'(25)
DefaultLen:512 MinLen:512 MaxLen:512 Prot:0 Algid:00043591
Type:Hash Name:’GOST 28147-89 MAC'(18) Long:’GOST 28147-89 MAC'(18)
DefaultLen:32 MinLen:8 MaxLen:32 Prot:0 Algid:00032799
Type:Encrypt Name:’GR 34.12 64 M'(14) Long:’GOST R 34.12-2015 64 Magma'(27)
DefaultLen:256 MinLen:256 MaxLen:256 Prot:0 Algid:00026160
Type:Encrypt Name:’GR 34.12 128 K'(15) Long:’GOST R 34.12-2015 128 Kuznyechik'(33)
DefaultLen:256 MinLen:256 MaxLen:256 Prot:0 Algid:00026161
Type:Hash Name:’GR 34.13 64 M MAC'(18) Long:’GOST R 34.13-2015 64 Magma MAC'(31)
DefaultLen:64 MinLen:8 MaxLen:64 Prot:0 Algid:00032828
Type:Hash Name:’GR 34.13 128 K MAC'(19) Long:’GOST R 34.13-2015 128 Kuznyechik MAC'(37)
DefaultLen:128 MinLen:8 MaxLen:128 Prot:0 Algid:00032829
Type:Hash Name:’GR34.11-12 256 HMAC'(20) Long:’GOST R 34.11-2012 256 HMAC'(27)
DefaultLen:256 MinLen:256 MaxLen:256 Prot:0 Algid:00032820
Status:
Provider handles used: 6
Provider handles max: 1048576
CPU Usage: 6 %
CPU Usage by CSP: 0 %
Measurement interval: 119 ms
Virtual memory used: 15281652 KB
Virtual memory used by CSP: 116572 KB
Free virtual memory: 26053680 KB
Total virtual memory: 41335332 KB
Physical memory used: 14602360 KB
Physical memory used by CSP: 12576 KB
Free physical memory: 5857712 KB
Total physical memory: 20460072 KB
Key pair info:
HCRYPTKEY: 0x8f3b03
AlgID: CALG_GR3410_12_256 = 0x00002e49 (00011849):
AlgClass: ALG_CLASS_SIGNATURE
AlgType: ALG_TYPE_GR3410
AlgSID: 73
KP_HASHOID:
1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
KP_DHOID:
1.2.643.2.2.35.1 (ГОСТ Р 34.10 256 бит, параметры по умолчанию)
KP_SIGNATUREOID:
1.2.643.2.2.35.1 (ГОСТ Р 34.10 256 бит, параметры по умолчанию)
Permissions:
CRYPT_READ
CRYPT_WRITE
CRYPT_IMPORT_KEY
0x800
0x2000
0x20000
0x100000
KP_CERTIFICATE:
Not set.
Key pair info:
HCRYPTKEY: 0x8f9883
AlgID: CALG_DH_GR3410_12_256_SF = 0x0000aa46 (00043590):
AlgClass: ALG_CLASS_KEY_EXCHANGE
AlgType: ALG_TYPE_DH
AlgSID: 70
KP_HASHOID:
1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
KP_DHOID:
1.2.643.2.2.36.0 (ГОСТ Р 34.10 256 бит, параметры обмена по умолчанию)
KP_SIGNATUREOID:
1.2.643.2.2.36.0 (ГОСТ Р 34.10 256 бит, параметры обмена по умолчанию)
Permissions:
CRYPT_READ
CRYPT_WRITE
CRYPT_IMPORT_KEY
0x800
0x10000
0x20000
0x100000
KP_CERTIFICATE:
Subject: INN=007814508921, E=user@astralinux.ru, C=RU, CN=Махмадиев Шухрат, SN=Махмадиев
Valid : 18.10.2018 12:07:24 — 18.01.2019 12:17:24 (UTC)
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Container version: 2
Carrier flags:
This reader is removable.
This reader supports unique carrier names.
This carrier does not have embedded cryptography.
Keys in container:
signature key
exchange key
Extensions (maxLength: 1435):
ParamLen: 46
OID: 1.2.643.2.2.37.3.9
Critical: FALSE
Size: 19
Decoded size: 24
PrivKey: Not specified — 18.01.2020 07:31:07 (UTC)
ParamLen: 47
OID: 1.2.643.2.2.37.3.10
Critical: FALSE
Size: 19
Decoded size: 24
PrivKey: Not specified — 18.01.2020 07:31:12 (UTC)
Total: SYS: 0,020 sec USR: 0,180 sec UTC: 2,180 sec
[ErrorCode: 0x00000000]
При наличии кириллических символов в имени ключевого контейнера для дальнейшей работы с таким контейнером необходимо использовать его уникальный идентификатор. Чтобы получить уникальные идентификаторы ключевых контейнеров используйте команду:
/opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc -fqcn -un
Особенности применения PIN-кодов в контейнерах:
- если аутентификацию осуществляет само устройство (как, например, токен), то PIN при создании контейнера не создается, а предъявляется, так как он — свойство устройства. Как следствие: у всех контейнеров на токене одинаковый PIN;
- если устройство аутентификацию не осуществляет (как HDIMAGE), то при создании контейнера создается и PIN-код. Следствие: у всех контейнеров, PIN-код на HDIAMGE может быть разным.
Проверка работы контейнера
Для того чтобы проверить работу контейнера (в том числе возможность выполнения разных операций при текущей лицензии), следует выполнить команду:
/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]
Удаление контейнера
Для удаления контейнера следует воспользоваться командой:
/opt/cprocsp/bin/amd64/csptestf -passwd -cont ‘\.Aktiv Rutoken ECP 00 00TestCont’ -deletek
Копирование контейнера
Для примера скопируем контейнер из локального хранилища в хранилище Рутокена ЕЦП:
csptestf -keycopy -contsrc ‘\.HDIMAGEКонтейнер_оригинал’ -contdest ‘\.Aktiv Rutoken ECP 00 00Контейнер_копия’
Смена пароля на контейнер (снятие паролей с контейнера)
/opt/cprocsp/bin/amd64/csptestf -passwd -cont ‘\.Aktiv Rutoken ECP 00 00TestContainer’ -change <новый_пароль> -passwd <старый_пароль>
В случае, если контейнеру с ключом не был задан PIN, следует воспользоваться командой:
/opt/cprocsp/bin/amd64/csptestf -passwd -cont ‘\.Aktiv Rutoken ECP 00 00TestContainer’ -change <новый_пароль>
Менеджер сертификатов КриптоПро в Linux
Категории сертификатов
Сертификаты делятся на четыре категории:
- личные сертификаты (устанавливаются в хранилище umy, где u = User, my — имя хранилища). Для таких сертификатов, как правило, имеется закрытый ключ (и они требуют особой установки, чтобы в хранилище появилась ссылка на этот закрытый ключ). В результате с их использованием можно, например, подписать файл;
- корневые сертификаты — краеугольный камень безопасности, так как цепочки доверия строятся от них. Корневые сертификаты надо добавлять в хранилища осознанно и внимательно (устанавливаются в uroot, также администратор может поставить их в mroot, где m = Machine, такие сертификаты будут доступны в режиме read only в root-хранилищах всех пользователей);
- промежуточные сертификаты — появляются, когда есть промежуточные УЦ (структура вида «головной УЦ» -> «промежуточный УЦ» -> «пользовательский сертификат»). Прямое доверие к ним не требуется (устанавливаются в uca, также администратор может поставить их в mca). В это же хранилище устанавливаются и списки отзыва сертификатов (CRL). Обычно точки получения промежуточных сертификатов и списков отзыва (CRL) правильно указаны в пользовательских сертификатах, поэтому они загружаются автоматически и устанавливаются в хранилище ucache. В общем про них можно ничего особо не знать и ничего не делать.
- сертификаты партнёров по общению, чтобы проверять их подписи и зашифровывать для них сообщения. Ставятся либо в umy (это не лучшая, но распространенная практика), либо в uAddressBook;
Пример установки личного сертификата, выданного УЦ Министерства Обороны Российской Федерации:
Установка всех личных сертификатов со всех контейнеров в uMy :
/opt/cprocsp/bin/amd64/csptestf -absorb -certs -autoprov
Установка определенного сертификата с определенного контейнера в uMy:
/opt/cprocsp/bin/amd64/certmgr -inst -cont ‘\.Aktiv Rutoken ECP 00 00Ivanov’
Установка сертификата удостоверяющего центра ГУЦ в mRoot:
Установка списка отозванных сертификатов (CRL) (список загружается с того же сайта и устанавливается в mca):
Примечание
В опции -pattern >>> ‘rutoken’ может быть другим в зависимости от подключенного токена.
- Перенести файлы на рабочую станцию;
-
Установить файлы на рабочей станции:
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file ca2020.cer
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -file crl_20.crl -crl
Примечание
- Имена хранилищ указаны в формате, используемом программой certmgr. У программы cryptcp похожий формат: -mroot и -uAddressBook.
- Из под учетной записи пользователя установка выполняется в хранилище uca, из под учетной записи администратора установка выполняется в хранилище mca:
-
В опции -pattern можно указать пустое значение < ‘ ‘ > чтобы установить все сертификаты в uMy. Пример:
/opt/cprocsp/bin/amd64/csptestf -absorb -cert -pattern »
-
В случае, если личный сертификат устанавливается из файла следует использовать опцию -file :
certmgr -inst -file cert.cer -store uMy
-
Хранилища пользователей хранятся в /var/opt/cprocsp/users
Просмотр
Для просмотра ранее установленных сертификатов можно воспользоваться :
/opt/cprocsp/bin/amd64/certmgr -list
Удаление
Удаление сертификата из хранилища КриптоПро:
/opt/cprocsp/bin/amd64/certmgr -delete
После выполнения команды на экран будет выведен весь список сертификатов и предложение ввести номер удаляемого сертификата.
Или удаление всех сертификатов:
/opt/cprocsp/bin/amd64/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 ‘\.HDIMAGEcontainer.name’
Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Can not install certificate Public keys in certificate and container are not identical
Проверка цепочки сертификатов
Для примера: чтобы проверить цепочку сертификатов, можно скопировать персональный сертификат в файл:
/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=Министерство обороны Российской Федерации:
/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-ом
Подпись файлов (присоединенная)
/opt/cprocsp/bin/amd64/cryptcp -sign -dn ‘CN=Название_нужного_сертификата’ -der zayavlenie.pdf
CryptCP 5.0 (c) «КРИПТО-ПРО», 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект: «АКЦИОНЕРНОЕ ОБЩЕСТВО «»НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»»», Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочки сертификатов проверены.
Папка ‘./’: raport.pdf…
Подпись данных…
Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]
Подпись файлов (отсоединенная)
/opt/cprocsp/bin/amd64/cryptcp -sign -detach -dn ‘CN=Название_нужного_сертификата’ -pin 12345678 raport.pdf raport.pdf.sig
CryptCP 5.0 (c) «КРИПТО-ПРО», 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат: Субъект:»АКЦИОНЕРНОЕ ОБЩЕСТВО «»НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»»», Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочки сертификатов проверены.
Папка ‘./’: raport.pdf… Подпись данных…
Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]
Проверка подписи в файле
Проверка прикрепленной подписи
Для проверки прикрепленной подписи выполните:
/opt/cprocsp/bin/amd64/cryptcp -verify raport.pdf.sig
CryptCP 5.0 (c) «КРИПТО-ПРО», 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Найдено сертификатов: 4
Цепочки сертификатов проверены.
Папка ‘./’:
raport.pdf.sig … Проверка подписи…
Автор подписи: «АКЦИОНЕРНОЕ ОБЩЕСТВО «»НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»»», Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Подпись проверена.
[ErrorCode: 0x00000000]
Способ «естественный»
Использовать ключ -verall, указывающий, что надо найти всех подписавших, в том числе в сообщении:
/opt/cprocsp/bin/amd64/cryptcp -verify -verall -detached /home/shuhrat/smolensk/raport.pdf raport.pdf.sig
CryptCP 5.0 (c) «КРИПТО-ПРО», 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Папка ‘/home/shuhrat/smolensk/’: /home/shuhrat/smolensk/raport.pdf… Проверка подписи…
Автор подписи: «АКЦИОНЕРНОЕ ОБЩЕСТВО «»НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»»», Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочки сертификатов проверены.
Папка ‘./’: raport.pdf… Проверка подписи…
Подпись проверена.
[ErrorCode: 0x00000000]
Способ «обучающий»
Указать в качестве хранилища сертификатов само сообщение (ключ -f):
/opt/cprocsp/bin/amd64/cryptcp -verify -f raport.pdf.sig -detached raport.pdf raport.pdf.sig
CryptCP 5.0 (c) «КРИПТО-ПРО», 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:»АКЦИОНЕРНОЕ ОБЩЕСТВО «»НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»»», Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочки сертификатов проверены.
Папка ‘./’: raport.pdf…
Проверка подписи..
Автор подписи: «АКЦИОНЕРНОЕ ОБЩЕСТВО «»НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»»», Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Подпись проверена.
[ErrorCode: 0x00000000]
Извлечение подписанного файла
Чтобы извлечь файл, необходимо указать его имя в конце команды проверки подписи:
cryptcp -verify raport.pdf.sig raport.pdf
В версии КриптоПро 5 появился графический инструмент для работы с сертификатами — cptools. Инструмент можно запустить из консоли:
cptools
либо
/opt/cprocsp/bin/amd64/cptools
Удаление КриптоПро CSP
Для того, чтобы удалить ПО КриптоПро CSP, в терминале FLY следует ввести последовательно 3 команды:
sudo rm -rf /opt/cprocsp
sudo rm -rf /var/opt/cprocsp/
sudo rm -rf /etc/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
На данный момент завершается сертификация обновленной версии КриптоПро CSP 4.0 R4. Для наиболее безболезненного продолжения работы с ГОСТ Р 34.10-2001 в 2019 году мы рекомендуем обновиться до этой версии. В более ранних версиях КриптоПро CSP и Клиент HSM 2.0 присутствуют технические ограничения формирования подписи по ГОСТ Р 34.10-2001 после 1 января 2019 года, о чем выдаются предупреждения в виде соответствующих окон.
Полезные ссылки
КриптоПро 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+КриптоПРО
https://www.cryptopro.ru/news/2018/12/zashchishchennyi-brauzer-dlya-gosudarstvennykh-elektronnykh-ploshchadok-teper-i-na-linu
https://astralinux.ru/news/category-news/2018/brauzeryi-%C2%ABastra-linux-special-edition%C2%BB-adaptirovanyi-dlya-rabotyi/
Список ГИС и ЭТП использующих cades-bes plugin
ЭЦП в государственных информационных системах и электронно торговых площадках
Перечень аккредитованных удостоверяющих центров
https://e-trust.gosuslugi.ru/CA/
Диагностический архив для обращения в тех. поддержку
По всем вопросам установки СКЗИ в операционную систему, их настройки и обеспечения доступа к электронным ресурсам в сети Интернет можно обращаться в техническую поддержку Astra Linux и КриптоПро.
Для создания диагностического архива, можно воспользоваться следующей командой:
sudo /opt/cprocsp/bin/amd64/curl http://cryptopro.ru/sites/default/files/products/csp/cprodiag 2>/dev/null|sudo perl
В результате должен получится архив в файле cprodiag_день_месяц_год.tar.gz, который следует прислать в техническую поддержку Astra Linux и КриптоПро.
Содержание
- Работа с СКЗИ и аппаратными ключевыми носителями в Linux
- Причина 1
- Причина 2
- Причина 3
- Причина 4
- Руководство по настройке
- Установка драйверов и ПО для работы с JaCarta PKI
- Установка пакетов КриптоПро CSP
- Настройка и диагностика КриптоПро CSP
- Работа с токеном JaCarta PKI
- Программное извлечение ключей
- Результаты
- Как я настраивал новые утилиты по работе с электронной подписью в Linux
- Настройка «КриптоПро» CSP
- Настройка работы с Рутокен ЭЦП 2.0
- Получаем тестовый сертификат
- Подпись средствами «КриптоПро CSP»
- Rosa Crypto Tool
- Trusted eSign
- Резюме
Работа с СКЗИ и аппаратными ключевыми носителями в Linux
Хранение ключей на токенах и смарт-картах обеспечивает дополнительную защиту от внешних и внутренних нарушителей, в том числе имеющих определенный уровень доступа к информационной системе и оборудованию.
Сегодня я расскажу, как мы защищаем ключи шифрования и электронной подписи в наших информационных системах, и сделаю это в подробном, хорошо проиллюстрированном руководстве по настройке SUSE Linux Enterprise Server 12 SP3 для работы с токеном Aladdin JaCarta PKI и КриптоПро CSP KC2 4.0.9944.
Опубликовать данное руководство побудило несколько причин:
Причина 1
Причина 2
Лучшая инструкция по настройке взаимодействия с аппаратными носителями в Linux, которую удалось найти, была также от wiki.astralinux.ru — Работа с КриптоПро CSP
Причина 3
UPD 16.04.2019: В процессе настройки среды и оборудования выяснилось, что носитель, первым оказавшийся в распоряжении, был вовсе не JaCarta PKI Nano, как ожидалось, а устройство работающее в режиме SafeNet Authentication Client eToken PRO.
UPD 16.04.2019: Некогда Банку требовалось устройство, которое могло бы работать в той же инфраструктуре, что и eToken PRO (Java). В качестве такого устройства компания “ЗАО Аладдин Р.Д.” предложила токен JaCarta PRO, который был выбран банком. Однако на этапе формирования артикула и отгрузочных документов сотрудником компании была допущена ошибка. Вместо модели JaCarta PRO в артикул и отгрузочные документы случайно вписали JaCarta PKI.
UPD 16.04.2019: Благодарю компанию Аладдин Р.Д., за то что помогли разобраться и установить истину.
В этой ошибке нет никаких политических и скрытых смыслов, а только техническая ошибка сотрудника при подготовке документов. Токен JaCarta PRO является продуктом компании ЗАО “Аладдин Р.Д.”. Апплет, выполняющий функциональную часть, разработан компанией “ЗАО Аладдин Р.Д”.
Этот eToken PRO относился к партии, выпущенной до 1 декабря 2017 года.
После этой даты компания «Аладдин Р.Д.» прекратила продажу устройств eToken PRO (Java).
Забегая немного вперед, нужно сказать, что работа с ним настраивалась через соответствующие драйверы — SafenetAuthenticationClient-10.0.32-0.x86_64, которые можно получить только в поддержке Аладдин Р.Д. по отдельной online заявке.
В КриптоПро CSP для работы с этим токеном требовалось установить пакет cprocsp-rdr-emv-64 | EMV/Gemalto support module.
Данный токен определялся и откликался. При помощи утилиты SACTools из пакета SafenetAuthenticationClient можно было выполнить его инициализацию. Но при работе с СКЗИ он вел себя крайне странно и непредсказуемо.
Проявлялось это следующим образом, на команду:
Выдавался ответ, что все хорошо:
Но сразу после попытки зачитать ключи программно эта же проверка начинала выдавать ошибку:
Согласно перечню кодов ошибок объектной модели компонентов Microsoft COM Error Codes (Security and Setup)
«Невалидный набор ключей» — причина такого сообщения, возможно, кроется либо в старом чипе, прошивке и апплете Gemalto, либо в их драйверах для ОС, которые не поддерживают новые стандарты формирования ЭП и функции хэширования ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012.
В таком состоянии токен блокировался. СКЗИ начинало показывать неактуальное состояние считывателя и ключевого контейнера. Перезапуск службы криптографического провайдера cprocsp, службы работы с токенами и смарт-картами pcscd и всей операционной системы не помогали, только повторная инициализация.
Справедливости ради требуется отметить, что SafeNet eToken PRO корректно работал с ключами ГОСТ Р 34.10-2001 в ОС Windows 7 и 10.
Проблему удалось решить, взяв настоящий токен JaCarta PKI в (XL) обычном корпусе.
Но на попытки заставить работать Safenet eToken PRO времени было потрачено немало. Хотелось обратить на это внимание и, возможно, кого-то оградить от подобного.
Причина 4
Иногда самому требуется вернуться к старым статьям и инструкциям. Это удобно, когда информация размещена во внешнем источнике. Так что спасибо Хабру за предоставленную возможность.
Руководство по настройке
После установки токена JaCarta PKI в USB порт сервера и запуска системы проверяем, что новое устройство обнаружено и появилось в списке:
В нашем случае это Bus 004 Device 003: ID 24dc:0101
Пока не установлены все необходимые пакеты, информация о токене не отобразится.
Установка драйверов и ПО для работы с JaCarta PKI
Согласно Руководству по внедрению «JaCarta для Linux» пункт 4.2., первым делом требуется установить пакеты pcsc-lite, ccid и libusb.
Для работы утилиты управления JaCarta необходимо установить следующие компоненты:
Выполняем проверку наличия этих пакетов и установку:
zypper search pcsc-lite
zypper search libusb
zypper install pcsc-lite
zypper search CCID
zypper install pcsc-ccid
zypper search CCID
zypper install libusb
В итоге пакет pcsc-lite был обновлен, CCID установлен, libusb никаких действия не требовалось.
Следующими двумя командами выполняем установку пакета с драйверами и программным обеспечением непосредственно для работы с JaCarta PKI:
zypper install idprotectclientlib-637.03-0.x86_64.rpm
zypper install idprotectclient-637.03-0.x86_64.rpm
Проверяем, что драйверы и ПО для JaCarta PKI установились:
zypper search idprotectclient
При попытках заставить работать SafeNet eToken PRO я нашел информацию, что предустановленный в SLES пакет openct — Library for Smart Card Readers может конфликтовать с pcsc-lite — PCSC Smart Cards Library, установку которого требует руководство Аладдин Р.Д.
zypper search openct
Поэтому пакет openct удаляем:
Теперь все необходимые драйверы и ПО для работы с токеном установлены.
Выполняем диагностику с помощью утилиты pcsc-tools и убеждаемся, что JaCarta определяется в операционной системе:
Установка пакетов КриптоПро CSP
При установке КриптоПро CSP по умолчанию нужные пакеты для работы с токенами и смарт-картами отсутствуют.
zypper search cprocsp
Выполняем установку в CSP компонента поддержки JaCarta components for CryptoPro CSP
zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm
Некоторые компоненты имеют зависимости. Так, например, если попытаться выполнить установку пакета поддержки SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm — EMV/Gemalto support module, то получим сообщение о необходимости сначала установить базовый компонент CSP поддержки считывателей cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm — PC/SC components for CryptoPro CSP readers:
Устанавливаем базовые пакеты поддержки считывателей и ключевых носителей:
zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm
zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm
Теперь можно установить модули для работы с остальными видами носителей и компонент GUI:
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm
Проверяем итоговую конфигурацию КриптоПро CSP:
S | Name | Summary | Type
—+——————————+—————————————————-+———
i+ | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | package
i+ | cprocsp-rdr-emv-64 | EMV/Gemalto support module | package
i+ | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | package
i+ | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | package
i+ | cprocsp-rdr-mskey-64 | Mskey support module | package
i+ | cprocsp-rdr-novacard-64 | Novacard support module | package
i+ | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| package
i+ | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | package
i+ | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | package
i+ | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | package
i+ | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | package
i+ | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | package
i+ | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package
Чтобы применить изменения, выполняем перезапуск службы криптографического провайдера и проверяем ее статус:
Настройка и диагностика КриптоПро CSP
Проверим, видит ли криптографический провайдер наш токен и другие доступные типы носителей следующими командами:
Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 — это наш носитель.
Следуя инструкции КриптоПро CSP для Linux. Настройка, выполняем его регистрацию в криптографическом провайдере:
В результате выполнения в конфигурационный файл /etc/opt/cprocsp/config64.ini
в раздел криптопро не видит jakarta linux будет добавлена запись:
криптопро не видит jakarta linux (000000000000) 00 00″Default]
Чтобы выполнить требования Формуляра, Правил пользования и Руководства администратора безопасности КриптоПро CSP:
Использование СКЗИ «КриптоПро CSP» версии 4.0 с выключенным режимом усиленного контроля использования ключей не допускается. Включение данного режима описано в документах ЖТЯИ.00087-01 91 02. Руководство администратора безопасности.
Необходимо включить режим усиленного контроля использования ключей:
Проверяем, что режим включен:
cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl
Выполняем перезапуск службы криптографического провайдера:
После перезапуска проверяем, что ошибок в работе провайдера с ключевыми носителями нет:
Работа с токеном JaCarta PKI
Запустим программу Xming (X11 forwarding) на своей станции, чтобы по SSH иметь возможность открывать и работать с графическими интерфейсами нужных утилит.
После установки IDProtectClient — программного обеспечения для работы с JaCarta PKI, на сервере в папке /usr/share/applications появились два файла:
Это ярлыки, в которых можно посмотреть параметры запуска утилит Exec=/usr/bin/SACTools
Запустим утилиту IDProtectPINTool.
С помощью нее задаются и меняются PIN-коды доступа к токену.
При первой инициализации токена будет полезна ссылка, содержащая PIN-коды (пароли) ключевых носителей по умолчанию
Программа IDProtect_Manager позволяет просматривать информацию о токене и контейнере с ключами и сертификатом:
Для доступа к контейнеру с ключами нужно ввести пароль:
Для работы с SafeNet Authentication Client eToken PRO существуют аналогичные программы — SafeNet Authentication Client Monitor и SafeNet Authentication Client Tools, которые запускаются так:
Выполнять операции непосредственно с ключевыми контейнерами удобнее в интерфейсе криптографического провайдера КриптоПро JavaCSP:
Для отображения информации о содержимом контейнера с ключами можно выполнить команду:
Для диагностики контейнера используется эта же команда с ключом –check
Потребуется ввести пароль от контейнера:
Программное извлечение ключей
В общем виде пример извлечения закрытого ключа и сертификата открытого ключа из контейнера на токене с помощью КриптоПро Java CSP следующий:
Если действовать так:
то криптографический провайдер будет пытаться в системе отобразить через консоль или GUI окно запрос на ввод пароля к контейнеру.
Результаты
Отторгаемый ключевой носитель-токен установлен во внутренний USB-порт сервера.
Само серверное оборудование опломбировано и размещается в помещении с ограниченным доступом.
Такие меры позволяют повысить уровень защиты наших информационных систем от кражи и компрометации ключей электронной подписи или шифрования, как удаленно по сети, так и физически.
Источник
Как я настраивал новые утилиты по работе с электронной подписью в Linux
Поговорим немного про средства электронной подписи (ЭП) с использованием отечественных ГОСТ-алгоритмов в Linux. Несмотря на то, что различные средства и интерфейсы по работе с ЭП в Linux развиты даже лучше, чем в Windows, использовать их не так просто.
Такое положение вещей сохранялось последние несколько лет. Но с конца 2016 года ситуация изменилась в лучшую сторону. Появилось сразу два продукта, которые позволяют работать с электронной подписью по стандарту ГОСТ и шифрованием без использования консоли – это Rosa Crypto Tool и Trusted eSign. Оба эти продукта для работы с криптографией используют «КриптоПро CSP» для Linux. Поэтому, перед тем как обратиться к описанию самих продуктов, поговорим немного про «КриптоПро CSP».
«КриптоПро CSP» под Linux — неоднозначный продукт. С одной стороны, это одно из самых распространенных и мощных сертифицированных средств по работе с криптографией как в Windows, так и в Linux. С другой стороны, для простого человека пользоватся его интерфейсами даже в Windows не так-то просто. А в Linux доступен только консольный интерфейс. Надеюсь, что компания «КриптоПро» в курсе этой ситуации, и в будущем нас ждут новые красивые и удобные интерфейсы, как для Windows, так и для Linux.
Для настройки нам понадобится:
Настройка «КриптоПро» CSP
Несмотря на то, что есть несколько неплохих статей по настройке «КриптоПро CSP» под Linux (например, тут или тут), я опишу здесь свой вариант. Основная причина в том, что большинство инструкций написаны для «Крипто Про CSP» версии 3.x. А современная версия «КриптоПро CSP» 4.0 не является 100% совместимой с 3.x. Дополнительная причина – всегда приятно иметь полную инструкцию по настройке в одном месте, а не переключаться с одного окна на другое.
Приступаем к настройке.
Скачиваем «КриптоПро CSP» для Linux с официального сайта КриптоПро — www.cryptopro.ru/downloads
Распаковываем «КриптоПро CSP» для Linux:
Далее у нас есть 2 варианта – автоматическая установка и установка вручную. Автоматическая установка запускается командой:
Здесь надо отдать должное разработчикам «КриптоПро» – автоматическая установка для большинства дистрибутивов отрабатывает успешно. Хотя бывают и нюансы. Например, если у вас не хватает некоторых пакетов, то установка будет успешно завершена, хотя некоторый функционал работать не будет.
Если что-то пошло не так, или вы по тем или иным причинам хотите использовать установку в ручном режиме, то вам необходимо выполнить:
Устанавливаем лицензию для «КриптоПро CSP» для Linux и проверяем, что все работает нормально:
Мы должны получить что-то вроде:
Настройка работы с Рутокен ЭЦП 2.0
Для работы с токенами в ОС Linux есть масса различных средств и драйверов. Для описания всех этих средств понадобится отдельная статья. Поэтому я не буду подробно описывать, как это работает, и почему нам нужны именно эти пакеты.
Устанавливаем пакеты для работы с Рутокен ЭЦП 2.0:
Нам также необходимо установить пакеты КриптоПро CSP для поддержки работы с токенами:
Получаем тестовый сертификат
Перед тем как перейти непосредственно к работе с подписью, надо сгенерировать ключевую пару и создать сертификат электронной подписи. Если у вас уже есть Рутокен с контейнером «КриптоПро», то эту часть можно смело пропустить.
Воспользуемся тестовым УЦ компании «КриптоПро» по адресу — https://www.cryptopro.ru/certsrv/
Создаем запрос на сертификат с параметрами по умолчанию.
Проверим, что сертификат получен успешно.
Чтобы убедиться, что «КриптоПро CSP» успешно увидел токен, выполним:
Мы должны получить что-то вроде:
Теперь проверяем, что сертификат на токене видится успешно:
Записываем в хранилище сертификатов КриптоПро информацию об этом сертификате:
Проверим, что сертификат успешно сохранился в хранилище:
На этом основная настройка завершена, и мы можем начинать подписывать или шифровать файлы с использованием различных средств. Переходим к тому, зачем задумывалась эта статья.
Подпись средствами «КриптоПро CSP»
В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка:
Здесь,
my — параметр, в котором надо указать часть Common Name сертификата для подписи;
detached — позволяет создать открепленную подпись;
alg GOST94_256 — задает алгоритм хэширования, который будет использоваться при создании подписи.
Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:
Такой интерфейс отлично подходит для подготовленного пользователя или для автоматизации операций в скриптах.
Поговорим теперь об утилитах, которые облегчают жизнь обычным пользователям при работе с подписью и шифрованием в Linux.
Rosa Crypto Tool
Как следует из названия, это утилита для работы с электронной подписью и шифрованием для дистрибутива ROSA Linux. В данный момент утилита доступна в репозиториях Rosa Linux и Alt Linux.
Эта утилита разрабатывается одним человеком – Михаилом Вознесенским. У нее простой, но удобный интерфейс. На данный момент утилита находится в активной разработке – с ноября 2016 года мне удалось протестировать три версии. Последняя версия, доступная на момент написание статьи — 0.2.2. Сейчас утилита поддерживает работу только с «КриптоПро CSP» для Linux, однако в ближайшее время будет добавлена поддержка других криптопровайдеров.
Что внутри? Утилита написана на Python с использованием PyQt4 для графического интерфейса.
Установить ее можно, использовав «Управление программами» в Rosa Linux.
Вставляем токен и запускаем утилиту.
Видим, что токен определился успешно и был найден наш сертификат.
Интерфейс программы настолько прост, что описывать и показывать в статье все его функции не имеет смысла. Попробуем только подписать файл.
Выбираем файл и жмем “Подписать файл”. Получаем вот такое предупреждение.
Нажимаем «OK» и получаем информацию о том, что файл был подписан успешно.
Основное достоинство этой утилиты в том, что она совершенно бесплатная, в отличии нашего следующего продукта.
По сравнению с использованием «КриптоПро CSP» из консоли:
+ На порядок проще использовать;
— Отсутствуют различные параметры подписи.
Исходный код программы доступен в публичном репозитории на ABF:
abf.io/uxteam/rosa-crypto-tool-devel
Система контроля версий, которую использует «НТЦ ИТ РОСА», интегрирована в сборочную среду и базируется на Git. Можно вполне использовать любой клиент git.
Надеюсь, разработчики других отечественных дистрибутивов Linux, таких как Astra Linux, GosLinux и другие добавят в свои дистрибутивы пакеты с rosa-crypto-tool.
Trusted eSign
Второй продукт, про который мы поговорим, это Trusted eSign от компании “Цифровые технологии”. Она известна на российском рынке ИБ как разработчик средства по работе с подписью и шифрованием для ОС Windows – «КриптоАРМ».
Главное, не путать этот продукт с Trusted.eSign – web-сервисом по работе с подписью этой же компании.
Найти продукт на сайтах компании “Цифровые технологии” непросто. Небольшое описание есть в магазине http://www.cryptoarm.ru/shop/trusted_esign, продукт также можно скачать в разделе «Центр загрузки» на сайте trusted.ru — https://trusted.ru/support/downloads/?product=133
К сожалению, продукт пока доступен только в виде deb пакета для 64-битных систем. С чем связано такое ограничение, непонятно. Будем надеяться, что в ближайшее время компания выпустит и rpm пакет, а также версии для 32-битных дистрибутивов Linux.
Скачиваем с официального сайта deb-пакет и устанавливаем командой:
Запускаем Trusted eSign.
Сразу видно, что разработка не обошлась без дизайнера. Никакого сарказма. Все действия делаются просто и логично, а внешний вид радует глаз. К сожалению, большинство средств и программ в области ИБ от российских разработчиков разработаны без привлечения UX-специалистов и дизайнеров и заставляют своих пользователей страдать и плакать кровавыми слезами. Создается впечатление, что другими средства информационной безопасности просто не могут быть. “Цифровые технологии” опровергают это. Плата за красоту и удобство – необходимость платить за лицензию.
Но вернемся к подписи.
Выбираем раздел “Электронная подпись”:
Выбираем «Сертификат для подписи»:
Выбираем файлы для подписи и жмем «Подписать»:
Что под капотом? Процитирую с сайта: “Приложение создано на современном движке Electron, для вызова криптографических операций применяется библиотека OpenSSL. Совместимо с СКЗИ “КриптоПро CSP 4.0” и поддерживает все криптографические алгоритмы, реализованные в нем.” Для тех, кто ещё не в курсе Electron — это фреймворк для создания десктопных приложений на платформе node.js.
Сравним Trusted eSign с Rosa crypto tool:
+ Более удобный и красивый интерфейс
— Платная лицензия
Резюме
Подведем итог. В конце 2016 – начале 2017 года наметился неплохой прогресс в средствах по работе с электронной подписью под Linux. Информационная безопасность начинает поворачиваться к пользователю лицом, и с каждым годом требуется все меньше действий для такого простого действия, как подписать или зашифровать файл с использованием отечественных алгоритмов.
Хочется дополнительно отметить такое развитие отечественных продуктов, учитывая современный тренд на замену Windows на Linux в государственных и муниципальных организациях. В рамках этого тренда становится актуальным использование средств криптографической защиты информации под Linux. Хорошие и удобные продукты российских разработчиков помогут государственным организациям и структурам нормально работать и выполнять требования по импортозамещению.
Такое развитие не может не радовать, особенно когда это происходит под Linux.
Источник
![]() |
Данная страница находится в разработке. Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной. |
О КриптоПро
КриптоПро — линейка криптографических утилит (вспомогательных программ), так называемых «криптопровайдеров». Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д. (см.сайт).
Совместимость
По информации разработчика, с ALT Linux совместимы следующие продукты КриптоПро:
- КриптоПро CSP
- КриптоПро JCP
- КриптоПро HSM
- КриптоПро TSP
- КриптоПро OCSP
- КриптоПро ЭЦП Browser plug-in
- КриптоПро SSF
- КриптоПро Stunnel
- Браузер КриптоПро Fox
Примечание: В репозитории доступен пакет firefox-gost, аналогичный КриптоПро Fox, с патчем от КриптоПро.
Установка КриптоПро CSP
Загрузка
Архив с программным обеспечением (КриптоПро CSP 4.0 R4 — сертифицированная версия, КриптоПро CSP 5.0 — несертифицированная) можно загрузить после предварительной регистрации:
linux-ia32.tgz (19,3 МБ, для i586) — для 32-разрядных систем (x86, rpm)
;linux-amd64.tgz (20,1 МБ, для x86_64) — для 64-разрядных систем (x64, rpm)
.
Внимание! По умолчанию при скачивании с сайта КриптоПро выдаётся лицензия на три месяца
Установка
1. Установите пакет cryptopro-preinstall:
-
# apt-get install cryptopro-preinstall
- Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).
Примечание: Пакет cryptopro-preinstall вытягивает зависимости libpangox-compat, opensc, pcsc-lite, pcsc-lite-rutokens, pcsc-lite-ccid, newt52.
2. Распакуйте архив, скачанный с официального сайта КриптоПро:
-
$ tar -xf linux-amd64.tgz
Таблица 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-cptools-gtk | Инструменты КриптоПро — кроссплатформенный графический интерфейс |
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 из репозитория) |
3. Установите пакеты КриптоПро:
- под правами пользователя root перейдите в папку с распакованным архивом:
-
# cd /home/user/linux-amd64/
-
- установите базовые пакеты:
-
# apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1-64* lsb-cprocsp-rdr-64*
-
Примечание: Для 32-битной версии вместо последнего пакета — lsb-cprocsp-rdr-4*
- установите пакеты для поддержки токенов (Рутокен S и Рутокен ЭЦП):
-
# apt-get install cprocsp-rdr-gui-gtk* cprocsp-rdr-rutoken* cprocsp-rdr-pcsc* lsb-cprocsp-pkcs11* pcsc-lite-rutokens pcsc-lite-ccid
-
Примечание: Если возникнут проблемы с отображением контейнеров на Рутокен S — удалите pcsc-lite-openct
- установите пакет для поддержки токенов (JaCarta):
-
# apt-get install cprocsp-rdr-jacarta*
-
Примечание: Для установки cprocsp-rdr-jacarta может понадобиться предварительно удалить openct.
- установите пакет для поддержки носителей с неизвлекаемыми ключами:
-
# apt-get install cprocsp-rdr-cryptoki*
-
Примечание: Для корректной работы носителей с неизвлекаемыми ключами через интерфейс PKCS#11 был добавлен cprocsp-rdr-cryptoki ( с версии CSP 5.0 R2 12000). Подробнее в базе знаний КриптоПро CSP.
- Для установки сертификатов Главного удостоверяющего центра:
-
# apt-get install lsb-cprocsp-ca-certs*
-
- Если есть потребность в установке графических Инструментов КриптоПро:
-
# apt-get install cprocsp-cptools*
-
Также можно выполнить установку КриптоПро, запустив ./install_gui.sh в распакованном каталоге и выбрав необходимые модули:
# /home/user/install_gui.sh
Примечания:
- Для КриптоПро CSP 3.6 R2 потребуется установить пакет cprocsp-compat-altlinux-1.0.0-1.noarch.rpm
- Для установки cprocsp-rdr-gui может понадобиться libXm.so.3 (libopenmotif3) и для вывода кириллицы fonts-bitmap-cyr_rfx-iso8859-5.
- Для установки cprocsp-rdr-gui-gtk потребуется предварительно установить libpangox-compat.
- В версии 4.0.0-alt5 пакета cryptopro-preinstall добавлены подпакеты:
- cryptopro-preinstall-base для установки с cprocsp-compat-altlinux, «предоставляющим» lsb (в случае нежелательности «лишних» зависимостей вроде libqt3), и
- cryptopro-preinstall-full для автоустановки зависимостей cprocsp-rdr-gui.
Обновление
Внимание! Пакеты КриптоПро после обновления утрачивают работоспособность, так что рекомендуется удалить все пакеты и установить их заново.
Для обновления КриптоПро необходимо:
- Запомнить текущую конфигурацию:
- набор установленных пакетов:
- настройки провайдера (для простоты можно сохранить /etc/opt/cprocsp/config[64].ini).
- набор установленных пакетов:
- Удалить штатными средствами ОС все пакеты КриптоПро:
-
# apt-get remove lsb-cprocsp-base
-
- Установить аналогичные новые пакеты КриптоПро.
- При необходимости внести изменения в настройки (можно просмотреть diff старого и нового /etc/opt/cprocsp/config[64].ini).
- Ключи и сертификаты сохраняются автоматически.
Прописывание путей к исполняемым файлам
Утилиты КриптоПро расположены в директориях /opt/cprocsp/sbin/<название_архитектуры> и /opt/cprocsp/bin/<название_архитектуры>.
Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:
- после установки пакета cryptopro-preinstall начните новый сеанс пользователя в консоли;
Примечание: Не работает для суперпользователя.
или
- выполните от имени пользователя, который будет запускать команды (будет действовать до закрытия терминала):
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr 'n' ':')$PATH"
Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr
Проверка лицензии
Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:):
$ cpconfig -license -view
License validity:
4040E-G0037-EK8R3-C6K4U-HCXQG
Expires: 2 month(s) 23 day(s)
License type: Server.
Примечание: Для версии КриптоПро CSP под Linux все лицензии считаются серверными, поэтому не смущайтесь строкой «License type: Server».
Для установки другой лицензии выполните (под root):
# cpconfig -license -set <серийный_номер>
Примечание: Серийный номер следует вводить с соблюдением регистра символов.
Проверка версии
Проверить версию КриптоПро можно командой:
$ csptest -keyset -verifycontext | sed -n 's/.* Ver:*([0-9.]+).*/1/p'
4.0.9963
Удаление КриптоПро
# apt-get remove lsb-cprocsp-base
Примечание: Если появляется
support_mutex_open("registry_lock") failed:: Permission denied
выполните после удаления
# rm -f /var/opt/cprocsp/tmp/.registry_lock
Настройка оборудования
Настройка устройств хранения (носителей) и считывания (считывателей) ключевой информации и датчиков случайных чисел.
Считыватели (readers) — устройства, предназначенные для чтения ключей. К считывателям относится считыватели дискет (FAT12), считыватели флеш-накопителей (FLASH), считыватели смарт-карт и токенов, считыватель образа дискеты на жестком диске (HDIMAGE) и др.
Ключевые носители (media) являются местом хранения электронной подписи. В качестве носителя ключевой информации могут использоваться: защищенный флэш-накопитель (токен) (Рутокен, JaCarta, ESMART и др.), смарт-карта, флэш-накопитель, дискета.
Ключевые контейнеры — это способ хранения закрытых ключей, реализованный в КриптоПро. Их физическое представление зависит от типа ключевого носителя (на флеш-накопителе, дискете, жестком диске это каталог в котором хранится набор файлов с ключевой информацией; в случае со смарт-картами — файлы в защищенной памяти смарт-карты).
Встроенный в «КриптоПро CSP» датчик случайных чисел (далее ДСЧ) используется для генерации ключей.
Для смарт-карт: ключи дополнительно защищаются кодом доступа к защищенной памяти смарт-карты (PIN). При всех операциях с защищенной памятью (чтение, запись, удаление…) требуется вводить PIN.
Для других носителей: для повышения безопасности на контейнер можно установить пароль. В этом случае всё содержимое контейнера хранится не в открытом виде, а в зашифрованном на этом пароле. Пароль задается при создании контейнера, в дальнейшем для чтения ключей из контейнера необходимо будет вводить пароль.
Примечание: Подробнее про работе с разными ключевыми носителями: Рутокен, JaCarta, ESMART
Управление считывателями
Просмотр доступных (настроенных) считывателей:
$ cpconfig -hardware reader -view
Nick name: Aladdin R.D. JaCarta [SCR Interface] 00 00
Connect name:
Reader name:
Nick name: FLASH
Connect name:
Reader name:
Nick name: HDIMAGE
Connect name:
Reader name:
Либо:
$ csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251
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, если его нет в списке доступных считывателей (под правами root):
# cpconfig -hardware reader -add HDIMAGE store
Adding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0
Считыватель HDIMAGE размещается на /var/opt/cprocsp/keys/<имя пользователя>/.
Для работы со считывателем PC/SC требуется пакет cprocsp-rdr-pcsc. После подключения считывателя можно просмотреть список видимых считывателей (не зависимо от того, настроены ли они в КриптоПро как считыватели, зависит только от того, какие установлены драйверы для считывателей):
$ list_pcsc
Aladdin R.D. JaCarta [SCR Interface] 00 00
Aktiv Co. Rutoken S 00 00
Инициализация считывателя Aktiv Co. Rutoken S 00 00 (требуется, если считыватель есть в списке видимых считывателей и отсутствует в списке настроенных), в параметре -add указывается имя, которое было получено при просмотре видимых считывателей, в параметре -name — удобное для обращения к считывателю имя, например, Rutoken (под правами root):
# cpconfig -hardware reader -add 'Aktiv Co. Rutoken S 00 00' -name 'Rutoken'
Adding new reader:
Nick name: Aktiv Co. Rutoken S 00 00
Name device: Rutoken
Succeeded, code:0x0
Современные аппаратные и программно-аппаратные хранилища ключей, такие как Рутокен ЭЦП или eSmart ГОСТ, поддерживаются через интерфейс PCSC. За реализацию этого интерфейса отвечает служба pcscd, которую необходимо запустить перед началом работы с соответствующими устройствами:
Можно включить службу pcscd в автозапуск при загрузке системы:
Управление носителями
Просмотр доступных носителей:
$ cpconfig -hardware media -view | iconv -f cp1251
Управление ДСЧ
Просмотр списка настроенных ДСЧ:
$ cpconfig -hardware rndm -view
Nick name: CPSD
Connect name:
Rndm name:
Rndm level: 3
Nick name: BIO_GUI
Connect name:
Rndm name:
Rndm level: 4
Nick name: BIO_TUI
Connect name:
Rndm name:
Rndm level: 5
Настройка криптопровайдера
Просмотреть доступные типы криптопровайдеров можно командой cpconfig -defprov -view_type:
$ cpconfig -defprov -view_type
Provider type Provider Type Name
_____________ _____________________________________
75 GOST R 34.10-2001 Signature with Diffie-Hellman Key Exchange
80 GOST R 34.10-2012 (256) Signature with Diffie-Hellman Key Exchange
81 GOST R 34.10-2012 (512) Signature with Diffie-Hellman Key Exchange
16 ECDSA Full and AES
24 RSA Full and AES
Просмотр свойств криптопровайдера нужного типа:
$ cpconfig -defprov -view -provtype 80
Listing Available Providers:
Provider type Provider Name
_____________ _____________________________________
80 Crypto-Pro GOST R 34.10-2012 KC1 CSP
80 Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider types and provider names have been listed.
Управление контейнерами
Создание контейнера
Примечание: Для того, чтобы сертификат из контейнера можно было использовать через модуль pkcs11 (из пакета lsb-cprocsp-pkcs11) в браузере firefox-gost, необходимо создать его с -provtype 75 (поддержка ГОСТ-2001).
Внимание! C 1 января 2019 г. по указанию ФСБ РФ и Минкомсвязи всем аккредитованным УЦ запрещен выпуск сертификатов ЭП по ГОСТ 2001.
Ключи и запрос на сертификат необходимо формировать ГОСТ 2012.
Создадим контейнер с именем «test» в локальном считывателе HDIMAGE.
$ csptest -keyset -provtype 75 -newkeyset -cont '\.HDIMAGEtest'
При установленном пакете cprocsp-rdr-gui-gtk будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:
Примечание: Если такой пакет не установлен, будет предложено ввести любые символы с клавиатуры.
После этого будет предложено указать пароль на контейнер (можно указать пустой, тогда пароль запрашиваться не будет):
Внимание! При создании контейнера на токене:
$ csptest -keyset -provtype 75 -newkeyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] 01 00test'
Пароль не создается, а предъявляется (PIN-код пользователя):
После указания пароля снова будет предложено перемещать указатель мыши.
Вывод команды:
CSP (Type:75) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 6679219 GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP Container name: "test" Signature key is not available. Attempting to create a signature key... a signature key created. Exchange key is not available. Attempting to create an exchange key... an exchange key created. Keys in container: signature key exchange key Extensions: OID: 1.2.643.2.2.37.3.9 OID: 1.2.643.2.2.37.3.10 Total: SYS: 0,030 sec USR: 0,160 sec UTC: 22,910 sec [ErrorCode: 0x00000000]
Локальный контейнер создан.
В КриптоПро 5 появилась возможность интерактивно выбирать носитель и тип создаваемого контейнера. Теперь можно создавать неизвлекаемые контейнеры.
Для этого необходимо выполнить команду, где testinside_2012 — имя контейнера:
$ csptest -keyset -provtype 80 -newkeyset -cont testinside_2012
Откроется окно выбора носителя и способа создания контейнера. Для некоторых носителей нет возможности выбрать способ создания контейнера (Рутокен S, JaCarta PKI):
Для некоторых носителей можно выбрать способ создания контейнера (Рутокен ЭЦП, JaCarta-2 PKI/ГОСТ).
Создание неизвлекаемого контейнера:
Создание обычного контейнера:
Просмотр доступных контейнеров
Внимание! При подключении токена в порт USB3, контейнеры видны не будут.
Примечание: Вы можете загрузить все сертификаты с подключенных токенов командой:
csptestf -absorb -certs -autoprov
Проверить наличие контейнеров можно с помощью команды:
$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679203
\.HDIMAGEtest
OK.
Total: SYS: 0,000 sec USR: 0,070 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]
Внимание! Имена контейнеров могут содержать названия в кодировке cp1251 (например, на токенах), что делает работу с ними по этим именам проблематичной. Можно показать список контейнеров с их уникальными именами командой:
$ csptest -keyset -enum_cont -fqcn -verifyc -uniq
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679203
\.Aktiv Co. Rutoken S 00 00card |\.Aktiv Co. Rutoken S 00 00SCARDrutoken_2b8654f7A006AD1
\.HDIMAGEtest |\.HDIMAGEHDIMAGE\test.0002EF8
OK.
Total: SYS: 0,020 sec USR: 0,190 sec UTC: 1,510 sec
[ErrorCode: 0x00000000]
Уникальные имена указаны после символа «|».
Просмотр подробной информации о контейнере:
csptestf -keyset -container '\.HDIMAGEtest' -info
Удаление контейнера
Удалить контейнер можно с помощью команды:
$ csptest -keyset -deletekeyset -cont '\.HDIMAGEtest'
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Container \.HDIMAGEtest deleted.
Total: SYS: 0,010 sec USR: 0,240 sec UTC: 0,260 sec
[ErrorCode: 0x00000000]
Управление сертификатами
cryptcp — приложение командной строки для создания запросов на сертификаты, шифрования и расшифрования файлов, создания и проверки электронной подписи файлов с использованием сертификатов открытых ключей, хэширования файлов. Результатом работы приложения в большинстве случаев является файл с CMS-сообщением (PKCS#7) в кодировке DER или BASE64.
Создание запроса на получение сертификата
Создание запроса на получение сертификата средствами КриптоПро:
cryptcp -creatrqst -dn "список имён полей" -cont 'путь к контейнеру' <название_файла>.csr
Для создания запроса на получение сертификата потребуется:
- DN — данные, которые будут храниться в поле Subject сертификата (cn=Test User5,e=cas@altlinux.org).
- Имя контейнера вместе со считывателем (например, в локальном хранилище hdimage: \.HDIMAGEtest).
- Имя файла, в котором следует сохранить запрос (test5.csr).
Внимание! Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 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.3 | CN | Общее имя | Наименование ЮЛ (если ИНН начинается с «00») или ФИО владельца. Длина не более 64 символов |
2.5.4.4 | SN | Фамилия | |
2.5.4.42 | GN/G | Имя Отчество | Общая длина текста в полях SN и G должна быть не более 64 символов (с учетом одного пробела между текстом из Фамилии и текстом из Имени) |
1.2.840.113549.1.9.1 | emailAddress/E | Адрес электронной почты | ivanov@mail.mail |
1.2.643.100.3 | SNILS | СНИЛС | Должно быть записано 11 цифр (допускается 11 нулей для иностранных граждан). |
1.2.643.3.131.1.1 | INN | ИНН | 12 цифр, для ЮЛ первые две цифры 00 |
2.5.4.6 | C | Страна | Двухсимвольный код страны (RU) |
2.5.4.8 | S | Регион | Наименование субъекта РФ ЮЛ: по адресу местонахождения,
ФЛ: по адресу регистрации (39 Калининградская обл.) |
2.5.4.7 | L | Населенный пункт | Наименование населенного
пункта (Калининград) |
2.5.4.9 | street | Название улицы, номер дома | Пр-т Победы 14 кв.3 |
2.5.4.10 | O | Организация | Полное или сокращенное
наименование организации (только для ЮЛ) |
2.5.4.11 | OU | Подразделение | В случае выпуска СКПЭП на должностное лицо – соответствующее подразделение организации (только для ЮЛ) |
2.5.4.12 | T | Должность | В случае выпуска СКПЭП на должностное лицо – его должность (только для ЮЛ) |
1.2.643.100.1 | OGRN | ОГРН | ОГРН организации (только для ЮЛ) |
Создать запрос на субъект «cn=Test User5,e=cas@altlinux.org», используя открытый ключ, сгенерированный в контейнере test текущего пользователя криптопровайдером «GOST R 34.10-2001» (тип — 75) и сохранить его в файл test5.req, назначение ключа — аутентификация и защита электронной почты:
$ cryptcp -creatrqst -dn "cn=Test User5,e=cas@altlinux.org" -provtype 75 -nokeygen -cont '\.HDIMAGEtest' -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" 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 -dn "CN=Иванов Иван Иванович,SN=Иванов,G=Иван Иванович,E=ivanov@mail.mail,C=RU,L=Калининград,ST=39 Калининградская обл.,street=Пр-т Победы 14 кв.3,SNILS=102301111222,INN=11223344556" -provtype 80 -nokeygen -cont '\.HDIMAGEtest_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 -dn "2.5.4.3=Иванов Иван Иванович,2.5.4.4=Иванов,2.5.4.42=Иван Иванович,1.2.840.113549.1.9.1=ivanov@mail.mail,2.5.4.6=RU,2.5.4.8=39 Калининградская обл.,2.5.4.7=Калининград,2.5.4.9=Пр-т Победы 14 кв.3,1.2.643.3.131.1.1=102301111222,1.2.643.100.3=11223344556" -provtype 80 -nokeygen -cont '\.HDIMAGEtest_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 '\.HDIMAGEtest'
Запись сертификата клиента в контейнер:
$ cryptcp -instcert -provtype 80 -cont '\.HDIMAGEtest' -ku -askpin cert.cer
Основные опции:
-provtype — указать тип криптопровайдера (по умолчанию 75);
-provname — указать имя криптопровайдера;
-cont — задать имя ключевого контейнера (по умолчанию выбор из списка);
-ku — использовать контейнер пользователя (CURRENT_USER);
-km — использовать контейнер компьютера (LOCAL_MACHINE);
-dm — установка в хранилище компьютера (LOCAL_MACHINE);
-du — установка в хранилище пользователя (CURRENT_USER);
-askpin — запросить пароль ключевого контейнера из с консоли;
<имя файла> — имя файла, содержащего сертификат.
Добавление сертификата УЦ из файла 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 -list
Certmgr 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.0002EF8
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.0002EF8, то сертификат ассоциирован (связан) с приватным ключом, а если выводится PrivateKey Link: No — связи нет, и использовать такой контейнер для подписи не удастся:
Просмотр сертификатов в контейнере:
$ certmgr -list -container '\.Aktiv Rutoken ECP - CP 00 00Rutoken'
Просмотр корневых сертификатов:
$ certmgr -list -store uRoot
Получение сертификата в УЦ и его установка
Для получения сертификата в УЦ (на примере тестового удостоверяющего центра КриптоПро), необходимо выполнить следующие действия:
- Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
- Нажмите ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»:
- Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.req и нажмите кнопку «Выдать»:
- Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя certnew.p7b):
Примечание: Просмотреть содержимое файла test5.req можно, выполнив команду:
$ cat test5.req
MIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=
Просмотреть полученный сертификат можно, выполнив команду:
$ certmgr -list -file certnew.p7b
Certmgr 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 '\.HDIMAGEtest'
-
- в ответ на запрос команды нажмите 2.
- введите пароль на контейнер \.HDIMAGEtest при запросе:
Примечание: Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром -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/MainCA | https://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.cer
CryptCP 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 -copycert -dn E=user@test.ru -df personal.cer
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, чтобы выйти).
Можно запустить вышеуказанную команду с отладкой цепочки:
$ CP_PRINT_CHAIN_DETAIL=1 cryptcp -copycert -dn E=user@test.ru -df personal.cer
...
----------- 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 -copycert -dn E=user@test.ru -df personal.cer
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 -dn "CN=Иванов Иван Иванович" -container '\.Aladdin R.D. JaCarta [SCR Interface] 01 00test'
Удалить все сертификаты из хранилища КриптоПро:
$ certmgr -delete -all $ certmgr -delete -store uRoot
Удалить все сертификаты установленные в хранилище машины:
# certmgr -delete -store mRoot
Экспорт контейнера и сертификата на другую машину
Если при создании контейнера он был помечен как экспортируемый (ключ -exportable), то его можно экспортировать на USB-диск:
$ csptest -keycopy -contsrc '\.HDIMAGEtest_export' -contdest '\.FLASHtest_new'
CryptAcquireContext succeeded.HCRYPTPROV: 36965843
CryptAcquireContext succeeded.HCRYPTPROV: 37297363
Total: SYS: 0,100 sec USR: 0,200 sec UTC: 13,420 sec
[ErrorCode: 0x00000000]
При этом потребуется ввести пароль от контейнера ‘\.HDIMAGEtest_export’ и задать пароль на новый контейнер ‘\.FLASHtest_new’.
Примечание: Будьте внимательны при операциях импорта/экспорта контейнера с использованием токена:
$ csptest -keycopy -contsrc '\.HDIMAGEtest_export' -contdest '\.Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00test_export'
необходимо будет предъявлять pin токена.
Просмотр списка контейнеров:
$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 41622371
\.FLASHtest_new
\.HDIMAGEtest_export
\.HDIMAGEtest
OK.
Total: SYS: 0,030 sec USR: 0,060 sec UTC: 0,160 sec
[ErrorCode: 0x00000000]
Экспортировать сертификат из локального хранилища в файл:
$ certmgr -export -dn 'CN=Ли Александр Сергеевич' -dest test.cer
Скопировать сертификат на USB-диск:
$ cp test.cer /run/media/user/NAMEUSB/
Экспорт контейнера с USB-диска на жесткий диск:
$ csptest -keycopy -contsrc '\.FLASHtest_new' -contdest '\.HDIMAGEtest_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:
$ certmgr -inst -file /run/media/user/NAMEUSB/test.cer -cont '\.HDIMAGEtest_export'
Экспорт сертификатов на другую машину
Закрытые ключи к сертификатам находятся в /var/opt/cprocsp/keys.
Для экспорта сертификатов необходимо:
- Перенести ключи из /var/opt/cprocsp/keys на нужную машину в тот же каталог.
- Экспортировать сертификаты (их, количество можно определить, выполнив: certmgr -list, в примере сертификатов 3):
-
$ for i in `seq 1 3`; do echo $i | certmgr -export -dest $i.cer; done
-
- Перенести файлы сертификатов (1.cer, 2.cer, 3.cer) на нужную машину.
- На машине, куда переносятся сертификаты, просмотреть какие контейнеры есть (должны появится контейнеры с первой машины):
-
$ csptest -keyset -enum_cont -verifycontext -fqcn
-
- Связать сертификат и закрытый ключ:
-
$ certmgr -inst -file 1.cer -cont '\.HDIMAGEcontainer.name'
- Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
-
Cannot install certificate Public keys in certificate and container are not identical
-
- Если закрытого ключа нет, то просто поставить сертификат:
-
$ 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.
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):
# openssl pkcs12 -in web-server.p12 -nodes | grep BEGIN
Enter Import Password:
MAC verified OK
-----BEGIN CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
И сертификат и ключ попали в контейнер.
После генерации сертификата проверим наличие считывателя:
# cpconfig -hardware reader -view | grep ^Nick
Nick name: FLASH
Nick name: HDIMAGE
Для импорта сертификата в КриптоПро используйте программу certmgr. В нашем случае:
$ certmgr -inst -file web-server.p12 -cont HDIMAGE
Если Вам необходимо импортировать сертификат с токена:
certmgr -inst -cont '\.Aktiv Co. Rutoken S 00 00le-fb25d25d-23e9-4723-ae4c-fe0c95f2fcc1'
Если контейнер защищен паролем используйте ключ -pin <пароль>
Инструменты КриптоПро — кроссплатформенный графический интерфейс (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 пункт Операции ▷ Просмотр лицензии КриптоПро CSP:
Для установки другой лицензии КриптоПРО выберите в меню token-manager пункт Операции ▷ Ввод лицензии КриптоПро CSP:
Просмотр сертификатов
Просмотреть список сертификатов в хранилище или на ключевом носителе, можно выбрав соответствующий носитель:
Для просмотра сертификата, необходимо выбрать сертификат и нажать кнопку «Просмотр»:
Для просмотра корневых сертификатов, необходимо выбрать в меню token-manager пункт Операции ▷ Просмотр корневых сертификатов.
Установка сертификата
Чтобы установить сертификат с токена в локальное хранилище, необходимо выбрать контейнер на токене и нажать кнопку «Установить»:
Сертификат будет установлен в локальное хранилище сертификатов и будет связан с закрытым ключом на токене.
Чтобы установить сертификат в локальное хранилище из файла, необходимо выбрать «Личное хранилище сертификатов», нажать кнопку «Установить», выбрать файл сертификата и нажать кнопку «Открыть». Появится сообщение об успешном импорте сертификата:
Сертификат будет установлен в локальное хранилище сертификатов, но не будет связан ни с каким закрытым ключом. Этот сертификат можно использовать для проверки подписи.
Электронная подпись
Существуют два вида электронной подписи:
- прикреплённая (attached) — в результирующий файл упакованы данные исходного файла и подпись;
- откреплённая (detached) — подписываемый документ остается неизменным, подпись же сохраняется в отдельном файле. Для проверки отсоединенной подписи нужны оба файла, файл подписи и файл исходного документа.
Создание и проверка подписи в командной строке
Создание подписи
Для создания электронной подписи файла необходимо указать сертификат и имя подписываемого файла.
Для создания прикрепленной (attached) электронной подписи выполните команду:
Примечание: Проще всего для указания сертификата использовать адрес e-mail.
$ cryptcp -sign -dn E=user@test.ru -der zayavlenie.pdf
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:user@test.ru, Иванов Иван
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38
Цепочки сертификатов проверены.
Папка './':
zayavlenie.pdf... Подпись данных...
Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]
где
- -dn E=user@test.ru — сертификат по e-mail;
- -der — использовать формат DER для файла подписи (по умолчанию используется формат Base64);
- zayavlenie.pdf — имя подписываемого файла.
На выходе появится файл zayavlenie.pdf.sig, содержащий как сам подписываемый файл, так и электронную подпись.
Для создания открепленной (detached) подписи необходимо заменить ключ -sign на -signf:
$ cryptcp -signf -dn E=user@test.ru -der zayavlenie.pdf
Тогда рядом с оригинальным файлом будет лежать файл подписи — zayavlenie.pdf.sgn.
Проверка подписи
Для проверки прикреплённой подписи выполните команду:
$ cryptcp -verify zayavlenie.pdf.sig
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:user@test.ru, Иванов Иван
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38
Цепочки сертификатов проверены.
Папка './':
zayavlenie.pdf.sig... Проверка подписи...
Автор подписи: user@test.ru, Иванов Иван
Подпись проверена.
[ErrorCode: 0x00000000]
Показано, кто подписывал и что подпись проверена.
Для проверки откреплённой подписи выполните команду:
$ cryptcp -vsignf zayavlenie.pdf
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:user@test.ru, Иванов Иван
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38
Цепочки сертификатов проверены.
Папка './':
234.pdf... Проверка подписи...
Автор подписи: user@test.ru, Иванов Иван
Подпись проверена.
[ErrorCode: 0x00000000]
Также для проверки электронной подписи можно воспользоваться сервисом на сайте Госуслуг — https://www.gosuslugi.ru/pgu/eds.
Извлечение подписанного файла
Для извлечения файла с данными из файла электронной подписи необходимо указать имя файла, в который будут извлечены данные, в конце команды проверки подписи:
$ cryptcp -verify zayavlenie.pdf.sig zayavlenie.pdf
Создание и проверка ЭЦП в ALT CSP КриптоПро
Создание и проверка ЭЦП в gost-crypto-gui
gost-crypto-gui — средство для создания электронной подписи и шифрования файлов.
Установить пакет gost-crypto-gui из репозитория можно, выполнив команду:
# apt-get install gost-crypto-gui
Запустить программу можно:
- из командной строки:
-
$ python /usr/bin/gost-crypto-gui.py
-
- в рабочей среде Mate: Меню Система ▷ Администрирование ▷ Подпись и шифрование файлов;
- в рабочей среде KDE: Меню запуска приложений ▷ Настройки ▷ Подпись и шифрование файлов.
С её помощью можно подписывать и проверять подписи файлов:
Для создания электронной подписи файла необходимо:
- Нажать кнопку «Подписать файл(ы)».
- Выбрать файл, который необходимо подписать.
- Выбрать сертификат и нажать кнопку «Далее»:
- Ввести пароль на контейнер (если он был установлен):
- Появится сообщение о подписанном файле:
Опции ЭП настраиваются в меню «Опции» (параметр «Отсоединенная подпись» не работает???):
Для проверки электронной подписи следует:
- Нажать кнопку «Проверить подпись».
- Выбрать подписанный файл.
- Появится информация о сертификате подписи:
Создание и проверка ЭЦП с использованием cptools
Примечание: cptools доступна версии КриптоПро 5.
Запустить программу можно из консоли (должен быть установлен cprocsp-cptools-gtk из скачанного архива КриптоПро):
С помощью cptools можно подписывать и проверять подписи файлов.
Для создания электронной подписи файла необходимо:
- В левом меню выбрать пункт «Создание подписи».
- Выбрать файл, который необходимо подписать, нажав кнопку «Выбрать файл для подписи» (или ввести адрес файла в текстовое поле под кнопкой «Выбрать файл для подписи»).
- Изменить имя файла подписи, если оно вас не устраивает:
- Нажать кнопку «Подписать».
- Ввести пароль на контейнер (если он был установлен).
- Появится сообщение о подписанном файле: «Создание подписи завершилось успехом».
Для проверки электронной подписи следует:
- В левом меню выбрать пункт «Проверка подписи».
- Выбрать файл с подписью, нажав кнопку «Выбрать файл с подписью для проверки» (или ввести адрес файла в текстовое поле под этой кнопкой).
- Нажать кнопку «Проверить подпись».
- Появится информация о результате проверки:
Web
Информацию о создании и проверки ЭЦП на веб-сайтах с помощью плагина КриптоПро можно найти в
руководстве разработчика КриптоПро ЭЦП Browser plug-in:
- КриптоПро ЭЦП. Руководство разработчика
КриптоПро ЭЦП Browser plug-in
Внимание! Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0
требует КриптоПро 4.0
. С более ранними версиями КриптоПро плагин не работает и конфликтует.
КриптоПро ЭЦП Browser plug-in предназначен для создания и проверки электронной подписи (ЭП) на веб-страницах с использованием СКЗИ «КриптоПро CSP».
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP, пакета cprocsp-rdr-gui-gtk из его комплекта и расширения для браузера CryptoPro Extension for CAdES Browser Plug-in (для работы в Firefox версии 52 и выше).
Для установки плагина:
- Скачайте архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0 (будет скачан архив под архитектуру браузера) или на странице https://www.cryptopro.ru/products/cades/plugin/ нажмите ссылку «версия 2.0 для пользователей»:
- Распакуйте архив:
-
$ tar -xf cades_linux_amd64.tar.gz
-
- Установите пакеты (под правами root, из папки с установочными файлами):
-
# apt-get install cprocsp-pki-{cades,plugin}-*.rpm
-
- Разместите ссылки (под правами root):
- Для Chromium:
-
# ln -s /usr/share/chromium-browser/extensions /usr/lib64/chromium/extensions
- Для Firefox (64-битная версия):
-
# ln -s /opt/cprocsp/lib/amd64/libnpcades.so.2.0.0 /usr/lib64/browser-plugins/libnpcades.so
- В актуальных версиях пакетов cprocsp-pki-* эти символические ссылки создаются автоматически в процессе установки.
- Для работы в Firefox версии 52 и выше установите расширение для браузера Инструкция на сайте производителя. Для установки расширения в Mozilla Firefox скачайте его по ссылке https://www.cryptopro.ru/sites/default/files/products/cades/extensions/firefox_cryptopro_extension_latest.xpi или нажмите на ссылку «Скачать расширение для браузера» на странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html
- Во всплывающем окне нажмите кнопку «Разрешить»:
- Нажмите кнопку «Добавить»:
- Появится сообщение, что расширение добавлено в Firefox:
- Убедиться, что плагин установлен можно на странице about:addons (или about:plugins в более ранних версиях Mozilla Firefox). Сделайте его активируемым по умолчанию.
- Для работы в Chromium установите расширение для браузера на странице chrome://extensions/:
- На странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вверху должна появится надпись: «Плагин загружен» и должен показаться сертификат в списке:
-
Внимание! Если список пуст, необходимо проверить правильность цепочки сертификатов
zakupki.gov.ru
Для входа в личный кабинет на http://zakupki.gov.ru необходимо:
1. Браузер с поддержкой ГОСТового TLS: Chromium-gost или firefox-gost.
2. Так как сертификат у этого сайта неправильный, потребуется новая версия КриптоПро (4.0.9963 или новее) и выключение строгой проверки имени сервера (под правами root)[1]:
# /opt/cprocsp/sbin/amd64/cpconfig -ini 'configparameters' -add long Rfc6125_NotStrict_ServerName_Check 1
Проверка под обычным пользователем:
$ /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave
HDEContext expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
1 connections, 589 bytes in 0.200 seconds;
Total: SYS: 0,020 sec USR: 0,150 sec UTC: 0,250 sec
[ErrorCode: 0x00000000]
Вход в ЕСИА
Для аутентификации через ЕСИА (https://esia.gosuslugi.ru/) потребуется установить версию не позже CSP 4.0R3 и плагин IFCPlugin, а также установить расширение для плагина Госуслуг, в зависимости от версии браузера:
- Расширение для Google Chrome/Chromium/Chromium GOST
- Расширение для Mozilla Firefox
Перезапустить браузер.
Подробнее:
- Вход в ЕСИА
- Вход с помощью электронной подписи на портал Госуслуг на Linux (от КриптоПро)
Примечание: Для старых версий плагина (< 3.0.0) необходимо добавить в файл /etc/ifc.cfg после раздела с Jacarta (для 64-битных систем):
{ name = "CryptoPro CSP"; alias = "cryptoprocsp"; type = "pkcs11"; lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so"; },
Примечание: Для работы с контейнерами КриптоПро (в том числе с ГОСТ-2012) для плагина 3.0.5 необходимо добавить в файл /etc/ifc.cfg (для 64-битных систем):
{ name = "CryptoPro CSP5"; alias = "cprocsp5"; type = "pkcs11"; alg = "gost2001"; model = "CPPKCS 3"; lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so"; }, { name = "CryptoPro CSP5 2012 256"; alias = "cprocsp5_2012_256"; type = "pkcs11"; alg = "gost2012_256"; model = "CPPKCS 3"; lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so"; }, { name = "CryptoPro CSP5 2012 512"; alias = "cprocsp5_2012_512"; type = "pkcs11"; alg = "gost2012_512"; model = "CPPKCS 3"; lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so"; }
И сделать символическую ссылку на библиотеку pkcs11:
# ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so
Журнал работы плагина можно найти в файле /var/log/ifc/engine_logs/engine.log.
Особенности работы с токенами
Rutoken S
При входе в ЕСИА с помощью Rutoken S не находится приватная часть ключа. В журнале ifc появляется строка:
IFC:do_work_sign_cms:ERROR:get_priv_key_by_id error:ifc_sign_cms.c:110
Для этого надо перенести приватный ключ в локальное хранилище и задействовать его:
$ csptest -keycopy -contsrc 'имя_контейнера_например\.Aktiv Rutoken ECP 00 00ххххх' -contdest '\.HDIMAGEprivate' -pindest пароль $ certmgr -inst -cont '\.HDIMAGEprivate'
для AltLinux9.2 КриптоПро5 Rutoken S — если cptools не читает ключ.
$ lsusb Bus 001 Device 005: ID 0a89:0020 Retoken S
Добавить группу, если в журнале ошибки по отсутствию групп
$ groupadd scard $ groupadd pcscd
В
добавить в файл
$ vi 50-pcscd-asedriveiiie.rules
строку
ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0020", GROUP="pcscd"
И закоментировать в файле
строку
#ATTR{idVendor}=="0a89", ATTR{idProduct}=="0020", RUN+="/lib/udev/openct_usb /dev/$name"
После внесения изменений перезагрузить службу
КриптоПро JCP
- Для установки КриптоПро JCP нужно установить Oracle Java 1.7.0 (через собственную сборку или пакеты для Fedora)
- Распакуйте архив и перейдите в каталог
- Выполните
# ./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"
Поддержка Рутокена
- Загрузите драйвер для JCP http://www.rutoken.ru/support/download/rutoken-for-cp/ и распакуйте его
- Выполните:
# java -jar rtjlib.jar -install -rutoken
Запуск контрольной панели
(требует графического дисплея)
Ссылки
- ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
- ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
- Инструкция по настройке IFCPlugin (сайт госуслуг) для работы с КриптоПро
- ЭЦП
- Набор скриптов для подписания и проверки ЭЦП КриптоПро на Linux
Известные ошибки и методы исправления
Неправильный зарегистрированный набор ключей
Код ошибки: 0x8009001A Может возникнуть в многопользовательской системе у второго и последующих пользователей из-за нарушения прав доступа к файлам в каталоге /var/opt/cprocsp/tmp.
Добавить в ACL отдельную запись для суперпользователя root:
# setfacl -R -m u:root:rwx /var/opt/cprocsp/tmp
- Основные понятия:
- Криптопровайдер – средство защиты криптографической защиты информации. Программа с помощью которой генерируется закрытая часть электронной подписи и которая позволяет производить работу с электронной подписью. Данная галочка проставляется автоматически.
- Плагин (модуль) — это программный блок, который встраивается в браузер и расширяет его возможности. В отличие от дополнений плагин, как правило, не имеет интерфейса. Плагины используются для проигрывания видео и аудио в браузере, просмотра PDF-документов, улучшения работы веб-служб, организующих совместную работу в интернете и т. д.
- Необходимое программное обеспечение:
- КриптоПро CSP
- КриптоПро ЭЦП Browser Plugin
- Chromium GOST
- Плагин для Госуслуг
Установка КриптоПро CSP.
- Переходим в папку «Загрузки», и в папку предварительно распакованного дистрибутива КриптоПро CSP, и выполняем установку:
cd Загрузки/linux-amd64_deb
sudo sh install_gui.sh
Запустится установщик КриптоПро CSP.
После появления данного окна нажимаем «Далее» — «Далее» — «Установить» — «ОК» (клавишей Enter)
Сразу после завершения можно ввести лицензию КриптоПро CSP.
Установка дополнительных модулей.
В процессе установки КриптоПро CSP в терминале отображается информация, какие именно библиотеки/модули распаковываются и устанавливаются:
Обязательно должны присутствовать:
- lsb-cprocsp-pkcs11-64_5.0.12000-6_amd64.deb
- cprocsp-rdr-gui-gtk-64_5.0.12000-6_amd64.deb
- cprocsp-cptools-gtk-64_5.0.12000-6_amd64.deb
Остальные компоненты устанавливаются вручную через комманды в терминале:
- sudo dpkg –i cprocsp-rdr-pcsc-64_5.0.12000-6_amd64.deb
- sudo dpkg –i cprocsp-rdr-jacarta-64_5.0.0.1237-4_amd64.deb
- sudo dpkg –i cprocsp-rdr-cloud-64_5.0.12000-6_amd64.deb
Установка Chromium GOST.
- Переходим в директорию с загруженным установочным *.deb пакетом
cd
cd загрузки
2. Устанавливаем Chromium GOST.
sudo dpkg -i chromium-gost-108.0.5359.124-linux-amd64.deb
Установка КриптоПро ЭЦП Browser Plugin.
- Переходим в директорию с предварительно распакованными установочными пакетами плагина.
- cd
- cd Загрузки/cades-linux-amd64
- Поочередно устанавливаем *.deb пакеты. (просмотреть их можно командой ls).
- sudo dpkg –i cprocsp-pki-cades-64_2.0.14660-1_amd64.deb
- sudo dpkg –i cprocsp-pki-phpcades-64_2.0.14660-1_amd64.deb
- sudo dpkg –i cprocsp-pki-plugin-64_2.0.14660-1_amd64.deb
Установка плагина для Госуслуг.
- Переходим в директорию с установочным *.deb пакетом.
- cd
- cd Загрузки
- Устанавливаем плагин
- sudo dpkg –i IFCPlugin-x86_64.deb
- Проверяем настройку (Открываем «Инструменты КриптоПро», «Chromium-GOST», активируем расширения, настраиваем доверенные зоны в плагине).
Остались вопросы? Как мы можем помочь?
Как мы можем помочь?
Настройка компьютера для работы с КЭП (MacOS)Экспорт PFX-файла и его установка
Содержание
- Криптопро linux недопустимый дескриптор привязки
- не видется рутокен
- 7443498
- Криптопро linux недопустимый дескриптор привязки
- Криптопро linux недопустимый дескриптор привязки
- 1. Скачиваем deb-пакет для установки КриптоПро в Ubuntu
- 2. Установка КриптоПро в графическом режиме
- 3. Ввод лицензионного кода
- 4. Установка дополнительных файлов поддержки КрптоПро
- 5. Установка драйверов Рутокен
- 6. Перезапуск службы pcscd
- 7. Проверка работоспособности Рутокена при помощи фирменных средств производителя
- 8. Проверка работоспособности Рутокена при помощи встроенных средств КриптоПро
- 9. Просмотр и Импорт в Личное хранилище сертификатов с Рутокена
- 10. Просмотр личных сертификатов в хранилище
- 11. Импорт коренвых сертификатов в хранилище доверенных корневых сертификатов
- 12. Установка КриптоПро ЭЦП Browser plug-in
- 13. Установка расширения браузера КриптоПро ЭЦП Browser plug-in
- 14. Тестирование работоспособности подписи
- 15. Доополнительное ПО для Рутокена
- Работа с КриптоПро на linux сервере
- Ссылки
- Лицензия
- Корневые сертификаты
- Сертификаты
- Список установленных сертификатов
- Добавление реального сертификата
- Добавление реального сертификата с привязкой к закрытому ключу и возможностью подписывать документы
- Способ с дискетой или флешкой
- С жесткого диска
- Проверка успешности установки закрытого ключа
- Добавление тестового сертификата
- Удаление сертификата
- Проверка сертификата
- Просмотр всех атрибутов сертификата
- Экспорт сертификатов на другую машину
- Подписание документа ЭЦП
- Проверка подписи ЭЦП
- Получение исходного файла
Криптопро linux недопустимый дескриптор привязки
Здравствуйте. Я совсем новичек в юзании Visual Studio. Так вот, помогите решить проблемку. После F5 получаю такую ошибку: Error while trying to run project: «Unable to start debugging. Недопустимый дескриптор привязки». Может кто встречался с таким? Заранее спасибо.
![]() |
От: | Аноним |
Дата: | 22.11.05 10:10 | |
Оценка: |
У меня возникала такая ошибка . Скорее всего ты вместе со студией установил и SQLServer 2005 (кажется DesktopEdition называется). В свойствах проекта , во вкладке Debug есть галочка — Enable SQL Server Debuging, поставь галочку и проблема исчезнет !
![]() |
От: | Аноним |
Дата: | 22.11.05 10:12 | |
Оценка: |
Sorry! SQL Server 2005 Express называется
![]() |
От: | Аноним |
Дата: | 22.11.05 11:15 | |
Оценка: |
Спасибо за вариант решения. Но как оказалось (на microsoft.com подсказали) нужно было включить терминал сервис.
![]() |
От: | Аноним |
Дата: | 11.03.08 14:38 | |
Оценка: |
а не подскажите как включить терминал сервера
Данное сообщение получено с сайта www.gotdotnet.ru
![]() |
От: | Аноним |
Дата: | 23.03.08 19:21 | |
Оценка: |
services.msc — ] Службы терминалов
Данное сообщение получено с сайта www.gotdotnet.ru
![]() |
От: | Аноним |
Дата: | 24.03.08 05:09 | |
Оценка: |
Интересно, как служба терминалов связана с отладкой.
Хотя, это же MS
Данное сообщение получено с сайта www.gotdotnet.ru
![]() |
От: | Аноним |
Дата: | 24.03.08 06:14 | |
Оценка: |
+1, на домашнем компе тоже не работала отладка в студии, терминал сервис был disable, выставил в мануал — заработала отладка, может кто знает, в чем прикол то?
Источник
не видется рутокен
7443498
New member
Добрый день уважаемые форумчане.
Прошу помощи в решении вопроса. Мое знакомство с линуксом только начинается, а именно: на меня возложили обязанность на астра линукс установить ЭЦП для подписи документов. первым делом я скачал криптопро. с установкой которого проблем не возникло — инсталлер все решил за меня, а вот дальше начались хождения по мукам. я скачал драйвера для рутокена, с помощью команды cd перешел в загрузки, и установил sudo apt install файл., далее скачал библиотеки и тоже установил. действовал так как написано в инструкции на википедии., но вот начинаю просматриват контейнеры и сертификаты в криптопро, а там пусто. команда pcsc_scan выдает ошибку и не находит рутокен. после установки драйверов на рутокен надо что-то вводить в терминале или нет?
После установки криптопро. Далее по инструкции из википедии
1. Для корректной работы с токеном/смарт-картой обязательно требуется установить:
библиотека libccid, libgost-astra , пакеты pcscd
$ sudo apt install libccid pcscd libgost-astra
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет libgost-astra самой новой версии (0.0.20).
libgost-astra установлен вручную.
Возможно, для исправления этих ошибок вы захотите воспользоваться «apt-get -f install».
Пакеты, имеющие неудовлетворённые зависимости:
libpcsclite1 : Ломает: pcscd ( но он не будет установлен
Зависит: libreadline8 (>= 6.0) но он не может быть установлен
pcsc-tools : Зависит: libpcsc-perl но он не может быть установлен
Рекомендует: libgtk3-perl но он не может быть установлен
pcscd : Зависит: libpcsclite1 (= 1.8.20-1) но 1.9.4-1 будет установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt —fix-broken install», не указывая имени пакета,
(или найдите другое решение).
2. Требуется перезагрузить службы
$ sudo service pcscd restart
Failed to restart pcscd.service: Unit pcscd.service not found.
3. поиск и установка драйвера рутокен.
$ cd /home/user/Загрузки/
user@user6110:
/Загрузки$ sudo apt install ifd-rutokens_1.0.4_amd64.deb
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет ifd-rutokens_1.0.4_amd64.deb
E: Не удалось найти пакет с помощью glob «ifd-rutokens_1.0.4_amd64.deb»
E: Не удалось найти пакет с помощью regex «ifd-rutokens_1.0.4_amd64.deb»
4. повторно устанавливаю драйвер
/Загрузки$ sudo dpkg -i ifd-rutokens_1.0.4_amd64.deb
(Чтение базы данных … на данный момент установлено 181235 файлов и каталогов.)
Подготовка к распаковке ifd-rutokens_1.0.4_amd64.deb …
Распаковывается ifd-rutokens (1.0.4) на замену (1.0.4) …
Настраивается пакет ifd-rutokens (1.0.4) …
5. еще одна попытка перезагрузки служб
/Загрузки$ sudo service pcscd restart
Failed to restart pcscd.service: Unit pcscd.service not found.
6. Попытка посмотреть считыватели
/Загрузки$ /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
7. повторно установка библиотек
/Загрузки$ sudo apt-get install libccid pcscd libpcsclite1
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет libpcsclite1 самой новой версии (1.9.4-1).
libpcsclite1 установлен вручную.
Возможно, для исправления этих ошибок вы захотите воспользоваться «apt-get -f install».
Пакеты, имеющие неудовлетворённые зависимости:
libpcsclite1 : Ломает: pcscd ( = 6.0) но он не может быть установлен
pcsc-tools : Зависит: libpcsc-perl но он не может быть установлен
Рекомендует: libgtk3-perl но он не может быть установлен
pcscd : Зависит: libpcsclite1 (= 1.8.20-1) но 1.9.4-1 будет установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt —fix-broken install», не указывая имени пакета,
(или найдите другое решение).
/Загрузки$ sudo apt-get install pcsc-tools
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет pcsc-tools самой новой версии (1.5.8-1).
Возможно, для исправления этих ошибок вы захотите воспользоваться «apt-get -f install».
Пакеты, имеющие неудовлетворённые зависимости:
opensc : Зависит: opensc-pkcs11 (= 0.22.0-1) но он не будет установлен
Зависит: libreadline8 (>= 6.0) но он не может быть установлен
Рекомендует: pcscd но он не будет установлен
pcsc-tools : Зависит: libpcsc-perl но он не может быть установлен
Рекомендует: libgtk3-perl но он не может быть установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt —fix-broken install», не указывая имени пакета,
(или найдите другое решение).
user@user6110:
/Загрузки$ pcsc_scan
SCardEstablishContext: Service not available.
user@user6110:
/Загрузки$ pcsc_scan
SCardEstablishContext: Service not available.
user@user6110:
/Загрузки$ pcsc_scan
SCardEstablishContext: Service not available.
Источник
Криптопро linux недопустимый дескриптор привязки
Криптопро linux недопустимый дескриптор привязки
Если кто-то уже ранее имел опыт установки КриптоПро на Windows, то спешу вас огорчить: дела с Linux обстоят гораздо хуже.
Почему? Дело в том, что версия КриптоПро для Linux почти лишена графической среды управления, так что даже импорт сертификатов придется выполнять консольными командами (за исключением последней 5-ой версии КриптоПро). Но если вы используете Linux, то данное обстоятельство вас не должно напугать.
Не буду ходить больше вокруг да около, а сразу приступлю к описанию процесса установки и настройки КриптоПро в Ubuntu 18.04. Все описанные далее инструкции справедливы для Rutoken Lite.
1. Скачиваем deb-пакет для установки КриптоПро в Ubuntu
Загрузка доступна с официального сайта КриптоПро в разделе Продукты. Отмечу лишь то, что надо скачивать обязательно сертифицированную версию. В данном материале описана установка и настройка КриптоПро CSP 4.0 R3.
Далее загруженный архив tgz необходимо распаковать.
2. Установка КриптоПро в графическом режиме
Переходим в папку с распакованным архивом и выбираем в контекстном меню команду Открыть в Терминале (в Kubuntu Действия / Открыть Терминал в этой папке). Для запуска установки в КриптоПро в графическом режиме вводим в терминале команду
Появится Мастер установки КриптоПро. Навигация в мастере установки осуществляется при помощи клавиши Tab, выбор чекбоксов осуществляется нажатием пробела. Жмем Next, отмечаем все доступные к установке компоненты, далее жмем Install.
В окне Терминала запустится процесс установки, следует проконтролировать отсутствие ошибок установки. В конце мастер сообщит об успешной установке, после чего следует нажать клавишу ОК.
Кратко о компонентах КриптоПро для Linux:
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
3. Ввод лицензионного кода
Далее мастер предложит ввести код лицензии. Делать это не обязательно. По умолчанию КриптоПро включает стандартную лицензию на три месяца. Проверить срок действия лицензии можно стандартной командой в Терминале
/opt/cprocsp/sbin/amd64/cpconfig -license -view
4. Установка дополнительных файлов поддержки КрптоПро
Если установка КриптоПро запущена не в графическом режиме или при установке выбраны не все компоненты, то следует в обязательном порядке установить следующие пакеты (найти их можно в папке установки КриптоПро с файломinstall_gui.sh):
5. Установка драйверов Рутокен
Rutoken Lite не требует установки дополнительных драйверов. Для установки других типов Рутокена потребуется посетить официальный сайт и установить необходимые драйвера.
Однако для полноценной работы Рутокена потребуется установить дополнительные библиотеки при помощи команды в Терминале:
sudo apt-get install libccid pcscd libpcsclite1 pcsc-tools opensc
Для Rutoken S, JaCarta PKI потребуется установка дополнительных драйверов. Пишите в комментариях, если кому-то нужно расписать данный момент.
6. Перезапуск службы pcscd
Перезапустить указанную службы легко при помощи команды
sudo service pcscd restart
7. Проверка работоспособности Рутокена при помощи фирменных средств производителя
Выполнив команду pcsc_scan в терминале, можно проверить работоспособность подключенного Рутокена. Если картинка такая же, как и на скриншоте, то все работает правильно.
8. Проверка работоспособности Рутокена при помощи встроенных средств КриптоПро
Средства КриптоПро также позволяют сразу же проверить работоспособность присоединенных носителей. Команда в терминале
/opt/cprocsp/bin/amd64/csptest -card -enum -v -v
9. Просмотр и Импорт в Личное хранилище сертификатов с Рутокена
Для просмотра личных сертификатов, имеющихся на подключенных контейнерах, выполняем команду в Терминале
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc
Для импорта всех личных сертификатов со всех подключенных носителей выполняем команду в Терминале
/opt/cprocsp/bin/amd64/csptestf -absorb -cert
10. Просмотр личных сертификатов в хранилище
Убедиться в успешном импорте сертификатов с Рутокена в Личное хранилище сертификатов можно при помощи команды в терминале
/opt/cprocsp/bin/amd64/certmgr -list -store uMy
Для удаления сертификата из личного хранилища сертификатов следует выполнить команду в Терминале:
/opt/cprocsp/bin/amd64/certmgr -delete -store umy
Далее терминал предложит указать номер удаляемого сертификата.
На скриншоте выше вы видите, что удостоверяющим центром, который выпустил мой сертификат, является ООО «Компания Тензор». Вот для этой компании и надо искать и устанавливать корневые сертификаты. Как установить корневые сертификаты, читайте в следующем пункте.
11. Импорт коренвых сертификатов в хранилище доверенных корневых сертификатов
Вначале скопируем кореные сертификаты в отдельную папку. Затем в контекстном меню, перейдя в эту папку, выполним команду Открыть в терминале. Далее произведем установку командой в Теримнале:
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store uroot -file «uc_tensor_44-2017.cer»
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store uroot -file «uc_tensor-2018_gost2012.cer»
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store uroot -file «uc_tensor-2017.cer»
12. Установка КриптоПро ЭЦП Browser plug-in
Для установки КриптоПро ЭЦП Browser plug-in потребуется утилита alien. Установим ее командой:
sudo apt install alien
Далее скачиваем установочный пакет КриптоПро ЭЦП Browser plug-in с официального сайта КриптоПро.
Распаковываем архив cades_linux_amd64.zip и переходим перейти в каталог с распакованными файлами, выполним команду Открыть в терминале и далее выполним команды для преобразования rpm-пакетов в deb-пакеты:
alien -dc cprocsp-pki-2.0.0-amd64-cades.rpm
alien -dc cprocsp-pki-2.0.0-amd64-plugin.rpm
Далее устанавливаем deb-пакеты:
sudo alien -kci cprocsp-pki-cades_2.0.0-2_amd64.deb
sudo alien -kci cprocsp-pki-plugin_2.0.0-2_amd64.deb
Обратите внимание: при установке этих двух пакетов не должно быть ошибок.
13. Установка расширения браузера КриптоПро ЭЦП Browser plug-in
Далее необходимо в используемом вами браузере установить расширение КриптоПро ЭЦП Browser plug-in. Cсылка на расширение для Google Chrome
14. Тестирование работоспособности подписи
Если вы все сделали правильно, то КриптоПро настроен. Проверить подпись можно по ссылке
15. Доополнительное ПО для Рутокена
Если вам понадобятся дополнительные плагины или драйвера для Рутокена, то скачать вы всегда их сможете с официального сайта производителя по ссылке, которая указана ниже:
На этом все. Как выясняется, установка КриптоПро в Ubuntu Linux 18.04 не такая уж сложная.
Понравилась статья? Не очень? Тогда возможно, что вы напишите свою гораздо лучше. Просто перейдите по ссылке Размещение статей и ознакомьтесь с правилами публикации статей на сайте MultiBlog67.RU .
Работа с КриптоПро на linux сервере
Ссылки
Лицензия
Для установки другой лицензии (под root):
Корневые сертификаты
Просмотр корневых сертификатов
Добавление корневых сертификатов (под root) из файла cacer.p7b
Необходимо последовательно добавить все сертификаты
Сертификаты
Список установленных сертификатов
certmgr -list , например:
Добавление реального сертификата
Добавить только сертификат (только проверка ЭЦП):
Добавление реального сертификата с привязкой к закрытому ключу и возможностью подписывать документы
Закрытый ключ состоит из шести key-файлов:
Способ с дискетой или флешкой
Скопировать в корень дискеты или флэшки сертификат и приватный ключ (из каталога 999996.000 , 999996 — название (alias) контейнера):
Выполнить команду по копированию ключа с флэшки на диск, ключ попадет в пользовательское хранилище My .
gate@example.com — то, что прописано в поле E сертификата (можно посмотреть командой keytool —printcert -file /path/to/cert/client.cer ):
С жесткого диска
Скопировать приватный ключ в хранилище (контейнер), где — имя пользователя linux:
Поставить «минимальные» права:
Узнать реальное название контейнера:
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище My :
Если следующая ошибка, нужно узнать реальное название контейнера (см. выше):
Установить сертификат УЦ из-под пользователя root командой:
Проверка успешности установки закрытого ключа
Добавление тестового сертификата
Ввести пароль на контейнер test123 .
Ввести пароль на контейнер. По-умолчанию: 12345678
Удаление сертификата
Проверка сертификата
Просмотр всех атрибутов сертификата
В cryptcp нет необходимых инструментов для получения всех атрибутов сертификата. Поэтому следует использовать openssl , но настроив его.
Получаем SHA 1 хеши:
В цикле извлекаем сертификаты:
Настройка openssl для поддержки ГОСТ:
В файл /etc/ssl/openssl.cnf
Экспорт сертификатов на другую машину
Закрытые ключи к сертификатам находятся тут: /var/opt/cprocsp/keys . Поэтому эти ключи переносятся просто: создаем архив и переносим на нужную машину в тот же каталог.
Экспорт самих сертификатов (если их 14):
Переносим эти файлы на машину и смотрим, какие контейнеры есть:
И как обычно, связываем сертификат и закрытый ключ:
Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Если все успешно:
Если нет закрытого ключа, то просто ставим сертификат:
Подписание документа ЭЦП
Пример создания ЭЦП (по SHA1 Hash):
[ReturnCode: x] | Описание | Возвращаемый код завершения в баше $? |
---|---|---|
успешно | ||
0x8010006b | Введен неправильный PIN | 107 |
0x2000012d | Сертификат не найден | 45 |
0x20000065 | Не удалось открыть файл | 101 |
Проверка подписи ЭЦП
Для верифицирования сертификатов нужен сертификат удостоверяющего центра и актуальный список отзыва сертификатов, либо настроенный для этого revocation provider.
Корневой сертификат УЦ, список отзыва сертификата является одним из реквизитов самого сертификата.
Контрагенты когда открывают подписи в КриптоАРМ используют revocation provider, он делает проверки отзыва сертификата онлайн. Как реализована проверка в Шарепоинте не знаю. Знаю только что используется библиотека Крипто.Net
Проверка конкретной подписи из локального хранилища по его хешу:
Проверить, взяв сертификат из file1.sig , подпись файла file2.sig . Практически, надо использовать один и тот же файл:
[ReturnCode: x] | Текст | Описание | Возвращаемый код завершения в баше $? |
---|---|---|---|
Успешно | |||
0x80091004 | Invalid cryptographic message type | Неправильный формат файла | 4 |
0x80091010 | The streamed cryptographic message is not ready to return data | Пустой файл | 16 |
Получение исходного файла
Получение исходного файла (сообщения):
Будет ругаться на сертификат (так как не будет проверки), но подпись удалит. Вариант с проверкой:
Источник