Smartcard-Authentifizierung unter CentOS

1

Ich habe versucht, eine Smartcard-Authentifizierung in einer Samba4-Domäne (Samba AD) zu implementieren. Derzeit habe ich zwei Domänencontroller (CentOS), einen Dateiserver und mehrere Clients (CentOS und Windows). In Bezug auf die Smartcard habe ich einen Kartenleser "Téo by Xiring" und eine Karte "Gemalto IDPrime 510 (.Net V3)". Ich habe auch die entsprechenden Treiber und kann mich unter Windows mit einer Smartcard authentifizieren, unter CentOS ist dies jedoch nicht möglich.

Der Chipkartenleser und die Karte scheinen von CentOS erkannt zu werden (in lsusb -v vorhanden und beim Einlegen der Karte wird "Smart Card Manager" gestartet, es wird jedoch darauf hingewiesen, dass das Zertifikat nicht bekannt und die Karte nicht formatiert ist). Mit dem Modul libgtop11dotnet kann ich jedoch das Zertifikat lesen und sogar eine Verbindung (mit der entsprechenden PIN) mit pkcs11-tool herstellen (aber ich muss das Modul angeben). Trotzdem ist es mir nicht möglich, mich mit der Smartcard bei CentOS anzumelden. Selbst wenn Sie die Smartcard zwingen, sich anzumelden, geschieht nichts. Gibt es eine spezielle Änderung in pam_pkcs11 oder Kerberos, um anzugeben, welches Modul verwendet werden soll, oder um das Benutzerzertifikat mit dem Domänenbenutzer zu verknüpfen?

Alle Befehle wie: opensc-tool -n, pklogin_finder debug, pkcs11_inspect debug und pkcs11_listcerts debug geben einen Fehler zurück.

Befehle:

[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 <[email protected]>
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

Danke im Voraus.

Lesuno
quelle
1
Zeigt pkcs11-tool die Zertifikate ohne die -lOption an?
Grawity
Ja, von dem Moment an, in dem ich das Modul spezifiziere, funktioniert dieser Befehl einwandfrei. Ich habe nur nicht den letzten Teil:[MYDOMAIN\administrator@Client1 ~]$ pkcs11-tool --module=/usr/local/lib/libgtop11dotnet.so -O Using slot 0 with a present token (0x0) 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
Lesuno
pam_pkcs11 wird verwendet, um sich auf dem lokalen Computer anzumelden. Möglicherweise müssen Sie pam_krrb5 verwenden. Kerberos verwendet PKINT zur Authentifizierung mit Smartcard beim Domänencontroller (KDC)
Douglas Engert,
Hast Du Dir angesehen; centos.org/docs/5/html/5.1/Deployment_Guide/…
Douglas Engert
Um zu sehen, was mit PKCS # 11 los ist, können Sie OpenSC SPY verwenden. Es ist ein PKCS # 11-Modul, das ein anderes PKCS # 11-Modul lädt.
Douglas Engert