Проверка подлинности с помощью смарт-карты в CentOS

676
Lesuno

Я попытался реализовать аутентификацию с помощью смарт-карты в домене Samba4 (Samba AD). В настоящее время у меня есть два контроллера домена (CentOS), файловый сервер и несколько клиентов (CentOS и Windows). Что касается смарт-карты, у меня есть устройство для чтения карт Téo by Xiring и карта Gemalto IDPrime 510 (.Net V3). У меня также есть соответствующие драйверы, и я могу аутентифицироваться с помощью смарт-карты в Windows, но это невозможно в CentOS.

Считыватель смарт-карт и карта, по-видимому, распознаются CentOS (присутствует в lsusb -v и при вставке карты запускается «Диспетчер смарт-карт», но он сообщает, что сертификат неизвестен и карта не отформатирована). Однако, используя модуль libgtop11dotnet, я могу прочитать сертификат и даже подключиться (с соответствующим PIN-кодом) с помощью pkcs11-tool (но я должен указать модуль). Несмотря на все это, я не могу войти в CentOS с помощью смарт-карты. Даже при использовании смарт-карты для входа в систему ничего не происходит. Есть ли специальная модификация для pam_pkcs11 или Kerberos, чтобы указать, какой модуль использовать или связать сертификат пользователя с пользователем домена?

Все команды, такие как: opensc-tool -n, pklogin_finder debug, pkcs11_inspect debug и pkcs11_listcerts debug возвращают ошибку.

Команды:

[MYDOMAIN\administrator@Client1 ~]$ pkcs11-tool --module=/usr/local/lib/libgtop11dotnet.so -l -O Using slot 0 with a present token (0x0) Logging in to ".NET #514CA4DC28D2DF4D". Please enter User PIN: Certificate Object; type = X.509 cert label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Public Key Object; RSA 2048 bits label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Usage: encrypt, verify Private Key Object; RSA label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Usage: decrypt, sign   [MYDOMAIN\administrator@Client1 ~]$ modutil -list -dbdir /etc/pki/nssdb Listing of PKCS #11 Modules ----------------------------------------------------------- 1. NSS Internal PKCS #11 Module slots: 2 slots attached status: loaded  slot: NSS Internal Cryptographic Services token: NSS Generic Crypto Services  slot: NSS User Private Key and Certificate Services token: NSS Certificate DB  2. libgtop11dotnet library name: /usr/local/lib/libgtop11dotnet.so slots: 5 slots attached status: loaded  slot: XIRING Teo 00 00 token: .NET #514CA4DC28D2DF4D  slot: empty token:  slot: empty token:  slot: empty token:  slot: empty token: -----------------------------------------------------------   [MYDOMAIN\administrator@Client1 ~]$ opensc-tool -l # Detected readers (pcsc) Nr. Card Features Name 0 Yes XIRING Teo 00 00   [MYDOMAIN\administrator@Client1 ~]$ pcsc_scan PC/SC device scanner V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.8 Using reader plug'n play mechanism Scanning present readers... 0: XIRING Teo 00 00  Tue Sep 25 07:18:18 2018 Reader 0: XIRING Teo 00 00 Card state: Card inserted, Shared Mode, ATR: 3B 16 96 41 73 74 72 69 64  ATR: 3B 16 96 41 73 74 72 69 64 + TS = 3B --> Direct Convention + T0 = 16, Y(1): 0001, K: 6 (historical bytes) TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU 250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s + Historical bytes: 41 73 74 72 69 64 Category indicator byte: 41 (proprietary format)  Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 16 96 41 73 74 72 69 64 Gemalto .NET v2.0   [MYDOMAIN\administrator@Client1 ~]$ opensc-tool -n Using reader with a card: XIRING Teo 00 00 Unsupported card   [MYDOMAIN\administrator@Client1 ~]$ pkcs11_listcerts debug DEBUG:pam_config.c:238: Using config file /etc/pam_pkcs11/pam_pkcs11.conf DEBUG:pkcs11_lib.c:182: Initializing NSS ... DEBUG:pkcs11_lib.c:192: Initializing NSS ... database=/etc/pki/nssdb DEBUG:pkcs11_lib.c:210: ... NSS Complete DEBUG:pkcs11_listcerts.c:69: loading pkcs #11 module... DEBUG:pkcs11_lib.c:235: Looking up module in list DEBUG:pkcs11_lib.c:238: modList = 0x21a49c0 next = 0x21bf3c0  DEBUG:pkcs11_lib.c:239: dllName= <null>  DEBUG:pkcs11_lib.c:238: modList = 0x21bf3c0 next = 0x0  DEBUG:pkcs11_lib.c:239: dllName= libgtop11dotnet.so  DEBUG:pkcs11_listcerts.c:77: initialising pkcs #11 module... DEBUG:pkcs11_listcerts.c:94: no token available 

Заранее спасибо.

1
Pkcs11-tool показывает сертификаты _ без параметра `-l`? grawity 6 лет назад 1
Да, с того момента, как я укажу модуль, эта команда работает нормально. У меня просто нет последней части: `[MYDOMAIN \ administrator @ Client1 ~] $ pkcs11-tool --module = / usr / local / lib / libgtop11dotnet.so -O Использование слота 0 с текущим сертификатом токена (0x0) Объект; type = X.509 метка сертификата: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Объект открытого ключа; Метка RSA 2048 битов: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Использование: шифрование, проверка Lesuno 6 лет назад 0
pam_pkcs11 используется для входа на локальный компьютер. Вам может понадобиться использовать pam_krrb5. Kerberos использует PKINT для аутентификации с использованием смарт-карты на контроллере домена (KDC) Douglas Engert 6 лет назад 0
Вы смотрели на; https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s1-kerberos-pam.html Douglas Engert 6 лет назад 0
Чтобы увидеть, что происходит с PKCS # 11, вы можете использовать [OpenSC SPY] (https://github.com/OpenSC/OpenSC/wiki/Using-OpenSC). Это модуль PKCS # 11, который загружает другой PKCS # 11 модуль. Douglas Engert 6 лет назад 0
https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html может быть полезным. Ищите раздел PKINIT. Клиентский компьютер и KDC должны доверять ЦС друг друга. Вы можете использовать pkcs11-tool --test --login, чтобы проверить, может ли карта что-то подписать. https://github.com/AbigailBuccaneer/libgtop11dotnet может помочь. «Менеджер смарт-карт» может мешать. Douglas Engert 6 лет назад 0
Привет, прежде всего, спасибо за вашу помощь. У меня уже есть OpenSC SPY, но все команды, кроме pkcs11-tool (когда я указываю модуль: libgtop11dotnet), возвращают ошибку. Команда обнаруживает, что карта вставлена, но возвращает: «Не удалось подключиться к карте: карта недействительна или не может быть обработана». Что касается PKINIT, у меня тоже есть проблемы. С модификацией krb5.conf я могу подключиться с помощью смарт-карты на Kerberos. Когда я делаю "kinit", ожидается PIN-код, и если я поставлю правильный pin-код, он сработает. Lesuno 6 лет назад 0
Но даже после редактирования файлов pam.d (как здесь: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system-level_authentication_guide/krb-smart-cards, но изменив модуль с помощью libgtop11dotnet.so) Я все еще не могу подключиться к сеансу с помощью смарт-карты, ничего не происходит, когда я кладу карту на экран блокировки. Я думаю, что я на правильном пути, но я заблокирован. Lesuno 6 лет назад 0
Я также попробовал команду "pkcs11-tool --module = / usr / local / lib / libgtop11dotnet.so --test --login", но возвращает: `Использование слота 0 с текущим токеном (0x0) Вход в систему" .NET # 514CA4DC28D2DF4D». Пожалуйста, введите ПИН-код пользователя: C_SeedRandom () и C_GenerateRandom (): заполнение (C_SeedRandom) не поддерживается. ERR: сбой C_GenerateRandom (buf1,0): ошибка CKR_ARGUMENTS_BAD (0x7): функция PKCS11 C_GetMechanismLFF_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB_ROOB)). Ошибка: 0 DouglasEngert Lesuno 6 лет назад 0

0 ответов на вопрос