Astra Linux 1.5 + HSM


Конфигурация:

Astra Linux 1.5 Special Edition (Смоленск) - Debian-based x64
КриптоПро CSP 4.0 R3 (4.0.9944)
КриптоПро HSM 2.0
ключ доступа к КриптоПро HSM на жестком диске


Последовательность необходимых действий:

  1. Скачать архив с КриптоПро CSP 4.0 R3, распаковать этот архив:

    tar xvf linux-amd64_deb.tgz

    и установить минимальный набор пакетов КриптоПро CSP:

    cd linux-amd64_deb
    # ./install.sh kc2

  2. Установить пакет cprocsp-stunnel из состава дистрибутива КриптоПро CSP 4.0 R3:

    # dpkg -i cprocsp-stunnel-64_4.0.9944-5_amd64.deb

  3. Добавить в конфигурационный файл /etc/opt/cprocsp/config64.ini секции криптопровайдеров КриптоПро HSM в соответсвующем разделе [Defaults\Provider]:

    [Defaults\Provider\"Crypto-Pro HSM CSP"]
    "Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
    "Function Table Name" = "CPSRV_GetFunctionTable"
    Type = 75
    Channel = ".clientk2"

    [Defaults\Provider\"Crypto-Pro GOST R 34.10-2012 HSM CSP"]
    "Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
    "Function Table Name" = "CPSRV_GetFunctionTable"
    Type = 80
    Channel = ".clientk2"

    [Defaults\Provider\"Crypto-Pro GOST R 34.10-2012 Strong HSM CSP"]
    "Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
    "Function Table Name" = "CPSRV_GetFunctionTable"
    Type = 81
    Channel = ".clientk2"

  4. Перезапустить службу cprocsp:

    # service cprocsp restart

  5. Экспортировать в файл корневой сертификат КриптоПро HSM из ключевого контейнера ключа доступа:

    # /opt/cprocsp/bin/amd64/csptestf -keys -cont cont_name -saveext /root/hsmroot.p7b

    Имя ключевого контейнера можно вывести командой:

    # /opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc

  6. Установить корневой сертификат КриптоПро HSM:

    # /opt/cprocsp/bin/amd64/certmgr -inst -store root -file /root/hsmroot.p7b

  7. Скопировать ключевой контейнер для доступа к Криптопро HSM по каналу K2 в директорию /var/opt/cprocsp/keys/root/:

    # cp -R ~/key.000 /var/opt/cprocsp/keys/root/

  8. Установить сертификат ключа доступа в хранилище личное с привязкой к ключевому контейнеру:

    # /opt/cprocsp/bin/amd64/csptestf -absorb -certs

  9. Экспортировать сертификат ключа доступа в файл:

    # /opt/cprocsp/bin/amd64/certmgr -export -dest /root/user.cer

  10. Создать файл /etc/opt/cprocsp/stunnel/stunnel.conf со следующим содержимым:

    pid = /var/opt/cprocsp/tmp/stunnel-k2.pid
    output = /var/log/stunnel-k2.log
    socket = r:TCP_NODELAY=1
    debug = 0
    max_clients =25
    for_hsm = yes

    [clientk2]
    client = yes
    connect = 192.168.0.1:1501
    accept = /var/opt/cprocsp/tmp/.clientk2
    cert = /root/user.cer
    pincode =11111111

    В данном случае IP-адрес Криптопро HSM 192.168.0.1, пин-код ключевого контейнера 11111111 (восемь единиц).

  11. Запустить процесс stunnel_fork:

    # /opt/cprocsp/sbin/amd64/stunnel_fork

  12. Проверить доступность криптопровайдеров Криптопро HSM:

    /opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro HSM CSP" -provtype 75 -info
    /opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 HSM CSP" -provtype 80 -info
    /opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 Strong HSM CSP" -provtype 81 -info