КриптоПро 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
Спасибо, чувак!
Да уж, умный… Скопировал текст с WiKi, красавчик
Когда я это написал, этой информации в вики не было ))
Это личный опыт, после долгой переписки с их техподдержкой.