В Ульяновск.BSD есть все необходимые программные компоненты для работы с носителями ключей электронных подписей. Также в Ульяновск.BSD может быть установлен и криптопровайдер, например, КриптоПро CSP. Однако, в настоящее время невозможно напрямую использовать носители ключей электронных подписей на портале госуслуг из-за одной существенной проблемы. Плагин для работы с электронными подписями на портале госуслуг разрабатывается Ростелекомом и существует только для операционных систем Windows, Mac OS и Linux. Исходные коды плагина недоступны. Однако, существует по меньшей мере три варианта работы на портале госуслуг с использованием электронных подписей.
Первый вариант - это использование пользовательского Linux-окружения на базе linuxulator и Ubuntu. Такая возможность появилась с выходом версии базовой системы FreeBSD 12.2. Процесс подробно описан в документах «Как установить Google Chrome, Chromium ГОСТ, Яндекс.Браузер?» и «Как установить КриптоПро CSP, Плагин госуслуг, КриптоПро ЭЦП browser plug-in?».
Второй вариант – это работа через терминальный сервер Windows. Такой вариант подходит, если необходима работа на портале госуслуг одновременно нескольким пользователям. Если в организации есть терминальный сервер Windows, то достаточно установить серверную версию криптопровайдера, например, КриптоПро CSP, и использовать обычный браузер, например Mozilla Firefox. При этом пользователь Ульяновск.BSD вставляет носитель ключа электронной подписи (например, Рутокен S) в свободный USB-порт своей машины и подключается к терминальному серверу Windows с помощью rdesktop. Подробнее об этом написано в документе «Как подключиться к удалённому рабочему столу ОС Windows?» При подключении с параметром -r scard носитель ключа электронной подписи пробрасывается в текущую терминальную сессию. И КриптоПро CSP на терминальном сервере работает с носителем так, как если бы он был подключен непосредственно в USB-порт терминального сервера.
Третий вариант – использование виртуальной машины с операционной системой Linux (или Windows если есть возможность и желание). О том как запустить виртуальную машину написано в документах «Как установить ОС Windows 7/8/10 на виртуальную машину в гипервизоре bhyve?», «Как установить ОС ROSA Fresh (Linux) на виртуальную машину в гипервизоре bhyve?» и «Как установить ОС ROSA Fresh (Linux) на виртуальную машину в VirtualBox?» В случае виртуальной машины с ОС Windows справедливо всё, что написано во втором варианте. Рассмотрим использование виртуальной машины с ОС ROSA Fresh (Linux).
Допустим, что виртуальная машина с ОС ROSA Fresh уже настроена и работает. А также настроен проброс в виртуальную машину отдельного USB-контроллера, если будут использоваться носители ключей электронных подписей, подключающиеся в USB-порт (для виртуальной машины в гипервизоре bhyve).
Для работы с носителями ключей электронных подписей необходимо установить криптопровайдер КриптоПро CSP 4.0 R3 (несертифицированный). Для его установки надо зарегистрироваться на сайте https://www.cryptopro.ru и со страницы загрузки https://www.cryptopro.ru/products/csp/downloads скачать версию КриптоПро CSP 4.0 для Linux (x64, rpm) (файл linux-amd64.tgz). Нужно распаковать полученный архив, перейти в распакованную папку и выполнить установку с правами суперпользователя. Если файл находится в каталоге «Загрузки», то в терминале необходимо выполнить следующие команды:
cd ~/Загрузки/
tar -xvf linux-amd64.tgz
cd linux-amd64/
sudo -s
./install.sh
urpmi cprocsp-rdr-pcsc-* lsb-cprocsp-pkcs11-*
Также необходимо установить пакеты поддержки устройств (токенов, ридеров, плат расширения). Эти пакеты находятся в архиве КриптоПро CSP, их названия начинаются с cprocsp-rdr-. При необходимости использования определённого устройства (например, Рутокен S) следует установить соответствующий пакет (cprocsp-rdr-rutoken-*). Также в архиве есть пакеты с драйверами, их названия начинаются с ifd-*. Их также следует установить для использования соответствующего устройства (ifd-rutokens-*). Более новую версию драйвера для Рутокен S можно скачать с сайта производителя. Таким образом в терминале необходимо выполнить следующую команду:
urpmi cprocsp-rdr-rutoken-*
urpmi ifd-rutokens*
Дополнительно необходимо установить графические компоненты:
urpmi cprocsp-rdr-gui-gtk-*
Подробнее об установке криптопровайдера КриптоПро CSP в ОС ROSA Fresh можно узнать в соответствующей инструкции.
Далее необходимо включить и запустить сервис pcscd (после перезагрузки сервис будет запускаться автоматически):
systemctl enable pcscd.service
systemctl start pcscd.service
После этого можно присоединить носитель ключа электронной подписи и проверить, что он опознан:
/opt/cprocsp/bin/amd64/list_pcsc
Для Рутокен S ответ должен быть приблизительно таким:
Aktiv Co. Rutoken S 00 00
Далее необходимо узнать пути к контейнерам на носителе:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn
И установить сертификат из требуемого контейнера:
/opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\имя_требуемого_контейнера' -store uMy
В завершении необходимо скачать плагин ifcplugin (можно использовать и более новую версию с сайта госуслуг), установить его, создать ссылку на libcppkcs11.so и удалить всё в каталоге /var/log/ifc/:
urpmi ifcplugin-*
ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4
/usr/lib64/mozilla/plugins/lib/libcppkcs11.so
rm -R /var/log/ifc/*
А в конфигурационный файл /etc/ifc.cfg добавить следующий блок:
{ name = "CryptoPro CSP";
alias = "cryptoprocsp";
type = "pkcs11";
lib_linux = "libcppkcs11.so";
}
Плагин должен автоматически подключиться в браузере с поддержкой NPAPI-плагинов, например, в Mozilla Firefox ESR. На странице настроек плагина в браузере необходимо выбрать Always Activate, чтобы плагин загружался всегда.
Для запуска браузера можно создать ярлык непосредственно в Ульяновск.BSD и запускать Firefox с помощью ssh и X11Forwarding, не открывая окна виртуальной машины. Подробнее об этом в документе «Как на рабочем столе Ульяновск.BSD запустить приложение с другой Linux/Unix-машины?»
Примечание 1: КриптоПро CSP - это платный программный продукт. После первичной установки он будет работать 90 дней (так называемый trial-период). Затем необходимо приобрести лицензию. Приобретенный лицензионный ключ можно ввести в терминале следующей командой (вместо XXXXX-XXXXX-XXXXX-XXXXX-XXXXX необходимо подставить свой ключ):
/opt/cprocsp/sbin/amd64/cpconfig -license -set XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Для просмотра информации о текущей лицензии необходимо выполнить команду:
/opt/cprocsp/sbin/amd64/cpconfig -license -view
Примечание 2: В базе знаний на сайте КриптоПро есть инструкция «Вход с помощью электронной подписи на портал Госуслуг на Linux».