КриптоПро CSP 3.x под Linux и как с ним работать

Если Вы читаете данный текст, то Вы, наверное, уже знаете, что такое КриптоПро CSP и зачем он нужен. На всякий случай, приведу краткое описание с официального сайта:

КриптоПро CSP 3.6, 3.0, 2.0 имеют сертификат соответствия ФСБ России и могут использоваться для формирования ключей шифрования и ключей электронной цифровой подписи, шифрования и имитозащиты данных, обеспечения целостности и подлинности информации, не содержащей сведений, составляющих государственную тайну.

В данной же статье я напишу, как можно установить КриптоПро CSP под Linux, и как с ним дальше работать.

Установка и настройка КриптоПро CSP 3.x под Linux

Рекомендованный порядок установки rpm пакетов:

rpm -ihv lsb-cprocsp-base-3.6.1-4.noarch.rpm

rpm -ihv lsb-cprocsp-rdr-64-3.6.1-4.x86_64.rpm

rpm -ihv lsb-cprocsp-kc1-64-3.6.1-4.x86_64.rpm

rpm -ihv lsb-cprocsp-capilite-64-3.6.1-4.x86_64.rpm

Правка системной переменной PATH чтобы не прописывать целиком путь до команд cryptopro

export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/root/bin:/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64

Добавляем лицензию

cpconfig -license -set ваша_лицензия

Проверяем лицензию

cpconfig -license -view

Установка хранилища и ключей для КриптоПро CSP

1. Создаём хранилище

cpconfig -hardware reader -add HDIMAGE store

2. Копируем ключи из папки в хранилище.

cp -a /root/work/CryptoProKeys/RaUser-5.000/* /var/opt/cprocsp/keys/root/

root — пользователь из под которого будем шифровать.

3. Проверяем валидность установки ключей и id хранилища.

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc

id хранилища — понадобится нам для следующего пункта.

4. Устанавливаем сертификат в хранилище.

/opt/cprocsp/bin/amd64/certmgr -inst -cont ‘\\.\HDIMAGE\RaUser-56a8ea0e-1d0d-4a9a-8005-d32955694630’ -file ИМЯ.cer ‘\\.\HDIMAGE\RaUser-56a8ea0e-1d0d-4a9a-8005-d32955694630’ — id_хранилища_из_пункта_3

5. Проверяем установку

csptest -keyset -check -cont ‘\\.\HDIMAGE\RaUser-56a8ea0e-1d0d-4a9a-8005-d32955694630’

Должно вернуть что-то типа:

CSP (Type:71) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Linux CPU:AMD64 FastCode:NoHardwareSupport. CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Linux CPU:AMD64 FastCode:NoHardwareSupport. AcquireContext: OK. HCRYPTPROV: 529532115 GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP Container name: «RaUser-56a8ea0e-1d0d-4a9a-8005-d32955694630»

Signature key is not available. Exchange key is available. HCRYPTKEY: 0x1f915a23 Check key passed. Certificate in container matches AT_KEYEXCHANGE key.

Keys in container:

exchange key

Total: [ErrorCode: 0x00000000]

6. Устанавиваем crl сертификат. Скачать его можно отсюда. Ставится командой:

certmgr -inst -crl -store ca -file путь_к_файлу

7 Ставим корневой сертификат

certmgr -inst -store root -file root.cer

certmgr -inst -store root -file cacer.p7b (6 по очереди)

Шифрование и расшифровка файлов c помощью утилиты cryptcp

Чтобы зашифровать файл

/opt/cprocsp/bin/amd64/cryptcp -encr -f «имя_сертификата.cer» nonencrypted encrypted

Чтобы расшифровать файл

/opt/cprocsp/bin/amd64/cryptcp -decr -dn E=мыло@из_сертификата.ru -start encrypted decrypted

Подпись и сверка подписи c помощью утилиты cryptcp

Чтобы подписать файл

cryptcp -sign -dn «E=мыло@из_сертификата.ru» -nocert -der nonencrypted signedfile

Чтобы проверить подпись

cryptcp -verify -dn «E=мыло@из_сертификата.ru» signedfile

  • Кто-то 03.04.2015

    Спасибо, чувак!

  • Аноним 04.04.2018

    Да уж, умный… Скопировал текст с WiKi, красавчик

  • Truper 18.01.2019

    Когда я это написал, этой информации в вики не было ))
    Это личный опыт, после долгой переписки с их техподдержкой.

Добавить комментарий