Установка и работа КриптоПРО CSP v 4.* 5.*

Есть ли где описание, как настроить работу КриптоПРО 5.* с Рутокен ЭЦП по pkcs11? Плагин Рутокена и Госуслуг удалось настроить, а вот cptools показывает пустой список считывателей.

Какую версию СКЗИ Вы используете?

Каким образом Вы производите установку СКЗИ - запускаете ли постинсталл сценарий или обходитесь только копированием файла конфигурации?

Какой токен Вы используете?

Сама библиотека устанавливается:

$ ls -l /opt/cprocsp/lib/amd64 | grep -i pkcs
lrwxrwxrwx 1 root root 20 июн 3 2022 libcppkcs11.so → libcppkcs11.so.4.0.5
lrwxrwxrwx 1 root root 20 июн 3 2022 libcppkcs11.so.4 → libcppkcs11.so.4.0.5
-rw-r–r-- 1 root root 1431260 июн 3 2022 libcppkcs11.so.4.0.5

Версия 5.0.12000 с репозитория linuxbuh, немного модифицированного под ванильную генту: При распаковке cryptopro проблемы с правами distdir · Issue #5 · linuxbuh/linuxbuh · GitHub

Запускаю сервис /etc/init.d/cprocsp start и после bash /etc/opt/cprocsp/cprocsp_postinstal_all_scripts.sh

Использую Рутокен ЭЦП 3.0

Библиотека установлена, USE-флаги: cptools ifd-rutokens lsb-capilite lsb-kc1 lsb-kc2 lsb-pkcs11 lsb-rcrypt lsb-rdr noarch-lsb-base noarch-lsb-ca-certs rdr-cryptoki rdr-gui-gtk rdr-pcsc rdr-rutoken -apache-modssl -curl -ipsec-genpsk -ipsec-ike -lsb-rdr-accord -lsb-rdr-ancud -lsb-rdr-crypton -lsb-rdr-maxim -lsb-rdr-sobol -lsb-rdr-vityaz -noarch-altlinux -noarch-drv-devel -noarch-ipsec-devel -noarch-lsb-devel -noarch-lsb-import-ca-certs -noarch-suse -noarch-xer2print -rdr-cloud -rdr-cloud-gtk -rdr-cpfkc -rdr-edoc -rdr-emv -rdr-esmart -rdr-infocrypt -rdr-inpaspot -rdr-jacarta -rdr-kst -rdr-mskey -rdr-novacard -rdr-relay -rdr-rosan -src-accord_random -src-cprocsp-drv -src-ipsec-esp -src-sobol -stunnel

Но я сейчас смотрю, и /etc/init.d/cprocsp просто не рабочий, из-за отсутствия команд pidofproc и start_daemon.

P.S. Скрипт /etc/init.d/cprocsp я поправил, теперь cryptsrv запускается. Результат выполнения постинсталл сценария: КриптоПРО для Gentoo · GitHub

Команда /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view отображает:

Nick name: Aktiv Rutoken ECP 00 00
Connect name:
Reader name: Aktiv Rutoken ECP 00 00

Но в cptools считыватель не виден и через PKCS#11 интерфейс КриптоПРО не видны сертификаты.

Рутокен ЭЦП в операционных системах GNU/Linux - Портал документации Рутокен - Сервер документации Рутокен (rutoken.ru)

Проверка наличия сертификатов и ключевых пар на Рутокен ЭЦП

Перед запуском процесса проверки наличия сертификатов и ключевых пар на Рутокен ЭЦП загрузите и установите библиотеку PKCS#11, а также определите путь до библиотеки librtpkcs11ecp.so.

Для того чтобы загрузить библиотеку PKCS#11:

С этим проблем нет, родной Рутокен PKCS#11 сертификаты видит, Рутокен Плагин в браузере работает и даже в Госуслуги заходит. А вот для налоговой уже КриптоПРО нужен.

На Devuan Testing настраивал, довольно спокойно заработало, теперь пытаюсь на Gentoo.

Т.е. библиотеку PKCS#11 установили и по этим путям

/opt/aktivco/rutokenecp/x86_64/librtpkcs11ecp.so
/usr/lib64/librtpkcs11ecp.so

она у Вас присутствует?

Да, но только по пути /usr/lib64/librtpkcs11ecp.so, в /opt/aktivco/rutokenecp/x86_64/librtpkcs11ecp.so не ставил. Сейчас сделал на неё ссылку, но не помогло.

Смотрю *.deb-пакет, сама библиотека лежит в:
/opt/aktivco/rutokenecp/amd64/
в
/usr/lib64/
ссылка на /opt

Смотрю *.rpm-пакет, сама библиотека лежит в:
/opt/aktivco/rutokenecp/x86_64/
в
/usr/lib64/
ссылка на /opt

Поэтому, если библиотека в
/usr/lib64/
то тогда всё норм.

Тогда остаётся проверить постинстал сценарий СКЗИ, может там что-то не хватило?

Что скажет?

$ grep -n librtpkcs11ecp.so /etc/opt/cprocsp/config64.ini
72:pkcs11_dll = "librtpkcs11ecp.so"

Ага, пусто, видимо этого и не хватает, но не понятно, где постскрипт должен заполнять это значение

Следует разобраться :face_with_raised_eyebrow:

Это, похоже, в блоке [KeyDevices\cryptoki], но единственное упоминание, это установка cprocsp-rdr-cryptoki, который установлен.

$ grep -B2 librtpkcs11ecp.so /etc/opt/cprocsp/config64.ini
[KeyDevices\cryptoki_rutoken\"PNP cryptoki"\Default]
 pkcs11_dll = "librtpkcs11ecp.so"

Наполняет конфиг пост-инсталл сценарий этого пакета:
cprocsp-rdr-cryptoki-64-5.0.12000-6

Использую файл из linuxbuh/cprocsp_postinstal_all_scripts.sh at master · linuxbuh/linuxbuh · GitHub , там этого нет.

Угу, поэтому и пишу, что:

Нашёл и добавил, чего не хватает, теперь, судя по strace cptools успешно подгружает библиотеку рутокена, правда, пока всё равно ничего не отображается. В системных логах ошибка
<csp>OpenContainer!OpenContainer kcar_open fail (0x80090016).

P.S. А вот /opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc -fqcn -machinekeyset ключи видит.

Хех, сходил, прикупил " Рутокен ЭЦП 3.0 3100", на неделе буду тестировать…

Есть подозрение, что во время попытки настроек слетела лицензия, по крайней мере в “Срок действия лицензии” отображается “Данные повреждены”. Если я не забыл сохранить код на компе с Devuan, то, возможно, проблема решится.

Вам стоит посмотреть в сторону содержимого post install этих пакетов:

cprocsp-rdr-pcsc-64-5.0.12000-6.x86_64.rpm
cprocsp-rdr-rutoken-64-5.0.12000-6.x86_64.rpm

Сверить, есть ли сценарий в post install в ебилде.

После установки напрямую через пакетный менеджер, КриптоПро начинал видеть носители и содержимое.

Это тоже следствие не корректного выполнения какой то из части сценария postinstall. Путем экспериментов по установке выяснилось. Если установку производить полностью из rpm/deb пакетов, сценарии которые выполняются в процессе установки генерируют пробный период и ошибки с лицензией нет.