Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Аверченко Кирилл пишет:

Пришлите, пожалуйста, все файлы логов из /var/log/sssd/
Если возможно, то просьба сделать два комплекта логов- успешный вход через su и пин-код токена и так же неуспешный.

https://disk.yandex.ru/d/d1LuaYIJOE0ifw

Время между 12:45-12:55 2024-05-16

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Аверченко Кирилл, скинул ссылку на логи

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Orontin пишет:
Аверченко Кирилл пишет:

Пришлите, пожалуйста, все файлы логов из /var/log/sssd/
Если возможно, то просьба сделать два комплекта логов- успешный вход через su и пин-код токена и так же неуспешный.

https://disk.yandex.ru/d/d1LuaYIJOE0ifw

Время между 12:45-12:55 2024-05-16

Добрый день!
В логах диагностическое сообщение:

(2024-05-16 12:55:02): [p11_child[2817]] [do_card] (0x0100): No matching uri [PKCS11:model=Rutoken%20SC%20JC;serial=3e5a5321], skipping.

Вывод приходит отсюда: https://pagure.io/SSSD/sssd/blob/master … sl.c#_1702

Проверка на uri происходит, только если этот uri где-то указан. Вы точно удалили строчку с uri из конфига sssd? sssd после этого был перезапущен? Не может uri быть указан где-то еще?

(2024-05-16 15:38:15 отредактировано Евгений Мироненко)

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Orontin пишет:

3.0
---
Available slots:
Slot 0 (0x1): ACS ACR1252 Dual Reader [ACR1252 Dual Reader PICC] 00 00
  token label        : 123123123
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 60.1
  firmware version   : 30.2
  serial num         : 424a928f
  pin min/max        : 6/32
---

Я правильно понимаю, что смарт-карта с серийным номером 424a928f при снятии логов https://disk.yandex.ru/d/d1LuaYIJOE0ifw не подключалась?

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Евгений Мироненко, uri указывался для обоих токенов. Сейчас соберу лог без uri

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Евгений Мироненко, ссылка на логи без uri :

https://disk.yandex.ru/d/pITQn0QNFsMsZw

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

p11, выдал вот такое


(2024-05-16 16:11:00): [p11_child[2240]] [do_card] (0x4000): Token not present.
(2024-05-16 16:11:00): [p11_child[2240]] [main] (0x0040): do_work failed.
(2024-05-16 16:11:00): [p11_child[2240]] [main] (0x0020): p11_child failed!

Значит как минимум он что-то делает чтобы его найти, но после падает из-за какой-то ошибки.

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Orontin пишет:

p11, выдал вот такое

(2024-05-16 16:11:00): [p11_child[2240]] [do_card] (0x4000): Token not present.
(2024-05-16 16:11:00): [p11_child[2240]] [main] (0x0040): do_work failed.
(2024-05-16 16:11:00): [p11_child[2240]] [main] (0x0020): p11_child failed!

Значит как минимум он что-то делает чтобы его найти, но после падает из-за какой-то ошибки.

Верное наблюдение.
У вас нет возможности проверить с другим считывателем смарт-карт?
Какая версия библиотеки rtpkcs11ecp используется?

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Евгений Мироненко, версия librtPKCS - 2.14.0.0 от 25.03.2024

Мы смотрели на двух 3.0
"Rutoken miron SC dual NFC"
"Rutoken SC JC"

на них одинаковое поведение. К сожалению других 3.0 РуТокенов нету

(2024-05-16 22:20:00 отредактировано Евгений Мироненко)

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Orontin, мы еще будем выяснять завтра, но пока что я склонен считать, что это баг в p11_child (вот в этом месте: https://pagure.io/SSSD/sssd/blob/master … .c#_1720).
Что происходит:
1. Получение всех слотов (неважно, с токеном или нет): https://pagure.io/SSSD/sssd/blob/master … sl.c#_1669
2. В цикле по слотам получение информации о слоте: https://pagure.io/SSSD/sssd/blob/master … sl.c#_1677
3. Если в информации о слоте установлен флаг CKF_REMOVABLE_DEVICE, независимо от флага CKF_TOKEN_PRESENT, слоты больше не перебираются: https://pagure.io/SSSD/sssd/blob/master … sl.c#_1720 https://pagure.io/SSSD/sssd/blob/master … sl.c#_1724

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

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L

Если запустите раньше меня на считывателе ACS 1252, пришлите вывод. На похожем ридере подтверждается:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L
Available slots:
Slot 0 (0x0): ACS ACR1281U 00 02
  (empty)
Slot 1 (0x1): ACS ACR1281U 00 01
  token label        : emitent
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed
  hardware version   : 60.1
  firmware version   : 32.2
  serial num         : 43226518
  pin min/max        : 6/32
Slot 2 (0x2): ACS ACR1281U 00 00
  (empty)
Slot 3 (0x3):
  (empty)
Slot 4 (0x4):
  (empty)
Slot 5 (0x5):
  (empty)
Slot 6 (0x6):
  (empty)
Slot 7 (0x7):
  (empty)
Slot 8 (0x8):
  (empty)
Slot 9 (0x9):
  (empty)
Slot 10 (0xa):
  (empty)
Slot 11 (0xb):
  (empty)
Slot 12 (0xc):
  (empty)
Slot 13 (0xd):
  (empty)
Slot 14 (0xe):
  (empty)

На подтверждение бага нам нужно немного времени. В случае подтверждения на репорт, пулл-реквест, попадание в какую-то версию может уйти уже больше времени.

Если есть возможность, прошу проверить на другом считывателе смарт-карт (с одним интерфейсом, без SAM-слота), при условии что только он подключен к ПК. Я бы ожидал, что с другим считывателем должно заработать.

UPD: к p11_child есть похожие претензии: https://github.com/SSSD/sssd/issues/7295, https://github.com/SSSD/sssd/issues/5905

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

С перечислением слотов на ACS ACR 1252 подтверждается: первый слот SAM, второй PICC.

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L
Available slots:
Slot 0 (0x0): ACS ACR1252 Dual Reader [ACR1252 Dual Reader SAM] 01 00
  (empty)
Slot 1 (0x1): ACS ACR1252 Dual Reader [ACR1252 Dual Reader PICC] 00 00
  token label        : emitent
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed
  hardware version   : 60.1
  firmware version   : 32.2
  serial num         : 43226518
  pin min/max        : 6/32
Slot 2 (0x2):
  (empty)
Slot 3 (0x3):
  (empty)
Slot 4 (0x4):
  (empty)
Slot 5 (0x5):
  (empty)
Slot 6 (0x6):
  (empty)
Slot 7 (0x7):
  (empty)
Slot 8 (0x8):
  (empty)
Slot 9 (0x9):
  (empty)
Slot 10 (0xa):
  (empty)
Slot 11 (0xb):
  (empty)
Slot 12 (0xc):
  (empty)
Slot 13 (0xd):
  (empty)
Slot 14 (0xe):
  (empty)

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

К счастью, в pcscd предусмотрен механизм фильтрации неугодных считывателей смарт-карт: https://ludovicrousseau.blogspot.com/20 … names.html

Считаю, что после добавления фильтрации sssd со считывателем ACS ACR1252 должен заработать корректно.

Что нужно сделать:
1. Добавить игнорирование считывателя "ACS ACR1252 Dual Reader [ACR1252 Dual Reader SAM]"

sudo sh -c "echo 'PCSCLITE_FILTER_IGNORE_READER_NAMES=\"ACS ACR1252 Dual Reader [ACR1252 Dual Reader SAM]\"'> /etc/default/pcscd

2. Перезапустить pcscd

sudo service pcscd restart

Смотрим через pkcs11-tool -L:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L
Available slots:
Slot 0 (0x0): ACS ACR1252 Dual Reader [ACR1252 Dual Reader PICC] 00 00
  token label        : emitent
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed
  hardware version   : 60.1
  firmware version   : 32.2
  serial num         : 43226518
  pin min/max        : 6/32
Slot 1 (0x1):
  (empty)
Slot 2 (0x2):
  (empty)
Slot 3 (0x3):
  (empty)
Slot 4 (0x4):
  (empty)
Slot 5 (0x5):
  (empty)
Slot 6 (0x6):
  (empty)
Slot 7 (0x7):
  (empty)
Slot 8 (0x8):
  (empty)
Slot 9 (0x9):
  (empty)
Slot 10 (0xa):
  (empty)
Slot 11 (0xb):
  (empty)
Slot 12 (0xc):
  (empty)
Slot 13 (0xd):
  (empty)
Slot 14 (0xe):
  (empty)

Orontin, пожалуйста, проверьте и отпишитесь о результате.

(2024-05-17 15:08:54 отредактировано Orontin)

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Евгений Мироненко,

Изменял строку по разному, перезапускал службу\компьютер - не помогло, все равно видит

```
root@astralkjhgfdsa34q:/home/adminlocal# cat /etc/default/pcscd
PCSCLITE_FILTER_IGNORE_READER_NAMES="ACS ACR1252 Dual Reader [ACR1252 Dual Reader SAM]"
root@astralkjhgfdsa34q:/home/adminlocal# pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L
Available slots:
Slot 0 (0x0): ACS ACR1252 Dual Reader [ACR1252 Dual Reader SAM] 01 00
  (empty)
Slot 1 (0x1): ACS ACR1252 Dual Reader [ACR1252 Dual Reader PICC] 00 00
  token label        : 123123123
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 60.1
  firmware version   : 30.2
  serial num         : 424a928f
  pin min/max        : 6/32
Slot 2 (0x2):
  (empty)
```

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Евгений Мироненко, насколько я могу судить по описанию, это не всегда работает. Мы работаем в ОС: РедОС, Астра, АЛТ

(2024-05-17 19:29:40 отредактировано Евгений Мироненко)

Re: SSSD не видит РуТокен ЭЦП 3.0 NFC, но видит РуТокен ЭЦП 2.0

Orontin пишет:

Евгений Мироненко, насколько я могу судить по описанию, это не всегда работает. Мы работаем в ОС: РедОС, Астра, АЛТ

Все верно. Это работает на Ubuntu. На других дистрибутивах может быть и pcscd собран без поддержки фильтрации, и запускаться pcscd может через systemctl (тогда в другом месте надо задавать переменную окружения PCSCLITE_FILTER_IGNORE_READER_NAMES).

Варианты рекомендаций:
1. Использовать считыватель с одним интерфейсом.
2. Пересобирать pcscd c поддержкой PCSCLITE_FILTER_IGNORE_READER_NAMES: https://github.com/LudovicRousseau/PCSC … ry.c#L167, https://github.com/LudovicRousseau/PCSC … re.ac#L356 и правильно передавать переменную окружения в зависимости от дистрибутива.
3. Обновить sssd. Выглядит так, будто в версии 2.9 проблем быть не должно: https://github.com/SSSD/sssd/blob/sssd- … sl.c#L1857 В принципе, уже в 2.6.0 поведение лучше: https://github.com/SSSD/sssd/blob/2.6.0 … sl.c#L1766