КриптоПро
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д.
Загрузка
Архив с программным обеспечением (КриптоПро CSP 3.6 R3) можно загрузить после предварительной регистрации:
- linux-ia32.zip (8,8 МБ, для i586)
- linux-amd64.zip (9,1 МБ, для x86_64)
Установка
- Распакуйте архив и перейдите в распакованную папку
- Проверьте доступность репозиториев для установки или установите вручную пакеты lsb, pcsc-lite, libpcsclite-devel
- Под правами пользователя root выполните:
apt-get install \ lsb-cprocsp-base-3.6.1-4.noarch.rpm \ lsb-cprocsp-rdr-3.6.1-4.i486.rpm lsb-cprocsp-capilite-3.6.1-4.i486.rpm \ lsb-cprocsp-kc1-3.6.1-4.i486.rpm
Примечания:
- Для КриптоПро CSP 3.6 R2 потребуется установить пакет cprocsp-compat-altlinux-1.0.0-1.noarch.rpm
- Для установки cprocsp-rdr-gui может понадобиться libXm.so.3 (libopenmotif3).
Прописывание путей к исполняемым файлам
Перед использованием КриптоПро в консоли или в виде файла /etc/profile.d/cryptopro.sh выполните:
export PATH="$PATH:$(ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')"
Проверка лицензии
Проверить срок истечения лицензии можно командой (обратите внимание на последнюю строку):
# /opt/cprocsp/sbin/*/cpconfig -license -view
Server license:
36360-U0030-01C97-HQ92Y-1EY1K
Expires: 3 month(s) 0 day(s)
Client license:
36360-U0030-01C97-HQ92Y-1EY1K
Expires: 3 month(s) 0 day(s)
Для установки другой лицензии выполните (под root):
/opt/cprocsp/sbin/*/cpconfig -license -set <номер лицензии>
Поддержка шифрования по ГОСТ в OpenSSL
Взято из инструкции http://www.cryptocom.ru/products/openssl-1-config-en.html и http://habrahabr.ru/post/189352/
1. Установите пакет openssl-engines:
apt-get install openssl-engines
2. Измените конфигурационный файл OpenSSL. Для этого создайте скрипт gost-for-openssl следующего содержания:
# Adapt OpenSSL for GOST cryptography support
# See http://www.cryptocom.ru/products/openssl-1-config-en.html
. shell-version
. shell-ini-config
shell_ini_config_prefix=""
cfg="/etc/openssl/openssl.cnf"
grep -q '^openssl_conf' $cfg || sed -i '1iopenssl_conf = openssl_def' $cfg
if [ $libshell_version -ge 3 ] ; then
ini_config_set $cfg openssl_def engines engine_section
ini_config_set $cfg engine_section gost gost_section
ini_config_set $cfg gost_section engine_id gost
ini_config_set $cfg gost_section default_algorithms ALL
ini_config_set $cfg gost_section CRYPT_PARAMS id-Gost28147-89-CryptoPro-A-ParamSet
else
grep -q 'Gost' $cfg && exit
cat >> $cfg << _EOF_
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
_EOF_
fi
Запустите скрипт (под правами root):
sh gost-for-openssl
3. Проверьте, доступны ли шифры ГОСТ для OpenSSL:
$ openssl ciphers|tr ':' '\n'|grep GOST
GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89
$ openssl req -newkey gost2001 -keyout server.key -out server.csr
Generating a 2048 bit GOST2001 private key
Error Generating Key
139962943858376:error:8008A077:lib(128):PKEY_GOST01_PARAMGEN:no
parameters set:gost_pmeth.c:293: