Работа с КриптоПро на linux сервере

Работа с КриптоПро на linux сервере Электронная цифровая подпись

Установка пакетов[править]

В примерах я буду использовать виртуальную машину с CentOS 7, но ты не ограничен в выборе аппаратного обеспечения и дистрибутива Linux. Все действия и команды будут такими же.

Первым делом создадим локального пользователя, под которым будет работать ПО, использующее подпись документов.

# apt-get install cryptopro-preinstall
Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).

https://www.youtube.com/watch?v=ytabout

Примечание:
Пакет cryptopro-preinstall вытягивает зависимости libpangox-compat, opensc, pcsc-lite, pcsc-lite-rutokens, pcsc-lite-ccid, newt52.

$ 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-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 из репозитория)

Обновление КриптоПро[править]

Внимание! Пакеты КриптоПро становятся нерабочие при их обновлении. Рекомендуется удалить все пакеты и установить пакеты снова.

Для обновления КриптоПро необходимо:

  1. Запомнить текущую конфигурацию:
    • набор установленных пакетов:
    • настройки провайдера (для простоты можно сохранить /etc/opt/cprocsp/config[64].ini).
  2. Удалить штатными средствами ОС все пакеты КриптоПро:
    # apt-get remove lsb-cprocsp-base
    
  3. Установить аналогичные новые пакеты КриптоПро.
  4. При необходимости внести изменения в настройки (можно просмотреть diff старого и нового /etc/opt/cprocsp/config[64].ini).
  5. Ключи и сертификаты сохраняются автоматически.
# apt-get remove lsb-cprocsp-base
Примечание:

Читайте также:  Способы проверки эцп

Если появляется

support_mutex_open("registry_lock") failed:: Permission denied

выполните после удаления

# rm -f /var/opt/cprocsp/tmp/.registry_lock

Работа с сертификатами в token-manager[править]

token-manager предоставляет графический интерфейс управления ключевыми носителями и сертификатами. С помощью этой программы можно:

  • просматривать подключенные ключевые носители (токены);
  • изменять PIN-код ключевого носителя;
  • устанавливать, просматривать и удалять сертификаты;
  • просматривать и устанавливать лицензию КриптоПро.
# apt-get install token-manager

Запустить token-manager можно:

  • из командной строки:
    $ python /usr/bin/token-manager.py
    
  • в рабочей среде Mate: Меню Система ▷ Администрирование ▷ Ключевые носители и сертификаты;
  • в рабочей среде KDE5: Меню запуска приложений ▷ Настройки ▷ Ключевые носители и сертификаты.

Stub.png

Для просмотра корневых сертификатов, необходимо выбрать в меню token-manager пункт Операции ▷ Просмотр корневых сертификатов.

Сертификат будет установлен в локальное хранилище сертификатов и будет связан с закрытым ключом на токене.

Сертификат будет установлен в локальное хранилище сертификатов, но не будет связан ни с каким закрытым ключом. Этот сертификат можно использовать для проверки подписи.

Просмотр корневых сертификатов

certmgr -list-store uroot

В более старых версиях вместо

uroot

следует использовать

root

:

certmgr -list-store root

Добавление корневых сертификатов (под root) из файла cacer.p7b

sudo certmgr -inst-all-store uroot -file cacer.p7b

Необходимо последовательно добавить все сертификаты

Прописывание путей к исполняемым файлам[править]

Утилиты КриптоПро расположены в директориях /opt/cprocsp/sbin/{amp}lt;название_архитектуры{amp}gt; и /opt/cprocsp/bin/{amp}lt;название_архитектуры{amp}gt;.

Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:

  • после установки пакета cryptopro-preinstall начните новый сеанс пользователя в консоли;

Работа с КриптоПро на linux сервере

Примечание:
Не работает для суперпользователя.

  • выполните от имени пользователя, который будет запускать команды (будет действовать до закрытия терминала):
exportPATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr 'n'':')$PATH"

Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr

Читайте также:  5.8 Смена PIN-код на Рутокен и форматирование.

Проверка лицензии[править]

$ 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».

# cpconfig -license -set {amp}lt;серийный_номер{amp}gt;

https://www.youtube.com/watch?v=ytcreators

Примечание:
Серийный номер следует вводить с соблюдением регистра символов.

Подписание документа ЭЦП

cryptcp -sign(КПС1)-nochain-pin pincode src.txt dest.txt.sig
  • nochain – отменяет проверку цепочки сертификатов

  • pin – пин-код

  • КПС1 – критерий поиска сертификата

Пример создания ЭЦП (по SHA1 Hash):

cryptcp -sign-thumbprint 255c249150efe3e48f1abb3bc1928fc8f99980c4 -nochain-pintest test.txt test.txt.sig
[ReturnCode: x] Описание Возвращаемый код завершения в баше $?
0 успешно 0
0x8010006b Введен неправильный PIN 107
0x2000012d Сертификат не найден 45
0x20000065 Не удалось открыть файл 101

Прописывание путей к исполняемым файлам[править]

Получение исходного файла (сообщения):

cryptcp -verify-nochain file.sig file.txt

Будет ругаться на сертификат (так как не будет проверки), но подпись удалит. Вариант с проверкой:

cryptcp -verify-nochain-f file.sig file.sig file.txt

Оцените статью
ЭЦП Эксперт
Добавить комментарий