Локальная аутентификация в Astra Linux Smolensk и Рутокен ЭЦП (RSA) – Портал документации Рутокен

Изменение конфигурационного файла libccid

Рутокен ЭЦП 2.0, Рутокен Lite и Рутокен Magistra являются устройствами, поддерживающими стандарт CCID.

За поддержку стандарта CCID в операционных системах GNU/Linux в pcsc-lite отвечает модуль libccid. Модуль libccid имеет конфигурационный файл с описанием устройств, проверенных автором модуля на совместимость.

https://www.youtube.com/watch?v=ytaboutru

Если Вы используете новый и часто обновляемый дистрибутив GNU/Linux, то ничего делать не нужно – Рутокен заработает автоматически.

Пользователям стабильных и консервативных дистрибутивов GNU/Linux необходимо добавить в конфигурационный файл запись о Рутокен.

Локальная аутентификация в Astra Linux Smolensk и Рутокен ЭЦП (RSA) - Портал документации Рутокен

Для этого нужно открыть в любом текстовом редакторе конфигурационный файл, находящийся по адресу

 /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;

Для использования нескольких моделей Рутокен необходимо добавить информацию для каждой из них.

Проверка работоспособности

  1. Установите утилиту pcsc_scan (обычно в присутствует в пакете pcsc-tools) и запустите её. Утилита должна выдать длинный лог, в котором есть упоминание нужного устройства.
  2. Остановите сервис 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

Читайте также:  Kaspersky ошибка 27220 ошибка при настройке драйвера klwfp failed to second install wfpmgr

Если после строчки 

Using slot 0 with a present token (0x0) 

нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя пункту 4.1

Локальная аутентификация в Astra Linux Smolensk и Рутокен ЭЦП (RSA) - Портал документации Рутокен

Если после строчки

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 Регистрируем сертификат в системе

Локальная аутентификация в Astra Linux Smolensk и Рутокен ЭЦП (RSA) - Портал документации Рутокен

Конвертируем сертификат в текстовый формат

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.

Локальная аутентификация в Astra Linux Smolensk и Рутокен ЭЦП (RSA) - Портал документации Рутокен

Для настройки 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 в автозагрузку и перезагрузитесь.

Оцените статью
ЭЦП Эксперт
Добавить комментарий