Изменение конфигурационного файла libccid
Рутокен ЭЦП 2.0, Рутокен Lite и Рутокен Magistra являются устройствами, поддерживающими стандарт CCID.
За поддержку стандарта CCID в операционных системах GNU/Linux в pcsc-lite отвечает модуль libccid. Модуль libccid имеет конфигурационный файл с описанием устройств, проверенных автором модуля на совместимость.
https://www.youtube.com/watch?v=ytaboutru
Если Вы используете новый и часто обновляемый дистрибутив GNU/Linux, то ничего делать не нужно – Рутокен заработает автоматически.
Пользователям стабильных и консервативных дистрибутивов GNU/Linux необходимо добавить в конфигурационный файл запись о Рутокен.
Для этого нужно открыть в любом текстовом редакторе конфигурационный файл, находящийся по адресу
/usr/lib/pcsc/drivers/ifd-bundle/Contents/Info.plist,
в массиве {amp}lt;key{amp}gt;ifdVendorID{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;0x0A89{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdProductID{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;0x0030{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdFriendlyName{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;Aktiv Rutoken ECP{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdProductID{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;0x0025{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdFriendlyName{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;Aktiv Rutoken lite{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdProductID{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;0x0060{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdFriendlyName{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;Aktiv Rutoken Magistra{amp}lt;/string{amp}gt;
в массиве {amp}lt;key{amp}gt;ifdProductID{amp}lt;/key{amp}gt;добавить {amp}lt;string{amp}gt;0x0061{amp}lt;/string{amp}gt;
Для использования нескольких моделей Рутокен необходимо добавить информацию для каждой из них.
Проверка работоспособности
- Установите утилиту
pcsc_scan
(обычно в присутствует в пакетеpcsc-tools
) и запустите её. Утилита должна выдать длинный лог, в котором есть упоминание нужного устройства. Остановите сервис
pcscd
, если он запущен. Запуститеpcscd
вручную в отладочном режиме:# /usr/sbin/pcscd -afddddd
Если устройство работает, то при подключении/отключении вы заметите его упоминание в отладочном логе.
3 Проверяем что Рутокен ЭЦП работает в системе
Пуск – утилиты – Терминал Fly
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
В случае если увидите вот такую строку, значит все хорошо.
Rutoken ECP {amp}lt;no label{amp}gt;
4 Считываем сертификат
Проверяем что на устройстве есть сертификат
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
https://www.youtube.com/watch?v=ytpolicyandsafetyru
Если после строчки
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя пункту 4.1
Если после строчки
Using slot 0 with a present token (0x0)
выводится информация о ключах и сертификатах то необходимо считать сертификат
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} {amp}gt; cert.crt
вместо {id} нужно подставить ID который вы увидите в выводе команды
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
В случае, если файл cert.crt создан переходим к пункту 5
генерируем ключевую пару
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
создаем самоподписанный сертификат
$ openssl OpenSSL{amp}gt; engine dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so OpenSSL{amp}gt; req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.crt -outform DER
загружаем сертификат на устройство
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45
Если после строчки
Если после строчки
5 Регистрируем сертификат в системе
Конвертируем сертификат в текстовый формат
OpenSSL{amp}gt; x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Добавляем сертификат в список доверенных сертификатов
$ mkdir ~/.eid $ chmod 0755 ~/.eid $ cat cert.pem {amp}gt;{amp}gt; ~/.eid/authorized_certificates $ chmod 0644 ~/.eid/authorized_certificates
6 Настраиваем аутентификацию
$ sudo nano /usr/share/pam-configs/p11
записываем в файл следующую информацию
Name: Pam_p11 Default: yes Priority: 800 Auth-Type: Primary Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp.so
сохраняем файл, нажимаем Alt X, а затем Y
после этого выполняем
в появившемся окне ставим галку в Pam_p11 и нажимаем OK
8 Блокировка компьютера при извлечении токена
В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.
Для настройки pkcs11_eventmgr служит файл конфигурации – /etc/pam_pkcs11/pkcs11_eventmgr.conf
pkcs11_eventmgr { # Запуск в бэкграунде daemon = true; # Настройка сообщений отладки debug = false; # Время опроса в секундах polling_time = 1; # Установка тайм-аута на удаление карты # По-умолчанию 0 expire_time = 0; # Выбор pkcs11 библиотеки для работы с Рутокен pkcs11_module = /usr/lib/librtpkcs11ecp.so; # Действия с картой # Карта вставлена: event card_insert { # Оставляем значения по умолчанию (ничего не происходит) on_error = ignore ; action = "/bin/false"; } # Карта извлечена event card_remove { on_error = ignore; # Вызываем функцию блокировки экрана action = "fly-wmfunc FLYWM_LOCK"; } # Карта долгое время извлечена event expire_time { # Оставляем значения по умолчанию (ничего не происходит) on_error = ignore; action = "/bin/false"; } }
https://www.youtube.com/watch?v=upload
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.