Astra Linux 1.5 + HSM + Рутокен S


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

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


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

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

    tar xvf linux-amd64_deb.tgz

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

    cd linux-amd64_deb
    # ./install.sh kc2

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

    # dpkg -i cprocsp-stunnel-64_4.0.9944-5_amd64.deb cprocsp-rdr-pcsc-64_4.0.9944-5_amd64.deb cprocsp-rdr-rutoken-64_4.0.9944-5_amd64.deb ifd-rutokens_1.0.1_amd64.deb

  3. Вставить установочный диск ОС в привод и выполнить команды добавления репозитория на этом диске:

    # apt-cdrom add
    # apt-get update

  4. Установить пакеты pcscd и libccid из установочного диска ОС:

    # apt-get install pcscd libccid

  5. Добавить в конфигурационный файл /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"

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

    # service cprocsp restart
    # service pcscd restart

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

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

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

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

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

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

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

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

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

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

  11. Создать файл /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 =12345678

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

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

    # /opt/cprocsp/sbin/amd64/stunnel_fork

  13. Проверить доступность криптопровайдеров Криптопро 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